{"diffoscope-json-version": 1, "source1": "/input1", "source2": "/input2", "unified_diff": null, "details": [{"source1": "zipinfo {}", "source2": "zipinfo {}", "unified_diff": "@@ -1,318 +1,318 @@\n-Zip file size: 7345339 bytes, number of entries: 2011\n+Zip file size: 7448215 bytes, number of entries: 2011\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/\n -rw----     2.0 fat    64402 bX stor 70-Jan-01 00:00 META-INF/DEPENDENCIES\n -rw----     2.0 fat    11358 bX stor 70-Jan-01 00:00 META-INF/LICENSE\n -rw----     2.0 fat       25 bX stor 70-Jan-01 00:00 META-INF/MANIFEST.MF\n -rw----     2.0 fat      166 bX stor 70-Jan-01 00:00 META-INF/NOTICE\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/assembly/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/assembly/bin/\n--rw----     2.0 fat     2943 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/dump.sh\n--rw----     2.0 fat      832 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/restart.sh\n--rw----     2.0 fat     1196 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/server.sh\n+-rw----     2.0 fat     3051 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/dump.sh\n+-rw----     2.0 fat      852 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/restart.sh\n+-rw----     2.0 fat     1236 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/server.sh\n -rwx---     2.0 fat     2002 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/start.bat\n--rw----     2.0 fat     5249 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/start.sh\n--rw----     2.0 fat     1635 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/stop.sh\n+-rw----     2.0 fat     5381 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/start.sh\n+-rw----     2.0 fat     1695 bX stor 70-Jan-01 00:00 META-INF/assembly/bin/stop.sh\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/compat/\n--rw----     2.0 fat    79727 bX stor 70-Jan-01 00:00 META-INF/compat/dubbo.xsd\n--rw----     2.0 fat    81371 bX stor 70-Jan-01 00:00 META-INF/dubbo.xsd\n+-rw----     2.0 fat    81361 bX stor 70-Jan-01 00:00 META-INF/compat/dubbo.xsd\n+-rw----     2.0 fat    83041 bX stor 70-Jan-01 00:00 META-INF/dubbo.xsd\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/dubbo/internal/\n -rw----     2.0 fat      324 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.cache.CacheFactory\n -rwx---     2.0 fat      195 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.compiler.Compiler\n--rw----     2.0 fat      598 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory\n--rw----     2.0 fat      163 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.context.FrameworkExt\n--rw----     2.0 fat      787 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.convert.Converter\n--rw----     2.0 fat     1023 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.convert.multiple.MultiValueConverter\n+-rw----     2.0 fat      600 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory\n+-rw----     2.0 fat      165 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.context.FrameworkExt\n+-rw----     2.0 fat      797 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.convert.Converter\n+-rw----     2.0 fat     1035 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.convert.multiple.MultiValueConverter\n -rw----     2.0 fat      214 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.extension.ExtensionFactory\n -rw----     2.0 fat       69 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.infra.InfraAdapter\n -rw----     2.0 fat      307 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.logger.LoggerAdapter\n--rw----     2.0 fat     1033 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization\n--rw----     2.0 fat      185 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer\n--rw----     2.0 fat      480 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.status.StatusChecker\n+-rw----     2.0 fat     1036 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization\n+-rw----     2.0 fat      186 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer\n+-rw----     2.0 fat      481 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.status.StatusChecker\n -rw----     2.0 fat       61 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.store.DataStore\n -rw----     2.0 fat      298 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.threadpool.ThreadPool\n -rwx---     2.0 fat       76 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.common.threadpool.manager.ExecutorRepository\n -rw----     2.0 fat       91 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.config.bootstrap.DubboBootstrapStartStopListener\n -rw----     2.0 fat      171 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.container.Container\n--rw----     2.0 fat      109 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.event.EventDispatcher\n--rw----     2.0 fat      162 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.event.EventListener\n+-rw----     2.0 fat      111 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.event.EventDispatcher\n+-rw----     2.0 fat      163 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.event.EventListener\n -rw----     2.0 fat       61 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataParamsFilter\n--rw----     2.0 fat       92 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter\n+-rw----     2.0 fat       94 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter\n -rw----     2.0 fat      150 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.ServiceNameMapping\n -rw----     2.0 fat       88 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.WritableMetadataService\n--rw----     2.0 fat      276 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder\n--rw----     2.0 fat      453 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory\n--rw----     2.0 fat      716 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor\n--rw----     2.0 fat      183 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver\n+-rw----     2.0 fat      279 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder\n+-rw----     2.0 fat      459 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory\n+-rw----     2.0 fat      725 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor\n+-rw----     2.0 fat      185 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver\n -rw----     2.0 fat       57 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.monitor.MonitorFactory\n--rw----     2.0 fat      390 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand\n--rw----     2.0 fat      714 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.RegistryFactory\n+-rw----     2.0 fat      398 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand\n+-rw----     2.0 fat      716 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.RegistryFactory\n -rw----     2.0 fat       73 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.RegistryClusterIdentifier\n--rw----     2.0 fat      593 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscovery\n+-rw----     2.0 fat      594 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscovery\n -rw----     2.0 fat      590 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscoveryFactory\n--rw----     2.0 fat      637 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer\n--rw----     2.0 fat      177 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.MetadataServiceURLBuilder\n+-rw----     2.0 fat      643 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer\n+-rw----     2.0 fat      178 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.MetadataServiceURLBuilder\n -rw----     2.0 fat       84 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.SubscribedURLsSynthesizer\n -rw----     2.0 fat       84 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.migration.MigrationAddressComparator\n -rw----     2.0 fat       78 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.client.selector.ServiceInstanceSelector\n -rw----     2.0 fat       74 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.registry.integration.RegistryProtocolListener\n -rw----     2.0 fat      305 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.Codec2\n -rw----     2.0 fat      420 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.Dispatcher\n -rw----     2.0 fat      333 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.Transporter\n -rw----     2.0 fat       59 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.etcd.EtcdTransporter\n -rw----     2.0 fat       73 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.exchange.Exchanger\n -rw----     2.0 fat      248 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.http.HttpBinder\n -rw----     2.0 fat      125 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.p2p.Networker\n--rw----     2.0 fat      845 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler\n+-rw----     2.0 fat      853 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler\n -rw----     2.0 fat       82 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter\n--rw----     2.0 fat     1167 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter\n+-rw----     2.0 fat     1169 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter\n -rw----     2.0 fat       67 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.InvokerListener\n--rw----     2.0 fat     1161 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol\n+-rw----     2.0 fat     1162 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol\n -rw----     2.0 fat      186 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.ProxyFactory\n -rw----     2.0 fat      652 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.Cluster\n -rw----     2.0 fat      171 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.ConfiguratorFactory\n -rw----     2.0 fat      388 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.LoadBalance\n -rw----     2.0 fat      632 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.Merger\n -rw----     2.0 fat      431 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.RouterFactory\n -rw----     2.0 fat       83 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository\n--rw----     2.0 fat      162 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor\n--rw----     2.0 fat      113 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.model.BuiltinServiceDetector\n+-rw----     2.0 fat      163 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor\n+-rw----     2.0 fat      114 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.model.BuiltinServiceDetector\n -rw----     2.0 fat       77 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.protocol.grpc.interceptors.ClientInterceptor\n -rw----     2.0 fat       77 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerInterceptor\n -rw----     2.0 fat      136 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.rpc.protocol.thrift.ClassNameGenerator\n -rw----     2.0 fat       72 bX stor 70-Jan-01 00:00 META-INF/dubbo/internal/org.apache.dubbo.validation.Validation\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/com.alibaba/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/com.alibaba/hessian-lite/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/com.alibaba/hessian-lite/pom.properties\n -rw----     2.0 fat     9689 bX stor 70-Jan-01 00:00 META-INF/maven/com.alibaba/hessian-lite/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-cluster/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.properties\n--rw----     2.0 fat     2616 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml\n+-rw----     2.0 fat     2548 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-common/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-common/pom.properties\n--rw----     2.0 fat     2978 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-common/pom.xml\n+-rw----     2.0 fat     2896 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-common/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-compatible/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-compatible/pom.properties\n--rw----     2.0 fat     4410 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-compatible/pom.xml\n+-rw----     2.0 fat     4295 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-compatible/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.properties\n--rw----     2.0 fat     8066 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml\n+-rw----     2.0 fat     7844 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-spring/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.properties\n--rw----     2.0 fat     6414 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml\n+-rw----     2.0 fat     6233 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.properties\n--rw----     2.0 fat     2428 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n+-rw----     2.0 fat     2369 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/pom.properties\n--rw----     2.0 fat     2089 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/pom.xml\n+-rw----     2.0 fat     2038 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/pom.properties\n--rw----     2.0 fat     2771 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/pom.xml\n+-rw----     2.0 fat     2698 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.properties\n--rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml\n+-rw----     2.0 fat     2024 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/pom.properties\n--rw----     2.0 fat     2268 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/pom.xml\n+-rw----     2.0 fat     2213 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-api/pom.properties\n--rw----     2.0 fat     2390 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-api/pom.xml\n+-rw----     2.0 fat     2327 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-log4j/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-log4j/pom.properties\n--rw----     2.0 fat     1995 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-log4j/pom.xml\n+-rw----     2.0 fat     1947 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-log4j/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-logback/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-logback/pom.properties\n--rw----     2.0 fat     2125 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-logback/pom.xml\n+-rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-logback/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-spring/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-spring/pom.properties\n--rw----     2.0 fat     2127 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-spring/pom.xml\n+-rw----     2.0 fat     2075 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-container-spring/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-cache/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-cache/pom.properties\n--rw----     2.0 fat     2283 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-cache/pom.xml\n+-rw----     2.0 fat     2225 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-cache/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-validation/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-validation/pom.properties\n--rw----     2.0 fat     3093 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-validation/pom.xml\n+-rw----     2.0 fat     3011 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-filter-validation/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-api/pom.properties\n--rw----     2.0 fat     3058 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-api/pom.xml\n+-rw----     2.0 fat     2977 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/pom.properties\n--rw----     2.0 fat     2148 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/pom.xml\n+-rw----     2.0 fat     2096 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/pom.properties\n--rw----     2.0 fat     2659 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/pom.xml\n+-rw----     2.0 fat     2588 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/pom.properties\n--rw----     2.0 fat     1806 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/pom.xml\n+-rw----     2.0 fat     1763 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/pom.properties\n--rw----     2.0 fat     2023 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/pom.xml\n+-rw----     2.0 fat     1975 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.properties\n--rw----     2.0 fat     2383 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml\n+-rw----     2.0 fat     2321 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/pom.properties\n--rw----     2.0 fat     2155 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/pom.xml\n+-rw----     2.0 fat     2102 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-api/pom.properties\n--rw----     2.0 fat     2406 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-api/pom.xml\n+-rw----     2.0 fat     2346 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-default/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-default/pom.properties\n--rw----     2.0 fat     3183 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-default/pom.xml\n+-rw----     2.0 fat     3100 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-monitor-default/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/pom.properties\n--rw----     2.0 fat     2954 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml\n+-rw----     2.0 fat     2877 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.properties\n--rw----     2.0 fat     3313 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml\n+-rw----     2.0 fat     3225 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-consul/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-consul/pom.properties\n--rw----     2.0 fat     2450 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-consul/pom.xml\n+-rw----     2.0 fat     2385 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-consul/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-default/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-default/pom.properties\n--rw----     2.0 fat     2997 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-default/pom.xml\n+-rw----     2.0 fat     2920 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-default/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/pom.properties\n--rw----     2.0 fat     2300 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/pom.xml\n+-rw----     2.0 fat     2245 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.properties\n--rw----     2.0 fat     3013 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml\n+-rw----     2.0 fat     2934 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/pom.properties\n--rw----     2.0 fat     1999 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/pom.xml\n+-rw----     2.0 fat     1951 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/pom.properties\n--rw----     2.0 fat     2889 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/pom.xml\n+-rw----     2.0 fat     2814 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/pom.properties\n--rw----     2.0 fat     3123 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/pom.xml\n+-rw----     2.0 fat     3041 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-redis/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-redis/pom.properties\n--rw----     2.0 fat     2601 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-redis/pom.xml\n+-rw----     2.0 fat     2534 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-redis/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.properties\n--rw----     2.0 fat     4787 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml\n+-rw----     2.0 fat     4654 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/pom.properties\n--rw----     2.0 fat     2476 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/pom.xml\n+-rw----     2.0 fat     2414 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.properties\n--rw----     2.0 fat     2385 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml\n+-rw----     2.0 fat     2326 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/pom.properties\n--rw----     2.0 fat     3689 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/pom.xml\n+-rw----     2.0 fat     3585 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/pom.properties\n--rw----     2.0 fat     2125 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/pom.xml\n+-rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-http/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-http/pom.properties\n--rw----     2.0 fat     2746 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-http/pom.xml\n+-rw----     2.0 fat     2675 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-http/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.properties\n--rw----     2.0 fat     2445 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml\n+-rw----     2.0 fat     2383 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/pom.properties\n--rw----     2.0 fat     2326 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/pom.xml\n+-rw----     2.0 fat     2268 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/pom.properties\n--rw----     2.0 fat     2399 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/pom.xml\n+-rw----     2.0 fat     2340 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/pom.properties\n--rw----     2.0 fat     2200 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/pom.xml\n+-rw----     2.0 fat     2146 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/pom.properties\n--rw----     2.0 fat     2584 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/pom.xml\n+-rw----     2.0 fat     2518 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-api/pom.properties\n--rw----     2.0 fat     2480 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-api/pom.xml\n+-rw----     2.0 fat     2417 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/pom.properties\n--rw----     2.0 fat     4028 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/pom.xml\n+-rw----     2.0 fat     3916 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/pom.properties\n--rw----     2.0 fat     2755 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/pom.xml\n+-rw----     2.0 fat     2681 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/pom.properties\n--rw----     2.0 fat     2774 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/pom.xml\n+-rw----     2.0 fat     2702 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.properties\n--rw----     2.0 fat     2504 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml\n+-rw----     2.0 fat     2440 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/pom.properties\n--rw----     2.0 fat     1971 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/pom.xml\n+-rw----     2.0 fat     1923 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/pom.properties\n--rw----     2.0 fat     2111 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/pom.xml\n+-rw----     2.0 fat     2059 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/pom.properties\n--rw----     2.0 fat     2304 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/pom.xml\n+-rw----     2.0 fat     2246 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/pom.properties\n--rw----     2.0 fat     2611 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/pom.xml\n+-rw----     2.0 fat     2543 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.properties\n--rw----     2.0 fat     3999 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml\n+-rw----     2.0 fat     3888 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/pom.properties\n--rw----     2.0 fat     2097 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/pom.xml\n+-rw----     2.0 fat     2045 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/pom.properties\n--rw----     2.0 fat     3202 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/pom.xml\n+-rw----     2.0 fat     3119 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/pom.properties\n--rw----     2.0 fat     3188 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/pom.xml\n+-rw----     2.0 fat     3103 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/pom.properties\n--rw----     2.0 fat     2850 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/pom.xml\n+-rw----     2.0 fat     2781 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-api/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-api/pom.properties\n--rw----     2.0 fat     1977 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-api/pom.xml\n+-rw----     2.0 fat     1929 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-api/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/pom.properties\n--rw----     2.0 fat     2125 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/pom.xml\n+-rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/pom.properties\n--rw----     2.0 fat     2108 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/pom.xml\n+-rw----     2.0 fat     2056 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/pom.properties\n--rw----     2.0 fat     2125 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/pom.xml\n+-rw----     2.0 fat     2073 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/pom.properties\n--rw----     2.0 fat     2124 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/pom.xml\n+-rw----     2.0 fat     2072 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/pom.properties\n--rw----     2.0 fat     2112 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/pom.xml\n+-rw----     2.0 fat     2060 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/pom.properties\n--rw----     2.0 fat     2102 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/pom.xml\n+-rw----     2.0 fat     2050 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/pom.properties\n--rw----     2.0 fat     2231 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/pom.xml\n+-rw----     2.0 fat     2175 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/pom.properties\n--rw----     2.0 fat     2035 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/pom.xml\n+-rw----     2.0 fat     1986 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.properties\n--rw----     2.0 fat     3855 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml\n+-rw----     2.0 fat     3751 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/pom.properties\n--rw----     2.0 fat     2347 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/pom.xml\n+-rw----     2.0 fat     2289 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo/\n -rw----     2.0 fat        0 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo/pom.properties\n--rw----     2.0 fat    45114 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo/pom.xml\n+-rw----     2.0 fat    42653 bX stor 70-Jan-01 00:00 META-INF/maven/org.apache.dubbo/dubbo/pom.xml\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 META-INF/services/\n--rw----     2.0 fat      353 bX stor 70-Jan-01 00:00 META-INF/services/org.apache.dubbo.common.extension.LoadingStrategy\n+-rw----     2.0 fat      178 bX stor 70-Jan-01 00:00 META-INF/services/org.apache.dubbo.common.extension.LoadingStrategy\n -rw----     2.0 fat      200 bX stor 70-Jan-01 00:00 META-INF/spring.handlers\n -rw----     2.0 fat      145 bX stor 70-Jan-01 00:00 META-INF/spring.schemas\n--rw----     2.0 fat     1140 bX stor 70-Jan-01 00:00 MapValue.proto\n--rw----     2.0 fat     2781 bX stor 70-Jan-01 00:00 ThrowablePB.proto\n+-rw----     2.0 fat     1166 bX stor 70-Jan-01 00:00 MapValue.proto\n+-rw----     2.0 fat     2845 bX stor 70-Jan-01 00:00 ThrowablePB.proto\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/com/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/com/caucho/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/com/caucho/hessian/\n -rw----     2.0 fat     2881 bX stor 70-Jan-01 00:00 com/alibaba/com/caucho/hessian/HessianException.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/com/caucho/hessian/io/\n@@ -416,181 +416,181 @@\n -rw----     2.0 fat     6871 bX stor 70-Jan-01 00:00 com/alibaba/com/caucho/hessian/util/IdentityIntMap.java\n -rw----     2.0 fat     6845 bX stor 70-Jan-01 00:00 com/alibaba/com/caucho/hessian/util/IntMap.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/\n -rw----     2.0 fat      935 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/Cache.java\n -rw----     2.0 fat     1086 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/CacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/support/\n--rw----     2.0 fat     2022 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/support/AbstractCacheFactory.java\n+-rw----     2.0 fat     2075 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/cache/support/AbstractCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/\n--rw----     2.0 fat     1848 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/Constants.java\n+-rw----     2.0 fat     1891 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/Constants.java\n -rw----     2.0 fat    19429 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/URL.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/compiler/\n -rw----     2.0 fat      961 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/compiler/Compiler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/extension/\n -rw----     2.0 fat     1487 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/extension/Activate.java\n--rw----     2.0 fat     1009 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/extension/ExtensionFactory.java\n+-rw----     2.0 fat     1034 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/extension/ExtensionFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/logger/\n -rw----     2.0 fat      967 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/logger/LoggerAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/serialize/\n -rw----     2.0 fat      969 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/serialize/ObjectInput.java\n -rw----     2.0 fat      971 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/serialize/ObjectOutput.java\n -rw----     2.0 fat     1708 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/serialize/Serialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/status/\n -rw----     2.0 fat     1230 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/status/Status.java\n -rw----     2.0 fat     1005 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/status/StatusChecker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/store/\n -rw----     2.0 fat      957 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/store/DataStore.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/threadpool/\n -rw----     2.0 fat     1249 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/threadpool/ThreadPool.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/common/utils/\n--rw----     2.0 fat     4597 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/utils/UrlUtils.java\n+-rw----     2.0 fat     4707 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/common/utils/UrlUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/config/\n -rw----     2.0 fat     1094 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ApplicationConfig.java\n -rw----     2.0 fat      951 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ArgumentConfig.java\n -rw----     2.0 fat      951 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ConsumerConfig.java\n -rw----     2.0 fat      949 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/MethodConfig.java\n -rw----     2.0 fat     1056 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ModuleConfig.java\n -rw----     2.0 fat     1064 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/MonitorConfig.java\n -rw----     2.0 fat     1153 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ProtocolConfig.java\n -rw----     2.0 fat      951 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ProviderConfig.java\n--rw----     2.0 fat     1114 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ReferenceConfig.java\n+-rw----     2.0 fat     1147 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ReferenceConfig.java\n -rw----     2.0 fat     1176 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/RegistryConfig.java\n -rw----     2.0 fat     1127 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/ServiceConfig.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/config/annotation/\n--rw----     2.0 fat     2623 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/annotation/Reference.java\n--rw----     2.0 fat     2711 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/annotation/Service.java\n+-rw----     2.0 fat     2736 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/annotation/Reference.java\n+-rw----     2.0 fat     2831 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/annotation/Service.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/config/spring/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/config/spring/context/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/config/spring/context/annotation/\n--rw----     2.0 fat     2739 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java\n+-rw----     2.0 fat     2813 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/container/\n -rw----     2.0 fat      951 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/container/Container.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/monitor/\n -rw----     2.0 fat     1599 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/monitor/Monitor.java\n -rw----     2.0 fat     1238 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/monitor/MonitorFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/qos/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/qos/command/\n -rw----     2.0 fat     1315 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/qos/command/BaseCommand.java\n -rw----     2.0 fat     1446 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/qos/command/CommandContext.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/\n--rw----     2.0 fat     2052 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/NotifyListener.java\n+-rw----     2.0 fat     2113 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/NotifyListener.java\n -rw----     2.0 fat     2556 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/Registry.java\n -rw----     2.0 fat     1249 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/RegistryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/\n--rw----     2.0 fat     6220 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/AbstractRegistry.java\n--rw----     2.0 fat     1328 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java\n--rw----     2.0 fat     7051 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/FailbackRegistry.java\n+-rw----     2.0 fat     6367 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/AbstractRegistry.java\n+-rw----     2.0 fat     1363 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java\n+-rw----     2.0 fat     7240 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/registry/support/FailbackRegistry.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/\n -rw----     2.0 fat     1091 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Channel.java\n -rw----     2.0 fat     2236 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/ChannelHandler.java\n -rw----     2.0 fat      941 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Codec.java\n -rw----     2.0 fat      943 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Codec2.java\n -rw----     2.0 fat     1358 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Dispatcher.java\n--rw----     2.0 fat     1971 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/RemotingException.java\n--rw----     2.0 fat      952 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Server.java\n--rw----     2.0 fat     3239 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Transporter.java\n+-rw----     2.0 fat     2025 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/RemotingException.java\n+-rw----     2.0 fat      975 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Server.java\n+-rw----     2.0 fat     3321 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/Transporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/\n -rw----     2.0 fat      967 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/Exchanger.java\n--rw----     2.0 fat     1124 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/ResponseCallback.java\n--rw----     2.0 fat     1489 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/ResponseFuture.java\n+-rw----     2.0 fat     1163 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/ResponseCallback.java\n+-rw----     2.0 fat     1545 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/exchange/ResponseFuture.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/http/\n -rw----     2.0 fat      961 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/http/HttpBinder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/p2p/\n -rw----     2.0 fat      957 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/p2p/Networker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/telnet/\n -rw----     2.0 fat     1336 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/telnet/TelnetHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/zookeeper/\n -rw----     2.0 fat      991 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/remoting/zookeeper/ZookeeperTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/\n -rw----     2.0 fat     1501 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Exporter.java\n -rw----     2.0 fat     1501 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Filter.java\n--rw----     2.0 fat     4597 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Invocation.java\n--rw----     2.0 fat     2355 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Invoker.java\n+-rw----     2.0 fat     4777 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Invocation.java\n+-rw----     2.0 fat     2433 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Invoker.java\n -rw----     2.0 fat     1549 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/InvokerListener.java\n--rw----     2.0 fat     1709 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Protocol.java\n+-rw----     2.0 fat     1757 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Protocol.java\n -rw----     2.0 fat     2044 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/ProxyFactory.java\n--rw----     2.0 fat     4798 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Result.java\n--rw----     2.0 fat    11253 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/RpcContext.java\n+-rw----     2.0 fat     4974 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/Result.java\n+-rw----     2.0 fat    11649 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/RpcContext.java\n -rw----     2.0 fat     1625 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/RpcException.java\n--rw----     2.0 fat     7245 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/RpcInvocation.java\n+-rw----     2.0 fat     7453 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/RpcInvocation.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/\n -rw----     2.0 fat     1364 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/Cluster.java\n -rw----     2.0 fat      973 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/ConfiguratorFactory.java\n--rw----     2.0 fat     1668 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/Directory.java\n+-rw----     2.0 fat     1710 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/Directory.java\n -rw----     2.0 fat     1999 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/LoadBalance.java\n -rw----     2.0 fat      949 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/Merger.java\n -rw----     2.0 fat     2706 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/Router.java\n -rw----     2.0 fat     1242 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/RouterFactory.java\n -rw----     2.0 fat     1439 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/RuleConverter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/loadbalance/\n -rw----     2.0 fat     1004 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/dubbo/\n--rw----     2.0 fat     5111 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/dubbo/FutureAdapter.java\n+-rw----     2.0 fat     5267 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/dubbo/FutureAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rest/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rest/support/\n -rw----     2.0 fat      983 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rest/support/ContentType.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rmi/\n--rw----     2.0 fat     1408 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java\n+-rw----     2.0 fat     1447 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/thrift/\n -rw----     2.0 fat      989 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/protocol/thrift/ClassNameGenerator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/service/\n -rw----     2.0 fat      959 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/service/EchoService.java\n--rw----     2.0 fat     1966 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/service/GenericException.java\n+-rw----     2.0 fat     2028 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/service/GenericException.java\n -rw----     2.0 fat     1125 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/service/GenericService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/support/\n--rw----     2.0 fat     2817 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/support/RpcUtils.java\n+-rw----     2.0 fat     2895 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/rpc/support/RpcUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 com/alibaba/dubbo/validation/\n -rw----     2.0 fat      955 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/validation/Validation.java\n -rw----     2.0 fat      953 bX stor 70-Jan-01 00:00 com/alibaba/dubbo/validation/Validator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/\n -rw----     2.0 fat     1770 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/Cache.java\n -rw----     2.0 fat     1730 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/CacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/filter/\n -rw----     2.0 fat     5835 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/filter/CacheFilter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/\n -rw----     2.0 fat     3128 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/AbstractCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/\n--rw----     2.0 fat     3154 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/ExpiringCache.java\n+-rw----     2.0 fat     3231 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/ExpiringCache.java\n -rw----     2.0 fat     1631 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/ExpiringCacheFactory.java\n--rw----     2.0 fat    10601 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/ExpiringMap.java\n+-rw----     2.0 fat    10987 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/expiring/ExpiringMap.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/jcache/\n -rw----     2.0 fat     3656 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/jcache/JCache.java\n -rw----     2.0 fat     1806 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/jcache/JCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lfu/\n--rw----     2.0 fat     3150 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lfu/LfuCache.java\n--rw----     2.0 fat     1566 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lfu/LfuCacheFactory.java\n+-rw----     2.0 fat     3230 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lfu/LfuCache.java\n+-rw----     2.0 fat     1609 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lfu/LfuCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lru/\n -rw----     2.0 fat     2933 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lru/LruCache.java\n -rw----     2.0 fat     1609 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/lru/LruCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/threadlocal/\n -rw----     2.0 fat     2929 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/threadlocal/ThreadLocalCache.java\n -rw----     2.0 fat     1734 bX stor 70-Jan-01 00:00 org/apache/dubbo/cache/support/threadlocal/ThreadLocalCacheFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/\n--rw----     2.0 fat     4343 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/BaseServiceMetadata.java\n--rw----     2.0 fat     1362 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Experimental.java\n+-rw----     2.0 fat     4480 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/BaseServiceMetadata.java\n+-rw----     2.0 fat     1399 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Experimental.java\n -rw----     2.0 fat     2475 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Extension.java\n -rw----     2.0 fat     1183 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Node.java\n -rw----     2.0 fat     8858 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Parameters.java\n -rw----     2.0 fat     1000 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Resetable.java\n -rw----     2.0 fat    70537 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/URL.java\n -rw----     2.0 fat    13668 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/URLBuilder.java\n--rw----     2.0 fat    13473 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/URLStrParser.java\n--rw----     2.0 fat     9765 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Version.java\n+-rw----     2.0 fat    13840 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/URLStrParser.java\n+-rw----     2.0 fat    10043 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/Version.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/\n -rw----     2.0 fat     1364 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/JavaBeanAccessor.java\n--rw----     2.0 fat     6309 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/JavaBeanDescriptor.java\n--rw----     2.0 fat    20174 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/JavaBeanSerializeUtil.java\n+-rw----     2.0 fat     6516 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/JavaBeanDescriptor.java\n+-rw----     2.0 fat    20660 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/beanutil/JavaBeanSerializeUtil.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/\n--rw----     2.0 fat    13023 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/ClassGenerator.java\n--rw----     2.0 fat     3506 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java\n+-rw----     2.0 fat    13410 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/ClassGenerator.java\n+-rw----     2.0 fat     3611 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java\n -rw----     2.0 fat     8215 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/Mixin.java\n -rw----     2.0 fat     1182 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/NoSuchMethodException.java\n -rw----     2.0 fat     1190 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/NoSuchPropertyException.java\n -rw----     2.0 fat    12109 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/Proxy.java\n -rw----     2.0 fat    17928 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/bytecode/Wrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/\n -rw----     2.0 fat     1255 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/Compiler.java\n@@ -598,137 +598,137 @@\n -rw----     2.0 fat     2843 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/AbstractCompiler.java\n -rw----     2.0 fat     1843 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/AdaptiveCompiler.java\n -rw----     2.0 fat    15556 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/ClassUtils.java\n -rw----     2.0 fat     5050 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/CtClassBuilder.java\n -rw----     2.0 fat     3504 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/JavassistCompiler.java\n -rw----     2.0 fat    11461 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/compiler/support/JdkCompiler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/config/\n--rw----     2.0 fat     4350 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/CompositeConfiguration.java\n--rw----     2.0 fat     6853 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/Configuration.java\n--rw----     2.0 fat     4779 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/ConfigurationUtils.java\n--rw----     2.0 fat    10005 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/Environment.java\n--rw----     2.0 fat     1267 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/EnvironmentConfiguration.java\n--rw----     2.0 fat     1904 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/InmemoryConfiguration.java\n--rw----     2.0 fat     1201 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/OrderedPropertiesProvider.java\n--rw----     2.0 fat     2636 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/PropertiesConfiguration.java\n--rw----     2.0 fat     1197 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/SystemConfiguration.java\n+-rw----     2.0 fat     4477 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/CompositeConfiguration.java\n+-rw----     2.0 fat     7032 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/Configuration.java\n+-rw----     2.0 fat     4912 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/ConfigurationUtils.java\n+-rw----     2.0 fat    10238 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/Environment.java\n+-rw----     2.0 fat     1302 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/EnvironmentConfiguration.java\n+-rw----     2.0 fat     1968 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/InmemoryConfiguration.java\n+-rw----     2.0 fat     1245 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/OrderedPropertiesProvider.java\n+-rw----     2.0 fat     2700 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/PropertiesConfiguration.java\n+-rw----     2.0 fat     1230 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/SystemConfiguration.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/\n--rw----     2.0 fat     9806 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/AbstractDynamicConfiguration.java\n--rw----     2.0 fat     1739 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactory.java\n--rw----     2.0 fat     1096 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigChangeType.java\n--rw----     2.0 fat     2827 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigChangedEvent.java\n--rw----     2.0 fat     1297 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigurationListener.java\n--rw----     2.0 fat     1095 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/Constants.java\n--rw----     2.0 fat     9201 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/DynamicConfiguration.java\n--rw----     2.0 fat     1987 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/DynamicConfigurationFactory.java\n--rw----     2.0 fat     7035 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java\n+-rw----     2.0 fat    10112 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/AbstractDynamicConfiguration.java\n+-rw----     2.0 fat     1782 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactory.java\n+-rw----     2.0 fat     1133 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigChangeType.java\n+-rw----     2.0 fat     2921 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigChangedEvent.java\n+-rw----     2.0 fat     1330 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/ConfigurationListener.java\n+-rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/Constants.java\n+-rw----     2.0 fat     9446 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/DynamicConfiguration.java\n+-rw----     2.0 fat     2033 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/DynamicConfigurationFactory.java\n+-rw----     2.0 fat     7221 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/file/\n--rw----     2.0 fat    22570 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfiguration.java\n--rw----     2.0 fat     1487 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfigurationFactory.java\n+-rw----     2.0 fat    23176 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfiguration.java\n+-rw----     2.0 fat     1522 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/nop/\n--rw----     2.0 fat     2215 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfiguration.java\n--rw----     2.0 fat     1316 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfigurationFactory.java\n+-rw----     2.0 fat     2287 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfiguration.java\n+-rw----     2.0 fat     1349 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/wrapper/\n--rw----     2.0 fat     3914 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/wrapper/CompositeDynamicConfiguration.java\n+-rw----     2.0 fat     4015 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/config/configcenter/wrapper/CompositeDynamicConfiguration.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/\n--rw----     2.0 fat    10256 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/CommonConstants.java\n--rw----     2.0 fat      959 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/FilterConstants.java\n--rw----     2.0 fat     1071 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/QosConstants.java\n--rw----     2.0 fat     3469 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/RegistryConstants.java\n--rw----     2.0 fat      950 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/RemotingConstants.java\n+-rw----     2.0 fat    10649 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/CommonConstants.java\n+-rw----     2.0 fat      983 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/FilterConstants.java\n+-rw----     2.0 fat     1103 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/QosConstants.java\n+-rw----     2.0 fat     3591 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/RegistryConstants.java\n+-rw----     2.0 fat      976 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/constants/RemotingConstants.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/context/\n--rw----     2.0 fat      949 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/FrameworkExt.java\n--rw----     2.0 fat     1469 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/Lifecycle.java\n--rw----     2.0 fat     1146 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/LifecycleAdapter.java\n+-rw----     2.0 fat      973 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/FrameworkExt.java\n+-rw----     2.0 fat     1517 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/Lifecycle.java\n+-rw----     2.0 fat     1181 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/context/LifecycleAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/\n--rw----     2.0 fat     3680 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/Converter.java\n--rw----     2.0 fat     1041 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringConverter.java\n--rw----     2.0 fat     1330 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToBooleanConverter.java\n--rw----     2.0 fat     1300 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToCharArrayConverter.java\n--rw----     2.0 fat     1498 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToCharacterConverter.java\n--rw----     2.0 fat     1326 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToDoubleConverter.java\n--rw----     2.0 fat     1320 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToFloatConverter.java\n--rw----     2.0 fat     1326 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToIntegerConverter.java\n--rw----     2.0 fat     1316 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToLongConverter.java\n--rw----     2.0 fat     1267 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToOptionalConverter.java\n--rw----     2.0 fat     1321 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToShortConverter.java\n--rw----     2.0 fat     1106 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToStringConverter.java\n+-rw----     2.0 fat     3788 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/Converter.java\n+-rw----     2.0 fat     1068 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringConverter.java\n+-rw----     2.0 fat     1368 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToBooleanConverter.java\n+-rw----     2.0 fat     1339 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToCharArrayConverter.java\n+-rw----     2.0 fat     1542 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToCharacterConverter.java\n+-rw----     2.0 fat     1365 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToDoubleConverter.java\n+-rw----     2.0 fat     1358 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToFloatConverter.java\n+-rw----     2.0 fat     1364 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToIntegerConverter.java\n+-rw----     2.0 fat     1355 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToLongConverter.java\n+-rw----     2.0 fat     1307 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToOptionalConverter.java\n+-rw----     2.0 fat     1360 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToShortConverter.java\n+-rw----     2.0 fat     1136 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/StringToStringConverter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/\n--rw----     2.0 fat     3377 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/MultiValueConverter.java\n--rw----     2.0 fat     1908 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToArrayConverter.java\n--rw----     2.0 fat     1295 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverter.java\n--rw----     2.0 fat     1336 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToBlockingQueueConverter.java\n--rw----     2.0 fat     1238 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToCollectionConverter.java\n--rw----     2.0 fat     1215 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToDequeConverter.java\n--rw----     2.0 fat     3106 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToIterableConverter.java\n--rw----     2.0 fat     1208 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToListConverter.java\n--rw----     2.0 fat     2163 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToMultiValueConverter.java\n--rw----     2.0 fat     1265 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverter.java\n--rw----     2.0 fat     1239 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToQueueConverter.java\n--rw----     2.0 fat     1199 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToSetConverter.java\n--rw----     2.0 fat     1225 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToSortedSetConverter.java\n--rw----     2.0 fat     1291 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToTransferQueueConverter.java\n+-rw----     2.0 fat     3469 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/MultiValueConverter.java\n+-rw----     2.0 fat     1968 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToArrayConverter.java\n+-rw----     2.0 fat     1328 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverter.java\n+-rw----     2.0 fat     1370 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToBlockingQueueConverter.java\n+-rw----     2.0 fat     1271 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToCollectionConverter.java\n+-rw----     2.0 fat     1248 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToDequeConverter.java\n+-rw----     2.0 fat     3186 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToIterableConverter.java\n+-rw----     2.0 fat     1241 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToListConverter.java\n+-rw----     2.0 fat     2224 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToMultiValueConverter.java\n+-rw----     2.0 fat     1299 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverter.java\n+-rw----     2.0 fat     1273 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToQueueConverter.java\n+-rw----     2.0 fat     1232 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToSetConverter.java\n+-rw----     2.0 fat     1258 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToSortedSetConverter.java\n+-rw----     2.0 fat     1324 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/convert/multiple/StringToTransferQueueConverter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/\n -rw----     2.0 fat     3450 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/Activate.java\n--rw----     2.0 fat     2631 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/Adaptive.java\n--rw----     2.0 fat    15367 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java\n+-rw----     2.0 fat     2690 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/Adaptive.java\n+-rw----     2.0 fat    15763 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java\n -rw----     2.0 fat     1209 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/DisableInject.java\n--rw----     2.0 fat     1165 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/DubboInternalLoadingStrategy.java\n--rw----     2.0 fat     1220 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/DubboLoadingStrategy.java\n+-rw----     2.0 fat     1200 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/DubboInternalLoadingStrategy.java\n+-rw----     2.0 fat     1262 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/DubboLoadingStrategy.java\n -rw----     2.0 fat     1146 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/ExtensionFactory.java\n--rw----     2.0 fat    40175 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/ExtensionLoader.java\n--rw----     2.0 fat     1422 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/LoadingStrategy.java\n+-rw----     2.0 fat    41222 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/ExtensionLoader.java\n+-rw----     2.0 fat     1464 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/LoadingStrategy.java\n -rw----     2.0 fat     2354 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/SPI.java\n--rw----     2.0 fat     1225 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/ServicesLoadingStrategy.java\n--rw----     2.0 fat     1296 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/Wrapper.java\n+-rw----     2.0 fat     1266 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/ServicesLoadingStrategy.java\n+-rw----     2.0 fat     1333 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/Wrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/factory/\n -rw----     2.0 fat     2048 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/factory/AdaptiveExtensionFactory.java\n -rw----     2.0 fat     1551 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/factory/SpiExtensionFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/support/\n -rw----     2.0 fat     4564 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/support/ActivateComparator.java\n--rw----     2.0 fat     3066 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/support/WrapperComparator.java\n+-rw----     2.0 fat     3160 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/extension/support/WrapperComparator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/function/\n--rw----     2.0 fat     2341 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/Predicates.java\n--rw----     2.0 fat     2683 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/Streams.java\n--rw----     2.0 fat     1592 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableAction.java\n--rw----     2.0 fat     2032 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableConsumer.java\n--rw----     2.0 fat     2181 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableFunction.java\n+-rw----     2.0 fat     2415 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/Predicates.java\n+-rw----     2.0 fat     2754 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/Streams.java\n+-rw----     2.0 fat     1643 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableAction.java\n+-rw----     2.0 fat     2098 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableConsumer.java\n+-rw----     2.0 fat     2252 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/function/ThrowableFunction.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/\n--rw----     2.0 fat     1561 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/InfraAdapter.java\n+-rw----     2.0 fat     1607 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/InfraAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/support/\n--rw----     2.0 fat     1284 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/support/CmdbAdapter.java\n--rw----     2.0 fat     2901 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/support/EnvironmentAdapter.java\n+-rw----     2.0 fat     1323 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/support/CmdbAdapter.java\n+-rw----     2.0 fat     2973 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/infra/support/EnvironmentAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/io/\n--rw----     2.0 fat    25880 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/Bytes.java\n--rw----     2.0 fat     6914 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/StreamUtils.java\n--rw----     2.0 fat     3051 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeByteArrayInputStream.java\n--rw----     2.0 fat     2958 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeByteArrayOutputStream.java\n+-rw----     2.0 fat    26815 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/Bytes.java\n+-rw----     2.0 fat     7145 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/StreamUtils.java\n+-rw----     2.0 fat     3169 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeByteArrayInputStream.java\n+-rw----     2.0 fat     3059 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeByteArrayOutputStream.java\n -rw----     2.0 fat     3173 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeStringReader.java\n--rw----     2.0 fat     2773 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeStringWriter.java\n+-rw----     2.0 fat     2879 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/io/UnsafeStringWriter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/json/\n--rw----     2.0 fat    17621 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/GenericJSONConverter.java\n+-rw----     2.0 fat    18149 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/GenericJSONConverter.java\n -rw----     2.0 fat    13189 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/J2oVisitor.java\n -rw----     2.0 fat    27300 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSON.java\n -rw----     2.0 fat     4912 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONArray.java\n -rw----     2.0 fat     1461 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONConverter.java\n -rw----     2.0 fat     1198 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONNode.java\n -rw----     2.0 fat     5627 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONObject.java\n -rw----     2.0 fat     2214 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONReader.java\n -rw----     2.0 fat     2247 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONToken.java\n -rw----     2.0 fat     2796 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONVisitor.java\n -rw----     2.0 fat     8159 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/JSONWriter.java\n -rw----     2.0 fat     1161 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/ParseException.java\n--rw----     2.0 fat    29369 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/Yylex.java\n+-rw----     2.0 fat    30215 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/json/Yylex.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/\n--rw----     2.0 fat     2306 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/Prioritized.java\n--rw----     2.0 fat     1160 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/ShutdownHookCallback.java\n--rw----     2.0 fat     2336 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/ShutdownHookCallbacks.java\n+-rw----     2.0 fat     2382 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/Prioritized.java\n+-rw----     2.0 fat     1195 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/ShutdownHookCallback.java\n+-rw----     2.0 fat     2407 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/lang/ShutdownHookCallbacks.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/\n -rw----     2.0 fat     1214 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/Level.java\n--rw----     2.0 fat     3800 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/Logger.java\n+-rw----     2.0 fat     3970 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/Logger.java\n -rw----     2.0 fat     1861 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/LoggerAdapter.java\n -rw----     2.0 fat     5253 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/LoggerFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/jcl/\n -rw----     2.0 fat     3342 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/jcl/JclLogger.java\n -rw----     2.0 fat     1784 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/jcl/JclLoggerAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/jdk/\n -rw----     2.0 fat     3355 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/jdk/JdkLogger.java\n@@ -742,478 +742,478 @@\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/slf4j/\n -rw----     2.0 fat     6262 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/slf4j/Slf4jLogger.java\n -rw----     2.0 fat     1775 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/slf4j/Slf4jLoggerAdapter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/support/\n -rw----     2.0 fat     5045 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/logger/support/FailsafeLogger.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/\n -rw----     2.0 fat     1059 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/Cleanable.java\n--rw----     2.0 fat     1444 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/Constants.java\n+-rw----     2.0 fat     1480 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/Constants.java\n -rw----     2.0 fat     2284 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/DataInput.java\n -rw----     2.0 fat     2741 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/DataOutput.java\n--rw----     2.0 fat     3412 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/ObjectInput.java\n--rw----     2.0 fat     2281 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/ObjectOutput.java\n--rw----     2.0 fat     2519 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/Serialization.java\n+-rw----     2.0 fat     3500 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/ObjectInput.java\n+-rw----     2.0 fat     2340 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/ObjectOutput.java\n+-rw----     2.0 fat     2595 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/Serialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/avro/\n -rw----     2.0 fat     3732 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/avro/AvroObjectInput.java\n -rw----     2.0 fat     3279 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/avro/AvroObjectOutput.java\n -rw----     2.0 fat     1817 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/avro/AvroSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/\n--rw----     2.0 fat     3363 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/FastJsonObjectInput.java\n+-rw----     2.0 fat     3484 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/FastJsonObjectInput.java\n -rw----     2.0 fat     3299 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/FastJsonObjectOutput.java\n--rw----     2.0 fat     1920 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/FastJsonSerialization.java\n+-rw----     2.0 fat     1979 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fastjson/FastJsonSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/\n--rw----     2.0 fat     1825 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstFactory.java\n+-rw----     2.0 fat     1878 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstFactory.java\n -rw----     2.0 fat     3315 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstObjectInput.java\n -rw----     2.0 fat     2922 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstObjectOutput.java\n--rw----     2.0 fat     1875 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstSerialization.java\n+-rw----     2.0 fat     1933 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/fst/FstSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/\n--rw----     2.0 fat     3417 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonJsonObjectInput.java\n--rw----     2.0 fat     2872 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java\n--rw----     2.0 fat     1772 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonSerialization.java\n+-rw----     2.0 fat     3538 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonJsonObjectInput.java\n+-rw----     2.0 fat     2980 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java\n+-rw----     2.0 fat     1825 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/gson/GsonSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/\n--rw----     2.0 fat     3396 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java\n--rw----     2.0 fat     3274 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java\n--rw----     2.0 fat     1979 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2Serialization.java\n--rw----     2.0 fat     1159 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java\n+-rw----     2.0 fat     3516 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java\n+-rw----     2.0 fat     3391 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java\n+-rw----     2.0 fat     2038 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2Serialization.java\n+-rw----     2.0 fat     1189 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/\n--rw----     2.0 fat     1448 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/AbstractHessian2FactoryInitializer.java\n--rw----     2.0 fat     1222 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/DefaultHessian2FactoryInitializer.java\n--rw----     2.0 fat     1833 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/Hessian2FactoryInitializer.java\n--rw----     2.0 fat     2194 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/WhitelistHessian2FactoryInitializer.java\n+-rw----     2.0 fat     1484 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/AbstractHessian2FactoryInitializer.java\n+-rw----     2.0 fat     1250 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/DefaultHessian2FactoryInitializer.java\n+-rw----     2.0 fat     1876 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/Hessian2FactoryInitializer.java\n+-rw----     2.0 fat     2244 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/hessian2/dubbo/WhitelistHessian2FactoryInitializer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/\n--rw----     2.0 fat     1954 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/CompactedJavaSerialization.java\n--rw----     2.0 fat     2305 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/CompactedObjectInputStream.java\n+-rw----     2.0 fat     2013 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/CompactedJavaSerialization.java\n+-rw----     2.0 fat     2368 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/CompactedObjectInputStream.java\n -rw----     2.0 fat     1607 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/CompactedObjectOutputStream.java\n -rw----     2.0 fat     2948 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/JavaObjectInput.java\n -rw----     2.0 fat     2177 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/JavaObjectOutput.java\n--rw----     2.0 fat     1885 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/JavaSerialization.java\n+-rw----     2.0 fat     1944 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/java/JavaSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/\n--rw----     2.0 fat     2639 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/CompatibleKryo.java\n+-rw----     2.0 fat     2693 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/CompatibleKryo.java\n -rw----     2.0 fat     4598 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/KryoObjectInput.java\n -rw----     2.0 fat     3306 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/KryoObjectOutput.java\n--rw----     2.0 fat     1951 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/KryoSerialization.java\n+-rw----     2.0 fat     2009 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/KryoSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/\n--rw----     2.0 fat     4791 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectInput2.java\n--rw----     2.0 fat     3293 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java\n--rw----     2.0 fat     1945 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoSerialization2.java\n+-rw----     2.0 fat     4959 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectInput2.java\n+-rw----     2.0 fat     3415 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java\n+-rw----     2.0 fat     2002 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/optimized/KryoSerialization2.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/\n--rw----     2.0 fat     5810 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/AbstractKryoFactory.java\n+-rw----     2.0 fat     5968 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/AbstractKryoFactory.java\n -rw----     2.0 fat     1527 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/KryoUtils.java\n -rw----     2.0 fat     1413 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/PooledKryoFactory.java\n--rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/PrototypeKryoFactory.java\n--rw----     2.0 fat     1302 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/ThreadLocalKryoFactory.java\n+-rw----     2.0 fat     1152 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/PrototypeKryoFactory.java\n+-rw----     2.0 fat     1341 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/kryo/utils/ThreadLocalKryoFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/nativejava/\n -rw----     2.0 fat     3454 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/nativejava/NativeJavaObjectInput.java\n -rw----     2.0 fat     3310 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/nativejava/NativeJavaObjectOutput.java\n--rw----     2.0 fat     1955 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/nativejava/NativeJavaSerialization.java\n+-rw----     2.0 fat     2015 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/nativejava/NativeJavaSerialization.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/\n--rw----     2.0 fat     5367 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java\n--rw----     2.0 fat     5344 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java\n--rw----     2.0 fat     1918 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java\n--rw----     2.0 fat     4776 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java\n--rw----     2.0 fat     5377 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java\n--rw----     2.0 fat     2439 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java\n--rw----     2.0 fat     8140 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java\n--rw----     2.0 fat     2577 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java\n+-rw----     2.0 fat     5531 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java\n+-rw----     2.0 fat     5504 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java\n+-rw----     2.0 fat     1972 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java\n+-rw----     2.0 fat     4922 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java\n+-rw----     2.0 fat     5533 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java\n+-rw----     2.0 fat     2502 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java\n+-rw----     2.0 fat     8345 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java\n+-rw----     2.0 fat     2645 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/\n -rw----     2.0 fat    31696 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/MapValue.java\n--rw----     2.0 fat   102165 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java\n+-rw----     2.0 fat   102349 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/\n -rw----     2.0 fat     4237 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/ProtostuffObjectInput.java\n--rw----     2.0 fat     3890 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/ProtostuffObjectOutput.java\n--rw----     2.0 fat     1950 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/ProtostuffSerialization.java\n+-rw----     2.0 fat     4020 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/ProtostuffObjectOutput.java\n+-rw----     2.0 fat     2008 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/ProtostuffSerialization.java\n -rw----     2.0 fat     1153 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/Wrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/\n--rw----     2.0 fat     1918 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/SqlDateDelegate.java\n+-rw----     2.0 fat     1973 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/SqlDateDelegate.java\n -rw----     2.0 fat     1939 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/TimeDelegate.java\n--rw----     2.0 fat     1912 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/TimestampDelegate.java\n+-rw----     2.0 fat     1969 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/delegate/TimestampDelegate.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/utils/\n--rw----     2.0 fat     3838 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/utils/WrapperUtils.java\n+-rw----     2.0 fat     3953 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/protostuff/utils/WrapperUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/support/\n--rw----     2.0 fat     2088 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/support/SerializableClassRegistry.java\n--rw----     2.0 fat     1171 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/support/SerializationOptimizer.java\n+-rw----     2.0 fat     2149 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/support/SerializableClassRegistry.java\n+-rw----     2.0 fat     1203 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/serialize/support/SerializationOptimizer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/status/\n -rw----     2.0 fat     1885 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/status/Status.java\n -rw----     2.0 fat     1074 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/status/StatusChecker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/status/support/\n -rw----     2.0 fat     2215 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/status/support/LoadStatusChecker.java\n -rw----     2.0 fat     1793 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/status/support/MemoryStatusChecker.java\n -rw----     2.0 fat     2004 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/status/support/StatusUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/store/\n -rw----     2.0 fat     1280 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/store/DataStore.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/store/support/\n--rw----     2.0 fat     2247 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/store/support/SimpleDataStore.java\n+-rw----     2.0 fat     2312 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/store/support/SimpleDataStore.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/\n--rw----     2.0 fat     1849 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalRunnable.java\n+-rw----     2.0 fat     1902 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalRunnable.java\n -rw----     2.0 fat     2445 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalThread.java\n--rw----     2.0 fat     6904 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalThreadLocal.java\n--rw----     2.0 fat     5464 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java\n--rw----     2.0 fat     1630 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/NamedInternalThreadFactory.java\n+-rw----     2.0 fat     7102 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalThreadLocal.java\n+-rw----     2.0 fat     5631 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java\n+-rw----     2.0 fat     1677 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadlocal/NamedInternalThreadFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/\n--rw----     2.0 fat     1355 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/ThreadPool.java\n--rw----     2.0 fat     6805 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/ThreadlessExecutor.java\n+-rw----     2.0 fat     1397 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/ThreadPool.java\n+-rw----     2.0 fat     7007 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/ThreadlessExecutor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/concurrent/\n--rw----     2.0 fat     2316 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/concurrent/ScheduledCompletableFuture.java\n+-rw----     2.0 fat     2381 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/concurrent/ScheduledCompletableFuture.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/event/\n--rw----     2.0 fat     1243 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/event/ThreadPoolExhaustedEvent.java\n+-rw----     2.0 fat     1281 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/event/ThreadPoolExhaustedEvent.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/\n--rw----     2.0 fat     7728 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java\n--rw----     2.0 fat     2329 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java\n--rw----     2.0 fat     2042 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/Ring.java\n+-rw----     2.0 fat     7903 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java\n+-rw----     2.0 fat     2400 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java\n+-rw----     2.0 fat     2108 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/manager/Ring.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/\n -rw----     2.0 fat     5991 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/AbortPolicyWithReport.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/cached/\n -rw----     2.0 fat     3197 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/cached/CachedThreadPool.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/eager/\n--rw----     2.0 fat     3009 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/eager/EagerThreadPool.java\n+-rw----     2.0 fat     3074 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/eager/EagerThreadPool.java\n -rw----     2.0 fat     3262 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/eager/EagerThreadPoolExecutor.java\n -rw----     2.0 fat     2951 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/eager/TaskQueue.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/fixed/\n -rw----     2.0 fat     2723 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/fixed/FixedThreadPool.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/limited/\n--rw----     2.0 fat     2933 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/limited/LimitedThreadPool.java\n+-rw----     2.0 fat     2992 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/threadpool/support/limited/LimitedThreadPool.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/\n--rw----     2.0 fat    31161 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/HashedWheelTimer.java\n+-rw----     2.0 fat    31975 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/HashedWheelTimer.java\n -rw----     2.0 fat     1692 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/Timeout.java\n -rw----     2.0 fat     1897 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/Timer.java\n -rw----     2.0 fat     1175 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/timer/TimerTask.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/\n--rw----     2.0 fat    21253 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/AnnotationUtils.java\n--rw----     2.0 fat     2358 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ArrayUtils.java\n+-rw----     2.0 fat    21735 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/AnnotationUtils.java\n+-rw----     2.0 fat     2437 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ArrayUtils.java\n -rw----     2.0 fat     1438 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Assert.java\n -rw----     2.0 fat     4681 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/AtomicPositiveInteger.java\n -rw----     2.0 fat     4986 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CIDRUtils.java\n--rw----     2.0 fat     1296 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CharSequenceComparator.java\n--rw----     2.0 fat     5560 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ClassHelper.java\n--rw----     2.0 fat    17955 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ClassUtils.java\n+-rw----     2.0 fat     1333 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CharSequenceComparator.java\n+-rw----     2.0 fat     5713 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ClassHelper.java\n+-rw----     2.0 fat    18451 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ClassUtils.java\n -rw----     2.0 fat    11618 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CollectionUtils.java\n--rw----     2.0 fat     9054 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CompatibleTypeUtils.java\n+-rw----     2.0 fat     9283 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/CompatibleTypeUtils.java\n -rw----     2.0 fat     4553 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ConcurrentHashSet.java\n -rw----     2.0 fat    12213 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ConfigUtils.java\n--rw----     2.0 fat     2212 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/DefaultPage.java\n+-rw----     2.0 fat     2294 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/DefaultPage.java\n -rw----     2.0 fat     2063 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/DubboAppender.java\n--rw----     2.0 fat     5181 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ExecutorUtil.java\n--rw----     2.0 fat     4929 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/FieldUtils.java\n+-rw----     2.0 fat     5321 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ExecutorUtil.java\n+-rw----     2.0 fat     5071 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/FieldUtils.java\n -rw----     2.0 fat     1091 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Holder.java\n -rw----     2.0 fat     8471 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/IOUtils.java\n -rw----     2.0 fat     4172 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/JVMUtil.java\n--rw----     2.0 fat     8550 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/LFUCache.java\n+-rw----     2.0 fat     8835 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/LFUCache.java\n -rw----     2.0 fat     3010 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/LRUCache.java\n -rw----     2.0 fat     3498 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Log.java\n -rw----     2.0 fat     4289 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/LogHelper.java\n -rw----     2.0 fat     4258 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/LogUtil.java\n--rw----     2.0 fat     2400 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MemberUtils.java\n--rw----     2.0 fat     2361 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MethodComparator.java\n--rw----     2.0 fat    14795 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MethodUtils.java\n+-rw----     2.0 fat     2461 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MemberUtils.java\n+-rw----     2.0 fat     2432 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MethodComparator.java\n+-rw----     2.0 fat    15184 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/MethodUtils.java\n -rw----     2.0 fat     2139 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/NamedThreadFactory.java\n -rw----     2.0 fat    24007 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/NetUtils.java\n--rw----     2.0 fat     2067 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Page.java\n--rw----     2.0 fat     2394 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/PathUtils.java\n+-rw----     2.0 fat     2154 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Page.java\n+-rw----     2.0 fat     2468 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/PathUtils.java\n -rw----     2.0 fat    33568 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/PojoUtils.java\n--rw----     2.0 fat    47389 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ReflectUtils.java\n--rw----     2.0 fat     5895 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/SerializeClassChecker.java\n--rw----     2.0 fat     4554 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ServiceAnnotationResolver.java\n--rw----     2.0 fat     3261 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Stack.java\n--rw----     2.0 fat     2588 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/StringConstantFieldValuePredicate.java\n+-rw----     2.0 fat    48784 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ReflectUtils.java\n+-rw----     2.0 fat     6045 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/SerializeClassChecker.java\n+-rw----     2.0 fat     4686 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/ServiceAnnotationResolver.java\n+-rw----     2.0 fat     3403 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Stack.java\n+-rw----     2.0 fat     2655 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/StringConstantFieldValuePredicate.java\n -rw----     2.0 fat    37744 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/StringUtils.java\n--rw----     2.0 fat     8696 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/TypeUtils.java\n+-rw----     2.0 fat     8920 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/TypeUtils.java\n -rw----     2.0 fat    25423 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/UrlUtils.java\n--rw----     2.0 fat     9926 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Utf8Utils.java\n+-rw----     2.0 fat    10155 bX stor 70-Jan-01 00:00 org/apache/dubbo/common/utils/Utf8Utils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/\n--rw----     2.0 fat    25642 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractConfig.java\n--rw----     2.0 fat    24311 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractInterfaceConfig.java\n--rw----     2.0 fat     4661 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractMethodConfig.java\n--rw----     2.0 fat     5621 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractReferenceConfig.java\n--rw----     2.0 fat     6722 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractServiceConfig.java\n--rw----     2.0 fat    13583 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ApplicationConfig.java\n--rw----     2.0 fat     2126 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ArgumentConfig.java\n--rw----     2.0 fat     8859 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigCenterConfig.java\n--rw----     2.0 fat     1137 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigInitializer.java\n--rw----     2.0 fat     1116 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigPostProcessor.java\n--rw----     2.0 fat     2849 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/Constants.java\n--rw----     2.0 fat     3568 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConsumerConfig.java\n--rw----     2.0 fat     4895 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/DubboShutdownHook.java\n--rw----     2.0 fat     6022 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MetadataReportConfig.java\n--rw----     2.0 fat     8564 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MethodConfig.java\n--rw----     2.0 fat     1626 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MetricsConfig.java\n--rw----     2.0 fat     3573 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ModuleConfig.java\n--rw----     2.0 fat     3712 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MonitorConfig.java\n--rw----     2.0 fat    13245 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ProtocolConfig.java\n--rw----     2.0 fat    10388 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ProviderConfig.java\n--rw----     2.0 fat    24129 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ReferenceConfig.java\n--rw----     2.0 fat     8359 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ReferenceConfigBase.java\n--rw----     2.0 fat    13074 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/RegistryConfig.java\n--rw----     2.0 fat    32215 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ServiceConfig.java\n--rw----     2.0 fat    13449 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ServiceConfigBase.java\n--rw----     2.0 fat     7142 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/SslConfig.java\n+-rw----     2.0 fat    26256 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractConfig.java\n+-rw----     2.0 fat    25069 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractInterfaceConfig.java\n+-rw----     2.0 fat     4869 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractMethodConfig.java\n+-rw----     2.0 fat     5847 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractReferenceConfig.java\n+-rw----     2.0 fat     7013 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/AbstractServiceConfig.java\n+-rw----     2.0 fat    14087 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ApplicationConfig.java\n+-rw----     2.0 fat     2209 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ArgumentConfig.java\n+-rw----     2.0 fat     9148 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigCenterConfig.java\n+-rw----     2.0 fat     1173 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigInitializer.java\n+-rw----     2.0 fat     1151 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConfigPostProcessor.java\n+-rw----     2.0 fat     2969 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/Constants.java\n+-rw----     2.0 fat     3703 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ConsumerConfig.java\n+-rw----     2.0 fat     5044 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/DubboShutdownHook.java\n+-rw----     2.0 fat     6249 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MetadataReportConfig.java\n+-rw----     2.0 fat     8896 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MethodConfig.java\n+-rw----     2.0 fat     1679 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MetricsConfig.java\n+-rw----     2.0 fat     3726 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ModuleConfig.java\n+-rw----     2.0 fat     3872 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/MonitorConfig.java\n+-rw----     2.0 fat    13843 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ProtocolConfig.java\n+-rw----     2.0 fat    10860 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ProviderConfig.java\n+-rw----     2.0 fat    24683 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ReferenceConfig.java\n+-rw----     2.0 fat     8623 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ReferenceConfigBase.java\n+-rw----     2.0 fat    13607 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/RegistryConfig.java\n+-rw----     2.0 fat    32942 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ServiceConfig.java\n+-rw----     2.0 fat    13864 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/ServiceConfigBase.java\n+-rw----     2.0 fat     7330 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/SslConfig.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/\n--rw----     2.0 fat     1444 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Argument.java\n--rw----     2.0 fat     7538 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/DubboReference.java\n--rw----     2.0 fat     6794 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/DubboService.java\n--rw----     2.0 fat     1873 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Method.java\n--rw----     2.0 fat     7067 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Reference.java\n--rw----     2.0 fat     6844 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Service.java\n+-rw----     2.0 fat     1488 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Argument.java\n+-rw----     2.0 fat     7836 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/DubboReference.java\n+-rw----     2.0 fat     7072 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/DubboService.java\n+-rw----     2.0 fat     1944 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Method.java\n+-rw----     2.0 fat     7349 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Reference.java\n+-rw----     2.0 fat     7125 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/annotation/Service.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/\n--rw----     2.0 fat    52396 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/DubboBootstrap.java\n--rw----     2.0 fat     1132 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/DubboBootstrapStartStopListener.java\n+-rw----     2.0 fat    53805 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/DubboBootstrap.java\n+-rw----     2.0 fat     1166 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/DubboBootstrapStartStopListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/\n--rw----     2.0 fat     2533 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractBuilder.java\n--rw----     2.0 fat     9212 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilder.java\n--rw----     2.0 fat     5506 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilder.java\n--rw----     2.0 fat     4105 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilder.java\n--rw----     2.0 fat     6787 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilder.java\n--rw----     2.0 fat     6767 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ApplicationBuilder.java\n--rw----     2.0 fat     1865 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ArgumentBuilder.java\n--rw----     2.0 fat     4350 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilder.java\n--rw----     2.0 fat     3389 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ConsumerBuilder.java\n--rw----     2.0 fat     4303 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilder.java\n--rw----     2.0 fat     6115 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MethodBuilder.java\n--rw----     2.0 fat     3460 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ModuleBuilder.java\n--rw----     2.0 fat     3748 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MonitorBuilder.java\n--rw----     2.0 fat    10054 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ProtocolBuilder.java\n--rw----     2.0 fat     6786 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ProviderBuilder.java\n--rw----     2.0 fat     4644 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ReferenceBuilder.java\n--rw----     2.0 fat     9666 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/RegistryBuilder.java\n--rw----     2.0 fat     4440 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ServiceBuilder.java\n--rw----     2.0 fat     1034 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/package-info.java\n+-rw----     2.0 fat     2615 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractBuilder.java\n+-rw----     2.0 fat     9557 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilder.java\n+-rw----     2.0 fat     5719 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilder.java\n+-rw----     2.0 fat     4266 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilder.java\n+-rw----     2.0 fat     7059 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilder.java\n+-rw----     2.0 fat     6981 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ApplicationBuilder.java\n+-rw----     2.0 fat     1928 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ArgumentBuilder.java\n+-rw----     2.0 fat     4491 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilder.java\n+-rw----     2.0 fat     3507 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ConsumerBuilder.java\n+-rw----     2.0 fat     4447 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilder.java\n+-rw----     2.0 fat     6352 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MethodBuilder.java\n+-rw----     2.0 fat     3592 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ModuleBuilder.java\n+-rw----     2.0 fat     3885 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/MonitorBuilder.java\n+-rw----     2.0 fat    10481 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ProtocolBuilder.java\n+-rw----     2.0 fat     7079 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ProviderBuilder.java\n+-rw----     2.0 fat     4809 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ReferenceBuilder.java\n+-rw----     2.0 fat    10049 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/RegistryBuilder.java\n+-rw----     2.0 fat     4601 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/ServiceBuilder.java\n+-rw----     2.0 fat     1054 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/bootstrap/builders/package-info.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/context/\n--rw----     2.0 fat     1937 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/context/ConfigConfigurationAdapter.java\n--rw----     2.0 fat    18420 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/context/ConfigManager.java\n+-rw----     2.0 fat     1985 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/context/ConfigConfigurationAdapter.java\n+-rw----     2.0 fat    18951 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/context/ConfigManager.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/event/\n--rw----     2.0 fat     1145 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboServiceDestroyedEvent.java\n--rw----     2.0 fat     1680 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboShutdownHookRegisteredEvent.java\n--rw----     2.0 fat     1688 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboShutdownHookUnregisteredEvent.java\n--rw----     2.0 fat     1444 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ReferenceConfigDestroyedEvent.java\n--rw----     2.0 fat     1642 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ReferenceConfigInitializedEvent.java\n--rw----     2.0 fat     1274 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ServiceConfigExportedEvent.java\n--rw----     2.0 fat     1282 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ServiceConfigUnexportedEvent.java\n+-rw----     2.0 fat     1177 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboServiceDestroyedEvent.java\n+-rw----     2.0 fat     1726 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboShutdownHookRegisteredEvent.java\n+-rw----     2.0 fat     1733 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/DubboShutdownHookUnregisteredEvent.java\n+-rw----     2.0 fat     1484 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ReferenceConfigDestroyedEvent.java\n+-rw----     2.0 fat     1690 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ReferenceConfigInitializedEvent.java\n+-rw----     2.0 fat     1310 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ServiceConfigExportedEvent.java\n+-rw----     2.0 fat     1318 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/ServiceConfigUnexportedEvent.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/event/listener/\n--rw----     2.0 fat     1857 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/listener/LoggingEventListener.java\n+-rw----     2.0 fat     1908 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/event/listener/LoggingEventListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/invoker/\n--rw----     2.0 fat     2045 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java\n+-rw----     2.0 fat     2112 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/metadata/\n--rw----     2.0 fat     4697 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java\n--rw----     2.0 fat     2579 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/metadata/ServiceInstancePortCustomizer.java\n+-rw----     2.0 fat     4826 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java\n+-rw----     2.0 fat     2643 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/metadata/ServiceInstancePortCustomizer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/\n--rw----     2.0 fat     4552 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ConfigCenterBean.java\n--rw----     2.0 fat     4956 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ReferenceBean.java\n--rw----     2.0 fat     4443 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ServiceBean.java\n+-rw----     2.0 fat     4659 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ConfigCenterBean.java\n+-rw----     2.0 fat     5080 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ReferenceBean.java\n+-rw----     2.0 fat     4588 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/ServiceBean.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/\n--rw----     2.0 fat     6211 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java\n--rw----     2.0 fat     6768 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AnnotatedInterfaceConfigBeanBuilder.java\n--rw----     2.0 fat     3037 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java\n--rw----     2.0 fat     3124 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/DubboConfigAliasPostProcessor.java\n--rw----     2.0 fat    18630 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java\n--rw----     2.0 fat     7388 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java\n--rw----     2.0 fat     1814 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java\n--rw----     2.0 fat     4469 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java\n--rw----     2.0 fat    22089 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceClassPostProcessor.java\n+-rw----     2.0 fat     6425 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java\n+-rw----     2.0 fat     6982 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AnnotatedInterfaceConfigBeanBuilder.java\n+-rw----     2.0 fat     3121 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java\n+-rw----     2.0 fat     3198 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/DubboConfigAliasPostProcessor.java\n+-rw----     2.0 fat    19046 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java\n+-rw----     2.0 fat     7565 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java\n+-rw----     2.0 fat     1863 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java\n+-rw----     2.0 fat     4590 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java\n+-rw----     2.0 fat    22628 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/annotation/ServiceClassPostProcessor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/\n--rw----     2.0 fat     1601 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/ConfigurableSourceBeanMetadataElement.java\n--rw----     2.0 fat     4435 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/DubboConfigDefaultPropertyValueBeanPostProcessor.java\n--rw----     2.0 fat     5548 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/DubboConfigEarlyInitializationPostProcessor.java\n+-rw----     2.0 fat     1640 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/ConfigurableSourceBeanMetadataElement.java\n+-rw----     2.0 fat     4541 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/DubboConfigDefaultPropertyValueBeanPostProcessor.java\n+-rw----     2.0 fat     5675 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/beans/factory/config/DubboConfigEarlyInitializationPostProcessor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/\n--rw----     2.0 fat     2658 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboApplicationListenerRegistrar.java\n--rw----     2.0 fat     3109 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java\n--rw----     2.0 fat     1859 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboBootstrapStartStopListenerSpringAdapter.java\n--rw----     2.0 fat     3756 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboLifecycleComponentApplicationListener.java\n+-rw----     2.0 fat     2717 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboApplicationListenerRegistrar.java\n+-rw----     2.0 fat     3189 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java\n+-rw----     2.0 fat     1907 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboBootstrapStartStopListenerSpringAdapter.java\n+-rw----     2.0 fat     3853 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/DubboLifecycleComponentApplicationListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/\n -rw----     2.0 fat     2710 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboClassPathBeanDefinitionScanner.java\n -rw----     2.0 fat     2767 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboComponentScan.java\n--rw----     2.0 fat     4465 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java\n--rw----     2.0 fat     4789 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java\n--rw----     2.0 fat     3172 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java\n--rw----     2.0 fat     2055 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboLifecycleComponentRegistrar.java\n--rw----     2.0 fat     2857 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubbo.java\n--rw----     2.0 fat     3469 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubboConfig.java\n--rw----     2.0 fat     1589 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubboLifecycle.java\n+-rw----     2.0 fat     4564 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java\n+-rw----     2.0 fat     4882 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java\n+-rw----     2.0 fat     3244 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java\n+-rw----     2.0 fat     2099 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/DubboLifecycleComponentRegistrar.java\n+-rw----     2.0 fat     2938 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubbo.java\n+-rw----     2.0 fat     3550 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubboConfig.java\n+-rw----     2.0 fat     1631 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/annotation/EnableDubboLifecycle.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/config/\n--rw----     2.0 fat     2421 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/config/DubboConfigBeanCustomizer.java\n--rw----     2.0 fat     3283 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/config/NamePropertyDefaultValueDubboConfigBeanCustomizer.java\n+-rw----     2.0 fat     2474 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/config/DubboConfigBeanCustomizer.java\n+-rw----     2.0 fat     3369 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/config/NamePropertyDefaultValueDubboConfigBeanCustomizer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/\n--rw----     2.0 fat     1847 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/DubboBootstrapStatedEvent.java\n--rw----     2.0 fat     1846 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/DubboBootstrapStopedEvent.java\n+-rw----     2.0 fat     1897 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/DubboBootstrapStatedEvent.java\n+-rw----     2.0 fat     1896 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/DubboBootstrapStopedEvent.java\n -rw----     2.0 fat     1734 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/event/ServiceBeanExportedEvent.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/properties/\n -rw----     2.0 fat     2368 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/properties/AbstractDubboConfigBinder.java\n--rw----     2.0 fat     1963 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java\n+-rw----     2.0 fat     2011 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java\n -rw----     2.0 fat     2189 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/context/properties/DubboConfigBinder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/extension/\n--rw----     2.0 fat     2862 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java\n+-rw----     2.0 fat     2942 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/\n--rw----     2.0 fat     2898 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java\n--rw----     2.0 fat    22542 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java\n--rw----     2.0 fat     5007 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java\n+-rw----     2.0 fat     2977 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java\n+-rw----     2.0 fat    22964 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java\n+-rw----     2.0 fat     5112 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/status/\n--rw----     2.0 fat     3414 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java\n--rw----     2.0 fat     3692 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/status/SpringStatusChecker.java\n+-rw----     2.0 fat     3503 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java\n+-rw----     2.0 fat     3792 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/status/SpringStatusChecker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/util/\n--rw----     2.0 fat     6338 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java\n--rw----     2.0 fat     7305 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/util/DubboBeanUtils.java\n+-rw----     2.0 fat     6488 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java\n+-rw----     2.0 fat     7466 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/spring/util/DubboBeanUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/support/\n--rw----     2.0 fat     2038 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/support/Parameter.java\n+-rw----     2.0 fat     2099 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/support/Parameter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/config/utils/\n--rw----     2.0 fat    29526 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/utils/ConfigValidationUtils.java\n--rw----     2.0 fat     8829 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/utils/ReferenceConfigCache.java\n+-rw----     2.0 fat    30184 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/utils/ConfigValidationUtils.java\n+-rw----     2.0 fat     9081 bX stor 70-Jan-01 00:00 org/apache/dubbo/config/utils/ReferenceConfigCache.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/consul/\n--rw----     2.0 fat     6887 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/consul/ConsulDynamicConfiguration.java\n--rw----     2.0 fat     1332 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/consul/ConsulDynamicConfigurationFactory.java\n+-rw----     2.0 fat     7068 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/consul/ConsulDynamicConfiguration.java\n+-rw----     2.0 fat     1364 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/consul/ConsulDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/\n--rw----     2.0 fat    11818 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n--rw----     2.0 fat     1306 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n+-rw----     2.0 fat    12076 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java\n+-rw----     2.0 fat     1337 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/etcd/\n--rw----     2.0 fat     7055 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfiguration.java\n--rw----     2.0 fat     1373 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfigurationFactory.java\n+-rw----     2.0 fat     7252 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfiguration.java\n+-rw----     2.0 fat     1406 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/\n--rw----     2.0 fat     2563 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java\n--rw----     2.0 fat    13610 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java\n--rw----     2.0 fat     1789 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java\n+-rw----     2.0 fat     2628 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java\n+-rw----     2.0 fat    13976 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java\n+-rw----     2.0 fat     1830 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/\n--rw----     2.0 fat     5114 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java\n--rw----     2.0 fat     4189 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfiguration.java\n--rw----     2.0 fat     1609 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationFactory.java\n+-rw----     2.0 fat     5248 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java\n+-rw----     2.0 fat     4305 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfiguration.java\n+-rw----     2.0 fat     1648 bX stor 70-Jan-01 00:00 org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/container/\n -rw----     2.0 fat     1175 bX stor 70-Jan-01 00:00 org/apache/dubbo/container/Container.java\n -rw----     2.0 fat     4373 bX stor 70-Jan-01 00:00 org/apache/dubbo/container/Main.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/container/log4j/\n -rw----     2.0 fat     4598 bX stor 70-Jan-01 00:00 org/apache/dubbo/container/log4j/Log4jContainer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/container/logback/\n -rw----     2.0 fat     4047 bX stor 70-Jan-01 00:00 org/apache/dubbo/container/logback/LogbackContainer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/container/spring/\n -rw----     2.0 fat     2450 bX stor 70-Jan-01 00:00 org/apache/dubbo/container/spring/SpringContainer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/event/\n--rw----     2.0 fat     5846 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/AbstractEventDispatcher.java\n--rw----     2.0 fat     1371 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/ConditionalEventListener.java\n--rw----     2.0 fat     1124 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/DirectEventDispatcher.java\n--rw----     2.0 fat     1566 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/Event.java\n--rw----     2.0 fat     2268 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/EventDispatcher.java\n--rw----     2.0 fat     4714 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/EventListener.java\n--rw----     2.0 fat     1123 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/GenericEvent.java\n--rw----     2.0 fat     4621 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/GenericEventListener.java\n--rw----     2.0 fat     5306 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/Listenable.java\n--rw----     2.0 fat     1213 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/ParallelEventDispatcher.java\n+-rw----     2.0 fat     6014 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/AbstractEventDispatcher.java\n+-rw----     2.0 fat     1406 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/ConditionalEventListener.java\n+-rw----     2.0 fat     1154 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/DirectEventDispatcher.java\n+-rw----     2.0 fat     1615 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/Event.java\n+-rw----     2.0 fat     2334 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/EventDispatcher.java\n+-rw----     2.0 fat     4832 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/EventListener.java\n+-rw----     2.0 fat     1157 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/GenericEvent.java\n+-rw----     2.0 fat     4751 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/GenericEventListener.java\n+-rw----     2.0 fat     5437 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/Listenable.java\n+-rw----     2.0 fat     1245 bX stor 70-Jan-01 00:00 org/apache/dubbo/event/ParallelEventDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/\n--rw----     2.0 fat     2647 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/DefaultMetadataParamsFilter.java\n--rw----     2.0 fat     4111 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/DynamicConfigurationServiceNameMapping.java\n--rw----     2.0 fat     1266 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MappingChangedEvent.java\n--rw----     2.0 fat      920 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MappingListener.java\n--rw----     2.0 fat     1244 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataChangeListener.java\n--rw----     2.0 fat     1583 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataConstants.java\n--rw----     2.0 fat    14972 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataInfo.java\n--rw----     2.0 fat     1213 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataParamsFilter.java\n--rw----     2.0 fat    10777 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataService.java\n--rw----     2.0 fat     3084 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataServiceExporter.java\n--rw----     2.0 fat     2236 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataServiceType.java\n--rw----     2.0 fat     2049 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/RevisionResolver.java\n--rw----     2.0 fat     2905 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/ServiceNameMapping.java\n--rw----     2.0 fat     2647 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/WritableMetadataService.java\n+-rw----     2.0 fat     2702 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/DefaultMetadataParamsFilter.java\n+-rw----     2.0 fat     4214 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/DynamicConfigurationServiceNameMapping.java\n+-rw----     2.0 fat     1307 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MappingChangedEvent.java\n+-rw----     2.0 fat      941 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MappingListener.java\n+-rw----     2.0 fat     1279 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataChangeListener.java\n+-rw----     2.0 fat     1613 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataConstants.java\n+-rw----     2.0 fat    15421 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataInfo.java\n+-rw----     2.0 fat     1250 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataParamsFilter.java\n+-rw----     2.0 fat    11050 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataService.java\n+-rw----     2.0 fat     3184 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataServiceExporter.java\n+-rw----     2.0 fat     2308 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/MetadataServiceType.java\n+-rw----     2.0 fat     2108 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/RevisionResolver.java\n+-rw----     2.0 fat     2977 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/ServiceNameMapping.java\n+-rw----     2.0 fat     2734 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/WritableMetadataService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/\n--rw----     2.0 fat     2624 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/MethodDefinitionBuilder.java\n--rw----     2.0 fat     3861 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java\n--rw----     2.0 fat     3314 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java\n+-rw----     2.0 fat     2702 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/MethodDefinitionBuilder.java\n+-rw----     2.0 fat     3968 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java\n+-rw----     2.0 fat     3402 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/\n--rw----     2.0 fat     1723 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/ArrayTypeBuilder.java\n--rw----     2.0 fat     2765 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/CollectionTypeBuilder.java\n--rw----     2.0 fat     2488 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/DefaultTypeBuilder.java\n--rw----     2.0 fat     1947 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/EnumTypeBuilder.java\n--rw----     2.0 fat     3137 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/MapTypeBuilder.java\n--rw----     2.0 fat     1443 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/TypeBuilder.java\n+-rw----     2.0 fat     1771 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/ArrayTypeBuilder.java\n+-rw----     2.0 fat     2835 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/CollectionTypeBuilder.java\n+-rw----     2.0 fat     2558 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/DefaultTypeBuilder.java\n+-rw----     2.0 fat     2005 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/EnumTypeBuilder.java\n+-rw----     2.0 fat     3217 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/MapTypeBuilder.java\n+-rw----     2.0 fat     1485 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/builder/TypeBuilder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/\n--rw----     2.0 fat     1383 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/FullServiceDefinition.java\n--rw----     2.0 fat     3145 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/MethodDefinition.java\n--rw----     2.0 fat     3015 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/ServiceDefinition.java\n--rw----     2.0 fat     5307 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/TypeDefinition.java\n+-rw----     2.0 fat     1426 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/FullServiceDefinition.java\n+-rw----     2.0 fat     3245 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/MethodDefinition.java\n+-rw----     2.0 fat     3116 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/ServiceDefinition.java\n+-rw----     2.0 fat     5496 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/model/TypeDefinition.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/util/\n--rw----     2.0 fat     3495 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/util/ClassUtils.java\n--rw----     2.0 fat     3303 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/util/JaketConfigurationUtils.java\n+-rw----     2.0 fat     3606 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/util/ClassUtils.java\n+-rw----     2.0 fat     3405 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/definition/util/JaketConfigurationUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/\n--rw----     2.0 fat     2918 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReport.java\n--rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReportFactory.java\n--rw----     2.0 fat     3594 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReportInstance.java\n+-rw----     2.0 fat     2995 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReport.java\n+-rw----     2.0 fat     1150 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReportFactory.java\n+-rw----     2.0 fat     3680 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/MetadataReportInstance.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/\n--rw----     2.0 fat     2269 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseApplicationMetadataIdentifier.java\n--rw----     2.0 fat      980 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseMetadataIdentifier.java\n--rw----     2.0 fat     3170 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java\n--rw----     2.0 fat     2077 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java\n--rw----     2.0 fat     3194 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java\n--rw----     2.0 fat     3134 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/ServiceMetadataIdentifier.java\n--rw----     2.0 fat     2161 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/SubscriberMetadataIdentifier.java\n+-rw----     2.0 fat     2332 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseApplicationMetadataIdentifier.java\n+-rw----     2.0 fat     1005 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseMetadataIdentifier.java\n+-rw----     2.0 fat     3258 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java\n+-rw----     2.0 fat     2139 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java\n+-rw----     2.0 fat     3299 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java\n+-rw----     2.0 fat     3219 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/ServiceMetadataIdentifier.java\n+-rw----     2.0 fat     2231 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/identifier/SubscriberMetadataIdentifier.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/\n--rw----     2.0 fat    20351 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java\n--rw----     2.0 fat     2627 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java\n--rw----     2.0 fat     1286 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/Constants.java\n+-rw----     2.0 fat    20819 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java\n+-rw----     2.0 fat     2689 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java\n+-rw----     2.0 fat     1322 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/report/support/Constants.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/\n--rw----     2.0 fat     2415 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AbstractAnnotatedMethodParameterProcessor.java\n--rw----     2.0 fat    15751 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java\n--rw----     2.0 fat     2501 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AnnotatedMethodParameterProcessor.java\n--rw----     2.0 fat     3335 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java\n--rw----     2.0 fat     1987 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java\n--rw----     2.0 fat     7024 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RequestMetadata.java\n--rw----     2.0 fat     4619 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RestMetadataConstants.java\n--rw----     2.0 fat     6158 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RestMethodMetadata.java\n--rw----     2.0 fat     3195 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadata.java\n--rw----     2.0 fat     1217 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadataReader.java\n--rw----     2.0 fat     1596 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadataResolver.java\n+-rw----     2.0 fat     2466 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AbstractAnnotatedMethodParameterProcessor.java\n+-rw----     2.0 fat    16094 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java\n+-rw----     2.0 fat     2567 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/AnnotatedMethodParameterProcessor.java\n+-rw----     2.0 fat     3417 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java\n+-rw----     2.0 fat     2046 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java\n+-rw----     2.0 fat     7250 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RequestMetadata.java\n+-rw----     2.0 fat     4764 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RestMetadataConstants.java\n+-rw----     2.0 fat     6357 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/RestMethodMetadata.java\n+-rw----     2.0 fat     3302 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadata.java\n+-rw----     2.0 fat     1256 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadataReader.java\n+-rw----     2.0 fat     1639 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/ServiceRestMetadataResolver.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/\n--rw----     2.0 fat     2887 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/DefaultValueParameterProcessor.java\n--rw----     2.0 fat     1344 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/FormParamParameterProcessor.java\n--rw----     2.0 fat     2162 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/HeaderParamParameterProcessor.java\n--rw----     2.0 fat     4582 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java\n--rw----     2.0 fat     1352 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/MatrixParamParameterProcessor.java\n--rw----     2.0 fat     1758 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/ParamAnnotationParameterProcessor.java\n--rw----     2.0 fat     1348 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/QueryParamParameterProcessor.java\n+-rw----     2.0 fat     2961 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/DefaultValueParameterProcessor.java\n+-rw----     2.0 fat     1378 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/FormParamParameterProcessor.java\n+-rw----     2.0 fat     2211 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/HeaderParamParameterProcessor.java\n+-rw----     2.0 fat     4681 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java\n+-rw----     2.0 fat     1386 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/MatrixParamParameterProcessor.java\n+-rw----     2.0 fat     1796 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/ParamAnnotationParameterProcessor.java\n+-rw----     2.0 fat     1382 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/jaxrs/QueryParamParameterProcessor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/\n--rw----     2.0 fat     2864 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/AbstractRequestAnnotationParameterProcessor.java\n--rw----     2.0 fat     1797 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/RequestHeaderParameterProcessor.java\n--rw----     2.0 fat     1792 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/RequestParamParameterProcessor.java\n--rw----     2.0 fat     6256 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java\n+-rw----     2.0 fat     2935 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/AbstractRequestAnnotationParameterProcessor.java\n+-rw----     2.0 fat     1840 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/RequestHeaderParameterProcessor.java\n+-rw----     2.0 fat     1835 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/RequestParamParameterProcessor.java\n+-rw----     2.0 fat     6397 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/\n--rw----     2.0 fat     4202 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/AbstractAbstractWritableMetadataService.java\n+-rw----     2.0 fat     4302 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/AbstractAbstractWritableMetadataService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/consul/\n--rw----     2.0 fat     5359 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java\n--rw----     2.0 fat     1285 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java\n+-rw----     2.0 fat     5491 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java\n+-rw----     2.0 fat     1317 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/etcd/\n--rw----     2.0 fat     5724 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java\n--rw----     2.0 fat     2110 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java\n+-rw----     2.0 fat     5870 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java\n+-rw----     2.0 fat     2160 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/\n--rw----     2.0 fat     1687 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverCondition.java\n--rw----     2.0 fat    23562 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverMetadataReport.java\n--rw----     2.0 fat     1239 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverMetadataReportFactory.java\n--rw----     2.0 fat     3157 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/StrategyMetadataReport.java\n+-rw----     2.0 fat     1737 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverCondition.java\n+-rw----     2.0 fat    24142 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverMetadataReport.java\n+-rw----     2.0 fat     1267 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/FailoverMetadataReportFactory.java\n+-rw----     2.0 fat     3244 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/failover/StrategyMetadataReport.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/\n--rw----     2.0 fat     2213 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosConfigServiceWrapper.java\n--rw----     2.0 fat    10344 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java\n--rw----     2.0 fat     1281 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java\n+-rw----     2.0 fat     2268 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosConfigServiceWrapper.java\n+-rw----     2.0 fat    10573 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java\n+-rw----     2.0 fat     1313 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/redis/\n--rw----     2.0 fat     9321 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java\n--rw----     2.0 fat     1269 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java\n+-rw----     2.0 fat     9531 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java\n+-rw----     2.0 fat     1303 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/zookeeper/\n--rw----     2.0 fat     7419 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java\n--rw----     2.0 fat     1571 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java\n+-rw----     2.0 fat     7607 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java\n+-rw----     2.0 fat     1611 bX stor 70-Jan-01 00:00 org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/monitor/\n--rw----     2.0 fat     1290 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/Constants.java\n--rw----     2.0 fat      918 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/MetricsService.java\n+-rw----     2.0 fat     1320 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/Constants.java\n+-rw----     2.0 fat      940 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/MetricsService.java\n -rw----     2.0 fat     1100 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/Monitor.java\n -rw----     2.0 fat     1261 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/MonitorFactory.java\n -rw----     2.0 fat     3396 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/MonitorService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/\n -rw----     2.0 fat     9041 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/DubboMonitor.java\n--rw----     2.0 fat     2821 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/DubboMonitorFactory.java\n--rw----     2.0 fat    11086 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/MetricsFilter.java\n+-rw----     2.0 fat     2892 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/DubboMonitorFactory.java\n+-rw----     2.0 fat    11347 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/MetricsFilter.java\n -rw----     2.0 fat     5940 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/dubbo/Statistics.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/\n -rw----     2.0 fat     4918 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/AbstractMonitorFactory.java\n--rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/MetricsServiceDetector.java\n+-rw----     2.0 fat     1149 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/MetricsServiceDetector.java\n -rw----     2.0 fat     8660 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/MonitorFilter.java\n--rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/MonitorServiceDetector.java\n+-rw----     2.0 fat     1149 bX stor 70-Jan-01 00:00 org/apache/dubbo/monitor/support/MonitorServiceDetector.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/\n -rw----     2.0 fat     1015 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/BaseCommand.java\n -rw----     2.0 fat     2176 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/CommandContext.java\n -rw----     2.0 fat     1190 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/CommandContextFactory.java\n -rw----     2.0 fat     1192 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/CommandExecutor.java\n -rw----     2.0 fat     1565 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/DefaultCommandExecutor.java\n@@ -1221,303 +1221,303 @@\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/annotation/\n -rw----     2.0 fat     1607 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/annotation/Cmd.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/\n -rw----     2.0 fat     3987 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/HttpCommandDecoder.java\n -rw----     2.0 fat     1725 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/decoder/TelnetCommandDecoder.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/\n -rw----     2.0 fat     3716 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Help.java\n--rw----     2.0 fat     3384 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ls.java\n--rw----     2.0 fat     3330 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Offline.java\n--rw----     2.0 fat     3381 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Online.java\n--rw----     2.0 fat     2864 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/PublishMetadata.java\n+-rw----     2.0 fat     3472 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ls.java\n+-rw----     2.0 fat     3410 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Offline.java\n+-rw----     2.0 fat     3461 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Online.java\n+-rw----     2.0 fat     2927 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/PublishMetadata.java\n -rw----     2.0 fat     1305 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Quit.java\n--rw----     2.0 fat     4228 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ready.java\n--rw----     2.0 fat     1536 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Version.java\n+-rw----     2.0 fat     4323 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Ready.java\n+-rw----     2.0 fat     1573 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/impl/Version.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/\n--rw----     2.0 fat     2195 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/CommandHelper.java\n--rw----     2.0 fat     2717 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/ServiceCheckUtils.java\n+-rw----     2.0 fat     2259 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/CommandHelper.java\n+-rw----     2.0 fat     2779 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/command/util/ServiceCheckUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/common/\n -rw----     2.0 fat      990 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/common/QosConstants.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/\n--rw----     2.0 fat     2832 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java\n--rw----     2.0 fat     6757 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CountTelnetHandler.java\n--rw----     2.0 fat     1775 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java\n--rw----     2.0 fat    10965 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java\n--rw----     2.0 fat     6684 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ListTelnetHandler.java\n--rw----     2.0 fat     3964 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/LogTelnetHandler.java\n--rw----     2.0 fat     3845 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/PortTelnetHandler.java\n--rw----     2.0 fat     2775 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/SelectTelnetHandler.java\n--rw----     2.0 fat     2696 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java\n--rw----     2.0 fat     4027 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/TraceTelnetHandler.java\n+-rw----     2.0 fat     2897 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java\n+-rw----     2.0 fat     6920 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CountTelnetHandler.java\n+-rw----     2.0 fat     1821 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java\n+-rw----     2.0 fat    11226 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java\n+-rw----     2.0 fat     6850 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ListTelnetHandler.java\n+-rw----     2.0 fat     4055 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/LogTelnetHandler.java\n+-rw----     2.0 fat     3941 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/PortTelnetHandler.java\n+-rw----     2.0 fat     2835 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/SelectTelnetHandler.java\n+-rw----     2.0 fat     2759 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java\n+-rw----     2.0 fat     4120 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/legacy/TraceTelnetHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/\n--rw----     2.0 fat     4307 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/QosProtocolWrapper.java\n+-rw----     2.0 fat     4430 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/protocol/QosProtocolWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/\n--rw----     2.0 fat     1253 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/DubboLogo.java\n--rw----     2.0 fat     4554 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/Server.java\n+-rw----     2.0 fat     1278 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/DubboLogo.java\n+-rw----     2.0 fat     4710 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/Server.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/\n -rw----     2.0 fat     5174 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/HttpProcessHandler.java\n -rw----     2.0 fat     1953 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/LocalHostPermitHandler.java\n--rw----     2.0 fat     4111 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/QosProcessHandler.java\n--rw----     2.0 fat     1770 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java\n--rw----     2.0 fat     3201 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java\n+-rw----     2.0 fat     4222 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/QosProcessHandler.java\n+-rw----     2.0 fat     1811 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java\n+-rw----     2.0 fat     3274 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/\n -rw----     2.0 fat      983 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TComponent.java\n -rw----     2.0 fat     2734 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TKv.java\n -rw----     2.0 fat     2269 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TLadder.java\n--rw----     2.0 fat    15617 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTable.java\n--rw----     2.0 fat     7374 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTree.java\n+-rw----     2.0 fat    16183 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTable.java\n+-rw----     2.0 fat     7640 bX stor 70-Jan-01 00:00 org/apache/dubbo/qos/textui/TTree.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/\n--rw----     2.0 fat     1312 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/AddressListener.java\n--rw----     2.0 fat     2669 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/Constants.java\n--rw----     2.0 fat     5145 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/ListenerRegistryWrapper.java\n+-rw----     2.0 fat     1348 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/AddressListener.java\n+-rw----     2.0 fat     2765 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/Constants.java\n+-rw----     2.0 fat     5303 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/ListenerRegistryWrapper.java\n -rw----     2.0 fat     2612 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/NotifyListener.java\n -rw----     2.0 fat     1338 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/Registry.java\n -rw----     2.0 fat     2003 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryFactory.java\n--rw----     2.0 fat     1529 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryFactoryWrapper.java\n+-rw----     2.0 fat     1567 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryFactoryWrapper.java\n -rw----     2.0 fat     5634 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryService.java\n--rw----     2.0 fat     1166 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryServiceListener.java\n+-rw----     2.0 fat     1207 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/RegistryServiceListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/\n--rw----     2.0 fat     2099 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/AbstractServiceDiscovery.java\n--rw----     2.0 fat     1731 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/AbstractServiceDiscoveryFactory.java\n--rw----     2.0 fat     1381 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java\n--rw----     2.0 fat     2160 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultServiceDiscoveryFactory.java\n--rw----     2.0 fat     6064 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultServiceInstance.java\n--rw----     2.0 fat    10791 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/EventPublishingServiceDiscovery.java\n--rw----     2.0 fat     8176 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/FileSystemServiceDiscovery.java\n--rw----     2.0 fat    12067 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/InstanceAddressURL.java\n--rw----     2.0 fat     1504 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/RegistryClusterIdentifier.java\n--rw----     2.0 fat    11945 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscovery.java\n--rw----     2.0 fat     1974 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryFactory.java\n--rw----     2.0 fat    21022 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java\n--rw----     2.0 fat    11484 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java\n--rw----     2.0 fat     1677 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistryFactory.java\n--rw----     2.0 fat     3498 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceInstance.java\n--rw----     2.0 fat     1494 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceInstanceCustomizer.java\n+-rw----     2.0 fat     2155 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/AbstractServiceDiscovery.java\n+-rw----     2.0 fat     1773 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/AbstractServiceDiscoveryFactory.java\n+-rw----     2.0 fat     1415 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java\n+-rw----     2.0 fat     2209 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultServiceDiscoveryFactory.java\n+-rw----     2.0 fat     6285 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/DefaultServiceInstance.java\n+-rw----     2.0 fat    11106 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/EventPublishingServiceDiscovery.java\n+-rw----     2.0 fat     8397 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/FileSystemServiceDiscovery.java\n+-rw----     2.0 fat    12446 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/InstanceAddressURL.java\n+-rw----     2.0 fat     1540 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/RegistryClusterIdentifier.java\n+-rw----     2.0 fat    12232 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscovery.java\n+-rw----     2.0 fat     2027 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryFactory.java\n+-rw----     2.0 fat    21520 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java\n+-rw----     2.0 fat    11749 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java\n+-rw----     2.0 fat     1715 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceDiscoveryRegistryFactory.java\n+-rw----     2.0 fat     3624 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceInstance.java\n+-rw----     2.0 fat     1532 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/ServiceInstanceCustomizer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/\n--rw----     2.0 fat     1270 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyedEvent.java\n--rw----     2.0 fat     1275 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyingEvent.java\n--rw----     2.0 fat     2159 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryEvent.java\n--rw----     2.0 fat     1659 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryExceptionEvent.java\n--rw----     2.0 fat     1316 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializedEvent.java\n--rw----     2.0 fat     1322 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializingEvent.java\n--rw----     2.0 fat     1653 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceEvent.java\n--rw----     2.0 fat     1351 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancePreRegisteredEvent.java\n--rw----     2.0 fat     1359 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancePreUnregisteredEvent.java\n--rw----     2.0 fat     1344 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceRegisteredEvent.java\n--rw----     2.0 fat     1381 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceUnregisteredEvent.java\n--rw----     2.0 fat     2214 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancesChangedEvent.java\n+-rw----     2.0 fat     1303 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyedEvent.java\n+-rw----     2.0 fat     1308 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyingEvent.java\n+-rw----     2.0 fat     2226 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryEvent.java\n+-rw----     2.0 fat     1707 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryExceptionEvent.java\n+-rw----     2.0 fat     1349 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializedEvent.java\n+-rw----     2.0 fat     1355 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializingEvent.java\n+-rw----     2.0 fat     1700 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceEvent.java\n+-rw----     2.0 fat     1385 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancePreRegisteredEvent.java\n+-rw----     2.0 fat     1393 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancePreUnregisteredEvent.java\n+-rw----     2.0 fat     1378 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceRegisteredEvent.java\n+-rw----     2.0 fat     1416 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstanceUnregisteredEvent.java\n+-rw----     2.0 fat     2278 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/ServiceInstancesChangedEvent.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/listener/\n--rw----     2.0 fat     3618 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/listener/LoggingEventListener.java\n--rw----     2.0 fat    11317 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java\n+-rw----     2.0 fat     3703 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/listener/LoggingEventListener.java\n+-rw----     2.0 fat    11585 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/\n--rw----     2.0 fat     3702 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java\n--rw----     2.0 fat     1495 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java\n--rw----     2.0 fat     2794 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java\n--rw----     2.0 fat     4771 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataUtils.java\n--rw----     2.0 fat     2296 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizer.java\n--rw----     2.0 fat     2755 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/RestProtocolSubscribedURLsSynthesizer.java\n--rw----     2.0 fat     4021 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java\n--rw----     2.0 fat    13453 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java\n--rw----     2.0 fat     2159 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilder.java\n--rw----     2.0 fat     3710 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilder.java\n--rw----     2.0 fat     2120 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/SubscribedURLsSynthesizer.java\n+-rw----     2.0 fat     3788 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java\n+-rw----     2.0 fat     1535 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java\n+-rw----     2.0 fat     2859 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java\n+-rw----     2.0 fat     4873 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/MetadataUtils.java\n+-rw----     2.0 fat     2351 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizer.java\n+-rw----     2.0 fat     2822 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/RestProtocolSubscribedURLsSynthesizer.java\n+-rw----     2.0 fat     4109 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java\n+-rw----     2.0 fat    13771 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java\n+-rw----     2.0 fat     2210 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilder.java\n+-rw----     2.0 fat     3799 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilder.java\n+-rw----     2.0 fat     2175 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/SubscribedURLsSynthesizer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/store/\n--rw----     2.0 fat    11874 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java\n--rw----     2.0 fat     7562 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java\n+-rw----     2.0 fat    12175 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java\n+-rw----     2.0 fat     7705 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/\n--rw----     2.0 fat     3221 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java\n--rw----     2.0 fat      920 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/InvokersChangedListener.java\n--rw----     2.0 fat     1108 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationAddressComparator.java\n--rw----     2.0 fat    14787 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationInvoker.java\n--rw----     2.0 fat     2745 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java\n--rw----     2.0 fat     4504 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationRuleListener.java\n--rw----     2.0 fat     2612 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/ServiceDiscoveryMigrationInvoker.java\n--rw----     2.0 fat     1027 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/package-info.java\n+-rw----     2.0 fat     3295 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java\n+-rw----     2.0 fat      940 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/InvokersChangedListener.java\n+-rw----     2.0 fat     1133 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationAddressComparator.java\n+-rw----     2.0 fat    15177 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationInvoker.java\n+-rw----     2.0 fat     2816 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java\n+-rw----     2.0 fat     4616 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/MigrationRuleListener.java\n+-rw----     2.0 fat     2672 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/migration/ServiceDiscoveryMigrationInvoker.java\n+-rw----     2.0 fat     1049 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/package-info.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/selector/\n--rw----     2.0 fat     1705 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/selector/RandomServiceInstanceSelector.java\n--rw----     2.0 fat     1699 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/selector/ServiceInstanceSelector.java\n+-rw----     2.0 fat     1752 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/selector/RandomServiceInstanceSelector.java\n+-rw----     2.0 fat     1742 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/client/selector/ServiceInstanceSelector.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/\n--rw----     2.0 fat     1601 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/AbstractConsulRegistry.java\n--rw----     2.0 fat     2515 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulParameter.java\n--rw----     2.0 fat    14467 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulRegistry.java\n--rw----     2.0 fat     1233 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulRegistryFactory.java\n--rw----     2.0 fat    18301 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java\n--rw----     2.0 fat     1233 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java\n--rw----     2.0 fat     1233 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~HEAD\n--rw----     2.0 fat     1233 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~dubbo-master\n+-rw----     2.0 fat     1640 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/AbstractConsulRegistry.java\n+-rw----     2.0 fat     2602 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulParameter.java\n+-rw----     2.0 fat    14847 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulRegistry.java\n+-rw----     2.0 fat     1265 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulRegistryFactory.java\n+-rw----     2.0 fat    18782 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java\n+-rw----     2.0 fat     1263 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java\n+-rw----     2.0 fat     1263 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~HEAD\n+-rw----     2.0 fat     1263 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~dubbo-master\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/dubbo/\n -rw----     2.0 fat     5956 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/dubbo/DubboRegistry.java\n -rw----     2.0 fat     5760 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/dubbo/DubboRegistryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/\n--rw----     2.0 fat    15864 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdRegistry.java\n--rw----     2.0 fat     1409 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java\n--rw----     2.0 fat     8180 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java\n+-rw----     2.0 fat    16219 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdRegistry.java\n+-rw----     2.0 fat     1445 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java\n+-rw----     2.0 fat     8386 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/\n--rw----     2.0 fat     9897 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/ConfigurableEurekaInstanceConfig.java\n--rw----     2.0 fat    11128 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/EurekaServiceDiscovery.java\n--rw----     2.0 fat      943 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/package-info.java\n+-rw----     2.0 fat    10266 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/ConfigurableEurekaInstanceConfig.java\n+-rw----     2.0 fat    11409 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/EurekaServiceDiscovery.java\n+-rw----     2.0 fat      965 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/eureka/package-info.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/\n--rw----     2.0 fat     3892 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java\n--rw----     2.0 fat    11260 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/DynamicDirectory.java\n--rw----     2.0 fat     3267 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/InterfaceCompatibleRegistryProtocol.java\n--rw----     2.0 fat      916 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/InvokersChangedListener.java\n+-rw----     2.0 fat     3989 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java\n+-rw----     2.0 fat    11545 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/DynamicDirectory.java\n+-rw----     2.0 fat     3340 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/InterfaceCompatibleRegistryProtocol.java\n+-rw----     2.0 fat      937 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/InvokersChangedListener.java\n -rw----     2.0 fat    29242 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/RegistryDirectory.java\n--rw----     2.0 fat    37486 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/RegistryProtocol.java\n--rw----     2.0 fat     2095 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/RegistryProtocolListener.java\n+-rw----     2.0 fat    38329 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/RegistryProtocol.java\n+-rw----     2.0 fat     2148 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/integration/RegistryProtocolListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/multicast/\n -rw----     2.0 fat    16724 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multicast/MulticastRegistry.java\n -rw----     2.0 fat     1252 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multicast/MulticastRegistryFactory.java\n--rw----     2.0 fat     1932 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multicast/MulticastServiceDiscovery.java\n+-rw----     2.0 fat     1998 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multicast/MulticastServiceDiscovery.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/\n--rw----     2.0 fat    12406 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistry.java\n--rw----     2.0 fat     1214 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryFactory.java\n--rw----     2.0 fat     7811 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscovery.java\n--rw----     2.0 fat     1254 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscoveryFactory.java\n+-rw----     2.0 fat    12743 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistry.java\n+-rw----     2.0 fat     1247 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryFactory.java\n+-rw----     2.0 fat     7982 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscovery.java\n+-rw----     2.0 fat     1282 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscoveryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/\n--rw----     2.0 fat     3577 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java\n--rw----     2.0 fat    23611 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosRegistry.java\n--rw----     2.0 fat     1910 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosRegistryFactory.java\n--rw----     2.0 fat     5828 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java\n--rw----     2.0 fat     1241 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactory.java\n--rw----     2.0 fat     6779 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceName.java\n+-rw----     2.0 fat     3664 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java\n+-rw----     2.0 fat    24235 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosRegistry.java\n+-rw----     2.0 fat     1959 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosRegistryFactory.java\n+-rw----     2.0 fat     5982 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java\n+-rw----     2.0 fat     1274 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactory.java\n+-rw----     2.0 fat     7013 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/NacosServiceName.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/util/\n--rw----     2.0 fat     2744 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/util/NacosInstanceManageUtil.java\n--rw----     2.0 fat     8001 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java\n+-rw----     2.0 fat     2811 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/util/NacosInstanceManageUtil.java\n+-rw----     2.0 fat     8190 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/\n -rw----     2.0 fat    20135 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisRegistry.java\n -rw----     2.0 fat     1239 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisRegistryFactory.java\n--rw----     2.0 fat     1858 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisServiceDiscovery.java\n--rw----     2.0 fat     1230 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisServiceDiscoveryFactory.java\n+-rw----     2.0 fat     1922 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisServiceDiscovery.java\n+-rw----     2.0 fat     1260 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/redis/RedisServiceDiscoveryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/\n--rw----     2.0 fat     4424 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/AbstractRetryTask.java\n+-rw----     2.0 fat     4557 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/AbstractRetryTask.java\n -rw----     2.0 fat     1487 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/FailedRegisteredTask.java\n -rw----     2.0 fat     1760 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/FailedSubscribedTask.java\n -rw----     2.0 fat     1499 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/FailedUnregisteredTask.java\n -rw----     2.0 fat     1770 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/FailedUnsubscribedTask.java\n--rw----     2.0 fat     1438 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/ReExportTask.java\n+-rw----     2.0 fat     1479 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/retry/ReExportTask.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/\n--rw----     2.0 fat    10603 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistry.java\n--rw----     2.0 fat     1379 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryConstants.java\n--rw----     2.0 fat     1383 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryFactory.java\n--rw----     2.0 fat     2340 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryInstance.java\n--rw----     2.0 fat     9905 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscovery.java\n--rw----     2.0 fat     1241 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscoveryFactory.java\n+-rw----     2.0 fat    10899 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistry.java\n+-rw----     2.0 fat     1422 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryConstants.java\n+-rw----     2.0 fat     1424 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryFactory.java\n+-rw----     2.0 fat     2430 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryInstance.java\n+-rw----     2.0 fat    10159 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscovery.java\n+-rw----     2.0 fat     1269 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscoveryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/status/\n -rw----     2.0 fat     2086 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/status/RegistryStatusChecker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/support/\n -rw----     2.0 fat    21375 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/support/AbstractRegistry.java\n -rw----     2.0 fat     7562 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/support/AbstractRegistryFactory.java\n -rw----     2.0 fat    17966 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/support/FailbackRegistry.java\n -rw----     2.0 fat     1362 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/support/SkipFailbackWrapperException.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/\n--rw----     2.0 fat     2078 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperInstance.java\n+-rw----     2.0 fat     2155 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperInstance.java\n -rw----     2.0 fat    14879 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperRegistry.java\n -rw----     2.0 fat     1667 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperRegistryFactory.java\n--rw----     2.0 fat     8284 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java\n--rw----     2.0 fat     3183 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryChangeWatcher.java\n--rw----     2.0 fat     1241 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryFactory.java\n+-rw----     2.0 fat     8495 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java\n+-rw----     2.0 fat     3258 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryChangeWatcher.java\n+-rw----     2.0 fat     1270 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/util/\n--rw----     2.0 fat     3185 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkParams.java\n--rw----     2.0 fat     5462 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java\n+-rw----     2.0 fat     3287 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkParams.java\n+-rw----     2.0 fat     5579 bX stor 70-Jan-01 00:00 org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/\n--rw----     2.0 fat     1850 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Channel.java\n+-rw----     2.0 fat     1923 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Channel.java\n -rw----     2.0 fat     2121 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/ChannelHandler.java\n -rw----     2.0 fat     1419 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Client.java\n--rw----     2.0 fat     1844 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Codec.java\n--rw----     2.0 fat     1372 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Codec2.java\n--rw----     2.0 fat     3707 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Constants.java\n+-rw----     2.0 fat     1905 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Codec.java\n+-rw----     2.0 fat     1412 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Codec2.java\n+-rw----     2.0 fat     3844 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Constants.java\n -rw----     2.0 fat      940 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Decodeable.java\n--rw----     2.0 fat     1528 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Dispatcher.java\n+-rw----     2.0 fat     1569 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Dispatcher.java\n -rw----     2.0 fat     2109 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Endpoint.java\n -rw----     2.0 fat     2408 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/ExecutionException.java\n--rw----     2.0 fat     1555 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/IdleSensible.java\n--rw----     2.0 fat     3222 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/RemotingException.java\n--rw----     2.0 fat     1705 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/RemotingServer.java\n--rw----     2.0 fat     1929 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/TimeoutException.java\n--rw----     2.0 fat     2068 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Transporter.java\n+-rw----     2.0 fat     1589 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/IdleSensible.java\n+-rw----     2.0 fat     3305 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/RemotingException.java\n+-rw----     2.0 fat     1763 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/RemotingServer.java\n+-rw----     2.0 fat     1985 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/TimeoutException.java\n+-rw----     2.0 fat     2126 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Transporter.java\n -rw----     2.0 fat     3097 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/Transporters.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/\n--rw----     2.0 fat     9220 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java\n+-rw----     2.0 fat     9561 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java\n -rw----     2.0 fat     7858 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ByteBufferBackedChannelBuffer.java\n--rw----     2.0 fat    43632 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBuffer.java\n+-rw----     2.0 fat    44583 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBuffer.java\n -rw----     2.0 fat     1110 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBufferFactory.java\n -rw----     2.0 fat     3155 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBufferInputStream.java\n -rw----     2.0 fat     1893 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBufferOutputStream.java\n--rw----     2.0 fat     4770 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBuffers.java\n+-rw----     2.0 fat     4926 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/ChannelBuffers.java\n -rw----     2.0 fat     2629 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/DirectChannelBufferFactory.java\n -rw----     2.0 fat     5608 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/DynamicChannelBuffer.java\n -rw----     2.0 fat     6575 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/HeapChannelBuffer.java\n -rw----     2.0 fat     1913 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/buffer/HeapChannelBufferFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/\n--rw----     2.0 fat     1578 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/AbstractRetryPolicy.java\n+-rw----     2.0 fat     1623 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/AbstractRetryPolicy.java\n -rw----     2.0 fat      988 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/ChildListener.java\n--rw----     2.0 fat     1737 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/Constants.java\n--rw----     2.0 fat     6379 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/EtcdClient.java\n--rw----     2.0 fat     1975 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/EtcdTransporter.java\n--rw----     2.0 fat     1243 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/RetryPolicy.java\n+-rw----     2.0 fat     1792 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/Constants.java\n+-rw----     2.0 fat     6570 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/EtcdClient.java\n+-rw----     2.0 fat     2022 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/EtcdTransporter.java\n+-rw----     2.0 fat     1274 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/RetryPolicy.java\n -rw----     2.0 fat      996 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/StateListener.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/\n--rw----     2.0 fat     1132 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/ConnectionStateListener.java\n--rw----     2.0 fat    16648 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdClient.java\n--rw----     2.0 fat    28360 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdClientWrapper.java\n--rw----     2.0 fat     1152 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdTransporter.java\n--rw----     2.0 fat     3433 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/RetryLoops.java\n+-rw----     2.0 fat     1162 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/ConnectionStateListener.java\n+-rw----     2.0 fat    17121 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdClient.java\n+-rw----     2.0 fat    29112 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdClientWrapper.java\n+-rw----     2.0 fat     1182 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/JEtcdTransporter.java\n+-rw----     2.0 fat     3532 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/RetryLoops.java\n -rw----     2.0 fat     1386 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/jetcd/RetryNTimes.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/option/\n--rw----     2.0 fat     2923 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/option/OptionUtil.java\n+-rw----     2.0 fat     3001 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/option/OptionUtil.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/support/\n--rw----     2.0 fat     7250 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/support/AbstractEtcdClient.java\n+-rw----     2.0 fat     7444 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/etcd/support/AbstractEtcdClient.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/\n -rw----     2.0 fat     2468 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/ExchangeChannel.java\n -rw----     2.0 fat     1050 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/ExchangeClient.java\n -rw----     2.0 fat     1465 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/ExchangeHandler.java\n -rw----     2.0 fat     1416 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/ExchangeServer.java\n -rw----     2.0 fat     1970 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/Exchanger.java\n -rw----     2.0 fat     4957 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/Exchangers.java\n--rw----     2.0 fat     3675 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/Request.java\n+-rw----     2.0 fat     3820 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/Request.java\n -rw----     2.0 fat     4036 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/Response.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/codec/\n -rw----     2.0 fat    20719 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/codec/ExchangeCodec.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/\n--rw----     2.0 fat    11499 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/DefaultFuture.java\n+-rw----     2.0 fat    11800 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/DefaultFuture.java\n -rw----     2.0 fat     1467 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/ExchangeHandlerAdapter.java\n -rw----     2.0 fat     4453 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/ExchangeHandlerDispatcher.java\n -rw----     2.0 fat     3541 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/ExchangeServerDelegate.java\n -rw----     2.0 fat     2486 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/MultiMessage.java\n -rw----     2.0 fat     1302 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/Replier.java\n -rw----     2.0 fat     2730 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/ReplierDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/\n--rw----     2.0 fat     2878 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java\n+-rw----     2.0 fat     2975 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java\n -rw----     2.0 fat     2192 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/CloseTimerTask.java\n -rw----     2.0 fat     8570 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeChannel.java\n -rw----     2.0 fat     7803 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeClient.java\n -rw----     2.0 fat     9342 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeHandler.java\n -rw----     2.0 fat     9442 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeaderExchangeServer.java\n -rw----     2.0 fat     1947 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeaderExchanger.java\n--rw----     2.0 fat     4466 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java\n--rw----     2.0 fat     2607 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java\n+-rw----     2.0 fat     4582 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java\n+-rw----     2.0 fat     2671 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java\n -rw----     2.0 fat     2768 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/exchange/support/header/ReconnectTimerTask.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/\n -rw----     2.0 fat     1319 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/HttpBinder.java\n -rw----     2.0 fat     1386 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/HttpHandler.java\n -rw----     2.0 fat     1769 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/HttpServer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/jetty/\n -rw----     2.0 fat     1289 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/jetty/JettyHttpBinder.java\n -rw----     2.0 fat     4750 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/jetty/JettyHttpServer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/\n -rw----     2.0 fat     1576 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/BootstrapListener.java\n -rw----     2.0 fat     2376 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/DispatcherServlet.java\n--rw----     2.0 fat     1263 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/ServletHttpBinder.java\n+-rw----     2.0 fat     1297 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/ServletHttpBinder.java\n -rw----     2.0 fat     1340 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/ServletHttpServer.java\n--rw----     2.0 fat     1696 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/ServletManager.java\n+-rw----     2.0 fat     1746 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/servlet/ServletManager.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/support/\n -rw----     2.0 fat     3299 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/support/AbstractHttpServer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/tomcat/\n -rw----     2.0 fat     1257 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/tomcat/TomcatHttpBinder.java\n--rw----     2.0 fat     3833 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/tomcat/TomcatHttpServer.java\n+-rw----     2.0 fat     3928 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/http/tomcat/TomcatHttpServer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/\n -rw----     2.0 fat     1605 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/Group.java\n -rw----     2.0 fat     1328 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/Networker.java\n -rw----     2.0 fat     1933 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/Networkers.java\n -rw----     2.0 fat     1267 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/Peer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/exchange/\n -rw----     2.0 fat     1281 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/p2p/exchange/ExchangeGroup.java\n@@ -1546,455 +1546,455 @@\n -rw----     2.0 fat     1304 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/Help.java\n -rw----     2.0 fat     4046 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/TelnetHandlerAdapter.java\n -rw----     2.0 fat     5789 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/TelnetUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/\n -rw----     2.0 fat     1848 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/ClearTelnetHandler.java\n -rw----     2.0 fat     1409 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/ExitTelnetHandler.java\n -rw----     2.0 fat     3664 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/HelpTelnetHandler.java\n--rw----     2.0 fat     4221 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java\n+-rw----     2.0 fat     4316 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java\n -rw----     2.0 fat     4624 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/telnet/support/command/StatusTelnetHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/\n -rw----     2.0 fat     1901 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractChannel.java\n -rw----     2.0 fat     2320 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractChannelHandlerDelegate.java\n--rw----     2.0 fat    11864 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractClient.java\n--rw----     2.0 fat     3990 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractCodec.java\n--rw----     2.0 fat     4120 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractEndpoint.java\n+-rw----     2.0 fat    12207 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractClient.java\n+-rw----     2.0 fat     4097 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractCodec.java\n+-rw----     2.0 fat     4235 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractEndpoint.java\n -rw----     2.0 fat     4184 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractPeer.java\n--rw----     2.0 fat     7171 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractServer.java\n+-rw----     2.0 fat     7363 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/AbstractServer.java\n -rw----     2.0 fat     3227 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ChannelDelegate.java\n -rw----     2.0 fat     1642 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ChannelHandlerAdapter.java\n -rw----     2.0 fat     1021 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ChannelHandlerDelegate.java\n -rw----     2.0 fat     3967 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ChannelHandlerDispatcher.java\n -rw----     2.0 fat     3566 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ClientDelegate.java\n--rw----     2.0 fat     7642 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/CodecSupport.java\n--rw----     2.0 fat     2505 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/DecodeHandler.java\n+-rw----     2.0 fat     7823 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/CodecSupport.java\n+-rw----     2.0 fat     2574 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/DecodeHandler.java\n -rw----     2.0 fat     1129 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ExceedPayloadLimitException.java\n -rw----     2.0 fat     1717 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/MultiMessageHandler.java\n -rw----     2.0 fat     3141 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/ServerDelegate.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/codec/\n -rw----     2.0 fat     2379 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/codec/CodecAdapter.java\n -rw----     2.0 fat     3422 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/codec/TransportCodec.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/\n -rw----     2.0 fat     4613 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/ChannelEventRunnable.java\n -rw----     2.0 fat     1987 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/ChannelHandlers.java\n--rw----     2.0 fat     5306 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java\n+-rw----     2.0 fat     5455 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/all/\n--rw----     2.0 fat     3608 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java\n+-rw----     2.0 fat     3689 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java\n -rw----     2.0 fat     1313 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/all/AllDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/connection/\n--rw----     2.0 fat     5329 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java\n+-rw----     2.0 fat     5438 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java\n -rw----     2.0 fat     1361 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/direct/\n--rw----     2.0 fat     2227 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java\n--rw----     2.0 fat     1278 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java\n+-rw----     2.0 fat     2278 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java\n+-rw----     2.0 fat     1313 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/execution/\n--rw----     2.0 fat     3147 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java\n+-rw----     2.0 fat     3212 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java\n -rw----     2.0 fat     1365 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/message/\n--rw----     2.0 fat     2320 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java\n+-rw----     2.0 fat     2372 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java\n -rw----     2.0 fat     1350 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyDispatcher.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/\n -rw----     2.0 fat     6527 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyChannel.java\n -rw----     2.0 fat     4294 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyClient.java\n--rw----     2.0 fat     5968 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyCodecAdapter.java\n+-rw----     2.0 fat     6110 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyCodecAdapter.java\n -rw----     2.0 fat     4554 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyHandler.java\n -rw----     2.0 fat     5283 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyServer.java\n -rw----     2.0 fat     1628 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/grizzly/GrizzlyTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/\n--rw----     2.0 fat     5876 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n--rw----     2.0 fat     7402 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n--rw----     2.0 fat     6103 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n+-rw----     2.0 fat     6067 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaChannel.java\n+-rw----     2.0 fat     7576 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaClient.java\n+-rw----     2.0 fat     6270 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java\n -rw----     2.0 fat     3255 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaHandler.java\n--rw----     2.0 fat     4221 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n+-rw----     2.0 fat     4333 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaServer.java\n -rw----     2.0 fat     1580 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/mina/MinaTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/\n -rw----     2.0 fat    10364 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyBackedChannelBuffer.java\n -rw----     2.0 fat     2043 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyBackedChannelBufferFactory.java\n--rw----     2.0 fat     6854 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyChannel.java\n+-rw----     2.0 fat     7069 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyChannel.java\n -rw----     2.0 fat     7388 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyClient.java\n--rw----     2.0 fat     6778 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyCodecAdapter.java\n--rw----     2.0 fat     4889 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyHandler.java\n--rw----     2.0 fat     3281 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyHelper.java\n+-rw----     2.0 fat     6948 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyCodecAdapter.java\n+-rw----     2.0 fat     5017 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyHandler.java\n+-rw----     2.0 fat     3398 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyHelper.java\n -rw----     2.0 fat     6761 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyServer.java\n -rw----     2.0 fat     1586 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty/NettyTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/\n -rw----     2.0 fat    10214 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyBackedChannelBuffer.java\n--rw----     2.0 fat     8769 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyChannel.java\n--rw----     2.0 fat     9286 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyClient.java\n--rw----     2.0 fat     6249 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java\n--rw----     2.0 fat     3547 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java\n--rw----     2.0 fat     2654 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyEventLoopFactory.java\n--rw----     2.0 fat     7939 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyServer.java\n--rw----     2.0 fat     5243 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java\n--rw----     2.0 fat     1614 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyTransporter.java\n--rw----     2.0 fat     5550 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/SslContexts.java\n--rw----     2.0 fat     5835 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/SslHandlerInitializer.java\n+-rw----     2.0 fat     9045 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyChannel.java\n+-rw----     2.0 fat     9503 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyClient.java\n+-rw----     2.0 fat     6410 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java\n+-rw----     2.0 fat     3648 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java\n+-rw----     2.0 fat     2714 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyEventLoopFactory.java\n+-rw----     2.0 fat     8141 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyServer.java\n+-rw----     2.0 fat     5381 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java\n+-rw----     2.0 fat     1657 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/NettyTransporter.java\n+-rw----     2.0 fat     5671 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/SslContexts.java\n+-rw----     2.0 fat     5976 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/SslHandlerInitializer.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/logging/\n -rw----     2.0 fat     2243 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/logging/FormattingTuple.java\n--rw----     2.0 fat    14622 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/logging/MessageFormatter.java\n+-rw----     2.0 fat    15032 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/transport/netty4/logging/MessageFormatter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/utils/\n--rw----     2.0 fat     1800 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/utils/PayloadDropper.java\n--rw----     2.0 fat     1550 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/utils/UrlUtils.java\n+-rw----     2.0 fat     1848 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/utils/PayloadDropper.java\n+-rw----     2.0 fat     1587 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/utils/UrlUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/\n -rw----     2.0 fat      993 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/ChildListener.java\n--rw----     2.0 fat      975 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/DataListener.java\n--rw----     2.0 fat     2021 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/EventType.java\n--rw----     2.0 fat     1058 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/StateListener.java\n--rw----     2.0 fat     2039 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/ZookeeperClient.java\n--rw----     2.0 fat     1189 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/ZookeeperTransporter.java\n+-rw----     2.0 fat     1000 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/DataListener.java\n+-rw----     2.0 fat     2086 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/EventType.java\n+-rw----     2.0 fat     1091 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/StateListener.java\n+-rw----     2.0 fat     2106 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/ZookeeperClient.java\n+-rw----     2.0 fat     1219 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/ZookeeperTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/curator/\n -rw----     2.0 fat    17076 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperClient.java\n -rw----     2.0 fat     1276 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/curator/CuratorZookeeperTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/support/\n -rw----     2.0 fat     8166 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperClient.java\n--rw----     2.0 fat     7040 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java\n+-rw----     2.0 fat     7222 bX stor 70-Jan-01 00:00 org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/\n--rw----     2.0 fat     7812 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AppResponse.java\n+-rw----     2.0 fat     8067 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AppResponse.java\n -rw----     2.0 fat     2608 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AsyncContext.java\n--rw----     2.0 fat     2600 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AsyncContextImpl.java\n--rw----     2.0 fat    12324 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AsyncRpcResult.java\n--rw----     2.0 fat     2408 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AttachmentsAdapter.java\n--rw----     2.0 fat     2584 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Constants.java\n+-rw----     2.0 fat     2678 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AsyncContextImpl.java\n+-rw----     2.0 fat    12661 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AsyncRpcResult.java\n+-rw----     2.0 fat     2479 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/AttachmentsAdapter.java\n+-rw----     2.0 fat     2681 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Constants.java\n -rw----     2.0 fat     1343 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Exporter.java\n -rw----     2.0 fat     1452 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ExporterListener.java\n -rw----     2.0 fat     2405 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Filter.java\n--rw----     2.0 fat     3965 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/FutureContext.java\n--rw----     2.0 fat     3745 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Invocation.java\n--rw----     2.0 fat      887 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/InvokeMode.java\n+-rw----     2.0 fat     4073 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/FutureContext.java\n+-rw----     2.0 fat     3885 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Invocation.java\n+-rw----     2.0 fat      910 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/InvokeMode.java\n -rw----     2.0 fat     1489 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Invoker.java\n -rw----     2.0 fat     1434 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/InvokerListener.java\n--rw----     2.0 fat     2000 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ListenableFilter.java\n+-rw----     2.0 fat     2053 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ListenableFilter.java\n -rw----     2.0 fat     3568 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Protocol.java\n--rw----     2.0 fat     1484 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ProtocolServer.java\n--rw----     2.0 fat     1757 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ProxyFactory.java\n--rw----     2.0 fat     5441 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Result.java\n+-rw----     2.0 fat     1531 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ProtocolServer.java\n+-rw----     2.0 fat     1817 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ProxyFactory.java\n+-rw----     2.0 fat     5629 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/Result.java\n -rw----     2.0 fat     1438 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcConstants.java\n--rw----     2.0 fat    22275 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcContext.java\n--rw----     2.0 fat     3363 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcException.java\n--rw----     2.0 fat    14986 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcInvocation.java\n+-rw----     2.0 fat    23133 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcContext.java\n+-rw----     2.0 fat     3479 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcException.java\n+-rw----     2.0 fat    15427 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcInvocation.java\n -rw----     2.0 fat     8590 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/RpcStatus.java\n--rw----     2.0 fat     2912 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/TimeoutCountDown.java\n--rw----     2.0 fat     1189 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ZoneDetector.java\n+-rw----     2.0 fat     3002 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/TimeoutCountDown.java\n+-rw----     2.0 fat     1221 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/ZoneDetector.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/\n--rw----     2.0 fat     1526 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java\n+-rw----     2.0 fat     1563 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java\n -rw----     2.0 fat     2084 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Cluster.java\n--rw----     2.0 fat     1738 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/ClusterInvoker.java\n+-rw----     2.0 fat     1778 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/ClusterInvoker.java\n -rw----     2.0 fat     4387 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Configurator.java\n -rw----     2.0 fat     1332 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/ConfiguratorFactory.java\n--rw----     2.0 fat     2832 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Constants.java\n+-rw----     2.0 fat     2934 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Constants.java\n -rw----     2.0 fat     1738 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Directory.java\n -rw----     2.0 fat     1842 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/LoadBalance.java\n -rw----     2.0 fat      977 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Merger.java\n -rw----     2.0 fat     3315 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/Router.java\n--rw----     2.0 fat     4120 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/RouterChain.java\n+-rw----     2.0 fat     4232 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/RouterChain.java\n -rw----     2.0 fat     1881 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/RouterFactory.java\n -rw----     2.0 fat     1077 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/RuleConverter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/\n -rw----     2.0 fat     8518 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/AbstractConfigurator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/absent/\n -rw----     2.0 fat     1330 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfigurator.java\n -rw----     2.0 fat     1270 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/absent/AbsentConfiguratorFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/override/\n -rw----     2.0 fat     1330 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/override/OverrideConfigurator.java\n -rw----     2.0 fat     1278 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/override/OverrideConfiguratorFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/\n--rw----     2.0 fat     8529 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java\n+-rw----     2.0 fat     8754 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/model/\n -rw----     2.0 fat     2915 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/model/ConfigItem.java\n -rw----     2.0 fat     2058 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/configurator/parser/model/ConfiguratorConfig.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/directory/\n--rw----     2.0 fat     4820 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java\n+-rw----     2.0 fat     4961 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java\n -rw----     2.0 fat     3787 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/directory/StaticDirectory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/governance/\n--rw----     2.0 fat     1732 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java\n--rw----     2.0 fat     3719 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java\n+-rw----     2.0 fat     1772 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java\n+-rw----     2.0 fat     3810 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/\n--rw----     2.0 fat     2260 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java\n--rw----     2.0 fat     2201 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java\n--rw----     2.0 fat     2661 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java\n+-rw----     2.0 fat     2316 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java\n+-rw----     2.0 fat     2255 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java\n+-rw----     2.0 fat     2723 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/\n -rw----     2.0 fat     4289 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/AbstractLoadBalance.java\n -rw----     2.0 fat     5355 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/ConsistentHashLoadBalance.java\n -rw----     2.0 fat     5615 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/LeastActiveLoadBalance.java\n--rw----     2.0 fat     3328 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java\n+-rw----     2.0 fat     3408 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java\n -rw----     2.0 fat     4812 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/RoundRobinLoadBalance.java\n--rw----     2.0 fat     4565 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java\n+-rw----     2.0 fat     4665 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/\n -rw----     2.0 fat     2393 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/ArrayMerger.java\n -rw----     2.0 fat     1678 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/BooleanArrayMerger.java\n -rw----     2.0 fat     1639 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/ByteArrayMerger.java\n -rw----     2.0 fat     1637 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/CharArrayMerger.java\n--rw----     2.0 fat     1349 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java\n+-rw----     2.0 fat     1386 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java\n -rw----     2.0 fat     1647 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/FloatArrayMerger.java\n--rw----     2.0 fat     1332 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java\n--rw----     2.0 fat     1492 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/ListMerger.java\n--rw----     2.0 fat     1337 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java\n--rw----     2.0 fat     1466 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/MapMerger.java\n--rw----     2.0 fat     2851 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/MergerFactory.java\n--rw----     2.0 fat     1445 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/SetMerger.java\n+-rw----     2.0 fat     1370 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java\n+-rw----     2.0 fat     1535 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/ListMerger.java\n+-rw----     2.0 fat     1374 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java\n+-rw----     2.0 fat     1506 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/MapMerger.java\n+-rw----     2.0 fat     2927 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/MergerFactory.java\n+-rw----     2.0 fat     1484 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/SetMerger.java\n -rw----     2.0 fat     1647 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/merger/ShortArrayMerger.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/\n--rw----     2.0 fat     2028 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/AbstractRouter.java\n+-rw----     2.0 fat     2099 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/AbstractRouter.java\n -rw----     2.0 fat     2610 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/AbstractRouterRule.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/\n -rw----     2.0 fat    13172 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/ConditionRouter.java\n -rw----     2.0 fat     1344 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/ConditionRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/\n--rw----     2.0 fat     1419 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java\n--rw----     2.0 fat     1623 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java\n--rw----     2.0 fat     5147 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java\n--rw----     2.0 fat     1445 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java\n--rw----     2.0 fat     1345 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java\n+-rw----     2.0 fat     1455 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java\n+-rw----     2.0 fat     1672 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java\n+-rw----     2.0 fat     5274 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java\n+-rw----     2.0 fat     1481 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java\n+-rw----     2.0 fat     1382 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/model/\n -rw----     2.0 fat     1330 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRouterRule.java\n--rw----     2.0 fat     1748 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java\n+-rw----     2.0 fat     1803 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/file/\n--rw----     2.0 fat     3124 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java\n+-rw----     2.0 fat     3200 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/mock/\n--rw----     2.0 fat     3923 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java\n+-rw----     2.0 fat     4026 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java\n -rw----     2.0 fat     1303 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/mock/MockRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/script/\n -rw----     2.0 fat     6962 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/script/ScriptRouter.java\n -rw----     2.0 fat     1691 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/script/ScriptRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/\n--rw----     2.0 fat    11640 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java\n--rw----     2.0 fat     1309 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java\n+-rw----     2.0 fat    11904 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java\n+-rw----     2.0 fat     1345 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/\n -rw----     2.0 fat     1320 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/Tag.java\n--rw----     2.0 fat     2783 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java\n--rw----     2.0 fat     1553 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java\n+-rw----     2.0 fat     2873 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java\n+-rw----     2.0 fat     1597 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/\n--rw----     2.0 fat    12855 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java\n+-rw----     2.0 fat    13174 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java\n -rw----     2.0 fat     1350 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/AvailableCluster.java\n -rw----     2.0 fat     1756 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/AvailableClusterInvoker.java\n -rw----     2.0 fat     1304 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/BroadcastCluster.java\n -rw----     2.0 fat     5152 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/BroadcastClusterInvoker.java\n -rw----     2.0 fat     6268 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ClusterUtils.java\n -rw----     2.0 fat     1369 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailbackCluster.java\n -rw----     2.0 fat     6871 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailbackClusterInvoker.java\n -rw----     2.0 fat     1369 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailfastCluster.java\n -rw----     2.0 fat     2897 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailfastClusterInvoker.java\n -rw----     2.0 fat     1369 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailoverCluster.java\n -rw----     2.0 fat     5517 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailoverClusterInvoker.java\n -rw----     2.0 fat     1369 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailsafeCluster.java\n -rw----     2.0 fat     2370 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/FailsafeClusterInvoker.java\n -rw----     2.0 fat     1365 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ForkingCluster.java\n--rw----     2.0 fat     5323 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java\n--rw----     2.0 fat     1292 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/MergeableCluster.java\n--rw----     2.0 fat     7649 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java\n--rw----     2.0 fat     1168 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java\n+-rw----     2.0 fat     5436 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java\n+-rw----     2.0 fat     1324 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/MergeableCluster.java\n+-rw----     2.0 fat     7842 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java\n+-rw----     2.0 fat     1197 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/\n--rw----     2.0 fat     1123 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java\n--rw----     2.0 fat     1776 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java\n--rw----     2.0 fat     3280 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java\n--rw----     2.0 fat      954 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java\n+-rw----     2.0 fat     1150 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java\n+-rw----     2.0 fat     1830 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java\n+-rw----     2.0 fat     3370 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java\n+-rw----     2.0 fat      976 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/registry/\n--rw----     2.0 fat     1419 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java\n--rw----     2.0 fat    11256 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java\n+-rw----     2.0 fat     1454 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java\n+-rw----     2.0 fat    11508 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/wrapper/\n--rw----     2.0 fat     5320 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java\n+-rw----     2.0 fat     5452 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java\n -rw----     2.0 fat     7493 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/wrapper/MockClusterInvoker.java\n -rw----     2.0 fat     1466 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/cluster/support/wrapper/MockClusterWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/\n--rw----     2.0 fat     7579 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/AccessLogFilter.java\n+-rw----     2.0 fat     7773 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/AccessLogFilter.java\n -rw----     2.0 fat     5667 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ActiveLimitFilter.java\n -rw----     2.0 fat     1827 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ClassLoaderFilter.java\n -rw----     2.0 fat     4025 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/CompatibleFilter.java\n--rw----     2.0 fat     3400 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ConsumerContextFilter.java\n--rw----     2.0 fat     6200 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ContextFilter.java\n+-rw----     2.0 fat     3472 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ConsumerContextFilter.java\n+-rw----     2.0 fat     6348 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ContextFilter.java\n -rw----     2.0 fat     3267 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/DeprecatedFilter.java\n -rw----     2.0 fat     1852 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/EchoFilter.java\n -rw----     2.0 fat     5798 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ExceptionFilter.java\n -rw----     2.0 fat     3810 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/ExecuteLimitFilter.java\n--rw----     2.0 fat    13134 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/GenericFilter.java\n+-rw----     2.0 fat    13371 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/GenericFilter.java\n -rw----     2.0 fat    11294 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/GenericImplFilter.java\n -rw----     2.0 fat     2875 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/TimeoutFilter.java\n -rw----     2.0 fat     2581 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/TokenFilter.java\n--rw----     2.0 fat     2561 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/TpsLimitFilter.java\n+-rw----     2.0 fat     2620 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/TpsLimitFilter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/\n--rw----     2.0 fat     2716 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/DefaultTPSLimiter.java\n--rw----     2.0 fat     2580 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/StatItem.java\n+-rw----     2.0 fat     2783 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/DefaultTPSLimiter.java\n+-rw----     2.0 fat     2672 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/StatItem.java\n -rw----     2.0 fat     1656 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/filter/tps/TPSLimiter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/\n -rw----     2.0 fat     1709 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/DeprecatedInvokerListener.java\n -rw----     2.0 fat     1301 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/ExporterListenerAdapter.java\n -rw----     2.0 fat     1271 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/InvokerListenerAdapter.java\n -rw----     2.0 fat     3226 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/ListenerExporterWrapper.java\n -rw----     2.0 fat     3415 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/listener/ListenerInvokerWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/\n--rw----     2.0 fat      996 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ApplicationInitListener.java\n--rw----     2.0 fat     4776 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ApplicationModel.java\n--rw----     2.0 fat     2617 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/AsyncMethodInfo.java\n--rw----     2.0 fat      964 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/BuiltinServiceDetector.java\n--rw----     2.0 fat     3054 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ConsumerMethodModel.java\n--rw----     2.0 fat     7069 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ConsumerModel.java\n--rw----     2.0 fat     2992 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/MethodDescriptor.java\n--rw----     2.0 fat     2673 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ProviderMethodModel.java\n--rw----     2.0 fat     6669 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ProviderModel.java\n--rw----     2.0 fat     4362 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceDescriptor.java\n--rw----     2.0 fat     3100 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceMetadata.java\n--rw----     2.0 fat     7293 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceRepository.java\n+-rw----     2.0 fat     1022 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ApplicationInitListener.java\n+-rw----     2.0 fat     4904 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ApplicationModel.java\n+-rw----     2.0 fat     2704 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/AsyncMethodInfo.java\n+-rw----     2.0 fat      990 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/BuiltinServiceDetector.java\n+-rw----     2.0 fat     3155 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ConsumerMethodModel.java\n+-rw----     2.0 fat     7288 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ConsumerModel.java\n+-rw----     2.0 fat     3085 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/MethodDescriptor.java\n+-rw----     2.0 fat     2753 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ProviderMethodModel.java\n+-rw----     2.0 fat     6874 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ProviderModel.java\n+-rw----     2.0 fat     4481 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceDescriptor.java\n+-rw----     2.0 fat     3202 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceMetadata.java\n+-rw----     2.0 fat     7478 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/model/ServiceRepository.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/\n -rw----     2.0 fat     2294 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractExporter.java\n--rw----     2.0 fat     8018 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractInvoker.java\n--rw----     2.0 fat     4350 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractProtocol.java\n+-rw----     2.0 fat     8226 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractInvoker.java\n+-rw----     2.0 fat     4466 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractProtocol.java\n -rw----     2.0 fat     8676 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AbstractProxyProtocol.java\n--rw----     2.0 fat     3926 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java\n--rw----     2.0 fat     4009 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/FilterNode.java\n+-rw----     2.0 fat     4028 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java\n+-rw----     2.0 fat     4126 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/FilterNode.java\n -rw----     2.0 fat     1837 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/InvokerWrapper.java\n -rw----     2.0 fat     3408 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/ProtocolFilterWrapper.java\n -rw----     2.0 fat     3352 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/ProtocolListenerWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/\n--rw----     2.0 fat    15943 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java\n--rw----     2.0 fat     6371 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/ChannelWrappedInvoker.java\n--rw----     2.0 fat     2232 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/Constants.java\n--rw----     2.0 fat     7990 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java\n--rw----     2.0 fat     7072 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java\n--rw----     2.0 fat    10983 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java\n--rw----     2.0 fat     2585 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java\n--rw----     2.0 fat     3102 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCountCodec.java\n--rw----     2.0 fat     1457 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboExporter.java\n--rw----     2.0 fat     8153 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java\n--rw----     2.0 fat    27447 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java\n--rw----     2.0 fat     1812 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolServer.java\n--rw----     2.0 fat     3502 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/FutureAdapter.java\n--rw----     2.0 fat     8140 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java\n--rw----     2.0 fat     6087 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClient.java\n+-rw----     2.0 fat    16261 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java\n+-rw----     2.0 fat     6554 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/ChannelWrappedInvoker.java\n+-rw----     2.0 fat     2303 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/Constants.java\n+-rw----     2.0 fat     8185 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java\n+-rw----     2.0 fat     7256 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java\n+-rw----     2.0 fat    11231 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java\n+-rw----     2.0 fat     2638 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java\n+-rw----     2.0 fat     3188 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboCountCodec.java\n+-rw----     2.0 fat     1501 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboExporter.java\n+-rw----     2.0 fat     8336 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java\n+-rw----     2.0 fat    28133 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java\n+-rw----     2.0 fat     1874 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolServer.java\n+-rw----     2.0 fat     3601 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/FutureAdapter.java\n+-rw----     2.0 fat     8409 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java\n+-rw----     2.0 fat     6298 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClient.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/filter/\n--rw----     2.0 fat     8744 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java\n--rw----     2.0 fat     5704 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/filter/TraceFilter.java\n--rw----     2.0 fat     1033 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/package-info.java\n+-rw----     2.0 fat     8947 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java\n+-rw----     2.0 fat     5831 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/filter/TraceFilter.java\n+-rw----     2.0 fat     1054 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/package-info.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/status/\n--rw----     2.0 fat     2276 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java\n--rw----     2.0 fat     2950 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java\n+-rw----     2.0 fat     2337 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java\n+-rw----     2.0 fat     3017 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/\n--rw----     2.0 fat     2649 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/DubboHandlerRegistry.java\n--rw----     2.0 fat      876 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcConfig.java\n--rw----     2.0 fat     1950 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcConstants.java\n--rw----     2.0 fat     4069 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcInvoker.java\n--rw----     2.0 fat    10459 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java\n--rw----     2.0 fat     8464 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java\n--rw----     2.0 fat     2622 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/ReferenceCountManagedChannel.java\n+-rw----     2.0 fat     2722 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/DubboHandlerRegistry.java\n+-rw----     2.0 fat      897 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcConfig.java\n+-rw----     2.0 fat     1991 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcConstants.java\n+-rw----     2.0 fat     4187 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcInvoker.java\n+-rw----     2.0 fat    10684 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java\n+-rw----     2.0 fat     8699 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java\n+-rw----     2.0 fat     2707 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/ReferenceCountManagedChannel.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/\n--rw----     2.0 fat     1094 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ClientInterceptor.java\n--rw----     2.0 fat     1458 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/GrpcConfigurator.java\n--rw----     2.0 fat     4384 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/RpcContextInterceptor.java\n--rw----     2.0 fat     1094 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerInterceptor.java\n--rw----     2.0 fat     1121 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerTransportFilter.java\n+-rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ClientInterceptor.java\n+-rw----     2.0 fat     1499 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/GrpcConfigurator.java\n+-rw----     2.0 fat     4484 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/RpcContextInterceptor.java\n+-rw----     2.0 fat     1120 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerInterceptor.java\n+-rw----     2.0 fat     1148 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerTransportFilter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/\n--rw----     2.0 fat     1160 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/Constants.java\n--rw----     2.0 fat     1586 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/DubboHessianURLConnectionFactory.java\n+-rw----     2.0 fat     1195 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/Constants.java\n+-rw----     2.0 fat     1627 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/DubboHessianURLConnectionFactory.java\n -rw----     2.0 fat     8893 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/HessianProtocol.java\n -rw----     2.0 fat     3316 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/HttpClientConnection.java\n--rw----     2.0 fat     2341 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java\n+-rw----     2.0 fat     2399 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/\n--rw----     2.0 fat     7560 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/HttpProtocol.java\n+-rw----     2.0 fat     7750 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/HttpProtocol.java\n -rw----     2.0 fat     1065 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/HttpProtocolErrorCode.java\n--rw----     2.0 fat     2283 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java\n--rw----     2.0 fat     2828 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java\n+-rw----     2.0 fat     2344 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java\n+-rw----     2.0 fat     2914 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/injvm/\n -rw----     2.0 fat     1526 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/injvm/InjvmExporter.java\n -rw----     2.0 fat     2742 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/injvm/InjvmInvoker.java\n--rw----     2.0 fat     4466 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java\n+-rw----     2.0 fat     4586 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/memcached/\n -rw----     2.0 fat     6488 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/memcached/MemcachedProtocol.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/nativethrift/\n--rw----     2.0 fat     8129 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/nativethrift/ThriftProtocol.java\n+-rw----     2.0 fat     8318 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/nativethrift/ThriftProtocol.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/redis/\n -rw----     2.0 fat    10106 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/redis/RedisProtocol.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/\n--rw----     2.0 fat     3030 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java\n--rw----     2.0 fat     1012 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/Constants.java\n--rw----     2.0 fat     4599 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java\n+-rw----     2.0 fat     3110 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java\n+-rw----     2.0 fat     1041 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/Constants.java\n+-rw----     2.0 fat     4730 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java\n -rw----     2.0 fat     2581 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/DubboResourceFactory.java\n--rw----     2.0 fat     3144 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java\n+-rw----     2.0 fat     3217 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java\n -rw----     2.0 fat     2017 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestConstraintViolation.java\n--rw----     2.0 fat    12786 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocol.java\n--rw----     2.0 fat     1236 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java\n--rw----     2.0 fat     1701 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java\n--rw----     2.0 fat     4502 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java\n+-rw----     2.0 fat    13081 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocol.java\n+-rw----     2.0 fat     1269 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java\n+-rw----     2.0 fat     1745 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java\n+-rw----     2.0 fat     4608 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java\n -rw----     2.0 fat     2538 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/RpcExceptionMapper.java\n -rw----     2.0 fat     1939 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/ViolationReport.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/\n -rw----     2.0 fat     2137 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerApiListingResource.java\n--rw----     2.0 fat     1734 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java\n+-rw----     2.0 fat     1776 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/\n -rw----     2.0 fat     1315 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/ContentType.java\n--rw----     2.0 fat     5479 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java\n+-rw----     2.0 fat     5627 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rmi/\n -rw----     2.0 fat     6866 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rmi/RmiProtocol.java\n--rw----     2.0 fat     2659 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java\n+-rw----     2.0 fat     2722 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/\n--rw----     2.0 fat     1219 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator.java\n--rw----     2.0 fat     1436 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/DubboClassNameGenerator.java\n+-rw----     2.0 fat     1250 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator.java\n+-rw----     2.0 fat     1472 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/DubboClassNameGenerator.java\n -rw----     2.0 fat     1486 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftClassNameGenerator.java\n--rw----     2.0 fat    24656 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftCodec.java\n--rw----     2.0 fat     1320 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftConstants.java\n--rw----     2.0 fat     6104 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftInvoker.java\n--rw----     2.0 fat     3891 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftNativeCodec.java\n--rw----     2.0 fat     9871 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftProtocol.java\n--rw----     2.0 fat     1644 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftType.java\n--rw----     2.0 fat     4218 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftUtils.java\n+-rw----     2.0 fat    25354 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftCodec.java\n+-rw----     2.0 fat     1352 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftConstants.java\n+-rw----     2.0 fat     6275 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftInvoker.java\n+-rw----     2.0 fat     3987 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftNativeCodec.java\n+-rw----     2.0 fat    10143 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftProtocol.java\n+-rw----     2.0 fat     1695 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftType.java\n+-rw----     2.0 fat     4353 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ThriftUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ext/\n--rw----     2.0 fat     4158 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ext/MultiServiceProcessor.java\n+-rw----     2.0 fat     4279 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/ext/MultiServiceProcessor.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/io/\n -rw----     2.0 fat     2385 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/io/InputStreamWrapper.java\n--rw----     2.0 fat     3057 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/io/RandomAccessByteArrayOutputStream.java\n+-rw----     2.0 fat     3174 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/thrift/io/RandomAccessByteArrayOutputStream.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/webservice/\n--rw----     2.0 fat     8937 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/webservice/WebServiceProtocol.java\n+-rw----     2.0 fat     9148 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/protocol/webservice/WebServiceProtocol.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/\n -rw----     2.0 fat     3246 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/AbstractProxyFactory.java\n--rw----     2.0 fat     4848 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/AbstractProxyInvoker.java\n--rw----     2.0 fat     3857 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/InvokerInvocationHandler.java\n+-rw----     2.0 fat     4975 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/AbstractProxyInvoker.java\n+-rw----     2.0 fat     3955 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/InvokerInvocationHandler.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/javassist/\n--rw----     2.0 fat     2236 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/javassist/JavassistProxyFactory.java\n+-rw----     2.0 fat     2288 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/javassist/JavassistProxyFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/jdk/\n -rw----     2.0 fat     2124 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/jdk/JdkProxyFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/wrapper/\n -rw----     2.0 fat     5842 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/proxy/wrapper/StubProxyFactoryWrapper.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/\n--rw----     2.0 fat      897 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/Destroyable.java\n--rw----     2.0 fat     1041 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/EchoService.java\n--rw----     2.0 fat     1062 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/EchoServiceDetector.java\n--rw----     2.0 fat     1993 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericException.java\n--rw----     2.0 fat     1886 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericService.java\n--rw----     2.0 fat     1068 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericServiceDetector.java\n+-rw----     2.0 fat      920 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/Destroyable.java\n+-rw----     2.0 fat     1073 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/EchoService.java\n+-rw----     2.0 fat     1090 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/EchoServiceDetector.java\n+-rw----     2.0 fat     2057 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericException.java\n+-rw----     2.0 fat     1933 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericService.java\n+-rw----     2.0 fat     1096 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/service/GenericServiceDetector.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/\n--rw----     2.0 fat     7911 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/AccessLogData.java\n--rw----     2.0 fat     2889 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/GroupServiceKeyCache.java\n+-rw----     2.0 fat     8192 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/AccessLogData.java\n+-rw----     2.0 fat     2960 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/GroupServiceKeyCache.java\n -rw----     2.0 fat    11093 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/MockInvoker.java\n -rw----     2.0 fat     1630 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/MockProtocol.java\n--rw----     2.0 fat     4189 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/ProtocolUtils.java\n--rw----     2.0 fat    11062 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/RpcUtils.java\n+-rw----     2.0 fat     4280 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/ProtocolUtils.java\n+-rw----     2.0 fat    11335 bX stor 70-Jan-01 00:00 org/apache/dubbo/rpc/support/RpcUtils.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/serialize/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/\n--rw----     2.0 fat     2692 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2ObjectInput.java\n--rw----     2.0 fat     2635 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2ObjectOutput.java\n--rw----     2.0 fat     1799 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2Serialization.java\n--rw----     2.0 fat     1801 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2SerializerFactory.java\n--rw----     2.0 fat     4559 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Java8SerializerFactory.java\n+-rw----     2.0 fat     2790 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2ObjectInput.java\n+-rw----     2.0 fat     2730 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2ObjectOutput.java\n+-rw----     2.0 fat     1852 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2Serialization.java\n+-rw----     2.0 fat     1843 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Hessian2SerializerFactory.java\n+-rw----     2.0 fat     4647 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/Java8SerializerFactory.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/\n--rw----     2.0 fat     1658 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/DurationHandle.java\n--rw----     2.0 fat     1657 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/InstantHandle.java\n--rw----     2.0 fat     1960 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/Java8TimeSerializer.java\n--rw----     2.0 fat     1727 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateHandle.java\n--rw----     2.0 fat     1750 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateTimeHandle.java\n--rw----     2.0 fat     1807 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalTimeHandle.java\n--rw----     2.0 fat     1646 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/MonthDayHandle.java\n--rw----     2.0 fat     1801 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/OffsetDateTimeHandle.java\n--rw----     2.0 fat     1764 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/OffsetTimeHandle.java\n--rw----     2.0 fat     1697 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/PeriodHandle.java\n--rw----     2.0 fat     1523 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/YearHandle.java\n--rw----     2.0 fat     1654 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/YearMonthHandle.java\n--rw----     2.0 fat     1557 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdHandle.java\n--rw----     2.0 fat     1468 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdSerializer.java\n--rw----     2.0 fat     1609 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneOffsetHandle.java\n--rw----     2.0 fat     2009 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZonedDateTimeHandle.java\n+-rw----     2.0 fat     1711 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/DurationHandle.java\n+-rw----     2.0 fat     1711 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/InstantHandle.java\n+-rw----     2.0 fat     2017 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/Java8TimeSerializer.java\n+-rw----     2.0 fat     1782 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateHandle.java\n+-rw----     2.0 fat     1805 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateTimeHandle.java\n+-rw----     2.0 fat     1864 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/LocalTimeHandle.java\n+-rw----     2.0 fat     1699 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/MonthDayHandle.java\n+-rw----     2.0 fat     1856 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/OffsetDateTimeHandle.java\n+-rw----     2.0 fat     1819 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/OffsetTimeHandle.java\n+-rw----     2.0 fat     1753 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/PeriodHandle.java\n+-rw----     2.0 fat     1575 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/YearHandle.java\n+-rw----     2.0 fat     1707 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/YearMonthHandle.java\n+-rw----     2.0 fat     1609 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdHandle.java\n+-rw----     2.0 fat     1511 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdSerializer.java\n+-rw----     2.0 fat     1660 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZoneOffsetHandle.java\n+-rw----     2.0 fat     2071 bX stor 70-Jan-01 00:00 org/apache/dubbo/serialize/hessian/serializer/java8/ZonedDateTimeHandle.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/validation/\n -rw----     2.0 fat     1640 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/MethodValidated.java\n -rw----     2.0 fat     1507 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/Validation.java\n -rw----     2.0 fat     1145 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/Validator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/validation/filter/\n -rw----     2.0 fat     4842 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/filter/ValidationFilter.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/validation/support/\n@@ -2002,12 +2002,12 @@\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/validation/support/jvalidation/\n -rw----     2.0 fat     1475 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/support/jvalidation/JValidation.java\n -rw----     2.0 fat    15679 bX stor 70-Jan-01 00:00 org/apache/dubbo/validation/support/jvalidation/JValidator.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/xml/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/xmlrpc/\n--rw----     2.0 fat     7663 bX stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProtocol.java\n--rw----     2.0 fat     4530 bX stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProxyFactoryBean.java\n+-rw----     2.0 fat     7859 bX stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProtocol.java\n+-rw----     2.0 fat     4672 bX stor 70-Jan-01 00:00 org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProxyFactoryBean.java\n -rw----     2.0 fat        0 bx stor 70-Jan-01 00:00 security/\n--rw----     2.0 fat     4520 bX stor 70-Jan-01 00:00 security/serialize.blockedlist\n-2011 files, 6908943 bytes uncompressed, 6908943 bytes compressed:  0.0%\n+-rw----     2.0 fat     4686 bX stor 70-Jan-01 00:00 security/serialize.blockedlist\n+2011 files, 7011819 bytes uncompressed, 7011819 bytes compressed:  0.0%\n"}, {"source1": "zipdetails --redact --scan --utc {}", "source2": "zipdetails --redact --scan --utc {}", "unified_diff": "@@ -194,113110 +194,113111 @@\n #\n 012AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 012AB6   Length              0005 (5)\n 012AB8   Flags               01 (1) 'Modification'\n 012AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n 012ABD PAYLOAD\n \n-01363C DATA DESCRIPTOR       08074B50 (134695760)\n-013640 CRC                   628AF130 (1653272880)\n-013644 Compressed Size       00000B7F (2943)\n-013648 Uncompressed Size     00000B7F (2943)\n-\n-01364C LOCAL HEADER #9       04034B50 (67324752)\n-013650 Extract Zip Spec      14 (20) '2.0'\n-013651 Extract OS            00 (0) 'MS-DOS'\n-013652 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-013654 Compression Method    0000 (0) 'Stored'\n-013656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-01365A CRC                   00000000 (0)\n-01365E Compressed Size       00000000 (0)\n-013662 Uncompressed Size     00000000 (0)\n-013666 Filename Length       0020 (32)\n-013668 Extra Length          0009 (9)\n-01366A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1366A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-01368A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-01368C   Length              0005 (5)\n-01368E   Flags               01 (1) 'Modification'\n-01368F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-013693 PAYLOAD\n-\n-0139D3 DATA DESCRIPTOR       08074B50 (134695760)\n-0139D7 CRC                   DF2293D8 (3743585240)\n-0139DB Compressed Size       00000340 (832)\n-0139DF Uncompressed Size     00000340 (832)\n-\n-0139E3 LOCAL HEADER #10      04034B50 (67324752)\n-0139E7 Extract Zip Spec      14 (20) '2.0'\n-0139E8 Extract OS            00 (0) 'MS-DOS'\n-0139E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0139EB Compression Method    0000 (0) 'Stored'\n-0139ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0139F1 CRC                   00000000 (0)\n-0139F5 Compressed Size       00000000 (0)\n-0139F9 Uncompressed Size     00000000 (0)\n-0139FD Filename Length       001F (31)\n-0139FF Extra Length          0009 (9)\n-013A01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13A01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-013A20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-013A22   Length              0005 (5)\n-013A24   Flags               01 (1) 'Modification'\n-013A25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-013A29 PAYLOAD\n-\n-013ED5 DATA DESCRIPTOR       08074B50 (134695760)\n-013ED9 CRC                   0F1B3503 (253441283)\n-013EDD Compressed Size       000004AC (1196)\n-013EE1 Uncompressed Size     000004AC (1196)\n-\n-013EE5 LOCAL HEADER #11      04034B50 (67324752)\n-013EE9 Extract Zip Spec      14 (20) '2.0'\n-013EEA Extract OS            00 (0) 'MS-DOS'\n-013EEB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-013EED Compression Method    0000 (0) 'Stored'\n-013EEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-013EF3 CRC                   00000000 (0)\n-013EF7 Compressed Size       00000000 (0)\n-013EFB Uncompressed Size     00000000 (0)\n-013EFF Filename Length       001F (31)\n-013F01 Extra Length          0009 (9)\n-013F03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13F03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-013F22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-013F24   Length              0005 (5)\n-013F26   Flags               01 (1) 'Modification'\n-013F27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-013F2B PAYLOAD\n-\n-0146FD DATA DESCRIPTOR       08074B50 (134695760)\n-014701 CRC                   CD3B8ABC (3443231420)\n-014705 Compressed Size       000007D2 (2002)\n-014709 Uncompressed Size     000007D2 (2002)\n-\n-01470D LOCAL HEADER #12      04034B50 (67324752)\n-014711 Extract Zip Spec      14 (20) '2.0'\n-014712 Extract OS            00 (0) 'MS-DOS'\n-014713 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-014715 Compression Method    0000 (0) 'Stored'\n-014717 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-01471B CRC                   00000000 (0)\n-01471F Compressed Size       00000000 (0)\n-014723 Uncompressed Size     00000000 (0)\n-014727 Filename Length       001E (30)\n-014729 Extra Length          0009 (9)\n-01472B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1472B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-014749 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-01474B   Length              0005 (5)\n-01474D   Flags               01 (1) 'Modification'\n-01474E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-014752 PAYLOAD\n-\n-015BD3 DATA DESCRIPTOR       08074B50 (134695760)\n-015BD7 CRC                   B719070A (3071870730)\n-015BDB Compressed Size       00001481 (5249)\n-015BDF Uncompressed Size     00001481 (5249)\n-\n-015BE3 LOCAL HEADER #13      04034B50 (67324752)\n-015BE7 Extract Zip Spec      14 (20) '2.0'\n-015BE8 Extract OS            00 (0) 'MS-DOS'\n-015BE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-015BEB Compression Method    0000 (0) 'Stored'\n-015BED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-015BF1 CRC                   00000000 (0)\n-015BF5 Compressed Size       00000000 (0)\n-015BF9 Uncompressed Size     00000000 (0)\n-015BFD Filename Length       001D (29)\n-015BFF Extra Length          0009 (9)\n-015C01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15C01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-015C1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-015C20   Length              0005 (5)\n-015C22   Flags               01 (1) 'Modification'\n-015C23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-015C27 PAYLOAD\n-\n-01628A DATA DESCRIPTOR       08074B50 (134695760)\n-01628E CRC                   DB70852A (3681584426)\n-016292 Compressed Size       00000663 (1635)\n-016296 Uncompressed Size     00000663 (1635)\n-\n-01629A LOCAL HEADER #14      04034B50 (67324752)\n-01629E Extract Zip Spec      14 (20) '2.0'\n-01629F Extract OS            00 (0) 'MS-DOS'\n-0162A0 General Purpose Flag  0000 (0)\n-0162A2 Compression Method    0000 (0) 'Stored'\n-0162A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0162A8 CRC                   00000000 (0)\n-0162AC Compressed Size       00000000 (0)\n-0162B0 Uncompressed Size     00000000 (0)\n-0162B4 Filename Length       0010 (16)\n-0162B6 Extra Length          0009 (9)\n-0162B8 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x162B8: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0162C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0162CA   Length              0005 (5)\n-0162CC   Flags               01 (1) 'Modification'\n-0162CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0162D1 LOCAL HEADER #15      04034B50 (67324752)\n-0162D5 Extract Zip Spec      14 (20) '2.0'\n-0162D6 Extract OS            00 (0) 'MS-DOS'\n-0162D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0162D9 Compression Method    0000 (0) 'Stored'\n-0162DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0162DF CRC                   00000000 (0)\n-0162E3 Compressed Size       00000000 (0)\n-0162E7 Uncompressed Size     00000000 (0)\n-0162EB Filename Length       0019 (25)\n-0162ED Extra Length          0009 (9)\n-0162EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x162EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-016308 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-01630A   Length              0005 (5)\n-01630C   Flags               01 (1) 'Modification'\n-01630D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-016311 PAYLOAD\n-\n-029A80 DATA DESCRIPTOR       08074B50 (134695760)\n-029A84 CRC                   E62522BB (3861193403)\n-029A88 Compressed Size       0001376F (79727)\n-029A8C Uncompressed Size     0001376F (79727)\n-\n-029A90 LOCAL HEADER #16      04034B50 (67324752)\n-029A94 Extract Zip Spec      14 (20) '2.0'\n-029A95 Extract OS            00 (0) 'MS-DOS'\n-029A96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-029A98 Compression Method    0000 (0) 'Stored'\n-029A9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-029A9E CRC                   00000000 (0)\n-029AA2 Compressed Size       00000000 (0)\n-029AA6 Uncompressed Size     00000000 (0)\n-029AAA Filename Length       0012 (18)\n-029AAC Extra Length          0009 (9)\n-029AAE Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29AAE: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-029AC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-029AC2   Length              0005 (5)\n-029AC4   Flags               01 (1) 'Modification'\n-029AC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-029AC9 PAYLOAD\n-\n-03D8A4 DATA DESCRIPTOR       08074B50 (134695760)\n-03D8A8 CRC                   7AAFE556 (2058347862)\n-03D8AC Compressed Size       00013DDB (81371)\n-03D8B0 Uncompressed Size     00013DDB (81371)\n-\n-03D8B4 LOCAL HEADER #17      04034B50 (67324752)\n-03D8B8 Extract Zip Spec      14 (20) '2.0'\n-03D8B9 Extract OS            00 (0) 'MS-DOS'\n-03D8BA General Purpose Flag  0000 (0)\n-03D8BC Compression Method    0000 (0) 'Stored'\n-03D8BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03D8C2 CRC                   00000000 (0)\n-03D8C6 Compressed Size       00000000 (0)\n-03D8CA Uncompressed Size     00000000 (0)\n-03D8CE Filename Length       000F (15)\n-03D8D0 Extra Length          0009 (9)\n-03D8D2 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D8D2: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03D8E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03D8E3   Length              0005 (5)\n-03D8E5   Flags               01 (1) 'Modification'\n-03D8E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03D8EA LOCAL HEADER #18      04034B50 (67324752)\n-03D8EE Extract Zip Spec      14 (20) '2.0'\n-03D8EF Extract OS            00 (0) 'MS-DOS'\n-03D8F0 General Purpose Flag  0000 (0)\n-03D8F2 Compression Method    0000 (0) 'Stored'\n-03D8F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03D8F8 CRC                   00000000 (0)\n-03D8FC Compressed Size       00000000 (0)\n-03D900 Uncompressed Size     00000000 (0)\n-03D904 Filename Length       0018 (24)\n-03D906 Extra Length          0009 (9)\n-03D908 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D908: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03D920 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03D922   Length              0005 (5)\n-03D924   Flags               01 (1) 'Modification'\n-03D925   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-03D929 LOCAL HEADER #19      04034B50 (67324752)\n-03D92D Extract Zip Spec      14 (20) '2.0'\n-03D92E Extract OS            00 (0) 'MS-DOS'\n-03D92F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03D931 Compression Method    0000 (0) 'Stored'\n-03D933 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03D937 CRC                   00000000 (0)\n-03D93B Compressed Size       00000000 (0)\n-03D93F Uncompressed Size     00000000 (0)\n-03D943 Filename Length       003B (59)\n-03D945 Extra Length          0009 (9)\n-03D947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03D982 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03D984   Length              0005 (5)\n-03D986   Flags               01 (1) 'Modification'\n-03D987   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03D98B PAYLOAD\n-\n-03DACF DATA DESCRIPTOR       08074B50 (134695760)\n-03DAD3 CRC                   19FFB665 (436188773)\n-03DAD7 Compressed Size       00000144 (324)\n-03DADB Uncompressed Size     00000144 (324)\n-\n-03DADF LOCAL HEADER #20      04034B50 (67324752)\n-03DAE3 Extract Zip Spec      14 (20) '2.0'\n-03DAE4 Extract OS            00 (0) 'MS-DOS'\n-03DAE5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03DAE7 Compression Method    0000 (0) 'Stored'\n-03DAE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03DAED CRC                   00000000 (0)\n-03DAF1 Compressed Size       00000000 (0)\n-03DAF5 Uncompressed Size     00000000 (0)\n-03DAF9 Filename Length       0041 (65)\n-03DAFB Extra Length          0009 (9)\n-03DAFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DAFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03DB3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03DB40   Length              0005 (5)\n-03DB42   Flags               01 (1) 'Modification'\n-03DB43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03DB47 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0136A8 DATA DESCRIPTOR       08074B50 (134695760)\n+0136AC CRC                   F79D8E60 (4154297952)\n+0136B0 Compressed Size       00000BEB (3051)\n+0136B4 Uncompressed Size     00000BEB (3051)\n+\n+0136B8 LOCAL HEADER #9       04034B50 (67324752)\n+0136BC Extract Zip Spec      14 (20) '2.0'\n+0136BD Extract OS            00 (0) 'MS-DOS'\n+0136BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0136C0 Compression Method    0000 (0) 'Stored'\n+0136C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0136C6 CRC                   00000000 (0)\n+0136CA Compressed Size       00000000 (0)\n+0136CE Uncompressed Size     00000000 (0)\n+0136D2 Filename Length       0020 (32)\n+0136D4 Extra Length          0009 (9)\n+0136D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x136D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0136F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0136F8   Length              0005 (5)\n+0136FA   Flags               01 (1) 'Modification'\n+0136FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0136FF PAYLOAD\n+\n+013A53 DATA DESCRIPTOR       08074B50 (134695760)\n+013A57 CRC                   3ED932F9 (1054421753)\n+013A5B Compressed Size       00000354 (852)\n+013A5F Uncompressed Size     00000354 (852)\n+\n+013A63 LOCAL HEADER #10      04034B50 (67324752)\n+013A67 Extract Zip Spec      14 (20) '2.0'\n+013A68 Extract OS            00 (0) 'MS-DOS'\n+013A69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+013A6B Compression Method    0000 (0) 'Stored'\n+013A6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+013A71 CRC                   00000000 (0)\n+013A75 Compressed Size       00000000 (0)\n+013A79 Uncompressed Size     00000000 (0)\n+013A7D Filename Length       001F (31)\n+013A7F Extra Length          0009 (9)\n+013A81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13A81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+013AA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+013AA2   Length              0005 (5)\n+013AA4   Flags               01 (1) 'Modification'\n+013AA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+013AA9 PAYLOAD\n+\n+013F7D DATA DESCRIPTOR       08074B50 (134695760)\n+013F81 CRC                   B518B61F (3038295583)\n+013F85 Compressed Size       000004D4 (1236)\n+013F89 Uncompressed Size     000004D4 (1236)\n+\n+013F8D LOCAL HEADER #11      04034B50 (67324752)\n+013F91 Extract Zip Spec      14 (20) '2.0'\n+013F92 Extract OS            00 (0) 'MS-DOS'\n+013F93 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+013F95 Compression Method    0000 (0) 'Stored'\n+013F97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+013F9B CRC                   00000000 (0)\n+013F9F Compressed Size       00000000 (0)\n+013FA3 Uncompressed Size     00000000 (0)\n+013FA7 Filename Length       001F (31)\n+013FA9 Extra Length          0009 (9)\n+013FAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13FAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+013FCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+013FCC   Length              0005 (5)\n+013FCE   Flags               01 (1) 'Modification'\n+013FCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+013FD3 PAYLOAD\n+\n+0147A5 DATA DESCRIPTOR       08074B50 (134695760)\n+0147A9 CRC                   CD3B8ABC (3443231420)\n+0147AD Compressed Size       000007D2 (2002)\n+0147B1 Uncompressed Size     000007D2 (2002)\n+\n+0147B5 LOCAL HEADER #12      04034B50 (67324752)\n+0147B9 Extract Zip Spec      14 (20) '2.0'\n+0147BA Extract OS            00 (0) 'MS-DOS'\n+0147BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0147BD Compression Method    0000 (0) 'Stored'\n+0147BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0147C3 CRC                   00000000 (0)\n+0147C7 Compressed Size       00000000 (0)\n+0147CB Uncompressed Size     00000000 (0)\n+0147CF Filename Length       001E (30)\n+0147D1 Extra Length          0009 (9)\n+0147D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x147D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0147F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0147F3   Length              0005 (5)\n+0147F5   Flags               01 (1) 'Modification'\n+0147F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0147FA PAYLOAD\n+\n+015CFF DATA DESCRIPTOR       08074B50 (134695760)\n+015D03 CRC                   4CE4C327 (1290060583)\n+015D07 Compressed Size       00001505 (5381)\n+015D0B Uncompressed Size     00001505 (5381)\n+\n+015D0F LOCAL HEADER #13      04034B50 (67324752)\n+015D13 Extract Zip Spec      14 (20) '2.0'\n+015D14 Extract OS            00 (0) 'MS-DOS'\n+015D15 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+015D17 Compression Method    0000 (0) 'Stored'\n+015D19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+015D1D CRC                   00000000 (0)\n+015D21 Compressed Size       00000000 (0)\n+015D25 Uncompressed Size     00000000 (0)\n+015D29 Filename Length       001D (29)\n+015D2B Extra Length          0009 (9)\n+015D2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+015D4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+015D4C   Length              0005 (5)\n+015D4E   Flags               01 (1) 'Modification'\n+015D4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+015D53 PAYLOAD\n+\n+0163F2 DATA DESCRIPTOR       08074B50 (134695760)\n+0163F6 CRC                   FA33FECC (4197711564)\n+0163FA Compressed Size       0000069F (1695)\n+0163FE Uncompressed Size     0000069F (1695)\n+\n+016402 LOCAL HEADER #14      04034B50 (67324752)\n+016406 Extract Zip Spec      14 (20) '2.0'\n+016407 Extract OS            00 (0) 'MS-DOS'\n+016408 General Purpose Flag  0000 (0)\n+01640A Compression Method    0000 (0) 'Stored'\n+01640C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+016410 CRC                   00000000 (0)\n+016414 Compressed Size       00000000 (0)\n+016418 Uncompressed Size     00000000 (0)\n+01641C Filename Length       0010 (16)\n+01641E Extra Length          0009 (9)\n+016420 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16420: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+016430 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+016432   Length              0005 (5)\n+016434   Flags               01 (1) 'Modification'\n+016435   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+016439 LOCAL HEADER #15      04034B50 (67324752)\n+01643D Extract Zip Spec      14 (20) '2.0'\n+01643E Extract OS            00 (0) 'MS-DOS'\n+01643F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+016441 Compression Method    0000 (0) 'Stored'\n+016443 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+016447 CRC                   00000000 (0)\n+01644B Compressed Size       00000000 (0)\n+01644F Uncompressed Size     00000000 (0)\n+016453 Filename Length       0019 (25)\n+016455 Extra Length          0009 (9)\n+016457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+016470 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+016472   Length              0005 (5)\n+016474   Flags               01 (1) 'Modification'\n+016475   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+016479 PAYLOAD\n+\n+02A24A DATA DESCRIPTOR       08074B50 (134695760)\n+02A24E CRC                   91F75F87 (2448908167)\n+02A252 Compressed Size       00013DD1 (81361)\n+02A256 Uncompressed Size     00013DD1 (81361)\n+\n+02A25A LOCAL HEADER #16      04034B50 (67324752)\n+02A25E Extract Zip Spec      14 (20) '2.0'\n+02A25F Extract OS            00 (0) 'MS-DOS'\n+02A260 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+02A262 Compression Method    0000 (0) 'Stored'\n+02A264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+02A268 CRC                   00000000 (0)\n+02A26C Compressed Size       00000000 (0)\n+02A270 Uncompressed Size     00000000 (0)\n+02A274 Filename Length       0012 (18)\n+02A276 Extra Length          0009 (9)\n+02A278 Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A278: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+02A28A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+02A28C   Length              0005 (5)\n+02A28E   Flags               01 (1) 'Modification'\n+02A28F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+02A293 PAYLOAD\n+\n+03E6F4 DATA DESCRIPTOR       08074B50 (134695760)\n+03E6F8 CRC                   DDC8B9B8 (3720919480)\n+03E6FC Compressed Size       00014461 (83041)\n+03E700 Uncompressed Size     00014461 (83041)\n+\n+03E704 LOCAL HEADER #17      04034B50 (67324752)\n+03E708 Extract Zip Spec      14 (20) '2.0'\n+03E709 Extract OS            00 (0) 'MS-DOS'\n+03E70A General Purpose Flag  0000 (0)\n+03E70C Compression Method    0000 (0) 'Stored'\n+03E70E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03E712 CRC                   00000000 (0)\n+03E716 Compressed Size       00000000 (0)\n+03E71A Uncompressed Size     00000000 (0)\n+03E71E Filename Length       000F (15)\n+03E720 Extra Length          0009 (9)\n+03E722 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E722: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E731 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E733   Length              0005 (5)\n+03E735   Flags               01 (1) 'Modification'\n+03E736   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03E73A LOCAL HEADER #18      04034B50 (67324752)\n+03E73E Extract Zip Spec      14 (20) '2.0'\n+03E73F Extract OS            00 (0) 'MS-DOS'\n+03E740 General Purpose Flag  0000 (0)\n+03E742 Compression Method    0000 (0) 'Stored'\n+03E744 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03E748 CRC                   00000000 (0)\n+03E74C Compressed Size       00000000 (0)\n+03E750 Uncompressed Size     00000000 (0)\n+03E754 Filename Length       0018 (24)\n+03E756 Extra Length          0009 (9)\n+03E758 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E758: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E770 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E772   Length              0005 (5)\n+03E774   Flags               01 (1) 'Modification'\n+03E775   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+03E779 LOCAL HEADER #19      04034B50 (67324752)\n+03E77D Extract Zip Spec      14 (20) '2.0'\n+03E77E Extract OS            00 (0) 'MS-DOS'\n+03E77F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03E781 Compression Method    0000 (0) 'Stored'\n+03E783 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03E787 CRC                   00000000 (0)\n+03E78B Compressed Size       00000000 (0)\n+03E78F Uncompressed Size     00000000 (0)\n+03E793 Filename Length       003B (59)\n+03E795 Extra Length          0009 (9)\n+03E797 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E797: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E7D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E7D4   Length              0005 (5)\n+03E7D6   Flags               01 (1) 'Modification'\n+03E7D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03E7DB PAYLOAD\n+\n+03E91F DATA DESCRIPTOR       08074B50 (134695760)\n+03E923 CRC                   19FFB665 (436188773)\n+03E927 Compressed Size       00000144 (324)\n+03E92B Uncompressed Size     00000144 (324)\n+\n+03E92F LOCAL HEADER #20      04034B50 (67324752)\n+03E933 Extract Zip Spec      14 (20) '2.0'\n+03E934 Extract OS            00 (0) 'MS-DOS'\n+03E935 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03E937 Compression Method    0000 (0) 'Stored'\n+03E939 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03E93D CRC                   00000000 (0)\n+03E941 Compressed Size       00000000 (0)\n+03E945 Uncompressed Size     00000000 (0)\n+03E949 Filename Length       0041 (65)\n+03E94B Extra Length          0009 (9)\n+03E94D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E94D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03E98E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03E990   Length              0005 (5)\n+03E992   Flags               01 (1) 'Modification'\n+03E993   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03E997 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-03DC0A DATA DESCRIPTOR       08074B50 (134695760)\n-03DC0E CRC                   7B0242B7 (2063745719)\n-03DC12 Compressed Size       000000C3 (195)\n-03DC16 Uncompressed Size     000000C3 (195)\n-\n-03DC1A LOCAL HEADER #21      04034B50 (67324752)\n-03DC1E Extract Zip Spec      14 (20) '2.0'\n-03DC1F Extract OS            00 (0) 'MS-DOS'\n-03DC20 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03DC22 Compression Method    0000 (0) 'Stored'\n-03DC24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03DC28 CRC                   00000000 (0)\n-03DC2C Compressed Size       00000000 (0)\n-03DC30 Uncompressed Size     00000000 (0)\n-03DC34 Filename Length       005F (95)\n-03DC36 Extra Length          0009 (9)\n-03DC38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DC38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03DC97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03DC99   Length              0005 (5)\n-03DC9B   Flags               01 (1) 'Modification'\n-03DC9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03DCA0 PAYLOAD\n-\n-03DEF6 DATA DESCRIPTOR       08074B50 (134695760)\n-03DEFA CRC                   23C5150B (600118539)\n-03DEFE Compressed Size       00000256 (598)\n-03DF02 Uncompressed Size     00000256 (598)\n-\n-03DF06 LOCAL HEADER #22      04034B50 (67324752)\n-03DF0A Extract Zip Spec      14 (20) '2.0'\n-03DF0B Extract OS            00 (0) 'MS-DOS'\n-03DF0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03DF0E Compression Method    0000 (0) 'Stored'\n-03DF10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03DF14 CRC                   00000000 (0)\n-03DF18 Compressed Size       00000000 (0)\n-03DF1C Uncompressed Size     00000000 (0)\n-03DF20 Filename Length       0044 (68)\n-03DF22 Extra Length          0009 (9)\n-03DF24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DF24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03DF68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03DF6A   Length              0005 (5)\n-03DF6C   Flags               01 (1) 'Modification'\n-03DF6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03DF71 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03E014 DATA DESCRIPTOR       08074B50 (134695760)\n-03E018 CRC                   DA7850A4 (3665318052)\n-03E01C Compressed Size       000000A3 (163)\n-03E020 Uncompressed Size     000000A3 (163)\n-\n-03E024 LOCAL HEADER #23      04034B50 (67324752)\n-03E028 Extract Zip Spec      14 (20) '2.0'\n-03E029 Extract OS            00 (0) 'MS-DOS'\n-03E02A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03E02C Compression Method    0000 (0) 'Stored'\n-03E02E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03E032 CRC                   00000000 (0)\n-03E036 Compressed Size       00000000 (0)\n-03E03A Uncompressed Size     00000000 (0)\n-03E03E Filename Length       0041 (65)\n-03E040 Extra Length          0009 (9)\n-03E042 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E042: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E083 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E085   Length              0005 (5)\n-03E087   Flags               01 (1) 'Modification'\n-03E088   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03E08C PAYLOAD\n-\n-03E39F DATA DESCRIPTOR       08074B50 (134695760)\n-03E3A3 CRC                   FDF4851E (4260660510)\n-03E3A7 Compressed Size       00000313 (787)\n-03E3AB Uncompressed Size     00000313 (787)\n-\n-03E3AF LOCAL HEADER #24      04034B50 (67324752)\n-03E3B3 Extract Zip Spec      14 (20) '2.0'\n-03E3B4 Extract OS            00 (0) 'MS-DOS'\n-03E3B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03E3B7 Compression Method    0000 (0) 'Stored'\n-03E3B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03E3BD CRC                   00000000 (0)\n-03E3C1 Compressed Size       00000000 (0)\n-03E3C5 Uncompressed Size     00000000 (0)\n-03E3C9 Filename Length       0054 (84)\n-03E3CB Extra Length          0009 (9)\n-03E3CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E3CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E421 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E423   Length              0005 (5)\n-03E425   Flags               01 (1) 'Modification'\n-03E426   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03E42A PAYLOAD\n-\n-03E829 DATA DESCRIPTOR       08074B50 (134695760)\n-03E82D CRC                   558BF598 (1435235736)\n-03E831 Compressed Size       000003FF (1023)\n-03E835 Uncompressed Size     000003FF (1023)\n-\n-03E839 LOCAL HEADER #25      04034B50 (67324752)\n-03E83D Extract Zip Spec      14 (20) '2.0'\n-03E83E Extract OS            00 (0) 'MS-DOS'\n-03E83F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03E841 Compression Method    0000 (0) 'Stored'\n-03E843 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03E847 CRC                   00000000 (0)\n-03E84B Compressed Size       00000000 (0)\n-03E84F Uncompressed Size     00000000 (0)\n-03E853 Filename Length       004A (74)\n-03E855 Extra Length          0009 (9)\n-03E857 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E857: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E8A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E8A3   Length              0005 (5)\n-03E8A5   Flags               01 (1) 'Modification'\n-03E8A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03E8AA PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+03EA5A DATA DESCRIPTOR       08074B50 (134695760)\n+03EA5E CRC                   7B0242B7 (2063745719)\n+03EA62 Compressed Size       000000C3 (195)\n+03EA66 Uncompressed Size     000000C3 (195)\n+\n+03EA6A LOCAL HEADER #21      04034B50 (67324752)\n+03EA6E Extract Zip Spec      14 (20) '2.0'\n+03EA6F Extract OS            00 (0) 'MS-DOS'\n+03EA70 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03EA72 Compression Method    0000 (0) 'Stored'\n+03EA74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03EA78 CRC                   00000000 (0)\n+03EA7C Compressed Size       00000000 (0)\n+03EA80 Uncompressed Size     00000000 (0)\n+03EA84 Filename Length       005F (95)\n+03EA86 Extra Length          0009 (9)\n+03EA88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EA88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03EAE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03EAE9   Length              0005 (5)\n+03EAEB   Flags               01 (1) 'Modification'\n+03EAEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03EAF0 PAYLOAD\n+\n+03ED48 DATA DESCRIPTOR       08074B50 (134695760)\n+03ED4C CRC                   2D373412 (758592530)\n+03ED50 Compressed Size       00000258 (600)\n+03ED54 Uncompressed Size     00000258 (600)\n+\n+03ED58 LOCAL HEADER #22      04034B50 (67324752)\n+03ED5C Extract Zip Spec      14 (20) '2.0'\n+03ED5D Extract OS            00 (0) 'MS-DOS'\n+03ED5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03ED60 Compression Method    0000 (0) 'Stored'\n+03ED62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03ED66 CRC                   00000000 (0)\n+03ED6A Compressed Size       00000000 (0)\n+03ED6E Uncompressed Size     00000000 (0)\n+03ED72 Filename Length       0044 (68)\n+03ED74 Extra Length          0009 (9)\n+03ED76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3ED76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03EDBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03EDBC   Length              0005 (5)\n+03EDBE   Flags               01 (1) 'Modification'\n+03EDBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03EDC3 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+03EE68 DATA DESCRIPTOR       08074B50 (134695760)\n+03EE6C CRC                   FD9DED40 (4254985536)\n+03EE70 Compressed Size       000000A5 (165)\n+03EE74 Uncompressed Size     000000A5 (165)\n+\n+03EE78 LOCAL HEADER #23      04034B50 (67324752)\n+03EE7C Extract Zip Spec      14 (20) '2.0'\n+03EE7D Extract OS            00 (0) 'MS-DOS'\n+03EE7E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03EE80 Compression Method    0000 (0) 'Stored'\n+03EE82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03EE86 CRC                   00000000 (0)\n+03EE8A Compressed Size       00000000 (0)\n+03EE8E Uncompressed Size     00000000 (0)\n+03EE92 Filename Length       0041 (65)\n+03EE94 Extra Length          0009 (9)\n+03EE96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EE96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03EED7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03EED9   Length              0005 (5)\n+03EEDB   Flags               01 (1) 'Modification'\n+03EEDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03EEE0 PAYLOAD\n+\n+03F1FD DATA DESCRIPTOR       08074B50 (134695760)\n+03F201 CRC                   5208AFC5 (1376300997)\n+03F205 Compressed Size       0000031D (797)\n+03F209 Uncompressed Size     0000031D (797)\n+\n+03F20D LOCAL HEADER #24      04034B50 (67324752)\n+03F211 Extract Zip Spec      14 (20) '2.0'\n+03F212 Extract OS            00 (0) 'MS-DOS'\n+03F213 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03F215 Compression Method    0000 (0) 'Stored'\n+03F217 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03F21B CRC                   00000000 (0)\n+03F21F Compressed Size       00000000 (0)\n+03F223 Uncompressed Size     00000000 (0)\n+03F227 Filename Length       0054 (84)\n+03F229 Extra Length          0009 (9)\n+03F22B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F22B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03F27F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03F281   Length              0005 (5)\n+03F283   Flags               01 (1) 'Modification'\n+03F284   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03F288 PAYLOAD\n+\n+03F693 DATA DESCRIPTOR       08074B50 (134695760)\n+03F697 CRC                   7A6F7ED2 (2054127314)\n+03F69B Compressed Size       0000040B (1035)\n+03F69F Uncompressed Size     0000040B (1035)\n+\n+03F6A3 LOCAL HEADER #25      04034B50 (67324752)\n+03F6A7 Extract Zip Spec      14 (20) '2.0'\n+03F6A8 Extract OS            00 (0) 'MS-DOS'\n+03F6A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03F6AB Compression Method    0000 (0) 'Stored'\n+03F6AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03F6B1 CRC                   00000000 (0)\n+03F6B5 Compressed Size       00000000 (0)\n+03F6B9 Uncompressed Size     00000000 (0)\n+03F6BD Filename Length       004A (74)\n+03F6BF Extra Length          0009 (9)\n+03F6C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F6C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03F70B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03F70D   Length              0005 (5)\n+03F70F   Flags               01 (1) 'Modification'\n+03F710   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03F714 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-03E980 DATA DESCRIPTOR       08074B50 (134695760)\n-03E984 CRC                   4749E288 (1196024456)\n-03E988 Compressed Size       000000D6 (214)\n-03E98C Uncompressed Size     000000D6 (214)\n-\n-03E990 LOCAL HEADER #26      04034B50 (67324752)\n-03E994 Extract Zip Spec      14 (20) '2.0'\n-03E995 Extract OS            00 (0) 'MS-DOS'\n-03E996 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03E998 Compression Method    0000 (0) 'Stored'\n-03E99A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03E99E CRC                   00000000 (0)\n-03E9A2 Compressed Size       00000000 (0)\n-03E9A6 Uncompressed Size     00000000 (0)\n-03E9AA Filename Length       0042 (66)\n-03E9AC Extra Length          0009 (9)\n-03E9AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E9AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03E9F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03E9F2   Length              0005 (5)\n-03E9F4   Flags               01 (1) 'Modification'\n-03E9F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03E9F9 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03EA3E DATA DESCRIPTOR       08074B50 (134695760)\n-03EA42 CRC                   9BF7AC90 (2616700048)\n-03EA46 Compressed Size       00000045 (69)\n-03EA4A Uncompressed Size     00000045 (69)\n-\n-03EA4E LOCAL HEADER #27      04034B50 (67324752)\n-03EA52 Extract Zip Spec      14 (20) '2.0'\n-03EA53 Extract OS            00 (0) 'MS-DOS'\n-03EA54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03EA56 Compression Method    0000 (0) 'Stored'\n-03EA58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03EA5C CRC                   00000000 (0)\n-03EA60 Compressed Size       00000000 (0)\n-03EA64 Uncompressed Size     00000000 (0)\n-03EA68 Filename Length       0044 (68)\n-03EA6A Extra Length          0009 (9)\n-03EA6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EA6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03EAB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03EAB2   Length              0005 (5)\n-03EAB4   Flags               01 (1) 'Modification'\n-03EAB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03EAB9 PAYLOAD\n-\n-03EBEC DATA DESCRIPTOR       08074B50 (134695760)\n-03EBF0 CRC                   51878B1A (1367837466)\n-03EBF4 Compressed Size       00000133 (307)\n-03EBF8 Uncompressed Size     00000133 (307)\n-\n-03EBFC LOCAL HEADER #28      04034B50 (67324752)\n-03EC00 Extract Zip Spec      14 (20) '2.0'\n-03EC01 Extract OS            00 (0) 'MS-DOS'\n-03EC02 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03EC04 Compression Method    0000 (0) 'Stored'\n-03EC06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03EC0A CRC                   00000000 (0)\n-03EC0E Compressed Size       00000000 (0)\n-03EC12 Uncompressed Size     00000000 (0)\n-03EC16 Filename Length       0047 (71)\n-03EC18 Extra Length          0009 (9)\n-03EC1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EC1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03EC61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03EC63   Length              0005 (5)\n-03EC65   Flags               01 (1) 'Modification'\n-03EC66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03EC6A PAYLOAD\n-\n-03F073 DATA DESCRIPTOR       08074B50 (134695760)\n-03F077 CRC                   5534192D (1429477677)\n-03F07B Compressed Size       00000409 (1033)\n-03F07F Uncompressed Size     00000409 (1033)\n-\n-03F083 LOCAL HEADER #29      04034B50 (67324752)\n-03F087 Extract Zip Spec      14 (20) '2.0'\n-03F088 Extract OS            00 (0) 'MS-DOS'\n-03F089 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F08B Compression Method    0000 (0) 'Stored'\n-03F08D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F091 CRC                   00000000 (0)\n-03F095 Compressed Size       00000000 (0)\n-03F099 Uncompressed Size     00000000 (0)\n-03F09D Filename Length       0063 (99)\n-03F09F Extra Length          0009 (9)\n-03F0A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F0A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F104 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F106   Length              0005 (5)\n-03F108   Flags               01 (1) 'Modification'\n-03F109   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F10D PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+03F7EA DATA DESCRIPTOR       08074B50 (134695760)\n+03F7EE CRC                   4749E288 (1196024456)\n+03F7F2 Compressed Size       000000D6 (214)\n+03F7F6 Uncompressed Size     000000D6 (214)\n+\n+03F7FA LOCAL HEADER #26      04034B50 (67324752)\n+03F7FE Extract Zip Spec      14 (20) '2.0'\n+03F7FF Extract OS            00 (0) 'MS-DOS'\n+03F800 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03F802 Compression Method    0000 (0) 'Stored'\n+03F804 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03F808 CRC                   00000000 (0)\n+03F80C Compressed Size       00000000 (0)\n+03F810 Uncompressed Size     00000000 (0)\n+03F814 Filename Length       0042 (66)\n+03F816 Extra Length          0009 (9)\n+03F818 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F818: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03F85A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03F85C   Length              0005 (5)\n+03F85E   Flags               01 (1) 'Modification'\n+03F85F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03F863 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+03F8A8 DATA DESCRIPTOR       08074B50 (134695760)\n+03F8AC CRC                   9BF7AC90 (2616700048)\n+03F8B0 Compressed Size       00000045 (69)\n+03F8B4 Uncompressed Size     00000045 (69)\n+\n+03F8B8 LOCAL HEADER #27      04034B50 (67324752)\n+03F8BC Extract Zip Spec      14 (20) '2.0'\n+03F8BD Extract OS            00 (0) 'MS-DOS'\n+03F8BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03F8C0 Compression Method    0000 (0) 'Stored'\n+03F8C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03F8C6 CRC                   00000000 (0)\n+03F8CA Compressed Size       00000000 (0)\n+03F8CE Uncompressed Size     00000000 (0)\n+03F8D2 Filename Length       0044 (68)\n+03F8D4 Extra Length          0009 (9)\n+03F8D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F8D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03F91A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03F91C   Length              0005 (5)\n+03F91E   Flags               01 (1) 'Modification'\n+03F91F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03F923 PAYLOAD\n+\n+03FA56 DATA DESCRIPTOR       08074B50 (134695760)\n+03FA5A CRC                   51878B1A (1367837466)\n+03FA5E Compressed Size       00000133 (307)\n+03FA62 Uncompressed Size     00000133 (307)\n+\n+03FA66 LOCAL HEADER #28      04034B50 (67324752)\n+03FA6A Extract Zip Spec      14 (20) '2.0'\n+03FA6B Extract OS            00 (0) 'MS-DOS'\n+03FA6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03FA6E Compression Method    0000 (0) 'Stored'\n+03FA70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03FA74 CRC                   00000000 (0)\n+03FA78 Compressed Size       00000000 (0)\n+03FA7C Uncompressed Size     00000000 (0)\n+03FA80 Filename Length       0047 (71)\n+03FA82 Extra Length          0009 (9)\n+03FA84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FA84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03FACB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03FACD   Length              0005 (5)\n+03FACF   Flags               01 (1) 'Modification'\n+03FAD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03FAD4 PAYLOAD\n+\n+03FEE0 DATA DESCRIPTOR       08074B50 (134695760)\n+03FEE4 CRC                   BDA8469E (3181921950)\n+03FEE8 Compressed Size       0000040C (1036)\n+03FEEC Uncompressed Size     0000040C (1036)\n+\n+03FEF0 LOCAL HEADER #29      04034B50 (67324752)\n+03FEF4 Extract Zip Spec      14 (20) '2.0'\n+03FEF5 Extract OS            00 (0) 'MS-DOS'\n+03FEF6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+03FEF8 Compression Method    0000 (0) 'Stored'\n+03FEFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+03FEFE CRC                   00000000 (0)\n+03FF02 Compressed Size       00000000 (0)\n+03FF06 Uncompressed Size     00000000 (0)\n+03FF0A Filename Length       0063 (99)\n+03FF0C Extra Length          0009 (9)\n+03FF0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FF0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+03FF71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+03FF73   Length              0005 (5)\n+03FF75   Flags               01 (1) 'Modification'\n+03FF76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+03FF7A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-03F1C6 DATA DESCRIPTOR       08074B50 (134695760)\n-03F1CA CRC                   433990B3 (1127846067)\n-03F1CE Compressed Size       000000B9 (185)\n-03F1D2 Uncompressed Size     000000B9 (185)\n-\n-03F1D6 LOCAL HEADER #30      04034B50 (67324752)\n-03F1DA Extract Zip Spec      14 (20) '2.0'\n-03F1DB Extract OS            00 (0) 'MS-DOS'\n-03F1DC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F1DE Compression Method    0000 (0) 'Stored'\n-03F1E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F1E4 CRC                   00000000 (0)\n-03F1E8 Compressed Size       00000000 (0)\n-03F1EC Uncompressed Size     00000000 (0)\n-03F1F0 Filename Length       0044 (68)\n-03F1F2 Extra Length          0009 (9)\n-03F1F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F1F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F238 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F23A   Length              0005 (5)\n-03F23C   Flags               01 (1) 'Modification'\n-03F23D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F241 PAYLOAD\n-\n-03F421 DATA DESCRIPTOR       08074B50 (134695760)\n-03F425 CRC                   D59F7213 (3583996435)\n-03F429 Compressed Size       000001E0 (480)\n-03F42D Uncompressed Size     000001E0 (480)\n-\n-03F431 LOCAL HEADER #31      04034B50 (67324752)\n-03F435 Extract Zip Spec      14 (20) '2.0'\n-03F436 Extract OS            00 (0) 'MS-DOS'\n-03F437 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F439 Compression Method    0000 (0) 'Stored'\n-03F43B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F43F CRC                   00000000 (0)\n-03F443 Compressed Size       00000000 (0)\n-03F447 Uncompressed Size     00000000 (0)\n-03F44B Filename Length       003F (63)\n-03F44D Extra Length          0009 (9)\n-03F44F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F44F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F48E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F490   Length              0005 (5)\n-03F492   Flags               01 (1) 'Modification'\n-03F493   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F497 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03F4D4 DATA DESCRIPTOR       08074B50 (134695760)\n-03F4D8 CRC                   FD317E52 (4247879250)\n-03F4DC Compressed Size       0000003D (61)\n-03F4E0 Uncompressed Size     0000003D (61)\n-\n-03F4E4 LOCAL HEADER #32      04034B50 (67324752)\n-03F4E8 Extract Zip Spec      14 (20) '2.0'\n-03F4E9 Extract OS            00 (0) 'MS-DOS'\n-03F4EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F4EC Compression Method    0000 (0) 'Stored'\n-03F4EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F4F2 CRC                   00000000 (0)\n-03F4F6 Compressed Size       00000000 (0)\n-03F4FA Uncompressed Size     00000000 (0)\n-03F4FE Filename Length       0045 (69)\n-03F500 Extra Length          0009 (9)\n-03F502 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F502: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F549   Length              0005 (5)\n-03F54B   Flags               01 (1) 'Modification'\n-03F54C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F550 PAYLOAD\n-\n-03F67A DATA DESCRIPTOR       08074B50 (134695760)\n-03F67E CRC                   C4F26B25 (3304221477)\n-03F682 Compressed Size       0000012A (298)\n-03F686 Uncompressed Size     0000012A (298)\n-\n-03F68A LOCAL HEADER #33      04034B50 (67324752)\n-03F68E Extract Zip Spec      14 (20) '2.0'\n-03F68F Extract OS            00 (0) 'MS-DOS'\n-03F690 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F692 Compression Method    0000 (0) 'Stored'\n-03F694 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F698 CRC                   00000000 (0)\n-03F69C Compressed Size       00000000 (0)\n-03F6A0 Uncompressed Size     00000000 (0)\n-03F6A4 Filename Length       0055 (85)\n-03F6A6 Extra Length          0009 (9)\n-03F6A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F6A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F6FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F6FF   Length              0005 (5)\n-03F701   Flags               01 (1) 'Modification'\n-03F702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F706 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03F752 DATA DESCRIPTOR       08074B50 (134695760)\n-03F756 CRC                   BF790872 (3212380274)\n-03F75A Compressed Size       0000004C (76)\n-03F75E Uncompressed Size     0000004C (76)\n-\n-03F762 LOCAL HEADER #34      04034B50 (67324752)\n-03F766 Extract Zip Spec      14 (20) '2.0'\n-03F767 Extract OS            00 (0) 'MS-DOS'\n-03F768 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F76A Compression Method    0000 (0) 'Stored'\n-03F76C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F770 CRC                   00000000 (0)\n-03F774 Compressed Size       00000000 (0)\n-03F778 Uncompressed Size     00000000 (0)\n-03F77C Filename Length       0059 (89)\n-03F77E Extra Length          0009 (9)\n-03F780 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F780: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F7D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F7DB   Length              0005 (5)\n-03F7DD   Flags               01 (1) 'Modification'\n-03F7DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F7E2 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03F83D DATA DESCRIPTOR       08074B50 (134695760)\n-03F841 CRC                   A63E32BF (2789094079)\n-03F845 Compressed Size       0000005B (91)\n-03F849 Uncompressed Size     0000005B (91)\n-\n-03F84D LOCAL HEADER #35      04034B50 (67324752)\n-03F851 Extract Zip Spec      14 (20) '2.0'\n-03F852 Extract OS            00 (0) 'MS-DOS'\n-03F853 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F855 Compression Method    0000 (0) 'Stored'\n-03F857 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F85B CRC                   00000000 (0)\n-03F85F Compressed Size       00000000 (0)\n-03F863 Uncompressed Size     00000000 (0)\n-03F867 Filename Length       003C (60)\n-03F869 Extra Length          0009 (9)\n-03F86B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F86B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F8A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F8A9   Length              0005 (5)\n-03F8AB   Flags               01 (1) 'Modification'\n-03F8AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F8B0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+040034 DATA DESCRIPTOR       08074B50 (134695760)\n+040038 CRC                   87B990A8 (2277085352)\n+04003C Compressed Size       000000BA (186)\n+040040 Uncompressed Size     000000BA (186)\n+\n+040044 LOCAL HEADER #30      04034B50 (67324752)\n+040048 Extract Zip Spec      14 (20) '2.0'\n+040049 Extract OS            00 (0) 'MS-DOS'\n+04004A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04004C Compression Method    0000 (0) 'Stored'\n+04004E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040052 CRC                   00000000 (0)\n+040056 Compressed Size       00000000 (0)\n+04005A Uncompressed Size     00000000 (0)\n+04005E Filename Length       0044 (68)\n+040060 Extra Length          0009 (9)\n+040062 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40062: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0400A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0400A8   Length              0005 (5)\n+0400AA   Flags               01 (1) 'Modification'\n+0400AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0400AF PAYLOAD\n+\n+040290 DATA DESCRIPTOR       08074B50 (134695760)\n+040294 CRC                   38FE5551 (956192081)\n+040298 Compressed Size       000001E1 (481)\n+04029C Uncompressed Size     000001E1 (481)\n+\n+0402A0 LOCAL HEADER #31      04034B50 (67324752)\n+0402A4 Extract Zip Spec      14 (20) '2.0'\n+0402A5 Extract OS            00 (0) 'MS-DOS'\n+0402A6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0402A8 Compression Method    0000 (0) 'Stored'\n+0402AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0402AE CRC                   00000000 (0)\n+0402B2 Compressed Size       00000000 (0)\n+0402B6 Uncompressed Size     00000000 (0)\n+0402BA Filename Length       003F (63)\n+0402BC Extra Length          0009 (9)\n+0402BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x402BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0402FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0402FF   Length              0005 (5)\n+040301   Flags               01 (1) 'Modification'\n+040302   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040306 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+040343 DATA DESCRIPTOR       08074B50 (134695760)\n+040347 CRC                   FD317E52 (4247879250)\n+04034B Compressed Size       0000003D (61)\n+04034F Uncompressed Size     0000003D (61)\n+\n+040353 LOCAL HEADER #32      04034B50 (67324752)\n+040357 Extract Zip Spec      14 (20) '2.0'\n+040358 Extract OS            00 (0) 'MS-DOS'\n+040359 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04035B Compression Method    0000 (0) 'Stored'\n+04035D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040361 CRC                   00000000 (0)\n+040365 Compressed Size       00000000 (0)\n+040369 Uncompressed Size     00000000 (0)\n+04036D Filename Length       0045 (69)\n+04036F Extra Length          0009 (9)\n+040371 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40371: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0403B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0403B8   Length              0005 (5)\n+0403BA   Flags               01 (1) 'Modification'\n+0403BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0403BF PAYLOAD\n+\n+0404E9 DATA DESCRIPTOR       08074B50 (134695760)\n+0404ED CRC                   C4F26B25 (3304221477)\n+0404F1 Compressed Size       0000012A (298)\n+0404F5 Uncompressed Size     0000012A (298)\n+\n+0404F9 LOCAL HEADER #33      04034B50 (67324752)\n+0404FD Extract Zip Spec      14 (20) '2.0'\n+0404FE Extract OS            00 (0) 'MS-DOS'\n+0404FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040501 Compression Method    0000 (0) 'Stored'\n+040503 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040507 CRC                   00000000 (0)\n+04050B Compressed Size       00000000 (0)\n+04050F Uncompressed Size     00000000 (0)\n+040513 Filename Length       0055 (85)\n+040515 Extra Length          0009 (9)\n+040517 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40517: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04056C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04056E   Length              0005 (5)\n+040570   Flags               01 (1) 'Modification'\n+040571   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040575 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0405C1 DATA DESCRIPTOR       08074B50 (134695760)\n+0405C5 CRC                   BF790872 (3212380274)\n+0405C9 Compressed Size       0000004C (76)\n+0405CD Uncompressed Size     0000004C (76)\n+\n+0405D1 LOCAL HEADER #34      04034B50 (67324752)\n+0405D5 Extract Zip Spec      14 (20) '2.0'\n+0405D6 Extract OS            00 (0) 'MS-DOS'\n+0405D7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0405D9 Compression Method    0000 (0) 'Stored'\n+0405DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0405DF CRC                   00000000 (0)\n+0405E3 Compressed Size       00000000 (0)\n+0405E7 Uncompressed Size     00000000 (0)\n+0405EB Filename Length       0059 (89)\n+0405ED Extra Length          0009 (9)\n+0405EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x405EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040648 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04064A   Length              0005 (5)\n+04064C   Flags               01 (1) 'Modification'\n+04064D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040651 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0406AC DATA DESCRIPTOR       08074B50 (134695760)\n+0406B0 CRC                   A63E32BF (2789094079)\n+0406B4 Compressed Size       0000005B (91)\n+0406B8 Uncompressed Size     0000005B (91)\n+\n+0406BC LOCAL HEADER #35      04034B50 (67324752)\n+0406C0 Extract Zip Spec      14 (20) '2.0'\n+0406C1 Extract OS            00 (0) 'MS-DOS'\n+0406C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0406C4 Compression Method    0000 (0) 'Stored'\n+0406C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0406CA CRC                   00000000 (0)\n+0406CE Compressed Size       00000000 (0)\n+0406D2 Uncompressed Size     00000000 (0)\n+0406D6 Filename Length       003C (60)\n+0406D8 Extra Length          0009 (9)\n+0406DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x406DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040716 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040718   Length              0005 (5)\n+04071A   Flags               01 (1) 'Modification'\n+04071B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04071F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-03F95B DATA DESCRIPTOR       08074B50 (134695760)\n-03F95F CRC                   1CB10FC5 (481365957)\n-03F963 Compressed Size       000000AB (171)\n-03F967 Uncompressed Size     000000AB (171)\n-\n-03F96B LOCAL HEADER #36      04034B50 (67324752)\n-03F96F Extract Zip Spec      14 (20) '2.0'\n-03F970 Extract OS            00 (0) 'MS-DOS'\n-03F971 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03F973 Compression Method    0000 (0) 'Stored'\n-03F975 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03F979 CRC                   00000000 (0)\n-03F97D Compressed Size       00000000 (0)\n-03F981 Uncompressed Size     00000000 (0)\n-03F985 Filename Length       003E (62)\n-03F987 Extra Length          0009 (9)\n-03F989 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F989: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03F9C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03F9C9   Length              0005 (5)\n-03F9CB   Flags               01 (1) 'Modification'\n-03F9CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03F9D0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03FA3D DATA DESCRIPTOR       08074B50 (134695760)\n-03FA41 CRC                   6AE7C3EE (1793573870)\n-03FA45 Compressed Size       0000006D (109)\n-03FA49 Uncompressed Size     0000006D (109)\n-\n-03FA4D LOCAL HEADER #37      04034B50 (67324752)\n-03FA51 Extract Zip Spec      14 (20) '2.0'\n-03FA52 Extract OS            00 (0) 'MS-DOS'\n-03FA53 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FA55 Compression Method    0000 (0) 'Stored'\n-03FA57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FA5B CRC                   00000000 (0)\n-03FA5F Compressed Size       00000000 (0)\n-03FA63 Uncompressed Size     00000000 (0)\n-03FA67 Filename Length       003C (60)\n-03FA69 Extra Length          0009 (9)\n-03FA6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FA6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FAA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FAA9   Length              0005 (5)\n-03FAAB   Flags               01 (1) 'Modification'\n-03FAAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FAB0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03FB52 DATA DESCRIPTOR       08074B50 (134695760)\n-03FB56 CRC                   FF8F0A93 (4287564435)\n-03FB5A Compressed Size       000000A2 (162)\n-03FB5E Uncompressed Size     000000A2 (162)\n-\n-03FB62 LOCAL HEADER #38      04034B50 (67324752)\n-03FB66 Extract Zip Spec      14 (20) '2.0'\n-03FB67 Extract OS            00 (0) 'MS-DOS'\n-03FB68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FB6A Compression Method    0000 (0) 'Stored'\n-03FB6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FB70 CRC                   00000000 (0)\n-03FB74 Compressed Size       00000000 (0)\n-03FB78 Uncompressed Size     00000000 (0)\n-03FB7C Filename Length       0046 (70)\n-03FB7E Extra Length          0009 (9)\n-03FB80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FB80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FBC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FBC8   Length              0005 (5)\n-03FBCA   Flags               01 (1) 'Modification'\n-03FBCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FBCF PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03FC0C DATA DESCRIPTOR       08074B50 (134695760)\n-03FC10 CRC                   ACE74F1F (2900840223)\n-03FC14 Compressed Size       0000003D (61)\n-03FC18 Uncompressed Size     0000003D (61)\n-\n-03FC1C LOCAL HEADER #39      04034B50 (67324752)\n-03FC20 Extract Zip Spec      14 (20) '2.0'\n-03FC21 Extract OS            00 (0) 'MS-DOS'\n-03FC22 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FC24 Compression Method    0000 (0) 'Stored'\n-03FC26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FC2A CRC                   00000000 (0)\n-03FC2E Compressed Size       00000000 (0)\n-03FC32 Uncompressed Size     00000000 (0)\n-03FC36 Filename Length       0049 (73)\n-03FC38 Extra Length          0009 (9)\n-03FC3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FC3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FC83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FC85   Length              0005 (5)\n-03FC87   Flags               01 (1) 'Modification'\n-03FC88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FC8C PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03FCE8 DATA DESCRIPTOR       08074B50 (134695760)\n-03FCEC CRC                   8EA6DB6C (2393299820)\n-03FCF0 Compressed Size       0000005C (92)\n-03FCF4 Uncompressed Size     0000005C (92)\n-\n-03FCF8 LOCAL HEADER #40      04034B50 (67324752)\n-03FCFC Extract Zip Spec      14 (20) '2.0'\n-03FCFD Extract OS            00 (0) 'MS-DOS'\n-03FCFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FD00 Compression Method    0000 (0) 'Stored'\n-03FD02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FD06 CRC                   00000000 (0)\n-03FD0A Compressed Size       00000000 (0)\n-03FD0E Uncompressed Size     00000000 (0)\n-03FD12 Filename Length       0044 (68)\n-03FD14 Extra Length          0009 (9)\n-03FD16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FD16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FD5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FD5C   Length              0005 (5)\n-03FD5E   Flags               01 (1) 'Modification'\n-03FD5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FD63 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0407CA DATA DESCRIPTOR       08074B50 (134695760)\n+0407CE CRC                   1CB10FC5 (481365957)\n+0407D2 Compressed Size       000000AB (171)\n+0407D6 Uncompressed Size     000000AB (171)\n+\n+0407DA LOCAL HEADER #36      04034B50 (67324752)\n+0407DE Extract Zip Spec      14 (20) '2.0'\n+0407DF Extract OS            00 (0) 'MS-DOS'\n+0407E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0407E2 Compression Method    0000 (0) 'Stored'\n+0407E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0407E8 CRC                   00000000 (0)\n+0407EC Compressed Size       00000000 (0)\n+0407F0 Uncompressed Size     00000000 (0)\n+0407F4 Filename Length       003E (62)\n+0407F6 Extra Length          0009 (9)\n+0407F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x407F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040836 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040838   Length              0005 (5)\n+04083A   Flags               01 (1) 'Modification'\n+04083B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04083F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0408AE DATA DESCRIPTOR       08074B50 (134695760)\n+0408B2 CRC                   2318E723 (588834595)\n+0408B6 Compressed Size       0000006F (111)\n+0408BA Uncompressed Size     0000006F (111)\n+\n+0408BE LOCAL HEADER #37      04034B50 (67324752)\n+0408C2 Extract Zip Spec      14 (20) '2.0'\n+0408C3 Extract OS            00 (0) 'MS-DOS'\n+0408C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0408C6 Compression Method    0000 (0) 'Stored'\n+0408C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0408CC CRC                   00000000 (0)\n+0408D0 Compressed Size       00000000 (0)\n+0408D4 Uncompressed Size     00000000 (0)\n+0408D8 Filename Length       003C (60)\n+0408DA Extra Length          0009 (9)\n+0408DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x408DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040918 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04091A   Length              0005 (5)\n+04091C   Flags               01 (1) 'Modification'\n+04091D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040921 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0409C4 DATA DESCRIPTOR       08074B50 (134695760)\n+0409C8 CRC                   D55F5F8C (3579797388)\n+0409CC Compressed Size       000000A3 (163)\n+0409D0 Uncompressed Size     000000A3 (163)\n+\n+0409D4 LOCAL HEADER #38      04034B50 (67324752)\n+0409D8 Extract Zip Spec      14 (20) '2.0'\n+0409D9 Extract OS            00 (0) 'MS-DOS'\n+0409DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0409DC Compression Method    0000 (0) 'Stored'\n+0409DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0409E2 CRC                   00000000 (0)\n+0409E6 Compressed Size       00000000 (0)\n+0409EA Uncompressed Size     00000000 (0)\n+0409EE Filename Length       0046 (70)\n+0409F0 Extra Length          0009 (9)\n+0409F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x409F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040A38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040A3A   Length              0005 (5)\n+040A3C   Flags               01 (1) 'Modification'\n+040A3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040A41 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+040A7E DATA DESCRIPTOR       08074B50 (134695760)\n+040A82 CRC                   ACE74F1F (2900840223)\n+040A86 Compressed Size       0000003D (61)\n+040A8A Uncompressed Size     0000003D (61)\n+\n+040A8E LOCAL HEADER #39      04034B50 (67324752)\n+040A92 Extract Zip Spec      14 (20) '2.0'\n+040A93 Extract OS            00 (0) 'MS-DOS'\n+040A94 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040A96 Compression Method    0000 (0) 'Stored'\n+040A98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040A9C CRC                   00000000 (0)\n+040AA0 Compressed Size       00000000 (0)\n+040AA4 Uncompressed Size     00000000 (0)\n+040AA8 Filename Length       0049 (73)\n+040AAA Extra Length          0009 (9)\n+040AAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40AAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040AF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040AF7   Length              0005 (5)\n+040AF9   Flags               01 (1) 'Modification'\n+040AFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040AFE PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+040B5C DATA DESCRIPTOR       08074B50 (134695760)\n+040B60 CRC                   9A25D8A3 (2586171555)\n+040B64 Compressed Size       0000005E (94)\n+040B68 Uncompressed Size     0000005E (94)\n+\n+040B6C LOCAL HEADER #40      04034B50 (67324752)\n+040B70 Extract Zip Spec      14 (20) '2.0'\n+040B71 Extract OS            00 (0) 'MS-DOS'\n+040B72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040B74 Compression Method    0000 (0) 'Stored'\n+040B76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040B7A CRC                   00000000 (0)\n+040B7E Compressed Size       00000000 (0)\n+040B82 Uncompressed Size     00000000 (0)\n+040B86 Filename Length       0044 (68)\n+040B88 Extra Length          0009 (9)\n+040B8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40B8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040BD0   Length              0005 (5)\n+040BD2   Flags               01 (1) 'Modification'\n+040BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040BD7 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXX\n \n-03FDF9 DATA DESCRIPTOR       08074B50 (134695760)\n-03FDFD CRC                   8141260E (2168530446)\n-03FE01 Compressed Size       00000096 (150)\n-03FE05 Uncompressed Size     00000096 (150)\n-\n-03FE09 LOCAL HEADER #41      04034B50 (67324752)\n-03FE0D Extract Zip Spec      14 (20) '2.0'\n-03FE0E Extract OS            00 (0) 'MS-DOS'\n-03FE0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FE11 Compression Method    0000 (0) 'Stored'\n-03FE13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FE17 CRC                   00000000 (0)\n-03FE1B Compressed Size       00000000 (0)\n-03FE1F Uncompressed Size     00000000 (0)\n-03FE23 Filename Length       0049 (73)\n-03FE25 Extra Length          0009 (9)\n-03FE27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FE27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FE70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FE72   Length              0005 (5)\n-03FE74   Flags               01 (1) 'Modification'\n-03FE75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FE79 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-03FED1 DATA DESCRIPTOR       08074B50 (134695760)\n-03FED5 CRC                   C4255C66 (3290782822)\n-03FED9 Compressed Size       00000058 (88)\n-03FEDD Uncompressed Size     00000058 (88)\n-\n-03FEE1 LOCAL HEADER #42      04034B50 (67324752)\n-03FEE5 Extract Zip Spec      14 (20) '2.0'\n-03FEE6 Extract OS            00 (0) 'MS-DOS'\n-03FEE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-03FEE9 Compression Method    0000 (0) 'Stored'\n-03FEEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-03FEEF CRC                   00000000 (0)\n-03FEF3 Compressed Size       00000000 (0)\n-03FEF7 Uncompressed Size     00000000 (0)\n-03FEFB Filename Length       0050 (80)\n-03FEFD Extra Length          0009 (9)\n-03FEFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FEFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-03FF4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-03FF51   Length              0005 (5)\n-03FF53   Flags               01 (1) 'Modification'\n-03FF54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-03FF58 PAYLOAD\n-\n-04006C DATA DESCRIPTOR       08074B50 (134695760)\n-040070 CRC                   9BBB9DE9 (2612764137)\n-040074 Compressed Size       00000114 (276)\n-040078 Uncompressed Size     00000114 (276)\n-\n-04007C LOCAL HEADER #43      04034B50 (67324752)\n-040080 Extract Zip Spec      14 (20) '2.0'\n-040081 Extract OS            00 (0) 'MS-DOS'\n-040082 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040084 Compression Method    0000 (0) 'Stored'\n-040086 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04008A CRC                   00000000 (0)\n-04008E Compressed Size       00000000 (0)\n-040092 Uncompressed Size     00000000 (0)\n-040096 Filename Length       004E (78)\n-040098 Extra Length          0009 (9)\n-04009A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4009A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0400E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0400EA   Length              0005 (5)\n-0400EC   Flags               01 (1) 'Modification'\n-0400ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0400F1 PAYLOAD\n-\n-0402B6 DATA DESCRIPTOR       08074B50 (134695760)\n-0402BA CRC                   CB89DDC8 (3414810056)\n-0402BE Compressed Size       000001C5 (453)\n-0402C2 Uncompressed Size     000001C5 (453)\n-\n-0402C6 LOCAL HEADER #44      04034B50 (67324752)\n-0402CA Extract Zip Spec      14 (20) '2.0'\n-0402CB Extract OS            00 (0) 'MS-DOS'\n-0402CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0402CE Compression Method    0000 (0) 'Stored'\n-0402D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0402D4 CRC                   00000000 (0)\n-0402D8 Compressed Size       00000000 (0)\n-0402DC Uncompressed Size     00000000 (0)\n-0402E0 Filename Length       0058 (88)\n-0402E2 Extra Length          0009 (9)\n-0402E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x402E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04033C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04033E   Length              0005 (5)\n-040340   Flags               01 (1) 'Modification'\n-040341   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-040345 PAYLOAD\n-\n-040611 DATA DESCRIPTOR       08074B50 (134695760)\n-040615 CRC                   496A27A1 (1231693729)\n-040619 Compressed Size       000002CC (716)\n-04061D Uncompressed Size     000002CC (716)\n-\n-040621 LOCAL HEADER #45      04034B50 (67324752)\n-040625 Extract Zip Spec      14 (20) '2.0'\n-040626 Extract OS            00 (0) 'MS-DOS'\n-040627 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040629 Compression Method    0000 (0) 'Stored'\n-04062B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04062F CRC                   00000000 (0)\n-040633 Compressed Size       00000000 (0)\n-040637 Uncompressed Size     00000000 (0)\n-04063B Filename Length       0052 (82)\n-04063D Extra Length          0009 (9)\n-04063F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4063F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-040691 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-040693   Length              0005 (5)\n-040695   Flags               01 (1) 'Modification'\n-040696   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04069A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-040751 DATA DESCRIPTOR       08074B50 (134695760)\n-040755 CRC                   5B1D6790 (1528653712)\n-040759 Compressed Size       000000B7 (183)\n-04075D Uncompressed Size     000000B7 (183)\n-\n-040761 LOCAL HEADER #46      04034B50 (67324752)\n-040765 Extract Zip Spec      14 (20) '2.0'\n-040766 Extract OS            00 (0) 'MS-DOS'\n-040767 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040769 Compression Method    0000 (0) 'Stored'\n-04076B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04076F CRC                   00000000 (0)\n-040773 Compressed Size       00000000 (0)\n-040777 Uncompressed Size     00000000 (0)\n-04077B Filename Length       003F (63)\n-04077D Extra Length          0009 (9)\n-04077F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4077F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0407BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0407C0   Length              0005 (5)\n-0407C2   Flags               01 (1) 'Modification'\n-0407C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0407C7 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-040800 DATA DESCRIPTOR       08074B50 (134695760)\n-040804 CRC                   8738E283 (2268652163)\n-040808 Compressed Size       00000039 (57)\n-04080C Uncompressed Size     00000039 (57)\n-\n-040810 LOCAL HEADER #47      04034B50 (67324752)\n-040814 Extract Zip Spec      14 (20) '2.0'\n-040815 Extract OS            00 (0) 'MS-DOS'\n-040816 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040818 Compression Method    0000 (0) 'Stored'\n-04081A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04081E CRC                   00000000 (0)\n-040822 Compressed Size       00000000 (0)\n-040826 Uncompressed Size     00000000 (0)\n-04082A Filename Length       0040 (64)\n-04082C Extra Length          0009 (9)\n-04082E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4082E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04086E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-040870   Length              0005 (5)\n-040872   Flags               01 (1) 'Modification'\n-040873   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-040877 PAYLOAD\n-\n-0409FD DATA DESCRIPTOR       08074B50 (134695760)\n-040A01 CRC                   1529E756 (355067734)\n-040A05 Compressed Size       00000186 (390)\n-040A09 Uncompressed Size     00000186 (390)\n-\n-040A0D LOCAL HEADER #48      04034B50 (67324752)\n-040A11 Extract Zip Spec      14 (20) '2.0'\n-040A12 Extract OS            00 (0) 'MS-DOS'\n-040A13 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040A15 Compression Method    0000 (0) 'Stored'\n-040A17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-040A1B CRC                   00000000 (0)\n-040A1F Compressed Size       00000000 (0)\n-040A23 Uncompressed Size     00000000 (0)\n-040A27 Filename Length       0041 (65)\n-040A29 Extra Length          0009 (9)\n-040A2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40A2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-040A6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-040A6E   Length              0005 (5)\n-040A70   Flags               01 (1) 'Modification'\n-040A71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-040A75 PAYLOAD\n-\n-040D3F DATA DESCRIPTOR       08074B50 (134695760)\n-040D43 CRC                   02A8F678 (44627576)\n-040D47 Compressed Size       000002CA (714)\n-040D4B Uncompressed Size     000002CA (714)\n-\n-040D4F LOCAL HEADER #49      04034B50 (67324752)\n-040D53 Extract Zip Spec      14 (20) '2.0'\n-040D54 Extract OS            00 (0) 'MS-DOS'\n-040D55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040D57 Compression Method    0000 (0) 'Stored'\n-040D59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-040D5D CRC                   00000000 (0)\n-040D61 Compressed Size       00000000 (0)\n-040D65 Uncompressed Size     00000000 (0)\n-040D69 Filename Length       0052 (82)\n-040D6B Extra Length          0009 (9)\n-040D6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40D6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-040DBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-040DC1   Length              0005 (5)\n-040DC3   Flags               01 (1) 'Modification'\n-040DC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-040DC8 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-040E11 DATA DESCRIPTOR       08074B50 (134695760)\n-040E15 CRC                   290EDBFF (688839679)\n-040E19 Compressed Size       00000049 (73)\n-040E1D Uncompressed Size     00000049 (73)\n-\n-040E21 LOCAL HEADER #50      04034B50 (67324752)\n-040E25 Extract Zip Spec      14 (20) '2.0'\n-040E26 Extract OS            00 (0) 'MS-DOS'\n-040E27 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-040E29 Compression Method    0000 (0) 'Stored'\n-040E2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-040E2F CRC                   00000000 (0)\n-040E33 Compressed Size       00000000 (0)\n-040E37 Uncompressed Size     00000000 (0)\n-040E3B Filename Length       0049 (73)\n-040E3D Extra Length          0009 (9)\n-040E3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40E3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-040E88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-040E8A   Length              0005 (5)\n-040E8C   Flags               01 (1) 'Modification'\n-040E8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-040E91 PAYLOAD\n-\n-0410E2 DATA DESCRIPTOR       08074B50 (134695760)\n-0410E6 CRC                   06C4AA00 (113551872)\n-0410EA Compressed Size       00000251 (593)\n-0410EE Uncompressed Size     00000251 (593)\n-\n-0410F2 LOCAL HEADER #51      04034B50 (67324752)\n-0410F6 Extract Zip Spec      14 (20) '2.0'\n-0410F7 Extract OS            00 (0) 'MS-DOS'\n-0410F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0410FA Compression Method    0000 (0) 'Stored'\n-0410FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041100 CRC                   00000000 (0)\n-041104 Compressed Size       00000000 (0)\n-041108 Uncompressed Size     00000000 (0)\n-04110C Filename Length       0050 (80)\n-04110E Extra Length          0009 (9)\n-041110 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41110: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041160 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041162   Length              0005 (5)\n-041164   Flags               01 (1) 'Modification'\n-041165   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041169 PAYLOAD\n-\n-0413B7 DATA DESCRIPTOR       08074B50 (134695760)\n-0413BB CRC                   20C66B35 (549874485)\n-0413BF Compressed Size       0000024E (590)\n-0413C3 Uncompressed Size     0000024E (590)\n-\n-0413C7 LOCAL HEADER #52      04034B50 (67324752)\n-0413CB Extract Zip Spec      14 (20) '2.0'\n-0413CC Extract OS            00 (0) 'MS-DOS'\n-0413CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0413CF Compression Method    0000 (0) 'Stored'\n-0413D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0413D5 CRC                   00000000 (0)\n-0413D9 Compressed Size       00000000 (0)\n-0413DD Uncompressed Size     00000000 (0)\n-0413E1 Filename Length       0052 (82)\n-0413E3 Extra Length          0009 (9)\n-0413E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x413E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041437 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041439   Length              0005 (5)\n-04143B   Flags               01 (1) 'Modification'\n-04143C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041440 PAYLOAD\n-\n-0416BD DATA DESCRIPTOR       08074B50 (134695760)\n-0416C1 CRC                   F65F4647 (4133439047)\n-0416C5 Compressed Size       0000027D (637)\n-0416C9 Uncompressed Size     0000027D (637)\n-\n-0416CD LOCAL HEADER #53      04034B50 (67324752)\n-0416D1 Extract Zip Spec      14 (20) '2.0'\n-0416D2 Extract OS            00 (0) 'MS-DOS'\n-0416D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0416D5 Compression Method    0000 (0) 'Stored'\n-0416D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0416DB CRC                   00000000 (0)\n-0416DF Compressed Size       00000000 (0)\n-0416E3 Uncompressed Size     00000000 (0)\n-0416E7 Filename Length       005B (91)\n-0416E9 Extra Length          0009 (9)\n-0416EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x416EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041746 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041748   Length              0005 (5)\n-04174A   Flags               01 (1) 'Modification'\n-04174B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04174F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-041800 DATA DESCRIPTOR       08074B50 (134695760)\n-041804 CRC                   A52CE8E2 (2771183842)\n-041808 Compressed Size       000000B1 (177)\n-04180C Uncompressed Size     000000B1 (177)\n-\n-041810 LOCAL HEADER #54      04034B50 (67324752)\n-041814 Extract Zip Spec      14 (20) '2.0'\n-041815 Extract OS            00 (0) 'MS-DOS'\n-041816 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-041818 Compression Method    0000 (0) 'Stored'\n-04181A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04181E CRC                   00000000 (0)\n-041822 Compressed Size       00000000 (0)\n-041826 Uncompressed Size     00000000 (0)\n-04182A Filename Length       005B (91)\n-04182C Extra Length          0009 (9)\n-04182E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4182E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041889 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04188B   Length              0005 (5)\n-04188D   Flags               01 (1) 'Modification'\n-04188E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041892 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-0418E6 DATA DESCRIPTOR       08074B50 (134695760)\n-0418EA CRC                   A49FCF77 (2761936759)\n-0418EE Compressed Size       00000054 (84)\n-0418F2 Uncompressed Size     00000054 (84)\n-\n-0418F6 LOCAL HEADER #55      04034B50 (67324752)\n-0418FA Extract Zip Spec      14 (20) '2.0'\n-0418FB Extract OS            00 (0) 'MS-DOS'\n-0418FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0418FE Compression Method    0000 (0) 'Stored'\n-041900 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041904 CRC                   00000000 (0)\n-041908 Compressed Size       00000000 (0)\n-04190C Uncompressed Size     00000000 (0)\n-041910 Filename Length       005D (93)\n-041912 Extra Length          0009 (9)\n-041914 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41914: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041971 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041973   Length              0005 (5)\n-041975   Flags               01 (1) 'Modification'\n-041976   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04197A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-0419CE DATA DESCRIPTOR       08074B50 (134695760)\n-0419D2 CRC                   F515114D (4111798605)\n-0419D6 Compressed Size       00000054 (84)\n-0419DA Uncompressed Size     00000054 (84)\n-\n-0419DE LOCAL HEADER #56      04034B50 (67324752)\n-0419E2 Extract Zip Spec      14 (20) '2.0'\n-0419E3 Extract OS            00 (0) 'MS-DOS'\n-0419E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0419E6 Compression Method    0000 (0) 'Stored'\n-0419E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0419EC CRC                   00000000 (0)\n-0419F0 Compressed Size       00000000 (0)\n-0419F4 Uncompressed Size     00000000 (0)\n-0419F8 Filename Length       0059 (89)\n-0419FA Extra Length          0009 (9)\n-0419FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x419FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041A55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041A57   Length              0005 (5)\n-041A59   Flags               01 (1) 'Modification'\n-041A5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041A5E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-041AAC DATA DESCRIPTOR       08074B50 (134695760)\n-041AB0 CRC                   285254BA (676484282)\n-041AB4 Compressed Size       0000004E (78)\n-041AB8 Uncompressed Size     0000004E (78)\n-\n-041ABC LOCAL HEADER #57      04034B50 (67324752)\n-041AC0 Extract Zip Spec      14 (20) '2.0'\n-041AC1 Extract OS            00 (0) 'MS-DOS'\n-041AC2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-041AC4 Compression Method    0000 (0) 'Stored'\n-041AC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041ACA CRC                   00000000 (0)\n-041ACE Compressed Size       00000000 (0)\n-041AD2 Uncompressed Size     00000000 (0)\n-041AD6 Filename Length       0056 (86)\n-041AD8 Extra Length          0009 (9)\n-041ADA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41ADA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041B32   Length              0005 (5)\n-041B34   Flags               01 (1) 'Modification'\n-041B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041B39 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-041B83 DATA DESCRIPTOR       08074B50 (134695760)\n-041B87 CRC                   9DAB4985 (2645248389)\n-041B8B Compressed Size       0000004A (74)\n-041B8F Uncompressed Size     0000004A (74)\n-\n-041B93 LOCAL HEADER #58      04034B50 (67324752)\n-041B97 Extract Zip Spec      14 (20) '2.0'\n-041B98 Extract OS            00 (0) 'MS-DOS'\n-041B99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-041B9B Compression Method    0000 (0) 'Stored'\n-041B9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041BA1 CRC                   00000000 (0)\n-041BA5 Compressed Size       00000000 (0)\n-041BA9 Uncompressed Size     00000000 (0)\n-041BAD Filename Length       0038 (56)\n-041BAF Extra Length          0009 (9)\n-041BB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41BB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041BE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041BEB   Length              0005 (5)\n-041BED   Flags               01 (1) 'Modification'\n-041BEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041BF2 PAYLOAD\n-\n-041D23 DATA DESCRIPTOR       08074B50 (134695760)\n-041D27 CRC                   83B04446 (2209367110)\n-041D2B Compressed Size       00000131 (305)\n-041D2F Uncompressed Size     00000131 (305)\n-\n-041D33 LOCAL HEADER #59      04034B50 (67324752)\n-041D37 Extract Zip Spec      14 (20) '2.0'\n-041D38 Extract OS            00 (0) 'MS-DOS'\n-041D39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-041D3B Compression Method    0000 (0) 'Stored'\n-041D3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041D41 CRC                   00000000 (0)\n-041D45 Compressed Size       00000000 (0)\n-041D49 Uncompressed Size     00000000 (0)\n-041D4D Filename Length       003C (60)\n-041D4F Extra Length          0009 (9)\n-041D51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41D51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041D8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041D8F   Length              0005 (5)\n-041D91   Flags               01 (1) 'Modification'\n-041D92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041D96 PAYLOAD\n-\n-041F3A DATA DESCRIPTOR       08074B50 (134695760)\n-041F3E CRC                   B02A8DBF (2955578815)\n-041F42 Compressed Size       000001A4 (420)\n-041F46 Uncompressed Size     000001A4 (420)\n-\n-041F4A LOCAL HEADER #60      04034B50 (67324752)\n-041F4E Extract Zip Spec      14 (20) '2.0'\n-041F4F Extract OS            00 (0) 'MS-DOS'\n-041F50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-041F52 Compression Method    0000 (0) 'Stored'\n-041F54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-041F58 CRC                   00000000 (0)\n-041F5C Compressed Size       00000000 (0)\n-041F60 Uncompressed Size     00000000 (0)\n-041F64 Filename Length       003D (61)\n-041F66 Extra Length          0009 (9)\n-041F68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41F68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-041FA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-041FA7   Length              0005 (5)\n-041FA9   Flags               01 (1) 'Modification'\n-041FAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-041FAE PAYLOAD\n-\n-0420FB DATA DESCRIPTOR       08074B50 (134695760)\n-0420FF CRC                   605C157F (1616647551)\n-042103 Compressed Size       0000014D (333)\n-042107 Uncompressed Size     0000014D (333)\n-\n-04210B LOCAL HEADER #61      04034B50 (67324752)\n-04210F Extract Zip Spec      14 (20) '2.0'\n-042110 Extract OS            00 (0) 'MS-DOS'\n-042111 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-042113 Compression Method    0000 (0) 'Stored'\n-042115 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-042119 CRC                   00000000 (0)\n-04211D Compressed Size       00000000 (0)\n-042121 Uncompressed Size     00000000 (0)\n-042125 Filename Length       0046 (70)\n-042127 Extra Length          0009 (9)\n-042129 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42129: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04216F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042171   Length              0005 (5)\n-042173   Flags               01 (1) 'Modification'\n-042174   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-042178 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-0421B3 DATA DESCRIPTOR       08074B50 (134695760)\n-0421B7 CRC                   91BA560C (2444908044)\n-0421BB Compressed Size       0000003B (59)\n-0421BF Uncompressed Size     0000003B (59)\n-\n-0421C3 LOCAL HEADER #62      04034B50 (67324752)\n-0421C7 Extract Zip Spec      14 (20) '2.0'\n-0421C8 Extract OS            00 (0) 'MS-DOS'\n-0421C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0421CB Compression Method    0000 (0) 'Stored'\n-0421CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0421D1 CRC                   00000000 (0)\n-0421D5 Compressed Size       00000000 (0)\n-0421D9 Uncompressed Size     00000000 (0)\n-0421DD Filename Length       0044 (68)\n-0421DF Extra Length          0009 (9)\n-0421E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x421E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-042225 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042227   Length              0005 (5)\n-042229   Flags               01 (1) 'Modification'\n-04222A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04222E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-042277 DATA DESCRIPTOR       08074B50 (134695760)\n-04227B CRC                   E21BFF73 (3793485683)\n-04227F Compressed Size       00000049 (73)\n-042283 Uncompressed Size     00000049 (73)\n-\n-042287 LOCAL HEADER #63      04034B50 (67324752)\n-04228B Extract Zip Spec      14 (20) '2.0'\n-04228C Extract OS            00 (0) 'MS-DOS'\n-04228D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04228F Compression Method    0000 (0) 'Stored'\n-042291 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-042295 CRC                   00000000 (0)\n-042299 Compressed Size       00000000 (0)\n-04229D Uncompressed Size     00000000 (0)\n-0422A1 Filename Length       0041 (65)\n-0422A3 Extra Length          0009 (9)\n-0422A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x422A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0422E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0422E8   Length              0005 (5)\n-0422EA   Flags               01 (1) 'Modification'\n-0422EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0422EF PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+040C6D DATA DESCRIPTOR       08074B50 (134695760)\n+040C71 CRC                   8141260E (2168530446)\n+040C75 Compressed Size       00000096 (150)\n+040C79 Uncompressed Size     00000096 (150)\n+\n+040C7D LOCAL HEADER #41      04034B50 (67324752)\n+040C81 Extract Zip Spec      14 (20) '2.0'\n+040C82 Extract OS            00 (0) 'MS-DOS'\n+040C83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040C85 Compression Method    0000 (0) 'Stored'\n+040C87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040C8B CRC                   00000000 (0)\n+040C8F Compressed Size       00000000 (0)\n+040C93 Uncompressed Size     00000000 (0)\n+040C97 Filename Length       0049 (73)\n+040C99 Extra Length          0009 (9)\n+040C9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40C9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040CE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040CE6   Length              0005 (5)\n+040CE8   Flags               01 (1) 'Modification'\n+040CE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040CED PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+040D45 DATA DESCRIPTOR       08074B50 (134695760)\n+040D49 CRC                   C4255C66 (3290782822)\n+040D4D Compressed Size       00000058 (88)\n+040D51 Uncompressed Size     00000058 (88)\n+\n+040D55 LOCAL HEADER #42      04034B50 (67324752)\n+040D59 Extract Zip Spec      14 (20) '2.0'\n+040D5A Extract OS            00 (0) 'MS-DOS'\n+040D5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040D5D Compression Method    0000 (0) 'Stored'\n+040D5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040D63 CRC                   00000000 (0)\n+040D67 Compressed Size       00000000 (0)\n+040D6B Uncompressed Size     00000000 (0)\n+040D6F Filename Length       0050 (80)\n+040D71 Extra Length          0009 (9)\n+040D73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40D73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040DC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040DC5   Length              0005 (5)\n+040DC7   Flags               01 (1) 'Modification'\n+040DC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040DCC PAYLOAD\n+\n+040EE3 DATA DESCRIPTOR       08074B50 (134695760)\n+040EE7 CRC                   83E117A1 (2212566945)\n+040EEB Compressed Size       00000117 (279)\n+040EEF Uncompressed Size     00000117 (279)\n+\n+040EF3 LOCAL HEADER #43      04034B50 (67324752)\n+040EF7 Extract Zip Spec      14 (20) '2.0'\n+040EF8 Extract OS            00 (0) 'MS-DOS'\n+040EF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+040EFB Compression Method    0000 (0) 'Stored'\n+040EFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+040F01 CRC                   00000000 (0)\n+040F05 Compressed Size       00000000 (0)\n+040F09 Uncompressed Size     00000000 (0)\n+040F0D Filename Length       004E (78)\n+040F0F Extra Length          0009 (9)\n+040F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+040F5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+040F61   Length              0005 (5)\n+040F63   Flags               01 (1) 'Modification'\n+040F64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+040F68 PAYLOAD\n+\n+041133 DATA DESCRIPTOR       08074B50 (134695760)\n+041137 CRC                   E654BF14 (3864313620)\n+04113B Compressed Size       000001CB (459)\n+04113F Uncompressed Size     000001CB (459)\n+\n+041143 LOCAL HEADER #44      04034B50 (67324752)\n+041147 Extract Zip Spec      14 (20) '2.0'\n+041148 Extract OS            00 (0) 'MS-DOS'\n+041149 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04114B Compression Method    0000 (0) 'Stored'\n+04114D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+041151 CRC                   00000000 (0)\n+041155 Compressed Size       00000000 (0)\n+041159 Uncompressed Size     00000000 (0)\n+04115D Filename Length       0058 (88)\n+04115F Extra Length          0009 (9)\n+041161 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41161: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0411B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0411BB   Length              0005 (5)\n+0411BD   Flags               01 (1) 'Modification'\n+0411BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0411C2 PAYLOAD\n+\n+041497 DATA DESCRIPTOR       08074B50 (134695760)\n+04149B CRC                   F21C5285 (4061942405)\n+04149F Compressed Size       000002D5 (725)\n+0414A3 Uncompressed Size     000002D5 (725)\n+\n+0414A7 LOCAL HEADER #45      04034B50 (67324752)\n+0414AB Extract Zip Spec      14 (20) '2.0'\n+0414AC Extract OS            00 (0) 'MS-DOS'\n+0414AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0414AF Compression Method    0000 (0) 'Stored'\n+0414B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0414B5 CRC                   00000000 (0)\n+0414B9 Compressed Size       00000000 (0)\n+0414BD Uncompressed Size     00000000 (0)\n+0414C1 Filename Length       0052 (82)\n+0414C3 Extra Length          0009 (9)\n+0414C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x414C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+041517 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+041519   Length              0005 (5)\n+04151B   Flags               01 (1) 'Modification'\n+04151C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+041520 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0415D9 DATA DESCRIPTOR       08074B50 (134695760)\n+0415DD CRC                   7F686F44 (2137550660)\n+0415E1 Compressed Size       000000B9 (185)\n+0415E5 Uncompressed Size     000000B9 (185)\n+\n+0415E9 LOCAL HEADER #46      04034B50 (67324752)\n+0415ED Extract Zip Spec      14 (20) '2.0'\n+0415EE Extract OS            00 (0) 'MS-DOS'\n+0415EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0415F1 Compression Method    0000 (0) 'Stored'\n+0415F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0415F7 CRC                   00000000 (0)\n+0415FB Compressed Size       00000000 (0)\n+0415FF Uncompressed Size     00000000 (0)\n+041603 Filename Length       003F (63)\n+041605 Extra Length          0009 (9)\n+041607 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41607: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+041646 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+041648   Length              0005 (5)\n+04164A   Flags               01 (1) 'Modification'\n+04164B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04164F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+041688 DATA DESCRIPTOR       08074B50 (134695760)\n+04168C CRC                   8738E283 (2268652163)\n+041690 Compressed Size       00000039 (57)\n+041694 Uncompressed Size     00000039 (57)\n+\n+041698 LOCAL HEADER #47      04034B50 (67324752)\n+04169C Extract Zip Spec      14 (20) '2.0'\n+04169D Extract OS            00 (0) 'MS-DOS'\n+04169E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0416A0 Compression Method    0000 (0) 'Stored'\n+0416A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0416A6 CRC                   00000000 (0)\n+0416AA Compressed Size       00000000 (0)\n+0416AE Uncompressed Size     00000000 (0)\n+0416B2 Filename Length       0040 (64)\n+0416B4 Extra Length          0009 (9)\n+0416B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x416B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0416F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0416F8   Length              0005 (5)\n+0416FA   Flags               01 (1) 'Modification'\n+0416FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0416FF PAYLOAD\n+\n+04188D DATA DESCRIPTOR       08074B50 (134695760)\n+041891 CRC                   77A9D190 (2007617936)\n+041895 Compressed Size       0000018E (398)\n+041899 Uncompressed Size     0000018E (398)\n+\n+04189D LOCAL HEADER #48      04034B50 (67324752)\n+0418A1 Extract Zip Spec      14 (20) '2.0'\n+0418A2 Extract OS            00 (0) 'MS-DOS'\n+0418A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0418A5 Compression Method    0000 (0) 'Stored'\n+0418A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0418AB CRC                   00000000 (0)\n+0418AF Compressed Size       00000000 (0)\n+0418B3 Uncompressed Size     00000000 (0)\n+0418B7 Filename Length       0041 (65)\n+0418B9 Extra Length          0009 (9)\n+0418BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x418BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0418FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0418FE   Length              0005 (5)\n+041900   Flags               01 (1) 'Modification'\n+041901   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+041905 PAYLOAD\n+\n+041BD1 DATA DESCRIPTOR       08074B50 (134695760)\n+041BD5 CRC                   D0ECCA57 (3505179223)\n+041BD9 Compressed Size       000002CC (716)\n+041BDD Uncompressed Size     000002CC (716)\n+\n+041BE1 LOCAL HEADER #49      04034B50 (67324752)\n+041BE5 Extract Zip Spec      14 (20) '2.0'\n+041BE6 Extract OS            00 (0) 'MS-DOS'\n+041BE7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+041BE9 Compression Method    0000 (0) 'Stored'\n+041BEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+041BEF CRC                   00000000 (0)\n+041BF3 Compressed Size       00000000 (0)\n+041BF7 Uncompressed Size     00000000 (0)\n+041BFB Filename Length       0052 (82)\n+041BFD Extra Length          0009 (9)\n+041BFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41BFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+041C51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+041C53   Length              0005 (5)\n+041C55   Flags               01 (1) 'Modification'\n+041C56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+041C5A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+041CA3 DATA DESCRIPTOR       08074B50 (134695760)\n+041CA7 CRC                   290EDBFF (688839679)\n+041CAB Compressed Size       00000049 (73)\n+041CAF Uncompressed Size     00000049 (73)\n+\n+041CB3 LOCAL HEADER #50      04034B50 (67324752)\n+041CB7 Extract Zip Spec      14 (20) '2.0'\n+041CB8 Extract OS            00 (0) 'MS-DOS'\n+041CB9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+041CBB Compression Method    0000 (0) 'Stored'\n+041CBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+041CC1 CRC                   00000000 (0)\n+041CC5 Compressed Size       00000000 (0)\n+041CC9 Uncompressed Size     00000000 (0)\n+041CCD Filename Length       0049 (73)\n+041CCF Extra Length          0009 (9)\n+041CD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41CD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+041D1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+041D1C   Length              0005 (5)\n+041D1E   Flags               01 (1) 'Modification'\n+041D1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+041D23 PAYLOAD\n+\n+041F75 DATA DESCRIPTOR       08074B50 (134695760)\n+041F79 CRC                   5A07C547 (1510458695)\n+041F7D Compressed Size       00000252 (594)\n+041F81 Uncompressed Size     00000252 (594)\n+\n+041F85 LOCAL HEADER #51      04034B50 (67324752)\n+041F89 Extract Zip Spec      14 (20) '2.0'\n+041F8A Extract OS            00 (0) 'MS-DOS'\n+041F8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+041F8D Compression Method    0000 (0) 'Stored'\n+041F8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+041F93 CRC                   00000000 (0)\n+041F97 Compressed Size       00000000 (0)\n+041F9B Uncompressed Size     00000000 (0)\n+041F9F Filename Length       0050 (80)\n+041FA1 Extra Length          0009 (9)\n+041FA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41FA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+041FF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+041FF5   Length              0005 (5)\n+041FF7   Flags               01 (1) 'Modification'\n+041FF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+041FFC PAYLOAD\n+\n+04224A DATA DESCRIPTOR       08074B50 (134695760)\n+04224E CRC                   20C66B35 (549874485)\n+042252 Compressed Size       0000024E (590)\n+042256 Uncompressed Size     0000024E (590)\n+\n+04225A LOCAL HEADER #52      04034B50 (67324752)\n+04225E Extract Zip Spec      14 (20) '2.0'\n+04225F Extract OS            00 (0) 'MS-DOS'\n+042260 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042262 Compression Method    0000 (0) 'Stored'\n+042264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042268 CRC                   00000000 (0)\n+04226C Compressed Size       00000000 (0)\n+042270 Uncompressed Size     00000000 (0)\n+042274 Filename Length       0052 (82)\n+042276 Extra Length          0009 (9)\n+042278 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42278: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0422CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0422CC   Length              0005 (5)\n+0422CE   Flags               01 (1) 'Modification'\n+0422CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0422D3 PAYLOAD\n+\n+042556 DATA DESCRIPTOR       08074B50 (134695760)\n+04255A CRC                   A80508FF (2818902271)\n+04255E Compressed Size       00000283 (643)\n+042562 Uncompressed Size     00000283 (643)\n+\n+042566 LOCAL HEADER #53      04034B50 (67324752)\n+04256A Extract Zip Spec      14 (20) '2.0'\n+04256B Extract OS            00 (0) 'MS-DOS'\n+04256C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04256E Compression Method    0000 (0) 'Stored'\n+042570 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042574 CRC                   00000000 (0)\n+042578 Compressed Size       00000000 (0)\n+04257C Uncompressed Size     00000000 (0)\n+042580 Filename Length       005B (91)\n+042582 Extra Length          0009 (9)\n+042584 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42584: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0425DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0425E1   Length              0005 (5)\n+0425E3   Flags               01 (1) 'Modification'\n+0425E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0425E8 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+04269A DATA DESCRIPTOR       08074B50 (134695760)\n+04269E CRC                   2D09B871 (755611761)\n+0426A2 Compressed Size       000000B2 (178)\n+0426A6 Uncompressed Size     000000B2 (178)\n+\n+0426AA LOCAL HEADER #54      04034B50 (67324752)\n+0426AE Extract Zip Spec      14 (20) '2.0'\n+0426AF Extract OS            00 (0) 'MS-DOS'\n+0426B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0426B2 Compression Method    0000 (0) 'Stored'\n+0426B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0426B8 CRC                   00000000 (0)\n+0426BC Compressed Size       00000000 (0)\n+0426C0 Uncompressed Size     00000000 (0)\n+0426C4 Filename Length       005B (91)\n+0426C6 Extra Length          0009 (9)\n+0426C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x426C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+042723 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+042725   Length              0005 (5)\n+042727   Flags               01 (1) 'Modification'\n+042728   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04272C PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+042780 DATA DESCRIPTOR       08074B50 (134695760)\n+042784 CRC                   A49FCF77 (2761936759)\n+042788 Compressed Size       00000054 (84)\n+04278C Uncompressed Size     00000054 (84)\n+\n+042790 LOCAL HEADER #55      04034B50 (67324752)\n+042794 Extract Zip Spec      14 (20) '2.0'\n+042795 Extract OS            00 (0) 'MS-DOS'\n+042796 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042798 Compression Method    0000 (0) 'Stored'\n+04279A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04279E CRC                   00000000 (0)\n+0427A2 Compressed Size       00000000 (0)\n+0427A6 Uncompressed Size     00000000 (0)\n+0427AA Filename Length       005D (93)\n+0427AC Extra Length          0009 (9)\n+0427AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x427AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04280B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04280D   Length              0005 (5)\n+04280F   Flags               01 (1) 'Modification'\n+042810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+042814 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+042868 DATA DESCRIPTOR       08074B50 (134695760)\n+04286C CRC                   F515114D (4111798605)\n+042870 Compressed Size       00000054 (84)\n+042874 Uncompressed Size     00000054 (84)\n+\n+042878 LOCAL HEADER #56      04034B50 (67324752)\n+04287C Extract Zip Spec      14 (20) '2.0'\n+04287D Extract OS            00 (0) 'MS-DOS'\n+04287E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042880 Compression Method    0000 (0) 'Stored'\n+042882 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042886 CRC                   00000000 (0)\n+04288A Compressed Size       00000000 (0)\n+04288E Uncompressed Size     00000000 (0)\n+042892 Filename Length       0059 (89)\n+042894 Extra Length          0009 (9)\n+042896 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42896: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0428EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0428F1   Length              0005 (5)\n+0428F3   Flags               01 (1) 'Modification'\n+0428F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0428F8 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+042946 DATA DESCRIPTOR       08074B50 (134695760)\n+04294A CRC                   285254BA (676484282)\n+04294E Compressed Size       0000004E (78)\n+042952 Uncompressed Size     0000004E (78)\n+\n+042956 LOCAL HEADER #57      04034B50 (67324752)\n+04295A Extract Zip Spec      14 (20) '2.0'\n+04295B Extract OS            00 (0) 'MS-DOS'\n+04295C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04295E Compression Method    0000 (0) 'Stored'\n+042960 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042964 CRC                   00000000 (0)\n+042968 Compressed Size       00000000 (0)\n+04296C Uncompressed Size     00000000 (0)\n+042970 Filename Length       0056 (86)\n+042972 Extra Length          0009 (9)\n+042974 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42974: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0429CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0429CC   Length              0005 (5)\n+0429CE   Flags               01 (1) 'Modification'\n+0429CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0429D3 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+042A1D DATA DESCRIPTOR       08074B50 (134695760)\n+042A21 CRC                   9DAB4985 (2645248389)\n+042A25 Compressed Size       0000004A (74)\n+042A29 Uncompressed Size     0000004A (74)\n+\n+042A2D LOCAL HEADER #58      04034B50 (67324752)\n+042A31 Extract Zip Spec      14 (20) '2.0'\n+042A32 Extract OS            00 (0) 'MS-DOS'\n+042A33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042A35 Compression Method    0000 (0) 'Stored'\n+042A37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042A3B CRC                   00000000 (0)\n+042A3F Compressed Size       00000000 (0)\n+042A43 Uncompressed Size     00000000 (0)\n+042A47 Filename Length       0038 (56)\n+042A49 Extra Length          0009 (9)\n+042A4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42A4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+042A83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+042A85   Length              0005 (5)\n+042A87   Flags               01 (1) 'Modification'\n+042A88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+042A8C PAYLOAD\n+\n+042BBD DATA DESCRIPTOR       08074B50 (134695760)\n+042BC1 CRC                   83B04446 (2209367110)\n+042BC5 Compressed Size       00000131 (305)\n+042BC9 Uncompressed Size     00000131 (305)\n+\n+042BCD LOCAL HEADER #59      04034B50 (67324752)\n+042BD1 Extract Zip Spec      14 (20) '2.0'\n+042BD2 Extract OS            00 (0) 'MS-DOS'\n+042BD3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042BD5 Compression Method    0000 (0) 'Stored'\n+042BD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042BDB CRC                   00000000 (0)\n+042BDF Compressed Size       00000000 (0)\n+042BE3 Uncompressed Size     00000000 (0)\n+042BE7 Filename Length       003C (60)\n+042BE9 Extra Length          0009 (9)\n+042BEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42BEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+042C27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+042C29   Length              0005 (5)\n+042C2B   Flags               01 (1) 'Modification'\n+042C2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+042C30 PAYLOAD\n+\n+042DD4 DATA DESCRIPTOR       08074B50 (134695760)\n+042DD8 CRC                   B02A8DBF (2955578815)\n+042DDC Compressed Size       000001A4 (420)\n+042DE0 Uncompressed Size     000001A4 (420)\n+\n+042DE4 LOCAL HEADER #60      04034B50 (67324752)\n+042DE8 Extract Zip Spec      14 (20) '2.0'\n+042DE9 Extract OS            00 (0) 'MS-DOS'\n+042DEA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042DEC Compression Method    0000 (0) 'Stored'\n+042DEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042DF2 CRC                   00000000 (0)\n+042DF6 Compressed Size       00000000 (0)\n+042DFA Uncompressed Size     00000000 (0)\n+042DFE Filename Length       003D (61)\n+042E00 Extra Length          0009 (9)\n+042E02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42E02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+042E3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+042E41   Length              0005 (5)\n+042E43   Flags               01 (1) 'Modification'\n+042E44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+042E48 PAYLOAD\n+\n+042F95 DATA DESCRIPTOR       08074B50 (134695760)\n+042F99 CRC                   605C157F (1616647551)\n+042F9D Compressed Size       0000014D (333)\n+042FA1 Uncompressed Size     0000014D (333)\n+\n+042FA5 LOCAL HEADER #61      04034B50 (67324752)\n+042FA9 Extract Zip Spec      14 (20) '2.0'\n+042FAA Extract OS            00 (0) 'MS-DOS'\n+042FAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+042FAD Compression Method    0000 (0) 'Stored'\n+042FAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+042FB3 CRC                   00000000 (0)\n+042FB7 Compressed Size       00000000 (0)\n+042FBB Uncompressed Size     00000000 (0)\n+042FBF Filename Length       0046 (70)\n+042FC1 Extra Length          0009 (9)\n+042FC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42FC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+043009 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04300B   Length              0005 (5)\n+04300D   Flags               01 (1) 'Modification'\n+04300E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+043012 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+04304D DATA DESCRIPTOR       08074B50 (134695760)\n+043051 CRC                   91BA560C (2444908044)\n+043055 Compressed Size       0000003B (59)\n+043059 Uncompressed Size     0000003B (59)\n+\n+04305D LOCAL HEADER #62      04034B50 (67324752)\n+043061 Extract Zip Spec      14 (20) '2.0'\n+043062 Extract OS            00 (0) 'MS-DOS'\n+043063 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043065 Compression Method    0000 (0) 'Stored'\n+043067 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04306B CRC                   00000000 (0)\n+04306F Compressed Size       00000000 (0)\n+043073 Uncompressed Size     00000000 (0)\n+043077 Filename Length       0044 (68)\n+043079 Extra Length          0009 (9)\n+04307B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4307B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0430BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0430C1   Length              0005 (5)\n+0430C3   Flags               01 (1) 'Modification'\n+0430C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0430C8 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+043111 DATA DESCRIPTOR       08074B50 (134695760)\n+043115 CRC                   E21BFF73 (3793485683)\n+043119 Compressed Size       00000049 (73)\n+04311D Uncompressed Size     00000049 (73)\n+\n+043121 LOCAL HEADER #63      04034B50 (67324752)\n+043125 Extract Zip Spec      14 (20) '2.0'\n+043126 Extract OS            00 (0) 'MS-DOS'\n+043127 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043129 Compression Method    0000 (0) 'Stored'\n+04312B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04312F CRC                   00000000 (0)\n+043133 Compressed Size       00000000 (0)\n+043137 Uncompressed Size     00000000 (0)\n+04313B Filename Length       0041 (65)\n+04313D Extra Length          0009 (9)\n+04313F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4313F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+043180 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+043182   Length              0005 (5)\n+043184   Flags               01 (1) 'Modification'\n+043185   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+043189 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-0423E7 DATA DESCRIPTOR       08074B50 (134695760)\n-0423EB CRC                   78354721 (2016757537)\n-0423EF Compressed Size       000000F8 (248)\n-0423F3 Uncompressed Size     000000F8 (248)\n-\n-0423F7 LOCAL HEADER #64      04034B50 (67324752)\n-0423FB Extract Zip Spec      14 (20) '2.0'\n-0423FC Extract OS            00 (0) 'MS-DOS'\n-0423FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0423FF Compression Method    0000 (0) 'Stored'\n-042401 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-042405 CRC                   00000000 (0)\n-042409 Compressed Size       00000000 (0)\n-04240D Uncompressed Size     00000000 (0)\n-042411 Filename Length       003F (63)\n-042413 Extra Length          0009 (9)\n-042415 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42415: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-042454 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042456   Length              0005 (5)\n-042458   Flags               01 (1) 'Modification'\n-042459   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04245D PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-0424DA DATA DESCRIPTOR       08074B50 (134695760)\n-0424DE CRC                   3693E7D5 (915662805)\n-0424E2 Compressed Size       0000007D (125)\n-0424E6 Uncompressed Size     0000007D (125)\n-\n-0424EA LOCAL HEADER #65      04034B50 (67324752)\n-0424EE Extract Zip Spec      14 (20) '2.0'\n-0424EF Extract OS            00 (0) 'MS-DOS'\n-0424F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0424F2 Compression Method    0000 (0) 'Stored'\n-0424F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0424F8 CRC                   00000000 (0)\n-0424FC Compressed Size       00000000 (0)\n-042500 Uncompressed Size     00000000 (0)\n-042504 Filename Length       0046 (70)\n-042506 Extra Length          0009 (9)\n-042508 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42508: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04254E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042550   Length              0005 (5)\n-042552   Flags               01 (1) 'Modification'\n-042553   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-042557 PAYLOAD\n-\n-0428A4 DATA DESCRIPTOR       08074B50 (134695760)\n-0428A8 CRC                   F5C1516B (4123087211)\n-0428AC Compressed Size       0000034D (845)\n-0428B0 Uncompressed Size     0000034D (845)\n-\n-0428B4 LOCAL HEADER #66      04034B50 (67324752)\n-0428B8 Extract Zip Spec      14 (20) '2.0'\n-0428B9 Extract OS            00 (0) 'MS-DOS'\n-0428BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0428BC Compression Method    0000 (0) 'Stored'\n-0428BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0428C2 CRC                   00000000 (0)\n-0428C6 Compressed Size       00000000 (0)\n-0428CA Uncompressed Size     00000000 (0)\n-0428CE Filename Length       0050 (80)\n-0428D0 Extra Length          0009 (9)\n-0428D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x428D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-042922 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042924   Length              0005 (5)\n-042926   Flags               01 (1) 'Modification'\n-042927   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04292B PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-04297D DATA DESCRIPTOR       08074B50 (134695760)\n-042981 CRC                   80A8E0CE (2158551246)\n-042985 Compressed Size       00000052 (82)\n-042989 Uncompressed Size     00000052 (82)\n-\n-04298D LOCAL HEADER #67      04034B50 (67324752)\n-042991 Extract Zip Spec      14 (20) '2.0'\n-042992 Extract OS            00 (0) 'MS-DOS'\n-042993 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-042995 Compression Method    0000 (0) 'Stored'\n-042997 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04299B CRC                   00000000 (0)\n-04299F Compressed Size       00000000 (0)\n-0429A3 Uncompressed Size     00000000 (0)\n-0429A7 Filename Length       0033 (51)\n-0429A9 Extra Length          0009 (9)\n-0429AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x429AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0429DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0429E0   Length              0005 (5)\n-0429E2   Flags               01 (1) 'Modification'\n-0429E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0429E7 PAYLOAD\n-\n-042E76 DATA DESCRIPTOR       08074B50 (134695760)\n-042E7A CRC                   A8176C28 (2820107304)\n-042E7E Compressed Size       0000048F (1167)\n-042E82 Uncompressed Size     0000048F (1167)\n-\n-042E86 LOCAL HEADER #68      04034B50 (67324752)\n-042E8A Extract Zip Spec      14 (20) '2.0'\n-042E8B Extract OS            00 (0) 'MS-DOS'\n-042E8C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-042E8E Compression Method    0000 (0) 'Stored'\n-042E90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-042E94 CRC                   00000000 (0)\n-042E98 Compressed Size       00000000 (0)\n-042E9C Uncompressed Size     00000000 (0)\n-042EA0 Filename Length       003C (60)\n-042EA2 Extra Length          0009 (9)\n-042EA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42EA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-042EE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042EE2   Length              0005 (5)\n-042EE4   Flags               01 (1) 'Modification'\n-042EE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-042EE9 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-042F2C DATA DESCRIPTOR       08074B50 (134695760)\n-042F30 CRC                   2F399EBD (792305341)\n-042F34 Compressed Size       00000043 (67)\n-042F38 Uncompressed Size     00000043 (67)\n-\n-042F3C LOCAL HEADER #69      04034B50 (67324752)\n-042F40 Extract Zip Spec      14 (20) '2.0'\n-042F41 Extract OS            00 (0) 'MS-DOS'\n-042F42 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-042F44 Compression Method    0000 (0) 'Stored'\n-042F46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-042F4A CRC                   00000000 (0)\n-042F4E Compressed Size       00000000 (0)\n-042F52 Uncompressed Size     00000000 (0)\n-042F56 Filename Length       0035 (53)\n-042F58 Extra Length          0009 (9)\n-042F5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42F5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-042F8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-042F91   Length              0005 (5)\n-042F93   Flags               01 (1) 'Modification'\n-042F94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-042F98 PAYLOAD\n-\n-043421 DATA DESCRIPTOR       08074B50 (134695760)\n-043425 CRC                   9B0B664B (2601215563)\n-043429 Compressed Size       00000489 (1161)\n-04342D Uncompressed Size     00000489 (1161)\n-\n-043431 LOCAL HEADER #70      04034B50 (67324752)\n-043435 Extract Zip Spec      14 (20) '2.0'\n-043436 Extract OS            00 (0) 'MS-DOS'\n-043437 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-043439 Compression Method    0000 (0) 'Stored'\n-04343B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04343F CRC                   00000000 (0)\n-043443 Compressed Size       00000000 (0)\n-043447 Uncompressed Size     00000000 (0)\n-04344B Filename Length       0039 (57)\n-04344D Extra Length          0009 (9)\n-04344F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4344F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-043488 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04348A   Length              0005 (5)\n-04348C   Flags               01 (1) 'Modification'\n-04348D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-043491 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+043281 DATA DESCRIPTOR       08074B50 (134695760)\n+043285 CRC                   78354721 (2016757537)\n+043289 Compressed Size       000000F8 (248)\n+04328D Uncompressed Size     000000F8 (248)\n+\n+043291 LOCAL HEADER #64      04034B50 (67324752)\n+043295 Extract Zip Spec      14 (20) '2.0'\n+043296 Extract OS            00 (0) 'MS-DOS'\n+043297 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043299 Compression Method    0000 (0) 'Stored'\n+04329B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04329F CRC                   00000000 (0)\n+0432A3 Compressed Size       00000000 (0)\n+0432A7 Uncompressed Size     00000000 (0)\n+0432AB Filename Length       003F (63)\n+0432AD Extra Length          0009 (9)\n+0432AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x432AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0432EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0432F0   Length              0005 (5)\n+0432F2   Flags               01 (1) 'Modification'\n+0432F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0432F7 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+043374 DATA DESCRIPTOR       08074B50 (134695760)\n+043378 CRC                   3693E7D5 (915662805)\n+04337C Compressed Size       0000007D (125)\n+043380 Uncompressed Size     0000007D (125)\n+\n+043384 LOCAL HEADER #65      04034B50 (67324752)\n+043388 Extract Zip Spec      14 (20) '2.0'\n+043389 Extract OS            00 (0) 'MS-DOS'\n+04338A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04338C Compression Method    0000 (0) 'Stored'\n+04338E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+043392 CRC                   00000000 (0)\n+043396 Compressed Size       00000000 (0)\n+04339A Uncompressed Size     00000000 (0)\n+04339E Filename Length       0046 (70)\n+0433A0 Extra Length          0009 (9)\n+0433A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x433A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0433E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0433EA   Length              0005 (5)\n+0433EC   Flags               01 (1) 'Modification'\n+0433ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0433F1 PAYLOAD\n+\n+043746 DATA DESCRIPTOR       08074B50 (134695760)\n+04374A CRC                   97778096 (2541191318)\n+04374E Compressed Size       00000355 (853)\n+043752 Uncompressed Size     00000355 (853)\n+\n+043756 LOCAL HEADER #66      04034B50 (67324752)\n+04375A Extract Zip Spec      14 (20) '2.0'\n+04375B Extract OS            00 (0) 'MS-DOS'\n+04375C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04375E Compression Method    0000 (0) 'Stored'\n+043760 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+043764 CRC                   00000000 (0)\n+043768 Compressed Size       00000000 (0)\n+04376C Uncompressed Size     00000000 (0)\n+043770 Filename Length       0050 (80)\n+043772 Extra Length          0009 (9)\n+043774 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43774: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0437C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0437C6   Length              0005 (5)\n+0437C8   Flags               01 (1) 'Modification'\n+0437C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0437CD PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+04381F DATA DESCRIPTOR       08074B50 (134695760)\n+043823 CRC                   80A8E0CE (2158551246)\n+043827 Compressed Size       00000052 (82)\n+04382B Uncompressed Size     00000052 (82)\n+\n+04382F LOCAL HEADER #67      04034B50 (67324752)\n+043833 Extract Zip Spec      14 (20) '2.0'\n+043834 Extract OS            00 (0) 'MS-DOS'\n+043835 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043837 Compression Method    0000 (0) 'Stored'\n+043839 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04383D CRC                   00000000 (0)\n+043841 Compressed Size       00000000 (0)\n+043845 Uncompressed Size     00000000 (0)\n+043849 Filename Length       0033 (51)\n+04384B Extra Length          0009 (9)\n+04384D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4384D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+043880 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+043882   Length              0005 (5)\n+043884   Flags               01 (1) 'Modification'\n+043885   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+043889 PAYLOAD\n+\n+043D1A DATA DESCRIPTOR       08074B50 (134695760)\n+043D1E CRC                   ECAE314A (3970838858)\n+043D22 Compressed Size       00000491 (1169)\n+043D26 Uncompressed Size     00000491 (1169)\n+\n+043D2A LOCAL HEADER #68      04034B50 (67324752)\n+043D2E Extract Zip Spec      14 (20) '2.0'\n+043D2F Extract OS            00 (0) 'MS-DOS'\n+043D30 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043D32 Compression Method    0000 (0) 'Stored'\n+043D34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+043D38 CRC                   00000000 (0)\n+043D3C Compressed Size       00000000 (0)\n+043D40 Uncompressed Size     00000000 (0)\n+043D44 Filename Length       003C (60)\n+043D46 Extra Length          0009 (9)\n+043D48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43D48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+043D84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+043D86   Length              0005 (5)\n+043D88   Flags               01 (1) 'Modification'\n+043D89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+043D8D PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+043DD0 DATA DESCRIPTOR       08074B50 (134695760)\n+043DD4 CRC                   2F399EBD (792305341)\n+043DD8 Compressed Size       00000043 (67)\n+043DDC Uncompressed Size     00000043 (67)\n+\n+043DE0 LOCAL HEADER #69      04034B50 (67324752)\n+043DE4 Extract Zip Spec      14 (20) '2.0'\n+043DE5 Extract OS            00 (0) 'MS-DOS'\n+043DE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+043DE8 Compression Method    0000 (0) 'Stored'\n+043DEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+043DEE CRC                   00000000 (0)\n+043DF2 Compressed Size       00000000 (0)\n+043DF6 Uncompressed Size     00000000 (0)\n+043DFA Filename Length       0035 (53)\n+043DFC Extra Length          0009 (9)\n+043DFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43DFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+043E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+043E35   Length              0005 (5)\n+043E37   Flags               01 (1) 'Modification'\n+043E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+043E3C PAYLOAD\n+\n+0442C6 DATA DESCRIPTOR       08074B50 (134695760)\n+0442CA CRC                   0C25920C (203788812)\n+0442CE Compressed Size       0000048A (1162)\n+0442D2 Uncompressed Size     0000048A (1162)\n+\n+0442D6 LOCAL HEADER #70      04034B50 (67324752)\n+0442DA Extract Zip Spec      14 (20) '2.0'\n+0442DB Extract OS            00 (0) 'MS-DOS'\n+0442DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0442DE Compression Method    0000 (0) 'Stored'\n+0442E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0442E4 CRC                   00000000 (0)\n+0442E8 Compressed Size       00000000 (0)\n+0442EC Uncompressed Size     00000000 (0)\n+0442F0 Filename Length       0039 (57)\n+0442F2 Extra Length          0009 (9)\n+0442F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x442F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04432D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04432F   Length              0005 (5)\n+044331   Flags               01 (1) 'Modification'\n+044332   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044336 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-04354B DATA DESCRIPTOR       08074B50 (134695760)\n-04354F CRC                   ED03E48F (3976455311)\n-043553 Compressed Size       000000BA (186)\n-043557 Uncompressed Size     000000BA (186)\n-\n-04355B LOCAL HEADER #71      04034B50 (67324752)\n-04355F Extract Zip Spec      14 (20) '2.0'\n-043560 Extract OS            00 (0) 'MS-DOS'\n-043561 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-043563 Compression Method    0000 (0) 'Stored'\n-043565 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-043569 CRC                   00000000 (0)\n-04356D Compressed Size       00000000 (0)\n-043571 Uncompressed Size     00000000 (0)\n-043575 Filename Length       003C (60)\n-043577 Extra Length          0009 (9)\n-043579 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43579: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0435B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0435B7   Length              0005 (5)\n-0435B9   Flags               01 (1) 'Modification'\n-0435BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0435BE PAYLOAD\n-\n-04384A DATA DESCRIPTOR       08074B50 (134695760)\n-04384E CRC                   72D50831 (1926563889)\n-043852 Compressed Size       0000028C (652)\n-043856 Uncompressed Size     0000028C (652)\n-\n-04385A LOCAL HEADER #72      04034B50 (67324752)\n-04385E Extract Zip Spec      14 (20) '2.0'\n-04385F Extract OS            00 (0) 'MS-DOS'\n-043860 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-043862 Compression Method    0000 (0) 'Stored'\n-043864 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-043868 CRC                   00000000 (0)\n-04386C Compressed Size       00000000 (0)\n-043870 Uncompressed Size     00000000 (0)\n-043874 Filename Length       0048 (72)\n-043876 Extra Length          0009 (9)\n-043878 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43878: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0438C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0438C2   Length              0005 (5)\n-0438C4   Flags               01 (1) 'Modification'\n-0438C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0438C9 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0443F0 DATA DESCRIPTOR       08074B50 (134695760)\n+0443F4 CRC                   ED03E48F (3976455311)\n+0443F8 Compressed Size       000000BA (186)\n+0443FC Uncompressed Size     000000BA (186)\n+\n+044400 LOCAL HEADER #71      04034B50 (67324752)\n+044404 Extract Zip Spec      14 (20) '2.0'\n+044405 Extract OS            00 (0) 'MS-DOS'\n+044406 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044408 Compression Method    0000 (0) 'Stored'\n+04440A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04440E CRC                   00000000 (0)\n+044412 Compressed Size       00000000 (0)\n+044416 Uncompressed Size     00000000 (0)\n+04441A Filename Length       003C (60)\n+04441C Extra Length          0009 (9)\n+04441E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4441E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04445A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04445C   Length              0005 (5)\n+04445E   Flags               01 (1) 'Modification'\n+04445F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044463 PAYLOAD\n+\n+0446EF DATA DESCRIPTOR       08074B50 (134695760)\n+0446F3 CRC                   72D50831 (1926563889)\n+0446F7 Compressed Size       0000028C (652)\n+0446FB Uncompressed Size     0000028C (652)\n+\n+0446FF LOCAL HEADER #72      04034B50 (67324752)\n+044703 Extract Zip Spec      14 (20) '2.0'\n+044704 Extract OS            00 (0) 'MS-DOS'\n+044705 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044707 Compression Method    0000 (0) 'Stored'\n+044709 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04470D CRC                   00000000 (0)\n+044711 Compressed Size       00000000 (0)\n+044715 Uncompressed Size     00000000 (0)\n+044719 Filename Length       0048 (72)\n+04471B Extra Length          0009 (9)\n+04471D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4471D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+044765 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+044767   Length              0005 (5)\n+044769   Flags               01 (1) 'Modification'\n+04476A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04476E PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-043974 DATA DESCRIPTOR       08074B50 (134695760)\n-043978 CRC                   B1A9D94F (2980698447)\n-04397C Compressed Size       000000AB (171)\n-043980 Uncompressed Size     000000AB (171)\n-\n-043984 LOCAL HEADER #73      04034B50 (67324752)\n-043988 Extract Zip Spec      14 (20) '2.0'\n-043989 Extract OS            00 (0) 'MS-DOS'\n-04398A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04398C Compression Method    0000 (0) 'Stored'\n-04398E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-043992 CRC                   00000000 (0)\n-043996 Compressed Size       00000000 (0)\n-04399A Uncompressed Size     00000000 (0)\n-04399E Filename Length       0040 (64)\n-0439A0 Extra Length          0009 (9)\n-0439A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x439A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0439E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0439E4   Length              0005 (5)\n-0439E6   Flags               01 (1) 'Modification'\n-0439E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0439EB PAYLOAD\n-\n-043B6F DATA DESCRIPTOR       08074B50 (134695760)\n-043B73 CRC                   388E9B78 (948870008)\n-043B77 Compressed Size       00000184 (388)\n-043B7B Uncompressed Size     00000184 (388)\n-\n-043B7F LOCAL HEADER #74      04034B50 (67324752)\n-043B83 Extract Zip Spec      14 (20) '2.0'\n-043B84 Extract OS            00 (0) 'MS-DOS'\n-043B85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-043B87 Compression Method    0000 (0) 'Stored'\n-043B89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-043B8D CRC                   00000000 (0)\n-043B91 Compressed Size       00000000 (0)\n-043B95 Uncompressed Size     00000000 (0)\n-043B99 Filename Length       003B (59)\n-043B9B Extra Length          0009 (9)\n-043B9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43B9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-043BD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-043BDA   Length              0005 (5)\n-043BDC   Flags               01 (1) 'Modification'\n-043BDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-043BE1 PAYLOAD\n-\n-043E59 DATA DESCRIPTOR       08074B50 (134695760)\n-043E5D CRC                   6F4CF591 (1867314577)\n-043E61 Compressed Size       00000278 (632)\n-043E65 Uncompressed Size     00000278 (632)\n-\n-043E69 LOCAL HEADER #75      04034B50 (67324752)\n-043E6D Extract Zip Spec      14 (20) '2.0'\n-043E6E Extract OS            00 (0) 'MS-DOS'\n-043E6F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-043E71 Compression Method    0000 (0) 'Stored'\n-043E73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-043E77 CRC                   00000000 (0)\n-043E7B Compressed Size       00000000 (0)\n-043E7F Uncompressed Size     00000000 (0)\n-043E83 Filename Length       0042 (66)\n-043E85 Extra Length          0009 (9)\n-043E87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43E87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-043EC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-043ECB   Length              0005 (5)\n-043ECD   Flags               01 (1) 'Modification'\n-043ECE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-043ED2 PAYLOAD\n-\n-044081 DATA DESCRIPTOR       08074B50 (134695760)\n-044085 CRC                   4D30A945 (1295034693)\n-044089 Compressed Size       000001AF (431)\n-04408D Uncompressed Size     000001AF (431)\n-\n-044091 LOCAL HEADER #76      04034B50 (67324752)\n-044095 Extract Zip Spec      14 (20) '2.0'\n-044096 Extract OS            00 (0) 'MS-DOS'\n-044097 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044099 Compression Method    0000 (0) 'Stored'\n-04409B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04409F CRC                   00000000 (0)\n-0440A3 Compressed Size       00000000 (0)\n-0440A7 Uncompressed Size     00000000 (0)\n-0440AB Filename Length       0058 (88)\n-0440AD Extra Length          0009 (9)\n-0440AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x440AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044107 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044109   Length              0005 (5)\n-04410B   Flags               01 (1) 'Modification'\n-04410C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-044110 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-044163 DATA DESCRIPTOR       08074B50 (134695760)\n-044167 CRC                   AE0B59B2 (2919979442)\n-04416B Compressed Size       00000053 (83)\n-04416F Uncompressed Size     00000053 (83)\n-\n-044173 LOCAL HEADER #77      04034B50 (67324752)\n-044177 Extract Zip Spec      14 (20) '2.0'\n-044178 Extract OS            00 (0) 'MS-DOS'\n-044179 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04417B Compression Method    0000 (0) 'Stored'\n-04417D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044181 CRC                   00000000 (0)\n-044185 Compressed Size       00000000 (0)\n-044189 Uncompressed Size     00000000 (0)\n-04418D Filename Length       0053 (83)\n-04418F Extra Length          0009 (9)\n-044191 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44191: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0441E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0441E6   Length              0005 (5)\n-0441E8   Flags               01 (1) 'Modification'\n-0441E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0441ED PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-04428F DATA DESCRIPTOR       08074B50 (134695760)\n-044293 CRC                   80BC13A6 (2159809446)\n-044297 Compressed Size       000000A2 (162)\n-04429B Uncompressed Size     000000A2 (162)\n-\n-04429F LOCAL HEADER #78      04034B50 (67324752)\n-0442A3 Extract Zip Spec      14 (20) '2.0'\n-0442A4 Extract OS            00 (0) 'MS-DOS'\n-0442A5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0442A7 Compression Method    0000 (0) 'Stored'\n-0442A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0442AD CRC                   00000000 (0)\n-0442B1 Compressed Size       00000000 (0)\n-0442B5 Uncompressed Size     00000000 (0)\n-0442B9 Filename Length       0049 (73)\n-0442BB Extra Length          0009 (9)\n-0442BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x442BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044306 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044308   Length              0005 (5)\n-04430A   Flags               01 (1) 'Modification'\n-04430B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04430F PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-044380 DATA DESCRIPTOR       08074B50 (134695760)\n-044384 CRC                   BA3A525C (3124384348)\n-044388 Compressed Size       00000071 (113)\n-04438C Uncompressed Size     00000071 (113)\n-\n-044390 LOCAL HEADER #79      04034B50 (67324752)\n-044394 Extract Zip Spec      14 (20) '2.0'\n-044395 Extract OS            00 (0) 'MS-DOS'\n-044396 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044398 Compression Method    0000 (0) 'Stored'\n-04439A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04439E CRC                   00000000 (0)\n-0443A2 Compressed Size       00000000 (0)\n-0443A6 Uncompressed Size     00000000 (0)\n-0443AA Filename Length       0059 (89)\n-0443AC Extra Length          0009 (9)\n-0443AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x443AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044409   Length              0005 (5)\n-04440B   Flags               01 (1) 'Modification'\n-04440C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-044410 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-04445D DATA DESCRIPTOR       08074B50 (134695760)\n-044461 CRC                   6F1FEDD0 (1864363472)\n-044465 Compressed Size       0000004D (77)\n-044469 Uncompressed Size     0000004D (77)\n-\n-04446D LOCAL HEADER #80      04034B50 (67324752)\n-044471 Extract Zip Spec      14 (20) '2.0'\n-044472 Extract OS            00 (0) 'MS-DOS'\n-044473 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044475 Compression Method    0000 (0) 'Stored'\n-044477 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04447B CRC                   00000000 (0)\n-04447F Compressed Size       00000000 (0)\n-044483 Uncompressed Size     00000000 (0)\n-044487 Filename Length       0059 (89)\n-044489 Extra Length          0009 (9)\n-04448B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4448B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0444E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0444E6   Length              0005 (5)\n-0444E8   Flags               01 (1) 'Modification'\n-0444E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0444ED PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-04453A DATA DESCRIPTOR       08074B50 (134695760)\n-04453E CRC                   6F1FEDD0 (1864363472)\n-044542 Compressed Size       0000004D (77)\n-044546 Uncompressed Size     0000004D (77)\n-\n-04454A LOCAL HEADER #81      04034B50 (67324752)\n-04454E Extract Zip Spec      14 (20) '2.0'\n-04454F Extract OS            00 (0) 'MS-DOS'\n-044550 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044552 Compression Method    0000 (0) 'Stored'\n-044554 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044558 CRC                   00000000 (0)\n-04455C Compressed Size       00000000 (0)\n-044560 Uncompressed Size     00000000 (0)\n-044564 Filename Length       004F (79)\n-044566 Extra Length          0009 (9)\n-044568 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44568: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0445B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0445B9   Length              0005 (5)\n-0445BB   Flags               01 (1) 'Modification'\n-0445BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0445C0 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+044819 DATA DESCRIPTOR       08074B50 (134695760)\n+04481D CRC                   B1A9D94F (2980698447)\n+044821 Compressed Size       000000AB (171)\n+044825 Uncompressed Size     000000AB (171)\n+\n+044829 LOCAL HEADER #73      04034B50 (67324752)\n+04482D Extract Zip Spec      14 (20) '2.0'\n+04482E Extract OS            00 (0) 'MS-DOS'\n+04482F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044831 Compression Method    0000 (0) 'Stored'\n+044833 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+044837 CRC                   00000000 (0)\n+04483B Compressed Size       00000000 (0)\n+04483F Uncompressed Size     00000000 (0)\n+044843 Filename Length       0040 (64)\n+044845 Extra Length          0009 (9)\n+044847 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44847: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+044887 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+044889   Length              0005 (5)\n+04488B   Flags               01 (1) 'Modification'\n+04488C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044890 PAYLOAD\n+\n+044A14 DATA DESCRIPTOR       08074B50 (134695760)\n+044A18 CRC                   388E9B78 (948870008)\n+044A1C Compressed Size       00000184 (388)\n+044A20 Uncompressed Size     00000184 (388)\n+\n+044A24 LOCAL HEADER #74      04034B50 (67324752)\n+044A28 Extract Zip Spec      14 (20) '2.0'\n+044A29 Extract OS            00 (0) 'MS-DOS'\n+044A2A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044A2C Compression Method    0000 (0) 'Stored'\n+044A2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+044A32 CRC                   00000000 (0)\n+044A36 Compressed Size       00000000 (0)\n+044A3A Uncompressed Size     00000000 (0)\n+044A3E Filename Length       003B (59)\n+044A40 Extra Length          0009 (9)\n+044A42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44A42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+044A7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+044A7F   Length              0005 (5)\n+044A81   Flags               01 (1) 'Modification'\n+044A82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044A86 PAYLOAD\n+\n+044CFE DATA DESCRIPTOR       08074B50 (134695760)\n+044D02 CRC                   6F4CF591 (1867314577)\n+044D06 Compressed Size       00000278 (632)\n+044D0A Uncompressed Size     00000278 (632)\n+\n+044D0E LOCAL HEADER #75      04034B50 (67324752)\n+044D12 Extract Zip Spec      14 (20) '2.0'\n+044D13 Extract OS            00 (0) 'MS-DOS'\n+044D14 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044D16 Compression Method    0000 (0) 'Stored'\n+044D18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+044D1C CRC                   00000000 (0)\n+044D20 Compressed Size       00000000 (0)\n+044D24 Uncompressed Size     00000000 (0)\n+044D28 Filename Length       0042 (66)\n+044D2A Extra Length          0009 (9)\n+044D2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44D2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+044D6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+044D70   Length              0005 (5)\n+044D72   Flags               01 (1) 'Modification'\n+044D73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044D77 PAYLOAD\n+\n+044F26 DATA DESCRIPTOR       08074B50 (134695760)\n+044F2A CRC                   4D30A945 (1295034693)\n+044F2E Compressed Size       000001AF (431)\n+044F32 Uncompressed Size     000001AF (431)\n+\n+044F36 LOCAL HEADER #76      04034B50 (67324752)\n+044F3A Extract Zip Spec      14 (20) '2.0'\n+044F3B Extract OS            00 (0) 'MS-DOS'\n+044F3C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+044F3E Compression Method    0000 (0) 'Stored'\n+044F40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+044F44 CRC                   00000000 (0)\n+044F48 Compressed Size       00000000 (0)\n+044F4C Uncompressed Size     00000000 (0)\n+044F50 Filename Length       0058 (88)\n+044F52 Extra Length          0009 (9)\n+044F54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44F54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+044FAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+044FAE   Length              0005 (5)\n+044FB0   Flags               01 (1) 'Modification'\n+044FB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+044FB5 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+045008 DATA DESCRIPTOR       08074B50 (134695760)\n+04500C CRC                   AE0B59B2 (2919979442)\n+045010 Compressed Size       00000053 (83)\n+045014 Uncompressed Size     00000053 (83)\n+\n+045018 LOCAL HEADER #77      04034B50 (67324752)\n+04501C Extract Zip Spec      14 (20) '2.0'\n+04501D Extract OS            00 (0) 'MS-DOS'\n+04501E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+045020 Compression Method    0000 (0) 'Stored'\n+045022 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045026 CRC                   00000000 (0)\n+04502A Compressed Size       00000000 (0)\n+04502E Uncompressed Size     00000000 (0)\n+045032 Filename Length       0053 (83)\n+045034 Extra Length          0009 (9)\n+045036 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45036: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+045089 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04508B   Length              0005 (5)\n+04508D   Flags               01 (1) 'Modification'\n+04508E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+045092 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+045135 DATA DESCRIPTOR       08074B50 (134695760)\n+045139 CRC                   7F3BA707 (2134615815)\n+04513D Compressed Size       000000A3 (163)\n+045141 Uncompressed Size     000000A3 (163)\n+\n+045145 LOCAL HEADER #78      04034B50 (67324752)\n+045149 Extract Zip Spec      14 (20) '2.0'\n+04514A Extract OS            00 (0) 'MS-DOS'\n+04514B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04514D Compression Method    0000 (0) 'Stored'\n+04514F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045153 CRC                   00000000 (0)\n+045157 Compressed Size       00000000 (0)\n+04515B Uncompressed Size     00000000 (0)\n+04515F Filename Length       0049 (73)\n+045161 Extra Length          0009 (9)\n+045163 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45163: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0451AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0451AE   Length              0005 (5)\n+0451B0   Flags               01 (1) 'Modification'\n+0451B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0451B5 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+045227 DATA DESCRIPTOR       08074B50 (134695760)\n+04522B CRC                   F822DEA4 (4163034788)\n+04522F Compressed Size       00000072 (114)\n+045233 Uncompressed Size     00000072 (114)\n+\n+045237 LOCAL HEADER #79      04034B50 (67324752)\n+04523B Extract Zip Spec      14 (20) '2.0'\n+04523C Extract OS            00 (0) 'MS-DOS'\n+04523D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04523F Compression Method    0000 (0) 'Stored'\n+045241 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045245 CRC                   00000000 (0)\n+045249 Compressed Size       00000000 (0)\n+04524D Uncompressed Size     00000000 (0)\n+045251 Filename Length       0059 (89)\n+045253 Extra Length          0009 (9)\n+045255 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45255: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0452AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0452B0   Length              0005 (5)\n+0452B2   Flags               01 (1) 'Modification'\n+0452B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0452B7 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+045304 DATA DESCRIPTOR       08074B50 (134695760)\n+045308 CRC                   6F1FEDD0 (1864363472)\n+04530C Compressed Size       0000004D (77)\n+045310 Uncompressed Size     0000004D (77)\n+\n+045314 LOCAL HEADER #80      04034B50 (67324752)\n+045318 Extract Zip Spec      14 (20) '2.0'\n+045319 Extract OS            00 (0) 'MS-DOS'\n+04531A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04531C Compression Method    0000 (0) 'Stored'\n+04531E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045322 CRC                   00000000 (0)\n+045326 Compressed Size       00000000 (0)\n+04532A Uncompressed Size     00000000 (0)\n+04532E Filename Length       0059 (89)\n+045330 Extra Length          0009 (9)\n+045332 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45332: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04538B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04538D   Length              0005 (5)\n+04538F   Flags               01 (1) 'Modification'\n+045390   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+045394 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0453E1 DATA DESCRIPTOR       08074B50 (134695760)\n+0453E5 CRC                   6F1FEDD0 (1864363472)\n+0453E9 Compressed Size       0000004D (77)\n+0453ED Uncompressed Size     0000004D (77)\n+\n+0453F1 LOCAL HEADER #81      04034B50 (67324752)\n+0453F5 Extract Zip Spec      14 (20) '2.0'\n+0453F6 Extract OS            00 (0) 'MS-DOS'\n+0453F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0453F9 Compression Method    0000 (0) 'Stored'\n+0453FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0453FF CRC                   00000000 (0)\n+045403 Compressed Size       00000000 (0)\n+045407 Uncompressed Size     00000000 (0)\n+04540B Filename Length       004F (79)\n+04540D Extra Length          0009 (9)\n+04540F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4540F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04545E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+045460   Length              0005 (5)\n+045462   Flags               01 (1) 'Modification'\n+045463   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+045467 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXX\n \n-044648 DATA DESCRIPTOR       08074B50 (134695760)\n-04464C CRC                   78C43CAA (2026126506)\n-044650 Compressed Size       00000088 (136)\n-044654 Uncompressed Size     00000088 (136)\n-\n-044658 LOCAL HEADER #82      04034B50 (67324752)\n-04465C Extract Zip Spec      14 (20) '2.0'\n-04465D Extract OS            00 (0) 'MS-DOS'\n-04465E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044660 Compression Method    0000 (0) 'Stored'\n-044662 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044666 CRC                   00000000 (0)\n-04466A Compressed Size       00000000 (0)\n-04466E Uncompressed Size     00000000 (0)\n-044672 Filename Length       003E (62)\n-044674 Extra Length          0009 (9)\n-044676 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44676: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0446B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0446B6   Length              0005 (5)\n-0446B8   Flags               01 (1) 'Modification'\n-0446B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0446BD PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n-\n-044705 DATA DESCRIPTOR       08074B50 (134695760)\n-044709 CRC                   2EA22547 (782378311)\n-04470D Compressed Size       00000048 (72)\n-044711 Uncompressed Size     00000048 (72)\n-\n-044715 LOCAL HEADER #83      04034B50 (67324752)\n-044719 Extract Zip Spec      14 (20) '2.0'\n-04471A Extract OS            00 (0) 'MS-DOS'\n-04471B General Purpose Flag  0000 (0)\n-04471D Compression Method    0000 (0) 'Stored'\n-04471F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044723 CRC                   00000000 (0)\n-044727 Compressed Size       00000000 (0)\n-04472B Uncompressed Size     00000000 (0)\n-04472F Filename Length       000F (15)\n-044731 Extra Length          0009 (9)\n-044733 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44733: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044742 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044744   Length              0005 (5)\n-044746   Flags               01 (1) 'Modification'\n-044747   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04474B LOCAL HEADER #84      04034B50 (67324752)\n-04474F Extract Zip Spec      14 (20) '2.0'\n-044750 Extract OS            00 (0) 'MS-DOS'\n-044751 General Purpose Flag  0000 (0)\n-044753 Compression Method    0000 (0) 'Stored'\n-044755 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044759 CRC                   00000000 (0)\n-04475D Compressed Size       00000000 (0)\n-044761 Uncompressed Size     00000000 (0)\n-044765 Filename Length       001B (27)\n-044767 Extra Length          0009 (9)\n-044769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044784 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044786   Length              0005 (5)\n-044788   Flags               01 (1) 'Modification'\n-044789   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04478D LOCAL HEADER #85      04034B50 (67324752)\n-044791 Extract Zip Spec      14 (20) '2.0'\n-044792 Extract OS            00 (0) 'MS-DOS'\n-044793 General Purpose Flag  0000 (0)\n-044795 Compression Method    0000 (0) 'Stored'\n-044797 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04479B CRC                   00000000 (0)\n-04479F Compressed Size       00000000 (0)\n-0447A3 Uncompressed Size     00000000 (0)\n-0447A7 Filename Length       0028 (40)\n-0447A9 Extra Length          0009 (9)\n-0447AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x447AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0447D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0447D5   Length              0005 (5)\n-0447D7   Flags               01 (1) 'Modification'\n-0447D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0447DC LOCAL HEADER #86      04034B50 (67324752)\n-0447E0 Extract Zip Spec      14 (20) '2.0'\n-0447E1 Extract OS            00 (0) 'MS-DOS'\n-0447E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0447E4 Compression Method    0000 (0) 'Stored'\n-0447E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0447EA CRC                   00000000 (0)\n-0447EE Compressed Size       00000000 (0)\n-0447F2 Uncompressed Size     00000000 (0)\n-0447F6 Filename Length       0036 (54)\n-0447F8 Extra Length          0009 (9)\n-0447FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x447FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044830 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044832   Length              0005 (5)\n-044834   Flags               01 (1) 'Modification'\n-044835   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-044839 DATA DESCRIPTOR       08074B50 (134695760)\n-04483D CRC                   00000000 (0)\n-044841 Compressed Size       00000000 (0)\n-044845 Uncompressed Size     00000000 (0)\n-\n-044849 LOCAL HEADER #87      04034B50 (67324752)\n-04484D Extract Zip Spec      14 (20) '2.0'\n-04484E Extract OS            00 (0) 'MS-DOS'\n-04484F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-044851 Compression Method    0000 (0) 'Stored'\n-044853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-044857 CRC                   00000000 (0)\n-04485B Compressed Size       00000000 (0)\n-04485F Uncompressed Size     00000000 (0)\n-044863 Filename Length       002F (47)\n-044865 Extra Length          0009 (9)\n-044867 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44867: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-044896 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-044898   Length              0005 (5)\n-04489A   Flags               01 (1) 'Modification'\n-04489B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04489F PAYLOAD\n-\n-046E78 DATA DESCRIPTOR       08074B50 (134695760)\n-046E7C CRC                   A18F9C9F (2710543519)\n-046E80 Compressed Size       000025D9 (9689)\n-046E84 Uncompressed Size     000025D9 (9689)\n-\n-046E88 LOCAL HEADER #88      04034B50 (67324752)\n-046E8C Extract Zip Spec      14 (20) '2.0'\n-046E8D Extract OS            00 (0) 'MS-DOS'\n-046E8E General Purpose Flag  0000 (0)\n-046E90 Compression Method    0000 (0) 'Stored'\n-046E92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-046E96 CRC                   00000000 (0)\n-046E9A Compressed Size       00000000 (0)\n-046E9E Uncompressed Size     00000000 (0)\n-046EA2 Filename Length       0020 (32)\n-046EA4 Extra Length          0009 (9)\n-046EA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46EA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-046EC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-046EC8   Length              0005 (5)\n-046ECA   Flags               01 (1) 'Modification'\n-046ECB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-046ECF LOCAL HEADER #89      04034B50 (67324752)\n-046ED3 Extract Zip Spec      14 (20) '2.0'\n-046ED4 Extract OS            00 (0) 'MS-DOS'\n-046ED5 General Purpose Flag  0000 (0)\n-046ED7 Compression Method    0000 (0) 'Stored'\n-046ED9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-046EDD CRC                   00000000 (0)\n-046EE1 Compressed Size       00000000 (0)\n-046EE5 Uncompressed Size     00000000 (0)\n-046EE9 Filename Length       002E (46)\n-046EEB Extra Length          0009 (9)\n-046EED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46EED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-046F1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-046F1D   Length              0005 (5)\n-046F1F   Flags               01 (1) 'Modification'\n-046F20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-046F24 LOCAL HEADER #90      04034B50 (67324752)\n-046F28 Extract Zip Spec      14 (20) '2.0'\n-046F29 Extract OS            00 (0) 'MS-DOS'\n-046F2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-046F2C Compression Method    0000 (0) 'Stored'\n-046F2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-046F32 CRC                   00000000 (0)\n-046F36 Compressed Size       00000000 (0)\n-046F3A Uncompressed Size     00000000 (0)\n-046F3E Filename Length       003C (60)\n-046F40 Extra Length          0009 (9)\n-046F42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46F42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-046F7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-046F80   Length              0005 (5)\n-046F82   Flags               01 (1) 'Modification'\n-046F83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-046F87 DATA DESCRIPTOR       08074B50 (134695760)\n-046F8B CRC                   00000000 (0)\n-046F8F Compressed Size       00000000 (0)\n-046F93 Uncompressed Size     00000000 (0)\n-\n-046F97 LOCAL HEADER #91      04034B50 (67324752)\n-046F9B Extract Zip Spec      14 (20) '2.0'\n-046F9C Extract OS            00 (0) 'MS-DOS'\n-046F9D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-046F9F Compression Method    0000 (0) 'Stored'\n-046FA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-046FA5 CRC                   00000000 (0)\n-046FA9 Compressed Size       00000000 (0)\n-046FAD Uncompressed Size     00000000 (0)\n-046FB1 Filename Length       0035 (53)\n-046FB3 Extra Length          0009 (9)\n-046FB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46FB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-046FEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-046FEC   Length              0005 (5)\n-046FEE   Flags               01 (1) 'Modification'\n-046FEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-046FF3 PAYLOAD\n-\n-047A2B DATA DESCRIPTOR       08074B50 (134695760)\n-047A2F CRC                   3E035C22 (1040407586)\n-047A33 Compressed Size       00000A38 (2616)\n-047A37 Uncompressed Size     00000A38 (2616)\n-\n-047A3B LOCAL HEADER #92      04034B50 (67324752)\n-047A3F Extract Zip Spec      14 (20) '2.0'\n-047A40 Extract OS            00 (0) 'MS-DOS'\n-047A41 General Purpose Flag  0000 (0)\n-047A43 Compression Method    0000 (0) 'Stored'\n-047A45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-047A49 CRC                   00000000 (0)\n-047A4D Compressed Size       00000000 (0)\n-047A51 Uncompressed Size     00000000 (0)\n-047A55 Filename Length       002D (45)\n-047A57 Extra Length          0009 (9)\n-047A59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47A59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-047A86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-047A88   Length              0005 (5)\n-047A8A   Flags               01 (1) 'Modification'\n-047A8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-047A8F LOCAL HEADER #93      04034B50 (67324752)\n-047A93 Extract Zip Spec      14 (20) '2.0'\n-047A94 Extract OS            00 (0) 'MS-DOS'\n-047A95 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-047A97 Compression Method    0000 (0) 'Stored'\n-047A99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-047A9D CRC                   00000000 (0)\n-047AA1 Compressed Size       00000000 (0)\n-047AA5 Uncompressed Size     00000000 (0)\n-047AA9 Filename Length       003B (59)\n-047AAB Extra Length          0009 (9)\n-047AAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47AAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-047AE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-047AEA   Length              0005 (5)\n-047AEC   Flags               01 (1) 'Modification'\n-047AED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-047AF1 DATA DESCRIPTOR       08074B50 (134695760)\n-047AF5 CRC                   00000000 (0)\n-047AF9 Compressed Size       00000000 (0)\n-047AFD Uncompressed Size     00000000 (0)\n-\n-047B01 LOCAL HEADER #94      04034B50 (67324752)\n-047B05 Extract Zip Spec      14 (20) '2.0'\n-047B06 Extract OS            00 (0) 'MS-DOS'\n-047B07 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-047B09 Compression Method    0000 (0) 'Stored'\n-047B0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-047B0F CRC                   00000000 (0)\n-047B13 Compressed Size       00000000 (0)\n-047B17 Uncompressed Size     00000000 (0)\n-047B1B Filename Length       0034 (52)\n-047B1D Extra Length          0009 (9)\n-047B1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47B1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-047B53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-047B55   Length              0005 (5)\n-047B57   Flags               01 (1) 'Modification'\n-047B58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-047B5C PAYLOAD\n-\n-0486FE DATA DESCRIPTOR       08074B50 (134695760)\n-048702 CRC                   4D73DC93 (1299438739)\n-048706 Compressed Size       00000BA2 (2978)\n-04870A Uncompressed Size     00000BA2 (2978)\n-\n-04870E LOCAL HEADER #95      04034B50 (67324752)\n-048712 Extract Zip Spec      14 (20) '2.0'\n-048713 Extract OS            00 (0) 'MS-DOS'\n-048714 General Purpose Flag  0000 (0)\n-048716 Compression Method    0000 (0) 'Stored'\n-048718 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04871C CRC                   00000000 (0)\n-048720 Compressed Size       00000000 (0)\n-048724 Uncompressed Size     00000000 (0)\n-048728 Filename Length       0031 (49)\n-04872A Extra Length          0009 (9)\n-04872C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4872C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04875D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04875F   Length              0005 (5)\n-048761   Flags               01 (1) 'Modification'\n-048762   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-048766 LOCAL HEADER #96      04034B50 (67324752)\n-04876A Extract Zip Spec      14 (20) '2.0'\n-04876B Extract OS            00 (0) 'MS-DOS'\n-04876C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04876E Compression Method    0000 (0) 'Stored'\n-048770 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-048774 CRC                   00000000 (0)\n-048778 Compressed Size       00000000 (0)\n-04877C Uncompressed Size     00000000 (0)\n-048780 Filename Length       003F (63)\n-048782 Extra Length          0009 (9)\n-048784 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x48784: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0487C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0487C5   Length              0005 (5)\n-0487C7   Flags               01 (1) 'Modification'\n-0487C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0487CC DATA DESCRIPTOR       08074B50 (134695760)\n-0487D0 CRC                   00000000 (0)\n-0487D4 Compressed Size       00000000 (0)\n-0487D8 Uncompressed Size     00000000 (0)\n-\n-0487DC LOCAL HEADER #97      04034B50 (67324752)\n-0487E0 Extract Zip Spec      14 (20) '2.0'\n-0487E1 Extract OS            00 (0) 'MS-DOS'\n-0487E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0487E4 Compression Method    0000 (0) 'Stored'\n-0487E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0487EA CRC                   00000000 (0)\n-0487EE Compressed Size       00000000 (0)\n-0487F2 Uncompressed Size     00000000 (0)\n-0487F6 Filename Length       0038 (56)\n-0487F8 Extra Length          0009 (9)\n-0487FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x487FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-048832 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-048834   Length              0005 (5)\n-048836   Flags               01 (1) 'Modification'\n-048837   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04883B PAYLOAD\n-\n-049975 DATA DESCRIPTOR       08074B50 (134695760)\n-049979 CRC                   417FF1D2 (1098904018)\n-04997D Compressed Size       0000113A (4410)\n-049981 Uncompressed Size     0000113A (4410)\n-\n-049985 LOCAL HEADER #98      04034B50 (67324752)\n-049989 Extract Zip Spec      14 (20) '2.0'\n-04998A Extract OS            00 (0) 'MS-DOS'\n-04998B General Purpose Flag  0000 (0)\n-04998D Compression Method    0000 (0) 'Stored'\n-04998F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-049993 CRC                   00000000 (0)\n-049997 Compressed Size       00000000 (0)\n-04999B Uncompressed Size     00000000 (0)\n-04999F Filename Length       0031 (49)\n-0499A1 Extra Length          0009 (9)\n-0499A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x499A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0499D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0499D6   Length              0005 (5)\n-0499D8   Flags               01 (1) 'Modification'\n-0499D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0499DD LOCAL HEADER #99      04034B50 (67324752)\n-0499E1 Extract Zip Spec      14 (20) '2.0'\n-0499E2 Extract OS            00 (0) 'MS-DOS'\n-0499E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0499E5 Compression Method    0000 (0) 'Stored'\n-0499E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0499EB CRC                   00000000 (0)\n-0499EF Compressed Size       00000000 (0)\n-0499F3 Uncompressed Size     00000000 (0)\n-0499F7 Filename Length       003F (63)\n-0499F9 Extra Length          0009 (9)\n-0499FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x499FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-049A3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-049A3C   Length              0005 (5)\n-049A3E   Flags               01 (1) 'Modification'\n-049A3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-049A43 DATA DESCRIPTOR       08074B50 (134695760)\n-049A47 CRC                   00000000 (0)\n-049A4B Compressed Size       00000000 (0)\n-049A4F Uncompressed Size     00000000 (0)\n-\n-049A53 LOCAL HEADER #100     04034B50 (67324752)\n-049A57 Extract Zip Spec      14 (20) '2.0'\n-049A58 Extract OS            00 (0) 'MS-DOS'\n-049A59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-049A5B Compression Method    0000 (0) 'Stored'\n-049A5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-049A61 CRC                   00000000 (0)\n-049A65 Compressed Size       00000000 (0)\n-049A69 Uncompressed Size     00000000 (0)\n-049A6D Filename Length       0038 (56)\n-049A6F Extra Length          0009 (9)\n-049A71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49A71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-049AA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-049AAB   Length              0005 (5)\n-049AAD   Flags               01 (1) 'Modification'\n-049AAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-049AB2 PAYLOAD\n-\n-04BA34 DATA DESCRIPTOR       08074B50 (134695760)\n-04BA38 CRC                   48945B27 (1217682215)\n-04BA3C Compressed Size       00001F82 (8066)\n-04BA40 Uncompressed Size     00001F82 (8066)\n-\n-04BA44 LOCAL HEADER #101     04034B50 (67324752)\n-04BA48 Extract Zip Spec      14 (20) '2.0'\n-04BA49 Extract OS            00 (0) 'MS-DOS'\n-04BA4A General Purpose Flag  0000 (0)\n-04BA4C Compression Method    0000 (0) 'Stored'\n-04BA4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04BA52 CRC                   00000000 (0)\n-04BA56 Compressed Size       00000000 (0)\n-04BA5A Uncompressed Size     00000000 (0)\n-04BA5E Filename Length       0034 (52)\n-04BA60 Extra Length          0009 (9)\n-04BA62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BA62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04BA96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04BA98   Length              0005 (5)\n-04BA9A   Flags               01 (1) 'Modification'\n-04BA9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04BA9F LOCAL HEADER #102     04034B50 (67324752)\n-04BAA3 Extract Zip Spec      14 (20) '2.0'\n-04BAA4 Extract OS            00 (0) 'MS-DOS'\n-04BAA5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04BAA7 Compression Method    0000 (0) 'Stored'\n-04BAA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04BAAD CRC                   00000000 (0)\n-04BAB1 Compressed Size       00000000 (0)\n-04BAB5 Uncompressed Size     00000000 (0)\n-04BAB9 Filename Length       0042 (66)\n-04BABB Extra Length          0009 (9)\n-04BABD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BABD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04BAFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04BB01   Length              0005 (5)\n-04BB03   Flags               01 (1) 'Modification'\n-04BB04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04BB08 DATA DESCRIPTOR       08074B50 (134695760)\n-04BB0C CRC                   00000000 (0)\n-04BB10 Compressed Size       00000000 (0)\n-04BB14 Uncompressed Size     00000000 (0)\n-\n-04BB18 LOCAL HEADER #103     04034B50 (67324752)\n-04BB1C Extract Zip Spec      14 (20) '2.0'\n-04BB1D Extract OS            00 (0) 'MS-DOS'\n-04BB1E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04BB20 Compression Method    0000 (0) 'Stored'\n-04BB22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04BB26 CRC                   00000000 (0)\n-04BB2A Compressed Size       00000000 (0)\n-04BB2E Uncompressed Size     00000000 (0)\n-04BB32 Filename Length       003B (59)\n-04BB34 Extra Length          0009 (9)\n-04BB36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BB36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04BB71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04BB73   Length              0005 (5)\n-04BB75   Flags               01 (1) 'Modification'\n-04BB76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04BB7A PAYLOAD\n-\n-04D488 DATA DESCRIPTOR       08074B50 (134695760)\n-04D48C CRC                   FF3886BE (4281894590)\n-04D490 Compressed Size       0000190E (6414)\n-04D494 Uncompressed Size     0000190E (6414)\n-\n-04D498 LOCAL HEADER #104     04034B50 (67324752)\n-04D49C Extract Zip Spec      14 (20) '2.0'\n-04D49D Extract OS            00 (0) 'MS-DOS'\n-04D49E General Purpose Flag  0000 (0)\n-04D4A0 Compression Method    0000 (0) 'Stored'\n-04D4A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04D4A6 CRC                   00000000 (0)\n-04D4AA Compressed Size       00000000 (0)\n-04D4AE Uncompressed Size     00000000 (0)\n-04D4B2 Filename Length       003A (58)\n-04D4B4 Extra Length          0009 (9)\n-04D4B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D4B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04D4F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04D4F2   Length              0005 (5)\n-04D4F4   Flags               01 (1) 'Modification'\n-04D4F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04D4F9 LOCAL HEADER #105     04034B50 (67324752)\n-04D4FD Extract Zip Spec      14 (20) '2.0'\n-04D4FE Extract OS            00 (0) 'MS-DOS'\n-04D4FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04D501 Compression Method    0000 (0) 'Stored'\n-04D503 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04D507 CRC                   00000000 (0)\n-04D50B Compressed Size       00000000 (0)\n-04D50F Uncompressed Size     00000000 (0)\n-04D513 Filename Length       0048 (72)\n-04D515 Extra Length          0009 (9)\n-04D517 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D517: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04D55F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04D561   Length              0005 (5)\n-04D563   Flags               01 (1) 'Modification'\n-04D564   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04D568 DATA DESCRIPTOR       08074B50 (134695760)\n-04D56C CRC                   00000000 (0)\n-04D570 Compressed Size       00000000 (0)\n-04D574 Uncompressed Size     00000000 (0)\n-\n-04D578 LOCAL HEADER #106     04034B50 (67324752)\n-04D57C Extract Zip Spec      14 (20) '2.0'\n-04D57D Extract OS            00 (0) 'MS-DOS'\n-04D57E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04D580 Compression Method    0000 (0) 'Stored'\n-04D582 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04D586 CRC                   00000000 (0)\n-04D58A Compressed Size       00000000 (0)\n-04D58E Uncompressed Size     00000000 (0)\n-04D592 Filename Length       0041 (65)\n-04D594 Extra Length          0009 (9)\n-04D596 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D596: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04D5D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04D5D9   Length              0005 (5)\n-04D5DB   Flags               01 (1) 'Modification'\n-04D5DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04D5E0 PAYLOAD\n-\n-04DF5C DATA DESCRIPTOR       08074B50 (134695760)\n-04DF60 CRC                   7376C130 (1937162544)\n-04DF64 Compressed Size       0000097C (2428)\n-04DF68 Uncompressed Size     0000097C (2428)\n-\n-04DF6C LOCAL HEADER #107     04034B50 (67324752)\n-04DF70 Extract Zip Spec      14 (20) '2.0'\n-04DF71 Extract OS            00 (0) 'MS-DOS'\n-04DF72 General Purpose Flag  0000 (0)\n-04DF74 Compression Method    0000 (0) 'Stored'\n-04DF76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04DF7A CRC                   00000000 (0)\n-04DF7E Compressed Size       00000000 (0)\n-04DF82 Uncompressed Size     00000000 (0)\n-04DF86 Filename Length       003A (58)\n-04DF88 Extra Length          0009 (9)\n-04DF8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4DF8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04DFC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04DFC6   Length              0005 (5)\n-04DFC8   Flags               01 (1) 'Modification'\n-04DFC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04DFCD LOCAL HEADER #108     04034B50 (67324752)\n-04DFD1 Extract Zip Spec      14 (20) '2.0'\n-04DFD2 Extract OS            00 (0) 'MS-DOS'\n-04DFD3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04DFD5 Compression Method    0000 (0) 'Stored'\n-04DFD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04DFDB CRC                   00000000 (0)\n-04DFDF Compressed Size       00000000 (0)\n-04DFE3 Uncompressed Size     00000000 (0)\n-04DFE7 Filename Length       0048 (72)\n-04DFE9 Extra Length          0009 (9)\n-04DFEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4DFEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E035   Length              0005 (5)\n-04E037   Flags               01 (1) 'Modification'\n-04E038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04E03C DATA DESCRIPTOR       08074B50 (134695760)\n-04E040 CRC                   00000000 (0)\n-04E044 Compressed Size       00000000 (0)\n-04E048 Uncompressed Size     00000000 (0)\n-\n-04E04C LOCAL HEADER #109     04034B50 (67324752)\n-04E050 Extract Zip Spec      14 (20) '2.0'\n-04E051 Extract OS            00 (0) 'MS-DOS'\n-04E052 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04E054 Compression Method    0000 (0) 'Stored'\n-04E056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E05A CRC                   00000000 (0)\n-04E05E Compressed Size       00000000 (0)\n-04E062 Uncompressed Size     00000000 (0)\n-04E066 Filename Length       0041 (65)\n-04E068 Extra Length          0009 (9)\n-04E06A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E06A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E0AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E0AD   Length              0005 (5)\n-04E0AF   Flags               01 (1) 'Modification'\n-04E0B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04E0B4 PAYLOAD\n-\n-04E8DD DATA DESCRIPTOR       08074B50 (134695760)\n-04E8E1 CRC                   4BC00B23 (1270876963)\n-04E8E5 Compressed Size       00000829 (2089)\n-04E8E9 Uncompressed Size     00000829 (2089)\n-\n-04E8ED LOCAL HEADER #110     04034B50 (67324752)\n-04E8F1 Extract Zip Spec      14 (20) '2.0'\n-04E8F2 Extract OS            00 (0) 'MS-DOS'\n-04E8F3 General Purpose Flag  0000 (0)\n-04E8F5 Compression Method    0000 (0) 'Stored'\n-04E8F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E8FB CRC                   00000000 (0)\n-04E8FF Compressed Size       00000000 (0)\n-04E903 Uncompressed Size     00000000 (0)\n-04E907 Filename Length       0038 (56)\n-04E909 Extra Length          0009 (9)\n-04E90B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E90B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E943 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E945   Length              0005 (5)\n-04E947   Flags               01 (1) 'Modification'\n-04E948   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04E94C LOCAL HEADER #111     04034B50 (67324752)\n-04E950 Extract Zip Spec      14 (20) '2.0'\n-04E951 Extract OS            00 (0) 'MS-DOS'\n-04E952 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04E954 Compression Method    0000 (0) 'Stored'\n-04E956 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E95A CRC                   00000000 (0)\n-04E95E Compressed Size       00000000 (0)\n-04E962 Uncompressed Size     00000000 (0)\n-04E966 Filename Length       0046 (70)\n-04E968 Extra Length          0009 (9)\n-04E96A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E96A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04E9B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04E9B2   Length              0005 (5)\n-04E9B4   Flags               01 (1) 'Modification'\n-04E9B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04E9B9 DATA DESCRIPTOR       08074B50 (134695760)\n-04E9BD CRC                   00000000 (0)\n-04E9C1 Compressed Size       00000000 (0)\n-04E9C5 Uncompressed Size     00000000 (0)\n-\n-04E9C9 LOCAL HEADER #112     04034B50 (67324752)\n-04E9CD Extract Zip Spec      14 (20) '2.0'\n-04E9CE Extract OS            00 (0) 'MS-DOS'\n-04E9CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04E9D1 Compression Method    0000 (0) 'Stored'\n-04E9D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04E9D7 CRC                   00000000 (0)\n-04E9DB Compressed Size       00000000 (0)\n-04E9DF Uncompressed Size     00000000 (0)\n-04E9E3 Filename Length       003F (63)\n-04E9E5 Extra Length          0009 (9)\n-04E9E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E9E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04EA26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04EA28   Length              0005 (5)\n-04EA2A   Flags               01 (1) 'Modification'\n-04EA2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04EA2F PAYLOAD\n-\n-04F502 DATA DESCRIPTOR       08074B50 (134695760)\n-04F506 CRC                   FB57BB2D (4216830765)\n-04F50A Compressed Size       00000AD3 (2771)\n-04F50E Uncompressed Size     00000AD3 (2771)\n-\n-04F512 LOCAL HEADER #113     04034B50 (67324752)\n-04F516 Extract Zip Spec      14 (20) '2.0'\n-04F517 Extract OS            00 (0) 'MS-DOS'\n-04F518 General Purpose Flag  0000 (0)\n-04F51A Compression Method    0000 (0) 'Stored'\n-04F51C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04F520 CRC                   00000000 (0)\n-04F524 Compressed Size       00000000 (0)\n-04F528 Uncompressed Size     00000000 (0)\n-04F52C Filename Length       0039 (57)\n-04F52E Extra Length          0009 (9)\n-04F530 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F530: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04F569 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04F56B   Length              0005 (5)\n-04F56D   Flags               01 (1) 'Modification'\n-04F56E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04F572 LOCAL HEADER #114     04034B50 (67324752)\n-04F576 Extract Zip Spec      14 (20) '2.0'\n-04F577 Extract OS            00 (0) 'MS-DOS'\n-04F578 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04F57A Compression Method    0000 (0) 'Stored'\n-04F57C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04F580 CRC                   00000000 (0)\n-04F584 Compressed Size       00000000 (0)\n-04F588 Uncompressed Size     00000000 (0)\n-04F58C Filename Length       0047 (71)\n-04F58E Extra Length          0009 (9)\n-04F590 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F590: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04F5D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04F5D9   Length              0005 (5)\n-04F5DB   Flags               01 (1) 'Modification'\n-04F5DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04F5E0 DATA DESCRIPTOR       08074B50 (134695760)\n-04F5E4 CRC                   00000000 (0)\n-04F5E8 Compressed Size       00000000 (0)\n-04F5EC Uncompressed Size     00000000 (0)\n-\n-04F5F0 LOCAL HEADER #115     04034B50 (67324752)\n-04F5F4 Extract Zip Spec      14 (20) '2.0'\n-04F5F5 Extract OS            00 (0) 'MS-DOS'\n-04F5F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04F5F8 Compression Method    0000 (0) 'Stored'\n-04F5FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04F5FE CRC                   00000000 (0)\n-04F602 Compressed Size       00000000 (0)\n-04F606 Uncompressed Size     00000000 (0)\n-04F60A Filename Length       0040 (64)\n-04F60C Extra Length          0009 (9)\n-04F60E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F60E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04F64E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04F650   Length              0005 (5)\n-04F652   Flags               01 (1) 'Modification'\n-04F653   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04F657 PAYLOAD\n-\n-04FE70 DATA DESCRIPTOR       08074B50 (134695760)\n-04FE74 CRC                   CFD7D535 (3487028533)\n-04FE78 Compressed Size       00000819 (2073)\n-04FE7C Uncompressed Size     00000819 (2073)\n-\n-04FE80 LOCAL HEADER #116     04034B50 (67324752)\n-04FE84 Extract Zip Spec      14 (20) '2.0'\n-04FE85 Extract OS            00 (0) 'MS-DOS'\n-04FE86 General Purpose Flag  0000 (0)\n-04FE88 Compression Method    0000 (0) 'Stored'\n-04FE8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04FE8E CRC                   00000000 (0)\n-04FE92 Compressed Size       00000000 (0)\n-04FE96 Uncompressed Size     00000000 (0)\n-04FE9A Filename Length       003D (61)\n-04FE9C Extra Length          0009 (9)\n-04FE9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4FE9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04FEDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04FEDD   Length              0005 (5)\n-04FEDF   Flags               01 (1) 'Modification'\n-04FEE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04FEE4 LOCAL HEADER #117     04034B50 (67324752)\n-04FEE8 Extract Zip Spec      14 (20) '2.0'\n-04FEE9 Extract OS            00 (0) 'MS-DOS'\n-04FEEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04FEEC Compression Method    0000 (0) 'Stored'\n-04FEEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04FEF2 CRC                   00000000 (0)\n-04FEF6 Compressed Size       00000000 (0)\n-04FEFA Uncompressed Size     00000000 (0)\n-04FEFE Filename Length       004B (75)\n-04FF00 Extra Length          0009 (9)\n-04FF02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4FF02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04FF4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04FF4F   Length              0005 (5)\n-04FF51   Flags               01 (1) 'Modification'\n-04FF52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-04FF56 DATA DESCRIPTOR       08074B50 (134695760)\n-04FF5A CRC                   00000000 (0)\n-04FF5E Compressed Size       00000000 (0)\n-04FF62 Uncompressed Size     00000000 (0)\n-\n-04FF66 LOCAL HEADER #118     04034B50 (67324752)\n-04FF6A Extract Zip Spec      14 (20) '2.0'\n-04FF6B Extract OS            00 (0) 'MS-DOS'\n-04FF6C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-04FF6E Compression Method    0000 (0) 'Stored'\n-04FF70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-04FF74 CRC                   00000000 (0)\n-04FF78 Compressed Size       00000000 (0)\n-04FF7C Uncompressed Size     00000000 (0)\n-04FF80 Filename Length       0044 (68)\n-04FF82 Extra Length          0009 (9)\n-04FF84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4FF84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-04FFC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-04FFCA   Length              0005 (5)\n-04FFCC   Flags               01 (1) 'Modification'\n-04FFCD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-04FFD1 PAYLOAD\n-\n-0508AD DATA DESCRIPTOR       08074B50 (134695760)\n-0508B1 CRC                   B8E7C6BA (3102197434)\n-0508B5 Compressed Size       000008DC (2268)\n-0508B9 Uncompressed Size     000008DC (2268)\n-\n-0508BD LOCAL HEADER #119     04034B50 (67324752)\n-0508C1 Extract Zip Spec      14 (20) '2.0'\n-0508C2 Extract OS            00 (0) 'MS-DOS'\n-0508C3 General Purpose Flag  0000 (0)\n-0508C5 Compression Method    0000 (0) 'Stored'\n-0508C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0508CB CRC                   00000000 (0)\n-0508CF Compressed Size       00000000 (0)\n-0508D3 Uncompressed Size     00000000 (0)\n-0508D7 Filename Length       0034 (52)\n-0508D9 Extra Length          0009 (9)\n-0508DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x508DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05090F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-050911   Length              0005 (5)\n-050913   Flags               01 (1) 'Modification'\n-050914   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-050918 LOCAL HEADER #120     04034B50 (67324752)\n-05091C Extract Zip Spec      14 (20) '2.0'\n-05091D Extract OS            00 (0) 'MS-DOS'\n-05091E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-050920 Compression Method    0000 (0) 'Stored'\n-050922 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-050926 CRC                   00000000 (0)\n-05092A Compressed Size       00000000 (0)\n-05092E Uncompressed Size     00000000 (0)\n-050932 Filename Length       0042 (66)\n-050934 Extra Length          0009 (9)\n-050936 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50936: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-050978 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05097A   Length              0005 (5)\n-05097C   Flags               01 (1) 'Modification'\n-05097D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-050981 DATA DESCRIPTOR       08074B50 (134695760)\n-050985 CRC                   00000000 (0)\n-050989 Compressed Size       00000000 (0)\n-05098D Uncompressed Size     00000000 (0)\n-\n-050991 LOCAL HEADER #121     04034B50 (67324752)\n-050995 Extract Zip Spec      14 (20) '2.0'\n-050996 Extract OS            00 (0) 'MS-DOS'\n-050997 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-050999 Compression Method    0000 (0) 'Stored'\n-05099B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05099F CRC                   00000000 (0)\n-0509A3 Compressed Size       00000000 (0)\n-0509A7 Uncompressed Size     00000000 (0)\n-0509AB Filename Length       003B (59)\n-0509AD Extra Length          0009 (9)\n-0509AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x509AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0509EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0509EC   Length              0005 (5)\n-0509EE   Flags               01 (1) 'Modification'\n-0509EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0509F3 PAYLOAD\n-\n-051349 DATA DESCRIPTOR       08074B50 (134695760)\n-05134D CRC                   7212D526 (1913836838)\n-051351 Compressed Size       00000956 (2390)\n-051355 Uncompressed Size     00000956 (2390)\n-\n-051359 LOCAL HEADER #122     04034B50 (67324752)\n-05135D Extract Zip Spec      14 (20) '2.0'\n-05135E Extract OS            00 (0) 'MS-DOS'\n-05135F General Purpose Flag  0000 (0)\n-051361 Compression Method    0000 (0) 'Stored'\n-051363 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-051367 CRC                   00000000 (0)\n-05136B Compressed Size       00000000 (0)\n-05136F Uncompressed Size     00000000 (0)\n-051373 Filename Length       0036 (54)\n-051375 Extra Length          0009 (9)\n-051377 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51377: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0513AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0513AF   Length              0005 (5)\n-0513B1   Flags               01 (1) 'Modification'\n-0513B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0513B6 LOCAL HEADER #123     04034B50 (67324752)\n-0513BA Extract Zip Spec      14 (20) '2.0'\n-0513BB Extract OS            00 (0) 'MS-DOS'\n-0513BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0513BE Compression Method    0000 (0) 'Stored'\n-0513C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0513C4 CRC                   00000000 (0)\n-0513C8 Compressed Size       00000000 (0)\n-0513CC Uncompressed Size     00000000 (0)\n-0513D0 Filename Length       0044 (68)\n-0513D2 Extra Length          0009 (9)\n-0513D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x513D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-051418 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05141A   Length              0005 (5)\n-05141C   Flags               01 (1) 'Modification'\n-05141D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-051421 DATA DESCRIPTOR       08074B50 (134695760)\n-051425 CRC                   00000000 (0)\n-051429 Compressed Size       00000000 (0)\n-05142D Uncompressed Size     00000000 (0)\n-\n-051431 LOCAL HEADER #124     04034B50 (67324752)\n-051435 Extract Zip Spec      14 (20) '2.0'\n-051436 Extract OS            00 (0) 'MS-DOS'\n-051437 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-051439 Compression Method    0000 (0) 'Stored'\n-05143B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05143F CRC                   00000000 (0)\n-051443 Compressed Size       00000000 (0)\n-051447 Uncompressed Size     00000000 (0)\n-05144B Filename Length       003D (61)\n-05144D Extra Length          0009 (9)\n-05144F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5144F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05148C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05148E   Length              0005 (5)\n-051490   Flags               01 (1) 'Modification'\n-051491   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-051495 PAYLOAD\n-\n-051C60 DATA DESCRIPTOR       08074B50 (134695760)\n-051C64 CRC                   F4C8F642 (4106810946)\n-051C68 Compressed Size       000007CB (1995)\n-051C6C Uncompressed Size     000007CB (1995)\n-\n-051C70 LOCAL HEADER #125     04034B50 (67324752)\n-051C74 Extract Zip Spec      14 (20) '2.0'\n-051C75 Extract OS            00 (0) 'MS-DOS'\n-051C76 General Purpose Flag  0000 (0)\n-051C78 Compression Method    0000 (0) 'Stored'\n-051C7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-051C7E CRC                   00000000 (0)\n-051C82 Compressed Size       00000000 (0)\n-051C86 Uncompressed Size     00000000 (0)\n-051C8A Filename Length       0038 (56)\n-051C8C Extra Length          0009 (9)\n-051C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-051CC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-051CC8   Length              0005 (5)\n-051CCA   Flags               01 (1) 'Modification'\n-051CCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-051CCF LOCAL HEADER #126     04034B50 (67324752)\n-051CD3 Extract Zip Spec      14 (20) '2.0'\n-051CD4 Extract OS            00 (0) 'MS-DOS'\n-051CD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-051CD7 Compression Method    0000 (0) 'Stored'\n-051CD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-051CDD CRC                   00000000 (0)\n-051CE1 Compressed Size       00000000 (0)\n-051CE5 Uncompressed Size     00000000 (0)\n-051CE9 Filename Length       0046 (70)\n-051CEB Extra Length          0009 (9)\n-051CED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51CED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-051D33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-051D35   Length              0005 (5)\n-051D37   Flags               01 (1) 'Modification'\n-051D38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-051D3C DATA DESCRIPTOR       08074B50 (134695760)\n-051D40 CRC                   00000000 (0)\n-051D44 Compressed Size       00000000 (0)\n-051D48 Uncompressed Size     00000000 (0)\n-\n-051D4C LOCAL HEADER #127     04034B50 (67324752)\n-051D50 Extract Zip Spec      14 (20) '2.0'\n-051D51 Extract OS            00 (0) 'MS-DOS'\n-051D52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-051D54 Compression Method    0000 (0) 'Stored'\n-051D56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-051D5A CRC                   00000000 (0)\n-051D5E Compressed Size       00000000 (0)\n-051D62 Uncompressed Size     00000000 (0)\n-051D66 Filename Length       003F (63)\n-051D68 Extra Length          0009 (9)\n-051D6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51D6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-051DA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-051DAB   Length              0005 (5)\n-051DAD   Flags               01 (1) 'Modification'\n-051DAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-051DB2 PAYLOAD\n-\n-0525FF DATA DESCRIPTOR       08074B50 (134695760)\n-052603 CRC                   A6C9E837 (2798250039)\n-052607 Compressed Size       0000084D (2125)\n-05260B Uncompressed Size     0000084D (2125)\n-\n-05260F LOCAL HEADER #128     04034B50 (67324752)\n-052613 Extract Zip Spec      14 (20) '2.0'\n-052614 Extract OS            00 (0) 'MS-DOS'\n-052615 General Purpose Flag  0000 (0)\n-052617 Compression Method    0000 (0) 'Stored'\n-052619 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05261D CRC                   00000000 (0)\n-052621 Compressed Size       00000000 (0)\n-052625 Uncompressed Size     00000000 (0)\n-052629 Filename Length       0037 (55)\n-05262B Extra Length          0009 (9)\n-05262D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5262D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-052664 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-052666   Length              0005 (5)\n-052668   Flags               01 (1) 'Modification'\n-052669   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05266D LOCAL HEADER #129     04034B50 (67324752)\n-052671 Extract Zip Spec      14 (20) '2.0'\n-052672 Extract OS            00 (0) 'MS-DOS'\n-052673 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-052675 Compression Method    0000 (0) 'Stored'\n-052677 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05267B CRC                   00000000 (0)\n-05267F Compressed Size       00000000 (0)\n-052683 Uncompressed Size     00000000 (0)\n-052687 Filename Length       0045 (69)\n-052689 Extra Length          0009 (9)\n-05268B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5268B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0526D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0526D2   Length              0005 (5)\n-0526D4   Flags               01 (1) 'Modification'\n-0526D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0526D9 DATA DESCRIPTOR       08074B50 (134695760)\n-0526DD CRC                   00000000 (0)\n-0526E1 Compressed Size       00000000 (0)\n-0526E5 Uncompressed Size     00000000 (0)\n-\n-0526E9 LOCAL HEADER #130     04034B50 (67324752)\n-0526ED Extract Zip Spec      14 (20) '2.0'\n-0526EE Extract OS            00 (0) 'MS-DOS'\n-0526EF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0526F1 Compression Method    0000 (0) 'Stored'\n-0526F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0526F7 CRC                   00000000 (0)\n-0526FB Compressed Size       00000000 (0)\n-0526FF Uncompressed Size     00000000 (0)\n-052703 Filename Length       003E (62)\n-052705 Extra Length          0009 (9)\n-052707 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52707: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-052745 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-052747   Length              0005 (5)\n-052749   Flags               01 (1) 'Modification'\n-05274A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05274E PAYLOAD\n-\n-052F9D DATA DESCRIPTOR       08074B50 (134695760)\n-052FA1 CRC                   E0484CF4 (3762834676)\n-052FA5 Compressed Size       0000084F (2127)\n-052FA9 Uncompressed Size     0000084F (2127)\n-\n-052FAD LOCAL HEADER #131     04034B50 (67324752)\n-052FB1 Extract Zip Spec      14 (20) '2.0'\n-052FB2 Extract OS            00 (0) 'MS-DOS'\n-052FB3 General Purpose Flag  0000 (0)\n-052FB5 Compression Method    0000 (0) 'Stored'\n-052FB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-052FBB CRC                   00000000 (0)\n-052FBF Compressed Size       00000000 (0)\n-052FC3 Uncompressed Size     00000000 (0)\n-052FC7 Filename Length       0033 (51)\n-052FC9 Extra Length          0009 (9)\n-052FCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52FCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-052FFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-053000   Length              0005 (5)\n-053002   Flags               01 (1) 'Modification'\n-053003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-053007 LOCAL HEADER #132     04034B50 (67324752)\n-05300B Extract Zip Spec      14 (20) '2.0'\n-05300C Extract OS            00 (0) 'MS-DOS'\n-05300D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05300F Compression Method    0000 (0) 'Stored'\n-053011 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-053015 CRC                   00000000 (0)\n-053019 Compressed Size       00000000 (0)\n-05301D Uncompressed Size     00000000 (0)\n-053021 Filename Length       0041 (65)\n-053023 Extra Length          0009 (9)\n-053025 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53025: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-053066 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-053068   Length              0005 (5)\n-05306A   Flags               01 (1) 'Modification'\n-05306B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05306F DATA DESCRIPTOR       08074B50 (134695760)\n-053073 CRC                   00000000 (0)\n-053077 Compressed Size       00000000 (0)\n-05307B Uncompressed Size     00000000 (0)\n-\n-05307F LOCAL HEADER #133     04034B50 (67324752)\n-053083 Extract Zip Spec      14 (20) '2.0'\n-053084 Extract OS            00 (0) 'MS-DOS'\n-053085 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-053087 Compression Method    0000 (0) 'Stored'\n-053089 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05308D CRC                   00000000 (0)\n-053091 Compressed Size       00000000 (0)\n-053095 Uncompressed Size     00000000 (0)\n-053099 Filename Length       003A (58)\n-05309B Extra Length          0009 (9)\n-05309D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5309D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0530D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0530D9   Length              0005 (5)\n-0530DB   Flags               01 (1) 'Modification'\n-0530DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0530E0 PAYLOAD\n-\n-0539CB DATA DESCRIPTOR       08074B50 (134695760)\n-0539CF CRC                   B1327293 (2972873363)\n-0539D3 Compressed Size       000008EB (2283)\n-0539D7 Uncompressed Size     000008EB (2283)\n-\n-0539DB LOCAL HEADER #134     04034B50 (67324752)\n-0539DF Extract Zip Spec      14 (20) '2.0'\n-0539E0 Extract OS            00 (0) 'MS-DOS'\n-0539E1 General Purpose Flag  0000 (0)\n-0539E3 Compression Method    0000 (0) 'Stored'\n-0539E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0539E9 CRC                   00000000 (0)\n-0539ED Compressed Size       00000000 (0)\n-0539F1 Uncompressed Size     00000000 (0)\n-0539F5 Filename Length       0038 (56)\n-0539F7 Extra Length          0009 (9)\n-0539F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x539F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-053A31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-053A33   Length              0005 (5)\n-053A35   Flags               01 (1) 'Modification'\n-053A36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-053A3A LOCAL HEADER #135     04034B50 (67324752)\n-053A3E Extract Zip Spec      14 (20) '2.0'\n-053A3F Extract OS            00 (0) 'MS-DOS'\n-053A40 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-053A42 Compression Method    0000 (0) 'Stored'\n-053A44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-053A48 CRC                   00000000 (0)\n-053A4C Compressed Size       00000000 (0)\n-053A50 Uncompressed Size     00000000 (0)\n-053A54 Filename Length       0046 (70)\n-053A56 Extra Length          0009 (9)\n-053A58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53A58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-053A9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-053AA0   Length              0005 (5)\n-053AA2   Flags               01 (1) 'Modification'\n-053AA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-053AA7 DATA DESCRIPTOR       08074B50 (134695760)\n-053AAB CRC                   00000000 (0)\n-053AAF Compressed Size       00000000 (0)\n-053AB3 Uncompressed Size     00000000 (0)\n-\n-053AB7 LOCAL HEADER #136     04034B50 (67324752)\n-053ABB Extract Zip Spec      14 (20) '2.0'\n-053ABC Extract OS            00 (0) 'MS-DOS'\n-053ABD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-053ABF Compression Method    0000 (0) 'Stored'\n-053AC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-053AC5 CRC                   00000000 (0)\n-053AC9 Compressed Size       00000000 (0)\n-053ACD Uncompressed Size     00000000 (0)\n-053AD1 Filename Length       003F (63)\n-053AD3 Extra Length          0009 (9)\n-053AD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53AD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-053B14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-053B16   Length              0005 (5)\n-053B18   Flags               01 (1) 'Modification'\n-053B19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-053B1D PAYLOAD\n-\n-054732 DATA DESCRIPTOR       08074B50 (134695760)\n-054736 CRC                   C4977D68 (3298262376)\n-05473A Compressed Size       00000C15 (3093)\n-05473E Uncompressed Size     00000C15 (3093)\n-\n-054742 LOCAL HEADER #137     04034B50 (67324752)\n-054746 Extract Zip Spec      14 (20) '2.0'\n-054747 Extract OS            00 (0) 'MS-DOS'\n-054748 General Purpose Flag  0000 (0)\n-05474A Compression Method    0000 (0) 'Stored'\n-05474C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-054750 CRC                   00000000 (0)\n-054754 Compressed Size       00000000 (0)\n-054758 Uncompressed Size     00000000 (0)\n-05475C Filename Length       0033 (51)\n-05475E Extra Length          0009 (9)\n-054760 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54760: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-054793 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-054795   Length              0005 (5)\n-054797   Flags               01 (1) 'Modification'\n-054798   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05479C LOCAL HEADER #138     04034B50 (67324752)\n-0547A0 Extract Zip Spec      14 (20) '2.0'\n-0547A1 Extract OS            00 (0) 'MS-DOS'\n-0547A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0547A4 Compression Method    0000 (0) 'Stored'\n-0547A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0547AA CRC                   00000000 (0)\n-0547AE Compressed Size       00000000 (0)\n-0547B2 Uncompressed Size     00000000 (0)\n-0547B6 Filename Length       0041 (65)\n-0547B8 Extra Length          0009 (9)\n-0547BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x547BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0547FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0547FD   Length              0005 (5)\n-0547FF   Flags               01 (1) 'Modification'\n-054800   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-054804 DATA DESCRIPTOR       08074B50 (134695760)\n-054808 CRC                   00000000 (0)\n-05480C Compressed Size       00000000 (0)\n-054810 Uncompressed Size     00000000 (0)\n-\n-054814 LOCAL HEADER #139     04034B50 (67324752)\n-054818 Extract Zip Spec      14 (20) '2.0'\n-054819 Extract OS            00 (0) 'MS-DOS'\n-05481A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05481C Compression Method    0000 (0) 'Stored'\n-05481E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-054822 CRC                   00000000 (0)\n-054826 Compressed Size       00000000 (0)\n-05482A Uncompressed Size     00000000 (0)\n-05482E Filename Length       003A (58)\n-054830 Extra Length          0009 (9)\n-054832 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54832: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05486C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05486E   Length              0005 (5)\n-054870   Flags               01 (1) 'Modification'\n-054871   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-054875 PAYLOAD\n-\n-055467 DATA DESCRIPTOR       08074B50 (134695760)\n-05546B CRC                   364739E6 (910637542)\n-05546F Compressed Size       00000BF2 (3058)\n-055473 Uncompressed Size     00000BF2 (3058)\n-\n-055477 LOCAL HEADER #140     04034B50 (67324752)\n-05547B Extract Zip Spec      14 (20) '2.0'\n-05547C Extract OS            00 (0) 'MS-DOS'\n-05547D General Purpose Flag  0000 (0)\n-05547F Compression Method    0000 (0) 'Stored'\n-055481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-055485 CRC                   00000000 (0)\n-055489 Compressed Size       00000000 (0)\n-05548D Uncompressed Size     00000000 (0)\n-055491 Filename Length       003D (61)\n-055493 Extra Length          0009 (9)\n-055495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0554D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0554D4   Length              0005 (5)\n-0554D6   Flags               01 (1) 'Modification'\n-0554D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0554DB LOCAL HEADER #141     04034B50 (67324752)\n-0554DF Extract Zip Spec      14 (20) '2.0'\n-0554E0 Extract OS            00 (0) 'MS-DOS'\n-0554E1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0554E3 Compression Method    0000 (0) 'Stored'\n-0554E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0554E9 CRC                   00000000 (0)\n-0554ED Compressed Size       00000000 (0)\n-0554F1 Uncompressed Size     00000000 (0)\n-0554F5 Filename Length       004B (75)\n-0554F7 Extra Length          0009 (9)\n-0554F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x554F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-055544 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-055546   Length              0005 (5)\n-055548   Flags               01 (1) 'Modification'\n-055549   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05554D DATA DESCRIPTOR       08074B50 (134695760)\n-055551 CRC                   00000000 (0)\n-055555 Compressed Size       00000000 (0)\n-055559 Uncompressed Size     00000000 (0)\n-\n-05555D LOCAL HEADER #142     04034B50 (67324752)\n-055561 Extract Zip Spec      14 (20) '2.0'\n-055562 Extract OS            00 (0) 'MS-DOS'\n-055563 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-055565 Compression Method    0000 (0) 'Stored'\n-055567 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05556B CRC                   00000000 (0)\n-05556F Compressed Size       00000000 (0)\n-055573 Uncompressed Size     00000000 (0)\n-055577 Filename Length       0044 (68)\n-055579 Extra Length          0009 (9)\n-05557B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5557B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0555BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0555C1   Length              0005 (5)\n-0555C3   Flags               01 (1) 'Modification'\n-0555C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0555C8 PAYLOAD\n-\n-055E2C DATA DESCRIPTOR       08074B50 (134695760)\n-055E30 CRC                   4F6EDF6B (1332666219)\n-055E34 Compressed Size       00000864 (2148)\n-055E38 Uncompressed Size     00000864 (2148)\n-\n-055E3C LOCAL HEADER #143     04034B50 (67324752)\n-055E40 Extract Zip Spec      14 (20) '2.0'\n-055E41 Extract OS            00 (0) 'MS-DOS'\n-055E42 General Purpose Flag  0000 (0)\n-055E44 Compression Method    0000 (0) 'Stored'\n-055E46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-055E4A CRC                   00000000 (0)\n-055E4E Compressed Size       00000000 (0)\n-055E52 Uncompressed Size     00000000 (0)\n-055E56 Filename Length       003B (59)\n-055E58 Extra Length          0009 (9)\n-055E5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55E5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-055E95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-055E97   Length              0005 (5)\n-055E99   Flags               01 (1) 'Modification'\n-055E9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-055E9E LOCAL HEADER #144     04034B50 (67324752)\n-055EA2 Extract Zip Spec      14 (20) '2.0'\n-055EA3 Extract OS            00 (0) 'MS-DOS'\n-055EA4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-055EA6 Compression Method    0000 (0) 'Stored'\n-055EA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-055EAC CRC                   00000000 (0)\n-055EB0 Compressed Size       00000000 (0)\n-055EB4 Uncompressed Size     00000000 (0)\n-055EB8 Filename Length       0049 (73)\n-055EBA Extra Length          0009 (9)\n-055EBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55EBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-055F05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-055F07   Length              0005 (5)\n-055F09   Flags               01 (1) 'Modification'\n-055F0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-055F0E DATA DESCRIPTOR       08074B50 (134695760)\n-055F12 CRC                   00000000 (0)\n-055F16 Compressed Size       00000000 (0)\n-055F1A Uncompressed Size     00000000 (0)\n-\n-055F1E LOCAL HEADER #145     04034B50 (67324752)\n-055F22 Extract Zip Spec      14 (20) '2.0'\n-055F23 Extract OS            00 (0) 'MS-DOS'\n-055F24 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-055F26 Compression Method    0000 (0) 'Stored'\n-055F28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-055F2C CRC                   00000000 (0)\n-055F30 Compressed Size       00000000 (0)\n-055F34 Uncompressed Size     00000000 (0)\n-055F38 Filename Length       0042 (66)\n-055F3A Extra Length          0009 (9)\n-055F3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55F3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-055F7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-055F80   Length              0005 (5)\n-055F82   Flags               01 (1) 'Modification'\n-055F83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-055F87 PAYLOAD\n-\n-0569EA DATA DESCRIPTOR       08074B50 (134695760)\n-0569EE CRC                   FD7A58FE (4252653822)\n-0569F2 Compressed Size       00000A63 (2659)\n-0569F6 Uncompressed Size     00000A63 (2659)\n-\n-0569FA LOCAL HEADER #146     04034B50 (67324752)\n-0569FE Extract Zip Spec      14 (20) '2.0'\n-0569FF Extract OS            00 (0) 'MS-DOS'\n-056A00 General Purpose Flag  0000 (0)\n-056A02 Compression Method    0000 (0) 'Stored'\n-056A04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-056A08 CRC                   00000000 (0)\n-056A0C Compressed Size       00000000 (0)\n-056A10 Uncompressed Size     00000000 (0)\n-056A14 Filename Length       003F (63)\n-056A16 Extra Length          0009 (9)\n-056A18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56A18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-056A57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-056A59   Length              0005 (5)\n-056A5B   Flags               01 (1) 'Modification'\n-056A5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-056A60 LOCAL HEADER #147     04034B50 (67324752)\n-056A64 Extract Zip Spec      14 (20) '2.0'\n-056A65 Extract OS            00 (0) 'MS-DOS'\n-056A66 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-056A68 Compression Method    0000 (0) 'Stored'\n-056A6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-056A6E CRC                   00000000 (0)\n-056A72 Compressed Size       00000000 (0)\n-056A76 Uncompressed Size     00000000 (0)\n-056A7A Filename Length       004D (77)\n-056A7C Extra Length          0009 (9)\n-056A7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56A7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-056ACB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-056ACD   Length              0005 (5)\n-056ACF   Flags               01 (1) 'Modification'\n-056AD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-056AD4 DATA DESCRIPTOR       08074B50 (134695760)\n-056AD8 CRC                   00000000 (0)\n-056ADC Compressed Size       00000000 (0)\n-056AE0 Uncompressed Size     00000000 (0)\n-\n-056AE4 LOCAL HEADER #148     04034B50 (67324752)\n-056AE8 Extract Zip Spec      14 (20) '2.0'\n-056AE9 Extract OS            00 (0) 'MS-DOS'\n-056AEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-056AEC Compression Method    0000 (0) 'Stored'\n-056AEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-056AF2 CRC                   00000000 (0)\n-056AF6 Compressed Size       00000000 (0)\n-056AFA Uncompressed Size     00000000 (0)\n-056AFE Filename Length       0046 (70)\n-056B00 Extra Length          0009 (9)\n-056B02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56B02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-056B48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-056B4A   Length              0005 (5)\n-056B4C   Flags               01 (1) 'Modification'\n-056B4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-056B51 PAYLOAD\n-\n-05725F DATA DESCRIPTOR       08074B50 (134695760)\n-057263 CRC                   2219CEA0 (572116640)\n-057267 Compressed Size       0000070E (1806)\n-05726B Uncompressed Size     0000070E (1806)\n-\n-05726F LOCAL HEADER #149     04034B50 (67324752)\n-057273 Extract Zip Spec      14 (20) '2.0'\n-057274 Extract OS            00 (0) 'MS-DOS'\n-057275 General Purpose Flag  0000 (0)\n-057277 Compression Method    0000 (0) 'Stored'\n-057279 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05727D CRC                   00000000 (0)\n-057281 Compressed Size       00000000 (0)\n-057285 Uncompressed Size     00000000 (0)\n-057289 Filename Length       003C (60)\n-05728B Extra Length          0009 (9)\n-05728D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5728D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0572C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0572CB   Length              0005 (5)\n-0572CD   Flags               01 (1) 'Modification'\n-0572CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0572D2 LOCAL HEADER #150     04034B50 (67324752)\n-0572D6 Extract Zip Spec      14 (20) '2.0'\n-0572D7 Extract OS            00 (0) 'MS-DOS'\n-0572D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0572DA Compression Method    0000 (0) 'Stored'\n-0572DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0572E0 CRC                   00000000 (0)\n-0572E4 Compressed Size       00000000 (0)\n-0572E8 Uncompressed Size     00000000 (0)\n-0572EC Filename Length       004A (74)\n-0572EE Extra Length          0009 (9)\n-0572F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x572F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05733A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05733C   Length              0005 (5)\n-05733E   Flags               01 (1) 'Modification'\n-05733F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-057343 DATA DESCRIPTOR       08074B50 (134695760)\n-057347 CRC                   00000000 (0)\n-05734B Compressed Size       00000000 (0)\n-05734F Uncompressed Size     00000000 (0)\n-\n-057353 LOCAL HEADER #151     04034B50 (67324752)\n-057357 Extract Zip Spec      14 (20) '2.0'\n-057358 Extract OS            00 (0) 'MS-DOS'\n-057359 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05735B Compression Method    0000 (0) 'Stored'\n-05735D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-057361 CRC                   00000000 (0)\n-057365 Compressed Size       00000000 (0)\n-057369 Uncompressed Size     00000000 (0)\n-05736D Filename Length       0043 (67)\n-05736F Extra Length          0009 (9)\n-057371 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57371: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0573B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0573B6   Length              0005 (5)\n-0573B8   Flags               01 (1) 'Modification'\n-0573B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0573BD PAYLOAD\n-\n-057BA4 DATA DESCRIPTOR       08074B50 (134695760)\n-057BA8 CRC                   FC584130 (4233642288)\n-057BAC Compressed Size       000007E7 (2023)\n-057BB0 Uncompressed Size     000007E7 (2023)\n-\n-057BB4 LOCAL HEADER #152     04034B50 (67324752)\n-057BB8 Extract Zip Spec      14 (20) '2.0'\n-057BB9 Extract OS            00 (0) 'MS-DOS'\n-057BBA General Purpose Flag  0000 (0)\n-057BBC Compression Method    0000 (0) 'Stored'\n-057BBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-057BC2 CRC                   00000000 (0)\n-057BC6 Compressed Size       00000000 (0)\n-057BCA Uncompressed Size     00000000 (0)\n-057BCE Filename Length       003C (60)\n-057BD0 Extra Length          0009 (9)\n-057BD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57BD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-057C0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-057C10   Length              0005 (5)\n-057C12   Flags               01 (1) 'Modification'\n-057C13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-057C17 LOCAL HEADER #153     04034B50 (67324752)\n-057C1B Extract Zip Spec      14 (20) '2.0'\n-057C1C Extract OS            00 (0) 'MS-DOS'\n-057C1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-057C1F Compression Method    0000 (0) 'Stored'\n-057C21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-057C25 CRC                   00000000 (0)\n-057C29 Compressed Size       00000000 (0)\n-057C2D Uncompressed Size     00000000 (0)\n-057C31 Filename Length       004A (74)\n-057C33 Extra Length          0009 (9)\n-057C35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57C35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-057C7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-057C81   Length              0005 (5)\n-057C83   Flags               01 (1) 'Modification'\n-057C84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-057C88 DATA DESCRIPTOR       08074B50 (134695760)\n-057C8C CRC                   00000000 (0)\n-057C90 Compressed Size       00000000 (0)\n-057C94 Uncompressed Size     00000000 (0)\n-\n-057C98 LOCAL HEADER #154     04034B50 (67324752)\n-057C9C Extract Zip Spec      14 (20) '2.0'\n-057C9D Extract OS            00 (0) 'MS-DOS'\n-057C9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-057CA0 Compression Method    0000 (0) 'Stored'\n-057CA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-057CA6 CRC                   00000000 (0)\n-057CAA Compressed Size       00000000 (0)\n-057CAE Uncompressed Size     00000000 (0)\n-057CB2 Filename Length       0043 (67)\n-057CB4 Extra Length          0009 (9)\n-057CB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57CB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-057CF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-057CFB   Length              0005 (5)\n-057CFD   Flags               01 (1) 'Modification'\n-057CFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-057D02 PAYLOAD\n-\n-058651 DATA DESCRIPTOR       08074B50 (134695760)\n-058655 CRC                   7F9CF02D (2140991533)\n-058659 Compressed Size       0000094F (2383)\n-05865D Uncompressed Size     0000094F (2383)\n-\n-058661 LOCAL HEADER #155     04034B50 (67324752)\n-058665 Extract Zip Spec      14 (20) '2.0'\n-058666 Extract OS            00 (0) 'MS-DOS'\n-058667 General Purpose Flag  0000 (0)\n-058669 Compression Method    0000 (0) 'Stored'\n-05866B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05866F CRC                   00000000 (0)\n-058673 Compressed Size       00000000 (0)\n-058677 Uncompressed Size     00000000 (0)\n-05867B Filename Length       0040 (64)\n-05867D Extra Length          0009 (9)\n-05867F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5867F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0586BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0586C1   Length              0005 (5)\n-0586C3   Flags               01 (1) 'Modification'\n-0586C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0586C8 LOCAL HEADER #156     04034B50 (67324752)\n-0586CC Extract Zip Spec      14 (20) '2.0'\n-0586CD Extract OS            00 (0) 'MS-DOS'\n-0586CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0586D0 Compression Method    0000 (0) 'Stored'\n-0586D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0586D6 CRC                   00000000 (0)\n-0586DA Compressed Size       00000000 (0)\n-0586DE Uncompressed Size     00000000 (0)\n-0586E2 Filename Length       004E (78)\n-0586E4 Extra Length          0009 (9)\n-0586E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x586E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-058734 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-058736   Length              0005 (5)\n-058738   Flags               01 (1) 'Modification'\n-058739   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05873D DATA DESCRIPTOR       08074B50 (134695760)\n-058741 CRC                   00000000 (0)\n-058745 Compressed Size       00000000 (0)\n-058749 Uncompressed Size     00000000 (0)\n-\n-05874D LOCAL HEADER #157     04034B50 (67324752)\n-058751 Extract Zip Spec      14 (20) '2.0'\n-058752 Extract OS            00 (0) 'MS-DOS'\n-058753 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-058755 Compression Method    0000 (0) 'Stored'\n-058757 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05875B CRC                   00000000 (0)\n-05875F Compressed Size       00000000 (0)\n-058763 Uncompressed Size     00000000 (0)\n-058767 Filename Length       0047 (71)\n-058769 Extra Length          0009 (9)\n-05876B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5876B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0587B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0587B4   Length              0005 (5)\n-0587B6   Flags               01 (1) 'Modification'\n-0587B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0587BB PAYLOAD\n-\n-059026 DATA DESCRIPTOR       08074B50 (134695760)\n-05902A CRC                   6E02A698 (1845667480)\n-05902E Compressed Size       0000086B (2155)\n-059032 Uncompressed Size     0000086B (2155)\n-\n-059036 LOCAL HEADER #158     04034B50 (67324752)\n-05903A Extract Zip Spec      14 (20) '2.0'\n-05903B Extract OS            00 (0) 'MS-DOS'\n-05903C General Purpose Flag  0000 (0)\n-05903E Compression Method    0000 (0) 'Stored'\n-059040 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-059044 CRC                   00000000 (0)\n-059048 Compressed Size       00000000 (0)\n-05904C Uncompressed Size     00000000 (0)\n-059050 Filename Length       0032 (50)\n-059052 Extra Length          0009 (9)\n-059054 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59054: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-059086 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-059088   Length              0005 (5)\n-05908A   Flags               01 (1) 'Modification'\n-05908B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05908F LOCAL HEADER #159     04034B50 (67324752)\n-059093 Extract Zip Spec      14 (20) '2.0'\n-059094 Extract OS            00 (0) 'MS-DOS'\n-059095 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-059097 Compression Method    0000 (0) 'Stored'\n-059099 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05909D CRC                   00000000 (0)\n-0590A1 Compressed Size       00000000 (0)\n-0590A5 Uncompressed Size     00000000 (0)\n-0590A9 Filename Length       0040 (64)\n-0590AB Extra Length          0009 (9)\n-0590AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x590AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0590ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0590EF   Length              0005 (5)\n-0590F1   Flags               01 (1) 'Modification'\n-0590F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0590F6 DATA DESCRIPTOR       08074B50 (134695760)\n-0590FA CRC                   00000000 (0)\n-0590FE Compressed Size       00000000 (0)\n-059102 Uncompressed Size     00000000 (0)\n-\n-059106 LOCAL HEADER #160     04034B50 (67324752)\n-05910A Extract Zip Spec      14 (20) '2.0'\n-05910B Extract OS            00 (0) 'MS-DOS'\n-05910C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05910E Compression Method    0000 (0) 'Stored'\n-059110 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-059114 CRC                   00000000 (0)\n-059118 Compressed Size       00000000 (0)\n-05911C Uncompressed Size     00000000 (0)\n-059120 Filename Length       0039 (57)\n-059122 Extra Length          0009 (9)\n-059124 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59124: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05915D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05915F   Length              0005 (5)\n-059161   Flags               01 (1) 'Modification'\n-059162   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-059166 PAYLOAD\n-\n-059ACC DATA DESCRIPTOR       08074B50 (134695760)\n-059AD0 CRC                   B4003E22 (3019914786)\n-059AD4 Compressed Size       00000966 (2406)\n-059AD8 Uncompressed Size     00000966 (2406)\n-\n-059ADC LOCAL HEADER #161     04034B50 (67324752)\n-059AE0 Extract Zip Spec      14 (20) '2.0'\n-059AE1 Extract OS            00 (0) 'MS-DOS'\n-059AE2 General Purpose Flag  0000 (0)\n-059AE4 Compression Method    0000 (0) 'Stored'\n-059AE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-059AEA CRC                   00000000 (0)\n-059AEE Compressed Size       00000000 (0)\n-059AF2 Uncompressed Size     00000000 (0)\n-059AF6 Filename Length       0036 (54)\n-059AF8 Extra Length          0009 (9)\n-059AFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59AFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-059B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-059B32   Length              0005 (5)\n-059B34   Flags               01 (1) 'Modification'\n-059B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-059B39 LOCAL HEADER #162     04034B50 (67324752)\n-059B3D Extract Zip Spec      14 (20) '2.0'\n-059B3E Extract OS            00 (0) 'MS-DOS'\n-059B3F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-059B41 Compression Method    0000 (0) 'Stored'\n-059B43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-059B47 CRC                   00000000 (0)\n-059B4B Compressed Size       00000000 (0)\n-059B4F Uncompressed Size     00000000 (0)\n-059B53 Filename Length       0044 (68)\n-059B55 Extra Length          0009 (9)\n-059B57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59B57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-059B9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-059B9D   Length              0005 (5)\n-059B9F   Flags               01 (1) 'Modification'\n-059BA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-059BA4 DATA DESCRIPTOR       08074B50 (134695760)\n-059BA8 CRC                   00000000 (0)\n-059BAC Compressed Size       00000000 (0)\n-059BB0 Uncompressed Size     00000000 (0)\n-\n-059BB4 LOCAL HEADER #163     04034B50 (67324752)\n-059BB8 Extract Zip Spec      14 (20) '2.0'\n-059BB9 Extract OS            00 (0) 'MS-DOS'\n-059BBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-059BBC Compression Method    0000 (0) 'Stored'\n-059BBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-059BC2 CRC                   00000000 (0)\n-059BC6 Compressed Size       00000000 (0)\n-059BCA Uncompressed Size     00000000 (0)\n-059BCE Filename Length       003D (61)\n-059BD0 Extra Length          0009 (9)\n-059BD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59BD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-059C0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-059C11   Length              0005 (5)\n-059C13   Flags               01 (1) 'Modification'\n-059C14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-059C18 PAYLOAD\n-\n-05A887 DATA DESCRIPTOR       08074B50 (134695760)\n-05A88B CRC                   B4C3155F (3032683871)\n-05A88F Compressed Size       00000C6F (3183)\n-05A893 Uncompressed Size     00000C6F (3183)\n-\n-05A897 LOCAL HEADER #164     04034B50 (67324752)\n-05A89B Extract Zip Spec      14 (20) '2.0'\n-05A89C Extract OS            00 (0) 'MS-DOS'\n-05A89D General Purpose Flag  0000 (0)\n-05A89F Compression Method    0000 (0) 'Stored'\n-05A8A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05A8A5 CRC                   00000000 (0)\n-05A8A9 Compressed Size       00000000 (0)\n-05A8AD Uncompressed Size     00000000 (0)\n-05A8B1 Filename Length       002A (42)\n-05A8B3 Extra Length          0009 (9)\n-05A8B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A8B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05A8DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05A8E1   Length              0005 (5)\n-05A8E3   Flags               01 (1) 'Modification'\n-05A8E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05A8E8 LOCAL HEADER #165     04034B50 (67324752)\n-05A8EC Extract Zip Spec      14 (20) '2.0'\n-05A8ED Extract OS            00 (0) 'MS-DOS'\n-05A8EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05A8F0 Compression Method    0000 (0) 'Stored'\n-05A8F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05A8F6 CRC                   00000000 (0)\n-05A8FA Compressed Size       00000000 (0)\n-05A8FE Uncompressed Size     00000000 (0)\n-05A902 Filename Length       0038 (56)\n-05A904 Extra Length          0009 (9)\n-05A906 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A906: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05A93E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05A940   Length              0005 (5)\n-05A942   Flags               01 (1) 'Modification'\n-05A943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05A947 DATA DESCRIPTOR       08074B50 (134695760)\n-05A94B CRC                   00000000 (0)\n-05A94F Compressed Size       00000000 (0)\n-05A953 Uncompressed Size     00000000 (0)\n-\n-05A957 LOCAL HEADER #166     04034B50 (67324752)\n-05A95B Extract Zip Spec      14 (20) '2.0'\n-05A95C Extract OS            00 (0) 'MS-DOS'\n-05A95D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05A95F Compression Method    0000 (0) 'Stored'\n-05A961 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05A965 CRC                   00000000 (0)\n-05A969 Compressed Size       00000000 (0)\n-05A96D Uncompressed Size     00000000 (0)\n-05A971 Filename Length       0031 (49)\n-05A973 Extra Length          0009 (9)\n-05A975 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A975: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05A9A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05A9A8   Length              0005 (5)\n-05A9AA   Flags               01 (1) 'Modification'\n-05A9AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05A9AF PAYLOAD\n-\n-05B539 DATA DESCRIPTOR       08074B50 (134695760)\n-05B53D CRC                   17F3C42C (401851436)\n-05B541 Compressed Size       00000B8A (2954)\n-05B545 Uncompressed Size     00000B8A (2954)\n-\n-05B549 LOCAL HEADER #167     04034B50 (67324752)\n-05B54D Extract Zip Spec      14 (20) '2.0'\n-05B54E Extract OS            00 (0) 'MS-DOS'\n-05B54F General Purpose Flag  0000 (0)\n-05B551 Compression Method    0000 (0) 'Stored'\n-05B553 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B557 CRC                   00000000 (0)\n-05B55B Compressed Size       00000000 (0)\n-05B55F Uncompressed Size     00000000 (0)\n-05B563 Filename Length       0033 (51)\n-05B565 Extra Length          0009 (9)\n-05B567 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B567: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05B59A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B59C   Length              0005 (5)\n-05B59E   Flags               01 (1) 'Modification'\n-05B59F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05B5A3 LOCAL HEADER #168     04034B50 (67324752)\n-05B5A7 Extract Zip Spec      14 (20) '2.0'\n-05B5A8 Extract OS            00 (0) 'MS-DOS'\n-05B5A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05B5AB Compression Method    0000 (0) 'Stored'\n-05B5AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B5B1 CRC                   00000000 (0)\n-05B5B5 Compressed Size       00000000 (0)\n-05B5B9 Uncompressed Size     00000000 (0)\n-05B5BD Filename Length       0041 (65)\n-05B5BF Extra Length          0009 (9)\n-05B5C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B5C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05B602 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B604   Length              0005 (5)\n-05B606   Flags               01 (1) 'Modification'\n-05B607   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05B60B DATA DESCRIPTOR       08074B50 (134695760)\n-05B60F CRC                   00000000 (0)\n-05B613 Compressed Size       00000000 (0)\n-05B617 Uncompressed Size     00000000 (0)\n-\n-05B61B LOCAL HEADER #169     04034B50 (67324752)\n-05B61F Extract Zip Spec      14 (20) '2.0'\n-05B620 Extract OS            00 (0) 'MS-DOS'\n-05B621 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05B623 Compression Method    0000 (0) 'Stored'\n-05B625 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05B629 CRC                   00000000 (0)\n-05B62D Compressed Size       00000000 (0)\n-05B631 Uncompressed Size     00000000 (0)\n-05B635 Filename Length       003A (58)\n-05B637 Extra Length          0009 (9)\n-05B639 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B639: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05B673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05B675   Length              0005 (5)\n-05B677   Flags               01 (1) 'Modification'\n-05B678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05B67C PAYLOAD\n-\n-05C36D DATA DESCRIPTOR       08074B50 (134695760)\n-05C371 CRC                   050B85C5 (84641221)\n-05C375 Compressed Size       00000CF1 (3313)\n-05C379 Uncompressed Size     00000CF1 (3313)\n-\n-05C37D LOCAL HEADER #170     04034B50 (67324752)\n-05C381 Extract Zip Spec      14 (20) '2.0'\n-05C382 Extract OS            00 (0) 'MS-DOS'\n-05C383 General Purpose Flag  0000 (0)\n-05C385 Compression Method    0000 (0) 'Stored'\n-05C387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05C38B CRC                   00000000 (0)\n-05C38F Compressed Size       00000000 (0)\n-05C393 Uncompressed Size     00000000 (0)\n-05C397 Filename Length       0036 (54)\n-05C399 Extra Length          0009 (9)\n-05C39B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C39B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05C3D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05C3D3   Length              0005 (5)\n-05C3D5   Flags               01 (1) 'Modification'\n-05C3D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05C3DA LOCAL HEADER #171     04034B50 (67324752)\n-05C3DE Extract Zip Spec      14 (20) '2.0'\n-05C3DF Extract OS            00 (0) 'MS-DOS'\n-05C3E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05C3E2 Compression Method    0000 (0) 'Stored'\n-05C3E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05C3E8 CRC                   00000000 (0)\n-05C3EC Compressed Size       00000000 (0)\n-05C3F0 Uncompressed Size     00000000 (0)\n-05C3F4 Filename Length       0044 (68)\n-05C3F6 Extra Length          0009 (9)\n-05C3F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C3F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05C43C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05C43E   Length              0005 (5)\n-05C440   Flags               01 (1) 'Modification'\n-05C441   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05C445 DATA DESCRIPTOR       08074B50 (134695760)\n-05C449 CRC                   00000000 (0)\n-05C44D Compressed Size       00000000 (0)\n-05C451 Uncompressed Size     00000000 (0)\n-\n-05C455 LOCAL HEADER #172     04034B50 (67324752)\n-05C459 Extract Zip Spec      14 (20) '2.0'\n-05C45A Extract OS            00 (0) 'MS-DOS'\n-05C45B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05C45D Compression Method    0000 (0) 'Stored'\n-05C45F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05C463 CRC                   00000000 (0)\n-05C467 Compressed Size       00000000 (0)\n-05C46B Uncompressed Size     00000000 (0)\n-05C46F Filename Length       003D (61)\n-05C471 Extra Length          0009 (9)\n-05C473 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C473: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05C4B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05C4B2   Length              0005 (5)\n-05C4B4   Flags               01 (1) 'Modification'\n-05C4B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05C4B9 PAYLOAD\n-\n-05CE4B DATA DESCRIPTOR       08074B50 (134695760)\n-05CE4F CRC                   178839D9 (394803673)\n-05CE53 Compressed Size       00000992 (2450)\n-05CE57 Uncompressed Size     00000992 (2450)\n-\n-05CE5B LOCAL HEADER #173     04034B50 (67324752)\n-05CE5F Extract Zip Spec      14 (20) '2.0'\n-05CE60 Extract OS            00 (0) 'MS-DOS'\n-05CE61 General Purpose Flag  0000 (0)\n-05CE63 Compression Method    0000 (0) 'Stored'\n-05CE65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05CE69 CRC                   00000000 (0)\n-05CE6D Compressed Size       00000000 (0)\n-05CE71 Uncompressed Size     00000000 (0)\n-05CE75 Filename Length       0037 (55)\n-05CE77 Extra Length          0009 (9)\n-05CE79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CE79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05CEB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05CEB2   Length              0005 (5)\n-05CEB4   Flags               01 (1) 'Modification'\n-05CEB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05CEB9 LOCAL HEADER #174     04034B50 (67324752)\n-05CEBD Extract Zip Spec      14 (20) '2.0'\n-05CEBE Extract OS            00 (0) 'MS-DOS'\n-05CEBF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05CEC1 Compression Method    0000 (0) 'Stored'\n-05CEC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05CEC7 CRC                   00000000 (0)\n-05CECB Compressed Size       00000000 (0)\n-05CECF Uncompressed Size     00000000 (0)\n-05CED3 Filename Length       0045 (69)\n-05CED5 Extra Length          0009 (9)\n-05CED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05CF1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05CF1E   Length              0005 (5)\n-05CF20   Flags               01 (1) 'Modification'\n-05CF21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05CF25 DATA DESCRIPTOR       08074B50 (134695760)\n-05CF29 CRC                   00000000 (0)\n-05CF2D Compressed Size       00000000 (0)\n-05CF31 Uncompressed Size     00000000 (0)\n-\n-05CF35 LOCAL HEADER #175     04034B50 (67324752)\n-05CF39 Extract Zip Spec      14 (20) '2.0'\n-05CF3A Extract OS            00 (0) 'MS-DOS'\n-05CF3B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05CF3D Compression Method    0000 (0) 'Stored'\n-05CF3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05CF43 CRC                   00000000 (0)\n-05CF47 Compressed Size       00000000 (0)\n-05CF4B Uncompressed Size     00000000 (0)\n-05CF4F Filename Length       003E (62)\n-05CF51 Extra Length          0009 (9)\n-05CF53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CF53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05CF91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05CF93   Length              0005 (5)\n-05CF95   Flags               01 (1) 'Modification'\n-05CF96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05CF9A PAYLOAD\n-\n-05DB4F DATA DESCRIPTOR       08074B50 (134695760)\n-05DB53 CRC                   00E8472C (15222572)\n-05DB57 Compressed Size       00000BB5 (2997)\n-05DB5B Uncompressed Size     00000BB5 (2997)\n-\n-05DB5F LOCAL HEADER #176     04034B50 (67324752)\n-05DB63 Extract Zip Spec      14 (20) '2.0'\n-05DB64 Extract OS            00 (0) 'MS-DOS'\n-05DB65 General Purpose Flag  0000 (0)\n-05DB67 Compression Method    0000 (0) 'Stored'\n-05DB69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05DB6D CRC                   00000000 (0)\n-05DB71 Compressed Size       00000000 (0)\n-05DB75 Uncompressed Size     00000000 (0)\n-05DB79 Filename Length       0035 (53)\n-05DB7B Extra Length          0009 (9)\n-05DB7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DB7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05DBB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05DBB4   Length              0005 (5)\n-05DBB6   Flags               01 (1) 'Modification'\n-05DBB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05DBBB LOCAL HEADER #177     04034B50 (67324752)\n-05DBBF Extract Zip Spec      14 (20) '2.0'\n-05DBC0 Extract OS            00 (0) 'MS-DOS'\n-05DBC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05DBC3 Compression Method    0000 (0) 'Stored'\n-05DBC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05DBC9 CRC                   00000000 (0)\n-05DBCD Compressed Size       00000000 (0)\n-05DBD1 Uncompressed Size     00000000 (0)\n-05DBD5 Filename Length       0043 (67)\n-05DBD7 Extra Length          0009 (9)\n-05DBD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DBD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05DC1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05DC1E   Length              0005 (5)\n-05DC20   Flags               01 (1) 'Modification'\n-05DC21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05DC25 DATA DESCRIPTOR       08074B50 (134695760)\n-05DC29 CRC                   00000000 (0)\n-05DC2D Compressed Size       00000000 (0)\n-05DC31 Uncompressed Size     00000000 (0)\n-\n-05DC35 LOCAL HEADER #178     04034B50 (67324752)\n-05DC39 Extract Zip Spec      14 (20) '2.0'\n-05DC3A Extract OS            00 (0) 'MS-DOS'\n-05DC3B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05DC3D Compression Method    0000 (0) 'Stored'\n-05DC3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05DC43 CRC                   00000000 (0)\n-05DC47 Compressed Size       00000000 (0)\n-05DC4B Uncompressed Size     00000000 (0)\n-05DC4F Filename Length       003C (60)\n-05DC51 Extra Length          0009 (9)\n-05DC53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DC53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05DC8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05DC91   Length              0005 (5)\n-05DC93   Flags               01 (1) 'Modification'\n-05DC94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05DC98 PAYLOAD\n-\n-05E594 DATA DESCRIPTOR       08074B50 (134695760)\n-05E598 CRC                   8F421884 (2403473540)\n-05E59C Compressed Size       000008FC (2300)\n-05E5A0 Uncompressed Size     000008FC (2300)\n-\n-05E5A4 LOCAL HEADER #179     04034B50 (67324752)\n-05E5A8 Extract Zip Spec      14 (20) '2.0'\n-05E5A9 Extract OS            00 (0) 'MS-DOS'\n-05E5AA General Purpose Flag  0000 (0)\n-05E5AC Compression Method    0000 (0) 'Stored'\n-05E5AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E5B2 CRC                   00000000 (0)\n-05E5B6 Compressed Size       00000000 (0)\n-05E5BA Uncompressed Size     00000000 (0)\n-05E5BE Filename Length       0036 (54)\n-05E5C0 Extra Length          0009 (9)\n-05E5C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E5C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05E5F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05E5FA   Length              0005 (5)\n-05E5FC   Flags               01 (1) 'Modification'\n-05E5FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05E601 LOCAL HEADER #180     04034B50 (67324752)\n-05E605 Extract Zip Spec      14 (20) '2.0'\n-05E606 Extract OS            00 (0) 'MS-DOS'\n-05E607 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05E609 Compression Method    0000 (0) 'Stored'\n-05E60B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E60F CRC                   00000000 (0)\n-05E613 Compressed Size       00000000 (0)\n-05E617 Uncompressed Size     00000000 (0)\n-05E61B Filename Length       0044 (68)\n-05E61D Extra Length          0009 (9)\n-05E61F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E61F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05E663 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05E665   Length              0005 (5)\n-05E667   Flags               01 (1) 'Modification'\n-05E668   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05E66C DATA DESCRIPTOR       08074B50 (134695760)\n-05E670 CRC                   00000000 (0)\n-05E674 Compressed Size       00000000 (0)\n-05E678 Uncompressed Size     00000000 (0)\n-\n-05E67C LOCAL HEADER #181     04034B50 (67324752)\n-05E680 Extract Zip Spec      14 (20) '2.0'\n-05E681 Extract OS            00 (0) 'MS-DOS'\n-05E682 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05E684 Compression Method    0000 (0) 'Stored'\n-05E686 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05E68A CRC                   00000000 (0)\n-05E68E Compressed Size       00000000 (0)\n-05E692 Uncompressed Size     00000000 (0)\n-05E696 Filename Length       003D (61)\n-05E698 Extra Length          0009 (9)\n-05E69A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E69A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05E6D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05E6D9   Length              0005 (5)\n-05E6DB   Flags               01 (1) 'Modification'\n-05E6DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05E6E0 PAYLOAD\n-\n-05F2A5 DATA DESCRIPTOR       08074B50 (134695760)\n-05F2A9 CRC                   06F60447 (116786247)\n-05F2AD Compressed Size       00000BC5 (3013)\n-05F2B1 Uncompressed Size     00000BC5 (3013)\n-\n-05F2B5 LOCAL HEADER #182     04034B50 (67324752)\n-05F2B9 Extract Zip Spec      14 (20) '2.0'\n-05F2BA Extract OS            00 (0) 'MS-DOS'\n-05F2BB General Purpose Flag  0000 (0)\n-05F2BD Compression Method    0000 (0) 'Stored'\n-05F2BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05F2C3 CRC                   00000000 (0)\n-05F2C7 Compressed Size       00000000 (0)\n-05F2CB Uncompressed Size     00000000 (0)\n-05F2CF Filename Length       0039 (57)\n-05F2D1 Extra Length          0009 (9)\n-05F2D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F2D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05F30C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05F30E   Length              0005 (5)\n-05F310   Flags               01 (1) 'Modification'\n-05F311   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05F315 LOCAL HEADER #183     04034B50 (67324752)\n-05F319 Extract Zip Spec      14 (20) '2.0'\n-05F31A Extract OS            00 (0) 'MS-DOS'\n-05F31B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05F31D Compression Method    0000 (0) 'Stored'\n-05F31F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05F323 CRC                   00000000 (0)\n-05F327 Compressed Size       00000000 (0)\n-05F32B Uncompressed Size     00000000 (0)\n-05F32F Filename Length       0047 (71)\n-05F331 Extra Length          0009 (9)\n-05F333 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F333: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05F37A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05F37C   Length              0005 (5)\n-05F37E   Flags               01 (1) 'Modification'\n-05F37F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05F383 DATA DESCRIPTOR       08074B50 (134695760)\n-05F387 CRC                   00000000 (0)\n-05F38B Compressed Size       00000000 (0)\n-05F38F Uncompressed Size     00000000 (0)\n-\n-05F393 LOCAL HEADER #184     04034B50 (67324752)\n-05F397 Extract Zip Spec      14 (20) '2.0'\n-05F398 Extract OS            00 (0) 'MS-DOS'\n-05F399 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05F39B Compression Method    0000 (0) 'Stored'\n-05F39D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05F3A1 CRC                   00000000 (0)\n-05F3A5 Compressed Size       00000000 (0)\n-05F3A9 Uncompressed Size     00000000 (0)\n-05F3AD Filename Length       0040 (64)\n-05F3AF Extra Length          0009 (9)\n-05F3B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F3B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05F3F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05F3F3   Length              0005 (5)\n-05F3F5   Flags               01 (1) 'Modification'\n-05F3F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05F3FA PAYLOAD\n-\n-05FBC9 DATA DESCRIPTOR       08074B50 (134695760)\n-05FBCD CRC                   78AA4678 (2024425080)\n-05FBD1 Compressed Size       000007CF (1999)\n-05FBD5 Uncompressed Size     000007CF (1999)\n-\n-05FBD9 LOCAL HEADER #185     04034B50 (67324752)\n-05FBDD Extract Zip Spec      14 (20) '2.0'\n-05FBDE Extract OS            00 (0) 'MS-DOS'\n-05FBDF General Purpose Flag  0000 (0)\n-05FBE1 Compression Method    0000 (0) 'Stored'\n-05FBE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05FBE7 CRC                   00000000 (0)\n-05FBEB Compressed Size       00000000 (0)\n-05FBEF Uncompressed Size     00000000 (0)\n-05FBF3 Filename Length       0038 (56)\n-05FBF5 Extra Length          0009 (9)\n-05FBF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FBF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05FC2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05FC31   Length              0005 (5)\n-05FC33   Flags               01 (1) 'Modification'\n-05FC34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05FC38 LOCAL HEADER #186     04034B50 (67324752)\n-05FC3C Extract Zip Spec      14 (20) '2.0'\n-05FC3D Extract OS            00 (0) 'MS-DOS'\n-05FC3E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05FC40 Compression Method    0000 (0) 'Stored'\n-05FC42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05FC46 CRC                   00000000 (0)\n-05FC4A Compressed Size       00000000 (0)\n-05FC4E Uncompressed Size     00000000 (0)\n-05FC52 Filename Length       0046 (70)\n-05FC54 Extra Length          0009 (9)\n-05FC56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FC56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05FC9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05FC9E   Length              0005 (5)\n-05FCA0   Flags               01 (1) 'Modification'\n-05FCA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-05FCA5 DATA DESCRIPTOR       08074B50 (134695760)\n-05FCA9 CRC                   00000000 (0)\n-05FCAD Compressed Size       00000000 (0)\n-05FCB1 Uncompressed Size     00000000 (0)\n-\n-05FCB5 LOCAL HEADER #187     04034B50 (67324752)\n-05FCB9 Extract Zip Spec      14 (20) '2.0'\n-05FCBA Extract OS            00 (0) 'MS-DOS'\n-05FCBB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-05FCBD Compression Method    0000 (0) 'Stored'\n-05FCBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-05FCC3 CRC                   00000000 (0)\n-05FCC7 Compressed Size       00000000 (0)\n-05FCCB Uncompressed Size     00000000 (0)\n-05FCCF Filename Length       003F (63)\n-05FCD1 Extra Length          0009 (9)\n-05FCD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FCD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-05FD12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-05FD14   Length              0005 (5)\n-05FD16   Flags               01 (1) 'Modification'\n-05FD17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-05FD1B PAYLOAD\n-\n-060864 DATA DESCRIPTOR       08074B50 (134695760)\n-060868 CRC                   E3551669 (3814004329)\n-06086C Compressed Size       00000B49 (2889)\n-060870 Uncompressed Size     00000B49 (2889)\n-\n-060874 LOCAL HEADER #188     04034B50 (67324752)\n-060878 Extract Zip Spec      14 (20) '2.0'\n-060879 Extract OS            00 (0) 'MS-DOS'\n-06087A General Purpose Flag  0000 (0)\n-06087C Compression Method    0000 (0) 'Stored'\n-06087E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-060882 CRC                   00000000 (0)\n-060886 Compressed Size       00000000 (0)\n-06088A Uncompressed Size     00000000 (0)\n-06088E Filename Length       0035 (53)\n-060890 Extra Length          0009 (9)\n-060892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0608C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0608C9   Length              0005 (5)\n-0608CB   Flags               01 (1) 'Modification'\n-0608CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0608D0 LOCAL HEADER #189     04034B50 (67324752)\n-0608D4 Extract Zip Spec      14 (20) '2.0'\n-0608D5 Extract OS            00 (0) 'MS-DOS'\n-0608D6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0608D8 Compression Method    0000 (0) 'Stored'\n-0608DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0608DE CRC                   00000000 (0)\n-0608E2 Compressed Size       00000000 (0)\n-0608E6 Uncompressed Size     00000000 (0)\n-0608EA Filename Length       0043 (67)\n-0608EC Extra Length          0009 (9)\n-0608EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x608EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-060931 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-060933   Length              0005 (5)\n-060935   Flags               01 (1) 'Modification'\n-060936   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06093A DATA DESCRIPTOR       08074B50 (134695760)\n-06093E CRC                   00000000 (0)\n-060942 Compressed Size       00000000 (0)\n-060946 Uncompressed Size     00000000 (0)\n-\n-06094A LOCAL HEADER #190     04034B50 (67324752)\n-06094E Extract Zip Spec      14 (20) '2.0'\n-06094F Extract OS            00 (0) 'MS-DOS'\n-060950 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-060952 Compression Method    0000 (0) 'Stored'\n-060954 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-060958 CRC                   00000000 (0)\n-06095C Compressed Size       00000000 (0)\n-060960 Uncompressed Size     00000000 (0)\n-060964 Filename Length       003C (60)\n-060966 Extra Length          0009 (9)\n-060968 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60968: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0609A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0609A6   Length              0005 (5)\n-0609A8   Flags               01 (1) 'Modification'\n-0609A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0609AD PAYLOAD\n-\n-0615E0 DATA DESCRIPTOR       08074B50 (134695760)\n-0615E4 CRC                   0701BB57 (117554007)\n-0615E8 Compressed Size       00000C33 (3123)\n-0615EC Uncompressed Size     00000C33 (3123)\n-\n-0615F0 LOCAL HEADER #191     04034B50 (67324752)\n-0615F4 Extract Zip Spec      14 (20) '2.0'\n-0615F5 Extract OS            00 (0) 'MS-DOS'\n-0615F6 General Purpose Flag  0000 (0)\n-0615F8 Compression Method    0000 (0) 'Stored'\n-0615FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0615FE CRC                   00000000 (0)\n-061602 Compressed Size       00000000 (0)\n-061606 Uncompressed Size     00000000 (0)\n-06160A Filename Length       0035 (53)\n-06160C Extra Length          0009 (9)\n-06160E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6160E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-061643 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-061645   Length              0005 (5)\n-061647   Flags               01 (1) 'Modification'\n-061648   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06164C LOCAL HEADER #192     04034B50 (67324752)\n-061650 Extract Zip Spec      14 (20) '2.0'\n-061651 Extract OS            00 (0) 'MS-DOS'\n-061652 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-061654 Compression Method    0000 (0) 'Stored'\n-061656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06165A CRC                   00000000 (0)\n-06165E Compressed Size       00000000 (0)\n-061662 Uncompressed Size     00000000 (0)\n-061666 Filename Length       0043 (67)\n-061668 Extra Length          0009 (9)\n-06166A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6166A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0616AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0616AF   Length              0005 (5)\n-0616B1   Flags               01 (1) 'Modification'\n-0616B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0616B6 DATA DESCRIPTOR       08074B50 (134695760)\n-0616BA CRC                   00000000 (0)\n-0616BE Compressed Size       00000000 (0)\n-0616C2 Uncompressed Size     00000000 (0)\n-\n-0616C6 LOCAL HEADER #193     04034B50 (67324752)\n-0616CA Extract Zip Spec      14 (20) '2.0'\n-0616CB Extract OS            00 (0) 'MS-DOS'\n-0616CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0616CE Compression Method    0000 (0) 'Stored'\n-0616D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0616D4 CRC                   00000000 (0)\n-0616D8 Compressed Size       00000000 (0)\n-0616DC Uncompressed Size     00000000 (0)\n-0616E0 Filename Length       003C (60)\n-0616E2 Extra Length          0009 (9)\n-0616E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x616E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-061720 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-061722   Length              0005 (5)\n-061724   Flags               01 (1) 'Modification'\n-061725   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-061729 PAYLOAD\n-\n-062152 DATA DESCRIPTOR       08074B50 (134695760)\n-062156 CRC                   6FB1D315 (1873924885)\n-06215A Compressed Size       00000A29 (2601)\n-06215E Uncompressed Size     00000A29 (2601)\n-\n-062162 LOCAL HEADER #194     04034B50 (67324752)\n-062166 Extract Zip Spec      14 (20) '2.0'\n-062167 Extract OS            00 (0) 'MS-DOS'\n-062168 General Purpose Flag  0000 (0)\n-06216A Compression Method    0000 (0) 'Stored'\n-06216C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-062170 CRC                   00000000 (0)\n-062174 Compressed Size       00000000 (0)\n-062178 Uncompressed Size     00000000 (0)\n-06217C Filename Length       0034 (52)\n-06217E Extra Length          0009 (9)\n-062180 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62180: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0621B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0621B6   Length              0005 (5)\n-0621B8   Flags               01 (1) 'Modification'\n-0621B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0621BD LOCAL HEADER #195     04034B50 (67324752)\n-0621C1 Extract Zip Spec      14 (20) '2.0'\n-0621C2 Extract OS            00 (0) 'MS-DOS'\n-0621C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0621C5 Compression Method    0000 (0) 'Stored'\n-0621C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0621CB CRC                   00000000 (0)\n-0621CF Compressed Size       00000000 (0)\n-0621D3 Uncompressed Size     00000000 (0)\n-0621D7 Filename Length       0042 (66)\n-0621D9 Extra Length          0009 (9)\n-0621DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x621DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06221D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06221F   Length              0005 (5)\n-062221   Flags               01 (1) 'Modification'\n-062222   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-062226 DATA DESCRIPTOR       08074B50 (134695760)\n-06222A CRC                   00000000 (0)\n-06222E Compressed Size       00000000 (0)\n-062232 Uncompressed Size     00000000 (0)\n-\n-062236 LOCAL HEADER #196     04034B50 (67324752)\n-06223A Extract Zip Spec      14 (20) '2.0'\n-06223B Extract OS            00 (0) 'MS-DOS'\n-06223C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06223E Compression Method    0000 (0) 'Stored'\n-062240 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-062244 CRC                   00000000 (0)\n-062248 Compressed Size       00000000 (0)\n-06224C Uncompressed Size     00000000 (0)\n-062250 Filename Length       003B (59)\n-062252 Extra Length          0009 (9)\n-062254 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62254: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06228F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-062291   Length              0005 (5)\n-062293   Flags               01 (1) 'Modification'\n-062294   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-062298 PAYLOAD\n-\n-06354B DATA DESCRIPTOR       08074B50 (134695760)\n-06354F CRC                   6F2313AC (1864569772)\n-063553 Compressed Size       000012B3 (4787)\n-063557 Uncompressed Size     000012B3 (4787)\n-\n-06355B LOCAL HEADER #197     04034B50 (67324752)\n-06355F Extract Zip Spec      14 (20) '2.0'\n-063560 Extract OS            00 (0) 'MS-DOS'\n-063561 General Purpose Flag  0000 (0)\n-063563 Compression Method    0000 (0) 'Stored'\n-063565 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-063569 CRC                   00000000 (0)\n-06356D Compressed Size       00000000 (0)\n-063571 Uncompressed Size     00000000 (0)\n-063575 Filename Length       0039 (57)\n-063577 Extra Length          0009 (9)\n-063579 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63579: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0635B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0635B4   Length              0005 (5)\n-0635B6   Flags               01 (1) 'Modification'\n-0635B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0635BB LOCAL HEADER #198     04034B50 (67324752)\n-0635BF Extract Zip Spec      14 (20) '2.0'\n-0635C0 Extract OS            00 (0) 'MS-DOS'\n-0635C1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0635C3 Compression Method    0000 (0) 'Stored'\n-0635C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0635C9 CRC                   00000000 (0)\n-0635CD Compressed Size       00000000 (0)\n-0635D1 Uncompressed Size     00000000 (0)\n-0635D5 Filename Length       0047 (71)\n-0635D7 Extra Length          0009 (9)\n-0635D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x635D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-063620 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-063622   Length              0005 (5)\n-063624   Flags               01 (1) 'Modification'\n-063625   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-063629 DATA DESCRIPTOR       08074B50 (134695760)\n-06362D CRC                   00000000 (0)\n-063631 Compressed Size       00000000 (0)\n-063635 Uncompressed Size     00000000 (0)\n-\n-063639 LOCAL HEADER #199     04034B50 (67324752)\n-06363D Extract Zip Spec      14 (20) '2.0'\n-06363E Extract OS            00 (0) 'MS-DOS'\n-06363F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-063641 Compression Method    0000 (0) 'Stored'\n-063643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-063647 CRC                   00000000 (0)\n-06364B Compressed Size       00000000 (0)\n-06364F Uncompressed Size     00000000 (0)\n-063653 Filename Length       0040 (64)\n-063655 Extra Length          0009 (9)\n-063657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-063697 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-063699   Length              0005 (5)\n-06369B   Flags               01 (1) 'Modification'\n-06369C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0636A0 PAYLOAD\n-\n-06404C DATA DESCRIPTOR       08074B50 (134695760)\n-064050 CRC                   4C2A7690 (1277851280)\n-064054 Compressed Size       000009AC (2476)\n-064058 Uncompressed Size     000009AC (2476)\n-\n-06405C LOCAL HEADER #200     04034B50 (67324752)\n-064060 Extract Zip Spec      14 (20) '2.0'\n-064061 Extract OS            00 (0) 'MS-DOS'\n-064062 General Purpose Flag  0000 (0)\n-064064 Compression Method    0000 (0) 'Stored'\n-064066 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06406A CRC                   00000000 (0)\n-06406E Compressed Size       00000000 (0)\n-064072 Uncompressed Size     00000000 (0)\n-064076 Filename Length       0033 (51)\n-064078 Extra Length          0009 (9)\n-06407A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6407A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0640AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0640AF   Length              0005 (5)\n-0640B1   Flags               01 (1) 'Modification'\n-0640B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0640B6 LOCAL HEADER #201     04034B50 (67324752)\n-0640BA Extract Zip Spec      14 (20) '2.0'\n-0640BB Extract OS            00 (0) 'MS-DOS'\n-0640BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0640BE Compression Method    0000 (0) 'Stored'\n-0640C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0640C4 CRC                   00000000 (0)\n-0640C8 Compressed Size       00000000 (0)\n-0640CC Uncompressed Size     00000000 (0)\n-0640D0 Filename Length       0041 (65)\n-0640D2 Extra Length          0009 (9)\n-0640D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x640D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-064115 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-064117   Length              0005 (5)\n-064119   Flags               01 (1) 'Modification'\n-06411A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06411E DATA DESCRIPTOR       08074B50 (134695760)\n-064122 CRC                   00000000 (0)\n-064126 Compressed Size       00000000 (0)\n-06412A Uncompressed Size     00000000 (0)\n-\n-06412E LOCAL HEADER #202     04034B50 (67324752)\n-064132 Extract Zip Spec      14 (20) '2.0'\n-064133 Extract OS            00 (0) 'MS-DOS'\n-064134 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-064136 Compression Method    0000 (0) 'Stored'\n-064138 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06413C CRC                   00000000 (0)\n-064140 Compressed Size       00000000 (0)\n-064144 Uncompressed Size     00000000 (0)\n-064148 Filename Length       003A (58)\n-06414A Extra Length          0009 (9)\n-06414C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6414C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-064186 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-064188   Length              0005 (5)\n-06418A   Flags               01 (1) 'Modification'\n-06418B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06418F PAYLOAD\n-\n-064AE0 DATA DESCRIPTOR       08074B50 (134695760)\n-064AE4 CRC                   2EBB8418 (784040984)\n-064AE8 Compressed Size       00000951 (2385)\n-064AEC Uncompressed Size     00000951 (2385)\n-\n-064AF0 LOCAL HEADER #203     04034B50 (67324752)\n-064AF4 Extract Zip Spec      14 (20) '2.0'\n-064AF5 Extract OS            00 (0) 'MS-DOS'\n-064AF6 General Purpose Flag  0000 (0)\n-064AF8 Compression Method    0000 (0) 'Stored'\n-064AFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-064AFE CRC                   00000000 (0)\n-064B02 Compressed Size       00000000 (0)\n-064B06 Uncompressed Size     00000000 (0)\n-064B0A Filename Length       0035 (53)\n-064B0C Extra Length          0009 (9)\n-064B0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64B0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-064B43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-064B45   Length              0005 (5)\n-064B47   Flags               01 (1) 'Modification'\n-064B48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-064B4C LOCAL HEADER #204     04034B50 (67324752)\n-064B50 Extract Zip Spec      14 (20) '2.0'\n-064B51 Extract OS            00 (0) 'MS-DOS'\n-064B52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-064B54 Compression Method    0000 (0) 'Stored'\n-064B56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-064B5A CRC                   00000000 (0)\n-064B5E Compressed Size       00000000 (0)\n-064B62 Uncompressed Size     00000000 (0)\n-064B66 Filename Length       0043 (67)\n-064B68 Extra Length          0009 (9)\n-064B6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64B6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-064BAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-064BAF   Length              0005 (5)\n-064BB1   Flags               01 (1) 'Modification'\n-064BB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-064BB6 DATA DESCRIPTOR       08074B50 (134695760)\n-064BBA CRC                   00000000 (0)\n-064BBE Compressed Size       00000000 (0)\n-064BC2 Uncompressed Size     00000000 (0)\n-\n-064BC6 LOCAL HEADER #205     04034B50 (67324752)\n-064BCA Extract Zip Spec      14 (20) '2.0'\n-064BCB Extract OS            00 (0) 'MS-DOS'\n-064BCC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-064BCE Compression Method    0000 (0) 'Stored'\n-064BD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-064BD4 CRC                   00000000 (0)\n-064BD8 Compressed Size       00000000 (0)\n-064BDC Uncompressed Size     00000000 (0)\n-064BE0 Filename Length       003C (60)\n-064BE2 Extra Length          0009 (9)\n-064BE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64BE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-064C20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-064C22   Length              0005 (5)\n-064C24   Flags               01 (1) 'Modification'\n-064C25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-064C29 PAYLOAD\n-\n-065A92 DATA DESCRIPTOR       08074B50 (134695760)\n-065A96 CRC                   FACEEC94 (4207864980)\n-065A9A Compressed Size       00000E69 (3689)\n-065A9E Uncompressed Size     00000E69 (3689)\n-\n-065AA2 LOCAL HEADER #206     04034B50 (67324752)\n-065AA6 Extract Zip Spec      14 (20) '2.0'\n-065AA7 Extract OS            00 (0) 'MS-DOS'\n-065AA8 General Purpose Flag  0000 (0)\n-065AAA Compression Method    0000 (0) 'Stored'\n-065AAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-065AB0 CRC                   00000000 (0)\n-065AB4 Compressed Size       00000000 (0)\n-065AB8 Uncompressed Size     00000000 (0)\n-065ABC Filename Length       0037 (55)\n-065ABE Extra Length          0009 (9)\n-065AC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65AC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-065AF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-065AF9   Length              0005 (5)\n-065AFB   Flags               01 (1) 'Modification'\n-065AFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-065B00 LOCAL HEADER #207     04034B50 (67324752)\n-065B04 Extract Zip Spec      14 (20) '2.0'\n-065B05 Extract OS            00 (0) 'MS-DOS'\n-065B06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-065B08 Compression Method    0000 (0) 'Stored'\n-065B0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-065B0E CRC                   00000000 (0)\n-065B12 Compressed Size       00000000 (0)\n-065B16 Uncompressed Size     00000000 (0)\n-065B1A Filename Length       0045 (69)\n-065B1C Extra Length          0009 (9)\n-065B1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65B1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-065B63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-065B65   Length              0005 (5)\n-065B67   Flags               01 (1) 'Modification'\n-065B68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-065B6C DATA DESCRIPTOR       08074B50 (134695760)\n-065B70 CRC                   00000000 (0)\n-065B74 Compressed Size       00000000 (0)\n-065B78 Uncompressed Size     00000000 (0)\n-\n-065B7C LOCAL HEADER #208     04034B50 (67324752)\n-065B80 Extract Zip Spec      14 (20) '2.0'\n-065B81 Extract OS            00 (0) 'MS-DOS'\n-065B82 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-065B84 Compression Method    0000 (0) 'Stored'\n-065B86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-065B8A CRC                   00000000 (0)\n-065B8E Compressed Size       00000000 (0)\n-065B92 Uncompressed Size     00000000 (0)\n-065B96 Filename Length       003E (62)\n-065B98 Extra Length          0009 (9)\n-065B9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65B9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-065BD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-065BDA   Length              0005 (5)\n-065BDC   Flags               01 (1) 'Modification'\n-065BDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-065BE1 PAYLOAD\n-\n-06642E DATA DESCRIPTOR       08074B50 (134695760)\n-066432 CRC                   13A927BF (329852863)\n-066436 Compressed Size       0000084D (2125)\n-06643A Uncompressed Size     0000084D (2125)\n-\n-06643E LOCAL HEADER #209     04034B50 (67324752)\n-066442 Extract Zip Spec      14 (20) '2.0'\n-066443 Extract OS            00 (0) 'MS-DOS'\n-066444 General Purpose Flag  0000 (0)\n-066446 Compression Method    0000 (0) 'Stored'\n-066448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06644C CRC                   00000000 (0)\n-066450 Compressed Size       00000000 (0)\n-066454 Uncompressed Size     00000000 (0)\n-066458 Filename Length       0034 (52)\n-06645A Extra Length          0009 (9)\n-06645C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6645C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-066490 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-066492   Length              0005 (5)\n-066494   Flags               01 (1) 'Modification'\n-066495   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-066499 LOCAL HEADER #210     04034B50 (67324752)\n-06649D Extract Zip Spec      14 (20) '2.0'\n-06649E Extract OS            00 (0) 'MS-DOS'\n-06649F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0664A1 Compression Method    0000 (0) 'Stored'\n-0664A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0664A7 CRC                   00000000 (0)\n-0664AB Compressed Size       00000000 (0)\n-0664AF Uncompressed Size     00000000 (0)\n-0664B3 Filename Length       0042 (66)\n-0664B5 Extra Length          0009 (9)\n-0664B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x664B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0664F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0664FB   Length              0005 (5)\n-0664FD   Flags               01 (1) 'Modification'\n-0664FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-066502 DATA DESCRIPTOR       08074B50 (134695760)\n-066506 CRC                   00000000 (0)\n-06650A Compressed Size       00000000 (0)\n-06650E Uncompressed Size     00000000 (0)\n-\n-066512 LOCAL HEADER #211     04034B50 (67324752)\n-066516 Extract Zip Spec      14 (20) '2.0'\n-066517 Extract OS            00 (0) 'MS-DOS'\n-066518 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06651A Compression Method    0000 (0) 'Stored'\n-06651C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-066520 CRC                   00000000 (0)\n-066524 Compressed Size       00000000 (0)\n-066528 Uncompressed Size     00000000 (0)\n-06652C Filename Length       003B (59)\n-06652E Extra Length          0009 (9)\n-066530 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66530: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06656B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06656D   Length              0005 (5)\n-06656F   Flags               01 (1) 'Modification'\n-066570   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-066574 PAYLOAD\n-\n-06702E DATA DESCRIPTOR       08074B50 (134695760)\n-067032 CRC                   43F8CC2B (1140378667)\n-067036 Compressed Size       00000ABA (2746)\n-06703A Uncompressed Size     00000ABA (2746)\n-\n-06703E LOCAL HEADER #212     04034B50 (67324752)\n-067042 Extract Zip Spec      14 (20) '2.0'\n-067043 Extract OS            00 (0) 'MS-DOS'\n-067044 General Purpose Flag  0000 (0)\n-067046 Compression Method    0000 (0) 'Stored'\n-067048 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06704C CRC                   00000000 (0)\n-067050 Compressed Size       00000000 (0)\n-067054 Uncompressed Size     00000000 (0)\n-067058 Filename Length       0034 (52)\n-06705A Extra Length          0009 (9)\n-06705C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6705C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-067090 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-067092   Length              0005 (5)\n-067094   Flags               01 (1) 'Modification'\n-067095   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-067099 LOCAL HEADER #213     04034B50 (67324752)\n-06709D Extract Zip Spec      14 (20) '2.0'\n-06709E Extract OS            00 (0) 'MS-DOS'\n-06709F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0670A1 Compression Method    0000 (0) 'Stored'\n-0670A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0670A7 CRC                   00000000 (0)\n-0670AB Compressed Size       00000000 (0)\n-0670AF Uncompressed Size     00000000 (0)\n-0670B3 Filename Length       0042 (66)\n-0670B5 Extra Length          0009 (9)\n-0670B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x670B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0670F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0670FB   Length              0005 (5)\n-0670FD   Flags               01 (1) 'Modification'\n-0670FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-067102 DATA DESCRIPTOR       08074B50 (134695760)\n-067106 CRC                   00000000 (0)\n-06710A Compressed Size       00000000 (0)\n-06710E Uncompressed Size     00000000 (0)\n-\n-067112 LOCAL HEADER #214     04034B50 (67324752)\n-067116 Extract Zip Spec      14 (20) '2.0'\n-067117 Extract OS            00 (0) 'MS-DOS'\n-067118 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06711A Compression Method    0000 (0) 'Stored'\n-06711C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-067120 CRC                   00000000 (0)\n-067124 Compressed Size       00000000 (0)\n-067128 Uncompressed Size     00000000 (0)\n-06712C Filename Length       003B (59)\n-06712E Extra Length          0009 (9)\n-067130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06716B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06716D   Length              0005 (5)\n-06716F   Flags               01 (1) 'Modification'\n-067170   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-067174 PAYLOAD\n-\n-067B01 DATA DESCRIPTOR       08074B50 (134695760)\n-067B05 CRC                   00C3B148 (12824904)\n-067B09 Compressed Size       0000098D (2445)\n-067B0D Uncompressed Size     0000098D (2445)\n-\n-067B11 LOCAL HEADER #215     04034B50 (67324752)\n-067B15 Extract Zip Spec      14 (20) '2.0'\n-067B16 Extract OS            00 (0) 'MS-DOS'\n-067B17 General Purpose Flag  0000 (0)\n-067B19 Compression Method    0000 (0) 'Stored'\n-067B1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-067B1F CRC                   00000000 (0)\n-067B23 Compressed Size       00000000 (0)\n-067B27 Uncompressed Size     00000000 (0)\n-067B2B Filename Length       0035 (53)\n-067B2D Extra Length          0009 (9)\n-067B2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-067B64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-067B66   Length              0005 (5)\n-067B68   Flags               01 (1) 'Modification'\n-067B69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-067B6D LOCAL HEADER #216     04034B50 (67324752)\n-067B71 Extract Zip Spec      14 (20) '2.0'\n-067B72 Extract OS            00 (0) 'MS-DOS'\n-067B73 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-067B75 Compression Method    0000 (0) 'Stored'\n-067B77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-067B7B CRC                   00000000 (0)\n-067B7F Compressed Size       00000000 (0)\n-067B83 Uncompressed Size     00000000 (0)\n-067B87 Filename Length       0043 (67)\n-067B89 Extra Length          0009 (9)\n-067B8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-067BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-067BD0   Length              0005 (5)\n-067BD2   Flags               01 (1) 'Modification'\n-067BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-067BD7 DATA DESCRIPTOR       08074B50 (134695760)\n-067BDB CRC                   00000000 (0)\n-067BDF Compressed Size       00000000 (0)\n-067BE3 Uncompressed Size     00000000 (0)\n-\n-067BE7 LOCAL HEADER #217     04034B50 (67324752)\n-067BEB Extract Zip Spec      14 (20) '2.0'\n-067BEC Extract OS            00 (0) 'MS-DOS'\n-067BED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-067BEF Compression Method    0000 (0) 'Stored'\n-067BF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-067BF5 CRC                   00000000 (0)\n-067BF9 Compressed Size       00000000 (0)\n-067BFD Uncompressed Size     00000000 (0)\n-067C01 Filename Length       003C (60)\n-067C03 Extra Length          0009 (9)\n-067C05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67C05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-067C41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-067C43   Length              0005 (5)\n-067C45   Flags               01 (1) 'Modification'\n-067C46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-067C4A PAYLOAD\n-\n-068560 DATA DESCRIPTOR       08074B50 (134695760)\n-068564 CRC                   4EEF2300 (1324294912)\n-068568 Compressed Size       00000916 (2326)\n-06856C Uncompressed Size     00000916 (2326)\n-\n-068570 LOCAL HEADER #218     04034B50 (67324752)\n-068574 Extract Zip Spec      14 (20) '2.0'\n-068575 Extract OS            00 (0) 'MS-DOS'\n-068576 General Purpose Flag  0000 (0)\n-068578 Compression Method    0000 (0) 'Stored'\n-06857A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06857E CRC                   00000000 (0)\n-068582 Compressed Size       00000000 (0)\n-068586 Uncompressed Size     00000000 (0)\n-06858A Filename Length       0036 (54)\n-06858C Extra Length          0009 (9)\n-06858E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6858E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0685C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0685C6   Length              0005 (5)\n-0685C8   Flags               01 (1) 'Modification'\n-0685C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0685CD LOCAL HEADER #219     04034B50 (67324752)\n-0685D1 Extract Zip Spec      14 (20) '2.0'\n-0685D2 Extract OS            00 (0) 'MS-DOS'\n-0685D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0685D5 Compression Method    0000 (0) 'Stored'\n-0685D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0685DB CRC                   00000000 (0)\n-0685DF Compressed Size       00000000 (0)\n-0685E3 Uncompressed Size     00000000 (0)\n-0685E7 Filename Length       0044 (68)\n-0685E9 Extra Length          0009 (9)\n-0685EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x685EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06862F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-068631   Length              0005 (5)\n-068633   Flags               01 (1) 'Modification'\n-068634   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-068638 DATA DESCRIPTOR       08074B50 (134695760)\n-06863C CRC                   00000000 (0)\n-068640 Compressed Size       00000000 (0)\n-068644 Uncompressed Size     00000000 (0)\n-\n-068648 LOCAL HEADER #220     04034B50 (67324752)\n-06864C Extract Zip Spec      14 (20) '2.0'\n-06864D Extract OS            00 (0) 'MS-DOS'\n-06864E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-068650 Compression Method    0000 (0) 'Stored'\n-068652 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-068656 CRC                   00000000 (0)\n-06865A Compressed Size       00000000 (0)\n-06865E Uncompressed Size     00000000 (0)\n-068662 Filename Length       003D (61)\n-068664 Extra Length          0009 (9)\n-068666 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68666: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0686A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0686A5   Length              0005 (5)\n-0686A7   Flags               01 (1) 'Modification'\n-0686A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0686AC PAYLOAD\n-\n-06900B DATA DESCRIPTOR       08074B50 (134695760)\n-06900F CRC                   2E65EAC2 (778431170)\n-069013 Compressed Size       0000095F (2399)\n-069017 Uncompressed Size     0000095F (2399)\n-\n-06901B LOCAL HEADER #221     04034B50 (67324752)\n-06901F Extract Zip Spec      14 (20) '2.0'\n-069020 Extract OS            00 (0) 'MS-DOS'\n-069021 General Purpose Flag  0000 (0)\n-069023 Compression Method    0000 (0) 'Stored'\n-069025 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-069029 CRC                   00000000 (0)\n-06902D Compressed Size       00000000 (0)\n-069031 Uncompressed Size     00000000 (0)\n-069035 Filename Length       0033 (51)\n-069037 Extra Length          0009 (9)\n-069039 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69039: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06906C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06906E   Length              0005 (5)\n-069070   Flags               01 (1) 'Modification'\n-069071   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-069075 LOCAL HEADER #222     04034B50 (67324752)\n-069079 Extract Zip Spec      14 (20) '2.0'\n-06907A Extract OS            00 (0) 'MS-DOS'\n-06907B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06907D Compression Method    0000 (0) 'Stored'\n-06907F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-069083 CRC                   00000000 (0)\n-069087 Compressed Size       00000000 (0)\n-06908B Uncompressed Size     00000000 (0)\n-06908F Filename Length       0041 (65)\n-069091 Extra Length          0009 (9)\n-069093 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69093: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0690D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0690D6   Length              0005 (5)\n-0690D8   Flags               01 (1) 'Modification'\n-0690D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0690DD DATA DESCRIPTOR       08074B50 (134695760)\n-0690E1 CRC                   00000000 (0)\n-0690E5 Compressed Size       00000000 (0)\n-0690E9 Uncompressed Size     00000000 (0)\n-\n-0690ED LOCAL HEADER #223     04034B50 (67324752)\n-0690F1 Extract Zip Spec      14 (20) '2.0'\n-0690F2 Extract OS            00 (0) 'MS-DOS'\n-0690F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0690F5 Compression Method    0000 (0) 'Stored'\n-0690F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0690FB CRC                   00000000 (0)\n-0690FF Compressed Size       00000000 (0)\n-069103 Uncompressed Size     00000000 (0)\n-069107 Filename Length       003A (58)\n-069109 Extra Length          0009 (9)\n-06910B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6910B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-069145 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-069147   Length              0005 (5)\n-069149   Flags               01 (1) 'Modification'\n-06914A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06914E PAYLOAD\n-\n-0699E6 DATA DESCRIPTOR       08074B50 (134695760)\n-0699EA CRC                   E426F2EA (3827757802)\n-0699EE Compressed Size       00000898 (2200)\n-0699F2 Uncompressed Size     00000898 (2200)\n-\n-0699F6 LOCAL HEADER #224     04034B50 (67324752)\n-0699FA Extract Zip Spec      14 (20) '2.0'\n-0699FB Extract OS            00 (0) 'MS-DOS'\n-0699FC General Purpose Flag  0000 (0)\n-0699FE Compression Method    0000 (0) 'Stored'\n-069A00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-069A04 CRC                   00000000 (0)\n-069A08 Compressed Size       00000000 (0)\n-069A0C Uncompressed Size     00000000 (0)\n-069A10 Filename Length       0039 (57)\n-069A12 Extra Length          0009 (9)\n-069A14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69A14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-069A4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-069A4F   Length              0005 (5)\n-069A51   Flags               01 (1) 'Modification'\n-069A52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-069A56 LOCAL HEADER #225     04034B50 (67324752)\n-069A5A Extract Zip Spec      14 (20) '2.0'\n-069A5B Extract OS            00 (0) 'MS-DOS'\n-069A5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-069A5E Compression Method    0000 (0) 'Stored'\n-069A60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-069A64 CRC                   00000000 (0)\n-069A68 Compressed Size       00000000 (0)\n-069A6C Uncompressed Size     00000000 (0)\n-069A70 Filename Length       0047 (71)\n-069A72 Extra Length          0009 (9)\n-069A74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69A74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-069ABB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-069ABD   Length              0005 (5)\n-069ABF   Flags               01 (1) 'Modification'\n-069AC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-069AC4 DATA DESCRIPTOR       08074B50 (134695760)\n-069AC8 CRC                   00000000 (0)\n-069ACC Compressed Size       00000000 (0)\n-069AD0 Uncompressed Size     00000000 (0)\n-\n-069AD4 LOCAL HEADER #226     04034B50 (67324752)\n-069AD8 Extract Zip Spec      14 (20) '2.0'\n-069AD9 Extract OS            00 (0) 'MS-DOS'\n-069ADA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-069ADC Compression Method    0000 (0) 'Stored'\n-069ADE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-069AE2 CRC                   00000000 (0)\n-069AE6 Compressed Size       00000000 (0)\n-069AEA Uncompressed Size     00000000 (0)\n-069AEE Filename Length       0040 (64)\n-069AF0 Extra Length          0009 (9)\n-069AF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69AF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-069B32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-069B34   Length              0005 (5)\n-069B36   Flags               01 (1) 'Modification'\n-069B37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-069B3B PAYLOAD\n-\n-06A553 DATA DESCRIPTOR       08074B50 (134695760)\n-06A557 CRC                   7BEDD7A7 (2079184807)\n-06A55B Compressed Size       00000A18 (2584)\n-06A55F Uncompressed Size     00000A18 (2584)\n-\n-06A563 LOCAL HEADER #227     04034B50 (67324752)\n-06A567 Extract Zip Spec      14 (20) '2.0'\n-06A568 Extract OS            00 (0) 'MS-DOS'\n-06A569 General Purpose Flag  0000 (0)\n-06A56B Compression Method    0000 (0) 'Stored'\n-06A56D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06A571 CRC                   00000000 (0)\n-06A575 Compressed Size       00000000 (0)\n-06A579 Uncompressed Size     00000000 (0)\n-06A57D Filename Length       002E (46)\n-06A57F Extra Length          0009 (9)\n-06A581 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A581: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06A5AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06A5B1   Length              0005 (5)\n-06A5B3   Flags               01 (1) 'Modification'\n-06A5B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06A5B8 LOCAL HEADER #228     04034B50 (67324752)\n-06A5BC Extract Zip Spec      14 (20) '2.0'\n-06A5BD Extract OS            00 (0) 'MS-DOS'\n-06A5BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06A5C0 Compression Method    0000 (0) 'Stored'\n-06A5C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06A5C6 CRC                   00000000 (0)\n-06A5CA Compressed Size       00000000 (0)\n-06A5CE Uncompressed Size     00000000 (0)\n-06A5D2 Filename Length       003C (60)\n-06A5D4 Extra Length          0009 (9)\n-06A5D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A5D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06A612 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06A614   Length              0005 (5)\n-06A616   Flags               01 (1) 'Modification'\n-06A617   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06A61B DATA DESCRIPTOR       08074B50 (134695760)\n-06A61F CRC                   00000000 (0)\n-06A623 Compressed Size       00000000 (0)\n-06A627 Uncompressed Size     00000000 (0)\n-\n-06A62B LOCAL HEADER #229     04034B50 (67324752)\n-06A62F Extract Zip Spec      14 (20) '2.0'\n-06A630 Extract OS            00 (0) 'MS-DOS'\n-06A631 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06A633 Compression Method    0000 (0) 'Stored'\n-06A635 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06A639 CRC                   00000000 (0)\n-06A63D Compressed Size       00000000 (0)\n-06A641 Uncompressed Size     00000000 (0)\n-06A645 Filename Length       0035 (53)\n-06A647 Extra Length          0009 (9)\n-06A649 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A649: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06A67E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06A680   Length              0005 (5)\n-06A682   Flags               01 (1) 'Modification'\n-06A683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06A687 PAYLOAD\n-\n-06B037 DATA DESCRIPTOR       08074B50 (134695760)\n-06B03B CRC                   0FC7AABB (264743611)\n-06B03F Compressed Size       000009B0 (2480)\n-06B043 Uncompressed Size     000009B0 (2480)\n-\n-06B047 LOCAL HEADER #230     04034B50 (67324752)\n-06B04B Extract Zip Spec      14 (20) '2.0'\n-06B04C Extract OS            00 (0) 'MS-DOS'\n-06B04D General Purpose Flag  0000 (0)\n-06B04F Compression Method    0000 (0) 'Stored'\n-06B051 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06B055 CRC                   00000000 (0)\n-06B059 Compressed Size       00000000 (0)\n-06B05D Uncompressed Size     00000000 (0)\n-06B061 Filename Length       0030 (48)\n-06B063 Extra Length          0009 (9)\n-06B065 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B065: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06B095 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06B097   Length              0005 (5)\n-06B099   Flags               01 (1) 'Modification'\n-06B09A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06B09E LOCAL HEADER #231     04034B50 (67324752)\n-06B0A2 Extract Zip Spec      14 (20) '2.0'\n-06B0A3 Extract OS            00 (0) 'MS-DOS'\n-06B0A4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06B0A6 Compression Method    0000 (0) 'Stored'\n-06B0A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06B0AC CRC                   00000000 (0)\n-06B0B0 Compressed Size       00000000 (0)\n-06B0B4 Uncompressed Size     00000000 (0)\n-06B0B8 Filename Length       003E (62)\n-06B0BA Extra Length          0009 (9)\n-06B0BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B0BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06B0FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06B0FC   Length              0005 (5)\n-06B0FE   Flags               01 (1) 'Modification'\n-06B0FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06B103 DATA DESCRIPTOR       08074B50 (134695760)\n-06B107 CRC                   00000000 (0)\n-06B10B Compressed Size       00000000 (0)\n-06B10F Uncompressed Size     00000000 (0)\n-\n-06B113 LOCAL HEADER #232     04034B50 (67324752)\n-06B117 Extract Zip Spec      14 (20) '2.0'\n-06B118 Extract OS            00 (0) 'MS-DOS'\n-06B119 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06B11B Compression Method    0000 (0) 'Stored'\n-06B11D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06B121 CRC                   00000000 (0)\n-06B125 Compressed Size       00000000 (0)\n-06B129 Uncompressed Size     00000000 (0)\n-06B12D Filename Length       0037 (55)\n-06B12F Extra Length          0009 (9)\n-06B131 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B131: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06B168 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06B16A   Length              0005 (5)\n-06B16C   Flags               01 (1) 'Modification'\n-06B16D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06B171 PAYLOAD\n-\n-06C12D DATA DESCRIPTOR       08074B50 (134695760)\n-06C131 CRC                   45DB5347 (1172001607)\n-06C135 Compressed Size       00000FBC (4028)\n-06C139 Uncompressed Size     00000FBC (4028)\n-\n-06C13D LOCAL HEADER #233     04034B50 (67324752)\n-06C141 Extract Zip Spec      14 (20) '2.0'\n-06C142 Extract OS            00 (0) 'MS-DOS'\n-06C143 General Purpose Flag  0000 (0)\n-06C145 Compression Method    0000 (0) 'Stored'\n-06C147 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06C14B CRC                   00000000 (0)\n-06C14F Compressed Size       00000000 (0)\n-06C153 Uncompressed Size     00000000 (0)\n-06C157 Filename Length       002F (47)\n-06C159 Extra Length          0009 (9)\n-06C15B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C15B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06C18A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06C18C   Length              0005 (5)\n-06C18E   Flags               01 (1) 'Modification'\n-06C18F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06C193 LOCAL HEADER #234     04034B50 (67324752)\n-06C197 Extract Zip Spec      14 (20) '2.0'\n-06C198 Extract OS            00 (0) 'MS-DOS'\n-06C199 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06C19B Compression Method    0000 (0) 'Stored'\n-06C19D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06C1A1 CRC                   00000000 (0)\n-06C1A5 Compressed Size       00000000 (0)\n-06C1A9 Uncompressed Size     00000000 (0)\n-06C1AD Filename Length       003D (61)\n-06C1AF Extra Length          0009 (9)\n-06C1B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C1B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06C1EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06C1F0   Length              0005 (5)\n-06C1F2   Flags               01 (1) 'Modification'\n-06C1F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06C1F7 DATA DESCRIPTOR       08074B50 (134695760)\n-06C1FB CRC                   00000000 (0)\n-06C1FF Compressed Size       00000000 (0)\n-06C203 Uncompressed Size     00000000 (0)\n-\n-06C207 LOCAL HEADER #235     04034B50 (67324752)\n-06C20B Extract Zip Spec      14 (20) '2.0'\n-06C20C Extract OS            00 (0) 'MS-DOS'\n-06C20D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06C20F Compression Method    0000 (0) 'Stored'\n-06C211 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06C215 CRC                   00000000 (0)\n-06C219 Compressed Size       00000000 (0)\n-06C21D Uncompressed Size     00000000 (0)\n-06C221 Filename Length       0036 (54)\n-06C223 Extra Length          0009 (9)\n-06C225 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C225: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06C25B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06C25D   Length              0005 (5)\n-06C25F   Flags               01 (1) 'Modification'\n-06C260   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06C264 PAYLOAD\n-\n-06CD27 DATA DESCRIPTOR       08074B50 (134695760)\n-06CD2B CRC                   6EE94123 (1860780323)\n-06CD2F Compressed Size       00000AC3 (2755)\n-06CD33 Uncompressed Size     00000AC3 (2755)\n-\n-06CD37 LOCAL HEADER #236     04034B50 (67324752)\n-06CD3B Extract Zip Spec      14 (20) '2.0'\n-06CD3C Extract OS            00 (0) 'MS-DOS'\n-06CD3D General Purpose Flag  0000 (0)\n-06CD3F Compression Method    0000 (0) 'Stored'\n-06CD41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06CD45 CRC                   00000000 (0)\n-06CD49 Compressed Size       00000000 (0)\n-06CD4D Uncompressed Size     00000000 (0)\n-06CD51 Filename Length       0032 (50)\n-06CD53 Extra Length          0009 (9)\n-06CD55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06CD87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06CD89   Length              0005 (5)\n-06CD8B   Flags               01 (1) 'Modification'\n-06CD8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06CD90 LOCAL HEADER #237     04034B50 (67324752)\n-06CD94 Extract Zip Spec      14 (20) '2.0'\n-06CD95 Extract OS            00 (0) 'MS-DOS'\n-06CD96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06CD98 Compression Method    0000 (0) 'Stored'\n-06CD9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06CD9E CRC                   00000000 (0)\n-06CDA2 Compressed Size       00000000 (0)\n-06CDA6 Uncompressed Size     00000000 (0)\n-06CDAA Filename Length       0040 (64)\n-06CDAC Extra Length          0009 (9)\n-06CDAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06CDEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06CDF0   Length              0005 (5)\n-06CDF2   Flags               01 (1) 'Modification'\n-06CDF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06CDF7 DATA DESCRIPTOR       08074B50 (134695760)\n-06CDFB CRC                   00000000 (0)\n-06CDFF Compressed Size       00000000 (0)\n-06CE03 Uncompressed Size     00000000 (0)\n-\n-06CE07 LOCAL HEADER #238     04034B50 (67324752)\n-06CE0B Extract Zip Spec      14 (20) '2.0'\n-06CE0C Extract OS            00 (0) 'MS-DOS'\n-06CE0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06CE0F Compression Method    0000 (0) 'Stored'\n-06CE11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06CE15 CRC                   00000000 (0)\n-06CE19 Compressed Size       00000000 (0)\n-06CE1D Uncompressed Size     00000000 (0)\n-06CE21 Filename Length       0039 (57)\n-06CE23 Extra Length          0009 (9)\n-06CE25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06CE5E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06CE60   Length              0005 (5)\n-06CE62   Flags               01 (1) 'Modification'\n-06CE63   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06CE67 PAYLOAD\n-\n-06D93D DATA DESCRIPTOR       08074B50 (134695760)\n-06D941 CRC                   BDCAAB86 (3184176006)\n-06D945 Compressed Size       00000AD6 (2774)\n-06D949 Uncompressed Size     00000AD6 (2774)\n-\n-06D94D LOCAL HEADER #239     04034B50 (67324752)\n-06D951 Extract Zip Spec      14 (20) '2.0'\n-06D952 Extract OS            00 (0) 'MS-DOS'\n-06D953 General Purpose Flag  0000 (0)\n-06D955 Compression Method    0000 (0) 'Stored'\n-06D957 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06D95B CRC                   00000000 (0)\n-06D95F Compressed Size       00000000 (0)\n-06D963 Uncompressed Size     00000000 (0)\n-06D967 Filename Length       002F (47)\n-06D969 Extra Length          0009 (9)\n-06D96B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D96B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06D99A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06D99C   Length              0005 (5)\n-06D99E   Flags               01 (1) 'Modification'\n-06D99F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06D9A3 LOCAL HEADER #240     04034B50 (67324752)\n-06D9A7 Extract Zip Spec      14 (20) '2.0'\n-06D9A8 Extract OS            00 (0) 'MS-DOS'\n-06D9A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06D9AB Compression Method    0000 (0) 'Stored'\n-06D9AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06D9B1 CRC                   00000000 (0)\n-06D9B5 Compressed Size       00000000 (0)\n-06D9B9 Uncompressed Size     00000000 (0)\n-06D9BD Filename Length       003D (61)\n-06D9BF Extra Length          0009 (9)\n-06D9C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06D9FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06DA00   Length              0005 (5)\n-06DA02   Flags               01 (1) 'Modification'\n-06DA03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06DA07 DATA DESCRIPTOR       08074B50 (134695760)\n-06DA0B CRC                   00000000 (0)\n-06DA0F Compressed Size       00000000 (0)\n-06DA13 Uncompressed Size     00000000 (0)\n-\n-06DA17 LOCAL HEADER #241     04034B50 (67324752)\n-06DA1B Extract Zip Spec      14 (20) '2.0'\n-06DA1C Extract OS            00 (0) 'MS-DOS'\n-06DA1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06DA1F Compression Method    0000 (0) 'Stored'\n-06DA21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06DA25 CRC                   00000000 (0)\n-06DA29 Compressed Size       00000000 (0)\n-06DA2D Uncompressed Size     00000000 (0)\n-06DA31 Filename Length       0036 (54)\n-06DA33 Extra Length          0009 (9)\n-06DA35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06DA6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06DA6D   Length              0005 (5)\n-06DA6F   Flags               01 (1) 'Modification'\n-06DA70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06DA74 PAYLOAD\n-\n-06E43C DATA DESCRIPTOR       08074B50 (134695760)\n-06E440 CRC                   0B401095 (188747925)\n-06E444 Compressed Size       000009C8 (2504)\n-06E448 Uncompressed Size     000009C8 (2504)\n-\n-06E44C LOCAL HEADER #242     04034B50 (67324752)\n-06E450 Extract Zip Spec      14 (20) '2.0'\n-06E451 Extract OS            00 (0) 'MS-DOS'\n-06E452 General Purpose Flag  0000 (0)\n-06E454 Compression Method    0000 (0) 'Stored'\n-06E456 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06E45A CRC                   00000000 (0)\n-06E45E Compressed Size       00000000 (0)\n-06E462 Uncompressed Size     00000000 (0)\n-06E466 Filename Length       0030 (48)\n-06E468 Extra Length          0009 (9)\n-06E46A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E46A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06E49A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06E49C   Length              0005 (5)\n-06E49E   Flags               01 (1) 'Modification'\n-06E49F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06E4A3 LOCAL HEADER #243     04034B50 (67324752)\n-06E4A7 Extract Zip Spec      14 (20) '2.0'\n-06E4A8 Extract OS            00 (0) 'MS-DOS'\n-06E4A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06E4AB Compression Method    0000 (0) 'Stored'\n-06E4AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06E4B1 CRC                   00000000 (0)\n-06E4B5 Compressed Size       00000000 (0)\n-06E4B9 Uncompressed Size     00000000 (0)\n-06E4BD Filename Length       003E (62)\n-06E4BF Extra Length          0009 (9)\n-06E4C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06E4FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06E501   Length              0005 (5)\n-06E503   Flags               01 (1) 'Modification'\n-06E504   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06E508 DATA DESCRIPTOR       08074B50 (134695760)\n-06E50C CRC                   00000000 (0)\n-06E510 Compressed Size       00000000 (0)\n-06E514 Uncompressed Size     00000000 (0)\n-\n-06E518 LOCAL HEADER #244     04034B50 (67324752)\n-06E51C Extract Zip Spec      14 (20) '2.0'\n-06E51D Extract OS            00 (0) 'MS-DOS'\n-06E51E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06E520 Compression Method    0000 (0) 'Stored'\n-06E522 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06E526 CRC                   00000000 (0)\n-06E52A Compressed Size       00000000 (0)\n-06E52E Uncompressed Size     00000000 (0)\n-06E532 Filename Length       0037 (55)\n-06E534 Extra Length          0009 (9)\n-06E536 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E536: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06E56D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06E56F   Length              0005 (5)\n-06E571   Flags               01 (1) 'Modification'\n-06E572   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06E576 PAYLOAD\n-\n-06ED29 DATA DESCRIPTOR       08074B50 (134695760)\n-06ED2D CRC                   59E5C05D (1508229213)\n-06ED31 Compressed Size       000007B3 (1971)\n-06ED35 Uncompressed Size     000007B3 (1971)\n-\n-06ED39 LOCAL HEADER #245     04034B50 (67324752)\n-06ED3D Extract Zip Spec      14 (20) '2.0'\n-06ED3E Extract OS            00 (0) 'MS-DOS'\n-06ED3F General Purpose Flag  0000 (0)\n-06ED41 Compression Method    0000 (0) 'Stored'\n-06ED43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06ED47 CRC                   00000000 (0)\n-06ED4B Compressed Size       00000000 (0)\n-06ED4F Uncompressed Size     00000000 (0)\n-06ED53 Filename Length       0034 (52)\n-06ED55 Extra Length          0009 (9)\n-06ED57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06ED8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06ED8D   Length              0005 (5)\n-06ED8F   Flags               01 (1) 'Modification'\n-06ED90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06ED94 LOCAL HEADER #246     04034B50 (67324752)\n-06ED98 Extract Zip Spec      14 (20) '2.0'\n-06ED99 Extract OS            00 (0) 'MS-DOS'\n-06ED9A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06ED9C Compression Method    0000 (0) 'Stored'\n-06ED9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06EDA2 CRC                   00000000 (0)\n-06EDA6 Compressed Size       00000000 (0)\n-06EDAA Uncompressed Size     00000000 (0)\n-06EDAE Filename Length       0042 (66)\n-06EDB0 Extra Length          0009 (9)\n-06EDB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06EDF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06EDF6   Length              0005 (5)\n-06EDF8   Flags               01 (1) 'Modification'\n-06EDF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06EDFD DATA DESCRIPTOR       08074B50 (134695760)\n-06EE01 CRC                   00000000 (0)\n-06EE05 Compressed Size       00000000 (0)\n-06EE09 Uncompressed Size     00000000 (0)\n-\n-06EE0D LOCAL HEADER #247     04034B50 (67324752)\n-06EE11 Extract Zip Spec      14 (20) '2.0'\n-06EE12 Extract OS            00 (0) 'MS-DOS'\n-06EE13 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06EE15 Compression Method    0000 (0) 'Stored'\n-06EE17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06EE1B CRC                   00000000 (0)\n-06EE1F Compressed Size       00000000 (0)\n-06EE23 Uncompressed Size     00000000 (0)\n-06EE27 Filename Length       003B (59)\n-06EE29 Extra Length          0009 (9)\n-06EE2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06EE66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06EE68   Length              0005 (5)\n-06EE6A   Flags               01 (1) 'Modification'\n-06EE6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06EE6F PAYLOAD\n-\n-06F6AE DATA DESCRIPTOR       08074B50 (134695760)\n-06F6B2 CRC                   D9872A58 (3649514072)\n-06F6B6 Compressed Size       0000083F (2111)\n-06F6BA Uncompressed Size     0000083F (2111)\n-\n-06F6BE LOCAL HEADER #248     04034B50 (67324752)\n-06F6C2 Extract Zip Spec      14 (20) '2.0'\n-06F6C3 Extract OS            00 (0) 'MS-DOS'\n-06F6C4 General Purpose Flag  0000 (0)\n-06F6C6 Compression Method    0000 (0) 'Stored'\n-06F6C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06F6CC CRC                   00000000 (0)\n-06F6D0 Compressed Size       00000000 (0)\n-06F6D4 Uncompressed Size     00000000 (0)\n-06F6D8 Filename Length       0038 (56)\n-06F6DA Extra Length          0009 (9)\n-06F6DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06F714 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06F716   Length              0005 (5)\n-06F718   Flags               01 (1) 'Modification'\n-06F719   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06F71D LOCAL HEADER #249     04034B50 (67324752)\n-06F721 Extract Zip Spec      14 (20) '2.0'\n-06F722 Extract OS            00 (0) 'MS-DOS'\n-06F723 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06F725 Compression Method    0000 (0) 'Stored'\n-06F727 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06F72B CRC                   00000000 (0)\n-06F72F Compressed Size       00000000 (0)\n-06F733 Uncompressed Size     00000000 (0)\n-06F737 Filename Length       0046 (70)\n-06F739 Extra Length          0009 (9)\n-06F73B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F73B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06F781 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06F783   Length              0005 (5)\n-06F785   Flags               01 (1) 'Modification'\n-06F786   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-06F78A DATA DESCRIPTOR       08074B50 (134695760)\n-06F78E CRC                   00000000 (0)\n-06F792 Compressed Size       00000000 (0)\n-06F796 Uncompressed Size     00000000 (0)\n-\n-06F79A LOCAL HEADER #250     04034B50 (67324752)\n-06F79E Extract Zip Spec      14 (20) '2.0'\n-06F79F Extract OS            00 (0) 'MS-DOS'\n-06F7A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-06F7A2 Compression Method    0000 (0) 'Stored'\n-06F7A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-06F7A8 CRC                   00000000 (0)\n-06F7AC Compressed Size       00000000 (0)\n-06F7B0 Uncompressed Size     00000000 (0)\n-06F7B4 Filename Length       003F (63)\n-06F7B6 Extra Length          0009 (9)\n-06F7B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-06F7F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-06F7F9   Length              0005 (5)\n-06F7FB   Flags               01 (1) 'Modification'\n-06F7FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-06F800 PAYLOAD\n-\n-070100 DATA DESCRIPTOR       08074B50 (134695760)\n-070104 CRC                   79CD4FCD (2043498445)\n-070108 Compressed Size       00000900 (2304)\n-07010C Uncompressed Size     00000900 (2304)\n-\n-070110 LOCAL HEADER #251     04034B50 (67324752)\n-070114 Extract Zip Spec      14 (20) '2.0'\n-070115 Extract OS            00 (0) 'MS-DOS'\n-070116 General Purpose Flag  0000 (0)\n-070118 Compression Method    0000 (0) 'Stored'\n-07011A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07011E CRC                   00000000 (0)\n-070122 Compressed Size       00000000 (0)\n-070126 Uncompressed Size     00000000 (0)\n-07012A Filename Length       0030 (48)\n-07012C Extra Length          0009 (9)\n-07012E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7012E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07015E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-070160   Length              0005 (5)\n-070162   Flags               01 (1) 'Modification'\n-070163   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-070167 LOCAL HEADER #252     04034B50 (67324752)\n-07016B Extract Zip Spec      14 (20) '2.0'\n-07016C Extract OS            00 (0) 'MS-DOS'\n-07016D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07016F Compression Method    0000 (0) 'Stored'\n-070171 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-070175 CRC                   00000000 (0)\n-070179 Compressed Size       00000000 (0)\n-07017D Uncompressed Size     00000000 (0)\n-070181 Filename Length       003E (62)\n-070183 Extra Length          0009 (9)\n-070185 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70185: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0701C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0701C5   Length              0005 (5)\n-0701C7   Flags               01 (1) 'Modification'\n-0701C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0701CC DATA DESCRIPTOR       08074B50 (134695760)\n-0701D0 CRC                   00000000 (0)\n-0701D4 Compressed Size       00000000 (0)\n-0701D8 Uncompressed Size     00000000 (0)\n-\n-0701DC LOCAL HEADER #253     04034B50 (67324752)\n-0701E0 Extract Zip Spec      14 (20) '2.0'\n-0701E1 Extract OS            00 (0) 'MS-DOS'\n-0701E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0701E4 Compression Method    0000 (0) 'Stored'\n-0701E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0701EA CRC                   00000000 (0)\n-0701EE Compressed Size       00000000 (0)\n-0701F2 Uncompressed Size     00000000 (0)\n-0701F6 Filename Length       0037 (55)\n-0701F8 Extra Length          0009 (9)\n-0701FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-070231 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-070233   Length              0005 (5)\n-070235   Flags               01 (1) 'Modification'\n-070236   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07023A PAYLOAD\n-\n-070C6D DATA DESCRIPTOR       08074B50 (134695760)\n-070C71 CRC                   922534C7 (2451911879)\n-070C75 Compressed Size       00000A33 (2611)\n-070C79 Uncompressed Size     00000A33 (2611)\n-\n-070C7D LOCAL HEADER #254     04034B50 (67324752)\n-070C81 Extract Zip Spec      14 (20) '2.0'\n-070C82 Extract OS            00 (0) 'MS-DOS'\n-070C83 General Purpose Flag  0000 (0)\n-070C85 Compression Method    0000 (0) 'Stored'\n-070C87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-070C8B CRC                   00000000 (0)\n-070C8F Compressed Size       00000000 (0)\n-070C93 Uncompressed Size     00000000 (0)\n-070C97 Filename Length       002F (47)\n-070C99 Extra Length          0009 (9)\n-070C9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70C9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-070CCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-070CCC   Length              0005 (5)\n-070CCE   Flags               01 (1) 'Modification'\n-070CCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-070CD3 LOCAL HEADER #255     04034B50 (67324752)\n-070CD7 Extract Zip Spec      14 (20) '2.0'\n-070CD8 Extract OS            00 (0) 'MS-DOS'\n-070CD9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-070CDB Compression Method    0000 (0) 'Stored'\n-070CDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-070CE1 CRC                   00000000 (0)\n-070CE5 Compressed Size       00000000 (0)\n-070CE9 Uncompressed Size     00000000 (0)\n-070CED Filename Length       003D (61)\n-070CEF Extra Length          0009 (9)\n-070CF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70CF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-070D2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-070D30   Length              0005 (5)\n-070D32   Flags               01 (1) 'Modification'\n-070D33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-070D37 DATA DESCRIPTOR       08074B50 (134695760)\n-070D3B CRC                   00000000 (0)\n-070D3F Compressed Size       00000000 (0)\n-070D43 Uncompressed Size     00000000 (0)\n-\n-070D47 LOCAL HEADER #256     04034B50 (67324752)\n-070D4B Extract Zip Spec      14 (20) '2.0'\n-070D4C Extract OS            00 (0) 'MS-DOS'\n-070D4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-070D4F Compression Method    0000 (0) 'Stored'\n-070D51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-070D55 CRC                   00000000 (0)\n-070D59 Compressed Size       00000000 (0)\n-070D5D Uncompressed Size     00000000 (0)\n-070D61 Filename Length       0036 (54)\n-070D63 Extra Length          0009 (9)\n-070D65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70D65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-070D9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-070D9D   Length              0005 (5)\n-070D9F   Flags               01 (1) 'Modification'\n-070DA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-070DA4 PAYLOAD\n-\n-071D43 DATA DESCRIPTOR       08074B50 (134695760)\n-071D47 CRC                   B2FF8BF3 (3003091955)\n-071D4B Compressed Size       00000F9F (3999)\n-071D4F Uncompressed Size     00000F9F (3999)\n-\n-071D53 LOCAL HEADER #257     04034B50 (67324752)\n-071D57 Extract Zip Spec      14 (20) '2.0'\n-071D58 Extract OS            00 (0) 'MS-DOS'\n-071D59 General Purpose Flag  0000 (0)\n-071D5B Compression Method    0000 (0) 'Stored'\n-071D5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-071D61 CRC                   00000000 (0)\n-071D65 Compressed Size       00000000 (0)\n-071D69 Uncompressed Size     00000000 (0)\n-071D6D Filename Length       002E (46)\n-071D6F Extra Length          0009 (9)\n-071D71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x71D71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-071D9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-071DA1   Length              0005 (5)\n-071DA3   Flags               01 (1) 'Modification'\n-071DA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-071DA8 LOCAL HEADER #258     04034B50 (67324752)\n-071DAC Extract Zip Spec      14 (20) '2.0'\n-071DAD Extract OS            00 (0) 'MS-DOS'\n-071DAE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-071DB0 Compression Method    0000 (0) 'Stored'\n-071DB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-071DB6 CRC                   00000000 (0)\n-071DBA Compressed Size       00000000 (0)\n-071DBE Uncompressed Size     00000000 (0)\n-071DC2 Filename Length       003C (60)\n-071DC4 Extra Length          0009 (9)\n-071DC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x71DC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-071E02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-071E04   Length              0005 (5)\n-071E06   Flags               01 (1) 'Modification'\n-071E07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-071E0B DATA DESCRIPTOR       08074B50 (134695760)\n-071E0F CRC                   00000000 (0)\n-071E13 Compressed Size       00000000 (0)\n-071E17 Uncompressed Size     00000000 (0)\n-\n-071E1B LOCAL HEADER #259     04034B50 (67324752)\n-071E1F Extract Zip Spec      14 (20) '2.0'\n-071E20 Extract OS            00 (0) 'MS-DOS'\n-071E21 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-071E23 Compression Method    0000 (0) 'Stored'\n-071E25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-071E29 CRC                   00000000 (0)\n-071E2D Compressed Size       00000000 (0)\n-071E31 Uncompressed Size     00000000 (0)\n-071E35 Filename Length       0035 (53)\n-071E37 Extra Length          0009 (9)\n-071E39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x71E39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-071E6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-071E70   Length              0005 (5)\n-071E72   Flags               01 (1) 'Modification'\n-071E73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-071E77 PAYLOAD\n-\n-0726A8 DATA DESCRIPTOR       08074B50 (134695760)\n-0726AC CRC                   078EE984 (126806404)\n-0726B0 Compressed Size       00000831 (2097)\n-0726B4 Uncompressed Size     00000831 (2097)\n-\n-0726B8 LOCAL HEADER #260     04034B50 (67324752)\n-0726BC Extract Zip Spec      14 (20) '2.0'\n-0726BD Extract OS            00 (0) 'MS-DOS'\n-0726BE General Purpose Flag  0000 (0)\n-0726C0 Compression Method    0000 (0) 'Stored'\n-0726C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0726C6 CRC                   00000000 (0)\n-0726CA Compressed Size       00000000 (0)\n-0726CE Uncompressed Size     00000000 (0)\n-0726D2 Filename Length       0031 (49)\n-0726D4 Extra Length          0009 (9)\n-0726D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x726D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-072707 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-072709   Length              0005 (5)\n-07270B   Flags               01 (1) 'Modification'\n-07270C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-072710 LOCAL HEADER #261     04034B50 (67324752)\n-072714 Extract Zip Spec      14 (20) '2.0'\n-072715 Extract OS            00 (0) 'MS-DOS'\n-072716 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-072718 Compression Method    0000 (0) 'Stored'\n-07271A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07271E CRC                   00000000 (0)\n-072722 Compressed Size       00000000 (0)\n-072726 Uncompressed Size     00000000 (0)\n-07272A Filename Length       003F (63)\n-07272C Extra Length          0009 (9)\n-07272E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7272E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07276D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07276F   Length              0005 (5)\n-072771   Flags               01 (1) 'Modification'\n-072772   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-072776 DATA DESCRIPTOR       08074B50 (134695760)\n-07277A CRC                   00000000 (0)\n-07277E Compressed Size       00000000 (0)\n-072782 Uncompressed Size     00000000 (0)\n-\n-072786 LOCAL HEADER #262     04034B50 (67324752)\n-07278A Extract Zip Spec      14 (20) '2.0'\n-07278B Extract OS            00 (0) 'MS-DOS'\n-07278C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07278E Compression Method    0000 (0) 'Stored'\n-072790 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-072794 CRC                   00000000 (0)\n-072798 Compressed Size       00000000 (0)\n-07279C Uncompressed Size     00000000 (0)\n-0727A0 Filename Length       0038 (56)\n-0727A2 Extra Length          0009 (9)\n-0727A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x727A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0727DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0727DE   Length              0005 (5)\n-0727E0   Flags               01 (1) 'Modification'\n-0727E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0727E5 PAYLOAD\n-\n-073467 DATA DESCRIPTOR       08074B50 (134695760)\n-07346B CRC                   2B7AF38C (729478028)\n-07346F Compressed Size       00000C82 (3202)\n-073473 Uncompressed Size     00000C82 (3202)\n-\n-073477 LOCAL HEADER #263     04034B50 (67324752)\n-07347B Extract Zip Spec      14 (20) '2.0'\n-07347C Extract OS            00 (0) 'MS-DOS'\n-07347D General Purpose Flag  0000 (0)\n-07347F Compression Method    0000 (0) 'Stored'\n-073481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-073485 CRC                   00000000 (0)\n-073489 Compressed Size       00000000 (0)\n-07348D Uncompressed Size     00000000 (0)\n-073491 Filename Length       0035 (53)\n-073493 Extra Length          0009 (9)\n-073495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x73495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0734CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0734CC   Length              0005 (5)\n-0734CE   Flags               01 (1) 'Modification'\n-0734CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0734D3 LOCAL HEADER #264     04034B50 (67324752)\n-0734D7 Extract Zip Spec      14 (20) '2.0'\n-0734D8 Extract OS            00 (0) 'MS-DOS'\n-0734D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0734DB Compression Method    0000 (0) 'Stored'\n-0734DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0734E1 CRC                   00000000 (0)\n-0734E5 Compressed Size       00000000 (0)\n-0734E9 Uncompressed Size     00000000 (0)\n-0734ED Filename Length       0043 (67)\n-0734EF Extra Length          0009 (9)\n-0734F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x734F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-073534 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-073536   Length              0005 (5)\n-073538   Flags               01 (1) 'Modification'\n-073539   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07353D DATA DESCRIPTOR       08074B50 (134695760)\n-073541 CRC                   00000000 (0)\n-073545 Compressed Size       00000000 (0)\n-073549 Uncompressed Size     00000000 (0)\n-\n-07354D LOCAL HEADER #265     04034B50 (67324752)\n-073551 Extract Zip Spec      14 (20) '2.0'\n-073552 Extract OS            00 (0) 'MS-DOS'\n-073553 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-073555 Compression Method    0000 (0) 'Stored'\n-073557 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07355B CRC                   00000000 (0)\n-07355F Compressed Size       00000000 (0)\n-073563 Uncompressed Size     00000000 (0)\n-073567 Filename Length       003C (60)\n-073569 Extra Length          0009 (9)\n-07356B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7356B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0735A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0735A9   Length              0005 (5)\n-0735AB   Flags               01 (1) 'Modification'\n-0735AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0735B0 PAYLOAD\n-\n-074224 DATA DESCRIPTOR       08074B50 (134695760)\n-074228 CRC                   7C2E72D4 (2083418836)\n-07422C Compressed Size       00000C74 (3188)\n-074230 Uncompressed Size     00000C74 (3188)\n-\n-074234 LOCAL HEADER #266     04034B50 (67324752)\n-074238 Extract Zip Spec      14 (20) '2.0'\n-074239 Extract OS            00 (0) 'MS-DOS'\n-07423A General Purpose Flag  0000 (0)\n-07423C Compression Method    0000 (0) 'Stored'\n-07423E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074242 CRC                   00000000 (0)\n-074246 Compressed Size       00000000 (0)\n-07424A Uncompressed Size     00000000 (0)\n-07424E Filename Length       002E (46)\n-074250 Extra Length          0009 (9)\n-074252 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x74252: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-074280 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-074282   Length              0005 (5)\n-074284   Flags               01 (1) 'Modification'\n-074285   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-074289 LOCAL HEADER #267     04034B50 (67324752)\n-07428D Extract Zip Spec      14 (20) '2.0'\n-07428E Extract OS            00 (0) 'MS-DOS'\n-07428F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-074291 Compression Method    0000 (0) 'Stored'\n-074293 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074297 CRC                   00000000 (0)\n-07429B Compressed Size       00000000 (0)\n-07429F Uncompressed Size     00000000 (0)\n-0742A3 Filename Length       003C (60)\n-0742A5 Extra Length          0009 (9)\n-0742A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x742A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0742E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0742E5   Length              0005 (5)\n-0742E7   Flags               01 (1) 'Modification'\n-0742E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0742EC DATA DESCRIPTOR       08074B50 (134695760)\n-0742F0 CRC                   00000000 (0)\n-0742F4 Compressed Size       00000000 (0)\n-0742F8 Uncompressed Size     00000000 (0)\n-\n-0742FC LOCAL HEADER #268     04034B50 (67324752)\n-074300 Extract Zip Spec      14 (20) '2.0'\n-074301 Extract OS            00 (0) 'MS-DOS'\n-074302 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-074304 Compression Method    0000 (0) 'Stored'\n-074306 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07430A CRC                   00000000 (0)\n-07430E Compressed Size       00000000 (0)\n-074312 Uncompressed Size     00000000 (0)\n-074316 Filename Length       0035 (53)\n-074318 Extra Length          0009 (9)\n-07431A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7431A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07434F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-074351   Length              0005 (5)\n-074353   Flags               01 (1) 'Modification'\n-074354   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-074358 PAYLOAD\n-\n-074E7A DATA DESCRIPTOR       08074B50 (134695760)\n-074E7E CRC                   4CDF6DC7 (1289711047)\n-074E82 Compressed Size       00000B22 (2850)\n-074E86 Uncompressed Size     00000B22 (2850)\n-\n-074E8A LOCAL HEADER #269     04034B50 (67324752)\n-074E8E Extract Zip Spec      14 (20) '2.0'\n-074E8F Extract OS            00 (0) 'MS-DOS'\n-074E90 General Purpose Flag  0000 (0)\n-074E92 Compression Method    0000 (0) 'Stored'\n-074E94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074E98 CRC                   00000000 (0)\n-074E9C Compressed Size       00000000 (0)\n-074EA0 Uncompressed Size     00000000 (0)\n-074EA4 Filename Length       0038 (56)\n-074EA6 Extra Length          0009 (9)\n-074EA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x74EA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-074EE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-074EE2   Length              0005 (5)\n-074EE4   Flags               01 (1) 'Modification'\n-074EE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-074EE9 LOCAL HEADER #270     04034B50 (67324752)\n-074EED Extract Zip Spec      14 (20) '2.0'\n-074EEE Extract OS            00 (0) 'MS-DOS'\n-074EEF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-074EF1 Compression Method    0000 (0) 'Stored'\n-074EF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074EF7 CRC                   00000000 (0)\n-074EFB Compressed Size       00000000 (0)\n-074EFF Uncompressed Size     00000000 (0)\n-074F03 Filename Length       0046 (70)\n-074F05 Extra Length          0009 (9)\n-074F07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x74F07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-074F4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-074F4F   Length              0005 (5)\n-074F51   Flags               01 (1) 'Modification'\n-074F52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-074F56 DATA DESCRIPTOR       08074B50 (134695760)\n-074F5A CRC                   00000000 (0)\n-074F5E Compressed Size       00000000 (0)\n-074F62 Uncompressed Size     00000000 (0)\n-\n-074F66 LOCAL HEADER #271     04034B50 (67324752)\n-074F6A Extract Zip Spec      14 (20) '2.0'\n-074F6B Extract OS            00 (0) 'MS-DOS'\n-074F6C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-074F6E Compression Method    0000 (0) 'Stored'\n-074F70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-074F74 CRC                   00000000 (0)\n-074F78 Compressed Size       00000000 (0)\n-074F7C Uncompressed Size     00000000 (0)\n-074F80 Filename Length       003F (63)\n-074F82 Extra Length          0009 (9)\n-074F84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x74F84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-074FC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-074FC5   Length              0005 (5)\n-074FC7   Flags               01 (1) 'Modification'\n-074FC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-074FCC PAYLOAD\n-\n-075785 DATA DESCRIPTOR       08074B50 (134695760)\n-075789 CRC                   E8369296 (3895890582)\n-07578D Compressed Size       000007B9 (1977)\n-075791 Uncompressed Size     000007B9 (1977)\n-\n-075795 LOCAL HEADER #272     04034B50 (67324752)\n-075799 Extract Zip Spec      14 (20) '2.0'\n-07579A Extract OS            00 (0) 'MS-DOS'\n-07579B General Purpose Flag  0000 (0)\n-07579D Compression Method    0000 (0) 'Stored'\n-07579F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0757A3 CRC                   00000000 (0)\n-0757A7 Compressed Size       00000000 (0)\n-0757AB Uncompressed Size     00000000 (0)\n-0757AF Filename Length       0039 (57)\n-0757B1 Extra Length          0009 (9)\n-0757B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x757B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0757EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0757EE   Length              0005 (5)\n-0757F0   Flags               01 (1) 'Modification'\n-0757F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0757F5 LOCAL HEADER #273     04034B50 (67324752)\n-0757F9 Extract Zip Spec      14 (20) '2.0'\n-0757FA Extract OS            00 (0) 'MS-DOS'\n-0757FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0757FD Compression Method    0000 (0) 'Stored'\n-0757FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-075803 CRC                   00000000 (0)\n-075807 Compressed Size       00000000 (0)\n-07580B Uncompressed Size     00000000 (0)\n-07580F Filename Length       0047 (71)\n-075811 Extra Length          0009 (9)\n-075813 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x75813: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07585A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07585C   Length              0005 (5)\n-07585E   Flags               01 (1) 'Modification'\n-07585F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-075863 DATA DESCRIPTOR       08074B50 (134695760)\n-075867 CRC                   00000000 (0)\n-07586B Compressed Size       00000000 (0)\n-07586F Uncompressed Size     00000000 (0)\n-\n-075873 LOCAL HEADER #274     04034B50 (67324752)\n-075877 Extract Zip Spec      14 (20) '2.0'\n-075878 Extract OS            00 (0) 'MS-DOS'\n-075879 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07587B Compression Method    0000 (0) 'Stored'\n-07587D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-075881 CRC                   00000000 (0)\n-075885 Compressed Size       00000000 (0)\n-075889 Uncompressed Size     00000000 (0)\n-07588D Filename Length       0040 (64)\n-07588F Extra Length          0009 (9)\n-075891 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x75891: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0758D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0758D3   Length              0005 (5)\n-0758D5   Flags               01 (1) 'Modification'\n-0758D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0758DA PAYLOAD\n-\n-076127 DATA DESCRIPTOR       08074B50 (134695760)\n-07612B CRC                   469E1753 (1184765779)\n-07612F Compressed Size       0000084D (2125)\n-076133 Uncompressed Size     0000084D (2125)\n-\n-076137 LOCAL HEADER #275     04034B50 (67324752)\n-07613B Extract Zip Spec      14 (20) '2.0'\n-07613C Extract OS            00 (0) 'MS-DOS'\n-07613D General Purpose Flag  0000 (0)\n-07613F Compression Method    0000 (0) 'Stored'\n-076141 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-076145 CRC                   00000000 (0)\n-076149 Compressed Size       00000000 (0)\n-07614D Uncompressed Size     00000000 (0)\n-076151 Filename Length       003D (61)\n-076153 Extra Length          0009 (9)\n-076155 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x76155: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-076192 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076194   Length              0005 (5)\n-076196   Flags               01 (1) 'Modification'\n-076197   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07619B LOCAL HEADER #276     04034B50 (67324752)\n-07619F Extract Zip Spec      14 (20) '2.0'\n-0761A0 Extract OS            00 (0) 'MS-DOS'\n-0761A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0761A3 Compression Method    0000 (0) 'Stored'\n-0761A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0761A9 CRC                   00000000 (0)\n-0761AD Compressed Size       00000000 (0)\n-0761B1 Uncompressed Size     00000000 (0)\n-0761B5 Filename Length       004B (75)\n-0761B7 Extra Length          0009 (9)\n-0761B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x761B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-076204 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076206   Length              0005 (5)\n-076208   Flags               01 (1) 'Modification'\n-076209   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07620D DATA DESCRIPTOR       08074B50 (134695760)\n-076211 CRC                   00000000 (0)\n-076215 Compressed Size       00000000 (0)\n-076219 Uncompressed Size     00000000 (0)\n-\n-07621D LOCAL HEADER #277     04034B50 (67324752)\n-076221 Extract Zip Spec      14 (20) '2.0'\n-076222 Extract OS            00 (0) 'MS-DOS'\n-076223 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-076225 Compression Method    0000 (0) 'Stored'\n-076227 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07622B CRC                   00000000 (0)\n-07622F Compressed Size       00000000 (0)\n-076233 Uncompressed Size     00000000 (0)\n-076237 Filename Length       0044 (68)\n-076239 Extra Length          0009 (9)\n-07623B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7623B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07627F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076281   Length              0005 (5)\n-076283   Flags               01 (1) 'Modification'\n-076284   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-076288 PAYLOAD\n-\n-076AC4 DATA DESCRIPTOR       08074B50 (134695760)\n-076AC8 CRC                   16DF2D66 (383724902)\n-076ACC Compressed Size       0000083C (2108)\n-076AD0 Uncompressed Size     0000083C (2108)\n-\n-076AD4 LOCAL HEADER #278     04034B50 (67324752)\n-076AD8 Extract Zip Spec      14 (20) '2.0'\n-076AD9 Extract OS            00 (0) 'MS-DOS'\n-076ADA General Purpose Flag  0000 (0)\n-076ADC Compression Method    0000 (0) 'Stored'\n-076ADE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-076AE2 CRC                   00000000 (0)\n-076AE6 Compressed Size       00000000 (0)\n-076AEA Uncompressed Size     00000000 (0)\n-076AEE Filename Length       0038 (56)\n-076AF0 Extra Length          0009 (9)\n-076AF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x76AF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-076B2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076B2C   Length              0005 (5)\n-076B2E   Flags               01 (1) 'Modification'\n-076B2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-076B33 LOCAL HEADER #279     04034B50 (67324752)\n-076B37 Extract Zip Spec      14 (20) '2.0'\n-076B38 Extract OS            00 (0) 'MS-DOS'\n-076B39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-076B3B Compression Method    0000 (0) 'Stored'\n-076B3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-076B41 CRC                   00000000 (0)\n-076B45 Compressed Size       00000000 (0)\n-076B49 Uncompressed Size     00000000 (0)\n-076B4D Filename Length       0046 (70)\n-076B4F Extra Length          0009 (9)\n-076B51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x76B51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-076B97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076B99   Length              0005 (5)\n-076B9B   Flags               01 (1) 'Modification'\n-076B9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-076BA0 DATA DESCRIPTOR       08074B50 (134695760)\n-076BA4 CRC                   00000000 (0)\n-076BA8 Compressed Size       00000000 (0)\n-076BAC Uncompressed Size     00000000 (0)\n-\n-076BB0 LOCAL HEADER #280     04034B50 (67324752)\n-076BB4 Extract Zip Spec      14 (20) '2.0'\n-076BB5 Extract OS            00 (0) 'MS-DOS'\n-076BB6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-076BB8 Compression Method    0000 (0) 'Stored'\n-076BBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-076BBE CRC                   00000000 (0)\n-076BC2 Compressed Size       00000000 (0)\n-076BC6 Uncompressed Size     00000000 (0)\n-076BCA Filename Length       003F (63)\n-076BCC Extra Length          0009 (9)\n-076BCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x76BCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-076C0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-076C0F   Length              0005 (5)\n-076C11   Flags               01 (1) 'Modification'\n-076C12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-076C16 PAYLOAD\n-\n-077463 DATA DESCRIPTOR       08074B50 (134695760)\n-077467 CRC                   4C93F7E4 (1284765668)\n-07746B Compressed Size       0000084D (2125)\n-07746F Uncompressed Size     0000084D (2125)\n-\n-077473 LOCAL HEADER #281     04034B50 (67324752)\n-077477 Extract Zip Spec      14 (20) '2.0'\n-077478 Extract OS            00 (0) 'MS-DOS'\n-077479 General Purpose Flag  0000 (0)\n-07747B Compression Method    0000 (0) 'Stored'\n-07747D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-077481 CRC                   00000000 (0)\n-077485 Compressed Size       00000000 (0)\n-077489 Uncompressed Size     00000000 (0)\n-07748D Filename Length       0039 (57)\n-07748F Extra Length          0009 (9)\n-077491 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x77491: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0774CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0774CC   Length              0005 (5)\n-0774CE   Flags               01 (1) 'Modification'\n-0774CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0774D3 LOCAL HEADER #282     04034B50 (67324752)\n-0774D7 Extract Zip Spec      14 (20) '2.0'\n-0774D8 Extract OS            00 (0) 'MS-DOS'\n-0774D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0774DB Compression Method    0000 (0) 'Stored'\n-0774DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0774E1 CRC                   00000000 (0)\n-0774E5 Compressed Size       00000000 (0)\n-0774E9 Uncompressed Size     00000000 (0)\n-0774ED Filename Length       0047 (71)\n-0774EF Extra Length          0009 (9)\n-0774F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x774F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-077538 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07753A   Length              0005 (5)\n-07753C   Flags               01 (1) 'Modification'\n-07753D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-077541 DATA DESCRIPTOR       08074B50 (134695760)\n-077545 CRC                   00000000 (0)\n-077549 Compressed Size       00000000 (0)\n-07754D Uncompressed Size     00000000 (0)\n-\n-077551 LOCAL HEADER #283     04034B50 (67324752)\n-077555 Extract Zip Spec      14 (20) '2.0'\n-077556 Extract OS            00 (0) 'MS-DOS'\n-077557 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-077559 Compression Method    0000 (0) 'Stored'\n-07755B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07755F CRC                   00000000 (0)\n-077563 Compressed Size       00000000 (0)\n-077567 Uncompressed Size     00000000 (0)\n-07756B Filename Length       0040 (64)\n-07756D Extra Length          0009 (9)\n-07756F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7756F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0775AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0775B1   Length              0005 (5)\n-0775B3   Flags               01 (1) 'Modification'\n-0775B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0775B8 PAYLOAD\n-\n-077E04 DATA DESCRIPTOR       08074B50 (134695760)\n-077E08 CRC                   0E05CB4C (235260748)\n-077E0C Compressed Size       0000084C (2124)\n-077E10 Uncompressed Size     0000084C (2124)\n-\n-077E14 LOCAL HEADER #284     04034B50 (67324752)\n-077E18 Extract Zip Spec      14 (20) '2.0'\n-077E19 Extract OS            00 (0) 'MS-DOS'\n-077E1A General Purpose Flag  0000 (0)\n-077E1C Compression Method    0000 (0) 'Stored'\n-077E1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-077E22 CRC                   00000000 (0)\n-077E26 Compressed Size       00000000 (0)\n-077E2A Uncompressed Size     00000000 (0)\n-077E2E Filename Length       003D (61)\n-077E30 Extra Length          0009 (9)\n-077E32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x77E32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-077E6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-077E71   Length              0005 (5)\n-077E73   Flags               01 (1) 'Modification'\n-077E74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-077E78 LOCAL HEADER #285     04034B50 (67324752)\n-077E7C Extract Zip Spec      14 (20) '2.0'\n-077E7D Extract OS            00 (0) 'MS-DOS'\n-077E7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-077E80 Compression Method    0000 (0) 'Stored'\n-077E82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-077E86 CRC                   00000000 (0)\n-077E8A Compressed Size       00000000 (0)\n-077E8E Uncompressed Size     00000000 (0)\n-077E92 Filename Length       004B (75)\n-077E94 Extra Length          0009 (9)\n-077E96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x77E96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-077EE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-077EE3   Length              0005 (5)\n-077EE5   Flags               01 (1) 'Modification'\n-077EE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-077EEA DATA DESCRIPTOR       08074B50 (134695760)\n-077EEE CRC                   00000000 (0)\n-077EF2 Compressed Size       00000000 (0)\n-077EF6 Uncompressed Size     00000000 (0)\n-\n-077EFA LOCAL HEADER #286     04034B50 (67324752)\n-077EFE Extract Zip Spec      14 (20) '2.0'\n-077EFF Extract OS            00 (0) 'MS-DOS'\n-077F00 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-077F02 Compression Method    0000 (0) 'Stored'\n-077F04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-077F08 CRC                   00000000 (0)\n-077F0C Compressed Size       00000000 (0)\n-077F10 Uncompressed Size     00000000 (0)\n-077F14 Filename Length       0044 (68)\n-077F16 Extra Length          0009 (9)\n-077F18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x77F18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-077F5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-077F5E   Length              0005 (5)\n-077F60   Flags               01 (1) 'Modification'\n-077F61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-077F65 PAYLOAD\n-\n-0787A5 DATA DESCRIPTOR       08074B50 (134695760)\n-0787A9 CRC                   FE255727 (4263860007)\n-0787AD Compressed Size       00000840 (2112)\n-0787B1 Uncompressed Size     00000840 (2112)\n-\n-0787B5 LOCAL HEADER #287     04034B50 (67324752)\n-0787B9 Extract Zip Spec      14 (20) '2.0'\n-0787BA Extract OS            00 (0) 'MS-DOS'\n-0787BB General Purpose Flag  0000 (0)\n-0787BD Compression Method    0000 (0) 'Stored'\n-0787BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0787C3 CRC                   00000000 (0)\n-0787C7 Compressed Size       00000000 (0)\n-0787CB Uncompressed Size     00000000 (0)\n-0787CF Filename Length       0038 (56)\n-0787D1 Extra Length          0009 (9)\n-0787D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x787D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07880B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07880D   Length              0005 (5)\n-07880F   Flags               01 (1) 'Modification'\n-078810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-078814 LOCAL HEADER #288     04034B50 (67324752)\n-078818 Extract Zip Spec      14 (20) '2.0'\n-078819 Extract OS            00 (0) 'MS-DOS'\n-07881A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07881C Compression Method    0000 (0) 'Stored'\n-07881E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-078822 CRC                   00000000 (0)\n-078826 Compressed Size       00000000 (0)\n-07882A Uncompressed Size     00000000 (0)\n-07882E Filename Length       0046 (70)\n-078830 Extra Length          0009 (9)\n-078832 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x78832: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-078878 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07887A   Length              0005 (5)\n-07887C   Flags               01 (1) 'Modification'\n-07887D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-078881 DATA DESCRIPTOR       08074B50 (134695760)\n-078885 CRC                   00000000 (0)\n-078889 Compressed Size       00000000 (0)\n-07888D Uncompressed Size     00000000 (0)\n-\n-078891 LOCAL HEADER #289     04034B50 (67324752)\n-078895 Extract Zip Spec      14 (20) '2.0'\n-078896 Extract OS            00 (0) 'MS-DOS'\n-078897 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-078899 Compression Method    0000 (0) 'Stored'\n-07889B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07889F CRC                   00000000 (0)\n-0788A3 Compressed Size       00000000 (0)\n-0788A7 Uncompressed Size     00000000 (0)\n-0788AB Filename Length       003F (63)\n-0788AD Extra Length          0009 (9)\n-0788AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x788AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0788EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0788F0   Length              0005 (5)\n-0788F2   Flags               01 (1) 'Modification'\n-0788F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0788F7 PAYLOAD\n-\n-07912D DATA DESCRIPTOR       08074B50 (134695760)\n-079131 CRC                   7BDC1B8D (2078022541)\n-079135 Compressed Size       00000836 (2102)\n-079139 Uncompressed Size     00000836 (2102)\n-\n-07913D LOCAL HEADER #290     04034B50 (67324752)\n-079141 Extract Zip Spec      14 (20) '2.0'\n-079142 Extract OS            00 (0) 'MS-DOS'\n-079143 General Purpose Flag  0000 (0)\n-079145 Compression Method    0000 (0) 'Stored'\n-079147 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07914B CRC                   00000000 (0)\n-07914F Compressed Size       00000000 (0)\n-079153 Uncompressed Size     00000000 (0)\n-079157 Filename Length       0039 (57)\n-079159 Extra Length          0009 (9)\n-07915B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7915B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079196   Length              0005 (5)\n-079198   Flags               01 (1) 'Modification'\n-079199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07919D LOCAL HEADER #291     04034B50 (67324752)\n-0791A1 Extract Zip Spec      14 (20) '2.0'\n-0791A2 Extract OS            00 (0) 'MS-DOS'\n-0791A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0791A5 Compression Method    0000 (0) 'Stored'\n-0791A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0791AB CRC                   00000000 (0)\n-0791AF Compressed Size       00000000 (0)\n-0791B3 Uncompressed Size     00000000 (0)\n-0791B7 Filename Length       0047 (71)\n-0791B9 Extra Length          0009 (9)\n-0791BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x791BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079202 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079204   Length              0005 (5)\n-079206   Flags               01 (1) 'Modification'\n-079207   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07920B DATA DESCRIPTOR       08074B50 (134695760)\n-07920F CRC                   00000000 (0)\n-079213 Compressed Size       00000000 (0)\n-079217 Uncompressed Size     00000000 (0)\n-\n-07921B LOCAL HEADER #292     04034B50 (67324752)\n-07921F Extract Zip Spec      14 (20) '2.0'\n-079220 Extract OS            00 (0) 'MS-DOS'\n-079221 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-079223 Compression Method    0000 (0) 'Stored'\n-079225 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079229 CRC                   00000000 (0)\n-07922D Compressed Size       00000000 (0)\n-079231 Uncompressed Size     00000000 (0)\n-079235 Filename Length       0040 (64)\n-079237 Extra Length          0009 (9)\n-079239 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79239: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079279 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07927B   Length              0005 (5)\n-07927D   Flags               01 (1) 'Modification'\n-07927E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-079282 PAYLOAD\n-\n-079B39 DATA DESCRIPTOR       08074B50 (134695760)\n-079B3D CRC                   09F70F91 (167186321)\n-079B41 Compressed Size       000008B7 (2231)\n-079B45 Uncompressed Size     000008B7 (2231)\n-\n-079B49 LOCAL HEADER #293     04034B50 (67324752)\n-079B4D Extract Zip Spec      14 (20) '2.0'\n-079B4E Extract OS            00 (0) 'MS-DOS'\n-079B4F General Purpose Flag  0000 (0)\n-079B51 Compression Method    0000 (0) 'Stored'\n-079B53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079B57 CRC                   00000000 (0)\n-079B5B Compressed Size       00000000 (0)\n-079B5F Uncompressed Size     00000000 (0)\n-079B63 Filename Length       0043 (67)\n-079B65 Extra Length          0009 (9)\n-079B67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79B67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079BAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079BAC   Length              0005 (5)\n-079BAE   Flags               01 (1) 'Modification'\n-079BAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-079BB3 LOCAL HEADER #294     04034B50 (67324752)\n-079BB7 Extract Zip Spec      14 (20) '2.0'\n-079BB8 Extract OS            00 (0) 'MS-DOS'\n-079BB9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-079BBB Compression Method    0000 (0) 'Stored'\n-079BBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079BC1 CRC                   00000000 (0)\n-079BC5 Compressed Size       00000000 (0)\n-079BC9 Uncompressed Size     00000000 (0)\n-079BCD Filename Length       0051 (81)\n-079BCF Extra Length          0009 (9)\n-079BD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79BD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079C22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079C24   Length              0005 (5)\n-079C26   Flags               01 (1) 'Modification'\n-079C27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-079C2B DATA DESCRIPTOR       08074B50 (134695760)\n-079C2F CRC                   00000000 (0)\n-079C33 Compressed Size       00000000 (0)\n-079C37 Uncompressed Size     00000000 (0)\n-\n-079C3B LOCAL HEADER #295     04034B50 (67324752)\n-079C3F Extract Zip Spec      14 (20) '2.0'\n-079C40 Extract OS            00 (0) 'MS-DOS'\n-079C41 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-079C43 Compression Method    0000 (0) 'Stored'\n-079C45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-079C49 CRC                   00000000 (0)\n-079C4D Compressed Size       00000000 (0)\n-079C51 Uncompressed Size     00000000 (0)\n-079C55 Filename Length       004A (74)\n-079C57 Extra Length          0009 (9)\n-079C59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x79C59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-079CA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-079CA5   Length              0005 (5)\n-079CA7   Flags               01 (1) 'Modification'\n-079CA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-079CAC PAYLOAD\n-\n-07A49F DATA DESCRIPTOR       08074B50 (134695760)\n-07A4A3 CRC                   0F6B44E1 (258688225)\n-07A4A7 Compressed Size       000007F3 (2035)\n-07A4AB Uncompressed Size     000007F3 (2035)\n-\n-07A4AF LOCAL HEADER #296     04034B50 (67324752)\n-07A4B3 Extract Zip Spec      14 (20) '2.0'\n-07A4B4 Extract OS            00 (0) 'MS-DOS'\n-07A4B5 General Purpose Flag  0000 (0)\n-07A4B7 Compression Method    0000 (0) 'Stored'\n-07A4B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A4BD CRC                   00000000 (0)\n-07A4C1 Compressed Size       00000000 (0)\n-07A4C5 Uncompressed Size     00000000 (0)\n-07A4C9 Filename Length       003D (61)\n-07A4CB Extra Length          0009 (9)\n-07A4CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A4CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A50A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A50C   Length              0005 (5)\n-07A50E   Flags               01 (1) 'Modification'\n-07A50F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07A513 LOCAL HEADER #297     04034B50 (67324752)\n-07A517 Extract Zip Spec      14 (20) '2.0'\n-07A518 Extract OS            00 (0) 'MS-DOS'\n-07A519 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07A51B Compression Method    0000 (0) 'Stored'\n-07A51D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A521 CRC                   00000000 (0)\n-07A525 Compressed Size       00000000 (0)\n-07A529 Uncompressed Size     00000000 (0)\n-07A52D Filename Length       004B (75)\n-07A52F Extra Length          0009 (9)\n-07A531 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A531: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A57C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A57E   Length              0005 (5)\n-07A580   Flags               01 (1) 'Modification'\n-07A581   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07A585 DATA DESCRIPTOR       08074B50 (134695760)\n-07A589 CRC                   00000000 (0)\n-07A58D Compressed Size       00000000 (0)\n-07A591 Uncompressed Size     00000000 (0)\n-\n-07A595 LOCAL HEADER #298     04034B50 (67324752)\n-07A599 Extract Zip Spec      14 (20) '2.0'\n-07A59A Extract OS            00 (0) 'MS-DOS'\n-07A59B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07A59D Compression Method    0000 (0) 'Stored'\n-07A59F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07A5A3 CRC                   00000000 (0)\n-07A5A7 Compressed Size       00000000 (0)\n-07A5AB Uncompressed Size     00000000 (0)\n-07A5AF Filename Length       0044 (68)\n-07A5B1 Extra Length          0009 (9)\n-07A5B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7A5B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07A5F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07A5F9   Length              0005 (5)\n-07A5FB   Flags               01 (1) 'Modification'\n-07A5FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07A600 PAYLOAD\n-\n-07B50F DATA DESCRIPTOR       08074B50 (134695760)\n-07B513 CRC                   FA85A8D5 (4203063509)\n-07B517 Compressed Size       00000F0F (3855)\n-07B51B Uncompressed Size     00000F0F (3855)\n-\n-07B51F LOCAL HEADER #299     04034B50 (67324752)\n-07B523 Extract Zip Spec      14 (20) '2.0'\n-07B524 Extract OS            00 (0) 'MS-DOS'\n-07B525 General Purpose Flag  0000 (0)\n-07B527 Compression Method    0000 (0) 'Stored'\n-07B529 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07B52D CRC                   00000000 (0)\n-07B531 Compressed Size       00000000 (0)\n-07B535 Uncompressed Size     00000000 (0)\n-07B539 Filename Length       003F (63)\n-07B53B Extra Length          0009 (9)\n-07B53D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7B53D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07B57C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07B57E   Length              0005 (5)\n-07B580   Flags               01 (1) 'Modification'\n-07B581   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07B585 LOCAL HEADER #300     04034B50 (67324752)\n-07B589 Extract Zip Spec      14 (20) '2.0'\n-07B58A Extract OS            00 (0) 'MS-DOS'\n-07B58B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07B58D Compression Method    0000 (0) 'Stored'\n-07B58F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07B593 CRC                   00000000 (0)\n-07B597 Compressed Size       00000000 (0)\n-07B59B Uncompressed Size     00000000 (0)\n-07B59F Filename Length       004D (77)\n-07B5A1 Extra Length          0009 (9)\n-07B5A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7B5A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07B5F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07B5F2   Length              0005 (5)\n-07B5F4   Flags               01 (1) 'Modification'\n-07B5F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07B5F9 DATA DESCRIPTOR       08074B50 (134695760)\n-07B5FD CRC                   00000000 (0)\n-07B601 Compressed Size       00000000 (0)\n-07B605 Uncompressed Size     00000000 (0)\n-\n-07B609 LOCAL HEADER #301     04034B50 (67324752)\n-07B60D Extract Zip Spec      14 (20) '2.0'\n-07B60E Extract OS            00 (0) 'MS-DOS'\n-07B60F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07B611 Compression Method    0000 (0) 'Stored'\n-07B613 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07B617 CRC                   00000000 (0)\n-07B61B Compressed Size       00000000 (0)\n-07B61F Uncompressed Size     00000000 (0)\n-07B623 Filename Length       0046 (70)\n-07B625 Extra Length          0009 (9)\n-07B627 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7B627: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07B66D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07B66F   Length              0005 (5)\n-07B671   Flags               01 (1) 'Modification'\n-07B672   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07B676 PAYLOAD\n-\n-07BFA1 DATA DESCRIPTOR       08074B50 (134695760)\n-07BFA5 CRC                   28F10A22 (686885410)\n-07BFA9 Compressed Size       0000092B (2347)\n-07BFAD Uncompressed Size     0000092B (2347)\n-\n-07BFB1 LOCAL HEADER #302     04034B50 (67324752)\n-07BFB5 Extract Zip Spec      14 (20) '2.0'\n-07BFB6 Extract OS            00 (0) 'MS-DOS'\n-07BFB7 General Purpose Flag  0000 (0)\n-07BFB9 Compression Method    0000 (0) 'Stored'\n-07BFBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07BFBF CRC                   00000000 (0)\n-07BFC3 Compressed Size       00000000 (0)\n-07BFC7 Uncompressed Size     00000000 (0)\n-07BFCB Filename Length       0026 (38)\n-07BFCD Extra Length          0009 (9)\n-07BFCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7BFCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07BFF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07BFF7   Length              0005 (5)\n-07BFF9   Flags               01 (1) 'Modification'\n-07BFFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07BFFE LOCAL HEADER #303     04034B50 (67324752)\n-07C002 Extract Zip Spec      14 (20) '2.0'\n-07C003 Extract OS            00 (0) 'MS-DOS'\n-07C004 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07C006 Compression Method    0000 (0) 'Stored'\n-07C008 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07C00C CRC                   00000000 (0)\n-07C010 Compressed Size       00000000 (0)\n-07C014 Uncompressed Size     00000000 (0)\n-07C018 Filename Length       0034 (52)\n-07C01A Extra Length          0009 (9)\n-07C01C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7C01C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07C050 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07C052   Length              0005 (5)\n-07C054   Flags               01 (1) 'Modification'\n-07C055   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-07C059 DATA DESCRIPTOR       08074B50 (134695760)\n-07C05D CRC                   00000000 (0)\n-07C061 Compressed Size       00000000 (0)\n-07C065 Uncompressed Size     00000000 (0)\n-\n-07C069 LOCAL HEADER #304     04034B50 (67324752)\n-07C06D Extract Zip Spec      14 (20) '2.0'\n-07C06E Extract OS            00 (0) 'MS-DOS'\n-07C06F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-07C071 Compression Method    0000 (0) 'Stored'\n-07C073 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-07C077 CRC                   00000000 (0)\n-07C07B Compressed Size       00000000 (0)\n-07C07F Uncompressed Size     00000000 (0)\n-07C083 Filename Length       002D (45)\n-07C085 Extra Length          0009 (9)\n-07C087 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7C087: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-07C0B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-07C0B6   Length              0005 (5)\n-07C0B8   Flags               01 (1) 'Modification'\n-07C0B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-07C0BD PAYLOAD\n-\n-0870F7 DATA DESCRIPTOR       08074B50 (134695760)\n-0870FB CRC                   183E1D03 (406723843)\n-0870FF Compressed Size       0000B03A (45114)\n-087103 Uncompressed Size     0000B03A (45114)\n-\n-087107 LOCAL HEADER #305     04034B50 (67324752)\n-08710B Extract Zip Spec      14 (20) '2.0'\n-08710C Extract OS            00 (0) 'MS-DOS'\n-08710D General Purpose Flag  0000 (0)\n-08710F Compression Method    0000 (0) 'Stored'\n-087111 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-087115 CRC                   00000000 (0)\n-087119 Compressed Size       00000000 (0)\n-08711D Uncompressed Size     00000000 (0)\n-087121 Filename Length       0012 (18)\n-087123 Extra Length          0009 (9)\n-087125 Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x87125: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-087137 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-087139   Length              0005 (5)\n-08713B   Flags               01 (1) 'Modification'\n-08713C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-087140 LOCAL HEADER #306     04034B50 (67324752)\n-087144 Extract Zip Spec      14 (20) '2.0'\n-087145 Extract OS            00 (0) 'MS-DOS'\n-087146 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-087148 Compression Method    0000 (0) 'Stored'\n-08714A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08714E CRC                   00000000 (0)\n-087152 Compressed Size       00000000 (0)\n-087156 Uncompressed Size     00000000 (0)\n-08715A Filename Length       0043 (67)\n-08715C Extra Length          0009 (9)\n-08715E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8715E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0871A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0871A3   Length              0005 (5)\n-0871A5   Flags               01 (1) 'Modification'\n-0871A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0871AA PAYLOAD\n-\n-08730B DATA DESCRIPTOR       08074B50 (134695760)\n-08730F CRC                   89A6CE58 (2309410392)\n-087313 Compressed Size       00000161 (353)\n-087317 Uncompressed Size     00000161 (353)\n-\n-08731B LOCAL HEADER #307     04034B50 (67324752)\n-08731F Extract Zip Spec      14 (20) '2.0'\n-087320 Extract OS            00 (0) 'MS-DOS'\n-087321 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-087323 Compression Method    0000 (0) 'Stored'\n-087325 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-087329 CRC                   00000000 (0)\n-08732D Compressed Size       00000000 (0)\n-087331 Uncompressed Size     00000000 (0)\n-087335 Filename Length       0018 (24)\n-087337 Extra Length          0009 (9)\n-087339 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x87339: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-087351 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-087353   Length              0005 (5)\n-087355   Flags               01 (1) 'Modification'\n-087356   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08735A PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0454EF DATA DESCRIPTOR       08074B50 (134695760)\n+0454F3 CRC                   78C43CAA (2026126506)\n+0454F7 Compressed Size       00000088 (136)\n+0454FB Uncompressed Size     00000088 (136)\n+\n+0454FF LOCAL HEADER #82      04034B50 (67324752)\n+045503 Extract Zip Spec      14 (20) '2.0'\n+045504 Extract OS            00 (0) 'MS-DOS'\n+045505 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+045507 Compression Method    0000 (0) 'Stored'\n+045509 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04550D CRC                   00000000 (0)\n+045511 Compressed Size       00000000 (0)\n+045515 Uncompressed Size     00000000 (0)\n+045519 Filename Length       003E (62)\n+04551B Extra Length          0009 (9)\n+04551D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4551D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04555B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04555D   Length              0005 (5)\n+04555F   Flags               01 (1) 'Modification'\n+045560   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+045564 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0455AC DATA DESCRIPTOR       08074B50 (134695760)\n+0455B0 CRC                   2EA22547 (782378311)\n+0455B4 Compressed Size       00000048 (72)\n+0455B8 Uncompressed Size     00000048 (72)\n+\n+0455BC LOCAL HEADER #83      04034B50 (67324752)\n+0455C0 Extract Zip Spec      14 (20) '2.0'\n+0455C1 Extract OS            00 (0) 'MS-DOS'\n+0455C2 General Purpose Flag  0000 (0)\n+0455C4 Compression Method    0000 (0) 'Stored'\n+0455C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0455CA CRC                   00000000 (0)\n+0455CE Compressed Size       00000000 (0)\n+0455D2 Uncompressed Size     00000000 (0)\n+0455D6 Filename Length       000F (15)\n+0455D8 Extra Length          0009 (9)\n+0455DA Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x455DA: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0455E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0455EB   Length              0005 (5)\n+0455ED   Flags               01 (1) 'Modification'\n+0455EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0455F2 LOCAL HEADER #84      04034B50 (67324752)\n+0455F6 Extract Zip Spec      14 (20) '2.0'\n+0455F7 Extract OS            00 (0) 'MS-DOS'\n+0455F8 General Purpose Flag  0000 (0)\n+0455FA Compression Method    0000 (0) 'Stored'\n+0455FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045600 CRC                   00000000 (0)\n+045604 Compressed Size       00000000 (0)\n+045608 Uncompressed Size     00000000 (0)\n+04560C Filename Length       001B (27)\n+04560E Extra Length          0009 (9)\n+045610 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45610: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04562B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04562D   Length              0005 (5)\n+04562F   Flags               01 (1) 'Modification'\n+045630   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+045634 LOCAL HEADER #85      04034B50 (67324752)\n+045638 Extract Zip Spec      14 (20) '2.0'\n+045639 Extract OS            00 (0) 'MS-DOS'\n+04563A General Purpose Flag  0000 (0)\n+04563C Compression Method    0000 (0) 'Stored'\n+04563E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045642 CRC                   00000000 (0)\n+045646 Compressed Size       00000000 (0)\n+04564A Uncompressed Size     00000000 (0)\n+04564E Filename Length       0028 (40)\n+045650 Extra Length          0009 (9)\n+045652 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45652: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04567A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04567C   Length              0005 (5)\n+04567E   Flags               01 (1) 'Modification'\n+04567F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+045683 LOCAL HEADER #86      04034B50 (67324752)\n+045687 Extract Zip Spec      14 (20) '2.0'\n+045688 Extract OS            00 (0) 'MS-DOS'\n+045689 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04568B Compression Method    0000 (0) 'Stored'\n+04568D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+045691 CRC                   00000000 (0)\n+045695 Compressed Size       00000000 (0)\n+045699 Uncompressed Size     00000000 (0)\n+04569D Filename Length       0036 (54)\n+04569F Extra Length          0009 (9)\n+0456A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x456A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0456D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0456D9   Length              0005 (5)\n+0456DB   Flags               01 (1) 'Modification'\n+0456DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0456E0 DATA DESCRIPTOR       08074B50 (134695760)\n+0456E4 CRC                   00000000 (0)\n+0456E8 Compressed Size       00000000 (0)\n+0456EC Uncompressed Size     00000000 (0)\n+\n+0456F0 LOCAL HEADER #87      04034B50 (67324752)\n+0456F4 Extract Zip Spec      14 (20) '2.0'\n+0456F5 Extract OS            00 (0) 'MS-DOS'\n+0456F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0456F8 Compression Method    0000 (0) 'Stored'\n+0456FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0456FE CRC                   00000000 (0)\n+045702 Compressed Size       00000000 (0)\n+045706 Uncompressed Size     00000000 (0)\n+04570A Filename Length       002F (47)\n+04570C Extra Length          0009 (9)\n+04570E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4570E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04573D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04573F   Length              0005 (5)\n+045741   Flags               01 (1) 'Modification'\n+045742   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+045746 PAYLOAD\n+\n+047D1F DATA DESCRIPTOR       08074B50 (134695760)\n+047D23 CRC                   A18F9C9F (2710543519)\n+047D27 Compressed Size       000025D9 (9689)\n+047D2B Uncompressed Size     000025D9 (9689)\n+\n+047D2F LOCAL HEADER #88      04034B50 (67324752)\n+047D33 Extract Zip Spec      14 (20) '2.0'\n+047D34 Extract OS            00 (0) 'MS-DOS'\n+047D35 General Purpose Flag  0000 (0)\n+047D37 Compression Method    0000 (0) 'Stored'\n+047D39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+047D3D CRC                   00000000 (0)\n+047D41 Compressed Size       00000000 (0)\n+047D45 Uncompressed Size     00000000 (0)\n+047D49 Filename Length       0020 (32)\n+047D4B Extra Length          0009 (9)\n+047D4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47D4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+047D6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+047D6F   Length              0005 (5)\n+047D71   Flags               01 (1) 'Modification'\n+047D72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+047D76 LOCAL HEADER #89      04034B50 (67324752)\n+047D7A Extract Zip Spec      14 (20) '2.0'\n+047D7B Extract OS            00 (0) 'MS-DOS'\n+047D7C General Purpose Flag  0000 (0)\n+047D7E Compression Method    0000 (0) 'Stored'\n+047D80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+047D84 CRC                   00000000 (0)\n+047D88 Compressed Size       00000000 (0)\n+047D8C Uncompressed Size     00000000 (0)\n+047D90 Filename Length       002E (46)\n+047D92 Extra Length          0009 (9)\n+047D94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47D94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+047DC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+047DC4   Length              0005 (5)\n+047DC6   Flags               01 (1) 'Modification'\n+047DC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+047DCB LOCAL HEADER #90      04034B50 (67324752)\n+047DCF Extract Zip Spec      14 (20) '2.0'\n+047DD0 Extract OS            00 (0) 'MS-DOS'\n+047DD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+047DD3 Compression Method    0000 (0) 'Stored'\n+047DD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+047DD9 CRC                   00000000 (0)\n+047DDD Compressed Size       00000000 (0)\n+047DE1 Uncompressed Size     00000000 (0)\n+047DE5 Filename Length       003C (60)\n+047DE7 Extra Length          0009 (9)\n+047DE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47DE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+047E25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+047E27   Length              0005 (5)\n+047E29   Flags               01 (1) 'Modification'\n+047E2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+047E2E DATA DESCRIPTOR       08074B50 (134695760)\n+047E32 CRC                   00000000 (0)\n+047E36 Compressed Size       00000000 (0)\n+047E3A Uncompressed Size     00000000 (0)\n+\n+047E3E LOCAL HEADER #91      04034B50 (67324752)\n+047E42 Extract Zip Spec      14 (20) '2.0'\n+047E43 Extract OS            00 (0) 'MS-DOS'\n+047E44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+047E46 Compression Method    0000 (0) 'Stored'\n+047E48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+047E4C CRC                   00000000 (0)\n+047E50 Compressed Size       00000000 (0)\n+047E54 Uncompressed Size     00000000 (0)\n+047E58 Filename Length       0035 (53)\n+047E5A Extra Length          0009 (9)\n+047E5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47E5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+047E91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+047E93   Length              0005 (5)\n+047E95   Flags               01 (1) 'Modification'\n+047E96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+047E9A PAYLOAD\n+\n+04888E DATA DESCRIPTOR       08074B50 (134695760)\n+048892 CRC                   F526CD58 (4112960856)\n+048896 Compressed Size       000009F4 (2548)\n+04889A Uncompressed Size     000009F4 (2548)\n+\n+04889E LOCAL HEADER #92      04034B50 (67324752)\n+0488A2 Extract Zip Spec      14 (20) '2.0'\n+0488A3 Extract OS            00 (0) 'MS-DOS'\n+0488A4 General Purpose Flag  0000 (0)\n+0488A6 Compression Method    0000 (0) 'Stored'\n+0488A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0488AC CRC                   00000000 (0)\n+0488B0 Compressed Size       00000000 (0)\n+0488B4 Uncompressed Size     00000000 (0)\n+0488B8 Filename Length       002D (45)\n+0488BA Extra Length          0009 (9)\n+0488BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x488BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0488E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0488EB   Length              0005 (5)\n+0488ED   Flags               01 (1) 'Modification'\n+0488EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0488F2 LOCAL HEADER #93      04034B50 (67324752)\n+0488F6 Extract Zip Spec      14 (20) '2.0'\n+0488F7 Extract OS            00 (0) 'MS-DOS'\n+0488F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0488FA Compression Method    0000 (0) 'Stored'\n+0488FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+048900 CRC                   00000000 (0)\n+048904 Compressed Size       00000000 (0)\n+048908 Uncompressed Size     00000000 (0)\n+04890C Filename Length       003B (59)\n+04890E Extra Length          0009 (9)\n+048910 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48910: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04894B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04894D   Length              0005 (5)\n+04894F   Flags               01 (1) 'Modification'\n+048950   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+048954 DATA DESCRIPTOR       08074B50 (134695760)\n+048958 CRC                   00000000 (0)\n+04895C Compressed Size       00000000 (0)\n+048960 Uncompressed Size     00000000 (0)\n+\n+048964 LOCAL HEADER #94      04034B50 (67324752)\n+048968 Extract Zip Spec      14 (20) '2.0'\n+048969 Extract OS            00 (0) 'MS-DOS'\n+04896A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04896C Compression Method    0000 (0) 'Stored'\n+04896E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+048972 CRC                   00000000 (0)\n+048976 Compressed Size       00000000 (0)\n+04897A Uncompressed Size     00000000 (0)\n+04897E Filename Length       0034 (52)\n+048980 Extra Length          0009 (9)\n+048982 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48982: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0489B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0489B8   Length              0005 (5)\n+0489BA   Flags               01 (1) 'Modification'\n+0489BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0489BF PAYLOAD\n+\n+04950F DATA DESCRIPTOR       08074B50 (134695760)\n+049513 CRC                   CDE8C563 (3454584163)\n+049517 Compressed Size       00000B50 (2896)\n+04951B Uncompressed Size     00000B50 (2896)\n+\n+04951F LOCAL HEADER #95      04034B50 (67324752)\n+049523 Extract Zip Spec      14 (20) '2.0'\n+049524 Extract OS            00 (0) 'MS-DOS'\n+049525 General Purpose Flag  0000 (0)\n+049527 Compression Method    0000 (0) 'Stored'\n+049529 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04952D CRC                   00000000 (0)\n+049531 Compressed Size       00000000 (0)\n+049535 Uncompressed Size     00000000 (0)\n+049539 Filename Length       0031 (49)\n+04953B Extra Length          0009 (9)\n+04953D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4953D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04956E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+049570   Length              0005 (5)\n+049572   Flags               01 (1) 'Modification'\n+049573   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+049577 LOCAL HEADER #96      04034B50 (67324752)\n+04957B Extract Zip Spec      14 (20) '2.0'\n+04957C Extract OS            00 (0) 'MS-DOS'\n+04957D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04957F Compression Method    0000 (0) 'Stored'\n+049581 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+049585 CRC                   00000000 (0)\n+049589 Compressed Size       00000000 (0)\n+04958D Uncompressed Size     00000000 (0)\n+049591 Filename Length       003F (63)\n+049593 Extra Length          0009 (9)\n+049595 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49595: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0495D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0495D6   Length              0005 (5)\n+0495D8   Flags               01 (1) 'Modification'\n+0495D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0495DD DATA DESCRIPTOR       08074B50 (134695760)\n+0495E1 CRC                   00000000 (0)\n+0495E5 Compressed Size       00000000 (0)\n+0495E9 Uncompressed Size     00000000 (0)\n+\n+0495ED LOCAL HEADER #97      04034B50 (67324752)\n+0495F1 Extract Zip Spec      14 (20) '2.0'\n+0495F2 Extract OS            00 (0) 'MS-DOS'\n+0495F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0495F5 Compression Method    0000 (0) 'Stored'\n+0495F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0495FB CRC                   00000000 (0)\n+0495FF Compressed Size       00000000 (0)\n+049603 Uncompressed Size     00000000 (0)\n+049607 Filename Length       0038 (56)\n+049609 Extra Length          0009 (9)\n+04960B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4960B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+049643 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+049645   Length              0005 (5)\n+049647   Flags               01 (1) 'Modification'\n+049648   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04964C PAYLOAD\n+\n+04A713 DATA DESCRIPTOR       08074B50 (134695760)\n+04A717 CRC                   7291F3D3 (1922167763)\n+04A71B Compressed Size       000010C7 (4295)\n+04A71F Uncompressed Size     000010C7 (4295)\n+\n+04A723 LOCAL HEADER #98      04034B50 (67324752)\n+04A727 Extract Zip Spec      14 (20) '2.0'\n+04A728 Extract OS            00 (0) 'MS-DOS'\n+04A729 General Purpose Flag  0000 (0)\n+04A72B Compression Method    0000 (0) 'Stored'\n+04A72D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04A731 CRC                   00000000 (0)\n+04A735 Compressed Size       00000000 (0)\n+04A739 Uncompressed Size     00000000 (0)\n+04A73D Filename Length       0031 (49)\n+04A73F Extra Length          0009 (9)\n+04A741 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A741: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04A772 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04A774   Length              0005 (5)\n+04A776   Flags               01 (1) 'Modification'\n+04A777   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04A77B LOCAL HEADER #99      04034B50 (67324752)\n+04A77F Extract Zip Spec      14 (20) '2.0'\n+04A780 Extract OS            00 (0) 'MS-DOS'\n+04A781 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04A783 Compression Method    0000 (0) 'Stored'\n+04A785 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04A789 CRC                   00000000 (0)\n+04A78D Compressed Size       00000000 (0)\n+04A791 Uncompressed Size     00000000 (0)\n+04A795 Filename Length       003F (63)\n+04A797 Extra Length          0009 (9)\n+04A799 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A799: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04A7D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04A7DA   Length              0005 (5)\n+04A7DC   Flags               01 (1) 'Modification'\n+04A7DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04A7E1 DATA DESCRIPTOR       08074B50 (134695760)\n+04A7E5 CRC                   00000000 (0)\n+04A7E9 Compressed Size       00000000 (0)\n+04A7ED Uncompressed Size     00000000 (0)\n+\n+04A7F1 LOCAL HEADER #100     04034B50 (67324752)\n+04A7F5 Extract Zip Spec      14 (20) '2.0'\n+04A7F6 Extract OS            00 (0) 'MS-DOS'\n+04A7F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04A7F9 Compression Method    0000 (0) 'Stored'\n+04A7FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04A7FF CRC                   00000000 (0)\n+04A803 Compressed Size       00000000 (0)\n+04A807 Uncompressed Size     00000000 (0)\n+04A80B Filename Length       0038 (56)\n+04A80D Extra Length          0009 (9)\n+04A80F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A80F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04A847 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04A849   Length              0005 (5)\n+04A84B   Flags               01 (1) 'Modification'\n+04A84C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04A850 PAYLOAD\n+\n+04C6F4 DATA DESCRIPTOR       08074B50 (134695760)\n+04C6F8 CRC                   50B6758C (1354134924)\n+04C6FC Compressed Size       00001EA4 (7844)\n+04C700 Uncompressed Size     00001EA4 (7844)\n+\n+04C704 LOCAL HEADER #101     04034B50 (67324752)\n+04C708 Extract Zip Spec      14 (20) '2.0'\n+04C709 Extract OS            00 (0) 'MS-DOS'\n+04C70A General Purpose Flag  0000 (0)\n+04C70C Compression Method    0000 (0) 'Stored'\n+04C70E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04C712 CRC                   00000000 (0)\n+04C716 Compressed Size       00000000 (0)\n+04C71A Uncompressed Size     00000000 (0)\n+04C71E Filename Length       0034 (52)\n+04C720 Extra Length          0009 (9)\n+04C722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04C756 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04C758   Length              0005 (5)\n+04C75A   Flags               01 (1) 'Modification'\n+04C75B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04C75F LOCAL HEADER #102     04034B50 (67324752)\n+04C763 Extract Zip Spec      14 (20) '2.0'\n+04C764 Extract OS            00 (0) 'MS-DOS'\n+04C765 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04C767 Compression Method    0000 (0) 'Stored'\n+04C769 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04C76D CRC                   00000000 (0)\n+04C771 Compressed Size       00000000 (0)\n+04C775 Uncompressed Size     00000000 (0)\n+04C779 Filename Length       0042 (66)\n+04C77B Extra Length          0009 (9)\n+04C77D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C77D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04C7BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04C7C1   Length              0005 (5)\n+04C7C3   Flags               01 (1) 'Modification'\n+04C7C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04C7C8 DATA DESCRIPTOR       08074B50 (134695760)\n+04C7CC CRC                   00000000 (0)\n+04C7D0 Compressed Size       00000000 (0)\n+04C7D4 Uncompressed Size     00000000 (0)\n+\n+04C7D8 LOCAL HEADER #103     04034B50 (67324752)\n+04C7DC Extract Zip Spec      14 (20) '2.0'\n+04C7DD Extract OS            00 (0) 'MS-DOS'\n+04C7DE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04C7E0 Compression Method    0000 (0) 'Stored'\n+04C7E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04C7E6 CRC                   00000000 (0)\n+04C7EA Compressed Size       00000000 (0)\n+04C7EE Uncompressed Size     00000000 (0)\n+04C7F2 Filename Length       003B (59)\n+04C7F4 Extra Length          0009 (9)\n+04C7F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C7F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04C831 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04C833   Length              0005 (5)\n+04C835   Flags               01 (1) 'Modification'\n+04C836   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04C83A PAYLOAD\n+\n+04E093 DATA DESCRIPTOR       08074B50 (134695760)\n+04E097 CRC                   DBB26296 (3685900950)\n+04E09B Compressed Size       00001859 (6233)\n+04E09F Uncompressed Size     00001859 (6233)\n+\n+04E0A3 LOCAL HEADER #104     04034B50 (67324752)\n+04E0A7 Extract Zip Spec      14 (20) '2.0'\n+04E0A8 Extract OS            00 (0) 'MS-DOS'\n+04E0A9 General Purpose Flag  0000 (0)\n+04E0AB Compression Method    0000 (0) 'Stored'\n+04E0AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04E0B1 CRC                   00000000 (0)\n+04E0B5 Compressed Size       00000000 (0)\n+04E0B9 Uncompressed Size     00000000 (0)\n+04E0BD Filename Length       003A (58)\n+04E0BF Extra Length          0009 (9)\n+04E0C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E0C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04E0FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04E0FD   Length              0005 (5)\n+04E0FF   Flags               01 (1) 'Modification'\n+04E100   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04E104 LOCAL HEADER #105     04034B50 (67324752)\n+04E108 Extract Zip Spec      14 (20) '2.0'\n+04E109 Extract OS            00 (0) 'MS-DOS'\n+04E10A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04E10C Compression Method    0000 (0) 'Stored'\n+04E10E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04E112 CRC                   00000000 (0)\n+04E116 Compressed Size       00000000 (0)\n+04E11A Uncompressed Size     00000000 (0)\n+04E11E Filename Length       0048 (72)\n+04E120 Extra Length          0009 (9)\n+04E122 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E122: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04E16A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04E16C   Length              0005 (5)\n+04E16E   Flags               01 (1) 'Modification'\n+04E16F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04E173 DATA DESCRIPTOR       08074B50 (134695760)\n+04E177 CRC                   00000000 (0)\n+04E17B Compressed Size       00000000 (0)\n+04E17F Uncompressed Size     00000000 (0)\n+\n+04E183 LOCAL HEADER #106     04034B50 (67324752)\n+04E187 Extract Zip Spec      14 (20) '2.0'\n+04E188 Extract OS            00 (0) 'MS-DOS'\n+04E189 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04E18B Compression Method    0000 (0) 'Stored'\n+04E18D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04E191 CRC                   00000000 (0)\n+04E195 Compressed Size       00000000 (0)\n+04E199 Uncompressed Size     00000000 (0)\n+04E19D Filename Length       0041 (65)\n+04E19F Extra Length          0009 (9)\n+04E1A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E1A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04E1E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04E1E4   Length              0005 (5)\n+04E1E6   Flags               01 (1) 'Modification'\n+04E1E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04E1EB PAYLOAD\n+\n+04EB2C DATA DESCRIPTOR       08074B50 (134695760)\n+04EB30 CRC                   91AC24FF (2443977983)\n+04EB34 Compressed Size       00000941 (2369)\n+04EB38 Uncompressed Size     00000941 (2369)\n+\n+04EB3C LOCAL HEADER #107     04034B50 (67324752)\n+04EB40 Extract Zip Spec      14 (20) '2.0'\n+04EB41 Extract OS            00 (0) 'MS-DOS'\n+04EB42 General Purpose Flag  0000 (0)\n+04EB44 Compression Method    0000 (0) 'Stored'\n+04EB46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04EB4A CRC                   00000000 (0)\n+04EB4E Compressed Size       00000000 (0)\n+04EB52 Uncompressed Size     00000000 (0)\n+04EB56 Filename Length       003A (58)\n+04EB58 Extra Length          0009 (9)\n+04EB5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4EB5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04EB94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04EB96   Length              0005 (5)\n+04EB98   Flags               01 (1) 'Modification'\n+04EB99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04EB9D LOCAL HEADER #108     04034B50 (67324752)\n+04EBA1 Extract Zip Spec      14 (20) '2.0'\n+04EBA2 Extract OS            00 (0) 'MS-DOS'\n+04EBA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04EBA5 Compression Method    0000 (0) 'Stored'\n+04EBA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04EBAB CRC                   00000000 (0)\n+04EBAF Compressed Size       00000000 (0)\n+04EBB3 Uncompressed Size     00000000 (0)\n+04EBB7 Filename Length       0048 (72)\n+04EBB9 Extra Length          0009 (9)\n+04EBBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4EBBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04EC03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04EC05   Length              0005 (5)\n+04EC07   Flags               01 (1) 'Modification'\n+04EC08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04EC0C DATA DESCRIPTOR       08074B50 (134695760)\n+04EC10 CRC                   00000000 (0)\n+04EC14 Compressed Size       00000000 (0)\n+04EC18 Uncompressed Size     00000000 (0)\n+\n+04EC1C LOCAL HEADER #109     04034B50 (67324752)\n+04EC20 Extract Zip Spec      14 (20) '2.0'\n+04EC21 Extract OS            00 (0) 'MS-DOS'\n+04EC22 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04EC24 Compression Method    0000 (0) 'Stored'\n+04EC26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04EC2A CRC                   00000000 (0)\n+04EC2E Compressed Size       00000000 (0)\n+04EC32 Uncompressed Size     00000000 (0)\n+04EC36 Filename Length       0041 (65)\n+04EC38 Extra Length          0009 (9)\n+04EC3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4EC3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04EC7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04EC7D   Length              0005 (5)\n+04EC7F   Flags               01 (1) 'Modification'\n+04EC80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04EC84 PAYLOAD\n+\n+04F47A DATA DESCRIPTOR       08074B50 (134695760)\n+04F47E CRC                   76B58A01 (1991608833)\n+04F482 Compressed Size       000007F6 (2038)\n+04F486 Uncompressed Size     000007F6 (2038)\n+\n+04F48A LOCAL HEADER #110     04034B50 (67324752)\n+04F48E Extract Zip Spec      14 (20) '2.0'\n+04F48F Extract OS            00 (0) 'MS-DOS'\n+04F490 General Purpose Flag  0000 (0)\n+04F492 Compression Method    0000 (0) 'Stored'\n+04F494 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04F498 CRC                   00000000 (0)\n+04F49C Compressed Size       00000000 (0)\n+04F4A0 Uncompressed Size     00000000 (0)\n+04F4A4 Filename Length       0038 (56)\n+04F4A6 Extra Length          0009 (9)\n+04F4A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F4A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04F4E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04F4E2   Length              0005 (5)\n+04F4E4   Flags               01 (1) 'Modification'\n+04F4E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04F4E9 LOCAL HEADER #111     04034B50 (67324752)\n+04F4ED Extract Zip Spec      14 (20) '2.0'\n+04F4EE Extract OS            00 (0) 'MS-DOS'\n+04F4EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04F4F1 Compression Method    0000 (0) 'Stored'\n+04F4F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04F4F7 CRC                   00000000 (0)\n+04F4FB Compressed Size       00000000 (0)\n+04F4FF Uncompressed Size     00000000 (0)\n+04F503 Filename Length       0046 (70)\n+04F505 Extra Length          0009 (9)\n+04F507 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F507: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04F54D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04F54F   Length              0005 (5)\n+04F551   Flags               01 (1) 'Modification'\n+04F552   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+04F556 DATA DESCRIPTOR       08074B50 (134695760)\n+04F55A CRC                   00000000 (0)\n+04F55E Compressed Size       00000000 (0)\n+04F562 Uncompressed Size     00000000 (0)\n+\n+04F566 LOCAL HEADER #112     04034B50 (67324752)\n+04F56A Extract Zip Spec      14 (20) '2.0'\n+04F56B Extract OS            00 (0) 'MS-DOS'\n+04F56C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+04F56E Compression Method    0000 (0) 'Stored'\n+04F570 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+04F574 CRC                   00000000 (0)\n+04F578 Compressed Size       00000000 (0)\n+04F57C Uncompressed Size     00000000 (0)\n+04F580 Filename Length       003F (63)\n+04F582 Extra Length          0009 (9)\n+04F584 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F584: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+04F5C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+04F5C5   Length              0005 (5)\n+04F5C7   Flags               01 (1) 'Modification'\n+04F5C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+04F5CC PAYLOAD\n+\n+050056 DATA DESCRIPTOR       08074B50 (134695760)\n+05005A CRC                   4486615B (1149657435)\n+05005E Compressed Size       00000A8A (2698)\n+050062 Uncompressed Size     00000A8A (2698)\n+\n+050066 LOCAL HEADER #113     04034B50 (67324752)\n+05006A Extract Zip Spec      14 (20) '2.0'\n+05006B Extract OS            00 (0) 'MS-DOS'\n+05006C General Purpose Flag  0000 (0)\n+05006E Compression Method    0000 (0) 'Stored'\n+050070 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+050074 CRC                   00000000 (0)\n+050078 Compressed Size       00000000 (0)\n+05007C Uncompressed Size     00000000 (0)\n+050080 Filename Length       0039 (57)\n+050082 Extra Length          0009 (9)\n+050084 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50084: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0500BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0500BF   Length              0005 (5)\n+0500C1   Flags               01 (1) 'Modification'\n+0500C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0500C6 LOCAL HEADER #114     04034B50 (67324752)\n+0500CA Extract Zip Spec      14 (20) '2.0'\n+0500CB Extract OS            00 (0) 'MS-DOS'\n+0500CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0500CE Compression Method    0000 (0) 'Stored'\n+0500D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0500D4 CRC                   00000000 (0)\n+0500D8 Compressed Size       00000000 (0)\n+0500DC Uncompressed Size     00000000 (0)\n+0500E0 Filename Length       0047 (71)\n+0500E2 Extra Length          0009 (9)\n+0500E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x500E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05012B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05012D   Length              0005 (5)\n+05012F   Flags               01 (1) 'Modification'\n+050130   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+050134 DATA DESCRIPTOR       08074B50 (134695760)\n+050138 CRC                   00000000 (0)\n+05013C Compressed Size       00000000 (0)\n+050140 Uncompressed Size     00000000 (0)\n+\n+050144 LOCAL HEADER #115     04034B50 (67324752)\n+050148 Extract Zip Spec      14 (20) '2.0'\n+050149 Extract OS            00 (0) 'MS-DOS'\n+05014A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05014C Compression Method    0000 (0) 'Stored'\n+05014E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+050152 CRC                   00000000 (0)\n+050156 Compressed Size       00000000 (0)\n+05015A Uncompressed Size     00000000 (0)\n+05015E Filename Length       0040 (64)\n+050160 Extra Length          0009 (9)\n+050162 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50162: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0501A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0501A4   Length              0005 (5)\n+0501A6   Flags               01 (1) 'Modification'\n+0501A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0501AB PAYLOAD\n+\n+050993 DATA DESCRIPTOR       08074B50 (134695760)\n+050997 CRC                   F1E099F8 (4058028536)\n+05099B Compressed Size       000007E8 (2024)\n+05099F Uncompressed Size     000007E8 (2024)\n+\n+0509A3 LOCAL HEADER #116     04034B50 (67324752)\n+0509A7 Extract Zip Spec      14 (20) '2.0'\n+0509A8 Extract OS            00 (0) 'MS-DOS'\n+0509A9 General Purpose Flag  0000 (0)\n+0509AB Compression Method    0000 (0) 'Stored'\n+0509AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0509B1 CRC                   00000000 (0)\n+0509B5 Compressed Size       00000000 (0)\n+0509B9 Uncompressed Size     00000000 (0)\n+0509BD Filename Length       003D (61)\n+0509BF Extra Length          0009 (9)\n+0509C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x509C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0509FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+050A00   Length              0005 (5)\n+050A02   Flags               01 (1) 'Modification'\n+050A03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+050A07 LOCAL HEADER #117     04034B50 (67324752)\n+050A0B Extract Zip Spec      14 (20) '2.0'\n+050A0C Extract OS            00 (0) 'MS-DOS'\n+050A0D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+050A0F Compression Method    0000 (0) 'Stored'\n+050A11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+050A15 CRC                   00000000 (0)\n+050A19 Compressed Size       00000000 (0)\n+050A1D Uncompressed Size     00000000 (0)\n+050A21 Filename Length       004B (75)\n+050A23 Extra Length          0009 (9)\n+050A25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50A25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+050A70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+050A72   Length              0005 (5)\n+050A74   Flags               01 (1) 'Modification'\n+050A75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+050A79 DATA DESCRIPTOR       08074B50 (134695760)\n+050A7D CRC                   00000000 (0)\n+050A81 Compressed Size       00000000 (0)\n+050A85 Uncompressed Size     00000000 (0)\n+\n+050A89 LOCAL HEADER #118     04034B50 (67324752)\n+050A8D Extract Zip Spec      14 (20) '2.0'\n+050A8E Extract OS            00 (0) 'MS-DOS'\n+050A8F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+050A91 Compression Method    0000 (0) 'Stored'\n+050A93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+050A97 CRC                   00000000 (0)\n+050A9B Compressed Size       00000000 (0)\n+050A9F Uncompressed Size     00000000 (0)\n+050AA3 Filename Length       0044 (68)\n+050AA5 Extra Length          0009 (9)\n+050AA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50AA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+050AEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+050AED   Length              0005 (5)\n+050AEF   Flags               01 (1) 'Modification'\n+050AF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+050AF4 PAYLOAD\n+\n+051399 DATA DESCRIPTOR       08074B50 (134695760)\n+05139D CRC                   E98EF8F4 (3918461172)\n+0513A1 Compressed Size       000008A5 (2213)\n+0513A5 Uncompressed Size     000008A5 (2213)\n+\n+0513A9 LOCAL HEADER #119     04034B50 (67324752)\n+0513AD Extract Zip Spec      14 (20) '2.0'\n+0513AE Extract OS            00 (0) 'MS-DOS'\n+0513AF General Purpose Flag  0000 (0)\n+0513B1 Compression Method    0000 (0) 'Stored'\n+0513B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0513B7 CRC                   00000000 (0)\n+0513BB Compressed Size       00000000 (0)\n+0513BF Uncompressed Size     00000000 (0)\n+0513C3 Filename Length       0034 (52)\n+0513C5 Extra Length          0009 (9)\n+0513C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x513C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0513FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0513FD   Length              0005 (5)\n+0513FF   Flags               01 (1) 'Modification'\n+051400   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+051404 LOCAL HEADER #120     04034B50 (67324752)\n+051408 Extract Zip Spec      14 (20) '2.0'\n+051409 Extract OS            00 (0) 'MS-DOS'\n+05140A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05140C Compression Method    0000 (0) 'Stored'\n+05140E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+051412 CRC                   00000000 (0)\n+051416 Compressed Size       00000000 (0)\n+05141A Uncompressed Size     00000000 (0)\n+05141E Filename Length       0042 (66)\n+051420 Extra Length          0009 (9)\n+051422 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51422: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+051464 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+051466   Length              0005 (5)\n+051468   Flags               01 (1) 'Modification'\n+051469   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05146D DATA DESCRIPTOR       08074B50 (134695760)\n+051471 CRC                   00000000 (0)\n+051475 Compressed Size       00000000 (0)\n+051479 Uncompressed Size     00000000 (0)\n+\n+05147D LOCAL HEADER #121     04034B50 (67324752)\n+051481 Extract Zip Spec      14 (20) '2.0'\n+051482 Extract OS            00 (0) 'MS-DOS'\n+051483 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+051485 Compression Method    0000 (0) 'Stored'\n+051487 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05148B CRC                   00000000 (0)\n+05148F Compressed Size       00000000 (0)\n+051493 Uncompressed Size     00000000 (0)\n+051497 Filename Length       003B (59)\n+051499 Extra Length          0009 (9)\n+05149B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5149B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0514D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0514D8   Length              0005 (5)\n+0514DA   Flags               01 (1) 'Modification'\n+0514DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0514DF PAYLOAD\n+\n+051DF6 DATA DESCRIPTOR       08074B50 (134695760)\n+051DFA CRC                   C9681FCD (3379044301)\n+051DFE Compressed Size       00000917 (2327)\n+051E02 Uncompressed Size     00000917 (2327)\n+\n+051E06 LOCAL HEADER #122     04034B50 (67324752)\n+051E0A Extract Zip Spec      14 (20) '2.0'\n+051E0B Extract OS            00 (0) 'MS-DOS'\n+051E0C General Purpose Flag  0000 (0)\n+051E0E Compression Method    0000 (0) 'Stored'\n+051E10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+051E14 CRC                   00000000 (0)\n+051E18 Compressed Size       00000000 (0)\n+051E1C Uncompressed Size     00000000 (0)\n+051E20 Filename Length       0036 (54)\n+051E22 Extra Length          0009 (9)\n+051E24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51E24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+051E5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+051E5C   Length              0005 (5)\n+051E5E   Flags               01 (1) 'Modification'\n+051E5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+051E63 LOCAL HEADER #123     04034B50 (67324752)\n+051E67 Extract Zip Spec      14 (20) '2.0'\n+051E68 Extract OS            00 (0) 'MS-DOS'\n+051E69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+051E6B Compression Method    0000 (0) 'Stored'\n+051E6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+051E71 CRC                   00000000 (0)\n+051E75 Compressed Size       00000000 (0)\n+051E79 Uncompressed Size     00000000 (0)\n+051E7D Filename Length       0044 (68)\n+051E7F Extra Length          0009 (9)\n+051E81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51E81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+051EC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+051EC7   Length              0005 (5)\n+051EC9   Flags               01 (1) 'Modification'\n+051ECA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+051ECE DATA DESCRIPTOR       08074B50 (134695760)\n+051ED2 CRC                   00000000 (0)\n+051ED6 Compressed Size       00000000 (0)\n+051EDA Uncompressed Size     00000000 (0)\n+\n+051EDE LOCAL HEADER #124     04034B50 (67324752)\n+051EE2 Extract Zip Spec      14 (20) '2.0'\n+051EE3 Extract OS            00 (0) 'MS-DOS'\n+051EE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+051EE6 Compression Method    0000 (0) 'Stored'\n+051EE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+051EEC CRC                   00000000 (0)\n+051EF0 Compressed Size       00000000 (0)\n+051EF4 Uncompressed Size     00000000 (0)\n+051EF8 Filename Length       003D (61)\n+051EFA Extra Length          0009 (9)\n+051EFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51EFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+051F39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+051F3B   Length              0005 (5)\n+051F3D   Flags               01 (1) 'Modification'\n+051F3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+051F42 PAYLOAD\n+\n+0526DD DATA DESCRIPTOR       08074B50 (134695760)\n+0526E1 CRC                   5DC5D2E5 (1573245669)\n+0526E5 Compressed Size       0000079B (1947)\n+0526E9 Uncompressed Size     0000079B (1947)\n+\n+0526ED LOCAL HEADER #125     04034B50 (67324752)\n+0526F1 Extract Zip Spec      14 (20) '2.0'\n+0526F2 Extract OS            00 (0) 'MS-DOS'\n+0526F3 General Purpose Flag  0000 (0)\n+0526F5 Compression Method    0000 (0) 'Stored'\n+0526F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0526FB CRC                   00000000 (0)\n+0526FF Compressed Size       00000000 (0)\n+052703 Uncompressed Size     00000000 (0)\n+052707 Filename Length       0038 (56)\n+052709 Extra Length          0009 (9)\n+05270B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5270B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+052743 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+052745   Length              0005 (5)\n+052747   Flags               01 (1) 'Modification'\n+052748   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05274C LOCAL HEADER #126     04034B50 (67324752)\n+052750 Extract Zip Spec      14 (20) '2.0'\n+052751 Extract OS            00 (0) 'MS-DOS'\n+052752 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+052754 Compression Method    0000 (0) 'Stored'\n+052756 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05275A CRC                   00000000 (0)\n+05275E Compressed Size       00000000 (0)\n+052762 Uncompressed Size     00000000 (0)\n+052766 Filename Length       0046 (70)\n+052768 Extra Length          0009 (9)\n+05276A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5276A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0527B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0527B2   Length              0005 (5)\n+0527B4   Flags               01 (1) 'Modification'\n+0527B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0527B9 DATA DESCRIPTOR       08074B50 (134695760)\n+0527BD CRC                   00000000 (0)\n+0527C1 Compressed Size       00000000 (0)\n+0527C5 Uncompressed Size     00000000 (0)\n+\n+0527C9 LOCAL HEADER #127     04034B50 (67324752)\n+0527CD Extract Zip Spec      14 (20) '2.0'\n+0527CE Extract OS            00 (0) 'MS-DOS'\n+0527CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0527D1 Compression Method    0000 (0) 'Stored'\n+0527D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0527D7 CRC                   00000000 (0)\n+0527DB Compressed Size       00000000 (0)\n+0527DF Uncompressed Size     00000000 (0)\n+0527E3 Filename Length       003F (63)\n+0527E5 Extra Length          0009 (9)\n+0527E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x527E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+052826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+052828   Length              0005 (5)\n+05282A   Flags               01 (1) 'Modification'\n+05282B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05282F PAYLOAD\n+\n+053048 DATA DESCRIPTOR       08074B50 (134695760)\n+05304C CRC                   3042ABBA (809675706)\n+053050 Compressed Size       00000819 (2073)\n+053054 Uncompressed Size     00000819 (2073)\n+\n+053058 LOCAL HEADER #128     04034B50 (67324752)\n+05305C Extract Zip Spec      14 (20) '2.0'\n+05305D Extract OS            00 (0) 'MS-DOS'\n+05305E General Purpose Flag  0000 (0)\n+053060 Compression Method    0000 (0) 'Stored'\n+053062 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+053066 CRC                   00000000 (0)\n+05306A Compressed Size       00000000 (0)\n+05306E Uncompressed Size     00000000 (0)\n+053072 Filename Length       0037 (55)\n+053074 Extra Length          0009 (9)\n+053076 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53076: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0530AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0530AF   Length              0005 (5)\n+0530B1   Flags               01 (1) 'Modification'\n+0530B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0530B6 LOCAL HEADER #129     04034B50 (67324752)\n+0530BA Extract Zip Spec      14 (20) '2.0'\n+0530BB Extract OS            00 (0) 'MS-DOS'\n+0530BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0530BE Compression Method    0000 (0) 'Stored'\n+0530C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0530C4 CRC                   00000000 (0)\n+0530C8 Compressed Size       00000000 (0)\n+0530CC Uncompressed Size     00000000 (0)\n+0530D0 Filename Length       0045 (69)\n+0530D2 Extra Length          0009 (9)\n+0530D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x530D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+053119 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05311B   Length              0005 (5)\n+05311D   Flags               01 (1) 'Modification'\n+05311E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+053122 DATA DESCRIPTOR       08074B50 (134695760)\n+053126 CRC                   00000000 (0)\n+05312A Compressed Size       00000000 (0)\n+05312E Uncompressed Size     00000000 (0)\n+\n+053132 LOCAL HEADER #130     04034B50 (67324752)\n+053136 Extract Zip Spec      14 (20) '2.0'\n+053137 Extract OS            00 (0) 'MS-DOS'\n+053138 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05313A Compression Method    0000 (0) 'Stored'\n+05313C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+053140 CRC                   00000000 (0)\n+053144 Compressed Size       00000000 (0)\n+053148 Uncompressed Size     00000000 (0)\n+05314C Filename Length       003E (62)\n+05314E Extra Length          0009 (9)\n+053150 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53150: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05318E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+053190   Length              0005 (5)\n+053192   Flags               01 (1) 'Modification'\n+053193   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+053197 PAYLOAD\n+\n+0539B2 DATA DESCRIPTOR       08074B50 (134695760)\n+0539B6 CRC                   FBE00F68 (4225765224)\n+0539BA Compressed Size       0000081B (2075)\n+0539BE Uncompressed Size     0000081B (2075)\n+\n+0539C2 LOCAL HEADER #131     04034B50 (67324752)\n+0539C6 Extract Zip Spec      14 (20) '2.0'\n+0539C7 Extract OS            00 (0) 'MS-DOS'\n+0539C8 General Purpose Flag  0000 (0)\n+0539CA Compression Method    0000 (0) 'Stored'\n+0539CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0539D0 CRC                   00000000 (0)\n+0539D4 Compressed Size       00000000 (0)\n+0539D8 Uncompressed Size     00000000 (0)\n+0539DC Filename Length       0033 (51)\n+0539DE Extra Length          0009 (9)\n+0539E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x539E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+053A13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+053A15   Length              0005 (5)\n+053A17   Flags               01 (1) 'Modification'\n+053A18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+053A1C LOCAL HEADER #132     04034B50 (67324752)\n+053A20 Extract Zip Spec      14 (20) '2.0'\n+053A21 Extract OS            00 (0) 'MS-DOS'\n+053A22 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+053A24 Compression Method    0000 (0) 'Stored'\n+053A26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+053A2A CRC                   00000000 (0)\n+053A2E Compressed Size       00000000 (0)\n+053A32 Uncompressed Size     00000000 (0)\n+053A36 Filename Length       0041 (65)\n+053A38 Extra Length          0009 (9)\n+053A3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53A3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+053A7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+053A7D   Length              0005 (5)\n+053A7F   Flags               01 (1) 'Modification'\n+053A80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+053A84 DATA DESCRIPTOR       08074B50 (134695760)\n+053A88 CRC                   00000000 (0)\n+053A8C Compressed Size       00000000 (0)\n+053A90 Uncompressed Size     00000000 (0)\n+\n+053A94 LOCAL HEADER #133     04034B50 (67324752)\n+053A98 Extract Zip Spec      14 (20) '2.0'\n+053A99 Extract OS            00 (0) 'MS-DOS'\n+053A9A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+053A9C Compression Method    0000 (0) 'Stored'\n+053A9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+053AA2 CRC                   00000000 (0)\n+053AA6 Compressed Size       00000000 (0)\n+053AAA Uncompressed Size     00000000 (0)\n+053AAE Filename Length       003A (58)\n+053AB0 Extra Length          0009 (9)\n+053AB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53AB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+053AEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+053AEE   Length              0005 (5)\n+053AF0   Flags               01 (1) 'Modification'\n+053AF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+053AF5 PAYLOAD\n+\n+0543A6 DATA DESCRIPTOR       08074B50 (134695760)\n+0543AA CRC                   6B1D5A12 (1797085714)\n+0543AE Compressed Size       000008B1 (2225)\n+0543B2 Uncompressed Size     000008B1 (2225)\n+\n+0543B6 LOCAL HEADER #134     04034B50 (67324752)\n+0543BA Extract Zip Spec      14 (20) '2.0'\n+0543BB Extract OS            00 (0) 'MS-DOS'\n+0543BC General Purpose Flag  0000 (0)\n+0543BE Compression Method    0000 (0) 'Stored'\n+0543C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0543C4 CRC                   00000000 (0)\n+0543C8 Compressed Size       00000000 (0)\n+0543CC Uncompressed Size     00000000 (0)\n+0543D0 Filename Length       0038 (56)\n+0543D2 Extra Length          0009 (9)\n+0543D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x543D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05440C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05440E   Length              0005 (5)\n+054410   Flags               01 (1) 'Modification'\n+054411   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+054415 LOCAL HEADER #135     04034B50 (67324752)\n+054419 Extract Zip Spec      14 (20) '2.0'\n+05441A Extract OS            00 (0) 'MS-DOS'\n+05441B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05441D Compression Method    0000 (0) 'Stored'\n+05441F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+054423 CRC                   00000000 (0)\n+054427 Compressed Size       00000000 (0)\n+05442B Uncompressed Size     00000000 (0)\n+05442F Filename Length       0046 (70)\n+054431 Extra Length          0009 (9)\n+054433 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54433: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+054479 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05447B   Length              0005 (5)\n+05447D   Flags               01 (1) 'Modification'\n+05447E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+054482 DATA DESCRIPTOR       08074B50 (134695760)\n+054486 CRC                   00000000 (0)\n+05448A Compressed Size       00000000 (0)\n+05448E Uncompressed Size     00000000 (0)\n+\n+054492 LOCAL HEADER #136     04034B50 (67324752)\n+054496 Extract Zip Spec      14 (20) '2.0'\n+054497 Extract OS            00 (0) 'MS-DOS'\n+054498 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05449A Compression Method    0000 (0) 'Stored'\n+05449C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0544A0 CRC                   00000000 (0)\n+0544A4 Compressed Size       00000000 (0)\n+0544A8 Uncompressed Size     00000000 (0)\n+0544AC Filename Length       003F (63)\n+0544AE Extra Length          0009 (9)\n+0544B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x544B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0544EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0544F1   Length              0005 (5)\n+0544F3   Flags               01 (1) 'Modification'\n+0544F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0544F8 PAYLOAD\n+\n+0550BB DATA DESCRIPTOR       08074B50 (134695760)\n+0550BF CRC                   705B7625 (1885042213)\n+0550C3 Compressed Size       00000BC3 (3011)\n+0550C7 Uncompressed Size     00000BC3 (3011)\n+\n+0550CB LOCAL HEADER #137     04034B50 (67324752)\n+0550CF Extract Zip Spec      14 (20) '2.0'\n+0550D0 Extract OS            00 (0) 'MS-DOS'\n+0550D1 General Purpose Flag  0000 (0)\n+0550D3 Compression Method    0000 (0) 'Stored'\n+0550D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0550D9 CRC                   00000000 (0)\n+0550DD Compressed Size       00000000 (0)\n+0550E1 Uncompressed Size     00000000 (0)\n+0550E5 Filename Length       0033 (51)\n+0550E7 Extra Length          0009 (9)\n+0550E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x550E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05511C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05511E   Length              0005 (5)\n+055120   Flags               01 (1) 'Modification'\n+055121   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+055125 LOCAL HEADER #138     04034B50 (67324752)\n+055129 Extract Zip Spec      14 (20) '2.0'\n+05512A Extract OS            00 (0) 'MS-DOS'\n+05512B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05512D Compression Method    0000 (0) 'Stored'\n+05512F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+055133 CRC                   00000000 (0)\n+055137 Compressed Size       00000000 (0)\n+05513B Uncompressed Size     00000000 (0)\n+05513F Filename Length       0041 (65)\n+055141 Extra Length          0009 (9)\n+055143 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55143: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+055184 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+055186   Length              0005 (5)\n+055188   Flags               01 (1) 'Modification'\n+055189   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05518D DATA DESCRIPTOR       08074B50 (134695760)\n+055191 CRC                   00000000 (0)\n+055195 Compressed Size       00000000 (0)\n+055199 Uncompressed Size     00000000 (0)\n+\n+05519D LOCAL HEADER #139     04034B50 (67324752)\n+0551A1 Extract Zip Spec      14 (20) '2.0'\n+0551A2 Extract OS            00 (0) 'MS-DOS'\n+0551A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0551A5 Compression Method    0000 (0) 'Stored'\n+0551A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0551AB CRC                   00000000 (0)\n+0551AF Compressed Size       00000000 (0)\n+0551B3 Uncompressed Size     00000000 (0)\n+0551B7 Filename Length       003A (58)\n+0551B9 Extra Length          0009 (9)\n+0551BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x551BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0551F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0551F7   Length              0005 (5)\n+0551F9   Flags               01 (1) 'Modification'\n+0551FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0551FE PAYLOAD\n+\n+055D9F DATA DESCRIPTOR       08074B50 (134695760)\n+055DA3 CRC                   4FF02D0F (1341140239)\n+055DA7 Compressed Size       00000BA1 (2977)\n+055DAB Uncompressed Size     00000BA1 (2977)\n+\n+055DAF LOCAL HEADER #140     04034B50 (67324752)\n+055DB3 Extract Zip Spec      14 (20) '2.0'\n+055DB4 Extract OS            00 (0) 'MS-DOS'\n+055DB5 General Purpose Flag  0000 (0)\n+055DB7 Compression Method    0000 (0) 'Stored'\n+055DB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+055DBD CRC                   00000000 (0)\n+055DC1 Compressed Size       00000000 (0)\n+055DC5 Uncompressed Size     00000000 (0)\n+055DC9 Filename Length       003D (61)\n+055DCB Extra Length          0009 (9)\n+055DCD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55DCD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+055E0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+055E0C   Length              0005 (5)\n+055E0E   Flags               01 (1) 'Modification'\n+055E0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+055E13 LOCAL HEADER #141     04034B50 (67324752)\n+055E17 Extract Zip Spec      14 (20) '2.0'\n+055E18 Extract OS            00 (0) 'MS-DOS'\n+055E19 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+055E1B Compression Method    0000 (0) 'Stored'\n+055E1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+055E21 CRC                   00000000 (0)\n+055E25 Compressed Size       00000000 (0)\n+055E29 Uncompressed Size     00000000 (0)\n+055E2D Filename Length       004B (75)\n+055E2F Extra Length          0009 (9)\n+055E31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55E31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+055E7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+055E7E   Length              0005 (5)\n+055E80   Flags               01 (1) 'Modification'\n+055E81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+055E85 DATA DESCRIPTOR       08074B50 (134695760)\n+055E89 CRC                   00000000 (0)\n+055E8D Compressed Size       00000000 (0)\n+055E91 Uncompressed Size     00000000 (0)\n+\n+055E95 LOCAL HEADER #142     04034B50 (67324752)\n+055E99 Extract Zip Spec      14 (20) '2.0'\n+055E9A Extract OS            00 (0) 'MS-DOS'\n+055E9B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+055E9D Compression Method    0000 (0) 'Stored'\n+055E9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+055EA3 CRC                   00000000 (0)\n+055EA7 Compressed Size       00000000 (0)\n+055EAB Uncompressed Size     00000000 (0)\n+055EAF Filename Length       0044 (68)\n+055EB1 Extra Length          0009 (9)\n+055EB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55EB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+055EF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+055EF9   Length              0005 (5)\n+055EFB   Flags               01 (1) 'Modification'\n+055EFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+055F00 PAYLOAD\n+\n+056730 DATA DESCRIPTOR       08074B50 (134695760)\n+056734 CRC                   BC035C85 (3154336901)\n+056738 Compressed Size       00000830 (2096)\n+05673C Uncompressed Size     00000830 (2096)\n+\n+056740 LOCAL HEADER #143     04034B50 (67324752)\n+056744 Extract Zip Spec      14 (20) '2.0'\n+056745 Extract OS            00 (0) 'MS-DOS'\n+056746 General Purpose Flag  0000 (0)\n+056748 Compression Method    0000 (0) 'Stored'\n+05674A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05674E CRC                   00000000 (0)\n+056752 Compressed Size       00000000 (0)\n+056756 Uncompressed Size     00000000 (0)\n+05675A Filename Length       003B (59)\n+05675C Extra Length          0009 (9)\n+05675E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5675E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+056799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05679B   Length              0005 (5)\n+05679D   Flags               01 (1) 'Modification'\n+05679E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0567A2 LOCAL HEADER #144     04034B50 (67324752)\n+0567A6 Extract Zip Spec      14 (20) '2.0'\n+0567A7 Extract OS            00 (0) 'MS-DOS'\n+0567A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0567AA Compression Method    0000 (0) 'Stored'\n+0567AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0567B0 CRC                   00000000 (0)\n+0567B4 Compressed Size       00000000 (0)\n+0567B8 Uncompressed Size     00000000 (0)\n+0567BC Filename Length       0049 (73)\n+0567BE Extra Length          0009 (9)\n+0567C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x567C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+056809 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05680B   Length              0005 (5)\n+05680D   Flags               01 (1) 'Modification'\n+05680E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+056812 DATA DESCRIPTOR       08074B50 (134695760)\n+056816 CRC                   00000000 (0)\n+05681A Compressed Size       00000000 (0)\n+05681E Uncompressed Size     00000000 (0)\n+\n+056822 LOCAL HEADER #145     04034B50 (67324752)\n+056826 Extract Zip Spec      14 (20) '2.0'\n+056827 Extract OS            00 (0) 'MS-DOS'\n+056828 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05682A Compression Method    0000 (0) 'Stored'\n+05682C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+056830 CRC                   00000000 (0)\n+056834 Compressed Size       00000000 (0)\n+056838 Uncompressed Size     00000000 (0)\n+05683C Filename Length       0042 (66)\n+05683E Extra Length          0009 (9)\n+056840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+056882 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+056884   Length              0005 (5)\n+056886   Flags               01 (1) 'Modification'\n+056887   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05688B PAYLOAD\n+\n+0572A7 DATA DESCRIPTOR       08074B50 (134695760)\n+0572AB CRC                   5928AB14 (1495837460)\n+0572AF Compressed Size       00000A1C (2588)\n+0572B3 Uncompressed Size     00000A1C (2588)\n+\n+0572B7 LOCAL HEADER #146     04034B50 (67324752)\n+0572BB Extract Zip Spec      14 (20) '2.0'\n+0572BC Extract OS            00 (0) 'MS-DOS'\n+0572BD General Purpose Flag  0000 (0)\n+0572BF Compression Method    0000 (0) 'Stored'\n+0572C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0572C5 CRC                   00000000 (0)\n+0572C9 Compressed Size       00000000 (0)\n+0572CD Uncompressed Size     00000000 (0)\n+0572D1 Filename Length       003F (63)\n+0572D3 Extra Length          0009 (9)\n+0572D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x572D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057314 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+057316   Length              0005 (5)\n+057318   Flags               01 (1) 'Modification'\n+057319   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05731D LOCAL HEADER #147     04034B50 (67324752)\n+057321 Extract Zip Spec      14 (20) '2.0'\n+057322 Extract OS            00 (0) 'MS-DOS'\n+057323 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+057325 Compression Method    0000 (0) 'Stored'\n+057327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05732B CRC                   00000000 (0)\n+05732F Compressed Size       00000000 (0)\n+057333 Uncompressed Size     00000000 (0)\n+057337 Filename Length       004D (77)\n+057339 Extra Length          0009 (9)\n+05733B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5733B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057388 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05738A   Length              0005 (5)\n+05738C   Flags               01 (1) 'Modification'\n+05738D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+057391 DATA DESCRIPTOR       08074B50 (134695760)\n+057395 CRC                   00000000 (0)\n+057399 Compressed Size       00000000 (0)\n+05739D Uncompressed Size     00000000 (0)\n+\n+0573A1 LOCAL HEADER #148     04034B50 (67324752)\n+0573A5 Extract Zip Spec      14 (20) '2.0'\n+0573A6 Extract OS            00 (0) 'MS-DOS'\n+0573A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0573A9 Compression Method    0000 (0) 'Stored'\n+0573AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0573AF CRC                   00000000 (0)\n+0573B3 Compressed Size       00000000 (0)\n+0573B7 Uncompressed Size     00000000 (0)\n+0573BB Filename Length       0046 (70)\n+0573BD Extra Length          0009 (9)\n+0573BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x573BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057405 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+057407   Length              0005 (5)\n+057409   Flags               01 (1) 'Modification'\n+05740A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05740E PAYLOAD\n+\n+057AF1 DATA DESCRIPTOR       08074B50 (134695760)\n+057AF5 CRC                   9E243A48 (2653174344)\n+057AF9 Compressed Size       000006E3 (1763)\n+057AFD Uncompressed Size     000006E3 (1763)\n+\n+057B01 LOCAL HEADER #149     04034B50 (67324752)\n+057B05 Extract Zip Spec      14 (20) '2.0'\n+057B06 Extract OS            00 (0) 'MS-DOS'\n+057B07 General Purpose Flag  0000 (0)\n+057B09 Compression Method    0000 (0) 'Stored'\n+057B0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+057B0F CRC                   00000000 (0)\n+057B13 Compressed Size       00000000 (0)\n+057B17 Uncompressed Size     00000000 (0)\n+057B1B Filename Length       003C (60)\n+057B1D Extra Length          0009 (9)\n+057B1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57B1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057B5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+057B5D   Length              0005 (5)\n+057B5F   Flags               01 (1) 'Modification'\n+057B60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+057B64 LOCAL HEADER #150     04034B50 (67324752)\n+057B68 Extract Zip Spec      14 (20) '2.0'\n+057B69 Extract OS            00 (0) 'MS-DOS'\n+057B6A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+057B6C Compression Method    0000 (0) 'Stored'\n+057B6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+057B72 CRC                   00000000 (0)\n+057B76 Compressed Size       00000000 (0)\n+057B7A Uncompressed Size     00000000 (0)\n+057B7E Filename Length       004A (74)\n+057B80 Extra Length          0009 (9)\n+057B82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57B82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057BCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+057BCE   Length              0005 (5)\n+057BD0   Flags               01 (1) 'Modification'\n+057BD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+057BD5 DATA DESCRIPTOR       08074B50 (134695760)\n+057BD9 CRC                   00000000 (0)\n+057BDD Compressed Size       00000000 (0)\n+057BE1 Uncompressed Size     00000000 (0)\n+\n+057BE5 LOCAL HEADER #151     04034B50 (67324752)\n+057BE9 Extract Zip Spec      14 (20) '2.0'\n+057BEA Extract OS            00 (0) 'MS-DOS'\n+057BEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+057BED Compression Method    0000 (0) 'Stored'\n+057BEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+057BF3 CRC                   00000000 (0)\n+057BF7 Compressed Size       00000000 (0)\n+057BFB Uncompressed Size     00000000 (0)\n+057BFF Filename Length       0043 (67)\n+057C01 Extra Length          0009 (9)\n+057C03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57C03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+057C46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+057C48   Length              0005 (5)\n+057C4A   Flags               01 (1) 'Modification'\n+057C4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+057C4F PAYLOAD\n+\n+058406 DATA DESCRIPTOR       08074B50 (134695760)\n+05840A CRC                   19067571 (419853681)\n+05840E Compressed Size       000007B7 (1975)\n+058412 Uncompressed Size     000007B7 (1975)\n+\n+058416 LOCAL HEADER #152     04034B50 (67324752)\n+05841A Extract Zip Spec      14 (20) '2.0'\n+05841B Extract OS            00 (0) 'MS-DOS'\n+05841C General Purpose Flag  0000 (0)\n+05841E Compression Method    0000 (0) 'Stored'\n+058420 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058424 CRC                   00000000 (0)\n+058428 Compressed Size       00000000 (0)\n+05842C Uncompressed Size     00000000 (0)\n+058430 Filename Length       003C (60)\n+058432 Extra Length          0009 (9)\n+058434 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58434: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+058470 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+058472   Length              0005 (5)\n+058474   Flags               01 (1) 'Modification'\n+058475   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+058479 LOCAL HEADER #153     04034B50 (67324752)\n+05847D Extract Zip Spec      14 (20) '2.0'\n+05847E Extract OS            00 (0) 'MS-DOS'\n+05847F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+058481 Compression Method    0000 (0) 'Stored'\n+058483 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058487 CRC                   00000000 (0)\n+05848B Compressed Size       00000000 (0)\n+05848F Uncompressed Size     00000000 (0)\n+058493 Filename Length       004A (74)\n+058495 Extra Length          0009 (9)\n+058497 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58497: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0584E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0584E3   Length              0005 (5)\n+0584E5   Flags               01 (1) 'Modification'\n+0584E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0584EA DATA DESCRIPTOR       08074B50 (134695760)\n+0584EE CRC                   00000000 (0)\n+0584F2 Compressed Size       00000000 (0)\n+0584F6 Uncompressed Size     00000000 (0)\n+\n+0584FA LOCAL HEADER #154     04034B50 (67324752)\n+0584FE Extract Zip Spec      14 (20) '2.0'\n+0584FF Extract OS            00 (0) 'MS-DOS'\n+058500 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+058502 Compression Method    0000 (0) 'Stored'\n+058504 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058508 CRC                   00000000 (0)\n+05850C Compressed Size       00000000 (0)\n+058510 Uncompressed Size     00000000 (0)\n+058514 Filename Length       0043 (67)\n+058516 Extra Length          0009 (9)\n+058518 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58518: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05855B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05855D   Length              0005 (5)\n+05855F   Flags               01 (1) 'Modification'\n+058560   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+058564 PAYLOAD\n+\n+058E75 DATA DESCRIPTOR       08074B50 (134695760)\n+058E79 CRC                   26D24E82 (651316866)\n+058E7D Compressed Size       00000911 (2321)\n+058E81 Uncompressed Size     00000911 (2321)\n+\n+058E85 LOCAL HEADER #155     04034B50 (67324752)\n+058E89 Extract Zip Spec      14 (20) '2.0'\n+058E8A Extract OS            00 (0) 'MS-DOS'\n+058E8B General Purpose Flag  0000 (0)\n+058E8D Compression Method    0000 (0) 'Stored'\n+058E8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058E93 CRC                   00000000 (0)\n+058E97 Compressed Size       00000000 (0)\n+058E9B Uncompressed Size     00000000 (0)\n+058E9F Filename Length       0040 (64)\n+058EA1 Extra Length          0009 (9)\n+058EA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58EA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+058EE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+058EE5   Length              0005 (5)\n+058EE7   Flags               01 (1) 'Modification'\n+058EE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+058EEC LOCAL HEADER #156     04034B50 (67324752)\n+058EF0 Extract Zip Spec      14 (20) '2.0'\n+058EF1 Extract OS            00 (0) 'MS-DOS'\n+058EF2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+058EF4 Compression Method    0000 (0) 'Stored'\n+058EF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058EFA CRC                   00000000 (0)\n+058EFE Compressed Size       00000000 (0)\n+058F02 Uncompressed Size     00000000 (0)\n+058F06 Filename Length       004E (78)\n+058F08 Extra Length          0009 (9)\n+058F0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58F0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+058F58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+058F5A   Length              0005 (5)\n+058F5C   Flags               01 (1) 'Modification'\n+058F5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+058F61 DATA DESCRIPTOR       08074B50 (134695760)\n+058F65 CRC                   00000000 (0)\n+058F69 Compressed Size       00000000 (0)\n+058F6D Uncompressed Size     00000000 (0)\n+\n+058F71 LOCAL HEADER #157     04034B50 (67324752)\n+058F75 Extract Zip Spec      14 (20) '2.0'\n+058F76 Extract OS            00 (0) 'MS-DOS'\n+058F77 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+058F79 Compression Method    0000 (0) 'Stored'\n+058F7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+058F7F CRC                   00000000 (0)\n+058F83 Compressed Size       00000000 (0)\n+058F87 Uncompressed Size     00000000 (0)\n+058F8B Filename Length       0047 (71)\n+058F8D Extra Length          0009 (9)\n+058F8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58F8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+058FD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+058FD8   Length              0005 (5)\n+058FDA   Flags               01 (1) 'Modification'\n+058FDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+058FDF PAYLOAD\n+\n+059815 DATA DESCRIPTOR       08074B50 (134695760)\n+059819 CRC                   1213AD1C (303279388)\n+05981D Compressed Size       00000836 (2102)\n+059821 Uncompressed Size     00000836 (2102)\n+\n+059825 LOCAL HEADER #158     04034B50 (67324752)\n+059829 Extract Zip Spec      14 (20) '2.0'\n+05982A Extract OS            00 (0) 'MS-DOS'\n+05982B General Purpose Flag  0000 (0)\n+05982D Compression Method    0000 (0) 'Stored'\n+05982F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+059833 CRC                   00000000 (0)\n+059837 Compressed Size       00000000 (0)\n+05983B Uncompressed Size     00000000 (0)\n+05983F Filename Length       0032 (50)\n+059841 Extra Length          0009 (9)\n+059843 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59843: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+059875 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+059877   Length              0005 (5)\n+059879   Flags               01 (1) 'Modification'\n+05987A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05987E LOCAL HEADER #159     04034B50 (67324752)\n+059882 Extract Zip Spec      14 (20) '2.0'\n+059883 Extract OS            00 (0) 'MS-DOS'\n+059884 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+059886 Compression Method    0000 (0) 'Stored'\n+059888 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05988C CRC                   00000000 (0)\n+059890 Compressed Size       00000000 (0)\n+059894 Uncompressed Size     00000000 (0)\n+059898 Filename Length       0040 (64)\n+05989A Extra Length          0009 (9)\n+05989C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5989C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0598DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0598DE   Length              0005 (5)\n+0598E0   Flags               01 (1) 'Modification'\n+0598E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0598E5 DATA DESCRIPTOR       08074B50 (134695760)\n+0598E9 CRC                   00000000 (0)\n+0598ED Compressed Size       00000000 (0)\n+0598F1 Uncompressed Size     00000000 (0)\n+\n+0598F5 LOCAL HEADER #160     04034B50 (67324752)\n+0598F9 Extract Zip Spec      14 (20) '2.0'\n+0598FA Extract OS            00 (0) 'MS-DOS'\n+0598FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0598FD Compression Method    0000 (0) 'Stored'\n+0598FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+059903 CRC                   00000000 (0)\n+059907 Compressed Size       00000000 (0)\n+05990B Uncompressed Size     00000000 (0)\n+05990F Filename Length       0039 (57)\n+059911 Extra Length          0009 (9)\n+059913 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59913: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05994C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05994E   Length              0005 (5)\n+059950   Flags               01 (1) 'Modification'\n+059951   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+059955 PAYLOAD\n+\n+05A27F DATA DESCRIPTOR       08074B50 (134695760)\n+05A283 CRC                   6A3922C1 (1782129345)\n+05A287 Compressed Size       0000092A (2346)\n+05A28B Uncompressed Size     0000092A (2346)\n+\n+05A28F LOCAL HEADER #161     04034B50 (67324752)\n+05A293 Extract Zip Spec      14 (20) '2.0'\n+05A294 Extract OS            00 (0) 'MS-DOS'\n+05A295 General Purpose Flag  0000 (0)\n+05A297 Compression Method    0000 (0) 'Stored'\n+05A299 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05A29D CRC                   00000000 (0)\n+05A2A1 Compressed Size       00000000 (0)\n+05A2A5 Uncompressed Size     00000000 (0)\n+05A2A9 Filename Length       0036 (54)\n+05A2AB Extra Length          0009 (9)\n+05A2AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A2AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05A2E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05A2E5   Length              0005 (5)\n+05A2E7   Flags               01 (1) 'Modification'\n+05A2E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05A2EC LOCAL HEADER #162     04034B50 (67324752)\n+05A2F0 Extract Zip Spec      14 (20) '2.0'\n+05A2F1 Extract OS            00 (0) 'MS-DOS'\n+05A2F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05A2F4 Compression Method    0000 (0) 'Stored'\n+05A2F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05A2FA CRC                   00000000 (0)\n+05A2FE Compressed Size       00000000 (0)\n+05A302 Uncompressed Size     00000000 (0)\n+05A306 Filename Length       0044 (68)\n+05A308 Extra Length          0009 (9)\n+05A30A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A30A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05A34E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05A350   Length              0005 (5)\n+05A352   Flags               01 (1) 'Modification'\n+05A353   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05A357 DATA DESCRIPTOR       08074B50 (134695760)\n+05A35B CRC                   00000000 (0)\n+05A35F Compressed Size       00000000 (0)\n+05A363 Uncompressed Size     00000000 (0)\n+\n+05A367 LOCAL HEADER #163     04034B50 (67324752)\n+05A36B Extract Zip Spec      14 (20) '2.0'\n+05A36C Extract OS            00 (0) 'MS-DOS'\n+05A36D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05A36F Compression Method    0000 (0) 'Stored'\n+05A371 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05A375 CRC                   00000000 (0)\n+05A379 Compressed Size       00000000 (0)\n+05A37D Uncompressed Size     00000000 (0)\n+05A381 Filename Length       003D (61)\n+05A383 Extra Length          0009 (9)\n+05A385 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A385: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05A3C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05A3C4   Length              0005 (5)\n+05A3C6   Flags               01 (1) 'Modification'\n+05A3C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05A3CB PAYLOAD\n+\n+05AFE7 DATA DESCRIPTOR       08074B50 (134695760)\n+05AFEB CRC                   5192999D (1368562077)\n+05AFEF Compressed Size       00000C1C (3100)\n+05AFF3 Uncompressed Size     00000C1C (3100)\n+\n+05AFF7 LOCAL HEADER #164     04034B50 (67324752)\n+05AFFB Extract Zip Spec      14 (20) '2.0'\n+05AFFC Extract OS            00 (0) 'MS-DOS'\n+05AFFD General Purpose Flag  0000 (0)\n+05AFFF Compression Method    0000 (0) 'Stored'\n+05B001 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B005 CRC                   00000000 (0)\n+05B009 Compressed Size       00000000 (0)\n+05B00D Uncompressed Size     00000000 (0)\n+05B011 Filename Length       002A (42)\n+05B013 Extra Length          0009 (9)\n+05B015 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B015: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B03F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B041   Length              0005 (5)\n+05B043   Flags               01 (1) 'Modification'\n+05B044   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05B048 LOCAL HEADER #165     04034B50 (67324752)\n+05B04C Extract Zip Spec      14 (20) '2.0'\n+05B04D Extract OS            00 (0) 'MS-DOS'\n+05B04E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05B050 Compression Method    0000 (0) 'Stored'\n+05B052 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B056 CRC                   00000000 (0)\n+05B05A Compressed Size       00000000 (0)\n+05B05E Uncompressed Size     00000000 (0)\n+05B062 Filename Length       0038 (56)\n+05B064 Extra Length          0009 (9)\n+05B066 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B066: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B09E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B0A0   Length              0005 (5)\n+05B0A2   Flags               01 (1) 'Modification'\n+05B0A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05B0A7 DATA DESCRIPTOR       08074B50 (134695760)\n+05B0AB CRC                   00000000 (0)\n+05B0AF Compressed Size       00000000 (0)\n+05B0B3 Uncompressed Size     00000000 (0)\n+\n+05B0B7 LOCAL HEADER #166     04034B50 (67324752)\n+05B0BB Extract Zip Spec      14 (20) '2.0'\n+05B0BC Extract OS            00 (0) 'MS-DOS'\n+05B0BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05B0BF Compression Method    0000 (0) 'Stored'\n+05B0C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05B0C5 CRC                   00000000 (0)\n+05B0C9 Compressed Size       00000000 (0)\n+05B0CD Uncompressed Size     00000000 (0)\n+05B0D1 Filename Length       0031 (49)\n+05B0D3 Extra Length          0009 (9)\n+05B0D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B0D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05B106 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05B108   Length              0005 (5)\n+05B10A   Flags               01 (1) 'Modification'\n+05B10B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05B10F PAYLOAD\n+\n+05BC4C DATA DESCRIPTOR       08074B50 (134695760)\n+05BC50 CRC                   CC527EDE (3427958494)\n+05BC54 Compressed Size       00000B3D (2877)\n+05BC58 Uncompressed Size     00000B3D (2877)\n+\n+05BC5C LOCAL HEADER #167     04034B50 (67324752)\n+05BC60 Extract Zip Spec      14 (20) '2.0'\n+05BC61 Extract OS            00 (0) 'MS-DOS'\n+05BC62 General Purpose Flag  0000 (0)\n+05BC64 Compression Method    0000 (0) 'Stored'\n+05BC66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05BC6A CRC                   00000000 (0)\n+05BC6E Compressed Size       00000000 (0)\n+05BC72 Uncompressed Size     00000000 (0)\n+05BC76 Filename Length       0033 (51)\n+05BC78 Extra Length          0009 (9)\n+05BC7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BC7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05BCAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05BCAF   Length              0005 (5)\n+05BCB1   Flags               01 (1) 'Modification'\n+05BCB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05BCB6 LOCAL HEADER #168     04034B50 (67324752)\n+05BCBA Extract Zip Spec      14 (20) '2.0'\n+05BCBB Extract OS            00 (0) 'MS-DOS'\n+05BCBC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05BCBE Compression Method    0000 (0) 'Stored'\n+05BCC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05BCC4 CRC                   00000000 (0)\n+05BCC8 Compressed Size       00000000 (0)\n+05BCCC Uncompressed Size     00000000 (0)\n+05BCD0 Filename Length       0041 (65)\n+05BCD2 Extra Length          0009 (9)\n+05BCD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BCD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05BD15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05BD17   Length              0005 (5)\n+05BD19   Flags               01 (1) 'Modification'\n+05BD1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05BD1E DATA DESCRIPTOR       08074B50 (134695760)\n+05BD22 CRC                   00000000 (0)\n+05BD26 Compressed Size       00000000 (0)\n+05BD2A Uncompressed Size     00000000 (0)\n+\n+05BD2E LOCAL HEADER #169     04034B50 (67324752)\n+05BD32 Extract Zip Spec      14 (20) '2.0'\n+05BD33 Extract OS            00 (0) 'MS-DOS'\n+05BD34 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05BD36 Compression Method    0000 (0) 'Stored'\n+05BD38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05BD3C CRC                   00000000 (0)\n+05BD40 Compressed Size       00000000 (0)\n+05BD44 Uncompressed Size     00000000 (0)\n+05BD48 Filename Length       003A (58)\n+05BD4A Extra Length          0009 (9)\n+05BD4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BD4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05BD86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05BD88   Length              0005 (5)\n+05BD8A   Flags               01 (1) 'Modification'\n+05BD8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05BD8F PAYLOAD\n+\n+05CA28 DATA DESCRIPTOR       08074B50 (134695760)\n+05CA2C CRC                   C9D6A7C1 (3386288065)\n+05CA30 Compressed Size       00000C99 (3225)\n+05CA34 Uncompressed Size     00000C99 (3225)\n+\n+05CA38 LOCAL HEADER #170     04034B50 (67324752)\n+05CA3C Extract Zip Spec      14 (20) '2.0'\n+05CA3D Extract OS            00 (0) 'MS-DOS'\n+05CA3E General Purpose Flag  0000 (0)\n+05CA40 Compression Method    0000 (0) 'Stored'\n+05CA42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05CA46 CRC                   00000000 (0)\n+05CA4A Compressed Size       00000000 (0)\n+05CA4E Uncompressed Size     00000000 (0)\n+05CA52 Filename Length       0036 (54)\n+05CA54 Extra Length          0009 (9)\n+05CA56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CA56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05CA8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05CA8E   Length              0005 (5)\n+05CA90   Flags               01 (1) 'Modification'\n+05CA91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05CA95 LOCAL HEADER #171     04034B50 (67324752)\n+05CA99 Extract Zip Spec      14 (20) '2.0'\n+05CA9A Extract OS            00 (0) 'MS-DOS'\n+05CA9B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05CA9D Compression Method    0000 (0) 'Stored'\n+05CA9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05CAA3 CRC                   00000000 (0)\n+05CAA7 Compressed Size       00000000 (0)\n+05CAAB Uncompressed Size     00000000 (0)\n+05CAAF Filename Length       0044 (68)\n+05CAB1 Extra Length          0009 (9)\n+05CAB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CAB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05CAF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05CAF9   Length              0005 (5)\n+05CAFB   Flags               01 (1) 'Modification'\n+05CAFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05CB00 DATA DESCRIPTOR       08074B50 (134695760)\n+05CB04 CRC                   00000000 (0)\n+05CB08 Compressed Size       00000000 (0)\n+05CB0C Uncompressed Size     00000000 (0)\n+\n+05CB10 LOCAL HEADER #172     04034B50 (67324752)\n+05CB14 Extract Zip Spec      14 (20) '2.0'\n+05CB15 Extract OS            00 (0) 'MS-DOS'\n+05CB16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05CB18 Compression Method    0000 (0) 'Stored'\n+05CB1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05CB1E CRC                   00000000 (0)\n+05CB22 Compressed Size       00000000 (0)\n+05CB26 Uncompressed Size     00000000 (0)\n+05CB2A Filename Length       003D (61)\n+05CB2C Extra Length          0009 (9)\n+05CB2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CB2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05CB6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05CB6D   Length              0005 (5)\n+05CB6F   Flags               01 (1) 'Modification'\n+05CB70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05CB74 PAYLOAD\n+\n+05D4C5 DATA DESCRIPTOR       08074B50 (134695760)\n+05D4C9 CRC                   136E4489 (325993609)\n+05D4CD Compressed Size       00000951 (2385)\n+05D4D1 Uncompressed Size     00000951 (2385)\n+\n+05D4D5 LOCAL HEADER #173     04034B50 (67324752)\n+05D4D9 Extract Zip Spec      14 (20) '2.0'\n+05D4DA Extract OS            00 (0) 'MS-DOS'\n+05D4DB General Purpose Flag  0000 (0)\n+05D4DD Compression Method    0000 (0) 'Stored'\n+05D4DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05D4E3 CRC                   00000000 (0)\n+05D4E7 Compressed Size       00000000 (0)\n+05D4EB Uncompressed Size     00000000 (0)\n+05D4EF Filename Length       0037 (55)\n+05D4F1 Extra Length          0009 (9)\n+05D4F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D4F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05D52A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05D52C   Length              0005 (5)\n+05D52E   Flags               01 (1) 'Modification'\n+05D52F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05D533 LOCAL HEADER #174     04034B50 (67324752)\n+05D537 Extract Zip Spec      14 (20) '2.0'\n+05D538 Extract OS            00 (0) 'MS-DOS'\n+05D539 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05D53B Compression Method    0000 (0) 'Stored'\n+05D53D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05D541 CRC                   00000000 (0)\n+05D545 Compressed Size       00000000 (0)\n+05D549 Uncompressed Size     00000000 (0)\n+05D54D Filename Length       0045 (69)\n+05D54F Extra Length          0009 (9)\n+05D551 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D551: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05D596 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05D598   Length              0005 (5)\n+05D59A   Flags               01 (1) 'Modification'\n+05D59B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05D59F DATA DESCRIPTOR       08074B50 (134695760)\n+05D5A3 CRC                   00000000 (0)\n+05D5A7 Compressed Size       00000000 (0)\n+05D5AB Uncompressed Size     00000000 (0)\n+\n+05D5AF LOCAL HEADER #175     04034B50 (67324752)\n+05D5B3 Extract Zip Spec      14 (20) '2.0'\n+05D5B4 Extract OS            00 (0) 'MS-DOS'\n+05D5B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05D5B7 Compression Method    0000 (0) 'Stored'\n+05D5B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05D5BD CRC                   00000000 (0)\n+05D5C1 Compressed Size       00000000 (0)\n+05D5C5 Uncompressed Size     00000000 (0)\n+05D5C9 Filename Length       003E (62)\n+05D5CB Extra Length          0009 (9)\n+05D5CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D5CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05D60B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05D60D   Length              0005 (5)\n+05D60F   Flags               01 (1) 'Modification'\n+05D610   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05D614 PAYLOAD\n+\n+05E17C DATA DESCRIPTOR       08074B50 (134695760)\n+05E180 CRC                   1F6FA72F (527410991)\n+05E184 Compressed Size       00000B68 (2920)\n+05E188 Uncompressed Size     00000B68 (2920)\n+\n+05E18C LOCAL HEADER #176     04034B50 (67324752)\n+05E190 Extract Zip Spec      14 (20) '2.0'\n+05E191 Extract OS            00 (0) 'MS-DOS'\n+05E192 General Purpose Flag  0000 (0)\n+05E194 Compression Method    0000 (0) 'Stored'\n+05E196 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05E19A CRC                   00000000 (0)\n+05E19E Compressed Size       00000000 (0)\n+05E1A2 Uncompressed Size     00000000 (0)\n+05E1A6 Filename Length       0035 (53)\n+05E1A8 Extra Length          0009 (9)\n+05E1AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E1AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05E1DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05E1E1   Length              0005 (5)\n+05E1E3   Flags               01 (1) 'Modification'\n+05E1E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05E1E8 LOCAL HEADER #177     04034B50 (67324752)\n+05E1EC Extract Zip Spec      14 (20) '2.0'\n+05E1ED Extract OS            00 (0) 'MS-DOS'\n+05E1EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05E1F0 Compression Method    0000 (0) 'Stored'\n+05E1F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05E1F6 CRC                   00000000 (0)\n+05E1FA Compressed Size       00000000 (0)\n+05E1FE Uncompressed Size     00000000 (0)\n+05E202 Filename Length       0043 (67)\n+05E204 Extra Length          0009 (9)\n+05E206 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E206: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05E249 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05E24B   Length              0005 (5)\n+05E24D   Flags               01 (1) 'Modification'\n+05E24E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05E252 DATA DESCRIPTOR       08074B50 (134695760)\n+05E256 CRC                   00000000 (0)\n+05E25A Compressed Size       00000000 (0)\n+05E25E Uncompressed Size     00000000 (0)\n+\n+05E262 LOCAL HEADER #178     04034B50 (67324752)\n+05E266 Extract Zip Spec      14 (20) '2.0'\n+05E267 Extract OS            00 (0) 'MS-DOS'\n+05E268 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05E26A Compression Method    0000 (0) 'Stored'\n+05E26C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05E270 CRC                   00000000 (0)\n+05E274 Compressed Size       00000000 (0)\n+05E278 Uncompressed Size     00000000 (0)\n+05E27C Filename Length       003C (60)\n+05E27E Extra Length          0009 (9)\n+05E280 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E280: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05E2BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05E2BE   Length              0005 (5)\n+05E2C0   Flags               01 (1) 'Modification'\n+05E2C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05E2C5 PAYLOAD\n+\n+05EB8A DATA DESCRIPTOR       08074B50 (134695760)\n+05EB8E CRC                   69F6084D (1777731661)\n+05EB92 Compressed Size       000008C5 (2245)\n+05EB96 Uncompressed Size     000008C5 (2245)\n+\n+05EB9A LOCAL HEADER #179     04034B50 (67324752)\n+05EB9E Extract Zip Spec      14 (20) '2.0'\n+05EB9F Extract OS            00 (0) 'MS-DOS'\n+05EBA0 General Purpose Flag  0000 (0)\n+05EBA2 Compression Method    0000 (0) 'Stored'\n+05EBA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05EBA8 CRC                   00000000 (0)\n+05EBAC Compressed Size       00000000 (0)\n+05EBB0 Uncompressed Size     00000000 (0)\n+05EBB4 Filename Length       0036 (54)\n+05EBB6 Extra Length          0009 (9)\n+05EBB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EBB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05EBEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05EBF0   Length              0005 (5)\n+05EBF2   Flags               01 (1) 'Modification'\n+05EBF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05EBF7 LOCAL HEADER #180     04034B50 (67324752)\n+05EBFB Extract Zip Spec      14 (20) '2.0'\n+05EBFC Extract OS            00 (0) 'MS-DOS'\n+05EBFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05EBFF Compression Method    0000 (0) 'Stored'\n+05EC01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05EC05 CRC                   00000000 (0)\n+05EC09 Compressed Size       00000000 (0)\n+05EC0D Uncompressed Size     00000000 (0)\n+05EC11 Filename Length       0044 (68)\n+05EC13 Extra Length          0009 (9)\n+05EC15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EC15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05EC59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05EC5B   Length              0005 (5)\n+05EC5D   Flags               01 (1) 'Modification'\n+05EC5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05EC62 DATA DESCRIPTOR       08074B50 (134695760)\n+05EC66 CRC                   00000000 (0)\n+05EC6A Compressed Size       00000000 (0)\n+05EC6E Uncompressed Size     00000000 (0)\n+\n+05EC72 LOCAL HEADER #181     04034B50 (67324752)\n+05EC76 Extract Zip Spec      14 (20) '2.0'\n+05EC77 Extract OS            00 (0) 'MS-DOS'\n+05EC78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05EC7A Compression Method    0000 (0) 'Stored'\n+05EC7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05EC80 CRC                   00000000 (0)\n+05EC84 Compressed Size       00000000 (0)\n+05EC88 Uncompressed Size     00000000 (0)\n+05EC8C Filename Length       003D (61)\n+05EC8E Extra Length          0009 (9)\n+05EC90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EC90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05ECCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05ECCF   Length              0005 (5)\n+05ECD1   Flags               01 (1) 'Modification'\n+05ECD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05ECD6 PAYLOAD\n+\n+05F84C DATA DESCRIPTOR       08074B50 (134695760)\n+05F850 CRC                   26CC786B (650934379)\n+05F854 Compressed Size       00000B76 (2934)\n+05F858 Uncompressed Size     00000B76 (2934)\n+\n+05F85C LOCAL HEADER #182     04034B50 (67324752)\n+05F860 Extract Zip Spec      14 (20) '2.0'\n+05F861 Extract OS            00 (0) 'MS-DOS'\n+05F862 General Purpose Flag  0000 (0)\n+05F864 Compression Method    0000 (0) 'Stored'\n+05F866 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05F86A CRC                   00000000 (0)\n+05F86E Compressed Size       00000000 (0)\n+05F872 Uncompressed Size     00000000 (0)\n+05F876 Filename Length       0039 (57)\n+05F878 Extra Length          0009 (9)\n+05F87A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F87A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05F8B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05F8B5   Length              0005 (5)\n+05F8B7   Flags               01 (1) 'Modification'\n+05F8B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05F8BC LOCAL HEADER #183     04034B50 (67324752)\n+05F8C0 Extract Zip Spec      14 (20) '2.0'\n+05F8C1 Extract OS            00 (0) 'MS-DOS'\n+05F8C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05F8C4 Compression Method    0000 (0) 'Stored'\n+05F8C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05F8CA CRC                   00000000 (0)\n+05F8CE Compressed Size       00000000 (0)\n+05F8D2 Uncompressed Size     00000000 (0)\n+05F8D6 Filename Length       0047 (71)\n+05F8D8 Extra Length          0009 (9)\n+05F8DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F8DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05F921 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05F923   Length              0005 (5)\n+05F925   Flags               01 (1) 'Modification'\n+05F926   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+05F92A DATA DESCRIPTOR       08074B50 (134695760)\n+05F92E CRC                   00000000 (0)\n+05F932 Compressed Size       00000000 (0)\n+05F936 Uncompressed Size     00000000 (0)\n+\n+05F93A LOCAL HEADER #184     04034B50 (67324752)\n+05F93E Extract Zip Spec      14 (20) '2.0'\n+05F93F Extract OS            00 (0) 'MS-DOS'\n+05F940 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+05F942 Compression Method    0000 (0) 'Stored'\n+05F944 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+05F948 CRC                   00000000 (0)\n+05F94C Compressed Size       00000000 (0)\n+05F950 Uncompressed Size     00000000 (0)\n+05F954 Filename Length       0040 (64)\n+05F956 Extra Length          0009 (9)\n+05F958 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F958: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+05F998 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+05F99A   Length              0005 (5)\n+05F99C   Flags               01 (1) 'Modification'\n+05F99D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+05F9A1 PAYLOAD\n+\n+060140 DATA DESCRIPTOR       08074B50 (134695760)\n+060144 CRC                   0FDE28B3 (266217651)\n+060148 Compressed Size       0000079F (1951)\n+06014C Uncompressed Size     0000079F (1951)\n+\n+060150 LOCAL HEADER #185     04034B50 (67324752)\n+060154 Extract Zip Spec      14 (20) '2.0'\n+060155 Extract OS            00 (0) 'MS-DOS'\n+060156 General Purpose Flag  0000 (0)\n+060158 Compression Method    0000 (0) 'Stored'\n+06015A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06015E CRC                   00000000 (0)\n+060162 Compressed Size       00000000 (0)\n+060166 Uncompressed Size     00000000 (0)\n+06016A Filename Length       0038 (56)\n+06016C Extra Length          0009 (9)\n+06016E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6016E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0601A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0601A8   Length              0005 (5)\n+0601AA   Flags               01 (1) 'Modification'\n+0601AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0601AF LOCAL HEADER #186     04034B50 (67324752)\n+0601B3 Extract Zip Spec      14 (20) '2.0'\n+0601B4 Extract OS            00 (0) 'MS-DOS'\n+0601B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0601B7 Compression Method    0000 (0) 'Stored'\n+0601B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0601BD CRC                   00000000 (0)\n+0601C1 Compressed Size       00000000 (0)\n+0601C5 Uncompressed Size     00000000 (0)\n+0601C9 Filename Length       0046 (70)\n+0601CB Extra Length          0009 (9)\n+0601CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x601CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+060213 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+060215   Length              0005 (5)\n+060217   Flags               01 (1) 'Modification'\n+060218   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06021C DATA DESCRIPTOR       08074B50 (134695760)\n+060220 CRC                   00000000 (0)\n+060224 Compressed Size       00000000 (0)\n+060228 Uncompressed Size     00000000 (0)\n+\n+06022C LOCAL HEADER #187     04034B50 (67324752)\n+060230 Extract Zip Spec      14 (20) '2.0'\n+060231 Extract OS            00 (0) 'MS-DOS'\n+060232 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+060234 Compression Method    0000 (0) 'Stored'\n+060236 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06023A CRC                   00000000 (0)\n+06023E Compressed Size       00000000 (0)\n+060242 Uncompressed Size     00000000 (0)\n+060246 Filename Length       003F (63)\n+060248 Extra Length          0009 (9)\n+06024A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6024A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+060289 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06028B   Length              0005 (5)\n+06028D   Flags               01 (1) 'Modification'\n+06028E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+060292 PAYLOAD\n+\n+060D90 DATA DESCRIPTOR       08074B50 (134695760)\n+060D94 CRC                   6A4E29DE (1783507422)\n+060D98 Compressed Size       00000AFE (2814)\n+060D9C Uncompressed Size     00000AFE (2814)\n+\n+060DA0 LOCAL HEADER #188     04034B50 (67324752)\n+060DA4 Extract Zip Spec      14 (20) '2.0'\n+060DA5 Extract OS            00 (0) 'MS-DOS'\n+060DA6 General Purpose Flag  0000 (0)\n+060DA8 Compression Method    0000 (0) 'Stored'\n+060DAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+060DAE CRC                   00000000 (0)\n+060DB2 Compressed Size       00000000 (0)\n+060DB6 Uncompressed Size     00000000 (0)\n+060DBA Filename Length       0035 (53)\n+060DBC Extra Length          0009 (9)\n+060DBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60DBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+060DF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+060DF5   Length              0005 (5)\n+060DF7   Flags               01 (1) 'Modification'\n+060DF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+060DFC LOCAL HEADER #189     04034B50 (67324752)\n+060E00 Extract Zip Spec      14 (20) '2.0'\n+060E01 Extract OS            00 (0) 'MS-DOS'\n+060E02 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+060E04 Compression Method    0000 (0) 'Stored'\n+060E06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+060E0A CRC                   00000000 (0)\n+060E0E Compressed Size       00000000 (0)\n+060E12 Uncompressed Size     00000000 (0)\n+060E16 Filename Length       0043 (67)\n+060E18 Extra Length          0009 (9)\n+060E1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60E1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+060E5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+060E5F   Length              0005 (5)\n+060E61   Flags               01 (1) 'Modification'\n+060E62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+060E66 DATA DESCRIPTOR       08074B50 (134695760)\n+060E6A CRC                   00000000 (0)\n+060E6E Compressed Size       00000000 (0)\n+060E72 Uncompressed Size     00000000 (0)\n+\n+060E76 LOCAL HEADER #190     04034B50 (67324752)\n+060E7A Extract Zip Spec      14 (20) '2.0'\n+060E7B Extract OS            00 (0) 'MS-DOS'\n+060E7C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+060E7E Compression Method    0000 (0) 'Stored'\n+060E80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+060E84 CRC                   00000000 (0)\n+060E88 Compressed Size       00000000 (0)\n+060E8C Uncompressed Size     00000000 (0)\n+060E90 Filename Length       003C (60)\n+060E92 Extra Length          0009 (9)\n+060E94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60E94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+060ED0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+060ED2   Length              0005 (5)\n+060ED4   Flags               01 (1) 'Modification'\n+060ED5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+060ED9 PAYLOAD\n+\n+061ABA DATA DESCRIPTOR       08074B50 (134695760)\n+061ABE CRC                   6A8F4F7A (1787776890)\n+061AC2 Compressed Size       00000BE1 (3041)\n+061AC6 Uncompressed Size     00000BE1 (3041)\n+\n+061ACA LOCAL HEADER #191     04034B50 (67324752)\n+061ACE Extract Zip Spec      14 (20) '2.0'\n+061ACF Extract OS            00 (0) 'MS-DOS'\n+061AD0 General Purpose Flag  0000 (0)\n+061AD2 Compression Method    0000 (0) 'Stored'\n+061AD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+061AD8 CRC                   00000000 (0)\n+061ADC Compressed Size       00000000 (0)\n+061AE0 Uncompressed Size     00000000 (0)\n+061AE4 Filename Length       0035 (53)\n+061AE6 Extra Length          0009 (9)\n+061AE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61AE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+061B1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+061B1F   Length              0005 (5)\n+061B21   Flags               01 (1) 'Modification'\n+061B22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+061B26 LOCAL HEADER #192     04034B50 (67324752)\n+061B2A Extract Zip Spec      14 (20) '2.0'\n+061B2B Extract OS            00 (0) 'MS-DOS'\n+061B2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+061B2E Compression Method    0000 (0) 'Stored'\n+061B30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+061B34 CRC                   00000000 (0)\n+061B38 Compressed Size       00000000 (0)\n+061B3C Uncompressed Size     00000000 (0)\n+061B40 Filename Length       0043 (67)\n+061B42 Extra Length          0009 (9)\n+061B44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61B44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+061B87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+061B89   Length              0005 (5)\n+061B8B   Flags               01 (1) 'Modification'\n+061B8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+061B90 DATA DESCRIPTOR       08074B50 (134695760)\n+061B94 CRC                   00000000 (0)\n+061B98 Compressed Size       00000000 (0)\n+061B9C Uncompressed Size     00000000 (0)\n+\n+061BA0 LOCAL HEADER #193     04034B50 (67324752)\n+061BA4 Extract Zip Spec      14 (20) '2.0'\n+061BA5 Extract OS            00 (0) 'MS-DOS'\n+061BA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+061BA8 Compression Method    0000 (0) 'Stored'\n+061BAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+061BAE CRC                   00000000 (0)\n+061BB2 Compressed Size       00000000 (0)\n+061BB6 Uncompressed Size     00000000 (0)\n+061BBA Filename Length       003C (60)\n+061BBC Extra Length          0009 (9)\n+061BBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61BBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+061BFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+061BFC   Length              0005 (5)\n+061BFE   Flags               01 (1) 'Modification'\n+061BFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+061C03 PAYLOAD\n+\n+0625E9 DATA DESCRIPTOR       08074B50 (134695760)\n+0625ED CRC                   1ABCFE9F (448593567)\n+0625F1 Compressed Size       000009E6 (2534)\n+0625F5 Uncompressed Size     000009E6 (2534)\n+\n+0625F9 LOCAL HEADER #194     04034B50 (67324752)\n+0625FD Extract Zip Spec      14 (20) '2.0'\n+0625FE Extract OS            00 (0) 'MS-DOS'\n+0625FF General Purpose Flag  0000 (0)\n+062601 Compression Method    0000 (0) 'Stored'\n+062603 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+062607 CRC                   00000000 (0)\n+06260B Compressed Size       00000000 (0)\n+06260F Uncompressed Size     00000000 (0)\n+062613 Filename Length       0034 (52)\n+062615 Extra Length          0009 (9)\n+062617 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62617: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06264B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06264D   Length              0005 (5)\n+06264F   Flags               01 (1) 'Modification'\n+062650   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+062654 LOCAL HEADER #195     04034B50 (67324752)\n+062658 Extract Zip Spec      14 (20) '2.0'\n+062659 Extract OS            00 (0) 'MS-DOS'\n+06265A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06265C Compression Method    0000 (0) 'Stored'\n+06265E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+062662 CRC                   00000000 (0)\n+062666 Compressed Size       00000000 (0)\n+06266A Uncompressed Size     00000000 (0)\n+06266E Filename Length       0042 (66)\n+062670 Extra Length          0009 (9)\n+062672 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62672: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0626B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0626B6   Length              0005 (5)\n+0626B8   Flags               01 (1) 'Modification'\n+0626B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0626BD DATA DESCRIPTOR       08074B50 (134695760)\n+0626C1 CRC                   00000000 (0)\n+0626C5 Compressed Size       00000000 (0)\n+0626C9 Uncompressed Size     00000000 (0)\n+\n+0626CD LOCAL HEADER #196     04034B50 (67324752)\n+0626D1 Extract Zip Spec      14 (20) '2.0'\n+0626D2 Extract OS            00 (0) 'MS-DOS'\n+0626D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0626D5 Compression Method    0000 (0) 'Stored'\n+0626D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0626DB CRC                   00000000 (0)\n+0626DF Compressed Size       00000000 (0)\n+0626E3 Uncompressed Size     00000000 (0)\n+0626E7 Filename Length       003B (59)\n+0626E9 Extra Length          0009 (9)\n+0626EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x626EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+062726 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+062728   Length              0005 (5)\n+06272A   Flags               01 (1) 'Modification'\n+06272B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06272F PAYLOAD\n+\n+06395D DATA DESCRIPTOR       08074B50 (134695760)\n+063961 CRC                   72A63AD4 (1923496660)\n+063965 Compressed Size       0000122E (4654)\n+063969 Uncompressed Size     0000122E (4654)\n+\n+06396D LOCAL HEADER #197     04034B50 (67324752)\n+063971 Extract Zip Spec      14 (20) '2.0'\n+063972 Extract OS            00 (0) 'MS-DOS'\n+063973 General Purpose Flag  0000 (0)\n+063975 Compression Method    0000 (0) 'Stored'\n+063977 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06397B CRC                   00000000 (0)\n+06397F Compressed Size       00000000 (0)\n+063983 Uncompressed Size     00000000 (0)\n+063987 Filename Length       0039 (57)\n+063989 Extra Length          0009 (9)\n+06398B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6398B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0639C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0639C6   Length              0005 (5)\n+0639C8   Flags               01 (1) 'Modification'\n+0639C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0639CD LOCAL HEADER #198     04034B50 (67324752)\n+0639D1 Extract Zip Spec      14 (20) '2.0'\n+0639D2 Extract OS            00 (0) 'MS-DOS'\n+0639D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0639D5 Compression Method    0000 (0) 'Stored'\n+0639D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0639DB CRC                   00000000 (0)\n+0639DF Compressed Size       00000000 (0)\n+0639E3 Uncompressed Size     00000000 (0)\n+0639E7 Filename Length       0047 (71)\n+0639E9 Extra Length          0009 (9)\n+0639EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x639EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+063A32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+063A34   Length              0005 (5)\n+063A36   Flags               01 (1) 'Modification'\n+063A37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+063A3B DATA DESCRIPTOR       08074B50 (134695760)\n+063A3F CRC                   00000000 (0)\n+063A43 Compressed Size       00000000 (0)\n+063A47 Uncompressed Size     00000000 (0)\n+\n+063A4B LOCAL HEADER #199     04034B50 (67324752)\n+063A4F Extract Zip Spec      14 (20) '2.0'\n+063A50 Extract OS            00 (0) 'MS-DOS'\n+063A51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+063A53 Compression Method    0000 (0) 'Stored'\n+063A55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+063A59 CRC                   00000000 (0)\n+063A5D Compressed Size       00000000 (0)\n+063A61 Uncompressed Size     00000000 (0)\n+063A65 Filename Length       0040 (64)\n+063A67 Extra Length          0009 (9)\n+063A69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63A69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+063AA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+063AAB   Length              0005 (5)\n+063AAD   Flags               01 (1) 'Modification'\n+063AAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+063AB2 PAYLOAD\n+\n+064420 DATA DESCRIPTOR       08074B50 (134695760)\n+064424 CRC                   2D62C29D (761447069)\n+064428 Compressed Size       0000096E (2414)\n+06442C Uncompressed Size     0000096E (2414)\n+\n+064430 LOCAL HEADER #200     04034B50 (67324752)\n+064434 Extract Zip Spec      14 (20) '2.0'\n+064435 Extract OS            00 (0) 'MS-DOS'\n+064436 General Purpose Flag  0000 (0)\n+064438 Compression Method    0000 (0) 'Stored'\n+06443A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06443E CRC                   00000000 (0)\n+064442 Compressed Size       00000000 (0)\n+064446 Uncompressed Size     00000000 (0)\n+06444A Filename Length       0033 (51)\n+06444C Extra Length          0009 (9)\n+06444E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6444E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+064481 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+064483   Length              0005 (5)\n+064485   Flags               01 (1) 'Modification'\n+064486   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06448A LOCAL HEADER #201     04034B50 (67324752)\n+06448E Extract Zip Spec      14 (20) '2.0'\n+06448F Extract OS            00 (0) 'MS-DOS'\n+064490 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+064492 Compression Method    0000 (0) 'Stored'\n+064494 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+064498 CRC                   00000000 (0)\n+06449C Compressed Size       00000000 (0)\n+0644A0 Uncompressed Size     00000000 (0)\n+0644A4 Filename Length       0041 (65)\n+0644A6 Extra Length          0009 (9)\n+0644A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x644A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0644E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0644EB   Length              0005 (5)\n+0644ED   Flags               01 (1) 'Modification'\n+0644EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0644F2 DATA DESCRIPTOR       08074B50 (134695760)\n+0644F6 CRC                   00000000 (0)\n+0644FA Compressed Size       00000000 (0)\n+0644FE Uncompressed Size     00000000 (0)\n+\n+064502 LOCAL HEADER #202     04034B50 (67324752)\n+064506 Extract Zip Spec      14 (20) '2.0'\n+064507 Extract OS            00 (0) 'MS-DOS'\n+064508 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06450A Compression Method    0000 (0) 'Stored'\n+06450C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+064510 CRC                   00000000 (0)\n+064514 Compressed Size       00000000 (0)\n+064518 Uncompressed Size     00000000 (0)\n+06451C Filename Length       003A (58)\n+06451E Extra Length          0009 (9)\n+064520 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64520: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06455A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06455C   Length              0005 (5)\n+06455E   Flags               01 (1) 'Modification'\n+06455F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+064563 PAYLOAD\n+\n+064E79 DATA DESCRIPTOR       08074B50 (134695760)\n+064E7D CRC                   412C4DB4 (1093422516)\n+064E81 Compressed Size       00000916 (2326)\n+064E85 Uncompressed Size     00000916 (2326)\n+\n+064E89 LOCAL HEADER #203     04034B50 (67324752)\n+064E8D Extract Zip Spec      14 (20) '2.0'\n+064E8E Extract OS            00 (0) 'MS-DOS'\n+064E8F General Purpose Flag  0000 (0)\n+064E91 Compression Method    0000 (0) 'Stored'\n+064E93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+064E97 CRC                   00000000 (0)\n+064E9B Compressed Size       00000000 (0)\n+064E9F Uncompressed Size     00000000 (0)\n+064EA3 Filename Length       0035 (53)\n+064EA5 Extra Length          0009 (9)\n+064EA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64EA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+064EDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+064EDE   Length              0005 (5)\n+064EE0   Flags               01 (1) 'Modification'\n+064EE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+064EE5 LOCAL HEADER #204     04034B50 (67324752)\n+064EE9 Extract Zip Spec      14 (20) '2.0'\n+064EEA Extract OS            00 (0) 'MS-DOS'\n+064EEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+064EED Compression Method    0000 (0) 'Stored'\n+064EEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+064EF3 CRC                   00000000 (0)\n+064EF7 Compressed Size       00000000 (0)\n+064EFB Uncompressed Size     00000000 (0)\n+064EFF Filename Length       0043 (67)\n+064F01 Extra Length          0009 (9)\n+064F03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64F03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+064F46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+064F48   Length              0005 (5)\n+064F4A   Flags               01 (1) 'Modification'\n+064F4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+064F4F DATA DESCRIPTOR       08074B50 (134695760)\n+064F53 CRC                   00000000 (0)\n+064F57 Compressed Size       00000000 (0)\n+064F5B Uncompressed Size     00000000 (0)\n+\n+064F5F LOCAL HEADER #205     04034B50 (67324752)\n+064F63 Extract Zip Spec      14 (20) '2.0'\n+064F64 Extract OS            00 (0) 'MS-DOS'\n+064F65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+064F67 Compression Method    0000 (0) 'Stored'\n+064F69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+064F6D CRC                   00000000 (0)\n+064F71 Compressed Size       00000000 (0)\n+064F75 Uncompressed Size     00000000 (0)\n+064F79 Filename Length       003C (60)\n+064F7B Extra Length          0009 (9)\n+064F7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64F7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+064FB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+064FBB   Length              0005 (5)\n+064FBD   Flags               01 (1) 'Modification'\n+064FBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+064FC2 PAYLOAD\n+\n+065DC3 DATA DESCRIPTOR       08074B50 (134695760)\n+065DC7 CRC                   DB79C8F6 (3682191606)\n+065DCB Compressed Size       00000E01 (3585)\n+065DCF Uncompressed Size     00000E01 (3585)\n+\n+065DD3 LOCAL HEADER #206     04034B50 (67324752)\n+065DD7 Extract Zip Spec      14 (20) '2.0'\n+065DD8 Extract OS            00 (0) 'MS-DOS'\n+065DD9 General Purpose Flag  0000 (0)\n+065DDB Compression Method    0000 (0) 'Stored'\n+065DDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+065DE1 CRC                   00000000 (0)\n+065DE5 Compressed Size       00000000 (0)\n+065DE9 Uncompressed Size     00000000 (0)\n+065DED Filename Length       0037 (55)\n+065DEF Extra Length          0009 (9)\n+065DF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65DF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+065E28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+065E2A   Length              0005 (5)\n+065E2C   Flags               01 (1) 'Modification'\n+065E2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+065E31 LOCAL HEADER #207     04034B50 (67324752)\n+065E35 Extract Zip Spec      14 (20) '2.0'\n+065E36 Extract OS            00 (0) 'MS-DOS'\n+065E37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+065E39 Compression Method    0000 (0) 'Stored'\n+065E3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+065E3F CRC                   00000000 (0)\n+065E43 Compressed Size       00000000 (0)\n+065E47 Uncompressed Size     00000000 (0)\n+065E4B Filename Length       0045 (69)\n+065E4D Extra Length          0009 (9)\n+065E4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65E4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+065E94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+065E96   Length              0005 (5)\n+065E98   Flags               01 (1) 'Modification'\n+065E99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+065E9D DATA DESCRIPTOR       08074B50 (134695760)\n+065EA1 CRC                   00000000 (0)\n+065EA5 Compressed Size       00000000 (0)\n+065EA9 Uncompressed Size     00000000 (0)\n+\n+065EAD LOCAL HEADER #208     04034B50 (67324752)\n+065EB1 Extract Zip Spec      14 (20) '2.0'\n+065EB2 Extract OS            00 (0) 'MS-DOS'\n+065EB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+065EB5 Compression Method    0000 (0) 'Stored'\n+065EB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+065EBB CRC                   00000000 (0)\n+065EBF Compressed Size       00000000 (0)\n+065EC3 Uncompressed Size     00000000 (0)\n+065EC7 Filename Length       003E (62)\n+065EC9 Extra Length          0009 (9)\n+065ECB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65ECB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+065F09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+065F0B   Length              0005 (5)\n+065F0D   Flags               01 (1) 'Modification'\n+065F0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+065F12 PAYLOAD\n+\n+06672B DATA DESCRIPTOR       08074B50 (134695760)\n+06672F CRC                   72B9B37F (1924772735)\n+066733 Compressed Size       00000819 (2073)\n+066737 Uncompressed Size     00000819 (2073)\n+\n+06673B LOCAL HEADER #209     04034B50 (67324752)\n+06673F Extract Zip Spec      14 (20) '2.0'\n+066740 Extract OS            00 (0) 'MS-DOS'\n+066741 General Purpose Flag  0000 (0)\n+066743 Compression Method    0000 (0) 'Stored'\n+066745 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+066749 CRC                   00000000 (0)\n+06674D Compressed Size       00000000 (0)\n+066751 Uncompressed Size     00000000 (0)\n+066755 Filename Length       0034 (52)\n+066757 Extra Length          0009 (9)\n+066759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06678D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06678F   Length              0005 (5)\n+066791   Flags               01 (1) 'Modification'\n+066792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+066796 LOCAL HEADER #210     04034B50 (67324752)\n+06679A Extract Zip Spec      14 (20) '2.0'\n+06679B Extract OS            00 (0) 'MS-DOS'\n+06679C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06679E Compression Method    0000 (0) 'Stored'\n+0667A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0667A4 CRC                   00000000 (0)\n+0667A8 Compressed Size       00000000 (0)\n+0667AC Uncompressed Size     00000000 (0)\n+0667B0 Filename Length       0042 (66)\n+0667B2 Extra Length          0009 (9)\n+0667B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x667B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0667F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0667F8   Length              0005 (5)\n+0667FA   Flags               01 (1) 'Modification'\n+0667FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0667FF DATA DESCRIPTOR       08074B50 (134695760)\n+066803 CRC                   00000000 (0)\n+066807 Compressed Size       00000000 (0)\n+06680B Uncompressed Size     00000000 (0)\n+\n+06680F LOCAL HEADER #211     04034B50 (67324752)\n+066813 Extract Zip Spec      14 (20) '2.0'\n+066814 Extract OS            00 (0) 'MS-DOS'\n+066815 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+066817 Compression Method    0000 (0) 'Stored'\n+066819 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06681D CRC                   00000000 (0)\n+066821 Compressed Size       00000000 (0)\n+066825 Uncompressed Size     00000000 (0)\n+066829 Filename Length       003B (59)\n+06682B Extra Length          0009 (9)\n+06682D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6682D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+066868 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06686A   Length              0005 (5)\n+06686C   Flags               01 (1) 'Modification'\n+06686D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+066871 PAYLOAD\n+\n+0672E4 DATA DESCRIPTOR       08074B50 (134695760)\n+0672E8 CRC                   A5CD24A2 (2781684898)\n+0672EC Compressed Size       00000A73 (2675)\n+0672F0 Uncompressed Size     00000A73 (2675)\n+\n+0672F4 LOCAL HEADER #212     04034B50 (67324752)\n+0672F8 Extract Zip Spec      14 (20) '2.0'\n+0672F9 Extract OS            00 (0) 'MS-DOS'\n+0672FA General Purpose Flag  0000 (0)\n+0672FC Compression Method    0000 (0) 'Stored'\n+0672FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+067302 CRC                   00000000 (0)\n+067306 Compressed Size       00000000 (0)\n+06730A Uncompressed Size     00000000 (0)\n+06730E Filename Length       0034 (52)\n+067310 Extra Length          0009 (9)\n+067312 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67312: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+067346 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+067348   Length              0005 (5)\n+06734A   Flags               01 (1) 'Modification'\n+06734B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06734F LOCAL HEADER #213     04034B50 (67324752)\n+067353 Extract Zip Spec      14 (20) '2.0'\n+067354 Extract OS            00 (0) 'MS-DOS'\n+067355 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+067357 Compression Method    0000 (0) 'Stored'\n+067359 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06735D CRC                   00000000 (0)\n+067361 Compressed Size       00000000 (0)\n+067365 Uncompressed Size     00000000 (0)\n+067369 Filename Length       0042 (66)\n+06736B Extra Length          0009 (9)\n+06736D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6736D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0673AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0673B1   Length              0005 (5)\n+0673B3   Flags               01 (1) 'Modification'\n+0673B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0673B8 DATA DESCRIPTOR       08074B50 (134695760)\n+0673BC CRC                   00000000 (0)\n+0673C0 Compressed Size       00000000 (0)\n+0673C4 Uncompressed Size     00000000 (0)\n+\n+0673C8 LOCAL HEADER #214     04034B50 (67324752)\n+0673CC Extract Zip Spec      14 (20) '2.0'\n+0673CD Extract OS            00 (0) 'MS-DOS'\n+0673CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0673D0 Compression Method    0000 (0) 'Stored'\n+0673D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0673D6 CRC                   00000000 (0)\n+0673DA Compressed Size       00000000 (0)\n+0673DE Uncompressed Size     00000000 (0)\n+0673E2 Filename Length       003B (59)\n+0673E4 Extra Length          0009 (9)\n+0673E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x673E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+067421 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+067423   Length              0005 (5)\n+067425   Flags               01 (1) 'Modification'\n+067426   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06742A PAYLOAD\n+\n+067D79 DATA DESCRIPTOR       08074B50 (134695760)\n+067D7D CRC                   5512F588 (1427305864)\n+067D81 Compressed Size       0000094F (2383)\n+067D85 Uncompressed Size     0000094F (2383)\n+\n+067D89 LOCAL HEADER #215     04034B50 (67324752)\n+067D8D Extract Zip Spec      14 (20) '2.0'\n+067D8E Extract OS            00 (0) 'MS-DOS'\n+067D8F General Purpose Flag  0000 (0)\n+067D91 Compression Method    0000 (0) 'Stored'\n+067D93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+067D97 CRC                   00000000 (0)\n+067D9B Compressed Size       00000000 (0)\n+067D9F Uncompressed Size     00000000 (0)\n+067DA3 Filename Length       0035 (53)\n+067DA5 Extra Length          0009 (9)\n+067DA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67DA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+067DDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+067DDE   Length              0005 (5)\n+067DE0   Flags               01 (1) 'Modification'\n+067DE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+067DE5 LOCAL HEADER #216     04034B50 (67324752)\n+067DE9 Extract Zip Spec      14 (20) '2.0'\n+067DEA Extract OS            00 (0) 'MS-DOS'\n+067DEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+067DED Compression Method    0000 (0) 'Stored'\n+067DEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+067DF3 CRC                   00000000 (0)\n+067DF7 Compressed Size       00000000 (0)\n+067DFB Uncompressed Size     00000000 (0)\n+067DFF Filename Length       0043 (67)\n+067E01 Extra Length          0009 (9)\n+067E03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67E03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+067E46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+067E48   Length              0005 (5)\n+067E4A   Flags               01 (1) 'Modification'\n+067E4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+067E4F DATA DESCRIPTOR       08074B50 (134695760)\n+067E53 CRC                   00000000 (0)\n+067E57 Compressed Size       00000000 (0)\n+067E5B Uncompressed Size     00000000 (0)\n+\n+067E5F LOCAL HEADER #217     04034B50 (67324752)\n+067E63 Extract Zip Spec      14 (20) '2.0'\n+067E64 Extract OS            00 (0) 'MS-DOS'\n+067E65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+067E67 Compression Method    0000 (0) 'Stored'\n+067E69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+067E6D CRC                   00000000 (0)\n+067E71 Compressed Size       00000000 (0)\n+067E75 Uncompressed Size     00000000 (0)\n+067E79 Filename Length       003C (60)\n+067E7B Extra Length          0009 (9)\n+067E7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67E7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+067EB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+067EBB   Length              0005 (5)\n+067EBD   Flags               01 (1) 'Modification'\n+067EBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+067EC2 PAYLOAD\n+\n+06879E DATA DESCRIPTOR       08074B50 (134695760)\n+0687A2 CRC                   53B720C2 (1404510402)\n+0687A6 Compressed Size       000008DC (2268)\n+0687AA Uncompressed Size     000008DC (2268)\n+\n+0687AE LOCAL HEADER #218     04034B50 (67324752)\n+0687B2 Extract Zip Spec      14 (20) '2.0'\n+0687B3 Extract OS            00 (0) 'MS-DOS'\n+0687B4 General Purpose Flag  0000 (0)\n+0687B6 Compression Method    0000 (0) 'Stored'\n+0687B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0687BC CRC                   00000000 (0)\n+0687C0 Compressed Size       00000000 (0)\n+0687C4 Uncompressed Size     00000000 (0)\n+0687C8 Filename Length       0036 (54)\n+0687CA Extra Length          0009 (9)\n+0687CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x687CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+068802 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+068804   Length              0005 (5)\n+068806   Flags               01 (1) 'Modification'\n+068807   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06880B LOCAL HEADER #219     04034B50 (67324752)\n+06880F Extract Zip Spec      14 (20) '2.0'\n+068810 Extract OS            00 (0) 'MS-DOS'\n+068811 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+068813 Compression Method    0000 (0) 'Stored'\n+068815 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+068819 CRC                   00000000 (0)\n+06881D Compressed Size       00000000 (0)\n+068821 Uncompressed Size     00000000 (0)\n+068825 Filename Length       0044 (68)\n+068827 Extra Length          0009 (9)\n+068829 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68829: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06886D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06886F   Length              0005 (5)\n+068871   Flags               01 (1) 'Modification'\n+068872   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+068876 DATA DESCRIPTOR       08074B50 (134695760)\n+06887A CRC                   00000000 (0)\n+06887E Compressed Size       00000000 (0)\n+068882 Uncompressed Size     00000000 (0)\n+\n+068886 LOCAL HEADER #220     04034B50 (67324752)\n+06888A Extract Zip Spec      14 (20) '2.0'\n+06888B Extract OS            00 (0) 'MS-DOS'\n+06888C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06888E Compression Method    0000 (0) 'Stored'\n+068890 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+068894 CRC                   00000000 (0)\n+068898 Compressed Size       00000000 (0)\n+06889C Uncompressed Size     00000000 (0)\n+0688A0 Filename Length       003D (61)\n+0688A2 Extra Length          0009 (9)\n+0688A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x688A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0688E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0688E3   Length              0005 (5)\n+0688E5   Flags               01 (1) 'Modification'\n+0688E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0688EA PAYLOAD\n+\n+06920E DATA DESCRIPTOR       08074B50 (134695760)\n+069212 CRC                   1D29AE65 (489270885)\n+069216 Compressed Size       00000924 (2340)\n+06921A Uncompressed Size     00000924 (2340)\n+\n+06921E LOCAL HEADER #221     04034B50 (67324752)\n+069222 Extract Zip Spec      14 (20) '2.0'\n+069223 Extract OS            00 (0) 'MS-DOS'\n+069224 General Purpose Flag  0000 (0)\n+069226 Compression Method    0000 (0) 'Stored'\n+069228 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06922C CRC                   00000000 (0)\n+069230 Compressed Size       00000000 (0)\n+069234 Uncompressed Size     00000000 (0)\n+069238 Filename Length       0033 (51)\n+06923A Extra Length          0009 (9)\n+06923C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6923C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06926F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+069271   Length              0005 (5)\n+069273   Flags               01 (1) 'Modification'\n+069274   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+069278 LOCAL HEADER #222     04034B50 (67324752)\n+06927C Extract Zip Spec      14 (20) '2.0'\n+06927D Extract OS            00 (0) 'MS-DOS'\n+06927E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+069280 Compression Method    0000 (0) 'Stored'\n+069282 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+069286 CRC                   00000000 (0)\n+06928A Compressed Size       00000000 (0)\n+06928E Uncompressed Size     00000000 (0)\n+069292 Filename Length       0041 (65)\n+069294 Extra Length          0009 (9)\n+069296 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69296: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0692D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0692D9   Length              0005 (5)\n+0692DB   Flags               01 (1) 'Modification'\n+0692DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0692E0 DATA DESCRIPTOR       08074B50 (134695760)\n+0692E4 CRC                   00000000 (0)\n+0692E8 Compressed Size       00000000 (0)\n+0692EC Uncompressed Size     00000000 (0)\n+\n+0692F0 LOCAL HEADER #223     04034B50 (67324752)\n+0692F4 Extract Zip Spec      14 (20) '2.0'\n+0692F5 Extract OS            00 (0) 'MS-DOS'\n+0692F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0692F8 Compression Method    0000 (0) 'Stored'\n+0692FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0692FE CRC                   00000000 (0)\n+069302 Compressed Size       00000000 (0)\n+069306 Uncompressed Size     00000000 (0)\n+06930A Filename Length       003A (58)\n+06930C Extra Length          0009 (9)\n+06930E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6930E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+069348 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06934A   Length              0005 (5)\n+06934C   Flags               01 (1) 'Modification'\n+06934D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+069351 PAYLOAD\n+\n+069BB3 DATA DESCRIPTOR       08074B50 (134695760)\n+069BB7 CRC                   4435D23A (1144377914)\n+069BBB Compressed Size       00000862 (2146)\n+069BBF Uncompressed Size     00000862 (2146)\n+\n+069BC3 LOCAL HEADER #224     04034B50 (67324752)\n+069BC7 Extract Zip Spec      14 (20) '2.0'\n+069BC8 Extract OS            00 (0) 'MS-DOS'\n+069BC9 General Purpose Flag  0000 (0)\n+069BCB Compression Method    0000 (0) 'Stored'\n+069BCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+069BD1 CRC                   00000000 (0)\n+069BD5 Compressed Size       00000000 (0)\n+069BD9 Uncompressed Size     00000000 (0)\n+069BDD Filename Length       0039 (57)\n+069BDF Extra Length          0009 (9)\n+069BE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69BE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+069C1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+069C1C   Length              0005 (5)\n+069C1E   Flags               01 (1) 'Modification'\n+069C1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+069C23 LOCAL HEADER #225     04034B50 (67324752)\n+069C27 Extract Zip Spec      14 (20) '2.0'\n+069C28 Extract OS            00 (0) 'MS-DOS'\n+069C29 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+069C2B Compression Method    0000 (0) 'Stored'\n+069C2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+069C31 CRC                   00000000 (0)\n+069C35 Compressed Size       00000000 (0)\n+069C39 Uncompressed Size     00000000 (0)\n+069C3D Filename Length       0047 (71)\n+069C3F Extra Length          0009 (9)\n+069C41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69C41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+069C88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+069C8A   Length              0005 (5)\n+069C8C   Flags               01 (1) 'Modification'\n+069C8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+069C91 DATA DESCRIPTOR       08074B50 (134695760)\n+069C95 CRC                   00000000 (0)\n+069C99 Compressed Size       00000000 (0)\n+069C9D Uncompressed Size     00000000 (0)\n+\n+069CA1 LOCAL HEADER #226     04034B50 (67324752)\n+069CA5 Extract Zip Spec      14 (20) '2.0'\n+069CA6 Extract OS            00 (0) 'MS-DOS'\n+069CA7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+069CA9 Compression Method    0000 (0) 'Stored'\n+069CAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+069CAF CRC                   00000000 (0)\n+069CB3 Compressed Size       00000000 (0)\n+069CB7 Uncompressed Size     00000000 (0)\n+069CBB Filename Length       0040 (64)\n+069CBD Extra Length          0009 (9)\n+069CBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69CBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+069CFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+069D01   Length              0005 (5)\n+069D03   Flags               01 (1) 'Modification'\n+069D04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+069D08 PAYLOAD\n+\n+06A6DE DATA DESCRIPTOR       08074B50 (134695760)\n+06A6E2 CRC                   E9E92C7C (3924372604)\n+06A6E6 Compressed Size       000009D6 (2518)\n+06A6EA Uncompressed Size     000009D6 (2518)\n+\n+06A6EE LOCAL HEADER #227     04034B50 (67324752)\n+06A6F2 Extract Zip Spec      14 (20) '2.0'\n+06A6F3 Extract OS            00 (0) 'MS-DOS'\n+06A6F4 General Purpose Flag  0000 (0)\n+06A6F6 Compression Method    0000 (0) 'Stored'\n+06A6F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06A6FC CRC                   00000000 (0)\n+06A700 Compressed Size       00000000 (0)\n+06A704 Uncompressed Size     00000000 (0)\n+06A708 Filename Length       002E (46)\n+06A70A Extra Length          0009 (9)\n+06A70C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A70C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06A73A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06A73C   Length              0005 (5)\n+06A73E   Flags               01 (1) 'Modification'\n+06A73F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06A743 LOCAL HEADER #228     04034B50 (67324752)\n+06A747 Extract Zip Spec      14 (20) '2.0'\n+06A748 Extract OS            00 (0) 'MS-DOS'\n+06A749 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06A74B Compression Method    0000 (0) 'Stored'\n+06A74D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06A751 CRC                   00000000 (0)\n+06A755 Compressed Size       00000000 (0)\n+06A759 Uncompressed Size     00000000 (0)\n+06A75D Filename Length       003C (60)\n+06A75F Extra Length          0009 (9)\n+06A761 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A761: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06A79D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06A79F   Length              0005 (5)\n+06A7A1   Flags               01 (1) 'Modification'\n+06A7A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06A7A6 DATA DESCRIPTOR       08074B50 (134695760)\n+06A7AA CRC                   00000000 (0)\n+06A7AE Compressed Size       00000000 (0)\n+06A7B2 Uncompressed Size     00000000 (0)\n+\n+06A7B6 LOCAL HEADER #229     04034B50 (67324752)\n+06A7BA Extract Zip Spec      14 (20) '2.0'\n+06A7BB Extract OS            00 (0) 'MS-DOS'\n+06A7BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06A7BE Compression Method    0000 (0) 'Stored'\n+06A7C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06A7C4 CRC                   00000000 (0)\n+06A7C8 Compressed Size       00000000 (0)\n+06A7CC Uncompressed Size     00000000 (0)\n+06A7D0 Filename Length       0035 (53)\n+06A7D2 Extra Length          0009 (9)\n+06A7D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A7D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06A809 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06A80B   Length              0005 (5)\n+06A80D   Flags               01 (1) 'Modification'\n+06A80E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06A812 PAYLOAD\n+\n+06B183 DATA DESCRIPTOR       08074B50 (134695760)\n+06B187 CRC                   A1CBD481 (2714489985)\n+06B18B Compressed Size       00000971 (2417)\n+06B18F Uncompressed Size     00000971 (2417)\n+\n+06B193 LOCAL HEADER #230     04034B50 (67324752)\n+06B197 Extract Zip Spec      14 (20) '2.0'\n+06B198 Extract OS            00 (0) 'MS-DOS'\n+06B199 General Purpose Flag  0000 (0)\n+06B19B Compression Method    0000 (0) 'Stored'\n+06B19D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06B1A1 CRC                   00000000 (0)\n+06B1A5 Compressed Size       00000000 (0)\n+06B1A9 Uncompressed Size     00000000 (0)\n+06B1AD Filename Length       0030 (48)\n+06B1AF Extra Length          0009 (9)\n+06B1B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B1B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06B1E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06B1E3   Length              0005 (5)\n+06B1E5   Flags               01 (1) 'Modification'\n+06B1E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06B1EA LOCAL HEADER #231     04034B50 (67324752)\n+06B1EE Extract Zip Spec      14 (20) '2.0'\n+06B1EF Extract OS            00 (0) 'MS-DOS'\n+06B1F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06B1F2 Compression Method    0000 (0) 'Stored'\n+06B1F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06B1F8 CRC                   00000000 (0)\n+06B1FC Compressed Size       00000000 (0)\n+06B200 Uncompressed Size     00000000 (0)\n+06B204 Filename Length       003E (62)\n+06B206 Extra Length          0009 (9)\n+06B208 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B208: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06B246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06B248   Length              0005 (5)\n+06B24A   Flags               01 (1) 'Modification'\n+06B24B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06B24F DATA DESCRIPTOR       08074B50 (134695760)\n+06B253 CRC                   00000000 (0)\n+06B257 Compressed Size       00000000 (0)\n+06B25B Uncompressed Size     00000000 (0)\n+\n+06B25F LOCAL HEADER #232     04034B50 (67324752)\n+06B263 Extract Zip Spec      14 (20) '2.0'\n+06B264 Extract OS            00 (0) 'MS-DOS'\n+06B265 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06B267 Compression Method    0000 (0) 'Stored'\n+06B269 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06B26D CRC                   00000000 (0)\n+06B271 Compressed Size       00000000 (0)\n+06B275 Uncompressed Size     00000000 (0)\n+06B279 Filename Length       0037 (55)\n+06B27B Extra Length          0009 (9)\n+06B27D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B27D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06B2B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06B2B6   Length              0005 (5)\n+06B2B8   Flags               01 (1) 'Modification'\n+06B2B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06B2BD PAYLOAD\n+\n+06C209 DATA DESCRIPTOR       08074B50 (134695760)\n+06C20D CRC                   C3B87E97 (3283648151)\n+06C211 Compressed Size       00000F4C (3916)\n+06C215 Uncompressed Size     00000F4C (3916)\n+\n+06C219 LOCAL HEADER #233     04034B50 (67324752)\n+06C21D Extract Zip Spec      14 (20) '2.0'\n+06C21E Extract OS            00 (0) 'MS-DOS'\n+06C21F General Purpose Flag  0000 (0)\n+06C221 Compression Method    0000 (0) 'Stored'\n+06C223 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06C227 CRC                   00000000 (0)\n+06C22B Compressed Size       00000000 (0)\n+06C22F Uncompressed Size     00000000 (0)\n+06C233 Filename Length       002F (47)\n+06C235 Extra Length          0009 (9)\n+06C237 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C237: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06C266 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06C268   Length              0005 (5)\n+06C26A   Flags               01 (1) 'Modification'\n+06C26B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06C26F LOCAL HEADER #234     04034B50 (67324752)\n+06C273 Extract Zip Spec      14 (20) '2.0'\n+06C274 Extract OS            00 (0) 'MS-DOS'\n+06C275 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06C277 Compression Method    0000 (0) 'Stored'\n+06C279 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06C27D CRC                   00000000 (0)\n+06C281 Compressed Size       00000000 (0)\n+06C285 Uncompressed Size     00000000 (0)\n+06C289 Filename Length       003D (61)\n+06C28B Extra Length          0009 (9)\n+06C28D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C28D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06C2CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06C2CC   Length              0005 (5)\n+06C2CE   Flags               01 (1) 'Modification'\n+06C2CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06C2D3 DATA DESCRIPTOR       08074B50 (134695760)\n+06C2D7 CRC                   00000000 (0)\n+06C2DB Compressed Size       00000000 (0)\n+06C2DF Uncompressed Size     00000000 (0)\n+\n+06C2E3 LOCAL HEADER #235     04034B50 (67324752)\n+06C2E7 Extract Zip Spec      14 (20) '2.0'\n+06C2E8 Extract OS            00 (0) 'MS-DOS'\n+06C2E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06C2EB Compression Method    0000 (0) 'Stored'\n+06C2ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06C2F1 CRC                   00000000 (0)\n+06C2F5 Compressed Size       00000000 (0)\n+06C2F9 Uncompressed Size     00000000 (0)\n+06C2FD Filename Length       0036 (54)\n+06C2FF Extra Length          0009 (9)\n+06C301 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C301: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06C337 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06C339   Length              0005 (5)\n+06C33B   Flags               01 (1) 'Modification'\n+06C33C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06C340 PAYLOAD\n+\n+06CDB9 DATA DESCRIPTOR       08074B50 (134695760)\n+06CDBD CRC                   C105B8EB (3238377707)\n+06CDC1 Compressed Size       00000A79 (2681)\n+06CDC5 Uncompressed Size     00000A79 (2681)\n+\n+06CDC9 LOCAL HEADER #236     04034B50 (67324752)\n+06CDCD Extract Zip Spec      14 (20) '2.0'\n+06CDCE Extract OS            00 (0) 'MS-DOS'\n+06CDCF General Purpose Flag  0000 (0)\n+06CDD1 Compression Method    0000 (0) 'Stored'\n+06CDD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06CDD7 CRC                   00000000 (0)\n+06CDDB Compressed Size       00000000 (0)\n+06CDDF Uncompressed Size     00000000 (0)\n+06CDE3 Filename Length       0032 (50)\n+06CDE5 Extra Length          0009 (9)\n+06CDE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CDE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06CE19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06CE1B   Length              0005 (5)\n+06CE1D   Flags               01 (1) 'Modification'\n+06CE1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06CE22 LOCAL HEADER #237     04034B50 (67324752)\n+06CE26 Extract Zip Spec      14 (20) '2.0'\n+06CE27 Extract OS            00 (0) 'MS-DOS'\n+06CE28 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06CE2A Compression Method    0000 (0) 'Stored'\n+06CE2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06CE30 CRC                   00000000 (0)\n+06CE34 Compressed Size       00000000 (0)\n+06CE38 Uncompressed Size     00000000 (0)\n+06CE3C Filename Length       0040 (64)\n+06CE3E Extra Length          0009 (9)\n+06CE40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CE40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06CE80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06CE82   Length              0005 (5)\n+06CE84   Flags               01 (1) 'Modification'\n+06CE85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06CE89 DATA DESCRIPTOR       08074B50 (134695760)\n+06CE8D CRC                   00000000 (0)\n+06CE91 Compressed Size       00000000 (0)\n+06CE95 Uncompressed Size     00000000 (0)\n+\n+06CE99 LOCAL HEADER #238     04034B50 (67324752)\n+06CE9D Extract Zip Spec      14 (20) '2.0'\n+06CE9E Extract OS            00 (0) 'MS-DOS'\n+06CE9F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06CEA1 Compression Method    0000 (0) 'Stored'\n+06CEA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06CEA7 CRC                   00000000 (0)\n+06CEAB Compressed Size       00000000 (0)\n+06CEAF Uncompressed Size     00000000 (0)\n+06CEB3 Filename Length       0039 (57)\n+06CEB5 Extra Length          0009 (9)\n+06CEB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CEB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06CEF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06CEF2   Length              0005 (5)\n+06CEF4   Flags               01 (1) 'Modification'\n+06CEF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06CEF9 PAYLOAD\n+\n+06D987 DATA DESCRIPTOR       08074B50 (134695760)\n+06D98B CRC                   19FB740D (435909645)\n+06D98F Compressed Size       00000A8E (2702)\n+06D993 Uncompressed Size     00000A8E (2702)\n+\n+06D997 LOCAL HEADER #239     04034B50 (67324752)\n+06D99B Extract Zip Spec      14 (20) '2.0'\n+06D99C Extract OS            00 (0) 'MS-DOS'\n+06D99D General Purpose Flag  0000 (0)\n+06D99F Compression Method    0000 (0) 'Stored'\n+06D9A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06D9A5 CRC                   00000000 (0)\n+06D9A9 Compressed Size       00000000 (0)\n+06D9AD Uncompressed Size     00000000 (0)\n+06D9B1 Filename Length       002F (47)\n+06D9B3 Extra Length          0009 (9)\n+06D9B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D9B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06D9E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06D9E6   Length              0005 (5)\n+06D9E8   Flags               01 (1) 'Modification'\n+06D9E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06D9ED LOCAL HEADER #240     04034B50 (67324752)\n+06D9F1 Extract Zip Spec      14 (20) '2.0'\n+06D9F2 Extract OS            00 (0) 'MS-DOS'\n+06D9F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06D9F5 Compression Method    0000 (0) 'Stored'\n+06D9F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06D9FB CRC                   00000000 (0)\n+06D9FF Compressed Size       00000000 (0)\n+06DA03 Uncompressed Size     00000000 (0)\n+06DA07 Filename Length       003D (61)\n+06DA09 Extra Length          0009 (9)\n+06DA0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DA0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06DA48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06DA4A   Length              0005 (5)\n+06DA4C   Flags               01 (1) 'Modification'\n+06DA4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06DA51 DATA DESCRIPTOR       08074B50 (134695760)\n+06DA55 CRC                   00000000 (0)\n+06DA59 Compressed Size       00000000 (0)\n+06DA5D Uncompressed Size     00000000 (0)\n+\n+06DA61 LOCAL HEADER #241     04034B50 (67324752)\n+06DA65 Extract Zip Spec      14 (20) '2.0'\n+06DA66 Extract OS            00 (0) 'MS-DOS'\n+06DA67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06DA69 Compression Method    0000 (0) 'Stored'\n+06DA6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06DA6F CRC                   00000000 (0)\n+06DA73 Compressed Size       00000000 (0)\n+06DA77 Uncompressed Size     00000000 (0)\n+06DA7B Filename Length       0036 (54)\n+06DA7D Extra Length          0009 (9)\n+06DA7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DA7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06DAB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06DAB7   Length              0005 (5)\n+06DAB9   Flags               01 (1) 'Modification'\n+06DABA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06DABE PAYLOAD\n+\n+06E446 DATA DESCRIPTOR       08074B50 (134695760)\n+06E44A CRC                   03176EE3 (51867363)\n+06E44E Compressed Size       00000988 (2440)\n+06E452 Uncompressed Size     00000988 (2440)\n+\n+06E456 LOCAL HEADER #242     04034B50 (67324752)\n+06E45A Extract Zip Spec      14 (20) '2.0'\n+06E45B Extract OS            00 (0) 'MS-DOS'\n+06E45C General Purpose Flag  0000 (0)\n+06E45E Compression Method    0000 (0) 'Stored'\n+06E460 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06E464 CRC                   00000000 (0)\n+06E468 Compressed Size       00000000 (0)\n+06E46C Uncompressed Size     00000000 (0)\n+06E470 Filename Length       0030 (48)\n+06E472 Extra Length          0009 (9)\n+06E474 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E474: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06E4A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06E4A6   Length              0005 (5)\n+06E4A8   Flags               01 (1) 'Modification'\n+06E4A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06E4AD LOCAL HEADER #243     04034B50 (67324752)\n+06E4B1 Extract Zip Spec      14 (20) '2.0'\n+06E4B2 Extract OS            00 (0) 'MS-DOS'\n+06E4B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06E4B5 Compression Method    0000 (0) 'Stored'\n+06E4B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06E4BB CRC                   00000000 (0)\n+06E4BF Compressed Size       00000000 (0)\n+06E4C3 Uncompressed Size     00000000 (0)\n+06E4C7 Filename Length       003E (62)\n+06E4C9 Extra Length          0009 (9)\n+06E4CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06E509 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06E50B   Length              0005 (5)\n+06E50D   Flags               01 (1) 'Modification'\n+06E50E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06E512 DATA DESCRIPTOR       08074B50 (134695760)\n+06E516 CRC                   00000000 (0)\n+06E51A Compressed Size       00000000 (0)\n+06E51E Uncompressed Size     00000000 (0)\n+\n+06E522 LOCAL HEADER #244     04034B50 (67324752)\n+06E526 Extract Zip Spec      14 (20) '2.0'\n+06E527 Extract OS            00 (0) 'MS-DOS'\n+06E528 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06E52A Compression Method    0000 (0) 'Stored'\n+06E52C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06E530 CRC                   00000000 (0)\n+06E534 Compressed Size       00000000 (0)\n+06E538 Uncompressed Size     00000000 (0)\n+06E53C Filename Length       0037 (55)\n+06E53E Extra Length          0009 (9)\n+06E540 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E540: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06E577 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06E579   Length              0005 (5)\n+06E57B   Flags               01 (1) 'Modification'\n+06E57C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06E580 PAYLOAD\n+\n+06ED03 DATA DESCRIPTOR       08074B50 (134695760)\n+06ED07 CRC                   C4A7A8FF (3299322111)\n+06ED0B Compressed Size       00000783 (1923)\n+06ED0F Uncompressed Size     00000783 (1923)\n+\n+06ED13 LOCAL HEADER #245     04034B50 (67324752)\n+06ED17 Extract Zip Spec      14 (20) '2.0'\n+06ED18 Extract OS            00 (0) 'MS-DOS'\n+06ED19 General Purpose Flag  0000 (0)\n+06ED1B Compression Method    0000 (0) 'Stored'\n+06ED1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06ED21 CRC                   00000000 (0)\n+06ED25 Compressed Size       00000000 (0)\n+06ED29 Uncompressed Size     00000000 (0)\n+06ED2D Filename Length       0034 (52)\n+06ED2F Extra Length          0009 (9)\n+06ED31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06ED65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06ED67   Length              0005 (5)\n+06ED69   Flags               01 (1) 'Modification'\n+06ED6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06ED6E LOCAL HEADER #246     04034B50 (67324752)\n+06ED72 Extract Zip Spec      14 (20) '2.0'\n+06ED73 Extract OS            00 (0) 'MS-DOS'\n+06ED74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06ED76 Compression Method    0000 (0) 'Stored'\n+06ED78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06ED7C CRC                   00000000 (0)\n+06ED80 Compressed Size       00000000 (0)\n+06ED84 Uncompressed Size     00000000 (0)\n+06ED88 Filename Length       0042 (66)\n+06ED8A Extra Length          0009 (9)\n+06ED8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06EDCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06EDD0   Length              0005 (5)\n+06EDD2   Flags               01 (1) 'Modification'\n+06EDD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06EDD7 DATA DESCRIPTOR       08074B50 (134695760)\n+06EDDB CRC                   00000000 (0)\n+06EDDF Compressed Size       00000000 (0)\n+06EDE3 Uncompressed Size     00000000 (0)\n+\n+06EDE7 LOCAL HEADER #247     04034B50 (67324752)\n+06EDEB Extract Zip Spec      14 (20) '2.0'\n+06EDEC Extract OS            00 (0) 'MS-DOS'\n+06EDED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06EDEF Compression Method    0000 (0) 'Stored'\n+06EDF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06EDF5 CRC                   00000000 (0)\n+06EDF9 Compressed Size       00000000 (0)\n+06EDFD Uncompressed Size     00000000 (0)\n+06EE01 Filename Length       003B (59)\n+06EE03 Extra Length          0009 (9)\n+06EE05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06EE40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06EE42   Length              0005 (5)\n+06EE44   Flags               01 (1) 'Modification'\n+06EE45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06EE49 PAYLOAD\n+\n+06F654 DATA DESCRIPTOR       08074B50 (134695760)\n+06F658 CRC                   6C50312F (1817194799)\n+06F65C Compressed Size       0000080B (2059)\n+06F660 Uncompressed Size     0000080B (2059)\n+\n+06F664 LOCAL HEADER #248     04034B50 (67324752)\n+06F668 Extract Zip Spec      14 (20) '2.0'\n+06F669 Extract OS            00 (0) 'MS-DOS'\n+06F66A General Purpose Flag  0000 (0)\n+06F66C Compression Method    0000 (0) 'Stored'\n+06F66E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06F672 CRC                   00000000 (0)\n+06F676 Compressed Size       00000000 (0)\n+06F67A Uncompressed Size     00000000 (0)\n+06F67E Filename Length       0038 (56)\n+06F680 Extra Length          0009 (9)\n+06F682 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F682: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06F6BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06F6BC   Length              0005 (5)\n+06F6BE   Flags               01 (1) 'Modification'\n+06F6BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06F6C3 LOCAL HEADER #249     04034B50 (67324752)\n+06F6C7 Extract Zip Spec      14 (20) '2.0'\n+06F6C8 Extract OS            00 (0) 'MS-DOS'\n+06F6C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06F6CB Compression Method    0000 (0) 'Stored'\n+06F6CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06F6D1 CRC                   00000000 (0)\n+06F6D5 Compressed Size       00000000 (0)\n+06F6D9 Uncompressed Size     00000000 (0)\n+06F6DD Filename Length       0046 (70)\n+06F6DF Extra Length          0009 (9)\n+06F6E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06F727 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06F729   Length              0005 (5)\n+06F72B   Flags               01 (1) 'Modification'\n+06F72C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+06F730 DATA DESCRIPTOR       08074B50 (134695760)\n+06F734 CRC                   00000000 (0)\n+06F738 Compressed Size       00000000 (0)\n+06F73C Uncompressed Size     00000000 (0)\n+\n+06F740 LOCAL HEADER #250     04034B50 (67324752)\n+06F744 Extract Zip Spec      14 (20) '2.0'\n+06F745 Extract OS            00 (0) 'MS-DOS'\n+06F746 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+06F748 Compression Method    0000 (0) 'Stored'\n+06F74A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+06F74E CRC                   00000000 (0)\n+06F752 Compressed Size       00000000 (0)\n+06F756 Uncompressed Size     00000000 (0)\n+06F75A Filename Length       003F (63)\n+06F75C Extra Length          0009 (9)\n+06F75E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F75E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+06F79D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+06F79F   Length              0005 (5)\n+06F7A1   Flags               01 (1) 'Modification'\n+06F7A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+06F7A6 PAYLOAD\n+\n+07006C DATA DESCRIPTOR       08074B50 (134695760)\n+070070 CRC                   DFB279C5 (3753015749)\n+070074 Compressed Size       000008C6 (2246)\n+070078 Uncompressed Size     000008C6 (2246)\n+\n+07007C LOCAL HEADER #251     04034B50 (67324752)\n+070080 Extract Zip Spec      14 (20) '2.0'\n+070081 Extract OS            00 (0) 'MS-DOS'\n+070082 General Purpose Flag  0000 (0)\n+070084 Compression Method    0000 (0) 'Stored'\n+070086 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07008A CRC                   00000000 (0)\n+07008E Compressed Size       00000000 (0)\n+070092 Uncompressed Size     00000000 (0)\n+070096 Filename Length       0030 (48)\n+070098 Extra Length          0009 (9)\n+07009A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7009A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0700CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0700CC   Length              0005 (5)\n+0700CE   Flags               01 (1) 'Modification'\n+0700CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0700D3 LOCAL HEADER #252     04034B50 (67324752)\n+0700D7 Extract Zip Spec      14 (20) '2.0'\n+0700D8 Extract OS            00 (0) 'MS-DOS'\n+0700D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0700DB Compression Method    0000 (0) 'Stored'\n+0700DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0700E1 CRC                   00000000 (0)\n+0700E5 Compressed Size       00000000 (0)\n+0700E9 Uncompressed Size     00000000 (0)\n+0700ED Filename Length       003E (62)\n+0700EF Extra Length          0009 (9)\n+0700F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07012F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+070131   Length              0005 (5)\n+070133   Flags               01 (1) 'Modification'\n+070134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+070138 DATA DESCRIPTOR       08074B50 (134695760)\n+07013C CRC                   00000000 (0)\n+070140 Compressed Size       00000000 (0)\n+070144 Uncompressed Size     00000000 (0)\n+\n+070148 LOCAL HEADER #253     04034B50 (67324752)\n+07014C Extract Zip Spec      14 (20) '2.0'\n+07014D Extract OS            00 (0) 'MS-DOS'\n+07014E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+070150 Compression Method    0000 (0) 'Stored'\n+070152 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+070156 CRC                   00000000 (0)\n+07015A Compressed Size       00000000 (0)\n+07015E Uncompressed Size     00000000 (0)\n+070162 Filename Length       0037 (55)\n+070164 Extra Length          0009 (9)\n+070166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07019D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07019F   Length              0005 (5)\n+0701A1   Flags               01 (1) 'Modification'\n+0701A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0701A6 PAYLOAD\n+\n+070B95 DATA DESCRIPTOR       08074B50 (134695760)\n+070B99 CRC                   C023047F (3223520383)\n+070B9D Compressed Size       000009EF (2543)\n+070BA1 Uncompressed Size     000009EF (2543)\n+\n+070BA5 LOCAL HEADER #254     04034B50 (67324752)\n+070BA9 Extract Zip Spec      14 (20) '2.0'\n+070BAA Extract OS            00 (0) 'MS-DOS'\n+070BAB General Purpose Flag  0000 (0)\n+070BAD Compression Method    0000 (0) 'Stored'\n+070BAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+070BB3 CRC                   00000000 (0)\n+070BB7 Compressed Size       00000000 (0)\n+070BBB Uncompressed Size     00000000 (0)\n+070BBF Filename Length       002F (47)\n+070BC1 Extra Length          0009 (9)\n+070BC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+070BF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+070BF4   Length              0005 (5)\n+070BF6   Flags               01 (1) 'Modification'\n+070BF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+070BFB LOCAL HEADER #255     04034B50 (67324752)\n+070BFF Extract Zip Spec      14 (20) '2.0'\n+070C00 Extract OS            00 (0) 'MS-DOS'\n+070C01 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+070C03 Compression Method    0000 (0) 'Stored'\n+070C05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+070C09 CRC                   00000000 (0)\n+070C0D Compressed Size       00000000 (0)\n+070C11 Uncompressed Size     00000000 (0)\n+070C15 Filename Length       003D (61)\n+070C17 Extra Length          0009 (9)\n+070C19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+070C56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+070C58   Length              0005 (5)\n+070C5A   Flags               01 (1) 'Modification'\n+070C5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+070C5F DATA DESCRIPTOR       08074B50 (134695760)\n+070C63 CRC                   00000000 (0)\n+070C67 Compressed Size       00000000 (0)\n+070C6B Uncompressed Size     00000000 (0)\n+\n+070C6F LOCAL HEADER #256     04034B50 (67324752)\n+070C73 Extract Zip Spec      14 (20) '2.0'\n+070C74 Extract OS            00 (0) 'MS-DOS'\n+070C75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+070C77 Compression Method    0000 (0) 'Stored'\n+070C79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+070C7D CRC                   00000000 (0)\n+070C81 Compressed Size       00000000 (0)\n+070C85 Uncompressed Size     00000000 (0)\n+070C89 Filename Length       0036 (54)\n+070C8B Extra Length          0009 (9)\n+070C8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+070CC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+070CC5   Length              0005 (5)\n+070CC7   Flags               01 (1) 'Modification'\n+070CC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+070CCC PAYLOAD\n+\n+071BFC DATA DESCRIPTOR       08074B50 (134695760)\n+071C00 CRC                   E36316D8 (3814921944)\n+071C04 Compressed Size       00000F30 (3888)\n+071C08 Uncompressed Size     00000F30 (3888)\n+\n+071C0C LOCAL HEADER #257     04034B50 (67324752)\n+071C10 Extract Zip Spec      14 (20) '2.0'\n+071C11 Extract OS            00 (0) 'MS-DOS'\n+071C12 General Purpose Flag  0000 (0)\n+071C14 Compression Method    0000 (0) 'Stored'\n+071C16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+071C1A CRC                   00000000 (0)\n+071C1E Compressed Size       00000000 (0)\n+071C22 Uncompressed Size     00000000 (0)\n+071C26 Filename Length       002E (46)\n+071C28 Extra Length          0009 (9)\n+071C2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71C2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+071C58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+071C5A   Length              0005 (5)\n+071C5C   Flags               01 (1) 'Modification'\n+071C5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+071C61 LOCAL HEADER #258     04034B50 (67324752)\n+071C65 Extract Zip Spec      14 (20) '2.0'\n+071C66 Extract OS            00 (0) 'MS-DOS'\n+071C67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+071C69 Compression Method    0000 (0) 'Stored'\n+071C6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+071C6F CRC                   00000000 (0)\n+071C73 Compressed Size       00000000 (0)\n+071C77 Uncompressed Size     00000000 (0)\n+071C7B Filename Length       003C (60)\n+071C7D Extra Length          0009 (9)\n+071C7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71C7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+071CBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+071CBD   Length              0005 (5)\n+071CBF   Flags               01 (1) 'Modification'\n+071CC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+071CC4 DATA DESCRIPTOR       08074B50 (134695760)\n+071CC8 CRC                   00000000 (0)\n+071CCC Compressed Size       00000000 (0)\n+071CD0 Uncompressed Size     00000000 (0)\n+\n+071CD4 LOCAL HEADER #259     04034B50 (67324752)\n+071CD8 Extract Zip Spec      14 (20) '2.0'\n+071CD9 Extract OS            00 (0) 'MS-DOS'\n+071CDA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+071CDC Compression Method    0000 (0) 'Stored'\n+071CDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+071CE2 CRC                   00000000 (0)\n+071CE6 Compressed Size       00000000 (0)\n+071CEA Uncompressed Size     00000000 (0)\n+071CEE Filename Length       0035 (53)\n+071CF0 Extra Length          0009 (9)\n+071CF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71CF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+071D27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+071D29   Length              0005 (5)\n+071D2B   Flags               01 (1) 'Modification'\n+071D2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+071D30 PAYLOAD\n+\n+07252D DATA DESCRIPTOR       08074B50 (134695760)\n+072531 CRC                   53E95BBF (1407802303)\n+072535 Compressed Size       000007FD (2045)\n+072539 Uncompressed Size     000007FD (2045)\n+\n+07253D LOCAL HEADER #260     04034B50 (67324752)\n+072541 Extract Zip Spec      14 (20) '2.0'\n+072542 Extract OS            00 (0) 'MS-DOS'\n+072543 General Purpose Flag  0000 (0)\n+072545 Compression Method    0000 (0) 'Stored'\n+072547 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07254B CRC                   00000000 (0)\n+07254F Compressed Size       00000000 (0)\n+072553 Uncompressed Size     00000000 (0)\n+072557 Filename Length       0031 (49)\n+072559 Extra Length          0009 (9)\n+07255B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7255B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07258C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07258E   Length              0005 (5)\n+072590   Flags               01 (1) 'Modification'\n+072591   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+072595 LOCAL HEADER #261     04034B50 (67324752)\n+072599 Extract Zip Spec      14 (20) '2.0'\n+07259A Extract OS            00 (0) 'MS-DOS'\n+07259B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07259D Compression Method    0000 (0) 'Stored'\n+07259F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0725A3 CRC                   00000000 (0)\n+0725A7 Compressed Size       00000000 (0)\n+0725AB Uncompressed Size     00000000 (0)\n+0725AF Filename Length       003F (63)\n+0725B1 Extra Length          0009 (9)\n+0725B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x725B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0725F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0725F4   Length              0005 (5)\n+0725F6   Flags               01 (1) 'Modification'\n+0725F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0725FB DATA DESCRIPTOR       08074B50 (134695760)\n+0725FF CRC                   00000000 (0)\n+072603 Compressed Size       00000000 (0)\n+072607 Uncompressed Size     00000000 (0)\n+\n+07260B LOCAL HEADER #262     04034B50 (67324752)\n+07260F Extract Zip Spec      14 (20) '2.0'\n+072610 Extract OS            00 (0) 'MS-DOS'\n+072611 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+072613 Compression Method    0000 (0) 'Stored'\n+072615 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+072619 CRC                   00000000 (0)\n+07261D Compressed Size       00000000 (0)\n+072621 Uncompressed Size     00000000 (0)\n+072625 Filename Length       0038 (56)\n+072627 Extra Length          0009 (9)\n+072629 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x72629: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+072661 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+072663   Length              0005 (5)\n+072665   Flags               01 (1) 'Modification'\n+072666   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07266A PAYLOAD\n+\n+073299 DATA DESCRIPTOR       08074B50 (134695760)\n+07329D CRC                   FBA32B90 (4221774736)\n+0732A1 Compressed Size       00000C2F (3119)\n+0732A5 Uncompressed Size     00000C2F (3119)\n+\n+0732A9 LOCAL HEADER #263     04034B50 (67324752)\n+0732AD Extract Zip Spec      14 (20) '2.0'\n+0732AE Extract OS            00 (0) 'MS-DOS'\n+0732AF General Purpose Flag  0000 (0)\n+0732B1 Compression Method    0000 (0) 'Stored'\n+0732B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0732B7 CRC                   00000000 (0)\n+0732BB Compressed Size       00000000 (0)\n+0732BF Uncompressed Size     00000000 (0)\n+0732C3 Filename Length       0035 (53)\n+0732C5 Extra Length          0009 (9)\n+0732C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x732C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0732FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0732FE   Length              0005 (5)\n+073300   Flags               01 (1) 'Modification'\n+073301   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+073305 LOCAL HEADER #264     04034B50 (67324752)\n+073309 Extract Zip Spec      14 (20) '2.0'\n+07330A Extract OS            00 (0) 'MS-DOS'\n+07330B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07330D Compression Method    0000 (0) 'Stored'\n+07330F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+073313 CRC                   00000000 (0)\n+073317 Compressed Size       00000000 (0)\n+07331B Uncompressed Size     00000000 (0)\n+07331F Filename Length       0043 (67)\n+073321 Extra Length          0009 (9)\n+073323 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x73323: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+073366 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+073368   Length              0005 (5)\n+07336A   Flags               01 (1) 'Modification'\n+07336B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07336F DATA DESCRIPTOR       08074B50 (134695760)\n+073373 CRC                   00000000 (0)\n+073377 Compressed Size       00000000 (0)\n+07337B Uncompressed Size     00000000 (0)\n+\n+07337F LOCAL HEADER #265     04034B50 (67324752)\n+073383 Extract Zip Spec      14 (20) '2.0'\n+073384 Extract OS            00 (0) 'MS-DOS'\n+073385 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+073387 Compression Method    0000 (0) 'Stored'\n+073389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07338D CRC                   00000000 (0)\n+073391 Compressed Size       00000000 (0)\n+073395 Uncompressed Size     00000000 (0)\n+073399 Filename Length       003C (60)\n+07339B Extra Length          0009 (9)\n+07339D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7339D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0733D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0733DB   Length              0005 (5)\n+0733DD   Flags               01 (1) 'Modification'\n+0733DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0733E2 PAYLOAD\n+\n+074001 DATA DESCRIPTOR       08074B50 (134695760)\n+074005 CRC                   42F6A52E (1123460398)\n+074009 Compressed Size       00000C1F (3103)\n+07400D Uncompressed Size     00000C1F (3103)\n+\n+074011 LOCAL HEADER #266     04034B50 (67324752)\n+074015 Extract Zip Spec      14 (20) '2.0'\n+074016 Extract OS            00 (0) 'MS-DOS'\n+074017 General Purpose Flag  0000 (0)\n+074019 Compression Method    0000 (0) 'Stored'\n+07401B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07401F CRC                   00000000 (0)\n+074023 Compressed Size       00000000 (0)\n+074027 Uncompressed Size     00000000 (0)\n+07402B Filename Length       002E (46)\n+07402D Extra Length          0009 (9)\n+07402F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7402F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07405D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07405F   Length              0005 (5)\n+074061   Flags               01 (1) 'Modification'\n+074062   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+074066 LOCAL HEADER #267     04034B50 (67324752)\n+07406A Extract Zip Spec      14 (20) '2.0'\n+07406B Extract OS            00 (0) 'MS-DOS'\n+07406C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07406E Compression Method    0000 (0) 'Stored'\n+074070 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+074074 CRC                   00000000 (0)\n+074078 Compressed Size       00000000 (0)\n+07407C Uncompressed Size     00000000 (0)\n+074080 Filename Length       003C (60)\n+074082 Extra Length          0009 (9)\n+074084 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x74084: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0740C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0740C2   Length              0005 (5)\n+0740C4   Flags               01 (1) 'Modification'\n+0740C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0740C9 DATA DESCRIPTOR       08074B50 (134695760)\n+0740CD CRC                   00000000 (0)\n+0740D1 Compressed Size       00000000 (0)\n+0740D5 Uncompressed Size     00000000 (0)\n+\n+0740D9 LOCAL HEADER #268     04034B50 (67324752)\n+0740DD Extract Zip Spec      14 (20) '2.0'\n+0740DE Extract OS            00 (0) 'MS-DOS'\n+0740DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0740E1 Compression Method    0000 (0) 'Stored'\n+0740E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0740E7 CRC                   00000000 (0)\n+0740EB Compressed Size       00000000 (0)\n+0740EF Uncompressed Size     00000000 (0)\n+0740F3 Filename Length       0035 (53)\n+0740F5 Extra Length          0009 (9)\n+0740F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x740F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07412C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07412E   Length              0005 (5)\n+074130   Flags               01 (1) 'Modification'\n+074131   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+074135 PAYLOAD\n+\n+074C12 DATA DESCRIPTOR       08074B50 (134695760)\n+074C16 CRC                   E989D516 (3918124310)\n+074C1A Compressed Size       00000ADD (2781)\n+074C1E Uncompressed Size     00000ADD (2781)\n+\n+074C22 LOCAL HEADER #269     04034B50 (67324752)\n+074C26 Extract Zip Spec      14 (20) '2.0'\n+074C27 Extract OS            00 (0) 'MS-DOS'\n+074C28 General Purpose Flag  0000 (0)\n+074C2A Compression Method    0000 (0) 'Stored'\n+074C2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+074C30 CRC                   00000000 (0)\n+074C34 Compressed Size       00000000 (0)\n+074C38 Uncompressed Size     00000000 (0)\n+074C3C Filename Length       0038 (56)\n+074C3E Extra Length          0009 (9)\n+074C40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x74C40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+074C78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+074C7A   Length              0005 (5)\n+074C7C   Flags               01 (1) 'Modification'\n+074C7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+074C81 LOCAL HEADER #270     04034B50 (67324752)\n+074C85 Extract Zip Spec      14 (20) '2.0'\n+074C86 Extract OS            00 (0) 'MS-DOS'\n+074C87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+074C89 Compression Method    0000 (0) 'Stored'\n+074C8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+074C8F CRC                   00000000 (0)\n+074C93 Compressed Size       00000000 (0)\n+074C97 Uncompressed Size     00000000 (0)\n+074C9B Filename Length       0046 (70)\n+074C9D Extra Length          0009 (9)\n+074C9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x74C9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+074CE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+074CE7   Length              0005 (5)\n+074CE9   Flags               01 (1) 'Modification'\n+074CEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+074CEE DATA DESCRIPTOR       08074B50 (134695760)\n+074CF2 CRC                   00000000 (0)\n+074CF6 Compressed Size       00000000 (0)\n+074CFA Uncompressed Size     00000000 (0)\n+\n+074CFE LOCAL HEADER #271     04034B50 (67324752)\n+074D02 Extract Zip Spec      14 (20) '2.0'\n+074D03 Extract OS            00 (0) 'MS-DOS'\n+074D04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+074D06 Compression Method    0000 (0) 'Stored'\n+074D08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+074D0C CRC                   00000000 (0)\n+074D10 Compressed Size       00000000 (0)\n+074D14 Uncompressed Size     00000000 (0)\n+074D18 Filename Length       003F (63)\n+074D1A Extra Length          0009 (9)\n+074D1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x74D1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+074D5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+074D5D   Length              0005 (5)\n+074D5F   Flags               01 (1) 'Modification'\n+074D60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+074D64 PAYLOAD\n+\n+0754ED DATA DESCRIPTOR       08074B50 (134695760)\n+0754F1 CRC                   91053145 (2433036613)\n+0754F5 Compressed Size       00000789 (1929)\n+0754F9 Uncompressed Size     00000789 (1929)\n+\n+0754FD LOCAL HEADER #272     04034B50 (67324752)\n+075501 Extract Zip Spec      14 (20) '2.0'\n+075502 Extract OS            00 (0) 'MS-DOS'\n+075503 General Purpose Flag  0000 (0)\n+075505 Compression Method    0000 (0) 'Stored'\n+075507 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07550B CRC                   00000000 (0)\n+07550F Compressed Size       00000000 (0)\n+075513 Uncompressed Size     00000000 (0)\n+075517 Filename Length       0039 (57)\n+075519 Extra Length          0009 (9)\n+07551B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7551B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075554 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+075556   Length              0005 (5)\n+075558   Flags               01 (1) 'Modification'\n+075559   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07555D LOCAL HEADER #273     04034B50 (67324752)\n+075561 Extract Zip Spec      14 (20) '2.0'\n+075562 Extract OS            00 (0) 'MS-DOS'\n+075563 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+075565 Compression Method    0000 (0) 'Stored'\n+075567 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07556B CRC                   00000000 (0)\n+07556F Compressed Size       00000000 (0)\n+075573 Uncompressed Size     00000000 (0)\n+075577 Filename Length       0047 (71)\n+075579 Extra Length          0009 (9)\n+07557B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7557B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0755C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0755C4   Length              0005 (5)\n+0755C6   Flags               01 (1) 'Modification'\n+0755C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0755CB DATA DESCRIPTOR       08074B50 (134695760)\n+0755CF CRC                   00000000 (0)\n+0755D3 Compressed Size       00000000 (0)\n+0755D7 Uncompressed Size     00000000 (0)\n+\n+0755DB LOCAL HEADER #274     04034B50 (67324752)\n+0755DF Extract Zip Spec      14 (20) '2.0'\n+0755E0 Extract OS            00 (0) 'MS-DOS'\n+0755E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0755E3 Compression Method    0000 (0) 'Stored'\n+0755E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0755E9 CRC                   00000000 (0)\n+0755ED Compressed Size       00000000 (0)\n+0755F1 Uncompressed Size     00000000 (0)\n+0755F5 Filename Length       0040 (64)\n+0755F7 Extra Length          0009 (9)\n+0755F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x755F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075639 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07563B   Length              0005 (5)\n+07563D   Flags               01 (1) 'Modification'\n+07563E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+075642 PAYLOAD\n+\n+075E5B DATA DESCRIPTOR       08074B50 (134695760)\n+075E5F CRC                   7B8B6784 (2072733572)\n+075E63 Compressed Size       00000819 (2073)\n+075E67 Uncompressed Size     00000819 (2073)\n+\n+075E6B LOCAL HEADER #275     04034B50 (67324752)\n+075E6F Extract Zip Spec      14 (20) '2.0'\n+075E70 Extract OS            00 (0) 'MS-DOS'\n+075E71 General Purpose Flag  0000 (0)\n+075E73 Compression Method    0000 (0) 'Stored'\n+075E75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+075E79 CRC                   00000000 (0)\n+075E7D Compressed Size       00000000 (0)\n+075E81 Uncompressed Size     00000000 (0)\n+075E85 Filename Length       003D (61)\n+075E87 Extra Length          0009 (9)\n+075E89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x75E89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075EC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+075EC8   Length              0005 (5)\n+075ECA   Flags               01 (1) 'Modification'\n+075ECB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+075ECF LOCAL HEADER #276     04034B50 (67324752)\n+075ED3 Extract Zip Spec      14 (20) '2.0'\n+075ED4 Extract OS            00 (0) 'MS-DOS'\n+075ED5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+075ED7 Compression Method    0000 (0) 'Stored'\n+075ED9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+075EDD CRC                   00000000 (0)\n+075EE1 Compressed Size       00000000 (0)\n+075EE5 Uncompressed Size     00000000 (0)\n+075EE9 Filename Length       004B (75)\n+075EEB Extra Length          0009 (9)\n+075EED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x75EED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075F38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+075F3A   Length              0005 (5)\n+075F3C   Flags               01 (1) 'Modification'\n+075F3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+075F41 DATA DESCRIPTOR       08074B50 (134695760)\n+075F45 CRC                   00000000 (0)\n+075F49 Compressed Size       00000000 (0)\n+075F4D Uncompressed Size     00000000 (0)\n+\n+075F51 LOCAL HEADER #277     04034B50 (67324752)\n+075F55 Extract Zip Spec      14 (20) '2.0'\n+075F56 Extract OS            00 (0) 'MS-DOS'\n+075F57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+075F59 Compression Method    0000 (0) 'Stored'\n+075F5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+075F5F CRC                   00000000 (0)\n+075F63 Compressed Size       00000000 (0)\n+075F67 Uncompressed Size     00000000 (0)\n+075F6B Filename Length       0044 (68)\n+075F6D Extra Length          0009 (9)\n+075F6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x75F6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+075FB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+075FB5   Length              0005 (5)\n+075FB7   Flags               01 (1) 'Modification'\n+075FB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+075FBC PAYLOAD\n+\n+0767C4 DATA DESCRIPTOR       08074B50 (134695760)\n+0767C8 CRC                   4A5D3F5A (1247625050)\n+0767CC Compressed Size       00000808 (2056)\n+0767D0 Uncompressed Size     00000808 (2056)\n+\n+0767D4 LOCAL HEADER #278     04034B50 (67324752)\n+0767D8 Extract Zip Spec      14 (20) '2.0'\n+0767D9 Extract OS            00 (0) 'MS-DOS'\n+0767DA General Purpose Flag  0000 (0)\n+0767DC Compression Method    0000 (0) 'Stored'\n+0767DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0767E2 CRC                   00000000 (0)\n+0767E6 Compressed Size       00000000 (0)\n+0767EA Uncompressed Size     00000000 (0)\n+0767EE Filename Length       0038 (56)\n+0767F0 Extra Length          0009 (9)\n+0767F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x767F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07682A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07682C   Length              0005 (5)\n+07682E   Flags               01 (1) 'Modification'\n+07682F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+076833 LOCAL HEADER #279     04034B50 (67324752)\n+076837 Extract Zip Spec      14 (20) '2.0'\n+076838 Extract OS            00 (0) 'MS-DOS'\n+076839 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07683B Compression Method    0000 (0) 'Stored'\n+07683D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+076841 CRC                   00000000 (0)\n+076845 Compressed Size       00000000 (0)\n+076849 Uncompressed Size     00000000 (0)\n+07684D Filename Length       0046 (70)\n+07684F Extra Length          0009 (9)\n+076851 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x76851: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+076897 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+076899   Length              0005 (5)\n+07689B   Flags               01 (1) 'Modification'\n+07689C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0768A0 DATA DESCRIPTOR       08074B50 (134695760)\n+0768A4 CRC                   00000000 (0)\n+0768A8 Compressed Size       00000000 (0)\n+0768AC Uncompressed Size     00000000 (0)\n+\n+0768B0 LOCAL HEADER #280     04034B50 (67324752)\n+0768B4 Extract Zip Spec      14 (20) '2.0'\n+0768B5 Extract OS            00 (0) 'MS-DOS'\n+0768B6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0768B8 Compression Method    0000 (0) 'Stored'\n+0768BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0768BE CRC                   00000000 (0)\n+0768C2 Compressed Size       00000000 (0)\n+0768C6 Uncompressed Size     00000000 (0)\n+0768CA Filename Length       003F (63)\n+0768CC Extra Length          0009 (9)\n+0768CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x768CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07690D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07690F   Length              0005 (5)\n+076911   Flags               01 (1) 'Modification'\n+076912   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+076916 PAYLOAD\n+\n+07712F DATA DESCRIPTOR       08074B50 (134695760)\n+077133 CRC                   2E75446F (779437167)\n+077137 Compressed Size       00000819 (2073)\n+07713B Uncompressed Size     00000819 (2073)\n+\n+07713F LOCAL HEADER #281     04034B50 (67324752)\n+077143 Extract Zip Spec      14 (20) '2.0'\n+077144 Extract OS            00 (0) 'MS-DOS'\n+077145 General Purpose Flag  0000 (0)\n+077147 Compression Method    0000 (0) 'Stored'\n+077149 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07714D CRC                   00000000 (0)\n+077151 Compressed Size       00000000 (0)\n+077155 Uncompressed Size     00000000 (0)\n+077159 Filename Length       0039 (57)\n+07715B Extra Length          0009 (9)\n+07715D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7715D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+077196 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+077198   Length              0005 (5)\n+07719A   Flags               01 (1) 'Modification'\n+07719B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07719F LOCAL HEADER #282     04034B50 (67324752)\n+0771A3 Extract Zip Spec      14 (20) '2.0'\n+0771A4 Extract OS            00 (0) 'MS-DOS'\n+0771A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0771A7 Compression Method    0000 (0) 'Stored'\n+0771A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0771AD CRC                   00000000 (0)\n+0771B1 Compressed Size       00000000 (0)\n+0771B5 Uncompressed Size     00000000 (0)\n+0771B9 Filename Length       0047 (71)\n+0771BB Extra Length          0009 (9)\n+0771BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x771BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+077204 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+077206   Length              0005 (5)\n+077208   Flags               01 (1) 'Modification'\n+077209   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07720D DATA DESCRIPTOR       08074B50 (134695760)\n+077211 CRC                   00000000 (0)\n+077215 Compressed Size       00000000 (0)\n+077219 Uncompressed Size     00000000 (0)\n+\n+07721D LOCAL HEADER #283     04034B50 (67324752)\n+077221 Extract Zip Spec      14 (20) '2.0'\n+077222 Extract OS            00 (0) 'MS-DOS'\n+077223 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+077225 Compression Method    0000 (0) 'Stored'\n+077227 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07722B CRC                   00000000 (0)\n+07722F Compressed Size       00000000 (0)\n+077233 Uncompressed Size     00000000 (0)\n+077237 Filename Length       0040 (64)\n+077239 Extra Length          0009 (9)\n+07723B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7723B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07727B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07727D   Length              0005 (5)\n+07727F   Flags               01 (1) 'Modification'\n+077280   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+077284 PAYLOAD\n+\n+077A9C DATA DESCRIPTOR       08074B50 (134695760)\n+077AA0 CRC                   2D88023E (763888190)\n+077AA4 Compressed Size       00000818 (2072)\n+077AA8 Uncompressed Size     00000818 (2072)\n+\n+077AAC LOCAL HEADER #284     04034B50 (67324752)\n+077AB0 Extract Zip Spec      14 (20) '2.0'\n+077AB1 Extract OS            00 (0) 'MS-DOS'\n+077AB2 General Purpose Flag  0000 (0)\n+077AB4 Compression Method    0000 (0) 'Stored'\n+077AB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+077ABA CRC                   00000000 (0)\n+077ABE Compressed Size       00000000 (0)\n+077AC2 Uncompressed Size     00000000 (0)\n+077AC6 Filename Length       003D (61)\n+077AC8 Extra Length          0009 (9)\n+077ACA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x77ACA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+077B07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+077B09   Length              0005 (5)\n+077B0B   Flags               01 (1) 'Modification'\n+077B0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+077B10 LOCAL HEADER #285     04034B50 (67324752)\n+077B14 Extract Zip Spec      14 (20) '2.0'\n+077B15 Extract OS            00 (0) 'MS-DOS'\n+077B16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+077B18 Compression Method    0000 (0) 'Stored'\n+077B1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+077B1E CRC                   00000000 (0)\n+077B22 Compressed Size       00000000 (0)\n+077B26 Uncompressed Size     00000000 (0)\n+077B2A Filename Length       004B (75)\n+077B2C Extra Length          0009 (9)\n+077B2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x77B2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+077B79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+077B7B   Length              0005 (5)\n+077B7D   Flags               01 (1) 'Modification'\n+077B7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+077B82 DATA DESCRIPTOR       08074B50 (134695760)\n+077B86 CRC                   00000000 (0)\n+077B8A Compressed Size       00000000 (0)\n+077B8E Uncompressed Size     00000000 (0)\n+\n+077B92 LOCAL HEADER #286     04034B50 (67324752)\n+077B96 Extract Zip Spec      14 (20) '2.0'\n+077B97 Extract OS            00 (0) 'MS-DOS'\n+077B98 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+077B9A Compression Method    0000 (0) 'Stored'\n+077B9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+077BA0 CRC                   00000000 (0)\n+077BA4 Compressed Size       00000000 (0)\n+077BA8 Uncompressed Size     00000000 (0)\n+077BAC Filename Length       0044 (68)\n+077BAE Extra Length          0009 (9)\n+077BB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x77BB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+077BF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+077BF6   Length              0005 (5)\n+077BF8   Flags               01 (1) 'Modification'\n+077BF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+077BFD PAYLOAD\n+\n+078409 DATA DESCRIPTOR       08074B50 (134695760)\n+07840D CRC                   7063BECD (1885585101)\n+078411 Compressed Size       0000080C (2060)\n+078415 Uncompressed Size     0000080C (2060)\n+\n+078419 LOCAL HEADER #287     04034B50 (67324752)\n+07841D Extract Zip Spec      14 (20) '2.0'\n+07841E Extract OS            00 (0) 'MS-DOS'\n+07841F General Purpose Flag  0000 (0)\n+078421 Compression Method    0000 (0) 'Stored'\n+078423 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078427 CRC                   00000000 (0)\n+07842B Compressed Size       00000000 (0)\n+07842F Uncompressed Size     00000000 (0)\n+078433 Filename Length       0038 (56)\n+078435 Extra Length          0009 (9)\n+078437 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78437: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07846F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078471   Length              0005 (5)\n+078473   Flags               01 (1) 'Modification'\n+078474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+078478 LOCAL HEADER #288     04034B50 (67324752)\n+07847C Extract Zip Spec      14 (20) '2.0'\n+07847D Extract OS            00 (0) 'MS-DOS'\n+07847E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+078480 Compression Method    0000 (0) 'Stored'\n+078482 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078486 CRC                   00000000 (0)\n+07848A Compressed Size       00000000 (0)\n+07848E Uncompressed Size     00000000 (0)\n+078492 Filename Length       0046 (70)\n+078494 Extra Length          0009 (9)\n+078496 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78496: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0784DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0784DE   Length              0005 (5)\n+0784E0   Flags               01 (1) 'Modification'\n+0784E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0784E5 DATA DESCRIPTOR       08074B50 (134695760)\n+0784E9 CRC                   00000000 (0)\n+0784ED Compressed Size       00000000 (0)\n+0784F1 Uncompressed Size     00000000 (0)\n+\n+0784F5 LOCAL HEADER #289     04034B50 (67324752)\n+0784F9 Extract Zip Spec      14 (20) '2.0'\n+0784FA Extract OS            00 (0) 'MS-DOS'\n+0784FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0784FD Compression Method    0000 (0) 'Stored'\n+0784FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078503 CRC                   00000000 (0)\n+078507 Compressed Size       00000000 (0)\n+07850B Uncompressed Size     00000000 (0)\n+07850F Filename Length       003F (63)\n+078511 Extra Length          0009 (9)\n+078513 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78513: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+078552 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078554   Length              0005 (5)\n+078556   Flags               01 (1) 'Modification'\n+078557   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07855B PAYLOAD\n+\n+078D5D DATA DESCRIPTOR       08074B50 (134695760)\n+078D61 CRC                   EA70B20B (3933254155)\n+078D65 Compressed Size       00000802 (2050)\n+078D69 Uncompressed Size     00000802 (2050)\n+\n+078D6D LOCAL HEADER #290     04034B50 (67324752)\n+078D71 Extract Zip Spec      14 (20) '2.0'\n+078D72 Extract OS            00 (0) 'MS-DOS'\n+078D73 General Purpose Flag  0000 (0)\n+078D75 Compression Method    0000 (0) 'Stored'\n+078D77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078D7B CRC                   00000000 (0)\n+078D7F Compressed Size       00000000 (0)\n+078D83 Uncompressed Size     00000000 (0)\n+078D87 Filename Length       0039 (57)\n+078D89 Extra Length          0009 (9)\n+078D8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78D8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+078DC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078DC6   Length              0005 (5)\n+078DC8   Flags               01 (1) 'Modification'\n+078DC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+078DCD LOCAL HEADER #291     04034B50 (67324752)\n+078DD1 Extract Zip Spec      14 (20) '2.0'\n+078DD2 Extract OS            00 (0) 'MS-DOS'\n+078DD3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+078DD5 Compression Method    0000 (0) 'Stored'\n+078DD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078DDB CRC                   00000000 (0)\n+078DDF Compressed Size       00000000 (0)\n+078DE3 Uncompressed Size     00000000 (0)\n+078DE7 Filename Length       0047 (71)\n+078DE9 Extra Length          0009 (9)\n+078DEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78DEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+078E32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078E34   Length              0005 (5)\n+078E36   Flags               01 (1) 'Modification'\n+078E37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+078E3B DATA DESCRIPTOR       08074B50 (134695760)\n+078E3F CRC                   00000000 (0)\n+078E43 Compressed Size       00000000 (0)\n+078E47 Uncompressed Size     00000000 (0)\n+\n+078E4B LOCAL HEADER #292     04034B50 (67324752)\n+078E4F Extract Zip Spec      14 (20) '2.0'\n+078E50 Extract OS            00 (0) 'MS-DOS'\n+078E51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+078E53 Compression Method    0000 (0) 'Stored'\n+078E55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+078E59 CRC                   00000000 (0)\n+078E5D Compressed Size       00000000 (0)\n+078E61 Uncompressed Size     00000000 (0)\n+078E65 Filename Length       0040 (64)\n+078E67 Extra Length          0009 (9)\n+078E69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x78E69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+078EA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+078EAB   Length              0005 (5)\n+078EAD   Flags               01 (1) 'Modification'\n+078EAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+078EB2 PAYLOAD\n+\n+079731 DATA DESCRIPTOR       08074B50 (134695760)\n+079735 CRC                   CA9739B0 (3398908336)\n+079739 Compressed Size       0000087F (2175)\n+07973D Uncompressed Size     0000087F (2175)\n+\n+079741 LOCAL HEADER #293     04034B50 (67324752)\n+079745 Extract Zip Spec      14 (20) '2.0'\n+079746 Extract OS            00 (0) 'MS-DOS'\n+079747 General Purpose Flag  0000 (0)\n+079749 Compression Method    0000 (0) 'Stored'\n+07974B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07974F CRC                   00000000 (0)\n+079753 Compressed Size       00000000 (0)\n+079757 Uncompressed Size     00000000 (0)\n+07975B Filename Length       0043 (67)\n+07975D Extra Length          0009 (9)\n+07975F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7975F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0797A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0797A4   Length              0005 (5)\n+0797A6   Flags               01 (1) 'Modification'\n+0797A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0797AB LOCAL HEADER #294     04034B50 (67324752)\n+0797AF Extract Zip Spec      14 (20) '2.0'\n+0797B0 Extract OS            00 (0) 'MS-DOS'\n+0797B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0797B3 Compression Method    0000 (0) 'Stored'\n+0797B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0797B9 CRC                   00000000 (0)\n+0797BD Compressed Size       00000000 (0)\n+0797C1 Uncompressed Size     00000000 (0)\n+0797C5 Filename Length       0051 (81)\n+0797C7 Extra Length          0009 (9)\n+0797C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x797C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07981A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07981C   Length              0005 (5)\n+07981E   Flags               01 (1) 'Modification'\n+07981F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+079823 DATA DESCRIPTOR       08074B50 (134695760)\n+079827 CRC                   00000000 (0)\n+07982B Compressed Size       00000000 (0)\n+07982F Uncompressed Size     00000000 (0)\n+\n+079833 LOCAL HEADER #295     04034B50 (67324752)\n+079837 Extract Zip Spec      14 (20) '2.0'\n+079838 Extract OS            00 (0) 'MS-DOS'\n+079839 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07983B Compression Method    0000 (0) 'Stored'\n+07983D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+079841 CRC                   00000000 (0)\n+079845 Compressed Size       00000000 (0)\n+079849 Uncompressed Size     00000000 (0)\n+07984D Filename Length       004A (74)\n+07984F Extra Length          0009 (9)\n+079851 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x79851: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07989B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07989D   Length              0005 (5)\n+07989F   Flags               01 (1) 'Modification'\n+0798A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0798A4 PAYLOAD\n+\n+07A066 DATA DESCRIPTOR       08074B50 (134695760)\n+07A06A CRC                   D7D86FD9 (3621285849)\n+07A06E Compressed Size       000007C2 (1986)\n+07A072 Uncompressed Size     000007C2 (1986)\n+\n+07A076 LOCAL HEADER #296     04034B50 (67324752)\n+07A07A Extract Zip Spec      14 (20) '2.0'\n+07A07B Extract OS            00 (0) 'MS-DOS'\n+07A07C General Purpose Flag  0000 (0)\n+07A07E Compression Method    0000 (0) 'Stored'\n+07A080 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07A084 CRC                   00000000 (0)\n+07A088 Compressed Size       00000000 (0)\n+07A08C Uncompressed Size     00000000 (0)\n+07A090 Filename Length       003D (61)\n+07A092 Extra Length          0009 (9)\n+07A094 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7A094: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A0D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A0D3   Length              0005 (5)\n+07A0D5   Flags               01 (1) 'Modification'\n+07A0D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07A0DA LOCAL HEADER #297     04034B50 (67324752)\n+07A0DE Extract Zip Spec      14 (20) '2.0'\n+07A0DF Extract OS            00 (0) 'MS-DOS'\n+07A0E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07A0E2 Compression Method    0000 (0) 'Stored'\n+07A0E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07A0E8 CRC                   00000000 (0)\n+07A0EC Compressed Size       00000000 (0)\n+07A0F0 Uncompressed Size     00000000 (0)\n+07A0F4 Filename Length       004B (75)\n+07A0F6 Extra Length          0009 (9)\n+07A0F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7A0F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A143 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A145   Length              0005 (5)\n+07A147   Flags               01 (1) 'Modification'\n+07A148   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07A14C DATA DESCRIPTOR       08074B50 (134695760)\n+07A150 CRC                   00000000 (0)\n+07A154 Compressed Size       00000000 (0)\n+07A158 Uncompressed Size     00000000 (0)\n+\n+07A15C LOCAL HEADER #298     04034B50 (67324752)\n+07A160 Extract Zip Spec      14 (20) '2.0'\n+07A161 Extract OS            00 (0) 'MS-DOS'\n+07A162 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07A164 Compression Method    0000 (0) 'Stored'\n+07A166 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07A16A CRC                   00000000 (0)\n+07A16E Compressed Size       00000000 (0)\n+07A172 Uncompressed Size     00000000 (0)\n+07A176 Filename Length       0044 (68)\n+07A178 Extra Length          0009 (9)\n+07A17A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7A17A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07A1BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07A1C0   Length              0005 (5)\n+07A1C2   Flags               01 (1) 'Modification'\n+07A1C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07A1C7 PAYLOAD\n+\n+07B06E DATA DESCRIPTOR       08074B50 (134695760)\n+07B072 CRC                   A4C37506 (2764272902)\n+07B076 Compressed Size       00000EA7 (3751)\n+07B07A Uncompressed Size     00000EA7 (3751)\n+\n+07B07E LOCAL HEADER #299     04034B50 (67324752)\n+07B082 Extract Zip Spec      14 (20) '2.0'\n+07B083 Extract OS            00 (0) 'MS-DOS'\n+07B084 General Purpose Flag  0000 (0)\n+07B086 Compression Method    0000 (0) 'Stored'\n+07B088 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07B08C CRC                   00000000 (0)\n+07B090 Compressed Size       00000000 (0)\n+07B094 Uncompressed Size     00000000 (0)\n+07B098 Filename Length       003F (63)\n+07B09A Extra Length          0009 (9)\n+07B09C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7B09C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07B0DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07B0DD   Length              0005 (5)\n+07B0DF   Flags               01 (1) 'Modification'\n+07B0E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07B0E4 LOCAL HEADER #300     04034B50 (67324752)\n+07B0E8 Extract Zip Spec      14 (20) '2.0'\n+07B0E9 Extract OS            00 (0) 'MS-DOS'\n+07B0EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07B0EC Compression Method    0000 (0) 'Stored'\n+07B0EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07B0F2 CRC                   00000000 (0)\n+07B0F6 Compressed Size       00000000 (0)\n+07B0FA Uncompressed Size     00000000 (0)\n+07B0FE Filename Length       004D (77)\n+07B100 Extra Length          0009 (9)\n+07B102 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7B102: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07B14F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07B151   Length              0005 (5)\n+07B153   Flags               01 (1) 'Modification'\n+07B154   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07B158 DATA DESCRIPTOR       08074B50 (134695760)\n+07B15C CRC                   00000000 (0)\n+07B160 Compressed Size       00000000 (0)\n+07B164 Uncompressed Size     00000000 (0)\n+\n+07B168 LOCAL HEADER #301     04034B50 (67324752)\n+07B16C Extract Zip Spec      14 (20) '2.0'\n+07B16D Extract OS            00 (0) 'MS-DOS'\n+07B16E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07B170 Compression Method    0000 (0) 'Stored'\n+07B172 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07B176 CRC                   00000000 (0)\n+07B17A Compressed Size       00000000 (0)\n+07B17E Uncompressed Size     00000000 (0)\n+07B182 Filename Length       0046 (70)\n+07B184 Extra Length          0009 (9)\n+07B186 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7B186: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07B1CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07B1CE   Length              0005 (5)\n+07B1D0   Flags               01 (1) 'Modification'\n+07B1D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07B1D5 PAYLOAD\n+\n+07BAC6 DATA DESCRIPTOR       08074B50 (134695760)\n+07BACA CRC                   619718E2 (1637292258)\n+07BACE Compressed Size       000008F1 (2289)\n+07BAD2 Uncompressed Size     000008F1 (2289)\n+\n+07BAD6 LOCAL HEADER #302     04034B50 (67324752)\n+07BADA Extract Zip Spec      14 (20) '2.0'\n+07BADB Extract OS            00 (0) 'MS-DOS'\n+07BADC General Purpose Flag  0000 (0)\n+07BADE Compression Method    0000 (0) 'Stored'\n+07BAE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07BAE4 CRC                   00000000 (0)\n+07BAE8 Compressed Size       00000000 (0)\n+07BAEC Uncompressed Size     00000000 (0)\n+07BAF0 Filename Length       0026 (38)\n+07BAF2 Extra Length          0009 (9)\n+07BAF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7BAF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07BB1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07BB1C   Length              0005 (5)\n+07BB1E   Flags               01 (1) 'Modification'\n+07BB1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07BB23 LOCAL HEADER #303     04034B50 (67324752)\n+07BB27 Extract Zip Spec      14 (20) '2.0'\n+07BB28 Extract OS            00 (0) 'MS-DOS'\n+07BB29 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07BB2B Compression Method    0000 (0) 'Stored'\n+07BB2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07BB31 CRC                   00000000 (0)\n+07BB35 Compressed Size       00000000 (0)\n+07BB39 Uncompressed Size     00000000 (0)\n+07BB3D Filename Length       0034 (52)\n+07BB3F Extra Length          0009 (9)\n+07BB41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7BB41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07BB75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07BB77   Length              0005 (5)\n+07BB79   Flags               01 (1) 'Modification'\n+07BB7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+07BB7E DATA DESCRIPTOR       08074B50 (134695760)\n+07BB82 CRC                   00000000 (0)\n+07BB86 Compressed Size       00000000 (0)\n+07BB8A Uncompressed Size     00000000 (0)\n+\n+07BB8E LOCAL HEADER #304     04034B50 (67324752)\n+07BB92 Extract Zip Spec      14 (20) '2.0'\n+07BB93 Extract OS            00 (0) 'MS-DOS'\n+07BB94 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+07BB96 Compression Method    0000 (0) 'Stored'\n+07BB98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+07BB9C CRC                   00000000 (0)\n+07BBA0 Compressed Size       00000000 (0)\n+07BBA4 Uncompressed Size     00000000 (0)\n+07BBA8 Filename Length       002D (45)\n+07BBAA Extra Length          0009 (9)\n+07BBAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7BBAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+07BBD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+07BBDB   Length              0005 (5)\n+07BBDD   Flags               01 (1) 'Modification'\n+07BBDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+07BBE2 PAYLOAD\n+\n+08627F DATA DESCRIPTOR       08074B50 (134695760)\n+086283 CRC                   45B97541 (1169782081)\n+086287 Compressed Size       0000A69D (42653)\n+08628B Uncompressed Size     0000A69D (42653)\n+\n+08628F LOCAL HEADER #305     04034B50 (67324752)\n+086293 Extract Zip Spec      14 (20) '2.0'\n+086294 Extract OS            00 (0) 'MS-DOS'\n+086295 General Purpose Flag  0000 (0)\n+086297 Compression Method    0000 (0) 'Stored'\n+086299 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08629D CRC                   00000000 (0)\n+0862A1 Compressed Size       00000000 (0)\n+0862A5 Uncompressed Size     00000000 (0)\n+0862A9 Filename Length       0012 (18)\n+0862AB Extra Length          0009 (9)\n+0862AD Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x862AD: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0862BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0862C1   Length              0005 (5)\n+0862C3   Flags               01 (1) 'Modification'\n+0862C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0862C8 LOCAL HEADER #306     04034B50 (67324752)\n+0862CC Extract Zip Spec      14 (20) '2.0'\n+0862CD Extract OS            00 (0) 'MS-DOS'\n+0862CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0862D0 Compression Method    0000 (0) 'Stored'\n+0862D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0862D6 CRC                   00000000 (0)\n+0862DA Compressed Size       00000000 (0)\n+0862DE Uncompressed Size     00000000 (0)\n+0862E2 Filename Length       0043 (67)\n+0862E4 Extra Length          0009 (9)\n+0862E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x862E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+086329 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08632B   Length              0005 (5)\n+08632D   Flags               01 (1) 'Modification'\n+08632E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+086332 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+                             XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+\n+0863E4 DATA DESCRIPTOR       08074B50 (134695760)\n+0863E8 CRC                   299613D2 (697701330)\n+0863EC Compressed Size       000000B2 (178)\n+0863F0 Uncompressed Size     000000B2 (178)\n+\n+0863F4 LOCAL HEADER #307     04034B50 (67324752)\n+0863F8 Extract Zip Spec      14 (20) '2.0'\n+0863F9 Extract OS            00 (0) 'MS-DOS'\n+0863FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0863FC Compression Method    0000 (0) 'Stored'\n+0863FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+086402 CRC                   00000000 (0)\n+086406 Compressed Size       00000000 (0)\n+08640A Uncompressed Size     00000000 (0)\n+08640E Filename Length       0018 (24)\n+086410 Extra Length          0009 (9)\n+086412 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x86412: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08642A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08642C   Length              0005 (5)\n+08642E   Flags               01 (1) 'Modification'\n+08642F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+086433 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n \n-087422 DATA DESCRIPTOR       08074B50 (134695760)\n-087426 CRC                   6642E973 (1715661171)\n-08742A Compressed Size       000000C8 (200)\n-08742E Uncompressed Size     000000C8 (200)\n-\n-087432 LOCAL HEADER #308     04034B50 (67324752)\n-087436 Extract Zip Spec      14 (20) '2.0'\n-087437 Extract OS            00 (0) 'MS-DOS'\n-087438 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-08743A Compression Method    0000 (0) 'Stored'\n-08743C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-087440 CRC                   00000000 (0)\n-087444 Compressed Size       00000000 (0)\n-087448 Uncompressed Size     00000000 (0)\n-08744C Filename Length       0017 (23)\n-08744E Extra Length          0009 (9)\n-087450 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x87450: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-087467 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-087469   Length              0005 (5)\n-08746B   Flags               01 (1) 'Modification'\n-08746C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-087470 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n+0864FB DATA DESCRIPTOR       08074B50 (134695760)\n+0864FF CRC                   6642E973 (1715661171)\n+086503 Compressed Size       000000C8 (200)\n+086507 Uncompressed Size     000000C8 (200)\n+\n+08650B LOCAL HEADER #308     04034B50 (67324752)\n+08650F Extract Zip Spec      14 (20) '2.0'\n+086510 Extract OS            00 (0) 'MS-DOS'\n+086511 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+086513 Compression Method    0000 (0) 'Stored'\n+086515 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+086519 CRC                   00000000 (0)\n+08651D Compressed Size       00000000 (0)\n+086521 Uncompressed Size     00000000 (0)\n+086525 Filename Length       0017 (23)\n+086527 Extra Length          0009 (9)\n+086529 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x86529: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+086540 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+086542   Length              0005 (5)\n+086544   Flags               01 (1) 'Modification'\n+086545   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+086549 PAYLOAD               XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX\n                              XXXXXXXXXXXX\n \n-087501 DATA DESCRIPTOR       08074B50 (134695760)\n-087505 CRC                   03B2110A (62001418)\n-087509 Compressed Size       00000091 (145)\n-08750D Uncompressed Size     00000091 (145)\n-\n-087511 LOCAL HEADER #309     04034B50 (67324752)\n-087515 Extract Zip Spec      14 (20) '2.0'\n-087516 Extract OS            00 (0) 'MS-DOS'\n-087517 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-087519 Compression Method    0000 (0) 'Stored'\n-08751B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08751F CRC                   00000000 (0)\n-087523 Compressed Size       00000000 (0)\n-087527 Uncompressed Size     00000000 (0)\n-08752B Filename Length       000E (14)\n-08752D Extra Length          0009 (9)\n-08752F Filename              'XXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8752F: Filename 'XXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08753D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08753F   Length              0005 (5)\n-087541   Flags               01 (1) 'Modification'\n-087542   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-087546 PAYLOAD\n-\n-0879BA DATA DESCRIPTOR       08074B50 (134695760)\n-0879BE CRC                   B6BD94DA (3065877722)\n-0879C2 Compressed Size       00000474 (1140)\n-0879C6 Uncompressed Size     00000474 (1140)\n-\n-0879CA LOCAL HEADER #310     04034B50 (67324752)\n-0879CE Extract Zip Spec      14 (20) '2.0'\n-0879CF Extract OS            00 (0) 'MS-DOS'\n-0879D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0879D2 Compression Method    0000 (0) 'Stored'\n-0879D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0879D8 CRC                   00000000 (0)\n-0879DC Compressed Size       00000000 (0)\n-0879E0 Uncompressed Size     00000000 (0)\n-0879E4 Filename Length       0011 (17)\n-0879E6 Extra Length          0009 (9)\n-0879E8 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x879E8: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0879F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0879FB   Length              0005 (5)\n-0879FD   Flags               01 (1) 'Modification'\n-0879FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-087A02 PAYLOAD\n-\n-0884DF DATA DESCRIPTOR       08074B50 (134695760)\n-0884E3 CRC                   0A4703DB (172426203)\n-0884E7 Compressed Size       00000ADD (2781)\n-0884EB Uncompressed Size     00000ADD (2781)\n-\n-0884EF LOCAL HEADER #311     04034B50 (67324752)\n-0884F3 Extract Zip Spec      14 (20) '2.0'\n-0884F4 Extract OS            00 (0) 'MS-DOS'\n-0884F5 General Purpose Flag  0000 (0)\n-0884F7 Compression Method    0000 (0) 'Stored'\n-0884F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0884FD CRC                   00000000 (0)\n-088501 Compressed Size       00000000 (0)\n-088505 Uncompressed Size     00000000 (0)\n-088509 Filename Length       0004 (4)\n-08850B Extra Length          0009 (9)\n-08850D Filename              'XXXX'\n-#\n-# WARNING: Offset 0x8850D: Filename 'XXXX'\n-#          Zero length filename\n-#\n-088511 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-088513   Length              0005 (5)\n-088515   Flags               01 (1) 'Modification'\n-088516   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-08851A LOCAL HEADER #312     04034B50 (67324752)\n-08851E Extract Zip Spec      14 (20) '2.0'\n-08851F Extract OS            00 (0) 'MS-DOS'\n-088520 General Purpose Flag  0000 (0)\n-088522 Compression Method    0000 (0) 'Stored'\n-088524 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-088528 CRC                   00000000 (0)\n-08852C Compressed Size       00000000 (0)\n-088530 Uncompressed Size     00000000 (0)\n-088534 Filename Length       000C (12)\n-088536 Extra Length          0009 (9)\n-088538 Filename              'XXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x88538: Filename 'XXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-088544 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-088546   Length              0005 (5)\n-088548   Flags               01 (1) 'Modification'\n-088549   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-08854D LOCAL HEADER #313     04034B50 (67324752)\n-088551 Extract Zip Spec      14 (20) '2.0'\n-088552 Extract OS            00 (0) 'MS-DOS'\n-088553 General Purpose Flag  0000 (0)\n-088555 Compression Method    0000 (0) 'Stored'\n-088557 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08855B CRC                   00000000 (0)\n-08855F Compressed Size       00000000 (0)\n-088563 Uncompressed Size     00000000 (0)\n-088567 Filename Length       0010 (16)\n-088569 Extra Length          0009 (9)\n-08856B Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8856B: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08857B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08857D   Length              0005 (5)\n-08857F   Flags               01 (1) 'Modification'\n-088580   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-088584 LOCAL HEADER #314     04034B50 (67324752)\n-088588 Extract Zip Spec      14 (20) '2.0'\n-088589 Extract OS            00 (0) 'MS-DOS'\n-08858A General Purpose Flag  0000 (0)\n-08858C Compression Method    0000 (0) 'Stored'\n-08858E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-088592 CRC                   00000000 (0)\n-088596 Compressed Size       00000000 (0)\n-08859A Uncompressed Size     00000000 (0)\n-08859E Filename Length       0017 (23)\n-0885A0 Extra Length          0009 (9)\n-0885A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x885A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0885B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0885BB   Length              0005 (5)\n-0885BD   Flags               01 (1) 'Modification'\n-0885BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0885C2 LOCAL HEADER #315     04034B50 (67324752)\n-0885C6 Extract Zip Spec      14 (20) '2.0'\n-0885C7 Extract OS            00 (0) 'MS-DOS'\n-0885C8 General Purpose Flag  0000 (0)\n-0885CA Compression Method    0000 (0) 'Stored'\n-0885CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0885D0 CRC                   00000000 (0)\n-0885D4 Compressed Size       00000000 (0)\n-0885D8 Uncompressed Size     00000000 (0)\n-0885DC Filename Length       001F (31)\n-0885DE Extra Length          0009 (9)\n-0885E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x885E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0885FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-088601   Length              0005 (5)\n-088603   Flags               01 (1) 'Modification'\n-088604   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-088608 LOCAL HEADER #316     04034B50 (67324752)\n-08860C Extract Zip Spec      14 (20) '2.0'\n-08860D Extract OS            00 (0) 'MS-DOS'\n-08860E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-088610 Compression Method    0000 (0) 'Stored'\n-088612 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-088616 CRC                   00000000 (0)\n-08861A Compressed Size       00000000 (0)\n-08861E Uncompressed Size     00000000 (0)\n-088622 Filename Length       0034 (52)\n-088624 Extra Length          0009 (9)\n-088626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x88626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08865A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08865C   Length              0005 (5)\n-08865E   Flags               01 (1) 'Modification'\n-08865F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-088663 PAYLOAD\n-\n-0891A4 DATA DESCRIPTOR       08074B50 (134695760)\n-0891A8 CRC                   CB19F474 (3407475828)\n-0891AC Compressed Size       00000B41 (2881)\n-0891B0 Uncompressed Size     00000B41 (2881)\n-\n-0891B4 LOCAL HEADER #317     04034B50 (67324752)\n-0891B8 Extract Zip Spec      14 (20) '2.0'\n-0891B9 Extract OS            00 (0) 'MS-DOS'\n-0891BA General Purpose Flag  0000 (0)\n-0891BC Compression Method    0000 (0) 'Stored'\n-0891BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0891C2 CRC                   00000000 (0)\n-0891C6 Compressed Size       00000000 (0)\n-0891CA Uncompressed Size     00000000 (0)\n-0891CE Filename Length       0022 (34)\n-0891D0 Extra Length          0009 (9)\n-0891D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x891D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0891F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0891F6   Length              0005 (5)\n-0891F8   Flags               01 (1) 'Modification'\n-0891F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-0891FD LOCAL HEADER #318     04034B50 (67324752)\n-089201 Extract Zip Spec      14 (20) '2.0'\n-089202 Extract OS            00 (0) 'MS-DOS'\n-089203 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-089205 Compression Method    0000 (0) 'Stored'\n-089207 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08920B CRC                   00000000 (0)\n-08920F Compressed Size       00000000 (0)\n-089213 Uncompressed Size     00000000 (0)\n-089217 Filename Length       003B (59)\n-089219 Extra Length          0009 (9)\n-08921B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8921B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-089256 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-089258   Length              0005 (5)\n-08925A   Flags               01 (1) 'Modification'\n-08925B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08925F PAYLOAD\n-\n-08A812 DATA DESCRIPTOR       08074B50 (134695760)\n-08A816 CRC                   273E139A (658379674)\n-08A81A Compressed Size       000015B3 (5555)\n-08A81E Uncompressed Size     000015B3 (5555)\n-\n-08A822 LOCAL HEADER #319     04034B50 (67324752)\n-08A826 Extract Zip Spec      14 (20) '2.0'\n-08A827 Extract OS            00 (0) 'MS-DOS'\n-08A828 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-08A82A Compression Method    0000 (0) 'Stored'\n-08A82C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08A830 CRC                   00000000 (0)\n-08A834 Compressed Size       00000000 (0)\n-08A838 Uncompressed Size     00000000 (0)\n-08A83C Filename Length       003B (59)\n-08A83E Extra Length          0009 (9)\n-08A840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8A840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08A87B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08A87D   Length              0005 (5)\n-08A87F   Flags               01 (1) 'Modification'\n-08A880   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08A884 PAYLOAD\n-\n-08D54E DATA DESCRIPTOR       08074B50 (134695760)\n-08D552 CRC                   02D2B2EB (47362795)\n-08D556 Compressed Size       00002CCA (11466)\n-08D55A Uncompressed Size     00002CCA (11466)\n-\n-08D55E LOCAL HEADER #320     04034B50 (67324752)\n-08D562 Extract Zip Spec      14 (20) '2.0'\n-08D563 Extract OS            00 (0) 'MS-DOS'\n-08D564 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-08D566 Compression Method    0000 (0) 'Stored'\n-08D568 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-08D56C CRC                   00000000 (0)\n-08D570 Compressed Size       00000000 (0)\n-08D574 Uncompressed Size     00000000 (0)\n-08D578 Filename Length       003C (60)\n-08D57A Extra Length          0009 (9)\n-08D57C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x8D57C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-08D5B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-08D5BA   Length              0005 (5)\n-08D5BC   Flags               01 (1) 'Modification'\n-08D5BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-08D5C1 PAYLOAD\n-\n-090B6A DATA DESCRIPTOR       08074B50 (134695760)\n-090B6E CRC                   37CC1834 (936122420)\n-090B72 Compressed Size       000035A9 (13737)\n-090B76 Uncompressed Size     000035A9 (13737)\n-\n-090B7A LOCAL HEADER #321     04034B50 (67324752)\n-090B7E Extract Zip Spec      14 (20) '2.0'\n-090B7F Extract OS            00 (0) 'MS-DOS'\n-090B80 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-090B82 Compression Method    0000 (0) 'Stored'\n-090B84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-090B88 CRC                   00000000 (0)\n-090B8C Compressed Size       00000000 (0)\n-090B90 Uncompressed Size     00000000 (0)\n-090B94 Filename Length       003E (62)\n-090B96 Extra Length          0009 (9)\n-090B98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x90B98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-090BD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-090BD8   Length              0005 (5)\n-090BDA   Flags               01 (1) 'Modification'\n-090BDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-090BDF PAYLOAD\n-\n-091647 DATA DESCRIPTOR       08074B50 (134695760)\n-09164B CRC                   77DBD9E2 (2010896866)\n-09164F Compressed Size       00000A68 (2664)\n-091653 Uncompressed Size     00000A68 (2664)\n-\n-091657 LOCAL HEADER #322     04034B50 (67324752)\n-09165B Extract Zip Spec      14 (20) '2.0'\n-09165C Extract OS            00 (0) 'MS-DOS'\n-09165D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-09165F Compression Method    0000 (0) 'Stored'\n-091661 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-091665 CRC                   00000000 (0)\n-091669 Compressed Size       00000000 (0)\n-09166D Uncompressed Size     00000000 (0)\n-091671 Filename Length       003F (63)\n-091673 Extra Length          0009 (9)\n-091675 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x91675: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0916B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0916B6   Length              0005 (5)\n-0916B8   Flags               01 (1) 'Modification'\n-0916B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0916BD PAYLOAD\n-\n-09217D DATA DESCRIPTOR       08074B50 (134695760)\n-092181 CRC                   060EB252 (101626450)\n-092185 Compressed Size       00000AC0 (2752)\n-092189 Uncompressed Size     00000AC0 (2752)\n-\n-09218D LOCAL HEADER #323     04034B50 (67324752)\n-092191 Extract Zip Spec      14 (20) '2.0'\n-092192 Extract OS            00 (0) 'MS-DOS'\n-092193 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-092195 Compression Method    0000 (0) 'Stored'\n-092197 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09219B CRC                   00000000 (0)\n-09219F Compressed Size       00000000 (0)\n-0921A3 Uncompressed Size     00000000 (0)\n-0921A7 Filename Length       003E (62)\n-0921A9 Extra Length          0009 (9)\n-0921AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x921AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0921E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0921EB   Length              0005 (5)\n-0921ED   Flags               01 (1) 'Modification'\n-0921EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0921F2 PAYLOAD\n-\n-092D31 DATA DESCRIPTOR       08074B50 (134695760)\n-092D35 CRC                   EF9589B0 (4019554736)\n-092D39 Compressed Size       00000B3F (2879)\n-092D3D Uncompressed Size     00000B3F (2879)\n-\n-092D41 LOCAL HEADER #324     04034B50 (67324752)\n-092D45 Extract Zip Spec      14 (20) '2.0'\n-092D46 Extract OS            00 (0) 'MS-DOS'\n-092D47 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-092D49 Compression Method    0000 (0) 'Stored'\n-092D4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-092D4F CRC                   00000000 (0)\n-092D53 Compressed Size       00000000 (0)\n-092D57 Uncompressed Size     00000000 (0)\n-092D5B Filename Length       0039 (57)\n-092D5D Extra Length          0009 (9)\n-092D5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x92D5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-092D98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-092D9A   Length              0005 (5)\n-092D9C   Flags               01 (1) 'Modification'\n-092D9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-092DA1 PAYLOAD\n-\n-09380F DATA DESCRIPTOR       08074B50 (134695760)\n-093813 CRC                   06019AC3 (100768451)\n-093817 Compressed Size       00000A6E (2670)\n-09381B Uncompressed Size     00000A6E (2670)\n-\n-09381F LOCAL HEADER #325     04034B50 (67324752)\n-093823 Extract Zip Spec      14 (20) '2.0'\n-093824 Extract OS            00 (0) 'MS-DOS'\n-093825 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-093827 Compression Method    0000 (0) 'Stored'\n-093829 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09382D CRC                   00000000 (0)\n-093831 Compressed Size       00000000 (0)\n-093835 Uncompressed Size     00000000 (0)\n-093839 Filename Length       0040 (64)\n-09383B Extra Length          0009 (9)\n-09383D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9383D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09387D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09387F   Length              0005 (5)\n-093881   Flags               01 (1) 'Modification'\n-093882   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-093886 PAYLOAD\n-\n-09442F DATA DESCRIPTOR       08074B50 (134695760)\n-094433 CRC                   D3EA2D1D (3555339549)\n-094437 Compressed Size       00000BA9 (2985)\n-09443B Uncompressed Size     00000BA9 (2985)\n-\n-09443F LOCAL HEADER #326     04034B50 (67324752)\n-094443 Extract Zip Spec      14 (20) '2.0'\n-094444 Extract OS            00 (0) 'MS-DOS'\n-094445 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-094447 Compression Method    0000 (0) 'Stored'\n-094449 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09444D CRC                   00000000 (0)\n-094451 Compressed Size       00000000 (0)\n-094455 Uncompressed Size     00000000 (0)\n-094459 Filename Length       0038 (56)\n-09445B Extra Length          0009 (9)\n-09445D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9445D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-094495 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-094497   Length              0005 (5)\n-094499   Flags               01 (1) 'Modification'\n-09449A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09449E PAYLOAD\n-\n-095819 DATA DESCRIPTOR       08074B50 (134695760)\n-09581D CRC                   B1D0AB16 (2983242518)\n-095821 Compressed Size       0000137B (4987)\n-095825 Uncompressed Size     0000137B (4987)\n-\n-095829 LOCAL HEADER #327     04034B50 (67324752)\n-09582D Extract Zip Spec      14 (20) '2.0'\n-09582E Extract OS            00 (0) 'MS-DOS'\n-09582F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-095831 Compression Method    0000 (0) 'Stored'\n-095833 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-095837 CRC                   00000000 (0)\n-09583B Compressed Size       00000000 (0)\n-09583F Uncompressed Size     00000000 (0)\n-095843 Filename Length       0036 (54)\n-095845 Extra Length          0009 (9)\n-095847 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x95847: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09587D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09587F   Length              0005 (5)\n-095881   Flags               01 (1) 'Modification'\n-095882   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-095886 PAYLOAD\n-\n-0965B2 DATA DESCRIPTOR       08074B50 (134695760)\n-0965B6 CRC                   D18F68BE (3515836606)\n-0965BA Compressed Size       00000D2C (3372)\n-0965BE Uncompressed Size     00000D2C (3372)\n-\n-0965C2 LOCAL HEADER #328     04034B50 (67324752)\n-0965C6 Extract Zip Spec      14 (20) '2.0'\n-0965C7 Extract OS            00 (0) 'MS-DOS'\n-0965C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0965CA Compression Method    0000 (0) 'Stored'\n-0965CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0965D0 CRC                   00000000 (0)\n-0965D4 Compressed Size       00000000 (0)\n-0965D8 Uncompressed Size     00000000 (0)\n-0965DC Filename Length       0038 (56)\n-0965DE Extra Length          0009 (9)\n-0965E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x965E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-096618 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09661A   Length              0005 (5)\n-09661C   Flags               01 (1) 'Modification'\n-09661D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-096621 PAYLOAD\n-\n-09AFFA DATA DESCRIPTOR       08074B50 (134695760)\n-09AFFE CRC                   4FA522A8 (1336222376)\n-09B002 Compressed Size       000049D9 (18905)\n-09B006 Uncompressed Size     000049D9 (18905)\n-\n-09B00A LOCAL HEADER #329     04034B50 (67324752)\n-09B00E Extract Zip Spec      14 (20) '2.0'\n-09B00F Extract OS            00 (0) 'MS-DOS'\n-09B010 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-09B012 Compression Method    0000 (0) 'Stored'\n-09B014 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09B018 CRC                   00000000 (0)\n-09B01C Compressed Size       00000000 (0)\n-09B020 Uncompressed Size     00000000 (0)\n-09B024 Filename Length       0036 (54)\n-09B026 Extra Length          0009 (9)\n-09B028 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9B028: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09B05E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09B060   Length              0005 (5)\n-09B062   Flags               01 (1) 'Modification'\n-09B063   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09B067 PAYLOAD\n-\n-09D36E DATA DESCRIPTOR       08074B50 (134695760)\n-09D372 CRC                   CA81C016 (3397500950)\n-09D376 Compressed Size       00002307 (8967)\n-09D37A Uncompressed Size     00002307 (8967)\n-\n-09D37E LOCAL HEADER #330     04034B50 (67324752)\n-09D382 Extract Zip Spec      14 (20) '2.0'\n-09D383 Extract OS            00 (0) 'MS-DOS'\n-09D384 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-09D386 Compression Method    0000 (0) 'Stored'\n-09D388 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09D38C CRC                   00000000 (0)\n-09D390 Compressed Size       00000000 (0)\n-09D394 Uncompressed Size     00000000 (0)\n-09D398 Filename Length       0037 (55)\n-09D39A Extra Length          0009 (9)\n-09D39C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9D39C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09D3D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09D3D5   Length              0005 (5)\n-09D3D7   Flags               01 (1) 'Modification'\n-09D3D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09D3DC PAYLOAD\n-\n-09F72E DATA DESCRIPTOR       08074B50 (134695760)\n-09F732 CRC                   1BE0DE32 (467721778)\n-09F736 Compressed Size       00002352 (9042)\n-09F73A Uncompressed Size     00002352 (9042)\n-\n-09F73E LOCAL HEADER #331     04034B50 (67324752)\n-09F742 Extract Zip Spec      14 (20) '2.0'\n-09F743 Extract OS            00 (0) 'MS-DOS'\n-09F744 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-09F746 Compression Method    0000 (0) 'Stored'\n-09F748 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-09F74C CRC                   00000000 (0)\n-09F750 Compressed Size       00000000 (0)\n-09F754 Uncompressed Size     00000000 (0)\n-09F758 Filename Length       0035 (53)\n-09F75A Extra Length          0009 (9)\n-09F75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x9F75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-09F791 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-09F793   Length              0005 (5)\n-09F795   Flags               01 (1) 'Modification'\n-09F796   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-09F79A PAYLOAD\n-\n-0A1E13 DATA DESCRIPTOR       08074B50 (134695760)\n-0A1E17 CRC                   E0540578 (3763602808)\n-0A1E1B Compressed Size       00002679 (9849)\n-0A1E1F Uncompressed Size     00002679 (9849)\n-\n-0A1E23 LOCAL HEADER #332     04034B50 (67324752)\n-0A1E27 Extract Zip Spec      14 (20) '2.0'\n-0A1E28 Extract OS            00 (0) 'MS-DOS'\n-0A1E29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A1E2B Compression Method    0000 (0) 'Stored'\n-0A1E2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A1E31 CRC                   00000000 (0)\n-0A1E35 Compressed Size       00000000 (0)\n-0A1E39 Uncompressed Size     00000000 (0)\n-0A1E3D Filename Length       003C (60)\n-0A1E3F Extra Length          0009 (9)\n-0A1E41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA1E41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A1E7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A1E7F   Length              0005 (5)\n-0A1E81   Flags               01 (1) 'Modification'\n-0A1E82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A1E86 PAYLOAD\n-\n-0A2BA6 DATA DESCRIPTOR       08074B50 (134695760)\n-0A2BAA CRC                   812FC9F0 (2167392752)\n-0A2BAE Compressed Size       00000D20 (3360)\n-0A2BB2 Uncompressed Size     00000D20 (3360)\n-\n-0A2BB6 LOCAL HEADER #333     04034B50 (67324752)\n-0A2BBA Extract Zip Spec      14 (20) '2.0'\n-0A2BBB Extract OS            00 (0) 'MS-DOS'\n-0A2BBC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A2BBE Compression Method    0000 (0) 'Stored'\n-0A2BC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A2BC4 CRC                   00000000 (0)\n-0A2BC8 Compressed Size       00000000 (0)\n-0A2BCC Uncompressed Size     00000000 (0)\n-0A2BD0 Filename Length       003D (61)\n-0A2BD2 Extra Length          0009 (9)\n-0A2BD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA2BD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A2C11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A2C13   Length              0005 (5)\n-0A2C15   Flags               01 (1) 'Modification'\n-0A2C16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A2C1A PAYLOAD\n-\n-0A3085 DATA DESCRIPTOR       08074B50 (134695760)\n-0A3089 CRC                   E6FF39F2 (3875486194)\n-0A308D Compressed Size       0000046B (1131)\n-0A3091 Uncompressed Size     0000046B (1131)\n-\n-0A3095 LOCAL HEADER #334     04034B50 (67324752)\n-0A3099 Extract Zip Spec      14 (20) '2.0'\n-0A309A Extract OS            00 (0) 'MS-DOS'\n-0A309B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A309D Compression Method    0000 (0) 'Stored'\n-0A309F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A30A3 CRC                   00000000 (0)\n-0A30A7 Compressed Size       00000000 (0)\n-0A30AB Uncompressed Size     00000000 (0)\n-0A30AF Filename Length       0035 (53)\n-0A30B1 Extra Length          0009 (9)\n-0A30B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA30B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A30E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A30EA   Length              0005 (5)\n-0A30EC   Flags               01 (1) 'Modification'\n-0A30ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A30F1 PAYLOAD\n-\n-0A3D7C DATA DESCRIPTOR       08074B50 (134695760)\n-0A3D80 CRC                   0827F1CF (136835535)\n-0A3D84 Compressed Size       00000C8B (3211)\n-0A3D88 Uncompressed Size     00000C8B (3211)\n-\n-0A3D8C LOCAL HEADER #335     04034B50 (67324752)\n-0A3D90 Extract Zip Spec      14 (20) '2.0'\n-0A3D91 Extract OS            00 (0) 'MS-DOS'\n-0A3D92 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A3D94 Compression Method    0000 (0) 'Stored'\n-0A3D96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A3D9A CRC                   00000000 (0)\n-0A3D9E Compressed Size       00000000 (0)\n-0A3DA2 Uncompressed Size     00000000 (0)\n-0A3DA6 Filename Length       0039 (57)\n-0A3DA8 Extra Length          0009 (9)\n-0A3DAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA3DAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A3DE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A3DE5   Length              0005 (5)\n-0A3DE7   Flags               01 (1) 'Modification'\n-0A3DE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A3DEC PAYLOAD\n-\n-0A496C DATA DESCRIPTOR       08074B50 (134695760)\n-0A4970 CRC                   DB2E2C1B (3677236251)\n-0A4974 Compressed Size       00000B80 (2944)\n-0A4978 Uncompressed Size     00000B80 (2944)\n-\n-0A497C LOCAL HEADER #336     04034B50 (67324752)\n-0A4980 Extract Zip Spec      14 (20) '2.0'\n-0A4981 Extract OS            00 (0) 'MS-DOS'\n-0A4982 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A4984 Compression Method    0000 (0) 'Stored'\n-0A4986 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A498A CRC                   00000000 (0)\n-0A498E Compressed Size       00000000 (0)\n-0A4992 Uncompressed Size     00000000 (0)\n-0A4996 Filename Length       0038 (56)\n-0A4998 Extra Length          0009 (9)\n-0A499A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA499A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A49D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A49D4   Length              0005 (5)\n-0A49D6   Flags               01 (1) 'Modification'\n-0A49D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A49DB PAYLOAD\n-\n-0A5E46 DATA DESCRIPTOR       08074B50 (134695760)\n-0A5E4A CRC                   BB4C70B3 (3142348979)\n-0A5E4E Compressed Size       0000146B (5227)\n-0A5E52 Uncompressed Size     0000146B (5227)\n-\n-0A5E56 LOCAL HEADER #337     04034B50 (67324752)\n-0A5E5A Extract Zip Spec      14 (20) '2.0'\n-0A5E5B Extract OS            00 (0) 'MS-DOS'\n-0A5E5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A5E5E Compression Method    0000 (0) 'Stored'\n-0A5E60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A5E64 CRC                   00000000 (0)\n-0A5E68 Compressed Size       00000000 (0)\n-0A5E6C Uncompressed Size     00000000 (0)\n-0A5E70 Filename Length       0033 (51)\n-0A5E72 Extra Length          0009 (9)\n-0A5E74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA5E74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A5EA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A5EA9   Length              0005 (5)\n-0A5EAB   Flags               01 (1) 'Modification'\n-0A5EAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A5EB0 PAYLOAD\n-\n-0A7313 DATA DESCRIPTOR       08074B50 (134695760)\n-0A7317 CRC                   5603C310 (1443087120)\n-0A731B Compressed Size       00001463 (5219)\n-0A731F Uncompressed Size     00001463 (5219)\n-\n-0A7323 LOCAL HEADER #338     04034B50 (67324752)\n-0A7327 Extract Zip Spec      14 (20) '2.0'\n-0A7328 Extract OS            00 (0) 'MS-DOS'\n-0A7329 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A732B Compression Method    0000 (0) 'Stored'\n-0A732D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A7331 CRC                   00000000 (0)\n-0A7335 Compressed Size       00000000 (0)\n-0A7339 Uncompressed Size     00000000 (0)\n-0A733D Filename Length       0036 (54)\n-0A733F Extra Length          0009 (9)\n-0A7341 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA7341: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A7377 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A7379   Length              0005 (5)\n-0A737B   Flags               01 (1) 'Modification'\n-0A737C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A7380 PAYLOAD\n-\n-0A7FF9 DATA DESCRIPTOR       08074B50 (134695760)\n-0A7FFD CRC                   56DBC793 (1457244051)\n-0A8001 Compressed Size       00000C79 (3193)\n-0A8005 Uncompressed Size     00000C79 (3193)\n-\n-0A8009 LOCAL HEADER #339     04034B50 (67324752)\n-0A800D Extract Zip Spec      14 (20) '2.0'\n-0A800E Extract OS            00 (0) 'MS-DOS'\n-0A800F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A8011 Compression Method    0000 (0) 'Stored'\n-0A8013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A8017 CRC                   00000000 (0)\n-0A801B Compressed Size       00000000 (0)\n-0A801F Uncompressed Size     00000000 (0)\n-0A8023 Filename Length       003D (61)\n-0A8025 Extra Length          0009 (9)\n-0A8027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA8027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A8064 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A8066   Length              0005 (5)\n-0A8068   Flags               01 (1) 'Modification'\n-0A8069   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A806D PAYLOAD\n-\n-0A9565 DATA DESCRIPTOR       08074B50 (134695760)\n-0A9569 CRC                   1549C790 (357156752)\n-0A956D Compressed Size       000014F8 (5368)\n-0A9571 Uncompressed Size     000014F8 (5368)\n-\n-0A9575 LOCAL HEADER #340     04034B50 (67324752)\n-0A9579 Extract Zip Spec      14 (20) '2.0'\n-0A957A Extract OS            00 (0) 'MS-DOS'\n-0A957B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0A957D Compression Method    0000 (0) 'Stored'\n-0A957F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0A9583 CRC                   00000000 (0)\n-0A9587 Compressed Size       00000000 (0)\n-0A958B Uncompressed Size     00000000 (0)\n-0A958F Filename Length       003B (59)\n-0A9591 Extra Length          0009 (9)\n-0A9593 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xA9593: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0A95CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0A95D0   Length              0005 (5)\n-0A95D2   Flags               01 (1) 'Modification'\n-0A95D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0A95D7 PAYLOAD\n-\n-0AA364 DATA DESCRIPTOR       08074B50 (134695760)\n-0AA368 CRC                   D0079E8D (3490160269)\n-0AA36C Compressed Size       00000D8D (3469)\n-0AA370 Uncompressed Size     00000D8D (3469)\n-\n-0AA374 LOCAL HEADER #341     04034B50 (67324752)\n-0AA378 Extract Zip Spec      14 (20) '2.0'\n-0AA379 Extract OS            00 (0) 'MS-DOS'\n-0AA37A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0AA37C Compression Method    0000 (0) 'Stored'\n-0AA37E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AA382 CRC                   00000000 (0)\n-0AA386 Compressed Size       00000000 (0)\n-0AA38A Uncompressed Size     00000000 (0)\n-0AA38E Filename Length       0030 (48)\n-0AA390 Extra Length          0009 (9)\n-0AA392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAA392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AA3C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AA3C4   Length              0005 (5)\n-0AA3C6   Flags               01 (1) 'Modification'\n-0AA3C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AA3CB PAYLOAD\n-\n-0ABB88 DATA DESCRIPTOR       08074B50 (134695760)\n-0ABB8C CRC                   7728EBEC (1999170540)\n-0ABB90 Compressed Size       000017BD (6077)\n-0ABB94 Uncompressed Size     000017BD (6077)\n-\n-0ABB98 LOCAL HEADER #342     04034B50 (67324752)\n-0ABB9C Extract Zip Spec      14 (20) '2.0'\n-0ABB9D Extract OS            00 (0) 'MS-DOS'\n-0ABB9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0ABBA0 Compression Method    0000 (0) 'Stored'\n-0ABBA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0ABBA6 CRC                   00000000 (0)\n-0ABBAA Compressed Size       00000000 (0)\n-0ABBAE Uncompressed Size     00000000 (0)\n-0ABBB2 Filename Length       0033 (51)\n-0ABBB4 Extra Length          0009 (9)\n-0ABBB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xABBB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0ABBE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0ABBEB   Length              0005 (5)\n-0ABBED   Flags               01 (1) 'Modification'\n-0ABBEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0ABBF2 PAYLOAD\n-\n-0ACAD7 DATA DESCRIPTOR       08074B50 (134695760)\n-0ACADB CRC                   27E32CDA (669199578)\n-0ACADF Compressed Size       00000EE5 (3813)\n-0ACAE3 Uncompressed Size     00000EE5 (3813)\n-\n-0ACAE7 LOCAL HEADER #343     04034B50 (67324752)\n-0ACAEB Extract Zip Spec      14 (20) '2.0'\n-0ACAEC Extract OS            00 (0) 'MS-DOS'\n-0ACAED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0ACAEF Compression Method    0000 (0) 'Stored'\n-0ACAF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0ACAF5 CRC                   00000000 (0)\n-0ACAF9 Compressed Size       00000000 (0)\n-0ACAFD Uncompressed Size     00000000 (0)\n-0ACB01 Filename Length       0037 (55)\n-0ACB03 Extra Length          0009 (9)\n-0ACB05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xACB05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0ACB3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0ACB3E   Length              0005 (5)\n-0ACB40   Flags               01 (1) 'Modification'\n-0ACB41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0ACB45 PAYLOAD\n-\n-0ADC51 DATA DESCRIPTOR       08074B50 (134695760)\n-0ADC55 CRC                   723EDDAE (1916722606)\n-0ADC59 Compressed Size       0000110C (4364)\n-0ADC5D Uncompressed Size     0000110C (4364)\n-\n-0ADC61 LOCAL HEADER #344     04034B50 (67324752)\n-0ADC65 Extract Zip Spec      14 (20) '2.0'\n-0ADC66 Extract OS            00 (0) 'MS-DOS'\n-0ADC67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0ADC69 Compression Method    0000 (0) 'Stored'\n-0ADC6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0ADC6F CRC                   00000000 (0)\n-0ADC73 Compressed Size       00000000 (0)\n-0ADC77 Uncompressed Size     00000000 (0)\n-0ADC7B Filename Length       0035 (53)\n-0ADC7D Extra Length          0009 (9)\n-0ADC7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xADC7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0ADCB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0ADCB6   Length              0005 (5)\n-0ADCB8   Flags               01 (1) 'Modification'\n-0ADCB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0ADCBD PAYLOAD\n-\n-0AEB5B DATA DESCRIPTOR       08074B50 (134695760)\n-0AEB5F CRC                   B1CE4173 (2983084403)\n-0AEB63 Compressed Size       00000E9E (3742)\n-0AEB67 Uncompressed Size     00000E9E (3742)\n-\n-0AEB6B LOCAL HEADER #345     04034B50 (67324752)\n-0AEB6F Extract Zip Spec      14 (20) '2.0'\n-0AEB70 Extract OS            00 (0) 'MS-DOS'\n-0AEB71 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0AEB73 Compression Method    0000 (0) 'Stored'\n-0AEB75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AEB79 CRC                   00000000 (0)\n-0AEB7D Compressed Size       00000000 (0)\n-0AEB81 Uncompressed Size     00000000 (0)\n-0AEB85 Filename Length       0035 (53)\n-0AEB87 Extra Length          0009 (9)\n-0AEB89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAEB89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AEBBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AEBC0   Length              0005 (5)\n-0AEBC2   Flags               01 (1) 'Modification'\n-0AEBC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AEBC7 PAYLOAD\n-\n-0AF116 DATA DESCRIPTOR       08074B50 (134695760)\n-0AF11A CRC                   764B1E75 (1984634485)\n-0AF11E Compressed Size       0000054F (1359)\n-0AF122 Uncompressed Size     0000054F (1359)\n-\n-0AF126 LOCAL HEADER #346     04034B50 (67324752)\n-0AF12A Extract Zip Spec      14 (20) '2.0'\n-0AF12B Extract OS            00 (0) 'MS-DOS'\n-0AF12C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0AF12E Compression Method    0000 (0) 'Stored'\n-0AF130 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AF134 CRC                   00000000 (0)\n-0AF138 Compressed Size       00000000 (0)\n-0AF13C Uncompressed Size     00000000 (0)\n-0AF140 Filename Length       0038 (56)\n-0AF142 Extra Length          0009 (9)\n-0AF144 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAF144: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AF17C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AF17E   Length              0005 (5)\n-0AF180   Flags               01 (1) 'Modification'\n-0AF181   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AF185 PAYLOAD\n-\n-0AF890 DATA DESCRIPTOR       08074B50 (134695760)\n-0AF894 CRC                   DA561E50 (3663076944)\n-0AF898 Compressed Size       0000070B (1803)\n-0AF89C Uncompressed Size     0000070B (1803)\n-\n-0AF8A0 LOCAL HEADER #347     04034B50 (67324752)\n-0AF8A4 Extract Zip Spec      14 (20) '2.0'\n-0AF8A5 Extract OS            00 (0) 'MS-DOS'\n-0AF8A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0AF8A8 Compression Method    0000 (0) 'Stored'\n-0AF8AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0AF8AE CRC                   00000000 (0)\n-0AF8B2 Compressed Size       00000000 (0)\n-0AF8B6 Uncompressed Size     00000000 (0)\n-0AF8BA Filename Length       003E (62)\n-0AF8BC Extra Length          0009 (9)\n-0AF8BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xAF8BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0AF8FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0AF8FE   Length              0005 (5)\n-0AF900   Flags               01 (1) 'Modification'\n-0AF901   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0AF905 PAYLOAD\n-\n-0B04C0 DATA DESCRIPTOR       08074B50 (134695760)\n-0B04C4 CRC                   D1926FA5 (3516034981)\n-0B04C8 Compressed Size       00000BBB (3003)\n-0B04CC Uncompressed Size     00000BBB (3003)\n-\n-0B04D0 LOCAL HEADER #348     04034B50 (67324752)\n-0B04D4 Extract Zip Spec      14 (20) '2.0'\n-0B04D5 Extract OS            00 (0) 'MS-DOS'\n-0B04D6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0B04D8 Compression Method    0000 (0) 'Stored'\n-0B04DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B04DE CRC                   00000000 (0)\n-0B04E2 Compressed Size       00000000 (0)\n-0B04E6 Uncompressed Size     00000000 (0)\n-0B04EA Filename Length       003C (60)\n-0B04EC Extra Length          0009 (9)\n-0B04EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB04EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B052A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B052C   Length              0005 (5)\n-0B052E   Flags               01 (1) 'Modification'\n-0B052F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B0533 PAYLOAD\n-\n-0B1146 DATA DESCRIPTOR       08074B50 (134695760)\n-0B114A CRC                   4F5E3DED (1331576301)\n-0B114E Compressed Size       00000C13 (3091)\n-0B1152 Uncompressed Size     00000C13 (3091)\n-\n-0B1156 LOCAL HEADER #349     04034B50 (67324752)\n-0B115A Extract Zip Spec      14 (20) '2.0'\n-0B115B Extract OS            00 (0) 'MS-DOS'\n-0B115C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0B115E Compression Method    0000 (0) 'Stored'\n-0B1160 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B1164 CRC                   00000000 (0)\n-0B1168 Compressed Size       00000000 (0)\n-0B116C Uncompressed Size     00000000 (0)\n-0B1170 Filename Length       0036 (54)\n-0B1172 Extra Length          0009 (9)\n-0B1174 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB1174: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B11AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B11AC   Length              0005 (5)\n-0B11AE   Flags               01 (1) 'Modification'\n-0B11AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B11B3 PAYLOAD\n-\n-0B1B42 DATA DESCRIPTOR       08074B50 (134695760)\n-0B1B46 CRC                   C66F6586 (3329189254)\n-0B1B4A Compressed Size       0000098F (2447)\n-0B1B4E Uncompressed Size     0000098F (2447)\n-\n-0B1B52 LOCAL HEADER #350     04034B50 (67324752)\n-0B1B56 Extract Zip Spec      14 (20) '2.0'\n-0B1B57 Extract OS            00 (0) 'MS-DOS'\n-0B1B58 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0B1B5A Compression Method    0000 (0) 'Stored'\n-0B1B5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B1B60 CRC                   00000000 (0)\n-0B1B64 Compressed Size       00000000 (0)\n-0B1B68 Uncompressed Size     00000000 (0)\n-0B1B6C Filename Length       003B (59)\n-0B1B6E Extra Length          0009 (9)\n-0B1B70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB1B70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B1BAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B1BAD   Length              0005 (5)\n-0B1BAF   Flags               01 (1) 'Modification'\n-0B1BB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B1BB4 PAYLOAD\n-\n-0B2A93 DATA DESCRIPTOR       08074B50 (134695760)\n-0B2A97 CRC                   9EFE4E67 (2667466343)\n-0B2A9B Compressed Size       00000EDF (3807)\n-0B2A9F Uncompressed Size     00000EDF (3807)\n-\n-0B2AA3 LOCAL HEADER #351     04034B50 (67324752)\n-0B2AA7 Extract Zip Spec      14 (20) '2.0'\n-0B2AA8 Extract OS            00 (0) 'MS-DOS'\n-0B2AA9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0B2AAB Compression Method    0000 (0) 'Stored'\n-0B2AAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B2AB1 CRC                   00000000 (0)\n-0B2AB5 Compressed Size       00000000 (0)\n-0B2AB9 Uncompressed Size     00000000 (0)\n-0B2ABD Filename Length       0038 (56)\n-0B2ABF Extra Length          0009 (9)\n-0B2AC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB2AC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B2AF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B2AFB   Length              0005 (5)\n-0B2AFD   Flags               01 (1) 'Modification'\n-0B2AFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B2B02 PAYLOAD\n-\n-0B425A DATA DESCRIPTOR       08074B50 (134695760)\n-0B425E CRC                   CC968FE2 (3432419298)\n-0B4262 Compressed Size       00001758 (5976)\n-0B4266 Uncompressed Size     00001758 (5976)\n-\n-0B426A LOCAL HEADER #352     04034B50 (67324752)\n-0B426E Extract Zip Spec      14 (20) '2.0'\n-0B426F Extract OS            00 (0) 'MS-DOS'\n-0B4270 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0B4272 Compression Method    0000 (0) 'Stored'\n-0B4274 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0B4278 CRC                   00000000 (0)\n-0B427C Compressed Size       00000000 (0)\n-0B4280 Uncompressed Size     00000000 (0)\n-0B4284 Filename Length       0034 (52)\n-0B4286 Extra Length          0009 (9)\n-0B4288 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xB4288: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0B42BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0B42BE   Length              0005 (5)\n-0B42C0   Flags               01 (1) 'Modification'\n-0B42C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0B42C5 PAYLOAD\n-\n-0CA2EB DATA DESCRIPTOR       08074B50 (134695760)\n-0CA2EF CRC                   42CFBA07 (1120909831)\n-0CA2F3 Compressed Size       00016026 (90150)\n-0CA2F7 Uncompressed Size     00016026 (90150)\n-\n-0CA2FB LOCAL HEADER #353     04034B50 (67324752)\n-0CA2FF Extract Zip Spec      14 (20) '2.0'\n-0CA300 Extract OS            00 (0) 'MS-DOS'\n-0CA301 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0CA303 Compression Method    0000 (0) 'Stored'\n-0CA305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0CA309 CRC                   00000000 (0)\n-0CA30D Compressed Size       00000000 (0)\n-0CA311 Uncompressed Size     00000000 (0)\n-0CA315 Filename Length       0035 (53)\n-0CA317 Extra Length          0009 (9)\n-0CA319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xCA319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0CA34E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0CA350   Length              0005 (5)\n-0CA352   Flags               01 (1) 'Modification'\n-0CA353   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0CA357 PAYLOAD\n-\n-0D425A DATA DESCRIPTOR       08074B50 (134695760)\n-0D425E CRC                   038157DF (58808287)\n-0D4262 Compressed Size       00009F03 (40707)\n-0D4266 Uncompressed Size     00009F03 (40707)\n-\n-0D426A LOCAL HEADER #354     04034B50 (67324752)\n-0D426E Extract Zip Spec      14 (20) '2.0'\n-0D426F Extract OS            00 (0) 'MS-DOS'\n-0D4270 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0D4272 Compression Method    0000 (0) 'Stored'\n-0D4274 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D4278 CRC                   00000000 (0)\n-0D427C Compressed Size       00000000 (0)\n-0D4280 Uncompressed Size     00000000 (0)\n-0D4284 Filename Length       003D (61)\n-0D4286 Extra Length          0009 (9)\n-0D4288 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD4288: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D42C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D42C7   Length              0005 (5)\n-0D42C9   Flags               01 (1) 'Modification'\n-0D42CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D42CE PAYLOAD\n-\n-0D5656 DATA DESCRIPTOR       08074B50 (134695760)\n-0D565A CRC                   FF195881 (4279851137)\n-0D565E Compressed Size       00001388 (5000)\n-0D5662 Uncompressed Size     00001388 (5000)\n-\n-0D5666 LOCAL HEADER #355     04034B50 (67324752)\n-0D566A Extract Zip Spec      14 (20) '2.0'\n-0D566B Extract OS            00 (0) 'MS-DOS'\n-0D566C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0D566E Compression Method    0000 (0) 'Stored'\n-0D5670 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D5674 CRC                   00000000 (0)\n-0D5678 Compressed Size       00000000 (0)\n-0D567C Uncompressed Size     00000000 (0)\n-0D5680 Filename Length       003E (62)\n-0D5682 Extra Length          0009 (9)\n-0D5684 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD5684: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D56C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D56C4   Length              0005 (5)\n-0D56C6   Flags               01 (1) 'Modification'\n-0D56C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D56CB PAYLOAD\n-\n-0D6404 DATA DESCRIPTOR       08074B50 (134695760)\n-0D6408 CRC                   8611C8ED (2249312493)\n-0D640C Compressed Size       00000D39 (3385)\n-0D6410 Uncompressed Size     00000D39 (3385)\n-\n-0D6414 LOCAL HEADER #356     04034B50 (67324752)\n-0D6418 Extract Zip Spec      14 (20) '2.0'\n-0D6419 Extract OS            00 (0) 'MS-DOS'\n-0D641A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0D641C Compression Method    0000 (0) 'Stored'\n-0D641E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D6422 CRC                   00000000 (0)\n-0D6426 Compressed Size       00000000 (0)\n-0D642A Uncompressed Size     00000000 (0)\n-0D642E Filename Length       003E (62)\n-0D6430 Extra Length          0009 (9)\n-0D6432 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD6432: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D6470 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D6472   Length              0005 (5)\n-0D6474   Flags               01 (1) 'Modification'\n-0D6475   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D6479 PAYLOAD\n-\n-0D7743 DATA DESCRIPTOR       08074B50 (134695760)\n-0D7747 CRC                   654FFB26 (1699740454)\n-0D774B Compressed Size       000012CA (4810)\n-0D774F Uncompressed Size     000012CA (4810)\n-\n-0D7753 LOCAL HEADER #357     04034B50 (67324752)\n-0D7757 Extract Zip Spec      14 (20) '2.0'\n-0D7758 Extract OS            00 (0) 'MS-DOS'\n-0D7759 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0D775B Compression Method    0000 (0) 'Stored'\n-0D775D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D7761 CRC                   00000000 (0)\n-0D7765 Compressed Size       00000000 (0)\n-0D7769 Uncompressed Size     00000000 (0)\n-0D776D Filename Length       003F (63)\n-0D776F Extra Length          0009 (9)\n-0D7771 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD7771: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D77B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D77B2   Length              0005 (5)\n-0D77B4   Flags               01 (1) 'Modification'\n-0D77B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D77B9 PAYLOAD\n-\n-0D8A38 DATA DESCRIPTOR       08074B50 (134695760)\n-0D8A3C CRC                   D684F652 (3599038034)\n-0D8A40 Compressed Size       0000127F (4735)\n-0D8A44 Uncompressed Size     0000127F (4735)\n-\n-0D8A48 LOCAL HEADER #358     04034B50 (67324752)\n-0D8A4C Extract Zip Spec      14 (20) '2.0'\n-0D8A4D Extract OS            00 (0) 'MS-DOS'\n-0D8A4E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0D8A50 Compression Method    0000 (0) 'Stored'\n-0D8A52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0D8A56 CRC                   00000000 (0)\n-0D8A5A Compressed Size       00000000 (0)\n-0D8A5E Uncompressed Size     00000000 (0)\n-0D8A62 Filename Length       0038 (56)\n-0D8A64 Extra Length          0009 (9)\n-0D8A66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xD8A66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0D8A9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0D8AA0   Length              0005 (5)\n-0D8AA2   Flags               01 (1) 'Modification'\n-0D8AA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0D8AA7 PAYLOAD\n-\n-0E6C3C DATA DESCRIPTOR       08074B50 (134695760)\n-0E6C40 CRC                   61E4315C (1642344796)\n-0E6C44 Compressed Size       0000E195 (57749)\n-0E6C48 Uncompressed Size     0000E195 (57749)\n-\n-0E6C4C LOCAL HEADER #359     04034B50 (67324752)\n-0E6C50 Extract Zip Spec      14 (20) '2.0'\n-0E6C51 Extract OS            00 (0) 'MS-DOS'\n-0E6C52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0E6C54 Compression Method    0000 (0) 'Stored'\n-0E6C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E6C5A CRC                   00000000 (0)\n-0E6C5E Compressed Size       00000000 (0)\n-0E6C62 Uncompressed Size     00000000 (0)\n-0E6C66 Filename Length       0036 (54)\n-0E6C68 Extra Length          0009 (9)\n-0E6C6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE6C6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E6CA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E6CA2   Length              0005 (5)\n-0E6CA4   Flags               01 (1) 'Modification'\n-0E6CA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E6CA9 PAYLOAD\n-\n-0E78EB DATA DESCRIPTOR       08074B50 (134695760)\n-0E78EF CRC                   9B537823 (2605938723)\n-0E78F3 Compressed Size       00000C42 (3138)\n-0E78F7 Uncompressed Size     00000C42 (3138)\n-\n-0E78FB LOCAL HEADER #360     04034B50 (67324752)\n-0E78FF Extract Zip Spec      14 (20) '2.0'\n-0E7900 Extract OS            00 (0) 'MS-DOS'\n-0E7901 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0E7903 Compression Method    0000 (0) 'Stored'\n-0E7905 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E7909 CRC                   00000000 (0)\n-0E790D Compressed Size       00000000 (0)\n-0E7911 Uncompressed Size     00000000 (0)\n-0E7915 Filename Length       003C (60)\n-0E7917 Extra Length          0009 (9)\n-0E7919 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE7919: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E7955 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E7957   Length              0005 (5)\n-0E7959   Flags               01 (1) 'Modification'\n-0E795A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E795E PAYLOAD\n-\n-0E84A3 DATA DESCRIPTOR       08074B50 (134695760)\n-0E84A7 CRC                   091B09EC (152766956)\n-0E84AB Compressed Size       00000B45 (2885)\n-0E84AF Uncompressed Size     00000B45 (2885)\n-\n-0E84B3 LOCAL HEADER #361     04034B50 (67324752)\n-0E84B7 Extract Zip Spec      14 (20) '2.0'\n-0E84B8 Extract OS            00 (0) 'MS-DOS'\n-0E84B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0E84BB Compression Method    0000 (0) 'Stored'\n-0E84BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E84C1 CRC                   00000000 (0)\n-0E84C5 Compressed Size       00000000 (0)\n-0E84C9 Uncompressed Size     00000000 (0)\n-0E84CD Filename Length       0034 (52)\n-0E84CF Extra Length          0009 (9)\n-0E84D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE84D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E8505 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E8507   Length              0005 (5)\n-0E8509   Flags               01 (1) 'Modification'\n-0E850A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E850E PAYLOAD\n-\n-0E8E3C DATA DESCRIPTOR       08074B50 (134695760)\n-0E8E40 CRC                   4654378B (1179924363)\n-0E8E44 Compressed Size       0000092E (2350)\n-0E8E48 Uncompressed Size     0000092E (2350)\n-\n-0E8E4C LOCAL HEADER #362     04034B50 (67324752)\n-0E8E50 Extract Zip Spec      14 (20) '2.0'\n-0E8E51 Extract OS            00 (0) 'MS-DOS'\n-0E8E52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0E8E54 Compression Method    0000 (0) 'Stored'\n-0E8E56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0E8E5A CRC                   00000000 (0)\n-0E8E5E Compressed Size       00000000 (0)\n-0E8E62 Uncompressed Size     00000000 (0)\n-0E8E66 Filename Length       0033 (51)\n-0E8E68 Extra Length          0009 (9)\n-0E8E6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xE8E6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0E8E9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0E8E9F   Length              0005 (5)\n-0E8EA1   Flags               01 (1) 'Modification'\n-0E8EA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0E8EA6 PAYLOAD\n-\n-0F313E DATA DESCRIPTOR       08074B50 (134695760)\n-0F3142 CRC                   7366BE52 (1936113234)\n-0F3146 Compressed Size       0000A298 (41624)\n-0F314A Uncompressed Size     0000A298 (41624)\n-\n-0F314E LOCAL HEADER #363     04034B50 (67324752)\n-0F3152 Extract Zip Spec      14 (20) '2.0'\n-0F3153 Extract OS            00 (0) 'MS-DOS'\n-0F3154 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0F3156 Compression Method    0000 (0) 'Stored'\n-0F3158 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F315C CRC                   00000000 (0)\n-0F3160 Compressed Size       00000000 (0)\n-0F3164 Uncompressed Size     00000000 (0)\n-0F3168 Filename Length       003A (58)\n-0F316A Extra Length          0009 (9)\n-0F316C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF316C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F31A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F31A8   Length              0005 (5)\n-0F31AA   Flags               01 (1) 'Modification'\n-0F31AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F31AF PAYLOAD\n-\n-0F3FBD DATA DESCRIPTOR       08074B50 (134695760)\n-0F3FC1 CRC                   968E88D0 (2525923536)\n-0F3FC5 Compressed Size       00000E0E (3598)\n-0F3FC9 Uncompressed Size     00000E0E (3598)\n-\n-0F3FCD LOCAL HEADER #364     04034B50 (67324752)\n-0F3FD1 Extract Zip Spec      14 (20) '2.0'\n-0F3FD2 Extract OS            00 (0) 'MS-DOS'\n-0F3FD3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0F3FD5 Compression Method    0000 (0) 'Stored'\n-0F3FD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F3FDB CRC                   00000000 (0)\n-0F3FDF Compressed Size       00000000 (0)\n-0F3FE3 Uncompressed Size     00000000 (0)\n-0F3FE7 Filename Length       0034 (52)\n-0F3FE9 Extra Length          0009 (9)\n-0F3FEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF3FEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F401F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F4021   Length              0005 (5)\n-0F4023   Flags               01 (1) 'Modification'\n-0F4024   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F4028 PAYLOAD\n-\n-0F9ADA DATA DESCRIPTOR       08074B50 (134695760)\n-0F9ADE CRC                   57F2E114 (1475535124)\n-0F9AE2 Compressed Size       00005AB2 (23218)\n-0F9AE6 Uncompressed Size     00005AB2 (23218)\n-\n-0F9AEA LOCAL HEADER #365     04034B50 (67324752)\n-0F9AEE Extract Zip Spec      14 (20) '2.0'\n-0F9AEF Extract OS            00 (0) 'MS-DOS'\n-0F9AF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0F9AF2 Compression Method    0000 (0) 'Stored'\n-0F9AF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0F9AF8 CRC                   00000000 (0)\n-0F9AFC Compressed Size       00000000 (0)\n-0F9B00 Uncompressed Size     00000000 (0)\n-0F9B04 Filename Length       003F (63)\n-0F9B06 Extra Length          0009 (9)\n-0F9B08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xF9B08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0F9B47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0F9B49   Length              0005 (5)\n-0F9B4B   Flags               01 (1) 'Modification'\n-0F9B4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0F9B50 PAYLOAD\n-\n-0FA896 DATA DESCRIPTOR       08074B50 (134695760)\n-0FA89A CRC                   14C32F61 (348335969)\n-0FA89E Compressed Size       00000D46 (3398)\n-0FA8A2 Uncompressed Size     00000D46 (3398)\n-\n-0FA8A6 LOCAL HEADER #366     04034B50 (67324752)\n-0FA8AA Extract Zip Spec      14 (20) '2.0'\n-0FA8AB Extract OS            00 (0) 'MS-DOS'\n-0FA8AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FA8AE Compression Method    0000 (0) 'Stored'\n-0FA8B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FA8B4 CRC                   00000000 (0)\n-0FA8B8 Compressed Size       00000000 (0)\n-0FA8BC Uncompressed Size     00000000 (0)\n-0FA8C0 Filename Length       0034 (52)\n-0FA8C2 Extra Length          0009 (9)\n-0FA8C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFA8C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FA8F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FA8FA   Length              0005 (5)\n-0FA8FC   Flags               01 (1) 'Modification'\n-0FA8FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FA901 PAYLOAD\n-\n-0FB768 DATA DESCRIPTOR       08074B50 (134695760)\n-0FB76C CRC                   69B75EA9 (1773625001)\n-0FB770 Compressed Size       00000E67 (3687)\n-0FB774 Uncompressed Size     00000E67 (3687)\n-\n-0FB778 LOCAL HEADER #367     04034B50 (67324752)\n-0FB77C Extract Zip Spec      14 (20) '2.0'\n-0FB77D Extract OS            00 (0) 'MS-DOS'\n-0FB77E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FB780 Compression Method    0000 (0) 'Stored'\n-0FB782 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FB786 CRC                   00000000 (0)\n-0FB78A Compressed Size       00000000 (0)\n-0FB78E Uncompressed Size     00000000 (0)\n-0FB792 Filename Length       003A (58)\n-0FB794 Extra Length          0009 (9)\n-0FB796 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFB796: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FB7D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FB7D2   Length              0005 (5)\n-0FB7D4   Flags               01 (1) 'Modification'\n-0FB7D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FB7D9 PAYLOAD\n-\n-0FC165 DATA DESCRIPTOR       08074B50 (134695760)\n-0FC169 CRC                   265DEF91 (643690385)\n-0FC16D Compressed Size       0000098C (2444)\n-0FC171 Uncompressed Size     0000098C (2444)\n-\n-0FC175 LOCAL HEADER #368     04034B50 (67324752)\n-0FC179 Extract Zip Spec      14 (20) '2.0'\n-0FC17A Extract OS            00 (0) 'MS-DOS'\n-0FC17B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FC17D Compression Method    0000 (0) 'Stored'\n-0FC17F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FC183 CRC                   00000000 (0)\n-0FC187 Compressed Size       00000000 (0)\n-0FC18B Uncompressed Size     00000000 (0)\n-0FC18F Filename Length       003C (60)\n-0FC191 Extra Length          0009 (9)\n-0FC193 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFC193: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FC1CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FC1D1   Length              0005 (5)\n-0FC1D3   Flags               01 (1) 'Modification'\n-0FC1D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FC1D8 PAYLOAD\n-\n-0FCBDF DATA DESCRIPTOR       08074B50 (134695760)\n-0FCBE3 CRC                   AC539B8F (2891160463)\n-0FCBE7 Compressed Size       00000A07 (2567)\n-0FCBEB Uncompressed Size     00000A07 (2567)\n-\n-0FCBEF LOCAL HEADER #369     04034B50 (67324752)\n-0FCBF3 Extract Zip Spec      14 (20) '2.0'\n-0FCBF4 Extract OS            00 (0) 'MS-DOS'\n-0FCBF5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FCBF7 Compression Method    0000 (0) 'Stored'\n-0FCBF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FCBFD CRC                   00000000 (0)\n-0FCC01 Compressed Size       00000000 (0)\n-0FCC05 Uncompressed Size     00000000 (0)\n-0FCC09 Filename Length       003D (61)\n-0FCC0B Extra Length          0009 (9)\n-0FCC0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFCC0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FCC4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FCC4C   Length              0005 (5)\n-0FCC4E   Flags               01 (1) 'Modification'\n-0FCC4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FCC53 PAYLOAD\n-\n-0FE2F6 DATA DESCRIPTOR       08074B50 (134695760)\n-0FE2FA CRC                   60D7241E (1624712222)\n-0FE2FE Compressed Size       000016A3 (5795)\n-0FE302 Uncompressed Size     000016A3 (5795)\n-\n-0FE306 LOCAL HEADER #370     04034B50 (67324752)\n-0FE30A Extract Zip Spec      14 (20) '2.0'\n-0FE30B Extract OS            00 (0) 'MS-DOS'\n-0FE30C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FE30E Compression Method    0000 (0) 'Stored'\n-0FE310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FE314 CRC                   00000000 (0)\n-0FE318 Compressed Size       00000000 (0)\n-0FE31C Uncompressed Size     00000000 (0)\n-0FE320 Filename Length       003E (62)\n-0FE322 Extra Length          0009 (9)\n-0FE324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFE324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FE362 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FE364   Length              0005 (5)\n-0FE366   Flags               01 (1) 'Modification'\n-0FE367   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FE36B PAYLOAD\n-\n-0FF68A DATA DESCRIPTOR       08074B50 (134695760)\n-0FF68E CRC                   52E473B9 (1390703545)\n-0FF692 Compressed Size       0000131F (4895)\n-0FF696 Uncompressed Size     0000131F (4895)\n-\n-0FF69A LOCAL HEADER #371     04034B50 (67324752)\n-0FF69E Extract Zip Spec      14 (20) '2.0'\n-0FF69F Extract OS            00 (0) 'MS-DOS'\n-0FF6A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-0FF6A2 Compression Method    0000 (0) 'Stored'\n-0FF6A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-0FF6A8 CRC                   00000000 (0)\n-0FF6AC Compressed Size       00000000 (0)\n-0FF6B0 Uncompressed Size     00000000 (0)\n-0FF6B4 Filename Length       003E (62)\n-0FF6B6 Extra Length          0009 (9)\n-0FF6B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0xFF6B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-0FF6F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-0FF6F8   Length              0005 (5)\n-0FF6FA   Flags               01 (1) 'Modification'\n-0FF6FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-0FF6FF PAYLOAD\n-\n-1002D6 DATA DESCRIPTOR       08074B50 (134695760)\n-1002DA CRC                   430F5283 (1125077635)\n-1002DE Compressed Size       00000BD7 (3031)\n-1002E2 Uncompressed Size     00000BD7 (3031)\n-\n-1002E6 LOCAL HEADER #372     04034B50 (67324752)\n-1002EA Extract Zip Spec      14 (20) '2.0'\n-1002EB Extract OS            00 (0) 'MS-DOS'\n-1002EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1002EE Compression Method    0000 (0) 'Stored'\n-1002F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1002F4 CRC                   00000000 (0)\n-1002F8 Compressed Size       00000000 (0)\n-1002FC Uncompressed Size     00000000 (0)\n-100300 Filename Length       0039 (57)\n-100302 Extra Length          0009 (9)\n-100304 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x100304: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10033D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10033F   Length              0005 (5)\n-100341   Flags               01 (1) 'Modification'\n-100342   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-100346 PAYLOAD\n-\n-100DF6 DATA DESCRIPTOR       08074B50 (134695760)\n-100DFA CRC                   66243DE3 (1713651171)\n-100DFE Compressed Size       00000AB0 (2736)\n-100E02 Uncompressed Size     00000AB0 (2736)\n-\n-100E06 LOCAL HEADER #373     04034B50 (67324752)\n-100E0A Extract Zip Spec      14 (20) '2.0'\n-100E0B Extract OS            00 (0) 'MS-DOS'\n-100E0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-100E0E Compression Method    0000 (0) 'Stored'\n-100E10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-100E14 CRC                   00000000 (0)\n-100E18 Compressed Size       00000000 (0)\n-100E1C Uncompressed Size     00000000 (0)\n-100E20 Filename Length       003E (62)\n-100E22 Extra Length          0009 (9)\n-100E24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x100E24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-100E62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-100E64   Length              0005 (5)\n-100E66   Flags               01 (1) 'Modification'\n-100E67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-100E6B PAYLOAD\n-\n-10189A DATA DESCRIPTOR       08074B50 (134695760)\n-10189E CRC                   1BFC238A (469509002)\n-1018A2 Compressed Size       00000A2F (2607)\n-1018A6 Uncompressed Size     00000A2F (2607)\n-\n-1018AA LOCAL HEADER #374     04034B50 (67324752)\n-1018AE Extract Zip Spec      14 (20) '2.0'\n-1018AF Extract OS            00 (0) 'MS-DOS'\n-1018B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1018B2 Compression Method    0000 (0) 'Stored'\n-1018B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1018B8 CRC                   00000000 (0)\n-1018BC Compressed Size       00000000 (0)\n-1018C0 Uncompressed Size     00000000 (0)\n-1018C4 Filename Length       003C (60)\n-1018C6 Extra Length          0009 (9)\n-1018C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1018C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-101904 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-101906   Length              0005 (5)\n-101908   Flags               01 (1) 'Modification'\n-101909   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10190D PAYLOAD\n-\n-1024A6 DATA DESCRIPTOR       08074B50 (134695760)\n-1024AA CRC                   2E60A6BB (778086075)\n-1024AE Compressed Size       00000B99 (2969)\n-1024B2 Uncompressed Size     00000B99 (2969)\n-\n-1024B6 LOCAL HEADER #375     04034B50 (67324752)\n-1024BA Extract Zip Spec      14 (20) '2.0'\n-1024BB Extract OS            00 (0) 'MS-DOS'\n-1024BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1024BE Compression Method    0000 (0) 'Stored'\n-1024C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1024C4 CRC                   00000000 (0)\n-1024C8 Compressed Size       00000000 (0)\n-1024CC Uncompressed Size     00000000 (0)\n-1024D0 Filename Length       0039 (57)\n-1024D2 Extra Length          0009 (9)\n-1024D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1024D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10250D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10250F   Length              0005 (5)\n-102511   Flags               01 (1) 'Modification'\n-102512   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-102516 PAYLOAD\n-\n-103102 DATA DESCRIPTOR       08074B50 (134695760)\n-103106 CRC                   0F4C49C0 (256657856)\n-10310A Compressed Size       00000BEC (3052)\n-10310E Uncompressed Size     00000BEC (3052)\n-\n-103112 LOCAL HEADER #376     04034B50 (67324752)\n-103116 Extract Zip Spec      14 (20) '2.0'\n-103117 Extract OS            00 (0) 'MS-DOS'\n-103118 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10311A Compression Method    0000 (0) 'Stored'\n-10311C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-103120 CRC                   00000000 (0)\n-103124 Compressed Size       00000000 (0)\n-103128 Uncompressed Size     00000000 (0)\n-10312C Filename Length       0037 (55)\n-10312E Extra Length          0009 (9)\n-103130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x103130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-103167 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-103169   Length              0005 (5)\n-10316B   Flags               01 (1) 'Modification'\n-10316C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-103170 PAYLOAD\n-\n-109282 DATA DESCRIPTOR       08074B50 (134695760)\n-109286 CRC                   FA00D04F (4194357327)\n-10928A Compressed Size       00006112 (24850)\n-10928E Uncompressed Size     00006112 (24850)\n-\n-109292 LOCAL HEADER #377     04034B50 (67324752)\n-109296 Extract Zip Spec      14 (20) '2.0'\n-109297 Extract OS            00 (0) 'MS-DOS'\n-109298 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10929A Compression Method    0000 (0) 'Stored'\n-10929C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1092A0 CRC                   00000000 (0)\n-1092A4 Compressed Size       00000000 (0)\n-1092A8 Uncompressed Size     00000000 (0)\n-1092AC Filename Length       0035 (53)\n-1092AE Extra Length          0009 (9)\n-1092B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1092B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1092E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1092E7   Length              0005 (5)\n-1092E9   Flags               01 (1) 'Modification'\n-1092EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1092EE PAYLOAD\n-\n-10C8FB DATA DESCRIPTOR       08074B50 (134695760)\n-10C8FF CRC                   339C3654 (865875540)\n-10C903 Compressed Size       0000360D (13837)\n-10C907 Uncompressed Size     0000360D (13837)\n-\n-10C90B LOCAL HEADER #378     04034B50 (67324752)\n-10C90F Extract Zip Spec      14 (20) '2.0'\n-10C910 Extract OS            00 (0) 'MS-DOS'\n-10C911 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10C913 Compression Method    0000 (0) 'Stored'\n-10C915 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10C919 CRC                   00000000 (0)\n-10C91D Compressed Size       00000000 (0)\n-10C921 Uncompressed Size     00000000 (0)\n-10C925 Filename Length       0033 (51)\n-10C927 Extra Length          0009 (9)\n-10C929 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10C929: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10C95C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10C95E   Length              0005 (5)\n-10C960   Flags               01 (1) 'Modification'\n-10C961   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10C965 PAYLOAD\n-\n-10D66E DATA DESCRIPTOR       08074B50 (134695760)\n-10D672 CRC                   6E56FB5B (1851194203)\n-10D676 Compressed Size       00000D09 (3337)\n-10D67A Uncompressed Size     00000D09 (3337)\n-\n-10D67E LOCAL HEADER #379     04034B50 (67324752)\n-10D682 Extract Zip Spec      14 (20) '2.0'\n-10D683 Extract OS            00 (0) 'MS-DOS'\n-10D684 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10D686 Compression Method    0000 (0) 'Stored'\n-10D688 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10D68C CRC                   00000000 (0)\n-10D690 Compressed Size       00000000 (0)\n-10D694 Uncompressed Size     00000000 (0)\n-10D698 Filename Length       0037 (55)\n-10D69A Extra Length          0009 (9)\n-10D69C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10D69C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10D6D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10D6D5   Length              0005 (5)\n-10D6D7   Flags               01 (1) 'Modification'\n-10D6D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10D6DC PAYLOAD\n-\n-10E225 DATA DESCRIPTOR       08074B50 (134695760)\n-10E229 CRC                   D55758DF (3579271391)\n-10E22D Compressed Size       00000B49 (2889)\n-10E231 Uncompressed Size     00000B49 (2889)\n-\n-10E235 LOCAL HEADER #380     04034B50 (67324752)\n-10E239 Extract Zip Spec      14 (20) '2.0'\n-10E23A Extract OS            00 (0) 'MS-DOS'\n-10E23B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10E23D Compression Method    0000 (0) 'Stored'\n-10E23F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10E243 CRC                   00000000 (0)\n-10E247 Compressed Size       00000000 (0)\n-10E24B Uncompressed Size     00000000 (0)\n-10E24F Filename Length       0036 (54)\n-10E251 Extra Length          0009 (9)\n-10E253 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10E253: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10E289 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10E28B   Length              0005 (5)\n-10E28D   Flags               01 (1) 'Modification'\n-10E28E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10E292 PAYLOAD\n-\n-10F9DC DATA DESCRIPTOR       08074B50 (134695760)\n-10F9E0 CRC                   67A3DA8B (1738791563)\n-10F9E4 Compressed Size       0000174A (5962)\n-10F9E8 Uncompressed Size     0000174A (5962)\n-\n-10F9EC LOCAL HEADER #381     04034B50 (67324752)\n-10F9F0 Extract Zip Spec      14 (20) '2.0'\n-10F9F1 Extract OS            00 (0) 'MS-DOS'\n-10F9F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-10F9F4 Compression Method    0000 (0) 'Stored'\n-10F9F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-10F9FA CRC                   00000000 (0)\n-10F9FE Compressed Size       00000000 (0)\n-10FA02 Uncompressed Size     00000000 (0)\n-10FA06 Filename Length       0034 (52)\n-10FA08 Extra Length          0009 (9)\n-10FA0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x10FA0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-10FA3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-10FA40   Length              0005 (5)\n-10FA42   Flags               01 (1) 'Modification'\n-10FA43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-10FA47 PAYLOAD\n-\n-110873 DATA DESCRIPTOR       08074B50 (134695760)\n-110877 CRC                   BDD7BBBA (3185032122)\n-11087B Compressed Size       00000E2C (3628)\n-11087F Uncompressed Size     00000E2C (3628)\n-\n-110883 LOCAL HEADER #382     04034B50 (67324752)\n-110887 Extract Zip Spec      14 (20) '2.0'\n-110888 Extract OS            00 (0) 'MS-DOS'\n-110889 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11088B Compression Method    0000 (0) 'Stored'\n-11088D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-110891 CRC                   00000000 (0)\n-110895 Compressed Size       00000000 (0)\n-110899 Uncompressed Size     00000000 (0)\n-11089D Filename Length       0039 (57)\n-11089F Extra Length          0009 (9)\n-1108A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1108A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1108DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1108DC   Length              0005 (5)\n-1108DE   Flags               01 (1) 'Modification'\n-1108DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1108E3 PAYLOAD\n-\n-111645 DATA DESCRIPTOR       08074B50 (134695760)\n-111649 CRC                   96A3AA02 (2527308290)\n-11164D Compressed Size       00000D62 (3426)\n-111651 Uncompressed Size     00000D62 (3426)\n-\n-111655 LOCAL HEADER #383     04034B50 (67324752)\n-111659 Extract Zip Spec      14 (20) '2.0'\n-11165A Extract OS            00 (0) 'MS-DOS'\n-11165B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11165D Compression Method    0000 (0) 'Stored'\n-11165F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-111663 CRC                   00000000 (0)\n-111667 Compressed Size       00000000 (0)\n-11166B Uncompressed Size     00000000 (0)\n-11166F Filename Length       0037 (55)\n-111671 Extra Length          0009 (9)\n-111673 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x111673: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1116AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1116AC   Length              0005 (5)\n-1116AE   Flags               01 (1) 'Modification'\n-1116AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1116B3 PAYLOAD\n-\n-112113 DATA DESCRIPTOR       08074B50 (134695760)\n-112117 CRC                   D08B9F5C (3498811228)\n-11211B Compressed Size       00000A60 (2656)\n-11211F Uncompressed Size     00000A60 (2656)\n-\n-112123 LOCAL HEADER #384     04034B50 (67324752)\n-112127 Extract Zip Spec      14 (20) '2.0'\n-112128 Extract OS            00 (0) 'MS-DOS'\n-112129 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11212B Compression Method    0000 (0) 'Stored'\n-11212D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-112131 CRC                   00000000 (0)\n-112135 Compressed Size       00000000 (0)\n-112139 Uncompressed Size     00000000 (0)\n-11213D Filename Length       0031 (49)\n-11213F Extra Length          0009 (9)\n-112141 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x112141: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-112172 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-112174   Length              0005 (5)\n-112176   Flags               01 (1) 'Modification'\n-112177   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11217B PAYLOAD\n-\n-112B23 DATA DESCRIPTOR       08074B50 (134695760)\n-112B27 CRC                   17688FAA (392728490)\n-112B2B Compressed Size       000009A8 (2472)\n-112B2F Uncompressed Size     000009A8 (2472)\n-\n-112B33 LOCAL HEADER #385     04034B50 (67324752)\n-112B37 Extract Zip Spec      14 (20) '2.0'\n-112B38 Extract OS            00 (0) 'MS-DOS'\n-112B39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-112B3B Compression Method    0000 (0) 'Stored'\n-112B3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-112B41 CRC                   00000000 (0)\n-112B45 Compressed Size       00000000 (0)\n-112B49 Uncompressed Size     00000000 (0)\n-112B4D Filename Length       0038 (56)\n-112B4F Extra Length          0009 (9)\n-112B51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x112B51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-112B89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-112B8B   Length              0005 (5)\n-112B8D   Flags               01 (1) 'Modification'\n-112B8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-112B92 PAYLOAD\n-\n-1194DF DATA DESCRIPTOR       08074B50 (134695760)\n-1194E3 CRC                   E14A6B5A (3779750746)\n-1194E7 Compressed Size       0000694D (26957)\n-1194EB Uncompressed Size     0000694D (26957)\n-\n-1194EF LOCAL HEADER #386     04034B50 (67324752)\n-1194F3 Extract Zip Spec      14 (20) '2.0'\n-1194F4 Extract OS            00 (0) 'MS-DOS'\n-1194F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1194F7 Compression Method    0000 (0) 'Stored'\n-1194F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1194FD CRC                   00000000 (0)\n-119501 Compressed Size       00000000 (0)\n-119505 Uncompressed Size     00000000 (0)\n-119509 Filename Length       003A (58)\n-11950B Extra Length          0009 (9)\n-11950D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11950D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-119547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-119549   Length              0005 (5)\n-11954B   Flags               01 (1) 'Modification'\n-11954C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-119550 PAYLOAD\n-\n-11A5BF DATA DESCRIPTOR       08074B50 (134695760)\n-11A5C3 CRC                   515E6059 (1365139545)\n-11A5C7 Compressed Size       0000106F (4207)\n-11A5CB Uncompressed Size     0000106F (4207)\n-\n-11A5CF LOCAL HEADER #387     04034B50 (67324752)\n-11A5D3 Extract Zip Spec      14 (20) '2.0'\n-11A5D4 Extract OS            00 (0) 'MS-DOS'\n-11A5D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11A5D7 Compression Method    0000 (0) 'Stored'\n-11A5D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11A5DD CRC                   00000000 (0)\n-11A5E1 Compressed Size       00000000 (0)\n-11A5E5 Uncompressed Size     00000000 (0)\n-11A5E9 Filename Length       0038 (56)\n-11A5EB Extra Length          0009 (9)\n-11A5ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11A5ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11A625 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11A627   Length              0005 (5)\n-11A629   Flags               01 (1) 'Modification'\n-11A62A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11A62E PAYLOAD\n-\n-11B2D4 DATA DESCRIPTOR       08074B50 (134695760)\n-11B2D8 CRC                   5238B40F (1379447823)\n-11B2DC Compressed Size       00000CA6 (3238)\n-11B2E0 Uncompressed Size     00000CA6 (3238)\n-\n-11B2E4 LOCAL HEADER #388     04034B50 (67324752)\n-11B2E8 Extract Zip Spec      14 (20) '2.0'\n-11B2E9 Extract OS            00 (0) 'MS-DOS'\n-11B2EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11B2EC Compression Method    0000 (0) 'Stored'\n-11B2EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11B2F2 CRC                   00000000 (0)\n-11B2F6 Compressed Size       00000000 (0)\n-11B2FA Uncompressed Size     00000000 (0)\n-11B2FE Filename Length       0044 (68)\n-11B300 Extra Length          0009 (9)\n-11B302 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11B302: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11B346 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11B348   Length              0005 (5)\n-11B34A   Flags               01 (1) 'Modification'\n-11B34B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11B34F PAYLOAD\n-\n-11BD9A DATA DESCRIPTOR       08074B50 (134695760)\n-11BD9E CRC                   9A414F54 (2587971412)\n-11BDA2 Compressed Size       00000A4B (2635)\n-11BDA6 Uncompressed Size     00000A4B (2635)\n-\n-11BDAA LOCAL HEADER #389     04034B50 (67324752)\n-11BDAE Extract Zip Spec      14 (20) '2.0'\n-11BDAF Extract OS            00 (0) 'MS-DOS'\n-11BDB0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11BDB2 Compression Method    0000 (0) 'Stored'\n-11BDB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11BDB8 CRC                   00000000 (0)\n-11BDBC Compressed Size       00000000 (0)\n-11BDC0 Uncompressed Size     00000000 (0)\n-11BDC4 Filename Length       003E (62)\n-11BDC6 Extra Length          0009 (9)\n-11BDC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11BDC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11BE06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11BE08   Length              0005 (5)\n-11BE0A   Flags               01 (1) 'Modification'\n-11BE0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11BE0F PAYLOAD\n-\n-11CE17 DATA DESCRIPTOR       08074B50 (134695760)\n-11CE1B CRC                   DD24EE95 (3710185109)\n-11CE1F Compressed Size       00001008 (4104)\n-11CE23 Uncompressed Size     00001008 (4104)\n-\n-11CE27 LOCAL HEADER #390     04034B50 (67324752)\n-11CE2B Extract Zip Spec      14 (20) '2.0'\n-11CE2C Extract OS            00 (0) 'MS-DOS'\n-11CE2D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11CE2F Compression Method    0000 (0) 'Stored'\n-11CE31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11CE35 CRC                   00000000 (0)\n-11CE39 Compressed Size       00000000 (0)\n-11CE3D Uncompressed Size     00000000 (0)\n-11CE41 Filename Length       003C (60)\n-11CE43 Extra Length          0009 (9)\n-11CE45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11CE45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11CE81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11CE83   Length              0005 (5)\n-11CE85   Flags               01 (1) 'Modification'\n-11CE86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11CE8A PAYLOAD\n-\n-11DB09 DATA DESCRIPTOR       08074B50 (134695760)\n-11DB0D CRC                   00A2AB95 (10660757)\n-11DB11 Compressed Size       00000C7F (3199)\n-11DB15 Uncompressed Size     00000C7F (3199)\n-\n-11DB19 LOCAL HEADER #391     04034B50 (67324752)\n-11DB1D Extract Zip Spec      14 (20) '2.0'\n-11DB1E Extract OS            00 (0) 'MS-DOS'\n-11DB1F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11DB21 Compression Method    0000 (0) 'Stored'\n-11DB23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11DB27 CRC                   00000000 (0)\n-11DB2B Compressed Size       00000000 (0)\n-11DB2F Uncompressed Size     00000000 (0)\n-11DB33 Filename Length       003A (58)\n-11DB35 Extra Length          0009 (9)\n-11DB37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11DB37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11DB71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11DB73   Length              0005 (5)\n-11DB75   Flags               01 (1) 'Modification'\n-11DB76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11DB7A PAYLOAD\n-\n-11E634 DATA DESCRIPTOR       08074B50 (134695760)\n-11E638 CRC                   165EFEE5 (375324389)\n-11E63C Compressed Size       00000ABA (2746)\n-11E640 Uncompressed Size     00000ABA (2746)\n-\n-11E644 LOCAL HEADER #392     04034B50 (67324752)\n-11E648 Extract Zip Spec      14 (20) '2.0'\n-11E649 Extract OS            00 (0) 'MS-DOS'\n-11E64A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11E64C Compression Method    0000 (0) 'Stored'\n-11E64E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11E652 CRC                   00000000 (0)\n-11E656 Compressed Size       00000000 (0)\n-11E65A Uncompressed Size     00000000 (0)\n-11E65E Filename Length       0037 (55)\n-11E660 Extra Length          0009 (9)\n-11E662 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11E662: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11E699 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11E69B   Length              0005 (5)\n-11E69D   Flags               01 (1) 'Modification'\n-11E69E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11E6A2 PAYLOAD\n-\n-11E90C DATA DESCRIPTOR       08074B50 (134695760)\n-11E910 CRC                   E295C65E (3801466462)\n-11E914 Compressed Size       0000026A (618)\n-11E918 Uncompressed Size     0000026A (618)\n-\n-11E91C LOCAL HEADER #393     04034B50 (67324752)\n-11E920 Extract Zip Spec      14 (20) '2.0'\n-11E921 Extract OS            00 (0) 'MS-DOS'\n-11E922 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11E924 Compression Method    0000 (0) 'Stored'\n-11E926 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11E92A CRC                   00000000 (0)\n-11E92E Compressed Size       00000000 (0)\n-11E932 Uncompressed Size     00000000 (0)\n-11E936 Filename Length       0038 (56)\n-11E938 Extra Length          0009 (9)\n-11E93A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11E93A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11E972 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11E974   Length              0005 (5)\n-11E976   Flags               01 (1) 'Modification'\n-11E977   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11E97B PAYLOAD\n-\n-11F674 DATA DESCRIPTOR       08074B50 (134695760)\n-11F678 CRC                   EA548F41 (3931410241)\n-11F67C Compressed Size       00000CF9 (3321)\n-11F680 Uncompressed Size     00000CF9 (3321)\n-\n-11F684 LOCAL HEADER #394     04034B50 (67324752)\n-11F688 Extract Zip Spec      14 (20) '2.0'\n-11F689 Extract OS            00 (0) 'MS-DOS'\n-11F68A General Purpose Flag  0000 (0)\n-11F68C Compression Method    0000 (0) 'Stored'\n-11F68E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11F692 CRC                   00000000 (0)\n-11F696 Compressed Size       00000000 (0)\n-11F69A Uncompressed Size     00000000 (0)\n-11F69E Filename Length       0028 (40)\n-11F6A0 Extra Length          0009 (9)\n-11F6A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11F6A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11F6CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11F6CC   Length              0005 (5)\n-11F6CE   Flags               01 (1) 'Modification'\n-11F6CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-11F6D3 LOCAL HEADER #395     04034B50 (67324752)\n-11F6D7 Extract Zip Spec      14 (20) '2.0'\n-11F6D8 Extract OS            00 (0) 'MS-DOS'\n-11F6D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11F6DB Compression Method    0000 (0) 'Stored'\n-11F6DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11F6E1 CRC                   00000000 (0)\n-11F6E5 Compressed Size       00000000 (0)\n-11F6E9 Uncompressed Size     00000000 (0)\n-11F6ED Filename Length       003B (59)\n-11F6EF Extra Length          0009 (9)\n-11F6F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11F6F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11F72C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11F72E   Length              0005 (5)\n-11F730   Flags               01 (1) 'Modification'\n-11F731   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11F735 PAYLOAD\n-\n-11FED3 DATA DESCRIPTOR       08074B50 (134695760)\n-11FED7 CRC                   F75A753A (4149900602)\n-11FEDB Compressed Size       0000079E (1950)\n-11FEDF Uncompressed Size     0000079E (1950)\n-\n-11FEE3 LOCAL HEADER #396     04034B50 (67324752)\n-11FEE7 Extract Zip Spec      14 (20) '2.0'\n-11FEE8 Extract OS            00 (0) 'MS-DOS'\n-11FEE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-11FEEB Compression Method    0000 (0) 'Stored'\n-11FEED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-11FEF1 CRC                   00000000 (0)\n-11FEF5 Compressed Size       00000000 (0)\n-11FEF9 Uncompressed Size     00000000 (0)\n-11FEFD Filename Length       003A (58)\n-11FEFF Extra Length          0009 (9)\n-11FF01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x11FF01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-11FF3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-11FF3D   Length              0005 (5)\n-11FF3F   Flags               01 (1) 'Modification'\n-11FF40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-11FF44 PAYLOAD\n-\n-1206E5 DATA DESCRIPTOR       08074B50 (134695760)\n-1206E9 CRC                   44EA1A2E (1156192814)\n-1206ED Compressed Size       000007A1 (1953)\n-1206F1 Uncompressed Size     000007A1 (1953)\n-\n-1206F5 LOCAL HEADER #397     04034B50 (67324752)\n-1206F9 Extract Zip Spec      14 (20) '2.0'\n-1206FA Extract OS            00 (0) 'MS-DOS'\n-1206FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1206FD Compression Method    0000 (0) 'Stored'\n-1206FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-120703 CRC                   00000000 (0)\n-120707 Compressed Size       00000000 (0)\n-12070B Uncompressed Size     00000000 (0)\n-12070F Filename Length       0040 (64)\n-120711 Extra Length          0009 (9)\n-120713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x120713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-120753 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-120755   Length              0005 (5)\n-120757   Flags               01 (1) 'Modification'\n-120758   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12075C PAYLOAD\n-\n-120F0E DATA DESCRIPTOR       08074B50 (134695760)\n-120F12 CRC                   0EA48277 (245662327)\n-120F16 Compressed Size       000007B2 (1970)\n-120F1A Uncompressed Size     000007B2 (1970)\n-\n-120F1E LOCAL HEADER #398     04034B50 (67324752)\n-120F22 Extract Zip Spec      14 (20) '2.0'\n-120F23 Extract OS            00 (0) 'MS-DOS'\n-120F24 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-120F26 Compression Method    0000 (0) 'Stored'\n-120F28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-120F2C CRC                   00000000 (0)\n-120F30 Compressed Size       00000000 (0)\n-120F34 Uncompressed Size     00000000 (0)\n-120F38 Filename Length       003C (60)\n-120F3A Extra Length          0009 (9)\n-120F3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x120F3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-120F78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-120F7A   Length              0005 (5)\n-120F7C   Flags               01 (1) 'Modification'\n-120F7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-120F81 PAYLOAD\n-\n-12179C DATA DESCRIPTOR       08074B50 (134695760)\n-1217A0 CRC                   4D63953A (1298371898)\n-1217A4 Compressed Size       0000081B (2075)\n-1217A8 Uncompressed Size     0000081B (2075)\n-\n-1217AC LOCAL HEADER #399     04034B50 (67324752)\n-1217B0 Extract Zip Spec      14 (20) '2.0'\n-1217B1 Extract OS            00 (0) 'MS-DOS'\n-1217B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1217B4 Compression Method    0000 (0) 'Stored'\n-1217B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1217BA CRC                   00000000 (0)\n-1217BE Compressed Size       00000000 (0)\n-1217C2 Uncompressed Size     00000000 (0)\n-1217C6 Filename Length       0040 (64)\n-1217C8 Extra Length          0009 (9)\n-1217CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1217CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12180A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12180C   Length              0005 (5)\n-12180E   Flags               01 (1) 'Modification'\n-12180F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-121813 PAYLOAD\n-\n-121FEC DATA DESCRIPTOR       08074B50 (134695760)\n-121FF0 CRC                   3ADD7788 (987592584)\n-121FF4 Compressed Size       000007D9 (2009)\n-121FF8 Uncompressed Size     000007D9 (2009)\n-\n-121FFC LOCAL HEADER #400     04034B50 (67324752)\n-122000 Extract Zip Spec      14 (20) '2.0'\n-122001 Extract OS            00 (0) 'MS-DOS'\n-122002 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-122004 Compression Method    0000 (0) 'Stored'\n-122006 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12200A CRC                   00000000 (0)\n-12200E Compressed Size       00000000 (0)\n-122012 Uncompressed Size     00000000 (0)\n-122016 Filename Length       003C (60)\n-122018 Extra Length          0009 (9)\n-12201A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12201A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-122056 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-122058   Length              0005 (5)\n-12205A   Flags               01 (1) 'Modification'\n-12205B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12205F PAYLOAD\n-\n-122908 DATA DESCRIPTOR       08074B50 (134695760)\n-12290C CRC                   0C426FFB (205680635)\n-122910 Compressed Size       000008A9 (2217)\n-122914 Uncompressed Size     000008A9 (2217)\n-\n-122918 LOCAL HEADER #401     04034B50 (67324752)\n-12291C Extract Zip Spec      14 (20) '2.0'\n-12291D Extract OS            00 (0) 'MS-DOS'\n-12291E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-122920 Compression Method    0000 (0) 'Stored'\n-122922 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-122926 CRC                   00000000 (0)\n-12292A Compressed Size       00000000 (0)\n-12292E Uncompressed Size     00000000 (0)\n-122932 Filename Length       003B (59)\n-122934 Extra Length          0009 (9)\n-122936 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x122936: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-122971 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-122973   Length              0005 (5)\n-122975   Flags               01 (1) 'Modification'\n-122976   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12297A PAYLOAD\n-\n-12310C DATA DESCRIPTOR       08074B50 (134695760)\n-123110 CRC                   4BAE3F59 (1269710681)\n-123114 Compressed Size       00000792 (1938)\n-123118 Uncompressed Size     00000792 (1938)\n-\n-12311C LOCAL HEADER #402     04034B50 (67324752)\n-123120 Extract Zip Spec      14 (20) '2.0'\n-123121 Extract OS            00 (0) 'MS-DOS'\n-123122 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-123124 Compression Method    0000 (0) 'Stored'\n-123126 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12312A CRC                   00000000 (0)\n-12312E Compressed Size       00000000 (0)\n-123132 Uncompressed Size     00000000 (0)\n-123136 Filename Length       0041 (65)\n-123138 Extra Length          0009 (9)\n-12313A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12313A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12317B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12317D   Length              0005 (5)\n-12317F   Flags               01 (1) 'Modification'\n-123180   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-123184 PAYLOAD\n-\n-123987 DATA DESCRIPTOR       08074B50 (134695760)\n-12398B CRC                   A4C4918F (2764345743)\n-12398F Compressed Size       00000803 (2051)\n-123993 Uncompressed Size     00000803 (2051)\n-\n-123997 LOCAL HEADER #403     04034B50 (67324752)\n-12399B Extract Zip Spec      14 (20) '2.0'\n-12399C Extract OS            00 (0) 'MS-DOS'\n-12399D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-12399F Compression Method    0000 (0) 'Stored'\n-1239A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1239A5 CRC                   00000000 (0)\n-1239A9 Compressed Size       00000000 (0)\n-1239AD Uncompressed Size     00000000 (0)\n-1239B1 Filename Length       003D (61)\n-1239B3 Extra Length          0009 (9)\n-1239B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1239B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1239F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1239F4   Length              0005 (5)\n-1239F6   Flags               01 (1) 'Modification'\n-1239F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1239FB PAYLOAD\n-\n-1241F0 DATA DESCRIPTOR       08074B50 (134695760)\n-1241F4 CRC                   8696E439 (2258035769)\n-1241F8 Compressed Size       000007F5 (2037)\n-1241FC Uncompressed Size     000007F5 (2037)\n-\n-124200 LOCAL HEADER #404     04034B50 (67324752)\n-124204 Extract Zip Spec      14 (20) '2.0'\n-124205 Extract OS            00 (0) 'MS-DOS'\n-124206 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-124208 Compression Method    0000 (0) 'Stored'\n-12420A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12420E CRC                   00000000 (0)\n-124212 Compressed Size       00000000 (0)\n-124216 Uncompressed Size     00000000 (0)\n-12421A Filename Length       0039 (57)\n-12421C Extra Length          0009 (9)\n-12421E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12421E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-124257 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-124259   Length              0005 (5)\n-12425B   Flags               01 (1) 'Modification'\n-12425C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-124260 PAYLOAD\n-\n-124A6F DATA DESCRIPTOR       08074B50 (134695760)\n-124A73 CRC                   28964A03 (680937987)\n-124A77 Compressed Size       0000080F (2063)\n-124A7B Uncompressed Size     0000080F (2063)\n-\n-124A7F LOCAL HEADER #405     04034B50 (67324752)\n-124A83 Extract Zip Spec      14 (20) '2.0'\n-124A84 Extract OS            00 (0) 'MS-DOS'\n-124A85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-124A87 Compression Method    0000 (0) 'Stored'\n-124A89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-124A8D CRC                   00000000 (0)\n-124A91 Compressed Size       00000000 (0)\n-124A95 Uncompressed Size     00000000 (0)\n-124A99 Filename Length       0037 (55)\n-124A9B Extra Length          0009 (9)\n-124A9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x124A9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-124AD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-124AD6   Length              0005 (5)\n-124AD8   Flags               01 (1) 'Modification'\n-124AD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-124ADD PAYLOAD\n-\n-1251CC DATA DESCRIPTOR       08074B50 (134695760)\n-1251D0 CRC                   9EA0D74F (2661341007)\n-1251D4 Compressed Size       000006EF (1775)\n-1251D8 Uncompressed Size     000006EF (1775)\n-\n-1251DC LOCAL HEADER #406     04034B50 (67324752)\n-1251E0 Extract Zip Spec      14 (20) '2.0'\n-1251E1 Extract OS            00 (0) 'MS-DOS'\n-1251E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1251E4 Compression Method    0000 (0) 'Stored'\n-1251E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1251EA CRC                   00000000 (0)\n-1251EE Compressed Size       00000000 (0)\n-1251F2 Uncompressed Size     00000000 (0)\n-1251F6 Filename Length       003C (60)\n-1251F8 Extra Length          0009 (9)\n-1251FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1251FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-125236 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-125238   Length              0005 (5)\n-12523A   Flags               01 (1) 'Modification'\n-12523B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12523F PAYLOAD\n-\n-1259D4 DATA DESCRIPTOR       08074B50 (134695760)\n-1259D8 CRC                   B957E47F (3109545087)\n-1259DC Compressed Size       00000795 (1941)\n-1259E0 Uncompressed Size     00000795 (1941)\n-\n-1259E4 LOCAL HEADER #407     04034B50 (67324752)\n-1259E8 Extract Zip Spec      14 (20) '2.0'\n-1259E9 Extract OS            00 (0) 'MS-DOS'\n-1259EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1259EC Compression Method    0000 (0) 'Stored'\n-1259EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1259F2 CRC                   00000000 (0)\n-1259F6 Compressed Size       00000000 (0)\n-1259FA Uncompressed Size     00000000 (0)\n-1259FE Filename Length       0039 (57)\n-125A00 Extra Length          0009 (9)\n-125A02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x125A02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-125A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-125A3D   Length              0005 (5)\n-125A3F   Flags               01 (1) 'Modification'\n-125A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-125A44 PAYLOAD\n-\n-126149 DATA DESCRIPTOR       08074B50 (134695760)\n-12614D CRC                   12627859 (308443225)\n-126151 Compressed Size       00000705 (1797)\n-126155 Uncompressed Size     00000705 (1797)\n-\n-126159 LOCAL HEADER #408     04034B50 (67324752)\n-12615D Extract Zip Spec      14 (20) '2.0'\n-12615E Extract OS            00 (0) 'MS-DOS'\n-12615F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-126161 Compression Method    0000 (0) 'Stored'\n-126163 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-126167 CRC                   00000000 (0)\n-12616B Compressed Size       00000000 (0)\n-12616F Uncompressed Size     00000000 (0)\n-126173 Filename Length       003D (61)\n-126175 Extra Length          0009 (9)\n-126177 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x126177: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1261B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1261B6   Length              0005 (5)\n-1261B8   Flags               01 (1) 'Modification'\n-1261B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1261BD PAYLOAD\n-\n-126784 DATA DESCRIPTOR       08074B50 (134695760)\n-126788 CRC                   EE87A59D (4001867165)\n-12678C Compressed Size       000005C7 (1479)\n-126790 Uncompressed Size     000005C7 (1479)\n-\n-126794 LOCAL HEADER #409     04034B50 (67324752)\n-126798 Extract Zip Spec      14 (20) '2.0'\n-126799 Extract OS            00 (0) 'MS-DOS'\n-12679A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-12679C Compression Method    0000 (0) 'Stored'\n-12679E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1267A2 CRC                   00000000 (0)\n-1267A6 Compressed Size       00000000 (0)\n-1267AA Uncompressed Size     00000000 (0)\n-1267AE Filename Length       003D (61)\n-1267B0 Extra Length          0009 (9)\n-1267B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1267B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1267EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1267F1   Length              0005 (5)\n-1267F3   Flags               01 (1) 'Modification'\n-1267F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1267F8 PAYLOAD\n-\n-126F1F DATA DESCRIPTOR       08074B50 (134695760)\n-126F23 CRC                   6A312F64 (1781608292)\n-126F27 Compressed Size       00000727 (1831)\n-126F2B Uncompressed Size     00000727 (1831)\n-\n-126F2F LOCAL HEADER #410     04034B50 (67324752)\n-126F33 Extract Zip Spec      14 (20) '2.0'\n-126F34 Extract OS            00 (0) 'MS-DOS'\n-126F35 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-126F37 Compression Method    0000 (0) 'Stored'\n-126F39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-126F3D CRC                   00000000 (0)\n-126F41 Compressed Size       00000000 (0)\n-126F45 Uncompressed Size     00000000 (0)\n-126F49 Filename Length       0040 (64)\n-126F4B Extra Length          0009 (9)\n-126F4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x126F4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-126F8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-126F8F   Length              0005 (5)\n-126F91   Flags               01 (1) 'Modification'\n-126F92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-126F96 PAYLOAD\n-\n-1279C6 DATA DESCRIPTOR       08074B50 (134695760)\n-1279CA CRC                   CA63D3D1 (3395539921)\n-1279CE Compressed Size       00000A30 (2608)\n-1279D2 Uncompressed Size     00000A30 (2608)\n-\n-1279D6 LOCAL HEADER #411     04034B50 (67324752)\n-1279DA Extract Zip Spec      14 (20) '2.0'\n-1279DB Extract OS            00 (0) 'MS-DOS'\n-1279DC General Purpose Flag  0000 (0)\n-1279DE Compression Method    0000 (0) 'Stored'\n-1279E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1279E4 CRC                   00000000 (0)\n-1279E8 Compressed Size       00000000 (0)\n-1279EC Uncompressed Size     00000000 (0)\n-1279F0 Filename Length       0028 (40)\n-1279F2 Extra Length          0009 (9)\n-1279F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1279F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-127A1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-127A1E   Length              0005 (5)\n-127A20   Flags               01 (1) 'Modification'\n-127A21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-127A25 LOCAL HEADER #412     04034B50 (67324752)\n-127A29 Extract Zip Spec      14 (20) '2.0'\n-127A2A Extract OS            00 (0) 'MS-DOS'\n-127A2B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-127A2D Compression Method    0000 (0) 'Stored'\n-127A2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-127A33 CRC                   00000000 (0)\n-127A37 Compressed Size       00000000 (0)\n-127A3B Uncompressed Size     00000000 (0)\n-127A3F Filename Length       003B (59)\n-127A41 Extra Length          0009 (9)\n-127A43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x127A43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-127A7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-127A80   Length              0005 (5)\n-127A82   Flags               01 (1) 'Modification'\n-127A83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-127A87 PAYLOAD\n-\n-12A924 DATA DESCRIPTOR       08074B50 (134695760)\n-12A928 CRC                   350B3EEE (889929454)\n-12A92C Compressed Size       00002E9D (11933)\n-12A930 Uncompressed Size     00002E9D (11933)\n-\n-12A934 LOCAL HEADER #413     04034B50 (67324752)\n-12A938 Extract Zip Spec      14 (20) '2.0'\n-12A939 Extract OS            00 (0) 'MS-DOS'\n-12A93A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-12A93C Compression Method    0000 (0) 'Stored'\n-12A93E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12A942 CRC                   00000000 (0)\n-12A946 Compressed Size       00000000 (0)\n-12A94A Uncompressed Size     00000000 (0)\n-12A94E Filename Length       003A (58)\n-12A950 Extra Length          0009 (9)\n-12A952 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12A952: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12A98C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12A98E   Length              0005 (5)\n-12A990   Flags               01 (1) 'Modification'\n-12A991   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12A995 PAYLOAD\n-\n-12D901 DATA DESCRIPTOR       08074B50 (134695760)\n-12D905 CRC                   FE2BC051 (4264280145)\n-12D909 Compressed Size       00002F6C (12140)\n-12D90D Uncompressed Size     00002F6C (12140)\n-\n-12D911 LOCAL HEADER #414     04034B50 (67324752)\n-12D915 Extract Zip Spec      14 (20) '2.0'\n-12D916 Extract OS            00 (0) 'MS-DOS'\n-12D917 General Purpose Flag  0000 (0)\n-12D919 Compression Method    0000 (0) 'Stored'\n-12D91B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12D91F CRC                   00000000 (0)\n-12D923 Compressed Size       00000000 (0)\n-12D927 Uncompressed Size     00000000 (0)\n-12D92B Filename Length       0024 (36)\n-12D92D Extra Length          0009 (9)\n-12D92F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12D92F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12D953 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12D955   Length              0005 (5)\n-12D957   Flags               01 (1) 'Modification'\n-12D958   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-12D95C LOCAL HEADER #415     04034B50 (67324752)\n-12D960 Extract Zip Spec      14 (20) '2.0'\n-12D961 Extract OS            00 (0) 'MS-DOS'\n-12D962 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-12D964 Compression Method    0000 (0) 'Stored'\n-12D966 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12D96A CRC                   00000000 (0)\n-12D96E Compressed Size       00000000 (0)\n-12D972 Uncompressed Size     00000000 (0)\n-12D976 Filename Length       0037 (55)\n-12D978 Extra Length          0009 (9)\n-12D97A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12D97A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12D9B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12D9B3   Length              0005 (5)\n-12D9B5   Flags               01 (1) 'Modification'\n-12D9B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12D9BA PAYLOAD\n-\n-12F491 DATA DESCRIPTOR       08074B50 (134695760)\n-12F495 CRC                   57AE068E (1471022734)\n-12F499 Compressed Size       00001AD7 (6871)\n-12F49D Uncompressed Size     00001AD7 (6871)\n-\n-12F4A1 LOCAL HEADER #416     04034B50 (67324752)\n-12F4A5 Extract Zip Spec      14 (20) '2.0'\n-12F4A6 Extract OS            00 (0) 'MS-DOS'\n-12F4A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-12F4A9 Compression Method    0000 (0) 'Stored'\n-12F4AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-12F4AF CRC                   00000000 (0)\n-12F4B3 Compressed Size       00000000 (0)\n-12F4B7 Uncompressed Size     00000000 (0)\n-12F4BB Filename Length       002F (47)\n-12F4BD Extra Length          0009 (9)\n-12F4BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x12F4BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-12F4EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-12F4F0   Length              0005 (5)\n-12F4F2   Flags               01 (1) 'Modification'\n-12F4F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-12F4F7 PAYLOAD\n-\n-130FB4 DATA DESCRIPTOR       08074B50 (134695760)\n-130FB8 CRC                   1538A07E (356032638)\n-130FBC Compressed Size       00001ABD (6845)\n-130FC0 Uncompressed Size     00001ABD (6845)\n-\n-130FC4 LOCAL HEADER #417     04034B50 (67324752)\n-130FC8 Extract Zip Spec      14 (20) '2.0'\n-130FC9 Extract OS            00 (0) 'MS-DOS'\n-130FCA General Purpose Flag  0000 (0)\n-130FCC Compression Method    0000 (0) 'Stored'\n-130FCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-130FD2 CRC                   00000000 (0)\n-130FD6 Compressed Size       00000000 (0)\n-130FDA Uncompressed Size     00000000 (0)\n-130FDE Filename Length       0012 (18)\n-130FE0 Extra Length          0009 (9)\n-130FE2 Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x130FE2: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-130FF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-130FF6   Length              0005 (5)\n-130FF8   Flags               01 (1) 'Modification'\n-130FF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-130FFD LOCAL HEADER #418     04034B50 (67324752)\n-131001 Extract Zip Spec      14 (20) '2.0'\n-131002 Extract OS            00 (0) 'MS-DOS'\n-131003 General Purpose Flag  0000 (0)\n-131005 Compression Method    0000 (0) 'Stored'\n-131007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13100B CRC                   00000000 (0)\n-13100F Compressed Size       00000000 (0)\n-131013 Uncompressed Size     00000000 (0)\n-131017 Filename Length       0018 (24)\n-131019 Extra Length          0009 (9)\n-13101B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13101B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-131033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-131035   Length              0005 (5)\n-131037   Flags               01 (1) 'Modification'\n-131038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13103C LOCAL HEADER #419     04034B50 (67324752)\n-131040 Extract Zip Spec      14 (20) '2.0'\n-131041 Extract OS            00 (0) 'MS-DOS'\n-131042 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-131044 Compression Method    0000 (0) 'Stored'\n-131046 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13104A CRC                   00000000 (0)\n-13104E Compressed Size       00000000 (0)\n-131052 Uncompressed Size     00000000 (0)\n-131056 Filename Length       0022 (34)\n-131058 Extra Length          0009 (9)\n-13105A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13105A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13107C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13107E   Length              0005 (5)\n-131080   Flags               01 (1) 'Modification'\n-131081   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-131085 PAYLOAD\n-\n-13142C DATA DESCRIPTOR       08074B50 (134695760)\n-131430 CRC                   A0D1D7AD (2698106797)\n-131434 Compressed Size       000003A7 (935)\n-131438 Uncompressed Size     000003A7 (935)\n-\n-13143C LOCAL HEADER #420     04034B50 (67324752)\n-131440 Extract Zip Spec      14 (20) '2.0'\n-131441 Extract OS            00 (0) 'MS-DOS'\n-131442 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-131444 Compression Method    0000 (0) 'Stored'\n-131446 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13144A CRC                   00000000 (0)\n-13144E Compressed Size       00000000 (0)\n-131452 Uncompressed Size     00000000 (0)\n-131456 Filename Length       0029 (41)\n-131458 Extra Length          0009 (9)\n-13145A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13145A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-131483 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-131485   Length              0005 (5)\n-131487   Flags               01 (1) 'Modification'\n-131488   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13148C PAYLOAD\n-\n-1318CA DATA DESCRIPTOR       08074B50 (134695760)\n-1318CE CRC                   36E8AAE8 (921217768)\n-1318D2 Compressed Size       0000043E (1086)\n-1318D6 Uncompressed Size     0000043E (1086)\n-\n-1318DA LOCAL HEADER #421     04034B50 (67324752)\n-1318DE Extract Zip Spec      14 (20) '2.0'\n-1318DF Extract OS            00 (0) 'MS-DOS'\n-1318E0 General Purpose Flag  0000 (0)\n-1318E2 Compression Method    0000 (0) 'Stored'\n-1318E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1318E8 CRC                   00000000 (0)\n-1318EC Compressed Size       00000000 (0)\n-1318F0 Uncompressed Size     00000000 (0)\n-1318F4 Filename Length       0020 (32)\n-1318F6 Extra Length          0009 (9)\n-1318F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1318F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-131918 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13191A   Length              0005 (5)\n-13191C   Flags               01 (1) 'Modification'\n-13191D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-131921 LOCAL HEADER #422     04034B50 (67324752)\n-131925 Extract Zip Spec      14 (20) '2.0'\n-131926 Extract OS            00 (0) 'MS-DOS'\n-131927 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-131929 Compression Method    0000 (0) 'Stored'\n-13192B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13192F CRC                   00000000 (0)\n-131933 Compressed Size       00000000 (0)\n-131937 Uncompressed Size     00000000 (0)\n-13193B Filename Length       0039 (57)\n-13193D Extra Length          0009 (9)\n-13193F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13193F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-131978 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13197A   Length              0005 (5)\n-13197C   Flags               01 (1) 'Modification'\n-13197D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-131981 PAYLOAD\n-\n-132167 DATA DESCRIPTOR       08074B50 (134695760)\n-13216B CRC                   94A98A55 (2494138965)\n-13216F Compressed Size       000007E6 (2022)\n-132173 Uncompressed Size     000007E6 (2022)\n-\n-132177 LOCAL HEADER #423     04034B50 (67324752)\n-13217B Extract Zip Spec      14 (20) '2.0'\n-13217C Extract OS            00 (0) 'MS-DOS'\n-13217D General Purpose Flag  0000 (0)\n-13217F Compression Method    0000 (0) 'Stored'\n-132181 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-132185 CRC                   00000000 (0)\n-132189 Compressed Size       00000000 (0)\n-13218D Uncompressed Size     00000000 (0)\n-132191 Filename Length       0019 (25)\n-132193 Extra Length          0009 (9)\n-132195 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x132195: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1321AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1321B0   Length              0005 (5)\n-1321B2   Flags               01 (1) 'Modification'\n-1321B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1321B7 LOCAL HEADER #424     04034B50 (67324752)\n-1321BB Extract Zip Spec      14 (20) '2.0'\n-1321BC Extract OS            00 (0) 'MS-DOS'\n-1321BD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1321BF Compression Method    0000 (0) 'Stored'\n-1321C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1321C5 CRC                   00000000 (0)\n-1321C9 Compressed Size       00000000 (0)\n-1321CD Uncompressed Size     00000000 (0)\n-1321D1 Filename Length       0027 (39)\n-1321D3 Extra Length          0009 (9)\n-1321D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1321D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1321FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1321FE   Length              0005 (5)\n-132200   Flags               01 (1) 'Modification'\n-132201   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-132205 PAYLOAD\n-\n-13293D DATA DESCRIPTOR       08074B50 (134695760)\n-132941 CRC                   B2D5E5FC (3000362492)\n-132945 Compressed Size       00000738 (1848)\n-132949 Uncompressed Size     00000738 (1848)\n-\n-13294D LOCAL HEADER #425     04034B50 (67324752)\n-132951 Extract Zip Spec      14 (20) '2.0'\n-132952 Extract OS            00 (0) 'MS-DOS'\n-132953 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-132955 Compression Method    0000 (0) 'Stored'\n-132957 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13295B CRC                   00000000 (0)\n-13295F Compressed Size       00000000 (0)\n-132963 Uncompressed Size     00000000 (0)\n-132967 Filename Length       0021 (33)\n-132969 Extra Length          0009 (9)\n-13296B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13296B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13298C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13298E   Length              0005 (5)\n-132990   Flags               01 (1) 'Modification'\n-132991   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-132995 PAYLOAD\n-\n-13757A DATA DESCRIPTOR       08074B50 (134695760)\n-13757E CRC                   D19F2618 (3516868120)\n-137582 Compressed Size       00004BE5 (19429)\n-137586 Uncompressed Size     00004BE5 (19429)\n-\n-13758A LOCAL HEADER #426     04034B50 (67324752)\n-13758E Extract Zip Spec      14 (20) '2.0'\n-13758F Extract OS            00 (0) 'MS-DOS'\n-137590 General Purpose Flag  0000 (0)\n-137592 Compression Method    0000 (0) 'Stored'\n-137594 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-137598 CRC                   00000000 (0)\n-13759C Compressed Size       00000000 (0)\n-1375A0 Uncompressed Size     00000000 (0)\n-1375A4 Filename Length       0022 (34)\n-1375A6 Extra Length          0009 (9)\n-1375A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1375A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1375CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1375CC   Length              0005 (5)\n-1375CE   Flags               01 (1) 'Modification'\n-1375CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1375D3 LOCAL HEADER #427     04034B50 (67324752)\n-1375D7 Extract Zip Spec      14 (20) '2.0'\n-1375D8 Extract OS            00 (0) 'MS-DOS'\n-1375D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1375DB Compression Method    0000 (0) 'Stored'\n-1375DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1375E1 CRC                   00000000 (0)\n-1375E5 Compressed Size       00000000 (0)\n-1375E9 Uncompressed Size     00000000 (0)\n-1375ED Filename Length       002F (47)\n-1375EF Extra Length          0009 (9)\n-1375F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1375F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-137620 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-137622   Length              0005 (5)\n-137624   Flags               01 (1) 'Modification'\n-137625   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-137629 PAYLOAD\n-\n-1379EA DATA DESCRIPTOR       08074B50 (134695760)\n-1379EE CRC                   AB4B3845 (2873833541)\n-1379F2 Compressed Size       000003C1 (961)\n-1379F6 Uncompressed Size     000003C1 (961)\n-\n-1379FA LOCAL HEADER #428     04034B50 (67324752)\n-1379FE Extract Zip Spec      14 (20) '2.0'\n-1379FF Extract OS            00 (0) 'MS-DOS'\n-137A00 General Purpose Flag  0000 (0)\n-137A02 Compression Method    0000 (0) 'Stored'\n-137A04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-137A08 CRC                   00000000 (0)\n-137A0C Compressed Size       00000000 (0)\n-137A10 Uncompressed Size     00000000 (0)\n-137A14 Filename Length       0023 (35)\n-137A16 Extra Length          0009 (9)\n-137A18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x137A18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-137A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-137A3D   Length              0005 (5)\n-137A3F   Flags               01 (1) 'Modification'\n-137A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-137A44 LOCAL HEADER #429     04034B50 (67324752)\n-137A48 Extract Zip Spec      14 (20) '2.0'\n-137A49 Extract OS            00 (0) 'MS-DOS'\n-137A4A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-137A4C Compression Method    0000 (0) 'Stored'\n-137A4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-137A52 CRC                   00000000 (0)\n-137A56 Compressed Size       00000000 (0)\n-137A5A Uncompressed Size     00000000 (0)\n-137A5E Filename Length       0030 (48)\n-137A60 Extra Length          0009 (9)\n-137A62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x137A62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-137A92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-137A94   Length              0005 (5)\n-137A96   Flags               01 (1) 'Modification'\n-137A97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-137A9B PAYLOAD\n-\n-13806A DATA DESCRIPTOR       08074B50 (134695760)\n-13806E CRC                   87D33073 (2278764659)\n-138072 Compressed Size       000005CF (1487)\n-138076 Uncompressed Size     000005CF (1487)\n-\n-13807A LOCAL HEADER #430     04034B50 (67324752)\n-13807E Extract Zip Spec      14 (20) '2.0'\n-13807F Extract OS            00 (0) 'MS-DOS'\n-138080 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-138082 Compression Method    0000 (0) 'Stored'\n-138084 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-138088 CRC                   00000000 (0)\n-13808C Compressed Size       00000000 (0)\n-138090 Uncompressed Size     00000000 (0)\n-138094 Filename Length       0038 (56)\n-138096 Extra Length          0009 (9)\n-138098 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x138098: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1380D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1380D2   Length              0005 (5)\n-1380D4   Flags               01 (1) 'Modification'\n-1380D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1380D9 PAYLOAD\n-\n-1384CA DATA DESCRIPTOR       08074B50 (134695760)\n-1384CE CRC                   5F752BEF (1601514479)\n-1384D2 Compressed Size       000003F1 (1009)\n-1384D6 Uncompressed Size     000003F1 (1009)\n-\n-1384DA LOCAL HEADER #431     04034B50 (67324752)\n-1384DE Extract Zip Spec      14 (20) '2.0'\n-1384DF Extract OS            00 (0) 'MS-DOS'\n-1384E0 General Purpose Flag  0000 (0)\n-1384E2 Compression Method    0000 (0) 'Stored'\n-1384E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1384E8 CRC                   00000000 (0)\n-1384EC Compressed Size       00000000 (0)\n-1384F0 Uncompressed Size     00000000 (0)\n-1384F4 Filename Length       0020 (32)\n-1384F6 Extra Length          0009 (9)\n-1384F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1384F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-138518 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13851A   Length              0005 (5)\n-13851C   Flags               01 (1) 'Modification'\n-13851D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-138521 LOCAL HEADER #432     04034B50 (67324752)\n-138525 Extract Zip Spec      14 (20) '2.0'\n-138526 Extract OS            00 (0) 'MS-DOS'\n-138527 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-138529 Compression Method    0000 (0) 'Stored'\n-13852B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13852F CRC                   00000000 (0)\n-138533 Compressed Size       00000000 (0)\n-138537 Uncompressed Size     00000000 (0)\n-13853B Filename Length       0032 (50)\n-13853D Extra Length          0009 (9)\n-13853F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13853F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-138571 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-138573   Length              0005 (5)\n-138575   Flags               01 (1) 'Modification'\n-138576   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13857A PAYLOAD\n-\n-138941 DATA DESCRIPTOR       08074B50 (134695760)\n-138945 CRC                   75D97425 (1977185317)\n-138949 Compressed Size       000003C7 (967)\n-13894D Uncompressed Size     000003C7 (967)\n-\n-138951 LOCAL HEADER #433     04034B50 (67324752)\n-138955 Extract Zip Spec      14 (20) '2.0'\n-138956 Extract OS            00 (0) 'MS-DOS'\n-138957 General Purpose Flag  0000 (0)\n-138959 Compression Method    0000 (0) 'Stored'\n-13895B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13895F CRC                   00000000 (0)\n-138963 Compressed Size       00000000 (0)\n-138967 Uncompressed Size     00000000 (0)\n-13896B Filename Length       0023 (35)\n-13896D Extra Length          0009 (9)\n-13896F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13896F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-138992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-138994   Length              0005 (5)\n-138996   Flags               01 (1) 'Modification'\n-138997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13899B LOCAL HEADER #434     04034B50 (67324752)\n-13899F Extract Zip Spec      14 (20) '2.0'\n-1389A0 Extract OS            00 (0) 'MS-DOS'\n-1389A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1389A3 Compression Method    0000 (0) 'Stored'\n-1389A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1389A9 CRC                   00000000 (0)\n-1389AD Compressed Size       00000000 (0)\n-1389B1 Uncompressed Size     00000000 (0)\n-1389B5 Filename Length       0033 (51)\n-1389B7 Extra Length          0009 (9)\n-1389B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1389B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1389EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1389EE   Length              0005 (5)\n-1389F0   Flags               01 (1) 'Modification'\n-1389F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1389F5 PAYLOAD\n-\n-138DBE DATA DESCRIPTOR       08074B50 (134695760)\n-138DC2 CRC                   1B82D5A6 (461559206)\n-138DC6 Compressed Size       000003C9 (969)\n-138DCA Uncompressed Size     000003C9 (969)\n-\n-138DCE LOCAL HEADER #435     04034B50 (67324752)\n-138DD2 Extract Zip Spec      14 (20) '2.0'\n-138DD3 Extract OS            00 (0) 'MS-DOS'\n-138DD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-138DD6 Compression Method    0000 (0) 'Stored'\n-138DD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-138DDC CRC                   00000000 (0)\n-138DE0 Compressed Size       00000000 (0)\n-138DE4 Uncompressed Size     00000000 (0)\n-138DE8 Filename Length       0034 (52)\n-138DEA Extra Length          0009 (9)\n-138DEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x138DEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-138E20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-138E22   Length              0005 (5)\n-138E24   Flags               01 (1) 'Modification'\n-138E25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-138E29 PAYLOAD\n-\n-1391F4 DATA DESCRIPTOR       08074B50 (134695760)\n-1391F8 CRC                   E66C1AF8 (3865844472)\n-1391FC Compressed Size       000003CB (971)\n-139200 Uncompressed Size     000003CB (971)\n-\n-139204 LOCAL HEADER #436     04034B50 (67324752)\n-139208 Extract Zip Spec      14 (20) '2.0'\n-139209 Extract OS            00 (0) 'MS-DOS'\n-13920A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13920C Compression Method    0000 (0) 'Stored'\n-13920E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-139212 CRC                   00000000 (0)\n-139216 Compressed Size       00000000 (0)\n-13921A Uncompressed Size     00000000 (0)\n-13921E Filename Length       0035 (53)\n-139220 Extra Length          0009 (9)\n-139222 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x139222: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-139257 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-139259   Length              0005 (5)\n-13925B   Flags               01 (1) 'Modification'\n-13925C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-139260 PAYLOAD\n-\n-13990C DATA DESCRIPTOR       08074B50 (134695760)\n-139910 CRC                   A93FA4B2 (2839520434)\n-139914 Compressed Size       000006AC (1708)\n-139918 Uncompressed Size     000006AC (1708)\n-\n-13991C LOCAL HEADER #437     04034B50 (67324752)\n-139920 Extract Zip Spec      14 (20) '2.0'\n-139921 Extract OS            00 (0) 'MS-DOS'\n-139922 General Purpose Flag  0000 (0)\n-139924 Compression Method    0000 (0) 'Stored'\n-139926 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13992A CRC                   00000000 (0)\n-13992E Compressed Size       00000000 (0)\n-139932 Uncompressed Size     00000000 (0)\n-139936 Filename Length       0020 (32)\n-139938 Extra Length          0009 (9)\n-13993A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13993A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13995A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13995C   Length              0005 (5)\n-13995E   Flags               01 (1) 'Modification'\n-13995F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-139963 LOCAL HEADER #438     04034B50 (67324752)\n-139967 Extract Zip Spec      14 (20) '2.0'\n-139968 Extract OS            00 (0) 'MS-DOS'\n-139969 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13996B Compression Method    0000 (0) 'Stored'\n-13996D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-139971 CRC                   00000000 (0)\n-139975 Compressed Size       00000000 (0)\n-139979 Uncompressed Size     00000000 (0)\n-13997D Filename Length       002B (43)\n-13997F Extra Length          0009 (9)\n-139981 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x139981: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1399AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1399AE   Length              0005 (5)\n-1399B0   Flags               01 (1) 'Modification'\n-1399B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1399B5 PAYLOAD\n-\n-139E83 DATA DESCRIPTOR       08074B50 (134695760)\n-139E87 CRC                   BEC11652 (3200325202)\n-139E8B Compressed Size       000004CE (1230)\n-139E8F Uncompressed Size     000004CE (1230)\n-\n-139E93 LOCAL HEADER #439     04034B50 (67324752)\n-139E97 Extract Zip Spec      14 (20) '2.0'\n-139E98 Extract OS            00 (0) 'MS-DOS'\n-139E99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-139E9B Compression Method    0000 (0) 'Stored'\n-139E9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-139EA1 CRC                   00000000 (0)\n-139EA5 Compressed Size       00000000 (0)\n-139EA9 Uncompressed Size     00000000 (0)\n-139EAD Filename Length       0032 (50)\n-139EAF Extra Length          0009 (9)\n-139EB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x139EB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-139EE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-139EE5   Length              0005 (5)\n-139EE7   Flags               01 (1) 'Modification'\n-139EE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-139EEC PAYLOAD\n-\n-13A2D9 DATA DESCRIPTOR       08074B50 (134695760)\n-13A2DD CRC                   E8509F41 (3897597761)\n-13A2E1 Compressed Size       000003ED (1005)\n-13A2E5 Uncompressed Size     000003ED (1005)\n-\n-13A2E9 LOCAL HEADER #440     04034B50 (67324752)\n-13A2ED Extract Zip Spec      14 (20) '2.0'\n-13A2EE Extract OS            00 (0) 'MS-DOS'\n-13A2EF General Purpose Flag  0000 (0)\n-13A2F1 Compression Method    0000 (0) 'Stored'\n-13A2F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13A2F7 CRC                   00000000 (0)\n-13A2FB Compressed Size       00000000 (0)\n-13A2FF Uncompressed Size     00000000 (0)\n-13A303 Filename Length       001F (31)\n-13A305 Extra Length          0009 (9)\n-13A307 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13A307: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13A326 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13A328   Length              0005 (5)\n-13A32A   Flags               01 (1) 'Modification'\n-13A32B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13A32F LOCAL HEADER #441     04034B50 (67324752)\n-13A333 Extract Zip Spec      14 (20) '2.0'\n-13A334 Extract OS            00 (0) 'MS-DOS'\n-13A335 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13A337 Compression Method    0000 (0) 'Stored'\n-13A339 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13A33D CRC                   00000000 (0)\n-13A341 Compressed Size       00000000 (0)\n-13A345 Uncompressed Size     00000000 (0)\n-13A349 Filename Length       002D (45)\n-13A34B Extra Length          0009 (9)\n-13A34D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13A34D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13A37A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13A37C   Length              0005 (5)\n-13A37E   Flags               01 (1) 'Modification'\n-13A37F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13A383 PAYLOAD\n-\n-13A740 DATA DESCRIPTOR       08074B50 (134695760)\n-13A744 CRC                   DEFC6FC7 (3741085639)\n-13A748 Compressed Size       000003BD (957)\n-13A74C Uncompressed Size     000003BD (957)\n-\n-13A750 LOCAL HEADER #442     04034B50 (67324752)\n-13A754 Extract Zip Spec      14 (20) '2.0'\n-13A755 Extract OS            00 (0) 'MS-DOS'\n-13A756 General Purpose Flag  0000 (0)\n-13A758 Compression Method    0000 (0) 'Stored'\n-13A75A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13A75E CRC                   00000000 (0)\n-13A762 Compressed Size       00000000 (0)\n-13A766 Uncompressed Size     00000000 (0)\n-13A76A Filename Length       0024 (36)\n-13A76C Extra Length          0009 (9)\n-13A76E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13A76E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13A792 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13A794   Length              0005 (5)\n-13A796   Flags               01 (1) 'Modification'\n-13A797   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13A79B LOCAL HEADER #443     04034B50 (67324752)\n-13A79F Extract Zip Spec      14 (20) '2.0'\n-13A7A0 Extract OS            00 (0) 'MS-DOS'\n-13A7A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13A7A3 Compression Method    0000 (0) 'Stored'\n-13A7A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13A7A9 CRC                   00000000 (0)\n-13A7AD Compressed Size       00000000 (0)\n-13A7B1 Uncompressed Size     00000000 (0)\n-13A7B5 Filename Length       0033 (51)\n-13A7B7 Extra Length          0009 (9)\n-13A7B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13A7B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13A7EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13A7EE   Length              0005 (5)\n-13A7F0   Flags               01 (1) 'Modification'\n-13A7F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13A7F5 PAYLOAD\n-\n-13ACD6 DATA DESCRIPTOR       08074B50 (134695760)\n-13ACDA CRC                   34B28AB6 (884116150)\n-13ACDE Compressed Size       000004E1 (1249)\n-13ACE2 Uncompressed Size     000004E1 (1249)\n-\n-13ACE6 LOCAL HEADER #444     04034B50 (67324752)\n-13ACEA Extract Zip Spec      14 (20) '2.0'\n-13ACEB Extract OS            00 (0) 'MS-DOS'\n-13ACEC General Purpose Flag  0000 (0)\n-13ACEE Compression Method    0000 (0) 'Stored'\n-13ACF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13ACF4 CRC                   00000000 (0)\n-13ACF8 Compressed Size       00000000 (0)\n-13ACFC Uncompressed Size     00000000 (0)\n-13AD00 Filename Length       001F (31)\n-13AD02 Extra Length          0009 (9)\n-13AD04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13AD04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13AD23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13AD25   Length              0005 (5)\n-13AD27   Flags               01 (1) 'Modification'\n-13AD28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13AD2C LOCAL HEADER #445     04034B50 (67324752)\n-13AD30 Extract Zip Spec      14 (20) '2.0'\n-13AD31 Extract OS            00 (0) 'MS-DOS'\n-13AD32 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13AD34 Compression Method    0000 (0) 'Stored'\n-13AD36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13AD3A CRC                   00000000 (0)\n-13AD3E Compressed Size       00000000 (0)\n-13AD42 Uncompressed Size     00000000 (0)\n-13AD46 Filename Length       002C (44)\n-13AD48 Extra Length          0009 (9)\n-13AD4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13AD4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13AD76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13AD78   Length              0005 (5)\n-13AD7A   Flags               01 (1) 'Modification'\n-13AD7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13AD7F PAYLOAD\n-\n-13BF74 DATA DESCRIPTOR       08074B50 (134695760)\n-13BF78 CRC                   7889994B (2022283595)\n-13BF7C Compressed Size       000011F5 (4597)\n-13BF80 Uncompressed Size     000011F5 (4597)\n-\n-13BF84 LOCAL HEADER #446     04034B50 (67324752)\n-13BF88 Extract Zip Spec      14 (20) '2.0'\n-13BF89 Extract OS            00 (0) 'MS-DOS'\n-13BF8A General Purpose Flag  0000 (0)\n-13BF8C Compression Method    0000 (0) 'Stored'\n-13BF8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13BF92 CRC                   00000000 (0)\n-13BF96 Compressed Size       00000000 (0)\n-13BF9A Uncompressed Size     00000000 (0)\n-13BF9E Filename Length       0019 (25)\n-13BFA0 Extra Length          0009 (9)\n-13BFA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13BFA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13BFBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13BFBD   Length              0005 (5)\n-13BFBF   Flags               01 (1) 'Modification'\n-13BFC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13BFC4 LOCAL HEADER #447     04034B50 (67324752)\n-13BFC8 Extract Zip Spec      14 (20) '2.0'\n-13BFC9 Extract OS            00 (0) 'MS-DOS'\n-13BFCA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13BFCC Compression Method    0000 (0) 'Stored'\n-13BFCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13BFD2 CRC                   00000000 (0)\n-13BFD6 Compressed Size       00000000 (0)\n-13BFDA Uncompressed Size     00000000 (0)\n-13BFDE Filename Length       002F (47)\n-13BFE0 Extra Length          0009 (9)\n-13BFE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13BFE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13C011 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13C013   Length              0005 (5)\n-13C015   Flags               01 (1) 'Modification'\n-13C016   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13C01A PAYLOAD\n-\n-13C460 DATA DESCRIPTOR       08074B50 (134695760)\n-13C464 CRC                   785E6462 (2019452002)\n-13C468 Compressed Size       00000446 (1094)\n-13C46C Uncompressed Size     00000446 (1094)\n-\n-13C470 LOCAL HEADER #448     04034B50 (67324752)\n-13C474 Extract Zip Spec      14 (20) '2.0'\n-13C475 Extract OS            00 (0) 'MS-DOS'\n-13C476 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13C478 Compression Method    0000 (0) 'Stored'\n-13C47A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13C47E CRC                   00000000 (0)\n-13C482 Compressed Size       00000000 (0)\n-13C486 Uncompressed Size     00000000 (0)\n-13C48A Filename Length       002C (44)\n-13C48C Extra Length          0009 (9)\n-13C48E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13C48E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13C4BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13C4BC   Length              0005 (5)\n-13C4BE   Flags               01 (1) 'Modification'\n-13C4BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13C4C3 PAYLOAD\n-\n-13C87A DATA DESCRIPTOR       08074B50 (134695760)\n-13C87E CRC                   12EE7A54 (317618772)\n-13C882 Compressed Size       000003B7 (951)\n-13C886 Uncompressed Size     000003B7 (951)\n-\n-13C88A LOCAL HEADER #449     04034B50 (67324752)\n-13C88E Extract Zip Spec      14 (20) '2.0'\n-13C88F Extract OS            00 (0) 'MS-DOS'\n-13C890 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13C892 Compression Method    0000 (0) 'Stored'\n-13C894 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13C898 CRC                   00000000 (0)\n-13C89C Compressed Size       00000000 (0)\n-13C8A0 Uncompressed Size     00000000 (0)\n-13C8A4 Filename Length       002C (44)\n-13C8A6 Extra Length          0009 (9)\n-13C8A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13C8A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13C8D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13C8D6   Length              0005 (5)\n-13C8D8   Flags               01 (1) 'Modification'\n-13C8D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13C8DD PAYLOAD\n-\n-13CC94 DATA DESCRIPTOR       08074B50 (134695760)\n-13CC98 CRC                   AE09219E (2919834014)\n-13CC9C Compressed Size       000003B7 (951)\n-13CCA0 Uncompressed Size     000003B7 (951)\n-\n-13CCA4 LOCAL HEADER #450     04034B50 (67324752)\n-13CCA8 Extract Zip Spec      14 (20) '2.0'\n-13CCA9 Extract OS            00 (0) 'MS-DOS'\n-13CCAA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13CCAC Compression Method    0000 (0) 'Stored'\n-13CCAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13CCB2 CRC                   00000000 (0)\n-13CCB6 Compressed Size       00000000 (0)\n-13CCBA Uncompressed Size     00000000 (0)\n-13CCBE Filename Length       002A (42)\n-13CCC0 Extra Length          0009 (9)\n-13CCC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13CCC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13CCEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13CCEE   Length              0005 (5)\n-13CCF0   Flags               01 (1) 'Modification'\n-13CCF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13CCF5 PAYLOAD\n-\n-13D0AA DATA DESCRIPTOR       08074B50 (134695760)\n-13D0AE CRC                   C0617C64 (3227614308)\n-13D0B2 Compressed Size       000003B5 (949)\n-13D0B6 Uncompressed Size     000003B5 (949)\n-\n-13D0BA LOCAL HEADER #451     04034B50 (67324752)\n-13D0BE Extract Zip Spec      14 (20) '2.0'\n-13D0BF Extract OS            00 (0) 'MS-DOS'\n-13D0C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13D0C2 Compression Method    0000 (0) 'Stored'\n-13D0C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13D0C8 CRC                   00000000 (0)\n-13D0CC Compressed Size       00000000 (0)\n-13D0D0 Uncompressed Size     00000000 (0)\n-13D0D4 Filename Length       002A (42)\n-13D0D6 Extra Length          0009 (9)\n-13D0D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13D0D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13D102 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13D104   Length              0005 (5)\n-13D106   Flags               01 (1) 'Modification'\n-13D107   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13D10B PAYLOAD\n-\n-13D52B DATA DESCRIPTOR       08074B50 (134695760)\n-13D52F CRC                   50E43A38 (1357134392)\n-13D533 Compressed Size       00000420 (1056)\n-13D537 Uncompressed Size     00000420 (1056)\n-\n-13D53B LOCAL HEADER #452     04034B50 (67324752)\n-13D53F Extract Zip Spec      14 (20) '2.0'\n-13D540 Extract OS            00 (0) 'MS-DOS'\n-13D541 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13D543 Compression Method    0000 (0) 'Stored'\n-13D545 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13D549 CRC                   00000000 (0)\n-13D54D Compressed Size       00000000 (0)\n-13D551 Uncompressed Size     00000000 (0)\n-13D555 Filename Length       002B (43)\n-13D557 Extra Length          0009 (9)\n-13D559 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13D559: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13D584 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13D586   Length              0005 (5)\n-13D588   Flags               01 (1) 'Modification'\n-13D589   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13D58D PAYLOAD\n-\n-13D9B5 DATA DESCRIPTOR       08074B50 (134695760)\n-13D9B9 CRC                   7B632F2C (2070097708)\n-13D9BD Compressed Size       00000428 (1064)\n-13D9C1 Uncompressed Size     00000428 (1064)\n-\n-13D9C5 LOCAL HEADER #453     04034B50 (67324752)\n-13D9C9 Extract Zip Spec      14 (20) '2.0'\n-13D9CA Extract OS            00 (0) 'MS-DOS'\n-13D9CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13D9CD Compression Method    0000 (0) 'Stored'\n-13D9CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13D9D3 CRC                   00000000 (0)\n-13D9D7 Compressed Size       00000000 (0)\n-13D9DB Uncompressed Size     00000000 (0)\n-13D9DF Filename Length       002C (44)\n-13D9E1 Extra Length          0009 (9)\n-13D9E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13D9E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13DA0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13DA11   Length              0005 (5)\n-13DA13   Flags               01 (1) 'Modification'\n-13DA14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13DA18 PAYLOAD\n-\n-13DE99 DATA DESCRIPTOR       08074B50 (134695760)\n-13DE9D CRC                   885A72D3 (2287629011)\n-13DEA1 Compressed Size       00000481 (1153)\n-13DEA5 Uncompressed Size     00000481 (1153)\n-\n-13DEA9 LOCAL HEADER #454     04034B50 (67324752)\n-13DEAD Extract Zip Spec      14 (20) '2.0'\n-13DEAE Extract OS            00 (0) 'MS-DOS'\n-13DEAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13DEB1 Compression Method    0000 (0) 'Stored'\n-13DEB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13DEB7 CRC                   00000000 (0)\n-13DEBB Compressed Size       00000000 (0)\n-13DEBF Uncompressed Size     00000000 (0)\n-13DEC3 Filename Length       002C (44)\n-13DEC5 Extra Length          0009 (9)\n-13DEC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13DEC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13DEF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13DEF5   Length              0005 (5)\n-13DEF7   Flags               01 (1) 'Modification'\n-13DEF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13DEFC PAYLOAD\n-\n-13E2B3 DATA DESCRIPTOR       08074B50 (134695760)\n-13E2B7 CRC                   419EAEDE (1100918494)\n-13E2BB Compressed Size       000003B7 (951)\n-13E2BF Uncompressed Size     000003B7 (951)\n-\n-13E2C3 LOCAL HEADER #455     04034B50 (67324752)\n-13E2C7 Extract Zip Spec      14 (20) '2.0'\n-13E2C8 Extract OS            00 (0) 'MS-DOS'\n-13E2C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13E2CB Compression Method    0000 (0) 'Stored'\n-13E2CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13E2D1 CRC                   00000000 (0)\n-13E2D5 Compressed Size       00000000 (0)\n-13E2D9 Uncompressed Size     00000000 (0)\n-13E2DD Filename Length       002D (45)\n-13E2DF Extra Length          0009 (9)\n-13E2E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13E2E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13E30E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13E310   Length              0005 (5)\n-13E312   Flags               01 (1) 'Modification'\n-13E313   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13E317 PAYLOAD\n-\n-13E771 DATA DESCRIPTOR       08074B50 (134695760)\n-13E775 CRC                   76D9341F (1993946143)\n-13E779 Compressed Size       0000045A (1114)\n-13E77D Uncompressed Size     0000045A (1114)\n-\n-13E781 LOCAL HEADER #456     04034B50 (67324752)\n-13E785 Extract Zip Spec      14 (20) '2.0'\n-13E786 Extract OS            00 (0) 'MS-DOS'\n-13E787 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13E789 Compression Method    0000 (0) 'Stored'\n-13E78B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13E78F CRC                   00000000 (0)\n-13E793 Compressed Size       00000000 (0)\n-13E797 Uncompressed Size     00000000 (0)\n-13E79B Filename Length       002C (44)\n-13E79D Extra Length          0009 (9)\n-13E79F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13E79F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13E7CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13E7CD   Length              0005 (5)\n-13E7CF   Flags               01 (1) 'Modification'\n-13E7D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13E7D4 PAYLOAD\n-\n-13EC6C DATA DESCRIPTOR       08074B50 (134695760)\n-13EC70 CRC                   61ADD6F9 (1638782713)\n-13EC74 Compressed Size       00000498 (1176)\n-13EC78 Uncompressed Size     00000498 (1176)\n-\n-13EC7C LOCAL HEADER #457     04034B50 (67324752)\n-13EC80 Extract Zip Spec      14 (20) '2.0'\n-13EC81 Extract OS            00 (0) 'MS-DOS'\n-13EC82 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13EC84 Compression Method    0000 (0) 'Stored'\n-13EC86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13EC8A CRC                   00000000 (0)\n-13EC8E Compressed Size       00000000 (0)\n-13EC92 Uncompressed Size     00000000 (0)\n-13EC96 Filename Length       002B (43)\n-13EC98 Extra Length          0009 (9)\n-13EC9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13EC9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13ECC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13ECC7   Length              0005 (5)\n-13ECC9   Flags               01 (1) 'Modification'\n-13ECCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13ECCE PAYLOAD\n-\n-13F135 DATA DESCRIPTOR       08074B50 (134695760)\n-13F139 CRC                   E87449AF (3899935151)\n-13F13D Compressed Size       00000467 (1127)\n-13F141 Uncompressed Size     00000467 (1127)\n-\n-13F145 LOCAL HEADER #458     04034B50 (67324752)\n-13F149 Extract Zip Spec      14 (20) '2.0'\n-13F14A Extract OS            00 (0) 'MS-DOS'\n-13F14B General Purpose Flag  0000 (0)\n-13F14D Compression Method    0000 (0) 'Stored'\n-13F14F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13F153 CRC                   00000000 (0)\n-13F157 Compressed Size       00000000 (0)\n-13F15B Uncompressed Size     00000000 (0)\n-13F15F Filename Length       0024 (36)\n-13F161 Extra Length          0009 (9)\n-13F163 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13F163: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13F187 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13F189   Length              0005 (5)\n-13F18B   Flags               01 (1) 'Modification'\n-13F18C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-13F190 LOCAL HEADER #459     04034B50 (67324752)\n-13F194 Extract Zip Spec      14 (20) '2.0'\n-13F195 Extract OS            00 (0) 'MS-DOS'\n-13F196 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13F198 Compression Method    0000 (0) 'Stored'\n-13F19A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13F19E CRC                   00000000 (0)\n-13F1A2 Compressed Size       00000000 (0)\n-13F1A6 Uncompressed Size     00000000 (0)\n-13F1AA Filename Length       0032 (50)\n-13F1AC Extra Length          0009 (9)\n-13F1AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13F1AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13F1E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13F1E2   Length              0005 (5)\n-13F1E4   Flags               01 (1) 'Modification'\n-13F1E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13F1E9 PAYLOAD\n-\n-13FC28 DATA DESCRIPTOR       08074B50 (134695760)\n-13FC2C CRC                   9122A7A7 (2434967463)\n-13FC30 Compressed Size       00000A3F (2623)\n-13FC34 Uncompressed Size     00000A3F (2623)\n-\n-13FC38 LOCAL HEADER #460     04034B50 (67324752)\n-13FC3C Extract Zip Spec      14 (20) '2.0'\n-13FC3D Extract OS            00 (0) 'MS-DOS'\n-13FC3E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-13FC40 Compression Method    0000 (0) 'Stored'\n-13FC42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-13FC46 CRC                   00000000 (0)\n-13FC4A Compressed Size       00000000 (0)\n-13FC4E Uncompressed Size     00000000 (0)\n-13FC52 Filename Length       0030 (48)\n-13FC54 Extra Length          0009 (9)\n-13FC56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x13FC56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-13FC86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-13FC88   Length              0005 (5)\n-13FC8A   Flags               01 (1) 'Modification'\n-13FC8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-13FC8F PAYLOAD\n-\n-140726 DATA DESCRIPTOR       08074B50 (134695760)\n-14072A CRC                   3228CAA5 (841534117)\n-14072E Compressed Size       00000A97 (2711)\n-140732 Uncompressed Size     00000A97 (2711)\n-\n-140736 LOCAL HEADER #461     04034B50 (67324752)\n-14073A Extract Zip Spec      14 (20) '2.0'\n-14073B Extract OS            00 (0) 'MS-DOS'\n-14073C General Purpose Flag  0000 (0)\n-14073E Compression Method    0000 (0) 'Stored'\n-140740 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-140744 CRC                   00000000 (0)\n-140748 Compressed Size       00000000 (0)\n-14074C Uncompressed Size     00000000 (0)\n-140750 Filename Length       0020 (32)\n-140752 Extra Length          0009 (9)\n-140754 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x140754: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-140774 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-140776   Length              0005 (5)\n-140778   Flags               01 (1) 'Modification'\n-140779   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14077D LOCAL HEADER #462     04034B50 (67324752)\n-140781 Extract Zip Spec      14 (20) '2.0'\n-140782 Extract OS            00 (0) 'MS-DOS'\n-140783 General Purpose Flag  0000 (0)\n-140785 Compression Method    0000 (0) 'Stored'\n-140787 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14078B CRC                   00000000 (0)\n-14078F Compressed Size       00000000 (0)\n-140793 Uncompressed Size     00000000 (0)\n-140797 Filename Length       0028 (40)\n-140799 Extra Length          0009 (9)\n-14079B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14079B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1407C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1407C5   Length              0005 (5)\n-1407C7   Flags               01 (1) 'Modification'\n-1407C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1407CC LOCAL HEADER #463     04034B50 (67324752)\n-1407D0 Extract Zip Spec      14 (20) '2.0'\n-1407D1 Extract OS            00 (0) 'MS-DOS'\n-1407D2 General Purpose Flag  0000 (0)\n-1407D4 Compression Method    0000 (0) 'Stored'\n-1407D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1407DA CRC                   00000000 (0)\n-1407DE Compressed Size       00000000 (0)\n-1407E2 Uncompressed Size     00000000 (0)\n-1407E6 Filename Length       0033 (51)\n-1407E8 Extra Length          0009 (9)\n-1407EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1407EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14081D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14081F   Length              0005 (5)\n-140821   Flags               01 (1) 'Modification'\n-140822   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-140826 LOCAL HEADER #464     04034B50 (67324752)\n-14082A Extract Zip Spec      14 (20) '2.0'\n-14082B Extract OS            00 (0) 'MS-DOS'\n-14082C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14082E Compression Method    0000 (0) 'Stored'\n-140830 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-140834 CRC                   00000000 (0)\n-140838 Compressed Size       00000000 (0)\n-14083C Uncompressed Size     00000000 (0)\n-140840 Filename Length       0043 (67)\n-140842 Extra Length          0009 (9)\n-140844 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x140844: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-140887 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-140889   Length              0005 (5)\n-14088B   Flags               01 (1) 'Modification'\n-14088C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-140890 PAYLOAD\n-\n-141343 DATA DESCRIPTOR       08074B50 (134695760)\n-141347 CRC                   CE003164 (3456119140)\n-14134B Compressed Size       00000AB3 (2739)\n-14134F Uncompressed Size     00000AB3 (2739)\n-\n-141353 LOCAL HEADER #465     04034B50 (67324752)\n-141357 Extract Zip Spec      14 (20) '2.0'\n-141358 Extract OS            00 (0) 'MS-DOS'\n-141359 General Purpose Flag  0000 (0)\n-14135B Compression Method    0000 (0) 'Stored'\n-14135D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-141361 CRC                   00000000 (0)\n-141365 Compressed Size       00000000 (0)\n-141369 Uncompressed Size     00000000 (0)\n-14136D Filename Length       001C (28)\n-14136F Extra Length          0009 (9)\n-141371 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x141371: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14138D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14138F   Length              0005 (5)\n-141391   Flags               01 (1) 'Modification'\n-141392   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-141396 LOCAL HEADER #466     04034B50 (67324752)\n-14139A Extract Zip Spec      14 (20) '2.0'\n-14139B Extract OS            00 (0) 'MS-DOS'\n-14139C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14139E Compression Method    0000 (0) 'Stored'\n-1413A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1413A4 CRC                   00000000 (0)\n-1413A8 Compressed Size       00000000 (0)\n-1413AC Uncompressed Size     00000000 (0)\n-1413B0 Filename Length       002A (42)\n-1413B2 Extra Length          0009 (9)\n-1413B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1413B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1413DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1413E0   Length              0005 (5)\n-1413E2   Flags               01 (1) 'Modification'\n-1413E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1413E7 PAYLOAD\n-\n-14179E DATA DESCRIPTOR       08074B50 (134695760)\n-1417A2 CRC                   DC9E9A97 (3701381783)\n-1417A6 Compressed Size       000003B7 (951)\n-1417AA Uncompressed Size     000003B7 (951)\n-\n-1417AE LOCAL HEADER #467     04034B50 (67324752)\n-1417B2 Extract Zip Spec      14 (20) '2.0'\n-1417B3 Extract OS            00 (0) 'MS-DOS'\n-1417B4 General Purpose Flag  0000 (0)\n-1417B6 Compression Method    0000 (0) 'Stored'\n-1417B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1417BC CRC                   00000000 (0)\n-1417C0 Compressed Size       00000000 (0)\n-1417C4 Uncompressed Size     00000000 (0)\n-1417C8 Filename Length       001A (26)\n-1417CA Extra Length          0009 (9)\n-1417CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1417CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1417E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1417E8   Length              0005 (5)\n-1417EA   Flags               01 (1) 'Modification'\n-1417EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1417EF LOCAL HEADER #468     04034B50 (67324752)\n-1417F3 Extract Zip Spec      14 (20) '2.0'\n-1417F4 Extract OS            00 (0) 'MS-DOS'\n-1417F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1417F7 Compression Method    0000 (0) 'Stored'\n-1417F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1417FD CRC                   00000000 (0)\n-141801 Compressed Size       00000000 (0)\n-141805 Uncompressed Size     00000000 (0)\n-141809 Filename Length       0026 (38)\n-14180B Extra Length          0009 (9)\n-14180D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14180D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-141833 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-141835   Length              0005 (5)\n-141837   Flags               01 (1) 'Modification'\n-141838   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14183C PAYLOAD\n-\n-141E7B DATA DESCRIPTOR       08074B50 (134695760)\n-141E7F CRC                   D9881C34 (3649575988)\n-141E83 Compressed Size       0000063F (1599)\n-141E87 Uncompressed Size     0000063F (1599)\n-\n-141E8B LOCAL HEADER #469     04034B50 (67324752)\n-141E8F Extract Zip Spec      14 (20) '2.0'\n-141E90 Extract OS            00 (0) 'MS-DOS'\n-141E91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-141E93 Compression Method    0000 (0) 'Stored'\n-141E95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-141E99 CRC                   00000000 (0)\n-141E9D Compressed Size       00000000 (0)\n-141EA1 Uncompressed Size     00000000 (0)\n-141EA5 Filename Length       002D (45)\n-141EA7 Extra Length          0009 (9)\n-141EA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x141EA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-141ED6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-141ED8   Length              0005 (5)\n-141EDA   Flags               01 (1) 'Modification'\n-141EDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-141EDF PAYLOAD\n-\n-1423B5 DATA DESCRIPTOR       08074B50 (134695760)\n-1423B9 CRC                   29B723AE (699868078)\n-1423BD Compressed Size       000004D6 (1238)\n-1423C1 Uncompressed Size     000004D6 (1238)\n-\n-1423C5 LOCAL HEADER #470     04034B50 (67324752)\n-1423C9 Extract Zip Spec      14 (20) '2.0'\n-1423CA Extract OS            00 (0) 'MS-DOS'\n-1423CB General Purpose Flag  0000 (0)\n-1423CD Compression Method    0000 (0) 'Stored'\n-1423CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1423D3 CRC                   00000000 (0)\n-1423D7 Compressed Size       00000000 (0)\n-1423DB Uncompressed Size     00000000 (0)\n-1423DF Filename Length       0016 (22)\n-1423E1 Extra Length          0009 (9)\n-1423E3 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1423E3: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1423F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1423FB   Length              0005 (5)\n-1423FD   Flags               01 (1) 'Modification'\n-1423FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-142402 LOCAL HEADER #471     04034B50 (67324752)\n-142406 Extract Zip Spec      14 (20) '2.0'\n-142407 Extract OS            00 (0) 'MS-DOS'\n-142408 General Purpose Flag  0000 (0)\n-14240A Compression Method    0000 (0) 'Stored'\n-14240C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-142410 CRC                   00000000 (0)\n-142414 Compressed Size       00000000 (0)\n-142418 Uncompressed Size     00000000 (0)\n-14241C Filename Length       001E (30)\n-14241E Extra Length          0009 (9)\n-142420 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x142420: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14243E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-142440   Length              0005 (5)\n-142442   Flags               01 (1) 'Modification'\n-142443   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-142447 LOCAL HEADER #472     04034B50 (67324752)\n-14244B Extract Zip Spec      14 (20) '2.0'\n-14244C Extract OS            00 (0) 'MS-DOS'\n-14244D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14244F Compression Method    0000 (0) 'Stored'\n-142451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-142455 CRC                   00000000 (0)\n-142459 Compressed Size       00000000 (0)\n-14245D Uncompressed Size     00000000 (0)\n-142461 Filename Length       002E (46)\n-142463 Extra Length          0009 (9)\n-142465 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x142465: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-142493 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-142495   Length              0005 (5)\n-142497   Flags               01 (1) 'Modification'\n-142498   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14249C PAYLOAD\n-\n-1429BF DATA DESCRIPTOR       08074B50 (134695760)\n-1429C3 CRC                   496AA8AF (1231726767)\n-1429C7 Compressed Size       00000523 (1315)\n-1429CB Uncompressed Size     00000523 (1315)\n-\n-1429CF LOCAL HEADER #473     04034B50 (67324752)\n-1429D3 Extract Zip Spec      14 (20) '2.0'\n-1429D4 Extract OS            00 (0) 'MS-DOS'\n-1429D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1429D7 Compression Method    0000 (0) 'Stored'\n-1429D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1429DD CRC                   00000000 (0)\n-1429E1 Compressed Size       00000000 (0)\n-1429E5 Uncompressed Size     00000000 (0)\n-1429E9 Filename Length       0031 (49)\n-1429EB Extra Length          0009 (9)\n-1429ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1429ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-142A1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-142A20   Length              0005 (5)\n-142A22   Flags               01 (1) 'Modification'\n-142A23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-142A27 PAYLOAD\n-\n-142FCD DATA DESCRIPTOR       08074B50 (134695760)\n-142FD1 CRC                   52213B11 (1377909521)\n-142FD5 Compressed Size       000005A6 (1446)\n-142FD9 Uncompressed Size     000005A6 (1446)\n-\n-142FDD LOCAL HEADER #474     04034B50 (67324752)\n-142FE1 Extract Zip Spec      14 (20) '2.0'\n-142FE2 Extract OS            00 (0) 'MS-DOS'\n-142FE3 General Purpose Flag  0000 (0)\n-142FE5 Compression Method    0000 (0) 'Stored'\n-142FE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-142FEB CRC                   00000000 (0)\n-142FEF Compressed Size       00000000 (0)\n-142FF3 Uncompressed Size     00000000 (0)\n-142FF7 Filename Length       001B (27)\n-142FF9 Extra Length          0009 (9)\n-142FFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x142FFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-143016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-143018   Length              0005 (5)\n-14301A   Flags               01 (1) 'Modification'\n-14301B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14301F LOCAL HEADER #475     04034B50 (67324752)\n-143023 Extract Zip Spec      14 (20) '2.0'\n-143024 Extract OS            00 (0) 'MS-DOS'\n-143025 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-143027 Compression Method    0000 (0) 'Stored'\n-143029 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14302D CRC                   00000000 (0)\n-143031 Compressed Size       00000000 (0)\n-143035 Uncompressed Size     00000000 (0)\n-143039 Filename Length       002E (46)\n-14303B Extra Length          0009 (9)\n-14303D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14303D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14306B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14306D   Length              0005 (5)\n-14306F   Flags               01 (1) 'Modification'\n-143070   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-143074 PAYLOAD\n-\n-143878 DATA DESCRIPTOR       08074B50 (134695760)\n-14387C CRC                   BB714DA3 (3144764835)\n-143880 Compressed Size       00000804 (2052)\n-143884 Uncompressed Size     00000804 (2052)\n-\n-143888 LOCAL HEADER #476     04034B50 (67324752)\n-14388C Extract Zip Spec      14 (20) '2.0'\n-14388D Extract OS            00 (0) 'MS-DOS'\n-14388E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-143890 Compression Method    0000 (0) 'Stored'\n-143892 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-143896 CRC                   00000000 (0)\n-14389A Compressed Size       00000000 (0)\n-14389E Uncompressed Size     00000000 (0)\n-1438A2 Filename Length       0028 (40)\n-1438A4 Extra Length          0009 (9)\n-1438A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1438A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1438CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1438D0   Length              0005 (5)\n-1438D2   Flags               01 (1) 'Modification'\n-1438D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1438D7 PAYLOAD\n-\n-1442D3 DATA DESCRIPTOR       08074B50 (134695760)\n-1442D7 CRC                   D76B4438 (3614131256)\n-1442DB Compressed Size       000009FC (2556)\n-1442DF Uncompressed Size     000009FC (2556)\n-\n-1442E3 LOCAL HEADER #477     04034B50 (67324752)\n-1442E7 Extract Zip Spec      14 (20) '2.0'\n-1442E8 Extract OS            00 (0) 'MS-DOS'\n-1442E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1442EB Compression Method    0000 (0) 'Stored'\n-1442ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1442F1 CRC                   00000000 (0)\n-1442F5 Compressed Size       00000000 (0)\n-1442F9 Uncompressed Size     00000000 (0)\n-1442FD Filename Length       002F (47)\n-1442FF Extra Length          0009 (9)\n-144301 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x144301: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-144330 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-144332   Length              0005 (5)\n-144334   Flags               01 (1) 'Modification'\n-144335   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-144339 PAYLOAD\n-\n-14481A DATA DESCRIPTOR       08074B50 (134695760)\n-14481E CRC                   C61A4C11 (3323612177)\n-144822 Compressed Size       000004E1 (1249)\n-144826 Uncompressed Size     000004E1 (1249)\n-\n-14482A LOCAL HEADER #478     04034B50 (67324752)\n-14482E Extract Zip Spec      14 (20) '2.0'\n-14482F Extract OS            00 (0) 'MS-DOS'\n-144830 General Purpose Flag  0000 (0)\n-144832 Compression Method    0000 (0) 'Stored'\n-144834 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-144838 CRC                   00000000 (0)\n-14483C Compressed Size       00000000 (0)\n-144840 Uncompressed Size     00000000 (0)\n-144844 Filename Length       0023 (35)\n-144846 Extra Length          0009 (9)\n-144848 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x144848: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14486B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14486D   Length              0005 (5)\n-14486F   Flags               01 (1) 'Modification'\n-144870   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-144874 LOCAL HEADER #479     04034B50 (67324752)\n-144878 Extract Zip Spec      14 (20) '2.0'\n-144879 Extract OS            00 (0) 'MS-DOS'\n-14487A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14487C Compression Method    0000 (0) 'Stored'\n-14487E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-144882 CRC                   00000000 (0)\n-144886 Compressed Size       00000000 (0)\n-14488A Uncompressed Size     00000000 (0)\n-14488E Filename Length       0038 (56)\n-144890 Extra Length          0009 (9)\n-144892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x144892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1448CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1448CC   Length              0005 (5)\n-1448CE   Flags               01 (1) 'Modification'\n-1448CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1448D3 PAYLOAD\n-\n-14611F DATA DESCRIPTOR       08074B50 (134695760)\n-146123 CRC                   1991942D (428971053)\n-146127 Compressed Size       0000184C (6220)\n-14612B Uncompressed Size     0000184C (6220)\n-\n-14612F LOCAL HEADER #480     04034B50 (67324752)\n-146133 Extract Zip Spec      14 (20) '2.0'\n-146134 Extract OS            00 (0) 'MS-DOS'\n-146135 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-146137 Compression Method    0000 (0) 'Stored'\n-146139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14613D CRC                   00000000 (0)\n-146141 Compressed Size       00000000 (0)\n-146145 Uncompressed Size     00000000 (0)\n-146149 Filename Length       003F (63)\n-14614B Extra Length          0009 (9)\n-14614D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14614D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14618C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14618E   Length              0005 (5)\n-146190   Flags               01 (1) 'Modification'\n-146191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-146195 PAYLOAD\n-\n-1466C5 DATA DESCRIPTOR       08074B50 (134695760)\n-1466C9 CRC                   6C394AEE (1815694062)\n-1466CD Compressed Size       00000530 (1328)\n-1466D1 Uncompressed Size     00000530 (1328)\n-\n-1466D5 LOCAL HEADER #481     04034B50 (67324752)\n-1466D9 Extract Zip Spec      14 (20) '2.0'\n-1466DA Extract OS            00 (0) 'MS-DOS'\n-1466DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1466DD Compression Method    0000 (0) 'Stored'\n-1466DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1466E3 CRC                   00000000 (0)\n-1466E7 Compressed Size       00000000 (0)\n-1466EB Uncompressed Size     00000000 (0)\n-1466EF Filename Length       0038 (56)\n-1466F1 Extra Length          0009 (9)\n-1466F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1466F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14672B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14672D   Length              0005 (5)\n-14672F   Flags               01 (1) 'Modification'\n-146730   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-146734 PAYLOAD\n-\n-1482BF DATA DESCRIPTOR       08074B50 (134695760)\n-1482C3 CRC                   03FD65CD (66938317)\n-1482C7 Compressed Size       00001B8B (7051)\n-1482CB Uncompressed Size     00001B8B (7051)\n-\n-1482CF LOCAL HEADER #482     04034B50 (67324752)\n-1482D3 Extract Zip Spec      14 (20) '2.0'\n-1482D4 Extract OS            00 (0) 'MS-DOS'\n-1482D5 General Purpose Flag  0000 (0)\n-1482D7 Compression Method    0000 (0) 'Stored'\n-1482D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1482DD CRC                   00000000 (0)\n-1482E1 Compressed Size       00000000 (0)\n-1482E5 Uncompressed Size     00000000 (0)\n-1482E9 Filename Length       001B (27)\n-1482EB Extra Length          0009 (9)\n-1482ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1482ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-148308 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14830A   Length              0005 (5)\n-14830C   Flags               01 (1) 'Modification'\n-14830D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-148311 LOCAL HEADER #483     04034B50 (67324752)\n-148315 Extract Zip Spec      14 (20) '2.0'\n-148316 Extract OS            00 (0) 'MS-DOS'\n-148317 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-148319 Compression Method    0000 (0) 'Stored'\n-14831B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14831F CRC                   00000000 (0)\n-148323 Compressed Size       00000000 (0)\n-148327 Uncompressed Size     00000000 (0)\n-14832B Filename Length       0027 (39)\n-14832D Extra Length          0009 (9)\n-14832F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14832F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-148356 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-148358   Length              0005 (5)\n-14835A   Flags               01 (1) 'Modification'\n-14835B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14835F PAYLOAD\n-\n-1487A2 DATA DESCRIPTOR       08074B50 (134695760)\n-1487A6 CRC                   B05300B6 (2958229686)\n-1487AA Compressed Size       00000443 (1091)\n-1487AE Uncompressed Size     00000443 (1091)\n-\n-1487B2 LOCAL HEADER #484     04034B50 (67324752)\n-1487B6 Extract Zip Spec      14 (20) '2.0'\n-1487B7 Extract OS            00 (0) 'MS-DOS'\n-1487B8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1487BA Compression Method    0000 (0) 'Stored'\n-1487BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1487C0 CRC                   00000000 (0)\n-1487C4 Compressed Size       00000000 (0)\n-1487C8 Uncompressed Size     00000000 (0)\n-1487CC Filename Length       002E (46)\n-1487CE Extra Length          0009 (9)\n-1487D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1487D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1487FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-148800   Length              0005 (5)\n-148802   Flags               01 (1) 'Modification'\n-148803   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-148807 PAYLOAD\n-\n-1490C3 DATA DESCRIPTOR       08074B50 (134695760)\n-1490C7 CRC                   4B53EA77 (1263790711)\n-1490CB Compressed Size       000008BC (2236)\n-1490CF Uncompressed Size     000008BC (2236)\n-\n-1490D3 LOCAL HEADER #485     04034B50 (67324752)\n-1490D7 Extract Zip Spec      14 (20) '2.0'\n-1490D8 Extract OS            00 (0) 'MS-DOS'\n-1490D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1490DB Compression Method    0000 (0) 'Stored'\n-1490DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1490E1 CRC                   00000000 (0)\n-1490E5 Compressed Size       00000000 (0)\n-1490E9 Uncompressed Size     00000000 (0)\n-1490ED Filename Length       0025 (37)\n-1490EF Extra Length          0009 (9)\n-1490F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1490F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-149116 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-149118   Length              0005 (5)\n-14911A   Flags               01 (1) 'Modification'\n-14911B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14911F PAYLOAD\n-\n-1494CC DATA DESCRIPTOR       08074B50 (134695760)\n-1494D0 CRC                   F7117BC1 (4145118145)\n-1494D4 Compressed Size       000003AD (941)\n-1494D8 Uncompressed Size     000003AD (941)\n-\n-1494DC LOCAL HEADER #486     04034B50 (67324752)\n-1494E0 Extract Zip Spec      14 (20) '2.0'\n-1494E1 Extract OS            00 (0) 'MS-DOS'\n-1494E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1494E4 Compression Method    0000 (0) 'Stored'\n-1494E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1494EA CRC                   00000000 (0)\n-1494EE Compressed Size       00000000 (0)\n-1494F2 Uncompressed Size     00000000 (0)\n-1494F6 Filename Length       0026 (38)\n-1494F8 Extra Length          0009 (9)\n-1494FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1494FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-149520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-149522   Length              0005 (5)\n-149524   Flags               01 (1) 'Modification'\n-149525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-149529 PAYLOAD\n-\n-1498D8 DATA DESCRIPTOR       08074B50 (134695760)\n-1498DC CRC                   AB71C50D (2876359949)\n-1498E0 Compressed Size       000003AF (943)\n-1498E4 Uncompressed Size     000003AF (943)\n-\n-1498E8 LOCAL HEADER #487     04034B50 (67324752)\n-1498EC Extract Zip Spec      14 (20) '2.0'\n-1498ED Extract OS            00 (0) 'MS-DOS'\n-1498EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1498F0 Compression Method    0000 (0) 'Stored'\n-1498F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1498F6 CRC                   00000000 (0)\n-1498FA Compressed Size       00000000 (0)\n-1498FE Uncompressed Size     00000000 (0)\n-149902 Filename Length       002A (42)\n-149904 Extra Length          0009 (9)\n-149906 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x149906: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-149930 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-149932   Length              0005 (5)\n-149934   Flags               01 (1) 'Modification'\n-149935   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-149939 PAYLOAD\n-\n-149E87 DATA DESCRIPTOR       08074B50 (134695760)\n-149E8B CRC                   738B9E3F (1938529855)\n-149E8F Compressed Size       0000054E (1358)\n-149E93 Uncompressed Size     0000054E (1358)\n-\n-149E97 LOCAL HEADER #488     04034B50 (67324752)\n-149E9B Extract Zip Spec      14 (20) '2.0'\n-149E9C Extract OS            00 (0) 'MS-DOS'\n-149E9D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-149E9F Compression Method    0000 (0) 'Stored'\n-149EA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-149EA5 CRC                   00000000 (0)\n-149EA9 Compressed Size       00000000 (0)\n-149EAD Uncompressed Size     00000000 (0)\n-149EB1 Filename Length       0031 (49)\n-149EB3 Extra Length          0009 (9)\n-149EB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x149EB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-149EE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-149EE8   Length              0005 (5)\n-149EEA   Flags               01 (1) 'Modification'\n-149EEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-149EEF PAYLOAD\n-\n-14A6A2 DATA DESCRIPTOR       08074B50 (134695760)\n-14A6A6 CRC                   DF216F41 (3743510337)\n-14A6AA Compressed Size       000007B3 (1971)\n-14A6AE Uncompressed Size     000007B3 (1971)\n-\n-14A6B2 LOCAL HEADER #489     04034B50 (67324752)\n-14A6B6 Extract Zip Spec      14 (20) '2.0'\n-14A6B7 Extract OS            00 (0) 'MS-DOS'\n-14A6B8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14A6BA Compression Method    0000 (0) 'Stored'\n-14A6BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14A6C0 CRC                   00000000 (0)\n-14A6C4 Compressed Size       00000000 (0)\n-14A6C8 Uncompressed Size     00000000 (0)\n-14A6CC Filename Length       0026 (38)\n-14A6CE Extra Length          0009 (9)\n-14A6D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14A6D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14A6F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14A6F8   Length              0005 (5)\n-14A6FA   Flags               01 (1) 'Modification'\n-14A6FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14A6FF PAYLOAD\n-\n-14AAB7 DATA DESCRIPTOR       08074B50 (134695760)\n-14AABB CRC                   7ECEF1EF (2127491567)\n-14AABF Compressed Size       000003B8 (952)\n-14AAC3 Uncompressed Size     000003B8 (952)\n-\n-14AAC7 LOCAL HEADER #490     04034B50 (67324752)\n-14AACB Extract Zip Spec      14 (20) '2.0'\n-14AACC Extract OS            00 (0) 'MS-DOS'\n-14AACD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14AACF Compression Method    0000 (0) 'Stored'\n-14AAD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14AAD5 CRC                   00000000 (0)\n-14AAD9 Compressed Size       00000000 (0)\n-14AADD Uncompressed Size     00000000 (0)\n-14AAE1 Filename Length       002B (43)\n-14AAE3 Extra Length          0009 (9)\n-14AAE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14AAE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14AB10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14AB12   Length              0005 (5)\n-14AB14   Flags               01 (1) 'Modification'\n-14AB15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14AB19 PAYLOAD\n-\n-14B7C0 DATA DESCRIPTOR       08074B50 (134695760)\n-14B7C4 CRC                   43AA3D45 (1135230277)\n-14B7C8 Compressed Size       00000CA7 (3239)\n-14B7CC Uncompressed Size     00000CA7 (3239)\n-\n-14B7D0 LOCAL HEADER #491     04034B50 (67324752)\n-14B7D4 Extract Zip Spec      14 (20) '2.0'\n-14B7D5 Extract OS            00 (0) 'MS-DOS'\n-14B7D6 General Purpose Flag  0000 (0)\n-14B7D8 Compression Method    0000 (0) 'Stored'\n-14B7DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14B7DE CRC                   00000000 (0)\n-14B7E2 Compressed Size       00000000 (0)\n-14B7E6 Uncompressed Size     00000000 (0)\n-14B7EA Filename Length       0024 (36)\n-14B7EC Extra Length          0009 (9)\n-14B7EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14B7EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14B812 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14B814   Length              0005 (5)\n-14B816   Flags               01 (1) 'Modification'\n-14B817   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14B81B LOCAL HEADER #492     04034B50 (67324752)\n-14B81F Extract Zip Spec      14 (20) '2.0'\n-14B820 Extract OS            00 (0) 'MS-DOS'\n-14B821 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14B823 Compression Method    0000 (0) 'Stored'\n-14B825 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14B829 CRC                   00000000 (0)\n-14B82D Compressed Size       00000000 (0)\n-14B831 Uncompressed Size     00000000 (0)\n-14B835 Filename Length       0032 (50)\n-14B837 Extra Length          0009 (9)\n-14B839 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14B839: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14B86B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14B86D   Length              0005 (5)\n-14B86F   Flags               01 (1) 'Modification'\n-14B870   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14B874 PAYLOAD\n-\n-14BC3B DATA DESCRIPTOR       08074B50 (134695760)\n-14BC3F CRC                   4B6F1882 (1265571970)\n-14BC43 Compressed Size       000003C7 (967)\n-14BC47 Uncompressed Size     000003C7 (967)\n-\n-14BC4B LOCAL HEADER #493     04034B50 (67324752)\n-14BC4F Extract Zip Spec      14 (20) '2.0'\n-14BC50 Extract OS            00 (0) 'MS-DOS'\n-14BC51 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14BC53 Compression Method    0000 (0) 'Stored'\n-14BC55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14BC59 CRC                   00000000 (0)\n-14BC5D Compressed Size       00000000 (0)\n-14BC61 Uncompressed Size     00000000 (0)\n-14BC65 Filename Length       0039 (57)\n-14BC67 Extra Length          0009 (9)\n-14BC69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14BC69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14BCA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14BCA4   Length              0005 (5)\n-14BCA6   Flags               01 (1) 'Modification'\n-14BCA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14BCAB PAYLOAD\n-\n-14C10F DATA DESCRIPTOR       08074B50 (134695760)\n-14C113 CRC                   CE84EC2F (3464817711)\n-14C117 Compressed Size       00000464 (1124)\n-14C11B Uncompressed Size     00000464 (1124)\n-\n-14C11F LOCAL HEADER #494     04034B50 (67324752)\n-14C123 Extract Zip Spec      14 (20) '2.0'\n-14C124 Extract OS            00 (0) 'MS-DOS'\n-14C125 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14C127 Compression Method    0000 (0) 'Stored'\n-14C129 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14C12D CRC                   00000000 (0)\n-14C131 Compressed Size       00000000 (0)\n-14C135 Uncompressed Size     00000000 (0)\n-14C139 Filename Length       0037 (55)\n-14C13B Extra Length          0009 (9)\n-14C13D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14C13D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14C174 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14C176   Length              0005 (5)\n-14C178   Flags               01 (1) 'Modification'\n-14C179   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14C17D PAYLOAD\n-\n-14C74E DATA DESCRIPTOR       08074B50 (134695760)\n-14C752 CRC                   EFE6AFC6 (4024872902)\n-14C756 Compressed Size       000005D1 (1489)\n-14C75A Uncompressed Size     000005D1 (1489)\n-\n-14C75E LOCAL HEADER #495     04034B50 (67324752)\n-14C762 Extract Zip Spec      14 (20) '2.0'\n-14C763 Extract OS            00 (0) 'MS-DOS'\n-14C764 General Purpose Flag  0000 (0)\n-14C766 Compression Method    0000 (0) 'Stored'\n-14C768 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14C76C CRC                   00000000 (0)\n-14C770 Compressed Size       00000000 (0)\n-14C774 Uncompressed Size     00000000 (0)\n-14C778 Filename Length       0020 (32)\n-14C77A Extra Length          0009 (9)\n-14C77C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14C77C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14C79C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14C79E   Length              0005 (5)\n-14C7A0   Flags               01 (1) 'Modification'\n-14C7A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14C7A5 LOCAL HEADER #496     04034B50 (67324752)\n-14C7A9 Extract Zip Spec      14 (20) '2.0'\n-14C7AA Extract OS            00 (0) 'MS-DOS'\n-14C7AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14C7AD Compression Method    0000 (0) 'Stored'\n-14C7AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14C7B3 CRC                   00000000 (0)\n-14C7B7 Compressed Size       00000000 (0)\n-14C7BB Uncompressed Size     00000000 (0)\n-14C7BF Filename Length       002F (47)\n-14C7C1 Extra Length          0009 (9)\n-14C7C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14C7C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14C7F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14C7F4   Length              0005 (5)\n-14C7F6   Flags               01 (1) 'Modification'\n-14C7F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14C7FB PAYLOAD\n-\n-14CBBC DATA DESCRIPTOR       08074B50 (134695760)\n-14CBC0 CRC                   2510FA3B (621869627)\n-14CBC4 Compressed Size       000003C1 (961)\n-14CBC8 Uncompressed Size     000003C1 (961)\n-\n-14CBCC LOCAL HEADER #497     04034B50 (67324752)\n-14CBD0 Extract Zip Spec      14 (20) '2.0'\n-14CBD1 Extract OS            00 (0) 'MS-DOS'\n-14CBD2 General Purpose Flag  0000 (0)\n-14CBD4 Compression Method    0000 (0) 'Stored'\n-14CBD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14CBDA CRC                   00000000 (0)\n-14CBDE Compressed Size       00000000 (0)\n-14CBE2 Uncompressed Size     00000000 (0)\n-14CBE6 Filename Length       001F (31)\n-14CBE8 Extra Length          0009 (9)\n-14CBEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14CBEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14CC09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14CC0B   Length              0005 (5)\n-14CC0D   Flags               01 (1) 'Modification'\n-14CC0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14CC12 LOCAL HEADER #498     04034B50 (67324752)\n-14CC16 Extract Zip Spec      14 (20) '2.0'\n-14CC17 Extract OS            00 (0) 'MS-DOS'\n-14CC18 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14CC1A Compression Method    0000 (0) 'Stored'\n-14CC1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14CC20 CRC                   00000000 (0)\n-14CC24 Compressed Size       00000000 (0)\n-14CC28 Uncompressed Size     00000000 (0)\n-14CC2C Filename Length       002D (45)\n-14CC2E Extra Length          0009 (9)\n-14CC30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14CC30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14CC5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14CC5F   Length              0005 (5)\n-14CC61   Flags               01 (1) 'Modification'\n-14CC62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14CC66 PAYLOAD\n-\n-14D023 DATA DESCRIPTOR       08074B50 (134695760)\n-14D027 CRC                   14A7D3CC (346543052)\n-14D02B Compressed Size       000003BD (957)\n-14D02F Uncompressed Size     000003BD (957)\n-\n-14D033 LOCAL HEADER #499     04034B50 (67324752)\n-14D037 Extract Zip Spec      14 (20) '2.0'\n-14D038 Extract OS            00 (0) 'MS-DOS'\n-14D039 General Purpose Flag  0000 (0)\n-14D03B Compression Method    0000 (0) 'Stored'\n-14D03D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14D041 CRC                   00000000 (0)\n-14D045 Compressed Size       00000000 (0)\n-14D049 Uncompressed Size     00000000 (0)\n-14D04D Filename Length       0022 (34)\n-14D04F Extra Length          0009 (9)\n-14D051 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14D051: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14D073 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14D075   Length              0005 (5)\n-14D077   Flags               01 (1) 'Modification'\n-14D078   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14D07C LOCAL HEADER #500     04034B50 (67324752)\n-14D080 Extract Zip Spec      14 (20) '2.0'\n-14D081 Extract OS            00 (0) 'MS-DOS'\n-14D082 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14D084 Compression Method    0000 (0) 'Stored'\n-14D086 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14D08A CRC                   00000000 (0)\n-14D08E Compressed Size       00000000 (0)\n-14D092 Uncompressed Size     00000000 (0)\n-14D096 Filename Length       0034 (52)\n-14D098 Extra Length          0009 (9)\n-14D09A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14D09A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14D0CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14D0D0   Length              0005 (5)\n-14D0D2   Flags               01 (1) 'Modification'\n-14D0D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14D0D7 PAYLOAD\n-\n-14D60F DATA DESCRIPTOR       08074B50 (134695760)\n-14D613 CRC                   1652AFBA (374517690)\n-14D617 Compressed Size       00000538 (1336)\n-14D61B Uncompressed Size     00000538 (1336)\n-\n-14D61F LOCAL HEADER #501     04034B50 (67324752)\n-14D623 Extract Zip Spec      14 (20) '2.0'\n-14D624 Extract OS            00 (0) 'MS-DOS'\n-14D625 General Purpose Flag  0000 (0)\n-14D627 Compression Method    0000 (0) 'Stored'\n-14D629 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14D62D CRC                   00000000 (0)\n-14D631 Compressed Size       00000000 (0)\n-14D635 Uncompressed Size     00000000 (0)\n-14D639 Filename Length       0025 (37)\n-14D63B Extra Length          0009 (9)\n-14D63D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14D63D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14D662 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14D664   Length              0005 (5)\n-14D666   Flags               01 (1) 'Modification'\n-14D667   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14D66B LOCAL HEADER #502     04034B50 (67324752)\n-14D66F Extract Zip Spec      14 (20) '2.0'\n-14D670 Extract OS            00 (0) 'MS-DOS'\n-14D671 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14D673 Compression Method    0000 (0) 'Stored'\n-14D675 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14D679 CRC                   00000000 (0)\n-14D67D Compressed Size       00000000 (0)\n-14D681 Uncompressed Size     00000000 (0)\n-14D685 Filename Length       003E (62)\n-14D687 Extra Length          0009 (9)\n-14D689 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14D689: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14D6C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14D6C9   Length              0005 (5)\n-14D6CB   Flags               01 (1) 'Modification'\n-14D6CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14D6D0 PAYLOAD\n-\n-14DAAF DATA DESCRIPTOR       08074B50 (134695760)\n-14DAB3 CRC                   15451137 (356847927)\n-14DAB7 Compressed Size       000003DF (991)\n-14DABB Uncompressed Size     000003DF (991)\n-\n-14DABF LOCAL HEADER #503     04034B50 (67324752)\n-14DAC3 Extract Zip Spec      14 (20) '2.0'\n-14DAC4 Extract OS            00 (0) 'MS-DOS'\n-14DAC5 General Purpose Flag  0000 (0)\n-14DAC7 Compression Method    0000 (0) 'Stored'\n-14DAC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14DACD CRC                   00000000 (0)\n-14DAD1 Compressed Size       00000000 (0)\n-14DAD5 Uncompressed Size     00000000 (0)\n-14DAD9 Filename Length       0016 (22)\n-14DADB Extra Length          0009 (9)\n-14DADD Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14DADD: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14DAF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14DAF5   Length              0005 (5)\n-14DAF7   Flags               01 (1) 'Modification'\n-14DAF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-14DAFC LOCAL HEADER #504     04034B50 (67324752)\n-14DB00 Extract Zip Spec      14 (20) '2.0'\n-14DB01 Extract OS            00 (0) 'MS-DOS'\n-14DB02 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14DB04 Compression Method    0000 (0) 'Stored'\n-14DB06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14DB0A CRC                   00000000 (0)\n-14DB0E Compressed Size       00000000 (0)\n-14DB12 Uncompressed Size     00000000 (0)\n-14DB16 Filename Length       0023 (35)\n-14DB18 Extra Length          0009 (9)\n-14DB1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14DB1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14DB3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14DB3F   Length              0005 (5)\n-14DB41   Flags               01 (1) 'Modification'\n-14DB42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14DB46 PAYLOAD\n-\n-14E123 DATA DESCRIPTOR       08074B50 (134695760)\n-14E127 CRC                   5AF92E3B (1526279739)\n-14E12B Compressed Size       000005DD (1501)\n-14E12F Uncompressed Size     000005DD (1501)\n-\n-14E133 LOCAL HEADER #505     04034B50 (67324752)\n-14E137 Extract Zip Spec      14 (20) '2.0'\n-14E138 Extract OS            00 (0) 'MS-DOS'\n-14E139 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14E13B Compression Method    0000 (0) 'Stored'\n-14E13D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14E141 CRC                   00000000 (0)\n-14E145 Compressed Size       00000000 (0)\n-14E149 Uncompressed Size     00000000 (0)\n-14E14D Filename Length       0021 (33)\n-14E14F Extra Length          0009 (9)\n-14E151 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14E151: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14E172 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14E174   Length              0005 (5)\n-14E176   Flags               01 (1) 'Modification'\n-14E177   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14E17B PAYLOAD\n-\n-14E758 DATA DESCRIPTOR       08074B50 (134695760)\n-14E75C CRC                   4813D623 (1209259555)\n-14E760 Compressed Size       000005DD (1501)\n-14E764 Uncompressed Size     000005DD (1501)\n-\n-14E768 LOCAL HEADER #506     04034B50 (67324752)\n-14E76C Extract Zip Spec      14 (20) '2.0'\n-14E76D Extract OS            00 (0) 'MS-DOS'\n-14E76E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14E770 Compression Method    0000 (0) 'Stored'\n-14E772 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14E776 CRC                   00000000 (0)\n-14E77A Compressed Size       00000000 (0)\n-14E77E Uncompressed Size     00000000 (0)\n-14E782 Filename Length       0025 (37)\n-14E784 Extra Length          0009 (9)\n-14E786 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14E786: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14E7AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14E7AD   Length              0005 (5)\n-14E7AF   Flags               01 (1) 'Modification'\n-14E7B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14E7B4 PAYLOAD\n-\n-14F9A9 DATA DESCRIPTOR       08074B50 (134695760)\n-14F9AD CRC                   6425D257 (1680200279)\n-14F9B1 Compressed Size       000011F5 (4597)\n-14F9B5 Uncompressed Size     000011F5 (4597)\n-\n-14F9B9 LOCAL HEADER #507     04034B50 (67324752)\n-14F9BD Extract Zip Spec      14 (20) '2.0'\n-14F9BE Extract OS            00 (0) 'MS-DOS'\n-14F9BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-14F9C1 Compression Method    0000 (0) 'Stored'\n-14F9C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-14F9C7 CRC                   00000000 (0)\n-14F9CB Compressed Size       00000000 (0)\n-14F9CF Uncompressed Size     00000000 (0)\n-14F9D3 Filename Length       0022 (34)\n-14F9D5 Extra Length          0009 (9)\n-14F9D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x14F9D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-14F9F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-14F9FB   Length              0005 (5)\n-14F9FD   Flags               01 (1) 'Modification'\n-14F9FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-14FA02 PAYLOAD\n-\n-150335 DATA DESCRIPTOR       08074B50 (134695760)\n-150339 CRC                   4751F7D9 (1196554201)\n-15033D Compressed Size       00000933 (2355)\n-150341 Uncompressed Size     00000933 (2355)\n-\n-150345 LOCAL HEADER #508     04034B50 (67324752)\n-150349 Extract Zip Spec      14 (20) '2.0'\n-15034A Extract OS            00 (0) 'MS-DOS'\n-15034B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15034D Compression Method    0000 (0) 'Stored'\n-15034F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-150353 CRC                   00000000 (0)\n-150357 Compressed Size       00000000 (0)\n-15035B Uncompressed Size     00000000 (0)\n-15035F Filename Length       002A (42)\n-150361 Extra Length          0009 (9)\n-150363 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x150363: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15038D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15038F   Length              0005 (5)\n-150391   Flags               01 (1) 'Modification'\n-150392   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-150396 PAYLOAD\n-\n-1509A3 DATA DESCRIPTOR       08074B50 (134695760)\n-1509A7 CRC                   A7B8FF5F (2813919071)\n-1509AB Compressed Size       0000060D (1549)\n-1509AF Uncompressed Size     0000060D (1549)\n-\n-1509B3 LOCAL HEADER #509     04034B50 (67324752)\n-1509B7 Extract Zip Spec      14 (20) '2.0'\n-1509B8 Extract OS            00 (0) 'MS-DOS'\n-1509B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1509BB Compression Method    0000 (0) 'Stored'\n-1509BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1509C1 CRC                   00000000 (0)\n-1509C5 Compressed Size       00000000 (0)\n-1509C9 Uncompressed Size     00000000 (0)\n-1509CD Filename Length       0023 (35)\n-1509CF Extra Length          0009 (9)\n-1509D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1509D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1509F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1509F6   Length              0005 (5)\n-1509F8   Flags               01 (1) 'Modification'\n-1509F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1509FD PAYLOAD\n-\n-1510AA DATA DESCRIPTOR       08074B50 (134695760)\n-1510AE CRC                   A6915B8B (2794544011)\n-1510B2 Compressed Size       000006AD (1709)\n-1510B6 Uncompressed Size     000006AD (1709)\n-\n-1510BA LOCAL HEADER #510     04034B50 (67324752)\n-1510BE Extract Zip Spec      14 (20) '2.0'\n-1510BF Extract OS            00 (0) 'MS-DOS'\n-1510C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1510C2 Compression Method    0000 (0) 'Stored'\n-1510C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1510C8 CRC                   00000000 (0)\n-1510CC Compressed Size       00000000 (0)\n-1510D0 Uncompressed Size     00000000 (0)\n-1510D4 Filename Length       0027 (39)\n-1510D6 Extra Length          0009 (9)\n-1510D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1510D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1510FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-151101   Length              0005 (5)\n-151103   Flags               01 (1) 'Modification'\n-151104   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-151108 PAYLOAD\n-\n-151904 DATA DESCRIPTOR       08074B50 (134695760)\n-151908 CRC                   F08690D4 (4035350740)\n-15190C Compressed Size       000007FC (2044)\n-151910 Uncompressed Size     000007FC (2044)\n-\n-151914 LOCAL HEADER #511     04034B50 (67324752)\n-151918 Extract Zip Spec      14 (20) '2.0'\n-151919 Extract OS            00 (0) 'MS-DOS'\n-15191A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15191C Compression Method    0000 (0) 'Stored'\n-15191E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-151922 CRC                   00000000 (0)\n-151926 Compressed Size       00000000 (0)\n-15192A Uncompressed Size     00000000 (0)\n-15192E Filename Length       0021 (33)\n-151930 Extra Length          0009 (9)\n-151932 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x151932: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-151953 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-151955   Length              0005 (5)\n-151957   Flags               01 (1) 'Modification'\n-151958   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15195C PAYLOAD\n-\n-152C1A DATA DESCRIPTOR       08074B50 (134695760)\n-152C1E CRC                   79872C8E (2038901902)\n-152C22 Compressed Size       000012BE (4798)\n-152C26 Uncompressed Size     000012BE (4798)\n-\n-152C2A LOCAL HEADER #512     04034B50 (67324752)\n-152C2E Extract Zip Spec      14 (20) '2.0'\n-152C2F Extract OS            00 (0) 'MS-DOS'\n-152C30 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-152C32 Compression Method    0000 (0) 'Stored'\n-152C34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-152C38 CRC                   00000000 (0)\n-152C3C Compressed Size       00000000 (0)\n-152C40 Uncompressed Size     00000000 (0)\n-152C44 Filename Length       0025 (37)\n-152C46 Extra Length          0009 (9)\n-152C48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x152C48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-152C6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-152C6F   Length              0005 (5)\n-152C71   Flags               01 (1) 'Modification'\n-152C72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-152C76 PAYLOAD\n-\n-15586B DATA DESCRIPTOR       08074B50 (134695760)\n-15586F CRC                   037ECE86 (58642054)\n-155873 Compressed Size       00002BF5 (11253)\n-155877 Uncompressed Size     00002BF5 (11253)\n-\n-15587B LOCAL HEADER #513     04034B50 (67324752)\n-15587F Extract Zip Spec      14 (20) '2.0'\n-155880 Extract OS            00 (0) 'MS-DOS'\n-155881 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-155883 Compression Method    0000 (0) 'Stored'\n-155885 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-155889 CRC                   00000000 (0)\n-15588D Compressed Size       00000000 (0)\n-155891 Uncompressed Size     00000000 (0)\n-155895 Filename Length       0027 (39)\n-155897 Extra Length          0009 (9)\n-155899 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x155899: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1558C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1558C2   Length              0005 (5)\n-1558C4   Flags               01 (1) 'Modification'\n-1558C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1558C9 PAYLOAD\n-\n-155F22 DATA DESCRIPTOR       08074B50 (134695760)\n-155F26 CRC                   FF29698F (4280904079)\n-155F2A Compressed Size       00000659 (1625)\n-155F2E Uncompressed Size     00000659 (1625)\n-\n-155F32 LOCAL HEADER #514     04034B50 (67324752)\n-155F36 Extract Zip Spec      14 (20) '2.0'\n-155F37 Extract OS            00 (0) 'MS-DOS'\n-155F38 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-155F3A Compression Method    0000 (0) 'Stored'\n-155F3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-155F40 CRC                   00000000 (0)\n-155F44 Compressed Size       00000000 (0)\n-155F48 Uncompressed Size     00000000 (0)\n-155F4C Filename Length       0028 (40)\n-155F4E Extra Length          0009 (9)\n-155F50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x155F50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-155F78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-155F7A   Length              0005 (5)\n-155F7C   Flags               01 (1) 'Modification'\n-155F7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-155F81 PAYLOAD\n-\n-157BCE DATA DESCRIPTOR       08074B50 (134695760)\n-157BD2 CRC                   F6E65C00 (4142291968)\n-157BD6 Compressed Size       00001C4D (7245)\n-157BDA Uncompressed Size     00001C4D (7245)\n-\n-157BDE LOCAL HEADER #515     04034B50 (67324752)\n-157BE2 Extract Zip Spec      14 (20) '2.0'\n-157BE3 Extract OS            00 (0) 'MS-DOS'\n-157BE4 General Purpose Flag  0000 (0)\n-157BE6 Compression Method    0000 (0) 'Stored'\n-157BE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-157BEC CRC                   00000000 (0)\n-157BF0 Compressed Size       00000000 (0)\n-157BF4 Uncompressed Size     00000000 (0)\n-157BF8 Filename Length       001E (30)\n-157BFA Extra Length          0009 (9)\n-157BFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x157BFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-157C1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-157C1C   Length              0005 (5)\n-157C1E   Flags               01 (1) 'Modification'\n-157C1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-157C23 LOCAL HEADER #516     04034B50 (67324752)\n-157C27 Extract Zip Spec      14 (20) '2.0'\n-157C28 Extract OS            00 (0) 'MS-DOS'\n-157C29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-157C2B Compression Method    0000 (0) 'Stored'\n-157C2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-157C31 CRC                   00000000 (0)\n-157C35 Compressed Size       00000000 (0)\n-157C39 Uncompressed Size     00000000 (0)\n-157C3D Filename Length       002A (42)\n-157C3F Extra Length          0009 (9)\n-157C41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x157C41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-157C6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-157C6D   Length              0005 (5)\n-157C6F   Flags               01 (1) 'Modification'\n-157C70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-157C74 PAYLOAD\n-\n-1581C8 DATA DESCRIPTOR       08074B50 (134695760)\n-1581CC CRC                   54F4EBB3 (1425337267)\n-1581D0 Compressed Size       00000554 (1364)\n-1581D4 Uncompressed Size     00000554 (1364)\n-\n-1581D8 LOCAL HEADER #517     04034B50 (67324752)\n-1581DC Extract Zip Spec      14 (20) '2.0'\n-1581DD Extract OS            00 (0) 'MS-DOS'\n-1581DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1581E0 Compression Method    0000 (0) 'Stored'\n-1581E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1581E6 CRC                   00000000 (0)\n-1581EA Compressed Size       00000000 (0)\n-1581EE Uncompressed Size     00000000 (0)\n-1581F2 Filename Length       0036 (54)\n-1581F4 Extra Length          0009 (9)\n-1581F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1581F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15822C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15822E   Length              0005 (5)\n-158230   Flags               01 (1) 'Modification'\n-158231   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-158235 PAYLOAD\n-\n-158602 DATA DESCRIPTOR       08074B50 (134695760)\n-158606 CRC                   22C3EE20 (583265824)\n-15860A Compressed Size       000003CD (973)\n-15860E Uncompressed Size     000003CD (973)\n-\n-158612 LOCAL HEADER #518     04034B50 (67324752)\n-158616 Extract Zip Spec      14 (20) '2.0'\n-158617 Extract OS            00 (0) 'MS-DOS'\n-158618 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15861A Compression Method    0000 (0) 'Stored'\n-15861C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-158620 CRC                   00000000 (0)\n-158624 Compressed Size       00000000 (0)\n-158628 Uncompressed Size     00000000 (0)\n-15862C Filename Length       002C (44)\n-15862E Extra Length          0009 (9)\n-158630 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x158630: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15865C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15865E   Length              0005 (5)\n-158660   Flags               01 (1) 'Modification'\n-158661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-158665 PAYLOAD\n-\n-158CE9 DATA DESCRIPTOR       08074B50 (134695760)\n-158CED CRC                   1E2DFE7D (506330749)\n-158CF1 Compressed Size       00000684 (1668)\n-158CF5 Uncompressed Size     00000684 (1668)\n-\n-158CF9 LOCAL HEADER #519     04034B50 (67324752)\n-158CFD Extract Zip Spec      14 (20) '2.0'\n-158CFE Extract OS            00 (0) 'MS-DOS'\n-158CFF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-158D01 Compression Method    0000 (0) 'Stored'\n-158D03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-158D07 CRC                   00000000 (0)\n-158D0B Compressed Size       00000000 (0)\n-158D0F Uncompressed Size     00000000 (0)\n-158D13 Filename Length       002E (46)\n-158D15 Extra Length          0009 (9)\n-158D17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x158D17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-158D45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-158D47   Length              0005 (5)\n-158D49   Flags               01 (1) 'Modification'\n-158D4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-158D4E PAYLOAD\n-\n-15951D DATA DESCRIPTOR       08074B50 (134695760)\n-159521 CRC                   E0114FF9 (3759230969)\n-159525 Compressed Size       000007CF (1999)\n-159529 Uncompressed Size     000007CF (1999)\n-\n-15952D LOCAL HEADER #520     04034B50 (67324752)\n-159531 Extract Zip Spec      14 (20) '2.0'\n-159532 Extract OS            00 (0) 'MS-DOS'\n-159533 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-159535 Compression Method    0000 (0) 'Stored'\n-159537 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15953B CRC                   00000000 (0)\n-15953F Compressed Size       00000000 (0)\n-159543 Uncompressed Size     00000000 (0)\n-159547 Filename Length       0029 (41)\n-159549 Extra Length          0009 (9)\n-15954B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15954B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-159574 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-159576   Length              0005 (5)\n-159578   Flags               01 (1) 'Modification'\n-159579   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15957D PAYLOAD\n-\n-159932 DATA DESCRIPTOR       08074B50 (134695760)\n-159936 CRC                   C476DBA7 (3296123815)\n-15993A Compressed Size       000003B5 (949)\n-15993E Uncompressed Size     000003B5 (949)\n-\n-159942 LOCAL HEADER #521     04034B50 (67324752)\n-159946 Extract Zip Spec      14 (20) '2.0'\n-159947 Extract OS            00 (0) 'MS-DOS'\n-159948 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15994A Compression Method    0000 (0) 'Stored'\n-15994C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-159950 CRC                   00000000 (0)\n-159954 Compressed Size       00000000 (0)\n-159958 Uncompressed Size     00000000 (0)\n-15995C Filename Length       0029 (41)\n-15995E Extra Length          0009 (9)\n-159960 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x159960: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-159989 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15998B   Length              0005 (5)\n-15998D   Flags               01 (1) 'Modification'\n-15998E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-159992 PAYLOAD\n-\n-15A424 DATA DESCRIPTOR       08074B50 (134695760)\n-15A428 CRC                   A69542CD (2794799821)\n-15A42C Compressed Size       00000A92 (2706)\n-15A430 Uncompressed Size     00000A92 (2706)\n-\n-15A434 LOCAL HEADER #522     04034B50 (67324752)\n-15A438 Extract Zip Spec      14 (20) '2.0'\n-15A439 Extract OS            00 (0) 'MS-DOS'\n-15A43A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15A43C Compression Method    0000 (0) 'Stored'\n-15A43E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15A442 CRC                   00000000 (0)\n-15A446 Compressed Size       00000000 (0)\n-15A44A Uncompressed Size     00000000 (0)\n-15A44E Filename Length       0030 (48)\n-15A450 Extra Length          0009 (9)\n-15A452 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15A452: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15A482 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15A484   Length              0005 (5)\n-15A486   Flags               01 (1) 'Modification'\n-15A487   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15A48B PAYLOAD\n-\n-15A965 DATA DESCRIPTOR       08074B50 (134695760)\n-15A969 CRC                   A83F3E21 (2822716961)\n-15A96D Compressed Size       000004DA (1242)\n-15A971 Uncompressed Size     000004DA (1242)\n-\n-15A975 LOCAL HEADER #523     04034B50 (67324752)\n-15A979 Extract Zip Spec      14 (20) '2.0'\n-15A97A Extract OS            00 (0) 'MS-DOS'\n-15A97B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15A97D Compression Method    0000 (0) 'Stored'\n-15A97F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15A983 CRC                   00000000 (0)\n-15A987 Compressed Size       00000000 (0)\n-15A98B Uncompressed Size     00000000 (0)\n-15A98F Filename Length       0030 (48)\n-15A991 Extra Length          0009 (9)\n-15A993 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15A993: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15A9C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15A9C5   Length              0005 (5)\n-15A9C7   Flags               01 (1) 'Modification'\n-15A9C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15A9CC PAYLOAD\n-\n-15AF6B DATA DESCRIPTOR       08074B50 (134695760)\n-15AF6F CRC                   75803CF4 (1971338484)\n-15AF73 Compressed Size       0000059F (1439)\n-15AF77 Uncompressed Size     0000059F (1439)\n-\n-15AF7B LOCAL HEADER #524     04034B50 (67324752)\n-15AF7F Extract Zip Spec      14 (20) '2.0'\n-15AF80 Extract OS            00 (0) 'MS-DOS'\n-15AF81 General Purpose Flag  0000 (0)\n-15AF83 Compression Method    0000 (0) 'Stored'\n-15AF85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15AF89 CRC                   00000000 (0)\n-15AF8D Compressed Size       00000000 (0)\n-15AF91 Uncompressed Size     00000000 (0)\n-15AF95 Filename Length       002A (42)\n-15AF97 Extra Length          0009 (9)\n-15AF99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15AF99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15AFC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15AFC5   Length              0005 (5)\n-15AFC7   Flags               01 (1) 'Modification'\n-15AFC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15AFCC LOCAL HEADER #525     04034B50 (67324752)\n-15AFD0 Extract Zip Spec      14 (20) '2.0'\n-15AFD1 Extract OS            00 (0) 'MS-DOS'\n-15AFD2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15AFD4 Compression Method    0000 (0) 'Stored'\n-15AFD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15AFDA CRC                   00000000 (0)\n-15AFDE Compressed Size       00000000 (0)\n-15AFE2 Uncompressed Size     00000000 (0)\n-15AFE6 Filename Length       0042 (66)\n-15AFE8 Extra Length          0009 (9)\n-15AFEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15AFEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15B02C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15B02E   Length              0005 (5)\n-15B030   Flags               01 (1) 'Modification'\n-15B031   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15B035 PAYLOAD\n-\n-15B421 DATA DESCRIPTOR       08074B50 (134695760)\n-15B425 CRC                   823F4C5B (2185186395)\n-15B429 Compressed Size       000003EC (1004)\n-15B42D Uncompressed Size     000003EC (1004)\n-\n-15B431 LOCAL HEADER #526     04034B50 (67324752)\n-15B435 Extract Zip Spec      14 (20) '2.0'\n-15B436 Extract OS            00 (0) 'MS-DOS'\n-15B437 General Purpose Flag  0000 (0)\n-15B439 Compression Method    0000 (0) 'Stored'\n-15B43B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15B43F CRC                   00000000 (0)\n-15B443 Compressed Size       00000000 (0)\n-15B447 Uncompressed Size     00000000 (0)\n-15B44B Filename Length       001F (31)\n-15B44D Extra Length          0009 (9)\n-15B44F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15B44F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15B46E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15B470   Length              0005 (5)\n-15B472   Flags               01 (1) 'Modification'\n-15B473   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15B477 LOCAL HEADER #527     04034B50 (67324752)\n-15B47B Extract Zip Spec      14 (20) '2.0'\n-15B47C Extract OS            00 (0) 'MS-DOS'\n-15B47D General Purpose Flag  0000 (0)\n-15B47F Compression Method    0000 (0) 'Stored'\n-15B481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15B485 CRC                   00000000 (0)\n-15B489 Compressed Size       00000000 (0)\n-15B48D Uncompressed Size     00000000 (0)\n-15B491 Filename Length       0025 (37)\n-15B493 Extra Length          0009 (9)\n-15B495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15B495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15B4BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15B4BC   Length              0005 (5)\n-15B4BE   Flags               01 (1) 'Modification'\n-15B4BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15B4C3 LOCAL HEADER #528     04034B50 (67324752)\n-15B4C7 Extract Zip Spec      14 (20) '2.0'\n-15B4C8 Extract OS            00 (0) 'MS-DOS'\n-15B4C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15B4CB Compression Method    0000 (0) 'Stored'\n-15B4CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15B4D1 CRC                   00000000 (0)\n-15B4D5 Compressed Size       00000000 (0)\n-15B4D9 Uncompressed Size     00000000 (0)\n-15B4DD Filename Length       0037 (55)\n-15B4DF Extra Length          0009 (9)\n-15B4E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15B4E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15B518 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15B51A   Length              0005 (5)\n-15B51C   Flags               01 (1) 'Modification'\n-15B51D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15B521 PAYLOAD\n-\n-15C918 DATA DESCRIPTOR       08074B50 (134695760)\n-15C91C CRC                   68E206BA (1759643322)\n-15C920 Compressed Size       000013F7 (5111)\n-15C924 Uncompressed Size     000013F7 (5111)\n-\n-15C928 LOCAL HEADER #529     04034B50 (67324752)\n-15C92C Extract Zip Spec      14 (20) '2.0'\n-15C92D Extract OS            00 (0) 'MS-DOS'\n-15C92E General Purpose Flag  0000 (0)\n-15C930 Compression Method    0000 (0) 'Stored'\n-15C932 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15C936 CRC                   00000000 (0)\n-15C93A Compressed Size       00000000 (0)\n-15C93E Uncompressed Size     00000000 (0)\n-15C942 Filename Length       0024 (36)\n-15C944 Extra Length          0009 (9)\n-15C946 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15C946: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15C96A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15C96C   Length              0005 (5)\n-15C96E   Flags               01 (1) 'Modification'\n-15C96F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15C973 LOCAL HEADER #530     04034B50 (67324752)\n-15C977 Extract Zip Spec      14 (20) '2.0'\n-15C978 Extract OS            00 (0) 'MS-DOS'\n-15C979 General Purpose Flag  0000 (0)\n-15C97B Compression Method    0000 (0) 'Stored'\n-15C97D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15C981 CRC                   00000000 (0)\n-15C985 Compressed Size       00000000 (0)\n-15C989 Uncompressed Size     00000000 (0)\n-15C98D Filename Length       002C (44)\n-15C98F Extra Length          0009 (9)\n-15C991 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15C991: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15C9BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15C9BF   Length              0005 (5)\n-15C9C1   Flags               01 (1) 'Modification'\n-15C9C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15C9C6 LOCAL HEADER #531     04034B50 (67324752)\n-15C9CA Extract Zip Spec      14 (20) '2.0'\n-15C9CB Extract OS            00 (0) 'MS-DOS'\n-15C9CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15C9CE Compression Method    0000 (0) 'Stored'\n-15C9D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15C9D4 CRC                   00000000 (0)\n-15C9D8 Compressed Size       00000000 (0)\n-15C9DC Uncompressed Size     00000000 (0)\n-15C9E0 Filename Length       003C (60)\n-15C9E2 Extra Length          0009 (9)\n-15C9E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15C9E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15CA20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15CA22   Length              0005 (5)\n-15CA24   Flags               01 (1) 'Modification'\n-15CA25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15CA29 PAYLOAD\n-\n-15CE00 DATA DESCRIPTOR       08074B50 (134695760)\n-15CE04 CRC                   CC53D052 (3428044882)\n-15CE08 Compressed Size       000003D7 (983)\n-15CE0C Uncompressed Size     000003D7 (983)\n-\n-15CE10 LOCAL HEADER #532     04034B50 (67324752)\n-15CE14 Extract Zip Spec      14 (20) '2.0'\n-15CE15 Extract OS            00 (0) 'MS-DOS'\n-15CE16 General Purpose Flag  0000 (0)\n-15CE18 Compression Method    0000 (0) 'Stored'\n-15CE1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15CE1E CRC                   00000000 (0)\n-15CE22 Compressed Size       00000000 (0)\n-15CE26 Uncompressed Size     00000000 (0)\n-15CE2A Filename Length       0023 (35)\n-15CE2C Extra Length          0009 (9)\n-15CE2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15CE2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15CE51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15CE53   Length              0005 (5)\n-15CE55   Flags               01 (1) 'Modification'\n-15CE56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15CE5A LOCAL HEADER #533     04034B50 (67324752)\n-15CE5E Extract Zip Spec      14 (20) '2.0'\n-15CE5F Extract OS            00 (0) 'MS-DOS'\n-15CE60 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15CE62 Compression Method    0000 (0) 'Stored'\n-15CE64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15CE68 CRC                   00000000 (0)\n-15CE6C Compressed Size       00000000 (0)\n-15CE70 Uncompressed Size     00000000 (0)\n-15CE74 Filename Length       003B (59)\n-15CE76 Extra Length          0009 (9)\n-15CE78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15CE78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15CEB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15CEB5   Length              0005 (5)\n-15CEB7   Flags               01 (1) 'Modification'\n-15CEB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15CEBC PAYLOAD\n-\n-15D43C DATA DESCRIPTOR       08074B50 (134695760)\n-15D440 CRC                   6A4EF718 (1783559960)\n-15D444 Compressed Size       00000580 (1408)\n-15D448 Uncompressed Size     00000580 (1408)\n-\n-15D44C LOCAL HEADER #534     04034B50 (67324752)\n-15D450 Extract Zip Spec      14 (20) '2.0'\n-15D451 Extract OS            00 (0) 'MS-DOS'\n-15D452 General Purpose Flag  0000 (0)\n-15D454 Compression Method    0000 (0) 'Stored'\n-15D456 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15D45A CRC                   00000000 (0)\n-15D45E Compressed Size       00000000 (0)\n-15D462 Uncompressed Size     00000000 (0)\n-15D466 Filename Length       0026 (38)\n-15D468 Extra Length          0009 (9)\n-15D46A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15D46A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15D490 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15D492   Length              0005 (5)\n-15D494   Flags               01 (1) 'Modification'\n-15D495   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15D499 LOCAL HEADER #535     04034B50 (67324752)\n-15D49D Extract Zip Spec      14 (20) '2.0'\n-15D49E Extract OS            00 (0) 'MS-DOS'\n-15D49F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15D4A1 Compression Method    0000 (0) 'Stored'\n-15D4A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15D4A7 CRC                   00000000 (0)\n-15D4AB Compressed Size       00000000 (0)\n-15D4AF Uncompressed Size     00000000 (0)\n-15D4B3 Filename Length       003D (61)\n-15D4B5 Extra Length          0009 (9)\n-15D4B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15D4B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15D4F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15D4F6   Length              0005 (5)\n-15D4F8   Flags               01 (1) 'Modification'\n-15D4F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15D4FD PAYLOAD\n-\n-15D8DA DATA DESCRIPTOR       08074B50 (134695760)\n-15D8DE CRC                   4A3ABC52 (1245363282)\n-15D8E2 Compressed Size       000003DD (989)\n-15D8E6 Uncompressed Size     000003DD (989)\n-\n-15D8EA LOCAL HEADER #536     04034B50 (67324752)\n-15D8EE Extract Zip Spec      14 (20) '2.0'\n-15D8EF Extract OS            00 (0) 'MS-DOS'\n-15D8F0 General Purpose Flag  0000 (0)\n-15D8F2 Compression Method    0000 (0) 'Stored'\n-15D8F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15D8F8 CRC                   00000000 (0)\n-15D8FC Compressed Size       00000000 (0)\n-15D900 Uncompressed Size     00000000 (0)\n-15D904 Filename Length       001E (30)\n-15D906 Extra Length          0009 (9)\n-15D908 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15D908: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15D926 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15D928   Length              0005 (5)\n-15D92A   Flags               01 (1) 'Modification'\n-15D92B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15D92F LOCAL HEADER #537     04034B50 (67324752)\n-15D933 Extract Zip Spec      14 (20) '2.0'\n-15D934 Extract OS            00 (0) 'MS-DOS'\n-15D935 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15D937 Compression Method    0000 (0) 'Stored'\n-15D939 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15D93D CRC                   00000000 (0)\n-15D941 Compressed Size       00000000 (0)\n-15D945 Uncompressed Size     00000000 (0)\n-15D949 Filename Length       002E (46)\n-15D94B Extra Length          0009 (9)\n-15D94D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15D94D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15D97B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15D97D   Length              0005 (5)\n-15D97F   Flags               01 (1) 'Modification'\n-15D980   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15D984 PAYLOAD\n-\n-15DD43 DATA DESCRIPTOR       08074B50 (134695760)\n-15DD47 CRC                   00900547 (9438535)\n-15DD4B Compressed Size       000003BF (959)\n-15DD4F Uncompressed Size     000003BF (959)\n-\n-15DD53 LOCAL HEADER #538     04034B50 (67324752)\n-15DD57 Extract Zip Spec      14 (20) '2.0'\n-15DD58 Extract OS            00 (0) 'MS-DOS'\n-15DD59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15DD5B Compression Method    0000 (0) 'Stored'\n-15DD5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15DD61 CRC                   00000000 (0)\n-15DD65 Compressed Size       00000000 (0)\n-15DD69 Uncompressed Size     00000000 (0)\n-15DD6D Filename Length       0033 (51)\n-15DD6F Extra Length          0009 (9)\n-15DD71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15DD71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15DDA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15DDA6   Length              0005 (5)\n-15DDA8   Flags               01 (1) 'Modification'\n-15DDA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15DDAD PAYLOAD\n-\n-15E55B DATA DESCRIPTOR       08074B50 (134695760)\n-15E55F CRC                   C50B0632 (3305834034)\n-15E563 Compressed Size       000007AE (1966)\n-15E567 Uncompressed Size     000007AE (1966)\n-\n-15E56B LOCAL HEADER #539     04034B50 (67324752)\n-15E56F Extract Zip Spec      14 (20) '2.0'\n-15E570 Extract OS            00 (0) 'MS-DOS'\n-15E571 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15E573 Compression Method    0000 (0) 'Stored'\n-15E575 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15E579 CRC                   00000000 (0)\n-15E57D Compressed Size       00000000 (0)\n-15E581 Uncompressed Size     00000000 (0)\n-15E585 Filename Length       0031 (49)\n-15E587 Extra Length          0009 (9)\n-15E589 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15E589: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15E5BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15E5BC   Length              0005 (5)\n-15E5BE   Flags               01 (1) 'Modification'\n-15E5BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15E5C3 PAYLOAD\n-\n-15EA28 DATA DESCRIPTOR       08074B50 (134695760)\n-15EA2C CRC                   C514DA82 (3306478210)\n-15EA30 Compressed Size       00000465 (1125)\n-15EA34 Uncompressed Size     00000465 (1125)\n-\n-15EA38 LOCAL HEADER #540     04034B50 (67324752)\n-15EA3C Extract Zip Spec      14 (20) '2.0'\n-15EA3D Extract OS            00 (0) 'MS-DOS'\n-15EA3E General Purpose Flag  0000 (0)\n-15EA40 Compression Method    0000 (0) 'Stored'\n-15EA42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15EA46 CRC                   00000000 (0)\n-15EA4A Compressed Size       00000000 (0)\n-15EA4E Uncompressed Size     00000000 (0)\n-15EA52 Filename Length       001E (30)\n-15EA54 Extra Length          0009 (9)\n-15EA56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15EA56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15EA74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15EA76   Length              0005 (5)\n-15EA78   Flags               01 (1) 'Modification'\n-15EA79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15EA7D LOCAL HEADER #541     04034B50 (67324752)\n-15EA81 Extract Zip Spec      14 (20) '2.0'\n-15EA82 Extract OS            00 (0) 'MS-DOS'\n-15EA83 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15EA85 Compression Method    0000 (0) 'Stored'\n-15EA87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15EA8B CRC                   00000000 (0)\n-15EA8F Compressed Size       00000000 (0)\n-15EA93 Uncompressed Size     00000000 (0)\n-15EA97 Filename Length       002B (43)\n-15EA99 Extra Length          0009 (9)\n-15EA9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15EA9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15EAC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15EAC8   Length              0005 (5)\n-15EACA   Flags               01 (1) 'Modification'\n-15EACB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15EACF PAYLOAD\n-\n-15F5D0 DATA DESCRIPTOR       08074B50 (134695760)\n-15F5D4 CRC                   ECC626C6 (3972409030)\n-15F5D8 Compressed Size       00000B01 (2817)\n-15F5DC Uncompressed Size     00000B01 (2817)\n-\n-15F5E0 LOCAL HEADER #542     04034B50 (67324752)\n-15F5E4 Extract Zip Spec      14 (20) '2.0'\n-15F5E5 Extract OS            00 (0) 'MS-DOS'\n-15F5E6 General Purpose Flag  0000 (0)\n-15F5E8 Compression Method    0000 (0) 'Stored'\n-15F5EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15F5EE CRC                   00000000 (0)\n-15F5F2 Compressed Size       00000000 (0)\n-15F5F6 Uncompressed Size     00000000 (0)\n-15F5FA Filename Length       001D (29)\n-15F5FC Extra Length          0009 (9)\n-15F5FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15F5FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15F61B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15F61D   Length              0005 (5)\n-15F61F   Flags               01 (1) 'Modification'\n-15F620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15F624 LOCAL HEADER #543     04034B50 (67324752)\n-15F628 Extract Zip Spec      14 (20) '2.0'\n-15F629 Extract OS            00 (0) 'MS-DOS'\n-15F62A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15F62C Compression Method    0000 (0) 'Stored'\n-15F62E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15F632 CRC                   00000000 (0)\n-15F636 Compressed Size       00000000 (0)\n-15F63A Uncompressed Size     00000000 (0)\n-15F63E Filename Length       002C (44)\n-15F640 Extra Length          0009 (9)\n-15F642 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15F642: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15F66E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15F670   Length              0005 (5)\n-15F672   Flags               01 (1) 'Modification'\n-15F673   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15F677 PAYLOAD\n-\n-15FA32 DATA DESCRIPTOR       08074B50 (134695760)\n-15FA36 CRC                   1456EFA1 (341241761)\n-15FA3A Compressed Size       000003BB (955)\n-15FA3E Uncompressed Size     000003BB (955)\n-\n-15FA42 LOCAL HEADER #544     04034B50 (67324752)\n-15FA46 Extract Zip Spec      14 (20) '2.0'\n-15FA47 Extract OS            00 (0) 'MS-DOS'\n-15FA48 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15FA4A Compression Method    0000 (0) 'Stored'\n-15FA4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FA50 CRC                   00000000 (0)\n-15FA54 Compressed Size       00000000 (0)\n-15FA58 Uncompressed Size     00000000 (0)\n-15FA5C Filename Length       002B (43)\n-15FA5E Extra Length          0009 (9)\n-15FA60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15FA60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15FA8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FA8D   Length              0005 (5)\n-15FA8F   Flags               01 (1) 'Modification'\n-15FA90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15FA94 PAYLOAD\n-\n-15FE4D DATA DESCRIPTOR       08074B50 (134695760)\n-15FE51 CRC                   E92C073F (3911976767)\n-15FE55 Compressed Size       000003B9 (953)\n-15FE59 Uncompressed Size     000003B9 (953)\n-\n-15FE5D LOCAL HEADER #545     04034B50 (67324752)\n-15FE61 Extract Zip Spec      14 (20) '2.0'\n-15FE62 Extract OS            00 (0) 'MS-DOS'\n-15FE63 General Purpose Flag  0000 (0)\n-15FE65 Compression Method    0000 (0) 'Stored'\n-15FE67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FE6B CRC                   00000000 (0)\n-15FE6F Compressed Size       00000000 (0)\n-15FE73 Uncompressed Size     00000000 (0)\n-15FE77 Filename Length       0004 (4)\n-15FE79 Extra Length          0009 (9)\n-15FE7B Filename              'XXXX'\n-#\n-# WARNING: Offset 0x15FE7B: Filename 'XXXX'\n-#          Zero length filename\n-#\n-15FE7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FE81   Length              0005 (5)\n-15FE83   Flags               01 (1) 'Modification'\n-15FE84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15FE88 LOCAL HEADER #546     04034B50 (67324752)\n-15FE8C Extract Zip Spec      14 (20) '2.0'\n-15FE8D Extract OS            00 (0) 'MS-DOS'\n-15FE8E General Purpose Flag  0000 (0)\n-15FE90 Compression Method    0000 (0) 'Stored'\n-15FE92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FE96 CRC                   00000000 (0)\n-15FE9A Compressed Size       00000000 (0)\n-15FE9E Uncompressed Size     00000000 (0)\n-15FEA2 Filename Length       000B (11)\n-15FEA4 Extra Length          0009 (9)\n-15FEA6 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15FEA6: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15FEB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FEB3   Length              0005 (5)\n-15FEB5   Flags               01 (1) 'Modification'\n-15FEB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15FEBA LOCAL HEADER #547     04034B50 (67324752)\n-15FEBE Extract Zip Spec      14 (20) '2.0'\n-15FEBF Extract OS            00 (0) 'MS-DOS'\n-15FEC0 General Purpose Flag  0000 (0)\n-15FEC2 Compression Method    0000 (0) 'Stored'\n-15FEC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FEC8 CRC                   00000000 (0)\n-15FECC Compressed Size       00000000 (0)\n-15FED0 Uncompressed Size     00000000 (0)\n-15FED4 Filename Length       0011 (17)\n-15FED6 Extra Length          0009 (9)\n-15FED8 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15FED8: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15FEE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FEEB   Length              0005 (5)\n-15FEED   Flags               01 (1) 'Modification'\n-15FEEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15FEF2 LOCAL HEADER #548     04034B50 (67324752)\n-15FEF6 Extract Zip Spec      14 (20) '2.0'\n-15FEF7 Extract OS            00 (0) 'MS-DOS'\n-15FEF8 General Purpose Flag  0000 (0)\n-15FEFA Compression Method    0000 (0) 'Stored'\n-15FEFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FF00 CRC                   00000000 (0)\n-15FF04 Compressed Size       00000000 (0)\n-15FF08 Uncompressed Size     00000000 (0)\n-15FF0C Filename Length       0017 (23)\n-15FF0E Extra Length          0009 (9)\n-15FF10 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15FF10: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15FF27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FF29   Length              0005 (5)\n-15FF2B   Flags               01 (1) 'Modification'\n-15FF2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-15FF30 LOCAL HEADER #549     04034B50 (67324752)\n-15FF34 Extract Zip Spec      14 (20) '2.0'\n-15FF35 Extract OS            00 (0) 'MS-DOS'\n-15FF36 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-15FF38 Compression Method    0000 (0) 'Stored'\n-15FF3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-15FF3E CRC                   00000000 (0)\n-15FF42 Compressed Size       00000000 (0)\n-15FF46 Uncompressed Size     00000000 (0)\n-15FF4A Filename Length       0021 (33)\n-15FF4C Extra Length          0009 (9)\n-15FF4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x15FF4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-15FF6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-15FF71   Length              0005 (5)\n-15FF73   Flags               01 (1) 'Modification'\n-15FF74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-15FF78 PAYLOAD\n-\n-160662 DATA DESCRIPTOR       08074B50 (134695760)\n-160666 CRC                   4E701AB1 (1315969713)\n-16066A Compressed Size       000006EA (1770)\n-16066E Uncompressed Size     000006EA (1770)\n-\n-160672 LOCAL HEADER #550     04034B50 (67324752)\n-160676 Extract Zip Spec      14 (20) '2.0'\n-160677 Extract OS            00 (0) 'MS-DOS'\n-160678 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16067A Compression Method    0000 (0) 'Stored'\n-16067C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-160680 CRC                   00000000 (0)\n-160684 Compressed Size       00000000 (0)\n-160688 Uncompressed Size     00000000 (0)\n-16068C Filename Length       0028 (40)\n-16068E Extra Length          0009 (9)\n-160690 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x160690: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1606B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1606BA   Length              0005 (5)\n-1606BC   Flags               01 (1) 'Modification'\n-1606BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1606C1 PAYLOAD\n-\n-160D83 DATA DESCRIPTOR       08074B50 (134695760)\n-160D87 CRC                   95722913 (2507286803)\n-160D8B Compressed Size       000006C2 (1730)\n-160D8F Uncompressed Size     000006C2 (1730)\n-\n-160D93 LOCAL HEADER #551     04034B50 (67324752)\n-160D97 Extract Zip Spec      14 (20) '2.0'\n-160D98 Extract OS            00 (0) 'MS-DOS'\n-160D99 General Purpose Flag  0000 (0)\n-160D9B Compression Method    0000 (0) 'Stored'\n-160D9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-160DA1 CRC                   00000000 (0)\n-160DA5 Compressed Size       00000000 (0)\n-160DA9 Uncompressed Size     00000000 (0)\n-160DAD Filename Length       001E (30)\n-160DAF Extra Length          0009 (9)\n-160DB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x160DB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-160DCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-160DD1   Length              0005 (5)\n-160DD3   Flags               01 (1) 'Modification'\n-160DD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-160DD8 LOCAL HEADER #552     04034B50 (67324752)\n-160DDC Extract Zip Spec      14 (20) '2.0'\n-160DDD Extract OS            00 (0) 'MS-DOS'\n-160DDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-160DE0 Compression Method    0000 (0) 'Stored'\n-160DE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-160DE6 CRC                   00000000 (0)\n-160DEA Compressed Size       00000000 (0)\n-160DEE Uncompressed Size     00000000 (0)\n-160DF2 Filename Length       002E (46)\n-160DF4 Extra Length          0009 (9)\n-160DF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x160DF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-160E24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-160E26   Length              0005 (5)\n-160E28   Flags               01 (1) 'Modification'\n-160E29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-160E2D PAYLOAD\n-\n-1624F8 DATA DESCRIPTOR       08074B50 (134695760)\n-1624FC CRC                   0E9E2711 (245245713)\n-162500 Compressed Size       000016CB (5835)\n-162504 Uncompressed Size     000016CB (5835)\n-\n-162508 LOCAL HEADER #553     04034B50 (67324752)\n-16250C Extract Zip Spec      14 (20) '2.0'\n-16250D Extract OS            00 (0) 'MS-DOS'\n-16250E General Purpose Flag  0000 (0)\n-162510 Compression Method    0000 (0) 'Stored'\n-162512 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-162516 CRC                   00000000 (0)\n-16251A Compressed Size       00000000 (0)\n-16251E Uncompressed Size     00000000 (0)\n-162522 Filename Length       001F (31)\n-162524 Extra Length          0009 (9)\n-162526 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x162526: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-162545 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-162547   Length              0005 (5)\n-162549   Flags               01 (1) 'Modification'\n-16254A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-16254E LOCAL HEADER #554     04034B50 (67324752)\n-162552 Extract Zip Spec      14 (20) '2.0'\n-162553 Extract OS            00 (0) 'MS-DOS'\n-162554 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-162556 Compression Method    0000 (0) 'Stored'\n-162558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16255C CRC                   00000000 (0)\n-162560 Compressed Size       00000000 (0)\n-162564 Uncompressed Size     00000000 (0)\n-162568 Filename Length       0038 (56)\n-16256A Extra Length          0009 (9)\n-16256C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16256C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1625A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1625A6   Length              0005 (5)\n-1625A8   Flags               01 (1) 'Modification'\n-1625A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1625AD PAYLOAD\n-\n-1631E5 DATA DESCRIPTOR       08074B50 (134695760)\n-1631E9 CRC                   048D5F10 (76373776)\n-1631ED Compressed Size       00000C38 (3128)\n-1631F1 Uncompressed Size     00000C38 (3128)\n-\n-1631F5 LOCAL HEADER #555     04034B50 (67324752)\n-1631F9 Extract Zip Spec      14 (20) '2.0'\n-1631FA Extract OS            00 (0) 'MS-DOS'\n-1631FB General Purpose Flag  0000 (0)\n-1631FD Compression Method    0000 (0) 'Stored'\n-1631FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-163203 CRC                   00000000 (0)\n-163207 Compressed Size       00000000 (0)\n-16320B Uncompressed Size     00000000 (0)\n-16320F Filename Length       0028 (40)\n-163211 Extra Length          0009 (9)\n-163213 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x163213: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16323B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16323D   Length              0005 (5)\n-16323F   Flags               01 (1) 'Modification'\n-163240   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-163244 LOCAL HEADER #556     04034B50 (67324752)\n-163248 Extract Zip Spec      14 (20) '2.0'\n-163249 Extract OS            00 (0) 'MS-DOS'\n-16324A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16324C Compression Method    0000 (0) 'Stored'\n-16324E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-163252 CRC                   00000000 (0)\n-163256 Compressed Size       00000000 (0)\n-16325A Uncompressed Size     00000000 (0)\n-16325E Filename Length       003A (58)\n-163260 Extra Length          0009 (9)\n-163262 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x163262: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16329C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16329E   Length              0005 (5)\n-1632A0   Flags               01 (1) 'Modification'\n-1632A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1632A5 PAYLOAD\n-\n-163EF7 DATA DESCRIPTOR       08074B50 (134695760)\n-163EFB CRC                   6447E2ED (1682432749)\n-163EFF Compressed Size       00000C52 (3154)\n-163F03 Uncompressed Size     00000C52 (3154)\n-\n-163F07 LOCAL HEADER #557     04034B50 (67324752)\n-163F0B Extract Zip Spec      14 (20) '2.0'\n-163F0C Extract OS            00 (0) 'MS-DOS'\n-163F0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-163F0F Compression Method    0000 (0) 'Stored'\n-163F11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-163F15 CRC                   00000000 (0)\n-163F19 Compressed Size       00000000 (0)\n-163F1D Uncompressed Size     00000000 (0)\n-163F21 Filename Length       0041 (65)\n-163F23 Extra Length          0009 (9)\n-163F25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x163F25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-163F66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-163F68   Length              0005 (5)\n-163F6A   Flags               01 (1) 'Modification'\n-163F6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-163F6F PAYLOAD\n-\n-1645CE DATA DESCRIPTOR       08074B50 (134695760)\n-1645D2 CRC                   11FDDB06 (301849350)\n-1645D6 Compressed Size       0000065F (1631)\n-1645DA Uncompressed Size     0000065F (1631)\n-\n-1645DE LOCAL HEADER #558     04034B50 (67324752)\n-1645E2 Extract Zip Spec      14 (20) '2.0'\n-1645E3 Extract OS            00 (0) 'MS-DOS'\n-1645E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1645E6 Compression Method    0000 (0) 'Stored'\n-1645E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1645EC CRC                   00000000 (0)\n-1645F0 Compressed Size       00000000 (0)\n-1645F4 Uncompressed Size     00000000 (0)\n-1645F8 Filename Length       0038 (56)\n-1645FA Extra Length          0009 (9)\n-1645FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1645FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-164634 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-164636   Length              0005 (5)\n-164638   Flags               01 (1) 'Modification'\n-164639   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16463D PAYLOAD\n-\n-166FA6 DATA DESCRIPTOR       08074B50 (134695760)\n-166FAA CRC                   58EB82E0 (1491829472)\n-166FAE Compressed Size       00002969 (10601)\n-166FB2 Uncompressed Size     00002969 (10601)\n-\n-166FB6 LOCAL HEADER #559     04034B50 (67324752)\n-166FBA Extract Zip Spec      14 (20) '2.0'\n-166FBB Extract OS            00 (0) 'MS-DOS'\n-166FBC General Purpose Flag  0000 (0)\n-166FBE Compression Method    0000 (0) 'Stored'\n-166FC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-166FC4 CRC                   00000000 (0)\n-166FC8 Compressed Size       00000000 (0)\n-166FCC Uncompressed Size     00000000 (0)\n-166FD0 Filename Length       0026 (38)\n-166FD2 Extra Length          0009 (9)\n-166FD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x166FD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-166FFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-166FFC   Length              0005 (5)\n-166FFE   Flags               01 (1) 'Modification'\n-166FFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-167003 LOCAL HEADER #560     04034B50 (67324752)\n-167007 Extract Zip Spec      14 (20) '2.0'\n-167008 Extract OS            00 (0) 'MS-DOS'\n-167009 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16700B Compression Method    0000 (0) 'Stored'\n-16700D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-167011 CRC                   00000000 (0)\n-167015 Compressed Size       00000000 (0)\n-167019 Uncompressed Size     00000000 (0)\n-16701D Filename Length       0031 (49)\n-16701F Extra Length          0009 (9)\n-167021 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x167021: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-167052 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-167054   Length              0005 (5)\n-167056   Flags               01 (1) 'Modification'\n-167057   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16705B PAYLOAD\n-\n-167EA3 DATA DESCRIPTOR       08074B50 (134695760)\n-167EA7 CRC                   5EA7953B (1588041019)\n-167EAB Compressed Size       00000E48 (3656)\n-167EAF Uncompressed Size     00000E48 (3656)\n-\n-167EB3 LOCAL HEADER #561     04034B50 (67324752)\n-167EB7 Extract Zip Spec      14 (20) '2.0'\n-167EB8 Extract OS            00 (0) 'MS-DOS'\n-167EB9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-167EBB Compression Method    0000 (0) 'Stored'\n-167EBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-167EC1 CRC                   00000000 (0)\n-167EC5 Compressed Size       00000000 (0)\n-167EC9 Uncompressed Size     00000000 (0)\n-167ECD Filename Length       0038 (56)\n-167ECF Extra Length          0009 (9)\n-167ED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x167ED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-167F09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-167F0B   Length              0005 (5)\n-167F0D   Flags               01 (1) 'Modification'\n-167F0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-167F12 PAYLOAD\n-\n-168620 DATA DESCRIPTOR       08074B50 (134695760)\n-168624 CRC                   05E875FD (99120637)\n-168628 Compressed Size       0000070E (1806)\n-16862C Uncompressed Size     0000070E (1806)\n-\n-168630 LOCAL HEADER #562     04034B50 (67324752)\n-168634 Extract Zip Spec      14 (20) '2.0'\n-168635 Extract OS            00 (0) 'MS-DOS'\n-168636 General Purpose Flag  0000 (0)\n-168638 Compression Method    0000 (0) 'Stored'\n-16863A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16863E CRC                   00000000 (0)\n-168642 Compressed Size       00000000 (0)\n-168646 Uncompressed Size     00000000 (0)\n-16864A Filename Length       0023 (35)\n-16864C Extra Length          0009 (9)\n-16864E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16864E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-168671 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-168673   Length              0005 (5)\n-168675   Flags               01 (1) 'Modification'\n-168676   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-16867A LOCAL HEADER #563     04034B50 (67324752)\n-16867E Extract Zip Spec      14 (20) '2.0'\n-16867F Extract OS            00 (0) 'MS-DOS'\n-168680 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-168682 Compression Method    0000 (0) 'Stored'\n-168684 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-168688 CRC                   00000000 (0)\n-16868C Compressed Size       00000000 (0)\n-168690 Uncompressed Size     00000000 (0)\n-168694 Filename Length       0030 (48)\n-168696 Extra Length          0009 (9)\n-168698 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x168698: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1686C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1686CA   Length              0005 (5)\n-1686CC   Flags               01 (1) 'Modification'\n-1686CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1686D1 PAYLOAD\n-\n-16931F DATA DESCRIPTOR       08074B50 (134695760)\n-169323 CRC                   39ECA03B (971808827)\n-169327 Compressed Size       00000C4E (3150)\n-16932B Uncompressed Size     00000C4E (3150)\n-\n-16932F LOCAL HEADER #564     04034B50 (67324752)\n-169333 Extract Zip Spec      14 (20) '2.0'\n-169334 Extract OS            00 (0) 'MS-DOS'\n-169335 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-169337 Compression Method    0000 (0) 'Stored'\n-169339 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16933D CRC                   00000000 (0)\n-169341 Compressed Size       00000000 (0)\n-169345 Uncompressed Size     00000000 (0)\n-169349 Filename Length       0037 (55)\n-16934B Extra Length          0009 (9)\n-16934D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16934D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-169384 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-169386   Length              0005 (5)\n-169388   Flags               01 (1) 'Modification'\n-169389   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16938D PAYLOAD\n-\n-1699AB DATA DESCRIPTOR       08074B50 (134695760)\n-1699AF CRC                   D327EA9B (3542608539)\n-1699B3 Compressed Size       0000061E (1566)\n-1699B7 Uncompressed Size     0000061E (1566)\n-\n-1699BB LOCAL HEADER #565     04034B50 (67324752)\n-1699BF Extract Zip Spec      14 (20) '2.0'\n-1699C0 Extract OS            00 (0) 'MS-DOS'\n-1699C1 General Purpose Flag  0000 (0)\n-1699C3 Compression Method    0000 (0) 'Stored'\n-1699C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1699C9 CRC                   00000000 (0)\n-1699CD Compressed Size       00000000 (0)\n-1699D1 Uncompressed Size     00000000 (0)\n-1699D5 Filename Length       0023 (35)\n-1699D7 Extra Length          0009 (9)\n-1699D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1699D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1699FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1699FE   Length              0005 (5)\n-169A00   Flags               01 (1) 'Modification'\n-169A01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-169A05 LOCAL HEADER #566     04034B50 (67324752)\n-169A09 Extract Zip Spec      14 (20) '2.0'\n-169A0A Extract OS            00 (0) 'MS-DOS'\n-169A0B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-169A0D Compression Method    0000 (0) 'Stored'\n-169A0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-169A13 CRC                   00000000 (0)\n-169A17 Compressed Size       00000000 (0)\n-169A1B Uncompressed Size     00000000 (0)\n-169A1F Filename Length       0030 (48)\n-169A21 Extra Length          0009 (9)\n-169A23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x169A23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-169A53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-169A55   Length              0005 (5)\n-169A57   Flags               01 (1) 'Modification'\n-169A58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-169A5C PAYLOAD\n-\n-16A5D1 DATA DESCRIPTOR       08074B50 (134695760)\n-16A5D5 CRC                   E901806B (3909189739)\n-16A5D9 Compressed Size       00000B75 (2933)\n-16A5DD Uncompressed Size     00000B75 (2933)\n-\n-16A5E1 LOCAL HEADER #567     04034B50 (67324752)\n-16A5E5 Extract Zip Spec      14 (20) '2.0'\n-16A5E6 Extract OS            00 (0) 'MS-DOS'\n-16A5E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16A5E9 Compression Method    0000 (0) 'Stored'\n-16A5EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16A5EF CRC                   00000000 (0)\n-16A5F3 Compressed Size       00000000 (0)\n-16A5F7 Uncompressed Size     00000000 (0)\n-16A5FB Filename Length       0037 (55)\n-16A5FD Extra Length          0009 (9)\n-16A5FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16A5FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16A636 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16A638   Length              0005 (5)\n-16A63A   Flags               01 (1) 'Modification'\n-16A63B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16A63F PAYLOAD\n-\n-16AC88 DATA DESCRIPTOR       08074B50 (134695760)\n-16AC8C CRC                   45C1CEBF (1170329279)\n-16AC90 Compressed Size       00000649 (1609)\n-16AC94 Uncompressed Size     00000649 (1609)\n-\n-16AC98 LOCAL HEADER #568     04034B50 (67324752)\n-16AC9C Extract Zip Spec      14 (20) '2.0'\n-16AC9D Extract OS            00 (0) 'MS-DOS'\n-16AC9E General Purpose Flag  0000 (0)\n-16ACA0 Compression Method    0000 (0) 'Stored'\n-16ACA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16ACA6 CRC                   00000000 (0)\n-16ACAA Compressed Size       00000000 (0)\n-16ACAE Uncompressed Size     00000000 (0)\n-16ACB2 Filename Length       002B (43)\n-16ACB4 Extra Length          0009 (9)\n-16ACB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16ACB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16ACE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16ACE3   Length              0005 (5)\n-16ACE5   Flags               01 (1) 'Modification'\n-16ACE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-16ACEA LOCAL HEADER #569     04034B50 (67324752)\n-16ACEE Extract Zip Spec      14 (20) '2.0'\n-16ACEF Extract OS            00 (0) 'MS-DOS'\n-16ACF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16ACF2 Compression Method    0000 (0) 'Stored'\n-16ACF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16ACF8 CRC                   00000000 (0)\n-16ACFC Compressed Size       00000000 (0)\n-16AD00 Uncompressed Size     00000000 (0)\n-16AD04 Filename Length       0040 (64)\n-16AD06 Extra Length          0009 (9)\n-16AD08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16AD08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16AD48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16AD4A   Length              0005 (5)\n-16AD4C   Flags               01 (1) 'Modification'\n-16AD4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16AD51 PAYLOAD\n-\n-16B8C2 DATA DESCRIPTOR       08074B50 (134695760)\n-16B8C6 CRC                   27EFB86F (670021743)\n-16B8CA Compressed Size       00000B71 (2929)\n-16B8CE Uncompressed Size     00000B71 (2929)\n-\n-16B8D2 LOCAL HEADER #570     04034B50 (67324752)\n-16B8D6 Extract Zip Spec      14 (20) '2.0'\n-16B8D7 Extract OS            00 (0) 'MS-DOS'\n-16B8D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16B8DA Compression Method    0000 (0) 'Stored'\n-16B8DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16B8E0 CRC                   00000000 (0)\n-16B8E4 Compressed Size       00000000 (0)\n-16B8E8 Uncompressed Size     00000000 (0)\n-16B8EC Filename Length       0047 (71)\n-16B8EE Extra Length          0009 (9)\n-16B8F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16B8F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16B937 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16B939   Length              0005 (5)\n-16B93B   Flags               01 (1) 'Modification'\n-16B93C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16B940 PAYLOAD\n-\n-16C006 DATA DESCRIPTOR       08074B50 (134695760)\n-16C00A CRC                   0D988858 (228100184)\n-16C00E Compressed Size       000006C6 (1734)\n-16C012 Uncompressed Size     000006C6 (1734)\n-\n-16C016 LOCAL HEADER #571     04034B50 (67324752)\n-16C01A Extract Zip Spec      14 (20) '2.0'\n-16C01B Extract OS            00 (0) 'MS-DOS'\n-16C01C General Purpose Flag  0000 (0)\n-16C01E Compression Method    0000 (0) 'Stored'\n-16C020 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16C024 CRC                   00000000 (0)\n-16C028 Compressed Size       00000000 (0)\n-16C02C Uncompressed Size     00000000 (0)\n-16C030 Filename Length       0018 (24)\n-16C032 Extra Length          0009 (9)\n-16C034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16C034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16C04C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16C04E   Length              0005 (5)\n-16C050   Flags               01 (1) 'Modification'\n-16C051   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-16C055 LOCAL HEADER #572     04034B50 (67324752)\n-16C059 Extract Zip Spec      14 (20) '2.0'\n-16C05A Extract OS            00 (0) 'MS-DOS'\n-16C05B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16C05D Compression Method    0000 (0) 'Stored'\n-16C05F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16C063 CRC                   00000000 (0)\n-16C067 Compressed Size       00000000 (0)\n-16C06B Uncompressed Size     00000000 (0)\n-16C06F Filename Length       0030 (48)\n-16C071 Extra Length          0009 (9)\n-16C073 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16C073: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16C0A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16C0A5   Length              0005 (5)\n-16C0A7   Flags               01 (1) 'Modification'\n-16C0A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16C0AC PAYLOAD\n-\n-16D1A3 DATA DESCRIPTOR       08074B50 (134695760)\n-16D1A7 CRC                   4059C95D (1079626077)\n-16D1AB Compressed Size       000010F7 (4343)\n-16D1AF Uncompressed Size     000010F7 (4343)\n-\n-16D1B3 LOCAL HEADER #573     04034B50 (67324752)\n-16D1B7 Extract Zip Spec      14 (20) '2.0'\n-16D1B8 Extract OS            00 (0) 'MS-DOS'\n-16D1B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16D1BB Compression Method    0000 (0) 'Stored'\n-16D1BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16D1C1 CRC                   00000000 (0)\n-16D1C5 Compressed Size       00000000 (0)\n-16D1C9 Uncompressed Size     00000000 (0)\n-16D1CD Filename Length       0029 (41)\n-16D1CF Extra Length          0009 (9)\n-16D1D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16D1D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16D1FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16D1FC   Length              0005 (5)\n-16D1FE   Flags               01 (1) 'Modification'\n-16D1FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16D203 PAYLOAD\n-\n-16D755 DATA DESCRIPTOR       08074B50 (134695760)\n-16D759 CRC                   BF971C06 (3214351366)\n-16D75D Compressed Size       00000552 (1362)\n-16D761 Uncompressed Size     00000552 (1362)\n-\n-16D765 LOCAL HEADER #574     04034B50 (67324752)\n-16D769 Extract Zip Spec      14 (20) '2.0'\n-16D76A Extract OS            00 (0) 'MS-DOS'\n-16D76B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16D76D Compression Method    0000 (0) 'Stored'\n-16D76F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16D773 CRC                   00000000 (0)\n-16D777 Compressed Size       00000000 (0)\n-16D77B Uncompressed Size     00000000 (0)\n-16D77F Filename Length       0026 (38)\n-16D781 Extra Length          0009 (9)\n-16D783 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16D783: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16D7A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16D7AB   Length              0005 (5)\n-16D7AD   Flags               01 (1) 'Modification'\n-16D7AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16D7B2 PAYLOAD\n-\n-16E15D DATA DESCRIPTOR       08074B50 (134695760)\n-16E161 CRC                   1CCCA507 (483173639)\n-16E165 Compressed Size       000009AB (2475)\n-16E169 Uncompressed Size     000009AB (2475)\n-\n-16E16D LOCAL HEADER #575     04034B50 (67324752)\n-16E171 Extract Zip Spec      14 (20) '2.0'\n-16E172 Extract OS            00 (0) 'MS-DOS'\n-16E173 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16E175 Compression Method    0000 (0) 'Stored'\n-16E177 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16E17B CRC                   00000000 (0)\n-16E17F Compressed Size       00000000 (0)\n-16E183 Uncompressed Size     00000000 (0)\n-16E187 Filename Length       0021 (33)\n-16E189 Extra Length          0009 (9)\n-16E18B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16E18B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16E1AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16E1AE   Length              0005 (5)\n-16E1B0   Flags               01 (1) 'Modification'\n-16E1B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16E1B5 PAYLOAD\n-\n-16E654 DATA DESCRIPTOR       08074B50 (134695760)\n-16E658 CRC                   0622E0A0 (102949024)\n-16E65C Compressed Size       0000049F (1183)\n-16E660 Uncompressed Size     0000049F (1183)\n-\n-16E664 LOCAL HEADER #576     04034B50 (67324752)\n-16E668 Extract Zip Spec      14 (20) '2.0'\n-16E669 Extract OS            00 (0) 'MS-DOS'\n-16E66A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-16E66C Compression Method    0000 (0) 'Stored'\n-16E66E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-16E672 CRC                   00000000 (0)\n-16E676 Compressed Size       00000000 (0)\n-16E67A Uncompressed Size     00000000 (0)\n-16E67E Filename Length       0027 (39)\n-16E680 Extra Length          0009 (9)\n-16E682 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x16E682: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-16E6A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-16E6AB   Length              0005 (5)\n-16E6AD   Flags               01 (1) 'Modification'\n-16E6AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-16E6B2 PAYLOAD\n-\n-17094C DATA DESCRIPTOR       08074B50 (134695760)\n-170950 CRC                   3DF15F74 (1039228788)\n-170954 Compressed Size       0000229A (8858)\n-170958 Uncompressed Size     0000229A (8858)\n-\n-17095C LOCAL HEADER #577     04034B50 (67324752)\n-170960 Extract Zip Spec      14 (20) '2.0'\n-170961 Extract OS            00 (0) 'MS-DOS'\n-170962 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-170964 Compression Method    0000 (0) 'Stored'\n-170966 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-17096A CRC                   00000000 (0)\n-17096E Compressed Size       00000000 (0)\n-170972 Uncompressed Size     00000000 (0)\n-170976 Filename Length       0026 (38)\n-170978 Extra Length          0009 (9)\n-17097A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x17097A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1709A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1709A2   Length              0005 (5)\n-1709A4   Flags               01 (1) 'Modification'\n-1709A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1709A9 PAYLOAD\n-\n-170D91 DATA DESCRIPTOR       08074B50 (134695760)\n-170D95 CRC                   52712A03 (1383148035)\n-170D99 Compressed Size       000003E8 (1000)\n-170D9D Uncompressed Size     000003E8 (1000)\n-\n-170DA1 LOCAL HEADER #578     04034B50 (67324752)\n-170DA5 Extract Zip Spec      14 (20) '2.0'\n-170DA6 Extract OS            00 (0) 'MS-DOS'\n-170DA7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-170DA9 Compression Method    0000 (0) 'Stored'\n-170DAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-170DAF CRC                   00000000 (0)\n-170DB3 Compressed Size       00000000 (0)\n-170DB7 Uncompressed Size     00000000 (0)\n-170DBB Filename Length       0020 (32)\n-170DBD Extra Length          0009 (9)\n-170DBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x170DBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-170DDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-170DE1   Length              0005 (5)\n-170DE3   Flags               01 (1) 'Modification'\n-170DE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-170DE8 PAYLOAD\n-\n-182171 DATA DESCRIPTOR       08074B50 (134695760)\n-182175 CRC                   4B96BF4D (1268170573)\n-182179 Compressed Size       00011389 (70537)\n-18217D Uncompressed Size     00011389 (70537)\n-\n-182181 LOCAL HEADER #579     04034B50 (67324752)\n-182185 Extract Zip Spec      14 (20) '2.0'\n-182186 Extract OS            00 (0) 'MS-DOS'\n-182187 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-182189 Compression Method    0000 (0) 'Stored'\n-18218B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-18218F CRC                   00000000 (0)\n-182193 Compressed Size       00000000 (0)\n-182197 Uncompressed Size     00000000 (0)\n-18219B Filename Length       0027 (39)\n-18219D Extra Length          0009 (9)\n-18219F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x18219F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1821C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1821C8   Length              0005 (5)\n-1821CA   Flags               01 (1) 'Modification'\n-1821CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1821CF PAYLOAD\n-\n-185733 DATA DESCRIPTOR       08074B50 (134695760)\n-185737 CRC                   E6F6EE92 (3874942610)\n-18573B Compressed Size       00003564 (13668)\n-18573F Uncompressed Size     00003564 (13668)\n-\n-185743 LOCAL HEADER #580     04034B50 (67324752)\n-185747 Extract Zip Spec      14 (20) '2.0'\n-185748 Extract OS            00 (0) 'MS-DOS'\n-185749 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-18574B Compression Method    0000 (0) 'Stored'\n-18574D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-185751 CRC                   00000000 (0)\n-185755 Compressed Size       00000000 (0)\n-185759 Uncompressed Size     00000000 (0)\n-18575D Filename Length       0029 (41)\n-18575F Extra Length          0009 (9)\n-185761 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x185761: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18578A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18578C   Length              0005 (5)\n-18578E   Flags               01 (1) 'Modification'\n-18578F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-185793 PAYLOAD\n-\n-188C34 DATA DESCRIPTOR       08074B50 (134695760)\n-188C38 CRC                   8B1361FF (2333303295)\n-188C3C Compressed Size       000034A1 (13473)\n-188C40 Uncompressed Size     000034A1 (13473)\n-\n-188C44 LOCAL HEADER #581     04034B50 (67324752)\n-188C48 Extract Zip Spec      14 (20) '2.0'\n-188C49 Extract OS            00 (0) 'MS-DOS'\n-188C4A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-188C4C Compression Method    0000 (0) 'Stored'\n-188C4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-188C52 CRC                   00000000 (0)\n-188C56 Compressed Size       00000000 (0)\n-188C5A Uncompressed Size     00000000 (0)\n-188C5E Filename Length       0024 (36)\n-188C60 Extra Length          0009 (9)\n-188C62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x188C62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-188C86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-188C88   Length              0005 (5)\n-188C8A   Flags               01 (1) 'Modification'\n-188C8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-188C8F PAYLOAD\n-\n-18B2B4 DATA DESCRIPTOR       08074B50 (134695760)\n-18B2B8 CRC                   F43D3BE1 (4097653729)\n-18B2BC Compressed Size       00002625 (9765)\n-18B2C0 Uncompressed Size     00002625 (9765)\n-\n-18B2C4 LOCAL HEADER #582     04034B50 (67324752)\n-18B2C8 Extract Zip Spec      14 (20) '2.0'\n-18B2C9 Extract OS            00 (0) 'MS-DOS'\n-18B2CA General Purpose Flag  0000 (0)\n-18B2CC Compression Method    0000 (0) 'Stored'\n-18B2CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-18B2D2 CRC                   00000000 (0)\n-18B2D6 Compressed Size       00000000 (0)\n-18B2DA Uncompressed Size     00000000 (0)\n-18B2DE Filename Length       0021 (33)\n-18B2E0 Extra Length          0009 (9)\n-18B2E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x18B2E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18B303 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18B305   Length              0005 (5)\n-18B307   Flags               01 (1) 'Modification'\n-18B308   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-18B30C LOCAL HEADER #583     04034B50 (67324752)\n-18B310 Extract Zip Spec      14 (20) '2.0'\n-18B311 Extract OS            00 (0) 'MS-DOS'\n-18B312 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-18B314 Compression Method    0000 (0) 'Stored'\n-18B316 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-18B31A CRC                   00000000 (0)\n-18B31E Compressed Size       00000000 (0)\n-18B322 Uncompressed Size     00000000 (0)\n-18B326 Filename Length       0036 (54)\n-18B328 Extra Length          0009 (9)\n-18B32A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x18B32A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18B360 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18B362   Length              0005 (5)\n-18B364   Flags               01 (1) 'Modification'\n-18B365   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-18B369 PAYLOAD\n-\n-18B8BD DATA DESCRIPTOR       08074B50 (134695760)\n-18B8C1 CRC                   62810B39 (1652624185)\n-18B8C5 Compressed Size       00000554 (1364)\n-18B8C9 Uncompressed Size     00000554 (1364)\n-\n-18B8CD LOCAL HEADER #584     04034B50 (67324752)\n-18B8D1 Extract Zip Spec      14 (20) '2.0'\n-18B8D2 Extract OS            00 (0) 'MS-DOS'\n-18B8D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-18B8D5 Compression Method    0000 (0) 'Stored'\n-18B8D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-18B8DB CRC                   00000000 (0)\n-18B8DF Compressed Size       00000000 (0)\n-18B8E3 Uncompressed Size     00000000 (0)\n-18B8E7 Filename Length       0038 (56)\n-18B8E9 Extra Length          0009 (9)\n-18B8EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x18B8EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18B923 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18B925   Length              0005 (5)\n-18B927   Flags               01 (1) 'Modification'\n-18B928   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-18B92C PAYLOAD\n-\n-18D1D1 DATA DESCRIPTOR       08074B50 (134695760)\n-18D1D5 CRC                   F49AF035 (4103794741)\n-18D1D9 Compressed Size       000018A5 (6309)\n-18D1DD Uncompressed Size     000018A5 (6309)\n-\n-18D1E1 LOCAL HEADER #585     04034B50 (67324752)\n-18D1E5 Extract Zip Spec      14 (20) '2.0'\n-18D1E6 Extract OS            00 (0) 'MS-DOS'\n-18D1E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-18D1E9 Compression Method    0000 (0) 'Stored'\n-18D1EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-18D1EF CRC                   00000000 (0)\n-18D1F3 Compressed Size       00000000 (0)\n-18D1F7 Uncompressed Size     00000000 (0)\n-18D1FB Filename Length       003B (59)\n-18D1FD Extra Length          0009 (9)\n-18D1FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x18D1FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-18D23A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-18D23C   Length              0005 (5)\n-18D23E   Flags               01 (1) 'Modification'\n-18D23F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-18D243 PAYLOAD\n-\n-192111 DATA DESCRIPTOR       08074B50 (134695760)\n-192115 CRC                   11EE6DF6 (300838390)\n-192119 Compressed Size       00004ECE (20174)\n-19211D Uncompressed Size     00004ECE (20174)\n-\n-192121 LOCAL HEADER #586     04034B50 (67324752)\n-192125 Extract Zip Spec      14 (20) '2.0'\n-192126 Extract OS            00 (0) 'MS-DOS'\n-192127 General Purpose Flag  0000 (0)\n-192129 Compression Method    0000 (0) 'Stored'\n-19212B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-19212F CRC                   00000000 (0)\n-192133 Compressed Size       00000000 (0)\n-192137 Uncompressed Size     00000000 (0)\n-19213B Filename Length       0021 (33)\n-19213D Extra Length          0009 (9)\n-19213F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x19213F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-192160 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-192162   Length              0005 (5)\n-192164   Flags               01 (1) 'Modification'\n-192165   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-192169 LOCAL HEADER #587     04034B50 (67324752)\n-19216D Extract Zip Spec      14 (20) '2.0'\n-19216E Extract OS            00 (0) 'MS-DOS'\n-19216F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-192171 Compression Method    0000 (0) 'Stored'\n-192173 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-192177 CRC                   00000000 (0)\n-19217B Compressed Size       00000000 (0)\n-19217F Uncompressed Size     00000000 (0)\n-192183 Filename Length       0034 (52)\n-192185 Extra Length          0009 (9)\n-192187 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x192187: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1921BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1921BD   Length              0005 (5)\n-1921BF   Flags               01 (1) 'Modification'\n-1921C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1921C4 PAYLOAD\n-\n-1954A3 DATA DESCRIPTOR       08074B50 (134695760)\n-1954A7 CRC                   87F19404 (2280756228)\n-1954AB Compressed Size       000032DF (13023)\n-1954AF Uncompressed Size     000032DF (13023)\n-\n-1954B3 LOCAL HEADER #588     04034B50 (67324752)\n-1954B7 Extract Zip Spec      14 (20) '2.0'\n-1954B8 Extract OS            00 (0) 'MS-DOS'\n-1954B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1954BB Compression Method    0000 (0) 'Stored'\n-1954BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1954C1 CRC                   00000000 (0)\n-1954C5 Compressed Size       00000000 (0)\n-1954C9 Uncompressed Size     00000000 (0)\n-1954CD Filename Length       003F (63)\n-1954CF Extra Length          0009 (9)\n-1954D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1954D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-195510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-195512   Length              0005 (5)\n-195514   Flags               01 (1) 'Modification'\n-195515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-195519 PAYLOAD\n-\n-1962CB DATA DESCRIPTOR       08074B50 (134695760)\n-1962CF CRC                   AA2CE6AF (2855069359)\n-1962D3 Compressed Size       00000DB2 (3506)\n-1962D7 Uncompressed Size     00000DB2 (3506)\n-\n-1962DB LOCAL HEADER #589     04034B50 (67324752)\n-1962DF Extract Zip Spec      14 (20) '2.0'\n-1962E0 Extract OS            00 (0) 'MS-DOS'\n-1962E1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1962E3 Compression Method    0000 (0) 'Stored'\n-1962E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1962E9 CRC                   00000000 (0)\n-1962ED Compressed Size       00000000 (0)\n-1962F1 Uncompressed Size     00000000 (0)\n-1962F5 Filename Length       002B (43)\n-1962F7 Extra Length          0009 (9)\n-1962F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1962F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-196324 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-196326   Length              0005 (5)\n-196328   Flags               01 (1) 'Modification'\n-196329   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-19632D PAYLOAD\n-\n-198344 DATA DESCRIPTOR       08074B50 (134695760)\n-198348 CRC                   4F0E9D5D (1326357853)\n-19834C Compressed Size       00002017 (8215)\n-198350 Uncompressed Size     00002017 (8215)\n-\n-198354 LOCAL HEADER #590     04034B50 (67324752)\n-198358 Extract Zip Spec      14 (20) '2.0'\n-198359 Extract OS            00 (0) 'MS-DOS'\n-19835A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-19835C Compression Method    0000 (0) 'Stored'\n-19835E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-198362 CRC                   00000000 (0)\n-198366 Compressed Size       00000000 (0)\n-19836A Uncompressed Size     00000000 (0)\n-19836E Filename Length       003B (59)\n-198370 Extra Length          0009 (9)\n-198372 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x198372: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1983AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1983AF   Length              0005 (5)\n-1983B1   Flags               01 (1) 'Modification'\n-1983B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1983B6 PAYLOAD\n-\n-198854 DATA DESCRIPTOR       08074B50 (134695760)\n-198858 CRC                   35B34ECC (900943564)\n-19885C Compressed Size       0000049E (1182)\n-198860 Uncompressed Size     0000049E (1182)\n-\n-198864 LOCAL HEADER #591     04034B50 (67324752)\n-198868 Extract Zip Spec      14 (20) '2.0'\n-198869 Extract OS            00 (0) 'MS-DOS'\n-19886A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-19886C Compression Method    0000 (0) 'Stored'\n-19886E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-198872 CRC                   00000000 (0)\n-198876 Compressed Size       00000000 (0)\n-19887A Uncompressed Size     00000000 (0)\n-19887E Filename Length       003D (61)\n-198880 Extra Length          0009 (9)\n-198882 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x198882: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1988BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1988C1   Length              0005 (5)\n-1988C3   Flags               01 (1) 'Modification'\n-1988C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1988C8 PAYLOAD\n-\n-198D6E DATA DESCRIPTOR       08074B50 (134695760)\n-198D72 CRC                   AE36D6DB (2922829531)\n-198D76 Compressed Size       000004A6 (1190)\n-198D7A Uncompressed Size     000004A6 (1190)\n-\n-198D7E LOCAL HEADER #592     04034B50 (67324752)\n-198D82 Extract Zip Spec      14 (20) '2.0'\n-198D83 Extract OS            00 (0) 'MS-DOS'\n-198D84 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-198D86 Compression Method    0000 (0) 'Stored'\n-198D88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-198D8C CRC                   00000000 (0)\n-198D90 Compressed Size       00000000 (0)\n-198D94 Uncompressed Size     00000000 (0)\n-198D98 Filename Length       002B (43)\n-198D9A Extra Length          0009 (9)\n-198D9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x198D9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-198DC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-198DC9   Length              0005 (5)\n-198DCB   Flags               01 (1) 'Modification'\n-198DCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-198DD0 PAYLOAD\n-\n-19BD1D DATA DESCRIPTOR       08074B50 (134695760)\n-19BD21 CRC                   693DBCBA (1765653690)\n-19BD25 Compressed Size       00002F4D (12109)\n-19BD29 Uncompressed Size     00002F4D (12109)\n-\n-19BD2D LOCAL HEADER #593     04034B50 (67324752)\n-19BD31 Extract Zip Spec      14 (20) '2.0'\n-19BD32 Extract OS            00 (0) 'MS-DOS'\n-19BD33 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-19BD35 Compression Method    0000 (0) 'Stored'\n-19BD37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-19BD3B CRC                   00000000 (0)\n-19BD3F Compressed Size       00000000 (0)\n-19BD43 Uncompressed Size     00000000 (0)\n-19BD47 Filename Length       002D (45)\n-19BD49 Extra Length          0009 (9)\n-19BD4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x19BD4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-19BD78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-19BD7A   Length              0005 (5)\n-19BD7C   Flags               01 (1) 'Modification'\n-19BD7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-19BD81 PAYLOAD\n-\n-1A0389 DATA DESCRIPTOR       08074B50 (134695760)\n-1A038D CRC                   44BCC62B (1153222187)\n-1A0391 Compressed Size       00004608 (17928)\n-1A0395 Uncompressed Size     00004608 (17928)\n-\n-1A0399 LOCAL HEADER #594     04034B50 (67324752)\n-1A039D Extract Zip Spec      14 (20) '2.0'\n-1A039E Extract OS            00 (0) 'MS-DOS'\n-1A039F General Purpose Flag  0000 (0)\n-1A03A1 Compression Method    0000 (0) 'Stored'\n-1A03A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A03A7 CRC                   00000000 (0)\n-1A03AB Compressed Size       00000000 (0)\n-1A03AF Uncompressed Size     00000000 (0)\n-1A03B3 Filename Length       0021 (33)\n-1A03B5 Extra Length          0009 (9)\n-1A03B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A03B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A03D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A03DA   Length              0005 (5)\n-1A03DC   Flags               01 (1) 'Modification'\n-1A03DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1A03E1 LOCAL HEADER #595     04034B50 (67324752)\n-1A03E5 Extract Zip Spec      14 (20) '2.0'\n-1A03E6 Extract OS            00 (0) 'MS-DOS'\n-1A03E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A03E9 Compression Method    0000 (0) 'Stored'\n-1A03EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A03EF CRC                   00000000 (0)\n-1A03F3 Compressed Size       00000000 (0)\n-1A03F7 Uncompressed Size     00000000 (0)\n-1A03FB Filename Length       002E (46)\n-1A03FD Extra Length          0009 (9)\n-1A03FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A03FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A042D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A042F   Length              0005 (5)\n-1A0431   Flags               01 (1) 'Modification'\n-1A0432   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A0436 PAYLOAD\n-\n-1A091D DATA DESCRIPTOR       08074B50 (134695760)\n-1A0921 CRC                   01EEDE5E (32431710)\n-1A0925 Compressed Size       000004E7 (1255)\n-1A0929 Uncompressed Size     000004E7 (1255)\n-\n-1A092D LOCAL HEADER #596     04034B50 (67324752)\n-1A0931 Extract Zip Spec      14 (20) '2.0'\n-1A0932 Extract OS            00 (0) 'MS-DOS'\n-1A0933 General Purpose Flag  0000 (0)\n-1A0935 Compression Method    0000 (0) 'Stored'\n-1A0937 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A093B CRC                   00000000 (0)\n-1A093F Compressed Size       00000000 (0)\n-1A0943 Uncompressed Size     00000000 (0)\n-1A0947 Filename Length       0029 (41)\n-1A0949 Extra Length          0009 (9)\n-1A094B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A094B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A0974 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A0976   Length              0005 (5)\n-1A0978   Flags               01 (1) 'Modification'\n-1A0979   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1A097D LOCAL HEADER #597     04034B50 (67324752)\n-1A0981 Extract Zip Spec      14 (20) '2.0'\n-1A0982 Extract OS            00 (0) 'MS-DOS'\n-1A0983 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A0985 Compression Method    0000 (0) 'Stored'\n-1A0987 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A098B CRC                   00000000 (0)\n-1A098F Compressed Size       00000000 (0)\n-1A0993 Uncompressed Size     00000000 (0)\n-1A0997 Filename Length       003E (62)\n-1A0999 Extra Length          0009 (9)\n-1A099B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A099B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A09D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A09DB   Length              0005 (5)\n-1A09DD   Flags               01 (1) 'Modification'\n-1A09DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A09E2 PAYLOAD\n-\n-1A14FD DATA DESCRIPTOR       08074B50 (134695760)\n-1A1501 CRC                   20854F04 (545607428)\n-1A1505 Compressed Size       00000B1B (2843)\n-1A1509 Uncompressed Size     00000B1B (2843)\n-\n-1A150D LOCAL HEADER #598     04034B50 (67324752)\n-1A1511 Extract Zip Spec      14 (20) '2.0'\n-1A1512 Extract OS            00 (0) 'MS-DOS'\n-1A1513 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A1515 Compression Method    0000 (0) 'Stored'\n-1A1517 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A151B CRC                   00000000 (0)\n-1A151F Compressed Size       00000000 (0)\n-1A1523 Uncompressed Size     00000000 (0)\n-1A1527 Filename Length       003E (62)\n-1A1529 Extra Length          0009 (9)\n-1A152B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A152B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A1569 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A156B   Length              0005 (5)\n-1A156D   Flags               01 (1) 'Modification'\n-1A156E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A1572 PAYLOAD\n-\n-1A1CA5 DATA DESCRIPTOR       08074B50 (134695760)\n-1A1CA9 CRC                   D19D012A (3516727594)\n-1A1CAD Compressed Size       00000733 (1843)\n-1A1CB1 Uncompressed Size     00000733 (1843)\n-\n-1A1CB5 LOCAL HEADER #599     04034B50 (67324752)\n-1A1CB9 Extract Zip Spec      14 (20) '2.0'\n-1A1CBA Extract OS            00 (0) 'MS-DOS'\n-1A1CBB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A1CBD Compression Method    0000 (0) 'Stored'\n-1A1CBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A1CC3 CRC                   00000000 (0)\n-1A1CC7 Compressed Size       00000000 (0)\n-1A1CCB Uncompressed Size     00000000 (0)\n-1A1CCF Filename Length       0038 (56)\n-1A1CD1 Extra Length          0009 (9)\n-1A1CD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A1CD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A1D0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A1D0D   Length              0005 (5)\n-1A1D0F   Flags               01 (1) 'Modification'\n-1A1D10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A1D14 PAYLOAD\n-\n-1A59D8 DATA DESCRIPTOR       08074B50 (134695760)\n-1A59DC CRC                   489CA2B6 (1218224822)\n-1A59E0 Compressed Size       00003CC4 (15556)\n-1A59E4 Uncompressed Size     00003CC4 (15556)\n-\n-1A59E8 LOCAL HEADER #600     04034B50 (67324752)\n-1A59EC Extract Zip Spec      14 (20) '2.0'\n-1A59ED Extract OS            00 (0) 'MS-DOS'\n-1A59EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A59F0 Compression Method    0000 (0) 'Stored'\n-1A59F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A59F6 CRC                   00000000 (0)\n-1A59FA Compressed Size       00000000 (0)\n-1A59FE Uncompressed Size     00000000 (0)\n-1A5A02 Filename Length       003C (60)\n-1A5A04 Extra Length          0009 (9)\n-1A5A06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A5A06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A5A42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A5A44   Length              0005 (5)\n-1A5A46   Flags               01 (1) 'Modification'\n-1A5A47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A5A4B PAYLOAD\n-\n-1A6E05 DATA DESCRIPTOR       08074B50 (134695760)\n-1A6E09 CRC                   BD63F8B8 (3177445560)\n-1A6E0D Compressed Size       000013BA (5050)\n-1A6E11 Uncompressed Size     000013BA (5050)\n-\n-1A6E15 LOCAL HEADER #601     04034B50 (67324752)\n-1A6E19 Extract Zip Spec      14 (20) '2.0'\n-1A6E1A Extract OS            00 (0) 'MS-DOS'\n-1A6E1B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A6E1D Compression Method    0000 (0) 'Stored'\n-1A6E1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A6E23 CRC                   00000000 (0)\n-1A6E27 Compressed Size       00000000 (0)\n-1A6E2B Uncompressed Size     00000000 (0)\n-1A6E2F Filename Length       003F (63)\n-1A6E31 Extra Length          0009 (9)\n-1A6E33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A6E33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A6E72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A6E74   Length              0005 (5)\n-1A6E76   Flags               01 (1) 'Modification'\n-1A6E77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A6E7B PAYLOAD\n-\n-1A7C2B DATA DESCRIPTOR       08074B50 (134695760)\n-1A7C2F CRC                   C96B89A9 (3379268009)\n-1A7C33 Compressed Size       00000DB0 (3504)\n-1A7C37 Uncompressed Size     00000DB0 (3504)\n-\n-1A7C3B LOCAL HEADER #602     04034B50 (67324752)\n-1A7C3F Extract Zip Spec      14 (20) '2.0'\n-1A7C40 Extract OS            00 (0) 'MS-DOS'\n-1A7C41 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1A7C43 Compression Method    0000 (0) 'Stored'\n-1A7C45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1A7C49 CRC                   00000000 (0)\n-1A7C4D Compressed Size       00000000 (0)\n-1A7C51 Uncompressed Size     00000000 (0)\n-1A7C55 Filename Length       0039 (57)\n-1A7C57 Extra Length          0009 (9)\n-1A7C59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1A7C59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1A7C92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1A7C94   Length              0005 (5)\n-1A7C96   Flags               01 (1) 'Modification'\n-1A7C97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1A7C9B PAYLOAD\n-\n-1AA960 DATA DESCRIPTOR       08074B50 (134695760)\n-1AA964 CRC                   3FE3ACCB (1071885515)\n-1AA968 Compressed Size       00002CC5 (11461)\n-1AA96C Uncompressed Size     00002CC5 (11461)\n-\n-1AA970 LOCAL HEADER #603     04034B50 (67324752)\n-1AA974 Extract Zip Spec      14 (20) '2.0'\n-1AA975 Extract OS            00 (0) 'MS-DOS'\n-1AA976 General Purpose Flag  0000 (0)\n-1AA978 Compression Method    0000 (0) 'Stored'\n-1AA97A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1AA97E CRC                   00000000 (0)\n-1AA982 Compressed Size       00000000 (0)\n-1AA986 Uncompressed Size     00000000 (0)\n-1AA98A Filename Length       001F (31)\n-1AA98C Extra Length          0009 (9)\n-1AA98E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1AA98E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1AA9AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1AA9AF   Length              0005 (5)\n-1AA9B1   Flags               01 (1) 'Modification'\n-1AA9B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1AA9B6 LOCAL HEADER #604     04034B50 (67324752)\n-1AA9BA Extract Zip Spec      14 (20) '2.0'\n-1AA9BB Extract OS            00 (0) 'MS-DOS'\n-1AA9BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1AA9BE Compression Method    0000 (0) 'Stored'\n-1AA9C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1AA9C4 CRC                   00000000 (0)\n-1AA9C8 Compressed Size       00000000 (0)\n-1AA9CC Uncompressed Size     00000000 (0)\n-1AA9D0 Filename Length       003A (58)\n-1AA9D2 Extra Length          0009 (9)\n-1AA9D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1AA9D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1AAA0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1AAA10   Length              0005 (5)\n-1AAA12   Flags               01 (1) 'Modification'\n-1AAA13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1AAA17 PAYLOAD\n-\n-1ABB15 DATA DESCRIPTOR       08074B50 (134695760)\n-1ABB19 CRC                   F325AC46 (4079332422)\n-1ABB1D Compressed Size       000010FE (4350)\n-1ABB21 Uncompressed Size     000010FE (4350)\n-\n-1ABB25 LOCAL HEADER #605     04034B50 (67324752)\n-1ABB29 Extract Zip Spec      14 (20) '2.0'\n-1ABB2A Extract OS            00 (0) 'MS-DOS'\n-1ABB2B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1ABB2D Compression Method    0000 (0) 'Stored'\n-1ABB2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1ABB33 CRC                   00000000 (0)\n-1ABB37 Compressed Size       00000000 (0)\n-1ABB3B Uncompressed Size     00000000 (0)\n-1ABB3F Filename Length       0031 (49)\n-1ABB41 Extra Length          0009 (9)\n-1ABB43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1ABB43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1ABB74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1ABB76   Length              0005 (5)\n-1ABB78   Flags               01 (1) 'Modification'\n-1ABB79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1ABB7D PAYLOAD\n-\n-1AD642 DATA DESCRIPTOR       08074B50 (134695760)\n-1AD646 CRC                   9BAFC26A (2611987050)\n-1AD64A Compressed Size       00001AC5 (6853)\n-1AD64E Uncompressed Size     00001AC5 (6853)\n-\n-1AD652 LOCAL HEADER #606     04034B50 (67324752)\n-1AD656 Extract Zip Spec      14 (20) '2.0'\n-1AD657 Extract OS            00 (0) 'MS-DOS'\n-1AD658 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1AD65A Compression Method    0000 (0) 'Stored'\n-1AD65C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1AD660 CRC                   00000000 (0)\n-1AD664 Compressed Size       00000000 (0)\n-1AD668 Uncompressed Size     00000000 (0)\n-1AD66C Filename Length       0036 (54)\n-1AD66E Extra Length          0009 (9)\n-1AD670 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1AD670: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1AD6A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1AD6A8   Length              0005 (5)\n-1AD6AA   Flags               01 (1) 'Modification'\n-1AD6AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1AD6AF PAYLOAD\n-\n-1AE95A DATA DESCRIPTOR       08074B50 (134695760)\n-1AE95E CRC                   68B50306 (1756693254)\n-1AE962 Compressed Size       000012AB (4779)\n-1AE966 Uncompressed Size     000012AB (4779)\n-\n-1AE96A LOCAL HEADER #607     04034B50 (67324752)\n-1AE96E Extract Zip Spec      14 (20) '2.0'\n-1AE96F Extract OS            00 (0) 'MS-DOS'\n-1AE970 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1AE972 Compression Method    0000 (0) 'Stored'\n-1AE974 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1AE978 CRC                   00000000 (0)\n-1AE97C Compressed Size       00000000 (0)\n-1AE980 Uncompressed Size     00000000 (0)\n-1AE984 Filename Length       002F (47)\n-1AE986 Extra Length          0009 (9)\n-1AE988 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1AE988: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1AE9B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1AE9B9   Length              0005 (5)\n-1AE9BB   Flags               01 (1) 'Modification'\n-1AE9BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1AE9C0 PAYLOAD\n-\n-1B10D5 DATA DESCRIPTOR       08074B50 (134695760)\n-1B10D9 CRC                   0BFFCD1E (201313566)\n-1B10DD Compressed Size       00002715 (10005)\n-1B10E1 Uncompressed Size     00002715 (10005)\n-\n-1B10E5 LOCAL HEADER #608     04034B50 (67324752)\n-1B10E9 Extract Zip Spec      14 (20) '2.0'\n-1B10EA Extract OS            00 (0) 'MS-DOS'\n-1B10EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B10ED Compression Method    0000 (0) 'Stored'\n-1B10EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B10F3 CRC                   00000000 (0)\n-1B10F7 Compressed Size       00000000 (0)\n-1B10FB Uncompressed Size     00000000 (0)\n-1B10FF Filename Length       003C (60)\n-1B1101 Extra Length          0009 (9)\n-1B1103 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B1103: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B113F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B1141   Length              0005 (5)\n-1B1143   Flags               01 (1) 'Modification'\n-1B1144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B1148 PAYLOAD\n-\n-1B163B DATA DESCRIPTOR       08074B50 (134695760)\n-1B163F CRC                   94D758DF (2497140959)\n-1B1643 Compressed Size       000004F3 (1267)\n-1B1647 Uncompressed Size     000004F3 (1267)\n-\n-1B164B LOCAL HEADER #609     04034B50 (67324752)\n-1B164F Extract Zip Spec      14 (20) '2.0'\n-1B1650 Extract OS            00 (0) 'MS-DOS'\n-1B1651 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B1653 Compression Method    0000 (0) 'Stored'\n-1B1655 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B1659 CRC                   00000000 (0)\n-1B165D Compressed Size       00000000 (0)\n-1B1661 Uncompressed Size     00000000 (0)\n-1B1665 Filename Length       0039 (57)\n-1B1667 Extra Length          0009 (9)\n-1B1669 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B1669: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B16A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B16A4   Length              0005 (5)\n-1B16A6   Flags               01 (1) 'Modification'\n-1B16A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B16AB PAYLOAD\n-\n-1B1E1B DATA DESCRIPTOR       08074B50 (134695760)\n-1B1E1F CRC                   778123FC (2004952060)\n-1B1E23 Compressed Size       00000770 (1904)\n-1B1E27 Uncompressed Size     00000770 (1904)\n-\n-1B1E2B LOCAL HEADER #610     04034B50 (67324752)\n-1B1E2F Extract Zip Spec      14 (20) '2.0'\n-1B1E30 Extract OS            00 (0) 'MS-DOS'\n-1B1E31 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B1E33 Compression Method    0000 (0) 'Stored'\n-1B1E35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B1E39 CRC                   00000000 (0)\n-1B1E3D Compressed Size       00000000 (0)\n-1B1E41 Uncompressed Size     00000000 (0)\n-1B1E45 Filename Length       003D (61)\n-1B1E47 Extra Length          0009 (9)\n-1B1E49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B1E49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B1E86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B1E88   Length              0005 (5)\n-1B1E8A   Flags               01 (1) 'Modification'\n-1B1E8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B1E8F PAYLOAD\n-\n-1B2340 DATA DESCRIPTOR       08074B50 (134695760)\n-1B2344 CRC                   041CAAC9 (68987593)\n-1B2348 Compressed Size       000004B1 (1201)\n-1B234C Uncompressed Size     000004B1 (1201)\n-\n-1B2350 LOCAL HEADER #611     04034B50 (67324752)\n-1B2354 Extract Zip Spec      14 (20) '2.0'\n-1B2355 Extract OS            00 (0) 'MS-DOS'\n-1B2356 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B2358 Compression Method    0000 (0) 'Stored'\n-1B235A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B235E CRC                   00000000 (0)\n-1B2362 Compressed Size       00000000 (0)\n-1B2366 Uncompressed Size     00000000 (0)\n-1B236A Filename Length       003B (59)\n-1B236C Extra Length          0009 (9)\n-1B236E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B236E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B23A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B23AB   Length              0005 (5)\n-1B23AD   Flags               01 (1) 'Modification'\n-1B23AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B23B2 PAYLOAD\n-\n-1B2DFE DATA DESCRIPTOR       08074B50 (134695760)\n-1B2E02 CRC                   01D0CBB6 (30460854)\n-1B2E06 Compressed Size       00000A4C (2636)\n-1B2E0A Uncompressed Size     00000A4C (2636)\n-\n-1B2E0E LOCAL HEADER #612     04034B50 (67324752)\n-1B2E12 Extract Zip Spec      14 (20) '2.0'\n-1B2E13 Extract OS            00 (0) 'MS-DOS'\n-1B2E14 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B2E16 Compression Method    0000 (0) 'Stored'\n-1B2E18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B2E1C CRC                   00000000 (0)\n-1B2E20 Compressed Size       00000000 (0)\n-1B2E24 Uncompressed Size     00000000 (0)\n-1B2E28 Filename Length       0037 (55)\n-1B2E2A Extra Length          0009 (9)\n-1B2E2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B2E2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B2E63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B2E65   Length              0005 (5)\n-1B2E67   Flags               01 (1) 'Modification'\n-1B2E68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B2E6C PAYLOAD\n-\n-1B3319 DATA DESCRIPTOR       08074B50 (134695760)\n-1B331D CRC                   790D5CAF (2030918831)\n-1B3321 Compressed Size       000004AD (1197)\n-1B3325 Uncompressed Size     000004AD (1197)\n-\n-1B3329 LOCAL HEADER #613     04034B50 (67324752)\n-1B332D Extract Zip Spec      14 (20) '2.0'\n-1B332E Extract OS            00 (0) 'MS-DOS'\n-1B332F General Purpose Flag  0000 (0)\n-1B3331 Compression Method    0000 (0) 'Stored'\n-1B3333 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B3337 CRC                   00000000 (0)\n-1B333B Compressed Size       00000000 (0)\n-1B333F Uncompressed Size     00000000 (0)\n-1B3343 Filename Length       002C (44)\n-1B3345 Extra Length          0009 (9)\n-1B3347 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B3347: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B3373 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B3375   Length              0005 (5)\n-1B3377   Flags               01 (1) 'Modification'\n-1B3378   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1B337C LOCAL HEADER #614     04034B50 (67324752)\n-1B3380 Extract Zip Spec      14 (20) '2.0'\n-1B3381 Extract OS            00 (0) 'MS-DOS'\n-1B3382 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B3384 Compression Method    0000 (0) 'Stored'\n-1B3386 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B338A CRC                   00000000 (0)\n-1B338E Compressed Size       00000000 (0)\n-1B3392 Uncompressed Size     00000000 (0)\n-1B3396 Filename Length       004D (77)\n-1B3398 Extra Length          0009 (9)\n-1B339A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B339A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B33E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B33E9   Length              0005 (5)\n-1B33EB   Flags               01 (1) 'Modification'\n-1B33EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B33F0 PAYLOAD\n-\n-1B5A3E DATA DESCRIPTOR       08074B50 (134695760)\n-1B5A42 CRC                   A679BD52 (2792996178)\n-1B5A46 Compressed Size       0000264E (9806)\n-1B5A4A Uncompressed Size     0000264E (9806)\n-\n-1B5A4E LOCAL HEADER #615     04034B50 (67324752)\n-1B5A52 Extract Zip Spec      14 (20) '2.0'\n-1B5A53 Extract OS            00 (0) 'MS-DOS'\n-1B5A54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B5A56 Compression Method    0000 (0) 'Stored'\n-1B5A58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B5A5C CRC                   00000000 (0)\n-1B5A60 Compressed Size       00000000 (0)\n-1B5A64 Uncompressed Size     00000000 (0)\n-1B5A68 Filename Length       0054 (84)\n-1B5A6A Extra Length          0009 (9)\n-1B5A6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B5A6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B5AC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B5AC2   Length              0005 (5)\n-1B5AC4   Flags               01 (1) 'Modification'\n-1B5AC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B5AC9 PAYLOAD\n-\n-1B6194 DATA DESCRIPTOR       08074B50 (134695760)\n-1B6198 CRC                   5C1CB033 (1545383987)\n-1B619C Compressed Size       000006CB (1739)\n-1B61A0 Uncompressed Size     000006CB (1739)\n-\n-1B61A4 LOCAL HEADER #616     04034B50 (67324752)\n-1B61A8 Extract Zip Spec      14 (20) '2.0'\n-1B61A9 Extract OS            00 (0) 'MS-DOS'\n-1B61AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B61AC Compression Method    0000 (0) 'Stored'\n-1B61AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B61B2 CRC                   00000000 (0)\n-1B61B6 Compressed Size       00000000 (0)\n-1B61BA Uncompressed Size     00000000 (0)\n-1B61BE Filename Length       0041 (65)\n-1B61C0 Extra Length          0009 (9)\n-1B61C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B61C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B6203 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B6205   Length              0005 (5)\n-1B6207   Flags               01 (1) 'Modification'\n-1B6208   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B620C PAYLOAD\n-\n-1B6654 DATA DESCRIPTOR       08074B50 (134695760)\n-1B6658 CRC                   E6853BBE (3867491262)\n-1B665C Compressed Size       00000448 (1096)\n-1B6660 Uncompressed Size     00000448 (1096)\n-\n-1B6664 LOCAL HEADER #617     04034B50 (67324752)\n-1B6668 Extract Zip Spec      14 (20) '2.0'\n-1B6669 Extract OS            00 (0) 'MS-DOS'\n-1B666A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B666C Compression Method    0000 (0) 'Stored'\n-1B666E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B6672 CRC                   00000000 (0)\n-1B6676 Compressed Size       00000000 (0)\n-1B667A Uncompressed Size     00000000 (0)\n-1B667E Filename Length       0043 (67)\n-1B6680 Extra Length          0009 (9)\n-1B6682 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B6682: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B66C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B66C7   Length              0005 (5)\n-1B66C9   Flags               01 (1) 'Modification'\n-1B66CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B66CE PAYLOAD\n-\n-1B71D9 DATA DESCRIPTOR       08074B50 (134695760)\n-1B71DD CRC                   B9E6C475 (3118908533)\n-1B71E1 Compressed Size       00000B0B (2827)\n-1B71E5 Uncompressed Size     00000B0B (2827)\n-\n-1B71E9 LOCAL HEADER #618     04034B50 (67324752)\n-1B71ED Extract Zip Spec      14 (20) '2.0'\n-1B71EE Extract OS            00 (0) 'MS-DOS'\n-1B71EF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B71F1 Compression Method    0000 (0) 'Stored'\n-1B71F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B71F7 CRC                   00000000 (0)\n-1B71FB Compressed Size       00000000 (0)\n-1B71FF Uncompressed Size     00000000 (0)\n-1B7203 Filename Length       0046 (70)\n-1B7205 Extra Length          0009 (9)\n-1B7207 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B7207: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B724D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B724F   Length              0005 (5)\n-1B7251   Flags               01 (1) 'Modification'\n-1B7252   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B7256 PAYLOAD\n-\n-1B7767 DATA DESCRIPTOR       08074B50 (134695760)\n-1B776B CRC                   74E6231A (1961239322)\n-1B776F Compressed Size       00000511 (1297)\n-1B7773 Uncompressed Size     00000511 (1297)\n-\n-1B7777 LOCAL HEADER #619     04034B50 (67324752)\n-1B777B Extract Zip Spec      14 (20) '2.0'\n-1B777C Extract OS            00 (0) 'MS-DOS'\n-1B777D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B777F Compression Method    0000 (0) 'Stored'\n-1B7781 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B7785 CRC                   00000000 (0)\n-1B7789 Compressed Size       00000000 (0)\n-1B778D Uncompressed Size     00000000 (0)\n-1B7791 Filename Length       003A (58)\n-1B7793 Extra Length          0009 (9)\n-1B7795 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B7795: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B77CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B77D1   Length              0005 (5)\n-1B77D3   Flags               01 (1) 'Modification'\n-1B77D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B77D8 PAYLOAD\n-\n-1B7C1F DATA DESCRIPTOR       08074B50 (134695760)\n-1B7C23 CRC                   695FC9AE (1767885230)\n-1B7C27 Compressed Size       00000447 (1095)\n-1B7C2B Uncompressed Size     00000447 (1095)\n-\n-1B7C2F LOCAL HEADER #620     04034B50 (67324752)\n-1B7C33 Extract Zip Spec      14 (20) '2.0'\n-1B7C34 Extract OS            00 (0) 'MS-DOS'\n-1B7C35 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1B7C37 Compression Method    0000 (0) 'Stored'\n-1B7C39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1B7C3D CRC                   00000000 (0)\n-1B7C41 Compressed Size       00000000 (0)\n-1B7C45 Uncompressed Size     00000000 (0)\n-1B7C49 Filename Length       0045 (69)\n-1B7C4B Extra Length          0009 (9)\n-1B7C4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1B7C4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1B7C92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1B7C94   Length              0005 (5)\n-1B7C96   Flags               01 (1) 'Modification'\n-1B7C97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1B7C9B PAYLOAD\n-\n-1BA08C DATA DESCRIPTOR       08074B50 (134695760)\n-1BA090 CRC                   1744C936 (390383926)\n-1BA094 Compressed Size       000023F1 (9201)\n-1BA098 Uncompressed Size     000023F1 (9201)\n-\n-1BA09C LOCAL HEADER #621     04034B50 (67324752)\n-1BA0A0 Extract Zip Spec      14 (20) '2.0'\n-1BA0A1 Extract OS            00 (0) 'MS-DOS'\n-1BA0A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1BA0A4 Compression Method    0000 (0) 'Stored'\n-1BA0A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1BA0AA CRC                   00000000 (0)\n-1BA0AE Compressed Size       00000000 (0)\n-1BA0B2 Uncompressed Size     00000000 (0)\n-1BA0B6 Filename Length       004C (76)\n-1BA0B8 Extra Length          0009 (9)\n-1BA0BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1BA0BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1BA106 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1BA108   Length              0005 (5)\n-1BA10A   Flags               01 (1) 'Modification'\n-1BA10B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1BA10F PAYLOAD\n-\n-1BA8D2 DATA DESCRIPTOR       08074B50 (134695760)\n-1BA8D6 CRC                   287FAB99 (679455641)\n-1BA8DA Compressed Size       000007C3 (1987)\n-1BA8DE Uncompressed Size     000007C3 (1987)\n-\n-1BA8E2 LOCAL HEADER #622     04034B50 (67324752)\n-1BA8E6 Extract Zip Spec      14 (20) '2.0'\n-1BA8E7 Extract OS            00 (0) 'MS-DOS'\n-1BA8E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1BA8EA Compression Method    0000 (0) 'Stored'\n-1BA8EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1BA8F0 CRC                   00000000 (0)\n-1BA8F4 Compressed Size       00000000 (0)\n-1BA8F8 Uncompressed Size     00000000 (0)\n-1BA8FC Filename Length       004D (77)\n-1BA8FE Extra Length          0009 (9)\n-1BA900 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1BA900: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1BA94D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1BA94F   Length              0005 (5)\n-1BA951   Flags               01 (1) 'Modification'\n-1BA952   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1BA956 PAYLOAD\n-\n-1BC4D1 DATA DESCRIPTOR       08074B50 (134695760)\n-1BC4D5 CRC                   9083C03B (2424553531)\n-1BC4D9 Compressed Size       00001B7B (7035)\n-1BC4DD Uncompressed Size     00001B7B (7035)\n-\n-1BC4E1 LOCAL HEADER #623     04034B50 (67324752)\n-1BC4E5 Extract Zip Spec      14 (20) '2.0'\n-1BC4E6 Extract OS            00 (0) 'MS-DOS'\n-1BC4E7 General Purpose Flag  0000 (0)\n-1BC4E9 Compression Method    0000 (0) 'Stored'\n-1BC4EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1BC4EF CRC                   00000000 (0)\n-1BC4F3 Compressed Size       00000000 (0)\n-1BC4F7 Uncompressed Size     00000000 (0)\n-1BC4FB Filename Length       0031 (49)\n-1BC4FD Extra Length          0009 (9)\n-1BC4FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1BC4FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1BC530 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1BC532   Length              0005 (5)\n-1BC534   Flags               01 (1) 'Modification'\n-1BC535   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1BC539 LOCAL HEADER #624     04034B50 (67324752)\n-1BC53D Extract Zip Spec      14 (20) '2.0'\n-1BC53E Extract OS            00 (0) 'MS-DOS'\n-1BC53F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1BC541 Compression Method    0000 (0) 'Stored'\n-1BC543 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1BC547 CRC                   00000000 (0)\n-1BC54B Compressed Size       00000000 (0)\n-1BC54F Uncompressed Size     00000000 (0)\n-1BC553 Filename Length       0054 (84)\n-1BC555 Extra Length          0009 (9)\n-1BC557 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1BC557: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1BC5AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1BC5AD   Length              0005 (5)\n-1BC5AF   Flags               01 (1) 'Modification'\n-1BC5B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1BC5B4 PAYLOAD\n-\n-1C1DDE DATA DESCRIPTOR       08074B50 (134695760)\n-1C1DE2 CRC                   F23B4D60 (4063972704)\n-1C1DE6 Compressed Size       0000582A (22570)\n-1C1DEA Uncompressed Size     0000582A (22570)\n-\n-1C1DEE LOCAL HEADER #625     04034B50 (67324752)\n-1C1DF2 Extract Zip Spec      14 (20) '2.0'\n-1C1DF3 Extract OS            00 (0) 'MS-DOS'\n-1C1DF4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C1DF6 Compression Method    0000 (0) 'Stored'\n-1C1DF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C1DFC CRC                   00000000 (0)\n-1C1E00 Compressed Size       00000000 (0)\n-1C1E04 Uncompressed Size     00000000 (0)\n-1C1E08 Filename Length       005B (91)\n-1C1E0A Extra Length          0009 (9)\n-1C1E0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C1E0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C1E67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C1E69   Length              0005 (5)\n-1C1E6B   Flags               01 (1) 'Modification'\n-1C1E6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C1E70 PAYLOAD\n-\n-1C243F DATA DESCRIPTOR       08074B50 (134695760)\n-1C2443 CRC                   E57CCA12 (3850160658)\n-1C2447 Compressed Size       000005CF (1487)\n-1C244B Uncompressed Size     000005CF (1487)\n-\n-1C244F LOCAL HEADER #626     04034B50 (67324752)\n-1C2453 Extract Zip Spec      14 (20) '2.0'\n-1C2454 Extract OS            00 (0) 'MS-DOS'\n-1C2455 General Purpose Flag  0000 (0)\n-1C2457 Compression Method    0000 (0) 'Stored'\n-1C2459 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C245D CRC                   00000000 (0)\n-1C2461 Compressed Size       00000000 (0)\n-1C2465 Uncompressed Size     00000000 (0)\n-1C2469 Filename Length       0030 (48)\n-1C246B Extra Length          0009 (9)\n-1C246D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C246D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C249D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C249F   Length              0005 (5)\n-1C24A1   Flags               01 (1) 'Modification'\n-1C24A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1C24A6 LOCAL HEADER #627     04034B50 (67324752)\n-1C24AA Extract Zip Spec      14 (20) '2.0'\n-1C24AB Extract OS            00 (0) 'MS-DOS'\n-1C24AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C24AE Compression Method    0000 (0) 'Stored'\n-1C24B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C24B4 CRC                   00000000 (0)\n-1C24B8 Compressed Size       00000000 (0)\n-1C24BC Uncompressed Size     00000000 (0)\n-1C24C0 Filename Length       004C (76)\n-1C24C2 Extra Length          0009 (9)\n-1C24C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C24C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C2510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C2512   Length              0005 (5)\n-1C2514   Flags               01 (1) 'Modification'\n-1C2515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C2519 PAYLOAD\n-\n-1C2DC0 DATA DESCRIPTOR       08074B50 (134695760)\n-1C2DC4 CRC                   B946295F (3108383071)\n-1C2DC8 Compressed Size       000008A7 (2215)\n-1C2DCC Uncompressed Size     000008A7 (2215)\n-\n-1C2DD0 LOCAL HEADER #628     04034B50 (67324752)\n-1C2DD4 Extract Zip Spec      14 (20) '2.0'\n-1C2DD5 Extract OS            00 (0) 'MS-DOS'\n-1C2DD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C2DD8 Compression Method    0000 (0) 'Stored'\n-1C2DDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C2DDE CRC                   00000000 (0)\n-1C2DE2 Compressed Size       00000000 (0)\n-1C2DE6 Uncompressed Size     00000000 (0)\n-1C2DEA Filename Length       0053 (83)\n-1C2DEC Extra Length          0009 (9)\n-1C2DEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C2DEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C2E41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C2E43   Length              0005 (5)\n-1C2E45   Flags               01 (1) 'Modification'\n-1C2E46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C2E4A PAYLOAD\n-\n-1C336E DATA DESCRIPTOR       08074B50 (134695760)\n-1C3372 CRC                   208B91F5 (546017781)\n-1C3376 Compressed Size       00000524 (1316)\n-1C337A Uncompressed Size     00000524 (1316)\n-\n-1C337E LOCAL HEADER #629     04034B50 (67324752)\n-1C3382 Extract Zip Spec      14 (20) '2.0'\n-1C3383 Extract OS            00 (0) 'MS-DOS'\n-1C3384 General Purpose Flag  0000 (0)\n-1C3386 Compression Method    0000 (0) 'Stored'\n-1C3388 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C338C CRC                   00000000 (0)\n-1C3390 Compressed Size       00000000 (0)\n-1C3394 Uncompressed Size     00000000 (0)\n-1C3398 Filename Length       0034 (52)\n-1C339A Extra Length          0009 (9)\n-1C339C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C339C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C33D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C33D2   Length              0005 (5)\n-1C33D4   Flags               01 (1) 'Modification'\n-1C33D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1C33D9 LOCAL HEADER #630     04034B50 (67324752)\n-1C33DD Extract Zip Spec      14 (20) '2.0'\n-1C33DE Extract OS            00 (0) 'MS-DOS'\n-1C33DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C33E1 Compression Method    0000 (0) 'Stored'\n-1C33E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C33E7 CRC                   00000000 (0)\n-1C33EB Compressed Size       00000000 (0)\n-1C33EF Uncompressed Size     00000000 (0)\n-1C33F3 Filename Length       0056 (86)\n-1C33F5 Extra Length          0009 (9)\n-1C33F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C33F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C344D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C344F   Length              0005 (5)\n-1C3451   Flags               01 (1) 'Modification'\n-1C3452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C3456 PAYLOAD\n-\n-1C43A0 DATA DESCRIPTOR       08074B50 (134695760)\n-1C43A4 CRC                   C03FB50A (3225400586)\n-1C43A8 Compressed Size       00000F4A (3914)\n-1C43AC Uncompressed Size     00000F4A (3914)\n-\n-1C43B0 LOCAL HEADER #631     04034B50 (67324752)\n-1C43B4 Extract Zip Spec      14 (20) '2.0'\n-1C43B5 Extract OS            00 (0) 'MS-DOS'\n-1C43B6 General Purpose Flag  0000 (0)\n-1C43B8 Compression Method    0000 (0) 'Stored'\n-1C43BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C43BE CRC                   00000000 (0)\n-1C43C2 Compressed Size       00000000 (0)\n-1C43C6 Uncompressed Size     00000000 (0)\n-1C43CA Filename Length       0022 (34)\n-1C43CC Extra Length          0009 (9)\n-1C43CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C43CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C43F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C43F2   Length              0005 (5)\n-1C43F4   Flags               01 (1) 'Modification'\n-1C43F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1C43F9 LOCAL HEADER #632     04034B50 (67324752)\n-1C43FD Extract Zip Spec      14 (20) '2.0'\n-1C43FE Extract OS            00 (0) 'MS-DOS'\n-1C43FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C4401 Compression Method    0000 (0) 'Stored'\n-1C4403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C4407 CRC                   00000000 (0)\n-1C440B Compressed Size       00000000 (0)\n-1C440F Uncompressed Size     00000000 (0)\n-1C4413 Filename Length       0036 (54)\n-1C4415 Extra Length          0009 (9)\n-1C4417 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C4417: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C444D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C444F   Length              0005 (5)\n-1C4451   Flags               01 (1) 'Modification'\n-1C4452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C4456 PAYLOAD\n-\n-1C6C66 DATA DESCRIPTOR       08074B50 (134695760)\n-1C6C6A CRC                   2CFFA2CA (754950858)\n-1C6C6E Compressed Size       00002810 (10256)\n-1C6C72 Uncompressed Size     00002810 (10256)\n-\n-1C6C76 LOCAL HEADER #633     04034B50 (67324752)\n-1C6C7A Extract Zip Spec      14 (20) '2.0'\n-1C6C7B Extract OS            00 (0) 'MS-DOS'\n-1C6C7C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C6C7E Compression Method    0000 (0) 'Stored'\n-1C6C80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C6C84 CRC                   00000000 (0)\n-1C6C88 Compressed Size       00000000 (0)\n-1C6C8C Uncompressed Size     00000000 (0)\n-1C6C90 Filename Length       0036 (54)\n-1C6C92 Extra Length          0009 (9)\n-1C6C94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C6C94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C6CCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C6CCC   Length              0005 (5)\n-1C6CCE   Flags               01 (1) 'Modification'\n-1C6CCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C6CD3 PAYLOAD\n-\n-1C7092 DATA DESCRIPTOR       08074B50 (134695760)\n-1C7096 CRC                   A6E18129 (2799796521)\n-1C709A Compressed Size       000003BF (959)\n-1C709E Uncompressed Size     000003BF (959)\n-\n-1C70A2 LOCAL HEADER #634     04034B50 (67324752)\n-1C70A6 Extract Zip Spec      14 (20) '2.0'\n-1C70A7 Extract OS            00 (0) 'MS-DOS'\n-1C70A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C70AA Compression Method    0000 (0) 'Stored'\n-1C70AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C70B0 CRC                   00000000 (0)\n-1C70B4 Compressed Size       00000000 (0)\n-1C70B8 Uncompressed Size     00000000 (0)\n-1C70BC Filename Length       0033 (51)\n-1C70BE Extra Length          0009 (9)\n-1C70C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C70C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C70F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C70F5   Length              0005 (5)\n-1C70F7   Flags               01 (1) 'Modification'\n-1C70F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C70FC PAYLOAD\n-\n-1C752B DATA DESCRIPTOR       08074B50 (134695760)\n-1C752F CRC                   0D4F07B4 (223283124)\n-1C7533 Compressed Size       0000042F (1071)\n-1C7537 Uncompressed Size     0000042F (1071)\n-\n-1C753B LOCAL HEADER #635     04034B50 (67324752)\n-1C753F Extract Zip Spec      14 (20) '2.0'\n-1C7540 Extract OS            00 (0) 'MS-DOS'\n-1C7541 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C7543 Compression Method    0000 (0) 'Stored'\n-1C7545 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C7549 CRC                   00000000 (0)\n-1C754D Compressed Size       00000000 (0)\n-1C7551 Uncompressed Size     00000000 (0)\n-1C7555 Filename Length       0038 (56)\n-1C7557 Extra Length          0009 (9)\n-1C7559 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C7559: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C7591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C7593   Length              0005 (5)\n-1C7595   Flags               01 (1) 'Modification'\n-1C7596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C759A PAYLOAD\n-\n-1C8327 DATA DESCRIPTOR       08074B50 (134695760)\n-1C832B CRC                   E90F01CB (3910074827)\n-1C832F Compressed Size       00000D8D (3469)\n-1C8333 Uncompressed Size     00000D8D (3469)\n-\n-1C8337 LOCAL HEADER #636     04034B50 (67324752)\n-1C833B Extract Zip Spec      14 (20) '2.0'\n-1C833C Extract OS            00 (0) 'MS-DOS'\n-1C833D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C833F Compression Method    0000 (0) 'Stored'\n-1C8341 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C8345 CRC                   00000000 (0)\n-1C8349 Compressed Size       00000000 (0)\n-1C834D Uncompressed Size     00000000 (0)\n-1C8351 Filename Length       0038 (56)\n-1C8353 Extra Length          0009 (9)\n-1C8355 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C8355: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C838D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C838F   Length              0005 (5)\n-1C8391   Flags               01 (1) 'Modification'\n-1C8392   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C8396 PAYLOAD\n-\n-1C874C DATA DESCRIPTOR       08074B50 (134695760)\n-1C8750 CRC                   1B8CE743 (462219075)\n-1C8754 Compressed Size       000003B6 (950)\n-1C8758 Uncompressed Size     000003B6 (950)\n-\n-1C875C LOCAL HEADER #637     04034B50 (67324752)\n-1C8760 Extract Zip Spec      14 (20) '2.0'\n-1C8761 Extract OS            00 (0) 'MS-DOS'\n-1C8762 General Purpose Flag  0000 (0)\n-1C8764 Compression Method    0000 (0) 'Stored'\n-1C8766 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C876A CRC                   00000000 (0)\n-1C876E Compressed Size       00000000 (0)\n-1C8772 Uncompressed Size     00000000 (0)\n-1C8776 Filename Length       0020 (32)\n-1C8778 Extra Length          0009 (9)\n-1C877A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C877A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C879A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C879C   Length              0005 (5)\n-1C879E   Flags               01 (1) 'Modification'\n-1C879F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1C87A3 LOCAL HEADER #638     04034B50 (67324752)\n-1C87A7 Extract Zip Spec      14 (20) '2.0'\n-1C87A8 Extract OS            00 (0) 'MS-DOS'\n-1C87A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C87AB Compression Method    0000 (0) 'Stored'\n-1C87AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C87B1 CRC                   00000000 (0)\n-1C87B5 Compressed Size       00000000 (0)\n-1C87B9 Uncompressed Size     00000000 (0)\n-1C87BD Filename Length       0031 (49)\n-1C87BF Extra Length          0009 (9)\n-1C87C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C87C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C87F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C87F4   Length              0005 (5)\n-1C87F6   Flags               01 (1) 'Modification'\n-1C87F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C87FB PAYLOAD\n-\n-1C8BB0 DATA DESCRIPTOR       08074B50 (134695760)\n-1C8BB4 CRC                   94BF4E7B (2495565435)\n-1C8BB8 Compressed Size       000003B5 (949)\n-1C8BBC Uncompressed Size     000003B5 (949)\n-\n-1C8BC0 LOCAL HEADER #639     04034B50 (67324752)\n-1C8BC4 Extract Zip Spec      14 (20) '2.0'\n-1C8BC5 Extract OS            00 (0) 'MS-DOS'\n-1C8BC6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C8BC8 Compression Method    0000 (0) 'Stored'\n-1C8BCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C8BCE CRC                   00000000 (0)\n-1C8BD2 Compressed Size       00000000 (0)\n-1C8BD6 Uncompressed Size     00000000 (0)\n-1C8BDA Filename Length       002E (46)\n-1C8BDC Extra Length          0009 (9)\n-1C8BDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C8BDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C8C0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C8C0E   Length              0005 (5)\n-1C8C10   Flags               01 (1) 'Modification'\n-1C8C11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C8C15 PAYLOAD\n-\n-1C91D2 DATA DESCRIPTOR       08074B50 (134695760)\n-1C91D6 CRC                   01244711 (19154705)\n-1C91DA Compressed Size       000005BD (1469)\n-1C91DE Uncompressed Size     000005BD (1469)\n-\n-1C91E2 LOCAL HEADER #640     04034B50 (67324752)\n-1C91E6 Extract Zip Spec      14 (20) '2.0'\n-1C91E7 Extract OS            00 (0) 'MS-DOS'\n-1C91E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C91EA Compression Method    0000 (0) 'Stored'\n-1C91EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C91F0 CRC                   00000000 (0)\n-1C91F4 Compressed Size       00000000 (0)\n-1C91F8 Uncompressed Size     00000000 (0)\n-1C91FC Filename Length       0035 (53)\n-1C91FE Extra Length          0009 (9)\n-1C9200 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C9200: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C9235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C9237   Length              0005 (5)\n-1C9239   Flags               01 (1) 'Modification'\n-1C923A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C923E PAYLOAD\n-\n-1C96B8 DATA DESCRIPTOR       08074B50 (134695760)\n-1C96BC CRC                   8B9FA779 (2342496121)\n-1C96C0 Compressed Size       0000047A (1146)\n-1C96C4 Uncompressed Size     0000047A (1146)\n-\n-1C96C8 LOCAL HEADER #641     04034B50 (67324752)\n-1C96CC Extract Zip Spec      14 (20) '2.0'\n-1C96CD Extract OS            00 (0) 'MS-DOS'\n-1C96CE General Purpose Flag  0000 (0)\n-1C96D0 Compression Method    0000 (0) 'Stored'\n-1C96D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C96D6 CRC                   00000000 (0)\n-1C96DA Compressed Size       00000000 (0)\n-1C96DE Uncompressed Size     00000000 (0)\n-1C96E2 Filename Length       0020 (32)\n-1C96E4 Extra Length          0009 (9)\n-1C96E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C96E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C9706 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C9708   Length              0005 (5)\n-1C970A   Flags               01 (1) 'Modification'\n-1C970B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1C970F LOCAL HEADER #642     04034B50 (67324752)\n-1C9713 Extract Zip Spec      14 (20) '2.0'\n-1C9714 Extract OS            00 (0) 'MS-DOS'\n-1C9715 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1C9717 Compression Method    0000 (0) 'Stored'\n-1C9719 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1C971D CRC                   00000000 (0)\n-1C9721 Compressed Size       00000000 (0)\n-1C9725 Uncompressed Size     00000000 (0)\n-1C9729 Filename Length       002E (46)\n-1C972B Extra Length          0009 (9)\n-1C972D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1C972D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1C975B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1C975D   Length              0005 (5)\n-1C975F   Flags               01 (1) 'Modification'\n-1C9760   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1C9764 PAYLOAD\n-\n-1CA5C4 DATA DESCRIPTOR       08074B50 (134695760)\n-1CA5C8 CRC                   6A25F272 (1780871794)\n-1CA5CC Compressed Size       00000E60 (3680)\n-1CA5D0 Uncompressed Size     00000E60 (3680)\n-\n-1CA5D4 LOCAL HEADER #643     04034B50 (67324752)\n-1CA5D8 Extract Zip Spec      14 (20) '2.0'\n-1CA5D9 Extract OS            00 (0) 'MS-DOS'\n-1CA5DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CA5DC Compression Method    0000 (0) 'Stored'\n-1CA5DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CA5E2 CRC                   00000000 (0)\n-1CA5E6 Compressed Size       00000000 (0)\n-1CA5EA Uncompressed Size     00000000 (0)\n-1CA5EE Filename Length       0034 (52)\n-1CA5F0 Extra Length          0009 (9)\n-1CA5F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CA5F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CA626 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CA628   Length              0005 (5)\n-1CA62A   Flags               01 (1) 'Modification'\n-1CA62B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CA62F PAYLOAD\n-\n-1CAA40 DATA DESCRIPTOR       08074B50 (134695760)\n-1CAA44 CRC                   94774B8E (2490846094)\n-1CAA48 Compressed Size       00000411 (1041)\n-1CAA4C Uncompressed Size     00000411 (1041)\n-\n-1CAA50 LOCAL HEADER #644     04034B50 (67324752)\n-1CAA54 Extract Zip Spec      14 (20) '2.0'\n-1CAA55 Extract OS            00 (0) 'MS-DOS'\n-1CAA56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CAA58 Compression Method    0000 (0) 'Stored'\n-1CAA5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CAA5E CRC                   00000000 (0)\n-1CAA62 Compressed Size       00000000 (0)\n-1CAA66 Uncompressed Size     00000000 (0)\n-1CAA6A Filename Length       003D (61)\n-1CAA6C Extra Length          0009 (9)\n-1CAA6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CAA6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CAAAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CAAAD   Length              0005 (5)\n-1CAAAF   Flags               01 (1) 'Modification'\n-1CAAB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CAAB4 PAYLOAD\n-\n-1CAFE6 DATA DESCRIPTOR       08074B50 (134695760)\n-1CAFEA CRC                   A95D9412 (2841482258)\n-1CAFEE Compressed Size       00000532 (1330)\n-1CAFF2 Uncompressed Size     00000532 (1330)\n-\n-1CAFF6 LOCAL HEADER #645     04034B50 (67324752)\n-1CAFFA Extract Zip Spec      14 (20) '2.0'\n-1CAFFB Extract OS            00 (0) 'MS-DOS'\n-1CAFFC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CAFFE Compression Method    0000 (0) 'Stored'\n-1CB000 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CB004 CRC                   00000000 (0)\n-1CB008 Compressed Size       00000000 (0)\n-1CB00C Uncompressed Size     00000000 (0)\n-1CB010 Filename Length       003F (63)\n-1CB012 Extra Length          0009 (9)\n-1CB014 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CB014: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CB053 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CB055   Length              0005 (5)\n-1CB057   Flags               01 (1) 'Modification'\n-1CB058   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CB05C PAYLOAD\n-\n-1CB570 DATA DESCRIPTOR       08074B50 (134695760)\n-1CB574 CRC                   578BE304 (1468785412)\n-1CB578 Compressed Size       00000514 (1300)\n-1CB57C Uncompressed Size     00000514 (1300)\n-\n-1CB580 LOCAL HEADER #646     04034B50 (67324752)\n-1CB584 Extract Zip Spec      14 (20) '2.0'\n-1CB585 Extract OS            00 (0) 'MS-DOS'\n-1CB586 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CB588 Compression Method    0000 (0) 'Stored'\n-1CB58A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CB58E CRC                   00000000 (0)\n-1CB592 Compressed Size       00000000 (0)\n-1CB596 Uncompressed Size     00000000 (0)\n-1CB59A Filename Length       003F (63)\n-1CB59C Extra Length          0009 (9)\n-1CB59E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CB59E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CB5DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CB5DF   Length              0005 (5)\n-1CB5E1   Flags               01 (1) 'Modification'\n-1CB5E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CB5E6 PAYLOAD\n-\n-1CBBC0 DATA DESCRIPTOR       08074B50 (134695760)\n-1CBBC4 CRC                   8AE0BB27 (2329983783)\n-1CBBC8 Compressed Size       000005DA (1498)\n-1CBBCC Uncompressed Size     000005DA (1498)\n-\n-1CBBD0 LOCAL HEADER #647     04034B50 (67324752)\n-1CBBD4 Extract Zip Spec      14 (20) '2.0'\n-1CBBD5 Extract OS            00 (0) 'MS-DOS'\n-1CBBD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CBBD8 Compression Method    0000 (0) 'Stored'\n-1CBBDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CBBDE CRC                   00000000 (0)\n-1CBBE2 Compressed Size       00000000 (0)\n-1CBBE6 Uncompressed Size     00000000 (0)\n-1CBBEA Filename Length       003C (60)\n-1CBBEC Extra Length          0009 (9)\n-1CBBEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CBBEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CBC2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CBC2C   Length              0005 (5)\n-1CBC2E   Flags               01 (1) 'Modification'\n-1CBC2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CBC33 PAYLOAD\n-\n-1CC161 DATA DESCRIPTOR       08074B50 (134695760)\n-1CC165 CRC                   D8EB7635 (3639309877)\n-1CC169 Compressed Size       0000052E (1326)\n-1CC16D Uncompressed Size     0000052E (1326)\n-\n-1CC171 LOCAL HEADER #648     04034B50 (67324752)\n-1CC175 Extract Zip Spec      14 (20) '2.0'\n-1CC176 Extract OS            00 (0) 'MS-DOS'\n-1CC177 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CC179 Compression Method    0000 (0) 'Stored'\n-1CC17B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CC17F CRC                   00000000 (0)\n-1CC183 Compressed Size       00000000 (0)\n-1CC187 Uncompressed Size     00000000 (0)\n-1CC18B Filename Length       003B (59)\n-1CC18D Extra Length          0009 (9)\n-1CC18F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CC18F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CC1CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CC1CC   Length              0005 (5)\n-1CC1CE   Flags               01 (1) 'Modification'\n-1CC1CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CC1D3 PAYLOAD\n-\n-1CC6FB DATA DESCRIPTOR       08074B50 (134695760)\n-1CC6FF CRC                   7C7DD03D (2088620093)\n-1CC703 Compressed Size       00000528 (1320)\n-1CC707 Uncompressed Size     00000528 (1320)\n-\n-1CC70B LOCAL HEADER #649     04034B50 (67324752)\n-1CC70F Extract Zip Spec      14 (20) '2.0'\n-1CC710 Extract OS            00 (0) 'MS-DOS'\n-1CC711 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CC713 Compression Method    0000 (0) 'Stored'\n-1CC715 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CC719 CRC                   00000000 (0)\n-1CC71D Compressed Size       00000000 (0)\n-1CC721 Uncompressed Size     00000000 (0)\n-1CC725 Filename Length       003D (61)\n-1CC727 Extra Length          0009 (9)\n-1CC729 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CC729: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CC766 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CC768   Length              0005 (5)\n-1CC76A   Flags               01 (1) 'Modification'\n-1CC76B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CC76F PAYLOAD\n-\n-1CCC9D DATA DESCRIPTOR       08074B50 (134695760)\n-1CCCA1 CRC                   39AACB0F (967494415)\n-1CCCA5 Compressed Size       0000052E (1326)\n-1CCCA9 Uncompressed Size     0000052E (1326)\n-\n-1CCCAD LOCAL HEADER #650     04034B50 (67324752)\n-1CCCB1 Extract Zip Spec      14 (20) '2.0'\n-1CCCB2 Extract OS            00 (0) 'MS-DOS'\n-1CCCB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CCCB5 Compression Method    0000 (0) 'Stored'\n-1CCCB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CCCBB CRC                   00000000 (0)\n-1CCCBF Compressed Size       00000000 (0)\n-1CCCC3 Uncompressed Size     00000000 (0)\n-1CCCC7 Filename Length       003A (58)\n-1CCCC9 Extra Length          0009 (9)\n-1CCCCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CCCCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CCD05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CCD07   Length              0005 (5)\n-1CCD09   Flags               01 (1) 'Modification'\n-1CCD0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CCD0E PAYLOAD\n-\n-1CD232 DATA DESCRIPTOR       08074B50 (134695760)\n-1CD236 CRC                   5BF59138 (1542820152)\n-1CD23A Compressed Size       00000524 (1316)\n-1CD23E Uncompressed Size     00000524 (1316)\n-\n-1CD242 LOCAL HEADER #651     04034B50 (67324752)\n-1CD246 Extract Zip Spec      14 (20) '2.0'\n-1CD247 Extract OS            00 (0) 'MS-DOS'\n-1CD248 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CD24A Compression Method    0000 (0) 'Stored'\n-1CD24C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CD250 CRC                   00000000 (0)\n-1CD254 Compressed Size       00000000 (0)\n-1CD258 Uncompressed Size     00000000 (0)\n-1CD25C Filename Length       003E (62)\n-1CD25E Extra Length          0009 (9)\n-1CD260 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CD260: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CD29E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CD2A0   Length              0005 (5)\n-1CD2A2   Flags               01 (1) 'Modification'\n-1CD2A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CD2A7 PAYLOAD\n-\n-1CD79A DATA DESCRIPTOR       08074B50 (134695760)\n-1CD79E CRC                   9AA4AEC4 (2594483908)\n-1CD7A2 Compressed Size       000004F3 (1267)\n-1CD7A6 Uncompressed Size     000004F3 (1267)\n-\n-1CD7AA LOCAL HEADER #652     04034B50 (67324752)\n-1CD7AE Extract Zip Spec      14 (20) '2.0'\n-1CD7AF Extract OS            00 (0) 'MS-DOS'\n-1CD7B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CD7B2 Compression Method    0000 (0) 'Stored'\n-1CD7B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CD7B8 CRC                   00000000 (0)\n-1CD7BC Compressed Size       00000000 (0)\n-1CD7C0 Uncompressed Size     00000000 (0)\n-1CD7C4 Filename Length       003B (59)\n-1CD7C6 Extra Length          0009 (9)\n-1CD7C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CD7C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CD803 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CD805   Length              0005 (5)\n-1CD807   Flags               01 (1) 'Modification'\n-1CD808   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CD80C PAYLOAD\n-\n-1CDD35 DATA DESCRIPTOR       08074B50 (134695760)\n-1CDD39 CRC                   FD88956D (4253586797)\n-1CDD3D Compressed Size       00000529 (1321)\n-1CDD41 Uncompressed Size     00000529 (1321)\n-\n-1CDD45 LOCAL HEADER #653     04034B50 (67324752)\n-1CDD49 Extract Zip Spec      14 (20) '2.0'\n-1CDD4A Extract OS            00 (0) 'MS-DOS'\n-1CDD4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CDD4D Compression Method    0000 (0) 'Stored'\n-1CDD4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CDD53 CRC                   00000000 (0)\n-1CDD57 Compressed Size       00000000 (0)\n-1CDD5B Uncompressed Size     00000000 (0)\n-1CDD5F Filename Length       003C (60)\n-1CDD61 Extra Length          0009 (9)\n-1CDD63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CDD63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CDD9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CDDA1   Length              0005 (5)\n-1CDDA3   Flags               01 (1) 'Modification'\n-1CDDA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CDDA8 PAYLOAD\n-\n-1CE1FA DATA DESCRIPTOR       08074B50 (134695760)\n-1CE1FE CRC                   88F80863 (2297956451)\n-1CE202 Compressed Size       00000452 (1106)\n-1CE206 Uncompressed Size     00000452 (1106)\n-\n-1CE20A LOCAL HEADER #654     04034B50 (67324752)\n-1CE20E Extract Zip Spec      14 (20) '2.0'\n-1CE20F Extract OS            00 (0) 'MS-DOS'\n-1CE210 General Purpose Flag  0000 (0)\n-1CE212 Compression Method    0000 (0) 'Stored'\n-1CE214 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CE218 CRC                   00000000 (0)\n-1CE21C Compressed Size       00000000 (0)\n-1CE220 Uncompressed Size     00000000 (0)\n-1CE224 Filename Length       0029 (41)\n-1CE226 Extra Length          0009 (9)\n-1CE228 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CE228: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CE251 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CE253   Length              0005 (5)\n-1CE255   Flags               01 (1) 'Modification'\n-1CE256   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1CE25A LOCAL HEADER #655     04034B50 (67324752)\n-1CE25E Extract Zip Spec      14 (20) '2.0'\n-1CE25F Extract OS            00 (0) 'MS-DOS'\n-1CE260 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CE262 Compression Method    0000 (0) 'Stored'\n-1CE264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CE268 CRC                   00000000 (0)\n-1CE26C Compressed Size       00000000 (0)\n-1CE270 Uncompressed Size     00000000 (0)\n-1CE274 Filename Length       0041 (65)\n-1CE276 Extra Length          0009 (9)\n-1CE278 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CE278: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CE2B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CE2BB   Length              0005 (5)\n-1CE2BD   Flags               01 (1) 'Modification'\n-1CE2BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CE2C2 PAYLOAD\n-\n-1CEFF3 DATA DESCRIPTOR       08074B50 (134695760)\n-1CEFF7 CRC                   56E92431 (1458119729)\n-1CEFFB Compressed Size       00000D31 (3377)\n-1CEFFF Uncompressed Size     00000D31 (3377)\n-\n-1CF003 LOCAL HEADER #656     04034B50 (67324752)\n-1CF007 Extract Zip Spec      14 (20) '2.0'\n-1CF008 Extract OS            00 (0) 'MS-DOS'\n-1CF009 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CF00B Compression Method    0000 (0) 'Stored'\n-1CF00D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CF011 CRC                   00000000 (0)\n-1CF015 Compressed Size       00000000 (0)\n-1CF019 Uncompressed Size     00000000 (0)\n-1CF01D Filename Length       0044 (68)\n-1CF01F Extra Length          0009 (9)\n-1CF021 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CF021: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CF065 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CF067   Length              0005 (5)\n-1CF069   Flags               01 (1) 'Modification'\n-1CF06A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CF06E PAYLOAD\n-\n-1CF7E2 DATA DESCRIPTOR       08074B50 (134695760)\n-1CF7E6 CRC                   54A7512C (1420251436)\n-1CF7EA Compressed Size       00000774 (1908)\n-1CF7EE Uncompressed Size     00000774 (1908)\n-\n-1CF7F2 LOCAL HEADER #657     04034B50 (67324752)\n-1CF7F6 Extract Zip Spec      14 (20) '2.0'\n-1CF7F7 Extract OS            00 (0) 'MS-DOS'\n-1CF7F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CF7FA Compression Method    0000 (0) 'Stored'\n-1CF7FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CF800 CRC                   00000000 (0)\n-1CF804 Compressed Size       00000000 (0)\n-1CF808 Uncompressed Size     00000000 (0)\n-1CF80C Filename Length       004C (76)\n-1CF80E Extra Length          0009 (9)\n-1CF810 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CF810: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CF85C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CF85E   Length              0005 (5)\n-1CF860   Flags               01 (1) 'Modification'\n-1CF861   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CF865 PAYLOAD\n-\n-1CFD74 DATA DESCRIPTOR       08074B50 (134695760)\n-1CFD78 CRC                   44B63BF0 (1152793584)\n-1CFD7C Compressed Size       0000050F (1295)\n-1CFD80 Uncompressed Size     0000050F (1295)\n-\n-1CFD84 LOCAL HEADER #658     04034B50 (67324752)\n-1CFD88 Extract Zip Spec      14 (20) '2.0'\n-1CFD89 Extract OS            00 (0) 'MS-DOS'\n-1CFD8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1CFD8C Compression Method    0000 (0) 'Stored'\n-1CFD8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1CFD92 CRC                   00000000 (0)\n-1CFD96 Compressed Size       00000000 (0)\n-1CFD9A Uncompressed Size     00000000 (0)\n-1CFD9E Filename Length       004C (76)\n-1CFDA0 Extra Length          0009 (9)\n-1CFDA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1CFDA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1CFDEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1CFDF0   Length              0005 (5)\n-1CFDF2   Flags               01 (1) 'Modification'\n-1CFDF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1CFDF7 PAYLOAD\n-\n-1D032F DATA DESCRIPTOR       08074B50 (134695760)\n-1D0333 CRC                   6FDF7D92 (1876917650)\n-1D0337 Compressed Size       00000538 (1336)\n-1D033B Uncompressed Size     00000538 (1336)\n-\n-1D033F LOCAL HEADER #659     04034B50 (67324752)\n-1D0343 Extract Zip Spec      14 (20) '2.0'\n-1D0344 Extract OS            00 (0) 'MS-DOS'\n-1D0345 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D0347 Compression Method    0000 (0) 'Stored'\n-1D0349 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D034D CRC                   00000000 (0)\n-1D0351 Compressed Size       00000000 (0)\n-1D0355 Uncompressed Size     00000000 (0)\n-1D0359 Filename Length       0049 (73)\n-1D035B Extra Length          0009 (9)\n-1D035D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D035D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D03A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D03A8   Length              0005 (5)\n-1D03AA   Flags               01 (1) 'Modification'\n-1D03AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D03AF PAYLOAD\n-\n-1D0885 DATA DESCRIPTOR       08074B50 (134695760)\n-1D0889 CRC                   E28B1205 (3800764933)\n-1D088D Compressed Size       000004D6 (1238)\n-1D0891 Uncompressed Size     000004D6 (1238)\n-\n-1D0895 LOCAL HEADER #660     04034B50 (67324752)\n-1D0899 Extract Zip Spec      14 (20) '2.0'\n-1D089A Extract OS            00 (0) 'MS-DOS'\n-1D089B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D089D Compression Method    0000 (0) 'Stored'\n-1D089F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D08A3 CRC                   00000000 (0)\n-1D08A7 Compressed Size       00000000 (0)\n-1D08AB Uncompressed Size     00000000 (0)\n-1D08AF Filename Length       0044 (68)\n-1D08B1 Extra Length          0009 (9)\n-1D08B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D08B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D08F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D08F9   Length              0005 (5)\n-1D08FB   Flags               01 (1) 'Modification'\n-1D08FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D0900 PAYLOAD\n-\n-1D0DBF DATA DESCRIPTOR       08074B50 (134695760)\n-1D0DC3 CRC                   8C9A6BCF (2358930383)\n-1D0DC7 Compressed Size       000004BF (1215)\n-1D0DCB Uncompressed Size     000004BF (1215)\n-\n-1D0DCF LOCAL HEADER #661     04034B50 (67324752)\n-1D0DD3 Extract Zip Spec      14 (20) '2.0'\n-1D0DD4 Extract OS            00 (0) 'MS-DOS'\n-1D0DD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D0DD7 Compression Method    0000 (0) 'Stored'\n-1D0DD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D0DDD CRC                   00000000 (0)\n-1D0DE1 Compressed Size       00000000 (0)\n-1D0DE5 Uncompressed Size     00000000 (0)\n-1D0DE9 Filename Length       0047 (71)\n-1D0DEB Extra Length          0009 (9)\n-1D0DED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D0DED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D0E34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D0E36   Length              0005 (5)\n-1D0E38   Flags               01 (1) 'Modification'\n-1D0E39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D0E3D PAYLOAD\n-\n-1D1A5F DATA DESCRIPTOR       08074B50 (134695760)\n-1D1A63 CRC                   17228680 (388138624)\n-1D1A67 Compressed Size       00000C22 (3106)\n-1D1A6B Uncompressed Size     00000C22 (3106)\n-\n-1D1A6F LOCAL HEADER #662     04034B50 (67324752)\n-1D1A73 Extract Zip Spec      14 (20) '2.0'\n-1D1A74 Extract OS            00 (0) 'MS-DOS'\n-1D1A75 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D1A77 Compression Method    0000 (0) 'Stored'\n-1D1A79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D1A7D CRC                   00000000 (0)\n-1D1A81 Compressed Size       00000000 (0)\n-1D1A85 Uncompressed Size     00000000 (0)\n-1D1A89 Filename Length       0043 (67)\n-1D1A8B Extra Length          0009 (9)\n-1D1A8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D1A8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D1AD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D1AD2   Length              0005 (5)\n-1D1AD4   Flags               01 (1) 'Modification'\n-1D1AD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D1AD9 PAYLOAD\n-\n-1D1F91 DATA DESCRIPTOR       08074B50 (134695760)\n-1D1F95 CRC                   90DCE257 (2430394967)\n-1D1F99 Compressed Size       000004B8 (1208)\n-1D1F9D Uncompressed Size     000004B8 (1208)\n-\n-1D1FA1 LOCAL HEADER #663     04034B50 (67324752)\n-1D1FA5 Extract Zip Spec      14 (20) '2.0'\n-1D1FA6 Extract OS            00 (0) 'MS-DOS'\n-1D1FA7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D1FA9 Compression Method    0000 (0) 'Stored'\n-1D1FAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D1FAF CRC                   00000000 (0)\n-1D1FB3 Compressed Size       00000000 (0)\n-1D1FB7 Uncompressed Size     00000000 (0)\n-1D1FBB Filename Length       0049 (73)\n-1D1FBD Extra Length          0009 (9)\n-1D1FBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D1FBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D2008 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D200A   Length              0005 (5)\n-1D200C   Flags               01 (1) 'Modification'\n-1D200D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D2011 PAYLOAD\n-\n-1D2884 DATA DESCRIPTOR       08074B50 (134695760)\n-1D2888 CRC                   092E21B3 (154018227)\n-1D288C Compressed Size       00000873 (2163)\n-1D2890 Uncompressed Size     00000873 (2163)\n-\n-1D2894 LOCAL HEADER #664     04034B50 (67324752)\n-1D2898 Extract Zip Spec      14 (20) '2.0'\n-1D2899 Extract OS            00 (0) 'MS-DOS'\n-1D289A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D289C Compression Method    0000 (0) 'Stored'\n-1D289E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D28A2 CRC                   00000000 (0)\n-1D28A6 Compressed Size       00000000 (0)\n-1D28AA Uncompressed Size     00000000 (0)\n-1D28AE Filename Length       004B (75)\n-1D28B0 Extra Length          0009 (9)\n-1D28B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D28B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D28FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D28FF   Length              0005 (5)\n-1D2901   Flags               01 (1) 'Modification'\n-1D2902   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D2906 PAYLOAD\n-\n-1D2DF7 DATA DESCRIPTOR       08074B50 (134695760)\n-1D2DFB CRC                   D50997CD (3574175693)\n-1D2DFF Compressed Size       000004F1 (1265)\n-1D2E03 Uncompressed Size     000004F1 (1265)\n-\n-1D2E07 LOCAL HEADER #665     04034B50 (67324752)\n-1D2E0B Extract Zip Spec      14 (20) '2.0'\n-1D2E0C Extract OS            00 (0) 'MS-DOS'\n-1D2E0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D2E0F Compression Method    0000 (0) 'Stored'\n-1D2E11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D2E15 CRC                   00000000 (0)\n-1D2E19 Compressed Size       00000000 (0)\n-1D2E1D Uncompressed Size     00000000 (0)\n-1D2E21 Filename Length       0044 (68)\n-1D2E23 Extra Length          0009 (9)\n-1D2E25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D2E25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D2E69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D2E6B   Length              0005 (5)\n-1D2E6D   Flags               01 (1) 'Modification'\n-1D2E6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D2E72 PAYLOAD\n-\n-1D3349 DATA DESCRIPTOR       08074B50 (134695760)\n-1D334D CRC                   1389D7CB (327800779)\n-1D3351 Compressed Size       000004D7 (1239)\n-1D3355 Uncompressed Size     000004D7 (1239)\n-\n-1D3359 LOCAL HEADER #666     04034B50 (67324752)\n-1D335D Extract Zip Spec      14 (20) '2.0'\n-1D335E Extract OS            00 (0) 'MS-DOS'\n-1D335F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D3361 Compression Method    0000 (0) 'Stored'\n-1D3363 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D3367 CRC                   00000000 (0)\n-1D336B Compressed Size       00000000 (0)\n-1D336F Uncompressed Size     00000000 (0)\n-1D3373 Filename Length       0042 (66)\n-1D3375 Extra Length          0009 (9)\n-1D3377 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D3377: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D33B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D33BB   Length              0005 (5)\n-1D33BD   Flags               01 (1) 'Modification'\n-1D33BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D33C2 PAYLOAD\n-\n-1D3871 DATA DESCRIPTOR       08074B50 (134695760)\n-1D3875 CRC                   0204ADF7 (33861111)\n-1D3879 Compressed Size       000004AF (1199)\n-1D387D Uncompressed Size     000004AF (1199)\n-\n-1D3881 LOCAL HEADER #667     04034B50 (67324752)\n-1D3885 Extract Zip Spec      14 (20) '2.0'\n-1D3886 Extract OS            00 (0) 'MS-DOS'\n-1D3887 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D3889 Compression Method    0000 (0) 'Stored'\n-1D388B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D388F CRC                   00000000 (0)\n-1D3893 Compressed Size       00000000 (0)\n-1D3897 Uncompressed Size     00000000 (0)\n-1D389B Filename Length       0048 (72)\n-1D389D Extra Length          0009 (9)\n-1D389F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D389F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D38E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D38E9   Length              0005 (5)\n-1D38EB   Flags               01 (1) 'Modification'\n-1D38EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D38F0 PAYLOAD\n-\n-1D3DB9 DATA DESCRIPTOR       08074B50 (134695760)\n-1D3DBD CRC                   DE2764C3 (3727123651)\n-1D3DC1 Compressed Size       000004C9 (1225)\n-1D3DC5 Uncompressed Size     000004C9 (1225)\n-\n-1D3DC9 LOCAL HEADER #668     04034B50 (67324752)\n-1D3DCD Extract Zip Spec      14 (20) '2.0'\n-1D3DCE Extract OS            00 (0) 'MS-DOS'\n-1D3DCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D3DD1 Compression Method    0000 (0) 'Stored'\n-1D3DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D3DD7 CRC                   00000000 (0)\n-1D3DDB Compressed Size       00000000 (0)\n-1D3DDF Uncompressed Size     00000000 (0)\n-1D3DE3 Filename Length       004C (76)\n-1D3DE5 Extra Length          0009 (9)\n-1D3DE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D3DE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D3E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D3E35   Length              0005 (5)\n-1D3E37   Flags               01 (1) 'Modification'\n-1D3E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D3E3C PAYLOAD\n-\n-1D4347 DATA DESCRIPTOR       08074B50 (134695760)\n-1D434B CRC                   A00FADB6 (2685382070)\n-1D434F Compressed Size       0000050B (1291)\n-1D4353 Uncompressed Size     0000050B (1291)\n-\n-1D4357 LOCAL HEADER #669     04034B50 (67324752)\n-1D435B Extract Zip Spec      14 (20) '2.0'\n-1D435C Extract OS            00 (0) 'MS-DOS'\n-1D435D General Purpose Flag  0000 (0)\n-1D435F Compression Method    0000 (0) 'Stored'\n-1D4361 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D4365 CRC                   00000000 (0)\n-1D4369 Compressed Size       00000000 (0)\n-1D436D Uncompressed Size     00000000 (0)\n-1D4371 Filename Length       0022 (34)\n-1D4373 Extra Length          0009 (9)\n-1D4375 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D4375: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D4397 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D4399   Length              0005 (5)\n-1D439B   Flags               01 (1) 'Modification'\n-1D439C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1D43A0 LOCAL HEADER #670     04034B50 (67324752)\n-1D43A4 Extract Zip Spec      14 (20) '2.0'\n-1D43A5 Extract OS            00 (0) 'MS-DOS'\n-1D43A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D43A8 Compression Method    0000 (0) 'Stored'\n-1D43AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D43AE CRC                   00000000 (0)\n-1D43B2 Compressed Size       00000000 (0)\n-1D43B6 Uncompressed Size     00000000 (0)\n-1D43BA Filename Length       002F (47)\n-1D43BC Extra Length          0009 (9)\n-1D43BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D43BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D43ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D43EF   Length              0005 (5)\n-1D43F1   Flags               01 (1) 'Modification'\n-1D43F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D43F6 PAYLOAD\n-\n-1D5170 DATA DESCRIPTOR       08074B50 (134695760)\n-1D5174 CRC                   9A2D2058 (2586648664)\n-1D5178 Compressed Size       00000D7A (3450)\n-1D517C Uncompressed Size     00000D7A (3450)\n-\n-1D5180 LOCAL HEADER #671     04034B50 (67324752)\n-1D5184 Extract Zip Spec      14 (20) '2.0'\n-1D5185 Extract OS            00 (0) 'MS-DOS'\n-1D5186 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D5188 Compression Method    0000 (0) 'Stored'\n-1D518A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D518E CRC                   00000000 (0)\n-1D5192 Compressed Size       00000000 (0)\n-1D5196 Uncompressed Size     00000000 (0)\n-1D519A Filename Length       002F (47)\n-1D519C Extra Length          0009 (9)\n-1D519E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D519E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D51CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D51CF   Length              0005 (5)\n-1D51D1   Flags               01 (1) 'Modification'\n-1D51D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D51D6 PAYLOAD\n-\n-1D5C1D DATA DESCRIPTOR       08074B50 (134695760)\n-1D5C21 CRC                   5D8BAE4F (1569435215)\n-1D5C25 Compressed Size       00000A47 (2631)\n-1D5C29 Uncompressed Size     00000A47 (2631)\n-\n-1D5C2D LOCAL HEADER #672     04034B50 (67324752)\n-1D5C31 Extract Zip Spec      14 (20) '2.0'\n-1D5C32 Extract OS            00 (0) 'MS-DOS'\n-1D5C33 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D5C35 Compression Method    0000 (0) 'Stored'\n-1D5C37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D5C3B CRC                   00000000 (0)\n-1D5C3F Compressed Size       00000000 (0)\n-1D5C43 Uncompressed Size     00000000 (0)\n-1D5C47 Filename Length       0041 (65)\n-1D5C49 Extra Length          0009 (9)\n-1D5C4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D5C4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D5C8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D5C8E   Length              0005 (5)\n-1D5C90   Flags               01 (1) 'Modification'\n-1D5C91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D5C95 PAYLOAD\n-\n-1D989C DATA DESCRIPTOR       08074B50 (134695760)\n-1D98A0 CRC                   B148CBF0 (2974338032)\n-1D98A4 Compressed Size       00003C07 (15367)\n-1D98A8 Uncompressed Size     00003C07 (15367)\n-\n-1D98AC LOCAL HEADER #673     04034B50 (67324752)\n-1D98B0 Extract Zip Spec      14 (20) '2.0'\n-1D98B1 Extract OS            00 (0) 'MS-DOS'\n-1D98B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D98B4 Compression Method    0000 (0) 'Stored'\n-1D98B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D98BA CRC                   00000000 (0)\n-1D98BE Compressed Size       00000000 (0)\n-1D98C2 Uncompressed Size     00000000 (0)\n-1D98C6 Filename Length       0034 (52)\n-1D98C8 Extra Length          0009 (9)\n-1D98CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D98CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D98FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D9900   Length              0005 (5)\n-1D9902   Flags               01 (1) 'Modification'\n-1D9903   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D9907 PAYLOAD\n-\n-1D9DC0 DATA DESCRIPTOR       08074B50 (134695760)\n-1D9DC4 CRC                   D1BB774A (3518723914)\n-1D9DC8 Compressed Size       000004B9 (1209)\n-1D9DCC Uncompressed Size     000004B9 (1209)\n-\n-1D9DD0 LOCAL HEADER #674     04034B50 (67324752)\n-1D9DD4 Extract Zip Spec      14 (20) '2.0'\n-1D9DD5 Extract OS            00 (0) 'MS-DOS'\n-1D9DD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1D9DD8 Compression Method    0000 (0) 'Stored'\n-1D9DDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1D9DDE CRC                   00000000 (0)\n-1D9DE2 Compressed Size       00000000 (0)\n-1D9DE6 Uncompressed Size     00000000 (0)\n-1D9DEA Filename Length       0043 (67)\n-1D9DEC Extra Length          0009 (9)\n-1D9DEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1D9DEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1D9E31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1D9E33   Length              0005 (5)\n-1D9E35   Flags               01 (1) 'Modification'\n-1D9E36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1D9E3A PAYLOAD\n-\n-1DA2C7 DATA DESCRIPTOR       08074B50 (134695760)\n-1DA2CB CRC                   F2DE48ED (4074653933)\n-1DA2CF Compressed Size       0000048D (1165)\n-1DA2D3 Uncompressed Size     0000048D (1165)\n-\n-1DA2D7 LOCAL HEADER #675     04034B50 (67324752)\n-1DA2DB Extract Zip Spec      14 (20) '2.0'\n-1DA2DC Extract OS            00 (0) 'MS-DOS'\n-1DA2DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1DA2DF Compression Method    0000 (0) 'Stored'\n-1DA2E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DA2E5 CRC                   00000000 (0)\n-1DA2E9 Compressed Size       00000000 (0)\n-1DA2ED Uncompressed Size     00000000 (0)\n-1DA2F1 Filename Length       003B (59)\n-1DA2F3 Extra Length          0009 (9)\n-1DA2F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DA2F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DA330 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DA332   Length              0005 (5)\n-1DA334   Flags               01 (1) 'Modification'\n-1DA335   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DA339 PAYLOAD\n-\n-1DA7FD DATA DESCRIPTOR       08074B50 (134695760)\n-1DA801 CRC                   0662480F (107104271)\n-1DA805 Compressed Size       000004C4 (1220)\n-1DA809 Uncompressed Size     000004C4 (1220)\n-\n-1DA80D LOCAL HEADER #676     04034B50 (67324752)\n-1DA811 Extract Zip Spec      14 (20) '2.0'\n-1DA812 Extract OS            00 (0) 'MS-DOS'\n-1DA813 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1DA815 Compression Method    0000 (0) 'Stored'\n-1DA817 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DA81B CRC                   00000000 (0)\n-1DA81F Compressed Size       00000000 (0)\n-1DA823 Uncompressed Size     00000000 (0)\n-1DA827 Filename Length       0037 (55)\n-1DA829 Extra Length          0009 (9)\n-1DA82B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DA82B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DA862 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DA864   Length              0005 (5)\n-1DA866   Flags               01 (1) 'Modification'\n-1DA867   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DA86B PAYLOAD\n-\n-1DACE5 DATA DESCRIPTOR       08074B50 (134695760)\n-1DACE9 CRC                   4C849D6C (1283759468)\n-1DACED Compressed Size       0000047A (1146)\n-1DACF1 Uncompressed Size     0000047A (1146)\n-\n-1DACF5 LOCAL HEADER #677     04034B50 (67324752)\n-1DACF9 Extract Zip Spec      14 (20) '2.0'\n-1DACFA Extract OS            00 (0) 'MS-DOS'\n-1DACFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1DACFD Compression Method    0000 (0) 'Stored'\n-1DACFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1DAD03 CRC                   00000000 (0)\n-1DAD07 Compressed Size       00000000 (0)\n-1DAD0B Uncompressed Size     00000000 (0)\n-1DAD0F Filename Length       0036 (54)\n-1DAD11 Extra Length          0009 (9)\n-1DAD13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1DAD13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1DAD49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1DAD4B   Length              0005 (5)\n-1DAD4D   Flags               01 (1) 'Modification'\n-1DAD4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1DAD52 PAYLOAD\n-\n-1E4A41 DATA DESCRIPTOR       08074B50 (134695760)\n-1E4A45 CRC                   A96FE6E5 (2842683109)\n-1E4A49 Compressed Size       00009CEF (40175)\n-1E4A4D Uncompressed Size     00009CEF (40175)\n-\n-1E4A51 LOCAL HEADER #678     04034B50 (67324752)\n-1E4A55 Extract Zip Spec      14 (20) '2.0'\n-1E4A56 Extract OS            00 (0) 'MS-DOS'\n-1E4A57 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E4A59 Compression Method    0000 (0) 'Stored'\n-1E4A5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E4A5F CRC                   00000000 (0)\n-1E4A63 Compressed Size       00000000 (0)\n-1E4A67 Uncompressed Size     00000000 (0)\n-1E4A6B Filename Length       0036 (54)\n-1E4A6D Extra Length          0009 (9)\n-1E4A6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E4A6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E4AA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E4AA7   Length              0005 (5)\n-1E4AA9   Flags               01 (1) 'Modification'\n-1E4AAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E4AAE PAYLOAD\n-\n-1E503C DATA DESCRIPTOR       08074B50 (134695760)\n-1E5040 CRC                   CA31D6AC (3392263852)\n-1E5044 Compressed Size       0000058E (1422)\n-1E5048 Uncompressed Size     0000058E (1422)\n-\n-1E504C LOCAL HEADER #679     04034B50 (67324752)\n-1E5050 Extract Zip Spec      14 (20) '2.0'\n-1E5051 Extract OS            00 (0) 'MS-DOS'\n-1E5052 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E5054 Compression Method    0000 (0) 'Stored'\n-1E5056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E505A CRC                   00000000 (0)\n-1E505E Compressed Size       00000000 (0)\n-1E5062 Uncompressed Size     00000000 (0)\n-1E5066 Filename Length       002A (42)\n-1E5068 Extra Length          0009 (9)\n-1E506A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E506A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E5094 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E5096   Length              0005 (5)\n-1E5098   Flags               01 (1) 'Modification'\n-1E5099   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E509D PAYLOAD\n-\n-1E59CF DATA DESCRIPTOR       08074B50 (134695760)\n-1E59D3 CRC                   48D76DDD (1222077917)\n-1E59D7 Compressed Size       00000932 (2354)\n-1E59DB Uncompressed Size     00000932 (2354)\n-\n-1E59DF LOCAL HEADER #680     04034B50 (67324752)\n-1E59E3 Extract Zip Spec      14 (20) '2.0'\n-1E59E4 Extract OS            00 (0) 'MS-DOS'\n-1E59E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E59E7 Compression Method    0000 (0) 'Stored'\n-1E59E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E59ED CRC                   00000000 (0)\n-1E59F1 Compressed Size       00000000 (0)\n-1E59F5 Uncompressed Size     00000000 (0)\n-1E59F9 Filename Length       003E (62)\n-1E59FB Extra Length          0009 (9)\n-1E59FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E59FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E5A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E5A3D   Length              0005 (5)\n-1E5A3F   Flags               01 (1) 'Modification'\n-1E5A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E5A44 PAYLOAD\n-\n-1E5F0D DATA DESCRIPTOR       08074B50 (134695760)\n-1E5F11 CRC                   C525F495 (3307598997)\n-1E5F15 Compressed Size       000004C9 (1225)\n-1E5F19 Uncompressed Size     000004C9 (1225)\n-\n-1E5F1D LOCAL HEADER #681     04034B50 (67324752)\n-1E5F21 Extract Zip Spec      14 (20) '2.0'\n-1E5F22 Extract OS            00 (0) 'MS-DOS'\n-1E5F23 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E5F25 Compression Method    0000 (0) 'Stored'\n-1E5F27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E5F2B CRC                   00000000 (0)\n-1E5F2F Compressed Size       00000000 (0)\n-1E5F33 Uncompressed Size     00000000 (0)\n-1E5F37 Filename Length       002E (46)\n-1E5F39 Extra Length          0009 (9)\n-1E5F3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E5F3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E5F69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E5F6B   Length              0005 (5)\n-1E5F6D   Flags               01 (1) 'Modification'\n-1E5F6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E5F72 PAYLOAD\n-\n-1E6482 DATA DESCRIPTOR       08074B50 (134695760)\n-1E6486 CRC                   25A296EC (631412460)\n-1E648A Compressed Size       00000510 (1296)\n-1E648E Uncompressed Size     00000510 (1296)\n-\n-1E6492 LOCAL HEADER #682     04034B50 (67324752)\n-1E6496 Extract Zip Spec      14 (20) '2.0'\n-1E6497 Extract OS            00 (0) 'MS-DOS'\n-1E6498 General Purpose Flag  0000 (0)\n-1E649A Compression Method    0000 (0) 'Stored'\n-1E649C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E64A0 CRC                   00000000 (0)\n-1E64A4 Compressed Size       00000000 (0)\n-1E64A8 Uncompressed Size     00000000 (0)\n-1E64AC Filename Length       002A (42)\n-1E64AE Extra Length          0009 (9)\n-1E64B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E64B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E64DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E64DC   Length              0005 (5)\n-1E64DE   Flags               01 (1) 'Modification'\n-1E64DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1E64E3 LOCAL HEADER #683     04034B50 (67324752)\n-1E64E7 Extract Zip Spec      14 (20) '2.0'\n-1E64E8 Extract OS            00 (0) 'MS-DOS'\n-1E64E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E64EB Compression Method    0000 (0) 'Stored'\n-1E64ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E64F1 CRC                   00000000 (0)\n-1E64F5 Compressed Size       00000000 (0)\n-1E64F9 Uncompressed Size     00000000 (0)\n-1E64FD Filename Length       0047 (71)\n-1E64FF Extra Length          0009 (9)\n-1E6501 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E6501: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E6548 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E654A   Length              0005 (5)\n-1E654C   Flags               01 (1) 'Modification'\n-1E654D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E6551 PAYLOAD\n-\n-1E6D51 DATA DESCRIPTOR       08074B50 (134695760)\n-1E6D55 CRC                   EA8B59C6 (3935001030)\n-1E6D59 Compressed Size       00000800 (2048)\n-1E6D5D Uncompressed Size     00000800 (2048)\n-\n-1E6D61 LOCAL HEADER #684     04034B50 (67324752)\n-1E6D65 Extract Zip Spec      14 (20) '2.0'\n-1E6D66 Extract OS            00 (0) 'MS-DOS'\n-1E6D67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E6D69 Compression Method    0000 (0) 'Stored'\n-1E6D6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E6D6F CRC                   00000000 (0)\n-1E6D73 Compressed Size       00000000 (0)\n-1E6D77 Uncompressed Size     00000000 (0)\n-1E6D7B Filename Length       0042 (66)\n-1E6D7D Extra Length          0009 (9)\n-1E6D7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E6D7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E6DC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E6DC3   Length              0005 (5)\n-1E6DC5   Flags               01 (1) 'Modification'\n-1E6DC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E6DCA PAYLOAD\n-\n-1E73D9 DATA DESCRIPTOR       08074B50 (134695760)\n-1E73DD CRC                   3280412A (847266090)\n-1E73E1 Compressed Size       0000060F (1551)\n-1E73E5 Uncompressed Size     0000060F (1551)\n-\n-1E73E9 LOCAL HEADER #685     04034B50 (67324752)\n-1E73ED Extract Zip Spec      14 (20) '2.0'\n-1E73EE Extract OS            00 (0) 'MS-DOS'\n-1E73EF General Purpose Flag  0000 (0)\n-1E73F1 Compression Method    0000 (0) 'Stored'\n-1E73F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E73F7 CRC                   00000000 (0)\n-1E73FB Compressed Size       00000000 (0)\n-1E73FF Uncompressed Size     00000000 (0)\n-1E7403 Filename Length       002A (42)\n-1E7405 Extra Length          0009 (9)\n-1E7407 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E7407: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E7431 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E7433   Length              0005 (5)\n-1E7435   Flags               01 (1) 'Modification'\n-1E7436   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1E743A LOCAL HEADER #686     04034B50 (67324752)\n-1E743E Extract Zip Spec      14 (20) '2.0'\n-1E743F Extract OS            00 (0) 'MS-DOS'\n-1E7440 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E7442 Compression Method    0000 (0) 'Stored'\n-1E7444 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E7448 CRC                   00000000 (0)\n-1E744C Compressed Size       00000000 (0)\n-1E7450 Uncompressed Size     00000000 (0)\n-1E7454 Filename Length       0041 (65)\n-1E7456 Extra Length          0009 (9)\n-1E7458 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E7458: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E7499 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E749B   Length              0005 (5)\n-1E749D   Flags               01 (1) 'Modification'\n-1E749E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E74A2 PAYLOAD\n-\n-1E8676 DATA DESCRIPTOR       08074B50 (134695760)\n-1E867A CRC                   B81BB8E1 (3088824545)\n-1E867E Compressed Size       000011D4 (4564)\n-1E8682 Uncompressed Size     000011D4 (4564)\n-\n-1E8686 LOCAL HEADER #687     04034B50 (67324752)\n-1E868A Extract Zip Spec      14 (20) '2.0'\n-1E868B Extract OS            00 (0) 'MS-DOS'\n-1E868C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E868E Compression Method    0000 (0) 'Stored'\n-1E8690 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E8694 CRC                   00000000 (0)\n-1E8698 Compressed Size       00000000 (0)\n-1E869C Uncompressed Size     00000000 (0)\n-1E86A0 Filename Length       0040 (64)\n-1E86A2 Extra Length          0009 (9)\n-1E86A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E86A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E86E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E86E6   Length              0005 (5)\n-1E86E8   Flags               01 (1) 'Modification'\n-1E86E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E86ED PAYLOAD\n-\n-1E92E7 DATA DESCRIPTOR       08074B50 (134695760)\n-1E92EB CRC                   C0FD96E7 (3237844711)\n-1E92EF Compressed Size       00000BFA (3066)\n-1E92F3 Uncompressed Size     00000BFA (3066)\n-\n-1E92F7 LOCAL HEADER #688     04034B50 (67324752)\n-1E92FB Extract Zip Spec      14 (20) '2.0'\n-1E92FC Extract OS            00 (0) 'MS-DOS'\n-1E92FD General Purpose Flag  0000 (0)\n-1E92FF Compression Method    0000 (0) 'Stored'\n-1E9301 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E9305 CRC                   00000000 (0)\n-1E9309 Compressed Size       00000000 (0)\n-1E930D Uncompressed Size     00000000 (0)\n-1E9311 Filename Length       0021 (33)\n-1E9313 Extra Length          0009 (9)\n-1E9315 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E9315: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E9336 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E9338   Length              0005 (5)\n-1E933A   Flags               01 (1) 'Modification'\n-1E933B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1E933F LOCAL HEADER #689     04034B50 (67324752)\n-1E9343 Extract Zip Spec      14 (20) '2.0'\n-1E9344 Extract OS            00 (0) 'MS-DOS'\n-1E9345 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E9347 Compression Method    0000 (0) 'Stored'\n-1E9349 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E934D CRC                   00000000 (0)\n-1E9351 Compressed Size       00000000 (0)\n-1E9355 Uncompressed Size     00000000 (0)\n-1E9359 Filename Length       0030 (48)\n-1E935B Extra Length          0009 (9)\n-1E935D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E935D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E938D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E938F   Length              0005 (5)\n-1E9391   Flags               01 (1) 'Modification'\n-1E9392   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E9396 PAYLOAD\n-\n-1E9CBB DATA DESCRIPTOR       08074B50 (134695760)\n-1E9CBF CRC                   3980931B (964727579)\n-1E9CC3 Compressed Size       00000925 (2341)\n-1E9CC7 Uncompressed Size     00000925 (2341)\n-\n-1E9CCB LOCAL HEADER #690     04034B50 (67324752)\n-1E9CCF Extract Zip Spec      14 (20) '2.0'\n-1E9CD0 Extract OS            00 (0) 'MS-DOS'\n-1E9CD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1E9CD3 Compression Method    0000 (0) 'Stored'\n-1E9CD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1E9CD9 CRC                   00000000 (0)\n-1E9CDD Compressed Size       00000000 (0)\n-1E9CE1 Uncompressed Size     00000000 (0)\n-1E9CE5 Filename Length       002D (45)\n-1E9CE7 Extra Length          0009 (9)\n-1E9CE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1E9CE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1E9D16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1E9D18   Length              0005 (5)\n-1E9D1A   Flags               01 (1) 'Modification'\n-1E9D1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1E9D1F PAYLOAD\n-\n-1EA79A DATA DESCRIPTOR       08074B50 (134695760)\n-1EA79E CRC                   4F8202FE (1333920510)\n-1EA7A2 Compressed Size       00000A7B (2683)\n-1EA7A6 Uncompressed Size     00000A7B (2683)\n-\n-1EA7AA LOCAL HEADER #691     04034B50 (67324752)\n-1EA7AE Extract Zip Spec      14 (20) '2.0'\n-1EA7AF Extract OS            00 (0) 'MS-DOS'\n-1EA7B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1EA7B2 Compression Method    0000 (0) 'Stored'\n-1EA7B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EA7B8 CRC                   00000000 (0)\n-1EA7BC Compressed Size       00000000 (0)\n-1EA7C0 Uncompressed Size     00000000 (0)\n-1EA7C4 Filename Length       0035 (53)\n-1EA7C6 Extra Length          0009 (9)\n-1EA7C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EA7C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EA7FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EA7FF   Length              0005 (5)\n-1EA801   Flags               01 (1) 'Modification'\n-1EA802   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1EA806 PAYLOAD\n-\n-1EAE3E DATA DESCRIPTOR       08074B50 (134695760)\n-1EAE42 CRC                   3F1DB4B7 (1058911415)\n-1EAE46 Compressed Size       00000638 (1592)\n-1EAE4A Uncompressed Size     00000638 (1592)\n-\n-1EAE4E LOCAL HEADER #692     04034B50 (67324752)\n-1EAE52 Extract Zip Spec      14 (20) '2.0'\n-1EAE53 Extract OS            00 (0) 'MS-DOS'\n-1EAE54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1EAE56 Compression Method    0000 (0) 'Stored'\n-1EAE58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EAE5C CRC                   00000000 (0)\n-1EAE60 Compressed Size       00000000 (0)\n-1EAE64 Uncompressed Size     00000000 (0)\n-1EAE68 Filename Length       0037 (55)\n-1EAE6A Extra Length          0009 (9)\n-1EAE6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EAE6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EAEA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EAEA5   Length              0005 (5)\n-1EAEA7   Flags               01 (1) 'Modification'\n-1EAEA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1EAEAC PAYLOAD\n-\n-1EB69C DATA DESCRIPTOR       08074B50 (134695760)\n-1EB6A0 CRC                   86537D4A (2253618506)\n-1EB6A4 Compressed Size       000007F0 (2032)\n-1EB6A8 Uncompressed Size     000007F0 (2032)\n-\n-1EB6AC LOCAL HEADER #693     04034B50 (67324752)\n-1EB6B0 Extract Zip Spec      14 (20) '2.0'\n-1EB6B1 Extract OS            00 (0) 'MS-DOS'\n-1EB6B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1EB6B4 Compression Method    0000 (0) 'Stored'\n-1EB6B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EB6BA CRC                   00000000 (0)\n-1EB6BE Compressed Size       00000000 (0)\n-1EB6C2 Uncompressed Size     00000000 (0)\n-1EB6C6 Filename Length       0037 (55)\n-1EB6C8 Extra Length          0009 (9)\n-1EB6CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EB6CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EB701 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EB703   Length              0005 (5)\n-1EB705   Flags               01 (1) 'Modification'\n-1EB706   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1EB70A PAYLOAD\n-\n-1EBF8F DATA DESCRIPTOR       08074B50 (134695760)\n-1EBF93 CRC                   76835014 (1988317204)\n-1EBF97 Compressed Size       00000885 (2181)\n-1EBF9B Uncompressed Size     00000885 (2181)\n-\n-1EBF9F LOCAL HEADER #694     04034B50 (67324752)\n-1EBFA3 Extract Zip Spec      14 (20) '2.0'\n-1EBFA4 Extract OS            00 (0) 'MS-DOS'\n-1EBFA5 General Purpose Flag  0000 (0)\n-1EBFA7 Compression Method    0000 (0) 'Stored'\n-1EBFA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EBFAD CRC                   00000000 (0)\n-1EBFB1 Compressed Size       00000000 (0)\n-1EBFB5 Uncompressed Size     00000000 (0)\n-1EBFB9 Filename Length       001E (30)\n-1EBFBB Extra Length          0009 (9)\n-1EBFBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EBFBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EBFDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EBFDD   Length              0005 (5)\n-1EBFDF   Flags               01 (1) 'Modification'\n-1EBFE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1EBFE4 LOCAL HEADER #695     04034B50 (67324752)\n-1EBFE8 Extract Zip Spec      14 (20) '2.0'\n-1EBFE9 Extract OS            00 (0) 'MS-DOS'\n-1EBFEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1EBFEC Compression Method    0000 (0) 'Stored'\n-1EBFEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EBFF2 CRC                   00000000 (0)\n-1EBFF6 Compressed Size       00000000 (0)\n-1EBFFA Uncompressed Size     00000000 (0)\n-1EBFFE Filename Length       002F (47)\n-1EC000 Extra Length          0009 (9)\n-1EC002 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EC002: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EC031 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EC033   Length              0005 (5)\n-1EC035   Flags               01 (1) 'Modification'\n-1EC036   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1EC03A PAYLOAD\n-\n-1EC653 DATA DESCRIPTOR       08074B50 (134695760)\n-1EC657 CRC                   7A06D81E (2047268894)\n-1EC65B Compressed Size       00000619 (1561)\n-1EC65F Uncompressed Size     00000619 (1561)\n-\n-1EC663 LOCAL HEADER #696     04034B50 (67324752)\n-1EC667 Extract Zip Spec      14 (20) '2.0'\n-1EC668 Extract OS            00 (0) 'MS-DOS'\n-1EC669 General Purpose Flag  0000 (0)\n-1EC66B Compression Method    0000 (0) 'Stored'\n-1EC66D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EC671 CRC                   00000000 (0)\n-1EC675 Compressed Size       00000000 (0)\n-1EC679 Uncompressed Size     00000000 (0)\n-1EC67D Filename Length       0026 (38)\n-1EC67F Extra Length          0009 (9)\n-1EC681 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EC681: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EC6A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EC6A9   Length              0005 (5)\n-1EC6AB   Flags               01 (1) 'Modification'\n-1EC6AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1EC6B0 LOCAL HEADER #697     04034B50 (67324752)\n-1EC6B4 Extract Zip Spec      14 (20) '2.0'\n-1EC6B5 Extract OS            00 (0) 'MS-DOS'\n-1EC6B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1EC6B8 Compression Method    0000 (0) 'Stored'\n-1EC6BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1EC6BE CRC                   00000000 (0)\n-1EC6C2 Compressed Size       00000000 (0)\n-1EC6C6 Uncompressed Size     00000000 (0)\n-1EC6CA Filename Length       0036 (54)\n-1EC6CC Extra Length          0009 (9)\n-1EC6CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1EC6CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1EC704 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1EC706   Length              0005 (5)\n-1EC708   Flags               01 (1) 'Modification'\n-1EC709   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1EC70D PAYLOAD\n-\n-1ECC11 DATA DESCRIPTOR       08074B50 (134695760)\n-1ECC15 CRC                   596F5AFB (1500470011)\n-1ECC19 Compressed Size       00000504 (1284)\n-1ECC1D Uncompressed Size     00000504 (1284)\n-\n-1ECC21 LOCAL HEADER #698     04034B50 (67324752)\n-1ECC25 Extract Zip Spec      14 (20) '2.0'\n-1ECC26 Extract OS            00 (0) 'MS-DOS'\n-1ECC27 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1ECC29 Compression Method    0000 (0) 'Stored'\n-1ECC2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1ECC2F CRC                   00000000 (0)\n-1ECC33 Compressed Size       00000000 (0)\n-1ECC37 Uncompressed Size     00000000 (0)\n-1ECC3B Filename Length       003D (61)\n-1ECC3D Extra Length          0009 (9)\n-1ECC3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1ECC3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1ECC7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1ECC7E   Length              0005 (5)\n-1ECC80   Flags               01 (1) 'Modification'\n-1ECC81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1ECC85 PAYLOAD\n-\n-1ED7DA DATA DESCRIPTOR       08074B50 (134695760)\n-1ED7DE CRC                   DAE5D322 (3672494882)\n-1ED7E2 Compressed Size       00000B55 (2901)\n-1ED7E6 Uncompressed Size     00000B55 (2901)\n-\n-1ED7EA LOCAL HEADER #699     04034B50 (67324752)\n-1ED7EE Extract Zip Spec      14 (20) '2.0'\n-1ED7EF Extract OS            00 (0) 'MS-DOS'\n-1ED7F0 General Purpose Flag  0000 (0)\n-1ED7F2 Compression Method    0000 (0) 'Stored'\n-1ED7F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1ED7F8 CRC                   00000000 (0)\n-1ED7FC Compressed Size       00000000 (0)\n-1ED800 Uncompressed Size     00000000 (0)\n-1ED804 Filename Length       001B (27)\n-1ED806 Extra Length          0009 (9)\n-1ED808 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1ED808: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1ED823 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1ED825   Length              0005 (5)\n-1ED827   Flags               01 (1) 'Modification'\n-1ED828   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1ED82C LOCAL HEADER #700     04034B50 (67324752)\n-1ED830 Extract Zip Spec      14 (20) '2.0'\n-1ED831 Extract OS            00 (0) 'MS-DOS'\n-1ED832 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1ED834 Compression Method    0000 (0) 'Stored'\n-1ED836 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1ED83A CRC                   00000000 (0)\n-1ED83E Compressed Size       00000000 (0)\n-1ED842 Uncompressed Size     00000000 (0)\n-1ED846 Filename Length       0025 (37)\n-1ED848 Extra Length          0009 (9)\n-1ED84A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1ED84A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1ED86F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1ED871   Length              0005 (5)\n-1ED873   Flags               01 (1) 'Modification'\n-1ED874   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1ED878 PAYLOAD\n-\n-1F3D90 DATA DESCRIPTOR       08074B50 (134695760)\n-1F3D94 CRC                   0BDE6714 (199124756)\n-1F3D98 Compressed Size       00006518 (25880)\n-1F3D9C Uncompressed Size     00006518 (25880)\n-\n-1F3DA0 LOCAL HEADER #701     04034B50 (67324752)\n-1F3DA4 Extract Zip Spec      14 (20) '2.0'\n-1F3DA5 Extract OS            00 (0) 'MS-DOS'\n-1F3DA6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F3DA8 Compression Method    0000 (0) 'Stored'\n-1F3DAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F3DAE CRC                   00000000 (0)\n-1F3DB2 Compressed Size       00000000 (0)\n-1F3DB6 Uncompressed Size     00000000 (0)\n-1F3DBA Filename Length       002B (43)\n-1F3DBC Extra Length          0009 (9)\n-1F3DBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F3DBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F3DE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F3DEB   Length              0005 (5)\n-1F3DED   Flags               01 (1) 'Modification'\n-1F3DEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F3DF2 PAYLOAD\n-\n-1F58F4 DATA DESCRIPTOR       08074B50 (134695760)\n-1F58F8 CRC                   16F10E62 (384896610)\n-1F58FC Compressed Size       00001B02 (6914)\n-1F5900 Uncompressed Size     00001B02 (6914)\n-\n-1F5904 LOCAL HEADER #702     04034B50 (67324752)\n-1F5908 Extract Zip Spec      14 (20) '2.0'\n-1F5909 Extract OS            00 (0) 'MS-DOS'\n-1F590A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F590C Compression Method    0000 (0) 'Stored'\n-1F590E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F5912 CRC                   00000000 (0)\n-1F5916 Compressed Size       00000000 (0)\n-1F591A Uncompressed Size     00000000 (0)\n-1F591E Filename Length       003A (58)\n-1F5920 Extra Length          0009 (9)\n-1F5922 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F5922: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F595C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F595E   Length              0005 (5)\n-1F5960   Flags               01 (1) 'Modification'\n-1F5961   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F5965 PAYLOAD\n-\n-1F6550 DATA DESCRIPTOR       08074B50 (134695760)\n-1F6554 CRC                   A6F50F6E (2801078126)\n-1F6558 Compressed Size       00000BEB (3051)\n-1F655C Uncompressed Size     00000BEB (3051)\n-\n-1F6560 LOCAL HEADER #703     04034B50 (67324752)\n-1F6564 Extract Zip Spec      14 (20) '2.0'\n-1F6565 Extract OS            00 (0) 'MS-DOS'\n-1F6566 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F6568 Compression Method    0000 (0) 'Stored'\n-1F656A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F656E CRC                   00000000 (0)\n-1F6572 Compressed Size       00000000 (0)\n-1F6576 Uncompressed Size     00000000 (0)\n-1F657A Filename Length       003B (59)\n-1F657C Extra Length          0009 (9)\n-1F657E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F657E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F65B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F65BB   Length              0005 (5)\n-1F65BD   Flags               01 (1) 'Modification'\n-1F65BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F65C2 PAYLOAD\n-\n-1F7150 DATA DESCRIPTOR       08074B50 (134695760)\n-1F7154 CRC                   5110A2B9 (1360044729)\n-1F7158 Compressed Size       00000B8E (2958)\n-1F715C Uncompressed Size     00000B8E (2958)\n-\n-1F7160 LOCAL HEADER #704     04034B50 (67324752)\n-1F7164 Extract Zip Spec      14 (20) '2.0'\n-1F7165 Extract OS            00 (0) 'MS-DOS'\n-1F7166 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F7168 Compression Method    0000 (0) 'Stored'\n-1F716A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F716E CRC                   00000000 (0)\n-1F7172 Compressed Size       00000000 (0)\n-1F7176 Uncompressed Size     00000000 (0)\n-1F717A Filename Length       0032 (50)\n-1F717C Extra Length          0009 (9)\n-1F717E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F717E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F71B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F71B2   Length              0005 (5)\n-1F71B4   Flags               01 (1) 'Modification'\n-1F71B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F71B9 PAYLOAD\n-\n-1F7E1E DATA DESCRIPTOR       08074B50 (134695760)\n-1F7E22 CRC                   490F11E6 (1225724390)\n-1F7E26 Compressed Size       00000C65 (3173)\n-1F7E2A Uncompressed Size     00000C65 (3173)\n-\n-1F7E2E LOCAL HEADER #705     04034B50 (67324752)\n-1F7E32 Extract Zip Spec      14 (20) '2.0'\n-1F7E33 Extract OS            00 (0) 'MS-DOS'\n-1F7E34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F7E36 Compression Method    0000 (0) 'Stored'\n-1F7E38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F7E3C CRC                   00000000 (0)\n-1F7E40 Compressed Size       00000000 (0)\n-1F7E44 Uncompressed Size     00000000 (0)\n-1F7E48 Filename Length       0032 (50)\n-1F7E4A Extra Length          0009 (9)\n-1F7E4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F7E4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F7E7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F7E80   Length              0005 (5)\n-1F7E82   Flags               01 (1) 'Modification'\n-1F7E83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F7E87 PAYLOAD\n-\n-1F895C DATA DESCRIPTOR       08074B50 (134695760)\n-1F8960 CRC                   2D3D8039 (759005241)\n-1F8964 Compressed Size       00000AD5 (2773)\n-1F8968 Uncompressed Size     00000AD5 (2773)\n-\n-1F896C LOCAL HEADER #706     04034B50 (67324752)\n-1F8970 Extract Zip Spec      14 (20) '2.0'\n-1F8971 Extract OS            00 (0) 'MS-DOS'\n-1F8972 General Purpose Flag  0000 (0)\n-1F8974 Compression Method    0000 (0) 'Stored'\n-1F8976 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F897A CRC                   00000000 (0)\n-1F897E Compressed Size       00000000 (0)\n-1F8982 Uncompressed Size     00000000 (0)\n-1F8986 Filename Length       001D (29)\n-1F8988 Extra Length          0009 (9)\n-1F898A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F898A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F89A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F89A9   Length              0005 (5)\n-1F89AB   Flags               01 (1) 'Modification'\n-1F89AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-1F89B0 LOCAL HEADER #707     04034B50 (67324752)\n-1F89B4 Extract Zip Spec      14 (20) '2.0'\n-1F89B5 Extract OS            00 (0) 'MS-DOS'\n-1F89B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1F89B8 Compression Method    0000 (0) 'Stored'\n-1F89BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1F89BE CRC                   00000000 (0)\n-1F89C2 Compressed Size       00000000 (0)\n-1F89C6 Uncompressed Size     00000000 (0)\n-1F89CA Filename Length       0036 (54)\n-1F89CC Extra Length          0009 (9)\n-1F89CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1F89CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1F8A04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1F8A06   Length              0005 (5)\n-1F8A08   Flags               01 (1) 'Modification'\n-1F8A09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1F8A0D PAYLOAD\n-\n-1FCEE2 DATA DESCRIPTOR       08074B50 (134695760)\n-1FCEE6 CRC                   BACA53B9 (3133821881)\n-1FCEEA Compressed Size       000044D5 (17621)\n-1FCEEE Uncompressed Size     000044D5 (17621)\n-\n-1FCEF2 LOCAL HEADER #708     04034B50 (67324752)\n-1FCEF6 Extract Zip Spec      14 (20) '2.0'\n-1FCEF7 Extract OS            00 (0) 'MS-DOS'\n-1FCEF8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-1FCEFA Compression Method    0000 (0) 'Stored'\n-1FCEFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-1FCF00 CRC                   00000000 (0)\n-1FCF04 Compressed Size       00000000 (0)\n-1FCF08 Uncompressed Size     00000000 (0)\n-1FCF0C Filename Length       002C (44)\n-1FCF0E Extra Length          0009 (9)\n-1FCF10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x1FCF10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-1FCF3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-1FCF3E   Length              0005 (5)\n-1FCF40   Flags               01 (1) 'Modification'\n-1FCF41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-1FCF45 PAYLOAD\n-\n-2002CA DATA DESCRIPTOR       08074B50 (134695760)\n-2002CE CRC                   FA032BB6 (4194511798)\n-2002D2 Compressed Size       00003385 (13189)\n-2002D6 Uncompressed Size     00003385 (13189)\n-\n-2002DA LOCAL HEADER #709     04034B50 (67324752)\n-2002DE Extract Zip Spec      14 (20) '2.0'\n-2002DF Extract OS            00 (0) 'MS-DOS'\n-2002E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2002E2 Compression Method    0000 (0) 'Stored'\n-2002E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2002E8 CRC                   00000000 (0)\n-2002EC Compressed Size       00000000 (0)\n-2002F0 Uncompressed Size     00000000 (0)\n-2002F4 Filename Length       0026 (38)\n-2002F6 Extra Length          0009 (9)\n-2002F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2002F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20031E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-200320   Length              0005 (5)\n-200322   Flags               01 (1) 'Modification'\n-200323   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-200327 PAYLOAD\n-\n-206DCB DATA DESCRIPTOR       08074B50 (134695760)\n-206DCF CRC                   39C07894 (968915092)\n-206DD3 Compressed Size       00006AA4 (27300)\n-206DD7 Uncompressed Size     00006AA4 (27300)\n-\n-206DDB LOCAL HEADER #710     04034B50 (67324752)\n-206DDF Extract Zip Spec      14 (20) '2.0'\n-206DE0 Extract OS            00 (0) 'MS-DOS'\n-206DE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-206DE3 Compression Method    0000 (0) 'Stored'\n-206DE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-206DE9 CRC                   00000000 (0)\n-206DED Compressed Size       00000000 (0)\n-206DF1 Uncompressed Size     00000000 (0)\n-206DF5 Filename Length       002B (43)\n-206DF7 Extra Length          0009 (9)\n-206DF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x206DF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-206E24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-206E26   Length              0005 (5)\n-206E28   Flags               01 (1) 'Modification'\n-206E29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-206E2D PAYLOAD\n-\n-20815D DATA DESCRIPTOR       08074B50 (134695760)\n-208161 CRC                   2313A478 (588489848)\n-208165 Compressed Size       00001330 (4912)\n-208169 Uncompressed Size     00001330 (4912)\n-\n-20816D LOCAL HEADER #711     04034B50 (67324752)\n-208171 Extract Zip Spec      14 (20) '2.0'\n-208172 Extract OS            00 (0) 'MS-DOS'\n-208173 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-208175 Compression Method    0000 (0) 'Stored'\n-208177 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20817B CRC                   00000000 (0)\n-20817F Compressed Size       00000000 (0)\n-208183 Uncompressed Size     00000000 (0)\n-208187 Filename Length       002F (47)\n-208189 Extra Length          0009 (9)\n-20818B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20818B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2081BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2081BC   Length              0005 (5)\n-2081BE   Flags               01 (1) 'Modification'\n-2081BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2081C3 PAYLOAD\n-\n-208778 DATA DESCRIPTOR       08074B50 (134695760)\n-20877C CRC                   10BC97FD (280795133)\n-208780 Compressed Size       000005B5 (1461)\n-208784 Uncompressed Size     000005B5 (1461)\n-\n-208788 LOCAL HEADER #712     04034B50 (67324752)\n-20878C Extract Zip Spec      14 (20) '2.0'\n-20878D Extract OS            00 (0) 'MS-DOS'\n-20878E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-208790 Compression Method    0000 (0) 'Stored'\n-208792 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-208796 CRC                   00000000 (0)\n-20879A Compressed Size       00000000 (0)\n-20879E Uncompressed Size     00000000 (0)\n-2087A2 Filename Length       002A (42)\n-2087A4 Extra Length          0009 (9)\n-2087A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2087A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2087D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2087D2   Length              0005 (5)\n-2087D4   Flags               01 (1) 'Modification'\n-2087D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2087D9 PAYLOAD\n-\n-208C87 DATA DESCRIPTOR       08074B50 (134695760)\n-208C8B CRC                   982A34CC (2552902860)\n-208C8F Compressed Size       000004AE (1198)\n-208C93 Uncompressed Size     000004AE (1198)\n-\n-208C97 LOCAL HEADER #713     04034B50 (67324752)\n-208C9B Extract Zip Spec      14 (20) '2.0'\n-208C9C Extract OS            00 (0) 'MS-DOS'\n-208C9D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-208C9F Compression Method    0000 (0) 'Stored'\n-208CA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-208CA5 CRC                   00000000 (0)\n-208CA9 Compressed Size       00000000 (0)\n-208CAD Uncompressed Size     00000000 (0)\n-208CB1 Filename Length       002C (44)\n-208CB3 Extra Length          0009 (9)\n-208CB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x208CB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-208CE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-208CE3   Length              0005 (5)\n-208CE5   Flags               01 (1) 'Modification'\n-208CE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-208CEA PAYLOAD\n-\n-20A2E5 DATA DESCRIPTOR       08074B50 (134695760)\n-20A2E9 CRC                   7653CF57 (1985204055)\n-20A2ED Compressed Size       000015FB (5627)\n-20A2F1 Uncompressed Size     000015FB (5627)\n-\n-20A2F5 LOCAL HEADER #714     04034B50 (67324752)\n-20A2F9 Extract Zip Spec      14 (20) '2.0'\n-20A2FA Extract OS            00 (0) 'MS-DOS'\n-20A2FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20A2FD Compression Method    0000 (0) 'Stored'\n-20A2FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20A303 CRC                   00000000 (0)\n-20A307 Compressed Size       00000000 (0)\n-20A30B Uncompressed Size     00000000 (0)\n-20A30F Filename Length       002C (44)\n-20A311 Extra Length          0009 (9)\n-20A313 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20A313: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20A33F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20A341   Length              0005 (5)\n-20A343   Flags               01 (1) 'Modification'\n-20A344   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20A348 PAYLOAD\n-\n-20ABEE DATA DESCRIPTOR       08074B50 (134695760)\n-20ABF2 CRC                   4D87180A (1300699146)\n-20ABF6 Compressed Size       000008A6 (2214)\n-20ABFA Uncompressed Size     000008A6 (2214)\n-\n-20ABFE LOCAL HEADER #715     04034B50 (67324752)\n-20AC02 Extract Zip Spec      14 (20) '2.0'\n-20AC03 Extract OS            00 (0) 'MS-DOS'\n-20AC04 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20AC06 Compression Method    0000 (0) 'Stored'\n-20AC08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20AC0C CRC                   00000000 (0)\n-20AC10 Compressed Size       00000000 (0)\n-20AC14 Uncompressed Size     00000000 (0)\n-20AC18 Filename Length       002B (43)\n-20AC1A Extra Length          0009 (9)\n-20AC1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20AC1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20AC47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20AC49   Length              0005 (5)\n-20AC4B   Flags               01 (1) 'Modification'\n-20AC4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20AC50 PAYLOAD\n-\n-20B517 DATA DESCRIPTOR       08074B50 (134695760)\n-20B51B CRC                   8F2D4992 (2402109842)\n-20B51F Compressed Size       000008C7 (2247)\n-20B523 Uncompressed Size     000008C7 (2247)\n-\n-20B527 LOCAL HEADER #716     04034B50 (67324752)\n-20B52B Extract Zip Spec      14 (20) '2.0'\n-20B52C Extract OS            00 (0) 'MS-DOS'\n-20B52D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20B52F Compression Method    0000 (0) 'Stored'\n-20B531 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20B535 CRC                   00000000 (0)\n-20B539 Compressed Size       00000000 (0)\n-20B53D Uncompressed Size     00000000 (0)\n-20B541 Filename Length       002D (45)\n-20B543 Extra Length          0009 (9)\n-20B545 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20B545: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20B572 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20B574   Length              0005 (5)\n-20B576   Flags               01 (1) 'Modification'\n-20B577   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20B57B PAYLOAD\n-\n-20C067 DATA DESCRIPTOR       08074B50 (134695760)\n-20C06B CRC                   33828390 (864191376)\n-20C06F Compressed Size       00000AEC (2796)\n-20C073 Uncompressed Size     00000AEC (2796)\n-\n-20C077 LOCAL HEADER #717     04034B50 (67324752)\n-20C07B Extract Zip Spec      14 (20) '2.0'\n-20C07C Extract OS            00 (0) 'MS-DOS'\n-20C07D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20C07F Compression Method    0000 (0) 'Stored'\n-20C081 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20C085 CRC                   00000000 (0)\n-20C089 Compressed Size       00000000 (0)\n-20C08D Uncompressed Size     00000000 (0)\n-20C091 Filename Length       002C (44)\n-20C093 Extra Length          0009 (9)\n-20C095 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20C095: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20C0C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20C0C3   Length              0005 (5)\n-20C0C5   Flags               01 (1) 'Modification'\n-20C0C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20C0CA PAYLOAD\n-\n-20E0A9 DATA DESCRIPTOR       08074B50 (134695760)\n-20E0AD CRC                   ECCF2EAF (3973000879)\n-20E0B1 Compressed Size       00001FDF (8159)\n-20E0B5 Uncompressed Size     00001FDF (8159)\n-\n-20E0B9 LOCAL HEADER #718     04034B50 (67324752)\n-20E0BD Extract Zip Spec      14 (20) '2.0'\n-20E0BE Extract OS            00 (0) 'MS-DOS'\n-20E0BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20E0C1 Compression Method    0000 (0) 'Stored'\n-20E0C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20E0C7 CRC                   00000000 (0)\n-20E0CB Compressed Size       00000000 (0)\n-20E0CF Uncompressed Size     00000000 (0)\n-20E0D3 Filename Length       0030 (48)\n-20E0D5 Extra Length          0009 (9)\n-20E0D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20E0D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20E107 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20E109   Length              0005 (5)\n-20E10B   Flags               01 (1) 'Modification'\n-20E10C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20E110 PAYLOAD\n-\n-20E599 DATA DESCRIPTOR       08074B50 (134695760)\n-20E59D CRC                   4EF6CDD0 (1324797392)\n-20E5A1 Compressed Size       00000489 (1161)\n-20E5A5 Uncompressed Size     00000489 (1161)\n-\n-20E5A9 LOCAL HEADER #719     04034B50 (67324752)\n-20E5AD Extract Zip Spec      14 (20) '2.0'\n-20E5AE Extract OS            00 (0) 'MS-DOS'\n-20E5AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-20E5B1 Compression Method    0000 (0) 'Stored'\n-20E5B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-20E5B7 CRC                   00000000 (0)\n-20E5BB Compressed Size       00000000 (0)\n-20E5BF Uncompressed Size     00000000 (0)\n-20E5C3 Filename Length       0027 (39)\n-20E5C5 Extra Length          0009 (9)\n-20E5C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x20E5C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-20E5EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-20E5F0   Length              0005 (5)\n-20E5F2   Flags               01 (1) 'Modification'\n-20E5F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-20E5F7 PAYLOAD\n-\n-2158B0 DATA DESCRIPTOR       08074B50 (134695760)\n-2158B4 CRC                   D5F1D071 (3589394545)\n-2158B8 Compressed Size       000072B9 (29369)\n-2158BC Uncompressed Size     000072B9 (29369)\n-\n-2158C0 LOCAL HEADER #720     04034B50 (67324752)\n-2158C4 Extract Zip Spec      14 (20) '2.0'\n-2158C5 Extract OS            00 (0) 'MS-DOS'\n-2158C6 General Purpose Flag  0000 (0)\n-2158C8 Compression Method    0000 (0) 'Stored'\n-2158CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2158CE CRC                   00000000 (0)\n-2158D2 Compressed Size       00000000 (0)\n-2158D6 Uncompressed Size     00000000 (0)\n-2158DA Filename Length       001D (29)\n-2158DC Extra Length          0009 (9)\n-2158DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2158DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2158FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2158FD   Length              0005 (5)\n-2158FF   Flags               01 (1) 'Modification'\n-215900   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-215904 LOCAL HEADER #721     04034B50 (67324752)\n-215908 Extract Zip Spec      14 (20) '2.0'\n-215909 Extract OS            00 (0) 'MS-DOS'\n-21590A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21590C Compression Method    0000 (0) 'Stored'\n-21590E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-215912 CRC                   00000000 (0)\n-215916 Compressed Size       00000000 (0)\n-21591A Uncompressed Size     00000000 (0)\n-21591E Filename Length       002D (45)\n-215920 Extra Length          0009 (9)\n-215922 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x215922: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21594F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-215951   Length              0005 (5)\n-215953   Flags               01 (1) 'Modification'\n-215954   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-215958 PAYLOAD\n-\n-21625A DATA DESCRIPTOR       08074B50 (134695760)\n-21625E CRC                   99C9FFC3 (2580152259)\n-216262 Compressed Size       00000902 (2306)\n-216266 Uncompressed Size     00000902 (2306)\n-\n-21626A LOCAL HEADER #722     04034B50 (67324752)\n-21626E Extract Zip Spec      14 (20) '2.0'\n-21626F Extract OS            00 (0) 'MS-DOS'\n-216270 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-216272 Compression Method    0000 (0) 'Stored'\n-216274 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-216278 CRC                   00000000 (0)\n-21627C Compressed Size       00000000 (0)\n-216280 Uncompressed Size     00000000 (0)\n-216284 Filename Length       0036 (54)\n-216286 Extra Length          0009 (9)\n-216288 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x216288: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2162BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2162C0   Length              0005 (5)\n-2162C2   Flags               01 (1) 'Modification'\n-2162C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2162C7 PAYLOAD\n-\n-21674F DATA DESCRIPTOR       08074B50 (134695760)\n-216753 CRC                   C53EC878 (3309226104)\n-216757 Compressed Size       00000488 (1160)\n-21675B Uncompressed Size     00000488 (1160)\n-\n-21675F LOCAL HEADER #723     04034B50 (67324752)\n-216763 Extract Zip Spec      14 (20) '2.0'\n-216764 Extract OS            00 (0) 'MS-DOS'\n-216765 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-216767 Compression Method    0000 (0) 'Stored'\n-216769 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21676D CRC                   00000000 (0)\n-216771 Compressed Size       00000000 (0)\n-216775 Uncompressed Size     00000000 (0)\n-216779 Filename Length       0037 (55)\n-21677B Extra Length          0009 (9)\n-21677D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21677D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2167B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2167B6   Length              0005 (5)\n-2167B8   Flags               01 (1) 'Modification'\n-2167B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2167BD PAYLOAD\n-\n-2170DD DATA DESCRIPTOR       08074B50 (134695760)\n-2170E1 CRC                   8EF8ABEC (2398661612)\n-2170E5 Compressed Size       00000920 (2336)\n-2170E9 Uncompressed Size     00000920 (2336)\n-\n-2170ED LOCAL HEADER #724     04034B50 (67324752)\n-2170F1 Extract Zip Spec      14 (20) '2.0'\n-2170F2 Extract OS            00 (0) 'MS-DOS'\n-2170F3 General Purpose Flag  0000 (0)\n-2170F5 Compression Method    0000 (0) 'Stored'\n-2170F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2170FB CRC                   00000000 (0)\n-2170FF Compressed Size       00000000 (0)\n-217103 Uncompressed Size     00000000 (0)\n-217107 Filename Length       001F (31)\n-217109 Extra Length          0009 (9)\n-21710B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21710B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21712A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21712C   Length              0005 (5)\n-21712E   Flags               01 (1) 'Modification'\n-21712F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-217133 LOCAL HEADER #725     04034B50 (67324752)\n-217137 Extract Zip Spec      14 (20) '2.0'\n-217138 Extract OS            00 (0) 'MS-DOS'\n-217139 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21713B Compression Method    0000 (0) 'Stored'\n-21713D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-217141 CRC                   00000000 (0)\n-217145 Compressed Size       00000000 (0)\n-217149 Uncompressed Size     00000000 (0)\n-21714D Filename Length       0029 (41)\n-21714F Extra Length          0009 (9)\n-217151 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x217151: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21717A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21717C   Length              0005 (5)\n-21717E   Flags               01 (1) 'Modification'\n-21717F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-217183 PAYLOAD\n-\n-217641 DATA DESCRIPTOR       08074B50 (134695760)\n-217645 CRC                   9D821087 (2642546823)\n-217649 Compressed Size       000004BE (1214)\n-21764D Uncompressed Size     000004BE (1214)\n-\n-217651 LOCAL HEADER #726     04034B50 (67324752)\n-217655 Extract Zip Spec      14 (20) '2.0'\n-217656 Extract OS            00 (0) 'MS-DOS'\n-217657 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-217659 Compression Method    0000 (0) 'Stored'\n-21765B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21765F CRC                   00000000 (0)\n-217663 Compressed Size       00000000 (0)\n-217667 Uncompressed Size     00000000 (0)\n-21766B Filename Length       002A (42)\n-21766D Extra Length          0009 (9)\n-21766F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21766F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-217699 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21769B   Length              0005 (5)\n-21769D   Flags               01 (1) 'Modification'\n-21769E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2176A2 PAYLOAD\n-\n-21857A DATA DESCRIPTOR       08074B50 (134695760)\n-21857E CRC                   7A6DF346 (2054026054)\n-218582 Compressed Size       00000ED8 (3800)\n-218586 Uncompressed Size     00000ED8 (3800)\n-\n-21858A LOCAL HEADER #727     04034B50 (67324752)\n-21858E Extract Zip Spec      14 (20) '2.0'\n-21858F Extract OS            00 (0) 'MS-DOS'\n-218590 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-218592 Compression Method    0000 (0) 'Stored'\n-218594 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-218598 CRC                   00000000 (0)\n-21859C Compressed Size       00000000 (0)\n-2185A0 Uncompressed Size     00000000 (0)\n-2185A4 Filename Length       0031 (49)\n-2185A6 Extra Length          0009 (9)\n-2185A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2185A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2185D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2185DB   Length              0005 (5)\n-2185DD   Flags               01 (1) 'Modification'\n-2185DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2185E2 PAYLOAD\n-\n-218D27 DATA DESCRIPTOR       08074B50 (134695760)\n-218D2B CRC                   A6EF1A57 (2800687703)\n-218D2F Compressed Size       00000745 (1861)\n-218D33 Uncompressed Size     00000745 (1861)\n-\n-218D37 LOCAL HEADER #728     04034B50 (67324752)\n-218D3B Extract Zip Spec      14 (20) '2.0'\n-218D3C Extract OS            00 (0) 'MS-DOS'\n-218D3D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-218D3F Compression Method    0000 (0) 'Stored'\n-218D41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-218D45 CRC                   00000000 (0)\n-218D49 Compressed Size       00000000 (0)\n-218D4D Uncompressed Size     00000000 (0)\n-218D51 Filename Length       0031 (49)\n-218D53 Extra Length          0009 (9)\n-218D55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x218D55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-218D86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-218D88   Length              0005 (5)\n-218D8A   Flags               01 (1) 'Modification'\n-218D8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-218D8F PAYLOAD\n-\n-21A214 DATA DESCRIPTOR       08074B50 (134695760)\n-21A218 CRC                   626EDC3E (1651432510)\n-21A21C Compressed Size       00001485 (5253)\n-21A220 Uncompressed Size     00001485 (5253)\n-\n-21A224 LOCAL HEADER #729     04034B50 (67324752)\n-21A228 Extract Zip Spec      14 (20) '2.0'\n-21A229 Extract OS            00 (0) 'MS-DOS'\n-21A22A General Purpose Flag  0000 (0)\n-21A22C Compression Method    0000 (0) 'Stored'\n-21A22E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21A232 CRC                   00000000 (0)\n-21A236 Compressed Size       00000000 (0)\n-21A23A Uncompressed Size     00000000 (0)\n-21A23E Filename Length       0023 (35)\n-21A240 Extra Length          0009 (9)\n-21A242 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21A242: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21A265 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21A267   Length              0005 (5)\n-21A269   Flags               01 (1) 'Modification'\n-21A26A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-21A26E LOCAL HEADER #730     04034B50 (67324752)\n-21A272 Extract Zip Spec      14 (20) '2.0'\n-21A273 Extract OS            00 (0) 'MS-DOS'\n-21A274 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21A276 Compression Method    0000 (0) 'Stored'\n-21A278 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21A27C CRC                   00000000 (0)\n-21A280 Compressed Size       00000000 (0)\n-21A284 Uncompressed Size     00000000 (0)\n-21A288 Filename Length       0031 (49)\n-21A28A Extra Length          0009 (9)\n-21A28C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21A28C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21A2BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21A2BF   Length              0005 (5)\n-21A2C1   Flags               01 (1) 'Modification'\n-21A2C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21A2C6 PAYLOAD\n-\n-21AFD4 DATA DESCRIPTOR       08074B50 (134695760)\n-21AFD8 CRC                   65EBC1EB (1709949419)\n-21AFDC Compressed Size       00000D0E (3342)\n-21AFE0 Uncompressed Size     00000D0E (3342)\n-\n-21AFE4 LOCAL HEADER #731     04034B50 (67324752)\n-21AFE8 Extract Zip Spec      14 (20) '2.0'\n-21AFE9 Extract OS            00 (0) 'MS-DOS'\n-21AFEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21AFEC Compression Method    0000 (0) 'Stored'\n-21AFEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21AFF2 CRC                   00000000 (0)\n-21AFF6 Compressed Size       00000000 (0)\n-21AFFA Uncompressed Size     00000000 (0)\n-21AFFE Filename Length       0038 (56)\n-21B000 Extra Length          0009 (9)\n-21B002 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21B002: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21B03A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21B03C   Length              0005 (5)\n-21B03E   Flags               01 (1) 'Modification'\n-21B03F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21B043 PAYLOAD\n-\n-21B73B DATA DESCRIPTOR       08074B50 (134695760)\n-21B73F CRC                   006A5B46 (6970182)\n-21B743 Compressed Size       000006F8 (1784)\n-21B747 Uncompressed Size     000006F8 (1784)\n-\n-21B74B LOCAL HEADER #732     04034B50 (67324752)\n-21B74F Extract Zip Spec      14 (20) '2.0'\n-21B750 Extract OS            00 (0) 'MS-DOS'\n-21B751 General Purpose Flag  0000 (0)\n-21B753 Compression Method    0000 (0) 'Stored'\n-21B755 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21B759 CRC                   00000000 (0)\n-21B75D Compressed Size       00000000 (0)\n-21B761 Uncompressed Size     00000000 (0)\n-21B765 Filename Length       0023 (35)\n-21B767 Extra Length          0009 (9)\n-21B769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21B769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21B78C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21B78E   Length              0005 (5)\n-21B790   Flags               01 (1) 'Modification'\n-21B791   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-21B795 LOCAL HEADER #733     04034B50 (67324752)\n-21B799 Extract Zip Spec      14 (20) '2.0'\n-21B79A Extract OS            00 (0) 'MS-DOS'\n-21B79B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21B79D Compression Method    0000 (0) 'Stored'\n-21B79F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21B7A3 CRC                   00000000 (0)\n-21B7A7 Compressed Size       00000000 (0)\n-21B7AB Uncompressed Size     00000000 (0)\n-21B7AF Filename Length       0031 (49)\n-21B7B1 Extra Length          0009 (9)\n-21B7B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21B7B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21B7E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21B7E6   Length              0005 (5)\n-21B7E8   Flags               01 (1) 'Modification'\n-21B7E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21B7ED PAYLOAD\n-\n-21C508 DATA DESCRIPTOR       08074B50 (134695760)\n-21C50C CRC                   8FD172CF (2412868303)\n-21C510 Compressed Size       00000D1B (3355)\n-21C514 Uncompressed Size     00000D1B (3355)\n-\n-21C518 LOCAL HEADER #734     04034B50 (67324752)\n-21C51C Extract Zip Spec      14 (20) '2.0'\n-21C51D Extract OS            00 (0) 'MS-DOS'\n-21C51E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21C520 Compression Method    0000 (0) 'Stored'\n-21C522 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21C526 CRC                   00000000 (0)\n-21C52A Compressed Size       00000000 (0)\n-21C52E Uncompressed Size     00000000 (0)\n-21C532 Filename Length       0038 (56)\n-21C534 Extra Length          0009 (9)\n-21C536 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21C536: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21C56E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21C570   Length              0005 (5)\n-21C572   Flags               01 (1) 'Modification'\n-21C573   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21C577 PAYLOAD\n-\n-21D873 DATA DESCRIPTOR       08074B50 (134695760)\n-21D877 CRC                   7ADBDBE0 (2061229024)\n-21D87B Compressed Size       000012FC (4860)\n-21D87F Uncompressed Size     000012FC (4860)\n-\n-21D883 LOCAL HEADER #735     04034B50 (67324752)\n-21D887 Extract Zip Spec      14 (20) '2.0'\n-21D888 Extract OS            00 (0) 'MS-DOS'\n-21D889 General Purpose Flag  0000 (0)\n-21D88B Compression Method    0000 (0) 'Stored'\n-21D88D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21D891 CRC                   00000000 (0)\n-21D895 Compressed Size       00000000 (0)\n-21D899 Uncompressed Size     00000000 (0)\n-21D89D Filename Length       0025 (37)\n-21D89F Extra Length          0009 (9)\n-21D8A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21D8A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21D8C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21D8C8   Length              0005 (5)\n-21D8CA   Flags               01 (1) 'Modification'\n-21D8CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-21D8CF LOCAL HEADER #736     04034B50 (67324752)\n-21D8D3 Extract Zip Spec      14 (20) '2.0'\n-21D8D4 Extract OS            00 (0) 'MS-DOS'\n-21D8D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21D8D7 Compression Method    0000 (0) 'Stored'\n-21D8D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21D8DD CRC                   00000000 (0)\n-21D8E1 Compressed Size       00000000 (0)\n-21D8E5 Uncompressed Size     00000000 (0)\n-21D8E9 Filename Length       0035 (53)\n-21D8EB Extra Length          0009 (9)\n-21D8ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21D8ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21D922 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21D924   Length              0005 (5)\n-21D926   Flags               01 (1) 'Modification'\n-21D927   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21D92B PAYLOAD\n-\n-21E78C DATA DESCRIPTOR       08074B50 (134695760)\n-21E790 CRC                   0237005F (37159007)\n-21E794 Compressed Size       00000E61 (3681)\n-21E798 Uncompressed Size     00000E61 (3681)\n-\n-21E79C LOCAL HEADER #737     04034B50 (67324752)\n-21E7A0 Extract Zip Spec      14 (20) '2.0'\n-21E7A1 Extract OS            00 (0) 'MS-DOS'\n-21E7A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21E7A4 Compression Method    0000 (0) 'Stored'\n-21E7A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21E7AA CRC                   00000000 (0)\n-21E7AE Compressed Size       00000000 (0)\n-21E7B2 Uncompressed Size     00000000 (0)\n-21E7B6 Filename Length       003C (60)\n-21E7B8 Extra Length          0009 (9)\n-21E7BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21E7BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21E7F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21E7F8   Length              0005 (5)\n-21E7FA   Flags               01 (1) 'Modification'\n-21E7FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21E7FF PAYLOAD\n-\n-21F8CB DATA DESCRIPTOR       08074B50 (134695760)\n-21F8CF CRC                   CE737695 (3463673493)\n-21F8D3 Compressed Size       000010CC (4300)\n-21F8D7 Uncompressed Size     000010CC (4300)\n-\n-21F8DB LOCAL HEADER #738     04034B50 (67324752)\n-21F8DF Extract Zip Spec      14 (20) '2.0'\n-21F8E0 Extract OS            00 (0) 'MS-DOS'\n-21F8E1 General Purpose Flag  0000 (0)\n-21F8E3 Compression Method    0000 (0) 'Stored'\n-21F8E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21F8E9 CRC                   00000000 (0)\n-21F8ED Compressed Size       00000000 (0)\n-21F8F1 Uncompressed Size     00000000 (0)\n-21F8F5 Filename Length       0026 (38)\n-21F8F7 Extra Length          0009 (9)\n-21F8F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21F8F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21F91F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21F921   Length              0005 (5)\n-21F923   Flags               01 (1) 'Modification'\n-21F924   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-21F928 LOCAL HEADER #739     04034B50 (67324752)\n-21F92C Extract Zip Spec      14 (20) '2.0'\n-21F92D Extract OS            00 (0) 'MS-DOS'\n-21F92E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-21F930 Compression Method    0000 (0) 'Stored'\n-21F932 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-21F936 CRC                   00000000 (0)\n-21F93A Compressed Size       00000000 (0)\n-21F93E Uncompressed Size     00000000 (0)\n-21F942 Filename Length       0037 (55)\n-21F944 Extra Length          0009 (9)\n-21F946 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x21F946: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-21F97D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-21F97F   Length              0005 (5)\n-21F981   Flags               01 (1) 'Modification'\n-21F982   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-21F986 PAYLOAD\n-\n-22061E DATA DESCRIPTOR       08074B50 (134695760)\n-220622 CRC                   719AAFB0 (1905962928)\n-220626 Compressed Size       00000C98 (3224)\n-22062A Uncompressed Size     00000C98 (3224)\n-\n-22062E LOCAL HEADER #740     04034B50 (67324752)\n-220632 Extract Zip Spec      14 (20) '2.0'\n-220633 Extract OS            00 (0) 'MS-DOS'\n-220634 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-220636 Compression Method    0000 (0) 'Stored'\n-220638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22063C CRC                   00000000 (0)\n-220640 Compressed Size       00000000 (0)\n-220644 Uncompressed Size     00000000 (0)\n-220648 Filename Length       003E (62)\n-22064A Extra Length          0009 (9)\n-22064C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22064C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22068A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22068C   Length              0005 (5)\n-22068E   Flags               01 (1) 'Modification'\n-22068F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-220693 PAYLOAD\n-\n-221380 DATA DESCRIPTOR       08074B50 (134695760)\n-221384 CRC                   B7D93D08 (3084467464)\n-221388 Compressed Size       00000CED (3309)\n-22138C Uncompressed Size     00000CED (3309)\n-\n-221390 LOCAL HEADER #741     04034B50 (67324752)\n-221394 Extract Zip Spec      14 (20) '2.0'\n-221395 Extract OS            00 (0) 'MS-DOS'\n-221396 General Purpose Flag  0000 (0)\n-221398 Compression Method    0000 (0) 'Stored'\n-22139A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22139E CRC                   00000000 (0)\n-2213A2 Compressed Size       00000000 (0)\n-2213A6 Uncompressed Size     00000000 (0)\n-2213AA Filename Length       0025 (37)\n-2213AC Extra Length          0009 (9)\n-2213AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2213AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2213D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2213D5   Length              0005 (5)\n-2213D7   Flags               01 (1) 'Modification'\n-2213D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2213DC LOCAL HEADER #742     04034B50 (67324752)\n-2213E0 Extract Zip Spec      14 (20) '2.0'\n-2213E1 Extract OS            00 (0) 'MS-DOS'\n-2213E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2213E4 Compression Method    0000 (0) 'Stored'\n-2213E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2213EA CRC                   00000000 (0)\n-2213EE Compressed Size       00000000 (0)\n-2213F2 Uncompressed Size     00000000 (0)\n-2213F6 Filename Length       0035 (53)\n-2213F8 Extra Length          0009 (9)\n-2213FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2213FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22142F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-221431   Length              0005 (5)\n-221433   Flags               01 (1) 'Modification'\n-221434   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-221438 PAYLOAD\n-\n-222CAE DATA DESCRIPTOR       08074B50 (134695760)\n-222CB2 CRC                   FD6565BB (4251280827)\n-222CB6 Compressed Size       00001876 (6262)\n-222CBA Uncompressed Size     00001876 (6262)\n-\n-222CBE LOCAL HEADER #743     04034B50 (67324752)\n-222CC2 Extract Zip Spec      14 (20) '2.0'\n-222CC3 Extract OS            00 (0) 'MS-DOS'\n-222CC4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-222CC6 Compression Method    0000 (0) 'Stored'\n-222CC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-222CCC CRC                   00000000 (0)\n-222CD0 Compressed Size       00000000 (0)\n-222CD4 Uncompressed Size     00000000 (0)\n-222CD8 Filename Length       003C (60)\n-222CDA Extra Length          0009 (9)\n-222CDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x222CDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-222D18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-222D1A   Length              0005 (5)\n-222D1C   Flags               01 (1) 'Modification'\n-222D1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-222D21 PAYLOAD\n-\n-223410 DATA DESCRIPTOR       08074B50 (134695760)\n-223414 CRC                   2D853131 (763703601)\n-223418 Compressed Size       000006EF (1775)\n-22341C Uncompressed Size     000006EF (1775)\n-\n-223420 LOCAL HEADER #744     04034B50 (67324752)\n-223424 Extract Zip Spec      14 (20) '2.0'\n-223425 Extract OS            00 (0) 'MS-DOS'\n-223426 General Purpose Flag  0000 (0)\n-223428 Compression Method    0000 (0) 'Stored'\n-22342A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22342E CRC                   00000000 (0)\n-223432 Compressed Size       00000000 (0)\n-223436 Uncompressed Size     00000000 (0)\n-22343A Filename Length       0027 (39)\n-22343C Extra Length          0009 (9)\n-22343E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22343E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-223465 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-223467   Length              0005 (5)\n-223469   Flags               01 (1) 'Modification'\n-22346A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-22346E LOCAL HEADER #745     04034B50 (67324752)\n-223472 Extract Zip Spec      14 (20) '2.0'\n-223473 Extract OS            00 (0) 'MS-DOS'\n-223474 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-223476 Compression Method    0000 (0) 'Stored'\n-223478 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22347C CRC                   00000000 (0)\n-223480 Compressed Size       00000000 (0)\n-223484 Uncompressed Size     00000000 (0)\n-223488 Filename Length       003A (58)\n-22348A Extra Length          0009 (9)\n-22348C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22348C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2234C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2234C8   Length              0005 (5)\n-2234CA   Flags               01 (1) 'Modification'\n-2234CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2234CF PAYLOAD\n-\n-224884 DATA DESCRIPTOR       08074B50 (134695760)\n-224888 CRC                   01B8CE5D (28888669)\n-22488C Compressed Size       000013B5 (5045)\n-224890 Uncompressed Size     000013B5 (5045)\n-\n-224894 LOCAL HEADER #746     04034B50 (67324752)\n-224898 Extract Zip Spec      14 (20) '2.0'\n-224899 Extract OS            00 (0) 'MS-DOS'\n-22489A General Purpose Flag  0000 (0)\n-22489C Compression Method    0000 (0) 'Stored'\n-22489E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2248A2 CRC                   00000000 (0)\n-2248A6 Compressed Size       00000000 (0)\n-2248AA Uncompressed Size     00000000 (0)\n-2248AE Filename Length       0022 (34)\n-2248B0 Extra Length          0009 (9)\n-2248B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2248B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2248D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2248D6   Length              0005 (5)\n-2248D8   Flags               01 (1) 'Modification'\n-2248D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2248DD LOCAL HEADER #747     04034B50 (67324752)\n-2248E1 Extract Zip Spec      14 (20) '2.0'\n-2248E2 Extract OS            00 (0) 'MS-DOS'\n-2248E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2248E5 Compression Method    0000 (0) 'Stored'\n-2248E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2248EB CRC                   00000000 (0)\n-2248EF Compressed Size       00000000 (0)\n-2248F3 Uncompressed Size     00000000 (0)\n-2248F7 Filename Length       0030 (48)\n-2248F9 Extra Length          0009 (9)\n-2248FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2248FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22492B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22492D   Length              0005 (5)\n-22492F   Flags               01 (1) 'Modification'\n-224930   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-224934 PAYLOAD\n-\n-224D57 DATA DESCRIPTOR       08074B50 (134695760)\n-224D5B CRC                   072B28E1 (120269025)\n-224D5F Compressed Size       00000423 (1059)\n-224D63 Uncompressed Size     00000423 (1059)\n-\n-224D67 LOCAL HEADER #748     04034B50 (67324752)\n-224D6B Extract Zip Spec      14 (20) '2.0'\n-224D6C Extract OS            00 (0) 'MS-DOS'\n-224D6D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-224D6F Compression Method    0000 (0) 'Stored'\n-224D71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-224D75 CRC                   00000000 (0)\n-224D79 Compressed Size       00000000 (0)\n-224D7D Uncompressed Size     00000000 (0)\n-224D81 Filename Length       0030 (48)\n-224D83 Extra Length          0009 (9)\n-224D85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x224D85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-224DB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-224DB7   Length              0005 (5)\n-224DB9   Flags               01 (1) 'Modification'\n-224DBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-224DBE PAYLOAD\n-\n-225362 DATA DESCRIPTOR       08074B50 (134695760)\n-225366 CRC                   121EAF1A (304000794)\n-22536A Compressed Size       000005A4 (1444)\n-22536E Uncompressed Size     000005A4 (1444)\n-\n-225372 LOCAL HEADER #749     04034B50 (67324752)\n-225376 Extract Zip Spec      14 (20) '2.0'\n-225377 Extract OS            00 (0) 'MS-DOS'\n-225378 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22537A Compression Method    0000 (0) 'Stored'\n-22537C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-225380 CRC                   00000000 (0)\n-225384 Compressed Size       00000000 (0)\n-225388 Uncompressed Size     00000000 (0)\n-22538C Filename Length       0030 (48)\n-22538E Extra Length          0009 (9)\n-225390 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x225390: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2253C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2253C2   Length              0005 (5)\n-2253C4   Flags               01 (1) 'Modification'\n-2253C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2253C9 PAYLOAD\n-\n-225CB5 DATA DESCRIPTOR       08074B50 (134695760)\n-225CB9 CRC                   9F97C867 (2677524583)\n-225CBD Compressed Size       000008EC (2284)\n-225CC1 Uncompressed Size     000008EC (2284)\n-\n-225CC5 LOCAL HEADER #750     04034B50 (67324752)\n-225CC9 Extract Zip Spec      14 (20) '2.0'\n-225CCA Extract OS            00 (0) 'MS-DOS'\n-225CCB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-225CCD Compression Method    0000 (0) 'Stored'\n-225CCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-225CD3 CRC                   00000000 (0)\n-225CD7 Compressed Size       00000000 (0)\n-225CDB Uncompressed Size     00000000 (0)\n-225CDF Filename Length       0031 (49)\n-225CE1 Extra Length          0009 (9)\n-225CE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x225CE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-225D14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-225D16   Length              0005 (5)\n-225D18   Flags               01 (1) 'Modification'\n-225D19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-225D1D PAYLOAD\n-\n-2267D2 DATA DESCRIPTOR       08074B50 (134695760)\n-2267D6 CRC                   BCDD8DC5 (3168636357)\n-2267DA Compressed Size       00000AB5 (2741)\n-2267DE Uncompressed Size     00000AB5 (2741)\n-\n-2267E2 LOCAL HEADER #751     04034B50 (67324752)\n-2267E6 Extract Zip Spec      14 (20) '2.0'\n-2267E7 Extract OS            00 (0) 'MS-DOS'\n-2267E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2267EA Compression Method    0000 (0) 'Stored'\n-2267EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2267F0 CRC                   00000000 (0)\n-2267F4 Compressed Size       00000000 (0)\n-2267F8 Uncompressed Size     00000000 (0)\n-2267FC Filename Length       0032 (50)\n-2267FE Extra Length          0009 (9)\n-226800 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x226800: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-226832 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-226834   Length              0005 (5)\n-226836   Flags               01 (1) 'Modification'\n-226837   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22683B PAYLOAD\n-\n-22758F DATA DESCRIPTOR       08074B50 (134695760)\n-227593 CRC                   F1A78E98 (4054290072)\n-227597 Compressed Size       00000D54 (3412)\n-22759B Uncompressed Size     00000D54 (3412)\n-\n-22759F LOCAL HEADER #752     04034B50 (67324752)\n-2275A3 Extract Zip Spec      14 (20) '2.0'\n-2275A4 Extract OS            00 (0) 'MS-DOS'\n-2275A5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2275A7 Compression Method    0000 (0) 'Stored'\n-2275A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2275AD CRC                   00000000 (0)\n-2275B1 Compressed Size       00000000 (0)\n-2275B5 Uncompressed Size     00000000 (0)\n-2275B9 Filename Length       0033 (51)\n-2275BB Extra Length          0009 (9)\n-2275BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2275BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2275F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2275F2   Length              0005 (5)\n-2275F4   Flags               01 (1) 'Modification'\n-2275F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2275F9 PAYLOAD\n-\n-227EE2 DATA DESCRIPTOR       08074B50 (134695760)\n-227EE6 CRC                   CA608B45 (3395324741)\n-227EEA Compressed Size       000008E9 (2281)\n-227EEE Uncompressed Size     000008E9 (2281)\n-\n-227EF2 LOCAL HEADER #753     04034B50 (67324752)\n-227EF6 Extract Zip Spec      14 (20) '2.0'\n-227EF7 Extract OS            00 (0) 'MS-DOS'\n-227EF8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-227EFA Compression Method    0000 (0) 'Stored'\n-227EFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-227F00 CRC                   00000000 (0)\n-227F04 Compressed Size       00000000 (0)\n-227F08 Uncompressed Size     00000000 (0)\n-227F0C Filename Length       0034 (52)\n-227F0E Extra Length          0009 (9)\n-227F10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x227F10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-227F44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-227F46   Length              0005 (5)\n-227F48   Flags               01 (1) 'Modification'\n-227F49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-227F4D PAYLOAD\n-\n-228924 DATA DESCRIPTOR       08074B50 (134695760)\n-228928 CRC                   04921C47 (76684359)\n-22892C Compressed Size       000009D7 (2519)\n-228930 Uncompressed Size     000009D7 (2519)\n-\n-228934 LOCAL HEADER #754     04034B50 (67324752)\n-228938 Extract Zip Spec      14 (20) '2.0'\n-228939 Extract OS            00 (0) 'MS-DOS'\n-22893A General Purpose Flag  0000 (0)\n-22893C Compression Method    0000 (0) 'Stored'\n-22893E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-228942 CRC                   00000000 (0)\n-228946 Compressed Size       00000000 (0)\n-22894A Uncompressed Size     00000000 (0)\n-22894E Filename Length       0027 (39)\n-228950 Extra Length          0009 (9)\n-228952 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x228952: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-228979 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22897B   Length              0005 (5)\n-22897D   Flags               01 (1) 'Modification'\n-22897E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-228982 LOCAL HEADER #755     04034B50 (67324752)\n-228986 Extract Zip Spec      14 (20) '2.0'\n-228987 Extract OS            00 (0) 'MS-DOS'\n-228988 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22898A Compression Method    0000 (0) 'Stored'\n-22898C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-228990 CRC                   00000000 (0)\n-228994 Compressed Size       00000000 (0)\n-228998 Uncompressed Size     00000000 (0)\n-22899C Filename Length       003B (59)\n-22899E Extra Length          0009 (9)\n-2289A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2289A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2289DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2289DD   Length              0005 (5)\n-2289DF   Flags               01 (1) 'Modification'\n-2289E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2289E4 PAYLOAD\n-\n-229878 DATA DESCRIPTOR       08074B50 (134695760)\n-22987C CRC                   3E0609F4 (1040583156)\n-229880 Compressed Size       00000E94 (3732)\n-229884 Uncompressed Size     00000E94 (3732)\n-\n-229888 LOCAL HEADER #756     04034B50 (67324752)\n-22988C Extract Zip Spec      14 (20) '2.0'\n-22988D Extract OS            00 (0) 'MS-DOS'\n-22988E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-229890 Compression Method    0000 (0) 'Stored'\n-229892 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-229896 CRC                   00000000 (0)\n-22989A Compressed Size       00000000 (0)\n-22989E Uncompressed Size     00000000 (0)\n-2298A2 Filename Length       003C (60)\n-2298A4 Extra Length          0009 (9)\n-2298A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2298A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2298E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2298E4   Length              0005 (5)\n-2298E6   Flags               01 (1) 'Modification'\n-2298E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2298EB PAYLOAD\n-\n-22A5BA DATA DESCRIPTOR       08074B50 (134695760)\n-22A5BE CRC                   99ADAD26 (2578296102)\n-22A5C2 Compressed Size       00000CCF (3279)\n-22A5C6 Uncompressed Size     00000CCF (3279)\n-\n-22A5CA LOCAL HEADER #757     04034B50 (67324752)\n-22A5CE Extract Zip Spec      14 (20) '2.0'\n-22A5CF Extract OS            00 (0) 'MS-DOS'\n-22A5D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22A5D2 Compression Method    0000 (0) 'Stored'\n-22A5D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22A5D8 CRC                   00000000 (0)\n-22A5DC Compressed Size       00000000 (0)\n-22A5E0 Uncompressed Size     00000000 (0)\n-22A5E4 Filename Length       003D (61)\n-22A5E6 Extra Length          0009 (9)\n-22A5E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22A5E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22A625 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22A627   Length              0005 (5)\n-22A629   Flags               01 (1) 'Modification'\n-22A62A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22A62E PAYLOAD\n-\n-22AD47 DATA DESCRIPTOR       08074B50 (134695760)\n-22AD4B CRC                   61EF883C (1643087932)\n-22AD4F Compressed Size       00000719 (1817)\n-22AD53 Uncompressed Size     00000719 (1817)\n-\n-22AD57 LOCAL HEADER #758     04034B50 (67324752)\n-22AD5B Extract Zip Spec      14 (20) '2.0'\n-22AD5C Extract OS            00 (0) 'MS-DOS'\n-22AD5D General Purpose Flag  0000 (0)\n-22AD5F Compression Method    0000 (0) 'Stored'\n-22AD61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22AD65 CRC                   00000000 (0)\n-22AD69 Compressed Size       00000000 (0)\n-22AD6D Uncompressed Size     00000000 (0)\n-22AD71 Filename Length       002B (43)\n-22AD73 Extra Length          0009 (9)\n-22AD75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22AD75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22ADA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22ADA2   Length              0005 (5)\n-22ADA4   Flags               01 (1) 'Modification'\n-22ADA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-22ADA9 LOCAL HEADER #759     04034B50 (67324752)\n-22ADAD Extract Zip Spec      14 (20) '2.0'\n-22ADAE Extract OS            00 (0) 'MS-DOS'\n-22ADAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22ADB1 Compression Method    0000 (0) 'Stored'\n-22ADB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22ADB7 CRC                   00000000 (0)\n-22ADBB Compressed Size       00000000 (0)\n-22ADBF Uncompressed Size     00000000 (0)\n-22ADC3 Filename Length       0043 (67)\n-22ADC5 Extra Length          0009 (9)\n-22ADC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22ADC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22AE0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22AE0C   Length              0005 (5)\n-22AE0E   Flags               01 (1) 'Modification'\n-22AE0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22AE13 PAYLOAD\n-\n-22BB36 DATA DESCRIPTOR       08074B50 (134695760)\n-22BB3A CRC                   313A7353 (825914195)\n-22BB3E Compressed Size       00000D23 (3363)\n-22BB42 Uncompressed Size     00000D23 (3363)\n-\n-22BB46 LOCAL HEADER #760     04034B50 (67324752)\n-22BB4A Extract Zip Spec      14 (20) '2.0'\n-22BB4B Extract OS            00 (0) 'MS-DOS'\n-22BB4C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22BB4E Compression Method    0000 (0) 'Stored'\n-22BB50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22BB54 CRC                   00000000 (0)\n-22BB58 Compressed Size       00000000 (0)\n-22BB5C Uncompressed Size     00000000 (0)\n-22BB60 Filename Length       0044 (68)\n-22BB62 Extra Length          0009 (9)\n-22BB64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22BB64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22BBA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22BBAA   Length              0005 (5)\n-22BBAC   Flags               01 (1) 'Modification'\n-22BBAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22BBB1 PAYLOAD\n-\n-22C894 DATA DESCRIPTOR       08074B50 (134695760)\n-22C898 CRC                   86605046 (2254458950)\n-22C89C Compressed Size       00000CE3 (3299)\n-22C8A0 Uncompressed Size     00000CE3 (3299)\n-\n-22C8A4 LOCAL HEADER #761     04034B50 (67324752)\n-22C8A8 Extract Zip Spec      14 (20) '2.0'\n-22C8A9 Extract OS            00 (0) 'MS-DOS'\n-22C8AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22C8AC Compression Method    0000 (0) 'Stored'\n-22C8AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22C8B2 CRC                   00000000 (0)\n-22C8B6 Compressed Size       00000000 (0)\n-22C8BA Uncompressed Size     00000000 (0)\n-22C8BE Filename Length       0045 (69)\n-22C8C0 Extra Length          0009 (9)\n-22C8C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22C8C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22C907 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22C909   Length              0005 (5)\n-22C90B   Flags               01 (1) 'Modification'\n-22C90C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22C910 PAYLOAD\n-\n-22D090 DATA DESCRIPTOR       08074B50 (134695760)\n-22D094 CRC                   4FF68747 (1341556551)\n-22D098 Compressed Size       00000780 (1920)\n-22D09C Uncompressed Size     00000780 (1920)\n-\n-22D0A0 LOCAL HEADER #762     04034B50 (67324752)\n-22D0A4 Extract Zip Spec      14 (20) '2.0'\n-22D0A5 Extract OS            00 (0) 'MS-DOS'\n-22D0A6 General Purpose Flag  0000 (0)\n-22D0A8 Compression Method    0000 (0) 'Stored'\n-22D0AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22D0AE CRC                   00000000 (0)\n-22D0B2 Compressed Size       00000000 (0)\n-22D0B6 Uncompressed Size     00000000 (0)\n-22D0BA Filename Length       0026 (38)\n-22D0BC Extra Length          0009 (9)\n-22D0BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22D0BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22D0E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22D0E6   Length              0005 (5)\n-22D0E8   Flags               01 (1) 'Modification'\n-22D0E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-22D0ED LOCAL HEADER #763     04034B50 (67324752)\n-22D0F1 Extract Zip Spec      14 (20) '2.0'\n-22D0F2 Extract OS            00 (0) 'MS-DOS'\n-22D0F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22D0F5 Compression Method    0000 (0) 'Stored'\n-22D0F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22D0FB CRC                   00000000 (0)\n-22D0FF Compressed Size       00000000 (0)\n-22D103 Uncompressed Size     00000000 (0)\n-22D107 Filename Length       0035 (53)\n-22D109 Extra Length          0009 (9)\n-22D10B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22D10B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22D140 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22D142   Length              0005 (5)\n-22D144   Flags               01 (1) 'Modification'\n-22D145   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22D149 PAYLOAD\n-\n-22D86A DATA DESCRIPTOR       08074B50 (134695760)\n-22D86E CRC                   1FDC8762 (534546274)\n-22D872 Compressed Size       00000721 (1825)\n-22D876 Uncompressed Size     00000721 (1825)\n-\n-22D87A LOCAL HEADER #764     04034B50 (67324752)\n-22D87E Extract Zip Spec      14 (20) '2.0'\n-22D87F Extract OS            00 (0) 'MS-DOS'\n-22D880 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22D882 Compression Method    0000 (0) 'Stored'\n-22D884 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22D888 CRC                   00000000 (0)\n-22D88C Compressed Size       00000000 (0)\n-22D890 Uncompressed Size     00000000 (0)\n-22D894 Filename Length       0039 (57)\n-22D896 Extra Length          0009 (9)\n-22D898 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22D898: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22D8D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22D8D3   Length              0005 (5)\n-22D8D5   Flags               01 (1) 'Modification'\n-22D8D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22D8DA PAYLOAD\n-\n-22E5CD DATA DESCRIPTOR       08074B50 (134695760)\n-22E5D1 CRC                   58015D22 (1476484386)\n-22E5D5 Compressed Size       00000CF3 (3315)\n-22E5D9 Uncompressed Size     00000CF3 (3315)\n-\n-22E5DD LOCAL HEADER #765     04034B50 (67324752)\n-22E5E1 Extract Zip Spec      14 (20) '2.0'\n-22E5E2 Extract OS            00 (0) 'MS-DOS'\n-22E5E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22E5E5 Compression Method    0000 (0) 'Stored'\n-22E5E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22E5EB CRC                   00000000 (0)\n-22E5EF Compressed Size       00000000 (0)\n-22E5F3 Uncompressed Size     00000000 (0)\n-22E5F7 Filename Length       003A (58)\n-22E5F9 Extra Length          0009 (9)\n-22E5FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22E5FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22E635 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22E637   Length              0005 (5)\n-22E639   Flags               01 (1) 'Modification'\n-22E63A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22E63E PAYLOAD\n-\n-22F1A8 DATA DESCRIPTOR       08074B50 (134695760)\n-22F1AC CRC                   5529CB85 (1428802437)\n-22F1B0 Compressed Size       00000B6A (2922)\n-22F1B4 Uncompressed Size     00000B6A (2922)\n-\n-22F1B8 LOCAL HEADER #766     04034B50 (67324752)\n-22F1BC Extract Zip Spec      14 (20) '2.0'\n-22F1BD Extract OS            00 (0) 'MS-DOS'\n-22F1BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22F1C0 Compression Method    0000 (0) 'Stored'\n-22F1C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22F1C6 CRC                   00000000 (0)\n-22F1CA Compressed Size       00000000 (0)\n-22F1CE Uncompressed Size     00000000 (0)\n-22F1D2 Filename Length       003B (59)\n-22F1D4 Extra Length          0009 (9)\n-22F1D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22F1D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22F211 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22F213   Length              0005 (5)\n-22F215   Flags               01 (1) 'Modification'\n-22F216   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22F21A PAYLOAD\n-\n-22F96D DATA DESCRIPTOR       08074B50 (134695760)\n-22F971 CRC                   E3E7B767 (3823613799)\n-22F975 Compressed Size       00000753 (1875)\n-22F979 Uncompressed Size     00000753 (1875)\n-\n-22F97D LOCAL HEADER #767     04034B50 (67324752)\n-22F981 Extract Zip Spec      14 (20) '2.0'\n-22F982 Extract OS            00 (0) 'MS-DOS'\n-22F983 General Purpose Flag  0000 (0)\n-22F985 Compression Method    0000 (0) 'Stored'\n-22F987 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22F98B CRC                   00000000 (0)\n-22F98F Compressed Size       00000000 (0)\n-22F993 Uncompressed Size     00000000 (0)\n-22F997 Filename Length       0027 (39)\n-22F999 Extra Length          0009 (9)\n-22F99B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22F99B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22F9C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22F9C4   Length              0005 (5)\n-22F9C6   Flags               01 (1) 'Modification'\n-22F9C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-22F9CB LOCAL HEADER #768     04034B50 (67324752)\n-22F9CF Extract Zip Spec      14 (20) '2.0'\n-22F9D0 Extract OS            00 (0) 'MS-DOS'\n-22F9D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-22F9D3 Compression Method    0000 (0) 'Stored'\n-22F9D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-22F9D9 CRC                   00000000 (0)\n-22F9DD Compressed Size       00000000 (0)\n-22F9E1 Uncompressed Size     00000000 (0)\n-22F9E5 Filename Length       003F (63)\n-22F9E7 Extra Length          0009 (9)\n-22F9E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x22F9E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-22FA28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-22FA2A   Length              0005 (5)\n-22FA2C   Flags               01 (1) 'Modification'\n-22FA2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-22FA31 PAYLOAD\n-\n-23078A DATA DESCRIPTOR       08074B50 (134695760)\n-23078E CRC                   33751F07 (863313671)\n-230792 Compressed Size       00000D59 (3417)\n-230796 Uncompressed Size     00000D59 (3417)\n-\n-23079A LOCAL HEADER #769     04034B50 (67324752)\n-23079E Extract Zip Spec      14 (20) '2.0'\n-23079F Extract OS            00 (0) 'MS-DOS'\n-2307A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2307A2 Compression Method    0000 (0) 'Stored'\n-2307A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2307A8 CRC                   00000000 (0)\n-2307AC Compressed Size       00000000 (0)\n-2307B0 Uncompressed Size     00000000 (0)\n-2307B4 Filename Length       0040 (64)\n-2307B6 Extra Length          0009 (9)\n-2307B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2307B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2307F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2307FA   Length              0005 (5)\n-2307FC   Flags               01 (1) 'Modification'\n-2307FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-230801 PAYLOAD\n-\n-231339 DATA DESCRIPTOR       08074B50 (134695760)\n-23133D CRC                   B2B54D61 (2998226273)\n-231341 Compressed Size       00000B38 (2872)\n-231345 Uncompressed Size     00000B38 (2872)\n-\n-231349 LOCAL HEADER #770     04034B50 (67324752)\n-23134D Extract Zip Spec      14 (20) '2.0'\n-23134E Extract OS            00 (0) 'MS-DOS'\n-23134F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-231351 Compression Method    0000 (0) 'Stored'\n-231353 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-231357 CRC                   00000000 (0)\n-23135B Compressed Size       00000000 (0)\n-23135F Uncompressed Size     00000000 (0)\n-231363 Filename Length       003D (61)\n-231365 Extra Length          0009 (9)\n-231367 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x231367: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2313A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2313A6   Length              0005 (5)\n-2313A8   Flags               01 (1) 'Modification'\n-2313A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2313AD PAYLOAD\n-\n-231A99 DATA DESCRIPTOR       08074B50 (134695760)\n-231A9D CRC                   B5CFC99D (3050293661)\n-231AA1 Compressed Size       000006EC (1772)\n-231AA5 Uncompressed Size     000006EC (1772)\n-\n-231AA9 LOCAL HEADER #771     04034B50 (67324752)\n-231AAD Extract Zip Spec      14 (20) '2.0'\n-231AAE Extract OS            00 (0) 'MS-DOS'\n-231AAF General Purpose Flag  0000 (0)\n-231AB1 Compression Method    0000 (0) 'Stored'\n-231AB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-231AB7 CRC                   00000000 (0)\n-231ABB Compressed Size       00000000 (0)\n-231ABF Uncompressed Size     00000000 (0)\n-231AC3 Filename Length       002B (43)\n-231AC5 Extra Length          0009 (9)\n-231AC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x231AC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-231AF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-231AF4   Length              0005 (5)\n-231AF6   Flags               01 (1) 'Modification'\n-231AF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-231AFB LOCAL HEADER #772     04034B50 (67324752)\n-231AFF Extract Zip Spec      14 (20) '2.0'\n-231B00 Extract OS            00 (0) 'MS-DOS'\n-231B01 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-231B03 Compression Method    0000 (0) 'Stored'\n-231B05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-231B09 CRC                   00000000 (0)\n-231B0D Compressed Size       00000000 (0)\n-231B11 Uncompressed Size     00000000 (0)\n-231B15 Filename Length       0043 (67)\n-231B17 Extra Length          0009 (9)\n-231B19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x231B19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-231B5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-231B5E   Length              0005 (5)\n-231B60   Flags               01 (1) 'Modification'\n-231B61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-231B65 PAYLOAD\n-\n-2328A9 DATA DESCRIPTOR       08074B50 (134695760)\n-2328AD CRC                   D5F6B94F (3589716303)\n-2328B1 Compressed Size       00000D44 (3396)\n-2328B5 Uncompressed Size     00000D44 (3396)\n-\n-2328B9 LOCAL HEADER #773     04034B50 (67324752)\n-2328BD Extract Zip Spec      14 (20) '2.0'\n-2328BE Extract OS            00 (0) 'MS-DOS'\n-2328BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2328C1 Compression Method    0000 (0) 'Stored'\n-2328C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2328C7 CRC                   00000000 (0)\n-2328CB Compressed Size       00000000 (0)\n-2328CF Uncompressed Size     00000000 (0)\n-2328D3 Filename Length       0044 (68)\n-2328D5 Extra Length          0009 (9)\n-2328D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2328D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23291B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23291D   Length              0005 (5)\n-23291F   Flags               01 (1) 'Modification'\n-232920   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-232924 PAYLOAD\n-\n-2335EE DATA DESCRIPTOR       08074B50 (134695760)\n-2335F2 CRC                   DDF975D0 (3724113360)\n-2335F6 Compressed Size       00000CCA (3274)\n-2335FA Uncompressed Size     00000CCA (3274)\n-\n-2335FE LOCAL HEADER #774     04034B50 (67324752)\n-233602 Extract Zip Spec      14 (20) '2.0'\n-233603 Extract OS            00 (0) 'MS-DOS'\n-233604 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-233606 Compression Method    0000 (0) 'Stored'\n-233608 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23360C CRC                   00000000 (0)\n-233610 Compressed Size       00000000 (0)\n-233614 Uncompressed Size     00000000 (0)\n-233618 Filename Length       0045 (69)\n-23361A Extra Length          0009 (9)\n-23361C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23361C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-233661 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-233663   Length              0005 (5)\n-233665   Flags               01 (1) 'Modification'\n-233666   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23366A PAYLOAD\n-\n-233E25 DATA DESCRIPTOR       08074B50 (134695760)\n-233E29 CRC                   B8EAACB4 (3102387380)\n-233E2D Compressed Size       000007BB (1979)\n-233E31 Uncompressed Size     000007BB (1979)\n-\n-233E35 LOCAL HEADER #775     04034B50 (67324752)\n-233E39 Extract Zip Spec      14 (20) '2.0'\n-233E3A Extract OS            00 (0) 'MS-DOS'\n-233E3B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-233E3D Compression Method    0000 (0) 'Stored'\n-233E3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-233E43 CRC                   00000000 (0)\n-233E47 Compressed Size       00000000 (0)\n-233E4B Uncompressed Size     00000000 (0)\n-233E4F Filename Length       0049 (73)\n-233E51 Extra Length          0009 (9)\n-233E53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x233E53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-233E9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-233E9E   Length              0005 (5)\n-233EA0   Flags               01 (1) 'Modification'\n-233EA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-233EA5 PAYLOAD\n-\n-23432C DATA DESCRIPTOR       08074B50 (134695760)\n-234330 CRC                   A762DB85 (2808273797)\n-234334 Compressed Size       00000487 (1159)\n-234338 Uncompressed Size     00000487 (1159)\n-\n-23433C LOCAL HEADER #776     04034B50 (67324752)\n-234340 Extract Zip Spec      14 (20) '2.0'\n-234341 Extract OS            00 (0) 'MS-DOS'\n-234342 General Purpose Flag  0000 (0)\n-234344 Compression Method    0000 (0) 'Stored'\n-234346 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23434A CRC                   00000000 (0)\n-23434E Compressed Size       00000000 (0)\n-234352 Uncompressed Size     00000000 (0)\n-234356 Filename Length       0031 (49)\n-234358 Extra Length          0009 (9)\n-23435A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23435A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23438B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23438D   Length              0005 (5)\n-23438F   Flags               01 (1) 'Modification'\n-234390   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-234394 LOCAL HEADER #777     04034B50 (67324752)\n-234398 Extract Zip Spec      14 (20) '2.0'\n-234399 Extract OS            00 (0) 'MS-DOS'\n-23439A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23439C Compression Method    0000 (0) 'Stored'\n-23439E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2343A2 CRC                   00000000 (0)\n-2343A6 Compressed Size       00000000 (0)\n-2343AA Uncompressed Size     00000000 (0)\n-2343AE Filename Length       0058 (88)\n-2343B0 Extra Length          0009 (9)\n-2343B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2343B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23440A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23440C   Length              0005 (5)\n-23440E   Flags               01 (1) 'Modification'\n-23440F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-234413 PAYLOAD\n-\n-2349BB DATA DESCRIPTOR       08074B50 (134695760)\n-2349BF CRC                   E10895F0 (3775436272)\n-2349C3 Compressed Size       000005A8 (1448)\n-2349C7 Uncompressed Size     000005A8 (1448)\n-\n-2349CB LOCAL HEADER #778     04034B50 (67324752)\n-2349CF Extract Zip Spec      14 (20) '2.0'\n-2349D0 Extract OS            00 (0) 'MS-DOS'\n-2349D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2349D3 Compression Method    0000 (0) 'Stored'\n-2349D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2349D9 CRC                   00000000 (0)\n-2349DD Compressed Size       00000000 (0)\n-2349E1 Uncompressed Size     00000000 (0)\n-2349E5 Filename Length       0057 (87)\n-2349E7 Extra Length          0009 (9)\n-2349E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2349E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-234A40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-234A42   Length              0005 (5)\n-234A44   Flags               01 (1) 'Modification'\n-234A45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-234A49 PAYLOAD\n-\n-234F0F DATA DESCRIPTOR       08074B50 (134695760)\n-234F13 CRC                   EE1761D8 (3994509784)\n-234F17 Compressed Size       000004C6 (1222)\n-234F1B Uncompressed Size     000004C6 (1222)\n-\n-234F1F LOCAL HEADER #779     04034B50 (67324752)\n-234F23 Extract Zip Spec      14 (20) '2.0'\n-234F24 Extract OS            00 (0) 'MS-DOS'\n-234F25 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-234F27 Compression Method    0000 (0) 'Stored'\n-234F29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-234F2D CRC                   00000000 (0)\n-234F31 Compressed Size       00000000 (0)\n-234F35 Uncompressed Size     00000000 (0)\n-234F39 Filename Length       0050 (80)\n-234F3B Extra Length          0009 (9)\n-234F3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x234F3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-234F8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-234F8F   Length              0005 (5)\n-234F91   Flags               01 (1) 'Modification'\n-234F92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-234F96 PAYLOAD\n-\n-2356BF DATA DESCRIPTOR       08074B50 (134695760)\n-2356C3 CRC                   FCEAC14E (4243243342)\n-2356C7 Compressed Size       00000729 (1833)\n-2356CB Uncompressed Size     00000729 (1833)\n-\n-2356CF LOCAL HEADER #780     04034B50 (67324752)\n-2356D3 Extract Zip Spec      14 (20) '2.0'\n-2356D4 Extract OS            00 (0) 'MS-DOS'\n-2356D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2356D7 Compression Method    0000 (0) 'Stored'\n-2356D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2356DD CRC                   00000000 (0)\n-2356E1 Compressed Size       00000000 (0)\n-2356E5 Uncompressed Size     00000000 (0)\n-2356E9 Filename Length       0059 (89)\n-2356EB Extra Length          0009 (9)\n-2356ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2356ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-235746 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-235748   Length              0005 (5)\n-23574A   Flags               01 (1) 'Modification'\n-23574B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23574F PAYLOAD\n-\n-235FE1 DATA DESCRIPTOR       08074B50 (134695760)\n-235FE5 CRC                   8464A9F5 (2221189621)\n-235FE9 Compressed Size       00000892 (2194)\n-235FED Uncompressed Size     00000892 (2194)\n-\n-235FF1 LOCAL HEADER #781     04034B50 (67324752)\n-235FF5 Extract Zip Spec      14 (20) '2.0'\n-235FF6 Extract OS            00 (0) 'MS-DOS'\n-235FF7 General Purpose Flag  0000 (0)\n-235FF9 Compression Method    0000 (0) 'Stored'\n-235FFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-235FFF CRC                   00000000 (0)\n-236003 Compressed Size       00000000 (0)\n-236007 Uncompressed Size     00000000 (0)\n-23600B Filename Length       0027 (39)\n-23600D Extra Length          0009 (9)\n-23600F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23600F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-236036 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-236038   Length              0005 (5)\n-23603A   Flags               01 (1) 'Modification'\n-23603B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-23603F LOCAL HEADER #782     04034B50 (67324752)\n-236043 Extract Zip Spec      14 (20) '2.0'\n-236044 Extract OS            00 (0) 'MS-DOS'\n-236045 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-236047 Compression Method    0000 (0) 'Stored'\n-236049 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23604D CRC                   00000000 (0)\n-236051 Compressed Size       00000000 (0)\n-236055 Uncompressed Size     00000000 (0)\n-236059 Filename Length       0046 (70)\n-23605B Extra Length          0009 (9)\n-23605D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23605D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2360A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2360A5   Length              0005 (5)\n-2360A7   Flags               01 (1) 'Modification'\n-2360A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2360AC PAYLOAD\n-\n-23684E DATA DESCRIPTOR       08074B50 (134695760)\n-236852 CRC                   77A7867D (2007467645)\n-236856 Compressed Size       000007A2 (1954)\n-23685A Uncompressed Size     000007A2 (1954)\n-\n-23685E LOCAL HEADER #783     04034B50 (67324752)\n-236862 Extract Zip Spec      14 (20) '2.0'\n-236863 Extract OS            00 (0) 'MS-DOS'\n-236864 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-236866 Compression Method    0000 (0) 'Stored'\n-236868 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23686C CRC                   00000000 (0)\n-236870 Compressed Size       00000000 (0)\n-236874 Uncompressed Size     00000000 (0)\n-236878 Filename Length       0046 (70)\n-23687A Extra Length          0009 (9)\n-23687C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23687C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2368C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2368C4   Length              0005 (5)\n-2368C6   Flags               01 (1) 'Modification'\n-2368C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2368CB PAYLOAD\n-\n-2371CC DATA DESCRIPTOR       08074B50 (134695760)\n-2371D0 CRC                   5433235C (1412637532)\n-2371D4 Compressed Size       00000901 (2305)\n-2371D8 Uncompressed Size     00000901 (2305)\n-\n-2371DC LOCAL HEADER #784     04034B50 (67324752)\n-2371E0 Extract Zip Spec      14 (20) '2.0'\n-2371E1 Extract OS            00 (0) 'MS-DOS'\n-2371E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2371E4 Compression Method    0000 (0) 'Stored'\n-2371E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2371EA CRC                   00000000 (0)\n-2371EE Compressed Size       00000000 (0)\n-2371F2 Uncompressed Size     00000000 (0)\n-2371F6 Filename Length       0047 (71)\n-2371F8 Extra Length          0009 (9)\n-2371FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2371FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-237241 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-237243   Length              0005 (5)\n-237245   Flags               01 (1) 'Modification'\n-237246   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23724A PAYLOAD\n-\n-237891 DATA DESCRIPTOR       08074B50 (134695760)\n-237895 CRC                   1A06EC84 (436661380)\n-237899 Compressed Size       00000647 (1607)\n-23789D Uncompressed Size     00000647 (1607)\n-\n-2378A1 LOCAL HEADER #785     04034B50 (67324752)\n-2378A5 Extract Zip Spec      14 (20) '2.0'\n-2378A6 Extract OS            00 (0) 'MS-DOS'\n-2378A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2378A9 Compression Method    0000 (0) 'Stored'\n-2378AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2378AF CRC                   00000000 (0)\n-2378B3 Compressed Size       00000000 (0)\n-2378B7 Uncompressed Size     00000000 (0)\n-2378BB Filename Length       003B (59)\n-2378BD Extra Length          0009 (9)\n-2378BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2378BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2378FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2378FC   Length              0005 (5)\n-2378FE   Flags               01 (1) 'Modification'\n-2378FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-237903 PAYLOAD\n-\n-238487 DATA DESCRIPTOR       08074B50 (134695760)\n-23848B CRC                   EBC07089 (3955257481)\n-23848F Compressed Size       00000B84 (2948)\n-238493 Uncompressed Size     00000B84 (2948)\n-\n-238497 LOCAL HEADER #786     04034B50 (67324752)\n-23849B Extract Zip Spec      14 (20) '2.0'\n-23849C Extract OS            00 (0) 'MS-DOS'\n-23849D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23849F Compression Method    0000 (0) 'Stored'\n-2384A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2384A5 CRC                   00000000 (0)\n-2384A9 Compressed Size       00000000 (0)\n-2384AD Uncompressed Size     00000000 (0)\n-2384B1 Filename Length       003C (60)\n-2384B3 Extra Length          0009 (9)\n-2384B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2384B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2384F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2384F3   Length              0005 (5)\n-2384F5   Flags               01 (1) 'Modification'\n-2384F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2384FA PAYLOAD\n-\n-238D7B DATA DESCRIPTOR       08074B50 (134695760)\n-238D7F CRC                   BE6D297E (3194825086)\n-238D83 Compressed Size       00000881 (2177)\n-238D87 Uncompressed Size     00000881 (2177)\n-\n-238D8B LOCAL HEADER #787     04034B50 (67324752)\n-238D8F Extract Zip Spec      14 (20) '2.0'\n-238D90 Extract OS            00 (0) 'MS-DOS'\n-238D91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-238D93 Compression Method    0000 (0) 'Stored'\n-238D95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-238D99 CRC                   00000000 (0)\n-238D9D Compressed Size       00000000 (0)\n-238DA1 Uncompressed Size     00000000 (0)\n-238DA5 Filename Length       003D (61)\n-238DA7 Extra Length          0009 (9)\n-238DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x238DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-238DE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-238DE8   Length              0005 (5)\n-238DEA   Flags               01 (1) 'Modification'\n-238DEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-238DEF PAYLOAD\n-\n-23954C DATA DESCRIPTOR       08074B50 (134695760)\n-239550 CRC                   AD8F41D0 (2911846864)\n-239554 Compressed Size       0000075D (1885)\n-239558 Uncompressed Size     0000075D (1885)\n-\n-23955C LOCAL HEADER #788     04034B50 (67324752)\n-239560 Extract Zip Spec      14 (20) '2.0'\n-239561 Extract OS            00 (0) 'MS-DOS'\n-239562 General Purpose Flag  0000 (0)\n-239564 Compression Method    0000 (0) 'Stored'\n-239566 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23956A CRC                   00000000 (0)\n-23956E Compressed Size       00000000 (0)\n-239572 Uncompressed Size     00000000 (0)\n-239576 Filename Length       0027 (39)\n-239578 Extra Length          0009 (9)\n-23957A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23957A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2395A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2395A3   Length              0005 (5)\n-2395A5   Flags               01 (1) 'Modification'\n-2395A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2395AA LOCAL HEADER #789     04034B50 (67324752)\n-2395AE Extract Zip Spec      14 (20) '2.0'\n-2395AF Extract OS            00 (0) 'MS-DOS'\n-2395B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2395B2 Compression Method    0000 (0) 'Stored'\n-2395B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2395B8 CRC                   00000000 (0)\n-2395BC Compressed Size       00000000 (0)\n-2395C0 Uncompressed Size     00000000 (0)\n-2395C4 Filename Length       003A (58)\n-2395C6 Extra Length          0009 (9)\n-2395C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2395C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-239602 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-239604   Length              0005 (5)\n-239606   Flags               01 (1) 'Modification'\n-239607   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23960B PAYLOAD\n-\n-23A05A DATA DESCRIPTOR       08074B50 (134695760)\n-23A05E CRC                   96641300 (2523140864)\n-23A062 Compressed Size       00000A4F (2639)\n-23A066 Uncompressed Size     00000A4F (2639)\n-\n-23A06A LOCAL HEADER #790     04034B50 (67324752)\n-23A06E Extract Zip Spec      14 (20) '2.0'\n-23A06F Extract OS            00 (0) 'MS-DOS'\n-23A070 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23A072 Compression Method    0000 (0) 'Stored'\n-23A074 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23A078 CRC                   00000000 (0)\n-23A07C Compressed Size       00000000 (0)\n-23A080 Uncompressed Size     00000000 (0)\n-23A084 Filename Length       003B (59)\n-23A086 Extra Length          0009 (9)\n-23A088 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23A088: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23A0C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23A0C5   Length              0005 (5)\n-23A0C7   Flags               01 (1) 'Modification'\n-23A0C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23A0CC PAYLOAD\n-\n-23B2C2 DATA DESCRIPTOR       08074B50 (134695760)\n-23B2C6 CRC                   70240B76 (1881410422)\n-23B2CA Compressed Size       000011F6 (4598)\n-23B2CE Uncompressed Size     000011F6 (4598)\n-\n-23B2D2 LOCAL HEADER #791     04034B50 (67324752)\n-23B2D6 Extract Zip Spec      14 (20) '2.0'\n-23B2D7 Extract OS            00 (0) 'MS-DOS'\n-23B2D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23B2DA Compression Method    0000 (0) 'Stored'\n-23B2DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23B2E0 CRC                   00000000 (0)\n-23B2E4 Compressed Size       00000000 (0)\n-23B2E8 Uncompressed Size     00000000 (0)\n-23B2EC Filename Length       003C (60)\n-23B2EE Extra Length          0009 (9)\n-23B2F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23B2F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23B32C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23B32E   Length              0005 (5)\n-23B330   Flags               01 (1) 'Modification'\n-23B331   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23B335 PAYLOAD\n-\n-23C01F DATA DESCRIPTOR       08074B50 (134695760)\n-23C023 CRC                   8E4DF810 (2387474448)\n-23C027 Compressed Size       00000CEA (3306)\n-23C02B Uncompressed Size     00000CEA (3306)\n-\n-23C02F LOCAL HEADER #792     04034B50 (67324752)\n-23C033 Extract Zip Spec      14 (20) '2.0'\n-23C034 Extract OS            00 (0) 'MS-DOS'\n-23C035 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23C037 Compression Method    0000 (0) 'Stored'\n-23C039 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23C03D CRC                   00000000 (0)\n-23C041 Compressed Size       00000000 (0)\n-23C045 Uncompressed Size     00000000 (0)\n-23C049 Filename Length       003D (61)\n-23C04B Extra Length          0009 (9)\n-23C04D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23C04D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23C08A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23C08C   Length              0005 (5)\n-23C08E   Flags               01 (1) 'Modification'\n-23C08F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23C093 PAYLOAD\n-\n-23C832 DATA DESCRIPTOR       08074B50 (134695760)\n-23C836 CRC                   BA9B880B (3130755083)\n-23C83A Compressed Size       0000079F (1951)\n-23C83E Uncompressed Size     0000079F (1951)\n-\n-23C842 LOCAL HEADER #793     04034B50 (67324752)\n-23C846 Extract Zip Spec      14 (20) '2.0'\n-23C847 Extract OS            00 (0) 'MS-DOS'\n-23C848 General Purpose Flag  0000 (0)\n-23C84A Compression Method    0000 (0) 'Stored'\n-23C84C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23C850 CRC                   00000000 (0)\n-23C854 Compressed Size       00000000 (0)\n-23C858 Uncompressed Size     00000000 (0)\n-23C85C Filename Length       0031 (49)\n-23C85E Extra Length          0009 (9)\n-23C860 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23C860: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23C891 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23C893   Length              0005 (5)\n-23C895   Flags               01 (1) 'Modification'\n-23C896   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-23C89A LOCAL HEADER #794     04034B50 (67324752)\n-23C89E Extract Zip Spec      14 (20) '2.0'\n-23C89F Extract OS            00 (0) 'MS-DOS'\n-23C8A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23C8A2 Compression Method    0000 (0) 'Stored'\n-23C8A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23C8A8 CRC                   00000000 (0)\n-23C8AC Compressed Size       00000000 (0)\n-23C8B0 Uncompressed Size     00000000 (0)\n-23C8B4 Filename Length       0046 (70)\n-23C8B6 Extra Length          0009 (9)\n-23C8B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23C8B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23C8FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23C900   Length              0005 (5)\n-23C902   Flags               01 (1) 'Modification'\n-23C903   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23C907 PAYLOAD\n-\n-23DBBE DATA DESCRIPTOR       08074B50 (134695760)\n-23DBC2 CRC                   8FAE8E58 (2410581592)\n-23DBC6 Compressed Size       000012B7 (4791)\n-23DBCA Uncompressed Size     000012B7 (4791)\n-\n-23DBCE LOCAL HEADER #795     04034B50 (67324752)\n-23DBD2 Extract Zip Spec      14 (20) '2.0'\n-23DBD3 Extract OS            00 (0) 'MS-DOS'\n-23DBD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23DBD6 Compression Method    0000 (0) 'Stored'\n-23DBD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23DBDC CRC                   00000000 (0)\n-23DBE0 Compressed Size       00000000 (0)\n-23DBE4 Uncompressed Size     00000000 (0)\n-23DBE8 Filename Length       0047 (71)\n-23DBEA Extra Length          0009 (9)\n-23DBEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23DBEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23DC33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23DC35   Length              0005 (5)\n-23DC37   Flags               01 (1) 'Modification'\n-23DC38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23DC3C PAYLOAD\n-\n-23E919 DATA DESCRIPTOR       08074B50 (134695760)\n-23E91D CRC                   49D1BF52 (1238482770)\n-23E921 Compressed Size       00000CDD (3293)\n-23E925 Uncompressed Size     00000CDD (3293)\n-\n-23E929 LOCAL HEADER #796     04034B50 (67324752)\n-23E92D Extract Zip Spec      14 (20) '2.0'\n-23E92E Extract OS            00 (0) 'MS-DOS'\n-23E92F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23E931 Compression Method    0000 (0) 'Stored'\n-23E933 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23E937 CRC                   00000000 (0)\n-23E93B Compressed Size       00000000 (0)\n-23E93F Uncompressed Size     00000000 (0)\n-23E943 Filename Length       0048 (72)\n-23E945 Extra Length          0009 (9)\n-23E947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23E947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23E98F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23E991   Length              0005 (5)\n-23E993   Flags               01 (1) 'Modification'\n-23E994   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23E998 PAYLOAD\n-\n-23F131 DATA DESCRIPTOR       08074B50 (134695760)\n-23F135 CRC                   05BCA175 (96248181)\n-23F139 Compressed Size       00000799 (1945)\n-23F13D Uncompressed Size     00000799 (1945)\n-\n-23F141 LOCAL HEADER #797     04034B50 (67324752)\n-23F145 Extract Zip Spec      14 (20) '2.0'\n-23F146 Extract OS            00 (0) 'MS-DOS'\n-23F147 General Purpose Flag  0000 (0)\n-23F149 Compression Method    0000 (0) 'Stored'\n-23F14B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23F14F CRC                   00000000 (0)\n-23F153 Compressed Size       00000000 (0)\n-23F157 Uncompressed Size     00000000 (0)\n-23F15B Filename Length       002D (45)\n-23F15D Extra Length          0009 (9)\n-23F15F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23F15F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23F18C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23F18E   Length              0005 (5)\n-23F190   Flags               01 (1) 'Modification'\n-23F191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-23F195 LOCAL HEADER #798     04034B50 (67324752)\n-23F199 Extract Zip Spec      14 (20) '2.0'\n-23F19A Extract OS            00 (0) 'MS-DOS'\n-23F19B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-23F19D Compression Method    0000 (0) 'Stored'\n-23F19F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-23F1A3 CRC                   00000000 (0)\n-23F1A7 Compressed Size       00000000 (0)\n-23F1AB Uncompressed Size     00000000 (0)\n-23F1AF Filename Length       0045 (69)\n-23F1B1 Extra Length          0009 (9)\n-23F1B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x23F1B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-23F1F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-23F1FA   Length              0005 (5)\n-23F1FC   Flags               01 (1) 'Modification'\n-23F1FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-23F201 PAYLOAD\n-\n-2408B3 DATA DESCRIPTOR       08074B50 (134695760)\n-2408B7 CRC                   300B4DD6 (806047190)\n-2408BB Compressed Size       000016B2 (5810)\n-2408BF Uncompressed Size     000016B2 (5810)\n-\n-2408C3 LOCAL HEADER #799     04034B50 (67324752)\n-2408C7 Extract Zip Spec      14 (20) '2.0'\n-2408C8 Extract OS            00 (0) 'MS-DOS'\n-2408C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2408CB Compression Method    0000 (0) 'Stored'\n-2408CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2408D1 CRC                   00000000 (0)\n-2408D5 Compressed Size       00000000 (0)\n-2408D9 Uncompressed Size     00000000 (0)\n-2408DD Filename Length       003B (59)\n-2408DF Extra Length          0009 (9)\n-2408E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2408E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24091C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24091E   Length              0005 (5)\n-240920   Flags               01 (1) 'Modification'\n-240921   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-240925 PAYLOAD\n-\n-240F1C DATA DESCRIPTOR       08074B50 (134695760)\n-240F20 CRC                   F7853FBB (4152704955)\n-240F24 Compressed Size       000005F7 (1527)\n-240F28 Uncompressed Size     000005F7 (1527)\n-\n-240F2C LOCAL HEADER #800     04034B50 (67324752)\n-240F30 Extract Zip Spec      14 (20) '2.0'\n-240F31 Extract OS            00 (0) 'MS-DOS'\n-240F32 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-240F34 Compression Method    0000 (0) 'Stored'\n-240F36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-240F3A CRC                   00000000 (0)\n-240F3E Compressed Size       00000000 (0)\n-240F42 Uncompressed Size     00000000 (0)\n-240F46 Filename Length       0043 (67)\n-240F48 Extra Length          0009 (9)\n-240F4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x240F4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-240F8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-240F8F   Length              0005 (5)\n-240F91   Flags               01 (1) 'Modification'\n-240F92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-240F96 PAYLOAD\n-\n-24151B DATA DESCRIPTOR       08074B50 (134695760)\n-24151F CRC                   E7186373 (3877135219)\n-241523 Compressed Size       00000585 (1413)\n-241527 Uncompressed Size     00000585 (1413)\n-\n-24152B LOCAL HEADER #801     04034B50 (67324752)\n-24152F Extract Zip Spec      14 (20) '2.0'\n-241530 Extract OS            00 (0) 'MS-DOS'\n-241531 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-241533 Compression Method    0000 (0) 'Stored'\n-241535 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-241539 CRC                   00000000 (0)\n-24153D Compressed Size       00000000 (0)\n-241541 Uncompressed Size     00000000 (0)\n-241545 Filename Length       0046 (70)\n-241547 Extra Length          0009 (9)\n-241549 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x241549: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24158F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-241591   Length              0005 (5)\n-241593   Flags               01 (1) 'Modification'\n-241594   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-241598 PAYLOAD\n-\n-2419F8 DATA DESCRIPTOR       08074B50 (134695760)\n-2419FC CRC                   AB66324F (2875601487)\n-241A00 Compressed Size       00000460 (1120)\n-241A04 Uncompressed Size     00000460 (1120)\n-\n-241A08 LOCAL HEADER #802     04034B50 (67324752)\n-241A0C Extract Zip Spec      14 (20) '2.0'\n-241A0D Extract OS            00 (0) 'MS-DOS'\n-241A0E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-241A10 Compression Method    0000 (0) 'Stored'\n-241A12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-241A16 CRC                   00000000 (0)\n-241A1A Compressed Size       00000000 (0)\n-241A1E Uncompressed Size     00000000 (0)\n-241A22 Filename Length       0048 (72)\n-241A24 Extra Length          0009 (9)\n-241A26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x241A26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-241A6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-241A70   Length              0005 (5)\n-241A72   Flags               01 (1) 'Modification'\n-241A73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-241A77 PAYLOAD\n-\n-241F8D DATA DESCRIPTOR       08074B50 (134695760)\n-241F91 CRC                   A5D7D6FA (2782385914)\n-241F95 Compressed Size       00000516 (1302)\n-241F99 Uncompressed Size     00000516 (1302)\n-\n-241F9D LOCAL HEADER #803     04034B50 (67324752)\n-241FA1 Extract Zip Spec      14 (20) '2.0'\n-241FA2 Extract OS            00 (0) 'MS-DOS'\n-241FA3 General Purpose Flag  0000 (0)\n-241FA5 Compression Method    0000 (0) 'Stored'\n-241FA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-241FAB CRC                   00000000 (0)\n-241FAF Compressed Size       00000000 (0)\n-241FB3 Uncompressed Size     00000000 (0)\n-241FB7 Filename Length       002D (45)\n-241FB9 Extra Length          0009 (9)\n-241FBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x241FBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-241FE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-241FEA   Length              0005 (5)\n-241FEC   Flags               01 (1) 'Modification'\n-241FED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-241FF1 LOCAL HEADER #804     04034B50 (67324752)\n-241FF5 Extract Zip Spec      14 (20) '2.0'\n-241FF6 Extract OS            00 (0) 'MS-DOS'\n-241FF7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-241FF9 Compression Method    0000 (0) 'Stored'\n-241FFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-241FFF CRC                   00000000 (0)\n-242003 Compressed Size       00000000 (0)\n-242007 Uncompressed Size     00000000 (0)\n-24200B Filename Length       0047 (71)\n-24200D Extra Length          0009 (9)\n-24200F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24200F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-242056 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-242058   Length              0005 (5)\n-24205A   Flags               01 (1) 'Modification'\n-24205B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24205F PAYLOAD\n-\n-242DDD DATA DESCRIPTOR       08074B50 (134695760)\n-242DE1 CRC                   6029E0CC (1613357260)\n-242DE5 Compressed Size       00000D7E (3454)\n-242DE9 Uncompressed Size     00000D7E (3454)\n-\n-242DED LOCAL HEADER #805     04034B50 (67324752)\n-242DF1 Extract Zip Spec      14 (20) '2.0'\n-242DF2 Extract OS            00 (0) 'MS-DOS'\n-242DF3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-242DF5 Compression Method    0000 (0) 'Stored'\n-242DF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-242DFB CRC                   00000000 (0)\n-242DFF Compressed Size       00000000 (0)\n-242E03 Uncompressed Size     00000000 (0)\n-242E07 Filename Length       0048 (72)\n-242E09 Extra Length          0009 (9)\n-242E0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x242E0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-242E53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-242E55   Length              0005 (5)\n-242E57   Flags               01 (1) 'Modification'\n-242E58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-242E5C PAYLOAD\n-\n-243B4A DATA DESCRIPTOR       08074B50 (134695760)\n-243B4E CRC                   5EB75116 (1589072150)\n-243B52 Compressed Size       00000CEE (3310)\n-243B56 Uncompressed Size     00000CEE (3310)\n-\n-243B5A LOCAL HEADER #806     04034B50 (67324752)\n-243B5E Extract Zip Spec      14 (20) '2.0'\n-243B5F Extract OS            00 (0) 'MS-DOS'\n-243B60 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-243B62 Compression Method    0000 (0) 'Stored'\n-243B64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-243B68 CRC                   00000000 (0)\n-243B6C Compressed Size       00000000 (0)\n-243B70 Uncompressed Size     00000000 (0)\n-243B74 Filename Length       0049 (73)\n-243B76 Extra Length          0009 (9)\n-243B78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x243B78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-243BC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-243BC3   Length              0005 (5)\n-243BC5   Flags               01 (1) 'Modification'\n-243BC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-243BCA PAYLOAD\n-\n-24436D DATA DESCRIPTOR       08074B50 (134695760)\n-244371 CRC                   2DE55F52 (770006866)\n-244375 Compressed Size       000007A3 (1955)\n-244379 Uncompressed Size     000007A3 (1955)\n-\n-24437D LOCAL HEADER #807     04034B50 (67324752)\n-244381 Extract Zip Spec      14 (20) '2.0'\n-244382 Extract OS            00 (0) 'MS-DOS'\n-244383 General Purpose Flag  0000 (0)\n-244385 Compression Method    0000 (0) 'Stored'\n-244387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24438B CRC                   00000000 (0)\n-24438F Compressed Size       00000000 (0)\n-244393 Uncompressed Size     00000000 (0)\n-244397 Filename Length       002B (43)\n-244399 Extra Length          0009 (9)\n-24439B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24439B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2443C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2443C8   Length              0005 (5)\n-2443CA   Flags               01 (1) 'Modification'\n-2443CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2443CF LOCAL HEADER #808     04034B50 (67324752)\n-2443D3 Extract Zip Spec      14 (20) '2.0'\n-2443D4 Extract OS            00 (0) 'MS-DOS'\n-2443D5 General Purpose Flag  0000 (0)\n-2443D7 Compression Method    0000 (0) 'Stored'\n-2443D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2443DD CRC                   00000000 (0)\n-2443E1 Compressed Size       00000000 (0)\n-2443E5 Uncompressed Size     00000000 (0)\n-2443E9 Filename Length       0033 (51)\n-2443EB Extra Length          0009 (9)\n-2443ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2443ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-244420 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-244422   Length              0005 (5)\n-244424   Flags               01 (1) 'Modification'\n-244425   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-244429 LOCAL HEADER #809     04034B50 (67324752)\n-24442D Extract Zip Spec      14 (20) '2.0'\n-24442E Extract OS            00 (0) 'MS-DOS'\n-24442F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-244431 Compression Method    0000 (0) 'Stored'\n-244433 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-244437 CRC                   00000000 (0)\n-24443B Compressed Size       00000000 (0)\n-24443F Uncompressed Size     00000000 (0)\n-244443 Filename Length       0056 (86)\n-244445 Extra Length          0009 (9)\n-244447 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x244447: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24449D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24449F   Length              0005 (5)\n-2444A1   Flags               01 (1) 'Modification'\n-2444A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2444A6 PAYLOAD\n-\n-24599D DATA DESCRIPTOR       08074B50 (134695760)\n-2459A1 CRC                   F393F7AB (4086560683)\n-2459A5 Compressed Size       000014F7 (5367)\n-2459A9 Uncompressed Size     000014F7 (5367)\n-\n-2459AD LOCAL HEADER #810     04034B50 (67324752)\n-2459B1 Extract Zip Spec      14 (20) '2.0'\n-2459B2 Extract OS            00 (0) 'MS-DOS'\n-2459B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2459B5 Compression Method    0000 (0) 'Stored'\n-2459B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2459BB CRC                   00000000 (0)\n-2459BF Compressed Size       00000000 (0)\n-2459C3 Uncompressed Size     00000000 (0)\n-2459C7 Filename Length       0057 (87)\n-2459C9 Extra Length          0009 (9)\n-2459CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2459CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-245A22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-245A24   Length              0005 (5)\n-245A26   Flags               01 (1) 'Modification'\n-245A27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-245A2B PAYLOAD\n-\n-246F0B DATA DESCRIPTOR       08074B50 (134695760)\n-246F0F CRC                   836D6DDB (2204986843)\n-246F13 Compressed Size       000014E0 (5344)\n-246F17 Uncompressed Size     000014E0 (5344)\n-\n-246F1B LOCAL HEADER #811     04034B50 (67324752)\n-246F1F Extract Zip Spec      14 (20) '2.0'\n-246F20 Extract OS            00 (0) 'MS-DOS'\n-246F21 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-246F23 Compression Method    0000 (0) 'Stored'\n-246F25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-246F29 CRC                   00000000 (0)\n-246F2D Compressed Size       00000000 (0)\n-246F31 Uncompressed Size     00000000 (0)\n-246F35 Filename Length       0058 (88)\n-246F37 Extra Length          0009 (9)\n-246F39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x246F39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-246F91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-246F93   Length              0005 (5)\n-246F95   Flags               01 (1) 'Modification'\n-246F96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-246F9A PAYLOAD\n-\n-247718 DATA DESCRIPTOR       08074B50 (134695760)\n-24771C CRC                   B1C72E69 (2982620777)\n-247720 Compressed Size       0000077E (1918)\n-247724 Uncompressed Size     0000077E (1918)\n-\n-247728 LOCAL HEADER #812     04034B50 (67324752)\n-24772C Extract Zip Spec      14 (20) '2.0'\n-24772D Extract OS            00 (0) 'MS-DOS'\n-24772E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-247730 Compression Method    0000 (0) 'Stored'\n-247732 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-247736 CRC                   00000000 (0)\n-24773A Compressed Size       00000000 (0)\n-24773E Uncompressed Size     00000000 (0)\n-247742 Filename Length       0052 (82)\n-247744 Extra Length          0009 (9)\n-247746 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x247746: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-247798 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24779A   Length              0005 (5)\n-24779C   Flags               01 (1) 'Modification'\n-24779D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2477A1 PAYLOAD\n-\n-248A49 DATA DESCRIPTOR       08074B50 (134695760)\n-248A4D CRC                   78006A1A (2013293082)\n-248A51 Compressed Size       000012A8 (4776)\n-248A55 Uncompressed Size     000012A8 (4776)\n-\n-248A59 LOCAL HEADER #813     04034B50 (67324752)\n-248A5D Extract Zip Spec      14 (20) '2.0'\n-248A5E Extract OS            00 (0) 'MS-DOS'\n-248A5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-248A61 Compression Method    0000 (0) 'Stored'\n-248A63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-248A67 CRC                   00000000 (0)\n-248A6B Compressed Size       00000000 (0)\n-248A6F Uncompressed Size     00000000 (0)\n-248A73 Filename Length       0053 (83)\n-248A75 Extra Length          0009 (9)\n-248A77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x248A77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-248ACA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-248ACC   Length              0005 (5)\n-248ACE   Flags               01 (1) 'Modification'\n-248ACF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-248AD3 PAYLOAD\n-\n-249FD4 DATA DESCRIPTOR       08074B50 (134695760)\n-249FD8 CRC                   E8DE57DA (3906885594)\n-249FDC Compressed Size       00001501 (5377)\n-249FE0 Uncompressed Size     00001501 (5377)\n-\n-249FE4 LOCAL HEADER #814     04034B50 (67324752)\n-249FE8 Extract Zip Spec      14 (20) '2.0'\n-249FE9 Extract OS            00 (0) 'MS-DOS'\n-249FEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-249FEC Compression Method    0000 (0) 'Stored'\n-249FEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-249FF2 CRC                   00000000 (0)\n-249FF6 Compressed Size       00000000 (0)\n-249FFA Uncompressed Size     00000000 (0)\n-249FFE Filename Length       0054 (84)\n-24A000 Extra Length          0009 (9)\n-24A002 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24A002: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24A056 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24A058   Length              0005 (5)\n-24A05A   Flags               01 (1) 'Modification'\n-24A05B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24A05F PAYLOAD\n-\n-24A9E6 DATA DESCRIPTOR       08074B50 (134695760)\n-24A9EA CRC                   DB97F7FB (3684169723)\n-24A9EE Compressed Size       00000987 (2439)\n-24A9F2 Uncompressed Size     00000987 (2439)\n-\n-24A9F6 LOCAL HEADER #815     04034B50 (67324752)\n-24A9FA Extract Zip Spec      14 (20) '2.0'\n-24A9FB Extract OS            00 (0) 'MS-DOS'\n-24A9FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-24A9FE Compression Method    0000 (0) 'Stored'\n-24AA00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24AA04 CRC                   00000000 (0)\n-24AA08 Compressed Size       00000000 (0)\n-24AA0C Uncompressed Size     00000000 (0)\n-24AA10 Filename Length       0045 (69)\n-24AA12 Extra Length          0009 (9)\n-24AA14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24AA14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24AA59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24AA5B   Length              0005 (5)\n-24AA5D   Flags               01 (1) 'Modification'\n-24AA5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24AA62 PAYLOAD\n-\n-24CA2E DATA DESCRIPTOR       08074B50 (134695760)\n-24CA32 CRC                   FACFCF03 (4207922947)\n-24CA36 Compressed Size       00001FCC (8140)\n-24CA3A Uncompressed Size     00001FCC (8140)\n-\n-24CA3E LOCAL HEADER #816     04034B50 (67324752)\n-24CA42 Extract Zip Spec      14 (20) '2.0'\n-24CA43 Extract OS            00 (0) 'MS-DOS'\n-24CA44 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-24CA46 Compression Method    0000 (0) 'Stored'\n-24CA48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24CA4C CRC                   00000000 (0)\n-24CA50 Compressed Size       00000000 (0)\n-24CA54 Uncompressed Size     00000000 (0)\n-24CA58 Filename Length       0050 (80)\n-24CA5A Extra Length          0009 (9)\n-24CA5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24CA5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24CAAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24CAAE   Length              0005 (5)\n-24CAB0   Flags               01 (1) 'Modification'\n-24CAB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24CAB5 PAYLOAD\n-\n-24D4C6 DATA DESCRIPTOR       08074B50 (134695760)\n-24D4CA CRC                   8EB7D7DD (2394413021)\n-24D4CE Compressed Size       00000A11 (2577)\n-24D4D2 Uncompressed Size     00000A11 (2577)\n-\n-24D4D6 LOCAL HEADER #817     04034B50 (67324752)\n-24D4DA Extract Zip Spec      14 (20) '2.0'\n-24D4DB Extract OS            00 (0) 'MS-DOS'\n-24D4DC General Purpose Flag  0000 (0)\n-24D4DE Compression Method    0000 (0) 'Stored'\n-24D4E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24D4E4 CRC                   00000000 (0)\n-24D4E8 Compressed Size       00000000 (0)\n-24D4EC Uncompressed Size     00000000 (0)\n-24D4F0 Filename Length       003B (59)\n-24D4F2 Extra Length          0009 (9)\n-24D4F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24D4F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24D52F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24D531   Length              0005 (5)\n-24D533   Flags               01 (1) 'Modification'\n-24D534   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-24D538 LOCAL HEADER #818     04034B50 (67324752)\n-24D53C Extract Zip Spec      14 (20) '2.0'\n-24D53D Extract OS            00 (0) 'MS-DOS'\n-24D53E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-24D540 Compression Method    0000 (0) 'Stored'\n-24D542 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-24D546 CRC                   00000000 (0)\n-24D54A Compressed Size       00000000 (0)\n-24D54E Uncompressed Size     00000000 (0)\n-24D552 Filename Length       0048 (72)\n-24D554 Extra Length          0009 (9)\n-24D556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x24D556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-24D59E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-24D5A0   Length              0005 (5)\n-24D5A2   Flags               01 (1) 'Modification'\n-24D5A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-24D5A7 PAYLOAD\n-\n-255177 DATA DESCRIPTOR       08074B50 (134695760)\n-25517B CRC                   3E2D4260 (1043153504)\n-25517F Compressed Size       00007BD0 (31696)\n-255183 Uncompressed Size     00007BD0 (31696)\n-\n-255187 LOCAL HEADER #819     04034B50 (67324752)\n-25518B Extract Zip Spec      14 (20) '2.0'\n-25518C Extract OS            00 (0) 'MS-DOS'\n-25518D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-25518F Compression Method    0000 (0) 'Stored'\n-255191 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-255195 CRC                   00000000 (0)\n-255199 Compressed Size       00000000 (0)\n-25519D Uncompressed Size     00000000 (0)\n-2551A1 Filename Length       004B (75)\n-2551A3 Extra Length          0009 (9)\n-2551A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2551A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2551F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2551F2   Length              0005 (5)\n-2551F4   Flags               01 (1) 'Modification'\n-2551F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2551F9 PAYLOAD\n-\n-26E10E DATA DESCRIPTOR       08074B50 (134695760)\n-26E112 CRC                   218FA1FC (563061244)\n-26E116 Compressed Size       00018F15 (102165)\n-26E11A Uncompressed Size     00018F15 (102165)\n-\n-26E11E LOCAL HEADER #820     04034B50 (67324752)\n-26E122 Extract Zip Spec      14 (20) '2.0'\n-26E123 Extract OS            00 (0) 'MS-DOS'\n-26E124 General Purpose Flag  0000 (0)\n-26E126 Compression Method    0000 (0) 'Stored'\n-26E128 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26E12C CRC                   00000000 (0)\n-26E130 Compressed Size       00000000 (0)\n-26E134 Uncompressed Size     00000000 (0)\n-26E138 Filename Length       002D (45)\n-26E13A Extra Length          0009 (9)\n-26E13C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26E13C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26E169 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26E16B   Length              0005 (5)\n-26E16D   Flags               01 (1) 'Modification'\n-26E16E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-26E172 LOCAL HEADER #821     04034B50 (67324752)\n-26E176 Extract Zip Spec      14 (20) '2.0'\n-26E177 Extract OS            00 (0) 'MS-DOS'\n-26E178 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-26E17A Compression Method    0000 (0) 'Stored'\n-26E17C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26E180 CRC                   00000000 (0)\n-26E184 Compressed Size       00000000 (0)\n-26E188 Uncompressed Size     00000000 (0)\n-26E18C Filename Length       0047 (71)\n-26E18E Extra Length          0009 (9)\n-26E190 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26E190: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26E1D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26E1D9   Length              0005 (5)\n-26E1DB   Flags               01 (1) 'Modification'\n-26E1DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-26E1E0 PAYLOAD\n-\n-26F26D DATA DESCRIPTOR       08074B50 (134695760)\n-26F271 CRC                   8EE26A20 (2397202976)\n-26F275 Compressed Size       0000108D (4237)\n-26F279 Uncompressed Size     0000108D (4237)\n-\n-26F27D LOCAL HEADER #822     04034B50 (67324752)\n-26F281 Extract Zip Spec      14 (20) '2.0'\n-26F282 Extract OS            00 (0) 'MS-DOS'\n-26F283 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-26F285 Compression Method    0000 (0) 'Stored'\n-26F287 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-26F28B CRC                   00000000 (0)\n-26F28F Compressed Size       00000000 (0)\n-26F293 Uncompressed Size     00000000 (0)\n-26F297 Filename Length       0048 (72)\n-26F299 Extra Length          0009 (9)\n-26F29B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x26F29B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-26F2E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-26F2E5   Length              0005 (5)\n-26F2E7   Flags               01 (1) 'Modification'\n-26F2E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-26F2EC PAYLOAD\n-\n-27021E DATA DESCRIPTOR       08074B50 (134695760)\n-270222 CRC                   D0E3428B (3504554635)\n-270226 Compressed Size       00000F32 (3890)\n-27022A Uncompressed Size     00000F32 (3890)\n-\n-27022E LOCAL HEADER #823     04034B50 (67324752)\n-270232 Extract Zip Spec      14 (20) '2.0'\n-270233 Extract OS            00 (0) 'MS-DOS'\n-270234 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-270236 Compression Method    0000 (0) 'Stored'\n-270238 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27023C CRC                   00000000 (0)\n-270240 Compressed Size       00000000 (0)\n-270244 Uncompressed Size     00000000 (0)\n-270248 Filename Length       0049 (73)\n-27024A Extra Length          0009 (9)\n-27024C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27024C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-270295 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-270297   Length              0005 (5)\n-270299   Flags               01 (1) 'Modification'\n-27029A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27029E PAYLOAD\n-\n-270A3C DATA DESCRIPTOR       08074B50 (134695760)\n-270A40 CRC                   7E62C783 (2120402819)\n-270A44 Compressed Size       0000079E (1950)\n-270A48 Uncompressed Size     0000079E (1950)\n-\n-270A4C LOCAL HEADER #824     04034B50 (67324752)\n-270A50 Extract Zip Spec      14 (20) '2.0'\n-270A51 Extract OS            00 (0) 'MS-DOS'\n-270A52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-270A54 Compression Method    0000 (0) 'Stored'\n-270A56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-270A5A CRC                   00000000 (0)\n-270A5E Compressed Size       00000000 (0)\n-270A62 Uncompressed Size     00000000 (0)\n-270A66 Filename Length       0039 (57)\n-270A68 Extra Length          0009 (9)\n-270A6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x270A6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-270AA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-270AA5   Length              0005 (5)\n-270AA7   Flags               01 (1) 'Modification'\n-270AA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-270AAC PAYLOAD\n-\n-270F2D DATA DESCRIPTOR       08074B50 (134695760)\n-270F31 CRC                   39DE609E (970875038)\n-270F35 Compressed Size       00000481 (1153)\n-270F39 Uncompressed Size     00000481 (1153)\n-\n-270F3D LOCAL HEADER #825     04034B50 (67324752)\n-270F41 Extract Zip Spec      14 (20) '2.0'\n-270F42 Extract OS            00 (0) 'MS-DOS'\n-270F43 General Purpose Flag  0000 (0)\n-270F45 Compression Method    0000 (0) 'Stored'\n-270F47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-270F4B CRC                   00000000 (0)\n-270F4F Compressed Size       00000000 (0)\n-270F53 Uncompressed Size     00000000 (0)\n-270F57 Filename Length       0036 (54)\n-270F59 Extra Length          0009 (9)\n-270F5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x270F5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-270F91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-270F93   Length              0005 (5)\n-270F95   Flags               01 (1) 'Modification'\n-270F96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-270F9A LOCAL HEADER #826     04034B50 (67324752)\n-270F9E Extract Zip Spec      14 (20) '2.0'\n-270F9F Extract OS            00 (0) 'MS-DOS'\n-270FA0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-270FA2 Compression Method    0000 (0) 'Stored'\n-270FA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-270FA8 CRC                   00000000 (0)\n-270FAC Compressed Size       00000000 (0)\n-270FB0 Uncompressed Size     00000000 (0)\n-270FB4 Filename Length       004A (74)\n-270FB6 Extra Length          0009 (9)\n-270FB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x270FB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-271002 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-271004   Length              0005 (5)\n-271006   Flags               01 (1) 'Modification'\n-271007   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27100B PAYLOAD\n-\n-271789 DATA DESCRIPTOR       08074B50 (134695760)\n-27178D CRC                   FAE713D9 (4209447897)\n-271791 Compressed Size       0000077E (1918)\n-271795 Uncompressed Size     0000077E (1918)\n-\n-271799 LOCAL HEADER #827     04034B50 (67324752)\n-27179D Extract Zip Spec      14 (20) '2.0'\n-27179E Extract OS            00 (0) 'MS-DOS'\n-27179F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2717A1 Compression Method    0000 (0) 'Stored'\n-2717A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2717A7 CRC                   00000000 (0)\n-2717AB Compressed Size       00000000 (0)\n-2717AF Uncompressed Size     00000000 (0)\n-2717B3 Filename Length       0047 (71)\n-2717B5 Extra Length          0009 (9)\n-2717B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2717B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2717FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-271800   Length              0005 (5)\n-271802   Flags               01 (1) 'Modification'\n-271803   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-271807 PAYLOAD\n-\n-271F9A DATA DESCRIPTOR       08074B50 (134695760)\n-271F9E CRC                   1D3EA7BE (490645438)\n-271FA2 Compressed Size       00000793 (1939)\n-271FA6 Uncompressed Size     00000793 (1939)\n-\n-271FAA LOCAL HEADER #828     04034B50 (67324752)\n-271FAE Extract Zip Spec      14 (20) '2.0'\n-271FAF Extract OS            00 (0) 'MS-DOS'\n-271FB0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-271FB2 Compression Method    0000 (0) 'Stored'\n-271FB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-271FB8 CRC                   00000000 (0)\n-271FBC Compressed Size       00000000 (0)\n-271FC0 Uncompressed Size     00000000 (0)\n-271FC4 Filename Length       004C (76)\n-271FC6 Extra Length          0009 (9)\n-271FC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x271FC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-272014 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-272016   Length              0005 (5)\n-272018   Flags               01 (1) 'Modification'\n-272019   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27201D PAYLOAD\n-\n-272795 DATA DESCRIPTOR       08074B50 (134695760)\n-272799 CRC                   585FB751 (1482667857)\n-27279D Compressed Size       00000778 (1912)\n-2727A1 Uncompressed Size     00000778 (1912)\n-\n-2727A5 LOCAL HEADER #829     04034B50 (67324752)\n-2727A9 Extract Zip Spec      14 (20) '2.0'\n-2727AA Extract OS            00 (0) 'MS-DOS'\n-2727AB General Purpose Flag  0000 (0)\n-2727AD Compression Method    0000 (0) 'Stored'\n-2727AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2727B3 CRC                   00000000 (0)\n-2727B7 Compressed Size       00000000 (0)\n-2727BB Uncompressed Size     00000000 (0)\n-2727BF Filename Length       0033 (51)\n-2727C1 Extra Length          0009 (9)\n-2727C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2727C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2727F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2727F8   Length              0005 (5)\n-2727FA   Flags               01 (1) 'Modification'\n-2727FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2727FF LOCAL HEADER #830     04034B50 (67324752)\n-272803 Extract Zip Spec      14 (20) '2.0'\n-272804 Extract OS            00 (0) 'MS-DOS'\n-272805 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-272807 Compression Method    0000 (0) 'Stored'\n-272809 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27280D CRC                   00000000 (0)\n-272811 Compressed Size       00000000 (0)\n-272815 Uncompressed Size     00000000 (0)\n-272819 Filename Length       0044 (68)\n-27281B Extra Length          0009 (9)\n-27281D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27281D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-272861 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-272863   Length              0005 (5)\n-272865   Flags               01 (1) 'Modification'\n-272866   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27286A PAYLOAD\n-\n-273768 DATA DESCRIPTOR       08074B50 (134695760)\n-27376C CRC                   2EE59E00 (786800128)\n-273770 Compressed Size       00000EFE (3838)\n-273774 Uncompressed Size     00000EFE (3838)\n-\n-273778 LOCAL HEADER #831     04034B50 (67324752)\n-27377C Extract Zip Spec      14 (20) '2.0'\n-27377D Extract OS            00 (0) 'MS-DOS'\n-27377E General Purpose Flag  0000 (0)\n-273780 Compression Method    0000 (0) 'Stored'\n-273782 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-273786 CRC                   00000000 (0)\n-27378A Compressed Size       00000000 (0)\n-27378E Uncompressed Size     00000000 (0)\n-273792 Filename Length       002A (42)\n-273794 Extra Length          0009 (9)\n-273796 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x273796: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2737C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2737C2   Length              0005 (5)\n-2737C4   Flags               01 (1) 'Modification'\n-2737C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2737C9 LOCAL HEADER #832     04034B50 (67324752)\n-2737CD Extract Zip Spec      14 (20) '2.0'\n-2737CE Extract OS            00 (0) 'MS-DOS'\n-2737CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2737D1 Compression Method    0000 (0) 'Stored'\n-2737D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2737D7 CRC                   00000000 (0)\n-2737DB Compressed Size       00000000 (0)\n-2737DF Uncompressed Size     00000000 (0)\n-2737E3 Filename Length       0048 (72)\n-2737E5 Extra Length          0009 (9)\n-2737E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2737E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27382F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-273831   Length              0005 (5)\n-273833   Flags               01 (1) 'Modification'\n-273834   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-273838 PAYLOAD\n-\n-274060 DATA DESCRIPTOR       08074B50 (134695760)\n-274064 CRC                   27075A5A (654793306)\n-274068 Compressed Size       00000828 (2088)\n-27406C Uncompressed Size     00000828 (2088)\n-\n-274070 LOCAL HEADER #833     04034B50 (67324752)\n-274074 Extract Zip Spec      14 (20) '2.0'\n-274075 Extract OS            00 (0) 'MS-DOS'\n-274076 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-274078 Compression Method    0000 (0) 'Stored'\n-27407A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27407E CRC                   00000000 (0)\n-274082 Compressed Size       00000000 (0)\n-274086 Uncompressed Size     00000000 (0)\n-27408A Filename Length       0045 (69)\n-27408C Extra Length          0009 (9)\n-27408E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27408E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2740D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2740D5   Length              0005 (5)\n-2740D7   Flags               01 (1) 'Modification'\n-2740D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2740DC PAYLOAD\n-\n-27456F DATA DESCRIPTOR       08074B50 (134695760)\n-274573 CRC                   48B6E606 (1219945990)\n-274577 Compressed Size       00000493 (1171)\n-27457B Uncompressed Size     00000493 (1171)\n-\n-27457F LOCAL HEADER #834     04034B50 (67324752)\n-274583 Extract Zip Spec      14 (20) '2.0'\n-274584 Extract OS            00 (0) 'MS-DOS'\n-274585 General Purpose Flag  0000 (0)\n-274587 Compression Method    0000 (0) 'Stored'\n-274589 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27458D CRC                   00000000 (0)\n-274591 Compressed Size       00000000 (0)\n-274595 Uncompressed Size     00000000 (0)\n-274599 Filename Length       001F (31)\n-27459B Extra Length          0009 (9)\n-27459D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27459D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2745BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2745BE   Length              0005 (5)\n-2745C0   Flags               01 (1) 'Modification'\n-2745C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2745C5 LOCAL HEADER #835     04034B50 (67324752)\n-2745C9 Extract Zip Spec      14 (20) '2.0'\n-2745CA Extract OS            00 (0) 'MS-DOS'\n-2745CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2745CD Compression Method    0000 (0) 'Stored'\n-2745CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2745D3 CRC                   00000000 (0)\n-2745D7 Compressed Size       00000000 (0)\n-2745DB Uncompressed Size     00000000 (0)\n-2745DF Filename Length       002A (42)\n-2745E1 Extra Length          0009 (9)\n-2745E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2745E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27460D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27460F   Length              0005 (5)\n-274611   Flags               01 (1) 'Modification'\n-274612   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-274616 PAYLOAD\n-\n-274D73 DATA DESCRIPTOR       08074B50 (134695760)\n-274D77 CRC                   EE49CD50 (3997814096)\n-274D7B Compressed Size       0000075D (1885)\n-274D7F Uncompressed Size     0000075D (1885)\n-\n-274D83 LOCAL HEADER #836     04034B50 (67324752)\n-274D87 Extract Zip Spec      14 (20) '2.0'\n-274D88 Extract OS            00 (0) 'MS-DOS'\n-274D89 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-274D8B Compression Method    0000 (0) 'Stored'\n-274D8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-274D91 CRC                   00000000 (0)\n-274D95 Compressed Size       00000000 (0)\n-274D99 Uncompressed Size     00000000 (0)\n-274D9D Filename Length       0031 (49)\n-274D9F Extra Length          0009 (9)\n-274DA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x274DA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-274DD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-274DD4   Length              0005 (5)\n-274DD6   Flags               01 (1) 'Modification'\n-274DD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-274DDB PAYLOAD\n-\n-27520D DATA DESCRIPTOR       08074B50 (134695760)\n-275211 CRC                   4C723E93 (1282555539)\n-275215 Compressed Size       00000432 (1074)\n-275219 Uncompressed Size     00000432 (1074)\n-\n-27521D LOCAL HEADER #837     04034B50 (67324752)\n-275221 Extract Zip Spec      14 (20) '2.0'\n-275222 Extract OS            00 (0) 'MS-DOS'\n-275223 General Purpose Flag  0000 (0)\n-275225 Compression Method    0000 (0) 'Stored'\n-275227 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27522B CRC                   00000000 (0)\n-27522F Compressed Size       00000000 (0)\n-275233 Uncompressed Size     00000000 (0)\n-275237 Filename Length       0027 (39)\n-275239 Extra Length          0009 (9)\n-27523B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27523B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-275262 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-275264   Length              0005 (5)\n-275266   Flags               01 (1) 'Modification'\n-275267   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27526B LOCAL HEADER #838     04034B50 (67324752)\n-27526F Extract Zip Spec      14 (20) '2.0'\n-275270 Extract OS            00 (0) 'MS-DOS'\n-275271 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-275273 Compression Method    0000 (0) 'Stored'\n-275275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-275279 CRC                   00000000 (0)\n-27527D Compressed Size       00000000 (0)\n-275281 Uncompressed Size     00000000 (0)\n-275285 Filename Length       003D (61)\n-275287 Extra Length          0009 (9)\n-275289 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x275289: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2752C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2752C8   Length              0005 (5)\n-2752CA   Flags               01 (1) 'Modification'\n-2752CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2752CF PAYLOAD\n-\n-275B76 DATA DESCRIPTOR       08074B50 (134695760)\n-275B7A CRC                   CD3068DB (3442501851)\n-275B7E Compressed Size       000008A7 (2215)\n-275B82 Uncompressed Size     000008A7 (2215)\n-\n-275B86 LOCAL HEADER #839     04034B50 (67324752)\n-275B8A Extract Zip Spec      14 (20) '2.0'\n-275B8B Extract OS            00 (0) 'MS-DOS'\n-275B8C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-275B8E Compression Method    0000 (0) 'Stored'\n-275B90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-275B94 CRC                   00000000 (0)\n-275B98 Compressed Size       00000000 (0)\n-275B9C Uncompressed Size     00000000 (0)\n-275BA0 Filename Length       003F (63)\n-275BA2 Extra Length          0009 (9)\n-275BA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x275BA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-275BE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-275BE5   Length              0005 (5)\n-275BE7   Flags               01 (1) 'Modification'\n-275BE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-275BEC PAYLOAD\n-\n-2762ED DATA DESCRIPTOR       08074B50 (134695760)\n-2762F1 CRC                   E601D6EE (3858880238)\n-2762F5 Compressed Size       00000701 (1793)\n-2762F9 Uncompressed Size     00000701 (1793)\n-\n-2762FD LOCAL HEADER #840     04034B50 (67324752)\n-276301 Extract Zip Spec      14 (20) '2.0'\n-276302 Extract OS            00 (0) 'MS-DOS'\n-276303 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-276305 Compression Method    0000 (0) 'Stored'\n-276307 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27630B CRC                   00000000 (0)\n-27630F Compressed Size       00000000 (0)\n-276313 Uncompressed Size     00000000 (0)\n-276317 Filename Length       0037 (55)\n-276319 Extra Length          0009 (9)\n-27631B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27631B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-276352 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-276354   Length              0005 (5)\n-276356   Flags               01 (1) 'Modification'\n-276357   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27635B PAYLOAD\n-\n-276B2F DATA DESCRIPTOR       08074B50 (134695760)\n-276B33 CRC                   577B6C79 (1467706489)\n-276B37 Compressed Size       000007D4 (2004)\n-276B3B Uncompressed Size     000007D4 (2004)\n-\n-276B3F LOCAL HEADER #841     04034B50 (67324752)\n-276B43 Extract Zip Spec      14 (20) '2.0'\n-276B44 Extract OS            00 (0) 'MS-DOS'\n-276B45 General Purpose Flag  0000 (0)\n-276B47 Compression Method    0000 (0) 'Stored'\n-276B49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-276B4D CRC                   00000000 (0)\n-276B51 Compressed Size       00000000 (0)\n-276B55 Uncompressed Size     00000000 (0)\n-276B59 Filename Length       001E (30)\n-276B5B Extra Length          0009 (9)\n-276B5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x276B5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-276B7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-276B7D   Length              0005 (5)\n-276B7F   Flags               01 (1) 'Modification'\n-276B80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-276B84 LOCAL HEADER #842     04034B50 (67324752)\n-276B88 Extract Zip Spec      14 (20) '2.0'\n-276B89 Extract OS            00 (0) 'MS-DOS'\n-276B8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-276B8C Compression Method    0000 (0) 'Stored'\n-276B8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-276B92 CRC                   00000000 (0)\n-276B96 Compressed Size       00000000 (0)\n-276B9A Uncompressed Size     00000000 (0)\n-276B9E Filename Length       002C (44)\n-276BA0 Extra Length          0009 (9)\n-276BA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x276BA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-276BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-276BD0   Length              0005 (5)\n-276BD2   Flags               01 (1) 'Modification'\n-276BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-276BD7 PAYLOAD\n-\n-2770D7 DATA DESCRIPTOR       08074B50 (134695760)\n-2770DB CRC                   BF5F9C1E (3210714142)\n-2770DF Compressed Size       00000500 (1280)\n-2770E3 Uncompressed Size     00000500 (1280)\n-\n-2770E7 LOCAL HEADER #843     04034B50 (67324752)\n-2770EB Extract Zip Spec      14 (20) '2.0'\n-2770EC Extract OS            00 (0) 'MS-DOS'\n-2770ED General Purpose Flag  0000 (0)\n-2770EF Compression Method    0000 (0) 'Stored'\n-2770F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2770F5 CRC                   00000000 (0)\n-2770F9 Compressed Size       00000000 (0)\n-2770FD Uncompressed Size     00000000 (0)\n-277101 Filename Length       0026 (38)\n-277103 Extra Length          0009 (9)\n-277105 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x277105: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27712B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27712D   Length              0005 (5)\n-27712F   Flags               01 (1) 'Modification'\n-277130   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-277134 LOCAL HEADER #844     04034B50 (67324752)\n-277138 Extract Zip Spec      14 (20) '2.0'\n-277139 Extract OS            00 (0) 'MS-DOS'\n-27713A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27713C Compression Method    0000 (0) 'Stored'\n-27713E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-277142 CRC                   00000000 (0)\n-277146 Compressed Size       00000000 (0)\n-27714A Uncompressed Size     00000000 (0)\n-27714E Filename Length       003A (58)\n-277150 Extra Length          0009 (9)\n-277152 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x277152: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27718C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27718E   Length              0005 (5)\n-277190   Flags               01 (1) 'Modification'\n-277191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-277195 PAYLOAD\n-\n-277A5C DATA DESCRIPTOR       08074B50 (134695760)\n-277A60 CRC                   5E930431 (1586693169)\n-277A64 Compressed Size       000008C7 (2247)\n-277A68 Uncompressed Size     000008C7 (2247)\n-\n-277A6C LOCAL HEADER #845     04034B50 (67324752)\n-277A70 Extract Zip Spec      14 (20) '2.0'\n-277A71 Extract OS            00 (0) 'MS-DOS'\n-277A72 General Purpose Flag  0000 (0)\n-277A74 Compression Method    0000 (0) 'Stored'\n-277A76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-277A7A CRC                   00000000 (0)\n-277A7E Compressed Size       00000000 (0)\n-277A82 Uncompressed Size     00000000 (0)\n-277A86 Filename Length       0024 (36)\n-277A88 Extra Length          0009 (9)\n-277A8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x277A8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-277AAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-277AB0   Length              0005 (5)\n-277AB2   Flags               01 (1) 'Modification'\n-277AB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-277AB7 LOCAL HEADER #846     04034B50 (67324752)\n-277ABB Extract Zip Spec      14 (20) '2.0'\n-277ABC Extract OS            00 (0) 'MS-DOS'\n-277ABD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-277ABF Compression Method    0000 (0) 'Stored'\n-277AC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-277AC5 CRC                   00000000 (0)\n-277AC9 Compressed Size       00000000 (0)\n-277ACD Uncompressed Size     00000000 (0)\n-277AD1 Filename Length       0039 (57)\n-277AD3 Extra Length          0009 (9)\n-277AD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x277AD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-277B0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-277B10   Length              0005 (5)\n-277B12   Flags               01 (1) 'Modification'\n-277B13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-277B17 PAYLOAD\n-\n-278250 DATA DESCRIPTOR       08074B50 (134695760)\n-278254 CRC                   54C421FF (1422139903)\n-278258 Compressed Size       00000739 (1849)\n-27825C Uncompressed Size     00000739 (1849)\n-\n-278260 LOCAL HEADER #847     04034B50 (67324752)\n-278264 Extract Zip Spec      14 (20) '2.0'\n-278265 Extract OS            00 (0) 'MS-DOS'\n-278266 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-278268 Compression Method    0000 (0) 'Stored'\n-27826A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27826E CRC                   00000000 (0)\n-278272 Compressed Size       00000000 (0)\n-278276 Uncompressed Size     00000000 (0)\n-27827A Filename Length       0037 (55)\n-27827C Extra Length          0009 (9)\n-27827E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27827E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2782B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2782B7   Length              0005 (5)\n-2782B9   Flags               01 (1) 'Modification'\n-2782BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2782BE PAYLOAD\n-\n-278C4B DATA DESCRIPTOR       08074B50 (134695760)\n-278C4F CRC                   DFEE0135 (3756917045)\n-278C53 Compressed Size       0000098D (2445)\n-278C57 Uncompressed Size     0000098D (2445)\n-\n-278C5B LOCAL HEADER #848     04034B50 (67324752)\n-278C5F Extract Zip Spec      14 (20) '2.0'\n-278C60 Extract OS            00 (0) 'MS-DOS'\n-278C61 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-278C63 Compression Method    0000 (0) 'Stored'\n-278C65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-278C69 CRC                   00000000 (0)\n-278C6D Compressed Size       00000000 (0)\n-278C71 Uncompressed Size     00000000 (0)\n-278C75 Filename Length       003C (60)\n-278C77 Extra Length          0009 (9)\n-278C79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x278C79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-278CB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-278CB7   Length              0005 (5)\n-278CB9   Flags               01 (1) 'Modification'\n-278CBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-278CBE PAYLOAD\n-\n-27A7B6 DATA DESCRIPTOR       08074B50 (134695760)\n-27A7BA CRC                   F7472DA9 (4148637097)\n-27A7BE Compressed Size       00001AF8 (6904)\n-27A7C2 Uncompressed Size     00001AF8 (6904)\n-\n-27A7C6 LOCAL HEADER #849     04034B50 (67324752)\n-27A7CA Extract Zip Spec      14 (20) '2.0'\n-27A7CB Extract OS            00 (0) 'MS-DOS'\n-27A7CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27A7CE Compression Method    0000 (0) 'Stored'\n-27A7D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27A7D4 CRC                   00000000 (0)\n-27A7D8 Compressed Size       00000000 (0)\n-27A7DC Uncompressed Size     00000000 (0)\n-27A7E0 Filename Length       003F (63)\n-27A7E2 Extra Length          0009 (9)\n-27A7E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27A7E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27A823 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27A825   Length              0005 (5)\n-27A827   Flags               01 (1) 'Modification'\n-27A828   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27A82C PAYLOAD\n-\n-27BD84 DATA DESCRIPTOR       08074B50 (134695760)\n-27BD88 CRC                   17B25B54 (397564756)\n-27BD8C Compressed Size       00001558 (5464)\n-27BD90 Uncompressed Size     00001558 (5464)\n-\n-27BD94 LOCAL HEADER #850     04034B50 (67324752)\n-27BD98 Extract Zip Spec      14 (20) '2.0'\n-27BD99 Extract OS            00 (0) 'MS-DOS'\n-27BD9A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27BD9C Compression Method    0000 (0) 'Stored'\n-27BD9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27BDA2 CRC                   00000000 (0)\n-27BDA6 Compressed Size       00000000 (0)\n-27BDAA Uncompressed Size     00000000 (0)\n-27BDAE Filename Length       0043 (67)\n-27BDB0 Extra Length          0009 (9)\n-27BDB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27BDB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27BDF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27BDF7   Length              0005 (5)\n-27BDF9   Flags               01 (1) 'Modification'\n-27BDFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27BDFE PAYLOAD\n-\n-27C45C DATA DESCRIPTOR       08074B50 (134695760)\n-27C460 CRC                   9C1B711A (2619044122)\n-27C464 Compressed Size       0000065E (1630)\n-27C468 Uncompressed Size     0000065E (1630)\n-\n-27C46C LOCAL HEADER #851     04034B50 (67324752)\n-27C470 Extract Zip Spec      14 (20) '2.0'\n-27C471 Extract OS            00 (0) 'MS-DOS'\n-27C472 General Purpose Flag  0000 (0)\n-27C474 Compression Method    0000 (0) 'Stored'\n-27C476 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27C47A CRC                   00000000 (0)\n-27C47E Compressed Size       00000000 (0)\n-27C482 Uncompressed Size     00000000 (0)\n-27C486 Filename Length       0023 (35)\n-27C488 Extra Length          0009 (9)\n-27C48A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27C48A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27C4AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27C4AF   Length              0005 (5)\n-27C4B1   Flags               01 (1) 'Modification'\n-27C4B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27C4B6 LOCAL HEADER #852     04034B50 (67324752)\n-27C4BA Extract Zip Spec      14 (20) '2.0'\n-27C4BB Extract OS            00 (0) 'MS-DOS'\n-27C4BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27C4BE Compression Method    0000 (0) 'Stored'\n-27C4C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27C4C4 CRC                   00000000 (0)\n-27C4C8 Compressed Size       00000000 (0)\n-27C4CC Uncompressed Size     00000000 (0)\n-27C4D0 Filename Length       0032 (50)\n-27C4D2 Extra Length          0009 (9)\n-27C4D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27C4D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27C506 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27C508   Length              0005 (5)\n-27C50A   Flags               01 (1) 'Modification'\n-27C50B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27C50F PAYLOAD\n-\n-27CA5A DATA DESCRIPTOR       08074B50 (134695760)\n-27CA5E CRC                   8247BF31 (2185740081)\n-27CA62 Compressed Size       0000054B (1355)\n-27CA66 Uncompressed Size     0000054B (1355)\n-\n-27CA6A LOCAL HEADER #853     04034B50 (67324752)\n-27CA6E Extract Zip Spec      14 (20) '2.0'\n-27CA6F Extract OS            00 (0) 'MS-DOS'\n-27CA70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27CA72 Compression Method    0000 (0) 'Stored'\n-27CA74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27CA78 CRC                   00000000 (0)\n-27CA7C Compressed Size       00000000 (0)\n-27CA80 Uncompressed Size     00000000 (0)\n-27CA84 Filename Length       003A (58)\n-27CA86 Extra Length          0009 (9)\n-27CA88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27CA88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27CAC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27CAC4   Length              0005 (5)\n-27CAC6   Flags               01 (1) 'Modification'\n-27CAC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27CACB PAYLOAD\n-\n-27E560 DATA DESCRIPTOR       08074B50 (134695760)\n-27E564 CRC                   8DDA963E (2379912766)\n-27E568 Compressed Size       00001A95 (6805)\n-27E56C Uncompressed Size     00001A95 (6805)\n-\n-27E570 LOCAL HEADER #854     04034B50 (67324752)\n-27E574 Extract Zip Spec      14 (20) '2.0'\n-27E575 Extract OS            00 (0) 'MS-DOS'\n-27E576 General Purpose Flag  0000 (0)\n-27E578 Compression Method    0000 (0) 'Stored'\n-27E57A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27E57E CRC                   00000000 (0)\n-27E582 Compressed Size       00000000 (0)\n-27E586 Uncompressed Size     00000000 (0)\n-27E58A Filename Length       002E (46)\n-27E58C Extra Length          0009 (9)\n-27E58E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27E58E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27E5BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27E5BE   Length              0005 (5)\n-27E5C0   Flags               01 (1) 'Modification'\n-27E5C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27E5C5 LOCAL HEADER #855     04034B50 (67324752)\n-27E5C9 Extract Zip Spec      14 (20) '2.0'\n-27E5CA Extract OS            00 (0) 'MS-DOS'\n-27E5CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27E5CD Compression Method    0000 (0) 'Stored'\n-27E5CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27E5D3 CRC                   00000000 (0)\n-27E5D7 Compressed Size       00000000 (0)\n-27E5DB Uncompressed Size     00000000 (0)\n-27E5DF Filename Length       004D (77)\n-27E5E1 Extra Length          0009 (9)\n-27E5E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27E5E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27E630 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27E632   Length              0005 (5)\n-27E634   Flags               01 (1) 'Modification'\n-27E635   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27E639 PAYLOAD\n-\n-27EF45 DATA DESCRIPTOR       08074B50 (134695760)\n-27EF49 CRC                   A445CFD0 (2756038608)\n-27EF4D Compressed Size       0000090C (2316)\n-27EF51 Uncompressed Size     0000090C (2316)\n-\n-27EF55 LOCAL HEADER #856     04034B50 (67324752)\n-27EF59 Extract Zip Spec      14 (20) '2.0'\n-27EF5A Extract OS            00 (0) 'MS-DOS'\n-27EF5B General Purpose Flag  0000 (0)\n-27EF5D Compression Method    0000 (0) 'Stored'\n-27EF5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27EF63 CRC                   00000000 (0)\n-27EF67 Compressed Size       00000000 (0)\n-27EF6B Uncompressed Size     00000000 (0)\n-27EF6F Filename Length       0029 (41)\n-27EF71 Extra Length          0009 (9)\n-27EF73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27EF73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27EF9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27EF9E   Length              0005 (5)\n-27EFA0   Flags               01 (1) 'Modification'\n-27EFA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27EFA5 LOCAL HEADER #857     04034B50 (67324752)\n-27EFA9 Extract Zip Spec      14 (20) '2.0'\n-27EFAA Extract OS            00 (0) 'MS-DOS'\n-27EFAB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27EFAD Compression Method    0000 (0) 'Stored'\n-27EFAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27EFB3 CRC                   00000000 (0)\n-27EFB7 Compressed Size       00000000 (0)\n-27EFBB Uncompressed Size     00000000 (0)\n-27EFBF Filename Length       0046 (70)\n-27EFC1 Extra Length          0009 (9)\n-27EFC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27EFC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27F009 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27F00B   Length              0005 (5)\n-27F00D   Flags               01 (1) 'Modification'\n-27F00E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27F012 PAYLOAD\n-\n-27F4ED DATA DESCRIPTOR       08074B50 (134695760)\n-27F4F1 CRC                   0A4E202C (172892204)\n-27F4F5 Compressed Size       000004DB (1243)\n-27F4F9 Uncompressed Size     000004DB (1243)\n-\n-27F4FD LOCAL HEADER #858     04034B50 (67324752)\n-27F501 Extract Zip Spec      14 (20) '2.0'\n-27F502 Extract OS            00 (0) 'MS-DOS'\n-27F503 General Purpose Flag  0000 (0)\n-27F505 Compression Method    0000 (0) 'Stored'\n-27F507 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27F50B CRC                   00000000 (0)\n-27F50F Compressed Size       00000000 (0)\n-27F513 Uncompressed Size     00000000 (0)\n-27F517 Filename Length       002B (43)\n-27F519 Extra Length          0009 (9)\n-27F51B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27F51B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27F546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27F548   Length              0005 (5)\n-27F54A   Flags               01 (1) 'Modification'\n-27F54B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-27F54F LOCAL HEADER #859     04034B50 (67324752)\n-27F553 Extract Zip Spec      14 (20) '2.0'\n-27F554 Extract OS            00 (0) 'MS-DOS'\n-27F555 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-27F557 Compression Method    0000 (0) 'Stored'\n-27F559 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-27F55D CRC                   00000000 (0)\n-27F561 Compressed Size       00000000 (0)\n-27F565 Uncompressed Size     00000000 (0)\n-27F569 Filename Length       0049 (73)\n-27F56B Extra Length          0009 (9)\n-27F56D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x27F56D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-27F5B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-27F5B8   Length              0005 (5)\n-27F5BA   Flags               01 (1) 'Modification'\n-27F5BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-27F5BF PAYLOAD\n-\n-2813EF DATA DESCRIPTOR       08074B50 (134695760)\n-2813F3 CRC                   6D3F9D1E (1832885534)\n-2813F7 Compressed Size       00001E30 (7728)\n-2813FB Uncompressed Size     00001E30 (7728)\n-\n-2813FF LOCAL HEADER #860     04034B50 (67324752)\n-281403 Extract Zip Spec      14 (20) '2.0'\n-281404 Extract OS            00 (0) 'MS-DOS'\n-281405 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-281407 Compression Method    0000 (0) 'Stored'\n-281409 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-28140D CRC                   00000000 (0)\n-281411 Compressed Size       00000000 (0)\n-281415 Uncompressed Size     00000000 (0)\n-281419 Filename Length       0042 (66)\n-28141B Extra Length          0009 (9)\n-28141D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x28141D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28145F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-281461   Length              0005 (5)\n-281463   Flags               01 (1) 'Modification'\n-281464   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-281468 PAYLOAD\n-\n-281D81 DATA DESCRIPTOR       08074B50 (134695760)\n-281D85 CRC                   355480AB (894730411)\n-281D89 Compressed Size       00000919 (2329)\n-281D8D Uncompressed Size     00000919 (2329)\n-\n-281D91 LOCAL HEADER #861     04034B50 (67324752)\n-281D95 Extract Zip Spec      14 (20) '2.0'\n-281D96 Extract OS            00 (0) 'MS-DOS'\n-281D97 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-281D99 Compression Method    0000 (0) 'Stored'\n-281D9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-281D9F CRC                   00000000 (0)\n-281DA3 Compressed Size       00000000 (0)\n-281DA7 Uncompressed Size     00000000 (0)\n-281DAB Filename Length       0034 (52)\n-281DAD Extra Length          0009 (9)\n-281DAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x281DAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-281DE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-281DE5   Length              0005 (5)\n-281DE7   Flags               01 (1) 'Modification'\n-281DE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-281DEC PAYLOAD\n-\n-2825E6 DATA DESCRIPTOR       08074B50 (134695760)\n-2825EA CRC                   47FCDE13 (1207754259)\n-2825EE Compressed Size       000007FA (2042)\n-2825F2 Uncompressed Size     000007FA (2042)\n-\n-2825F6 LOCAL HEADER #862     04034B50 (67324752)\n-2825FA Extract Zip Spec      14 (20) '2.0'\n-2825FB Extract OS            00 (0) 'MS-DOS'\n-2825FC General Purpose Flag  0000 (0)\n-2825FE Compression Method    0000 (0) 'Stored'\n-282600 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-282604 CRC                   00000000 (0)\n-282608 Compressed Size       00000000 (0)\n-28260C Uncompressed Size     00000000 (0)\n-282610 Filename Length       002B (43)\n-282612 Extra Length          0009 (9)\n-282614 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x282614: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28263F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-282641   Length              0005 (5)\n-282643   Flags               01 (1) 'Modification'\n-282644   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-282648 LOCAL HEADER #863     04034B50 (67324752)\n-28264C Extract Zip Spec      14 (20) '2.0'\n-28264D Extract OS            00 (0) 'MS-DOS'\n-28264E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-282650 Compression Method    0000 (0) 'Stored'\n-282652 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-282656 CRC                   00000000 (0)\n-28265A Compressed Size       00000000 (0)\n-28265E Uncompressed Size     00000000 (0)\n-282662 Filename Length       0045 (69)\n-282664 Extra Length          0009 (9)\n-282666 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x282666: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2826AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2826AD   Length              0005 (5)\n-2826AF   Flags               01 (1) 'Modification'\n-2826B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2826B4 PAYLOAD\n-\n-283E1B DATA DESCRIPTOR       08074B50 (134695760)\n-283E1F CRC                   A9E4FF87 (2850357127)\n-283E23 Compressed Size       00001767 (5991)\n-283E27 Uncompressed Size     00001767 (5991)\n-\n-283E2B LOCAL HEADER #864     04034B50 (67324752)\n-283E2F Extract Zip Spec      14 (20) '2.0'\n-283E30 Extract OS            00 (0) 'MS-DOS'\n-283E31 General Purpose Flag  0000 (0)\n-283E33 Compression Method    0000 (0) 'Stored'\n-283E35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-283E39 CRC                   00000000 (0)\n-283E3D Compressed Size       00000000 (0)\n-283E41 Uncompressed Size     00000000 (0)\n-283E45 Filename Length       0032 (50)\n-283E47 Extra Length          0009 (9)\n-283E49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x283E49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-283E7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-283E7D   Length              0005 (5)\n-283E7F   Flags               01 (1) 'Modification'\n-283E80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-283E84 LOCAL HEADER #865     04034B50 (67324752)\n-283E88 Extract Zip Spec      14 (20) '2.0'\n-283E89 Extract OS            00 (0) 'MS-DOS'\n-283E8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-283E8C Compression Method    0000 (0) 'Stored'\n-283E8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-283E92 CRC                   00000000 (0)\n-283E96 Compressed Size       00000000 (0)\n-283E9A Uncompressed Size     00000000 (0)\n-283E9E Filename Length       0047 (71)\n-283EA0 Extra Length          0009 (9)\n-283EA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x283EA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-283EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-283EEB   Length              0005 (5)\n-283EED   Flags               01 (1) 'Modification'\n-283EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-283EF2 PAYLOAD\n-\n-284B6F DATA DESCRIPTOR       08074B50 (134695760)\n-284B73 CRC                   7C2CDC15 (2083314709)\n-284B77 Compressed Size       00000C7D (3197)\n-284B7B Uncompressed Size     00000C7D (3197)\n-\n-284B7F LOCAL HEADER #866     04034B50 (67324752)\n-284B83 Extract Zip Spec      14 (20) '2.0'\n-284B84 Extract OS            00 (0) 'MS-DOS'\n-284B85 General Purpose Flag  0000 (0)\n-284B87 Compression Method    0000 (0) 'Stored'\n-284B89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-284B8D CRC                   00000000 (0)\n-284B91 Compressed Size       00000000 (0)\n-284B95 Uncompressed Size     00000000 (0)\n-284B99 Filename Length       0031 (49)\n-284B9B Extra Length          0009 (9)\n-284B9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x284B9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-284BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-284BD0   Length              0005 (5)\n-284BD2   Flags               01 (1) 'Modification'\n-284BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-284BD7 LOCAL HEADER #867     04034B50 (67324752)\n-284BDB Extract Zip Spec      14 (20) '2.0'\n-284BDC Extract OS            00 (0) 'MS-DOS'\n-284BDD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-284BDF Compression Method    0000 (0) 'Stored'\n-284BE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-284BE5 CRC                   00000000 (0)\n-284BE9 Compressed Size       00000000 (0)\n-284BED Uncompressed Size     00000000 (0)\n-284BF1 Filename Length       0045 (69)\n-284BF3 Extra Length          0009 (9)\n-284BF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x284BF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-284C3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-284C3C   Length              0005 (5)\n-284C3E   Flags               01 (1) 'Modification'\n-284C3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-284C43 PAYLOAD\n-\n-285804 DATA DESCRIPTOR       08074B50 (134695760)\n-285808 CRC                   DF3FC6E9 (3745498857)\n-28580C Compressed Size       00000BC1 (3009)\n-285810 Uncompressed Size     00000BC1 (3009)\n-\n-285814 LOCAL HEADER #868     04034B50 (67324752)\n-285818 Extract Zip Spec      14 (20) '2.0'\n-285819 Extract OS            00 (0) 'MS-DOS'\n-28581A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-28581C Compression Method    0000 (0) 'Stored'\n-28581E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-285822 CRC                   00000000 (0)\n-285826 Compressed Size       00000000 (0)\n-28582A Uncompressed Size     00000000 (0)\n-28582E Filename Length       004D (77)\n-285830 Extra Length          0009 (9)\n-285832 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x285832: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28587F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-285881   Length              0005 (5)\n-285883   Flags               01 (1) 'Modification'\n-285884   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-285888 PAYLOAD\n-\n-286546 DATA DESCRIPTOR       08074B50 (134695760)\n-28654A CRC                   B7E8049A (3085436058)\n-28654E Compressed Size       00000CBE (3262)\n-286552 Uncompressed Size     00000CBE (3262)\n-\n-286556 LOCAL HEADER #869     04034B50 (67324752)\n-28655A Extract Zip Spec      14 (20) '2.0'\n-28655B Extract OS            00 (0) 'MS-DOS'\n-28655C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-28655E Compression Method    0000 (0) 'Stored'\n-286560 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-286564 CRC                   00000000 (0)\n-286568 Compressed Size       00000000 (0)\n-28656C Uncompressed Size     00000000 (0)\n-286570 Filename Length       003F (63)\n-286572 Extra Length          0009 (9)\n-286574 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x286574: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2865B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2865B5   Length              0005 (5)\n-2865B7   Flags               01 (1) 'Modification'\n-2865B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2865BC PAYLOAD\n-\n-287143 DATA DESCRIPTOR       08074B50 (134695760)\n-287147 CRC                   365FEBC7 (912255943)\n-28714B Compressed Size       00000B87 (2951)\n-28714F Uncompressed Size     00000B87 (2951)\n-\n-287153 LOCAL HEADER #870     04034B50 (67324752)\n-287157 Extract Zip Spec      14 (20) '2.0'\n-287158 Extract OS            00 (0) 'MS-DOS'\n-287159 General Purpose Flag  0000 (0)\n-28715B Compression Method    0000 (0) 'Stored'\n-28715D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-287161 CRC                   00000000 (0)\n-287165 Compressed Size       00000000 (0)\n-287169 Uncompressed Size     00000000 (0)\n-28716D Filename Length       0031 (49)\n-28716F Extra Length          0009 (9)\n-287171 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x287171: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2871A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2871A4   Length              0005 (5)\n-2871A6   Flags               01 (1) 'Modification'\n-2871A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2871AB LOCAL HEADER #871     04034B50 (67324752)\n-2871AF Extract Zip Spec      14 (20) '2.0'\n-2871B0 Extract OS            00 (0) 'MS-DOS'\n-2871B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2871B3 Compression Method    0000 (0) 'Stored'\n-2871B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2871B9 CRC                   00000000 (0)\n-2871BD Compressed Size       00000000 (0)\n-2871C1 Uncompressed Size     00000000 (0)\n-2871C5 Filename Length       0045 (69)\n-2871C7 Extra Length          0009 (9)\n-2871C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2871C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-28720E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-287210   Length              0005 (5)\n-287212   Flags               01 (1) 'Modification'\n-287213   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-287217 PAYLOAD\n-\n-287CBA DATA DESCRIPTOR       08074B50 (134695760)\n-287CBE CRC                   3EDDC0EF (1054720239)\n-287CC2 Compressed Size       00000AA3 (2723)\n-287CC6 Uncompressed Size     00000AA3 (2723)\n-\n-287CCA LOCAL HEADER #872     04034B50 (67324752)\n-287CCE Extract Zip Spec      14 (20) '2.0'\n-287CCF Extract OS            00 (0) 'MS-DOS'\n-287CD0 General Purpose Flag  0000 (0)\n-287CD2 Compression Method    0000 (0) 'Stored'\n-287CD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-287CD8 CRC                   00000000 (0)\n-287CDC Compressed Size       00000000 (0)\n-287CE0 Uncompressed Size     00000000 (0)\n-287CE4 Filename Length       0033 (51)\n-287CE6 Extra Length          0009 (9)\n-287CE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x287CE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-287D1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-287D1D   Length              0005 (5)\n-287D1F   Flags               01 (1) 'Modification'\n-287D20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-287D24 LOCAL HEADER #873     04034B50 (67324752)\n-287D28 Extract Zip Spec      14 (20) '2.0'\n-287D29 Extract OS            00 (0) 'MS-DOS'\n-287D2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-287D2C Compression Method    0000 (0) 'Stored'\n-287D2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-287D32 CRC                   00000000 (0)\n-287D36 Compressed Size       00000000 (0)\n-287D3A Uncompressed Size     00000000 (0)\n-287D3E Filename Length       0049 (73)\n-287D40 Extra Length          0009 (9)\n-287D42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x287D42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-287D8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-287D8D   Length              0005 (5)\n-287D8F   Flags               01 (1) 'Modification'\n-287D90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-287D94 PAYLOAD\n-\n-288909 DATA DESCRIPTOR       08074B50 (134695760)\n-28890D CRC                   25691E02 (627645954)\n-288911 Compressed Size       00000B75 (2933)\n-288915 Uncompressed Size     00000B75 (2933)\n-\n-288919 LOCAL HEADER #874     04034B50 (67324752)\n-28891D Extract Zip Spec      14 (20) '2.0'\n-28891E Extract OS            00 (0) 'MS-DOS'\n-28891F General Purpose Flag  0000 (0)\n-288921 Compression Method    0000 (0) 'Stored'\n-288923 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-288927 CRC                   00000000 (0)\n-28892B Compressed Size       00000000 (0)\n-28892F Uncompressed Size     00000000 (0)\n-288933 Filename Length       001E (30)\n-288935 Extra Length          0009 (9)\n-288937 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x288937: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-288955 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-288957   Length              0005 (5)\n-288959   Flags               01 (1) 'Modification'\n-28895A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-28895E LOCAL HEADER #875     04034B50 (67324752)\n-288962 Extract Zip Spec      14 (20) '2.0'\n-288963 Extract OS            00 (0) 'MS-DOS'\n-288964 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-288966 Compression Method    0000 (0) 'Stored'\n-288968 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-28896C CRC                   00000000 (0)\n-288970 Compressed Size       00000000 (0)\n-288974 Uncompressed Size     00000000 (0)\n-288978 Filename Length       0033 (51)\n-28897A Extra Length          0009 (9)\n-28897C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x28897C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2889AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2889B1   Length              0005 (5)\n-2889B3   Flags               01 (1) 'Modification'\n-2889B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2889B8 PAYLOAD\n-\n-290371 DATA DESCRIPTOR       08074B50 (134695760)\n-290375 CRC                   15C91CF2 (365501682)\n-290379 Compressed Size       000079B9 (31161)\n-29037D Uncompressed Size     000079B9 (31161)\n-\n-290381 LOCAL HEADER #876     04034B50 (67324752)\n-290385 Extract Zip Spec      14 (20) '2.0'\n-290386 Extract OS            00 (0) 'MS-DOS'\n-290387 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-290389 Compression Method    0000 (0) 'Stored'\n-29038B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29038F CRC                   00000000 (0)\n-290393 Compressed Size       00000000 (0)\n-290397 Uncompressed Size     00000000 (0)\n-29039B Filename Length       002A (42)\n-29039D Extra Length          0009 (9)\n-29039F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29039F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2903C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2903CB   Length              0005 (5)\n-2903CD   Flags               01 (1) 'Modification'\n-2903CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2903D2 PAYLOAD\n-\n-290A6E DATA DESCRIPTOR       08074B50 (134695760)\n-290A72 CRC                   896B8386 (2305524614)\n-290A76 Compressed Size       0000069C (1692)\n-290A7A Uncompressed Size     0000069C (1692)\n-\n-290A7E LOCAL HEADER #877     04034B50 (67324752)\n-290A82 Extract Zip Spec      14 (20) '2.0'\n-290A83 Extract OS            00 (0) 'MS-DOS'\n-290A84 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-290A86 Compression Method    0000 (0) 'Stored'\n-290A88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-290A8C CRC                   00000000 (0)\n-290A90 Compressed Size       00000000 (0)\n-290A94 Uncompressed Size     00000000 (0)\n-290A98 Filename Length       0028 (40)\n-290A9A Extra Length          0009 (9)\n-290A9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x290A9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-290AC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-290AC6   Length              0005 (5)\n-290AC8   Flags               01 (1) 'Modification'\n-290AC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-290ACD PAYLOAD\n-\n-291236 DATA DESCRIPTOR       08074B50 (134695760)\n-29123A CRC                   2D8D7FE9 (764248041)\n-29123E Compressed Size       00000769 (1897)\n-291242 Uncompressed Size     00000769 (1897)\n-\n-291246 LOCAL HEADER #878     04034B50 (67324752)\n-29124A Extract Zip Spec      14 (20) '2.0'\n-29124B Extract OS            00 (0) 'MS-DOS'\n-29124C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-29124E Compression Method    0000 (0) 'Stored'\n-291250 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-291254 CRC                   00000000 (0)\n-291258 Compressed Size       00000000 (0)\n-29125C Uncompressed Size     00000000 (0)\n-291260 Filename Length       002C (44)\n-291262 Extra Length          0009 (9)\n-291264 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x291264: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-291290 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-291292   Length              0005 (5)\n-291294   Flags               01 (1) 'Modification'\n-291295   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-291299 PAYLOAD\n-\n-291730 DATA DESCRIPTOR       08074B50 (134695760)\n-291734 CRC                   E9761FB8 (3916832696)\n-291738 Compressed Size       00000497 (1175)\n-29173C Uncompressed Size     00000497 (1175)\n-\n-291740 LOCAL HEADER #879     04034B50 (67324752)\n-291744 Extract Zip Spec      14 (20) '2.0'\n-291745 Extract OS            00 (0) 'MS-DOS'\n-291746 General Purpose Flag  0000 (0)\n-291748 Compression Method    0000 (0) 'Stored'\n-29174A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29174E CRC                   00000000 (0)\n-291752 Compressed Size       00000000 (0)\n-291756 Uncompressed Size     00000000 (0)\n-29175A Filename Length       001E (30)\n-29175C Extra Length          0009 (9)\n-29175E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29175E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29177C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29177E   Length              0005 (5)\n-291780   Flags               01 (1) 'Modification'\n-291781   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-291785 LOCAL HEADER #880     04034B50 (67324752)\n-291789 Extract Zip Spec      14 (20) '2.0'\n-29178A Extract OS            00 (0) 'MS-DOS'\n-29178B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-29178D Compression Method    0000 (0) 'Stored'\n-29178F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-291793 CRC                   00000000 (0)\n-291797 Compressed Size       00000000 (0)\n-29179B Uncompressed Size     00000000 (0)\n-29179F Filename Length       0032 (50)\n-2917A1 Extra Length          0009 (9)\n-2917A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2917A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2917D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2917D7   Length              0005 (5)\n-2917D9   Flags               01 (1) 'Modification'\n-2917DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2917DE PAYLOAD\n-\n-296AE3 DATA DESCRIPTOR       08074B50 (134695760)\n-296AE7 CRC                   24647E40 (610565696)\n-296AEB Compressed Size       00005305 (21253)\n-296AEF Uncompressed Size     00005305 (21253)\n-\n-296AF3 LOCAL HEADER #881     04034B50 (67324752)\n-296AF7 Extract Zip Spec      14 (20) '2.0'\n-296AF8 Extract OS            00 (0) 'MS-DOS'\n-296AF9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-296AFB Compression Method    0000 (0) 'Stored'\n-296AFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-296B01 CRC                   00000000 (0)\n-296B05 Compressed Size       00000000 (0)\n-296B09 Uncompressed Size     00000000 (0)\n-296B0D Filename Length       002D (45)\n-296B0F Extra Length          0009 (9)\n-296B11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x296B11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-296B3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-296B40   Length              0005 (5)\n-296B42   Flags               01 (1) 'Modification'\n-296B43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-296B47 PAYLOAD\n-\n-29747D DATA DESCRIPTOR       08074B50 (134695760)\n-297481 CRC                   9612E24D (2517819981)\n-297485 Compressed Size       00000936 (2358)\n-297489 Uncompressed Size     00000936 (2358)\n-\n-29748D LOCAL HEADER #882     04034B50 (67324752)\n-297491 Extract Zip Spec      14 (20) '2.0'\n-297492 Extract OS            00 (0) 'MS-DOS'\n-297493 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-297495 Compression Method    0000 (0) 'Stored'\n-297497 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29749B CRC                   00000000 (0)\n-29749F Compressed Size       00000000 (0)\n-2974A3 Uncompressed Size     00000000 (0)\n-2974A7 Filename Length       0029 (41)\n-2974A9 Extra Length          0009 (9)\n-2974AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2974AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2974D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2974D6   Length              0005 (5)\n-2974D8   Flags               01 (1) 'Modification'\n-2974D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2974DD PAYLOAD\n-\n-297A7B DATA DESCRIPTOR       08074B50 (134695760)\n-297A7F CRC                   40170699 (1075250841)\n-297A83 Compressed Size       0000059E (1438)\n-297A87 Uncompressed Size     0000059E (1438)\n-\n-297A8B LOCAL HEADER #883     04034B50 (67324752)\n-297A8F Extract Zip Spec      14 (20) '2.0'\n-297A90 Extract OS            00 (0) 'MS-DOS'\n-297A91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-297A93 Compression Method    0000 (0) 'Stored'\n-297A95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-297A99 CRC                   00000000 (0)\n-297A9D Compressed Size       00000000 (0)\n-297AA1 Uncompressed Size     00000000 (0)\n-297AA5 Filename Length       0038 (56)\n-297AA7 Extra Length          0009 (9)\n-297AA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x297AA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-297AE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-297AE3   Length              0005 (5)\n-297AE5   Flags               01 (1) 'Modification'\n-297AE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-297AEA PAYLOAD\n-\n-298D33 DATA DESCRIPTOR       08074B50 (134695760)\n-298D37 CRC                   A604EAF8 (2785340152)\n-298D3B Compressed Size       00001249 (4681)\n-298D3F Uncompressed Size     00001249 (4681)\n-\n-298D43 LOCAL HEADER #884     04034B50 (67324752)\n-298D47 Extract Zip Spec      14 (20) '2.0'\n-298D48 Extract OS            00 (0) 'MS-DOS'\n-298D49 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-298D4B Compression Method    0000 (0) 'Stored'\n-298D4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-298D51 CRC                   00000000 (0)\n-298D55 Compressed Size       00000000 (0)\n-298D59 Uncompressed Size     00000000 (0)\n-298D5D Filename Length       002C (44)\n-298D5F Extra Length          0009 (9)\n-298D61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x298D61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-298D8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-298D8F   Length              0005 (5)\n-298D91   Flags               01 (1) 'Modification'\n-298D92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-298D96 PAYLOAD\n-\n-29A110 DATA DESCRIPTOR       08074B50 (134695760)\n-29A114 CRC                   D7EB77B9 (3622533049)\n-29A118 Compressed Size       0000137A (4986)\n-29A11C Uncompressed Size     0000137A (4986)\n-\n-29A120 LOCAL HEADER #885     04034B50 (67324752)\n-29A124 Extract Zip Spec      14 (20) '2.0'\n-29A125 Extract OS            00 (0) 'MS-DOS'\n-29A126 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-29A128 Compression Method    0000 (0) 'Stored'\n-29A12A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29A12E CRC                   00000000 (0)\n-29A132 Compressed Size       00000000 (0)\n-29A136 Uncompressed Size     00000000 (0)\n-29A13A Filename Length       0039 (57)\n-29A13C Extra Length          0009 (9)\n-29A13E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29A13E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29A177 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29A179   Length              0005 (5)\n-29A17B   Flags               01 (1) 'Modification'\n-29A17C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-29A180 PAYLOAD\n-\n-29A690 DATA DESCRIPTOR       08074B50 (134695760)\n-29A694 CRC                   95FCA49F (2516362399)\n-29A698 Compressed Size       00000510 (1296)\n-29A69C Uncompressed Size     00000510 (1296)\n-\n-29A6A0 LOCAL HEADER #886     04034B50 (67324752)\n-29A6A4 Extract Zip Spec      14 (20) '2.0'\n-29A6A5 Extract OS            00 (0) 'MS-DOS'\n-29A6A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-29A6A8 Compression Method    0000 (0) 'Stored'\n-29A6AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29A6AE CRC                   00000000 (0)\n-29A6B2 Compressed Size       00000000 (0)\n-29A6B6 Uncompressed Size     00000000 (0)\n-29A6BA Filename Length       002E (46)\n-29A6BC Extra Length          0009 (9)\n-29A6BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29A6BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29A6EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29A6EE   Length              0005 (5)\n-29A6F0   Flags               01 (1) 'Modification'\n-29A6F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-29A6F5 PAYLOAD\n-\n-29BCAD DATA DESCRIPTOR       08074B50 (134695760)\n-29BCB1 CRC                   EEA257C4 (4003616708)\n-29BCB5 Compressed Size       000015B8 (5560)\n-29BCB9 Uncompressed Size     000015B8 (5560)\n-\n-29BCBD LOCAL HEADER #887     04034B50 (67324752)\n-29BCC1 Extract Zip Spec      14 (20) '2.0'\n-29BCC2 Extract OS            00 (0) 'MS-DOS'\n-29BCC3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-29BCC5 Compression Method    0000 (0) 'Stored'\n-29BCC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-29BCCB CRC                   00000000 (0)\n-29BCCF Compressed Size       00000000 (0)\n-29BCD3 Uncompressed Size     00000000 (0)\n-29BCD7 Filename Length       002D (45)\n-29BCD9 Extra Length          0009 (9)\n-29BCDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x29BCDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-29BD08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-29BD0A   Length              0005 (5)\n-29BD0C   Flags               01 (1) 'Modification'\n-29BD0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-29BD11 PAYLOAD\n-\n-2A0334 DATA DESCRIPTOR       08074B50 (134695760)\n-2A0338 CRC                   54F0EEAE (1425075886)\n-2A033C Compressed Size       00004623 (17955)\n-2A0340 Uncompressed Size     00004623 (17955)\n-\n-2A0344 LOCAL HEADER #888     04034B50 (67324752)\n-2A0348 Extract Zip Spec      14 (20) '2.0'\n-2A0349 Extract OS            00 (0) 'MS-DOS'\n-2A034A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2A034C Compression Method    0000 (0) 'Stored'\n-2A034E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A0352 CRC                   00000000 (0)\n-2A0356 Compressed Size       00000000 (0)\n-2A035A Uncompressed Size     00000000 (0)\n-2A035E Filename Length       0032 (50)\n-2A0360 Extra Length          0009 (9)\n-2A0362 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A0362: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A0394 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A0396   Length              0005 (5)\n-2A0398   Flags               01 (1) 'Modification'\n-2A0399   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A039D PAYLOAD\n-\n-2A30FF DATA DESCRIPTOR       08074B50 (134695760)\n-2A3103 CRC                   49173B6A (1226259306)\n-2A3107 Compressed Size       00002D62 (11618)\n-2A310B Uncompressed Size     00002D62 (11618)\n-\n-2A310F LOCAL HEADER #889     04034B50 (67324752)\n-2A3113 Extract Zip Spec      14 (20) '2.0'\n-2A3114 Extract OS            00 (0) 'MS-DOS'\n-2A3115 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2A3117 Compression Method    0000 (0) 'Stored'\n-2A3119 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A311D CRC                   00000000 (0)\n-2A3121 Compressed Size       00000000 (0)\n-2A3125 Uncompressed Size     00000000 (0)\n-2A3129 Filename Length       0036 (54)\n-2A312B Extra Length          0009 (9)\n-2A312D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A312D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A3163 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A3165   Length              0005 (5)\n-2A3167   Flags               01 (1) 'Modification'\n-2A3168   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A316C PAYLOAD\n-\n-2A54CA DATA DESCRIPTOR       08074B50 (134695760)\n-2A54CE CRC                   094FFA20 (156236320)\n-2A54D2 Compressed Size       0000235E (9054)\n-2A54D6 Uncompressed Size     0000235E (9054)\n-\n-2A54DA LOCAL HEADER #890     04034B50 (67324752)\n-2A54DE Extract Zip Spec      14 (20) '2.0'\n-2A54DF Extract OS            00 (0) 'MS-DOS'\n-2A54E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2A54E2 Compression Method    0000 (0) 'Stored'\n-2A54E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A54E8 CRC                   00000000 (0)\n-2A54EC Compressed Size       00000000 (0)\n-2A54F0 Uncompressed Size     00000000 (0)\n-2A54F4 Filename Length       0034 (52)\n-2A54F6 Extra Length          0009 (9)\n-2A54F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A54F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A552C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A552E   Length              0005 (5)\n-2A5530   Flags               01 (1) 'Modification'\n-2A5531   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A5535 PAYLOAD\n-\n-2A66FE DATA DESCRIPTOR       08074B50 (134695760)\n-2A6702 CRC                   0EFD7C48 (251493448)\n-2A6706 Compressed Size       000011C9 (4553)\n-2A670A Uncompressed Size     000011C9 (4553)\n-\n-2A670E LOCAL HEADER #891     04034B50 (67324752)\n-2A6712 Extract Zip Spec      14 (20) '2.0'\n-2A6713 Extract OS            00 (0) 'MS-DOS'\n-2A6714 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2A6716 Compression Method    0000 (0) 'Stored'\n-2A6718 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A671C CRC                   00000000 (0)\n-2A6720 Compressed Size       00000000 (0)\n-2A6724 Uncompressed Size     00000000 (0)\n-2A6728 Filename Length       002E (46)\n-2A672A Extra Length          0009 (9)\n-2A672C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A672C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A675A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A675C   Length              0005 (5)\n-2A675E   Flags               01 (1) 'Modification'\n-2A675F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A6763 PAYLOAD\n-\n-2A9718 DATA DESCRIPTOR       08074B50 (134695760)\n-2A971C CRC                   8CFD4A70 (2365409904)\n-2A9720 Compressed Size       00002FB5 (12213)\n-2A9724 Uncompressed Size     00002FB5 (12213)\n-\n-2A9728 LOCAL HEADER #892     04034B50 (67324752)\n-2A972C Extract Zip Spec      14 (20) '2.0'\n-2A972D Extract OS            00 (0) 'MS-DOS'\n-2A972E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2A9730 Compression Method    0000 (0) 'Stored'\n-2A9732 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2A9736 CRC                   00000000 (0)\n-2A973A Compressed Size       00000000 (0)\n-2A973E Uncompressed Size     00000000 (0)\n-2A9742 Filename Length       002E (46)\n-2A9744 Extra Length          0009 (9)\n-2A9746 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2A9746: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2A9774 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2A9776   Length              0005 (5)\n-2A9778   Flags               01 (1) 'Modification'\n-2A9779   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2A977D PAYLOAD\n-\n-2AA021 DATA DESCRIPTOR       08074B50 (134695760)\n-2AA025 CRC                   81A24999 (2174896537)\n-2AA029 Compressed Size       000008A4 (2212)\n-2AA02D Uncompressed Size     000008A4 (2212)\n-\n-2AA031 LOCAL HEADER #893     04034B50 (67324752)\n-2AA035 Extract Zip Spec      14 (20) '2.0'\n-2AA036 Extract OS            00 (0) 'MS-DOS'\n-2AA037 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2AA039 Compression Method    0000 (0) 'Stored'\n-2AA03B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AA03F CRC                   00000000 (0)\n-2AA043 Compressed Size       00000000 (0)\n-2AA047 Uncompressed Size     00000000 (0)\n-2AA04B Filename Length       0030 (48)\n-2AA04D Extra Length          0009 (9)\n-2AA04F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AA04F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AA07F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AA081   Length              0005 (5)\n-2AA083   Flags               01 (1) 'Modification'\n-2AA084   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2AA088 PAYLOAD\n-\n-2AA897 DATA DESCRIPTOR       08074B50 (134695760)\n-2AA89B CRC                   831A7179 (2199548281)\n-2AA89F Compressed Size       0000080F (2063)\n-2AA8A3 Uncompressed Size     0000080F (2063)\n-\n-2AA8A7 LOCAL HEADER #894     04034B50 (67324752)\n-2AA8AB Extract Zip Spec      14 (20) '2.0'\n-2AA8AC Extract OS            00 (0) 'MS-DOS'\n-2AA8AD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2AA8AF Compression Method    0000 (0) 'Stored'\n-2AA8B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AA8B5 CRC                   00000000 (0)\n-2AA8B9 Compressed Size       00000000 (0)\n-2AA8BD Uncompressed Size     00000000 (0)\n-2AA8C1 Filename Length       002F (47)\n-2AA8C3 Extra Length          0009 (9)\n-2AA8C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AA8C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AA8F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AA8F6   Length              0005 (5)\n-2AA8F8   Flags               01 (1) 'Modification'\n-2AA8F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2AA8FD PAYLOAD\n-\n-2ABD3A DATA DESCRIPTOR       08074B50 (134695760)\n-2ABD3E CRC                   7319AF3E (1931063102)\n-2ABD42 Compressed Size       0000143D (5181)\n-2ABD46 Uncompressed Size     0000143D (5181)\n-\n-2ABD4A LOCAL HEADER #895     04034B50 (67324752)\n-2ABD4E Extract Zip Spec      14 (20) '2.0'\n-2ABD4F Extract OS            00 (0) 'MS-DOS'\n-2ABD50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2ABD52 Compression Method    0000 (0) 'Stored'\n-2ABD54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2ABD58 CRC                   00000000 (0)\n-2ABD5C Compressed Size       00000000 (0)\n-2ABD60 Uncompressed Size     00000000 (0)\n-2ABD64 Filename Length       002D (45)\n-2ABD66 Extra Length          0009 (9)\n-2ABD68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2ABD68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2ABD95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2ABD97   Length              0005 (5)\n-2ABD99   Flags               01 (1) 'Modification'\n-2ABD9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2ABD9E PAYLOAD\n-\n-2AD0DF DATA DESCRIPTOR       08074B50 (134695760)\n-2AD0E3 CRC                   D07CEF7E (3497848702)\n-2AD0E7 Compressed Size       00001341 (4929)\n-2AD0EB Uncompressed Size     00001341 (4929)\n-\n-2AD0EF LOCAL HEADER #896     04034B50 (67324752)\n-2AD0F3 Extract Zip Spec      14 (20) '2.0'\n-2AD0F4 Extract OS            00 (0) 'MS-DOS'\n-2AD0F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2AD0F7 Compression Method    0000 (0) 'Stored'\n-2AD0F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AD0FD CRC                   00000000 (0)\n-2AD101 Compressed Size       00000000 (0)\n-2AD105 Uncompressed Size     00000000 (0)\n-2AD109 Filename Length       0029 (41)\n-2AD10B Extra Length          0009 (9)\n-2AD10D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AD10D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AD136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AD138   Length              0005 (5)\n-2AD13A   Flags               01 (1) 'Modification'\n-2AD13B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2AD13F PAYLOAD\n-\n-2AD582 DATA DESCRIPTOR       08074B50 (134695760)\n-2AD586 CRC                   4E3FC833 (1312802867)\n-2AD58A Compressed Size       00000443 (1091)\n-2AD58E Uncompressed Size     00000443 (1091)\n-\n-2AD592 LOCAL HEADER #897     04034B50 (67324752)\n-2AD596 Extract Zip Spec      14 (20) '2.0'\n-2AD597 Extract OS            00 (0) 'MS-DOS'\n-2AD598 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2AD59A Compression Method    0000 (0) 'Stored'\n-2AD59C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AD5A0 CRC                   00000000 (0)\n-2AD5A4 Compressed Size       00000000 (0)\n-2AD5A8 Uncompressed Size     00000000 (0)\n-2AD5AC Filename Length       002A (42)\n-2AD5AE Extra Length          0009 (9)\n-2AD5B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AD5B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AD5DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AD5DC   Length              0005 (5)\n-2AD5DE   Flags               01 (1) 'Modification'\n-2AD5DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2AD5E3 PAYLOAD\n-\n-2AF6FA DATA DESCRIPTOR       08074B50 (134695760)\n-2AF6FE CRC                   7A9C058A (2057045386)\n-2AF702 Compressed Size       00002117 (8471)\n-2AF706 Uncompressed Size     00002117 (8471)\n-\n-2AF70A LOCAL HEADER #898     04034B50 (67324752)\n-2AF70E Extract Zip Spec      14 (20) '2.0'\n-2AF70F Extract OS            00 (0) 'MS-DOS'\n-2AF710 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2AF712 Compression Method    0000 (0) 'Stored'\n-2AF714 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2AF718 CRC                   00000000 (0)\n-2AF71C Compressed Size       00000000 (0)\n-2AF720 Uncompressed Size     00000000 (0)\n-2AF724 Filename Length       002A (42)\n-2AF726 Extra Length          0009 (9)\n-2AF728 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2AF728: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2AF752 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2AF754   Length              0005 (5)\n-2AF756   Flags               01 (1) 'Modification'\n-2AF757   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2AF75B PAYLOAD\n-\n-2B07A7 DATA DESCRIPTOR       08074B50 (134695760)\n-2B07AB CRC                   A4F19F22 (2767298338)\n-2B07AF Compressed Size       0000104C (4172)\n-2B07B3 Uncompressed Size     0000104C (4172)\n-\n-2B07B7 LOCAL HEADER #899     04034B50 (67324752)\n-2B07BB Extract Zip Spec      14 (20) '2.0'\n-2B07BC Extract OS            00 (0) 'MS-DOS'\n-2B07BD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B07BF Compression Method    0000 (0) 'Stored'\n-2B07C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B07C5 CRC                   00000000 (0)\n-2B07C9 Compressed Size       00000000 (0)\n-2B07CD Uncompressed Size     00000000 (0)\n-2B07D1 Filename Length       002B (43)\n-2B07D3 Extra Length          0009 (9)\n-2B07D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B07D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B0800 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B0802   Length              0005 (5)\n-2B0804   Flags               01 (1) 'Modification'\n-2B0805   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B0809 PAYLOAD\n-\n-2B296F DATA DESCRIPTOR       08074B50 (134695760)\n-2B2973 CRC                   E7A31A4E (3886225998)\n-2B2977 Compressed Size       00002166 (8550)\n-2B297B Uncompressed Size     00002166 (8550)\n-\n-2B297F LOCAL HEADER #900     04034B50 (67324752)\n-2B2983 Extract Zip Spec      14 (20) '2.0'\n-2B2984 Extract OS            00 (0) 'MS-DOS'\n-2B2985 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B2987 Compression Method    0000 (0) 'Stored'\n-2B2989 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B298D CRC                   00000000 (0)\n-2B2991 Compressed Size       00000000 (0)\n-2B2995 Uncompressed Size     00000000 (0)\n-2B2999 Filename Length       002B (43)\n-2B299B Extra Length          0009 (9)\n-2B299D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B299D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B29C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B29CA   Length              0005 (5)\n-2B29CC   Flags               01 (1) 'Modification'\n-2B29CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B29D1 PAYLOAD\n-\n-2B3593 DATA DESCRIPTOR       08074B50 (134695760)\n-2B3597 CRC                   139F375C (329201500)\n-2B359B Compressed Size       00000BC2 (3010)\n-2B359F Uncompressed Size     00000BC2 (3010)\n-\n-2B35A3 LOCAL HEADER #901     04034B50 (67324752)\n-2B35A7 Extract Zip Spec      14 (20) '2.0'\n-2B35A8 Extract OS            00 (0) 'MS-DOS'\n-2B35A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B35AB Compression Method    0000 (0) 'Stored'\n-2B35AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B35B1 CRC                   00000000 (0)\n-2B35B5 Compressed Size       00000000 (0)\n-2B35B9 Uncompressed Size     00000000 (0)\n-2B35BD Filename Length       0026 (38)\n-2B35BF Extra Length          0009 (9)\n-2B35C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B35C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B35E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B35E9   Length              0005 (5)\n-2B35EB   Flags               01 (1) 'Modification'\n-2B35EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B35F0 PAYLOAD\n-\n-2B439A DATA DESCRIPTOR       08074B50 (134695760)\n-2B439E CRC                   C39767CB (3281479627)\n-2B43A2 Compressed Size       00000DAA (3498)\n-2B43A6 Uncompressed Size     00000DAA (3498)\n-\n-2B43AA LOCAL HEADER #902     04034B50 (67324752)\n-2B43AE Extract Zip Spec      14 (20) '2.0'\n-2B43AF Extract OS            00 (0) 'MS-DOS'\n-2B43B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B43B2 Compression Method    0000 (0) 'Stored'\n-2B43B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B43B8 CRC                   00000000 (0)\n-2B43BC Compressed Size       00000000 (0)\n-2B43C0 Uncompressed Size     00000000 (0)\n-2B43C4 Filename Length       002C (44)\n-2B43C6 Extra Length          0009 (9)\n-2B43C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B43C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B43F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B43F6   Length              0005 (5)\n-2B43F8   Flags               01 (1) 'Modification'\n-2B43F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B43FD PAYLOAD\n-\n-2B54BE DATA DESCRIPTOR       08074B50 (134695760)\n-2B54C2 CRC                   0C719C80 (208772224)\n-2B54C6 Compressed Size       000010C1 (4289)\n-2B54CA Uncompressed Size     000010C1 (4289)\n-\n-2B54CE LOCAL HEADER #903     04034B50 (67324752)\n-2B54D2 Extract Zip Spec      14 (20) '2.0'\n-2B54D3 Extract OS            00 (0) 'MS-DOS'\n-2B54D4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B54D6 Compression Method    0000 (0) 'Stored'\n-2B54D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B54DC CRC                   00000000 (0)\n-2B54E0 Compressed Size       00000000 (0)\n-2B54E4 Uncompressed Size     00000000 (0)\n-2B54E8 Filename Length       002A (42)\n-2B54EA Extra Length          0009 (9)\n-2B54EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B54EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B5516 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B5518   Length              0005 (5)\n-2B551A   Flags               01 (1) 'Modification'\n-2B551B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B551F PAYLOAD\n-\n-2B65C1 DATA DESCRIPTOR       08074B50 (134695760)\n-2B65C5 CRC                   4A73FA6D (1249114733)\n-2B65C9 Compressed Size       000010A2 (4258)\n-2B65CD Uncompressed Size     000010A2 (4258)\n-\n-2B65D1 LOCAL HEADER #904     04034B50 (67324752)\n-2B65D5 Extract Zip Spec      14 (20) '2.0'\n-2B65D6 Extract OS            00 (0) 'MS-DOS'\n-2B65D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B65D9 Compression Method    0000 (0) 'Stored'\n-2B65DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B65DF CRC                   00000000 (0)\n-2B65E3 Compressed Size       00000000 (0)\n-2B65E7 Uncompressed Size     00000000 (0)\n-2B65EB Filename Length       002E (46)\n-2B65ED Extra Length          0009 (9)\n-2B65EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B65EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B661D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B661F   Length              0005 (5)\n-2B6621   Flags               01 (1) 'Modification'\n-2B6622   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B6626 PAYLOAD\n-\n-2B6F86 DATA DESCRIPTOR       08074B50 (134695760)\n-2B6F8A CRC                   7D5526CA (2102732490)\n-2B6F8E Compressed Size       00000960 (2400)\n-2B6F92 Uncompressed Size     00000960 (2400)\n-\n-2B6F96 LOCAL HEADER #905     04034B50 (67324752)\n-2B6F9A Extract Zip Spec      14 (20) '2.0'\n-2B6F9B Extract OS            00 (0) 'MS-DOS'\n-2B6F9C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B6F9E Compression Method    0000 (0) 'Stored'\n-2B6FA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B6FA4 CRC                   00000000 (0)\n-2B6FA8 Compressed Size       00000000 (0)\n-2B6FAC Uncompressed Size     00000000 (0)\n-2B6FB0 Filename Length       0033 (51)\n-2B6FB2 Extra Length          0009 (9)\n-2B6FB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B6FB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B6FE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B6FE9   Length              0005 (5)\n-2B6FEB   Flags               01 (1) 'Modification'\n-2B6FEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B6FF0 PAYLOAD\n-\n-2B7929 DATA DESCRIPTOR       08074B50 (134695760)\n-2B792D CRC                   3C2ED9BE (1009703358)\n-2B7931 Compressed Size       00000939 (2361)\n-2B7935 Uncompressed Size     00000939 (2361)\n-\n-2B7939 LOCAL HEADER #906     04034B50 (67324752)\n-2B793D Extract Zip Spec      14 (20) '2.0'\n-2B793E Extract OS            00 (0) 'MS-DOS'\n-2B793F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2B7941 Compression Method    0000 (0) 'Stored'\n-2B7943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2B7947 CRC                   00000000 (0)\n-2B794B Compressed Size       00000000 (0)\n-2B794F Uncompressed Size     00000000 (0)\n-2B7953 Filename Length       002E (46)\n-2B7955 Extra Length          0009 (9)\n-2B7957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2B7957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2B7985 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2B7987   Length              0005 (5)\n-2B7989   Flags               01 (1) 'Modification'\n-2B798A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2B798E PAYLOAD\n-\n-2BB359 DATA DESCRIPTOR       08074B50 (134695760)\n-2BB35D CRC                   BA95C40E (3130377230)\n-2BB361 Compressed Size       000039CB (14795)\n-2BB365 Uncompressed Size     000039CB (14795)\n-\n-2BB369 LOCAL HEADER #907     04034B50 (67324752)\n-2BB36D Extract Zip Spec      14 (20) '2.0'\n-2BB36E Extract OS            00 (0) 'MS-DOS'\n-2BB36F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2BB371 Compression Method    0000 (0) 'Stored'\n-2BB373 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BB377 CRC                   00000000 (0)\n-2BB37B Compressed Size       00000000 (0)\n-2BB37F Uncompressed Size     00000000 (0)\n-2BB383 Filename Length       0035 (53)\n-2BB385 Extra Length          0009 (9)\n-2BB387 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BB387: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BB3BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BB3BE   Length              0005 (5)\n-2BB3C0   Flags               01 (1) 'Modification'\n-2BB3C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2BB3C5 PAYLOAD\n-\n-2BBC20 DATA DESCRIPTOR       08074B50 (134695760)\n-2BBC24 CRC                   A4EA9AD2 (2766838482)\n-2BBC28 Compressed Size       0000085B (2139)\n-2BBC2C Uncompressed Size     0000085B (2139)\n-\n-2BBC30 LOCAL HEADER #908     04034B50 (67324752)\n-2BBC34 Extract Zip Spec      14 (20) '2.0'\n-2BBC35 Extract OS            00 (0) 'MS-DOS'\n-2BBC36 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2BBC38 Compression Method    0000 (0) 'Stored'\n-2BBC3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2BBC3E CRC                   00000000 (0)\n-2BBC42 Compressed Size       00000000 (0)\n-2BBC46 Uncompressed Size     00000000 (0)\n-2BBC4A Filename Length       002B (43)\n-2BBC4C Extra Length          0009 (9)\n-2BBC4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2BBC4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2BBC79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2BBC7B   Length              0005 (5)\n-2BBC7D   Flags               01 (1) 'Modification'\n-2BBC7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2BBC82 PAYLOAD\n-\n-2C1A49 DATA DESCRIPTOR       08074B50 (134695760)\n-2C1A4D CRC                   90514D51 (2421247313)\n-2C1A51 Compressed Size       00005DC7 (24007)\n-2C1A55 Uncompressed Size     00005DC7 (24007)\n-\n-2C1A59 LOCAL HEADER #909     04034B50 (67324752)\n-2C1A5D Extract Zip Spec      14 (20) '2.0'\n-2C1A5E Extract OS            00 (0) 'MS-DOS'\n-2C1A5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2C1A61 Compression Method    0000 (0) 'Stored'\n-2C1A63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C1A67 CRC                   00000000 (0)\n-2C1A6B Compressed Size       00000000 (0)\n-2C1A6F Uncompressed Size     00000000 (0)\n-2C1A73 Filename Length       0027 (39)\n-2C1A75 Extra Length          0009 (9)\n-2C1A77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C1A77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C1A9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C1AA0   Length              0005 (5)\n-2C1AA2   Flags               01 (1) 'Modification'\n-2C1AA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2C1AA7 PAYLOAD\n-\n-2C22BA DATA DESCRIPTOR       08074B50 (134695760)\n-2C22BE CRC                   6148ED28 (1632169256)\n-2C22C2 Compressed Size       00000813 (2067)\n-2C22C6 Uncompressed Size     00000813 (2067)\n-\n-2C22CA LOCAL HEADER #910     04034B50 (67324752)\n-2C22CE Extract Zip Spec      14 (20) '2.0'\n-2C22CF Extract OS            00 (0) 'MS-DOS'\n-2C22D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2C22D2 Compression Method    0000 (0) 'Stored'\n-2C22D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C22D8 CRC                   00000000 (0)\n-2C22DC Compressed Size       00000000 (0)\n-2C22E0 Uncompressed Size     00000000 (0)\n-2C22E4 Filename Length       002C (44)\n-2C22E6 Extra Length          0009 (9)\n-2C22E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C22E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C2314 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C2316   Length              0005 (5)\n-2C2318   Flags               01 (1) 'Modification'\n-2C2319   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2C231D PAYLOAD\n-\n-2C2C77 DATA DESCRIPTOR       08074B50 (134695760)\n-2C2C7B CRC                   32B357AB (850614187)\n-2C2C7F Compressed Size       0000095A (2394)\n-2C2C83 Uncompressed Size     0000095A (2394)\n-\n-2C2C87 LOCAL HEADER #911     04034B50 (67324752)\n-2C2C8B Extract Zip Spec      14 (20) '2.0'\n-2C2C8C Extract OS            00 (0) 'MS-DOS'\n-2C2C8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2C2C8F Compression Method    0000 (0) 'Stored'\n-2C2C91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2C2C95 CRC                   00000000 (0)\n-2C2C99 Compressed Size       00000000 (0)\n-2C2C9D Uncompressed Size     00000000 (0)\n-2C2CA1 Filename Length       002C (44)\n-2C2CA3 Extra Length          0009 (9)\n-2C2CA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2C2CA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2C2CD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2C2CD3   Length              0005 (5)\n-2C2CD5   Flags               01 (1) 'Modification'\n-2C2CD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2C2CDA PAYLOAD\n-\n-2CAFFA DATA DESCRIPTOR       08074B50 (134695760)\n-2CAFFE CRC                   34D97477 (886666359)\n-2CB002 Compressed Size       00008320 (33568)\n-2CB006 Uncompressed Size     00008320 (33568)\n-\n-2CB00A LOCAL HEADER #912     04034B50 (67324752)\n-2CB00E Extract Zip Spec      14 (20) '2.0'\n-2CB00F Extract OS            00 (0) 'MS-DOS'\n-2CB010 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2CB012 Compression Method    0000 (0) 'Stored'\n-2CB014 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2CB018 CRC                   00000000 (0)\n-2CB01C Compressed Size       00000000 (0)\n-2CB020 Uncompressed Size     00000000 (0)\n-2CB024 Filename Length       002F (47)\n-2CB026 Extra Length          0009 (9)\n-2CB028 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2CB028: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2CB057 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2CB059   Length              0005 (5)\n-2CB05B   Flags               01 (1) 'Modification'\n-2CB05C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2CB060 PAYLOAD\n-\n-2D697D DATA DESCRIPTOR       08074B50 (134695760)\n-2D6981 CRC                   6788144F (1736971343)\n-2D6985 Compressed Size       0000B91D (47389)\n-2D6989 Uncompressed Size     0000B91D (47389)\n-\n-2D698D LOCAL HEADER #913     04034B50 (67324752)\n-2D6991 Extract Zip Spec      14 (20) '2.0'\n-2D6992 Extract OS            00 (0) 'MS-DOS'\n-2D6993 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2D6995 Compression Method    0000 (0) 'Stored'\n-2D6997 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2D699B CRC                   00000000 (0)\n-2D699F Compressed Size       00000000 (0)\n-2D69A3 Uncompressed Size     00000000 (0)\n-2D69A7 Filename Length       0038 (56)\n-2D69A9 Extra Length          0009 (9)\n-2D69AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2D69AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2D69E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2D69E5   Length              0005 (5)\n-2D69E7   Flags               01 (1) 'Modification'\n-2D69E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2D69EC PAYLOAD\n-\n-2D80F3 DATA DESCRIPTOR       08074B50 (134695760)\n-2D80F7 CRC                   9D4E3C73 (2639150195)\n-2D80FB Compressed Size       00001707 (5895)\n-2D80FF Uncompressed Size     00001707 (5895)\n-\n-2D8103 LOCAL HEADER #914     04034B50 (67324752)\n-2D8107 Extract Zip Spec      14 (20) '2.0'\n-2D8108 Extract OS            00 (0) 'MS-DOS'\n-2D8109 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2D810B Compression Method    0000 (0) 'Stored'\n-2D810D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2D8111 CRC                   00000000 (0)\n-2D8115 Compressed Size       00000000 (0)\n-2D8119 Uncompressed Size     00000000 (0)\n-2D811D Filename Length       003C (60)\n-2D811F Extra Length          0009 (9)\n-2D8121 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2D8121: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2D815D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2D815F   Length              0005 (5)\n-2D8161   Flags               01 (1) 'Modification'\n-2D8162   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2D8166 PAYLOAD\n-\n-2D9330 DATA DESCRIPTOR       08074B50 (134695760)\n-2D9334 CRC                   359BAAF7 (899394295)\n-2D9338 Compressed Size       000011CA (4554)\n-2D933C Uncompressed Size     000011CA (4554)\n-\n-2D9340 LOCAL HEADER #915     04034B50 (67324752)\n-2D9344 Extract Zip Spec      14 (20) '2.0'\n-2D9345 Extract OS            00 (0) 'MS-DOS'\n-2D9346 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2D9348 Compression Method    0000 (0) 'Stored'\n-2D934A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2D934E CRC                   00000000 (0)\n-2D9352 Compressed Size       00000000 (0)\n-2D9356 Uncompressed Size     00000000 (0)\n-2D935A Filename Length       0028 (40)\n-2D935C Extra Length          0009 (9)\n-2D935E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2D935E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2D9386 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2D9388   Length              0005 (5)\n-2D938A   Flags               01 (1) 'Modification'\n-2D938B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2D938F PAYLOAD\n-\n-2DA04C DATA DESCRIPTOR       08074B50 (134695760)\n-2DA050 CRC                   4DF6AB6E (1308011374)\n-2DA054 Compressed Size       00000CBD (3261)\n-2DA058 Uncompressed Size     00000CBD (3261)\n-\n-2DA05C LOCAL HEADER #916     04034B50 (67324752)\n-2DA060 Extract Zip Spec      14 (20) '2.0'\n-2DA061 Extract OS            00 (0) 'MS-DOS'\n-2DA062 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2DA064 Compression Method    0000 (0) 'Stored'\n-2DA066 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2DA06A CRC                   00000000 (0)\n-2DA06E Compressed Size       00000000 (0)\n-2DA072 Uncompressed Size     00000000 (0)\n-2DA076 Filename Length       0044 (68)\n-2DA078 Extra Length          0009 (9)\n-2DA07A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2DA07A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2DA0BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2DA0C0   Length              0005 (5)\n-2DA0C2   Flags               01 (1) 'Modification'\n-2DA0C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2DA0C7 PAYLOAD\n-\n-2DAAE3 DATA DESCRIPTOR       08074B50 (134695760)\n-2DAAE7 CRC                   E15897D6 (3780679638)\n-2DAAEB Compressed Size       00000A1C (2588)\n-2DAAEF Uncompressed Size     00000A1C (2588)\n-\n-2DAAF3 LOCAL HEADER #917     04034B50 (67324752)\n-2DAAF7 Extract Zip Spec      14 (20) '2.0'\n-2DAAF8 Extract OS            00 (0) 'MS-DOS'\n-2DAAF9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2DAAFB Compression Method    0000 (0) 'Stored'\n-2DAAFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2DAB01 CRC                   00000000 (0)\n-2DAB05 Compressed Size       00000000 (0)\n-2DAB09 Uncompressed Size     00000000 (0)\n-2DAB0D Filename Length       002E (46)\n-2DAB0F Extra Length          0009 (9)\n-2DAB11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2DAB11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2DAB3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2DAB41   Length              0005 (5)\n-2DAB43   Flags               01 (1) 'Modification'\n-2DAB44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2DAB48 PAYLOAD\n-\n-2E3EB8 DATA DESCRIPTOR       08074B50 (134695760)\n-2E3EBC CRC                   080CFD86 (135069062)\n-2E3EC0 Compressed Size       00009370 (37744)\n-2E3EC4 Uncompressed Size     00009370 (37744)\n-\n-2E3EC8 LOCAL HEADER #918     04034B50 (67324752)\n-2E3ECC Extract Zip Spec      14 (20) '2.0'\n-2E3ECD Extract OS            00 (0) 'MS-DOS'\n-2E3ECE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2E3ED0 Compression Method    0000 (0) 'Stored'\n-2E3ED2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2E3ED6 CRC                   00000000 (0)\n-2E3EDA Compressed Size       00000000 (0)\n-2E3EDE Uncompressed Size     00000000 (0)\n-2E3EE2 Filename Length       002C (44)\n-2E3EE4 Extra Length          0009 (9)\n-2E3EE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2E3EE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2E3F12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2E3F14   Length              0005 (5)\n-2E3F16   Flags               01 (1) 'Modification'\n-2E3F17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2E3F1B PAYLOAD\n-\n-2E6113 DATA DESCRIPTOR       08074B50 (134695760)\n-2E6117 CRC                   45127F53 (1158840147)\n-2E611B Compressed Size       000021F8 (8696)\n-2E611F Uncompressed Size     000021F8 (8696)\n-\n-2E6123 LOCAL HEADER #919     04034B50 (67324752)\n-2E6127 Extract Zip Spec      14 (20) '2.0'\n-2E6128 Extract OS            00 (0) 'MS-DOS'\n-2E6129 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2E612B Compression Method    0000 (0) 'Stored'\n-2E612D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2E6131 CRC                   00000000 (0)\n-2E6135 Compressed Size       00000000 (0)\n-2E6139 Uncompressed Size     00000000 (0)\n-2E613D Filename Length       002B (43)\n-2E613F Extra Length          0009 (9)\n-2E6141 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2E6141: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2E616C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2E616E   Length              0005 (5)\n-2E6170   Flags               01 (1) 'Modification'\n-2E6171   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2E6175 PAYLOAD\n-\n-2EC4C4 DATA DESCRIPTOR       08074B50 (134695760)\n-2EC4C8 CRC                   BCEF5B37 (3169803063)\n-2EC4CC Compressed Size       0000634F (25423)\n-2EC4D0 Uncompressed Size     0000634F (25423)\n-\n-2EC4D4 LOCAL HEADER #920     04034B50 (67324752)\n-2EC4D8 Extract Zip Spec      14 (20) '2.0'\n-2EC4D9 Extract OS            00 (0) 'MS-DOS'\n-2EC4DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2EC4DC Compression Method    0000 (0) 'Stored'\n-2EC4DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2EC4E2 CRC                   00000000 (0)\n-2EC4E6 Compressed Size       00000000 (0)\n-2EC4EA Uncompressed Size     00000000 (0)\n-2EC4EE Filename Length       002C (44)\n-2EC4F0 Extra Length          0009 (9)\n-2EC4F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2EC4F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2EC51E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2EC520   Length              0005 (5)\n-2EC522   Flags               01 (1) 'Modification'\n-2EC523   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2EC527 PAYLOAD\n-\n-2EEBED DATA DESCRIPTOR       08074B50 (134695760)\n-2EEBF1 CRC                   E7AAF9A0 (3886741920)\n-2EEBF5 Compressed Size       000026C6 (9926)\n-2EEBF9 Uncompressed Size     000026C6 (9926)\n-\n-2EEBFD LOCAL HEADER #921     04034B50 (67324752)\n-2EEC01 Extract Zip Spec      14 (20) '2.0'\n-2EEC02 Extract OS            00 (0) 'MS-DOS'\n-2EEC03 General Purpose Flag  0000 (0)\n-2EEC05 Compression Method    0000 (0) 'Stored'\n-2EEC07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2EEC0B CRC                   00000000 (0)\n-2EEC0F Compressed Size       00000000 (0)\n-2EEC13 Uncompressed Size     00000000 (0)\n-2EEC17 Filename Length       0018 (24)\n-2EEC19 Extra Length          0009 (9)\n-2EEC1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2EEC1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2EEC33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2EEC35   Length              0005 (5)\n-2EEC37   Flags               01 (1) 'Modification'\n-2EEC38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-2EEC3C LOCAL HEADER #922     04034B50 (67324752)\n-2EEC40 Extract Zip Spec      14 (20) '2.0'\n-2EEC41 Extract OS            00 (0) 'MS-DOS'\n-2EEC42 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2EEC44 Compression Method    0000 (0) 'Stored'\n-2EEC46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2EEC4A CRC                   00000000 (0)\n-2EEC4E Compressed Size       00000000 (0)\n-2EEC52 Uncompressed Size     00000000 (0)\n-2EEC56 Filename Length       002B (43)\n-2EEC58 Extra Length          0009 (9)\n-2EEC5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2EEC5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2EEC85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2EEC87   Length              0005 (5)\n-2EEC89   Flags               01 (1) 'Modification'\n-2EEC8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2EEC8E PAYLOAD\n-\n-2F50B8 DATA DESCRIPTOR       08074B50 (134695760)\n-2F50BC CRC                   4A1B9248 (1243320904)\n-2F50C0 Compressed Size       0000642A (25642)\n-2F50C4 Uncompressed Size     0000642A (25642)\n-\n-2F50C8 LOCAL HEADER #923     04034B50 (67324752)\n-2F50CC Extract Zip Spec      14 (20) '2.0'\n-2F50CD Extract OS            00 (0) 'MS-DOS'\n-2F50CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2F50D0 Compression Method    0000 (0) 'Stored'\n-2F50D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2F50D6 CRC                   00000000 (0)\n-2F50DA Compressed Size       00000000 (0)\n-2F50DE Uncompressed Size     00000000 (0)\n-2F50E2 Filename Length       0034 (52)\n-2F50E4 Extra Length          0009 (9)\n-2F50E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2F50E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2F511A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2F511C   Length              0005 (5)\n-2F511E   Flags               01 (1) 'Modification'\n-2F511F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2F5123 PAYLOAD\n-\n-2FB01A DATA DESCRIPTOR       08074B50 (134695760)\n-2FB01E CRC                   4BCB8E78 (1271631480)\n-2FB022 Compressed Size       00005EF7 (24311)\n-2FB026 Uncompressed Size     00005EF7 (24311)\n-\n-2FB02A LOCAL HEADER #924     04034B50 (67324752)\n-2FB02E Extract Zip Spec      14 (20) '2.0'\n-2FB02F Extract OS            00 (0) 'MS-DOS'\n-2FB030 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2FB032 Compression Method    0000 (0) 'Stored'\n-2FB034 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FB038 CRC                   00000000 (0)\n-2FB03C Compressed Size       00000000 (0)\n-2FB040 Uncompressed Size     00000000 (0)\n-2FB044 Filename Length       0031 (49)\n-2FB046 Extra Length          0009 (9)\n-2FB048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FB048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FB079 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FB07B   Length              0005 (5)\n-2FB07D   Flags               01 (1) 'Modification'\n-2FB07E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2FB082 PAYLOAD\n-\n-2FC2B7 DATA DESCRIPTOR       08074B50 (134695760)\n-2FC2BB CRC                   EBCB75D3 (3955979731)\n-2FC2BF Compressed Size       00001235 (4661)\n-2FC2C3 Uncompressed Size     00001235 (4661)\n-\n-2FC2C7 LOCAL HEADER #925     04034B50 (67324752)\n-2FC2CB Extract Zip Spec      14 (20) '2.0'\n-2FC2CC Extract OS            00 (0) 'MS-DOS'\n-2FC2CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2FC2CF Compression Method    0000 (0) 'Stored'\n-2FC2D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FC2D5 CRC                   00000000 (0)\n-2FC2D9 Compressed Size       00000000 (0)\n-2FC2DD Uncompressed Size     00000000 (0)\n-2FC2E1 Filename Length       0034 (52)\n-2FC2E3 Extra Length          0009 (9)\n-2FC2E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FC2E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FC319 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FC31B   Length              0005 (5)\n-2FC31D   Flags               01 (1) 'Modification'\n-2FC31E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2FC322 PAYLOAD\n-\n-2FD917 DATA DESCRIPTOR       08074B50 (134695760)\n-2FD91B CRC                   0D6CD567 (225236327)\n-2FD91F Compressed Size       000015F5 (5621)\n-2FD923 Uncompressed Size     000015F5 (5621)\n-\n-2FD927 LOCAL HEADER #926     04034B50 (67324752)\n-2FD92B Extract Zip Spec      14 (20) '2.0'\n-2FD92C Extract OS            00 (0) 'MS-DOS'\n-2FD92D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2FD92F Compression Method    0000 (0) 'Stored'\n-2FD931 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FD935 CRC                   00000000 (0)\n-2FD939 Compressed Size       00000000 (0)\n-2FD93D Uncompressed Size     00000000 (0)\n-2FD941 Filename Length       0032 (50)\n-2FD943 Extra Length          0009 (9)\n-2FD945 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FD945: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FD977 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FD979   Length              0005 (5)\n-2FD97B   Flags               01 (1) 'Modification'\n-2FD97C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2FD980 PAYLOAD\n-\n-2FF3C2 DATA DESCRIPTOR       08074B50 (134695760)\n-2FF3C6 CRC                   6E97D75C (1855444828)\n-2FF3CA Compressed Size       00001A42 (6722)\n-2FF3CE Uncompressed Size     00001A42 (6722)\n-\n-2FF3D2 LOCAL HEADER #927     04034B50 (67324752)\n-2FF3D6 Extract Zip Spec      14 (20) '2.0'\n-2FF3D7 Extract OS            00 (0) 'MS-DOS'\n-2FF3D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-2FF3DA Compression Method    0000 (0) 'Stored'\n-2FF3DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-2FF3E0 CRC                   00000000 (0)\n-2FF3E4 Compressed Size       00000000 (0)\n-2FF3E8 Uncompressed Size     00000000 (0)\n-2FF3EC Filename Length       002E (46)\n-2FF3EE Extra Length          0009 (9)\n-2FF3F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x2FF3F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-2FF41E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-2FF420   Length              0005 (5)\n-2FF422   Flags               01 (1) 'Modification'\n-2FF423   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-2FF427 PAYLOAD\n-\n-302936 DATA DESCRIPTOR       08074B50 (134695760)\n-30293A CRC                   327F969A (847222426)\n-30293E Compressed Size       0000350F (13583)\n-302942 Uncompressed Size     0000350F (13583)\n-\n-302946 LOCAL HEADER #928     04034B50 (67324752)\n-30294A Extract Zip Spec      14 (20) '2.0'\n-30294B Extract OS            00 (0) 'MS-DOS'\n-30294C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30294E Compression Method    0000 (0) 'Stored'\n-302950 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-302954 CRC                   00000000 (0)\n-302958 Compressed Size       00000000 (0)\n-30295C Uncompressed Size     00000000 (0)\n-302960 Filename Length       002B (43)\n-302962 Extra Length          0009 (9)\n-302964 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x302964: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30298F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-302991   Length              0005 (5)\n-302993   Flags               01 (1) 'Modification'\n-302994   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-302998 PAYLOAD\n-\n-3031E6 DATA DESCRIPTOR       08074B50 (134695760)\n-3031EA CRC                   C17F60B4 (3246350516)\n-3031EE Compressed Size       0000084E (2126)\n-3031F2 Uncompressed Size     0000084E (2126)\n-\n-3031F6 LOCAL HEADER #929     04034B50 (67324752)\n-3031FA Extract Zip Spec      14 (20) '2.0'\n-3031FB Extract OS            00 (0) 'MS-DOS'\n-3031FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3031FE Compression Method    0000 (0) 'Stored'\n-303200 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-303204 CRC                   00000000 (0)\n-303208 Compressed Size       00000000 (0)\n-30320C Uncompressed Size     00000000 (0)\n-303210 Filename Length       002F (47)\n-303212 Extra Length          0009 (9)\n-303214 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x303214: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-303243 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-303245   Length              0005 (5)\n-303247   Flags               01 (1) 'Modification'\n-303248   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30324C PAYLOAD\n-\n-3054E7 DATA DESCRIPTOR       08074B50 (134695760)\n-3054EB CRC                   60259860 (1613076576)\n-3054EF Compressed Size       0000229B (8859)\n-3054F3 Uncompressed Size     0000229B (8859)\n-\n-3054F7 LOCAL HEADER #930     04034B50 (67324752)\n-3054FB Extract Zip Spec      14 (20) '2.0'\n-3054FC Extract OS            00 (0) 'MS-DOS'\n-3054FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3054FF Compression Method    0000 (0) 'Stored'\n-305501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-305505 CRC                   00000000 (0)\n-305509 Compressed Size       00000000 (0)\n-30550D Uncompressed Size     00000000 (0)\n-305511 Filename Length       002E (46)\n-305513 Extra Length          0009 (9)\n-305515 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x305515: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-305543 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-305545   Length              0005 (5)\n-305547   Flags               01 (1) 'Modification'\n-305548   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30554C PAYLOAD\n-\n-3059BD DATA DESCRIPTOR       08074B50 (134695760)\n-3059C1 CRC                   44C14167 (1153515879)\n-3059C5 Compressed Size       00000471 (1137)\n-3059C9 Uncompressed Size     00000471 (1137)\n-\n-3059CD LOCAL HEADER #931     04034B50 (67324752)\n-3059D1 Extract Zip Spec      14 (20) '2.0'\n-3059D2 Extract OS            00 (0) 'MS-DOS'\n-3059D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3059D5 Compression Method    0000 (0) 'Stored'\n-3059D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3059DB CRC                   00000000 (0)\n-3059DF Compressed Size       00000000 (0)\n-3059E3 Uncompressed Size     00000000 (0)\n-3059E7 Filename Length       0030 (48)\n-3059E9 Extra Length          0009 (9)\n-3059EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3059EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-305A1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-305A1D   Length              0005 (5)\n-305A1F   Flags               01 (1) 'Modification'\n-305A20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-305A24 PAYLOAD\n-\n-305E80 DATA DESCRIPTOR       08074B50 (134695760)\n-305E84 CRC                   F5917ED9 (4119953113)\n-305E88 Compressed Size       0000045C (1116)\n-305E8C Uncompressed Size     0000045C (1116)\n-\n-305E90 LOCAL HEADER #932     04034B50 (67324752)\n-305E94 Extract Zip Spec      14 (20) '2.0'\n-305E95 Extract OS            00 (0) 'MS-DOS'\n-305E96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-305E98 Compression Method    0000 (0) 'Stored'\n-305E9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-305E9E CRC                   00000000 (0)\n-305EA2 Compressed Size       00000000 (0)\n-305EA6 Uncompressed Size     00000000 (0)\n-305EAA Filename Length       0026 (38)\n-305EAC Extra Length          0009 (9)\n-305EAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x305EAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-305ED4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-305ED6   Length              0005 (5)\n-305ED8   Flags               01 (1) 'Modification'\n-305ED9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-305EDD PAYLOAD\n-\n-3069FE DATA DESCRIPTOR       08074B50 (134695760)\n-306A02 CRC                   CBED4405 (3421324293)\n-306A06 Compressed Size       00000B21 (2849)\n-306A0A Uncompressed Size     00000B21 (2849)\n-\n-306A0E LOCAL HEADER #933     04034B50 (67324752)\n-306A12 Extract Zip Spec      14 (20) '2.0'\n-306A13 Extract OS            00 (0) 'MS-DOS'\n-306A14 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-306A16 Compression Method    0000 (0) 'Stored'\n-306A18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-306A1C CRC                   00000000 (0)\n-306A20 Compressed Size       00000000 (0)\n-306A24 Uncompressed Size     00000000 (0)\n-306A28 Filename Length       002B (43)\n-306A2A Extra Length          0009 (9)\n-306A2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x306A2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-306A57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-306A59   Length              0005 (5)\n-306A5B   Flags               01 (1) 'Modification'\n-306A5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-306A60 PAYLOAD\n-\n-307850 DATA DESCRIPTOR       08074B50 (134695760)\n-307854 CRC                   4EECAFD1 (1324134353)\n-307858 Compressed Size       00000DF0 (3568)\n-30785C Uncompressed Size     00000DF0 (3568)\n-\n-307860 LOCAL HEADER #934     04034B50 (67324752)\n-307864 Extract Zip Spec      14 (20) '2.0'\n-307865 Extract OS            00 (0) 'MS-DOS'\n-307866 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-307868 Compression Method    0000 (0) 'Stored'\n-30786A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30786E CRC                   00000000 (0)\n-307872 Compressed Size       00000000 (0)\n-307876 Uncompressed Size     00000000 (0)\n-30787A Filename Length       002E (46)\n-30787C Extra Length          0009 (9)\n-30787E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30787E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3078AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3078AE   Length              0005 (5)\n-3078B0   Flags               01 (1) 'Modification'\n-3078B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3078B5 PAYLOAD\n-\n-308BD4 DATA DESCRIPTOR       08074B50 (134695760)\n-308BD8 CRC                   7CE2D61E (2095240734)\n-308BDC Compressed Size       0000131F (4895)\n-308BE0 Uncompressed Size     0000131F (4895)\n-\n-308BE4 LOCAL HEADER #935     04034B50 (67324752)\n-308BE8 Extract Zip Spec      14 (20) '2.0'\n-308BE9 Extract OS            00 (0) 'MS-DOS'\n-308BEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-308BEC Compression Method    0000 (0) 'Stored'\n-308BEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-308BF2 CRC                   00000000 (0)\n-308BF6 Compressed Size       00000000 (0)\n-308BFA Uncompressed Size     00000000 (0)\n-308BFE Filename Length       0031 (49)\n-308C00 Extra Length          0009 (9)\n-308C02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x308C02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-308C33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-308C35   Length              0005 (5)\n-308C37   Flags               01 (1) 'Modification'\n-308C38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-308C3C PAYLOAD\n-\n-30A3C2 DATA DESCRIPTOR       08074B50 (134695760)\n-30A3C6 CRC                   44E5E8ED (1155918061)\n-30A3CA Compressed Size       00001786 (6022)\n-30A3CE Uncompressed Size     00001786 (6022)\n-\n-30A3D2 LOCAL HEADER #936     04034B50 (67324752)\n-30A3D6 Extract Zip Spec      14 (20) '2.0'\n-30A3D7 Extract OS            00 (0) 'MS-DOS'\n-30A3D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30A3DA Compression Method    0000 (0) 'Stored'\n-30A3DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30A3E0 CRC                   00000000 (0)\n-30A3E4 Compressed Size       00000000 (0)\n-30A3E8 Uncompressed Size     00000000 (0)\n-30A3EC Filename Length       0029 (41)\n-30A3EE Extra Length          0009 (9)\n-30A3F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30A3F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30A419 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30A41B   Length              0005 (5)\n-30A41D   Flags               01 (1) 'Modification'\n-30A41E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30A422 PAYLOAD\n-\n-30C596 DATA DESCRIPTOR       08074B50 (134695760)\n-30C59A CRC                   AEF897E4 (2935527396)\n-30C59E Compressed Size       00002174 (8564)\n-30C5A2 Uncompressed Size     00002174 (8564)\n-\n-30C5A6 LOCAL HEADER #937     04034B50 (67324752)\n-30C5AA Extract Zip Spec      14 (20) '2.0'\n-30C5AB Extract OS            00 (0) 'MS-DOS'\n-30C5AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30C5AE Compression Method    0000 (0) 'Stored'\n-30C5B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30C5B4 CRC                   00000000 (0)\n-30C5B8 Compressed Size       00000000 (0)\n-30C5BC Uncompressed Size     00000000 (0)\n-30C5C0 Filename Length       002A (42)\n-30C5C2 Extra Length          0009 (9)\n-30C5C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30C5C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30C5EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30C5F0   Length              0005 (5)\n-30C5F2   Flags               01 (1) 'Modification'\n-30C5F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30C5F7 PAYLOAD\n-\n-30CC51 DATA DESCRIPTOR       08074B50 (134695760)\n-30CC55 CRC                   1F3B896F (523995503)\n-30CC59 Compressed Size       0000065A (1626)\n-30CC5D Uncompressed Size     0000065A (1626)\n-\n-30CC61 LOCAL HEADER #938     04034B50 (67324752)\n-30CC65 Extract Zip Spec      14 (20) '2.0'\n-30CC66 Extract OS            00 (0) 'MS-DOS'\n-30CC67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30CC69 Compression Method    0000 (0) 'Stored'\n-30CC6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30CC6F CRC                   00000000 (0)\n-30CC73 Compressed Size       00000000 (0)\n-30CC77 Uncompressed Size     00000000 (0)\n-30CC7B Filename Length       0029 (41)\n-30CC7D Extra Length          0009 (9)\n-30CC7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30CC7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30CCA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30CCAA   Length              0005 (5)\n-30CCAC   Flags               01 (1) 'Modification'\n-30CCAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30CCB1 PAYLOAD\n-\n-30DAA6 DATA DESCRIPTOR       08074B50 (134695760)\n-30DAAA CRC                   FE661D4B (4268105035)\n-30DAAE Compressed Size       00000DF5 (3573)\n-30DAB2 Uncompressed Size     00000DF5 (3573)\n-\n-30DAB6 LOCAL HEADER #939     04034B50 (67324752)\n-30DABA Extract Zip Spec      14 (20) '2.0'\n-30DABB Extract OS            00 (0) 'MS-DOS'\n-30DABC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30DABE Compression Method    0000 (0) 'Stored'\n-30DAC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30DAC4 CRC                   00000000 (0)\n-30DAC8 Compressed Size       00000000 (0)\n-30DACC Uncompressed Size     00000000 (0)\n-30DAD0 Filename Length       002A (42)\n-30DAD2 Extra Length          0009 (9)\n-30DAD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30DAD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30DAFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30DB00   Length              0005 (5)\n-30DB02   Flags               01 (1) 'Modification'\n-30DB03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30DB07 PAYLOAD\n-\n-30E987 DATA DESCRIPTOR       08074B50 (134695760)\n-30E98B CRC                   32F83356 (855126870)\n-30E98F Compressed Size       00000E80 (3712)\n-30E993 Uncompressed Size     00000E80 (3712)\n-\n-30E997 LOCAL HEADER #940     04034B50 (67324752)\n-30E99B Extract Zip Spec      14 (20) '2.0'\n-30E99C Extract OS            00 (0) 'MS-DOS'\n-30E99D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-30E99F Compression Method    0000 (0) 'Stored'\n-30E9A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-30E9A5 CRC                   00000000 (0)\n-30E9A9 Compressed Size       00000000 (0)\n-30E9AD Uncompressed Size     00000000 (0)\n-30E9B1 Filename Length       002B (43)\n-30E9B3 Extra Length          0009 (9)\n-30E9B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x30E9B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-30E9E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-30E9E2   Length              0005 (5)\n-30E9E4   Flags               01 (1) 'Modification'\n-30E9E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-30E9E9 PAYLOAD\n-\n-311DA6 DATA DESCRIPTOR       08074B50 (134695760)\n-311DAA CRC                   5B6E7792 (1533966226)\n-311DAE Compressed Size       000033BD (13245)\n-311DB2 Uncompressed Size     000033BD (13245)\n-\n-311DB6 LOCAL HEADER #941     04034B50 (67324752)\n-311DBA Extract Zip Spec      14 (20) '2.0'\n-311DBB Extract OS            00 (0) 'MS-DOS'\n-311DBC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-311DBE Compression Method    0000 (0) 'Stored'\n-311DC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-311DC4 CRC                   00000000 (0)\n-311DC8 Compressed Size       00000000 (0)\n-311DCC Uncompressed Size     00000000 (0)\n-311DD0 Filename Length       002B (43)\n-311DD2 Extra Length          0009 (9)\n-311DD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x311DD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-311DFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-311E01   Length              0005 (5)\n-311E03   Flags               01 (1) 'Modification'\n-311E04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-311E08 PAYLOAD\n-\n-31469C DATA DESCRIPTOR       08074B50 (134695760)\n-3146A0 CRC                   321C1C15 (840702997)\n-3146A4 Compressed Size       00002894 (10388)\n-3146A8 Uncompressed Size     00002894 (10388)\n-\n-3146AC LOCAL HEADER #942     04034B50 (67324752)\n-3146B0 Extract Zip Spec      14 (20) '2.0'\n-3146B1 Extract OS            00 (0) 'MS-DOS'\n-3146B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3146B4 Compression Method    0000 (0) 'Stored'\n-3146B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3146BA CRC                   00000000 (0)\n-3146BE Compressed Size       00000000 (0)\n-3146C2 Uncompressed Size     00000000 (0)\n-3146C6 Filename Length       002C (44)\n-3146C8 Extra Length          0009 (9)\n-3146CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3146CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3146F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3146F8   Length              0005 (5)\n-3146FA   Flags               01 (1) 'Modification'\n-3146FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3146FF PAYLOAD\n-\n-31A540 DATA DESCRIPTOR       08074B50 (134695760)\n-31A544 CRC                   5F946D70 (1603562864)\n-31A548 Compressed Size       00005E41 (24129)\n-31A54C Uncompressed Size     00005E41 (24129)\n-\n-31A550 LOCAL HEADER #943     04034B50 (67324752)\n-31A554 Extract Zip Spec      14 (20) '2.0'\n-31A555 Extract OS            00 (0) 'MS-DOS'\n-31A556 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-31A558 Compression Method    0000 (0) 'Stored'\n-31A55A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-31A55E CRC                   00000000 (0)\n-31A562 Compressed Size       00000000 (0)\n-31A566 Uncompressed Size     00000000 (0)\n-31A56A Filename Length       0030 (48)\n-31A56C Extra Length          0009 (9)\n-31A56E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x31A56E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-31A59E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-31A5A0   Length              0005 (5)\n-31A5A2   Flags               01 (1) 'Modification'\n-31A5A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-31A5A7 PAYLOAD\n-\n-31C64E DATA DESCRIPTOR       08074B50 (134695760)\n-31C652 CRC                   52C8839A (1388872602)\n-31C656 Compressed Size       000020A7 (8359)\n-31C65A Uncompressed Size     000020A7 (8359)\n-\n-31C65E LOCAL HEADER #944     04034B50 (67324752)\n-31C662 Extract Zip Spec      14 (20) '2.0'\n-31C663 Extract OS            00 (0) 'MS-DOS'\n-31C664 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-31C666 Compression Method    0000 (0) 'Stored'\n-31C668 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-31C66C CRC                   00000000 (0)\n-31C670 Compressed Size       00000000 (0)\n-31C674 Uncompressed Size     00000000 (0)\n-31C678 Filename Length       002B (43)\n-31C67A Extra Length          0009 (9)\n-31C67C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x31C67C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-31C6A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-31C6A9   Length              0005 (5)\n-31C6AB   Flags               01 (1) 'Modification'\n-31C6AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-31C6B0 PAYLOAD\n-\n-31F9C2 DATA DESCRIPTOR       08074B50 (134695760)\n-31F9C6 CRC                   838E36DD (2207135453)\n-31F9CA Compressed Size       00003312 (13074)\n-31F9CE Uncompressed Size     00003312 (13074)\n-\n-31F9D2 LOCAL HEADER #945     04034B50 (67324752)\n-31F9D6 Extract Zip Spec      14 (20) '2.0'\n-31F9D7 Extract OS            00 (0) 'MS-DOS'\n-31F9D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-31F9DA Compression Method    0000 (0) 'Stored'\n-31F9DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-31F9E0 CRC                   00000000 (0)\n-31F9E4 Compressed Size       00000000 (0)\n-31F9E8 Uncompressed Size     00000000 (0)\n-31F9EC Filename Length       002A (42)\n-31F9EE Extra Length          0009 (9)\n-31F9F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x31F9F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-31FA1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-31FA1C   Length              0005 (5)\n-31FA1E   Flags               01 (1) 'Modification'\n-31FA1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-31FA23 PAYLOAD\n-\n-3277FA DATA DESCRIPTOR       08074B50 (134695760)\n-3277FE CRC                   CBF03B71 (3421518705)\n-327802 Compressed Size       00007DD7 (32215)\n-327806 Uncompressed Size     00007DD7 (32215)\n-\n-32780A LOCAL HEADER #946     04034B50 (67324752)\n-32780E Extract Zip Spec      14 (20) '2.0'\n-32780F Extract OS            00 (0) 'MS-DOS'\n-327810 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-327812 Compression Method    0000 (0) 'Stored'\n-327814 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-327818 CRC                   00000000 (0)\n-32781C Compressed Size       00000000 (0)\n-327820 Uncompressed Size     00000000 (0)\n-327824 Filename Length       002E (46)\n-327826 Extra Length          0009 (9)\n-327828 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x327828: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-327856 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-327858   Length              0005 (5)\n-32785A   Flags               01 (1) 'Modification'\n-32785B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32785F PAYLOAD\n-\n-32ACE8 DATA DESCRIPTOR       08074B50 (134695760)\n-32ACEC CRC                   CB5B9E0C (3411779084)\n-32ACF0 Compressed Size       00003489 (13449)\n-32ACF4 Uncompressed Size     00003489 (13449)\n-\n-32ACF8 LOCAL HEADER #947     04034B50 (67324752)\n-32ACFC Extract Zip Spec      14 (20) '2.0'\n-32ACFD Extract OS            00 (0) 'MS-DOS'\n-32ACFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-32AD00 Compression Method    0000 (0) 'Stored'\n-32AD02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32AD06 CRC                   00000000 (0)\n-32AD0A Compressed Size       00000000 (0)\n-32AD0E Uncompressed Size     00000000 (0)\n-32AD12 Filename Length       0026 (38)\n-32AD14 Extra Length          0009 (9)\n-32AD16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32AD16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32AD3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32AD3E   Length              0005 (5)\n-32AD40   Flags               01 (1) 'Modification'\n-32AD41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32AD45 PAYLOAD\n-\n-32C92B DATA DESCRIPTOR       08074B50 (134695760)\n-32C92F CRC                   5FCFA231 (1607442993)\n-32C933 Compressed Size       00001BE6 (7142)\n-32C937 Uncompressed Size     00001BE6 (7142)\n-\n-32C93B LOCAL HEADER #948     04034B50 (67324752)\n-32C93F Extract Zip Spec      14 (20) '2.0'\n-32C940 Extract OS            00 (0) 'MS-DOS'\n-32C941 General Purpose Flag  0000 (0)\n-32C943 Compression Method    0000 (0) 'Stored'\n-32C945 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32C949 CRC                   00000000 (0)\n-32C94D Compressed Size       00000000 (0)\n-32C951 Uncompressed Size     00000000 (0)\n-32C955 Filename Length       0023 (35)\n-32C957 Extra Length          0009 (9)\n-32C959 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32C959: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32C97C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32C97E   Length              0005 (5)\n-32C980   Flags               01 (1) 'Modification'\n-32C981   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-32C985 LOCAL HEADER #949     04034B50 (67324752)\n-32C989 Extract Zip Spec      14 (20) '2.0'\n-32C98A Extract OS            00 (0) 'MS-DOS'\n-32C98B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-32C98D Compression Method    0000 (0) 'Stored'\n-32C98F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32C993 CRC                   00000000 (0)\n-32C997 Compressed Size       00000000 (0)\n-32C99B Uncompressed Size     00000000 (0)\n-32C99F Filename Length       0030 (48)\n-32C9A1 Extra Length          0009 (9)\n-32C9A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32C9A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32C9D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32C9D5   Length              0005 (5)\n-32C9D7   Flags               01 (1) 'Modification'\n-32C9D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32C9DC PAYLOAD\n-\n-32CF80 DATA DESCRIPTOR       08074B50 (134695760)\n-32CF84 CRC                   53B2D875 (1404229749)\n-32CF88 Compressed Size       000005A4 (1444)\n-32CF8C Uncompressed Size     000005A4 (1444)\n-\n-32CF90 LOCAL HEADER #950     04034B50 (67324752)\n-32CF94 Extract Zip Spec      14 (20) '2.0'\n-32CF95 Extract OS            00 (0) 'MS-DOS'\n-32CF96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-32CF98 Compression Method    0000 (0) 'Stored'\n-32CF9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32CF9E CRC                   00000000 (0)\n-32CFA2 Compressed Size       00000000 (0)\n-32CFA6 Uncompressed Size     00000000 (0)\n-32CFAA Filename Length       0036 (54)\n-32CFAC Extra Length          0009 (9)\n-32CFAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32CFAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32CFE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32CFE6   Length              0005 (5)\n-32CFE8   Flags               01 (1) 'Modification'\n-32CFE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32CFED PAYLOAD\n-\n-32ED5F DATA DESCRIPTOR       08074B50 (134695760)\n-32ED63 CRC                   07CF28F9 (131016953)\n-32ED67 Compressed Size       00001D72 (7538)\n-32ED6B Uncompressed Size     00001D72 (7538)\n-\n-32ED6F LOCAL HEADER #951     04034B50 (67324752)\n-32ED73 Extract Zip Spec      14 (20) '2.0'\n-32ED74 Extract OS            00 (0) 'MS-DOS'\n-32ED75 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-32ED77 Compression Method    0000 (0) 'Stored'\n-32ED79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-32ED7D CRC                   00000000 (0)\n-32ED81 Compressed Size       00000000 (0)\n-32ED85 Uncompressed Size     00000000 (0)\n-32ED89 Filename Length       0034 (52)\n-32ED8B Extra Length          0009 (9)\n-32ED8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x32ED8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-32EDC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-32EDC3   Length              0005 (5)\n-32EDC5   Flags               01 (1) 'Modification'\n-32EDC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-32EDCA PAYLOAD\n-\n-330854 DATA DESCRIPTOR       08074B50 (134695760)\n-330858 CRC                   FF8666DF (4286998239)\n-33085C Compressed Size       00001A8A (6794)\n-330860 Uncompressed Size     00001A8A (6794)\n-\n-330864 LOCAL HEADER #952     04034B50 (67324752)\n-330868 Extract Zip Spec      14 (20) '2.0'\n-330869 Extract OS            00 (0) 'MS-DOS'\n-33086A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-33086C Compression Method    0000 (0) 'Stored'\n-33086E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-330872 CRC                   00000000 (0)\n-330876 Compressed Size       00000000 (0)\n-33087A Uncompressed Size     00000000 (0)\n-33087E Filename Length       002E (46)\n-330880 Extra Length          0009 (9)\n-330882 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x330882: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3308B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3308B2   Length              0005 (5)\n-3308B4   Flags               01 (1) 'Modification'\n-3308B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3308B9 PAYLOAD\n-\n-33100A DATA DESCRIPTOR       08074B50 (134695760)\n-33100E CRC                   C4C508F0 (3301247216)\n-331012 Compressed Size       00000751 (1873)\n-331016 Uncompressed Size     00000751 (1873)\n-\n-33101A LOCAL HEADER #953     04034B50 (67324752)\n-33101E Extract Zip Spec      14 (20) '2.0'\n-33101F Extract OS            00 (0) 'MS-DOS'\n-331020 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-331022 Compression Method    0000 (0) 'Stored'\n-331024 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-331028 CRC                   00000000 (0)\n-33102C Compressed Size       00000000 (0)\n-331030 Uncompressed Size     00000000 (0)\n-331034 Filename Length       0031 (49)\n-331036 Extra Length          0009 (9)\n-331038 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x331038: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-331069 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-33106B   Length              0005 (5)\n-33106D   Flags               01 (1) 'Modification'\n-33106E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-331072 PAYLOAD\n-\n-332C0D DATA DESCRIPTOR       08074B50 (134695760)\n-332C11 CRC                   55945694 (1435784852)\n-332C15 Compressed Size       00001B9B (7067)\n-332C19 Uncompressed Size     00001B9B (7067)\n-\n-332C1D LOCAL HEADER #954     04034B50 (67324752)\n-332C21 Extract Zip Spec      14 (20) '2.0'\n-332C22 Extract OS            00 (0) 'MS-DOS'\n-332C23 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-332C25 Compression Method    0000 (0) 'Stored'\n-332C27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-332C2B CRC                   00000000 (0)\n-332C2F Compressed Size       00000000 (0)\n-332C33 Uncompressed Size     00000000 (0)\n-332C37 Filename Length       002F (47)\n-332C39 Extra Length          0009 (9)\n-332C3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x332C3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-332C6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-332C6C   Length              0005 (5)\n-332C6E   Flags               01 (1) 'Modification'\n-332C6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-332C73 PAYLOAD\n-\n-33472F DATA DESCRIPTOR       08074B50 (134695760)\n-334733 CRC                   CEB8A43B (3468207163)\n-334737 Compressed Size       00001ABC (6844)\n-33473B Uncompressed Size     00001ABC (6844)\n-\n-33473F LOCAL HEADER #955     04034B50 (67324752)\n-334743 Extract Zip Spec      14 (20) '2.0'\n-334744 Extract OS            00 (0) 'MS-DOS'\n-334745 General Purpose Flag  0000 (0)\n-334747 Compression Method    0000 (0) 'Stored'\n-334749 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-33474D CRC                   00000000 (0)\n-334751 Compressed Size       00000000 (0)\n-334755 Uncompressed Size     00000000 (0)\n-334759 Filename Length       0022 (34)\n-33475B Extra Length          0009 (9)\n-33475D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x33475D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-33477F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-334781   Length              0005 (5)\n-334783   Flags               01 (1) 'Modification'\n-334784   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-334788 LOCAL HEADER #956     04034B50 (67324752)\n-33478C Extract Zip Spec      14 (20) '2.0'\n-33478D Extract OS            00 (0) 'MS-DOS'\n-33478E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-334790 Compression Method    0000 (0) 'Stored'\n-334792 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-334796 CRC                   00000000 (0)\n-33479A Compressed Size       00000000 (0)\n-33479E Uncompressed Size     00000000 (0)\n-3347A2 Filename Length       0035 (53)\n-3347A4 Extra Length          0009 (9)\n-3347A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3347A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3347DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3347DD   Length              0005 (5)\n-3347DF   Flags               01 (1) 'Modification'\n-3347E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3347E4 PAYLOAD\n-\n-341490 DATA DESCRIPTOR       08074B50 (134695760)\n-341494 CRC                   57D2914C (1473417548)\n-341498 Compressed Size       0000CCAC (52396)\n-34149C Uncompressed Size     0000CCAC (52396)\n-\n-3414A0 LOCAL HEADER #957     04034B50 (67324752)\n-3414A4 Extract Zip Spec      14 (20) '2.0'\n-3414A5 Extract OS            00 (0) 'MS-DOS'\n-3414A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3414A8 Compression Method    0000 (0) 'Stored'\n-3414AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3414AE CRC                   00000000 (0)\n-3414B2 Compressed Size       00000000 (0)\n-3414B6 Uncompressed Size     00000000 (0)\n-3414BA Filename Length       0046 (70)\n-3414BC Extra Length          0009 (9)\n-3414BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3414BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-341504 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-341506   Length              0005 (5)\n-341508   Flags               01 (1) 'Modification'\n-341509   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34150D PAYLOAD\n-\n-341979 DATA DESCRIPTOR       08074B50 (134695760)\n-34197D CRC                   BB643DBD (3143908797)\n-341981 Compressed Size       0000046C (1132)\n-341985 Uncompressed Size     0000046C (1132)\n-\n-341989 LOCAL HEADER #958     04034B50 (67324752)\n-34198D Extract Zip Spec      14 (20) '2.0'\n-34198E Extract OS            00 (0) 'MS-DOS'\n-34198F General Purpose Flag  0000 (0)\n-341991 Compression Method    0000 (0) 'Stored'\n-341993 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-341997 CRC                   00000000 (0)\n-34199B Compressed Size       00000000 (0)\n-34199F Uncompressed Size     00000000 (0)\n-3419A3 Filename Length       002B (43)\n-3419A5 Extra Length          0009 (9)\n-3419A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3419A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3419D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3419D4   Length              0005 (5)\n-3419D6   Flags               01 (1) 'Modification'\n-3419D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3419DB LOCAL HEADER #959     04034B50 (67324752)\n-3419DF Extract Zip Spec      14 (20) '2.0'\n-3419E0 Extract OS            00 (0) 'MS-DOS'\n-3419E1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3419E3 Compression Method    0000 (0) 'Stored'\n-3419E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3419E9 CRC                   00000000 (0)\n-3419ED Compressed Size       00000000 (0)\n-3419F1 Uncompressed Size     00000000 (0)\n-3419F5 Filename Length       003F (63)\n-3419F7 Extra Length          0009 (9)\n-3419F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3419F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-341A38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-341A3A   Length              0005 (5)\n-341A3C   Flags               01 (1) 'Modification'\n-341A3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-341A41 PAYLOAD\n-\n-342426 DATA DESCRIPTOR       08074B50 (134695760)\n-34242A CRC                   272CCF3E (657248062)\n-34242E Compressed Size       000009E5 (2533)\n-342432 Uncompressed Size     000009E5 (2533)\n-\n-342436 LOCAL HEADER #960     04034B50 (67324752)\n-34243A Extract Zip Spec      14 (20) '2.0'\n-34243B Extract OS            00 (0) 'MS-DOS'\n-34243C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34243E Compression Method    0000 (0) 'Stored'\n-342440 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-342444 CRC                   00000000 (0)\n-342448 Compressed Size       00000000 (0)\n-34244C Uncompressed Size     00000000 (0)\n-342450 Filename Length       0048 (72)\n-342452 Extra Length          0009 (9)\n-342454 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x342454: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34249C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34249E   Length              0005 (5)\n-3424A0   Flags               01 (1) 'Modification'\n-3424A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3424A5 PAYLOAD\n-\n-3448A1 DATA DESCRIPTOR       08074B50 (134695760)\n-3448A5 CRC                   A2DFDA9A (2732579482)\n-3448A9 Compressed Size       000023FC (9212)\n-3448AD Uncompressed Size     000023FC (9212)\n-\n-3448B1 LOCAL HEADER #961     04034B50 (67324752)\n-3448B5 Extract Zip Spec      14 (20) '2.0'\n-3448B6 Extract OS            00 (0) 'MS-DOS'\n-3448B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3448B9 Compression Method    0000 (0) 'Stored'\n-3448BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3448BF CRC                   00000000 (0)\n-3448C3 Compressed Size       00000000 (0)\n-3448C7 Uncompressed Size     00000000 (0)\n-3448CB Filename Length       0045 (69)\n-3448CD Extra Length          0009 (9)\n-3448CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3448CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-344914 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-344916   Length              0005 (5)\n-344918   Flags               01 (1) 'Modification'\n-344919   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34491D PAYLOAD\n-\n-345E9F DATA DESCRIPTOR       08074B50 (134695760)\n-345EA3 CRC                   99D438F5 (2580822261)\n-345EA7 Compressed Size       00001582 (5506)\n-345EAB Uncompressed Size     00001582 (5506)\n-\n-345EAF LOCAL HEADER #962     04034B50 (67324752)\n-345EB3 Extract Zip Spec      14 (20) '2.0'\n-345EB4 Extract OS            00 (0) 'MS-DOS'\n-345EB5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-345EB7 Compression Method    0000 (0) 'Stored'\n-345EB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-345EBD CRC                   00000000 (0)\n-345EC1 Compressed Size       00000000 (0)\n-345EC5 Uncompressed Size     00000000 (0)\n-345EC9 Filename Length       0048 (72)\n-345ECB Extra Length          0009 (9)\n-345ECD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x345ECD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-345F15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-345F17   Length              0005 (5)\n-345F19   Flags               01 (1) 'Modification'\n-345F1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-345F1E PAYLOAD\n-\n-346F27 DATA DESCRIPTOR       08074B50 (134695760)\n-346F2B CRC                   348CD6A3 (881645219)\n-346F2F Compressed Size       00001009 (4105)\n-346F33 Uncompressed Size     00001009 (4105)\n-\n-346F37 LOCAL HEADER #963     04034B50 (67324752)\n-346F3B Extract Zip Spec      14 (20) '2.0'\n-346F3C Extract OS            00 (0) 'MS-DOS'\n-346F3D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-346F3F Compression Method    0000 (0) 'Stored'\n-346F41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-346F45 CRC                   00000000 (0)\n-346F49 Compressed Size       00000000 (0)\n-346F4D Uncompressed Size     00000000 (0)\n-346F51 Filename Length       0046 (70)\n-346F53 Extra Length          0009 (9)\n-346F55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x346F55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-346F9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-346F9D   Length              0005 (5)\n-346F9F   Flags               01 (1) 'Modification'\n-346FA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-346FA4 PAYLOAD\n-\n-348A27 DATA DESCRIPTOR       08074B50 (134695760)\n-348A2B CRC                   C2D529E3 (3268749795)\n-348A2F Compressed Size       00001A83 (6787)\n-348A33 Uncompressed Size     00001A83 (6787)\n-\n-348A37 LOCAL HEADER #964     04034B50 (67324752)\n-348A3B Extract Zip Spec      14 (20) '2.0'\n-348A3C Extract OS            00 (0) 'MS-DOS'\n-348A3D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-348A3F Compression Method    0000 (0) 'Stored'\n-348A41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-348A45 CRC                   00000000 (0)\n-348A49 Compressed Size       00000000 (0)\n-348A4D Uncompressed Size     00000000 (0)\n-348A51 Filename Length       0042 (66)\n-348A53 Extra Length          0009 (9)\n-348A55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x348A55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-348A97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-348A99   Length              0005 (5)\n-348A9B   Flags               01 (1) 'Modification'\n-348A9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-348AA0 PAYLOAD\n-\n-34A50F DATA DESCRIPTOR       08074B50 (134695760)\n-34A513 CRC                   E72A3EBF (3878305471)\n-34A517 Compressed Size       00001A6F (6767)\n-34A51B Uncompressed Size     00001A6F (6767)\n-\n-34A51F LOCAL HEADER #965     04034B50 (67324752)\n-34A523 Extract Zip Spec      14 (20) '2.0'\n-34A524 Extract OS            00 (0) 'MS-DOS'\n-34A525 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34A527 Compression Method    0000 (0) 'Stored'\n-34A529 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34A52D CRC                   00000000 (0)\n-34A531 Compressed Size       00000000 (0)\n-34A535 Uncompressed Size     00000000 (0)\n-34A539 Filename Length       003F (63)\n-34A53B Extra Length          0009 (9)\n-34A53D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34A53D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34A57C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34A57E   Length              0005 (5)\n-34A580   Flags               01 (1) 'Modification'\n-34A581   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34A585 PAYLOAD\n-\n-34ACCE DATA DESCRIPTOR       08074B50 (134695760)\n-34ACD2 CRC                   1CF76EFC (485977852)\n-34ACD6 Compressed Size       00000749 (1865)\n-34ACDA Uncompressed Size     00000749 (1865)\n-\n-34ACDE LOCAL HEADER #966     04034B50 (67324752)\n-34ACE2 Extract Zip Spec      14 (20) '2.0'\n-34ACE3 Extract OS            00 (0) 'MS-DOS'\n-34ACE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34ACE6 Compression Method    0000 (0) 'Stored'\n-34ACE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34ACEC CRC                   00000000 (0)\n-34ACF0 Compressed Size       00000000 (0)\n-34ACF4 Uncompressed Size     00000000 (0)\n-34ACF8 Filename Length       0043 (67)\n-34ACFA Extra Length          0009 (9)\n-34ACFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34ACFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34AD3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34AD41   Length              0005 (5)\n-34AD43   Flags               01 (1) 'Modification'\n-34AD44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34AD48 PAYLOAD\n-\n-34BE46 DATA DESCRIPTOR       08074B50 (134695760)\n-34BE4A CRC                   187BA855 (410757205)\n-34BE4E Compressed Size       000010FE (4350)\n-34BE52 Uncompressed Size     000010FE (4350)\n-\n-34BE56 LOCAL HEADER #967     04034B50 (67324752)\n-34BE5A Extract Zip Spec      14 (20) '2.0'\n-34BE5B Extract OS            00 (0) 'MS-DOS'\n-34BE5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34BE5E Compression Method    0000 (0) 'Stored'\n-34BE60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34BE64 CRC                   00000000 (0)\n-34BE68 Compressed Size       00000000 (0)\n-34BE6C Uncompressed Size     00000000 (0)\n-34BE70 Filename Length       003F (63)\n-34BE72 Extra Length          0009 (9)\n-34BE74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34BE74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34BEB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34BEB5   Length              0005 (5)\n-34BEB7   Flags               01 (1) 'Modification'\n-34BEB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34BEBC PAYLOAD\n-\n-34CBF9 DATA DESCRIPTOR       08074B50 (134695760)\n-34CBFD CRC                   D7A41DAE (3617856942)\n-34CC01 Compressed Size       00000D3D (3389)\n-34CC05 Uncompressed Size     00000D3D (3389)\n-\n-34CC09 LOCAL HEADER #968     04034B50 (67324752)\n-34CC0D Extract Zip Spec      14 (20) '2.0'\n-34CC0E Extract OS            00 (0) 'MS-DOS'\n-34CC0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34CC11 Compression Method    0000 (0) 'Stored'\n-34CC13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34CC17 CRC                   00000000 (0)\n-34CC1B Compressed Size       00000000 (0)\n-34CC1F Uncompressed Size     00000000 (0)\n-34CC23 Filename Length       0045 (69)\n-34CC25 Extra Length          0009 (9)\n-34CC27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34CC27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34CC6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34CC6E   Length              0005 (5)\n-34CC70   Flags               01 (1) 'Modification'\n-34CC71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34CC75 PAYLOAD\n-\n-34DD44 DATA DESCRIPTOR       08074B50 (134695760)\n-34DD48 CRC                   F1C1369F (4055971487)\n-34DD4C Compressed Size       000010CF (4303)\n-34DD50 Uncompressed Size     000010CF (4303)\n-\n-34DD54 LOCAL HEADER #969     04034B50 (67324752)\n-34DD58 Extract Zip Spec      14 (20) '2.0'\n-34DD59 Extract OS            00 (0) 'MS-DOS'\n-34DD5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34DD5C Compression Method    0000 (0) 'Stored'\n-34DD5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34DD62 CRC                   00000000 (0)\n-34DD66 Compressed Size       00000000 (0)\n-34DD6A Uncompressed Size     00000000 (0)\n-34DD6E Filename Length       003D (61)\n-34DD70 Extra Length          0009 (9)\n-34DD72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34DD72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34DDAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34DDB1   Length              0005 (5)\n-34DDB3   Flags               01 (1) 'Modification'\n-34DDB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34DDB8 PAYLOAD\n-\n-34F59B DATA DESCRIPTOR       08074B50 (134695760)\n-34F59F CRC                   B12B8896 (2972420246)\n-34F5A3 Compressed Size       000017E3 (6115)\n-34F5A7 Uncompressed Size     000017E3 (6115)\n-\n-34F5AB LOCAL HEADER #970     04034B50 (67324752)\n-34F5AF Extract Zip Spec      14 (20) '2.0'\n-34F5B0 Extract OS            00 (0) 'MS-DOS'\n-34F5B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-34F5B3 Compression Method    0000 (0) 'Stored'\n-34F5B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-34F5B9 CRC                   00000000 (0)\n-34F5BD Compressed Size       00000000 (0)\n-34F5C1 Uncompressed Size     00000000 (0)\n-34F5C5 Filename Length       003D (61)\n-34F5C7 Extra Length          0009 (9)\n-34F5C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x34F5C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-34F606 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-34F608   Length              0005 (5)\n-34F60A   Flags               01 (1) 'Modification'\n-34F60B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-34F60F PAYLOAD\n-\n-350393 DATA DESCRIPTOR       08074B50 (134695760)\n-350397 CRC                   04D43ED1 (81018577)\n-35039B Compressed Size       00000D84 (3460)\n-35039F Uncompressed Size     00000D84 (3460)\n-\n-3503A3 LOCAL HEADER #971     04034B50 (67324752)\n-3503A7 Extract Zip Spec      14 (20) '2.0'\n-3503A8 Extract OS            00 (0) 'MS-DOS'\n-3503A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3503AB Compression Method    0000 (0) 'Stored'\n-3503AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3503B1 CRC                   00000000 (0)\n-3503B5 Compressed Size       00000000 (0)\n-3503B9 Uncompressed Size     00000000 (0)\n-3503BD Filename Length       003E (62)\n-3503BF Extra Length          0009 (9)\n-3503C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3503C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3503FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-350401   Length              0005 (5)\n-350403   Flags               01 (1) 'Modification'\n-350404   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-350408 PAYLOAD\n-\n-3512AC DATA DESCRIPTOR       08074B50 (134695760)\n-3512B0 CRC                   05580F75 (89657205)\n-3512B4 Compressed Size       00000EA4 (3748)\n-3512B8 Uncompressed Size     00000EA4 (3748)\n-\n-3512BC LOCAL HEADER #972     04034B50 (67324752)\n-3512C0 Extract Zip Spec      14 (20) '2.0'\n-3512C1 Extract OS            00 (0) 'MS-DOS'\n-3512C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3512C4 Compression Method    0000 (0) 'Stored'\n-3512C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3512CA CRC                   00000000 (0)\n-3512CE Compressed Size       00000000 (0)\n-3512D2 Uncompressed Size     00000000 (0)\n-3512D6 Filename Length       003F (63)\n-3512D8 Extra Length          0009 (9)\n-3512DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3512DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-351319 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35131B   Length              0005 (5)\n-35131D   Flags               01 (1) 'Modification'\n-35131E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-351322 PAYLOAD\n-\n-353A68 DATA DESCRIPTOR       08074B50 (134695760)\n-353A6C CRC                   D6497204 (3595137540)\n-353A70 Compressed Size       00002746 (10054)\n-353A74 Uncompressed Size     00002746 (10054)\n-\n-353A78 LOCAL HEADER #973     04034B50 (67324752)\n-353A7C Extract Zip Spec      14 (20) '2.0'\n-353A7D Extract OS            00 (0) 'MS-DOS'\n-353A7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-353A80 Compression Method    0000 (0) 'Stored'\n-353A82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-353A86 CRC                   00000000 (0)\n-353A8A Compressed Size       00000000 (0)\n-353A8E Uncompressed Size     00000000 (0)\n-353A92 Filename Length       003F (63)\n-353A94 Extra Length          0009 (9)\n-353A96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x353A96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-353AD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-353AD7   Length              0005 (5)\n-353AD9   Flags               01 (1) 'Modification'\n-353ADA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-353ADE PAYLOAD\n-\n-355560 DATA DESCRIPTOR       08074B50 (134695760)\n-355564 CRC                   1ADB9373 (450597747)\n-355568 Compressed Size       00001A82 (6786)\n-35556C Uncompressed Size     00001A82 (6786)\n-\n-355570 LOCAL HEADER #974     04034B50 (67324752)\n-355574 Extract Zip Spec      14 (20) '2.0'\n-355575 Extract OS            00 (0) 'MS-DOS'\n-355576 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-355578 Compression Method    0000 (0) 'Stored'\n-35557A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35557E CRC                   00000000 (0)\n-355582 Compressed Size       00000000 (0)\n-355586 Uncompressed Size     00000000 (0)\n-35558A Filename Length       0040 (64)\n-35558C Extra Length          0009 (9)\n-35558E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35558E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3555CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3555D0   Length              0005 (5)\n-3555D2   Flags               01 (1) 'Modification'\n-3555D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3555D7 PAYLOAD\n-\n-3567FB DATA DESCRIPTOR       08074B50 (134695760)\n-3567FF CRC                   41505507 (1095783687)\n-356803 Compressed Size       00001224 (4644)\n-356807 Uncompressed Size     00001224 (4644)\n-\n-35680B LOCAL HEADER #975     04034B50 (67324752)\n-35680F Extract Zip Spec      14 (20) '2.0'\n-356810 Extract OS            00 (0) 'MS-DOS'\n-356811 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-356813 Compression Method    0000 (0) 'Stored'\n-356815 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-356819 CRC                   00000000 (0)\n-35681D Compressed Size       00000000 (0)\n-356821 Uncompressed Size     00000000 (0)\n-356825 Filename Length       003F (63)\n-356827 Extra Length          0009 (9)\n-356829 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x356829: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-356868 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35686A   Length              0005 (5)\n-35686C   Flags               01 (1) 'Modification'\n-35686D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-356871 PAYLOAD\n-\n-358E33 DATA DESCRIPTOR       08074B50 (134695760)\n-358E37 CRC                   C452CFCB (3293761483)\n-358E3B Compressed Size       000025C2 (9666)\n-358E3F Uncompressed Size     000025C2 (9666)\n-\n-358E43 LOCAL HEADER #976     04034B50 (67324752)\n-358E47 Extract Zip Spec      14 (20) '2.0'\n-358E48 Extract OS            00 (0) 'MS-DOS'\n-358E49 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-358E4B Compression Method    0000 (0) 'Stored'\n-358E4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-358E51 CRC                   00000000 (0)\n-358E55 Compressed Size       00000000 (0)\n-358E59 Uncompressed Size     00000000 (0)\n-358E5D Filename Length       003E (62)\n-358E5F Extra Length          0009 (9)\n-358E61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x358E61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-358E9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-358EA1   Length              0005 (5)\n-358EA3   Flags               01 (1) 'Modification'\n-358EA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-358EA8 PAYLOAD\n-\n-35A000 DATA DESCRIPTOR       08074B50 (134695760)\n-35A004 CRC                   FCF57B8C (4243946380)\n-35A008 Compressed Size       00001158 (4440)\n-35A00C Uncompressed Size     00001158 (4440)\n-\n-35A010 LOCAL HEADER #977     04034B50 (67324752)\n-35A014 Extract Zip Spec      14 (20) '2.0'\n-35A015 Extract OS            00 (0) 'MS-DOS'\n-35A016 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-35A018 Compression Method    0000 (0) 'Stored'\n-35A01A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35A01E CRC                   00000000 (0)\n-35A022 Compressed Size       00000000 (0)\n-35A026 Uncompressed Size     00000000 (0)\n-35A02A Filename Length       003C (60)\n-35A02C Extra Length          0009 (9)\n-35A02E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35A02E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35A06A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35A06C   Length              0005 (5)\n-35A06E   Flags               01 (1) 'Modification'\n-35A06F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-35A073 PAYLOAD\n-\n-35A47D DATA DESCRIPTOR       08074B50 (134695760)\n-35A481 CRC                   93AEE0AC (2477711532)\n-35A485 Compressed Size       0000040A (1034)\n-35A489 Uncompressed Size     0000040A (1034)\n-\n-35A48D LOCAL HEADER #978     04034B50 (67324752)\n-35A491 Extract Zip Spec      14 (20) '2.0'\n-35A492 Extract OS            00 (0) 'MS-DOS'\n-35A493 General Purpose Flag  0000 (0)\n-35A495 Compression Method    0000 (0) 'Stored'\n-35A497 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35A49B CRC                   00000000 (0)\n-35A49F Compressed Size       00000000 (0)\n-35A4A3 Uncompressed Size     00000000 (0)\n-35A4A7 Filename Length       0020 (32)\n-35A4A9 Extra Length          0009 (9)\n-35A4AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35A4AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35A4CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35A4CD   Length              0005 (5)\n-35A4CF   Flags               01 (1) 'Modification'\n-35A4D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-35A4D4 LOCAL HEADER #979     04034B50 (67324752)\n-35A4D8 Extract Zip Spec      14 (20) '2.0'\n-35A4D9 Extract OS            00 (0) 'MS-DOS'\n-35A4DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-35A4DC Compression Method    0000 (0) 'Stored'\n-35A4DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35A4E2 CRC                   00000000 (0)\n-35A4E6 Compressed Size       00000000 (0)\n-35A4EA Uncompressed Size     00000000 (0)\n-35A4EE Filename Length       003F (63)\n-35A4F0 Extra Length          0009 (9)\n-35A4F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35A4F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35A531 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35A533   Length              0005 (5)\n-35A535   Flags               01 (1) 'Modification'\n-35A536   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-35A53A PAYLOAD\n-\n-35ACCB DATA DESCRIPTOR       08074B50 (134695760)\n-35ACCF CRC                   339D235A (865936218)\n-35ACD3 Compressed Size       00000791 (1937)\n-35ACD7 Uncompressed Size     00000791 (1937)\n-\n-35ACDB LOCAL HEADER #980     04034B50 (67324752)\n-35ACDF Extract Zip Spec      14 (20) '2.0'\n-35ACE0 Extract OS            00 (0) 'MS-DOS'\n-35ACE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-35ACE3 Compression Method    0000 (0) 'Stored'\n-35ACE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35ACE9 CRC                   00000000 (0)\n-35ACED Compressed Size       00000000 (0)\n-35ACF1 Uncompressed Size     00000000 (0)\n-35ACF5 Filename Length       0032 (50)\n-35ACF7 Extra Length          0009 (9)\n-35ACF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35ACF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35AD2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35AD2D   Length              0005 (5)\n-35AD2F   Flags               01 (1) 'Modification'\n-35AD30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-35AD34 PAYLOAD\n-\n-35F528 DATA DESCRIPTOR       08074B50 (134695760)\n-35F52C CRC                   F30DAB50 (4077759312)\n-35F530 Compressed Size       000047F4 (18420)\n-35F534 Uncompressed Size     000047F4 (18420)\n-\n-35F538 LOCAL HEADER #981     04034B50 (67324752)\n-35F53C Extract Zip Spec      14 (20) '2.0'\n-35F53D Extract OS            00 (0) 'MS-DOS'\n-35F53E General Purpose Flag  0000 (0)\n-35F540 Compression Method    0000 (0) 'Stored'\n-35F542 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35F546 CRC                   00000000 (0)\n-35F54A Compressed Size       00000000 (0)\n-35F54E Uncompressed Size     00000000 (0)\n-35F552 Filename Length       001E (30)\n-35F554 Extra Length          0009 (9)\n-35F556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35F556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35F574 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35F576   Length              0005 (5)\n-35F578   Flags               01 (1) 'Modification'\n-35F579   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-35F57D LOCAL HEADER #982     04034B50 (67324752)\n-35F581 Extract Zip Spec      14 (20) '2.0'\n-35F582 Extract OS            00 (0) 'MS-DOS'\n-35F583 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-35F585 Compression Method    0000 (0) 'Stored'\n-35F587 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35F58B CRC                   00000000 (0)\n-35F58F Compressed Size       00000000 (0)\n-35F593 Uncompressed Size     00000000 (0)\n-35F597 Filename Length       003D (61)\n-35F599 Extra Length          0009 (9)\n-35F59B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35F59B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35F5D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35F5DA   Length              0005 (5)\n-35F5DC   Flags               01 (1) 'Modification'\n-35F5DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-35F5E1 PAYLOAD\n-\n-35FA5A DATA DESCRIPTOR       08074B50 (134695760)\n-35FA5E CRC                   7A3B23D9 (2050696153)\n-35FA62 Compressed Size       00000479 (1145)\n-35FA66 Uncompressed Size     00000479 (1145)\n-\n-35FA6A LOCAL HEADER #983     04034B50 (67324752)\n-35FA6E Extract Zip Spec      14 (20) '2.0'\n-35FA6F Extract OS            00 (0) 'MS-DOS'\n-35FA70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-35FA72 Compression Method    0000 (0) 'Stored'\n-35FA74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-35FA78 CRC                   00000000 (0)\n-35FA7C Compressed Size       00000000 (0)\n-35FA80 Uncompressed Size     00000000 (0)\n-35FA84 Filename Length       0043 (67)\n-35FA86 Extra Length          0009 (9)\n-35FA88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x35FA88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-35FACB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-35FACD   Length              0005 (5)\n-35FACF   Flags               01 (1) 'Modification'\n-35FAD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-35FAD4 PAYLOAD\n-\n-360164 DATA DESCRIPTOR       08074B50 (134695760)\n-360168 CRC                   3E8906CC (1049167564)\n-36016C Compressed Size       00000690 (1680)\n-360170 Uncompressed Size     00000690 (1680)\n-\n-360174 LOCAL HEADER #984     04034B50 (67324752)\n-360178 Extract Zip Spec      14 (20) '2.0'\n-360179 Extract OS            00 (0) 'MS-DOS'\n-36017A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36017C Compression Method    0000 (0) 'Stored'\n-36017E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-360182 CRC                   00000000 (0)\n-360186 Compressed Size       00000000 (0)\n-36018A Uncompressed Size     00000000 (0)\n-36018E Filename Length       0045 (69)\n-360190 Extra Length          0009 (9)\n-360192 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x360192: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3601D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3601D9   Length              0005 (5)\n-3601DB   Flags               01 (1) 'Modification'\n-3601DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3601E0 PAYLOAD\n-\n-360878 DATA DESCRIPTOR       08074B50 (134695760)\n-36087C CRC                   AE1F051B (2921268507)\n-360880 Compressed Size       00000698 (1688)\n-360884 Uncompressed Size     00000698 (1688)\n-\n-360888 LOCAL HEADER #985     04034B50 (67324752)\n-36088C Extract Zip Spec      14 (20) '2.0'\n-36088D Extract OS            00 (0) 'MS-DOS'\n-36088E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-360890 Compression Method    0000 (0) 'Stored'\n-360892 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-360896 CRC                   00000000 (0)\n-36089A Compressed Size       00000000 (0)\n-36089E Uncompressed Size     00000000 (0)\n-3608A2 Filename Length       0040 (64)\n-3608A4 Extra Length          0009 (9)\n-3608A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3608A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3608E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3608E8   Length              0005 (5)\n-3608EA   Flags               01 (1) 'Modification'\n-3608EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3608EF PAYLOAD\n-\n-360E93 DATA DESCRIPTOR       08074B50 (134695760)\n-360E97 CRC                   542D0143 (1412235587)\n-360E9B Compressed Size       000005A4 (1444)\n-360E9F Uncompressed Size     000005A4 (1444)\n-\n-360EA3 LOCAL HEADER #986     04034B50 (67324752)\n-360EA7 Extract Zip Spec      14 (20) '2.0'\n-360EA8 Extract OS            00 (0) 'MS-DOS'\n-360EA9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-360EAB Compression Method    0000 (0) 'Stored'\n-360EAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-360EB1 CRC                   00000000 (0)\n-360EB5 Compressed Size       00000000 (0)\n-360EB9 Uncompressed Size     00000000 (0)\n-360EBD Filename Length       0042 (66)\n-360EBF Extra Length          0009 (9)\n-360EC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x360EC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-360F03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-360F05   Length              0005 (5)\n-360F07   Flags               01 (1) 'Modification'\n-360F08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-360F0C PAYLOAD\n-\n-361576 DATA DESCRIPTOR       08074B50 (134695760)\n-36157A CRC                   FC50C2FA (4233151226)\n-36157E Compressed Size       0000066A (1642)\n-361582 Uncompressed Size     0000066A (1642)\n-\n-361586 LOCAL HEADER #987     04034B50 (67324752)\n-36158A Extract Zip Spec      14 (20) '2.0'\n-36158B Extract OS            00 (0) 'MS-DOS'\n-36158C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36158E Compression Method    0000 (0) 'Stored'\n-361590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-361594 CRC                   00000000 (0)\n-361598 Compressed Size       00000000 (0)\n-36159C Uncompressed Size     00000000 (0)\n-3615A0 Filename Length       003D (61)\n-3615A2 Extra Length          0009 (9)\n-3615A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3615A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3615E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3615E3   Length              0005 (5)\n-3615E5   Flags               01 (1) 'Modification'\n-3615E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3615EA PAYLOAD\n-\n-361AE4 DATA DESCRIPTOR       08074B50 (134695760)\n-361AE8 CRC                   E1CD8446 (3788342342)\n-361AEC Compressed Size       000004FA (1274)\n-361AF0 Uncompressed Size     000004FA (1274)\n-\n-361AF4 LOCAL HEADER #988     04034B50 (67324752)\n-361AF8 Extract Zip Spec      14 (20) '2.0'\n-361AF9 Extract OS            00 (0) 'MS-DOS'\n-361AFA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-361AFC Compression Method    0000 (0) 'Stored'\n-361AFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-361B02 CRC                   00000000 (0)\n-361B06 Compressed Size       00000000 (0)\n-361B0A Uncompressed Size     00000000 (0)\n-361B0E Filename Length       003F (63)\n-361B10 Extra Length          0009 (9)\n-361B12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x361B12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-361B51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-361B53   Length              0005 (5)\n-361B55   Flags               01 (1) 'Modification'\n-361B56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-361B5A PAYLOAD\n-\n-36205C DATA DESCRIPTOR       08074B50 (134695760)\n-362060 CRC                   FE2922A2 (4264108706)\n-362064 Compressed Size       00000502 (1282)\n-362068 Uncompressed Size     00000502 (1282)\n-\n-36206C LOCAL HEADER #989     04034B50 (67324752)\n-362070 Extract Zip Spec      14 (20) '2.0'\n-362071 Extract OS            00 (0) 'MS-DOS'\n-362072 General Purpose Flag  0000 (0)\n-362074 Compression Method    0000 (0) 'Stored'\n-362076 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36207A CRC                   00000000 (0)\n-36207E Compressed Size       00000000 (0)\n-362082 Uncompressed Size     00000000 (0)\n-362086 Filename Length       0027 (39)\n-362088 Extra Length          0009 (9)\n-36208A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36208A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3620B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3620B3   Length              0005 (5)\n-3620B5   Flags               01 (1) 'Modification'\n-3620B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3620BA LOCAL HEADER #990     04034B50 (67324752)\n-3620BE Extract Zip Spec      14 (20) '2.0'\n-3620BF Extract OS            00 (0) 'MS-DOS'\n-3620C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3620C2 Compression Method    0000 (0) 'Stored'\n-3620C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3620C8 CRC                   00000000 (0)\n-3620CC Compressed Size       00000000 (0)\n-3620D0 Uncompressed Size     00000000 (0)\n-3620D4 Filename Length       0040 (64)\n-3620D6 Extra Length          0009 (9)\n-3620D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3620D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-362118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36211A   Length              0005 (5)\n-36211C   Flags               01 (1) 'Modification'\n-36211D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-362121 PAYLOAD\n-\n-362862 DATA DESCRIPTOR       08074B50 (134695760)\n-362866 CRC                   704BFEFA (1884028666)\n-36286A Compressed Size       00000741 (1857)\n-36286E Uncompressed Size     00000741 (1857)\n-\n-362872 LOCAL HEADER #991     04034B50 (67324752)\n-362876 Extract Zip Spec      14 (20) '2.0'\n-362877 Extract OS            00 (0) 'MS-DOS'\n-362878 General Purpose Flag  0000 (0)\n-36287A Compression Method    0000 (0) 'Stored'\n-36287C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-362880 CRC                   00000000 (0)\n-362884 Compressed Size       00000000 (0)\n-362888 Uncompressed Size     00000000 (0)\n-36288C Filename Length       0020 (32)\n-36288E Extra Length          0009 (9)\n-362890 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x362890: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3628B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3628B2   Length              0005 (5)\n-3628B4   Flags               01 (1) 'Modification'\n-3628B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3628B9 LOCAL HEADER #992     04034B50 (67324752)\n-3628BD Extract Zip Spec      14 (20) '2.0'\n-3628BE Extract OS            00 (0) 'MS-DOS'\n-3628BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3628C1 Compression Method    0000 (0) 'Stored'\n-3628C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3628C7 CRC                   00000000 (0)\n-3628CB Compressed Size       00000000 (0)\n-3628CF Uncompressed Size     00000000 (0)\n-3628D3 Filename Length       0044 (68)\n-3628D5 Extra Length          0009 (9)\n-3628D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3628D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36291B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36291D   Length              0005 (5)\n-36291F   Flags               01 (1) 'Modification'\n-362920   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-362924 PAYLOAD\n-\n-363121 DATA DESCRIPTOR       08074B50 (134695760)\n-363125 CRC                   7E779F80 (2121768832)\n-363129 Compressed Size       000007FD (2045)\n-36312D Uncompressed Size     000007FD (2045)\n-\n-363131 LOCAL HEADER #993     04034B50 (67324752)\n-363135 Extract Zip Spec      14 (20) '2.0'\n-363136 Extract OS            00 (0) 'MS-DOS'\n-363137 General Purpose Flag  0000 (0)\n-363139 Compression Method    0000 (0) 'Stored'\n-36313B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36313F CRC                   00000000 (0)\n-363143 Compressed Size       00000000 (0)\n-363147 Uncompressed Size     00000000 (0)\n-36314B Filename Length       0021 (33)\n-36314D Extra Length          0009 (9)\n-36314F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36314F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-363170 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-363172   Length              0005 (5)\n-363174   Flags               01 (1) 'Modification'\n-363175   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-363179 LOCAL HEADER #994     04034B50 (67324752)\n-36317D Extract Zip Spec      14 (20) '2.0'\n-36317E Extract OS            00 (0) 'MS-DOS'\n-36317F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-363181 Compression Method    0000 (0) 'Stored'\n-363183 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-363187 CRC                   00000000 (0)\n-36318B Compressed Size       00000000 (0)\n-36318F Uncompressed Size     00000000 (0)\n-363193 Filename Length       0049 (73)\n-363195 Extra Length          0009 (9)\n-363197 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x363197: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3631E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3631E2   Length              0005 (5)\n-3631E4   Flags               01 (1) 'Modification'\n-3631E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3631E9 PAYLOAD\n-\n-364442 DATA DESCRIPTOR       08074B50 (134695760)\n-364446 CRC                   33B32090 (867377296)\n-36444A Compressed Size       00001259 (4697)\n-36444E Uncompressed Size     00001259 (4697)\n-\n-364452 LOCAL HEADER #995     04034B50 (67324752)\n-364456 Extract Zip Spec      14 (20) '2.0'\n-364457 Extract OS            00 (0) 'MS-DOS'\n-364458 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36445A Compression Method    0000 (0) 'Stored'\n-36445C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-364460 CRC                   00000000 (0)\n-364464 Compressed Size       00000000 (0)\n-364468 Uncompressed Size     00000000 (0)\n-36446C Filename Length       0043 (67)\n-36446E Extra Length          0009 (9)\n-364470 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x364470: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3644B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3644B5   Length              0005 (5)\n-3644B7   Flags               01 (1) 'Modification'\n-3644B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3644BC PAYLOAD\n-\n-364ECF DATA DESCRIPTOR       08074B50 (134695760)\n-364ED3 CRC                   DEA0C858 (3735079000)\n-364ED7 Compressed Size       00000A13 (2579)\n-364EDB Uncompressed Size     00000A13 (2579)\n-\n-364EDF LOCAL HEADER #996     04034B50 (67324752)\n-364EE3 Extract Zip Spec      14 (20) '2.0'\n-364EE4 Extract OS            00 (0) 'MS-DOS'\n-364EE5 General Purpose Flag  0000 (0)\n-364EE7 Compression Method    0000 (0) 'Stored'\n-364EE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-364EED CRC                   00000000 (0)\n-364EF1 Compressed Size       00000000 (0)\n-364EF5 Uncompressed Size     00000000 (0)\n-364EF9 Filename Length       001F (31)\n-364EFB Extra Length          0009 (9)\n-364EFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x364EFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-364F1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-364F1E   Length              0005 (5)\n-364F20   Flags               01 (1) 'Modification'\n-364F21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-364F25 LOCAL HEADER #997     04034B50 (67324752)\n-364F29 Extract Zip Spec      14 (20) '2.0'\n-364F2A Extract OS            00 (0) 'MS-DOS'\n-364F2B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-364F2D Compression Method    0000 (0) 'Stored'\n-364F2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-364F33 CRC                   00000000 (0)\n-364F37 Compressed Size       00000000 (0)\n-364F3B Uncompressed Size     00000000 (0)\n-364F3F Filename Length       0034 (52)\n-364F41 Extra Length          0009 (9)\n-364F43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x364F43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-364F77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-364F79   Length              0005 (5)\n-364F7B   Flags               01 (1) 'Modification'\n-364F7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-364F80 PAYLOAD\n-\n-366148 DATA DESCRIPTOR       08074B50 (134695760)\n-36614C CRC                   D4A82FA9 (3567792041)\n-366150 Compressed Size       000011C8 (4552)\n-366154 Uncompressed Size     000011C8 (4552)\n-\n-366158 LOCAL HEADER #998     04034B50 (67324752)\n-36615C Extract Zip Spec      14 (20) '2.0'\n-36615D Extract OS            00 (0) 'MS-DOS'\n-36615E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-366160 Compression Method    0000 (0) 'Stored'\n-366162 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-366166 CRC                   00000000 (0)\n-36616A Compressed Size       00000000 (0)\n-36616E Uncompressed Size     00000000 (0)\n-366172 Filename Length       0031 (49)\n-366174 Extra Length          0009 (9)\n-366176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x366176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3661A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3661A9   Length              0005 (5)\n-3661AB   Flags               01 (1) 'Modification'\n-3661AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3661B0 PAYLOAD\n-\n-36750C DATA DESCRIPTOR       08074B50 (134695760)\n-367510 CRC                   3F3FCF79 (1061146489)\n-367514 Compressed Size       0000135C (4956)\n-367518 Uncompressed Size     0000135C (4956)\n-\n-36751C LOCAL HEADER #999     04034B50 (67324752)\n-367520 Extract Zip Spec      14 (20) '2.0'\n-367521 Extract OS            00 (0) 'MS-DOS'\n-367522 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-367524 Compression Method    0000 (0) 'Stored'\n-367526 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36752A CRC                   00000000 (0)\n-36752E Compressed Size       00000000 (0)\n-367532 Uncompressed Size     00000000 (0)\n-367536 Filename Length       002F (47)\n-367538 Extra Length          0009 (9)\n-36753A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36753A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-367569 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36756B   Length              0005 (5)\n-36756D   Flags               01 (1) 'Modification'\n-36756E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-367572 PAYLOAD\n-\n-3686CD DATA DESCRIPTOR       08074B50 (134695760)\n-3686D1 CRC                   F95CA75C (4183598940)\n-3686D5 Compressed Size       0000115B (4443)\n-3686D9 Uncompressed Size     0000115B (4443)\n-\n-3686DD LOCAL HEADER #1000    04034B50 (67324752)\n-3686E1 Extract Zip Spec      14 (20) '2.0'\n-3686E2 Extract OS            00 (0) 'MS-DOS'\n-3686E3 General Purpose Flag  0000 (0)\n-3686E5 Compression Method    0000 (0) 'Stored'\n-3686E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3686EB CRC                   00000000 (0)\n-3686EF Compressed Size       00000000 (0)\n-3686F3 Uncompressed Size     00000000 (0)\n-3686F7 Filename Length       0025 (37)\n-3686F9 Extra Length          0009 (9)\n-3686FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3686FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-368720 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-368722   Length              0005 (5)\n-368724   Flags               01 (1) 'Modification'\n-368725   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-368729 LOCAL HEADER #1001    04034B50 (67324752)\n-36872D Extract Zip Spec      14 (20) '2.0'\n-36872E Extract OS            00 (0) 'MS-DOS'\n-36872F General Purpose Flag  0000 (0)\n-368731 Compression Method    0000 (0) 'Stored'\n-368733 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-368737 CRC                   00000000 (0)\n-36873B Compressed Size       00000000 (0)\n-36873F Uncompressed Size     00000000 (0)\n-368743 Filename Length       002D (45)\n-368745 Extra Length          0009 (9)\n-368747 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x368747: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-368774 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-368776   Length              0005 (5)\n-368778   Flags               01 (1) 'Modification'\n-368779   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-36877D LOCAL HEADER #1002    04034B50 (67324752)\n-368781 Extract Zip Spec      14 (20) '2.0'\n-368782 Extract OS            00 (0) 'MS-DOS'\n-368783 General Purpose Flag  0000 (0)\n-368785 Compression Method    0000 (0) 'Stored'\n-368787 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36878B CRC                   00000000 (0)\n-36878F Compressed Size       00000000 (0)\n-368793 Uncompressed Size     00000000 (0)\n-368797 Filename Length       0038 (56)\n-368799 Extra Length          0009 (9)\n-36879B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36879B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3687D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3687D5   Length              0005 (5)\n-3687D7   Flags               01 (1) 'Modification'\n-3687D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3687DC LOCAL HEADER #1003    04034B50 (67324752)\n-3687E0 Extract Zip Spec      14 (20) '2.0'\n-3687E1 Extract OS            00 (0) 'MS-DOS'\n-3687E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3687E4 Compression Method    0000 (0) 'Stored'\n-3687E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3687EA CRC                   00000000 (0)\n-3687EE Compressed Size       00000000 (0)\n-3687F2 Uncompressed Size     00000000 (0)\n-3687F6 Filename Length       0060 (96)\n-3687F8 Extra Length          0009 (9)\n-3687FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3687FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36885A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36885C   Length              0005 (5)\n-36885E   Flags               01 (1) 'Modification'\n-36885F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-368863 PAYLOAD\n-\n-36A0A6 DATA DESCRIPTOR       08074B50 (134695760)\n-36A0AA CRC                   B8989C24 (3097009188)\n-36A0AE Compressed Size       00001843 (6211)\n-36A0B2 Uncompressed Size     00001843 (6211)\n-\n-36A0B6 LOCAL HEADER #1004    04034B50 (67324752)\n-36A0BA Extract Zip Spec      14 (20) '2.0'\n-36A0BB Extract OS            00 (0) 'MS-DOS'\n-36A0BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36A0BE Compression Method    0000 (0) 'Stored'\n-36A0C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36A0C4 CRC                   00000000 (0)\n-36A0C8 Compressed Size       00000000 (0)\n-36A0CC Uncompressed Size     00000000 (0)\n-36A0D0 Filename Length       0060 (96)\n-36A0D2 Extra Length          0009 (9)\n-36A0D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36A0D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36A134 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36A136   Length              0005 (5)\n-36A138   Flags               01 (1) 'Modification'\n-36A139   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-36A13D PAYLOAD\n-\n-36BBAD DATA DESCRIPTOR       08074B50 (134695760)\n-36BBB1 CRC                   88B1EF9C (2293362588)\n-36BBB5 Compressed Size       00001A70 (6768)\n-36BBB9 Uncompressed Size     00001A70 (6768)\n-\n-36BBBD LOCAL HEADER #1005    04034B50 (67324752)\n-36BBC1 Extract Zip Spec      14 (20) '2.0'\n-36BBC2 Extract OS            00 (0) 'MS-DOS'\n-36BBC3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36BBC5 Compression Method    0000 (0) 'Stored'\n-36BBC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36BBCB CRC                   00000000 (0)\n-36BBCF Compressed Size       00000000 (0)\n-36BBD3 Uncompressed Size     00000000 (0)\n-36BBD7 Filename Length       005C (92)\n-36BBD9 Extra Length          0009 (9)\n-36BBDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36BBDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36BC37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36BC39   Length              0005 (5)\n-36BC3B   Flags               01 (1) 'Modification'\n-36BC3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-36BC40 PAYLOAD\n-\n-36C81D DATA DESCRIPTOR       08074B50 (134695760)\n-36C821 CRC                   B78EFF6E (3079602030)\n-36C825 Compressed Size       00000BDD (3037)\n-36C829 Uncompressed Size     00000BDD (3037)\n-\n-36C82D LOCAL HEADER #1006    04034B50 (67324752)\n-36C831 Extract Zip Spec      14 (20) '2.0'\n-36C832 Extract OS            00 (0) 'MS-DOS'\n-36C833 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36C835 Compression Method    0000 (0) 'Stored'\n-36C837 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36C83B CRC                   00000000 (0)\n-36C83F Compressed Size       00000000 (0)\n-36C843 Uncompressed Size     00000000 (0)\n-36C847 Filename Length       005A (90)\n-36C849 Extra Length          0009 (9)\n-36C84B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36C84B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36C8A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36C8A7   Length              0005 (5)\n-36C8A9   Flags               01 (1) 'Modification'\n-36C8AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-36C8AE PAYLOAD\n-\n-36D4E2 DATA DESCRIPTOR       08074B50 (134695760)\n-36D4E6 CRC                   F2F49006 (4076113926)\n-36D4EA Compressed Size       00000C34 (3124)\n-36D4EE Uncompressed Size     00000C34 (3124)\n-\n-36D4F2 LOCAL HEADER #1007    04034B50 (67324752)\n-36D4F6 Extract Zip Spec      14 (20) '2.0'\n-36D4F7 Extract OS            00 (0) 'MS-DOS'\n-36D4F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-36D4FA Compression Method    0000 (0) 'Stored'\n-36D4FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-36D500 CRC                   00000000 (0)\n-36D504 Compressed Size       00000000 (0)\n-36D508 Uncompressed Size     00000000 (0)\n-36D50C Filename Length       0061 (97)\n-36D50E Extra Length          0009 (9)\n-36D510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x36D510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-36D571 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-36D573   Length              0005 (5)\n-36D575   Flags               01 (1) 'Modification'\n-36D576   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-36D57A PAYLOAD\n-\n-371E40 DATA DESCRIPTOR       08074B50 (134695760)\n-371E44 CRC                   63E9E69D (1676273309)\n-371E48 Compressed Size       000048C6 (18630)\n-371E4C Uncompressed Size     000048C6 (18630)\n-\n-371E50 LOCAL HEADER #1008    04034B50 (67324752)\n-371E54 Extract Zip Spec      14 (20) '2.0'\n-371E55 Extract OS            00 (0) 'MS-DOS'\n-371E56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-371E58 Compression Method    0000 (0) 'Stored'\n-371E5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-371E5E CRC                   00000000 (0)\n-371E62 Compressed Size       00000000 (0)\n-371E66 Uncompressed Size     00000000 (0)\n-371E6A Filename Length       0051 (81)\n-371E6C Extra Length          0009 (9)\n-371E6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x371E6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-371EBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-371EC1   Length              0005 (5)\n-371EC3   Flags               01 (1) 'Modification'\n-371EC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-371EC8 PAYLOAD\n-\n-373BA4 DATA DESCRIPTOR       08074B50 (134695760)\n-373BA8 CRC                   7BF0B1BF (2079371711)\n-373BAC Compressed Size       00001CDC (7388)\n-373BB0 Uncompressed Size     00001CDC (7388)\n-\n-373BB4 LOCAL HEADER #1009    04034B50 (67324752)\n-373BB8 Extract Zip Spec      14 (20) '2.0'\n-373BB9 Extract OS            00 (0) 'MS-DOS'\n-373BBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-373BBC Compression Method    0000 (0) 'Stored'\n-373BBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-373BC2 CRC                   00000000 (0)\n-373BC6 Compressed Size       00000000 (0)\n-373BCA Uncompressed Size     00000000 (0)\n-373BCE Filename Length       005F (95)\n-373BD0 Extra Length          0009 (9)\n-373BD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x373BD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-373C31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-373C33   Length              0005 (5)\n-373C35   Flags               01 (1) 'Modification'\n-373C36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-373C3A PAYLOAD\n-\n-374350 DATA DESCRIPTOR       08074B50 (134695760)\n-374354 CRC                   3CA6083C (1017514044)\n-374358 Compressed Size       00000716 (1814)\n-37435C Uncompressed Size     00000716 (1814)\n-\n-374360 LOCAL HEADER #1010    04034B50 (67324752)\n-374364 Extract Zip Spec      14 (20) '2.0'\n-374365 Extract OS            00 (0) 'MS-DOS'\n-374366 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-374368 Compression Method    0000 (0) 'Stored'\n-37436A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37436E CRC                   00000000 (0)\n-374372 Compressed Size       00000000 (0)\n-374376 Uncompressed Size     00000000 (0)\n-37437A Filename Length       0053 (83)\n-37437C Extra Length          0009 (9)\n-37437E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37437E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3743D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3743D3   Length              0005 (5)\n-3743D5   Flags               01 (1) 'Modification'\n-3743D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3743DA PAYLOAD\n-\n-37554F DATA DESCRIPTOR       08074B50 (134695760)\n-375553 CRC                   87C6FC27 (2277964839)\n-375557 Compressed Size       00001175 (4469)\n-37555B Uncompressed Size     00001175 (4469)\n-\n-37555F LOCAL HEADER #1011    04034B50 (67324752)\n-375563 Extract Zip Spec      14 (20) '2.0'\n-375564 Extract OS            00 (0) 'MS-DOS'\n-375565 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-375567 Compression Method    0000 (0) 'Stored'\n-375569 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37556D CRC                   00000000 (0)\n-375571 Compressed Size       00000000 (0)\n-375575 Uncompressed Size     00000000 (0)\n-375579 Filename Length       0056 (86)\n-37557B Extra Length          0009 (9)\n-37557D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37557D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3755D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3755D5   Length              0005 (5)\n-3755D7   Flags               01 (1) 'Modification'\n-3755D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3755DC PAYLOAD\n-\n-37AC25 DATA DESCRIPTOR       08074B50 (134695760)\n-37AC29 CRC                   DD6B0419 (3714778137)\n-37AC2D Compressed Size       00005649 (22089)\n-37AC31 Uncompressed Size     00005649 (22089)\n-\n-37AC35 LOCAL HEADER #1012    04034B50 (67324752)\n-37AC39 Extract Zip Spec      14 (20) '2.0'\n-37AC3A Extract OS            00 (0) 'MS-DOS'\n-37AC3B General Purpose Flag  0000 (0)\n-37AC3D Compression Method    0000 (0) 'Stored'\n-37AC3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37AC43 CRC                   00000000 (0)\n-37AC47 Compressed Size       00000000 (0)\n-37AC4B Uncompressed Size     00000000 (0)\n-37AC4F Filename Length       0034 (52)\n-37AC51 Extra Length          0009 (9)\n-37AC53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37AC53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37AC87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37AC89   Length              0005 (5)\n-37AC8B   Flags               01 (1) 'Modification'\n-37AC8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-37AC90 LOCAL HEADER #1013    04034B50 (67324752)\n-37AC94 Extract Zip Spec      14 (20) '2.0'\n-37AC95 Extract OS            00 (0) 'MS-DOS'\n-37AC96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37AC98 Compression Method    0000 (0) 'Stored'\n-37AC9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37AC9E CRC                   00000000 (0)\n-37ACA2 Compressed Size       00000000 (0)\n-37ACA6 Uncompressed Size     00000000 (0)\n-37ACAA Filename Length       005E (94)\n-37ACAC Extra Length          0009 (9)\n-37ACAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37ACAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37AD0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37AD0E   Length              0005 (5)\n-37AD10   Flags               01 (1) 'Modification'\n-37AD11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37AD15 PAYLOAD\n-\n-37B356 DATA DESCRIPTOR       08074B50 (134695760)\n-37B35A CRC                   B68D8917 (3062728983)\n-37B35E Compressed Size       00000641 (1601)\n-37B362 Uncompressed Size     00000641 (1601)\n-\n-37B366 LOCAL HEADER #1014    04034B50 (67324752)\n-37B36A Extract Zip Spec      14 (20) '2.0'\n-37B36B Extract OS            00 (0) 'MS-DOS'\n-37B36C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37B36E Compression Method    0000 (0) 'Stored'\n-37B370 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37B374 CRC                   00000000 (0)\n-37B378 Compressed Size       00000000 (0)\n-37B37C Uncompressed Size     00000000 (0)\n-37B380 Filename Length       0069 (105)\n-37B382 Extra Length          0009 (9)\n-37B384 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37B384: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37B3ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37B3EF   Length              0005 (5)\n-37B3F1   Flags               01 (1) 'Modification'\n-37B3F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37B3F6 PAYLOAD\n-\n-37C549 DATA DESCRIPTOR       08074B50 (134695760)\n-37C54D CRC                   919401C9 (2442396105)\n-37C551 Compressed Size       00001153 (4435)\n-37C555 Uncompressed Size     00001153 (4435)\n-\n-37C559 LOCAL HEADER #1015    04034B50 (67324752)\n-37C55D Extract Zip Spec      14 (20) '2.0'\n-37C55E Extract OS            00 (0) 'MS-DOS'\n-37C55F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37C561 Compression Method    0000 (0) 'Stored'\n-37C563 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37C567 CRC                   00000000 (0)\n-37C56B Compressed Size       00000000 (0)\n-37C56F Uncompressed Size     00000000 (0)\n-37C573 Filename Length       0064 (100)\n-37C575 Extra Length          0009 (9)\n-37C577 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37C577: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37C5DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37C5DD   Length              0005 (5)\n-37C5DF   Flags               01 (1) 'Modification'\n-37C5E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37C5E4 PAYLOAD\n-\n-37DB90 DATA DESCRIPTOR       08074B50 (134695760)\n-37DB94 CRC                   587421D1 (1484005841)\n-37DB98 Compressed Size       000015AC (5548)\n-37DB9C Uncompressed Size     000015AC (5548)\n-\n-37DBA0 LOCAL HEADER #1016    04034B50 (67324752)\n-37DBA4 Extract Zip Spec      14 (20) '2.0'\n-37DBA5 Extract OS            00 (0) 'MS-DOS'\n-37DBA6 General Purpose Flag  0000 (0)\n-37DBA8 Compression Method    0000 (0) 'Stored'\n-37DBAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37DBAE CRC                   00000000 (0)\n-37DBB2 Compressed Size       00000000 (0)\n-37DBB6 Uncompressed Size     00000000 (0)\n-37DBBA Filename Length       0027 (39)\n-37DBBC Extra Length          0009 (9)\n-37DBBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37DBBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37DBE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37DBE7   Length              0005 (5)\n-37DBE9   Flags               01 (1) 'Modification'\n-37DBEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-37DBEE LOCAL HEADER #1017    04034B50 (67324752)\n-37DBF2 Extract Zip Spec      14 (20) '2.0'\n-37DBF3 Extract OS            00 (0) 'MS-DOS'\n-37DBF4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37DBF6 Compression Method    0000 (0) 'Stored'\n-37DBF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37DBFC CRC                   00000000 (0)\n-37DC00 Compressed Size       00000000 (0)\n-37DC04 Uncompressed Size     00000000 (0)\n-37DC08 Filename Length       004D (77)\n-37DC0A Extra Length          0009 (9)\n-37DC0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37DC0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37DC59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37DC5B   Length              0005 (5)\n-37DC5D   Flags               01 (1) 'Modification'\n-37DC5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37DC62 PAYLOAD\n-\n-37E6C4 DATA DESCRIPTOR       08074B50 (134695760)\n-37E6C8 CRC                   CB41069C (3410036380)\n-37E6CC Compressed Size       00000A62 (2658)\n-37E6D0 Uncompressed Size     00000A62 (2658)\n-\n-37E6D4 LOCAL HEADER #1018    04034B50 (67324752)\n-37E6D8 Extract Zip Spec      14 (20) '2.0'\n-37E6D9 Extract OS            00 (0) 'MS-DOS'\n-37E6DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37E6DC Compression Method    0000 (0) 'Stored'\n-37E6DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37E6E2 CRC                   00000000 (0)\n-37E6E6 Compressed Size       00000000 (0)\n-37E6EA Uncompressed Size     00000000 (0)\n-37E6EE Filename Length       004D (77)\n-37E6F0 Extra Length          0009 (9)\n-37E6F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37E6F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37E73F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37E741   Length              0005 (5)\n-37E743   Flags               01 (1) 'Modification'\n-37E744   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37E748 PAYLOAD\n-\n-37F36D DATA DESCRIPTOR       08074B50 (134695760)\n-37F371 CRC                   22C199A6 (583113126)\n-37F375 Compressed Size       00000C25 (3109)\n-37F379 Uncompressed Size     00000C25 (3109)\n-\n-37F37D LOCAL HEADER #1019    04034B50 (67324752)\n-37F381 Extract Zip Spec      14 (20) '2.0'\n-37F382 Extract OS            00 (0) 'MS-DOS'\n-37F383 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37F385 Compression Method    0000 (0) 'Stored'\n-37F387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37F38B CRC                   00000000 (0)\n-37F38F Compressed Size       00000000 (0)\n-37F393 Uncompressed Size     00000000 (0)\n-37F397 Filename Length       0058 (88)\n-37F399 Extra Length          0009 (9)\n-37F39B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37F39B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37F3F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37F3F5   Length              0005 (5)\n-37F3F7   Flags               01 (1) 'Modification'\n-37F3F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37F3FC PAYLOAD\n-\n-37FB3F DATA DESCRIPTOR       08074B50 (134695760)\n-37FB43 CRC                   7440B75F (1950398303)\n-37FB47 Compressed Size       00000743 (1859)\n-37FB4B Uncompressed Size     00000743 (1859)\n-\n-37FB4F LOCAL HEADER #1020    04034B50 (67324752)\n-37FB53 Extract Zip Spec      14 (20) '2.0'\n-37FB54 Extract OS            00 (0) 'MS-DOS'\n-37FB55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-37FB57 Compression Method    0000 (0) 'Stored'\n-37FB59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-37FB5D CRC                   00000000 (0)\n-37FB61 Compressed Size       00000000 (0)\n-37FB65 Uncompressed Size     00000000 (0)\n-37FB69 Filename Length       0056 (86)\n-37FB6B Extra Length          0009 (9)\n-37FB6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x37FB6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-37FBC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-37FBC5   Length              0005 (5)\n-37FBC7   Flags               01 (1) 'Modification'\n-37FBC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-37FBCC PAYLOAD\n-\n-380A78 DATA DESCRIPTOR       08074B50 (134695760)\n-380A7C CRC                   D92B8674 (3643508340)\n-380A80 Compressed Size       00000EAC (3756)\n-380A84 Uncompressed Size     00000EAC (3756)\n-\n-380A88 LOCAL HEADER #1021    04034B50 (67324752)\n-380A8C Extract Zip Spec      14 (20) '2.0'\n-380A8D Extract OS            00 (0) 'MS-DOS'\n-380A8E General Purpose Flag  0000 (0)\n-380A90 Compression Method    0000 (0) 'Stored'\n-380A92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-380A96 CRC                   00000000 (0)\n-380A9A Compressed Size       00000000 (0)\n-380A9E Uncompressed Size     00000000 (0)\n-380AA2 Filename Length       0032 (50)\n-380AA4 Extra Length          0009 (9)\n-380AA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x380AA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-380AD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-380ADA   Length              0005 (5)\n-380ADC   Flags               01 (1) 'Modification'\n-380ADD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-380AE1 LOCAL HEADER #1022    04034B50 (67324752)\n-380AE5 Extract Zip Spec      14 (20) '2.0'\n-380AE6 Extract OS            00 (0) 'MS-DOS'\n-380AE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-380AE9 Compression Method    0000 (0) 'Stored'\n-380AEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-380AEF CRC                   00000000 (0)\n-380AF3 Compressed Size       00000000 (0)\n-380AF7 Uncompressed Size     00000000 (0)\n-380AFB Filename Length       005A (90)\n-380AFD Extra Length          0009 (9)\n-380AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x380AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-380B59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-380B5B   Length              0005 (5)\n-380B5D   Flags               01 (1) 'Modification'\n-380B5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-380B62 PAYLOAD\n-\n-3815F8 DATA DESCRIPTOR       08074B50 (134695760)\n-3815FC CRC                   E1ADA7E4 (3786254308)\n-381600 Compressed Size       00000A96 (2710)\n-381604 Uncompressed Size     00000A96 (2710)\n-\n-381608 LOCAL HEADER #1023    04034B50 (67324752)\n-38160C Extract Zip Spec      14 (20) '2.0'\n-38160D Extract OS            00 (0) 'MS-DOS'\n-38160E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-381610 Compression Method    0000 (0) 'Stored'\n-381612 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-381616 CRC                   00000000 (0)\n-38161A Compressed Size       00000000 (0)\n-38161E Uncompressed Size     00000000 (0)\n-381622 Filename Length       0049 (73)\n-381624 Extra Length          0009 (9)\n-381626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x381626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38166F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-381671   Length              0005 (5)\n-381673   Flags               01 (1) 'Modification'\n-381674   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-381678 PAYLOAD\n-\n-382147 DATA DESCRIPTOR       08074B50 (134695760)\n-38214B CRC                   041B9E71 (68918897)\n-38214F Compressed Size       00000ACF (2767)\n-382153 Uncompressed Size     00000ACF (2767)\n-\n-382157 LOCAL HEADER #1024    04034B50 (67324752)\n-38215B Extract Zip Spec      14 (20) '2.0'\n-38215C Extract OS            00 (0) 'MS-DOS'\n-38215D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38215F Compression Method    0000 (0) 'Stored'\n-382161 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-382165 CRC                   00000000 (0)\n-382169 Compressed Size       00000000 (0)\n-38216D Uncompressed Size     00000000 (0)\n-382171 Filename Length       0052 (82)\n-382173 Extra Length          0009 (9)\n-382175 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x382175: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3821C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3821C9   Length              0005 (5)\n-3821CB   Flags               01 (1) 'Modification'\n-3821CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3821D0 PAYLOAD\n-\n-383341 DATA DESCRIPTOR       08074B50 (134695760)\n-383345 CRC                   9BFB49A5 (2616936869)\n-383349 Compressed Size       00001171 (4465)\n-38334D Uncompressed Size     00001171 (4465)\n-\n-383351 LOCAL HEADER #1025    04034B50 (67324752)\n-383355 Extract Zip Spec      14 (20) '2.0'\n-383356 Extract OS            00 (0) 'MS-DOS'\n-383357 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-383359 Compression Method    0000 (0) 'Stored'\n-38335B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38335F CRC                   00000000 (0)\n-383363 Compressed Size       00000000 (0)\n-383367 Uncompressed Size     00000000 (0)\n-38336B Filename Length       004F (79)\n-38336D Extra Length          0009 (9)\n-38336F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38336F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3833BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3833C0   Length              0005 (5)\n-3833C2   Flags               01 (1) 'Modification'\n-3833C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3833C7 PAYLOAD\n-\n-38467C DATA DESCRIPTOR       08074B50 (134695760)\n-384680 CRC                   7378DDAE (1937300910)\n-384684 Compressed Size       000012B5 (4789)\n-384688 Uncompressed Size     000012B5 (4789)\n-\n-38468C LOCAL HEADER #1026    04034B50 (67324752)\n-384690 Extract Zip Spec      14 (20) '2.0'\n-384691 Extract OS            00 (0) 'MS-DOS'\n-384692 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-384694 Compression Method    0000 (0) 'Stored'\n-384696 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38469A CRC                   00000000 (0)\n-38469E Compressed Size       00000000 (0)\n-3846A2 Uncompressed Size     00000000 (0)\n-3846A6 Filename Length       0058 (88)\n-3846A8 Extra Length          0009 (9)\n-3846AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3846AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-384702 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-384704   Length              0005 (5)\n-384706   Flags               01 (1) 'Modification'\n-384707   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38470B PAYLOAD\n-\n-38536F DATA DESCRIPTOR       08074B50 (134695760)\n-385373 CRC                   AC9AB837 (2895820855)\n-385377 Compressed Size       00000C64 (3172)\n-38537B Uncompressed Size     00000C64 (3172)\n-\n-38537F LOCAL HEADER #1027    04034B50 (67324752)\n-385383 Extract Zip Spec      14 (20) '2.0'\n-385384 Extract OS            00 (0) 'MS-DOS'\n-385385 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-385387 Compression Method    0000 (0) 'Stored'\n-385389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38538D CRC                   00000000 (0)\n-385391 Compressed Size       00000000 (0)\n-385395 Uncompressed Size     00000000 (0)\n-385399 Filename Length       0057 (87)\n-38539B Extra Length          0009 (9)\n-38539D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38539D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3853F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3853F6   Length              0005 (5)\n-3853F8   Flags               01 (1) 'Modification'\n-3853F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3853FD PAYLOAD\n-\n-385C04 DATA DESCRIPTOR       08074B50 (134695760)\n-385C08 CRC                   D46003CA (3563062218)\n-385C0C Compressed Size       00000807 (2055)\n-385C10 Uncompressed Size     00000807 (2055)\n-\n-385C14 LOCAL HEADER #1028    04034B50 (67324752)\n-385C18 Extract Zip Spec      14 (20) '2.0'\n-385C19 Extract OS            00 (0) 'MS-DOS'\n-385C1A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-385C1C Compression Method    0000 (0) 'Stored'\n-385C1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-385C22 CRC                   00000000 (0)\n-385C26 Compressed Size       00000000 (0)\n-385C2A Uncompressed Size     00000000 (0)\n-385C2E Filename Length       0042 (66)\n-385C30 Extra Length          0009 (9)\n-385C32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x385C32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-385C74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-385C76   Length              0005 (5)\n-385C78   Flags               01 (1) 'Modification'\n-385C79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-385C7D PAYLOAD\n-\n-3867A6 DATA DESCRIPTOR       08074B50 (134695760)\n-3867AA CRC                   93877211 (2475127313)\n-3867AE Compressed Size       00000B29 (2857)\n-3867B2 Uncompressed Size     00000B29 (2857)\n-\n-3867B6 LOCAL HEADER #1029    04034B50 (67324752)\n-3867BA Extract Zip Spec      14 (20) '2.0'\n-3867BB Extract OS            00 (0) 'MS-DOS'\n-3867BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3867BE Compression Method    0000 (0) 'Stored'\n-3867C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3867C4 CRC                   00000000 (0)\n-3867C8 Compressed Size       00000000 (0)\n-3867CC Uncompressed Size     00000000 (0)\n-3867D0 Filename Length       0048 (72)\n-3867D2 Extra Length          0009 (9)\n-3867D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3867D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38681C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38681E   Length              0005 (5)\n-386820   Flags               01 (1) 'Modification'\n-386821   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-386825 PAYLOAD\n-\n-3875B2 DATA DESCRIPTOR       08074B50 (134695760)\n-3875B6 CRC                   7F0F87F2 (2131724274)\n-3875BA Compressed Size       00000D8D (3469)\n-3875BE Uncompressed Size     00000D8D (3469)\n-\n-3875C2 LOCAL HEADER #1030    04034B50 (67324752)\n-3875C6 Extract Zip Spec      14 (20) '2.0'\n-3875C7 Extract OS            00 (0) 'MS-DOS'\n-3875C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3875CA Compression Method    0000 (0) 'Stored'\n-3875CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3875D0 CRC                   00000000 (0)\n-3875D4 Compressed Size       00000000 (0)\n-3875D8 Uncompressed Size     00000000 (0)\n-3875DC Filename Length       004B (75)\n-3875DE Extra Length          0009 (9)\n-3875E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3875E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38762B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38762D   Length              0005 (5)\n-38762F   Flags               01 (1) 'Modification'\n-387630   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-387634 PAYLOAD\n-\n-387C69 DATA DESCRIPTOR       08074B50 (134695760)\n-387C6D CRC                   0F98947D (261657725)\n-387C71 Compressed Size       00000635 (1589)\n-387C75 Uncompressed Size     00000635 (1589)\n-\n-387C79 LOCAL HEADER #1031    04034B50 (67324752)\n-387C7D Extract Zip Spec      14 (20) '2.0'\n-387C7E Extract OS            00 (0) 'MS-DOS'\n-387C7F General Purpose Flag  0000 (0)\n-387C81 Compression Method    0000 (0) 'Stored'\n-387C83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-387C87 CRC                   00000000 (0)\n-387C8B Compressed Size       00000000 (0)\n-387C8F Uncompressed Size     00000000 (0)\n-387C93 Filename Length       002E (46)\n-387C95 Extra Length          0009 (9)\n-387C97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x387C97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-387CC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-387CC7   Length              0005 (5)\n-387CC9   Flags               01 (1) 'Modification'\n-387CCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-387CCE LOCAL HEADER #1032    04034B50 (67324752)\n-387CD2 Extract Zip Spec      14 (20) '2.0'\n-387CD3 Extract OS            00 (0) 'MS-DOS'\n-387CD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-387CD6 Compression Method    0000 (0) 'Stored'\n-387CD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-387CDC CRC                   00000000 (0)\n-387CE0 Compressed Size       00000000 (0)\n-387CE4 Uncompressed Size     00000000 (0)\n-387CE8 Filename Length       004C (76)\n-387CEA Extra Length          0009 (9)\n-387CEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x387CEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-387D38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-387D3A   Length              0005 (5)\n-387D3C   Flags               01 (1) 'Modification'\n-387D3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-387D41 PAYLOAD\n-\n-3886B6 DATA DESCRIPTOR       08074B50 (134695760)\n-3886BA CRC                   84EC925F (2230096479)\n-3886BE Compressed Size       00000975 (2421)\n-3886C2 Uncompressed Size     00000975 (2421)\n-\n-3886C6 LOCAL HEADER #1033    04034B50 (67324752)\n-3886CA Extract Zip Spec      14 (20) '2.0'\n-3886CB Extract OS            00 (0) 'MS-DOS'\n-3886CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3886CE Compression Method    0000 (0) 'Stored'\n-3886D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3886D4 CRC                   00000000 (0)\n-3886D8 Compressed Size       00000000 (0)\n-3886DC Uncompressed Size     00000000 (0)\n-3886E0 Filename Length       0064 (100)\n-3886E2 Extra Length          0009 (9)\n-3886E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3886E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-388748 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38874A   Length              0005 (5)\n-38874C   Flags               01 (1) 'Modification'\n-38874D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-388751 PAYLOAD\n-\n-389424 DATA DESCRIPTOR       08074B50 (134695760)\n-389428 CRC                   32AC7879 (850163833)\n-38942C Compressed Size       00000CD3 (3283)\n-389430 Uncompressed Size     00000CD3 (3283)\n-\n-389434 LOCAL HEADER #1034    04034B50 (67324752)\n-389438 Extract Zip Spec      14 (20) '2.0'\n-389439 Extract OS            00 (0) 'MS-DOS'\n-38943A General Purpose Flag  0000 (0)\n-38943C Compression Method    0000 (0) 'Stored'\n-38943E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-389442 CRC                   00000000 (0)\n-389446 Compressed Size       00000000 (0)\n-38944A Uncompressed Size     00000000 (0)\n-38944E Filename Length       002D (45)\n-389450 Extra Length          0009 (9)\n-389452 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x389452: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38947F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-389481   Length              0005 (5)\n-389483   Flags               01 (1) 'Modification'\n-389484   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-389488 LOCAL HEADER #1035    04034B50 (67324752)\n-38948C Extract Zip Spec      14 (20) '2.0'\n-38948D Extract OS            00 (0) 'MS-DOS'\n-38948E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-389490 Compression Method    0000 (0) 'Stored'\n-389492 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-389496 CRC                   00000000 (0)\n-38949A Compressed Size       00000000 (0)\n-38949E Uncompressed Size     00000000 (0)\n-3894A2 Filename Length       004B (75)\n-3894A4 Extra Length          0009 (9)\n-3894A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3894A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3894F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3894F3   Length              0005 (5)\n-3894F5   Flags               01 (1) 'Modification'\n-3894F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3894FA PAYLOAD\n-\n-389C31 DATA DESCRIPTOR       08074B50 (134695760)\n-389C35 CRC                   C7D55000 (3352645632)\n-389C39 Compressed Size       00000737 (1847)\n-389C3D Uncompressed Size     00000737 (1847)\n-\n-389C41 LOCAL HEADER #1036    04034B50 (67324752)\n-389C45 Extract Zip Spec      14 (20) '2.0'\n-389C46 Extract OS            00 (0) 'MS-DOS'\n-389C47 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-389C49 Compression Method    0000 (0) 'Stored'\n-389C4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-389C4F CRC                   00000000 (0)\n-389C53 Compressed Size       00000000 (0)\n-389C57 Uncompressed Size     00000000 (0)\n-389C5B Filename Length       004B (75)\n-389C5D Extra Length          0009 (9)\n-389C5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x389C5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-389CAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-389CAC   Length              0005 (5)\n-389CAE   Flags               01 (1) 'Modification'\n-389CAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-389CB3 PAYLOAD\n-\n-38A3E9 DATA DESCRIPTOR       08074B50 (134695760)\n-38A3ED CRC                   33FEB344 (872330052)\n-38A3F1 Compressed Size       00000736 (1846)\n-38A3F5 Uncompressed Size     00000736 (1846)\n-\n-38A3F9 LOCAL HEADER #1037    04034B50 (67324752)\n-38A3FD Extract Zip Spec      14 (20) '2.0'\n-38A3FE Extract OS            00 (0) 'MS-DOS'\n-38A3FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38A401 Compression Method    0000 (0) 'Stored'\n-38A403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38A407 CRC                   00000000 (0)\n-38A40B Compressed Size       00000000 (0)\n-38A40F Uncompressed Size     00000000 (0)\n-38A413 Filename Length       004A (74)\n-38A415 Extra Length          0009 (9)\n-38A417 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38A417: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38A461 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38A463   Length              0005 (5)\n-38A465   Flags               01 (1) 'Modification'\n-38A466   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38A46A PAYLOAD\n-\n-38AB30 DATA DESCRIPTOR       08074B50 (134695760)\n-38AB34 CRC                   BFF1DD26 (3220299046)\n-38AB38 Compressed Size       000006C6 (1734)\n-38AB3C Uncompressed Size     000006C6 (1734)\n-\n-38AB40 LOCAL HEADER #1038    04034B50 (67324752)\n-38AB44 Extract Zip Spec      14 (20) '2.0'\n-38AB45 Extract OS            00 (0) 'MS-DOS'\n-38AB46 General Purpose Flag  0000 (0)\n-38AB48 Compression Method    0000 (0) 'Stored'\n-38AB4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38AB4E CRC                   00000000 (0)\n-38AB52 Compressed Size       00000000 (0)\n-38AB56 Uncompressed Size     00000000 (0)\n-38AB5A Filename Length       0032 (50)\n-38AB5C Extra Length          0009 (9)\n-38AB5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38AB5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38AB90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38AB92   Length              0005 (5)\n-38AB94   Flags               01 (1) 'Modification'\n-38AB95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-38AB99 LOCAL HEADER #1039    04034B50 (67324752)\n-38AB9D Extract Zip Spec      14 (20) '2.0'\n-38AB9E Extract OS            00 (0) 'MS-DOS'\n-38AB9F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38ABA1 Compression Method    0000 (0) 'Stored'\n-38ABA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38ABA7 CRC                   00000000 (0)\n-38ABAB Compressed Size       00000000 (0)\n-38ABAF Uncompressed Size     00000000 (0)\n-38ABB3 Filename Length       0050 (80)\n-38ABB5 Extra Length          0009 (9)\n-38ABB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38ABB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38AC07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38AC09   Length              0005 (5)\n-38AC0B   Flags               01 (1) 'Modification'\n-38AC0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38AC10 PAYLOAD\n-\n-38B550 DATA DESCRIPTOR       08074B50 (134695760)\n-38B554 CRC                   D7398AF1 (3610872561)\n-38B558 Compressed Size       00000940 (2368)\n-38B55C Uncompressed Size     00000940 (2368)\n-\n-38B560 LOCAL HEADER #1040    04034B50 (67324752)\n-38B564 Extract Zip Spec      14 (20) '2.0'\n-38B565 Extract OS            00 (0) 'MS-DOS'\n-38B566 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38B568 Compression Method    0000 (0) 'Stored'\n-38B56A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38B56E CRC                   00000000 (0)\n-38B572 Compressed Size       00000000 (0)\n-38B576 Uncompressed Size     00000000 (0)\n-38B57A Filename Length       004F (79)\n-38B57C Extra Length          0009 (9)\n-38B57E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38B57E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38B5CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38B5CF   Length              0005 (5)\n-38B5D1   Flags               01 (1) 'Modification'\n-38B5D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38B5D6 PAYLOAD\n-\n-38BD81 DATA DESCRIPTOR       08074B50 (134695760)\n-38BD85 CRC                   85DF07D4 (2245986260)\n-38BD89 Compressed Size       000007AB (1963)\n-38BD8D Uncompressed Size     000007AB (1963)\n-\n-38BD91 LOCAL HEADER #1041    04034B50 (67324752)\n-38BD95 Extract Zip Spec      14 (20) '2.0'\n-38BD96 Extract OS            00 (0) 'MS-DOS'\n-38BD97 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38BD99 Compression Method    0000 (0) 'Stored'\n-38BD9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38BD9F CRC                   00000000 (0)\n-38BDA3 Compressed Size       00000000 (0)\n-38BDA7 Uncompressed Size     00000000 (0)\n-38BDAB Filename Length       0048 (72)\n-38BDAD Extra Length          0009 (9)\n-38BDAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38BDAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38BDF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38BDF9   Length              0005 (5)\n-38BDFB   Flags               01 (1) 'Modification'\n-38BDFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38BE00 PAYLOAD\n-\n-38C68D DATA DESCRIPTOR       08074B50 (134695760)\n-38C691 CRC                   59514F7F (1498500991)\n-38C695 Compressed Size       0000088D (2189)\n-38C699 Uncompressed Size     0000088D (2189)\n-\n-38C69D LOCAL HEADER #1042    04034B50 (67324752)\n-38C6A1 Extract Zip Spec      14 (20) '2.0'\n-38C6A2 Extract OS            00 (0) 'MS-DOS'\n-38C6A3 General Purpose Flag  0000 (0)\n-38C6A5 Compression Method    0000 (0) 'Stored'\n-38C6A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38C6AB CRC                   00000000 (0)\n-38C6AF Compressed Size       00000000 (0)\n-38C6B3 Uncompressed Size     00000000 (0)\n-38C6B7 Filename Length       0029 (41)\n-38C6B9 Extra Length          0009 (9)\n-38C6BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38C6BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38C6E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38C6E6   Length              0005 (5)\n-38C6E8   Flags               01 (1) 'Modification'\n-38C6E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-38C6ED LOCAL HEADER #1043    04034B50 (67324752)\n-38C6F1 Extract Zip Spec      14 (20) '2.0'\n-38C6F2 Extract OS            00 (0) 'MS-DOS'\n-38C6F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38C6F5 Compression Method    0000 (0) 'Stored'\n-38C6F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38C6FB CRC                   00000000 (0)\n-38C6FF Compressed Size       00000000 (0)\n-38C703 Uncompressed Size     00000000 (0)\n-38C707 Filename Length       0044 (68)\n-38C709 Extra Length          0009 (9)\n-38C70B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38C70B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38C74F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38C751   Length              0005 (5)\n-38C753   Flags               01 (1) 'Modification'\n-38C754   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38C758 PAYLOAD\n-\n-38D286 DATA DESCRIPTOR       08074B50 (134695760)\n-38D28A CRC                   EFF8B6F4 (4026054388)\n-38D28E Compressed Size       00000B2E (2862)\n-38D292 Uncompressed Size     00000B2E (2862)\n-\n-38D296 LOCAL HEADER #1044    04034B50 (67324752)\n-38D29A Extract Zip Spec      14 (20) '2.0'\n-38D29B Extract OS            00 (0) 'MS-DOS'\n-38D29C General Purpose Flag  0000 (0)\n-38D29E Compression Method    0000 (0) 'Stored'\n-38D2A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38D2A4 CRC                   00000000 (0)\n-38D2A8 Compressed Size       00000000 (0)\n-38D2AC Uncompressed Size     00000000 (0)\n-38D2B0 Filename Length       0026 (38)\n-38D2B2 Extra Length          0009 (9)\n-38D2B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38D2B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38D2DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38D2DC   Length              0005 (5)\n-38D2DE   Flags               01 (1) 'Modification'\n-38D2DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-38D2E3 LOCAL HEADER #1045    04034B50 (67324752)\n-38D2E7 Extract Zip Spec      14 (20) '2.0'\n-38D2E8 Extract OS            00 (0) 'MS-DOS'\n-38D2E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38D2EB Compression Method    0000 (0) 'Stored'\n-38D2ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38D2F1 CRC                   00000000 (0)\n-38D2F5 Compressed Size       00000000 (0)\n-38D2F9 Uncompressed Size     00000000 (0)\n-38D2FD Filename Length       0049 (73)\n-38D2FF Extra Length          0009 (9)\n-38D301 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38D301: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38D34A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38D34C   Length              0005 (5)\n-38D34E   Flags               01 (1) 'Modification'\n-38D34F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38D353 PAYLOAD\n-\n-38DEA5 DATA DESCRIPTOR       08074B50 (134695760)\n-38DEA9 CRC                   E6EC6DE5 (3874254309)\n-38DEAD Compressed Size       00000B52 (2898)\n-38DEB1 Uncompressed Size     00000B52 (2898)\n-\n-38DEB5 LOCAL HEADER #1046    04034B50 (67324752)\n-38DEB9 Extract Zip Spec      14 (20) '2.0'\n-38DEBA Extract OS            00 (0) 'MS-DOS'\n-38DEBB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-38DEBD Compression Method    0000 (0) 'Stored'\n-38DEBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-38DEC3 CRC                   00000000 (0)\n-38DEC7 Compressed Size       00000000 (0)\n-38DECB Uncompressed Size     00000000 (0)\n-38DECF Filename Length       0044 (68)\n-38DED1 Extra Length          0009 (9)\n-38DED3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x38DED3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-38DF17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-38DF19   Length              0005 (5)\n-38DF1B   Flags               01 (1) 'Modification'\n-38DF1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-38DF20 PAYLOAD\n-\n-39372E DATA DESCRIPTOR       08074B50 (134695760)\n-393732 CRC                   6DDE9A21 (1843304993)\n-393736 Compressed Size       0000580E (22542)\n-39373A Uncompressed Size     0000580E (22542)\n-\n-39373E LOCAL HEADER #1047    04034B50 (67324752)\n-393742 Extract Zip Spec      14 (20) '2.0'\n-393743 Extract OS            00 (0) 'MS-DOS'\n-393744 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-393746 Compression Method    0000 (0) 'Stored'\n-393748 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39374C CRC                   00000000 (0)\n-393750 Compressed Size       00000000 (0)\n-393754 Uncompressed Size     00000000 (0)\n-393758 Filename Length       0040 (64)\n-39375A Extra Length          0009 (9)\n-39375C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39375C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-39379C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-39379E   Length              0005 (5)\n-3937A0   Flags               01 (1) 'Modification'\n-3937A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3937A5 PAYLOAD\n-\n-394B34 DATA DESCRIPTOR       08074B50 (134695760)\n-394B38 CRC                   FDDFE0B7 (4259307703)\n-394B3C Compressed Size       0000138F (5007)\n-394B40 Uncompressed Size     0000138F (5007)\n-\n-394B44 LOCAL HEADER #1048    04034B50 (67324752)\n-394B48 Extract Zip Spec      14 (20) '2.0'\n-394B49 Extract OS            00 (0) 'MS-DOS'\n-394B4A General Purpose Flag  0000 (0)\n-394B4C Compression Method    0000 (0) 'Stored'\n-394B4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-394B52 CRC                   00000000 (0)\n-394B56 Compressed Size       00000000 (0)\n-394B5A Uncompressed Size     00000000 (0)\n-394B5E Filename Length       0026 (38)\n-394B60 Extra Length          0009 (9)\n-394B62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x394B62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-394B88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-394B8A   Length              0005 (5)\n-394B8C   Flags               01 (1) 'Modification'\n-394B8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-394B91 LOCAL HEADER #1049    04034B50 (67324752)\n-394B95 Extract Zip Spec      14 (20) '2.0'\n-394B96 Extract OS            00 (0) 'MS-DOS'\n-394B97 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-394B99 Compression Method    0000 (0) 'Stored'\n-394B9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-394B9F CRC                   00000000 (0)\n-394BA3 Compressed Size       00000000 (0)\n-394BA7 Uncompressed Size     00000000 (0)\n-394BAB Filename Length       0042 (66)\n-394BAD Extra Length          0009 (9)\n-394BAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x394BAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-394BF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-394BF3   Length              0005 (5)\n-394BF5   Flags               01 (1) 'Modification'\n-394BF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-394BFA PAYLOAD\n-\n-395950 DATA DESCRIPTOR       08074B50 (134695760)\n-395954 CRC                   263FC442 (641713218)\n-395958 Compressed Size       00000D56 (3414)\n-39595C Uncompressed Size     00000D56 (3414)\n-\n-395960 LOCAL HEADER #1050    04034B50 (67324752)\n-395964 Extract Zip Spec      14 (20) '2.0'\n-395965 Extract OS            00 (0) 'MS-DOS'\n-395966 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-395968 Compression Method    0000 (0) 'Stored'\n-39596A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39596E CRC                   00000000 (0)\n-395972 Compressed Size       00000000 (0)\n-395976 Uncompressed Size     00000000 (0)\n-39597A Filename Length       003E (62)\n-39597C Extra Length          0009 (9)\n-39597E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39597E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3959BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3959BE   Length              0005 (5)\n-3959C0   Flags               01 (1) 'Modification'\n-3959C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3959C5 PAYLOAD\n-\n-396831 DATA DESCRIPTOR       08074B50 (134695760)\n-396835 CRC                   8F184A91 (2400733841)\n-396839 Compressed Size       00000E6C (3692)\n-39683D Uncompressed Size     00000E6C (3692)\n-\n-396841 LOCAL HEADER #1051    04034B50 (67324752)\n-396845 Extract Zip Spec      14 (20) '2.0'\n-396846 Extract OS            00 (0) 'MS-DOS'\n-396847 General Purpose Flag  0000 (0)\n-396849 Compression Method    0000 (0) 'Stored'\n-39684B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39684F CRC                   00000000 (0)\n-396853 Compressed Size       00000000 (0)\n-396857 Uncompressed Size     00000000 (0)\n-39685B Filename Length       0024 (36)\n-39685D Extra Length          0009 (9)\n-39685F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39685F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-396883 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-396885   Length              0005 (5)\n-396887   Flags               01 (1) 'Modification'\n-396888   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-39688C LOCAL HEADER #1052    04034B50 (67324752)\n-396890 Extract Zip Spec      14 (20) '2.0'\n-396891 Extract OS            00 (0) 'MS-DOS'\n-396892 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-396894 Compression Method    0000 (0) 'Stored'\n-396896 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39689A CRC                   00000000 (0)\n-39689E Compressed Size       00000000 (0)\n-3968A2 Uncompressed Size     00000000 (0)\n-3968A6 Filename Length       003D (61)\n-3968A8 Extra Length          0009 (9)\n-3968AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3968AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3968E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3968E9   Length              0005 (5)\n-3968EB   Flags               01 (1) 'Modification'\n-3968EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3968F0 PAYLOAD\n-\n-3981B2 DATA DESCRIPTOR       08074B50 (134695760)\n-3981B6 CRC                   B14D8B82 (2974649218)\n-3981BA Compressed Size       000018C2 (6338)\n-3981BE Uncompressed Size     000018C2 (6338)\n-\n-3981C2 LOCAL HEADER #1053    04034B50 (67324752)\n-3981C6 Extract Zip Spec      14 (20) '2.0'\n-3981C7 Extract OS            00 (0) 'MS-DOS'\n-3981C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3981CA Compression Method    0000 (0) 'Stored'\n-3981CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3981D0 CRC                   00000000 (0)\n-3981D4 Compressed Size       00000000 (0)\n-3981D8 Uncompressed Size     00000000 (0)\n-3981DC Filename Length       0037 (55)\n-3981DE Extra Length          0009 (9)\n-3981E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3981E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-398217 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-398219   Length              0005 (5)\n-39821B   Flags               01 (1) 'Modification'\n-39821C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-398220 PAYLOAD\n-\n-399EA9 DATA DESCRIPTOR       08074B50 (134695760)\n-399EAD CRC                   0414302F (68431919)\n-399EB1 Compressed Size       00001C89 (7305)\n-399EB5 Uncompressed Size     00001C89 (7305)\n-\n-399EB9 LOCAL HEADER #1054    04034B50 (67324752)\n-399EBD Extract Zip Spec      14 (20) '2.0'\n-399EBE Extract OS            00 (0) 'MS-DOS'\n-399EBF General Purpose Flag  0000 (0)\n-399EC1 Compression Method    0000 (0) 'Stored'\n-399EC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-399EC7 CRC                   00000000 (0)\n-399ECB Compressed Size       00000000 (0)\n-399ECF Uncompressed Size     00000000 (0)\n-399ED3 Filename Length       0020 (32)\n-399ED5 Extra Length          0009 (9)\n-399ED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x399ED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-399EF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-399EF9   Length              0005 (5)\n-399EFB   Flags               01 (1) 'Modification'\n-399EFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-399F00 LOCAL HEADER #1055    04034B50 (67324752)\n-399F04 Extract Zip Spec      14 (20) '2.0'\n-399F05 Extract OS            00 (0) 'MS-DOS'\n-399F06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-399F08 Compression Method    0000 (0) 'Stored'\n-399F0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-399F0E CRC                   00000000 (0)\n-399F12 Compressed Size       00000000 (0)\n-399F16 Uncompressed Size     00000000 (0)\n-399F1A Filename Length       002E (46)\n-399F1C Extra Length          0009 (9)\n-399F1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x399F1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-399F4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-399F4E   Length              0005 (5)\n-399F50   Flags               01 (1) 'Modification'\n-399F51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-399F55 PAYLOAD\n-\n-39A74B DATA DESCRIPTOR       08074B50 (134695760)\n-39A74F CRC                   9409E400 (2483676160)\n-39A753 Compressed Size       000007F6 (2038)\n-39A757 Uncompressed Size     000007F6 (2038)\n-\n-39A75B LOCAL HEADER #1056    04034B50 (67324752)\n-39A75F Extract Zip Spec      14 (20) '2.0'\n-39A760 Extract OS            00 (0) 'MS-DOS'\n-39A761 General Purpose Flag  0000 (0)\n-39A763 Compression Method    0000 (0) 'Stored'\n-39A765 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39A769 CRC                   00000000 (0)\n-39A76D Compressed Size       00000000 (0)\n-39A771 Uncompressed Size     00000000 (0)\n-39A775 Filename Length       001E (30)\n-39A777 Extra Length          0009 (9)\n-39A779 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39A779: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-39A797 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-39A799   Length              0005 (5)\n-39A79B   Flags               01 (1) 'Modification'\n-39A79C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-39A7A0 LOCAL HEADER #1057    04034B50 (67324752)\n-39A7A4 Extract Zip Spec      14 (20) '2.0'\n-39A7A5 Extract OS            00 (0) 'MS-DOS'\n-39A7A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-39A7A8 Compression Method    0000 (0) 'Stored'\n-39A7AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-39A7AE CRC                   00000000 (0)\n-39A7B2 Compressed Size       00000000 (0)\n-39A7B6 Uncompressed Size     00000000 (0)\n-39A7BA Filename Length       0038 (56)\n-39A7BC Extra Length          0009 (9)\n-39A7BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x39A7BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-39A7F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-39A7F8   Length              0005 (5)\n-39A7FA   Flags               01 (1) 'Modification'\n-39A7FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-39A7FF PAYLOAD\n-\n-3A1B55 DATA DESCRIPTOR       08074B50 (134695760)\n-3A1B59 CRC                   CE83BFB8 (3464740792)\n-3A1B5D Compressed Size       00007356 (29526)\n-3A1B61 Uncompressed Size     00007356 (29526)\n-\n-3A1B65 LOCAL HEADER #1058    04034B50 (67324752)\n-3A1B69 Extract Zip Spec      14 (20) '2.0'\n-3A1B6A Extract OS            00 (0) 'MS-DOS'\n-3A1B6B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A1B6D Compression Method    0000 (0) 'Stored'\n-3A1B6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A1B73 CRC                   00000000 (0)\n-3A1B77 Compressed Size       00000000 (0)\n-3A1B7B Uncompressed Size     00000000 (0)\n-3A1B7F Filename Length       0037 (55)\n-3A1B81 Extra Length          0009 (9)\n-3A1B83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A1B83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A1BBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A1BBC   Length              0005 (5)\n-3A1BBE   Flags               01 (1) 'Modification'\n-3A1BBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A1BC3 PAYLOAD\n-\n-3A3E40 DATA DESCRIPTOR       08074B50 (134695760)\n-3A3E44 CRC                   B659AACE (3059329742)\n-3A3E48 Compressed Size       0000227D (8829)\n-3A3E4C Uncompressed Size     0000227D (8829)\n-\n-3A3E50 LOCAL HEADER #1059    04034B50 (67324752)\n-3A3E54 Extract Zip Spec      14 (20) '2.0'\n-3A3E55 Extract OS            00 (0) 'MS-DOS'\n-3A3E56 General Purpose Flag  0000 (0)\n-3A3E58 Compression Method    0000 (0) 'Stored'\n-3A3E5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A3E5E CRC                   00000000 (0)\n-3A3E62 Compressed Size       00000000 (0)\n-3A3E66 Uncompressed Size     00000000 (0)\n-3A3E6A Filename Length       001E (30)\n-3A3E6C Extra Length          0009 (9)\n-3A3E6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A3E6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A3E8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A3E8E   Length              0005 (5)\n-3A3E90   Flags               01 (1) 'Modification'\n-3A3E91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3A3E95 LOCAL HEADER #1060    04034B50 (67324752)\n-3A3E99 Extract Zip Spec      14 (20) '2.0'\n-3A3E9A Extract OS            00 (0) 'MS-DOS'\n-3A3E9B General Purpose Flag  0000 (0)\n-3A3E9D Compression Method    0000 (0) 'Stored'\n-3A3E9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A3EA3 CRC                   00000000 (0)\n-3A3EA7 Compressed Size       00000000 (0)\n-3A3EAB Uncompressed Size     00000000 (0)\n-3A3EAF Filename Length       0025 (37)\n-3A3EB1 Extra Length          0009 (9)\n-3A3EB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A3EB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A3ED8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A3EDA   Length              0005 (5)\n-3A3EDC   Flags               01 (1) 'Modification'\n-3A3EDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3A3EE1 LOCAL HEADER #1061    04034B50 (67324752)\n-3A3EE5 Extract Zip Spec      14 (20) '2.0'\n-3A3EE6 Extract OS            00 (0) 'MS-DOS'\n-3A3EE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A3EE9 Compression Method    0000 (0) 'Stored'\n-3A3EEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A3EEF CRC                   00000000 (0)\n-3A3EF3 Compressed Size       00000000 (0)\n-3A3EF7 Uncompressed Size     00000000 (0)\n-3A3EFB Filename Length       0044 (68)\n-3A3EFD Extra Length          0009 (9)\n-3A3EFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A3EFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A3F43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A3F45   Length              0005 (5)\n-3A3F47   Flags               01 (1) 'Modification'\n-3A3F48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A3F4C PAYLOAD\n-\n-3A5A33 DATA DESCRIPTOR       08074B50 (134695760)\n-3A5A37 CRC                   52CF3DD1 (1389313489)\n-3A5A3B Compressed Size       00001AE7 (6887)\n-3A5A3F Uncompressed Size     00001AE7 (6887)\n-\n-3A5A43 LOCAL HEADER #1062    04034B50 (67324752)\n-3A5A47 Extract Zip Spec      14 (20) '2.0'\n-3A5A48 Extract OS            00 (0) 'MS-DOS'\n-3A5A49 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A5A4B Compression Method    0000 (0) 'Stored'\n-3A5A4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A5A51 CRC                   00000000 (0)\n-3A5A55 Compressed Size       00000000 (0)\n-3A5A59 Uncompressed Size     00000000 (0)\n-3A5A5D Filename Length       004B (75)\n-3A5A5F Extra Length          0009 (9)\n-3A5A61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A5A61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A5AAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A5AAE   Length              0005 (5)\n-3A5AB0   Flags               01 (1) 'Modification'\n-3A5AB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A5AB5 PAYLOAD\n-\n-3A5FE9 DATA DESCRIPTOR       08074B50 (134695760)\n-3A5FED CRC                   350D1F44 (890052420)\n-3A5FF1 Compressed Size       00000534 (1332)\n-3A5FF5 Uncompressed Size     00000534 (1332)\n-\n-3A5FF9 LOCAL HEADER #1063    04034B50 (67324752)\n-3A5FFD Extract Zip Spec      14 (20) '2.0'\n-3A5FFE Extract OS            00 (0) 'MS-DOS'\n-3A5FFF General Purpose Flag  0000 (0)\n-3A6001 Compression Method    0000 (0) 'Stored'\n-3A6003 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A6007 CRC                   00000000 (0)\n-3A600B Compressed Size       00000000 (0)\n-3A600F Uncompressed Size     00000000 (0)\n-3A6013 Filename Length       0026 (38)\n-3A6015 Extra Length          0009 (9)\n-3A6017 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A6017: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A603D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A603F   Length              0005 (5)\n-3A6041   Flags               01 (1) 'Modification'\n-3A6042   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3A6046 LOCAL HEADER #1064    04034B50 (67324752)\n-3A604A Extract Zip Spec      14 (20) '2.0'\n-3A604B Extract OS            00 (0) 'MS-DOS'\n-3A604C General Purpose Flag  0000 (0)\n-3A604E Compression Method    0000 (0) 'Stored'\n-3A6050 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A6054 CRC                   00000000 (0)\n-3A6058 Compressed Size       00000000 (0)\n-3A605C Uncompressed Size     00000000 (0)\n-3A6060 Filename Length       002D (45)\n-3A6062 Extra Length          0009 (9)\n-3A6064 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A6064: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A6091 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A6093   Length              0005 (5)\n-3A6095   Flags               01 (1) 'Modification'\n-3A6096   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3A609A LOCAL HEADER #1065    04034B50 (67324752)\n-3A609E Extract Zip Spec      14 (20) '2.0'\n-3A609F Extract OS            00 (0) 'MS-DOS'\n-3A60A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A60A2 Compression Method    0000 (0) 'Stored'\n-3A60A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A60A8 CRC                   00000000 (0)\n-3A60AC Compressed Size       00000000 (0)\n-3A60B0 Uncompressed Size     00000000 (0)\n-3A60B4 Filename Length       004C (76)\n-3A60B6 Extra Length          0009 (9)\n-3A60B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A60B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A6104 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A6106   Length              0005 (5)\n-3A6108   Flags               01 (1) 'Modification'\n-3A6109   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A610D PAYLOAD\n-\n-3A8F37 DATA DESCRIPTOR       08074B50 (134695760)\n-3A8F3B CRC                   52ECC716 (1391249174)\n-3A8F3F Compressed Size       00002E2A (11818)\n-3A8F43 Uncompressed Size     00002E2A (11818)\n-\n-3A8F47 LOCAL HEADER #1066    04034B50 (67324752)\n-3A8F4B Extract Zip Spec      14 (20) '2.0'\n-3A8F4C Extract OS            00 (0) 'MS-DOS'\n-3A8F4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A8F4F Compression Method    0000 (0) 'Stored'\n-3A8F51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A8F55 CRC                   00000000 (0)\n-3A8F59 Compressed Size       00000000 (0)\n-3A8F5D Uncompressed Size     00000000 (0)\n-3A8F61 Filename Length       0053 (83)\n-3A8F63 Extra Length          0009 (9)\n-3A8F65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A8F65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A8FB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A8FBA   Length              0005 (5)\n-3A8FBC   Flags               01 (1) 'Modification'\n-3A8FBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A8FC1 PAYLOAD\n-\n-3A94DB DATA DESCRIPTOR       08074B50 (134695760)\n-3A94DF CRC                   BB1FB1EA (3139416554)\n-3A94E3 Compressed Size       0000051A (1306)\n-3A94E7 Uncompressed Size     0000051A (1306)\n-\n-3A94EB LOCAL HEADER #1067    04034B50 (67324752)\n-3A94EF Extract Zip Spec      14 (20) '2.0'\n-3A94F0 Extract OS            00 (0) 'MS-DOS'\n-3A94F1 General Purpose Flag  0000 (0)\n-3A94F3 Compression Method    0000 (0) 'Stored'\n-3A94F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A94F9 CRC                   00000000 (0)\n-3A94FD Compressed Size       00000000 (0)\n-3A9501 Uncompressed Size     00000000 (0)\n-3A9505 Filename Length       002B (43)\n-3A9507 Extra Length          0009 (9)\n-3A9509 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A9509: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A9534 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A9536   Length              0005 (5)\n-3A9538   Flags               01 (1) 'Modification'\n-3A9539   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3A953D LOCAL HEADER #1068    04034B50 (67324752)\n-3A9541 Extract Zip Spec      14 (20) '2.0'\n-3A9542 Extract OS            00 (0) 'MS-DOS'\n-3A9543 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3A9545 Compression Method    0000 (0) 'Stored'\n-3A9547 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3A954B CRC                   00000000 (0)\n-3A954F Compressed Size       00000000 (0)\n-3A9553 Uncompressed Size     00000000 (0)\n-3A9557 Filename Length       0048 (72)\n-3A9559 Extra Length          0009 (9)\n-3A955B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3A955B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3A95A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3A95A5   Length              0005 (5)\n-3A95A7   Flags               01 (1) 'Modification'\n-3A95A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3A95AC PAYLOAD\n-\n-3AB13B DATA DESCRIPTOR       08074B50 (134695760)\n-3AB13F CRC                   F0553B98 (4032117656)\n-3AB143 Compressed Size       00001B8F (7055)\n-3AB147 Uncompressed Size     00001B8F (7055)\n-\n-3AB14B LOCAL HEADER #1069    04034B50 (67324752)\n-3AB14F Extract Zip Spec      14 (20) '2.0'\n-3AB150 Extract OS            00 (0) 'MS-DOS'\n-3AB151 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3AB153 Compression Method    0000 (0) 'Stored'\n-3AB155 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AB159 CRC                   00000000 (0)\n-3AB15D Compressed Size       00000000 (0)\n-3AB161 Uncompressed Size     00000000 (0)\n-3AB165 Filename Length       004F (79)\n-3AB167 Extra Length          0009 (9)\n-3AB169 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AB169: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AB1B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AB1BA   Length              0005 (5)\n-3AB1BC   Flags               01 (1) 'Modification'\n-3AB1BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3AB1C1 PAYLOAD\n-\n-3AB71E DATA DESCRIPTOR       08074B50 (134695760)\n-3AB722 CRC                   D59518E0 (3583318240)\n-3AB726 Compressed Size       0000055D (1373)\n-3AB72A Uncompressed Size     0000055D (1373)\n-\n-3AB72E LOCAL HEADER #1070    04034B50 (67324752)\n-3AB732 Extract Zip Spec      14 (20) '2.0'\n-3AB733 Extract OS            00 (0) 'MS-DOS'\n-3AB734 General Purpose Flag  0000 (0)\n-3AB736 Compression Method    0000 (0) 'Stored'\n-3AB738 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AB73C CRC                   00000000 (0)\n-3AB740 Compressed Size       00000000 (0)\n-3AB744 Uncompressed Size     00000000 (0)\n-3AB748 Filename Length       002C (44)\n-3AB74A Extra Length          0009 (9)\n-3AB74C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AB74C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AB778 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AB77A   Length              0005 (5)\n-3AB77C   Flags               01 (1) 'Modification'\n-3AB77D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3AB781 LOCAL HEADER #1071    04034B50 (67324752)\n-3AB785 Extract Zip Spec      14 (20) '2.0'\n-3AB786 Extract OS            00 (0) 'MS-DOS'\n-3AB787 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3AB789 Compression Method    0000 (0) 'Stored'\n-3AB78B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AB78F CRC                   00000000 (0)\n-3AB793 Compressed Size       00000000 (0)\n-3AB797 Uncompressed Size     00000000 (0)\n-3AB79B Filename Length       004A (74)\n-3AB79D Extra Length          0009 (9)\n-3AB79F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AB79F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AB7E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AB7EB   Length              0005 (5)\n-3AB7ED   Flags               01 (1) 'Modification'\n-3AB7EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3AB7F2 PAYLOAD\n-\n-3AC1F5 DATA DESCRIPTOR       08074B50 (134695760)\n-3AC1F9 CRC                   9FC2FAF4 (2680355572)\n-3AC1FD Compressed Size       00000A03 (2563)\n-3AC201 Uncompressed Size     00000A03 (2563)\n-\n-3AC205 LOCAL HEADER #1072    04034B50 (67324752)\n-3AC209 Extract Zip Spec      14 (20) '2.0'\n-3AC20A Extract OS            00 (0) 'MS-DOS'\n-3AC20B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3AC20D Compression Method    0000 (0) 'Stored'\n-3AC20F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AC213 CRC                   00000000 (0)\n-3AC217 Compressed Size       00000000 (0)\n-3AC21B Uncompressed Size     00000000 (0)\n-3AC21F Filename Length       004A (74)\n-3AC221 Extra Length          0009 (9)\n-3AC223 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AC223: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AC26D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AC26F   Length              0005 (5)\n-3AC271   Flags               01 (1) 'Modification'\n-3AC272   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3AC276 PAYLOAD\n-\n-3AF7A0 DATA DESCRIPTOR       08074B50 (134695760)\n-3AF7A4 CRC                   E1F2B0D2 (3790778578)\n-3AF7A8 Compressed Size       0000352A (13610)\n-3AF7AC Uncompressed Size     0000352A (13610)\n-\n-3AF7B0 LOCAL HEADER #1073    04034B50 (67324752)\n-3AF7B4 Extract Zip Spec      14 (20) '2.0'\n-3AF7B5 Extract OS            00 (0) 'MS-DOS'\n-3AF7B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3AF7B8 Compression Method    0000 (0) 'Stored'\n-3AF7BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AF7BE CRC                   00000000 (0)\n-3AF7C2 Compressed Size       00000000 (0)\n-3AF7C6 Uncompressed Size     00000000 (0)\n-3AF7CA Filename Length       0051 (81)\n-3AF7CC Extra Length          0009 (9)\n-3AF7CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AF7CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AF81F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AF821   Length              0005 (5)\n-3AF823   Flags               01 (1) 'Modification'\n-3AF824   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3AF828 PAYLOAD\n-\n-3AFF25 DATA DESCRIPTOR       08074B50 (134695760)\n-3AFF29 CRC                   2422B0CC (606253260)\n-3AFF2D Compressed Size       000006FD (1789)\n-3AFF31 Uncompressed Size     000006FD (1789)\n-\n-3AFF35 LOCAL HEADER #1074    04034B50 (67324752)\n-3AFF39 Extract Zip Spec      14 (20) '2.0'\n-3AFF3A Extract OS            00 (0) 'MS-DOS'\n-3AFF3B General Purpose Flag  0000 (0)\n-3AFF3D Compression Method    0000 (0) 'Stored'\n-3AFF3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AFF43 CRC                   00000000 (0)\n-3AFF47 Compressed Size       00000000 (0)\n-3AFF4B Uncompressed Size     00000000 (0)\n-3AFF4F Filename Length       0030 (48)\n-3AFF51 Extra Length          0009 (9)\n-3AFF53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AFF53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AFF83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AFF85   Length              0005 (5)\n-3AFF87   Flags               01 (1) 'Modification'\n-3AFF88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3AFF8C LOCAL HEADER #1075    04034B50 (67324752)\n-3AFF90 Extract Zip Spec      14 (20) '2.0'\n-3AFF91 Extract OS            00 (0) 'MS-DOS'\n-3AFF92 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3AFF94 Compression Method    0000 (0) 'Stored'\n-3AFF96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3AFF9A CRC                   00000000 (0)\n-3AFF9E Compressed Size       00000000 (0)\n-3AFFA2 Uncompressed Size     00000000 (0)\n-3AFFA6 Filename Length       0042 (66)\n-3AFFA8 Extra Length          0009 (9)\n-3AFFAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3AFFAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3AFFEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3AFFEE   Length              0005 (5)\n-3AFFF0   Flags               01 (1) 'Modification'\n-3AFFF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3AFFF5 PAYLOAD\n-\n-3B13EF DATA DESCRIPTOR       08074B50 (134695760)\n-3B13F3 CRC                   37B6CF89 (934727561)\n-3B13F7 Compressed Size       000013FA (5114)\n-3B13FB Uncompressed Size     000013FA (5114)\n-\n-3B13FF LOCAL HEADER #1076    04034B50 (67324752)\n-3B1403 Extract Zip Spec      14 (20) '2.0'\n-3B1404 Extract OS            00 (0) 'MS-DOS'\n-3B1405 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B1407 Compression Method    0000 (0) 'Stored'\n-3B1409 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B140D CRC                   00000000 (0)\n-3B1411 Compressed Size       00000000 (0)\n-3B1415 Uncompressed Size     00000000 (0)\n-3B1419 Filename Length       0052 (82)\n-3B141B Extra Length          0009 (9)\n-3B141D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B141D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B146F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B1471   Length              0005 (5)\n-3B1473   Flags               01 (1) 'Modification'\n-3B1474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B1478 PAYLOAD\n-\n-3B24D5 DATA DESCRIPTOR       08074B50 (134695760)\n-3B24D9 CRC                   79761F08 (2037784328)\n-3B24DD Compressed Size       0000105D (4189)\n-3B24E1 Uncompressed Size     0000105D (4189)\n-\n-3B24E5 LOCAL HEADER #1077    04034B50 (67324752)\n-3B24E9 Extract Zip Spec      14 (20) '2.0'\n-3B24EA Extract OS            00 (0) 'MS-DOS'\n-3B24EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B24ED Compression Method    0000 (0) 'Stored'\n-3B24EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B24F3 CRC                   00000000 (0)\n-3B24F7 Compressed Size       00000000 (0)\n-3B24FB Uncompressed Size     00000000 (0)\n-3B24FF Filename Length       0059 (89)\n-3B2501 Extra Length          0009 (9)\n-3B2503 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B2503: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B255C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B255E   Length              0005 (5)\n-3B2560   Flags               01 (1) 'Modification'\n-3B2561   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B2565 PAYLOAD\n-\n-3B2BAE DATA DESCRIPTOR       08074B50 (134695760)\n-3B2BB2 CRC                   DDA3D8AF (3718502575)\n-3B2BB6 Compressed Size       00000649 (1609)\n-3B2BBA Uncompressed Size     00000649 (1609)\n-\n-3B2BBE LOCAL HEADER #1078    04034B50 (67324752)\n-3B2BC2 Extract Zip Spec      14 (20) '2.0'\n-3B2BC3 Extract OS            00 (0) 'MS-DOS'\n-3B2BC4 General Purpose Flag  0000 (0)\n-3B2BC6 Compression Method    0000 (0) 'Stored'\n-3B2BC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B2BCC CRC                   00000000 (0)\n-3B2BD0 Compressed Size       00000000 (0)\n-3B2BD4 Uncompressed Size     00000000 (0)\n-3B2BD8 Filename Length       001B (27)\n-3B2BDA Extra Length          0009 (9)\n-3B2BDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B2BDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B2BF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B2BF9   Length              0005 (5)\n-3B2BFB   Flags               01 (1) 'Modification'\n-3B2BFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B2C00 LOCAL HEADER #1079    04034B50 (67324752)\n-3B2C04 Extract Zip Spec      14 (20) '2.0'\n-3B2C05 Extract OS            00 (0) 'MS-DOS'\n-3B2C06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B2C08 Compression Method    0000 (0) 'Stored'\n-3B2C0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B2C0E CRC                   00000000 (0)\n-3B2C12 Compressed Size       00000000 (0)\n-3B2C16 Uncompressed Size     00000000 (0)\n-3B2C1A Filename Length       0029 (41)\n-3B2C1C Extra Length          0009 (9)\n-3B2C1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B2C1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B2C47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B2C49   Length              0005 (5)\n-3B2C4B   Flags               01 (1) 'Modification'\n-3B2C4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B2C50 PAYLOAD\n-\n-3B30E7 DATA DESCRIPTOR       08074B50 (134695760)\n-3B30EB CRC                   14FCC408 (352109576)\n-3B30EF Compressed Size       00000497 (1175)\n-3B30F3 Uncompressed Size     00000497 (1175)\n-\n-3B30F7 LOCAL HEADER #1080    04034B50 (67324752)\n-3B30FB Extract Zip Spec      14 (20) '2.0'\n-3B30FC Extract OS            00 (0) 'MS-DOS'\n-3B30FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B30FF Compression Method    0000 (0) 'Stored'\n-3B3101 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B3105 CRC                   00000000 (0)\n-3B3109 Compressed Size       00000000 (0)\n-3B310D Uncompressed Size     00000000 (0)\n-3B3111 Filename Length       0024 (36)\n-3B3113 Extra Length          0009 (9)\n-3B3115 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B3115: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B3139 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B313B   Length              0005 (5)\n-3B313D   Flags               01 (1) 'Modification'\n-3B313E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B3142 PAYLOAD\n-\n-3B4257 DATA DESCRIPTOR       08074B50 (134695760)\n-3B425B CRC                   6D55499F (1834305951)\n-3B425F Compressed Size       00001115 (4373)\n-3B4263 Uncompressed Size     00001115 (4373)\n-\n-3B4267 LOCAL HEADER #1081    04034B50 (67324752)\n-3B426B Extract Zip Spec      14 (20) '2.0'\n-3B426C Extract OS            00 (0) 'MS-DOS'\n-3B426D General Purpose Flag  0000 (0)\n-3B426F Compression Method    0000 (0) 'Stored'\n-3B4271 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B4275 CRC                   00000000 (0)\n-3B4279 Compressed Size       00000000 (0)\n-3B427D Uncompressed Size     00000000 (0)\n-3B4281 Filename Length       0021 (33)\n-3B4283 Extra Length          0009 (9)\n-3B4285 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B4285: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B42A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B42A8   Length              0005 (5)\n-3B42AA   Flags               01 (1) 'Modification'\n-3B42AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B42AF LOCAL HEADER #1082    04034B50 (67324752)\n-3B42B3 Extract Zip Spec      14 (20) '2.0'\n-3B42B4 Extract OS            00 (0) 'MS-DOS'\n-3B42B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B42B7 Compression Method    0000 (0) 'Stored'\n-3B42B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B42BD CRC                   00000000 (0)\n-3B42C1 Compressed Size       00000000 (0)\n-3B42C5 Uncompressed Size     00000000 (0)\n-3B42C9 Filename Length       0034 (52)\n-3B42CB Extra Length          0009 (9)\n-3B42CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B42CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B4301 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B4303   Length              0005 (5)\n-3B4305   Flags               01 (1) 'Modification'\n-3B4306   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B430A PAYLOAD\n-\n-3B5500 DATA DESCRIPTOR       08074B50 (134695760)\n-3B5504 CRC                   88CEDD40 (2295258432)\n-3B5508 Compressed Size       000011F6 (4598)\n-3B550C Uncompressed Size     000011F6 (4598)\n-\n-3B5510 LOCAL HEADER #1083    04034B50 (67324752)\n-3B5514 Extract Zip Spec      14 (20) '2.0'\n-3B5515 Extract OS            00 (0) 'MS-DOS'\n-3B5516 General Purpose Flag  0000 (0)\n-3B5518 Compression Method    0000 (0) 'Stored'\n-3B551A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B551E CRC                   00000000 (0)\n-3B5522 Compressed Size       00000000 (0)\n-3B5526 Uncompressed Size     00000000 (0)\n-3B552A Filename Length       0023 (35)\n-3B552C Extra Length          0009 (9)\n-3B552E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B552E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B5551 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B5553   Length              0005 (5)\n-3B5555   Flags               01 (1) 'Modification'\n-3B5556   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B555A LOCAL HEADER #1084    04034B50 (67324752)\n-3B555E Extract Zip Spec      14 (20) '2.0'\n-3B555F Extract OS            00 (0) 'MS-DOS'\n-3B5560 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B5562 Compression Method    0000 (0) 'Stored'\n-3B5564 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B5568 CRC                   00000000 (0)\n-3B556C Compressed Size       00000000 (0)\n-3B5570 Uncompressed Size     00000000 (0)\n-3B5574 Filename Length       0038 (56)\n-3B5576 Extra Length          0009 (9)\n-3B5578 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B5578: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B55B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B55B2   Length              0005 (5)\n-3B55B4   Flags               01 (1) 'Modification'\n-3B55B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B55B9 PAYLOAD\n-\n-3B6588 DATA DESCRIPTOR       08074B50 (134695760)\n-3B658C CRC                   75FBF59C (1979446684)\n-3B6590 Compressed Size       00000FCF (4047)\n-3B6594 Uncompressed Size     00000FCF (4047)\n-\n-3B6598 LOCAL HEADER #1085    04034B50 (67324752)\n-3B659C Extract Zip Spec      14 (20) '2.0'\n-3B659D Extract OS            00 (0) 'MS-DOS'\n-3B659E General Purpose Flag  0000 (0)\n-3B65A0 Compression Method    0000 (0) 'Stored'\n-3B65A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B65A6 CRC                   00000000 (0)\n-3B65AA Compressed Size       00000000 (0)\n-3B65AE Uncompressed Size     00000000 (0)\n-3B65B2 Filename Length       0022 (34)\n-3B65B4 Extra Length          0009 (9)\n-3B65B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B65B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B65D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B65DA   Length              0005 (5)\n-3B65DC   Flags               01 (1) 'Modification'\n-3B65DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B65E1 LOCAL HEADER #1086    04034B50 (67324752)\n-3B65E5 Extract Zip Spec      14 (20) '2.0'\n-3B65E6 Extract OS            00 (0) 'MS-DOS'\n-3B65E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B65E9 Compression Method    0000 (0) 'Stored'\n-3B65EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B65EF CRC                   00000000 (0)\n-3B65F3 Compressed Size       00000000 (0)\n-3B65F7 Uncompressed Size     00000000 (0)\n-3B65FB Filename Length       0036 (54)\n-3B65FD Extra Length          0009 (9)\n-3B65FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B65FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B6635 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B6637   Length              0005 (5)\n-3B6639   Flags               01 (1) 'Modification'\n-3B663A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B663E PAYLOAD\n-\n-3B6FD0 DATA DESCRIPTOR       08074B50 (134695760)\n-3B6FD4 CRC                   2AFEDAAE (721345198)\n-3B6FD8 Compressed Size       00000992 (2450)\n-3B6FDC Uncompressed Size     00000992 (2450)\n-\n-3B6FE0 LOCAL HEADER #1087    04034B50 (67324752)\n-3B6FE4 Extract Zip Spec      14 (20) '2.0'\n-3B6FE5 Extract OS            00 (0) 'MS-DOS'\n-3B6FE6 General Purpose Flag  0000 (0)\n-3B6FE8 Compression Method    0000 (0) 'Stored'\n-3B6FEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B6FEE CRC                   00000000 (0)\n-3B6FF2 Compressed Size       00000000 (0)\n-3B6FF6 Uncompressed Size     00000000 (0)\n-3B6FFA Filename Length       0017 (23)\n-3B6FFC Extra Length          0009 (9)\n-3B6FFE Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B6FFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B7015 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B7017   Length              0005 (5)\n-3B7019   Flags               01 (1) 'Modification'\n-3B701A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3B701E LOCAL HEADER #1088    04034B50 (67324752)\n-3B7022 Extract Zip Spec      14 (20) '2.0'\n-3B7023 Extract OS            00 (0) 'MS-DOS'\n-3B7024 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B7026 Compression Method    0000 (0) 'Stored'\n-3B7028 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B702C CRC                   00000000 (0)\n-3B7030 Compressed Size       00000000 (0)\n-3B7034 Uncompressed Size     00000000 (0)\n-3B7038 Filename Length       0033 (51)\n-3B703A Extra Length          0009 (9)\n-3B703C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B703C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B706F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B7071   Length              0005 (5)\n-3B7073   Flags               01 (1) 'Modification'\n-3B7074   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B7078 PAYLOAD\n-\n-3B874E DATA DESCRIPTOR       08074B50 (134695760)\n-3B8752 CRC                   0896EC5C (144108636)\n-3B8756 Compressed Size       000016D6 (5846)\n-3B875A Uncompressed Size     000016D6 (5846)\n-\n-3B875E LOCAL HEADER #1089    04034B50 (67324752)\n-3B8762 Extract Zip Spec      14 (20) '2.0'\n-3B8763 Extract OS            00 (0) 'MS-DOS'\n-3B8764 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B8766 Compression Method    0000 (0) 'Stored'\n-3B8768 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B876C CRC                   00000000 (0)\n-3B8770 Compressed Size       00000000 (0)\n-3B8774 Uncompressed Size     00000000 (0)\n-3B8778 Filename Length       0034 (52)\n-3B877A Extra Length          0009 (9)\n-3B877C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B877C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B87B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B87B2   Length              0005 (5)\n-3B87B4   Flags               01 (1) 'Modification'\n-3B87B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B87B9 PAYLOAD\n-\n-3B8D14 DATA DESCRIPTOR       08074B50 (134695760)\n-3B8D18 CRC                   7DBCFDD1 (2109537745)\n-3B8D1C Compressed Size       0000055B (1371)\n-3B8D20 Uncompressed Size     0000055B (1371)\n-\n-3B8D24 LOCAL HEADER #1090    04034B50 (67324752)\n-3B8D28 Extract Zip Spec      14 (20) '2.0'\n-3B8D29 Extract OS            00 (0) 'MS-DOS'\n-3B8D2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B8D2C Compression Method    0000 (0) 'Stored'\n-3B8D2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B8D32 CRC                   00000000 (0)\n-3B8D36 Compressed Size       00000000 (0)\n-3B8D3A Uncompressed Size     00000000 (0)\n-3B8D3E Filename Length       0031 (49)\n-3B8D40 Extra Length          0009 (9)\n-3B8D42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B8D42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B8D73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B8D75   Length              0005 (5)\n-3B8D77   Flags               01 (1) 'Modification'\n-3B8D78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B8D7C PAYLOAD\n-\n-3B91E0 DATA DESCRIPTOR       08074B50 (134695760)\n-3B91E4 CRC                   3AC92564 (986260836)\n-3B91E8 Compressed Size       00000464 (1124)\n-3B91EC Uncompressed Size     00000464 (1124)\n-\n-3B91F0 LOCAL HEADER #1091    04034B50 (67324752)\n-3B91F4 Extract Zip Spec      14 (20) '2.0'\n-3B91F5 Extract OS            00 (0) 'MS-DOS'\n-3B91F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B91F8 Compression Method    0000 (0) 'Stored'\n-3B91FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B91FE CRC                   00000000 (0)\n-3B9202 Compressed Size       00000000 (0)\n-3B9206 Uncompressed Size     00000000 (0)\n-3B920A Filename Length       0021 (33)\n-3B920C Extra Length          0009 (9)\n-3B920E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B920E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B922F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B9231   Length              0005 (5)\n-3B9233   Flags               01 (1) 'Modification'\n-3B9234   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B9238 PAYLOAD\n-\n-3B9856 DATA DESCRIPTOR       08074B50 (134695760)\n-3B985A CRC                   0EB290DE (246583518)\n-3B985E Compressed Size       0000061E (1566)\n-3B9862 Uncompressed Size     0000061E (1566)\n-\n-3B9866 LOCAL HEADER #1092    04034B50 (67324752)\n-3B986A Extract Zip Spec      14 (20) '2.0'\n-3B986B Extract OS            00 (0) 'MS-DOS'\n-3B986C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3B986E Compression Method    0000 (0) 'Stored'\n-3B9870 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3B9874 CRC                   00000000 (0)\n-3B9878 Compressed Size       00000000 (0)\n-3B987C Uncompressed Size     00000000 (0)\n-3B9880 Filename Length       002B (43)\n-3B9882 Extra Length          0009 (9)\n-3B9884 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3B9884: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3B98AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3B98B1   Length              0005 (5)\n-3B98B3   Flags               01 (1) 'Modification'\n-3B98B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3B98B8 PAYLOAD\n-\n-3BA194 DATA DESCRIPTOR       08074B50 (134695760)\n-3BA198 CRC                   2A1C7A3B (706509371)\n-3BA19C Compressed Size       000008DC (2268)\n-3BA1A0 Uncompressed Size     000008DC (2268)\n-\n-3BA1A4 LOCAL HEADER #1093    04034B50 (67324752)\n-3BA1A8 Extract Zip Spec      14 (20) '2.0'\n-3BA1A9 Extract OS            00 (0) 'MS-DOS'\n-3BA1AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BA1AC Compression Method    0000 (0) 'Stored'\n-3BA1AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BA1B2 CRC                   00000000 (0)\n-3BA1B6 Compressed Size       00000000 (0)\n-3BA1BA Uncompressed Size     00000000 (0)\n-3BA1BE Filename Length       0029 (41)\n-3BA1C0 Extra Length          0009 (9)\n-3BA1C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BA1C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BA1EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BA1ED   Length              0005 (5)\n-3BA1EF   Flags               01 (1) 'Modification'\n-3BA1F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BA1F4 PAYLOAD\n-\n-3BB45E DATA DESCRIPTOR       08074B50 (134695760)\n-3BB462 CRC                   3A57EAC8 (978840264)\n-3BB466 Compressed Size       0000126A (4714)\n-3BB46A Uncompressed Size     0000126A (4714)\n-\n-3BB46E LOCAL HEADER #1094    04034B50 (67324752)\n-3BB472 Extract Zip Spec      14 (20) '2.0'\n-3BB473 Extract OS            00 (0) 'MS-DOS'\n-3BB474 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BB476 Compression Method    0000 (0) 'Stored'\n-3BB478 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BB47C CRC                   00000000 (0)\n-3BB480 Compressed Size       00000000 (0)\n-3BB484 Uncompressed Size     00000000 (0)\n-3BB488 Filename Length       0028 (40)\n-3BB48A Extra Length          0009 (9)\n-3BB48C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BB48C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BB4B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BB4B6   Length              0005 (5)\n-3BB4B8   Flags               01 (1) 'Modification'\n-3BB4B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BB4BD PAYLOAD\n-\n-3BB920 DATA DESCRIPTOR       08074B50 (134695760)\n-3BB924 CRC                   B1AAD78E (2980763534)\n-3BB928 Compressed Size       00000463 (1123)\n-3BB92C Uncompressed Size     00000463 (1123)\n-\n-3BB930 LOCAL HEADER #1095    04034B50 (67324752)\n-3BB934 Extract Zip Spec      14 (20) '2.0'\n-3BB935 Extract OS            00 (0) 'MS-DOS'\n-3BB936 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BB938 Compression Method    0000 (0) 'Stored'\n-3BB93A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BB93E CRC                   00000000 (0)\n-3BB942 Compressed Size       00000000 (0)\n-3BB946 Uncompressed Size     00000000 (0)\n-3BB94A Filename Length       0030 (48)\n-3BB94C Extra Length          0009 (9)\n-3BB94E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BB94E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BB97E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BB980   Length              0005 (5)\n-3BB982   Flags               01 (1) 'Modification'\n-3BB983   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BB987 PAYLOAD\n-\n-3BCB94 DATA DESCRIPTOR       08074B50 (134695760)\n-3BCB98 CRC                   903888C3 (2419624131)\n-3BCB9C Compressed Size       0000120D (4621)\n-3BCBA0 Uncompressed Size     0000120D (4621)\n-\n-3BCBA4 LOCAL HEADER #1096    04034B50 (67324752)\n-3BCBA8 Extract Zip Spec      14 (20) '2.0'\n-3BCBA9 Extract OS            00 (0) 'MS-DOS'\n-3BCBAA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BCBAC Compression Method    0000 (0) 'Stored'\n-3BCBAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BCBB2 CRC                   00000000 (0)\n-3BCBB6 Compressed Size       00000000 (0)\n-3BCBBA Uncompressed Size     00000000 (0)\n-3BCBBE Filename Length       0026 (38)\n-3BCBC0 Extra Length          0009 (9)\n-3BCBC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BCBC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BCBE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BCBEA   Length              0005 (5)\n-3BCBEC   Flags               01 (1) 'Modification'\n-3BCBED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BCBF1 PAYLOAD\n-\n-3BE0AB DATA DESCRIPTOR       08074B50 (134695760)\n-3BE0AF CRC                   98A61B9D (2561022877)\n-3BE0B3 Compressed Size       000014BA (5306)\n-3BE0B7 Uncompressed Size     000014BA (5306)\n-\n-3BE0BB LOCAL HEADER #1097    04034B50 (67324752)\n-3BE0BF Extract Zip Spec      14 (20) '2.0'\n-3BE0C0 Extract OS            00 (0) 'MS-DOS'\n-3BE0C1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BE0C3 Compression Method    0000 (0) 'Stored'\n-3BE0C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BE0C9 CRC                   00000000 (0)\n-3BE0CD Compressed Size       00000000 (0)\n-3BE0D1 Uncompressed Size     00000000 (0)\n-3BE0D5 Filename Length       0033 (51)\n-3BE0D7 Extra Length          0009 (9)\n-3BE0D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BE0D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BE10C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BE10E   Length              0005 (5)\n-3BE110   Flags               01 (1) 'Modification'\n-3BE111   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BE115 PAYLOAD\n-\n-3BE5D2 DATA DESCRIPTOR       08074B50 (134695760)\n-3BE5D6 CRC                   1AE780F7 (451379447)\n-3BE5DA Compressed Size       000004BD (1213)\n-3BE5DE Uncompressed Size     000004BD (1213)\n-\n-3BE5E2 LOCAL HEADER #1098    04034B50 (67324752)\n-3BE5E6 Extract Zip Spec      14 (20) '2.0'\n-3BE5E7 Extract OS            00 (0) 'MS-DOS'\n-3BE5E8 General Purpose Flag  0000 (0)\n-3BE5EA Compression Method    0000 (0) 'Stored'\n-3BE5EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BE5F0 CRC                   00000000 (0)\n-3BE5F4 Compressed Size       00000000 (0)\n-3BE5F8 Uncompressed Size     00000000 (0)\n-3BE5FC Filename Length       001A (26)\n-3BE5FE Extra Length          0009 (9)\n-3BE600 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BE600: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BE61A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BE61C   Length              0005 (5)\n-3BE61E   Flags               01 (1) 'Modification'\n-3BE61F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3BE623 LOCAL HEADER #1099    04034B50 (67324752)\n-3BE627 Extract Zip Spec      14 (20) '2.0'\n-3BE628 Extract OS            00 (0) 'MS-DOS'\n-3BE629 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BE62B Compression Method    0000 (0) 'Stored'\n-3BE62D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BE631 CRC                   00000000 (0)\n-3BE635 Compressed Size       00000000 (0)\n-3BE639 Uncompressed Size     00000000 (0)\n-3BE63D Filename Length       003A (58)\n-3BE63F Extra Length          0009 (9)\n-3BE641 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BE641: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BE67B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BE67D   Length              0005 (5)\n-3BE67F   Flags               01 (1) 'Modification'\n-3BE680   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BE684 PAYLOAD\n-\n-3BF0DB DATA DESCRIPTOR       08074B50 (134695760)\n-3BF0DF CRC                   CF6AE7CA (3479889866)\n-3BF0E3 Compressed Size       00000A57 (2647)\n-3BF0E7 Uncompressed Size     00000A57 (2647)\n-\n-3BF0EB LOCAL HEADER #1100    04034B50 (67324752)\n-3BF0EF Extract Zip Spec      14 (20) '2.0'\n-3BF0F0 Extract OS            00 (0) 'MS-DOS'\n-3BF0F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3BF0F3 Compression Method    0000 (0) 'Stored'\n-3BF0F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3BF0F9 CRC                   00000000 (0)\n-3BF0FD Compressed Size       00000000 (0)\n-3BF101 Uncompressed Size     00000000 (0)\n-3BF105 Filename Length       0045 (69)\n-3BF107 Extra Length          0009 (9)\n-3BF109 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3BF109: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3BF14E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3BF150   Length              0005 (5)\n-3BF152   Flags               01 (1) 'Modification'\n-3BF153   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3BF157 PAYLOAD\n-\n-3C0166 DATA DESCRIPTOR       08074B50 (134695760)\n-3C016A CRC                   462DB2DF (1177400031)\n-3C016E Compressed Size       0000100F (4111)\n-3C0172 Uncompressed Size     0000100F (4111)\n-\n-3C0176 LOCAL HEADER #1101    04034B50 (67324752)\n-3C017A Extract Zip Spec      14 (20) '2.0'\n-3C017B Extract OS            00 (0) 'MS-DOS'\n-3C017C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C017E Compression Method    0000 (0) 'Stored'\n-3C0180 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C0184 CRC                   00000000 (0)\n-3C0188 Compressed Size       00000000 (0)\n-3C018C Uncompressed Size     00000000 (0)\n-3C0190 Filename Length       0032 (50)\n-3C0192 Extra Length          0009 (9)\n-3C0194 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C0194: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C01C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C01C8   Length              0005 (5)\n-3C01CA   Flags               01 (1) 'Modification'\n-3C01CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C01CF PAYLOAD\n-\n-3C06C1 DATA DESCRIPTOR       08074B50 (134695760)\n-3C06C5 CRC                   A8E35A99 (2833472153)\n-3C06C9 Compressed Size       000004F2 (1266)\n-3C06CD Uncompressed Size     000004F2 (1266)\n-\n-3C06D1 LOCAL HEADER #1102    04034B50 (67324752)\n-3C06D5 Extract Zip Spec      14 (20) '2.0'\n-3C06D6 Extract OS            00 (0) 'MS-DOS'\n-3C06D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C06D9 Compression Method    0000 (0) 'Stored'\n-3C06DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C06DF CRC                   00000000 (0)\n-3C06E3 Compressed Size       00000000 (0)\n-3C06E7 Uncompressed Size     00000000 (0)\n-3C06EB Filename Length       002E (46)\n-3C06ED Extra Length          0009 (9)\n-3C06EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C06EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C071D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C071F   Length              0005 (5)\n-3C0721   Flags               01 (1) 'Modification'\n-3C0722   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C0726 PAYLOAD\n-\n-3C0ABE DATA DESCRIPTOR       08074B50 (134695760)\n-3C0AC2 CRC                   ECCEFB44 (3972987716)\n-3C0AC6 Compressed Size       00000398 (920)\n-3C0ACA Uncompressed Size     00000398 (920)\n-\n-3C0ACE LOCAL HEADER #1103    04034B50 (67324752)\n-3C0AD2 Extract Zip Spec      14 (20) '2.0'\n-3C0AD3 Extract OS            00 (0) 'MS-DOS'\n-3C0AD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C0AD6 Compression Method    0000 (0) 'Stored'\n-3C0AD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C0ADC CRC                   00000000 (0)\n-3C0AE0 Compressed Size       00000000 (0)\n-3C0AE4 Uncompressed Size     00000000 (0)\n-3C0AE8 Filename Length       0035 (53)\n-3C0AEA Extra Length          0009 (9)\n-3C0AEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C0AEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C0B21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C0B23   Length              0005 (5)\n-3C0B25   Flags               01 (1) 'Modification'\n-3C0B26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C0B2A PAYLOAD\n-\n-3C1006 DATA DESCRIPTOR       08074B50 (134695760)\n-3C100A CRC                   7822EF2B (2015555371)\n-3C100E Compressed Size       000004DC (1244)\n-3C1012 Uncompressed Size     000004DC (1244)\n-\n-3C1016 LOCAL HEADER #1104    04034B50 (67324752)\n-3C101A Extract Zip Spec      14 (20) '2.0'\n-3C101B Extract OS            00 (0) 'MS-DOS'\n-3C101C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C101E Compression Method    0000 (0) 'Stored'\n-3C1020 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C1024 CRC                   00000000 (0)\n-3C1028 Compressed Size       00000000 (0)\n-3C102C Uncompressed Size     00000000 (0)\n-3C1030 Filename Length       0030 (48)\n-3C1032 Extra Length          0009 (9)\n-3C1034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C1034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C1064 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C1066   Length              0005 (5)\n-3C1068   Flags               01 (1) 'Modification'\n-3C1069   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C106D PAYLOAD\n-\n-3C169C DATA DESCRIPTOR       08074B50 (134695760)\n-3C16A0 CRC                   5CAAFB07 (1554709255)\n-3C16A4 Compressed Size       0000062F (1583)\n-3C16A8 Uncompressed Size     0000062F (1583)\n-\n-3C16AC LOCAL HEADER #1105    04034B50 (67324752)\n-3C16B0 Extract Zip Spec      14 (20) '2.0'\n-3C16B1 Extract OS            00 (0) 'MS-DOS'\n-3C16B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C16B4 Compression Method    0000 (0) 'Stored'\n-3C16B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C16BA CRC                   00000000 (0)\n-3C16BE Compressed Size       00000000 (0)\n-3C16C2 Uncompressed Size     00000000 (0)\n-3C16C6 Filename Length       002B (43)\n-3C16C8 Extra Length          0009 (9)\n-3C16CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C16CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C16F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C16F7   Length              0005 (5)\n-3C16F9   Flags               01 (1) 'Modification'\n-3C16FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C16FE PAYLOAD\n-\n-3C517A DATA DESCRIPTOR       08074B50 (134695760)\n-3C517E CRC                   4F1688E0 (1326876896)\n-3C5182 Compressed Size       00003A7C (14972)\n-3C5186 Uncompressed Size     00003A7C (14972)\n-\n-3C518A LOCAL HEADER #1106    04034B50 (67324752)\n-3C518E Extract Zip Spec      14 (20) '2.0'\n-3C518F Extract OS            00 (0) 'MS-DOS'\n-3C5190 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C5192 Compression Method    0000 (0) 'Stored'\n-3C5194 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C5198 CRC                   00000000 (0)\n-3C519C Compressed Size       00000000 (0)\n-3C51A0 Uncompressed Size     00000000 (0)\n-3C51A4 Filename Length       0033 (51)\n-3C51A6 Extra Length          0009 (9)\n-3C51A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C51A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C51DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C51DD   Length              0005 (5)\n-3C51DF   Flags               01 (1) 'Modification'\n-3C51E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C51E4 PAYLOAD\n-\n-3C56A1 DATA DESCRIPTOR       08074B50 (134695760)\n-3C56A5 CRC                   F33C5BFA (4080819194)\n-3C56A9 Compressed Size       000004BD (1213)\n-3C56AD Uncompressed Size     000004BD (1213)\n-\n-3C56B1 LOCAL HEADER #1107    04034B50 (67324752)\n-3C56B5 Extract Zip Spec      14 (20) '2.0'\n-3C56B6 Extract OS            00 (0) 'MS-DOS'\n-3C56B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C56B9 Compression Method    0000 (0) 'Stored'\n-3C56BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C56BF CRC                   00000000 (0)\n-3C56C3 Compressed Size       00000000 (0)\n-3C56C7 Uncompressed Size     00000000 (0)\n-3C56CB Filename Length       002E (46)\n-3C56CD Extra Length          0009 (9)\n-3C56CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C56CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C56FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C56FF   Length              0005 (5)\n-3C5701   Flags               01 (1) 'Modification'\n-3C5702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C5706 PAYLOAD\n-\n-3C811F DATA DESCRIPTOR       08074B50 (134695760)\n-3C8123 CRC                   B27D0F80 (2994540416)\n-3C8127 Compressed Size       00002A19 (10777)\n-3C812B Uncompressed Size     00002A19 (10777)\n-\n-3C812F LOCAL HEADER #1108    04034B50 (67324752)\n-3C8133 Extract Zip Spec      14 (20) '2.0'\n-3C8134 Extract OS            00 (0) 'MS-DOS'\n-3C8135 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C8137 Compression Method    0000 (0) 'Stored'\n-3C8139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C813D CRC                   00000000 (0)\n-3C8141 Compressed Size       00000000 (0)\n-3C8145 Uncompressed Size     00000000 (0)\n-3C8149 Filename Length       0036 (54)\n-3C814B Extra Length          0009 (9)\n-3C814D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C814D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C8183 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C8185   Length              0005 (5)\n-3C8187   Flags               01 (1) 'Modification'\n-3C8188   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C818C PAYLOAD\n-\n-3C8D98 DATA DESCRIPTOR       08074B50 (134695760)\n-3C8D9C CRC                   2A67D5E8 (711448040)\n-3C8DA0 Compressed Size       00000C0C (3084)\n-3C8DA4 Uncompressed Size     00000C0C (3084)\n-\n-3C8DA8 LOCAL HEADER #1109    04034B50 (67324752)\n-3C8DAC Extract Zip Spec      14 (20) '2.0'\n-3C8DAD Extract OS            00 (0) 'MS-DOS'\n-3C8DAE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C8DB0 Compression Method    0000 (0) 'Stored'\n-3C8DB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C8DB6 CRC                   00000000 (0)\n-3C8DBA Compressed Size       00000000 (0)\n-3C8DBE Uncompressed Size     00000000 (0)\n-3C8DC2 Filename Length       0032 (50)\n-3C8DC4 Extra Length          0009 (9)\n-3C8DC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C8DC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C8DF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C8DFA   Length              0005 (5)\n-3C8DFC   Flags               01 (1) 'Modification'\n-3C8DFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C8E01 PAYLOAD\n-\n-3C96BD DATA DESCRIPTOR       08074B50 (134695760)\n-3C96C1 CRC                   7483DD2E (1954798894)\n-3C96C5 Compressed Size       000008BC (2236)\n-3C96C9 Uncompressed Size     000008BC (2236)\n-\n-3C96CD LOCAL HEADER #1110    04034B50 (67324752)\n-3C96D1 Extract Zip Spec      14 (20) '2.0'\n-3C96D2 Extract OS            00 (0) 'MS-DOS'\n-3C96D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C96D5 Compression Method    0000 (0) 'Stored'\n-3C96D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C96DB CRC                   00000000 (0)\n-3C96DF Compressed Size       00000000 (0)\n-3C96E3 Uncompressed Size     00000000 (0)\n-3C96E7 Filename Length       002F (47)\n-3C96E9 Extra Length          0009 (9)\n-3C96EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C96EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C971A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C971C   Length              0005 (5)\n-3C971E   Flags               01 (1) 'Modification'\n-3C971F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C9723 PAYLOAD\n-\n-3C9F24 DATA DESCRIPTOR       08074B50 (134695760)\n-3C9F28 CRC                   6B4F2850 (1800349776)\n-3C9F2C Compressed Size       00000801 (2049)\n-3C9F30 Uncompressed Size     00000801 (2049)\n-\n-3C9F34 LOCAL HEADER #1111    04034B50 (67324752)\n-3C9F38 Extract Zip Spec      14 (20) '2.0'\n-3C9F39 Extract OS            00 (0) 'MS-DOS'\n-3C9F3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3C9F3C Compression Method    0000 (0) 'Stored'\n-3C9F3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3C9F42 CRC                   00000000 (0)\n-3C9F46 Compressed Size       00000000 (0)\n-3C9F4A Uncompressed Size     00000000 (0)\n-3C9F4E Filename Length       0031 (49)\n-3C9F50 Extra Length          0009 (9)\n-3C9F52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3C9F52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3C9F83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3C9F85   Length              0005 (5)\n-3C9F87   Flags               01 (1) 'Modification'\n-3C9F88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3C9F8C PAYLOAD\n-\n-3CAAE5 DATA DESCRIPTOR       08074B50 (134695760)\n-3CAAE9 CRC                   065E383D (106838077)\n-3CAAED Compressed Size       00000B59 (2905)\n-3CAAF1 Uncompressed Size     00000B59 (2905)\n-\n-3CAAF5 LOCAL HEADER #1112    04034B50 (67324752)\n-3CAAF9 Extract Zip Spec      14 (20) '2.0'\n-3CAAFA Extract OS            00 (0) 'MS-DOS'\n-3CAAFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CAAFD Compression Method    0000 (0) 'Stored'\n-3CAAFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CAB03 CRC                   00000000 (0)\n-3CAB07 Compressed Size       00000000 (0)\n-3CAB0B Uncompressed Size     00000000 (0)\n-3CAB0F Filename Length       0036 (54)\n-3CAB11 Extra Length          0009 (9)\n-3CAB13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CAB13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CAB49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CAB4B   Length              0005 (5)\n-3CAB4D   Flags               01 (1) 'Modification'\n-3CAB4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CAB52 PAYLOAD\n-\n-3CB5A9 DATA DESCRIPTOR       08074B50 (134695760)\n-3CB5AD CRC                   33B4FA9F (867498655)\n-3CB5B1 Compressed Size       00000A57 (2647)\n-3CB5B5 Uncompressed Size     00000A57 (2647)\n-\n-3CB5B9 LOCAL HEADER #1113    04034B50 (67324752)\n-3CB5BD Extract Zip Spec      14 (20) '2.0'\n-3CB5BE Extract OS            00 (0) 'MS-DOS'\n-3CB5BF General Purpose Flag  0000 (0)\n-3CB5C1 Compression Method    0000 (0) 'Stored'\n-3CB5C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CB5C7 CRC                   00000000 (0)\n-3CB5CB Compressed Size       00000000 (0)\n-3CB5CF Uncompressed Size     00000000 (0)\n-3CB5D3 Filename Length       0025 (37)\n-3CB5D5 Extra Length          0009 (9)\n-3CB5D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CB5D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CB5FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CB5FE   Length              0005 (5)\n-3CB600   Flags               01 (1) 'Modification'\n-3CB601   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3CB605 LOCAL HEADER #1114    04034B50 (67324752)\n-3CB609 Extract Zip Spec      14 (20) '2.0'\n-3CB60A Extract OS            00 (0) 'MS-DOS'\n-3CB60B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CB60D Compression Method    0000 (0) 'Stored'\n-3CB60F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CB613 CRC                   00000000 (0)\n-3CB617 Compressed Size       00000000 (0)\n-3CB61B Uncompressed Size     00000000 (0)\n-3CB61F Filename Length       0041 (65)\n-3CB621 Extra Length          0009 (9)\n-3CB623 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CB623: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CB664 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CB666   Length              0005 (5)\n-3CB668   Flags               01 (1) 'Modification'\n-3CB669   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CB66D PAYLOAD\n-\n-3CC0AD DATA DESCRIPTOR       08074B50 (134695760)\n-3CC0B1 CRC                   99A066B3 (2577426099)\n-3CC0B5 Compressed Size       00000A40 (2624)\n-3CC0B9 Uncompressed Size     00000A40 (2624)\n-\n-3CC0BD LOCAL HEADER #1115    04034B50 (67324752)\n-3CC0C1 Extract Zip Spec      14 (20) '2.0'\n-3CC0C2 Extract OS            00 (0) 'MS-DOS'\n-3CC0C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CC0C5 Compression Method    0000 (0) 'Stored'\n-3CC0C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CC0CB CRC                   00000000 (0)\n-3CC0CF Compressed Size       00000000 (0)\n-3CC0D3 Uncompressed Size     00000000 (0)\n-3CC0D7 Filename Length       0042 (66)\n-3CC0D9 Extra Length          0009 (9)\n-3CC0DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CC0DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CC11D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CC11F   Length              0005 (5)\n-3CC121   Flags               01 (1) 'Modification'\n-3CC122   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CC126 PAYLOAD\n-\n-3CD03B DATA DESCRIPTOR       08074B50 (134695760)\n-3CD03F CRC                   8FC61B83 (2412125059)\n-3CD043 Compressed Size       00000F15 (3861)\n-3CD047 Uncompressed Size     00000F15 (3861)\n-\n-3CD04B LOCAL HEADER #1116    04034B50 (67324752)\n-3CD04F Extract Zip Spec      14 (20) '2.0'\n-3CD050 Extract OS            00 (0) 'MS-DOS'\n-3CD051 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CD053 Compression Method    0000 (0) 'Stored'\n-3CD055 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CD059 CRC                   00000000 (0)\n-3CD05D Compressed Size       00000000 (0)\n-3CD061 Uncompressed Size     00000000 (0)\n-3CD065 Filename Length       003F (63)\n-3CD067 Extra Length          0009 (9)\n-3CD069 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CD069: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CD0A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CD0AA   Length              0005 (5)\n-3CD0AC   Flags               01 (1) 'Modification'\n-3CD0AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CD0B1 PAYLOAD\n-\n-3CDDA3 DATA DESCRIPTOR       08074B50 (134695760)\n-3CDDA7 CRC                   C36126A3 (3277924003)\n-3CDDAB Compressed Size       00000CF2 (3314)\n-3CDDAF Uncompressed Size     00000CF2 (3314)\n-\n-3CDDB3 LOCAL HEADER #1117    04034B50 (67324752)\n-3CDDB7 Extract Zip Spec      14 (20) '2.0'\n-3CDDB8 Extract OS            00 (0) 'MS-DOS'\n-3CDDB9 General Purpose Flag  0000 (0)\n-3CDDBB Compression Method    0000 (0) 'Stored'\n-3CDDBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CDDC1 CRC                   00000000 (0)\n-3CDDC5 Compressed Size       00000000 (0)\n-3CDDC9 Uncompressed Size     00000000 (0)\n-3CDDCD Filename Length       002D (45)\n-3CDDCF Extra Length          0009 (9)\n-3CDDD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CDDD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CDDFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CDE00   Length              0005 (5)\n-3CDE02   Flags               01 (1) 'Modification'\n-3CDE03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3CDE07 LOCAL HEADER #1118    04034B50 (67324752)\n-3CDE0B Extract Zip Spec      14 (20) '2.0'\n-3CDE0C Extract OS            00 (0) 'MS-DOS'\n-3CDE0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CDE0F Compression Method    0000 (0) 'Stored'\n-3CDE11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CDE15 CRC                   00000000 (0)\n-3CDE19 Compressed Size       00000000 (0)\n-3CDE1D Uncompressed Size     00000000 (0)\n-3CDE21 Filename Length       0042 (66)\n-3CDE23 Extra Length          0009 (9)\n-3CDE25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CDE25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CDE67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CDE69   Length              0005 (5)\n-3CDE6B   Flags               01 (1) 'Modification'\n-3CDE6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CDE70 PAYLOAD\n-\n-3CE52B DATA DESCRIPTOR       08074B50 (134695760)\n-3CE52F CRC                   C15189CF (3243346383)\n-3CE533 Compressed Size       000006BB (1723)\n-3CE537 Uncompressed Size     000006BB (1723)\n-\n-3CE53B LOCAL HEADER #1119    04034B50 (67324752)\n-3CE53F Extract Zip Spec      14 (20) '2.0'\n-3CE540 Extract OS            00 (0) 'MS-DOS'\n-3CE541 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CE543 Compression Method    0000 (0) 'Stored'\n-3CE545 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CE549 CRC                   00000000 (0)\n-3CE54D Compressed Size       00000000 (0)\n-3CE551 Uncompressed Size     00000000 (0)\n-3CE555 Filename Length       0047 (71)\n-3CE557 Extra Length          0009 (9)\n-3CE559 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CE559: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CE5A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CE5A2   Length              0005 (5)\n-3CE5A4   Flags               01 (1) 'Modification'\n-3CE5A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CE5A9 PAYLOAD\n-\n-3CF076 DATA DESCRIPTOR       08074B50 (134695760)\n-3CF07A CRC                   48345DF3 (1211391475)\n-3CF07E Compressed Size       00000ACD (2765)\n-3CF082 Uncompressed Size     00000ACD (2765)\n-\n-3CF086 LOCAL HEADER #1120    04034B50 (67324752)\n-3CF08A Extract Zip Spec      14 (20) '2.0'\n-3CF08B Extract OS            00 (0) 'MS-DOS'\n-3CF08C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CF08E Compression Method    0000 (0) 'Stored'\n-3CF090 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CF094 CRC                   00000000 (0)\n-3CF098 Compressed Size       00000000 (0)\n-3CF09C Uncompressed Size     00000000 (0)\n-3CF0A0 Filename Length       0044 (68)\n-3CF0A2 Extra Length          0009 (9)\n-3CF0A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CF0A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CF0E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CF0EA   Length              0005 (5)\n-3CF0EC   Flags               01 (1) 'Modification'\n-3CF0ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CF0F1 PAYLOAD\n-\n-3CFAA9 DATA DESCRIPTOR       08074B50 (134695760)\n-3CFAAD CRC                   8C150447 (2350187591)\n-3CFAB1 Compressed Size       000009B8 (2488)\n-3CFAB5 Uncompressed Size     000009B8 (2488)\n-\n-3CFAB9 LOCAL HEADER #1121    04034B50 (67324752)\n-3CFABD Extract Zip Spec      14 (20) '2.0'\n-3CFABE Extract OS            00 (0) 'MS-DOS'\n-3CFABF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3CFAC1 Compression Method    0000 (0) 'Stored'\n-3CFAC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3CFAC7 CRC                   00000000 (0)\n-3CFACB Compressed Size       00000000 (0)\n-3CFACF Uncompressed Size     00000000 (0)\n-3CFAD3 Filename Length       0041 (65)\n-3CFAD5 Extra Length          0009 (9)\n-3CFAD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3CFAD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3CFB18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3CFB1A   Length              0005 (5)\n-3CFB1C   Flags               01 (1) 'Modification'\n-3CFB1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3CFB21 PAYLOAD\n-\n-3D02BC DATA DESCRIPTOR       08074B50 (134695760)\n-3D02C0 CRC                   288B644A (680223818)\n-3D02C4 Compressed Size       0000079B (1947)\n-3D02C8 Uncompressed Size     0000079B (1947)\n-\n-3D02CC LOCAL HEADER #1122    04034B50 (67324752)\n-3D02D0 Extract Zip Spec      14 (20) '2.0'\n-3D02D1 Extract OS            00 (0) 'MS-DOS'\n-3D02D2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D02D4 Compression Method    0000 (0) 'Stored'\n-3D02D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D02DA CRC                   00000000 (0)\n-3D02DE Compressed Size       00000000 (0)\n-3D02E2 Uncompressed Size     00000000 (0)\n-3D02E6 Filename Length       0040 (64)\n-3D02E8 Extra Length          0009 (9)\n-3D02EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D02EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D032A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D032C   Length              0005 (5)\n-3D032E   Flags               01 (1) 'Modification'\n-3D032F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D0333 PAYLOAD\n-\n-3D0F74 DATA DESCRIPTOR       08074B50 (134695760)\n-3D0F78 CRC                   A6C8F390 (2798187408)\n-3D0F7C Compressed Size       00000C41 (3137)\n-3D0F80 Uncompressed Size     00000C41 (3137)\n-\n-3D0F84 LOCAL HEADER #1123    04034B50 (67324752)\n-3D0F88 Extract Zip Spec      14 (20) '2.0'\n-3D0F89 Extract OS            00 (0) 'MS-DOS'\n-3D0F8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D0F8C Compression Method    0000 (0) 'Stored'\n-3D0F8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D0F92 CRC                   00000000 (0)\n-3D0F96 Compressed Size       00000000 (0)\n-3D0F9A Uncompressed Size     00000000 (0)\n-3D0F9E Filename Length       003D (61)\n-3D0FA0 Extra Length          0009 (9)\n-3D0FA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D0FA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D0FDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D0FE1   Length              0005 (5)\n-3D0FE3   Flags               01 (1) 'Modification'\n-3D0FE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D0FE8 PAYLOAD\n-\n-3D158B DATA DESCRIPTOR       08074B50 (134695760)\n-3D158F CRC                   7350CC44 (1934675012)\n-3D1593 Compressed Size       000005A3 (1443)\n-3D1597 Uncompressed Size     000005A3 (1443)\n-\n-3D159B LOCAL HEADER #1124    04034B50 (67324752)\n-3D159F Extract Zip Spec      14 (20) '2.0'\n-3D15A0 Extract OS            00 (0) 'MS-DOS'\n-3D15A1 General Purpose Flag  0000 (0)\n-3D15A3 Compression Method    0000 (0) 'Stored'\n-3D15A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D15A9 CRC                   00000000 (0)\n-3D15AD Compressed Size       00000000 (0)\n-3D15B1 Uncompressed Size     00000000 (0)\n-3D15B5 Filename Length       002B (43)\n-3D15B7 Extra Length          0009 (9)\n-3D15B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D15B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D15E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D15E6   Length              0005 (5)\n-3D15E8   Flags               01 (1) 'Modification'\n-3D15E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3D15ED LOCAL HEADER #1125    04034B50 (67324752)\n-3D15F1 Extract Zip Spec      14 (20) '2.0'\n-3D15F2 Extract OS            00 (0) 'MS-DOS'\n-3D15F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D15F5 Compression Method    0000 (0) 'Stored'\n-3D15F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D15FB CRC                   00000000 (0)\n-3D15FF Compressed Size       00000000 (0)\n-3D1603 Uncompressed Size     00000000 (0)\n-3D1607 Filename Length       0045 (69)\n-3D1609 Extra Length          0009 (9)\n-3D160B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D160B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D1650 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D1652   Length              0005 (5)\n-3D1654   Flags               01 (1) 'Modification'\n-3D1655   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D1659 PAYLOAD\n-\n-3D1BC0 DATA DESCRIPTOR       08074B50 (134695760)\n-3D1BC4 CRC                   53726EBB (1400008379)\n-3D1BC8 Compressed Size       00000567 (1383)\n-3D1BCC Uncompressed Size     00000567 (1383)\n-\n-3D1BD0 LOCAL HEADER #1126    04034B50 (67324752)\n-3D1BD4 Extract Zip Spec      14 (20) '2.0'\n-3D1BD5 Extract OS            00 (0) 'MS-DOS'\n-3D1BD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D1BD8 Compression Method    0000 (0) 'Stored'\n-3D1BDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D1BDE CRC                   00000000 (0)\n-3D1BE2 Compressed Size       00000000 (0)\n-3D1BE6 Uncompressed Size     00000000 (0)\n-3D1BEA Filename Length       0040 (64)\n-3D1BEC Extra Length          0009 (9)\n-3D1BEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D1BEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D1C2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D1C30   Length              0005 (5)\n-3D1C32   Flags               01 (1) 'Modification'\n-3D1C33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D1C37 PAYLOAD\n-\n-3D2880 DATA DESCRIPTOR       08074B50 (134695760)\n-3D2884 CRC                   C61A5369 (3323614057)\n-3D2888 Compressed Size       00000C49 (3145)\n-3D288C Uncompressed Size     00000C49 (3145)\n-\n-3D2890 LOCAL HEADER #1127    04034B50 (67324752)\n-3D2894 Extract Zip Spec      14 (20) '2.0'\n-3D2895 Extract OS            00 (0) 'MS-DOS'\n-3D2896 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D2898 Compression Method    0000 (0) 'Stored'\n-3D289A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D289E CRC                   00000000 (0)\n-3D28A2 Compressed Size       00000000 (0)\n-3D28A6 Uncompressed Size     00000000 (0)\n-3D28AA Filename Length       0041 (65)\n-3D28AC Extra Length          0009 (9)\n-3D28AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D28AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D28EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D28F1   Length              0005 (5)\n-3D28F3   Flags               01 (1) 'Modification'\n-3D28F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D28F8 PAYLOAD\n-\n-3D34BF DATA DESCRIPTOR       08074B50 (134695760)\n-3D34C3 CRC                   4594C88A (1167378570)\n-3D34C7 Compressed Size       00000BC7 (3015)\n-3D34CB Uncompressed Size     00000BC7 (3015)\n-\n-3D34CF LOCAL HEADER #1128    04034B50 (67324752)\n-3D34D3 Extract Zip Spec      14 (20) '2.0'\n-3D34D4 Extract OS            00 (0) 'MS-DOS'\n-3D34D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D34D7 Compression Method    0000 (0) 'Stored'\n-3D34D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D34DD CRC                   00000000 (0)\n-3D34E1 Compressed Size       00000000 (0)\n-3D34E5 Uncompressed Size     00000000 (0)\n-3D34E9 Filename Length       003E (62)\n-3D34EB Extra Length          0009 (9)\n-3D34ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D34ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D352B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D352D   Length              0005 (5)\n-3D352F   Flags               01 (1) 'Modification'\n-3D3530   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D3534 PAYLOAD\n-\n-3D49EF DATA DESCRIPTOR       08074B50 (134695760)\n-3D49F3 CRC                   06EFE96C (116386156)\n-3D49F7 Compressed Size       000014BB (5307)\n-3D49FB Uncompressed Size     000014BB (5307)\n-\n-3D49FF LOCAL HEADER #1129    04034B50 (67324752)\n-3D4A03 Extract Zip Spec      14 (20) '2.0'\n-3D4A04 Extract OS            00 (0) 'MS-DOS'\n-3D4A05 General Purpose Flag  0000 (0)\n-3D4A07 Compression Method    0000 (0) 'Stored'\n-3D4A09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D4A0D CRC                   00000000 (0)\n-3D4A11 Compressed Size       00000000 (0)\n-3D4A15 Uncompressed Size     00000000 (0)\n-3D4A19 Filename Length       002A (42)\n-3D4A1B Extra Length          0009 (9)\n-3D4A1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D4A1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D4A47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D4A49   Length              0005 (5)\n-3D4A4B   Flags               01 (1) 'Modification'\n-3D4A4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3D4A50 LOCAL HEADER #1130    04034B50 (67324752)\n-3D4A54 Extract Zip Spec      14 (20) '2.0'\n-3D4A55 Extract OS            00 (0) 'MS-DOS'\n-3D4A56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D4A58 Compression Method    0000 (0) 'Stored'\n-3D4A5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D4A5E CRC                   00000000 (0)\n-3D4A62 Compressed Size       00000000 (0)\n-3D4A66 Uncompressed Size     00000000 (0)\n-3D4A6A Filename Length       0039 (57)\n-3D4A6C Extra Length          0009 (9)\n-3D4A6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D4A6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D4AA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D4AA9   Length              0005 (5)\n-3D4AAB   Flags               01 (1) 'Modification'\n-3D4AAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D4AB0 PAYLOAD\n-\n-3D5857 DATA DESCRIPTOR       08074B50 (134695760)\n-3D585B CRC                   28793399 (679031705)\n-3D585F Compressed Size       00000DA7 (3495)\n-3D5863 Uncompressed Size     00000DA7 (3495)\n-\n-3D5867 LOCAL HEADER #1131    04034B50 (67324752)\n-3D586B Extract Zip Spec      14 (20) '2.0'\n-3D586C Extract OS            00 (0) 'MS-DOS'\n-3D586D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D586F Compression Method    0000 (0) 'Stored'\n-3D5871 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D5875 CRC                   00000000 (0)\n-3D5879 Compressed Size       00000000 (0)\n-3D587D Uncompressed Size     00000000 (0)\n-3D5881 Filename Length       0046 (70)\n-3D5883 Extra Length          0009 (9)\n-3D5885 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D5885: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D58CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D58CD   Length              0005 (5)\n-3D58CF   Flags               01 (1) 'Modification'\n-3D58D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D58D4 PAYLOAD\n-\n-3D65BB DATA DESCRIPTOR       08074B50 (134695760)\n-3D65BF CRC                   A3334B6D (2738047853)\n-3D65C3 Compressed Size       00000CE7 (3303)\n-3D65C7 Uncompressed Size     00000CE7 (3303)\n-\n-3D65CB LOCAL HEADER #1132    04034B50 (67324752)\n-3D65CF Extract Zip Spec      14 (20) '2.0'\n-3D65D0 Extract OS            00 (0) 'MS-DOS'\n-3D65D1 General Purpose Flag  0000 (0)\n-3D65D3 Compression Method    0000 (0) 'Stored'\n-3D65D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D65D9 CRC                   00000000 (0)\n-3D65DD Compressed Size       00000000 (0)\n-3D65E1 Uncompressed Size     00000000 (0)\n-3D65E5 Filename Length       0021 (33)\n-3D65E7 Extra Length          0009 (9)\n-3D65E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D65E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D660A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D660C   Length              0005 (5)\n-3D660E   Flags               01 (1) 'Modification'\n-3D660F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3D6613 LOCAL HEADER #1133    04034B50 (67324752)\n-3D6617 Extract Zip Spec      14 (20) '2.0'\n-3D6618 Extract OS            00 (0) 'MS-DOS'\n-3D6619 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D661B Compression Method    0000 (0) 'Stored'\n-3D661D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D6621 CRC                   00000000 (0)\n-3D6625 Compressed Size       00000000 (0)\n-3D6629 Uncompressed Size     00000000 (0)\n-3D662D Filename Length       0034 (52)\n-3D662F Extra Length          0009 (9)\n-3D6631 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D6631: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D6665 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D6667   Length              0005 (5)\n-3D6669   Flags               01 (1) 'Modification'\n-3D666A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D666E PAYLOAD\n-\n-3D71D4 DATA DESCRIPTOR       08074B50 (134695760)\n-3D71D8 CRC                   04A20B3B (77728571)\n-3D71DC Compressed Size       00000B66 (2918)\n-3D71E0 Uncompressed Size     00000B66 (2918)\n-\n-3D71E4 LOCAL HEADER #1134    04034B50 (67324752)\n-3D71E8 Extract Zip Spec      14 (20) '2.0'\n-3D71E9 Extract OS            00 (0) 'MS-DOS'\n-3D71EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D71EC Compression Method    0000 (0) 'Stored'\n-3D71EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D71F2 CRC                   00000000 (0)\n-3D71F6 Compressed Size       00000000 (0)\n-3D71FA Uncompressed Size     00000000 (0)\n-3D71FE Filename Length       003B (59)\n-3D7200 Extra Length          0009 (9)\n-3D7202 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D7202: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D723D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D723F   Length              0005 (5)\n-3D7241   Flags               01 (1) 'Modification'\n-3D7242   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D7246 PAYLOAD\n-\n-3D76A6 DATA DESCRIPTOR       08074B50 (134695760)\n-3D76AA CRC                   60C61EB2 (1623596722)\n-3D76AE Compressed Size       00000460 (1120)\n-3D76B2 Uncompressed Size     00000460 (1120)\n-\n-3D76B6 LOCAL HEADER #1135    04034B50 (67324752)\n-3D76BA Extract Zip Spec      14 (20) '2.0'\n-3D76BB Extract OS            00 (0) 'MS-DOS'\n-3D76BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D76BE Compression Method    0000 (0) 'Stored'\n-3D76C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D76C4 CRC                   00000000 (0)\n-3D76C8 Compressed Size       00000000 (0)\n-3D76CC Uncompressed Size     00000000 (0)\n-3D76D0 Filename Length       003C (60)\n-3D76D2 Extra Length          0009 (9)\n-3D76D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D76D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D7710 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D7712   Length              0005 (5)\n-3D7714   Flags               01 (1) 'Modification'\n-3D7715   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D7719 PAYLOAD\n-\n-3D8523 DATA DESCRIPTOR       08074B50 (134695760)\n-3D8527 CRC                   5AB1BA26 (1521596966)\n-3D852B Compressed Size       00000E0A (3594)\n-3D852F Uncompressed Size     00000E0A (3594)\n-\n-3D8533 LOCAL HEADER #1136    04034B50 (67324752)\n-3D8537 Extract Zip Spec      14 (20) '2.0'\n-3D8538 Extract OS            00 (0) 'MS-DOS'\n-3D8539 General Purpose Flag  0000 (0)\n-3D853B Compression Method    0000 (0) 'Stored'\n-3D853D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D8541 CRC                   00000000 (0)\n-3D8545 Compressed Size       00000000 (0)\n-3D8549 Uncompressed Size     00000000 (0)\n-3D854D Filename Length       002C (44)\n-3D854F Extra Length          0009 (9)\n-3D8551 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D8551: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D857D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D857F   Length              0005 (5)\n-3D8581   Flags               01 (1) 'Modification'\n-3D8582   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3D8586 LOCAL HEADER #1137    04034B50 (67324752)\n-3D858A Extract Zip Spec      14 (20) '2.0'\n-3D858B Extract OS            00 (0) 'MS-DOS'\n-3D858C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D858E Compression Method    0000 (0) 'Stored'\n-3D8590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D8594 CRC                   00000000 (0)\n-3D8598 Compressed Size       00000000 (0)\n-3D859C Uncompressed Size     00000000 (0)\n-3D85A0 Filename Length       0052 (82)\n-3D85A2 Extra Length          0009 (9)\n-3D85A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D85A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D85F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D85F8   Length              0005 (5)\n-3D85FA   Flags               01 (1) 'Modification'\n-3D85FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D85FF PAYLOAD\n-\n-3D8EDC DATA DESCRIPTOR       08074B50 (134695760)\n-3D8EE0 CRC                   ED364E79 (3979759225)\n-3D8EE4 Compressed Size       000008DD (2269)\n-3D8EE8 Uncompressed Size     000008DD (2269)\n-\n-3D8EEC LOCAL HEADER #1138    04034B50 (67324752)\n-3D8EF0 Extract Zip Spec      14 (20) '2.0'\n-3D8EF1 Extract OS            00 (0) 'MS-DOS'\n-3D8EF2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D8EF4 Compression Method    0000 (0) 'Stored'\n-3D8EF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D8EFA CRC                   00000000 (0)\n-3D8EFE Compressed Size       00000000 (0)\n-3D8F02 Uncompressed Size     00000000 (0)\n-3D8F06 Filename Length       0047 (71)\n-3D8F08 Extra Length          0009 (9)\n-3D8F0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D8F0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D8F51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D8F53   Length              0005 (5)\n-3D8F55   Flags               01 (1) 'Modification'\n-3D8F56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D8F5A PAYLOAD\n-\n-3D932E DATA DESCRIPTOR       08074B50 (134695760)\n-3D9332 CRC                   07379C13 (121084947)\n-3D9336 Compressed Size       000003D4 (980)\n-3D933A Uncompressed Size     000003D4 (980)\n-\n-3D933E LOCAL HEADER #1139    04034B50 (67324752)\n-3D9342 Extract Zip Spec      14 (20) '2.0'\n-3D9343 Extract OS            00 (0) 'MS-DOS'\n-3D9344 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3D9346 Compression Method    0000 (0) 'Stored'\n-3D9348 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3D934C CRC                   00000000 (0)\n-3D9350 Compressed Size       00000000 (0)\n-3D9354 Uncompressed Size     00000000 (0)\n-3D9358 Filename Length       004E (78)\n-3D935A Extra Length          0009 (9)\n-3D935C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3D935C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3D93AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3D93AC   Length              0005 (5)\n-3D93AE   Flags               01 (1) 'Modification'\n-3D93AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3D93B3 PAYLOAD\n-\n-3DA015 DATA DESCRIPTOR       08074B50 (134695760)\n-3DA019 CRC                   AA1837AB (2853713835)\n-3DA01D Compressed Size       00000C62 (3170)\n-3DA021 Uncompressed Size     00000C62 (3170)\n-\n-3DA025 LOCAL HEADER #1140    04034B50 (67324752)\n-3DA029 Extract Zip Spec      14 (20) '2.0'\n-3DA02A Extract OS            00 (0) 'MS-DOS'\n-3DA02B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3DA02D Compression Method    0000 (0) 'Stored'\n-3DA02F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DA033 CRC                   00000000 (0)\n-3DA037 Compressed Size       00000000 (0)\n-3DA03B Uncompressed Size     00000000 (0)\n-3DA03F Filename Length       003C (60)\n-3DA041 Extra Length          0009 (9)\n-3DA043 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DA043: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DA07F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DA081   Length              0005 (5)\n-3DA083   Flags               01 (1) 'Modification'\n-3DA084   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DA088 PAYLOAD\n-\n-3DA8A5 DATA DESCRIPTOR       08074B50 (134695760)\n-3DA8A9 CRC                   C4C68375 (3301344117)\n-3DA8AD Compressed Size       0000081D (2077)\n-3DA8B1 Uncompressed Size     0000081D (2077)\n-\n-3DA8B5 LOCAL HEADER #1141    04034B50 (67324752)\n-3DA8B9 Extract Zip Spec      14 (20) '2.0'\n-3DA8BA Extract OS            00 (0) 'MS-DOS'\n-3DA8BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3DA8BD Compression Method    0000 (0) 'Stored'\n-3DA8BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DA8C3 CRC                   00000000 (0)\n-3DA8C7 Compressed Size       00000000 (0)\n-3DA8CB Uncompressed Size     00000000 (0)\n-3DA8CF Filename Length       0043 (67)\n-3DA8D1 Extra Length          0009 (9)\n-3DA8D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DA8D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DA916 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DA918   Length              0005 (5)\n-3DA91A   Flags               01 (1) 'Modification'\n-3DA91B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DA91F PAYLOAD\n-\n-3DB599 DATA DESCRIPTOR       08074B50 (134695760)\n-3DB59D CRC                   F9021EF9 (4177665785)\n-3DB5A1 Compressed Size       00000C7A (3194)\n-3DB5A5 Uncompressed Size     00000C7A (3194)\n-\n-3DB5A9 LOCAL HEADER #1142    04034B50 (67324752)\n-3DB5AD Extract Zip Spec      14 (20) '2.0'\n-3DB5AE Extract OS            00 (0) 'MS-DOS'\n-3DB5AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3DB5B1 Compression Method    0000 (0) 'Stored'\n-3DB5B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DB5B7 CRC                   00000000 (0)\n-3DB5BB Compressed Size       00000000 (0)\n-3DB5BF Uncompressed Size     00000000 (0)\n-3DB5C3 Filename Length       004A (74)\n-3DB5C5 Extra Length          0009 (9)\n-3DB5C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DB5C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DB611 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DB613   Length              0005 (5)\n-3DB615   Flags               01 (1) 'Modification'\n-3DB616   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DB61A PAYLOAD\n-\n-3DC258 DATA DESCRIPTOR       08074B50 (134695760)\n-3DC25C CRC                   D8F5C90C (3639986444)\n-3DC260 Compressed Size       00000C3E (3134)\n-3DC264 Uncompressed Size     00000C3E (3134)\n-\n-3DC268 LOCAL HEADER #1143    04034B50 (67324752)\n-3DC26C Extract Zip Spec      14 (20) '2.0'\n-3DC26D Extract OS            00 (0) 'MS-DOS'\n-3DC26E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3DC270 Compression Method    0000 (0) 'Stored'\n-3DC272 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DC276 CRC                   00000000 (0)\n-3DC27A Compressed Size       00000000 (0)\n-3DC27E Uncompressed Size     00000000 (0)\n-3DC282 Filename Length       004D (77)\n-3DC284 Extra Length          0009 (9)\n-3DC286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DC286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DC2D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DC2D5   Length              0005 (5)\n-3DC2D7   Flags               01 (1) 'Modification'\n-3DC2D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DC2DC PAYLOAD\n-\n-3DCB4D DATA DESCRIPTOR       08074B50 (134695760)\n-3DCB51 CRC                   F7E9DD6B (4159298923)\n-3DCB55 Compressed Size       00000871 (2161)\n-3DCB59 Uncompressed Size     00000871 (2161)\n-\n-3DCB5D LOCAL HEADER #1144    04034B50 (67324752)\n-3DCB61 Extract Zip Spec      14 (20) '2.0'\n-3DCB62 Extract OS            00 (0) 'MS-DOS'\n-3DCB63 General Purpose Flag  0000 (0)\n-3DCB65 Compression Method    0000 (0) 'Stored'\n-3DCB67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DCB6B CRC                   00000000 (0)\n-3DCB6F Compressed Size       00000000 (0)\n-3DCB73 Uncompressed Size     00000000 (0)\n-3DCB77 Filename Length       0029 (41)\n-3DCB79 Extra Length          0009 (9)\n-3DCB7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DCB7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DCBA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DCBA6   Length              0005 (5)\n-3DCBA8   Flags               01 (1) 'Modification'\n-3DCBA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3DCBAD LOCAL HEADER #1145    04034B50 (67324752)\n-3DCBB1 Extract Zip Spec      14 (20) '2.0'\n-3DCBB2 Extract OS            00 (0) 'MS-DOS'\n-3DCBB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3DCBB5 Compression Method    0000 (0) 'Stored'\n-3DCBB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3DCBBB CRC                   00000000 (0)\n-3DCBBF Compressed Size       00000000 (0)\n-3DCBC3 Uncompressed Size     00000000 (0)\n-3DCBC7 Filename Length       0044 (68)\n-3DCBC9 Extra Length          0009 (9)\n-3DCBCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3DCBCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3DCC0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3DCC11   Length              0005 (5)\n-3DCC13   Flags               01 (1) 'Modification'\n-3DCC14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3DCC18 PAYLOAD\n-\n-3E1B97 DATA DESCRIPTOR       08074B50 (134695760)\n-3E1B9B CRC                   8DD7FA96 (2379741846)\n-3E1B9F Compressed Size       00004F7F (20351)\n-3E1BA3 Uncompressed Size     00004F7F (20351)\n-\n-3E1BA7 LOCAL HEADER #1146    04034B50 (67324752)\n-3E1BAB Extract Zip Spec      14 (20) '2.0'\n-3E1BAC Extract OS            00 (0) 'MS-DOS'\n-3E1BAD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E1BAF Compression Method    0000 (0) 'Stored'\n-3E1BB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E1BB5 CRC                   00000000 (0)\n-3E1BB9 Compressed Size       00000000 (0)\n-3E1BBD Uncompressed Size     00000000 (0)\n-3E1BC1 Filename Length       004B (75)\n-3E1BC3 Extra Length          0009 (9)\n-3E1BC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E1BC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E1C10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E1C12   Length              0005 (5)\n-3E1C14   Flags               01 (1) 'Modification'\n-3E1C15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E1C19 PAYLOAD\n-\n-3E265C DATA DESCRIPTOR       08074B50 (134695760)\n-3E2660 CRC                   C31A43AC (3273278380)\n-3E2664 Compressed Size       00000A43 (2627)\n-3E2668 Uncompressed Size     00000A43 (2627)\n-\n-3E266C LOCAL HEADER #1147    04034B50 (67324752)\n-3E2670 Extract Zip Spec      14 (20) '2.0'\n-3E2671 Extract OS            00 (0) 'MS-DOS'\n-3E2672 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E2674 Compression Method    0000 (0) 'Stored'\n-3E2676 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E267A CRC                   00000000 (0)\n-3E267E Compressed Size       00000000 (0)\n-3E2682 Uncompressed Size     00000000 (0)\n-3E2686 Filename Length       0037 (55)\n-3E2688 Extra Length          0009 (9)\n-3E268A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E268A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E26C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E26C3   Length              0005 (5)\n-3E26C5   Flags               01 (1) 'Modification'\n-3E26C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E26CA PAYLOAD\n-\n-3E2BD0 DATA DESCRIPTOR       08074B50 (134695760)\n-3E2BD4 CRC                   4CCC6F49 (1288466249)\n-3E2BD8 Compressed Size       00000506 (1286)\n-3E2BDC Uncompressed Size     00000506 (1286)\n-\n-3E2BE0 LOCAL HEADER #1148    04034B50 (67324752)\n-3E2BE4 Extract Zip Spec      14 (20) '2.0'\n-3E2BE5 Extract OS            00 (0) 'MS-DOS'\n-3E2BE6 General Purpose Flag  0000 (0)\n-3E2BE8 Compression Method    0000 (0) 'Stored'\n-3E2BEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E2BEE CRC                   00000000 (0)\n-3E2BF2 Compressed Size       00000000 (0)\n-3E2BF6 Uncompressed Size     00000000 (0)\n-3E2BFA Filename Length       001F (31)\n-3E2BFC Extra Length          0009 (9)\n-3E2BFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E2BFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E2C1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E2C1F   Length              0005 (5)\n-3E2C21   Flags               01 (1) 'Modification'\n-3E2C22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3E2C26 LOCAL HEADER #1149    04034B50 (67324752)\n-3E2C2A Extract Zip Spec      14 (20) '2.0'\n-3E2C2B Extract OS            00 (0) 'MS-DOS'\n-3E2C2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E2C2E Compression Method    0000 (0) 'Stored'\n-3E2C30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E2C34 CRC                   00000000 (0)\n-3E2C38 Compressed Size       00000000 (0)\n-3E2C3C Uncompressed Size     00000000 (0)\n-3E2C40 Filename Length       004D (77)\n-3E2C42 Extra Length          0009 (9)\n-3E2C44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E2C44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E2C91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E2C93   Length              0005 (5)\n-3E2C95   Flags               01 (1) 'Modification'\n-3E2C96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E2C9A PAYLOAD\n-\n-3E3609 DATA DESCRIPTOR       08074B50 (134695760)\n-3E360D CRC                   B342E8EC (3007506668)\n-3E3611 Compressed Size       0000096F (2415)\n-3E3615 Uncompressed Size     0000096F (2415)\n-\n-3E3619 LOCAL HEADER #1150    04034B50 (67324752)\n-3E361D Extract Zip Spec      14 (20) '2.0'\n-3E361E Extract OS            00 (0) 'MS-DOS'\n-3E361F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E3621 Compression Method    0000 (0) 'Stored'\n-3E3623 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E3627 CRC                   00000000 (0)\n-3E362B Compressed Size       00000000 (0)\n-3E362F Uncompressed Size     00000000 (0)\n-3E3633 Filename Length       0047 (71)\n-3E3635 Extra Length          0009 (9)\n-3E3637 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E3637: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E367E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E3680   Length              0005 (5)\n-3E3682   Flags               01 (1) 'Modification'\n-3E3683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E3687 PAYLOAD\n-\n-3E740E DATA DESCRIPTOR       08074B50 (134695760)\n-3E7412 CRC                   CAD52129 (3402965289)\n-3E7416 Compressed Size       00003D87 (15751)\n-3E741A Uncompressed Size     00003D87 (15751)\n-\n-3E741E LOCAL HEADER #1151    04034B50 (67324752)\n-3E7422 Extract Zip Spec      14 (20) '2.0'\n-3E7423 Extract OS            00 (0) 'MS-DOS'\n-3E7424 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E7426 Compression Method    0000 (0) 'Stored'\n-3E7428 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E742C CRC                   00000000 (0)\n-3E7430 Compressed Size       00000000 (0)\n-3E7434 Uncompressed Size     00000000 (0)\n-3E7438 Filename Length       0045 (69)\n-3E743A Extra Length          0009 (9)\n-3E743C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E743C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E7481 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E7483   Length              0005 (5)\n-3E7485   Flags               01 (1) 'Modification'\n-3E7486   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E748A PAYLOAD\n-\n-3E7E4F DATA DESCRIPTOR       08074B50 (134695760)\n-3E7E53 CRC                   47F26503 (1207067907)\n-3E7E57 Compressed Size       000009C5 (2501)\n-3E7E5B Uncompressed Size     000009C5 (2501)\n-\n-3E7E5F LOCAL HEADER #1152    04034B50 (67324752)\n-3E7E63 Extract Zip Spec      14 (20) '2.0'\n-3E7E64 Extract OS            00 (0) 'MS-DOS'\n-3E7E65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E7E67 Compression Method    0000 (0) 'Stored'\n-3E7E69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E7E6D CRC                   00000000 (0)\n-3E7E71 Compressed Size       00000000 (0)\n-3E7E75 Uncompressed Size     00000000 (0)\n-3E7E79 Filename Length       0046 (70)\n-3E7E7B Extra Length          0009 (9)\n-3E7E7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E7E7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E7EC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E7EC5   Length              0005 (5)\n-3E7EC7   Flags               01 (1) 'Modification'\n-3E7EC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E7ECC PAYLOAD\n-\n-3E8BD3 DATA DESCRIPTOR       08074B50 (134695760)\n-3E8BD7 CRC                   19F0D91C (435214620)\n-3E8BDB Compressed Size       00000D07 (3335)\n-3E8BDF Uncompressed Size     00000D07 (3335)\n-\n-3E8BE3 LOCAL HEADER #1153    04034B50 (67324752)\n-3E8BE7 Extract Zip Spec      14 (20) '2.0'\n-3E8BE8 Extract OS            00 (0) 'MS-DOS'\n-3E8BE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E8BEB Compression Method    0000 (0) 'Stored'\n-3E8BED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E8BF1 CRC                   00000000 (0)\n-3E8BF5 Compressed Size       00000000 (0)\n-3E8BF9 Uncompressed Size     00000000 (0)\n-3E8BFD Filename Length       0046 (70)\n-3E8BFF Extra Length          0009 (9)\n-3E8C01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E8C01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E8C47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E8C49   Length              0005 (5)\n-3E8C4B   Flags               01 (1) 'Modification'\n-3E8C4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E8C50 PAYLOAD\n-\n-3E9413 DATA DESCRIPTOR       08074B50 (134695760)\n-3E9417 CRC                   7E8AFFB4 (2123038644)\n-3E941B Compressed Size       000007C3 (1987)\n-3E941F Uncompressed Size     000007C3 (1987)\n-\n-3E9423 LOCAL HEADER #1154    04034B50 (67324752)\n-3E9427 Extract Zip Spec      14 (20) '2.0'\n-3E9428 Extract OS            00 (0) 'MS-DOS'\n-3E9429 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3E942B Compression Method    0000 (0) 'Stored'\n-3E942D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3E9431 CRC                   00000000 (0)\n-3E9435 Compressed Size       00000000 (0)\n-3E9439 Uncompressed Size     00000000 (0)\n-3E943D Filename Length       0033 (51)\n-3E943F Extra Length          0009 (9)\n-3E9441 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3E9441: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3E9474 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3E9476   Length              0005 (5)\n-3E9478   Flags               01 (1) 'Modification'\n-3E9479   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3E947D PAYLOAD\n-\n-3EAFED DATA DESCRIPTOR       08074B50 (134695760)\n-3EAFF1 CRC                   BE623F70 (3194109808)\n-3EAFF5 Compressed Size       00001B70 (7024)\n-3EAFF9 Uncompressed Size     00001B70 (7024)\n-\n-3EAFFD LOCAL HEADER #1155    04034B50 (67324752)\n-3EB001 Extract Zip Spec      14 (20) '2.0'\n-3EB002 Extract OS            00 (0) 'MS-DOS'\n-3EB003 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EB005 Compression Method    0000 (0) 'Stored'\n-3EB007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EB00B CRC                   00000000 (0)\n-3EB00F Compressed Size       00000000 (0)\n-3EB013 Uncompressed Size     00000000 (0)\n-3EB017 Filename Length       0039 (57)\n-3EB019 Extra Length          0009 (9)\n-3EB01B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EB01B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EB054 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EB056   Length              0005 (5)\n-3EB058   Flags               01 (1) 'Modification'\n-3EB059   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EB05D PAYLOAD\n-\n-3EC268 DATA DESCRIPTOR       08074B50 (134695760)\n-3EC26C CRC                   C31D4A4B (3273476683)\n-3EC270 Compressed Size       0000120B (4619)\n-3EC274 Uncompressed Size     0000120B (4619)\n-\n-3EC278 LOCAL HEADER #1156    04034B50 (67324752)\n-3EC27C Extract Zip Spec      14 (20) '2.0'\n-3EC27D Extract OS            00 (0) 'MS-DOS'\n-3EC27E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EC280 Compression Method    0000 (0) 'Stored'\n-3EC282 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EC286 CRC                   00000000 (0)\n-3EC28A Compressed Size       00000000 (0)\n-3EC28E Uncompressed Size     00000000 (0)\n-3EC292 Filename Length       0036 (54)\n-3EC294 Extra Length          0009 (9)\n-3EC296 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EC296: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EC2CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EC2CE   Length              0005 (5)\n-3EC2D0   Flags               01 (1) 'Modification'\n-3EC2D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EC2D5 PAYLOAD\n-\n-3EDAE3 DATA DESCRIPTOR       08074B50 (134695760)\n-3EDAE7 CRC                   B4E1FAB5 (3034708661)\n-3EDAEB Compressed Size       0000180E (6158)\n-3EDAEF Uncompressed Size     0000180E (6158)\n-\n-3EDAF3 LOCAL HEADER #1157    04034B50 (67324752)\n-3EDAF7 Extract Zip Spec      14 (20) '2.0'\n-3EDAF8 Extract OS            00 (0) 'MS-DOS'\n-3EDAF9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EDAFB Compression Method    0000 (0) 'Stored'\n-3EDAFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EDB01 CRC                   00000000 (0)\n-3EDB05 Compressed Size       00000000 (0)\n-3EDB09 Uncompressed Size     00000000 (0)\n-3EDB0D Filename Length       0037 (55)\n-3EDB0F Extra Length          0009 (9)\n-3EDB11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EDB11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EDB48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EDB4A   Length              0005 (5)\n-3EDB4C   Flags               01 (1) 'Modification'\n-3EDB4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EDB51 PAYLOAD\n-\n-3EE7CC DATA DESCRIPTOR       08074B50 (134695760)\n-3EE7D0 CRC                   5668569D (1449678493)\n-3EE7D4 Compressed Size       00000C7B (3195)\n-3EE7D8 Uncompressed Size     00000C7B (3195)\n-\n-3EE7DC LOCAL HEADER #1158    04034B50 (67324752)\n-3EE7E0 Extract Zip Spec      14 (20) '2.0'\n-3EE7E1 Extract OS            00 (0) 'MS-DOS'\n-3EE7E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EE7E4 Compression Method    0000 (0) 'Stored'\n-3EE7E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EE7EA CRC                   00000000 (0)\n-3EE7EE Compressed Size       00000000 (0)\n-3EE7F2 Uncompressed Size     00000000 (0)\n-3EE7F6 Filename Length       003D (61)\n-3EE7F8 Extra Length          0009 (9)\n-3EE7FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EE7FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EE837 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EE839   Length              0005 (5)\n-3EE83B   Flags               01 (1) 'Modification'\n-3EE83C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EE840 PAYLOAD\n-\n-3EED01 DATA DESCRIPTOR       08074B50 (134695760)\n-3EED05 CRC                   EA525DAF (3931266479)\n-3EED09 Compressed Size       000004C1 (1217)\n-3EED0D Uncompressed Size     000004C1 (1217)\n-\n-3EED11 LOCAL HEADER #1159    04034B50 (67324752)\n-3EED15 Extract Zip Spec      14 (20) '2.0'\n-3EED16 Extract OS            00 (0) 'MS-DOS'\n-3EED17 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EED19 Compression Method    0000 (0) 'Stored'\n-3EED1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EED1F CRC                   00000000 (0)\n-3EED23 Compressed Size       00000000 (0)\n-3EED27 Uncompressed Size     00000000 (0)\n-3EED2B Filename Length       003F (63)\n-3EED2D Extra Length          0009 (9)\n-3EED2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EED2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EED6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EED70   Length              0005 (5)\n-3EED72   Flags               01 (1) 'Modification'\n-3EED73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EED77 PAYLOAD\n-\n-3EF3B3 DATA DESCRIPTOR       08074B50 (134695760)\n-3EF3B7 CRC                   6E98A8DB (1855498459)\n-3EF3BB Compressed Size       0000063C (1596)\n-3EF3BF Uncompressed Size     0000063C (1596)\n-\n-3EF3C3 LOCAL HEADER #1160    04034B50 (67324752)\n-3EF3C7 Extract Zip Spec      14 (20) '2.0'\n-3EF3C8 Extract OS            00 (0) 'MS-DOS'\n-3EF3C9 General Purpose Flag  0000 (0)\n-3EF3CB Compression Method    0000 (0) 'Stored'\n-3EF3CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EF3D1 CRC                   00000000 (0)\n-3EF3D5 Compressed Size       00000000 (0)\n-3EF3D9 Uncompressed Size     00000000 (0)\n-3EF3DD Filename Length       0025 (37)\n-3EF3DF Extra Length          0009 (9)\n-3EF3E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EF3E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EF406 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EF408   Length              0005 (5)\n-3EF40A   Flags               01 (1) 'Modification'\n-3EF40B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3EF40F LOCAL HEADER #1161    04034B50 (67324752)\n-3EF413 Extract Zip Spec      14 (20) '2.0'\n-3EF414 Extract OS            00 (0) 'MS-DOS'\n-3EF415 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EF417 Compression Method    0000 (0) 'Stored'\n-3EF419 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EF41D CRC                   00000000 (0)\n-3EF421 Compressed Size       00000000 (0)\n-3EF425 Uncompressed Size     00000000 (0)\n-3EF429 Filename Length       0048 (72)\n-3EF42B Extra Length          0009 (9)\n-3EF42D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EF42D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3EF475 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3EF477   Length              0005 (5)\n-3EF479   Flags               01 (1) 'Modification'\n-3EF47A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3EF47E PAYLOAD\n-\n-3EFFC5 DATA DESCRIPTOR       08074B50 (134695760)\n-3EFFC9 CRC                   96165FE8 (2518048744)\n-3EFFCD Compressed Size       00000B47 (2887)\n-3EFFD1 Uncompressed Size     00000B47 (2887)\n-\n-3EFFD5 LOCAL HEADER #1162    04034B50 (67324752)\n-3EFFD9 Extract Zip Spec      14 (20) '2.0'\n-3EFFDA Extract OS            00 (0) 'MS-DOS'\n-3EFFDB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3EFFDD Compression Method    0000 (0) 'Stored'\n-3EFFDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3EFFE3 CRC                   00000000 (0)\n-3EFFE7 Compressed Size       00000000 (0)\n-3EFFEB Uncompressed Size     00000000 (0)\n-3EFFEF Filename Length       0045 (69)\n-3EFFF1 Extra Length          0009 (9)\n-3EFFF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3EFFF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F0038 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F003A   Length              0005 (5)\n-3F003C   Flags               01 (1) 'Modification'\n-3F003D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F0041 PAYLOAD\n-\n-3F0581 DATA DESCRIPTOR       08074B50 (134695760)\n-3F0585 CRC                   BB15446F (3138733167)\n-3F0589 Compressed Size       00000540 (1344)\n-3F058D Uncompressed Size     00000540 (1344)\n-\n-3F0591 LOCAL HEADER #1163    04034B50 (67324752)\n-3F0595 Extract Zip Spec      14 (20) '2.0'\n-3F0596 Extract OS            00 (0) 'MS-DOS'\n-3F0597 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F0599 Compression Method    0000 (0) 'Stored'\n-3F059B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F059F CRC                   00000000 (0)\n-3F05A3 Compressed Size       00000000 (0)\n-3F05A7 Uncompressed Size     00000000 (0)\n-3F05AB Filename Length       0047 (71)\n-3F05AD Extra Length          0009 (9)\n-3F05AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F05AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F05F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F05F8   Length              0005 (5)\n-3F05FA   Flags               01 (1) 'Modification'\n-3F05FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F05FF PAYLOAD\n-\n-3F0E71 DATA DESCRIPTOR       08074B50 (134695760)\n-3F0E75 CRC                   C656CCE4 (3327577316)\n-3F0E79 Compressed Size       00000872 (2162)\n-3F0E7D Uncompressed Size     00000872 (2162)\n-\n-3F0E81 LOCAL HEADER #1164    04034B50 (67324752)\n-3F0E85 Extract Zip Spec      14 (20) '2.0'\n-3F0E86 Extract OS            00 (0) 'MS-DOS'\n-3F0E87 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F0E89 Compression Method    0000 (0) 'Stored'\n-3F0E8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F0E8F CRC                   00000000 (0)\n-3F0E93 Compressed Size       00000000 (0)\n-3F0E97 Uncompressed Size     00000000 (0)\n-3F0E9B Filename Length       004A (74)\n-3F0E9D Extra Length          0009 (9)\n-3F0E9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F0E9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F0EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F0EEB   Length              0005 (5)\n-3F0EED   Flags               01 (1) 'Modification'\n-3F0EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F0EF2 PAYLOAD\n-\n-3F20D8 DATA DESCRIPTOR       08074B50 (134695760)\n-3F20DC CRC                   6100366B (1627403883)\n-3F20E0 Compressed Size       000011E6 (4582)\n-3F20E4 Uncompressed Size     000011E6 (4582)\n-\n-3F20E8 LOCAL HEADER #1165    04034B50 (67324752)\n-3F20EC Extract Zip Spec      14 (20) '2.0'\n-3F20ED Extract OS            00 (0) 'MS-DOS'\n-3F20EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F20F0 Compression Method    0000 (0) 'Stored'\n-3F20F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F20F6 CRC                   00000000 (0)\n-3F20FA Compressed Size       00000000 (0)\n-3F20FE Uncompressed Size     00000000 (0)\n-3F2102 Filename Length       0047 (71)\n-3F2104 Extra Length          0009 (9)\n-3F2106 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F2106: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F214D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F214F   Length              0005 (5)\n-3F2151   Flags               01 (1) 'Modification'\n-3F2152   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F2156 PAYLOAD\n-\n-3F269E DATA DESCRIPTOR       08074B50 (134695760)\n-3F26A2 CRC                   8939A522 (2302256418)\n-3F26A6 Compressed Size       00000548 (1352)\n-3F26AA Uncompressed Size     00000548 (1352)\n-\n-3F26AE LOCAL HEADER #1166    04034B50 (67324752)\n-3F26B2 Extract Zip Spec      14 (20) '2.0'\n-3F26B3 Extract OS            00 (0) 'MS-DOS'\n-3F26B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F26B6 Compression Method    0000 (0) 'Stored'\n-3F26B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F26BC CRC                   00000000 (0)\n-3F26C0 Compressed Size       00000000 (0)\n-3F26C4 Uncompressed Size     00000000 (0)\n-3F26C8 Filename Length       004B (75)\n-3F26CA Extra Length          0009 (9)\n-3F26CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F26CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F2717 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F2719   Length              0005 (5)\n-3F271B   Flags               01 (1) 'Modification'\n-3F271C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F2720 PAYLOAD\n-\n-3F2DFE DATA DESCRIPTOR       08074B50 (134695760)\n-3F2E02 CRC                   2244431E (574898974)\n-3F2E06 Compressed Size       000006DE (1758)\n-3F2E0A Uncompressed Size     000006DE (1758)\n-\n-3F2E0E LOCAL HEADER #1167    04034B50 (67324752)\n-3F2E12 Extract Zip Spec      14 (20) '2.0'\n-3F2E13 Extract OS            00 (0) 'MS-DOS'\n-3F2E14 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F2E16 Compression Method    0000 (0) 'Stored'\n-3F2E18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F2E1C CRC                   00000000 (0)\n-3F2E20 Compressed Size       00000000 (0)\n-3F2E24 Uncompressed Size     00000000 (0)\n-3F2E28 Filename Length       0046 (70)\n-3F2E2A Extra Length          0009 (9)\n-3F2E2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F2E2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F2E72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F2E74   Length              0005 (5)\n-3F2E76   Flags               01 (1) 'Modification'\n-3F2E77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F2E7B PAYLOAD\n-\n-3F33BF DATA DESCRIPTOR       08074B50 (134695760)\n-3F33C3 CRC                   6B0A1F36 (1795825462)\n-3F33C7 Compressed Size       00000544 (1348)\n-3F33CB Uncompressed Size     00000544 (1348)\n-\n-3F33CF LOCAL HEADER #1168    04034B50 (67324752)\n-3F33D3 Extract Zip Spec      14 (20) '2.0'\n-3F33D4 Extract OS            00 (0) 'MS-DOS'\n-3F33D5 General Purpose Flag  0000 (0)\n-3F33D7 Compression Method    0000 (0) 'Stored'\n-3F33D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F33DD CRC                   00000000 (0)\n-3F33E1 Compressed Size       00000000 (0)\n-3F33E5 Uncompressed Size     00000000 (0)\n-3F33E9 Filename Length       0029 (41)\n-3F33EB Extra Length          0009 (9)\n-3F33ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F33ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F3416 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F3418   Length              0005 (5)\n-3F341A   Flags               01 (1) 'Modification'\n-3F341B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3F341F LOCAL HEADER #1169    04034B50 (67324752)\n-3F3423 Extract Zip Spec      14 (20) '2.0'\n-3F3424 Extract OS            00 (0) 'MS-DOS'\n-3F3425 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F3427 Compression Method    0000 (0) 'Stored'\n-3F3429 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F342D CRC                   00000000 (0)\n-3F3431 Compressed Size       00000000 (0)\n-3F3435 Uncompressed Size     00000000 (0)\n-3F3439 Filename Length       0059 (89)\n-3F343B Extra Length          0009 (9)\n-3F343D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F343D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F3496 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F3498   Length              0005 (5)\n-3F349A   Flags               01 (1) 'Modification'\n-3F349B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F349F PAYLOAD\n-\n-3F3FCF DATA DESCRIPTOR       08074B50 (134695760)\n-3F3FD3 CRC                   F6AB8A5C (4138437212)\n-3F3FD7 Compressed Size       00000B30 (2864)\n-3F3FDB Uncompressed Size     00000B30 (2864)\n-\n-3F3FDF LOCAL HEADER #1170    04034B50 (67324752)\n-3F3FE3 Extract Zip Spec      14 (20) '2.0'\n-3F3FE4 Extract OS            00 (0) 'MS-DOS'\n-3F3FE5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F3FE7 Compression Method    0000 (0) 'Stored'\n-3F3FE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F3FED CRC                   00000000 (0)\n-3F3FF1 Compressed Size       00000000 (0)\n-3F3FF5 Uncompressed Size     00000000 (0)\n-3F3FF9 Filename Length       004D (77)\n-3F3FFB Extra Length          0009 (9)\n-3F3FFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F3FFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F404A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F404C   Length              0005 (5)\n-3F404E   Flags               01 (1) 'Modification'\n-3F404F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F4053 PAYLOAD\n-\n-3F4758 DATA DESCRIPTOR       08074B50 (134695760)\n-3F475C CRC                   8ECDA075 (2395840629)\n-3F4760 Compressed Size       00000705 (1797)\n-3F4764 Uncompressed Size     00000705 (1797)\n-\n-3F4768 LOCAL HEADER #1171    04034B50 (67324752)\n-3F476C Extract Zip Spec      14 (20) '2.0'\n-3F476D Extract OS            00 (0) 'MS-DOS'\n-3F476E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F4770 Compression Method    0000 (0) 'Stored'\n-3F4772 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F4776 CRC                   00000000 (0)\n-3F477A Compressed Size       00000000 (0)\n-3F477E Uncompressed Size     00000000 (0)\n-3F4782 Filename Length       004C (76)\n-3F4784 Extra Length          0009 (9)\n-3F4786 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F4786: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F47D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F47D4   Length              0005 (5)\n-3F47D6   Flags               01 (1) 'Modification'\n-3F47D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F47DB PAYLOAD\n-\n-3F4EDB DATA DESCRIPTOR       08074B50 (134695760)\n-3F4EDF CRC                   C535197D (3308591485)\n-3F4EE3 Compressed Size       00000700 (1792)\n-3F4EE7 Uncompressed Size     00000700 (1792)\n-\n-3F4EEB LOCAL HEADER #1172    04034B50 (67324752)\n-3F4EEF Extract Zip Spec      14 (20) '2.0'\n-3F4EF0 Extract OS            00 (0) 'MS-DOS'\n-3F4EF1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F4EF3 Compression Method    0000 (0) 'Stored'\n-3F4EF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F4EF9 CRC                   00000000 (0)\n-3F4EFD Compressed Size       00000000 (0)\n-3F4F01 Uncompressed Size     00000000 (0)\n-3F4F05 Filename Length       0052 (82)\n-3F4F07 Extra Length          0009 (9)\n-3F4F09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F4F09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F4F5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F4F5D   Length              0005 (5)\n-3F4F5F   Flags               01 (1) 'Modification'\n-3F4F60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F4F64 PAYLOAD\n-\n-3F67D4 DATA DESCRIPTOR       08074B50 (134695760)\n-3F67D8 CRC                   A895CAB3 (2828389043)\n-3F67DC Compressed Size       00001870 (6256)\n-3F67E0 Uncompressed Size     00001870 (6256)\n-\n-3F67E4 LOCAL HEADER #1173    04034B50 (67324752)\n-3F67E8 Extract Zip Spec      14 (20) '2.0'\n-3F67E9 Extract OS            00 (0) 'MS-DOS'\n-3F67EA General Purpose Flag  0000 (0)\n-3F67EC Compression Method    0000 (0) 'Stored'\n-3F67EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F67F2 CRC                   00000000 (0)\n-3F67F6 Compressed Size       00000000 (0)\n-3F67FA Uncompressed Size     00000000 (0)\n-3F67FE Filename Length       0020 (32)\n-3F6800 Extra Length          0009 (9)\n-3F6802 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F6802: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F6822 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F6824   Length              0005 (5)\n-3F6826   Flags               01 (1) 'Modification'\n-3F6827   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3F682B LOCAL HEADER #1174    04034B50 (67324752)\n-3F682F Extract Zip Spec      14 (20) '2.0'\n-3F6830 Extract OS            00 (0) 'MS-DOS'\n-3F6831 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F6833 Compression Method    0000 (0) 'Stored'\n-3F6835 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F6839 CRC                   00000000 (0)\n-3F683D Compressed Size       00000000 (0)\n-3F6841 Uncompressed Size     00000000 (0)\n-3F6845 Filename Length       004C (76)\n-3F6847 Extra Length          0009 (9)\n-3F6849 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F6849: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F6895 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F6897   Length              0005 (5)\n-3F6899   Flags               01 (1) 'Modification'\n-3F689A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F689E PAYLOAD\n-\n-3F7908 DATA DESCRIPTOR       08074B50 (134695760)\n-3F790C CRC                   C67BB267 (3329995367)\n-3F7910 Compressed Size       0000106A (4202)\n-3F7914 Uncompressed Size     0000106A (4202)\n-\n-3F7918 LOCAL HEADER #1175    04034B50 (67324752)\n-3F791C Extract Zip Spec      14 (20) '2.0'\n-3F791D Extract OS            00 (0) 'MS-DOS'\n-3F791E General Purpose Flag  0000 (0)\n-3F7920 Compression Method    0000 (0) 'Stored'\n-3F7922 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F7926 CRC                   00000000 (0)\n-3F792A Compressed Size       00000000 (0)\n-3F792E Uncompressed Size     00000000 (0)\n-3F7932 Filename Length       0027 (39)\n-3F7934 Extra Length          0009 (9)\n-3F7936 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F7936: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F795D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F795F   Length              0005 (5)\n-3F7961   Flags               01 (1) 'Modification'\n-3F7962   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3F7966 LOCAL HEADER #1176    04034B50 (67324752)\n-3F796A Extract Zip Spec      14 (20) '2.0'\n-3F796B Extract OS            00 (0) 'MS-DOS'\n-3F796C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F796E Compression Method    0000 (0) 'Stored'\n-3F7970 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F7974 CRC                   00000000 (0)\n-3F7978 Compressed Size       00000000 (0)\n-3F797C Uncompressed Size     00000000 (0)\n-3F7980 Filename Length       0040 (64)\n-3F7982 Extra Length          0009 (9)\n-3F7984 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F7984: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F79C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F79C6   Length              0005 (5)\n-3F79C8   Flags               01 (1) 'Modification'\n-3F79C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F79CD PAYLOAD\n-\n-3F8EBC DATA DESCRIPTOR       08074B50 (134695760)\n-3F8EC0 CRC                   BE116E78 (3188813432)\n-3F8EC4 Compressed Size       000014EF (5359)\n-3F8EC8 Uncompressed Size     000014EF (5359)\n-\n-3F8ECC LOCAL HEADER #1177    04034B50 (67324752)\n-3F8ED0 Extract Zip Spec      14 (20) '2.0'\n-3F8ED1 Extract OS            00 (0) 'MS-DOS'\n-3F8ED2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F8ED4 Compression Method    0000 (0) 'Stored'\n-3F8ED6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F8EDA CRC                   00000000 (0)\n-3F8EDE Compressed Size       00000000 (0)\n-3F8EE2 Uncompressed Size     00000000 (0)\n-3F8EE6 Filename Length       0047 (71)\n-3F8EE8 Extra Length          0009 (9)\n-3F8EEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F8EEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F8F31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F8F33   Length              0005 (5)\n-3F8F35   Flags               01 (1) 'Modification'\n-3F8F36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F8F3A PAYLOAD\n-\n-3F943F DATA DESCRIPTOR       08074B50 (134695760)\n-3F9443 CRC                   0FE45FE3 (266624995)\n-3F9447 Compressed Size       00000505 (1285)\n-3F944B Uncompressed Size     00000505 (1285)\n-\n-3F944F LOCAL HEADER #1178    04034B50 (67324752)\n-3F9453 Extract Zip Spec      14 (20) '2.0'\n-3F9454 Extract OS            00 (0) 'MS-DOS'\n-3F9455 General Purpose Flag  0000 (0)\n-3F9457 Compression Method    0000 (0) 'Stored'\n-3F9459 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F945D CRC                   00000000 (0)\n-3F9461 Compressed Size       00000000 (0)\n-3F9465 Uncompressed Size     00000000 (0)\n-3F9469 Filename Length       0025 (37)\n-3F946B Extra Length          0009 (9)\n-3F946D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F946D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F9492 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F9494   Length              0005 (5)\n-3F9496   Flags               01 (1) 'Modification'\n-3F9497   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3F949B LOCAL HEADER #1179    04034B50 (67324752)\n-3F949F Extract Zip Spec      14 (20) '2.0'\n-3F94A0 Extract OS            00 (0) 'MS-DOS'\n-3F94A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3F94A3 Compression Method    0000 (0) 'Stored'\n-3F94A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3F94A9 CRC                   00000000 (0)\n-3F94AD Compressed Size       00000000 (0)\n-3F94B1 Uncompressed Size     00000000 (0)\n-3F94B5 Filename Length       003C (60)\n-3F94B7 Extra Length          0009 (9)\n-3F94B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3F94B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3F94F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3F94F7   Length              0005 (5)\n-3F94F9   Flags               01 (1) 'Modification'\n-3F94FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3F94FE PAYLOAD\n-\n-3FAB5A DATA DESCRIPTOR       08074B50 (134695760)\n-3FAB5E CRC                   00AA2381 (11150209)\n-3FAB62 Compressed Size       0000165C (5724)\n-3FAB66 Uncompressed Size     0000165C (5724)\n-\n-3FAB6A LOCAL HEADER #1180    04034B50 (67324752)\n-3FAB6E Extract Zip Spec      14 (20) '2.0'\n-3FAB6F Extract OS            00 (0) 'MS-DOS'\n-3FAB70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3FAB72 Compression Method    0000 (0) 'Stored'\n-3FAB74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3FAB78 CRC                   00000000 (0)\n-3FAB7C Compressed Size       00000000 (0)\n-3FAB80 Uncompressed Size     00000000 (0)\n-3FAB84 Filename Length       0043 (67)\n-3FAB86 Extra Length          0009 (9)\n-3FAB88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FAB88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3FABCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3FABCD   Length              0005 (5)\n-3FABCF   Flags               01 (1) 'Modification'\n-3FABD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3FABD4 PAYLOAD\n-\n-3FB412 DATA DESCRIPTOR       08074B50 (134695760)\n-3FB416 CRC                   7E524C52 (2119322706)\n-3FB41A Compressed Size       0000083E (2110)\n-3FB41E Uncompressed Size     0000083E (2110)\n-\n-3FB422 LOCAL HEADER #1181    04034B50 (67324752)\n-3FB426 Extract Zip Spec      14 (20) '2.0'\n-3FB427 Extract OS            00 (0) 'MS-DOS'\n-3FB428 General Purpose Flag  0000 (0)\n-3FB42A Compression Method    0000 (0) 'Stored'\n-3FB42C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3FB430 CRC                   00000000 (0)\n-3FB434 Compressed Size       00000000 (0)\n-3FB438 Uncompressed Size     00000000 (0)\n-3FB43C Filename Length       0029 (41)\n-3FB43E Extra Length          0009 (9)\n-3FB440 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FB440: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3FB469 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3FB46B   Length              0005 (5)\n-3FB46D   Flags               01 (1) 'Modification'\n-3FB46E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-3FB472 LOCAL HEADER #1182    04034B50 (67324752)\n-3FB476 Extract Zip Spec      14 (20) '2.0'\n-3FB477 Extract OS            00 (0) 'MS-DOS'\n-3FB478 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3FB47A Compression Method    0000 (0) 'Stored'\n-3FB47C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3FB480 CRC                   00000000 (0)\n-3FB484 Compressed Size       00000000 (0)\n-3FB488 Uncompressed Size     00000000 (0)\n-3FB48C Filename Length       003F (63)\n-3FB48E Extra Length          0009 (9)\n-3FB490 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FB490: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3FB4CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3FB4D1   Length              0005 (5)\n-3FB4D3   Flags               01 (1) 'Modification'\n-3FB4D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3FB4D8 PAYLOAD\n-\n-3FBB6F DATA DESCRIPTOR       08074B50 (134695760)\n-3FBB73 CRC                   AB30D581 (2872104321)\n-3FBB77 Compressed Size       00000697 (1687)\n-3FBB7B Uncompressed Size     00000697 (1687)\n-\n-3FBB7F LOCAL HEADER #1183    04034B50 (67324752)\n-3FBB83 Extract Zip Spec      14 (20) '2.0'\n-3FBB84 Extract OS            00 (0) 'MS-DOS'\n-3FBB85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-3FBB87 Compression Method    0000 (0) 'Stored'\n-3FBB89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-3FBB8D CRC                   00000000 (0)\n-3FBB91 Compressed Size       00000000 (0)\n-3FBB95 Uncompressed Size     00000000 (0)\n-3FBB99 Filename Length       0044 (68)\n-3FBB9B Extra Length          0009 (9)\n-3FBB9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x3FBB9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-3FBBE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-3FBBE3   Length              0005 (5)\n-3FBBE5   Flags               01 (1) 'Modification'\n-3FBBE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-3FBBEA PAYLOAD\n-\n-4017F4 DATA DESCRIPTOR       08074B50 (134695760)\n-4017F8 CRC                   546B40F4 (1416315124)\n-4017FC Compressed Size       00005C0A (23562)\n-401800 Uncompressed Size     00005C0A (23562)\n-\n-401804 LOCAL HEADER #1184    04034B50 (67324752)\n-401808 Extract Zip Spec      14 (20) '2.0'\n-401809 Extract OS            00 (0) 'MS-DOS'\n-40180A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40180C Compression Method    0000 (0) 'Stored'\n-40180E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-401812 CRC                   00000000 (0)\n-401816 Compressed Size       00000000 (0)\n-40181A Uncompressed Size     00000000 (0)\n-40181E Filename Length       004B (75)\n-401820 Extra Length          0009 (9)\n-401822 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x401822: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40186D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40186F   Length              0005 (5)\n-401871   Flags               01 (1) 'Modification'\n-401872   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-401876 PAYLOAD\n-\n-401D4D DATA DESCRIPTOR       08074B50 (134695760)\n-401D51 CRC                   3F1A06E9 (1058670313)\n-401D55 Compressed Size       000004D7 (1239)\n-401D59 Uncompressed Size     000004D7 (1239)\n-\n-401D5D LOCAL HEADER #1185    04034B50 (67324752)\n-401D61 Extract Zip Spec      14 (20) '2.0'\n-401D62 Extract OS            00 (0) 'MS-DOS'\n-401D63 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-401D65 Compression Method    0000 (0) 'Stored'\n-401D67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-401D6B CRC                   00000000 (0)\n-401D6F Compressed Size       00000000 (0)\n-401D73 Uncompressed Size     00000000 (0)\n-401D77 Filename Length       0044 (68)\n-401D79 Extra Length          0009 (9)\n-401D7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x401D7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-401DBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-401DC1   Length              0005 (5)\n-401DC3   Flags               01 (1) 'Modification'\n-401DC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-401DC8 PAYLOAD\n-\n-402A1D DATA DESCRIPTOR       08074B50 (134695760)\n-402A21 CRC                   A5D0004C (2781872204)\n-402A25 Compressed Size       00000C55 (3157)\n-402A29 Uncompressed Size     00000C55 (3157)\n-\n-402A2D LOCAL HEADER #1186    04034B50 (67324752)\n-402A31 Extract Zip Spec      14 (20) '2.0'\n-402A32 Extract OS            00 (0) 'MS-DOS'\n-402A33 General Purpose Flag  0000 (0)\n-402A35 Compression Method    0000 (0) 'Stored'\n-402A37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-402A3B CRC                   00000000 (0)\n-402A3F Compressed Size       00000000 (0)\n-402A43 Uncompressed Size     00000000 (0)\n-402A47 Filename Length       0026 (38)\n-402A49 Extra Length          0009 (9)\n-402A4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x402A4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-402A71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-402A73   Length              0005 (5)\n-402A75   Flags               01 (1) 'Modification'\n-402A76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-402A7A LOCAL HEADER #1187    04034B50 (67324752)\n-402A7E Extract Zip Spec      14 (20) '2.0'\n-402A7F Extract OS            00 (0) 'MS-DOS'\n-402A80 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-402A82 Compression Method    0000 (0) 'Stored'\n-402A84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-402A88 CRC                   00000000 (0)\n-402A8C Compressed Size       00000000 (0)\n-402A90 Uncompressed Size     00000000 (0)\n-402A94 Filename Length       0044 (68)\n-402A96 Extra Length          0009 (9)\n-402A98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x402A98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-402ADC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-402ADE   Length              0005 (5)\n-402AE0   Flags               01 (1) 'Modification'\n-402AE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-402AE5 PAYLOAD\n-\n-40338A DATA DESCRIPTOR       08074B50 (134695760)\n-40338E CRC                   F93596DA (4181038810)\n-403392 Compressed Size       000008A5 (2213)\n-403396 Uncompressed Size     000008A5 (2213)\n-\n-40339A LOCAL HEADER #1188    04034B50 (67324752)\n-40339E Extract Zip Spec      14 (20) '2.0'\n-40339F Extract OS            00 (0) 'MS-DOS'\n-4033A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4033A2 Compression Method    0000 (0) 'Stored'\n-4033A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4033A8 CRC                   00000000 (0)\n-4033AC Compressed Size       00000000 (0)\n-4033B0 Uncompressed Size     00000000 (0)\n-4033B4 Filename Length       003E (62)\n-4033B6 Extra Length          0009 (9)\n-4033B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4033B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4033F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4033F8   Length              0005 (5)\n-4033FA   Flags               01 (1) 'Modification'\n-4033FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4033FF PAYLOAD\n-\n-405C67 DATA DESCRIPTOR       08074B50 (134695760)\n-405C6B CRC                   6BCB8A4E (1808501326)\n-405C6F Compressed Size       00002868 (10344)\n-405C73 Uncompressed Size     00002868 (10344)\n-\n-405C77 LOCAL HEADER #1189    04034B50 (67324752)\n-405C7B Extract Zip Spec      14 (20) '2.0'\n-405C7C Extract OS            00 (0) 'MS-DOS'\n-405C7D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-405C7F Compression Method    0000 (0) 'Stored'\n-405C81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-405C85 CRC                   00000000 (0)\n-405C89 Compressed Size       00000000 (0)\n-405C8D Uncompressed Size     00000000 (0)\n-405C91 Filename Length       0045 (69)\n-405C93 Extra Length          0009 (9)\n-405C95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x405C95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-405CDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-405CDC   Length              0005 (5)\n-405CDE   Flags               01 (1) 'Modification'\n-405CDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-405CE3 PAYLOAD\n-\n-4061E4 DATA DESCRIPTOR       08074B50 (134695760)\n-4061E8 CRC                   030A303D (50999357)\n-4061EC Compressed Size       00000501 (1281)\n-4061F0 Uncompressed Size     00000501 (1281)\n-\n-4061F4 LOCAL HEADER #1190    04034B50 (67324752)\n-4061F8 Extract Zip Spec      14 (20) '2.0'\n-4061F9 Extract OS            00 (0) 'MS-DOS'\n-4061FA General Purpose Flag  0000 (0)\n-4061FC Compression Method    0000 (0) 'Stored'\n-4061FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-406202 CRC                   00000000 (0)\n-406206 Compressed Size       00000000 (0)\n-40620A Uncompressed Size     00000000 (0)\n-40620E Filename Length       0026 (38)\n-406210 Extra Length          0009 (9)\n-406212 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x406212: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-406238 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40623A   Length              0005 (5)\n-40623C   Flags               01 (1) 'Modification'\n-40623D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-406241 LOCAL HEADER #1191    04034B50 (67324752)\n-406245 Extract Zip Spec      14 (20) '2.0'\n-406246 Extract OS            00 (0) 'MS-DOS'\n-406247 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-406249 Compression Method    0000 (0) 'Stored'\n-40624B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40624F CRC                   00000000 (0)\n-406253 Compressed Size       00000000 (0)\n-406257 Uncompressed Size     00000000 (0)\n-40625B Filename Length       003E (62)\n-40625D Extra Length          0009 (9)\n-40625F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40625F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40629D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40629F   Length              0005 (5)\n-4062A1   Flags               01 (1) 'Modification'\n-4062A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4062A6 PAYLOAD\n-\n-40870F DATA DESCRIPTOR       08074B50 (134695760)\n-408713 CRC                   AE94BF94 (2928983956)\n-408717 Compressed Size       00002469 (9321)\n-40871B Uncompressed Size     00002469 (9321)\n-\n-40871F LOCAL HEADER #1192    04034B50 (67324752)\n-408723 Extract Zip Spec      14 (20) '2.0'\n-408724 Extract OS            00 (0) 'MS-DOS'\n-408725 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-408727 Compression Method    0000 (0) 'Stored'\n-408729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40872D CRC                   00000000 (0)\n-408731 Compressed Size       00000000 (0)\n-408735 Uncompressed Size     00000000 (0)\n-408739 Filename Length       0045 (69)\n-40873B Extra Length          0009 (9)\n-40873D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40873D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-408782 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-408784   Length              0005 (5)\n-408786   Flags               01 (1) 'Modification'\n-408787   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40878B PAYLOAD\n-\n-408C80 DATA DESCRIPTOR       08074B50 (134695760)\n-408C84 CRC                   FCE39D55 (4242775381)\n-408C88 Compressed Size       000004F5 (1269)\n-408C8C Uncompressed Size     000004F5 (1269)\n-\n-408C90 LOCAL HEADER #1193    04034B50 (67324752)\n-408C94 Extract Zip Spec      14 (20) '2.0'\n-408C95 Extract OS            00 (0) 'MS-DOS'\n-408C96 General Purpose Flag  0000 (0)\n-408C98 Compression Method    0000 (0) 'Stored'\n-408C9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-408C9E CRC                   00000000 (0)\n-408CA2 Compressed Size       00000000 (0)\n-408CA6 Uncompressed Size     00000000 (0)\n-408CAA Filename Length       002A (42)\n-408CAC Extra Length          0009 (9)\n-408CAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x408CAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-408CD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-408CDA   Length              0005 (5)\n-408CDC   Flags               01 (1) 'Modification'\n-408CDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-408CE1 LOCAL HEADER #1194    04034B50 (67324752)\n-408CE5 Extract Zip Spec      14 (20) '2.0'\n-408CE6 Extract OS            00 (0) 'MS-DOS'\n-408CE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-408CE9 Compression Method    0000 (0) 'Stored'\n-408CEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-408CEF CRC                   00000000 (0)\n-408CF3 Compressed Size       00000000 (0)\n-408CF7 Uncompressed Size     00000000 (0)\n-408CFB Filename Length       0046 (70)\n-408CFD Extra Length          0009 (9)\n-408CFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x408CFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-408D45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-408D47   Length              0005 (5)\n-408D49   Flags               01 (1) 'Modification'\n-408D4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-408D4E PAYLOAD\n-\n-40AA49 DATA DESCRIPTOR       08074B50 (134695760)\n-40AA4D CRC                   C83DC072 (3359490162)\n-40AA51 Compressed Size       00001CFB (7419)\n-40AA55 Uncompressed Size     00001CFB (7419)\n-\n-40AA59 LOCAL HEADER #1195    04034B50 (67324752)\n-40AA5D Extract Zip Spec      14 (20) '2.0'\n-40AA5E Extract OS            00 (0) 'MS-DOS'\n-40AA5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40AA61 Compression Method    0000 (0) 'Stored'\n-40AA63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40AA67 CRC                   00000000 (0)\n-40AA6B Compressed Size       00000000 (0)\n-40AA6F Uncompressed Size     00000000 (0)\n-40AA73 Filename Length       004D (77)\n-40AA75 Extra Length          0009 (9)\n-40AA77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40AA77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40AAC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40AAC6   Length              0005 (5)\n-40AAC8   Flags               01 (1) 'Modification'\n-40AAC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40AACD PAYLOAD\n-\n-40B0F0 DATA DESCRIPTOR       08074B50 (134695760)\n-40B0F4 CRC                   30CD3349 (818754377)\n-40B0F8 Compressed Size       00000623 (1571)\n-40B0FC Uncompressed Size     00000623 (1571)\n-\n-40B100 LOCAL HEADER #1196    04034B50 (67324752)\n-40B104 Extract Zip Spec      14 (20) '2.0'\n-40B105 Extract OS            00 (0) 'MS-DOS'\n-40B106 General Purpose Flag  0000 (0)\n-40B108 Compression Method    0000 (0) 'Stored'\n-40B10A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40B10E CRC                   00000000 (0)\n-40B112 Compressed Size       00000000 (0)\n-40B116 Uncompressed Size     00000000 (0)\n-40B11A Filename Length       0019 (25)\n-40B11C Extra Length          0009 (9)\n-40B11E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40B11E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40B137 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40B139   Length              0005 (5)\n-40B13B   Flags               01 (1) 'Modification'\n-40B13C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-40B140 LOCAL HEADER #1197    04034B50 (67324752)\n-40B144 Extract Zip Spec      14 (20) '2.0'\n-40B145 Extract OS            00 (0) 'MS-DOS'\n-40B146 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40B148 Compression Method    0000 (0) 'Stored'\n-40B14A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40B14E CRC                   00000000 (0)\n-40B152 Compressed Size       00000000 (0)\n-40B156 Uncompressed Size     00000000 (0)\n-40B15A Filename Length       0027 (39)\n-40B15C Extra Length          0009 (9)\n-40B15E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40B15E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40B185 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40B187   Length              0005 (5)\n-40B189   Flags               01 (1) 'Modification'\n-40B18A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40B18E PAYLOAD\n-\n-40B698 DATA DESCRIPTOR       08074B50 (134695760)\n-40B69C CRC                   974A673F (2538235711)\n-40B6A0 Compressed Size       0000050A (1290)\n-40B6A4 Uncompressed Size     0000050A (1290)\n-\n-40B6A8 LOCAL HEADER #1198    04034B50 (67324752)\n-40B6AC Extract Zip Spec      14 (20) '2.0'\n-40B6AD Extract OS            00 (0) 'MS-DOS'\n-40B6AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40B6B0 Compression Method    0000 (0) 'Stored'\n-40B6B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40B6B6 CRC                   00000000 (0)\n-40B6BA Compressed Size       00000000 (0)\n-40B6BE Uncompressed Size     00000000 (0)\n-40B6C2 Filename Length       002C (44)\n-40B6C4 Extra Length          0009 (9)\n-40B6C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40B6C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40B6F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40B6F4   Length              0005 (5)\n-40B6F6   Flags               01 (1) 'Modification'\n-40B6F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40B6FB PAYLOAD\n-\n-40BA91 DATA DESCRIPTOR       08074B50 (134695760)\n-40BA95 CRC                   8692FC93 (2257779859)\n-40BA99 Compressed Size       00000396 (918)\n-40BA9D Uncompressed Size     00000396 (918)\n-\n-40BAA1 LOCAL HEADER #1199    04034B50 (67324752)\n-40BAA5 Extract Zip Spec      14 (20) '2.0'\n-40BAA6 Extract OS            00 (0) 'MS-DOS'\n-40BAA7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40BAA9 Compression Method    0000 (0) 'Stored'\n-40BAAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40BAAF CRC                   00000000 (0)\n-40BAB3 Compressed Size       00000000 (0)\n-40BAB7 Uncompressed Size     00000000 (0)\n-40BABB Filename Length       0025 (37)\n-40BABD Extra Length          0009 (9)\n-40BABF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40BABF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40BAE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40BAE6   Length              0005 (5)\n-40BAE8   Flags               01 (1) 'Modification'\n-40BAE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40BAED PAYLOAD\n-\n-40BF39 DATA DESCRIPTOR       08074B50 (134695760)\n-40BF3D CRC                   51FB7003 (1375432707)\n-40BF41 Compressed Size       0000044C (1100)\n-40BF45 Uncompressed Size     0000044C (1100)\n-\n-40BF49 LOCAL HEADER #1200    04034B50 (67324752)\n-40BF4D Extract Zip Spec      14 (20) '2.0'\n-40BF4E Extract OS            00 (0) 'MS-DOS'\n-40BF4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40BF51 Compression Method    0000 (0) 'Stored'\n-40BF53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40BF57 CRC                   00000000 (0)\n-40BF5B Compressed Size       00000000 (0)\n-40BF5F Uncompressed Size     00000000 (0)\n-40BF63 Filename Length       002C (44)\n-40BF65 Extra Length          0009 (9)\n-40BF67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40BF67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40BF93 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40BF95   Length              0005 (5)\n-40BF97   Flags               01 (1) 'Modification'\n-40BF98   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40BF9C PAYLOAD\n-\n-40C489 DATA DESCRIPTOR       08074B50 (134695760)\n-40C48D CRC                   9DE5257E (2649040254)\n-40C491 Compressed Size       000004ED (1261)\n-40C495 Uncompressed Size     000004ED (1261)\n-\n-40C499 LOCAL HEADER #1201    04034B50 (67324752)\n-40C49D Extract Zip Spec      14 (20) '2.0'\n-40C49E Extract OS            00 (0) 'MS-DOS'\n-40C49F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40C4A1 Compression Method    0000 (0) 'Stored'\n-40C4A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40C4A7 CRC                   00000000 (0)\n-40C4AB Compressed Size       00000000 (0)\n-40C4AF Uncompressed Size     00000000 (0)\n-40C4B3 Filename Length       002C (44)\n-40C4B5 Extra Length          0009 (9)\n-40C4B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40C4B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40C4E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40C4E5   Length              0005 (5)\n-40C4E7   Flags               01 (1) 'Modification'\n-40C4E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40C4EC PAYLOAD\n-\n-40D230 DATA DESCRIPTOR       08074B50 (134695760)\n-40D234 CRC                   78905E9C (2022727324)\n-40D238 Compressed Size       00000D44 (3396)\n-40D23C Uncompressed Size     00000D44 (3396)\n-\n-40D240 LOCAL HEADER #1202    04034B50 (67324752)\n-40D244 Extract Zip Spec      14 (20) '2.0'\n-40D245 Extract OS            00 (0) 'MS-DOS'\n-40D246 General Purpose Flag  0000 (0)\n-40D248 Compression Method    0000 (0) 'Stored'\n-40D24A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40D24E CRC                   00000000 (0)\n-40D252 Compressed Size       00000000 (0)\n-40D256 Uncompressed Size     00000000 (0)\n-40D25A Filename Length       001F (31)\n-40D25C Extra Length          0009 (9)\n-40D25E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40D25E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40D27D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40D27F   Length              0005 (5)\n-40D281   Flags               01 (1) 'Modification'\n-40D282   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-40D286 LOCAL HEADER #1203    04034B50 (67324752)\n-40D28A Extract Zip Spec      14 (20) '2.0'\n-40D28B Extract OS            00 (0) 'MS-DOS'\n-40D28C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40D28E Compression Method    0000 (0) 'Stored'\n-40D290 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40D294 CRC                   00000000 (0)\n-40D298 Compressed Size       00000000 (0)\n-40D29C Uncompressed Size     00000000 (0)\n-40D2A0 Filename Length       0030 (48)\n-40D2A2 Extra Length          0009 (9)\n-40D2A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40D2A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40D2D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40D2D6   Length              0005 (5)\n-40D2D8   Flags               01 (1) 'Modification'\n-40D2D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40D2DD PAYLOAD\n-\n-40F62E DATA DESCRIPTOR       08074B50 (134695760)\n-40F632 CRC                   EA5FE743 (3932153667)\n-40F636 Compressed Size       00002351 (9041)\n-40F63A Uncompressed Size     00002351 (9041)\n-\n-40F63E LOCAL HEADER #1204    04034B50 (67324752)\n-40F642 Extract Zip Spec      14 (20) '2.0'\n-40F643 Extract OS            00 (0) 'MS-DOS'\n-40F644 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-40F646 Compression Method    0000 (0) 'Stored'\n-40F648 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-40F64C CRC                   00000000 (0)\n-40F650 Compressed Size       00000000 (0)\n-40F654 Uncompressed Size     00000000 (0)\n-40F658 Filename Length       0037 (55)\n-40F65A Extra Length          0009 (9)\n-40F65C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x40F65C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-40F693 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-40F695   Length              0005 (5)\n-40F697   Flags               01 (1) 'Modification'\n-40F698   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-40F69C PAYLOAD\n-\n-4101A1 DATA DESCRIPTOR       08074B50 (134695760)\n-4101A5 CRC                   8FE44697 (2414102167)\n-4101A9 Compressed Size       00000B05 (2821)\n-4101AD Uncompressed Size     00000B05 (2821)\n-\n-4101B1 LOCAL HEADER #1205    04034B50 (67324752)\n-4101B5 Extract Zip Spec      14 (20) '2.0'\n-4101B6 Extract OS            00 (0) 'MS-DOS'\n-4101B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4101B9 Compression Method    0000 (0) 'Stored'\n-4101BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4101BF CRC                   00000000 (0)\n-4101C3 Compressed Size       00000000 (0)\n-4101C7 Uncompressed Size     00000000 (0)\n-4101CB Filename Length       0031 (49)\n-4101CD Extra Length          0009 (9)\n-4101CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4101CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-410200 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-410202   Length              0005 (5)\n-410204   Flags               01 (1) 'Modification'\n-410205   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-410209 PAYLOAD\n-\n-412D57 DATA DESCRIPTOR       08074B50 (134695760)\n-412D5B CRC                   8F262250 (2401641040)\n-412D5F Compressed Size       00002B4E (11086)\n-412D63 Uncompressed Size     00002B4E (11086)\n-\n-412D67 LOCAL HEADER #1206    04034B50 (67324752)\n-412D6B Extract Zip Spec      14 (20) '2.0'\n-412D6C Extract OS            00 (0) 'MS-DOS'\n-412D6D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-412D6F Compression Method    0000 (0) 'Stored'\n-412D71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-412D75 CRC                   00000000 (0)\n-412D79 Compressed Size       00000000 (0)\n-412D7D Uncompressed Size     00000000 (0)\n-412D81 Filename Length       002E (46)\n-412D83 Extra Length          0009 (9)\n-412D85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x412D85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-412DB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-412DB5   Length              0005 (5)\n-412DB7   Flags               01 (1) 'Modification'\n-412DB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-412DBC PAYLOAD\n-\n-4144F0 DATA DESCRIPTOR       08074B50 (134695760)\n-4144F4 CRC                   DAB7FE63 (3669491299)\n-4144F8 Compressed Size       00001734 (5940)\n-4144FC Uncompressed Size     00001734 (5940)\n-\n-414500 LOCAL HEADER #1207    04034B50 (67324752)\n-414504 Extract Zip Spec      14 (20) '2.0'\n-414505 Extract OS            00 (0) 'MS-DOS'\n-414506 General Purpose Flag  0000 (0)\n-414508 Compression Method    0000 (0) 'Stored'\n-41450A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41450E CRC                   00000000 (0)\n-414512 Compressed Size       00000000 (0)\n-414516 Uncompressed Size     00000000 (0)\n-41451A Filename Length       0021 (33)\n-41451C Extra Length          0009 (9)\n-41451E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41451E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41453F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-414541   Length              0005 (5)\n-414543   Flags               01 (1) 'Modification'\n-414544   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-414548 LOCAL HEADER #1208    04034B50 (67324752)\n-41454C Extract Zip Spec      14 (20) '2.0'\n-41454D Extract OS            00 (0) 'MS-DOS'\n-41454E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-414550 Compression Method    0000 (0) 'Stored'\n-414552 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-414556 CRC                   00000000 (0)\n-41455A Compressed Size       00000000 (0)\n-41455E Uncompressed Size     00000000 (0)\n-414562 Filename Length       003C (60)\n-414564 Extra Length          0009 (9)\n-414566 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x414566: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4145A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4145A4   Length              0005 (5)\n-4145A6   Flags               01 (1) 'Modification'\n-4145A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4145AB PAYLOAD\n-\n-4158E1 DATA DESCRIPTOR       08074B50 (134695760)\n-4158E5 CRC                   FA4C7A14 (4199315988)\n-4158E9 Compressed Size       00001336 (4918)\n-4158ED Uncompressed Size     00001336 (4918)\n-\n-4158F1 LOCAL HEADER #1209    04034B50 (67324752)\n-4158F5 Extract Zip Spec      14 (20) '2.0'\n-4158F6 Extract OS            00 (0) 'MS-DOS'\n-4158F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4158F9 Compression Method    0000 (0) 'Stored'\n-4158FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4158FF CRC                   00000000 (0)\n-415903 Compressed Size       00000000 (0)\n-415907 Uncompressed Size     00000000 (0)\n-41590B Filename Length       003C (60)\n-41590D Extra Length          0009 (9)\n-41590F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41590F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41594B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41594D   Length              0005 (5)\n-41594F   Flags               01 (1) 'Modification'\n-415950   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-415954 PAYLOAD\n-\n-415DB4 DATA DESCRIPTOR       08074B50 (134695760)\n-415DB8 CRC                   9C73731D (2624811805)\n-415DBC Compressed Size       00000460 (1120)\n-415DC0 Uncompressed Size     00000460 (1120)\n-\n-415DC4 LOCAL HEADER #1210    04034B50 (67324752)\n-415DC8 Extract Zip Spec      14 (20) '2.0'\n-415DC9 Extract OS            00 (0) 'MS-DOS'\n-415DCA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-415DCC Compression Method    0000 (0) 'Stored'\n-415DCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-415DD2 CRC                   00000000 (0)\n-415DD6 Compressed Size       00000000 (0)\n-415DDA Uncompressed Size     00000000 (0)\n-415DDE Filename Length       0033 (51)\n-415DE0 Extra Length          0009 (9)\n-415DE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x415DE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-415E15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-415E17   Length              0005 (5)\n-415E19   Flags               01 (1) 'Modification'\n-415E1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-415E1E PAYLOAD\n-\n-417FF2 DATA DESCRIPTOR       08074B50 (134695760)\n-417FF6 CRC                   10FA9E81 (284860033)\n-417FFA Compressed Size       000021D4 (8660)\n-417FFE Uncompressed Size     000021D4 (8660)\n-\n-418002 LOCAL HEADER #1211    04034B50 (67324752)\n-418006 Extract Zip Spec      14 (20) '2.0'\n-418007 Extract OS            00 (0) 'MS-DOS'\n-418008 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41800A Compression Method    0000 (0) 'Stored'\n-41800C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-418010 CRC                   00000000 (0)\n-418014 Compressed Size       00000000 (0)\n-418018 Uncompressed Size     00000000 (0)\n-41801C Filename Length       003C (60)\n-41801E Extra Length          0009 (9)\n-418020 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x418020: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41805C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41805E   Length              0005 (5)\n-418060   Flags               01 (1) 'Modification'\n-418061   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-418065 PAYLOAD\n-\n-4184C5 DATA DESCRIPTOR       08074B50 (134695760)\n-4184C9 CRC                   A1A88F0D (2712178445)\n-4184CD Compressed Size       00000460 (1120)\n-4184D1 Uncompressed Size     00000460 (1120)\n-\n-4184D5 LOCAL HEADER #1212    04034B50 (67324752)\n-4184D9 Extract Zip Spec      14 (20) '2.0'\n-4184DA Extract OS            00 (0) 'MS-DOS'\n-4184DB General Purpose Flag  0000 (0)\n-4184DD Compression Method    0000 (0) 'Stored'\n-4184DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4184E3 CRC                   00000000 (0)\n-4184E7 Compressed Size       00000000 (0)\n-4184EB Uncompressed Size     00000000 (0)\n-4184EF Filename Length       0015 (21)\n-4184F1 Extra Length          0009 (9)\n-4184F3 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4184F3: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-418508 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41850A   Length              0005 (5)\n-41850C   Flags               01 (1) 'Modification'\n-41850D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-418511 LOCAL HEADER #1213    04034B50 (67324752)\n-418515 Extract Zip Spec      14 (20) '2.0'\n-418516 Extract OS            00 (0) 'MS-DOS'\n-418517 General Purpose Flag  0000 (0)\n-418519 Compression Method    0000 (0) 'Stored'\n-41851B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41851F CRC                   00000000 (0)\n-418523 Compressed Size       00000000 (0)\n-418527 Uncompressed Size     00000000 (0)\n-41852B Filename Length       001D (29)\n-41852D Extra Length          0009 (9)\n-41852F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41852F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41854C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41854E   Length              0005 (5)\n-418550   Flags               01 (1) 'Modification'\n-418551   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-418555 LOCAL HEADER #1214    04034B50 (67324752)\n-418559 Extract Zip Spec      14 (20) '2.0'\n-41855A Extract OS            00 (0) 'MS-DOS'\n-41855B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41855D Compression Method    0000 (0) 'Stored'\n-41855F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-418563 CRC                   00000000 (0)\n-418567 Compressed Size       00000000 (0)\n-41856B Uncompressed Size     00000000 (0)\n-41856F Filename Length       002D (45)\n-418571 Extra Length          0009 (9)\n-418573 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x418573: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4185A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4185A2   Length              0005 (5)\n-4185A4   Flags               01 (1) 'Modification'\n-4185A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4185A9 PAYLOAD\n-\n-4189A0 DATA DESCRIPTOR       08074B50 (134695760)\n-4189A4 CRC                   FE44AB9A (4265913242)\n-4189A8 Compressed Size       000003F7 (1015)\n-4189AC Uncompressed Size     000003F7 (1015)\n-\n-4189B0 LOCAL HEADER #1215    04034B50 (67324752)\n-4189B4 Extract Zip Spec      14 (20) '2.0'\n-4189B5 Extract OS            00 (0) 'MS-DOS'\n-4189B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4189B8 Compression Method    0000 (0) 'Stored'\n-4189BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4189BE CRC                   00000000 (0)\n-4189C2 Compressed Size       00000000 (0)\n-4189C6 Uncompressed Size     00000000 (0)\n-4189CA Filename Length       0030 (48)\n-4189CC Extra Length          0009 (9)\n-4189CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4189CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4189FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-418A00   Length              0005 (5)\n-418A02   Flags               01 (1) 'Modification'\n-418A03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-418A07 PAYLOAD\n-\n-419287 DATA DESCRIPTOR       08074B50 (134695760)\n-41928B CRC                   C783A617 (3347293719)\n-41928F Compressed Size       00000880 (2176)\n-419293 Uncompressed Size     00000880 (2176)\n-\n-419297 LOCAL HEADER #1216    04034B50 (67324752)\n-41929B Extract Zip Spec      14 (20) '2.0'\n-41929C Extract OS            00 (0) 'MS-DOS'\n-41929D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41929F Compression Method    0000 (0) 'Stored'\n-4192A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4192A5 CRC                   00000000 (0)\n-4192A9 Compressed Size       00000000 (0)\n-4192AD Uncompressed Size     00000000 (0)\n-4192B1 Filename Length       0037 (55)\n-4192B3 Extra Length          0009 (9)\n-4192B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4192B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4192EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4192EE   Length              0005 (5)\n-4192F0   Flags               01 (1) 'Modification'\n-4192F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4192F5 PAYLOAD\n-\n-41979B DATA DESCRIPTOR       08074B50 (134695760)\n-41979F CRC                   F2C44151 (4072948049)\n-4197A3 Compressed Size       000004A6 (1190)\n-4197A7 Uncompressed Size     000004A6 (1190)\n-\n-4197AB LOCAL HEADER #1217    04034B50 (67324752)\n-4197AF Extract Zip Spec      14 (20) '2.0'\n-4197B0 Extract OS            00 (0) 'MS-DOS'\n-4197B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4197B3 Compression Method    0000 (0) 'Stored'\n-4197B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4197B9 CRC                   00000000 (0)\n-4197BD Compressed Size       00000000 (0)\n-4197C1 Uncompressed Size     00000000 (0)\n-4197C5 Filename Length       0031 (49)\n-4197C7 Extra Length          0009 (9)\n-4197C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4197C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4197FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4197FC   Length              0005 (5)\n-4197FE   Flags               01 (1) 'Modification'\n-4197FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-419803 PAYLOAD\n-\n-419CAB DATA DESCRIPTOR       08074B50 (134695760)\n-419CAF CRC                   D40E78F4 (3557718260)\n-419CB3 Compressed Size       000004A8 (1192)\n-419CB7 Uncompressed Size     000004A8 (1192)\n-\n-419CBB LOCAL HEADER #1218    04034B50 (67324752)\n-419CBF Extract Zip Spec      14 (20) '2.0'\n-419CC0 Extract OS            00 (0) 'MS-DOS'\n-419CC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-419CC3 Compression Method    0000 (0) 'Stored'\n-419CC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-419CC9 CRC                   00000000 (0)\n-419CCD Compressed Size       00000000 (0)\n-419CD1 Uncompressed Size     00000000 (0)\n-419CD5 Filename Length       0038 (56)\n-419CD7 Extra Length          0009 (9)\n-419CD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x419CD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-419D11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-419D13   Length              0005 (5)\n-419D15   Flags               01 (1) 'Modification'\n-419D16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-419D1A PAYLOAD\n-\n-41A337 DATA DESCRIPTOR       08074B50 (134695760)\n-41A33B CRC                   2A63E263 (711189091)\n-41A33F Compressed Size       0000061D (1565)\n-41A343 Uncompressed Size     0000061D (1565)\n-\n-41A347 LOCAL HEADER #1219    04034B50 (67324752)\n-41A34B Extract Zip Spec      14 (20) '2.0'\n-41A34C Extract OS            00 (0) 'MS-DOS'\n-41A34D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41A34F Compression Method    0000 (0) 'Stored'\n-41A351 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41A355 CRC                   00000000 (0)\n-41A359 Compressed Size       00000000 (0)\n-41A35D Uncompressed Size     00000000 (0)\n-41A361 Filename Length       0038 (56)\n-41A363 Extra Length          0009 (9)\n-41A365 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41A365: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41A39D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41A39F   Length              0005 (5)\n-41A3A1   Flags               01 (1) 'Modification'\n-41A3A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41A3A6 PAYLOAD\n-\n-41A7A6 DATA DESCRIPTOR       08074B50 (134695760)\n-41A7AA CRC                   D473D979 (3564362105)\n-41A7AE Compressed Size       00000400 (1024)\n-41A7B2 Uncompressed Size     00000400 (1024)\n-\n-41A7B6 LOCAL HEADER #1220    04034B50 (67324752)\n-41A7BA Extract Zip Spec      14 (20) '2.0'\n-41A7BB Extract OS            00 (0) 'MS-DOS'\n-41A7BC General Purpose Flag  0000 (0)\n-41A7BE Compression Method    0000 (0) 'Stored'\n-41A7C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41A7C4 CRC                   00000000 (0)\n-41A7C8 Compressed Size       00000000 (0)\n-41A7CC Uncompressed Size     00000000 (0)\n-41A7D0 Filename Length       0028 (40)\n-41A7D2 Extra Length          0009 (9)\n-41A7D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41A7D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41A7FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41A7FE   Length              0005 (5)\n-41A800   Flags               01 (1) 'Modification'\n-41A801   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-41A805 LOCAL HEADER #1221    04034B50 (67324752)\n-41A809 Extract Zip Spec      14 (20) '2.0'\n-41A80A Extract OS            00 (0) 'MS-DOS'\n-41A80B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41A80D Compression Method    0000 (0) 'Stored'\n-41A80F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41A813 CRC                   00000000 (0)\n-41A817 Compressed Size       00000000 (0)\n-41A81B Uncompressed Size     00000000 (0)\n-41A81F Filename Length       0030 (48)\n-41A821 Extra Length          0009 (9)\n-41A823 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41A823: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41A853 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41A855   Length              0005 (5)\n-41A857   Flags               01 (1) 'Modification'\n-41A858   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41A85C PAYLOAD\n-\n-41AEA3 DATA DESCRIPTOR       08074B50 (134695760)\n-41AEA7 CRC                   45D6532E (1171673902)\n-41AEAB Compressed Size       00000647 (1607)\n-41AEAF Uncompressed Size     00000647 (1607)\n-\n-41AEB3 LOCAL HEADER #1222    04034B50 (67324752)\n-41AEB7 Extract Zip Spec      14 (20) '2.0'\n-41AEB8 Extract OS            00 (0) 'MS-DOS'\n-41AEB9 General Purpose Flag  0000 (0)\n-41AEBB Compression Method    0000 (0) 'Stored'\n-41AEBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41AEC1 CRC                   00000000 (0)\n-41AEC5 Compressed Size       00000000 (0)\n-41AEC9 Uncompressed Size     00000000 (0)\n-41AECD Filename Length       0025 (37)\n-41AECF Extra Length          0009 (9)\n-41AED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41AED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41AEF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41AEF8   Length              0005 (5)\n-41AEFA   Flags               01 (1) 'Modification'\n-41AEFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-41AEFF LOCAL HEADER #1223    04034B50 (67324752)\n-41AF03 Extract Zip Spec      14 (20) '2.0'\n-41AF04 Extract OS            00 (0) 'MS-DOS'\n-41AF05 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41AF07 Compression Method    0000 (0) 'Stored'\n-41AF09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41AF0D CRC                   00000000 (0)\n-41AF11 Compressed Size       00000000 (0)\n-41AF15 Uncompressed Size     00000000 (0)\n-41AF19 Filename Length       003C (60)\n-41AF1B Extra Length          0009 (9)\n-41AF1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41AF1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41AF59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41AF5B   Length              0005 (5)\n-41AF5D   Flags               01 (1) 'Modification'\n-41AF5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41AF62 PAYLOAD\n-\n-41BEF5 DATA DESCRIPTOR       08074B50 (134695760)\n-41BEF9 CRC                   D812ECFA (3625118970)\n-41BEFD Compressed Size       00000F93 (3987)\n-41BF01 Uncompressed Size     00000F93 (3987)\n-\n-41BF05 LOCAL HEADER #1224    04034B50 (67324752)\n-41BF09 Extract Zip Spec      14 (20) '2.0'\n-41BF0A Extract OS            00 (0) 'MS-DOS'\n-41BF0B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41BF0D Compression Method    0000 (0) 'Stored'\n-41BF0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41BF13 CRC                   00000000 (0)\n-41BF17 Compressed Size       00000000 (0)\n-41BF1B Uncompressed Size     00000000 (0)\n-41BF1F Filename Length       003E (62)\n-41BF21 Extra Length          0009 (9)\n-41BF23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41BF23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41BF61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41BF63   Length              0005 (5)\n-41BF65   Flags               01 (1) 'Modification'\n-41BF66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41BF6A PAYLOAD\n-\n-41C627 DATA DESCRIPTOR       08074B50 (134695760)\n-41C62B CRC                   E1096065 (3775488101)\n-41C62F Compressed Size       000006BD (1725)\n-41C633 Uncompressed Size     000006BD (1725)\n-\n-41C637 LOCAL HEADER #1225    04034B50 (67324752)\n-41C63B Extract Zip Spec      14 (20) '2.0'\n-41C63C Extract OS            00 (0) 'MS-DOS'\n-41C63D General Purpose Flag  0000 (0)\n-41C63F Compression Method    0000 (0) 'Stored'\n-41C641 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41C645 CRC                   00000000 (0)\n-41C649 Compressed Size       00000000 (0)\n-41C64D Uncompressed Size     00000000 (0)\n-41C651 Filename Length       0022 (34)\n-41C653 Extra Length          0009 (9)\n-41C655 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41C655: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41C677 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41C679   Length              0005 (5)\n-41C67B   Flags               01 (1) 'Modification'\n-41C67C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-41C680 LOCAL HEADER #1226    04034B50 (67324752)\n-41C684 Extract Zip Spec      14 (20) '2.0'\n-41C685 Extract OS            00 (0) 'MS-DOS'\n-41C686 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41C688 Compression Method    0000 (0) 'Stored'\n-41C68A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41C68E CRC                   00000000 (0)\n-41C692 Compressed Size       00000000 (0)\n-41C696 Uncompressed Size     00000000 (0)\n-41C69A Filename Length       002B (43)\n-41C69C Extra Length          0009 (9)\n-41C69E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41C69E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41C6C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41C6CB   Length              0005 (5)\n-41C6CD   Flags               01 (1) 'Modification'\n-41C6CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41C6D2 PAYLOAD\n-\n-41D556 DATA DESCRIPTOR       08074B50 (134695760)\n-41D55A CRC                   86EEED41 (2263805249)\n-41D55E Compressed Size       00000E84 (3716)\n-41D562 Uncompressed Size     00000E84 (3716)\n-\n-41D566 LOCAL HEADER #1227    04034B50 (67324752)\n-41D56A Extract Zip Spec      14 (20) '2.0'\n-41D56B Extract OS            00 (0) 'MS-DOS'\n-41D56C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41D56E Compression Method    0000 (0) 'Stored'\n-41D570 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41D574 CRC                   00000000 (0)\n-41D578 Compressed Size       00000000 (0)\n-41D57C Uncompressed Size     00000000 (0)\n-41D580 Filename Length       0029 (41)\n-41D582 Extra Length          0009 (9)\n-41D584 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41D584: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41D5AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41D5AF   Length              0005 (5)\n-41D5B1   Flags               01 (1) 'Modification'\n-41D5B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41D5B6 PAYLOAD\n-\n-41E2EE DATA DESCRIPTOR       08074B50 (134695760)\n-41E2F2 CRC                   1E97BBCE (513260494)\n-41E2F6 Compressed Size       00000D38 (3384)\n-41E2FA Uncompressed Size     00000D38 (3384)\n-\n-41E2FE LOCAL HEADER #1228    04034B50 (67324752)\n-41E302 Extract Zip Spec      14 (20) '2.0'\n-41E303 Extract OS            00 (0) 'MS-DOS'\n-41E304 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41E306 Compression Method    0000 (0) 'Stored'\n-41E308 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41E30C CRC                   00000000 (0)\n-41E310 Compressed Size       00000000 (0)\n-41E314 Uncompressed Size     00000000 (0)\n-41E318 Filename Length       002E (46)\n-41E31A Extra Length          0009 (9)\n-41E31C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41E31C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41E34A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41E34C   Length              0005 (5)\n-41E34E   Flags               01 (1) 'Modification'\n-41E34F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41E353 PAYLOAD\n-\n-41F055 DATA DESCRIPTOR       08074B50 (134695760)\n-41F059 CRC                   5DD1BF6F (1574027119)\n-41F05D Compressed Size       00000D02 (3330)\n-41F061 Uncompressed Size     00000D02 (3330)\n-\n-41F065 LOCAL HEADER #1229    04034B50 (67324752)\n-41F069 Extract Zip Spec      14 (20) '2.0'\n-41F06A Extract OS            00 (0) 'MS-DOS'\n-41F06B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41F06D Compression Method    0000 (0) 'Stored'\n-41F06F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41F073 CRC                   00000000 (0)\n-41F077 Compressed Size       00000000 (0)\n-41F07B Uncompressed Size     00000000 (0)\n-41F07F Filename Length       002D (45)\n-41F081 Extra Length          0009 (9)\n-41F083 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41F083: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41F0B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41F0B2   Length              0005 (5)\n-41F0B4   Flags               01 (1) 'Modification'\n-41F0B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41F0B9 PAYLOAD\n-\n-41FDEE DATA DESCRIPTOR       08074B50 (134695760)\n-41FDF2 CRC                   677CD800 (1736235008)\n-41FDF6 Compressed Size       00000D35 (3381)\n-41FDFA Uncompressed Size     00000D35 (3381)\n-\n-41FDFE LOCAL HEADER #1230    04034B50 (67324752)\n-41FE02 Extract Zip Spec      14 (20) '2.0'\n-41FE03 Extract OS            00 (0) 'MS-DOS'\n-41FE04 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-41FE06 Compression Method    0000 (0) 'Stored'\n-41FE08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-41FE0C CRC                   00000000 (0)\n-41FE10 Compressed Size       00000000 (0)\n-41FE14 Uncompressed Size     00000000 (0)\n-41FE18 Filename Length       0036 (54)\n-41FE1A Extra Length          0009 (9)\n-41FE1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x41FE1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-41FE52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-41FE54   Length              0005 (5)\n-41FE56   Flags               01 (1) 'Modification'\n-41FE57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-41FE5B PAYLOAD\n-\n-42098B DATA DESCRIPTOR       08074B50 (134695760)\n-42098F CRC                   15091C1F (352918559)\n-420993 Compressed Size       00000B30 (2864)\n-420997 Uncompressed Size     00000B30 (2864)\n-\n-42099B LOCAL HEADER #1231    04034B50 (67324752)\n-42099F Extract Zip Spec      14 (20) '2.0'\n-4209A0 Extract OS            00 (0) 'MS-DOS'\n-4209A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4209A3 Compression Method    0000 (0) 'Stored'\n-4209A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4209A9 CRC                   00000000 (0)\n-4209AD Compressed Size       00000000 (0)\n-4209B1 Uncompressed Size     00000000 (0)\n-4209B5 Filename Length       002B (43)\n-4209B7 Extra Length          0009 (9)\n-4209B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4209B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4209E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4209E6   Length              0005 (5)\n-4209E8   Flags               01 (1) 'Modification'\n-4209E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4209ED PAYLOAD\n-\n-420F06 DATA DESCRIPTOR       08074B50 (134695760)\n-420F0A CRC                   AADA64B2 (2866439346)\n-420F0E Compressed Size       00000519 (1305)\n-420F12 Uncompressed Size     00000519 (1305)\n-\n-420F16 LOCAL HEADER #1232    04034B50 (67324752)\n-420F1A Extract Zip Spec      14 (20) '2.0'\n-420F1B Extract OS            00 (0) 'MS-DOS'\n-420F1C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-420F1E Compression Method    0000 (0) 'Stored'\n-420F20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-420F24 CRC                   00000000 (0)\n-420F28 Compressed Size       00000000 (0)\n-420F2C Uncompressed Size     00000000 (0)\n-420F30 Filename Length       002C (44)\n-420F32 Extra Length          0009 (9)\n-420F34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x420F34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-420F60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-420F62   Length              0005 (5)\n-420F64   Flags               01 (1) 'Modification'\n-420F65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-420F69 PAYLOAD\n-\n-421FED DATA DESCRIPTOR       08074B50 (134695760)\n-421FF1 CRC                   CD1091C2 (3440415170)\n-421FF5 Compressed Size       00001084 (4228)\n-421FF9 Uncompressed Size     00001084 (4228)\n-\n-421FFD LOCAL HEADER #1233    04034B50 (67324752)\n-422001 Extract Zip Spec      14 (20) '2.0'\n-422002 Extract OS            00 (0) 'MS-DOS'\n-422003 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-422005 Compression Method    0000 (0) 'Stored'\n-422007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42200B CRC                   00000000 (0)\n-42200F Compressed Size       00000000 (0)\n-422013 Uncompressed Size     00000000 (0)\n-422017 Filename Length       002E (46)\n-422019 Extra Length          0009 (9)\n-42201B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42201B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-422049 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42204B   Length              0005 (5)\n-42204D   Flags               01 (1) 'Modification'\n-42204E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-422052 PAYLOAD\n-\n-422652 DATA DESCRIPTOR       08074B50 (134695760)\n-422656 CRC                   CA6DC12E (3396190510)\n-42265A Compressed Size       00000600 (1536)\n-42265E Uncompressed Size     00000600 (1536)\n-\n-422662 LOCAL HEADER #1234    04034B50 (67324752)\n-422666 Extract Zip Spec      14 (20) '2.0'\n-422667 Extract OS            00 (0) 'MS-DOS'\n-422668 General Purpose Flag  0000 (0)\n-42266A Compression Method    0000 (0) 'Stored'\n-42266C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-422670 CRC                   00000000 (0)\n-422674 Compressed Size       00000000 (0)\n-422678 Uncompressed Size     00000000 (0)\n-42267C Filename Length       0022 (34)\n-42267E Extra Length          0009 (9)\n-422680 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x422680: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4226A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4226A4   Length              0005 (5)\n-4226A6   Flags               01 (1) 'Modification'\n-4226A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4226AB LOCAL HEADER #1235    04034B50 (67324752)\n-4226AF Extract Zip Spec      14 (20) '2.0'\n-4226B0 Extract OS            00 (0) 'MS-DOS'\n-4226B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4226B3 Compression Method    0000 (0) 'Stored'\n-4226B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4226B9 CRC                   00000000 (0)\n-4226BD Compressed Size       00000000 (0)\n-4226C1 Uncompressed Size     00000000 (0)\n-4226C5 Filename Length       0034 (52)\n-4226C7 Extra Length          0009 (9)\n-4226C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4226C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4226FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4226FF   Length              0005 (5)\n-422701   Flags               01 (1) 'Modification'\n-422702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-422706 PAYLOAD\n-\n-422F99 DATA DESCRIPTOR       08074B50 (134695760)\n-422F9D CRC                   8BEA30C0 (2347380928)\n-422FA1 Compressed Size       00000893 (2195)\n-422FA5 Uncompressed Size     00000893 (2195)\n-\n-422FA9 LOCAL HEADER #1236    04034B50 (67324752)\n-422FAD Extract Zip Spec      14 (20) '2.0'\n-422FAE Extract OS            00 (0) 'MS-DOS'\n-422FAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-422FB1 Compression Method    0000 (0) 'Stored'\n-422FB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-422FB7 CRC                   00000000 (0)\n-422FBB Compressed Size       00000000 (0)\n-422FBF Uncompressed Size     00000000 (0)\n-422FC3 Filename Length       0038 (56)\n-422FC5 Extra Length          0009 (9)\n-422FC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x422FC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-422FFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-423001   Length              0005 (5)\n-423003   Flags               01 (1) 'Modification'\n-423004   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-423008 PAYLOAD\n-\n-423AA5 DATA DESCRIPTOR       08074B50 (134695760)\n-423AA9 CRC                   9A0D91FA (2584580602)\n-423AAD Compressed Size       00000A9D (2717)\n-423AB1 Uncompressed Size     00000A9D (2717)\n-\n-423AB5 LOCAL HEADER #1237    04034B50 (67324752)\n-423AB9 Extract Zip Spec      14 (20) '2.0'\n-423ABA Extract OS            00 (0) 'MS-DOS'\n-423ABB General Purpose Flag  0000 (0)\n-423ABD Compression Method    0000 (0) 'Stored'\n-423ABF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-423AC3 CRC                   00000000 (0)\n-423AC7 Compressed Size       00000000 (0)\n-423ACB Uncompressed Size     00000000 (0)\n-423ACF Filename Length       001C (28)\n-423AD1 Extra Length          0009 (9)\n-423AD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x423AD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-423AEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-423AF1   Length              0005 (5)\n-423AF3   Flags               01 (1) 'Modification'\n-423AF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-423AF8 LOCAL HEADER #1238    04034B50 (67324752)\n-423AFC Extract Zip Spec      14 (20) '2.0'\n-423AFD Extract OS            00 (0) 'MS-DOS'\n-423AFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-423B00 Compression Method    0000 (0) 'Stored'\n-423B02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-423B06 CRC                   00000000 (0)\n-423B0A Compressed Size       00000000 (0)\n-423B0E Uncompressed Size     00000000 (0)\n-423B12 Filename Length       002D (45)\n-423B14 Extra Length          0009 (9)\n-423B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x423B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-423B43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-423B45   Length              0005 (5)\n-423B47   Flags               01 (1) 'Modification'\n-423B48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-423B4C PAYLOAD\n-\n-423F2A DATA DESCRIPTOR       08074B50 (134695760)\n-423F2E CRC                   93C23403 (2478978051)\n-423F32 Compressed Size       000003DE (990)\n-423F36 Uncompressed Size     000003DE (990)\n-\n-423F3A LOCAL HEADER #1239    04034B50 (67324752)\n-423F3E Extract Zip Spec      14 (20) '2.0'\n-423F3F Extract OS            00 (0) 'MS-DOS'\n-423F40 General Purpose Flag  0000 (0)\n-423F42 Compression Method    0000 (0) 'Stored'\n-423F44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-423F48 CRC                   00000000 (0)\n-423F4C Compressed Size       00000000 (0)\n-423F50 Uncompressed Size     00000000 (0)\n-423F54 Filename Length       001C (28)\n-423F56 Extra Length          0009 (9)\n-423F58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x423F58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-423F74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-423F76   Length              0005 (5)\n-423F78   Flags               01 (1) 'Modification'\n-423F79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-423F7D LOCAL HEADER #1240    04034B50 (67324752)\n-423F81 Extract Zip Spec      14 (20) '2.0'\n-423F82 Extract OS            00 (0) 'MS-DOS'\n-423F83 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-423F85 Compression Method    0000 (0) 'Stored'\n-423F87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-423F8B CRC                   00000000 (0)\n-423F8F Compressed Size       00000000 (0)\n-423F93 Uncompressed Size     00000000 (0)\n-423F97 Filename Length       0034 (52)\n-423F99 Extra Length          0009 (9)\n-423F9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x423F9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-423FCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-423FD1   Length              0005 (5)\n-423FD3   Flags               01 (1) 'Modification'\n-423FD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-423FD8 PAYLOAD\n-\n-424AE8 DATA DESCRIPTOR       08074B50 (134695760)\n-424AEC CRC                   FA05AB13 (4194675475)\n-424AF0 Compressed Size       00000B10 (2832)\n-424AF4 Uncompressed Size     00000B10 (2832)\n-\n-424AF8 LOCAL HEADER #1241    04034B50 (67324752)\n-424AFC Extract Zip Spec      14 (20) '2.0'\n-424AFD Extract OS            00 (0) 'MS-DOS'\n-424AFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-424B00 Compression Method    0000 (0) 'Stored'\n-424B02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-424B06 CRC                   00000000 (0)\n-424B0A Compressed Size       00000000 (0)\n-424B0E Uncompressed Size     00000000 (0)\n-424B12 Filename Length       0033 (51)\n-424B14 Extra Length          0009 (9)\n-424B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x424B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-424B49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-424B4B   Length              0005 (5)\n-424B4D   Flags               01 (1) 'Modification'\n-424B4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-424B52 PAYLOAD\n-\n-4265B7 DATA DESCRIPTOR       08074B50 (134695760)\n-4265BB CRC                   4A88912B (1250464043)\n-4265BF Compressed Size       00001A65 (6757)\n-4265C3 Uncompressed Size     00001A65 (6757)\n-\n-4265C7 LOCAL HEADER #1242    04034B50 (67324752)\n-4265CB Extract Zip Spec      14 (20) '2.0'\n-4265CC Extract OS            00 (0) 'MS-DOS'\n-4265CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4265CF Compression Method    0000 (0) 'Stored'\n-4265D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4265D5 CRC                   00000000 (0)\n-4265D9 Compressed Size       00000000 (0)\n-4265DD Uncompressed Size     00000000 (0)\n-4265E1 Filename Length       0035 (53)\n-4265E3 Extra Length          0009 (9)\n-4265E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4265E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42661A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42661C   Length              0005 (5)\n-42661E   Flags               01 (1) 'Modification'\n-42661F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-426623 PAYLOAD\n-\n-426D12 DATA DESCRIPTOR       08074B50 (134695760)\n-426D16 CRC                   0FA20D48 (262278472)\n-426D1A Compressed Size       000006EF (1775)\n-426D1E Uncompressed Size     000006EF (1775)\n-\n-426D22 LOCAL HEADER #1243    04034B50 (67324752)\n-426D26 Extract Zip Spec      14 (20) '2.0'\n-426D27 Extract OS            00 (0) 'MS-DOS'\n-426D28 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-426D2A Compression Method    0000 (0) 'Stored'\n-426D2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-426D30 CRC                   00000000 (0)\n-426D34 Compressed Size       00000000 (0)\n-426D38 Uncompressed Size     00000000 (0)\n-426D3C Filename Length       0034 (52)\n-426D3E Extra Length          0009 (9)\n-426D40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x426D40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-426D74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-426D76   Length              0005 (5)\n-426D78   Flags               01 (1) 'Modification'\n-426D79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-426D7D PAYLOAD\n-\n-429852 DATA DESCRIPTOR       08074B50 (134695760)\n-429856 CRC                   27D9ECF0 (668593392)\n-42985A Compressed Size       00002AD5 (10965)\n-42985E Uncompressed Size     00002AD5 (10965)\n-\n-429862 LOCAL HEADER #1244    04034B50 (67324752)\n-429866 Extract Zip Spec      14 (20) '2.0'\n-429867 Extract OS            00 (0) 'MS-DOS'\n-429868 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42986A Compression Method    0000 (0) 'Stored'\n-42986C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-429870 CRC                   00000000 (0)\n-429874 Compressed Size       00000000 (0)\n-429878 Uncompressed Size     00000000 (0)\n-42987C Filename Length       0032 (50)\n-42987E Extra Length          0009 (9)\n-429880 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x429880: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4298B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4298B4   Length              0005 (5)\n-4298B6   Flags               01 (1) 'Modification'\n-4298B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4298BB PAYLOAD\n-\n-42B2D7 DATA DESCRIPTOR       08074B50 (134695760)\n-42B2DB CRC                   540DE20D (1410195981)\n-42B2DF Compressed Size       00001A1C (6684)\n-42B2E3 Uncompressed Size     00001A1C (6684)\n-\n-42B2E7 LOCAL HEADER #1245    04034B50 (67324752)\n-42B2EB Extract Zip Spec      14 (20) '2.0'\n-42B2EC Extract OS            00 (0) 'MS-DOS'\n-42B2ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42B2EF Compression Method    0000 (0) 'Stored'\n-42B2F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42B2F5 CRC                   00000000 (0)\n-42B2F9 Compressed Size       00000000 (0)\n-42B2FD Uncompressed Size     00000000 (0)\n-42B301 Filename Length       0031 (49)\n-42B303 Extra Length          0009 (9)\n-42B305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42B305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42B336 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42B338   Length              0005 (5)\n-42B33A   Flags               01 (1) 'Modification'\n-42B33B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42B33F PAYLOAD\n-\n-42C2BB DATA DESCRIPTOR       08074B50 (134695760)\n-42C2BF CRC                   256F6EAD (628059821)\n-42C2C3 Compressed Size       00000F7C (3964)\n-42C2C7 Uncompressed Size     00000F7C (3964)\n-\n-42C2CB LOCAL HEADER #1246    04034B50 (67324752)\n-42C2CF Extract Zip Spec      14 (20) '2.0'\n-42C2D0 Extract OS            00 (0) 'MS-DOS'\n-42C2D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42C2D3 Compression Method    0000 (0) 'Stored'\n-42C2D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42C2D9 CRC                   00000000 (0)\n-42C2DD Compressed Size       00000000 (0)\n-42C2E1 Uncompressed Size     00000000 (0)\n-42C2E5 Filename Length       0032 (50)\n-42C2E7 Extra Length          0009 (9)\n-42C2E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42C2E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42C31B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42C31D   Length              0005 (5)\n-42C31F   Flags               01 (1) 'Modification'\n-42C320   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42C324 PAYLOAD\n-\n-42D229 DATA DESCRIPTOR       08074B50 (134695760)\n-42D22D CRC                   41EC82BB (1106019003)\n-42D231 Compressed Size       00000F05 (3845)\n-42D235 Uncompressed Size     00000F05 (3845)\n-\n-42D239 LOCAL HEADER #1247    04034B50 (67324752)\n-42D23D Extract Zip Spec      14 (20) '2.0'\n-42D23E Extract OS            00 (0) 'MS-DOS'\n-42D23F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42D241 Compression Method    0000 (0) 'Stored'\n-42D243 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42D247 CRC                   00000000 (0)\n-42D24B Compressed Size       00000000 (0)\n-42D24F Uncompressed Size     00000000 (0)\n-42D253 Filename Length       0034 (52)\n-42D255 Extra Length          0009 (9)\n-42D257 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42D257: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42D28B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42D28D   Length              0005 (5)\n-42D28F   Flags               01 (1) 'Modification'\n-42D290   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42D294 PAYLOAD\n-\n-42DD6B DATA DESCRIPTOR       08074B50 (134695760)\n-42DD6F CRC                   C71A64BF (3340395711)\n-42DD73 Compressed Size       00000AD7 (2775)\n-42DD77 Uncompressed Size     00000AD7 (2775)\n-\n-42DD7B LOCAL HEADER #1248    04034B50 (67324752)\n-42DD7F Extract Zip Spec      14 (20) '2.0'\n-42DD80 Extract OS            00 (0) 'MS-DOS'\n-42DD81 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42DD83 Compression Method    0000 (0) 'Stored'\n-42DD85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42DD89 CRC                   00000000 (0)\n-42DD8D Compressed Size       00000000 (0)\n-42DD91 Uncompressed Size     00000000 (0)\n-42DD95 Filename Length       0036 (54)\n-42DD97 Extra Length          0009 (9)\n-42DD99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42DD99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42DDCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42DDD1   Length              0005 (5)\n-42DDD3   Flags               01 (1) 'Modification'\n-42DDD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42DDD8 PAYLOAD\n-\n-42E860 DATA DESCRIPTOR       08074B50 (134695760)\n-42E864 CRC                   ED50455A (3981460826)\n-42E868 Compressed Size       00000A88 (2696)\n-42E86C Uncompressed Size     00000A88 (2696)\n-\n-42E870 LOCAL HEADER #1249    04034B50 (67324752)\n-42E874 Extract Zip Spec      14 (20) '2.0'\n-42E875 Extract OS            00 (0) 'MS-DOS'\n-42E876 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42E878 Compression Method    0000 (0) 'Stored'\n-42E87A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42E87E CRC                   00000000 (0)\n-42E882 Compressed Size       00000000 (0)\n-42E886 Uncompressed Size     00000000 (0)\n-42E88A Filename Length       0033 (51)\n-42E88C Extra Length          0009 (9)\n-42E88E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42E88E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42E8C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42E8C3   Length              0005 (5)\n-42E8C5   Flags               01 (1) 'Modification'\n-42E8C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42E8CA PAYLOAD\n-\n-42F885 DATA DESCRIPTOR       08074B50 (134695760)\n-42F889 CRC                   BA485F30 (3125305136)\n-42F88D Compressed Size       00000FBB (4027)\n-42F891 Uncompressed Size     00000FBB (4027)\n-\n-42F895 LOCAL HEADER #1250    04034B50 (67324752)\n-42F899 Extract Zip Spec      14 (20) '2.0'\n-42F89A Extract OS            00 (0) 'MS-DOS'\n-42F89B General Purpose Flag  0000 (0)\n-42F89D Compression Method    0000 (0) 'Stored'\n-42F89F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42F8A3 CRC                   00000000 (0)\n-42F8A7 Compressed Size       00000000 (0)\n-42F8AB Uncompressed Size     00000000 (0)\n-42F8AF Filename Length       001E (30)\n-42F8B1 Extra Length          0009 (9)\n-42F8B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42F8B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42F8D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42F8D3   Length              0005 (5)\n-42F8D5   Flags               01 (1) 'Modification'\n-42F8D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-42F8DA LOCAL HEADER #1251    04034B50 (67324752)\n-42F8DE Extract Zip Spec      14 (20) '2.0'\n-42F8DF Extract OS            00 (0) 'MS-DOS'\n-42F8E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-42F8E2 Compression Method    0000 (0) 'Stored'\n-42F8E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-42F8E8 CRC                   00000000 (0)\n-42F8EC Compressed Size       00000000 (0)\n-42F8F0 Uncompressed Size     00000000 (0)\n-42F8F4 Filename Length       0035 (53)\n-42F8F6 Extra Length          0009 (9)\n-42F8F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x42F8F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-42F92D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-42F92F   Length              0005 (5)\n-42F931   Flags               01 (1) 'Modification'\n-42F932   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-42F936 PAYLOAD\n-\n-430A09 DATA DESCRIPTOR       08074B50 (134695760)\n-430A0D CRC                   72812E46 (1921068614)\n-430A11 Compressed Size       000010D3 (4307)\n-430A15 Uncompressed Size     000010D3 (4307)\n-\n-430A19 LOCAL HEADER #1252    04034B50 (67324752)\n-430A1D Extract Zip Spec      14 (20) '2.0'\n-430A1E Extract OS            00 (0) 'MS-DOS'\n-430A1F General Purpose Flag  0000 (0)\n-430A21 Compression Method    0000 (0) 'Stored'\n-430A23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-430A27 CRC                   00000000 (0)\n-430A2B Compressed Size       00000000 (0)\n-430A2F Uncompressed Size     00000000 (0)\n-430A33 Filename Length       001C (28)\n-430A35 Extra Length          0009 (9)\n-430A37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x430A37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-430A53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-430A55   Length              0005 (5)\n-430A57   Flags               01 (1) 'Modification'\n-430A58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-430A5C LOCAL HEADER #1253    04034B50 (67324752)\n-430A60 Extract Zip Spec      14 (20) '2.0'\n-430A61 Extract OS            00 (0) 'MS-DOS'\n-430A62 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-430A64 Compression Method    0000 (0) 'Stored'\n-430A66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-430A6A CRC                   00000000 (0)\n-430A6E Compressed Size       00000000 (0)\n-430A72 Uncompressed Size     00000000 (0)\n-430A76 Filename Length       002A (42)\n-430A78 Extra Length          0009 (9)\n-430A7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x430A7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-430AA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-430AA6   Length              0005 (5)\n-430AA8   Flags               01 (1) 'Modification'\n-430AA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-430AAD PAYLOAD\n-\n-430F92 DATA DESCRIPTOR       08074B50 (134695760)\n-430F96 CRC                   4C3B1439 (1278940217)\n-430F9A Compressed Size       000004E5 (1253)\n-430F9E Uncompressed Size     000004E5 (1253)\n-\n-430FA2 LOCAL HEADER #1254    04034B50 (67324752)\n-430FA6 Extract Zip Spec      14 (20) '2.0'\n-430FA7 Extract OS            00 (0) 'MS-DOS'\n-430FA8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-430FAA Compression Method    0000 (0) 'Stored'\n-430FAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-430FB0 CRC                   00000000 (0)\n-430FB4 Compressed Size       00000000 (0)\n-430FB8 Uncompressed Size     00000000 (0)\n-430FBC Filename Length       0027 (39)\n-430FBE Extra Length          0009 (9)\n-430FC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x430FC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-430FE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-430FE9   Length              0005 (5)\n-430FEB   Flags               01 (1) 'Modification'\n-430FEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-430FF0 PAYLOAD\n-\n-4321BA DATA DESCRIPTOR       08074B50 (134695760)\n-4321BE CRC                   0C035F96 (201547670)\n-4321C2 Compressed Size       000011CA (4554)\n-4321C6 Uncompressed Size     000011CA (4554)\n-\n-4321CA LOCAL HEADER #1255    04034B50 (67324752)\n-4321CE Extract Zip Spec      14 (20) '2.0'\n-4321CF Extract OS            00 (0) 'MS-DOS'\n-4321D0 General Purpose Flag  0000 (0)\n-4321D2 Compression Method    0000 (0) 'Stored'\n-4321D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4321D8 CRC                   00000000 (0)\n-4321DC Compressed Size       00000000 (0)\n-4321E0 Uncompressed Size     00000000 (0)\n-4321E4 Filename Length       0024 (36)\n-4321E6 Extra Length          0009 (9)\n-4321E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4321E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43220C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43220E   Length              0005 (5)\n-432210   Flags               01 (1) 'Modification'\n-432211   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-432215 LOCAL HEADER #1256    04034B50 (67324752)\n-432219 Extract Zip Spec      14 (20) '2.0'\n-43221A Extract OS            00 (0) 'MS-DOS'\n-43221B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43221D Compression Method    0000 (0) 'Stored'\n-43221F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-432223 CRC                   00000000 (0)\n-432227 Compressed Size       00000000 (0)\n-43222B Uncompressed Size     00000000 (0)\n-43222F Filename Length       003B (59)\n-432231 Extra Length          0009 (9)\n-432233 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x432233: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43226E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-432270   Length              0005 (5)\n-432272   Flags               01 (1) 'Modification'\n-432273   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-432277 PAYLOAD\n-\n-4336AD DATA DESCRIPTOR       08074B50 (134695760)\n-4336B1 CRC                   5688E99A (1451813274)\n-4336B5 Compressed Size       00001436 (5174)\n-4336B9 Uncompressed Size     00001436 (5174)\n-\n-4336BD LOCAL HEADER #1257    04034B50 (67324752)\n-4336C1 Extract Zip Spec      14 (20) '2.0'\n-4336C2 Extract OS            00 (0) 'MS-DOS'\n-4336C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4336C5 Compression Method    0000 (0) 'Stored'\n-4336C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4336CB CRC                   00000000 (0)\n-4336CF Compressed Size       00000000 (0)\n-4336D3 Uncompressed Size     00000000 (0)\n-4336D7 Filename Length       003F (63)\n-4336D9 Extra Length          0009 (9)\n-4336DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4336DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43371A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43371C   Length              0005 (5)\n-43371E   Flags               01 (1) 'Modification'\n-43371F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-433723 PAYLOAD\n-\n-433EC4 DATA DESCRIPTOR       08074B50 (134695760)\n-433EC8 CRC                   DA916F8A (3666964362)\n-433ECC Compressed Size       000007A1 (1953)\n-433ED0 Uncompressed Size     000007A1 (1953)\n-\n-433ED4 LOCAL HEADER #1258    04034B50 (67324752)\n-433ED8 Extract Zip Spec      14 (20) '2.0'\n-433ED9 Extract OS            00 (0) 'MS-DOS'\n-433EDA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-433EDC Compression Method    0000 (0) 'Stored'\n-433EDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-433EE2 CRC                   00000000 (0)\n-433EE6 Compressed Size       00000000 (0)\n-433EEA Uncompressed Size     00000000 (0)\n-433EEE Filename Length       003A (58)\n-433EF0 Extra Length          0009 (9)\n-433EF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x433EF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-433F2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-433F2E   Length              0005 (5)\n-433F30   Flags               01 (1) 'Modification'\n-433F31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-433F35 PAYLOAD\n-\n-434F44 DATA DESCRIPTOR       08074B50 (134695760)\n-434F48 CRC                   1CB52B1D (481635101)\n-434F4C Compressed Size       0000100F (4111)\n-434F50 Uncompressed Size     0000100F (4111)\n-\n-434F54 LOCAL HEADER #1259    04034B50 (67324752)\n-434F58 Extract Zip Spec      14 (20) '2.0'\n-434F59 Extract OS            00 (0) 'MS-DOS'\n-434F5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-434F5C Compression Method    0000 (0) 'Stored'\n-434F5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-434F62 CRC                   00000000 (0)\n-434F66 Compressed Size       00000000 (0)\n-434F6A Uncompressed Size     00000000 (0)\n-434F6E Filename Length       003F (63)\n-434F70 Extra Length          0009 (9)\n-434F72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x434F72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-434FB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-434FB3   Length              0005 (5)\n-434FB5   Flags               01 (1) 'Modification'\n-434FB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-434FBA PAYLOAD\n-\n-4356A4 DATA DESCRIPTOR       08074B50 (134695760)\n-4356A8 CRC                   B7AE5AFA (3081657082)\n-4356AC Compressed Size       000006EA (1770)\n-4356B0 Uncompressed Size     000006EA (1770)\n-\n-4356B4 LOCAL HEADER #1260    04034B50 (67324752)\n-4356B8 Extract Zip Spec      14 (20) '2.0'\n-4356B9 Extract OS            00 (0) 'MS-DOS'\n-4356BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4356BC Compression Method    0000 (0) 'Stored'\n-4356BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4356C2 CRC                   00000000 (0)\n-4356C6 Compressed Size       00000000 (0)\n-4356CA Uncompressed Size     00000000 (0)\n-4356CE Filename Length       003D (61)\n-4356D0 Extra Length          0009 (9)\n-4356D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4356D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43570F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-435711   Length              0005 (5)\n-435713   Flags               01 (1) 'Modification'\n-435714   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-435718 PAYLOAD\n-\n-436399 DATA DESCRIPTOR       08074B50 (134695760)\n-43639D CRC                   D392C9E8 (3549612520)\n-4363A1 Compressed Size       00000C81 (3201)\n-4363A5 Uncompressed Size     00000C81 (3201)\n-\n-4363A9 LOCAL HEADER #1261    04034B50 (67324752)\n-4363AD Extract Zip Spec      14 (20) '2.0'\n-4363AE Extract OS            00 (0) 'MS-DOS'\n-4363AF General Purpose Flag  0000 (0)\n-4363B1 Compression Method    0000 (0) 'Stored'\n-4363B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4363B7 CRC                   00000000 (0)\n-4363BB Compressed Size       00000000 (0)\n-4363BF Uncompressed Size     00000000 (0)\n-4363C3 Filename Length       001C (28)\n-4363C5 Extra Length          0009 (9)\n-4363C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4363C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4363E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4363E5   Length              0005 (5)\n-4363E7   Flags               01 (1) 'Modification'\n-4363E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4363EC LOCAL HEADER #1262    04034B50 (67324752)\n-4363F0 Extract Zip Spec      14 (20) '2.0'\n-4363F1 Extract OS            00 (0) 'MS-DOS'\n-4363F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4363F4 Compression Method    0000 (0) 'Stored'\n-4363F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4363FA CRC                   00000000 (0)\n-4363FE Compressed Size       00000000 (0)\n-436402 Uncompressed Size     00000000 (0)\n-436406 Filename Length       002B (43)\n-436408 Extra Length          0009 (9)\n-43640A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43640A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-436435 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-436437   Length              0005 (5)\n-436439   Flags               01 (1) 'Modification'\n-43643A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43643E PAYLOAD\n-\n-436815 DATA DESCRIPTOR       08074B50 (134695760)\n-436819 CRC                   2AA01116 (715133206)\n-43681D Compressed Size       000003D7 (983)\n-436821 Uncompressed Size     000003D7 (983)\n-\n-436825 LOCAL HEADER #1263    04034B50 (67324752)\n-436829 Extract Zip Spec      14 (20) '2.0'\n-43682A Extract OS            00 (0) 'MS-DOS'\n-43682B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43682D Compression Method    0000 (0) 'Stored'\n-43682F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-436833 CRC                   00000000 (0)\n-436837 Compressed Size       00000000 (0)\n-43683B Uncompressed Size     00000000 (0)\n-43683F Filename Length       0024 (36)\n-436841 Extra Length          0009 (9)\n-436843 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x436843: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-436867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-436869   Length              0005 (5)\n-43686B   Flags               01 (1) 'Modification'\n-43686C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-436870 PAYLOAD\n-\n-43731E DATA DESCRIPTOR       08074B50 (134695760)\n-437322 CRC                   70DD7BE1 (1893563361)\n-437326 Compressed Size       00000AAE (2734)\n-43732A Uncompressed Size     00000AAE (2734)\n-\n-43732E LOCAL HEADER #1264    04034B50 (67324752)\n-437332 Extract Zip Spec      14 (20) '2.0'\n-437333 Extract OS            00 (0) 'MS-DOS'\n-437334 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-437336 Compression Method    0000 (0) 'Stored'\n-437338 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43733C CRC                   00000000 (0)\n-437340 Compressed Size       00000000 (0)\n-437344 Uncompressed Size     00000000 (0)\n-437348 Filename Length       0028 (40)\n-43734A Extra Length          0009 (9)\n-43734C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43734C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-437374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-437376   Length              0005 (5)\n-437378   Flags               01 (1) 'Modification'\n-437379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43737D PAYLOAD\n-\n-437C5A DATA DESCRIPTOR       08074B50 (134695760)\n-437C5E CRC                   725BA0A7 (1918607527)\n-437C62 Compressed Size       000008DD (2269)\n-437C66 Uncompressed Size     000008DD (2269)\n-\n-437C6A LOCAL HEADER #1265    04034B50 (67324752)\n-437C6E Extract Zip Spec      14 (20) '2.0'\n-437C6F Extract OS            00 (0) 'MS-DOS'\n-437C70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-437C72 Compression Method    0000 (0) 'Stored'\n-437C74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-437C78 CRC                   00000000 (0)\n-437C7C Compressed Size       00000000 (0)\n-437C80 Uncompressed Size     00000000 (0)\n-437C84 Filename Length       0027 (39)\n-437C86 Extra Length          0009 (9)\n-437C88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x437C88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-437CAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-437CB1   Length              0005 (5)\n-437CB3   Flags               01 (1) 'Modification'\n-437CB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-437CB8 PAYLOAD\n-\n-43B9B9 DATA DESCRIPTOR       08074B50 (134695760)\n-43B9BD CRC                   353D3BE5 (893205477)\n-43B9C1 Compressed Size       00003D01 (15617)\n-43B9C5 Uncompressed Size     00003D01 (15617)\n-\n-43B9C9 LOCAL HEADER #1266    04034B50 (67324752)\n-43B9CD Extract Zip Spec      14 (20) '2.0'\n-43B9CE Extract OS            00 (0) 'MS-DOS'\n-43B9CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43B9D1 Compression Method    0000 (0) 'Stored'\n-43B9D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43B9D7 CRC                   00000000 (0)\n-43B9DB Compressed Size       00000000 (0)\n-43B9DF Uncompressed Size     00000000 (0)\n-43B9E3 Filename Length       0026 (38)\n-43B9E5 Extra Length          0009 (9)\n-43B9E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43B9E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43BA0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43BA0F   Length              0005 (5)\n-43BA11   Flags               01 (1) 'Modification'\n-43BA12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43BA16 PAYLOAD\n-\n-43D6E4 DATA DESCRIPTOR       08074B50 (134695760)\n-43D6E8 CRC                   1DFA3CFF (502938879)\n-43D6EC Compressed Size       00001CCE (7374)\n-43D6F0 Uncompressed Size     00001CCE (7374)\n-\n-43D6F4 LOCAL HEADER #1267    04034B50 (67324752)\n-43D6F8 Extract Zip Spec      14 (20) '2.0'\n-43D6F9 Extract OS            00 (0) 'MS-DOS'\n-43D6FA General Purpose Flag  0000 (0)\n-43D6FC Compression Method    0000 (0) 'Stored'\n-43D6FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43D702 CRC                   00000000 (0)\n-43D706 Compressed Size       00000000 (0)\n-43D70A Uncompressed Size     00000000 (0)\n-43D70E Filename Length       001A (26)\n-43D710 Extra Length          0009 (9)\n-43D712 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43D712: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43D72C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43D72E   Length              0005 (5)\n-43D730   Flags               01 (1) 'Modification'\n-43D731   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-43D735 LOCAL HEADER #1268    04034B50 (67324752)\n-43D739 Extract Zip Spec      14 (20) '2.0'\n-43D73A Extract OS            00 (0) 'MS-DOS'\n-43D73B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43D73D Compression Method    0000 (0) 'Stored'\n-43D73F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43D743 CRC                   00000000 (0)\n-43D747 Compressed Size       00000000 (0)\n-43D74B Uncompressed Size     00000000 (0)\n-43D74F Filename Length       002E (46)\n-43D751 Extra Length          0009 (9)\n-43D753 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43D753: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43D781 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43D783   Length              0005 (5)\n-43D785   Flags               01 (1) 'Modification'\n-43D786   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43D78A PAYLOAD\n-\n-43DCAA DATA DESCRIPTOR       08074B50 (134695760)\n-43DCAE CRC                   D4B8B1A6 (3568873894)\n-43DCB2 Compressed Size       00000520 (1312)\n-43DCB6 Uncompressed Size     00000520 (1312)\n-\n-43DCBA LOCAL HEADER #1269    04034B50 (67324752)\n-43DCBE Extract Zip Spec      14 (20) '2.0'\n-43DCBF Extract OS            00 (0) 'MS-DOS'\n-43DCC0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43DCC2 Compression Method    0000 (0) 'Stored'\n-43DCC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43DCC8 CRC                   00000000 (0)\n-43DCCC Compressed Size       00000000 (0)\n-43DCD0 Uncompressed Size     00000000 (0)\n-43DCD4 Filename Length       0028 (40)\n-43DCD6 Extra Length          0009 (9)\n-43DCD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43DCD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43DD00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43DD02   Length              0005 (5)\n-43DD04   Flags               01 (1) 'Modification'\n-43DD05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43DD09 PAYLOAD\n-\n-43E776 DATA DESCRIPTOR       08074B50 (134695760)\n-43E77A CRC                   9303661A (2466473498)\n-43E77E Compressed Size       00000A6D (2669)\n-43E782 Uncompressed Size     00000A6D (2669)\n-\n-43E786 LOCAL HEADER #1270    04034B50 (67324752)\n-43E78A Extract Zip Spec      14 (20) '2.0'\n-43E78B Extract OS            00 (0) 'MS-DOS'\n-43E78C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43E78E Compression Method    0000 (0) 'Stored'\n-43E790 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43E794 CRC                   00000000 (0)\n-43E798 Compressed Size       00000000 (0)\n-43E79C Uncompressed Size     00000000 (0)\n-43E7A0 Filename Length       0036 (54)\n-43E7A2 Extra Length          0009 (9)\n-43E7A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43E7A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43E7DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43E7DC   Length              0005 (5)\n-43E7DE   Flags               01 (1) 'Modification'\n-43E7DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43E7E3 PAYLOAD\n-\n-43FBFC DATA DESCRIPTOR       08074B50 (134695760)\n-43FC00 CRC                   8391A9ED (2207361517)\n-43FC04 Compressed Size       00001419 (5145)\n-43FC08 Uncompressed Size     00001419 (5145)\n-\n-43FC0C LOCAL HEADER #1271    04034B50 (67324752)\n-43FC10 Extract Zip Spec      14 (20) '2.0'\n-43FC11 Extract OS            00 (0) 'MS-DOS'\n-43FC12 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-43FC14 Compression Method    0000 (0) 'Stored'\n-43FC16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-43FC1A CRC                   00000000 (0)\n-43FC1E Compressed Size       00000000 (0)\n-43FC22 Uncompressed Size     00000000 (0)\n-43FC26 Filename Length       002D (45)\n-43FC28 Extra Length          0009 (9)\n-43FC2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x43FC2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-43FC57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-43FC59   Length              0005 (5)\n-43FC5B   Flags               01 (1) 'Modification'\n-43FC5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-43FC60 PAYLOAD\n-\n-440694 DATA DESCRIPTOR       08074B50 (134695760)\n-440698 CRC                   4C19B653 (1276753491)\n-44069C Compressed Size       00000A34 (2612)\n-4406A0 Uncompressed Size     00000A34 (2612)\n-\n-4406A4 LOCAL HEADER #1272    04034B50 (67324752)\n-4406A8 Extract Zip Spec      14 (20) '2.0'\n-4406A9 Extract OS            00 (0) 'MS-DOS'\n-4406AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4406AC Compression Method    0000 (0) 'Stored'\n-4406AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4406B2 CRC                   00000000 (0)\n-4406B6 Compressed Size       00000000 (0)\n-4406BA Uncompressed Size     00000000 (0)\n-4406BE Filename Length       0027 (39)\n-4406C0 Extra Length          0009 (9)\n-4406C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4406C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4406E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4406EB   Length              0005 (5)\n-4406ED   Flags               01 (1) 'Modification'\n-4406EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4406F2 PAYLOAD\n-\n-440C2C DATA DESCRIPTOR       08074B50 (134695760)\n-440C30 CRC                   92D33C56 (2463317078)\n-440C34 Compressed Size       0000053A (1338)\n-440C38 Uncompressed Size     0000053A (1338)\n-\n-440C3C LOCAL HEADER #1273    04034B50 (67324752)\n-440C40 Extract Zip Spec      14 (20) '2.0'\n-440C41 Extract OS            00 (0) 'MS-DOS'\n-440C42 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-440C44 Compression Method    0000 (0) 'Stored'\n-440C46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-440C4A CRC                   00000000 (0)\n-440C4E Compressed Size       00000000 (0)\n-440C52 Uncompressed Size     00000000 (0)\n-440C56 Filename Length       002E (46)\n-440C58 Extra Length          0009 (9)\n-440C5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x440C5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-440C88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-440C8A   Length              0005 (5)\n-440C8C   Flags               01 (1) 'Modification'\n-440C8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-440C91 PAYLOAD\n-\n-441464 DATA DESCRIPTOR       08074B50 (134695760)\n-441468 CRC                   8AC6D7E1 (2328287201)\n-44146C Compressed Size       000007D3 (2003)\n-441470 Uncompressed Size     000007D3 (2003)\n-\n-441474 LOCAL HEADER #1274    04034B50 (67324752)\n-441478 Extract Zip Spec      14 (20) '2.0'\n-441479 Extract OS            00 (0) 'MS-DOS'\n-44147A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44147C Compression Method    0000 (0) 'Stored'\n-44147E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-441482 CRC                   00000000 (0)\n-441486 Compressed Size       00000000 (0)\n-44148A Uncompressed Size     00000000 (0)\n-44148E Filename Length       0035 (53)\n-441490 Extra Length          0009 (9)\n-441492 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x441492: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4414C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4414C9   Length              0005 (5)\n-4414CB   Flags               01 (1) 'Modification'\n-4414CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4414D0 PAYLOAD\n-\n-441AC9 DATA DESCRIPTOR       08074B50 (134695760)\n-441ACD CRC                   BDE39003 (3185807363)\n-441AD1 Compressed Size       000005F9 (1529)\n-441AD5 Uncompressed Size     000005F9 (1529)\n-\n-441AD9 LOCAL HEADER #1275    04034B50 (67324752)\n-441ADD Extract Zip Spec      14 (20) '2.0'\n-441ADE Extract OS            00 (0) 'MS-DOS'\n-441ADF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-441AE1 Compression Method    0000 (0) 'Stored'\n-441AE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-441AE7 CRC                   00000000 (0)\n-441AEB Compressed Size       00000000 (0)\n-441AEF Uncompressed Size     00000000 (0)\n-441AF3 Filename Length       002E (46)\n-441AF5 Extra Length          0009 (9)\n-441AF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x441AF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-441B25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-441B27   Length              0005 (5)\n-441B29   Flags               01 (1) 'Modification'\n-441B2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-441B2E PAYLOAD\n-\n-443130 DATA DESCRIPTOR       08074B50 (134695760)\n-443134 CRC                   6C2E2D81 (1814965633)\n-443138 Compressed Size       00001602 (5634)\n-44313C Uncompressed Size     00001602 (5634)\n-\n-443140 LOCAL HEADER #1276    04034B50 (67324752)\n-443144 Extract Zip Spec      14 (20) '2.0'\n-443145 Extract OS            00 (0) 'MS-DOS'\n-443146 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-443148 Compression Method    0000 (0) 'Stored'\n-44314A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-44314E CRC                   00000000 (0)\n-443152 Compressed Size       00000000 (0)\n-443156 Uncompressed Size     00000000 (0)\n-44315A Filename Length       0036 (54)\n-44315C Extra Length          0009 (9)\n-44315E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44315E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-443194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-443196   Length              0005 (5)\n-443198   Flags               01 (1) 'Modification'\n-443199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-44319D PAYLOAD\n-\n-44362B DATA DESCRIPTOR       08074B50 (134695760)\n-44362F CRC                   350310AE (889393326)\n-443633 Compressed Size       0000048E (1166)\n-443637 Uncompressed Size     0000048E (1166)\n-\n-44363B LOCAL HEADER #1277    04034B50 (67324752)\n-44363F Extract Zip Spec      14 (20) '2.0'\n-443640 Extract OS            00 (0) 'MS-DOS'\n-443641 General Purpose Flag  0000 (0)\n-443643 Compression Method    0000 (0) 'Stored'\n-443645 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-443649 CRC                   00000000 (0)\n-44364D Compressed Size       00000000 (0)\n-443651 Uncompressed Size     00000000 (0)\n-443655 Filename Length       0021 (33)\n-443657 Extra Length          0009 (9)\n-443659 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+0865DA DATA DESCRIPTOR       08074B50 (134695760)\n+0865DE CRC                   03B2110A (62001418)\n+0865E2 Compressed Size       00000091 (145)\n+0865E6 Uncompressed Size     00000091 (145)\n+\n+0865EA LOCAL HEADER #309     04034B50 (67324752)\n+0865EE Extract Zip Spec      14 (20) '2.0'\n+0865EF Extract OS            00 (0) 'MS-DOS'\n+0865F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0865F2 Compression Method    0000 (0) 'Stored'\n+0865F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0865F8 CRC                   00000000 (0)\n+0865FC Compressed Size       00000000 (0)\n+086600 Uncompressed Size     00000000 (0)\n+086604 Filename Length       000E (14)\n+086606 Extra Length          0009 (9)\n+086608 Filename              'XXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x86608: Filename 'XXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+086616 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+086618   Length              0005 (5)\n+08661A   Flags               01 (1) 'Modification'\n+08661B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08661F PAYLOAD\n+\n+086AAD DATA DESCRIPTOR       08074B50 (134695760)\n+086AB1 CRC                   812B2402 (2167088130)\n+086AB5 Compressed Size       0000048E (1166)\n+086AB9 Uncompressed Size     0000048E (1166)\n+\n+086ABD LOCAL HEADER #310     04034B50 (67324752)\n+086AC1 Extract Zip Spec      14 (20) '2.0'\n+086AC2 Extract OS            00 (0) 'MS-DOS'\n+086AC3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+086AC5 Compression Method    0000 (0) 'Stored'\n+086AC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+086ACB CRC                   00000000 (0)\n+086ACF Compressed Size       00000000 (0)\n+086AD3 Uncompressed Size     00000000 (0)\n+086AD7 Filename Length       0011 (17)\n+086AD9 Extra Length          0009 (9)\n+086ADB Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x86ADB: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+086AEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+086AEE   Length              0005 (5)\n+086AF0   Flags               01 (1) 'Modification'\n+086AF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+086AF5 PAYLOAD\n+\n+087612 DATA DESCRIPTOR       08074B50 (134695760)\n+087616 CRC                   79E45B46 (2045008710)\n+08761A Compressed Size       00000B1D (2845)\n+08761E Uncompressed Size     00000B1D (2845)\n+\n+087622 LOCAL HEADER #311     04034B50 (67324752)\n+087626 Extract Zip Spec      14 (20) '2.0'\n+087627 Extract OS            00 (0) 'MS-DOS'\n+087628 General Purpose Flag  0000 (0)\n+08762A Compression Method    0000 (0) 'Stored'\n+08762C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+087630 CRC                   00000000 (0)\n+087634 Compressed Size       00000000 (0)\n+087638 Uncompressed Size     00000000 (0)\n+08763C Filename Length       0004 (4)\n+08763E Extra Length          0009 (9)\n+087640 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x87640: Filename 'XXXX'\n+#          Zero length filename\n+#\n+087644 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+087646   Length              0005 (5)\n+087648   Flags               01 (1) 'Modification'\n+087649   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+08764D LOCAL HEADER #312     04034B50 (67324752)\n+087651 Extract Zip Spec      14 (20) '2.0'\n+087652 Extract OS            00 (0) 'MS-DOS'\n+087653 General Purpose Flag  0000 (0)\n+087655 Compression Method    0000 (0) 'Stored'\n+087657 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08765B CRC                   00000000 (0)\n+08765F Compressed Size       00000000 (0)\n+087663 Uncompressed Size     00000000 (0)\n+087667 Filename Length       000C (12)\n+087669 Extra Length          0009 (9)\n+08766B Filename              'XXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8766B: Filename 'XXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+087677 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+087679   Length              0005 (5)\n+08767B   Flags               01 (1) 'Modification'\n+08767C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+087680 LOCAL HEADER #313     04034B50 (67324752)\n+087684 Extract Zip Spec      14 (20) '2.0'\n+087685 Extract OS            00 (0) 'MS-DOS'\n+087686 General Purpose Flag  0000 (0)\n+087688 Compression Method    0000 (0) 'Stored'\n+08768A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08768E CRC                   00000000 (0)\n+087692 Compressed Size       00000000 (0)\n+087696 Uncompressed Size     00000000 (0)\n+08769A Filename Length       0010 (16)\n+08769C Extra Length          0009 (9)\n+08769E Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8769E: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0876AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0876B0   Length              0005 (5)\n+0876B2   Flags               01 (1) 'Modification'\n+0876B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0876B7 LOCAL HEADER #314     04034B50 (67324752)\n+0876BB Extract Zip Spec      14 (20) '2.0'\n+0876BC Extract OS            00 (0) 'MS-DOS'\n+0876BD General Purpose Flag  0000 (0)\n+0876BF Compression Method    0000 (0) 'Stored'\n+0876C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0876C5 CRC                   00000000 (0)\n+0876C9 Compressed Size       00000000 (0)\n+0876CD Uncompressed Size     00000000 (0)\n+0876D1 Filename Length       0017 (23)\n+0876D3 Extra Length          0009 (9)\n+0876D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x876D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0876EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0876EE   Length              0005 (5)\n+0876F0   Flags               01 (1) 'Modification'\n+0876F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+0876F5 LOCAL HEADER #315     04034B50 (67324752)\n+0876F9 Extract Zip Spec      14 (20) '2.0'\n+0876FA Extract OS            00 (0) 'MS-DOS'\n+0876FB General Purpose Flag  0000 (0)\n+0876FD Compression Method    0000 (0) 'Stored'\n+0876FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+087703 CRC                   00000000 (0)\n+087707 Compressed Size       00000000 (0)\n+08770B Uncompressed Size     00000000 (0)\n+08770F Filename Length       001F (31)\n+087711 Extra Length          0009 (9)\n+087713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x87713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+087732 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+087734   Length              0005 (5)\n+087736   Flags               01 (1) 'Modification'\n+087737   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+08773B LOCAL HEADER #316     04034B50 (67324752)\n+08773F Extract Zip Spec      14 (20) '2.0'\n+087740 Extract OS            00 (0) 'MS-DOS'\n+087741 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+087743 Compression Method    0000 (0) 'Stored'\n+087745 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+087749 CRC                   00000000 (0)\n+08774D Compressed Size       00000000 (0)\n+087751 Uncompressed Size     00000000 (0)\n+087755 Filename Length       0034 (52)\n+087757 Extra Length          0009 (9)\n+087759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x87759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08778D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08778F   Length              0005 (5)\n+087791   Flags               01 (1) 'Modification'\n+087792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+087796 PAYLOAD\n+\n+0882D7 DATA DESCRIPTOR       08074B50 (134695760)\n+0882DB CRC                   CB19F474 (3407475828)\n+0882DF Compressed Size       00000B41 (2881)\n+0882E3 Uncompressed Size     00000B41 (2881)\n+\n+0882E7 LOCAL HEADER #317     04034B50 (67324752)\n+0882EB Extract Zip Spec      14 (20) '2.0'\n+0882EC Extract OS            00 (0) 'MS-DOS'\n+0882ED General Purpose Flag  0000 (0)\n+0882EF Compression Method    0000 (0) 'Stored'\n+0882F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0882F5 CRC                   00000000 (0)\n+0882F9 Compressed Size       00000000 (0)\n+0882FD Uncompressed Size     00000000 (0)\n+088301 Filename Length       0022 (34)\n+088303 Extra Length          0009 (9)\n+088305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x88305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+088327 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+088329   Length              0005 (5)\n+08832B   Flags               01 (1) 'Modification'\n+08832C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+088330 LOCAL HEADER #318     04034B50 (67324752)\n+088334 Extract Zip Spec      14 (20) '2.0'\n+088335 Extract OS            00 (0) 'MS-DOS'\n+088336 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+088338 Compression Method    0000 (0) 'Stored'\n+08833A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08833E CRC                   00000000 (0)\n+088342 Compressed Size       00000000 (0)\n+088346 Uncompressed Size     00000000 (0)\n+08834A Filename Length       003B (59)\n+08834C Extra Length          0009 (9)\n+08834E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8834E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+088389 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08838B   Length              0005 (5)\n+08838D   Flags               01 (1) 'Modification'\n+08838E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+088392 PAYLOAD\n+\n+089945 DATA DESCRIPTOR       08074B50 (134695760)\n+089949 CRC                   273E139A (658379674)\n+08994D Compressed Size       000015B3 (5555)\n+089951 Uncompressed Size     000015B3 (5555)\n+\n+089955 LOCAL HEADER #319     04034B50 (67324752)\n+089959 Extract Zip Spec      14 (20) '2.0'\n+08995A Extract OS            00 (0) 'MS-DOS'\n+08995B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+08995D Compression Method    0000 (0) 'Stored'\n+08995F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+089963 CRC                   00000000 (0)\n+089967 Compressed Size       00000000 (0)\n+08996B Uncompressed Size     00000000 (0)\n+08996F Filename Length       003B (59)\n+089971 Extra Length          0009 (9)\n+089973 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x89973: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0899AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0899B0   Length              0005 (5)\n+0899B2   Flags               01 (1) 'Modification'\n+0899B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0899B7 PAYLOAD\n+\n+08C681 DATA DESCRIPTOR       08074B50 (134695760)\n+08C685 CRC                   02D2B2EB (47362795)\n+08C689 Compressed Size       00002CCA (11466)\n+08C68D Uncompressed Size     00002CCA (11466)\n+\n+08C691 LOCAL HEADER #320     04034B50 (67324752)\n+08C695 Extract Zip Spec      14 (20) '2.0'\n+08C696 Extract OS            00 (0) 'MS-DOS'\n+08C697 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+08C699 Compression Method    0000 (0) 'Stored'\n+08C69B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08C69F CRC                   00000000 (0)\n+08C6A3 Compressed Size       00000000 (0)\n+08C6A7 Uncompressed Size     00000000 (0)\n+08C6AB Filename Length       003C (60)\n+08C6AD Extra Length          0009 (9)\n+08C6AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8C6AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08C6EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08C6ED   Length              0005 (5)\n+08C6EF   Flags               01 (1) 'Modification'\n+08C6F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08C6F4 PAYLOAD\n+\n+08FC9D DATA DESCRIPTOR       08074B50 (134695760)\n+08FCA1 CRC                   37CC1834 (936122420)\n+08FCA5 Compressed Size       000035A9 (13737)\n+08FCA9 Uncompressed Size     000035A9 (13737)\n+\n+08FCAD LOCAL HEADER #321     04034B50 (67324752)\n+08FCB1 Extract Zip Spec      14 (20) '2.0'\n+08FCB2 Extract OS            00 (0) 'MS-DOS'\n+08FCB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+08FCB5 Compression Method    0000 (0) 'Stored'\n+08FCB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+08FCBB CRC                   00000000 (0)\n+08FCBF Compressed Size       00000000 (0)\n+08FCC3 Uncompressed Size     00000000 (0)\n+08FCC7 Filename Length       003E (62)\n+08FCC9 Extra Length          0009 (9)\n+08FCCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x8FCCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+08FD09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+08FD0B   Length              0005 (5)\n+08FD0D   Flags               01 (1) 'Modification'\n+08FD0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+08FD12 PAYLOAD\n+\n+09077A DATA DESCRIPTOR       08074B50 (134695760)\n+09077E CRC                   77DBD9E2 (2010896866)\n+090782 Compressed Size       00000A68 (2664)\n+090786 Uncompressed Size     00000A68 (2664)\n+\n+09078A LOCAL HEADER #322     04034B50 (67324752)\n+09078E Extract Zip Spec      14 (20) '2.0'\n+09078F Extract OS            00 (0) 'MS-DOS'\n+090790 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+090792 Compression Method    0000 (0) 'Stored'\n+090794 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+090798 CRC                   00000000 (0)\n+09079C Compressed Size       00000000 (0)\n+0907A0 Uncompressed Size     00000000 (0)\n+0907A4 Filename Length       003F (63)\n+0907A6 Extra Length          0009 (9)\n+0907A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x907A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0907E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0907E9   Length              0005 (5)\n+0907EB   Flags               01 (1) 'Modification'\n+0907EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0907F0 PAYLOAD\n+\n+0912B0 DATA DESCRIPTOR       08074B50 (134695760)\n+0912B4 CRC                   060EB252 (101626450)\n+0912B8 Compressed Size       00000AC0 (2752)\n+0912BC Uncompressed Size     00000AC0 (2752)\n+\n+0912C0 LOCAL HEADER #323     04034B50 (67324752)\n+0912C4 Extract Zip Spec      14 (20) '2.0'\n+0912C5 Extract OS            00 (0) 'MS-DOS'\n+0912C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0912C8 Compression Method    0000 (0) 'Stored'\n+0912CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0912CE CRC                   00000000 (0)\n+0912D2 Compressed Size       00000000 (0)\n+0912D6 Uncompressed Size     00000000 (0)\n+0912DA Filename Length       003E (62)\n+0912DC Extra Length          0009 (9)\n+0912DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x912DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09131C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09131E   Length              0005 (5)\n+091320   Flags               01 (1) 'Modification'\n+091321   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+091325 PAYLOAD\n+\n+091E64 DATA DESCRIPTOR       08074B50 (134695760)\n+091E68 CRC                   EF9589B0 (4019554736)\n+091E6C Compressed Size       00000B3F (2879)\n+091E70 Uncompressed Size     00000B3F (2879)\n+\n+091E74 LOCAL HEADER #324     04034B50 (67324752)\n+091E78 Extract Zip Spec      14 (20) '2.0'\n+091E79 Extract OS            00 (0) 'MS-DOS'\n+091E7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+091E7C Compression Method    0000 (0) 'Stored'\n+091E7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+091E82 CRC                   00000000 (0)\n+091E86 Compressed Size       00000000 (0)\n+091E8A Uncompressed Size     00000000 (0)\n+091E8E Filename Length       0039 (57)\n+091E90 Extra Length          0009 (9)\n+091E92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x91E92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+091ECB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+091ECD   Length              0005 (5)\n+091ECF   Flags               01 (1) 'Modification'\n+091ED0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+091ED4 PAYLOAD\n+\n+092942 DATA DESCRIPTOR       08074B50 (134695760)\n+092946 CRC                   06019AC3 (100768451)\n+09294A Compressed Size       00000A6E (2670)\n+09294E Uncompressed Size     00000A6E (2670)\n+\n+092952 LOCAL HEADER #325     04034B50 (67324752)\n+092956 Extract Zip Spec      14 (20) '2.0'\n+092957 Extract OS            00 (0) 'MS-DOS'\n+092958 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+09295A Compression Method    0000 (0) 'Stored'\n+09295C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+092960 CRC                   00000000 (0)\n+092964 Compressed Size       00000000 (0)\n+092968 Uncompressed Size     00000000 (0)\n+09296C Filename Length       0040 (64)\n+09296E Extra Length          0009 (9)\n+092970 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x92970: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0929B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0929B2   Length              0005 (5)\n+0929B4   Flags               01 (1) 'Modification'\n+0929B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0929B9 PAYLOAD\n+\n+093562 DATA DESCRIPTOR       08074B50 (134695760)\n+093566 CRC                   D3EA2D1D (3555339549)\n+09356A Compressed Size       00000BA9 (2985)\n+09356E Uncompressed Size     00000BA9 (2985)\n+\n+093572 LOCAL HEADER #326     04034B50 (67324752)\n+093576 Extract Zip Spec      14 (20) '2.0'\n+093577 Extract OS            00 (0) 'MS-DOS'\n+093578 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+09357A Compression Method    0000 (0) 'Stored'\n+09357C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+093580 CRC                   00000000 (0)\n+093584 Compressed Size       00000000 (0)\n+093588 Uncompressed Size     00000000 (0)\n+09358C Filename Length       0038 (56)\n+09358E Extra Length          0009 (9)\n+093590 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x93590: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0935C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0935CA   Length              0005 (5)\n+0935CC   Flags               01 (1) 'Modification'\n+0935CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0935D1 PAYLOAD\n+\n+09494C DATA DESCRIPTOR       08074B50 (134695760)\n+094950 CRC                   B1D0AB16 (2983242518)\n+094954 Compressed Size       0000137B (4987)\n+094958 Uncompressed Size     0000137B (4987)\n+\n+09495C LOCAL HEADER #327     04034B50 (67324752)\n+094960 Extract Zip Spec      14 (20) '2.0'\n+094961 Extract OS            00 (0) 'MS-DOS'\n+094962 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+094964 Compression Method    0000 (0) 'Stored'\n+094966 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09496A CRC                   00000000 (0)\n+09496E Compressed Size       00000000 (0)\n+094972 Uncompressed Size     00000000 (0)\n+094976 Filename Length       0036 (54)\n+094978 Extra Length          0009 (9)\n+09497A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9497A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0949B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0949B2   Length              0005 (5)\n+0949B4   Flags               01 (1) 'Modification'\n+0949B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0949B9 PAYLOAD\n+\n+0956E5 DATA DESCRIPTOR       08074B50 (134695760)\n+0956E9 CRC                   D18F68BE (3515836606)\n+0956ED Compressed Size       00000D2C (3372)\n+0956F1 Uncompressed Size     00000D2C (3372)\n+\n+0956F5 LOCAL HEADER #328     04034B50 (67324752)\n+0956F9 Extract Zip Spec      14 (20) '2.0'\n+0956FA Extract OS            00 (0) 'MS-DOS'\n+0956FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0956FD Compression Method    0000 (0) 'Stored'\n+0956FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+095703 CRC                   00000000 (0)\n+095707 Compressed Size       00000000 (0)\n+09570B Uncompressed Size     00000000 (0)\n+09570F Filename Length       0038 (56)\n+095711 Extra Length          0009 (9)\n+095713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x95713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09574B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09574D   Length              0005 (5)\n+09574F   Flags               01 (1) 'Modification'\n+095750   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+095754 PAYLOAD\n+\n+09A12D DATA DESCRIPTOR       08074B50 (134695760)\n+09A131 CRC                   4FA522A8 (1336222376)\n+09A135 Compressed Size       000049D9 (18905)\n+09A139 Uncompressed Size     000049D9 (18905)\n+\n+09A13D LOCAL HEADER #329     04034B50 (67324752)\n+09A141 Extract Zip Spec      14 (20) '2.0'\n+09A142 Extract OS            00 (0) 'MS-DOS'\n+09A143 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+09A145 Compression Method    0000 (0) 'Stored'\n+09A147 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09A14B CRC                   00000000 (0)\n+09A14F Compressed Size       00000000 (0)\n+09A153 Uncompressed Size     00000000 (0)\n+09A157 Filename Length       0036 (54)\n+09A159 Extra Length          0009 (9)\n+09A15B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9A15B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09A191 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09A193   Length              0005 (5)\n+09A195   Flags               01 (1) 'Modification'\n+09A196   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09A19A PAYLOAD\n+\n+09C4A1 DATA DESCRIPTOR       08074B50 (134695760)\n+09C4A5 CRC                   CA81C016 (3397500950)\n+09C4A9 Compressed Size       00002307 (8967)\n+09C4AD Uncompressed Size     00002307 (8967)\n+\n+09C4B1 LOCAL HEADER #330     04034B50 (67324752)\n+09C4B5 Extract Zip Spec      14 (20) '2.0'\n+09C4B6 Extract OS            00 (0) 'MS-DOS'\n+09C4B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+09C4B9 Compression Method    0000 (0) 'Stored'\n+09C4BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09C4BF CRC                   00000000 (0)\n+09C4C3 Compressed Size       00000000 (0)\n+09C4C7 Uncompressed Size     00000000 (0)\n+09C4CB Filename Length       0037 (55)\n+09C4CD Extra Length          0009 (9)\n+09C4CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9C4CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09C506 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09C508   Length              0005 (5)\n+09C50A   Flags               01 (1) 'Modification'\n+09C50B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09C50F PAYLOAD\n+\n+09E861 DATA DESCRIPTOR       08074B50 (134695760)\n+09E865 CRC                   1BE0DE32 (467721778)\n+09E869 Compressed Size       00002352 (9042)\n+09E86D Uncompressed Size     00002352 (9042)\n+\n+09E871 LOCAL HEADER #331     04034B50 (67324752)\n+09E875 Extract Zip Spec      14 (20) '2.0'\n+09E876 Extract OS            00 (0) 'MS-DOS'\n+09E877 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+09E879 Compression Method    0000 (0) 'Stored'\n+09E87B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+09E87F CRC                   00000000 (0)\n+09E883 Compressed Size       00000000 (0)\n+09E887 Uncompressed Size     00000000 (0)\n+09E88B Filename Length       0035 (53)\n+09E88D Extra Length          0009 (9)\n+09E88F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x9E88F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+09E8C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+09E8C6   Length              0005 (5)\n+09E8C8   Flags               01 (1) 'Modification'\n+09E8C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+09E8CD PAYLOAD\n+\n+0A0F46 DATA DESCRIPTOR       08074B50 (134695760)\n+0A0F4A CRC                   E0540578 (3763602808)\n+0A0F4E Compressed Size       00002679 (9849)\n+0A0F52 Uncompressed Size     00002679 (9849)\n+\n+0A0F56 LOCAL HEADER #332     04034B50 (67324752)\n+0A0F5A Extract Zip Spec      14 (20) '2.0'\n+0A0F5B Extract OS            00 (0) 'MS-DOS'\n+0A0F5C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A0F5E Compression Method    0000 (0) 'Stored'\n+0A0F60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A0F64 CRC                   00000000 (0)\n+0A0F68 Compressed Size       00000000 (0)\n+0A0F6C Uncompressed Size     00000000 (0)\n+0A0F70 Filename Length       003C (60)\n+0A0F72 Extra Length          0009 (9)\n+0A0F74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA0F74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A0FB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A0FB2   Length              0005 (5)\n+0A0FB4   Flags               01 (1) 'Modification'\n+0A0FB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A0FB9 PAYLOAD\n+\n+0A1CD9 DATA DESCRIPTOR       08074B50 (134695760)\n+0A1CDD CRC                   812FC9F0 (2167392752)\n+0A1CE1 Compressed Size       00000D20 (3360)\n+0A1CE5 Uncompressed Size     00000D20 (3360)\n+\n+0A1CE9 LOCAL HEADER #333     04034B50 (67324752)\n+0A1CED Extract Zip Spec      14 (20) '2.0'\n+0A1CEE Extract OS            00 (0) 'MS-DOS'\n+0A1CEF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A1CF1 Compression Method    0000 (0) 'Stored'\n+0A1CF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A1CF7 CRC                   00000000 (0)\n+0A1CFB Compressed Size       00000000 (0)\n+0A1CFF Uncompressed Size     00000000 (0)\n+0A1D03 Filename Length       003D (61)\n+0A1D05 Extra Length          0009 (9)\n+0A1D07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA1D07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A1D44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A1D46   Length              0005 (5)\n+0A1D48   Flags               01 (1) 'Modification'\n+0A1D49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A1D4D PAYLOAD\n+\n+0A21B8 DATA DESCRIPTOR       08074B50 (134695760)\n+0A21BC CRC                   E6FF39F2 (3875486194)\n+0A21C0 Compressed Size       0000046B (1131)\n+0A21C4 Uncompressed Size     0000046B (1131)\n+\n+0A21C8 LOCAL HEADER #334     04034B50 (67324752)\n+0A21CC Extract Zip Spec      14 (20) '2.0'\n+0A21CD Extract OS            00 (0) 'MS-DOS'\n+0A21CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A21D0 Compression Method    0000 (0) 'Stored'\n+0A21D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A21D6 CRC                   00000000 (0)\n+0A21DA Compressed Size       00000000 (0)\n+0A21DE Uncompressed Size     00000000 (0)\n+0A21E2 Filename Length       0035 (53)\n+0A21E4 Extra Length          0009 (9)\n+0A21E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA21E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A221B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A221D   Length              0005 (5)\n+0A221F   Flags               01 (1) 'Modification'\n+0A2220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A2224 PAYLOAD\n+\n+0A2EAF DATA DESCRIPTOR       08074B50 (134695760)\n+0A2EB3 CRC                   0827F1CF (136835535)\n+0A2EB7 Compressed Size       00000C8B (3211)\n+0A2EBB Uncompressed Size     00000C8B (3211)\n+\n+0A2EBF LOCAL HEADER #335     04034B50 (67324752)\n+0A2EC3 Extract Zip Spec      14 (20) '2.0'\n+0A2EC4 Extract OS            00 (0) 'MS-DOS'\n+0A2EC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A2EC7 Compression Method    0000 (0) 'Stored'\n+0A2EC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A2ECD CRC                   00000000 (0)\n+0A2ED1 Compressed Size       00000000 (0)\n+0A2ED5 Uncompressed Size     00000000 (0)\n+0A2ED9 Filename Length       0039 (57)\n+0A2EDB Extra Length          0009 (9)\n+0A2EDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA2EDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A2F16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A2F18   Length              0005 (5)\n+0A2F1A   Flags               01 (1) 'Modification'\n+0A2F1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A2F1F PAYLOAD\n+\n+0A3A9F DATA DESCRIPTOR       08074B50 (134695760)\n+0A3AA3 CRC                   DB2E2C1B (3677236251)\n+0A3AA7 Compressed Size       00000B80 (2944)\n+0A3AAB Uncompressed Size     00000B80 (2944)\n+\n+0A3AAF LOCAL HEADER #336     04034B50 (67324752)\n+0A3AB3 Extract Zip Spec      14 (20) '2.0'\n+0A3AB4 Extract OS            00 (0) 'MS-DOS'\n+0A3AB5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A3AB7 Compression Method    0000 (0) 'Stored'\n+0A3AB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A3ABD CRC                   00000000 (0)\n+0A3AC1 Compressed Size       00000000 (0)\n+0A3AC5 Uncompressed Size     00000000 (0)\n+0A3AC9 Filename Length       0038 (56)\n+0A3ACB Extra Length          0009 (9)\n+0A3ACD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA3ACD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A3B05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A3B07   Length              0005 (5)\n+0A3B09   Flags               01 (1) 'Modification'\n+0A3B0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A3B0E PAYLOAD\n+\n+0A4F79 DATA DESCRIPTOR       08074B50 (134695760)\n+0A4F7D CRC                   BB4C70B3 (3142348979)\n+0A4F81 Compressed Size       0000146B (5227)\n+0A4F85 Uncompressed Size     0000146B (5227)\n+\n+0A4F89 LOCAL HEADER #337     04034B50 (67324752)\n+0A4F8D Extract Zip Spec      14 (20) '2.0'\n+0A4F8E Extract OS            00 (0) 'MS-DOS'\n+0A4F8F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A4F91 Compression Method    0000 (0) 'Stored'\n+0A4F93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A4F97 CRC                   00000000 (0)\n+0A4F9B Compressed Size       00000000 (0)\n+0A4F9F Uncompressed Size     00000000 (0)\n+0A4FA3 Filename Length       0033 (51)\n+0A4FA5 Extra Length          0009 (9)\n+0A4FA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA4FA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A4FDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A4FDC   Length              0005 (5)\n+0A4FDE   Flags               01 (1) 'Modification'\n+0A4FDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A4FE3 PAYLOAD\n+\n+0A6446 DATA DESCRIPTOR       08074B50 (134695760)\n+0A644A CRC                   5603C310 (1443087120)\n+0A644E Compressed Size       00001463 (5219)\n+0A6452 Uncompressed Size     00001463 (5219)\n+\n+0A6456 LOCAL HEADER #338     04034B50 (67324752)\n+0A645A Extract Zip Spec      14 (20) '2.0'\n+0A645B Extract OS            00 (0) 'MS-DOS'\n+0A645C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A645E Compression Method    0000 (0) 'Stored'\n+0A6460 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A6464 CRC                   00000000 (0)\n+0A6468 Compressed Size       00000000 (0)\n+0A646C Uncompressed Size     00000000 (0)\n+0A6470 Filename Length       0036 (54)\n+0A6472 Extra Length          0009 (9)\n+0A6474 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA6474: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A64AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A64AC   Length              0005 (5)\n+0A64AE   Flags               01 (1) 'Modification'\n+0A64AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A64B3 PAYLOAD\n+\n+0A712C DATA DESCRIPTOR       08074B50 (134695760)\n+0A7130 CRC                   56DBC793 (1457244051)\n+0A7134 Compressed Size       00000C79 (3193)\n+0A7138 Uncompressed Size     00000C79 (3193)\n+\n+0A713C LOCAL HEADER #339     04034B50 (67324752)\n+0A7140 Extract Zip Spec      14 (20) '2.0'\n+0A7141 Extract OS            00 (0) 'MS-DOS'\n+0A7142 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A7144 Compression Method    0000 (0) 'Stored'\n+0A7146 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A714A CRC                   00000000 (0)\n+0A714E Compressed Size       00000000 (0)\n+0A7152 Uncompressed Size     00000000 (0)\n+0A7156 Filename Length       003D (61)\n+0A7158 Extra Length          0009 (9)\n+0A715A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA715A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A7197 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A7199   Length              0005 (5)\n+0A719B   Flags               01 (1) 'Modification'\n+0A719C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A71A0 PAYLOAD\n+\n+0A8698 DATA DESCRIPTOR       08074B50 (134695760)\n+0A869C CRC                   1549C790 (357156752)\n+0A86A0 Compressed Size       000014F8 (5368)\n+0A86A4 Uncompressed Size     000014F8 (5368)\n+\n+0A86A8 LOCAL HEADER #340     04034B50 (67324752)\n+0A86AC Extract Zip Spec      14 (20) '2.0'\n+0A86AD Extract OS            00 (0) 'MS-DOS'\n+0A86AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A86B0 Compression Method    0000 (0) 'Stored'\n+0A86B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A86B6 CRC                   00000000 (0)\n+0A86BA Compressed Size       00000000 (0)\n+0A86BE Uncompressed Size     00000000 (0)\n+0A86C2 Filename Length       003B (59)\n+0A86C4 Extra Length          0009 (9)\n+0A86C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA86C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A8701 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A8703   Length              0005 (5)\n+0A8705   Flags               01 (1) 'Modification'\n+0A8706   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A870A PAYLOAD\n+\n+0A9497 DATA DESCRIPTOR       08074B50 (134695760)\n+0A949B CRC                   D0079E8D (3490160269)\n+0A949F Compressed Size       00000D8D (3469)\n+0A94A3 Uncompressed Size     00000D8D (3469)\n+\n+0A94A7 LOCAL HEADER #341     04034B50 (67324752)\n+0A94AB Extract Zip Spec      14 (20) '2.0'\n+0A94AC Extract OS            00 (0) 'MS-DOS'\n+0A94AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0A94AF Compression Method    0000 (0) 'Stored'\n+0A94B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0A94B5 CRC                   00000000 (0)\n+0A94B9 Compressed Size       00000000 (0)\n+0A94BD Uncompressed Size     00000000 (0)\n+0A94C1 Filename Length       0030 (48)\n+0A94C3 Extra Length          0009 (9)\n+0A94C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xA94C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0A94F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0A94F7   Length              0005 (5)\n+0A94F9   Flags               01 (1) 'Modification'\n+0A94FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0A94FE PAYLOAD\n+\n+0AACBB DATA DESCRIPTOR       08074B50 (134695760)\n+0AACBF CRC                   7728EBEC (1999170540)\n+0AACC3 Compressed Size       000017BD (6077)\n+0AACC7 Uncompressed Size     000017BD (6077)\n+\n+0AACCB LOCAL HEADER #342     04034B50 (67324752)\n+0AACCF Extract Zip Spec      14 (20) '2.0'\n+0AACD0 Extract OS            00 (0) 'MS-DOS'\n+0AACD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0AACD3 Compression Method    0000 (0) 'Stored'\n+0AACD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AACD9 CRC                   00000000 (0)\n+0AACDD Compressed Size       00000000 (0)\n+0AACE1 Uncompressed Size     00000000 (0)\n+0AACE5 Filename Length       0033 (51)\n+0AACE7 Extra Length          0009 (9)\n+0AACE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAACE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AAD1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AAD1E   Length              0005 (5)\n+0AAD20   Flags               01 (1) 'Modification'\n+0AAD21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AAD25 PAYLOAD\n+\n+0ABC0A DATA DESCRIPTOR       08074B50 (134695760)\n+0ABC0E CRC                   27E32CDA (669199578)\n+0ABC12 Compressed Size       00000EE5 (3813)\n+0ABC16 Uncompressed Size     00000EE5 (3813)\n+\n+0ABC1A LOCAL HEADER #343     04034B50 (67324752)\n+0ABC1E Extract Zip Spec      14 (20) '2.0'\n+0ABC1F Extract OS            00 (0) 'MS-DOS'\n+0ABC20 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0ABC22 Compression Method    0000 (0) 'Stored'\n+0ABC24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0ABC28 CRC                   00000000 (0)\n+0ABC2C Compressed Size       00000000 (0)\n+0ABC30 Uncompressed Size     00000000 (0)\n+0ABC34 Filename Length       0037 (55)\n+0ABC36 Extra Length          0009 (9)\n+0ABC38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xABC38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0ABC6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0ABC71   Length              0005 (5)\n+0ABC73   Flags               01 (1) 'Modification'\n+0ABC74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0ABC78 PAYLOAD\n+\n+0ACD84 DATA DESCRIPTOR       08074B50 (134695760)\n+0ACD88 CRC                   723EDDAE (1916722606)\n+0ACD8C Compressed Size       0000110C (4364)\n+0ACD90 Uncompressed Size     0000110C (4364)\n+\n+0ACD94 LOCAL HEADER #344     04034B50 (67324752)\n+0ACD98 Extract Zip Spec      14 (20) '2.0'\n+0ACD99 Extract OS            00 (0) 'MS-DOS'\n+0ACD9A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0ACD9C Compression Method    0000 (0) 'Stored'\n+0ACD9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0ACDA2 CRC                   00000000 (0)\n+0ACDA6 Compressed Size       00000000 (0)\n+0ACDAA Uncompressed Size     00000000 (0)\n+0ACDAE Filename Length       0035 (53)\n+0ACDB0 Extra Length          0009 (9)\n+0ACDB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xACDB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0ACDE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0ACDE9   Length              0005 (5)\n+0ACDEB   Flags               01 (1) 'Modification'\n+0ACDEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0ACDF0 PAYLOAD\n+\n+0ADC8E DATA DESCRIPTOR       08074B50 (134695760)\n+0ADC92 CRC                   B1CE4173 (2983084403)\n+0ADC96 Compressed Size       00000E9E (3742)\n+0ADC9A Uncompressed Size     00000E9E (3742)\n+\n+0ADC9E LOCAL HEADER #345     04034B50 (67324752)\n+0ADCA2 Extract Zip Spec      14 (20) '2.0'\n+0ADCA3 Extract OS            00 (0) 'MS-DOS'\n+0ADCA4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0ADCA6 Compression Method    0000 (0) 'Stored'\n+0ADCA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0ADCAC CRC                   00000000 (0)\n+0ADCB0 Compressed Size       00000000 (0)\n+0ADCB4 Uncompressed Size     00000000 (0)\n+0ADCB8 Filename Length       0035 (53)\n+0ADCBA Extra Length          0009 (9)\n+0ADCBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xADCBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0ADCF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0ADCF3   Length              0005 (5)\n+0ADCF5   Flags               01 (1) 'Modification'\n+0ADCF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0ADCFA PAYLOAD\n+\n+0AE249 DATA DESCRIPTOR       08074B50 (134695760)\n+0AE24D CRC                   764B1E75 (1984634485)\n+0AE251 Compressed Size       0000054F (1359)\n+0AE255 Uncompressed Size     0000054F (1359)\n+\n+0AE259 LOCAL HEADER #346     04034B50 (67324752)\n+0AE25D Extract Zip Spec      14 (20) '2.0'\n+0AE25E Extract OS            00 (0) 'MS-DOS'\n+0AE25F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0AE261 Compression Method    0000 (0) 'Stored'\n+0AE263 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AE267 CRC                   00000000 (0)\n+0AE26B Compressed Size       00000000 (0)\n+0AE26F Uncompressed Size     00000000 (0)\n+0AE273 Filename Length       0038 (56)\n+0AE275 Extra Length          0009 (9)\n+0AE277 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAE277: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AE2AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AE2B1   Length              0005 (5)\n+0AE2B3   Flags               01 (1) 'Modification'\n+0AE2B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AE2B8 PAYLOAD\n+\n+0AE9C3 DATA DESCRIPTOR       08074B50 (134695760)\n+0AE9C7 CRC                   DA561E50 (3663076944)\n+0AE9CB Compressed Size       0000070B (1803)\n+0AE9CF Uncompressed Size     0000070B (1803)\n+\n+0AE9D3 LOCAL HEADER #347     04034B50 (67324752)\n+0AE9D7 Extract Zip Spec      14 (20) '2.0'\n+0AE9D8 Extract OS            00 (0) 'MS-DOS'\n+0AE9D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0AE9DB Compression Method    0000 (0) 'Stored'\n+0AE9DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AE9E1 CRC                   00000000 (0)\n+0AE9E5 Compressed Size       00000000 (0)\n+0AE9E9 Uncompressed Size     00000000 (0)\n+0AE9ED Filename Length       003E (62)\n+0AE9EF Extra Length          0009 (9)\n+0AE9F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAE9F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AEA2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AEA31   Length              0005 (5)\n+0AEA33   Flags               01 (1) 'Modification'\n+0AEA34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AEA38 PAYLOAD\n+\n+0AF5F3 DATA DESCRIPTOR       08074B50 (134695760)\n+0AF5F7 CRC                   D1926FA5 (3516034981)\n+0AF5FB Compressed Size       00000BBB (3003)\n+0AF5FF Uncompressed Size     00000BBB (3003)\n+\n+0AF603 LOCAL HEADER #348     04034B50 (67324752)\n+0AF607 Extract Zip Spec      14 (20) '2.0'\n+0AF608 Extract OS            00 (0) 'MS-DOS'\n+0AF609 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0AF60B Compression Method    0000 (0) 'Stored'\n+0AF60D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0AF611 CRC                   00000000 (0)\n+0AF615 Compressed Size       00000000 (0)\n+0AF619 Uncompressed Size     00000000 (0)\n+0AF61D Filename Length       003C (60)\n+0AF61F Extra Length          0009 (9)\n+0AF621 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xAF621: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0AF65D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0AF65F   Length              0005 (5)\n+0AF661   Flags               01 (1) 'Modification'\n+0AF662   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0AF666 PAYLOAD\n+\n+0B0279 DATA DESCRIPTOR       08074B50 (134695760)\n+0B027D CRC                   4F5E3DED (1331576301)\n+0B0281 Compressed Size       00000C13 (3091)\n+0B0285 Uncompressed Size     00000C13 (3091)\n+\n+0B0289 LOCAL HEADER #349     04034B50 (67324752)\n+0B028D Extract Zip Spec      14 (20) '2.0'\n+0B028E Extract OS            00 (0) 'MS-DOS'\n+0B028F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0B0291 Compression Method    0000 (0) 'Stored'\n+0B0293 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B0297 CRC                   00000000 (0)\n+0B029B Compressed Size       00000000 (0)\n+0B029F Uncompressed Size     00000000 (0)\n+0B02A3 Filename Length       0036 (54)\n+0B02A5 Extra Length          0009 (9)\n+0B02A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB02A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B02DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B02DF   Length              0005 (5)\n+0B02E1   Flags               01 (1) 'Modification'\n+0B02E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B02E6 PAYLOAD\n+\n+0B0C75 DATA DESCRIPTOR       08074B50 (134695760)\n+0B0C79 CRC                   C66F6586 (3329189254)\n+0B0C7D Compressed Size       0000098F (2447)\n+0B0C81 Uncompressed Size     0000098F (2447)\n+\n+0B0C85 LOCAL HEADER #350     04034B50 (67324752)\n+0B0C89 Extract Zip Spec      14 (20) '2.0'\n+0B0C8A Extract OS            00 (0) 'MS-DOS'\n+0B0C8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0B0C8D Compression Method    0000 (0) 'Stored'\n+0B0C8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B0C93 CRC                   00000000 (0)\n+0B0C97 Compressed Size       00000000 (0)\n+0B0C9B Uncompressed Size     00000000 (0)\n+0B0C9F Filename Length       003B (59)\n+0B0CA1 Extra Length          0009 (9)\n+0B0CA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB0CA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B0CDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B0CE0   Length              0005 (5)\n+0B0CE2   Flags               01 (1) 'Modification'\n+0B0CE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B0CE7 PAYLOAD\n+\n+0B1BC6 DATA DESCRIPTOR       08074B50 (134695760)\n+0B1BCA CRC                   9EFE4E67 (2667466343)\n+0B1BCE Compressed Size       00000EDF (3807)\n+0B1BD2 Uncompressed Size     00000EDF (3807)\n+\n+0B1BD6 LOCAL HEADER #351     04034B50 (67324752)\n+0B1BDA Extract Zip Spec      14 (20) '2.0'\n+0B1BDB Extract OS            00 (0) 'MS-DOS'\n+0B1BDC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0B1BDE Compression Method    0000 (0) 'Stored'\n+0B1BE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B1BE4 CRC                   00000000 (0)\n+0B1BE8 Compressed Size       00000000 (0)\n+0B1BEC Uncompressed Size     00000000 (0)\n+0B1BF0 Filename Length       0038 (56)\n+0B1BF2 Extra Length          0009 (9)\n+0B1BF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB1BF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B1C2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B1C2E   Length              0005 (5)\n+0B1C30   Flags               01 (1) 'Modification'\n+0B1C31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B1C35 PAYLOAD\n+\n+0B338D DATA DESCRIPTOR       08074B50 (134695760)\n+0B3391 CRC                   CC968FE2 (3432419298)\n+0B3395 Compressed Size       00001758 (5976)\n+0B3399 Uncompressed Size     00001758 (5976)\n+\n+0B339D LOCAL HEADER #352     04034B50 (67324752)\n+0B33A1 Extract Zip Spec      14 (20) '2.0'\n+0B33A2 Extract OS            00 (0) 'MS-DOS'\n+0B33A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0B33A5 Compression Method    0000 (0) 'Stored'\n+0B33A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0B33AB CRC                   00000000 (0)\n+0B33AF Compressed Size       00000000 (0)\n+0B33B3 Uncompressed Size     00000000 (0)\n+0B33B7 Filename Length       0034 (52)\n+0B33B9 Extra Length          0009 (9)\n+0B33BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xB33BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0B33EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0B33F1   Length              0005 (5)\n+0B33F3   Flags               01 (1) 'Modification'\n+0B33F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0B33F8 PAYLOAD\n+\n+0C941E DATA DESCRIPTOR       08074B50 (134695760)\n+0C9422 CRC                   42CFBA07 (1120909831)\n+0C9426 Compressed Size       00016026 (90150)\n+0C942A Uncompressed Size     00016026 (90150)\n+\n+0C942E LOCAL HEADER #353     04034B50 (67324752)\n+0C9432 Extract Zip Spec      14 (20) '2.0'\n+0C9433 Extract OS            00 (0) 'MS-DOS'\n+0C9434 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0C9436 Compression Method    0000 (0) 'Stored'\n+0C9438 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0C943C CRC                   00000000 (0)\n+0C9440 Compressed Size       00000000 (0)\n+0C9444 Uncompressed Size     00000000 (0)\n+0C9448 Filename Length       0035 (53)\n+0C944A Extra Length          0009 (9)\n+0C944C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xC944C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0C9481 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0C9483   Length              0005 (5)\n+0C9485   Flags               01 (1) 'Modification'\n+0C9486   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0C948A PAYLOAD\n+\n+0D338D DATA DESCRIPTOR       08074B50 (134695760)\n+0D3391 CRC                   038157DF (58808287)\n+0D3395 Compressed Size       00009F03 (40707)\n+0D3399 Uncompressed Size     00009F03 (40707)\n+\n+0D339D LOCAL HEADER #354     04034B50 (67324752)\n+0D33A1 Extract Zip Spec      14 (20) '2.0'\n+0D33A2 Extract OS            00 (0) 'MS-DOS'\n+0D33A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0D33A5 Compression Method    0000 (0) 'Stored'\n+0D33A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D33AB CRC                   00000000 (0)\n+0D33AF Compressed Size       00000000 (0)\n+0D33B3 Uncompressed Size     00000000 (0)\n+0D33B7 Filename Length       003D (61)\n+0D33B9 Extra Length          0009 (9)\n+0D33BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD33BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D33F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D33FA   Length              0005 (5)\n+0D33FC   Flags               01 (1) 'Modification'\n+0D33FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D3401 PAYLOAD\n+\n+0D4789 DATA DESCRIPTOR       08074B50 (134695760)\n+0D478D CRC                   FF195881 (4279851137)\n+0D4791 Compressed Size       00001388 (5000)\n+0D4795 Uncompressed Size     00001388 (5000)\n+\n+0D4799 LOCAL HEADER #355     04034B50 (67324752)\n+0D479D Extract Zip Spec      14 (20) '2.0'\n+0D479E Extract OS            00 (0) 'MS-DOS'\n+0D479F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0D47A1 Compression Method    0000 (0) 'Stored'\n+0D47A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D47A7 CRC                   00000000 (0)\n+0D47AB Compressed Size       00000000 (0)\n+0D47AF Uncompressed Size     00000000 (0)\n+0D47B3 Filename Length       003E (62)\n+0D47B5 Extra Length          0009 (9)\n+0D47B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD47B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D47F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D47F7   Length              0005 (5)\n+0D47F9   Flags               01 (1) 'Modification'\n+0D47FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D47FE PAYLOAD\n+\n+0D5537 DATA DESCRIPTOR       08074B50 (134695760)\n+0D553B CRC                   8611C8ED (2249312493)\n+0D553F Compressed Size       00000D39 (3385)\n+0D5543 Uncompressed Size     00000D39 (3385)\n+\n+0D5547 LOCAL HEADER #356     04034B50 (67324752)\n+0D554B Extract Zip Spec      14 (20) '2.0'\n+0D554C Extract OS            00 (0) 'MS-DOS'\n+0D554D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0D554F Compression Method    0000 (0) 'Stored'\n+0D5551 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D5555 CRC                   00000000 (0)\n+0D5559 Compressed Size       00000000 (0)\n+0D555D Uncompressed Size     00000000 (0)\n+0D5561 Filename Length       003E (62)\n+0D5563 Extra Length          0009 (9)\n+0D5565 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD5565: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D55A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D55A5   Length              0005 (5)\n+0D55A7   Flags               01 (1) 'Modification'\n+0D55A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D55AC PAYLOAD\n+\n+0D6876 DATA DESCRIPTOR       08074B50 (134695760)\n+0D687A CRC                   654FFB26 (1699740454)\n+0D687E Compressed Size       000012CA (4810)\n+0D6882 Uncompressed Size     000012CA (4810)\n+\n+0D6886 LOCAL HEADER #357     04034B50 (67324752)\n+0D688A Extract Zip Spec      14 (20) '2.0'\n+0D688B Extract OS            00 (0) 'MS-DOS'\n+0D688C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0D688E Compression Method    0000 (0) 'Stored'\n+0D6890 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D6894 CRC                   00000000 (0)\n+0D6898 Compressed Size       00000000 (0)\n+0D689C Uncompressed Size     00000000 (0)\n+0D68A0 Filename Length       003F (63)\n+0D68A2 Extra Length          0009 (9)\n+0D68A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD68A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D68E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D68E5   Length              0005 (5)\n+0D68E7   Flags               01 (1) 'Modification'\n+0D68E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D68EC PAYLOAD\n+\n+0D7B6B DATA DESCRIPTOR       08074B50 (134695760)\n+0D7B6F CRC                   D684F652 (3599038034)\n+0D7B73 Compressed Size       0000127F (4735)\n+0D7B77 Uncompressed Size     0000127F (4735)\n+\n+0D7B7B LOCAL HEADER #358     04034B50 (67324752)\n+0D7B7F Extract Zip Spec      14 (20) '2.0'\n+0D7B80 Extract OS            00 (0) 'MS-DOS'\n+0D7B81 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0D7B83 Compression Method    0000 (0) 'Stored'\n+0D7B85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0D7B89 CRC                   00000000 (0)\n+0D7B8D Compressed Size       00000000 (0)\n+0D7B91 Uncompressed Size     00000000 (0)\n+0D7B95 Filename Length       0038 (56)\n+0D7B97 Extra Length          0009 (9)\n+0D7B99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xD7B99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0D7BD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0D7BD3   Length              0005 (5)\n+0D7BD5   Flags               01 (1) 'Modification'\n+0D7BD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0D7BDA PAYLOAD\n+\n+0E5D6F DATA DESCRIPTOR       08074B50 (134695760)\n+0E5D73 CRC                   61E4315C (1642344796)\n+0E5D77 Compressed Size       0000E195 (57749)\n+0E5D7B Uncompressed Size     0000E195 (57749)\n+\n+0E5D7F LOCAL HEADER #359     04034B50 (67324752)\n+0E5D83 Extract Zip Spec      14 (20) '2.0'\n+0E5D84 Extract OS            00 (0) 'MS-DOS'\n+0E5D85 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0E5D87 Compression Method    0000 (0) 'Stored'\n+0E5D89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E5D8D CRC                   00000000 (0)\n+0E5D91 Compressed Size       00000000 (0)\n+0E5D95 Uncompressed Size     00000000 (0)\n+0E5D99 Filename Length       0036 (54)\n+0E5D9B Extra Length          0009 (9)\n+0E5D9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE5D9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E5DD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E5DD5   Length              0005 (5)\n+0E5DD7   Flags               01 (1) 'Modification'\n+0E5DD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E5DDC PAYLOAD\n+\n+0E6A1E DATA DESCRIPTOR       08074B50 (134695760)\n+0E6A22 CRC                   9B537823 (2605938723)\n+0E6A26 Compressed Size       00000C42 (3138)\n+0E6A2A Uncompressed Size     00000C42 (3138)\n+\n+0E6A2E LOCAL HEADER #360     04034B50 (67324752)\n+0E6A32 Extract Zip Spec      14 (20) '2.0'\n+0E6A33 Extract OS            00 (0) 'MS-DOS'\n+0E6A34 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0E6A36 Compression Method    0000 (0) 'Stored'\n+0E6A38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E6A3C CRC                   00000000 (0)\n+0E6A40 Compressed Size       00000000 (0)\n+0E6A44 Uncompressed Size     00000000 (0)\n+0E6A48 Filename Length       003C (60)\n+0E6A4A Extra Length          0009 (9)\n+0E6A4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE6A4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E6A88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E6A8A   Length              0005 (5)\n+0E6A8C   Flags               01 (1) 'Modification'\n+0E6A8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E6A91 PAYLOAD\n+\n+0E75D6 DATA DESCRIPTOR       08074B50 (134695760)\n+0E75DA CRC                   091B09EC (152766956)\n+0E75DE Compressed Size       00000B45 (2885)\n+0E75E2 Uncompressed Size     00000B45 (2885)\n+\n+0E75E6 LOCAL HEADER #361     04034B50 (67324752)\n+0E75EA Extract Zip Spec      14 (20) '2.0'\n+0E75EB Extract OS            00 (0) 'MS-DOS'\n+0E75EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0E75EE Compression Method    0000 (0) 'Stored'\n+0E75F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E75F4 CRC                   00000000 (0)\n+0E75F8 Compressed Size       00000000 (0)\n+0E75FC Uncompressed Size     00000000 (0)\n+0E7600 Filename Length       0034 (52)\n+0E7602 Extra Length          0009 (9)\n+0E7604 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE7604: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E7638 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E763A   Length              0005 (5)\n+0E763C   Flags               01 (1) 'Modification'\n+0E763D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E7641 PAYLOAD\n+\n+0E7F6F DATA DESCRIPTOR       08074B50 (134695760)\n+0E7F73 CRC                   4654378B (1179924363)\n+0E7F77 Compressed Size       0000092E (2350)\n+0E7F7B Uncompressed Size     0000092E (2350)\n+\n+0E7F7F LOCAL HEADER #362     04034B50 (67324752)\n+0E7F83 Extract Zip Spec      14 (20) '2.0'\n+0E7F84 Extract OS            00 (0) 'MS-DOS'\n+0E7F85 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0E7F87 Compression Method    0000 (0) 'Stored'\n+0E7F89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0E7F8D CRC                   00000000 (0)\n+0E7F91 Compressed Size       00000000 (0)\n+0E7F95 Uncompressed Size     00000000 (0)\n+0E7F99 Filename Length       0033 (51)\n+0E7F9B Extra Length          0009 (9)\n+0E7F9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xE7F9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0E7FD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0E7FD2   Length              0005 (5)\n+0E7FD4   Flags               01 (1) 'Modification'\n+0E7FD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0E7FD9 PAYLOAD\n+\n+0F2271 DATA DESCRIPTOR       08074B50 (134695760)\n+0F2275 CRC                   7366BE52 (1936113234)\n+0F2279 Compressed Size       0000A298 (41624)\n+0F227D Uncompressed Size     0000A298 (41624)\n+\n+0F2281 LOCAL HEADER #363     04034B50 (67324752)\n+0F2285 Extract Zip Spec      14 (20) '2.0'\n+0F2286 Extract OS            00 (0) 'MS-DOS'\n+0F2287 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0F2289 Compression Method    0000 (0) 'Stored'\n+0F228B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F228F CRC                   00000000 (0)\n+0F2293 Compressed Size       00000000 (0)\n+0F2297 Uncompressed Size     00000000 (0)\n+0F229B Filename Length       003A (58)\n+0F229D Extra Length          0009 (9)\n+0F229F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF229F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F22D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F22DB   Length              0005 (5)\n+0F22DD   Flags               01 (1) 'Modification'\n+0F22DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F22E2 PAYLOAD\n+\n+0F30F0 DATA DESCRIPTOR       08074B50 (134695760)\n+0F30F4 CRC                   968E88D0 (2525923536)\n+0F30F8 Compressed Size       00000E0E (3598)\n+0F30FC Uncompressed Size     00000E0E (3598)\n+\n+0F3100 LOCAL HEADER #364     04034B50 (67324752)\n+0F3104 Extract Zip Spec      14 (20) '2.0'\n+0F3105 Extract OS            00 (0) 'MS-DOS'\n+0F3106 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0F3108 Compression Method    0000 (0) 'Stored'\n+0F310A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F310E CRC                   00000000 (0)\n+0F3112 Compressed Size       00000000 (0)\n+0F3116 Uncompressed Size     00000000 (0)\n+0F311A Filename Length       0034 (52)\n+0F311C Extra Length          0009 (9)\n+0F311E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF311E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F3152 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F3154   Length              0005 (5)\n+0F3156   Flags               01 (1) 'Modification'\n+0F3157   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F315B PAYLOAD\n+\n+0F8C0D DATA DESCRIPTOR       08074B50 (134695760)\n+0F8C11 CRC                   57F2E114 (1475535124)\n+0F8C15 Compressed Size       00005AB2 (23218)\n+0F8C19 Uncompressed Size     00005AB2 (23218)\n+\n+0F8C1D LOCAL HEADER #365     04034B50 (67324752)\n+0F8C21 Extract Zip Spec      14 (20) '2.0'\n+0F8C22 Extract OS            00 (0) 'MS-DOS'\n+0F8C23 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0F8C25 Compression Method    0000 (0) 'Stored'\n+0F8C27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F8C2B CRC                   00000000 (0)\n+0F8C2F Compressed Size       00000000 (0)\n+0F8C33 Uncompressed Size     00000000 (0)\n+0F8C37 Filename Length       003F (63)\n+0F8C39 Extra Length          0009 (9)\n+0F8C3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF8C3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F8C7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F8C7C   Length              0005 (5)\n+0F8C7E   Flags               01 (1) 'Modification'\n+0F8C7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F8C83 PAYLOAD\n+\n+0F99C9 DATA DESCRIPTOR       08074B50 (134695760)\n+0F99CD CRC                   14C32F61 (348335969)\n+0F99D1 Compressed Size       00000D46 (3398)\n+0F99D5 Uncompressed Size     00000D46 (3398)\n+\n+0F99D9 LOCAL HEADER #366     04034B50 (67324752)\n+0F99DD Extract Zip Spec      14 (20) '2.0'\n+0F99DE Extract OS            00 (0) 'MS-DOS'\n+0F99DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0F99E1 Compression Method    0000 (0) 'Stored'\n+0F99E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0F99E7 CRC                   00000000 (0)\n+0F99EB Compressed Size       00000000 (0)\n+0F99EF Uncompressed Size     00000000 (0)\n+0F99F3 Filename Length       0034 (52)\n+0F99F5 Extra Length          0009 (9)\n+0F99F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xF99F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0F9A2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0F9A2D   Length              0005 (5)\n+0F9A2F   Flags               01 (1) 'Modification'\n+0F9A30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0F9A34 PAYLOAD\n+\n+0FA89B DATA DESCRIPTOR       08074B50 (134695760)\n+0FA89F CRC                   69B75EA9 (1773625001)\n+0FA8A3 Compressed Size       00000E67 (3687)\n+0FA8A7 Uncompressed Size     00000E67 (3687)\n+\n+0FA8AB LOCAL HEADER #367     04034B50 (67324752)\n+0FA8AF Extract Zip Spec      14 (20) '2.0'\n+0FA8B0 Extract OS            00 (0) 'MS-DOS'\n+0FA8B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FA8B3 Compression Method    0000 (0) 'Stored'\n+0FA8B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FA8B9 CRC                   00000000 (0)\n+0FA8BD Compressed Size       00000000 (0)\n+0FA8C1 Uncompressed Size     00000000 (0)\n+0FA8C5 Filename Length       003A (58)\n+0FA8C7 Extra Length          0009 (9)\n+0FA8C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFA8C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FA903 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FA905   Length              0005 (5)\n+0FA907   Flags               01 (1) 'Modification'\n+0FA908   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FA90C PAYLOAD\n+\n+0FB298 DATA DESCRIPTOR       08074B50 (134695760)\n+0FB29C CRC                   265DEF91 (643690385)\n+0FB2A0 Compressed Size       0000098C (2444)\n+0FB2A4 Uncompressed Size     0000098C (2444)\n+\n+0FB2A8 LOCAL HEADER #368     04034B50 (67324752)\n+0FB2AC Extract Zip Spec      14 (20) '2.0'\n+0FB2AD Extract OS            00 (0) 'MS-DOS'\n+0FB2AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FB2B0 Compression Method    0000 (0) 'Stored'\n+0FB2B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FB2B6 CRC                   00000000 (0)\n+0FB2BA Compressed Size       00000000 (0)\n+0FB2BE Uncompressed Size     00000000 (0)\n+0FB2C2 Filename Length       003C (60)\n+0FB2C4 Extra Length          0009 (9)\n+0FB2C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFB2C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FB302 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FB304   Length              0005 (5)\n+0FB306   Flags               01 (1) 'Modification'\n+0FB307   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FB30B PAYLOAD\n+\n+0FBD12 DATA DESCRIPTOR       08074B50 (134695760)\n+0FBD16 CRC                   AC539B8F (2891160463)\n+0FBD1A Compressed Size       00000A07 (2567)\n+0FBD1E Uncompressed Size     00000A07 (2567)\n+\n+0FBD22 LOCAL HEADER #369     04034B50 (67324752)\n+0FBD26 Extract Zip Spec      14 (20) '2.0'\n+0FBD27 Extract OS            00 (0) 'MS-DOS'\n+0FBD28 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FBD2A Compression Method    0000 (0) 'Stored'\n+0FBD2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FBD30 CRC                   00000000 (0)\n+0FBD34 Compressed Size       00000000 (0)\n+0FBD38 Uncompressed Size     00000000 (0)\n+0FBD3C Filename Length       003D (61)\n+0FBD3E Extra Length          0009 (9)\n+0FBD40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFBD40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FBD7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FBD7F   Length              0005 (5)\n+0FBD81   Flags               01 (1) 'Modification'\n+0FBD82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FBD86 PAYLOAD\n+\n+0FD429 DATA DESCRIPTOR       08074B50 (134695760)\n+0FD42D CRC                   60D7241E (1624712222)\n+0FD431 Compressed Size       000016A3 (5795)\n+0FD435 Uncompressed Size     000016A3 (5795)\n+\n+0FD439 LOCAL HEADER #370     04034B50 (67324752)\n+0FD43D Extract Zip Spec      14 (20) '2.0'\n+0FD43E Extract OS            00 (0) 'MS-DOS'\n+0FD43F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FD441 Compression Method    0000 (0) 'Stored'\n+0FD443 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FD447 CRC                   00000000 (0)\n+0FD44B Compressed Size       00000000 (0)\n+0FD44F Uncompressed Size     00000000 (0)\n+0FD453 Filename Length       003E (62)\n+0FD455 Extra Length          0009 (9)\n+0FD457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFD457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FD495 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FD497   Length              0005 (5)\n+0FD499   Flags               01 (1) 'Modification'\n+0FD49A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FD49E PAYLOAD\n+\n+0FE7BD DATA DESCRIPTOR       08074B50 (134695760)\n+0FE7C1 CRC                   52E473B9 (1390703545)\n+0FE7C5 Compressed Size       0000131F (4895)\n+0FE7C9 Uncompressed Size     0000131F (4895)\n+\n+0FE7CD LOCAL HEADER #371     04034B50 (67324752)\n+0FE7D1 Extract Zip Spec      14 (20) '2.0'\n+0FE7D2 Extract OS            00 (0) 'MS-DOS'\n+0FE7D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FE7D5 Compression Method    0000 (0) 'Stored'\n+0FE7D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FE7DB CRC                   00000000 (0)\n+0FE7DF Compressed Size       00000000 (0)\n+0FE7E3 Uncompressed Size     00000000 (0)\n+0FE7E7 Filename Length       003E (62)\n+0FE7E9 Extra Length          0009 (9)\n+0FE7EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFE7EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FE829 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FE82B   Length              0005 (5)\n+0FE82D   Flags               01 (1) 'Modification'\n+0FE82E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FE832 PAYLOAD\n+\n+0FF409 DATA DESCRIPTOR       08074B50 (134695760)\n+0FF40D CRC                   430F5283 (1125077635)\n+0FF411 Compressed Size       00000BD7 (3031)\n+0FF415 Uncompressed Size     00000BD7 (3031)\n+\n+0FF419 LOCAL HEADER #372     04034B50 (67324752)\n+0FF41D Extract Zip Spec      14 (20) '2.0'\n+0FF41E Extract OS            00 (0) 'MS-DOS'\n+0FF41F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FF421 Compression Method    0000 (0) 'Stored'\n+0FF423 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FF427 CRC                   00000000 (0)\n+0FF42B Compressed Size       00000000 (0)\n+0FF42F Uncompressed Size     00000000 (0)\n+0FF433 Filename Length       0039 (57)\n+0FF435 Extra Length          0009 (9)\n+0FF437 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFF437: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FF470 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FF472   Length              0005 (5)\n+0FF474   Flags               01 (1) 'Modification'\n+0FF475   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FF479 PAYLOAD\n+\n+0FFF29 DATA DESCRIPTOR       08074B50 (134695760)\n+0FFF2D CRC                   66243DE3 (1713651171)\n+0FFF31 Compressed Size       00000AB0 (2736)\n+0FFF35 Uncompressed Size     00000AB0 (2736)\n+\n+0FFF39 LOCAL HEADER #373     04034B50 (67324752)\n+0FFF3D Extract Zip Spec      14 (20) '2.0'\n+0FFF3E Extract OS            00 (0) 'MS-DOS'\n+0FFF3F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+0FFF41 Compression Method    0000 (0) 'Stored'\n+0FFF43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+0FFF47 CRC                   00000000 (0)\n+0FFF4B Compressed Size       00000000 (0)\n+0FFF4F Uncompressed Size     00000000 (0)\n+0FFF53 Filename Length       003E (62)\n+0FFF55 Extra Length          0009 (9)\n+0FFF57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0xFFF57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+0FFF95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+0FFF97   Length              0005 (5)\n+0FFF99   Flags               01 (1) 'Modification'\n+0FFF9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+0FFF9E PAYLOAD\n+\n+1009CD DATA DESCRIPTOR       08074B50 (134695760)\n+1009D1 CRC                   1BFC238A (469509002)\n+1009D5 Compressed Size       00000A2F (2607)\n+1009D9 Uncompressed Size     00000A2F (2607)\n+\n+1009DD LOCAL HEADER #374     04034B50 (67324752)\n+1009E1 Extract Zip Spec      14 (20) '2.0'\n+1009E2 Extract OS            00 (0) 'MS-DOS'\n+1009E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1009E5 Compression Method    0000 (0) 'Stored'\n+1009E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1009EB CRC                   00000000 (0)\n+1009EF Compressed Size       00000000 (0)\n+1009F3 Uncompressed Size     00000000 (0)\n+1009F7 Filename Length       003C (60)\n+1009F9 Extra Length          0009 (9)\n+1009FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1009FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+100A37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+100A39   Length              0005 (5)\n+100A3B   Flags               01 (1) 'Modification'\n+100A3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+100A40 PAYLOAD\n+\n+1015D9 DATA DESCRIPTOR       08074B50 (134695760)\n+1015DD CRC                   2E60A6BB (778086075)\n+1015E1 Compressed Size       00000B99 (2969)\n+1015E5 Uncompressed Size     00000B99 (2969)\n+\n+1015E9 LOCAL HEADER #375     04034B50 (67324752)\n+1015ED Extract Zip Spec      14 (20) '2.0'\n+1015EE Extract OS            00 (0) 'MS-DOS'\n+1015EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1015F1 Compression Method    0000 (0) 'Stored'\n+1015F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1015F7 CRC                   00000000 (0)\n+1015FB Compressed Size       00000000 (0)\n+1015FF Uncompressed Size     00000000 (0)\n+101603 Filename Length       0039 (57)\n+101605 Extra Length          0009 (9)\n+101607 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x101607: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+101640 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+101642   Length              0005 (5)\n+101644   Flags               01 (1) 'Modification'\n+101645   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+101649 PAYLOAD\n+\n+102235 DATA DESCRIPTOR       08074B50 (134695760)\n+102239 CRC                   0F4C49C0 (256657856)\n+10223D Compressed Size       00000BEC (3052)\n+102241 Uncompressed Size     00000BEC (3052)\n+\n+102245 LOCAL HEADER #376     04034B50 (67324752)\n+102249 Extract Zip Spec      14 (20) '2.0'\n+10224A Extract OS            00 (0) 'MS-DOS'\n+10224B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10224D Compression Method    0000 (0) 'Stored'\n+10224F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+102253 CRC                   00000000 (0)\n+102257 Compressed Size       00000000 (0)\n+10225B Uncompressed Size     00000000 (0)\n+10225F Filename Length       0037 (55)\n+102261 Extra Length          0009 (9)\n+102263 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x102263: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10229A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10229C   Length              0005 (5)\n+10229E   Flags               01 (1) 'Modification'\n+10229F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1022A3 PAYLOAD\n+\n+1083B5 DATA DESCRIPTOR       08074B50 (134695760)\n+1083B9 CRC                   FA00D04F (4194357327)\n+1083BD Compressed Size       00006112 (24850)\n+1083C1 Uncompressed Size     00006112 (24850)\n+\n+1083C5 LOCAL HEADER #377     04034B50 (67324752)\n+1083C9 Extract Zip Spec      14 (20) '2.0'\n+1083CA Extract OS            00 (0) 'MS-DOS'\n+1083CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1083CD Compression Method    0000 (0) 'Stored'\n+1083CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1083D3 CRC                   00000000 (0)\n+1083D7 Compressed Size       00000000 (0)\n+1083DB Uncompressed Size     00000000 (0)\n+1083DF Filename Length       0035 (53)\n+1083E1 Extra Length          0009 (9)\n+1083E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1083E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+108418 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10841A   Length              0005 (5)\n+10841C   Flags               01 (1) 'Modification'\n+10841D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+108421 PAYLOAD\n+\n+10BA2E DATA DESCRIPTOR       08074B50 (134695760)\n+10BA32 CRC                   339C3654 (865875540)\n+10BA36 Compressed Size       0000360D (13837)\n+10BA3A Uncompressed Size     0000360D (13837)\n+\n+10BA3E LOCAL HEADER #378     04034B50 (67324752)\n+10BA42 Extract Zip Spec      14 (20) '2.0'\n+10BA43 Extract OS            00 (0) 'MS-DOS'\n+10BA44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10BA46 Compression Method    0000 (0) 'Stored'\n+10BA48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10BA4C CRC                   00000000 (0)\n+10BA50 Compressed Size       00000000 (0)\n+10BA54 Uncompressed Size     00000000 (0)\n+10BA58 Filename Length       0033 (51)\n+10BA5A Extra Length          0009 (9)\n+10BA5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10BA5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10BA8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10BA91   Length              0005 (5)\n+10BA93   Flags               01 (1) 'Modification'\n+10BA94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10BA98 PAYLOAD\n+\n+10C7A1 DATA DESCRIPTOR       08074B50 (134695760)\n+10C7A5 CRC                   6E56FB5B (1851194203)\n+10C7A9 Compressed Size       00000D09 (3337)\n+10C7AD Uncompressed Size     00000D09 (3337)\n+\n+10C7B1 LOCAL HEADER #379     04034B50 (67324752)\n+10C7B5 Extract Zip Spec      14 (20) '2.0'\n+10C7B6 Extract OS            00 (0) 'MS-DOS'\n+10C7B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10C7B9 Compression Method    0000 (0) 'Stored'\n+10C7BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10C7BF CRC                   00000000 (0)\n+10C7C3 Compressed Size       00000000 (0)\n+10C7C7 Uncompressed Size     00000000 (0)\n+10C7CB Filename Length       0037 (55)\n+10C7CD Extra Length          0009 (9)\n+10C7CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10C7CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10C806 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10C808   Length              0005 (5)\n+10C80A   Flags               01 (1) 'Modification'\n+10C80B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10C80F PAYLOAD\n+\n+10D358 DATA DESCRIPTOR       08074B50 (134695760)\n+10D35C CRC                   D55758DF (3579271391)\n+10D360 Compressed Size       00000B49 (2889)\n+10D364 Uncompressed Size     00000B49 (2889)\n+\n+10D368 LOCAL HEADER #380     04034B50 (67324752)\n+10D36C Extract Zip Spec      14 (20) '2.0'\n+10D36D Extract OS            00 (0) 'MS-DOS'\n+10D36E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10D370 Compression Method    0000 (0) 'Stored'\n+10D372 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10D376 CRC                   00000000 (0)\n+10D37A Compressed Size       00000000 (0)\n+10D37E Uncompressed Size     00000000 (0)\n+10D382 Filename Length       0036 (54)\n+10D384 Extra Length          0009 (9)\n+10D386 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10D386: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10D3BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10D3BE   Length              0005 (5)\n+10D3C0   Flags               01 (1) 'Modification'\n+10D3C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10D3C5 PAYLOAD\n+\n+10EB0F DATA DESCRIPTOR       08074B50 (134695760)\n+10EB13 CRC                   67A3DA8B (1738791563)\n+10EB17 Compressed Size       0000174A (5962)\n+10EB1B Uncompressed Size     0000174A (5962)\n+\n+10EB1F LOCAL HEADER #381     04034B50 (67324752)\n+10EB23 Extract Zip Spec      14 (20) '2.0'\n+10EB24 Extract OS            00 (0) 'MS-DOS'\n+10EB25 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10EB27 Compression Method    0000 (0) 'Stored'\n+10EB29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10EB2D CRC                   00000000 (0)\n+10EB31 Compressed Size       00000000 (0)\n+10EB35 Uncompressed Size     00000000 (0)\n+10EB39 Filename Length       0034 (52)\n+10EB3B Extra Length          0009 (9)\n+10EB3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10EB3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10EB71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10EB73   Length              0005 (5)\n+10EB75   Flags               01 (1) 'Modification'\n+10EB76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10EB7A PAYLOAD\n+\n+10F9A6 DATA DESCRIPTOR       08074B50 (134695760)\n+10F9AA CRC                   BDD7BBBA (3185032122)\n+10F9AE Compressed Size       00000E2C (3628)\n+10F9B2 Uncompressed Size     00000E2C (3628)\n+\n+10F9B6 LOCAL HEADER #382     04034B50 (67324752)\n+10F9BA Extract Zip Spec      14 (20) '2.0'\n+10F9BB Extract OS            00 (0) 'MS-DOS'\n+10F9BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+10F9BE Compression Method    0000 (0) 'Stored'\n+10F9C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+10F9C4 CRC                   00000000 (0)\n+10F9C8 Compressed Size       00000000 (0)\n+10F9CC Uncompressed Size     00000000 (0)\n+10F9D0 Filename Length       0039 (57)\n+10F9D2 Extra Length          0009 (9)\n+10F9D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x10F9D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+10FA0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+10FA0F   Length              0005 (5)\n+10FA11   Flags               01 (1) 'Modification'\n+10FA12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+10FA16 PAYLOAD\n+\n+110778 DATA DESCRIPTOR       08074B50 (134695760)\n+11077C CRC                   96A3AA02 (2527308290)\n+110780 Compressed Size       00000D62 (3426)\n+110784 Uncompressed Size     00000D62 (3426)\n+\n+110788 LOCAL HEADER #383     04034B50 (67324752)\n+11078C Extract Zip Spec      14 (20) '2.0'\n+11078D Extract OS            00 (0) 'MS-DOS'\n+11078E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+110790 Compression Method    0000 (0) 'Stored'\n+110792 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+110796 CRC                   00000000 (0)\n+11079A Compressed Size       00000000 (0)\n+11079E Uncompressed Size     00000000 (0)\n+1107A2 Filename Length       0037 (55)\n+1107A4 Extra Length          0009 (9)\n+1107A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1107A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1107DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1107DF   Length              0005 (5)\n+1107E1   Flags               01 (1) 'Modification'\n+1107E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1107E6 PAYLOAD\n+\n+111246 DATA DESCRIPTOR       08074B50 (134695760)\n+11124A CRC                   D08B9F5C (3498811228)\n+11124E Compressed Size       00000A60 (2656)\n+111252 Uncompressed Size     00000A60 (2656)\n+\n+111256 LOCAL HEADER #384     04034B50 (67324752)\n+11125A Extract Zip Spec      14 (20) '2.0'\n+11125B Extract OS            00 (0) 'MS-DOS'\n+11125C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11125E Compression Method    0000 (0) 'Stored'\n+111260 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+111264 CRC                   00000000 (0)\n+111268 Compressed Size       00000000 (0)\n+11126C Uncompressed Size     00000000 (0)\n+111270 Filename Length       0031 (49)\n+111272 Extra Length          0009 (9)\n+111274 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x111274: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1112A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1112A7   Length              0005 (5)\n+1112A9   Flags               01 (1) 'Modification'\n+1112AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1112AE PAYLOAD\n+\n+111C56 DATA DESCRIPTOR       08074B50 (134695760)\n+111C5A CRC                   17688FAA (392728490)\n+111C5E Compressed Size       000009A8 (2472)\n+111C62 Uncompressed Size     000009A8 (2472)\n+\n+111C66 LOCAL HEADER #385     04034B50 (67324752)\n+111C6A Extract Zip Spec      14 (20) '2.0'\n+111C6B Extract OS            00 (0) 'MS-DOS'\n+111C6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+111C6E Compression Method    0000 (0) 'Stored'\n+111C70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+111C74 CRC                   00000000 (0)\n+111C78 Compressed Size       00000000 (0)\n+111C7C Uncompressed Size     00000000 (0)\n+111C80 Filename Length       0038 (56)\n+111C82 Extra Length          0009 (9)\n+111C84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x111C84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+111CBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+111CBE   Length              0005 (5)\n+111CC0   Flags               01 (1) 'Modification'\n+111CC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+111CC5 PAYLOAD\n+\n+118612 DATA DESCRIPTOR       08074B50 (134695760)\n+118616 CRC                   E14A6B5A (3779750746)\n+11861A Compressed Size       0000694D (26957)\n+11861E Uncompressed Size     0000694D (26957)\n+\n+118622 LOCAL HEADER #386     04034B50 (67324752)\n+118626 Extract Zip Spec      14 (20) '2.0'\n+118627 Extract OS            00 (0) 'MS-DOS'\n+118628 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11862A Compression Method    0000 (0) 'Stored'\n+11862C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+118630 CRC                   00000000 (0)\n+118634 Compressed Size       00000000 (0)\n+118638 Uncompressed Size     00000000 (0)\n+11863C Filename Length       003A (58)\n+11863E Extra Length          0009 (9)\n+118640 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x118640: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11867A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11867C   Length              0005 (5)\n+11867E   Flags               01 (1) 'Modification'\n+11867F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+118683 PAYLOAD\n+\n+1196F2 DATA DESCRIPTOR       08074B50 (134695760)\n+1196F6 CRC                   515E6059 (1365139545)\n+1196FA Compressed Size       0000106F (4207)\n+1196FE Uncompressed Size     0000106F (4207)\n+\n+119702 LOCAL HEADER #387     04034B50 (67324752)\n+119706 Extract Zip Spec      14 (20) '2.0'\n+119707 Extract OS            00 (0) 'MS-DOS'\n+119708 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11970A Compression Method    0000 (0) 'Stored'\n+11970C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+119710 CRC                   00000000 (0)\n+119714 Compressed Size       00000000 (0)\n+119718 Uncompressed Size     00000000 (0)\n+11971C Filename Length       0038 (56)\n+11971E Extra Length          0009 (9)\n+119720 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x119720: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+119758 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11975A   Length              0005 (5)\n+11975C   Flags               01 (1) 'Modification'\n+11975D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+119761 PAYLOAD\n+\n+11A407 DATA DESCRIPTOR       08074B50 (134695760)\n+11A40B CRC                   5238B40F (1379447823)\n+11A40F Compressed Size       00000CA6 (3238)\n+11A413 Uncompressed Size     00000CA6 (3238)\n+\n+11A417 LOCAL HEADER #388     04034B50 (67324752)\n+11A41B Extract Zip Spec      14 (20) '2.0'\n+11A41C Extract OS            00 (0) 'MS-DOS'\n+11A41D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11A41F Compression Method    0000 (0) 'Stored'\n+11A421 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11A425 CRC                   00000000 (0)\n+11A429 Compressed Size       00000000 (0)\n+11A42D Uncompressed Size     00000000 (0)\n+11A431 Filename Length       0044 (68)\n+11A433 Extra Length          0009 (9)\n+11A435 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11A435: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11A479 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11A47B   Length              0005 (5)\n+11A47D   Flags               01 (1) 'Modification'\n+11A47E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11A482 PAYLOAD\n+\n+11AECD DATA DESCRIPTOR       08074B50 (134695760)\n+11AED1 CRC                   9A414F54 (2587971412)\n+11AED5 Compressed Size       00000A4B (2635)\n+11AED9 Uncompressed Size     00000A4B (2635)\n+\n+11AEDD LOCAL HEADER #389     04034B50 (67324752)\n+11AEE1 Extract Zip Spec      14 (20) '2.0'\n+11AEE2 Extract OS            00 (0) 'MS-DOS'\n+11AEE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11AEE5 Compression Method    0000 (0) 'Stored'\n+11AEE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11AEEB CRC                   00000000 (0)\n+11AEEF Compressed Size       00000000 (0)\n+11AEF3 Uncompressed Size     00000000 (0)\n+11AEF7 Filename Length       003E (62)\n+11AEF9 Extra Length          0009 (9)\n+11AEFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11AEFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11AF39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11AF3B   Length              0005 (5)\n+11AF3D   Flags               01 (1) 'Modification'\n+11AF3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11AF42 PAYLOAD\n+\n+11BF4A DATA DESCRIPTOR       08074B50 (134695760)\n+11BF4E CRC                   DD24EE95 (3710185109)\n+11BF52 Compressed Size       00001008 (4104)\n+11BF56 Uncompressed Size     00001008 (4104)\n+\n+11BF5A LOCAL HEADER #390     04034B50 (67324752)\n+11BF5E Extract Zip Spec      14 (20) '2.0'\n+11BF5F Extract OS            00 (0) 'MS-DOS'\n+11BF60 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11BF62 Compression Method    0000 (0) 'Stored'\n+11BF64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11BF68 CRC                   00000000 (0)\n+11BF6C Compressed Size       00000000 (0)\n+11BF70 Uncompressed Size     00000000 (0)\n+11BF74 Filename Length       003C (60)\n+11BF76 Extra Length          0009 (9)\n+11BF78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11BF78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11BFB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11BFB6   Length              0005 (5)\n+11BFB8   Flags               01 (1) 'Modification'\n+11BFB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11BFBD PAYLOAD\n+\n+11CC3C DATA DESCRIPTOR       08074B50 (134695760)\n+11CC40 CRC                   00A2AB95 (10660757)\n+11CC44 Compressed Size       00000C7F (3199)\n+11CC48 Uncompressed Size     00000C7F (3199)\n+\n+11CC4C LOCAL HEADER #391     04034B50 (67324752)\n+11CC50 Extract Zip Spec      14 (20) '2.0'\n+11CC51 Extract OS            00 (0) 'MS-DOS'\n+11CC52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11CC54 Compression Method    0000 (0) 'Stored'\n+11CC56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11CC5A CRC                   00000000 (0)\n+11CC5E Compressed Size       00000000 (0)\n+11CC62 Uncompressed Size     00000000 (0)\n+11CC66 Filename Length       003A (58)\n+11CC68 Extra Length          0009 (9)\n+11CC6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11CC6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11CCA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11CCA6   Length              0005 (5)\n+11CCA8   Flags               01 (1) 'Modification'\n+11CCA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11CCAD PAYLOAD\n+\n+11D767 DATA DESCRIPTOR       08074B50 (134695760)\n+11D76B CRC                   165EFEE5 (375324389)\n+11D76F Compressed Size       00000ABA (2746)\n+11D773 Uncompressed Size     00000ABA (2746)\n+\n+11D777 LOCAL HEADER #392     04034B50 (67324752)\n+11D77B Extract Zip Spec      14 (20) '2.0'\n+11D77C Extract OS            00 (0) 'MS-DOS'\n+11D77D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11D77F Compression Method    0000 (0) 'Stored'\n+11D781 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11D785 CRC                   00000000 (0)\n+11D789 Compressed Size       00000000 (0)\n+11D78D Uncompressed Size     00000000 (0)\n+11D791 Filename Length       0037 (55)\n+11D793 Extra Length          0009 (9)\n+11D795 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11D795: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11D7CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11D7CE   Length              0005 (5)\n+11D7D0   Flags               01 (1) 'Modification'\n+11D7D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11D7D5 PAYLOAD\n+\n+11DA3F DATA DESCRIPTOR       08074B50 (134695760)\n+11DA43 CRC                   E295C65E (3801466462)\n+11DA47 Compressed Size       0000026A (618)\n+11DA4B Uncompressed Size     0000026A (618)\n+\n+11DA4F LOCAL HEADER #393     04034B50 (67324752)\n+11DA53 Extract Zip Spec      14 (20) '2.0'\n+11DA54 Extract OS            00 (0) 'MS-DOS'\n+11DA55 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11DA57 Compression Method    0000 (0) 'Stored'\n+11DA59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11DA5D CRC                   00000000 (0)\n+11DA61 Compressed Size       00000000 (0)\n+11DA65 Uncompressed Size     00000000 (0)\n+11DA69 Filename Length       0038 (56)\n+11DA6B Extra Length          0009 (9)\n+11DA6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11DA6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11DAA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11DAA7   Length              0005 (5)\n+11DAA9   Flags               01 (1) 'Modification'\n+11DAAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11DAAE PAYLOAD\n+\n+11E7A7 DATA DESCRIPTOR       08074B50 (134695760)\n+11E7AB CRC                   EA548F41 (3931410241)\n+11E7AF Compressed Size       00000CF9 (3321)\n+11E7B3 Uncompressed Size     00000CF9 (3321)\n+\n+11E7B7 LOCAL HEADER #394     04034B50 (67324752)\n+11E7BB Extract Zip Spec      14 (20) '2.0'\n+11E7BC Extract OS            00 (0) 'MS-DOS'\n+11E7BD General Purpose Flag  0000 (0)\n+11E7BF Compression Method    0000 (0) 'Stored'\n+11E7C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11E7C5 CRC                   00000000 (0)\n+11E7C9 Compressed Size       00000000 (0)\n+11E7CD Uncompressed Size     00000000 (0)\n+11E7D1 Filename Length       0028 (40)\n+11E7D3 Extra Length          0009 (9)\n+11E7D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11E7D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11E7FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11E7FF   Length              0005 (5)\n+11E801   Flags               01 (1) 'Modification'\n+11E802   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+11E806 LOCAL HEADER #395     04034B50 (67324752)\n+11E80A Extract Zip Spec      14 (20) '2.0'\n+11E80B Extract OS            00 (0) 'MS-DOS'\n+11E80C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11E80E Compression Method    0000 (0) 'Stored'\n+11E810 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11E814 CRC                   00000000 (0)\n+11E818 Compressed Size       00000000 (0)\n+11E81C Uncompressed Size     00000000 (0)\n+11E820 Filename Length       003B (59)\n+11E822 Extra Length          0009 (9)\n+11E824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11E824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11E85F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11E861   Length              0005 (5)\n+11E863   Flags               01 (1) 'Modification'\n+11E864   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11E868 PAYLOAD\n+\n+11F006 DATA DESCRIPTOR       08074B50 (134695760)\n+11F00A CRC                   F75A753A (4149900602)\n+11F00E Compressed Size       0000079E (1950)\n+11F012 Uncompressed Size     0000079E (1950)\n+\n+11F016 LOCAL HEADER #396     04034B50 (67324752)\n+11F01A Extract Zip Spec      14 (20) '2.0'\n+11F01B Extract OS            00 (0) 'MS-DOS'\n+11F01C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11F01E Compression Method    0000 (0) 'Stored'\n+11F020 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11F024 CRC                   00000000 (0)\n+11F028 Compressed Size       00000000 (0)\n+11F02C Uncompressed Size     00000000 (0)\n+11F030 Filename Length       003A (58)\n+11F032 Extra Length          0009 (9)\n+11F034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11F034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11F06E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11F070   Length              0005 (5)\n+11F072   Flags               01 (1) 'Modification'\n+11F073   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11F077 PAYLOAD\n+\n+11F818 DATA DESCRIPTOR       08074B50 (134695760)\n+11F81C CRC                   44EA1A2E (1156192814)\n+11F820 Compressed Size       000007A1 (1953)\n+11F824 Uncompressed Size     000007A1 (1953)\n+\n+11F828 LOCAL HEADER #397     04034B50 (67324752)\n+11F82C Extract Zip Spec      14 (20) '2.0'\n+11F82D Extract OS            00 (0) 'MS-DOS'\n+11F82E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+11F830 Compression Method    0000 (0) 'Stored'\n+11F832 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+11F836 CRC                   00000000 (0)\n+11F83A Compressed Size       00000000 (0)\n+11F83E Uncompressed Size     00000000 (0)\n+11F842 Filename Length       0040 (64)\n+11F844 Extra Length          0009 (9)\n+11F846 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x11F846: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+11F886 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+11F888   Length              0005 (5)\n+11F88A   Flags               01 (1) 'Modification'\n+11F88B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+11F88F PAYLOAD\n+\n+120041 DATA DESCRIPTOR       08074B50 (134695760)\n+120045 CRC                   0EA48277 (245662327)\n+120049 Compressed Size       000007B2 (1970)\n+12004D Uncompressed Size     000007B2 (1970)\n+\n+120051 LOCAL HEADER #398     04034B50 (67324752)\n+120055 Extract Zip Spec      14 (20) '2.0'\n+120056 Extract OS            00 (0) 'MS-DOS'\n+120057 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+120059 Compression Method    0000 (0) 'Stored'\n+12005B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12005F CRC                   00000000 (0)\n+120063 Compressed Size       00000000 (0)\n+120067 Uncompressed Size     00000000 (0)\n+12006B Filename Length       003C (60)\n+12006D Extra Length          0009 (9)\n+12006F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12006F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1200AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1200AD   Length              0005 (5)\n+1200AF   Flags               01 (1) 'Modification'\n+1200B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1200B4 PAYLOAD\n+\n+1208CF DATA DESCRIPTOR       08074B50 (134695760)\n+1208D3 CRC                   4D63953A (1298371898)\n+1208D7 Compressed Size       0000081B (2075)\n+1208DB Uncompressed Size     0000081B (2075)\n+\n+1208DF LOCAL HEADER #399     04034B50 (67324752)\n+1208E3 Extract Zip Spec      14 (20) '2.0'\n+1208E4 Extract OS            00 (0) 'MS-DOS'\n+1208E5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1208E7 Compression Method    0000 (0) 'Stored'\n+1208E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1208ED CRC                   00000000 (0)\n+1208F1 Compressed Size       00000000 (0)\n+1208F5 Uncompressed Size     00000000 (0)\n+1208F9 Filename Length       0040 (64)\n+1208FB Extra Length          0009 (9)\n+1208FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1208FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12093D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12093F   Length              0005 (5)\n+120941   Flags               01 (1) 'Modification'\n+120942   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+120946 PAYLOAD\n+\n+12111F DATA DESCRIPTOR       08074B50 (134695760)\n+121123 CRC                   3ADD7788 (987592584)\n+121127 Compressed Size       000007D9 (2009)\n+12112B Uncompressed Size     000007D9 (2009)\n+\n+12112F LOCAL HEADER #400     04034B50 (67324752)\n+121133 Extract Zip Spec      14 (20) '2.0'\n+121134 Extract OS            00 (0) 'MS-DOS'\n+121135 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+121137 Compression Method    0000 (0) 'Stored'\n+121139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12113D CRC                   00000000 (0)\n+121141 Compressed Size       00000000 (0)\n+121145 Uncompressed Size     00000000 (0)\n+121149 Filename Length       003C (60)\n+12114B Extra Length          0009 (9)\n+12114D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12114D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+121189 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12118B   Length              0005 (5)\n+12118D   Flags               01 (1) 'Modification'\n+12118E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+121192 PAYLOAD\n+\n+121A3B DATA DESCRIPTOR       08074B50 (134695760)\n+121A3F CRC                   0C426FFB (205680635)\n+121A43 Compressed Size       000008A9 (2217)\n+121A47 Uncompressed Size     000008A9 (2217)\n+\n+121A4B LOCAL HEADER #401     04034B50 (67324752)\n+121A4F Extract Zip Spec      14 (20) '2.0'\n+121A50 Extract OS            00 (0) 'MS-DOS'\n+121A51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+121A53 Compression Method    0000 (0) 'Stored'\n+121A55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+121A59 CRC                   00000000 (0)\n+121A5D Compressed Size       00000000 (0)\n+121A61 Uncompressed Size     00000000 (0)\n+121A65 Filename Length       003B (59)\n+121A67 Extra Length          0009 (9)\n+121A69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x121A69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+121AA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+121AA6   Length              0005 (5)\n+121AA8   Flags               01 (1) 'Modification'\n+121AA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+121AAD PAYLOAD\n+\n+12223F DATA DESCRIPTOR       08074B50 (134695760)\n+122243 CRC                   4BAE3F59 (1269710681)\n+122247 Compressed Size       00000792 (1938)\n+12224B Uncompressed Size     00000792 (1938)\n+\n+12224F LOCAL HEADER #402     04034B50 (67324752)\n+122253 Extract Zip Spec      14 (20) '2.0'\n+122254 Extract OS            00 (0) 'MS-DOS'\n+122255 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+122257 Compression Method    0000 (0) 'Stored'\n+122259 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12225D CRC                   00000000 (0)\n+122261 Compressed Size       00000000 (0)\n+122265 Uncompressed Size     00000000 (0)\n+122269 Filename Length       0041 (65)\n+12226B Extra Length          0009 (9)\n+12226D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12226D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1222AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1222B0   Length              0005 (5)\n+1222B2   Flags               01 (1) 'Modification'\n+1222B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1222B7 PAYLOAD\n+\n+122ABA DATA DESCRIPTOR       08074B50 (134695760)\n+122ABE CRC                   A4C4918F (2764345743)\n+122AC2 Compressed Size       00000803 (2051)\n+122AC6 Uncompressed Size     00000803 (2051)\n+\n+122ACA LOCAL HEADER #403     04034B50 (67324752)\n+122ACE Extract Zip Spec      14 (20) '2.0'\n+122ACF Extract OS            00 (0) 'MS-DOS'\n+122AD0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+122AD2 Compression Method    0000 (0) 'Stored'\n+122AD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+122AD8 CRC                   00000000 (0)\n+122ADC Compressed Size       00000000 (0)\n+122AE0 Uncompressed Size     00000000 (0)\n+122AE4 Filename Length       003D (61)\n+122AE6 Extra Length          0009 (9)\n+122AE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x122AE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+122B25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+122B27   Length              0005 (5)\n+122B29   Flags               01 (1) 'Modification'\n+122B2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+122B2E PAYLOAD\n+\n+123323 DATA DESCRIPTOR       08074B50 (134695760)\n+123327 CRC                   8696E439 (2258035769)\n+12332B Compressed Size       000007F5 (2037)\n+12332F Uncompressed Size     000007F5 (2037)\n+\n+123333 LOCAL HEADER #404     04034B50 (67324752)\n+123337 Extract Zip Spec      14 (20) '2.0'\n+123338 Extract OS            00 (0) 'MS-DOS'\n+123339 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+12333B Compression Method    0000 (0) 'Stored'\n+12333D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+123341 CRC                   00000000 (0)\n+123345 Compressed Size       00000000 (0)\n+123349 Uncompressed Size     00000000 (0)\n+12334D Filename Length       0039 (57)\n+12334F Extra Length          0009 (9)\n+123351 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x123351: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12338A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12338C   Length              0005 (5)\n+12338E   Flags               01 (1) 'Modification'\n+12338F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+123393 PAYLOAD\n+\n+123BA2 DATA DESCRIPTOR       08074B50 (134695760)\n+123BA6 CRC                   28964A03 (680937987)\n+123BAA Compressed Size       0000080F (2063)\n+123BAE Uncompressed Size     0000080F (2063)\n+\n+123BB2 LOCAL HEADER #405     04034B50 (67324752)\n+123BB6 Extract Zip Spec      14 (20) '2.0'\n+123BB7 Extract OS            00 (0) 'MS-DOS'\n+123BB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+123BBA Compression Method    0000 (0) 'Stored'\n+123BBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+123BC0 CRC                   00000000 (0)\n+123BC4 Compressed Size       00000000 (0)\n+123BC8 Uncompressed Size     00000000 (0)\n+123BCC Filename Length       0037 (55)\n+123BCE Extra Length          0009 (9)\n+123BD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x123BD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+123C07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+123C09   Length              0005 (5)\n+123C0B   Flags               01 (1) 'Modification'\n+123C0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+123C10 PAYLOAD\n+\n+1242FF DATA DESCRIPTOR       08074B50 (134695760)\n+124303 CRC                   9EA0D74F (2661341007)\n+124307 Compressed Size       000006EF (1775)\n+12430B Uncompressed Size     000006EF (1775)\n+\n+12430F LOCAL HEADER #406     04034B50 (67324752)\n+124313 Extract Zip Spec      14 (20) '2.0'\n+124314 Extract OS            00 (0) 'MS-DOS'\n+124315 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+124317 Compression Method    0000 (0) 'Stored'\n+124319 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12431D CRC                   00000000 (0)\n+124321 Compressed Size       00000000 (0)\n+124325 Uncompressed Size     00000000 (0)\n+124329 Filename Length       003C (60)\n+12432B Extra Length          0009 (9)\n+12432D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12432D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+124369 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12436B   Length              0005 (5)\n+12436D   Flags               01 (1) 'Modification'\n+12436E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+124372 PAYLOAD\n+\n+124B07 DATA DESCRIPTOR       08074B50 (134695760)\n+124B0B CRC                   B957E47F (3109545087)\n+124B0F Compressed Size       00000795 (1941)\n+124B13 Uncompressed Size     00000795 (1941)\n+\n+124B17 LOCAL HEADER #407     04034B50 (67324752)\n+124B1B Extract Zip Spec      14 (20) '2.0'\n+124B1C Extract OS            00 (0) 'MS-DOS'\n+124B1D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+124B1F Compression Method    0000 (0) 'Stored'\n+124B21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+124B25 CRC                   00000000 (0)\n+124B29 Compressed Size       00000000 (0)\n+124B2D Uncompressed Size     00000000 (0)\n+124B31 Filename Length       0039 (57)\n+124B33 Extra Length          0009 (9)\n+124B35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x124B35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+124B6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+124B70   Length              0005 (5)\n+124B72   Flags               01 (1) 'Modification'\n+124B73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+124B77 PAYLOAD\n+\n+12527C DATA DESCRIPTOR       08074B50 (134695760)\n+125280 CRC                   12627859 (308443225)\n+125284 Compressed Size       00000705 (1797)\n+125288 Uncompressed Size     00000705 (1797)\n+\n+12528C LOCAL HEADER #408     04034B50 (67324752)\n+125290 Extract Zip Spec      14 (20) '2.0'\n+125291 Extract OS            00 (0) 'MS-DOS'\n+125292 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+125294 Compression Method    0000 (0) 'Stored'\n+125296 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12529A CRC                   00000000 (0)\n+12529E Compressed Size       00000000 (0)\n+1252A2 Uncompressed Size     00000000 (0)\n+1252A6 Filename Length       003D (61)\n+1252A8 Extra Length          0009 (9)\n+1252AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1252AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1252E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1252E9   Length              0005 (5)\n+1252EB   Flags               01 (1) 'Modification'\n+1252EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1252F0 PAYLOAD\n+\n+1258B7 DATA DESCRIPTOR       08074B50 (134695760)\n+1258BB CRC                   EE87A59D (4001867165)\n+1258BF Compressed Size       000005C7 (1479)\n+1258C3 Uncompressed Size     000005C7 (1479)\n+\n+1258C7 LOCAL HEADER #409     04034B50 (67324752)\n+1258CB Extract Zip Spec      14 (20) '2.0'\n+1258CC Extract OS            00 (0) 'MS-DOS'\n+1258CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1258CF Compression Method    0000 (0) 'Stored'\n+1258D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1258D5 CRC                   00000000 (0)\n+1258D9 Compressed Size       00000000 (0)\n+1258DD Uncompressed Size     00000000 (0)\n+1258E1 Filename Length       003D (61)\n+1258E3 Extra Length          0009 (9)\n+1258E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1258E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+125922 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+125924   Length              0005 (5)\n+125926   Flags               01 (1) 'Modification'\n+125927   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12592B PAYLOAD\n+\n+126052 DATA DESCRIPTOR       08074B50 (134695760)\n+126056 CRC                   6A312F64 (1781608292)\n+12605A Compressed Size       00000727 (1831)\n+12605E Uncompressed Size     00000727 (1831)\n+\n+126062 LOCAL HEADER #410     04034B50 (67324752)\n+126066 Extract Zip Spec      14 (20) '2.0'\n+126067 Extract OS            00 (0) 'MS-DOS'\n+126068 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+12606A Compression Method    0000 (0) 'Stored'\n+12606C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+126070 CRC                   00000000 (0)\n+126074 Compressed Size       00000000 (0)\n+126078 Uncompressed Size     00000000 (0)\n+12607C Filename Length       0040 (64)\n+12607E Extra Length          0009 (9)\n+126080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x126080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1260C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1260C2   Length              0005 (5)\n+1260C4   Flags               01 (1) 'Modification'\n+1260C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1260C9 PAYLOAD\n+\n+126AF9 DATA DESCRIPTOR       08074B50 (134695760)\n+126AFD CRC                   CA63D3D1 (3395539921)\n+126B01 Compressed Size       00000A30 (2608)\n+126B05 Uncompressed Size     00000A30 (2608)\n+\n+126B09 LOCAL HEADER #411     04034B50 (67324752)\n+126B0D Extract Zip Spec      14 (20) '2.0'\n+126B0E Extract OS            00 (0) 'MS-DOS'\n+126B0F General Purpose Flag  0000 (0)\n+126B11 Compression Method    0000 (0) 'Stored'\n+126B13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+126B17 CRC                   00000000 (0)\n+126B1B Compressed Size       00000000 (0)\n+126B1F Uncompressed Size     00000000 (0)\n+126B23 Filename Length       0028 (40)\n+126B25 Extra Length          0009 (9)\n+126B27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x126B27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+126B4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+126B51   Length              0005 (5)\n+126B53   Flags               01 (1) 'Modification'\n+126B54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+126B58 LOCAL HEADER #412     04034B50 (67324752)\n+126B5C Extract Zip Spec      14 (20) '2.0'\n+126B5D Extract OS            00 (0) 'MS-DOS'\n+126B5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+126B60 Compression Method    0000 (0) 'Stored'\n+126B62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+126B66 CRC                   00000000 (0)\n+126B6A Compressed Size       00000000 (0)\n+126B6E Uncompressed Size     00000000 (0)\n+126B72 Filename Length       003B (59)\n+126B74 Extra Length          0009 (9)\n+126B76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x126B76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+126BB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+126BB3   Length              0005 (5)\n+126BB5   Flags               01 (1) 'Modification'\n+126BB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+126BBA PAYLOAD\n+\n+129A57 DATA DESCRIPTOR       08074B50 (134695760)\n+129A5B CRC                   350B3EEE (889929454)\n+129A5F Compressed Size       00002E9D (11933)\n+129A63 Uncompressed Size     00002E9D (11933)\n+\n+129A67 LOCAL HEADER #413     04034B50 (67324752)\n+129A6B Extract Zip Spec      14 (20) '2.0'\n+129A6C Extract OS            00 (0) 'MS-DOS'\n+129A6D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+129A6F Compression Method    0000 (0) 'Stored'\n+129A71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+129A75 CRC                   00000000 (0)\n+129A79 Compressed Size       00000000 (0)\n+129A7D Uncompressed Size     00000000 (0)\n+129A81 Filename Length       003A (58)\n+129A83 Extra Length          0009 (9)\n+129A85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x129A85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+129ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+129AC1   Length              0005 (5)\n+129AC3   Flags               01 (1) 'Modification'\n+129AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+129AC8 PAYLOAD\n+\n+12CA34 DATA DESCRIPTOR       08074B50 (134695760)\n+12CA38 CRC                   FE2BC051 (4264280145)\n+12CA3C Compressed Size       00002F6C (12140)\n+12CA40 Uncompressed Size     00002F6C (12140)\n+\n+12CA44 LOCAL HEADER #414     04034B50 (67324752)\n+12CA48 Extract Zip Spec      14 (20) '2.0'\n+12CA49 Extract OS            00 (0) 'MS-DOS'\n+12CA4A General Purpose Flag  0000 (0)\n+12CA4C Compression Method    0000 (0) 'Stored'\n+12CA4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12CA52 CRC                   00000000 (0)\n+12CA56 Compressed Size       00000000 (0)\n+12CA5A Uncompressed Size     00000000 (0)\n+12CA5E Filename Length       0024 (36)\n+12CA60 Extra Length          0009 (9)\n+12CA62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12CA62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12CA86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12CA88   Length              0005 (5)\n+12CA8A   Flags               01 (1) 'Modification'\n+12CA8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+12CA8F LOCAL HEADER #415     04034B50 (67324752)\n+12CA93 Extract Zip Spec      14 (20) '2.0'\n+12CA94 Extract OS            00 (0) 'MS-DOS'\n+12CA95 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+12CA97 Compression Method    0000 (0) 'Stored'\n+12CA99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12CA9D CRC                   00000000 (0)\n+12CAA1 Compressed Size       00000000 (0)\n+12CAA5 Uncompressed Size     00000000 (0)\n+12CAA9 Filename Length       0037 (55)\n+12CAAB Extra Length          0009 (9)\n+12CAAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12CAAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12CAE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12CAE6   Length              0005 (5)\n+12CAE8   Flags               01 (1) 'Modification'\n+12CAE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12CAED PAYLOAD\n+\n+12E5C4 DATA DESCRIPTOR       08074B50 (134695760)\n+12E5C8 CRC                   57AE068E (1471022734)\n+12E5CC Compressed Size       00001AD7 (6871)\n+12E5D0 Uncompressed Size     00001AD7 (6871)\n+\n+12E5D4 LOCAL HEADER #416     04034B50 (67324752)\n+12E5D8 Extract Zip Spec      14 (20) '2.0'\n+12E5D9 Extract OS            00 (0) 'MS-DOS'\n+12E5DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+12E5DC Compression Method    0000 (0) 'Stored'\n+12E5DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+12E5E2 CRC                   00000000 (0)\n+12E5E6 Compressed Size       00000000 (0)\n+12E5EA Uncompressed Size     00000000 (0)\n+12E5EE Filename Length       002F (47)\n+12E5F0 Extra Length          0009 (9)\n+12E5F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x12E5F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+12E621 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+12E623   Length              0005 (5)\n+12E625   Flags               01 (1) 'Modification'\n+12E626   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+12E62A PAYLOAD\n+\n+1300E7 DATA DESCRIPTOR       08074B50 (134695760)\n+1300EB CRC                   1538A07E (356032638)\n+1300EF Compressed Size       00001ABD (6845)\n+1300F3 Uncompressed Size     00001ABD (6845)\n+\n+1300F7 LOCAL HEADER #417     04034B50 (67324752)\n+1300FB Extract Zip Spec      14 (20) '2.0'\n+1300FC Extract OS            00 (0) 'MS-DOS'\n+1300FD General Purpose Flag  0000 (0)\n+1300FF Compression Method    0000 (0) 'Stored'\n+130101 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+130105 CRC                   00000000 (0)\n+130109 Compressed Size       00000000 (0)\n+13010D Uncompressed Size     00000000 (0)\n+130111 Filename Length       0012 (18)\n+130113 Extra Length          0009 (9)\n+130115 Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x130115: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+130127 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+130129   Length              0005 (5)\n+13012B   Flags               01 (1) 'Modification'\n+13012C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+130130 LOCAL HEADER #418     04034B50 (67324752)\n+130134 Extract Zip Spec      14 (20) '2.0'\n+130135 Extract OS            00 (0) 'MS-DOS'\n+130136 General Purpose Flag  0000 (0)\n+130138 Compression Method    0000 (0) 'Stored'\n+13013A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13013E CRC                   00000000 (0)\n+130142 Compressed Size       00000000 (0)\n+130146 Uncompressed Size     00000000 (0)\n+13014A Filename Length       0018 (24)\n+13014C Extra Length          0009 (9)\n+13014E Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13014E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+130166 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+130168   Length              0005 (5)\n+13016A   Flags               01 (1) 'Modification'\n+13016B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13016F LOCAL HEADER #419     04034B50 (67324752)\n+130173 Extract Zip Spec      14 (20) '2.0'\n+130174 Extract OS            00 (0) 'MS-DOS'\n+130175 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+130177 Compression Method    0000 (0) 'Stored'\n+130179 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13017D CRC                   00000000 (0)\n+130181 Compressed Size       00000000 (0)\n+130185 Uncompressed Size     00000000 (0)\n+130189 Filename Length       0022 (34)\n+13018B Extra Length          0009 (9)\n+13018D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13018D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1301AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1301B1   Length              0005 (5)\n+1301B3   Flags               01 (1) 'Modification'\n+1301B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1301B8 PAYLOAD\n+\n+13055F DATA DESCRIPTOR       08074B50 (134695760)\n+130563 CRC                   A0D1D7AD (2698106797)\n+130567 Compressed Size       000003A7 (935)\n+13056B Uncompressed Size     000003A7 (935)\n+\n+13056F LOCAL HEADER #420     04034B50 (67324752)\n+130573 Extract Zip Spec      14 (20) '2.0'\n+130574 Extract OS            00 (0) 'MS-DOS'\n+130575 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+130577 Compression Method    0000 (0) 'Stored'\n+130579 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13057D CRC                   00000000 (0)\n+130581 Compressed Size       00000000 (0)\n+130585 Uncompressed Size     00000000 (0)\n+130589 Filename Length       0029 (41)\n+13058B Extra Length          0009 (9)\n+13058D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13058D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1305B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1305B8   Length              0005 (5)\n+1305BA   Flags               01 (1) 'Modification'\n+1305BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1305BF PAYLOAD\n+\n+1309FD DATA DESCRIPTOR       08074B50 (134695760)\n+130A01 CRC                   36E8AAE8 (921217768)\n+130A05 Compressed Size       0000043E (1086)\n+130A09 Uncompressed Size     0000043E (1086)\n+\n+130A0D LOCAL HEADER #421     04034B50 (67324752)\n+130A11 Extract Zip Spec      14 (20) '2.0'\n+130A12 Extract OS            00 (0) 'MS-DOS'\n+130A13 General Purpose Flag  0000 (0)\n+130A15 Compression Method    0000 (0) 'Stored'\n+130A17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+130A1B CRC                   00000000 (0)\n+130A1F Compressed Size       00000000 (0)\n+130A23 Uncompressed Size     00000000 (0)\n+130A27 Filename Length       0020 (32)\n+130A29 Extra Length          0009 (9)\n+130A2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x130A2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+130A4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+130A4D   Length              0005 (5)\n+130A4F   Flags               01 (1) 'Modification'\n+130A50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+130A54 LOCAL HEADER #422     04034B50 (67324752)\n+130A58 Extract Zip Spec      14 (20) '2.0'\n+130A59 Extract OS            00 (0) 'MS-DOS'\n+130A5A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+130A5C Compression Method    0000 (0) 'Stored'\n+130A5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+130A62 CRC                   00000000 (0)\n+130A66 Compressed Size       00000000 (0)\n+130A6A Uncompressed Size     00000000 (0)\n+130A6E Filename Length       0039 (57)\n+130A70 Extra Length          0009 (9)\n+130A72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x130A72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+130AAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+130AAD   Length              0005 (5)\n+130AAF   Flags               01 (1) 'Modification'\n+130AB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+130AB4 PAYLOAD\n+\n+1312CF DATA DESCRIPTOR       08074B50 (134695760)\n+1312D3 CRC                   0C0A434B (201999179)\n+1312D7 Compressed Size       0000081B (2075)\n+1312DB Uncompressed Size     0000081B (2075)\n+\n+1312DF LOCAL HEADER #423     04034B50 (67324752)\n+1312E3 Extract Zip Spec      14 (20) '2.0'\n+1312E4 Extract OS            00 (0) 'MS-DOS'\n+1312E5 General Purpose Flag  0000 (0)\n+1312E7 Compression Method    0000 (0) 'Stored'\n+1312E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1312ED CRC                   00000000 (0)\n+1312F1 Compressed Size       00000000 (0)\n+1312F5 Uncompressed Size     00000000 (0)\n+1312F9 Filename Length       0019 (25)\n+1312FB Extra Length          0009 (9)\n+1312FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1312FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+131316 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+131318   Length              0005 (5)\n+13131A   Flags               01 (1) 'Modification'\n+13131B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13131F LOCAL HEADER #424     04034B50 (67324752)\n+131323 Extract Zip Spec      14 (20) '2.0'\n+131324 Extract OS            00 (0) 'MS-DOS'\n+131325 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+131327 Compression Method    0000 (0) 'Stored'\n+131329 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13132D CRC                   00000000 (0)\n+131331 Compressed Size       00000000 (0)\n+131335 Uncompressed Size     00000000 (0)\n+131339 Filename Length       0027 (39)\n+13133B Extra Length          0009 (9)\n+13133D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13133D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+131364 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+131366   Length              0005 (5)\n+131368   Flags               01 (1) 'Modification'\n+131369   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13136D PAYLOAD\n+\n+131AD0 DATA DESCRIPTOR       08074B50 (134695760)\n+131AD4 CRC                   7421F96B (1948383595)\n+131AD8 Compressed Size       00000763 (1891)\n+131ADC Uncompressed Size     00000763 (1891)\n+\n+131AE0 LOCAL HEADER #425     04034B50 (67324752)\n+131AE4 Extract Zip Spec      14 (20) '2.0'\n+131AE5 Extract OS            00 (0) 'MS-DOS'\n+131AE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+131AE8 Compression Method    0000 (0) 'Stored'\n+131AEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+131AEE CRC                   00000000 (0)\n+131AF2 Compressed Size       00000000 (0)\n+131AF6 Uncompressed Size     00000000 (0)\n+131AFA Filename Length       0021 (33)\n+131AFC Extra Length          0009 (9)\n+131AFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x131AFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+131B1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+131B21   Length              0005 (5)\n+131B23   Flags               01 (1) 'Modification'\n+131B24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+131B28 PAYLOAD\n+\n+13670D DATA DESCRIPTOR       08074B50 (134695760)\n+136711 CRC                   D19F2618 (3516868120)\n+136715 Compressed Size       00004BE5 (19429)\n+136719 Uncompressed Size     00004BE5 (19429)\n+\n+13671D LOCAL HEADER #426     04034B50 (67324752)\n+136721 Extract Zip Spec      14 (20) '2.0'\n+136722 Extract OS            00 (0) 'MS-DOS'\n+136723 General Purpose Flag  0000 (0)\n+136725 Compression Method    0000 (0) 'Stored'\n+136727 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13672B CRC                   00000000 (0)\n+13672F Compressed Size       00000000 (0)\n+136733 Uncompressed Size     00000000 (0)\n+136737 Filename Length       0022 (34)\n+136739 Extra Length          0009 (9)\n+13673B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13673B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13675D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13675F   Length              0005 (5)\n+136761   Flags               01 (1) 'Modification'\n+136762   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+136766 LOCAL HEADER #427     04034B50 (67324752)\n+13676A Extract Zip Spec      14 (20) '2.0'\n+13676B Extract OS            00 (0) 'MS-DOS'\n+13676C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13676E Compression Method    0000 (0) 'Stored'\n+136770 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+136774 CRC                   00000000 (0)\n+136778 Compressed Size       00000000 (0)\n+13677C Uncompressed Size     00000000 (0)\n+136780 Filename Length       002F (47)\n+136782 Extra Length          0009 (9)\n+136784 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x136784: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1367B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1367B5   Length              0005 (5)\n+1367B7   Flags               01 (1) 'Modification'\n+1367B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1367BC PAYLOAD\n+\n+136B7D DATA DESCRIPTOR       08074B50 (134695760)\n+136B81 CRC                   AB4B3845 (2873833541)\n+136B85 Compressed Size       000003C1 (961)\n+136B89 Uncompressed Size     000003C1 (961)\n+\n+136B8D LOCAL HEADER #428     04034B50 (67324752)\n+136B91 Extract Zip Spec      14 (20) '2.0'\n+136B92 Extract OS            00 (0) 'MS-DOS'\n+136B93 General Purpose Flag  0000 (0)\n+136B95 Compression Method    0000 (0) 'Stored'\n+136B97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+136B9B CRC                   00000000 (0)\n+136B9F Compressed Size       00000000 (0)\n+136BA3 Uncompressed Size     00000000 (0)\n+136BA7 Filename Length       0023 (35)\n+136BA9 Extra Length          0009 (9)\n+136BAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x136BAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+136BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+136BD0   Length              0005 (5)\n+136BD2   Flags               01 (1) 'Modification'\n+136BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+136BD7 LOCAL HEADER #429     04034B50 (67324752)\n+136BDB Extract Zip Spec      14 (20) '2.0'\n+136BDC Extract OS            00 (0) 'MS-DOS'\n+136BDD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+136BDF Compression Method    0000 (0) 'Stored'\n+136BE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+136BE5 CRC                   00000000 (0)\n+136BE9 Compressed Size       00000000 (0)\n+136BED Uncompressed Size     00000000 (0)\n+136BF1 Filename Length       0030 (48)\n+136BF3 Extra Length          0009 (9)\n+136BF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x136BF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+136C25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+136C27   Length              0005 (5)\n+136C29   Flags               01 (1) 'Modification'\n+136C2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+136C2E PAYLOAD\n+\n+1371FD DATA DESCRIPTOR       08074B50 (134695760)\n+137201 CRC                   87D33073 (2278764659)\n+137205 Compressed Size       000005CF (1487)\n+137209 Uncompressed Size     000005CF (1487)\n+\n+13720D LOCAL HEADER #430     04034B50 (67324752)\n+137211 Extract Zip Spec      14 (20) '2.0'\n+137212 Extract OS            00 (0) 'MS-DOS'\n+137213 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+137215 Compression Method    0000 (0) 'Stored'\n+137217 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13721B CRC                   00000000 (0)\n+13721F Compressed Size       00000000 (0)\n+137223 Uncompressed Size     00000000 (0)\n+137227 Filename Length       0038 (56)\n+137229 Extra Length          0009 (9)\n+13722B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13722B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+137263 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+137265   Length              0005 (5)\n+137267   Flags               01 (1) 'Modification'\n+137268   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13726C PAYLOAD\n+\n+137676 DATA DESCRIPTOR       08074B50 (134695760)\n+13767A CRC                   F8808D33 (4169174323)\n+13767E Compressed Size       0000040A (1034)\n+137682 Uncompressed Size     0000040A (1034)\n+\n+137686 LOCAL HEADER #431     04034B50 (67324752)\n+13768A Extract Zip Spec      14 (20) '2.0'\n+13768B Extract OS            00 (0) 'MS-DOS'\n+13768C General Purpose Flag  0000 (0)\n+13768E Compression Method    0000 (0) 'Stored'\n+137690 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+137694 CRC                   00000000 (0)\n+137698 Compressed Size       00000000 (0)\n+13769C Uncompressed Size     00000000 (0)\n+1376A0 Filename Length       0020 (32)\n+1376A2 Extra Length          0009 (9)\n+1376A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1376A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1376C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1376C6   Length              0005 (5)\n+1376C8   Flags               01 (1) 'Modification'\n+1376C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1376CD LOCAL HEADER #432     04034B50 (67324752)\n+1376D1 Extract Zip Spec      14 (20) '2.0'\n+1376D2 Extract OS            00 (0) 'MS-DOS'\n+1376D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1376D5 Compression Method    0000 (0) 'Stored'\n+1376D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1376DB CRC                   00000000 (0)\n+1376DF Compressed Size       00000000 (0)\n+1376E3 Uncompressed Size     00000000 (0)\n+1376E7 Filename Length       0032 (50)\n+1376E9 Extra Length          0009 (9)\n+1376EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1376EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13771D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13771F   Length              0005 (5)\n+137721   Flags               01 (1) 'Modification'\n+137722   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+137726 PAYLOAD\n+\n+137AED DATA DESCRIPTOR       08074B50 (134695760)\n+137AF1 CRC                   75D97425 (1977185317)\n+137AF5 Compressed Size       000003C7 (967)\n+137AF9 Uncompressed Size     000003C7 (967)\n+\n+137AFD LOCAL HEADER #433     04034B50 (67324752)\n+137B01 Extract Zip Spec      14 (20) '2.0'\n+137B02 Extract OS            00 (0) 'MS-DOS'\n+137B03 General Purpose Flag  0000 (0)\n+137B05 Compression Method    0000 (0) 'Stored'\n+137B07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+137B0B CRC                   00000000 (0)\n+137B0F Compressed Size       00000000 (0)\n+137B13 Uncompressed Size     00000000 (0)\n+137B17 Filename Length       0023 (35)\n+137B19 Extra Length          0009 (9)\n+137B1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x137B1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+137B3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+137B40   Length              0005 (5)\n+137B42   Flags               01 (1) 'Modification'\n+137B43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+137B47 LOCAL HEADER #434     04034B50 (67324752)\n+137B4B Extract Zip Spec      14 (20) '2.0'\n+137B4C Extract OS            00 (0) 'MS-DOS'\n+137B4D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+137B4F Compression Method    0000 (0) 'Stored'\n+137B51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+137B55 CRC                   00000000 (0)\n+137B59 Compressed Size       00000000 (0)\n+137B5D Uncompressed Size     00000000 (0)\n+137B61 Filename Length       0033 (51)\n+137B63 Extra Length          0009 (9)\n+137B65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x137B65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+137B98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+137B9A   Length              0005 (5)\n+137B9C   Flags               01 (1) 'Modification'\n+137B9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+137BA1 PAYLOAD\n+\n+137F6A DATA DESCRIPTOR       08074B50 (134695760)\n+137F6E CRC                   1B82D5A6 (461559206)\n+137F72 Compressed Size       000003C9 (969)\n+137F76 Uncompressed Size     000003C9 (969)\n+\n+137F7A LOCAL HEADER #435     04034B50 (67324752)\n+137F7E Extract Zip Spec      14 (20) '2.0'\n+137F7F Extract OS            00 (0) 'MS-DOS'\n+137F80 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+137F82 Compression Method    0000 (0) 'Stored'\n+137F84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+137F88 CRC                   00000000 (0)\n+137F8C Compressed Size       00000000 (0)\n+137F90 Uncompressed Size     00000000 (0)\n+137F94 Filename Length       0034 (52)\n+137F96 Extra Length          0009 (9)\n+137F98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x137F98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+137FCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+137FCE   Length              0005 (5)\n+137FD0   Flags               01 (1) 'Modification'\n+137FD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+137FD5 PAYLOAD\n+\n+1383A0 DATA DESCRIPTOR       08074B50 (134695760)\n+1383A4 CRC                   E66C1AF8 (3865844472)\n+1383A8 Compressed Size       000003CB (971)\n+1383AC Uncompressed Size     000003CB (971)\n+\n+1383B0 LOCAL HEADER #436     04034B50 (67324752)\n+1383B4 Extract Zip Spec      14 (20) '2.0'\n+1383B5 Extract OS            00 (0) 'MS-DOS'\n+1383B6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1383B8 Compression Method    0000 (0) 'Stored'\n+1383BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1383BE CRC                   00000000 (0)\n+1383C2 Compressed Size       00000000 (0)\n+1383C6 Uncompressed Size     00000000 (0)\n+1383CA Filename Length       0035 (53)\n+1383CC Extra Length          0009 (9)\n+1383CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1383CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+138403 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+138405   Length              0005 (5)\n+138407   Flags               01 (1) 'Modification'\n+138408   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13840C PAYLOAD\n+\n+138AB8 DATA DESCRIPTOR       08074B50 (134695760)\n+138ABC CRC                   A93FA4B2 (2839520434)\n+138AC0 Compressed Size       000006AC (1708)\n+138AC4 Uncompressed Size     000006AC (1708)\n+\n+138AC8 LOCAL HEADER #437     04034B50 (67324752)\n+138ACC Extract Zip Spec      14 (20) '2.0'\n+138ACD Extract OS            00 (0) 'MS-DOS'\n+138ACE General Purpose Flag  0000 (0)\n+138AD0 Compression Method    0000 (0) 'Stored'\n+138AD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+138AD6 CRC                   00000000 (0)\n+138ADA Compressed Size       00000000 (0)\n+138ADE Uncompressed Size     00000000 (0)\n+138AE2 Filename Length       0020 (32)\n+138AE4 Extra Length          0009 (9)\n+138AE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x138AE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+138B06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+138B08   Length              0005 (5)\n+138B0A   Flags               01 (1) 'Modification'\n+138B0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+138B0F LOCAL HEADER #438     04034B50 (67324752)\n+138B13 Extract Zip Spec      14 (20) '2.0'\n+138B14 Extract OS            00 (0) 'MS-DOS'\n+138B15 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+138B17 Compression Method    0000 (0) 'Stored'\n+138B19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+138B1D CRC                   00000000 (0)\n+138B21 Compressed Size       00000000 (0)\n+138B25 Uncompressed Size     00000000 (0)\n+138B29 Filename Length       002B (43)\n+138B2B Extra Length          0009 (9)\n+138B2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x138B2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+138B58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+138B5A   Length              0005 (5)\n+138B5C   Flags               01 (1) 'Modification'\n+138B5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+138B61 PAYLOAD\n+\n+13902F DATA DESCRIPTOR       08074B50 (134695760)\n+139033 CRC                   BEC11652 (3200325202)\n+139037 Compressed Size       000004CE (1230)\n+13903B Uncompressed Size     000004CE (1230)\n+\n+13903F LOCAL HEADER #439     04034B50 (67324752)\n+139043 Extract Zip Spec      14 (20) '2.0'\n+139044 Extract OS            00 (0) 'MS-DOS'\n+139045 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+139047 Compression Method    0000 (0) 'Stored'\n+139049 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13904D CRC                   00000000 (0)\n+139051 Compressed Size       00000000 (0)\n+139055 Uncompressed Size     00000000 (0)\n+139059 Filename Length       0032 (50)\n+13905B Extra Length          0009 (9)\n+13905D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13905D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13908F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139091   Length              0005 (5)\n+139093   Flags               01 (1) 'Modification'\n+139094   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+139098 PAYLOAD\n+\n+139485 DATA DESCRIPTOR       08074B50 (134695760)\n+139489 CRC                   E8509F41 (3897597761)\n+13948D Compressed Size       000003ED (1005)\n+139491 Uncompressed Size     000003ED (1005)\n+\n+139495 LOCAL HEADER #440     04034B50 (67324752)\n+139499 Extract Zip Spec      14 (20) '2.0'\n+13949A Extract OS            00 (0) 'MS-DOS'\n+13949B General Purpose Flag  0000 (0)\n+13949D Compression Method    0000 (0) 'Stored'\n+13949F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1394A3 CRC                   00000000 (0)\n+1394A7 Compressed Size       00000000 (0)\n+1394AB Uncompressed Size     00000000 (0)\n+1394AF Filename Length       001F (31)\n+1394B1 Extra Length          0009 (9)\n+1394B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1394B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1394D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1394D4   Length              0005 (5)\n+1394D6   Flags               01 (1) 'Modification'\n+1394D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1394DB LOCAL HEADER #441     04034B50 (67324752)\n+1394DF Extract Zip Spec      14 (20) '2.0'\n+1394E0 Extract OS            00 (0) 'MS-DOS'\n+1394E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1394E3 Compression Method    0000 (0) 'Stored'\n+1394E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1394E9 CRC                   00000000 (0)\n+1394ED Compressed Size       00000000 (0)\n+1394F1 Uncompressed Size     00000000 (0)\n+1394F5 Filename Length       002D (45)\n+1394F7 Extra Length          0009 (9)\n+1394F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1394F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+139526 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139528   Length              0005 (5)\n+13952A   Flags               01 (1) 'Modification'\n+13952B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13952F PAYLOAD\n+\n+1398EC DATA DESCRIPTOR       08074B50 (134695760)\n+1398F0 CRC                   DEFC6FC7 (3741085639)\n+1398F4 Compressed Size       000003BD (957)\n+1398F8 Uncompressed Size     000003BD (957)\n+\n+1398FC LOCAL HEADER #442     04034B50 (67324752)\n+139900 Extract Zip Spec      14 (20) '2.0'\n+139901 Extract OS            00 (0) 'MS-DOS'\n+139902 General Purpose Flag  0000 (0)\n+139904 Compression Method    0000 (0) 'Stored'\n+139906 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13990A CRC                   00000000 (0)\n+13990E Compressed Size       00000000 (0)\n+139912 Uncompressed Size     00000000 (0)\n+139916 Filename Length       0024 (36)\n+139918 Extra Length          0009 (9)\n+13991A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13991A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13993E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139940   Length              0005 (5)\n+139942   Flags               01 (1) 'Modification'\n+139943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+139947 LOCAL HEADER #443     04034B50 (67324752)\n+13994B Extract Zip Spec      14 (20) '2.0'\n+13994C Extract OS            00 (0) 'MS-DOS'\n+13994D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13994F Compression Method    0000 (0) 'Stored'\n+139951 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+139955 CRC                   00000000 (0)\n+139959 Compressed Size       00000000 (0)\n+13995D Uncompressed Size     00000000 (0)\n+139961 Filename Length       0033 (51)\n+139963 Extra Length          0009 (9)\n+139965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x139965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+139998 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13999A   Length              0005 (5)\n+13999C   Flags               01 (1) 'Modification'\n+13999D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1399A1 PAYLOAD\n+\n+139E82 DATA DESCRIPTOR       08074B50 (134695760)\n+139E86 CRC                   34B28AB6 (884116150)\n+139E8A Compressed Size       000004E1 (1249)\n+139E8E Uncompressed Size     000004E1 (1249)\n+\n+139E92 LOCAL HEADER #444     04034B50 (67324752)\n+139E96 Extract Zip Spec      14 (20) '2.0'\n+139E97 Extract OS            00 (0) 'MS-DOS'\n+139E98 General Purpose Flag  0000 (0)\n+139E9A Compression Method    0000 (0) 'Stored'\n+139E9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+139EA0 CRC                   00000000 (0)\n+139EA4 Compressed Size       00000000 (0)\n+139EA8 Uncompressed Size     00000000 (0)\n+139EAC Filename Length       001F (31)\n+139EAE Extra Length          0009 (9)\n+139EB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x139EB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+139ECF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139ED1   Length              0005 (5)\n+139ED3   Flags               01 (1) 'Modification'\n+139ED4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+139ED8 LOCAL HEADER #445     04034B50 (67324752)\n+139EDC Extract Zip Spec      14 (20) '2.0'\n+139EDD Extract OS            00 (0) 'MS-DOS'\n+139EDE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+139EE0 Compression Method    0000 (0) 'Stored'\n+139EE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+139EE6 CRC                   00000000 (0)\n+139EEA Compressed Size       00000000 (0)\n+139EEE Uncompressed Size     00000000 (0)\n+139EF2 Filename Length       002C (44)\n+139EF4 Extra Length          0009 (9)\n+139EF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x139EF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+139F22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+139F24   Length              0005 (5)\n+139F26   Flags               01 (1) 'Modification'\n+139F27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+139F2B PAYLOAD\n+\n+13B18E DATA DESCRIPTOR       08074B50 (134695760)\n+13B192 CRC                   0CEB317A (216740218)\n+13B196 Compressed Size       00001263 (4707)\n+13B19A Uncompressed Size     00001263 (4707)\n+\n+13B19E LOCAL HEADER #446     04034B50 (67324752)\n+13B1A2 Extract Zip Spec      14 (20) '2.0'\n+13B1A3 Extract OS            00 (0) 'MS-DOS'\n+13B1A4 General Purpose Flag  0000 (0)\n+13B1A6 Compression Method    0000 (0) 'Stored'\n+13B1A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13B1AC CRC                   00000000 (0)\n+13B1B0 Compressed Size       00000000 (0)\n+13B1B4 Uncompressed Size     00000000 (0)\n+13B1B8 Filename Length       0019 (25)\n+13B1BA Extra Length          0009 (9)\n+13B1BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13B1BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13B1D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13B1D7   Length              0005 (5)\n+13B1D9   Flags               01 (1) 'Modification'\n+13B1DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13B1DE LOCAL HEADER #447     04034B50 (67324752)\n+13B1E2 Extract Zip Spec      14 (20) '2.0'\n+13B1E3 Extract OS            00 (0) 'MS-DOS'\n+13B1E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13B1E6 Compression Method    0000 (0) 'Stored'\n+13B1E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13B1EC CRC                   00000000 (0)\n+13B1F0 Compressed Size       00000000 (0)\n+13B1F4 Uncompressed Size     00000000 (0)\n+13B1F8 Filename Length       002F (47)\n+13B1FA Extra Length          0009 (9)\n+13B1FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13B1FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13B22B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13B22D   Length              0005 (5)\n+13B22F   Flags               01 (1) 'Modification'\n+13B230   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13B234 PAYLOAD\n+\n+13B67A DATA DESCRIPTOR       08074B50 (134695760)\n+13B67E CRC                   785E6462 (2019452002)\n+13B682 Compressed Size       00000446 (1094)\n+13B686 Uncompressed Size     00000446 (1094)\n+\n+13B68A LOCAL HEADER #448     04034B50 (67324752)\n+13B68E Extract Zip Spec      14 (20) '2.0'\n+13B68F Extract OS            00 (0) 'MS-DOS'\n+13B690 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13B692 Compression Method    0000 (0) 'Stored'\n+13B694 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13B698 CRC                   00000000 (0)\n+13B69C Compressed Size       00000000 (0)\n+13B6A0 Uncompressed Size     00000000 (0)\n+13B6A4 Filename Length       002C (44)\n+13B6A6 Extra Length          0009 (9)\n+13B6A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13B6A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13B6D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13B6D6   Length              0005 (5)\n+13B6D8   Flags               01 (1) 'Modification'\n+13B6D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13B6DD PAYLOAD\n+\n+13BA94 DATA DESCRIPTOR       08074B50 (134695760)\n+13BA98 CRC                   12EE7A54 (317618772)\n+13BA9C Compressed Size       000003B7 (951)\n+13BAA0 Uncompressed Size     000003B7 (951)\n+\n+13BAA4 LOCAL HEADER #449     04034B50 (67324752)\n+13BAA8 Extract Zip Spec      14 (20) '2.0'\n+13BAA9 Extract OS            00 (0) 'MS-DOS'\n+13BAAA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13BAAC Compression Method    0000 (0) 'Stored'\n+13BAAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13BAB2 CRC                   00000000 (0)\n+13BAB6 Compressed Size       00000000 (0)\n+13BABA Uncompressed Size     00000000 (0)\n+13BABE Filename Length       002C (44)\n+13BAC0 Extra Length          0009 (9)\n+13BAC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13BAC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13BAEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13BAF0   Length              0005 (5)\n+13BAF2   Flags               01 (1) 'Modification'\n+13BAF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13BAF7 PAYLOAD\n+\n+13BEAE DATA DESCRIPTOR       08074B50 (134695760)\n+13BEB2 CRC                   AE09219E (2919834014)\n+13BEB6 Compressed Size       000003B7 (951)\n+13BEBA Uncompressed Size     000003B7 (951)\n+\n+13BEBE LOCAL HEADER #450     04034B50 (67324752)\n+13BEC2 Extract Zip Spec      14 (20) '2.0'\n+13BEC3 Extract OS            00 (0) 'MS-DOS'\n+13BEC4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13BEC6 Compression Method    0000 (0) 'Stored'\n+13BEC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13BECC CRC                   00000000 (0)\n+13BED0 Compressed Size       00000000 (0)\n+13BED4 Uncompressed Size     00000000 (0)\n+13BED8 Filename Length       002A (42)\n+13BEDA Extra Length          0009 (9)\n+13BEDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13BEDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13BF06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13BF08   Length              0005 (5)\n+13BF0A   Flags               01 (1) 'Modification'\n+13BF0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13BF0F PAYLOAD\n+\n+13C2C4 DATA DESCRIPTOR       08074B50 (134695760)\n+13C2C8 CRC                   C0617C64 (3227614308)\n+13C2CC Compressed Size       000003B5 (949)\n+13C2D0 Uncompressed Size     000003B5 (949)\n+\n+13C2D4 LOCAL HEADER #451     04034B50 (67324752)\n+13C2D8 Extract Zip Spec      14 (20) '2.0'\n+13C2D9 Extract OS            00 (0) 'MS-DOS'\n+13C2DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13C2DC Compression Method    0000 (0) 'Stored'\n+13C2DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13C2E2 CRC                   00000000 (0)\n+13C2E6 Compressed Size       00000000 (0)\n+13C2EA Uncompressed Size     00000000 (0)\n+13C2EE Filename Length       002A (42)\n+13C2F0 Extra Length          0009 (9)\n+13C2F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13C2F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13C31C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13C31E   Length              0005 (5)\n+13C320   Flags               01 (1) 'Modification'\n+13C321   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13C325 PAYLOAD\n+\n+13C745 DATA DESCRIPTOR       08074B50 (134695760)\n+13C749 CRC                   50E43A38 (1357134392)\n+13C74D Compressed Size       00000420 (1056)\n+13C751 Uncompressed Size     00000420 (1056)\n+\n+13C755 LOCAL HEADER #452     04034B50 (67324752)\n+13C759 Extract Zip Spec      14 (20) '2.0'\n+13C75A Extract OS            00 (0) 'MS-DOS'\n+13C75B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13C75D Compression Method    0000 (0) 'Stored'\n+13C75F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13C763 CRC                   00000000 (0)\n+13C767 Compressed Size       00000000 (0)\n+13C76B Uncompressed Size     00000000 (0)\n+13C76F Filename Length       002B (43)\n+13C771 Extra Length          0009 (9)\n+13C773 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13C773: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13C79E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13C7A0   Length              0005 (5)\n+13C7A2   Flags               01 (1) 'Modification'\n+13C7A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13C7A7 PAYLOAD\n+\n+13CBCF DATA DESCRIPTOR       08074B50 (134695760)\n+13CBD3 CRC                   7B632F2C (2070097708)\n+13CBD7 Compressed Size       00000428 (1064)\n+13CBDB Uncompressed Size     00000428 (1064)\n+\n+13CBDF LOCAL HEADER #453     04034B50 (67324752)\n+13CBE3 Extract Zip Spec      14 (20) '2.0'\n+13CBE4 Extract OS            00 (0) 'MS-DOS'\n+13CBE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13CBE7 Compression Method    0000 (0) 'Stored'\n+13CBE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13CBED CRC                   00000000 (0)\n+13CBF1 Compressed Size       00000000 (0)\n+13CBF5 Uncompressed Size     00000000 (0)\n+13CBF9 Filename Length       002C (44)\n+13CBFB Extra Length          0009 (9)\n+13CBFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13CBFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13CC29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13CC2B   Length              0005 (5)\n+13CC2D   Flags               01 (1) 'Modification'\n+13CC2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13CC32 PAYLOAD\n+\n+13D0B3 DATA DESCRIPTOR       08074B50 (134695760)\n+13D0B7 CRC                   885A72D3 (2287629011)\n+13D0BB Compressed Size       00000481 (1153)\n+13D0BF Uncompressed Size     00000481 (1153)\n+\n+13D0C3 LOCAL HEADER #454     04034B50 (67324752)\n+13D0C7 Extract Zip Spec      14 (20) '2.0'\n+13D0C8 Extract OS            00 (0) 'MS-DOS'\n+13D0C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13D0CB Compression Method    0000 (0) 'Stored'\n+13D0CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13D0D1 CRC                   00000000 (0)\n+13D0D5 Compressed Size       00000000 (0)\n+13D0D9 Uncompressed Size     00000000 (0)\n+13D0DD Filename Length       002C (44)\n+13D0DF Extra Length          0009 (9)\n+13D0E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13D0E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13D10D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13D10F   Length              0005 (5)\n+13D111   Flags               01 (1) 'Modification'\n+13D112   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13D116 PAYLOAD\n+\n+13D4CD DATA DESCRIPTOR       08074B50 (134695760)\n+13D4D1 CRC                   419EAEDE (1100918494)\n+13D4D5 Compressed Size       000003B7 (951)\n+13D4D9 Uncompressed Size     000003B7 (951)\n+\n+13D4DD LOCAL HEADER #455     04034B50 (67324752)\n+13D4E1 Extract Zip Spec      14 (20) '2.0'\n+13D4E2 Extract OS            00 (0) 'MS-DOS'\n+13D4E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13D4E5 Compression Method    0000 (0) 'Stored'\n+13D4E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13D4EB CRC                   00000000 (0)\n+13D4EF Compressed Size       00000000 (0)\n+13D4F3 Uncompressed Size     00000000 (0)\n+13D4F7 Filename Length       002D (45)\n+13D4F9 Extra Length          0009 (9)\n+13D4FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13D4FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13D528 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13D52A   Length              0005 (5)\n+13D52C   Flags               01 (1) 'Modification'\n+13D52D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13D531 PAYLOAD\n+\n+13D9AC DATA DESCRIPTOR       08074B50 (134695760)\n+13D9B0 CRC                   730F08F3 (1930365171)\n+13D9B4 Compressed Size       0000047B (1147)\n+13D9B8 Uncompressed Size     0000047B (1147)\n+\n+13D9BC LOCAL HEADER #456     04034B50 (67324752)\n+13D9C0 Extract Zip Spec      14 (20) '2.0'\n+13D9C1 Extract OS            00 (0) 'MS-DOS'\n+13D9C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13D9C4 Compression Method    0000 (0) 'Stored'\n+13D9C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13D9CA CRC                   00000000 (0)\n+13D9CE Compressed Size       00000000 (0)\n+13D9D2 Uncompressed Size     00000000 (0)\n+13D9D6 Filename Length       002C (44)\n+13D9D8 Extra Length          0009 (9)\n+13D9DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13D9DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13DA06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13DA08   Length              0005 (5)\n+13DA0A   Flags               01 (1) 'Modification'\n+13DA0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13DA0F PAYLOAD\n+\n+13DEA7 DATA DESCRIPTOR       08074B50 (134695760)\n+13DEAB CRC                   61ADD6F9 (1638782713)\n+13DEAF Compressed Size       00000498 (1176)\n+13DEB3 Uncompressed Size     00000498 (1176)\n+\n+13DEB7 LOCAL HEADER #457     04034B50 (67324752)\n+13DEBB Extract Zip Spec      14 (20) '2.0'\n+13DEBC Extract OS            00 (0) 'MS-DOS'\n+13DEBD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13DEBF Compression Method    0000 (0) 'Stored'\n+13DEC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13DEC5 CRC                   00000000 (0)\n+13DEC9 Compressed Size       00000000 (0)\n+13DECD Uncompressed Size     00000000 (0)\n+13DED1 Filename Length       002B (43)\n+13DED3 Extra Length          0009 (9)\n+13DED5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13DED5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13DF00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13DF02   Length              0005 (5)\n+13DF04   Flags               01 (1) 'Modification'\n+13DF05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13DF09 PAYLOAD\n+\n+13E370 DATA DESCRIPTOR       08074B50 (134695760)\n+13E374 CRC                   E87449AF (3899935151)\n+13E378 Compressed Size       00000467 (1127)\n+13E37C Uncompressed Size     00000467 (1127)\n+\n+13E380 LOCAL HEADER #458     04034B50 (67324752)\n+13E384 Extract Zip Spec      14 (20) '2.0'\n+13E385 Extract OS            00 (0) 'MS-DOS'\n+13E386 General Purpose Flag  0000 (0)\n+13E388 Compression Method    0000 (0) 'Stored'\n+13E38A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13E38E CRC                   00000000 (0)\n+13E392 Compressed Size       00000000 (0)\n+13E396 Uncompressed Size     00000000 (0)\n+13E39A Filename Length       0024 (36)\n+13E39C Extra Length          0009 (9)\n+13E39E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13E39E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13E3C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13E3C4   Length              0005 (5)\n+13E3C6   Flags               01 (1) 'Modification'\n+13E3C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13E3CB LOCAL HEADER #459     04034B50 (67324752)\n+13E3CF Extract Zip Spec      14 (20) '2.0'\n+13E3D0 Extract OS            00 (0) 'MS-DOS'\n+13E3D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13E3D3 Compression Method    0000 (0) 'Stored'\n+13E3D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13E3D9 CRC                   00000000 (0)\n+13E3DD Compressed Size       00000000 (0)\n+13E3E1 Uncompressed Size     00000000 (0)\n+13E3E5 Filename Length       0032 (50)\n+13E3E7 Extra Length          0009 (9)\n+13E3E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13E3E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13E41B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13E41D   Length              0005 (5)\n+13E41F   Flags               01 (1) 'Modification'\n+13E420   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13E424 PAYLOAD\n+\n+13EED4 DATA DESCRIPTOR       08074B50 (134695760)\n+13EED8 CRC                   79620788 (2036467592)\n+13EEDC Compressed Size       00000AB0 (2736)\n+13EEE0 Uncompressed Size     00000AB0 (2736)\n+\n+13EEE4 LOCAL HEADER #460     04034B50 (67324752)\n+13EEE8 Extract Zip Spec      14 (20) '2.0'\n+13EEE9 Extract OS            00 (0) 'MS-DOS'\n+13EEEA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13EEEC Compression Method    0000 (0) 'Stored'\n+13EEEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13EEF2 CRC                   00000000 (0)\n+13EEF6 Compressed Size       00000000 (0)\n+13EEFA Uncompressed Size     00000000 (0)\n+13EEFE Filename Length       0030 (48)\n+13EF00 Extra Length          0009 (9)\n+13EF02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13EF02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13EF32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13EF34   Length              0005 (5)\n+13EF36   Flags               01 (1) 'Modification'\n+13EF37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13EF3B PAYLOAD\n+\n+13FA4A DATA DESCRIPTOR       08074B50 (134695760)\n+13FA4E CRC                   C8043322 (3355718434)\n+13FA52 Compressed Size       00000B0F (2831)\n+13FA56 Uncompressed Size     00000B0F (2831)\n+\n+13FA5A LOCAL HEADER #461     04034B50 (67324752)\n+13FA5E Extract Zip Spec      14 (20) '2.0'\n+13FA5F Extract OS            00 (0) 'MS-DOS'\n+13FA60 General Purpose Flag  0000 (0)\n+13FA62 Compression Method    0000 (0) 'Stored'\n+13FA64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13FA68 CRC                   00000000 (0)\n+13FA6C Compressed Size       00000000 (0)\n+13FA70 Uncompressed Size     00000000 (0)\n+13FA74 Filename Length       0020 (32)\n+13FA76 Extra Length          0009 (9)\n+13FA78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13FA78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13FA98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13FA9A   Length              0005 (5)\n+13FA9C   Flags               01 (1) 'Modification'\n+13FA9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13FAA1 LOCAL HEADER #462     04034B50 (67324752)\n+13FAA5 Extract Zip Spec      14 (20) '2.0'\n+13FAA6 Extract OS            00 (0) 'MS-DOS'\n+13FAA7 General Purpose Flag  0000 (0)\n+13FAA9 Compression Method    0000 (0) 'Stored'\n+13FAAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13FAAF CRC                   00000000 (0)\n+13FAB3 Compressed Size       00000000 (0)\n+13FAB7 Uncompressed Size     00000000 (0)\n+13FABB Filename Length       0028 (40)\n+13FABD Extra Length          0009 (9)\n+13FABF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13FABF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13FAE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13FAE9   Length              0005 (5)\n+13FAEB   Flags               01 (1) 'Modification'\n+13FAEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13FAF0 LOCAL HEADER #463     04034B50 (67324752)\n+13FAF4 Extract Zip Spec      14 (20) '2.0'\n+13FAF5 Extract OS            00 (0) 'MS-DOS'\n+13FAF6 General Purpose Flag  0000 (0)\n+13FAF8 Compression Method    0000 (0) 'Stored'\n+13FAFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13FAFE CRC                   00000000 (0)\n+13FB02 Compressed Size       00000000 (0)\n+13FB06 Uncompressed Size     00000000 (0)\n+13FB0A Filename Length       0033 (51)\n+13FB0C Extra Length          0009 (9)\n+13FB0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13FB0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13FB41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13FB43   Length              0005 (5)\n+13FB45   Flags               01 (1) 'Modification'\n+13FB46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+13FB4A LOCAL HEADER #464     04034B50 (67324752)\n+13FB4E Extract Zip Spec      14 (20) '2.0'\n+13FB4F Extract OS            00 (0) 'MS-DOS'\n+13FB50 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+13FB52 Compression Method    0000 (0) 'Stored'\n+13FB54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+13FB58 CRC                   00000000 (0)\n+13FB5C Compressed Size       00000000 (0)\n+13FB60 Uncompressed Size     00000000 (0)\n+13FB64 Filename Length       0043 (67)\n+13FB66 Extra Length          0009 (9)\n+13FB68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x13FB68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+13FBAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+13FBAD   Length              0005 (5)\n+13FBAF   Flags               01 (1) 'Modification'\n+13FBB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+13FBB4 PAYLOAD\n+\n+1406B1 DATA DESCRIPTOR       08074B50 (134695760)\n+1406B5 CRC                   8EE85A26 (2397592102)\n+1406B9 Compressed Size       00000AFD (2813)\n+1406BD Uncompressed Size     00000AFD (2813)\n+\n+1406C1 LOCAL HEADER #465     04034B50 (67324752)\n+1406C5 Extract Zip Spec      14 (20) '2.0'\n+1406C6 Extract OS            00 (0) 'MS-DOS'\n+1406C7 General Purpose Flag  0000 (0)\n+1406C9 Compression Method    0000 (0) 'Stored'\n+1406CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1406CF CRC                   00000000 (0)\n+1406D3 Compressed Size       00000000 (0)\n+1406D7 Uncompressed Size     00000000 (0)\n+1406DB Filename Length       001C (28)\n+1406DD Extra Length          0009 (9)\n+1406DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1406DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1406FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1406FD   Length              0005 (5)\n+1406FF   Flags               01 (1) 'Modification'\n+140700   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+140704 LOCAL HEADER #466     04034B50 (67324752)\n+140708 Extract Zip Spec      14 (20) '2.0'\n+140709 Extract OS            00 (0) 'MS-DOS'\n+14070A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14070C Compression Method    0000 (0) 'Stored'\n+14070E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+140712 CRC                   00000000 (0)\n+140716 Compressed Size       00000000 (0)\n+14071A Uncompressed Size     00000000 (0)\n+14071E Filename Length       002A (42)\n+140720 Extra Length          0009 (9)\n+140722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x140722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14074C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14074E   Length              0005 (5)\n+140750   Flags               01 (1) 'Modification'\n+140751   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+140755 PAYLOAD\n+\n+140B0C DATA DESCRIPTOR       08074B50 (134695760)\n+140B10 CRC                   DC9E9A97 (3701381783)\n+140B14 Compressed Size       000003B7 (951)\n+140B18 Uncompressed Size     000003B7 (951)\n+\n+140B1C LOCAL HEADER #467     04034B50 (67324752)\n+140B20 Extract Zip Spec      14 (20) '2.0'\n+140B21 Extract OS            00 (0) 'MS-DOS'\n+140B22 General Purpose Flag  0000 (0)\n+140B24 Compression Method    0000 (0) 'Stored'\n+140B26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+140B2A CRC                   00000000 (0)\n+140B2E Compressed Size       00000000 (0)\n+140B32 Uncompressed Size     00000000 (0)\n+140B36 Filename Length       001A (26)\n+140B38 Extra Length          0009 (9)\n+140B3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x140B3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+140B54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+140B56   Length              0005 (5)\n+140B58   Flags               01 (1) 'Modification'\n+140B59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+140B5D LOCAL HEADER #468     04034B50 (67324752)\n+140B61 Extract Zip Spec      14 (20) '2.0'\n+140B62 Extract OS            00 (0) 'MS-DOS'\n+140B63 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+140B65 Compression Method    0000 (0) 'Stored'\n+140B67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+140B6B CRC                   00000000 (0)\n+140B6F Compressed Size       00000000 (0)\n+140B73 Uncompressed Size     00000000 (0)\n+140B77 Filename Length       0026 (38)\n+140B79 Extra Length          0009 (9)\n+140B7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x140B7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+140BA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+140BA3   Length              0005 (5)\n+140BA5   Flags               01 (1) 'Modification'\n+140BA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+140BAA PAYLOAD\n+\n+1411E9 DATA DESCRIPTOR       08074B50 (134695760)\n+1411ED CRC                   D9881C34 (3649575988)\n+1411F1 Compressed Size       0000063F (1599)\n+1411F5 Uncompressed Size     0000063F (1599)\n+\n+1411F9 LOCAL HEADER #469     04034B50 (67324752)\n+1411FD Extract Zip Spec      14 (20) '2.0'\n+1411FE Extract OS            00 (0) 'MS-DOS'\n+1411FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+141201 Compression Method    0000 (0) 'Stored'\n+141203 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+141207 CRC                   00000000 (0)\n+14120B Compressed Size       00000000 (0)\n+14120F Uncompressed Size     00000000 (0)\n+141213 Filename Length       002D (45)\n+141215 Extra Length          0009 (9)\n+141217 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x141217: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+141244 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+141246   Length              0005 (5)\n+141248   Flags               01 (1) 'Modification'\n+141249   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14124D PAYLOAD\n+\n+141723 DATA DESCRIPTOR       08074B50 (134695760)\n+141727 CRC                   29B723AE (699868078)\n+14172B Compressed Size       000004D6 (1238)\n+14172F Uncompressed Size     000004D6 (1238)\n+\n+141733 LOCAL HEADER #470     04034B50 (67324752)\n+141737 Extract Zip Spec      14 (20) '2.0'\n+141738 Extract OS            00 (0) 'MS-DOS'\n+141739 General Purpose Flag  0000 (0)\n+14173B Compression Method    0000 (0) 'Stored'\n+14173D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+141741 CRC                   00000000 (0)\n+141745 Compressed Size       00000000 (0)\n+141749 Uncompressed Size     00000000 (0)\n+14174D Filename Length       0016 (22)\n+14174F Extra Length          0009 (9)\n+141751 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x141751: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+141767 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+141769   Length              0005 (5)\n+14176B   Flags               01 (1) 'Modification'\n+14176C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+141770 LOCAL HEADER #471     04034B50 (67324752)\n+141774 Extract Zip Spec      14 (20) '2.0'\n+141775 Extract OS            00 (0) 'MS-DOS'\n+141776 General Purpose Flag  0000 (0)\n+141778 Compression Method    0000 (0) 'Stored'\n+14177A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14177E CRC                   00000000 (0)\n+141782 Compressed Size       00000000 (0)\n+141786 Uncompressed Size     00000000 (0)\n+14178A Filename Length       001E (30)\n+14178C Extra Length          0009 (9)\n+14178E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14178E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1417AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1417AE   Length              0005 (5)\n+1417B0   Flags               01 (1) 'Modification'\n+1417B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1417B5 LOCAL HEADER #472     04034B50 (67324752)\n+1417B9 Extract Zip Spec      14 (20) '2.0'\n+1417BA Extract OS            00 (0) 'MS-DOS'\n+1417BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1417BD Compression Method    0000 (0) 'Stored'\n+1417BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1417C3 CRC                   00000000 (0)\n+1417C7 Compressed Size       00000000 (0)\n+1417CB Uncompressed Size     00000000 (0)\n+1417CF Filename Length       002E (46)\n+1417D1 Extra Length          0009 (9)\n+1417D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1417D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+141801 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+141803   Length              0005 (5)\n+141805   Flags               01 (1) 'Modification'\n+141806   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14180A PAYLOAD\n+\n+141D2D DATA DESCRIPTOR       08074B50 (134695760)\n+141D31 CRC                   496AA8AF (1231726767)\n+141D35 Compressed Size       00000523 (1315)\n+141D39 Uncompressed Size     00000523 (1315)\n+\n+141D3D LOCAL HEADER #473     04034B50 (67324752)\n+141D41 Extract Zip Spec      14 (20) '2.0'\n+141D42 Extract OS            00 (0) 'MS-DOS'\n+141D43 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+141D45 Compression Method    0000 (0) 'Stored'\n+141D47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+141D4B CRC                   00000000 (0)\n+141D4F Compressed Size       00000000 (0)\n+141D53 Uncompressed Size     00000000 (0)\n+141D57 Filename Length       0031 (49)\n+141D59 Extra Length          0009 (9)\n+141D5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x141D5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+141D8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+141D8E   Length              0005 (5)\n+141D90   Flags               01 (1) 'Modification'\n+141D91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+141D95 PAYLOAD\n+\n+14233B DATA DESCRIPTOR       08074B50 (134695760)\n+14233F CRC                   52213B11 (1377909521)\n+142343 Compressed Size       000005A6 (1446)\n+142347 Uncompressed Size     000005A6 (1446)\n+\n+14234B LOCAL HEADER #474     04034B50 (67324752)\n+14234F Extract Zip Spec      14 (20) '2.0'\n+142350 Extract OS            00 (0) 'MS-DOS'\n+142351 General Purpose Flag  0000 (0)\n+142353 Compression Method    0000 (0) 'Stored'\n+142355 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+142359 CRC                   00000000 (0)\n+14235D Compressed Size       00000000 (0)\n+142361 Uncompressed Size     00000000 (0)\n+142365 Filename Length       001B (27)\n+142367 Extra Length          0009 (9)\n+142369 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x142369: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+142384 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+142386   Length              0005 (5)\n+142388   Flags               01 (1) 'Modification'\n+142389   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14238D LOCAL HEADER #475     04034B50 (67324752)\n+142391 Extract Zip Spec      14 (20) '2.0'\n+142392 Extract OS            00 (0) 'MS-DOS'\n+142393 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+142395 Compression Method    0000 (0) 'Stored'\n+142397 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14239B CRC                   00000000 (0)\n+14239F Compressed Size       00000000 (0)\n+1423A3 Uncompressed Size     00000000 (0)\n+1423A7 Filename Length       002E (46)\n+1423A9 Extra Length          0009 (9)\n+1423AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1423AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1423D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1423DB   Length              0005 (5)\n+1423DD   Flags               01 (1) 'Modification'\n+1423DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1423E2 PAYLOAD\n+\n+142C23 DATA DESCRIPTOR       08074B50 (134695760)\n+142C27 CRC                   981F5DED (2552192493)\n+142C2B Compressed Size       00000841 (2113)\n+142C2F Uncompressed Size     00000841 (2113)\n+\n+142C33 LOCAL HEADER #476     04034B50 (67324752)\n+142C37 Extract Zip Spec      14 (20) '2.0'\n+142C38 Extract OS            00 (0) 'MS-DOS'\n+142C39 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+142C3B Compression Method    0000 (0) 'Stored'\n+142C3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+142C41 CRC                   00000000 (0)\n+142C45 Compressed Size       00000000 (0)\n+142C49 Uncompressed Size     00000000 (0)\n+142C4D Filename Length       0028 (40)\n+142C4F Extra Length          0009 (9)\n+142C51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x142C51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+142C79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+142C7B   Length              0005 (5)\n+142C7D   Flags               01 (1) 'Modification'\n+142C7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+142C82 PAYLOAD\n+\n+14367E DATA DESCRIPTOR       08074B50 (134695760)\n+143682 CRC                   D76B4438 (3614131256)\n+143686 Compressed Size       000009FC (2556)\n+14368A Uncompressed Size     000009FC (2556)\n+\n+14368E LOCAL HEADER #477     04034B50 (67324752)\n+143692 Extract Zip Spec      14 (20) '2.0'\n+143693 Extract OS            00 (0) 'MS-DOS'\n+143694 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+143696 Compression Method    0000 (0) 'Stored'\n+143698 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14369C CRC                   00000000 (0)\n+1436A0 Compressed Size       00000000 (0)\n+1436A4 Uncompressed Size     00000000 (0)\n+1436A8 Filename Length       002F (47)\n+1436AA Extra Length          0009 (9)\n+1436AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1436AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1436DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1436DD   Length              0005 (5)\n+1436DF   Flags               01 (1) 'Modification'\n+1436E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1436E4 PAYLOAD\n+\n+143BC5 DATA DESCRIPTOR       08074B50 (134695760)\n+143BC9 CRC                   C61A4C11 (3323612177)\n+143BCD Compressed Size       000004E1 (1249)\n+143BD1 Uncompressed Size     000004E1 (1249)\n+\n+143BD5 LOCAL HEADER #478     04034B50 (67324752)\n+143BD9 Extract Zip Spec      14 (20) '2.0'\n+143BDA Extract OS            00 (0) 'MS-DOS'\n+143BDB General Purpose Flag  0000 (0)\n+143BDD Compression Method    0000 (0) 'Stored'\n+143BDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+143BE3 CRC                   00000000 (0)\n+143BE7 Compressed Size       00000000 (0)\n+143BEB Uncompressed Size     00000000 (0)\n+143BEF Filename Length       0023 (35)\n+143BF1 Extra Length          0009 (9)\n+143BF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x143BF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+143C16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+143C18   Length              0005 (5)\n+143C1A   Flags               01 (1) 'Modification'\n+143C1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+143C1F LOCAL HEADER #479     04034B50 (67324752)\n+143C23 Extract Zip Spec      14 (20) '2.0'\n+143C24 Extract OS            00 (0) 'MS-DOS'\n+143C25 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+143C27 Compression Method    0000 (0) 'Stored'\n+143C29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+143C2D CRC                   00000000 (0)\n+143C31 Compressed Size       00000000 (0)\n+143C35 Uncompressed Size     00000000 (0)\n+143C39 Filename Length       0038 (56)\n+143C3B Extra Length          0009 (9)\n+143C3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x143C3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+143C75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+143C77   Length              0005 (5)\n+143C79   Flags               01 (1) 'Modification'\n+143C7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+143C7E PAYLOAD\n+\n+14555D DATA DESCRIPTOR       08074B50 (134695760)\n+145561 CRC                   90AFF823 (2427451427)\n+145565 Compressed Size       000018DF (6367)\n+145569 Uncompressed Size     000018DF (6367)\n+\n+14556D LOCAL HEADER #480     04034B50 (67324752)\n+145571 Extract Zip Spec      14 (20) '2.0'\n+145572 Extract OS            00 (0) 'MS-DOS'\n+145573 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+145575 Compression Method    0000 (0) 'Stored'\n+145577 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14557B CRC                   00000000 (0)\n+14557F Compressed Size       00000000 (0)\n+145583 Uncompressed Size     00000000 (0)\n+145587 Filename Length       003F (63)\n+145589 Extra Length          0009 (9)\n+14558B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14558B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1455CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1455CC   Length              0005 (5)\n+1455CE   Flags               01 (1) 'Modification'\n+1455CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1455D3 PAYLOAD\n+\n+145B26 DATA DESCRIPTOR       08074B50 (134695760)\n+145B2A CRC                   85536244 (2236834372)\n+145B2E Compressed Size       00000553 (1363)\n+145B32 Uncompressed Size     00000553 (1363)\n+\n+145B36 LOCAL HEADER #481     04034B50 (67324752)\n+145B3A Extract Zip Spec      14 (20) '2.0'\n+145B3B Extract OS            00 (0) 'MS-DOS'\n+145B3C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+145B3E Compression Method    0000 (0) 'Stored'\n+145B40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+145B44 CRC                   00000000 (0)\n+145B48 Compressed Size       00000000 (0)\n+145B4C Uncompressed Size     00000000 (0)\n+145B50 Filename Length       0038 (56)\n+145B52 Extra Length          0009 (9)\n+145B54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x145B54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+145B8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+145B8E   Length              0005 (5)\n+145B90   Flags               01 (1) 'Modification'\n+145B91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+145B95 PAYLOAD\n+\n+1477DD DATA DESCRIPTOR       08074B50 (134695760)\n+1477E1 CRC                   98DC2CD5 (2564566229)\n+1477E5 Compressed Size       00001C48 (7240)\n+1477E9 Uncompressed Size     00001C48 (7240)\n+\n+1477ED LOCAL HEADER #482     04034B50 (67324752)\n+1477F1 Extract Zip Spec      14 (20) '2.0'\n+1477F2 Extract OS            00 (0) 'MS-DOS'\n+1477F3 General Purpose Flag  0000 (0)\n+1477F5 Compression Method    0000 (0) 'Stored'\n+1477F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1477FB CRC                   00000000 (0)\n+1477FF Compressed Size       00000000 (0)\n+147803 Uncompressed Size     00000000 (0)\n+147807 Filename Length       001B (27)\n+147809 Extra Length          0009 (9)\n+14780B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14780B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+147826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+147828   Length              0005 (5)\n+14782A   Flags               01 (1) 'Modification'\n+14782B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14782F LOCAL HEADER #483     04034B50 (67324752)\n+147833 Extract Zip Spec      14 (20) '2.0'\n+147834 Extract OS            00 (0) 'MS-DOS'\n+147835 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+147837 Compression Method    0000 (0) 'Stored'\n+147839 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14783D CRC                   00000000 (0)\n+147841 Compressed Size       00000000 (0)\n+147845 Uncompressed Size     00000000 (0)\n+147849 Filename Length       0027 (39)\n+14784B Extra Length          0009 (9)\n+14784D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14784D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+147874 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+147876   Length              0005 (5)\n+147878   Flags               01 (1) 'Modification'\n+147879   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14787D PAYLOAD\n+\n+147CC0 DATA DESCRIPTOR       08074B50 (134695760)\n+147CC4 CRC                   B05300B6 (2958229686)\n+147CC8 Compressed Size       00000443 (1091)\n+147CCC Uncompressed Size     00000443 (1091)\n+\n+147CD0 LOCAL HEADER #484     04034B50 (67324752)\n+147CD4 Extract Zip Spec      14 (20) '2.0'\n+147CD5 Extract OS            00 (0) 'MS-DOS'\n+147CD6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+147CD8 Compression Method    0000 (0) 'Stored'\n+147CDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+147CDE CRC                   00000000 (0)\n+147CE2 Compressed Size       00000000 (0)\n+147CE6 Uncompressed Size     00000000 (0)\n+147CEA Filename Length       002E (46)\n+147CEC Extra Length          0009 (9)\n+147CEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x147CEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+147D1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+147D1E   Length              0005 (5)\n+147D20   Flags               01 (1) 'Modification'\n+147D21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+147D25 PAYLOAD\n+\n+1485E1 DATA DESCRIPTOR       08074B50 (134695760)\n+1485E5 CRC                   4B53EA77 (1263790711)\n+1485E9 Compressed Size       000008BC (2236)\n+1485ED Uncompressed Size     000008BC (2236)\n+\n+1485F1 LOCAL HEADER #485     04034B50 (67324752)\n+1485F5 Extract Zip Spec      14 (20) '2.0'\n+1485F6 Extract OS            00 (0) 'MS-DOS'\n+1485F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1485F9 Compression Method    0000 (0) 'Stored'\n+1485FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1485FF CRC                   00000000 (0)\n+148603 Compressed Size       00000000 (0)\n+148607 Uncompressed Size     00000000 (0)\n+14860B Filename Length       0025 (37)\n+14860D Extra Length          0009 (9)\n+14860F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14860F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+148634 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+148636   Length              0005 (5)\n+148638   Flags               01 (1) 'Modification'\n+148639   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14863D PAYLOAD\n+\n+1489EA DATA DESCRIPTOR       08074B50 (134695760)\n+1489EE CRC                   F7117BC1 (4145118145)\n+1489F2 Compressed Size       000003AD (941)\n+1489F6 Uncompressed Size     000003AD (941)\n+\n+1489FA LOCAL HEADER #486     04034B50 (67324752)\n+1489FE Extract Zip Spec      14 (20) '2.0'\n+1489FF Extract OS            00 (0) 'MS-DOS'\n+148A00 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+148A02 Compression Method    0000 (0) 'Stored'\n+148A04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+148A08 CRC                   00000000 (0)\n+148A0C Compressed Size       00000000 (0)\n+148A10 Uncompressed Size     00000000 (0)\n+148A14 Filename Length       0026 (38)\n+148A16 Extra Length          0009 (9)\n+148A18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x148A18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+148A3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+148A40   Length              0005 (5)\n+148A42   Flags               01 (1) 'Modification'\n+148A43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+148A47 PAYLOAD\n+\n+148DF6 DATA DESCRIPTOR       08074B50 (134695760)\n+148DFA CRC                   AB71C50D (2876359949)\n+148DFE Compressed Size       000003AF (943)\n+148E02 Uncompressed Size     000003AF (943)\n+\n+148E06 LOCAL HEADER #487     04034B50 (67324752)\n+148E0A Extract Zip Spec      14 (20) '2.0'\n+148E0B Extract OS            00 (0) 'MS-DOS'\n+148E0C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+148E0E Compression Method    0000 (0) 'Stored'\n+148E10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+148E14 CRC                   00000000 (0)\n+148E18 Compressed Size       00000000 (0)\n+148E1C Uncompressed Size     00000000 (0)\n+148E20 Filename Length       002A (42)\n+148E22 Extra Length          0009 (9)\n+148E24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x148E24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+148E4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+148E50   Length              0005 (5)\n+148E52   Flags               01 (1) 'Modification'\n+148E53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+148E57 PAYLOAD\n+\n+1493A5 DATA DESCRIPTOR       08074B50 (134695760)\n+1493A9 CRC                   738B9E3F (1938529855)\n+1493AD Compressed Size       0000054E (1358)\n+1493B1 Uncompressed Size     0000054E (1358)\n+\n+1493B5 LOCAL HEADER #488     04034B50 (67324752)\n+1493B9 Extract Zip Spec      14 (20) '2.0'\n+1493BA Extract OS            00 (0) 'MS-DOS'\n+1493BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1493BD Compression Method    0000 (0) 'Stored'\n+1493BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1493C3 CRC                   00000000 (0)\n+1493C7 Compressed Size       00000000 (0)\n+1493CB Uncompressed Size     00000000 (0)\n+1493CF Filename Length       0031 (49)\n+1493D1 Extra Length          0009 (9)\n+1493D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1493D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+149404 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+149406   Length              0005 (5)\n+149408   Flags               01 (1) 'Modification'\n+149409   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14940D PAYLOAD\n+\n+149BF6 DATA DESCRIPTOR       08074B50 (134695760)\n+149BFA CRC                   302E4037 (808337463)\n+149BFE Compressed Size       000007E9 (2025)\n+149C02 Uncompressed Size     000007E9 (2025)\n+\n+149C06 LOCAL HEADER #489     04034B50 (67324752)\n+149C0A Extract Zip Spec      14 (20) '2.0'\n+149C0B Extract OS            00 (0) 'MS-DOS'\n+149C0C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+149C0E Compression Method    0000 (0) 'Stored'\n+149C10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+149C14 CRC                   00000000 (0)\n+149C18 Compressed Size       00000000 (0)\n+149C1C Uncompressed Size     00000000 (0)\n+149C20 Filename Length       0026 (38)\n+149C22 Extra Length          0009 (9)\n+149C24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x149C24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+149C4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+149C4C   Length              0005 (5)\n+149C4E   Flags               01 (1) 'Modification'\n+149C4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+149C53 PAYLOAD\n+\n+14A022 DATA DESCRIPTOR       08074B50 (134695760)\n+14A026 CRC                   6793ECA6 (1737747622)\n+14A02A Compressed Size       000003CF (975)\n+14A02E Uncompressed Size     000003CF (975)\n+\n+14A032 LOCAL HEADER #490     04034B50 (67324752)\n+14A036 Extract Zip Spec      14 (20) '2.0'\n+14A037 Extract OS            00 (0) 'MS-DOS'\n+14A038 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14A03A Compression Method    0000 (0) 'Stored'\n+14A03C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14A040 CRC                   00000000 (0)\n+14A044 Compressed Size       00000000 (0)\n+14A048 Uncompressed Size     00000000 (0)\n+14A04C Filename Length       002B (43)\n+14A04E Extra Length          0009 (9)\n+14A050 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14A050: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14A07B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14A07D   Length              0005 (5)\n+14A07F   Flags               01 (1) 'Modification'\n+14A080   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14A084 PAYLOAD\n+\n+14AD7D DATA DESCRIPTOR       08074B50 (134695760)\n+14AD81 CRC                   39731479 (963843193)\n+14AD85 Compressed Size       00000CF9 (3321)\n+14AD89 Uncompressed Size     00000CF9 (3321)\n+\n+14AD8D LOCAL HEADER #491     04034B50 (67324752)\n+14AD91 Extract Zip Spec      14 (20) '2.0'\n+14AD92 Extract OS            00 (0) 'MS-DOS'\n+14AD93 General Purpose Flag  0000 (0)\n+14AD95 Compression Method    0000 (0) 'Stored'\n+14AD97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14AD9B CRC                   00000000 (0)\n+14AD9F Compressed Size       00000000 (0)\n+14ADA3 Uncompressed Size     00000000 (0)\n+14ADA7 Filename Length       0024 (36)\n+14ADA9 Extra Length          0009 (9)\n+14ADAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14ADAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14ADCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14ADD1   Length              0005 (5)\n+14ADD3   Flags               01 (1) 'Modification'\n+14ADD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14ADD8 LOCAL HEADER #492     04034B50 (67324752)\n+14ADDC Extract Zip Spec      14 (20) '2.0'\n+14ADDD Extract OS            00 (0) 'MS-DOS'\n+14ADDE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14ADE0 Compression Method    0000 (0) 'Stored'\n+14ADE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14ADE6 CRC                   00000000 (0)\n+14ADEA Compressed Size       00000000 (0)\n+14ADEE Uncompressed Size     00000000 (0)\n+14ADF2 Filename Length       0032 (50)\n+14ADF4 Extra Length          0009 (9)\n+14ADF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14ADF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14AE28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14AE2A   Length              0005 (5)\n+14AE2C   Flags               01 (1) 'Modification'\n+14AE2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14AE31 PAYLOAD\n+\n+14B1F8 DATA DESCRIPTOR       08074B50 (134695760)\n+14B1FC CRC                   4B6F1882 (1265571970)\n+14B200 Compressed Size       000003C7 (967)\n+14B204 Uncompressed Size     000003C7 (967)\n+\n+14B208 LOCAL HEADER #493     04034B50 (67324752)\n+14B20C Extract Zip Spec      14 (20) '2.0'\n+14B20D Extract OS            00 (0) 'MS-DOS'\n+14B20E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14B210 Compression Method    0000 (0) 'Stored'\n+14B212 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14B216 CRC                   00000000 (0)\n+14B21A Compressed Size       00000000 (0)\n+14B21E Uncompressed Size     00000000 (0)\n+14B222 Filename Length       0039 (57)\n+14B224 Extra Length          0009 (9)\n+14B226 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14B226: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14B25F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14B261   Length              0005 (5)\n+14B263   Flags               01 (1) 'Modification'\n+14B264   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14B268 PAYLOAD\n+\n+14B6F3 DATA DESCRIPTOR       08074B50 (134695760)\n+14B6F7 CRC                   498B4AB9 (1233865401)\n+14B6FB Compressed Size       0000048B (1163)\n+14B6FF Uncompressed Size     0000048B (1163)\n+\n+14B703 LOCAL HEADER #494     04034B50 (67324752)\n+14B707 Extract Zip Spec      14 (20) '2.0'\n+14B708 Extract OS            00 (0) 'MS-DOS'\n+14B709 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14B70B Compression Method    0000 (0) 'Stored'\n+14B70D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14B711 CRC                   00000000 (0)\n+14B715 Compressed Size       00000000 (0)\n+14B719 Uncompressed Size     00000000 (0)\n+14B71D Filename Length       0037 (55)\n+14B71F Extra Length          0009 (9)\n+14B721 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14B721: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14B758 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14B75A   Length              0005 (5)\n+14B75C   Flags               01 (1) 'Modification'\n+14B75D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14B761 PAYLOAD\n+\n+14BD6A DATA DESCRIPTOR       08074B50 (134695760)\n+14BD6E CRC                   DEB81EEE (3736608494)\n+14BD72 Compressed Size       00000609 (1545)\n+14BD76 Uncompressed Size     00000609 (1545)\n+\n+14BD7A LOCAL HEADER #495     04034B50 (67324752)\n+14BD7E Extract Zip Spec      14 (20) '2.0'\n+14BD7F Extract OS            00 (0) 'MS-DOS'\n+14BD80 General Purpose Flag  0000 (0)\n+14BD82 Compression Method    0000 (0) 'Stored'\n+14BD84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14BD88 CRC                   00000000 (0)\n+14BD8C Compressed Size       00000000 (0)\n+14BD90 Uncompressed Size     00000000 (0)\n+14BD94 Filename Length       0020 (32)\n+14BD96 Extra Length          0009 (9)\n+14BD98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14BD98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14BDB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14BDBA   Length              0005 (5)\n+14BDBC   Flags               01 (1) 'Modification'\n+14BDBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14BDC1 LOCAL HEADER #496     04034B50 (67324752)\n+14BDC5 Extract Zip Spec      14 (20) '2.0'\n+14BDC6 Extract OS            00 (0) 'MS-DOS'\n+14BDC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14BDC9 Compression Method    0000 (0) 'Stored'\n+14BDCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14BDCF CRC                   00000000 (0)\n+14BDD3 Compressed Size       00000000 (0)\n+14BDD7 Uncompressed Size     00000000 (0)\n+14BDDB Filename Length       002F (47)\n+14BDDD Extra Length          0009 (9)\n+14BDDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14BDDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14BE0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14BE10   Length              0005 (5)\n+14BE12   Flags               01 (1) 'Modification'\n+14BE13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14BE17 PAYLOAD\n+\n+14C1D8 DATA DESCRIPTOR       08074B50 (134695760)\n+14C1DC CRC                   2510FA3B (621869627)\n+14C1E0 Compressed Size       000003C1 (961)\n+14C1E4 Uncompressed Size     000003C1 (961)\n+\n+14C1E8 LOCAL HEADER #497     04034B50 (67324752)\n+14C1EC Extract Zip Spec      14 (20) '2.0'\n+14C1ED Extract OS            00 (0) 'MS-DOS'\n+14C1EE General Purpose Flag  0000 (0)\n+14C1F0 Compression Method    0000 (0) 'Stored'\n+14C1F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14C1F6 CRC                   00000000 (0)\n+14C1FA Compressed Size       00000000 (0)\n+14C1FE Uncompressed Size     00000000 (0)\n+14C202 Filename Length       001F (31)\n+14C204 Extra Length          0009 (9)\n+14C206 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14C206: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14C225 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14C227   Length              0005 (5)\n+14C229   Flags               01 (1) 'Modification'\n+14C22A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14C22E LOCAL HEADER #498     04034B50 (67324752)\n+14C232 Extract Zip Spec      14 (20) '2.0'\n+14C233 Extract OS            00 (0) 'MS-DOS'\n+14C234 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14C236 Compression Method    0000 (0) 'Stored'\n+14C238 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14C23C CRC                   00000000 (0)\n+14C240 Compressed Size       00000000 (0)\n+14C244 Uncompressed Size     00000000 (0)\n+14C248 Filename Length       002D (45)\n+14C24A Extra Length          0009 (9)\n+14C24C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14C24C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14C279 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14C27B   Length              0005 (5)\n+14C27D   Flags               01 (1) 'Modification'\n+14C27E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14C282 PAYLOAD\n+\n+14C63F DATA DESCRIPTOR       08074B50 (134695760)\n+14C643 CRC                   14A7D3CC (346543052)\n+14C647 Compressed Size       000003BD (957)\n+14C64B Uncompressed Size     000003BD (957)\n+\n+14C64F LOCAL HEADER #499     04034B50 (67324752)\n+14C653 Extract Zip Spec      14 (20) '2.0'\n+14C654 Extract OS            00 (0) 'MS-DOS'\n+14C655 General Purpose Flag  0000 (0)\n+14C657 Compression Method    0000 (0) 'Stored'\n+14C659 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14C65D CRC                   00000000 (0)\n+14C661 Compressed Size       00000000 (0)\n+14C665 Uncompressed Size     00000000 (0)\n+14C669 Filename Length       0022 (34)\n+14C66B Extra Length          0009 (9)\n+14C66D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14C66D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14C68F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14C691   Length              0005 (5)\n+14C693   Flags               01 (1) 'Modification'\n+14C694   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14C698 LOCAL HEADER #500     04034B50 (67324752)\n+14C69C Extract Zip Spec      14 (20) '2.0'\n+14C69D Extract OS            00 (0) 'MS-DOS'\n+14C69E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14C6A0 Compression Method    0000 (0) 'Stored'\n+14C6A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14C6A6 CRC                   00000000 (0)\n+14C6AA Compressed Size       00000000 (0)\n+14C6AE Uncompressed Size     00000000 (0)\n+14C6B2 Filename Length       0034 (52)\n+14C6B4 Extra Length          0009 (9)\n+14C6B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14C6B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14C6EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14C6EC   Length              0005 (5)\n+14C6EE   Flags               01 (1) 'Modification'\n+14C6EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14C6F3 PAYLOAD\n+\n+14CC2B DATA DESCRIPTOR       08074B50 (134695760)\n+14CC2F CRC                   1652AFBA (374517690)\n+14CC33 Compressed Size       00000538 (1336)\n+14CC37 Uncompressed Size     00000538 (1336)\n+\n+14CC3B LOCAL HEADER #501     04034B50 (67324752)\n+14CC3F Extract Zip Spec      14 (20) '2.0'\n+14CC40 Extract OS            00 (0) 'MS-DOS'\n+14CC41 General Purpose Flag  0000 (0)\n+14CC43 Compression Method    0000 (0) 'Stored'\n+14CC45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14CC49 CRC                   00000000 (0)\n+14CC4D Compressed Size       00000000 (0)\n+14CC51 Uncompressed Size     00000000 (0)\n+14CC55 Filename Length       0025 (37)\n+14CC57 Extra Length          0009 (9)\n+14CC59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14CC59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14CC7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14CC80   Length              0005 (5)\n+14CC82   Flags               01 (1) 'Modification'\n+14CC83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14CC87 LOCAL HEADER #502     04034B50 (67324752)\n+14CC8B Extract Zip Spec      14 (20) '2.0'\n+14CC8C Extract OS            00 (0) 'MS-DOS'\n+14CC8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14CC8F Compression Method    0000 (0) 'Stored'\n+14CC91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14CC95 CRC                   00000000 (0)\n+14CC99 Compressed Size       00000000 (0)\n+14CC9D Uncompressed Size     00000000 (0)\n+14CCA1 Filename Length       003E (62)\n+14CCA3 Extra Length          0009 (9)\n+14CCA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14CCA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14CCE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14CCE5   Length              0005 (5)\n+14CCE7   Flags               01 (1) 'Modification'\n+14CCE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14CCEC PAYLOAD\n+\n+14D0CB DATA DESCRIPTOR       08074B50 (134695760)\n+14D0CF CRC                   15451137 (356847927)\n+14D0D3 Compressed Size       000003DF (991)\n+14D0D7 Uncompressed Size     000003DF (991)\n+\n+14D0DB LOCAL HEADER #503     04034B50 (67324752)\n+14D0DF Extract Zip Spec      14 (20) '2.0'\n+14D0E0 Extract OS            00 (0) 'MS-DOS'\n+14D0E1 General Purpose Flag  0000 (0)\n+14D0E3 Compression Method    0000 (0) 'Stored'\n+14D0E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14D0E9 CRC                   00000000 (0)\n+14D0ED Compressed Size       00000000 (0)\n+14D0F1 Uncompressed Size     00000000 (0)\n+14D0F5 Filename Length       0016 (22)\n+14D0F7 Extra Length          0009 (9)\n+14D0F9 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14D0F9: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14D10F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14D111   Length              0005 (5)\n+14D113   Flags               01 (1) 'Modification'\n+14D114   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+14D118 LOCAL HEADER #504     04034B50 (67324752)\n+14D11C Extract Zip Spec      14 (20) '2.0'\n+14D11D Extract OS            00 (0) 'MS-DOS'\n+14D11E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14D120 Compression Method    0000 (0) 'Stored'\n+14D122 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14D126 CRC                   00000000 (0)\n+14D12A Compressed Size       00000000 (0)\n+14D12E Uncompressed Size     00000000 (0)\n+14D132 Filename Length       0023 (35)\n+14D134 Extra Length          0009 (9)\n+14D136 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14D136: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14D159 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14D15B   Length              0005 (5)\n+14D15D   Flags               01 (1) 'Modification'\n+14D15E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14D162 PAYLOAD\n+\n+14D73F DATA DESCRIPTOR       08074B50 (134695760)\n+14D743 CRC                   5AF92E3B (1526279739)\n+14D747 Compressed Size       000005DD (1501)\n+14D74B Uncompressed Size     000005DD (1501)\n+\n+14D74F LOCAL HEADER #505     04034B50 (67324752)\n+14D753 Extract Zip Spec      14 (20) '2.0'\n+14D754 Extract OS            00 (0) 'MS-DOS'\n+14D755 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14D757 Compression Method    0000 (0) 'Stored'\n+14D759 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14D75D CRC                   00000000 (0)\n+14D761 Compressed Size       00000000 (0)\n+14D765 Uncompressed Size     00000000 (0)\n+14D769 Filename Length       0021 (33)\n+14D76B Extra Length          0009 (9)\n+14D76D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14D76D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14D78E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14D790   Length              0005 (5)\n+14D792   Flags               01 (1) 'Modification'\n+14D793   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14D797 PAYLOAD\n+\n+14DD74 DATA DESCRIPTOR       08074B50 (134695760)\n+14DD78 CRC                   4813D623 (1209259555)\n+14DD7C Compressed Size       000005DD (1501)\n+14DD80 Uncompressed Size     000005DD (1501)\n+\n+14DD84 LOCAL HEADER #506     04034B50 (67324752)\n+14DD88 Extract Zip Spec      14 (20) '2.0'\n+14DD89 Extract OS            00 (0) 'MS-DOS'\n+14DD8A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14DD8C Compression Method    0000 (0) 'Stored'\n+14DD8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14DD92 CRC                   00000000 (0)\n+14DD96 Compressed Size       00000000 (0)\n+14DD9A Uncompressed Size     00000000 (0)\n+14DD9E Filename Length       0025 (37)\n+14DDA0 Extra Length          0009 (9)\n+14DDA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14DDA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14DDC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14DDC9   Length              0005 (5)\n+14DDCB   Flags               01 (1) 'Modification'\n+14DDCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14DDD0 PAYLOAD\n+\n+14F079 DATA DESCRIPTOR       08074B50 (134695760)\n+14F07D CRC                   57D1F11D (1473376541)\n+14F081 Compressed Size       000012A9 (4777)\n+14F085 Uncompressed Size     000012A9 (4777)\n+\n+14F089 LOCAL HEADER #507     04034B50 (67324752)\n+14F08D Extract Zip Spec      14 (20) '2.0'\n+14F08E Extract OS            00 (0) 'MS-DOS'\n+14F08F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14F091 Compression Method    0000 (0) 'Stored'\n+14F093 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14F097 CRC                   00000000 (0)\n+14F09B Compressed Size       00000000 (0)\n+14F09F Uncompressed Size     00000000 (0)\n+14F0A3 Filename Length       0022 (34)\n+14F0A5 Extra Length          0009 (9)\n+14F0A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14F0A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14F0C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14F0CB   Length              0005 (5)\n+14F0CD   Flags               01 (1) 'Modification'\n+14F0CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14F0D2 PAYLOAD\n+\n+14FA53 DATA DESCRIPTOR       08074B50 (134695760)\n+14FA57 CRC                   3FF357FC (1072912380)\n+14FA5B Compressed Size       00000981 (2433)\n+14FA5F Uncompressed Size     00000981 (2433)\n+\n+14FA63 LOCAL HEADER #508     04034B50 (67324752)\n+14FA67 Extract Zip Spec      14 (20) '2.0'\n+14FA68 Extract OS            00 (0) 'MS-DOS'\n+14FA69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+14FA6B Compression Method    0000 (0) 'Stored'\n+14FA6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+14FA71 CRC                   00000000 (0)\n+14FA75 Compressed Size       00000000 (0)\n+14FA79 Uncompressed Size     00000000 (0)\n+14FA7D Filename Length       002A (42)\n+14FA7F Extra Length          0009 (9)\n+14FA81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x14FA81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+14FAAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+14FAAD   Length              0005 (5)\n+14FAAF   Flags               01 (1) 'Modification'\n+14FAB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+14FAB4 PAYLOAD\n+\n+1500C1 DATA DESCRIPTOR       08074B50 (134695760)\n+1500C5 CRC                   A7B8FF5F (2813919071)\n+1500C9 Compressed Size       0000060D (1549)\n+1500CD Uncompressed Size     0000060D (1549)\n+\n+1500D1 LOCAL HEADER #509     04034B50 (67324752)\n+1500D5 Extract Zip Spec      14 (20) '2.0'\n+1500D6 Extract OS            00 (0) 'MS-DOS'\n+1500D7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1500D9 Compression Method    0000 (0) 'Stored'\n+1500DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1500DF CRC                   00000000 (0)\n+1500E3 Compressed Size       00000000 (0)\n+1500E7 Uncompressed Size     00000000 (0)\n+1500EB Filename Length       0023 (35)\n+1500ED Extra Length          0009 (9)\n+1500EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1500EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+150112 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+150114   Length              0005 (5)\n+150116   Flags               01 (1) 'Modification'\n+150117   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15011B PAYLOAD\n+\n+1507F8 DATA DESCRIPTOR       08074B50 (134695760)\n+1507FC CRC                   BE8E4754 (3196995412)\n+150800 Compressed Size       000006DD (1757)\n+150804 Uncompressed Size     000006DD (1757)\n+\n+150808 LOCAL HEADER #510     04034B50 (67324752)\n+15080C Extract Zip Spec      14 (20) '2.0'\n+15080D Extract OS            00 (0) 'MS-DOS'\n+15080E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+150810 Compression Method    0000 (0) 'Stored'\n+150812 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+150816 CRC                   00000000 (0)\n+15081A Compressed Size       00000000 (0)\n+15081E Uncompressed Size     00000000 (0)\n+150822 Filename Length       0027 (39)\n+150824 Extra Length          0009 (9)\n+150826 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x150826: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15084D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15084F   Length              0005 (5)\n+150851   Flags               01 (1) 'Modification'\n+150852   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+150856 PAYLOAD\n+\n+151052 DATA DESCRIPTOR       08074B50 (134695760)\n+151056 CRC                   F08690D4 (4035350740)\n+15105A Compressed Size       000007FC (2044)\n+15105E Uncompressed Size     000007FC (2044)\n+\n+151062 LOCAL HEADER #511     04034B50 (67324752)\n+151066 Extract Zip Spec      14 (20) '2.0'\n+151067 Extract OS            00 (0) 'MS-DOS'\n+151068 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15106A Compression Method    0000 (0) 'Stored'\n+15106C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+151070 CRC                   00000000 (0)\n+151074 Compressed Size       00000000 (0)\n+151078 Uncompressed Size     00000000 (0)\n+15107C Filename Length       0021 (33)\n+15107E Extra Length          0009 (9)\n+151080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x151080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1510A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1510A3   Length              0005 (5)\n+1510A5   Flags               01 (1) 'Modification'\n+1510A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1510AA PAYLOAD\n+\n+152418 DATA DESCRIPTOR       08074B50 (134695760)\n+15241C CRC                   EE092214 (3993575956)\n+152420 Compressed Size       0000136E (4974)\n+152424 Uncompressed Size     0000136E (4974)\n+\n+152428 LOCAL HEADER #512     04034B50 (67324752)\n+15242C Extract Zip Spec      14 (20) '2.0'\n+15242D Extract OS            00 (0) 'MS-DOS'\n+15242E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+152430 Compression Method    0000 (0) 'Stored'\n+152432 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+152436 CRC                   00000000 (0)\n+15243A Compressed Size       00000000 (0)\n+15243E Uncompressed Size     00000000 (0)\n+152442 Filename Length       0025 (37)\n+152444 Extra Length          0009 (9)\n+152446 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x152446: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15246B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15246D   Length              0005 (5)\n+15246F   Flags               01 (1) 'Modification'\n+152470   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+152474 PAYLOAD\n+\n+1551F5 DATA DESCRIPTOR       08074B50 (134695760)\n+1551F9 CRC                   EBE35D6F (3957546351)\n+1551FD Compressed Size       00002D81 (11649)\n+155201 Uncompressed Size     00002D81 (11649)\n+\n+155205 LOCAL HEADER #513     04034B50 (67324752)\n+155209 Extract Zip Spec      14 (20) '2.0'\n+15520A Extract OS            00 (0) 'MS-DOS'\n+15520B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15520D Compression Method    0000 (0) 'Stored'\n+15520F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+155213 CRC                   00000000 (0)\n+155217 Compressed Size       00000000 (0)\n+15521B Uncompressed Size     00000000 (0)\n+15521F Filename Length       0027 (39)\n+155221 Extra Length          0009 (9)\n+155223 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x155223: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15524A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15524C   Length              0005 (5)\n+15524E   Flags               01 (1) 'Modification'\n+15524F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+155253 PAYLOAD\n+\n+1558AC DATA DESCRIPTOR       08074B50 (134695760)\n+1558B0 CRC                   FF29698F (4280904079)\n+1558B4 Compressed Size       00000659 (1625)\n+1558B8 Uncompressed Size     00000659 (1625)\n+\n+1558BC LOCAL HEADER #514     04034B50 (67324752)\n+1558C0 Extract Zip Spec      14 (20) '2.0'\n+1558C1 Extract OS            00 (0) 'MS-DOS'\n+1558C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1558C4 Compression Method    0000 (0) 'Stored'\n+1558C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1558CA CRC                   00000000 (0)\n+1558CE Compressed Size       00000000 (0)\n+1558D2 Uncompressed Size     00000000 (0)\n+1558D6 Filename Length       0028 (40)\n+1558D8 Extra Length          0009 (9)\n+1558DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1558DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+155902 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+155904   Length              0005 (5)\n+155906   Flags               01 (1) 'Modification'\n+155907   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15590B PAYLOAD\n+\n+157628 DATA DESCRIPTOR       08074B50 (134695760)\n+15762C CRC                   B185BD67 (2978332007)\n+157630 Compressed Size       00001D1D (7453)\n+157634 Uncompressed Size     00001D1D (7453)\n+\n+157638 LOCAL HEADER #515     04034B50 (67324752)\n+15763C Extract Zip Spec      14 (20) '2.0'\n+15763D Extract OS            00 (0) 'MS-DOS'\n+15763E General Purpose Flag  0000 (0)\n+157640 Compression Method    0000 (0) 'Stored'\n+157642 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+157646 CRC                   00000000 (0)\n+15764A Compressed Size       00000000 (0)\n+15764E Uncompressed Size     00000000 (0)\n+157652 Filename Length       001E (30)\n+157654 Extra Length          0009 (9)\n+157656 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x157656: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+157674 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+157676   Length              0005 (5)\n+157678   Flags               01 (1) 'Modification'\n+157679   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15767D LOCAL HEADER #516     04034B50 (67324752)\n+157681 Extract Zip Spec      14 (20) '2.0'\n+157682 Extract OS            00 (0) 'MS-DOS'\n+157683 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+157685 Compression Method    0000 (0) 'Stored'\n+157687 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15768B CRC                   00000000 (0)\n+15768F Compressed Size       00000000 (0)\n+157693 Uncompressed Size     00000000 (0)\n+157697 Filename Length       002A (42)\n+157699 Extra Length          0009 (9)\n+15769B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15769B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1576C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1576C7   Length              0005 (5)\n+1576C9   Flags               01 (1) 'Modification'\n+1576CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1576CE PAYLOAD\n+\n+157C22 DATA DESCRIPTOR       08074B50 (134695760)\n+157C26 CRC                   54F4EBB3 (1425337267)\n+157C2A Compressed Size       00000554 (1364)\n+157C2E Uncompressed Size     00000554 (1364)\n+\n+157C32 LOCAL HEADER #517     04034B50 (67324752)\n+157C36 Extract Zip Spec      14 (20) '2.0'\n+157C37 Extract OS            00 (0) 'MS-DOS'\n+157C38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+157C3A Compression Method    0000 (0) 'Stored'\n+157C3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+157C40 CRC                   00000000 (0)\n+157C44 Compressed Size       00000000 (0)\n+157C48 Uncompressed Size     00000000 (0)\n+157C4C Filename Length       0036 (54)\n+157C4E Extra Length          0009 (9)\n+157C50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x157C50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+157C86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+157C88   Length              0005 (5)\n+157C8A   Flags               01 (1) 'Modification'\n+157C8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+157C8F PAYLOAD\n+\n+15805C DATA DESCRIPTOR       08074B50 (134695760)\n+158060 CRC                   22C3EE20 (583265824)\n+158064 Compressed Size       000003CD (973)\n+158068 Uncompressed Size     000003CD (973)\n+\n+15806C LOCAL HEADER #518     04034B50 (67324752)\n+158070 Extract Zip Spec      14 (20) '2.0'\n+158071 Extract OS            00 (0) 'MS-DOS'\n+158072 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+158074 Compression Method    0000 (0) 'Stored'\n+158076 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15807A CRC                   00000000 (0)\n+15807E Compressed Size       00000000 (0)\n+158082 Uncompressed Size     00000000 (0)\n+158086 Filename Length       002C (44)\n+158088 Extra Length          0009 (9)\n+15808A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15808A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1580B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1580B8   Length              0005 (5)\n+1580BA   Flags               01 (1) 'Modification'\n+1580BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1580BF PAYLOAD\n+\n+15876D DATA DESCRIPTOR       08074B50 (134695760)\n+158771 CRC                   0569C6BD (90818237)\n+158775 Compressed Size       000006AE (1710)\n+158779 Uncompressed Size     000006AE (1710)\n+\n+15877D LOCAL HEADER #519     04034B50 (67324752)\n+158781 Extract Zip Spec      14 (20) '2.0'\n+158782 Extract OS            00 (0) 'MS-DOS'\n+158783 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+158785 Compression Method    0000 (0) 'Stored'\n+158787 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15878B CRC                   00000000 (0)\n+15878F Compressed Size       00000000 (0)\n+158793 Uncompressed Size     00000000 (0)\n+158797 Filename Length       002E (46)\n+158799 Extra Length          0009 (9)\n+15879B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15879B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1587C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1587CB   Length              0005 (5)\n+1587CD   Flags               01 (1) 'Modification'\n+1587CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1587D2 PAYLOAD\n+\n+158FA1 DATA DESCRIPTOR       08074B50 (134695760)\n+158FA5 CRC                   E0114FF9 (3759230969)\n+158FA9 Compressed Size       000007CF (1999)\n+158FAD Uncompressed Size     000007CF (1999)\n+\n+158FB1 LOCAL HEADER #520     04034B50 (67324752)\n+158FB5 Extract Zip Spec      14 (20) '2.0'\n+158FB6 Extract OS            00 (0) 'MS-DOS'\n+158FB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+158FB9 Compression Method    0000 (0) 'Stored'\n+158FBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+158FBF CRC                   00000000 (0)\n+158FC3 Compressed Size       00000000 (0)\n+158FC7 Uncompressed Size     00000000 (0)\n+158FCB Filename Length       0029 (41)\n+158FCD Extra Length          0009 (9)\n+158FCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x158FCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+158FF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+158FFA   Length              0005 (5)\n+158FFC   Flags               01 (1) 'Modification'\n+158FFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+159001 PAYLOAD\n+\n+1593B6 DATA DESCRIPTOR       08074B50 (134695760)\n+1593BA CRC                   C476DBA7 (3296123815)\n+1593BE Compressed Size       000003B5 (949)\n+1593C2 Uncompressed Size     000003B5 (949)\n+\n+1593C6 LOCAL HEADER #521     04034B50 (67324752)\n+1593CA Extract Zip Spec      14 (20) '2.0'\n+1593CB Extract OS            00 (0) 'MS-DOS'\n+1593CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1593CE Compression Method    0000 (0) 'Stored'\n+1593D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1593D4 CRC                   00000000 (0)\n+1593D8 Compressed Size       00000000 (0)\n+1593DC Uncompressed Size     00000000 (0)\n+1593E0 Filename Length       0029 (41)\n+1593E2 Extra Length          0009 (9)\n+1593E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1593E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15940D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15940F   Length              0005 (5)\n+159411   Flags               01 (1) 'Modification'\n+159412   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+159416 PAYLOAD\n+\n+159EA8 DATA DESCRIPTOR       08074B50 (134695760)\n+159EAC CRC                   A69542CD (2794799821)\n+159EB0 Compressed Size       00000A92 (2706)\n+159EB4 Uncompressed Size     00000A92 (2706)\n+\n+159EB8 LOCAL HEADER #522     04034B50 (67324752)\n+159EBC Extract Zip Spec      14 (20) '2.0'\n+159EBD Extract OS            00 (0) 'MS-DOS'\n+159EBE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+159EC0 Compression Method    0000 (0) 'Stored'\n+159EC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+159EC6 CRC                   00000000 (0)\n+159ECA Compressed Size       00000000 (0)\n+159ECE Uncompressed Size     00000000 (0)\n+159ED2 Filename Length       0030 (48)\n+159ED4 Extra Length          0009 (9)\n+159ED6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x159ED6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+159F06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+159F08   Length              0005 (5)\n+159F0A   Flags               01 (1) 'Modification'\n+159F0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+159F0F PAYLOAD\n+\n+15A3E9 DATA DESCRIPTOR       08074B50 (134695760)\n+15A3ED CRC                   A83F3E21 (2822716961)\n+15A3F1 Compressed Size       000004DA (1242)\n+15A3F5 Uncompressed Size     000004DA (1242)\n+\n+15A3F9 LOCAL HEADER #523     04034B50 (67324752)\n+15A3FD Extract Zip Spec      14 (20) '2.0'\n+15A3FE Extract OS            00 (0) 'MS-DOS'\n+15A3FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15A401 Compression Method    0000 (0) 'Stored'\n+15A403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15A407 CRC                   00000000 (0)\n+15A40B Compressed Size       00000000 (0)\n+15A40F Uncompressed Size     00000000 (0)\n+15A413 Filename Length       0030 (48)\n+15A415 Extra Length          0009 (9)\n+15A417 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15A417: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15A447 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15A449   Length              0005 (5)\n+15A44B   Flags               01 (1) 'Modification'\n+15A44C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15A450 PAYLOAD\n+\n+15A9EF DATA DESCRIPTOR       08074B50 (134695760)\n+15A9F3 CRC                   75803CF4 (1971338484)\n+15A9F7 Compressed Size       0000059F (1439)\n+15A9FB Uncompressed Size     0000059F (1439)\n+\n+15A9FF LOCAL HEADER #524     04034B50 (67324752)\n+15AA03 Extract Zip Spec      14 (20) '2.0'\n+15AA04 Extract OS            00 (0) 'MS-DOS'\n+15AA05 General Purpose Flag  0000 (0)\n+15AA07 Compression Method    0000 (0) 'Stored'\n+15AA09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15AA0D CRC                   00000000 (0)\n+15AA11 Compressed Size       00000000 (0)\n+15AA15 Uncompressed Size     00000000 (0)\n+15AA19 Filename Length       002A (42)\n+15AA1B Extra Length          0009 (9)\n+15AA1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AA1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AA47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AA49   Length              0005 (5)\n+15AA4B   Flags               01 (1) 'Modification'\n+15AA4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15AA50 LOCAL HEADER #525     04034B50 (67324752)\n+15AA54 Extract Zip Spec      14 (20) '2.0'\n+15AA55 Extract OS            00 (0) 'MS-DOS'\n+15AA56 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15AA58 Compression Method    0000 (0) 'Stored'\n+15AA5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15AA5E CRC                   00000000 (0)\n+15AA62 Compressed Size       00000000 (0)\n+15AA66 Uncompressed Size     00000000 (0)\n+15AA6A Filename Length       0042 (66)\n+15AA6C Extra Length          0009 (9)\n+15AA6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AA6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AAB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AAB2   Length              0005 (5)\n+15AAB4   Flags               01 (1) 'Modification'\n+15AAB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15AAB9 PAYLOAD\n+\n+15AEA5 DATA DESCRIPTOR       08074B50 (134695760)\n+15AEA9 CRC                   823F4C5B (2185186395)\n+15AEAD Compressed Size       000003EC (1004)\n+15AEB1 Uncompressed Size     000003EC (1004)\n+\n+15AEB5 LOCAL HEADER #526     04034B50 (67324752)\n+15AEB9 Extract Zip Spec      14 (20) '2.0'\n+15AEBA Extract OS            00 (0) 'MS-DOS'\n+15AEBB General Purpose Flag  0000 (0)\n+15AEBD Compression Method    0000 (0) 'Stored'\n+15AEBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15AEC3 CRC                   00000000 (0)\n+15AEC7 Compressed Size       00000000 (0)\n+15AECB Uncompressed Size     00000000 (0)\n+15AECF Filename Length       001F (31)\n+15AED1 Extra Length          0009 (9)\n+15AED3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AED3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AEF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AEF4   Length              0005 (5)\n+15AEF6   Flags               01 (1) 'Modification'\n+15AEF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15AEFB LOCAL HEADER #527     04034B50 (67324752)\n+15AEFF Extract Zip Spec      14 (20) '2.0'\n+15AF00 Extract OS            00 (0) 'MS-DOS'\n+15AF01 General Purpose Flag  0000 (0)\n+15AF03 Compression Method    0000 (0) 'Stored'\n+15AF05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15AF09 CRC                   00000000 (0)\n+15AF0D Compressed Size       00000000 (0)\n+15AF11 Uncompressed Size     00000000 (0)\n+15AF15 Filename Length       0025 (37)\n+15AF17 Extra Length          0009 (9)\n+15AF19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AF19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AF3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AF40   Length              0005 (5)\n+15AF42   Flags               01 (1) 'Modification'\n+15AF43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15AF47 LOCAL HEADER #528     04034B50 (67324752)\n+15AF4B Extract Zip Spec      14 (20) '2.0'\n+15AF4C Extract OS            00 (0) 'MS-DOS'\n+15AF4D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15AF4F Compression Method    0000 (0) 'Stored'\n+15AF51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15AF55 CRC                   00000000 (0)\n+15AF59 Compressed Size       00000000 (0)\n+15AF5D Uncompressed Size     00000000 (0)\n+15AF61 Filename Length       0037 (55)\n+15AF63 Extra Length          0009 (9)\n+15AF65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15AF65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15AF9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15AF9E   Length              0005 (5)\n+15AFA0   Flags               01 (1) 'Modification'\n+15AFA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15AFA5 PAYLOAD\n+\n+15C438 DATA DESCRIPTOR       08074B50 (134695760)\n+15C43C CRC                   6C151306 (1813320454)\n+15C440 Compressed Size       00001493 (5267)\n+15C444 Uncompressed Size     00001493 (5267)\n+\n+15C448 LOCAL HEADER #529     04034B50 (67324752)\n+15C44C Extract Zip Spec      14 (20) '2.0'\n+15C44D Extract OS            00 (0) 'MS-DOS'\n+15C44E General Purpose Flag  0000 (0)\n+15C450 Compression Method    0000 (0) 'Stored'\n+15C452 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C456 CRC                   00000000 (0)\n+15C45A Compressed Size       00000000 (0)\n+15C45E Uncompressed Size     00000000 (0)\n+15C462 Filename Length       0024 (36)\n+15C464 Extra Length          0009 (9)\n+15C466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C48A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C48C   Length              0005 (5)\n+15C48E   Flags               01 (1) 'Modification'\n+15C48F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15C493 LOCAL HEADER #530     04034B50 (67324752)\n+15C497 Extract Zip Spec      14 (20) '2.0'\n+15C498 Extract OS            00 (0) 'MS-DOS'\n+15C499 General Purpose Flag  0000 (0)\n+15C49B Compression Method    0000 (0) 'Stored'\n+15C49D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C4A1 CRC                   00000000 (0)\n+15C4A5 Compressed Size       00000000 (0)\n+15C4A9 Uncompressed Size     00000000 (0)\n+15C4AD Filename Length       002C (44)\n+15C4AF Extra Length          0009 (9)\n+15C4B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C4B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C4DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C4DF   Length              0005 (5)\n+15C4E1   Flags               01 (1) 'Modification'\n+15C4E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15C4E6 LOCAL HEADER #531     04034B50 (67324752)\n+15C4EA Extract Zip Spec      14 (20) '2.0'\n+15C4EB Extract OS            00 (0) 'MS-DOS'\n+15C4EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15C4EE Compression Method    0000 (0) 'Stored'\n+15C4F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C4F4 CRC                   00000000 (0)\n+15C4F8 Compressed Size       00000000 (0)\n+15C4FC Uncompressed Size     00000000 (0)\n+15C500 Filename Length       003C (60)\n+15C502 Extra Length          0009 (9)\n+15C504 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C504: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C540 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C542   Length              0005 (5)\n+15C544   Flags               01 (1) 'Modification'\n+15C545   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15C549 PAYLOAD\n+\n+15C920 DATA DESCRIPTOR       08074B50 (134695760)\n+15C924 CRC                   CC53D052 (3428044882)\n+15C928 Compressed Size       000003D7 (983)\n+15C92C Uncompressed Size     000003D7 (983)\n+\n+15C930 LOCAL HEADER #532     04034B50 (67324752)\n+15C934 Extract Zip Spec      14 (20) '2.0'\n+15C935 Extract OS            00 (0) 'MS-DOS'\n+15C936 General Purpose Flag  0000 (0)\n+15C938 Compression Method    0000 (0) 'Stored'\n+15C93A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C93E CRC                   00000000 (0)\n+15C942 Compressed Size       00000000 (0)\n+15C946 Uncompressed Size     00000000 (0)\n+15C94A Filename Length       0023 (35)\n+15C94C Extra Length          0009 (9)\n+15C94E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C94E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C971 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C973   Length              0005 (5)\n+15C975   Flags               01 (1) 'Modification'\n+15C976   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15C97A LOCAL HEADER #533     04034B50 (67324752)\n+15C97E Extract Zip Spec      14 (20) '2.0'\n+15C97F Extract OS            00 (0) 'MS-DOS'\n+15C980 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15C982 Compression Method    0000 (0) 'Stored'\n+15C984 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15C988 CRC                   00000000 (0)\n+15C98C Compressed Size       00000000 (0)\n+15C990 Uncompressed Size     00000000 (0)\n+15C994 Filename Length       003B (59)\n+15C996 Extra Length          0009 (9)\n+15C998 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15C998: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15C9D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15C9D5   Length              0005 (5)\n+15C9D7   Flags               01 (1) 'Modification'\n+15C9D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15C9DC PAYLOAD\n+\n+15CF83 DATA DESCRIPTOR       08074B50 (134695760)\n+15CF87 CRC                   BAD7984F (3134691407)\n+15CF8B Compressed Size       000005A7 (1447)\n+15CF8F Uncompressed Size     000005A7 (1447)\n+\n+15CF93 LOCAL HEADER #534     04034B50 (67324752)\n+15CF97 Extract Zip Spec      14 (20) '2.0'\n+15CF98 Extract OS            00 (0) 'MS-DOS'\n+15CF99 General Purpose Flag  0000 (0)\n+15CF9B Compression Method    0000 (0) 'Stored'\n+15CF9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15CFA1 CRC                   00000000 (0)\n+15CFA5 Compressed Size       00000000 (0)\n+15CFA9 Uncompressed Size     00000000 (0)\n+15CFAD Filename Length       0026 (38)\n+15CFAF Extra Length          0009 (9)\n+15CFB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15CFB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15CFD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15CFD9   Length              0005 (5)\n+15CFDB   Flags               01 (1) 'Modification'\n+15CFDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15CFE0 LOCAL HEADER #535     04034B50 (67324752)\n+15CFE4 Extract Zip Spec      14 (20) '2.0'\n+15CFE5 Extract OS            00 (0) 'MS-DOS'\n+15CFE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15CFE8 Compression Method    0000 (0) 'Stored'\n+15CFEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15CFEE CRC                   00000000 (0)\n+15CFF2 Compressed Size       00000000 (0)\n+15CFF6 Uncompressed Size     00000000 (0)\n+15CFFA Filename Length       003D (61)\n+15CFFC Extra Length          0009 (9)\n+15CFFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15CFFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15D03B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15D03D   Length              0005 (5)\n+15D03F   Flags               01 (1) 'Modification'\n+15D040   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15D044 PAYLOAD\n+\n+15D421 DATA DESCRIPTOR       08074B50 (134695760)\n+15D425 CRC                   4A3ABC52 (1245363282)\n+15D429 Compressed Size       000003DD (989)\n+15D42D Uncompressed Size     000003DD (989)\n+\n+15D431 LOCAL HEADER #536     04034B50 (67324752)\n+15D435 Extract Zip Spec      14 (20) '2.0'\n+15D436 Extract OS            00 (0) 'MS-DOS'\n+15D437 General Purpose Flag  0000 (0)\n+15D439 Compression Method    0000 (0) 'Stored'\n+15D43B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15D43F CRC                   00000000 (0)\n+15D443 Compressed Size       00000000 (0)\n+15D447 Uncompressed Size     00000000 (0)\n+15D44B Filename Length       001E (30)\n+15D44D Extra Length          0009 (9)\n+15D44F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D44F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15D46D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15D46F   Length              0005 (5)\n+15D471   Flags               01 (1) 'Modification'\n+15D472   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15D476 LOCAL HEADER #537     04034B50 (67324752)\n+15D47A Extract Zip Spec      14 (20) '2.0'\n+15D47B Extract OS            00 (0) 'MS-DOS'\n+15D47C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15D47E Compression Method    0000 (0) 'Stored'\n+15D480 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15D484 CRC                   00000000 (0)\n+15D488 Compressed Size       00000000 (0)\n+15D48C Uncompressed Size     00000000 (0)\n+15D490 Filename Length       002E (46)\n+15D492 Extra Length          0009 (9)\n+15D494 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D494: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15D4C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15D4C4   Length              0005 (5)\n+15D4C6   Flags               01 (1) 'Modification'\n+15D4C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15D4CB PAYLOAD\n+\n+15D88A DATA DESCRIPTOR       08074B50 (134695760)\n+15D88E CRC                   00900547 (9438535)\n+15D892 Compressed Size       000003BF (959)\n+15D896 Uncompressed Size     000003BF (959)\n+\n+15D89A LOCAL HEADER #538     04034B50 (67324752)\n+15D89E Extract Zip Spec      14 (20) '2.0'\n+15D89F Extract OS            00 (0) 'MS-DOS'\n+15D8A0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15D8A2 Compression Method    0000 (0) 'Stored'\n+15D8A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15D8A8 CRC                   00000000 (0)\n+15D8AC Compressed Size       00000000 (0)\n+15D8B0 Uncompressed Size     00000000 (0)\n+15D8B4 Filename Length       0033 (51)\n+15D8B6 Extra Length          0009 (9)\n+15D8B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15D8B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15D8EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15D8ED   Length              0005 (5)\n+15D8EF   Flags               01 (1) 'Modification'\n+15D8F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15D8F4 PAYLOAD\n+\n+15E0E0 DATA DESCRIPTOR       08074B50 (134695760)\n+15E0E4 CRC                   1D274B23 (489114403)\n+15E0E8 Compressed Size       000007EC (2028)\n+15E0EC Uncompressed Size     000007EC (2028)\n+\n+15E0F0 LOCAL HEADER #539     04034B50 (67324752)\n+15E0F4 Extract Zip Spec      14 (20) '2.0'\n+15E0F5 Extract OS            00 (0) 'MS-DOS'\n+15E0F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15E0F8 Compression Method    0000 (0) 'Stored'\n+15E0FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15E0FE CRC                   00000000 (0)\n+15E102 Compressed Size       00000000 (0)\n+15E106 Uncompressed Size     00000000 (0)\n+15E10A Filename Length       0031 (49)\n+15E10C Extra Length          0009 (9)\n+15E10E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15E10E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15E13F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15E141   Length              0005 (5)\n+15E143   Flags               01 (1) 'Modification'\n+15E144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15E148 PAYLOAD\n+\n+15E5AD DATA DESCRIPTOR       08074B50 (134695760)\n+15E5B1 CRC                   C514DA82 (3306478210)\n+15E5B5 Compressed Size       00000465 (1125)\n+15E5B9 Uncompressed Size     00000465 (1125)\n+\n+15E5BD LOCAL HEADER #540     04034B50 (67324752)\n+15E5C1 Extract Zip Spec      14 (20) '2.0'\n+15E5C2 Extract OS            00 (0) 'MS-DOS'\n+15E5C3 General Purpose Flag  0000 (0)\n+15E5C5 Compression Method    0000 (0) 'Stored'\n+15E5C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15E5CB CRC                   00000000 (0)\n+15E5CF Compressed Size       00000000 (0)\n+15E5D3 Uncompressed Size     00000000 (0)\n+15E5D7 Filename Length       001E (30)\n+15E5D9 Extra Length          0009 (9)\n+15E5DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15E5DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15E5F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15E5FB   Length              0005 (5)\n+15E5FD   Flags               01 (1) 'Modification'\n+15E5FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15E602 LOCAL HEADER #541     04034B50 (67324752)\n+15E606 Extract Zip Spec      14 (20) '2.0'\n+15E607 Extract OS            00 (0) 'MS-DOS'\n+15E608 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15E60A Compression Method    0000 (0) 'Stored'\n+15E60C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15E610 CRC                   00000000 (0)\n+15E614 Compressed Size       00000000 (0)\n+15E618 Uncompressed Size     00000000 (0)\n+15E61C Filename Length       002B (43)\n+15E61E Extra Length          0009 (9)\n+15E620 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15E620: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15E64B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15E64D   Length              0005 (5)\n+15E64F   Flags               01 (1) 'Modification'\n+15E650   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15E654 PAYLOAD\n+\n+15F1A3 DATA DESCRIPTOR       08074B50 (134695760)\n+15F1A7 CRC                   643DA964 (1681762660)\n+15F1AB Compressed Size       00000B4F (2895)\n+15F1AF Uncompressed Size     00000B4F (2895)\n+\n+15F1B3 LOCAL HEADER #542     04034B50 (67324752)\n+15F1B7 Extract Zip Spec      14 (20) '2.0'\n+15F1B8 Extract OS            00 (0) 'MS-DOS'\n+15F1B9 General Purpose Flag  0000 (0)\n+15F1BB Compression Method    0000 (0) 'Stored'\n+15F1BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15F1C1 CRC                   00000000 (0)\n+15F1C5 Compressed Size       00000000 (0)\n+15F1C9 Uncompressed Size     00000000 (0)\n+15F1CD Filename Length       001D (29)\n+15F1CF Extra Length          0009 (9)\n+15F1D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15F1D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15F1EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15F1F0   Length              0005 (5)\n+15F1F2   Flags               01 (1) 'Modification'\n+15F1F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15F1F7 LOCAL HEADER #543     04034B50 (67324752)\n+15F1FB Extract Zip Spec      14 (20) '2.0'\n+15F1FC Extract OS            00 (0) 'MS-DOS'\n+15F1FD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15F1FF Compression Method    0000 (0) 'Stored'\n+15F201 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15F205 CRC                   00000000 (0)\n+15F209 Compressed Size       00000000 (0)\n+15F20D Uncompressed Size     00000000 (0)\n+15F211 Filename Length       002C (44)\n+15F213 Extra Length          0009 (9)\n+15F215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15F215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15F241 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15F243   Length              0005 (5)\n+15F245   Flags               01 (1) 'Modification'\n+15F246   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15F24A PAYLOAD\n+\n+15F605 DATA DESCRIPTOR       08074B50 (134695760)\n+15F609 CRC                   1456EFA1 (341241761)\n+15F60D Compressed Size       000003BB (955)\n+15F611 Uncompressed Size     000003BB (955)\n+\n+15F615 LOCAL HEADER #544     04034B50 (67324752)\n+15F619 Extract Zip Spec      14 (20) '2.0'\n+15F61A Extract OS            00 (0) 'MS-DOS'\n+15F61B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15F61D Compression Method    0000 (0) 'Stored'\n+15F61F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15F623 CRC                   00000000 (0)\n+15F627 Compressed Size       00000000 (0)\n+15F62B Uncompressed Size     00000000 (0)\n+15F62F Filename Length       002B (43)\n+15F631 Extra Length          0009 (9)\n+15F633 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15F633: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15F65E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15F660   Length              0005 (5)\n+15F662   Flags               01 (1) 'Modification'\n+15F663   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15F667 PAYLOAD\n+\n+15FA20 DATA DESCRIPTOR       08074B50 (134695760)\n+15FA24 CRC                   E92C073F (3911976767)\n+15FA28 Compressed Size       000003B9 (953)\n+15FA2C Uncompressed Size     000003B9 (953)\n+\n+15FA30 LOCAL HEADER #545     04034B50 (67324752)\n+15FA34 Extract Zip Spec      14 (20) '2.0'\n+15FA35 Extract OS            00 (0) 'MS-DOS'\n+15FA36 General Purpose Flag  0000 (0)\n+15FA38 Compression Method    0000 (0) 'Stored'\n+15FA3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15FA3E CRC                   00000000 (0)\n+15FA42 Compressed Size       00000000 (0)\n+15FA46 Uncompressed Size     00000000 (0)\n+15FA4A Filename Length       0004 (4)\n+15FA4C Extra Length          0009 (9)\n+15FA4E Filename              'XXXX'\n+#\n+# WARNING: Offset 0x15FA4E: Filename 'XXXX'\n+#          Zero length filename\n+#\n+15FA52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15FA54   Length              0005 (5)\n+15FA56   Flags               01 (1) 'Modification'\n+15FA57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15FA5B LOCAL HEADER #546     04034B50 (67324752)\n+15FA5F Extract Zip Spec      14 (20) '2.0'\n+15FA60 Extract OS            00 (0) 'MS-DOS'\n+15FA61 General Purpose Flag  0000 (0)\n+15FA63 Compression Method    0000 (0) 'Stored'\n+15FA65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15FA69 CRC                   00000000 (0)\n+15FA6D Compressed Size       00000000 (0)\n+15FA71 Uncompressed Size     00000000 (0)\n+15FA75 Filename Length       000B (11)\n+15FA77 Extra Length          0009 (9)\n+15FA79 Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15FA79: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15FA84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15FA86   Length              0005 (5)\n+15FA88   Flags               01 (1) 'Modification'\n+15FA89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15FA8D LOCAL HEADER #547     04034B50 (67324752)\n+15FA91 Extract Zip Spec      14 (20) '2.0'\n+15FA92 Extract OS            00 (0) 'MS-DOS'\n+15FA93 General Purpose Flag  0000 (0)\n+15FA95 Compression Method    0000 (0) 'Stored'\n+15FA97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15FA9B CRC                   00000000 (0)\n+15FA9F Compressed Size       00000000 (0)\n+15FAA3 Uncompressed Size     00000000 (0)\n+15FAA7 Filename Length       0011 (17)\n+15FAA9 Extra Length          0009 (9)\n+15FAAB Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15FAAB: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15FABC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15FABE   Length              0005 (5)\n+15FAC0   Flags               01 (1) 'Modification'\n+15FAC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15FAC5 LOCAL HEADER #548     04034B50 (67324752)\n+15FAC9 Extract Zip Spec      14 (20) '2.0'\n+15FACA Extract OS            00 (0) 'MS-DOS'\n+15FACB General Purpose Flag  0000 (0)\n+15FACD Compression Method    0000 (0) 'Stored'\n+15FACF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15FAD3 CRC                   00000000 (0)\n+15FAD7 Compressed Size       00000000 (0)\n+15FADB Uncompressed Size     00000000 (0)\n+15FADF Filename Length       0017 (23)\n+15FAE1 Extra Length          0009 (9)\n+15FAE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15FAE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15FAFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15FAFC   Length              0005 (5)\n+15FAFE   Flags               01 (1) 'Modification'\n+15FAFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+15FB03 LOCAL HEADER #549     04034B50 (67324752)\n+15FB07 Extract Zip Spec      14 (20) '2.0'\n+15FB08 Extract OS            00 (0) 'MS-DOS'\n+15FB09 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+15FB0B Compression Method    0000 (0) 'Stored'\n+15FB0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+15FB11 CRC                   00000000 (0)\n+15FB15 Compressed Size       00000000 (0)\n+15FB19 Uncompressed Size     00000000 (0)\n+15FB1D Filename Length       0021 (33)\n+15FB1F Extra Length          0009 (9)\n+15FB21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x15FB21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+15FB42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+15FB44   Length              0005 (5)\n+15FB46   Flags               01 (1) 'Modification'\n+15FB47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+15FB4B PAYLOAD\n+\n+160235 DATA DESCRIPTOR       08074B50 (134695760)\n+160239 CRC                   4E701AB1 (1315969713)\n+16023D Compressed Size       000006EA (1770)\n+160241 Uncompressed Size     000006EA (1770)\n+\n+160245 LOCAL HEADER #550     04034B50 (67324752)\n+160249 Extract Zip Spec      14 (20) '2.0'\n+16024A Extract OS            00 (0) 'MS-DOS'\n+16024B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16024D Compression Method    0000 (0) 'Stored'\n+16024F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+160253 CRC                   00000000 (0)\n+160257 Compressed Size       00000000 (0)\n+16025B Uncompressed Size     00000000 (0)\n+16025F Filename Length       0028 (40)\n+160261 Extra Length          0009 (9)\n+160263 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x160263: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16028B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16028D   Length              0005 (5)\n+16028F   Flags               01 (1) 'Modification'\n+160290   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+160294 PAYLOAD\n+\n+160956 DATA DESCRIPTOR       08074B50 (134695760)\n+16095A CRC                   95722913 (2507286803)\n+16095E Compressed Size       000006C2 (1730)\n+160962 Uncompressed Size     000006C2 (1730)\n+\n+160966 LOCAL HEADER #551     04034B50 (67324752)\n+16096A Extract Zip Spec      14 (20) '2.0'\n+16096B Extract OS            00 (0) 'MS-DOS'\n+16096C General Purpose Flag  0000 (0)\n+16096E Compression Method    0000 (0) 'Stored'\n+160970 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+160974 CRC                   00000000 (0)\n+160978 Compressed Size       00000000 (0)\n+16097C Uncompressed Size     00000000 (0)\n+160980 Filename Length       001E (30)\n+160982 Extra Length          0009 (9)\n+160984 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x160984: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1609A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1609A4   Length              0005 (5)\n+1609A6   Flags               01 (1) 'Modification'\n+1609A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1609AB LOCAL HEADER #552     04034B50 (67324752)\n+1609AF Extract Zip Spec      14 (20) '2.0'\n+1609B0 Extract OS            00 (0) 'MS-DOS'\n+1609B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1609B3 Compression Method    0000 (0) 'Stored'\n+1609B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1609B9 CRC                   00000000 (0)\n+1609BD Compressed Size       00000000 (0)\n+1609C1 Uncompressed Size     00000000 (0)\n+1609C5 Filename Length       002E (46)\n+1609C7 Extra Length          0009 (9)\n+1609C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1609C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1609F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1609F9   Length              0005 (5)\n+1609FB   Flags               01 (1) 'Modification'\n+1609FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+160A00 PAYLOAD\n+\n+1620CB DATA DESCRIPTOR       08074B50 (134695760)\n+1620CF CRC                   0E9E2711 (245245713)\n+1620D3 Compressed Size       000016CB (5835)\n+1620D7 Uncompressed Size     000016CB (5835)\n+\n+1620DB LOCAL HEADER #553     04034B50 (67324752)\n+1620DF Extract Zip Spec      14 (20) '2.0'\n+1620E0 Extract OS            00 (0) 'MS-DOS'\n+1620E1 General Purpose Flag  0000 (0)\n+1620E3 Compression Method    0000 (0) 'Stored'\n+1620E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1620E9 CRC                   00000000 (0)\n+1620ED Compressed Size       00000000 (0)\n+1620F1 Uncompressed Size     00000000 (0)\n+1620F5 Filename Length       001F (31)\n+1620F7 Extra Length          0009 (9)\n+1620F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1620F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+162118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16211A   Length              0005 (5)\n+16211C   Flags               01 (1) 'Modification'\n+16211D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+162121 LOCAL HEADER #554     04034B50 (67324752)\n+162125 Extract Zip Spec      14 (20) '2.0'\n+162126 Extract OS            00 (0) 'MS-DOS'\n+162127 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+162129 Compression Method    0000 (0) 'Stored'\n+16212B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16212F CRC                   00000000 (0)\n+162133 Compressed Size       00000000 (0)\n+162137 Uncompressed Size     00000000 (0)\n+16213B Filename Length       0038 (56)\n+16213D Extra Length          0009 (9)\n+16213F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16213F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+162177 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+162179   Length              0005 (5)\n+16217B   Flags               01 (1) 'Modification'\n+16217C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+162180 PAYLOAD\n+\n+162DB8 DATA DESCRIPTOR       08074B50 (134695760)\n+162DBC CRC                   048D5F10 (76373776)\n+162DC0 Compressed Size       00000C38 (3128)\n+162DC4 Uncompressed Size     00000C38 (3128)\n+\n+162DC8 LOCAL HEADER #555     04034B50 (67324752)\n+162DCC Extract Zip Spec      14 (20) '2.0'\n+162DCD Extract OS            00 (0) 'MS-DOS'\n+162DCE General Purpose Flag  0000 (0)\n+162DD0 Compression Method    0000 (0) 'Stored'\n+162DD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+162DD6 CRC                   00000000 (0)\n+162DDA Compressed Size       00000000 (0)\n+162DDE Uncompressed Size     00000000 (0)\n+162DE2 Filename Length       0028 (40)\n+162DE4 Extra Length          0009 (9)\n+162DE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x162DE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+162E0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+162E10   Length              0005 (5)\n+162E12   Flags               01 (1) 'Modification'\n+162E13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+162E17 LOCAL HEADER #556     04034B50 (67324752)\n+162E1B Extract Zip Spec      14 (20) '2.0'\n+162E1C Extract OS            00 (0) 'MS-DOS'\n+162E1D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+162E1F Compression Method    0000 (0) 'Stored'\n+162E21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+162E25 CRC                   00000000 (0)\n+162E29 Compressed Size       00000000 (0)\n+162E2D Uncompressed Size     00000000 (0)\n+162E31 Filename Length       003A (58)\n+162E33 Extra Length          0009 (9)\n+162E35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x162E35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+162E6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+162E71   Length              0005 (5)\n+162E73   Flags               01 (1) 'Modification'\n+162E74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+162E78 PAYLOAD\n+\n+163B17 DATA DESCRIPTOR       08074B50 (134695760)\n+163B1B CRC                   EF4D8024 (4014833700)\n+163B1F Compressed Size       00000C9F (3231)\n+163B23 Uncompressed Size     00000C9F (3231)\n+\n+163B27 LOCAL HEADER #557     04034B50 (67324752)\n+163B2B Extract Zip Spec      14 (20) '2.0'\n+163B2C Extract OS            00 (0) 'MS-DOS'\n+163B2D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+163B2F Compression Method    0000 (0) 'Stored'\n+163B31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+163B35 CRC                   00000000 (0)\n+163B39 Compressed Size       00000000 (0)\n+163B3D Uncompressed Size     00000000 (0)\n+163B41 Filename Length       0041 (65)\n+163B43 Extra Length          0009 (9)\n+163B45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x163B45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+163B86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+163B88   Length              0005 (5)\n+163B8A   Flags               01 (1) 'Modification'\n+163B8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+163B8F PAYLOAD\n+\n+1641EE DATA DESCRIPTOR       08074B50 (134695760)\n+1641F2 CRC                   11FDDB06 (301849350)\n+1641F6 Compressed Size       0000065F (1631)\n+1641FA Uncompressed Size     0000065F (1631)\n+\n+1641FE LOCAL HEADER #558     04034B50 (67324752)\n+164202 Extract Zip Spec      14 (20) '2.0'\n+164203 Extract OS            00 (0) 'MS-DOS'\n+164204 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+164206 Compression Method    0000 (0) 'Stored'\n+164208 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16420C CRC                   00000000 (0)\n+164210 Compressed Size       00000000 (0)\n+164214 Uncompressed Size     00000000 (0)\n+164218 Filename Length       0038 (56)\n+16421A Extra Length          0009 (9)\n+16421C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16421C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+164254 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+164256   Length              0005 (5)\n+164258   Flags               01 (1) 'Modification'\n+164259   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16425D PAYLOAD\n+\n+166D48 DATA DESCRIPTOR       08074B50 (134695760)\n+166D4C CRC                   901C84B7 (2417788087)\n+166D50 Compressed Size       00002AEB (10987)\n+166D54 Uncompressed Size     00002AEB (10987)\n+\n+166D58 LOCAL HEADER #559     04034B50 (67324752)\n+166D5C Extract Zip Spec      14 (20) '2.0'\n+166D5D Extract OS            00 (0) 'MS-DOS'\n+166D5E General Purpose Flag  0000 (0)\n+166D60 Compression Method    0000 (0) 'Stored'\n+166D62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+166D66 CRC                   00000000 (0)\n+166D6A Compressed Size       00000000 (0)\n+166D6E Uncompressed Size     00000000 (0)\n+166D72 Filename Length       0026 (38)\n+166D74 Extra Length          0009 (9)\n+166D76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x166D76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+166D9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+166D9E   Length              0005 (5)\n+166DA0   Flags               01 (1) 'Modification'\n+166DA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+166DA5 LOCAL HEADER #560     04034B50 (67324752)\n+166DA9 Extract Zip Spec      14 (20) '2.0'\n+166DAA Extract OS            00 (0) 'MS-DOS'\n+166DAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+166DAD Compression Method    0000 (0) 'Stored'\n+166DAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+166DB3 CRC                   00000000 (0)\n+166DB7 Compressed Size       00000000 (0)\n+166DBB Uncompressed Size     00000000 (0)\n+166DBF Filename Length       0031 (49)\n+166DC1 Extra Length          0009 (9)\n+166DC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x166DC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+166DF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+166DF6   Length              0005 (5)\n+166DF8   Flags               01 (1) 'Modification'\n+166DF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+166DFD PAYLOAD\n+\n+167C45 DATA DESCRIPTOR       08074B50 (134695760)\n+167C49 CRC                   5EA7953B (1588041019)\n+167C4D Compressed Size       00000E48 (3656)\n+167C51 Uncompressed Size     00000E48 (3656)\n+\n+167C55 LOCAL HEADER #561     04034B50 (67324752)\n+167C59 Extract Zip Spec      14 (20) '2.0'\n+167C5A Extract OS            00 (0) 'MS-DOS'\n+167C5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+167C5D Compression Method    0000 (0) 'Stored'\n+167C5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+167C63 CRC                   00000000 (0)\n+167C67 Compressed Size       00000000 (0)\n+167C6B Uncompressed Size     00000000 (0)\n+167C6F Filename Length       0038 (56)\n+167C71 Extra Length          0009 (9)\n+167C73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x167C73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+167CAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+167CAD   Length              0005 (5)\n+167CAF   Flags               01 (1) 'Modification'\n+167CB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+167CB4 PAYLOAD\n+\n+1683C2 DATA DESCRIPTOR       08074B50 (134695760)\n+1683C6 CRC                   05E875FD (99120637)\n+1683CA Compressed Size       0000070E (1806)\n+1683CE Uncompressed Size     0000070E (1806)\n+\n+1683D2 LOCAL HEADER #562     04034B50 (67324752)\n+1683D6 Extract Zip Spec      14 (20) '2.0'\n+1683D7 Extract OS            00 (0) 'MS-DOS'\n+1683D8 General Purpose Flag  0000 (0)\n+1683DA Compression Method    0000 (0) 'Stored'\n+1683DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1683E0 CRC                   00000000 (0)\n+1683E4 Compressed Size       00000000 (0)\n+1683E8 Uncompressed Size     00000000 (0)\n+1683EC Filename Length       0023 (35)\n+1683EE Extra Length          0009 (9)\n+1683F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1683F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+168413 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+168415   Length              0005 (5)\n+168417   Flags               01 (1) 'Modification'\n+168418   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+16841C LOCAL HEADER #563     04034B50 (67324752)\n+168420 Extract Zip Spec      14 (20) '2.0'\n+168421 Extract OS            00 (0) 'MS-DOS'\n+168422 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+168424 Compression Method    0000 (0) 'Stored'\n+168426 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16842A CRC                   00000000 (0)\n+16842E Compressed Size       00000000 (0)\n+168432 Uncompressed Size     00000000 (0)\n+168436 Filename Length       0030 (48)\n+168438 Extra Length          0009 (9)\n+16843A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16843A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16846A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16846C   Length              0005 (5)\n+16846E   Flags               01 (1) 'Modification'\n+16846F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+168473 PAYLOAD\n+\n+169111 DATA DESCRIPTOR       08074B50 (134695760)\n+169115 CRC                   21421505 (557978885)\n+169119 Compressed Size       00000C9E (3230)\n+16911D Uncompressed Size     00000C9E (3230)\n+\n+169121 LOCAL HEADER #564     04034B50 (67324752)\n+169125 Extract Zip Spec      14 (20) '2.0'\n+169126 Extract OS            00 (0) 'MS-DOS'\n+169127 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+169129 Compression Method    0000 (0) 'Stored'\n+16912B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16912F CRC                   00000000 (0)\n+169133 Compressed Size       00000000 (0)\n+169137 Uncompressed Size     00000000 (0)\n+16913B Filename Length       0037 (55)\n+16913D Extra Length          0009 (9)\n+16913F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16913F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+169176 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+169178   Length              0005 (5)\n+16917A   Flags               01 (1) 'Modification'\n+16917B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16917F PAYLOAD\n+\n+1697C8 DATA DESCRIPTOR       08074B50 (134695760)\n+1697CC CRC                   766BD114 (1986777364)\n+1697D0 Compressed Size       00000649 (1609)\n+1697D4 Uncompressed Size     00000649 (1609)\n+\n+1697D8 LOCAL HEADER #565     04034B50 (67324752)\n+1697DC Extract Zip Spec      14 (20) '2.0'\n+1697DD Extract OS            00 (0) 'MS-DOS'\n+1697DE General Purpose Flag  0000 (0)\n+1697E0 Compression Method    0000 (0) 'Stored'\n+1697E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1697E6 CRC                   00000000 (0)\n+1697EA Compressed Size       00000000 (0)\n+1697EE Uncompressed Size     00000000 (0)\n+1697F2 Filename Length       0023 (35)\n+1697F4 Extra Length          0009 (9)\n+1697F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1697F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+169819 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16981B   Length              0005 (5)\n+16981D   Flags               01 (1) 'Modification'\n+16981E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+169822 LOCAL HEADER #566     04034B50 (67324752)\n+169826 Extract Zip Spec      14 (20) '2.0'\n+169827 Extract OS            00 (0) 'MS-DOS'\n+169828 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16982A Compression Method    0000 (0) 'Stored'\n+16982C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+169830 CRC                   00000000 (0)\n+169834 Compressed Size       00000000 (0)\n+169838 Uncompressed Size     00000000 (0)\n+16983C Filename Length       0030 (48)\n+16983E Extra Length          0009 (9)\n+169840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x169840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+169870 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+169872   Length              0005 (5)\n+169874   Flags               01 (1) 'Modification'\n+169875   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+169879 PAYLOAD\n+\n+16A3EE DATA DESCRIPTOR       08074B50 (134695760)\n+16A3F2 CRC                   E901806B (3909189739)\n+16A3F6 Compressed Size       00000B75 (2933)\n+16A3FA Uncompressed Size     00000B75 (2933)\n+\n+16A3FE LOCAL HEADER #567     04034B50 (67324752)\n+16A402 Extract Zip Spec      14 (20) '2.0'\n+16A403 Extract OS            00 (0) 'MS-DOS'\n+16A404 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16A406 Compression Method    0000 (0) 'Stored'\n+16A408 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16A40C CRC                   00000000 (0)\n+16A410 Compressed Size       00000000 (0)\n+16A414 Uncompressed Size     00000000 (0)\n+16A418 Filename Length       0037 (55)\n+16A41A Extra Length          0009 (9)\n+16A41C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16A41C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16A453 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16A455   Length              0005 (5)\n+16A457   Flags               01 (1) 'Modification'\n+16A458   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16A45C PAYLOAD\n+\n+16AAA5 DATA DESCRIPTOR       08074B50 (134695760)\n+16AAA9 CRC                   45C1CEBF (1170329279)\n+16AAAD Compressed Size       00000649 (1609)\n+16AAB1 Uncompressed Size     00000649 (1609)\n+\n+16AAB5 LOCAL HEADER #568     04034B50 (67324752)\n+16AAB9 Extract Zip Spec      14 (20) '2.0'\n+16AABA Extract OS            00 (0) 'MS-DOS'\n+16AABB General Purpose Flag  0000 (0)\n+16AABD Compression Method    0000 (0) 'Stored'\n+16AABF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16AAC3 CRC                   00000000 (0)\n+16AAC7 Compressed Size       00000000 (0)\n+16AACB Uncompressed Size     00000000 (0)\n+16AACF Filename Length       002B (43)\n+16AAD1 Extra Length          0009 (9)\n+16AAD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16AAD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16AAFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16AB00   Length              0005 (5)\n+16AB02   Flags               01 (1) 'Modification'\n+16AB03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+16AB07 LOCAL HEADER #569     04034B50 (67324752)\n+16AB0B Extract Zip Spec      14 (20) '2.0'\n+16AB0C Extract OS            00 (0) 'MS-DOS'\n+16AB0D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16AB0F Compression Method    0000 (0) 'Stored'\n+16AB11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16AB15 CRC                   00000000 (0)\n+16AB19 Compressed Size       00000000 (0)\n+16AB1D Uncompressed Size     00000000 (0)\n+16AB21 Filename Length       0040 (64)\n+16AB23 Extra Length          0009 (9)\n+16AB25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16AB25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16AB65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16AB67   Length              0005 (5)\n+16AB69   Flags               01 (1) 'Modification'\n+16AB6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16AB6E PAYLOAD\n+\n+16B6DF DATA DESCRIPTOR       08074B50 (134695760)\n+16B6E3 CRC                   27EFB86F (670021743)\n+16B6E7 Compressed Size       00000B71 (2929)\n+16B6EB Uncompressed Size     00000B71 (2929)\n+\n+16B6EF LOCAL HEADER #570     04034B50 (67324752)\n+16B6F3 Extract Zip Spec      14 (20) '2.0'\n+16B6F4 Extract OS            00 (0) 'MS-DOS'\n+16B6F5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16B6F7 Compression Method    0000 (0) 'Stored'\n+16B6F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16B6FD CRC                   00000000 (0)\n+16B701 Compressed Size       00000000 (0)\n+16B705 Uncompressed Size     00000000 (0)\n+16B709 Filename Length       0047 (71)\n+16B70B Extra Length          0009 (9)\n+16B70D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16B70D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16B754 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16B756   Length              0005 (5)\n+16B758   Flags               01 (1) 'Modification'\n+16B759   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16B75D PAYLOAD\n+\n+16BE23 DATA DESCRIPTOR       08074B50 (134695760)\n+16BE27 CRC                   0D988858 (228100184)\n+16BE2B Compressed Size       000006C6 (1734)\n+16BE2F Uncompressed Size     000006C6 (1734)\n+\n+16BE33 LOCAL HEADER #571     04034B50 (67324752)\n+16BE37 Extract Zip Spec      14 (20) '2.0'\n+16BE38 Extract OS            00 (0) 'MS-DOS'\n+16BE39 General Purpose Flag  0000 (0)\n+16BE3B Compression Method    0000 (0) 'Stored'\n+16BE3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16BE41 CRC                   00000000 (0)\n+16BE45 Compressed Size       00000000 (0)\n+16BE49 Uncompressed Size     00000000 (0)\n+16BE4D Filename Length       0018 (24)\n+16BE4F Extra Length          0009 (9)\n+16BE51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16BE51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16BE69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16BE6B   Length              0005 (5)\n+16BE6D   Flags               01 (1) 'Modification'\n+16BE6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+16BE72 LOCAL HEADER #572     04034B50 (67324752)\n+16BE76 Extract Zip Spec      14 (20) '2.0'\n+16BE77 Extract OS            00 (0) 'MS-DOS'\n+16BE78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16BE7A Compression Method    0000 (0) 'Stored'\n+16BE7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16BE80 CRC                   00000000 (0)\n+16BE84 Compressed Size       00000000 (0)\n+16BE88 Uncompressed Size     00000000 (0)\n+16BE8C Filename Length       0030 (48)\n+16BE8E Extra Length          0009 (9)\n+16BE90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16BE90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16BEC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16BEC2   Length              0005 (5)\n+16BEC4   Flags               01 (1) 'Modification'\n+16BEC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16BEC9 PAYLOAD\n+\n+16D049 DATA DESCRIPTOR       08074B50 (134695760)\n+16D04D CRC                   7A6AA41E (2053809182)\n+16D051 Compressed Size       00001180 (4480)\n+16D055 Uncompressed Size     00001180 (4480)\n+\n+16D059 LOCAL HEADER #573     04034B50 (67324752)\n+16D05D Extract Zip Spec      14 (20) '2.0'\n+16D05E Extract OS            00 (0) 'MS-DOS'\n+16D05F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16D061 Compression Method    0000 (0) 'Stored'\n+16D063 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16D067 CRC                   00000000 (0)\n+16D06B Compressed Size       00000000 (0)\n+16D06F Uncompressed Size     00000000 (0)\n+16D073 Filename Length       0029 (41)\n+16D075 Extra Length          0009 (9)\n+16D077 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16D077: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16D0A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16D0A2   Length              0005 (5)\n+16D0A4   Flags               01 (1) 'Modification'\n+16D0A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16D0A9 PAYLOAD\n+\n+16D620 DATA DESCRIPTOR       08074B50 (134695760)\n+16D624 CRC                   00F537FE (16070654)\n+16D628 Compressed Size       00000577 (1399)\n+16D62C Uncompressed Size     00000577 (1399)\n+\n+16D630 LOCAL HEADER #574     04034B50 (67324752)\n+16D634 Extract Zip Spec      14 (20) '2.0'\n+16D635 Extract OS            00 (0) 'MS-DOS'\n+16D636 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16D638 Compression Method    0000 (0) 'Stored'\n+16D63A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16D63E CRC                   00000000 (0)\n+16D642 Compressed Size       00000000 (0)\n+16D646 Uncompressed Size     00000000 (0)\n+16D64A Filename Length       0026 (38)\n+16D64C Extra Length          0009 (9)\n+16D64E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16D64E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16D674 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16D676   Length              0005 (5)\n+16D678   Flags               01 (1) 'Modification'\n+16D679   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16D67D PAYLOAD\n+\n+16E028 DATA DESCRIPTOR       08074B50 (134695760)\n+16E02C CRC                   1CCCA507 (483173639)\n+16E030 Compressed Size       000009AB (2475)\n+16E034 Uncompressed Size     000009AB (2475)\n+\n+16E038 LOCAL HEADER #575     04034B50 (67324752)\n+16E03C Extract Zip Spec      14 (20) '2.0'\n+16E03D Extract OS            00 (0) 'MS-DOS'\n+16E03E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16E040 Compression Method    0000 (0) 'Stored'\n+16E042 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16E046 CRC                   00000000 (0)\n+16E04A Compressed Size       00000000 (0)\n+16E04E Uncompressed Size     00000000 (0)\n+16E052 Filename Length       0021 (33)\n+16E054 Extra Length          0009 (9)\n+16E056 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16E056: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16E077 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16E079   Length              0005 (5)\n+16E07B   Flags               01 (1) 'Modification'\n+16E07C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16E080 PAYLOAD\n+\n+16E51F DATA DESCRIPTOR       08074B50 (134695760)\n+16E523 CRC                   0622E0A0 (102949024)\n+16E527 Compressed Size       0000049F (1183)\n+16E52B Uncompressed Size     0000049F (1183)\n+\n+16E52F LOCAL HEADER #576     04034B50 (67324752)\n+16E533 Extract Zip Spec      14 (20) '2.0'\n+16E534 Extract OS            00 (0) 'MS-DOS'\n+16E535 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+16E537 Compression Method    0000 (0) 'Stored'\n+16E539 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+16E53D CRC                   00000000 (0)\n+16E541 Compressed Size       00000000 (0)\n+16E545 Uncompressed Size     00000000 (0)\n+16E549 Filename Length       0027 (39)\n+16E54B Extra Length          0009 (9)\n+16E54D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x16E54D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+16E574 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+16E576   Length              0005 (5)\n+16E578   Flags               01 (1) 'Modification'\n+16E579   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+16E57D PAYLOAD\n+\n+170817 DATA DESCRIPTOR       08074B50 (134695760)\n+17081B CRC                   3DF15F74 (1039228788)\n+17081F Compressed Size       0000229A (8858)\n+170823 Uncompressed Size     0000229A (8858)\n+\n+170827 LOCAL HEADER #577     04034B50 (67324752)\n+17082B Extract Zip Spec      14 (20) '2.0'\n+17082C Extract OS            00 (0) 'MS-DOS'\n+17082D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+17082F Compression Method    0000 (0) 'Stored'\n+170831 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+170835 CRC                   00000000 (0)\n+170839 Compressed Size       00000000 (0)\n+17083D Uncompressed Size     00000000 (0)\n+170841 Filename Length       0026 (38)\n+170843 Extra Length          0009 (9)\n+170845 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x170845: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+17086B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+17086D   Length              0005 (5)\n+17086F   Flags               01 (1) 'Modification'\n+170870   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+170874 PAYLOAD\n+\n+170C5C DATA DESCRIPTOR       08074B50 (134695760)\n+170C60 CRC                   52712A03 (1383148035)\n+170C64 Compressed Size       000003E8 (1000)\n+170C68 Uncompressed Size     000003E8 (1000)\n+\n+170C6C LOCAL HEADER #578     04034B50 (67324752)\n+170C70 Extract Zip Spec      14 (20) '2.0'\n+170C71 Extract OS            00 (0) 'MS-DOS'\n+170C72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+170C74 Compression Method    0000 (0) 'Stored'\n+170C76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+170C7A CRC                   00000000 (0)\n+170C7E Compressed Size       00000000 (0)\n+170C82 Uncompressed Size     00000000 (0)\n+170C86 Filename Length       0020 (32)\n+170C88 Extra Length          0009 (9)\n+170C8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x170C8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+170CAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+170CAC   Length              0005 (5)\n+170CAE   Flags               01 (1) 'Modification'\n+170CAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+170CB3 PAYLOAD\n+\n+18203C DATA DESCRIPTOR       08074B50 (134695760)\n+182040 CRC                   4B96BF4D (1268170573)\n+182044 Compressed Size       00011389 (70537)\n+182048 Uncompressed Size     00011389 (70537)\n+\n+18204C LOCAL HEADER #579     04034B50 (67324752)\n+182050 Extract Zip Spec      14 (20) '2.0'\n+182051 Extract OS            00 (0) 'MS-DOS'\n+182052 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+182054 Compression Method    0000 (0) 'Stored'\n+182056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18205A CRC                   00000000 (0)\n+18205E Compressed Size       00000000 (0)\n+182062 Uncompressed Size     00000000 (0)\n+182066 Filename Length       0027 (39)\n+182068 Extra Length          0009 (9)\n+18206A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18206A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+182091 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+182093   Length              0005 (5)\n+182095   Flags               01 (1) 'Modification'\n+182096   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18209A PAYLOAD\n+\n+1855FE DATA DESCRIPTOR       08074B50 (134695760)\n+185602 CRC                   E6F6EE92 (3874942610)\n+185606 Compressed Size       00003564 (13668)\n+18560A Uncompressed Size     00003564 (13668)\n+\n+18560E LOCAL HEADER #580     04034B50 (67324752)\n+185612 Extract Zip Spec      14 (20) '2.0'\n+185613 Extract OS            00 (0) 'MS-DOS'\n+185614 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+185616 Compression Method    0000 (0) 'Stored'\n+185618 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18561C CRC                   00000000 (0)\n+185620 Compressed Size       00000000 (0)\n+185624 Uncompressed Size     00000000 (0)\n+185628 Filename Length       0029 (41)\n+18562A Extra Length          0009 (9)\n+18562C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18562C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+185655 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+185657   Length              0005 (5)\n+185659   Flags               01 (1) 'Modification'\n+18565A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18565E PAYLOAD\n+\n+188C6E DATA DESCRIPTOR       08074B50 (134695760)\n+188C72 CRC                   D525E52E (3576030510)\n+188C76 Compressed Size       00003610 (13840)\n+188C7A Uncompressed Size     00003610 (13840)\n+\n+188C7E LOCAL HEADER #581     04034B50 (67324752)\n+188C82 Extract Zip Spec      14 (20) '2.0'\n+188C83 Extract OS            00 (0) 'MS-DOS'\n+188C84 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+188C86 Compression Method    0000 (0) 'Stored'\n+188C88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+188C8C CRC                   00000000 (0)\n+188C90 Compressed Size       00000000 (0)\n+188C94 Uncompressed Size     00000000 (0)\n+188C98 Filename Length       0024 (36)\n+188C9A Extra Length          0009 (9)\n+188C9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x188C9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+188CC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+188CC2   Length              0005 (5)\n+188CC4   Flags               01 (1) 'Modification'\n+188CC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+188CC9 PAYLOAD\n+\n+18B404 DATA DESCRIPTOR       08074B50 (134695760)\n+18B408 CRC                   82E9AE97 (2196352663)\n+18B40C Compressed Size       0000273B (10043)\n+18B410 Uncompressed Size     0000273B (10043)\n+\n+18B414 LOCAL HEADER #582     04034B50 (67324752)\n+18B418 Extract Zip Spec      14 (20) '2.0'\n+18B419 Extract OS            00 (0) 'MS-DOS'\n+18B41A General Purpose Flag  0000 (0)\n+18B41C Compression Method    0000 (0) 'Stored'\n+18B41E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18B422 CRC                   00000000 (0)\n+18B426 Compressed Size       00000000 (0)\n+18B42A Uncompressed Size     00000000 (0)\n+18B42E Filename Length       0021 (33)\n+18B430 Extra Length          0009 (9)\n+18B432 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18B432: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18B453 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+18B455   Length              0005 (5)\n+18B457   Flags               01 (1) 'Modification'\n+18B458   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+18B45C LOCAL HEADER #583     04034B50 (67324752)\n+18B460 Extract Zip Spec      14 (20) '2.0'\n+18B461 Extract OS            00 (0) 'MS-DOS'\n+18B462 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+18B464 Compression Method    0000 (0) 'Stored'\n+18B466 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18B46A CRC                   00000000 (0)\n+18B46E Compressed Size       00000000 (0)\n+18B472 Uncompressed Size     00000000 (0)\n+18B476 Filename Length       0036 (54)\n+18B478 Extra Length          0009 (9)\n+18B47A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18B47A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18B4B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+18B4B2   Length              0005 (5)\n+18B4B4   Flags               01 (1) 'Modification'\n+18B4B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18B4B9 PAYLOAD\n+\n+18BA0D DATA DESCRIPTOR       08074B50 (134695760)\n+18BA11 CRC                   62810B39 (1652624185)\n+18BA15 Compressed Size       00000554 (1364)\n+18BA19 Uncompressed Size     00000554 (1364)\n+\n+18BA1D LOCAL HEADER #584     04034B50 (67324752)\n+18BA21 Extract Zip Spec      14 (20) '2.0'\n+18BA22 Extract OS            00 (0) 'MS-DOS'\n+18BA23 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+18BA25 Compression Method    0000 (0) 'Stored'\n+18BA27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18BA2B CRC                   00000000 (0)\n+18BA2F Compressed Size       00000000 (0)\n+18BA33 Uncompressed Size     00000000 (0)\n+18BA37 Filename Length       0038 (56)\n+18BA39 Extra Length          0009 (9)\n+18BA3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18BA3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18BA73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+18BA75   Length              0005 (5)\n+18BA77   Flags               01 (1) 'Modification'\n+18BA78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18BA7C PAYLOAD\n+\n+18D3F0 DATA DESCRIPTOR       08074B50 (134695760)\n+18D3F4 CRC                   7918064D (2031617613)\n+18D3F8 Compressed Size       00001974 (6516)\n+18D3FC Uncompressed Size     00001974 (6516)\n+\n+18D400 LOCAL HEADER #585     04034B50 (67324752)\n+18D404 Extract Zip Spec      14 (20) '2.0'\n+18D405 Extract OS            00 (0) 'MS-DOS'\n+18D406 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+18D408 Compression Method    0000 (0) 'Stored'\n+18D40A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+18D40E CRC                   00000000 (0)\n+18D412 Compressed Size       00000000 (0)\n+18D416 Uncompressed Size     00000000 (0)\n+18D41A Filename Length       003B (59)\n+18D41C Extra Length          0009 (9)\n+18D41E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x18D41E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+18D459 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+18D45B   Length              0005 (5)\n+18D45D   Flags               01 (1) 'Modification'\n+18D45E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+18D462 PAYLOAD\n+\n+192516 DATA DESCRIPTOR       08074B50 (134695760)\n+19251A CRC                   9C935B9B (2626902939)\n+19251E Compressed Size       000050B4 (20660)\n+192522 Uncompressed Size     000050B4 (20660)\n+\n+192526 LOCAL HEADER #586     04034B50 (67324752)\n+19252A Extract Zip Spec      14 (20) '2.0'\n+19252B Extract OS            00 (0) 'MS-DOS'\n+19252C General Purpose Flag  0000 (0)\n+19252E Compression Method    0000 (0) 'Stored'\n+192530 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+192534 CRC                   00000000 (0)\n+192538 Compressed Size       00000000 (0)\n+19253C Uncompressed Size     00000000 (0)\n+192540 Filename Length       0021 (33)\n+192542 Extra Length          0009 (9)\n+192544 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x192544: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+192565 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+192567   Length              0005 (5)\n+192569   Flags               01 (1) 'Modification'\n+19256A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+19256E LOCAL HEADER #587     04034B50 (67324752)\n+192572 Extract Zip Spec      14 (20) '2.0'\n+192573 Extract OS            00 (0) 'MS-DOS'\n+192574 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+192576 Compression Method    0000 (0) 'Stored'\n+192578 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19257C CRC                   00000000 (0)\n+192580 Compressed Size       00000000 (0)\n+192584 Uncompressed Size     00000000 (0)\n+192588 Filename Length       0034 (52)\n+19258A Extra Length          0009 (9)\n+19258C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x19258C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1925C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1925C2   Length              0005 (5)\n+1925C4   Flags               01 (1) 'Modification'\n+1925C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1925C9 PAYLOAD\n+\n+195A2B DATA DESCRIPTOR       08074B50 (134695760)\n+195A2F CRC                   2B1352F9 (722686713)\n+195A33 Compressed Size       00003462 (13410)\n+195A37 Uncompressed Size     00003462 (13410)\n+\n+195A3B LOCAL HEADER #588     04034B50 (67324752)\n+195A3F Extract Zip Spec      14 (20) '2.0'\n+195A40 Extract OS            00 (0) 'MS-DOS'\n+195A41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+195A43 Compression Method    0000 (0) 'Stored'\n+195A45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+195A49 CRC                   00000000 (0)\n+195A4D Compressed Size       00000000 (0)\n+195A51 Uncompressed Size     00000000 (0)\n+195A55 Filename Length       003F (63)\n+195A57 Extra Length          0009 (9)\n+195A59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x195A59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+195A98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+195A9A   Length              0005 (5)\n+195A9C   Flags               01 (1) 'Modification'\n+195A9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+195AA1 PAYLOAD\n+\n+1968BC DATA DESCRIPTOR       08074B50 (134695760)\n+1968C0 CRC                   50C2BDD7 (1354939863)\n+1968C4 Compressed Size       00000E1B (3611)\n+1968C8 Uncompressed Size     00000E1B (3611)\n+\n+1968CC LOCAL HEADER #589     04034B50 (67324752)\n+1968D0 Extract Zip Spec      14 (20) '2.0'\n+1968D1 Extract OS            00 (0) 'MS-DOS'\n+1968D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1968D4 Compression Method    0000 (0) 'Stored'\n+1968D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1968DA CRC                   00000000 (0)\n+1968DE Compressed Size       00000000 (0)\n+1968E2 Uncompressed Size     00000000 (0)\n+1968E6 Filename Length       002B (43)\n+1968E8 Extra Length          0009 (9)\n+1968EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1968EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+196915 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+196917   Length              0005 (5)\n+196919   Flags               01 (1) 'Modification'\n+19691A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+19691E PAYLOAD\n+\n+198935 DATA DESCRIPTOR       08074B50 (134695760)\n+198939 CRC                   4F0E9D5D (1326357853)\n+19893D Compressed Size       00002017 (8215)\n+198941 Uncompressed Size     00002017 (8215)\n+\n+198945 LOCAL HEADER #590     04034B50 (67324752)\n+198949 Extract Zip Spec      14 (20) '2.0'\n+19894A Extract OS            00 (0) 'MS-DOS'\n+19894B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+19894D Compression Method    0000 (0) 'Stored'\n+19894F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+198953 CRC                   00000000 (0)\n+198957 Compressed Size       00000000 (0)\n+19895B Uncompressed Size     00000000 (0)\n+19895F Filename Length       003B (59)\n+198961 Extra Length          0009 (9)\n+198963 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x198963: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+19899E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1989A0   Length              0005 (5)\n+1989A2   Flags               01 (1) 'Modification'\n+1989A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1989A7 PAYLOAD\n+\n+198E45 DATA DESCRIPTOR       08074B50 (134695760)\n+198E49 CRC                   35B34ECC (900943564)\n+198E4D Compressed Size       0000049E (1182)\n+198E51 Uncompressed Size     0000049E (1182)\n+\n+198E55 LOCAL HEADER #591     04034B50 (67324752)\n+198E59 Extract Zip Spec      14 (20) '2.0'\n+198E5A Extract OS            00 (0) 'MS-DOS'\n+198E5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+198E5D Compression Method    0000 (0) 'Stored'\n+198E5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+198E63 CRC                   00000000 (0)\n+198E67 Compressed Size       00000000 (0)\n+198E6B Uncompressed Size     00000000 (0)\n+198E6F Filename Length       003D (61)\n+198E71 Extra Length          0009 (9)\n+198E73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x198E73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+198EB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+198EB2   Length              0005 (5)\n+198EB4   Flags               01 (1) 'Modification'\n+198EB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+198EB9 PAYLOAD\n+\n+19935F DATA DESCRIPTOR       08074B50 (134695760)\n+199363 CRC                   AE36D6DB (2922829531)\n+199367 Compressed Size       000004A6 (1190)\n+19936B Uncompressed Size     000004A6 (1190)\n+\n+19936F LOCAL HEADER #592     04034B50 (67324752)\n+199373 Extract Zip Spec      14 (20) '2.0'\n+199374 Extract OS            00 (0) 'MS-DOS'\n+199375 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+199377 Compression Method    0000 (0) 'Stored'\n+199379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19937D CRC                   00000000 (0)\n+199381 Compressed Size       00000000 (0)\n+199385 Uncompressed Size     00000000 (0)\n+199389 Filename Length       002B (43)\n+19938B Extra Length          0009 (9)\n+19938D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x19938D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1993B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1993BA   Length              0005 (5)\n+1993BC   Flags               01 (1) 'Modification'\n+1993BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1993C1 PAYLOAD\n+\n+19C30E DATA DESCRIPTOR       08074B50 (134695760)\n+19C312 CRC                   693DBCBA (1765653690)\n+19C316 Compressed Size       00002F4D (12109)\n+19C31A Uncompressed Size     00002F4D (12109)\n+\n+19C31E LOCAL HEADER #593     04034B50 (67324752)\n+19C322 Extract Zip Spec      14 (20) '2.0'\n+19C323 Extract OS            00 (0) 'MS-DOS'\n+19C324 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+19C326 Compression Method    0000 (0) 'Stored'\n+19C328 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+19C32C CRC                   00000000 (0)\n+19C330 Compressed Size       00000000 (0)\n+19C334 Uncompressed Size     00000000 (0)\n+19C338 Filename Length       002D (45)\n+19C33A Extra Length          0009 (9)\n+19C33C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x19C33C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+19C369 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+19C36B   Length              0005 (5)\n+19C36D   Flags               01 (1) 'Modification'\n+19C36E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+19C372 PAYLOAD\n+\n+1A097A DATA DESCRIPTOR       08074B50 (134695760)\n+1A097E CRC                   44BCC62B (1153222187)\n+1A0982 Compressed Size       00004608 (17928)\n+1A0986 Uncompressed Size     00004608 (17928)\n+\n+1A098A LOCAL HEADER #594     04034B50 (67324752)\n+1A098E Extract Zip Spec      14 (20) '2.0'\n+1A098F Extract OS            00 (0) 'MS-DOS'\n+1A0990 General Purpose Flag  0000 (0)\n+1A0992 Compression Method    0000 (0) 'Stored'\n+1A0994 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A0998 CRC                   00000000 (0)\n+1A099C Compressed Size       00000000 (0)\n+1A09A0 Uncompressed Size     00000000 (0)\n+1A09A4 Filename Length       0021 (33)\n+1A09A6 Extra Length          0009 (9)\n+1A09A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A09A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A09C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A09CB   Length              0005 (5)\n+1A09CD   Flags               01 (1) 'Modification'\n+1A09CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1A09D2 LOCAL HEADER #595     04034B50 (67324752)\n+1A09D6 Extract Zip Spec      14 (20) '2.0'\n+1A09D7 Extract OS            00 (0) 'MS-DOS'\n+1A09D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A09DA Compression Method    0000 (0) 'Stored'\n+1A09DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A09E0 CRC                   00000000 (0)\n+1A09E4 Compressed Size       00000000 (0)\n+1A09E8 Uncompressed Size     00000000 (0)\n+1A09EC Filename Length       002E (46)\n+1A09EE Extra Length          0009 (9)\n+1A09F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A09F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A0A1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A0A20   Length              0005 (5)\n+1A0A22   Flags               01 (1) 'Modification'\n+1A0A23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A0A27 PAYLOAD\n+\n+1A0F0E DATA DESCRIPTOR       08074B50 (134695760)\n+1A0F12 CRC                   01EEDE5E (32431710)\n+1A0F16 Compressed Size       000004E7 (1255)\n+1A0F1A Uncompressed Size     000004E7 (1255)\n+\n+1A0F1E LOCAL HEADER #596     04034B50 (67324752)\n+1A0F22 Extract Zip Spec      14 (20) '2.0'\n+1A0F23 Extract OS            00 (0) 'MS-DOS'\n+1A0F24 General Purpose Flag  0000 (0)\n+1A0F26 Compression Method    0000 (0) 'Stored'\n+1A0F28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A0F2C CRC                   00000000 (0)\n+1A0F30 Compressed Size       00000000 (0)\n+1A0F34 Uncompressed Size     00000000 (0)\n+1A0F38 Filename Length       0029 (41)\n+1A0F3A Extra Length          0009 (9)\n+1A0F3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A0F3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A0F65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A0F67   Length              0005 (5)\n+1A0F69   Flags               01 (1) 'Modification'\n+1A0F6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1A0F6E LOCAL HEADER #597     04034B50 (67324752)\n+1A0F72 Extract Zip Spec      14 (20) '2.0'\n+1A0F73 Extract OS            00 (0) 'MS-DOS'\n+1A0F74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A0F76 Compression Method    0000 (0) 'Stored'\n+1A0F78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A0F7C CRC                   00000000 (0)\n+1A0F80 Compressed Size       00000000 (0)\n+1A0F84 Uncompressed Size     00000000 (0)\n+1A0F88 Filename Length       003E (62)\n+1A0F8A Extra Length          0009 (9)\n+1A0F8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A0F8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A0FCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A0FCC   Length              0005 (5)\n+1A0FCE   Flags               01 (1) 'Modification'\n+1A0FCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A0FD3 PAYLOAD\n+\n+1A1AEE DATA DESCRIPTOR       08074B50 (134695760)\n+1A1AF2 CRC                   20854F04 (545607428)\n+1A1AF6 Compressed Size       00000B1B (2843)\n+1A1AFA Uncompressed Size     00000B1B (2843)\n+\n+1A1AFE LOCAL HEADER #598     04034B50 (67324752)\n+1A1B02 Extract Zip Spec      14 (20) '2.0'\n+1A1B03 Extract OS            00 (0) 'MS-DOS'\n+1A1B04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A1B06 Compression Method    0000 (0) 'Stored'\n+1A1B08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A1B0C CRC                   00000000 (0)\n+1A1B10 Compressed Size       00000000 (0)\n+1A1B14 Uncompressed Size     00000000 (0)\n+1A1B18 Filename Length       003E (62)\n+1A1B1A Extra Length          0009 (9)\n+1A1B1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A1B1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A1B5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A1B5C   Length              0005 (5)\n+1A1B5E   Flags               01 (1) 'Modification'\n+1A1B5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A1B63 PAYLOAD\n+\n+1A2296 DATA DESCRIPTOR       08074B50 (134695760)\n+1A229A CRC                   D19D012A (3516727594)\n+1A229E Compressed Size       00000733 (1843)\n+1A22A2 Uncompressed Size     00000733 (1843)\n+\n+1A22A6 LOCAL HEADER #599     04034B50 (67324752)\n+1A22AA Extract Zip Spec      14 (20) '2.0'\n+1A22AB Extract OS            00 (0) 'MS-DOS'\n+1A22AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A22AE Compression Method    0000 (0) 'Stored'\n+1A22B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A22B4 CRC                   00000000 (0)\n+1A22B8 Compressed Size       00000000 (0)\n+1A22BC Uncompressed Size     00000000 (0)\n+1A22C0 Filename Length       0038 (56)\n+1A22C2 Extra Length          0009 (9)\n+1A22C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A22C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A22FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A22FE   Length              0005 (5)\n+1A2300   Flags               01 (1) 'Modification'\n+1A2301   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A2305 PAYLOAD\n+\n+1A5FC9 DATA DESCRIPTOR       08074B50 (134695760)\n+1A5FCD CRC                   489CA2B6 (1218224822)\n+1A5FD1 Compressed Size       00003CC4 (15556)\n+1A5FD5 Uncompressed Size     00003CC4 (15556)\n+\n+1A5FD9 LOCAL HEADER #600     04034B50 (67324752)\n+1A5FDD Extract Zip Spec      14 (20) '2.0'\n+1A5FDE Extract OS            00 (0) 'MS-DOS'\n+1A5FDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A5FE1 Compression Method    0000 (0) 'Stored'\n+1A5FE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A5FE7 CRC                   00000000 (0)\n+1A5FEB Compressed Size       00000000 (0)\n+1A5FEF Uncompressed Size     00000000 (0)\n+1A5FF3 Filename Length       003C (60)\n+1A5FF5 Extra Length          0009 (9)\n+1A5FF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A5FF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A6033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A6035   Length              0005 (5)\n+1A6037   Flags               01 (1) 'Modification'\n+1A6038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A603C PAYLOAD\n+\n+1A73F6 DATA DESCRIPTOR       08074B50 (134695760)\n+1A73FA CRC                   BD63F8B8 (3177445560)\n+1A73FE Compressed Size       000013BA (5050)\n+1A7402 Uncompressed Size     000013BA (5050)\n+\n+1A7406 LOCAL HEADER #601     04034B50 (67324752)\n+1A740A Extract Zip Spec      14 (20) '2.0'\n+1A740B Extract OS            00 (0) 'MS-DOS'\n+1A740C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A740E Compression Method    0000 (0) 'Stored'\n+1A7410 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A7414 CRC                   00000000 (0)\n+1A7418 Compressed Size       00000000 (0)\n+1A741C Uncompressed Size     00000000 (0)\n+1A7420 Filename Length       003F (63)\n+1A7422 Extra Length          0009 (9)\n+1A7424 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A7424: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A7463 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A7465   Length              0005 (5)\n+1A7467   Flags               01 (1) 'Modification'\n+1A7468   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A746C PAYLOAD\n+\n+1A821C DATA DESCRIPTOR       08074B50 (134695760)\n+1A8220 CRC                   C96B89A9 (3379268009)\n+1A8224 Compressed Size       00000DB0 (3504)\n+1A8228 Uncompressed Size     00000DB0 (3504)\n+\n+1A822C LOCAL HEADER #602     04034B50 (67324752)\n+1A8230 Extract Zip Spec      14 (20) '2.0'\n+1A8231 Extract OS            00 (0) 'MS-DOS'\n+1A8232 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1A8234 Compression Method    0000 (0) 'Stored'\n+1A8236 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1A823A CRC                   00000000 (0)\n+1A823E Compressed Size       00000000 (0)\n+1A8242 Uncompressed Size     00000000 (0)\n+1A8246 Filename Length       0039 (57)\n+1A8248 Extra Length          0009 (9)\n+1A824A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1A824A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1A8283 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1A8285   Length              0005 (5)\n+1A8287   Flags               01 (1) 'Modification'\n+1A8288   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1A828C PAYLOAD\n+\n+1AAF51 DATA DESCRIPTOR       08074B50 (134695760)\n+1AAF55 CRC                   3FE3ACCB (1071885515)\n+1AAF59 Compressed Size       00002CC5 (11461)\n+1AAF5D Uncompressed Size     00002CC5 (11461)\n+\n+1AAF61 LOCAL HEADER #603     04034B50 (67324752)\n+1AAF65 Extract Zip Spec      14 (20) '2.0'\n+1AAF66 Extract OS            00 (0) 'MS-DOS'\n+1AAF67 General Purpose Flag  0000 (0)\n+1AAF69 Compression Method    0000 (0) 'Stored'\n+1AAF6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1AAF6F CRC                   00000000 (0)\n+1AAF73 Compressed Size       00000000 (0)\n+1AAF77 Uncompressed Size     00000000 (0)\n+1AAF7B Filename Length       001F (31)\n+1AAF7D Extra Length          0009 (9)\n+1AAF7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1AAF7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1AAF9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1AAFA0   Length              0005 (5)\n+1AAFA2   Flags               01 (1) 'Modification'\n+1AAFA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1AAFA7 LOCAL HEADER #604     04034B50 (67324752)\n+1AAFAB Extract Zip Spec      14 (20) '2.0'\n+1AAFAC Extract OS            00 (0) 'MS-DOS'\n+1AAFAD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1AAFAF Compression Method    0000 (0) 'Stored'\n+1AAFB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1AAFB5 CRC                   00000000 (0)\n+1AAFB9 Compressed Size       00000000 (0)\n+1AAFBD Uncompressed Size     00000000 (0)\n+1AAFC1 Filename Length       003A (58)\n+1AAFC3 Extra Length          0009 (9)\n+1AAFC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1AAFC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1AAFFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1AB001   Length              0005 (5)\n+1AB003   Flags               01 (1) 'Modification'\n+1AB004   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1AB008 PAYLOAD\n+\n+1AC185 DATA DESCRIPTOR       08074B50 (134695760)\n+1AC189 CRC                   A81790A7 (2820116647)\n+1AC18D Compressed Size       0000117D (4477)\n+1AC191 Uncompressed Size     0000117D (4477)\n+\n+1AC195 LOCAL HEADER #605     04034B50 (67324752)\n+1AC199 Extract Zip Spec      14 (20) '2.0'\n+1AC19A Extract OS            00 (0) 'MS-DOS'\n+1AC19B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1AC19D Compression Method    0000 (0) 'Stored'\n+1AC19F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1AC1A3 CRC                   00000000 (0)\n+1AC1A7 Compressed Size       00000000 (0)\n+1AC1AB Uncompressed Size     00000000 (0)\n+1AC1AF Filename Length       0031 (49)\n+1AC1B1 Extra Length          0009 (9)\n+1AC1B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1AC1B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1AC1E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1AC1E6   Length              0005 (5)\n+1AC1E8   Flags               01 (1) 'Modification'\n+1AC1E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1AC1ED PAYLOAD\n+\n+1ADD65 DATA DESCRIPTOR       08074B50 (134695760)\n+1ADD69 CRC                   AB15E1E2 (2870338018)\n+1ADD6D Compressed Size       00001B78 (7032)\n+1ADD71 Uncompressed Size     00001B78 (7032)\n+\n+1ADD75 LOCAL HEADER #606     04034B50 (67324752)\n+1ADD79 Extract Zip Spec      14 (20) '2.0'\n+1ADD7A Extract OS            00 (0) 'MS-DOS'\n+1ADD7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1ADD7D Compression Method    0000 (0) 'Stored'\n+1ADD7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1ADD83 CRC                   00000000 (0)\n+1ADD87 Compressed Size       00000000 (0)\n+1ADD8B Uncompressed Size     00000000 (0)\n+1ADD8F Filename Length       0036 (54)\n+1ADD91 Extra Length          0009 (9)\n+1ADD93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1ADD93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1ADDC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1ADDCB   Length              0005 (5)\n+1ADDCD   Flags               01 (1) 'Modification'\n+1ADDCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1ADDD2 PAYLOAD\n+\n+1AF102 DATA DESCRIPTOR       08074B50 (134695760)\n+1AF106 CRC                   7B55AE57 (2069212759)\n+1AF10A Compressed Size       00001330 (4912)\n+1AF10E Uncompressed Size     00001330 (4912)\n+\n+1AF112 LOCAL HEADER #607     04034B50 (67324752)\n+1AF116 Extract Zip Spec      14 (20) '2.0'\n+1AF117 Extract OS            00 (0) 'MS-DOS'\n+1AF118 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1AF11A Compression Method    0000 (0) 'Stored'\n+1AF11C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1AF120 CRC                   00000000 (0)\n+1AF124 Compressed Size       00000000 (0)\n+1AF128 Uncompressed Size     00000000 (0)\n+1AF12C Filename Length       002F (47)\n+1AF12E Extra Length          0009 (9)\n+1AF130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1AF130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1AF15F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1AF161   Length              0005 (5)\n+1AF163   Flags               01 (1) 'Modification'\n+1AF164   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1AF168 PAYLOAD\n+\n+1B1966 DATA DESCRIPTOR       08074B50 (134695760)\n+1B196A CRC                   8F24621B (2401526299)\n+1B196E Compressed Size       000027FE (10238)\n+1B1972 Uncompressed Size     000027FE (10238)\n+\n+1B1976 LOCAL HEADER #608     04034B50 (67324752)\n+1B197A Extract Zip Spec      14 (20) '2.0'\n+1B197B Extract OS            00 (0) 'MS-DOS'\n+1B197C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B197E Compression Method    0000 (0) 'Stored'\n+1B1980 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B1984 CRC                   00000000 (0)\n+1B1988 Compressed Size       00000000 (0)\n+1B198C Uncompressed Size     00000000 (0)\n+1B1990 Filename Length       003C (60)\n+1B1992 Extra Length          0009 (9)\n+1B1994 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B1994: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B19D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B19D2   Length              0005 (5)\n+1B19D4   Flags               01 (1) 'Modification'\n+1B19D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B19D9 PAYLOAD\n+\n+1B1EEF DATA DESCRIPTOR       08074B50 (134695760)\n+1B1EF3 CRC                   2A9E8F07 (715034375)\n+1B1EF7 Compressed Size       00000516 (1302)\n+1B1EFB Uncompressed Size     00000516 (1302)\n+\n+1B1EFF LOCAL HEADER #609     04034B50 (67324752)\n+1B1F03 Extract Zip Spec      14 (20) '2.0'\n+1B1F04 Extract OS            00 (0) 'MS-DOS'\n+1B1F05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B1F07 Compression Method    0000 (0) 'Stored'\n+1B1F09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B1F0D CRC                   00000000 (0)\n+1B1F11 Compressed Size       00000000 (0)\n+1B1F15 Uncompressed Size     00000000 (0)\n+1B1F19 Filename Length       0039 (57)\n+1B1F1B Extra Length          0009 (9)\n+1B1F1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B1F1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B1F56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B1F58   Length              0005 (5)\n+1B1F5A   Flags               01 (1) 'Modification'\n+1B1F5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B1F5F PAYLOAD\n+\n+1B270F DATA DESCRIPTOR       08074B50 (134695760)\n+1B2713 CRC                   C6D0F0BC (3335581884)\n+1B2717 Compressed Size       000007B0 (1968)\n+1B271B Uncompressed Size     000007B0 (1968)\n+\n+1B271F LOCAL HEADER #610     04034B50 (67324752)\n+1B2723 Extract Zip Spec      14 (20) '2.0'\n+1B2724 Extract OS            00 (0) 'MS-DOS'\n+1B2725 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B2727 Compression Method    0000 (0) 'Stored'\n+1B2729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B272D CRC                   00000000 (0)\n+1B2731 Compressed Size       00000000 (0)\n+1B2735 Uncompressed Size     00000000 (0)\n+1B2739 Filename Length       003D (61)\n+1B273B Extra Length          0009 (9)\n+1B273D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B273D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B277A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B277C   Length              0005 (5)\n+1B277E   Flags               01 (1) 'Modification'\n+1B277F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B2783 PAYLOAD\n+\n+1B2C60 DATA DESCRIPTOR       08074B50 (134695760)\n+1B2C64 CRC                   A545EC4C (2772823116)\n+1B2C68 Compressed Size       000004DD (1245)\n+1B2C6C Uncompressed Size     000004DD (1245)\n+\n+1B2C70 LOCAL HEADER #611     04034B50 (67324752)\n+1B2C74 Extract Zip Spec      14 (20) '2.0'\n+1B2C75 Extract OS            00 (0) 'MS-DOS'\n+1B2C76 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B2C78 Compression Method    0000 (0) 'Stored'\n+1B2C7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B2C7E CRC                   00000000 (0)\n+1B2C82 Compressed Size       00000000 (0)\n+1B2C86 Uncompressed Size     00000000 (0)\n+1B2C8A Filename Length       003B (59)\n+1B2C8C Extra Length          0009 (9)\n+1B2C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B2C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B2CC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B2CCB   Length              0005 (5)\n+1B2CCD   Flags               01 (1) 'Modification'\n+1B2CCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B2CD2 PAYLOAD\n+\n+1B375E DATA DESCRIPTOR       08074B50 (134695760)\n+1B3762 CRC                   8BA4EDED (2342841837)\n+1B3766 Compressed Size       00000A8C (2700)\n+1B376A Uncompressed Size     00000A8C (2700)\n+\n+1B376E LOCAL HEADER #612     04034B50 (67324752)\n+1B3772 Extract Zip Spec      14 (20) '2.0'\n+1B3773 Extract OS            00 (0) 'MS-DOS'\n+1B3774 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B3776 Compression Method    0000 (0) 'Stored'\n+1B3778 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B377C CRC                   00000000 (0)\n+1B3780 Compressed Size       00000000 (0)\n+1B3784 Uncompressed Size     00000000 (0)\n+1B3788 Filename Length       0037 (55)\n+1B378A Extra Length          0009 (9)\n+1B378C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B378C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B37C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B37C5   Length              0005 (5)\n+1B37C7   Flags               01 (1) 'Modification'\n+1B37C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B37CC PAYLOAD\n+\n+1B3C9A DATA DESCRIPTOR       08074B50 (134695760)\n+1B3C9E CRC                   C8BED78D (3367950221)\n+1B3CA2 Compressed Size       000004CE (1230)\n+1B3CA6 Uncompressed Size     000004CE (1230)\n+\n+1B3CAA LOCAL HEADER #613     04034B50 (67324752)\n+1B3CAE Extract Zip Spec      14 (20) '2.0'\n+1B3CAF Extract OS            00 (0) 'MS-DOS'\n+1B3CB0 General Purpose Flag  0000 (0)\n+1B3CB2 Compression Method    0000 (0) 'Stored'\n+1B3CB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B3CB8 CRC                   00000000 (0)\n+1B3CBC Compressed Size       00000000 (0)\n+1B3CC0 Uncompressed Size     00000000 (0)\n+1B3CC4 Filename Length       002C (44)\n+1B3CC6 Extra Length          0009 (9)\n+1B3CC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B3CC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B3CF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B3CF6   Length              0005 (5)\n+1B3CF8   Flags               01 (1) 'Modification'\n+1B3CF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1B3CFD LOCAL HEADER #614     04034B50 (67324752)\n+1B3D01 Extract Zip Spec      14 (20) '2.0'\n+1B3D02 Extract OS            00 (0) 'MS-DOS'\n+1B3D03 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B3D05 Compression Method    0000 (0) 'Stored'\n+1B3D07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B3D0B CRC                   00000000 (0)\n+1B3D0F Compressed Size       00000000 (0)\n+1B3D13 Uncompressed Size     00000000 (0)\n+1B3D17 Filename Length       004D (77)\n+1B3D19 Extra Length          0009 (9)\n+1B3D1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B3D1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B3D68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B3D6A   Length              0005 (5)\n+1B3D6C   Flags               01 (1) 'Modification'\n+1B3D6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B3D71 PAYLOAD\n+\n+1B64F1 DATA DESCRIPTOR       08074B50 (134695760)\n+1B64F5 CRC                   8153B7AF (2169747375)\n+1B64F9 Compressed Size       00002780 (10112)\n+1B64FD Uncompressed Size     00002780 (10112)\n+\n+1B6501 LOCAL HEADER #615     04034B50 (67324752)\n+1B6505 Extract Zip Spec      14 (20) '2.0'\n+1B6506 Extract OS            00 (0) 'MS-DOS'\n+1B6507 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B6509 Compression Method    0000 (0) 'Stored'\n+1B650B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B650F CRC                   00000000 (0)\n+1B6513 Compressed Size       00000000 (0)\n+1B6517 Uncompressed Size     00000000 (0)\n+1B651B Filename Length       0054 (84)\n+1B651D Extra Length          0009 (9)\n+1B651F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B651F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B6573 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B6575   Length              0005 (5)\n+1B6577   Flags               01 (1) 'Modification'\n+1B6578   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B657C PAYLOAD\n+\n+1B6C72 DATA DESCRIPTOR       08074B50 (134695760)\n+1B6C76 CRC                   B055C4D7 (2958410967)\n+1B6C7A Compressed Size       000006F6 (1782)\n+1B6C7E Uncompressed Size     000006F6 (1782)\n+\n+1B6C82 LOCAL HEADER #616     04034B50 (67324752)\n+1B6C86 Extract Zip Spec      14 (20) '2.0'\n+1B6C87 Extract OS            00 (0) 'MS-DOS'\n+1B6C88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B6C8A Compression Method    0000 (0) 'Stored'\n+1B6C8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B6C90 CRC                   00000000 (0)\n+1B6C94 Compressed Size       00000000 (0)\n+1B6C98 Uncompressed Size     00000000 (0)\n+1B6C9C Filename Length       0041 (65)\n+1B6C9E Extra Length          0009 (9)\n+1B6CA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B6CA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B6CE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B6CE3   Length              0005 (5)\n+1B6CE5   Flags               01 (1) 'Modification'\n+1B6CE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B6CEA PAYLOAD\n+\n+1B7157 DATA DESCRIPTOR       08074B50 (134695760)\n+1B715B CRC                   46172F4A (1175924554)\n+1B715F Compressed Size       0000046D (1133)\n+1B7163 Uncompressed Size     0000046D (1133)\n+\n+1B7167 LOCAL HEADER #617     04034B50 (67324752)\n+1B716B Extract Zip Spec      14 (20) '2.0'\n+1B716C Extract OS            00 (0) 'MS-DOS'\n+1B716D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B716F Compression Method    0000 (0) 'Stored'\n+1B7171 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B7175 CRC                   00000000 (0)\n+1B7179 Compressed Size       00000000 (0)\n+1B717D Uncompressed Size     00000000 (0)\n+1B7181 Filename Length       0043 (67)\n+1B7183 Extra Length          0009 (9)\n+1B7185 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B7185: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B71C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B71CA   Length              0005 (5)\n+1B71CC   Flags               01 (1) 'Modification'\n+1B71CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B71D1 PAYLOAD\n+\n+1B7D3A DATA DESCRIPTOR       08074B50 (134695760)\n+1B7D3E CRC                   D56D83FB (3580724219)\n+1B7D42 Compressed Size       00000B69 (2921)\n+1B7D46 Uncompressed Size     00000B69 (2921)\n+\n+1B7D4A LOCAL HEADER #618     04034B50 (67324752)\n+1B7D4E Extract Zip Spec      14 (20) '2.0'\n+1B7D4F Extract OS            00 (0) 'MS-DOS'\n+1B7D50 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B7D52 Compression Method    0000 (0) 'Stored'\n+1B7D54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B7D58 CRC                   00000000 (0)\n+1B7D5C Compressed Size       00000000 (0)\n+1B7D60 Uncompressed Size     00000000 (0)\n+1B7D64 Filename Length       0046 (70)\n+1B7D66 Extra Length          0009 (9)\n+1B7D68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B7D68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B7DAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B7DB0   Length              0005 (5)\n+1B7DB2   Flags               01 (1) 'Modification'\n+1B7DB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B7DB7 PAYLOAD\n+\n+1B82E9 DATA DESCRIPTOR       08074B50 (134695760)\n+1B82ED CRC                   69A63658 (1772500568)\n+1B82F1 Compressed Size       00000532 (1330)\n+1B82F5 Uncompressed Size     00000532 (1330)\n+\n+1B82F9 LOCAL HEADER #619     04034B50 (67324752)\n+1B82FD Extract Zip Spec      14 (20) '2.0'\n+1B82FE Extract OS            00 (0) 'MS-DOS'\n+1B82FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B8301 Compression Method    0000 (0) 'Stored'\n+1B8303 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B8307 CRC                   00000000 (0)\n+1B830B Compressed Size       00000000 (0)\n+1B830F Uncompressed Size     00000000 (0)\n+1B8313 Filename Length       003A (58)\n+1B8315 Extra Length          0009 (9)\n+1B8317 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B8317: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B8351 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B8353   Length              0005 (5)\n+1B8355   Flags               01 (1) 'Modification'\n+1B8356   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B835A PAYLOAD\n+\n+1B87BA DATA DESCRIPTOR       08074B50 (134695760)\n+1B87BE CRC                   01D091A7 (30445991)\n+1B87C2 Compressed Size       00000460 (1120)\n+1B87C6 Uncompressed Size     00000460 (1120)\n+\n+1B87CA LOCAL HEADER #620     04034B50 (67324752)\n+1B87CE Extract Zip Spec      14 (20) '2.0'\n+1B87CF Extract OS            00 (0) 'MS-DOS'\n+1B87D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1B87D2 Compression Method    0000 (0) 'Stored'\n+1B87D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1B87D8 CRC                   00000000 (0)\n+1B87DC Compressed Size       00000000 (0)\n+1B87E0 Uncompressed Size     00000000 (0)\n+1B87E4 Filename Length       0045 (69)\n+1B87E6 Extra Length          0009 (9)\n+1B87E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1B87E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1B882D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1B882F   Length              0005 (5)\n+1B8831   Flags               01 (1) 'Modification'\n+1B8832   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1B8836 PAYLOAD\n+\n+1BAD1C DATA DESCRIPTOR       08074B50 (134695760)\n+1BAD20 CRC                   FCBE727C (4240339580)\n+1BAD24 Compressed Size       000024E6 (9446)\n+1BAD28 Uncompressed Size     000024E6 (9446)\n+\n+1BAD2C LOCAL HEADER #621     04034B50 (67324752)\n+1BAD30 Extract Zip Spec      14 (20) '2.0'\n+1BAD31 Extract OS            00 (0) 'MS-DOS'\n+1BAD32 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1BAD34 Compression Method    0000 (0) 'Stored'\n+1BAD36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1BAD3A CRC                   00000000 (0)\n+1BAD3E Compressed Size       00000000 (0)\n+1BAD42 Uncompressed Size     00000000 (0)\n+1BAD46 Filename Length       004C (76)\n+1BAD48 Extra Length          0009 (9)\n+1BAD4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1BAD4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1BAD96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1BAD98   Length              0005 (5)\n+1BAD9A   Flags               01 (1) 'Modification'\n+1BAD9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1BAD9F PAYLOAD\n+\n+1BB590 DATA DESCRIPTOR       08074B50 (134695760)\n+1BB594 CRC                   E7C23E33 (3888266803)\n+1BB598 Compressed Size       000007F1 (2033)\n+1BB59C Uncompressed Size     000007F1 (2033)\n+\n+1BB5A0 LOCAL HEADER #622     04034B50 (67324752)\n+1BB5A4 Extract Zip Spec      14 (20) '2.0'\n+1BB5A5 Extract OS            00 (0) 'MS-DOS'\n+1BB5A6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1BB5A8 Compression Method    0000 (0) 'Stored'\n+1BB5AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1BB5AE CRC                   00000000 (0)\n+1BB5B2 Compressed Size       00000000 (0)\n+1BB5B6 Uncompressed Size     00000000 (0)\n+1BB5BA Filename Length       004D (77)\n+1BB5BC Extra Length          0009 (9)\n+1BB5BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1BB5BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1BB60B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1BB60D   Length              0005 (5)\n+1BB60F   Flags               01 (1) 'Modification'\n+1BB610   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1BB614 PAYLOAD\n+\n+1BD249 DATA DESCRIPTOR       08074B50 (134695760)\n+1BD24D CRC                   A4ED9691 (2767034001)\n+1BD251 Compressed Size       00001C35 (7221)\n+1BD255 Uncompressed Size     00001C35 (7221)\n+\n+1BD259 LOCAL HEADER #623     04034B50 (67324752)\n+1BD25D Extract Zip Spec      14 (20) '2.0'\n+1BD25E Extract OS            00 (0) 'MS-DOS'\n+1BD25F General Purpose Flag  0000 (0)\n+1BD261 Compression Method    0000 (0) 'Stored'\n+1BD263 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1BD267 CRC                   00000000 (0)\n+1BD26B Compressed Size       00000000 (0)\n+1BD26F Uncompressed Size     00000000 (0)\n+1BD273 Filename Length       0031 (49)\n+1BD275 Extra Length          0009 (9)\n+1BD277 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1BD277: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1BD2A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1BD2AA   Length              0005 (5)\n+1BD2AC   Flags               01 (1) 'Modification'\n+1BD2AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1BD2B1 LOCAL HEADER #624     04034B50 (67324752)\n+1BD2B5 Extract Zip Spec      14 (20) '2.0'\n+1BD2B6 Extract OS            00 (0) 'MS-DOS'\n+1BD2B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1BD2B9 Compression Method    0000 (0) 'Stored'\n+1BD2BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1BD2BF CRC                   00000000 (0)\n+1BD2C3 Compressed Size       00000000 (0)\n+1BD2C7 Uncompressed Size     00000000 (0)\n+1BD2CB Filename Length       0054 (84)\n+1BD2CD Extra Length          0009 (9)\n+1BD2CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1BD2CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1BD323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1BD325   Length              0005 (5)\n+1BD327   Flags               01 (1) 'Modification'\n+1BD328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1BD32C PAYLOAD\n+\n+1C2DB4 DATA DESCRIPTOR       08074B50 (134695760)\n+1C2DB8 CRC                   BAE14165 (3135324517)\n+1C2DBC Compressed Size       00005A88 (23176)\n+1C2DC0 Uncompressed Size     00005A88 (23176)\n+\n+1C2DC4 LOCAL HEADER #625     04034B50 (67324752)\n+1C2DC8 Extract Zip Spec      14 (20) '2.0'\n+1C2DC9 Extract OS            00 (0) 'MS-DOS'\n+1C2DCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C2DCC Compression Method    0000 (0) 'Stored'\n+1C2DCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C2DD2 CRC                   00000000 (0)\n+1C2DD6 Compressed Size       00000000 (0)\n+1C2DDA Uncompressed Size     00000000 (0)\n+1C2DDE Filename Length       005B (91)\n+1C2DE0 Extra Length          0009 (9)\n+1C2DE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C2DE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C2E3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C2E3F   Length              0005 (5)\n+1C2E41   Flags               01 (1) 'Modification'\n+1C2E42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C2E46 PAYLOAD\n+\n+1C3438 DATA DESCRIPTOR       08074B50 (134695760)\n+1C343C CRC                   BA62C70E (3127035662)\n+1C3440 Compressed Size       000005F2 (1522)\n+1C3444 Uncompressed Size     000005F2 (1522)\n+\n+1C3448 LOCAL HEADER #626     04034B50 (67324752)\n+1C344C Extract Zip Spec      14 (20) '2.0'\n+1C344D Extract OS            00 (0) 'MS-DOS'\n+1C344E General Purpose Flag  0000 (0)\n+1C3450 Compression Method    0000 (0) 'Stored'\n+1C3452 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C3456 CRC                   00000000 (0)\n+1C345A Compressed Size       00000000 (0)\n+1C345E Uncompressed Size     00000000 (0)\n+1C3462 Filename Length       0030 (48)\n+1C3464 Extra Length          0009 (9)\n+1C3466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C3466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C3496 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C3498   Length              0005 (5)\n+1C349A   Flags               01 (1) 'Modification'\n+1C349B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1C349F LOCAL HEADER #627     04034B50 (67324752)\n+1C34A3 Extract Zip Spec      14 (20) '2.0'\n+1C34A4 Extract OS            00 (0) 'MS-DOS'\n+1C34A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C34A7 Compression Method    0000 (0) 'Stored'\n+1C34A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C34AD CRC                   00000000 (0)\n+1C34B1 Compressed Size       00000000 (0)\n+1C34B5 Uncompressed Size     00000000 (0)\n+1C34B9 Filename Length       004C (76)\n+1C34BB Extra Length          0009 (9)\n+1C34BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C34BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C3509 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C350B   Length              0005 (5)\n+1C350D   Flags               01 (1) 'Modification'\n+1C350E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C3512 PAYLOAD\n+\n+1C3E01 DATA DESCRIPTOR       08074B50 (134695760)\n+1C3E05 CRC                   B653D686 (3058947718)\n+1C3E09 Compressed Size       000008EF (2287)\n+1C3E0D Uncompressed Size     000008EF (2287)\n+\n+1C3E11 LOCAL HEADER #628     04034B50 (67324752)\n+1C3E15 Extract Zip Spec      14 (20) '2.0'\n+1C3E16 Extract OS            00 (0) 'MS-DOS'\n+1C3E17 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C3E19 Compression Method    0000 (0) 'Stored'\n+1C3E1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C3E1F CRC                   00000000 (0)\n+1C3E23 Compressed Size       00000000 (0)\n+1C3E27 Uncompressed Size     00000000 (0)\n+1C3E2B Filename Length       0053 (83)\n+1C3E2D Extra Length          0009 (9)\n+1C3E2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C3E2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C3E82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C3E84   Length              0005 (5)\n+1C3E86   Flags               01 (1) 'Modification'\n+1C3E87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C3E8B PAYLOAD\n+\n+1C43D0 DATA DESCRIPTOR       08074B50 (134695760)\n+1C43D4 CRC                   0495D293 (76927635)\n+1C43D8 Compressed Size       00000545 (1349)\n+1C43DC Uncompressed Size     00000545 (1349)\n+\n+1C43E0 LOCAL HEADER #629     04034B50 (67324752)\n+1C43E4 Extract Zip Spec      14 (20) '2.0'\n+1C43E5 Extract OS            00 (0) 'MS-DOS'\n+1C43E6 General Purpose Flag  0000 (0)\n+1C43E8 Compression Method    0000 (0) 'Stored'\n+1C43EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C43EE CRC                   00000000 (0)\n+1C43F2 Compressed Size       00000000 (0)\n+1C43F6 Uncompressed Size     00000000 (0)\n+1C43FA Filename Length       0034 (52)\n+1C43FC Extra Length          0009 (9)\n+1C43FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C43FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C4432 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C4434   Length              0005 (5)\n+1C4436   Flags               01 (1) 'Modification'\n+1C4437   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1C443B LOCAL HEADER #630     04034B50 (67324752)\n+1C443F Extract Zip Spec      14 (20) '2.0'\n+1C4440 Extract OS            00 (0) 'MS-DOS'\n+1C4441 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C4443 Compression Method    0000 (0) 'Stored'\n+1C4445 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C4449 CRC                   00000000 (0)\n+1C444D Compressed Size       00000000 (0)\n+1C4451 Uncompressed Size     00000000 (0)\n+1C4455 Filename Length       0056 (86)\n+1C4457 Extra Length          0009 (9)\n+1C4459 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C4459: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C44AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C44B1   Length              0005 (5)\n+1C44B3   Flags               01 (1) 'Modification'\n+1C44B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C44B8 PAYLOAD\n+\n+1C5467 DATA DESCRIPTOR       08074B50 (134695760)\n+1C546B CRC                   2171436F (561070959)\n+1C546F Compressed Size       00000FAF (4015)\n+1C5473 Uncompressed Size     00000FAF (4015)\n+\n+1C5477 LOCAL HEADER #631     04034B50 (67324752)\n+1C547B Extract Zip Spec      14 (20) '2.0'\n+1C547C Extract OS            00 (0) 'MS-DOS'\n+1C547D General Purpose Flag  0000 (0)\n+1C547F Compression Method    0000 (0) 'Stored'\n+1C5481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C5485 CRC                   00000000 (0)\n+1C5489 Compressed Size       00000000 (0)\n+1C548D Uncompressed Size     00000000 (0)\n+1C5491 Filename Length       0022 (34)\n+1C5493 Extra Length          0009 (9)\n+1C5495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C5495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C54B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C54B9   Length              0005 (5)\n+1C54BB   Flags               01 (1) 'Modification'\n+1C54BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1C54C0 LOCAL HEADER #632     04034B50 (67324752)\n+1C54C4 Extract Zip Spec      14 (20) '2.0'\n+1C54C5 Extract OS            00 (0) 'MS-DOS'\n+1C54C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C54C8 Compression Method    0000 (0) 'Stored'\n+1C54CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C54CE CRC                   00000000 (0)\n+1C54D2 Compressed Size       00000000 (0)\n+1C54D6 Uncompressed Size     00000000 (0)\n+1C54DA Filename Length       0036 (54)\n+1C54DC Extra Length          0009 (9)\n+1C54DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C54DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C5514 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C5516   Length              0005 (5)\n+1C5518   Flags               01 (1) 'Modification'\n+1C5519   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C551D PAYLOAD\n+\n+1C7EB6 DATA DESCRIPTOR       08074B50 (134695760)\n+1C7EBA CRC                   2E0F2713 (772744979)\n+1C7EBE Compressed Size       00002999 (10649)\n+1C7EC2 Uncompressed Size     00002999 (10649)\n+\n+1C7EC6 LOCAL HEADER #633     04034B50 (67324752)\n+1C7ECA Extract Zip Spec      14 (20) '2.0'\n+1C7ECB Extract OS            00 (0) 'MS-DOS'\n+1C7ECC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C7ECE Compression Method    0000 (0) 'Stored'\n+1C7ED0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C7ED4 CRC                   00000000 (0)\n+1C7ED8 Compressed Size       00000000 (0)\n+1C7EDC Uncompressed Size     00000000 (0)\n+1C7EE0 Filename Length       0036 (54)\n+1C7EE2 Extra Length          0009 (9)\n+1C7EE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C7EE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C7F1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C7F1C   Length              0005 (5)\n+1C7F1E   Flags               01 (1) 'Modification'\n+1C7F1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C7F23 PAYLOAD\n+\n+1C82FA DATA DESCRIPTOR       08074B50 (134695760)\n+1C82FE CRC                   B7E4B654 (3085219412)\n+1C8302 Compressed Size       000003D7 (983)\n+1C8306 Uncompressed Size     000003D7 (983)\n+\n+1C830A LOCAL HEADER #634     04034B50 (67324752)\n+1C830E Extract Zip Spec      14 (20) '2.0'\n+1C830F Extract OS            00 (0) 'MS-DOS'\n+1C8310 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C8312 Compression Method    0000 (0) 'Stored'\n+1C8314 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C8318 CRC                   00000000 (0)\n+1C831C Compressed Size       00000000 (0)\n+1C8320 Uncompressed Size     00000000 (0)\n+1C8324 Filename Length       0033 (51)\n+1C8326 Extra Length          0009 (9)\n+1C8328 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C8328: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C835B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C835D   Length              0005 (5)\n+1C835F   Flags               01 (1) 'Modification'\n+1C8360   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C8364 PAYLOAD\n+\n+1C87B3 DATA DESCRIPTOR       08074B50 (134695760)\n+1C87B7 CRC                   67723A29 (1735539241)\n+1C87BB Compressed Size       0000044F (1103)\n+1C87BF Uncompressed Size     0000044F (1103)\n+\n+1C87C3 LOCAL HEADER #635     04034B50 (67324752)\n+1C87C7 Extract Zip Spec      14 (20) '2.0'\n+1C87C8 Extract OS            00 (0) 'MS-DOS'\n+1C87C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C87CB Compression Method    0000 (0) 'Stored'\n+1C87CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C87D1 CRC                   00000000 (0)\n+1C87D5 Compressed Size       00000000 (0)\n+1C87D9 Uncompressed Size     00000000 (0)\n+1C87DD Filename Length       0038 (56)\n+1C87DF Extra Length          0009 (9)\n+1C87E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C87E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C8819 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C881B   Length              0005 (5)\n+1C881D   Flags               01 (1) 'Modification'\n+1C881E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C8822 PAYLOAD\n+\n+1C9629 DATA DESCRIPTOR       08074B50 (134695760)\n+1C962D CRC                   EBE34920 (3957541152)\n+1C9631 Compressed Size       00000E07 (3591)\n+1C9635 Uncompressed Size     00000E07 (3591)\n+\n+1C9639 LOCAL HEADER #636     04034B50 (67324752)\n+1C963D Extract Zip Spec      14 (20) '2.0'\n+1C963E Extract OS            00 (0) 'MS-DOS'\n+1C963F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C9641 Compression Method    0000 (0) 'Stored'\n+1C9643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C9647 CRC                   00000000 (0)\n+1C964B Compressed Size       00000000 (0)\n+1C964F Uncompressed Size     00000000 (0)\n+1C9653 Filename Length       0038 (56)\n+1C9655 Extra Length          0009 (9)\n+1C9657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C9657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C968F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C9691   Length              0005 (5)\n+1C9693   Flags               01 (1) 'Modification'\n+1C9694   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C9698 PAYLOAD\n+\n+1C9A68 DATA DESCRIPTOR       08074B50 (134695760)\n+1C9A6C CRC                   F01E112A (4028502314)\n+1C9A70 Compressed Size       000003D0 (976)\n+1C9A74 Uncompressed Size     000003D0 (976)\n+\n+1C9A78 LOCAL HEADER #637     04034B50 (67324752)\n+1C9A7C Extract Zip Spec      14 (20) '2.0'\n+1C9A7D Extract OS            00 (0) 'MS-DOS'\n+1C9A7E General Purpose Flag  0000 (0)\n+1C9A80 Compression Method    0000 (0) 'Stored'\n+1C9A82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C9A86 CRC                   00000000 (0)\n+1C9A8A Compressed Size       00000000 (0)\n+1C9A8E Uncompressed Size     00000000 (0)\n+1C9A92 Filename Length       0020 (32)\n+1C9A94 Extra Length          0009 (9)\n+1C9A96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C9A96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C9AB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C9AB8   Length              0005 (5)\n+1C9ABA   Flags               01 (1) 'Modification'\n+1C9ABB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1C9ABF LOCAL HEADER #638     04034B50 (67324752)\n+1C9AC3 Extract Zip Spec      14 (20) '2.0'\n+1C9AC4 Extract OS            00 (0) 'MS-DOS'\n+1C9AC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C9AC7 Compression Method    0000 (0) 'Stored'\n+1C9AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C9ACD CRC                   00000000 (0)\n+1C9AD1 Compressed Size       00000000 (0)\n+1C9AD5 Uncompressed Size     00000000 (0)\n+1C9AD9 Filename Length       0031 (49)\n+1C9ADB Extra Length          0009 (9)\n+1C9ADD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C9ADD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C9B0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C9B10   Length              0005 (5)\n+1C9B12   Flags               01 (1) 'Modification'\n+1C9B13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C9B17 PAYLOAD\n+\n+1C9EE4 DATA DESCRIPTOR       08074B50 (134695760)\n+1C9EE8 CRC                   16DF264E (383723086)\n+1C9EEC Compressed Size       000003CD (973)\n+1C9EF0 Uncompressed Size     000003CD (973)\n+\n+1C9EF4 LOCAL HEADER #639     04034B50 (67324752)\n+1C9EF8 Extract Zip Spec      14 (20) '2.0'\n+1C9EF9 Extract OS            00 (0) 'MS-DOS'\n+1C9EFA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1C9EFC Compression Method    0000 (0) 'Stored'\n+1C9EFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1C9F02 CRC                   00000000 (0)\n+1C9F06 Compressed Size       00000000 (0)\n+1C9F0A Uncompressed Size     00000000 (0)\n+1C9F0E Filename Length       002E (46)\n+1C9F10 Extra Length          0009 (9)\n+1C9F12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1C9F12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1C9F40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1C9F42   Length              0005 (5)\n+1C9F44   Flags               01 (1) 'Modification'\n+1C9F45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1C9F49 PAYLOAD\n+\n+1CA536 DATA DESCRIPTOR       08074B50 (134695760)\n+1CA53A CRC                   66454DE7 (1715817959)\n+1CA53E Compressed Size       000005ED (1517)\n+1CA542 Uncompressed Size     000005ED (1517)\n+\n+1CA546 LOCAL HEADER #640     04034B50 (67324752)\n+1CA54A Extract Zip Spec      14 (20) '2.0'\n+1CA54B Extract OS            00 (0) 'MS-DOS'\n+1CA54C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CA54E Compression Method    0000 (0) 'Stored'\n+1CA550 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CA554 CRC                   00000000 (0)\n+1CA558 Compressed Size       00000000 (0)\n+1CA55C Uncompressed Size     00000000 (0)\n+1CA560 Filename Length       0035 (53)\n+1CA562 Extra Length          0009 (9)\n+1CA564 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CA564: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CA599 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CA59B   Length              0005 (5)\n+1CA59D   Flags               01 (1) 'Modification'\n+1CA59E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CA5A2 PAYLOAD\n+\n+1CAA3F DATA DESCRIPTOR       08074B50 (134695760)\n+1CAA43 CRC                   F8009358 (4160787288)\n+1CAA47 Compressed Size       0000049D (1181)\n+1CAA4B Uncompressed Size     0000049D (1181)\n+\n+1CAA4F LOCAL HEADER #641     04034B50 (67324752)\n+1CAA53 Extract Zip Spec      14 (20) '2.0'\n+1CAA54 Extract OS            00 (0) 'MS-DOS'\n+1CAA55 General Purpose Flag  0000 (0)\n+1CAA57 Compression Method    0000 (0) 'Stored'\n+1CAA59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CAA5D CRC                   00000000 (0)\n+1CAA61 Compressed Size       00000000 (0)\n+1CAA65 Uncompressed Size     00000000 (0)\n+1CAA69 Filename Length       0020 (32)\n+1CAA6B Extra Length          0009 (9)\n+1CAA6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CAA6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CAA8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CAA8F   Length              0005 (5)\n+1CAA91   Flags               01 (1) 'Modification'\n+1CAA92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1CAA96 LOCAL HEADER #642     04034B50 (67324752)\n+1CAA9A Extract Zip Spec      14 (20) '2.0'\n+1CAA9B Extract OS            00 (0) 'MS-DOS'\n+1CAA9C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CAA9E Compression Method    0000 (0) 'Stored'\n+1CAAA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CAAA4 CRC                   00000000 (0)\n+1CAAA8 Compressed Size       00000000 (0)\n+1CAAAC Uncompressed Size     00000000 (0)\n+1CAAB0 Filename Length       002E (46)\n+1CAAB2 Extra Length          0009 (9)\n+1CAAB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CAAB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CAAE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CAAE4   Length              0005 (5)\n+1CAAE6   Flags               01 (1) 'Modification'\n+1CAAE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CAAEB PAYLOAD\n+\n+1CB9B7 DATA DESCRIPTOR       08074B50 (134695760)\n+1CB9BB CRC                   C8C419A3 (3368294819)\n+1CB9BF Compressed Size       00000ECC (3788)\n+1CB9C3 Uncompressed Size     00000ECC (3788)\n+\n+1CB9C7 LOCAL HEADER #643     04034B50 (67324752)\n+1CB9CB Extract Zip Spec      14 (20) '2.0'\n+1CB9CC Extract OS            00 (0) 'MS-DOS'\n+1CB9CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CB9CF Compression Method    0000 (0) 'Stored'\n+1CB9D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CB9D5 CRC                   00000000 (0)\n+1CB9D9 Compressed Size       00000000 (0)\n+1CB9DD Uncompressed Size     00000000 (0)\n+1CB9E1 Filename Length       0034 (52)\n+1CB9E3 Extra Length          0009 (9)\n+1CB9E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CB9E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CBA19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CBA1B   Length              0005 (5)\n+1CBA1D   Flags               01 (1) 'Modification'\n+1CBA1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CBA22 PAYLOAD\n+\n+1CBE4E DATA DESCRIPTOR       08074B50 (134695760)\n+1CBE52 CRC                   C31C00DA (3273392346)\n+1CBE56 Compressed Size       0000042C (1068)\n+1CBE5A Uncompressed Size     0000042C (1068)\n+\n+1CBE5E LOCAL HEADER #644     04034B50 (67324752)\n+1CBE62 Extract Zip Spec      14 (20) '2.0'\n+1CBE63 Extract OS            00 (0) 'MS-DOS'\n+1CBE64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CBE66 Compression Method    0000 (0) 'Stored'\n+1CBE68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CBE6C CRC                   00000000 (0)\n+1CBE70 Compressed Size       00000000 (0)\n+1CBE74 Uncompressed Size     00000000 (0)\n+1CBE78 Filename Length       003D (61)\n+1CBE7A Extra Length          0009 (9)\n+1CBE7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CBE7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CBEB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CBEBB   Length              0005 (5)\n+1CBEBD   Flags               01 (1) 'Modification'\n+1CBEBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CBEC2 PAYLOAD\n+\n+1CC41A DATA DESCRIPTOR       08074B50 (134695760)\n+1CC41E CRC                   C4FF04D7 (3305047255)\n+1CC422 Compressed Size       00000558 (1368)\n+1CC426 Uncompressed Size     00000558 (1368)\n+\n+1CC42A LOCAL HEADER #645     04034B50 (67324752)\n+1CC42E Extract Zip Spec      14 (20) '2.0'\n+1CC42F Extract OS            00 (0) 'MS-DOS'\n+1CC430 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CC432 Compression Method    0000 (0) 'Stored'\n+1CC434 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CC438 CRC                   00000000 (0)\n+1CC43C Compressed Size       00000000 (0)\n+1CC440 Uncompressed Size     00000000 (0)\n+1CC444 Filename Length       003F (63)\n+1CC446 Extra Length          0009 (9)\n+1CC448 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CC448: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CC487 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CC489   Length              0005 (5)\n+1CC48B   Flags               01 (1) 'Modification'\n+1CC48C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CC490 PAYLOAD\n+\n+1CC9CB DATA DESCRIPTOR       08074B50 (134695760)\n+1CC9CF CRC                   B8E6EA58 (3102141016)\n+1CC9D3 Compressed Size       0000053B (1339)\n+1CC9D7 Uncompressed Size     0000053B (1339)\n+\n+1CC9DB LOCAL HEADER #646     04034B50 (67324752)\n+1CC9DF Extract Zip Spec      14 (20) '2.0'\n+1CC9E0 Extract OS            00 (0) 'MS-DOS'\n+1CC9E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CC9E3 Compression Method    0000 (0) 'Stored'\n+1CC9E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CC9E9 CRC                   00000000 (0)\n+1CC9ED Compressed Size       00000000 (0)\n+1CC9F1 Uncompressed Size     00000000 (0)\n+1CC9F5 Filename Length       003F (63)\n+1CC9F7 Extra Length          0009 (9)\n+1CC9F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CC9F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CCA38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CCA3A   Length              0005 (5)\n+1CCA3C   Flags               01 (1) 'Modification'\n+1CCA3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CCA41 PAYLOAD\n+\n+1CD047 DATA DESCRIPTOR       08074B50 (134695760)\n+1CD04B CRC                   27EF74B8 (670004408)\n+1CD04F Compressed Size       00000606 (1542)\n+1CD053 Uncompressed Size     00000606 (1542)\n+\n+1CD057 LOCAL HEADER #647     04034B50 (67324752)\n+1CD05B Extract Zip Spec      14 (20) '2.0'\n+1CD05C Extract OS            00 (0) 'MS-DOS'\n+1CD05D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CD05F Compression Method    0000 (0) 'Stored'\n+1CD061 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CD065 CRC                   00000000 (0)\n+1CD069 Compressed Size       00000000 (0)\n+1CD06D Uncompressed Size     00000000 (0)\n+1CD071 Filename Length       003C (60)\n+1CD073 Extra Length          0009 (9)\n+1CD075 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CD075: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CD0B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CD0B3   Length              0005 (5)\n+1CD0B5   Flags               01 (1) 'Modification'\n+1CD0B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CD0BA PAYLOAD\n+\n+1CD60F DATA DESCRIPTOR       08074B50 (134695760)\n+1CD613 CRC                   3F610BCB (1063324619)\n+1CD617 Compressed Size       00000555 (1365)\n+1CD61B Uncompressed Size     00000555 (1365)\n+\n+1CD61F LOCAL HEADER #648     04034B50 (67324752)\n+1CD623 Extract Zip Spec      14 (20) '2.0'\n+1CD624 Extract OS            00 (0) 'MS-DOS'\n+1CD625 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CD627 Compression Method    0000 (0) 'Stored'\n+1CD629 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CD62D CRC                   00000000 (0)\n+1CD631 Compressed Size       00000000 (0)\n+1CD635 Uncompressed Size     00000000 (0)\n+1CD639 Filename Length       003B (59)\n+1CD63B Extra Length          0009 (9)\n+1CD63D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CD63D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CD678 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CD67A   Length              0005 (5)\n+1CD67C   Flags               01 (1) 'Modification'\n+1CD67D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CD681 PAYLOAD\n+\n+1CDBCF DATA DESCRIPTOR       08074B50 (134695760)\n+1CDBD3 CRC                   15F2A538 (368223544)\n+1CDBD7 Compressed Size       0000054E (1358)\n+1CDBDB Uncompressed Size     0000054E (1358)\n+\n+1CDBDF LOCAL HEADER #649     04034B50 (67324752)\n+1CDBE3 Extract Zip Spec      14 (20) '2.0'\n+1CDBE4 Extract OS            00 (0) 'MS-DOS'\n+1CDBE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CDBE7 Compression Method    0000 (0) 'Stored'\n+1CDBE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CDBED CRC                   00000000 (0)\n+1CDBF1 Compressed Size       00000000 (0)\n+1CDBF5 Uncompressed Size     00000000 (0)\n+1CDBF9 Filename Length       003D (61)\n+1CDBFB Extra Length          0009 (9)\n+1CDBFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CDBFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CDC3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CDC3C   Length              0005 (5)\n+1CDC3E   Flags               01 (1) 'Modification'\n+1CDC3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CDC43 PAYLOAD\n+\n+1CE197 DATA DESCRIPTOR       08074B50 (134695760)\n+1CE19B CRC                   DB3985F1 (3677980145)\n+1CE19F Compressed Size       00000554 (1364)\n+1CE1A3 Uncompressed Size     00000554 (1364)\n+\n+1CE1A7 LOCAL HEADER #650     04034B50 (67324752)\n+1CE1AB Extract Zip Spec      14 (20) '2.0'\n+1CE1AC Extract OS            00 (0) 'MS-DOS'\n+1CE1AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CE1AF Compression Method    0000 (0) 'Stored'\n+1CE1B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CE1B5 CRC                   00000000 (0)\n+1CE1B9 Compressed Size       00000000 (0)\n+1CE1BD Uncompressed Size     00000000 (0)\n+1CE1C1 Filename Length       003A (58)\n+1CE1C3 Extra Length          0009 (9)\n+1CE1C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CE1C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CE1FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CE201   Length              0005 (5)\n+1CE203   Flags               01 (1) 'Modification'\n+1CE204   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CE208 PAYLOAD\n+\n+1CE753 DATA DESCRIPTOR       08074B50 (134695760)\n+1CE757 CRC                   7AC3DE73 (2059656819)\n+1CE75B Compressed Size       0000054B (1355)\n+1CE75F Uncompressed Size     0000054B (1355)\n+\n+1CE763 LOCAL HEADER #651     04034B50 (67324752)\n+1CE767 Extract Zip Spec      14 (20) '2.0'\n+1CE768 Extract OS            00 (0) 'MS-DOS'\n+1CE769 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CE76B Compression Method    0000 (0) 'Stored'\n+1CE76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CE771 CRC                   00000000 (0)\n+1CE775 Compressed Size       00000000 (0)\n+1CE779 Uncompressed Size     00000000 (0)\n+1CE77D Filename Length       003E (62)\n+1CE77F Extra Length          0009 (9)\n+1CE781 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CE781: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CE7BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CE7C1   Length              0005 (5)\n+1CE7C3   Flags               01 (1) 'Modification'\n+1CE7C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CE7C8 PAYLOAD\n+\n+1CECE3 DATA DESCRIPTOR       08074B50 (134695760)\n+1CECE7 CRC                   190CB88A (420264074)\n+1CECEB Compressed Size       0000051B (1307)\n+1CECEF Uncompressed Size     0000051B (1307)\n+\n+1CECF3 LOCAL HEADER #652     04034B50 (67324752)\n+1CECF7 Extract Zip Spec      14 (20) '2.0'\n+1CECF8 Extract OS            00 (0) 'MS-DOS'\n+1CECF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CECFB Compression Method    0000 (0) 'Stored'\n+1CECFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CED01 CRC                   00000000 (0)\n+1CED05 Compressed Size       00000000 (0)\n+1CED09 Uncompressed Size     00000000 (0)\n+1CED0D Filename Length       003B (59)\n+1CED0F Extra Length          0009 (9)\n+1CED11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CED11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CED4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CED4E   Length              0005 (5)\n+1CED50   Flags               01 (1) 'Modification'\n+1CED51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CED55 PAYLOAD\n+\n+1CF2A5 DATA DESCRIPTOR       08074B50 (134695760)\n+1CF2A9 CRC                   94D0E691 (2496718481)\n+1CF2AD Compressed Size       00000550 (1360)\n+1CF2B1 Uncompressed Size     00000550 (1360)\n+\n+1CF2B5 LOCAL HEADER #653     04034B50 (67324752)\n+1CF2B9 Extract Zip Spec      14 (20) '2.0'\n+1CF2BA Extract OS            00 (0) 'MS-DOS'\n+1CF2BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CF2BD Compression Method    0000 (0) 'Stored'\n+1CF2BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CF2C3 CRC                   00000000 (0)\n+1CF2C7 Compressed Size       00000000 (0)\n+1CF2CB Uncompressed Size     00000000 (0)\n+1CF2CF Filename Length       003C (60)\n+1CF2D1 Extra Length          0009 (9)\n+1CF2D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CF2D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CF30F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CF311   Length              0005 (5)\n+1CF313   Flags               01 (1) 'Modification'\n+1CF314   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CF318 PAYLOAD\n+\n+1CF788 DATA DESCRIPTOR       08074B50 (134695760)\n+1CF78C CRC                   E4FF1EF0 (3841924848)\n+1CF790 Compressed Size       00000470 (1136)\n+1CF794 Uncompressed Size     00000470 (1136)\n+\n+1CF798 LOCAL HEADER #654     04034B50 (67324752)\n+1CF79C Extract Zip Spec      14 (20) '2.0'\n+1CF79D Extract OS            00 (0) 'MS-DOS'\n+1CF79E General Purpose Flag  0000 (0)\n+1CF7A0 Compression Method    0000 (0) 'Stored'\n+1CF7A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CF7A6 CRC                   00000000 (0)\n+1CF7AA Compressed Size       00000000 (0)\n+1CF7AE Uncompressed Size     00000000 (0)\n+1CF7B2 Filename Length       0029 (41)\n+1CF7B4 Extra Length          0009 (9)\n+1CF7B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CF7B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CF7DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CF7E1   Length              0005 (5)\n+1CF7E3   Flags               01 (1) 'Modification'\n+1CF7E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1CF7E8 LOCAL HEADER #655     04034B50 (67324752)\n+1CF7EC Extract Zip Spec      14 (20) '2.0'\n+1CF7ED Extract OS            00 (0) 'MS-DOS'\n+1CF7EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1CF7F0 Compression Method    0000 (0) 'Stored'\n+1CF7F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1CF7F6 CRC                   00000000 (0)\n+1CF7FA Compressed Size       00000000 (0)\n+1CF7FE Uncompressed Size     00000000 (0)\n+1CF802 Filename Length       0041 (65)\n+1CF804 Extra Length          0009 (9)\n+1CF806 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1CF806: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1CF847 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1CF849   Length              0005 (5)\n+1CF84B   Flags               01 (1) 'Modification'\n+1CF84C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1CF850 PAYLOAD\n+\n+1D05DD DATA DESCRIPTOR       08074B50 (134695760)\n+1D05E1 CRC                   54CD8A2A (1422756394)\n+1D05E5 Compressed Size       00000D8D (3469)\n+1D05E9 Uncompressed Size     00000D8D (3469)\n+\n+1D05ED LOCAL HEADER #656     04034B50 (67324752)\n+1D05F1 Extract Zip Spec      14 (20) '2.0'\n+1D05F2 Extract OS            00 (0) 'MS-DOS'\n+1D05F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D05F5 Compression Method    0000 (0) 'Stored'\n+1D05F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D05FB CRC                   00000000 (0)\n+1D05FF Compressed Size       00000000 (0)\n+1D0603 Uncompressed Size     00000000 (0)\n+1D0607 Filename Length       0044 (68)\n+1D0609 Extra Length          0009 (9)\n+1D060B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D060B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D064F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D0651   Length              0005 (5)\n+1D0653   Flags               01 (1) 'Modification'\n+1D0654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D0658 PAYLOAD\n+\n+1D0E08 DATA DESCRIPTOR       08074B50 (134695760)\n+1D0E0C CRC                   6FAB873E (1873512254)\n+1D0E10 Compressed Size       000007B0 (1968)\n+1D0E14 Uncompressed Size     000007B0 (1968)\n+\n+1D0E18 LOCAL HEADER #657     04034B50 (67324752)\n+1D0E1C Extract Zip Spec      14 (20) '2.0'\n+1D0E1D Extract OS            00 (0) 'MS-DOS'\n+1D0E1E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D0E20 Compression Method    0000 (0) 'Stored'\n+1D0E22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D0E26 CRC                   00000000 (0)\n+1D0E2A Compressed Size       00000000 (0)\n+1D0E2E Uncompressed Size     00000000 (0)\n+1D0E32 Filename Length       004C (76)\n+1D0E34 Extra Length          0009 (9)\n+1D0E36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D0E36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D0E82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D0E84   Length              0005 (5)\n+1D0E86   Flags               01 (1) 'Modification'\n+1D0E87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D0E8B PAYLOAD\n+\n+1D13BB DATA DESCRIPTOR       08074B50 (134695760)\n+1D13BF CRC                   0C78A9F4 (209234420)\n+1D13C3 Compressed Size       00000530 (1328)\n+1D13C7 Uncompressed Size     00000530 (1328)\n+\n+1D13CB LOCAL HEADER #658     04034B50 (67324752)\n+1D13CF Extract Zip Spec      14 (20) '2.0'\n+1D13D0 Extract OS            00 (0) 'MS-DOS'\n+1D13D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D13D3 Compression Method    0000 (0) 'Stored'\n+1D13D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D13D9 CRC                   00000000 (0)\n+1D13DD Compressed Size       00000000 (0)\n+1D13E1 Uncompressed Size     00000000 (0)\n+1D13E5 Filename Length       004C (76)\n+1D13E7 Extra Length          0009 (9)\n+1D13E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D13E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D1435 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D1437   Length              0005 (5)\n+1D1439   Flags               01 (1) 'Modification'\n+1D143A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D143E PAYLOAD\n+\n+1D1998 DATA DESCRIPTOR       08074B50 (134695760)\n+1D199C CRC                   5D42735B (1564635995)\n+1D19A0 Compressed Size       0000055A (1370)\n+1D19A4 Uncompressed Size     0000055A (1370)\n+\n+1D19A8 LOCAL HEADER #659     04034B50 (67324752)\n+1D19AC Extract Zip Spec      14 (20) '2.0'\n+1D19AD Extract OS            00 (0) 'MS-DOS'\n+1D19AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D19B0 Compression Method    0000 (0) 'Stored'\n+1D19B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D19B6 CRC                   00000000 (0)\n+1D19BA Compressed Size       00000000 (0)\n+1D19BE Uncompressed Size     00000000 (0)\n+1D19C2 Filename Length       0049 (73)\n+1D19C4 Extra Length          0009 (9)\n+1D19C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D19C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D1A0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D1A11   Length              0005 (5)\n+1D1A13   Flags               01 (1) 'Modification'\n+1D1A14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D1A18 PAYLOAD\n+\n+1D1F0F DATA DESCRIPTOR       08074B50 (134695760)\n+1D1F13 CRC                   FE374BB9 (4265036729)\n+1D1F17 Compressed Size       000004F7 (1271)\n+1D1F1B Uncompressed Size     000004F7 (1271)\n+\n+1D1F1F LOCAL HEADER #660     04034B50 (67324752)\n+1D1F23 Extract Zip Spec      14 (20) '2.0'\n+1D1F24 Extract OS            00 (0) 'MS-DOS'\n+1D1F25 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D1F27 Compression Method    0000 (0) 'Stored'\n+1D1F29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D1F2D CRC                   00000000 (0)\n+1D1F31 Compressed Size       00000000 (0)\n+1D1F35 Uncompressed Size     00000000 (0)\n+1D1F39 Filename Length       0044 (68)\n+1D1F3B Extra Length          0009 (9)\n+1D1F3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D1F3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D1F81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D1F83   Length              0005 (5)\n+1D1F85   Flags               01 (1) 'Modification'\n+1D1F86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D1F8A PAYLOAD\n+\n+1D246A DATA DESCRIPTOR       08074B50 (134695760)\n+1D246E CRC                   EF9E0DDB (4020112859)\n+1D2472 Compressed Size       000004E0 (1248)\n+1D2476 Uncompressed Size     000004E0 (1248)\n+\n+1D247A LOCAL HEADER #661     04034B50 (67324752)\n+1D247E Extract Zip Spec      14 (20) '2.0'\n+1D247F Extract OS            00 (0) 'MS-DOS'\n+1D2480 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D2482 Compression Method    0000 (0) 'Stored'\n+1D2484 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D2488 CRC                   00000000 (0)\n+1D248C Compressed Size       00000000 (0)\n+1D2490 Uncompressed Size     00000000 (0)\n+1D2494 Filename Length       0047 (71)\n+1D2496 Extra Length          0009 (9)\n+1D2498 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D2498: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D24DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D24E1   Length              0005 (5)\n+1D24E3   Flags               01 (1) 'Modification'\n+1D24E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D24E8 PAYLOAD\n+\n+1D315A DATA DESCRIPTOR       08074B50 (134695760)\n+1D315E CRC                   65FB8949 (1710983497)\n+1D3162 Compressed Size       00000C72 (3186)\n+1D3166 Uncompressed Size     00000C72 (3186)\n+\n+1D316A LOCAL HEADER #662     04034B50 (67324752)\n+1D316E Extract Zip Spec      14 (20) '2.0'\n+1D316F Extract OS            00 (0) 'MS-DOS'\n+1D3170 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D3172 Compression Method    0000 (0) 'Stored'\n+1D3174 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D3178 CRC                   00000000 (0)\n+1D317C Compressed Size       00000000 (0)\n+1D3180 Uncompressed Size     00000000 (0)\n+1D3184 Filename Length       0043 (67)\n+1D3186 Extra Length          0009 (9)\n+1D3188 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D3188: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D31CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D31CD   Length              0005 (5)\n+1D31CF   Flags               01 (1) 'Modification'\n+1D31D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D31D4 PAYLOAD\n+\n+1D36AD DATA DESCRIPTOR       08074B50 (134695760)\n+1D36B1 CRC                   CC224977 (3424799095)\n+1D36B5 Compressed Size       000004D9 (1241)\n+1D36B9 Uncompressed Size     000004D9 (1241)\n+\n+1D36BD LOCAL HEADER #663     04034B50 (67324752)\n+1D36C1 Extract Zip Spec      14 (20) '2.0'\n+1D36C2 Extract OS            00 (0) 'MS-DOS'\n+1D36C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D36C5 Compression Method    0000 (0) 'Stored'\n+1D36C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D36CB CRC                   00000000 (0)\n+1D36CF Compressed Size       00000000 (0)\n+1D36D3 Uncompressed Size     00000000 (0)\n+1D36D7 Filename Length       0049 (73)\n+1D36D9 Extra Length          0009 (9)\n+1D36DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D36DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D3724 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D3726   Length              0005 (5)\n+1D3728   Flags               01 (1) 'Modification'\n+1D3729   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D372D PAYLOAD\n+\n+1D3FDD DATA DESCRIPTOR       08074B50 (134695760)\n+1D3FE1 CRC                   38CBB90F (952875279)\n+1D3FE5 Compressed Size       000008B0 (2224)\n+1D3FE9 Uncompressed Size     000008B0 (2224)\n+\n+1D3FED LOCAL HEADER #664     04034B50 (67324752)\n+1D3FF1 Extract Zip Spec      14 (20) '2.0'\n+1D3FF2 Extract OS            00 (0) 'MS-DOS'\n+1D3FF3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D3FF5 Compression Method    0000 (0) 'Stored'\n+1D3FF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D3FFB CRC                   00000000 (0)\n+1D3FFF Compressed Size       00000000 (0)\n+1D4003 Uncompressed Size     00000000 (0)\n+1D4007 Filename Length       004B (75)\n+1D4009 Extra Length          0009 (9)\n+1D400B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D400B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D4056 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D4058   Length              0005 (5)\n+1D405A   Flags               01 (1) 'Modification'\n+1D405B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D405F PAYLOAD\n+\n+1D4572 DATA DESCRIPTOR       08074B50 (134695760)\n+1D4576 CRC                   F0075F17 (4027014935)\n+1D457A Compressed Size       00000513 (1299)\n+1D457E Uncompressed Size     00000513 (1299)\n+\n+1D4582 LOCAL HEADER #665     04034B50 (67324752)\n+1D4586 Extract Zip Spec      14 (20) '2.0'\n+1D4587 Extract OS            00 (0) 'MS-DOS'\n+1D4588 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D458A Compression Method    0000 (0) 'Stored'\n+1D458C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D4590 CRC                   00000000 (0)\n+1D4594 Compressed Size       00000000 (0)\n+1D4598 Uncompressed Size     00000000 (0)\n+1D459C Filename Length       0044 (68)\n+1D459E Extra Length          0009 (9)\n+1D45A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D45A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D45E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D45E6   Length              0005 (5)\n+1D45E8   Flags               01 (1) 'Modification'\n+1D45E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D45ED PAYLOAD\n+\n+1D4AE6 DATA DESCRIPTOR       08074B50 (134695760)\n+1D4AEA CRC                   42E91C9D (1122573469)\n+1D4AEE Compressed Size       000004F9 (1273)\n+1D4AF2 Uncompressed Size     000004F9 (1273)\n+\n+1D4AF6 LOCAL HEADER #666     04034B50 (67324752)\n+1D4AFA Extract Zip Spec      14 (20) '2.0'\n+1D4AFB Extract OS            00 (0) 'MS-DOS'\n+1D4AFC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D4AFE Compression Method    0000 (0) 'Stored'\n+1D4B00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D4B04 CRC                   00000000 (0)\n+1D4B08 Compressed Size       00000000 (0)\n+1D4B0C Uncompressed Size     00000000 (0)\n+1D4B10 Filename Length       0042 (66)\n+1D4B12 Extra Length          0009 (9)\n+1D4B14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D4B14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D4B56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D4B58   Length              0005 (5)\n+1D4B5A   Flags               01 (1) 'Modification'\n+1D4B5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D4B5F PAYLOAD\n+\n+1D502F DATA DESCRIPTOR       08074B50 (134695760)\n+1D5033 CRC                   85A11C0C (2241928204)\n+1D5037 Compressed Size       000004D0 (1232)\n+1D503B Uncompressed Size     000004D0 (1232)\n+\n+1D503F LOCAL HEADER #667     04034B50 (67324752)\n+1D5043 Extract Zip Spec      14 (20) '2.0'\n+1D5044 Extract OS            00 (0) 'MS-DOS'\n+1D5045 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D5047 Compression Method    0000 (0) 'Stored'\n+1D5049 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D504D CRC                   00000000 (0)\n+1D5051 Compressed Size       00000000 (0)\n+1D5055 Uncompressed Size     00000000 (0)\n+1D5059 Filename Length       0048 (72)\n+1D505B Extra Length          0009 (9)\n+1D505D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D505D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D50A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D50A7   Length              0005 (5)\n+1D50A9   Flags               01 (1) 'Modification'\n+1D50AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D50AE PAYLOAD\n+\n+1D5598 DATA DESCRIPTOR       08074B50 (134695760)\n+1D559C CRC                   667CA259 (1719444057)\n+1D55A0 Compressed Size       000004EA (1258)\n+1D55A4 Uncompressed Size     000004EA (1258)\n+\n+1D55A8 LOCAL HEADER #668     04034B50 (67324752)\n+1D55AC Extract Zip Spec      14 (20) '2.0'\n+1D55AD Extract OS            00 (0) 'MS-DOS'\n+1D55AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D55B0 Compression Method    0000 (0) 'Stored'\n+1D55B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D55B6 CRC                   00000000 (0)\n+1D55BA Compressed Size       00000000 (0)\n+1D55BE Uncompressed Size     00000000 (0)\n+1D55C2 Filename Length       004C (76)\n+1D55C4 Extra Length          0009 (9)\n+1D55C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D55C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D5612 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D5614   Length              0005 (5)\n+1D5616   Flags               01 (1) 'Modification'\n+1D5617   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D561B PAYLOAD\n+\n+1D5B47 DATA DESCRIPTOR       08074B50 (134695760)\n+1D5B4B CRC                   4E4FEF3B (1313861435)\n+1D5B4F Compressed Size       0000052C (1324)\n+1D5B53 Uncompressed Size     0000052C (1324)\n+\n+1D5B57 LOCAL HEADER #669     04034B50 (67324752)\n+1D5B5B Extract Zip Spec      14 (20) '2.0'\n+1D5B5C Extract OS            00 (0) 'MS-DOS'\n+1D5B5D General Purpose Flag  0000 (0)\n+1D5B5F Compression Method    0000 (0) 'Stored'\n+1D5B61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D5B65 CRC                   00000000 (0)\n+1D5B69 Compressed Size       00000000 (0)\n+1D5B6D Uncompressed Size     00000000 (0)\n+1D5B71 Filename Length       0022 (34)\n+1D5B73 Extra Length          0009 (9)\n+1D5B75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D5B75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D5B97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D5B99   Length              0005 (5)\n+1D5B9B   Flags               01 (1) 'Modification'\n+1D5B9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1D5BA0 LOCAL HEADER #670     04034B50 (67324752)\n+1D5BA4 Extract Zip Spec      14 (20) '2.0'\n+1D5BA5 Extract OS            00 (0) 'MS-DOS'\n+1D5BA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D5BA8 Compression Method    0000 (0) 'Stored'\n+1D5BAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D5BAE CRC                   00000000 (0)\n+1D5BB2 Compressed Size       00000000 (0)\n+1D5BB6 Uncompressed Size     00000000 (0)\n+1D5BBA Filename Length       002F (47)\n+1D5BBC Extra Length          0009 (9)\n+1D5BBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D5BBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D5BED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D5BEF   Length              0005 (5)\n+1D5BF1   Flags               01 (1) 'Modification'\n+1D5BF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D5BF6 PAYLOAD\n+\n+1D6970 DATA DESCRIPTOR       08074B50 (134695760)\n+1D6974 CRC                   9A2D2058 (2586648664)\n+1D6978 Compressed Size       00000D7A (3450)\n+1D697C Uncompressed Size     00000D7A (3450)\n+\n+1D6980 LOCAL HEADER #671     04034B50 (67324752)\n+1D6984 Extract Zip Spec      14 (20) '2.0'\n+1D6985 Extract OS            00 (0) 'MS-DOS'\n+1D6986 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D6988 Compression Method    0000 (0) 'Stored'\n+1D698A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D698E CRC                   00000000 (0)\n+1D6992 Compressed Size       00000000 (0)\n+1D6996 Uncompressed Size     00000000 (0)\n+1D699A Filename Length       002F (47)\n+1D699C Extra Length          0009 (9)\n+1D699E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D699E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D69CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D69CF   Length              0005 (5)\n+1D69D1   Flags               01 (1) 'Modification'\n+1D69D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D69D6 PAYLOAD\n+\n+1D7458 DATA DESCRIPTOR       08074B50 (134695760)\n+1D745C CRC                   8FD49BC2 (2413075394)\n+1D7460 Compressed Size       00000A82 (2690)\n+1D7464 Uncompressed Size     00000A82 (2690)\n+\n+1D7468 LOCAL HEADER #672     04034B50 (67324752)\n+1D746C Extract Zip Spec      14 (20) '2.0'\n+1D746D Extract OS            00 (0) 'MS-DOS'\n+1D746E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1D7470 Compression Method    0000 (0) 'Stored'\n+1D7472 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1D7476 CRC                   00000000 (0)\n+1D747A Compressed Size       00000000 (0)\n+1D747E Uncompressed Size     00000000 (0)\n+1D7482 Filename Length       0041 (65)\n+1D7484 Extra Length          0009 (9)\n+1D7486 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1D7486: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1D74C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1D74C9   Length              0005 (5)\n+1D74CB   Flags               01 (1) 'Modification'\n+1D74CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1D74D0 PAYLOAD\n+\n+1DB263 DATA DESCRIPTOR       08074B50 (134695760)\n+1DB267 CRC                   DFC97490 (3754521744)\n+1DB26B Compressed Size       00003D93 (15763)\n+1DB26F Uncompressed Size     00003D93 (15763)\n+\n+1DB273 LOCAL HEADER #673     04034B50 (67324752)\n+1DB277 Extract Zip Spec      14 (20) '2.0'\n+1DB278 Extract OS            00 (0) 'MS-DOS'\n+1DB279 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1DB27B Compression Method    0000 (0) 'Stored'\n+1DB27D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DB281 CRC                   00000000 (0)\n+1DB285 Compressed Size       00000000 (0)\n+1DB289 Uncompressed Size     00000000 (0)\n+1DB28D Filename Length       0034 (52)\n+1DB28F Extra Length          0009 (9)\n+1DB291 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DB291: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DB2C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DB2C7   Length              0005 (5)\n+1DB2C9   Flags               01 (1) 'Modification'\n+1DB2CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DB2CE PAYLOAD\n+\n+1DB787 DATA DESCRIPTOR       08074B50 (134695760)\n+1DB78B CRC                   D1BB774A (3518723914)\n+1DB78F Compressed Size       000004B9 (1209)\n+1DB793 Uncompressed Size     000004B9 (1209)\n+\n+1DB797 LOCAL HEADER #674     04034B50 (67324752)\n+1DB79B Extract Zip Spec      14 (20) '2.0'\n+1DB79C Extract OS            00 (0) 'MS-DOS'\n+1DB79D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1DB79F Compression Method    0000 (0) 'Stored'\n+1DB7A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DB7A5 CRC                   00000000 (0)\n+1DB7A9 Compressed Size       00000000 (0)\n+1DB7AD Uncompressed Size     00000000 (0)\n+1DB7B1 Filename Length       0043 (67)\n+1DB7B3 Extra Length          0009 (9)\n+1DB7B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DB7B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DB7F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DB7FA   Length              0005 (5)\n+1DB7FC   Flags               01 (1) 'Modification'\n+1DB7FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DB801 PAYLOAD\n+\n+1DBCB1 DATA DESCRIPTOR       08074B50 (134695760)\n+1DBCB5 CRC                   B3A8C3FA (3014181882)\n+1DBCB9 Compressed Size       000004B0 (1200)\n+1DBCBD Uncompressed Size     000004B0 (1200)\n+\n+1DBCC1 LOCAL HEADER #675     04034B50 (67324752)\n+1DBCC5 Extract Zip Spec      14 (20) '2.0'\n+1DBCC6 Extract OS            00 (0) 'MS-DOS'\n+1DBCC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1DBCC9 Compression Method    0000 (0) 'Stored'\n+1DBCCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DBCCF CRC                   00000000 (0)\n+1DBCD3 Compressed Size       00000000 (0)\n+1DBCD7 Uncompressed Size     00000000 (0)\n+1DBCDB Filename Length       003B (59)\n+1DBCDD Extra Length          0009 (9)\n+1DBCDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DBCDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DBD1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DBD1C   Length              0005 (5)\n+1DBD1E   Flags               01 (1) 'Modification'\n+1DBD1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DBD23 PAYLOAD\n+\n+1DC211 DATA DESCRIPTOR       08074B50 (134695760)\n+1DC215 CRC                   663E77E4 (1715369956)\n+1DC219 Compressed Size       000004EE (1262)\n+1DC21D Uncompressed Size     000004EE (1262)\n+\n+1DC221 LOCAL HEADER #676     04034B50 (67324752)\n+1DC225 Extract Zip Spec      14 (20) '2.0'\n+1DC226 Extract OS            00 (0) 'MS-DOS'\n+1DC227 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1DC229 Compression Method    0000 (0) 'Stored'\n+1DC22B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DC22F CRC                   00000000 (0)\n+1DC233 Compressed Size       00000000 (0)\n+1DC237 Uncompressed Size     00000000 (0)\n+1DC23B Filename Length       0037 (55)\n+1DC23D Extra Length          0009 (9)\n+1DC23F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DC23F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DC276 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DC278   Length              0005 (5)\n+1DC27A   Flags               01 (1) 'Modification'\n+1DC27B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DC27F PAYLOAD\n+\n+1DC6F9 DATA DESCRIPTOR       08074B50 (134695760)\n+1DC6FD CRC                   4C849D6C (1283759468)\n+1DC701 Compressed Size       0000047A (1146)\n+1DC705 Uncompressed Size     0000047A (1146)\n+\n+1DC709 LOCAL HEADER #677     04034B50 (67324752)\n+1DC70D Extract Zip Spec      14 (20) '2.0'\n+1DC70E Extract OS            00 (0) 'MS-DOS'\n+1DC70F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1DC711 Compression Method    0000 (0) 'Stored'\n+1DC713 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1DC717 CRC                   00000000 (0)\n+1DC71B Compressed Size       00000000 (0)\n+1DC71F Uncompressed Size     00000000 (0)\n+1DC723 Filename Length       0036 (54)\n+1DC725 Extra Length          0009 (9)\n+1DC727 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1DC727: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1DC75D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1DC75F   Length              0005 (5)\n+1DC761   Flags               01 (1) 'Modification'\n+1DC762   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1DC766 PAYLOAD\n+\n+1E686C DATA DESCRIPTOR       08074B50 (134695760)\n+1E6870 CRC                   1F091D5A (520691034)\n+1E6874 Compressed Size       0000A106 (41222)\n+1E6878 Uncompressed Size     0000A106 (41222)\n+\n+1E687C LOCAL HEADER #678     04034B50 (67324752)\n+1E6880 Extract Zip Spec      14 (20) '2.0'\n+1E6881 Extract OS            00 (0) 'MS-DOS'\n+1E6882 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E6884 Compression Method    0000 (0) 'Stored'\n+1E6886 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E688A CRC                   00000000 (0)\n+1E688E Compressed Size       00000000 (0)\n+1E6892 Uncompressed Size     00000000 (0)\n+1E6896 Filename Length       0036 (54)\n+1E6898 Extra Length          0009 (9)\n+1E689A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E689A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E68D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E68D2   Length              0005 (5)\n+1E68D4   Flags               01 (1) 'Modification'\n+1E68D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E68D9 PAYLOAD\n+\n+1E6E91 DATA DESCRIPTOR       08074B50 (134695760)\n+1E6E95 CRC                   BC70E4F4 (3161515252)\n+1E6E99 Compressed Size       000005B8 (1464)\n+1E6E9D Uncompressed Size     000005B8 (1464)\n+\n+1E6EA1 LOCAL HEADER #679     04034B50 (67324752)\n+1E6EA5 Extract Zip Spec      14 (20) '2.0'\n+1E6EA6 Extract OS            00 (0) 'MS-DOS'\n+1E6EA7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E6EA9 Compression Method    0000 (0) 'Stored'\n+1E6EAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E6EAF CRC                   00000000 (0)\n+1E6EB3 Compressed Size       00000000 (0)\n+1E6EB7 Uncompressed Size     00000000 (0)\n+1E6EBB Filename Length       002A (42)\n+1E6EBD Extra Length          0009 (9)\n+1E6EBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E6EBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E6EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E6EEB   Length              0005 (5)\n+1E6EED   Flags               01 (1) 'Modification'\n+1E6EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E6EF2 PAYLOAD\n+\n+1E7824 DATA DESCRIPTOR       08074B50 (134695760)\n+1E7828 CRC                   48D76DDD (1222077917)\n+1E782C Compressed Size       00000932 (2354)\n+1E7830 Uncompressed Size     00000932 (2354)\n+\n+1E7834 LOCAL HEADER #680     04034B50 (67324752)\n+1E7838 Extract Zip Spec      14 (20) '2.0'\n+1E7839 Extract OS            00 (0) 'MS-DOS'\n+1E783A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E783C Compression Method    0000 (0) 'Stored'\n+1E783E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E7842 CRC                   00000000 (0)\n+1E7846 Compressed Size       00000000 (0)\n+1E784A Uncompressed Size     00000000 (0)\n+1E784E Filename Length       003E (62)\n+1E7850 Extra Length          0009 (9)\n+1E7852 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E7852: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E7890 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E7892   Length              0005 (5)\n+1E7894   Flags               01 (1) 'Modification'\n+1E7895   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E7899 PAYLOAD\n+\n+1E7D8B DATA DESCRIPTOR       08074B50 (134695760)\n+1E7D8F CRC                   8DAF0532 (2377057586)\n+1E7D93 Compressed Size       000004F2 (1266)\n+1E7D97 Uncompressed Size     000004F2 (1266)\n+\n+1E7D9B LOCAL HEADER #681     04034B50 (67324752)\n+1E7D9F Extract Zip Spec      14 (20) '2.0'\n+1E7DA0 Extract OS            00 (0) 'MS-DOS'\n+1E7DA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E7DA3 Compression Method    0000 (0) 'Stored'\n+1E7DA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E7DA9 CRC                   00000000 (0)\n+1E7DAD Compressed Size       00000000 (0)\n+1E7DB1 Uncompressed Size     00000000 (0)\n+1E7DB5 Filename Length       002E (46)\n+1E7DB7 Extra Length          0009 (9)\n+1E7DB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E7DB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E7DE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E7DE9   Length              0005 (5)\n+1E7DEB   Flags               01 (1) 'Modification'\n+1E7DEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E7DF0 PAYLOAD\n+\n+1E8325 DATA DESCRIPTOR       08074B50 (134695760)\n+1E8329 CRC                   5CF3A6C0 (1559471808)\n+1E832D Compressed Size       00000535 (1333)\n+1E8331 Uncompressed Size     00000535 (1333)\n+\n+1E8335 LOCAL HEADER #682     04034B50 (67324752)\n+1E8339 Extract Zip Spec      14 (20) '2.0'\n+1E833A Extract OS            00 (0) 'MS-DOS'\n+1E833B General Purpose Flag  0000 (0)\n+1E833D Compression Method    0000 (0) 'Stored'\n+1E833F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E8343 CRC                   00000000 (0)\n+1E8347 Compressed Size       00000000 (0)\n+1E834B Uncompressed Size     00000000 (0)\n+1E834F Filename Length       002A (42)\n+1E8351 Extra Length          0009 (9)\n+1E8353 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E8353: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E837D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E837F   Length              0005 (5)\n+1E8381   Flags               01 (1) 'Modification'\n+1E8382   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1E8386 LOCAL HEADER #683     04034B50 (67324752)\n+1E838A Extract Zip Spec      14 (20) '2.0'\n+1E838B Extract OS            00 (0) 'MS-DOS'\n+1E838C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E838E Compression Method    0000 (0) 'Stored'\n+1E8390 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E8394 CRC                   00000000 (0)\n+1E8398 Compressed Size       00000000 (0)\n+1E839C Uncompressed Size     00000000 (0)\n+1E83A0 Filename Length       0047 (71)\n+1E83A2 Extra Length          0009 (9)\n+1E83A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E83A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E83EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E83ED   Length              0005 (5)\n+1E83EF   Flags               01 (1) 'Modification'\n+1E83F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E83F4 PAYLOAD\n+\n+1E8BF4 DATA DESCRIPTOR       08074B50 (134695760)\n+1E8BF8 CRC                   EA8B59C6 (3935001030)\n+1E8BFC Compressed Size       00000800 (2048)\n+1E8C00 Uncompressed Size     00000800 (2048)\n+\n+1E8C04 LOCAL HEADER #684     04034B50 (67324752)\n+1E8C08 Extract Zip Spec      14 (20) '2.0'\n+1E8C09 Extract OS            00 (0) 'MS-DOS'\n+1E8C0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E8C0C Compression Method    0000 (0) 'Stored'\n+1E8C0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E8C12 CRC                   00000000 (0)\n+1E8C16 Compressed Size       00000000 (0)\n+1E8C1A Uncompressed Size     00000000 (0)\n+1E8C1E Filename Length       0042 (66)\n+1E8C20 Extra Length          0009 (9)\n+1E8C22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E8C22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E8C64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E8C66   Length              0005 (5)\n+1E8C68   Flags               01 (1) 'Modification'\n+1E8C69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E8C6D PAYLOAD\n+\n+1E927C DATA DESCRIPTOR       08074B50 (134695760)\n+1E9280 CRC                   3280412A (847266090)\n+1E9284 Compressed Size       0000060F (1551)\n+1E9288 Uncompressed Size     0000060F (1551)\n+\n+1E928C LOCAL HEADER #685     04034B50 (67324752)\n+1E9290 Extract Zip Spec      14 (20) '2.0'\n+1E9291 Extract OS            00 (0) 'MS-DOS'\n+1E9292 General Purpose Flag  0000 (0)\n+1E9294 Compression Method    0000 (0) 'Stored'\n+1E9296 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E929A CRC                   00000000 (0)\n+1E929E Compressed Size       00000000 (0)\n+1E92A2 Uncompressed Size     00000000 (0)\n+1E92A6 Filename Length       002A (42)\n+1E92A8 Extra Length          0009 (9)\n+1E92AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E92AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E92D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E92D6   Length              0005 (5)\n+1E92D8   Flags               01 (1) 'Modification'\n+1E92D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1E92DD LOCAL HEADER #686     04034B50 (67324752)\n+1E92E1 Extract Zip Spec      14 (20) '2.0'\n+1E92E2 Extract OS            00 (0) 'MS-DOS'\n+1E92E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1E92E5 Compression Method    0000 (0) 'Stored'\n+1E92E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1E92EB CRC                   00000000 (0)\n+1E92EF Compressed Size       00000000 (0)\n+1E92F3 Uncompressed Size     00000000 (0)\n+1E92F7 Filename Length       0041 (65)\n+1E92F9 Extra Length          0009 (9)\n+1E92FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1E92FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1E933C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1E933E   Length              0005 (5)\n+1E9340   Flags               01 (1) 'Modification'\n+1E9341   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1E9345 PAYLOAD\n+\n+1EA519 DATA DESCRIPTOR       08074B50 (134695760)\n+1EA51D CRC                   B81BB8E1 (3088824545)\n+1EA521 Compressed Size       000011D4 (4564)\n+1EA525 Uncompressed Size     000011D4 (4564)\n+\n+1EA529 LOCAL HEADER #687     04034B50 (67324752)\n+1EA52D Extract Zip Spec      14 (20) '2.0'\n+1EA52E Extract OS            00 (0) 'MS-DOS'\n+1EA52F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EA531 Compression Method    0000 (0) 'Stored'\n+1EA533 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EA537 CRC                   00000000 (0)\n+1EA53B Compressed Size       00000000 (0)\n+1EA53F Uncompressed Size     00000000 (0)\n+1EA543 Filename Length       0040 (64)\n+1EA545 Extra Length          0009 (9)\n+1EA547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EA547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EA587 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EA589   Length              0005 (5)\n+1EA58B   Flags               01 (1) 'Modification'\n+1EA58C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EA590 PAYLOAD\n+\n+1EB1E8 DATA DESCRIPTOR       08074B50 (134695760)\n+1EB1EC CRC                   1FF4288F (536094863)\n+1EB1F0 Compressed Size       00000C58 (3160)\n+1EB1F4 Uncompressed Size     00000C58 (3160)\n+\n+1EB1F8 LOCAL HEADER #688     04034B50 (67324752)\n+1EB1FC Extract Zip Spec      14 (20) '2.0'\n+1EB1FD Extract OS            00 (0) 'MS-DOS'\n+1EB1FE General Purpose Flag  0000 (0)\n+1EB200 Compression Method    0000 (0) 'Stored'\n+1EB202 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EB206 CRC                   00000000 (0)\n+1EB20A Compressed Size       00000000 (0)\n+1EB20E Uncompressed Size     00000000 (0)\n+1EB212 Filename Length       0021 (33)\n+1EB214 Extra Length          0009 (9)\n+1EB216 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EB216: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EB237 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EB239   Length              0005 (5)\n+1EB23B   Flags               01 (1) 'Modification'\n+1EB23C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1EB240 LOCAL HEADER #689     04034B50 (67324752)\n+1EB244 Extract Zip Spec      14 (20) '2.0'\n+1EB245 Extract OS            00 (0) 'MS-DOS'\n+1EB246 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EB248 Compression Method    0000 (0) 'Stored'\n+1EB24A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EB24E CRC                   00000000 (0)\n+1EB252 Compressed Size       00000000 (0)\n+1EB256 Uncompressed Size     00000000 (0)\n+1EB25A Filename Length       0030 (48)\n+1EB25C Extra Length          0009 (9)\n+1EB25E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EB25E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EB28E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EB290   Length              0005 (5)\n+1EB292   Flags               01 (1) 'Modification'\n+1EB293   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EB297 PAYLOAD\n+\n+1EBC06 DATA DESCRIPTOR       08074B50 (134695760)\n+1EBC0A CRC                   C191912C (3247542572)\n+1EBC0E Compressed Size       0000096F (2415)\n+1EBC12 Uncompressed Size     0000096F (2415)\n+\n+1EBC16 LOCAL HEADER #690     04034B50 (67324752)\n+1EBC1A Extract Zip Spec      14 (20) '2.0'\n+1EBC1B Extract OS            00 (0) 'MS-DOS'\n+1EBC1C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EBC1E Compression Method    0000 (0) 'Stored'\n+1EBC20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EBC24 CRC                   00000000 (0)\n+1EBC28 Compressed Size       00000000 (0)\n+1EBC2C Uncompressed Size     00000000 (0)\n+1EBC30 Filename Length       002D (45)\n+1EBC32 Extra Length          0009 (9)\n+1EBC34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EBC34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EBC61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EBC63   Length              0005 (5)\n+1EBC65   Flags               01 (1) 'Modification'\n+1EBC66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EBC6A PAYLOAD\n+\n+1EC72C DATA DESCRIPTOR       08074B50 (134695760)\n+1EC730 CRC                   B9F68231 (3119940145)\n+1EC734 Compressed Size       00000AC2 (2754)\n+1EC738 Uncompressed Size     00000AC2 (2754)\n+\n+1EC73C LOCAL HEADER #691     04034B50 (67324752)\n+1EC740 Extract Zip Spec      14 (20) '2.0'\n+1EC741 Extract OS            00 (0) 'MS-DOS'\n+1EC742 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EC744 Compression Method    0000 (0) 'Stored'\n+1EC746 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EC74A CRC                   00000000 (0)\n+1EC74E Compressed Size       00000000 (0)\n+1EC752 Uncompressed Size     00000000 (0)\n+1EC756 Filename Length       0035 (53)\n+1EC758 Extra Length          0009 (9)\n+1EC75A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EC75A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EC78F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EC791   Length              0005 (5)\n+1EC793   Flags               01 (1) 'Modification'\n+1EC794   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EC798 PAYLOAD\n+\n+1ECE03 DATA DESCRIPTOR       08074B50 (134695760)\n+1ECE07 CRC                   9A0865B9 (2584241593)\n+1ECE0B Compressed Size       0000066B (1643)\n+1ECE0F Uncompressed Size     0000066B (1643)\n+\n+1ECE13 LOCAL HEADER #692     04034B50 (67324752)\n+1ECE17 Extract Zip Spec      14 (20) '2.0'\n+1ECE18 Extract OS            00 (0) 'MS-DOS'\n+1ECE19 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1ECE1B Compression Method    0000 (0) 'Stored'\n+1ECE1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1ECE21 CRC                   00000000 (0)\n+1ECE25 Compressed Size       00000000 (0)\n+1ECE29 Uncompressed Size     00000000 (0)\n+1ECE2D Filename Length       0037 (55)\n+1ECE2F Extra Length          0009 (9)\n+1ECE31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1ECE31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1ECE68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1ECE6A   Length              0005 (5)\n+1ECE6C   Flags               01 (1) 'Modification'\n+1ECE6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1ECE71 PAYLOAD\n+\n+1ED6A3 DATA DESCRIPTOR       08074B50 (134695760)\n+1ED6A7 CRC                   5F2ADB9F (1596644255)\n+1ED6AB Compressed Size       00000832 (2098)\n+1ED6AF Uncompressed Size     00000832 (2098)\n+\n+1ED6B3 LOCAL HEADER #693     04034B50 (67324752)\n+1ED6B7 Extract Zip Spec      14 (20) '2.0'\n+1ED6B8 Extract OS            00 (0) 'MS-DOS'\n+1ED6B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1ED6BB Compression Method    0000 (0) 'Stored'\n+1ED6BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1ED6C1 CRC                   00000000 (0)\n+1ED6C5 Compressed Size       00000000 (0)\n+1ED6C9 Uncompressed Size     00000000 (0)\n+1ED6CD Filename Length       0037 (55)\n+1ED6CF Extra Length          0009 (9)\n+1ED6D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1ED6D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1ED708 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1ED70A   Length              0005 (5)\n+1ED70C   Flags               01 (1) 'Modification'\n+1ED70D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1ED711 PAYLOAD\n+\n+1EDFDD DATA DESCRIPTOR       08074B50 (134695760)\n+1EDFE1 CRC                   4D1AEB96 (1293609878)\n+1EDFE5 Compressed Size       000008CC (2252)\n+1EDFE9 Uncompressed Size     000008CC (2252)\n+\n+1EDFED LOCAL HEADER #694     04034B50 (67324752)\n+1EDFF1 Extract Zip Spec      14 (20) '2.0'\n+1EDFF2 Extract OS            00 (0) 'MS-DOS'\n+1EDFF3 General Purpose Flag  0000 (0)\n+1EDFF5 Compression Method    0000 (0) 'Stored'\n+1EDFF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EDFFB CRC                   00000000 (0)\n+1EDFFF Compressed Size       00000000 (0)\n+1EE003 Uncompressed Size     00000000 (0)\n+1EE007 Filename Length       001E (30)\n+1EE009 Extra Length          0009 (9)\n+1EE00B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EE00B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EE029 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EE02B   Length              0005 (5)\n+1EE02D   Flags               01 (1) 'Modification'\n+1EE02E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1EE032 LOCAL HEADER #695     04034B50 (67324752)\n+1EE036 Extract Zip Spec      14 (20) '2.0'\n+1EE037 Extract OS            00 (0) 'MS-DOS'\n+1EE038 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EE03A Compression Method    0000 (0) 'Stored'\n+1EE03C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EE040 CRC                   00000000 (0)\n+1EE044 Compressed Size       00000000 (0)\n+1EE048 Uncompressed Size     00000000 (0)\n+1EE04C Filename Length       002F (47)\n+1EE04E Extra Length          0009 (9)\n+1EE050 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EE050: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EE07F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EE081   Length              0005 (5)\n+1EE083   Flags               01 (1) 'Modification'\n+1EE084   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EE088 PAYLOAD\n+\n+1EE6CF DATA DESCRIPTOR       08074B50 (134695760)\n+1EE6D3 CRC                   D1400D79 (3510635897)\n+1EE6D7 Compressed Size       00000647 (1607)\n+1EE6DB Uncompressed Size     00000647 (1607)\n+\n+1EE6DF LOCAL HEADER #696     04034B50 (67324752)\n+1EE6E3 Extract Zip Spec      14 (20) '2.0'\n+1EE6E4 Extract OS            00 (0) 'MS-DOS'\n+1EE6E5 General Purpose Flag  0000 (0)\n+1EE6E7 Compression Method    0000 (0) 'Stored'\n+1EE6E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EE6ED CRC                   00000000 (0)\n+1EE6F1 Compressed Size       00000000 (0)\n+1EE6F5 Uncompressed Size     00000000 (0)\n+1EE6F9 Filename Length       0026 (38)\n+1EE6FB Extra Length          0009 (9)\n+1EE6FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EE6FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EE723 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EE725   Length              0005 (5)\n+1EE727   Flags               01 (1) 'Modification'\n+1EE728   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1EE72C LOCAL HEADER #697     04034B50 (67324752)\n+1EE730 Extract Zip Spec      14 (20) '2.0'\n+1EE731 Extract OS            00 (0) 'MS-DOS'\n+1EE732 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EE734 Compression Method    0000 (0) 'Stored'\n+1EE736 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EE73A CRC                   00000000 (0)\n+1EE73E Compressed Size       00000000 (0)\n+1EE742 Uncompressed Size     00000000 (0)\n+1EE746 Filename Length       0036 (54)\n+1EE748 Extra Length          0009 (9)\n+1EE74A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EE74A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EE780 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EE782   Length              0005 (5)\n+1EE784   Flags               01 (1) 'Modification'\n+1EE785   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EE789 PAYLOAD\n+\n+1EECB4 DATA DESCRIPTOR       08074B50 (134695760)\n+1EECB8 CRC                   4A87D325 (1250415397)\n+1EECBC Compressed Size       0000052B (1323)\n+1EECC0 Uncompressed Size     0000052B (1323)\n+\n+1EECC4 LOCAL HEADER #698     04034B50 (67324752)\n+1EECC8 Extract Zip Spec      14 (20) '2.0'\n+1EECC9 Extract OS            00 (0) 'MS-DOS'\n+1EECCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EECCC Compression Method    0000 (0) 'Stored'\n+1EECCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EECD2 CRC                   00000000 (0)\n+1EECD6 Compressed Size       00000000 (0)\n+1EECDA Uncompressed Size     00000000 (0)\n+1EECDE Filename Length       003D (61)\n+1EECE0 Extra Length          0009 (9)\n+1EECE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EECE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EED1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EED21   Length              0005 (5)\n+1EED23   Flags               01 (1) 'Modification'\n+1EED24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EED28 PAYLOAD\n+\n+1EF8C5 DATA DESCRIPTOR       08074B50 (134695760)\n+1EF8C9 CRC                   382251E3 (941773283)\n+1EF8CD Compressed Size       00000B9D (2973)\n+1EF8D1 Uncompressed Size     00000B9D (2973)\n+\n+1EF8D5 LOCAL HEADER #699     04034B50 (67324752)\n+1EF8D9 Extract Zip Spec      14 (20) '2.0'\n+1EF8DA Extract OS            00 (0) 'MS-DOS'\n+1EF8DB General Purpose Flag  0000 (0)\n+1EF8DD Compression Method    0000 (0) 'Stored'\n+1EF8DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EF8E3 CRC                   00000000 (0)\n+1EF8E7 Compressed Size       00000000 (0)\n+1EF8EB Uncompressed Size     00000000 (0)\n+1EF8EF Filename Length       001B (27)\n+1EF8F1 Extra Length          0009 (9)\n+1EF8F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EF8F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EF90E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EF910   Length              0005 (5)\n+1EF912   Flags               01 (1) 'Modification'\n+1EF913   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1EF917 LOCAL HEADER #700     04034B50 (67324752)\n+1EF91B Extract Zip Spec      14 (20) '2.0'\n+1EF91C Extract OS            00 (0) 'MS-DOS'\n+1EF91D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1EF91F Compression Method    0000 (0) 'Stored'\n+1EF921 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1EF925 CRC                   00000000 (0)\n+1EF929 Compressed Size       00000000 (0)\n+1EF92D Uncompressed Size     00000000 (0)\n+1EF931 Filename Length       0025 (37)\n+1EF933 Extra Length          0009 (9)\n+1EF935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1EF935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1EF95A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1EF95C   Length              0005 (5)\n+1EF95E   Flags               01 (1) 'Modification'\n+1EF95F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1EF963 PAYLOAD\n+\n+1F6222 DATA DESCRIPTOR       08074B50 (134695760)\n+1F6226 CRC                   7D41B4B3 (2101458099)\n+1F622A Compressed Size       000068BF (26815)\n+1F622E Uncompressed Size     000068BF (26815)\n+\n+1F6232 LOCAL HEADER #701     04034B50 (67324752)\n+1F6236 Extract Zip Spec      14 (20) '2.0'\n+1F6237 Extract OS            00 (0) 'MS-DOS'\n+1F6238 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1F623A Compression Method    0000 (0) 'Stored'\n+1F623C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1F6240 CRC                   00000000 (0)\n+1F6244 Compressed Size       00000000 (0)\n+1F6248 Uncompressed Size     00000000 (0)\n+1F624C Filename Length       002B (43)\n+1F624E Extra Length          0009 (9)\n+1F6250 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1F6250: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1F627B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1F627D   Length              0005 (5)\n+1F627F   Flags               01 (1) 'Modification'\n+1F6280   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1F6284 PAYLOAD\n+\n+1F7E6D DATA DESCRIPTOR       08074B50 (134695760)\n+1F7E71 CRC                   D2FF4595 (3539944853)\n+1F7E75 Compressed Size       00001BE9 (7145)\n+1F7E79 Uncompressed Size     00001BE9 (7145)\n+\n+1F7E7D LOCAL HEADER #702     04034B50 (67324752)\n+1F7E81 Extract Zip Spec      14 (20) '2.0'\n+1F7E82 Extract OS            00 (0) 'MS-DOS'\n+1F7E83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1F7E85 Compression Method    0000 (0) 'Stored'\n+1F7E87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1F7E8B CRC                   00000000 (0)\n+1F7E8F Compressed Size       00000000 (0)\n+1F7E93 Uncompressed Size     00000000 (0)\n+1F7E97 Filename Length       003A (58)\n+1F7E99 Extra Length          0009 (9)\n+1F7E9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1F7E9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1F7ED5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1F7ED7   Length              0005 (5)\n+1F7ED9   Flags               01 (1) 'Modification'\n+1F7EDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1F7EDE PAYLOAD\n+\n+1F8B3F DATA DESCRIPTOR       08074B50 (134695760)\n+1F8B43 CRC                   D8BBACF0 (3636178160)\n+1F8B47 Compressed Size       00000C61 (3169)\n+1F8B4B Uncompressed Size     00000C61 (3169)\n+\n+1F8B4F LOCAL HEADER #703     04034B50 (67324752)\n+1F8B53 Extract Zip Spec      14 (20) '2.0'\n+1F8B54 Extract OS            00 (0) 'MS-DOS'\n+1F8B55 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1F8B57 Compression Method    0000 (0) 'Stored'\n+1F8B59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1F8B5D CRC                   00000000 (0)\n+1F8B61 Compressed Size       00000000 (0)\n+1F8B65 Uncompressed Size     00000000 (0)\n+1F8B69 Filename Length       003B (59)\n+1F8B6B Extra Length          0009 (9)\n+1F8B6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1F8B6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1F8BA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1F8BAA   Length              0005 (5)\n+1F8BAC   Flags               01 (1) 'Modification'\n+1F8BAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1F8BB1 PAYLOAD\n+\n+1F97A4 DATA DESCRIPTOR       08074B50 (134695760)\n+1F97A8 CRC                   DCFCECF5 (3707563253)\n+1F97AC Compressed Size       00000BF3 (3059)\n+1F97B0 Uncompressed Size     00000BF3 (3059)\n+\n+1F97B4 LOCAL HEADER #704     04034B50 (67324752)\n+1F97B8 Extract Zip Spec      14 (20) '2.0'\n+1F97B9 Extract OS            00 (0) 'MS-DOS'\n+1F97BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1F97BC Compression Method    0000 (0) 'Stored'\n+1F97BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1F97C2 CRC                   00000000 (0)\n+1F97C6 Compressed Size       00000000 (0)\n+1F97CA Uncompressed Size     00000000 (0)\n+1F97CE Filename Length       0032 (50)\n+1F97D0 Extra Length          0009 (9)\n+1F97D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1F97D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1F9804 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1F9806   Length              0005 (5)\n+1F9808   Flags               01 (1) 'Modification'\n+1F9809   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1F980D PAYLOAD\n+\n+1FA472 DATA DESCRIPTOR       08074B50 (134695760)\n+1FA476 CRC                   490F11E6 (1225724390)\n+1FA47A Compressed Size       00000C65 (3173)\n+1FA47E Uncompressed Size     00000C65 (3173)\n+\n+1FA482 LOCAL HEADER #705     04034B50 (67324752)\n+1FA486 Extract Zip Spec      14 (20) '2.0'\n+1FA487 Extract OS            00 (0) 'MS-DOS'\n+1FA488 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1FA48A Compression Method    0000 (0) 'Stored'\n+1FA48C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FA490 CRC                   00000000 (0)\n+1FA494 Compressed Size       00000000 (0)\n+1FA498 Uncompressed Size     00000000 (0)\n+1FA49C Filename Length       0032 (50)\n+1FA49E Extra Length          0009 (9)\n+1FA4A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FA4A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FA4D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FA4D4   Length              0005 (5)\n+1FA4D6   Flags               01 (1) 'Modification'\n+1FA4D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FA4DB PAYLOAD\n+\n+1FB01A DATA DESCRIPTOR       08074B50 (134695760)\n+1FB01E CRC                   3A9B5BED (983260141)\n+1FB022 Compressed Size       00000B3F (2879)\n+1FB026 Uncompressed Size     00000B3F (2879)\n+\n+1FB02A LOCAL HEADER #706     04034B50 (67324752)\n+1FB02E Extract Zip Spec      14 (20) '2.0'\n+1FB02F Extract OS            00 (0) 'MS-DOS'\n+1FB030 General Purpose Flag  0000 (0)\n+1FB032 Compression Method    0000 (0) 'Stored'\n+1FB034 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FB038 CRC                   00000000 (0)\n+1FB03C Compressed Size       00000000 (0)\n+1FB040 Uncompressed Size     00000000 (0)\n+1FB044 Filename Length       001D (29)\n+1FB046 Extra Length          0009 (9)\n+1FB048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FB048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FB065 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FB067   Length              0005 (5)\n+1FB069   Flags               01 (1) 'Modification'\n+1FB06A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+1FB06E LOCAL HEADER #707     04034B50 (67324752)\n+1FB072 Extract Zip Spec      14 (20) '2.0'\n+1FB073 Extract OS            00 (0) 'MS-DOS'\n+1FB074 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1FB076 Compression Method    0000 (0) 'Stored'\n+1FB078 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FB07C CRC                   00000000 (0)\n+1FB080 Compressed Size       00000000 (0)\n+1FB084 Uncompressed Size     00000000 (0)\n+1FB088 Filename Length       0036 (54)\n+1FB08A Extra Length          0009 (9)\n+1FB08C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FB08C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FB0C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FB0C4   Length              0005 (5)\n+1FB0C6   Flags               01 (1) 'Modification'\n+1FB0C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FB0CB PAYLOAD\n+\n+1FF7B0 DATA DESCRIPTOR       08074B50 (134695760)\n+1FF7B4 CRC                   30256F45 (807759685)\n+1FF7B8 Compressed Size       000046E5 (18149)\n+1FF7BC Uncompressed Size     000046E5 (18149)\n+\n+1FF7C0 LOCAL HEADER #708     04034B50 (67324752)\n+1FF7C4 Extract Zip Spec      14 (20) '2.0'\n+1FF7C5 Extract OS            00 (0) 'MS-DOS'\n+1FF7C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+1FF7C8 Compression Method    0000 (0) 'Stored'\n+1FF7CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+1FF7CE CRC                   00000000 (0)\n+1FF7D2 Compressed Size       00000000 (0)\n+1FF7D6 Uncompressed Size     00000000 (0)\n+1FF7DA Filename Length       002C (44)\n+1FF7DC Extra Length          0009 (9)\n+1FF7DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x1FF7DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+1FF80A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+1FF80C   Length              0005 (5)\n+1FF80E   Flags               01 (1) 'Modification'\n+1FF80F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+1FF813 PAYLOAD\n+\n+202B98 DATA DESCRIPTOR       08074B50 (134695760)\n+202B9C CRC                   FA032BB6 (4194511798)\n+202BA0 Compressed Size       00003385 (13189)\n+202BA4 Uncompressed Size     00003385 (13189)\n+\n+202BA8 LOCAL HEADER #709     04034B50 (67324752)\n+202BAC Extract Zip Spec      14 (20) '2.0'\n+202BAD Extract OS            00 (0) 'MS-DOS'\n+202BAE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+202BB0 Compression Method    0000 (0) 'Stored'\n+202BB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+202BB6 CRC                   00000000 (0)\n+202BBA Compressed Size       00000000 (0)\n+202BBE Uncompressed Size     00000000 (0)\n+202BC2 Filename Length       0026 (38)\n+202BC4 Extra Length          0009 (9)\n+202BC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x202BC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+202BEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+202BEE   Length              0005 (5)\n+202BF0   Flags               01 (1) 'Modification'\n+202BF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+202BF5 PAYLOAD\n+\n+209699 DATA DESCRIPTOR       08074B50 (134695760)\n+20969D CRC                   39C07894 (968915092)\n+2096A1 Compressed Size       00006AA4 (27300)\n+2096A5 Uncompressed Size     00006AA4 (27300)\n+\n+2096A9 LOCAL HEADER #710     04034B50 (67324752)\n+2096AD Extract Zip Spec      14 (20) '2.0'\n+2096AE Extract OS            00 (0) 'MS-DOS'\n+2096AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2096B1 Compression Method    0000 (0) 'Stored'\n+2096B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2096B7 CRC                   00000000 (0)\n+2096BB Compressed Size       00000000 (0)\n+2096BF Uncompressed Size     00000000 (0)\n+2096C3 Filename Length       002B (43)\n+2096C5 Extra Length          0009 (9)\n+2096C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2096C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2096F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2096F4   Length              0005 (5)\n+2096F6   Flags               01 (1) 'Modification'\n+2096F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2096FB PAYLOAD\n+\n+20AA2B DATA DESCRIPTOR       08074B50 (134695760)\n+20AA2F CRC                   2313A478 (588489848)\n+20AA33 Compressed Size       00001330 (4912)\n+20AA37 Uncompressed Size     00001330 (4912)\n+\n+20AA3B LOCAL HEADER #711     04034B50 (67324752)\n+20AA3F Extract Zip Spec      14 (20) '2.0'\n+20AA40 Extract OS            00 (0) 'MS-DOS'\n+20AA41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20AA43 Compression Method    0000 (0) 'Stored'\n+20AA45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20AA49 CRC                   00000000 (0)\n+20AA4D Compressed Size       00000000 (0)\n+20AA51 Uncompressed Size     00000000 (0)\n+20AA55 Filename Length       002F (47)\n+20AA57 Extra Length          0009 (9)\n+20AA59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20AA59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20AA88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20AA8A   Length              0005 (5)\n+20AA8C   Flags               01 (1) 'Modification'\n+20AA8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20AA91 PAYLOAD\n+\n+20B046 DATA DESCRIPTOR       08074B50 (134695760)\n+20B04A CRC                   10BC97FD (280795133)\n+20B04E Compressed Size       000005B5 (1461)\n+20B052 Uncompressed Size     000005B5 (1461)\n+\n+20B056 LOCAL HEADER #712     04034B50 (67324752)\n+20B05A Extract Zip Spec      14 (20) '2.0'\n+20B05B Extract OS            00 (0) 'MS-DOS'\n+20B05C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20B05E Compression Method    0000 (0) 'Stored'\n+20B060 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20B064 CRC                   00000000 (0)\n+20B068 Compressed Size       00000000 (0)\n+20B06C Uncompressed Size     00000000 (0)\n+20B070 Filename Length       002A (42)\n+20B072 Extra Length          0009 (9)\n+20B074 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20B074: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20B09E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20B0A0   Length              0005 (5)\n+20B0A2   Flags               01 (1) 'Modification'\n+20B0A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20B0A7 PAYLOAD\n+\n+20B555 DATA DESCRIPTOR       08074B50 (134695760)\n+20B559 CRC                   982A34CC (2552902860)\n+20B55D Compressed Size       000004AE (1198)\n+20B561 Uncompressed Size     000004AE (1198)\n+\n+20B565 LOCAL HEADER #713     04034B50 (67324752)\n+20B569 Extract Zip Spec      14 (20) '2.0'\n+20B56A Extract OS            00 (0) 'MS-DOS'\n+20B56B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20B56D Compression Method    0000 (0) 'Stored'\n+20B56F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20B573 CRC                   00000000 (0)\n+20B577 Compressed Size       00000000 (0)\n+20B57B Uncompressed Size     00000000 (0)\n+20B57F Filename Length       002C (44)\n+20B581 Extra Length          0009 (9)\n+20B583 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20B583: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20B5AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20B5B1   Length              0005 (5)\n+20B5B3   Flags               01 (1) 'Modification'\n+20B5B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20B5B8 PAYLOAD\n+\n+20CBB3 DATA DESCRIPTOR       08074B50 (134695760)\n+20CBB7 CRC                   7653CF57 (1985204055)\n+20CBBB Compressed Size       000015FB (5627)\n+20CBBF Uncompressed Size     000015FB (5627)\n+\n+20CBC3 LOCAL HEADER #714     04034B50 (67324752)\n+20CBC7 Extract Zip Spec      14 (20) '2.0'\n+20CBC8 Extract OS            00 (0) 'MS-DOS'\n+20CBC9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20CBCB Compression Method    0000 (0) 'Stored'\n+20CBCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20CBD1 CRC                   00000000 (0)\n+20CBD5 Compressed Size       00000000 (0)\n+20CBD9 Uncompressed Size     00000000 (0)\n+20CBDD Filename Length       002C (44)\n+20CBDF Extra Length          0009 (9)\n+20CBE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20CBE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20CC0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20CC0F   Length              0005 (5)\n+20CC11   Flags               01 (1) 'Modification'\n+20CC12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20CC16 PAYLOAD\n+\n+20D4BC DATA DESCRIPTOR       08074B50 (134695760)\n+20D4C0 CRC                   4D87180A (1300699146)\n+20D4C4 Compressed Size       000008A6 (2214)\n+20D4C8 Uncompressed Size     000008A6 (2214)\n+\n+20D4CC LOCAL HEADER #715     04034B50 (67324752)\n+20D4D0 Extract Zip Spec      14 (20) '2.0'\n+20D4D1 Extract OS            00 (0) 'MS-DOS'\n+20D4D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20D4D4 Compression Method    0000 (0) 'Stored'\n+20D4D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20D4DA CRC                   00000000 (0)\n+20D4DE Compressed Size       00000000 (0)\n+20D4E2 Uncompressed Size     00000000 (0)\n+20D4E6 Filename Length       002B (43)\n+20D4E8 Extra Length          0009 (9)\n+20D4EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20D4EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20D515 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20D517   Length              0005 (5)\n+20D519   Flags               01 (1) 'Modification'\n+20D51A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20D51E PAYLOAD\n+\n+20DDE5 DATA DESCRIPTOR       08074B50 (134695760)\n+20DDE9 CRC                   8F2D4992 (2402109842)\n+20DDED Compressed Size       000008C7 (2247)\n+20DDF1 Uncompressed Size     000008C7 (2247)\n+\n+20DDF5 LOCAL HEADER #716     04034B50 (67324752)\n+20DDF9 Extract Zip Spec      14 (20) '2.0'\n+20DDFA Extract OS            00 (0) 'MS-DOS'\n+20DDFB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20DDFD Compression Method    0000 (0) 'Stored'\n+20DDFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20DE03 CRC                   00000000 (0)\n+20DE07 Compressed Size       00000000 (0)\n+20DE0B Uncompressed Size     00000000 (0)\n+20DE0F Filename Length       002D (45)\n+20DE11 Extra Length          0009 (9)\n+20DE13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20DE13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20DE40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20DE42   Length              0005 (5)\n+20DE44   Flags               01 (1) 'Modification'\n+20DE45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20DE49 PAYLOAD\n+\n+20E935 DATA DESCRIPTOR       08074B50 (134695760)\n+20E939 CRC                   33828390 (864191376)\n+20E93D Compressed Size       00000AEC (2796)\n+20E941 Uncompressed Size     00000AEC (2796)\n+\n+20E945 LOCAL HEADER #717     04034B50 (67324752)\n+20E949 Extract Zip Spec      14 (20) '2.0'\n+20E94A Extract OS            00 (0) 'MS-DOS'\n+20E94B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+20E94D Compression Method    0000 (0) 'Stored'\n+20E94F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+20E953 CRC                   00000000 (0)\n+20E957 Compressed Size       00000000 (0)\n+20E95B Uncompressed Size     00000000 (0)\n+20E95F Filename Length       002C (44)\n+20E961 Extra Length          0009 (9)\n+20E963 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x20E963: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+20E98F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+20E991   Length              0005 (5)\n+20E993   Flags               01 (1) 'Modification'\n+20E994   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+20E998 PAYLOAD\n+\n+210977 DATA DESCRIPTOR       08074B50 (134695760)\n+21097B CRC                   ECCF2EAF (3973000879)\n+21097F Compressed Size       00001FDF (8159)\n+210983 Uncompressed Size     00001FDF (8159)\n+\n+210987 LOCAL HEADER #718     04034B50 (67324752)\n+21098B Extract Zip Spec      14 (20) '2.0'\n+21098C Extract OS            00 (0) 'MS-DOS'\n+21098D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21098F Compression Method    0000 (0) 'Stored'\n+210991 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+210995 CRC                   00000000 (0)\n+210999 Compressed Size       00000000 (0)\n+21099D Uncompressed Size     00000000 (0)\n+2109A1 Filename Length       0030 (48)\n+2109A3 Extra Length          0009 (9)\n+2109A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2109A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2109D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2109D7   Length              0005 (5)\n+2109D9   Flags               01 (1) 'Modification'\n+2109DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2109DE PAYLOAD\n+\n+210E67 DATA DESCRIPTOR       08074B50 (134695760)\n+210E6B CRC                   4EF6CDD0 (1324797392)\n+210E6F Compressed Size       00000489 (1161)\n+210E73 Uncompressed Size     00000489 (1161)\n+\n+210E77 LOCAL HEADER #719     04034B50 (67324752)\n+210E7B Extract Zip Spec      14 (20) '2.0'\n+210E7C Extract OS            00 (0) 'MS-DOS'\n+210E7D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+210E7F Compression Method    0000 (0) 'Stored'\n+210E81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+210E85 CRC                   00000000 (0)\n+210E89 Compressed Size       00000000 (0)\n+210E8D Uncompressed Size     00000000 (0)\n+210E91 Filename Length       0027 (39)\n+210E93 Extra Length          0009 (9)\n+210E95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x210E95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+210EBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+210EBE   Length              0005 (5)\n+210EC0   Flags               01 (1) 'Modification'\n+210EC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+210EC5 PAYLOAD\n+\n+2184CC DATA DESCRIPTOR       08074B50 (134695760)\n+2184D0 CRC                   8192FABF (2173893311)\n+2184D4 Compressed Size       00007607 (30215)\n+2184D8 Uncompressed Size     00007607 (30215)\n+\n+2184DC LOCAL HEADER #720     04034B50 (67324752)\n+2184E0 Extract Zip Spec      14 (20) '2.0'\n+2184E1 Extract OS            00 (0) 'MS-DOS'\n+2184E2 General Purpose Flag  0000 (0)\n+2184E4 Compression Method    0000 (0) 'Stored'\n+2184E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2184EA CRC                   00000000 (0)\n+2184EE Compressed Size       00000000 (0)\n+2184F2 Uncompressed Size     00000000 (0)\n+2184F6 Filename Length       001D (29)\n+2184F8 Extra Length          0009 (9)\n+2184FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2184FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+218517 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+218519   Length              0005 (5)\n+21851B   Flags               01 (1) 'Modification'\n+21851C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+218520 LOCAL HEADER #721     04034B50 (67324752)\n+218524 Extract Zip Spec      14 (20) '2.0'\n+218525 Extract OS            00 (0) 'MS-DOS'\n+218526 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+218528 Compression Method    0000 (0) 'Stored'\n+21852A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21852E CRC                   00000000 (0)\n+218532 Compressed Size       00000000 (0)\n+218536 Uncompressed Size     00000000 (0)\n+21853A Filename Length       002D (45)\n+21853C Extra Length          0009 (9)\n+21853E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21853E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21856B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21856D   Length              0005 (5)\n+21856F   Flags               01 (1) 'Modification'\n+218570   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+218574 PAYLOAD\n+\n+218EC2 DATA DESCRIPTOR       08074B50 (134695760)\n+218EC6 CRC                   36088937 (906529079)\n+218ECA Compressed Size       0000094E (2382)\n+218ECE Uncompressed Size     0000094E (2382)\n+\n+218ED2 LOCAL HEADER #722     04034B50 (67324752)\n+218ED6 Extract Zip Spec      14 (20) '2.0'\n+218ED7 Extract OS            00 (0) 'MS-DOS'\n+218ED8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+218EDA Compression Method    0000 (0) 'Stored'\n+218EDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+218EE0 CRC                   00000000 (0)\n+218EE4 Compressed Size       00000000 (0)\n+218EE8 Uncompressed Size     00000000 (0)\n+218EEC Filename Length       0036 (54)\n+218EEE Extra Length          0009 (9)\n+218EF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x218EF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+218F26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+218F28   Length              0005 (5)\n+218F2A   Flags               01 (1) 'Modification'\n+218F2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+218F2F PAYLOAD\n+\n+2193DA DATA DESCRIPTOR       08074B50 (134695760)\n+2193DE CRC                   C67E8FBE (3330183102)\n+2193E2 Compressed Size       000004AB (1195)\n+2193E6 Uncompressed Size     000004AB (1195)\n+\n+2193EA LOCAL HEADER #723     04034B50 (67324752)\n+2193EE Extract Zip Spec      14 (20) '2.0'\n+2193EF Extract OS            00 (0) 'MS-DOS'\n+2193F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2193F2 Compression Method    0000 (0) 'Stored'\n+2193F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2193F8 CRC                   00000000 (0)\n+2193FC Compressed Size       00000000 (0)\n+219400 Uncompressed Size     00000000 (0)\n+219404 Filename Length       0037 (55)\n+219406 Extra Length          0009 (9)\n+219408 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x219408: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21943F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+219441   Length              0005 (5)\n+219443   Flags               01 (1) 'Modification'\n+219444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+219448 PAYLOAD\n+\n+219DAF DATA DESCRIPTOR       08074B50 (134695760)\n+219DB3 CRC                   8F418EA5 (2403438245)\n+219DB7 Compressed Size       00000967 (2407)\n+219DBB Uncompressed Size     00000967 (2407)\n+\n+219DBF LOCAL HEADER #724     04034B50 (67324752)\n+219DC3 Extract Zip Spec      14 (20) '2.0'\n+219DC4 Extract OS            00 (0) 'MS-DOS'\n+219DC5 General Purpose Flag  0000 (0)\n+219DC7 Compression Method    0000 (0) 'Stored'\n+219DC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+219DCD CRC                   00000000 (0)\n+219DD1 Compressed Size       00000000 (0)\n+219DD5 Uncompressed Size     00000000 (0)\n+219DD9 Filename Length       001F (31)\n+219DDB Extra Length          0009 (9)\n+219DDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x219DDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+219DFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+219DFE   Length              0005 (5)\n+219E00   Flags               01 (1) 'Modification'\n+219E01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+219E05 LOCAL HEADER #725     04034B50 (67324752)\n+219E09 Extract Zip Spec      14 (20) '2.0'\n+219E0A Extract OS            00 (0) 'MS-DOS'\n+219E0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+219E0D Compression Method    0000 (0) 'Stored'\n+219E0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+219E13 CRC                   00000000 (0)\n+219E17 Compressed Size       00000000 (0)\n+219E1B Uncompressed Size     00000000 (0)\n+219E1F Filename Length       0029 (41)\n+219E21 Extra Length          0009 (9)\n+219E23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x219E23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+219E4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+219E4E   Length              0005 (5)\n+219E50   Flags               01 (1) 'Modification'\n+219E51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+219E55 PAYLOAD\n+\n+21A313 DATA DESCRIPTOR       08074B50 (134695760)\n+21A317 CRC                   9D821087 (2642546823)\n+21A31B Compressed Size       000004BE (1214)\n+21A31F Uncompressed Size     000004BE (1214)\n+\n+21A323 LOCAL HEADER #726     04034B50 (67324752)\n+21A327 Extract Zip Spec      14 (20) '2.0'\n+21A328 Extract OS            00 (0) 'MS-DOS'\n+21A329 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21A32B Compression Method    0000 (0) 'Stored'\n+21A32D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21A331 CRC                   00000000 (0)\n+21A335 Compressed Size       00000000 (0)\n+21A339 Uncompressed Size     00000000 (0)\n+21A33D Filename Length       002A (42)\n+21A33F Extra Length          0009 (9)\n+21A341 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21A341: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21A36B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21A36D   Length              0005 (5)\n+21A36F   Flags               01 (1) 'Modification'\n+21A370   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21A374 PAYLOAD\n+\n+21B2F6 DATA DESCRIPTOR       08074B50 (134695760)\n+21B2FA CRC                   0D8DFECE (227409614)\n+21B2FE Compressed Size       00000F82 (3970)\n+21B302 Uncompressed Size     00000F82 (3970)\n+\n+21B306 LOCAL HEADER #727     04034B50 (67324752)\n+21B30A Extract Zip Spec      14 (20) '2.0'\n+21B30B Extract OS            00 (0) 'MS-DOS'\n+21B30C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21B30E Compression Method    0000 (0) 'Stored'\n+21B310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21B314 CRC                   00000000 (0)\n+21B318 Compressed Size       00000000 (0)\n+21B31C Uncompressed Size     00000000 (0)\n+21B320 Filename Length       0031 (49)\n+21B322 Extra Length          0009 (9)\n+21B324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21B324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21B355 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21B357   Length              0005 (5)\n+21B359   Flags               01 (1) 'Modification'\n+21B35A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21B35E PAYLOAD\n+\n+21BAA3 DATA DESCRIPTOR       08074B50 (134695760)\n+21BAA7 CRC                   A6EF1A57 (2800687703)\n+21BAAB Compressed Size       00000745 (1861)\n+21BAAF Uncompressed Size     00000745 (1861)\n+\n+21BAB3 LOCAL HEADER #728     04034B50 (67324752)\n+21BAB7 Extract Zip Spec      14 (20) '2.0'\n+21BAB8 Extract OS            00 (0) 'MS-DOS'\n+21BAB9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21BABB Compression Method    0000 (0) 'Stored'\n+21BABD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21BAC1 CRC                   00000000 (0)\n+21BAC5 Compressed Size       00000000 (0)\n+21BAC9 Uncompressed Size     00000000 (0)\n+21BACD Filename Length       0031 (49)\n+21BACF Extra Length          0009 (9)\n+21BAD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21BAD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21BB02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21BB04   Length              0005 (5)\n+21BB06   Flags               01 (1) 'Modification'\n+21BB07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21BB0B PAYLOAD\n+\n+21CF90 DATA DESCRIPTOR       08074B50 (134695760)\n+21CF94 CRC                   626EDC3E (1651432510)\n+21CF98 Compressed Size       00001485 (5253)\n+21CF9C Uncompressed Size     00001485 (5253)\n+\n+21CFA0 LOCAL HEADER #729     04034B50 (67324752)\n+21CFA4 Extract Zip Spec      14 (20) '2.0'\n+21CFA5 Extract OS            00 (0) 'MS-DOS'\n+21CFA6 General Purpose Flag  0000 (0)\n+21CFA8 Compression Method    0000 (0) 'Stored'\n+21CFAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21CFAE CRC                   00000000 (0)\n+21CFB2 Compressed Size       00000000 (0)\n+21CFB6 Uncompressed Size     00000000 (0)\n+21CFBA Filename Length       0023 (35)\n+21CFBC Extra Length          0009 (9)\n+21CFBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21CFBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21CFE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21CFE3   Length              0005 (5)\n+21CFE5   Flags               01 (1) 'Modification'\n+21CFE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+21CFEA LOCAL HEADER #730     04034B50 (67324752)\n+21CFEE Extract Zip Spec      14 (20) '2.0'\n+21CFEF Extract OS            00 (0) 'MS-DOS'\n+21CFF0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21CFF2 Compression Method    0000 (0) 'Stored'\n+21CFF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21CFF8 CRC                   00000000 (0)\n+21CFFC Compressed Size       00000000 (0)\n+21D000 Uncompressed Size     00000000 (0)\n+21D004 Filename Length       0031 (49)\n+21D006 Extra Length          0009 (9)\n+21D008 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21D008: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21D039 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21D03B   Length              0005 (5)\n+21D03D   Flags               01 (1) 'Modification'\n+21D03E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21D042 PAYLOAD\n+\n+21DD50 DATA DESCRIPTOR       08074B50 (134695760)\n+21DD54 CRC                   65EBC1EB (1709949419)\n+21DD58 Compressed Size       00000D0E (3342)\n+21DD5C Uncompressed Size     00000D0E (3342)\n+\n+21DD60 LOCAL HEADER #731     04034B50 (67324752)\n+21DD64 Extract Zip Spec      14 (20) '2.0'\n+21DD65 Extract OS            00 (0) 'MS-DOS'\n+21DD66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21DD68 Compression Method    0000 (0) 'Stored'\n+21DD6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21DD6E CRC                   00000000 (0)\n+21DD72 Compressed Size       00000000 (0)\n+21DD76 Uncompressed Size     00000000 (0)\n+21DD7A Filename Length       0038 (56)\n+21DD7C Extra Length          0009 (9)\n+21DD7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21DD7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21DDB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21DDB8   Length              0005 (5)\n+21DDBA   Flags               01 (1) 'Modification'\n+21DDBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21DDBF PAYLOAD\n+\n+21E4B7 DATA DESCRIPTOR       08074B50 (134695760)\n+21E4BB CRC                   006A5B46 (6970182)\n+21E4BF Compressed Size       000006F8 (1784)\n+21E4C3 Uncompressed Size     000006F8 (1784)\n+\n+21E4C7 LOCAL HEADER #732     04034B50 (67324752)\n+21E4CB Extract Zip Spec      14 (20) '2.0'\n+21E4CC Extract OS            00 (0) 'MS-DOS'\n+21E4CD General Purpose Flag  0000 (0)\n+21E4CF Compression Method    0000 (0) 'Stored'\n+21E4D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21E4D5 CRC                   00000000 (0)\n+21E4D9 Compressed Size       00000000 (0)\n+21E4DD Uncompressed Size     00000000 (0)\n+21E4E1 Filename Length       0023 (35)\n+21E4E3 Extra Length          0009 (9)\n+21E4E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21E4E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21E508 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21E50A   Length              0005 (5)\n+21E50C   Flags               01 (1) 'Modification'\n+21E50D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+21E511 LOCAL HEADER #733     04034B50 (67324752)\n+21E515 Extract Zip Spec      14 (20) '2.0'\n+21E516 Extract OS            00 (0) 'MS-DOS'\n+21E517 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21E519 Compression Method    0000 (0) 'Stored'\n+21E51B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21E51F CRC                   00000000 (0)\n+21E523 Compressed Size       00000000 (0)\n+21E527 Uncompressed Size     00000000 (0)\n+21E52B Filename Length       0031 (49)\n+21E52D Extra Length          0009 (9)\n+21E52F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21E52F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21E560 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21E562   Length              0005 (5)\n+21E564   Flags               01 (1) 'Modification'\n+21E565   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21E569 PAYLOAD\n+\n+21F284 DATA DESCRIPTOR       08074B50 (134695760)\n+21F288 CRC                   8FD172CF (2412868303)\n+21F28C Compressed Size       00000D1B (3355)\n+21F290 Uncompressed Size     00000D1B (3355)\n+\n+21F294 LOCAL HEADER #734     04034B50 (67324752)\n+21F298 Extract Zip Spec      14 (20) '2.0'\n+21F299 Extract OS            00 (0) 'MS-DOS'\n+21F29A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+21F29C Compression Method    0000 (0) 'Stored'\n+21F29E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+21F2A2 CRC                   00000000 (0)\n+21F2A6 Compressed Size       00000000 (0)\n+21F2AA Uncompressed Size     00000000 (0)\n+21F2AE Filename Length       0038 (56)\n+21F2B0 Extra Length          0009 (9)\n+21F2B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x21F2B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+21F2EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+21F2EC   Length              0005 (5)\n+21F2EE   Flags               01 (1) 'Modification'\n+21F2EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+21F2F3 PAYLOAD\n+\n+2205EF DATA DESCRIPTOR       08074B50 (134695760)\n+2205F3 CRC                   7ADBDBE0 (2061229024)\n+2205F7 Compressed Size       000012FC (4860)\n+2205FB Uncompressed Size     000012FC (4860)\n+\n+2205FF LOCAL HEADER #735     04034B50 (67324752)\n+220603 Extract Zip Spec      14 (20) '2.0'\n+220604 Extract OS            00 (0) 'MS-DOS'\n+220605 General Purpose Flag  0000 (0)\n+220607 Compression Method    0000 (0) 'Stored'\n+220609 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22060D CRC                   00000000 (0)\n+220611 Compressed Size       00000000 (0)\n+220615 Uncompressed Size     00000000 (0)\n+220619 Filename Length       0025 (37)\n+22061B Extra Length          0009 (9)\n+22061D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22061D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+220642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+220644   Length              0005 (5)\n+220646   Flags               01 (1) 'Modification'\n+220647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+22064B LOCAL HEADER #736     04034B50 (67324752)\n+22064F Extract Zip Spec      14 (20) '2.0'\n+220650 Extract OS            00 (0) 'MS-DOS'\n+220651 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+220653 Compression Method    0000 (0) 'Stored'\n+220655 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+220659 CRC                   00000000 (0)\n+22065D Compressed Size       00000000 (0)\n+220661 Uncompressed Size     00000000 (0)\n+220665 Filename Length       0035 (53)\n+220667 Extra Length          0009 (9)\n+220669 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x220669: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22069E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2206A0   Length              0005 (5)\n+2206A2   Flags               01 (1) 'Modification'\n+2206A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2206A7 PAYLOAD\n+\n+221508 DATA DESCRIPTOR       08074B50 (134695760)\n+22150C CRC                   0237005F (37159007)\n+221510 Compressed Size       00000E61 (3681)\n+221514 Uncompressed Size     00000E61 (3681)\n+\n+221518 LOCAL HEADER #737     04034B50 (67324752)\n+22151C Extract Zip Spec      14 (20) '2.0'\n+22151D Extract OS            00 (0) 'MS-DOS'\n+22151E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+221520 Compression Method    0000 (0) 'Stored'\n+221522 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+221526 CRC                   00000000 (0)\n+22152A Compressed Size       00000000 (0)\n+22152E Uncompressed Size     00000000 (0)\n+221532 Filename Length       003C (60)\n+221534 Extra Length          0009 (9)\n+221536 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x221536: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+221572 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+221574   Length              0005 (5)\n+221576   Flags               01 (1) 'Modification'\n+221577   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22157B PAYLOAD\n+\n+222647 DATA DESCRIPTOR       08074B50 (134695760)\n+22264B CRC                   CE737695 (3463673493)\n+22264F Compressed Size       000010CC (4300)\n+222653 Uncompressed Size     000010CC (4300)\n+\n+222657 LOCAL HEADER #738     04034B50 (67324752)\n+22265B Extract Zip Spec      14 (20) '2.0'\n+22265C Extract OS            00 (0) 'MS-DOS'\n+22265D General Purpose Flag  0000 (0)\n+22265F Compression Method    0000 (0) 'Stored'\n+222661 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+222665 CRC                   00000000 (0)\n+222669 Compressed Size       00000000 (0)\n+22266D Uncompressed Size     00000000 (0)\n+222671 Filename Length       0026 (38)\n+222673 Extra Length          0009 (9)\n+222675 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x222675: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22269B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22269D   Length              0005 (5)\n+22269F   Flags               01 (1) 'Modification'\n+2226A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2226A4 LOCAL HEADER #739     04034B50 (67324752)\n+2226A8 Extract Zip Spec      14 (20) '2.0'\n+2226A9 Extract OS            00 (0) 'MS-DOS'\n+2226AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2226AC Compression Method    0000 (0) 'Stored'\n+2226AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2226B2 CRC                   00000000 (0)\n+2226B6 Compressed Size       00000000 (0)\n+2226BA Uncompressed Size     00000000 (0)\n+2226BE Filename Length       0037 (55)\n+2226C0 Extra Length          0009 (9)\n+2226C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2226C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2226F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2226FB   Length              0005 (5)\n+2226FD   Flags               01 (1) 'Modification'\n+2226FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+222702 PAYLOAD\n+\n+22339A DATA DESCRIPTOR       08074B50 (134695760)\n+22339E CRC                   719AAFB0 (1905962928)\n+2233A2 Compressed Size       00000C98 (3224)\n+2233A6 Uncompressed Size     00000C98 (3224)\n+\n+2233AA LOCAL HEADER #740     04034B50 (67324752)\n+2233AE Extract Zip Spec      14 (20) '2.0'\n+2233AF Extract OS            00 (0) 'MS-DOS'\n+2233B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2233B2 Compression Method    0000 (0) 'Stored'\n+2233B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2233B8 CRC                   00000000 (0)\n+2233BC Compressed Size       00000000 (0)\n+2233C0 Uncompressed Size     00000000 (0)\n+2233C4 Filename Length       003E (62)\n+2233C6 Extra Length          0009 (9)\n+2233C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2233C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+223406 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+223408   Length              0005 (5)\n+22340A   Flags               01 (1) 'Modification'\n+22340B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22340F PAYLOAD\n+\n+2240FC DATA DESCRIPTOR       08074B50 (134695760)\n+224100 CRC                   B7D93D08 (3084467464)\n+224104 Compressed Size       00000CED (3309)\n+224108 Uncompressed Size     00000CED (3309)\n+\n+22410C LOCAL HEADER #741     04034B50 (67324752)\n+224110 Extract Zip Spec      14 (20) '2.0'\n+224111 Extract OS            00 (0) 'MS-DOS'\n+224112 General Purpose Flag  0000 (0)\n+224114 Compression Method    0000 (0) 'Stored'\n+224116 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22411A CRC                   00000000 (0)\n+22411E Compressed Size       00000000 (0)\n+224122 Uncompressed Size     00000000 (0)\n+224126 Filename Length       0025 (37)\n+224128 Extra Length          0009 (9)\n+22412A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22412A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22414F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+224151   Length              0005 (5)\n+224153   Flags               01 (1) 'Modification'\n+224154   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+224158 LOCAL HEADER #742     04034B50 (67324752)\n+22415C Extract Zip Spec      14 (20) '2.0'\n+22415D Extract OS            00 (0) 'MS-DOS'\n+22415E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+224160 Compression Method    0000 (0) 'Stored'\n+224162 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+224166 CRC                   00000000 (0)\n+22416A Compressed Size       00000000 (0)\n+22416E Uncompressed Size     00000000 (0)\n+224172 Filename Length       0035 (53)\n+224174 Extra Length          0009 (9)\n+224176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x224176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2241AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2241AD   Length              0005 (5)\n+2241AF   Flags               01 (1) 'Modification'\n+2241B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2241B4 PAYLOAD\n+\n+225A2A DATA DESCRIPTOR       08074B50 (134695760)\n+225A2E CRC                   FD6565BB (4251280827)\n+225A32 Compressed Size       00001876 (6262)\n+225A36 Uncompressed Size     00001876 (6262)\n+\n+225A3A LOCAL HEADER #743     04034B50 (67324752)\n+225A3E Extract Zip Spec      14 (20) '2.0'\n+225A3F Extract OS            00 (0) 'MS-DOS'\n+225A40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+225A42 Compression Method    0000 (0) 'Stored'\n+225A44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+225A48 CRC                   00000000 (0)\n+225A4C Compressed Size       00000000 (0)\n+225A50 Uncompressed Size     00000000 (0)\n+225A54 Filename Length       003C (60)\n+225A56 Extra Length          0009 (9)\n+225A58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x225A58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+225A94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+225A96   Length              0005 (5)\n+225A98   Flags               01 (1) 'Modification'\n+225A99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+225A9D PAYLOAD\n+\n+22618C DATA DESCRIPTOR       08074B50 (134695760)\n+226190 CRC                   2D853131 (763703601)\n+226194 Compressed Size       000006EF (1775)\n+226198 Uncompressed Size     000006EF (1775)\n+\n+22619C LOCAL HEADER #744     04034B50 (67324752)\n+2261A0 Extract Zip Spec      14 (20) '2.0'\n+2261A1 Extract OS            00 (0) 'MS-DOS'\n+2261A2 General Purpose Flag  0000 (0)\n+2261A4 Compression Method    0000 (0) 'Stored'\n+2261A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2261AA CRC                   00000000 (0)\n+2261AE Compressed Size       00000000 (0)\n+2261B2 Uncompressed Size     00000000 (0)\n+2261B6 Filename Length       0027 (39)\n+2261B8 Extra Length          0009 (9)\n+2261BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2261BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2261E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2261E3   Length              0005 (5)\n+2261E5   Flags               01 (1) 'Modification'\n+2261E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2261EA LOCAL HEADER #745     04034B50 (67324752)\n+2261EE Extract Zip Spec      14 (20) '2.0'\n+2261EF Extract OS            00 (0) 'MS-DOS'\n+2261F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2261F2 Compression Method    0000 (0) 'Stored'\n+2261F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2261F8 CRC                   00000000 (0)\n+2261FC Compressed Size       00000000 (0)\n+226200 Uncompressed Size     00000000 (0)\n+226204 Filename Length       003A (58)\n+226206 Extra Length          0009 (9)\n+226208 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x226208: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+226242 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+226244   Length              0005 (5)\n+226246   Flags               01 (1) 'Modification'\n+226247   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22624B PAYLOAD\n+\n+227600 DATA DESCRIPTOR       08074B50 (134695760)\n+227604 CRC                   01B8CE5D (28888669)\n+227608 Compressed Size       000013B5 (5045)\n+22760C Uncompressed Size     000013B5 (5045)\n+\n+227610 LOCAL HEADER #746     04034B50 (67324752)\n+227614 Extract Zip Spec      14 (20) '2.0'\n+227615 Extract OS            00 (0) 'MS-DOS'\n+227616 General Purpose Flag  0000 (0)\n+227618 Compression Method    0000 (0) 'Stored'\n+22761A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22761E CRC                   00000000 (0)\n+227622 Compressed Size       00000000 (0)\n+227626 Uncompressed Size     00000000 (0)\n+22762A Filename Length       0022 (34)\n+22762C Extra Length          0009 (9)\n+22762E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22762E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+227650 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+227652   Length              0005 (5)\n+227654   Flags               01 (1) 'Modification'\n+227655   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+227659 LOCAL HEADER #747     04034B50 (67324752)\n+22765D Extract Zip Spec      14 (20) '2.0'\n+22765E Extract OS            00 (0) 'MS-DOS'\n+22765F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+227661 Compression Method    0000 (0) 'Stored'\n+227663 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+227667 CRC                   00000000 (0)\n+22766B Compressed Size       00000000 (0)\n+22766F Uncompressed Size     00000000 (0)\n+227673 Filename Length       0030 (48)\n+227675 Extra Length          0009 (9)\n+227677 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x227677: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2276A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2276A9   Length              0005 (5)\n+2276AB   Flags               01 (1) 'Modification'\n+2276AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2276B0 PAYLOAD\n+\n+227AD3 DATA DESCRIPTOR       08074B50 (134695760)\n+227AD7 CRC                   072B28E1 (120269025)\n+227ADB Compressed Size       00000423 (1059)\n+227ADF Uncompressed Size     00000423 (1059)\n+\n+227AE3 LOCAL HEADER #748     04034B50 (67324752)\n+227AE7 Extract Zip Spec      14 (20) '2.0'\n+227AE8 Extract OS            00 (0) 'MS-DOS'\n+227AE9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+227AEB Compression Method    0000 (0) 'Stored'\n+227AED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+227AF1 CRC                   00000000 (0)\n+227AF5 Compressed Size       00000000 (0)\n+227AF9 Uncompressed Size     00000000 (0)\n+227AFD Filename Length       0030 (48)\n+227AFF Extra Length          0009 (9)\n+227B01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x227B01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+227B31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+227B33   Length              0005 (5)\n+227B35   Flags               01 (1) 'Modification'\n+227B36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+227B3A PAYLOAD\n+\n+228102 DATA DESCRIPTOR       08074B50 (134695760)\n+228106 CRC                   2705935A (654676826)\n+22810A Compressed Size       000005C8 (1480)\n+22810E Uncompressed Size     000005C8 (1480)\n+\n+228112 LOCAL HEADER #749     04034B50 (67324752)\n+228116 Extract Zip Spec      14 (20) '2.0'\n+228117 Extract OS            00 (0) 'MS-DOS'\n+228118 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22811A Compression Method    0000 (0) 'Stored'\n+22811C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+228120 CRC                   00000000 (0)\n+228124 Compressed Size       00000000 (0)\n+228128 Uncompressed Size     00000000 (0)\n+22812C Filename Length       0030 (48)\n+22812E Extra Length          0009 (9)\n+228130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x228130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+228160 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+228162   Length              0005 (5)\n+228164   Flags               01 (1) 'Modification'\n+228165   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+228169 PAYLOAD\n+\n+228A55 DATA DESCRIPTOR       08074B50 (134695760)\n+228A59 CRC                   9F97C867 (2677524583)\n+228A5D Compressed Size       000008EC (2284)\n+228A61 Uncompressed Size     000008EC (2284)\n+\n+228A65 LOCAL HEADER #750     04034B50 (67324752)\n+228A69 Extract Zip Spec      14 (20) '2.0'\n+228A6A Extract OS            00 (0) 'MS-DOS'\n+228A6B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+228A6D Compression Method    0000 (0) 'Stored'\n+228A6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+228A73 CRC                   00000000 (0)\n+228A77 Compressed Size       00000000 (0)\n+228A7B Uncompressed Size     00000000 (0)\n+228A7F Filename Length       0031 (49)\n+228A81 Extra Length          0009 (9)\n+228A83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x228A83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+228AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+228AB6   Length              0005 (5)\n+228AB8   Flags               01 (1) 'Modification'\n+228AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+228ABD PAYLOAD\n+\n+229572 DATA DESCRIPTOR       08074B50 (134695760)\n+229576 CRC                   BCDD8DC5 (3168636357)\n+22957A Compressed Size       00000AB5 (2741)\n+22957E Uncompressed Size     00000AB5 (2741)\n+\n+229582 LOCAL HEADER #751     04034B50 (67324752)\n+229586 Extract Zip Spec      14 (20) '2.0'\n+229587 Extract OS            00 (0) 'MS-DOS'\n+229588 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22958A Compression Method    0000 (0) 'Stored'\n+22958C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+229590 CRC                   00000000 (0)\n+229594 Compressed Size       00000000 (0)\n+229598 Uncompressed Size     00000000 (0)\n+22959C Filename Length       0032 (50)\n+22959E Extra Length          0009 (9)\n+2295A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2295A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2295D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2295D4   Length              0005 (5)\n+2295D6   Flags               01 (1) 'Modification'\n+2295D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2295DB PAYLOAD\n+\n+22A387 DATA DESCRIPTOR       08074B50 (134695760)\n+22A38B CRC                   27A2E85E (664987742)\n+22A38F Compressed Size       00000DAC (3500)\n+22A393 Uncompressed Size     00000DAC (3500)\n+\n+22A397 LOCAL HEADER #752     04034B50 (67324752)\n+22A39B Extract Zip Spec      14 (20) '2.0'\n+22A39C Extract OS            00 (0) 'MS-DOS'\n+22A39D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22A39F Compression Method    0000 (0) 'Stored'\n+22A3A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22A3A5 CRC                   00000000 (0)\n+22A3A9 Compressed Size       00000000 (0)\n+22A3AD Uncompressed Size     00000000 (0)\n+22A3B1 Filename Length       0033 (51)\n+22A3B3 Extra Length          0009 (9)\n+22A3B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22A3B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22A3E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22A3EA   Length              0005 (5)\n+22A3EC   Flags               01 (1) 'Modification'\n+22A3ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22A3F1 PAYLOAD\n+\n+22AD15 DATA DESCRIPTOR       08074B50 (134695760)\n+22AD19 CRC                   58C605A3 (1489372579)\n+22AD1D Compressed Size       00000924 (2340)\n+22AD21 Uncompressed Size     00000924 (2340)\n+\n+22AD25 LOCAL HEADER #753     04034B50 (67324752)\n+22AD29 Extract Zip Spec      14 (20) '2.0'\n+22AD2A Extract OS            00 (0) 'MS-DOS'\n+22AD2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22AD2D Compression Method    0000 (0) 'Stored'\n+22AD2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22AD33 CRC                   00000000 (0)\n+22AD37 Compressed Size       00000000 (0)\n+22AD3B Uncompressed Size     00000000 (0)\n+22AD3F Filename Length       0034 (52)\n+22AD41 Extra Length          0009 (9)\n+22AD43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22AD43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22AD77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22AD79   Length              0005 (5)\n+22AD7B   Flags               01 (1) 'Modification'\n+22AD7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22AD80 PAYLOAD\n+\n+22B7A3 DATA DESCRIPTOR       08074B50 (134695760)\n+22B7A7 CRC                   FF4A6A33 (4283066931)\n+22B7AB Compressed Size       00000A23 (2595)\n+22B7AF Uncompressed Size     00000A23 (2595)\n+\n+22B7B3 LOCAL HEADER #754     04034B50 (67324752)\n+22B7B7 Extract Zip Spec      14 (20) '2.0'\n+22B7B8 Extract OS            00 (0) 'MS-DOS'\n+22B7B9 General Purpose Flag  0000 (0)\n+22B7BB Compression Method    0000 (0) 'Stored'\n+22B7BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22B7C1 CRC                   00000000 (0)\n+22B7C5 Compressed Size       00000000 (0)\n+22B7C9 Uncompressed Size     00000000 (0)\n+22B7CD Filename Length       0027 (39)\n+22B7CF Extra Length          0009 (9)\n+22B7D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22B7D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22B7F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22B7FA   Length              0005 (5)\n+22B7FC   Flags               01 (1) 'Modification'\n+22B7FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+22B801 LOCAL HEADER #755     04034B50 (67324752)\n+22B805 Extract Zip Spec      14 (20) '2.0'\n+22B806 Extract OS            00 (0) 'MS-DOS'\n+22B807 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22B809 Compression Method    0000 (0) 'Stored'\n+22B80B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22B80F CRC                   00000000 (0)\n+22B813 Compressed Size       00000000 (0)\n+22B817 Uncompressed Size     00000000 (0)\n+22B81B Filename Length       003B (59)\n+22B81D Extra Length          0009 (9)\n+22B81F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22B81F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22B85A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22B85C   Length              0005 (5)\n+22B85E   Flags               01 (1) 'Modification'\n+22B85F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22B863 PAYLOAD\n+\n+22C6F7 DATA DESCRIPTOR       08074B50 (134695760)\n+22C6FB CRC                   3E0609F4 (1040583156)\n+22C6FF Compressed Size       00000E94 (3732)\n+22C703 Uncompressed Size     00000E94 (3732)\n+\n+22C707 LOCAL HEADER #756     04034B50 (67324752)\n+22C70B Extract Zip Spec      14 (20) '2.0'\n+22C70C Extract OS            00 (0) 'MS-DOS'\n+22C70D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22C70F Compression Method    0000 (0) 'Stored'\n+22C711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22C715 CRC                   00000000 (0)\n+22C719 Compressed Size       00000000 (0)\n+22C71D Uncompressed Size     00000000 (0)\n+22C721 Filename Length       003C (60)\n+22C723 Extra Length          0009 (9)\n+22C725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22C725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22C761 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22C763   Length              0005 (5)\n+22C765   Flags               01 (1) 'Modification'\n+22C766   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22C76A PAYLOAD\n+\n+22D439 DATA DESCRIPTOR       08074B50 (134695760)\n+22D43D CRC                   99ADAD26 (2578296102)\n+22D441 Compressed Size       00000CCF (3279)\n+22D445 Uncompressed Size     00000CCF (3279)\n+\n+22D449 LOCAL HEADER #757     04034B50 (67324752)\n+22D44D Extract Zip Spec      14 (20) '2.0'\n+22D44E Extract OS            00 (0) 'MS-DOS'\n+22D44F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22D451 Compression Method    0000 (0) 'Stored'\n+22D453 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22D457 CRC                   00000000 (0)\n+22D45B Compressed Size       00000000 (0)\n+22D45F Uncompressed Size     00000000 (0)\n+22D463 Filename Length       003D (61)\n+22D465 Extra Length          0009 (9)\n+22D467 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22D467: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22D4A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22D4A6   Length              0005 (5)\n+22D4A8   Flags               01 (1) 'Modification'\n+22D4A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22D4AD PAYLOAD\n+\n+22DBC6 DATA DESCRIPTOR       08074B50 (134695760)\n+22DBCA CRC                   61EF883C (1643087932)\n+22DBCE Compressed Size       00000719 (1817)\n+22DBD2 Uncompressed Size     00000719 (1817)\n+\n+22DBD6 LOCAL HEADER #758     04034B50 (67324752)\n+22DBDA Extract Zip Spec      14 (20) '2.0'\n+22DBDB Extract OS            00 (0) 'MS-DOS'\n+22DBDC General Purpose Flag  0000 (0)\n+22DBDE Compression Method    0000 (0) 'Stored'\n+22DBE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22DBE4 CRC                   00000000 (0)\n+22DBE8 Compressed Size       00000000 (0)\n+22DBEC Uncompressed Size     00000000 (0)\n+22DBF0 Filename Length       002B (43)\n+22DBF2 Extra Length          0009 (9)\n+22DBF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22DBF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22DC1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22DC21   Length              0005 (5)\n+22DC23   Flags               01 (1) 'Modification'\n+22DC24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+22DC28 LOCAL HEADER #759     04034B50 (67324752)\n+22DC2C Extract Zip Spec      14 (20) '2.0'\n+22DC2D Extract OS            00 (0) 'MS-DOS'\n+22DC2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22DC30 Compression Method    0000 (0) 'Stored'\n+22DC32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22DC36 CRC                   00000000 (0)\n+22DC3A Compressed Size       00000000 (0)\n+22DC3E Uncompressed Size     00000000 (0)\n+22DC42 Filename Length       0043 (67)\n+22DC44 Extra Length          0009 (9)\n+22DC46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22DC46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22DC89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22DC8B   Length              0005 (5)\n+22DC8D   Flags               01 (1) 'Modification'\n+22DC8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22DC92 PAYLOAD\n+\n+22EA2E DATA DESCRIPTOR       08074B50 (134695760)\n+22EA32 CRC                   42503EDC (1112555228)\n+22EA36 Compressed Size       00000D9C (3484)\n+22EA3A Uncompressed Size     00000D9C (3484)\n+\n+22EA3E LOCAL HEADER #760     04034B50 (67324752)\n+22EA42 Extract Zip Spec      14 (20) '2.0'\n+22EA43 Extract OS            00 (0) 'MS-DOS'\n+22EA44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22EA46 Compression Method    0000 (0) 'Stored'\n+22EA48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22EA4C CRC                   00000000 (0)\n+22EA50 Compressed Size       00000000 (0)\n+22EA54 Uncompressed Size     00000000 (0)\n+22EA58 Filename Length       0044 (68)\n+22EA5A Extra Length          0009 (9)\n+22EA5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22EA5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22EAA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22EAA2   Length              0005 (5)\n+22EAA4   Flags               01 (1) 'Modification'\n+22EAA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22EAA9 PAYLOAD\n+\n+22F78C DATA DESCRIPTOR       08074B50 (134695760)\n+22F790 CRC                   86605046 (2254458950)\n+22F794 Compressed Size       00000CE3 (3299)\n+22F798 Uncompressed Size     00000CE3 (3299)\n+\n+22F79C LOCAL HEADER #761     04034B50 (67324752)\n+22F7A0 Extract Zip Spec      14 (20) '2.0'\n+22F7A1 Extract OS            00 (0) 'MS-DOS'\n+22F7A2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+22F7A4 Compression Method    0000 (0) 'Stored'\n+22F7A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22F7AA CRC                   00000000 (0)\n+22F7AE Compressed Size       00000000 (0)\n+22F7B2 Uncompressed Size     00000000 (0)\n+22F7B6 Filename Length       0045 (69)\n+22F7B8 Extra Length          0009 (9)\n+22F7BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22F7BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+22F7FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+22F801   Length              0005 (5)\n+22F803   Flags               01 (1) 'Modification'\n+22F804   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+22F808 PAYLOAD\n+\n+22FFC3 DATA DESCRIPTOR       08074B50 (134695760)\n+22FFC7 CRC                   C83ECB39 (3359558457)\n+22FFCB Compressed Size       000007BB (1979)\n+22FFCF Uncompressed Size     000007BB (1979)\n+\n+22FFD3 LOCAL HEADER #762     04034B50 (67324752)\n+22FFD7 Extract Zip Spec      14 (20) '2.0'\n+22FFD8 Extract OS            00 (0) 'MS-DOS'\n+22FFD9 General Purpose Flag  0000 (0)\n+22FFDB Compression Method    0000 (0) 'Stored'\n+22FFDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+22FFE1 CRC                   00000000 (0)\n+22FFE5 Compressed Size       00000000 (0)\n+22FFE9 Uncompressed Size     00000000 (0)\n+22FFED Filename Length       0026 (38)\n+22FFEF Extra Length          0009 (9)\n+22FFF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x22FFF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+230017 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+230019   Length              0005 (5)\n+23001B   Flags               01 (1) 'Modification'\n+23001C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+230020 LOCAL HEADER #763     04034B50 (67324752)\n+230024 Extract Zip Spec      14 (20) '2.0'\n+230025 Extract OS            00 (0) 'MS-DOS'\n+230026 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+230028 Compression Method    0000 (0) 'Stored'\n+23002A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23002E CRC                   00000000 (0)\n+230032 Compressed Size       00000000 (0)\n+230036 Uncompressed Size     00000000 (0)\n+23003A Filename Length       0035 (53)\n+23003C Extra Length          0009 (9)\n+23003E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23003E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+230073 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+230075   Length              0005 (5)\n+230077   Flags               01 (1) 'Modification'\n+230078   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23007C PAYLOAD\n+\n+2307D2 DATA DESCRIPTOR       08074B50 (134695760)\n+2307D6 CRC                   4E53FCE8 (1314127080)\n+2307DA Compressed Size       00000756 (1878)\n+2307DE Uncompressed Size     00000756 (1878)\n+\n+2307E2 LOCAL HEADER #764     04034B50 (67324752)\n+2307E6 Extract Zip Spec      14 (20) '2.0'\n+2307E7 Extract OS            00 (0) 'MS-DOS'\n+2307E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2307EA Compression Method    0000 (0) 'Stored'\n+2307EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2307F0 CRC                   00000000 (0)\n+2307F4 Compressed Size       00000000 (0)\n+2307F8 Uncompressed Size     00000000 (0)\n+2307FC Filename Length       0039 (57)\n+2307FE Extra Length          0009 (9)\n+230800 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x230800: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+230839 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23083B   Length              0005 (5)\n+23083D   Flags               01 (1) 'Modification'\n+23083E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+230842 PAYLOAD\n+\n+231535 DATA DESCRIPTOR       08074B50 (134695760)\n+231539 CRC                   58015D22 (1476484386)\n+23153D Compressed Size       00000CF3 (3315)\n+231541 Uncompressed Size     00000CF3 (3315)\n+\n+231545 LOCAL HEADER #765     04034B50 (67324752)\n+231549 Extract Zip Spec      14 (20) '2.0'\n+23154A Extract OS            00 (0) 'MS-DOS'\n+23154B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23154D Compression Method    0000 (0) 'Stored'\n+23154F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+231553 CRC                   00000000 (0)\n+231557 Compressed Size       00000000 (0)\n+23155B Uncompressed Size     00000000 (0)\n+23155F Filename Length       003A (58)\n+231561 Extra Length          0009 (9)\n+231563 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x231563: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23159D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23159F   Length              0005 (5)\n+2315A1   Flags               01 (1) 'Modification'\n+2315A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2315A6 PAYLOAD\n+\n+232110 DATA DESCRIPTOR       08074B50 (134695760)\n+232114 CRC                   5529CB85 (1428802437)\n+232118 Compressed Size       00000B6A (2922)\n+23211C Uncompressed Size     00000B6A (2922)\n+\n+232120 LOCAL HEADER #766     04034B50 (67324752)\n+232124 Extract Zip Spec      14 (20) '2.0'\n+232125 Extract OS            00 (0) 'MS-DOS'\n+232126 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+232128 Compression Method    0000 (0) 'Stored'\n+23212A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23212E CRC                   00000000 (0)\n+232132 Compressed Size       00000000 (0)\n+232136 Uncompressed Size     00000000 (0)\n+23213A Filename Length       003B (59)\n+23213C Extra Length          0009 (9)\n+23213E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23213E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+232179 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23217B   Length              0005 (5)\n+23217D   Flags               01 (1) 'Modification'\n+23217E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+232182 PAYLOAD\n+\n+23290F DATA DESCRIPTOR       08074B50 (134695760)\n+232913 CRC                   78F3EAFE (2029251326)\n+232917 Compressed Size       0000078D (1933)\n+23291B Uncompressed Size     0000078D (1933)\n+\n+23291F LOCAL HEADER #767     04034B50 (67324752)\n+232923 Extract Zip Spec      14 (20) '2.0'\n+232924 Extract OS            00 (0) 'MS-DOS'\n+232925 General Purpose Flag  0000 (0)\n+232927 Compression Method    0000 (0) 'Stored'\n+232929 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23292D CRC                   00000000 (0)\n+232931 Compressed Size       00000000 (0)\n+232935 Uncompressed Size     00000000 (0)\n+232939 Filename Length       0027 (39)\n+23293B Extra Length          0009 (9)\n+23293D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23293D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+232964 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+232966   Length              0005 (5)\n+232968   Flags               01 (1) 'Modification'\n+232969   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+23296D LOCAL HEADER #768     04034B50 (67324752)\n+232971 Extract Zip Spec      14 (20) '2.0'\n+232972 Extract OS            00 (0) 'MS-DOS'\n+232973 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+232975 Compression Method    0000 (0) 'Stored'\n+232977 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23297B CRC                   00000000 (0)\n+23297F Compressed Size       00000000 (0)\n+232983 Uncompressed Size     00000000 (0)\n+232987 Filename Length       003F (63)\n+232989 Extra Length          0009 (9)\n+23298B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23298B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2329CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2329CC   Length              0005 (5)\n+2329CE   Flags               01 (1) 'Modification'\n+2329CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2329D3 PAYLOAD\n+\n+2337A5 DATA DESCRIPTOR       08074B50 (134695760)\n+2337A9 CRC                   7563AE4D (1969466957)\n+2337AD Compressed Size       00000DD2 (3538)\n+2337B1 Uncompressed Size     00000DD2 (3538)\n+\n+2337B5 LOCAL HEADER #769     04034B50 (67324752)\n+2337B9 Extract Zip Spec      14 (20) '2.0'\n+2337BA Extract OS            00 (0) 'MS-DOS'\n+2337BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2337BD Compression Method    0000 (0) 'Stored'\n+2337BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2337C3 CRC                   00000000 (0)\n+2337C7 Compressed Size       00000000 (0)\n+2337CB Uncompressed Size     00000000 (0)\n+2337CF Filename Length       0040 (64)\n+2337D1 Extra Length          0009 (9)\n+2337D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2337D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+233813 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+233815   Length              0005 (5)\n+233817   Flags               01 (1) 'Modification'\n+233818   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23381C PAYLOAD\n+\n+2343C0 DATA DESCRIPTOR       08074B50 (134695760)\n+2343C4 CRC                   470A630B (1191863051)\n+2343C8 Compressed Size       00000BA4 (2980)\n+2343CC Uncompressed Size     00000BA4 (2980)\n+\n+2343D0 LOCAL HEADER #770     04034B50 (67324752)\n+2343D4 Extract Zip Spec      14 (20) '2.0'\n+2343D5 Extract OS            00 (0) 'MS-DOS'\n+2343D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2343D8 Compression Method    0000 (0) 'Stored'\n+2343DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2343DE CRC                   00000000 (0)\n+2343E2 Compressed Size       00000000 (0)\n+2343E6 Uncompressed Size     00000000 (0)\n+2343EA Filename Length       003D (61)\n+2343EC Extra Length          0009 (9)\n+2343EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2343EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23442B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23442D   Length              0005 (5)\n+23442F   Flags               01 (1) 'Modification'\n+234430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+234434 PAYLOAD\n+\n+234B55 DATA DESCRIPTOR       08074B50 (134695760)\n+234B59 CRC                   5EE3566D (1591957101)\n+234B5D Compressed Size       00000721 (1825)\n+234B61 Uncompressed Size     00000721 (1825)\n+\n+234B65 LOCAL HEADER #771     04034B50 (67324752)\n+234B69 Extract Zip Spec      14 (20) '2.0'\n+234B6A Extract OS            00 (0) 'MS-DOS'\n+234B6B General Purpose Flag  0000 (0)\n+234B6D Compression Method    0000 (0) 'Stored'\n+234B6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+234B73 CRC                   00000000 (0)\n+234B77 Compressed Size       00000000 (0)\n+234B7B Uncompressed Size     00000000 (0)\n+234B7F Filename Length       002B (43)\n+234B81 Extra Length          0009 (9)\n+234B83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x234B83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+234BAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+234BB0   Length              0005 (5)\n+234BB2   Flags               01 (1) 'Modification'\n+234BB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+234BB7 LOCAL HEADER #772     04034B50 (67324752)\n+234BBB Extract Zip Spec      14 (20) '2.0'\n+234BBC Extract OS            00 (0) 'MS-DOS'\n+234BBD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+234BBF Compression Method    0000 (0) 'Stored'\n+234BC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+234BC5 CRC                   00000000 (0)\n+234BC9 Compressed Size       00000000 (0)\n+234BCD Uncompressed Size     00000000 (0)\n+234BD1 Filename Length       0043 (67)\n+234BD3 Extra Length          0009 (9)\n+234BD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x234BD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+234C18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+234C1A   Length              0005 (5)\n+234C1C   Flags               01 (1) 'Modification'\n+234C1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+234C21 PAYLOAD\n+\n+2359DD DATA DESCRIPTOR       08074B50 (134695760)\n+2359E1 CRC                   D893DDBD (3633569213)\n+2359E5 Compressed Size       00000DBC (3516)\n+2359E9 Uncompressed Size     00000DBC (3516)\n+\n+2359ED LOCAL HEADER #773     04034B50 (67324752)\n+2359F1 Extract Zip Spec      14 (20) '2.0'\n+2359F2 Extract OS            00 (0) 'MS-DOS'\n+2359F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2359F5 Compression Method    0000 (0) 'Stored'\n+2359F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2359FB CRC                   00000000 (0)\n+2359FF Compressed Size       00000000 (0)\n+235A03 Uncompressed Size     00000000 (0)\n+235A07 Filename Length       0044 (68)\n+235A09 Extra Length          0009 (9)\n+235A0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x235A0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+235A4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+235A51   Length              0005 (5)\n+235A53   Flags               01 (1) 'Modification'\n+235A54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+235A58 PAYLOAD\n+\n+236797 DATA DESCRIPTOR       08074B50 (134695760)\n+23679B CRC                   C397AAA7 (3281496743)\n+23679F Compressed Size       00000D3F (3391)\n+2367A3 Uncompressed Size     00000D3F (3391)\n+\n+2367A7 LOCAL HEADER #774     04034B50 (67324752)\n+2367AB Extract Zip Spec      14 (20) '2.0'\n+2367AC Extract OS            00 (0) 'MS-DOS'\n+2367AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2367AF Compression Method    0000 (0) 'Stored'\n+2367B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2367B5 CRC                   00000000 (0)\n+2367B9 Compressed Size       00000000 (0)\n+2367BD Uncompressed Size     00000000 (0)\n+2367C1 Filename Length       0045 (69)\n+2367C3 Extra Length          0009 (9)\n+2367C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2367C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23680A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23680C   Length              0005 (5)\n+23680E   Flags               01 (1) 'Modification'\n+23680F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+236813 PAYLOAD\n+\n+237009 DATA DESCRIPTOR       08074B50 (134695760)\n+23700D CRC                   33E433F6 (870593526)\n+237011 Compressed Size       000007F6 (2038)\n+237015 Uncompressed Size     000007F6 (2038)\n+\n+237019 LOCAL HEADER #775     04034B50 (67324752)\n+23701D Extract Zip Spec      14 (20) '2.0'\n+23701E Extract OS            00 (0) 'MS-DOS'\n+23701F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+237021 Compression Method    0000 (0) 'Stored'\n+237023 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+237027 CRC                   00000000 (0)\n+23702B Compressed Size       00000000 (0)\n+23702F Uncompressed Size     00000000 (0)\n+237033 Filename Length       0049 (73)\n+237035 Extra Length          0009 (9)\n+237037 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x237037: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+237080 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+237082   Length              0005 (5)\n+237084   Flags               01 (1) 'Modification'\n+237085   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+237089 PAYLOAD\n+\n+23752E DATA DESCRIPTOR       08074B50 (134695760)\n+237532 CRC                   ED1EB0B7 (3978211511)\n+237536 Compressed Size       000004A5 (1189)\n+23753A Uncompressed Size     000004A5 (1189)\n+\n+23753E LOCAL HEADER #776     04034B50 (67324752)\n+237542 Extract Zip Spec      14 (20) '2.0'\n+237543 Extract OS            00 (0) 'MS-DOS'\n+237544 General Purpose Flag  0000 (0)\n+237546 Compression Method    0000 (0) 'Stored'\n+237548 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23754C CRC                   00000000 (0)\n+237550 Compressed Size       00000000 (0)\n+237554 Uncompressed Size     00000000 (0)\n+237558 Filename Length       0031 (49)\n+23755A Extra Length          0009 (9)\n+23755C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23755C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23758D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23758F   Length              0005 (5)\n+237591   Flags               01 (1) 'Modification'\n+237592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+237596 LOCAL HEADER #777     04034B50 (67324752)\n+23759A Extract Zip Spec      14 (20) '2.0'\n+23759B Extract OS            00 (0) 'MS-DOS'\n+23759C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23759E Compression Method    0000 (0) 'Stored'\n+2375A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2375A4 CRC                   00000000 (0)\n+2375A8 Compressed Size       00000000 (0)\n+2375AC Uncompressed Size     00000000 (0)\n+2375B0 Filename Length       0058 (88)\n+2375B2 Extra Length          0009 (9)\n+2375B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2375B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23760C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23760E   Length              0005 (5)\n+237610   Flags               01 (1) 'Modification'\n+237611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+237615 PAYLOAD\n+\n+237BE1 DATA DESCRIPTOR       08074B50 (134695760)\n+237BE5 CRC                   589CDBF7 (1486674935)\n+237BE9 Compressed Size       000005CC (1484)\n+237BED Uncompressed Size     000005CC (1484)\n+\n+237BF1 LOCAL HEADER #778     04034B50 (67324752)\n+237BF5 Extract Zip Spec      14 (20) '2.0'\n+237BF6 Extract OS            00 (0) 'MS-DOS'\n+237BF7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+237BF9 Compression Method    0000 (0) 'Stored'\n+237BFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+237BFF CRC                   00000000 (0)\n+237C03 Compressed Size       00000000 (0)\n+237C07 Uncompressed Size     00000000 (0)\n+237C0B Filename Length       0057 (87)\n+237C0D Extra Length          0009 (9)\n+237C0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x237C0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+237C66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+237C68   Length              0005 (5)\n+237C6A   Flags               01 (1) 'Modification'\n+237C6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+237C6F PAYLOAD\n+\n+238151 DATA DESCRIPTOR       08074B50 (134695760)\n+238155 CRC                   35094442 (889799746)\n+238159 Compressed Size       000004E2 (1250)\n+23815D Uncompressed Size     000004E2 (1250)\n+\n+238161 LOCAL HEADER #779     04034B50 (67324752)\n+238165 Extract Zip Spec      14 (20) '2.0'\n+238166 Extract OS            00 (0) 'MS-DOS'\n+238167 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+238169 Compression Method    0000 (0) 'Stored'\n+23816B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23816F CRC                   00000000 (0)\n+238173 Compressed Size       00000000 (0)\n+238177 Uncompressed Size     00000000 (0)\n+23817B Filename Length       0050 (80)\n+23817D Extra Length          0009 (9)\n+23817F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23817F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2381CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2381D1   Length              0005 (5)\n+2381D3   Flags               01 (1) 'Modification'\n+2381D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2381D8 PAYLOAD\n+\n+23892C DATA DESCRIPTOR       08074B50 (134695760)\n+238930 CRC                   F8518504 (4166092036)\n+238934 Compressed Size       00000754 (1876)\n+238938 Uncompressed Size     00000754 (1876)\n+\n+23893C LOCAL HEADER #780     04034B50 (67324752)\n+238940 Extract Zip Spec      14 (20) '2.0'\n+238941 Extract OS            00 (0) 'MS-DOS'\n+238942 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+238944 Compression Method    0000 (0) 'Stored'\n+238946 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23894A CRC                   00000000 (0)\n+23894E Compressed Size       00000000 (0)\n+238952 Uncompressed Size     00000000 (0)\n+238956 Filename Length       0059 (89)\n+238958 Extra Length          0009 (9)\n+23895A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23895A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2389B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2389B5   Length              0005 (5)\n+2389B7   Flags               01 (1) 'Modification'\n+2389B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2389BC PAYLOAD\n+\n+239280 DATA DESCRIPTOR       08074B50 (134695760)\n+239284 CRC                   C6552311 (3327468305)\n+239288 Compressed Size       000008C4 (2244)\n+23928C Uncompressed Size     000008C4 (2244)\n+\n+239290 LOCAL HEADER #781     04034B50 (67324752)\n+239294 Extract Zip Spec      14 (20) '2.0'\n+239295 Extract OS            00 (0) 'MS-DOS'\n+239296 General Purpose Flag  0000 (0)\n+239298 Compression Method    0000 (0) 'Stored'\n+23929A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23929E CRC                   00000000 (0)\n+2392A2 Compressed Size       00000000 (0)\n+2392A6 Uncompressed Size     00000000 (0)\n+2392AA Filename Length       0027 (39)\n+2392AC Extra Length          0009 (9)\n+2392AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2392AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2392D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2392D7   Length              0005 (5)\n+2392D9   Flags               01 (1) 'Modification'\n+2392DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2392DE LOCAL HEADER #782     04034B50 (67324752)\n+2392E2 Extract Zip Spec      14 (20) '2.0'\n+2392E3 Extract OS            00 (0) 'MS-DOS'\n+2392E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2392E6 Compression Method    0000 (0) 'Stored'\n+2392E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2392EC CRC                   00000000 (0)\n+2392F0 Compressed Size       00000000 (0)\n+2392F4 Uncompressed Size     00000000 (0)\n+2392F8 Filename Length       0046 (70)\n+2392FA Extra Length          0009 (9)\n+2392FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2392FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+239342 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+239344   Length              0005 (5)\n+239346   Flags               01 (1) 'Modification'\n+239347   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23934B PAYLOAD\n+\n+239B28 DATA DESCRIPTOR       08074B50 (134695760)\n+239B2C CRC                   C9462C54 (3376819284)\n+239B30 Compressed Size       000007DD (2013)\n+239B34 Uncompressed Size     000007DD (2013)\n+\n+239B38 LOCAL HEADER #783     04034B50 (67324752)\n+239B3C Extract Zip Spec      14 (20) '2.0'\n+239B3D Extract OS            00 (0) 'MS-DOS'\n+239B3E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+239B40 Compression Method    0000 (0) 'Stored'\n+239B42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+239B46 CRC                   00000000 (0)\n+239B4A Compressed Size       00000000 (0)\n+239B4E Uncompressed Size     00000000 (0)\n+239B52 Filename Length       0046 (70)\n+239B54 Extra Length          0009 (9)\n+239B56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x239B56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+239B9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+239B9E   Length              0005 (5)\n+239BA0   Flags               01 (1) 'Modification'\n+239BA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+239BA5 PAYLOAD\n+\n+23A4E5 DATA DESCRIPTOR       08074B50 (134695760)\n+23A4E9 CRC                   4C5ED1C3 (1281282499)\n+23A4ED Compressed Size       00000940 (2368)\n+23A4F1 Uncompressed Size     00000940 (2368)\n+\n+23A4F5 LOCAL HEADER #784     04034B50 (67324752)\n+23A4F9 Extract Zip Spec      14 (20) '2.0'\n+23A4FA Extract OS            00 (0) 'MS-DOS'\n+23A4FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23A4FD Compression Method    0000 (0) 'Stored'\n+23A4FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23A503 CRC                   00000000 (0)\n+23A507 Compressed Size       00000000 (0)\n+23A50B Uncompressed Size     00000000 (0)\n+23A50F Filename Length       0047 (71)\n+23A511 Extra Length          0009 (9)\n+23A513 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23A513: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23A55A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23A55C   Length              0005 (5)\n+23A55E   Flags               01 (1) 'Modification'\n+23A55F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23A563 PAYLOAD\n+\n+23ABAA DATA DESCRIPTOR       08074B50 (134695760)\n+23ABAE CRC                   1A06EC84 (436661380)\n+23ABB2 Compressed Size       00000647 (1607)\n+23ABB6 Uncompressed Size     00000647 (1607)\n+\n+23ABBA LOCAL HEADER #785     04034B50 (67324752)\n+23ABBE Extract Zip Spec      14 (20) '2.0'\n+23ABBF Extract OS            00 (0) 'MS-DOS'\n+23ABC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23ABC2 Compression Method    0000 (0) 'Stored'\n+23ABC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23ABC8 CRC                   00000000 (0)\n+23ABCC Compressed Size       00000000 (0)\n+23ABD0 Uncompressed Size     00000000 (0)\n+23ABD4 Filename Length       003B (59)\n+23ABD6 Extra Length          0009 (9)\n+23ABD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23ABD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23AC13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23AC15   Length              0005 (5)\n+23AC17   Flags               01 (1) 'Modification'\n+23AC18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23AC1C PAYLOAD\n+\n+23B7A0 DATA DESCRIPTOR       08074B50 (134695760)\n+23B7A4 CRC                   EBC07089 (3955257481)\n+23B7A8 Compressed Size       00000B84 (2948)\n+23B7AC Uncompressed Size     00000B84 (2948)\n+\n+23B7B0 LOCAL HEADER #786     04034B50 (67324752)\n+23B7B4 Extract Zip Spec      14 (20) '2.0'\n+23B7B5 Extract OS            00 (0) 'MS-DOS'\n+23B7B6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23B7B8 Compression Method    0000 (0) 'Stored'\n+23B7BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23B7BE CRC                   00000000 (0)\n+23B7C2 Compressed Size       00000000 (0)\n+23B7C6 Uncompressed Size     00000000 (0)\n+23B7CA Filename Length       003C (60)\n+23B7CC Extra Length          0009 (9)\n+23B7CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23B7CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23B80A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23B80C   Length              0005 (5)\n+23B80E   Flags               01 (1) 'Modification'\n+23B80F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23B813 PAYLOAD\n+\n+23C094 DATA DESCRIPTOR       08074B50 (134695760)\n+23C098 CRC                   BE6D297E (3194825086)\n+23C09C Compressed Size       00000881 (2177)\n+23C0A0 Uncompressed Size     00000881 (2177)\n+\n+23C0A4 LOCAL HEADER #787     04034B50 (67324752)\n+23C0A8 Extract Zip Spec      14 (20) '2.0'\n+23C0A9 Extract OS            00 (0) 'MS-DOS'\n+23C0AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23C0AC Compression Method    0000 (0) 'Stored'\n+23C0AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23C0B2 CRC                   00000000 (0)\n+23C0B6 Compressed Size       00000000 (0)\n+23C0BA Uncompressed Size     00000000 (0)\n+23C0BE Filename Length       003D (61)\n+23C0C0 Extra Length          0009 (9)\n+23C0C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23C0C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23C0FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23C101   Length              0005 (5)\n+23C103   Flags               01 (1) 'Modification'\n+23C104   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23C108 PAYLOAD\n+\n+23C8A0 DATA DESCRIPTOR       08074B50 (134695760)\n+23C8A4 CRC                   9ED05045 (2664452165)\n+23C8A8 Compressed Size       00000798 (1944)\n+23C8AC Uncompressed Size     00000798 (1944)\n+\n+23C8B0 LOCAL HEADER #788     04034B50 (67324752)\n+23C8B4 Extract Zip Spec      14 (20) '2.0'\n+23C8B5 Extract OS            00 (0) 'MS-DOS'\n+23C8B6 General Purpose Flag  0000 (0)\n+23C8B8 Compression Method    0000 (0) 'Stored'\n+23C8BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23C8BE CRC                   00000000 (0)\n+23C8C2 Compressed Size       00000000 (0)\n+23C8C6 Uncompressed Size     00000000 (0)\n+23C8CA Filename Length       0027 (39)\n+23C8CC Extra Length          0009 (9)\n+23C8CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23C8CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23C8F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23C8F7   Length              0005 (5)\n+23C8F9   Flags               01 (1) 'Modification'\n+23C8FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+23C8FE LOCAL HEADER #789     04034B50 (67324752)\n+23C902 Extract Zip Spec      14 (20) '2.0'\n+23C903 Extract OS            00 (0) 'MS-DOS'\n+23C904 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23C906 Compression Method    0000 (0) 'Stored'\n+23C908 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23C90C CRC                   00000000 (0)\n+23C910 Compressed Size       00000000 (0)\n+23C914 Uncompressed Size     00000000 (0)\n+23C918 Filename Length       003A (58)\n+23C91A Extra Length          0009 (9)\n+23C91C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23C91C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23C956 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23C958   Length              0005 (5)\n+23C95A   Flags               01 (1) 'Modification'\n+23C95B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23C95F PAYLOAD\n+\n+23D3E4 DATA DESCRIPTOR       08074B50 (134695760)\n+23D3E8 CRC                   D8DFD1C9 (3638546889)\n+23D3EC Compressed Size       00000A85 (2693)\n+23D3F0 Uncompressed Size     00000A85 (2693)\n+\n+23D3F4 LOCAL HEADER #790     04034B50 (67324752)\n+23D3F8 Extract Zip Spec      14 (20) '2.0'\n+23D3F9 Extract OS            00 (0) 'MS-DOS'\n+23D3FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23D3FC Compression Method    0000 (0) 'Stored'\n+23D3FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23D402 CRC                   00000000 (0)\n+23D406 Compressed Size       00000000 (0)\n+23D40A Uncompressed Size     00000000 (0)\n+23D40E Filename Length       003B (59)\n+23D410 Extra Length          0009 (9)\n+23D412 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23D412: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23D44D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23D44F   Length              0005 (5)\n+23D451   Flags               01 (1) 'Modification'\n+23D452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23D456 PAYLOAD\n+\n+23E64C DATA DESCRIPTOR       08074B50 (134695760)\n+23E650 CRC                   70240B76 (1881410422)\n+23E654 Compressed Size       000011F6 (4598)\n+23E658 Uncompressed Size     000011F6 (4598)\n+\n+23E65C LOCAL HEADER #791     04034B50 (67324752)\n+23E660 Extract Zip Spec      14 (20) '2.0'\n+23E661 Extract OS            00 (0) 'MS-DOS'\n+23E662 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23E664 Compression Method    0000 (0) 'Stored'\n+23E666 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23E66A CRC                   00000000 (0)\n+23E66E Compressed Size       00000000 (0)\n+23E672 Uncompressed Size     00000000 (0)\n+23E676 Filename Length       003C (60)\n+23E678 Extra Length          0009 (9)\n+23E67A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23E67A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23E6B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23E6B8   Length              0005 (5)\n+23E6BA   Flags               01 (1) 'Modification'\n+23E6BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23E6BF PAYLOAD\n+\n+23F3A9 DATA DESCRIPTOR       08074B50 (134695760)\n+23F3AD CRC                   8E4DF810 (2387474448)\n+23F3B1 Compressed Size       00000CEA (3306)\n+23F3B5 Uncompressed Size     00000CEA (3306)\n+\n+23F3B9 LOCAL HEADER #792     04034B50 (67324752)\n+23F3BD Extract Zip Spec      14 (20) '2.0'\n+23F3BE Extract OS            00 (0) 'MS-DOS'\n+23F3BF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23F3C1 Compression Method    0000 (0) 'Stored'\n+23F3C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23F3C7 CRC                   00000000 (0)\n+23F3CB Compressed Size       00000000 (0)\n+23F3CF Uncompressed Size     00000000 (0)\n+23F3D3 Filename Length       003D (61)\n+23F3D5 Extra Length          0009 (9)\n+23F3D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23F3D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23F414 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23F416   Length              0005 (5)\n+23F418   Flags               01 (1) 'Modification'\n+23F419   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23F41D PAYLOAD\n+\n+23FBF6 DATA DESCRIPTOR       08074B50 (134695760)\n+23FBFA CRC                   1A2117E1 (438376417)\n+23FBFE Compressed Size       000007D9 (2009)\n+23FC02 Uncompressed Size     000007D9 (2009)\n+\n+23FC06 LOCAL HEADER #793     04034B50 (67324752)\n+23FC0A Extract Zip Spec      14 (20) '2.0'\n+23FC0B Extract OS            00 (0) 'MS-DOS'\n+23FC0C General Purpose Flag  0000 (0)\n+23FC0E Compression Method    0000 (0) 'Stored'\n+23FC10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23FC14 CRC                   00000000 (0)\n+23FC18 Compressed Size       00000000 (0)\n+23FC1C Uncompressed Size     00000000 (0)\n+23FC20 Filename Length       0031 (49)\n+23FC22 Extra Length          0009 (9)\n+23FC24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23FC24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23FC55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23FC57   Length              0005 (5)\n+23FC59   Flags               01 (1) 'Modification'\n+23FC5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+23FC5E LOCAL HEADER #794     04034B50 (67324752)\n+23FC62 Extract Zip Spec      14 (20) '2.0'\n+23FC63 Extract OS            00 (0) 'MS-DOS'\n+23FC64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+23FC66 Compression Method    0000 (0) 'Stored'\n+23FC68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+23FC6C CRC                   00000000 (0)\n+23FC70 Compressed Size       00000000 (0)\n+23FC74 Uncompressed Size     00000000 (0)\n+23FC78 Filename Length       0046 (70)\n+23FC7A Extra Length          0009 (9)\n+23FC7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x23FC7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+23FCC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+23FCC4   Length              0005 (5)\n+23FCC6   Flags               01 (1) 'Modification'\n+23FCC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+23FCCB PAYLOAD\n+\n+24102A DATA DESCRIPTOR       08074B50 (134695760)\n+24102E CRC                   9E944773 (2660517747)\n+241032 Compressed Size       0000135F (4959)\n+241036 Uncompressed Size     0000135F (4959)\n+\n+24103A LOCAL HEADER #795     04034B50 (67324752)\n+24103E Extract Zip Spec      14 (20) '2.0'\n+24103F Extract OS            00 (0) 'MS-DOS'\n+241040 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+241042 Compression Method    0000 (0) 'Stored'\n+241044 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+241048 CRC                   00000000 (0)\n+24104C Compressed Size       00000000 (0)\n+241050 Uncompressed Size     00000000 (0)\n+241054 Filename Length       0047 (71)\n+241056 Extra Length          0009 (9)\n+241058 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x241058: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24109F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2410A1   Length              0005 (5)\n+2410A3   Flags               01 (1) 'Modification'\n+2410A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2410A8 PAYLOAD\n+\n+241DFF DATA DESCRIPTOR       08074B50 (134695760)\n+241E03 CRC                   75FA3855 (1979332693)\n+241E07 Compressed Size       00000D57 (3415)\n+241E0B Uncompressed Size     00000D57 (3415)\n+\n+241E0F LOCAL HEADER #796     04034B50 (67324752)\n+241E13 Extract Zip Spec      14 (20) '2.0'\n+241E14 Extract OS            00 (0) 'MS-DOS'\n+241E15 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+241E17 Compression Method    0000 (0) 'Stored'\n+241E19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+241E1D CRC                   00000000 (0)\n+241E21 Compressed Size       00000000 (0)\n+241E25 Uncompressed Size     00000000 (0)\n+241E29 Filename Length       0048 (72)\n+241E2B Extra Length          0009 (9)\n+241E2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x241E2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+241E75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+241E77   Length              0005 (5)\n+241E79   Flags               01 (1) 'Modification'\n+241E7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+241E7E PAYLOAD\n+\n+242650 DATA DESCRIPTOR       08074B50 (134695760)\n+242654 CRC                   90B7F551 (2427974993)\n+242658 Compressed Size       000007D2 (2002)\n+24265C Uncompressed Size     000007D2 (2002)\n+\n+242660 LOCAL HEADER #797     04034B50 (67324752)\n+242664 Extract Zip Spec      14 (20) '2.0'\n+242665 Extract OS            00 (0) 'MS-DOS'\n+242666 General Purpose Flag  0000 (0)\n+242668 Compression Method    0000 (0) 'Stored'\n+24266A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24266E CRC                   00000000 (0)\n+242672 Compressed Size       00000000 (0)\n+242676 Uncompressed Size     00000000 (0)\n+24267A Filename Length       002D (45)\n+24267C Extra Length          0009 (9)\n+24267E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24267E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2426AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2426AD   Length              0005 (5)\n+2426AF   Flags               01 (1) 'Modification'\n+2426B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2426B4 LOCAL HEADER #798     04034B50 (67324752)\n+2426B8 Extract Zip Spec      14 (20) '2.0'\n+2426B9 Extract OS            00 (0) 'MS-DOS'\n+2426BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2426BC Compression Method    0000 (0) 'Stored'\n+2426BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2426C2 CRC                   00000000 (0)\n+2426C6 Compressed Size       00000000 (0)\n+2426CA Uncompressed Size     00000000 (0)\n+2426CE Filename Length       0045 (69)\n+2426D0 Extra Length          0009 (9)\n+2426D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2426D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+242717 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+242719   Length              0005 (5)\n+24271B   Flags               01 (1) 'Modification'\n+24271C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+242720 PAYLOAD\n+\n+243E70 DATA DESCRIPTOR       08074B50 (134695760)\n+243E74 CRC                   B5FDD8AE (3053312174)\n+243E78 Compressed Size       00001750 (5968)\n+243E7C Uncompressed Size     00001750 (5968)\n+\n+243E80 LOCAL HEADER #799     04034B50 (67324752)\n+243E84 Extract Zip Spec      14 (20) '2.0'\n+243E85 Extract OS            00 (0) 'MS-DOS'\n+243E86 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+243E88 Compression Method    0000 (0) 'Stored'\n+243E8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+243E8E CRC                   00000000 (0)\n+243E92 Compressed Size       00000000 (0)\n+243E96 Uncompressed Size     00000000 (0)\n+243E9A Filename Length       003B (59)\n+243E9C Extra Length          0009 (9)\n+243E9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x243E9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+243ED9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+243EDB   Length              0005 (5)\n+243EDD   Flags               01 (1) 'Modification'\n+243EDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+243EE2 PAYLOAD\n+\n+2444D9 DATA DESCRIPTOR       08074B50 (134695760)\n+2444DD CRC                   F7853FBB (4152704955)\n+2444E1 Compressed Size       000005F7 (1527)\n+2444E5 Uncompressed Size     000005F7 (1527)\n+\n+2444E9 LOCAL HEADER #800     04034B50 (67324752)\n+2444ED Extract Zip Spec      14 (20) '2.0'\n+2444EE Extract OS            00 (0) 'MS-DOS'\n+2444EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2444F1 Compression Method    0000 (0) 'Stored'\n+2444F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2444F7 CRC                   00000000 (0)\n+2444FB Compressed Size       00000000 (0)\n+2444FF Uncompressed Size     00000000 (0)\n+244503 Filename Length       0043 (67)\n+244505 Extra Length          0009 (9)\n+244507 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x244507: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24454A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24454C   Length              0005 (5)\n+24454E   Flags               01 (1) 'Modification'\n+24454F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+244553 PAYLOAD\n+\n+244AD8 DATA DESCRIPTOR       08074B50 (134695760)\n+244ADC CRC                   E7186373 (3877135219)\n+244AE0 Compressed Size       00000585 (1413)\n+244AE4 Uncompressed Size     00000585 (1413)\n+\n+244AE8 LOCAL HEADER #801     04034B50 (67324752)\n+244AEC Extract Zip Spec      14 (20) '2.0'\n+244AED Extract OS            00 (0) 'MS-DOS'\n+244AEE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+244AF0 Compression Method    0000 (0) 'Stored'\n+244AF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+244AF6 CRC                   00000000 (0)\n+244AFA Compressed Size       00000000 (0)\n+244AFE Uncompressed Size     00000000 (0)\n+244B02 Filename Length       0046 (70)\n+244B04 Extra Length          0009 (9)\n+244B06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x244B06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+244B4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+244B4E   Length              0005 (5)\n+244B50   Flags               01 (1) 'Modification'\n+244B51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+244B55 PAYLOAD\n+\n+244FD5 DATA DESCRIPTOR       08074B50 (134695760)\n+244FD9 CRC                   080350B9 (134435001)\n+244FDD Compressed Size       00000480 (1152)\n+244FE1 Uncompressed Size     00000480 (1152)\n+\n+244FE5 LOCAL HEADER #802     04034B50 (67324752)\n+244FE9 Extract Zip Spec      14 (20) '2.0'\n+244FEA Extract OS            00 (0) 'MS-DOS'\n+244FEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+244FED Compression Method    0000 (0) 'Stored'\n+244FEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+244FF3 CRC                   00000000 (0)\n+244FF7 Compressed Size       00000000 (0)\n+244FFB Uncompressed Size     00000000 (0)\n+244FFF Filename Length       0048 (72)\n+245001 Extra Length          0009 (9)\n+245003 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x245003: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24504B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24504D   Length              0005 (5)\n+24504F   Flags               01 (1) 'Modification'\n+245050   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+245054 PAYLOAD\n+\n+245591 DATA DESCRIPTOR       08074B50 (134695760)\n+245595 CRC                   39A8FB9C (967375772)\n+245599 Compressed Size       0000053D (1341)\n+24559D Uncompressed Size     0000053D (1341)\n+\n+2455A1 LOCAL HEADER #803     04034B50 (67324752)\n+2455A5 Extract Zip Spec      14 (20) '2.0'\n+2455A6 Extract OS            00 (0) 'MS-DOS'\n+2455A7 General Purpose Flag  0000 (0)\n+2455A9 Compression Method    0000 (0) 'Stored'\n+2455AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2455AF CRC                   00000000 (0)\n+2455B3 Compressed Size       00000000 (0)\n+2455B7 Uncompressed Size     00000000 (0)\n+2455BB Filename Length       002D (45)\n+2455BD Extra Length          0009 (9)\n+2455BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2455BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2455EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2455EE   Length              0005 (5)\n+2455F0   Flags               01 (1) 'Modification'\n+2455F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2455F5 LOCAL HEADER #804     04034B50 (67324752)\n+2455F9 Extract Zip Spec      14 (20) '2.0'\n+2455FA Extract OS            00 (0) 'MS-DOS'\n+2455FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2455FD Compression Method    0000 (0) 'Stored'\n+2455FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+245603 CRC                   00000000 (0)\n+245607 Compressed Size       00000000 (0)\n+24560B Uncompressed Size     00000000 (0)\n+24560F Filename Length       0047 (71)\n+245611 Extra Length          0009 (9)\n+245613 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x245613: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24565A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24565C   Length              0005 (5)\n+24565E   Flags               01 (1) 'Modification'\n+24565F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+245663 PAYLOAD\n+\n+2463E1 DATA DESCRIPTOR       08074B50 (134695760)\n+2463E5 CRC                   6029E0CC (1613357260)\n+2463E9 Compressed Size       00000D7E (3454)\n+2463ED Uncompressed Size     00000D7E (3454)\n+\n+2463F1 LOCAL HEADER #805     04034B50 (67324752)\n+2463F5 Extract Zip Spec      14 (20) '2.0'\n+2463F6 Extract OS            00 (0) 'MS-DOS'\n+2463F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2463F9 Compression Method    0000 (0) 'Stored'\n+2463FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2463FF CRC                   00000000 (0)\n+246403 Compressed Size       00000000 (0)\n+246407 Uncompressed Size     00000000 (0)\n+24640B Filename Length       0048 (72)\n+24640D Extra Length          0009 (9)\n+24640F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24640F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+246457 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+246459   Length              0005 (5)\n+24645B   Flags               01 (1) 'Modification'\n+24645C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+246460 PAYLOAD\n+\n+24714E DATA DESCRIPTOR       08074B50 (134695760)\n+247152 CRC                   5EB75116 (1589072150)\n+247156 Compressed Size       00000CEE (3310)\n+24715A Uncompressed Size     00000CEE (3310)\n+\n+24715E LOCAL HEADER #806     04034B50 (67324752)\n+247162 Extract Zip Spec      14 (20) '2.0'\n+247163 Extract OS            00 (0) 'MS-DOS'\n+247164 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+247166 Compression Method    0000 (0) 'Stored'\n+247168 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24716C CRC                   00000000 (0)\n+247170 Compressed Size       00000000 (0)\n+247174 Uncompressed Size     00000000 (0)\n+247178 Filename Length       0049 (73)\n+24717A Extra Length          0009 (9)\n+24717C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24717C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2471C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2471C7   Length              0005 (5)\n+2471C9   Flags               01 (1) 'Modification'\n+2471CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2471CE PAYLOAD\n+\n+2479AD DATA DESCRIPTOR       08074B50 (134695760)\n+2479B1 CRC                   20799CC3 (544840899)\n+2479B5 Compressed Size       000007DF (2015)\n+2479B9 Uncompressed Size     000007DF (2015)\n+\n+2479BD LOCAL HEADER #807     04034B50 (67324752)\n+2479C1 Extract Zip Spec      14 (20) '2.0'\n+2479C2 Extract OS            00 (0) 'MS-DOS'\n+2479C3 General Purpose Flag  0000 (0)\n+2479C5 Compression Method    0000 (0) 'Stored'\n+2479C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2479CB CRC                   00000000 (0)\n+2479CF Compressed Size       00000000 (0)\n+2479D3 Uncompressed Size     00000000 (0)\n+2479D7 Filename Length       002B (43)\n+2479D9 Extra Length          0009 (9)\n+2479DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2479DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+247A06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+247A08   Length              0005 (5)\n+247A0A   Flags               01 (1) 'Modification'\n+247A0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+247A0F LOCAL HEADER #808     04034B50 (67324752)\n+247A13 Extract Zip Spec      14 (20) '2.0'\n+247A14 Extract OS            00 (0) 'MS-DOS'\n+247A15 General Purpose Flag  0000 (0)\n+247A17 Compression Method    0000 (0) 'Stored'\n+247A19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+247A1D CRC                   00000000 (0)\n+247A21 Compressed Size       00000000 (0)\n+247A25 Uncompressed Size     00000000 (0)\n+247A29 Filename Length       0033 (51)\n+247A2B Extra Length          0009 (9)\n+247A2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x247A2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+247A60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+247A62   Length              0005 (5)\n+247A64   Flags               01 (1) 'Modification'\n+247A65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+247A69 LOCAL HEADER #809     04034B50 (67324752)\n+247A6D Extract Zip Spec      14 (20) '2.0'\n+247A6E Extract OS            00 (0) 'MS-DOS'\n+247A6F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+247A71 Compression Method    0000 (0) 'Stored'\n+247A73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+247A77 CRC                   00000000 (0)\n+247A7B Compressed Size       00000000 (0)\n+247A7F Uncompressed Size     00000000 (0)\n+247A83 Filename Length       0056 (86)\n+247A85 Extra Length          0009 (9)\n+247A87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x247A87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+247ADD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+247ADF   Length              0005 (5)\n+247AE1   Flags               01 (1) 'Modification'\n+247AE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+247AE6 PAYLOAD\n+\n+249081 DATA DESCRIPTOR       08074B50 (134695760)\n+249085 CRC                   770B2AC5 (1997220549)\n+249089 Compressed Size       0000159B (5531)\n+24908D Uncompressed Size     0000159B (5531)\n+\n+249091 LOCAL HEADER #810     04034B50 (67324752)\n+249095 Extract Zip Spec      14 (20) '2.0'\n+249096 Extract OS            00 (0) 'MS-DOS'\n+249097 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+249099 Compression Method    0000 (0) 'Stored'\n+24909B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24909F CRC                   00000000 (0)\n+2490A3 Compressed Size       00000000 (0)\n+2490A7 Uncompressed Size     00000000 (0)\n+2490AB Filename Length       0057 (87)\n+2490AD Extra Length          0009 (9)\n+2490AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2490AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+249106 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+249108   Length              0005 (5)\n+24910A   Flags               01 (1) 'Modification'\n+24910B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24910F PAYLOAD\n+\n+24A68F DATA DESCRIPTOR       08074B50 (134695760)\n+24A693 CRC                   680E4C03 (1745767427)\n+24A697 Compressed Size       00001580 (5504)\n+24A69B Uncompressed Size     00001580 (5504)\n+\n+24A69F LOCAL HEADER #811     04034B50 (67324752)\n+24A6A3 Extract Zip Spec      14 (20) '2.0'\n+24A6A4 Extract OS            00 (0) 'MS-DOS'\n+24A6A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+24A6A7 Compression Method    0000 (0) 'Stored'\n+24A6A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24A6AD CRC                   00000000 (0)\n+24A6B1 Compressed Size       00000000 (0)\n+24A6B5 Uncompressed Size     00000000 (0)\n+24A6B9 Filename Length       0058 (88)\n+24A6BB Extra Length          0009 (9)\n+24A6BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24A6BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24A715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24A717   Length              0005 (5)\n+24A719   Flags               01 (1) 'Modification'\n+24A71A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24A71E PAYLOAD\n+\n+24AED2 DATA DESCRIPTOR       08074B50 (134695760)\n+24AED6 CRC                   CECB8E17 (3469446679)\n+24AEDA Compressed Size       000007B4 (1972)\n+24AEDE Uncompressed Size     000007B4 (1972)\n+\n+24AEE2 LOCAL HEADER #812     04034B50 (67324752)\n+24AEE6 Extract Zip Spec      14 (20) '2.0'\n+24AEE7 Extract OS            00 (0) 'MS-DOS'\n+24AEE8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+24AEEA Compression Method    0000 (0) 'Stored'\n+24AEEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24AEF0 CRC                   00000000 (0)\n+24AEF4 Compressed Size       00000000 (0)\n+24AEF8 Uncompressed Size     00000000 (0)\n+24AEFC Filename Length       0052 (82)\n+24AEFE Extra Length          0009 (9)\n+24AF00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24AF00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24AF52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24AF54   Length              0005 (5)\n+24AF56   Flags               01 (1) 'Modification'\n+24AF57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24AF5B PAYLOAD\n+\n+24C295 DATA DESCRIPTOR       08074B50 (134695760)\n+24C299 CRC                   16AE2BE0 (380513248)\n+24C29D Compressed Size       0000133A (4922)\n+24C2A1 Uncompressed Size     0000133A (4922)\n+\n+24C2A5 LOCAL HEADER #813     04034B50 (67324752)\n+24C2A9 Extract Zip Spec      14 (20) '2.0'\n+24C2AA Extract OS            00 (0) 'MS-DOS'\n+24C2AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+24C2AD Compression Method    0000 (0) 'Stored'\n+24C2AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24C2B3 CRC                   00000000 (0)\n+24C2B7 Compressed Size       00000000 (0)\n+24C2BB Uncompressed Size     00000000 (0)\n+24C2BF Filename Length       0053 (83)\n+24C2C1 Extra Length          0009 (9)\n+24C2C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24C2C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24C316 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24C318   Length              0005 (5)\n+24C31A   Flags               01 (1) 'Modification'\n+24C31B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24C31F PAYLOAD\n+\n+24D8BC DATA DESCRIPTOR       08074B50 (134695760)\n+24D8C0 CRC                   71435F02 (1900240642)\n+24D8C4 Compressed Size       0000159D (5533)\n+24D8C8 Uncompressed Size     0000159D (5533)\n+\n+24D8CC LOCAL HEADER #814     04034B50 (67324752)\n+24D8D0 Extract Zip Spec      14 (20) '2.0'\n+24D8D1 Extract OS            00 (0) 'MS-DOS'\n+24D8D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+24D8D4 Compression Method    0000 (0) 'Stored'\n+24D8D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24D8DA CRC                   00000000 (0)\n+24D8DE Compressed Size       00000000 (0)\n+24D8E2 Uncompressed Size     00000000 (0)\n+24D8E6 Filename Length       0054 (84)\n+24D8E8 Extra Length          0009 (9)\n+24D8EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24D8EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24D93E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24D940   Length              0005 (5)\n+24D942   Flags               01 (1) 'Modification'\n+24D943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24D947 PAYLOAD\n+\n+24E30D DATA DESCRIPTOR       08074B50 (134695760)\n+24E311 CRC                   A92A8781 (2838136705)\n+24E315 Compressed Size       000009C6 (2502)\n+24E319 Uncompressed Size     000009C6 (2502)\n+\n+24E31D LOCAL HEADER #815     04034B50 (67324752)\n+24E321 Extract Zip Spec      14 (20) '2.0'\n+24E322 Extract OS            00 (0) 'MS-DOS'\n+24E323 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+24E325 Compression Method    0000 (0) 'Stored'\n+24E327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+24E32B CRC                   00000000 (0)\n+24E32F Compressed Size       00000000 (0)\n+24E333 Uncompressed Size     00000000 (0)\n+24E337 Filename Length       0045 (69)\n+24E339 Extra Length          0009 (9)\n+24E33B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x24E33B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+24E380 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+24E382   Length              0005 (5)\n+24E384   Flags               01 (1) 'Modification'\n+24E385   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+24E389 PAYLOAD\n+\n+250422 DATA DESCRIPTOR       08074B50 (134695760)\n+250426 CRC                   7EEE431C (2129543964)\n+25042A Compressed Size       00002099 (8345)\n+25042E Uncompressed Size     00002099 (8345)\n+\n+250432 LOCAL HEADER #816     04034B50 (67324752)\n+250436 Extract Zip Spec      14 (20) '2.0'\n+250437 Extract OS            00 (0) 'MS-DOS'\n+250438 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+25043A Compression Method    0000 (0) 'Stored'\n+25043C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+250440 CRC                   00000000 (0)\n+250444 Compressed Size       00000000 (0)\n+250448 Uncompressed Size     00000000 (0)\n+25044C Filename Length       0050 (80)\n+25044E Extra Length          0009 (9)\n+250450 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x250450: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2504A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2504A2   Length              0005 (5)\n+2504A4   Flags               01 (1) 'Modification'\n+2504A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2504A9 PAYLOAD\n+\n+250EFE DATA DESCRIPTOR       08074B50 (134695760)\n+250F02 CRC                   E46DD072 (3832402034)\n+250F06 Compressed Size       00000A55 (2645)\n+250F0A Uncompressed Size     00000A55 (2645)\n+\n+250F0E LOCAL HEADER #817     04034B50 (67324752)\n+250F12 Extract Zip Spec      14 (20) '2.0'\n+250F13 Extract OS            00 (0) 'MS-DOS'\n+250F14 General Purpose Flag  0000 (0)\n+250F16 Compression Method    0000 (0) 'Stored'\n+250F18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+250F1C CRC                   00000000 (0)\n+250F20 Compressed Size       00000000 (0)\n+250F24 Uncompressed Size     00000000 (0)\n+250F28 Filename Length       003B (59)\n+250F2A Extra Length          0009 (9)\n+250F2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x250F2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+250F67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+250F69   Length              0005 (5)\n+250F6B   Flags               01 (1) 'Modification'\n+250F6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+250F70 LOCAL HEADER #818     04034B50 (67324752)\n+250F74 Extract Zip Spec      14 (20) '2.0'\n+250F75 Extract OS            00 (0) 'MS-DOS'\n+250F76 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+250F78 Compression Method    0000 (0) 'Stored'\n+250F7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+250F7E CRC                   00000000 (0)\n+250F82 Compressed Size       00000000 (0)\n+250F86 Uncompressed Size     00000000 (0)\n+250F8A Filename Length       0048 (72)\n+250F8C Extra Length          0009 (9)\n+250F8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x250F8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+250FD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+250FD8   Length              0005 (5)\n+250FDA   Flags               01 (1) 'Modification'\n+250FDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+250FDF PAYLOAD\n+\n+258BAF DATA DESCRIPTOR       08074B50 (134695760)\n+258BB3 CRC                   3E2D4260 (1043153504)\n+258BB7 Compressed Size       00007BD0 (31696)\n+258BBB Uncompressed Size     00007BD0 (31696)\n+\n+258BBF LOCAL HEADER #819     04034B50 (67324752)\n+258BC3 Extract Zip Spec      14 (20) '2.0'\n+258BC4 Extract OS            00 (0) 'MS-DOS'\n+258BC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+258BC7 Compression Method    0000 (0) 'Stored'\n+258BC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+258BCD CRC                   00000000 (0)\n+258BD1 Compressed Size       00000000 (0)\n+258BD5 Uncompressed Size     00000000 (0)\n+258BD9 Filename Length       004B (75)\n+258BDB Extra Length          0009 (9)\n+258BDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x258BDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+258C28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+258C2A   Length              0005 (5)\n+258C2C   Flags               01 (1) 'Modification'\n+258C2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+258C31 PAYLOAD\n+\n+271BFE DATA DESCRIPTOR       08074B50 (134695760)\n+271C02 CRC                   C5D2D6A4 (3318929060)\n+271C06 Compressed Size       00018FCD (102349)\n+271C0A Uncompressed Size     00018FCD (102349)\n+\n+271C0E LOCAL HEADER #820     04034B50 (67324752)\n+271C12 Extract Zip Spec      14 (20) '2.0'\n+271C13 Extract OS            00 (0) 'MS-DOS'\n+271C14 General Purpose Flag  0000 (0)\n+271C16 Compression Method    0000 (0) 'Stored'\n+271C18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+271C1C CRC                   00000000 (0)\n+271C20 Compressed Size       00000000 (0)\n+271C24 Uncompressed Size     00000000 (0)\n+271C28 Filename Length       002D (45)\n+271C2A Extra Length          0009 (9)\n+271C2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x271C2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+271C59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+271C5B   Length              0005 (5)\n+271C5D   Flags               01 (1) 'Modification'\n+271C5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+271C62 LOCAL HEADER #821     04034B50 (67324752)\n+271C66 Extract Zip Spec      14 (20) '2.0'\n+271C67 Extract OS            00 (0) 'MS-DOS'\n+271C68 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+271C6A Compression Method    0000 (0) 'Stored'\n+271C6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+271C70 CRC                   00000000 (0)\n+271C74 Compressed Size       00000000 (0)\n+271C78 Uncompressed Size     00000000 (0)\n+271C7C Filename Length       0047 (71)\n+271C7E Extra Length          0009 (9)\n+271C80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x271C80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+271CC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+271CC9   Length              0005 (5)\n+271CCB   Flags               01 (1) 'Modification'\n+271CCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+271CD0 PAYLOAD\n+\n+272D5D DATA DESCRIPTOR       08074B50 (134695760)\n+272D61 CRC                   8EE26A20 (2397202976)\n+272D65 Compressed Size       0000108D (4237)\n+272D69 Uncompressed Size     0000108D (4237)\n+\n+272D6D LOCAL HEADER #822     04034B50 (67324752)\n+272D71 Extract Zip Spec      14 (20) '2.0'\n+272D72 Extract OS            00 (0) 'MS-DOS'\n+272D73 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+272D75 Compression Method    0000 (0) 'Stored'\n+272D77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+272D7B CRC                   00000000 (0)\n+272D7F Compressed Size       00000000 (0)\n+272D83 Uncompressed Size     00000000 (0)\n+272D87 Filename Length       0048 (72)\n+272D89 Extra Length          0009 (9)\n+272D8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x272D8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+272DD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+272DD5   Length              0005 (5)\n+272DD7   Flags               01 (1) 'Modification'\n+272DD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+272DDC PAYLOAD\n+\n+273D90 DATA DESCRIPTOR       08074B50 (134695760)\n+273D94 CRC                   9A974193 (2593603987)\n+273D98 Compressed Size       00000FB4 (4020)\n+273D9C Uncompressed Size     00000FB4 (4020)\n+\n+273DA0 LOCAL HEADER #823     04034B50 (67324752)\n+273DA4 Extract Zip Spec      14 (20) '2.0'\n+273DA5 Extract OS            00 (0) 'MS-DOS'\n+273DA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+273DA8 Compression Method    0000 (0) 'Stored'\n+273DAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+273DAE CRC                   00000000 (0)\n+273DB2 Compressed Size       00000000 (0)\n+273DB6 Uncompressed Size     00000000 (0)\n+273DBA Filename Length       0049 (73)\n+273DBC Extra Length          0009 (9)\n+273DBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x273DBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+273E07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+273E09   Length              0005 (5)\n+273E0B   Flags               01 (1) 'Modification'\n+273E0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+273E10 PAYLOAD\n+\n+2745E8 DATA DESCRIPTOR       08074B50 (134695760)\n+2745EC CRC                   1224CDAB (304401835)\n+2745F0 Compressed Size       000007D8 (2008)\n+2745F4 Uncompressed Size     000007D8 (2008)\n+\n+2745F8 LOCAL HEADER #824     04034B50 (67324752)\n+2745FC Extract Zip Spec      14 (20) '2.0'\n+2745FD Extract OS            00 (0) 'MS-DOS'\n+2745FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+274600 Compression Method    0000 (0) 'Stored'\n+274602 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+274606 CRC                   00000000 (0)\n+27460A Compressed Size       00000000 (0)\n+27460E Uncompressed Size     00000000 (0)\n+274612 Filename Length       0039 (57)\n+274614 Extra Length          0009 (9)\n+274616 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x274616: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27464F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+274651   Length              0005 (5)\n+274653   Flags               01 (1) 'Modification'\n+274654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+274658 PAYLOAD\n+\n+274AD9 DATA DESCRIPTOR       08074B50 (134695760)\n+274ADD CRC                   39DE609E (970875038)\n+274AE1 Compressed Size       00000481 (1153)\n+274AE5 Uncompressed Size     00000481 (1153)\n+\n+274AE9 LOCAL HEADER #825     04034B50 (67324752)\n+274AED Extract Zip Spec      14 (20) '2.0'\n+274AEE Extract OS            00 (0) 'MS-DOS'\n+274AEF General Purpose Flag  0000 (0)\n+274AF1 Compression Method    0000 (0) 'Stored'\n+274AF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+274AF7 CRC                   00000000 (0)\n+274AFB Compressed Size       00000000 (0)\n+274AFF Uncompressed Size     00000000 (0)\n+274B03 Filename Length       0036 (54)\n+274B05 Extra Length          0009 (9)\n+274B07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x274B07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+274B3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+274B3F   Length              0005 (5)\n+274B41   Flags               01 (1) 'Modification'\n+274B42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+274B46 LOCAL HEADER #826     04034B50 (67324752)\n+274B4A Extract Zip Spec      14 (20) '2.0'\n+274B4B Extract OS            00 (0) 'MS-DOS'\n+274B4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+274B4E Compression Method    0000 (0) 'Stored'\n+274B50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+274B54 CRC                   00000000 (0)\n+274B58 Compressed Size       00000000 (0)\n+274B5C Uncompressed Size     00000000 (0)\n+274B60 Filename Length       004A (74)\n+274B62 Extra Length          0009 (9)\n+274B64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x274B64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+274BAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+274BB0   Length              0005 (5)\n+274BB2   Flags               01 (1) 'Modification'\n+274BB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+274BB7 PAYLOAD\n+\n+27536C DATA DESCRIPTOR       08074B50 (134695760)\n+275370 CRC                   05778916 (91719958)\n+275374 Compressed Size       000007B5 (1973)\n+275378 Uncompressed Size     000007B5 (1973)\n+\n+27537C LOCAL HEADER #827     04034B50 (67324752)\n+275380 Extract Zip Spec      14 (20) '2.0'\n+275381 Extract OS            00 (0) 'MS-DOS'\n+275382 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+275384 Compression Method    0000 (0) 'Stored'\n+275386 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27538A CRC                   00000000 (0)\n+27538E Compressed Size       00000000 (0)\n+275392 Uncompressed Size     00000000 (0)\n+275396 Filename Length       0047 (71)\n+275398 Extra Length          0009 (9)\n+27539A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27539A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2753E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2753E3   Length              0005 (5)\n+2753E5   Flags               01 (1) 'Modification'\n+2753E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2753EA PAYLOAD\n+\n+275B7D DATA DESCRIPTOR       08074B50 (134695760)\n+275B81 CRC                   1D3EA7BE (490645438)\n+275B85 Compressed Size       00000793 (1939)\n+275B89 Uncompressed Size     00000793 (1939)\n+\n+275B8D LOCAL HEADER #828     04034B50 (67324752)\n+275B91 Extract Zip Spec      14 (20) '2.0'\n+275B92 Extract OS            00 (0) 'MS-DOS'\n+275B93 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+275B95 Compression Method    0000 (0) 'Stored'\n+275B97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+275B9B CRC                   00000000 (0)\n+275B9F Compressed Size       00000000 (0)\n+275BA3 Uncompressed Size     00000000 (0)\n+275BA7 Filename Length       004C (76)\n+275BA9 Extra Length          0009 (9)\n+275BAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x275BAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+275BF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+275BF9   Length              0005 (5)\n+275BFB   Flags               01 (1) 'Modification'\n+275BFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+275C00 PAYLOAD\n+\n+2763B1 DATA DESCRIPTOR       08074B50 (134695760)\n+2763B5 CRC                   F831FECC (4164026060)\n+2763B9 Compressed Size       000007B1 (1969)\n+2763BD Uncompressed Size     000007B1 (1969)\n+\n+2763C1 LOCAL HEADER #829     04034B50 (67324752)\n+2763C5 Extract Zip Spec      14 (20) '2.0'\n+2763C6 Extract OS            00 (0) 'MS-DOS'\n+2763C7 General Purpose Flag  0000 (0)\n+2763C9 Compression Method    0000 (0) 'Stored'\n+2763CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2763CF CRC                   00000000 (0)\n+2763D3 Compressed Size       00000000 (0)\n+2763D7 Uncompressed Size     00000000 (0)\n+2763DB Filename Length       0033 (51)\n+2763DD Extra Length          0009 (9)\n+2763DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2763DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+276412 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+276414   Length              0005 (5)\n+276416   Flags               01 (1) 'Modification'\n+276417   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27641B LOCAL HEADER #830     04034B50 (67324752)\n+27641F Extract Zip Spec      14 (20) '2.0'\n+276420 Extract OS            00 (0) 'MS-DOS'\n+276421 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+276423 Compression Method    0000 (0) 'Stored'\n+276425 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+276429 CRC                   00000000 (0)\n+27642D Compressed Size       00000000 (0)\n+276431 Uncompressed Size     00000000 (0)\n+276435 Filename Length       0044 (68)\n+276437 Extra Length          0009 (9)\n+276439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x276439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27647D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27647F   Length              0005 (5)\n+276481   Flags               01 (1) 'Modification'\n+276482   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+276486 PAYLOAD\n+\n+2773F7 DATA DESCRIPTOR       08074B50 (134695760)\n+2773FB CRC                   B38C8B84 (3012332420)\n+2773FF Compressed Size       00000F71 (3953)\n+277403 Uncompressed Size     00000F71 (3953)\n+\n+277407 LOCAL HEADER #831     04034B50 (67324752)\n+27740B Extract Zip Spec      14 (20) '2.0'\n+27740C Extract OS            00 (0) 'MS-DOS'\n+27740D General Purpose Flag  0000 (0)\n+27740F Compression Method    0000 (0) 'Stored'\n+277411 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+277415 CRC                   00000000 (0)\n+277419 Compressed Size       00000000 (0)\n+27741D Uncompressed Size     00000000 (0)\n+277421 Filename Length       002A (42)\n+277423 Extra Length          0009 (9)\n+277425 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x277425: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27744F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+277451   Length              0005 (5)\n+277453   Flags               01 (1) 'Modification'\n+277454   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+277458 LOCAL HEADER #832     04034B50 (67324752)\n+27745C Extract Zip Spec      14 (20) '2.0'\n+27745D Extract OS            00 (0) 'MS-DOS'\n+27745E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+277460 Compression Method    0000 (0) 'Stored'\n+277462 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+277466 CRC                   00000000 (0)\n+27746A Compressed Size       00000000 (0)\n+27746E Uncompressed Size     00000000 (0)\n+277472 Filename Length       0048 (72)\n+277474 Extra Length          0009 (9)\n+277476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x277476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2774BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2774C0   Length              0005 (5)\n+2774C2   Flags               01 (1) 'Modification'\n+2774C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2774C7 PAYLOAD\n+\n+277D2C DATA DESCRIPTOR       08074B50 (134695760)\n+277D30 CRC                   BC3782BE (3157754558)\n+277D34 Compressed Size       00000865 (2149)\n+277D38 Uncompressed Size     00000865 (2149)\n+\n+277D3C LOCAL HEADER #833     04034B50 (67324752)\n+277D40 Extract Zip Spec      14 (20) '2.0'\n+277D41 Extract OS            00 (0) 'MS-DOS'\n+277D42 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+277D44 Compression Method    0000 (0) 'Stored'\n+277D46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+277D4A CRC                   00000000 (0)\n+277D4E Compressed Size       00000000 (0)\n+277D52 Uncompressed Size     00000000 (0)\n+277D56 Filename Length       0045 (69)\n+277D58 Extra Length          0009 (9)\n+277D5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x277D5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+277D9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+277DA1   Length              0005 (5)\n+277DA3   Flags               01 (1) 'Modification'\n+277DA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+277DA8 PAYLOAD\n+\n+27825B DATA DESCRIPTOR       08074B50 (134695760)\n+27825F CRC                   50042D13 (1342450963)\n+278263 Compressed Size       000004B3 (1203)\n+278267 Uncompressed Size     000004B3 (1203)\n+\n+27826B LOCAL HEADER #834     04034B50 (67324752)\n+27826F Extract Zip Spec      14 (20) '2.0'\n+278270 Extract OS            00 (0) 'MS-DOS'\n+278271 General Purpose Flag  0000 (0)\n+278273 Compression Method    0000 (0) 'Stored'\n+278275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+278279 CRC                   00000000 (0)\n+27827D Compressed Size       00000000 (0)\n+278281 Uncompressed Size     00000000 (0)\n+278285 Filename Length       001F (31)\n+278287 Extra Length          0009 (9)\n+278289 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x278289: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2782A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2782AA   Length              0005 (5)\n+2782AC   Flags               01 (1) 'Modification'\n+2782AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2782B1 LOCAL HEADER #835     04034B50 (67324752)\n+2782B5 Extract Zip Spec      14 (20) '2.0'\n+2782B6 Extract OS            00 (0) 'MS-DOS'\n+2782B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2782B9 Compression Method    0000 (0) 'Stored'\n+2782BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2782BF CRC                   00000000 (0)\n+2782C3 Compressed Size       00000000 (0)\n+2782C7 Uncompressed Size     00000000 (0)\n+2782CB Filename Length       002A (42)\n+2782CD Extra Length          0009 (9)\n+2782CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2782CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2782F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2782FB   Length              0005 (5)\n+2782FD   Flags               01 (1) 'Modification'\n+2782FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+278302 PAYLOAD\n+\n+278A5F DATA DESCRIPTOR       08074B50 (134695760)\n+278A63 CRC                   EE49CD50 (3997814096)\n+278A67 Compressed Size       0000075D (1885)\n+278A6B Uncompressed Size     0000075D (1885)\n+\n+278A6F LOCAL HEADER #836     04034B50 (67324752)\n+278A73 Extract Zip Spec      14 (20) '2.0'\n+278A74 Extract OS            00 (0) 'MS-DOS'\n+278A75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+278A77 Compression Method    0000 (0) 'Stored'\n+278A79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+278A7D CRC                   00000000 (0)\n+278A81 Compressed Size       00000000 (0)\n+278A85 Uncompressed Size     00000000 (0)\n+278A89 Filename Length       0031 (49)\n+278A8B Extra Length          0009 (9)\n+278A8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x278A8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+278ABE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+278AC0   Length              0005 (5)\n+278AC2   Flags               01 (1) 'Modification'\n+278AC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+278AC7 PAYLOAD\n+\n+278EF9 DATA DESCRIPTOR       08074B50 (134695760)\n+278EFD CRC                   4C723E93 (1282555539)\n+278F01 Compressed Size       00000432 (1074)\n+278F05 Uncompressed Size     00000432 (1074)\n+\n+278F09 LOCAL HEADER #837     04034B50 (67324752)\n+278F0D Extract Zip Spec      14 (20) '2.0'\n+278F0E Extract OS            00 (0) 'MS-DOS'\n+278F0F General Purpose Flag  0000 (0)\n+278F11 Compression Method    0000 (0) 'Stored'\n+278F13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+278F17 CRC                   00000000 (0)\n+278F1B Compressed Size       00000000 (0)\n+278F1F Uncompressed Size     00000000 (0)\n+278F23 Filename Length       0027 (39)\n+278F25 Extra Length          0009 (9)\n+278F27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x278F27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+278F4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+278F50   Length              0005 (5)\n+278F52   Flags               01 (1) 'Modification'\n+278F53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+278F57 LOCAL HEADER #838     04034B50 (67324752)\n+278F5B Extract Zip Spec      14 (20) '2.0'\n+278F5C Extract OS            00 (0) 'MS-DOS'\n+278F5D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+278F5F Compression Method    0000 (0) 'Stored'\n+278F61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+278F65 CRC                   00000000 (0)\n+278F69 Compressed Size       00000000 (0)\n+278F6D Uncompressed Size     00000000 (0)\n+278F71 Filename Length       003D (61)\n+278F73 Extra Length          0009 (9)\n+278F75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x278F75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+278FB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+278FB4   Length              0005 (5)\n+278FB6   Flags               01 (1) 'Modification'\n+278FB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+278FBB PAYLOAD\n+\n+279862 DATA DESCRIPTOR       08074B50 (134695760)\n+279866 CRC                   CD3068DB (3442501851)\n+27986A Compressed Size       000008A7 (2215)\n+27986E Uncompressed Size     000008A7 (2215)\n+\n+279872 LOCAL HEADER #839     04034B50 (67324752)\n+279876 Extract Zip Spec      14 (20) '2.0'\n+279877 Extract OS            00 (0) 'MS-DOS'\n+279878 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27987A Compression Method    0000 (0) 'Stored'\n+27987C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+279880 CRC                   00000000 (0)\n+279884 Compressed Size       00000000 (0)\n+279888 Uncompressed Size     00000000 (0)\n+27988C Filename Length       003F (63)\n+27988E Extra Length          0009 (9)\n+279890 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x279890: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2798CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2798D1   Length              0005 (5)\n+2798D3   Flags               01 (1) 'Modification'\n+2798D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2798D8 PAYLOAD\n+\n+279FD9 DATA DESCRIPTOR       08074B50 (134695760)\n+279FDD CRC                   E601D6EE (3858880238)\n+279FE1 Compressed Size       00000701 (1793)\n+279FE5 Uncompressed Size     00000701 (1793)\n+\n+279FE9 LOCAL HEADER #840     04034B50 (67324752)\n+279FED Extract Zip Spec      14 (20) '2.0'\n+279FEE Extract OS            00 (0) 'MS-DOS'\n+279FEF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+279FF1 Compression Method    0000 (0) 'Stored'\n+279FF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+279FF7 CRC                   00000000 (0)\n+279FFB Compressed Size       00000000 (0)\n+279FFF Uncompressed Size     00000000 (0)\n+27A003 Filename Length       0037 (55)\n+27A005 Extra Length          0009 (9)\n+27A007 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A007: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27A03E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27A040   Length              0005 (5)\n+27A042   Flags               01 (1) 'Modification'\n+27A043   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27A047 PAYLOAD\n+\n+27A81B DATA DESCRIPTOR       08074B50 (134695760)\n+27A81F CRC                   577B6C79 (1467706489)\n+27A823 Compressed Size       000007D4 (2004)\n+27A827 Uncompressed Size     000007D4 (2004)\n+\n+27A82B LOCAL HEADER #841     04034B50 (67324752)\n+27A82F Extract Zip Spec      14 (20) '2.0'\n+27A830 Extract OS            00 (0) 'MS-DOS'\n+27A831 General Purpose Flag  0000 (0)\n+27A833 Compression Method    0000 (0) 'Stored'\n+27A835 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27A839 CRC                   00000000 (0)\n+27A83D Compressed Size       00000000 (0)\n+27A841 Uncompressed Size     00000000 (0)\n+27A845 Filename Length       001E (30)\n+27A847 Extra Length          0009 (9)\n+27A849 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A849: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27A867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27A869   Length              0005 (5)\n+27A86B   Flags               01 (1) 'Modification'\n+27A86C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27A870 LOCAL HEADER #842     04034B50 (67324752)\n+27A874 Extract Zip Spec      14 (20) '2.0'\n+27A875 Extract OS            00 (0) 'MS-DOS'\n+27A876 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27A878 Compression Method    0000 (0) 'Stored'\n+27A87A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27A87E CRC                   00000000 (0)\n+27A882 Compressed Size       00000000 (0)\n+27A886 Uncompressed Size     00000000 (0)\n+27A88A Filename Length       002C (44)\n+27A88C Extra Length          0009 (9)\n+27A88E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27A88E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27A8BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27A8BC   Length              0005 (5)\n+27A8BE   Flags               01 (1) 'Modification'\n+27A8BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27A8C3 PAYLOAD\n+\n+27ADC3 DATA DESCRIPTOR       08074B50 (134695760)\n+27ADC7 CRC                   BF5F9C1E (3210714142)\n+27ADCB Compressed Size       00000500 (1280)\n+27ADCF Uncompressed Size     00000500 (1280)\n+\n+27ADD3 LOCAL HEADER #843     04034B50 (67324752)\n+27ADD7 Extract Zip Spec      14 (20) '2.0'\n+27ADD8 Extract OS            00 (0) 'MS-DOS'\n+27ADD9 General Purpose Flag  0000 (0)\n+27ADDB Compression Method    0000 (0) 'Stored'\n+27ADDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27ADE1 CRC                   00000000 (0)\n+27ADE5 Compressed Size       00000000 (0)\n+27ADE9 Uncompressed Size     00000000 (0)\n+27ADED Filename Length       0026 (38)\n+27ADEF Extra Length          0009 (9)\n+27ADF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27ADF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27AE17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27AE19   Length              0005 (5)\n+27AE1B   Flags               01 (1) 'Modification'\n+27AE1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27AE20 LOCAL HEADER #844     04034B50 (67324752)\n+27AE24 Extract Zip Spec      14 (20) '2.0'\n+27AE25 Extract OS            00 (0) 'MS-DOS'\n+27AE26 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27AE28 Compression Method    0000 (0) 'Stored'\n+27AE2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27AE2E CRC                   00000000 (0)\n+27AE32 Compressed Size       00000000 (0)\n+27AE36 Uncompressed Size     00000000 (0)\n+27AE3A Filename Length       003A (58)\n+27AE3C Extra Length          0009 (9)\n+27AE3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27AE3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27AE78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27AE7A   Length              0005 (5)\n+27AE7C   Flags               01 (1) 'Modification'\n+27AE7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27AE81 PAYLOAD\n+\n+27B789 DATA DESCRIPTOR       08074B50 (134695760)\n+27B78D CRC                   6A2AB119 (1781182745)\n+27B791 Compressed Size       00000908 (2312)\n+27B795 Uncompressed Size     00000908 (2312)\n+\n+27B799 LOCAL HEADER #845     04034B50 (67324752)\n+27B79D Extract Zip Spec      14 (20) '2.0'\n+27B79E Extract OS            00 (0) 'MS-DOS'\n+27B79F General Purpose Flag  0000 (0)\n+27B7A1 Compression Method    0000 (0) 'Stored'\n+27B7A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27B7A7 CRC                   00000000 (0)\n+27B7AB Compressed Size       00000000 (0)\n+27B7AF Uncompressed Size     00000000 (0)\n+27B7B3 Filename Length       0024 (36)\n+27B7B5 Extra Length          0009 (9)\n+27B7B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27B7B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27B7DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27B7DD   Length              0005 (5)\n+27B7DF   Flags               01 (1) 'Modification'\n+27B7E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+27B7E4 LOCAL HEADER #846     04034B50 (67324752)\n+27B7E8 Extract Zip Spec      14 (20) '2.0'\n+27B7E9 Extract OS            00 (0) 'MS-DOS'\n+27B7EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27B7EC Compression Method    0000 (0) 'Stored'\n+27B7EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27B7F2 CRC                   00000000 (0)\n+27B7F6 Compressed Size       00000000 (0)\n+27B7FA Uncompressed Size     00000000 (0)\n+27B7FE Filename Length       0039 (57)\n+27B800 Extra Length          0009 (9)\n+27B802 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27B802: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27B83B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27B83D   Length              0005 (5)\n+27B83F   Flags               01 (1) 'Modification'\n+27B840   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27B844 PAYLOAD\n+\n+27BFB2 DATA DESCRIPTOR       08074B50 (134695760)\n+27BFB6 CRC                   19AC3747 (430716743)\n+27BFBA Compressed Size       0000076E (1902)\n+27BFBE Uncompressed Size     0000076E (1902)\n+\n+27BFC2 LOCAL HEADER #847     04034B50 (67324752)\n+27BFC6 Extract Zip Spec      14 (20) '2.0'\n+27BFC7 Extract OS            00 (0) 'MS-DOS'\n+27BFC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27BFCA Compression Method    0000 (0) 'Stored'\n+27BFCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27BFD0 CRC                   00000000 (0)\n+27BFD4 Compressed Size       00000000 (0)\n+27BFD8 Uncompressed Size     00000000 (0)\n+27BFDC Filename Length       0037 (55)\n+27BFDE Extra Length          0009 (9)\n+27BFE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27BFE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27C017 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27C019   Length              0005 (5)\n+27C01B   Flags               01 (1) 'Modification'\n+27C01C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27C020 PAYLOAD\n+\n+27C9AD DATA DESCRIPTOR       08074B50 (134695760)\n+27C9B1 CRC                   DFEE0135 (3756917045)\n+27C9B5 Compressed Size       0000098D (2445)\n+27C9B9 Uncompressed Size     0000098D (2445)\n+\n+27C9BD LOCAL HEADER #848     04034B50 (67324752)\n+27C9C1 Extract Zip Spec      14 (20) '2.0'\n+27C9C2 Extract OS            00 (0) 'MS-DOS'\n+27C9C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27C9C5 Compression Method    0000 (0) 'Stored'\n+27C9C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27C9CB CRC                   00000000 (0)\n+27C9CF Compressed Size       00000000 (0)\n+27C9D3 Uncompressed Size     00000000 (0)\n+27C9D7 Filename Length       003C (60)\n+27C9D9 Extra Length          0009 (9)\n+27C9DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27C9DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27CA17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27CA19   Length              0005 (5)\n+27CA1B   Flags               01 (1) 'Modification'\n+27CA1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27CA20 PAYLOAD\n+\n+27E5DE DATA DESCRIPTOR       08074B50 (134695760)\n+27E5E2 CRC                   E4E72DDD (3840355805)\n+27E5E6 Compressed Size       00001BBE (7102)\n+27E5EA Uncompressed Size     00001BBE (7102)\n+\n+27E5EE LOCAL HEADER #849     04034B50 (67324752)\n+27E5F2 Extract Zip Spec      14 (20) '2.0'\n+27E5F3 Extract OS            00 (0) 'MS-DOS'\n+27E5F4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27E5F6 Compression Method    0000 (0) 'Stored'\n+27E5F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27E5FC CRC                   00000000 (0)\n+27E600 Compressed Size       00000000 (0)\n+27E604 Uncompressed Size     00000000 (0)\n+27E608 Filename Length       003F (63)\n+27E60A Extra Length          0009 (9)\n+27E60C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27E60C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27E64B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27E64D   Length              0005 (5)\n+27E64F   Flags               01 (1) 'Modification'\n+27E650   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27E654 PAYLOAD\n+\n+27FC53 DATA DESCRIPTOR       08074B50 (134695760)\n+27FC57 CRC                   5E80C56B (1585497451)\n+27FC5B Compressed Size       000015FF (5631)\n+27FC5F Uncompressed Size     000015FF (5631)\n+\n+27FC63 LOCAL HEADER #850     04034B50 (67324752)\n+27FC67 Extract Zip Spec      14 (20) '2.0'\n+27FC68 Extract OS            00 (0) 'MS-DOS'\n+27FC69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+27FC6B Compression Method    0000 (0) 'Stored'\n+27FC6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+27FC71 CRC                   00000000 (0)\n+27FC75 Compressed Size       00000000 (0)\n+27FC79 Uncompressed Size     00000000 (0)\n+27FC7D Filename Length       0043 (67)\n+27FC7F Extra Length          0009 (9)\n+27FC81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x27FC81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+27FCC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+27FCC6   Length              0005 (5)\n+27FCC8   Flags               01 (1) 'Modification'\n+27FCC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+27FCCD PAYLOAD\n+\n+28035A DATA DESCRIPTOR       08074B50 (134695760)\n+28035E CRC                   D1666DFC (3513150972)\n+280362 Compressed Size       0000068D (1677)\n+280366 Uncompressed Size     0000068D (1677)\n+\n+28036A LOCAL HEADER #851     04034B50 (67324752)\n+28036E Extract Zip Spec      14 (20) '2.0'\n+28036F Extract OS            00 (0) 'MS-DOS'\n+280370 General Purpose Flag  0000 (0)\n+280372 Compression Method    0000 (0) 'Stored'\n+280374 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+280378 CRC                   00000000 (0)\n+28037C Compressed Size       00000000 (0)\n+280380 Uncompressed Size     00000000 (0)\n+280384 Filename Length       0023 (35)\n+280386 Extra Length          0009 (9)\n+280388 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x280388: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2803AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2803AD   Length              0005 (5)\n+2803AF   Flags               01 (1) 'Modification'\n+2803B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2803B4 LOCAL HEADER #852     04034B50 (67324752)\n+2803B8 Extract Zip Spec      14 (20) '2.0'\n+2803B9 Extract OS            00 (0) 'MS-DOS'\n+2803BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2803BC Compression Method    0000 (0) 'Stored'\n+2803BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2803C2 CRC                   00000000 (0)\n+2803C6 Compressed Size       00000000 (0)\n+2803CA Uncompressed Size     00000000 (0)\n+2803CE Filename Length       0032 (50)\n+2803D0 Extra Length          0009 (9)\n+2803D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2803D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+280404 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+280406   Length              0005 (5)\n+280408   Flags               01 (1) 'Modification'\n+280409   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28040D PAYLOAD\n+\n+280982 DATA DESCRIPTOR       08074B50 (134695760)\n+280986 CRC                   25E239BD (635582909)\n+28098A Compressed Size       00000575 (1397)\n+28098E Uncompressed Size     00000575 (1397)\n+\n+280992 LOCAL HEADER #853     04034B50 (67324752)\n+280996 Extract Zip Spec      14 (20) '2.0'\n+280997 Extract OS            00 (0) 'MS-DOS'\n+280998 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28099A Compression Method    0000 (0) 'Stored'\n+28099C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2809A0 CRC                   00000000 (0)\n+2809A4 Compressed Size       00000000 (0)\n+2809A8 Uncompressed Size     00000000 (0)\n+2809AC Filename Length       003A (58)\n+2809AE Extra Length          0009 (9)\n+2809B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2809B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2809EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2809EC   Length              0005 (5)\n+2809EE   Flags               01 (1) 'Modification'\n+2809EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2809F3 PAYLOAD\n+\n+282552 DATA DESCRIPTOR       08074B50 (134695760)\n+282556 CRC                   6E8E196C (1854806380)\n+28255A Compressed Size       00001B5F (7007)\n+28255E Uncompressed Size     00001B5F (7007)\n+\n+282562 LOCAL HEADER #854     04034B50 (67324752)\n+282566 Extract Zip Spec      14 (20) '2.0'\n+282567 Extract OS            00 (0) 'MS-DOS'\n+282568 General Purpose Flag  0000 (0)\n+28256A Compression Method    0000 (0) 'Stored'\n+28256C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+282570 CRC                   00000000 (0)\n+282574 Compressed Size       00000000 (0)\n+282578 Uncompressed Size     00000000 (0)\n+28257C Filename Length       002E (46)\n+28257E Extra Length          0009 (9)\n+282580 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x282580: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2825AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2825B0   Length              0005 (5)\n+2825B2   Flags               01 (1) 'Modification'\n+2825B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2825B7 LOCAL HEADER #855     04034B50 (67324752)\n+2825BB Extract Zip Spec      14 (20) '2.0'\n+2825BC Extract OS            00 (0) 'MS-DOS'\n+2825BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2825BF Compression Method    0000 (0) 'Stored'\n+2825C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2825C5 CRC                   00000000 (0)\n+2825C9 Compressed Size       00000000 (0)\n+2825CD Uncompressed Size     00000000 (0)\n+2825D1 Filename Length       004D (77)\n+2825D3 Extra Length          0009 (9)\n+2825D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2825D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+282622 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+282624   Length              0005 (5)\n+282626   Flags               01 (1) 'Modification'\n+282627   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28262B PAYLOAD\n+\n+282F78 DATA DESCRIPTOR       08074B50 (134695760)\n+282F7C CRC                   4F941D99 (1335106969)\n+282F80 Compressed Size       0000094D (2381)\n+282F84 Uncompressed Size     0000094D (2381)\n+\n+282F88 LOCAL HEADER #856     04034B50 (67324752)\n+282F8C Extract Zip Spec      14 (20) '2.0'\n+282F8D Extract OS            00 (0) 'MS-DOS'\n+282F8E General Purpose Flag  0000 (0)\n+282F90 Compression Method    0000 (0) 'Stored'\n+282F92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+282F96 CRC                   00000000 (0)\n+282F9A Compressed Size       00000000 (0)\n+282F9E Uncompressed Size     00000000 (0)\n+282FA2 Filename Length       0029 (41)\n+282FA4 Extra Length          0009 (9)\n+282FA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x282FA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+282FCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+282FD1   Length              0005 (5)\n+282FD3   Flags               01 (1) 'Modification'\n+282FD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+282FD8 LOCAL HEADER #857     04034B50 (67324752)\n+282FDC Extract Zip Spec      14 (20) '2.0'\n+282FDD Extract OS            00 (0) 'MS-DOS'\n+282FDE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+282FE0 Compression Method    0000 (0) 'Stored'\n+282FE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+282FE6 CRC                   00000000 (0)\n+282FEA Compressed Size       00000000 (0)\n+282FEE Uncompressed Size     00000000 (0)\n+282FF2 Filename Length       0046 (70)\n+282FF4 Extra Length          0009 (9)\n+282FF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x282FF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28303C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28303E   Length              0005 (5)\n+283040   Flags               01 (1) 'Modification'\n+283041   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+283045 PAYLOAD\n+\n+283546 DATA DESCRIPTOR       08074B50 (134695760)\n+28354A CRC                   9F5D6B51 (2673699665)\n+28354E Compressed Size       00000501 (1281)\n+283552 Uncompressed Size     00000501 (1281)\n+\n+283556 LOCAL HEADER #858     04034B50 (67324752)\n+28355A Extract Zip Spec      14 (20) '2.0'\n+28355B Extract OS            00 (0) 'MS-DOS'\n+28355C General Purpose Flag  0000 (0)\n+28355E Compression Method    0000 (0) 'Stored'\n+283560 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+283564 CRC                   00000000 (0)\n+283568 Compressed Size       00000000 (0)\n+28356C Uncompressed Size     00000000 (0)\n+283570 Filename Length       002B (43)\n+283572 Extra Length          0009 (9)\n+283574 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x283574: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28359F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2835A1   Length              0005 (5)\n+2835A3   Flags               01 (1) 'Modification'\n+2835A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2835A8 LOCAL HEADER #859     04034B50 (67324752)\n+2835AC Extract Zip Spec      14 (20) '2.0'\n+2835AD Extract OS            00 (0) 'MS-DOS'\n+2835AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2835B0 Compression Method    0000 (0) 'Stored'\n+2835B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2835B6 CRC                   00000000 (0)\n+2835BA Compressed Size       00000000 (0)\n+2835BE Uncompressed Size     00000000 (0)\n+2835C2 Filename Length       0049 (73)\n+2835C4 Extra Length          0009 (9)\n+2835C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2835C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28360F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+283611   Length              0005 (5)\n+283613   Flags               01 (1) 'Modification'\n+283614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+283618 PAYLOAD\n+\n+2854F7 DATA DESCRIPTOR       08074B50 (134695760)\n+2854FB CRC                   C15BEF93 (3244027795)\n+2854FF Compressed Size       00001EDF (7903)\n+285503 Uncompressed Size     00001EDF (7903)\n+\n+285507 LOCAL HEADER #860     04034B50 (67324752)\n+28550B Extract Zip Spec      14 (20) '2.0'\n+28550C Extract OS            00 (0) 'MS-DOS'\n+28550D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28550F Compression Method    0000 (0) 'Stored'\n+285511 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+285515 CRC                   00000000 (0)\n+285519 Compressed Size       00000000 (0)\n+28551D Uncompressed Size     00000000 (0)\n+285521 Filename Length       0042 (66)\n+285523 Extra Length          0009 (9)\n+285525 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x285525: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+285567 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+285569   Length              0005 (5)\n+28556B   Flags               01 (1) 'Modification'\n+28556C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+285570 PAYLOAD\n+\n+285ED0 DATA DESCRIPTOR       08074B50 (134695760)\n+285ED4 CRC                   EF70124F (4017099343)\n+285ED8 Compressed Size       00000960 (2400)\n+285EDC Uncompressed Size     00000960 (2400)\n+\n+285EE0 LOCAL HEADER #861     04034B50 (67324752)\n+285EE4 Extract Zip Spec      14 (20) '2.0'\n+285EE5 Extract OS            00 (0) 'MS-DOS'\n+285EE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+285EE8 Compression Method    0000 (0) 'Stored'\n+285EEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+285EEE CRC                   00000000 (0)\n+285EF2 Compressed Size       00000000 (0)\n+285EF6 Uncompressed Size     00000000 (0)\n+285EFA Filename Length       0034 (52)\n+285EFC Extra Length          0009 (9)\n+285EFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x285EFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+285F32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+285F34   Length              0005 (5)\n+285F36   Flags               01 (1) 'Modification'\n+285F37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+285F3B PAYLOAD\n+\n+286777 DATA DESCRIPTOR       08074B50 (134695760)\n+28677B CRC                   B2FA49D8 (3002747352)\n+28677F Compressed Size       0000083C (2108)\n+286783 Uncompressed Size     0000083C (2108)\n+\n+286787 LOCAL HEADER #862     04034B50 (67324752)\n+28678B Extract Zip Spec      14 (20) '2.0'\n+28678C Extract OS            00 (0) 'MS-DOS'\n+28678D General Purpose Flag  0000 (0)\n+28678F Compression Method    0000 (0) 'Stored'\n+286791 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+286795 CRC                   00000000 (0)\n+286799 Compressed Size       00000000 (0)\n+28679D Uncompressed Size     00000000 (0)\n+2867A1 Filename Length       002B (43)\n+2867A3 Extra Length          0009 (9)\n+2867A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2867A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2867D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2867D2   Length              0005 (5)\n+2867D4   Flags               01 (1) 'Modification'\n+2867D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2867D9 LOCAL HEADER #863     04034B50 (67324752)\n+2867DD Extract Zip Spec      14 (20) '2.0'\n+2867DE Extract OS            00 (0) 'MS-DOS'\n+2867DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2867E1 Compression Method    0000 (0) 'Stored'\n+2867E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2867E7 CRC                   00000000 (0)\n+2867EB Compressed Size       00000000 (0)\n+2867EF Uncompressed Size     00000000 (0)\n+2867F3 Filename Length       0045 (69)\n+2867F5 Extra Length          0009 (9)\n+2867F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2867F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28683C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28683E   Length              0005 (5)\n+286840   Flags               01 (1) 'Modification'\n+286841   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+286845 PAYLOAD\n+\n+287FAC DATA DESCRIPTOR       08074B50 (134695760)\n+287FB0 CRC                   A9E4FF87 (2850357127)\n+287FB4 Compressed Size       00001767 (5991)\n+287FB8 Uncompressed Size     00001767 (5991)\n+\n+287FBC LOCAL HEADER #864     04034B50 (67324752)\n+287FC0 Extract Zip Spec      14 (20) '2.0'\n+287FC1 Extract OS            00 (0) 'MS-DOS'\n+287FC2 General Purpose Flag  0000 (0)\n+287FC4 Compression Method    0000 (0) 'Stored'\n+287FC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+287FCA CRC                   00000000 (0)\n+287FCE Compressed Size       00000000 (0)\n+287FD2 Uncompressed Size     00000000 (0)\n+287FD6 Filename Length       0032 (50)\n+287FD8 Extra Length          0009 (9)\n+287FDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x287FDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28800C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28800E   Length              0005 (5)\n+288010   Flags               01 (1) 'Modification'\n+288011   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+288015 LOCAL HEADER #865     04034B50 (67324752)\n+288019 Extract Zip Spec      14 (20) '2.0'\n+28801A Extract OS            00 (0) 'MS-DOS'\n+28801B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28801D Compression Method    0000 (0) 'Stored'\n+28801F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+288023 CRC                   00000000 (0)\n+288027 Compressed Size       00000000 (0)\n+28802B Uncompressed Size     00000000 (0)\n+28802F Filename Length       0047 (71)\n+288031 Extra Length          0009 (9)\n+288033 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x288033: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28807A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28807C   Length              0005 (5)\n+28807E   Flags               01 (1) 'Modification'\n+28807F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+288083 PAYLOAD\n+\n+288D00 DATA DESCRIPTOR       08074B50 (134695760)\n+288D04 CRC                   7C2CDC15 (2083314709)\n+288D08 Compressed Size       00000C7D (3197)\n+288D0C Uncompressed Size     00000C7D (3197)\n+\n+288D10 LOCAL HEADER #866     04034B50 (67324752)\n+288D14 Extract Zip Spec      14 (20) '2.0'\n+288D15 Extract OS            00 (0) 'MS-DOS'\n+288D16 General Purpose Flag  0000 (0)\n+288D18 Compression Method    0000 (0) 'Stored'\n+288D1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+288D1E CRC                   00000000 (0)\n+288D22 Compressed Size       00000000 (0)\n+288D26 Uncompressed Size     00000000 (0)\n+288D2A Filename Length       0031 (49)\n+288D2C Extra Length          0009 (9)\n+288D2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x288D2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+288D5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+288D61   Length              0005 (5)\n+288D63   Flags               01 (1) 'Modification'\n+288D64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+288D68 LOCAL HEADER #867     04034B50 (67324752)\n+288D6C Extract Zip Spec      14 (20) '2.0'\n+288D6D Extract OS            00 (0) 'MS-DOS'\n+288D6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+288D70 Compression Method    0000 (0) 'Stored'\n+288D72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+288D76 CRC                   00000000 (0)\n+288D7A Compressed Size       00000000 (0)\n+288D7E Uncompressed Size     00000000 (0)\n+288D82 Filename Length       0045 (69)\n+288D84 Extra Length          0009 (9)\n+288D86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x288D86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+288DCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+288DCD   Length              0005 (5)\n+288DCF   Flags               01 (1) 'Modification'\n+288DD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+288DD4 PAYLOAD\n+\n+2899D6 DATA DESCRIPTOR       08074B50 (134695760)\n+2899DA CRC                   C7D99F04 (3352928004)\n+2899DE Compressed Size       00000C02 (3074)\n+2899E2 Uncompressed Size     00000C02 (3074)\n+\n+2899E6 LOCAL HEADER #868     04034B50 (67324752)\n+2899EA Extract Zip Spec      14 (20) '2.0'\n+2899EB Extract OS            00 (0) 'MS-DOS'\n+2899EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2899EE Compression Method    0000 (0) 'Stored'\n+2899F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2899F4 CRC                   00000000 (0)\n+2899F8 Compressed Size       00000000 (0)\n+2899FC Uncompressed Size     00000000 (0)\n+289A00 Filename Length       004D (77)\n+289A02 Extra Length          0009 (9)\n+289A04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x289A04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+289A51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+289A53   Length              0005 (5)\n+289A55   Flags               01 (1) 'Modification'\n+289A56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+289A5A PAYLOAD\n+\n+28A718 DATA DESCRIPTOR       08074B50 (134695760)\n+28A71C CRC                   B7E8049A (3085436058)\n+28A720 Compressed Size       00000CBE (3262)\n+28A724 Uncompressed Size     00000CBE (3262)\n+\n+28A728 LOCAL HEADER #869     04034B50 (67324752)\n+28A72C Extract Zip Spec      14 (20) '2.0'\n+28A72D Extract OS            00 (0) 'MS-DOS'\n+28A72E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28A730 Compression Method    0000 (0) 'Stored'\n+28A732 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28A736 CRC                   00000000 (0)\n+28A73A Compressed Size       00000000 (0)\n+28A73E Uncompressed Size     00000000 (0)\n+28A742 Filename Length       003F (63)\n+28A744 Extra Length          0009 (9)\n+28A746 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28A746: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28A785 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28A787   Length              0005 (5)\n+28A789   Flags               01 (1) 'Modification'\n+28A78A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28A78E PAYLOAD\n+\n+28B315 DATA DESCRIPTOR       08074B50 (134695760)\n+28B319 CRC                   365FEBC7 (912255943)\n+28B31D Compressed Size       00000B87 (2951)\n+28B321 Uncompressed Size     00000B87 (2951)\n+\n+28B325 LOCAL HEADER #870     04034B50 (67324752)\n+28B329 Extract Zip Spec      14 (20) '2.0'\n+28B32A Extract OS            00 (0) 'MS-DOS'\n+28B32B General Purpose Flag  0000 (0)\n+28B32D Compression Method    0000 (0) 'Stored'\n+28B32F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28B333 CRC                   00000000 (0)\n+28B337 Compressed Size       00000000 (0)\n+28B33B Uncompressed Size     00000000 (0)\n+28B33F Filename Length       0031 (49)\n+28B341 Extra Length          0009 (9)\n+28B343 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28B343: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28B374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28B376   Length              0005 (5)\n+28B378   Flags               01 (1) 'Modification'\n+28B379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+28B37D LOCAL HEADER #871     04034B50 (67324752)\n+28B381 Extract Zip Spec      14 (20) '2.0'\n+28B382 Extract OS            00 (0) 'MS-DOS'\n+28B383 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28B385 Compression Method    0000 (0) 'Stored'\n+28B387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28B38B CRC                   00000000 (0)\n+28B38F Compressed Size       00000000 (0)\n+28B393 Uncompressed Size     00000000 (0)\n+28B397 Filename Length       0045 (69)\n+28B399 Extra Length          0009 (9)\n+28B39B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28B39B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28B3E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28B3E2   Length              0005 (5)\n+28B3E4   Flags               01 (1) 'Modification'\n+28B3E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28B3E9 PAYLOAD\n+\n+28BE8C DATA DESCRIPTOR       08074B50 (134695760)\n+28BE90 CRC                   3EDDC0EF (1054720239)\n+28BE94 Compressed Size       00000AA3 (2723)\n+28BE98 Uncompressed Size     00000AA3 (2723)\n+\n+28BE9C LOCAL HEADER #872     04034B50 (67324752)\n+28BEA0 Extract Zip Spec      14 (20) '2.0'\n+28BEA1 Extract OS            00 (0) 'MS-DOS'\n+28BEA2 General Purpose Flag  0000 (0)\n+28BEA4 Compression Method    0000 (0) 'Stored'\n+28BEA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28BEAA CRC                   00000000 (0)\n+28BEAE Compressed Size       00000000 (0)\n+28BEB2 Uncompressed Size     00000000 (0)\n+28BEB6 Filename Length       0033 (51)\n+28BEB8 Extra Length          0009 (9)\n+28BEBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28BEBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28BEED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28BEEF   Length              0005 (5)\n+28BEF1   Flags               01 (1) 'Modification'\n+28BEF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+28BEF6 LOCAL HEADER #873     04034B50 (67324752)\n+28BEFA Extract Zip Spec      14 (20) '2.0'\n+28BEFB Extract OS            00 (0) 'MS-DOS'\n+28BEFC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28BEFE Compression Method    0000 (0) 'Stored'\n+28BF00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28BF04 CRC                   00000000 (0)\n+28BF08 Compressed Size       00000000 (0)\n+28BF0C Uncompressed Size     00000000 (0)\n+28BF10 Filename Length       0049 (73)\n+28BF12 Extra Length          0009 (9)\n+28BF14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28BF14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28BF5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28BF5F   Length              0005 (5)\n+28BF61   Flags               01 (1) 'Modification'\n+28BF62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28BF66 PAYLOAD\n+\n+28CB16 DATA DESCRIPTOR       08074B50 (134695760)\n+28CB1A CRC                   9B40567E (2604684926)\n+28CB1E Compressed Size       00000BB0 (2992)\n+28CB22 Uncompressed Size     00000BB0 (2992)\n+\n+28CB26 LOCAL HEADER #874     04034B50 (67324752)\n+28CB2A Extract Zip Spec      14 (20) '2.0'\n+28CB2B Extract OS            00 (0) 'MS-DOS'\n+28CB2C General Purpose Flag  0000 (0)\n+28CB2E Compression Method    0000 (0) 'Stored'\n+28CB30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28CB34 CRC                   00000000 (0)\n+28CB38 Compressed Size       00000000 (0)\n+28CB3C Uncompressed Size     00000000 (0)\n+28CB40 Filename Length       001E (30)\n+28CB42 Extra Length          0009 (9)\n+28CB44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28CB44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28CB62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28CB64   Length              0005 (5)\n+28CB66   Flags               01 (1) 'Modification'\n+28CB67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+28CB6B LOCAL HEADER #875     04034B50 (67324752)\n+28CB6F Extract Zip Spec      14 (20) '2.0'\n+28CB70 Extract OS            00 (0) 'MS-DOS'\n+28CB71 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+28CB73 Compression Method    0000 (0) 'Stored'\n+28CB75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+28CB79 CRC                   00000000 (0)\n+28CB7D Compressed Size       00000000 (0)\n+28CB81 Uncompressed Size     00000000 (0)\n+28CB85 Filename Length       0033 (51)\n+28CB87 Extra Length          0009 (9)\n+28CB89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x28CB89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+28CBBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+28CBBE   Length              0005 (5)\n+28CBC0   Flags               01 (1) 'Modification'\n+28CBC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+28CBC5 PAYLOAD\n+\n+2948AC DATA DESCRIPTOR       08074B50 (134695760)\n+2948B0 CRC                   6BA20F13 (1805782803)\n+2948B4 Compressed Size       00007CE7 (31975)\n+2948B8 Uncompressed Size     00007CE7 (31975)\n+\n+2948BC LOCAL HEADER #876     04034B50 (67324752)\n+2948C0 Extract Zip Spec      14 (20) '2.0'\n+2948C1 Extract OS            00 (0) 'MS-DOS'\n+2948C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2948C4 Compression Method    0000 (0) 'Stored'\n+2948C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2948CA CRC                   00000000 (0)\n+2948CE Compressed Size       00000000 (0)\n+2948D2 Uncompressed Size     00000000 (0)\n+2948D6 Filename Length       002A (42)\n+2948D8 Extra Length          0009 (9)\n+2948DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2948DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+294904 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+294906   Length              0005 (5)\n+294908   Flags               01 (1) 'Modification'\n+294909   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29490D PAYLOAD\n+\n+294FA9 DATA DESCRIPTOR       08074B50 (134695760)\n+294FAD CRC                   896B8386 (2305524614)\n+294FB1 Compressed Size       0000069C (1692)\n+294FB5 Uncompressed Size     0000069C (1692)\n+\n+294FB9 LOCAL HEADER #877     04034B50 (67324752)\n+294FBD Extract Zip Spec      14 (20) '2.0'\n+294FBE Extract OS            00 (0) 'MS-DOS'\n+294FBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+294FC1 Compression Method    0000 (0) 'Stored'\n+294FC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+294FC7 CRC                   00000000 (0)\n+294FCB Compressed Size       00000000 (0)\n+294FCF Uncompressed Size     00000000 (0)\n+294FD3 Filename Length       0028 (40)\n+294FD5 Extra Length          0009 (9)\n+294FD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x294FD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+294FFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+295001   Length              0005 (5)\n+295003   Flags               01 (1) 'Modification'\n+295004   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+295008 PAYLOAD\n+\n+295771 DATA DESCRIPTOR       08074B50 (134695760)\n+295775 CRC                   2D8D7FE9 (764248041)\n+295779 Compressed Size       00000769 (1897)\n+29577D Uncompressed Size     00000769 (1897)\n+\n+295781 LOCAL HEADER #878     04034B50 (67324752)\n+295785 Extract Zip Spec      14 (20) '2.0'\n+295786 Extract OS            00 (0) 'MS-DOS'\n+295787 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+295789 Compression Method    0000 (0) 'Stored'\n+29578B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29578F CRC                   00000000 (0)\n+295793 Compressed Size       00000000 (0)\n+295797 Uncompressed Size     00000000 (0)\n+29579B Filename Length       002C (44)\n+29579D Extra Length          0009 (9)\n+29579F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29579F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2957CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2957CD   Length              0005 (5)\n+2957CF   Flags               01 (1) 'Modification'\n+2957D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2957D4 PAYLOAD\n+\n+295C6B DATA DESCRIPTOR       08074B50 (134695760)\n+295C6F CRC                   E9761FB8 (3916832696)\n+295C73 Compressed Size       00000497 (1175)\n+295C77 Uncompressed Size     00000497 (1175)\n+\n+295C7B LOCAL HEADER #879     04034B50 (67324752)\n+295C7F Extract Zip Spec      14 (20) '2.0'\n+295C80 Extract OS            00 (0) 'MS-DOS'\n+295C81 General Purpose Flag  0000 (0)\n+295C83 Compression Method    0000 (0) 'Stored'\n+295C85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+295C89 CRC                   00000000 (0)\n+295C8D Compressed Size       00000000 (0)\n+295C91 Uncompressed Size     00000000 (0)\n+295C95 Filename Length       001E (30)\n+295C97 Extra Length          0009 (9)\n+295C99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x295C99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+295CB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+295CB9   Length              0005 (5)\n+295CBB   Flags               01 (1) 'Modification'\n+295CBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+295CC0 LOCAL HEADER #880     04034B50 (67324752)\n+295CC4 Extract Zip Spec      14 (20) '2.0'\n+295CC5 Extract OS            00 (0) 'MS-DOS'\n+295CC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+295CC8 Compression Method    0000 (0) 'Stored'\n+295CCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+295CCE CRC                   00000000 (0)\n+295CD2 Compressed Size       00000000 (0)\n+295CD6 Uncompressed Size     00000000 (0)\n+295CDA Filename Length       0032 (50)\n+295CDC Extra Length          0009 (9)\n+295CDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x295CDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+295D10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+295D12   Length              0005 (5)\n+295D14   Flags               01 (1) 'Modification'\n+295D15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+295D19 PAYLOAD\n+\n+29B200 DATA DESCRIPTOR       08074B50 (134695760)\n+29B204 CRC                   7F03CBF8 (2130955256)\n+29B208 Compressed Size       000054E7 (21735)\n+29B20C Uncompressed Size     000054E7 (21735)\n+\n+29B210 LOCAL HEADER #881     04034B50 (67324752)\n+29B214 Extract Zip Spec      14 (20) '2.0'\n+29B215 Extract OS            00 (0) 'MS-DOS'\n+29B216 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29B218 Compression Method    0000 (0) 'Stored'\n+29B21A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29B21E CRC                   00000000 (0)\n+29B222 Compressed Size       00000000 (0)\n+29B226 Uncompressed Size     00000000 (0)\n+29B22A Filename Length       002D (45)\n+29B22C Extra Length          0009 (9)\n+29B22E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29B22E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29B25B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29B25D   Length              0005 (5)\n+29B25F   Flags               01 (1) 'Modification'\n+29B260   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29B264 PAYLOAD\n+\n+29BBE9 DATA DESCRIPTOR       08074B50 (134695760)\n+29BBED CRC                   255BC4C2 (626771138)\n+29BBF1 Compressed Size       00000985 (2437)\n+29BBF5 Uncompressed Size     00000985 (2437)\n+\n+29BBF9 LOCAL HEADER #882     04034B50 (67324752)\n+29BBFD Extract Zip Spec      14 (20) '2.0'\n+29BBFE Extract OS            00 (0) 'MS-DOS'\n+29BBFF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29BC01 Compression Method    0000 (0) 'Stored'\n+29BC03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29BC07 CRC                   00000000 (0)\n+29BC0B Compressed Size       00000000 (0)\n+29BC0F Uncompressed Size     00000000 (0)\n+29BC13 Filename Length       0029 (41)\n+29BC15 Extra Length          0009 (9)\n+29BC17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29BC17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29BC40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29BC42   Length              0005 (5)\n+29BC44   Flags               01 (1) 'Modification'\n+29BC45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29BC49 PAYLOAD\n+\n+29C1E7 DATA DESCRIPTOR       08074B50 (134695760)\n+29C1EB CRC                   40170699 (1075250841)\n+29C1EF Compressed Size       0000059E (1438)\n+29C1F3 Uncompressed Size     0000059E (1438)\n+\n+29C1F7 LOCAL HEADER #883     04034B50 (67324752)\n+29C1FB Extract Zip Spec      14 (20) '2.0'\n+29C1FC Extract OS            00 (0) 'MS-DOS'\n+29C1FD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29C1FF Compression Method    0000 (0) 'Stored'\n+29C201 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29C205 CRC                   00000000 (0)\n+29C209 Compressed Size       00000000 (0)\n+29C20D Uncompressed Size     00000000 (0)\n+29C211 Filename Length       0038 (56)\n+29C213 Extra Length          0009 (9)\n+29C215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29C215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29C24D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29C24F   Length              0005 (5)\n+29C251   Flags               01 (1) 'Modification'\n+29C252   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29C256 PAYLOAD\n+\n+29D49F DATA DESCRIPTOR       08074B50 (134695760)\n+29D4A3 CRC                   A604EAF8 (2785340152)\n+29D4A7 Compressed Size       00001249 (4681)\n+29D4AB Uncompressed Size     00001249 (4681)\n+\n+29D4AF LOCAL HEADER #884     04034B50 (67324752)\n+29D4B3 Extract Zip Spec      14 (20) '2.0'\n+29D4B4 Extract OS            00 (0) 'MS-DOS'\n+29D4B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29D4B7 Compression Method    0000 (0) 'Stored'\n+29D4B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29D4BD CRC                   00000000 (0)\n+29D4C1 Compressed Size       00000000 (0)\n+29D4C5 Uncompressed Size     00000000 (0)\n+29D4C9 Filename Length       002C (44)\n+29D4CB Extra Length          0009 (9)\n+29D4CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29D4CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29D4F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29D4FB   Length              0005 (5)\n+29D4FD   Flags               01 (1) 'Modification'\n+29D4FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29D502 PAYLOAD\n+\n+29E87C DATA DESCRIPTOR       08074B50 (134695760)\n+29E880 CRC                   D7EB77B9 (3622533049)\n+29E884 Compressed Size       0000137A (4986)\n+29E888 Uncompressed Size     0000137A (4986)\n+\n+29E88C LOCAL HEADER #885     04034B50 (67324752)\n+29E890 Extract Zip Spec      14 (20) '2.0'\n+29E891 Extract OS            00 (0) 'MS-DOS'\n+29E892 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29E894 Compression Method    0000 (0) 'Stored'\n+29E896 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29E89A CRC                   00000000 (0)\n+29E89E Compressed Size       00000000 (0)\n+29E8A2 Uncompressed Size     00000000 (0)\n+29E8A6 Filename Length       0039 (57)\n+29E8A8 Extra Length          0009 (9)\n+29E8AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29E8AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29E8E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29E8E5   Length              0005 (5)\n+29E8E7   Flags               01 (1) 'Modification'\n+29E8E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29E8EC PAYLOAD\n+\n+29EE21 DATA DESCRIPTOR       08074B50 (134695760)\n+29EE25 CRC                   7518C2B8 (1964556984)\n+29EE29 Compressed Size       00000535 (1333)\n+29EE2D Uncompressed Size     00000535 (1333)\n+\n+29EE31 LOCAL HEADER #886     04034B50 (67324752)\n+29EE35 Extract Zip Spec      14 (20) '2.0'\n+29EE36 Extract OS            00 (0) 'MS-DOS'\n+29EE37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+29EE39 Compression Method    0000 (0) 'Stored'\n+29EE3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+29EE3F CRC                   00000000 (0)\n+29EE43 Compressed Size       00000000 (0)\n+29EE47 Uncompressed Size     00000000 (0)\n+29EE4B Filename Length       002E (46)\n+29EE4D Extra Length          0009 (9)\n+29EE4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x29EE4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+29EE7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+29EE7F   Length              0005 (5)\n+29EE81   Flags               01 (1) 'Modification'\n+29EE82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+29EE86 PAYLOAD\n+\n+2A04D7 DATA DESCRIPTOR       08074B50 (134695760)\n+2A04DB CRC                   FC613C2C (4234230828)\n+2A04DF Compressed Size       00001651 (5713)\n+2A04E3 Uncompressed Size     00001651 (5713)\n+\n+2A04E7 LOCAL HEADER #887     04034B50 (67324752)\n+2A04EB Extract Zip Spec      14 (20) '2.0'\n+2A04EC Extract OS            00 (0) 'MS-DOS'\n+2A04ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2A04EF Compression Method    0000 (0) 'Stored'\n+2A04F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2A04F5 CRC                   00000000 (0)\n+2A04F9 Compressed Size       00000000 (0)\n+2A04FD Uncompressed Size     00000000 (0)\n+2A0501 Filename Length       002D (45)\n+2A0503 Extra Length          0009 (9)\n+2A0505 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A0505: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2A0532 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2A0534   Length              0005 (5)\n+2A0536   Flags               01 (1) 'Modification'\n+2A0537   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2A053B PAYLOAD\n+\n+2A4D4E DATA DESCRIPTOR       08074B50 (134695760)\n+2A4D52 CRC                   75C25786 (1975670662)\n+2A4D56 Compressed Size       00004813 (18451)\n+2A4D5A Uncompressed Size     00004813 (18451)\n+\n+2A4D5E LOCAL HEADER #888     04034B50 (67324752)\n+2A4D62 Extract Zip Spec      14 (20) '2.0'\n+2A4D63 Extract OS            00 (0) 'MS-DOS'\n+2A4D64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2A4D66 Compression Method    0000 (0) 'Stored'\n+2A4D68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2A4D6C CRC                   00000000 (0)\n+2A4D70 Compressed Size       00000000 (0)\n+2A4D74 Uncompressed Size     00000000 (0)\n+2A4D78 Filename Length       0032 (50)\n+2A4D7A Extra Length          0009 (9)\n+2A4D7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A4D7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2A4DAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2A4DB0   Length              0005 (5)\n+2A4DB2   Flags               01 (1) 'Modification'\n+2A4DB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2A4DB7 PAYLOAD\n+\n+2A7B19 DATA DESCRIPTOR       08074B50 (134695760)\n+2A7B1D CRC                   49173B6A (1226259306)\n+2A7B21 Compressed Size       00002D62 (11618)\n+2A7B25 Uncompressed Size     00002D62 (11618)\n+\n+2A7B29 LOCAL HEADER #889     04034B50 (67324752)\n+2A7B2D Extract Zip Spec      14 (20) '2.0'\n+2A7B2E Extract OS            00 (0) 'MS-DOS'\n+2A7B2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2A7B31 Compression Method    0000 (0) 'Stored'\n+2A7B33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2A7B37 CRC                   00000000 (0)\n+2A7B3B Compressed Size       00000000 (0)\n+2A7B3F Uncompressed Size     00000000 (0)\n+2A7B43 Filename Length       0036 (54)\n+2A7B45 Extra Length          0009 (9)\n+2A7B47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A7B47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2A7B7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2A7B7F   Length              0005 (5)\n+2A7B81   Flags               01 (1) 'Modification'\n+2A7B82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2A7B86 PAYLOAD\n+\n+2A9FC9 DATA DESCRIPTOR       08074B50 (134695760)\n+2A9FCD CRC                   8D8AC97C (2374683004)\n+2A9FD1 Compressed Size       00002443 (9283)\n+2A9FD5 Uncompressed Size     00002443 (9283)\n+\n+2A9FD9 LOCAL HEADER #890     04034B50 (67324752)\n+2A9FDD Extract Zip Spec      14 (20) '2.0'\n+2A9FDE Extract OS            00 (0) 'MS-DOS'\n+2A9FDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2A9FE1 Compression Method    0000 (0) 'Stored'\n+2A9FE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2A9FE7 CRC                   00000000 (0)\n+2A9FEB Compressed Size       00000000 (0)\n+2A9FEF Uncompressed Size     00000000 (0)\n+2A9FF3 Filename Length       0034 (52)\n+2A9FF5 Extra Length          0009 (9)\n+2A9FF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2A9FF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2AA02B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2AA02D   Length              0005 (5)\n+2AA02F   Flags               01 (1) 'Modification'\n+2AA030   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2AA034 PAYLOAD\n+\n+2AB1FD DATA DESCRIPTOR       08074B50 (134695760)\n+2AB201 CRC                   0EFD7C48 (251493448)\n+2AB205 Compressed Size       000011C9 (4553)\n+2AB209 Uncompressed Size     000011C9 (4553)\n+\n+2AB20D LOCAL HEADER #891     04034B50 (67324752)\n+2AB211 Extract Zip Spec      14 (20) '2.0'\n+2AB212 Extract OS            00 (0) 'MS-DOS'\n+2AB213 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2AB215 Compression Method    0000 (0) 'Stored'\n+2AB217 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2AB21B CRC                   00000000 (0)\n+2AB21F Compressed Size       00000000 (0)\n+2AB223 Uncompressed Size     00000000 (0)\n+2AB227 Filename Length       002E (46)\n+2AB229 Extra Length          0009 (9)\n+2AB22B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2AB22B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2AB259 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2AB25B   Length              0005 (5)\n+2AB25D   Flags               01 (1) 'Modification'\n+2AB25E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2AB262 PAYLOAD\n+\n+2AE217 DATA DESCRIPTOR       08074B50 (134695760)\n+2AE21B CRC                   8CFD4A70 (2365409904)\n+2AE21F Compressed Size       00002FB5 (12213)\n+2AE223 Uncompressed Size     00002FB5 (12213)\n+\n+2AE227 LOCAL HEADER #892     04034B50 (67324752)\n+2AE22B Extract Zip Spec      14 (20) '2.0'\n+2AE22C Extract OS            00 (0) 'MS-DOS'\n+2AE22D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2AE22F Compression Method    0000 (0) 'Stored'\n+2AE231 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2AE235 CRC                   00000000 (0)\n+2AE239 Compressed Size       00000000 (0)\n+2AE23D Uncompressed Size     00000000 (0)\n+2AE241 Filename Length       002E (46)\n+2AE243 Extra Length          0009 (9)\n+2AE245 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2AE245: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2AE273 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2AE275   Length              0005 (5)\n+2AE277   Flags               01 (1) 'Modification'\n+2AE278   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2AE27C PAYLOAD\n+\n+2AEB72 DATA DESCRIPTOR       08074B50 (134695760)\n+2AEB76 CRC                   F982D49E (4186100894)\n+2AEB7A Compressed Size       000008F6 (2294)\n+2AEB7E Uncompressed Size     000008F6 (2294)\n+\n+2AEB82 LOCAL HEADER #893     04034B50 (67324752)\n+2AEB86 Extract Zip Spec      14 (20) '2.0'\n+2AEB87 Extract OS            00 (0) 'MS-DOS'\n+2AEB88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2AEB8A Compression Method    0000 (0) 'Stored'\n+2AEB8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2AEB90 CRC                   00000000 (0)\n+2AEB94 Compressed Size       00000000 (0)\n+2AEB98 Uncompressed Size     00000000 (0)\n+2AEB9C Filename Length       0030 (48)\n+2AEB9E Extra Length          0009 (9)\n+2AEBA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2AEBA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2AEBD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2AEBD2   Length              0005 (5)\n+2AEBD4   Flags               01 (1) 'Modification'\n+2AEBD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2AEBD9 PAYLOAD\n+\n+2AF3E8 DATA DESCRIPTOR       08074B50 (134695760)\n+2AF3EC CRC                   831A7179 (2199548281)\n+2AF3F0 Compressed Size       0000080F (2063)\n+2AF3F4 Uncompressed Size     0000080F (2063)\n+\n+2AF3F8 LOCAL HEADER #894     04034B50 (67324752)\n+2AF3FC Extract Zip Spec      14 (20) '2.0'\n+2AF3FD Extract OS            00 (0) 'MS-DOS'\n+2AF3FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2AF400 Compression Method    0000 (0) 'Stored'\n+2AF402 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2AF406 CRC                   00000000 (0)\n+2AF40A Compressed Size       00000000 (0)\n+2AF40E Uncompressed Size     00000000 (0)\n+2AF412 Filename Length       002F (47)\n+2AF414 Extra Length          0009 (9)\n+2AF416 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2AF416: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2AF445 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2AF447   Length              0005 (5)\n+2AF449   Flags               01 (1) 'Modification'\n+2AF44A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2AF44E PAYLOAD\n+\n+2B0917 DATA DESCRIPTOR       08074B50 (134695760)\n+2B091B CRC                   239B6511 (597386513)\n+2B091F Compressed Size       000014C9 (5321)\n+2B0923 Uncompressed Size     000014C9 (5321)\n+\n+2B0927 LOCAL HEADER #895     04034B50 (67324752)\n+2B092B Extract Zip Spec      14 (20) '2.0'\n+2B092C Extract OS            00 (0) 'MS-DOS'\n+2B092D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B092F Compression Method    0000 (0) 'Stored'\n+2B0931 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B0935 CRC                   00000000 (0)\n+2B0939 Compressed Size       00000000 (0)\n+2B093D Uncompressed Size     00000000 (0)\n+2B0941 Filename Length       002D (45)\n+2B0943 Extra Length          0009 (9)\n+2B0945 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B0945: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B0972 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B0974   Length              0005 (5)\n+2B0976   Flags               01 (1) 'Modification'\n+2B0977   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B097B PAYLOAD\n+\n+2B1D4A DATA DESCRIPTOR       08074B50 (134695760)\n+2B1D4E CRC                   CB16D394 (3407270804)\n+2B1D52 Compressed Size       000013CF (5071)\n+2B1D56 Uncompressed Size     000013CF (5071)\n+\n+2B1D5A LOCAL HEADER #896     04034B50 (67324752)\n+2B1D5E Extract Zip Spec      14 (20) '2.0'\n+2B1D5F Extract OS            00 (0) 'MS-DOS'\n+2B1D60 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B1D62 Compression Method    0000 (0) 'Stored'\n+2B1D64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B1D68 CRC                   00000000 (0)\n+2B1D6C Compressed Size       00000000 (0)\n+2B1D70 Uncompressed Size     00000000 (0)\n+2B1D74 Filename Length       0029 (41)\n+2B1D76 Extra Length          0009 (9)\n+2B1D78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B1D78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B1DA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B1DA3   Length              0005 (5)\n+2B1DA5   Flags               01 (1) 'Modification'\n+2B1DA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B1DAA PAYLOAD\n+\n+2B21ED DATA DESCRIPTOR       08074B50 (134695760)\n+2B21F1 CRC                   4E3FC833 (1312802867)\n+2B21F5 Compressed Size       00000443 (1091)\n+2B21F9 Uncompressed Size     00000443 (1091)\n+\n+2B21FD LOCAL HEADER #897     04034B50 (67324752)\n+2B2201 Extract Zip Spec      14 (20) '2.0'\n+2B2202 Extract OS            00 (0) 'MS-DOS'\n+2B2203 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B2205 Compression Method    0000 (0) 'Stored'\n+2B2207 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B220B CRC                   00000000 (0)\n+2B220F Compressed Size       00000000 (0)\n+2B2213 Uncompressed Size     00000000 (0)\n+2B2217 Filename Length       002A (42)\n+2B2219 Extra Length          0009 (9)\n+2B221B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B221B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B2245 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B2247   Length              0005 (5)\n+2B2249   Flags               01 (1) 'Modification'\n+2B224A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B224E PAYLOAD\n+\n+2B4365 DATA DESCRIPTOR       08074B50 (134695760)\n+2B4369 CRC                   7A9C058A (2057045386)\n+2B436D Compressed Size       00002117 (8471)\n+2B4371 Uncompressed Size     00002117 (8471)\n+\n+2B4375 LOCAL HEADER #898     04034B50 (67324752)\n+2B4379 Extract Zip Spec      14 (20) '2.0'\n+2B437A Extract OS            00 (0) 'MS-DOS'\n+2B437B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B437D Compression Method    0000 (0) 'Stored'\n+2B437F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B4383 CRC                   00000000 (0)\n+2B4387 Compressed Size       00000000 (0)\n+2B438B Uncompressed Size     00000000 (0)\n+2B438F Filename Length       002A (42)\n+2B4391 Extra Length          0009 (9)\n+2B4393 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B4393: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B43BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B43BF   Length              0005 (5)\n+2B43C1   Flags               01 (1) 'Modification'\n+2B43C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B43C6 PAYLOAD\n+\n+2B5412 DATA DESCRIPTOR       08074B50 (134695760)\n+2B5416 CRC                   A4F19F22 (2767298338)\n+2B541A Compressed Size       0000104C (4172)\n+2B541E Uncompressed Size     0000104C (4172)\n+\n+2B5422 LOCAL HEADER #899     04034B50 (67324752)\n+2B5426 Extract Zip Spec      14 (20) '2.0'\n+2B5427 Extract OS            00 (0) 'MS-DOS'\n+2B5428 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B542A Compression Method    0000 (0) 'Stored'\n+2B542C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B5430 CRC                   00000000 (0)\n+2B5434 Compressed Size       00000000 (0)\n+2B5438 Uncompressed Size     00000000 (0)\n+2B543C Filename Length       002B (43)\n+2B543E Extra Length          0009 (9)\n+2B5440 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B5440: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B546B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B546D   Length              0005 (5)\n+2B546F   Flags               01 (1) 'Modification'\n+2B5470   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B5474 PAYLOAD\n+\n+2B76F7 DATA DESCRIPTOR       08074B50 (134695760)\n+2B76FB CRC                   CBBE6E80 (3418254976)\n+2B76FF Compressed Size       00002283 (8835)\n+2B7703 Uncompressed Size     00002283 (8835)\n+\n+2B7707 LOCAL HEADER #900     04034B50 (67324752)\n+2B770B Extract Zip Spec      14 (20) '2.0'\n+2B770C Extract OS            00 (0) 'MS-DOS'\n+2B770D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B770F Compression Method    0000 (0) 'Stored'\n+2B7711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B7715 CRC                   00000000 (0)\n+2B7719 Compressed Size       00000000 (0)\n+2B771D Uncompressed Size     00000000 (0)\n+2B7721 Filename Length       002B (43)\n+2B7723 Extra Length          0009 (9)\n+2B7725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B7725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B7750 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B7752   Length              0005 (5)\n+2B7754   Flags               01 (1) 'Modification'\n+2B7755   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B7759 PAYLOAD\n+\n+2B831B DATA DESCRIPTOR       08074B50 (134695760)\n+2B831F CRC                   139F375C (329201500)\n+2B8323 Compressed Size       00000BC2 (3010)\n+2B8327 Uncompressed Size     00000BC2 (3010)\n+\n+2B832B LOCAL HEADER #901     04034B50 (67324752)\n+2B832F Extract Zip Spec      14 (20) '2.0'\n+2B8330 Extract OS            00 (0) 'MS-DOS'\n+2B8331 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B8333 Compression Method    0000 (0) 'Stored'\n+2B8335 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B8339 CRC                   00000000 (0)\n+2B833D Compressed Size       00000000 (0)\n+2B8341 Uncompressed Size     00000000 (0)\n+2B8345 Filename Length       0026 (38)\n+2B8347 Extra Length          0009 (9)\n+2B8349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B8349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B836F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B8371   Length              0005 (5)\n+2B8373   Flags               01 (1) 'Modification'\n+2B8374   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B8378 PAYLOAD\n+\n+2B9122 DATA DESCRIPTOR       08074B50 (134695760)\n+2B9126 CRC                   C39767CB (3281479627)\n+2B912A Compressed Size       00000DAA (3498)\n+2B912E Uncompressed Size     00000DAA (3498)\n+\n+2B9132 LOCAL HEADER #902     04034B50 (67324752)\n+2B9136 Extract Zip Spec      14 (20) '2.0'\n+2B9137 Extract OS            00 (0) 'MS-DOS'\n+2B9138 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2B913A Compression Method    0000 (0) 'Stored'\n+2B913C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2B9140 CRC                   00000000 (0)\n+2B9144 Compressed Size       00000000 (0)\n+2B9148 Uncompressed Size     00000000 (0)\n+2B914C Filename Length       002C (44)\n+2B914E Extra Length          0009 (9)\n+2B9150 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2B9150: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2B917C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2B917E   Length              0005 (5)\n+2B9180   Flags               01 (1) 'Modification'\n+2B9181   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2B9185 PAYLOAD\n+\n+2BA246 DATA DESCRIPTOR       08074B50 (134695760)\n+2BA24A CRC                   0C719C80 (208772224)\n+2BA24E Compressed Size       000010C1 (4289)\n+2BA252 Uncompressed Size     000010C1 (4289)\n+\n+2BA256 LOCAL HEADER #903     04034B50 (67324752)\n+2BA25A Extract Zip Spec      14 (20) '2.0'\n+2BA25B Extract OS            00 (0) 'MS-DOS'\n+2BA25C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2BA25E Compression Method    0000 (0) 'Stored'\n+2BA260 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BA264 CRC                   00000000 (0)\n+2BA268 Compressed Size       00000000 (0)\n+2BA26C Uncompressed Size     00000000 (0)\n+2BA270 Filename Length       002A (42)\n+2BA272 Extra Length          0009 (9)\n+2BA274 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BA274: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BA29E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BA2A0   Length              0005 (5)\n+2BA2A2   Flags               01 (1) 'Modification'\n+2BA2A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2BA2A7 PAYLOAD\n+\n+2BB349 DATA DESCRIPTOR       08074B50 (134695760)\n+2BB34D CRC                   4A73FA6D (1249114733)\n+2BB351 Compressed Size       000010A2 (4258)\n+2BB355 Uncompressed Size     000010A2 (4258)\n+\n+2BB359 LOCAL HEADER #904     04034B50 (67324752)\n+2BB35D Extract Zip Spec      14 (20) '2.0'\n+2BB35E Extract OS            00 (0) 'MS-DOS'\n+2BB35F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2BB361 Compression Method    0000 (0) 'Stored'\n+2BB363 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BB367 CRC                   00000000 (0)\n+2BB36B Compressed Size       00000000 (0)\n+2BB36F Uncompressed Size     00000000 (0)\n+2BB373 Filename Length       002E (46)\n+2BB375 Extra Length          0009 (9)\n+2BB377 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BB377: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BB3A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BB3A7   Length              0005 (5)\n+2BB3A9   Flags               01 (1) 'Modification'\n+2BB3AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2BB3AE PAYLOAD\n+\n+2BBD4B DATA DESCRIPTOR       08074B50 (134695760)\n+2BBD4F CRC                   FE0FBB73 (4262443891)\n+2BBD53 Compressed Size       0000099D (2461)\n+2BBD57 Uncompressed Size     0000099D (2461)\n+\n+2BBD5B LOCAL HEADER #905     04034B50 (67324752)\n+2BBD5F Extract Zip Spec      14 (20) '2.0'\n+2BBD60 Extract OS            00 (0) 'MS-DOS'\n+2BBD61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2BBD63 Compression Method    0000 (0) 'Stored'\n+2BBD65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BBD69 CRC                   00000000 (0)\n+2BBD6D Compressed Size       00000000 (0)\n+2BBD71 Uncompressed Size     00000000 (0)\n+2BBD75 Filename Length       0033 (51)\n+2BBD77 Extra Length          0009 (9)\n+2BBD79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BBD79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BBDAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BBDAE   Length              0005 (5)\n+2BBDB0   Flags               01 (1) 'Modification'\n+2BBDB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2BBDB5 PAYLOAD\n+\n+2BC735 DATA DESCRIPTOR       08074B50 (134695760)\n+2BC739 CRC                   F18EE811 (4052674577)\n+2BC73D Compressed Size       00000980 (2432)\n+2BC741 Uncompressed Size     00000980 (2432)\n+\n+2BC745 LOCAL HEADER #906     04034B50 (67324752)\n+2BC749 Extract Zip Spec      14 (20) '2.0'\n+2BC74A Extract OS            00 (0) 'MS-DOS'\n+2BC74B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2BC74D Compression Method    0000 (0) 'Stored'\n+2BC74F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2BC753 CRC                   00000000 (0)\n+2BC757 Compressed Size       00000000 (0)\n+2BC75B Uncompressed Size     00000000 (0)\n+2BC75F Filename Length       002E (46)\n+2BC761 Extra Length          0009 (9)\n+2BC763 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2BC763: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2BC791 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2BC793   Length              0005 (5)\n+2BC795   Flags               01 (1) 'Modification'\n+2BC796   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2BC79A PAYLOAD\n+\n+2C02EA DATA DESCRIPTOR       08074B50 (134695760)\n+2C02EE CRC                   3744AF68 (927248232)\n+2C02F2 Compressed Size       00003B50 (15184)\n+2C02F6 Uncompressed Size     00003B50 (15184)\n+\n+2C02FA LOCAL HEADER #907     04034B50 (67324752)\n+2C02FE Extract Zip Spec      14 (20) '2.0'\n+2C02FF Extract OS            00 (0) 'MS-DOS'\n+2C0300 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2C0302 Compression Method    0000 (0) 'Stored'\n+2C0304 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C0308 CRC                   00000000 (0)\n+2C030C Compressed Size       00000000 (0)\n+2C0310 Uncompressed Size     00000000 (0)\n+2C0314 Filename Length       0035 (53)\n+2C0316 Extra Length          0009 (9)\n+2C0318 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C0318: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C034D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C034F   Length              0005 (5)\n+2C0351   Flags               01 (1) 'Modification'\n+2C0352   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C0356 PAYLOAD\n+\n+2C0BB1 DATA DESCRIPTOR       08074B50 (134695760)\n+2C0BB5 CRC                   A4EA9AD2 (2766838482)\n+2C0BB9 Compressed Size       0000085B (2139)\n+2C0BBD Uncompressed Size     0000085B (2139)\n+\n+2C0BC1 LOCAL HEADER #908     04034B50 (67324752)\n+2C0BC5 Extract Zip Spec      14 (20) '2.0'\n+2C0BC6 Extract OS            00 (0) 'MS-DOS'\n+2C0BC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2C0BC9 Compression Method    0000 (0) 'Stored'\n+2C0BCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C0BCF CRC                   00000000 (0)\n+2C0BD3 Compressed Size       00000000 (0)\n+2C0BD7 Uncompressed Size     00000000 (0)\n+2C0BDB Filename Length       002B (43)\n+2C0BDD Extra Length          0009 (9)\n+2C0BDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C0BDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C0C0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C0C0C   Length              0005 (5)\n+2C0C0E   Flags               01 (1) 'Modification'\n+2C0C0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C0C13 PAYLOAD\n+\n+2C69DA DATA DESCRIPTOR       08074B50 (134695760)\n+2C69DE CRC                   90514D51 (2421247313)\n+2C69E2 Compressed Size       00005DC7 (24007)\n+2C69E6 Uncompressed Size     00005DC7 (24007)\n+\n+2C69EA LOCAL HEADER #909     04034B50 (67324752)\n+2C69EE Extract Zip Spec      14 (20) '2.0'\n+2C69EF Extract OS            00 (0) 'MS-DOS'\n+2C69F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2C69F2 Compression Method    0000 (0) 'Stored'\n+2C69F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C69F8 CRC                   00000000 (0)\n+2C69FC Compressed Size       00000000 (0)\n+2C6A00 Uncompressed Size     00000000 (0)\n+2C6A04 Filename Length       0027 (39)\n+2C6A06 Extra Length          0009 (9)\n+2C6A08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C6A08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C6A2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C6A31   Length              0005 (5)\n+2C6A33   Flags               01 (1) 'Modification'\n+2C6A34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C6A38 PAYLOAD\n+\n+2C72A2 DATA DESCRIPTOR       08074B50 (134695760)\n+2C72A6 CRC                   3422DF4F (874700623)\n+2C72AA Compressed Size       0000086A (2154)\n+2C72AE Uncompressed Size     0000086A (2154)\n+\n+2C72B2 LOCAL HEADER #910     04034B50 (67324752)\n+2C72B6 Extract Zip Spec      14 (20) '2.0'\n+2C72B7 Extract OS            00 (0) 'MS-DOS'\n+2C72B8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2C72BA Compression Method    0000 (0) 'Stored'\n+2C72BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C72C0 CRC                   00000000 (0)\n+2C72C4 Compressed Size       00000000 (0)\n+2C72C8 Uncompressed Size     00000000 (0)\n+2C72CC Filename Length       002C (44)\n+2C72CE Extra Length          0009 (9)\n+2C72D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C72D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C72FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C72FE   Length              0005 (5)\n+2C7300   Flags               01 (1) 'Modification'\n+2C7301   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C7305 PAYLOAD\n+\n+2C7CA9 DATA DESCRIPTOR       08074B50 (134695760)\n+2C7CAD CRC                   5087E57A (1351083386)\n+2C7CB1 Compressed Size       000009A4 (2468)\n+2C7CB5 Uncompressed Size     000009A4 (2468)\n+\n+2C7CB9 LOCAL HEADER #911     04034B50 (67324752)\n+2C7CBD Extract Zip Spec      14 (20) '2.0'\n+2C7CBE Extract OS            00 (0) 'MS-DOS'\n+2C7CBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2C7CC1 Compression Method    0000 (0) 'Stored'\n+2C7CC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2C7CC7 CRC                   00000000 (0)\n+2C7CCB Compressed Size       00000000 (0)\n+2C7CCF Uncompressed Size     00000000 (0)\n+2C7CD3 Filename Length       002C (44)\n+2C7CD5 Extra Length          0009 (9)\n+2C7CD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2C7CD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2C7D03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2C7D05   Length              0005 (5)\n+2C7D07   Flags               01 (1) 'Modification'\n+2C7D08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2C7D0C PAYLOAD\n+\n+2D002C DATA DESCRIPTOR       08074B50 (134695760)\n+2D0030 CRC                   34D97477 (886666359)\n+2D0034 Compressed Size       00008320 (33568)\n+2D0038 Uncompressed Size     00008320 (33568)\n+\n+2D003C LOCAL HEADER #912     04034B50 (67324752)\n+2D0040 Extract Zip Spec      14 (20) '2.0'\n+2D0041 Extract OS            00 (0) 'MS-DOS'\n+2D0042 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2D0044 Compression Method    0000 (0) 'Stored'\n+2D0046 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2D004A CRC                   00000000 (0)\n+2D004E Compressed Size       00000000 (0)\n+2D0052 Uncompressed Size     00000000 (0)\n+2D0056 Filename Length       002F (47)\n+2D0058 Extra Length          0009 (9)\n+2D005A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2D005A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2D0089 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2D008B   Length              0005 (5)\n+2D008D   Flags               01 (1) 'Modification'\n+2D008E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2D0092 PAYLOAD\n+\n+2DBF22 DATA DESCRIPTOR       08074B50 (134695760)\n+2DBF26 CRC                   4414A4AD (1142203565)\n+2DBF2A Compressed Size       0000BE90 (48784)\n+2DBF2E Uncompressed Size     0000BE90 (48784)\n+\n+2DBF32 LOCAL HEADER #913     04034B50 (67324752)\n+2DBF36 Extract Zip Spec      14 (20) '2.0'\n+2DBF37 Extract OS            00 (0) 'MS-DOS'\n+2DBF38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2DBF3A Compression Method    0000 (0) 'Stored'\n+2DBF3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2DBF40 CRC                   00000000 (0)\n+2DBF44 Compressed Size       00000000 (0)\n+2DBF48 Uncompressed Size     00000000 (0)\n+2DBF4C Filename Length       0038 (56)\n+2DBF4E Extra Length          0009 (9)\n+2DBF50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2DBF50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2DBF88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2DBF8A   Length              0005 (5)\n+2DBF8C   Flags               01 (1) 'Modification'\n+2DBF8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2DBF91 PAYLOAD\n+\n+2DD72E DATA DESCRIPTOR       08074B50 (134695760)\n+2DD732 CRC                   20B97A60 (549026400)\n+2DD736 Compressed Size       0000179D (6045)\n+2DD73A Uncompressed Size     0000179D (6045)\n+\n+2DD73E LOCAL HEADER #914     04034B50 (67324752)\n+2DD742 Extract Zip Spec      14 (20) '2.0'\n+2DD743 Extract OS            00 (0) 'MS-DOS'\n+2DD744 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2DD746 Compression Method    0000 (0) 'Stored'\n+2DD748 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2DD74C CRC                   00000000 (0)\n+2DD750 Compressed Size       00000000 (0)\n+2DD754 Uncompressed Size     00000000 (0)\n+2DD758 Filename Length       003C (60)\n+2DD75A Extra Length          0009 (9)\n+2DD75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2DD75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2DD798 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2DD79A   Length              0005 (5)\n+2DD79C   Flags               01 (1) 'Modification'\n+2DD79D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2DD7A1 PAYLOAD\n+\n+2DE9EF DATA DESCRIPTOR       08074B50 (134695760)\n+2DE9F3 CRC                   0B75FDAE (192282030)\n+2DE9F7 Compressed Size       0000124E (4686)\n+2DE9FB Uncompressed Size     0000124E (4686)\n+\n+2DE9FF LOCAL HEADER #915     04034B50 (67324752)\n+2DEA03 Extract Zip Spec      14 (20) '2.0'\n+2DEA04 Extract OS            00 (0) 'MS-DOS'\n+2DEA05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2DEA07 Compression Method    0000 (0) 'Stored'\n+2DEA09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2DEA0D CRC                   00000000 (0)\n+2DEA11 Compressed Size       00000000 (0)\n+2DEA15 Uncompressed Size     00000000 (0)\n+2DEA19 Filename Length       0028 (40)\n+2DEA1B Extra Length          0009 (9)\n+2DEA1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2DEA1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2DEA45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2DEA47   Length              0005 (5)\n+2DEA49   Flags               01 (1) 'Modification'\n+2DEA4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2DEA4E PAYLOAD\n+\n+2DF799 DATA DESCRIPTOR       08074B50 (134695760)\n+2DF79D CRC                   D09B55F9 (3499841017)\n+2DF7A1 Compressed Size       00000D4B (3403)\n+2DF7A5 Uncompressed Size     00000D4B (3403)\n+\n+2DF7A9 LOCAL HEADER #916     04034B50 (67324752)\n+2DF7AD Extract Zip Spec      14 (20) '2.0'\n+2DF7AE Extract OS            00 (0) 'MS-DOS'\n+2DF7AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2DF7B1 Compression Method    0000 (0) 'Stored'\n+2DF7B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2DF7B7 CRC                   00000000 (0)\n+2DF7BB Compressed Size       00000000 (0)\n+2DF7BF Uncompressed Size     00000000 (0)\n+2DF7C3 Filename Length       0044 (68)\n+2DF7C5 Extra Length          0009 (9)\n+2DF7C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2DF7C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2DF80B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2DF80D   Length              0005 (5)\n+2DF80F   Flags               01 (1) 'Modification'\n+2DF810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2DF814 PAYLOAD\n+\n+2E0273 DATA DESCRIPTOR       08074B50 (134695760)\n+2E0277 CRC                   F3B0BA28 (4088445480)\n+2E027B Compressed Size       00000A5F (2655)\n+2E027F Uncompressed Size     00000A5F (2655)\n+\n+2E0283 LOCAL HEADER #917     04034B50 (67324752)\n+2E0287 Extract Zip Spec      14 (20) '2.0'\n+2E0288 Extract OS            00 (0) 'MS-DOS'\n+2E0289 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2E028B Compression Method    0000 (0) 'Stored'\n+2E028D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2E0291 CRC                   00000000 (0)\n+2E0295 Compressed Size       00000000 (0)\n+2E0299 Uncompressed Size     00000000 (0)\n+2E029D Filename Length       002E (46)\n+2E029F Extra Length          0009 (9)\n+2E02A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2E02A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2E02CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2E02D1   Length              0005 (5)\n+2E02D3   Flags               01 (1) 'Modification'\n+2E02D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2E02D8 PAYLOAD\n+\n+2E9648 DATA DESCRIPTOR       08074B50 (134695760)\n+2E964C CRC                   080CFD86 (135069062)\n+2E9650 Compressed Size       00009370 (37744)\n+2E9654 Uncompressed Size     00009370 (37744)\n+\n+2E9658 LOCAL HEADER #918     04034B50 (67324752)\n+2E965C Extract Zip Spec      14 (20) '2.0'\n+2E965D Extract OS            00 (0) 'MS-DOS'\n+2E965E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2E9660 Compression Method    0000 (0) 'Stored'\n+2E9662 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2E9666 CRC                   00000000 (0)\n+2E966A Compressed Size       00000000 (0)\n+2E966E Uncompressed Size     00000000 (0)\n+2E9672 Filename Length       002C (44)\n+2E9674 Extra Length          0009 (9)\n+2E9676 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2E9676: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2E96A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2E96A4   Length              0005 (5)\n+2E96A6   Flags               01 (1) 'Modification'\n+2E96A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2E96AB PAYLOAD\n+\n+2EB983 DATA DESCRIPTOR       08074B50 (134695760)\n+2EB987 CRC                   70A970FE (1890152702)\n+2EB98B Compressed Size       000022D8 (8920)\n+2EB98F Uncompressed Size     000022D8 (8920)\n+\n+2EB993 LOCAL HEADER #919     04034B50 (67324752)\n+2EB997 Extract Zip Spec      14 (20) '2.0'\n+2EB998 Extract OS            00 (0) 'MS-DOS'\n+2EB999 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2EB99B Compression Method    0000 (0) 'Stored'\n+2EB99D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2EB9A1 CRC                   00000000 (0)\n+2EB9A5 Compressed Size       00000000 (0)\n+2EB9A9 Uncompressed Size     00000000 (0)\n+2EB9AD Filename Length       002B (43)\n+2EB9AF Extra Length          0009 (9)\n+2EB9B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2EB9B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2EB9DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2EB9DE   Length              0005 (5)\n+2EB9E0   Flags               01 (1) 'Modification'\n+2EB9E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2EB9E5 PAYLOAD\n+\n+2F1D34 DATA DESCRIPTOR       08074B50 (134695760)\n+2F1D38 CRC                   BCEF5B37 (3169803063)\n+2F1D3C Compressed Size       0000634F (25423)\n+2F1D40 Uncompressed Size     0000634F (25423)\n+\n+2F1D44 LOCAL HEADER #920     04034B50 (67324752)\n+2F1D48 Extract Zip Spec      14 (20) '2.0'\n+2F1D49 Extract OS            00 (0) 'MS-DOS'\n+2F1D4A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2F1D4C Compression Method    0000 (0) 'Stored'\n+2F1D4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2F1D52 CRC                   00000000 (0)\n+2F1D56 Compressed Size       00000000 (0)\n+2F1D5A Uncompressed Size     00000000 (0)\n+2F1D5E Filename Length       002C (44)\n+2F1D60 Extra Length          0009 (9)\n+2F1D62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2F1D62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2F1D8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2F1D90   Length              0005 (5)\n+2F1D92   Flags               01 (1) 'Modification'\n+2F1D93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2F1D97 PAYLOAD\n+\n+2F4542 DATA DESCRIPTOR       08074B50 (134695760)\n+2F4546 CRC                   DB02321D (3674354205)\n+2F454A Compressed Size       000027AB (10155)\n+2F454E Uncompressed Size     000027AB (10155)\n+\n+2F4552 LOCAL HEADER #921     04034B50 (67324752)\n+2F4556 Extract Zip Spec      14 (20) '2.0'\n+2F4557 Extract OS            00 (0) 'MS-DOS'\n+2F4558 General Purpose Flag  0000 (0)\n+2F455A Compression Method    0000 (0) 'Stored'\n+2F455C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2F4560 CRC                   00000000 (0)\n+2F4564 Compressed Size       00000000 (0)\n+2F4568 Uncompressed Size     00000000 (0)\n+2F456C Filename Length       0018 (24)\n+2F456E Extra Length          0009 (9)\n+2F4570 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2F4570: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2F4588 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2F458A   Length              0005 (5)\n+2F458C   Flags               01 (1) 'Modification'\n+2F458D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+2F4591 LOCAL HEADER #922     04034B50 (67324752)\n+2F4595 Extract Zip Spec      14 (20) '2.0'\n+2F4596 Extract OS            00 (0) 'MS-DOS'\n+2F4597 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2F4599 Compression Method    0000 (0) 'Stored'\n+2F459B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2F459F CRC                   00000000 (0)\n+2F45A3 Compressed Size       00000000 (0)\n+2F45A7 Uncompressed Size     00000000 (0)\n+2F45AB Filename Length       002B (43)\n+2F45AD Extra Length          0009 (9)\n+2F45AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2F45AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2F45DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2F45DC   Length              0005 (5)\n+2F45DE   Flags               01 (1) 'Modification'\n+2F45DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2F45E3 PAYLOAD\n+\n+2FAC73 DATA DESCRIPTOR       08074B50 (134695760)\n+2FAC77 CRC                   DCD69CAC (3705052332)\n+2FAC7B Compressed Size       00006690 (26256)\n+2FAC7F Uncompressed Size     00006690 (26256)\n+\n+2FAC83 LOCAL HEADER #923     04034B50 (67324752)\n+2FAC87 Extract Zip Spec      14 (20) '2.0'\n+2FAC88 Extract OS            00 (0) 'MS-DOS'\n+2FAC89 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+2FAC8B Compression Method    0000 (0) 'Stored'\n+2FAC8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+2FAC91 CRC                   00000000 (0)\n+2FAC95 Compressed Size       00000000 (0)\n+2FAC99 Uncompressed Size     00000000 (0)\n+2FAC9D Filename Length       0034 (52)\n+2FAC9F Extra Length          0009 (9)\n+2FACA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x2FACA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+2FACD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+2FACD7   Length              0005 (5)\n+2FACD9   Flags               01 (1) 'Modification'\n+2FACDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+2FACDE PAYLOAD\n+\n+300ECB DATA DESCRIPTOR       08074B50 (134695760)\n+300ECF CRC                   E3FDA003 (3825049603)\n+300ED3 Compressed Size       000061ED (25069)\n+300ED7 Uncompressed Size     000061ED (25069)\n+\n+300EDB LOCAL HEADER #924     04034B50 (67324752)\n+300EDF Extract Zip Spec      14 (20) '2.0'\n+300EE0 Extract OS            00 (0) 'MS-DOS'\n+300EE1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+300EE3 Compression Method    0000 (0) 'Stored'\n+300EE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+300EE9 CRC                   00000000 (0)\n+300EED Compressed Size       00000000 (0)\n+300EF1 Uncompressed Size     00000000 (0)\n+300EF5 Filename Length       0031 (49)\n+300EF7 Extra Length          0009 (9)\n+300EF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x300EF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+300F2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+300F2C   Length              0005 (5)\n+300F2E   Flags               01 (1) 'Modification'\n+300F2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+300F33 PAYLOAD\n+\n+302238 DATA DESCRIPTOR       08074B50 (134695760)\n+30223C CRC                   9A747BAC (2591325100)\n+302240 Compressed Size       00001305 (4869)\n+302244 Uncompressed Size     00001305 (4869)\n+\n+302248 LOCAL HEADER #925     04034B50 (67324752)\n+30224C Extract Zip Spec      14 (20) '2.0'\n+30224D Extract OS            00 (0) 'MS-DOS'\n+30224E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+302250 Compression Method    0000 (0) 'Stored'\n+302252 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+302256 CRC                   00000000 (0)\n+30225A Compressed Size       00000000 (0)\n+30225E Uncompressed Size     00000000 (0)\n+302262 Filename Length       0034 (52)\n+302264 Extra Length          0009 (9)\n+302266 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x302266: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30229A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30229C   Length              0005 (5)\n+30229E   Flags               01 (1) 'Modification'\n+30229F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3022A3 PAYLOAD\n+\n+30397A DATA DESCRIPTOR       08074B50 (134695760)\n+30397E CRC                   F1EB3E77 (4058726007)\n+303982 Compressed Size       000016D7 (5847)\n+303986 Uncompressed Size     000016D7 (5847)\n+\n+30398A LOCAL HEADER #926     04034B50 (67324752)\n+30398E Extract Zip Spec      14 (20) '2.0'\n+30398F Extract OS            00 (0) 'MS-DOS'\n+303990 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+303992 Compression Method    0000 (0) 'Stored'\n+303994 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+303998 CRC                   00000000 (0)\n+30399C Compressed Size       00000000 (0)\n+3039A0 Uncompressed Size     00000000 (0)\n+3039A4 Filename Length       0032 (50)\n+3039A6 Extra Length          0009 (9)\n+3039A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3039A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3039DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3039DC   Length              0005 (5)\n+3039DE   Flags               01 (1) 'Modification'\n+3039DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3039E3 PAYLOAD\n+\n+305548 DATA DESCRIPTOR       08074B50 (134695760)\n+30554C CRC                   7F641F8A (2137268106)\n+305550 Compressed Size       00001B65 (7013)\n+305554 Uncompressed Size     00001B65 (7013)\n+\n+305558 LOCAL HEADER #927     04034B50 (67324752)\n+30555C Extract Zip Spec      14 (20) '2.0'\n+30555D Extract OS            00 (0) 'MS-DOS'\n+30555E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+305560 Compression Method    0000 (0) 'Stored'\n+305562 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+305566 CRC                   00000000 (0)\n+30556A Compressed Size       00000000 (0)\n+30556E Uncompressed Size     00000000 (0)\n+305572 Filename Length       002E (46)\n+305574 Extra Length          0009 (9)\n+305576 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x305576: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3055A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3055A6   Length              0005 (5)\n+3055A8   Flags               01 (1) 'Modification'\n+3055A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3055AD PAYLOAD\n+\n+308CB4 DATA DESCRIPTOR       08074B50 (134695760)\n+308CB8 CRC                   6C21C4E0 (1814152416)\n+308CBC Compressed Size       00003707 (14087)\n+308CC0 Uncompressed Size     00003707 (14087)\n+\n+308CC4 LOCAL HEADER #928     04034B50 (67324752)\n+308CC8 Extract Zip Spec      14 (20) '2.0'\n+308CC9 Extract OS            00 (0) 'MS-DOS'\n+308CCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+308CCC Compression Method    0000 (0) 'Stored'\n+308CCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+308CD2 CRC                   00000000 (0)\n+308CD6 Compressed Size       00000000 (0)\n+308CDA Uncompressed Size     00000000 (0)\n+308CDE Filename Length       002B (43)\n+308CE0 Extra Length          0009 (9)\n+308CE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x308CE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+308D0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+308D0F   Length              0005 (5)\n+308D11   Flags               01 (1) 'Modification'\n+308D12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+308D16 PAYLOAD\n+\n+3095B7 DATA DESCRIPTOR       08074B50 (134695760)\n+3095BB CRC                   F3BD8170 (4089282928)\n+3095BF Compressed Size       000008A1 (2209)\n+3095C3 Uncompressed Size     000008A1 (2209)\n+\n+3095C7 LOCAL HEADER #929     04034B50 (67324752)\n+3095CB Extract Zip Spec      14 (20) '2.0'\n+3095CC Extract OS            00 (0) 'MS-DOS'\n+3095CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3095CF Compression Method    0000 (0) 'Stored'\n+3095D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3095D5 CRC                   00000000 (0)\n+3095D9 Compressed Size       00000000 (0)\n+3095DD Uncompressed Size     00000000 (0)\n+3095E1 Filename Length       002F (47)\n+3095E3 Extra Length          0009 (9)\n+3095E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3095E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+309614 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+309616   Length              0005 (5)\n+309618   Flags               01 (1) 'Modification'\n+309619   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30961D PAYLOAD\n+\n+30B9D9 DATA DESCRIPTOR       08074B50 (134695760)\n+30B9DD CRC                   56A68FB6 (1453756342)\n+30B9E1 Compressed Size       000023BC (9148)\n+30B9E5 Uncompressed Size     000023BC (9148)\n+\n+30B9E9 LOCAL HEADER #930     04034B50 (67324752)\n+30B9ED Extract Zip Spec      14 (20) '2.0'\n+30B9EE Extract OS            00 (0) 'MS-DOS'\n+30B9EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30B9F1 Compression Method    0000 (0) 'Stored'\n+30B9F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30B9F7 CRC                   00000000 (0)\n+30B9FB Compressed Size       00000000 (0)\n+30B9FF Uncompressed Size     00000000 (0)\n+30BA03 Filename Length       002E (46)\n+30BA05 Extra Length          0009 (9)\n+30BA07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30BA07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30BA35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30BA37   Length              0005 (5)\n+30BA39   Flags               01 (1) 'Modification'\n+30BA3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30BA3E PAYLOAD\n+\n+30BED3 DATA DESCRIPTOR       08074B50 (134695760)\n+30BED7 CRC                   6C5A36DD (1817851613)\n+30BEDB Compressed Size       00000495 (1173)\n+30BEDF Uncompressed Size     00000495 (1173)\n+\n+30BEE3 LOCAL HEADER #931     04034B50 (67324752)\n+30BEE7 Extract Zip Spec      14 (20) '2.0'\n+30BEE8 Extract OS            00 (0) 'MS-DOS'\n+30BEE9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30BEEB Compression Method    0000 (0) 'Stored'\n+30BEED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30BEF1 CRC                   00000000 (0)\n+30BEF5 Compressed Size       00000000 (0)\n+30BEF9 Uncompressed Size     00000000 (0)\n+30BEFD Filename Length       0030 (48)\n+30BEFF Extra Length          0009 (9)\n+30BF01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30BF01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30BF31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30BF33   Length              0005 (5)\n+30BF35   Flags               01 (1) 'Modification'\n+30BF36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30BF3A PAYLOAD\n+\n+30C3B9 DATA DESCRIPTOR       08074B50 (134695760)\n+30C3BD CRC                   566E5E12 (1450073618)\n+30C3C1 Compressed Size       0000047F (1151)\n+30C3C5 Uncompressed Size     0000047F (1151)\n+\n+30C3C9 LOCAL HEADER #932     04034B50 (67324752)\n+30C3CD Extract Zip Spec      14 (20) '2.0'\n+30C3CE Extract OS            00 (0) 'MS-DOS'\n+30C3CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30C3D1 Compression Method    0000 (0) 'Stored'\n+30C3D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30C3D7 CRC                   00000000 (0)\n+30C3DB Compressed Size       00000000 (0)\n+30C3DF Uncompressed Size     00000000 (0)\n+30C3E3 Filename Length       0026 (38)\n+30C3E5 Extra Length          0009 (9)\n+30C3E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30C3E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30C40D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30C40F   Length              0005 (5)\n+30C411   Flags               01 (1) 'Modification'\n+30C412   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30C416 PAYLOAD\n+\n+30CFAF DATA DESCRIPTOR       08074B50 (134695760)\n+30CFB3 CRC                   111FF296 (287306390)\n+30CFB7 Compressed Size       00000B99 (2969)\n+30CFBB Uncompressed Size     00000B99 (2969)\n+\n+30CFBF LOCAL HEADER #933     04034B50 (67324752)\n+30CFC3 Extract Zip Spec      14 (20) '2.0'\n+30CFC4 Extract OS            00 (0) 'MS-DOS'\n+30CFC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30CFC7 Compression Method    0000 (0) 'Stored'\n+30CFC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30CFCD CRC                   00000000 (0)\n+30CFD1 Compressed Size       00000000 (0)\n+30CFD5 Uncompressed Size     00000000 (0)\n+30CFD9 Filename Length       002B (43)\n+30CFDB Extra Length          0009 (9)\n+30CFDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30CFDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30D008 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30D00A   Length              0005 (5)\n+30D00C   Flags               01 (1) 'Modification'\n+30D00D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30D011 PAYLOAD\n+\n+30DE88 DATA DESCRIPTOR       08074B50 (134695760)\n+30DE8C CRC                   44CDA5D9 (1154328025)\n+30DE90 Compressed Size       00000E77 (3703)\n+30DE94 Uncompressed Size     00000E77 (3703)\n+\n+30DE98 LOCAL HEADER #934     04034B50 (67324752)\n+30DE9C Extract Zip Spec      14 (20) '2.0'\n+30DE9D Extract OS            00 (0) 'MS-DOS'\n+30DE9E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30DEA0 Compression Method    0000 (0) 'Stored'\n+30DEA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30DEA6 CRC                   00000000 (0)\n+30DEAA Compressed Size       00000000 (0)\n+30DEAE Uncompressed Size     00000000 (0)\n+30DEB2 Filename Length       002E (46)\n+30DEB4 Extra Length          0009 (9)\n+30DEB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30DEB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30DEE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30DEE6   Length              0005 (5)\n+30DEE8   Flags               01 (1) 'Modification'\n+30DEE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30DEED PAYLOAD\n+\n+30F2A1 DATA DESCRIPTOR       08074B50 (134695760)\n+30F2A5 CRC                   8233D78E (2184435598)\n+30F2A9 Compressed Size       000013B4 (5044)\n+30F2AD Uncompressed Size     000013B4 (5044)\n+\n+30F2B1 LOCAL HEADER #935     04034B50 (67324752)\n+30F2B5 Extract Zip Spec      14 (20) '2.0'\n+30F2B6 Extract OS            00 (0) 'MS-DOS'\n+30F2B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+30F2B9 Compression Method    0000 (0) 'Stored'\n+30F2BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+30F2BF CRC                   00000000 (0)\n+30F2C3 Compressed Size       00000000 (0)\n+30F2C7 Uncompressed Size     00000000 (0)\n+30F2CB Filename Length       0031 (49)\n+30F2CD Extra Length          0009 (9)\n+30F2CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x30F2CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+30F300 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+30F302   Length              0005 (5)\n+30F304   Flags               01 (1) 'Modification'\n+30F305   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+30F309 PAYLOAD\n+\n+310B72 DATA DESCRIPTOR       08074B50 (134695760)\n+310B76 CRC                   D584FEC4 (3582262980)\n+310B7A Compressed Size       00001869 (6249)\n+310B7E Uncompressed Size     00001869 (6249)\n+\n+310B82 LOCAL HEADER #936     04034B50 (67324752)\n+310B86 Extract Zip Spec      14 (20) '2.0'\n+310B87 Extract OS            00 (0) 'MS-DOS'\n+310B88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+310B8A Compression Method    0000 (0) 'Stored'\n+310B8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+310B90 CRC                   00000000 (0)\n+310B94 Compressed Size       00000000 (0)\n+310B98 Uncompressed Size     00000000 (0)\n+310B9C Filename Length       0029 (41)\n+310B9E Extra Length          0009 (9)\n+310BA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x310BA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+310BC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+310BCB   Length              0005 (5)\n+310BCD   Flags               01 (1) 'Modification'\n+310BCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+310BD2 PAYLOAD\n+\n+312E92 DATA DESCRIPTOR       08074B50 (134695760)\n+312E96 CRC                   6E2E32B0 (1848521392)\n+312E9A Compressed Size       000022C0 (8896)\n+312E9E Uncompressed Size     000022C0 (8896)\n+\n+312EA2 LOCAL HEADER #937     04034B50 (67324752)\n+312EA6 Extract Zip Spec      14 (20) '2.0'\n+312EA7 Extract OS            00 (0) 'MS-DOS'\n+312EA8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+312EAA Compression Method    0000 (0) 'Stored'\n+312EAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+312EB0 CRC                   00000000 (0)\n+312EB4 Compressed Size       00000000 (0)\n+312EB8 Uncompressed Size     00000000 (0)\n+312EBC Filename Length       002A (42)\n+312EBE Extra Length          0009 (9)\n+312EC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x312EC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+312EEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+312EEC   Length              0005 (5)\n+312EEE   Flags               01 (1) 'Modification'\n+312EEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+312EF3 PAYLOAD\n+\n+313582 DATA DESCRIPTOR       08074B50 (134695760)\n+313586 CRC                   C17F4D7C (3246345596)\n+31358A Compressed Size       0000068F (1679)\n+31358E Uncompressed Size     0000068F (1679)\n+\n+313592 LOCAL HEADER #938     04034B50 (67324752)\n+313596 Extract Zip Spec      14 (20) '2.0'\n+313597 Extract OS            00 (0) 'MS-DOS'\n+313598 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+31359A Compression Method    0000 (0) 'Stored'\n+31359C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3135A0 CRC                   00000000 (0)\n+3135A4 Compressed Size       00000000 (0)\n+3135A8 Uncompressed Size     00000000 (0)\n+3135AC Filename Length       0029 (41)\n+3135AE Extra Length          0009 (9)\n+3135B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3135B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3135D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3135DB   Length              0005 (5)\n+3135DD   Flags               01 (1) 'Modification'\n+3135DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3135E2 PAYLOAD\n+\n+314470 DATA DESCRIPTOR       08074B50 (134695760)\n+314474 CRC                   0D00D936 (218159414)\n+314478 Compressed Size       00000E8E (3726)\n+31447C Uncompressed Size     00000E8E (3726)\n+\n+314480 LOCAL HEADER #939     04034B50 (67324752)\n+314484 Extract Zip Spec      14 (20) '2.0'\n+314485 Extract OS            00 (0) 'MS-DOS'\n+314486 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+314488 Compression Method    0000 (0) 'Stored'\n+31448A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+31448E CRC                   00000000 (0)\n+314492 Compressed Size       00000000 (0)\n+314496 Uncompressed Size     00000000 (0)\n+31449A Filename Length       002A (42)\n+31449C Extra Length          0009 (9)\n+31449E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x31449E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3144C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3144CA   Length              0005 (5)\n+3144CC   Flags               01 (1) 'Modification'\n+3144CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3144D1 PAYLOAD\n+\n+3153F1 DATA DESCRIPTOR       08074B50 (134695760)\n+3153F5 CRC                   F4388FF8 (4097347576)\n+3153F9 Compressed Size       00000F20 (3872)\n+3153FD Uncompressed Size     00000F20 (3872)\n+\n+315401 LOCAL HEADER #940     04034B50 (67324752)\n+315405 Extract Zip Spec      14 (20) '2.0'\n+315406 Extract OS            00 (0) 'MS-DOS'\n+315407 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+315409 Compression Method    0000 (0) 'Stored'\n+31540B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+31540F CRC                   00000000 (0)\n+315413 Compressed Size       00000000 (0)\n+315417 Uncompressed Size     00000000 (0)\n+31541B Filename Length       002B (43)\n+31541D Extra Length          0009 (9)\n+31541F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x31541F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+31544A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+31544C   Length              0005 (5)\n+31544E   Flags               01 (1) 'Modification'\n+31544F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+315453 PAYLOAD\n+\n+318A66 DATA DESCRIPTOR       08074B50 (134695760)\n+318A6A CRC                   39FACF71 (972738417)\n+318A6E Compressed Size       00003613 (13843)\n+318A72 Uncompressed Size     00003613 (13843)\n+\n+318A76 LOCAL HEADER #941     04034B50 (67324752)\n+318A7A Extract Zip Spec      14 (20) '2.0'\n+318A7B Extract OS            00 (0) 'MS-DOS'\n+318A7C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+318A7E Compression Method    0000 (0) 'Stored'\n+318A80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+318A84 CRC                   00000000 (0)\n+318A88 Compressed Size       00000000 (0)\n+318A8C Uncompressed Size     00000000 (0)\n+318A90 Filename Length       002B (43)\n+318A92 Extra Length          0009 (9)\n+318A94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x318A94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+318ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+318AC1   Length              0005 (5)\n+318AC3   Flags               01 (1) 'Modification'\n+318AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+318AC8 PAYLOAD\n+\n+31B534 DATA DESCRIPTOR       08074B50 (134695760)\n+31B538 CRC                   2FD52EF2 (802500338)\n+31B53C Compressed Size       00002A6C (10860)\n+31B540 Uncompressed Size     00002A6C (10860)\n+\n+31B544 LOCAL HEADER #942     04034B50 (67324752)\n+31B548 Extract Zip Spec      14 (20) '2.0'\n+31B549 Extract OS            00 (0) 'MS-DOS'\n+31B54A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+31B54C Compression Method    0000 (0) 'Stored'\n+31B54E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+31B552 CRC                   00000000 (0)\n+31B556 Compressed Size       00000000 (0)\n+31B55A Uncompressed Size     00000000 (0)\n+31B55E Filename Length       002C (44)\n+31B560 Extra Length          0009 (9)\n+31B562 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x31B562: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+31B58E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+31B590   Length              0005 (5)\n+31B592   Flags               01 (1) 'Modification'\n+31B593   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+31B597 PAYLOAD\n+\n+321602 DATA DESCRIPTOR       08074B50 (134695760)\n+321606 CRC                   23EF92DF (602903263)\n+32160A Compressed Size       0000606B (24683)\n+32160E Uncompressed Size     0000606B (24683)\n+\n+321612 LOCAL HEADER #943     04034B50 (67324752)\n+321616 Extract Zip Spec      14 (20) '2.0'\n+321617 Extract OS            00 (0) 'MS-DOS'\n+321618 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+32161A Compression Method    0000 (0) 'Stored'\n+32161C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+321620 CRC                   00000000 (0)\n+321624 Compressed Size       00000000 (0)\n+321628 Uncompressed Size     00000000 (0)\n+32162C Filename Length       0030 (48)\n+32162E Extra Length          0009 (9)\n+321630 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x321630: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+321660 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+321662   Length              0005 (5)\n+321664   Flags               01 (1) 'Modification'\n+321665   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+321669 PAYLOAD\n+\n+323818 DATA DESCRIPTOR       08074B50 (134695760)\n+32381C CRC                   42C7E3CE (1120396238)\n+323820 Compressed Size       000021AF (8623)\n+323824 Uncompressed Size     000021AF (8623)\n+\n+323828 LOCAL HEADER #944     04034B50 (67324752)\n+32382C Extract Zip Spec      14 (20) '2.0'\n+32382D Extract OS            00 (0) 'MS-DOS'\n+32382E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+323830 Compression Method    0000 (0) 'Stored'\n+323832 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+323836 CRC                   00000000 (0)\n+32383A Compressed Size       00000000 (0)\n+32383E Uncompressed Size     00000000 (0)\n+323842 Filename Length       002B (43)\n+323844 Extra Length          0009 (9)\n+323846 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x323846: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+323871 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+323873   Length              0005 (5)\n+323875   Flags               01 (1) 'Modification'\n+323876   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+32387A PAYLOAD\n+\n+326DA1 DATA DESCRIPTOR       08074B50 (134695760)\n+326DA5 CRC                   9B8BDB69 (2609634153)\n+326DA9 Compressed Size       00003527 (13607)\n+326DAD Uncompressed Size     00003527 (13607)\n+\n+326DB1 LOCAL HEADER #945     04034B50 (67324752)\n+326DB5 Extract Zip Spec      14 (20) '2.0'\n+326DB6 Extract OS            00 (0) 'MS-DOS'\n+326DB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+326DB9 Compression Method    0000 (0) 'Stored'\n+326DBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+326DBF CRC                   00000000 (0)\n+326DC3 Compressed Size       00000000 (0)\n+326DC7 Uncompressed Size     00000000 (0)\n+326DCB Filename Length       002A (42)\n+326DCD Extra Length          0009 (9)\n+326DCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x326DCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+326DF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+326DFB   Length              0005 (5)\n+326DFD   Flags               01 (1) 'Modification'\n+326DFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+326E02 PAYLOAD\n+\n+32EEB0 DATA DESCRIPTOR       08074B50 (134695760)\n+32EEB4 CRC                   8A9B11DB (2325418459)\n+32EEB8 Compressed Size       000080AE (32942)\n+32EEBC Uncompressed Size     000080AE (32942)\n+\n+32EEC0 LOCAL HEADER #946     04034B50 (67324752)\n+32EEC4 Extract Zip Spec      14 (20) '2.0'\n+32EEC5 Extract OS            00 (0) 'MS-DOS'\n+32EEC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+32EEC8 Compression Method    0000 (0) 'Stored'\n+32EECA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+32EECE CRC                   00000000 (0)\n+32EED2 Compressed Size       00000000 (0)\n+32EED6 Uncompressed Size     00000000 (0)\n+32EEDA Filename Length       002E (46)\n+32EEDC Extra Length          0009 (9)\n+32EEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x32EEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+32EF0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+32EF0E   Length              0005 (5)\n+32EF10   Flags               01 (1) 'Modification'\n+32EF11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+32EF15 PAYLOAD\n+\n+33253D DATA DESCRIPTOR       08074B50 (134695760)\n+332541 CRC                   2A6335AE (711144878)\n+332545 Compressed Size       00003628 (13864)\n+332549 Uncompressed Size     00003628 (13864)\n+\n+33254D LOCAL HEADER #947     04034B50 (67324752)\n+332551 Extract Zip Spec      14 (20) '2.0'\n+332552 Extract OS            00 (0) 'MS-DOS'\n+332553 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+332555 Compression Method    0000 (0) 'Stored'\n+332557 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33255B CRC                   00000000 (0)\n+33255F Compressed Size       00000000 (0)\n+332563 Uncompressed Size     00000000 (0)\n+332567 Filename Length       0026 (38)\n+332569 Extra Length          0009 (9)\n+33256B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33256B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+332591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+332593   Length              0005 (5)\n+332595   Flags               01 (1) 'Modification'\n+332596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+33259A PAYLOAD\n+\n+33423C DATA DESCRIPTOR       08074B50 (134695760)\n+334240 CRC                   4DECBF7A (1307361146)\n+334244 Compressed Size       00001CA2 (7330)\n+334248 Uncompressed Size     00001CA2 (7330)\n+\n+33424C LOCAL HEADER #948     04034B50 (67324752)\n+334250 Extract Zip Spec      14 (20) '2.0'\n+334251 Extract OS            00 (0) 'MS-DOS'\n+334252 General Purpose Flag  0000 (0)\n+334254 Compression Method    0000 (0) 'Stored'\n+334256 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33425A CRC                   00000000 (0)\n+33425E Compressed Size       00000000 (0)\n+334262 Uncompressed Size     00000000 (0)\n+334266 Filename Length       0023 (35)\n+334268 Extra Length          0009 (9)\n+33426A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33426A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33428D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33428F   Length              0005 (5)\n+334291   Flags               01 (1) 'Modification'\n+334292   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+334296 LOCAL HEADER #949     04034B50 (67324752)\n+33429A Extract Zip Spec      14 (20) '2.0'\n+33429B Extract OS            00 (0) 'MS-DOS'\n+33429C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+33429E Compression Method    0000 (0) 'Stored'\n+3342A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3342A4 CRC                   00000000 (0)\n+3342A8 Compressed Size       00000000 (0)\n+3342AC Uncompressed Size     00000000 (0)\n+3342B0 Filename Length       0030 (48)\n+3342B2 Extra Length          0009 (9)\n+3342B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3342B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3342E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3342E6   Length              0005 (5)\n+3342E8   Flags               01 (1) 'Modification'\n+3342E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3342ED PAYLOAD\n+\n+3348BD DATA DESCRIPTOR       08074B50 (134695760)\n+3348C1 CRC                   DF16DFCA (3742818250)\n+3348C5 Compressed Size       000005D0 (1488)\n+3348C9 Uncompressed Size     000005D0 (1488)\n+\n+3348CD LOCAL HEADER #950     04034B50 (67324752)\n+3348D1 Extract Zip Spec      14 (20) '2.0'\n+3348D2 Extract OS            00 (0) 'MS-DOS'\n+3348D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3348D5 Compression Method    0000 (0) 'Stored'\n+3348D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3348DB CRC                   00000000 (0)\n+3348DF Compressed Size       00000000 (0)\n+3348E3 Uncompressed Size     00000000 (0)\n+3348E7 Filename Length       0036 (54)\n+3348E9 Extra Length          0009 (9)\n+3348EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3348EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+334921 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+334923   Length              0005 (5)\n+334925   Flags               01 (1) 'Modification'\n+334926   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+33492A PAYLOAD\n+\n+3367C6 DATA DESCRIPTOR       08074B50 (134695760)\n+3367CA CRC                   14F52AE5 (351611621)\n+3367CE Compressed Size       00001E9C (7836)\n+3367D2 Uncompressed Size     00001E9C (7836)\n+\n+3367D6 LOCAL HEADER #951     04034B50 (67324752)\n+3367DA Extract Zip Spec      14 (20) '2.0'\n+3367DB Extract OS            00 (0) 'MS-DOS'\n+3367DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3367DE Compression Method    0000 (0) 'Stored'\n+3367E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3367E4 CRC                   00000000 (0)\n+3367E8 Compressed Size       00000000 (0)\n+3367EC Uncompressed Size     00000000 (0)\n+3367F0 Filename Length       0034 (52)\n+3367F2 Extra Length          0009 (9)\n+3367F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3367F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+336828 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33682A   Length              0005 (5)\n+33682C   Flags               01 (1) 'Modification'\n+33682D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+336831 PAYLOAD\n+\n+3383D1 DATA DESCRIPTOR       08074B50 (134695760)\n+3383D5 CRC                   455A049E (1163527326)\n+3383D9 Compressed Size       00001BA0 (7072)\n+3383DD Uncompressed Size     00001BA0 (7072)\n+\n+3383E1 LOCAL HEADER #952     04034B50 (67324752)\n+3383E5 Extract Zip Spec      14 (20) '2.0'\n+3383E6 Extract OS            00 (0) 'MS-DOS'\n+3383E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3383E9 Compression Method    0000 (0) 'Stored'\n+3383EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3383EF CRC                   00000000 (0)\n+3383F3 Compressed Size       00000000 (0)\n+3383F7 Uncompressed Size     00000000 (0)\n+3383FB Filename Length       002E (46)\n+3383FD Extra Length          0009 (9)\n+3383FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3383FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33842D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33842F   Length              0005 (5)\n+338431   Flags               01 (1) 'Modification'\n+338432   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+338436 PAYLOAD\n+\n+338BCE DATA DESCRIPTOR       08074B50 (134695760)\n+338BD2 CRC                   C852179E (3360823198)\n+338BD6 Compressed Size       00000798 (1944)\n+338BDA Uncompressed Size     00000798 (1944)\n+\n+338BDE LOCAL HEADER #953     04034B50 (67324752)\n+338BE2 Extract Zip Spec      14 (20) '2.0'\n+338BE3 Extract OS            00 (0) 'MS-DOS'\n+338BE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+338BE6 Compression Method    0000 (0) 'Stored'\n+338BE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+338BEC CRC                   00000000 (0)\n+338BF0 Compressed Size       00000000 (0)\n+338BF4 Uncompressed Size     00000000 (0)\n+338BF8 Filename Length       0031 (49)\n+338BFA Extra Length          0009 (9)\n+338BFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x338BFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+338C2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+338C2F   Length              0005 (5)\n+338C31   Flags               01 (1) 'Modification'\n+338C32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+338C36 PAYLOAD\n+\n+33A8EB DATA DESCRIPTOR       08074B50 (134695760)\n+33A8EF CRC                   BD46272F (3175491375)\n+33A8F3 Compressed Size       00001CB5 (7349)\n+33A8F7 Uncompressed Size     00001CB5 (7349)\n+\n+33A8FB LOCAL HEADER #954     04034B50 (67324752)\n+33A8FF Extract Zip Spec      14 (20) '2.0'\n+33A900 Extract OS            00 (0) 'MS-DOS'\n+33A901 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+33A903 Compression Method    0000 (0) 'Stored'\n+33A905 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33A909 CRC                   00000000 (0)\n+33A90D Compressed Size       00000000 (0)\n+33A911 Uncompressed Size     00000000 (0)\n+33A915 Filename Length       002F (47)\n+33A917 Extra Length          0009 (9)\n+33A919 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33A919: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33A948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33A94A   Length              0005 (5)\n+33A94C   Flags               01 (1) 'Modification'\n+33A94D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+33A951 PAYLOAD\n+\n+33C526 DATA DESCRIPTOR       08074B50 (134695760)\n+33C52A CRC                   F51CAE43 (4112297539)\n+33C52E Compressed Size       00001BD5 (7125)\n+33C532 Uncompressed Size     00001BD5 (7125)\n+\n+33C536 LOCAL HEADER #955     04034B50 (67324752)\n+33C53A Extract Zip Spec      14 (20) '2.0'\n+33C53B Extract OS            00 (0) 'MS-DOS'\n+33C53C General Purpose Flag  0000 (0)\n+33C53E Compression Method    0000 (0) 'Stored'\n+33C540 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33C544 CRC                   00000000 (0)\n+33C548 Compressed Size       00000000 (0)\n+33C54C Uncompressed Size     00000000 (0)\n+33C550 Filename Length       0022 (34)\n+33C552 Extra Length          0009 (9)\n+33C554 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33C554: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33C576 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33C578   Length              0005 (5)\n+33C57A   Flags               01 (1) 'Modification'\n+33C57B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+33C57F LOCAL HEADER #956     04034B50 (67324752)\n+33C583 Extract Zip Spec      14 (20) '2.0'\n+33C584 Extract OS            00 (0) 'MS-DOS'\n+33C585 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+33C587 Compression Method    0000 (0) 'Stored'\n+33C589 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+33C58D CRC                   00000000 (0)\n+33C591 Compressed Size       00000000 (0)\n+33C595 Uncompressed Size     00000000 (0)\n+33C599 Filename Length       0035 (53)\n+33C59B Extra Length          0009 (9)\n+33C59D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x33C59D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+33C5D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+33C5D4   Length              0005 (5)\n+33C5D6   Flags               01 (1) 'Modification'\n+33C5D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+33C5DB PAYLOAD\n+\n+349808 DATA DESCRIPTOR       08074B50 (134695760)\n+34980C CRC                   D413AF69 (3558059881)\n+349810 Compressed Size       0000D22D (53805)\n+349814 Uncompressed Size     0000D22D (53805)\n+\n+349818 LOCAL HEADER #957     04034B50 (67324752)\n+34981C Extract Zip Spec      14 (20) '2.0'\n+34981D Extract OS            00 (0) 'MS-DOS'\n+34981E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+349820 Compression Method    0000 (0) 'Stored'\n+349822 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+349826 CRC                   00000000 (0)\n+34982A Compressed Size       00000000 (0)\n+34982E Uncompressed Size     00000000 (0)\n+349832 Filename Length       0046 (70)\n+349834 Extra Length          0009 (9)\n+349836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x349836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34987C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34987E   Length              0005 (5)\n+349880   Flags               01 (1) 'Modification'\n+349881   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+349885 PAYLOAD\n+\n+349D13 DATA DESCRIPTOR       08074B50 (134695760)\n+349D17 CRC                   E174331E (3782488862)\n+349D1B Compressed Size       0000048E (1166)\n+349D1F Uncompressed Size     0000048E (1166)\n+\n+349D23 LOCAL HEADER #958     04034B50 (67324752)\n+349D27 Extract Zip Spec      14 (20) '2.0'\n+349D28 Extract OS            00 (0) 'MS-DOS'\n+349D29 General Purpose Flag  0000 (0)\n+349D2B Compression Method    0000 (0) 'Stored'\n+349D2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+349D31 CRC                   00000000 (0)\n+349D35 Compressed Size       00000000 (0)\n+349D39 Uncompressed Size     00000000 (0)\n+349D3D Filename Length       002B (43)\n+349D3F Extra Length          0009 (9)\n+349D41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x349D41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+349D6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+349D6E   Length              0005 (5)\n+349D70   Flags               01 (1) 'Modification'\n+349D71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+349D75 LOCAL HEADER #959     04034B50 (67324752)\n+349D79 Extract Zip Spec      14 (20) '2.0'\n+349D7A Extract OS            00 (0) 'MS-DOS'\n+349D7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+349D7D Compression Method    0000 (0) 'Stored'\n+349D7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+349D83 CRC                   00000000 (0)\n+349D87 Compressed Size       00000000 (0)\n+349D8B Uncompressed Size     00000000 (0)\n+349D8F Filename Length       003F (63)\n+349D91 Extra Length          0009 (9)\n+349D93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x349D93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+349DD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+349DD4   Length              0005 (5)\n+349DD6   Flags               01 (1) 'Modification'\n+349DD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+349DDB PAYLOAD\n+\n+34A812 DATA DESCRIPTOR       08074B50 (134695760)\n+34A816 CRC                   FC3CBC13 (4231838739)\n+34A81A Compressed Size       00000A37 (2615)\n+34A81E Uncompressed Size     00000A37 (2615)\n+\n+34A822 LOCAL HEADER #960     04034B50 (67324752)\n+34A826 Extract Zip Spec      14 (20) '2.0'\n+34A827 Extract OS            00 (0) 'MS-DOS'\n+34A828 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+34A82A Compression Method    0000 (0) 'Stored'\n+34A82C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34A830 CRC                   00000000 (0)\n+34A834 Compressed Size       00000000 (0)\n+34A838 Uncompressed Size     00000000 (0)\n+34A83C Filename Length       0048 (72)\n+34A83E Extra Length          0009 (9)\n+34A840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34A840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34A888 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34A88A   Length              0005 (5)\n+34A88C   Flags               01 (1) 'Modification'\n+34A88D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+34A891 PAYLOAD\n+\n+34CDE6 DATA DESCRIPTOR       08074B50 (134695760)\n+34CDEA CRC                   A83ED6AA (2822690474)\n+34CDEE Compressed Size       00002555 (9557)\n+34CDF2 Uncompressed Size     00002555 (9557)\n+\n+34CDF6 LOCAL HEADER #961     04034B50 (67324752)\n+34CDFA Extract Zip Spec      14 (20) '2.0'\n+34CDFB Extract OS            00 (0) 'MS-DOS'\n+34CDFC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+34CDFE Compression Method    0000 (0) 'Stored'\n+34CE00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34CE04 CRC                   00000000 (0)\n+34CE08 Compressed Size       00000000 (0)\n+34CE0C Uncompressed Size     00000000 (0)\n+34CE10 Filename Length       0045 (69)\n+34CE12 Extra Length          0009 (9)\n+34CE14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34CE14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34CE59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34CE5B   Length              0005 (5)\n+34CE5D   Flags               01 (1) 'Modification'\n+34CE5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+34CE62 PAYLOAD\n+\n+34E4B9 DATA DESCRIPTOR       08074B50 (134695760)\n+34E4BD CRC                   E160ED1C (3781225756)\n+34E4C1 Compressed Size       00001657 (5719)\n+34E4C5 Uncompressed Size     00001657 (5719)\n+\n+34E4C9 LOCAL HEADER #962     04034B50 (67324752)\n+34E4CD Extract Zip Spec      14 (20) '2.0'\n+34E4CE Extract OS            00 (0) 'MS-DOS'\n+34E4CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+34E4D1 Compression Method    0000 (0) 'Stored'\n+34E4D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34E4D7 CRC                   00000000 (0)\n+34E4DB Compressed Size       00000000 (0)\n+34E4DF Uncompressed Size     00000000 (0)\n+34E4E3 Filename Length       0048 (72)\n+34E4E5 Extra Length          0009 (9)\n+34E4E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34E4E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34E52F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34E531   Length              0005 (5)\n+34E533   Flags               01 (1) 'Modification'\n+34E534   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+34E538 PAYLOAD\n+\n+34F5E2 DATA DESCRIPTOR       08074B50 (134695760)\n+34F5E6 CRC                   156605D7 (359007703)\n+34F5EA Compressed Size       000010AA (4266)\n+34F5EE Uncompressed Size     000010AA (4266)\n+\n+34F5F2 LOCAL HEADER #963     04034B50 (67324752)\n+34F5F6 Extract Zip Spec      14 (20) '2.0'\n+34F5F7 Extract OS            00 (0) 'MS-DOS'\n+34F5F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+34F5FA Compression Method    0000 (0) 'Stored'\n+34F5FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+34F600 CRC                   00000000 (0)\n+34F604 Compressed Size       00000000 (0)\n+34F608 Uncompressed Size     00000000 (0)\n+34F60C Filename Length       0046 (70)\n+34F60E Extra Length          0009 (9)\n+34F610 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x34F610: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+34F656 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+34F658   Length              0005 (5)\n+34F65A   Flags               01 (1) 'Modification'\n+34F65B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+34F65F PAYLOAD\n+\n+3511F2 DATA DESCRIPTOR       08074B50 (134695760)\n+3511F6 CRC                   67C26956 (1740794198)\n+3511FA Compressed Size       00001B93 (7059)\n+3511FE Uncompressed Size     00001B93 (7059)\n+\n+351202 LOCAL HEADER #964     04034B50 (67324752)\n+351206 Extract Zip Spec      14 (20) '2.0'\n+351207 Extract OS            00 (0) 'MS-DOS'\n+351208 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+35120A Compression Method    0000 (0) 'Stored'\n+35120C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+351210 CRC                   00000000 (0)\n+351214 Compressed Size       00000000 (0)\n+351218 Uncompressed Size     00000000 (0)\n+35121C Filename Length       0042 (66)\n+35121E Extra Length          0009 (9)\n+351220 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x351220: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+351262 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+351264   Length              0005 (5)\n+351266   Flags               01 (1) 'Modification'\n+351267   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35126B PAYLOAD\n+\n+352DB0 DATA DESCRIPTOR       08074B50 (134695760)\n+352DB4 CRC                   46796056 (1182359638)\n+352DB8 Compressed Size       00001B45 (6981)\n+352DBC Uncompressed Size     00001B45 (6981)\n+\n+352DC0 LOCAL HEADER #965     04034B50 (67324752)\n+352DC4 Extract Zip Spec      14 (20) '2.0'\n+352DC5 Extract OS            00 (0) 'MS-DOS'\n+352DC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+352DC8 Compression Method    0000 (0) 'Stored'\n+352DCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+352DCE CRC                   00000000 (0)\n+352DD2 Compressed Size       00000000 (0)\n+352DD6 Uncompressed Size     00000000 (0)\n+352DDA Filename Length       003F (63)\n+352DDC Extra Length          0009 (9)\n+352DDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x352DDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+352E1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+352E1F   Length              0005 (5)\n+352E21   Flags               01 (1) 'Modification'\n+352E22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+352E26 PAYLOAD\n+\n+3535AE DATA DESCRIPTOR       08074B50 (134695760)\n+3535B2 CRC                   C694724C (3331617356)\n+3535B6 Compressed Size       00000788 (1928)\n+3535BA Uncompressed Size     00000788 (1928)\n+\n+3535BE LOCAL HEADER #966     04034B50 (67324752)\n+3535C2 Extract Zip Spec      14 (20) '2.0'\n+3535C3 Extract OS            00 (0) 'MS-DOS'\n+3535C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3535C6 Compression Method    0000 (0) 'Stored'\n+3535C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3535CC CRC                   00000000 (0)\n+3535D0 Compressed Size       00000000 (0)\n+3535D4 Uncompressed Size     00000000 (0)\n+3535D8 Filename Length       0043 (67)\n+3535DA Extra Length          0009 (9)\n+3535DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3535DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+35361F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+353621   Length              0005 (5)\n+353623   Flags               01 (1) 'Modification'\n+353624   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+353628 PAYLOAD\n+\n+3547B3 DATA DESCRIPTOR       08074B50 (134695760)\n+3547B7 CRC                   E2414032 (3795927090)\n+3547BB Compressed Size       0000118B (4491)\n+3547BF Uncompressed Size     0000118B (4491)\n+\n+3547C3 LOCAL HEADER #967     04034B50 (67324752)\n+3547C7 Extract Zip Spec      14 (20) '2.0'\n+3547C8 Extract OS            00 (0) 'MS-DOS'\n+3547C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3547CB Compression Method    0000 (0) 'Stored'\n+3547CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3547D1 CRC                   00000000 (0)\n+3547D5 Compressed Size       00000000 (0)\n+3547D9 Uncompressed Size     00000000 (0)\n+3547DD Filename Length       003F (63)\n+3547DF Extra Length          0009 (9)\n+3547E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3547E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+354820 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+354822   Length              0005 (5)\n+354824   Flags               01 (1) 'Modification'\n+354825   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+354829 PAYLOAD\n+\n+3555DC DATA DESCRIPTOR       08074B50 (134695760)\n+3555E0 CRC                   85CF6764 (2244962148)\n+3555E4 Compressed Size       00000DB3 (3507)\n+3555E8 Uncompressed Size     00000DB3 (3507)\n+\n+3555EC LOCAL HEADER #968     04034B50 (67324752)\n+3555F0 Extract Zip Spec      14 (20) '2.0'\n+3555F1 Extract OS            00 (0) 'MS-DOS'\n+3555F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3555F4 Compression Method    0000 (0) 'Stored'\n+3555F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3555FA CRC                   00000000 (0)\n+3555FE Compressed Size       00000000 (0)\n+355602 Uncompressed Size     00000000 (0)\n+355606 Filename Length       0045 (69)\n+355608 Extra Length          0009 (9)\n+35560A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x35560A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+35564F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+355651   Length              0005 (5)\n+355653   Flags               01 (1) 'Modification'\n+355654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+355658 PAYLOAD\n+\n+3567B7 DATA DESCRIPTOR       08074B50 (134695760)\n+3567BB CRC                   D26D2315 (3530367765)\n+3567BF Compressed Size       0000115F (4447)\n+3567C3 Uncompressed Size     0000115F (4447)\n+\n+3567C7 LOCAL HEADER #969     04034B50 (67324752)\n+3567CB Extract Zip Spec      14 (20) '2.0'\n+3567CC Extract OS            00 (0) 'MS-DOS'\n+3567CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3567CF Compression Method    0000 (0) 'Stored'\n+3567D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3567D5 CRC                   00000000 (0)\n+3567D9 Compressed Size       00000000 (0)\n+3567DD Uncompressed Size     00000000 (0)\n+3567E1 Filename Length       003D (61)\n+3567E3 Extra Length          0009 (9)\n+3567E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3567E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+356822 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+356824   Length              0005 (5)\n+356826   Flags               01 (1) 'Modification'\n+356827   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35682B PAYLOAD\n+\n+3580FB DATA DESCRIPTOR       08074B50 (134695760)\n+3580FF CRC                   F796C627 (4153853479)\n+358103 Compressed Size       000018D0 (6352)\n+358107 Uncompressed Size     000018D0 (6352)\n+\n+35810B LOCAL HEADER #970     04034B50 (67324752)\n+35810F Extract Zip Spec      14 (20) '2.0'\n+358110 Extract OS            00 (0) 'MS-DOS'\n+358111 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+358113 Compression Method    0000 (0) 'Stored'\n+358115 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+358119 CRC                   00000000 (0)\n+35811D Compressed Size       00000000 (0)\n+358121 Uncompressed Size     00000000 (0)\n+358125 Filename Length       003D (61)\n+358127 Extra Length          0009 (9)\n+358129 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x358129: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+358166 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+358168   Length              0005 (5)\n+35816A   Flags               01 (1) 'Modification'\n+35816B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35816F PAYLOAD\n+\n+358F77 DATA DESCRIPTOR       08074B50 (134695760)\n+358F7B CRC                   EB12A7F1 (3943868401)\n+358F7F Compressed Size       00000E08 (3592)\n+358F83 Uncompressed Size     00000E08 (3592)\n+\n+358F87 LOCAL HEADER #971     04034B50 (67324752)\n+358F8B Extract Zip Spec      14 (20) '2.0'\n+358F8C Extract OS            00 (0) 'MS-DOS'\n+358F8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+358F8F Compression Method    0000 (0) 'Stored'\n+358F91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+358F95 CRC                   00000000 (0)\n+358F99 Compressed Size       00000000 (0)\n+358F9D Uncompressed Size     00000000 (0)\n+358FA1 Filename Length       003E (62)\n+358FA3 Extra Length          0009 (9)\n+358FA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x358FA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+358FE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+358FE5   Length              0005 (5)\n+358FE7   Flags               01 (1) 'Modification'\n+358FE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+358FEC PAYLOAD\n+\n+359F19 DATA DESCRIPTOR       08074B50 (134695760)\n+359F1D CRC                   F5A79DAF (4121402799)\n+359F21 Compressed Size       00000F2D (3885)\n+359F25 Uncompressed Size     00000F2D (3885)\n+\n+359F29 LOCAL HEADER #972     04034B50 (67324752)\n+359F2D Extract Zip Spec      14 (20) '2.0'\n+359F2E Extract OS            00 (0) 'MS-DOS'\n+359F2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+359F31 Compression Method    0000 (0) 'Stored'\n+359F33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+359F37 CRC                   00000000 (0)\n+359F3B Compressed Size       00000000 (0)\n+359F3F Uncompressed Size     00000000 (0)\n+359F43 Filename Length       003F (63)\n+359F45 Extra Length          0009 (9)\n+359F47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x359F47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+359F86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+359F88   Length              0005 (5)\n+359F8A   Flags               01 (1) 'Modification'\n+359F8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+359F8F PAYLOAD\n+\n+35C880 DATA DESCRIPTOR       08074B50 (134695760)\n+35C884 CRC                   24F4C726 (620021542)\n+35C888 Compressed Size       000028F1 (10481)\n+35C88C Uncompressed Size     000028F1 (10481)\n+\n+35C890 LOCAL HEADER #973     04034B50 (67324752)\n+35C894 Extract Zip Spec      14 (20) '2.0'\n+35C895 Extract OS            00 (0) 'MS-DOS'\n+35C896 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+35C898 Compression Method    0000 (0) 'Stored'\n+35C89A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+35C89E CRC                   00000000 (0)\n+35C8A2 Compressed Size       00000000 (0)\n+35C8A6 Uncompressed Size     00000000 (0)\n+35C8AA Filename Length       003F (63)\n+35C8AC Extra Length          0009 (9)\n+35C8AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x35C8AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+35C8ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+35C8EF   Length              0005 (5)\n+35C8F1   Flags               01 (1) 'Modification'\n+35C8F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35C8F6 PAYLOAD\n+\n+35E49D DATA DESCRIPTOR       08074B50 (134695760)\n+35E4A1 CRC                   35C5DEAF (902160047)\n+35E4A5 Compressed Size       00001BA7 (7079)\n+35E4A9 Uncompressed Size     00001BA7 (7079)\n+\n+35E4AD LOCAL HEADER #974     04034B50 (67324752)\n+35E4B1 Extract Zip Spec      14 (20) '2.0'\n+35E4B2 Extract OS            00 (0) 'MS-DOS'\n+35E4B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+35E4B5 Compression Method    0000 (0) 'Stored'\n+35E4B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+35E4BB CRC                   00000000 (0)\n+35E4BF Compressed Size       00000000 (0)\n+35E4C3 Uncompressed Size     00000000 (0)\n+35E4C7 Filename Length       0040 (64)\n+35E4C9 Extra Length          0009 (9)\n+35E4CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x35E4CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+35E50B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+35E50D   Length              0005 (5)\n+35E50F   Flags               01 (1) 'Modification'\n+35E510   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35E514 PAYLOAD\n+\n+35F7DD DATA DESCRIPTOR       08074B50 (134695760)\n+35F7E1 CRC                   4C4BC15C (1280033116)\n+35F7E5 Compressed Size       000012C9 (4809)\n+35F7E9 Uncompressed Size     000012C9 (4809)\n+\n+35F7ED LOCAL HEADER #975     04034B50 (67324752)\n+35F7F1 Extract Zip Spec      14 (20) '2.0'\n+35F7F2 Extract OS            00 (0) 'MS-DOS'\n+35F7F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+35F7F5 Compression Method    0000 (0) 'Stored'\n+35F7F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+35F7FB CRC                   00000000 (0)\n+35F7FF Compressed Size       00000000 (0)\n+35F803 Uncompressed Size     00000000 (0)\n+35F807 Filename Length       003F (63)\n+35F809 Extra Length          0009 (9)\n+35F80B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x35F80B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+35F84A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+35F84C   Length              0005 (5)\n+35F84E   Flags               01 (1) 'Modification'\n+35F84F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+35F853 PAYLOAD\n+\n+361F94 DATA DESCRIPTOR       08074B50 (134695760)\n+361F98 CRC                   3875CC22 (947244066)\n+361F9C Compressed Size       00002741 (10049)\n+361FA0 Uncompressed Size     00002741 (10049)\n+\n+361FA4 LOCAL HEADER #976     04034B50 (67324752)\n+361FA8 Extract Zip Spec      14 (20) '2.0'\n+361FA9 Extract OS            00 (0) 'MS-DOS'\n+361FAA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+361FAC Compression Method    0000 (0) 'Stored'\n+361FAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+361FB2 CRC                   00000000 (0)\n+361FB6 Compressed Size       00000000 (0)\n+361FBA Uncompressed Size     00000000 (0)\n+361FBE Filename Length       003E (62)\n+361FC0 Extra Length          0009 (9)\n+361FC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x361FC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+362000 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+362002   Length              0005 (5)\n+362004   Flags               01 (1) 'Modification'\n+362005   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+362009 PAYLOAD\n+\n+363202 DATA DESCRIPTOR       08074B50 (134695760)\n+363206 CRC                   5053B7A1 (1347663777)\n+36320A Compressed Size       000011F9 (4601)\n+36320E Uncompressed Size     000011F9 (4601)\n+\n+363212 LOCAL HEADER #977     04034B50 (67324752)\n+363216 Extract Zip Spec      14 (20) '2.0'\n+363217 Extract OS            00 (0) 'MS-DOS'\n+363218 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36321A Compression Method    0000 (0) 'Stored'\n+36321C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+363220 CRC                   00000000 (0)\n+363224 Compressed Size       00000000 (0)\n+363228 Uncompressed Size     00000000 (0)\n+36322C Filename Length       003C (60)\n+36322E Extra Length          0009 (9)\n+363230 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x363230: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36326C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36326E   Length              0005 (5)\n+363270   Flags               01 (1) 'Modification'\n+363271   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+363275 PAYLOAD\n+\n+363693 DATA DESCRIPTOR       08074B50 (134695760)\n+363697 CRC                   AA9A314A (2862231882)\n+36369B Compressed Size       0000041E (1054)\n+36369F Uncompressed Size     0000041E (1054)\n+\n+3636A3 LOCAL HEADER #978     04034B50 (67324752)\n+3636A7 Extract Zip Spec      14 (20) '2.0'\n+3636A8 Extract OS            00 (0) 'MS-DOS'\n+3636A9 General Purpose Flag  0000 (0)\n+3636AB Compression Method    0000 (0) 'Stored'\n+3636AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3636B1 CRC                   00000000 (0)\n+3636B5 Compressed Size       00000000 (0)\n+3636B9 Uncompressed Size     00000000 (0)\n+3636BD Filename Length       0020 (32)\n+3636BF Extra Length          0009 (9)\n+3636C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3636C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3636E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3636E3   Length              0005 (5)\n+3636E5   Flags               01 (1) 'Modification'\n+3636E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3636EA LOCAL HEADER #979     04034B50 (67324752)\n+3636EE Extract Zip Spec      14 (20) '2.0'\n+3636EF Extract OS            00 (0) 'MS-DOS'\n+3636F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3636F2 Compression Method    0000 (0) 'Stored'\n+3636F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3636F8 CRC                   00000000 (0)\n+3636FC Compressed Size       00000000 (0)\n+363700 Uncompressed Size     00000000 (0)\n+363704 Filename Length       003F (63)\n+363706 Extra Length          0009 (9)\n+363708 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x363708: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+363747 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+363749   Length              0005 (5)\n+36374B   Flags               01 (1) 'Modification'\n+36374C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+363750 PAYLOAD\n+\n+363F11 DATA DESCRIPTOR       08074B50 (134695760)\n+363F15 CRC                   DB5A6031 (3680133169)\n+363F19 Compressed Size       000007C1 (1985)\n+363F1D Uncompressed Size     000007C1 (1985)\n+\n+363F21 LOCAL HEADER #980     04034B50 (67324752)\n+363F25 Extract Zip Spec      14 (20) '2.0'\n+363F26 Extract OS            00 (0) 'MS-DOS'\n+363F27 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+363F29 Compression Method    0000 (0) 'Stored'\n+363F2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+363F2F CRC                   00000000 (0)\n+363F33 Compressed Size       00000000 (0)\n+363F37 Uncompressed Size     00000000 (0)\n+363F3B Filename Length       0032 (50)\n+363F3D Extra Length          0009 (9)\n+363F3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x363F3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+363F71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+363F73   Length              0005 (5)\n+363F75   Flags               01 (1) 'Modification'\n+363F76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+363F7A PAYLOAD\n+\n+368981 DATA DESCRIPTOR       08074B50 (134695760)\n+368985 CRC                   695EFF74 (1767833460)\n+368989 Compressed Size       00004A07 (18951)\n+36898D Uncompressed Size     00004A07 (18951)\n+\n+368991 LOCAL HEADER #981     04034B50 (67324752)\n+368995 Extract Zip Spec      14 (20) '2.0'\n+368996 Extract OS            00 (0) 'MS-DOS'\n+368997 General Purpose Flag  0000 (0)\n+368999 Compression Method    0000 (0) 'Stored'\n+36899B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36899F CRC                   00000000 (0)\n+3689A3 Compressed Size       00000000 (0)\n+3689A7 Uncompressed Size     00000000 (0)\n+3689AB Filename Length       001E (30)\n+3689AD Extra Length          0009 (9)\n+3689AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3689AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3689CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3689CF   Length              0005 (5)\n+3689D1   Flags               01 (1) 'Modification'\n+3689D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3689D6 LOCAL HEADER #982     04034B50 (67324752)\n+3689DA Extract Zip Spec      14 (20) '2.0'\n+3689DB Extract OS            00 (0) 'MS-DOS'\n+3689DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3689DE Compression Method    0000 (0) 'Stored'\n+3689E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3689E4 CRC                   00000000 (0)\n+3689E8 Compressed Size       00000000 (0)\n+3689EC Uncompressed Size     00000000 (0)\n+3689F0 Filename Length       003D (61)\n+3689F2 Extra Length          0009 (9)\n+3689F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3689F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+368A31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+368A33   Length              0005 (5)\n+368A35   Flags               01 (1) 'Modification'\n+368A36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+368A3A PAYLOAD\n+\n+368ED3 DATA DESCRIPTOR       08074B50 (134695760)\n+368ED7 CRC                   7C75425F (2088059487)\n+368EDB Compressed Size       00000499 (1177)\n+368EDF Uncompressed Size     00000499 (1177)\n+\n+368EE3 LOCAL HEADER #983     04034B50 (67324752)\n+368EE7 Extract Zip Spec      14 (20) '2.0'\n+368EE8 Extract OS            00 (0) 'MS-DOS'\n+368EE9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+368EEB Compression Method    0000 (0) 'Stored'\n+368EED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+368EF1 CRC                   00000000 (0)\n+368EF5 Compressed Size       00000000 (0)\n+368EF9 Uncompressed Size     00000000 (0)\n+368EFD Filename Length       0043 (67)\n+368EFF Extra Length          0009 (9)\n+368F01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x368F01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+368F44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+368F46   Length              0005 (5)\n+368F48   Flags               01 (1) 'Modification'\n+368F49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+368F4D PAYLOAD\n+\n+36960B DATA DESCRIPTOR       08074B50 (134695760)\n+36960F CRC                   A67D03FF (2793210879)\n+369613 Compressed Size       000006BE (1726)\n+369617 Uncompressed Size     000006BE (1726)\n+\n+36961B LOCAL HEADER #984     04034B50 (67324752)\n+36961F Extract Zip Spec      14 (20) '2.0'\n+369620 Extract OS            00 (0) 'MS-DOS'\n+369621 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+369623 Compression Method    0000 (0) 'Stored'\n+369625 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+369629 CRC                   00000000 (0)\n+36962D Compressed Size       00000000 (0)\n+369631 Uncompressed Size     00000000 (0)\n+369635 Filename Length       0045 (69)\n+369637 Extra Length          0009 (9)\n+369639 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x369639: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36967E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+369680   Length              0005 (5)\n+369682   Flags               01 (1) 'Modification'\n+369683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+369687 PAYLOAD\n+\n+369D4C DATA DESCRIPTOR       08074B50 (134695760)\n+369D50 CRC                   F6F65296 (4143338134)\n+369D54 Compressed Size       000006C5 (1733)\n+369D58 Uncompressed Size     000006C5 (1733)\n+\n+369D5C LOCAL HEADER #985     04034B50 (67324752)\n+369D60 Extract Zip Spec      14 (20) '2.0'\n+369D61 Extract OS            00 (0) 'MS-DOS'\n+369D62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+369D64 Compression Method    0000 (0) 'Stored'\n+369D66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+369D6A CRC                   00000000 (0)\n+369D6E Compressed Size       00000000 (0)\n+369D72 Uncompressed Size     00000000 (0)\n+369D76 Filename Length       0040 (64)\n+369D78 Extra Length          0009 (9)\n+369D7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x369D7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+369DBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+369DBC   Length              0005 (5)\n+369DBE   Flags               01 (1) 'Modification'\n+369DBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+369DC3 PAYLOAD\n+\n+36A38F DATA DESCRIPTOR       08074B50 (134695760)\n+36A393 CRC                   D200547F (3523236991)\n+36A397 Compressed Size       000005CC (1484)\n+36A39B Uncompressed Size     000005CC (1484)\n+\n+36A39F LOCAL HEADER #986     04034B50 (67324752)\n+36A3A3 Extract Zip Spec      14 (20) '2.0'\n+36A3A4 Extract OS            00 (0) 'MS-DOS'\n+36A3A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36A3A7 Compression Method    0000 (0) 'Stored'\n+36A3A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36A3AD CRC                   00000000 (0)\n+36A3B1 Compressed Size       00000000 (0)\n+36A3B5 Uncompressed Size     00000000 (0)\n+36A3B9 Filename Length       0042 (66)\n+36A3BB Extra Length          0009 (9)\n+36A3BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36A3BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36A3FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36A401   Length              0005 (5)\n+36A403   Flags               01 (1) 'Modification'\n+36A404   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36A408 PAYLOAD\n+\n+36AAA2 DATA DESCRIPTOR       08074B50 (134695760)\n+36AAA6 CRC                   ADCF7988 (2916055432)\n+36AAAA Compressed Size       0000069A (1690)\n+36AAAE Uncompressed Size     0000069A (1690)\n+\n+36AAB2 LOCAL HEADER #987     04034B50 (67324752)\n+36AAB6 Extract Zip Spec      14 (20) '2.0'\n+36AAB7 Extract OS            00 (0) 'MS-DOS'\n+36AAB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36AABA Compression Method    0000 (0) 'Stored'\n+36AABC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36AAC0 CRC                   00000000 (0)\n+36AAC4 Compressed Size       00000000 (0)\n+36AAC8 Uncompressed Size     00000000 (0)\n+36AACC Filename Length       003D (61)\n+36AACE Extra Length          0009 (9)\n+36AAD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36AAD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36AB0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36AB0F   Length              0005 (5)\n+36AB11   Flags               01 (1) 'Modification'\n+36AB12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36AB16 PAYLOAD\n+\n+36B034 DATA DESCRIPTOR       08074B50 (134695760)\n+36B038 CRC                   A8CE0A81 (2832075393)\n+36B03C Compressed Size       0000051E (1310)\n+36B040 Uncompressed Size     0000051E (1310)\n+\n+36B044 LOCAL HEADER #988     04034B50 (67324752)\n+36B048 Extract Zip Spec      14 (20) '2.0'\n+36B049 Extract OS            00 (0) 'MS-DOS'\n+36B04A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36B04C Compression Method    0000 (0) 'Stored'\n+36B04E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36B052 CRC                   00000000 (0)\n+36B056 Compressed Size       00000000 (0)\n+36B05A Uncompressed Size     00000000 (0)\n+36B05E Filename Length       003F (63)\n+36B060 Extra Length          0009 (9)\n+36B062 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36B062: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36B0A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36B0A3   Length              0005 (5)\n+36B0A5   Flags               01 (1) 'Modification'\n+36B0A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36B0AA PAYLOAD\n+\n+36B5D0 DATA DESCRIPTOR       08074B50 (134695760)\n+36B5D4 CRC                   5D6056E9 (1566594793)\n+36B5D8 Compressed Size       00000526 (1318)\n+36B5DC Uncompressed Size     00000526 (1318)\n+\n+36B5E0 LOCAL HEADER #989     04034B50 (67324752)\n+36B5E4 Extract Zip Spec      14 (20) '2.0'\n+36B5E5 Extract OS            00 (0) 'MS-DOS'\n+36B5E6 General Purpose Flag  0000 (0)\n+36B5E8 Compression Method    0000 (0) 'Stored'\n+36B5EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36B5EE CRC                   00000000 (0)\n+36B5F2 Compressed Size       00000000 (0)\n+36B5F6 Uncompressed Size     00000000 (0)\n+36B5FA Filename Length       0027 (39)\n+36B5FC Extra Length          0009 (9)\n+36B5FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36B5FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36B625 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36B627   Length              0005 (5)\n+36B629   Flags               01 (1) 'Modification'\n+36B62A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+36B62E LOCAL HEADER #990     04034B50 (67324752)\n+36B632 Extract Zip Spec      14 (20) '2.0'\n+36B633 Extract OS            00 (0) 'MS-DOS'\n+36B634 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36B636 Compression Method    0000 (0) 'Stored'\n+36B638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36B63C CRC                   00000000 (0)\n+36B640 Compressed Size       00000000 (0)\n+36B644 Uncompressed Size     00000000 (0)\n+36B648 Filename Length       0040 (64)\n+36B64A Extra Length          0009 (9)\n+36B64C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36B64C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36B68C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36B68E   Length              0005 (5)\n+36B690   Flags               01 (1) 'Modification'\n+36B691   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36B695 PAYLOAD\n+\n+36BE09 DATA DESCRIPTOR       08074B50 (134695760)\n+36BE0D CRC                   FFDB09C9 (4292544969)\n+36BE11 Compressed Size       00000774 (1908)\n+36BE15 Uncompressed Size     00000774 (1908)\n+\n+36BE19 LOCAL HEADER #991     04034B50 (67324752)\n+36BE1D Extract Zip Spec      14 (20) '2.0'\n+36BE1E Extract OS            00 (0) 'MS-DOS'\n+36BE1F General Purpose Flag  0000 (0)\n+36BE21 Compression Method    0000 (0) 'Stored'\n+36BE23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36BE27 CRC                   00000000 (0)\n+36BE2B Compressed Size       00000000 (0)\n+36BE2F Uncompressed Size     00000000 (0)\n+36BE33 Filename Length       0020 (32)\n+36BE35 Extra Length          0009 (9)\n+36BE37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36BE37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36BE57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36BE59   Length              0005 (5)\n+36BE5B   Flags               01 (1) 'Modification'\n+36BE5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+36BE60 LOCAL HEADER #992     04034B50 (67324752)\n+36BE64 Extract Zip Spec      14 (20) '2.0'\n+36BE65 Extract OS            00 (0) 'MS-DOS'\n+36BE66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36BE68 Compression Method    0000 (0) 'Stored'\n+36BE6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36BE6E CRC                   00000000 (0)\n+36BE72 Compressed Size       00000000 (0)\n+36BE76 Uncompressed Size     00000000 (0)\n+36BE7A Filename Length       0044 (68)\n+36BE7C Extra Length          0009 (9)\n+36BE7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36BE7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36BEC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36BEC4   Length              0005 (5)\n+36BEC6   Flags               01 (1) 'Modification'\n+36BEC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36BECB PAYLOAD\n+\n+36C70B DATA DESCRIPTOR       08074B50 (134695760)\n+36C70F CRC                   A8777CA7 (2826402983)\n+36C713 Compressed Size       00000840 (2112)\n+36C717 Uncompressed Size     00000840 (2112)\n+\n+36C71B LOCAL HEADER #993     04034B50 (67324752)\n+36C71F Extract Zip Spec      14 (20) '2.0'\n+36C720 Extract OS            00 (0) 'MS-DOS'\n+36C721 General Purpose Flag  0000 (0)\n+36C723 Compression Method    0000 (0) 'Stored'\n+36C725 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36C729 CRC                   00000000 (0)\n+36C72D Compressed Size       00000000 (0)\n+36C731 Uncompressed Size     00000000 (0)\n+36C735 Filename Length       0021 (33)\n+36C737 Extra Length          0009 (9)\n+36C739 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36C739: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36C75A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36C75C   Length              0005 (5)\n+36C75E   Flags               01 (1) 'Modification'\n+36C75F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+36C763 LOCAL HEADER #994     04034B50 (67324752)\n+36C767 Extract Zip Spec      14 (20) '2.0'\n+36C768 Extract OS            00 (0) 'MS-DOS'\n+36C769 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36C76B Compression Method    0000 (0) 'Stored'\n+36C76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36C771 CRC                   00000000 (0)\n+36C775 Compressed Size       00000000 (0)\n+36C779 Uncompressed Size     00000000 (0)\n+36C77D Filename Length       0049 (73)\n+36C77F Extra Length          0009 (9)\n+36C781 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36C781: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36C7CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36C7CC   Length              0005 (5)\n+36C7CE   Flags               01 (1) 'Modification'\n+36C7CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36C7D3 PAYLOAD\n+\n+36DAAD DATA DESCRIPTOR       08074B50 (134695760)\n+36DAB1 CRC                   E294E314 (3801408276)\n+36DAB5 Compressed Size       000012DA (4826)\n+36DAB9 Uncompressed Size     000012DA (4826)\n+\n+36DABD LOCAL HEADER #995     04034B50 (67324752)\n+36DAC1 Extract Zip Spec      14 (20) '2.0'\n+36DAC2 Extract OS            00 (0) 'MS-DOS'\n+36DAC3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36DAC5 Compression Method    0000 (0) 'Stored'\n+36DAC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36DACB CRC                   00000000 (0)\n+36DACF Compressed Size       00000000 (0)\n+36DAD3 Uncompressed Size     00000000 (0)\n+36DAD7 Filename Length       0043 (67)\n+36DAD9 Extra Length          0009 (9)\n+36DADB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36DADB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36DB1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36DB20   Length              0005 (5)\n+36DB22   Flags               01 (1) 'Modification'\n+36DB23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36DB27 PAYLOAD\n+\n+36E57A DATA DESCRIPTOR       08074B50 (134695760)\n+36E57E CRC                   484F34E6 (1213150438)\n+36E582 Compressed Size       00000A53 (2643)\n+36E586 Uncompressed Size     00000A53 (2643)\n+\n+36E58A LOCAL HEADER #996     04034B50 (67324752)\n+36E58E Extract Zip Spec      14 (20) '2.0'\n+36E58F Extract OS            00 (0) 'MS-DOS'\n+36E590 General Purpose Flag  0000 (0)\n+36E592 Compression Method    0000 (0) 'Stored'\n+36E594 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36E598 CRC                   00000000 (0)\n+36E59C Compressed Size       00000000 (0)\n+36E5A0 Uncompressed Size     00000000 (0)\n+36E5A4 Filename Length       001F (31)\n+36E5A6 Extra Length          0009 (9)\n+36E5A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36E5A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36E5C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36E5C9   Length              0005 (5)\n+36E5CB   Flags               01 (1) 'Modification'\n+36E5CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+36E5D0 LOCAL HEADER #997     04034B50 (67324752)\n+36E5D4 Extract Zip Spec      14 (20) '2.0'\n+36E5D5 Extract OS            00 (0) 'MS-DOS'\n+36E5D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36E5D8 Compression Method    0000 (0) 'Stored'\n+36E5DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36E5DE CRC                   00000000 (0)\n+36E5E2 Compressed Size       00000000 (0)\n+36E5E6 Uncompressed Size     00000000 (0)\n+36E5EA Filename Length       0034 (52)\n+36E5EC Extra Length          0009 (9)\n+36E5EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36E5EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36E622 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36E624   Length              0005 (5)\n+36E626   Flags               01 (1) 'Modification'\n+36E627   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36E62B PAYLOAD\n+\n+36F85E DATA DESCRIPTOR       08074B50 (134695760)\n+36F862 CRC                   F164B1B0 (4049908144)\n+36F866 Compressed Size       00001233 (4659)\n+36F86A Uncompressed Size     00001233 (4659)\n+\n+36F86E LOCAL HEADER #998     04034B50 (67324752)\n+36F872 Extract Zip Spec      14 (20) '2.0'\n+36F873 Extract OS            00 (0) 'MS-DOS'\n+36F874 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+36F876 Compression Method    0000 (0) 'Stored'\n+36F878 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+36F87C CRC                   00000000 (0)\n+36F880 Compressed Size       00000000 (0)\n+36F884 Uncompressed Size     00000000 (0)\n+36F888 Filename Length       0031 (49)\n+36F88A Extra Length          0009 (9)\n+36F88C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x36F88C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+36F8BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+36F8BF   Length              0005 (5)\n+36F8C1   Flags               01 (1) 'Modification'\n+36F8C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+36F8C6 PAYLOAD\n+\n+370C9E DATA DESCRIPTOR       08074B50 (134695760)\n+370CA2 CRC                   D05CAEC0 (3495734976)\n+370CA6 Compressed Size       000013D8 (5080)\n+370CAA Uncompressed Size     000013D8 (5080)\n+\n+370CAE LOCAL HEADER #999     04034B50 (67324752)\n+370CB2 Extract Zip Spec      14 (20) '2.0'\n+370CB3 Extract OS            00 (0) 'MS-DOS'\n+370CB4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+370CB6 Compression Method    0000 (0) 'Stored'\n+370CB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+370CBC CRC                   00000000 (0)\n+370CC0 Compressed Size       00000000 (0)\n+370CC4 Uncompressed Size     00000000 (0)\n+370CC8 Filename Length       002F (47)\n+370CCA Extra Length          0009 (9)\n+370CCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x370CCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+370CFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+370CFD   Length              0005 (5)\n+370CFF   Flags               01 (1) 'Modification'\n+370D00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+370D04 PAYLOAD\n+\n+371EF0 DATA DESCRIPTOR       08074B50 (134695760)\n+371EF4 CRC                   6FBAC3DA (1874510810)\n+371EF8 Compressed Size       000011EC (4588)\n+371EFC Uncompressed Size     000011EC (4588)\n+\n+371F00 LOCAL HEADER #1000    04034B50 (67324752)\n+371F04 Extract Zip Spec      14 (20) '2.0'\n+371F05 Extract OS            00 (0) 'MS-DOS'\n+371F06 General Purpose Flag  0000 (0)\n+371F08 Compression Method    0000 (0) 'Stored'\n+371F0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+371F0E CRC                   00000000 (0)\n+371F12 Compressed Size       00000000 (0)\n+371F16 Uncompressed Size     00000000 (0)\n+371F1A Filename Length       0025 (37)\n+371F1C Extra Length          0009 (9)\n+371F1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x371F1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+371F43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+371F45   Length              0005 (5)\n+371F47   Flags               01 (1) 'Modification'\n+371F48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+371F4C LOCAL HEADER #1001    04034B50 (67324752)\n+371F50 Extract Zip Spec      14 (20) '2.0'\n+371F51 Extract OS            00 (0) 'MS-DOS'\n+371F52 General Purpose Flag  0000 (0)\n+371F54 Compression Method    0000 (0) 'Stored'\n+371F56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+371F5A CRC                   00000000 (0)\n+371F5E Compressed Size       00000000 (0)\n+371F62 Uncompressed Size     00000000 (0)\n+371F66 Filename Length       002D (45)\n+371F68 Extra Length          0009 (9)\n+371F6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x371F6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+371F97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+371F99   Length              0005 (5)\n+371F9B   Flags               01 (1) 'Modification'\n+371F9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+371FA0 LOCAL HEADER #1002    04034B50 (67324752)\n+371FA4 Extract Zip Spec      14 (20) '2.0'\n+371FA5 Extract OS            00 (0) 'MS-DOS'\n+371FA6 General Purpose Flag  0000 (0)\n+371FA8 Compression Method    0000 (0) 'Stored'\n+371FAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+371FAE CRC                   00000000 (0)\n+371FB2 Compressed Size       00000000 (0)\n+371FB6 Uncompressed Size     00000000 (0)\n+371FBA Filename Length       0038 (56)\n+371FBC Extra Length          0009 (9)\n+371FBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x371FBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+371FF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+371FF8   Length              0005 (5)\n+371FFA   Flags               01 (1) 'Modification'\n+371FFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+371FFF LOCAL HEADER #1003    04034B50 (67324752)\n+372003 Extract Zip Spec      14 (20) '2.0'\n+372004 Extract OS            00 (0) 'MS-DOS'\n+372005 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+372007 Compression Method    0000 (0) 'Stored'\n+372009 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37200D CRC                   00000000 (0)\n+372011 Compressed Size       00000000 (0)\n+372015 Uncompressed Size     00000000 (0)\n+372019 Filename Length       0060 (96)\n+37201B Extra Length          0009 (9)\n+37201D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37201D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37207D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37207F   Length              0005 (5)\n+372081   Flags               01 (1) 'Modification'\n+372082   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+372086 PAYLOAD\n+\n+37399F DATA DESCRIPTOR       08074B50 (134695760)\n+3739A3 CRC                   EBC487FE (3955525630)\n+3739A7 Compressed Size       00001919 (6425)\n+3739AB Uncompressed Size     00001919 (6425)\n+\n+3739AF LOCAL HEADER #1004    04034B50 (67324752)\n+3739B3 Extract Zip Spec      14 (20) '2.0'\n+3739B4 Extract OS            00 (0) 'MS-DOS'\n+3739B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3739B7 Compression Method    0000 (0) 'Stored'\n+3739B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3739BD CRC                   00000000 (0)\n+3739C1 Compressed Size       00000000 (0)\n+3739C5 Uncompressed Size     00000000 (0)\n+3739C9 Filename Length       0060 (96)\n+3739CB Extra Length          0009 (9)\n+3739CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3739CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+373A2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+373A2F   Length              0005 (5)\n+373A31   Flags               01 (1) 'Modification'\n+373A32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+373A36 PAYLOAD\n+\n+37557C DATA DESCRIPTOR       08074B50 (134695760)\n+375580 CRC                   E36E4DBC (3815656892)\n+375584 Compressed Size       00001B46 (6982)\n+375588 Uncompressed Size     00001B46 (6982)\n+\n+37558C LOCAL HEADER #1005    04034B50 (67324752)\n+375590 Extract Zip Spec      14 (20) '2.0'\n+375591 Extract OS            00 (0) 'MS-DOS'\n+375592 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+375594 Compression Method    0000 (0) 'Stored'\n+375596 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37559A CRC                   00000000 (0)\n+37559E Compressed Size       00000000 (0)\n+3755A2 Uncompressed Size     00000000 (0)\n+3755A6 Filename Length       005C (92)\n+3755A8 Extra Length          0009 (9)\n+3755AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3755AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+375606 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+375608   Length              0005 (5)\n+37560A   Flags               01 (1) 'Modification'\n+37560B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37560F PAYLOAD\n+\n+376240 DATA DESCRIPTOR       08074B50 (134695760)\n+376244 CRC                   5E5D5B66 (1583176550)\n+376248 Compressed Size       00000C31 (3121)\n+37624C Uncompressed Size     00000C31 (3121)\n+\n+376250 LOCAL HEADER #1006    04034B50 (67324752)\n+376254 Extract Zip Spec      14 (20) '2.0'\n+376255 Extract OS            00 (0) 'MS-DOS'\n+376256 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+376258 Compression Method    0000 (0) 'Stored'\n+37625A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37625E CRC                   00000000 (0)\n+376262 Compressed Size       00000000 (0)\n+376266 Uncompressed Size     00000000 (0)\n+37626A Filename Length       005A (90)\n+37626C Extra Length          0009 (9)\n+37626E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37626E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3762C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3762CA   Length              0005 (5)\n+3762CC   Flags               01 (1) 'Modification'\n+3762CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3762D1 PAYLOAD\n+\n+376F4F DATA DESCRIPTOR       08074B50 (134695760)\n+376F53 CRC                   52E29042 (1390579778)\n+376F57 Compressed Size       00000C7E (3198)\n+376F5B Uncompressed Size     00000C7E (3198)\n+\n+376F5F LOCAL HEADER #1007    04034B50 (67324752)\n+376F63 Extract Zip Spec      14 (20) '2.0'\n+376F64 Extract OS            00 (0) 'MS-DOS'\n+376F65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+376F67 Compression Method    0000 (0) 'Stored'\n+376F69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+376F6D CRC                   00000000 (0)\n+376F71 Compressed Size       00000000 (0)\n+376F75 Uncompressed Size     00000000 (0)\n+376F79 Filename Length       0061 (97)\n+376F7B Extra Length          0009 (9)\n+376F7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x376F7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+376FDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+376FE0   Length              0005 (5)\n+376FE2   Flags               01 (1) 'Modification'\n+376FE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+376FE7 PAYLOAD\n+\n+37BA4D DATA DESCRIPTOR       08074B50 (134695760)\n+37BA51 CRC                   BB518EC4 (3142684356)\n+37BA55 Compressed Size       00004A66 (19046)\n+37BA59 Uncompressed Size     00004A66 (19046)\n+\n+37BA5D LOCAL HEADER #1008    04034B50 (67324752)\n+37BA61 Extract Zip Spec      14 (20) '2.0'\n+37BA62 Extract OS            00 (0) 'MS-DOS'\n+37BA63 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+37BA65 Compression Method    0000 (0) 'Stored'\n+37BA67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37BA6B CRC                   00000000 (0)\n+37BA6F Compressed Size       00000000 (0)\n+37BA73 Uncompressed Size     00000000 (0)\n+37BA77 Filename Length       0051 (81)\n+37BA79 Extra Length          0009 (9)\n+37BA7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37BA7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37BACC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37BACE   Length              0005 (5)\n+37BAD0   Flags               01 (1) 'Modification'\n+37BAD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37BAD5 PAYLOAD\n+\n+37D862 DATA DESCRIPTOR       08074B50 (134695760)\n+37D866 CRC                   88DF9039 (2296352825)\n+37D86A Compressed Size       00001D8D (7565)\n+37D86E Uncompressed Size     00001D8D (7565)\n+\n+37D872 LOCAL HEADER #1009    04034B50 (67324752)\n+37D876 Extract Zip Spec      14 (20) '2.0'\n+37D877 Extract OS            00 (0) 'MS-DOS'\n+37D878 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+37D87A Compression Method    0000 (0) 'Stored'\n+37D87C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37D880 CRC                   00000000 (0)\n+37D884 Compressed Size       00000000 (0)\n+37D888 Uncompressed Size     00000000 (0)\n+37D88C Filename Length       005F (95)\n+37D88E Extra Length          0009 (9)\n+37D890 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37D890: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37D8EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37D8F1   Length              0005 (5)\n+37D8F3   Flags               01 (1) 'Modification'\n+37D8F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37D8F8 PAYLOAD\n+\n+37E03F DATA DESCRIPTOR       08074B50 (134695760)\n+37E043 CRC                   810B31C1 (2164994497)\n+37E047 Compressed Size       00000747 (1863)\n+37E04B Uncompressed Size     00000747 (1863)\n+\n+37E04F LOCAL HEADER #1010    04034B50 (67324752)\n+37E053 Extract Zip Spec      14 (20) '2.0'\n+37E054 Extract OS            00 (0) 'MS-DOS'\n+37E055 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+37E057 Compression Method    0000 (0) 'Stored'\n+37E059 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37E05D CRC                   00000000 (0)\n+37E061 Compressed Size       00000000 (0)\n+37E065 Uncompressed Size     00000000 (0)\n+37E069 Filename Length       0053 (83)\n+37E06B Extra Length          0009 (9)\n+37E06D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37E06D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37E0C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37E0C2   Length              0005 (5)\n+37E0C4   Flags               01 (1) 'Modification'\n+37E0C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37E0C9 PAYLOAD\n+\n+37F2B7 DATA DESCRIPTOR       08074B50 (134695760)\n+37F2BB CRC                   494954CD (1229542605)\n+37F2BF Compressed Size       000011EE (4590)\n+37F2C3 Uncompressed Size     000011EE (4590)\n+\n+37F2C7 LOCAL HEADER #1011    04034B50 (67324752)\n+37F2CB Extract Zip Spec      14 (20) '2.0'\n+37F2CC Extract OS            00 (0) 'MS-DOS'\n+37F2CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+37F2CF Compression Method    0000 (0) 'Stored'\n+37F2D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+37F2D5 CRC                   00000000 (0)\n+37F2D9 Compressed Size       00000000 (0)\n+37F2DD Uncompressed Size     00000000 (0)\n+37F2E1 Filename Length       0056 (86)\n+37F2E3 Extra Length          0009 (9)\n+37F2E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x37F2E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+37F33B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+37F33D   Length              0005 (5)\n+37F33F   Flags               01 (1) 'Modification'\n+37F340   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+37F344 PAYLOAD\n+\n+384BA8 DATA DESCRIPTOR       08074B50 (134695760)\n+384BAC CRC                   D398E281 (3550012033)\n+384BB0 Compressed Size       00005864 (22628)\n+384BB4 Uncompressed Size     00005864 (22628)\n+\n+384BB8 LOCAL HEADER #1012    04034B50 (67324752)\n+384BBC Extract Zip Spec      14 (20) '2.0'\n+384BBD Extract OS            00 (0) 'MS-DOS'\n+384BBE General Purpose Flag  0000 (0)\n+384BC0 Compression Method    0000 (0) 'Stored'\n+384BC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+384BC6 CRC                   00000000 (0)\n+384BCA Compressed Size       00000000 (0)\n+384BCE Uncompressed Size     00000000 (0)\n+384BD2 Filename Length       0034 (52)\n+384BD4 Extra Length          0009 (9)\n+384BD6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x384BD6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+384C0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+384C0C   Length              0005 (5)\n+384C0E   Flags               01 (1) 'Modification'\n+384C0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+384C13 LOCAL HEADER #1013    04034B50 (67324752)\n+384C17 Extract Zip Spec      14 (20) '2.0'\n+384C18 Extract OS            00 (0) 'MS-DOS'\n+384C19 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+384C1B Compression Method    0000 (0) 'Stored'\n+384C1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+384C21 CRC                   00000000 (0)\n+384C25 Compressed Size       00000000 (0)\n+384C29 Uncompressed Size     00000000 (0)\n+384C2D Filename Length       005E (94)\n+384C2F Extra Length          0009 (9)\n+384C31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x384C31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+384C8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+384C91   Length              0005 (5)\n+384C93   Flags               01 (1) 'Modification'\n+384C94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+384C98 PAYLOAD\n+\n+385300 DATA DESCRIPTOR       08074B50 (134695760)\n+385304 CRC                   4304EE7E (1124396670)\n+385308 Compressed Size       00000668 (1640)\n+38530C Uncompressed Size     00000668 (1640)\n+\n+385310 LOCAL HEADER #1014    04034B50 (67324752)\n+385314 Extract Zip Spec      14 (20) '2.0'\n+385315 Extract OS            00 (0) 'MS-DOS'\n+385316 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+385318 Compression Method    0000 (0) 'Stored'\n+38531A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38531E CRC                   00000000 (0)\n+385322 Compressed Size       00000000 (0)\n+385326 Uncompressed Size     00000000 (0)\n+38532A Filename Length       0069 (105)\n+38532C Extra Length          0009 (9)\n+38532E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38532E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+385397 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+385399   Length              0005 (5)\n+38539B   Flags               01 (1) 'Modification'\n+38539C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3853A0 PAYLOAD\n+\n+38655D DATA DESCRIPTOR       08074B50 (134695760)\n+386561 CRC                   93006498 (2466276504)\n+386565 Compressed Size       000011BD (4541)\n+386569 Uncompressed Size     000011BD (4541)\n+\n+38656D LOCAL HEADER #1015    04034B50 (67324752)\n+386571 Extract Zip Spec      14 (20) '2.0'\n+386572 Extract OS            00 (0) 'MS-DOS'\n+386573 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+386575 Compression Method    0000 (0) 'Stored'\n+386577 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38657B CRC                   00000000 (0)\n+38657F Compressed Size       00000000 (0)\n+386583 Uncompressed Size     00000000 (0)\n+386587 Filename Length       0064 (100)\n+386589 Extra Length          0009 (9)\n+38658B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38658B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3865EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3865F1   Length              0005 (5)\n+3865F3   Flags               01 (1) 'Modification'\n+3865F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3865F8 PAYLOAD\n+\n+387C23 DATA DESCRIPTOR       08074B50 (134695760)\n+387C27 CRC                   2F136214 (789799444)\n+387C2B Compressed Size       0000162B (5675)\n+387C2F Uncompressed Size     0000162B (5675)\n+\n+387C33 LOCAL HEADER #1016    04034B50 (67324752)\n+387C37 Extract Zip Spec      14 (20) '2.0'\n+387C38 Extract OS            00 (0) 'MS-DOS'\n+387C39 General Purpose Flag  0000 (0)\n+387C3B Compression Method    0000 (0) 'Stored'\n+387C3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+387C41 CRC                   00000000 (0)\n+387C45 Compressed Size       00000000 (0)\n+387C49 Uncompressed Size     00000000 (0)\n+387C4D Filename Length       0027 (39)\n+387C4F Extra Length          0009 (9)\n+387C51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x387C51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+387C78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+387C7A   Length              0005 (5)\n+387C7C   Flags               01 (1) 'Modification'\n+387C7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+387C81 LOCAL HEADER #1017    04034B50 (67324752)\n+387C85 Extract Zip Spec      14 (20) '2.0'\n+387C86 Extract OS            00 (0) 'MS-DOS'\n+387C87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+387C89 Compression Method    0000 (0) 'Stored'\n+387C8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+387C8F CRC                   00000000 (0)\n+387C93 Compressed Size       00000000 (0)\n+387C97 Uncompressed Size     00000000 (0)\n+387C9B Filename Length       004D (77)\n+387C9D Extra Length          0009 (9)\n+387C9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x387C9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+387CEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+387CEE   Length              0005 (5)\n+387CF0   Flags               01 (1) 'Modification'\n+387CF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+387CF5 PAYLOAD\n+\n+388792 DATA DESCRIPTOR       08074B50 (134695760)\n+388796 CRC                   6308AEDE (1661513438)\n+38879A Compressed Size       00000A9D (2717)\n+38879E Uncompressed Size     00000A9D (2717)\n+\n+3887A2 LOCAL HEADER #1018    04034B50 (67324752)\n+3887A6 Extract Zip Spec      14 (20) '2.0'\n+3887A7 Extract OS            00 (0) 'MS-DOS'\n+3887A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3887AA Compression Method    0000 (0) 'Stored'\n+3887AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3887B0 CRC                   00000000 (0)\n+3887B4 Compressed Size       00000000 (0)\n+3887B8 Uncompressed Size     00000000 (0)\n+3887BC Filename Length       004D (77)\n+3887BE Extra Length          0009 (9)\n+3887C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3887C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38880D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38880F   Length              0005 (5)\n+388811   Flags               01 (1) 'Modification'\n+388812   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+388816 PAYLOAD\n+\n+38948B DATA DESCRIPTOR       08074B50 (134695760)\n+38948F CRC                   DD0D6020 (3708641312)\n+389493 Compressed Size       00000C75 (3189)\n+389497 Uncompressed Size     00000C75 (3189)\n+\n+38949B LOCAL HEADER #1019    04034B50 (67324752)\n+38949F Extract Zip Spec      14 (20) '2.0'\n+3894A0 Extract OS            00 (0) 'MS-DOS'\n+3894A1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3894A3 Compression Method    0000 (0) 'Stored'\n+3894A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3894A9 CRC                   00000000 (0)\n+3894AD Compressed Size       00000000 (0)\n+3894B1 Uncompressed Size     00000000 (0)\n+3894B5 Filename Length       0058 (88)\n+3894B7 Extra Length          0009 (9)\n+3894B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3894B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+389511 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+389513   Length              0005 (5)\n+389515   Flags               01 (1) 'Modification'\n+389516   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38951A PAYLOAD\n+\n+389C8D DATA DESCRIPTOR       08074B50 (134695760)\n+389C91 CRC                   79D3C18A (2043920778)\n+389C95 Compressed Size       00000773 (1907)\n+389C99 Uncompressed Size     00000773 (1907)\n+\n+389C9D LOCAL HEADER #1020    04034B50 (67324752)\n+389CA1 Extract Zip Spec      14 (20) '2.0'\n+389CA2 Extract OS            00 (0) 'MS-DOS'\n+389CA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+389CA5 Compression Method    0000 (0) 'Stored'\n+389CA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+389CAB CRC                   00000000 (0)\n+389CAF Compressed Size       00000000 (0)\n+389CB3 Uncompressed Size     00000000 (0)\n+389CB7 Filename Length       0056 (86)\n+389CB9 Extra Length          0009 (9)\n+389CBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x389CBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+389D11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+389D13   Length              0005 (5)\n+389D15   Flags               01 (1) 'Modification'\n+389D16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+389D1A PAYLOAD\n+\n+38AC27 DATA DESCRIPTOR       08074B50 (134695760)\n+38AC2B CRC                   D5036E1C (3573771804)\n+38AC2F Compressed Size       00000F0D (3853)\n+38AC33 Uncompressed Size     00000F0D (3853)\n+\n+38AC37 LOCAL HEADER #1021    04034B50 (67324752)\n+38AC3B Extract Zip Spec      14 (20) '2.0'\n+38AC3C Extract OS            00 (0) 'MS-DOS'\n+38AC3D General Purpose Flag  0000 (0)\n+38AC3F Compression Method    0000 (0) 'Stored'\n+38AC41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38AC45 CRC                   00000000 (0)\n+38AC49 Compressed Size       00000000 (0)\n+38AC4D Uncompressed Size     00000000 (0)\n+38AC51 Filename Length       0032 (50)\n+38AC53 Extra Length          0009 (9)\n+38AC55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38AC55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38AC87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38AC89   Length              0005 (5)\n+38AC8B   Flags               01 (1) 'Modification'\n+38AC8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+38AC90 LOCAL HEADER #1022    04034B50 (67324752)\n+38AC94 Extract Zip Spec      14 (20) '2.0'\n+38AC95 Extract OS            00 (0) 'MS-DOS'\n+38AC96 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38AC98 Compression Method    0000 (0) 'Stored'\n+38AC9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38AC9E CRC                   00000000 (0)\n+38ACA2 Compressed Size       00000000 (0)\n+38ACA6 Uncompressed Size     00000000 (0)\n+38ACAA Filename Length       005A (90)\n+38ACAC Extra Length          0009 (9)\n+38ACAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38ACAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38AD08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38AD0A   Length              0005 (5)\n+38AD0C   Flags               01 (1) 'Modification'\n+38AD0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38AD11 PAYLOAD\n+\n+38B7A7 DATA DESCRIPTOR       08074B50 (134695760)\n+38B7AB CRC                   E1ADA7E4 (3786254308)\n+38B7AF Compressed Size       00000A96 (2710)\n+38B7B3 Uncompressed Size     00000A96 (2710)\n+\n+38B7B7 LOCAL HEADER #1023    04034B50 (67324752)\n+38B7BB Extract Zip Spec      14 (20) '2.0'\n+38B7BC Extract OS            00 (0) 'MS-DOS'\n+38B7BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38B7BF Compression Method    0000 (0) 'Stored'\n+38B7C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38B7C5 CRC                   00000000 (0)\n+38B7C9 Compressed Size       00000000 (0)\n+38B7CD Uncompressed Size     00000000 (0)\n+38B7D1 Filename Length       0049 (73)\n+38B7D3 Extra Length          0009 (9)\n+38B7D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38B7D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38B81E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38B820   Length              0005 (5)\n+38B822   Flags               01 (1) 'Modification'\n+38B823   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38B827 PAYLOAD\n+\n+38C2F6 DATA DESCRIPTOR       08074B50 (134695760)\n+38C2FA CRC                   041B9E71 (68918897)\n+38C2FE Compressed Size       00000ACF (2767)\n+38C302 Uncompressed Size     00000ACF (2767)\n+\n+38C306 LOCAL HEADER #1024    04034B50 (67324752)\n+38C30A Extract Zip Spec      14 (20) '2.0'\n+38C30B Extract OS            00 (0) 'MS-DOS'\n+38C30C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38C30E Compression Method    0000 (0) 'Stored'\n+38C310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38C314 CRC                   00000000 (0)\n+38C318 Compressed Size       00000000 (0)\n+38C31C Uncompressed Size     00000000 (0)\n+38C320 Filename Length       0052 (82)\n+38C322 Extra Length          0009 (9)\n+38C324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38C324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38C376 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38C378   Length              0005 (5)\n+38C37A   Flags               01 (1) 'Modification'\n+38C37B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38C37F PAYLOAD\n+\n+38D553 DATA DESCRIPTOR       08074B50 (134695760)\n+38D557 CRC                   E7D9317D (3889770877)\n+38D55B Compressed Size       000011D4 (4564)\n+38D55F Uncompressed Size     000011D4 (4564)\n+\n+38D563 LOCAL HEADER #1025    04034B50 (67324752)\n+38D567 Extract Zip Spec      14 (20) '2.0'\n+38D568 Extract OS            00 (0) 'MS-DOS'\n+38D569 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38D56B Compression Method    0000 (0) 'Stored'\n+38D56D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38D571 CRC                   00000000 (0)\n+38D575 Compressed Size       00000000 (0)\n+38D579 Uncompressed Size     00000000 (0)\n+38D57D Filename Length       004F (79)\n+38D57F Extra Length          0009 (9)\n+38D581 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38D581: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38D5D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38D5D2   Length              0005 (5)\n+38D5D4   Flags               01 (1) 'Modification'\n+38D5D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38D5D9 PAYLOAD\n+\n+38E8EB DATA DESCRIPTOR       08074B50 (134695760)\n+38E8EF CRC                   7ED1451A (2127643930)\n+38E8F3 Compressed Size       00001312 (4882)\n+38E8F7 Uncompressed Size     00001312 (4882)\n+\n+38E8FB LOCAL HEADER #1026    04034B50 (67324752)\n+38E8FF Extract Zip Spec      14 (20) '2.0'\n+38E900 Extract OS            00 (0) 'MS-DOS'\n+38E901 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38E903 Compression Method    0000 (0) 'Stored'\n+38E905 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38E909 CRC                   00000000 (0)\n+38E90D Compressed Size       00000000 (0)\n+38E911 Uncompressed Size     00000000 (0)\n+38E915 Filename Length       0058 (88)\n+38E917 Extra Length          0009 (9)\n+38E919 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38E919: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38E971 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38E973   Length              0005 (5)\n+38E975   Flags               01 (1) 'Modification'\n+38E976   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38E97A PAYLOAD\n+\n+38F626 DATA DESCRIPTOR       08074B50 (134695760)\n+38F62A CRC                   AD821A56 (2910984790)\n+38F62E Compressed Size       00000CAC (3244)\n+38F632 Uncompressed Size     00000CAC (3244)\n+\n+38F636 LOCAL HEADER #1027    04034B50 (67324752)\n+38F63A Extract Zip Spec      14 (20) '2.0'\n+38F63B Extract OS            00 (0) 'MS-DOS'\n+38F63C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38F63E Compression Method    0000 (0) 'Stored'\n+38F640 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38F644 CRC                   00000000 (0)\n+38F648 Compressed Size       00000000 (0)\n+38F64C Uncompressed Size     00000000 (0)\n+38F650 Filename Length       0057 (87)\n+38F652 Extra Length          0009 (9)\n+38F654 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38F654: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38F6AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38F6AD   Length              0005 (5)\n+38F6AF   Flags               01 (1) 'Modification'\n+38F6B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38F6B4 PAYLOAD\n+\n+38FEE7 DATA DESCRIPTOR       08074B50 (134695760)\n+38FEEB CRC                   C24DDA18 (3259882008)\n+38FEEF Compressed Size       00000833 (2099)\n+38FEF3 Uncompressed Size     00000833 (2099)\n+\n+38FEF7 LOCAL HEADER #1028    04034B50 (67324752)\n+38FEFB Extract Zip Spec      14 (20) '2.0'\n+38FEFC Extract OS            00 (0) 'MS-DOS'\n+38FEFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+38FEFF Compression Method    0000 (0) 'Stored'\n+38FF01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+38FF05 CRC                   00000000 (0)\n+38FF09 Compressed Size       00000000 (0)\n+38FF0D Uncompressed Size     00000000 (0)\n+38FF11 Filename Length       0042 (66)\n+38FF13 Extra Length          0009 (9)\n+38FF15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x38FF15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+38FF57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+38FF59   Length              0005 (5)\n+38FF5B   Flags               01 (1) 'Modification'\n+38FF5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+38FF60 PAYLOAD\n+\n+390ADA DATA DESCRIPTOR       08074B50 (134695760)\n+390ADE CRC                   FF2A19ED (4280949229)\n+390AE2 Compressed Size       00000B7A (2938)\n+390AE6 Uncompressed Size     00000B7A (2938)\n+\n+390AEA LOCAL HEADER #1029    04034B50 (67324752)\n+390AEE Extract Zip Spec      14 (20) '2.0'\n+390AEF Extract OS            00 (0) 'MS-DOS'\n+390AF0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+390AF2 Compression Method    0000 (0) 'Stored'\n+390AF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+390AF8 CRC                   00000000 (0)\n+390AFC Compressed Size       00000000 (0)\n+390B00 Uncompressed Size     00000000 (0)\n+390B04 Filename Length       0048 (72)\n+390B06 Extra Length          0009 (9)\n+390B08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x390B08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+390B50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+390B52   Length              0005 (5)\n+390B54   Flags               01 (1) 'Modification'\n+390B55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+390B59 PAYLOAD\n+\n+391937 DATA DESCRIPTOR       08074B50 (134695760)\n+39193B CRC                   5D54AEAF (1565830831)\n+39193F Compressed Size       00000DDE (3550)\n+391943 Uncompressed Size     00000DDE (3550)\n+\n+391947 LOCAL HEADER #1030    04034B50 (67324752)\n+39194B Extract Zip Spec      14 (20) '2.0'\n+39194C Extract OS            00 (0) 'MS-DOS'\n+39194D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39194F Compression Method    0000 (0) 'Stored'\n+391951 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+391955 CRC                   00000000 (0)\n+391959 Compressed Size       00000000 (0)\n+39195D Uncompressed Size     00000000 (0)\n+391961 Filename Length       004B (75)\n+391963 Extra Length          0009 (9)\n+391965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x391965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3919B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3919B2   Length              0005 (5)\n+3919B4   Flags               01 (1) 'Modification'\n+3919B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3919B9 PAYLOAD\n+\n+392018 DATA DESCRIPTOR       08074B50 (134695760)\n+39201C CRC                   0C9E7B88 (211712904)\n+392020 Compressed Size       0000065F (1631)\n+392024 Uncompressed Size     0000065F (1631)\n+\n+392028 LOCAL HEADER #1031    04034B50 (67324752)\n+39202C Extract Zip Spec      14 (20) '2.0'\n+39202D Extract OS            00 (0) 'MS-DOS'\n+39202E General Purpose Flag  0000 (0)\n+392030 Compression Method    0000 (0) 'Stored'\n+392032 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+392036 CRC                   00000000 (0)\n+39203A Compressed Size       00000000 (0)\n+39203E Uncompressed Size     00000000 (0)\n+392042 Filename Length       002E (46)\n+392044 Extra Length          0009 (9)\n+392046 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x392046: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+392074 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+392076   Length              0005 (5)\n+392078   Flags               01 (1) 'Modification'\n+392079   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+39207D LOCAL HEADER #1032    04034B50 (67324752)\n+392081 Extract Zip Spec      14 (20) '2.0'\n+392082 Extract OS            00 (0) 'MS-DOS'\n+392083 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+392085 Compression Method    0000 (0) 'Stored'\n+392087 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39208B CRC                   00000000 (0)\n+39208F Compressed Size       00000000 (0)\n+392093 Uncompressed Size     00000000 (0)\n+392097 Filename Length       004C (76)\n+392099 Extra Length          0009 (9)\n+39209B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39209B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3920E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3920E9   Length              0005 (5)\n+3920EB   Flags               01 (1) 'Modification'\n+3920EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3920F0 PAYLOAD\n+\n+392A9A DATA DESCRIPTOR       08074B50 (134695760)\n+392A9E CRC                   EB9A0122 (3952738594)\n+392AA2 Compressed Size       000009AA (2474)\n+392AA6 Uncompressed Size     000009AA (2474)\n+\n+392AAA LOCAL HEADER #1033    04034B50 (67324752)\n+392AAE Extract Zip Spec      14 (20) '2.0'\n+392AAF Extract OS            00 (0) 'MS-DOS'\n+392AB0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+392AB2 Compression Method    0000 (0) 'Stored'\n+392AB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+392AB8 CRC                   00000000 (0)\n+392ABC Compressed Size       00000000 (0)\n+392AC0 Uncompressed Size     00000000 (0)\n+392AC4 Filename Length       0064 (100)\n+392AC6 Extra Length          0009 (9)\n+392AC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x392AC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+392B2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+392B2E   Length              0005 (5)\n+392B30   Flags               01 (1) 'Modification'\n+392B31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+392B35 PAYLOAD\n+\n+39385E DATA DESCRIPTOR       08074B50 (134695760)\n+393862 CRC                   E5AFE84D (3853510733)\n+393866 Compressed Size       00000D29 (3369)\n+39386A Uncompressed Size     00000D29 (3369)\n+\n+39386E LOCAL HEADER #1034    04034B50 (67324752)\n+393872 Extract Zip Spec      14 (20) '2.0'\n+393873 Extract OS            00 (0) 'MS-DOS'\n+393874 General Purpose Flag  0000 (0)\n+393876 Compression Method    0000 (0) 'Stored'\n+393878 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39387C CRC                   00000000 (0)\n+393880 Compressed Size       00000000 (0)\n+393884 Uncompressed Size     00000000 (0)\n+393888 Filename Length       002D (45)\n+39388A Extra Length          0009 (9)\n+39388C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39388C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3938B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3938BB   Length              0005 (5)\n+3938BD   Flags               01 (1) 'Modification'\n+3938BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3938C2 LOCAL HEADER #1035    04034B50 (67324752)\n+3938C6 Extract Zip Spec      14 (20) '2.0'\n+3938C7 Extract OS            00 (0) 'MS-DOS'\n+3938C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3938CA Compression Method    0000 (0) 'Stored'\n+3938CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3938D0 CRC                   00000000 (0)\n+3938D4 Compressed Size       00000000 (0)\n+3938D8 Uncompressed Size     00000000 (0)\n+3938DC Filename Length       004B (75)\n+3938DE Extra Length          0009 (9)\n+3938E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3938E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+39392B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+39392D   Length              0005 (5)\n+39392F   Flags               01 (1) 'Modification'\n+393930   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+393934 PAYLOAD\n+\n+39409D DATA DESCRIPTOR       08074B50 (134695760)\n+3940A1 CRC                   77721950 (2003966288)\n+3940A5 Compressed Size       00000769 (1897)\n+3940A9 Uncompressed Size     00000769 (1897)\n+\n+3940AD LOCAL HEADER #1036    04034B50 (67324752)\n+3940B1 Extract Zip Spec      14 (20) '2.0'\n+3940B2 Extract OS            00 (0) 'MS-DOS'\n+3940B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3940B5 Compression Method    0000 (0) 'Stored'\n+3940B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3940BB CRC                   00000000 (0)\n+3940BF Compressed Size       00000000 (0)\n+3940C3 Uncompressed Size     00000000 (0)\n+3940C7 Filename Length       004B (75)\n+3940C9 Extra Length          0009 (9)\n+3940CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3940CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+394116 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+394118   Length              0005 (5)\n+39411A   Flags               01 (1) 'Modification'\n+39411B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+39411F PAYLOAD\n+\n+394887 DATA DESCRIPTOR       08074B50 (134695760)\n+39488B CRC                   5603BE91 (1443085969)\n+39488F Compressed Size       00000768 (1896)\n+394893 Uncompressed Size     00000768 (1896)\n+\n+394897 LOCAL HEADER #1037    04034B50 (67324752)\n+39489B Extract Zip Spec      14 (20) '2.0'\n+39489C Extract OS            00 (0) 'MS-DOS'\n+39489D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39489F Compression Method    0000 (0) 'Stored'\n+3948A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3948A5 CRC                   00000000 (0)\n+3948A9 Compressed Size       00000000 (0)\n+3948AD Uncompressed Size     00000000 (0)\n+3948B1 Filename Length       004A (74)\n+3948B3 Extra Length          0009 (9)\n+3948B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3948B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3948FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+394901   Length              0005 (5)\n+394903   Flags               01 (1) 'Modification'\n+394904   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+394908 PAYLOAD\n+\n+394FCE DATA DESCRIPTOR       08074B50 (134695760)\n+394FD2 CRC                   BFF1DD26 (3220299046)\n+394FD6 Compressed Size       000006C6 (1734)\n+394FDA Uncompressed Size     000006C6 (1734)\n+\n+394FDE LOCAL HEADER #1038    04034B50 (67324752)\n+394FE2 Extract Zip Spec      14 (20) '2.0'\n+394FE3 Extract OS            00 (0) 'MS-DOS'\n+394FE4 General Purpose Flag  0000 (0)\n+394FE6 Compression Method    0000 (0) 'Stored'\n+394FE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+394FEC CRC                   00000000 (0)\n+394FF0 Compressed Size       00000000 (0)\n+394FF4 Uncompressed Size     00000000 (0)\n+394FF8 Filename Length       0032 (50)\n+394FFA Extra Length          0009 (9)\n+394FFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x394FFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+39502E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+395030   Length              0005 (5)\n+395032   Flags               01 (1) 'Modification'\n+395033   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+395037 LOCAL HEADER #1039    04034B50 (67324752)\n+39503B Extract Zip Spec      14 (20) '2.0'\n+39503C Extract OS            00 (0) 'MS-DOS'\n+39503D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39503F Compression Method    0000 (0) 'Stored'\n+395041 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+395045 CRC                   00000000 (0)\n+395049 Compressed Size       00000000 (0)\n+39504D Uncompressed Size     00000000 (0)\n+395051 Filename Length       0050 (80)\n+395053 Extra Length          0009 (9)\n+395055 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x395055: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3950A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3950A7   Length              0005 (5)\n+3950A9   Flags               01 (1) 'Modification'\n+3950AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3950AE PAYLOAD\n+\n+3959EE DATA DESCRIPTOR       08074B50 (134695760)\n+3959F2 CRC                   D7398AF1 (3610872561)\n+3959F6 Compressed Size       00000940 (2368)\n+3959FA Uncompressed Size     00000940 (2368)\n+\n+3959FE LOCAL HEADER #1040    04034B50 (67324752)\n+395A02 Extract Zip Spec      14 (20) '2.0'\n+395A03 Extract OS            00 (0) 'MS-DOS'\n+395A04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+395A06 Compression Method    0000 (0) 'Stored'\n+395A08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+395A0C CRC                   00000000 (0)\n+395A10 Compressed Size       00000000 (0)\n+395A14 Uncompressed Size     00000000 (0)\n+395A18 Filename Length       004F (79)\n+395A1A Extra Length          0009 (9)\n+395A1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x395A1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+395A6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+395A6D   Length              0005 (5)\n+395A6F   Flags               01 (1) 'Modification'\n+395A70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+395A74 PAYLOAD\n+\n+39624F DATA DESCRIPTOR       08074B50 (134695760)\n+396253 CRC                   BB2451AF (3139719599)\n+396257 Compressed Size       000007DB (2011)\n+39625B Uncompressed Size     000007DB (2011)\n+\n+39625F LOCAL HEADER #1041    04034B50 (67324752)\n+396263 Extract Zip Spec      14 (20) '2.0'\n+396264 Extract OS            00 (0) 'MS-DOS'\n+396265 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+396267 Compression Method    0000 (0) 'Stored'\n+396269 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39626D CRC                   00000000 (0)\n+396271 Compressed Size       00000000 (0)\n+396275 Uncompressed Size     00000000 (0)\n+396279 Filename Length       0048 (72)\n+39627B Extra Length          0009 (9)\n+39627D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39627D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3962C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3962C7   Length              0005 (5)\n+3962C9   Flags               01 (1) 'Modification'\n+3962CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3962CE PAYLOAD\n+\n+396B5B DATA DESCRIPTOR       08074B50 (134695760)\n+396B5F CRC                   59514F7F (1498500991)\n+396B63 Compressed Size       0000088D (2189)\n+396B67 Uncompressed Size     0000088D (2189)\n+\n+396B6B LOCAL HEADER #1042    04034B50 (67324752)\n+396B6F Extract Zip Spec      14 (20) '2.0'\n+396B70 Extract OS            00 (0) 'MS-DOS'\n+396B71 General Purpose Flag  0000 (0)\n+396B73 Compression Method    0000 (0) 'Stored'\n+396B75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+396B79 CRC                   00000000 (0)\n+396B7D Compressed Size       00000000 (0)\n+396B81 Uncompressed Size     00000000 (0)\n+396B85 Filename Length       0029 (41)\n+396B87 Extra Length          0009 (9)\n+396B89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x396B89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+396BB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+396BB4   Length              0005 (5)\n+396BB6   Flags               01 (1) 'Modification'\n+396BB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+396BBB LOCAL HEADER #1043    04034B50 (67324752)\n+396BBF Extract Zip Spec      14 (20) '2.0'\n+396BC0 Extract OS            00 (0) 'MS-DOS'\n+396BC1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+396BC3 Compression Method    0000 (0) 'Stored'\n+396BC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+396BC9 CRC                   00000000 (0)\n+396BCD Compressed Size       00000000 (0)\n+396BD1 Uncompressed Size     00000000 (0)\n+396BD5 Filename Length       0044 (68)\n+396BD7 Extra Length          0009 (9)\n+396BD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x396BD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+396C1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+396C1F   Length              0005 (5)\n+396C21   Flags               01 (1) 'Modification'\n+396C22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+396C26 PAYLOAD\n+\n+3977A4 DATA DESCRIPTOR       08074B50 (134695760)\n+3977A8 CRC                   A9F13587 (2851157383)\n+3977AC Compressed Size       00000B7E (2942)\n+3977B0 Uncompressed Size     00000B7E (2942)\n+\n+3977B4 LOCAL HEADER #1044    04034B50 (67324752)\n+3977B8 Extract Zip Spec      14 (20) '2.0'\n+3977B9 Extract OS            00 (0) 'MS-DOS'\n+3977BA General Purpose Flag  0000 (0)\n+3977BC Compression Method    0000 (0) 'Stored'\n+3977BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3977C2 CRC                   00000000 (0)\n+3977C6 Compressed Size       00000000 (0)\n+3977CA Uncompressed Size     00000000 (0)\n+3977CE Filename Length       0026 (38)\n+3977D0 Extra Length          0009 (9)\n+3977D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3977D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3977F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3977FA   Length              0005 (5)\n+3977FC   Flags               01 (1) 'Modification'\n+3977FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+397801 LOCAL HEADER #1045    04034B50 (67324752)\n+397805 Extract Zip Spec      14 (20) '2.0'\n+397806 Extract OS            00 (0) 'MS-DOS'\n+397807 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+397809 Compression Method    0000 (0) 'Stored'\n+39780B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39780F CRC                   00000000 (0)\n+397813 Compressed Size       00000000 (0)\n+397817 Uncompressed Size     00000000 (0)\n+39781B Filename Length       0049 (73)\n+39781D Extra Length          0009 (9)\n+39781F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39781F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+397868 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+39786A   Length              0005 (5)\n+39786C   Flags               01 (1) 'Modification'\n+39786D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+397871 PAYLOAD\n+\n+398412 DATA DESCRIPTOR       08074B50 (134695760)\n+398416 CRC                   5AA87E5F (1520991839)\n+39841A Compressed Size       00000BA1 (2977)\n+39841E Uncompressed Size     00000BA1 (2977)\n+\n+398422 LOCAL HEADER #1046    04034B50 (67324752)\n+398426 Extract Zip Spec      14 (20) '2.0'\n+398427 Extract OS            00 (0) 'MS-DOS'\n+398428 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39842A Compression Method    0000 (0) 'Stored'\n+39842C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+398430 CRC                   00000000 (0)\n+398434 Compressed Size       00000000 (0)\n+398438 Uncompressed Size     00000000 (0)\n+39843C Filename Length       0044 (68)\n+39843E Extra Length          0009 (9)\n+398440 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x398440: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+398484 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+398486   Length              0005 (5)\n+398488   Flags               01 (1) 'Modification'\n+398489   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+39848D PAYLOAD\n+\n+39DE41 DATA DESCRIPTOR       08074B50 (134695760)\n+39DE45 CRC                   9A04FF8D (2584018829)\n+39DE49 Compressed Size       000059B4 (22964)\n+39DE4D Uncompressed Size     000059B4 (22964)\n+\n+39DE51 LOCAL HEADER #1047    04034B50 (67324752)\n+39DE55 Extract Zip Spec      14 (20) '2.0'\n+39DE56 Extract OS            00 (0) 'MS-DOS'\n+39DE57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39DE59 Compression Method    0000 (0) 'Stored'\n+39DE5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39DE5F CRC                   00000000 (0)\n+39DE63 Compressed Size       00000000 (0)\n+39DE67 Uncompressed Size     00000000 (0)\n+39DE6B Filename Length       0040 (64)\n+39DE6D Extra Length          0009 (9)\n+39DE6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39DE6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+39DEAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+39DEB1   Length              0005 (5)\n+39DEB3   Flags               01 (1) 'Modification'\n+39DEB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+39DEB8 PAYLOAD\n+\n+39F2B0 DATA DESCRIPTOR       08074B50 (134695760)\n+39F2B4 CRC                   7900D528 (2030097704)\n+39F2B8 Compressed Size       000013F8 (5112)\n+39F2BC Uncompressed Size     000013F8 (5112)\n+\n+39F2C0 LOCAL HEADER #1048    04034B50 (67324752)\n+39F2C4 Extract Zip Spec      14 (20) '2.0'\n+39F2C5 Extract OS            00 (0) 'MS-DOS'\n+39F2C6 General Purpose Flag  0000 (0)\n+39F2C8 Compression Method    0000 (0) 'Stored'\n+39F2CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39F2CE CRC                   00000000 (0)\n+39F2D2 Compressed Size       00000000 (0)\n+39F2D6 Uncompressed Size     00000000 (0)\n+39F2DA Filename Length       0026 (38)\n+39F2DC Extra Length          0009 (9)\n+39F2DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39F2DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+39F304 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+39F306   Length              0005 (5)\n+39F308   Flags               01 (1) 'Modification'\n+39F309   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+39F30D LOCAL HEADER #1049    04034B50 (67324752)\n+39F311 Extract Zip Spec      14 (20) '2.0'\n+39F312 Extract OS            00 (0) 'MS-DOS'\n+39F313 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+39F315 Compression Method    0000 (0) 'Stored'\n+39F317 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+39F31B CRC                   00000000 (0)\n+39F31F Compressed Size       00000000 (0)\n+39F323 Uncompressed Size     00000000 (0)\n+39F327 Filename Length       0042 (66)\n+39F329 Extra Length          0009 (9)\n+39F32B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x39F32B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+39F36D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+39F36F   Length              0005 (5)\n+39F371   Flags               01 (1) 'Modification'\n+39F372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+39F376 PAYLOAD\n+\n+3A0125 DATA DESCRIPTOR       08074B50 (134695760)\n+3A0129 CRC                   52B569A3 (1387620771)\n+3A012D Compressed Size       00000DAF (3503)\n+3A0131 Uncompressed Size     00000DAF (3503)\n+\n+3A0135 LOCAL HEADER #1050    04034B50 (67324752)\n+3A0139 Extract Zip Spec      14 (20) '2.0'\n+3A013A Extract OS            00 (0) 'MS-DOS'\n+3A013B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3A013D Compression Method    0000 (0) 'Stored'\n+3A013F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A0143 CRC                   00000000 (0)\n+3A0147 Compressed Size       00000000 (0)\n+3A014B Uncompressed Size     00000000 (0)\n+3A014F Filename Length       003E (62)\n+3A0151 Extra Length          0009 (9)\n+3A0153 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A0153: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A0191 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A0193   Length              0005 (5)\n+3A0195   Flags               01 (1) 'Modification'\n+3A0196   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A019A PAYLOAD\n+\n+3A106A DATA DESCRIPTOR       08074B50 (134695760)\n+3A106E CRC                   37F5F927 (938866983)\n+3A1072 Compressed Size       00000ED0 (3792)\n+3A1076 Uncompressed Size     00000ED0 (3792)\n+\n+3A107A LOCAL HEADER #1051    04034B50 (67324752)\n+3A107E Extract Zip Spec      14 (20) '2.0'\n+3A107F Extract OS            00 (0) 'MS-DOS'\n+3A1080 General Purpose Flag  0000 (0)\n+3A1082 Compression Method    0000 (0) 'Stored'\n+3A1084 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A1088 CRC                   00000000 (0)\n+3A108C Compressed Size       00000000 (0)\n+3A1090 Uncompressed Size     00000000 (0)\n+3A1094 Filename Length       0024 (36)\n+3A1096 Extra Length          0009 (9)\n+3A1098 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A1098: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A10BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A10BE   Length              0005 (5)\n+3A10C0   Flags               01 (1) 'Modification'\n+3A10C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3A10C5 LOCAL HEADER #1052    04034B50 (67324752)\n+3A10C9 Extract Zip Spec      14 (20) '2.0'\n+3A10CA Extract OS            00 (0) 'MS-DOS'\n+3A10CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3A10CD Compression Method    0000 (0) 'Stored'\n+3A10CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A10D3 CRC                   00000000 (0)\n+3A10D7 Compressed Size       00000000 (0)\n+3A10DB Uncompressed Size     00000000 (0)\n+3A10DF Filename Length       003D (61)\n+3A10E1 Extra Length          0009 (9)\n+3A10E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A10E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A1120 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A1122   Length              0005 (5)\n+3A1124   Flags               01 (1) 'Modification'\n+3A1125   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A1129 PAYLOAD\n+\n+3A2A81 DATA DESCRIPTOR       08074B50 (134695760)\n+3A2A85 CRC                   B0C01FD3 (2965381075)\n+3A2A89 Compressed Size       00001958 (6488)\n+3A2A8D Uncompressed Size     00001958 (6488)\n+\n+3A2A91 LOCAL HEADER #1053    04034B50 (67324752)\n+3A2A95 Extract Zip Spec      14 (20) '2.0'\n+3A2A96 Extract OS            00 (0) 'MS-DOS'\n+3A2A97 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3A2A99 Compression Method    0000 (0) 'Stored'\n+3A2A9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A2A9F CRC                   00000000 (0)\n+3A2AA3 Compressed Size       00000000 (0)\n+3A2AA7 Uncompressed Size     00000000 (0)\n+3A2AAB Filename Length       0037 (55)\n+3A2AAD Extra Length          0009 (9)\n+3A2AAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A2AAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A2AE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A2AE8   Length              0005 (5)\n+3A2AEA   Flags               01 (1) 'Modification'\n+3A2AEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A2AEF PAYLOAD\n+\n+3A4819 DATA DESCRIPTOR       08074B50 (134695760)\n+3A481D CRC                   BBC3A492 (3150161042)\n+3A4821 Compressed Size       00001D2A (7466)\n+3A4825 Uncompressed Size     00001D2A (7466)\n+\n+3A4829 LOCAL HEADER #1054    04034B50 (67324752)\n+3A482D Extract Zip Spec      14 (20) '2.0'\n+3A482E Extract OS            00 (0) 'MS-DOS'\n+3A482F General Purpose Flag  0000 (0)\n+3A4831 Compression Method    0000 (0) 'Stored'\n+3A4833 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A4837 CRC                   00000000 (0)\n+3A483B Compressed Size       00000000 (0)\n+3A483F Uncompressed Size     00000000 (0)\n+3A4843 Filename Length       0020 (32)\n+3A4845 Extra Length          0009 (9)\n+3A4847 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A4847: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A4867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A4869   Length              0005 (5)\n+3A486B   Flags               01 (1) 'Modification'\n+3A486C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3A4870 LOCAL HEADER #1055    04034B50 (67324752)\n+3A4874 Extract Zip Spec      14 (20) '2.0'\n+3A4875 Extract OS            00 (0) 'MS-DOS'\n+3A4876 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3A4878 Compression Method    0000 (0) 'Stored'\n+3A487A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A487E CRC                   00000000 (0)\n+3A4882 Compressed Size       00000000 (0)\n+3A4886 Uncompressed Size     00000000 (0)\n+3A488A Filename Length       002E (46)\n+3A488C Extra Length          0009 (9)\n+3A488E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A488E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A48BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A48BE   Length              0005 (5)\n+3A48C0   Flags               01 (1) 'Modification'\n+3A48C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A48C5 PAYLOAD\n+\n+3A50F8 DATA DESCRIPTOR       08074B50 (134695760)\n+3A50FC CRC                   FB06EFC4 (4211535812)\n+3A5100 Compressed Size       00000833 (2099)\n+3A5104 Uncompressed Size     00000833 (2099)\n+\n+3A5108 LOCAL HEADER #1056    04034B50 (67324752)\n+3A510C Extract Zip Spec      14 (20) '2.0'\n+3A510D Extract OS            00 (0) 'MS-DOS'\n+3A510E General Purpose Flag  0000 (0)\n+3A5110 Compression Method    0000 (0) 'Stored'\n+3A5112 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A5116 CRC                   00000000 (0)\n+3A511A Compressed Size       00000000 (0)\n+3A511E Uncompressed Size     00000000 (0)\n+3A5122 Filename Length       001E (30)\n+3A5124 Extra Length          0009 (9)\n+3A5126 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A5126: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A5144 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A5146   Length              0005 (5)\n+3A5148   Flags               01 (1) 'Modification'\n+3A5149   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3A514D LOCAL HEADER #1057    04034B50 (67324752)\n+3A5151 Extract Zip Spec      14 (20) '2.0'\n+3A5152 Extract OS            00 (0) 'MS-DOS'\n+3A5153 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3A5155 Compression Method    0000 (0) 'Stored'\n+3A5157 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3A515B CRC                   00000000 (0)\n+3A515F Compressed Size       00000000 (0)\n+3A5163 Uncompressed Size     00000000 (0)\n+3A5167 Filename Length       0038 (56)\n+3A5169 Extra Length          0009 (9)\n+3A516B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3A516B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3A51A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3A51A5   Length              0005 (5)\n+3A51A7   Flags               01 (1) 'Modification'\n+3A51A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3A51AC PAYLOAD\n+\n+3AC794 DATA DESCRIPTOR       08074B50 (134695760)\n+3AC798 CRC                   25A2615A (631398746)\n+3AC79C Compressed Size       000075E8 (30184)\n+3AC7A0 Uncompressed Size     000075E8 (30184)\n+\n+3AC7A4 LOCAL HEADER #1058    04034B50 (67324752)\n+3AC7A8 Extract Zip Spec      14 (20) '2.0'\n+3AC7A9 Extract OS            00 (0) 'MS-DOS'\n+3AC7AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3AC7AC Compression Method    0000 (0) 'Stored'\n+3AC7AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AC7B2 CRC                   00000000 (0)\n+3AC7B6 Compressed Size       00000000 (0)\n+3AC7BA Uncompressed Size     00000000 (0)\n+3AC7BE Filename Length       0037 (55)\n+3AC7C0 Extra Length          0009 (9)\n+3AC7C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AC7C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AC7F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AC7FB   Length              0005 (5)\n+3AC7FD   Flags               01 (1) 'Modification'\n+3AC7FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3AC802 PAYLOAD\n+\n+3AEB7B DATA DESCRIPTOR       08074B50 (134695760)\n+3AEB7F CRC                   3773BB53 (930331475)\n+3AEB83 Compressed Size       00002379 (9081)\n+3AEB87 Uncompressed Size     00002379 (9081)\n+\n+3AEB8B LOCAL HEADER #1059    04034B50 (67324752)\n+3AEB8F Extract Zip Spec      14 (20) '2.0'\n+3AEB90 Extract OS            00 (0) 'MS-DOS'\n+3AEB91 General Purpose Flag  0000 (0)\n+3AEB93 Compression Method    0000 (0) 'Stored'\n+3AEB95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AEB99 CRC                   00000000 (0)\n+3AEB9D Compressed Size       00000000 (0)\n+3AEBA1 Uncompressed Size     00000000 (0)\n+3AEBA5 Filename Length       001E (30)\n+3AEBA7 Extra Length          0009 (9)\n+3AEBA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AEBA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AEBC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AEBC9   Length              0005 (5)\n+3AEBCB   Flags               01 (1) 'Modification'\n+3AEBCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3AEBD0 LOCAL HEADER #1060    04034B50 (67324752)\n+3AEBD4 Extract Zip Spec      14 (20) '2.0'\n+3AEBD5 Extract OS            00 (0) 'MS-DOS'\n+3AEBD6 General Purpose Flag  0000 (0)\n+3AEBD8 Compression Method    0000 (0) 'Stored'\n+3AEBDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AEBDE CRC                   00000000 (0)\n+3AEBE2 Compressed Size       00000000 (0)\n+3AEBE6 Uncompressed Size     00000000 (0)\n+3AEBEA Filename Length       0025 (37)\n+3AEBEC Extra Length          0009 (9)\n+3AEBEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AEBEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AEC13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AEC15   Length              0005 (5)\n+3AEC17   Flags               01 (1) 'Modification'\n+3AEC18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3AEC1C LOCAL HEADER #1061    04034B50 (67324752)\n+3AEC20 Extract Zip Spec      14 (20) '2.0'\n+3AEC21 Extract OS            00 (0) 'MS-DOS'\n+3AEC22 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3AEC24 Compression Method    0000 (0) 'Stored'\n+3AEC26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3AEC2A CRC                   00000000 (0)\n+3AEC2E Compressed Size       00000000 (0)\n+3AEC32 Uncompressed Size     00000000 (0)\n+3AEC36 Filename Length       0044 (68)\n+3AEC38 Extra Length          0009 (9)\n+3AEC3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3AEC3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3AEC7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3AEC80   Length              0005 (5)\n+3AEC82   Flags               01 (1) 'Modification'\n+3AEC83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3AEC87 PAYLOAD\n+\n+3B0823 DATA DESCRIPTOR       08074B50 (134695760)\n+3B0827 CRC                   A679ECEF (2793008367)\n+3B082B Compressed Size       00001B9C (7068)\n+3B082F Uncompressed Size     00001B9C (7068)\n+\n+3B0833 LOCAL HEADER #1062    04034B50 (67324752)\n+3B0837 Extract Zip Spec      14 (20) '2.0'\n+3B0838 Extract OS            00 (0) 'MS-DOS'\n+3B0839 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B083B Compression Method    0000 (0) 'Stored'\n+3B083D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B0841 CRC                   00000000 (0)\n+3B0845 Compressed Size       00000000 (0)\n+3B0849 Uncompressed Size     00000000 (0)\n+3B084D Filename Length       004B (75)\n+3B084F Extra Length          0009 (9)\n+3B0851 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B0851: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B089C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B089E   Length              0005 (5)\n+3B08A0   Flags               01 (1) 'Modification'\n+3B08A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B08A5 PAYLOAD\n+\n+3B0DF9 DATA DESCRIPTOR       08074B50 (134695760)\n+3B0DFD CRC                   8FA8BF90 (2410200976)\n+3B0E01 Compressed Size       00000554 (1364)\n+3B0E05 Uncompressed Size     00000554 (1364)\n+\n+3B0E09 LOCAL HEADER #1063    04034B50 (67324752)\n+3B0E0D Extract Zip Spec      14 (20) '2.0'\n+3B0E0E Extract OS            00 (0) 'MS-DOS'\n+3B0E0F General Purpose Flag  0000 (0)\n+3B0E11 Compression Method    0000 (0) 'Stored'\n+3B0E13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B0E17 CRC                   00000000 (0)\n+3B0E1B Compressed Size       00000000 (0)\n+3B0E1F Uncompressed Size     00000000 (0)\n+3B0E23 Filename Length       0026 (38)\n+3B0E25 Extra Length          0009 (9)\n+3B0E27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B0E27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B0E4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B0E4F   Length              0005 (5)\n+3B0E51   Flags               01 (1) 'Modification'\n+3B0E52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3B0E56 LOCAL HEADER #1064    04034B50 (67324752)\n+3B0E5A Extract Zip Spec      14 (20) '2.0'\n+3B0E5B Extract OS            00 (0) 'MS-DOS'\n+3B0E5C General Purpose Flag  0000 (0)\n+3B0E5E Compression Method    0000 (0) 'Stored'\n+3B0E60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B0E64 CRC                   00000000 (0)\n+3B0E68 Compressed Size       00000000 (0)\n+3B0E6C Uncompressed Size     00000000 (0)\n+3B0E70 Filename Length       002D (45)\n+3B0E72 Extra Length          0009 (9)\n+3B0E74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B0E74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B0EA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B0EA3   Length              0005 (5)\n+3B0EA5   Flags               01 (1) 'Modification'\n+3B0EA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3B0EAA LOCAL HEADER #1065    04034B50 (67324752)\n+3B0EAE Extract Zip Spec      14 (20) '2.0'\n+3B0EAF Extract OS            00 (0) 'MS-DOS'\n+3B0EB0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B0EB2 Compression Method    0000 (0) 'Stored'\n+3B0EB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B0EB8 CRC                   00000000 (0)\n+3B0EBC Compressed Size       00000000 (0)\n+3B0EC0 Uncompressed Size     00000000 (0)\n+3B0EC4 Filename Length       004C (76)\n+3B0EC6 Extra Length          0009 (9)\n+3B0EC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B0EC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B0F14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B0F16   Length              0005 (5)\n+3B0F18   Flags               01 (1) 'Modification'\n+3B0F19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B0F1D PAYLOAD\n+\n+3B3E49 DATA DESCRIPTOR       08074B50 (134695760)\n+3B3E4D CRC                   86E4A798 (2263132056)\n+3B3E51 Compressed Size       00002F2C (12076)\n+3B3E55 Uncompressed Size     00002F2C (12076)\n+\n+3B3E59 LOCAL HEADER #1066    04034B50 (67324752)\n+3B3E5D Extract Zip Spec      14 (20) '2.0'\n+3B3E5E Extract OS            00 (0) 'MS-DOS'\n+3B3E5F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B3E61 Compression Method    0000 (0) 'Stored'\n+3B3E63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B3E67 CRC                   00000000 (0)\n+3B3E6B Compressed Size       00000000 (0)\n+3B3E6F Uncompressed Size     00000000 (0)\n+3B3E73 Filename Length       0053 (83)\n+3B3E75 Extra Length          0009 (9)\n+3B3E77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B3E77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B3ECA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B3ECC   Length              0005 (5)\n+3B3ECE   Flags               01 (1) 'Modification'\n+3B3ECF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B3ED3 PAYLOAD\n+\n+3B440C DATA DESCRIPTOR       08074B50 (134695760)\n+3B4410 CRC                   4296B4B4 (1117172916)\n+3B4414 Compressed Size       00000539 (1337)\n+3B4418 Uncompressed Size     00000539 (1337)\n+\n+3B441C LOCAL HEADER #1067    04034B50 (67324752)\n+3B4420 Extract Zip Spec      14 (20) '2.0'\n+3B4421 Extract OS            00 (0) 'MS-DOS'\n+3B4422 General Purpose Flag  0000 (0)\n+3B4424 Compression Method    0000 (0) 'Stored'\n+3B4426 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B442A CRC                   00000000 (0)\n+3B442E Compressed Size       00000000 (0)\n+3B4432 Uncompressed Size     00000000 (0)\n+3B4436 Filename Length       002B (43)\n+3B4438 Extra Length          0009 (9)\n+3B443A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B443A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B4465 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B4467   Length              0005 (5)\n+3B4469   Flags               01 (1) 'Modification'\n+3B446A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3B446E LOCAL HEADER #1068    04034B50 (67324752)\n+3B4472 Extract Zip Spec      14 (20) '2.0'\n+3B4473 Extract OS            00 (0) 'MS-DOS'\n+3B4474 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B4476 Compression Method    0000 (0) 'Stored'\n+3B4478 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B447C CRC                   00000000 (0)\n+3B4480 Compressed Size       00000000 (0)\n+3B4484 Uncompressed Size     00000000 (0)\n+3B4488 Filename Length       0048 (72)\n+3B448A Extra Length          0009 (9)\n+3B448C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B448C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B44D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B44D6   Length              0005 (5)\n+3B44D8   Flags               01 (1) 'Modification'\n+3B44D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B44DD PAYLOAD\n+\n+3B6131 DATA DESCRIPTOR       08074B50 (134695760)\n+3B6135 CRC                   B44A5E3E (3024772670)\n+3B6139 Compressed Size       00001C54 (7252)\n+3B613D Uncompressed Size     00001C54 (7252)\n+\n+3B6141 LOCAL HEADER #1069    04034B50 (67324752)\n+3B6145 Extract Zip Spec      14 (20) '2.0'\n+3B6146 Extract OS            00 (0) 'MS-DOS'\n+3B6147 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B6149 Compression Method    0000 (0) 'Stored'\n+3B614B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B614F CRC                   00000000 (0)\n+3B6153 Compressed Size       00000000 (0)\n+3B6157 Uncompressed Size     00000000 (0)\n+3B615B Filename Length       004F (79)\n+3B615D Extra Length          0009 (9)\n+3B615F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B615F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B61AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B61B0   Length              0005 (5)\n+3B61B2   Flags               01 (1) 'Modification'\n+3B61B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B61B7 PAYLOAD\n+\n+3B6735 DATA DESCRIPTOR       08074B50 (134695760)\n+3B6739 CRC                   2C654259 (744833625)\n+3B673D Compressed Size       0000057E (1406)\n+3B6741 Uncompressed Size     0000057E (1406)\n+\n+3B6745 LOCAL HEADER #1070    04034B50 (67324752)\n+3B6749 Extract Zip Spec      14 (20) '2.0'\n+3B674A Extract OS            00 (0) 'MS-DOS'\n+3B674B General Purpose Flag  0000 (0)\n+3B674D Compression Method    0000 (0) 'Stored'\n+3B674F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B6753 CRC                   00000000 (0)\n+3B6757 Compressed Size       00000000 (0)\n+3B675B Uncompressed Size     00000000 (0)\n+3B675F Filename Length       002C (44)\n+3B6761 Extra Length          0009 (9)\n+3B6763 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B6763: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B678F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B6791   Length              0005 (5)\n+3B6793   Flags               01 (1) 'Modification'\n+3B6794   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3B6798 LOCAL HEADER #1071    04034B50 (67324752)\n+3B679C Extract Zip Spec      14 (20) '2.0'\n+3B679D Extract OS            00 (0) 'MS-DOS'\n+3B679E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B67A0 Compression Method    0000 (0) 'Stored'\n+3B67A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B67A6 CRC                   00000000 (0)\n+3B67AA Compressed Size       00000000 (0)\n+3B67AE Uncompressed Size     00000000 (0)\n+3B67B2 Filename Length       004A (74)\n+3B67B4 Extra Length          0009 (9)\n+3B67B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B67B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B6800 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B6802   Length              0005 (5)\n+3B6804   Flags               01 (1) 'Modification'\n+3B6805   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B6809 PAYLOAD\n+\n+3B724D DATA DESCRIPTOR       08074B50 (134695760)\n+3B7251 CRC                   F13A996B (4047149419)\n+3B7255 Compressed Size       00000A44 (2628)\n+3B7259 Uncompressed Size     00000A44 (2628)\n+\n+3B725D LOCAL HEADER #1072    04034B50 (67324752)\n+3B7261 Extract Zip Spec      14 (20) '2.0'\n+3B7262 Extract OS            00 (0) 'MS-DOS'\n+3B7263 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3B7265 Compression Method    0000 (0) 'Stored'\n+3B7267 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3B726B CRC                   00000000 (0)\n+3B726F Compressed Size       00000000 (0)\n+3B7273 Uncompressed Size     00000000 (0)\n+3B7277 Filename Length       004A (74)\n+3B7279 Extra Length          0009 (9)\n+3B727B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3B727B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3B72C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3B72C7   Length              0005 (5)\n+3B72C9   Flags               01 (1) 'Modification'\n+3B72CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3B72CE PAYLOAD\n+\n+3BA966 DATA DESCRIPTOR       08074B50 (134695760)\n+3BA96A CRC                   2B568850 (727091280)\n+3BA96E Compressed Size       00003698 (13976)\n+3BA972 Uncompressed Size     00003698 (13976)\n+\n+3BA976 LOCAL HEADER #1073    04034B50 (67324752)\n+3BA97A Extract Zip Spec      14 (20) '2.0'\n+3BA97B Extract OS            00 (0) 'MS-DOS'\n+3BA97C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BA97E Compression Method    0000 (0) 'Stored'\n+3BA980 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BA984 CRC                   00000000 (0)\n+3BA988 Compressed Size       00000000 (0)\n+3BA98C Uncompressed Size     00000000 (0)\n+3BA990 Filename Length       0051 (81)\n+3BA992 Extra Length          0009 (9)\n+3BA994 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BA994: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BA9E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BA9E7   Length              0005 (5)\n+3BA9E9   Flags               01 (1) 'Modification'\n+3BA9EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BA9EE PAYLOAD\n+\n+3BB114 DATA DESCRIPTOR       08074B50 (134695760)\n+3BB118 CRC                   78482BCF (2017995727)\n+3BB11C Compressed Size       00000726 (1830)\n+3BB120 Uncompressed Size     00000726 (1830)\n+\n+3BB124 LOCAL HEADER #1074    04034B50 (67324752)\n+3BB128 Extract Zip Spec      14 (20) '2.0'\n+3BB129 Extract OS            00 (0) 'MS-DOS'\n+3BB12A General Purpose Flag  0000 (0)\n+3BB12C Compression Method    0000 (0) 'Stored'\n+3BB12E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BB132 CRC                   00000000 (0)\n+3BB136 Compressed Size       00000000 (0)\n+3BB13A Uncompressed Size     00000000 (0)\n+3BB13E Filename Length       0030 (48)\n+3BB140 Extra Length          0009 (9)\n+3BB142 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BB142: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BB172 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BB174   Length              0005 (5)\n+3BB176   Flags               01 (1) 'Modification'\n+3BB177   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3BB17B LOCAL HEADER #1075    04034B50 (67324752)\n+3BB17F Extract Zip Spec      14 (20) '2.0'\n+3BB180 Extract OS            00 (0) 'MS-DOS'\n+3BB181 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BB183 Compression Method    0000 (0) 'Stored'\n+3BB185 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BB189 CRC                   00000000 (0)\n+3BB18D Compressed Size       00000000 (0)\n+3BB191 Uncompressed Size     00000000 (0)\n+3BB195 Filename Length       0042 (66)\n+3BB197 Extra Length          0009 (9)\n+3BB199 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BB199: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BB1DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BB1DD   Length              0005 (5)\n+3BB1DF   Flags               01 (1) 'Modification'\n+3BB1E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BB1E4 PAYLOAD\n+\n+3BC664 DATA DESCRIPTOR       08074B50 (134695760)\n+3BC668 CRC                   BB1EE9E9 (3139365353)\n+3BC66C Compressed Size       00001480 (5248)\n+3BC670 Uncompressed Size     00001480 (5248)\n+\n+3BC674 LOCAL HEADER #1076    04034B50 (67324752)\n+3BC678 Extract Zip Spec      14 (20) '2.0'\n+3BC679 Extract OS            00 (0) 'MS-DOS'\n+3BC67A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BC67C Compression Method    0000 (0) 'Stored'\n+3BC67E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BC682 CRC                   00000000 (0)\n+3BC686 Compressed Size       00000000 (0)\n+3BC68A Uncompressed Size     00000000 (0)\n+3BC68E Filename Length       0052 (82)\n+3BC690 Extra Length          0009 (9)\n+3BC692 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BC692: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BC6E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BC6E6   Length              0005 (5)\n+3BC6E8   Flags               01 (1) 'Modification'\n+3BC6E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BC6ED PAYLOAD\n+\n+3BD7BE DATA DESCRIPTOR       08074B50 (134695760)\n+3BD7C2 CRC                   E1D762AB (3788989099)\n+3BD7C6 Compressed Size       000010D1 (4305)\n+3BD7CA Uncompressed Size     000010D1 (4305)\n+\n+3BD7CE LOCAL HEADER #1077    04034B50 (67324752)\n+3BD7D2 Extract Zip Spec      14 (20) '2.0'\n+3BD7D3 Extract OS            00 (0) 'MS-DOS'\n+3BD7D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BD7D6 Compression Method    0000 (0) 'Stored'\n+3BD7D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BD7DC CRC                   00000000 (0)\n+3BD7E0 Compressed Size       00000000 (0)\n+3BD7E4 Uncompressed Size     00000000 (0)\n+3BD7E8 Filename Length       0059 (89)\n+3BD7EA Extra Length          0009 (9)\n+3BD7EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BD7EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BD845 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BD847   Length              0005 (5)\n+3BD849   Flags               01 (1) 'Modification'\n+3BD84A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BD84E PAYLOAD\n+\n+3BDEBE DATA DESCRIPTOR       08074B50 (134695760)\n+3BDEC2 CRC                   4843AF3D (1212395325)\n+3BDEC6 Compressed Size       00000670 (1648)\n+3BDECA Uncompressed Size     00000670 (1648)\n+\n+3BDECE LOCAL HEADER #1078    04034B50 (67324752)\n+3BDED2 Extract Zip Spec      14 (20) '2.0'\n+3BDED3 Extract OS            00 (0) 'MS-DOS'\n+3BDED4 General Purpose Flag  0000 (0)\n+3BDED6 Compression Method    0000 (0) 'Stored'\n+3BDED8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BDEDC CRC                   00000000 (0)\n+3BDEE0 Compressed Size       00000000 (0)\n+3BDEE4 Uncompressed Size     00000000 (0)\n+3BDEE8 Filename Length       001B (27)\n+3BDEEA Extra Length          0009 (9)\n+3BDEEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BDEEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BDF07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BDF09   Length              0005 (5)\n+3BDF0B   Flags               01 (1) 'Modification'\n+3BDF0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3BDF10 LOCAL HEADER #1079    04034B50 (67324752)\n+3BDF14 Extract Zip Spec      14 (20) '2.0'\n+3BDF15 Extract OS            00 (0) 'MS-DOS'\n+3BDF16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BDF18 Compression Method    0000 (0) 'Stored'\n+3BDF1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BDF1E CRC                   00000000 (0)\n+3BDF22 Compressed Size       00000000 (0)\n+3BDF26 Uncompressed Size     00000000 (0)\n+3BDF2A Filename Length       0029 (41)\n+3BDF2C Extra Length          0009 (9)\n+3BDF2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BDF2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BDF57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BDF59   Length              0005 (5)\n+3BDF5B   Flags               01 (1) 'Modification'\n+3BDF5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BDF60 PAYLOAD\n+\n+3BE3F7 DATA DESCRIPTOR       08074B50 (134695760)\n+3BE3FB CRC                   14FCC408 (352109576)\n+3BE3FF Compressed Size       00000497 (1175)\n+3BE403 Uncompressed Size     00000497 (1175)\n+\n+3BE407 LOCAL HEADER #1080    04034B50 (67324752)\n+3BE40B Extract Zip Spec      14 (20) '2.0'\n+3BE40C Extract OS            00 (0) 'MS-DOS'\n+3BE40D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BE40F Compression Method    0000 (0) 'Stored'\n+3BE411 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BE415 CRC                   00000000 (0)\n+3BE419 Compressed Size       00000000 (0)\n+3BE41D Uncompressed Size     00000000 (0)\n+3BE421 Filename Length       0024 (36)\n+3BE423 Extra Length          0009 (9)\n+3BE425 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BE425: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BE449 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BE44B   Length              0005 (5)\n+3BE44D   Flags               01 (1) 'Modification'\n+3BE44E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BE452 PAYLOAD\n+\n+3BF567 DATA DESCRIPTOR       08074B50 (134695760)\n+3BF56B CRC                   6D55499F (1834305951)\n+3BF56F Compressed Size       00001115 (4373)\n+3BF573 Uncompressed Size     00001115 (4373)\n+\n+3BF577 LOCAL HEADER #1081    04034B50 (67324752)\n+3BF57B Extract Zip Spec      14 (20) '2.0'\n+3BF57C Extract OS            00 (0) 'MS-DOS'\n+3BF57D General Purpose Flag  0000 (0)\n+3BF57F Compression Method    0000 (0) 'Stored'\n+3BF581 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BF585 CRC                   00000000 (0)\n+3BF589 Compressed Size       00000000 (0)\n+3BF58D Uncompressed Size     00000000 (0)\n+3BF591 Filename Length       0021 (33)\n+3BF593 Extra Length          0009 (9)\n+3BF595 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BF595: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BF5B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BF5B8   Length              0005 (5)\n+3BF5BA   Flags               01 (1) 'Modification'\n+3BF5BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3BF5BF LOCAL HEADER #1082    04034B50 (67324752)\n+3BF5C3 Extract Zip Spec      14 (20) '2.0'\n+3BF5C4 Extract OS            00 (0) 'MS-DOS'\n+3BF5C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3BF5C7 Compression Method    0000 (0) 'Stored'\n+3BF5C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3BF5CD CRC                   00000000 (0)\n+3BF5D1 Compressed Size       00000000 (0)\n+3BF5D5 Uncompressed Size     00000000 (0)\n+3BF5D9 Filename Length       0034 (52)\n+3BF5DB Extra Length          0009 (9)\n+3BF5DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3BF5DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3BF611 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3BF613   Length              0005 (5)\n+3BF615   Flags               01 (1) 'Modification'\n+3BF616   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3BF61A PAYLOAD\n+\n+3C0810 DATA DESCRIPTOR       08074B50 (134695760)\n+3C0814 CRC                   88CEDD40 (2295258432)\n+3C0818 Compressed Size       000011F6 (4598)\n+3C081C Uncompressed Size     000011F6 (4598)\n+\n+3C0820 LOCAL HEADER #1083    04034B50 (67324752)\n+3C0824 Extract Zip Spec      14 (20) '2.0'\n+3C0825 Extract OS            00 (0) 'MS-DOS'\n+3C0826 General Purpose Flag  0000 (0)\n+3C0828 Compression Method    0000 (0) 'Stored'\n+3C082A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C082E CRC                   00000000 (0)\n+3C0832 Compressed Size       00000000 (0)\n+3C0836 Uncompressed Size     00000000 (0)\n+3C083A Filename Length       0023 (35)\n+3C083C Extra Length          0009 (9)\n+3C083E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C083E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C0861 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C0863   Length              0005 (5)\n+3C0865   Flags               01 (1) 'Modification'\n+3C0866   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3C086A LOCAL HEADER #1084    04034B50 (67324752)\n+3C086E Extract Zip Spec      14 (20) '2.0'\n+3C086F Extract OS            00 (0) 'MS-DOS'\n+3C0870 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C0872 Compression Method    0000 (0) 'Stored'\n+3C0874 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C0878 CRC                   00000000 (0)\n+3C087C Compressed Size       00000000 (0)\n+3C0880 Uncompressed Size     00000000 (0)\n+3C0884 Filename Length       0038 (56)\n+3C0886 Extra Length          0009 (9)\n+3C0888 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C0888: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C08C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C08C2   Length              0005 (5)\n+3C08C4   Flags               01 (1) 'Modification'\n+3C08C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C08C9 PAYLOAD\n+\n+3C1898 DATA DESCRIPTOR       08074B50 (134695760)\n+3C189C CRC                   75FBF59C (1979446684)\n+3C18A0 Compressed Size       00000FCF (4047)\n+3C18A4 Uncompressed Size     00000FCF (4047)\n+\n+3C18A8 LOCAL HEADER #1085    04034B50 (67324752)\n+3C18AC Extract Zip Spec      14 (20) '2.0'\n+3C18AD Extract OS            00 (0) 'MS-DOS'\n+3C18AE General Purpose Flag  0000 (0)\n+3C18B0 Compression Method    0000 (0) 'Stored'\n+3C18B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C18B6 CRC                   00000000 (0)\n+3C18BA Compressed Size       00000000 (0)\n+3C18BE Uncompressed Size     00000000 (0)\n+3C18C2 Filename Length       0022 (34)\n+3C18C4 Extra Length          0009 (9)\n+3C18C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C18C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C18E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C18EA   Length              0005 (5)\n+3C18EC   Flags               01 (1) 'Modification'\n+3C18ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3C18F1 LOCAL HEADER #1086    04034B50 (67324752)\n+3C18F5 Extract Zip Spec      14 (20) '2.0'\n+3C18F6 Extract OS            00 (0) 'MS-DOS'\n+3C18F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C18F9 Compression Method    0000 (0) 'Stored'\n+3C18FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C18FF CRC                   00000000 (0)\n+3C1903 Compressed Size       00000000 (0)\n+3C1907 Uncompressed Size     00000000 (0)\n+3C190B Filename Length       0036 (54)\n+3C190D Extra Length          0009 (9)\n+3C190F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C190F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C1945 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C1947   Length              0005 (5)\n+3C1949   Flags               01 (1) 'Modification'\n+3C194A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C194E PAYLOAD\n+\n+3C22E0 DATA DESCRIPTOR       08074B50 (134695760)\n+3C22E4 CRC                   2AFEDAAE (721345198)\n+3C22E8 Compressed Size       00000992 (2450)\n+3C22EC Uncompressed Size     00000992 (2450)\n+\n+3C22F0 LOCAL HEADER #1087    04034B50 (67324752)\n+3C22F4 Extract Zip Spec      14 (20) '2.0'\n+3C22F5 Extract OS            00 (0) 'MS-DOS'\n+3C22F6 General Purpose Flag  0000 (0)\n+3C22F8 Compression Method    0000 (0) 'Stored'\n+3C22FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C22FE CRC                   00000000 (0)\n+3C2302 Compressed Size       00000000 (0)\n+3C2306 Uncompressed Size     00000000 (0)\n+3C230A Filename Length       0017 (23)\n+3C230C Extra Length          0009 (9)\n+3C230E Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C230E: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C2325 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C2327   Length              0005 (5)\n+3C2329   Flags               01 (1) 'Modification'\n+3C232A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3C232E LOCAL HEADER #1088    04034B50 (67324752)\n+3C2332 Extract Zip Spec      14 (20) '2.0'\n+3C2333 Extract OS            00 (0) 'MS-DOS'\n+3C2334 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C2336 Compression Method    0000 (0) 'Stored'\n+3C2338 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C233C CRC                   00000000 (0)\n+3C2340 Compressed Size       00000000 (0)\n+3C2344 Uncompressed Size     00000000 (0)\n+3C2348 Filename Length       0033 (51)\n+3C234A Extra Length          0009 (9)\n+3C234C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C234C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C237F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C2381   Length              0005 (5)\n+3C2383   Flags               01 (1) 'Modification'\n+3C2384   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C2388 PAYLOAD\n+\n+3C3B06 DATA DESCRIPTOR       08074B50 (134695760)\n+3C3B0A CRC                   18AD9BF8 (414030840)\n+3C3B0E Compressed Size       0000177E (6014)\n+3C3B12 Uncompressed Size     0000177E (6014)\n+\n+3C3B16 LOCAL HEADER #1089    04034B50 (67324752)\n+3C3B1A Extract Zip Spec      14 (20) '2.0'\n+3C3B1B Extract OS            00 (0) 'MS-DOS'\n+3C3B1C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C3B1E Compression Method    0000 (0) 'Stored'\n+3C3B20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C3B24 CRC                   00000000 (0)\n+3C3B28 Compressed Size       00000000 (0)\n+3C3B2C Uncompressed Size     00000000 (0)\n+3C3B30 Filename Length       0034 (52)\n+3C3B32 Extra Length          0009 (9)\n+3C3B34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C3B34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C3B68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C3B6A   Length              0005 (5)\n+3C3B6C   Flags               01 (1) 'Modification'\n+3C3B6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C3B71 PAYLOAD\n+\n+3C40EF DATA DESCRIPTOR       08074B50 (134695760)\n+3C40F3 CRC                   1BB78BFC (465013756)\n+3C40F7 Compressed Size       0000057E (1406)\n+3C40FB Uncompressed Size     0000057E (1406)\n+\n+3C40FF LOCAL HEADER #1090    04034B50 (67324752)\n+3C4103 Extract Zip Spec      14 (20) '2.0'\n+3C4104 Extract OS            00 (0) 'MS-DOS'\n+3C4105 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C4107 Compression Method    0000 (0) 'Stored'\n+3C4109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C410D CRC                   00000000 (0)\n+3C4111 Compressed Size       00000000 (0)\n+3C4115 Uncompressed Size     00000000 (0)\n+3C4119 Filename Length       0031 (49)\n+3C411B Extra Length          0009 (9)\n+3C411D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C411D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C414E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C4150   Length              0005 (5)\n+3C4152   Flags               01 (1) 'Modification'\n+3C4153   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C4157 PAYLOAD\n+\n+3C45D9 DATA DESCRIPTOR       08074B50 (134695760)\n+3C45DD CRC                   163DDCF2 (373153010)\n+3C45E1 Compressed Size       00000482 (1154)\n+3C45E5 Uncompressed Size     00000482 (1154)\n+\n+3C45E9 LOCAL HEADER #1091    04034B50 (67324752)\n+3C45ED Extract Zip Spec      14 (20) '2.0'\n+3C45EE Extract OS            00 (0) 'MS-DOS'\n+3C45EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C45F1 Compression Method    0000 (0) 'Stored'\n+3C45F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C45F7 CRC                   00000000 (0)\n+3C45FB Compressed Size       00000000 (0)\n+3C45FF Uncompressed Size     00000000 (0)\n+3C4603 Filename Length       0021 (33)\n+3C4605 Extra Length          0009 (9)\n+3C4607 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C4607: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C4628 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C462A   Length              0005 (5)\n+3C462C   Flags               01 (1) 'Modification'\n+3C462D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C4631 PAYLOAD\n+\n+3C4C80 DATA DESCRIPTOR       08074B50 (134695760)\n+3C4C84 CRC                   6F7884D3 (1870169299)\n+3C4C88 Compressed Size       0000064F (1615)\n+3C4C8C Uncompressed Size     0000064F (1615)\n+\n+3C4C90 LOCAL HEADER #1092    04034B50 (67324752)\n+3C4C94 Extract Zip Spec      14 (20) '2.0'\n+3C4C95 Extract OS            00 (0) 'MS-DOS'\n+3C4C96 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C4C98 Compression Method    0000 (0) 'Stored'\n+3C4C9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C4C9E CRC                   00000000 (0)\n+3C4CA2 Compressed Size       00000000 (0)\n+3C4CA6 Uncompressed Size     00000000 (0)\n+3C4CAA Filename Length       002B (43)\n+3C4CAC Extra Length          0009 (9)\n+3C4CAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C4CAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C4CD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C4CDB   Length              0005 (5)\n+3C4CDD   Flags               01 (1) 'Modification'\n+3C4CDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C4CE2 PAYLOAD\n+\n+3C5600 DATA DESCRIPTOR       08074B50 (134695760)\n+3C5604 CRC                   7837B4D1 (2016916689)\n+3C5608 Compressed Size       0000091E (2334)\n+3C560C Uncompressed Size     0000091E (2334)\n+\n+3C5610 LOCAL HEADER #1093    04034B50 (67324752)\n+3C5614 Extract Zip Spec      14 (20) '2.0'\n+3C5615 Extract OS            00 (0) 'MS-DOS'\n+3C5616 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C5618 Compression Method    0000 (0) 'Stored'\n+3C561A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C561E CRC                   00000000 (0)\n+3C5622 Compressed Size       00000000 (0)\n+3C5626 Uncompressed Size     00000000 (0)\n+3C562A Filename Length       0029 (41)\n+3C562C Extra Length          0009 (9)\n+3C562E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C562E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C5657 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C5659   Length              0005 (5)\n+3C565B   Flags               01 (1) 'Modification'\n+3C565C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C5660 PAYLOAD\n+\n+3C6940 DATA DESCRIPTOR       08074B50 (134695760)\n+3C6944 CRC                   1FC70E2E (533138990)\n+3C6948 Compressed Size       000012E0 (4832)\n+3C694C Uncompressed Size     000012E0 (4832)\n+\n+3C6950 LOCAL HEADER #1094    04034B50 (67324752)\n+3C6954 Extract Zip Spec      14 (20) '2.0'\n+3C6955 Extract OS            00 (0) 'MS-DOS'\n+3C6956 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C6958 Compression Method    0000 (0) 'Stored'\n+3C695A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C695E CRC                   00000000 (0)\n+3C6962 Compressed Size       00000000 (0)\n+3C6966 Uncompressed Size     00000000 (0)\n+3C696A Filename Length       0028 (40)\n+3C696C Extra Length          0009 (9)\n+3C696E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C696E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C6996 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C6998   Length              0005 (5)\n+3C699A   Flags               01 (1) 'Modification'\n+3C699B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C699F PAYLOAD\n+\n+3C6E24 DATA DESCRIPTOR       08074B50 (134695760)\n+3C6E28 CRC                   34F679E6 (888568294)\n+3C6E2C Compressed Size       00000485 (1157)\n+3C6E30 Uncompressed Size     00000485 (1157)\n+\n+3C6E34 LOCAL HEADER #1095    04034B50 (67324752)\n+3C6E38 Extract Zip Spec      14 (20) '2.0'\n+3C6E39 Extract OS            00 (0) 'MS-DOS'\n+3C6E3A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C6E3C Compression Method    0000 (0) 'Stored'\n+3C6E3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C6E42 CRC                   00000000 (0)\n+3C6E46 Compressed Size       00000000 (0)\n+3C6E4A Uncompressed Size     00000000 (0)\n+3C6E4E Filename Length       0030 (48)\n+3C6E50 Extra Length          0009 (9)\n+3C6E52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C6E52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C6E82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C6E84   Length              0005 (5)\n+3C6E86   Flags               01 (1) 'Modification'\n+3C6E87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C6E8B PAYLOAD\n+\n+3C811A DATA DESCRIPTOR       08074B50 (134695760)\n+3C811E CRC                   A2725211 (2725401105)\n+3C8122 Compressed Size       0000128F (4751)\n+3C8126 Uncompressed Size     0000128F (4751)\n+\n+3C812A LOCAL HEADER #1096    04034B50 (67324752)\n+3C812E Extract Zip Spec      14 (20) '2.0'\n+3C812F Extract OS            00 (0) 'MS-DOS'\n+3C8130 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C8132 Compression Method    0000 (0) 'Stored'\n+3C8134 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C8138 CRC                   00000000 (0)\n+3C813C Compressed Size       00000000 (0)\n+3C8140 Uncompressed Size     00000000 (0)\n+3C8144 Filename Length       0026 (38)\n+3C8146 Extra Length          0009 (9)\n+3C8148 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C8148: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C816E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C8170   Length              0005 (5)\n+3C8172   Flags               01 (1) 'Modification'\n+3C8173   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C8177 PAYLOAD\n+\n+3C96B4 DATA DESCRIPTOR       08074B50 (134695760)\n+3C96B8 CRC                   646CD426 (1684853798)\n+3C96BC Compressed Size       0000153D (5437)\n+3C96C0 Uncompressed Size     0000153D (5437)\n+\n+3C96C4 LOCAL HEADER #1097    04034B50 (67324752)\n+3C96C8 Extract Zip Spec      14 (20) '2.0'\n+3C96C9 Extract OS            00 (0) 'MS-DOS'\n+3C96CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C96CC Compression Method    0000 (0) 'Stored'\n+3C96CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C96D2 CRC                   00000000 (0)\n+3C96D6 Compressed Size       00000000 (0)\n+3C96DA Uncompressed Size     00000000 (0)\n+3C96DE Filename Length       0033 (51)\n+3C96E0 Extra Length          0009 (9)\n+3C96E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C96E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C9715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C9717   Length              0005 (5)\n+3C9719   Flags               01 (1) 'Modification'\n+3C971A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C971E PAYLOAD\n+\n+3C9BFB DATA DESCRIPTOR       08074B50 (134695760)\n+3C9BFF CRC                   D4D0313F (3570413887)\n+3C9C03 Compressed Size       000004DD (1245)\n+3C9C07 Uncompressed Size     000004DD (1245)\n+\n+3C9C0B LOCAL HEADER #1098    04034B50 (67324752)\n+3C9C0F Extract Zip Spec      14 (20) '2.0'\n+3C9C10 Extract OS            00 (0) 'MS-DOS'\n+3C9C11 General Purpose Flag  0000 (0)\n+3C9C13 Compression Method    0000 (0) 'Stored'\n+3C9C15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C9C19 CRC                   00000000 (0)\n+3C9C1D Compressed Size       00000000 (0)\n+3C9C21 Uncompressed Size     00000000 (0)\n+3C9C25 Filename Length       001A (26)\n+3C9C27 Extra Length          0009 (9)\n+3C9C29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C9C29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C9C43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C9C45   Length              0005 (5)\n+3C9C47   Flags               01 (1) 'Modification'\n+3C9C48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3C9C4C LOCAL HEADER #1099    04034B50 (67324752)\n+3C9C50 Extract Zip Spec      14 (20) '2.0'\n+3C9C51 Extract OS            00 (0) 'MS-DOS'\n+3C9C52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3C9C54 Compression Method    0000 (0) 'Stored'\n+3C9C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3C9C5A CRC                   00000000 (0)\n+3C9C5E Compressed Size       00000000 (0)\n+3C9C62 Uncompressed Size     00000000 (0)\n+3C9C66 Filename Length       003A (58)\n+3C9C68 Extra Length          0009 (9)\n+3C9C6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3C9C6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3C9CA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3C9CA6   Length              0005 (5)\n+3C9CA8   Flags               01 (1) 'Modification'\n+3C9CA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3C9CAD PAYLOAD\n+\n+3CA73B DATA DESCRIPTOR       08074B50 (134695760)\n+3CA73F CRC                   42A6419F (1118192031)\n+3CA743 Compressed Size       00000A8E (2702)\n+3CA747 Uncompressed Size     00000A8E (2702)\n+\n+3CA74B LOCAL HEADER #1100    04034B50 (67324752)\n+3CA74F Extract Zip Spec      14 (20) '2.0'\n+3CA750 Extract OS            00 (0) 'MS-DOS'\n+3CA751 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CA753 Compression Method    0000 (0) 'Stored'\n+3CA755 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CA759 CRC                   00000000 (0)\n+3CA75D Compressed Size       00000000 (0)\n+3CA761 Uncompressed Size     00000000 (0)\n+3CA765 Filename Length       0045 (69)\n+3CA767 Extra Length          0009 (9)\n+3CA769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CA769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CA7AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CA7B0   Length              0005 (5)\n+3CA7B2   Flags               01 (1) 'Modification'\n+3CA7B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CA7B7 PAYLOAD\n+\n+3CB82D DATA DESCRIPTOR       08074B50 (134695760)\n+3CB831 CRC                   3EF8A330 (1056482096)\n+3CB835 Compressed Size       00001076 (4214)\n+3CB839 Uncompressed Size     00001076 (4214)\n+\n+3CB83D LOCAL HEADER #1101    04034B50 (67324752)\n+3CB841 Extract Zip Spec      14 (20) '2.0'\n+3CB842 Extract OS            00 (0) 'MS-DOS'\n+3CB843 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CB845 Compression Method    0000 (0) 'Stored'\n+3CB847 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CB84B CRC                   00000000 (0)\n+3CB84F Compressed Size       00000000 (0)\n+3CB853 Uncompressed Size     00000000 (0)\n+3CB857 Filename Length       0032 (50)\n+3CB859 Extra Length          0009 (9)\n+3CB85B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CB85B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CB88D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CB88F   Length              0005 (5)\n+3CB891   Flags               01 (1) 'Modification'\n+3CB892   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CB896 PAYLOAD\n+\n+3CBDB1 DATA DESCRIPTOR       08074B50 (134695760)\n+3CBDB5 CRC                   EEF0F134 (4008767796)\n+3CBDB9 Compressed Size       0000051B (1307)\n+3CBDBD Uncompressed Size     0000051B (1307)\n+\n+3CBDC1 LOCAL HEADER #1102    04034B50 (67324752)\n+3CBDC5 Extract Zip Spec      14 (20) '2.0'\n+3CBDC6 Extract OS            00 (0) 'MS-DOS'\n+3CBDC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CBDC9 Compression Method    0000 (0) 'Stored'\n+3CBDCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CBDCF CRC                   00000000 (0)\n+3CBDD3 Compressed Size       00000000 (0)\n+3CBDD7 Uncompressed Size     00000000 (0)\n+3CBDDB Filename Length       002E (46)\n+3CBDDD Extra Length          0009 (9)\n+3CBDDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CBDDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CBE0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CBE0F   Length              0005 (5)\n+3CBE11   Flags               01 (1) 'Modification'\n+3CBE12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CBE16 PAYLOAD\n+\n+3CC1C3 DATA DESCRIPTOR       08074B50 (134695760)\n+3CC1C7 CRC                   1D5DF166 (492695910)\n+3CC1CB Compressed Size       000003AD (941)\n+3CC1CF Uncompressed Size     000003AD (941)\n+\n+3CC1D3 LOCAL HEADER #1103    04034B50 (67324752)\n+3CC1D7 Extract Zip Spec      14 (20) '2.0'\n+3CC1D8 Extract OS            00 (0) 'MS-DOS'\n+3CC1D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CC1DB Compression Method    0000 (0) 'Stored'\n+3CC1DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CC1E1 CRC                   00000000 (0)\n+3CC1E5 Compressed Size       00000000 (0)\n+3CC1E9 Uncompressed Size     00000000 (0)\n+3CC1ED Filename Length       0035 (53)\n+3CC1EF Extra Length          0009 (9)\n+3CC1F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CC1F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CC226 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CC228   Length              0005 (5)\n+3CC22A   Flags               01 (1) 'Modification'\n+3CC22B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CC22F PAYLOAD\n+\n+3CC72E DATA DESCRIPTOR       08074B50 (134695760)\n+3CC732 CRC                   FAB44FD1 (4206120913)\n+3CC736 Compressed Size       000004FF (1279)\n+3CC73A Uncompressed Size     000004FF (1279)\n+\n+3CC73E LOCAL HEADER #1104    04034B50 (67324752)\n+3CC742 Extract Zip Spec      14 (20) '2.0'\n+3CC743 Extract OS            00 (0) 'MS-DOS'\n+3CC744 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CC746 Compression Method    0000 (0) 'Stored'\n+3CC748 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CC74C CRC                   00000000 (0)\n+3CC750 Compressed Size       00000000 (0)\n+3CC754 Uncompressed Size     00000000 (0)\n+3CC758 Filename Length       0030 (48)\n+3CC75A Extra Length          0009 (9)\n+3CC75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CC75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CC78C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CC78E   Length              0005 (5)\n+3CC790   Flags               01 (1) 'Modification'\n+3CC791   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CC795 PAYLOAD\n+\n+3CCDE2 DATA DESCRIPTOR       08074B50 (134695760)\n+3CCDE6 CRC                   0D3C7289 (222065289)\n+3CCDEA Compressed Size       0000064D (1613)\n+3CCDEE Uncompressed Size     0000064D (1613)\n+\n+3CCDF2 LOCAL HEADER #1105    04034B50 (67324752)\n+3CCDF6 Extract Zip Spec      14 (20) '2.0'\n+3CCDF7 Extract OS            00 (0) 'MS-DOS'\n+3CCDF8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3CCDFA Compression Method    0000 (0) 'Stored'\n+3CCDFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3CCE00 CRC                   00000000 (0)\n+3CCE04 Compressed Size       00000000 (0)\n+3CCE08 Uncompressed Size     00000000 (0)\n+3CCE0C Filename Length       002B (43)\n+3CCE0E Extra Length          0009 (9)\n+3CCE10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3CCE10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3CCE3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3CCE3D   Length              0005 (5)\n+3CCE3F   Flags               01 (1) 'Modification'\n+3CCE40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3CCE44 PAYLOAD\n+\n+3D0A81 DATA DESCRIPTOR       08074B50 (134695760)\n+3D0A85 CRC                   9A0F8216 (2584707606)\n+3D0A89 Compressed Size       00003C3D (15421)\n+3D0A8D Uncompressed Size     00003C3D (15421)\n+\n+3D0A91 LOCAL HEADER #1106    04034B50 (67324752)\n+3D0A95 Extract Zip Spec      14 (20) '2.0'\n+3D0A96 Extract OS            00 (0) 'MS-DOS'\n+3D0A97 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D0A99 Compression Method    0000 (0) 'Stored'\n+3D0A9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D0A9F CRC                   00000000 (0)\n+3D0AA3 Compressed Size       00000000 (0)\n+3D0AA7 Uncompressed Size     00000000 (0)\n+3D0AAB Filename Length       0033 (51)\n+3D0AAD Extra Length          0009 (9)\n+3D0AAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D0AAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D0AE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D0AE4   Length              0005 (5)\n+3D0AE6   Flags               01 (1) 'Modification'\n+3D0AE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D0AEB PAYLOAD\n+\n+3D0FCD DATA DESCRIPTOR       08074B50 (134695760)\n+3D0FD1 CRC                   5D4E898D (1565428109)\n+3D0FD5 Compressed Size       000004E2 (1250)\n+3D0FD9 Uncompressed Size     000004E2 (1250)\n+\n+3D0FDD LOCAL HEADER #1107    04034B50 (67324752)\n+3D0FE1 Extract Zip Spec      14 (20) '2.0'\n+3D0FE2 Extract OS            00 (0) 'MS-DOS'\n+3D0FE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D0FE5 Compression Method    0000 (0) 'Stored'\n+3D0FE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D0FEB CRC                   00000000 (0)\n+3D0FEF Compressed Size       00000000 (0)\n+3D0FF3 Uncompressed Size     00000000 (0)\n+3D0FF7 Filename Length       002E (46)\n+3D0FF9 Extra Length          0009 (9)\n+3D0FFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D0FFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D1029 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D102B   Length              0005 (5)\n+3D102D   Flags               01 (1) 'Modification'\n+3D102E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D1032 PAYLOAD\n+\n+3D3B5C DATA DESCRIPTOR       08074B50 (134695760)\n+3D3B60 CRC                   2CED0C75 (753732725)\n+3D3B64 Compressed Size       00002B2A (11050)\n+3D3B68 Uncompressed Size     00002B2A (11050)\n+\n+3D3B6C LOCAL HEADER #1108    04034B50 (67324752)\n+3D3B70 Extract Zip Spec      14 (20) '2.0'\n+3D3B71 Extract OS            00 (0) 'MS-DOS'\n+3D3B72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D3B74 Compression Method    0000 (0) 'Stored'\n+3D3B76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D3B7A CRC                   00000000 (0)\n+3D3B7E Compressed Size       00000000 (0)\n+3D3B82 Uncompressed Size     00000000 (0)\n+3D3B86 Filename Length       0036 (54)\n+3D3B88 Extra Length          0009 (9)\n+3D3B8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D3B8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D3BC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D3BC2   Length              0005 (5)\n+3D3BC4   Flags               01 (1) 'Modification'\n+3D3BC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D3BC9 PAYLOAD\n+\n+3D4839 DATA DESCRIPTOR       08074B50 (134695760)\n+3D483D CRC                   C38A081C (3280603164)\n+3D4841 Compressed Size       00000C70 (3184)\n+3D4845 Uncompressed Size     00000C70 (3184)\n+\n+3D4849 LOCAL HEADER #1109    04034B50 (67324752)\n+3D484D Extract Zip Spec      14 (20) '2.0'\n+3D484E Extract OS            00 (0) 'MS-DOS'\n+3D484F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D4851 Compression Method    0000 (0) 'Stored'\n+3D4853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D4857 CRC                   00000000 (0)\n+3D485B Compressed Size       00000000 (0)\n+3D485F Uncompressed Size     00000000 (0)\n+3D4863 Filename Length       0032 (50)\n+3D4865 Extra Length          0009 (9)\n+3D4867 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D4867: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D4899 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D489B   Length              0005 (5)\n+3D489D   Flags               01 (1) 'Modification'\n+3D489E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D48A2 PAYLOAD\n+\n+3D51A6 DATA DESCRIPTOR       08074B50 (134695760)\n+3D51AA CRC                   5D7F96AB (1568642731)\n+3D51AE Compressed Size       00000904 (2308)\n+3D51B2 Uncompressed Size     00000904 (2308)\n+\n+3D51B6 LOCAL HEADER #1110    04034B50 (67324752)\n+3D51BA Extract Zip Spec      14 (20) '2.0'\n+3D51BB Extract OS            00 (0) 'MS-DOS'\n+3D51BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D51BE Compression Method    0000 (0) 'Stored'\n+3D51C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D51C4 CRC                   00000000 (0)\n+3D51C8 Compressed Size       00000000 (0)\n+3D51CC Uncompressed Size     00000000 (0)\n+3D51D0 Filename Length       002F (47)\n+3D51D2 Extra Length          0009 (9)\n+3D51D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D51D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D5203 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D5205   Length              0005 (5)\n+3D5207   Flags               01 (1) 'Modification'\n+3D5208   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D520C PAYLOAD\n+\n+3D5A48 DATA DESCRIPTOR       08074B50 (134695760)\n+3D5A4C CRC                   509BAB75 (1352379253)\n+3D5A50 Compressed Size       0000083C (2108)\n+3D5A54 Uncompressed Size     0000083C (2108)\n+\n+3D5A58 LOCAL HEADER #1111    04034B50 (67324752)\n+3D5A5C Extract Zip Spec      14 (20) '2.0'\n+3D5A5D Extract OS            00 (0) 'MS-DOS'\n+3D5A5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D5A60 Compression Method    0000 (0) 'Stored'\n+3D5A62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D5A66 CRC                   00000000 (0)\n+3D5A6A Compressed Size       00000000 (0)\n+3D5A6E Uncompressed Size     00000000 (0)\n+3D5A72 Filename Length       0031 (49)\n+3D5A74 Extra Length          0009 (9)\n+3D5A76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D5A76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D5AA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D5AA9   Length              0005 (5)\n+3D5AAB   Flags               01 (1) 'Modification'\n+3D5AAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D5AB0 PAYLOAD\n+\n+3D6651 DATA DESCRIPTOR       08074B50 (134695760)\n+3D6655 CRC                   C02150D4 (3223408852)\n+3D6659 Compressed Size       00000BA1 (2977)\n+3D665D Uncompressed Size     00000BA1 (2977)\n+\n+3D6661 LOCAL HEADER #1112    04034B50 (67324752)\n+3D6665 Extract Zip Spec      14 (20) '2.0'\n+3D6666 Extract OS            00 (0) 'MS-DOS'\n+3D6667 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D6669 Compression Method    0000 (0) 'Stored'\n+3D666B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D666F CRC                   00000000 (0)\n+3D6673 Compressed Size       00000000 (0)\n+3D6677 Uncompressed Size     00000000 (0)\n+3D667B Filename Length       0036 (54)\n+3D667D Extra Length          0009 (9)\n+3D667F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D667F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D66B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D66B7   Length              0005 (5)\n+3D66B9   Flags               01 (1) 'Modification'\n+3D66BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D66BE PAYLOAD\n+\n+3D716C DATA DESCRIPTOR       08074B50 (134695760)\n+3D7170 CRC                   B34C7492 (3008132242)\n+3D7174 Compressed Size       00000AAE (2734)\n+3D7178 Uncompressed Size     00000AAE (2734)\n+\n+3D717C LOCAL HEADER #1113    04034B50 (67324752)\n+3D7180 Extract Zip Spec      14 (20) '2.0'\n+3D7181 Extract OS            00 (0) 'MS-DOS'\n+3D7182 General Purpose Flag  0000 (0)\n+3D7184 Compression Method    0000 (0) 'Stored'\n+3D7186 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D718A CRC                   00000000 (0)\n+3D718E Compressed Size       00000000 (0)\n+3D7192 Uncompressed Size     00000000 (0)\n+3D7196 Filename Length       0025 (37)\n+3D7198 Extra Length          0009 (9)\n+3D719A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D719A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D71BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D71C1   Length              0005 (5)\n+3D71C3   Flags               01 (1) 'Modification'\n+3D71C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3D71C8 LOCAL HEADER #1114    04034B50 (67324752)\n+3D71CC Extract Zip Spec      14 (20) '2.0'\n+3D71CD Extract OS            00 (0) 'MS-DOS'\n+3D71CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D71D0 Compression Method    0000 (0) 'Stored'\n+3D71D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D71D6 CRC                   00000000 (0)\n+3D71DA Compressed Size       00000000 (0)\n+3D71DE Uncompressed Size     00000000 (0)\n+3D71E2 Filename Length       0041 (65)\n+3D71E4 Extra Length          0009 (9)\n+3D71E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D71E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D7227 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D7229   Length              0005 (5)\n+3D722B   Flags               01 (1) 'Modification'\n+3D722C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D7230 PAYLOAD\n+\n+3D7CBE DATA DESCRIPTOR       08074B50 (134695760)\n+3D7CC2 CRC                   812905CA (2166949322)\n+3D7CC6 Compressed Size       00000A8E (2702)\n+3D7CCA Uncompressed Size     00000A8E (2702)\n+\n+3D7CCE LOCAL HEADER #1115    04034B50 (67324752)\n+3D7CD2 Extract Zip Spec      14 (20) '2.0'\n+3D7CD3 Extract OS            00 (0) 'MS-DOS'\n+3D7CD4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D7CD6 Compression Method    0000 (0) 'Stored'\n+3D7CD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D7CDC CRC                   00000000 (0)\n+3D7CE0 Compressed Size       00000000 (0)\n+3D7CE4 Uncompressed Size     00000000 (0)\n+3D7CE8 Filename Length       0042 (66)\n+3D7CEA Extra Length          0009 (9)\n+3D7CEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D7CEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D7D2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D7D30   Length              0005 (5)\n+3D7D32   Flags               01 (1) 'Modification'\n+3D7D33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D7D37 PAYLOAD\n+\n+3D8CB7 DATA DESCRIPTOR       08074B50 (134695760)\n+3D8CBB CRC                   D4CAE0D6 (3570065622)\n+3D8CBF Compressed Size       00000F80 (3968)\n+3D8CC3 Uncompressed Size     00000F80 (3968)\n+\n+3D8CC7 LOCAL HEADER #1116    04034B50 (67324752)\n+3D8CCB Extract Zip Spec      14 (20) '2.0'\n+3D8CCC Extract OS            00 (0) 'MS-DOS'\n+3D8CCD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D8CCF Compression Method    0000 (0) 'Stored'\n+3D8CD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D8CD5 CRC                   00000000 (0)\n+3D8CD9 Compressed Size       00000000 (0)\n+3D8CDD Uncompressed Size     00000000 (0)\n+3D8CE1 Filename Length       003F (63)\n+3D8CE3 Extra Length          0009 (9)\n+3D8CE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D8CE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D8D24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D8D26   Length              0005 (5)\n+3D8D28   Flags               01 (1) 'Modification'\n+3D8D29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D8D2D PAYLOAD\n+\n+3D9A77 DATA DESCRIPTOR       08074B50 (134695760)\n+3D9A7B CRC                   9C44854A (2621736266)\n+3D9A7F Compressed Size       00000D4A (3402)\n+3D9A83 Uncompressed Size     00000D4A (3402)\n+\n+3D9A87 LOCAL HEADER #1117    04034B50 (67324752)\n+3D9A8B Extract Zip Spec      14 (20) '2.0'\n+3D9A8C Extract OS            00 (0) 'MS-DOS'\n+3D9A8D General Purpose Flag  0000 (0)\n+3D9A8F Compression Method    0000 (0) 'Stored'\n+3D9A91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D9A95 CRC                   00000000 (0)\n+3D9A99 Compressed Size       00000000 (0)\n+3D9A9D Uncompressed Size     00000000 (0)\n+3D9AA1 Filename Length       002D (45)\n+3D9AA3 Extra Length          0009 (9)\n+3D9AA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D9AA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D9AD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D9AD4   Length              0005 (5)\n+3D9AD6   Flags               01 (1) 'Modification'\n+3D9AD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3D9ADB LOCAL HEADER #1118    04034B50 (67324752)\n+3D9ADF Extract Zip Spec      14 (20) '2.0'\n+3D9AE0 Extract OS            00 (0) 'MS-DOS'\n+3D9AE1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3D9AE3 Compression Method    0000 (0) 'Stored'\n+3D9AE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3D9AE9 CRC                   00000000 (0)\n+3D9AED Compressed Size       00000000 (0)\n+3D9AF1 Uncompressed Size     00000000 (0)\n+3D9AF5 Filename Length       0042 (66)\n+3D9AF7 Extra Length          0009 (9)\n+3D9AF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3D9AF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3D9B3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3D9B3D   Length              0005 (5)\n+3D9B3F   Flags               01 (1) 'Modification'\n+3D9B40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3D9B44 PAYLOAD\n+\n+3DA22F DATA DESCRIPTOR       08074B50 (134695760)\n+3DA233 CRC                   F46C8898 (4100753560)\n+3DA237 Compressed Size       000006EB (1771)\n+3DA23B Uncompressed Size     000006EB (1771)\n+\n+3DA23F LOCAL HEADER #1119    04034B50 (67324752)\n+3DA243 Extract Zip Spec      14 (20) '2.0'\n+3DA244 Extract OS            00 (0) 'MS-DOS'\n+3DA245 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DA247 Compression Method    0000 (0) 'Stored'\n+3DA249 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DA24D CRC                   00000000 (0)\n+3DA251 Compressed Size       00000000 (0)\n+3DA255 Uncompressed Size     00000000 (0)\n+3DA259 Filename Length       0047 (71)\n+3DA25B Extra Length          0009 (9)\n+3DA25D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DA25D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DA2A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DA2A6   Length              0005 (5)\n+3DA2A8   Flags               01 (1) 'Modification'\n+3DA2A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DA2AD PAYLOAD\n+\n+3DADC0 DATA DESCRIPTOR       08074B50 (134695760)\n+3DADC4 CRC                   82A5648F (2191877263)\n+3DADC8 Compressed Size       00000B13 (2835)\n+3DADCC Uncompressed Size     00000B13 (2835)\n+\n+3DADD0 LOCAL HEADER #1120    04034B50 (67324752)\n+3DADD4 Extract Zip Spec      14 (20) '2.0'\n+3DADD5 Extract OS            00 (0) 'MS-DOS'\n+3DADD6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DADD8 Compression Method    0000 (0) 'Stored'\n+3DADDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DADDE CRC                   00000000 (0)\n+3DADE2 Compressed Size       00000000 (0)\n+3DADE6 Uncompressed Size     00000000 (0)\n+3DADEA Filename Length       0044 (68)\n+3DADEC Extra Length          0009 (9)\n+3DADEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DADEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DAE32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DAE34   Length              0005 (5)\n+3DAE36   Flags               01 (1) 'Modification'\n+3DAE37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DAE3B PAYLOAD\n+\n+3DB839 DATA DESCRIPTOR       08074B50 (134695760)\n+3DB83D CRC                   DA27253B (3659998523)\n+3DB841 Compressed Size       000009FE (2558)\n+3DB845 Uncompressed Size     000009FE (2558)\n+\n+3DB849 LOCAL HEADER #1121    04034B50 (67324752)\n+3DB84D Extract Zip Spec      14 (20) '2.0'\n+3DB84E Extract OS            00 (0) 'MS-DOS'\n+3DB84F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DB851 Compression Method    0000 (0) 'Stored'\n+3DB853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DB857 CRC                   00000000 (0)\n+3DB85B Compressed Size       00000000 (0)\n+3DB85F Uncompressed Size     00000000 (0)\n+3DB863 Filename Length       0041 (65)\n+3DB865 Extra Length          0009 (9)\n+3DB867 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DB867: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DB8A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DB8AA   Length              0005 (5)\n+3DB8AC   Flags               01 (1) 'Modification'\n+3DB8AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DB8B1 PAYLOAD\n+\n+3DC086 DATA DESCRIPTOR       08074B50 (134695760)\n+3DC08A CRC                   3AE3106C (987959404)\n+3DC08E Compressed Size       000007D5 (2005)\n+3DC092 Uncompressed Size     000007D5 (2005)\n+\n+3DC096 LOCAL HEADER #1122    04034B50 (67324752)\n+3DC09A Extract Zip Spec      14 (20) '2.0'\n+3DC09B Extract OS            00 (0) 'MS-DOS'\n+3DC09C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DC09E Compression Method    0000 (0) 'Stored'\n+3DC0A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DC0A4 CRC                   00000000 (0)\n+3DC0A8 Compressed Size       00000000 (0)\n+3DC0AC Uncompressed Size     00000000 (0)\n+3DC0B0 Filename Length       0040 (64)\n+3DC0B2 Extra Length          0009 (9)\n+3DC0B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DC0B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DC0F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DC0F6   Length              0005 (5)\n+3DC0F8   Flags               01 (1) 'Modification'\n+3DC0F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DC0FD PAYLOAD\n+\n+3DCD8E DATA DESCRIPTOR       08074B50 (134695760)\n+3DCD92 CRC                   5241C10C (1380040972)\n+3DCD96 Compressed Size       00000C91 (3217)\n+3DCD9A Uncompressed Size     00000C91 (3217)\n+\n+3DCD9E LOCAL HEADER #1123    04034B50 (67324752)\n+3DCDA2 Extract Zip Spec      14 (20) '2.0'\n+3DCDA3 Extract OS            00 (0) 'MS-DOS'\n+3DCDA4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DCDA6 Compression Method    0000 (0) 'Stored'\n+3DCDA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DCDAC CRC                   00000000 (0)\n+3DCDB0 Compressed Size       00000000 (0)\n+3DCDB4 Uncompressed Size     00000000 (0)\n+3DCDB8 Filename Length       003D (61)\n+3DCDBA Extra Length          0009 (9)\n+3DCDBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DCDBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DCDF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DCDFB   Length              0005 (5)\n+3DCDFD   Flags               01 (1) 'Modification'\n+3DCDFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DCE02 PAYLOAD\n+\n+3DD3CF DATA DESCRIPTOR       08074B50 (134695760)\n+3DD3D3 CRC                   30FBCCB4 (821808308)\n+3DD3D7 Compressed Size       000005CD (1485)\n+3DD3DB Uncompressed Size     000005CD (1485)\n+\n+3DD3DF LOCAL HEADER #1124    04034B50 (67324752)\n+3DD3E3 Extract Zip Spec      14 (20) '2.0'\n+3DD3E4 Extract OS            00 (0) 'MS-DOS'\n+3DD3E5 General Purpose Flag  0000 (0)\n+3DD3E7 Compression Method    0000 (0) 'Stored'\n+3DD3E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DD3ED CRC                   00000000 (0)\n+3DD3F1 Compressed Size       00000000 (0)\n+3DD3F5 Uncompressed Size     00000000 (0)\n+3DD3F9 Filename Length       002B (43)\n+3DD3FB Extra Length          0009 (9)\n+3DD3FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DD3FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DD428 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DD42A   Length              0005 (5)\n+3DD42C   Flags               01 (1) 'Modification'\n+3DD42D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3DD431 LOCAL HEADER #1125    04034B50 (67324752)\n+3DD435 Extract Zip Spec      14 (20) '2.0'\n+3DD436 Extract OS            00 (0) 'MS-DOS'\n+3DD437 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DD439 Compression Method    0000 (0) 'Stored'\n+3DD43B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DD43F CRC                   00000000 (0)\n+3DD443 Compressed Size       00000000 (0)\n+3DD447 Uncompressed Size     00000000 (0)\n+3DD44B Filename Length       0045 (69)\n+3DD44D Extra Length          0009 (9)\n+3DD44F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DD44F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DD494 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DD496   Length              0005 (5)\n+3DD498   Flags               01 (1) 'Modification'\n+3DD499   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DD49D PAYLOAD\n+\n+3DDA2F DATA DESCRIPTOR       08074B50 (134695760)\n+3DDA33 CRC                   397FE7C7 (964683719)\n+3DDA37 Compressed Size       00000592 (1426)\n+3DDA3B Uncompressed Size     00000592 (1426)\n+\n+3DDA3F LOCAL HEADER #1126    04034B50 (67324752)\n+3DDA43 Extract Zip Spec      14 (20) '2.0'\n+3DDA44 Extract OS            00 (0) 'MS-DOS'\n+3DDA45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DDA47 Compression Method    0000 (0) 'Stored'\n+3DDA49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DDA4D CRC                   00000000 (0)\n+3DDA51 Compressed Size       00000000 (0)\n+3DDA55 Uncompressed Size     00000000 (0)\n+3DDA59 Filename Length       0040 (64)\n+3DDA5B Extra Length          0009 (9)\n+3DDA5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DDA5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DDA9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DDA9F   Length              0005 (5)\n+3DDAA1   Flags               01 (1) 'Modification'\n+3DDAA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DDAA6 PAYLOAD\n+\n+3DE753 DATA DESCRIPTOR       08074B50 (134695760)\n+3DE757 CRC                   6571F019 (1701965849)\n+3DE75B Compressed Size       00000CAD (3245)\n+3DE75F Uncompressed Size     00000CAD (3245)\n+\n+3DE763 LOCAL HEADER #1127    04034B50 (67324752)\n+3DE767 Extract Zip Spec      14 (20) '2.0'\n+3DE768 Extract OS            00 (0) 'MS-DOS'\n+3DE769 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DE76B Compression Method    0000 (0) 'Stored'\n+3DE76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DE771 CRC                   00000000 (0)\n+3DE775 Compressed Size       00000000 (0)\n+3DE779 Uncompressed Size     00000000 (0)\n+3DE77D Filename Length       0041 (65)\n+3DE77F Extra Length          0009 (9)\n+3DE781 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DE781: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DE7C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DE7C4   Length              0005 (5)\n+3DE7C6   Flags               01 (1) 'Modification'\n+3DE7C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DE7CB PAYLOAD\n+\n+3DF3F7 DATA DESCRIPTOR       08074B50 (134695760)\n+3DF3FB CRC                   7A468FD9 (2051444697)\n+3DF3FF Compressed Size       00000C2C (3116)\n+3DF403 Uncompressed Size     00000C2C (3116)\n+\n+3DF407 LOCAL HEADER #1128    04034B50 (67324752)\n+3DF40B Extract Zip Spec      14 (20) '2.0'\n+3DF40C Extract OS            00 (0) 'MS-DOS'\n+3DF40D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3DF40F Compression Method    0000 (0) 'Stored'\n+3DF411 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3DF415 CRC                   00000000 (0)\n+3DF419 Compressed Size       00000000 (0)\n+3DF41D Uncompressed Size     00000000 (0)\n+3DF421 Filename Length       003E (62)\n+3DF423 Extra Length          0009 (9)\n+3DF425 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3DF425: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3DF463 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3DF465   Length              0005 (5)\n+3DF467   Flags               01 (1) 'Modification'\n+3DF468   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3DF46C PAYLOAD\n+\n+3E09E4 DATA DESCRIPTOR       08074B50 (134695760)\n+3E09E8 CRC                   FDA6691C (4255541532)\n+3E09EC Compressed Size       00001578 (5496)\n+3E09F0 Uncompressed Size     00001578 (5496)\n+\n+3E09F4 LOCAL HEADER #1129    04034B50 (67324752)\n+3E09F8 Extract Zip Spec      14 (20) '2.0'\n+3E09F9 Extract OS            00 (0) 'MS-DOS'\n+3E09FA General Purpose Flag  0000 (0)\n+3E09FC Compression Method    0000 (0) 'Stored'\n+3E09FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E0A02 CRC                   00000000 (0)\n+3E0A06 Compressed Size       00000000 (0)\n+3E0A0A Uncompressed Size     00000000 (0)\n+3E0A0E Filename Length       002A (42)\n+3E0A10 Extra Length          0009 (9)\n+3E0A12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E0A12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E0A3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E0A3E   Length              0005 (5)\n+3E0A40   Flags               01 (1) 'Modification'\n+3E0A41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3E0A45 LOCAL HEADER #1130    04034B50 (67324752)\n+3E0A49 Extract Zip Spec      14 (20) '2.0'\n+3E0A4A Extract OS            00 (0) 'MS-DOS'\n+3E0A4B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E0A4D Compression Method    0000 (0) 'Stored'\n+3E0A4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E0A53 CRC                   00000000 (0)\n+3E0A57 Compressed Size       00000000 (0)\n+3E0A5B Uncompressed Size     00000000 (0)\n+3E0A5F Filename Length       0039 (57)\n+3E0A61 Extra Length          0009 (9)\n+3E0A63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E0A63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E0A9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E0A9E   Length              0005 (5)\n+3E0AA0   Flags               01 (1) 'Modification'\n+3E0AA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E0AA5 PAYLOAD\n+\n+3E18BB DATA DESCRIPTOR       08074B50 (134695760)\n+3E18BF CRC                   AD8A2A72 (2911513202)\n+3E18C3 Compressed Size       00000E16 (3606)\n+3E18C7 Uncompressed Size     00000E16 (3606)\n+\n+3E18CB LOCAL HEADER #1131    04034B50 (67324752)\n+3E18CF Extract Zip Spec      14 (20) '2.0'\n+3E18D0 Extract OS            00 (0) 'MS-DOS'\n+3E18D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E18D3 Compression Method    0000 (0) 'Stored'\n+3E18D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E18D9 CRC                   00000000 (0)\n+3E18DD Compressed Size       00000000 (0)\n+3E18E1 Uncompressed Size     00000000 (0)\n+3E18E5 Filename Length       0046 (70)\n+3E18E7 Extra Length          0009 (9)\n+3E18E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E18E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E192F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E1931   Length              0005 (5)\n+3E1933   Flags               01 (1) 'Modification'\n+3E1934   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E1938 PAYLOAD\n+\n+3E2685 DATA DESCRIPTOR       08074B50 (134695760)\n+3E2689 CRC                   EEF3CE31 (4008955441)\n+3E268D Compressed Size       00000D4D (3405)\n+3E2691 Uncompressed Size     00000D4D (3405)\n+\n+3E2695 LOCAL HEADER #1132    04034B50 (67324752)\n+3E2699 Extract Zip Spec      14 (20) '2.0'\n+3E269A Extract OS            00 (0) 'MS-DOS'\n+3E269B General Purpose Flag  0000 (0)\n+3E269D Compression Method    0000 (0) 'Stored'\n+3E269F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E26A3 CRC                   00000000 (0)\n+3E26A7 Compressed Size       00000000 (0)\n+3E26AB Uncompressed Size     00000000 (0)\n+3E26AF Filename Length       0021 (33)\n+3E26B1 Extra Length          0009 (9)\n+3E26B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E26B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E26D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E26D6   Length              0005 (5)\n+3E26D8   Flags               01 (1) 'Modification'\n+3E26D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3E26DD LOCAL HEADER #1133    04034B50 (67324752)\n+3E26E1 Extract Zip Spec      14 (20) '2.0'\n+3E26E2 Extract OS            00 (0) 'MS-DOS'\n+3E26E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E26E5 Compression Method    0000 (0) 'Stored'\n+3E26E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E26EB CRC                   00000000 (0)\n+3E26EF Compressed Size       00000000 (0)\n+3E26F3 Uncompressed Size     00000000 (0)\n+3E26F7 Filename Length       0034 (52)\n+3E26F9 Extra Length          0009 (9)\n+3E26FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E26FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E272F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E2731   Length              0005 (5)\n+3E2733   Flags               01 (1) 'Modification'\n+3E2734   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E2738 PAYLOAD\n+\n+3E32EB DATA DESCRIPTOR       08074B50 (134695760)\n+3E32EF CRC                   B359713A (3008983354)\n+3E32F3 Compressed Size       00000BB3 (2995)\n+3E32F7 Uncompressed Size     00000BB3 (2995)\n+\n+3E32FB LOCAL HEADER #1134    04034B50 (67324752)\n+3E32FF Extract Zip Spec      14 (20) '2.0'\n+3E3300 Extract OS            00 (0) 'MS-DOS'\n+3E3301 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E3303 Compression Method    0000 (0) 'Stored'\n+3E3305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E3309 CRC                   00000000 (0)\n+3E330D Compressed Size       00000000 (0)\n+3E3311 Uncompressed Size     00000000 (0)\n+3E3315 Filename Length       003B (59)\n+3E3317 Extra Length          0009 (9)\n+3E3319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E3319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E3354 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E3356   Length              0005 (5)\n+3E3358   Flags               01 (1) 'Modification'\n+3E3359   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E335D PAYLOAD\n+\n+3E37DB DATA DESCRIPTOR       08074B50 (134695760)\n+3E37DF CRC                   D1906BB3 (3515902899)\n+3E37E3 Compressed Size       0000047E (1150)\n+3E37E7 Uncompressed Size     0000047E (1150)\n+\n+3E37EB LOCAL HEADER #1135    04034B50 (67324752)\n+3E37EF Extract Zip Spec      14 (20) '2.0'\n+3E37F0 Extract OS            00 (0) 'MS-DOS'\n+3E37F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E37F3 Compression Method    0000 (0) 'Stored'\n+3E37F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E37F9 CRC                   00000000 (0)\n+3E37FD Compressed Size       00000000 (0)\n+3E3801 Uncompressed Size     00000000 (0)\n+3E3805 Filename Length       003C (60)\n+3E3807 Extra Length          0009 (9)\n+3E3809 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E3809: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E3845 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E3847   Length              0005 (5)\n+3E3849   Flags               01 (1) 'Modification'\n+3E384A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E384E PAYLOAD\n+\n+3E46AE DATA DESCRIPTOR       08074B50 (134695760)\n+3E46B2 CRC                   0375CF6B (58052459)\n+3E46B6 Compressed Size       00000E60 (3680)\n+3E46BA Uncompressed Size     00000E60 (3680)\n+\n+3E46BE LOCAL HEADER #1136    04034B50 (67324752)\n+3E46C2 Extract Zip Spec      14 (20) '2.0'\n+3E46C3 Extract OS            00 (0) 'MS-DOS'\n+3E46C4 General Purpose Flag  0000 (0)\n+3E46C6 Compression Method    0000 (0) 'Stored'\n+3E46C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E46CC CRC                   00000000 (0)\n+3E46D0 Compressed Size       00000000 (0)\n+3E46D4 Uncompressed Size     00000000 (0)\n+3E46D8 Filename Length       002C (44)\n+3E46DA Extra Length          0009 (9)\n+3E46DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E46DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E4708 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E470A   Length              0005 (5)\n+3E470C   Flags               01 (1) 'Modification'\n+3E470D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3E4711 LOCAL HEADER #1137    04034B50 (67324752)\n+3E4715 Extract Zip Spec      14 (20) '2.0'\n+3E4716 Extract OS            00 (0) 'MS-DOS'\n+3E4717 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E4719 Compression Method    0000 (0) 'Stored'\n+3E471B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E471F CRC                   00000000 (0)\n+3E4723 Compressed Size       00000000 (0)\n+3E4727 Uncompressed Size     00000000 (0)\n+3E472B Filename Length       0052 (82)\n+3E472D Extra Length          0009 (9)\n+3E472F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E472F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E4781 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E4783   Length              0005 (5)\n+3E4785   Flags               01 (1) 'Modification'\n+3E4786   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E478A PAYLOAD\n+\n+3E50A6 DATA DESCRIPTOR       08074B50 (134695760)\n+3E50AA CRC                   D7F68AC0 (3623258816)\n+3E50AE Compressed Size       0000091C (2332)\n+3E50B2 Uncompressed Size     0000091C (2332)\n+\n+3E50B6 LOCAL HEADER #1138    04034B50 (67324752)\n+3E50BA Extract Zip Spec      14 (20) '2.0'\n+3E50BB Extract OS            00 (0) 'MS-DOS'\n+3E50BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E50BE Compression Method    0000 (0) 'Stored'\n+3E50C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E50C4 CRC                   00000000 (0)\n+3E50C8 Compressed Size       00000000 (0)\n+3E50CC Uncompressed Size     00000000 (0)\n+3E50D0 Filename Length       0047 (71)\n+3E50D2 Extra Length          0009 (9)\n+3E50D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E50D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E511B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E511D   Length              0005 (5)\n+3E511F   Flags               01 (1) 'Modification'\n+3E5120   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E5124 PAYLOAD\n+\n+3E5511 DATA DESCRIPTOR       08074B50 (134695760)\n+3E5515 CRC                   3D7B6838 (1031497784)\n+3E5519 Compressed Size       000003ED (1005)\n+3E551D Uncompressed Size     000003ED (1005)\n+\n+3E5521 LOCAL HEADER #1139    04034B50 (67324752)\n+3E5525 Extract Zip Spec      14 (20) '2.0'\n+3E5526 Extract OS            00 (0) 'MS-DOS'\n+3E5527 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E5529 Compression Method    0000 (0) 'Stored'\n+3E552B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E552F CRC                   00000000 (0)\n+3E5533 Compressed Size       00000000 (0)\n+3E5537 Uncompressed Size     00000000 (0)\n+3E553B Filename Length       004E (78)\n+3E553D Extra Length          0009 (9)\n+3E553F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E553F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E558D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E558F   Length              0005 (5)\n+3E5591   Flags               01 (1) 'Modification'\n+3E5592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E5596 PAYLOAD\n+\n+3E6250 DATA DESCRIPTOR       08074B50 (134695760)\n+3E6254 CRC                   475F83BC (1197441980)\n+3E6258 Compressed Size       00000CBA (3258)\n+3E625C Uncompressed Size     00000CBA (3258)\n+\n+3E6260 LOCAL HEADER #1140    04034B50 (67324752)\n+3E6264 Extract Zip Spec      14 (20) '2.0'\n+3E6265 Extract OS            00 (0) 'MS-DOS'\n+3E6266 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E6268 Compression Method    0000 (0) 'Stored'\n+3E626A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E626E CRC                   00000000 (0)\n+3E6272 Compressed Size       00000000 (0)\n+3E6276 Uncompressed Size     00000000 (0)\n+3E627A Filename Length       003C (60)\n+3E627C Extra Length          0009 (9)\n+3E627E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E627E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E62BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E62BC   Length              0005 (5)\n+3E62BE   Flags               01 (1) 'Modification'\n+3E62BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E62C3 PAYLOAD\n+\n+3E6B1E DATA DESCRIPTOR       08074B50 (134695760)\n+3E6B22 CRC                   97BCAA4D (2545723981)\n+3E6B26 Compressed Size       0000085B (2139)\n+3E6B2A Uncompressed Size     0000085B (2139)\n+\n+3E6B2E LOCAL HEADER #1141    04034B50 (67324752)\n+3E6B32 Extract Zip Spec      14 (20) '2.0'\n+3E6B33 Extract OS            00 (0) 'MS-DOS'\n+3E6B34 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E6B36 Compression Method    0000 (0) 'Stored'\n+3E6B38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E6B3C CRC                   00000000 (0)\n+3E6B40 Compressed Size       00000000 (0)\n+3E6B44 Uncompressed Size     00000000 (0)\n+3E6B48 Filename Length       0043 (67)\n+3E6B4A Extra Length          0009 (9)\n+3E6B4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E6B4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E6B8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E6B91   Length              0005 (5)\n+3E6B93   Flags               01 (1) 'Modification'\n+3E6B94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E6B98 PAYLOAD\n+\n+3E787B DATA DESCRIPTOR       08074B50 (134695760)\n+3E787F CRC                   A0F529B3 (2700421555)\n+3E7883 Compressed Size       00000CE3 (3299)\n+3E7887 Uncompressed Size     00000CE3 (3299)\n+\n+3E788B LOCAL HEADER #1142    04034B50 (67324752)\n+3E788F Extract Zip Spec      14 (20) '2.0'\n+3E7890 Extract OS            00 (0) 'MS-DOS'\n+3E7891 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E7893 Compression Method    0000 (0) 'Stored'\n+3E7895 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E7899 CRC                   00000000 (0)\n+3E789D Compressed Size       00000000 (0)\n+3E78A1 Uncompressed Size     00000000 (0)\n+3E78A5 Filename Length       004A (74)\n+3E78A7 Extra Length          0009 (9)\n+3E78A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E78A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E78F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E78F5   Length              0005 (5)\n+3E78F7   Flags               01 (1) 'Modification'\n+3E78F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E78FC PAYLOAD\n+\n+3E858F DATA DESCRIPTOR       08074B50 (134695760)\n+3E8593 CRC                   0978E7E9 (158918633)\n+3E8597 Compressed Size       00000C93 (3219)\n+3E859B Uncompressed Size     00000C93 (3219)\n+\n+3E859F LOCAL HEADER #1143    04034B50 (67324752)\n+3E85A3 Extract Zip Spec      14 (20) '2.0'\n+3E85A4 Extract OS            00 (0) 'MS-DOS'\n+3E85A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E85A7 Compression Method    0000 (0) 'Stored'\n+3E85A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E85AD CRC                   00000000 (0)\n+3E85B1 Compressed Size       00000000 (0)\n+3E85B5 Uncompressed Size     00000000 (0)\n+3E85B9 Filename Length       004D (77)\n+3E85BB Extra Length          0009 (9)\n+3E85BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E85BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E860A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E860C   Length              0005 (5)\n+3E860E   Flags               01 (1) 'Modification'\n+3E860F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E8613 PAYLOAD\n+\n+3E8ECA DATA DESCRIPTOR       08074B50 (134695760)\n+3E8ECE CRC                   0929F211 (153743889)\n+3E8ED2 Compressed Size       000008B7 (2231)\n+3E8ED6 Uncompressed Size     000008B7 (2231)\n+\n+3E8EDA LOCAL HEADER #1144    04034B50 (67324752)\n+3E8EDE Extract Zip Spec      14 (20) '2.0'\n+3E8EDF Extract OS            00 (0) 'MS-DOS'\n+3E8EE0 General Purpose Flag  0000 (0)\n+3E8EE2 Compression Method    0000 (0) 'Stored'\n+3E8EE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E8EE8 CRC                   00000000 (0)\n+3E8EEC Compressed Size       00000000 (0)\n+3E8EF0 Uncompressed Size     00000000 (0)\n+3E8EF4 Filename Length       0029 (41)\n+3E8EF6 Extra Length          0009 (9)\n+3E8EF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E8EF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E8F21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E8F23   Length              0005 (5)\n+3E8F25   Flags               01 (1) 'Modification'\n+3E8F26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3E8F2A LOCAL HEADER #1145    04034B50 (67324752)\n+3E8F2E Extract Zip Spec      14 (20) '2.0'\n+3E8F2F Extract OS            00 (0) 'MS-DOS'\n+3E8F30 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3E8F32 Compression Method    0000 (0) 'Stored'\n+3E8F34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3E8F38 CRC                   00000000 (0)\n+3E8F3C Compressed Size       00000000 (0)\n+3E8F40 Uncompressed Size     00000000 (0)\n+3E8F44 Filename Length       0044 (68)\n+3E8F46 Extra Length          0009 (9)\n+3E8F48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3E8F48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3E8F8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3E8F8E   Length              0005 (5)\n+3E8F90   Flags               01 (1) 'Modification'\n+3E8F91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3E8F95 PAYLOAD\n+\n+3EE0E8 DATA DESCRIPTOR       08074B50 (134695760)\n+3EE0EC CRC                   26D63221 (651571745)\n+3EE0F0 Compressed Size       00005153 (20819)\n+3EE0F4 Uncompressed Size     00005153 (20819)\n+\n+3EE0F8 LOCAL HEADER #1146    04034B50 (67324752)\n+3EE0FC Extract Zip Spec      14 (20) '2.0'\n+3EE0FD Extract OS            00 (0) 'MS-DOS'\n+3EE0FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3EE100 Compression Method    0000 (0) 'Stored'\n+3EE102 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3EE106 CRC                   00000000 (0)\n+3EE10A Compressed Size       00000000 (0)\n+3EE10E Uncompressed Size     00000000 (0)\n+3EE112 Filename Length       004B (75)\n+3EE114 Extra Length          0009 (9)\n+3EE116 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EE116: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3EE161 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3EE163   Length              0005 (5)\n+3EE165   Flags               01 (1) 'Modification'\n+3EE166   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3EE16A PAYLOAD\n+\n+3EEBEB DATA DESCRIPTOR       08074B50 (134695760)\n+3EEBEF CRC                   16EA47E7 (384452583)\n+3EEBF3 Compressed Size       00000A81 (2689)\n+3EEBF7 Uncompressed Size     00000A81 (2689)\n+\n+3EEBFB LOCAL HEADER #1147    04034B50 (67324752)\n+3EEBFF Extract Zip Spec      14 (20) '2.0'\n+3EEC00 Extract OS            00 (0) 'MS-DOS'\n+3EEC01 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3EEC03 Compression Method    0000 (0) 'Stored'\n+3EEC05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3EEC09 CRC                   00000000 (0)\n+3EEC0D Compressed Size       00000000 (0)\n+3EEC11 Uncompressed Size     00000000 (0)\n+3EEC15 Filename Length       0037 (55)\n+3EEC17 Extra Length          0009 (9)\n+3EEC19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EEC19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3EEC50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3EEC52   Length              0005 (5)\n+3EEC54   Flags               01 (1) 'Modification'\n+3EEC55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3EEC59 PAYLOAD\n+\n+3EF183 DATA DESCRIPTOR       08074B50 (134695760)\n+3EF187 CRC                   82826623 (2189583907)\n+3EF18B Compressed Size       0000052A (1322)\n+3EF18F Uncompressed Size     0000052A (1322)\n+\n+3EF193 LOCAL HEADER #1148    04034B50 (67324752)\n+3EF197 Extract Zip Spec      14 (20) '2.0'\n+3EF198 Extract OS            00 (0) 'MS-DOS'\n+3EF199 General Purpose Flag  0000 (0)\n+3EF19B Compression Method    0000 (0) 'Stored'\n+3EF19D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3EF1A1 CRC                   00000000 (0)\n+3EF1A5 Compressed Size       00000000 (0)\n+3EF1A9 Uncompressed Size     00000000 (0)\n+3EF1AD Filename Length       001F (31)\n+3EF1AF Extra Length          0009 (9)\n+3EF1B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EF1B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3EF1D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3EF1D2   Length              0005 (5)\n+3EF1D4   Flags               01 (1) 'Modification'\n+3EF1D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3EF1D9 LOCAL HEADER #1149    04034B50 (67324752)\n+3EF1DD Extract Zip Spec      14 (20) '2.0'\n+3EF1DE Extract OS            00 (0) 'MS-DOS'\n+3EF1DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3EF1E1 Compression Method    0000 (0) 'Stored'\n+3EF1E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3EF1E7 CRC                   00000000 (0)\n+3EF1EB Compressed Size       00000000 (0)\n+3EF1EF Uncompressed Size     00000000 (0)\n+3EF1F3 Filename Length       004D (77)\n+3EF1F5 Extra Length          0009 (9)\n+3EF1F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EF1F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3EF244 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3EF246   Length              0005 (5)\n+3EF248   Flags               01 (1) 'Modification'\n+3EF249   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3EF24D PAYLOAD\n+\n+3EFBEF DATA DESCRIPTOR       08074B50 (134695760)\n+3EFBF3 CRC                   25BB24C3 (633021635)\n+3EFBF7 Compressed Size       000009A2 (2466)\n+3EFBFB Uncompressed Size     000009A2 (2466)\n+\n+3EFBFF LOCAL HEADER #1150    04034B50 (67324752)\n+3EFC03 Extract Zip Spec      14 (20) '2.0'\n+3EFC04 Extract OS            00 (0) 'MS-DOS'\n+3EFC05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3EFC07 Compression Method    0000 (0) 'Stored'\n+3EFC09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3EFC0D CRC                   00000000 (0)\n+3EFC11 Compressed Size       00000000 (0)\n+3EFC15 Uncompressed Size     00000000 (0)\n+3EFC19 Filename Length       0047 (71)\n+3EFC1B Extra Length          0009 (9)\n+3EFC1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3EFC1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3EFC64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3EFC66   Length              0005 (5)\n+3EFC68   Flags               01 (1) 'Modification'\n+3EFC69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3EFC6D PAYLOAD\n+\n+3F3B4B DATA DESCRIPTOR       08074B50 (134695760)\n+3F3B4F CRC                   9322DFB2 (2468536242)\n+3F3B53 Compressed Size       00003EDE (16094)\n+3F3B57 Uncompressed Size     00003EDE (16094)\n+\n+3F3B5B LOCAL HEADER #1151    04034B50 (67324752)\n+3F3B5F Extract Zip Spec      14 (20) '2.0'\n+3F3B60 Extract OS            00 (0) 'MS-DOS'\n+3F3B61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F3B63 Compression Method    0000 (0) 'Stored'\n+3F3B65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F3B69 CRC                   00000000 (0)\n+3F3B6D Compressed Size       00000000 (0)\n+3F3B71 Uncompressed Size     00000000 (0)\n+3F3B75 Filename Length       0045 (69)\n+3F3B77 Extra Length          0009 (9)\n+3F3B79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F3B79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F3BBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F3BC0   Length              0005 (5)\n+3F3BC2   Flags               01 (1) 'Modification'\n+3F3BC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F3BC7 PAYLOAD\n+\n+3F45CE DATA DESCRIPTOR       08074B50 (134695760)\n+3F45D2 CRC                   EE2E13F4 (3995997172)\n+3F45D6 Compressed Size       00000A07 (2567)\n+3F45DA Uncompressed Size     00000A07 (2567)\n+\n+3F45DE LOCAL HEADER #1152    04034B50 (67324752)\n+3F45E2 Extract Zip Spec      14 (20) '2.0'\n+3F45E3 Extract OS            00 (0) 'MS-DOS'\n+3F45E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F45E6 Compression Method    0000 (0) 'Stored'\n+3F45E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F45EC CRC                   00000000 (0)\n+3F45F0 Compressed Size       00000000 (0)\n+3F45F4 Uncompressed Size     00000000 (0)\n+3F45F8 Filename Length       0046 (70)\n+3F45FA Extra Length          0009 (9)\n+3F45FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F45FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F4642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F4644   Length              0005 (5)\n+3F4646   Flags               01 (1) 'Modification'\n+3F4647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F464B PAYLOAD\n+\n+3F53A4 DATA DESCRIPTOR       08074B50 (134695760)\n+3F53A8 CRC                   9044A5F3 (2420418035)\n+3F53AC Compressed Size       00000D59 (3417)\n+3F53B0 Uncompressed Size     00000D59 (3417)\n+\n+3F53B4 LOCAL HEADER #1153    04034B50 (67324752)\n+3F53B8 Extract Zip Spec      14 (20) '2.0'\n+3F53B9 Extract OS            00 (0) 'MS-DOS'\n+3F53BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F53BC Compression Method    0000 (0) 'Stored'\n+3F53BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F53C2 CRC                   00000000 (0)\n+3F53C6 Compressed Size       00000000 (0)\n+3F53CA Uncompressed Size     00000000 (0)\n+3F53CE Filename Length       0046 (70)\n+3F53D0 Extra Length          0009 (9)\n+3F53D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F53D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F5418 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F541A   Length              0005 (5)\n+3F541C   Flags               01 (1) 'Modification'\n+3F541D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F5421 PAYLOAD\n+\n+3F5C1F DATA DESCRIPTOR       08074B50 (134695760)\n+3F5C23 CRC                   15CC2E88 (365702792)\n+3F5C27 Compressed Size       000007FE (2046)\n+3F5C2B Uncompressed Size     000007FE (2046)\n+\n+3F5C2F LOCAL HEADER #1154    04034B50 (67324752)\n+3F5C33 Extract Zip Spec      14 (20) '2.0'\n+3F5C34 Extract OS            00 (0) 'MS-DOS'\n+3F5C35 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F5C37 Compression Method    0000 (0) 'Stored'\n+3F5C39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F5C3D CRC                   00000000 (0)\n+3F5C41 Compressed Size       00000000 (0)\n+3F5C45 Uncompressed Size     00000000 (0)\n+3F5C49 Filename Length       0033 (51)\n+3F5C4B Extra Length          0009 (9)\n+3F5C4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F5C4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F5C80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F5C82   Length              0005 (5)\n+3F5C84   Flags               01 (1) 'Modification'\n+3F5C85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F5C89 PAYLOAD\n+\n+3F78DB DATA DESCRIPTOR       08074B50 (134695760)\n+3F78DF CRC                   A00D3EBD (2685222589)\n+3F78E3 Compressed Size       00001C52 (7250)\n+3F78E7 Uncompressed Size     00001C52 (7250)\n+\n+3F78EB LOCAL HEADER #1155    04034B50 (67324752)\n+3F78EF Extract Zip Spec      14 (20) '2.0'\n+3F78F0 Extract OS            00 (0) 'MS-DOS'\n+3F78F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F78F3 Compression Method    0000 (0) 'Stored'\n+3F78F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F78F9 CRC                   00000000 (0)\n+3F78FD Compressed Size       00000000 (0)\n+3F7901 Uncompressed Size     00000000 (0)\n+3F7905 Filename Length       0039 (57)\n+3F7907 Extra Length          0009 (9)\n+3F7909 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F7909: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F7942 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F7944   Length              0005 (5)\n+3F7946   Flags               01 (1) 'Modification'\n+3F7947   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F794B PAYLOAD\n+\n+3F8BE7 DATA DESCRIPTOR       08074B50 (134695760)\n+3F8BEB CRC                   69F2CD2A (1777519914)\n+3F8BEF Compressed Size       0000129C (4764)\n+3F8BF3 Uncompressed Size     0000129C (4764)\n+\n+3F8BF7 LOCAL HEADER #1156    04034B50 (67324752)\n+3F8BFB Extract Zip Spec      14 (20) '2.0'\n+3F8BFC Extract OS            00 (0) 'MS-DOS'\n+3F8BFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3F8BFF Compression Method    0000 (0) 'Stored'\n+3F8C01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3F8C05 CRC                   00000000 (0)\n+3F8C09 Compressed Size       00000000 (0)\n+3F8C0D Uncompressed Size     00000000 (0)\n+3F8C11 Filename Length       0036 (54)\n+3F8C13 Extra Length          0009 (9)\n+3F8C15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3F8C15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3F8C4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3F8C4D   Length              0005 (5)\n+3F8C4F   Flags               01 (1) 'Modification'\n+3F8C50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3F8C54 PAYLOAD\n+\n+3FA529 DATA DESCRIPTOR       08074B50 (134695760)\n+3FA52D CRC                   3A871853 (981932115)\n+3FA531 Compressed Size       000018D5 (6357)\n+3FA535 Uncompressed Size     000018D5 (6357)\n+\n+3FA539 LOCAL HEADER #1157    04034B50 (67324752)\n+3FA53D Extract Zip Spec      14 (20) '2.0'\n+3FA53E Extract OS            00 (0) 'MS-DOS'\n+3FA53F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FA541 Compression Method    0000 (0) 'Stored'\n+3FA543 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FA547 CRC                   00000000 (0)\n+3FA54B Compressed Size       00000000 (0)\n+3FA54F Uncompressed Size     00000000 (0)\n+3FA553 Filename Length       0037 (55)\n+3FA555 Extra Length          0009 (9)\n+3FA557 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FA557: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FA58E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FA590   Length              0005 (5)\n+3FA592   Flags               01 (1) 'Modification'\n+3FA593   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FA597 PAYLOAD\n+\n+3FB27D DATA DESCRIPTOR       08074B50 (134695760)\n+3FB281 CRC                   7BC9467A (2076788346)\n+3FB285 Compressed Size       00000CE6 (3302)\n+3FB289 Uncompressed Size     00000CE6 (3302)\n+\n+3FB28D LOCAL HEADER #1158    04034B50 (67324752)\n+3FB291 Extract Zip Spec      14 (20) '2.0'\n+3FB292 Extract OS            00 (0) 'MS-DOS'\n+3FB293 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FB295 Compression Method    0000 (0) 'Stored'\n+3FB297 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FB29B CRC                   00000000 (0)\n+3FB29F Compressed Size       00000000 (0)\n+3FB2A3 Uncompressed Size     00000000 (0)\n+3FB2A7 Filename Length       003D (61)\n+3FB2A9 Extra Length          0009 (9)\n+3FB2AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FB2AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FB2E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FB2EA   Length              0005 (5)\n+3FB2EC   Flags               01 (1) 'Modification'\n+3FB2ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FB2F1 PAYLOAD\n+\n+3FB7D9 DATA DESCRIPTOR       08074B50 (134695760)\n+3FB7DD CRC                   8442F5C1 (2218980801)\n+3FB7E1 Compressed Size       000004E8 (1256)\n+3FB7E5 Uncompressed Size     000004E8 (1256)\n+\n+3FB7E9 LOCAL HEADER #1159    04034B50 (67324752)\n+3FB7ED Extract Zip Spec      14 (20) '2.0'\n+3FB7EE Extract OS            00 (0) 'MS-DOS'\n+3FB7EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FB7F1 Compression Method    0000 (0) 'Stored'\n+3FB7F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FB7F7 CRC                   00000000 (0)\n+3FB7FB Compressed Size       00000000 (0)\n+3FB7FF Uncompressed Size     00000000 (0)\n+3FB803 Filename Length       003F (63)\n+3FB805 Extra Length          0009 (9)\n+3FB807 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FB807: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FB846 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FB848   Length              0005 (5)\n+3FB84A   Flags               01 (1) 'Modification'\n+3FB84B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FB84F PAYLOAD\n+\n+3FBEB6 DATA DESCRIPTOR       08074B50 (134695760)\n+3FBEBA CRC                   1B483D0F (457719055)\n+3FBEBE Compressed Size       00000667 (1639)\n+3FBEC2 Uncompressed Size     00000667 (1639)\n+\n+3FBEC6 LOCAL HEADER #1160    04034B50 (67324752)\n+3FBECA Extract Zip Spec      14 (20) '2.0'\n+3FBECB Extract OS            00 (0) 'MS-DOS'\n+3FBECC General Purpose Flag  0000 (0)\n+3FBECE Compression Method    0000 (0) 'Stored'\n+3FBED0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FBED4 CRC                   00000000 (0)\n+3FBED8 Compressed Size       00000000 (0)\n+3FBEDC Uncompressed Size     00000000 (0)\n+3FBEE0 Filename Length       0025 (37)\n+3FBEE2 Extra Length          0009 (9)\n+3FBEE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FBEE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FBF09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FBF0B   Length              0005 (5)\n+3FBF0D   Flags               01 (1) 'Modification'\n+3FBF0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+3FBF12 LOCAL HEADER #1161    04034B50 (67324752)\n+3FBF16 Extract Zip Spec      14 (20) '2.0'\n+3FBF17 Extract OS            00 (0) 'MS-DOS'\n+3FBF18 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FBF1A Compression Method    0000 (0) 'Stored'\n+3FBF1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FBF20 CRC                   00000000 (0)\n+3FBF24 Compressed Size       00000000 (0)\n+3FBF28 Uncompressed Size     00000000 (0)\n+3FBF2C Filename Length       0048 (72)\n+3FBF2E Extra Length          0009 (9)\n+3FBF30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FBF30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FBF78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FBF7A   Length              0005 (5)\n+3FBF7C   Flags               01 (1) 'Modification'\n+3FBF7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FBF81 PAYLOAD\n+\n+3FCB12 DATA DESCRIPTOR       08074B50 (134695760)\n+3FCB16 CRC                   B81EA5D5 (3089016277)\n+3FCB1A Compressed Size       00000B91 (2961)\n+3FCB1E Uncompressed Size     00000B91 (2961)\n+\n+3FCB22 LOCAL HEADER #1162    04034B50 (67324752)\n+3FCB26 Extract Zip Spec      14 (20) '2.0'\n+3FCB27 Extract OS            00 (0) 'MS-DOS'\n+3FCB28 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FCB2A Compression Method    0000 (0) 'Stored'\n+3FCB2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FCB30 CRC                   00000000 (0)\n+3FCB34 Compressed Size       00000000 (0)\n+3FCB38 Uncompressed Size     00000000 (0)\n+3FCB3C Filename Length       0045 (69)\n+3FCB3E Extra Length          0009 (9)\n+3FCB40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FCB40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FCB85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FCB87   Length              0005 (5)\n+3FCB89   Flags               01 (1) 'Modification'\n+3FCB8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FCB8E PAYLOAD\n+\n+3FD0F0 DATA DESCRIPTOR       08074B50 (134695760)\n+3FD0F4 CRC                   EF780E16 (4017622550)\n+3FD0F8 Compressed Size       00000562 (1378)\n+3FD0FC Uncompressed Size     00000562 (1378)\n+\n+3FD100 LOCAL HEADER #1163    04034B50 (67324752)\n+3FD104 Extract Zip Spec      14 (20) '2.0'\n+3FD105 Extract OS            00 (0) 'MS-DOS'\n+3FD106 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FD108 Compression Method    0000 (0) 'Stored'\n+3FD10A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FD10E CRC                   00000000 (0)\n+3FD112 Compressed Size       00000000 (0)\n+3FD116 Uncompressed Size     00000000 (0)\n+3FD11A Filename Length       0047 (71)\n+3FD11C Extra Length          0009 (9)\n+3FD11E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FD11E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FD165 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FD167   Length              0005 (5)\n+3FD169   Flags               01 (1) 'Modification'\n+3FD16A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FD16E PAYLOAD\n+\n+3FDA11 DATA DESCRIPTOR       08074B50 (134695760)\n+3FDA15 CRC                   CC678E8E (3429338766)\n+3FDA19 Compressed Size       000008A3 (2211)\n+3FDA1D Uncompressed Size     000008A3 (2211)\n+\n+3FDA21 LOCAL HEADER #1164    04034B50 (67324752)\n+3FDA25 Extract Zip Spec      14 (20) '2.0'\n+3FDA26 Extract OS            00 (0) 'MS-DOS'\n+3FDA27 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FDA29 Compression Method    0000 (0) 'Stored'\n+3FDA2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FDA2F CRC                   00000000 (0)\n+3FDA33 Compressed Size       00000000 (0)\n+3FDA37 Uncompressed Size     00000000 (0)\n+3FDA3B Filename Length       004A (74)\n+3FDA3D Extra Length          0009 (9)\n+3FDA3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FDA3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FDA89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FDA8B   Length              0005 (5)\n+3FDA8D   Flags               01 (1) 'Modification'\n+3FDA8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FDA92 PAYLOAD\n+\n+3FECDB DATA DESCRIPTOR       08074B50 (134695760)\n+3FECDF CRC                   5E735CAA (1584618666)\n+3FECE3 Compressed Size       00001249 (4681)\n+3FECE7 Uncompressed Size     00001249 (4681)\n+\n+3FECEB LOCAL HEADER #1165    04034B50 (67324752)\n+3FECEF Extract Zip Spec      14 (20) '2.0'\n+3FECF0 Extract OS            00 (0) 'MS-DOS'\n+3FECF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FECF3 Compression Method    0000 (0) 'Stored'\n+3FECF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FECF9 CRC                   00000000 (0)\n+3FECFD Compressed Size       00000000 (0)\n+3FED01 Uncompressed Size     00000000 (0)\n+3FED05 Filename Length       0047 (71)\n+3FED07 Extra Length          0009 (9)\n+3FED09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FED09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FED50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FED52   Length              0005 (5)\n+3FED54   Flags               01 (1) 'Modification'\n+3FED55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FED59 PAYLOAD\n+\n+3FF2C3 DATA DESCRIPTOR       08074B50 (134695760)\n+3FF2C7 CRC                   F08C4805 (4035725317)\n+3FF2CB Compressed Size       0000056A (1386)\n+3FF2CF Uncompressed Size     0000056A (1386)\n+\n+3FF2D3 LOCAL HEADER #1166    04034B50 (67324752)\n+3FF2D7 Extract Zip Spec      14 (20) '2.0'\n+3FF2D8 Extract OS            00 (0) 'MS-DOS'\n+3FF2D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FF2DB Compression Method    0000 (0) 'Stored'\n+3FF2DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FF2E1 CRC                   00000000 (0)\n+3FF2E5 Compressed Size       00000000 (0)\n+3FF2E9 Uncompressed Size     00000000 (0)\n+3FF2ED Filename Length       004B (75)\n+3FF2EF Extra Length          0009 (9)\n+3FF2F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FF2F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FF33C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FF33E   Length              0005 (5)\n+3FF340   Flags               01 (1) 'Modification'\n+3FF341   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FF345 PAYLOAD\n+\n+3FFA49 DATA DESCRIPTOR       08074B50 (134695760)\n+3FFA4D CRC                   EACCF2B1 (3939300017)\n+3FFA51 Compressed Size       00000704 (1796)\n+3FFA55 Uncompressed Size     00000704 (1796)\n+\n+3FFA59 LOCAL HEADER #1167    04034B50 (67324752)\n+3FFA5D Extract Zip Spec      14 (20) '2.0'\n+3FFA5E Extract OS            00 (0) 'MS-DOS'\n+3FFA5F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+3FFA61 Compression Method    0000 (0) 'Stored'\n+3FFA63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+3FFA67 CRC                   00000000 (0)\n+3FFA6B Compressed Size       00000000 (0)\n+3FFA6F Uncompressed Size     00000000 (0)\n+3FFA73 Filename Length       0046 (70)\n+3FFA75 Extra Length          0009 (9)\n+3FFA77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x3FFA77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+3FFABD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+3FFABF   Length              0005 (5)\n+3FFAC1   Flags               01 (1) 'Modification'\n+3FFAC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+3FFAC6 PAYLOAD\n+\n+40002C DATA DESCRIPTOR       08074B50 (134695760)\n+400030 CRC                   69ADD8AE (1773000878)\n+400034 Compressed Size       00000566 (1382)\n+400038 Uncompressed Size     00000566 (1382)\n+\n+40003C LOCAL HEADER #1168    04034B50 (67324752)\n+400040 Extract Zip Spec      14 (20) '2.0'\n+400041 Extract OS            00 (0) 'MS-DOS'\n+400042 General Purpose Flag  0000 (0)\n+400044 Compression Method    0000 (0) 'Stored'\n+400046 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40004A CRC                   00000000 (0)\n+40004E Compressed Size       00000000 (0)\n+400052 Uncompressed Size     00000000 (0)\n+400056 Filename Length       0029 (41)\n+400058 Extra Length          0009 (9)\n+40005A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40005A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+400083 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+400085   Length              0005 (5)\n+400087   Flags               01 (1) 'Modification'\n+400088   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+40008C LOCAL HEADER #1169    04034B50 (67324752)\n+400090 Extract Zip Spec      14 (20) '2.0'\n+400091 Extract OS            00 (0) 'MS-DOS'\n+400092 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+400094 Compression Method    0000 (0) 'Stored'\n+400096 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40009A CRC                   00000000 (0)\n+40009E Compressed Size       00000000 (0)\n+4000A2 Uncompressed Size     00000000 (0)\n+4000A6 Filename Length       0059 (89)\n+4000A8 Extra Length          0009 (9)\n+4000AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4000AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+400103 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+400105   Length              0005 (5)\n+400107   Flags               01 (1) 'Modification'\n+400108   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40010C PAYLOAD\n+\n+400C83 DATA DESCRIPTOR       08074B50 (134695760)\n+400C87 CRC                   2470BA0F (611367439)\n+400C8B Compressed Size       00000B77 (2935)\n+400C8F Uncompressed Size     00000B77 (2935)\n+\n+400C93 LOCAL HEADER #1170    04034B50 (67324752)\n+400C97 Extract Zip Spec      14 (20) '2.0'\n+400C98 Extract OS            00 (0) 'MS-DOS'\n+400C99 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+400C9B Compression Method    0000 (0) 'Stored'\n+400C9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+400CA1 CRC                   00000000 (0)\n+400CA5 Compressed Size       00000000 (0)\n+400CA9 Uncompressed Size     00000000 (0)\n+400CAD Filename Length       004D (77)\n+400CAF Extra Length          0009 (9)\n+400CB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x400CB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+400CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+400D00   Length              0005 (5)\n+400D02   Flags               01 (1) 'Modification'\n+400D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+400D07 PAYLOAD\n+\n+401437 DATA DESCRIPTOR       08074B50 (134695760)\n+40143B CRC                   F02EA49E (4029588638)\n+40143F Compressed Size       00000730 (1840)\n+401443 Uncompressed Size     00000730 (1840)\n+\n+401447 LOCAL HEADER #1171    04034B50 (67324752)\n+40144B Extract Zip Spec      14 (20) '2.0'\n+40144C Extract OS            00 (0) 'MS-DOS'\n+40144D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+40144F Compression Method    0000 (0) 'Stored'\n+401451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+401455 CRC                   00000000 (0)\n+401459 Compressed Size       00000000 (0)\n+40145D Uncompressed Size     00000000 (0)\n+401461 Filename Length       004C (76)\n+401463 Extra Length          0009 (9)\n+401465 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x401465: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4014B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4014B3   Length              0005 (5)\n+4014B5   Flags               01 (1) 'Modification'\n+4014B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4014BA PAYLOAD\n+\n+401BE5 DATA DESCRIPTOR       08074B50 (134695760)\n+401BE9 CRC                   91BA4E47 (2444906055)\n+401BED Compressed Size       0000072B (1835)\n+401BF1 Uncompressed Size     0000072B (1835)\n+\n+401BF5 LOCAL HEADER #1172    04034B50 (67324752)\n+401BF9 Extract Zip Spec      14 (20) '2.0'\n+401BFA Extract OS            00 (0) 'MS-DOS'\n+401BFB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+401BFD Compression Method    0000 (0) 'Stored'\n+401BFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+401C03 CRC                   00000000 (0)\n+401C07 Compressed Size       00000000 (0)\n+401C0B Uncompressed Size     00000000 (0)\n+401C0F Filename Length       0052 (82)\n+401C11 Extra Length          0009 (9)\n+401C13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x401C13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+401C65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+401C67   Length              0005 (5)\n+401C69   Flags               01 (1) 'Modification'\n+401C6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+401C6E PAYLOAD\n+\n+40356B DATA DESCRIPTOR       08074B50 (134695760)\n+40356F CRC                   594A4504 (1498039556)\n+403573 Compressed Size       000018FD (6397)\n+403577 Uncompressed Size     000018FD (6397)\n+\n+40357B LOCAL HEADER #1173    04034B50 (67324752)\n+40357F Extract Zip Spec      14 (20) '2.0'\n+403580 Extract OS            00 (0) 'MS-DOS'\n+403581 General Purpose Flag  0000 (0)\n+403583 Compression Method    0000 (0) 'Stored'\n+403585 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+403589 CRC                   00000000 (0)\n+40358D Compressed Size       00000000 (0)\n+403591 Uncompressed Size     00000000 (0)\n+403595 Filename Length       0020 (32)\n+403597 Extra Length          0009 (9)\n+403599 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x403599: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4035B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4035BB   Length              0005 (5)\n+4035BD   Flags               01 (1) 'Modification'\n+4035BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4035C2 LOCAL HEADER #1174    04034B50 (67324752)\n+4035C6 Extract Zip Spec      14 (20) '2.0'\n+4035C7 Extract OS            00 (0) 'MS-DOS'\n+4035C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4035CA Compression Method    0000 (0) 'Stored'\n+4035CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4035D0 CRC                   00000000 (0)\n+4035D4 Compressed Size       00000000 (0)\n+4035D8 Uncompressed Size     00000000 (0)\n+4035DC Filename Length       004C (76)\n+4035DE Extra Length          0009 (9)\n+4035E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4035E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+40362C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40362E   Length              0005 (5)\n+403630   Flags               01 (1) 'Modification'\n+403631   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+403635 PAYLOAD\n+\n+404703 DATA DESCRIPTOR       08074B50 (134695760)\n+404707 CRC                   FF3DB830 (4282234928)\n+40470B Compressed Size       000010CE (4302)\n+40470F Uncompressed Size     000010CE (4302)\n+\n+404713 LOCAL HEADER #1175    04034B50 (67324752)\n+404717 Extract Zip Spec      14 (20) '2.0'\n+404718 Extract OS            00 (0) 'MS-DOS'\n+404719 General Purpose Flag  0000 (0)\n+40471B Compression Method    0000 (0) 'Stored'\n+40471D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+404721 CRC                   00000000 (0)\n+404725 Compressed Size       00000000 (0)\n+404729 Uncompressed Size     00000000 (0)\n+40472D Filename Length       0027 (39)\n+40472F Extra Length          0009 (9)\n+404731 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x404731: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+404758 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40475A   Length              0005 (5)\n+40475C   Flags               01 (1) 'Modification'\n+40475D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+404761 LOCAL HEADER #1176    04034B50 (67324752)\n+404765 Extract Zip Spec      14 (20) '2.0'\n+404766 Extract OS            00 (0) 'MS-DOS'\n+404767 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+404769 Compression Method    0000 (0) 'Stored'\n+40476B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40476F CRC                   00000000 (0)\n+404773 Compressed Size       00000000 (0)\n+404777 Uncompressed Size     00000000 (0)\n+40477B Filename Length       0040 (64)\n+40477D Extra Length          0009 (9)\n+40477F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40477F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4047BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4047C1   Length              0005 (5)\n+4047C3   Flags               01 (1) 'Modification'\n+4047C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4047C8 PAYLOAD\n+\n+405D3B DATA DESCRIPTOR       08074B50 (134695760)\n+405D3F CRC                   18469088 (407277704)\n+405D43 Compressed Size       00001573 (5491)\n+405D47 Uncompressed Size     00001573 (5491)\n+\n+405D4B LOCAL HEADER #1177    04034B50 (67324752)\n+405D4F Extract Zip Spec      14 (20) '2.0'\n+405D50 Extract OS            00 (0) 'MS-DOS'\n+405D51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+405D53 Compression Method    0000 (0) 'Stored'\n+405D55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+405D59 CRC                   00000000 (0)\n+405D5D Compressed Size       00000000 (0)\n+405D61 Uncompressed Size     00000000 (0)\n+405D65 Filename Length       0047 (71)\n+405D67 Extra Length          0009 (9)\n+405D69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x405D69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+405DB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+405DB2   Length              0005 (5)\n+405DB4   Flags               01 (1) 'Modification'\n+405DB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+405DB9 PAYLOAD\n+\n+4062DE DATA DESCRIPTOR       08074B50 (134695760)\n+4062E2 CRC                   E09F9D87 (3768556935)\n+4062E6 Compressed Size       00000525 (1317)\n+4062EA Uncompressed Size     00000525 (1317)\n+\n+4062EE LOCAL HEADER #1178    04034B50 (67324752)\n+4062F2 Extract Zip Spec      14 (20) '2.0'\n+4062F3 Extract OS            00 (0) 'MS-DOS'\n+4062F4 General Purpose Flag  0000 (0)\n+4062F6 Compression Method    0000 (0) 'Stored'\n+4062F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4062FC CRC                   00000000 (0)\n+406300 Compressed Size       00000000 (0)\n+406304 Uncompressed Size     00000000 (0)\n+406308 Filename Length       0025 (37)\n+40630A Extra Length          0009 (9)\n+40630C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40630C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+406331 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+406333   Length              0005 (5)\n+406335   Flags               01 (1) 'Modification'\n+406336   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+40633A LOCAL HEADER #1179    04034B50 (67324752)\n+40633E Extract Zip Spec      14 (20) '2.0'\n+40633F Extract OS            00 (0) 'MS-DOS'\n+406340 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+406342 Compression Method    0000 (0) 'Stored'\n+406344 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+406348 CRC                   00000000 (0)\n+40634C Compressed Size       00000000 (0)\n+406350 Uncompressed Size     00000000 (0)\n+406354 Filename Length       003C (60)\n+406356 Extra Length          0009 (9)\n+406358 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x406358: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+406394 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+406396   Length              0005 (5)\n+406398   Flags               01 (1) 'Modification'\n+406399   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40639D PAYLOAD\n+\n+407A8B DATA DESCRIPTOR       08074B50 (134695760)\n+407A8F CRC                   963A2E3A (2520395322)\n+407A93 Compressed Size       000016EE (5870)\n+407A97 Uncompressed Size     000016EE (5870)\n+\n+407A9B LOCAL HEADER #1180    04034B50 (67324752)\n+407A9F Extract Zip Spec      14 (20) '2.0'\n+407AA0 Extract OS            00 (0) 'MS-DOS'\n+407AA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+407AA3 Compression Method    0000 (0) 'Stored'\n+407AA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+407AA9 CRC                   00000000 (0)\n+407AAD Compressed Size       00000000 (0)\n+407AB1 Uncompressed Size     00000000 (0)\n+407AB5 Filename Length       0043 (67)\n+407AB7 Extra Length          0009 (9)\n+407AB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x407AB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+407AFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+407AFE   Length              0005 (5)\n+407B00   Flags               01 (1) 'Modification'\n+407B01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+407B05 PAYLOAD\n+\n+408375 DATA DESCRIPTOR       08074B50 (134695760)\n+408379 CRC                   1612BDB3 (370326963)\n+40837D Compressed Size       00000870 (2160)\n+408381 Uncompressed Size     00000870 (2160)\n+\n+408385 LOCAL HEADER #1181    04034B50 (67324752)\n+408389 Extract Zip Spec      14 (20) '2.0'\n+40838A Extract OS            00 (0) 'MS-DOS'\n+40838B General Purpose Flag  0000 (0)\n+40838D Compression Method    0000 (0) 'Stored'\n+40838F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+408393 CRC                   00000000 (0)\n+408397 Compressed Size       00000000 (0)\n+40839B Uncompressed Size     00000000 (0)\n+40839F Filename Length       0029 (41)\n+4083A1 Extra Length          0009 (9)\n+4083A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4083A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4083CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4083CE   Length              0005 (5)\n+4083D0   Flags               01 (1) 'Modification'\n+4083D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4083D5 LOCAL HEADER #1182    04034B50 (67324752)\n+4083D9 Extract Zip Spec      14 (20) '2.0'\n+4083DA Extract OS            00 (0) 'MS-DOS'\n+4083DB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4083DD Compression Method    0000 (0) 'Stored'\n+4083DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4083E3 CRC                   00000000 (0)\n+4083E7 Compressed Size       00000000 (0)\n+4083EB Uncompressed Size     00000000 (0)\n+4083EF Filename Length       003F (63)\n+4083F1 Extra Length          0009 (9)\n+4083F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4083F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+408432 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+408434   Length              0005 (5)\n+408436   Flags               01 (1) 'Modification'\n+408437   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40843B PAYLOAD\n+\n+408B04 DATA DESCRIPTOR       08074B50 (134695760)\n+408B08 CRC                   C5E6E015 (3320242197)\n+408B0C Compressed Size       000006C9 (1737)\n+408B10 Uncompressed Size     000006C9 (1737)\n+\n+408B14 LOCAL HEADER #1183    04034B50 (67324752)\n+408B18 Extract Zip Spec      14 (20) '2.0'\n+408B19 Extract OS            00 (0) 'MS-DOS'\n+408B1A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+408B1C Compression Method    0000 (0) 'Stored'\n+408B1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+408B22 CRC                   00000000 (0)\n+408B26 Compressed Size       00000000 (0)\n+408B2A Uncompressed Size     00000000 (0)\n+408B2E Filename Length       0044 (68)\n+408B30 Extra Length          0009 (9)\n+408B32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x408B32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+408B76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+408B78   Length              0005 (5)\n+408B7A   Flags               01 (1) 'Modification'\n+408B7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+408B7F PAYLOAD\n+\n+40E9CD DATA DESCRIPTOR       08074B50 (134695760)\n+40E9D1 CRC                   95EACAEA (2515192554)\n+40E9D5 Compressed Size       00005E4E (24142)\n+40E9D9 Uncompressed Size     00005E4E (24142)\n+\n+40E9DD LOCAL HEADER #1184    04034B50 (67324752)\n+40E9E1 Extract Zip Spec      14 (20) '2.0'\n+40E9E2 Extract OS            00 (0) 'MS-DOS'\n+40E9E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+40E9E5 Compression Method    0000 (0) 'Stored'\n+40E9E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40E9EB CRC                   00000000 (0)\n+40E9EF Compressed Size       00000000 (0)\n+40E9F3 Uncompressed Size     00000000 (0)\n+40E9F7 Filename Length       004B (75)\n+40E9F9 Extra Length          0009 (9)\n+40E9FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40E9FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+40EA46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40EA48   Length              0005 (5)\n+40EA4A   Flags               01 (1) 'Modification'\n+40EA4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40EA4F PAYLOAD\n+\n+40EF42 DATA DESCRIPTOR       08074B50 (134695760)\n+40EF46 CRC                   880754E1 (2282181857)\n+40EF4A Compressed Size       000004F3 (1267)\n+40EF4E Uncompressed Size     000004F3 (1267)\n+\n+40EF52 LOCAL HEADER #1185    04034B50 (67324752)\n+40EF56 Extract Zip Spec      14 (20) '2.0'\n+40EF57 Extract OS            00 (0) 'MS-DOS'\n+40EF58 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+40EF5A Compression Method    0000 (0) 'Stored'\n+40EF5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40EF60 CRC                   00000000 (0)\n+40EF64 Compressed Size       00000000 (0)\n+40EF68 Uncompressed Size     00000000 (0)\n+40EF6C Filename Length       0044 (68)\n+40EF6E Extra Length          0009 (9)\n+40EF70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40EF70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+40EFB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40EFB6   Length              0005 (5)\n+40EFB8   Flags               01 (1) 'Modification'\n+40EFB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40EFBD PAYLOAD\n+\n+40FC69 DATA DESCRIPTOR       08074B50 (134695760)\n+40FC6D CRC                   3DD6411C (1037451548)\n+40FC71 Compressed Size       00000CAC (3244)\n+40FC75 Uncompressed Size     00000CAC (3244)\n+\n+40FC79 LOCAL HEADER #1186    04034B50 (67324752)\n+40FC7D Extract Zip Spec      14 (20) '2.0'\n+40FC7E Extract OS            00 (0) 'MS-DOS'\n+40FC7F General Purpose Flag  0000 (0)\n+40FC81 Compression Method    0000 (0) 'Stored'\n+40FC83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40FC87 CRC                   00000000 (0)\n+40FC8B Compressed Size       00000000 (0)\n+40FC8F Uncompressed Size     00000000 (0)\n+40FC93 Filename Length       0026 (38)\n+40FC95 Extra Length          0009 (9)\n+40FC97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40FC97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+40FCBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40FCBF   Length              0005 (5)\n+40FCC1   Flags               01 (1) 'Modification'\n+40FCC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+40FCC6 LOCAL HEADER #1187    04034B50 (67324752)\n+40FCCA Extract Zip Spec      14 (20) '2.0'\n+40FCCB Extract OS            00 (0) 'MS-DOS'\n+40FCCC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+40FCCE Compression Method    0000 (0) 'Stored'\n+40FCD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+40FCD4 CRC                   00000000 (0)\n+40FCD8 Compressed Size       00000000 (0)\n+40FCDC Uncompressed Size     00000000 (0)\n+40FCE0 Filename Length       0044 (68)\n+40FCE2 Extra Length          0009 (9)\n+40FCE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x40FCE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+40FD28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+40FD2A   Length              0005 (5)\n+40FD2C   Flags               01 (1) 'Modification'\n+40FD2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+40FD31 PAYLOAD\n+\n+41060D DATA DESCRIPTOR       08074B50 (134695760)\n+410611 CRC                   2BBAD075 (733663349)\n+410615 Compressed Size       000008DC (2268)\n+410619 Uncompressed Size     000008DC (2268)\n+\n+41061D LOCAL HEADER #1188    04034B50 (67324752)\n+410621 Extract Zip Spec      14 (20) '2.0'\n+410622 Extract OS            00 (0) 'MS-DOS'\n+410623 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+410625 Compression Method    0000 (0) 'Stored'\n+410627 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41062B CRC                   00000000 (0)\n+41062F Compressed Size       00000000 (0)\n+410633 Uncompressed Size     00000000 (0)\n+410637 Filename Length       003E (62)\n+410639 Extra Length          0009 (9)\n+41063B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41063B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+410679 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41067B   Length              0005 (5)\n+41067D   Flags               01 (1) 'Modification'\n+41067E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+410682 PAYLOAD\n+\n+412FCF DATA DESCRIPTOR       08074B50 (134695760)\n+412FD3 CRC                   7A7368DC (2054383836)\n+412FD7 Compressed Size       0000294D (10573)\n+412FDB Uncompressed Size     0000294D (10573)\n+\n+412FDF LOCAL HEADER #1189    04034B50 (67324752)\n+412FE3 Extract Zip Spec      14 (20) '2.0'\n+412FE4 Extract OS            00 (0) 'MS-DOS'\n+412FE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+412FE7 Compression Method    0000 (0) 'Stored'\n+412FE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+412FED CRC                   00000000 (0)\n+412FF1 Compressed Size       00000000 (0)\n+412FF5 Uncompressed Size     00000000 (0)\n+412FF9 Filename Length       0045 (69)\n+412FFB Extra Length          0009 (9)\n+412FFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x412FFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+413042 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+413044   Length              0005 (5)\n+413046   Flags               01 (1) 'Modification'\n+413047   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41304B PAYLOAD\n+\n+41356C DATA DESCRIPTOR       08074B50 (134695760)\n+413570 CRC                   46F5866F (1190495855)\n+413574 Compressed Size       00000521 (1313)\n+413578 Uncompressed Size     00000521 (1313)\n+\n+41357C LOCAL HEADER #1190    04034B50 (67324752)\n+413580 Extract Zip Spec      14 (20) '2.0'\n+413581 Extract OS            00 (0) 'MS-DOS'\n+413582 General Purpose Flag  0000 (0)\n+413584 Compression Method    0000 (0) 'Stored'\n+413586 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41358A CRC                   00000000 (0)\n+41358E Compressed Size       00000000 (0)\n+413592 Uncompressed Size     00000000 (0)\n+413596 Filename Length       0026 (38)\n+413598 Extra Length          0009 (9)\n+41359A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41359A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4135C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4135C2   Length              0005 (5)\n+4135C4   Flags               01 (1) 'Modification'\n+4135C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4135C9 LOCAL HEADER #1191    04034B50 (67324752)\n+4135CD Extract Zip Spec      14 (20) '2.0'\n+4135CE Extract OS            00 (0) 'MS-DOS'\n+4135CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4135D1 Compression Method    0000 (0) 'Stored'\n+4135D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4135D7 CRC                   00000000 (0)\n+4135DB Compressed Size       00000000 (0)\n+4135DF Uncompressed Size     00000000 (0)\n+4135E3 Filename Length       003E (62)\n+4135E5 Extra Length          0009 (9)\n+4135E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4135E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+413625 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+413627   Length              0005 (5)\n+413629   Flags               01 (1) 'Modification'\n+41362A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41362E PAYLOAD\n+\n+415B69 DATA DESCRIPTOR       08074B50 (134695760)\n+415B6D CRC                   7E3D8E6C (2117963372)\n+415B71 Compressed Size       0000253B (9531)\n+415B75 Uncompressed Size     0000253B (9531)\n+\n+415B79 LOCAL HEADER #1192    04034B50 (67324752)\n+415B7D Extract Zip Spec      14 (20) '2.0'\n+415B7E Extract OS            00 (0) 'MS-DOS'\n+415B7F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+415B81 Compression Method    0000 (0) 'Stored'\n+415B83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+415B87 CRC                   00000000 (0)\n+415B8B Compressed Size       00000000 (0)\n+415B8F Uncompressed Size     00000000 (0)\n+415B93 Filename Length       0045 (69)\n+415B95 Extra Length          0009 (9)\n+415B97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x415B97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+415BDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+415BDE   Length              0005 (5)\n+415BE0   Flags               01 (1) 'Modification'\n+415BE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+415BE5 PAYLOAD\n+\n+4160FC DATA DESCRIPTOR       08074B50 (134695760)\n+416100 CRC                   70A19A06 (1889638918)\n+416104 Compressed Size       00000517 (1303)\n+416108 Uncompressed Size     00000517 (1303)\n+\n+41610C LOCAL HEADER #1193    04034B50 (67324752)\n+416110 Extract Zip Spec      14 (20) '2.0'\n+416111 Extract OS            00 (0) 'MS-DOS'\n+416112 General Purpose Flag  0000 (0)\n+416114 Compression Method    0000 (0) 'Stored'\n+416116 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41611A CRC                   00000000 (0)\n+41611E Compressed Size       00000000 (0)\n+416122 Uncompressed Size     00000000 (0)\n+416126 Filename Length       002A (42)\n+416128 Extra Length          0009 (9)\n+41612A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41612A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+416154 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+416156   Length              0005 (5)\n+416158   Flags               01 (1) 'Modification'\n+416159   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+41615D LOCAL HEADER #1194    04034B50 (67324752)\n+416161 Extract Zip Spec      14 (20) '2.0'\n+416162 Extract OS            00 (0) 'MS-DOS'\n+416163 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+416165 Compression Method    0000 (0) 'Stored'\n+416167 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41616B CRC                   00000000 (0)\n+41616F Compressed Size       00000000 (0)\n+416173 Uncompressed Size     00000000 (0)\n+416177 Filename Length       0046 (70)\n+416179 Extra Length          0009 (9)\n+41617B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41617B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4161C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4161C3   Length              0005 (5)\n+4161C5   Flags               01 (1) 'Modification'\n+4161C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4161CA PAYLOAD\n+\n+417F81 DATA DESCRIPTOR       08074B50 (134695760)\n+417F85 CRC                   4C9B97DB (1285265371)\n+417F89 Compressed Size       00001DB7 (7607)\n+417F8D Uncompressed Size     00001DB7 (7607)\n+\n+417F91 LOCAL HEADER #1195    04034B50 (67324752)\n+417F95 Extract Zip Spec      14 (20) '2.0'\n+417F96 Extract OS            00 (0) 'MS-DOS'\n+417F97 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+417F99 Compression Method    0000 (0) 'Stored'\n+417F9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+417F9F CRC                   00000000 (0)\n+417FA3 Compressed Size       00000000 (0)\n+417FA7 Uncompressed Size     00000000 (0)\n+417FAB Filename Length       004D (77)\n+417FAD Extra Length          0009 (9)\n+417FAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x417FAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+417FFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+417FFE   Length              0005 (5)\n+418000   Flags               01 (1) 'Modification'\n+418001   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+418005 PAYLOAD\n+\n+418650 DATA DESCRIPTOR       08074B50 (134695760)\n+418654 CRC                   17A4831B (396657435)\n+418658 Compressed Size       0000064B (1611)\n+41865C Uncompressed Size     0000064B (1611)\n+\n+418660 LOCAL HEADER #1196    04034B50 (67324752)\n+418664 Extract Zip Spec      14 (20) '2.0'\n+418665 Extract OS            00 (0) 'MS-DOS'\n+418666 General Purpose Flag  0000 (0)\n+418668 Compression Method    0000 (0) 'Stored'\n+41866A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41866E CRC                   00000000 (0)\n+418672 Compressed Size       00000000 (0)\n+418676 Uncompressed Size     00000000 (0)\n+41867A Filename Length       0019 (25)\n+41867C Extra Length          0009 (9)\n+41867E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41867E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+418697 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+418699   Length              0005 (5)\n+41869B   Flags               01 (1) 'Modification'\n+41869C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4186A0 LOCAL HEADER #1197    04034B50 (67324752)\n+4186A4 Extract Zip Spec      14 (20) '2.0'\n+4186A5 Extract OS            00 (0) 'MS-DOS'\n+4186A6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4186A8 Compression Method    0000 (0) 'Stored'\n+4186AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4186AE CRC                   00000000 (0)\n+4186B2 Compressed Size       00000000 (0)\n+4186B6 Uncompressed Size     00000000 (0)\n+4186BA Filename Length       0027 (39)\n+4186BC Extra Length          0009 (9)\n+4186BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4186BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4186E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4186E7   Length              0005 (5)\n+4186E9   Flags               01 (1) 'Modification'\n+4186EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4186EE PAYLOAD\n+\n+418C16 DATA DESCRIPTOR       08074B50 (134695760)\n+418C1A CRC                   4E27066E (1311180398)\n+418C1E Compressed Size       00000528 (1320)\n+418C22 Uncompressed Size     00000528 (1320)\n+\n+418C26 LOCAL HEADER #1198    04034B50 (67324752)\n+418C2A Extract Zip Spec      14 (20) '2.0'\n+418C2B Extract OS            00 (0) 'MS-DOS'\n+418C2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+418C2E Compression Method    0000 (0) 'Stored'\n+418C30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+418C34 CRC                   00000000 (0)\n+418C38 Compressed Size       00000000 (0)\n+418C3C Uncompressed Size     00000000 (0)\n+418C40 Filename Length       002C (44)\n+418C42 Extra Length          0009 (9)\n+418C44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x418C44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+418C70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+418C72   Length              0005 (5)\n+418C74   Flags               01 (1) 'Modification'\n+418C75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+418C79 PAYLOAD\n+\n+419025 DATA DESCRIPTOR       08074B50 (134695760)\n+419029 CRC                   3E4BD5A8 (1045157288)\n+41902D Compressed Size       000003AC (940)\n+419031 Uncompressed Size     000003AC (940)\n+\n+419035 LOCAL HEADER #1199    04034B50 (67324752)\n+419039 Extract Zip Spec      14 (20) '2.0'\n+41903A Extract OS            00 (0) 'MS-DOS'\n+41903B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+41903D Compression Method    0000 (0) 'Stored'\n+41903F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+419043 CRC                   00000000 (0)\n+419047 Compressed Size       00000000 (0)\n+41904B Uncompressed Size     00000000 (0)\n+41904F Filename Length       0025 (37)\n+419051 Extra Length          0009 (9)\n+419053 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x419053: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+419078 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41907A   Length              0005 (5)\n+41907C   Flags               01 (1) 'Modification'\n+41907D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+419081 PAYLOAD\n+\n+4194CD DATA DESCRIPTOR       08074B50 (134695760)\n+4194D1 CRC                   51FB7003 (1375432707)\n+4194D5 Compressed Size       0000044C (1100)\n+4194D9 Uncompressed Size     0000044C (1100)\n+\n+4194DD LOCAL HEADER #1200    04034B50 (67324752)\n+4194E1 Extract Zip Spec      14 (20) '2.0'\n+4194E2 Extract OS            00 (0) 'MS-DOS'\n+4194E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4194E5 Compression Method    0000 (0) 'Stored'\n+4194E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4194EB CRC                   00000000 (0)\n+4194EF Compressed Size       00000000 (0)\n+4194F3 Uncompressed Size     00000000 (0)\n+4194F7 Filename Length       002C (44)\n+4194F9 Extra Length          0009 (9)\n+4194FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4194FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+419527 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+419529   Length              0005 (5)\n+41952B   Flags               01 (1) 'Modification'\n+41952C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+419530 PAYLOAD\n+\n+419A1D DATA DESCRIPTOR       08074B50 (134695760)\n+419A21 CRC                   9DE5257E (2649040254)\n+419A25 Compressed Size       000004ED (1261)\n+419A29 Uncompressed Size     000004ED (1261)\n+\n+419A2D LOCAL HEADER #1201    04034B50 (67324752)\n+419A31 Extract Zip Spec      14 (20) '2.0'\n+419A32 Extract OS            00 (0) 'MS-DOS'\n+419A33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+419A35 Compression Method    0000 (0) 'Stored'\n+419A37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+419A3B CRC                   00000000 (0)\n+419A3F Compressed Size       00000000 (0)\n+419A43 Uncompressed Size     00000000 (0)\n+419A47 Filename Length       002C (44)\n+419A49 Extra Length          0009 (9)\n+419A4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x419A4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+419A77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+419A79   Length              0005 (5)\n+419A7B   Flags               01 (1) 'Modification'\n+419A7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+419A80 PAYLOAD\n+\n+41A7C4 DATA DESCRIPTOR       08074B50 (134695760)\n+41A7C8 CRC                   78905E9C (2022727324)\n+41A7CC Compressed Size       00000D44 (3396)\n+41A7D0 Uncompressed Size     00000D44 (3396)\n+\n+41A7D4 LOCAL HEADER #1202    04034B50 (67324752)\n+41A7D8 Extract Zip Spec      14 (20) '2.0'\n+41A7D9 Extract OS            00 (0) 'MS-DOS'\n+41A7DA General Purpose Flag  0000 (0)\n+41A7DC Compression Method    0000 (0) 'Stored'\n+41A7DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41A7E2 CRC                   00000000 (0)\n+41A7E6 Compressed Size       00000000 (0)\n+41A7EA Uncompressed Size     00000000 (0)\n+41A7EE Filename Length       001F (31)\n+41A7F0 Extra Length          0009 (9)\n+41A7F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41A7F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41A811 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41A813   Length              0005 (5)\n+41A815   Flags               01 (1) 'Modification'\n+41A816   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+41A81A LOCAL HEADER #1203    04034B50 (67324752)\n+41A81E Extract Zip Spec      14 (20) '2.0'\n+41A81F Extract OS            00 (0) 'MS-DOS'\n+41A820 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+41A822 Compression Method    0000 (0) 'Stored'\n+41A824 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41A828 CRC                   00000000 (0)\n+41A82C Compressed Size       00000000 (0)\n+41A830 Uncompressed Size     00000000 (0)\n+41A834 Filename Length       0030 (48)\n+41A836 Extra Length          0009 (9)\n+41A838 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41A838: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41A868 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41A86A   Length              0005 (5)\n+41A86C   Flags               01 (1) 'Modification'\n+41A86D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41A871 PAYLOAD\n+\n+41CBC2 DATA DESCRIPTOR       08074B50 (134695760)\n+41CBC6 CRC                   EA5FE743 (3932153667)\n+41CBCA Compressed Size       00002351 (9041)\n+41CBCE Uncompressed Size     00002351 (9041)\n+\n+41CBD2 LOCAL HEADER #1204    04034B50 (67324752)\n+41CBD6 Extract Zip Spec      14 (20) '2.0'\n+41CBD7 Extract OS            00 (0) 'MS-DOS'\n+41CBD8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+41CBDA Compression Method    0000 (0) 'Stored'\n+41CBDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41CBE0 CRC                   00000000 (0)\n+41CBE4 Compressed Size       00000000 (0)\n+41CBE8 Uncompressed Size     00000000 (0)\n+41CBEC Filename Length       0037 (55)\n+41CBEE Extra Length          0009 (9)\n+41CBF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41CBF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41CC27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41CC29   Length              0005 (5)\n+41CC2B   Flags               01 (1) 'Modification'\n+41CC2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41CC30 PAYLOAD\n+\n+41D77C DATA DESCRIPTOR       08074B50 (134695760)\n+41D780 CRC                   4C68B52A (1281930538)\n+41D784 Compressed Size       00000B4C (2892)\n+41D788 Uncompressed Size     00000B4C (2892)\n+\n+41D78C LOCAL HEADER #1205    04034B50 (67324752)\n+41D790 Extract Zip Spec      14 (20) '2.0'\n+41D791 Extract OS            00 (0) 'MS-DOS'\n+41D792 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+41D794 Compression Method    0000 (0) 'Stored'\n+41D796 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+41D79A CRC                   00000000 (0)\n+41D79E Compressed Size       00000000 (0)\n+41D7A2 Uncompressed Size     00000000 (0)\n+41D7A6 Filename Length       0031 (49)\n+41D7A8 Extra Length          0009 (9)\n+41D7AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x41D7AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+41D7DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+41D7DD   Length              0005 (5)\n+41D7DF   Flags               01 (1) 'Modification'\n+41D7E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+41D7E4 PAYLOAD\n+\n+420437 DATA DESCRIPTOR       08074B50 (134695760)\n+42043B CRC                   23426219 (591553049)\n+42043F Compressed Size       00002C53 (11347)\n+420443 Uncompressed Size     00002C53 (11347)\n+\n+420447 LOCAL HEADER #1206    04034B50 (67324752)\n+42044B Extract Zip Spec      14 (20) '2.0'\n+42044C Extract OS            00 (0) 'MS-DOS'\n+42044D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42044F Compression Method    0000 (0) 'Stored'\n+420451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+420455 CRC                   00000000 (0)\n+420459 Compressed Size       00000000 (0)\n+42045D Uncompressed Size     00000000 (0)\n+420461 Filename Length       002E (46)\n+420463 Extra Length          0009 (9)\n+420465 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x420465: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+420493 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+420495   Length              0005 (5)\n+420497   Flags               01 (1) 'Modification'\n+420498   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42049C PAYLOAD\n+\n+421BD0 DATA DESCRIPTOR       08074B50 (134695760)\n+421BD4 CRC                   DAB7FE63 (3669491299)\n+421BD8 Compressed Size       00001734 (5940)\n+421BDC Uncompressed Size     00001734 (5940)\n+\n+421BE0 LOCAL HEADER #1207    04034B50 (67324752)\n+421BE4 Extract Zip Spec      14 (20) '2.0'\n+421BE5 Extract OS            00 (0) 'MS-DOS'\n+421BE6 General Purpose Flag  0000 (0)\n+421BE8 Compression Method    0000 (0) 'Stored'\n+421BEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+421BEE CRC                   00000000 (0)\n+421BF2 Compressed Size       00000000 (0)\n+421BF6 Uncompressed Size     00000000 (0)\n+421BFA Filename Length       0021 (33)\n+421BFC Extra Length          0009 (9)\n+421BFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x421BFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+421C1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+421C21   Length              0005 (5)\n+421C23   Flags               01 (1) 'Modification'\n+421C24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+421C28 LOCAL HEADER #1208    04034B50 (67324752)\n+421C2C Extract Zip Spec      14 (20) '2.0'\n+421C2D Extract OS            00 (0) 'MS-DOS'\n+421C2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+421C30 Compression Method    0000 (0) 'Stored'\n+421C32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+421C36 CRC                   00000000 (0)\n+421C3A Compressed Size       00000000 (0)\n+421C3E Uncompressed Size     00000000 (0)\n+421C42 Filename Length       003C (60)\n+421C44 Extra Length          0009 (9)\n+421C46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x421C46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+421C82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+421C84   Length              0005 (5)\n+421C86   Flags               01 (1) 'Modification'\n+421C87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+421C8B PAYLOAD\n+\n+422FC1 DATA DESCRIPTOR       08074B50 (134695760)\n+422FC5 CRC                   FA4C7A14 (4199315988)\n+422FC9 Compressed Size       00001336 (4918)\n+422FCD Uncompressed Size     00001336 (4918)\n+\n+422FD1 LOCAL HEADER #1209    04034B50 (67324752)\n+422FD5 Extract Zip Spec      14 (20) '2.0'\n+422FD6 Extract OS            00 (0) 'MS-DOS'\n+422FD7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+422FD9 Compression Method    0000 (0) 'Stored'\n+422FDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+422FDF CRC                   00000000 (0)\n+422FE3 Compressed Size       00000000 (0)\n+422FE7 Uncompressed Size     00000000 (0)\n+422FEB Filename Length       003C (60)\n+422FED Extra Length          0009 (9)\n+422FEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x422FEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42302B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42302D   Length              0005 (5)\n+42302F   Flags               01 (1) 'Modification'\n+423030   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+423034 PAYLOAD\n+\n+4234B1 DATA DESCRIPTOR       08074B50 (134695760)\n+4234B5 CRC                   0F745EE4 (259284708)\n+4234B9 Compressed Size       0000047D (1149)\n+4234BD Uncompressed Size     0000047D (1149)\n+\n+4234C1 LOCAL HEADER #1210    04034B50 (67324752)\n+4234C5 Extract Zip Spec      14 (20) '2.0'\n+4234C6 Extract OS            00 (0) 'MS-DOS'\n+4234C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4234C9 Compression Method    0000 (0) 'Stored'\n+4234CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4234CF CRC                   00000000 (0)\n+4234D3 Compressed Size       00000000 (0)\n+4234D7 Uncompressed Size     00000000 (0)\n+4234DB Filename Length       0033 (51)\n+4234DD Extra Length          0009 (9)\n+4234DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4234DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+423512 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+423514   Length              0005 (5)\n+423516   Flags               01 (1) 'Modification'\n+423517   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42351B PAYLOAD\n+\n+4256EF DATA DESCRIPTOR       08074B50 (134695760)\n+4256F3 CRC                   10FA9E81 (284860033)\n+4256F7 Compressed Size       000021D4 (8660)\n+4256FB Uncompressed Size     000021D4 (8660)\n+\n+4256FF LOCAL HEADER #1211    04034B50 (67324752)\n+425703 Extract Zip Spec      14 (20) '2.0'\n+425704 Extract OS            00 (0) 'MS-DOS'\n+425705 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+425707 Compression Method    0000 (0) 'Stored'\n+425709 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42570D CRC                   00000000 (0)\n+425711 Compressed Size       00000000 (0)\n+425715 Uncompressed Size     00000000 (0)\n+425719 Filename Length       003C (60)\n+42571B Extra Length          0009 (9)\n+42571D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42571D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+425759 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42575B   Length              0005 (5)\n+42575D   Flags               01 (1) 'Modification'\n+42575E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+425762 PAYLOAD\n+\n+425BDF DATA DESCRIPTOR       08074B50 (134695760)\n+425BE3 CRC                   9E6062D0 (2657116880)\n+425BE7 Compressed Size       0000047D (1149)\n+425BEB Uncompressed Size     0000047D (1149)\n+\n+425BEF LOCAL HEADER #1212    04034B50 (67324752)\n+425BF3 Extract Zip Spec      14 (20) '2.0'\n+425BF4 Extract OS            00 (0) 'MS-DOS'\n+425BF5 General Purpose Flag  0000 (0)\n+425BF7 Compression Method    0000 (0) 'Stored'\n+425BF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+425BFD CRC                   00000000 (0)\n+425C01 Compressed Size       00000000 (0)\n+425C05 Uncompressed Size     00000000 (0)\n+425C09 Filename Length       0015 (21)\n+425C0B Extra Length          0009 (9)\n+425C0D Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x425C0D: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+425C22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+425C24   Length              0005 (5)\n+425C26   Flags               01 (1) 'Modification'\n+425C27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+425C2B LOCAL HEADER #1213    04034B50 (67324752)\n+425C2F Extract Zip Spec      14 (20) '2.0'\n+425C30 Extract OS            00 (0) 'MS-DOS'\n+425C31 General Purpose Flag  0000 (0)\n+425C33 Compression Method    0000 (0) 'Stored'\n+425C35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+425C39 CRC                   00000000 (0)\n+425C3D Compressed Size       00000000 (0)\n+425C41 Uncompressed Size     00000000 (0)\n+425C45 Filename Length       001D (29)\n+425C47 Extra Length          0009 (9)\n+425C49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x425C49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+425C66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+425C68   Length              0005 (5)\n+425C6A   Flags               01 (1) 'Modification'\n+425C6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+425C6F LOCAL HEADER #1214    04034B50 (67324752)\n+425C73 Extract Zip Spec      14 (20) '2.0'\n+425C74 Extract OS            00 (0) 'MS-DOS'\n+425C75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+425C77 Compression Method    0000 (0) 'Stored'\n+425C79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+425C7D CRC                   00000000 (0)\n+425C81 Compressed Size       00000000 (0)\n+425C85 Uncompressed Size     00000000 (0)\n+425C89 Filename Length       002D (45)\n+425C8B Extra Length          0009 (9)\n+425C8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x425C8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+425CBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+425CBC   Length              0005 (5)\n+425CBE   Flags               01 (1) 'Modification'\n+425CBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+425CC3 PAYLOAD\n+\n+4260BA DATA DESCRIPTOR       08074B50 (134695760)\n+4260BE CRC                   FE44AB9A (4265913242)\n+4260C2 Compressed Size       000003F7 (1015)\n+4260C6 Uncompressed Size     000003F7 (1015)\n+\n+4260CA LOCAL HEADER #1215    04034B50 (67324752)\n+4260CE Extract Zip Spec      14 (20) '2.0'\n+4260CF Extract OS            00 (0) 'MS-DOS'\n+4260D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4260D2 Compression Method    0000 (0) 'Stored'\n+4260D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4260D8 CRC                   00000000 (0)\n+4260DC Compressed Size       00000000 (0)\n+4260E0 Uncompressed Size     00000000 (0)\n+4260E4 Filename Length       0030 (48)\n+4260E6 Extra Length          0009 (9)\n+4260E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4260E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+426118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42611A   Length              0005 (5)\n+42611C   Flags               01 (1) 'Modification'\n+42611D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+426121 PAYLOAD\n+\n+4269A1 DATA DESCRIPTOR       08074B50 (134695760)\n+4269A5 CRC                   C783A617 (3347293719)\n+4269A9 Compressed Size       00000880 (2176)\n+4269AD Uncompressed Size     00000880 (2176)\n+\n+4269B1 LOCAL HEADER #1216    04034B50 (67324752)\n+4269B5 Extract Zip Spec      14 (20) '2.0'\n+4269B6 Extract OS            00 (0) 'MS-DOS'\n+4269B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4269B9 Compression Method    0000 (0) 'Stored'\n+4269BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4269BF CRC                   00000000 (0)\n+4269C3 Compressed Size       00000000 (0)\n+4269C7 Uncompressed Size     00000000 (0)\n+4269CB Filename Length       0037 (55)\n+4269CD Extra Length          0009 (9)\n+4269CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4269CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+426A06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+426A08   Length              0005 (5)\n+426A0A   Flags               01 (1) 'Modification'\n+426A0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+426A0F PAYLOAD\n+\n+426EB5 DATA DESCRIPTOR       08074B50 (134695760)\n+426EB9 CRC                   F2C44151 (4072948049)\n+426EBD Compressed Size       000004A6 (1190)\n+426EC1 Uncompressed Size     000004A6 (1190)\n+\n+426EC5 LOCAL HEADER #1217    04034B50 (67324752)\n+426EC9 Extract Zip Spec      14 (20) '2.0'\n+426ECA Extract OS            00 (0) 'MS-DOS'\n+426ECB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+426ECD Compression Method    0000 (0) 'Stored'\n+426ECF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+426ED3 CRC                   00000000 (0)\n+426ED7 Compressed Size       00000000 (0)\n+426EDB Uncompressed Size     00000000 (0)\n+426EDF Filename Length       0031 (49)\n+426EE1 Extra Length          0009 (9)\n+426EE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x426EE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+426F14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+426F16   Length              0005 (5)\n+426F18   Flags               01 (1) 'Modification'\n+426F19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+426F1D PAYLOAD\n+\n+4273C5 DATA DESCRIPTOR       08074B50 (134695760)\n+4273C9 CRC                   D40E78F4 (3557718260)\n+4273CD Compressed Size       000004A8 (1192)\n+4273D1 Uncompressed Size     000004A8 (1192)\n+\n+4273D5 LOCAL HEADER #1218    04034B50 (67324752)\n+4273D9 Extract Zip Spec      14 (20) '2.0'\n+4273DA Extract OS            00 (0) 'MS-DOS'\n+4273DB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4273DD Compression Method    0000 (0) 'Stored'\n+4273DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4273E3 CRC                   00000000 (0)\n+4273E7 Compressed Size       00000000 (0)\n+4273EB Uncompressed Size     00000000 (0)\n+4273EF Filename Length       0038 (56)\n+4273F1 Extra Length          0009 (9)\n+4273F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4273F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42742B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42742D   Length              0005 (5)\n+42742F   Flags               01 (1) 'Modification'\n+427430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+427434 PAYLOAD\n+\n+427A51 DATA DESCRIPTOR       08074B50 (134695760)\n+427A55 CRC                   2A63E263 (711189091)\n+427A59 Compressed Size       0000061D (1565)\n+427A5D Uncompressed Size     0000061D (1565)\n+\n+427A61 LOCAL HEADER #1219    04034B50 (67324752)\n+427A65 Extract Zip Spec      14 (20) '2.0'\n+427A66 Extract OS            00 (0) 'MS-DOS'\n+427A67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+427A69 Compression Method    0000 (0) 'Stored'\n+427A6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+427A6F CRC                   00000000 (0)\n+427A73 Compressed Size       00000000 (0)\n+427A77 Uncompressed Size     00000000 (0)\n+427A7B Filename Length       0038 (56)\n+427A7D Extra Length          0009 (9)\n+427A7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x427A7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+427AB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+427AB9   Length              0005 (5)\n+427ABB   Flags               01 (1) 'Modification'\n+427ABC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+427AC0 PAYLOAD\n+\n+427EC0 DATA DESCRIPTOR       08074B50 (134695760)\n+427EC4 CRC                   D473D979 (3564362105)\n+427EC8 Compressed Size       00000400 (1024)\n+427ECC Uncompressed Size     00000400 (1024)\n+\n+427ED0 LOCAL HEADER #1220    04034B50 (67324752)\n+427ED4 Extract Zip Spec      14 (20) '2.0'\n+427ED5 Extract OS            00 (0) 'MS-DOS'\n+427ED6 General Purpose Flag  0000 (0)\n+427ED8 Compression Method    0000 (0) 'Stored'\n+427EDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+427EDE CRC                   00000000 (0)\n+427EE2 Compressed Size       00000000 (0)\n+427EE6 Uncompressed Size     00000000 (0)\n+427EEA Filename Length       0028 (40)\n+427EEC Extra Length          0009 (9)\n+427EEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x427EEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+427F16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+427F18   Length              0005 (5)\n+427F1A   Flags               01 (1) 'Modification'\n+427F1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+427F1F LOCAL HEADER #1221    04034B50 (67324752)\n+427F23 Extract Zip Spec      14 (20) '2.0'\n+427F24 Extract OS            00 (0) 'MS-DOS'\n+427F25 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+427F27 Compression Method    0000 (0) 'Stored'\n+427F29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+427F2D CRC                   00000000 (0)\n+427F31 Compressed Size       00000000 (0)\n+427F35 Uncompressed Size     00000000 (0)\n+427F39 Filename Length       0030 (48)\n+427F3B Extra Length          0009 (9)\n+427F3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x427F3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+427F6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+427F6F   Length              0005 (5)\n+427F71   Flags               01 (1) 'Modification'\n+427F72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+427F76 PAYLOAD\n+\n+4285BD DATA DESCRIPTOR       08074B50 (134695760)\n+4285C1 CRC                   45D6532E (1171673902)\n+4285C5 Compressed Size       00000647 (1607)\n+4285C9 Uncompressed Size     00000647 (1607)\n+\n+4285CD LOCAL HEADER #1222    04034B50 (67324752)\n+4285D1 Extract Zip Spec      14 (20) '2.0'\n+4285D2 Extract OS            00 (0) 'MS-DOS'\n+4285D3 General Purpose Flag  0000 (0)\n+4285D5 Compression Method    0000 (0) 'Stored'\n+4285D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4285DB CRC                   00000000 (0)\n+4285DF Compressed Size       00000000 (0)\n+4285E3 Uncompressed Size     00000000 (0)\n+4285E7 Filename Length       0025 (37)\n+4285E9 Extra Length          0009 (9)\n+4285EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4285EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+428610 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+428612   Length              0005 (5)\n+428614   Flags               01 (1) 'Modification'\n+428615   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+428619 LOCAL HEADER #1223    04034B50 (67324752)\n+42861D Extract Zip Spec      14 (20) '2.0'\n+42861E Extract OS            00 (0) 'MS-DOS'\n+42861F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+428621 Compression Method    0000 (0) 'Stored'\n+428623 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+428627 CRC                   00000000 (0)\n+42862B Compressed Size       00000000 (0)\n+42862F Uncompressed Size     00000000 (0)\n+428633 Filename Length       003C (60)\n+428635 Extra Length          0009 (9)\n+428637 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x428637: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+428673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+428675   Length              0005 (5)\n+428677   Flags               01 (1) 'Modification'\n+428678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42867C PAYLOAD\n+\n+42960F DATA DESCRIPTOR       08074B50 (134695760)\n+429613 CRC                   D812ECFA (3625118970)\n+429617 Compressed Size       00000F93 (3987)\n+42961B Uncompressed Size     00000F93 (3987)\n+\n+42961F LOCAL HEADER #1224    04034B50 (67324752)\n+429623 Extract Zip Spec      14 (20) '2.0'\n+429624 Extract OS            00 (0) 'MS-DOS'\n+429625 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+429627 Compression Method    0000 (0) 'Stored'\n+429629 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42962D CRC                   00000000 (0)\n+429631 Compressed Size       00000000 (0)\n+429635 Uncompressed Size     00000000 (0)\n+429639 Filename Length       003E (62)\n+42963B Extra Length          0009 (9)\n+42963D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42963D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42967B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42967D   Length              0005 (5)\n+42967F   Flags               01 (1) 'Modification'\n+429680   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+429684 PAYLOAD\n+\n+429D41 DATA DESCRIPTOR       08074B50 (134695760)\n+429D45 CRC                   E1096065 (3775488101)\n+429D49 Compressed Size       000006BD (1725)\n+429D4D Uncompressed Size     000006BD (1725)\n+\n+429D51 LOCAL HEADER #1225    04034B50 (67324752)\n+429D55 Extract Zip Spec      14 (20) '2.0'\n+429D56 Extract OS            00 (0) 'MS-DOS'\n+429D57 General Purpose Flag  0000 (0)\n+429D59 Compression Method    0000 (0) 'Stored'\n+429D5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+429D5F CRC                   00000000 (0)\n+429D63 Compressed Size       00000000 (0)\n+429D67 Uncompressed Size     00000000 (0)\n+429D6B Filename Length       0022 (34)\n+429D6D Extra Length          0009 (9)\n+429D6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x429D6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+429D91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+429D93   Length              0005 (5)\n+429D95   Flags               01 (1) 'Modification'\n+429D96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+429D9A LOCAL HEADER #1226    04034B50 (67324752)\n+429D9E Extract Zip Spec      14 (20) '2.0'\n+429D9F Extract OS            00 (0) 'MS-DOS'\n+429DA0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+429DA2 Compression Method    0000 (0) 'Stored'\n+429DA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+429DA8 CRC                   00000000 (0)\n+429DAC Compressed Size       00000000 (0)\n+429DB0 Uncompressed Size     00000000 (0)\n+429DB4 Filename Length       002B (43)\n+429DB6 Extra Length          0009 (9)\n+429DB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x429DB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+429DE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+429DE5   Length              0005 (5)\n+429DE7   Flags               01 (1) 'Modification'\n+429DE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+429DEC PAYLOAD\n+\n+42AC70 DATA DESCRIPTOR       08074B50 (134695760)\n+42AC74 CRC                   86EEED41 (2263805249)\n+42AC78 Compressed Size       00000E84 (3716)\n+42AC7C Uncompressed Size     00000E84 (3716)\n+\n+42AC80 LOCAL HEADER #1227    04034B50 (67324752)\n+42AC84 Extract Zip Spec      14 (20) '2.0'\n+42AC85 Extract OS            00 (0) 'MS-DOS'\n+42AC86 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42AC88 Compression Method    0000 (0) 'Stored'\n+42AC8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42AC8E CRC                   00000000 (0)\n+42AC92 Compressed Size       00000000 (0)\n+42AC96 Uncompressed Size     00000000 (0)\n+42AC9A Filename Length       0029 (41)\n+42AC9C Extra Length          0009 (9)\n+42AC9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42AC9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42ACC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42ACC9   Length              0005 (5)\n+42ACCB   Flags               01 (1) 'Modification'\n+42ACCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42ACD0 PAYLOAD\n+\n+42BA60 DATA DESCRIPTOR       08074B50 (134695760)\n+42BA64 CRC                   E32E7BA0 (3811474336)\n+42BA68 Compressed Size       00000D90 (3472)\n+42BA6C Uncompressed Size     00000D90 (3472)\n+\n+42BA70 LOCAL HEADER #1228    04034B50 (67324752)\n+42BA74 Extract Zip Spec      14 (20) '2.0'\n+42BA75 Extract OS            00 (0) 'MS-DOS'\n+42BA76 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42BA78 Compression Method    0000 (0) 'Stored'\n+42BA7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42BA7E CRC                   00000000 (0)\n+42BA82 Compressed Size       00000000 (0)\n+42BA86 Uncompressed Size     00000000 (0)\n+42BA8A Filename Length       002E (46)\n+42BA8C Extra Length          0009 (9)\n+42BA8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42BA8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42BABC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42BABE   Length              0005 (5)\n+42BAC0   Flags               01 (1) 'Modification'\n+42BAC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42BAC5 PAYLOAD\n+\n+42C817 DATA DESCRIPTOR       08074B50 (134695760)\n+42C81B CRC                   C56E8E67 (3312356967)\n+42C81F Compressed Size       00000D52 (3410)\n+42C823 Uncompressed Size     00000D52 (3410)\n+\n+42C827 LOCAL HEADER #1229    04034B50 (67324752)\n+42C82B Extract Zip Spec      14 (20) '2.0'\n+42C82C Extract OS            00 (0) 'MS-DOS'\n+42C82D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42C82F Compression Method    0000 (0) 'Stored'\n+42C831 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42C835 CRC                   00000000 (0)\n+42C839 Compressed Size       00000000 (0)\n+42C83D Uncompressed Size     00000000 (0)\n+42C841 Filename Length       002D (45)\n+42C843 Extra Length          0009 (9)\n+42C845 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42C845: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42C872 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42C874   Length              0005 (5)\n+42C876   Flags               01 (1) 'Modification'\n+42C877   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42C87B PAYLOAD\n+\n+42D600 DATA DESCRIPTOR       08074B50 (134695760)\n+42D604 CRC                   A95B3402 (2841326594)\n+42D608 Compressed Size       00000D85 (3461)\n+42D60C Uncompressed Size     00000D85 (3461)\n+\n+42D610 LOCAL HEADER #1230    04034B50 (67324752)\n+42D614 Extract Zip Spec      14 (20) '2.0'\n+42D615 Extract OS            00 (0) 'MS-DOS'\n+42D616 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42D618 Compression Method    0000 (0) 'Stored'\n+42D61A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42D61E CRC                   00000000 (0)\n+42D622 Compressed Size       00000000 (0)\n+42D626 Uncompressed Size     00000000 (0)\n+42D62A Filename Length       0036 (54)\n+42D62C Extra Length          0009 (9)\n+42D62E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42D62E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42D664 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42D666   Length              0005 (5)\n+42D668   Flags               01 (1) 'Modification'\n+42D669   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42D66D PAYLOAD\n+\n+42E1DC DATA DESCRIPTOR       08074B50 (134695760)\n+42E1E0 CRC                   E56C2CA8 (3849071784)\n+42E1E4 Compressed Size       00000B6F (2927)\n+42E1E8 Uncompressed Size     00000B6F (2927)\n+\n+42E1EC LOCAL HEADER #1231    04034B50 (67324752)\n+42E1F0 Extract Zip Spec      14 (20) '2.0'\n+42E1F1 Extract OS            00 (0) 'MS-DOS'\n+42E1F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42E1F4 Compression Method    0000 (0) 'Stored'\n+42E1F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42E1FA CRC                   00000000 (0)\n+42E1FE Compressed Size       00000000 (0)\n+42E202 Uncompressed Size     00000000 (0)\n+42E206 Filename Length       002B (43)\n+42E208 Extra Length          0009 (9)\n+42E20A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42E20A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42E235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42E237   Length              0005 (5)\n+42E239   Flags               01 (1) 'Modification'\n+42E23A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42E23E PAYLOAD\n+\n+42E757 DATA DESCRIPTOR       08074B50 (134695760)\n+42E75B CRC                   AADA64B2 (2866439346)\n+42E75F Compressed Size       00000519 (1305)\n+42E763 Uncompressed Size     00000519 (1305)\n+\n+42E767 LOCAL HEADER #1232    04034B50 (67324752)\n+42E76B Extract Zip Spec      14 (20) '2.0'\n+42E76C Extract OS            00 (0) 'MS-DOS'\n+42E76D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42E76F Compression Method    0000 (0) 'Stored'\n+42E771 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42E775 CRC                   00000000 (0)\n+42E779 Compressed Size       00000000 (0)\n+42E77D Uncompressed Size     00000000 (0)\n+42E781 Filename Length       002C (44)\n+42E783 Extra Length          0009 (9)\n+42E785 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42E785: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42E7B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42E7B3   Length              0005 (5)\n+42E7B5   Flags               01 (1) 'Modification'\n+42E7B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42E7BA PAYLOAD\n+\n+42F89D DATA DESCRIPTOR       08074B50 (134695760)\n+42F8A1 CRC                   DC712B5A (3698404186)\n+42F8A5 Compressed Size       000010E3 (4323)\n+42F8A9 Uncompressed Size     000010E3 (4323)\n+\n+42F8AD LOCAL HEADER #1233    04034B50 (67324752)\n+42F8B1 Extract Zip Spec      14 (20) '2.0'\n+42F8B2 Extract OS            00 (0) 'MS-DOS'\n+42F8B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42F8B5 Compression Method    0000 (0) 'Stored'\n+42F8B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42F8BB CRC                   00000000 (0)\n+42F8BF Compressed Size       00000000 (0)\n+42F8C3 Uncompressed Size     00000000 (0)\n+42F8C7 Filename Length       002E (46)\n+42F8C9 Extra Length          0009 (9)\n+42F8CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42F8CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42F8F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42F8FB   Length              0005 (5)\n+42F8FD   Flags               01 (1) 'Modification'\n+42F8FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42F902 PAYLOAD\n+\n+42FF27 DATA DESCRIPTOR       08074B50 (134695760)\n+42FF2B CRC                   1F2281E7 (522355175)\n+42FF2F Compressed Size       00000625 (1573)\n+42FF33 Uncompressed Size     00000625 (1573)\n+\n+42FF37 LOCAL HEADER #1234    04034B50 (67324752)\n+42FF3B Extract Zip Spec      14 (20) '2.0'\n+42FF3C Extract OS            00 (0) 'MS-DOS'\n+42FF3D General Purpose Flag  0000 (0)\n+42FF3F Compression Method    0000 (0) 'Stored'\n+42FF41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42FF45 CRC                   00000000 (0)\n+42FF49 Compressed Size       00000000 (0)\n+42FF4D Uncompressed Size     00000000 (0)\n+42FF51 Filename Length       0022 (34)\n+42FF53 Extra Length          0009 (9)\n+42FF55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42FF55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42FF77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42FF79   Length              0005 (5)\n+42FF7B   Flags               01 (1) 'Modification'\n+42FF7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+42FF80 LOCAL HEADER #1235    04034B50 (67324752)\n+42FF84 Extract Zip Spec      14 (20) '2.0'\n+42FF85 Extract OS            00 (0) 'MS-DOS'\n+42FF86 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+42FF88 Compression Method    0000 (0) 'Stored'\n+42FF8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+42FF8E CRC                   00000000 (0)\n+42FF92 Compressed Size       00000000 (0)\n+42FF96 Uncompressed Size     00000000 (0)\n+42FF9A Filename Length       0034 (52)\n+42FF9C Extra Length          0009 (9)\n+42FF9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x42FF9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+42FFD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+42FFD4   Length              0005 (5)\n+42FFD6   Flags               01 (1) 'Modification'\n+42FFD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+42FFDB PAYLOAD\n+\n+4308AE DATA DESCRIPTOR       08074B50 (134695760)\n+4308B2 CRC                   0E9B786A (245069930)\n+4308B6 Compressed Size       000008D3 (2259)\n+4308BA Uncompressed Size     000008D3 (2259)\n+\n+4308BE LOCAL HEADER #1236    04034B50 (67324752)\n+4308C2 Extract Zip Spec      14 (20) '2.0'\n+4308C3 Extract OS            00 (0) 'MS-DOS'\n+4308C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4308C6 Compression Method    0000 (0) 'Stored'\n+4308C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4308CC CRC                   00000000 (0)\n+4308D0 Compressed Size       00000000 (0)\n+4308D4 Uncompressed Size     00000000 (0)\n+4308D8 Filename Length       0038 (56)\n+4308DA Extra Length          0009 (9)\n+4308DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4308DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+430914 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+430916   Length              0005 (5)\n+430918   Flags               01 (1) 'Modification'\n+430919   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43091D PAYLOAD\n+\n+4313F8 DATA DESCRIPTOR       08074B50 (134695760)\n+4313FC CRC                   966E868C (2523825804)\n+431400 Compressed Size       00000ADB (2779)\n+431404 Uncompressed Size     00000ADB (2779)\n+\n+431408 LOCAL HEADER #1237    04034B50 (67324752)\n+43140C Extract Zip Spec      14 (20) '2.0'\n+43140D Extract OS            00 (0) 'MS-DOS'\n+43140E General Purpose Flag  0000 (0)\n+431410 Compression Method    0000 (0) 'Stored'\n+431412 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+431416 CRC                   00000000 (0)\n+43141A Compressed Size       00000000 (0)\n+43141E Uncompressed Size     00000000 (0)\n+431422 Filename Length       001C (28)\n+431424 Extra Length          0009 (9)\n+431426 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x431426: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+431442 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+431444   Length              0005 (5)\n+431446   Flags               01 (1) 'Modification'\n+431447   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+43144B LOCAL HEADER #1238    04034B50 (67324752)\n+43144F Extract Zip Spec      14 (20) '2.0'\n+431450 Extract OS            00 (0) 'MS-DOS'\n+431451 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+431453 Compression Method    0000 (0) 'Stored'\n+431455 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+431459 CRC                   00000000 (0)\n+43145D Compressed Size       00000000 (0)\n+431461 Uncompressed Size     00000000 (0)\n+431465 Filename Length       002D (45)\n+431467 Extra Length          0009 (9)\n+431469 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x431469: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+431496 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+431498   Length              0005 (5)\n+43149A   Flags               01 (1) 'Modification'\n+43149B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43149F PAYLOAD\n+\n+43187D DATA DESCRIPTOR       08074B50 (134695760)\n+431881 CRC                   93C23403 (2478978051)\n+431885 Compressed Size       000003DE (990)\n+431889 Uncompressed Size     000003DE (990)\n+\n+43188D LOCAL HEADER #1239    04034B50 (67324752)\n+431891 Extract Zip Spec      14 (20) '2.0'\n+431892 Extract OS            00 (0) 'MS-DOS'\n+431893 General Purpose Flag  0000 (0)\n+431895 Compression Method    0000 (0) 'Stored'\n+431897 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43189B CRC                   00000000 (0)\n+43189F Compressed Size       00000000 (0)\n+4318A3 Uncompressed Size     00000000 (0)\n+4318A7 Filename Length       001C (28)\n+4318A9 Extra Length          0009 (9)\n+4318AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4318AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4318C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4318C9   Length              0005 (5)\n+4318CB   Flags               01 (1) 'Modification'\n+4318CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4318D0 LOCAL HEADER #1240    04034B50 (67324752)\n+4318D4 Extract Zip Spec      14 (20) '2.0'\n+4318D5 Extract OS            00 (0) 'MS-DOS'\n+4318D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4318D8 Compression Method    0000 (0) 'Stored'\n+4318DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4318DE CRC                   00000000 (0)\n+4318E2 Compressed Size       00000000 (0)\n+4318E6 Uncompressed Size     00000000 (0)\n+4318EA Filename Length       0034 (52)\n+4318EC Extra Length          0009 (9)\n+4318EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4318EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+431922 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+431924   Length              0005 (5)\n+431926   Flags               01 (1) 'Modification'\n+431927   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43192B PAYLOAD\n+\n+43247C DATA DESCRIPTOR       08074B50 (134695760)\n+432480 CRC                   4EEFA113 (1324327187)\n+432484 Compressed Size       00000B51 (2897)\n+432488 Uncompressed Size     00000B51 (2897)\n+\n+43248C LOCAL HEADER #1241    04034B50 (67324752)\n+432490 Extract Zip Spec      14 (20) '2.0'\n+432491 Extract OS            00 (0) 'MS-DOS'\n+432492 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+432494 Compression Method    0000 (0) 'Stored'\n+432496 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43249A CRC                   00000000 (0)\n+43249E Compressed Size       00000000 (0)\n+4324A2 Uncompressed Size     00000000 (0)\n+4324A6 Filename Length       0033 (51)\n+4324A8 Extra Length          0009 (9)\n+4324AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4324AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4324DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4324DF   Length              0005 (5)\n+4324E1   Flags               01 (1) 'Modification'\n+4324E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4324E6 PAYLOAD\n+\n+433FEE DATA DESCRIPTOR       08074B50 (134695760)\n+433FF2 CRC                   9CF5D1EF (2633355759)\n+433FF6 Compressed Size       00001B08 (6920)\n+433FFA Uncompressed Size     00001B08 (6920)\n+\n+433FFE LOCAL HEADER #1242    04034B50 (67324752)\n+434002 Extract Zip Spec      14 (20) '2.0'\n+434003 Extract OS            00 (0) 'MS-DOS'\n+434004 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+434006 Compression Method    0000 (0) 'Stored'\n+434008 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43400C CRC                   00000000 (0)\n+434010 Compressed Size       00000000 (0)\n+434014 Uncompressed Size     00000000 (0)\n+434018 Filename Length       0035 (53)\n+43401A Extra Length          0009 (9)\n+43401C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43401C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+434051 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+434053   Length              0005 (5)\n+434055   Flags               01 (1) 'Modification'\n+434056   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43405A PAYLOAD\n+\n+434777 DATA DESCRIPTOR       08074B50 (134695760)\n+43477B CRC                   60B50DD7 (1622478295)\n+43477F Compressed Size       0000071D (1821)\n+434783 Uncompressed Size     0000071D (1821)\n+\n+434787 LOCAL HEADER #1243    04034B50 (67324752)\n+43478B Extract Zip Spec      14 (20) '2.0'\n+43478C Extract OS            00 (0) 'MS-DOS'\n+43478D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43478F Compression Method    0000 (0) 'Stored'\n+434791 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+434795 CRC                   00000000 (0)\n+434799 Compressed Size       00000000 (0)\n+43479D Uncompressed Size     00000000 (0)\n+4347A1 Filename Length       0034 (52)\n+4347A3 Extra Length          0009 (9)\n+4347A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4347A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4347D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4347DB   Length              0005 (5)\n+4347DD   Flags               01 (1) 'Modification'\n+4347DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4347E2 PAYLOAD\n+\n+4373BC DATA DESCRIPTOR       08074B50 (134695760)\n+4373C0 CRC                   78614F57 (2019643223)\n+4373C4 Compressed Size       00002BDA (11226)\n+4373C8 Uncompressed Size     00002BDA (11226)\n+\n+4373CC LOCAL HEADER #1244    04034B50 (67324752)\n+4373D0 Extract Zip Spec      14 (20) '2.0'\n+4373D1 Extract OS            00 (0) 'MS-DOS'\n+4373D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4373D4 Compression Method    0000 (0) 'Stored'\n+4373D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4373DA CRC                   00000000 (0)\n+4373DE Compressed Size       00000000 (0)\n+4373E2 Uncompressed Size     00000000 (0)\n+4373E6 Filename Length       0032 (50)\n+4373E8 Extra Length          0009 (9)\n+4373EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4373EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43741C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43741E   Length              0005 (5)\n+437420   Flags               01 (1) 'Modification'\n+437421   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+437425 PAYLOAD\n+\n+438EE7 DATA DESCRIPTOR       08074B50 (134695760)\n+438EEB CRC                   17A6F6D0 (396818128)\n+438EEF Compressed Size       00001AC2 (6850)\n+438EF3 Uncompressed Size     00001AC2 (6850)\n+\n+438EF7 LOCAL HEADER #1245    04034B50 (67324752)\n+438EFB Extract Zip Spec      14 (20) '2.0'\n+438EFC Extract OS            00 (0) 'MS-DOS'\n+438EFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+438EFF Compression Method    0000 (0) 'Stored'\n+438F01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+438F05 CRC                   00000000 (0)\n+438F09 Compressed Size       00000000 (0)\n+438F0D Uncompressed Size     00000000 (0)\n+438F11 Filename Length       0031 (49)\n+438F13 Extra Length          0009 (9)\n+438F15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x438F15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+438F46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+438F48   Length              0005 (5)\n+438F4A   Flags               01 (1) 'Modification'\n+438F4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+438F4F PAYLOAD\n+\n+439F26 DATA DESCRIPTOR       08074B50 (134695760)\n+439F2A CRC                   65289261 (1697157729)\n+439F2E Compressed Size       00000FD7 (4055)\n+439F32 Uncompressed Size     00000FD7 (4055)\n+\n+439F36 LOCAL HEADER #1246    04034B50 (67324752)\n+439F3A Extract Zip Spec      14 (20) '2.0'\n+439F3B Extract OS            00 (0) 'MS-DOS'\n+439F3C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+439F3E Compression Method    0000 (0) 'Stored'\n+439F40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+439F44 CRC                   00000000 (0)\n+439F48 Compressed Size       00000000 (0)\n+439F4C Uncompressed Size     00000000 (0)\n+439F50 Filename Length       0032 (50)\n+439F52 Extra Length          0009 (9)\n+439F54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x439F54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+439F86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+439F88   Length              0005 (5)\n+439F8A   Flags               01 (1) 'Modification'\n+439F8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+439F8F PAYLOAD\n+\n+43AEF4 DATA DESCRIPTOR       08074B50 (134695760)\n+43AEF8 CRC                   59C732CA (1506226890)\n+43AEFC Compressed Size       00000F65 (3941)\n+43AF00 Uncompressed Size     00000F65 (3941)\n+\n+43AF04 LOCAL HEADER #1247    04034B50 (67324752)\n+43AF08 Extract Zip Spec      14 (20) '2.0'\n+43AF09 Extract OS            00 (0) 'MS-DOS'\n+43AF0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43AF0C Compression Method    0000 (0) 'Stored'\n+43AF0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43AF12 CRC                   00000000 (0)\n+43AF16 Compressed Size       00000000 (0)\n+43AF1A Uncompressed Size     00000000 (0)\n+43AF1E Filename Length       0034 (52)\n+43AF20 Extra Length          0009 (9)\n+43AF22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43AF22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43AF56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43AF58   Length              0005 (5)\n+43AF5A   Flags               01 (1) 'Modification'\n+43AF5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43AF5F PAYLOAD\n+\n+43BA72 DATA DESCRIPTOR       08074B50 (134695760)\n+43BA76 CRC                   62C17732 (1656846130)\n+43BA7A Compressed Size       00000B13 (2835)\n+43BA7E Uncompressed Size     00000B13 (2835)\n+\n+43BA82 LOCAL HEADER #1248    04034B50 (67324752)\n+43BA86 Extract Zip Spec      14 (20) '2.0'\n+43BA87 Extract OS            00 (0) 'MS-DOS'\n+43BA88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43BA8A Compression Method    0000 (0) 'Stored'\n+43BA8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43BA90 CRC                   00000000 (0)\n+43BA94 Compressed Size       00000000 (0)\n+43BA98 Uncompressed Size     00000000 (0)\n+43BA9C Filename Length       0036 (54)\n+43BA9E Extra Length          0009 (9)\n+43BAA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43BAA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43BAD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43BAD8   Length              0005 (5)\n+43BADA   Flags               01 (1) 'Modification'\n+43BADB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43BADF PAYLOAD\n+\n+43C5A6 DATA DESCRIPTOR       08074B50 (134695760)\n+43C5AA CRC                   BD59212E (3176735022)\n+43C5AE Compressed Size       00000AC7 (2759)\n+43C5B2 Uncompressed Size     00000AC7 (2759)\n+\n+43C5B6 LOCAL HEADER #1249    04034B50 (67324752)\n+43C5BA Extract Zip Spec      14 (20) '2.0'\n+43C5BB Extract OS            00 (0) 'MS-DOS'\n+43C5BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43C5BE Compression Method    0000 (0) 'Stored'\n+43C5C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43C5C4 CRC                   00000000 (0)\n+43C5C8 Compressed Size       00000000 (0)\n+43C5CC Uncompressed Size     00000000 (0)\n+43C5D0 Filename Length       0033 (51)\n+43C5D2 Extra Length          0009 (9)\n+43C5D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43C5D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43C607 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43C609   Length              0005 (5)\n+43C60B   Flags               01 (1) 'Modification'\n+43C60C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43C610 PAYLOAD\n+\n+43D628 DATA DESCRIPTOR       08074B50 (134695760)\n+43D62C CRC                   6E324421 (1848788001)\n+43D630 Compressed Size       00001018 (4120)\n+43D634 Uncompressed Size     00001018 (4120)\n+\n+43D638 LOCAL HEADER #1250    04034B50 (67324752)\n+43D63C Extract Zip Spec      14 (20) '2.0'\n+43D63D Extract OS            00 (0) 'MS-DOS'\n+43D63E General Purpose Flag  0000 (0)\n+43D640 Compression Method    0000 (0) 'Stored'\n+43D642 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43D646 CRC                   00000000 (0)\n+43D64A Compressed Size       00000000 (0)\n+43D64E Uncompressed Size     00000000 (0)\n+43D652 Filename Length       001E (30)\n+43D654 Extra Length          0009 (9)\n+43D656 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43D656: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43D674 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43D676   Length              0005 (5)\n+43D678   Flags               01 (1) 'Modification'\n+43D679   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+43D67D LOCAL HEADER #1251    04034B50 (67324752)\n+43D681 Extract Zip Spec      14 (20) '2.0'\n+43D682 Extract OS            00 (0) 'MS-DOS'\n+43D683 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43D685 Compression Method    0000 (0) 'Stored'\n+43D687 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43D68B CRC                   00000000 (0)\n+43D68F Compressed Size       00000000 (0)\n+43D693 Uncompressed Size     00000000 (0)\n+43D697 Filename Length       0035 (53)\n+43D699 Extra Length          0009 (9)\n+43D69B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43D69B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43D6D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43D6D2   Length              0005 (5)\n+43D6D4   Flags               01 (1) 'Modification'\n+43D6D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43D6D9 PAYLOAD\n+\n+43E827 DATA DESCRIPTOR       08074B50 (134695760)\n+43E82B CRC                   5829DD8D (1479138701)\n+43E82F Compressed Size       0000114E (4430)\n+43E833 Uncompressed Size     0000114E (4430)\n+\n+43E837 LOCAL HEADER #1252    04034B50 (67324752)\n+43E83B Extract Zip Spec      14 (20) '2.0'\n+43E83C Extract OS            00 (0) 'MS-DOS'\n+43E83D General Purpose Flag  0000 (0)\n+43E83F Compression Method    0000 (0) 'Stored'\n+43E841 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43E845 CRC                   00000000 (0)\n+43E849 Compressed Size       00000000 (0)\n+43E84D Uncompressed Size     00000000 (0)\n+43E851 Filename Length       001C (28)\n+43E853 Extra Length          0009 (9)\n+43E855 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43E855: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43E871 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43E873   Length              0005 (5)\n+43E875   Flags               01 (1) 'Modification'\n+43E876   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+43E87A LOCAL HEADER #1253    04034B50 (67324752)\n+43E87E Extract Zip Spec      14 (20) '2.0'\n+43E87F Extract OS            00 (0) 'MS-DOS'\n+43E880 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43E882 Compression Method    0000 (0) 'Stored'\n+43E884 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43E888 CRC                   00000000 (0)\n+43E88C Compressed Size       00000000 (0)\n+43E890 Uncompressed Size     00000000 (0)\n+43E894 Filename Length       002A (42)\n+43E896 Extra Length          0009 (9)\n+43E898 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43E898: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43E8C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43E8C4   Length              0005 (5)\n+43E8C6   Flags               01 (1) 'Modification'\n+43E8C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43E8CB PAYLOAD\n+\n+43EDC9 DATA DESCRIPTOR       08074B50 (134695760)\n+43EDCD CRC                   AF68925C (2942866012)\n+43EDD1 Compressed Size       000004FE (1278)\n+43EDD5 Uncompressed Size     000004FE (1278)\n+\n+43EDD9 LOCAL HEADER #1254    04034B50 (67324752)\n+43EDDD Extract Zip Spec      14 (20) '2.0'\n+43EDDE Extract OS            00 (0) 'MS-DOS'\n+43EDDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+43EDE1 Compression Method    0000 (0) 'Stored'\n+43EDE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+43EDE7 CRC                   00000000 (0)\n+43EDEB Compressed Size       00000000 (0)\n+43EDEF Uncompressed Size     00000000 (0)\n+43EDF3 Filename Length       0027 (39)\n+43EDF5 Extra Length          0009 (9)\n+43EDF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x43EDF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+43EE1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+43EE20   Length              0005 (5)\n+43EE22   Flags               01 (1) 'Modification'\n+43EE23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+43EE27 PAYLOAD\n+\n+44008D DATA DESCRIPTOR       08074B50 (134695760)\n+440091 CRC                   97DFDDD6 (2548030934)\n+440095 Compressed Size       00001266 (4710)\n+440099 Uncompressed Size     00001266 (4710)\n+\n+44009D LOCAL HEADER #1255    04034B50 (67324752)\n+4400A1 Extract Zip Spec      14 (20) '2.0'\n+4400A2 Extract OS            00 (0) 'MS-DOS'\n+4400A3 General Purpose Flag  0000 (0)\n+4400A5 Compression Method    0000 (0) 'Stored'\n+4400A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4400AB CRC                   00000000 (0)\n+4400AF Compressed Size       00000000 (0)\n+4400B3 Uncompressed Size     00000000 (0)\n+4400B7 Filename Length       0024 (36)\n+4400B9 Extra Length          0009 (9)\n+4400BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4400BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4400DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4400E1   Length              0005 (5)\n+4400E3   Flags               01 (1) 'Modification'\n+4400E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4400E8 LOCAL HEADER #1256    04034B50 (67324752)\n+4400EC Extract Zip Spec      14 (20) '2.0'\n+4400ED Extract OS            00 (0) 'MS-DOS'\n+4400EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4400F0 Compression Method    0000 (0) 'Stored'\n+4400F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4400F6 CRC                   00000000 (0)\n+4400FA Compressed Size       00000000 (0)\n+4400FE Uncompressed Size     00000000 (0)\n+440102 Filename Length       003B (59)\n+440104 Extra Length          0009 (9)\n+440106 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x440106: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+440141 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+440143   Length              0005 (5)\n+440145   Flags               01 (1) 'Modification'\n+440146   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44014A PAYLOAD\n+\n+441580 DATA DESCRIPTOR       08074B50 (134695760)\n+441584 CRC                   5688E99A (1451813274)\n+441588 Compressed Size       00001436 (5174)\n+44158C Uncompressed Size     00001436 (5174)\n+\n+441590 LOCAL HEADER #1257    04034B50 (67324752)\n+441594 Extract Zip Spec      14 (20) '2.0'\n+441595 Extract OS            00 (0) 'MS-DOS'\n+441596 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+441598 Compression Method    0000 (0) 'Stored'\n+44159A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44159E CRC                   00000000 (0)\n+4415A2 Compressed Size       00000000 (0)\n+4415A6 Uncompressed Size     00000000 (0)\n+4415AA Filename Length       003F (63)\n+4415AC Extra Length          0009 (9)\n+4415AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4415AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4415ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4415EF   Length              0005 (5)\n+4415F1   Flags               01 (1) 'Modification'\n+4415F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4415F6 PAYLOAD\n+\n+441D97 DATA DESCRIPTOR       08074B50 (134695760)\n+441D9B CRC                   DA916F8A (3666964362)\n+441D9F Compressed Size       000007A1 (1953)\n+441DA3 Uncompressed Size     000007A1 (1953)\n+\n+441DA7 LOCAL HEADER #1258    04034B50 (67324752)\n+441DAB Extract Zip Spec      14 (20) '2.0'\n+441DAC Extract OS            00 (0) 'MS-DOS'\n+441DAD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+441DAF Compression Method    0000 (0) 'Stored'\n+441DB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+441DB5 CRC                   00000000 (0)\n+441DB9 Compressed Size       00000000 (0)\n+441DBD Uncompressed Size     00000000 (0)\n+441DC1 Filename Length       003A (58)\n+441DC3 Extra Length          0009 (9)\n+441DC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x441DC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+441DFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+441E01   Length              0005 (5)\n+441E03   Flags               01 (1) 'Modification'\n+441E04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+441E08 PAYLOAD\n+\n+442E86 DATA DESCRIPTOR       08074B50 (134695760)\n+442E8A CRC                   5C0FF18B (1544548747)\n+442E8E Compressed Size       0000107E (4222)\n+442E92 Uncompressed Size     0000107E (4222)\n+\n+442E96 LOCAL HEADER #1259    04034B50 (67324752)\n+442E9A Extract Zip Spec      14 (20) '2.0'\n+442E9B Extract OS            00 (0) 'MS-DOS'\n+442E9C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+442E9E Compression Method    0000 (0) 'Stored'\n+442EA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+442EA4 CRC                   00000000 (0)\n+442EA8 Compressed Size       00000000 (0)\n+442EAC Uncompressed Size     00000000 (0)\n+442EB0 Filename Length       003F (63)\n+442EB2 Extra Length          0009 (9)\n+442EB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x442EB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+442EF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+442EF5   Length              0005 (5)\n+442EF7   Flags               01 (1) 'Modification'\n+442EF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+442EFC PAYLOAD\n+\n+44360F DATA DESCRIPTOR       08074B50 (134695760)\n+443613 CRC                   F592DA8D (4120042125)\n+443617 Compressed Size       00000713 (1811)\n+44361B Uncompressed Size     00000713 (1811)\n+\n+44361F LOCAL HEADER #1260    04034B50 (67324752)\n+443623 Extract Zip Spec      14 (20) '2.0'\n+443624 Extract OS            00 (0) 'MS-DOS'\n+443625 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+443627 Compression Method    0000 (0) 'Stored'\n+443629 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44362D CRC                   00000000 (0)\n+443631 Compressed Size       00000000 (0)\n+443635 Uncompressed Size     00000000 (0)\n+443639 Filename Length       003D (61)\n+44363B Extra Length          0009 (9)\n+44363D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x443659: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x44363D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 44367A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 44367C   Length              0005 (5)\n 44367E   Flags               01 (1) 'Modification'\n 44367F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+443683 PAYLOAD\n \n-443683 LOCAL HEADER #1278    04034B50 (67324752)\n-443687 Extract Zip Spec      14 (20) '2.0'\n-443688 Extract OS            00 (0) 'MS-DOS'\n-443689 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44368B Compression Method    0000 (0) 'Stored'\n-44368D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-443691 CRC                   00000000 (0)\n-443695 Compressed Size       00000000 (0)\n-443699 Uncompressed Size     00000000 (0)\n-44369D Filename Length       003E (62)\n-44369F Extra Length          0009 (9)\n-4436A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4436A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4436DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4436E1   Length              0005 (5)\n-4436E3   Flags               01 (1) 'Modification'\n-4436E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4436E8 PAYLOAD\n-\n-443F1B DATA DESCRIPTOR       08074B50 (134695760)\n-443F1F CRC                   D05840B7 (3495444663)\n-443F23 Compressed Size       00000833 (2099)\n-443F27 Uncompressed Size     00000833 (2099)\n-\n-443F2B LOCAL HEADER #1279    04034B50 (67324752)\n-443F2F Extract Zip Spec      14 (20) '2.0'\n-443F30 Extract OS            00 (0) 'MS-DOS'\n-443F31 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-443F33 Compression Method    0000 (0) 'Stored'\n-443F35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-443F39 CRC                   00000000 (0)\n-443F3D Compressed Size       00000000 (0)\n-443F41 Uncompressed Size     00000000 (0)\n-443F45 Filename Length       0045 (69)\n-443F47 Extra Length          0009 (9)\n-443F49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x443F49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-443F8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-443F90   Length              0005 (5)\n-443F92   Flags               01 (1) 'Modification'\n-443F93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-443F97 PAYLOAD\n-\n-44465A DATA DESCRIPTOR       08074B50 (134695760)\n-44465E CRC                   D9AD2407 (3652002823)\n-444662 Compressed Size       000006C3 (1731)\n-444666 Uncompressed Size     000006C3 (1731)\n-\n-44466A LOCAL HEADER #1280    04034B50 (67324752)\n-44466E Extract Zip Spec      14 (20) '2.0'\n-44466F Extract OS            00 (0) 'MS-DOS'\n-444670 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-444672 Compression Method    0000 (0) 'Stored'\n-444674 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-444678 CRC                   00000000 (0)\n-44467C Compressed Size       00000000 (0)\n-444680 Uncompressed Size     00000000 (0)\n-444684 Filename Length       0046 (70)\n-444686 Extra Length          0009 (9)\n-444688 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x444688: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4446CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4446D0   Length              0005 (5)\n-4446D2   Flags               01 (1) 'Modification'\n-4446D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4446D7 PAYLOAD\n-\n-444C3C DATA DESCRIPTOR       08074B50 (134695760)\n-444C40 CRC                   6AAAC02C (1789575212)\n-444C44 Compressed Size       00000565 (1381)\n-444C48 Uncompressed Size     00000565 (1381)\n-\n-444C4C LOCAL HEADER #1281    04034B50 (67324752)\n-444C50 Extract Zip Spec      14 (20) '2.0'\n-444C51 Extract OS            00 (0) 'MS-DOS'\n-444C52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-444C54 Compression Method    0000 (0) 'Stored'\n-444C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-444C5A CRC                   00000000 (0)\n-444C5E Compressed Size       00000000 (0)\n-444C62 Uncompressed Size     00000000 (0)\n-444C66 Filename Length       0044 (68)\n-444C68 Extra Length          0009 (9)\n-444C6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x444C6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-444CAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-444CB0   Length              0005 (5)\n-444CB2   Flags               01 (1) 'Modification'\n-444CB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-444CB7 PAYLOAD\n-\n-445527 DATA DESCRIPTOR       08074B50 (134695760)\n-44552B CRC                   5F8855A5 (1602770341)\n-44552F Compressed Size       00000870 (2160)\n-445533 Uncompressed Size     00000870 (2160)\n-\n-445537 LOCAL HEADER #1282    04034B50 (67324752)\n-44553B Extract Zip Spec      14 (20) '2.0'\n-44553C Extract OS            00 (0) 'MS-DOS'\n-44553D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44553F Compression Method    0000 (0) 'Stored'\n-445541 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-445545 CRC                   00000000 (0)\n-445549 Compressed Size       00000000 (0)\n-44554D Uncompressed Size     00000000 (0)\n-445551 Filename Length       003C (60)\n-445553 Extra Length          0009 (9)\n-445555 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x445555: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-445591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-445593   Length              0005 (5)\n-445595   Flags               01 (1) 'Modification'\n-445596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-44559A PAYLOAD\n-\n-446D4A DATA DESCRIPTOR       08074B50 (134695760)\n-446D4E CRC                   C2AD0276 (3266118262)\n-446D52 Compressed Size       000017B0 (6064)\n-446D56 Uncompressed Size     000017B0 (6064)\n-\n-446D5A LOCAL HEADER #1283    04034B50 (67324752)\n-446D5E Extract Zip Spec      14 (20) '2.0'\n-446D5F Extract OS            00 (0) 'MS-DOS'\n-446D60 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-446D62 Compression Method    0000 (0) 'Stored'\n-446D64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-446D68 CRC                   00000000 (0)\n-446D6C Compressed Size       00000000 (0)\n-446D70 Uncompressed Size     00000000 (0)\n-446D74 Filename Length       0045 (69)\n-446D76 Extra Length          0009 (9)\n-446D78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x446D78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-446DBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-446DBF   Length              0005 (5)\n-446DC1   Flags               01 (1) 'Modification'\n-446DC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-446DC6 PAYLOAD\n-\n-4497ED DATA DESCRIPTOR       08074B50 (134695760)\n-4497F1 CRC                   77B5952D (2008388909)\n-4497F5 Compressed Size       00002A27 (10791)\n-4497F9 Uncompressed Size     00002A27 (10791)\n-\n-4497FD LOCAL HEADER #1284    04034B50 (67324752)\n-449801 Extract Zip Spec      14 (20) '2.0'\n-449802 Extract OS            00 (0) 'MS-DOS'\n-449803 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-449805 Compression Method    0000 (0) 'Stored'\n-449807 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-44980B CRC                   00000000 (0)\n-44980F Compressed Size       00000000 (0)\n-449813 Uncompressed Size     00000000 (0)\n-449817 Filename Length       0040 (64)\n-449819 Extra Length          0009 (9)\n-44981B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44981B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-44985B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-44985D   Length              0005 (5)\n-44985F   Flags               01 (1) 'Modification'\n-449860   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-449864 PAYLOAD\n-\n-44B854 DATA DESCRIPTOR       08074B50 (134695760)\n-44B858 CRC                   013987D8 (20547544)\n-44B85C Compressed Size       00001FF0 (8176)\n-44B860 Uncompressed Size     00001FF0 (8176)\n-\n-44B864 LOCAL HEADER #1285    04034B50 (67324752)\n-44B868 Extract Zip Spec      14 (20) '2.0'\n-44B869 Extract OS            00 (0) 'MS-DOS'\n-44B86A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44B86C Compression Method    0000 (0) 'Stored'\n-44B86E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-44B872 CRC                   00000000 (0)\n-44B876 Compressed Size       00000000 (0)\n-44B87A Uncompressed Size     00000000 (0)\n-44B87E Filename Length       0038 (56)\n-44B880 Extra Length          0009 (9)\n-44B882 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44B882: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-44B8BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-44B8BC   Length              0005 (5)\n-44B8BE   Flags               01 (1) 'Modification'\n-44B8BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-44B8C3 PAYLOAD\n-\n-44E7E6 DATA DESCRIPTOR       08074B50 (134695760)\n-44E7EA CRC                   E564338A (3848549258)\n-44E7EE Compressed Size       00002F23 (12067)\n-44E7F2 Uncompressed Size     00002F23 (12067)\n-\n-44E7F6 LOCAL HEADER #1286    04034B50 (67324752)\n-44E7FA Extract Zip Spec      14 (20) '2.0'\n-44E7FB Extract OS            00 (0) 'MS-DOS'\n-44E7FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44E7FE Compression Method    0000 (0) 'Stored'\n-44E800 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-44E804 CRC                   00000000 (0)\n-44E808 Compressed Size       00000000 (0)\n-44E80C Uncompressed Size     00000000 (0)\n-44E810 Filename Length       003F (63)\n-44E812 Extra Length          0009 (9)\n-44E814 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44E814: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-44E853 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-44E855   Length              0005 (5)\n-44E857   Flags               01 (1) 'Modification'\n-44E858   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-44E85C PAYLOAD\n-\n-44EE3C DATA DESCRIPTOR       08074B50 (134695760)\n-44EE40 CRC                   4D393448 (1295594568)\n-44EE44 Compressed Size       000005E0 (1504)\n-44EE48 Uncompressed Size     000005E0 (1504)\n-\n-44EE4C LOCAL HEADER #1287    04034B50 (67324752)\n-44EE50 Extract Zip Spec      14 (20) '2.0'\n-44EE51 Extract OS            00 (0) 'MS-DOS'\n-44EE52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-44EE54 Compression Method    0000 (0) 'Stored'\n-44EE56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-44EE5A CRC                   00000000 (0)\n-44EE5E Compressed Size       00000000 (0)\n-44EE62 Uncompressed Size     00000000 (0)\n-44EE66 Filename Length       0036 (54)\n-44EE68 Extra Length          0009 (9)\n-44EE6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x44EE6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-44EEA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-44EEA2   Length              0005 (5)\n-44EEA4   Flags               01 (1) 'Modification'\n-44EEA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-44EEA9 PAYLOAD\n-\n-451D52 DATA DESCRIPTOR       08074B50 (134695760)\n-451D56 CRC                   6E2B9BED (1848351725)\n-451D5A Compressed Size       00002EA9 (11945)\n-451D5E Uncompressed Size     00002EA9 (11945)\n-\n-451D62 LOCAL HEADER #1288    04034B50 (67324752)\n-451D66 Extract Zip Spec      14 (20) '2.0'\n-451D67 Extract OS            00 (0) 'MS-DOS'\n-451D68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-451D6A Compression Method    0000 (0) 'Stored'\n-451D6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-451D70 CRC                   00000000 (0)\n-451D74 Compressed Size       00000000 (0)\n-451D78 Uncompressed Size     00000000 (0)\n-451D7C Filename Length       003D (61)\n-451D7E Extra Length          0009 (9)\n-451D80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x451D80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-451DBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-451DBF   Length              0005 (5)\n-451DC1   Flags               01 (1) 'Modification'\n-451DC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-451DC6 PAYLOAD\n-\n-45257C DATA DESCRIPTOR       08074B50 (134695760)\n-452580 CRC                   9F02351C (2667722012)\n-452584 Compressed Size       000007B6 (1974)\n-452588 Uncompressed Size     000007B6 (1974)\n-\n-45258C LOCAL HEADER #1289    04034B50 (67324752)\n-452590 Extract Zip Spec      14 (20) '2.0'\n-452591 Extract OS            00 (0) 'MS-DOS'\n-452592 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-452594 Compression Method    0000 (0) 'Stored'\n-452596 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45259A CRC                   00000000 (0)\n-45259E Compressed Size       00000000 (0)\n-4525A2 Uncompressed Size     00000000 (0)\n-4525A6 Filename Length       003E (62)\n-4525A8 Extra Length          0009 (9)\n-4525AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4525AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4525E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4525EA   Length              0005 (5)\n-4525EC   Flags               01 (1) 'Modification'\n-4525ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4525F1 PAYLOAD\n-\n-45780F DATA DESCRIPTOR       08074B50 (134695760)\n-457813 CRC                   88D1E805 (2295457797)\n-457817 Compressed Size       0000521E (21022)\n-45781B Uncompressed Size     0000521E (21022)\n-\n-45781F LOCAL HEADER #1290    04034B50 (67324752)\n-457823 Extract Zip Spec      14 (20) '2.0'\n-457824 Extract OS            00 (0) 'MS-DOS'\n-457825 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-457827 Compression Method    0000 (0) 'Stored'\n-457829 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45782D CRC                   00000000 (0)\n-457831 Compressed Size       00000000 (0)\n-457835 Uncompressed Size     00000000 (0)\n-457839 Filename Length       0047 (71)\n-45783B Extra Length          0009 (9)\n-45783D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45783D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-457884 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-457886   Length              0005 (5)\n-457888   Flags               01 (1) 'Modification'\n-457889   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45788D PAYLOAD\n-\n-45A569 DATA DESCRIPTOR       08074B50 (134695760)\n-45A56D CRC                   1C63503A (476270650)\n-45A571 Compressed Size       00002CDC (11484)\n-45A575 Uncompressed Size     00002CDC (11484)\n-\n-45A579 LOCAL HEADER #1291    04034B50 (67324752)\n-45A57D Extract Zip Spec      14 (20) '2.0'\n-45A57E Extract OS            00 (0) 'MS-DOS'\n-45A57F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45A581 Compression Method    0000 (0) 'Stored'\n-45A583 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45A587 CRC                   00000000 (0)\n-45A58B Compressed Size       00000000 (0)\n-45A58F Uncompressed Size     00000000 (0)\n-45A593 Filename Length       0045 (69)\n-45A595 Extra Length          0009 (9)\n-45A597 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45A597: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45A5DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45A5DE   Length              0005 (5)\n-45A5E0   Flags               01 (1) 'Modification'\n-45A5E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45A5E5 PAYLOAD\n-\n-45AC72 DATA DESCRIPTOR       08074B50 (134695760)\n-45AC76 CRC                   A7D42D9C (2815700380)\n-45AC7A Compressed Size       0000068D (1677)\n-45AC7E Uncompressed Size     0000068D (1677)\n-\n-45AC82 LOCAL HEADER #1292    04034B50 (67324752)\n-45AC86 Extract Zip Spec      14 (20) '2.0'\n-45AC87 Extract OS            00 (0) 'MS-DOS'\n-45AC88 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45AC8A Compression Method    0000 (0) 'Stored'\n-45AC8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45AC90 CRC                   00000000 (0)\n-45AC94 Compressed Size       00000000 (0)\n-45AC98 Uncompressed Size     00000000 (0)\n-45AC9C Filename Length       0035 (53)\n-45AC9E Extra Length          0009 (9)\n-45ACA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45ACA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45ACD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45ACD7   Length              0005 (5)\n-45ACD9   Flags               01 (1) 'Modification'\n-45ACDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45ACDE PAYLOAD\n-\n-45BA88 DATA DESCRIPTOR       08074B50 (134695760)\n-45BA8C CRC                   F623C4B3 (4129539251)\n-45BA90 Compressed Size       00000DAA (3498)\n-45BA94 Uncompressed Size     00000DAA (3498)\n-\n-45BA98 LOCAL HEADER #1293    04034B50 (67324752)\n-45BA9C Extract Zip Spec      14 (20) '2.0'\n-45BA9D Extract OS            00 (0) 'MS-DOS'\n-45BA9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45BAA0 Compression Method    0000 (0) 'Stored'\n-45BAA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45BAA6 CRC                   00000000 (0)\n-45BAAA Compressed Size       00000000 (0)\n-45BAAE Uncompressed Size     00000000 (0)\n-45BAB2 Filename Length       003F (63)\n-45BAB4 Extra Length          0009 (9)\n-45BAB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45BAB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45BAF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45BAF7   Length              0005 (5)\n-45BAF9   Flags               01 (1) 'Modification'\n-45BAFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45BAFE PAYLOAD\n-\n-45C0D4 DATA DESCRIPTOR       08074B50 (134695760)\n-45C0D8 CRC                   5B09319E (1527329182)\n-45C0DC Compressed Size       000005D6 (1494)\n-45C0E0 Uncompressed Size     000005D6 (1494)\n-\n-45C0E4 LOCAL HEADER #1294    04034B50 (67324752)\n-45C0E8 Extract Zip Spec      14 (20) '2.0'\n-45C0E9 Extract OS            00 (0) 'MS-DOS'\n-45C0EA General Purpose Flag  0000 (0)\n-45C0EC Compression Method    0000 (0) 'Stored'\n-45C0EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45C0F2 CRC                   00000000 (0)\n-45C0F6 Compressed Size       00000000 (0)\n-45C0FA Uncompressed Size     00000000 (0)\n-45C0FE Filename Length       0027 (39)\n-45C100 Extra Length          0009 (9)\n-45C102 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45C102: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45C129 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45C12B   Length              0005 (5)\n-45C12D   Flags               01 (1) 'Modification'\n-45C12E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-45C132 LOCAL HEADER #1295    04034B50 (67324752)\n-45C136 Extract Zip Spec      14 (20) '2.0'\n-45C137 Extract OS            00 (0) 'MS-DOS'\n-45C138 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45C13A Compression Method    0000 (0) 'Stored'\n-45C13C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45C140 CRC                   00000000 (0)\n-45C144 Compressed Size       00000000 (0)\n-45C148 Uncompressed Size     00000000 (0)\n-45C14C Filename Length       004A (74)\n-45C14E Extra Length          0009 (9)\n-45C150 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45C150: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45C19A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45C19C   Length              0005 (5)\n-45C19E   Flags               01 (1) 'Modification'\n-45C19F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45C1A3 PAYLOAD\n-\n-45C699 DATA DESCRIPTOR       08074B50 (134695760)\n-45C69D CRC                   504AAFAB (1347071915)\n-45C6A1 Compressed Size       000004F6 (1270)\n-45C6A5 Uncompressed Size     000004F6 (1270)\n-\n-45C6A9 LOCAL HEADER #1296    04034B50 (67324752)\n-45C6AD Extract Zip Spec      14 (20) '2.0'\n-45C6AE Extract OS            00 (0) 'MS-DOS'\n-45C6AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45C6B1 Compression Method    0000 (0) 'Stored'\n-45C6B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45C6B7 CRC                   00000000 (0)\n-45C6BB Compressed Size       00000000 (0)\n-45C6BF Uncompressed Size     00000000 (0)\n-45C6C3 Filename Length       004B (75)\n-45C6C5 Extra Length          0009 (9)\n-45C6C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45C6C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45C712 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45C714   Length              0005 (5)\n-45C716   Flags               01 (1) 'Modification'\n-45C717   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45C71B PAYLOAD\n-\n-45CC16 DATA DESCRIPTOR       08074B50 (134695760)\n-45CC1A CRC                   24C1B311 (616674065)\n-45CC1E Compressed Size       000004FB (1275)\n-45CC22 Uncompressed Size     000004FB (1275)\n-\n-45CC26 LOCAL HEADER #1297    04034B50 (67324752)\n-45CC2A Extract Zip Spec      14 (20) '2.0'\n-45CC2B Extract OS            00 (0) 'MS-DOS'\n-45CC2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45CC2E Compression Method    0000 (0) 'Stored'\n-45CC30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45CC34 CRC                   00000000 (0)\n-45CC38 Compressed Size       00000000 (0)\n-45CC3C Uncompressed Size     00000000 (0)\n-45CC40 Filename Length       0041 (65)\n-45CC42 Extra Length          0009 (9)\n-45CC44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45CC44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45CC85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45CC87   Length              0005 (5)\n-45CC89   Flags               01 (1) 'Modification'\n-45CC8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45CC8E PAYLOAD\n-\n-45D4FD DATA DESCRIPTOR       08074B50 (134695760)\n-45D501 CRC                   F122AA0E (4045580814)\n-45D505 Compressed Size       0000086F (2159)\n-45D509 Uncompressed Size     0000086F (2159)\n-\n-45D50D LOCAL HEADER #1298    04034B50 (67324752)\n-45D511 Extract Zip Spec      14 (20) '2.0'\n-45D512 Extract OS            00 (0) 'MS-DOS'\n-45D513 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45D515 Compression Method    0000 (0) 'Stored'\n-45D517 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45D51B CRC                   00000000 (0)\n-45D51F Compressed Size       00000000 (0)\n-45D523 Uncompressed Size     00000000 (0)\n-45D527 Filename Length       004A (74)\n-45D529 Extra Length          0009 (9)\n-45D52B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45D52B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45D575 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45D577   Length              0005 (5)\n-45D579   Flags               01 (1) 'Modification'\n-45D57A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45D57E PAYLOAD\n-\n-45DBF9 DATA DESCRIPTOR       08074B50 (134695760)\n-45DBFD CRC                   267DEE50 (645787216)\n-45DC01 Compressed Size       0000067B (1659)\n-45DC05 Uncompressed Size     0000067B (1659)\n-\n-45DC09 LOCAL HEADER #1299    04034B50 (67324752)\n-45DC0D Extract Zip Spec      14 (20) '2.0'\n-45DC0E Extract OS            00 (0) 'MS-DOS'\n-45DC0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45DC11 Compression Method    0000 (0) 'Stored'\n-45DC13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45DC17 CRC                   00000000 (0)\n-45DC1B Compressed Size       00000000 (0)\n-45DC1F Uncompressed Size     00000000 (0)\n-45DC23 Filename Length       004C (76)\n-45DC25 Extra Length          0009 (9)\n-45DC27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45DC27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45DC73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45DC75   Length              0005 (5)\n-45DC77   Flags               01 (1) 'Modification'\n-45DC78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45DC7C PAYLOAD\n-\n-45E1A0 DATA DESCRIPTOR       08074B50 (134695760)\n-45E1A4 CRC                   398D4C03 (965561347)\n-45E1A8 Compressed Size       00000524 (1316)\n-45E1AC Uncompressed Size     00000524 (1316)\n-\n-45E1B0 LOCAL HEADER #1300    04034B50 (67324752)\n-45E1B4 Extract Zip Spec      14 (20) '2.0'\n-45E1B5 Extract OS            00 (0) 'MS-DOS'\n-45E1B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45E1B8 Compression Method    0000 (0) 'Stored'\n-45E1BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45E1BE CRC                   00000000 (0)\n-45E1C2 Compressed Size       00000000 (0)\n-45E1C6 Uncompressed Size     00000000 (0)\n-45E1CA Filename Length       004D (77)\n-45E1CC Extra Length          0009 (9)\n-45E1CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45E1CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45E21B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45E21D   Length              0005 (5)\n-45E21F   Flags               01 (1) 'Modification'\n-45E220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45E224 PAYLOAD\n-\n-45E74E DATA DESCRIPTOR       08074B50 (134695760)\n-45E752 CRC                   120048C8 (302008520)\n-45E756 Compressed Size       0000052A (1322)\n-45E75A Uncompressed Size     0000052A (1322)\n-\n-45E75E LOCAL HEADER #1301    04034B50 (67324752)\n-45E762 Extract Zip Spec      14 (20) '2.0'\n-45E763 Extract OS            00 (0) 'MS-DOS'\n-45E764 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45E766 Compression Method    0000 (0) 'Stored'\n-45E768 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45E76C CRC                   00000000 (0)\n-45E770 Compressed Size       00000000 (0)\n-45E774 Uncompressed Size     00000000 (0)\n-45E778 Filename Length       0040 (64)\n-45E77A Extra Length          0009 (9)\n-45E77C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45E77C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45E7BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45E7BE   Length              0005 (5)\n-45E7C0   Flags               01 (1) 'Modification'\n-45E7C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45E7C5 PAYLOAD\n-\n-45EE3A DATA DESCRIPTOR       08074B50 (134695760)\n-45EE3E CRC                   7B9FC9D5 (2074069461)\n-45EE42 Compressed Size       00000675 (1653)\n-45EE46 Uncompressed Size     00000675 (1653)\n-\n-45EE4A LOCAL HEADER #1302    04034B50 (67324752)\n-45EE4E Extract Zip Spec      14 (20) '2.0'\n-45EE4F Extract OS            00 (0) 'MS-DOS'\n-45EE50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45EE52 Compression Method    0000 (0) 'Stored'\n-45EE54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45EE58 CRC                   00000000 (0)\n-45EE5C Compressed Size       00000000 (0)\n-45EE60 Uncompressed Size     00000000 (0)\n-45EE64 Filename Length       004D (77)\n-45EE66 Extra Length          0009 (9)\n-45EE68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45EE68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45EEB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45EEB7   Length              0005 (5)\n-45EEB9   Flags               01 (1) 'Modification'\n-45EEBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45EEBE PAYLOAD\n-\n-45F405 DATA DESCRIPTOR       08074B50 (134695760)\n-45F409 CRC                   A2914700 (2727429888)\n-45F40D Compressed Size       00000547 (1351)\n-45F411 Uncompressed Size     00000547 (1351)\n-\n-45F415 LOCAL HEADER #1303    04034B50 (67324752)\n-45F419 Extract Zip Spec      14 (20) '2.0'\n-45F41A Extract OS            00 (0) 'MS-DOS'\n-45F41B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45F41D Compression Method    0000 (0) 'Stored'\n-45F41F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45F423 CRC                   00000000 (0)\n-45F427 Compressed Size       00000000 (0)\n-45F42B Uncompressed Size     00000000 (0)\n-45F42F Filename Length       004F (79)\n-45F431 Extra Length          0009 (9)\n-45F433 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45F433: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45F482 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45F484   Length              0005 (5)\n-45F486   Flags               01 (1) 'Modification'\n-45F487   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45F48B PAYLOAD\n-\n-45F9DA DATA DESCRIPTOR       08074B50 (134695760)\n-45F9DE CRC                   A0D533A5 (2698326949)\n-45F9E2 Compressed Size       0000054F (1359)\n-45F9E6 Uncompressed Size     0000054F (1359)\n-\n-45F9EA LOCAL HEADER #1304    04034B50 (67324752)\n-45F9EE Extract Zip Spec      14 (20) '2.0'\n-45F9EF Extract OS            00 (0) 'MS-DOS'\n-45F9F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45F9F2 Compression Method    0000 (0) 'Stored'\n-45F9F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45F9F8 CRC                   00000000 (0)\n-45F9FC Compressed Size       00000000 (0)\n-45FA00 Uncompressed Size     00000000 (0)\n-45FA04 Filename Length       004A (74)\n-45FA06 Extra Length          0009 (9)\n-45FA08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45FA08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-45FA52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-45FA54   Length              0005 (5)\n-45FA56   Flags               01 (1) 'Modification'\n-45FA57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-45FA5B PAYLOAD\n-\n-45FF9B DATA DESCRIPTOR       08074B50 (134695760)\n-45FF9F CRC                   DD6C864E (3714877006)\n-45FFA3 Compressed Size       00000540 (1344)\n-45FFA7 Uncompressed Size     00000540 (1344)\n-\n-45FFAB LOCAL HEADER #1305    04034B50 (67324752)\n-45FFAF Extract Zip Spec      14 (20) '2.0'\n-45FFB0 Extract OS            00 (0) 'MS-DOS'\n-45FFB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-45FFB3 Compression Method    0000 (0) 'Stored'\n-45FFB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-45FFB9 CRC                   00000000 (0)\n-45FFBD Compressed Size       00000000 (0)\n-45FFC1 Uncompressed Size     00000000 (0)\n-45FFC5 Filename Length       004C (76)\n-45FFC7 Extra Length          0009 (9)\n-45FFC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x45FFC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-460015 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-460017   Length              0005 (5)\n-460019   Flags               01 (1) 'Modification'\n-46001A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46001E PAYLOAD\n-\n-460583 DATA DESCRIPTOR       08074B50 (134695760)\n-460587 CRC                   F868DDB6 (4167622070)\n-46058B Compressed Size       00000565 (1381)\n-46058F Uncompressed Size     00000565 (1381)\n-\n-460593 LOCAL HEADER #1306    04034B50 (67324752)\n-460597 Extract Zip Spec      14 (20) '2.0'\n-460598 Extract OS            00 (0) 'MS-DOS'\n-460599 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46059B Compression Method    0000 (0) 'Stored'\n-46059D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4605A1 CRC                   00000000 (0)\n-4605A5 Compressed Size       00000000 (0)\n-4605A9 Uncompressed Size     00000000 (0)\n-4605AD Filename Length       0048 (72)\n-4605AF Extra Length          0009 (9)\n-4605B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4605B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4605F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4605FB   Length              0005 (5)\n-4605FD   Flags               01 (1) 'Modification'\n-4605FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-460602 PAYLOAD\n-\n-460EA8 DATA DESCRIPTOR       08074B50 (134695760)\n-460EAC CRC                   97496C8E (2538171534)\n-460EB0 Compressed Size       000008A6 (2214)\n-460EB4 Uncompressed Size     000008A6 (2214)\n-\n-460EB8 LOCAL HEADER #1307    04034B50 (67324752)\n-460EBC Extract Zip Spec      14 (20) '2.0'\n-460EBD Extract OS            00 (0) 'MS-DOS'\n-460EBE General Purpose Flag  0000 (0)\n-460EC0 Compression Method    0000 (0) 'Stored'\n-460EC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-460EC6 CRC                   00000000 (0)\n-460ECA Compressed Size       00000000 (0)\n-460ECE Uncompressed Size     00000000 (0)\n-460ED2 Filename Length       0030 (48)\n-460ED4 Extra Length          0009 (9)\n-460ED6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x460ED6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-460F06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-460F08   Length              0005 (5)\n-460F0A   Flags               01 (1) 'Modification'\n-460F0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-460F0F LOCAL HEADER #1308    04034B50 (67324752)\n-460F13 Extract Zip Spec      14 (20) '2.0'\n-460F14 Extract OS            00 (0) 'MS-DOS'\n-460F15 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-460F17 Compression Method    0000 (0) 'Stored'\n-460F19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-460F1D CRC                   00000000 (0)\n-460F21 Compressed Size       00000000 (0)\n-460F25 Uncompressed Size     00000000 (0)\n-460F29 Filename Length       0049 (73)\n-460F2B Extra Length          0009 (9)\n-460F2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x460F2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-460F76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-460F78   Length              0005 (5)\n-460F7A   Flags               01 (1) 'Modification'\n-460F7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-460F7F PAYLOAD\n-\n-461DA1 DATA DESCRIPTOR       08074B50 (134695760)\n-461DA5 CRC                   C309C134 (3272196404)\n-461DA9 Compressed Size       00000E22 (3618)\n-461DAD Uncompressed Size     00000E22 (3618)\n-\n-461DB1 LOCAL HEADER #1309    04034B50 (67324752)\n-461DB5 Extract Zip Spec      14 (20) '2.0'\n-461DB6 Extract OS            00 (0) 'MS-DOS'\n-461DB7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-461DB9 Compression Method    0000 (0) 'Stored'\n-461DBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-461DBF CRC                   00000000 (0)\n-461DC3 Compressed Size       00000000 (0)\n-461DC7 Uncompressed Size     00000000 (0)\n-461DCB Filename Length       0054 (84)\n-461DCD Extra Length          0009 (9)\n-461DCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x461DCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-461E23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-461E25   Length              0005 (5)\n-461E27   Flags               01 (1) 'Modification'\n-461E28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-461E2C PAYLOAD\n-\n-464A61 DATA DESCRIPTOR       08074B50 (134695760)\n-464A65 CRC                   BD334F2B (3174256427)\n-464A69 Compressed Size       00002C35 (11317)\n-464A6D Uncompressed Size     00002C35 (11317)\n-\n-464A71 LOCAL HEADER #1310    04034B50 (67324752)\n-464A75 Extract Zip Spec      14 (20) '2.0'\n-464A76 Extract OS            00 (0) 'MS-DOS'\n-464A77 General Purpose Flag  0000 (0)\n-464A79 Compression Method    0000 (0) 'Stored'\n-464A7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-464A7F CRC                   00000000 (0)\n-464A83 Compressed Size       00000000 (0)\n-464A87 Uncompressed Size     00000000 (0)\n-464A8B Filename Length       002A (42)\n-464A8D Extra Length          0009 (9)\n-464A8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x464A8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-464AB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-464ABB   Length              0005 (5)\n-464ABD   Flags               01 (1) 'Modification'\n-464ABE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-464AC2 LOCAL HEADER #1311    04034B50 (67324752)\n-464AC6 Extract Zip Spec      14 (20) '2.0'\n-464AC7 Extract OS            00 (0) 'MS-DOS'\n-464AC8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-464ACA Compression Method    0000 (0) 'Stored'\n-464ACC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-464AD0 CRC                   00000000 (0)\n-464AD4 Compressed Size       00000000 (0)\n-464AD8 Uncompressed Size     00000000 (0)\n-464ADC Filename Length       0049 (73)\n-464ADE Extra Length          0009 (9)\n-464AE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x464AE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-464B29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-464B2B   Length              0005 (5)\n-464B2D   Flags               01 (1) 'Modification'\n-464B2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-464B32 PAYLOAD\n-\n-4659A8 DATA DESCRIPTOR       08074B50 (134695760)\n-4659AC CRC                   8764F382 (2271540098)\n-4659B0 Compressed Size       00000E76 (3702)\n-4659B4 Uncompressed Size     00000E76 (3702)\n-\n-4659B8 LOCAL HEADER #1312    04034B50 (67324752)\n-4659BC Extract Zip Spec      14 (20) '2.0'\n-4659BD Extract OS            00 (0) 'MS-DOS'\n-4659BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4659C0 Compression Method    0000 (0) 'Stored'\n-4659C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4659C6 CRC                   00000000 (0)\n-4659CA Compressed Size       00000000 (0)\n-4659CE Uncompressed Size     00000000 (0)\n-4659D2 Filename Length       0048 (72)\n-4659D4 Extra Length          0009 (9)\n-4659D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4659D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-465A1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-465A20   Length              0005 (5)\n-465A22   Flags               01 (1) 'Modification'\n-465A23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-465A27 PAYLOAD\n-\n-465FFE DATA DESCRIPTOR       08074B50 (134695760)\n-466002 CRC                   E42AC0C2 (3828007106)\n-466006 Compressed Size       000005D7 (1495)\n-46600A Uncompressed Size     000005D7 (1495)\n-\n-46600E LOCAL HEADER #1313    04034B50 (67324752)\n-466012 Extract Zip Spec      14 (20) '2.0'\n-466013 Extract OS            00 (0) 'MS-DOS'\n-466014 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-466016 Compression Method    0000 (0) 'Stored'\n-466018 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46601C CRC                   00000000 (0)\n-466020 Compressed Size       00000000 (0)\n-466024 Uncompressed Size     00000000 (0)\n-466028 Filename Length       0059 (89)\n-46602A Extra Length          0009 (9)\n-46602C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46602C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-466085 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-466087   Length              0005 (5)\n-466089   Flags               01 (1) 'Modification'\n-46608A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46608E PAYLOAD\n-\n-466B78 DATA DESCRIPTOR       08074B50 (134695760)\n-466B7C CRC                   33C91E00 (868818432)\n-466B80 Compressed Size       00000AEA (2794)\n-466B84 Uncompressed Size     00000AEA (2794)\n-\n-466B88 LOCAL HEADER #1314    04034B50 (67324752)\n-466B8C Extract Zip Spec      14 (20) '2.0'\n-466B8D Extract OS            00 (0) 'MS-DOS'\n-466B8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-466B90 Compression Method    0000 (0) 'Stored'\n-466B92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-466B96 CRC                   00000000 (0)\n-466B9A Compressed Size       00000000 (0)\n-466B9E Uncompressed Size     00000000 (0)\n-466BA2 Filename Length       003C (60)\n-466BA4 Extra Length          0009 (9)\n-466BA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x466BA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-466BE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-466BE4   Length              0005 (5)\n-466BE6   Flags               01 (1) 'Modification'\n-466BE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-466BEB PAYLOAD\n-\n-467E8E DATA DESCRIPTOR       08074B50 (134695760)\n-467E92 CRC                   055EEF97 (90107799)\n-467E96 Compressed Size       000012A3 (4771)\n-467E9A Uncompressed Size     000012A3 (4771)\n-\n-467E9E LOCAL HEADER #1315    04034B50 (67324752)\n-467EA2 Extract Zip Spec      14 (20) '2.0'\n-467EA3 Extract OS            00 (0) 'MS-DOS'\n-467EA4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-467EA6 Compression Method    0000 (0) 'Stored'\n-467EA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-467EAC CRC                   00000000 (0)\n-467EB0 Compressed Size       00000000 (0)\n-467EB4 Uncompressed Size     00000000 (0)\n-467EB8 Filename Length       004E (78)\n-467EBA Extra Length          0009 (9)\n-467EBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x467EBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-467F0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-467F0C   Length              0005 (5)\n-467F0E   Flags               01 (1) 'Modification'\n-467F0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-467F13 PAYLOAD\n-\n-46880B DATA DESCRIPTOR       08074B50 (134695760)\n-46880F CRC                   02F66D1C (49704220)\n-468813 Compressed Size       000008F8 (2296)\n-468817 Uncompressed Size     000008F8 (2296)\n-\n-46881B LOCAL HEADER #1316    04034B50 (67324752)\n-46881F Extract Zip Spec      14 (20) '2.0'\n-468820 Extract OS            00 (0) 'MS-DOS'\n-468821 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-468823 Compression Method    0000 (0) 'Stored'\n-468825 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-468829 CRC                   00000000 (0)\n-46882D Compressed Size       00000000 (0)\n-468831 Uncompressed Size     00000000 (0)\n-468835 Filename Length       0054 (84)\n-468837 Extra Length          0009 (9)\n-468839 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x468839: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46888D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46888F   Length              0005 (5)\n-468891   Flags               01 (1) 'Modification'\n-468892   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-468896 PAYLOAD\n-\n-469359 DATA DESCRIPTOR       08074B50 (134695760)\n-46935D CRC                   0266C937 (40290615)\n-469361 Compressed Size       00000AC3 (2755)\n-469365 Uncompressed Size     00000AC3 (2755)\n-\n-469369 LOCAL HEADER #1317    04034B50 (67324752)\n-46936D Extract Zip Spec      14 (20) '2.0'\n-46936E Extract OS            00 (0) 'MS-DOS'\n-46936F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-469371 Compression Method    0000 (0) 'Stored'\n-469373 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-469377 CRC                   00000000 (0)\n-46937B Compressed Size       00000000 (0)\n-46937F Uncompressed Size     00000000 (0)\n-469383 Filename Length       0050 (80)\n-469385 Extra Length          0009 (9)\n-469387 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x469387: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4693D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4693D9   Length              0005 (5)\n-4693DB   Flags               01 (1) 'Modification'\n-4693DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4693E0 PAYLOAD\n-\n-46A395 DATA DESCRIPTOR       08074B50 (134695760)\n-46A399 CRC                   BFC681E5 (3217457637)\n-46A39D Compressed Size       00000FB5 (4021)\n-46A3A1 Uncompressed Size     00000FB5 (4021)\n-\n-46A3A5 LOCAL HEADER #1318    04034B50 (67324752)\n-46A3A9 Extract Zip Spec      14 (20) '2.0'\n-46A3AA Extract OS            00 (0) 'MS-DOS'\n-46A3AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46A3AD Compression Method    0000 (0) 'Stored'\n-46A3AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46A3B3 CRC                   00000000 (0)\n-46A3B7 Compressed Size       00000000 (0)\n-46A3BB Uncompressed Size     00000000 (0)\n-46A3BF Filename Length       004B (75)\n-46A3C1 Extra Length          0009 (9)\n-46A3C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46A3C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46A40E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46A410   Length              0005 (5)\n-46A412   Flags               01 (1) 'Modification'\n-46A413   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46A417 PAYLOAD\n-\n-46D8A4 DATA DESCRIPTOR       08074B50 (134695760)\n-46D8A8 CRC                   3C5C28F1 (1012672753)\n-46D8AC Compressed Size       0000348D (13453)\n-46D8B0 Uncompressed Size     0000348D (13453)\n-\n-46D8B4 LOCAL HEADER #1319    04034B50 (67324752)\n-46D8B8 Extract Zip Spec      14 (20) '2.0'\n-46D8B9 Extract OS            00 (0) 'MS-DOS'\n-46D8BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46D8BC Compression Method    0000 (0) 'Stored'\n-46D8BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46D8C2 CRC                   00000000 (0)\n-46D8C6 Compressed Size       00000000 (0)\n-46D8CA Uncompressed Size     00000000 (0)\n-46D8CE Filename Length       0053 (83)\n-46D8D0 Extra Length          0009 (9)\n-46D8D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46D8D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46D925 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46D927   Length              0005 (5)\n-46D929   Flags               01 (1) 'Modification'\n-46D92A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46D92E PAYLOAD\n-\n-46E19D DATA DESCRIPTOR       08074B50 (134695760)\n-46E1A1 CRC                   81760C22 (2171997218)\n-46E1A5 Compressed Size       0000086F (2159)\n-46E1A9 Uncompressed Size     0000086F (2159)\n-\n-46E1AD LOCAL HEADER #1320    04034B50 (67324752)\n-46E1B1 Extract Zip Spec      14 (20) '2.0'\n-46E1B2 Extract OS            00 (0) 'MS-DOS'\n-46E1B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46E1B5 Compression Method    0000 (0) 'Stored'\n-46E1B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46E1BB CRC                   00000000 (0)\n-46E1BF Compressed Size       00000000 (0)\n-46E1C3 Uncompressed Size     00000000 (0)\n-46E1C7 Filename Length       0050 (80)\n-46E1C9 Extra Length          0009 (9)\n-46E1CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46E1CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46E21B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46E21D   Length              0005 (5)\n-46E21F   Flags               01 (1) 'Modification'\n-46E220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46E224 PAYLOAD\n-\n-46F0A2 DATA DESCRIPTOR       08074B50 (134695760)\n-46F0A6 CRC                   7D70DC8D (2104548493)\n-46F0AA Compressed Size       00000E7E (3710)\n-46F0AE Uncompressed Size     00000E7E (3710)\n-\n-46F0B2 LOCAL HEADER #1321    04034B50 (67324752)\n-46F0B6 Extract Zip Spec      14 (20) '2.0'\n-46F0B7 Extract OS            00 (0) 'MS-DOS'\n-46F0B8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46F0BA Compression Method    0000 (0) 'Stored'\n-46F0BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46F0C0 CRC                   00000000 (0)\n-46F0C4 Compressed Size       00000000 (0)\n-46F0C8 Uncompressed Size     00000000 (0)\n-46F0CC Filename Length       0048 (72)\n-46F0CE Extra Length          0009 (9)\n-46F0D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46F0D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46F118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46F11A   Length              0005 (5)\n-46F11C   Flags               01 (1) 'Modification'\n-46F11D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46F121 PAYLOAD\n-\n-46F969 DATA DESCRIPTOR       08074B50 (134695760)\n-46F96D CRC                   BE3056BF (3190838975)\n-46F971 Compressed Size       00000848 (2120)\n-46F975 Uncompressed Size     00000848 (2120)\n-\n-46F979 LOCAL HEADER #1322    04034B50 (67324752)\n-46F97D Extract Zip Spec      14 (20) '2.0'\n-46F97E Extract OS            00 (0) 'MS-DOS'\n-46F97F General Purpose Flag  0000 (0)\n-46F981 Compression Method    0000 (0) 'Stored'\n-46F983 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46F987 CRC                   00000000 (0)\n-46F98B Compressed Size       00000000 (0)\n-46F98F Uncompressed Size     00000000 (0)\n-46F993 Filename Length       0030 (48)\n-46F995 Extra Length          0009 (9)\n-46F997 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46F997: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46F9C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46F9C9   Length              0005 (5)\n-46F9CB   Flags               01 (1) 'Modification'\n-46F9CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-46F9D0 LOCAL HEADER #1323    04034B50 (67324752)\n-46F9D4 Extract Zip Spec      14 (20) '2.0'\n-46F9D5 Extract OS            00 (0) 'MS-DOS'\n-46F9D6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-46F9D8 Compression Method    0000 (0) 'Stored'\n-46F9DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-46F9DE CRC                   00000000 (0)\n-46F9E2 Compressed Size       00000000 (0)\n-46F9E6 Uncompressed Size     00000000 (0)\n-46F9EA Filename Length       0054 (84)\n-46F9EC Extra Length          0009 (9)\n-46F9EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x46F9EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-46FA42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-46FA44   Length              0005 (5)\n-46FA46   Flags               01 (1) 'Modification'\n-46FA47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-46FA4B PAYLOAD\n-\n-4728AD DATA DESCRIPTOR       08074B50 (134695760)\n-4728B1 CRC                   E322696B (3810683243)\n-4728B5 Compressed Size       00002E62 (11874)\n-4728B9 Uncompressed Size     00002E62 (11874)\n-\n-4728BD LOCAL HEADER #1324    04034B50 (67324752)\n-4728C1 Extract Zip Spec      14 (20) '2.0'\n-4728C2 Extract OS            00 (0) 'MS-DOS'\n-4728C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4728C5 Compression Method    0000 (0) 'Stored'\n-4728C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4728CB CRC                   00000000 (0)\n-4728CF Compressed Size       00000000 (0)\n-4728D3 Uncompressed Size     00000000 (0)\n-4728D7 Filename Length       004E (78)\n-4728D9 Extra Length          0009 (9)\n-4728DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4728DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-472929 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47292B   Length              0005 (5)\n-47292D   Flags               01 (1) 'Modification'\n-47292E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-472932 PAYLOAD\n-\n-4746BC DATA DESCRIPTOR       08074B50 (134695760)\n-4746C0 CRC                   6CE6F13F (1827074367)\n-4746C4 Compressed Size       00001D8A (7562)\n-4746C8 Uncompressed Size     00001D8A (7562)\n-\n-4746CC LOCAL HEADER #1325    04034B50 (67324752)\n-4746D0 Extract Zip Spec      14 (20) '2.0'\n-4746D1 Extract OS            00 (0) 'MS-DOS'\n-4746D2 General Purpose Flag  0000 (0)\n-4746D4 Compression Method    0000 (0) 'Stored'\n-4746D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4746DA CRC                   00000000 (0)\n-4746DE Compressed Size       00000000 (0)\n-4746E2 Uncompressed Size     00000000 (0)\n-4746E6 Filename Length       002B (43)\n-4746E8 Extra Length          0009 (9)\n-4746EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4746EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-474715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-474717   Length              0005 (5)\n-474719   Flags               01 (1) 'Modification'\n-47471A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-47471E LOCAL HEADER #1326    04034B50 (67324752)\n-474722 Extract Zip Spec      14 (20) '2.0'\n-474723 Extract OS            00 (0) 'MS-DOS'\n-474724 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-474726 Compression Method    0000 (0) 'Stored'\n-474728 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47472C CRC                   00000000 (0)\n-474730 Compressed Size       00000000 (0)\n-474734 Uncompressed Size     00000000 (0)\n-474738 Filename Length       0051 (81)\n-47473A Extra Length          0009 (9)\n-47473C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47473C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47478D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47478F   Length              0005 (5)\n-474791   Flags               01 (1) 'Modification'\n-474792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-474796 PAYLOAD\n-\n-47542B DATA DESCRIPTOR       08074B50 (134695760)\n-47542F CRC                   C9115A1F (3373357599)\n-475433 Compressed Size       00000C95 (3221)\n-475437 Uncompressed Size     00000C95 (3221)\n-\n-47543B LOCAL HEADER #1327    04034B50 (67324752)\n-47543F Extract Zip Spec      14 (20) '2.0'\n-475440 Extract OS            00 (0) 'MS-DOS'\n-475441 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-475443 Compression Method    0000 (0) 'Stored'\n-475445 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-475449 CRC                   00000000 (0)\n-47544D Compressed Size       00000000 (0)\n-475451 Uncompressed Size     00000000 (0)\n-475455 Filename Length       0047 (71)\n-475457 Extra Length          0009 (9)\n-475459 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x475459: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4754A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4754A2   Length              0005 (5)\n-4754A4   Flags               01 (1) 'Modification'\n-4754A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4754A9 PAYLOAD\n-\n-475841 DATA DESCRIPTOR       08074B50 (134695760)\n-475845 CRC                   2197D7D3 (563599315)\n-475849 Compressed Size       00000398 (920)\n-47584D Uncompressed Size     00000398 (920)\n-\n-475851 LOCAL HEADER #1328    04034B50 (67324752)\n-475855 Extract Zip Spec      14 (20) '2.0'\n-475856 Extract OS            00 (0) 'MS-DOS'\n-475857 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-475859 Compression Method    0000 (0) 'Stored'\n-47585B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47585F CRC                   00000000 (0)\n-475863 Compressed Size       00000000 (0)\n-475867 Uncompressed Size     00000000 (0)\n-47586B Filename Length       004A (74)\n-47586D Extra Length          0009 (9)\n-47586F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47586F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4758B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4758BB   Length              0005 (5)\n-4758BD   Flags               01 (1) 'Modification'\n-4758BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4758C2 PAYLOAD\n-\n-475D16 DATA DESCRIPTOR       08074B50 (134695760)\n-475D1A CRC                   D03865FF (3493357055)\n-475D1E Compressed Size       00000454 (1108)\n-475D22 Uncompressed Size     00000454 (1108)\n-\n-475D26 LOCAL HEADER #1329    04034B50 (67324752)\n-475D2A Extract Zip Spec      14 (20) '2.0'\n-475D2B Extract OS            00 (0) 'MS-DOS'\n-475D2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-475D2E Compression Method    0000 (0) 'Stored'\n-475D30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-475D34 CRC                   00000000 (0)\n-475D38 Compressed Size       00000000 (0)\n-475D3C Uncompressed Size     00000000 (0)\n-475D40 Filename Length       0040 (64)\n-475D42 Extra Length          0009 (9)\n-475D44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x475D44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-475D84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-475D86   Length              0005 (5)\n-475D88   Flags               01 (1) 'Modification'\n-475D89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-475D8D PAYLOAD\n-\n-479750 DATA DESCRIPTOR       08074B50 (134695760)\n-479754 CRC                   D6056B09 (3590679305)\n-479758 Compressed Size       000039C3 (14787)\n-47975C Uncompressed Size     000039C3 (14787)\n-\n-479760 LOCAL HEADER #1330    04034B50 (67324752)\n-479764 Extract Zip Spec      14 (20) '2.0'\n-479765 Extract OS            00 (0) 'MS-DOS'\n-479766 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-479768 Compression Method    0000 (0) 'Stored'\n-47976A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47976E CRC                   00000000 (0)\n-479772 Compressed Size       00000000 (0)\n-479776 Uncompressed Size     00000000 (0)\n-47977A Filename Length       0044 (68)\n-47977C Extra Length          0009 (9)\n-47977E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47977E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4797C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4797C4   Length              0005 (5)\n-4797C6   Flags               01 (1) 'Modification'\n-4797C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4797CB PAYLOAD\n-\n-47A284 DATA DESCRIPTOR       08074B50 (134695760)\n-47A288 CRC                   8A132C8F (2316512399)\n-47A28C Compressed Size       00000AB9 (2745)\n-47A290 Uncompressed Size     00000AB9 (2745)\n-\n-47A294 LOCAL HEADER #1331    04034B50 (67324752)\n-47A298 Extract Zip Spec      14 (20) '2.0'\n-47A299 Extract OS            00 (0) 'MS-DOS'\n-47A29A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47A29C Compression Method    0000 (0) 'Stored'\n-47A29E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47A2A2 CRC                   00000000 (0)\n-47A2A6 Compressed Size       00000000 (0)\n-47A2AA Uncompressed Size     00000000 (0)\n-47A2AE Filename Length       0045 (69)\n-47A2B0 Extra Length          0009 (9)\n-47A2B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47A2B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47A2F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47A2F9   Length              0005 (5)\n-47A2FB   Flags               01 (1) 'Modification'\n-47A2FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47A300 PAYLOAD\n-\n-47B498 DATA DESCRIPTOR       08074B50 (134695760)\n-47B49C CRC                   F9713EB9 (4184948409)\n-47B4A0 Compressed Size       00001198 (4504)\n-47B4A4 Uncompressed Size     00001198 (4504)\n-\n-47B4A8 LOCAL HEADER #1332    04034B50 (67324752)\n-47B4AC Extract Zip Spec      14 (20) '2.0'\n-47B4AD Extract OS            00 (0) 'MS-DOS'\n-47B4AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47B4B0 Compression Method    0000 (0) 'Stored'\n-47B4B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47B4B6 CRC                   00000000 (0)\n-47B4BA Compressed Size       00000000 (0)\n-47B4BE Uncompressed Size     00000000 (0)\n-47B4C2 Filename Length       0050 (80)\n-47B4C4 Extra Length          0009 (9)\n-47B4C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47B4C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47B516 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47B518   Length              0005 (5)\n-47B51A   Flags               01 (1) 'Modification'\n-47B51B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47B51F PAYLOAD\n-\n-47BF53 DATA DESCRIPTOR       08074B50 (134695760)\n-47BF57 CRC                   5914D57F (1494537599)\n-47BF5B Compressed Size       00000A34 (2612)\n-47BF5F Uncompressed Size     00000A34 (2612)\n-\n-47BF63 LOCAL HEADER #1333    04034B50 (67324752)\n-47BF67 Extract Zip Spec      14 (20) '2.0'\n-47BF68 Extract OS            00 (0) 'MS-DOS'\n-47BF69 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47BF6B Compression Method    0000 (0) 'Stored'\n-47BF6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47BF71 CRC                   00000000 (0)\n-47BF75 Compressed Size       00000000 (0)\n-47BF79 Uncompressed Size     00000000 (0)\n-47BF7D Filename Length       0032 (50)\n-47BF7F Extra Length          0009 (9)\n-47BF81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47BF81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47BFB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47BFB5   Length              0005 (5)\n-47BFB7   Flags               01 (1) 'Modification'\n-47BFB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47BFBC PAYLOAD\n-\n-47C3BF DATA DESCRIPTOR       08074B50 (134695760)\n-47C3C3 CRC                   F9948D9B (4187262363)\n-47C3C7 Compressed Size       00000403 (1027)\n-47C3CB Uncompressed Size     00000403 (1027)\n-\n-47C3CF LOCAL HEADER #1334    04034B50 (67324752)\n-47C3D3 Extract Zip Spec      14 (20) '2.0'\n-47C3D4 Extract OS            00 (0) 'MS-DOS'\n-47C3D5 General Purpose Flag  0000 (0)\n-47C3D7 Compression Method    0000 (0) 'Stored'\n-47C3D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47C3DD CRC                   00000000 (0)\n-47C3E1 Compressed Size       00000000 (0)\n-47C3E5 Uncompressed Size     00000000 (0)\n-47C3E9 Filename Length       002A (42)\n-47C3EB Extra Length          0009 (9)\n-47C3ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47C3ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47C417 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47C419   Length              0005 (5)\n-47C41B   Flags               01 (1) 'Modification'\n-47C41C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-47C420 LOCAL HEADER #1335    04034B50 (67324752)\n-47C424 Extract Zip Spec      14 (20) '2.0'\n-47C425 Extract OS            00 (0) 'MS-DOS'\n-47C426 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47C428 Compression Method    0000 (0) 'Stored'\n-47C42A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47C42E CRC                   00000000 (0)\n-47C432 Compressed Size       00000000 (0)\n-47C436 Uncompressed Size     00000000 (0)\n-47C43A Filename Length       004C (76)\n-47C43C Extra Length          0009 (9)\n-47C43E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47C43E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47C48A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47C48C   Length              0005 (5)\n-47C48E   Flags               01 (1) 'Modification'\n-47C48F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47C493 PAYLOAD\n-\n-47CB3C DATA DESCRIPTOR       08074B50 (134695760)\n-47CB40 CRC                   D0D8B588 (3503863176)\n-47CB44 Compressed Size       000006A9 (1705)\n-47CB48 Uncompressed Size     000006A9 (1705)\n-\n-47CB4C LOCAL HEADER #1336    04034B50 (67324752)\n-47CB50 Extract Zip Spec      14 (20) '2.0'\n-47CB51 Extract OS            00 (0) 'MS-DOS'\n-47CB52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47CB54 Compression Method    0000 (0) 'Stored'\n-47CB56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47CB5A CRC                   00000000 (0)\n-47CB5E Compressed Size       00000000 (0)\n-47CB62 Uncompressed Size     00000000 (0)\n-47CB66 Filename Length       0046 (70)\n-47CB68 Extra Length          0009 (9)\n-47CB6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47CB6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47CBB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47CBB2   Length              0005 (5)\n-47CBB4   Flags               01 (1) 'Modification'\n-47CBB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47CBB9 PAYLOAD\n-\n-47D25C DATA DESCRIPTOR       08074B50 (134695760)\n-47D260 CRC                   DDD86D2D (3721948461)\n-47D264 Compressed Size       000006A3 (1699)\n-47D268 Uncompressed Size     000006A3 (1699)\n-\n-47D26C LOCAL HEADER #1337    04034B50 (67324752)\n-47D270 Extract Zip Spec      14 (20) '2.0'\n-47D271 Extract OS            00 (0) 'MS-DOS'\n-47D272 General Purpose Flag  0000 (0)\n-47D274 Compression Method    0000 (0) 'Stored'\n-47D276 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47D27A CRC                   00000000 (0)\n-47D27E Compressed Size       00000000 (0)\n-47D282 Uncompressed Size     00000000 (0)\n-47D286 Filename Length       0021 (33)\n-47D288 Extra Length          0009 (9)\n-47D28A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47D28A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47D2AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47D2AD   Length              0005 (5)\n-47D2AF   Flags               01 (1) 'Modification'\n-47D2B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-47D2B4 LOCAL HEADER #1338    04034B50 (67324752)\n-47D2B8 Extract Zip Spec      14 (20) '2.0'\n-47D2B9 Extract OS            00 (0) 'MS-DOS'\n-47D2BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47D2BC Compression Method    0000 (0) 'Stored'\n-47D2BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47D2C2 CRC                   00000000 (0)\n-47D2C6 Compressed Size       00000000 (0)\n-47D2CA Uncompressed Size     00000000 (0)\n-47D2CE Filename Length       003C (60)\n-47D2D0 Extra Length          0009 (9)\n-47D2D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47D2D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47D30E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47D310   Length              0005 (5)\n-47D312   Flags               01 (1) 'Modification'\n-47D313   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47D317 PAYLOAD\n-\n-47D958 DATA DESCRIPTOR       08074B50 (134695760)\n-47D95C CRC                   DD92E439 (3717391417)\n-47D960 Compressed Size       00000641 (1601)\n-47D964 Uncompressed Size     00000641 (1601)\n-\n-47D968 LOCAL HEADER #1339    04034B50 (67324752)\n-47D96C Extract Zip Spec      14 (20) '2.0'\n-47D96D Extract OS            00 (0) 'MS-DOS'\n-47D96E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47D970 Compression Method    0000 (0) 'Stored'\n-47D972 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47D976 CRC                   00000000 (0)\n-47D97A Compressed Size       00000000 (0)\n-47D97E Uncompressed Size     00000000 (0)\n-47D982 Filename Length       0035 (53)\n-47D984 Extra Length          0009 (9)\n-47D986 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47D986: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47D9BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47D9BD   Length              0005 (5)\n-47D9BF   Flags               01 (1) 'Modification'\n-47D9C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47D9C4 PAYLOAD\n-\n-47E397 DATA DESCRIPTOR       08074B50 (134695760)\n-47E39B CRC                   1FAE29F0 (531507696)\n-47E39F Compressed Size       000009D3 (2515)\n-47E3A3 Uncompressed Size     000009D3 (2515)\n-\n-47E3A7 LOCAL HEADER #1340    04034B50 (67324752)\n-47E3AB Extract Zip Spec      14 (20) '2.0'\n-47E3AC Extract OS            00 (0) 'MS-DOS'\n-47E3AD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-47E3AF Compression Method    0000 (0) 'Stored'\n-47E3B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-47E3B5 CRC                   00000000 (0)\n-47E3B9 Compressed Size       00000000 (0)\n-47E3BD Uncompressed Size     00000000 (0)\n-47E3C1 Filename Length       0034 (52)\n-47E3C3 Extra Length          0009 (9)\n-47E3C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x47E3C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-47E3F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-47E3FB   Length              0005 (5)\n-47E3FD   Flags               01 (1) 'Modification'\n-47E3FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-47E402 PAYLOAD\n-\n-481C85 DATA DESCRIPTOR       08074B50 (134695760)\n-481C89 CRC                   CF695E4A (3479789130)\n-481C8D Compressed Size       00003883 (14467)\n-481C91 Uncompressed Size     00003883 (14467)\n-\n-481C95 LOCAL HEADER #1341    04034B50 (67324752)\n-481C99 Extract Zip Spec      14 (20) '2.0'\n-481C9A Extract OS            00 (0) 'MS-DOS'\n-481C9B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-481C9D Compression Method    0000 (0) 'Stored'\n-481C9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-481CA3 CRC                   00000000 (0)\n-481CA7 Compressed Size       00000000 (0)\n-481CAB Uncompressed Size     00000000 (0)\n-481CAF Filename Length       003B (59)\n-481CB1 Extra Length          0009 (9)\n-481CB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x481CB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-481CEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-481CF0   Length              0005 (5)\n-481CF2   Flags               01 (1) 'Modification'\n-481CF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-481CF7 PAYLOAD\n-\n-4821C8 DATA DESCRIPTOR       08074B50 (134695760)\n-4821CC CRC                   EE6324FC (3999474940)\n-4821D0 Compressed Size       000004D1 (1233)\n-4821D4 Uncompressed Size     000004D1 (1233)\n-\n-4821D8 LOCAL HEADER #1342    04034B50 (67324752)\n-4821DC Extract Zip Spec      14 (20) '2.0'\n-4821DD Extract OS            00 (0) 'MS-DOS'\n-4821DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4821E0 Compression Method    0000 (0) 'Stored'\n-4821E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4821E6 CRC                   00000000 (0)\n-4821EA Compressed Size       00000000 (0)\n-4821EE Uncompressed Size     00000000 (0)\n-4821F2 Filename Length       003C (60)\n-4821F4 Extra Length          0009 (9)\n-4821F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4821F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-482232 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-482234   Length              0005 (5)\n-482236   Flags               01 (1) 'Modification'\n-482237   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-48223B PAYLOAD\n-\n-4869B8 DATA DESCRIPTOR       08074B50 (134695760)\n-4869BC CRC                   8A186986 (2316855686)\n-4869C0 Compressed Size       0000477D (18301)\n-4869C4 Uncompressed Size     0000477D (18301)\n-\n-4869C8 LOCAL HEADER #1343    04034B50 (67324752)\n-4869CC Extract Zip Spec      14 (20) '2.0'\n-4869CD Extract OS            00 (0) 'MS-DOS'\n-4869CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4869D0 Compression Method    0000 (0) 'Stored'\n-4869D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4869D6 CRC                   00000000 (0)\n-4869DA Compressed Size       00000000 (0)\n-4869DE Uncompressed Size     00000000 (0)\n-4869E2 Filename Length       0043 (67)\n-4869E4 Extra Length          0009 (9)\n-4869E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4869E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-486A29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-486A2B   Length              0005 (5)\n-486A2D   Flags               01 (1) 'Modification'\n-486A2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-486A32 PAYLOAD\n-\n-486F03 DATA DESCRIPTOR       08074B50 (134695760)\n-486F07 CRC                   35541C2F (894704687)\n-486F0B Compressed Size       000004D1 (1233)\n-486F0F Uncompressed Size     000004D1 (1233)\n-\n-486F13 LOCAL HEADER #1344    04034B50 (67324752)\n-486F17 Extract Zip Spec      14 (20) '2.0'\n-486F18 Extract OS            00 (0) 'MS-DOS'\n-486F19 General Purpose Flag  0808 (2056)\n+44434D DATA DESCRIPTOR       08074B50 (134695760)\n+444351 CRC                   D705EF34 (3607490356)\n+444355 Compressed Size       00000CCA (3274)\n+444359 Uncompressed Size     00000CCA (3274)\n+\n+44435D LOCAL HEADER #1261    04034B50 (67324752)\n+444361 Extract Zip Spec      14 (20) '2.0'\n+444362 Extract OS            00 (0) 'MS-DOS'\n+444363 General Purpose Flag  0000 (0)\n+444365 Compression Method    0000 (0) 'Stored'\n+444367 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44436B CRC                   00000000 (0)\n+44436F Compressed Size       00000000 (0)\n+444373 Uncompressed Size     00000000 (0)\n+444377 Filename Length       001C (28)\n+444379 Extra Length          0009 (9)\n+44437B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44437B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+444397 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+444399   Length              0005 (5)\n+44439B   Flags               01 (1) 'Modification'\n+44439C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4443A0 LOCAL HEADER #1262    04034B50 (67324752)\n+4443A4 Extract Zip Spec      14 (20) '2.0'\n+4443A5 Extract OS            00 (0) 'MS-DOS'\n+4443A6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4443A8 Compression Method    0000 (0) 'Stored'\n+4443AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4443AE CRC                   00000000 (0)\n+4443B2 Compressed Size       00000000 (0)\n+4443B6 Uncompressed Size     00000000 (0)\n+4443BA Filename Length       002B (43)\n+4443BC Extra Length          0009 (9)\n+4443BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4443BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4443E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4443EB   Length              0005 (5)\n+4443ED   Flags               01 (1) 'Modification'\n+4443EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4443F2 PAYLOAD\n+\n+4447C9 DATA DESCRIPTOR       08074B50 (134695760)\n+4447CD CRC                   2AA01116 (715133206)\n+4447D1 Compressed Size       000003D7 (983)\n+4447D5 Uncompressed Size     000003D7 (983)\n+\n+4447D9 LOCAL HEADER #1263    04034B50 (67324752)\n+4447DD Extract Zip Spec      14 (20) '2.0'\n+4447DE Extract OS            00 (0) 'MS-DOS'\n+4447DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4447E1 Compression Method    0000 (0) 'Stored'\n+4447E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4447E7 CRC                   00000000 (0)\n+4447EB Compressed Size       00000000 (0)\n+4447EF Uncompressed Size     00000000 (0)\n+4447F3 Filename Length       0024 (36)\n+4447F5 Extra Length          0009 (9)\n+4447F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4447F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44481B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44481D   Length              0005 (5)\n+44481F   Flags               01 (1) 'Modification'\n+444820   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+444824 PAYLOAD\n+\n+4452D2 DATA DESCRIPTOR       08074B50 (134695760)\n+4452D6 CRC                   70DD7BE1 (1893563361)\n+4452DA Compressed Size       00000AAE (2734)\n+4452DE Uncompressed Size     00000AAE (2734)\n+\n+4452E2 LOCAL HEADER #1264    04034B50 (67324752)\n+4452E6 Extract Zip Spec      14 (20) '2.0'\n+4452E7 Extract OS            00 (0) 'MS-DOS'\n+4452E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4452EA Compression Method    0000 (0) 'Stored'\n+4452EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4452F0 CRC                   00000000 (0)\n+4452F4 Compressed Size       00000000 (0)\n+4452F8 Uncompressed Size     00000000 (0)\n+4452FC Filename Length       0028 (40)\n+4452FE Extra Length          0009 (9)\n+445300 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x445300: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+445328 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44532A   Length              0005 (5)\n+44532C   Flags               01 (1) 'Modification'\n+44532D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+445331 PAYLOAD\n+\n+445C0E DATA DESCRIPTOR       08074B50 (134695760)\n+445C12 CRC                   725BA0A7 (1918607527)\n+445C16 Compressed Size       000008DD (2269)\n+445C1A Uncompressed Size     000008DD (2269)\n+\n+445C1E LOCAL HEADER #1265    04034B50 (67324752)\n+445C22 Extract Zip Spec      14 (20) '2.0'\n+445C23 Extract OS            00 (0) 'MS-DOS'\n+445C24 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+445C26 Compression Method    0000 (0) 'Stored'\n+445C28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+445C2C CRC                   00000000 (0)\n+445C30 Compressed Size       00000000 (0)\n+445C34 Uncompressed Size     00000000 (0)\n+445C38 Filename Length       0027 (39)\n+445C3A Extra Length          0009 (9)\n+445C3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x445C3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+445C63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+445C65   Length              0005 (5)\n+445C67   Flags               01 (1) 'Modification'\n+445C68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+445C6C PAYLOAD\n+\n+449BA3 DATA DESCRIPTOR       08074B50 (134695760)\n+449BA7 CRC                   7076ABE9 (1886825449)\n+449BAB Compressed Size       00003F37 (16183)\n+449BAF Uncompressed Size     00003F37 (16183)\n+\n+449BB3 LOCAL HEADER #1266    04034B50 (67324752)\n+449BB7 Extract Zip Spec      14 (20) '2.0'\n+449BB8 Extract OS            00 (0) 'MS-DOS'\n+449BB9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+449BBB Compression Method    0000 (0) 'Stored'\n+449BBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+449BC1 CRC                   00000000 (0)\n+449BC5 Compressed Size       00000000 (0)\n+449BC9 Uncompressed Size     00000000 (0)\n+449BCD Filename Length       0026 (38)\n+449BCF Extra Length          0009 (9)\n+449BD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x449BD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+449BF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+449BF9   Length              0005 (5)\n+449BFB   Flags               01 (1) 'Modification'\n+449BFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+449C00 PAYLOAD\n+\n+44B9D8 DATA DESCRIPTOR       08074B50 (134695760)\n+44B9DC CRC                   E7722336 (3883017014)\n+44B9E0 Compressed Size       00001DD8 (7640)\n+44B9E4 Uncompressed Size     00001DD8 (7640)\n+\n+44B9E8 LOCAL HEADER #1267    04034B50 (67324752)\n+44B9EC Extract Zip Spec      14 (20) '2.0'\n+44B9ED Extract OS            00 (0) 'MS-DOS'\n+44B9EE General Purpose Flag  0000 (0)\n+44B9F0 Compression Method    0000 (0) 'Stored'\n+44B9F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44B9F6 CRC                   00000000 (0)\n+44B9FA Compressed Size       00000000 (0)\n+44B9FE Uncompressed Size     00000000 (0)\n+44BA02 Filename Length       001A (26)\n+44BA04 Extra Length          0009 (9)\n+44BA06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44BA06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44BA20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44BA22   Length              0005 (5)\n+44BA24   Flags               01 (1) 'Modification'\n+44BA25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+44BA29 LOCAL HEADER #1268    04034B50 (67324752)\n+44BA2D Extract Zip Spec      14 (20) '2.0'\n+44BA2E Extract OS            00 (0) 'MS-DOS'\n+44BA2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44BA31 Compression Method    0000 (0) 'Stored'\n+44BA33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44BA37 CRC                   00000000 (0)\n+44BA3B Compressed Size       00000000 (0)\n+44BA3F Uncompressed Size     00000000 (0)\n+44BA43 Filename Length       002E (46)\n+44BA45 Extra Length          0009 (9)\n+44BA47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44BA47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44BA75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44BA77   Length              0005 (5)\n+44BA79   Flags               01 (1) 'Modification'\n+44BA7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44BA7E PAYLOAD\n+\n+44BFC2 DATA DESCRIPTOR       08074B50 (134695760)\n+44BFC6 CRC                   D8E4F331 (3638883121)\n+44BFCA Compressed Size       00000544 (1348)\n+44BFCE Uncompressed Size     00000544 (1348)\n+\n+44BFD2 LOCAL HEADER #1269    04034B50 (67324752)\n+44BFD6 Extract Zip Spec      14 (20) '2.0'\n+44BFD7 Extract OS            00 (0) 'MS-DOS'\n+44BFD8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44BFDA Compression Method    0000 (0) 'Stored'\n+44BFDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44BFE0 CRC                   00000000 (0)\n+44BFE4 Compressed Size       00000000 (0)\n+44BFE8 Uncompressed Size     00000000 (0)\n+44BFEC Filename Length       0028 (40)\n+44BFEE Extra Length          0009 (9)\n+44BFF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44BFF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44C018 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44C01A   Length              0005 (5)\n+44C01C   Flags               01 (1) 'Modification'\n+44C01D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44C021 PAYLOAD\n+\n+44CAEE DATA DESCRIPTOR       08074B50 (134695760)\n+44CAF2 CRC                   C7E99B2E (3353975598)\n+44CAF6 Compressed Size       00000ACD (2765)\n+44CAFA Uncompressed Size     00000ACD (2765)\n+\n+44CAFE LOCAL HEADER #1270    04034B50 (67324752)\n+44CB02 Extract Zip Spec      14 (20) '2.0'\n+44CB03 Extract OS            00 (0) 'MS-DOS'\n+44CB04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44CB06 Compression Method    0000 (0) 'Stored'\n+44CB08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44CB0C CRC                   00000000 (0)\n+44CB10 Compressed Size       00000000 (0)\n+44CB14 Uncompressed Size     00000000 (0)\n+44CB18 Filename Length       0036 (54)\n+44CB1A Extra Length          0009 (9)\n+44CB1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44CB1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44CB52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44CB54   Length              0005 (5)\n+44CB56   Flags               01 (1) 'Modification'\n+44CB57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44CB5B PAYLOAD\n+\n+44E012 DATA DESCRIPTOR       08074B50 (134695760)\n+44E016 CRC                   A4BC4964 (2763802980)\n+44E01A Compressed Size       000014B7 (5303)\n+44E01E Uncompressed Size     000014B7 (5303)\n+\n+44E022 LOCAL HEADER #1271    04034B50 (67324752)\n+44E026 Extract Zip Spec      14 (20) '2.0'\n+44E027 Extract OS            00 (0) 'MS-DOS'\n+44E028 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44E02A Compression Method    0000 (0) 'Stored'\n+44E02C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44E030 CRC                   00000000 (0)\n+44E034 Compressed Size       00000000 (0)\n+44E038 Uncompressed Size     00000000 (0)\n+44E03C Filename Length       002D (45)\n+44E03E Extra Length          0009 (9)\n+44E040 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44E040: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44E06D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44E06F   Length              0005 (5)\n+44E071   Flags               01 (1) 'Modification'\n+44E072   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44E076 PAYLOAD\n+\n+44EAAA DATA DESCRIPTOR       08074B50 (134695760)\n+44EAAE CRC                   4C19B653 (1276753491)\n+44EAB2 Compressed Size       00000A34 (2612)\n+44EAB6 Uncompressed Size     00000A34 (2612)\n+\n+44EABA LOCAL HEADER #1272    04034B50 (67324752)\n+44EABE Extract Zip Spec      14 (20) '2.0'\n+44EABF Extract OS            00 (0) 'MS-DOS'\n+44EAC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44EAC2 Compression Method    0000 (0) 'Stored'\n+44EAC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44EAC8 CRC                   00000000 (0)\n+44EACC Compressed Size       00000000 (0)\n+44EAD0 Uncompressed Size     00000000 (0)\n+44EAD4 Filename Length       0027 (39)\n+44EAD6 Extra Length          0009 (9)\n+44EAD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44EAD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44EAFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44EB01   Length              0005 (5)\n+44EB03   Flags               01 (1) 'Modification'\n+44EB04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44EB08 PAYLOAD\n+\n+44F042 DATA DESCRIPTOR       08074B50 (134695760)\n+44F046 CRC                   92D33C56 (2463317078)\n+44F04A Compressed Size       0000053A (1338)\n+44F04E Uncompressed Size     0000053A (1338)\n+\n+44F052 LOCAL HEADER #1273    04034B50 (67324752)\n+44F056 Extract Zip Spec      14 (20) '2.0'\n+44F057 Extract OS            00 (0) 'MS-DOS'\n+44F058 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44F05A Compression Method    0000 (0) 'Stored'\n+44F05C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44F060 CRC                   00000000 (0)\n+44F064 Compressed Size       00000000 (0)\n+44F068 Uncompressed Size     00000000 (0)\n+44F06C Filename Length       002E (46)\n+44F06E Extra Length          0009 (9)\n+44F070 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44F070: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44F09E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44F0A0   Length              0005 (5)\n+44F0A2   Flags               01 (1) 'Modification'\n+44F0A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44F0A7 PAYLOAD\n+\n+44F87A DATA DESCRIPTOR       08074B50 (134695760)\n+44F87E CRC                   8AC6D7E1 (2328287201)\n+44F882 Compressed Size       000007D3 (2003)\n+44F886 Uncompressed Size     000007D3 (2003)\n+\n+44F88A LOCAL HEADER #1274    04034B50 (67324752)\n+44F88E Extract Zip Spec      14 (20) '2.0'\n+44F88F Extract OS            00 (0) 'MS-DOS'\n+44F890 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44F892 Compression Method    0000 (0) 'Stored'\n+44F894 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44F898 CRC                   00000000 (0)\n+44F89C Compressed Size       00000000 (0)\n+44F8A0 Uncompressed Size     00000000 (0)\n+44F8A4 Filename Length       0035 (53)\n+44F8A6 Extra Length          0009 (9)\n+44F8A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44F8A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44F8DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44F8DF   Length              0005 (5)\n+44F8E1   Flags               01 (1) 'Modification'\n+44F8E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44F8E6 PAYLOAD\n+\n+44FF05 DATA DESCRIPTOR       08074B50 (134695760)\n+44FF09 CRC                   12C409E5 (314837477)\n+44FF0D Compressed Size       0000061F (1567)\n+44FF11 Uncompressed Size     0000061F (1567)\n+\n+44FF15 LOCAL HEADER #1275    04034B50 (67324752)\n+44FF19 Extract Zip Spec      14 (20) '2.0'\n+44FF1A Extract OS            00 (0) 'MS-DOS'\n+44FF1B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+44FF1D Compression Method    0000 (0) 'Stored'\n+44FF1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+44FF23 CRC                   00000000 (0)\n+44FF27 Compressed Size       00000000 (0)\n+44FF2B Uncompressed Size     00000000 (0)\n+44FF2F Filename Length       002E (46)\n+44FF31 Extra Length          0009 (9)\n+44FF33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x44FF33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+44FF61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+44FF63   Length              0005 (5)\n+44FF65   Flags               01 (1) 'Modification'\n+44FF66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+44FF6A PAYLOAD\n+\n+45156C DATA DESCRIPTOR       08074B50 (134695760)\n+451570 CRC                   6C2E2D81 (1814965633)\n+451574 Compressed Size       00001602 (5634)\n+451578 Uncompressed Size     00001602 (5634)\n+\n+45157C LOCAL HEADER #1276    04034B50 (67324752)\n+451580 Extract Zip Spec      14 (20) '2.0'\n+451581 Extract OS            00 (0) 'MS-DOS'\n+451582 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+451584 Compression Method    0000 (0) 'Stored'\n+451586 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45158A CRC                   00000000 (0)\n+45158E Compressed Size       00000000 (0)\n+451592 Uncompressed Size     00000000 (0)\n+451596 Filename Length       0036 (54)\n+451598 Extra Length          0009 (9)\n+45159A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45159A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4515D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4515D2   Length              0005 (5)\n+4515D4   Flags               01 (1) 'Modification'\n+4515D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4515D9 PAYLOAD\n+\n+451A90 DATA DESCRIPTOR       08074B50 (134695760)\n+451A94 CRC                   ED9B9E6B (3986398827)\n+451A98 Compressed Size       000004B7 (1207)\n+451A9C Uncompressed Size     000004B7 (1207)\n+\n+451AA0 LOCAL HEADER #1277    04034B50 (67324752)\n+451AA4 Extract Zip Spec      14 (20) '2.0'\n+451AA5 Extract OS            00 (0) 'MS-DOS'\n+451AA6 General Purpose Flag  0000 (0)\n+451AA8 Compression Method    0000 (0) 'Stored'\n+451AAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+451AAE CRC                   00000000 (0)\n+451AB2 Compressed Size       00000000 (0)\n+451AB6 Uncompressed Size     00000000 (0)\n+451ABA Filename Length       0021 (33)\n+451ABC Extra Length          0009 (9)\n+451ABE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x451ABE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+451ADF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+451AE1   Length              0005 (5)\n+451AE3   Flags               01 (1) 'Modification'\n+451AE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+451AE8 LOCAL HEADER #1278    04034B50 (67324752)\n+451AEC Extract Zip Spec      14 (20) '2.0'\n+451AED Extract OS            00 (0) 'MS-DOS'\n+451AEE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+451AF0 Compression Method    0000 (0) 'Stored'\n+451AF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+451AF6 CRC                   00000000 (0)\n+451AFA Compressed Size       00000000 (0)\n+451AFE Uncompressed Size     00000000 (0)\n+451B02 Filename Length       003E (62)\n+451B04 Extra Length          0009 (9)\n+451B06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x451B06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+451B44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+451B46   Length              0005 (5)\n+451B48   Flags               01 (1) 'Modification'\n+451B49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+451B4D PAYLOAD\n+\n+4523B8 DATA DESCRIPTOR       08074B50 (134695760)\n+4523BC CRC                   3799B565 (932820325)\n+4523C0 Compressed Size       0000086B (2155)\n+4523C4 Uncompressed Size     0000086B (2155)\n+\n+4523C8 LOCAL HEADER #1279    04034B50 (67324752)\n+4523CC Extract Zip Spec      14 (20) '2.0'\n+4523CD Extract OS            00 (0) 'MS-DOS'\n+4523CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4523D0 Compression Method    0000 (0) 'Stored'\n+4523D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4523D6 CRC                   00000000 (0)\n+4523DA Compressed Size       00000000 (0)\n+4523DE Uncompressed Size     00000000 (0)\n+4523E2 Filename Length       0045 (69)\n+4523E4 Extra Length          0009 (9)\n+4523E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4523E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45242B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45242D   Length              0005 (5)\n+45242F   Flags               01 (1) 'Modification'\n+452430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+452434 PAYLOAD\n+\n+452B21 DATA DESCRIPTOR       08074B50 (134695760)\n+452B25 CRC                   0B335580 (187913600)\n+452B29 Compressed Size       000006ED (1773)\n+452B2D Uncompressed Size     000006ED (1773)\n+\n+452B31 LOCAL HEADER #1280    04034B50 (67324752)\n+452B35 Extract Zip Spec      14 (20) '2.0'\n+452B36 Extract OS            00 (0) 'MS-DOS'\n+452B37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+452B39 Compression Method    0000 (0) 'Stored'\n+452B3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+452B3F CRC                   00000000 (0)\n+452B43 Compressed Size       00000000 (0)\n+452B47 Uncompressed Size     00000000 (0)\n+452B4B Filename Length       0046 (70)\n+452B4D Extra Length          0009 (9)\n+452B4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x452B4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+452B95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+452B97   Length              0005 (5)\n+452B99   Flags               01 (1) 'Modification'\n+452B9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+452B9E PAYLOAD\n+\n+453125 DATA DESCRIPTOR       08074B50 (134695760)\n+453129 CRC                   4E9CD747 (1318901575)\n+45312D Compressed Size       00000587 (1415)\n+453131 Uncompressed Size     00000587 (1415)\n+\n+453135 LOCAL HEADER #1281    04034B50 (67324752)\n+453139 Extract Zip Spec      14 (20) '2.0'\n+45313A Extract OS            00 (0) 'MS-DOS'\n+45313B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+45313D Compression Method    0000 (0) 'Stored'\n+45313F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+453143 CRC                   00000000 (0)\n+453147 Compressed Size       00000000 (0)\n+45314B Uncompressed Size     00000000 (0)\n+45314F Filename Length       0044 (68)\n+453151 Extra Length          0009 (9)\n+453153 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x453153: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+453197 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+453199   Length              0005 (5)\n+45319B   Flags               01 (1) 'Modification'\n+45319C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4531A0 PAYLOAD\n+\n+453A41 DATA DESCRIPTOR       08074B50 (134695760)\n+453A45 CRC                   A92DE3D2 (2838356946)\n+453A49 Compressed Size       000008A1 (2209)\n+453A4D Uncompressed Size     000008A1 (2209)\n+\n+453A51 LOCAL HEADER #1282    04034B50 (67324752)\n+453A55 Extract Zip Spec      14 (20) '2.0'\n+453A56 Extract OS            00 (0) 'MS-DOS'\n+453A57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+453A59 Compression Method    0000 (0) 'Stored'\n+453A5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+453A5F CRC                   00000000 (0)\n+453A63 Compressed Size       00000000 (0)\n+453A67 Uncompressed Size     00000000 (0)\n+453A6B Filename Length       003C (60)\n+453A6D Extra Length          0009 (9)\n+453A6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x453A6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+453AAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+453AAD   Length              0005 (5)\n+453AAF   Flags               01 (1) 'Modification'\n+453AB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+453AB4 PAYLOAD\n+\n+455341 DATA DESCRIPTOR       08074B50 (134695760)\n+455345 CRC                   B19E4EA6 (2979942054)\n+455349 Compressed Size       0000188D (6285)\n+45534D Uncompressed Size     0000188D (6285)\n+\n+455351 LOCAL HEADER #1283    04034B50 (67324752)\n+455355 Extract Zip Spec      14 (20) '2.0'\n+455356 Extract OS            00 (0) 'MS-DOS'\n+455357 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+455359 Compression Method    0000 (0) 'Stored'\n+45535B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45535F CRC                   00000000 (0)\n+455363 Compressed Size       00000000 (0)\n+455367 Uncompressed Size     00000000 (0)\n+45536B Filename Length       0045 (69)\n+45536D Extra Length          0009 (9)\n+45536F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45536F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4553B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4553B6   Length              0005 (5)\n+4553B8   Flags               01 (1) 'Modification'\n+4553B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4553BD PAYLOAD\n+\n+457F1F DATA DESCRIPTOR       08074B50 (134695760)\n+457F23 CRC                   25CCFC5A (634190938)\n+457F27 Compressed Size       00002B62 (11106)\n+457F2B Uncompressed Size     00002B62 (11106)\n+\n+457F2F LOCAL HEADER #1284    04034B50 (67324752)\n+457F33 Extract Zip Spec      14 (20) '2.0'\n+457F34 Extract OS            00 (0) 'MS-DOS'\n+457F35 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+457F37 Compression Method    0000 (0) 'Stored'\n+457F39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+457F3D CRC                   00000000 (0)\n+457F41 Compressed Size       00000000 (0)\n+457F45 Uncompressed Size     00000000 (0)\n+457F49 Filename Length       0040 (64)\n+457F4B Extra Length          0009 (9)\n+457F4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x457F4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+457F8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+457F8F   Length              0005 (5)\n+457F91   Flags               01 (1) 'Modification'\n+457F92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+457F96 PAYLOAD\n+\n+45A063 DATA DESCRIPTOR       08074B50 (134695760)\n+45A067 CRC                   DEC94C5D (3737734237)\n+45A06B Compressed Size       000020CD (8397)\n+45A06F Uncompressed Size     000020CD (8397)\n+\n+45A073 LOCAL HEADER #1285    04034B50 (67324752)\n+45A077 Extract Zip Spec      14 (20) '2.0'\n+45A078 Extract OS            00 (0) 'MS-DOS'\n+45A079 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+45A07B Compression Method    0000 (0) 'Stored'\n+45A07D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45A081 CRC                   00000000 (0)\n+45A085 Compressed Size       00000000 (0)\n+45A089 Uncompressed Size     00000000 (0)\n+45A08D Filename Length       0038 (56)\n+45A08F Extra Length          0009 (9)\n+45A091 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45A091: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45A0C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45A0CB   Length              0005 (5)\n+45A0CD   Flags               01 (1) 'Modification'\n+45A0CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+45A0D2 PAYLOAD\n+\n+45D170 DATA DESCRIPTOR       08074B50 (134695760)\n+45D174 CRC                   71025D3E (1895980350)\n+45D178 Compressed Size       0000309E (12446)\n+45D17C Uncompressed Size     0000309E (12446)\n+\n+45D180 LOCAL HEADER #1286    04034B50 (67324752)\n+45D184 Extract Zip Spec      14 (20) '2.0'\n+45D185 Extract OS            00 (0) 'MS-DOS'\n+45D186 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+45D188 Compression Method    0000 (0) 'Stored'\n+45D18A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45D18E CRC                   00000000 (0)\n+45D192 Compressed Size       00000000 (0)\n+45D196 Uncompressed Size     00000000 (0)\n+45D19A Filename Length       003F (63)\n+45D19C Extra Length          0009 (9)\n+45D19E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45D19E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45D1DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45D1DF   Length              0005 (5)\n+45D1E1   Flags               01 (1) 'Modification'\n+45D1E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+45D1E6 PAYLOAD\n+\n+45D7EA DATA DESCRIPTOR       08074B50 (134695760)\n+45D7EE CRC                   BE5FB3B5 (3193942965)\n+45D7F2 Compressed Size       00000604 (1540)\n+45D7F6 Uncompressed Size     00000604 (1540)\n+\n+45D7FA LOCAL HEADER #1287    04034B50 (67324752)\n+45D7FE Extract Zip Spec      14 (20) '2.0'\n+45D7FF Extract OS            00 (0) 'MS-DOS'\n+45D800 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+45D802 Compression Method    0000 (0) 'Stored'\n+45D804 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+45D808 CRC                   00000000 (0)\n+45D80C Compressed Size       00000000 (0)\n+45D810 Uncompressed Size     00000000 (0)\n+45D814 Filename Length       0036 (54)\n+45D816 Extra Length          0009 (9)\n+45D818 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x45D818: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+45D84E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+45D850   Length              0005 (5)\n+45D852   Flags               01 (1) 'Modification'\n+45D853   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+45D857 PAYLOAD\n+\n+46081F DATA DESCRIPTOR       08074B50 (134695760)\n+460823 CRC                   ED1E1920 (3978172704)\n+460827 Compressed Size       00002FC8 (12232)\n+46082B Uncompressed Size     00002FC8 (12232)\n+\n+46082F LOCAL HEADER #1288    04034B50 (67324752)\n+460833 Extract Zip Spec      14 (20) '2.0'\n+460834 Extract OS            00 (0) 'MS-DOS'\n+460835 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+460837 Compression Method    0000 (0) 'Stored'\n+460839 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46083D CRC                   00000000 (0)\n+460841 Compressed Size       00000000 (0)\n+460845 Uncompressed Size     00000000 (0)\n+460849 Filename Length       003D (61)\n+46084B Extra Length          0009 (9)\n+46084D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46084D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46088A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46088C   Length              0005 (5)\n+46088E   Flags               01 (1) 'Modification'\n+46088F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+460893 PAYLOAD\n+\n+46107E DATA DESCRIPTOR       08074B50 (134695760)\n+461082 CRC                   9286ACC7 (2458299591)\n+461086 Compressed Size       000007EB (2027)\n+46108A Uncompressed Size     000007EB (2027)\n+\n+46108E LOCAL HEADER #1289    04034B50 (67324752)\n+461092 Extract Zip Spec      14 (20) '2.0'\n+461093 Extract OS            00 (0) 'MS-DOS'\n+461094 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+461096 Compression Method    0000 (0) 'Stored'\n+461098 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46109C CRC                   00000000 (0)\n+4610A0 Compressed Size       00000000 (0)\n+4610A4 Uncompressed Size     00000000 (0)\n+4610A8 Filename Length       003E (62)\n+4610AA Extra Length          0009 (9)\n+4610AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4610AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4610EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4610EC   Length              0005 (5)\n+4610EE   Flags               01 (1) 'Modification'\n+4610EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4610F3 PAYLOAD\n+\n+466503 DATA DESCRIPTOR       08074B50 (134695760)\n+466507 CRC                   8EF20CD3 (2398227667)\n+46650B Compressed Size       00005410 (21520)\n+46650F Uncompressed Size     00005410 (21520)\n+\n+466513 LOCAL HEADER #1290    04034B50 (67324752)\n+466517 Extract Zip Spec      14 (20) '2.0'\n+466518 Extract OS            00 (0) 'MS-DOS'\n+466519 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46651B Compression Method    0000 (0) 'Stored'\n+46651D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+466521 CRC                   00000000 (0)\n+466525 Compressed Size       00000000 (0)\n+466529 Uncompressed Size     00000000 (0)\n+46652D Filename Length       0047 (71)\n+46652F Extra Length          0009 (9)\n+466531 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x466531: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+466578 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46657A   Length              0005 (5)\n+46657C   Flags               01 (1) 'Modification'\n+46657D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+466581 PAYLOAD\n+\n+469366 DATA DESCRIPTOR       08074B50 (134695760)\n+46936A CRC                   82D7146C (2195133548)\n+46936E Compressed Size       00002DE5 (11749)\n+469372 Uncompressed Size     00002DE5 (11749)\n+\n+469376 LOCAL HEADER #1291    04034B50 (67324752)\n+46937A Extract Zip Spec      14 (20) '2.0'\n+46937B Extract OS            00 (0) 'MS-DOS'\n+46937C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46937E Compression Method    0000 (0) 'Stored'\n+469380 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+469384 CRC                   00000000 (0)\n+469388 Compressed Size       00000000 (0)\n+46938C Uncompressed Size     00000000 (0)\n+469390 Filename Length       0045 (69)\n+469392 Extra Length          0009 (9)\n+469394 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x469394: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4693D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4693DB   Length              0005 (5)\n+4693DD   Flags               01 (1) 'Modification'\n+4693DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4693E2 PAYLOAD\n+\n+469A95 DATA DESCRIPTOR       08074B50 (134695760)\n+469A99 CRC                   988327A2 (2558732194)\n+469A9D Compressed Size       000006B3 (1715)\n+469AA1 Uncompressed Size     000006B3 (1715)\n+\n+469AA5 LOCAL HEADER #1292    04034B50 (67324752)\n+469AA9 Extract Zip Spec      14 (20) '2.0'\n+469AAA Extract OS            00 (0) 'MS-DOS'\n+469AAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+469AAD Compression Method    0000 (0) 'Stored'\n+469AAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+469AB3 CRC                   00000000 (0)\n+469AB7 Compressed Size       00000000 (0)\n+469ABB Uncompressed Size     00000000 (0)\n+469ABF Filename Length       0035 (53)\n+469AC1 Extra Length          0009 (9)\n+469AC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x469AC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+469AF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+469AFA   Length              0005 (5)\n+469AFC   Flags               01 (1) 'Modification'\n+469AFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+469B01 PAYLOAD\n+\n+46A929 DATA DESCRIPTOR       08074B50 (134695760)\n+46A92D CRC                   756EE014 (1970200596)\n+46A931 Compressed Size       00000E28 (3624)\n+46A935 Uncompressed Size     00000E28 (3624)\n+\n+46A939 LOCAL HEADER #1293    04034B50 (67324752)\n+46A93D Extract Zip Spec      14 (20) '2.0'\n+46A93E Extract OS            00 (0) 'MS-DOS'\n+46A93F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46A941 Compression Method    0000 (0) 'Stored'\n+46A943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46A947 CRC                   00000000 (0)\n+46A94B Compressed Size       00000000 (0)\n+46A94F Uncompressed Size     00000000 (0)\n+46A953 Filename Length       003F (63)\n+46A955 Extra Length          0009 (9)\n+46A957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46A957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46A996 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46A998   Length              0005 (5)\n+46A99A   Flags               01 (1) 'Modification'\n+46A99B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46A99F PAYLOAD\n+\n+46AF9B DATA DESCRIPTOR       08074B50 (134695760)\n+46AF9F CRC                   3557220F (894902799)\n+46AFA3 Compressed Size       000005FC (1532)\n+46AFA7 Uncompressed Size     000005FC (1532)\n+\n+46AFAB LOCAL HEADER #1294    04034B50 (67324752)\n+46AFAF Extract Zip Spec      14 (20) '2.0'\n+46AFB0 Extract OS            00 (0) 'MS-DOS'\n+46AFB1 General Purpose Flag  0000 (0)\n+46AFB3 Compression Method    0000 (0) 'Stored'\n+46AFB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46AFB9 CRC                   00000000 (0)\n+46AFBD Compressed Size       00000000 (0)\n+46AFC1 Uncompressed Size     00000000 (0)\n+46AFC5 Filename Length       0027 (39)\n+46AFC7 Extra Length          0009 (9)\n+46AFC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46AFC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46AFF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46AFF2   Length              0005 (5)\n+46AFF4   Flags               01 (1) 'Modification'\n+46AFF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+46AFF9 LOCAL HEADER #1295    04034B50 (67324752)\n+46AFFD Extract Zip Spec      14 (20) '2.0'\n+46AFFE Extract OS            00 (0) 'MS-DOS'\n+46AFFF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46B001 Compression Method    0000 (0) 'Stored'\n+46B003 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46B007 CRC                   00000000 (0)\n+46B00B Compressed Size       00000000 (0)\n+46B00F Uncompressed Size     00000000 (0)\n+46B013 Filename Length       004A (74)\n+46B015 Extra Length          0009 (9)\n+46B017 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46B017: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46B061 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46B063   Length              0005 (5)\n+46B065   Flags               01 (1) 'Modification'\n+46B066   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46B06A PAYLOAD\n+\n+46B581 DATA DESCRIPTOR       08074B50 (134695760)\n+46B585 CRC                   B96C1EAA (3110870698)\n+46B589 Compressed Size       00000517 (1303)\n+46B58D Uncompressed Size     00000517 (1303)\n+\n+46B591 LOCAL HEADER #1296    04034B50 (67324752)\n+46B595 Extract Zip Spec      14 (20) '2.0'\n+46B596 Extract OS            00 (0) 'MS-DOS'\n+46B597 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46B599 Compression Method    0000 (0) 'Stored'\n+46B59B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46B59F CRC                   00000000 (0)\n+46B5A3 Compressed Size       00000000 (0)\n+46B5A7 Uncompressed Size     00000000 (0)\n+46B5AB Filename Length       004B (75)\n+46B5AD Extra Length          0009 (9)\n+46B5AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46B5AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46B5FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46B5FC   Length              0005 (5)\n+46B5FE   Flags               01 (1) 'Modification'\n+46B5FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46B603 PAYLOAD\n+\n+46BB1F DATA DESCRIPTOR       08074B50 (134695760)\n+46BB23 CRC                   7934C791 (2033502097)\n+46BB27 Compressed Size       0000051C (1308)\n+46BB2B Uncompressed Size     0000051C (1308)\n+\n+46BB2F LOCAL HEADER #1297    04034B50 (67324752)\n+46BB33 Extract Zip Spec      14 (20) '2.0'\n+46BB34 Extract OS            00 (0) 'MS-DOS'\n+46BB35 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46BB37 Compression Method    0000 (0) 'Stored'\n+46BB39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46BB3D CRC                   00000000 (0)\n+46BB41 Compressed Size       00000000 (0)\n+46BB45 Uncompressed Size     00000000 (0)\n+46BB49 Filename Length       0041 (65)\n+46BB4B Extra Length          0009 (9)\n+46BB4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46BB4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46BB8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46BB90   Length              0005 (5)\n+46BB92   Flags               01 (1) 'Modification'\n+46BB93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46BB97 PAYLOAD\n+\n+46C449 DATA DESCRIPTOR       08074B50 (134695760)\n+46C44D CRC                   BF357544 (3207951684)\n+46C451 Compressed Size       000008B2 (2226)\n+46C455 Uncompressed Size     000008B2 (2226)\n+\n+46C459 LOCAL HEADER #1298    04034B50 (67324752)\n+46C45D Extract Zip Spec      14 (20) '2.0'\n+46C45E Extract OS            00 (0) 'MS-DOS'\n+46C45F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46C461 Compression Method    0000 (0) 'Stored'\n+46C463 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46C467 CRC                   00000000 (0)\n+46C46B Compressed Size       00000000 (0)\n+46C46F Uncompressed Size     00000000 (0)\n+46C473 Filename Length       004A (74)\n+46C475 Extra Length          0009 (9)\n+46C477 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46C477: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46C4C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46C4C3   Length              0005 (5)\n+46C4C5   Flags               01 (1) 'Modification'\n+46C4C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46C4CA PAYLOAD\n+\n+46CB75 DATA DESCRIPTOR       08074B50 (134695760)\n+46CB79 CRC                   59957DEF (1502969327)\n+46CB7D Compressed Size       000006AB (1707)\n+46CB81 Uncompressed Size     000006AB (1707)\n+\n+46CB85 LOCAL HEADER #1299    04034B50 (67324752)\n+46CB89 Extract Zip Spec      14 (20) '2.0'\n+46CB8A Extract OS            00 (0) 'MS-DOS'\n+46CB8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46CB8D Compression Method    0000 (0) 'Stored'\n+46CB8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46CB93 CRC                   00000000 (0)\n+46CB97 Compressed Size       00000000 (0)\n+46CB9B Uncompressed Size     00000000 (0)\n+46CB9F Filename Length       004C (76)\n+46CBA1 Extra Length          0009 (9)\n+46CBA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46CBA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46CBEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46CBF1   Length              0005 (5)\n+46CBF3   Flags               01 (1) 'Modification'\n+46CBF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46CBF8 PAYLOAD\n+\n+46D13D DATA DESCRIPTOR       08074B50 (134695760)\n+46D141 CRC                   30CE65FD (818832893)\n+46D145 Compressed Size       00000545 (1349)\n+46D149 Uncompressed Size     00000545 (1349)\n+\n+46D14D LOCAL HEADER #1300    04034B50 (67324752)\n+46D151 Extract Zip Spec      14 (20) '2.0'\n+46D152 Extract OS            00 (0) 'MS-DOS'\n+46D153 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46D155 Compression Method    0000 (0) 'Stored'\n+46D157 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46D15B CRC                   00000000 (0)\n+46D15F Compressed Size       00000000 (0)\n+46D163 Uncompressed Size     00000000 (0)\n+46D167 Filename Length       004D (77)\n+46D169 Extra Length          0009 (9)\n+46D16B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46D16B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46D1B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46D1BA   Length              0005 (5)\n+46D1BC   Flags               01 (1) 'Modification'\n+46D1BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46D1C1 PAYLOAD\n+\n+46D70C DATA DESCRIPTOR       08074B50 (134695760)\n+46D710 CRC                   C145F19E (3242586526)\n+46D714 Compressed Size       0000054B (1355)\n+46D718 Uncompressed Size     0000054B (1355)\n+\n+46D71C LOCAL HEADER #1301    04034B50 (67324752)\n+46D720 Extract Zip Spec      14 (20) '2.0'\n+46D721 Extract OS            00 (0) 'MS-DOS'\n+46D722 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46D724 Compression Method    0000 (0) 'Stored'\n+46D726 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46D72A CRC                   00000000 (0)\n+46D72E Compressed Size       00000000 (0)\n+46D732 Uncompressed Size     00000000 (0)\n+46D736 Filename Length       0040 (64)\n+46D738 Extra Length          0009 (9)\n+46D73A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46D73A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46D77A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46D77C   Length              0005 (5)\n+46D77E   Flags               01 (1) 'Modification'\n+46D77F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46D783 PAYLOAD\n+\n+46DE27 DATA DESCRIPTOR       08074B50 (134695760)\n+46DE2B CRC                   511C2CC7 (1360800967)\n+46DE2F Compressed Size       000006A4 (1700)\n+46DE33 Uncompressed Size     000006A4 (1700)\n+\n+46DE37 LOCAL HEADER #1302    04034B50 (67324752)\n+46DE3B Extract Zip Spec      14 (20) '2.0'\n+46DE3C Extract OS            00 (0) 'MS-DOS'\n+46DE3D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46DE3F Compression Method    0000 (0) 'Stored'\n+46DE41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46DE45 CRC                   00000000 (0)\n+46DE49 Compressed Size       00000000 (0)\n+46DE4D Uncompressed Size     00000000 (0)\n+46DE51 Filename Length       004D (77)\n+46DE53 Extra Length          0009 (9)\n+46DE55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46DE55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46DEA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46DEA4   Length              0005 (5)\n+46DEA6   Flags               01 (1) 'Modification'\n+46DEA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46DEAB PAYLOAD\n+\n+46E414 DATA DESCRIPTOR       08074B50 (134695760)\n+46E418 CRC                   B5EBBEE9 (3052125929)\n+46E41C Compressed Size       00000569 (1385)\n+46E420 Uncompressed Size     00000569 (1385)\n+\n+46E424 LOCAL HEADER #1303    04034B50 (67324752)\n+46E428 Extract Zip Spec      14 (20) '2.0'\n+46E429 Extract OS            00 (0) 'MS-DOS'\n+46E42A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46E42C Compression Method    0000 (0) 'Stored'\n+46E42E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46E432 CRC                   00000000 (0)\n+46E436 Compressed Size       00000000 (0)\n+46E43A Uncompressed Size     00000000 (0)\n+46E43E Filename Length       004F (79)\n+46E440 Extra Length          0009 (9)\n+46E442 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46E442: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46E491 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46E493   Length              0005 (5)\n+46E495   Flags               01 (1) 'Modification'\n+46E496   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46E49A PAYLOAD\n+\n+46EA0B DATA DESCRIPTOR       08074B50 (134695760)\n+46EA0F CRC                   31557B6E (827685742)\n+46EA13 Compressed Size       00000571 (1393)\n+46EA17 Uncompressed Size     00000571 (1393)\n+\n+46EA1B LOCAL HEADER #1304    04034B50 (67324752)\n+46EA1F Extract Zip Spec      14 (20) '2.0'\n+46EA20 Extract OS            00 (0) 'MS-DOS'\n+46EA21 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46EA23 Compression Method    0000 (0) 'Stored'\n+46EA25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46EA29 CRC                   00000000 (0)\n+46EA2D Compressed Size       00000000 (0)\n+46EA31 Uncompressed Size     00000000 (0)\n+46EA35 Filename Length       004A (74)\n+46EA37 Extra Length          0009 (9)\n+46EA39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46EA39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46EA83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46EA85   Length              0005 (5)\n+46EA87   Flags               01 (1) 'Modification'\n+46EA88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46EA8C PAYLOAD\n+\n+46EFEE DATA DESCRIPTOR       08074B50 (134695760)\n+46EFF2 CRC                   9E00A28D (2650841741)\n+46EFF6 Compressed Size       00000562 (1378)\n+46EFFA Uncompressed Size     00000562 (1378)\n+\n+46EFFE LOCAL HEADER #1305    04034B50 (67324752)\n+46F002 Extract Zip Spec      14 (20) '2.0'\n+46F003 Extract OS            00 (0) 'MS-DOS'\n+46F004 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46F006 Compression Method    0000 (0) 'Stored'\n+46F008 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46F00C CRC                   00000000 (0)\n+46F010 Compressed Size       00000000 (0)\n+46F014 Uncompressed Size     00000000 (0)\n+46F018 Filename Length       004C (76)\n+46F01A Extra Length          0009 (9)\n+46F01C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46F01C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46F068 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46F06A   Length              0005 (5)\n+46F06C   Flags               01 (1) 'Modification'\n+46F06D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46F071 PAYLOAD\n+\n+46F5F9 DATA DESCRIPTOR       08074B50 (134695760)\n+46F5FD CRC                   B8F3B221 (3102978593)\n+46F601 Compressed Size       00000588 (1416)\n+46F605 Uncompressed Size     00000588 (1416)\n+\n+46F609 LOCAL HEADER #1306    04034B50 (67324752)\n+46F60D Extract Zip Spec      14 (20) '2.0'\n+46F60E Extract OS            00 (0) 'MS-DOS'\n+46F60F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46F611 Compression Method    0000 (0) 'Stored'\n+46F613 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46F617 CRC                   00000000 (0)\n+46F61B Compressed Size       00000000 (0)\n+46F61F Uncompressed Size     00000000 (0)\n+46F623 Filename Length       0048 (72)\n+46F625 Extra Length          0009 (9)\n+46F627 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46F627: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46F66F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46F671   Length              0005 (5)\n+46F673   Flags               01 (1) 'Modification'\n+46F674   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+46F678 PAYLOAD\n+\n+46FF5E DATA DESCRIPTOR       08074B50 (134695760)\n+46FF62 CRC                   A03840DB (2688041179)\n+46FF66 Compressed Size       000008E6 (2278)\n+46FF6A Uncompressed Size     000008E6 (2278)\n+\n+46FF6E LOCAL HEADER #1307    04034B50 (67324752)\n+46FF72 Extract Zip Spec      14 (20) '2.0'\n+46FF73 Extract OS            00 (0) 'MS-DOS'\n+46FF74 General Purpose Flag  0000 (0)\n+46FF76 Compression Method    0000 (0) 'Stored'\n+46FF78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46FF7C CRC                   00000000 (0)\n+46FF80 Compressed Size       00000000 (0)\n+46FF84 Uncompressed Size     00000000 (0)\n+46FF88 Filename Length       0030 (48)\n+46FF8A Extra Length          0009 (9)\n+46FF8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46FF8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+46FFBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+46FFBE   Length              0005 (5)\n+46FFC0   Flags               01 (1) 'Modification'\n+46FFC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+46FFC5 LOCAL HEADER #1308    04034B50 (67324752)\n+46FFC9 Extract Zip Spec      14 (20) '2.0'\n+46FFCA Extract OS            00 (0) 'MS-DOS'\n+46FFCB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+46FFCD Compression Method    0000 (0) 'Stored'\n+46FFCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+46FFD3 CRC                   00000000 (0)\n+46FFD7 Compressed Size       00000000 (0)\n+46FFDB Uncompressed Size     00000000 (0)\n+46FFDF Filename Length       0049 (73)\n+46FFE1 Extra Length          0009 (9)\n+46FFE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x46FFE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47002C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47002E   Length              0005 (5)\n+470030   Flags               01 (1) 'Modification'\n+470031   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+470035 PAYLOAD\n+\n+470EAC DATA DESCRIPTOR       08074B50 (134695760)\n+470EB0 CRC                   80296188 (2150195592)\n+470EB4 Compressed Size       00000E77 (3703)\n+470EB8 Uncompressed Size     00000E77 (3703)\n+\n+470EBC LOCAL HEADER #1309    04034B50 (67324752)\n+470EC0 Extract Zip Spec      14 (20) '2.0'\n+470EC1 Extract OS            00 (0) 'MS-DOS'\n+470EC2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+470EC4 Compression Method    0000 (0) 'Stored'\n+470EC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+470ECA CRC                   00000000 (0)\n+470ECE Compressed Size       00000000 (0)\n+470ED2 Uncompressed Size     00000000 (0)\n+470ED6 Filename Length       0054 (84)\n+470ED8 Extra Length          0009 (9)\n+470EDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x470EDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+470F2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+470F30   Length              0005 (5)\n+470F32   Flags               01 (1) 'Modification'\n+470F33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+470F37 PAYLOAD\n+\n+473C78 DATA DESCRIPTOR       08074B50 (134695760)\n+473C7C CRC                   179D40B4 (396181684)\n+473C80 Compressed Size       00002D41 (11585)\n+473C84 Uncompressed Size     00002D41 (11585)\n+\n+473C88 LOCAL HEADER #1310    04034B50 (67324752)\n+473C8C Extract Zip Spec      14 (20) '2.0'\n+473C8D Extract OS            00 (0) 'MS-DOS'\n+473C8E General Purpose Flag  0000 (0)\n+473C90 Compression Method    0000 (0) 'Stored'\n+473C92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+473C96 CRC                   00000000 (0)\n+473C9A Compressed Size       00000000 (0)\n+473C9E Uncompressed Size     00000000 (0)\n+473CA2 Filename Length       002A (42)\n+473CA4 Extra Length          0009 (9)\n+473CA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x473CA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+473CD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+473CD2   Length              0005 (5)\n+473CD4   Flags               01 (1) 'Modification'\n+473CD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+473CD9 LOCAL HEADER #1311    04034B50 (67324752)\n+473CDD Extract Zip Spec      14 (20) '2.0'\n+473CDE Extract OS            00 (0) 'MS-DOS'\n+473CDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+473CE1 Compression Method    0000 (0) 'Stored'\n+473CE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+473CE7 CRC                   00000000 (0)\n+473CEB Compressed Size       00000000 (0)\n+473CEF Uncompressed Size     00000000 (0)\n+473CF3 Filename Length       0049 (73)\n+473CF5 Extra Length          0009 (9)\n+473CF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x473CF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+473D40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+473D42   Length              0005 (5)\n+473D44   Flags               01 (1) 'Modification'\n+473D45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+473D49 PAYLOAD\n+\n+474C15 DATA DESCRIPTOR       08074B50 (134695760)\n+474C19 CRC                   D8B03CE3 (3635428579)\n+474C1D Compressed Size       00000ECC (3788)\n+474C21 Uncompressed Size     00000ECC (3788)\n+\n+474C25 LOCAL HEADER #1312    04034B50 (67324752)\n+474C29 Extract Zip Spec      14 (20) '2.0'\n+474C2A Extract OS            00 (0) 'MS-DOS'\n+474C2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+474C2D Compression Method    0000 (0) 'Stored'\n+474C2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+474C33 CRC                   00000000 (0)\n+474C37 Compressed Size       00000000 (0)\n+474C3B Uncompressed Size     00000000 (0)\n+474C3F Filename Length       0048 (72)\n+474C41 Extra Length          0009 (9)\n+474C43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x474C43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+474C8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+474C8D   Length              0005 (5)\n+474C8F   Flags               01 (1) 'Modification'\n+474C90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+474C94 PAYLOAD\n+\n+475293 DATA DESCRIPTOR       08074B50 (134695760)\n+475297 CRC                   EEBAB417 (4005213207)\n+47529B Compressed Size       000005FF (1535)\n+47529F Uncompressed Size     000005FF (1535)\n+\n+4752A3 LOCAL HEADER #1313    04034B50 (67324752)\n+4752A7 Extract Zip Spec      14 (20) '2.0'\n+4752A8 Extract OS            00 (0) 'MS-DOS'\n+4752A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4752AB Compression Method    0000 (0) 'Stored'\n+4752AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4752B1 CRC                   00000000 (0)\n+4752B5 Compressed Size       00000000 (0)\n+4752B9 Uncompressed Size     00000000 (0)\n+4752BD Filename Length       0059 (89)\n+4752BF Extra Length          0009 (9)\n+4752C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4752C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47531A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47531C   Length              0005 (5)\n+47531E   Flags               01 (1) 'Modification'\n+47531F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+475323 PAYLOAD\n+\n+475E4E DATA DESCRIPTOR       08074B50 (134695760)\n+475E52 CRC                   75D2ADE7 (1976741351)\n+475E56 Compressed Size       00000B2B (2859)\n+475E5A Uncompressed Size     00000B2B (2859)\n+\n+475E5E LOCAL HEADER #1314    04034B50 (67324752)\n+475E62 Extract Zip Spec      14 (20) '2.0'\n+475E63 Extract OS            00 (0) 'MS-DOS'\n+475E64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+475E66 Compression Method    0000 (0) 'Stored'\n+475E68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+475E6C CRC                   00000000 (0)\n+475E70 Compressed Size       00000000 (0)\n+475E74 Uncompressed Size     00000000 (0)\n+475E78 Filename Length       003C (60)\n+475E7A Extra Length          0009 (9)\n+475E7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x475E7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+475EB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+475EBA   Length              0005 (5)\n+475EBC   Flags               01 (1) 'Modification'\n+475EBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+475EC1 PAYLOAD\n+\n+4771CA DATA DESCRIPTOR       08074B50 (134695760)\n+4771CE CRC                   755A196E (1968839022)\n+4771D2 Compressed Size       00001309 (4873)\n+4771D6 Uncompressed Size     00001309 (4873)\n+\n+4771DA LOCAL HEADER #1315    04034B50 (67324752)\n+4771DE Extract Zip Spec      14 (20) '2.0'\n+4771DF Extract OS            00 (0) 'MS-DOS'\n+4771E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4771E2 Compression Method    0000 (0) 'Stored'\n+4771E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4771E8 CRC                   00000000 (0)\n+4771EC Compressed Size       00000000 (0)\n+4771F0 Uncompressed Size     00000000 (0)\n+4771F4 Filename Length       004E (78)\n+4771F6 Extra Length          0009 (9)\n+4771F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4771F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+477246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+477248   Length              0005 (5)\n+47724A   Flags               01 (1) 'Modification'\n+47724B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47724F PAYLOAD\n+\n+477B7E DATA DESCRIPTOR       08074B50 (134695760)\n+477B82 CRC                   59E1F72D (1507981101)\n+477B86 Compressed Size       0000092F (2351)\n+477B8A Uncompressed Size     0000092F (2351)\n+\n+477B8E LOCAL HEADER #1316    04034B50 (67324752)\n+477B92 Extract Zip Spec      14 (20) '2.0'\n+477B93 Extract OS            00 (0) 'MS-DOS'\n+477B94 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+477B96 Compression Method    0000 (0) 'Stored'\n+477B98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+477B9C CRC                   00000000 (0)\n+477BA0 Compressed Size       00000000 (0)\n+477BA4 Uncompressed Size     00000000 (0)\n+477BA8 Filename Length       0054 (84)\n+477BAA Extra Length          0009 (9)\n+477BAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x477BAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+477C00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+477C02   Length              0005 (5)\n+477C04   Flags               01 (1) 'Modification'\n+477C05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+477C09 PAYLOAD\n+\n+47870F DATA DESCRIPTOR       08074B50 (134695760)\n+478713 CRC                   FB40FD46 (4215340358)\n+478717 Compressed Size       00000B06 (2822)\n+47871B Uncompressed Size     00000B06 (2822)\n+\n+47871F LOCAL HEADER #1317    04034B50 (67324752)\n+478723 Extract Zip Spec      14 (20) '2.0'\n+478724 Extract OS            00 (0) 'MS-DOS'\n+478725 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+478727 Compression Method    0000 (0) 'Stored'\n+478729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47872D CRC                   00000000 (0)\n+478731 Compressed Size       00000000 (0)\n+478735 Uncompressed Size     00000000 (0)\n+478739 Filename Length       0050 (80)\n+47873B Extra Length          0009 (9)\n+47873D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47873D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47878D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47878F   Length              0005 (5)\n+478791   Flags               01 (1) 'Modification'\n+478792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+478796 PAYLOAD\n+\n+4797A3 DATA DESCRIPTOR       08074B50 (134695760)\n+4797A7 CRC                   53F9F17D (1408889213)\n+4797AB Compressed Size       0000100D (4109)\n+4797AF Uncompressed Size     0000100D (4109)\n+\n+4797B3 LOCAL HEADER #1318    04034B50 (67324752)\n+4797B7 Extract Zip Spec      14 (20) '2.0'\n+4797B8 Extract OS            00 (0) 'MS-DOS'\n+4797B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4797BB Compression Method    0000 (0) 'Stored'\n+4797BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4797C1 CRC                   00000000 (0)\n+4797C5 Compressed Size       00000000 (0)\n+4797C9 Uncompressed Size     00000000 (0)\n+4797CD Filename Length       004B (75)\n+4797CF Extra Length          0009 (9)\n+4797D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4797D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47981C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47981E   Length              0005 (5)\n+479820   Flags               01 (1) 'Modification'\n+479821   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+479825 PAYLOAD\n+\n+47CDF0 DATA DESCRIPTOR       08074B50 (134695760)\n+47CDF4 CRC                   D85C97E6 (3629946854)\n+47CDF8 Compressed Size       000035CB (13771)\n+47CDFC Uncompressed Size     000035CB (13771)\n+\n+47CE00 LOCAL HEADER #1319    04034B50 (67324752)\n+47CE04 Extract Zip Spec      14 (20) '2.0'\n+47CE05 Extract OS            00 (0) 'MS-DOS'\n+47CE06 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+47CE08 Compression Method    0000 (0) 'Stored'\n+47CE0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47CE0E CRC                   00000000 (0)\n+47CE12 Compressed Size       00000000 (0)\n+47CE16 Uncompressed Size     00000000 (0)\n+47CE1A Filename Length       0053 (83)\n+47CE1C Extra Length          0009 (9)\n+47CE1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47CE1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47CE71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47CE73   Length              0005 (5)\n+47CE75   Flags               01 (1) 'Modification'\n+47CE76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47CE7A PAYLOAD\n+\n+47D71C DATA DESCRIPTOR       08074B50 (134695760)\n+47D720 CRC                   790FD089 (2031079561)\n+47D724 Compressed Size       000008A2 (2210)\n+47D728 Uncompressed Size     000008A2 (2210)\n+\n+47D72C LOCAL HEADER #1320    04034B50 (67324752)\n+47D730 Extract Zip Spec      14 (20) '2.0'\n+47D731 Extract OS            00 (0) 'MS-DOS'\n+47D732 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+47D734 Compression Method    0000 (0) 'Stored'\n+47D736 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47D73A CRC                   00000000 (0)\n+47D73E Compressed Size       00000000 (0)\n+47D742 Uncompressed Size     00000000 (0)\n+47D746 Filename Length       0050 (80)\n+47D748 Extra Length          0009 (9)\n+47D74A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47D74A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47D79A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47D79C   Length              0005 (5)\n+47D79E   Flags               01 (1) 'Modification'\n+47D79F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47D7A3 PAYLOAD\n+\n+47E67A DATA DESCRIPTOR       08074B50 (134695760)\n+47E67E CRC                   85FEC00A (2248065034)\n+47E682 Compressed Size       00000ED7 (3799)\n+47E686 Uncompressed Size     00000ED7 (3799)\n+\n+47E68A LOCAL HEADER #1321    04034B50 (67324752)\n+47E68E Extract Zip Spec      14 (20) '2.0'\n+47E68F Extract OS            00 (0) 'MS-DOS'\n+47E690 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+47E692 Compression Method    0000 (0) 'Stored'\n+47E694 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47E698 CRC                   00000000 (0)\n+47E69C Compressed Size       00000000 (0)\n+47E6A0 Uncompressed Size     00000000 (0)\n+47E6A4 Filename Length       0048 (72)\n+47E6A6 Extra Length          0009 (9)\n+47E6A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47E6A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47E6F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47E6F2   Length              0005 (5)\n+47E6F4   Flags               01 (1) 'Modification'\n+47E6F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47E6F9 PAYLOAD\n+\n+47EF78 DATA DESCRIPTOR       08074B50 (134695760)\n+47EF7C CRC                   ACB394E1 (2897450209)\n+47EF80 Compressed Size       0000087F (2175)\n+47EF84 Uncompressed Size     0000087F (2175)\n+\n+47EF88 LOCAL HEADER #1322    04034B50 (67324752)\n+47EF8C Extract Zip Spec      14 (20) '2.0'\n+47EF8D Extract OS            00 (0) 'MS-DOS'\n+47EF8E General Purpose Flag  0000 (0)\n+47EF90 Compression Method    0000 (0) 'Stored'\n+47EF92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47EF96 CRC                   00000000 (0)\n+47EF9A Compressed Size       00000000 (0)\n+47EF9E Uncompressed Size     00000000 (0)\n+47EFA2 Filename Length       0030 (48)\n+47EFA4 Extra Length          0009 (9)\n+47EFA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47EFA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47EFD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47EFD8   Length              0005 (5)\n+47EFDA   Flags               01 (1) 'Modification'\n+47EFDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+47EFDF LOCAL HEADER #1323    04034B50 (67324752)\n+47EFE3 Extract Zip Spec      14 (20) '2.0'\n+47EFE4 Extract OS            00 (0) 'MS-DOS'\n+47EFE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+47EFE7 Compression Method    0000 (0) 'Stored'\n+47EFE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+47EFED CRC                   00000000 (0)\n+47EFF1 Compressed Size       00000000 (0)\n+47EFF5 Uncompressed Size     00000000 (0)\n+47EFF9 Filename Length       0054 (84)\n+47EFFB Extra Length          0009 (9)\n+47EFFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x47EFFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+47F051 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+47F053   Length              0005 (5)\n+47F055   Flags               01 (1) 'Modification'\n+47F056   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+47F05A PAYLOAD\n+\n+481FE9 DATA DESCRIPTOR       08074B50 (134695760)\n+481FED CRC                   AF38F813 (2939746323)\n+481FF1 Compressed Size       00002F8F (12175)\n+481FF5 Uncompressed Size     00002F8F (12175)\n+\n+481FF9 LOCAL HEADER #1324    04034B50 (67324752)\n+481FFD Extract Zip Spec      14 (20) '2.0'\n+481FFE Extract OS            00 (0) 'MS-DOS'\n+481FFF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+482001 Compression Method    0000 (0) 'Stored'\n+482003 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+482007 CRC                   00000000 (0)\n+48200B Compressed Size       00000000 (0)\n+48200F Uncompressed Size     00000000 (0)\n+482013 Filename Length       004E (78)\n+482015 Extra Length          0009 (9)\n+482017 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x482017: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+482065 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+482067   Length              0005 (5)\n+482069   Flags               01 (1) 'Modification'\n+48206A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48206E PAYLOAD\n+\n+483E87 DATA DESCRIPTOR       08074B50 (134695760)\n+483E8B CRC                   6659263F (1717118527)\n+483E8F Compressed Size       00001E19 (7705)\n+483E93 Uncompressed Size     00001E19 (7705)\n+\n+483E97 LOCAL HEADER #1325    04034B50 (67324752)\n+483E9B Extract Zip Spec      14 (20) '2.0'\n+483E9C Extract OS            00 (0) 'MS-DOS'\n+483E9D General Purpose Flag  0000 (0)\n+483E9F Compression Method    0000 (0) 'Stored'\n+483EA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+483EA5 CRC                   00000000 (0)\n+483EA9 Compressed Size       00000000 (0)\n+483EAD Uncompressed Size     00000000 (0)\n+483EB1 Filename Length       002B (43)\n+483EB3 Extra Length          0009 (9)\n+483EB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x483EB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+483EE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+483EE2   Length              0005 (5)\n+483EE4   Flags               01 (1) 'Modification'\n+483EE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+483EE9 LOCAL HEADER #1326    04034B50 (67324752)\n+483EED Extract Zip Spec      14 (20) '2.0'\n+483EEE Extract OS            00 (0) 'MS-DOS'\n+483EEF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+483EF1 Compression Method    0000 (0) 'Stored'\n+483EF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+483EF7 CRC                   00000000 (0)\n+483EFB Compressed Size       00000000 (0)\n+483EFF Uncompressed Size     00000000 (0)\n+483F03 Filename Length       0051 (81)\n+483F05 Extra Length          0009 (9)\n+483F07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x483F07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+483F58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+483F5A   Length              0005 (5)\n+483F5C   Flags               01 (1) 'Modification'\n+483F5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+483F61 PAYLOAD\n+\n+484C40 DATA DESCRIPTOR       08074B50 (134695760)\n+484C44 CRC                   1E182794 (504899476)\n+484C48 Compressed Size       00000CDF (3295)\n+484C4C Uncompressed Size     00000CDF (3295)\n+\n+484C50 LOCAL HEADER #1327    04034B50 (67324752)\n+484C54 Extract Zip Spec      14 (20) '2.0'\n+484C55 Extract OS            00 (0) 'MS-DOS'\n+484C56 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+484C58 Compression Method    0000 (0) 'Stored'\n+484C5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+484C5E CRC                   00000000 (0)\n+484C62 Compressed Size       00000000 (0)\n+484C66 Uncompressed Size     00000000 (0)\n+484C6A Filename Length       0047 (71)\n+484C6C Extra Length          0009 (9)\n+484C6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x484C6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+484CB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+484CB7   Length              0005 (5)\n+484CB9   Flags               01 (1) 'Modification'\n+484CBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+484CBE PAYLOAD\n+\n+48506A DATA DESCRIPTOR       08074B50 (134695760)\n+48506E CRC                   6D847AE7 (1837398759)\n+485072 Compressed Size       000003AC (940)\n+485076 Uncompressed Size     000003AC (940)\n+\n+48507A LOCAL HEADER #1328    04034B50 (67324752)\n+48507E Extract Zip Spec      14 (20) '2.0'\n+48507F Extract OS            00 (0) 'MS-DOS'\n+485080 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+485082 Compression Method    0000 (0) 'Stored'\n+485084 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+485088 CRC                   00000000 (0)\n+48508C Compressed Size       00000000 (0)\n+485090 Uncompressed Size     00000000 (0)\n+485094 Filename Length       004A (74)\n+485096 Extra Length          0009 (9)\n+485098 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x485098: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4850E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4850E4   Length              0005 (5)\n+4850E6   Flags               01 (1) 'Modification'\n+4850E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4850EB PAYLOAD\n+\n+485558 DATA DESCRIPTOR       08074B50 (134695760)\n+48555C CRC                   21E16F63 (568422243)\n+485560 Compressed Size       0000046D (1133)\n+485564 Uncompressed Size     0000046D (1133)\n+\n+485568 LOCAL HEADER #1329    04034B50 (67324752)\n+48556C Extract Zip Spec      14 (20) '2.0'\n+48556D Extract OS            00 (0) 'MS-DOS'\n+48556E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+485570 Compression Method    0000 (0) 'Stored'\n+485572 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+485576 CRC                   00000000 (0)\n+48557A Compressed Size       00000000 (0)\n+48557E Uncompressed Size     00000000 (0)\n+485582 Filename Length       0040 (64)\n+485584 Extra Length          0009 (9)\n+485586 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x485586: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4855C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4855C8   Length              0005 (5)\n+4855CA   Flags               01 (1) 'Modification'\n+4855CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4855CF PAYLOAD\n+\n+489118 DATA DESCRIPTOR       08074B50 (134695760)\n+48911C CRC                   0709B18C (118075788)\n+489120 Compressed Size       00003B49 (15177)\n+489124 Uncompressed Size     00003B49 (15177)\n+\n+489128 LOCAL HEADER #1330    04034B50 (67324752)\n+48912C Extract Zip Spec      14 (20) '2.0'\n+48912D Extract OS            00 (0) 'MS-DOS'\n+48912E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+489130 Compression Method    0000 (0) 'Stored'\n+489132 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+489136 CRC                   00000000 (0)\n+48913A Compressed Size       00000000 (0)\n+48913E Uncompressed Size     00000000 (0)\n+489142 Filename Length       0044 (68)\n+489144 Extra Length          0009 (9)\n+489146 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x489146: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48918A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48918C   Length              0005 (5)\n+48918E   Flags               01 (1) 'Modification'\n+48918F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+489193 PAYLOAD\n+\n+489C93 DATA DESCRIPTOR       08074B50 (134695760)\n+489C97 CRC                   E2477A52 (3796335186)\n+489C9B Compressed Size       00000B00 (2816)\n+489C9F Uncompressed Size     00000B00 (2816)\n+\n+489CA3 LOCAL HEADER #1331    04034B50 (67324752)\n+489CA7 Extract Zip Spec      14 (20) '2.0'\n+489CA8 Extract OS            00 (0) 'MS-DOS'\n+489CA9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+489CAB Compression Method    0000 (0) 'Stored'\n+489CAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+489CB1 CRC                   00000000 (0)\n+489CB5 Compressed Size       00000000 (0)\n+489CB9 Uncompressed Size     00000000 (0)\n+489CBD Filename Length       0045 (69)\n+489CBF Extra Length          0009 (9)\n+489CC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x489CC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+489D06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+489D08   Length              0005 (5)\n+489D0A   Flags               01 (1) 'Modification'\n+489D0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+489D0F PAYLOAD\n+\n+48AF17 DATA DESCRIPTOR       08074B50 (134695760)\n+48AF1B CRC                   00160E4A (1445450)\n+48AF1F Compressed Size       00001208 (4616)\n+48AF23 Uncompressed Size     00001208 (4616)\n+\n+48AF27 LOCAL HEADER #1332    04034B50 (67324752)\n+48AF2B Extract Zip Spec      14 (20) '2.0'\n+48AF2C Extract OS            00 (0) 'MS-DOS'\n+48AF2D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48AF2F Compression Method    0000 (0) 'Stored'\n+48AF31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48AF35 CRC                   00000000 (0)\n+48AF39 Compressed Size       00000000 (0)\n+48AF3D Uncompressed Size     00000000 (0)\n+48AF41 Filename Length       0050 (80)\n+48AF43 Extra Length          0009 (9)\n+48AF45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48AF45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48AF95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48AF97   Length              0005 (5)\n+48AF99   Flags               01 (1) 'Modification'\n+48AF9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48AF9E PAYLOAD\n+\n+48BA0E DATA DESCRIPTOR       08074B50 (134695760)\n+48BA12 CRC                   6EF68498 (1861649560)\n+48BA16 Compressed Size       00000A70 (2672)\n+48BA1A Uncompressed Size     00000A70 (2672)\n+\n+48BA1E LOCAL HEADER #1333    04034B50 (67324752)\n+48BA22 Extract Zip Spec      14 (20) '2.0'\n+48BA23 Extract OS            00 (0) 'MS-DOS'\n+48BA24 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48BA26 Compression Method    0000 (0) 'Stored'\n+48BA28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48BA2C CRC                   00000000 (0)\n+48BA30 Compressed Size       00000000 (0)\n+48BA34 Uncompressed Size     00000000 (0)\n+48BA38 Filename Length       0032 (50)\n+48BA3A Extra Length          0009 (9)\n+48BA3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48BA3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48BA6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48BA70   Length              0005 (5)\n+48BA72   Flags               01 (1) 'Modification'\n+48BA73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48BA77 PAYLOAD\n+\n+48BE90 DATA DESCRIPTOR       08074B50 (134695760)\n+48BE94 CRC                   0DCE7BD6 (231635926)\n+48BE98 Compressed Size       00000419 (1049)\n+48BE9C Uncompressed Size     00000419 (1049)\n+\n+48BEA0 LOCAL HEADER #1334    04034B50 (67324752)\n+48BEA4 Extract Zip Spec      14 (20) '2.0'\n+48BEA5 Extract OS            00 (0) 'MS-DOS'\n+48BEA6 General Purpose Flag  0000 (0)\n+48BEA8 Compression Method    0000 (0) 'Stored'\n+48BEAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48BEAE CRC                   00000000 (0)\n+48BEB2 Compressed Size       00000000 (0)\n+48BEB6 Uncompressed Size     00000000 (0)\n+48BEBA Filename Length       002A (42)\n+48BEBC Extra Length          0009 (9)\n+48BEBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48BEBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48BEE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48BEEA   Length              0005 (5)\n+48BEEC   Flags               01 (1) 'Modification'\n+48BEED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+48BEF1 LOCAL HEADER #1335    04034B50 (67324752)\n+48BEF5 Extract Zip Spec      14 (20) '2.0'\n+48BEF6 Extract OS            00 (0) 'MS-DOS'\n+48BEF7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48BEF9 Compression Method    0000 (0) 'Stored'\n+48BEFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48BEFF CRC                   00000000 (0)\n+48BF03 Compressed Size       00000000 (0)\n+48BF07 Uncompressed Size     00000000 (0)\n+48BF0B Filename Length       004C (76)\n+48BF0D Extra Length          0009 (9)\n+48BF0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48BF0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48BF5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48BF5D   Length              0005 (5)\n+48BF5F   Flags               01 (1) 'Modification'\n+48BF60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48BF64 PAYLOAD\n+\n+48C63C DATA DESCRIPTOR       08074B50 (134695760)\n+48C640 CRC                   3EC7C431 (1053279281)\n+48C644 Compressed Size       000006D8 (1752)\n+48C648 Uncompressed Size     000006D8 (1752)\n+\n+48C64C LOCAL HEADER #1336    04034B50 (67324752)\n+48C650 Extract Zip Spec      14 (20) '2.0'\n+48C651 Extract OS            00 (0) 'MS-DOS'\n+48C652 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48C654 Compression Method    0000 (0) 'Stored'\n+48C656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48C65A CRC                   00000000 (0)\n+48C65E Compressed Size       00000000 (0)\n+48C662 Uncompressed Size     00000000 (0)\n+48C666 Filename Length       0046 (70)\n+48C668 Extra Length          0009 (9)\n+48C66A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48C66A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48C6B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48C6B2   Length              0005 (5)\n+48C6B4   Flags               01 (1) 'Modification'\n+48C6B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48C6B9 PAYLOAD\n+\n+48CD87 DATA DESCRIPTOR       08074B50 (134695760)\n+48CD8B CRC                   0AF6711C (183922972)\n+48CD8F Compressed Size       000006CE (1742)\n+48CD93 Uncompressed Size     000006CE (1742)\n+\n+48CD97 LOCAL HEADER #1337    04034B50 (67324752)\n+48CD9B Extract Zip Spec      14 (20) '2.0'\n+48CD9C Extract OS            00 (0) 'MS-DOS'\n+48CD9D General Purpose Flag  0000 (0)\n+48CD9F Compression Method    0000 (0) 'Stored'\n+48CDA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48CDA5 CRC                   00000000 (0)\n+48CDA9 Compressed Size       00000000 (0)\n+48CDAD Uncompressed Size     00000000 (0)\n+48CDB1 Filename Length       0021 (33)\n+48CDB3 Extra Length          0009 (9)\n+48CDB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48CDB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48CDD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48CDD8   Length              0005 (5)\n+48CDDA   Flags               01 (1) 'Modification'\n+48CDDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+48CDDF LOCAL HEADER #1338    04034B50 (67324752)\n+48CDE3 Extract Zip Spec      14 (20) '2.0'\n+48CDE4 Extract OS            00 (0) 'MS-DOS'\n+48CDE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48CDE7 Compression Method    0000 (0) 'Stored'\n+48CDE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48CDED CRC                   00000000 (0)\n+48CDF1 Compressed Size       00000000 (0)\n+48CDF5 Uncompressed Size     00000000 (0)\n+48CDF9 Filename Length       003C (60)\n+48CDFB Extra Length          0009 (9)\n+48CDFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48CDFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48CE39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48CE3B   Length              0005 (5)\n+48CE3D   Flags               01 (1) 'Modification'\n+48CE3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48CE42 PAYLOAD\n+\n+48D4AA DATA DESCRIPTOR       08074B50 (134695760)\n+48D4AE CRC                   5B9C99AA (1536989610)\n+48D4B2 Compressed Size       00000668 (1640)\n+48D4B6 Uncompressed Size     00000668 (1640)\n+\n+48D4BA LOCAL HEADER #1339    04034B50 (67324752)\n+48D4BE Extract Zip Spec      14 (20) '2.0'\n+48D4BF Extract OS            00 (0) 'MS-DOS'\n+48D4C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48D4C2 Compression Method    0000 (0) 'Stored'\n+48D4C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48D4C8 CRC                   00000000 (0)\n+48D4CC Compressed Size       00000000 (0)\n+48D4D0 Uncompressed Size     00000000 (0)\n+48D4D4 Filename Length       0035 (53)\n+48D4D6 Extra Length          0009 (9)\n+48D4D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48D4D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48D50D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48D50F   Length              0005 (5)\n+48D511   Flags               01 (1) 'Modification'\n+48D512   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48D516 PAYLOAD\n+\n+48DF40 DATA DESCRIPTOR       08074B50 (134695760)\n+48DF44 CRC                   050B43B2 (84624306)\n+48DF48 Compressed Size       00000A2A (2602)\n+48DF4C Uncompressed Size     00000A2A (2602)\n+\n+48DF50 LOCAL HEADER #1340    04034B50 (67324752)\n+48DF54 Extract Zip Spec      14 (20) '2.0'\n+48DF55 Extract OS            00 (0) 'MS-DOS'\n+48DF56 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+48DF58 Compression Method    0000 (0) 'Stored'\n+48DF5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+48DF5E CRC                   00000000 (0)\n+48DF62 Compressed Size       00000000 (0)\n+48DF66 Uncompressed Size     00000000 (0)\n+48DF6A Filename Length       0034 (52)\n+48DF6C Extra Length          0009 (9)\n+48DF6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x48DF6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+48DFA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+48DFA4   Length              0005 (5)\n+48DFA6   Flags               01 (1) 'Modification'\n+48DFA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+48DFAB PAYLOAD\n+\n+4919AA DATA DESCRIPTOR       08074B50 (134695760)\n+4919AE CRC                   C548D865 (3309885541)\n+4919B2 Compressed Size       000039FF (14847)\n+4919B6 Uncompressed Size     000039FF (14847)\n+\n+4919BA LOCAL HEADER #1341    04034B50 (67324752)\n+4919BE Extract Zip Spec      14 (20) '2.0'\n+4919BF Extract OS            00 (0) 'MS-DOS'\n+4919C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4919C2 Compression Method    0000 (0) 'Stored'\n+4919C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4919C8 CRC                   00000000 (0)\n+4919CC Compressed Size       00000000 (0)\n+4919D0 Uncompressed Size     00000000 (0)\n+4919D4 Filename Length       003B (59)\n+4919D6 Extra Length          0009 (9)\n+4919D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4919D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+491A13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+491A15   Length              0005 (5)\n+491A17   Flags               01 (1) 'Modification'\n+491A18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+491A1C PAYLOAD\n+\n+491F0D DATA DESCRIPTOR       08074B50 (134695760)\n+491F11 CRC                   F93C1E65 (4181466725)\n+491F15 Compressed Size       000004F1 (1265)\n+491F19 Uncompressed Size     000004F1 (1265)\n+\n+491F1D LOCAL HEADER #1342    04034B50 (67324752)\n+491F21 Extract Zip Spec      14 (20) '2.0'\n+491F22 Extract OS            00 (0) 'MS-DOS'\n+491F23 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+491F25 Compression Method    0000 (0) 'Stored'\n+491F27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+491F2B CRC                   00000000 (0)\n+491F2F Compressed Size       00000000 (0)\n+491F33 Uncompressed Size     00000000 (0)\n+491F37 Filename Length       003C (60)\n+491F39 Extra Length          0009 (9)\n+491F3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x491F3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+491F77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+491F79   Length              0005 (5)\n+491F7B   Flags               01 (1) 'Modification'\n+491F7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+491F80 PAYLOAD\n+\n+4968DE DATA DESCRIPTOR       08074B50 (134695760)\n+4968E2 CRC                   1758261F (391652895)\n+4968E6 Compressed Size       0000495E (18782)\n+4968EA Uncompressed Size     0000495E (18782)\n+\n+4968EE LOCAL HEADER #1343    04034B50 (67324752)\n+4968F2 Extract Zip Spec      14 (20) '2.0'\n+4968F3 Extract OS            00 (0) 'MS-DOS'\n+4968F4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4968F6 Compression Method    0000 (0) 'Stored'\n+4968F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4968FC CRC                   00000000 (0)\n+496900 Compressed Size       00000000 (0)\n+496904 Uncompressed Size     00000000 (0)\n+496908 Filename Length       0043 (67)\n+49690A Extra Length          0009 (9)\n+49690C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49690C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49694F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+496951   Length              0005 (5)\n+496953   Flags               01 (1) 'Modification'\n+496954   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+496958 PAYLOAD\n+\n+496E47 DATA DESCRIPTOR       08074B50 (134695760)\n+496E4B CRC                   09B44E50 (162811472)\n+496E4F Compressed Size       000004EF (1263)\n+496E53 Uncompressed Size     000004EF (1263)\n+\n+496E57 LOCAL HEADER #1344    04034B50 (67324752)\n+496E5B Extract Zip Spec      14 (20) '2.0'\n+496E5C Extract OS            00 (0) 'MS-DOS'\n+496E5D General Purpose Flag  0808 (2056)\n        [Bit  3]              1 'Streamed'\n        [Bit 11]              1 'Language Encoding'\n-486F1B Compression Method    0000 (0) 'Stored'\n-486F1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-486F21 CRC                   00000000 (0)\n-486F25 Compressed Size       00000000 (0)\n-486F29 Uncompressed Size     00000000 (0)\n-486F2D Filename Length       0048 (72)\n-486F2F Extra Length          0009 (9)\n-486F31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x486F31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-486F79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-486F7B   Length              0005 (5)\n-486F7D   Flags               01 (1) 'Modification'\n-486F7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-486F82 PAYLOAD\n-\n-487453 DATA DESCRIPTOR       08074B50 (134695760)\n-487457 CRC                   35541C2F (894704687)\n-48745B Compressed Size       000004D1 (1233)\n-48745F Uncompressed Size     000004D1 (1233)\n-\n-487463 LOCAL HEADER #1345    04034B50 (67324752)\n-487467 Extract Zip Spec      14 (20) '2.0'\n-487468 Extract OS            00 (0) 'MS-DOS'\n-487469 General Purpose Flag  0808 (2056)\n+496E5F Compression Method    0000 (0) 'Stored'\n+496E61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+496E65 CRC                   00000000 (0)\n+496E69 Compressed Size       00000000 (0)\n+496E6D Uncompressed Size     00000000 (0)\n+496E71 Filename Length       0048 (72)\n+496E73 Extra Length          0009 (9)\n+496E75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x496E75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+496EBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+496EBF   Length              0005 (5)\n+496EC1   Flags               01 (1) 'Modification'\n+496EC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+496EC6 PAYLOAD\n+\n+4973B5 DATA DESCRIPTOR       08074B50 (134695760)\n+4973B9 CRC                   09B44E50 (162811472)\n+4973BD Compressed Size       000004EF (1263)\n+4973C1 Uncompressed Size     000004EF (1263)\n+\n+4973C5 LOCAL HEADER #1345    04034B50 (67324752)\n+4973C9 Extract Zip Spec      14 (20) '2.0'\n+4973CA Extract OS            00 (0) 'MS-DOS'\n+4973CB General Purpose Flag  0808 (2056)\n        [Bit  3]              1 'Streamed'\n        [Bit 11]              1 'Language Encoding'\n-48746B Compression Method    0000 (0) 'Stored'\n-48746D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-487471 CRC                   00000000 (0)\n-487475 Compressed Size       00000000 (0)\n-487479 Uncompressed Size     00000000 (0)\n-48747D Filename Length       0050 (80)\n-48747F Extra Length          0009 (9)\n-487481 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x487481: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4874D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4874D3   Length              0005 (5)\n-4874D5   Flags               01 (1) 'Modification'\n-4874D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4874DA PAYLOAD\n-\n-4879AB DATA DESCRIPTOR       08074B50 (134695760)\n-4879AF CRC                   35541C2F (894704687)\n-4879B3 Compressed Size       000004D1 (1233)\n-4879B7 Uncompressed Size     000004D1 (1233)\n-\n-4879BB LOCAL HEADER #1346    04034B50 (67324752)\n-4879BF Extract Zip Spec      14 (20) '2.0'\n-4879C0 Extract OS            00 (0) 'MS-DOS'\n-4879C1 General Purpose Flag  0000 (0)\n-4879C3 Compression Method    0000 (0) 'Stored'\n-4879C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4879C9 CRC                   00000000 (0)\n-4879CD Compressed Size       00000000 (0)\n-4879D1 Uncompressed Size     00000000 (0)\n-4879D5 Filename Length       0020 (32)\n-4879D7 Extra Length          0009 (9)\n-4879D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4879D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4879F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4879FB   Length              0005 (5)\n-4879FD   Flags               01 (1) 'Modification'\n-4879FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-487A02 LOCAL HEADER #1347    04034B50 (67324752)\n-487A06 Extract Zip Spec      14 (20) '2.0'\n-487A07 Extract OS            00 (0) 'MS-DOS'\n-487A08 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-487A0A Compression Method    0000 (0) 'Stored'\n-487A0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-487A10 CRC                   00000000 (0)\n-487A14 Compressed Size       00000000 (0)\n-487A18 Uncompressed Size     00000000 (0)\n-487A1C Filename Length       0032 (50)\n-487A1E Extra Length          0009 (9)\n-487A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x487A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-487A52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-487A54   Length              0005 (5)\n-487A56   Flags               01 (1) 'Modification'\n-487A57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-487A5B PAYLOAD\n-\n-48919F DATA DESCRIPTOR       08074B50 (134695760)\n-4891A3 CRC                   AE92FDCB (2928868811)\n-4891A7 Compressed Size       00001744 (5956)\n-4891AB Uncompressed Size     00001744 (5956)\n-\n-4891AF LOCAL HEADER #1348    04034B50 (67324752)\n-4891B3 Extract Zip Spec      14 (20) '2.0'\n-4891B4 Extract OS            00 (0) 'MS-DOS'\n-4891B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4891B7 Compression Method    0000 (0) 'Stored'\n-4891B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4891BD CRC                   00000000 (0)\n-4891C1 Compressed Size       00000000 (0)\n-4891C5 Uncompressed Size     00000000 (0)\n-4891C9 Filename Length       0039 (57)\n-4891CB Extra Length          0009 (9)\n-4891CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4891CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-489206 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-489208   Length              0005 (5)\n-48920A   Flags               01 (1) 'Modification'\n-48920B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-48920F PAYLOAD\n-\n-48A88F DATA DESCRIPTOR       08074B50 (134695760)\n-48A893 CRC                   1162A7F0 (291678192)\n-48A897 Compressed Size       00001680 (5760)\n-48A89B Uncompressed Size     00001680 (5760)\n-\n-48A89F LOCAL HEADER #1349    04034B50 (67324752)\n-48A8A3 Extract Zip Spec      14 (20) '2.0'\n-48A8A4 Extract OS            00 (0) 'MS-DOS'\n-48A8A5 General Purpose Flag  0000 (0)\n-48A8A7 Compression Method    0000 (0) 'Stored'\n-48A8A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-48A8AD CRC                   00000000 (0)\n-48A8B1 Compressed Size       00000000 (0)\n-48A8B5 Uncompressed Size     00000000 (0)\n-48A8B9 Filename Length       001F (31)\n-48A8BB Extra Length          0009 (9)\n-48A8BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x48A8BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-48A8DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-48A8DE   Length              0005 (5)\n-48A8E0   Flags               01 (1) 'Modification'\n-48A8E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-48A8E5 LOCAL HEADER #1350    04034B50 (67324752)\n-48A8E9 Extract Zip Spec      14 (20) '2.0'\n-48A8EA Extract OS            00 (0) 'MS-DOS'\n-48A8EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-48A8ED Compression Method    0000 (0) 'Stored'\n-48A8EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-48A8F3 CRC                   00000000 (0)\n-48A8F7 Compressed Size       00000000 (0)\n-48A8FB Uncompressed Size     00000000 (0)\n-48A8FF Filename Length       0030 (48)\n-48A901 Extra Length          0009 (9)\n-48A903 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x48A903: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-48A933 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-48A935   Length              0005 (5)\n-48A937   Flags               01 (1) 'Modification'\n-48A938   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-48A93C PAYLOAD\n-\n-48E734 DATA DESCRIPTOR       08074B50 (134695760)\n-48E738 CRC                   E5134667 (3843245671)\n-48E73C Compressed Size       00003DF8 (15864)\n-48E740 Uncompressed Size     00003DF8 (15864)\n-\n-48E744 LOCAL HEADER #1351    04034B50 (67324752)\n-48E748 Extract Zip Spec      14 (20) '2.0'\n-48E749 Extract OS            00 (0) 'MS-DOS'\n-48E74A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-48E74C Compression Method    0000 (0) 'Stored'\n-48E74E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-48E752 CRC                   00000000 (0)\n-48E756 Compressed Size       00000000 (0)\n-48E75A Uncompressed Size     00000000 (0)\n-48E75E Filename Length       0037 (55)\n-48E760 Extra Length          0009 (9)\n-48E762 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x48E762: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-48E799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-48E79B   Length              0005 (5)\n-48E79D   Flags               01 (1) 'Modification'\n-48E79E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-48E7A2 PAYLOAD\n-\n-48ED23 DATA DESCRIPTOR       08074B50 (134695760)\n-48ED27 CRC                   EAAFA7AC (3937380268)\n-48ED2B Compressed Size       00000581 (1409)\n-48ED2F Uncompressed Size     00000581 (1409)\n-\n-48ED33 LOCAL HEADER #1352    04034B50 (67324752)\n-48ED37 Extract Zip Spec      14 (20) '2.0'\n-48ED38 Extract OS            00 (0) 'MS-DOS'\n-48ED39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-48ED3B Compression Method    0000 (0) 'Stored'\n-48ED3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-48ED41 CRC                   00000000 (0)\n-48ED45 Compressed Size       00000000 (0)\n-48ED49 Uncompressed Size     00000000 (0)\n-48ED4D Filename Length       0038 (56)\n-48ED4F Extra Length          0009 (9)\n-48ED51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x48ED51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-48ED89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-48ED8B   Length              0005 (5)\n-48ED8D   Flags               01 (1) 'Modification'\n-48ED8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-48ED92 PAYLOAD\n-\n-490D86 DATA DESCRIPTOR       08074B50 (134695760)\n-490D8A CRC                   D94FAF9D (3645878173)\n-490D8E Compressed Size       00001FF4 (8180)\n-490D92 Uncompressed Size     00001FF4 (8180)\n-\n-490D96 LOCAL HEADER #1353    04034B50 (67324752)\n-490D9A Extract Zip Spec      14 (20) '2.0'\n-490D9B Extract OS            00 (0) 'MS-DOS'\n-490D9C General Purpose Flag  0000 (0)\n-490D9E Compression Method    0000 (0) 'Stored'\n-490DA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-490DA4 CRC                   00000000 (0)\n-490DA8 Compressed Size       00000000 (0)\n-490DAC Uncompressed Size     00000000 (0)\n-490DB0 Filename Length       0021 (33)\n-490DB2 Extra Length          0009 (9)\n-490DB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x490DB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-490DD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-490DD7   Length              0005 (5)\n-490DD9   Flags               01 (1) 'Modification'\n-490DDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-490DDE LOCAL HEADER #1354    04034B50 (67324752)\n-490DE2 Extract Zip Spec      14 (20) '2.0'\n-490DE3 Extract OS            00 (0) 'MS-DOS'\n-490DE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-490DE6 Compression Method    0000 (0) 'Stored'\n-490DE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-490DEC CRC                   00000000 (0)\n-490DF0 Compressed Size       00000000 (0)\n-490DF4 Uncompressed Size     00000000 (0)\n-490DF8 Filename Length       0046 (70)\n-490DFA Extra Length          0009 (9)\n-490DFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x490DFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-490E42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-490E44   Length              0005 (5)\n-490E46   Flags               01 (1) 'Modification'\n-490E47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-490E4B PAYLOAD\n-\n-4934F4 DATA DESCRIPTOR       08074B50 (134695760)\n-4934F8 CRC                   CF5D6816 (3479005206)\n-4934FC Compressed Size       000026A9 (9897)\n-493500 Uncompressed Size     000026A9 (9897)\n-\n-493504 LOCAL HEADER #1355    04034B50 (67324752)\n-493508 Extract Zip Spec      14 (20) '2.0'\n-493509 Extract OS            00 (0) 'MS-DOS'\n-49350A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49350C Compression Method    0000 (0) 'Stored'\n-49350E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-493512 CRC                   00000000 (0)\n-493516 Compressed Size       00000000 (0)\n-49351A Uncompressed Size     00000000 (0)\n-49351E Filename Length       003C (60)\n-493520 Extra Length          0009 (9)\n-493522 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x493522: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49355E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-493560   Length              0005 (5)\n-493562   Flags               01 (1) 'Modification'\n-493563   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-493567 PAYLOAD\n-\n-4960DF DATA DESCRIPTOR       08074B50 (134695760)\n-4960E3 CRC                   4F723C34 (1332886580)\n-4960E7 Compressed Size       00002B78 (11128)\n-4960EB Uncompressed Size     00002B78 (11128)\n-\n-4960EF LOCAL HEADER #1356    04034B50 (67324752)\n-4960F3 Extract Zip Spec      14 (20) '2.0'\n-4960F4 Extract OS            00 (0) 'MS-DOS'\n-4960F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4960F7 Compression Method    0000 (0) 'Stored'\n-4960F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4960FD CRC                   00000000 (0)\n-496101 Compressed Size       00000000 (0)\n-496105 Uncompressed Size     00000000 (0)\n-496109 Filename Length       0032 (50)\n-49610B Extra Length          0009 (9)\n-49610D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49610D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49613F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-496141   Length              0005 (5)\n-496143   Flags               01 (1) 'Modification'\n-496144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-496148 PAYLOAD\n-\n-4964F7 DATA DESCRIPTOR       08074B50 (134695760)\n-4964FB CRC                   71DE9B6F (1910414191)\n-4964FF Compressed Size       000003AF (943)\n-496503 Uncompressed Size     000003AF (943)\n-\n-496507 LOCAL HEADER #1357    04034B50 (67324752)\n-49650B Extract Zip Spec      14 (20) '2.0'\n-49650C Extract OS            00 (0) 'MS-DOS'\n-49650D General Purpose Flag  0000 (0)\n-49650F Compression Method    0000 (0) 'Stored'\n-496511 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-496515 CRC                   00000000 (0)\n-496519 Compressed Size       00000000 (0)\n-49651D Uncompressed Size     00000000 (0)\n-496521 Filename Length       0026 (38)\n-496523 Extra Length          0009 (9)\n-496525 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x496525: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49654B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49654D   Length              0005 (5)\n-49654F   Flags               01 (1) 'Modification'\n-496550   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-496554 LOCAL HEADER #1358    04034B50 (67324752)\n-496558 Extract Zip Spec      14 (20) '2.0'\n-496559 Extract OS            00 (0) 'MS-DOS'\n-49655A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49655C Compression Method    0000 (0) 'Stored'\n-49655E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-496562 CRC                   00000000 (0)\n-496566 Compressed Size       00000000 (0)\n-49656A Uncompressed Size     00000000 (0)\n-49656E Filename Length       0047 (71)\n-496570 Extra Length          0009 (9)\n-496572 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x496572: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4965B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4965BB   Length              0005 (5)\n-4965BD   Flags               01 (1) 'Modification'\n-4965BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4965C2 PAYLOAD\n-\n-4974F6 DATA DESCRIPTOR       08074B50 (134695760)\n-4974FA CRC                   F2CE052F (4073588015)\n-4974FE Compressed Size       00000F34 (3892)\n-497502 Uncompressed Size     00000F34 (3892)\n-\n-497506 LOCAL HEADER #1359    04034B50 (67324752)\n-49750A Extract Zip Spec      14 (20) '2.0'\n-49750B Extract OS            00 (0) 'MS-DOS'\n-49750C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49750E Compression Method    0000 (0) 'Stored'\n-497510 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-497514 CRC                   00000000 (0)\n-497518 Compressed Size       00000000 (0)\n-49751C Uncompressed Size     00000000 (0)\n-497520 Filename Length       003B (59)\n-497522 Extra Length          0009 (9)\n-497524 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x497524: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49755F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-497561   Length              0005 (5)\n-497563   Flags               01 (1) 'Modification'\n-497564   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-497568 PAYLOAD\n-\n-49A164 DATA DESCRIPTOR       08074B50 (134695760)\n-49A168 CRC                   BF63BCF2 (3210984690)\n-49A16C Compressed Size       00002BFC (11260)\n-49A170 Uncompressed Size     00002BFC (11260)\n-\n-49A174 LOCAL HEADER #1360    04034B50 (67324752)\n-49A178 Extract Zip Spec      14 (20) '2.0'\n-49A179 Extract OS            00 (0) 'MS-DOS'\n-49A17A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49A17C Compression Method    0000 (0) 'Stored'\n-49A17E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49A182 CRC                   00000000 (0)\n-49A186 Compressed Size       00000000 (0)\n-49A18A Uncompressed Size     00000000 (0)\n-49A18E Filename Length       004E (78)\n-49A190 Extra Length          0009 (9)\n-49A192 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49A192: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49A1E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49A1E2   Length              0005 (5)\n-49A1E4   Flags               01 (1) 'Modification'\n-49A1E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-49A1E9 PAYLOAD\n-\n-49AEAC DATA DESCRIPTOR       08074B50 (134695760)\n-49AEB0 CRC                   E2D6B20B (3805721099)\n-49AEB4 Compressed Size       00000CC3 (3267)\n-49AEB8 Uncompressed Size     00000CC3 (3267)\n-\n-49AEBC LOCAL HEADER #1361    04034B50 (67324752)\n-49AEC0 Extract Zip Spec      14 (20) '2.0'\n-49AEC1 Extract OS            00 (0) 'MS-DOS'\n-49AEC2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49AEC4 Compression Method    0000 (0) 'Stored'\n-49AEC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49AECA CRC                   00000000 (0)\n-49AECE Compressed Size       00000000 (0)\n-49AED2 Uncompressed Size     00000000 (0)\n-49AED6 Filename Length       0042 (66)\n-49AED8 Extra Length          0009 (9)\n-49AEDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49AEDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49AF1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49AF1E   Length              0005 (5)\n-49AF20   Flags               01 (1) 'Modification'\n-49AF21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-49AF25 PAYLOAD\n-\n-49B2B9 DATA DESCRIPTOR       08074B50 (134695760)\n-49B2BD CRC                   ACAF58B5 (2897172661)\n-49B2C1 Compressed Size       00000394 (916)\n-49B2C5 Uncompressed Size     00000394 (916)\n-\n-49B2C9 LOCAL HEADER #1362    04034B50 (67324752)\n-49B2CD Extract Zip Spec      14 (20) '2.0'\n-49B2CE Extract OS            00 (0) 'MS-DOS'\n-49B2CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-49B2D1 Compression Method    0000 (0) 'Stored'\n-49B2D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-49B2D7 CRC                   00000000 (0)\n-49B2DB Compressed Size       00000000 (0)\n-49B2DF Uncompressed Size     00000000 (0)\n-49B2E3 Filename Length       003C (60)\n-49B2E5 Extra Length          0009 (9)\n-49B2E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x49B2E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-49B323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-49B325   Length              0005 (5)\n-49B327   Flags               01 (1) 'Modification'\n-49B328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-49B32C PAYLOAD\n-\n-4A2566 DATA DESCRIPTOR       08074B50 (134695760)\n-4A256A CRC                   963EDCDB (2520702171)\n-4A256E Compressed Size       0000723A (29242)\n-4A2572 Uncompressed Size     0000723A (29242)\n-\n-4A2576 LOCAL HEADER #1363    04034B50 (67324752)\n-4A257A Extract Zip Spec      14 (20) '2.0'\n-4A257B Extract OS            00 (0) 'MS-DOS'\n-4A257C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4A257E Compression Method    0000 (0) 'Stored'\n-4A2580 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4A2584 CRC                   00000000 (0)\n-4A2588 Compressed Size       00000000 (0)\n-4A258C Uncompressed Size     00000000 (0)\n-4A2590 Filename Length       003B (59)\n-4A2592 Extra Length          0009 (9)\n-4A2594 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4A2594: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4A25CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4A25D1   Length              0005 (5)\n-4A25D3   Flags               01 (1) 'Modification'\n-4A25D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4A25D8 PAYLOAD\n-\n-4AB846 DATA DESCRIPTOR       08074B50 (134695760)\n-4AB84A CRC                   FA47221B (4198965787)\n-4AB84E Compressed Size       0000926E (37486)\n-4AB852 Uncompressed Size     0000926E (37486)\n-\n-4AB856 LOCAL HEADER #1364    04034B50 (67324752)\n-4AB85A Extract Zip Spec      14 (20) '2.0'\n-4AB85B Extract OS            00 (0) 'MS-DOS'\n-4AB85C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4AB85E Compression Method    0000 (0) 'Stored'\n-4AB860 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AB864 CRC                   00000000 (0)\n-4AB868 Compressed Size       00000000 (0)\n-4AB86C Uncompressed Size     00000000 (0)\n-4AB870 Filename Length       0043 (67)\n-4AB872 Extra Length          0009 (9)\n-4AB874 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AB874: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4AB8B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4AB8B9   Length              0005 (5)\n-4AB8BB   Flags               01 (1) 'Modification'\n-4AB8BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4AB8C0 PAYLOAD\n-\n-4AC0EF DATA DESCRIPTOR       08074B50 (134695760)\n-4AC0F3 CRC                   14A86D48 (346582344)\n-4AC0F7 Compressed Size       0000082F (2095)\n-4AC0FB Uncompressed Size     0000082F (2095)\n-\n-4AC0FF LOCAL HEADER #1365    04034B50 (67324752)\n-4AC103 Extract Zip Spec      14 (20) '2.0'\n-4AC104 Extract OS            00 (0) 'MS-DOS'\n-4AC105 General Purpose Flag  0000 (0)\n-4AC107 Compression Method    0000 (0) 'Stored'\n-4AC109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AC10D CRC                   00000000 (0)\n-4AC111 Compressed Size       00000000 (0)\n-4AC115 Uncompressed Size     00000000 (0)\n-4AC119 Filename Length       0024 (36)\n-4AC11B Extra Length          0009 (9)\n-4AC11D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AC11D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4AC141 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4AC143   Length              0005 (5)\n-4AC145   Flags               01 (1) 'Modification'\n-4AC146   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4AC14A LOCAL HEADER #1366    04034B50 (67324752)\n-4AC14E Extract Zip Spec      14 (20) '2.0'\n-4AC14F Extract OS            00 (0) 'MS-DOS'\n-4AC150 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4AC152 Compression Method    0000 (0) 'Stored'\n-4AC154 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4AC158 CRC                   00000000 (0)\n-4AC15C Compressed Size       00000000 (0)\n-4AC160 Uncompressed Size     00000000 (0)\n-4AC164 Filename Length       003A (58)\n-4AC166 Extra Length          0009 (9)\n-4AC168 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4AC168: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4AC1A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4AC1A4   Length              0005 (5)\n-4AC1A6   Flags               01 (1) 'Modification'\n-4AC1A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4AC1AB PAYLOAD\n-\n-4B02FF DATA DESCRIPTOR       08074B50 (134695760)\n-4B0303 CRC                   E0604599 (3764405657)\n-4B0307 Compressed Size       00004154 (16724)\n-4B030B Uncompressed Size     00004154 (16724)\n-\n-4B030F LOCAL HEADER #1367    04034B50 (67324752)\n-4B0313 Extract Zip Spec      14 (20) '2.0'\n-4B0314 Extract OS            00 (0) 'MS-DOS'\n-4B0315 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B0317 Compression Method    0000 (0) 'Stored'\n-4B0319 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B031D CRC                   00000000 (0)\n-4B0321 Compressed Size       00000000 (0)\n-4B0325 Uncompressed Size     00000000 (0)\n-4B0329 Filename Length       0041 (65)\n-4B032B Extra Length          0009 (9)\n-4B032D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B032D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B036E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B0370   Length              0005 (5)\n-4B0372   Flags               01 (1) 'Modification'\n-4B0373   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B0377 PAYLOAD\n-\n-4B085B DATA DESCRIPTOR       08074B50 (134695760)\n-4B085F CRC                   20C4D90B (549771531)\n-4B0863 Compressed Size       000004E4 (1252)\n-4B0867 Uncompressed Size     000004E4 (1252)\n-\n-4B086B LOCAL HEADER #1368    04034B50 (67324752)\n-4B086F Extract Zip Spec      14 (20) '2.0'\n-4B0870 Extract OS            00 (0) 'MS-DOS'\n-4B0871 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B0873 Compression Method    0000 (0) 'Stored'\n-4B0875 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B0879 CRC                   00000000 (0)\n-4B087D Compressed Size       00000000 (0)\n-4B0881 Uncompressed Size     00000000 (0)\n-4B0885 Filename Length       0042 (66)\n-4B0887 Extra Length          0009 (9)\n-4B0889 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B0889: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B08CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B08CD   Length              0005 (5)\n-4B08CF   Flags               01 (1) 'Modification'\n-4B08D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B08D4 PAYLOAD\n-\n-4B1060 DATA DESCRIPTOR       08074B50 (134695760)\n-4B1064 CRC                   DE8C8852 (3733751890)\n-4B1068 Compressed Size       0000078C (1932)\n-4B106C Uncompressed Size     0000078C (1932)\n-\n-4B1070 LOCAL HEADER #1369    04034B50 (67324752)\n-4B1074 Extract Zip Spec      14 (20) '2.0'\n-4B1075 Extract OS            00 (0) 'MS-DOS'\n-4B1076 General Purpose Flag  0000 (0)\n-4B1078 Compression Method    0000 (0) 'Stored'\n-4B107A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B107E CRC                   00000000 (0)\n-4B1082 Compressed Size       00000000 (0)\n-4B1086 Uncompressed Size     00000000 (0)\n-4B108A Filename Length       0023 (35)\n-4B108C Extra Length          0009 (9)\n-4B108E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B108E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B10B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B10B3   Length              0005 (5)\n-4B10B5   Flags               01 (1) 'Modification'\n-4B10B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4B10BA LOCAL HEADER #1370    04034B50 (67324752)\n-4B10BE Extract Zip Spec      14 (20) '2.0'\n-4B10BF Extract OS            00 (0) 'MS-DOS'\n-4B10C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B10C2 Compression Method    0000 (0) 'Stored'\n-4B10C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B10C8 CRC                   00000000 (0)\n-4B10CC Compressed Size       00000000 (0)\n-4B10D0 Uncompressed Size     00000000 (0)\n-4B10D4 Filename Length       0038 (56)\n-4B10D6 Extra Length          0009 (9)\n-4B10D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B10D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B1110 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B1112   Length              0005 (5)\n-4B1114   Flags               01 (1) 'Modification'\n-4B1115   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B1119 PAYLOAD\n-\n-4B418F DATA DESCRIPTOR       08074B50 (134695760)\n-4B4193 CRC                   71E62C15 (1910909973)\n-4B4197 Compressed Size       00003076 (12406)\n-4B419B Uncompressed Size     00003076 (12406)\n-\n-4B419F LOCAL HEADER #1371    04034B50 (67324752)\n-4B41A3 Extract Zip Spec      14 (20) '2.0'\n-4B41A4 Extract OS            00 (0) 'MS-DOS'\n-4B41A5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B41A7 Compression Method    0000 (0) 'Stored'\n-4B41A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B41AD CRC                   00000000 (0)\n-4B41B1 Compressed Size       00000000 (0)\n-4B41B5 Uncompressed Size     00000000 (0)\n-4B41B9 Filename Length       003F (63)\n-4B41BB Extra Length          0009 (9)\n-4B41BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B41BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B41FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B41FE   Length              0005 (5)\n-4B4200   Flags               01 (1) 'Modification'\n-4B4201   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B4205 PAYLOAD\n-\n-4B46C3 DATA DESCRIPTOR       08074B50 (134695760)\n-4B46C7 CRC                   6ACD2956 (1791830358)\n-4B46CB Compressed Size       000004BE (1214)\n-4B46CF Uncompressed Size     000004BE (1214)\n-\n-4B46D3 LOCAL HEADER #1372    04034B50 (67324752)\n-4B46D7 Extract Zip Spec      14 (20) '2.0'\n-4B46D8 Extract OS            00 (0) 'MS-DOS'\n-4B46D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B46DB Compression Method    0000 (0) 'Stored'\n-4B46DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B46E1 CRC                   00000000 (0)\n-4B46E5 Compressed Size       00000000 (0)\n-4B46E9 Uncompressed Size     00000000 (0)\n-4B46ED Filename Length       0048 (72)\n-4B46EF Extra Length          0009 (9)\n-4B46F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B46F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B4739 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B473B   Length              0005 (5)\n-4B473D   Flags               01 (1) 'Modification'\n-4B473E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B4742 PAYLOAD\n-\n-4B65C5 DATA DESCRIPTOR       08074B50 (134695760)\n-4B65C9 CRC                   32A6602D (849764397)\n-4B65CD Compressed Size       00001E83 (7811)\n-4B65D1 Uncompressed Size     00001E83 (7811)\n-\n-4B65D5 LOCAL HEADER #1373    04034B50 (67324752)\n-4B65D9 Extract Zip Spec      14 (20) '2.0'\n-4B65DA Extract OS            00 (0) 'MS-DOS'\n-4B65DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B65DD Compression Method    0000 (0) 'Stored'\n-4B65DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B65E3 CRC                   00000000 (0)\n-4B65E7 Compressed Size       00000000 (0)\n-4B65EB Uncompressed Size     00000000 (0)\n-4B65EF Filename Length       004F (79)\n-4B65F1 Extra Length          0009 (9)\n-4B65F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B65F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B6642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B6644   Length              0005 (5)\n-4B6646   Flags               01 (1) 'Modification'\n-4B6647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B664B PAYLOAD\n-\n-4B6B31 DATA DESCRIPTOR       08074B50 (134695760)\n-4B6B35 CRC                   DA761D6A (3665173866)\n-4B6B39 Compressed Size       000004E6 (1254)\n-4B6B3D Uncompressed Size     000004E6 (1254)\n-\n-4B6B41 LOCAL HEADER #1374    04034B50 (67324752)\n-4B6B45 Extract Zip Spec      14 (20) '2.0'\n-4B6B46 Extract OS            00 (0) 'MS-DOS'\n-4B6B47 General Purpose Flag  0000 (0)\n-4B6B49 Compression Method    0000 (0) 'Stored'\n-4B6B4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B6B4F CRC                   00000000 (0)\n-4B6B53 Compressed Size       00000000 (0)\n-4B6B57 Uncompressed Size     00000000 (0)\n-4B6B5B Filename Length       0020 (32)\n-4B6B5D Extra Length          0009 (9)\n-4B6B5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B6B5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B6B7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B6B81   Length              0005 (5)\n-4B6B83   Flags               01 (1) 'Modification'\n-4B6B84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4B6B88 LOCAL HEADER #1375    04034B50 (67324752)\n-4B6B8C Extract Zip Spec      14 (20) '2.0'\n-4B6B8D Extract OS            00 (0) 'MS-DOS'\n-4B6B8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B6B90 Compression Method    0000 (0) 'Stored'\n-4B6B92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B6B96 CRC                   00000000 (0)\n-4B6B9A Compressed Size       00000000 (0)\n-4B6B9E Uncompressed Size     00000000 (0)\n-4B6BA2 Filename Length       003E (62)\n-4B6BA4 Extra Length          0009 (9)\n-4B6BA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B6BA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B6BE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B6BE6   Length              0005 (5)\n-4B6BE8   Flags               01 (1) 'Modification'\n-4B6BE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B6BED PAYLOAD\n-\n-4B79E6 DATA DESCRIPTOR       08074B50 (134695760)\n-4B79EA CRC                   BB0161DF (3137429983)\n-4B79EE Compressed Size       00000DF9 (3577)\n-4B79F2 Uncompressed Size     00000DF9 (3577)\n-\n-4B79F6 LOCAL HEADER #1376    04034B50 (67324752)\n-4B79FA Extract Zip Spec      14 (20) '2.0'\n-4B79FB Extract OS            00 (0) 'MS-DOS'\n-4B79FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4B79FE Compression Method    0000 (0) 'Stored'\n-4B7A00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4B7A04 CRC                   00000000 (0)\n-4B7A08 Compressed Size       00000000 (0)\n-4B7A0C Uncompressed Size     00000000 (0)\n-4B7A10 Filename Length       0032 (50)\n-4B7A12 Extra Length          0009 (9)\n-4B7A14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4B7A14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4B7A46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4B7A48   Length              0005 (5)\n-4B7A4A   Flags               01 (1) 'Modification'\n-4B7A4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4B7A4F PAYLOAD\n-\n-4BD68A DATA DESCRIPTOR       08074B50 (134695760)\n-4BD68E CRC                   E2B000EA (3803185386)\n-4BD692 Compressed Size       00005C3B (23611)\n-4BD696 Uncompressed Size     00005C3B (23611)\n-\n-4BD69A LOCAL HEADER #1377    04034B50 (67324752)\n-4BD69E Extract Zip Spec      14 (20) '2.0'\n-4BD69F Extract OS            00 (0) 'MS-DOS'\n-4BD6A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4BD6A2 Compression Method    0000 (0) 'Stored'\n-4BD6A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4BD6A8 CRC                   00000000 (0)\n-4BD6AC Compressed Size       00000000 (0)\n-4BD6B0 Uncompressed Size     00000000 (0)\n-4BD6B4 Filename Length       0039 (57)\n-4BD6B6 Extra Length          0009 (9)\n-4BD6B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BD6B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4BD6F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4BD6F3   Length              0005 (5)\n-4BD6F5   Flags               01 (1) 'Modification'\n-4BD6F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4BD6FA PAYLOAD\n-\n-4BDE70 DATA DESCRIPTOR       08074B50 (134695760)\n-4BDE74 CRC                   A100EF71 (2701193073)\n-4BDE78 Compressed Size       00000776 (1910)\n-4BDE7C Uncompressed Size     00000776 (1910)\n-\n-4BDE80 LOCAL HEADER #1378    04034B50 (67324752)\n-4BDE84 Extract Zip Spec      14 (20) '2.0'\n-4BDE85 Extract OS            00 (0) 'MS-DOS'\n-4BDE86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4BDE88 Compression Method    0000 (0) 'Stored'\n-4BDE8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4BDE8E CRC                   00000000 (0)\n-4BDE92 Compressed Size       00000000 (0)\n-4BDE96 Uncompressed Size     00000000 (0)\n-4BDE9A Filename Length       003A (58)\n-4BDE9C Extra Length          0009 (9)\n-4BDE9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BDE9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4BDED8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4BDEDA   Length              0005 (5)\n-4BDEDC   Flags               01 (1) 'Modification'\n-4BDEDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4BDEE1 PAYLOAD\n-\n-4BF5A5 DATA DESCRIPTOR       08074B50 (134695760)\n-4BF5A9 CRC                   2220AA2B (572566059)\n-4BF5AD Compressed Size       000016C4 (5828)\n-4BF5B1 Uncompressed Size     000016C4 (5828)\n-\n-4BF5B5 LOCAL HEADER #1379    04034B50 (67324752)\n-4BF5B9 Extract Zip Spec      14 (20) '2.0'\n-4BF5BA Extract OS            00 (0) 'MS-DOS'\n-4BF5BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4BF5BD Compression Method    0000 (0) 'Stored'\n-4BF5BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4BF5C3 CRC                   00000000 (0)\n-4BF5C7 Compressed Size       00000000 (0)\n-4BF5CB Uncompressed Size     00000000 (0)\n-4BF5CF Filename Length       0041 (65)\n-4BF5D1 Extra Length          0009 (9)\n-4BF5D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BF5D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4BF614 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4BF616   Length              0005 (5)\n-4BF618   Flags               01 (1) 'Modification'\n-4BF619   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4BF61D PAYLOAD\n-\n-4BFAF6 DATA DESCRIPTOR       08074B50 (134695760)\n-4BFAFA CRC                   94B18BA4 (2494663588)\n-4BFAFE Compressed Size       000004D9 (1241)\n-4BFB02 Uncompressed Size     000004D9 (1241)\n-\n-4BFB06 LOCAL HEADER #1380    04034B50 (67324752)\n-4BFB0A Extract Zip Spec      14 (20) '2.0'\n-4BFB0B Extract OS            00 (0) 'MS-DOS'\n-4BFB0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4BFB0E Compression Method    0000 (0) 'Stored'\n-4BFB10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4BFB14 CRC                   00000000 (0)\n-4BFB18 Compressed Size       00000000 (0)\n-4BFB1C Uncompressed Size     00000000 (0)\n-4BFB20 Filename Length       0035 (53)\n-4BFB22 Extra Length          0009 (9)\n-4BFB24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4BFB24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4BFB59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4BFB5B   Length              0005 (5)\n-4BFB5D   Flags               01 (1) 'Modification'\n-4BFB5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4BFB62 PAYLOAD\n-\n-4C15DD DATA DESCRIPTOR       08074B50 (134695760)\n-4C15E1 CRC                   F3388AB4 (4080569012)\n-4C15E5 Compressed Size       00001A7B (6779)\n-4C15E9 Uncompressed Size     00001A7B (6779)\n-\n-4C15ED LOCAL HEADER #1381    04034B50 (67324752)\n-4C15F1 Extract Zip Spec      14 (20) '2.0'\n-4C15F2 Extract OS            00 (0) 'MS-DOS'\n-4C15F3 General Purpose Flag  0000 (0)\n-4C15F5 Compression Method    0000 (0) 'Stored'\n-4C15F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C15FB CRC                   00000000 (0)\n-4C15FF Compressed Size       00000000 (0)\n-4C1603 Uncompressed Size     00000000 (0)\n-4C1607 Filename Length       0025 (37)\n-4C1609 Extra Length          0009 (9)\n-4C160B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C160B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C1630 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C1632   Length              0005 (5)\n-4C1634   Flags               01 (1) 'Modification'\n-4C1635   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4C1639 LOCAL HEADER #1382    04034B50 (67324752)\n-4C163D Extract Zip Spec      14 (20) '2.0'\n-4C163E Extract OS            00 (0) 'MS-DOS'\n-4C163F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C1641 Compression Method    0000 (0) 'Stored'\n-4C1643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C1647 CRC                   00000000 (0)\n-4C164B Compressed Size       00000000 (0)\n-4C164F Uncompressed Size     00000000 (0)\n-4C1653 Filename Length       0041 (65)\n-4C1655 Extra Length          0009 (9)\n-4C1657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C1657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C1698 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C169A   Length              0005 (5)\n-4C169C   Flags               01 (1) 'Modification'\n-4C169D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C16A1 PAYLOAD\n-\n-4C2159 DATA DESCRIPTOR       08074B50 (134695760)\n-4C215D CRC                   D4BBF170 (3569086832)\n-4C2161 Compressed Size       00000AB8 (2744)\n-4C2165 Uncompressed Size     00000AB8 (2744)\n-\n-4C2169 LOCAL HEADER #1383    04034B50 (67324752)\n-4C216D Extract Zip Spec      14 (20) '2.0'\n-4C216E Extract OS            00 (0) 'MS-DOS'\n-4C216F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C2171 Compression Method    0000 (0) 'Stored'\n-4C2173 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C2177 CRC                   00000000 (0)\n-4C217B Compressed Size       00000000 (0)\n-4C217F Uncompressed Size     00000000 (0)\n-4C2183 Filename Length       0041 (65)\n-4C2185 Extra Length          0009 (9)\n-4C2187 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C2187: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C21C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C21CA   Length              0005 (5)\n-4C21CC   Flags               01 (1) 'Modification'\n-4C21CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C21D1 PAYLOAD\n-\n-4C4112 DATA DESCRIPTOR       08074B50 (134695760)\n-4C4116 CRC                   76AAEB5B (1990912859)\n-4C411A Compressed Size       00001F41 (8001)\n-4C411E Uncompressed Size     00001F41 (8001)\n-\n-4C4122 LOCAL HEADER #1384    04034B50 (67324752)\n-4C4126 Extract Zip Spec      14 (20) '2.0'\n-4C4127 Extract OS            00 (0) 'MS-DOS'\n-4C4128 General Purpose Flag  0000 (0)\n-4C412A Compression Method    0000 (0) 'Stored'\n-4C412C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C4130 CRC                   00000000 (0)\n-4C4134 Compressed Size       00000000 (0)\n-4C4138 Uncompressed Size     00000000 (0)\n-4C413C Filename Length       0020 (32)\n-4C413E Extra Length          0009 (9)\n-4C4140 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C4140: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C4160 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C4162   Length              0005 (5)\n-4C4164   Flags               01 (1) 'Modification'\n-4C4165   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4C4169 LOCAL HEADER #1385    04034B50 (67324752)\n-4C416D Extract Zip Spec      14 (20) '2.0'\n-4C416E Extract OS            00 (0) 'MS-DOS'\n-4C416F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C4171 Compression Method    0000 (0) 'Stored'\n-4C4173 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C4177 CRC                   00000000 (0)\n-4C417B Compressed Size       00000000 (0)\n-4C417F Uncompressed Size     00000000 (0)\n-4C4183 Filename Length       0032 (50)\n-4C4185 Extra Length          0009 (9)\n-4C4187 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C4187: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C41B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C41BB   Length              0005 (5)\n-4C41BD   Flags               01 (1) 'Modification'\n-4C41BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C41C2 PAYLOAD\n-\n-4C9069 DATA DESCRIPTOR       08074B50 (134695760)\n-4C906D CRC                   3CD43B28 (1020541736)\n-4C9071 Compressed Size       00004EA7 (20135)\n-4C9075 Uncompressed Size     00004EA7 (20135)\n-\n-4C9079 LOCAL HEADER #1386    04034B50 (67324752)\n-4C907D Extract Zip Spec      14 (20) '2.0'\n-4C907E Extract OS            00 (0) 'MS-DOS'\n-4C907F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C9081 Compression Method    0000 (0) 'Stored'\n-4C9083 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C9087 CRC                   00000000 (0)\n-4C908B Compressed Size       00000000 (0)\n-4C908F Uncompressed Size     00000000 (0)\n-4C9093 Filename Length       0039 (57)\n-4C9095 Extra Length          0009 (9)\n-4C9097 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C9097: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C90D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C90D2   Length              0005 (5)\n-4C90D4   Flags               01 (1) 'Modification'\n-4C90D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C90D9 PAYLOAD\n-\n-4C95B0 DATA DESCRIPTOR       08074B50 (134695760)\n-4C95B4 CRC                   DA82F0B1 (3666014385)\n-4C95B8 Compressed Size       000004D7 (1239)\n-4C95BC Uncompressed Size     000004D7 (1239)\n-\n-4C95C0 LOCAL HEADER #1387    04034B50 (67324752)\n-4C95C4 Extract Zip Spec      14 (20) '2.0'\n-4C95C5 Extract OS            00 (0) 'MS-DOS'\n-4C95C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C95C8 Compression Method    0000 (0) 'Stored'\n-4C95CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C95CE CRC                   00000000 (0)\n-4C95D2 Compressed Size       00000000 (0)\n-4C95D6 Uncompressed Size     00000000 (0)\n-4C95DA Filename Length       003A (58)\n-4C95DC Extra Length          0009 (9)\n-4C95DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C95DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C9618 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C961A   Length              0005 (5)\n-4C961C   Flags               01 (1) 'Modification'\n-4C961D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C9621 PAYLOAD\n-\n-4C9D63 DATA DESCRIPTOR       08074B50 (134695760)\n-4C9D67 CRC                   34AAC091 (883605649)\n-4C9D6B Compressed Size       00000742 (1858)\n-4C9D6F Uncompressed Size     00000742 (1858)\n-\n-4C9D73 LOCAL HEADER #1388    04034B50 (67324752)\n-4C9D77 Extract Zip Spec      14 (20) '2.0'\n-4C9D78 Extract OS            00 (0) 'MS-DOS'\n-4C9D79 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4C9D7B Compression Method    0000 (0) 'Stored'\n-4C9D7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4C9D81 CRC                   00000000 (0)\n-4C9D85 Compressed Size       00000000 (0)\n-4C9D89 Uncompressed Size     00000000 (0)\n-4C9D8D Filename Length       0041 (65)\n-4C9D8F Extra Length          0009 (9)\n-4C9D91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4C9D91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4C9DD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4C9DD4   Length              0005 (5)\n-4C9DD6   Flags               01 (1) 'Modification'\n-4C9DD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4C9DDB PAYLOAD\n-\n-4CA2A9 DATA DESCRIPTOR       08074B50 (134695760)\n-4CA2AD CRC                   70BBABEF (1891347439)\n-4CA2B1 Compressed Size       000004CE (1230)\n-4CA2B5 Uncompressed Size     000004CE (1230)\n-\n-4CA2B9 LOCAL HEADER #1389    04034B50 (67324752)\n-4CA2BD Extract Zip Spec      14 (20) '2.0'\n-4CA2BE Extract OS            00 (0) 'MS-DOS'\n-4CA2BF General Purpose Flag  0000 (0)\n-4CA2C1 Compression Method    0000 (0) 'Stored'\n-4CA2C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CA2C7 CRC                   00000000 (0)\n-4CA2CB Compressed Size       00000000 (0)\n-4CA2CF Uncompressed Size     00000000 (0)\n-4CA2D3 Filename Length       0020 (32)\n-4CA2D5 Extra Length          0009 (9)\n-4CA2D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CA2D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CA2F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CA2F9   Length              0005 (5)\n-4CA2FB   Flags               01 (1) 'Modification'\n-4CA2FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4CA300 LOCAL HEADER #1390    04034B50 (67324752)\n-4CA304 Extract Zip Spec      14 (20) '2.0'\n-4CA305 Extract OS            00 (0) 'MS-DOS'\n-4CA306 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CA308 Compression Method    0000 (0) 'Stored'\n-4CA30A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CA30E CRC                   00000000 (0)\n-4CA312 Compressed Size       00000000 (0)\n-4CA316 Uncompressed Size     00000000 (0)\n-4CA31A Filename Length       0036 (54)\n-4CA31C Extra Length          0009 (9)\n-4CA31E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CA31E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CA354 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CA356   Length              0005 (5)\n-4CA358   Flags               01 (1) 'Modification'\n-4CA359   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CA35D PAYLOAD\n-\n-4CB4A5 DATA DESCRIPTOR       08074B50 (134695760)\n-4CB4A9 CRC                   A7748368 (2809430888)\n-4CB4AD Compressed Size       00001148 (4424)\n-4CB4B1 Uncompressed Size     00001148 (4424)\n-\n-4CB4B5 LOCAL HEADER #1391    04034B50 (67324752)\n-4CB4B9 Extract Zip Spec      14 (20) '2.0'\n-4CB4BA Extract OS            00 (0) 'MS-DOS'\n-4CB4BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CB4BD Compression Method    0000 (0) 'Stored'\n-4CB4BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CB4C3 CRC                   00000000 (0)\n-4CB4C7 Compressed Size       00000000 (0)\n-4CB4CB Uncompressed Size     00000000 (0)\n-4CB4CF Filename Length       0039 (57)\n-4CB4D1 Extra Length          0009 (9)\n-4CB4D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CB4D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CB50C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CB50E   Length              0005 (5)\n-4CB510   Flags               01 (1) 'Modification'\n-4CB511   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CB515 PAYLOAD\n-\n-4CBAE4 DATA DESCRIPTOR       08074B50 (134695760)\n-4CBAE8 CRC                   5117C509 (1360512265)\n-4CBAEC Compressed Size       000005CF (1487)\n-4CBAF0 Uncompressed Size     000005CF (1487)\n-\n-4CBAF4 LOCAL HEADER #1392    04034B50 (67324752)\n-4CBAF8 Extract Zip Spec      14 (20) '2.0'\n-4CBAF9 Extract OS            00 (0) 'MS-DOS'\n-4CBAFA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CBAFC Compression Method    0000 (0) 'Stored'\n-4CBAFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CBB02 CRC                   00000000 (0)\n-4CBB06 Compressed Size       00000000 (0)\n-4CBB0A Uncompressed Size     00000000 (0)\n-4CBB0E Filename Length       0039 (57)\n-4CBB10 Extra Length          0009 (9)\n-4CBB12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CBB12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CBB4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CBB4D   Length              0005 (5)\n-4CBB4F   Flags               01 (1) 'Modification'\n-4CBB50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CBB54 PAYLOAD\n-\n-4CC234 DATA DESCRIPTOR       08074B50 (134695760)\n-4CC238 CRC                   FCC4145B (4240708699)\n-4CC23C Compressed Size       000006E0 (1760)\n-4CC240 Uncompressed Size     000006E0 (1760)\n-\n-4CC244 LOCAL HEADER #1393    04034B50 (67324752)\n-4CC248 Extract Zip Spec      14 (20) '2.0'\n-4CC249 Extract OS            00 (0) 'MS-DOS'\n-4CC24A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CC24C Compression Method    0000 (0) 'Stored'\n-4CC24E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CC252 CRC                   00000000 (0)\n-4CC256 Compressed Size       00000000 (0)\n-4CC25A Uncompressed Size     00000000 (0)\n-4CC25E Filename Length       003B (59)\n-4CC260 Extra Length          0009 (9)\n-4CC262 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CC262: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CC29D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CC29F   Length              0005 (5)\n-4CC2A1   Flags               01 (1) 'Modification'\n-4CC2A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CC2A6 PAYLOAD\n-\n-4CC881 DATA DESCRIPTOR       08074B50 (134695760)\n-4CC885 CRC                   A6BC7A6B (2797369963)\n-4CC889 Compressed Size       000005DB (1499)\n-4CC88D Uncompressed Size     000005DB (1499)\n-\n-4CC891 LOCAL HEADER #1394    04034B50 (67324752)\n-4CC895 Extract Zip Spec      14 (20) '2.0'\n-4CC896 Extract OS            00 (0) 'MS-DOS'\n-4CC897 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CC899 Compression Method    0000 (0) 'Stored'\n-4CC89B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CC89F CRC                   00000000 (0)\n-4CC8A3 Compressed Size       00000000 (0)\n-4CC8A7 Uncompressed Size     00000000 (0)\n-4CC8AB Filename Length       003B (59)\n-4CC8AD Extra Length          0009 (9)\n-4CC8AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CC8AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CC8EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CC8EC   Length              0005 (5)\n-4CC8EE   Flags               01 (1) 'Modification'\n-4CC8EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CC8F3 PAYLOAD\n-\n-4CCFDD DATA DESCRIPTOR       08074B50 (134695760)\n-4CCFE1 CRC                   CDD77CC5 (3453451461)\n-4CCFE5 Compressed Size       000006EA (1770)\n-4CCFE9 Uncompressed Size     000006EA (1770)\n-\n-4CCFED LOCAL HEADER #1395    04034B50 (67324752)\n-4CCFF1 Extract Zip Spec      14 (20) '2.0'\n-4CCFF2 Extract OS            00 (0) 'MS-DOS'\n-4CCFF3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CCFF5 Compression Method    0000 (0) 'Stored'\n-4CCFF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CCFFB CRC                   00000000 (0)\n-4CCFFF Compressed Size       00000000 (0)\n-4CD003 Uncompressed Size     00000000 (0)\n-4CD007 Filename Length       0031 (49)\n-4CD009 Extra Length          0009 (9)\n-4CD00B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CD00B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CD03C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CD03E   Length              0005 (5)\n-4CD040   Flags               01 (1) 'Modification'\n-4CD041   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CD045 PAYLOAD\n-\n-4CD5E3 DATA DESCRIPTOR       08074B50 (134695760)\n-4CD5E7 CRC                   1D384067 (490225767)\n-4CD5EB Compressed Size       0000059E (1438)\n-4CD5EF Uncompressed Size     0000059E (1438)\n-\n-4CD5F3 LOCAL HEADER #1396    04034B50 (67324752)\n-4CD5F7 Extract Zip Spec      14 (20) '2.0'\n-4CD5F8 Extract OS            00 (0) 'MS-DOS'\n-4CD5F9 General Purpose Flag  0000 (0)\n-4CD5FB Compression Method    0000 (0) 'Stored'\n-4CD5FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CD601 CRC                   00000000 (0)\n-4CD605 Compressed Size       00000000 (0)\n-4CD609 Uncompressed Size     00000000 (0)\n-4CD60D Filename Length       001F (31)\n-4CD60F Extra Length          0009 (9)\n-4CD611 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CD611: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CD630 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CD632   Length              0005 (5)\n-4CD634   Flags               01 (1) 'Modification'\n-4CD635   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4CD639 LOCAL HEADER #1397    04034B50 (67324752)\n-4CD63D Extract Zip Spec      14 (20) '2.0'\n-4CD63E Extract OS            00 (0) 'MS-DOS'\n-4CD63F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4CD641 Compression Method    0000 (0) 'Stored'\n-4CD643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4CD647 CRC                   00000000 (0)\n-4CD64B Compressed Size       00000000 (0)\n-4CD64F Uncompressed Size     00000000 (0)\n-4CD653 Filename Length       0030 (48)\n-4CD655 Extra Length          0009 (9)\n-4CD657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4CD657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4CD687 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4CD689   Length              0005 (5)\n-4CD68B   Flags               01 (1) 'Modification'\n-4CD68C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4CD690 PAYLOAD\n-\n-4CFFFB DATA DESCRIPTOR       08074B50 (134695760)\n-4CFFFF CRC                   67F68BAB (1744210859)\n-4D0003 Compressed Size       0000296B (10603)\n-4D0007 Uncompressed Size     0000296B (10603)\n-\n-4D000B LOCAL HEADER #1398    04034B50 (67324752)\n-4D000F Extract Zip Spec      14 (20) '2.0'\n-4D0010 Extract OS            00 (0) 'MS-DOS'\n-4D0011 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D0013 Compression Method    0000 (0) 'Stored'\n-4D0015 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D0019 CRC                   00000000 (0)\n-4D001D Compressed Size       00000000 (0)\n-4D0021 Uncompressed Size     00000000 (0)\n-4D0025 Filename Length       0039 (57)\n-4D0027 Extra Length          0009 (9)\n-4D0029 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D0029: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D0062 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D0064   Length              0005 (5)\n-4D0066   Flags               01 (1) 'Modification'\n-4D0067   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D006B PAYLOAD\n-\n-4D05CE DATA DESCRIPTOR       08074B50 (134695760)\n-4D05D2 CRC                   5E420043 (1581383747)\n-4D05D6 Compressed Size       00000563 (1379)\n-4D05DA Uncompressed Size     00000563 (1379)\n-\n-4D05DE LOCAL HEADER #1399    04034B50 (67324752)\n-4D05E2 Extract Zip Spec      14 (20) '2.0'\n-4D05E3 Extract OS            00 (0) 'MS-DOS'\n-4D05E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D05E6 Compression Method    0000 (0) 'Stored'\n-4D05E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D05EC CRC                   00000000 (0)\n-4D05F0 Compressed Size       00000000 (0)\n-4D05F4 Uncompressed Size     00000000 (0)\n-4D05F8 Filename Length       0037 (55)\n-4D05FA Extra Length          0009 (9)\n-4D05FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D05FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D0633 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D0635   Length              0005 (5)\n-4D0637   Flags               01 (1) 'Modification'\n-4D0638   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D063C PAYLOAD\n-\n-4D0BA3 DATA DESCRIPTOR       08074B50 (134695760)\n-4D0BA7 CRC                   F10F61B1 (4044317105)\n-4D0BAB Compressed Size       00000567 (1383)\n-4D0BAF Uncompressed Size     00000567 (1383)\n-\n-4D0BB3 LOCAL HEADER #1400    04034B50 (67324752)\n-4D0BB7 Extract Zip Spec      14 (20) '2.0'\n-4D0BB8 Extract OS            00 (0) 'MS-DOS'\n-4D0BB9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D0BBB Compression Method    0000 (0) 'Stored'\n-4D0BBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D0BC1 CRC                   00000000 (0)\n-4D0BC5 Compressed Size       00000000 (0)\n-4D0BC9 Uncompressed Size     00000000 (0)\n-4D0BCD Filename Length       0038 (56)\n-4D0BCF Extra Length          0009 (9)\n-4D0BD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D0BD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D0C09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D0C0B   Length              0005 (5)\n-4D0C0D   Flags               01 (1) 'Modification'\n-4D0C0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D0C12 PAYLOAD\n-\n-4D1536 DATA DESCRIPTOR       08074B50 (134695760)\n-4D153A CRC                   F71501FC (4145349116)\n-4D153E Compressed Size       00000924 (2340)\n-4D1542 Uncompressed Size     00000924 (2340)\n-\n-4D1546 LOCAL HEADER #1401    04034B50 (67324752)\n-4D154A Extract Zip Spec      14 (20) '2.0'\n-4D154B Extract OS            00 (0) 'MS-DOS'\n-4D154C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D154E Compression Method    0000 (0) 'Stored'\n-4D1550 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D1554 CRC                   00000000 (0)\n-4D1558 Compressed Size       00000000 (0)\n-4D155C Uncompressed Size     00000000 (0)\n-4D1560 Filename Length       0040 (64)\n-4D1562 Extra Length          0009 (9)\n-4D1564 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D1564: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D15A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D15A6   Length              0005 (5)\n-4D15A8   Flags               01 (1) 'Modification'\n-4D15A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D15AD PAYLOAD\n-\n-4D3C5E DATA DESCRIPTOR       08074B50 (134695760)\n-4D3C62 CRC                   B6DFDCE2 (3068124386)\n-4D3C66 Compressed Size       000026B1 (9905)\n-4D3C6A Uncompressed Size     000026B1 (9905)\n-\n-4D3C6E LOCAL HEADER #1402    04034B50 (67324752)\n-4D3C72 Extract Zip Spec      14 (20) '2.0'\n-4D3C73 Extract OS            00 (0) 'MS-DOS'\n-4D3C74 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D3C76 Compression Method    0000 (0) 'Stored'\n-4D3C78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D3C7C CRC                   00000000 (0)\n-4D3C80 Compressed Size       00000000 (0)\n-4D3C84 Uncompressed Size     00000000 (0)\n-4D3C88 Filename Length       0047 (71)\n-4D3C8A Extra Length          0009 (9)\n-4D3C8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D3C8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D3CD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D3CD5   Length              0005 (5)\n-4D3CD7   Flags               01 (1) 'Modification'\n-4D3CD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D3CDC PAYLOAD\n-\n-4D41B5 DATA DESCRIPTOR       08074B50 (134695760)\n-4D41B9 CRC                   3C911134 (1016140084)\n-4D41BD Compressed Size       000004D9 (1241)\n-4D41C1 Uncompressed Size     000004D9 (1241)\n-\n-4D41C5 LOCAL HEADER #1403    04034B50 (67324752)\n-4D41C9 Extract Zip Spec      14 (20) '2.0'\n-4D41CA Extract OS            00 (0) 'MS-DOS'\n-4D41CB General Purpose Flag  0000 (0)\n-4D41CD Compression Method    0000 (0) 'Stored'\n-4D41CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D41D3 CRC                   00000000 (0)\n-4D41D7 Compressed Size       00000000 (0)\n-4D41DB Uncompressed Size     00000000 (0)\n-4D41DF Filename Length       0021 (33)\n-4D41E1 Extra Length          0009 (9)\n-4D41E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D41E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D4204 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D4206   Length              0005 (5)\n-4D4208   Flags               01 (1) 'Modification'\n-4D4209   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4D420D LOCAL HEADER #1404    04034B50 (67324752)\n-4D4211 Extract Zip Spec      14 (20) '2.0'\n-4D4212 Extract OS            00 (0) 'MS-DOS'\n-4D4213 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D4215 Compression Method    0000 (0) 'Stored'\n-4D4217 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D421B CRC                   00000000 (0)\n-4D421F Compressed Size       00000000 (0)\n-4D4223 Uncompressed Size     00000000 (0)\n-4D4227 Filename Length       003B (59)\n-4D4229 Extra Length          0009 (9)\n-4D422B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D422B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D4266 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D4268   Length              0005 (5)\n-4D426A   Flags               01 (1) 'Modification'\n-4D426B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D426F PAYLOAD\n-\n-4D4A95 DATA DESCRIPTOR       08074B50 (134695760)\n-4D4A99 CRC                   F2E8FAB9 (4075354809)\n-4D4A9D Compressed Size       00000826 (2086)\n-4D4AA1 Uncompressed Size     00000826 (2086)\n-\n-4D4AA5 LOCAL HEADER #1405    04034B50 (67324752)\n-4D4AA9 Extract Zip Spec      14 (20) '2.0'\n-4D4AAA Extract OS            00 (0) 'MS-DOS'\n-4D4AAB General Purpose Flag  0000 (0)\n-4D4AAD Compression Method    0000 (0) 'Stored'\n-4D4AAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D4AB3 CRC                   00000000 (0)\n-4D4AB7 Compressed Size       00000000 (0)\n-4D4ABB Uncompressed Size     00000000 (0)\n-4D4ABF Filename Length       0022 (34)\n-4D4AC1 Extra Length          0009 (9)\n-4D4AC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D4AC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D4AE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D4AE7   Length              0005 (5)\n-4D4AE9   Flags               01 (1) 'Modification'\n-4D4AEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4D4AEE LOCAL HEADER #1406    04034B50 (67324752)\n-4D4AF2 Extract Zip Spec      14 (20) '2.0'\n-4D4AF3 Extract OS            00 (0) 'MS-DOS'\n-4D4AF4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D4AF6 Compression Method    0000 (0) 'Stored'\n-4D4AF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D4AFC CRC                   00000000 (0)\n-4D4B00 Compressed Size       00000000 (0)\n-4D4B04 Uncompressed Size     00000000 (0)\n-4D4B08 Filename Length       0037 (55)\n-4D4B0A Extra Length          0009 (9)\n-4D4B0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D4B0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D4B43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D4B45   Length              0005 (5)\n-4D4B47   Flags               01 (1) 'Modification'\n-4D4B48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D4B4C PAYLOAD\n-\n-4D9ECB DATA DESCRIPTOR       08074B50 (134695760)\n-4D9ECF CRC                   5DDCD4C5 (1574753477)\n-4D9ED3 Compressed Size       0000537F (21375)\n-4D9ED7 Uncompressed Size     0000537F (21375)\n-\n-4D9EDB LOCAL HEADER #1407    04034B50 (67324752)\n-4D9EDF Extract Zip Spec      14 (20) '2.0'\n-4D9EE0 Extract OS            00 (0) 'MS-DOS'\n-4D9EE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4D9EE3 Compression Method    0000 (0) 'Stored'\n-4D9EE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4D9EE9 CRC                   00000000 (0)\n-4D9EED Compressed Size       00000000 (0)\n-4D9EF1 Uncompressed Size     00000000 (0)\n-4D9EF5 Filename Length       003E (62)\n-4D9EF7 Extra Length          0009 (9)\n-4D9EF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4D9EF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4D9F37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4D9F39   Length              0005 (5)\n-4D9F3B   Flags               01 (1) 'Modification'\n-4D9F3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4D9F40 PAYLOAD\n-\n-4DBCCA DATA DESCRIPTOR       08074B50 (134695760)\n-4DBCCE CRC                   5BC81E29 (1539841577)\n-4DBCD2 Compressed Size       00001D8A (7562)\n-4DBCD6 Uncompressed Size     00001D8A (7562)\n-\n-4DBCDA LOCAL HEADER #1408    04034B50 (67324752)\n-4DBCDE Extract Zip Spec      14 (20) '2.0'\n-4DBCDF Extract OS            00 (0) 'MS-DOS'\n-4DBCE0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4DBCE2 Compression Method    0000 (0) 'Stored'\n-4DBCE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4DBCE8 CRC                   00000000 (0)\n-4DBCEC Compressed Size       00000000 (0)\n-4DBCF0 Uncompressed Size     00000000 (0)\n-4DBCF4 Filename Length       0037 (55)\n-4DBCF6 Extra Length          0009 (9)\n-4DBCF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4DBCF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4DBD2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4DBD31   Length              0005 (5)\n-4DBD33   Flags               01 (1) 'Modification'\n-4DBD34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4DBD38 PAYLOAD\n-\n-4E0366 DATA DESCRIPTOR       08074B50 (134695760)\n-4E036A CRC                   A266F3B2 (2724656050)\n-4E036E Compressed Size       0000462E (17966)\n-4E0372 Uncompressed Size     0000462E (17966)\n-\n-4E0376 LOCAL HEADER #1409    04034B50 (67324752)\n-4E037A Extract Zip Spec      14 (20) '2.0'\n-4E037B Extract OS            00 (0) 'MS-DOS'\n-4E037C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E037E Compression Method    0000 (0) 'Stored'\n-4E0380 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E0384 CRC                   00000000 (0)\n-4E0388 Compressed Size       00000000 (0)\n-4E038C Uncompressed Size     00000000 (0)\n-4E0390 Filename Length       0043 (67)\n-4E0392 Extra Length          0009 (9)\n-4E0394 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E0394: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E03D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E03D9   Length              0005 (5)\n-4E03DB   Flags               01 (1) 'Modification'\n-4E03DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E03E0 PAYLOAD\n-\n-4E0932 DATA DESCRIPTOR       08074B50 (134695760)\n-4E0936 CRC                   952E3CF5 (2502835445)\n-4E093A Compressed Size       00000552 (1362)\n-4E093E Uncompressed Size     00000552 (1362)\n-\n-4E0942 LOCAL HEADER #1410    04034B50 (67324752)\n-4E0946 Extract Zip Spec      14 (20) '2.0'\n-4E0947 Extract OS            00 (0) 'MS-DOS'\n-4E0948 General Purpose Flag  0000 (0)\n-4E094A Compression Method    0000 (0) 'Stored'\n-4E094C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E0950 CRC                   00000000 (0)\n-4E0954 Compressed Size       00000000 (0)\n-4E0958 Uncompressed Size     00000000 (0)\n-4E095C Filename Length       0024 (36)\n-4E095E Extra Length          0009 (9)\n-4E0960 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E0960: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E0984 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E0986   Length              0005 (5)\n-4E0988   Flags               01 (1) 'Modification'\n-4E0989   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4E098D LOCAL HEADER #1411    04034B50 (67324752)\n-4E0991 Extract Zip Spec      14 (20) '2.0'\n-4E0992 Extract OS            00 (0) 'MS-DOS'\n-4E0993 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E0995 Compression Method    0000 (0) 'Stored'\n-4E0997 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E099B CRC                   00000000 (0)\n-4E099F Compressed Size       00000000 (0)\n-4E09A3 Uncompressed Size     00000000 (0)\n-4E09A7 Filename Length       003A (58)\n-4E09A9 Extra Length          0009 (9)\n-4E09AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E09AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E09E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E09E7   Length              0005 (5)\n-4E09E9   Flags               01 (1) 'Modification'\n-4E09EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E09EE PAYLOAD\n-\n-4E120C DATA DESCRIPTOR       08074B50 (134695760)\n-4E1210 CRC                   FA431F6B (4198702955)\n-4E1214 Compressed Size       0000081E (2078)\n-4E1218 Uncompressed Size     0000081E (2078)\n-\n-4E121C LOCAL HEADER #1412    04034B50 (67324752)\n-4E1220 Extract Zip Spec      14 (20) '2.0'\n-4E1221 Extract OS            00 (0) 'MS-DOS'\n-4E1222 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E1224 Compression Method    0000 (0) 'Stored'\n-4E1226 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E122A CRC                   00000000 (0)\n-4E122E Compressed Size       00000000 (0)\n-4E1232 Uncompressed Size     00000000 (0)\n-4E1236 Filename Length       003A (58)\n-4E1238 Extra Length          0009 (9)\n-4E123A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E123A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E1274 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E1276   Length              0005 (5)\n-4E1278   Flags               01 (1) 'Modification'\n-4E1279   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E127D PAYLOAD\n-\n-4E4C9C DATA DESCRIPTOR       08074B50 (134695760)\n-4E4CA0 CRC                   57271651 (1462179409)\n-4E4CA4 Compressed Size       00003A1F (14879)\n-4E4CA8 Uncompressed Size     00003A1F (14879)\n-\n-4E4CAC LOCAL HEADER #1413    04034B50 (67324752)\n-4E4CB0 Extract Zip Spec      14 (20) '2.0'\n-4E4CB1 Extract OS            00 (0) 'MS-DOS'\n-4E4CB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E4CB4 Compression Method    0000 (0) 'Stored'\n-4E4CB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E4CBA CRC                   00000000 (0)\n-4E4CBE Compressed Size       00000000 (0)\n-4E4CC2 Uncompressed Size     00000000 (0)\n-4E4CC6 Filename Length       0041 (65)\n-4E4CC8 Extra Length          0009 (9)\n-4E4CCA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E4CCA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E4D0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E4D0D   Length              0005 (5)\n-4E4D0F   Flags               01 (1) 'Modification'\n-4E4D10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E4D14 PAYLOAD\n-\n-4E5397 DATA DESCRIPTOR       08074B50 (134695760)\n-4E539B CRC                   E96DE12E (3916292398)\n-4E539F Compressed Size       00000683 (1667)\n-4E53A3 Uncompressed Size     00000683 (1667)\n-\n-4E53A7 LOCAL HEADER #1414    04034B50 (67324752)\n-4E53AB Extract Zip Spec      14 (20) '2.0'\n-4E53AC Extract OS            00 (0) 'MS-DOS'\n-4E53AD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E53AF Compression Method    0000 (0) 'Stored'\n-4E53B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E53B5 CRC                   00000000 (0)\n-4E53B9 Compressed Size       00000000 (0)\n-4E53BD Uncompressed Size     00000000 (0)\n-4E53C1 Filename Length       0042 (66)\n-4E53C3 Extra Length          0009 (9)\n-4E53C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E53C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E5407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E5409   Length              0005 (5)\n-4E540B   Flags               01 (1) 'Modification'\n-4E540C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E5410 PAYLOAD\n-\n-4E746C DATA DESCRIPTOR       08074B50 (134695760)\n-4E7470 CRC                   F6A7D6C9 (4138194633)\n-4E7474 Compressed Size       0000205C (8284)\n-4E7478 Uncompressed Size     0000205C (8284)\n-\n-4E747C LOCAL HEADER #1415    04034B50 (67324752)\n-4E7480 Extract Zip Spec      14 (20) '2.0'\n-4E7481 Extract OS            00 (0) 'MS-DOS'\n-4E7482 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E7484 Compression Method    0000 (0) 'Stored'\n-4E7486 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E748A CRC                   00000000 (0)\n-4E748E Compressed Size       00000000 (0)\n-4E7492 Uncompressed Size     00000000 (0)\n-4E7496 Filename Length       004F (79)\n-4E7498 Extra Length          0009 (9)\n-4E749A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E749A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E74E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E74EB   Length              0005 (5)\n-4E74ED   Flags               01 (1) 'Modification'\n-4E74EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E74F2 PAYLOAD\n-\n-4E8161 DATA DESCRIPTOR       08074B50 (134695760)\n-4E8165 CRC                   B6EA911C (3068825884)\n-4E8169 Compressed Size       00000C6F (3183)\n-4E816D Uncompressed Size     00000C6F (3183)\n-\n-4E8171 LOCAL HEADER #1416    04034B50 (67324752)\n-4E8175 Extract Zip Spec      14 (20) '2.0'\n-4E8176 Extract OS            00 (0) 'MS-DOS'\n-4E8177 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E8179 Compression Method    0000 (0) 'Stored'\n-4E817B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E817F CRC                   00000000 (0)\n-4E8183 Compressed Size       00000000 (0)\n-4E8187 Uncompressed Size     00000000 (0)\n-4E818B Filename Length       0049 (73)\n-4E818D Extra Length          0009 (9)\n-4E818F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E818F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E81D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E81DA   Length              0005 (5)\n-4E81DC   Flags               01 (1) 'Modification'\n-4E81DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E81E1 PAYLOAD\n-\n-4E86BA DATA DESCRIPTOR       08074B50 (134695760)\n-4E86BE CRC                   ACDFEDCC (2900356556)\n-4E86C2 Compressed Size       000004D9 (1241)\n-4E86C6 Uncompressed Size     000004D9 (1241)\n-\n-4E86CA LOCAL HEADER #1417    04034B50 (67324752)\n-4E86CE Extract Zip Spec      14 (20) '2.0'\n-4E86CF Extract OS            00 (0) 'MS-DOS'\n-4E86D0 General Purpose Flag  0000 (0)\n-4E86D2 Compression Method    0000 (0) 'Stored'\n-4E86D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E86D8 CRC                   00000000 (0)\n-4E86DC Compressed Size       00000000 (0)\n-4E86E0 Uncompressed Size     00000000 (0)\n-4E86E4 Filename Length       0029 (41)\n-4E86E6 Extra Length          0009 (9)\n-4E86E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E86E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E8711 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E8713   Length              0005 (5)\n-4E8715   Flags               01 (1) 'Modification'\n-4E8716   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4E871A LOCAL HEADER #1418    04034B50 (67324752)\n-4E871E Extract Zip Spec      14 (20) '2.0'\n-4E871F Extract OS            00 (0) 'MS-DOS'\n-4E8720 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E8722 Compression Method    0000 (0) 'Stored'\n-4E8724 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E8728 CRC                   00000000 (0)\n-4E872C Compressed Size       00000000 (0)\n-4E8730 Uncompressed Size     00000000 (0)\n-4E8734 Filename Length       0044 (68)\n-4E8736 Extra Length          0009 (9)\n-4E8738 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E8738: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E877C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E877E   Length              0005 (5)\n-4E8780   Flags               01 (1) 'Modification'\n-4E8781   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E8785 PAYLOAD\n-\n-4E93F6 DATA DESCRIPTOR       08074B50 (134695760)\n-4E93FA CRC                   7087B36E (1887941486)\n-4E93FE Compressed Size       00000C71 (3185)\n-4E9402 Uncompressed Size     00000C71 (3185)\n-\n-4E9406 LOCAL HEADER #1419    04034B50 (67324752)\n-4E940A Extract Zip Spec      14 (20) '2.0'\n-4E940B Extract OS            00 (0) 'MS-DOS'\n-4E940C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4E940E Compression Method    0000 (0) 'Stored'\n-4E9410 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4E9414 CRC                   00000000 (0)\n-4E9418 Compressed Size       00000000 (0)\n-4E941C Uncompressed Size     00000000 (0)\n-4E9420 Filename Length       0043 (67)\n-4E9422 Extra Length          0009 (9)\n-4E9424 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4E9424: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4E9467 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4E9469   Length              0005 (5)\n-4E946B   Flags               01 (1) 'Modification'\n-4E946C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4E9470 PAYLOAD\n-\n-4EA9C6 DATA DESCRIPTOR       08074B50 (134695760)\n-4EA9CA CRC                   AF46E40B (2940658699)\n-4EA9CE Compressed Size       00001556 (5462)\n-4EA9D2 Uncompressed Size     00001556 (5462)\n-\n-4EA9D6 LOCAL HEADER #1420    04034B50 (67324752)\n-4EA9DA Extract Zip Spec      14 (20) '2.0'\n-4EA9DB Extract OS            00 (0) 'MS-DOS'\n-4EA9DC General Purpose Flag  0000 (0)\n-4EA9DE Compression Method    0000 (0) 'Stored'\n-4EA9E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EA9E4 CRC                   00000000 (0)\n-4EA9E8 Compressed Size       00000000 (0)\n-4EA9EC Uncompressed Size     00000000 (0)\n-4EA9F0 Filename Length       001A (26)\n-4EA9F2 Extra Length          0009 (9)\n-4EA9F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EA9F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EAA0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EAA10   Length              0005 (5)\n-4EAA12   Flags               01 (1) 'Modification'\n-4EAA13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4EAA17 LOCAL HEADER #1421    04034B50 (67324752)\n-4EAA1B Extract Zip Spec      14 (20) '2.0'\n-4EAA1C Extract OS            00 (0) 'MS-DOS'\n-4EAA1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EAA1F Compression Method    0000 (0) 'Stored'\n-4EAA21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EAA25 CRC                   00000000 (0)\n-4EAA29 Compressed Size       00000000 (0)\n-4EAA2D Uncompressed Size     00000000 (0)\n-4EAA31 Filename Length       0026 (38)\n-4EAA33 Extra Length          0009 (9)\n-4EAA35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EAA35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EAA5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EAA5D   Length              0005 (5)\n-4EAA5F   Flags               01 (1) 'Modification'\n-4EAA60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EAA64 PAYLOAD\n-\n-4EB19E DATA DESCRIPTOR       08074B50 (134695760)\n-4EB1A2 CRC                   1FBA8398 (532317080)\n-4EB1A6 Compressed Size       0000073A (1850)\n-4EB1AA Uncompressed Size     0000073A (1850)\n-\n-4EB1AE LOCAL HEADER #1422    04034B50 (67324752)\n-4EB1B2 Extract Zip Spec      14 (20) '2.0'\n-4EB1B3 Extract OS            00 (0) 'MS-DOS'\n-4EB1B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EB1B6 Compression Method    0000 (0) 'Stored'\n-4EB1B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EB1BC CRC                   00000000 (0)\n-4EB1C0 Compressed Size       00000000 (0)\n-4EB1C4 Uncompressed Size     00000000 (0)\n-4EB1C8 Filename Length       002D (45)\n-4EB1CA Extra Length          0009 (9)\n-4EB1CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EB1CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EB1F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EB1FB   Length              0005 (5)\n-4EB1FD   Flags               01 (1) 'Modification'\n-4EB1FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EB202 PAYLOAD\n-\n-4EBA4B DATA DESCRIPTOR       08074B50 (134695760)\n-4EBA4F CRC                   1A6C5333 (443306803)\n-4EBA53 Compressed Size       00000849 (2121)\n-4EBA57 Uncompressed Size     00000849 (2121)\n-\n-4EBA5B LOCAL HEADER #1423    04034B50 (67324752)\n-4EBA5F Extract Zip Spec      14 (20) '2.0'\n-4EBA60 Extract OS            00 (0) 'MS-DOS'\n-4EBA61 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EBA63 Compression Method    0000 (0) 'Stored'\n-4EBA65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EBA69 CRC                   00000000 (0)\n-4EBA6D Compressed Size       00000000 (0)\n-4EBA71 Uncompressed Size     00000000 (0)\n-4EBA75 Filename Length       0025 (37)\n-4EBA77 Extra Length          0009 (9)\n-4EBA79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EBA79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EBA9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EBAA0   Length              0005 (5)\n-4EBAA2   Flags               01 (1) 'Modification'\n-4EBAA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EBAA7 PAYLOAD\n-\n-4EC032 DATA DESCRIPTOR       08074B50 (134695760)\n-4EC036 CRC                   107C6EE6 (276590310)\n-4EC03A Compressed Size       0000058B (1419)\n-4EC03E Uncompressed Size     0000058B (1419)\n-\n-4EC042 LOCAL HEADER #1424    04034B50 (67324752)\n-4EC046 Extract Zip Spec      14 (20) '2.0'\n-4EC047 Extract OS            00 (0) 'MS-DOS'\n-4EC048 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EC04A Compression Method    0000 (0) 'Stored'\n-4EC04C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EC050 CRC                   00000000 (0)\n-4EC054 Compressed Size       00000000 (0)\n-4EC058 Uncompressed Size     00000000 (0)\n-4EC05C Filename Length       0024 (36)\n-4EC05E Extra Length          0009 (9)\n-4EC060 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EC060: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EC084 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EC086   Length              0005 (5)\n-4EC088   Flags               01 (1) 'Modification'\n-4EC089   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EC08D PAYLOAD\n-\n-4EC7C1 DATA DESCRIPTOR       08074B50 (134695760)\n-4EC7C5 CRC                   201747E5 (538396645)\n-4EC7C9 Compressed Size       00000734 (1844)\n-4EC7CD Uncompressed Size     00000734 (1844)\n-\n-4EC7D1 LOCAL HEADER #1425    04034B50 (67324752)\n-4EC7D5 Extract Zip Spec      14 (20) '2.0'\n-4EC7D6 Extract OS            00 (0) 'MS-DOS'\n-4EC7D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EC7D9 Compression Method    0000 (0) 'Stored'\n-4EC7DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EC7DF CRC                   00000000 (0)\n-4EC7E3 Compressed Size       00000000 (0)\n-4EC7E7 Uncompressed Size     00000000 (0)\n-4EC7EB Filename Length       0025 (37)\n-4EC7ED Extra Length          0009 (9)\n-4EC7EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EC7EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EC814 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EC816   Length              0005 (5)\n-4EC818   Flags               01 (1) 'Modification'\n-4EC819   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EC81D PAYLOAD\n-\n-4ECD79 DATA DESCRIPTOR       08074B50 (134695760)\n-4ECD7D CRC                   B08F3D84 (2962177412)\n-4ECD81 Compressed Size       0000055C (1372)\n-4ECD85 Uncompressed Size     0000055C (1372)\n-\n-4ECD89 LOCAL HEADER #1426    04034B50 (67324752)\n-4ECD8D Extract Zip Spec      14 (20) '2.0'\n-4ECD8E Extract OS            00 (0) 'MS-DOS'\n-4ECD8F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4ECD91 Compression Method    0000 (0) 'Stored'\n-4ECD93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4ECD97 CRC                   00000000 (0)\n-4ECD9B Compressed Size       00000000 (0)\n-4ECD9F Uncompressed Size     00000000 (0)\n-4ECDA3 Filename Length       0028 (40)\n-4ECDA5 Extra Length          0009 (9)\n-4ECDA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4ECDA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4ECDCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4ECDD1   Length              0005 (5)\n-4ECDD3   Flags               01 (1) 'Modification'\n-4ECDD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4ECDD8 PAYLOAD\n-\n-4EDC53 DATA DESCRIPTOR       08074B50 (134695760)\n-4EDC57 CRC                   AB401562 (2873103714)\n-4EDC5B Compressed Size       00000E7B (3707)\n-4EDC5F Uncompressed Size     00000E7B (3707)\n-\n-4EDC63 LOCAL HEADER #1427    04034B50 (67324752)\n-4EDC67 Extract Zip Spec      14 (20) '2.0'\n-4EDC68 Extract OS            00 (0) 'MS-DOS'\n-4EDC69 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EDC6B Compression Method    0000 (0) 'Stored'\n-4EDC6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EDC71 CRC                   00000000 (0)\n-4EDC75 Compressed Size       00000000 (0)\n-4EDC79 Uncompressed Size     00000000 (0)\n-4EDC7D Filename Length       0029 (41)\n-4EDC7F Extra Length          0009 (9)\n-4EDC81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EDC81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EDCAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EDCAC   Length              0005 (5)\n-4EDCAE   Flags               01 (1) 'Modification'\n-4EDCAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EDCB3 PAYLOAD\n-\n-4EE05F DATA DESCRIPTOR       08074B50 (134695760)\n-4EE063 CRC                   D7F89917 (3623393559)\n-4EE067 Compressed Size       000003AC (940)\n-4EE06B Uncompressed Size     000003AC (940)\n-\n-4EE06F LOCAL HEADER #1428    04034B50 (67324752)\n-4EE073 Extract Zip Spec      14 (20) '2.0'\n-4EE074 Extract OS            00 (0) 'MS-DOS'\n-4EE075 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EE077 Compression Method    0000 (0) 'Stored'\n-4EE079 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EE07D CRC                   00000000 (0)\n-4EE081 Compressed Size       00000000 (0)\n-4EE085 Uncompressed Size     00000000 (0)\n-4EE089 Filename Length       0029 (41)\n-4EE08B Extra Length          0009 (9)\n-4EE08D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EE08D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EE0B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EE0B8   Length              0005 (5)\n-4EE0BA   Flags               01 (1) 'Modification'\n-4EE0BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EE0BF PAYLOAD\n-\n-4EE6B7 DATA DESCRIPTOR       08074B50 (134695760)\n-4EE6BB CRC                   277ABF59 (662355801)\n-4EE6BF Compressed Size       000005F8 (1528)\n-4EE6C3 Uncompressed Size     000005F8 (1528)\n-\n-4EE6C7 LOCAL HEADER #1429    04034B50 (67324752)\n-4EE6CB Extract Zip Spec      14 (20) '2.0'\n-4EE6CC Extract OS            00 (0) 'MS-DOS'\n-4EE6CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EE6CF Compression Method    0000 (0) 'Stored'\n-4EE6D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EE6D5 CRC                   00000000 (0)\n-4EE6D9 Compressed Size       00000000 (0)\n-4EE6DD Uncompressed Size     00000000 (0)\n-4EE6E1 Filename Length       0027 (39)\n-4EE6E3 Extra Length          0009 (9)\n-4EE6E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EE6E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EE70C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EE70E   Length              0005 (5)\n-4EE710   Flags               01 (1) 'Modification'\n-4EE711   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EE715 PAYLOAD\n-\n-4EEF52 DATA DESCRIPTOR       08074B50 (134695760)\n-4EEF56 CRC                   D97FD102 (3649032450)\n-4EEF5A Compressed Size       0000083D (2109)\n-4EEF5E Uncompressed Size     0000083D (2109)\n-\n-4EEF62 LOCAL HEADER #1430    04034B50 (67324752)\n-4EEF66 Extract Zip Spec      14 (20) '2.0'\n-4EEF67 Extract OS            00 (0) 'MS-DOS'\n-4EEF68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EEF6A Compression Method    0000 (0) 'Stored'\n-4EEF6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EEF70 CRC                   00000000 (0)\n-4EEF74 Compressed Size       00000000 (0)\n-4EEF78 Uncompressed Size     00000000 (0)\n-4EEF7C Filename Length       0031 (49)\n-4EEF7E Extra Length          0009 (9)\n-4EEF80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EEF80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EEFB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EEFB3   Length              0005 (5)\n-4EEFB5   Flags               01 (1) 'Modification'\n-4EEFB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EEFBA PAYLOAD\n-\n-4EF922 DATA DESCRIPTOR       08074B50 (134695760)\n-4EF926 CRC                   6CA638E1 (1822832865)\n-4EF92A Compressed Size       00000968 (2408)\n-4EF92E Uncompressed Size     00000968 (2408)\n-\n-4EF932 LOCAL HEADER #1431    04034B50 (67324752)\n-4EF936 Extract Zip Spec      14 (20) '2.0'\n-4EF937 Extract OS            00 (0) 'MS-DOS'\n-4EF938 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EF93A Compression Method    0000 (0) 'Stored'\n-4EF93C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EF940 CRC                   00000000 (0)\n-4EF944 Compressed Size       00000000 (0)\n-4EF948 Uncompressed Size     00000000 (0)\n-4EF94C Filename Length       002B (43)\n-4EF94E Extra Length          0009 (9)\n-4EF950 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EF950: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EF97B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EF97D   Length              0005 (5)\n-4EF97F   Flags               01 (1) 'Modification'\n-4EF980   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EF984 PAYLOAD\n-\n-4EFF97 DATA DESCRIPTOR       08074B50 (134695760)\n-4EFF9B CRC                   A6AFF543 (2796549443)\n-4EFF9F Compressed Size       00000613 (1555)\n-4EFFA3 Uncompressed Size     00000613 (1555)\n-\n-4EFFA7 LOCAL HEADER #1432    04034B50 (67324752)\n-4EFFAB Extract Zip Spec      14 (20) '2.0'\n-4EFFAC Extract OS            00 (0) 'MS-DOS'\n-4EFFAD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4EFFAF Compression Method    0000 (0) 'Stored'\n-4EFFB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4EFFB5 CRC                   00000000 (0)\n-4EFFB9 Compressed Size       00000000 (0)\n-4EFFBD Uncompressed Size     00000000 (0)\n-4EFFC1 Filename Length       0030 (48)\n-4EFFC3 Extra Length          0009 (9)\n-4EFFC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4EFFC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4EFFF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4EFFF7   Length              0005 (5)\n-4EFFF9   Flags               01 (1) 'Modification'\n-4EFFFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4EFFFE PAYLOAD\n-\n-4F0C94 DATA DESCRIPTOR       08074B50 (134695760)\n-4F0C98 CRC                   F7D73BF2 (4158077938)\n-4F0C9C Compressed Size       00000C96 (3222)\n-4F0CA0 Uncompressed Size     00000C96 (3222)\n-\n-4F0CA4 LOCAL HEADER #1433    04034B50 (67324752)\n-4F0CA8 Extract Zip Spec      14 (20) '2.0'\n-4F0CA9 Extract OS            00 (0) 'MS-DOS'\n-4F0CAA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F0CAC Compression Method    0000 (0) 'Stored'\n-4F0CAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F0CB2 CRC                   00000000 (0)\n-4F0CB6 Compressed Size       00000000 (0)\n-4F0CBA Uncompressed Size     00000000 (0)\n-4F0CBE Filename Length       002D (45)\n-4F0CC0 Extra Length          0009 (9)\n-4F0CC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F0CC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F0CEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F0CF1   Length              0005 (5)\n-4F0CF3   Flags               01 (1) 'Modification'\n-4F0CF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F0CF8 PAYLOAD\n-\n-4F13A1 DATA DESCRIPTOR       08074B50 (134695760)\n-4F13A5 CRC                   D7FFC616 (3623863830)\n-4F13A9 Compressed Size       000006A9 (1705)\n-4F13AD Uncompressed Size     000006A9 (1705)\n-\n-4F13B1 LOCAL HEADER #1434    04034B50 (67324752)\n-4F13B5 Extract Zip Spec      14 (20) '2.0'\n-4F13B6 Extract OS            00 (0) 'MS-DOS'\n-4F13B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F13B9 Compression Method    0000 (0) 'Stored'\n-4F13BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F13BF CRC                   00000000 (0)\n-4F13C3 Compressed Size       00000000 (0)\n-4F13C7 Uncompressed Size     00000000 (0)\n-4F13CB Filename Length       002F (47)\n-4F13CD Extra Length          0009 (9)\n-4F13CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F13CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F13FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F1400   Length              0005 (5)\n-4F1402   Flags               01 (1) 'Modification'\n-4F1403   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F1407 PAYLOAD\n-\n-4F1B90 DATA DESCRIPTOR       08074B50 (134695760)\n-4F1B94 CRC                   272E47E6 (657344486)\n-4F1B98 Compressed Size       00000789 (1929)\n-4F1B9C Uncompressed Size     00000789 (1929)\n-\n-4F1BA0 LOCAL HEADER #1435    04034B50 (67324752)\n-4F1BA4 Extract Zip Spec      14 (20) '2.0'\n-4F1BA5 Extract OS            00 (0) 'MS-DOS'\n-4F1BA6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F1BA8 Compression Method    0000 (0) 'Stored'\n-4F1BAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F1BAE CRC                   00000000 (0)\n-4F1BB2 Compressed Size       00000000 (0)\n-4F1BB6 Uncompressed Size     00000000 (0)\n-4F1BBA Filename Length       002A (42)\n-4F1BBC Extra Length          0009 (9)\n-4F1BBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F1BBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F1BE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F1BEA   Length              0005 (5)\n-4F1BEC   Flags               01 (1) 'Modification'\n-4F1BED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F1BF1 PAYLOAD\n-\n-4F2405 DATA DESCRIPTOR       08074B50 (134695760)\n-4F2409 CRC                   684E4E1B (1749962267)\n-4F240D Compressed Size       00000814 (2068)\n-4F2411 Uncompressed Size     00000814 (2068)\n-\n-4F2415 LOCAL HEADER #1436    04034B50 (67324752)\n-4F2419 Extract Zip Spec      14 (20) '2.0'\n-4F241A Extract OS            00 (0) 'MS-DOS'\n-4F241B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F241D Compression Method    0000 (0) 'Stored'\n-4F241F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F2423 CRC                   00000000 (0)\n-4F2427 Compressed Size       00000000 (0)\n-4F242B Uncompressed Size     00000000 (0)\n-4F242F Filename Length       002B (43)\n-4F2431 Extra Length          0009 (9)\n-4F2433 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F2433: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F245E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F2460   Length              0005 (5)\n-4F2462   Flags               01 (1) 'Modification'\n-4F2463   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F2467 PAYLOAD\n-\n-4F3080 DATA DESCRIPTOR       08074B50 (134695760)\n-4F3084 CRC                   65BE8BD8 (1706986456)\n-4F3088 Compressed Size       00000C19 (3097)\n-4F308C Uncompressed Size     00000C19 (3097)\n-\n-4F3090 LOCAL HEADER #1437    04034B50 (67324752)\n-4F3094 Extract Zip Spec      14 (20) '2.0'\n-4F3095 Extract OS            00 (0) 'MS-DOS'\n-4F3096 General Purpose Flag  0000 (0)\n-4F3098 Compression Method    0000 (0) 'Stored'\n-4F309A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F309E CRC                   00000000 (0)\n-4F30A2 Compressed Size       00000000 (0)\n-4F30A6 Uncompressed Size     00000000 (0)\n-4F30AA Filename Length       0021 (33)\n-4F30AC Extra Length          0009 (9)\n-4F30AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F30AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F30CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F30D1   Length              0005 (5)\n-4F30D3   Flags               01 (1) 'Modification'\n-4F30D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-4F30D8 LOCAL HEADER #1438    04034B50 (67324752)\n-4F30DC Extract Zip Spec      14 (20) '2.0'\n-4F30DD Extract OS            00 (0) 'MS-DOS'\n-4F30DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F30E0 Compression Method    0000 (0) 'Stored'\n-4F30E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F30E6 CRC                   00000000 (0)\n-4F30EA Compressed Size       00000000 (0)\n-4F30EE Uncompressed Size     00000000 (0)\n-4F30F2 Filename Length       003B (59)\n-4F30F4 Extra Length          0009 (9)\n-4F30F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F30F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F3131 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F3133   Length              0005 (5)\n-4F3135   Flags               01 (1) 'Modification'\n-4F3136   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F313A PAYLOAD\n-\n-4F553E DATA DESCRIPTOR       08074B50 (134695760)\n-4F5542 CRC                   68852581 (1753556353)\n-4F5546 Compressed Size       00002404 (9220)\n-4F554A Uncompressed Size     00002404 (9220)\n-\n-4F554E LOCAL HEADER #1439    04034B50 (67324752)\n-4F5552 Extract Zip Spec      14 (20) '2.0'\n-4F5553 Extract OS            00 (0) 'MS-DOS'\n-4F5554 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F5556 Compression Method    0000 (0) 'Stored'\n-4F5558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F555C CRC                   00000000 (0)\n-4F5560 Compressed Size       00000000 (0)\n-4F5564 Uncompressed Size     00000000 (0)\n-4F5568 Filename Length       0043 (67)\n-4F556A Extra Length          0009 (9)\n-4F556C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F556C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F55AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F55B1   Length              0005 (5)\n-4F55B3   Flags               01 (1) 'Modification'\n-4F55B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F55B8 PAYLOAD\n-\n-4F746A DATA DESCRIPTOR       08074B50 (134695760)\n-4F746E CRC                   AD83DA8F (2911099535)\n-4F7472 Compressed Size       00001EB2 (7858)\n-4F7476 Uncompressed Size     00001EB2 (7858)\n-\n-4F747A LOCAL HEADER #1440    04034B50 (67324752)\n-4F747E Extract Zip Spec      14 (20) '2.0'\n-4F747F Extract OS            00 (0) 'MS-DOS'\n-4F7480 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-4F7482 Compression Method    0000 (0) 'Stored'\n-4F7484 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-4F7488 CRC                   00000000 (0)\n-4F748C Compressed Size       00000000 (0)\n-4F7490 Uncompressed Size     00000000 (0)\n-4F7494 Filename Length       0033 (51)\n-4F7496 Extra Length          0009 (9)\n-4F7498 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x4F7498: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-4F74CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-4F74CD   Length              0005 (5)\n-4F74CF   Flags               01 (1) 'Modification'\n-4F74D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-4F74D4 PAYLOAD\n-\n-501F44 DATA DESCRIPTOR       08074B50 (134695760)\n-501F48 CRC                   2E56D9DD (777443805)\n-501F4C Compressed Size       0000AA70 (43632)\n-501F50 Uncompressed Size     0000AA70 (43632)\n-\n-501F54 LOCAL HEADER #1441    04034B50 (67324752)\n-501F58 Extract Zip Spec      14 (20) '2.0'\n-501F59 Extract OS            00 (0) 'MS-DOS'\n-501F5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-501F5C Compression Method    0000 (0) 'Stored'\n-501F5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-501F62 CRC                   00000000 (0)\n-501F66 Compressed Size       00000000 (0)\n-501F6A Uncompressed Size     00000000 (0)\n-501F6E Filename Length       003A (58)\n-501F70 Extra Length          0009 (9)\n-501F72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x501F72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-501FAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-501FAE   Length              0005 (5)\n-501FB0   Flags               01 (1) 'Modification'\n-501FB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-501FB5 PAYLOAD\n-\n-50240B DATA DESCRIPTOR       08074B50 (134695760)\n-50240F CRC                   6A53E0FE (1783881982)\n-502413 Compressed Size       00000456 (1110)\n-502417 Uncompressed Size     00000456 (1110)\n-\n-50241B LOCAL HEADER #1442    04034B50 (67324752)\n-50241F Extract Zip Spec      14 (20) '2.0'\n-502420 Extract OS            00 (0) 'MS-DOS'\n-502421 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-502423 Compression Method    0000 (0) 'Stored'\n-502425 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-502429 CRC                   00000000 (0)\n-50242D Compressed Size       00000000 (0)\n-502431 Uncompressed Size     00000000 (0)\n-502435 Filename Length       003E (62)\n-502437 Extra Length          0009 (9)\n-502439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x502439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-502477 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-502479   Length              0005 (5)\n-50247B   Flags               01 (1) 'Modification'\n-50247C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-502480 PAYLOAD\n-\n-5030D3 DATA DESCRIPTOR       08074B50 (134695760)\n-5030D7 CRC                   4997E6D6 (1234691798)\n-5030DB Compressed Size       00000C53 (3155)\n-5030DF Uncompressed Size     00000C53 (3155)\n-\n-5030E3 LOCAL HEADER #1443    04034B50 (67324752)\n-5030E7 Extract Zip Spec      14 (20) '2.0'\n-5030E8 Extract OS            00 (0) 'MS-DOS'\n-5030E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5030EB Compression Method    0000 (0) 'Stored'\n-5030ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5030F1 CRC                   00000000 (0)\n-5030F5 Compressed Size       00000000 (0)\n-5030F9 Uncompressed Size     00000000 (0)\n-5030FD Filename Length       003F (63)\n-5030FF Extra Length          0009 (9)\n-503101 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x503101: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-503140 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-503142   Length              0005 (5)\n-503144   Flags               01 (1) 'Modification'\n-503145   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-503149 PAYLOAD\n-\n-5038AE DATA DESCRIPTOR       08074B50 (134695760)\n-5038B2 CRC                   996F8C6F (2574224495)\n-5038B6 Compressed Size       00000765 (1893)\n-5038BA Uncompressed Size     00000765 (1893)\n-\n-5038BE LOCAL HEADER #1444    04034B50 (67324752)\n-5038C2 Extract Zip Spec      14 (20) '2.0'\n-5038C3 Extract OS            00 (0) 'MS-DOS'\n-5038C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5038C6 Compression Method    0000 (0) 'Stored'\n-5038C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5038CC CRC                   00000000 (0)\n-5038D0 Compressed Size       00000000 (0)\n-5038D4 Uncompressed Size     00000000 (0)\n-5038D8 Filename Length       0034 (52)\n-5038DA Extra Length          0009 (9)\n-5038DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5038DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-503910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-503912   Length              0005 (5)\n-503914   Flags               01 (1) 'Modification'\n-503915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-503919 PAYLOAD\n-\n-504BBB DATA DESCRIPTOR       08074B50 (134695760)\n-504BBF CRC                   F6247952 (4129585490)\n-504BC3 Compressed Size       000012A2 (4770)\n-504BC7 Uncompressed Size     000012A2 (4770)\n-\n-504BCB LOCAL HEADER #1445    04034B50 (67324752)\n-504BCF Extract Zip Spec      14 (20) '2.0'\n-504BD0 Extract OS            00 (0) 'MS-DOS'\n-504BD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-504BD3 Compression Method    0000 (0) 'Stored'\n-504BD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-504BD9 CRC                   00000000 (0)\n-504BDD Compressed Size       00000000 (0)\n-504BE1 Uncompressed Size     00000000 (0)\n-504BE5 Filename Length       0040 (64)\n-504BE7 Extra Length          0009 (9)\n-504BE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x504BE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-504C29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-504C2B   Length              0005 (5)\n-504C2D   Flags               01 (1) 'Modification'\n-504C2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-504C32 PAYLOAD\n-\n-505677 DATA DESCRIPTOR       08074B50 (134695760)\n-50567B CRC                   9D245ED3 (2636406483)\n-50567F Compressed Size       00000A45 (2629)\n-505683 Uncompressed Size     00000A45 (2629)\n-\n-505687 LOCAL HEADER #1446    04034B50 (67324752)\n-50568B Extract Zip Spec      14 (20) '2.0'\n-50568C Extract OS            00 (0) 'MS-DOS'\n-50568D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50568F Compression Method    0000 (0) 'Stored'\n-505691 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-505695 CRC                   00000000 (0)\n-505699 Compressed Size       00000000 (0)\n-50569D Uncompressed Size     00000000 (0)\n-5056A1 Filename Length       003A (58)\n-5056A3 Extra Length          0009 (9)\n-5056A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5056A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5056DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5056E1   Length              0005 (5)\n-5056E3   Flags               01 (1) 'Modification'\n-5056E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5056E8 PAYLOAD\n-\n-506CD0 DATA DESCRIPTOR       08074B50 (134695760)\n-506CD4 CRC                   5ED5B140 (1591062848)\n-506CD8 Compressed Size       000015E8 (5608)\n-506CDC Uncompressed Size     000015E8 (5608)\n-\n-506CE0 LOCAL HEADER #1447    04034B50 (67324752)\n-506CE4 Extract Zip Spec      14 (20) '2.0'\n-506CE5 Extract OS            00 (0) 'MS-DOS'\n-506CE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-506CE8 Compression Method    0000 (0) 'Stored'\n-506CEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-506CEE CRC                   00000000 (0)\n-506CF2 Compressed Size       00000000 (0)\n-506CF6 Uncompressed Size     00000000 (0)\n-506CFA Filename Length       0037 (55)\n-506CFC Extra Length          0009 (9)\n-506CFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x506CFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-506D35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-506D37   Length              0005 (5)\n-506D39   Flags               01 (1) 'Modification'\n-506D3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-506D3E PAYLOAD\n-\n-5086ED DATA DESCRIPTOR       08074B50 (134695760)\n-5086F1 CRC                   CC038CDE (3422784734)\n-5086F5 Compressed Size       000019AF (6575)\n-5086F9 Uncompressed Size     000019AF (6575)\n-\n-5086FD LOCAL HEADER #1448    04034B50 (67324752)\n-508701 Extract Zip Spec      14 (20) '2.0'\n-508702 Extract OS            00 (0) 'MS-DOS'\n-508703 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-508705 Compression Method    0000 (0) 'Stored'\n-508707 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50870B CRC                   00000000 (0)\n-50870F Compressed Size       00000000 (0)\n-508713 Uncompressed Size     00000000 (0)\n-508717 Filename Length       003E (62)\n-508719 Extra Length          0009 (9)\n-50871B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50871B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-508759 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50875B   Length              0005 (5)\n-50875D   Flags               01 (1) 'Modification'\n-50875E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-508762 PAYLOAD\n-\n-508EDB DATA DESCRIPTOR       08074B50 (134695760)\n-508EDF CRC                   80349D10 (2150931728)\n-508EE3 Compressed Size       00000779 (1913)\n-508EE7 Uncompressed Size     00000779 (1913)\n-\n-508EEB LOCAL HEADER #1449    04034B50 (67324752)\n-508EEF Extract Zip Spec      14 (20) '2.0'\n-508EF0 Extract OS            00 (0) 'MS-DOS'\n-508EF1 General Purpose Flag  0000 (0)\n-508EF3 Compression Method    0000 (0) 'Stored'\n-508EF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-508EF9 CRC                   00000000 (0)\n-508EFD Compressed Size       00000000 (0)\n-508F01 Uncompressed Size     00000000 (0)\n-508F05 Filename Length       001F (31)\n-508F07 Extra Length          0009 (9)\n-508F09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x508F09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-508F28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-508F2A   Length              0005 (5)\n-508F2C   Flags               01 (1) 'Modification'\n-508F2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-508F31 LOCAL HEADER #1450    04034B50 (67324752)\n-508F35 Extract Zip Spec      14 (20) '2.0'\n-508F36 Extract OS            00 (0) 'MS-DOS'\n-508F37 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-508F39 Compression Method    0000 (0) 'Stored'\n-508F3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-508F3F CRC                   00000000 (0)\n-508F43 Compressed Size       00000000 (0)\n-508F47 Uncompressed Size     00000000 (0)\n-508F4B Filename Length       0037 (55)\n-508F4D Extra Length          0009 (9)\n-508F4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x508F4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-508F86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-508F88   Length              0005 (5)\n-508F8A   Flags               01 (1) 'Modification'\n-508F8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-508F8F PAYLOAD\n-\n-5095B9 DATA DESCRIPTOR       08074B50 (134695760)\n-5095BD CRC                   36F8F065 (922284133)\n-5095C1 Compressed Size       0000062A (1578)\n-5095C5 Uncompressed Size     0000062A (1578)\n-\n-5095C9 LOCAL HEADER #1451    04034B50 (67324752)\n-5095CD Extract Zip Spec      14 (20) '2.0'\n-5095CE Extract OS            00 (0) 'MS-DOS'\n-5095CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5095D1 Compression Method    0000 (0) 'Stored'\n-5095D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5095D7 CRC                   00000000 (0)\n-5095DB Compressed Size       00000000 (0)\n-5095DF Uncompressed Size     00000000 (0)\n-5095E3 Filename Length       0031 (49)\n-5095E5 Extra Length          0009 (9)\n-5095E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5095E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-509618 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50961A   Length              0005 (5)\n-50961C   Flags               01 (1) 'Modification'\n-50961D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-509621 PAYLOAD\n-\n-5099FD DATA DESCRIPTOR       08074B50 (134695760)\n-509A01 CRC                   CD8B51D1 (3448459729)\n-509A05 Compressed Size       000003DC (988)\n-509A09 Uncompressed Size     000003DC (988)\n-\n-509A0D LOCAL HEADER #1452    04034B50 (67324752)\n-509A11 Extract Zip Spec      14 (20) '2.0'\n-509A12 Extract OS            00 (0) 'MS-DOS'\n-509A13 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-509A15 Compression Method    0000 (0) 'Stored'\n-509A17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-509A1B CRC                   00000000 (0)\n-509A1F Compressed Size       00000000 (0)\n-509A23 Uncompressed Size     00000000 (0)\n-509A27 Filename Length       002D (45)\n-509A29 Extra Length          0009 (9)\n-509A2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x509A2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-509A58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-509A5A   Length              0005 (5)\n-509A5C   Flags               01 (1) 'Modification'\n-509A5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-509A61 PAYLOAD\n-\n-50A12A DATA DESCRIPTOR       08074B50 (134695760)\n-50A12E CRC                   123318DF (305338591)\n-50A132 Compressed Size       000006C9 (1737)\n-50A136 Uncompressed Size     000006C9 (1737)\n-\n-50A13A LOCAL HEADER #1453    04034B50 (67324752)\n-50A13E Extract Zip Spec      14 (20) '2.0'\n-50A13F Extract OS            00 (0) 'MS-DOS'\n-50A140 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50A142 Compression Method    0000 (0) 'Stored'\n-50A144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50A148 CRC                   00000000 (0)\n-50A14C Compressed Size       00000000 (0)\n-50A150 Uncompressed Size     00000000 (0)\n-50A154 Filename Length       002E (46)\n-50A156 Extra Length          0009 (9)\n-50A158 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50A158: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50A186 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50A188   Length              0005 (5)\n-50A18A   Flags               01 (1) 'Modification'\n-50A18B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50A18F PAYLOAD\n-\n-50BA7A DATA DESCRIPTOR       08074B50 (134695760)\n-50BA7E CRC                   6B994ABC (1805208252)\n-50BA82 Compressed Size       000018EB (6379)\n-50BA86 Uncompressed Size     000018EB (6379)\n-\n-50BA8A LOCAL HEADER #1454    04034B50 (67324752)\n-50BA8E Extract Zip Spec      14 (20) '2.0'\n-50BA8F Extract OS            00 (0) 'MS-DOS'\n-50BA90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50BA92 Compression Method    0000 (0) 'Stored'\n-50BA94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50BA98 CRC                   00000000 (0)\n-50BA9C Compressed Size       00000000 (0)\n-50BAA0 Uncompressed Size     00000000 (0)\n-50BAA4 Filename Length       0033 (51)\n-50BAA6 Extra Length          0009 (9)\n-50BAA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50BAA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50BADB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50BADD   Length              0005 (5)\n-50BADF   Flags               01 (1) 'Modification'\n-50BAE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50BAE4 PAYLOAD\n-\n-50C29B DATA DESCRIPTOR       08074B50 (134695760)\n-50C29F CRC                   387B0FF7 (947589111)\n-50C2A3 Compressed Size       000007B7 (1975)\n-50C2A7 Uncompressed Size     000007B7 (1975)\n-\n-50C2AB LOCAL HEADER #1455    04034B50 (67324752)\n-50C2AF Extract Zip Spec      14 (20) '2.0'\n-50C2B0 Extract OS            00 (0) 'MS-DOS'\n-50C2B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50C2B3 Compression Method    0000 (0) 'Stored'\n-50C2B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50C2B9 CRC                   00000000 (0)\n-50C2BD Compressed Size       00000000 (0)\n-50C2C1 Uncompressed Size     00000000 (0)\n-50C2C5 Filename Length       002F (47)\n-50C2C7 Extra Length          0009 (9)\n-50C2C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50C2C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50C2F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50C2FA   Length              0005 (5)\n-50C2FC   Flags               01 (1) 'Modification'\n-50C2FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50C301 PAYLOAD\n-\n-50C7DC DATA DESCRIPTOR       08074B50 (134695760)\n-50C7E0 CRC                   0F6205B4 (258082228)\n-50C7E4 Compressed Size       000004DB (1243)\n-50C7E8 Uncompressed Size     000004DB (1243)\n-\n-50C7EC LOCAL HEADER #1456    04034B50 (67324752)\n-50C7F0 Extract Zip Spec      14 (20) '2.0'\n-50C7F1 Extract OS            00 (0) 'MS-DOS'\n-50C7F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50C7F4 Compression Method    0000 (0) 'Stored'\n-50C7F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50C7FA CRC                   00000000 (0)\n-50C7FE Compressed Size       00000000 (0)\n-50C802 Uncompressed Size     00000000 (0)\n-50C806 Filename Length       0031 (49)\n-50C808 Extra Length          0009 (9)\n-50C80A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50C80A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50C83B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50C83D   Length              0005 (5)\n-50C83F   Flags               01 (1) 'Modification'\n-50C840   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50C844 PAYLOAD\n-\n-50CC28 DATA DESCRIPTOR       08074B50 (134695760)\n-50CC2C CRC                   6ADC9301 (1792840449)\n-50CC30 Compressed Size       000003E4 (996)\n-50CC34 Uncompressed Size     000003E4 (996)\n-\n-50CC38 LOCAL HEADER #1457    04034B50 (67324752)\n-50CC3C Extract Zip Spec      14 (20) '2.0'\n-50CC3D Extract OS            00 (0) 'MS-DOS'\n-50CC3E General Purpose Flag  0000 (0)\n-50CC40 Compression Method    0000 (0) 'Stored'\n-50CC42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50CC46 CRC                   00000000 (0)\n-50CC4A Compressed Size       00000000 (0)\n-50CC4E Uncompressed Size     00000000 (0)\n-50CC52 Filename Length       0025 (37)\n-50CC54 Extra Length          0009 (9)\n-50CC56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50CC56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50CC7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50CC7D   Length              0005 (5)\n-50CC7F   Flags               01 (1) 'Modification'\n-50CC80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-50CC84 LOCAL HEADER #1458    04034B50 (67324752)\n-50CC88 Extract Zip Spec      14 (20) '2.0'\n-50CC89 Extract OS            00 (0) 'MS-DOS'\n-50CC8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50CC8C Compression Method    0000 (0) 'Stored'\n-50CC8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50CC92 CRC                   00000000 (0)\n-50CC96 Compressed Size       00000000 (0)\n-50CC9A Uncompressed Size     00000000 (0)\n-50CC9E Filename Length       0041 (65)\n-50CCA0 Extra Length          0009 (9)\n-50CCA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50CCA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50CCE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50CCE5   Length              0005 (5)\n-50CCE7   Flags               01 (1) 'Modification'\n-50CCE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50CCEC PAYLOAD\n-\n-50D158 DATA DESCRIPTOR       08074B50 (134695760)\n-50D15C CRC                   3F422686 (1061299846)\n-50D160 Compressed Size       0000046C (1132)\n-50D164 Uncompressed Size     0000046C (1132)\n-\n-50D168 LOCAL HEADER #1459    04034B50 (67324752)\n-50D16C Extract Zip Spec      14 (20) '2.0'\n-50D16D Extract OS            00 (0) 'MS-DOS'\n-50D16E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-50D170 Compression Method    0000 (0) 'Stored'\n-50D172 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-50D176 CRC                   00000000 (0)\n-50D17A Compressed Size       00000000 (0)\n-50D17E Uncompressed Size     00000000 (0)\n-50D182 Filename Length       0035 (53)\n-50D184 Extra Length          0009 (9)\n-50D186 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x50D186: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-50D1BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-50D1BD   Length              0005 (5)\n-50D1BF   Flags               01 (1) 'Modification'\n-50D1C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-50D1C4 PAYLOAD\n-\n-5112CC DATA DESCRIPTOR       08074B50 (134695760)\n-5112D0 CRC                   A75036DE (2807051998)\n-5112D4 Compressed Size       00004108 (16648)\n-5112D8 Uncompressed Size     00004108 (16648)\n-\n-5112DC LOCAL HEADER #1460    04034B50 (67324752)\n-5112E0 Extract Zip Spec      14 (20) '2.0'\n-5112E1 Extract OS            00 (0) 'MS-DOS'\n-5112E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5112E4 Compression Method    0000 (0) 'Stored'\n-5112E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5112EA CRC                   00000000 (0)\n-5112EE Compressed Size       00000000 (0)\n-5112F2 Uncompressed Size     00000000 (0)\n-5112F6 Filename Length       003C (60)\n-5112F8 Extra Length          0009 (9)\n-5112FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5112FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-511336 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-511338   Length              0005 (5)\n-51133A   Flags               01 (1) 'Modification'\n-51133B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51133F PAYLOAD\n-\n-518207 DATA DESCRIPTOR       08074B50 (134695760)\n-51820B CRC                   F1F2D150 (4059222352)\n-51820F Compressed Size       00006EC8 (28360)\n-518213 Uncompressed Size     00006EC8 (28360)\n-\n-518217 LOCAL HEADER #1461    04034B50 (67324752)\n-51821B Extract Zip Spec      14 (20) '2.0'\n-51821C Extract OS            00 (0) 'MS-DOS'\n-51821D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51821F Compression Method    0000 (0) 'Stored'\n-518221 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-518225 CRC                   00000000 (0)\n-518229 Compressed Size       00000000 (0)\n-51822D Uncompressed Size     00000000 (0)\n-518231 Filename Length       003A (58)\n-518233 Extra Length          0009 (9)\n-518235 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x518235: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51826F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-518271   Length              0005 (5)\n-518273   Flags               01 (1) 'Modification'\n-518274   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-518278 PAYLOAD\n-\n-5186F8 DATA DESCRIPTOR       08074B50 (134695760)\n-5186FC CRC                   F823DAB1 (4163099313)\n-518700 Compressed Size       00000480 (1152)\n-518704 Uncompressed Size     00000480 (1152)\n-\n-518708 LOCAL HEADER #1462    04034B50 (67324752)\n-51870C Extract Zip Spec      14 (20) '2.0'\n-51870D Extract OS            00 (0) 'MS-DOS'\n-51870E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-518710 Compression Method    0000 (0) 'Stored'\n-518712 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-518716 CRC                   00000000 (0)\n-51871A Compressed Size       00000000 (0)\n-51871E Uncompressed Size     00000000 (0)\n-518722 Filename Length       0034 (52)\n-518724 Extra Length          0009 (9)\n-518726 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x518726: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51875A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51875C   Length              0005 (5)\n-51875E   Flags               01 (1) 'Modification'\n-51875F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-518763 PAYLOAD\n-\n-5194CC DATA DESCRIPTOR       08074B50 (134695760)\n-5194D0 CRC                   0B4932D9 (189346521)\n-5194D4 Compressed Size       00000D69 (3433)\n-5194D8 Uncompressed Size     00000D69 (3433)\n-\n-5194DC LOCAL HEADER #1463    04034B50 (67324752)\n-5194E0 Extract Zip Spec      14 (20) '2.0'\n-5194E1 Extract OS            00 (0) 'MS-DOS'\n-5194E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5194E4 Compression Method    0000 (0) 'Stored'\n-5194E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5194EA CRC                   00000000 (0)\n-5194EE Compressed Size       00000000 (0)\n-5194F2 Uncompressed Size     00000000 (0)\n-5194F6 Filename Length       0035 (53)\n-5194F8 Extra Length          0009 (9)\n-5194FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5194FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51952F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-519531   Length              0005 (5)\n-519533   Flags               01 (1) 'Modification'\n-519534   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-519538 PAYLOAD\n-\n-519AA2 DATA DESCRIPTOR       08074B50 (134695760)\n-519AA6 CRC                   117709A7 (293013927)\n-519AAA Compressed Size       0000056A (1386)\n-519AAE Uncompressed Size     0000056A (1386)\n-\n-519AB2 LOCAL HEADER #1464    04034B50 (67324752)\n-519AB6 Extract Zip Spec      14 (20) '2.0'\n-519AB7 Extract OS            00 (0) 'MS-DOS'\n-519AB8 General Purpose Flag  0000 (0)\n-519ABA Compression Method    0000 (0) 'Stored'\n-519ABC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-519AC0 CRC                   00000000 (0)\n-519AC4 Compressed Size       00000000 (0)\n-519AC8 Uncompressed Size     00000000 (0)\n-519ACC Filename Length       0026 (38)\n-519ACE Extra Length          0009 (9)\n-519AD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x519AD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-519AF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-519AF8   Length              0005 (5)\n-519AFA   Flags               01 (1) 'Modification'\n-519AFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-519AFF LOCAL HEADER #1465    04034B50 (67324752)\n-519B03 Extract Zip Spec      14 (20) '2.0'\n-519B04 Extract OS            00 (0) 'MS-DOS'\n-519B05 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-519B07 Compression Method    0000 (0) 'Stored'\n-519B09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-519B0D CRC                   00000000 (0)\n-519B11 Compressed Size       00000000 (0)\n-519B15 Uncompressed Size     00000000 (0)\n-519B19 Filename Length       0035 (53)\n-519B1B Extra Length          0009 (9)\n-519B1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x519B1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-519B52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-519B54   Length              0005 (5)\n-519B56   Flags               01 (1) 'Modification'\n-519B57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-519B5B PAYLOAD\n-\n-51A6C6 DATA DESCRIPTOR       08074B50 (134695760)\n-51A6CA CRC                   35D495FB (903124475)\n-51A6CE Compressed Size       00000B6B (2923)\n-51A6D2 Uncompressed Size     00000B6B (2923)\n-\n-51A6D6 LOCAL HEADER #1466    04034B50 (67324752)\n-51A6DA Extract Zip Spec      14 (20) '2.0'\n-51A6DB Extract OS            00 (0) 'MS-DOS'\n-51A6DC General Purpose Flag  0000 (0)\n-51A6DE Compression Method    0000 (0) 'Stored'\n-51A6E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51A6E4 CRC                   00000000 (0)\n-51A6E8 Compressed Size       00000000 (0)\n-51A6EC Uncompressed Size     00000000 (0)\n-51A6F0 Filename Length       0027 (39)\n-51A6F2 Extra Length          0009 (9)\n-51A6F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51A6F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51A71B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51A71D   Length              0005 (5)\n-51A71F   Flags               01 (1) 'Modification'\n-51A720   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-51A724 LOCAL HEADER #1467    04034B50 (67324752)\n-51A728 Extract Zip Spec      14 (20) '2.0'\n-51A729 Extract OS            00 (0) 'MS-DOS'\n-51A72A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51A72C Compression Method    0000 (0) 'Stored'\n-51A72E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51A732 CRC                   00000000 (0)\n-51A736 Compressed Size       00000000 (0)\n-51A73A Uncompressed Size     00000000 (0)\n-51A73E Filename Length       003E (62)\n-51A740 Extra Length          0009 (9)\n-51A742 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51A742: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51A780 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51A782   Length              0005 (5)\n-51A784   Flags               01 (1) 'Modification'\n-51A785   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51A789 PAYLOAD\n-\n-51C3DB DATA DESCRIPTOR       08074B50 (134695760)\n-51C3DF CRC                   2FB39AE6 (800299750)\n-51C3E3 Compressed Size       00001C52 (7250)\n-51C3E7 Uncompressed Size     00001C52 (7250)\n-\n-51C3EB LOCAL HEADER #1468    04034B50 (67324752)\n-51C3EF Extract Zip Spec      14 (20) '2.0'\n-51C3F0 Extract OS            00 (0) 'MS-DOS'\n-51C3F1 General Purpose Flag  0000 (0)\n-51C3F3 Compression Method    0000 (0) 'Stored'\n-51C3F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51C3F9 CRC                   00000000 (0)\n-51C3FD Compressed Size       00000000 (0)\n-51C401 Uncompressed Size     00000000 (0)\n-51C405 Filename Length       0023 (35)\n-51C407 Extra Length          0009 (9)\n-51C409 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51C409: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51C42C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51C42E   Length              0005 (5)\n-51C430   Flags               01 (1) 'Modification'\n-51C431   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-51C435 LOCAL HEADER #1469    04034B50 (67324752)\n-51C439 Extract Zip Spec      14 (20) '2.0'\n-51C43A Extract OS            00 (0) 'MS-DOS'\n-51C43B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51C43D Compression Method    0000 (0) 'Stored'\n-51C43F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51C443 CRC                   00000000 (0)\n-51C447 Compressed Size       00000000 (0)\n-51C44B Uncompressed Size     00000000 (0)\n-51C44F Filename Length       0037 (55)\n-51C451 Extra Length          0009 (9)\n-51C453 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51C453: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51C48A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51C48C   Length              0005 (5)\n-51C48E   Flags               01 (1) 'Modification'\n-51C48F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51C493 PAYLOAD\n-\n-51CE37 DATA DESCRIPTOR       08074B50 (134695760)\n-51CE3B CRC                   D599DEAA (3583631018)\n-51CE3F Compressed Size       000009A4 (2468)\n-51CE43 Uncompressed Size     000009A4 (2468)\n-\n-51CE47 LOCAL HEADER #1470    04034B50 (67324752)\n-51CE4B Extract Zip Spec      14 (20) '2.0'\n-51CE4C Extract OS            00 (0) 'MS-DOS'\n-51CE4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51CE4F Compression Method    0000 (0) 'Stored'\n-51CE51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51CE55 CRC                   00000000 (0)\n-51CE59 Compressed Size       00000000 (0)\n-51CE5D Uncompressed Size     00000000 (0)\n-51CE61 Filename Length       0036 (54)\n-51CE63 Extra Length          0009 (9)\n-51CE65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51CE65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51CE9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51CE9D   Length              0005 (5)\n-51CE9F   Flags               01 (1) 'Modification'\n-51CEA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51CEA4 PAYLOAD\n-\n-51D2BE DATA DESCRIPTOR       08074B50 (134695760)\n-51D2C2 CRC                   E165CDFB (3781545467)\n-51D2C6 Compressed Size       0000041A (1050)\n-51D2CA Uncompressed Size     0000041A (1050)\n-\n-51D2CE LOCAL HEADER #1471    04034B50 (67324752)\n-51D2D2 Extract Zip Spec      14 (20) '2.0'\n-51D2D3 Extract OS            00 (0) 'MS-DOS'\n-51D2D4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51D2D6 Compression Method    0000 (0) 'Stored'\n-51D2D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51D2DC CRC                   00000000 (0)\n-51D2E0 Compressed Size       00000000 (0)\n-51D2E4 Uncompressed Size     00000000 (0)\n-51D2E8 Filename Length       0037 (55)\n-51D2EA Extra Length          0009 (9)\n-51D2EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51D2EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51D323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51D325   Length              0005 (5)\n-51D327   Flags               01 (1) 'Modification'\n-51D328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51D32C PAYLOAD\n-\n-51D8E5 DATA DESCRIPTOR       08074B50 (134695760)\n-51D8E9 CRC                   72699C54 (1919523924)\n-51D8ED Compressed Size       000005B9 (1465)\n-51D8F1 Uncompressed Size     000005B9 (1465)\n-\n-51D8F5 LOCAL HEADER #1472    04034B50 (67324752)\n-51D8F9 Extract Zip Spec      14 (20) '2.0'\n-51D8FA Extract OS            00 (0) 'MS-DOS'\n-51D8FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51D8FD Compression Method    0000 (0) 'Stored'\n-51D8FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51D903 CRC                   00000000 (0)\n-51D907 Compressed Size       00000000 (0)\n-51D90B Uncompressed Size     00000000 (0)\n-51D90F Filename Length       0036 (54)\n-51D911 Extra Length          0009 (9)\n-51D913 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51D913: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51D949 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51D94B   Length              0005 (5)\n-51D94D   Flags               01 (1) 'Modification'\n-51D94E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51D952 PAYLOAD\n-\n-51DEDA DATA DESCRIPTOR       08074B50 (134695760)\n-51DEDE CRC                   330FACB0 (856665264)\n-51DEE2 Compressed Size       00000588 (1416)\n-51DEE6 Uncompressed Size     00000588 (1416)\n-\n-51DEEA LOCAL HEADER #1473    04034B50 (67324752)\n-51DEEE Extract Zip Spec      14 (20) '2.0'\n-51DEEF Extract OS            00 (0) 'MS-DOS'\n-51DEF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51DEF2 Compression Method    0000 (0) 'Stored'\n-51DEF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51DEF8 CRC                   00000000 (0)\n-51DEFC Compressed Size       00000000 (0)\n-51DF00 Uncompressed Size     00000000 (0)\n-51DF04 Filename Length       0031 (49)\n-51DF06 Extra Length          0009 (9)\n-51DF08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51DF08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51DF39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51DF3B   Length              0005 (5)\n-51DF3D   Flags               01 (1) 'Modification'\n-51DF3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51DF42 PAYLOAD\n-\n-51E6F4 DATA DESCRIPTOR       08074B50 (134695760)\n-51E6F8 CRC                   D85DA328 (3630015272)\n-51E6FC Compressed Size       000007B2 (1970)\n-51E700 Uncompressed Size     000007B2 (1970)\n-\n-51E704 LOCAL HEADER #1474    04034B50 (67324752)\n-51E708 Extract Zip Spec      14 (20) '2.0'\n-51E709 Extract OS            00 (0) 'MS-DOS'\n-51E70A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51E70C Compression Method    0000 (0) 'Stored'\n-51E70E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51E712 CRC                   00000000 (0)\n-51E716 Compressed Size       00000000 (0)\n-51E71A Uncompressed Size     00000000 (0)\n-51E71E Filename Length       0032 (50)\n-51E720 Extra Length          0009 (9)\n-51E722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51E722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51E754 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51E756   Length              0005 (5)\n-51E758   Flags               01 (1) 'Modification'\n-51E759   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51E75D PAYLOAD\n-\n-51FABA DATA DESCRIPTOR       08074B50 (134695760)\n-51FABE CRC                   B04E2D51 (2957913425)\n-51FAC2 Compressed Size       0000135D (4957)\n-51FAC6 Uncompressed Size     0000135D (4957)\n-\n-51FACA LOCAL HEADER #1475    04034B50 (67324752)\n-51FACE Extract Zip Spec      14 (20) '2.0'\n-51FACF Extract OS            00 (0) 'MS-DOS'\n-51FAD0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-51FAD2 Compression Method    0000 (0) 'Stored'\n-51FAD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-51FAD8 CRC                   00000000 (0)\n-51FADC Compressed Size       00000000 (0)\n-51FAE0 Uncompressed Size     00000000 (0)\n-51FAE4 Filename Length       002F (47)\n-51FAE6 Extra Length          0009 (9)\n-51FAE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x51FAE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-51FB17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-51FB19   Length              0005 (5)\n-51FB1B   Flags               01 (1) 'Modification'\n-51FB1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-51FB20 PAYLOAD\n-\n-52097B DATA DESCRIPTOR       08074B50 (134695760)\n-52097F CRC                   8CC675B8 (2361816504)\n-520983 Compressed Size       00000E5B (3675)\n-520987 Uncompressed Size     00000E5B (3675)\n-\n-52098B LOCAL HEADER #1476    04034B50 (67324752)\n-52098F Extract Zip Spec      14 (20) '2.0'\n-520990 Extract OS            00 (0) 'MS-DOS'\n-520991 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-520993 Compression Method    0000 (0) 'Stored'\n-520995 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-520999 CRC                   00000000 (0)\n-52099D Compressed Size       00000000 (0)\n-5209A1 Uncompressed Size     00000000 (0)\n-5209A5 Filename Length       0030 (48)\n-5209A7 Extra Length          0009 (9)\n-5209A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5209A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5209D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5209DB   Length              0005 (5)\n-5209DD   Flags               01 (1) 'Modification'\n-5209DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5209E2 PAYLOAD\n-\n-5219A6 DATA DESCRIPTOR       08074B50 (134695760)\n-5219AA CRC                   FF46E79C (4282836892)\n-5219AE Compressed Size       00000FC4 (4036)\n-5219B2 Uncompressed Size     00000FC4 (4036)\n-\n-5219B6 LOCAL HEADER #1477    04034B50 (67324752)\n-5219BA Extract Zip Spec      14 (20) '2.0'\n-5219BB Extract OS            00 (0) 'MS-DOS'\n-5219BC General Purpose Flag  0000 (0)\n-5219BE Compression Method    0000 (0) 'Stored'\n-5219C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5219C4 CRC                   00000000 (0)\n-5219C8 Compressed Size       00000000 (0)\n-5219CC Uncompressed Size     00000000 (0)\n-5219D0 Filename Length       0029 (41)\n-5219D2 Extra Length          0009 (9)\n-5219D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5219D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5219FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5219FF   Length              0005 (5)\n-521A01   Flags               01 (1) 'Modification'\n-521A02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-521A06 LOCAL HEADER #1478    04034B50 (67324752)\n-521A0A Extract Zip Spec      14 (20) '2.0'\n-521A0B Extract OS            00 (0) 'MS-DOS'\n-521A0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-521A0E Compression Method    0000 (0) 'Stored'\n-521A10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-521A14 CRC                   00000000 (0)\n-521A18 Compressed Size       00000000 (0)\n-521A1C Uncompressed Size     00000000 (0)\n-521A20 Filename Length       003B (59)\n-521A22 Extra Length          0009 (9)\n-521A24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x521A24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-521A5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-521A61   Length              0005 (5)\n-521A63   Flags               01 (1) 'Modification'\n-521A64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-521A68 PAYLOAD\n-\n-526B57 DATA DESCRIPTOR       08074B50 (134695760)\n-526B5B CRC                   6E137A75 (1846770293)\n-526B5F Compressed Size       000050EF (20719)\n-526B63 Uncompressed Size     000050EF (20719)\n-\n-526B67 LOCAL HEADER #1479    04034B50 (67324752)\n-526B6B Extract Zip Spec      14 (20) '2.0'\n-526B6C Extract OS            00 (0) 'MS-DOS'\n-526B6D General Purpose Flag  0000 (0)\n-526B6F Compression Method    0000 (0) 'Stored'\n-526B71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-526B75 CRC                   00000000 (0)\n-526B79 Compressed Size       00000000 (0)\n-526B7D Uncompressed Size     00000000 (0)\n-526B81 Filename Length       002B (43)\n-526B83 Extra Length          0009 (9)\n-526B85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x526B85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-526BB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-526BB2   Length              0005 (5)\n-526BB4   Flags               01 (1) 'Modification'\n-526BB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-526BB9 LOCAL HEADER #1480    04034B50 (67324752)\n-526BBD Extract Zip Spec      14 (20) '2.0'\n-526BBE Extract OS            00 (0) 'MS-DOS'\n-526BBF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-526BC1 Compression Method    0000 (0) 'Stored'\n-526BC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-526BC7 CRC                   00000000 (0)\n-526BCB Compressed Size       00000000 (0)\n-526BCF Uncompressed Size     00000000 (0)\n-526BD3 Filename Length       003D (61)\n-526BD5 Extra Length          0009 (9)\n-526BD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x526BD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-526C14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-526C16   Length              0005 (5)\n-526C18   Flags               01 (1) 'Modification'\n-526C19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-526C1D PAYLOAD\n-\n-529908 DATA DESCRIPTOR       08074B50 (134695760)\n-52990C CRC                   71D1D17D (1909576061)\n-529910 Compressed Size       00002CEB (11499)\n-529914 Uncompressed Size     00002CEB (11499)\n-\n-529918 LOCAL HEADER #1481    04034B50 (67324752)\n-52991C Extract Zip Spec      14 (20) '2.0'\n-52991D Extract OS            00 (0) 'MS-DOS'\n-52991E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-529920 Compression Method    0000 (0) 'Stored'\n-529922 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-529926 CRC                   00000000 (0)\n-52992A Compressed Size       00000000 (0)\n-52992E Uncompressed Size     00000000 (0)\n-529932 Filename Length       0046 (70)\n-529934 Extra Length          0009 (9)\n-529936 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x529936: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52997C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52997E   Length              0005 (5)\n-529980   Flags               01 (1) 'Modification'\n-529981   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-529985 PAYLOAD\n-\n-529F40 DATA DESCRIPTOR       08074B50 (134695760)\n-529F44 CRC                   8AF6C6B7 (2331428535)\n-529F48 Compressed Size       000005BB (1467)\n-529F4C Uncompressed Size     000005BB (1467)\n-\n-529F50 LOCAL HEADER #1482    04034B50 (67324752)\n-529F54 Extract Zip Spec      14 (20) '2.0'\n-529F55 Extract OS            00 (0) 'MS-DOS'\n-529F56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-529F58 Compression Method    0000 (0) 'Stored'\n-529F5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-529F5E CRC                   00000000 (0)\n-529F62 Compressed Size       00000000 (0)\n-529F66 Uncompressed Size     00000000 (0)\n-529F6A Filename Length       0049 (73)\n-529F6C Extra Length          0009 (9)\n-529F6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x529F6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-529FB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-529FB9   Length              0005 (5)\n-529FBB   Flags               01 (1) 'Modification'\n-529FBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-529FC0 PAYLOAD\n-\n-52B125 DATA DESCRIPTOR       08074B50 (134695760)\n-52B129 CRC                   2C68D340 (745067328)\n-52B12D Compressed Size       00001165 (4453)\n-52B131 Uncompressed Size     00001165 (4453)\n-\n-52B135 LOCAL HEADER #1483    04034B50 (67324752)\n-52B139 Extract Zip Spec      14 (20) '2.0'\n-52B13A Extract OS            00 (0) 'MS-DOS'\n-52B13B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52B13D Compression Method    0000 (0) 'Stored'\n-52B13F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52B143 CRC                   00000000 (0)\n-52B147 Compressed Size       00000000 (0)\n-52B14B Uncompressed Size     00000000 (0)\n-52B14F Filename Length       0046 (70)\n-52B151 Extra Length          0009 (9)\n-52B153 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52B153: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52B199 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52B19B   Length              0005 (5)\n-52B19D   Flags               01 (1) 'Modification'\n-52B19E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52B1A2 PAYLOAD\n-\n-52BF77 DATA DESCRIPTOR       08074B50 (134695760)\n-52BF7B CRC                   C14E1F5D (3243122525)\n-52BF7F Compressed Size       00000DD5 (3541)\n-52BF83 Uncompressed Size     00000DD5 (3541)\n-\n-52BF87 LOCAL HEADER #1484    04034B50 (67324752)\n-52BF8B Extract Zip Spec      14 (20) '2.0'\n-52BF8C Extract OS            00 (0) 'MS-DOS'\n-52BF8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52BF8F Compression Method    0000 (0) 'Stored'\n-52BF91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52BF95 CRC                   00000000 (0)\n-52BF99 Compressed Size       00000000 (0)\n-52BF9D Uncompressed Size     00000000 (0)\n-52BFA1 Filename Length       003C (60)\n-52BFA3 Extra Length          0009 (9)\n-52BFA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52BFA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52BFE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52BFE3   Length              0005 (5)\n-52BFE5   Flags               01 (1) 'Modification'\n-52BFE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52BFEA PAYLOAD\n-\n-52C9A0 DATA DESCRIPTOR       08074B50 (134695760)\n-52C9A4 CRC                   0593378C (93534092)\n-52C9A8 Compressed Size       000009B6 (2486)\n-52C9AC Uncompressed Size     000009B6 (2486)\n-\n-52C9B0 LOCAL HEADER #1485    04034B50 (67324752)\n-52C9B4 Extract Zip Spec      14 (20) '2.0'\n-52C9B5 Extract OS            00 (0) 'MS-DOS'\n-52C9B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52C9B8 Compression Method    0000 (0) 'Stored'\n-52C9BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52C9BE CRC                   00000000 (0)\n-52C9C2 Compressed Size       00000000 (0)\n-52C9C6 Uncompressed Size     00000000 (0)\n-52C9CA Filename Length       0037 (55)\n-52C9CC Extra Length          0009 (9)\n-52C9CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52C9CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52CA05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52CA07   Length              0005 (5)\n-52CA09   Flags               01 (1) 'Modification'\n-52CA0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52CA0E PAYLOAD\n-\n-52CF24 DATA DESCRIPTOR       08074B50 (134695760)\n-52CF28 CRC                   B40DC99A (3020802458)\n-52CF2C Compressed Size       00000516 (1302)\n-52CF30 Uncompressed Size     00000516 (1302)\n-\n-52CF34 LOCAL HEADER #1486    04034B50 (67324752)\n-52CF38 Extract Zip Spec      14 (20) '2.0'\n-52CF39 Extract OS            00 (0) 'MS-DOS'\n-52CF3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52CF3C Compression Method    0000 (0) 'Stored'\n-52CF3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52CF42 CRC                   00000000 (0)\n-52CF46 Compressed Size       00000000 (0)\n-52CF4A Uncompressed Size     00000000 (0)\n-52CF4E Filename Length       0041 (65)\n-52CF50 Extra Length          0009 (9)\n-52CF52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52CF52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52CF93 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52CF95   Length              0005 (5)\n-52CF97   Flags               01 (1) 'Modification'\n-52CF98   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52CF9C PAYLOAD\n-\n-52DA46 DATA DESCRIPTOR       08074B50 (134695760)\n-52DA4A CRC                   27689F2C (661167916)\n-52DA4E Compressed Size       00000AAA (2730)\n-52DA52 Uncompressed Size     00000AAA (2730)\n-\n-52DA56 LOCAL HEADER #1487    04034B50 (67324752)\n-52DA5A Extract Zip Spec      14 (20) '2.0'\n-52DA5B Extract OS            00 (0) 'MS-DOS'\n-52DA5C General Purpose Flag  0000 (0)\n-52DA5E Compression Method    0000 (0) 'Stored'\n-52DA60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52DA64 CRC                   00000000 (0)\n-52DA68 Compressed Size       00000000 (0)\n-52DA6C Uncompressed Size     00000000 (0)\n-52DA70 Filename Length       0032 (50)\n-52DA72 Extra Length          0009 (9)\n-52DA74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52DA74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52DAA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52DAA8   Length              0005 (5)\n-52DAAA   Flags               01 (1) 'Modification'\n-52DAAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-52DAAF LOCAL HEADER #1488    04034B50 (67324752)\n-52DAB3 Extract Zip Spec      14 (20) '2.0'\n-52DAB4 Extract OS            00 (0) 'MS-DOS'\n-52DAB5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52DAB7 Compression Method    0000 (0) 'Stored'\n-52DAB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52DABD CRC                   00000000 (0)\n-52DAC1 Compressed Size       00000000 (0)\n-52DAC5 Uncompressed Size     00000000 (0)\n-52DAC9 Filename Length       0048 (72)\n-52DACB Extra Length          0009 (9)\n-52DACD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52DACD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52DB15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52DB17   Length              0005 (5)\n-52DB19   Flags               01 (1) 'Modification'\n-52DB1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52DB1E PAYLOAD\n-\n-52E65C DATA DESCRIPTOR       08074B50 (134695760)\n-52E660 CRC                   3CE2D276 (1021497974)\n-52E664 Compressed Size       00000B3E (2878)\n-52E668 Uncompressed Size     00000B3E (2878)\n-\n-52E66C LOCAL HEADER #1489    04034B50 (67324752)\n-52E670 Extract Zip Spec      14 (20) '2.0'\n-52E671 Extract OS            00 (0) 'MS-DOS'\n-52E672 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52E674 Compression Method    0000 (0) 'Stored'\n-52E676 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52E67A CRC                   00000000 (0)\n-52E67E Compressed Size       00000000 (0)\n-52E682 Uncompressed Size     00000000 (0)\n-52E686 Filename Length       0045 (69)\n-52E688 Extra Length          0009 (9)\n-52E68A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52E68A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52E6CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52E6D1   Length              0005 (5)\n-52E6D3   Flags               01 (1) 'Modification'\n-52E6D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52E6D8 PAYLOAD\n-\n-52EF68 DATA DESCRIPTOR       08074B50 (134695760)\n-52EF6C CRC                   BC922CD8 (3163696344)\n-52EF70 Compressed Size       00000890 (2192)\n-52EF74 Uncompressed Size     00000890 (2192)\n-\n-52EF78 LOCAL HEADER #1490    04034B50 (67324752)\n-52EF7C Extract Zip Spec      14 (20) '2.0'\n-52EF7D Extract OS            00 (0) 'MS-DOS'\n-52EF7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-52EF80 Compression Method    0000 (0) 'Stored'\n-52EF82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-52EF86 CRC                   00000000 (0)\n-52EF8A Compressed Size       00000000 (0)\n-52EF8E Uncompressed Size     00000000 (0)\n-52EF92 Filename Length       004C (76)\n-52EF94 Extra Length          0009 (9)\n-52EF96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x52EF96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-52EFE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-52EFE4   Length              0005 (5)\n-52EFE6   Flags               01 (1) 'Modification'\n-52EFE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-52EFEB PAYLOAD\n-\n-531165 DATA DESCRIPTOR       08074B50 (134695760)\n-531169 CRC                   B13FDACC (2973752012)\n-53116D Compressed Size       0000217A (8570)\n-531171 Uncompressed Size     0000217A (8570)\n-\n-531175 LOCAL HEADER #1491    04034B50 (67324752)\n-531179 Extract Zip Spec      14 (20) '2.0'\n-53117A Extract OS            00 (0) 'MS-DOS'\n-53117B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53117D Compression Method    0000 (0) 'Stored'\n-53117F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-531183 CRC                   00000000 (0)\n-531187 Compressed Size       00000000 (0)\n-53118B Uncompressed Size     00000000 (0)\n-53118F Filename Length       004B (75)\n-531191 Extra Length          0009 (9)\n-531193 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x531193: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5311DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5311E0   Length              0005 (5)\n-5311E2   Flags               01 (1) 'Modification'\n-5311E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5311E7 PAYLOAD\n-\n-533062 DATA DESCRIPTOR       08074B50 (134695760)\n-533066 CRC                   2FB42746 (800335686)\n-53306A Compressed Size       00001E7B (7803)\n-53306E Uncompressed Size     00001E7B (7803)\n-\n-533072 LOCAL HEADER #1492    04034B50 (67324752)\n-533076 Extract Zip Spec      14 (20) '2.0'\n-533077 Extract OS            00 (0) 'MS-DOS'\n-533078 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53307A Compression Method    0000 (0) 'Stored'\n-53307C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-533080 CRC                   00000000 (0)\n-533084 Compressed Size       00000000 (0)\n-533088 Uncompressed Size     00000000 (0)\n-53308C Filename Length       004C (76)\n-53308E Extra Length          0009 (9)\n-533090 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x533090: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5330DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5330DE   Length              0005 (5)\n-5330E0   Flags               01 (1) 'Modification'\n-5330E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5330E5 PAYLOAD\n-\n-535563 DATA DESCRIPTOR       08074B50 (134695760)\n-535567 CRC                   C01CAB2E (3223104302)\n-53556B Compressed Size       0000247E (9342)\n-53556F Uncompressed Size     0000247E (9342)\n-\n-535573 LOCAL HEADER #1493    04034B50 (67324752)\n-535577 Extract Zip Spec      14 (20) '2.0'\n-535578 Extract OS            00 (0) 'MS-DOS'\n-535579 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53557B Compression Method    0000 (0) 'Stored'\n-53557D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-535581 CRC                   00000000 (0)\n-535585 Compressed Size       00000000 (0)\n-535589 Uncompressed Size     00000000 (0)\n-53558D Filename Length       004B (75)\n-53558F Extra Length          0009 (9)\n-535591 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x535591: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5355DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5355DE   Length              0005 (5)\n-5355E0   Flags               01 (1) 'Modification'\n-5355E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5355E5 PAYLOAD\n-\n-537AC7 DATA DESCRIPTOR       08074B50 (134695760)\n-537ACB CRC                   6C372682 (1815553666)\n-537ACF Compressed Size       000024E2 (9442)\n-537AD3 Uncompressed Size     000024E2 (9442)\n-\n-537AD7 LOCAL HEADER #1494    04034B50 (67324752)\n-537ADB Extract Zip Spec      14 (20) '2.0'\n-537ADC Extract OS            00 (0) 'MS-DOS'\n-537ADD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-537ADF Compression Method    0000 (0) 'Stored'\n-537AE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-537AE5 CRC                   00000000 (0)\n-537AE9 Compressed Size       00000000 (0)\n-537AED Uncompressed Size     00000000 (0)\n-537AF1 Filename Length       0046 (70)\n-537AF3 Extra Length          0009 (9)\n-537AF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x537AF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-537B3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-537B3D   Length              0005 (5)\n-537B3F   Flags               01 (1) 'Modification'\n-537B40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-537B44 PAYLOAD\n-\n-5382DF DATA DESCRIPTOR       08074B50 (134695760)\n-5382E3 CRC                   7F591FA6 (2136547238)\n-5382E7 Compressed Size       0000079B (1947)\n-5382EB Uncompressed Size     0000079B (1947)\n-\n-5382EF LOCAL HEADER #1495    04034B50 (67324752)\n-5382F3 Extract Zip Spec      14 (20) '2.0'\n-5382F4 Extract OS            00 (0) 'MS-DOS'\n-5382F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5382F7 Compression Method    0000 (0) 'Stored'\n-5382F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5382FD CRC                   00000000 (0)\n-538301 Compressed Size       00000000 (0)\n-538305 Uncompressed Size     00000000 (0)\n-538309 Filename Length       0047 (71)\n-53830B Extra Length          0009 (9)\n-53830D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53830D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-538354 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-538356   Length              0005 (5)\n-538358   Flags               01 (1) 'Modification'\n-538359   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53835D PAYLOAD\n-\n-5394CF DATA DESCRIPTOR       08074B50 (134695760)\n-5394D3 CRC                   229A16D5 (580523733)\n-5394D7 Compressed Size       00001172 (4466)\n-5394DB Uncompressed Size     00001172 (4466)\n-\n-5394DF LOCAL HEADER #1496    04034B50 (67324752)\n-5394E3 Extract Zip Spec      14 (20) '2.0'\n-5394E4 Extract OS            00 (0) 'MS-DOS'\n-5394E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5394E7 Compression Method    0000 (0) 'Stored'\n-5394E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5394ED CRC                   00000000 (0)\n-5394F1 Compressed Size       00000000 (0)\n-5394F5 Uncompressed Size     00000000 (0)\n-5394F9 Filename Length       0049 (73)\n-5394FB Extra Length          0009 (9)\n-5394FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5394FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-539546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-539548   Length              0005 (5)\n-53954A   Flags               01 (1) 'Modification'\n-53954B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53954F PAYLOAD\n-\n-539F7E DATA DESCRIPTOR       08074B50 (134695760)\n-539F82 CRC                   6C52AC25 (1817357349)\n-539F86 Compressed Size       00000A2F (2607)\n-539F8A Uncompressed Size     00000A2F (2607)\n-\n-539F8E LOCAL HEADER #1497    04034B50 (67324752)\n-539F92 Extract Zip Spec      14 (20) '2.0'\n-539F93 Extract OS            00 (0) 'MS-DOS'\n-539F94 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-539F96 Compression Method    0000 (0) 'Stored'\n-539F98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-539F9C CRC                   00000000 (0)\n-539FA0 Compressed Size       00000000 (0)\n-539FA4 Uncompressed Size     00000000 (0)\n-539FA8 Filename Length       0049 (73)\n-539FAA Extra Length          0009 (9)\n-539FAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x539FAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-539FF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-539FF7   Length              0005 (5)\n-539FF9   Flags               01 (1) 'Modification'\n-539FFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-539FFE PAYLOAD\n-\n-53AACE DATA DESCRIPTOR       08074B50 (134695760)\n-53AAD2 CRC                   39DE0130 (970850608)\n-53AAD6 Compressed Size       00000AD0 (2768)\n-53AADA Uncompressed Size     00000AD0 (2768)\n-\n-53AADE LOCAL HEADER #1498    04034B50 (67324752)\n-53AAE2 Extract Zip Spec      14 (20) '2.0'\n-53AAE3 Extract OS            00 (0) 'MS-DOS'\n-53AAE4 General Purpose Flag  0000 (0)\n-53AAE6 Compression Method    0000 (0) 'Stored'\n-53AAE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53AAEC CRC                   00000000 (0)\n-53AAF0 Compressed Size       00000000 (0)\n-53AAF4 Uncompressed Size     00000000 (0)\n-53AAF8 Filename Length       001F (31)\n-53AAFA Extra Length          0009 (9)\n-53AAFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53AAFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53AB1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53AB1D   Length              0005 (5)\n-53AB1F   Flags               01 (1) 'Modification'\n-53AB20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53AB24 LOCAL HEADER #1499    04034B50 (67324752)\n-53AB28 Extract Zip Spec      14 (20) '2.0'\n-53AB29 Extract OS            00 (0) 'MS-DOS'\n-53AB2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53AB2C Compression Method    0000 (0) 'Stored'\n-53AB2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53AB32 CRC                   00000000 (0)\n-53AB36 Compressed Size       00000000 (0)\n-53AB3A Uncompressed Size     00000000 (0)\n-53AB3E Filename Length       002E (46)\n-53AB40 Extra Length          0009 (9)\n-53AB42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53AB42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53AB70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53AB72   Length              0005 (5)\n-53AB74   Flags               01 (1) 'Modification'\n-53AB75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53AB79 PAYLOAD\n-\n-53B0A0 DATA DESCRIPTOR       08074B50 (134695760)\n-53B0A4 CRC                   20838DDF (545492447)\n-53B0A8 Compressed Size       00000527 (1319)\n-53B0AC Uncompressed Size     00000527 (1319)\n-\n-53B0B0 LOCAL HEADER #1500    04034B50 (67324752)\n-53B0B4 Extract Zip Spec      14 (20) '2.0'\n-53B0B5 Extract OS            00 (0) 'MS-DOS'\n-53B0B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53B0B8 Compression Method    0000 (0) 'Stored'\n-53B0BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53B0BE CRC                   00000000 (0)\n-53B0C2 Compressed Size       00000000 (0)\n-53B0C6 Uncompressed Size     00000000 (0)\n-53B0CA Filename Length       002F (47)\n-53B0CC Extra Length          0009 (9)\n-53B0CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53B0CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53B0FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53B0FF   Length              0005 (5)\n-53B101   Flags               01 (1) 'Modification'\n-53B102   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53B106 PAYLOAD\n-\n-53B670 DATA DESCRIPTOR       08074B50 (134695760)\n-53B674 CRC                   736BD280 (1936446080)\n-53B678 Compressed Size       0000056A (1386)\n-53B67C Uncompressed Size     0000056A (1386)\n-\n-53B680 LOCAL HEADER #1501    04034B50 (67324752)\n-53B684 Extract Zip Spec      14 (20) '2.0'\n-53B685 Extract OS            00 (0) 'MS-DOS'\n-53B686 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53B688 Compression Method    0000 (0) 'Stored'\n-53B68A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53B68E CRC                   00000000 (0)\n-53B692 Compressed Size       00000000 (0)\n-53B696 Uncompressed Size     00000000 (0)\n-53B69A Filename Length       002E (46)\n-53B69C Extra Length          0009 (9)\n-53B69E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53B69E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53B6CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53B6CE   Length              0005 (5)\n-53B6D0   Flags               01 (1) 'Modification'\n-53B6D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53B6D5 PAYLOAD\n-\n-53BDBE DATA DESCRIPTOR       08074B50 (134695760)\n-53BDC2 CRC                   C27E840C (3263071244)\n-53BDC6 Compressed Size       000006E9 (1769)\n-53BDCA Uncompressed Size     000006E9 (1769)\n-\n-53BDCE LOCAL HEADER #1502    04034B50 (67324752)\n-53BDD2 Extract Zip Spec      14 (20) '2.0'\n-53BDD3 Extract OS            00 (0) 'MS-DOS'\n-53BDD4 General Purpose Flag  0000 (0)\n-53BDD6 Compression Method    0000 (0) 'Stored'\n-53BDD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53BDDC CRC                   00000000 (0)\n-53BDE0 Compressed Size       00000000 (0)\n-53BDE4 Uncompressed Size     00000000 (0)\n-53BDE8 Filename Length       0025 (37)\n-53BDEA Extra Length          0009 (9)\n-53BDEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53BDEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53BE11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53BE13   Length              0005 (5)\n-53BE15   Flags               01 (1) 'Modification'\n-53BE16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53BE1A LOCAL HEADER #1503    04034B50 (67324752)\n-53BE1E Extract Zip Spec      14 (20) '2.0'\n-53BE1F Extract OS            00 (0) 'MS-DOS'\n-53BE20 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53BE22 Compression Method    0000 (0) 'Stored'\n-53BE24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53BE28 CRC                   00000000 (0)\n-53BE2C Compressed Size       00000000 (0)\n-53BE30 Uncompressed Size     00000000 (0)\n-53BE34 Filename Length       0039 (57)\n-53BE36 Extra Length          0009 (9)\n-53BE38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53BE38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53BE71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53BE73   Length              0005 (5)\n-53BE75   Flags               01 (1) 'Modification'\n-53BE76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53BE7A PAYLOAD\n-\n-53C383 DATA DESCRIPTOR       08074B50 (134695760)\n-53C387 CRC                   88BB48F4 (2293975284)\n-53C38B Compressed Size       00000509 (1289)\n-53C38F Uncompressed Size     00000509 (1289)\n-\n-53C393 LOCAL HEADER #1504    04034B50 (67324752)\n-53C397 Extract Zip Spec      14 (20) '2.0'\n-53C398 Extract OS            00 (0) 'MS-DOS'\n-53C399 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53C39B Compression Method    0000 (0) 'Stored'\n-53C39D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53C3A1 CRC                   00000000 (0)\n-53C3A5 Compressed Size       00000000 (0)\n-53C3A9 Uncompressed Size     00000000 (0)\n-53C3AD Filename Length       0039 (57)\n-53C3AF Extra Length          0009 (9)\n-53C3B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53C3B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53C3EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53C3EC   Length              0005 (5)\n-53C3EE   Flags               01 (1) 'Modification'\n-53C3EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53C3F3 PAYLOAD\n-\n-53D681 DATA DESCRIPTOR       08074B50 (134695760)\n-53D685 CRC                   690E10B4 (1762529460)\n-53D689 Compressed Size       0000128E (4750)\n-53D68D Uncompressed Size     0000128E (4750)\n-\n-53D691 LOCAL HEADER #1505    04034B50 (67324752)\n-53D695 Extract Zip Spec      14 (20) '2.0'\n-53D696 Extract OS            00 (0) 'MS-DOS'\n-53D697 General Purpose Flag  0000 (0)\n-53D699 Compression Method    0000 (0) 'Stored'\n-53D69B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53D69F CRC                   00000000 (0)\n-53D6A3 Compressed Size       00000000 (0)\n-53D6A7 Uncompressed Size     00000000 (0)\n-53D6AB Filename Length       0027 (39)\n-53D6AD Extra Length          0009 (9)\n-53D6AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53D6AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53D6D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53D6D8   Length              0005 (5)\n-53D6DA   Flags               01 (1) 'Modification'\n-53D6DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53D6DF LOCAL HEADER #1506    04034B50 (67324752)\n-53D6E3 Extract Zip Spec      14 (20) '2.0'\n-53D6E4 Extract OS            00 (0) 'MS-DOS'\n-53D6E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53D6E7 Compression Method    0000 (0) 'Stored'\n-53D6E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53D6ED CRC                   00000000 (0)\n-53D6F1 Compressed Size       00000000 (0)\n-53D6F5 Uncompressed Size     00000000 (0)\n-53D6F9 Filename Length       003D (61)\n-53D6FB Extra Length          0009 (9)\n-53D6FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53D6FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53D73A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53D73C   Length              0005 (5)\n-53D73E   Flags               01 (1) 'Modification'\n-53D73F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53D743 PAYLOAD\n-\n-53DD6B DATA DESCRIPTOR       08074B50 (134695760)\n-53DD6F CRC                   099C0616 (161220118)\n-53DD73 Compressed Size       00000628 (1576)\n-53DD77 Uncompressed Size     00000628 (1576)\n-\n-53DD7B LOCAL HEADER #1507    04034B50 (67324752)\n-53DD7F Extract Zip Spec      14 (20) '2.0'\n-53DD80 Extract OS            00 (0) 'MS-DOS'\n-53DD81 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53DD83 Compression Method    0000 (0) 'Stored'\n-53DD85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53DD89 CRC                   00000000 (0)\n-53DD8D Compressed Size       00000000 (0)\n-53DD91 Uncompressed Size     00000000 (0)\n-53DD95 Filename Length       003D (61)\n-53DD97 Extra Length          0009 (9)\n-53DD99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53DD99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53DDD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53DDD8   Length              0005 (5)\n-53DDDA   Flags               01 (1) 'Modification'\n-53DDDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53DDDF PAYLOAD\n-\n-53E727 DATA DESCRIPTOR       08074B50 (134695760)\n-53E72B CRC                   1EBD34EC (515716332)\n-53E72F Compressed Size       00000948 (2376)\n-53E733 Uncompressed Size     00000948 (2376)\n-\n-53E737 LOCAL HEADER #1508    04034B50 (67324752)\n-53E73B Extract Zip Spec      14 (20) '2.0'\n-53E73C Extract OS            00 (0) 'MS-DOS'\n-53E73D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53E73F Compression Method    0000 (0) 'Stored'\n-53E741 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53E745 CRC                   00000000 (0)\n-53E749 Compressed Size       00000000 (0)\n-53E74D Uncompressed Size     00000000 (0)\n-53E751 Filename Length       003D (61)\n-53E753 Extra Length          0009 (9)\n-53E755 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53E755: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53E792 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53E794   Length              0005 (5)\n-53E796   Flags               01 (1) 'Modification'\n-53E797   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53E79B PAYLOAD\n-\n-53EC8A DATA DESCRIPTOR       08074B50 (134695760)\n-53EC8E CRC                   00C8CBDF (13159391)\n-53EC92 Compressed Size       000004EF (1263)\n-53EC96 Uncompressed Size     000004EF (1263)\n-\n-53EC9A LOCAL HEADER #1509    04034B50 (67324752)\n-53EC9E Extract Zip Spec      14 (20) '2.0'\n-53EC9F Extract OS            00 (0) 'MS-DOS'\n-53ECA0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53ECA2 Compression Method    0000 (0) 'Stored'\n-53ECA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53ECA8 CRC                   00000000 (0)\n-53ECAC Compressed Size       00000000 (0)\n-53ECB0 Uncompressed Size     00000000 (0)\n-53ECB4 Filename Length       003D (61)\n-53ECB6 Extra Length          0009 (9)\n-53ECB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53ECB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53ECF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53ECF7   Length              0005 (5)\n-53ECF9   Flags               01 (1) 'Modification'\n-53ECFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53ECFE PAYLOAD\n-\n-53F23A DATA DESCRIPTOR       08074B50 (134695760)\n-53F23E CRC                   9F24457D (2669954429)\n-53F242 Compressed Size       0000053C (1340)\n-53F246 Uncompressed Size     0000053C (1340)\n-\n-53F24A LOCAL HEADER #1510    04034B50 (67324752)\n-53F24E Extract Zip Spec      14 (20) '2.0'\n-53F24F Extract OS            00 (0) 'MS-DOS'\n-53F250 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53F252 Compression Method    0000 (0) 'Stored'\n-53F254 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53F258 CRC                   00000000 (0)\n-53F25C Compressed Size       00000000 (0)\n-53F260 Uncompressed Size     00000000 (0)\n-53F264 Filename Length       003A (58)\n-53F266 Extra Length          0009 (9)\n-53F268 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53F268: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53F2A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53F2A4   Length              0005 (5)\n-53F2A6   Flags               01 (1) 'Modification'\n-53F2A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53F2AB PAYLOAD\n-\n-53F94B DATA DESCRIPTOR       08074B50 (134695760)\n-53F94F CRC                   E226A571 (3794183537)\n-53F953 Compressed Size       000006A0 (1696)\n-53F957 Uncompressed Size     000006A0 (1696)\n-\n-53F95B LOCAL HEADER #1511    04034B50 (67324752)\n-53F95F Extract Zip Spec      14 (20) '2.0'\n-53F960 Extract OS            00 (0) 'MS-DOS'\n-53F961 General Purpose Flag  0000 (0)\n-53F963 Compression Method    0000 (0) 'Stored'\n-53F965 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53F969 CRC                   00000000 (0)\n-53F96D Compressed Size       00000000 (0)\n-53F971 Uncompressed Size     00000000 (0)\n-53F975 Filename Length       0027 (39)\n-53F977 Extra Length          0009 (9)\n-53F979 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53F979: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53F9A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53F9A2   Length              0005 (5)\n-53F9A4   Flags               01 (1) 'Modification'\n-53F9A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-53F9A9 LOCAL HEADER #1512    04034B50 (67324752)\n-53F9AD Extract Zip Spec      14 (20) '2.0'\n-53F9AE Extract OS            00 (0) 'MS-DOS'\n-53F9AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-53F9B1 Compression Method    0000 (0) 'Stored'\n-53F9B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-53F9B7 CRC                   00000000 (0)\n-53F9BB Compressed Size       00000000 (0)\n-53F9BF Uncompressed Size     00000000 (0)\n-53F9C3 Filename Length       003E (62)\n-53F9C5 Extra Length          0009 (9)\n-53F9C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x53F9C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-53FA05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-53FA07   Length              0005 (5)\n-53FA09   Flags               01 (1) 'Modification'\n-53FA0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-53FA0E PAYLOAD\n-\n-5406F1 DATA DESCRIPTOR       08074B50 (134695760)\n-5406F5 CRC                   AD23A7BE (2904795070)\n-5406F9 Compressed Size       00000CE3 (3299)\n-5406FD Uncompressed Size     00000CE3 (3299)\n-\n-540701 LOCAL HEADER #1513    04034B50 (67324752)\n-540705 Extract Zip Spec      14 (20) '2.0'\n-540706 Extract OS            00 (0) 'MS-DOS'\n-540707 General Purpose Flag  0000 (0)\n-540709 Compression Method    0000 (0) 'Stored'\n-54070B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54070F CRC                   00000000 (0)\n-540713 Compressed Size       00000000 (0)\n-540717 Uncompressed Size     00000000 (0)\n-54071B Filename Length       0026 (38)\n-54071D Extra Length          0009 (9)\n-54071F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54071F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-540745 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-540747   Length              0005 (5)\n-540749   Flags               01 (1) 'Modification'\n-54074A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-54074E LOCAL HEADER #1514    04034B50 (67324752)\n-540752 Extract Zip Spec      14 (20) '2.0'\n-540753 Extract OS            00 (0) 'MS-DOS'\n-540754 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-540756 Compression Method    0000 (0) 'Stored'\n-540758 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54075C CRC                   00000000 (0)\n-540760 Compressed Size       00000000 (0)\n-540764 Uncompressed Size     00000000 (0)\n-540768 Filename Length       003B (59)\n-54076A Extra Length          0009 (9)\n-54076C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54076C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5407A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5407A9   Length              0005 (5)\n-5407AB   Flags               01 (1) 'Modification'\n-5407AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5407B0 PAYLOAD\n-\n-540C99 DATA DESCRIPTOR       08074B50 (134695760)\n-540C9D CRC                   2A48966F (709400175)\n-540CA1 Compressed Size       000004E9 (1257)\n-540CA5 Uncompressed Size     000004E9 (1257)\n-\n-540CA9 LOCAL HEADER #1515    04034B50 (67324752)\n-540CAD Extract Zip Spec      14 (20) '2.0'\n-540CAE Extract OS            00 (0) 'MS-DOS'\n-540CAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-540CB1 Compression Method    0000 (0) 'Stored'\n-540CB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-540CB7 CRC                   00000000 (0)\n-540CBB Compressed Size       00000000 (0)\n-540CBF Uncompressed Size     00000000 (0)\n-540CC3 Filename Length       003B (59)\n-540CC5 Extra Length          0009 (9)\n-540CC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x540CC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-540D02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-540D04   Length              0005 (5)\n-540D06   Flags               01 (1) 'Modification'\n-540D07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-540D0B PAYLOAD\n-\n-541C04 DATA DESCRIPTOR       08074B50 (134695760)\n-541C08 CRC                   8AF1B8FB (2331097339)\n-541C0C Compressed Size       00000EF9 (3833)\n-541C10 Uncompressed Size     00000EF9 (3833)\n-\n-541C14 LOCAL HEADER #1516    04034B50 (67324752)\n-541C18 Extract Zip Spec      14 (20) '2.0'\n-541C19 Extract OS            00 (0) 'MS-DOS'\n-541C1A General Purpose Flag  0000 (0)\n-541C1C Compression Method    0000 (0) 'Stored'\n-541C1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-541C22 CRC                   00000000 (0)\n-541C26 Compressed Size       00000000 (0)\n-541C2A Uncompressed Size     00000000 (0)\n-541C2E Filename Length       001E (30)\n-541C30 Extra Length          0009 (9)\n-541C32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x541C32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-541C50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-541C52   Length              0005 (5)\n-541C54   Flags               01 (1) 'Modification'\n-541C55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-541C59 LOCAL HEADER #1517    04034B50 (67324752)\n-541C5D Extract Zip Spec      14 (20) '2.0'\n-541C5E Extract OS            00 (0) 'MS-DOS'\n-541C5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-541C61 Compression Method    0000 (0) 'Stored'\n-541C63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-541C67 CRC                   00000000 (0)\n-541C6B Compressed Size       00000000 (0)\n-541C6F Uncompressed Size     00000000 (0)\n-541C73 Filename Length       0028 (40)\n-541C75 Extra Length          0009 (9)\n-541C77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x541C77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-541C9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-541CA1   Length              0005 (5)\n-541CA3   Flags               01 (1) 'Modification'\n-541CA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-541CA8 PAYLOAD\n-\n-5422ED DATA DESCRIPTOR       08074B50 (134695760)\n-5422F1 CRC                   22156101 (571826433)\n-5422F5 Compressed Size       00000645 (1605)\n-5422F9 Uncompressed Size     00000645 (1605)\n-\n-5422FD LOCAL HEADER #1518    04034B50 (67324752)\n-542301 Extract Zip Spec      14 (20) '2.0'\n-542302 Extract OS            00 (0) 'MS-DOS'\n-542303 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-542305 Compression Method    0000 (0) 'Stored'\n-542307 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54230B CRC                   00000000 (0)\n-54230F Compressed Size       00000000 (0)\n-542313 Uncompressed Size     00000000 (0)\n-542317 Filename Length       002C (44)\n-542319 Extra Length          0009 (9)\n-54231B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54231B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-542347 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-542349   Length              0005 (5)\n-54234B   Flags               01 (1) 'Modification'\n-54234C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-542350 PAYLOAD\n-\n-542880 DATA DESCRIPTOR       08074B50 (134695760)\n-542884 CRC                   5BDCE546 (1541203270)\n-542888 Compressed Size       00000530 (1328)\n-54288C Uncompressed Size     00000530 (1328)\n-\n-542890 LOCAL HEADER #1519    04034B50 (67324752)\n-542894 Extract Zip Spec      14 (20) '2.0'\n-542895 Extract OS            00 (0) 'MS-DOS'\n-542896 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-542898 Compression Method    0000 (0) 'Stored'\n-54289A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54289E CRC                   00000000 (0)\n-5428A2 Compressed Size       00000000 (0)\n-5428A6 Uncompressed Size     00000000 (0)\n-5428AA Filename Length       002D (45)\n-5428AC Extra Length          0009 (9)\n-5428AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5428AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5428DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5428DD   Length              0005 (5)\n-5428DF   Flags               01 (1) 'Modification'\n-5428E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5428E4 PAYLOAD\n-\n-543071 DATA DESCRIPTOR       08074B50 (134695760)\n-543075 CRC                   86A6B236 (2259071542)\n-543079 Compressed Size       0000078D (1933)\n-54307D Uncompressed Size     0000078D (1933)\n-\n-543081 LOCAL HEADER #1520    04034B50 (67324752)\n-543085 Extract Zip Spec      14 (20) '2.0'\n-543086 Extract OS            00 (0) 'MS-DOS'\n-543087 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-543089 Compression Method    0000 (0) 'Stored'\n-54308B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54308F CRC                   00000000 (0)\n-543093 Compressed Size       00000000 (0)\n-543097 Uncompressed Size     00000000 (0)\n-54309B Filename Length       0027 (39)\n-54309D Extra Length          0009 (9)\n-54309F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54309F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5430C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5430C8   Length              0005 (5)\n-5430CA   Flags               01 (1) 'Modification'\n-5430CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5430CF PAYLOAD\n-\n-5435C2 DATA DESCRIPTOR       08074B50 (134695760)\n-5435C6 CRC                   1B4BCF89 (457953161)\n-5435CA Compressed Size       000004F3 (1267)\n-5435CE Uncompressed Size     000004F3 (1267)\n-\n-5435D2 LOCAL HEADER #1521    04034B50 (67324752)\n-5435D6 Extract Zip Spec      14 (20) '2.0'\n-5435D7 Extract OS            00 (0) 'MS-DOS'\n-5435D8 General Purpose Flag  0000 (0)\n-5435DA Compression Method    0000 (0) 'Stored'\n-5435DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5435E0 CRC                   00000000 (0)\n-5435E4 Compressed Size       00000000 (0)\n-5435E8 Uncompressed Size     00000000 (0)\n-5435EC Filename Length       0027 (39)\n-5435EE Extra Length          0009 (9)\n-5435F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5435F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-543617 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-543619   Length              0005 (5)\n-54361B   Flags               01 (1) 'Modification'\n-54361C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-543620 LOCAL HEADER #1522    04034B50 (67324752)\n-543624 Extract Zip Spec      14 (20) '2.0'\n-543625 Extract OS            00 (0) 'MS-DOS'\n-543626 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-543628 Compression Method    0000 (0) 'Stored'\n-54362A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54362E CRC                   00000000 (0)\n-543632 Compressed Size       00000000 (0)\n-543636 Uncompressed Size     00000000 (0)\n-54363A Filename Length       0039 (57)\n-54363C Extra Length          0009 (9)\n-54363E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54363E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-543677 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-543679   Length              0005 (5)\n-54367B   Flags               01 (1) 'Modification'\n-54367C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-543680 PAYLOAD\n-\n-543B81 DATA DESCRIPTOR       08074B50 (134695760)\n-543B85 CRC                   DDB2647D (3719455869)\n-543B89 Compressed Size       00000501 (1281)\n-543B8D Uncompressed Size     00000501 (1281)\n-\n-543B91 LOCAL HEADER #1523    04034B50 (67324752)\n-543B95 Extract Zip Spec      14 (20) '2.0'\n-543B96 Extract OS            00 (0) 'MS-DOS'\n-543B97 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-543B99 Compression Method    0000 (0) 'Stored'\n-543B9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-543B9F CRC                   00000000 (0)\n-543BA3 Compressed Size       00000000 (0)\n-543BA7 Uncompressed Size     00000000 (0)\n-543BAB Filename Length       003D (61)\n-543BAD Extra Length          0009 (9)\n-543BAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x543BAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-543BEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-543BEE   Length              0005 (5)\n-543BF0   Flags               01 (1) 'Modification'\n-543BF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-543BF5 PAYLOAD\n-\n-54409A DATA DESCRIPTOR       08074B50 (134695760)\n-54409E CRC                   5D9DDBCF (1570626511)\n-5440A2 Compressed Size       000004A5 (1189)\n-5440A6 Uncompressed Size     000004A5 (1189)\n-\n-5440AA LOCAL HEADER #1524    04034B50 (67324752)\n-5440AE Extract Zip Spec      14 (20) '2.0'\n-5440AF Extract OS            00 (0) 'MS-DOS'\n-5440B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5440B2 Compression Method    0000 (0) 'Stored'\n-5440B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5440B8 CRC                   00000000 (0)\n-5440BC Compressed Size       00000000 (0)\n-5440C0 Uncompressed Size     00000000 (0)\n-5440C4 Filename Length       003E (62)\n-5440C6 Extra Length          0009 (9)\n-5440C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5440C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-544106 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-544108   Length              0005 (5)\n-54410A   Flags               01 (1) 'Modification'\n-54410B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54410F PAYLOAD\n-\n-54487D DATA DESCRIPTOR       08074B50 (134695760)\n-544881 CRC                   4453948E (1146328206)\n-544885 Compressed Size       0000076E (1902)\n-544889 Uncompressed Size     0000076E (1902)\n-\n-54488D LOCAL HEADER #1525    04034B50 (67324752)\n-544891 Extract Zip Spec      14 (20) '2.0'\n-544892 Extract OS            00 (0) 'MS-DOS'\n-544893 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-544895 Compression Method    0000 (0) 'Stored'\n-544897 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54489B CRC                   00000000 (0)\n-54489F Compressed Size       00000000 (0)\n-5448A3 Uncompressed Size     00000000 (0)\n-5448A7 Filename Length       0038 (56)\n-5448A9 Extra Length          0009 (9)\n-5448AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5448AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5448E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5448E5   Length              0005 (5)\n-5448E7   Flags               01 (1) 'Modification'\n-5448E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5448EC PAYLOAD\n-\n-544D0C DATA DESCRIPTOR       08074B50 (134695760)\n-544D10 CRC                   E8A94DD9 (3903409625)\n-544D14 Compressed Size       00000420 (1056)\n-544D18 Uncompressed Size     00000420 (1056)\n-\n-544D1C LOCAL HEADER #1526    04034B50 (67324752)\n-544D20 Extract Zip Spec      14 (20) '2.0'\n-544D21 Extract OS            00 (0) 'MS-DOS'\n-544D22 General Purpose Flag  0000 (0)\n-544D24 Compression Method    0000 (0) 'Stored'\n-544D26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-544D2A CRC                   00000000 (0)\n-544D2E Compressed Size       00000000 (0)\n-544D32 Uncompressed Size     00000000 (0)\n-544D36 Filename Length       002F (47)\n-544D38 Extra Length          0009 (9)\n-544D3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x544D3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-544D69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-544D6B   Length              0005 (5)\n-544D6D   Flags               01 (1) 'Modification'\n-544D6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-544D72 LOCAL HEADER #1527    04034B50 (67324752)\n-544D76 Extract Zip Spec      14 (20) '2.0'\n-544D77 Extract OS            00 (0) 'MS-DOS'\n-544D78 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-544D7A Compression Method    0000 (0) 'Stored'\n-544D7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-544D80 CRC                   00000000 (0)\n-544D84 Compressed Size       00000000 (0)\n-544D88 Uncompressed Size     00000000 (0)\n-544D8C Filename Length       0049 (73)\n-544D8E Extra Length          0009 (9)\n-544D90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x544D90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-544DD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-544DDB   Length              0005 (5)\n-544DDD   Flags               01 (1) 'Modification'\n-544DDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-544DE2 PAYLOAD\n-\n-545F84 DATA DESCRIPTOR       08074B50 (134695760)\n-545F88 CRC                   C68A15C0 (3330938304)\n-545F8C Compressed Size       000011A2 (4514)\n-545F90 Uncompressed Size     000011A2 (4514)\n-\n-545F94 LOCAL HEADER #1528    04034B50 (67324752)\n-545F98 Extract Zip Spec      14 (20) '2.0'\n-545F99 Extract OS            00 (0) 'MS-DOS'\n-545F9A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-545F9C Compression Method    0000 (0) 'Stored'\n-545F9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-545FA2 CRC                   00000000 (0)\n-545FA6 Compressed Size       00000000 (0)\n-545FAA Uncompressed Size     00000000 (0)\n-545FAE Filename Length       0046 (70)\n-545FB0 Extra Length          0009 (9)\n-545FB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x545FB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-545FF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-545FFA   Length              0005 (5)\n-545FFC   Flags               01 (1) 'Modification'\n-545FFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-546001 PAYLOAD\n-\n-547335 DATA DESCRIPTOR       08074B50 (134695760)\n-547339 CRC                   27A7C8DD (665307357)\n-54733D Compressed Size       00001334 (4916)\n-547341 Uncompressed Size     00001334 (4916)\n-\n-547345 LOCAL HEADER #1529    04034B50 (67324752)\n-547349 Extract Zip Spec      14 (20) '2.0'\n-54734A Extract OS            00 (0) 'MS-DOS'\n-54734B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54734D Compression Method    0000 (0) 'Stored'\n-54734F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-547353 CRC                   00000000 (0)\n-547357 Compressed Size       00000000 (0)\n-54735B Uncompressed Size     00000000 (0)\n-54735F Filename Length       0045 (69)\n-547361 Extra Length          0009 (9)\n-547363 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x547363: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5473A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5473AA   Length              0005 (5)\n-5473AC   Flags               01 (1) 'Modification'\n-5473AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5473B1 PAYLOAD\n-\n-548849 DATA DESCRIPTOR       08074B50 (134695760)\n-54884D CRC                   EC1A089B (3961129115)\n-548851 Compressed Size       00001498 (5272)\n-548855 Uncompressed Size     00001498 (5272)\n-\n-548859 LOCAL HEADER #1530    04034B50 (67324752)\n-54885D Extract Zip Spec      14 (20) '2.0'\n-54885E Extract OS            00 (0) 'MS-DOS'\n-54885F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-548861 Compression Method    0000 (0) 'Stored'\n-548863 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-548867 CRC                   00000000 (0)\n-54886B Compressed Size       00000000 (0)\n-54886F Uncompressed Size     00000000 (0)\n-548873 Filename Length       0049 (73)\n-548875 Extra Length          0009 (9)\n-548877 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x548877: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5488C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5488C2   Length              0005 (5)\n-5488C4   Flags               01 (1) 'Modification'\n-5488C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5488C9 PAYLOAD\n-\n-548DFF DATA DESCRIPTOR       08074B50 (134695760)\n-548E03 CRC                   D99CBCB4 (3650927796)\n-548E07 Compressed Size       00000536 (1334)\n-548E0B Uncompressed Size     00000536 (1334)\n-\n-548E0F LOCAL HEADER #1531    04034B50 (67324752)\n-548E13 Extract Zip Spec      14 (20) '2.0'\n-548E14 Extract OS            00 (0) 'MS-DOS'\n-548E15 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-548E17 Compression Method    0000 (0) 'Stored'\n-548E19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-548E1D CRC                   00000000 (0)\n-548E21 Compressed Size       00000000 (0)\n-548E25 Uncompressed Size     00000000 (0)\n-548E29 Filename Length       004A (74)\n-548E2B Extra Length          0009 (9)\n-548E2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x548E2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-548E77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-548E79   Length              0005 (5)\n-548E7B   Flags               01 (1) 'Modification'\n-548E7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-548E80 PAYLOAD\n-\n-549F14 DATA DESCRIPTOR       08074B50 (134695760)\n-549F18 CRC                   25CC04D5 (634127573)\n-549F1C Compressed Size       00001094 (4244)\n-549F20 Uncompressed Size     00001094 (4244)\n-\n-549F24 LOCAL HEADER #1532    04034B50 (67324752)\n-549F28 Extract Zip Spec      14 (20) '2.0'\n-549F29 Extract OS            00 (0) 'MS-DOS'\n-549F2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-549F2C Compression Method    0000 (0) 'Stored'\n-549F2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-549F32 CRC                   00000000 (0)\n-549F36 Compressed Size       00000000 (0)\n-549F3A Uncompressed Size     00000000 (0)\n-549F3E Filename Length       004E (78)\n-549F40 Extra Length          0009 (9)\n-549F42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x549F42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-549F90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-549F92   Length              0005 (5)\n-549F94   Flags               01 (1) 'Modification'\n-549F95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-549F99 PAYLOAD\n-\n-54A4DE DATA DESCRIPTOR       08074B50 (134695760)\n-54A4E2 CRC                   ECA8B7E4 (3970480100)\n-54A4E6 Compressed Size       00000545 (1349)\n-54A4EA Uncompressed Size     00000545 (1349)\n-\n-54A4EE LOCAL HEADER #1533    04034B50 (67324752)\n-54A4F2 Extract Zip Spec      14 (20) '2.0'\n-54A4F3 Extract OS            00 (0) 'MS-DOS'\n-54A4F4 General Purpose Flag  0000 (0)\n-54A4F6 Compression Method    0000 (0) 'Stored'\n-54A4F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54A4FC CRC                   00000000 (0)\n-54A500 Compressed Size       00000000 (0)\n-54A504 Uncompressed Size     00000000 (0)\n-54A508 Filename Length       0026 (38)\n-54A50A Extra Length          0009 (9)\n-54A50C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54A50C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54A532 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54A534   Length              0005 (5)\n-54A536   Flags               01 (1) 'Modification'\n-54A537   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-54A53B LOCAL HEADER #1534    04034B50 (67324752)\n-54A53F Extract Zip Spec      14 (20) '2.0'\n-54A540 Extract OS            00 (0) 'MS-DOS'\n-54A541 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54A543 Compression Method    0000 (0) 'Stored'\n-54A545 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54A549 CRC                   00000000 (0)\n-54A54D Compressed Size       00000000 (0)\n-54A551 Uncompressed Size     00000000 (0)\n-54A555 Filename Length       0038 (56)\n-54A557 Extra Length          0009 (9)\n-54A559 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54A559: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54A591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54A593   Length              0005 (5)\n-54A595   Flags               01 (1) 'Modification'\n-54A596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54A59A PAYLOAD\n-\n-54B53C DATA DESCRIPTOR       08074B50 (134695760)\n-54B540 CRC                   F154D7FB (4048869371)\n-54B544 Compressed Size       00000FA2 (4002)\n-54B548 Uncompressed Size     00000FA2 (4002)\n-\n-54B54C LOCAL HEADER #1535    04034B50 (67324752)\n-54B550 Extract Zip Spec      14 (20) '2.0'\n-54B551 Extract OS            00 (0) 'MS-DOS'\n-54B552 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54B554 Compression Method    0000 (0) 'Stored'\n-54B556 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54B55A CRC                   00000000 (0)\n-54B55E Compressed Size       00000000 (0)\n-54B562 Uncompressed Size     00000000 (0)\n-54B566 Filename Length       0034 (52)\n-54B568 Extra Length          0009 (9)\n-54B56A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54B56A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54B59E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54B5A0   Length              0005 (5)\n-54B5A2   Flags               01 (1) 'Modification'\n-54B5A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54B5A7 PAYLOAD\n-\n-54C967 DATA DESCRIPTOR       08074B50 (134695760)\n-54C96B CRC                   126F64B9 (309290169)\n-54C96F Compressed Size       000013C0 (5056)\n-54C973 Uncompressed Size     000013C0 (5056)\n-\n-54C977 LOCAL HEADER #1536    04034B50 (67324752)\n-54C97B Extract Zip Spec      14 (20) '2.0'\n-54C97C Extract OS            00 (0) 'MS-DOS'\n-54C97D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54C97F Compression Method    0000 (0) 'Stored'\n-54C981 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54C985 CRC                   00000000 (0)\n-54C989 Compressed Size       00000000 (0)\n-54C98D Uncompressed Size     00000000 (0)\n-54C991 Filename Length       0038 (56)\n-54C993 Extra Length          0009 (9)\n-54C995 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54C995: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54C9CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54C9CF   Length              0005 (5)\n-54C9D1   Flags               01 (1) 'Modification'\n-54C9D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54C9D6 PAYLOAD\n-\n-54CEC1 DATA DESCRIPTOR       08074B50 (134695760)\n-54CEC5 CRC                   DE2F0B5D (3727625053)\n-54CEC9 Compressed Size       000004EB (1259)\n-54CECD Uncompressed Size     000004EB (1259)\n-\n-54CED1 LOCAL HEADER #1537    04034B50 (67324752)\n-54CED5 Extract Zip Spec      14 (20) '2.0'\n-54CED6 Extract OS            00 (0) 'MS-DOS'\n-54CED7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54CED9 Compression Method    0000 (0) 'Stored'\n-54CEDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54CEDF CRC                   00000000 (0)\n-54CEE3 Compressed Size       00000000 (0)\n-54CEE7 Uncompressed Size     00000000 (0)\n-54CEEB Filename Length       0039 (57)\n-54CEED Extra Length          0009 (9)\n-54CEEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54CEEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54CF28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54CF2A   Length              0005 (5)\n-54CF2C   Flags               01 (1) 'Modification'\n-54CF2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54CF31 PAYLOAD\n-\n-54DF70 DATA DESCRIPTOR       08074B50 (134695760)\n-54DF74 CRC                   91721BC5 (2440174533)\n-54DF78 Compressed Size       0000103F (4159)\n-54DF7C Uncompressed Size     0000103F (4159)\n-\n-54DF80 LOCAL HEADER #1538    04034B50 (67324752)\n-54DF84 Extract Zip Spec      14 (20) '2.0'\n-54DF85 Extract OS            00 (0) 'MS-DOS'\n-54DF86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54DF88 Compression Method    0000 (0) 'Stored'\n-54DF8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54DF8E CRC                   00000000 (0)\n-54DF92 Compressed Size       00000000 (0)\n-54DF96 Uncompressed Size     00000000 (0)\n-54DF9A Filename Length       003D (61)\n-54DF9C Extra Length          0009 (9)\n-54DF9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54DF9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54DFDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54DFDD   Length              0005 (5)\n-54DFDF   Flags               01 (1) 'Modification'\n-54DFE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54DFE4 PAYLOAD\n-\n-54E4DE DATA DESCRIPTOR       08074B50 (134695760)\n-54E4E2 CRC                   6E31EAB9 (1848765113)\n-54E4E6 Compressed Size       000004FA (1274)\n-54E4EA Uncompressed Size     000004FA (1274)\n-\n-54E4EE LOCAL HEADER #1539    04034B50 (67324752)\n-54E4F2 Extract Zip Spec      14 (20) '2.0'\n-54E4F3 Extract OS            00 (0) 'MS-DOS'\n-54E4F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54E4F6 Compression Method    0000 (0) 'Stored'\n-54E4F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54E4FC CRC                   00000000 (0)\n-54E500 Compressed Size       00000000 (0)\n-54E504 Uncompressed Size     00000000 (0)\n-54E508 Filename Length       0035 (53)\n-54E50A Extra Length          0009 (9)\n-54E50C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54E50C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54E541 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54E543   Length              0005 (5)\n-54E545   Flags               01 (1) 'Modification'\n-54E546   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54E54A PAYLOAD\n-\n-54F5E9 DATA DESCRIPTOR       08074B50 (134695760)\n-54F5ED CRC                   9A81C390 (2592195472)\n-54F5F1 Compressed Size       0000109F (4255)\n-54F5F5 Uncompressed Size     0000109F (4255)\n-\n-54F5F9 LOCAL HEADER #1540    04034B50 (67324752)\n-54F5FD Extract Zip Spec      14 (20) '2.0'\n-54F5FE Extract OS            00 (0) 'MS-DOS'\n-54F5FF General Purpose Flag  0000 (0)\n-54F601 Compression Method    0000 (0) 'Stored'\n-54F603 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54F607 CRC                   00000000 (0)\n-54F60B Compressed Size       00000000 (0)\n-54F60F Uncompressed Size     00000000 (0)\n-54F613 Filename Length       0021 (33)\n-54F615 Extra Length          0009 (9)\n-54F617 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54F617: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54F638 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54F63A   Length              0005 (5)\n-54F63C   Flags               01 (1) 'Modification'\n-54F63D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-54F641 LOCAL HEADER #1541    04034B50 (67324752)\n-54F645 Extract Zip Spec      14 (20) '2.0'\n-54F646 Extract OS            00 (0) 'MS-DOS'\n-54F647 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54F649 Compression Method    0000 (0) 'Stored'\n-54F64B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54F64F CRC                   00000000 (0)\n-54F653 Compressed Size       00000000 (0)\n-54F657 Uncompressed Size     00000000 (0)\n-54F65B Filename Length       0033 (51)\n-54F65D Extra Length          0009 (9)\n-54F65F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54F65F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54F692 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54F694   Length              0005 (5)\n-54F696   Flags               01 (1) 'Modification'\n-54F697   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54F69B PAYLOAD\n-\n-54FB7A DATA DESCRIPTOR       08074B50 (134695760)\n-54FB7E CRC                   1A03F22E (436466222)\n-54FB82 Compressed Size       000004DF (1247)\n-54FB86 Uncompressed Size     000004DF (1247)\n-\n-54FB8A LOCAL HEADER #1542    04034B50 (67324752)\n-54FB8E Extract Zip Spec      14 (20) '2.0'\n-54FB8F Extract OS            00 (0) 'MS-DOS'\n-54FB90 General Purpose Flag  0000 (0)\n-54FB92 Compression Method    0000 (0) 'Stored'\n-54FB94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54FB98 CRC                   00000000 (0)\n-54FB9C Compressed Size       00000000 (0)\n-54FBA0 Uncompressed Size     00000000 (0)\n-54FBA4 Filename Length       0027 (39)\n-54FBA6 Extra Length          0009 (9)\n-54FBA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54FBA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54FBCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54FBD1   Length              0005 (5)\n-54FBD3   Flags               01 (1) 'Modification'\n-54FBD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-54FBD8 LOCAL HEADER #1543    04034B50 (67324752)\n-54FBDC Extract Zip Spec      14 (20) '2.0'\n-54FBDD Extract OS            00 (0) 'MS-DOS'\n-54FBDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-54FBE0 Compression Method    0000 (0) 'Stored'\n-54FBE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-54FBE6 CRC                   00000000 (0)\n-54FBEA Compressed Size       00000000 (0)\n-54FBEE Uncompressed Size     00000000 (0)\n-54FBF2 Filename Length       0037 (55)\n-54FBF4 Extra Length          0009 (9)\n-54FBF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x54FBF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-54FC2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-54FC2F   Length              0005 (5)\n-54FC31   Flags               01 (1) 'Modification'\n-54FC32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-54FC36 PAYLOAD\n-\n-552AA3 DATA DESCRIPTOR       08074B50 (134695760)\n-552AA7 CRC                   DBE899CA (3689454026)\n-552AAB Compressed Size       00002E6D (11885)\n-552AAF Uncompressed Size     00002E6D (11885)\n-\n-552AB3 LOCAL HEADER #1544    04034B50 (67324752)\n-552AB7 Extract Zip Spec      14 (20) '2.0'\n-552AB8 Extract OS            00 (0) 'MS-DOS'\n-552AB9 General Purpose Flag  0000 (0)\n-552ABB Compression Method    0000 (0) 'Stored'\n-552ABD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-552AC1 CRC                   00000000 (0)\n-552AC5 Compressed Size       00000000 (0)\n-552AC9 Uncompressed Size     00000000 (0)\n-552ACD Filename Length       0029 (41)\n-552ACF Extra Length          0009 (9)\n-552AD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x552AD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-552AFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-552AFC   Length              0005 (5)\n-552AFE   Flags               01 (1) 'Modification'\n-552AFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-552B03 LOCAL HEADER #1545    04034B50 (67324752)\n-552B07 Extract Zip Spec      14 (20) '2.0'\n-552B08 Extract OS            00 (0) 'MS-DOS'\n-552B09 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-552B0B Compression Method    0000 (0) 'Stored'\n-552B0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-552B11 CRC                   00000000 (0)\n-552B15 Compressed Size       00000000 (0)\n-552B19 Uncompressed Size     00000000 (0)\n-552B1D Filename Length       0032 (50)\n-552B1F Extra Length          0009 (9)\n-552B21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x552B21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-552B53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-552B55   Length              0005 (5)\n-552B57   Flags               01 (1) 'Modification'\n-552B58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-552B5C PAYLOAD\n-\n-553074 DATA DESCRIPTOR       08074B50 (134695760)\n-553078 CRC                   91FB3CEA (2449161450)\n-55307C Compressed Size       00000518 (1304)\n-553080 Uncompressed Size     00000518 (1304)\n-\n-553084 LOCAL HEADER #1546    04034B50 (67324752)\n-553088 Extract Zip Spec      14 (20) '2.0'\n-553089 Extract OS            00 (0) 'MS-DOS'\n-55308A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55308C Compression Method    0000 (0) 'Stored'\n-55308E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-553092 CRC                   00000000 (0)\n-553096 Compressed Size       00000000 (0)\n-55309A Uncompressed Size     00000000 (0)\n-55309E Filename Length       0042 (66)\n-5530A0 Extra Length          0009 (9)\n-5530A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5530A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5530E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5530E6   Length              0005 (5)\n-5530E8   Flags               01 (1) 'Modification'\n-5530E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5530ED PAYLOAD\n-\n-5540BB DATA DESCRIPTOR       08074B50 (134695760)\n-5540BF CRC                   492B287D (1227565181)\n-5540C3 Compressed Size       00000FCE (4046)\n-5540C7 Uncompressed Size     00000FCE (4046)\n-\n-5540CB LOCAL HEADER #1547    04034B50 (67324752)\n-5540CF Extract Zip Spec      14 (20) '2.0'\n-5540D0 Extract OS            00 (0) 'MS-DOS'\n-5540D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5540D3 Compression Method    0000 (0) 'Stored'\n-5540D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5540D9 CRC                   00000000 (0)\n-5540DD Compressed Size       00000000 (0)\n-5540E1 Uncompressed Size     00000000 (0)\n-5540E5 Filename Length       0039 (57)\n-5540E7 Extra Length          0009 (9)\n-5540E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5540E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-554122 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-554124   Length              0005 (5)\n-554126   Flags               01 (1) 'Modification'\n-554127   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55412B PAYLOAD\n-\n-5557C8 DATA DESCRIPTOR       08074B50 (134695760)\n-5557CC CRC                   EB3BD2B9 (3946566329)\n-5557D0 Compressed Size       0000169D (5789)\n-5557D4 Uncompressed Size     0000169D (5789)\n-\n-5557D8 LOCAL HEADER #1548    04034B50 (67324752)\n-5557DC Extract Zip Spec      14 (20) '2.0'\n-5557DD Extract OS            00 (0) 'MS-DOS'\n-5557DE General Purpose Flag  0000 (0)\n-5557E0 Compression Method    0000 (0) 'Stored'\n-5557E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5557E6 CRC                   00000000 (0)\n-5557EA Compressed Size       00000000 (0)\n-5557EE Uncompressed Size     00000000 (0)\n-5557F2 Filename Length       0031 (49)\n-5557F4 Extra Length          0009 (9)\n-5557F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5557F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-555827 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-555829   Length              0005 (5)\n-55582B   Flags               01 (1) 'Modification'\n-55582C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-555830 LOCAL HEADER #1549    04034B50 (67324752)\n-555834 Extract Zip Spec      14 (20) '2.0'\n-555835 Extract OS            00 (0) 'MS-DOS'\n-555836 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-555838 Compression Method    0000 (0) 'Stored'\n-55583A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55583E CRC                   00000000 (0)\n-555842 Compressed Size       00000000 (0)\n-555846 Uncompressed Size     00000000 (0)\n-55584A Filename Length       0048 (72)\n-55584C Extra Length          0009 (9)\n-55584E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55584E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-555896 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-555898   Length              0005 (5)\n-55589A   Flags               01 (1) 'Modification'\n-55589B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55589F PAYLOAD\n-\n-555FD7 DATA DESCRIPTOR       08074B50 (134695760)\n-555FDB CRC                   74498D23 (1950977315)\n-555FDF Compressed Size       00000738 (1848)\n-555FE3 Uncompressed Size     00000738 (1848)\n-\n-555FE7 LOCAL HEADER #1550    04034B50 (67324752)\n-555FEB Extract Zip Spec      14 (20) '2.0'\n-555FEC Extract OS            00 (0) 'MS-DOS'\n-555FED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-555FEF Compression Method    0000 (0) 'Stored'\n-555FF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-555FF5 CRC                   00000000 (0)\n-555FF9 Compressed Size       00000000 (0)\n-555FFD Uncompressed Size     00000000 (0)\n-556001 Filename Length       0047 (71)\n-556003 Extra Length          0009 (9)\n-556005 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x556005: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55604C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55604E   Length              0005 (5)\n-556050   Flags               01 (1) 'Modification'\n-556051   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-556055 PAYLOAD\n-\n-5565D6 DATA DESCRIPTOR       08074B50 (134695760)\n-5565DA CRC                   C2DA4C0E (3269086222)\n-5565DE Compressed Size       00000581 (1409)\n-5565E2 Uncompressed Size     00000581 (1409)\n-\n-5565E6 LOCAL HEADER #1551    04034B50 (67324752)\n-5565EA Extract Zip Spec      14 (20) '2.0'\n-5565EB Extract OS            00 (0) 'MS-DOS'\n-5565EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5565EE Compression Method    0000 (0) 'Stored'\n-5565F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5565F4 CRC                   00000000 (0)\n-5565F8 Compressed Size       00000000 (0)\n-5565FC Uncompressed Size     00000000 (0)\n-556600 Filename Length       0047 (71)\n-556602 Extra Length          0009 (9)\n-556604 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x556604: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55664B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55664D   Length              0005 (5)\n-55664F   Flags               01 (1) 'Modification'\n-556650   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-556654 PAYLOAD\n-\n-5574A4 DATA DESCRIPTOR       08074B50 (134695760)\n-5574A8 CRC                   A166D974 (2707872116)\n-5574AC Compressed Size       00000E50 (3664)\n-5574B0 Uncompressed Size     00000E50 (3664)\n-\n-5574B4 LOCAL HEADER #1552    04034B50 (67324752)\n-5574B8 Extract Zip Spec      14 (20) '2.0'\n-5574B9 Extract OS            00 (0) 'MS-DOS'\n-5574BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5574BC Compression Method    0000 (0) 'Stored'\n-5574BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5574C2 CRC                   00000000 (0)\n-5574C6 Compressed Size       00000000 (0)\n-5574CA Uncompressed Size     00000000 (0)\n-5574CE Filename Length       0046 (70)\n-5574D0 Extra Length          0009 (9)\n-5574D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5574D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-557518 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55751A   Length              0005 (5)\n-55751C   Flags               01 (1) 'Modification'\n-55751D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-557521 PAYLOAD\n-\n-55859E DATA DESCRIPTOR       08074B50 (134695760)\n-5585A2 CRC                   F227F3D5 (4062704597)\n-5585A6 Compressed Size       0000107D (4221)\n-5585AA Uncompressed Size     0000107D (4221)\n-\n-5585AE LOCAL HEADER #1553    04034B50 (67324752)\n-5585B2 Extract Zip Spec      14 (20) '2.0'\n-5585B3 Extract OS            00 (0) 'MS-DOS'\n-5585B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5585B6 Compression Method    0000 (0) 'Stored'\n-5585B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5585BC CRC                   00000000 (0)\n-5585C0 Compressed Size       00000000 (0)\n-5585C4 Uncompressed Size     00000000 (0)\n-5585C8 Filename Length       0049 (73)\n-5585CA Extra Length          0009 (9)\n-5585CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5585CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-558615 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-558617   Length              0005 (5)\n-558619   Flags               01 (1) 'Modification'\n-55861A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55861E PAYLOAD\n-\n-55982E DATA DESCRIPTOR       08074B50 (134695760)\n-559832 CRC                   F5209683 (4112553603)\n-559836 Compressed Size       00001210 (4624)\n-55983A Uncompressed Size     00001210 (4624)\n-\n-55983E LOCAL HEADER #1554    04034B50 (67324752)\n-559842 Extract Zip Spec      14 (20) '2.0'\n-559843 Extract OS            00 (0) 'MS-DOS'\n-559844 General Purpose Flag  0000 (0)\n-559846 Compression Method    0000 (0) 'Stored'\n-559848 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55984C CRC                   00000000 (0)\n-559850 Compressed Size       00000000 (0)\n-559854 Uncompressed Size     00000000 (0)\n-559858 Filename Length       0024 (36)\n-55985A Extra Length          0009 (9)\n-55985C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55985C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-559880 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-559882   Length              0005 (5)\n-559884   Flags               01 (1) 'Modification'\n-559885   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-559889 LOCAL HEADER #1555    04034B50 (67324752)\n-55988D Extract Zip Spec      14 (20) '2.0'\n-55988E Extract OS            00 (0) 'MS-DOS'\n-55988F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-559891 Compression Method    0000 (0) 'Stored'\n-559893 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-559897 CRC                   00000000 (0)\n-55989B Compressed Size       00000000 (0)\n-55989F Uncompressed Size     00000000 (0)\n-5598A3 Filename Length       0038 (56)\n-5598A5 Extra Length          0009 (9)\n-5598A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5598A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5598DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5598E1   Length              0005 (5)\n-5598E3   Flags               01 (1) 'Modification'\n-5598E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5598E8 PAYLOAD\n-\n-55A055 DATA DESCRIPTOR       08074B50 (134695760)\n-55A059 CRC                   A7E27376 (2816635766)\n-55A05D Compressed Size       0000076D (1901)\n-55A061 Uncompressed Size     0000076D (1901)\n-\n-55A065 LOCAL HEADER #1556    04034B50 (67324752)\n-55A069 Extract Zip Spec      14 (20) '2.0'\n-55A06A Extract OS            00 (0) 'MS-DOS'\n-55A06B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55A06D Compression Method    0000 (0) 'Stored'\n-55A06F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55A073 CRC                   00000000 (0)\n-55A077 Compressed Size       00000000 (0)\n-55A07B Uncompressed Size     00000000 (0)\n-55A07F Filename Length       0047 (71)\n-55A081 Extra Length          0009 (9)\n-55A083 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55A083: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55A0CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55A0CC   Length              0005 (5)\n-55A0CE   Flags               01 (1) 'Modification'\n-55A0CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55A0D3 PAYLOAD\n-\n-55A9E3 DATA DESCRIPTOR       08074B50 (134695760)\n-55A9E7 CRC                   28520740 (676464448)\n-55A9EB Compressed Size       00000910 (2320)\n-55A9EF Uncompressed Size     00000910 (2320)\n-\n-55A9F3 LOCAL HEADER #1557    04034B50 (67324752)\n-55A9F7 Extract Zip Spec      14 (20) '2.0'\n-55A9F8 Extract OS            00 (0) 'MS-DOS'\n-55A9F9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55A9FB Compression Method    0000 (0) 'Stored'\n-55A9FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55AA01 CRC                   00000000 (0)\n-55AA05 Compressed Size       00000000 (0)\n-55AA09 Uncompressed Size     00000000 (0)\n-55AA0D Filename Length       0037 (55)\n-55AA0F Extra Length          0009 (9)\n-55AA11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55AA11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55AA48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55AA4A   Length              0005 (5)\n-55AA4C   Flags               01 (1) 'Modification'\n-55AA4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55AA51 PAYLOAD\n-\n-55D8A9 DATA DESCRIPTOR       08074B50 (134695760)\n-55D8AD CRC                   C60919F1 (3322485233)\n-55D8B1 Compressed Size       00002E58 (11864)\n-55D8B5 Uncompressed Size     00002E58 (11864)\n-\n-55D8B9 LOCAL HEADER #1558    04034B50 (67324752)\n-55D8BD Extract Zip Spec      14 (20) '2.0'\n-55D8BE Extract OS            00 (0) 'MS-DOS'\n-55D8BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55D8C1 Compression Method    0000 (0) 'Stored'\n-55D8C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55D8C7 CRC                   00000000 (0)\n-55D8CB Compressed Size       00000000 (0)\n-55D8CF Uncompressed Size     00000000 (0)\n-55D8D3 Filename Length       0036 (54)\n-55D8D5 Extra Length          0009 (9)\n-55D8D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55D8D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55D90D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55D90F   Length              0005 (5)\n-55D911   Flags               01 (1) 'Modification'\n-55D912   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55D916 PAYLOAD\n-\n-55E8AC DATA DESCRIPTOR       08074B50 (134695760)\n-55E8B0 CRC                   C68A09E8 (3330935272)\n-55E8B4 Compressed Size       00000F96 (3990)\n-55E8B8 Uncompressed Size     00000F96 (3990)\n-\n-55E8BC LOCAL HEADER #1559    04034B50 (67324752)\n-55E8C0 Extract Zip Spec      14 (20) '2.0'\n-55E8C1 Extract OS            00 (0) 'MS-DOS'\n-55E8C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55E8C4 Compression Method    0000 (0) 'Stored'\n-55E8C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55E8CA CRC                   00000000 (0)\n-55E8CE Compressed Size       00000000 (0)\n-55E8D2 Uncompressed Size     00000000 (0)\n-55E8D6 Filename Length       0039 (57)\n-55E8D8 Extra Length          0009 (9)\n-55E8DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55E8DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55E913 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55E915   Length              0005 (5)\n-55E917   Flags               01 (1) 'Modification'\n-55E918   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55E91C PAYLOAD\n-\n-55F934 DATA DESCRIPTOR       08074B50 (134695760)\n-55F938 CRC                   AE59B827 (2925115431)\n-55F93C Compressed Size       00001018 (4120)\n-55F940 Uncompressed Size     00001018 (4120)\n-\n-55F944 LOCAL HEADER #1560    04034B50 (67324752)\n-55F948 Extract Zip Spec      14 (20) '2.0'\n-55F949 Extract OS            00 (0) 'MS-DOS'\n-55F94A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-55F94C Compression Method    0000 (0) 'Stored'\n-55F94E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-55F952 CRC                   00000000 (0)\n-55F956 Compressed Size       00000000 (0)\n-55F95A Uncompressed Size     00000000 (0)\n-55F95E Filename Length       0035 (53)\n-55F960 Extra Length          0009 (9)\n-55F962 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x55F962: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-55F997 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-55F999   Length              0005 (5)\n-55F99B   Flags               01 (1) 'Modification'\n-55F99C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-55F9A0 PAYLOAD\n-\n-5609F8 DATA DESCRIPTOR       08074B50 (134695760)\n-5609FC CRC                   C397571B (3281475355)\n-560A00 Compressed Size       00001058 (4184)\n-560A04 Uncompressed Size     00001058 (4184)\n-\n-560A08 LOCAL HEADER #1561    04034B50 (67324752)\n-560A0C Extract Zip Spec      14 (20) '2.0'\n-560A0D Extract OS            00 (0) 'MS-DOS'\n-560A0E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-560A10 Compression Method    0000 (0) 'Stored'\n-560A12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-560A16 CRC                   00000000 (0)\n-560A1A Compressed Size       00000000 (0)\n-560A1E Uncompressed Size     00000000 (0)\n-560A22 Filename Length       0037 (55)\n-560A24 Extra Length          0009 (9)\n-560A26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x560A26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-560A5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-560A5F   Length              0005 (5)\n-560A61   Flags               01 (1) 'Modification'\n-560A62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-560A66 PAYLOAD\n-\n-562669 DATA DESCRIPTOR       08074B50 (134695760)\n-56266D CRC                   F1D2C098 (4057120920)\n-562671 Compressed Size       00001C03 (7171)\n-562675 Uncompressed Size     00001C03 (7171)\n-\n-562679 LOCAL HEADER #1562    04034B50 (67324752)\n-56267D Extract Zip Spec      14 (20) '2.0'\n-56267E Extract OS            00 (0) 'MS-DOS'\n-56267F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-562681 Compression Method    0000 (0) 'Stored'\n-562683 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-562687 CRC                   00000000 (0)\n-56268B Compressed Size       00000000 (0)\n-56268F Uncompressed Size     00000000 (0)\n-562693 Filename Length       0038 (56)\n-562695 Extra Length          0009 (9)\n-562697 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x562697: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5626CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5626D1   Length              0005 (5)\n-5626D3   Flags               01 (1) 'Modification'\n-5626D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5626D8 PAYLOAD\n-\n-563373 DATA DESCRIPTOR       08074B50 (134695760)\n-563377 CRC                   8ED687AA (2396424106)\n-56337B Compressed Size       00000C9B (3227)\n-56337F Uncompressed Size     00000C9B (3227)\n-\n-563383 LOCAL HEADER #1563    04034B50 (67324752)\n-563387 Extract Zip Spec      14 (20) '2.0'\n-563388 Extract OS            00 (0) 'MS-DOS'\n-563389 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56338B Compression Method    0000 (0) 'Stored'\n-56338D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-563391 CRC                   00000000 (0)\n-563395 Compressed Size       00000000 (0)\n-563399 Uncompressed Size     00000000 (0)\n-56339D Filename Length       003E (62)\n-56339F Extra Length          0009 (9)\n-5633A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5633A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5633DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5633E1   Length              0005 (5)\n-5633E3   Flags               01 (1) 'Modification'\n-5633E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5633E8 PAYLOAD\n-\n-563A52 DATA DESCRIPTOR       08074B50 (134695760)\n-563A56 CRC                   3E4334ED (1044591853)\n-563A5A Compressed Size       0000066A (1642)\n-563A5E Uncompressed Size     0000066A (1642)\n-\n-563A62 LOCAL HEADER #1564    04034B50 (67324752)\n-563A66 Extract Zip Spec      14 (20) '2.0'\n-563A67 Extract OS            00 (0) 'MS-DOS'\n-563A68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-563A6A Compression Method    0000 (0) 'Stored'\n-563A6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-563A70 CRC                   00000000 (0)\n-563A74 Compressed Size       00000000 (0)\n-563A78 Uncompressed Size     00000000 (0)\n-563A7C Filename Length       003F (63)\n-563A7E Extra Length          0009 (9)\n-563A80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x563A80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-563ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-563AC1   Length              0005 (5)\n-563AC3   Flags               01 (1) 'Modification'\n-563AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-563AC8 PAYLOAD\n-\n-563EC5 DATA DESCRIPTOR       08074B50 (134695760)\n-563EC9 CRC                   1F076089 (520577161)\n-563ECD Compressed Size       000003FD (1021)\n-563ED1 Uncompressed Size     000003FD (1021)\n-\n-563ED5 LOCAL HEADER #1565    04034B50 (67324752)\n-563ED9 Extract Zip Spec      14 (20) '2.0'\n-563EDA Extract OS            00 (0) 'MS-DOS'\n-563EDB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-563EDD Compression Method    0000 (0) 'Stored'\n-563EDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-563EE3 CRC                   00000000 (0)\n-563EE7 Compressed Size       00000000 (0)\n-563EEB Uncompressed Size     00000000 (0)\n-563EEF Filename Length       0041 (65)\n-563EF1 Extra Length          0009 (9)\n-563EF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x563EF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-563F34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-563F36   Length              0005 (5)\n-563F38   Flags               01 (1) 'Modification'\n-563F39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-563F3D PAYLOAD\n-\n-564EBC DATA DESCRIPTOR       08074B50 (134695760)\n-564EC0 CRC                   63B69239 (1672909369)\n-564EC4 Compressed Size       00000F7F (3967)\n-564EC8 Uncompressed Size     00000F7F (3967)\n-\n-564ECC LOCAL HEADER #1566    04034B50 (67324752)\n-564ED0 Extract Zip Spec      14 (20) '2.0'\n-564ED1 Extract OS            00 (0) 'MS-DOS'\n-564ED2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-564ED4 Compression Method    0000 (0) 'Stored'\n-564ED6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-564EDA CRC                   00000000 (0)\n-564EDE Compressed Size       00000000 (0)\n-564EE2 Uncompressed Size     00000000 (0)\n-564EE6 Filename Length       0037 (55)\n-564EE8 Extra Length          0009 (9)\n-564EEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x564EEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-564F21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-564F23   Length              0005 (5)\n-564F25   Flags               01 (1) 'Modification'\n-564F26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-564F2A PAYLOAD\n-\n-565D18 DATA DESCRIPTOR       08074B50 (134695760)\n-565D1C CRC                   DB6423CF (3680773071)\n-565D20 Compressed Size       00000DEE (3566)\n-565D24 Uncompressed Size     00000DEE (3566)\n-\n-565D28 LOCAL HEADER #1567    04034B50 (67324752)\n-565D2C Extract Zip Spec      14 (20) '2.0'\n-565D2D Extract OS            00 (0) 'MS-DOS'\n-565D2E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-565D30 Compression Method    0000 (0) 'Stored'\n-565D32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-565D36 CRC                   00000000 (0)\n-565D3A Compressed Size       00000000 (0)\n-565D3E Uncompressed Size     00000000 (0)\n-565D42 Filename Length       0035 (53)\n-565D44 Extra Length          0009 (9)\n-565D46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x565D46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-565D7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-565D7D   Length              0005 (5)\n-565D7F   Flags               01 (1) 'Modification'\n-565D80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-565D84 PAYLOAD\n-\n-567B5E DATA DESCRIPTOR       08074B50 (134695760)\n-567B62 CRC                   B4E5D367 (3034960743)\n-567B66 Compressed Size       00001DDA (7642)\n-567B6A Uncompressed Size     00001DDA (7642)\n-\n-567B6E LOCAL HEADER #1568    04034B50 (67324752)\n-567B72 Extract Zip Spec      14 (20) '2.0'\n-567B73 Extract OS            00 (0) 'MS-DOS'\n-567B74 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-567B76 Compression Method    0000 (0) 'Stored'\n-567B78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-567B7C CRC                   00000000 (0)\n-567B80 Compressed Size       00000000 (0)\n-567B84 Uncompressed Size     00000000 (0)\n-567B88 Filename Length       0036 (54)\n-567B8A Extra Length          0009 (9)\n-567B8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x567B8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-567BC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-567BC4   Length              0005 (5)\n-567BC6   Flags               01 (1) 'Modification'\n-567BC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-567BCB PAYLOAD\n-\n-568594 DATA DESCRIPTOR       08074B50 (134695760)\n-568598 CRC                   602945D5 (1613317589)\n-56859C Compressed Size       000009C9 (2505)\n-5685A0 Uncompressed Size     000009C9 (2505)\n-\n-5685A4 LOCAL HEADER #1569    04034B50 (67324752)\n-5685A8 Extract Zip Spec      14 (20) '2.0'\n-5685A9 Extract OS            00 (0) 'MS-DOS'\n-5685AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5685AC Compression Method    0000 (0) 'Stored'\n-5685AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5685B2 CRC                   00000000 (0)\n-5685B6 Compressed Size       00000000 (0)\n-5685BA Uncompressed Size     00000000 (0)\n-5685BE Filename Length       0044 (68)\n-5685C0 Extra Length          0009 (9)\n-5685C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5685C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-568606 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-568608   Length              0005 (5)\n-56860A   Flags               01 (1) 'Modification'\n-56860B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56860F PAYLOAD\n-\n-568A78 DATA DESCRIPTOR       08074B50 (134695760)\n-568A7C CRC                   D9BD9D3A (3653082426)\n-568A80 Compressed Size       00000469 (1129)\n-568A84 Uncompressed Size     00000469 (1129)\n-\n-568A88 LOCAL HEADER #1570    04034B50 (67324752)\n-568A8C Extract Zip Spec      14 (20) '2.0'\n-568A8D Extract OS            00 (0) 'MS-DOS'\n-568A8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-568A90 Compression Method    0000 (0) 'Stored'\n-568A92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-568A96 CRC                   00000000 (0)\n-568A9A Compressed Size       00000000 (0)\n-568A9E Uncompressed Size     00000000 (0)\n-568AA2 Filename Length       003C (60)\n-568AA4 Extra Length          0009 (9)\n-568AA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x568AA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-568AE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-568AE4   Length              0005 (5)\n-568AE6   Flags               01 (1) 'Modification'\n-568AE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-568AEB PAYLOAD\n-\n-5691A0 DATA DESCRIPTOR       08074B50 (134695760)\n-5691A4 CRC                   78792D26 (2021207334)\n-5691A8 Compressed Size       000006B5 (1717)\n-5691AC Uncompressed Size     000006B5 (1717)\n-\n-5691B0 LOCAL HEADER #1571    04034B50 (67324752)\n-5691B4 Extract Zip Spec      14 (20) '2.0'\n-5691B5 Extract OS            00 (0) 'MS-DOS'\n-5691B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5691B8 Compression Method    0000 (0) 'Stored'\n-5691BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5691BE CRC                   00000000 (0)\n-5691C2 Compressed Size       00000000 (0)\n-5691C6 Uncompressed Size     00000000 (0)\n-5691CA Filename Length       0037 (55)\n-5691CC Extra Length          0009 (9)\n-5691CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5691CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-569205 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-569207   Length              0005 (5)\n-569209   Flags               01 (1) 'Modification'\n-56920A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56920E PAYLOAD\n-\n-569E53 DATA DESCRIPTOR       08074B50 (134695760)\n-569E57 CRC                   A9090E7C (2835943036)\n-569E5B Compressed Size       00000C45 (3141)\n-569E5F Uncompressed Size     00000C45 (3141)\n-\n-569E63 LOCAL HEADER #1572    04034B50 (67324752)\n-569E67 Extract Zip Spec      14 (20) '2.0'\n-569E68 Extract OS            00 (0) 'MS-DOS'\n-569E69 General Purpose Flag  0000 (0)\n-569E6B Compression Method    0000 (0) 'Stored'\n-569E6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-569E71 CRC                   00000000 (0)\n-569E75 Compressed Size       00000000 (0)\n-569E79 Uncompressed Size     00000000 (0)\n-569E7D Filename Length       002A (42)\n-569E7F Extra Length          0009 (9)\n-569E81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x569E81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-569EAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-569EAD   Length              0005 (5)\n-569EAF   Flags               01 (1) 'Modification'\n-569EB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-569EB4 LOCAL HEADER #1573    04034B50 (67324752)\n-569EB8 Extract Zip Spec      14 (20) '2.0'\n-569EB9 Extract OS            00 (0) 'MS-DOS'\n-569EBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-569EBC Compression Method    0000 (0) 'Stored'\n-569EBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-569EC2 CRC                   00000000 (0)\n-569EC6 Compressed Size       00000000 (0)\n-569ECA Uncompressed Size     00000000 (0)\n-569ECE Filename Length       003B (59)\n-569ED0 Extra Length          0009 (9)\n-569ED2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x569ED2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-569F0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-569F0F   Length              0005 (5)\n-569F11   Flags               01 (1) 'Modification'\n-569F12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-569F16 PAYLOAD\n-\n-56A861 DATA DESCRIPTOR       08074B50 (134695760)\n-56A865 CRC                   101D85B9 (270370233)\n-56A869 Compressed Size       0000094B (2379)\n-56A86D Uncompressed Size     0000094B (2379)\n-\n-56A871 LOCAL HEADER #1574    04034B50 (67324752)\n-56A875 Extract Zip Spec      14 (20) '2.0'\n-56A876 Extract OS            00 (0) 'MS-DOS'\n-56A877 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56A879 Compression Method    0000 (0) 'Stored'\n-56A87B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56A87F CRC                   00000000 (0)\n-56A883 Compressed Size       00000000 (0)\n-56A887 Uncompressed Size     00000000 (0)\n-56A88B Filename Length       003D (61)\n-56A88D Extra Length          0009 (9)\n-56A88F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56A88F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56A8CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56A8CE   Length              0005 (5)\n-56A8D0   Flags               01 (1) 'Modification'\n-56A8D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56A8D5 PAYLOAD\n-\n-56B633 DATA DESCRIPTOR       08074B50 (134695760)\n-56B637 CRC                   7EE6D15A (2129056090)\n-56B63B Compressed Size       00000D5E (3422)\n-56B63F Uncompressed Size     00000D5E (3422)\n-\n-56B643 LOCAL HEADER #1575    04034B50 (67324752)\n-56B647 Extract Zip Spec      14 (20) '2.0'\n-56B648 Extract OS            00 (0) 'MS-DOS'\n-56B649 General Purpose Flag  0000 (0)\n-56B64B Compression Method    0000 (0) 'Stored'\n-56B64D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56B651 CRC                   00000000 (0)\n-56B655 Compressed Size       00000000 (0)\n-56B659 Uncompressed Size     00000000 (0)\n-56B65D Filename Length       002F (47)\n-56B65F Extra Length          0009 (9)\n-56B661 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56B661: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56B690 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56B692   Length              0005 (5)\n-56B694   Flags               01 (1) 'Modification'\n-56B695   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-56B699 LOCAL HEADER #1576    04034B50 (67324752)\n-56B69D Extract Zip Spec      14 (20) '2.0'\n-56B69E Extract OS            00 (0) 'MS-DOS'\n-56B69F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56B6A1 Compression Method    0000 (0) 'Stored'\n-56B6A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56B6A7 CRC                   00000000 (0)\n-56B6AB Compressed Size       00000000 (0)\n-56B6AF Uncompressed Size     00000000 (0)\n-56B6B3 Filename Length       0048 (72)\n-56B6B5 Extra Length          0009 (9)\n-56B6B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56B6B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56B6FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56B701   Length              0005 (5)\n-56B703   Flags               01 (1) 'Modification'\n-56B704   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56B708 PAYLOAD\n-\n-56C90D DATA DESCRIPTOR       08074B50 (134695760)\n-56C911 CRC                   A053D891 (2689849489)\n-56C915 Compressed Size       00001205 (4613)\n-56C919 Uncompressed Size     00001205 (4613)\n-\n-56C91D LOCAL HEADER #1577    04034B50 (67324752)\n-56C921 Extract Zip Spec      14 (20) '2.0'\n-56C922 Extract OS            00 (0) 'MS-DOS'\n-56C923 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56C925 Compression Method    0000 (0) 'Stored'\n-56C927 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56C92B CRC                   00000000 (0)\n-56C92F Compressed Size       00000000 (0)\n-56C933 Uncompressed Size     00000000 (0)\n-56C937 Filename Length       0043 (67)\n-56C939 Extra Length          0009 (9)\n-56C93B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56C93B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56C97E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56C980   Length              0005 (5)\n-56C982   Flags               01 (1) 'Modification'\n-56C983   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56C987 PAYLOAD\n-\n-56D14A DATA DESCRIPTOR       08074B50 (134695760)\n-56D14E CRC                   F077FE2F (4034395695)\n-56D152 Compressed Size       000007C3 (1987)\n-56D156 Uncompressed Size     000007C3 (1987)\n-\n-56D15A LOCAL HEADER #1578    04034B50 (67324752)\n-56D15E Extract Zip Spec      14 (20) '2.0'\n-56D15F Extract OS            00 (0) 'MS-DOS'\n-56D160 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56D162 Compression Method    0000 (0) 'Stored'\n-56D164 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56D168 CRC                   00000000 (0)\n-56D16C Compressed Size       00000000 (0)\n-56D170 Uncompressed Size     00000000 (0)\n-56D174 Filename Length       0049 (73)\n-56D176 Extra Length          0009 (9)\n-56D178 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56D178: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56D1C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56D1C3   Length              0005 (5)\n-56D1C5   Flags               01 (1) 'Modification'\n-56D1C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56D1CA PAYLOAD\n-\n-56E684 DATA DESCRIPTOR       08074B50 (134695760)\n-56E688 CRC                   F135EAA5 (4046842533)\n-56E68C Compressed Size       000014BA (5306)\n-56E690 Uncompressed Size     000014BA (5306)\n-\n-56E694 LOCAL HEADER #1579    04034B50 (67324752)\n-56E698 Extract Zip Spec      14 (20) '2.0'\n-56E699 Extract OS            00 (0) 'MS-DOS'\n-56E69A General Purpose Flag  0000 (0)\n-56E69C Compression Method    0000 (0) 'Stored'\n-56E69E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56E6A2 CRC                   00000000 (0)\n-56E6A6 Compressed Size       00000000 (0)\n-56E6AA Uncompressed Size     00000000 (0)\n-56E6AE Filename Length       0033 (51)\n-56E6B0 Extra Length          0009 (9)\n-56E6B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56E6B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56E6E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56E6E7   Length              0005 (5)\n-56E6E9   Flags               01 (1) 'Modification'\n-56E6EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-56E6EE LOCAL HEADER #1580    04034B50 (67324752)\n-56E6F2 Extract Zip Spec      14 (20) '2.0'\n-56E6F3 Extract OS            00 (0) 'MS-DOS'\n-56E6F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56E6F6 Compression Method    0000 (0) 'Stored'\n-56E6F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56E6FC CRC                   00000000 (0)\n-56E700 Compressed Size       00000000 (0)\n-56E704 Uncompressed Size     00000000 (0)\n-56E708 Filename Length       0049 (73)\n-56E70A Extra Length          0009 (9)\n-56E70C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56E70C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56E755 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56E757   Length              0005 (5)\n-56E759   Flags               01 (1) 'Modification'\n-56E75A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56E75E PAYLOAD\n-\n-56F576 DATA DESCRIPTOR       08074B50 (134695760)\n-56F57A CRC                   32EFA1AA (854565290)\n-56F57E Compressed Size       00000E18 (3608)\n-56F582 Uncompressed Size     00000E18 (3608)\n-\n-56F586 LOCAL HEADER #1581    04034B50 (67324752)\n-56F58A Extract Zip Spec      14 (20) '2.0'\n-56F58B Extract OS            00 (0) 'MS-DOS'\n-56F58C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56F58E Compression Method    0000 (0) 'Stored'\n-56F590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56F594 CRC                   00000000 (0)\n-56F598 Compressed Size       00000000 (0)\n-56F59C Uncompressed Size     00000000 (0)\n-56F5A0 Filename Length       0045 (69)\n-56F5A2 Extra Length          0009 (9)\n-56F5A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56F5A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56F5E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56F5EB   Length              0005 (5)\n-56F5ED   Flags               01 (1) 'Modification'\n-56F5EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56F5F2 PAYLOAD\n-\n-56FB13 DATA DESCRIPTOR       08074B50 (134695760)\n-56FB17 CRC                   40313D69 (1076968809)\n-56FB1B Compressed Size       00000521 (1313)\n-56FB1F Uncompressed Size     00000521 (1313)\n-\n-56FB23 LOCAL HEADER #1582    04034B50 (67324752)\n-56FB27 Extract Zip Spec      14 (20) '2.0'\n-56FB28 Extract OS            00 (0) 'MS-DOS'\n-56FB29 General Purpose Flag  0000 (0)\n-56FB2B Compression Method    0000 (0) 'Stored'\n-56FB2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56FB31 CRC                   00000000 (0)\n-56FB35 Compressed Size       00000000 (0)\n-56FB39 Uncompressed Size     00000000 (0)\n-56FB3D Filename Length       003A (58)\n-56FB3F Extra Length          0009 (9)\n-56FB41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56FB41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56FB7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56FB7D   Length              0005 (5)\n-56FB7F   Flags               01 (1) 'Modification'\n-56FB80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-56FB84 LOCAL HEADER #1583    04034B50 (67324752)\n-56FB88 Extract Zip Spec      14 (20) '2.0'\n-56FB89 Extract OS            00 (0) 'MS-DOS'\n-56FB8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-56FB8C Compression Method    0000 (0) 'Stored'\n-56FB8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-56FB92 CRC                   00000000 (0)\n-56FB96 Compressed Size       00000000 (0)\n-56FB9A Uncompressed Size     00000000 (0)\n-56FB9E Filename Length       005E (94)\n-56FBA0 Extra Length          0009 (9)\n-56FBA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x56FBA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-56FC00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-56FC02   Length              0005 (5)\n-56FC04   Flags               01 (1) 'Modification'\n-56FC05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-56FC09 PAYLOAD\n-\n-5710DA DATA DESCRIPTOR       08074B50 (134695760)\n-5710DE CRC                   956AD47E (2506806398)\n-5710E2 Compressed Size       000014D1 (5329)\n-5710E6 Uncompressed Size     000014D1 (5329)\n-\n-5710EA LOCAL HEADER #1584    04034B50 (67324752)\n-5710EE Extract Zip Spec      14 (20) '2.0'\n-5710EF Extract OS            00 (0) 'MS-DOS'\n-5710F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5710F2 Compression Method    0000 (0) 'Stored'\n-5710F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5710F8 CRC                   00000000 (0)\n-5710FC Compressed Size       00000000 (0)\n-571100 Uncompressed Size     00000000 (0)\n-571104 Filename Length       005A (90)\n-571106 Extra Length          0009 (9)\n-571108 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x571108: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-571162 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-571164   Length              0005 (5)\n-571166   Flags               01 (1) 'Modification'\n-571167   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57116B PAYLOAD\n-\n-5716BC DATA DESCRIPTOR       08074B50 (134695760)\n-5716C0 CRC                   5474BB92 (1416936338)\n-5716C4 Compressed Size       00000551 (1361)\n-5716C8 Uncompressed Size     00000551 (1361)\n-\n-5716CC LOCAL HEADER #1585    04034B50 (67324752)\n-5716D0 Extract Zip Spec      14 (20) '2.0'\n-5716D1 Extract OS            00 (0) 'MS-DOS'\n-5716D2 General Purpose Flag  0000 (0)\n-5716D4 Compression Method    0000 (0) 'Stored'\n-5716D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5716DA CRC                   00000000 (0)\n-5716DE Compressed Size       00000000 (0)\n-5716E2 Uncompressed Size     00000000 (0)\n-5716E6 Filename Length       0036 (54)\n-5716E8 Extra Length          0009 (9)\n-5716EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5716EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-571720 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-571722   Length              0005 (5)\n-571724   Flags               01 (1) 'Modification'\n-571725   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-571729 LOCAL HEADER #1586    04034B50 (67324752)\n-57172D Extract Zip Spec      14 (20) '2.0'\n-57172E Extract OS            00 (0) 'MS-DOS'\n-57172F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-571731 Compression Method    0000 (0) 'Stored'\n-571733 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-571737 CRC                   00000000 (0)\n-57173B Compressed Size       00000000 (0)\n-57173F Uncompressed Size     00000000 (0)\n-571743 Filename Length       004F (79)\n-571745 Extra Length          0009 (9)\n-571747 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x571747: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-571796 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-571798   Length              0005 (5)\n-57179A   Flags               01 (1) 'Modification'\n-57179B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57179F PAYLOAD\n-\n-572052 DATA DESCRIPTOR       08074B50 (134695760)\n-572056 CRC                   F2C441AD (4072948141)\n-57205A Compressed Size       000008B3 (2227)\n-57205E Uncompressed Size     000008B3 (2227)\n-\n-572062 LOCAL HEADER #1587    04034B50 (67324752)\n-572066 Extract Zip Spec      14 (20) '2.0'\n-572067 Extract OS            00 (0) 'MS-DOS'\n-572068 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57206A Compression Method    0000 (0) 'Stored'\n-57206C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-572070 CRC                   00000000 (0)\n-572074 Compressed Size       00000000 (0)\n-572078 Uncompressed Size     00000000 (0)\n-57207C Filename Length       004B (75)\n-57207E Extra Length          0009 (9)\n-572080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x572080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5720CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5720CD   Length              0005 (5)\n-5720CF   Flags               01 (1) 'Modification'\n-5720D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5720D4 PAYLOAD\n-\n-5725D2 DATA DESCRIPTOR       08074B50 (134695760)\n-5725D6 CRC                   E0C2D2A3 (3770864291)\n-5725DA Compressed Size       000004FE (1278)\n-5725DE Uncompressed Size     000004FE (1278)\n-\n-5725E2 LOCAL HEADER #1588    04034B50 (67324752)\n-5725E6 Extract Zip Spec      14 (20) '2.0'\n-5725E7 Extract OS            00 (0) 'MS-DOS'\n-5725E8 General Purpose Flag  0000 (0)\n-5725EA Compression Method    0000 (0) 'Stored'\n-5725EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5725F0 CRC                   00000000 (0)\n-5725F4 Compressed Size       00000000 (0)\n-5725F8 Uncompressed Size     00000000 (0)\n-5725FC Filename Length       0039 (57)\n-5725FE Extra Length          0009 (9)\n-572600 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x572600: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-572639 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57263B   Length              0005 (5)\n-57263D   Flags               01 (1) 'Modification'\n-57263E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-572642 LOCAL HEADER #1589    04034B50 (67324752)\n-572646 Extract Zip Spec      14 (20) '2.0'\n-572647 Extract OS            00 (0) 'MS-DOS'\n-572648 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57264A Compression Method    0000 (0) 'Stored'\n-57264C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-572650 CRC                   00000000 (0)\n-572654 Compressed Size       00000000 (0)\n-572658 Uncompressed Size     00000000 (0)\n-57265C Filename Length       0055 (85)\n-57265E Extra Length          0009 (9)\n-572660 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x572660: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5726B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5726B7   Length              0005 (5)\n-5726B9   Flags               01 (1) 'Modification'\n-5726BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5726BE PAYLOAD\n-\n-573309 DATA DESCRIPTOR       08074B50 (134695760)\n-57330D CRC                   9D8FBCBD (2643442877)\n-573311 Compressed Size       00000C4B (3147)\n-573315 Uncompressed Size     00000C4B (3147)\n-\n-573319 LOCAL HEADER #1590    04034B50 (67324752)\n-57331D Extract Zip Spec      14 (20) '2.0'\n-57331E Extract OS            00 (0) 'MS-DOS'\n-57331F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-573321 Compression Method    0000 (0) 'Stored'\n-573323 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-573327 CRC                   00000000 (0)\n-57332B Compressed Size       00000000 (0)\n-57332F Uncompressed Size     00000000 (0)\n-573333 Filename Length       0051 (81)\n-573335 Extra Length          0009 (9)\n-573337 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x573337: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-573388 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57338A   Length              0005 (5)\n-57338C   Flags               01 (1) 'Modification'\n-57338D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-573391 PAYLOAD\n-\n-5738E6 DATA DESCRIPTOR       08074B50 (134695760)\n-5738EA CRC                   DF933BA4 (3750968228)\n-5738EE Compressed Size       00000555 (1365)\n-5738F2 Uncompressed Size     00000555 (1365)\n-\n-5738F6 LOCAL HEADER #1591    04034B50 (67324752)\n-5738FA Extract Zip Spec      14 (20) '2.0'\n-5738FB Extract OS            00 (0) 'MS-DOS'\n-5738FC General Purpose Flag  0000 (0)\n-5738FE Compression Method    0000 (0) 'Stored'\n-573900 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-573904 CRC                   00000000 (0)\n-573908 Compressed Size       00000000 (0)\n-57390C Uncompressed Size     00000000 (0)\n-573910 Filename Length       0037 (55)\n-573912 Extra Length          0009 (9)\n-573914 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x573914: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57394B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57394D   Length              0005 (5)\n-57394F   Flags               01 (1) 'Modification'\n-573950   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-573954 LOCAL HEADER #1592    04034B50 (67324752)\n-573958 Extract Zip Spec      14 (20) '2.0'\n-573959 Extract OS            00 (0) 'MS-DOS'\n-57395A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57395C Compression Method    0000 (0) 'Stored'\n-57395E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-573962 CRC                   00000000 (0)\n-573966 Compressed Size       00000000 (0)\n-57396A Uncompressed Size     00000000 (0)\n-57396E Filename Length       0055 (85)\n-573970 Extra Length          0009 (9)\n-573972 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x573972: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5739C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5739C9   Length              0005 (5)\n-5739CB   Flags               01 (1) 'Modification'\n-5739CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5739D0 PAYLOAD\n-\n-5742E0 DATA DESCRIPTOR       08074B50 (134695760)\n-5742E4 CRC                   5CADB8BA (1554888890)\n-5742E8 Compressed Size       00000910 (2320)\n-5742EC Uncompressed Size     00000910 (2320)\n-\n-5742F0 LOCAL HEADER #1593    04034B50 (67324752)\n-5742F4 Extract Zip Spec      14 (20) '2.0'\n-5742F5 Extract OS            00 (0) 'MS-DOS'\n-5742F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5742F8 Compression Method    0000 (0) 'Stored'\n-5742FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5742FE CRC                   00000000 (0)\n-574302 Compressed Size       00000000 (0)\n-574306 Uncompressed Size     00000000 (0)\n-57430A Filename Length       0051 (81)\n-57430C Extra Length          0009 (9)\n-57430E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57430E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57435F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-574361   Length              0005 (5)\n-574363   Flags               01 (1) 'Modification'\n-574364   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-574368 PAYLOAD\n-\n-5748AE DATA DESCRIPTOR       08074B50 (134695760)\n-5748B2 CRC                   897FB906 (2306849030)\n-5748B6 Compressed Size       00000546 (1350)\n-5748BA Uncompressed Size     00000546 (1350)\n-\n-5748BE LOCAL HEADER #1594    04034B50 (67324752)\n-5748C2 Extract Zip Spec      14 (20) '2.0'\n-5748C3 Extract OS            00 (0) 'MS-DOS'\n-5748C4 General Purpose Flag  0000 (0)\n-5748C6 Compression Method    0000 (0) 'Stored'\n-5748C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5748CC CRC                   00000000 (0)\n-5748D0 Compressed Size       00000000 (0)\n-5748D4 Uncompressed Size     00000000 (0)\n-5748D8 Filename Length       002C (44)\n-5748DA Extra Length          0009 (9)\n-5748DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5748DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-574908 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57490A   Length              0005 (5)\n-57490C   Flags               01 (1) 'Modification'\n-57490D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-574911 LOCAL HEADER #1595    04034B50 (67324752)\n-574915 Extract Zip Spec      14 (20) '2.0'\n-574916 Extract OS            00 (0) 'MS-DOS'\n-574917 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-574919 Compression Method    0000 (0) 'Stored'\n-57491B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57491F CRC                   00000000 (0)\n-574923 Compressed Size       00000000 (0)\n-574927 Uncompressed Size     00000000 (0)\n-57492B Filename Length       003F (63)\n-57492D Extra Length          0009 (9)\n-57492F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57492F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57496E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-574970   Length              0005 (5)\n-574972   Flags               01 (1) 'Modification'\n-574973   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-574977 PAYLOAD\n-\n-5762F6 DATA DESCRIPTOR       08074B50 (134695760)\n-5762FA CRC                   56951E3F (1452613183)\n-5762FE Compressed Size       0000197F (6527)\n-576302 Uncompressed Size     0000197F (6527)\n-\n-576306 LOCAL HEADER #1596    04034B50 (67324752)\n-57630A Extract Zip Spec      14 (20) '2.0'\n-57630B Extract OS            00 (0) 'MS-DOS'\n-57630C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57630E Compression Method    0000 (0) 'Stored'\n-576310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-576314 CRC                   00000000 (0)\n-576318 Compressed Size       00000000 (0)\n-57631C Uncompressed Size     00000000 (0)\n-576320 Filename Length       003E (62)\n-576322 Extra Length          0009 (9)\n-576324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x576324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-576362 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-576364   Length              0005 (5)\n-576366   Flags               01 (1) 'Modification'\n-576367   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57636B PAYLOAD\n-\n-577431 DATA DESCRIPTOR       08074B50 (134695760)\n-577435 CRC                   42023036 (1107439670)\n-577439 Compressed Size       000010C6 (4294)\n-57743D Uncompressed Size     000010C6 (4294)\n-\n-577441 LOCAL HEADER #1597    04034B50 (67324752)\n-577445 Extract Zip Spec      14 (20) '2.0'\n-577446 Extract OS            00 (0) 'MS-DOS'\n-577447 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-577449 Compression Method    0000 (0) 'Stored'\n-57744B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57744F CRC                   00000000 (0)\n-577453 Compressed Size       00000000 (0)\n-577457 Uncompressed Size     00000000 (0)\n-57745B Filename Length       0044 (68)\n-57745D Extra Length          0009 (9)\n-57745F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57745F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5774A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5774A5   Length              0005 (5)\n-5774A7   Flags               01 (1) 'Modification'\n-5774A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5774AC PAYLOAD\n-\n-578BFC DATA DESCRIPTOR       08074B50 (134695760)\n-578C00 CRC                   4DD0FDAC (1305542060)\n-578C04 Compressed Size       00001750 (5968)\n-578C08 Uncompressed Size     00001750 (5968)\n-\n-578C0C LOCAL HEADER #1598    04034B50 (67324752)\n-578C10 Extract Zip Spec      14 (20) '2.0'\n-578C11 Extract OS            00 (0) 'MS-DOS'\n-578C12 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-578C14 Compression Method    0000 (0) 'Stored'\n-578C16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-578C1A CRC                   00000000 (0)\n-578C1E Compressed Size       00000000 (0)\n-578C22 Uncompressed Size     00000000 (0)\n-578C26 Filename Length       003F (63)\n-578C28 Extra Length          0009 (9)\n-578C2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x578C2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-578C69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-578C6B   Length              0005 (5)\n-578C6D   Flags               01 (1) 'Modification'\n-578C6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-578C72 PAYLOAD\n-\n-579E3C DATA DESCRIPTOR       08074B50 (134695760)\n-579E40 CRC                   EC29A626 (3962152486)\n-579E44 Compressed Size       000011CA (4554)\n-579E48 Uncompressed Size     000011CA (4554)\n-\n-579E4C LOCAL HEADER #1599    04034B50 (67324752)\n-579E50 Extract Zip Spec      14 (20) '2.0'\n-579E51 Extract OS            00 (0) 'MS-DOS'\n-579E52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-579E54 Compression Method    0000 (0) 'Stored'\n-579E56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-579E5A CRC                   00000000 (0)\n-579E5E Compressed Size       00000000 (0)\n-579E62 Uncompressed Size     00000000 (0)\n-579E66 Filename Length       003E (62)\n-579E68 Extra Length          0009 (9)\n-579E6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x579E6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-579EA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-579EAA   Length              0005 (5)\n-579EAC   Flags               01 (1) 'Modification'\n-579EAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-579EB1 PAYLOAD\n-\n-57B354 DATA DESCRIPTOR       08074B50 (134695760)\n-57B358 CRC                   253B482C (624642092)\n-57B35C Compressed Size       000014A3 (5283)\n-57B360 Uncompressed Size     000014A3 (5283)\n-\n-57B364 LOCAL HEADER #1600    04034B50 (67324752)\n-57B368 Extract Zip Spec      14 (20) '2.0'\n-57B369 Extract OS            00 (0) 'MS-DOS'\n-57B36A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57B36C Compression Method    0000 (0) 'Stored'\n-57B36E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57B372 CRC                   00000000 (0)\n-57B376 Compressed Size       00000000 (0)\n-57B37A Uncompressed Size     00000000 (0)\n-57B37E Filename Length       0043 (67)\n-57B380 Extra Length          0009 (9)\n-57B382 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57B382: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57B3C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57B3C7   Length              0005 (5)\n-57B3C9   Flags               01 (1) 'Modification'\n-57B3CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57B3CE PAYLOAD\n-\n-57BA2A DATA DESCRIPTOR       08074B50 (134695760)\n-57BA2E CRC                   117073F8 (292582392)\n-57BA32 Compressed Size       0000065C (1628)\n-57BA36 Uncompressed Size     0000065C (1628)\n-\n-57BA3A LOCAL HEADER #1601    04034B50 (67324752)\n-57BA3E Extract Zip Spec      14 (20) '2.0'\n-57BA3F Extract OS            00 (0) 'MS-DOS'\n-57BA40 General Purpose Flag  0000 (0)\n-57BA42 Compression Method    0000 (0) 'Stored'\n-57BA44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57BA48 CRC                   00000000 (0)\n-57BA4C Compressed Size       00000000 (0)\n-57BA50 Uncompressed Size     00000000 (0)\n-57BA54 Filename Length       0029 (41)\n-57BA56 Extra Length          0009 (9)\n-57BA58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57BA58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57BA81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57BA83   Length              0005 (5)\n-57BA85   Flags               01 (1) 'Modification'\n-57BA86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-57BA8A LOCAL HEADER #1602    04034B50 (67324752)\n-57BA8E Extract Zip Spec      14 (20) '2.0'\n-57BA8F Extract OS            00 (0) 'MS-DOS'\n-57BA90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57BA92 Compression Method    0000 (0) 'Stored'\n-57BA94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57BA98 CRC                   00000000 (0)\n-57BA9C Compressed Size       00000000 (0)\n-57BAA0 Uncompressed Size     00000000 (0)\n-57BAA4 Filename Length       0039 (57)\n-57BAA6 Extra Length          0009 (9)\n-57BAA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57BAA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57BAE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57BAE3   Length              0005 (5)\n-57BAE5   Flags               01 (1) 'Modification'\n-57BAE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57BAEA PAYLOAD\n-\n-57D1DE DATA DESCRIPTOR       08074B50 (134695760)\n-57D1E2 CRC                   3D7F2712 (1031743250)\n-57D1E6 Compressed Size       000016F4 (5876)\n-57D1EA Uncompressed Size     000016F4 (5876)\n-\n-57D1EE LOCAL HEADER #1603    04034B50 (67324752)\n-57D1F2 Extract Zip Spec      14 (20) '2.0'\n-57D1F3 Extract OS            00 (0) 'MS-DOS'\n-57D1F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57D1F6 Compression Method    0000 (0) 'Stored'\n-57D1F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57D1FC CRC                   00000000 (0)\n-57D200 Compressed Size       00000000 (0)\n-57D204 Uncompressed Size     00000000 (0)\n-57D208 Filename Length       0038 (56)\n-57D20A Extra Length          0009 (9)\n-57D20C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57D20C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57D244 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57D246   Length              0005 (5)\n-57D248   Flags               01 (1) 'Modification'\n-57D249   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57D24D PAYLOAD\n-\n-57EF37 DATA DESCRIPTOR       08074B50 (134695760)\n-57EF3B CRC                   1A88D275 (445174389)\n-57EF3F Compressed Size       00001CEA (7402)\n-57EF43 Uncompressed Size     00001CEA (7402)\n-\n-57EF47 LOCAL HEADER #1604    04034B50 (67324752)\n-57EF4B Extract Zip Spec      14 (20) '2.0'\n-57EF4C Extract OS            00 (0) 'MS-DOS'\n-57EF4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-57EF4F Compression Method    0000 (0) 'Stored'\n-57EF51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-57EF55 CRC                   00000000 (0)\n-57EF59 Compressed Size       00000000 (0)\n-57EF5D Uncompressed Size     00000000 (0)\n-57EF61 Filename Length       003E (62)\n-57EF63 Extra Length          0009 (9)\n-57EF65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x57EF65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-57EFA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-57EFA5   Length              0005 (5)\n-57EFA7   Flags               01 (1) 'Modification'\n-57EFA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-57EFAC PAYLOAD\n-\n-580783 DATA DESCRIPTOR       08074B50 (134695760)\n-580787 CRC                   72A94157 (1923694935)\n-58078B Compressed Size       000017D7 (6103)\n-58078F Uncompressed Size     000017D7 (6103)\n-\n-580793 LOCAL HEADER #1605    04034B50 (67324752)\n-580797 Extract Zip Spec      14 (20) '2.0'\n-580798 Extract OS            00 (0) 'MS-DOS'\n-580799 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58079B Compression Method    0000 (0) 'Stored'\n-58079D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5807A1 CRC                   00000000 (0)\n-5807A5 Compressed Size       00000000 (0)\n-5807A9 Uncompressed Size     00000000 (0)\n-5807AD Filename Length       0039 (57)\n-5807AF Extra Length          0009 (9)\n-5807B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5807B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5807EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5807EC   Length              0005 (5)\n-5807EE   Flags               01 (1) 'Modification'\n-5807EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5807F3 PAYLOAD\n-\n-5814AA DATA DESCRIPTOR       08074B50 (134695760)\n-5814AE CRC                   B2448F97 (2990837655)\n-5814B2 Compressed Size       00000CB7 (3255)\n-5814B6 Uncompressed Size     00000CB7 (3255)\n-\n-5814BA LOCAL HEADER #1606    04034B50 (67324752)\n-5814BE Extract Zip Spec      14 (20) '2.0'\n-5814BF Extract OS            00 (0) 'MS-DOS'\n-5814C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5814C2 Compression Method    0000 (0) 'Stored'\n-5814C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5814C8 CRC                   00000000 (0)\n-5814CC Compressed Size       00000000 (0)\n-5814D0 Uncompressed Size     00000000 (0)\n-5814D4 Filename Length       0038 (56)\n-5814D6 Extra Length          0009 (9)\n-5814D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5814D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-581510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-581512   Length              0005 (5)\n-581514   Flags               01 (1) 'Modification'\n-581515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-581519 PAYLOAD\n-\n-582596 DATA DESCRIPTOR       08074B50 (134695760)\n-58259A CRC                   3C17A7B5 (1008183221)\n-58259E Compressed Size       0000107D (4221)\n-5825A2 Uncompressed Size     0000107D (4221)\n-\n-5825A6 LOCAL HEADER #1607    04034B50 (67324752)\n-5825AA Extract Zip Spec      14 (20) '2.0'\n-5825AB Extract OS            00 (0) 'MS-DOS'\n-5825AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5825AE Compression Method    0000 (0) 'Stored'\n-5825B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5825B4 CRC                   00000000 (0)\n-5825B8 Compressed Size       00000000 (0)\n-5825BC Uncompressed Size     00000000 (0)\n-5825C0 Filename Length       003D (61)\n-5825C2 Extra Length          0009 (9)\n-5825C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5825C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-582601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-582603   Length              0005 (5)\n-582605   Flags               01 (1) 'Modification'\n-582606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58260A PAYLOAD\n-\n-582C36 DATA DESCRIPTOR       08074B50 (134695760)\n-582C3A CRC                   242C94A2 (606901410)\n-582C3E Compressed Size       0000062C (1580)\n-582C42 Uncompressed Size     0000062C (1580)\n-\n-582C46 LOCAL HEADER #1608    04034B50 (67324752)\n-582C4A Extract Zip Spec      14 (20) '2.0'\n-582C4B Extract OS            00 (0) 'MS-DOS'\n-582C4C General Purpose Flag  0000 (0)\n-582C4E Compression Method    0000 (0) 'Stored'\n-582C50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-582C54 CRC                   00000000 (0)\n-582C58 Compressed Size       00000000 (0)\n-582C5C Uncompressed Size     00000000 (0)\n-582C60 Filename Length       002A (42)\n-582C62 Extra Length          0009 (9)\n-582C64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x582C64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-582C8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-582C90   Length              0005 (5)\n-582C92   Flags               01 (1) 'Modification'\n-582C93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-582C97 LOCAL HEADER #1609    04034B50 (67324752)\n-582C9B Extract Zip Spec      14 (20) '2.0'\n-582C9C Extract OS            00 (0) 'MS-DOS'\n-582C9D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-582C9F Compression Method    0000 (0) 'Stored'\n-582CA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-582CA5 CRC                   00000000 (0)\n-582CA9 Compressed Size       00000000 (0)\n-582CAD Uncompressed Size     00000000 (0)\n-582CB1 Filename Length       0047 (71)\n-582CB3 Extra Length          0009 (9)\n-582CB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x582CB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-582CFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-582CFE   Length              0005 (5)\n-582D00   Flags               01 (1) 'Modification'\n-582D01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-582D05 PAYLOAD\n-\n-585581 DATA DESCRIPTOR       08074B50 (134695760)\n-585585 CRC                   9FEC08A1 (2683046049)\n-585589 Compressed Size       0000287C (10364)\n-58558D Uncompressed Size     0000287C (10364)\n-\n-585591 LOCAL HEADER #1610    04034B50 (67324752)\n-585595 Extract Zip Spec      14 (20) '2.0'\n-585596 Extract OS            00 (0) 'MS-DOS'\n-585597 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-585599 Compression Method    0000 (0) 'Stored'\n-58559B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58559F CRC                   00000000 (0)\n-5855A3 Compressed Size       00000000 (0)\n-5855A7 Uncompressed Size     00000000 (0)\n-5855AB Filename Length       004E (78)\n-5855AD Extra Length          0009 (9)\n-5855AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5855AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5855FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5855FF   Length              0005 (5)\n-585601   Flags               01 (1) 'Modification'\n-585602   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-585606 PAYLOAD\n-\n-585E01 DATA DESCRIPTOR       08074B50 (134695760)\n-585E05 CRC                   399B609C (966484124)\n-585E09 Compressed Size       000007FB (2043)\n-585E0D Uncompressed Size     000007FB (2043)\n-\n-585E11 LOCAL HEADER #1611    04034B50 (67324752)\n-585E15 Extract Zip Spec      14 (20) '2.0'\n-585E16 Extract OS            00 (0) 'MS-DOS'\n-585E17 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-585E19 Compression Method    0000 (0) 'Stored'\n-585E1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-585E1F CRC                   00000000 (0)\n-585E23 Compressed Size       00000000 (0)\n-585E27 Uncompressed Size     00000000 (0)\n-585E2B Filename Length       003B (59)\n-585E2D Extra Length          0009 (9)\n-585E2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x585E2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-585E6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-585E6C   Length              0005 (5)\n-585E6E   Flags               01 (1) 'Modification'\n-585E6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-585E73 PAYLOAD\n-\n-587939 DATA DESCRIPTOR       08074B50 (134695760)\n-58793D CRC                   9ADB27A7 (2598053799)\n-587941 Compressed Size       00001AC6 (6854)\n-587945 Uncompressed Size     00001AC6 (6854)\n-\n-587949 LOCAL HEADER #1612    04034B50 (67324752)\n-58794D Extract Zip Spec      14 (20) '2.0'\n-58794E Extract OS            00 (0) 'MS-DOS'\n-58794F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-587951 Compression Method    0000 (0) 'Stored'\n-587953 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-587957 CRC                   00000000 (0)\n-58795B Compressed Size       00000000 (0)\n-58795F Uncompressed Size     00000000 (0)\n-587963 Filename Length       003A (58)\n-587965 Extra Length          0009 (9)\n-587967 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x587967: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5879A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5879A3   Length              0005 (5)\n-5879A5   Flags               01 (1) 'Modification'\n-5879A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5879AA PAYLOAD\n-\n-589686 DATA DESCRIPTOR       08074B50 (134695760)\n-58968A CRC                   79FA59C0 (2046450112)\n-58968E Compressed Size       00001CDC (7388)\n-589692 Uncompressed Size     00001CDC (7388)\n-\n-589696 LOCAL HEADER #1613    04034B50 (67324752)\n-58969A Extract Zip Spec      14 (20) '2.0'\n-58969B Extract OS            00 (0) 'MS-DOS'\n-58969C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58969E Compression Method    0000 (0) 'Stored'\n-5896A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5896A4 CRC                   00000000 (0)\n-5896A8 Compressed Size       00000000 (0)\n-5896AC Uncompressed Size     00000000 (0)\n-5896B0 Filename Length       0040 (64)\n-5896B2 Extra Length          0009 (9)\n-5896B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5896B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5896F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5896F6   Length              0005 (5)\n-5896F8   Flags               01 (1) 'Modification'\n-5896F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5896FD PAYLOAD\n-\n-58B177 DATA DESCRIPTOR       08074B50 (134695760)\n-58B17B CRC                   0C148F63 (202674019)\n-58B17F Compressed Size       00001A7A (6778)\n-58B183 Uncompressed Size     00001A7A (6778)\n-\n-58B187 LOCAL HEADER #1614    04034B50 (67324752)\n-58B18B Extract Zip Spec      14 (20) '2.0'\n-58B18C Extract OS            00 (0) 'MS-DOS'\n-58B18D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58B18F Compression Method    0000 (0) 'Stored'\n-58B191 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58B195 CRC                   00000000 (0)\n-58B199 Compressed Size       00000000 (0)\n-58B19D Uncompressed Size     00000000 (0)\n-58B1A1 Filename Length       003B (59)\n-58B1A3 Extra Length          0009 (9)\n-58B1A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58B1A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58B1E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58B1E2   Length              0005 (5)\n-58B1E4   Flags               01 (1) 'Modification'\n-58B1E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58B1E9 PAYLOAD\n-\n-58C502 DATA DESCRIPTOR       08074B50 (134695760)\n-58C506 CRC                   C0DCFA8D (3235707533)\n-58C50A Compressed Size       00001319 (4889)\n-58C50E Uncompressed Size     00001319 (4889)\n-\n-58C512 LOCAL HEADER #1615    04034B50 (67324752)\n-58C516 Extract Zip Spec      14 (20) '2.0'\n-58C517 Extract OS            00 (0) 'MS-DOS'\n-58C518 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58C51A Compression Method    0000 (0) 'Stored'\n-58C51C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58C520 CRC                   00000000 (0)\n-58C524 Compressed Size       00000000 (0)\n-58C528 Uncompressed Size     00000000 (0)\n-58C52C Filename Length       003A (58)\n-58C52E Extra Length          0009 (9)\n-58C530 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58C530: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58C56A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58C56C   Length              0005 (5)\n-58C56E   Flags               01 (1) 'Modification'\n-58C56F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58C573 PAYLOAD\n-\n-58D244 DATA DESCRIPTOR       08074B50 (134695760)\n-58D248 CRC                   4C151237 (1276449335)\n-58D24C Compressed Size       00000CD1 (3281)\n-58D250 Uncompressed Size     00000CD1 (3281)\n-\n-58D254 LOCAL HEADER #1616    04034B50 (67324752)\n-58D258 Extract Zip Spec      14 (20) '2.0'\n-58D259 Extract OS            00 (0) 'MS-DOS'\n-58D25A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58D25C Compression Method    0000 (0) 'Stored'\n-58D25E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58D262 CRC                   00000000 (0)\n-58D266 Compressed Size       00000000 (0)\n-58D26A Uncompressed Size     00000000 (0)\n-58D26E Filename Length       003A (58)\n-58D270 Extra Length          0009 (9)\n-58D272 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58D272: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58D2AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58D2AE   Length              0005 (5)\n-58D2B0   Flags               01 (1) 'Modification'\n-58D2B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58D2B5 PAYLOAD\n-\n-58ED1E DATA DESCRIPTOR       08074B50 (134695760)\n-58ED22 CRC                   E768197F (3882359167)\n-58ED26 Compressed Size       00001A69 (6761)\n-58ED2A Uncompressed Size     00001A69 (6761)\n-\n-58ED2E LOCAL HEADER #1617    04034B50 (67324752)\n-58ED32 Extract Zip Spec      14 (20) '2.0'\n-58ED33 Extract OS            00 (0) 'MS-DOS'\n-58ED34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58ED36 Compression Method    0000 (0) 'Stored'\n-58ED38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58ED3C CRC                   00000000 (0)\n-58ED40 Compressed Size       00000000 (0)\n-58ED44 Uncompressed Size     00000000 (0)\n-58ED48 Filename Length       003F (63)\n-58ED4A Extra Length          0009 (9)\n-58ED4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58ED4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58ED8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58ED8D   Length              0005 (5)\n-58ED8F   Flags               01 (1) 'Modification'\n-58ED90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58ED94 PAYLOAD\n-\n-58F3C6 DATA DESCRIPTOR       08074B50 (134695760)\n-58F3CA CRC                   010536C2 (17118914)\n-58F3CE Compressed Size       00000632 (1586)\n-58F3D2 Uncompressed Size     00000632 (1586)\n-\n-58F3D6 LOCAL HEADER #1618    04034B50 (67324752)\n-58F3DA Extract Zip Spec      14 (20) '2.0'\n-58F3DB Extract OS            00 (0) 'MS-DOS'\n-58F3DC General Purpose Flag  0000 (0)\n-58F3DE Compression Method    0000 (0) 'Stored'\n-58F3E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58F3E4 CRC                   00000000 (0)\n-58F3E8 Compressed Size       00000000 (0)\n-58F3EC Uncompressed Size     00000000 (0)\n-58F3F0 Filename Length       002B (43)\n-58F3F2 Extra Length          0009 (9)\n-58F3F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58F3F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58F41F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58F421   Length              0005 (5)\n-58F423   Flags               01 (1) 'Modification'\n-58F424   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-58F428 LOCAL HEADER #1619    04034B50 (67324752)\n-58F42C Extract Zip Spec      14 (20) '2.0'\n-58F42D Extract OS            00 (0) 'MS-DOS'\n-58F42E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-58F430 Compression Method    0000 (0) 'Stored'\n-58F432 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-58F436 CRC                   00000000 (0)\n-58F43A Compressed Size       00000000 (0)\n-58F43E Uncompressed Size     00000000 (0)\n-58F442 Filename Length       0048 (72)\n-58F444 Extra Length          0009 (9)\n-58F446 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x58F446: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-58F48E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-58F490   Length              0005 (5)\n-58F492   Flags               01 (1) 'Modification'\n-58F493   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-58F497 PAYLOAD\n-\n-591C7D DATA DESCRIPTOR       08074B50 (134695760)\n-591C81 CRC                   73E7CE8A (1944571530)\n-591C85 Compressed Size       000027E6 (10214)\n-591C89 Uncompressed Size     000027E6 (10214)\n-\n-591C8D LOCAL HEADER #1620    04034B50 (67324752)\n-591C91 Extract Zip Spec      14 (20) '2.0'\n-591C92 Extract OS            00 (0) 'MS-DOS'\n-591C93 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-591C95 Compression Method    0000 (0) 'Stored'\n-591C97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-591C9B CRC                   00000000 (0)\n-591C9F Compressed Size       00000000 (0)\n-591CA3 Uncompressed Size     00000000 (0)\n-591CA7 Filename Length       003C (60)\n-591CA9 Extra Length          0009 (9)\n-591CAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x591CAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-591CE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-591CE9   Length              0005 (5)\n-591CEB   Flags               01 (1) 'Modification'\n-591CEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-591CF0 PAYLOAD\n-\n-593F31 DATA DESCRIPTOR       08074B50 (134695760)\n-593F35 CRC                   CD460ADB (3443919579)\n-593F39 Compressed Size       00002241 (8769)\n-593F3D Uncompressed Size     00002241 (8769)\n-\n-593F41 LOCAL HEADER #1621    04034B50 (67324752)\n-593F45 Extract Zip Spec      14 (20) '2.0'\n-593F46 Extract OS            00 (0) 'MS-DOS'\n-593F47 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-593F49 Compression Method    0000 (0) 'Stored'\n-593F4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-593F4F CRC                   00000000 (0)\n-593F53 Compressed Size       00000000 (0)\n-593F57 Uncompressed Size     00000000 (0)\n-593F5B Filename Length       003B (59)\n-593F5D Extra Length          0009 (9)\n-593F5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x593F5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-593F9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-593F9C   Length              0005 (5)\n-593F9E   Flags               01 (1) 'Modification'\n-593F9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-593FA3 PAYLOAD\n-\n-5963E9 DATA DESCRIPTOR       08074B50 (134695760)\n-5963ED CRC                   17148ACF (387222223)\n-5963F1 Compressed Size       00002446 (9286)\n-5963F5 Uncompressed Size     00002446 (9286)\n-\n-5963F9 LOCAL HEADER #1622    04034B50 (67324752)\n-5963FD Extract Zip Spec      14 (20) '2.0'\n-5963FE Extract OS            00 (0) 'MS-DOS'\n-5963FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-596401 Compression Method    0000 (0) 'Stored'\n-596403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-596407 CRC                   00000000 (0)\n-59640B Compressed Size       00000000 (0)\n-59640F Uncompressed Size     00000000 (0)\n-596413 Filename Length       0042 (66)\n-596415 Extra Length          0009 (9)\n-596417 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x596417: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-596459 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59645B   Length              0005 (5)\n-59645D   Flags               01 (1) 'Modification'\n-59645E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-596462 PAYLOAD\n-\n-597CCB DATA DESCRIPTOR       08074B50 (134695760)\n-597CCF CRC                   15F2B7F5 (368228341)\n-597CD3 Compressed Size       00001869 (6249)\n-597CD7 Uncompressed Size     00001869 (6249)\n-\n-597CDB LOCAL HEADER #1623    04034B50 (67324752)\n-597CDF Extract Zip Spec      14 (20) '2.0'\n-597CE0 Extract OS            00 (0) 'MS-DOS'\n-597CE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-597CE3 Compression Method    0000 (0) 'Stored'\n-597CE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-597CE9 CRC                   00000000 (0)\n-597CED Compressed Size       00000000 (0)\n-597CF1 Uncompressed Size     00000000 (0)\n-597CF5 Filename Length       0041 (65)\n-597CF7 Extra Length          0009 (9)\n-597CF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x597CF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-597D3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-597D3C   Length              0005 (5)\n-597D3E   Flags               01 (1) 'Modification'\n-597D3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-597D43 PAYLOAD\n-\n-598B1E DATA DESCRIPTOR       08074B50 (134695760)\n-598B22 CRC                   BA9CD18D (3130839437)\n-598B26 Compressed Size       00000DDB (3547)\n-598B2A Uncompressed Size     00000DDB (3547)\n-\n-598B2E LOCAL HEADER #1624    04034B50 (67324752)\n-598B32 Extract Zip Spec      14 (20) '2.0'\n-598B33 Extract OS            00 (0) 'MS-DOS'\n-598B34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-598B36 Compression Method    0000 (0) 'Stored'\n-598B38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-598B3C CRC                   00000000 (0)\n-598B40 Compressed Size       00000000 (0)\n-598B44 Uncompressed Size     00000000 (0)\n-598B48 Filename Length       0045 (69)\n-598B4A Extra Length          0009 (9)\n-598B4C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x598B4C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-598B91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-598B93   Length              0005 (5)\n-598B95   Flags               01 (1) 'Modification'\n-598B96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-598B9A PAYLOAD\n-\n-5995F8 DATA DESCRIPTOR       08074B50 (134695760)\n-5995FC CRC                   16F071B0 (384856496)\n-599600 Compressed Size       00000A5E (2654)\n-599604 Uncompressed Size     00000A5E (2654)\n-\n-599608 LOCAL HEADER #1625    04034B50 (67324752)\n-59960C Extract Zip Spec      14 (20) '2.0'\n-59960D Extract OS            00 (0) 'MS-DOS'\n-59960E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-599610 Compression Method    0000 (0) 'Stored'\n-599612 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-599616 CRC                   00000000 (0)\n-59961A Compressed Size       00000000 (0)\n-59961E Uncompressed Size     00000000 (0)\n-599622 Filename Length       003B (59)\n-599624 Extra Length          0009 (9)\n-599626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x599626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-599661 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-599663   Length              0005 (5)\n-599665   Flags               01 (1) 'Modification'\n-599666   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59966A PAYLOAD\n-\n-59B56D DATA DESCRIPTOR       08074B50 (134695760)\n-59B571 CRC                   99FF093E (2583628094)\n-59B575 Compressed Size       00001F03 (7939)\n-59B579 Uncompressed Size     00001F03 (7939)\n-\n-59B57D LOCAL HEADER #1626    04034B50 (67324752)\n-59B581 Extract Zip Spec      14 (20) '2.0'\n-59B582 Extract OS            00 (0) 'MS-DOS'\n-59B583 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-59B585 Compression Method    0000 (0) 'Stored'\n-59B587 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59B58B CRC                   00000000 (0)\n-59B58F Compressed Size       00000000 (0)\n-59B593 Uncompressed Size     00000000 (0)\n-59B597 Filename Length       0042 (66)\n-59B599 Extra Length          0009 (9)\n-59B59B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59B59B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59B5DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59B5DF   Length              0005 (5)\n-59B5E1   Flags               01 (1) 'Modification'\n-59B5E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59B5E6 PAYLOAD\n-\n-59CA61 DATA DESCRIPTOR       08074B50 (134695760)\n-59CA65 CRC                   7ED127C7 (2127636423)\n-59CA69 Compressed Size       0000147B (5243)\n-59CA6D Uncompressed Size     0000147B (5243)\n-\n-59CA71 LOCAL HEADER #1627    04034B50 (67324752)\n-59CA75 Extract Zip Spec      14 (20) '2.0'\n-59CA76 Extract OS            00 (0) 'MS-DOS'\n-59CA77 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-59CA79 Compression Method    0000 (0) 'Stored'\n-59CA7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59CA7F CRC                   00000000 (0)\n-59CA83 Compressed Size       00000000 (0)\n-59CA87 Uncompressed Size     00000000 (0)\n-59CA8B Filename Length       0040 (64)\n-59CA8D Extra Length          0009 (9)\n-59CA8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59CA8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59CACF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59CAD1   Length              0005 (5)\n-59CAD3   Flags               01 (1) 'Modification'\n-59CAD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59CAD8 PAYLOAD\n-\n-59D126 DATA DESCRIPTOR       08074B50 (134695760)\n-59D12A CRC                   4AAC1D37 (1252793655)\n-59D12E Compressed Size       0000064E (1614)\n-59D132 Uncompressed Size     0000064E (1614)\n-\n-59D136 LOCAL HEADER #1628    04034B50 (67324752)\n-59D13A Extract Zip Spec      14 (20) '2.0'\n-59D13B Extract OS            00 (0) 'MS-DOS'\n-59D13C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-59D13E Compression Method    0000 (0) 'Stored'\n-59D140 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59D144 CRC                   00000000 (0)\n-59D148 Compressed Size       00000000 (0)\n-59D14C Uncompressed Size     00000000 (0)\n-59D150 Filename Length       003B (59)\n-59D152 Extra Length          0009 (9)\n-59D154 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59D154: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59D18F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59D191   Length              0005 (5)\n-59D193   Flags               01 (1) 'Modification'\n-59D194   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59D198 PAYLOAD\n-\n-59E746 DATA DESCRIPTOR       08074B50 (134695760)\n-59E74A CRC                   155577E8 (357922792)\n-59E74E Compressed Size       000015AE (5550)\n-59E752 Uncompressed Size     000015AE (5550)\n-\n-59E756 LOCAL HEADER #1629    04034B50 (67324752)\n-59E75A Extract Zip Spec      14 (20) '2.0'\n-59E75B Extract OS            00 (0) 'MS-DOS'\n-59E75C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-59E75E Compression Method    0000 (0) 'Stored'\n-59E760 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59E764 CRC                   00000000 (0)\n-59E768 Compressed Size       00000000 (0)\n-59E76C Uncompressed Size     00000000 (0)\n-59E770 Filename Length       0045 (69)\n-59E772 Extra Length          0009 (9)\n-59E774 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59E774: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59E7B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59E7BB   Length              0005 (5)\n-59E7BD   Flags               01 (1) 'Modification'\n-59E7BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59E7C2 PAYLOAD\n-\n-59FE8D DATA DESCRIPTOR       08074B50 (134695760)\n-59FE91 CRC                   FC50D2E5 (4233155301)\n-59FE95 Compressed Size       000016CB (5835)\n-59FE99 Uncompressed Size     000016CB (5835)\n-\n-59FE9D LOCAL HEADER #1630    04034B50 (67324752)\n-59FEA1 Extract Zip Spec      14 (20) '2.0'\n-59FEA2 Extract OS            00 (0) 'MS-DOS'\n-59FEA3 General Purpose Flag  0000 (0)\n-59FEA5 Compression Method    0000 (0) 'Stored'\n-59FEA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59FEAB CRC                   00000000 (0)\n-59FEAF Compressed Size       00000000 (0)\n-59FEB3 Uncompressed Size     00000000 (0)\n-59FEB7 Filename Length       0033 (51)\n-59FEB9 Extra Length          0009 (9)\n-59FEBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59FEBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59FEEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59FEF0   Length              0005 (5)\n-59FEF2   Flags               01 (1) 'Modification'\n-59FEF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-59FEF7 LOCAL HEADER #1631    04034B50 (67324752)\n-59FEFB Extract Zip Spec      14 (20) '2.0'\n-59FEFC Extract OS            00 (0) 'MS-DOS'\n-59FEFD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-59FEFF Compression Method    0000 (0) 'Stored'\n-59FF01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-59FF05 CRC                   00000000 (0)\n-59FF09 Compressed Size       00000000 (0)\n-59FF0D Uncompressed Size     00000000 (0)\n-59FF11 Filename Length       0047 (71)\n-59FF13 Extra Length          0009 (9)\n-59FF15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x59FF15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-59FF5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-59FF5E   Length              0005 (5)\n-59FF60   Flags               01 (1) 'Modification'\n-59FF61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-59FF65 PAYLOAD\n-\n-5A0828 DATA DESCRIPTOR       08074B50 (134695760)\n-5A082C CRC                   58FEAB57 (1493085015)\n-5A0830 Compressed Size       000008C3 (2243)\n-5A0834 Uncompressed Size     000008C3 (2243)\n-\n-5A0838 LOCAL HEADER #1632    04034B50 (67324752)\n-5A083C Extract Zip Spec      14 (20) '2.0'\n-5A083D Extract OS            00 (0) 'MS-DOS'\n-5A083E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A0840 Compression Method    0000 (0) 'Stored'\n-5A0842 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A0846 CRC                   00000000 (0)\n-5A084A Compressed Size       00000000 (0)\n-5A084E Uncompressed Size     00000000 (0)\n-5A0852 Filename Length       0048 (72)\n-5A0854 Extra Length          0009 (9)\n-5A0856 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A0856: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A089E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A08A0   Length              0005 (5)\n-5A08A2   Flags               01 (1) 'Modification'\n-5A08A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A08A7 PAYLOAD\n-\n-5A41C5 DATA DESCRIPTOR       08074B50 (134695760)\n-5A41C9 CRC                   BC1F87C6 (3156182982)\n-5A41CD Compressed Size       0000391E (14622)\n-5A41D1 Uncompressed Size     0000391E (14622)\n-\n-5A41D5 LOCAL HEADER #1633    04034B50 (67324752)\n-5A41D9 Extract Zip Spec      14 (20) '2.0'\n-5A41DA Extract OS            00 (0) 'MS-DOS'\n-5A41DB General Purpose Flag  0000 (0)\n-5A41DD Compression Method    0000 (0) 'Stored'\n-5A41DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A41E3 CRC                   00000000 (0)\n-5A41E7 Compressed Size       00000000 (0)\n-5A41EB Uncompressed Size     00000000 (0)\n-5A41EF Filename Length       0020 (32)\n-5A41F1 Extra Length          0009 (9)\n-5A41F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A41F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A4213 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A4215   Length              0005 (5)\n-5A4217   Flags               01 (1) 'Modification'\n-5A4218   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5A421C LOCAL HEADER #1634    04034B50 (67324752)\n-5A4220 Extract Zip Spec      14 (20) '2.0'\n-5A4221 Extract OS            00 (0) 'MS-DOS'\n-5A4222 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A4224 Compression Method    0000 (0) 'Stored'\n-5A4226 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A422A CRC                   00000000 (0)\n-5A422E Compressed Size       00000000 (0)\n-5A4232 Uncompressed Size     00000000 (0)\n-5A4236 Filename Length       0033 (51)\n-5A4238 Extra Length          0009 (9)\n-5A423A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A423A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A426D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A426F   Length              0005 (5)\n-5A4271   Flags               01 (1) 'Modification'\n-5A4272   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A4276 PAYLOAD\n-\n-5A497E DATA DESCRIPTOR       08074B50 (134695760)\n-5A4982 CRC                   6365E73A (1667622714)\n-5A4986 Compressed Size       00000708 (1800)\n-5A498A Uncompressed Size     00000708 (1800)\n-\n-5A498E LOCAL HEADER #1635    04034B50 (67324752)\n-5A4992 Extract Zip Spec      14 (20) '2.0'\n-5A4993 Extract OS            00 (0) 'MS-DOS'\n-5A4994 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A4996 Compression Method    0000 (0) 'Stored'\n-5A4998 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A499C CRC                   00000000 (0)\n-5A49A0 Compressed Size       00000000 (0)\n-5A49A4 Uncompressed Size     00000000 (0)\n-5A49A8 Filename Length       002D (45)\n-5A49AA Extra Length          0009 (9)\n-5A49AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A49AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A49D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A49DB   Length              0005 (5)\n-5A49DD   Flags               01 (1) 'Modification'\n-5A49DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A49E2 PAYLOAD\n-\n-5A4FF0 DATA DESCRIPTOR       08074B50 (134695760)\n-5A4FF4 CRC                   BFAE288D (3215861901)\n-5A4FF8 Compressed Size       0000060E (1550)\n-5A4FFC Uncompressed Size     0000060E (1550)\n-\n-5A5000 LOCAL HEADER #1636    04034B50 (67324752)\n-5A5004 Extract Zip Spec      14 (20) '2.0'\n-5A5005 Extract OS            00 (0) 'MS-DOS'\n-5A5006 General Purpose Flag  0000 (0)\n-5A5008 Compression Method    0000 (0) 'Stored'\n-5A500A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A500E CRC                   00000000 (0)\n-5A5012 Compressed Size       00000000 (0)\n-5A5016 Uncompressed Size     00000000 (0)\n-5A501A Filename Length       0024 (36)\n-5A501C Extra Length          0009 (9)\n-5A501E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A501E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A5042 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A5044   Length              0005 (5)\n-5A5046   Flags               01 (1) 'Modification'\n-5A5047   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5A504B LOCAL HEADER #1637    04034B50 (67324752)\n-5A504F Extract Zip Spec      14 (20) '2.0'\n-5A5050 Extract OS            00 (0) 'MS-DOS'\n-5A5051 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A5053 Compression Method    0000 (0) 'Stored'\n-5A5055 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A5059 CRC                   00000000 (0)\n-5A505D Compressed Size       00000000 (0)\n-5A5061 Uncompressed Size     00000000 (0)\n-5A5065 Filename Length       0036 (54)\n-5A5067 Extra Length          0009 (9)\n-5A5069 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A5069: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A509F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A50A1   Length              0005 (5)\n-5A50A3   Flags               01 (1) 'Modification'\n-5A50A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A50A8 PAYLOAD\n-\n-5A5489 DATA DESCRIPTOR       08074B50 (134695760)\n-5A548D CRC                   CCE4DF99 (3437551513)\n-5A5491 Compressed Size       000003E1 (993)\n-5A5495 Uncompressed Size     000003E1 (993)\n-\n-5A5499 LOCAL HEADER #1638    04034B50 (67324752)\n-5A549D Extract Zip Spec      14 (20) '2.0'\n-5A549E Extract OS            00 (0) 'MS-DOS'\n-5A549F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A54A1 Compression Method    0000 (0) 'Stored'\n-5A54A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A54A7 CRC                   00000000 (0)\n-5A54AB Compressed Size       00000000 (0)\n-5A54AF Uncompressed Size     00000000 (0)\n-5A54B3 Filename Length       0035 (53)\n-5A54B5 Extra Length          0009 (9)\n-5A54B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A54B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A54EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A54EE   Length              0005 (5)\n-5A54F0   Flags               01 (1) 'Modification'\n-5A54F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A54F5 PAYLOAD\n-\n-5A58C4 DATA DESCRIPTOR       08074B50 (134695760)\n-5A58C8 CRC                   F48F4A7B (4103031419)\n-5A58CC Compressed Size       000003CF (975)\n-5A58D0 Uncompressed Size     000003CF (975)\n-\n-5A58D4 LOCAL HEADER #1639    04034B50 (67324752)\n-5A58D8 Extract Zip Spec      14 (20) '2.0'\n-5A58D9 Extract OS            00 (0) 'MS-DOS'\n-5A58DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A58DC Compression Method    0000 (0) 'Stored'\n-5A58DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A58E2 CRC                   00000000 (0)\n-5A58E6 Compressed Size       00000000 (0)\n-5A58EA Uncompressed Size     00000000 (0)\n-5A58EE Filename Length       0032 (50)\n-5A58F0 Extra Length          0009 (9)\n-5A58F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A58F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A5924 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A5926   Length              0005 (5)\n-5A5928   Flags               01 (1) 'Modification'\n-5A5929   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A592D PAYLOAD\n-\n-5A6112 DATA DESCRIPTOR       08074B50 (134695760)\n-5A6116 CRC                   85A56629 (2242209321)\n-5A611A Compressed Size       000007E5 (2021)\n-5A611E Uncompressed Size     000007E5 (2021)\n-\n-5A6122 LOCAL HEADER #1640    04034B50 (67324752)\n-5A6126 Extract Zip Spec      14 (20) '2.0'\n-5A6127 Extract OS            00 (0) 'MS-DOS'\n-5A6128 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A612A Compression Method    0000 (0) 'Stored'\n-5A612C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A6130 CRC                   00000000 (0)\n-5A6134 Compressed Size       00000000 (0)\n-5A6138 Uncompressed Size     00000000 (0)\n-5A613C Filename Length       0036 (54)\n-5A613E Extra Length          0009 (9)\n-5A6140 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A6140: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A6176 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A6178   Length              0005 (5)\n-5A617A   Flags               01 (1) 'Modification'\n-5A617B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A617F PAYLOAD\n-\n-5A65A1 DATA DESCRIPTOR       08074B50 (134695760)\n-5A65A5 CRC                   CB7D1A2B (3413973547)\n-5A65A9 Compressed Size       00000422 (1058)\n-5A65AD Uncompressed Size     00000422 (1058)\n-\n-5A65B1 LOCAL HEADER #1641    04034B50 (67324752)\n-5A65B5 Extract Zip Spec      14 (20) '2.0'\n-5A65B6 Extract OS            00 (0) 'MS-DOS'\n-5A65B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A65B9 Compression Method    0000 (0) 'Stored'\n-5A65BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A65BF CRC                   00000000 (0)\n-5A65C3 Compressed Size       00000000 (0)\n-5A65C7 Uncompressed Size     00000000 (0)\n-5A65CB Filename Length       0038 (56)\n-5A65CD Extra Length          0009 (9)\n-5A65CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A65CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A6607 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A6609   Length              0005 (5)\n-5A660B   Flags               01 (1) 'Modification'\n-5A660C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A6610 PAYLOAD\n-\n-5A6E07 DATA DESCRIPTOR       08074B50 (134695760)\n-5A6E0B CRC                   3C17796F (1008171375)\n-5A6E0F Compressed Size       000007F7 (2039)\n-5A6E13 Uncompressed Size     000007F7 (2039)\n-\n-5A6E17 LOCAL HEADER #1642    04034B50 (67324752)\n-5A6E1B Extract Zip Spec      14 (20) '2.0'\n-5A6E1C Extract OS            00 (0) 'MS-DOS'\n-5A6E1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A6E1F Compression Method    0000 (0) 'Stored'\n-5A6E21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A6E25 CRC                   00000000 (0)\n-5A6E29 Compressed Size       00000000 (0)\n-5A6E2D Uncompressed Size     00000000 (0)\n-5A6E31 Filename Length       003D (61)\n-5A6E33 Extra Length          0009 (9)\n-5A6E35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A6E35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A6E72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A6E74   Length              0005 (5)\n-5A6E76   Flags               01 (1) 'Modification'\n-5A6E77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A6E7B PAYLOAD\n-\n-5A7320 DATA DESCRIPTOR       08074B50 (134695760)\n-5A7324 CRC                   18C4C330 (415548208)\n-5A7328 Compressed Size       000004A5 (1189)\n-5A732C Uncompressed Size     000004A5 (1189)\n-\n-5A7330 LOCAL HEADER #1643    04034B50 (67324752)\n-5A7334 Extract Zip Spec      14 (20) '2.0'\n-5A7335 Extract OS            00 (0) 'MS-DOS'\n-5A7336 General Purpose Flag  0000 (0)\n-5A7338 Compression Method    0000 (0) 'Stored'\n-5A733A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A733E CRC                   00000000 (0)\n-5A7342 Compressed Size       00000000 (0)\n-5A7346 Uncompressed Size     00000000 (0)\n-5A734A Filename Length       002C (44)\n-5A734C Extra Length          0009 (9)\n-5A734E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A734E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A737A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A737C   Length              0005 (5)\n-5A737E   Flags               01 (1) 'Modification'\n-5A737F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5A7383 LOCAL HEADER #1644    04034B50 (67324752)\n-5A7387 Extract Zip Spec      14 (20) '2.0'\n-5A7388 Extract OS            00 (0) 'MS-DOS'\n-5A7389 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5A738B Compression Method    0000 (0) 'Stored'\n-5A738D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5A7391 CRC                   00000000 (0)\n-5A7395 Compressed Size       00000000 (0)\n-5A7399 Uncompressed Size     00000000 (0)\n-5A739D Filename Length       0047 (71)\n-5A739F Extra Length          0009 (9)\n-5A73A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5A73A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5A73E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5A73EA   Length              0005 (5)\n-5A73EC   Flags               01 (1) 'Modification'\n-5A73ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5A73F1 PAYLOAD\n-\n-5AB6A5 DATA DESCRIPTOR       08074B50 (134695760)\n-5AB6A9 CRC                   C08A2F01 (3230281473)\n-5AB6AD Compressed Size       000042B4 (17076)\n-5AB6B1 Uncompressed Size     000042B4 (17076)\n-\n-5AB6B5 LOCAL HEADER #1645    04034B50 (67324752)\n-5AB6B9 Extract Zip Spec      14 (20) '2.0'\n-5AB6BA Extract OS            00 (0) 'MS-DOS'\n-5AB6BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5AB6BD Compression Method    0000 (0) 'Stored'\n-5AB6BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5AB6C3 CRC                   00000000 (0)\n-5AB6C7 Compressed Size       00000000 (0)\n-5AB6CB Uncompressed Size     00000000 (0)\n-5AB6CF Filename Length       004C (76)\n-5AB6D1 Extra Length          0009 (9)\n-5AB6D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5AB6D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5AB71F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5AB721   Length              0005 (5)\n-5AB723   Flags               01 (1) 'Modification'\n-5AB724   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5AB728 PAYLOAD\n-\n-5ABC24 DATA DESCRIPTOR       08074B50 (134695760)\n-5ABC28 CRC                   7A12603D (2048024637)\n-5ABC2C Compressed Size       000004FC (1276)\n-5ABC30 Uncompressed Size     000004FC (1276)\n-\n-5ABC34 LOCAL HEADER #1646    04034B50 (67324752)\n-5ABC38 Extract Zip Spec      14 (20) '2.0'\n-5ABC39 Extract OS            00 (0) 'MS-DOS'\n-5ABC3A General Purpose Flag  0000 (0)\n-5ABC3C Compression Method    0000 (0) 'Stored'\n-5ABC3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ABC42 CRC                   00000000 (0)\n-5ABC46 Compressed Size       00000000 (0)\n-5ABC4A Uncompressed Size     00000000 (0)\n-5ABC4E Filename Length       002C (44)\n-5ABC50 Extra Length          0009 (9)\n-5ABC52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ABC52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ABC7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ABC80   Length              0005 (5)\n-5ABC82   Flags               01 (1) 'Modification'\n-5ABC83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5ABC87 LOCAL HEADER #1647    04034B50 (67324752)\n-5ABC8B Extract Zip Spec      14 (20) '2.0'\n-5ABC8C Extract OS            00 (0) 'MS-DOS'\n-5ABC8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5ABC8F Compression Method    0000 (0) 'Stored'\n-5ABC91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ABC95 CRC                   00000000 (0)\n-5ABC99 Compressed Size       00000000 (0)\n-5ABC9D Uncompressed Size     00000000 (0)\n-5ABCA1 Filename Length       0048 (72)\n-5ABCA3 Extra Length          0009 (9)\n-5ABCA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ABCA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ABCED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ABCEF   Length              0005 (5)\n-5ABCF1   Flags               01 (1) 'Modification'\n-5ABCF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5ABCF6 PAYLOAD\n-\n-5ADCDC DATA DESCRIPTOR       08074B50 (134695760)\n-5ADCE0 CRC                   72360194 (1916141972)\n-5ADCE4 Compressed Size       00001FE6 (8166)\n-5ADCE8 Uncompressed Size     00001FE6 (8166)\n-\n-5ADCEC LOCAL HEADER #1648    04034B50 (67324752)\n-5ADCF0 Extract Zip Spec      14 (20) '2.0'\n-5ADCF1 Extract OS            00 (0) 'MS-DOS'\n-5ADCF2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5ADCF4 Compression Method    0000 (0) 'Stored'\n-5ADCF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ADCFA CRC                   00000000 (0)\n-5ADCFE Compressed Size       00000000 (0)\n-5ADD02 Uncompressed Size     00000000 (0)\n-5ADD06 Filename Length       004D (77)\n-5ADD08 Extra Length          0009 (9)\n-5ADD0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ADD0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ADD57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ADD59   Length              0005 (5)\n-5ADD5B   Flags               01 (1) 'Modification'\n-5ADD5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5ADD60 PAYLOAD\n-\n-5AF8E0 DATA DESCRIPTOR       08074B50 (134695760)\n-5AF8E4 CRC                   B6B21903 (3065125123)\n-5AF8E8 Compressed Size       00001B80 (7040)\n-5AF8EC Uncompressed Size     00001B80 (7040)\n-\n-5AF8F0 LOCAL HEADER #1649    04034B50 (67324752)\n-5AF8F4 Extract Zip Spec      14 (20) '2.0'\n-5AF8F5 Extract OS            00 (0) 'MS-DOS'\n-5AF8F6 General Purpose Flag  0000 (0)\n-5AF8F8 Compression Method    0000 (0) 'Stored'\n-5AF8FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5AF8FE CRC                   00000000 (0)\n-5AF902 Compressed Size       00000000 (0)\n-5AF906 Uncompressed Size     00000000 (0)\n-5AF90A Filename Length       0015 (21)\n-5AF90C Extra Length          0009 (9)\n-5AF90E Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5AF90E: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5AF923 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5AF925   Length              0005 (5)\n-5AF927   Flags               01 (1) 'Modification'\n-5AF928   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5AF92C LOCAL HEADER #1650    04034B50 (67324752)\n-5AF930 Extract Zip Spec      14 (20) '2.0'\n-5AF931 Extract OS            00 (0) 'MS-DOS'\n-5AF932 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5AF934 Compression Method    0000 (0) 'Stored'\n-5AF936 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5AF93A CRC                   00000000 (0)\n-5AF93E Compressed Size       00000000 (0)\n-5AF942 Uncompressed Size     00000000 (0)\n-5AF946 Filename Length       0025 (37)\n-5AF948 Extra Length          0009 (9)\n-5AF94A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5AF94A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5AF96F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5AF971   Length              0005 (5)\n-5AF973   Flags               01 (1) 'Modification'\n-5AF974   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5AF978 PAYLOAD\n-\n-5B17FC DATA DESCRIPTOR       08074B50 (134695760)\n-5B1800 CRC                   3836550F (943084815)\n-5B1804 Compressed Size       00001E84 (7812)\n-5B1808 Uncompressed Size     00001E84 (7812)\n-\n-5B180C LOCAL HEADER #1651    04034B50 (67324752)\n-5B1810 Extract Zip Spec      14 (20) '2.0'\n-5B1811 Extract OS            00 (0) 'MS-DOS'\n-5B1812 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B1814 Compression Method    0000 (0) 'Stored'\n-5B1816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B181A CRC                   00000000 (0)\n-5B181E Compressed Size       00000000 (0)\n-5B1822 Uncompressed Size     00000000 (0)\n-5B1826 Filename Length       0026 (38)\n-5B1828 Extra Length          0009 (9)\n-5B182A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B182A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B1850 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B1852   Length              0005 (5)\n-5B1854   Flags               01 (1) 'Modification'\n-5B1855   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B1859 PAYLOAD\n-\n-5B2289 DATA DESCRIPTOR       08074B50 (134695760)\n-5B228D CRC                   16C36050 (381902928)\n-5B2291 Compressed Size       00000A30 (2608)\n-5B2295 Uncompressed Size     00000A30 (2608)\n-\n-5B2299 LOCAL HEADER #1652    04034B50 (67324752)\n-5B229D Extract Zip Spec      14 (20) '2.0'\n-5B229E Extract OS            00 (0) 'MS-DOS'\n-5B229F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B22A1 Compression Method    0000 (0) 'Stored'\n-5B22A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B22A7 CRC                   00000000 (0)\n-5B22AB Compressed Size       00000000 (0)\n-5B22AF Uncompressed Size     00000000 (0)\n-5B22B3 Filename Length       002A (42)\n-5B22B5 Extra Length          0009 (9)\n-5B22B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B22B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B22E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B22E3   Length              0005 (5)\n-5B22E5   Flags               01 (1) 'Modification'\n-5B22E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B22EA PAYLOAD\n-\n-5B2D12 DATA DESCRIPTOR       08074B50 (134695760)\n-5B2D16 CRC                   5C1C5F40 (1545363264)\n-5B2D1A Compressed Size       00000A28 (2600)\n-5B2D1E Uncompressed Size     00000A28 (2600)\n-\n-5B2D22 LOCAL HEADER #1653    04034B50 (67324752)\n-5B2D26 Extract Zip Spec      14 (20) '2.0'\n-5B2D27 Extract OS            00 (0) 'MS-DOS'\n-5B2D28 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B2D2A Compression Method    0000 (0) 'Stored'\n-5B2D2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B2D30 CRC                   00000000 (0)\n-5B2D34 Compressed Size       00000000 (0)\n-5B2D38 Uncompressed Size     00000000 (0)\n-5B2D3C Filename Length       0028 (40)\n-5B2D3E Extra Length          0009 (9)\n-5B2D40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B2D40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B2D68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B2D6A   Length              0005 (5)\n-5B2D6C   Flags               01 (1) 'Modification'\n-5B2D6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B2D71 PAYLOAD\n-\n-5B5D95 DATA DESCRIPTOR       08074B50 (134695760)\n-5B5D99 CRC                   93FCD4E8 (2482820328)\n-5B5D9D Compressed Size       00003024 (12324)\n-5B5DA1 Uncompressed Size     00003024 (12324)\n-\n-5B5DA5 LOCAL HEADER #1654    04034B50 (67324752)\n-5B5DA9 Extract Zip Spec      14 (20) '2.0'\n-5B5DAA Extract OS            00 (0) 'MS-DOS'\n-5B5DAB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B5DAD Compression Method    0000 (0) 'Stored'\n-5B5DAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B5DB3 CRC                   00000000 (0)\n-5B5DB7 Compressed Size       00000000 (0)\n-5B5DBB Uncompressed Size     00000000 (0)\n-5B5DBF Filename Length       002C (44)\n-5B5DC1 Extra Length          0009 (9)\n-5B5DC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B5DC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B5DEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B5DF1   Length              0005 (5)\n-5B5DF3   Flags               01 (1) 'Modification'\n-5B5DF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B5DF8 PAYLOAD\n-\n-5B6760 DATA DESCRIPTOR       08074B50 (134695760)\n-5B6764 CRC                   735FA0B6 (1935646902)\n-5B6768 Compressed Size       00000968 (2408)\n-5B676C Uncompressed Size     00000968 (2408)\n-\n-5B6770 LOCAL HEADER #1655    04034B50 (67324752)\n-5B6774 Extract Zip Spec      14 (20) '2.0'\n-5B6775 Extract OS            00 (0) 'MS-DOS'\n-5B6776 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B6778 Compression Method    0000 (0) 'Stored'\n-5B677A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B677E CRC                   00000000 (0)\n-5B6782 Compressed Size       00000000 (0)\n-5B6786 Uncompressed Size     00000000 (0)\n-5B678A Filename Length       0023 (35)\n-5B678C Extra Length          0009 (9)\n-5B678E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B678E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B67B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B67B3   Length              0005 (5)\n-5B67B5   Flags               01 (1) 'Modification'\n-5B67B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B67BA PAYLOAD\n-\n-5B71D2 DATA DESCRIPTOR       08074B50 (134695760)\n-5B71D6 CRC                   2AE2442E (719471662)\n-5B71DA Compressed Size       00000A18 (2584)\n-5B71DE Uncompressed Size     00000A18 (2584)\n-\n-5B71E2 LOCAL HEADER #1656    04034B50 (67324752)\n-5B71E6 Extract Zip Spec      14 (20) '2.0'\n-5B71E7 Extract OS            00 (0) 'MS-DOS'\n-5B71E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B71EA Compression Method    0000 (0) 'Stored'\n-5B71EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B71F0 CRC                   00000000 (0)\n-5B71F4 Compressed Size       00000000 (0)\n-5B71F8 Uncompressed Size     00000000 (0)\n-5B71FC Filename Length       0022 (34)\n-5B71FE Extra Length          0009 (9)\n-5B7200 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B7200: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B7222 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B7224   Length              0005 (5)\n-5B7226   Flags               01 (1) 'Modification'\n-5B7227   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B722B PAYLOAD\n-\n-5B776A DATA DESCRIPTOR       08074B50 (134695760)\n-5B776E CRC                   525AF459 (1381692505)\n-5B7772 Compressed Size       0000053F (1343)\n-5B7776 Uncompressed Size     0000053F (1343)\n-\n-5B777A LOCAL HEADER #1657    04034B50 (67324752)\n-5B777E Extract Zip Spec      14 (20) '2.0'\n-5B777F Extract OS            00 (0) 'MS-DOS'\n-5B7780 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B7782 Compression Method    0000 (0) 'Stored'\n-5B7784 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B7788 CRC                   00000000 (0)\n-5B778C Compressed Size       00000000 (0)\n-5B7790 Uncompressed Size     00000000 (0)\n-5B7794 Filename Length       002A (42)\n-5B7796 Extra Length          0009 (9)\n-5B7798 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B7798: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B77C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B77C4   Length              0005 (5)\n-5B77C6   Flags               01 (1) 'Modification'\n-5B77C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B77CB PAYLOAD\n-\n-5B7D77 DATA DESCRIPTOR       08074B50 (134695760)\n-5B7D7B CRC                   FC32E707 (4231194375)\n-5B7D7F Compressed Size       000005AC (1452)\n-5B7D83 Uncompressed Size     000005AC (1452)\n-\n-5B7D87 LOCAL HEADER #1658    04034B50 (67324752)\n-5B7D8B Extract Zip Spec      14 (20) '2.0'\n-5B7D8C Extract OS            00 (0) 'MS-DOS'\n-5B7D8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B7D8F Compression Method    0000 (0) 'Stored'\n-5B7D91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B7D95 CRC                   00000000 (0)\n-5B7D99 Compressed Size       00000000 (0)\n-5B7D9D Uncompressed Size     00000000 (0)\n-5B7DA1 Filename Length       0020 (32)\n-5B7DA3 Extra Length          0009 (9)\n-5B7DA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B7DA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B7DC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B7DC7   Length              0005 (5)\n-5B7DC9   Flags               01 (1) 'Modification'\n-5B7DCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B7DCE PAYLOAD\n-\n-5B8733 DATA DESCRIPTOR       08074B50 (134695760)\n-5B8737 CRC                   2EDA0DE9 (786042345)\n-5B873B Compressed Size       00000965 (2405)\n-5B873F Uncompressed Size     00000965 (2405)\n-\n-5B8743 LOCAL HEADER #1659    04034B50 (67324752)\n-5B8747 Extract Zip Spec      14 (20) '2.0'\n-5B8748 Extract OS            00 (0) 'MS-DOS'\n-5B8749 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B874B Compression Method    0000 (0) 'Stored'\n-5B874D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B8751 CRC                   00000000 (0)\n-5B8755 Compressed Size       00000000 (0)\n-5B8759 Uncompressed Size     00000000 (0)\n-5B875D Filename Length       0027 (39)\n-5B875F Extra Length          0009 (9)\n-5B8761 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B8761: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B8788 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B878A   Length              0005 (5)\n-5B878C   Flags               01 (1) 'Modification'\n-5B878D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B8791 PAYLOAD\n-\n-5B970E DATA DESCRIPTOR       08074B50 (134695760)\n-5B9712 CRC                   16263A19 (371603993)\n-5B9716 Compressed Size       00000F7D (3965)\n-5B971A Uncompressed Size     00000F7D (3965)\n-\n-5B971E LOCAL HEADER #1660    04034B50 (67324752)\n-5B9722 Extract Zip Spec      14 (20) '2.0'\n-5B9723 Extract OS            00 (0) 'MS-DOS'\n-5B9724 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5B9726 Compression Method    0000 (0) 'Stored'\n-5B9728 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5B972C CRC                   00000000 (0)\n-5B9730 Compressed Size       00000000 (0)\n-5B9734 Uncompressed Size     00000000 (0)\n-5B9738 Filename Length       0024 (36)\n-5B973A Extra Length          0009 (9)\n-5B973C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5B973C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5B9760 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5B9762   Length              0005 (5)\n-5B9764   Flags               01 (1) 'Modification'\n-5B9765   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5B9769 PAYLOAD\n-\n-5BA60A DATA DESCRIPTOR       08074B50 (134695760)\n-5BA60E CRC                   4A170C4C (1243024460)\n-5BA612 Compressed Size       00000EA1 (3745)\n-5BA616 Uncompressed Size     00000EA1 (3745)\n-\n-5BA61A LOCAL HEADER #1661    04034B50 (67324752)\n-5BA61E Extract Zip Spec      14 (20) '2.0'\n-5BA61F Extract OS            00 (0) 'MS-DOS'\n-5BA620 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BA622 Compression Method    0000 (0) 'Stored'\n-5BA624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BA628 CRC                   00000000 (0)\n-5BA62C Compressed Size       00000000 (0)\n-5BA630 Uncompressed Size     00000000 (0)\n-5BA634 Filename Length       0024 (36)\n-5BA636 Extra Length          0009 (9)\n-5BA638 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BA638: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BA65C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BA65E   Length              0005 (5)\n-5BA660   Flags               01 (1) 'Modification'\n-5BA661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BA665 PAYLOAD\n-\n-5BA9DC DATA DESCRIPTOR       08074B50 (134695760)\n-5BA9E0 CRC                   D1AB43CA (3517662154)\n-5BA9E4 Compressed Size       00000377 (887)\n-5BA9E8 Uncompressed Size     00000377 (887)\n-\n-5BA9EC LOCAL HEADER #1662    04034B50 (67324752)\n-5BA9F0 Extract Zip Spec      14 (20) '2.0'\n-5BA9F1 Extract OS            00 (0) 'MS-DOS'\n-5BA9F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BA9F4 Compression Method    0000 (0) 'Stored'\n-5BA9F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BA9FA CRC                   00000000 (0)\n-5BA9FE Compressed Size       00000000 (0)\n-5BAA02 Uncompressed Size     00000000 (0)\n-5BAA06 Filename Length       0021 (33)\n-5BAA08 Extra Length          0009 (9)\n-5BAA0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BAA0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BAA2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BAA2D   Length              0005 (5)\n-5BAA2F   Flags               01 (1) 'Modification'\n-5BAA30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BAA34 PAYLOAD\n-\n-5BB005 DATA DESCRIPTOR       08074B50 (134695760)\n-5BB009 CRC                   19B4DE27 (431283751)\n-5BB00D Compressed Size       000005D1 (1489)\n-5BB011 Uncompressed Size     000005D1 (1489)\n-\n-5BB015 LOCAL HEADER #1663    04034B50 (67324752)\n-5BB019 Extract Zip Spec      14 (20) '2.0'\n-5BB01A Extract OS            00 (0) 'MS-DOS'\n-5BB01B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BB01D Compression Method    0000 (0) 'Stored'\n-5BB01F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BB023 CRC                   00000000 (0)\n-5BB027 Compressed Size       00000000 (0)\n-5BB02B Uncompressed Size     00000000 (0)\n-5BB02F Filename Length       0029 (41)\n-5BB031 Extra Length          0009 (9)\n-5BB033 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BB033: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BB05C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BB05E   Length              0005 (5)\n-5BB060   Flags               01 (1) 'Modification'\n-5BB061   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BB065 PAYLOAD\n-\n-5BB5FF DATA DESCRIPTOR       08074B50 (134695760)\n-5BB603 CRC                   D82F1E47 (3626966599)\n-5BB607 Compressed Size       0000059A (1434)\n-5BB60B Uncompressed Size     0000059A (1434)\n-\n-5BB60F LOCAL HEADER #1664    04034B50 (67324752)\n-5BB613 Extract Zip Spec      14 (20) '2.0'\n-5BB614 Extract OS            00 (0) 'MS-DOS'\n-5BB615 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BB617 Compression Method    0000 (0) 'Stored'\n-5BB619 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BB61D CRC                   00000000 (0)\n-5BB621 Compressed Size       00000000 (0)\n-5BB625 Uncompressed Size     00000000 (0)\n-5BB629 Filename Length       002A (42)\n-5BB62B Extra Length          0009 (9)\n-5BB62D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BB62D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BB657 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BB659   Length              0005 (5)\n-5BB65B   Flags               01 (1) 'Modification'\n-5BB65C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BB660 PAYLOAD\n-\n-5BBE30 DATA DESCRIPTOR       08074B50 (134695760)\n-5BBE34 CRC                   2BFDB64A (738047562)\n-5BBE38 Compressed Size       000007D0 (2000)\n-5BBE3C Uncompressed Size     000007D0 (2000)\n-\n-5BBE40 LOCAL HEADER #1665    04034B50 (67324752)\n-5BBE44 Extract Zip Spec      14 (20) '2.0'\n-5BBE45 Extract OS            00 (0) 'MS-DOS'\n-5BBE46 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BBE48 Compression Method    0000 (0) 'Stored'\n-5BBE4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BBE4E CRC                   00000000 (0)\n-5BBE52 Compressed Size       00000000 (0)\n-5BBE56 Uncompressed Size     00000000 (0)\n-5BBE5A Filename Length       0022 (34)\n-5BBE5C Extra Length          0009 (9)\n-5BBE5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BBE5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BBE80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BBE82   Length              0005 (5)\n-5BBE84   Flags               01 (1) 'Modification'\n-5BBE85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BBE89 PAYLOAD\n-\n-5BCC79 DATA DESCRIPTOR       08074B50 (134695760)\n-5BCC7D CRC                   CCB43BAA (3434363818)\n-5BCC81 Compressed Size       00000DF0 (3568)\n-5BCC85 Uncompressed Size     00000DF0 (3568)\n-\n-5BCC89 LOCAL HEADER #1666    04034B50 (67324752)\n-5BCC8D Extract Zip Spec      14 (20) '2.0'\n-5BCC8E Extract OS            00 (0) 'MS-DOS'\n-5BCC8F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BCC91 Compression Method    0000 (0) 'Stored'\n-5BCC93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BCC97 CRC                   00000000 (0)\n-5BCC9B Compressed Size       00000000 (0)\n-5BCC9F Uncompressed Size     00000000 (0)\n-5BCCA3 Filename Length       0028 (40)\n-5BCCA5 Extra Length          0009 (9)\n-5BCCA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BCCA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BCCCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BCCD1   Length              0005 (5)\n-5BCCD3   Flags               01 (1) 'Modification'\n-5BCCD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BCCD8 PAYLOAD\n-\n-5BD2A4 DATA DESCRIPTOR       08074B50 (134695760)\n-5BD2A8 CRC                   0D33E2B2 (221504178)\n-5BD2AC Compressed Size       000005CC (1484)\n-5BD2B0 Uncompressed Size     000005CC (1484)\n-\n-5BD2B4 LOCAL HEADER #1667    04034B50 (67324752)\n-5BD2B8 Extract Zip Spec      14 (20) '2.0'\n-5BD2B9 Extract OS            00 (0) 'MS-DOS'\n-5BD2BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BD2BC Compression Method    0000 (0) 'Stored'\n-5BD2BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BD2C2 CRC                   00000000 (0)\n-5BD2C6 Compressed Size       00000000 (0)\n-5BD2CA Uncompressed Size     00000000 (0)\n-5BD2CE Filename Length       0026 (38)\n-5BD2D0 Extra Length          0009 (9)\n-5BD2D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BD2D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BD2F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BD2FA   Length              0005 (5)\n-5BD2FC   Flags               01 (1) 'Modification'\n-5BD2FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BD301 PAYLOAD\n-\n-5BD9DE DATA DESCRIPTOR       08074B50 (134695760)\n-5BD9E2 CRC                   319BF765 (832304997)\n-5BD9E6 Compressed Size       000006DD (1757)\n-5BD9EA Uncompressed Size     000006DD (1757)\n-\n-5BD9EE LOCAL HEADER #1668    04034B50 (67324752)\n-5BD9F2 Extract Zip Spec      14 (20) '2.0'\n-5BD9F3 Extract OS            00 (0) 'MS-DOS'\n-5BD9F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BD9F6 Compression Method    0000 (0) 'Stored'\n-5BD9F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BD9FC CRC                   00000000 (0)\n-5BDA00 Compressed Size       00000000 (0)\n-5BDA04 Uncompressed Size     00000000 (0)\n-5BDA08 Filename Length       0020 (32)\n-5BDA0A Extra Length          0009 (9)\n-5BDA0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BDA0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BDA2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BDA2E   Length              0005 (5)\n-5BDA30   Flags               01 (1) 'Modification'\n-5BDA31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BDA35 PAYLOAD\n-\n-5BEF76 DATA DESCRIPTOR       08074B50 (134695760)\n-5BEF7A CRC                   7799251E (2006525214)\n-5BEF7E Compressed Size       00001541 (5441)\n-5BEF82 Uncompressed Size     00001541 (5441)\n-\n-5BEF86 LOCAL HEADER #1669    04034B50 (67324752)\n-5BEF8A Extract Zip Spec      14 (20) '2.0'\n-5BEF8B Extract OS            00 (0) 'MS-DOS'\n-5BEF8C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BEF8E Compression Method    0000 (0) 'Stored'\n-5BEF90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BEF94 CRC                   00000000 (0)\n-5BEF98 Compressed Size       00000000 (0)\n-5BEF9C Uncompressed Size     00000000 (0)\n-5BEFA0 Filename Length       0026 (38)\n-5BEFA2 Extra Length          0009 (9)\n-5BEFA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BEFA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BEFCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BEFCC   Length              0005 (5)\n-5BEFCE   Flags               01 (1) 'Modification'\n-5BEFCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BEFD3 PAYLOAD\n-\n-5BF571 DATA DESCRIPTOR       08074B50 (134695760)\n-5BF575 CRC                   3BFD1345 (1006441285)\n-5BF579 Compressed Size       0000059E (1438)\n-5BF57D Uncompressed Size     0000059E (1438)\n-\n-5BF581 LOCAL HEADER #1670    04034B50 (67324752)\n-5BF585 Extract Zip Spec      14 (20) '2.0'\n-5BF586 Extract OS            00 (0) 'MS-DOS'\n-5BF587 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5BF589 Compression Method    0000 (0) 'Stored'\n-5BF58B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5BF58F CRC                   00000000 (0)\n-5BF593 Compressed Size       00000000 (0)\n-5BF597 Uncompressed Size     00000000 (0)\n-5BF59B Filename Length       0024 (36)\n-5BF59D Extra Length          0009 (9)\n-5BF59F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5BF59F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5BF5C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5BF5C5   Length              0005 (5)\n-5BF5C7   Flags               01 (1) 'Modification'\n-5BF5C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5BF5CC PAYLOAD\n-\n-5C4CCF DATA DESCRIPTOR       08074B50 (134695760)\n-5C4CD3 CRC                   8B2B5BC6 (2334874566)\n-5C4CD7 Compressed Size       00005703 (22275)\n-5C4CDB Uncompressed Size     00005703 (22275)\n-\n-5C4CDF LOCAL HEADER #1671    04034B50 (67324752)\n-5C4CE3 Extract Zip Spec      14 (20) '2.0'\n-5C4CE4 Extract OS            00 (0) 'MS-DOS'\n-5C4CE5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5C4CE7 Compression Method    0000 (0) 'Stored'\n-5C4CE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5C4CED CRC                   00000000 (0)\n-5C4CF1 Compressed Size       00000000 (0)\n-5C4CF5 Uncompressed Size     00000000 (0)\n-5C4CF9 Filename Length       0026 (38)\n-5C4CFB Extra Length          0009 (9)\n-5C4CFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C4CFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5C4D23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5C4D25   Length              0005 (5)\n-5C4D27   Flags               01 (1) 'Modification'\n-5C4D28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5C4D2C PAYLOAD\n-\n-5C5A4F DATA DESCRIPTOR       08074B50 (134695760)\n-5C5A53 CRC                   D96AD9D5 (3647658453)\n-5C5A57 Compressed Size       00000D23 (3363)\n-5C5A5B Uncompressed Size     00000D23 (3363)\n-\n-5C5A5F LOCAL HEADER #1672    04034B50 (67324752)\n-5C5A63 Extract Zip Spec      14 (20) '2.0'\n-5C5A64 Extract OS            00 (0) 'MS-DOS'\n-5C5A65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5C5A67 Compression Method    0000 (0) 'Stored'\n-5C5A69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5C5A6D CRC                   00000000 (0)\n-5C5A71 Compressed Size       00000000 (0)\n-5C5A75 Uncompressed Size     00000000 (0)\n-5C5A79 Filename Length       0027 (39)\n-5C5A7B Extra Length          0009 (9)\n-5C5A7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C5A7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5C5AA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5C5AA6   Length              0005 (5)\n-5C5AA8   Flags               01 (1) 'Modification'\n-5C5AA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5C5AAD PAYLOAD\n-\n-5C9537 DATA DESCRIPTOR       08074B50 (134695760)\n-5C953B CRC                   7D1A8DDF (2098892255)\n-5C953F Compressed Size       00003A8A (14986)\n-5C9543 Uncompressed Size     00003A8A (14986)\n-\n-5C9547 LOCAL HEADER #1673    04034B50 (67324752)\n-5C954B Extract Zip Spec      14 (20) '2.0'\n-5C954C Extract OS            00 (0) 'MS-DOS'\n-5C954D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5C954F Compression Method    0000 (0) 'Stored'\n-5C9551 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5C9555 CRC                   00000000 (0)\n-5C9559 Compressed Size       00000000 (0)\n-5C955D Uncompressed Size     00000000 (0)\n-5C9561 Filename Length       0023 (35)\n-5C9563 Extra Length          0009 (9)\n-5C9565 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5C9565: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5C9588 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5C958A   Length              0005 (5)\n-5C958C   Flags               01 (1) 'Modification'\n-5C958D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5C9591 PAYLOAD\n-\n-5CB71F DATA DESCRIPTOR       08074B50 (134695760)\n-5CB723 CRC                   B577D739 (3044529977)\n-5CB727 Compressed Size       0000218E (8590)\n-5CB72B Uncompressed Size     0000218E (8590)\n-\n-5CB72F LOCAL HEADER #1674    04034B50 (67324752)\n-5CB733 Extract Zip Spec      14 (20) '2.0'\n-5CB734 Extract OS            00 (0) 'MS-DOS'\n-5CB735 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CB737 Compression Method    0000 (0) 'Stored'\n-5CB739 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CB73D CRC                   00000000 (0)\n-5CB741 Compressed Size       00000000 (0)\n-5CB745 Uncompressed Size     00000000 (0)\n-5CB749 Filename Length       002A (42)\n-5CB74B Extra Length          0009 (9)\n-5CB74D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CB74D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CB777 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CB779   Length              0005 (5)\n-5CB77B   Flags               01 (1) 'Modification'\n-5CB77C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CB780 PAYLOAD\n-\n-5CC2E0 DATA DESCRIPTOR       08074B50 (134695760)\n-5CC2E4 CRC                   1894D2EA (412406506)\n-5CC2E8 Compressed Size       00000B60 (2912)\n-5CC2EC Uncompressed Size     00000B60 (2912)\n-\n-5CC2F0 LOCAL HEADER #1675    04034B50 (67324752)\n-5CC2F4 Extract Zip Spec      14 (20) '2.0'\n-5CC2F5 Extract OS            00 (0) 'MS-DOS'\n-5CC2F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CC2F8 Compression Method    0000 (0) 'Stored'\n-5CC2FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CC2FE CRC                   00000000 (0)\n-5CC302 Compressed Size       00000000 (0)\n-5CC306 Uncompressed Size     00000000 (0)\n-5CC30A Filename Length       0026 (38)\n-5CC30C Extra Length          0009 (9)\n-5CC30E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CC30E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CC334 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CC336   Length              0005 (5)\n-5CC338   Flags               01 (1) 'Modification'\n-5CC339   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CC33D PAYLOAD\n-\n-5CC7E2 DATA DESCRIPTOR       08074B50 (134695760)\n-5CC7E6 CRC                   4977D9A5 (1232591269)\n-5CC7EA Compressed Size       000004A5 (1189)\n-5CC7EE Uncompressed Size     000004A5 (1189)\n-\n-5CC7F2 LOCAL HEADER #1676    04034B50 (67324752)\n-5CC7F6 Extract Zip Spec      14 (20) '2.0'\n-5CC7F7 Extract OS            00 (0) 'MS-DOS'\n-5CC7F8 General Purpose Flag  0000 (0)\n-5CC7FA Compression Method    0000 (0) 'Stored'\n-5CC7FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CC800 CRC                   00000000 (0)\n-5CC804 Compressed Size       00000000 (0)\n-5CC808 Uncompressed Size     00000000 (0)\n-5CC80C Filename Length       001D (29)\n-5CC80E Extra Length          0009 (9)\n-5CC810 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CC810: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CC82D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CC82F   Length              0005 (5)\n-5CC831   Flags               01 (1) 'Modification'\n-5CC832   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5CC836 LOCAL HEADER #1677    04034B50 (67324752)\n-5CC83A Extract Zip Spec      14 (20) '2.0'\n-5CC83B Extract OS            00 (0) 'MS-DOS'\n-5CC83C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CC83E Compression Method    0000 (0) 'Stored'\n-5CC840 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CC844 CRC                   00000000 (0)\n-5CC848 Compressed Size       00000000 (0)\n-5CC84C Uncompressed Size     00000000 (0)\n-5CC850 Filename Length       0038 (56)\n-5CC852 Extra Length          0009 (9)\n-5CC854 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CC854: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CC88C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CC88E   Length              0005 (5)\n-5CC890   Flags               01 (1) 'Modification'\n-5CC891   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CC895 PAYLOAD\n-\n-5CCE8B DATA DESCRIPTOR       08074B50 (134695760)\n-5CCE8F CRC                   8DDA999F (2379913631)\n-5CCE93 Compressed Size       000005F6 (1526)\n-5CCE97 Uncompressed Size     000005F6 (1526)\n-\n-5CCE9B LOCAL HEADER #1678    04034B50 (67324752)\n-5CCE9F Extract Zip Spec      14 (20) '2.0'\n-5CCEA0 Extract OS            00 (0) 'MS-DOS'\n-5CCEA1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CCEA3 Compression Method    0000 (0) 'Stored'\n-5CCEA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CCEA9 CRC                   00000000 (0)\n-5CCEAD Compressed Size       00000000 (0)\n-5CCEB1 Uncompressed Size     00000000 (0)\n-5CCEB5 Filename Length       0029 (41)\n-5CCEB7 Extra Length          0009 (9)\n-5CCEB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CCEB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CCEE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CCEE4   Length              0005 (5)\n-5CCEE6   Flags               01 (1) 'Modification'\n-5CCEE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CCEEB PAYLOAD\n-\n-5CD70F DATA DESCRIPTOR       08074B50 (134695760)\n-5CD713 CRC                   27965EEA (664166122)\n-5CD717 Compressed Size       00000824 (2084)\n-5CD71B Uncompressed Size     00000824 (2084)\n-\n-5CD71F LOCAL HEADER #1679    04034B50 (67324752)\n-5CD723 Extract Zip Spec      14 (20) '2.0'\n-5CD724 Extract OS            00 (0) 'MS-DOS'\n-5CD725 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CD727 Compression Method    0000 (0) 'Stored'\n-5CD729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CD72D CRC                   00000000 (0)\n-5CD731 Compressed Size       00000000 (0)\n-5CD735 Uncompressed Size     00000000 (0)\n-5CD739 Filename Length       0030 (48)\n-5CD73B Extra Length          0009 (9)\n-5CD73D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CD73D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CD76D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CD76F   Length              0005 (5)\n-5CD771   Flags               01 (1) 'Modification'\n-5CD772   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CD776 PAYLOAD\n-\n-5CDE40 DATA DESCRIPTOR       08074B50 (134695760)\n-5CDE44 CRC                   5E2260E1 (1579311329)\n-5CDE48 Compressed Size       000006CA (1738)\n-5CDE4C Uncompressed Size     000006CA (1738)\n-\n-5CDE50 LOCAL HEADER #1680    04034B50 (67324752)\n-5CDE54 Extract Zip Spec      14 (20) '2.0'\n-5CDE55 Extract OS            00 (0) 'MS-DOS'\n-5CDE56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CDE58 Compression Method    0000 (0) 'Stored'\n-5CDE5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CDE5E CRC                   00000000 (0)\n-5CDE62 Compressed Size       00000000 (0)\n-5CDE66 Uncompressed Size     00000000 (0)\n-5CDE6A Filename Length       002E (46)\n-5CDE6C Extra Length          0009 (9)\n-5CDE6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CDE6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CDE9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CDE9E   Length              0005 (5)\n-5CDEA0   Flags               01 (1) 'Modification'\n-5CDEA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CDEA5 PAYLOAD\n-\n-5CEFC8 DATA DESCRIPTOR       08074B50 (134695760)\n-5CEFCC CRC                   665C4504 (1717323012)\n-5CEFD0 Compressed Size       00001123 (4387)\n-5CEFD4 Uncompressed Size     00001123 (4387)\n-\n-5CEFD8 LOCAL HEADER #1681    04034B50 (67324752)\n-5CEFDC Extract Zip Spec      14 (20) '2.0'\n-5CEFDD Extract OS            00 (0) 'MS-DOS'\n-5CEFDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CEFE0 Compression Method    0000 (0) 'Stored'\n-5CEFE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CEFE6 CRC                   00000000 (0)\n-5CEFEA Compressed Size       00000000 (0)\n-5CEFEE Uncompressed Size     00000000 (0)\n-5CEFF2 Filename Length       0035 (53)\n-5CEFF4 Extra Length          0009 (9)\n-5CEFF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CEFF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CF02B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CF02D   Length              0005 (5)\n-5CF02F   Flags               01 (1) 'Modification'\n-5CF030   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CF034 PAYLOAD\n-\n-5CF568 DATA DESCRIPTOR       08074B50 (134695760)\n-5CF56C CRC                   7FA20103 (2141323523)\n-5CF570 Compressed Size       00000534 (1332)\n-5CF574 Uncompressed Size     00000534 (1332)\n-\n-5CF578 LOCAL HEADER #1682    04034B50 (67324752)\n-5CF57C Extract Zip Spec      14 (20) '2.0'\n-5CF57D Extract OS            00 (0) 'MS-DOS'\n-5CF57E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5CF580 Compression Method    0000 (0) 'Stored'\n-5CF582 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5CF586 CRC                   00000000 (0)\n-5CF58A Compressed Size       00000000 (0)\n-5CF58E Uncompressed Size     00000000 (0)\n-5CF592 Filename Length       002B (43)\n-5CF594 Extra Length          0009 (9)\n-5CF596 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5CF596: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5CF5C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5CF5C3   Length              0005 (5)\n-5CF5C5   Flags               01 (1) 'Modification'\n-5CF5C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5CF5CA PAYLOAD\n-\n-5D00DA DATA DESCRIPTOR       08074B50 (134695760)\n-5D00DE CRC                   EE5647F1 (3998631921)\n-5D00E2 Compressed Size       00000B10 (2832)\n-5D00E6 Uncompressed Size     00000B10 (2832)\n-\n-5D00EA LOCAL HEADER #1683    04034B50 (67324752)\n-5D00EE Extract Zip Spec      14 (20) '2.0'\n-5D00EF Extract OS            00 (0) 'MS-DOS'\n-5D00F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D00F2 Compression Method    0000 (0) 'Stored'\n-5D00F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D00F8 CRC                   00000000 (0)\n-5D00FC Compressed Size       00000000 (0)\n-5D0100 Uncompressed Size     00000000 (0)\n-5D0104 Filename Length       002B (43)\n-5D0106 Extra Length          0009 (9)\n-5D0108 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D0108: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D0133 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D0135   Length              0005 (5)\n-5D0137   Flags               01 (1) 'Modification'\n-5D0138   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D013C PAYLOAD\n-\n-5D0806 DATA DESCRIPTOR       08074B50 (134695760)\n-5D080A CRC                   2FCAE9BB (801827259)\n-5D080E Compressed Size       000006CA (1738)\n-5D0812 Uncompressed Size     000006CA (1738)\n-\n-5D0816 LOCAL HEADER #1684    04034B50 (67324752)\n-5D081A Extract Zip Spec      14 (20) '2.0'\n-5D081B Extract OS            00 (0) 'MS-DOS'\n-5D081C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D081E Compression Method    0000 (0) 'Stored'\n-5D0820 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D0824 CRC                   00000000 (0)\n-5D0828 Compressed Size       00000000 (0)\n-5D082C Uncompressed Size     00000000 (0)\n-5D0830 Filename Length       002D (45)\n-5D0832 Extra Length          0009 (9)\n-5D0834 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D0834: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D0861 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D0863   Length              0005 (5)\n-5D0865   Flags               01 (1) 'Modification'\n-5D0866   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D086A PAYLOAD\n-\n-5D0F9C DATA DESCRIPTOR       08074B50 (134695760)\n-5D0FA0 CRC                   2EFAFE2D (788201005)\n-5D0FA4 Compressed Size       00000732 (1842)\n-5D0FA8 Uncompressed Size     00000732 (1842)\n-\n-5D0FAC LOCAL HEADER #1685    04034B50 (67324752)\n-5D0FB0 Extract Zip Spec      14 (20) '2.0'\n-5D0FB1 Extract OS            00 (0) 'MS-DOS'\n-5D0FB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D0FB4 Compression Method    0000 (0) 'Stored'\n-5D0FB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D0FBA CRC                   00000000 (0)\n-5D0FBE Compressed Size       00000000 (0)\n-5D0FC2 Uncompressed Size     00000000 (0)\n-5D0FC6 Filename Length       0028 (40)\n-5D0FC8 Extra Length          0009 (9)\n-5D0FCA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D0FCA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D0FF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D0FF4   Length              0005 (5)\n-5D0FF6   Flags               01 (1) 'Modification'\n-5D0FF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D0FFB PAYLOAD\n-\n-5D13CC DATA DESCRIPTOR       08074B50 (134695760)\n-5D13D0 CRC                   09ED5602 (166548994)\n-5D13D4 Compressed Size       000003D1 (977)\n-5D13D8 Uncompressed Size     000003D1 (977)\n-\n-5D13DC LOCAL HEADER #1686    04034B50 (67324752)\n-5D13E0 Extract Zip Spec      14 (20) '2.0'\n-5D13E1 Extract OS            00 (0) 'MS-DOS'\n-5D13E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D13E4 Compression Method    0000 (0) 'Stored'\n-5D13E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D13EA CRC                   00000000 (0)\n-5D13EE Compressed Size       00000000 (0)\n-5D13F2 Uncompressed Size     00000000 (0)\n-5D13F6 Filename Length       0028 (40)\n-5D13F8 Extra Length          0009 (9)\n-5D13FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D13FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D1422 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D1424   Length              0005 (5)\n-5D1426   Flags               01 (1) 'Modification'\n-5D1427   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D142B PAYLOAD\n-\n-5D211E DATA DESCRIPTOR       08074B50 (134695760)\n-5D2122 CRC                   58C25CA8 (1489132712)\n-5D2126 Compressed Size       00000CF3 (3315)\n-5D212A Uncompressed Size     00000CF3 (3315)\n-\n-5D212E LOCAL HEADER #1687    04034B50 (67324752)\n-5D2132 Extract Zip Spec      14 (20) '2.0'\n-5D2133 Extract OS            00 (0) 'MS-DOS'\n-5D2134 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D2136 Compression Method    0000 (0) 'Stored'\n-5D2138 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D213C CRC                   00000000 (0)\n-5D2140 Compressed Size       00000000 (0)\n-5D2144 Uncompressed Size     00000000 (0)\n-5D2148 Filename Length       002D (45)\n-5D214A Extra Length          0009 (9)\n-5D214C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D214C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D2179 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D217B   Length              0005 (5)\n-5D217D   Flags               01 (1) 'Modification'\n-5D217E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D2182 PAYLOAD\n-\n-5D319A DATA DESCRIPTOR       08074B50 (134695760)\n-5D319E CRC                   AC72FCB3 (2893216947)\n-5D31A2 Compressed Size       00001018 (4120)\n-5D31A6 Uncompressed Size     00001018 (4120)\n-\n-5D31AA LOCAL HEADER #1688    04034B50 (67324752)\n-5D31AE Extract Zip Spec      14 (20) '2.0'\n-5D31AF Extract OS            00 (0) 'MS-DOS'\n-5D31B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D31B2 Compression Method    0000 (0) 'Stored'\n-5D31B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D31B8 CRC                   00000000 (0)\n-5D31BC Compressed Size       00000000 (0)\n-5D31C0 Uncompressed Size     00000000 (0)\n-5D31C4 Filename Length       002F (47)\n-5D31C6 Extra Length          0009 (9)\n-5D31C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D31C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D31F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D31F9   Length              0005 (5)\n-5D31FB   Flags               01 (1) 'Modification'\n-5D31FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D3200 PAYLOAD\n-\n-5D3959 DATA DESCRIPTOR       08074B50 (134695760)\n-5D395D CRC                   FDB2D35D (4256355165)\n-5D3961 Compressed Size       00000759 (1881)\n-5D3965 Uncompressed Size     00000759 (1881)\n-\n-5D3969 LOCAL HEADER #1689    04034B50 (67324752)\n-5D396D Extract Zip Spec      14 (20) '2.0'\n-5D396E Extract OS            00 (0) 'MS-DOS'\n-5D396F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D3971 Compression Method    0000 (0) 'Stored'\n-5D3973 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D3977 CRC                   00000000 (0)\n-5D397B Compressed Size       00000000 (0)\n-5D397F Uncompressed Size     00000000 (0)\n-5D3983 Filename Length       002F (47)\n-5D3985 Extra Length          0009 (9)\n-5D3987 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D3987: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D39B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D39B8   Length              0005 (5)\n-5D39BA   Flags               01 (1) 'Modification'\n-5D39BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D39BF PAYLOAD\n-\n-5D3DF4 DATA DESCRIPTOR       08074B50 (134695760)\n-5D3DF8 CRC                   BC987223 (3164107299)\n-5D3DFC Compressed Size       00000435 (1077)\n-5D3E00 Uncompressed Size     00000435 (1077)\n-\n-5D3E04 LOCAL HEADER #1690    04034B50 (67324752)\n-5D3E08 Extract Zip Spec      14 (20) '2.0'\n-5D3E09 Extract OS            00 (0) 'MS-DOS'\n-5D3E0A General Purpose Flag  0000 (0)\n-5D3E0C Compression Method    0000 (0) 'Stored'\n-5D3E0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D3E12 CRC                   00000000 (0)\n-5D3E16 Compressed Size       00000000 (0)\n-5D3E1A Uncompressed Size     00000000 (0)\n-5D3E1E Filename Length       002A (42)\n-5D3E20 Extra Length          0009 (9)\n-5D3E22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D3E22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D3E4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D3E4E   Length              0005 (5)\n-5D3E50   Flags               01 (1) 'Modification'\n-5D3E51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5D3E55 LOCAL HEADER #1691    04034B50 (67324752)\n-5D3E59 Extract Zip Spec      14 (20) '2.0'\n-5D3E5A Extract OS            00 (0) 'MS-DOS'\n-5D3E5B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D3E5D Compression Method    0000 (0) 'Stored'\n-5D3E5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D3E63 CRC                   00000000 (0)\n-5D3E67 Compressed Size       00000000 (0)\n-5D3E6B Uncompressed Size     00000000 (0)\n-5D3E6F Filename Length       0043 (67)\n-5D3E71 Extra Length          0009 (9)\n-5D3E73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D3E73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D3EB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D3EB8   Length              0005 (5)\n-5D3EBA   Flags               01 (1) 'Modification'\n-5D3EBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D3EBF PAYLOAD\n-\n-5D6005 DATA DESCRIPTOR       08074B50 (134695760)\n-5D6009 CRC                   91868A4C (2441513548)\n-5D600D Compressed Size       00002146 (8518)\n-5D6011 Uncompressed Size     00002146 (8518)\n-\n-5D6015 LOCAL HEADER #1692    04034B50 (67324752)\n-5D6019 Extract Zip Spec      14 (20) '2.0'\n-5D601A Extract OS            00 (0) 'MS-DOS'\n-5D601B General Purpose Flag  0000 (0)\n-5D601D Compression Method    0000 (0) 'Stored'\n-5D601F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D6023 CRC                   00000000 (0)\n-5D6027 Compressed Size       00000000 (0)\n-5D602B Uncompressed Size     00000000 (0)\n-5D602F Filename Length       0031 (49)\n-5D6031 Extra Length          0009 (9)\n-5D6033 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D6033: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D6064 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D6066   Length              0005 (5)\n-5D6068   Flags               01 (1) 'Modification'\n-5D6069   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5D606D LOCAL HEADER #1693    04034B50 (67324752)\n-5D6071 Extract Zip Spec      14 (20) '2.0'\n-5D6072 Extract OS            00 (0) 'MS-DOS'\n-5D6073 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D6075 Compression Method    0000 (0) 'Stored'\n-5D6077 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D607B CRC                   00000000 (0)\n-5D607F Compressed Size       00000000 (0)\n-5D6083 Uncompressed Size     00000000 (0)\n-5D6087 Filename Length       0048 (72)\n-5D6089 Extra Length          0009 (9)\n-5D608B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D608B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D60D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D60D5   Length              0005 (5)\n-5D60D7   Flags               01 (1) 'Modification'\n-5D60D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D60DC PAYLOAD\n-\n-5D660E DATA DESCRIPTOR       08074B50 (134695760)\n-5D6612 CRC                   FB552F52 (4216663890)\n-5D6616 Compressed Size       00000532 (1330)\n-5D661A Uncompressed Size     00000532 (1330)\n-\n-5D661E LOCAL HEADER #1694    04034B50 (67324752)\n-5D6622 Extract Zip Spec      14 (20) '2.0'\n-5D6623 Extract OS            00 (0) 'MS-DOS'\n-5D6624 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D6626 Compression Method    0000 (0) 'Stored'\n-5D6628 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D662C CRC                   00000000 (0)\n-5D6630 Compressed Size       00000000 (0)\n-5D6634 Uncompressed Size     00000000 (0)\n-5D6638 Filename Length       004F (79)\n-5D663A Extra Length          0009 (9)\n-5D663C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D663C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D668B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D668D   Length              0005 (5)\n-5D668F   Flags               01 (1) 'Modification'\n-5D6690   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D6694 PAYLOAD\n-\n-5D6B8A DATA DESCRIPTOR       08074B50 (134695760)\n-5D6B8E CRC                   87AAF61F (2276128287)\n-5D6B92 Compressed Size       000004F6 (1270)\n-5D6B96 Uncompressed Size     000004F6 (1270)\n-\n-5D6B9A LOCAL HEADER #1695    04034B50 (67324752)\n-5D6B9E Extract Zip Spec      14 (20) '2.0'\n-5D6B9F Extract OS            00 (0) 'MS-DOS'\n-5D6BA0 General Purpose Flag  0000 (0)\n-5D6BA2 Compression Method    0000 (0) 'Stored'\n-5D6BA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D6BA8 CRC                   00000000 (0)\n-5D6BAC Compressed Size       00000000 (0)\n-5D6BB0 Uncompressed Size     00000000 (0)\n-5D6BB4 Filename Length       0033 (51)\n-5D6BB6 Extra Length          0009 (9)\n-5D6BB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D6BB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D6BEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D6BED   Length              0005 (5)\n-5D6BEF   Flags               01 (1) 'Modification'\n-5D6BF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5D6BF4 LOCAL HEADER #1696    04034B50 (67324752)\n-5D6BF8 Extract Zip Spec      14 (20) '2.0'\n-5D6BF9 Extract OS            00 (0) 'MS-DOS'\n-5D6BFA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D6BFC Compression Method    0000 (0) 'Stored'\n-5D6BFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D6C02 CRC                   00000000 (0)\n-5D6C06 Compressed Size       00000000 (0)\n-5D6C0A Uncompressed Size     00000000 (0)\n-5D6C0E Filename Length       004C (76)\n-5D6C10 Extra Length          0009 (9)\n-5D6C12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D6C12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D6C5E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D6C60   Length              0005 (5)\n-5D6C62   Flags               01 (1) 'Modification'\n-5D6C63   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D6C67 PAYLOAD\n-\n-5D7199 DATA DESCRIPTOR       08074B50 (134695760)\n-5D719D CRC                   267D653A (645752122)\n-5D71A1 Compressed Size       00000532 (1330)\n-5D71A5 Uncompressed Size     00000532 (1330)\n-\n-5D71A9 LOCAL HEADER #1697    04034B50 (67324752)\n-5D71AD Extract Zip Spec      14 (20) '2.0'\n-5D71AE Extract OS            00 (0) 'MS-DOS'\n-5D71AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D71B1 Compression Method    0000 (0) 'Stored'\n-5D71B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D71B7 CRC                   00000000 (0)\n-5D71BB Compressed Size       00000000 (0)\n-5D71BF Uncompressed Size     00000000 (0)\n-5D71C3 Filename Length       0053 (83)\n-5D71C5 Extra Length          0009 (9)\n-5D71C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D71C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D721A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D721C   Length              0005 (5)\n-5D721E   Flags               01 (1) 'Modification'\n-5D721F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D7223 PAYLOAD\n-\n-5D7721 DATA DESCRIPTOR       08074B50 (134695760)\n-5D7725 CRC                   2179F10E (561639694)\n-5D7729 Compressed Size       000004FE (1278)\n-5D772D Uncompressed Size     000004FE (1278)\n-\n-5D7731 LOCAL HEADER #1698    04034B50 (67324752)\n-5D7735 Extract Zip Spec      14 (20) '2.0'\n-5D7736 Extract OS            00 (0) 'MS-DOS'\n-5D7737 General Purpose Flag  0000 (0)\n-5D7739 Compression Method    0000 (0) 'Stored'\n-5D773B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D773F CRC                   00000000 (0)\n-5D7743 Compressed Size       00000000 (0)\n-5D7747 Uncompressed Size     00000000 (0)\n-5D774B Filename Length       0031 (49)\n-5D774D Extra Length          0009 (9)\n-5D774F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D774F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D7780 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D7782   Length              0005 (5)\n-5D7784   Flags               01 (1) 'Modification'\n-5D7785   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5D7789 LOCAL HEADER #1699    04034B50 (67324752)\n-5D778D Extract Zip Spec      14 (20) '2.0'\n-5D778E Extract OS            00 (0) 'MS-DOS'\n-5D778F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D7791 Compression Method    0000 (0) 'Stored'\n-5D7793 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D7797 CRC                   00000000 (0)\n-5D779B Compressed Size       00000000 (0)\n-5D779F Uncompressed Size     00000000 (0)\n-5D77A3 Filename Length       0042 (66)\n-5D77A5 Extra Length          0009 (9)\n-5D77A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D77A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D77E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D77EB   Length              0005 (5)\n-5D77ED   Flags               01 (1) 'Modification'\n-5D77EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D77F2 PAYLOAD\n-\n-5D9943 DATA DESCRIPTOR       08074B50 (134695760)\n-5D9947 CRC                   AF4730A5 (2940678309)\n-5D994B Compressed Size       00002151 (8529)\n-5D994F Uncompressed Size     00002151 (8529)\n-\n-5D9953 LOCAL HEADER #1700    04034B50 (67324752)\n-5D9957 Extract Zip Spec      14 (20) '2.0'\n-5D9958 Extract OS            00 (0) 'MS-DOS'\n-5D9959 General Purpose Flag  0000 (0)\n-5D995B Compression Method    0000 (0) 'Stored'\n-5D995D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D9961 CRC                   00000000 (0)\n-5D9965 Compressed Size       00000000 (0)\n-5D9969 Uncompressed Size     00000000 (0)\n-5D996D Filename Length       0037 (55)\n-5D996F Extra Length          0009 (9)\n-5D9971 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D9971: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D99A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D99AA   Length              0005 (5)\n-5D99AC   Flags               01 (1) 'Modification'\n-5D99AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5D99B1 LOCAL HEADER #1701    04034B50 (67324752)\n-5D99B5 Extract Zip Spec      14 (20) '2.0'\n-5D99B6 Extract OS            00 (0) 'MS-DOS'\n-5D99B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5D99B9 Compression Method    0000 (0) 'Stored'\n-5D99BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5D99BF CRC                   00000000 (0)\n-5D99C3 Compressed Size       00000000 (0)\n-5D99C7 Uncompressed Size     00000000 (0)\n-5D99CB Filename Length       0046 (70)\n-5D99CD Extra Length          0009 (9)\n-5D99CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5D99CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5D9A15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5D9A17   Length              0005 (5)\n-5D9A19   Flags               01 (1) 'Modification'\n-5D9A1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5D9A1E PAYLOAD\n-\n-5DA581 DATA DESCRIPTOR       08074B50 (134695760)\n-5DA585 CRC                   036D4C42 (57494594)\n-5DA589 Compressed Size       00000B63 (2915)\n-5DA58D Uncompressed Size     00000B63 (2915)\n-\n-5DA591 LOCAL HEADER #1702    04034B50 (67324752)\n-5DA595 Extract Zip Spec      14 (20) '2.0'\n-5DA596 Extract OS            00 (0) 'MS-DOS'\n-5DA597 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DA599 Compression Method    0000 (0) 'Stored'\n-5DA59B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DA59F CRC                   00000000 (0)\n-5DA5A3 Compressed Size       00000000 (0)\n-5DA5A7 Uncompressed Size     00000000 (0)\n-5DA5AB Filename Length       004E (78)\n-5DA5AD Extra Length          0009 (9)\n-5DA5AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DA5AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DA5FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DA5FF   Length              0005 (5)\n-5DA601   Flags               01 (1) 'Modification'\n-5DA602   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DA606 PAYLOAD\n-\n-5DAE10 DATA DESCRIPTOR       08074B50 (134695760)\n-5DAE14 CRC                   27E35EC9 (669212361)\n-5DAE18 Compressed Size       0000080A (2058)\n-5DAE1C Uncompressed Size     0000080A (2058)\n-\n-5DAE20 LOCAL HEADER #1703    04034B50 (67324752)\n-5DAE24 Extract Zip Spec      14 (20) '2.0'\n-5DAE25 Extract OS            00 (0) 'MS-DOS'\n-5DAE26 General Purpose Flag  0000 (0)\n-5DAE28 Compression Method    0000 (0) 'Stored'\n-5DAE2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DAE2E CRC                   00000000 (0)\n-5DAE32 Compressed Size       00000000 (0)\n-5DAE36 Uncompressed Size     00000000 (0)\n-5DAE3A Filename Length       0027 (39)\n-5DAE3C Extra Length          0009 (9)\n-5DAE3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DAE3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DAE65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DAE67   Length              0005 (5)\n-5DAE69   Flags               01 (1) 'Modification'\n-5DAE6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5DAE6E LOCAL HEADER #1704    04034B50 (67324752)\n-5DAE72 Extract Zip Spec      14 (20) '2.0'\n-5DAE73 Extract OS            00 (0) 'MS-DOS'\n-5DAE74 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DAE76 Compression Method    0000 (0) 'Stored'\n-5DAE78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DAE7C CRC                   00000000 (0)\n-5DAE80 Compressed Size       00000000 (0)\n-5DAE84 Uncompressed Size     00000000 (0)\n-5DAE88 Filename Length       003D (61)\n-5DAE8A Extra Length          0009 (9)\n-5DAE8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DAE8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DAEC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DAECB   Length              0005 (5)\n-5DAECD   Flags               01 (1) 'Modification'\n-5DAECE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DAED2 PAYLOAD\n-\n-5DC1A6 DATA DESCRIPTOR       08074B50 (134695760)\n-5DC1AA CRC                   469827B2 (1184376754)\n-5DC1AE Compressed Size       000012D4 (4820)\n-5DC1B2 Uncompressed Size     000012D4 (4820)\n-\n-5DC1B6 LOCAL HEADER #1705    04034B50 (67324752)\n-5DC1BA Extract Zip Spec      14 (20) '2.0'\n-5DC1BB Extract OS            00 (0) 'MS-DOS'\n-5DC1BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DC1BE Compression Method    0000 (0) 'Stored'\n-5DC1C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DC1C4 CRC                   00000000 (0)\n-5DC1C8 Compressed Size       00000000 (0)\n-5DC1CC Uncompressed Size     00000000 (0)\n-5DC1D0 Filename Length       003B (59)\n-5DC1D2 Extra Length          0009 (9)\n-5DC1D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DC1D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DC20F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DC211   Length              0005 (5)\n-5DC213   Flags               01 (1) 'Modification'\n-5DC214   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DC218 PAYLOAD\n-\n-5DD0E3 DATA DESCRIPTOR       08074B50 (134695760)\n-5DD0E7 CRC                   FF9ED7FD (4288600061)\n-5DD0EB Compressed Size       00000ECB (3787)\n-5DD0EF Uncompressed Size     00000ECB (3787)\n-\n-5DD0F3 LOCAL HEADER #1706    04034B50 (67324752)\n-5DD0F7 Extract Zip Spec      14 (20) '2.0'\n-5DD0F8 Extract OS            00 (0) 'MS-DOS'\n-5DD0F9 General Purpose Flag  0000 (0)\n-5DD0FB Compression Method    0000 (0) 'Stored'\n-5DD0FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DD101 CRC                   00000000 (0)\n-5DD105 Compressed Size       00000000 (0)\n-5DD109 Uncompressed Size     00000000 (0)\n-5DD10D Filename Length       0028 (40)\n-5DD10F Extra Length          0009 (9)\n-5DD111 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DD111: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DD139 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DD13B   Length              0005 (5)\n-5DD13D   Flags               01 (1) 'Modification'\n-5DD13E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5DD142 LOCAL HEADER #1707    04034B50 (67324752)\n-5DD146 Extract Zip Spec      14 (20) '2.0'\n-5DD147 Extract OS            00 (0) 'MS-DOS'\n-5DD148 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DD14A Compression Method    0000 (0) 'Stored'\n-5DD14C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DD150 CRC                   00000000 (0)\n-5DD154 Compressed Size       00000000 (0)\n-5DD158 Uncompressed Size     00000000 (0)\n-5DD15C Filename Length       0050 (80)\n-5DD15E Extra Length          0009 (9)\n-5DD160 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DD160: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DD1B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DD1B2   Length              0005 (5)\n-5DD1B4   Flags               01 (1) 'Modification'\n-5DD1B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DD1B9 PAYLOAD\n-\n-5DD87D DATA DESCRIPTOR       08074B50 (134695760)\n-5DD881 CRC                   5EE85BF3 (1592286195)\n-5DD885 Compressed Size       000006C4 (1732)\n-5DD889 Uncompressed Size     000006C4 (1732)\n-\n-5DD88D LOCAL HEADER #1708    04034B50 (67324752)\n-5DD891 Extract Zip Spec      14 (20) '2.0'\n-5DD892 Extract OS            00 (0) 'MS-DOS'\n-5DD893 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DD895 Compression Method    0000 (0) 'Stored'\n-5DD897 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DD89B CRC                   00000000 (0)\n-5DD89F Compressed Size       00000000 (0)\n-5DD8A3 Uncompressed Size     00000000 (0)\n-5DD8A7 Filename Length       0045 (69)\n-5DD8A9 Extra Length          0009 (9)\n-5DD8AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DD8AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DD8F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DD8F2   Length              0005 (5)\n-5DD8F4   Flags               01 (1) 'Modification'\n-5DD8F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DD8F9 PAYLOAD\n-\n-5DE780 DATA DESCRIPTOR       08074B50 (134695760)\n-5DE784 CRC                   4F276AEF (1327983343)\n-5DE788 Compressed Size       00000E87 (3719)\n-5DE78C Uncompressed Size     00000E87 (3719)\n-\n-5DE790 LOCAL HEADER #1709    04034B50 (67324752)\n-5DE794 Extract Zip Spec      14 (20) '2.0'\n-5DE795 Extract OS            00 (0) 'MS-DOS'\n-5DE796 General Purpose Flag  0000 (0)\n-5DE798 Compression Method    0000 (0) 'Stored'\n-5DE79A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DE79E CRC                   00000000 (0)\n-5DE7A2 Compressed Size       00000000 (0)\n-5DE7A6 Uncompressed Size     00000000 (0)\n-5DE7AA Filename Length       0029 (41)\n-5DE7AC Extra Length          0009 (9)\n-5DE7AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DE7AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DE7D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DE7D9   Length              0005 (5)\n-5DE7DB   Flags               01 (1) 'Modification'\n-5DE7DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5DE7E0 LOCAL HEADER #1710    04034B50 (67324752)\n-5DE7E4 Extract Zip Spec      14 (20) '2.0'\n-5DE7E5 Extract OS            00 (0) 'MS-DOS'\n-5DE7E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DE7E8 Compression Method    0000 (0) 'Stored'\n-5DE7EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DE7EE CRC                   00000000 (0)\n-5DE7F2 Compressed Size       00000000 (0)\n-5DE7F6 Uncompressed Size     00000000 (0)\n-5DE7FA Filename Length       0040 (64)\n-5DE7FC Extra Length          0009 (9)\n-5DE7FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DE7FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DE83E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DE840   Length              0005 (5)\n-5DE842   Flags               01 (1) 'Modification'\n-5DE843   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DE847 PAYLOAD\n-\n-5DF11B DATA DESCRIPTOR       08074B50 (134695760)\n-5DF11F CRC                   E239D68F (3795441295)\n-5DF123 Compressed Size       000008D4 (2260)\n-5DF127 Uncompressed Size     000008D4 (2260)\n-\n-5DF12B LOCAL HEADER #1711    04034B50 (67324752)\n-5DF12F Extract Zip Spec      14 (20) '2.0'\n-5DF130 Extract OS            00 (0) 'MS-DOS'\n-5DF131 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DF133 Compression Method    0000 (0) 'Stored'\n-5DF135 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DF139 CRC                   00000000 (0)\n-5DF13D Compressed Size       00000000 (0)\n-5DF141 Uncompressed Size     00000000 (0)\n-5DF145 Filename Length       004F (79)\n-5DF147 Extra Length          0009 (9)\n-5DF149 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DF149: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DF198 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DF19A   Length              0005 (5)\n-5DF19C   Flags               01 (1) 'Modification'\n-5DF19D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DF1A1 PAYLOAD\n-\n-5DFA3A DATA DESCRIPTOR       08074B50 (134695760)\n-5DFA3E CRC                   5A7B56B1 (1518032561)\n-5DFA42 Compressed Size       00000899 (2201)\n-5DFA46 Uncompressed Size     00000899 (2201)\n-\n-5DFA4A LOCAL HEADER #1712    04034B50 (67324752)\n-5DFA4E Extract Zip Spec      14 (20) '2.0'\n-5DFA4F Extract OS            00 (0) 'MS-DOS'\n-5DFA50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5DFA52 Compression Method    0000 (0) 'Stored'\n-5DFA54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5DFA58 CRC                   00000000 (0)\n-5DFA5C Compressed Size       00000000 (0)\n-5DFA60 Uncompressed Size     00000000 (0)\n-5DFA64 Filename Length       0049 (73)\n-5DFA66 Extra Length          0009 (9)\n-5DFA68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5DFA68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5DFAB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5DFAB3   Length              0005 (5)\n-5DFAB5   Flags               01 (1) 'Modification'\n-5DFAB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5DFABA PAYLOAD\n-\n-5E051F DATA DESCRIPTOR       08074B50 (134695760)\n-5E0523 CRC                   C3191A72 (3273202290)\n-5E0527 Compressed Size       00000A65 (2661)\n-5E052B Uncompressed Size     00000A65 (2661)\n-\n-5E052F LOCAL HEADER #1713    04034B50 (67324752)\n-5E0533 Extract Zip Spec      14 (20) '2.0'\n-5E0534 Extract OS            00 (0) 'MS-DOS'\n-5E0535 General Purpose Flag  0000 (0)\n-5E0537 Compression Method    0000 (0) 'Stored'\n-5E0539 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E053D CRC                   00000000 (0)\n-5E0541 Compressed Size       00000000 (0)\n-5E0545 Uncompressed Size     00000000 (0)\n-5E0549 Filename Length       0029 (41)\n-5E054B Extra Length          0009 (9)\n-5E054D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E054D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E0576 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E0578   Length              0005 (5)\n-5E057A   Flags               01 (1) 'Modification'\n-5E057B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5E057F LOCAL HEADER #1714    04034B50 (67324752)\n-5E0583 Extract Zip Spec      14 (20) '2.0'\n-5E0584 Extract OS            00 (0) 'MS-DOS'\n-5E0585 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E0587 Compression Method    0000 (0) 'Stored'\n-5E0589 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E058D CRC                   00000000 (0)\n-5E0591 Compressed Size       00000000 (0)\n-5E0595 Uncompressed Size     00000000 (0)\n-5E0599 Filename Length       0041 (65)\n-5E059B Extra Length          0009 (9)\n-5E059D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E059D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E05DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E05E0   Length              0005 (5)\n-5E05E2   Flags               01 (1) 'Modification'\n-5E05E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E05E7 PAYLOAD\n-\n-5E16A8 DATA DESCRIPTOR       08074B50 (134695760)\n-5E16AC CRC                   BCC9CB9D (3167341469)\n-5E16B0 Compressed Size       000010C1 (4289)\n-5E16B4 Uncompressed Size     000010C1 (4289)\n-\n-5E16B8 LOCAL HEADER #1715    04034B50 (67324752)\n-5E16BC Extract Zip Spec      14 (20) '2.0'\n-5E16BD Extract OS            00 (0) 'MS-DOS'\n-5E16BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E16C0 Compression Method    0000 (0) 'Stored'\n-5E16C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E16C6 CRC                   00000000 (0)\n-5E16CA Compressed Size       00000000 (0)\n-5E16CE Uncompressed Size     00000000 (0)\n-5E16D2 Filename Length       0047 (71)\n-5E16D4 Extra Length          0009 (9)\n-5E16D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E16D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E171D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E171F   Length              0005 (5)\n-5E1721   Flags               01 (1) 'Modification'\n-5E1722   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E1726 PAYLOAD\n-\n-5E2C11 DATA DESCRIPTOR       08074B50 (134695760)\n-5E2C15 CRC                   D501B98C (3573660044)\n-5E2C19 Compressed Size       000014EB (5355)\n-5E2C1D Uncompressed Size     000014EB (5355)\n-\n-5E2C21 LOCAL HEADER #1716    04034B50 (67324752)\n-5E2C25 Extract Zip Spec      14 (20) '2.0'\n-5E2C26 Extract OS            00 (0) 'MS-DOS'\n-5E2C27 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E2C29 Compression Method    0000 (0) 'Stored'\n-5E2C2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E2C2F CRC                   00000000 (0)\n-5E2C33 Compressed Size       00000000 (0)\n-5E2C37 Uncompressed Size     00000000 (0)\n-5E2C3B Filename Length       0044 (68)\n-5E2C3D Extra Length          0009 (9)\n-5E2C3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E2C3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E2C83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E2C85   Length              0005 (5)\n-5E2C87   Flags               01 (1) 'Modification'\n-5E2C88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E2C8C PAYLOAD\n-\n-5E427B DATA DESCRIPTOR       08074B50 (134695760)\n-5E427F CRC                   5955E637 (1498801719)\n-5E4283 Compressed Size       000015EF (5615)\n-5E4287 Uncompressed Size     000015EF (5615)\n-\n-5E428B LOCAL HEADER #1717    04034B50 (67324752)\n-5E428F Extract Zip Spec      14 (20) '2.0'\n-5E4290 Extract OS            00 (0) 'MS-DOS'\n-5E4291 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E4293 Compression Method    0000 (0) 'Stored'\n-5E4295 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E4299 CRC                   00000000 (0)\n-5E429D Compressed Size       00000000 (0)\n-5E42A1 Uncompressed Size     00000000 (0)\n-5E42A5 Filename Length       003F (63)\n-5E42A7 Extra Length          0009 (9)\n-5E42A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E42A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E42E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E42EA   Length              0005 (5)\n-5E42EC   Flags               01 (1) 'Modification'\n-5E42ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E42F1 PAYLOAD\n-\n-5E4FF1 DATA DESCRIPTOR       08074B50 (134695760)\n-5E4FF5 CRC                   0BF8995C (200841564)\n-5E4FF9 Compressed Size       00000D00 (3328)\n-5E4FFD Uncompressed Size     00000D00 (3328)\n-\n-5E5001 LOCAL HEADER #1718    04034B50 (67324752)\n-5E5005 Extract Zip Spec      14 (20) '2.0'\n-5E5006 Extract OS            00 (0) 'MS-DOS'\n-5E5007 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E5009 Compression Method    0000 (0) 'Stored'\n-5E500B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E500F CRC                   00000000 (0)\n-5E5013 Compressed Size       00000000 (0)\n-5E5017 Uncompressed Size     00000000 (0)\n-5E501B Filename Length       0043 (67)\n-5E501D Extra Length          0009 (9)\n-5E501F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E501F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E5062 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E5064   Length              0005 (5)\n-5E5066   Flags               01 (1) 'Modification'\n-5E5067   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E506B PAYLOAD\n-\n-5E6337 DATA DESCRIPTOR       08074B50 (134695760)\n-5E633B CRC                   B03BDD5E (2956713310)\n-5E633F Compressed Size       000012CC (4812)\n-5E6343 Uncompressed Size     000012CC (4812)\n-\n-5E6347 LOCAL HEADER #1719    04034B50 (67324752)\n-5E634B Extract Zip Spec      14 (20) '2.0'\n-5E634C Extract OS            00 (0) 'MS-DOS'\n-5E634D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E634F Compression Method    0000 (0) 'Stored'\n-5E6351 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E6355 CRC                   00000000 (0)\n-5E6359 Compressed Size       00000000 (0)\n-5E635D Uncompressed Size     00000000 (0)\n-5E6361 Filename Length       0049 (73)\n-5E6363 Extra Length          0009 (9)\n-5E6365 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E6365: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E63AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E63B0   Length              0005 (5)\n-5E63B2   Flags               01 (1) 'Modification'\n-5E63B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E63B7 PAYLOAD\n-\n-5E758C DATA DESCRIPTOR       08074B50 (134695760)\n-5E7590 CRC                   5F890A01 (1602816513)\n-5E7594 Compressed Size       000011D5 (4565)\n-5E7598 Uncompressed Size     000011D5 (4565)\n-\n-5E759C LOCAL HEADER #1720    04034B50 (67324752)\n-5E75A0 Extract Zip Spec      14 (20) '2.0'\n-5E75A1 Extract OS            00 (0) 'MS-DOS'\n-5E75A2 General Purpose Flag  0000 (0)\n-5E75A4 Compression Method    0000 (0) 'Stored'\n-5E75A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E75AA CRC                   00000000 (0)\n-5E75AE Compressed Size       00000000 (0)\n-5E75B2 Uncompressed Size     00000000 (0)\n-5E75B6 Filename Length       0024 (36)\n-5E75B8 Extra Length          0009 (9)\n-5E75BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E75BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E75DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E75E0   Length              0005 (5)\n-5E75E2   Flags               01 (1) 'Modification'\n-5E75E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5E75E7 LOCAL HEADER #1721    04034B50 (67324752)\n-5E75EB Extract Zip Spec      14 (20) '2.0'\n-5E75EC Extract OS            00 (0) 'MS-DOS'\n-5E75ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E75EF Compression Method    0000 (0) 'Stored'\n-5E75F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E75F5 CRC                   00000000 (0)\n-5E75F9 Compressed Size       00000000 (0)\n-5E75FD Uncompressed Size     00000000 (0)\n-5E7601 Filename Length       0034 (52)\n-5E7603 Extra Length          0009 (9)\n-5E7605 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E7605: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E7639 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E763B   Length              0005 (5)\n-5E763D   Flags               01 (1) 'Modification'\n-5E763E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E7642 PAYLOAD\n-\n-5E7F9B DATA DESCRIPTOR       08074B50 (134695760)\n-5E7F9F CRC                   B70DC735 (3071133493)\n-5E7FA3 Compressed Size       00000959 (2393)\n-5E7FA7 Uncompressed Size     00000959 (2393)\n-\n-5E7FAB LOCAL HEADER #1722    04034B50 (67324752)\n-5E7FAF Extract Zip Spec      14 (20) '2.0'\n-5E7FB0 Extract OS            00 (0) 'MS-DOS'\n-5E7FB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E7FB3 Compression Method    0000 (0) 'Stored'\n-5E7FB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E7FB9 CRC                   00000000 (0)\n-5E7FBD Compressed Size       00000000 (0)\n-5E7FC1 Uncompressed Size     00000000 (0)\n-5E7FC5 Filename Length       003B (59)\n-5E7FC7 Extra Length          0009 (9)\n-5E7FC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E7FC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E8004 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E8006   Length              0005 (5)\n-5E8008   Flags               01 (1) 'Modification'\n-5E8009   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E800D PAYLOAD\n-\n-5E869B DATA DESCRIPTOR       08074B50 (134695760)\n-5E869F CRC                   5ECBBD86 (1590410630)\n-5E86A3 Compressed Size       0000068E (1678)\n-5E86A7 Uncompressed Size     0000068E (1678)\n-\n-5E86AB LOCAL HEADER #1723    04034B50 (67324752)\n-5E86AF Extract Zip Spec      14 (20) '2.0'\n-5E86B0 Extract OS            00 (0) 'MS-DOS'\n-5E86B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E86B3 Compression Method    0000 (0) 'Stored'\n-5E86B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E86B9 CRC                   00000000 (0)\n-5E86BD Compressed Size       00000000 (0)\n-5E86C1 Uncompressed Size     00000000 (0)\n-5E86C5 Filename Length       0038 (56)\n-5E86C7 Extra Length          0009 (9)\n-5E86C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E86C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E8701 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E8703   Length              0005 (5)\n-5E8705   Flags               01 (1) 'Modification'\n-5E8706   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E870A PAYLOAD\n-\n-5E8D71 DATA DESCRIPTOR       08074B50 (134695760)\n-5E8D75 CRC                   0CC7ECCD (214428877)\n-5E8D79 Compressed Size       00000667 (1639)\n-5E8D7D Uncompressed Size     00000667 (1639)\n-\n-5E8D81 LOCAL HEADER #1724    04034B50 (67324752)\n-5E8D85 Extract Zip Spec      14 (20) '2.0'\n-5E8D86 Extract OS            00 (0) 'MS-DOS'\n-5E8D87 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E8D89 Compression Method    0000 (0) 'Stored'\n-5E8D8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E8D8F CRC                   00000000 (0)\n-5E8D93 Compressed Size       00000000 (0)\n-5E8D97 Uncompressed Size     00000000 (0)\n-5E8D9B Filename Length       0038 (56)\n-5E8D9D Extra Length          0009 (9)\n-5E8D9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E8D9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E8DD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E8DD9   Length              0005 (5)\n-5E8DDB   Flags               01 (1) 'Modification'\n-5E8DDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E8DE0 PAYLOAD\n-\n-5E9445 DATA DESCRIPTOR       08074B50 (134695760)\n-5E9449 CRC                   091CC51B (152880411)\n-5E944D Compressed Size       00000665 (1637)\n-5E9451 Uncompressed Size     00000665 (1637)\n-\n-5E9455 LOCAL HEADER #1725    04034B50 (67324752)\n-5E9459 Extract Zip Spec      14 (20) '2.0'\n-5E945A Extract OS            00 (0) 'MS-DOS'\n-5E945B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E945D Compression Method    0000 (0) 'Stored'\n-5E945F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E9463 CRC                   00000000 (0)\n-5E9467 Compressed Size       00000000 (0)\n-5E946B Uncompressed Size     00000000 (0)\n-5E946F Filename Length       003A (58)\n-5E9471 Extra Length          0009 (9)\n-5E9473 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E9473: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E94AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E94AF   Length              0005 (5)\n-5E94B1   Flags               01 (1) 'Modification'\n-5E94B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E94B6 PAYLOAD\n-\n-5E99FB DATA DESCRIPTOR       08074B50 (134695760)\n-5E99FF CRC                   04E4C5B6 (82101686)\n-5E9A03 Compressed Size       00000545 (1349)\n-5E9A07 Uncompressed Size     00000545 (1349)\n-\n-5E9A0B LOCAL HEADER #1726    04034B50 (67324752)\n-5E9A0F Extract Zip Spec      14 (20) '2.0'\n-5E9A10 Extract OS            00 (0) 'MS-DOS'\n-5E9A11 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5E9A13 Compression Method    0000 (0) 'Stored'\n-5E9A15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5E9A19 CRC                   00000000 (0)\n-5E9A1D Compressed Size       00000000 (0)\n-5E9A21 Uncompressed Size     00000000 (0)\n-5E9A25 Filename Length       0039 (57)\n-5E9A27 Extra Length          0009 (9)\n-5E9A29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5E9A29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5E9A62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5E9A64   Length              0005 (5)\n-5E9A66   Flags               01 (1) 'Modification'\n-5E9A67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5E9A6B PAYLOAD\n-\n-5EA0DA DATA DESCRIPTOR       08074B50 (134695760)\n-5EA0DE CRC                   DDA728F5 (3718719733)\n-5EA0E2 Compressed Size       0000066F (1647)\n-5EA0E6 Uncompressed Size     0000066F (1647)\n-\n-5EA0EA LOCAL HEADER #1727    04034B50 (67324752)\n-5EA0EE Extract Zip Spec      14 (20) '2.0'\n-5EA0EF Extract OS            00 (0) 'MS-DOS'\n-5EA0F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EA0F2 Compression Method    0000 (0) 'Stored'\n-5EA0F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EA0F8 CRC                   00000000 (0)\n-5EA0FC Compressed Size       00000000 (0)\n-5EA100 Uncompressed Size     00000000 (0)\n-5EA104 Filename Length       0037 (55)\n-5EA106 Extra Length          0009 (9)\n-5EA108 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EA108: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EA13F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EA141   Length              0005 (5)\n-5EA143   Flags               01 (1) 'Modification'\n-5EA144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EA148 PAYLOAD\n-\n-5EA67C DATA DESCRIPTOR       08074B50 (134695760)\n-5EA680 CRC                   443829ED (1144531437)\n-5EA684 Compressed Size       00000534 (1332)\n-5EA688 Uncompressed Size     00000534 (1332)\n-\n-5EA68C LOCAL HEADER #1728    04034B50 (67324752)\n-5EA690 Extract Zip Spec      14 (20) '2.0'\n-5EA691 Extract OS            00 (0) 'MS-DOS'\n-5EA692 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EA694 Compression Method    0000 (0) 'Stored'\n-5EA696 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EA69A CRC                   00000000 (0)\n-5EA69E Compressed Size       00000000 (0)\n-5EA6A2 Uncompressed Size     00000000 (0)\n-5EA6A6 Filename Length       0033 (51)\n-5EA6A8 Extra Length          0009 (9)\n-5EA6AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EA6AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EA6DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EA6DF   Length              0005 (5)\n-5EA6E1   Flags               01 (1) 'Modification'\n-5EA6E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EA6E6 PAYLOAD\n-\n-5EACBA DATA DESCRIPTOR       08074B50 (134695760)\n-5EACBE CRC                   482DE9DF (1210968543)\n-5EACC2 Compressed Size       000005D4 (1492)\n-5EACC6 Uncompressed Size     000005D4 (1492)\n-\n-5EACCA LOCAL HEADER #1729    04034B50 (67324752)\n-5EACCE Extract Zip Spec      14 (20) '2.0'\n-5EACCF Extract OS            00 (0) 'MS-DOS'\n-5EACD0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EACD2 Compression Method    0000 (0) 'Stored'\n-5EACD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EACD8 CRC                   00000000 (0)\n-5EACDC Compressed Size       00000000 (0)\n-5EACE0 Uncompressed Size     00000000 (0)\n-5EACE4 Filename Length       0038 (56)\n-5EACE6 Extra Length          0009 (9)\n-5EACE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EACE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EAD20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EAD22   Length              0005 (5)\n-5EAD24   Flags               01 (1) 'Modification'\n-5EAD25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EAD29 PAYLOAD\n-\n-5EB262 DATA DESCRIPTOR       08074B50 (134695760)\n-5EB266 CRC                   D3DCC156 (3554459990)\n-5EB26A Compressed Size       00000539 (1337)\n-5EB26E Uncompressed Size     00000539 (1337)\n-\n-5EB272 LOCAL HEADER #1730    04034B50 (67324752)\n-5EB276 Extract Zip Spec      14 (20) '2.0'\n-5EB277 Extract OS            00 (0) 'MS-DOS'\n-5EB278 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EB27A Compression Method    0000 (0) 'Stored'\n-5EB27C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EB280 CRC                   00000000 (0)\n-5EB284 Compressed Size       00000000 (0)\n-5EB288 Uncompressed Size     00000000 (0)\n-5EB28C Filename Length       0032 (50)\n-5EB28E Extra Length          0009 (9)\n-5EB290 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EB290: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EB2C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EB2C4   Length              0005 (5)\n-5EB2C6   Flags               01 (1) 'Modification'\n-5EB2C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EB2CB PAYLOAD\n-\n-5EB885 DATA DESCRIPTOR       08074B50 (134695760)\n-5EB889 CRC                   C4DD1C85 (3302825093)\n-5EB88D Compressed Size       000005BA (1466)\n-5EB891 Uncompressed Size     000005BA (1466)\n-\n-5EB895 LOCAL HEADER #1731    04034B50 (67324752)\n-5EB899 Extract Zip Spec      14 (20) '2.0'\n-5EB89A Extract OS            00 (0) 'MS-DOS'\n-5EB89B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EB89D Compression Method    0000 (0) 'Stored'\n-5EB89F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EB8A3 CRC                   00000000 (0)\n-5EB8A7 Compressed Size       00000000 (0)\n-5EB8AB Uncompressed Size     00000000 (0)\n-5EB8AF Filename Length       0036 (54)\n-5EB8B1 Extra Length          0009 (9)\n-5EB8B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EB8B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EB8E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EB8EB   Length              0005 (5)\n-5EB8ED   Flags               01 (1) 'Modification'\n-5EB8EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EB8F2 PAYLOAD\n-\n-5EC415 DATA DESCRIPTOR       08074B50 (134695760)\n-5EC419 CRC                   21EA98CC (569022668)\n-5EC41D Compressed Size       00000B23 (2851)\n-5EC421 Uncompressed Size     00000B23 (2851)\n-\n-5EC425 LOCAL HEADER #1732    04034B50 (67324752)\n-5EC429 Extract Zip Spec      14 (20) '2.0'\n-5EC42A Extract OS            00 (0) 'MS-DOS'\n-5EC42B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EC42D Compression Method    0000 (0) 'Stored'\n-5EC42F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EC433 CRC                   00000000 (0)\n-5EC437 Compressed Size       00000000 (0)\n-5EC43B Uncompressed Size     00000000 (0)\n-5EC43F Filename Length       0032 (50)\n-5EC441 Extra Length          0009 (9)\n-5EC443 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EC443: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EC475 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EC477   Length              0005 (5)\n-5EC479   Flags               01 (1) 'Modification'\n-5EC47A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EC47E PAYLOAD\n-\n-5ECA23 DATA DESCRIPTOR       08074B50 (134695760)\n-5ECA27 CRC                   96DC7168 (2531029352)\n-5ECA2B Compressed Size       000005A5 (1445)\n-5ECA2F Uncompressed Size     000005A5 (1445)\n-\n-5ECA33 LOCAL HEADER #1733    04034B50 (67324752)\n-5ECA37 Extract Zip Spec      14 (20) '2.0'\n-5ECA38 Extract OS            00 (0) 'MS-DOS'\n-5ECA39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5ECA3B Compression Method    0000 (0) 'Stored'\n-5ECA3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ECA41 CRC                   00000000 (0)\n-5ECA45 Compressed Size       00000000 (0)\n-5ECA49 Uncompressed Size     00000000 (0)\n-5ECA4D Filename Length       0039 (57)\n-5ECA4F Extra Length          0009 (9)\n-5ECA51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ECA51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ECA8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ECA8C   Length              0005 (5)\n-5ECA8E   Flags               01 (1) 'Modification'\n-5ECA8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5ECA93 PAYLOAD\n-\n-5ED102 DATA DESCRIPTOR       08074B50 (134695760)\n-5ED106 CRC                   F57D6E98 (4118638232)\n-5ED10A Compressed Size       0000066F (1647)\n-5ED10E Uncompressed Size     0000066F (1647)\n-\n-5ED112 LOCAL HEADER #1734    04034B50 (67324752)\n-5ED116 Extract Zip Spec      14 (20) '2.0'\n-5ED117 Extract OS            00 (0) 'MS-DOS'\n-5ED118 General Purpose Flag  0000 (0)\n-5ED11A Compression Method    0000 (0) 'Stored'\n-5ED11C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ED120 CRC                   00000000 (0)\n-5ED124 Compressed Size       00000000 (0)\n-5ED128 Uncompressed Size     00000000 (0)\n-5ED12C Filename Length       0024 (36)\n-5ED12E Extra Length          0009 (9)\n-5ED130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ED130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ED154 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ED156   Length              0005 (5)\n-5ED158   Flags               01 (1) 'Modification'\n-5ED159   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5ED15D LOCAL HEADER #1735    04034B50 (67324752)\n-5ED161 Extract Zip Spec      14 (20) '2.0'\n-5ED162 Extract OS            00 (0) 'MS-DOS'\n-5ED163 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5ED165 Compression Method    0000 (0) 'Stored'\n-5ED167 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ED16B CRC                   00000000 (0)\n-5ED16F Compressed Size       00000000 (0)\n-5ED173 Uncompressed Size     00000000 (0)\n-5ED177 Filename Length       0037 (55)\n-5ED179 Extra Length          0009 (9)\n-5ED17B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ED17B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5ED1B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5ED1B4   Length              0005 (5)\n-5ED1B6   Flags               01 (1) 'Modification'\n-5ED1B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5ED1BB PAYLOAD\n-\n-5ED9A7 DATA DESCRIPTOR       08074B50 (134695760)\n-5ED9AB CRC                   CD8D1CAF (3448577199)\n-5ED9AF Compressed Size       000007EC (2028)\n-5ED9B3 Uncompressed Size     000007EC (2028)\n-\n-5ED9B7 LOCAL HEADER #1736    04034B50 (67324752)\n-5ED9BB Extract Zip Spec      14 (20) '2.0'\n-5ED9BC Extract OS            00 (0) 'MS-DOS'\n-5ED9BD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5ED9BF Compression Method    0000 (0) 'Stored'\n-5ED9C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5ED9C5 CRC                   00000000 (0)\n-5ED9C9 Compressed Size       00000000 (0)\n-5ED9CD Uncompressed Size     00000000 (0)\n-5ED9D1 Filename Length       003B (59)\n-5ED9D3 Extra Length          0009 (9)\n-5ED9D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5ED9D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EDA10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EDA12   Length              0005 (5)\n-5EDA14   Flags               01 (1) 'Modification'\n-5EDA15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EDA19 PAYLOAD\n-\n-5EE44B DATA DESCRIPTOR       08074B50 (134695760)\n-5EE44F CRC                   7A4C73B7 (2051830711)\n-5EE453 Compressed Size       00000A32 (2610)\n-5EE457 Uncompressed Size     00000A32 (2610)\n-\n-5EE45B LOCAL HEADER #1737    04034B50 (67324752)\n-5EE45F Extract Zip Spec      14 (20) '2.0'\n-5EE460 Extract OS            00 (0) 'MS-DOS'\n-5EE461 General Purpose Flag  0000 (0)\n-5EE463 Compression Method    0000 (0) 'Stored'\n-5EE465 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EE469 CRC                   00000000 (0)\n-5EE46D Compressed Size       00000000 (0)\n-5EE471 Uncompressed Size     00000000 (0)\n-5EE475 Filename Length       002E (46)\n-5EE477 Extra Length          0009 (9)\n-5EE479 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EE479: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EE4A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EE4A9   Length              0005 (5)\n-5EE4AB   Flags               01 (1) 'Modification'\n-5EE4AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5EE4B0 LOCAL HEADER #1738    04034B50 (67324752)\n-5EE4B4 Extract Zip Spec      14 (20) '2.0'\n-5EE4B5 Extract OS            00 (0) 'MS-DOS'\n-5EE4B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5EE4B8 Compression Method    0000 (0) 'Stored'\n-5EE4BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5EE4BE CRC                   00000000 (0)\n-5EE4C2 Compressed Size       00000000 (0)\n-5EE4C6 Uncompressed Size     00000000 (0)\n-5EE4CA Filename Length       0042 (66)\n-5EE4CC Extra Length          0009 (9)\n-5EE4CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5EE4CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5EE510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5EE512   Length              0005 (5)\n-5EE514   Flags               01 (1) 'Modification'\n-5EE515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5EE519 PAYLOAD\n-\n-5F188D DATA DESCRIPTOR       08074B50 (134695760)\n-5F1891 CRC                   BCF898DF (3170408671)\n-5F1895 Compressed Size       00003374 (13172)\n-5F1899 Uncompressed Size     00003374 (13172)\n-\n-5F189D LOCAL HEADER #1739    04034B50 (67324752)\n-5F18A1 Extract Zip Spec      14 (20) '2.0'\n-5F18A2 Extract OS            00 (0) 'MS-DOS'\n-5F18A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F18A5 Compression Method    0000 (0) 'Stored'\n-5F18A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F18AB CRC                   00000000 (0)\n-5F18AF Compressed Size       00000000 (0)\n-5F18B3 Uncompressed Size     00000000 (0)\n-5F18B7 Filename Length       0049 (73)\n-5F18B9 Extra Length          0009 (9)\n-5F18BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F18BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F1904 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F1906   Length              0005 (5)\n-5F1908   Flags               01 (1) 'Modification'\n-5F1909   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F190D PAYLOAD\n-\n-5F1E4D DATA DESCRIPTOR       08074B50 (134695760)\n-5F1E51 CRC                   E35903B0 (3814261680)\n-5F1E55 Compressed Size       00000540 (1344)\n-5F1E59 Uncompressed Size     00000540 (1344)\n-\n-5F1E5D LOCAL HEADER #1740    04034B50 (67324752)\n-5F1E61 Extract Zip Spec      14 (20) '2.0'\n-5F1E62 Extract OS            00 (0) 'MS-DOS'\n-5F1E63 General Purpose Flag  0000 (0)\n-5F1E65 Compression Method    0000 (0) 'Stored'\n-5F1E67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F1E6B CRC                   00000000 (0)\n-5F1E6F Compressed Size       00000000 (0)\n-5F1E73 Uncompressed Size     00000000 (0)\n-5F1E77 Filename Length       0035 (53)\n-5F1E79 Extra Length          0009 (9)\n-5F1E7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F1E7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F1EB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F1EB2   Length              0005 (5)\n-5F1EB4   Flags               01 (1) 'Modification'\n-5F1EB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F1EB9 LOCAL HEADER #1741    04034B50 (67324752)\n-5F1EBD Extract Zip Spec      14 (20) '2.0'\n-5F1EBE Extract OS            00 (0) 'MS-DOS'\n-5F1EBF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F1EC1 Compression Method    0000 (0) 'Stored'\n-5F1EC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F1EC7 CRC                   00000000 (0)\n-5F1ECB Compressed Size       00000000 (0)\n-5F1ECF Uncompressed Size     00000000 (0)\n-5F1ED3 Filename Length       0043 (67)\n-5F1ED5 Extra Length          0009 (9)\n-5F1ED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F1ED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F1F1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F1F1C   Length              0005 (5)\n-5F1F1E   Flags               01 (1) 'Modification'\n-5F1F1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F1F23 PAYLOAD\n-\n-5F24AE DATA DESCRIPTOR       08074B50 (134695760)\n-5F24B2 CRC                   76BEB07B (1992208507)\n-5F24B6 Compressed Size       0000058B (1419)\n-5F24BA Uncompressed Size     0000058B (1419)\n-\n-5F24BE LOCAL HEADER #1742    04034B50 (67324752)\n-5F24C2 Extract Zip Spec      14 (20) '2.0'\n-5F24C3 Extract OS            00 (0) 'MS-DOS'\n-5F24C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F24C6 Compression Method    0000 (0) 'Stored'\n-5F24C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F24CC CRC                   00000000 (0)\n-5F24D0 Compressed Size       00000000 (0)\n-5F24D4 Uncompressed Size     00000000 (0)\n-5F24D8 Filename Length       004A (74)\n-5F24DA Extra Length          0009 (9)\n-5F24DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F24DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F2526 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F2528   Length              0005 (5)\n-5F252A   Flags               01 (1) 'Modification'\n-5F252B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F252F PAYLOAD\n-\n-5F2B86 DATA DESCRIPTOR       08074B50 (134695760)\n-5F2B8A CRC                   AFF80853 (2952267859)\n-5F2B8E Compressed Size       00000657 (1623)\n-5F2B92 Uncompressed Size     00000657 (1623)\n-\n-5F2B96 LOCAL HEADER #1743    04034B50 (67324752)\n-5F2B9A Extract Zip Spec      14 (20) '2.0'\n-5F2B9B Extract OS            00 (0) 'MS-DOS'\n-5F2B9C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F2B9E Compression Method    0000 (0) 'Stored'\n-5F2BA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F2BA4 CRC                   00000000 (0)\n-5F2BA8 Compressed Size       00000000 (0)\n-5F2BAC Uncompressed Size     00000000 (0)\n-5F2BB0 Filename Length       004A (74)\n-5F2BB2 Extra Length          0009 (9)\n-5F2BB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F2BB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F2BFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F2C00   Length              0005 (5)\n-5F2C02   Flags               01 (1) 'Modification'\n-5F2C03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F2C07 PAYLOAD\n-\n-5F4022 DATA DESCRIPTOR       08074B50 (134695760)\n-5F4026 CRC                   64878DEF (1686605295)\n-5F402A Compressed Size       0000141B (5147)\n-5F402E Uncompressed Size     0000141B (5147)\n-\n-5F4032 LOCAL HEADER #1744    04034B50 (67324752)\n-5F4036 Extract Zip Spec      14 (20) '2.0'\n-5F4037 Extract OS            00 (0) 'MS-DOS'\n-5F4038 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F403A Compression Method    0000 (0) 'Stored'\n-5F403C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F4040 CRC                   00000000 (0)\n-5F4044 Compressed Size       00000000 (0)\n-5F4048 Uncompressed Size     00000000 (0)\n-5F404C Filename Length       0047 (71)\n-5F404E Extra Length          0009 (9)\n-5F4050 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F4050: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F4097 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F4099   Length              0005 (5)\n-5F409B   Flags               01 (1) 'Modification'\n-5F409C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F40A0 PAYLOAD\n-\n-5F4645 DATA DESCRIPTOR       08074B50 (134695760)\n-5F4649 CRC                   B919F4D5 (3105486037)\n-5F464D Compressed Size       000005A5 (1445)\n-5F4651 Uncompressed Size     000005A5 (1445)\n-\n-5F4655 LOCAL HEADER #1745    04034B50 (67324752)\n-5F4659 Extract Zip Spec      14 (20) '2.0'\n-5F465A Extract OS            00 (0) 'MS-DOS'\n-5F465B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F465D Compression Method    0000 (0) 'Stored'\n-5F465F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F4663 CRC                   00000000 (0)\n-5F4667 Compressed Size       00000000 (0)\n-5F466B Uncompressed Size     00000000 (0)\n-5F466F Filename Length       004E (78)\n-5F4671 Extra Length          0009 (9)\n-5F4673 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F4673: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F46C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F46C3   Length              0005 (5)\n-5F46C5   Flags               01 (1) 'Modification'\n-5F46C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F46CA PAYLOAD\n-\n-5F4C0B DATA DESCRIPTOR       08074B50 (134695760)\n-5F4C0F CRC                   06325F9E (103964574)\n-5F4C13 Compressed Size       00000541 (1345)\n-5F4C17 Uncompressed Size     00000541 (1345)\n-\n-5F4C1B LOCAL HEADER #1746    04034B50 (67324752)\n-5F4C1F Extract Zip Spec      14 (20) '2.0'\n-5F4C20 Extract OS            00 (0) 'MS-DOS'\n-5F4C21 General Purpose Flag  0000 (0)\n-5F4C23 Compression Method    0000 (0) 'Stored'\n-5F4C25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F4C29 CRC                   00000000 (0)\n-5F4C2D Compressed Size       00000000 (0)\n-5F4C31 Uncompressed Size     00000000 (0)\n-5F4C35 Filename Length       003B (59)\n-5F4C37 Extra Length          0009 (9)\n-5F4C39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F4C39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F4C74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F4C76   Length              0005 (5)\n-5F4C78   Flags               01 (1) 'Modification'\n-5F4C79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F4C7D LOCAL HEADER #1747    04034B50 (67324752)\n-5F4C81 Extract Zip Spec      14 (20) '2.0'\n-5F4C82 Extract OS            00 (0) 'MS-DOS'\n-5F4C83 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F4C85 Compression Method    0000 (0) 'Stored'\n-5F4C87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F4C8B CRC                   00000000 (0)\n-5F4C8F Compressed Size       00000000 (0)\n-5F4C93 Uncompressed Size     00000000 (0)\n-5F4C97 Filename Length       0053 (83)\n-5F4C99 Extra Length          0009 (9)\n-5F4C9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F4C9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F4CEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F4CF0   Length              0005 (5)\n-5F4CF2   Flags               01 (1) 'Modification'\n-5F4CF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F4CF7 PAYLOAD\n-\n-5F5229 DATA DESCRIPTOR       08074B50 (134695760)\n-5F522D CRC                   1C57CB8B (475515787)\n-5F5231 Compressed Size       00000532 (1330)\n-5F5235 Uncompressed Size     00000532 (1330)\n-\n-5F5239 LOCAL HEADER #1748    04034B50 (67324752)\n-5F523D Extract Zip Spec      14 (20) '2.0'\n-5F523E Extract OS            00 (0) 'MS-DOS'\n-5F523F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F5241 Compression Method    0000 (0) 'Stored'\n-5F5243 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F5247 CRC                   00000000 (0)\n-5F524B Compressed Size       00000000 (0)\n-5F524F Uncompressed Size     00000000 (0)\n-5F5253 Filename Length       0053 (83)\n-5F5255 Extra Length          0009 (9)\n-5F5257 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F5257: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F52AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F52AC   Length              0005 (5)\n-5F52AE   Flags               01 (1) 'Modification'\n-5F52AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F52B3 PAYLOAD\n-\n-5F5987 DATA DESCRIPTOR       08074B50 (134695760)\n-5F598B CRC                   9B53D29B (2605961883)\n-5F598F Compressed Size       000006D4 (1748)\n-5F5993 Uncompressed Size     000006D4 (1748)\n-\n-5F5997 LOCAL HEADER #1749    04034B50 (67324752)\n-5F599B Extract Zip Spec      14 (20) '2.0'\n-5F599C Extract OS            00 (0) 'MS-DOS'\n-5F599D General Purpose Flag  0000 (0)\n-5F599F Compression Method    0000 (0) 'Stored'\n-5F59A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F59A5 CRC                   00000000 (0)\n-5F59A9 Compressed Size       00000000 (0)\n-5F59AD Uncompressed Size     00000000 (0)\n-5F59B1 Filename Length       0029 (41)\n-5F59B3 Extra Length          0009 (9)\n-5F59B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F59B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F59DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F59E0   Length              0005 (5)\n-5F59E2   Flags               01 (1) 'Modification'\n-5F59E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F59E7 LOCAL HEADER #1750    04034B50 (67324752)\n-5F59EB Extract Zip Spec      14 (20) '2.0'\n-5F59EC Extract OS            00 (0) 'MS-DOS'\n-5F59ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F59EF Compression Method    0000 (0) 'Stored'\n-5F59F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F59F5 CRC                   00000000 (0)\n-5F59F9 Compressed Size       00000000 (0)\n-5F59FD Uncompressed Size     00000000 (0)\n-5F5A01 Filename Length       003F (63)\n-5F5A03 Extra Length          0009 (9)\n-5F5A05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F5A05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F5A44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F5A46   Length              0005 (5)\n-5F5A48   Flags               01 (1) 'Modification'\n-5F5A49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F5A4D PAYLOAD\n-\n-5F6681 DATA DESCRIPTOR       08074B50 (134695760)\n-5F6685 CRC                   F601821B (4127293979)\n-5F6689 Compressed Size       00000C34 (3124)\n-5F668D Uncompressed Size     00000C34 (3124)\n-\n-5F6691 LOCAL HEADER #1751    04034B50 (67324752)\n-5F6695 Extract Zip Spec      14 (20) '2.0'\n-5F6696 Extract OS            00 (0) 'MS-DOS'\n-5F6697 General Purpose Flag  0000 (0)\n-5F6699 Compression Method    0000 (0) 'Stored'\n-5F669B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F669F CRC                   00000000 (0)\n-5F66A3 Compressed Size       00000000 (0)\n-5F66A7 Uncompressed Size     00000000 (0)\n-5F66AB Filename Length       0029 (41)\n-5F66AD Extra Length          0009 (9)\n-5F66AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F66AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F66D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F66DA   Length              0005 (5)\n-5F66DC   Flags               01 (1) 'Modification'\n-5F66DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F66E1 LOCAL HEADER #1752    04034B50 (67324752)\n-5F66E5 Extract Zip Spec      14 (20) '2.0'\n-5F66E6 Extract OS            00 (0) 'MS-DOS'\n-5F66E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F66E9 Compression Method    0000 (0) 'Stored'\n-5F66EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F66EF CRC                   00000000 (0)\n-5F66F3 Compressed Size       00000000 (0)\n-5F66F7 Uncompressed Size     00000000 (0)\n-5F66FB Filename Length       0042 (66)\n-5F66FD Extra Length          0009 (9)\n-5F66FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F66FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F6741 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F6743   Length              0005 (5)\n-5F6745   Flags               01 (1) 'Modification'\n-5F6746   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F674A PAYLOAD\n-\n-5F769D DATA DESCRIPTOR       08074B50 (134695760)\n-5F76A1 CRC                   9E4A1FA8 (2655657896)\n-5F76A5 Compressed Size       00000F53 (3923)\n-5F76A9 Uncompressed Size     00000F53 (3923)\n-\n-5F76AD LOCAL HEADER #1753    04034B50 (67324752)\n-5F76B1 Extract Zip Spec      14 (20) '2.0'\n-5F76B2 Extract OS            00 (0) 'MS-DOS'\n-5F76B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F76B5 Compression Method    0000 (0) 'Stored'\n-5F76B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F76BB CRC                   00000000 (0)\n-5F76BF Compressed Size       00000000 (0)\n-5F76C3 Uncompressed Size     00000000 (0)\n-5F76C7 Filename Length       003F (63)\n-5F76C9 Extra Length          0009 (9)\n-5F76CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F76CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F770A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F770C   Length              0005 (5)\n-5F770E   Flags               01 (1) 'Modification'\n-5F770F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F7713 PAYLOAD\n-\n-5F7C2A DATA DESCRIPTOR       08074B50 (134695760)\n-5F7C2E CRC                   0EB84276 (246956662)\n-5F7C32 Compressed Size       00000517 (1303)\n-5F7C36 Uncompressed Size     00000517 (1303)\n-\n-5F7C3A LOCAL HEADER #1754    04034B50 (67324752)\n-5F7C3E Extract Zip Spec      14 (20) '2.0'\n-5F7C3F Extract OS            00 (0) 'MS-DOS'\n-5F7C40 General Purpose Flag  0000 (0)\n-5F7C42 Compression Method    0000 (0) 'Stored'\n-5F7C44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F7C48 CRC                   00000000 (0)\n-5F7C4C Compressed Size       00000000 (0)\n-5F7C50 Uncompressed Size     00000000 (0)\n-5F7C54 Filename Length       002B (43)\n-5F7C56 Extra Length          0009 (9)\n-5F7C58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F7C58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F7C83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F7C85   Length              0005 (5)\n-5F7C87   Flags               01 (1) 'Modification'\n-5F7C88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F7C8C LOCAL HEADER #1755    04034B50 (67324752)\n-5F7C90 Extract Zip Spec      14 (20) '2.0'\n-5F7C91 Extract OS            00 (0) 'MS-DOS'\n-5F7C92 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F7C94 Compression Method    0000 (0) 'Stored'\n-5F7C96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F7C9A CRC                   00000000 (0)\n-5F7C9E Compressed Size       00000000 (0)\n-5F7CA2 Uncompressed Size     00000000 (0)\n-5F7CA6 Filename Length       003C (60)\n-5F7CA8 Extra Length          0009 (9)\n-5F7CAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F7CAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F7CE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F7CE8   Length              0005 (5)\n-5F7CEA   Flags               01 (1) 'Modification'\n-5F7CEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F7CEF PAYLOAD\n-\n-5F9821 DATA DESCRIPTOR       08074B50 (134695760)\n-5F9825 CRC                   64ACCB0D (1689045773)\n-5F9829 Compressed Size       00001B32 (6962)\n-5F982D Uncompressed Size     00001B32 (6962)\n-\n-5F9831 LOCAL HEADER #1756    04034B50 (67324752)\n-5F9835 Extract Zip Spec      14 (20) '2.0'\n-5F9836 Extract OS            00 (0) 'MS-DOS'\n-5F9837 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F9839 Compression Method    0000 (0) 'Stored'\n-5F983B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F983F CRC                   00000000 (0)\n-5F9843 Compressed Size       00000000 (0)\n-5F9847 Uncompressed Size     00000000 (0)\n-5F984B Filename Length       0043 (67)\n-5F984D Extra Length          0009 (9)\n-5F984F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F984F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F9892 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F9894   Length              0005 (5)\n-5F9896   Flags               01 (1) 'Modification'\n-5F9897   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F989B PAYLOAD\n-\n-5F9F36 DATA DESCRIPTOR       08074B50 (134695760)\n-5F9F3A CRC                   72CD5ED3 (1926061779)\n-5F9F3E Compressed Size       0000069B (1691)\n-5F9F42 Uncompressed Size     0000069B (1691)\n-\n-5F9F46 LOCAL HEADER #1757    04034B50 (67324752)\n-5F9F4A Extract Zip Spec      14 (20) '2.0'\n-5F9F4B Extract OS            00 (0) 'MS-DOS'\n-5F9F4C General Purpose Flag  0000 (0)\n-5F9F4E Compression Method    0000 (0) 'Stored'\n-5F9F50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F9F54 CRC                   00000000 (0)\n-5F9F58 Compressed Size       00000000 (0)\n-5F9F5C Uncompressed Size     00000000 (0)\n-5F9F60 Filename Length       0028 (40)\n-5F9F62 Extra Length          0009 (9)\n-5F9F64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F9F64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F9F8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F9F8E   Length              0005 (5)\n-5F9F90   Flags               01 (1) 'Modification'\n-5F9F91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5F9F95 LOCAL HEADER #1758    04034B50 (67324752)\n-5F9F99 Extract Zip Spec      14 (20) '2.0'\n-5F9F9A Extract OS            00 (0) 'MS-DOS'\n-5F9F9B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5F9F9D Compression Method    0000 (0) 'Stored'\n-5F9F9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5F9FA3 CRC                   00000000 (0)\n-5F9FA7 Compressed Size       00000000 (0)\n-5F9FAB Uncompressed Size     00000000 (0)\n-5F9FAF Filename Length       0036 (54)\n-5F9FB1 Extra Length          0009 (9)\n-5F9FB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5F9FB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5F9FE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5F9FEB   Length              0005 (5)\n-5F9FED   Flags               01 (1) 'Modification'\n-5F9FEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5F9FF2 PAYLOAD\n-\n-5FCD6A DATA DESCRIPTOR       08074B50 (134695760)\n-5FCD6E CRC                   4CF04636 (1290815030)\n-5FCD72 Compressed Size       00002D78 (11640)\n-5FCD76 Uncompressed Size     00002D78 (11640)\n-\n-5FCD7A LOCAL HEADER #1759    04034B50 (67324752)\n-5FCD7E Extract Zip Spec      14 (20) '2.0'\n-5FCD7F Extract OS            00 (0) 'MS-DOS'\n-5FCD80 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5FCD82 Compression Method    0000 (0) 'Stored'\n-5FCD84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FCD88 CRC                   00000000 (0)\n-5FCD8C Compressed Size       00000000 (0)\n-5FCD90 Uncompressed Size     00000000 (0)\n-5FCD94 Filename Length       003D (61)\n-5FCD96 Extra Length          0009 (9)\n-5FCD98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FCD98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FCDD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FCDD7   Length              0005 (5)\n-5FCDD9   Flags               01 (1) 'Modification'\n-5FCDDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FCDDE PAYLOAD\n-\n-5FD2FB DATA DESCRIPTOR       08074B50 (134695760)\n-5FD2FF CRC                   FC35A4FC (4231374076)\n-5FD303 Compressed Size       0000051D (1309)\n-5FD307 Uncompressed Size     0000051D (1309)\n-\n-5FD30B LOCAL HEADER #1760    04034B50 (67324752)\n-5FD30F Extract Zip Spec      14 (20) '2.0'\n-5FD310 Extract OS            00 (0) 'MS-DOS'\n-5FD311 General Purpose Flag  0000 (0)\n-5FD313 Compression Method    0000 (0) 'Stored'\n-5FD315 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FD319 CRC                   00000000 (0)\n-5FD31D Compressed Size       00000000 (0)\n-5FD321 Uncompressed Size     00000000 (0)\n-5FD325 Filename Length       002E (46)\n-5FD327 Extra Length          0009 (9)\n-5FD329 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FD329: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FD357 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FD359   Length              0005 (5)\n-5FD35B   Flags               01 (1) 'Modification'\n-5FD35C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5FD360 LOCAL HEADER #1761    04034B50 (67324752)\n-5FD364 Extract Zip Spec      14 (20) '2.0'\n-5FD365 Extract OS            00 (0) 'MS-DOS'\n-5FD366 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5FD368 Compression Method    0000 (0) 'Stored'\n-5FD36A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FD36E CRC                   00000000 (0)\n-5FD372 Compressed Size       00000000 (0)\n-5FD376 Uncompressed Size     00000000 (0)\n-5FD37A Filename Length       0036 (54)\n-5FD37C Extra Length          0009 (9)\n-5FD37E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FD37E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FD3B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FD3B6   Length              0005 (5)\n-5FD3B8   Flags               01 (1) 'Modification'\n-5FD3B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FD3BD PAYLOAD\n-\n-5FD8E5 DATA DESCRIPTOR       08074B50 (134695760)\n-5FD8E9 CRC                   20217A79 (539064953)\n-5FD8ED Compressed Size       00000528 (1320)\n-5FD8F1 Uncompressed Size     00000528 (1320)\n-\n-5FD8F5 LOCAL HEADER #1762    04034B50 (67324752)\n-5FD8F9 Extract Zip Spec      14 (20) '2.0'\n-5FD8FA Extract OS            00 (0) 'MS-DOS'\n-5FD8FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5FD8FD Compression Method    0000 (0) 'Stored'\n-5FD8FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FD903 CRC                   00000000 (0)\n-5FD907 Compressed Size       00000000 (0)\n-5FD90B Uncompressed Size     00000000 (0)\n-5FD90F Filename Length       0040 (64)\n-5FD911 Extra Length          0009 (9)\n-5FD913 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FD913: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FD953 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FD955   Length              0005 (5)\n-5FD957   Flags               01 (1) 'Modification'\n-5FD958   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FD95C PAYLOAD\n-\n-5FE43B DATA DESCRIPTOR       08074B50 (134695760)\n-5FE43F CRC                   5D27A74D (1562879821)\n-5FE443 Compressed Size       00000ADF (2783)\n-5FE447 Uncompressed Size     00000ADF (2783)\n-\n-5FE44B LOCAL HEADER #1763    04034B50 (67324752)\n-5FE44F Extract Zip Spec      14 (20) '2.0'\n-5FE450 Extract OS            00 (0) 'MS-DOS'\n-5FE451 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5FE453 Compression Method    0000 (0) 'Stored'\n-5FE455 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FE459 CRC                   00000000 (0)\n-5FE45D Compressed Size       00000000 (0)\n-5FE461 Uncompressed Size     00000000 (0)\n-5FE465 Filename Length       0040 (64)\n-5FE467 Extra Length          0009 (9)\n-5FE469 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FE469: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FE4A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FE4AB   Length              0005 (5)\n-5FE4AD   Flags               01 (1) 'Modification'\n-5FE4AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FE4B2 PAYLOAD\n-\n-5FEAC3 DATA DESCRIPTOR       08074B50 (134695760)\n-5FEAC7 CRC                   6DBA7C3B (1840938043)\n-5FEACB Compressed Size       00000611 (1553)\n-5FEACF Uncompressed Size     00000611 (1553)\n-\n-5FEAD3 LOCAL HEADER #1764    04034B50 (67324752)\n-5FEAD7 Extract Zip Spec      14 (20) '2.0'\n-5FEAD8 Extract OS            00 (0) 'MS-DOS'\n-5FEAD9 General Purpose Flag  0000 (0)\n-5FEADB Compression Method    0000 (0) 'Stored'\n-5FEADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FEAE1 CRC                   00000000 (0)\n-5FEAE5 Compressed Size       00000000 (0)\n-5FEAE9 Uncompressed Size     00000000 (0)\n-5FEAED Filename Length       0025 (37)\n-5FEAEF Extra Length          0009 (9)\n-5FEAF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FEAF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FEB16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FEB18   Length              0005 (5)\n-5FEB1A   Flags               01 (1) 'Modification'\n-5FEB1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-5FEB1F LOCAL HEADER #1765    04034B50 (67324752)\n-5FEB23 Extract Zip Spec      14 (20) '2.0'\n-5FEB24 Extract OS            00 (0) 'MS-DOS'\n-5FEB25 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-5FEB27 Compression Method    0000 (0) 'Stored'\n-5FEB29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-5FEB2D CRC                   00000000 (0)\n-5FEB31 Compressed Size       00000000 (0)\n-5FEB35 Uncompressed Size     00000000 (0)\n-5FEB39 Filename Length       0040 (64)\n-5FEB3B Extra Length          0009 (9)\n-5FEB3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x5FEB3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-5FEB7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-5FEB7F   Length              0005 (5)\n-5FEB81   Flags               01 (1) 'Modification'\n-5FEB82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-5FEB86 PAYLOAD\n-\n-601DBD DATA DESCRIPTOR       08074B50 (134695760)\n-601DC1 CRC                   92ECBDF0 (2464988656)\n-601DC5 Compressed Size       00003237 (12855)\n-601DC9 Uncompressed Size     00003237 (12855)\n-\n-601DCD LOCAL HEADER #1766    04034B50 (67324752)\n-601DD1 Extract Zip Spec      14 (20) '2.0'\n-601DD2 Extract OS            00 (0) 'MS-DOS'\n-601DD3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-601DD5 Compression Method    0000 (0) 'Stored'\n-601DD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-601DDB CRC                   00000000 (0)\n-601DDF Compressed Size       00000000 (0)\n-601DE3 Uncompressed Size     00000000 (0)\n-601DE7 Filename Length       003A (58)\n-601DE9 Extra Length          0009 (9)\n-601DEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x601DEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-601E25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-601E27   Length              0005 (5)\n-601E29   Flags               01 (1) 'Modification'\n-601E2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-601E2E PAYLOAD\n-\n-602374 DATA DESCRIPTOR       08074B50 (134695760)\n-602378 CRC                   8CA55593 (2359645587)\n-60237C Compressed Size       00000546 (1350)\n-602380 Uncompressed Size     00000546 (1350)\n-\n-602384 LOCAL HEADER #1767    04034B50 (67324752)\n-602388 Extract Zip Spec      14 (20) '2.0'\n-602389 Extract OS            00 (0) 'MS-DOS'\n-60238A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60238C Compression Method    0000 (0) 'Stored'\n-60238E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-602392 CRC                   00000000 (0)\n-602396 Compressed Size       00000000 (0)\n-60239A Uncompressed Size     00000000 (0)\n-60239E Filename Length       0041 (65)\n-6023A0 Extra Length          0009 (9)\n-6023A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6023A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6023E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6023E5   Length              0005 (5)\n-6023E7   Flags               01 (1) 'Modification'\n-6023E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6023EC PAYLOAD\n-\n-602AC8 DATA DESCRIPTOR       08074B50 (134695760)\n-602ACC CRC                   BDD5C58A (3184903562)\n-602AD0 Compressed Size       000006DC (1756)\n-602AD4 Uncompressed Size     000006DC (1756)\n-\n-602AD8 LOCAL HEADER #1768    04034B50 (67324752)\n-602ADC Extract Zip Spec      14 (20) '2.0'\n-602ADD Extract OS            00 (0) 'MS-DOS'\n-602ADE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-602AE0 Compression Method    0000 (0) 'Stored'\n-602AE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-602AE6 CRC                   00000000 (0)\n-602AEA Compressed Size       00000000 (0)\n-602AEE Uncompressed Size     00000000 (0)\n-602AF2 Filename Length       003A (58)\n-602AF4 Extra Length          0009 (9)\n-602AF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x602AF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-602B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-602B32   Length              0005 (5)\n-602B34   Flags               01 (1) 'Modification'\n-602B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-602B39 PAYLOAD\n-\n-603051 DATA DESCRIPTOR       08074B50 (134695760)\n-603055 CRC                   DBE638BA (3689298106)\n-603059 Compressed Size       00000518 (1304)\n-60305D Uncompressed Size     00000518 (1304)\n-\n-603061 LOCAL HEADER #1769    04034B50 (67324752)\n-603065 Extract Zip Spec      14 (20) '2.0'\n-603066 Extract OS            00 (0) 'MS-DOS'\n-603067 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-603069 Compression Method    0000 (0) 'Stored'\n-60306B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60306F CRC                   00000000 (0)\n-603073 Compressed Size       00000000 (0)\n-603077 Uncompressed Size     00000000 (0)\n-60307B Filename Length       0041 (65)\n-60307D Extra Length          0009 (9)\n-60307F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60307F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6030C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6030C2   Length              0005 (5)\n-6030C4   Flags               01 (1) 'Modification'\n-6030C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6030C9 PAYLOAD\n-\n-6044E9 DATA DESCRIPTOR       08074B50 (134695760)\n-6044ED CRC                   4263898A (1113819530)\n-6044F1 Compressed Size       00001420 (5152)\n-6044F5 Uncompressed Size     00001420 (5152)\n-\n-6044F9 LOCAL HEADER #1770    04034B50 (67324752)\n-6044FD Extract Zip Spec      14 (20) '2.0'\n-6044FE Extract OS            00 (0) 'MS-DOS'\n-6044FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-604501 Compression Method    0000 (0) 'Stored'\n-604503 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-604507 CRC                   00000000 (0)\n-60450B Compressed Size       00000000 (0)\n-60450F Uncompressed Size     00000000 (0)\n-604513 Filename Length       0036 (54)\n-604515 Extra Length          0009 (9)\n-604517 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x604517: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60454D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60454F   Length              0005 (5)\n-604551   Flags               01 (1) 'Modification'\n-604552   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-604556 PAYLOAD\n-\n-605DD2 DATA DESCRIPTOR       08074B50 (134695760)\n-605DD6 CRC                   61647F39 (1633976121)\n-605DDA Compressed Size       0000187C (6268)\n-605DDE Uncompressed Size     0000187C (6268)\n-\n-605DE2 LOCAL HEADER #1771    04034B50 (67324752)\n-605DE6 Extract Zip Spec      14 (20) '2.0'\n-605DE7 Extract OS            00 (0) 'MS-DOS'\n-605DE8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-605DEA Compression Method    0000 (0) 'Stored'\n-605DEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-605DF0 CRC                   00000000 (0)\n-605DF4 Compressed Size       00000000 (0)\n-605DF8 Uncompressed Size     00000000 (0)\n-605DFC Filename Length       0039 (57)\n-605DFE Extra Length          0009 (9)\n-605E00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x605E00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-605E39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-605E3B   Length              0005 (5)\n-605E3D   Flags               01 (1) 'Modification'\n-605E3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-605E42 PAYLOAD\n-\n-60639B DATA DESCRIPTOR       08074B50 (134695760)\n-60639F CRC                   48FD2377 (1224549239)\n-6063A3 Compressed Size       00000559 (1369)\n-6063A7 Uncompressed Size     00000559 (1369)\n-\n-6063AB LOCAL HEADER #1772    04034B50 (67324752)\n-6063AF Extract Zip Spec      14 (20) '2.0'\n-6063B0 Extract OS            00 (0) 'MS-DOS'\n-6063B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6063B3 Compression Method    0000 (0) 'Stored'\n-6063B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6063B9 CRC                   00000000 (0)\n-6063BD Compressed Size       00000000 (0)\n-6063C1 Uncompressed Size     00000000 (0)\n-6063C5 Filename Length       0040 (64)\n-6063C7 Extra Length          0009 (9)\n-6063C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6063C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-606409 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60640B   Length              0005 (5)\n-60640D   Flags               01 (1) 'Modification'\n-60640E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-606412 PAYLOAD\n-\n-607EE9 DATA DESCRIPTOR       08074B50 (134695760)\n-607EED CRC                   DAA0DBC8 (3667975112)\n-607EF1 Compressed Size       00001AD7 (6871)\n-607EF5 Uncompressed Size     00001AD7 (6871)\n-\n-607EF9 LOCAL HEADER #1773    04034B50 (67324752)\n-607EFD Extract Zip Spec      14 (20) '2.0'\n-607EFE Extract OS            00 (0) 'MS-DOS'\n-607EFF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-607F01 Compression Method    0000 (0) 'Stored'\n-607F03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-607F07 CRC                   00000000 (0)\n-607F0B Compressed Size       00000000 (0)\n-607F0F Uncompressed Size     00000000 (0)\n-607F13 Filename Length       0039 (57)\n-607F15 Extra Length          0009 (9)\n-607F17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x607F17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-607F50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-607F52   Length              0005 (5)\n-607F54   Flags               01 (1) 'Modification'\n-607F55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-607F59 PAYLOAD\n-\n-6084B2 DATA DESCRIPTOR       08074B50 (134695760)\n-6084B6 CRC                   887DA686 (2289936006)\n-6084BA Compressed Size       00000559 (1369)\n-6084BE Uncompressed Size     00000559 (1369)\n-\n-6084C2 LOCAL HEADER #1774    04034B50 (67324752)\n-6084C6 Extract Zip Spec      14 (20) '2.0'\n-6084C7 Extract OS            00 (0) 'MS-DOS'\n-6084C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6084CA Compression Method    0000 (0) 'Stored'\n-6084CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6084D0 CRC                   00000000 (0)\n-6084D4 Compressed Size       00000000 (0)\n-6084D8 Uncompressed Size     00000000 (0)\n-6084DC Filename Length       0040 (64)\n-6084DE Extra Length          0009 (9)\n-6084E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6084E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-608520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-608522   Length              0005 (5)\n-608524   Flags               01 (1) 'Modification'\n-608525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-608529 PAYLOAD\n-\n-60907A DATA DESCRIPTOR       08074B50 (134695760)\n-60907E CRC                   A7345C3C (2805226556)\n-609082 Compressed Size       00000B51 (2897)\n-609086 Uncompressed Size     00000B51 (2897)\n-\n-60908A LOCAL HEADER #1775    04034B50 (67324752)\n-60908E Extract Zip Spec      14 (20) '2.0'\n-60908F Extract OS            00 (0) 'MS-DOS'\n-609090 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-609092 Compression Method    0000 (0) 'Stored'\n-609094 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-609098 CRC                   00000000 (0)\n-60909C Compressed Size       00000000 (0)\n-6090A0 Uncompressed Size     00000000 (0)\n-6090A4 Filename Length       0039 (57)\n-6090A6 Extra Length          0009 (9)\n-6090A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6090A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6090E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6090E3   Length              0005 (5)\n-6090E5   Flags               01 (1) 'Modification'\n-6090E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6090EA PAYLOAD\n-\n-609643 DATA DESCRIPTOR       08074B50 (134695760)\n-609647 CRC                   C412C0D3 (3289563347)\n-60964B Compressed Size       00000559 (1369)\n-60964F Uncompressed Size     00000559 (1369)\n-\n-609653 LOCAL HEADER #1776    04034B50 (67324752)\n-609657 Extract Zip Spec      14 (20) '2.0'\n-609658 Extract OS            00 (0) 'MS-DOS'\n-609659 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60965B Compression Method    0000 (0) 'Stored'\n-60965D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-609661 CRC                   00000000 (0)\n-609665 Compressed Size       00000000 (0)\n-609669 Uncompressed Size     00000000 (0)\n-60966D Filename Length       0040 (64)\n-60966F Extra Length          0009 (9)\n-609671 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x609671: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6096B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6096B3   Length              0005 (5)\n-6096B5   Flags               01 (1) 'Modification'\n-6096B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6096BA PAYLOAD\n-\n-60AC47 DATA DESCRIPTOR       08074B50 (134695760)\n-60AC4B CRC                   7A3E3AF6 (2050898678)\n-60AC4F Compressed Size       0000158D (5517)\n-60AC53 Uncompressed Size     0000158D (5517)\n-\n-60AC57 LOCAL HEADER #1777    04034B50 (67324752)\n-60AC5B Extract Zip Spec      14 (20) '2.0'\n-60AC5C Extract OS            00 (0) 'MS-DOS'\n-60AC5D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60AC5F Compression Method    0000 (0) 'Stored'\n-60AC61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60AC65 CRC                   00000000 (0)\n-60AC69 Compressed Size       00000000 (0)\n-60AC6D Uncompressed Size     00000000 (0)\n-60AC71 Filename Length       0039 (57)\n-60AC73 Extra Length          0009 (9)\n-60AC75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60AC75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60ACAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60ACB0   Length              0005 (5)\n-60ACB2   Flags               01 (1) 'Modification'\n-60ACB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60ACB7 PAYLOAD\n-\n-60B210 DATA DESCRIPTOR       08074B50 (134695760)\n-60B214 CRC                   68A40EAC (1755582124)\n-60B218 Compressed Size       00000559 (1369)\n-60B21C Uncompressed Size     00000559 (1369)\n-\n-60B220 LOCAL HEADER #1778    04034B50 (67324752)\n-60B224 Extract Zip Spec      14 (20) '2.0'\n-60B225 Extract OS            00 (0) 'MS-DOS'\n-60B226 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60B228 Compression Method    0000 (0) 'Stored'\n-60B22A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60B22E CRC                   00000000 (0)\n-60B232 Compressed Size       00000000 (0)\n-60B236 Uncompressed Size     00000000 (0)\n-60B23A Filename Length       0040 (64)\n-60B23C Extra Length          0009 (9)\n-60B23E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60B23E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60B27E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60B280   Length              0005 (5)\n-60B282   Flags               01 (1) 'Modification'\n-60B283   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60B287 PAYLOAD\n-\n-60BBC9 DATA DESCRIPTOR       08074B50 (134695760)\n-60BBCD CRC                   DEA6E3F0 (3735479280)\n-60BBD1 Compressed Size       00000942 (2370)\n-60BBD5 Uncompressed Size     00000942 (2370)\n-\n-60BBD9 LOCAL HEADER #1779    04034B50 (67324752)\n-60BBDD Extract Zip Spec      14 (20) '2.0'\n-60BBDE Extract OS            00 (0) 'MS-DOS'\n-60BBDF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60BBE1 Compression Method    0000 (0) 'Stored'\n-60BBE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60BBE7 CRC                   00000000 (0)\n-60BBEB Compressed Size       00000000 (0)\n-60BBEF Uncompressed Size     00000000 (0)\n-60BBF3 Filename Length       0038 (56)\n-60BBF5 Extra Length          0009 (9)\n-60BBF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60BBF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60BC2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60BC31   Length              0005 (5)\n-60BC33   Flags               01 (1) 'Modification'\n-60BC34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60BC38 PAYLOAD\n-\n-60C18D DATA DESCRIPTOR       08074B50 (134695760)\n-60C191 CRC                   1E103695 (504379029)\n-60C195 Compressed Size       00000555 (1365)\n-60C199 Uncompressed Size     00000555 (1365)\n-\n-60C19D LOCAL HEADER #1780    04034B50 (67324752)\n-60C1A1 Extract Zip Spec      14 (20) '2.0'\n-60C1A2 Extract OS            00 (0) 'MS-DOS'\n-60C1A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60C1A5 Compression Method    0000 (0) 'Stored'\n-60C1A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60C1AB CRC                   00000000 (0)\n-60C1AF Compressed Size       00000000 (0)\n-60C1B3 Uncompressed Size     00000000 (0)\n-60C1B7 Filename Length       003F (63)\n-60C1B9 Extra Length          0009 (9)\n-60C1BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60C1BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60C1FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60C1FC   Length              0005 (5)\n-60C1FE   Flags               01 (1) 'Modification'\n-60C1FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60C203 PAYLOAD\n-\n-60D6CE DATA DESCRIPTOR       08074B50 (134695760)\n-60D6D2 CRC                   27AC8562 (665617762)\n-60D6D6 Compressed Size       000014CB (5323)\n-60D6DA Uncompressed Size     000014CB (5323)\n-\n-60D6DE LOCAL HEADER #1781    04034B50 (67324752)\n-60D6E2 Extract Zip Spec      14 (20) '2.0'\n-60D6E3 Extract OS            00 (0) 'MS-DOS'\n-60D6E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60D6E6 Compression Method    0000 (0) 'Stored'\n-60D6E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60D6EC CRC                   00000000 (0)\n-60D6F0 Compressed Size       00000000 (0)\n-60D6F4 Uncompressed Size     00000000 (0)\n-60D6F8 Filename Length       003A (58)\n-60D6FA Extra Length          0009 (9)\n-60D6FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60D6FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60D736 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60D738   Length              0005 (5)\n-60D73A   Flags               01 (1) 'Modification'\n-60D73B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60D73F PAYLOAD\n-\n-60DC4B DATA DESCRIPTOR       08074B50 (134695760)\n-60DC4F CRC                   D9486541 (3645400385)\n-60DC53 Compressed Size       0000050C (1292)\n-60DC57 Uncompressed Size     0000050C (1292)\n-\n-60DC5B LOCAL HEADER #1782    04034B50 (67324752)\n-60DC5F Extract Zip Spec      14 (20) '2.0'\n-60DC60 Extract OS            00 (0) 'MS-DOS'\n-60DC61 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60DC63 Compression Method    0000 (0) 'Stored'\n-60DC65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60DC69 CRC                   00000000 (0)\n-60DC6D Compressed Size       00000000 (0)\n-60DC71 Uncompressed Size     00000000 (0)\n-60DC75 Filename Length       0041 (65)\n-60DC77 Extra Length          0009 (9)\n-60DC79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60DC79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60DCBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60DCBC   Length              0005 (5)\n-60DCBE   Flags               01 (1) 'Modification'\n-60DCBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60DCC3 PAYLOAD\n-\n-60FAA4 DATA DESCRIPTOR       08074B50 (134695760)\n-60FAA8 CRC                   011CB6AA (18658986)\n-60FAAC Compressed Size       00001DE1 (7649)\n-60FAB0 Uncompressed Size     00001DE1 (7649)\n-\n-60FAB4 LOCAL HEADER #1783    04034B50 (67324752)\n-60FAB8 Extract Zip Spec      14 (20) '2.0'\n-60FAB9 Extract OS            00 (0) 'MS-DOS'\n-60FABA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-60FABC Compression Method    0000 (0) 'Stored'\n-60FABE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60FAC2 CRC                   00000000 (0)\n-60FAC6 Compressed Size       00000000 (0)\n-60FACA Uncompressed Size     00000000 (0)\n-60FACE Filename Length       0043 (67)\n-60FAD0 Extra Length          0009 (9)\n-60FAD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60FAD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-60FB15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-60FB17   Length              0005 (5)\n-60FB19   Flags               01 (1) 'Modification'\n-60FB1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-60FB1E PAYLOAD\n-\n-60FFAE DATA DESCRIPTOR       08074B50 (134695760)\n-60FFB2 CRC                   6056B6FB (1616295675)\n-60FFB6 Compressed Size       00000490 (1168)\n-60FFBA Uncompressed Size     00000490 (1168)\n-\n-60FFBE LOCAL HEADER #1784    04034B50 (67324752)\n-60FFC2 Extract Zip Spec      14 (20) '2.0'\n-60FFC3 Extract OS            00 (0) 'MS-DOS'\n-60FFC4 General Purpose Flag  0000 (0)\n-60FFC6 Compression Method    0000 (0) 'Stored'\n-60FFC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-60FFCC CRC                   00000000 (0)\n-60FFD0 Compressed Size       00000000 (0)\n-60FFD4 Uncompressed Size     00000000 (0)\n-60FFD8 Filename Length       002F (47)\n-60FFDA Extra Length          0009 (9)\n-60FFDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x60FFDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61000B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61000D   Length              0005 (5)\n-61000F   Flags               01 (1) 'Modification'\n-610010   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-610014 LOCAL HEADER #1785    04034B50 (67324752)\n-610018 Extract Zip Spec      14 (20) '2.0'\n-610019 Extract OS            00 (0) 'MS-DOS'\n-61001A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61001C Compression Method    0000 (0) 'Stored'\n-61001E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-610022 CRC                   00000000 (0)\n-610026 Compressed Size       00000000 (0)\n-61002A Uncompressed Size     00000000 (0)\n-61002E Filename Length       004E (78)\n-610030 Extra Length          0009 (9)\n-610032 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x610032: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-610080 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-610082   Length              0005 (5)\n-610084   Flags               01 (1) 'Modification'\n-610085   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-610089 PAYLOAD\n-\n-6104EC DATA DESCRIPTOR       08074B50 (134695760)\n-6104F0 CRC                   3DFE1DA9 (1040063913)\n-6104F4 Compressed Size       00000463 (1123)\n-6104F8 Uncompressed Size     00000463 (1123)\n-\n-6104FC LOCAL HEADER #1786    04034B50 (67324752)\n-610500 Extract Zip Spec      14 (20) '2.0'\n-610501 Extract OS            00 (0) 'MS-DOS'\n-610502 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-610504 Compression Method    0000 (0) 'Stored'\n-610506 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61050A CRC                   00000000 (0)\n-61050E Compressed Size       00000000 (0)\n-610512 Uncompressed Size     00000000 (0)\n-610516 Filename Length       004B (75)\n-610518 Extra Length          0009 (9)\n-61051A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61051A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-610565 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-610567   Length              0005 (5)\n-610569   Flags               01 (1) 'Modification'\n-61056A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61056E PAYLOAD\n-\n-610C5E DATA DESCRIPTOR       08074B50 (134695760)\n-610C62 CRC                   026F661D (40855069)\n-610C66 Compressed Size       000006F0 (1776)\n-610C6A Uncompressed Size     000006F0 (1776)\n-\n-610C6E LOCAL HEADER #1787    04034B50 (67324752)\n-610C72 Extract Zip Spec      14 (20) '2.0'\n-610C73 Extract OS            00 (0) 'MS-DOS'\n-610C74 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-610C76 Compression Method    0000 (0) 'Stored'\n-610C78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-610C7C CRC                   00000000 (0)\n-610C80 Compressed Size       00000000 (0)\n-610C84 Uncompressed Size     00000000 (0)\n-610C88 Filename Length       0041 (65)\n-610C8A Extra Length          0009 (9)\n-610C8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x610C8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-610CCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-610CCF   Length              0005 (5)\n-610CD1   Flags               01 (1) 'Modification'\n-610CD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-610CD6 PAYLOAD\n-\n-6119A6 DATA DESCRIPTOR       08074B50 (134695760)\n-6119AA CRC                   8138F7C2 (2167994306)\n-6119AE Compressed Size       00000CD0 (3280)\n-6119B2 Uncompressed Size     00000CD0 (3280)\n-\n-6119B6 LOCAL HEADER #1788    04034B50 (67324752)\n-6119BA Extract Zip Spec      14 (20) '2.0'\n-6119BB Extract OS            00 (0) 'MS-DOS'\n-6119BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6119BE Compression Method    0000 (0) 'Stored'\n-6119C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6119C4 CRC                   00000000 (0)\n-6119C8 Compressed Size       00000000 (0)\n-6119CC Uncompressed Size     00000000 (0)\n-6119D0 Filename Length       0041 (65)\n-6119D2 Extra Length          0009 (9)\n-6119D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6119D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-611A15 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-611A17   Length              0005 (5)\n-611A19   Flags               01 (1) 'Modification'\n-611A1A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-611A1E PAYLOAD\n-\n-611DD8 DATA DESCRIPTOR       08074B50 (134695760)\n-611DDC CRC                   1A8FEFCC (445640652)\n-611DE0 Compressed Size       000003BA (954)\n-611DE4 Uncompressed Size     000003BA (954)\n-\n-611DE8 LOCAL HEADER #1789    04034B50 (67324752)\n-611DEC Extract Zip Spec      14 (20) '2.0'\n-611DED Extract OS            00 (0) 'MS-DOS'\n-611DEE General Purpose Flag  0000 (0)\n-611DF0 Compression Method    0000 (0) 'Stored'\n-611DF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-611DF6 CRC                   00000000 (0)\n-611DFA Compressed Size       00000000 (0)\n-611DFE Uncompressed Size     00000000 (0)\n-611E02 Filename Length       002E (46)\n-611E04 Extra Length          0009 (9)\n-611E06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x611E06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-611E34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-611E36   Length              0005 (5)\n-611E38   Flags               01 (1) 'Modification'\n-611E39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-611E3D LOCAL HEADER #1790    04034B50 (67324752)\n-611E41 Extract Zip Spec      14 (20) '2.0'\n-611E42 Extract OS            00 (0) 'MS-DOS'\n-611E43 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-611E45 Compression Method    0000 (0) 'Stored'\n-611E47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-611E4B CRC                   00000000 (0)\n-611E4F Compressed Size       00000000 (0)\n-611E53 Uncompressed Size     00000000 (0)\n-611E57 Filename Length       0043 (67)\n-611E59 Extra Length          0009 (9)\n-611E5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x611E5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-611E9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-611EA0   Length              0005 (5)\n-611EA2   Flags               01 (1) 'Modification'\n-611EA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-611EA7 PAYLOAD\n-\n-612432 DATA DESCRIPTOR       08074B50 (134695760)\n-612436 CRC                   1071481B (275859483)\n-61243A Compressed Size       0000058B (1419)\n-61243E Uncompressed Size     0000058B (1419)\n-\n-612442 LOCAL HEADER #1791    04034B50 (67324752)\n-612446 Extract Zip Spec      14 (20) '2.0'\n-612447 Extract OS            00 (0) 'MS-DOS'\n-612448 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61244A Compression Method    0000 (0) 'Stored'\n-61244C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-612450 CRC                   00000000 (0)\n-612454 Compressed Size       00000000 (0)\n-612458 Uncompressed Size     00000000 (0)\n-61245C Filename Length       004A (74)\n-61245E Extra Length          0009 (9)\n-612460 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x612460: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6124AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6124AC   Length              0005 (5)\n-6124AE   Flags               01 (1) 'Modification'\n-6124AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6124B3 PAYLOAD\n-\n-6150AB DATA DESCRIPTOR       08074B50 (134695760)\n-6150AF CRC                   E4476BF5 (3829885941)\n-6150B3 Compressed Size       00002BF8 (11256)\n-6150B7 Uncompressed Size     00002BF8 (11256)\n-\n-6150BB LOCAL HEADER #1792    04034B50 (67324752)\n-6150BF Extract Zip Spec      14 (20) '2.0'\n-6150C0 Extract OS            00 (0) 'MS-DOS'\n-6150C1 General Purpose Flag  0000 (0)\n-6150C3 Compression Method    0000 (0) 'Stored'\n-6150C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6150C9 CRC                   00000000 (0)\n-6150CD Compressed Size       00000000 (0)\n-6150D1 Uncompressed Size     00000000 (0)\n-6150D5 Filename Length       002D (45)\n-6150D7 Extra Length          0009 (9)\n-6150D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6150D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-615106 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-615108   Length              0005 (5)\n-61510A   Flags               01 (1) 'Modification'\n-61510B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-61510F LOCAL HEADER #1793    04034B50 (67324752)\n-615113 Extract Zip Spec      14 (20) '2.0'\n-615114 Extract OS            00 (0) 'MS-DOS'\n-615115 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-615117 Compression Method    0000 (0) 'Stored'\n-615119 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61511D CRC                   00000000 (0)\n-615121 Compressed Size       00000000 (0)\n-615125 Uncompressed Size     00000000 (0)\n-615129 Filename Length       0041 (65)\n-61512B Extra Length          0009 (9)\n-61512D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61512D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61516E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-615170   Length              0005 (5)\n-615172   Flags               01 (1) 'Modification'\n-615173   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-615177 PAYLOAD\n-\n-61663F DATA DESCRIPTOR       08074B50 (134695760)\n-616643 CRC                   F23CFA2B (4064082475)\n-616647 Compressed Size       000014C8 (5320)\n-61664B Uncompressed Size     000014C8 (5320)\n-\n-61664F LOCAL HEADER #1794    04034B50 (67324752)\n-616653 Extract Zip Spec      14 (20) '2.0'\n-616654 Extract OS            00 (0) 'MS-DOS'\n-616655 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-616657 Compression Method    0000 (0) 'Stored'\n-616659 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61665D CRC                   00000000 (0)\n-616661 Compressed Size       00000000 (0)\n-616665 Uncompressed Size     00000000 (0)\n-616669 Filename Length       0044 (68)\n-61666B Extra Length          0009 (9)\n-61666D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61666D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6166B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6166B3   Length              0005 (5)\n-6166B5   Flags               01 (1) 'Modification'\n-6166B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6166BA PAYLOAD\n-\n-6183FF DATA DESCRIPTOR       08074B50 (134695760)\n-618403 CRC                   A2C265E1 (2730649057)\n-618407 Compressed Size       00001D45 (7493)\n-61840B Uncompressed Size     00001D45 (7493)\n-\n-61840F LOCAL HEADER #1795    04034B50 (67324752)\n-618413 Extract Zip Spec      14 (20) '2.0'\n-618414 Extract OS            00 (0) 'MS-DOS'\n-618415 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-618417 Compression Method    0000 (0) 'Stored'\n-618419 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61841D CRC                   00000000 (0)\n-618421 Compressed Size       00000000 (0)\n-618425 Uncompressed Size     00000000 (0)\n-618429 Filename Length       0044 (68)\n-61842B Extra Length          0009 (9)\n-61842D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61842D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-618471 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-618473   Length              0005 (5)\n-618475   Flags               01 (1) 'Modification'\n-618476   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61847A PAYLOAD\n-\n-618A34 DATA DESCRIPTOR       08074B50 (134695760)\n-618A38 CRC                   AEA9AD13 (2930355475)\n-618A3C Compressed Size       000005BA (1466)\n-618A40 Uncompressed Size     000005BA (1466)\n-\n-618A44 LOCAL HEADER #1796    04034B50 (67324752)\n-618A48 Extract Zip Spec      14 (20) '2.0'\n-618A49 Extract OS            00 (0) 'MS-DOS'\n-618A4A General Purpose Flag  0000 (0)\n-618A4C Compression Method    0000 (0) 'Stored'\n-618A4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-618A52 CRC                   00000000 (0)\n-618A56 Compressed Size       00000000 (0)\n-618A5A Uncompressed Size     00000000 (0)\n-618A5E Filename Length       001C (28)\n-618A60 Extra Length          0009 (9)\n-618A62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x618A62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-618A7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-618A80   Length              0005 (5)\n-618A82   Flags               01 (1) 'Modification'\n-618A83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-618A87 LOCAL HEADER #1797    04034B50 (67324752)\n-618A8B Extract Zip Spec      14 (20) '2.0'\n-618A8C Extract OS            00 (0) 'MS-DOS'\n-618A8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-618A8F Compression Method    0000 (0) 'Stored'\n-618A91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-618A95 CRC                   00000000 (0)\n-618A99 Compressed Size       00000000 (0)\n-618A9D Uncompressed Size     00000000 (0)\n-618AA1 Filename Length       0030 (48)\n-618AA3 Extra Length          0009 (9)\n-618AA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x618AA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-618AD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-618AD7   Length              0005 (5)\n-618AD9   Flags               01 (1) 'Modification'\n-618ADA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-618ADE PAYLOAD\n-\n-61A879 DATA DESCRIPTOR       08074B50 (134695760)\n-61A87D CRC                   300456E0 (805590752)\n-61A881 Compressed Size       00001D9B (7579)\n-61A885 Uncompressed Size     00001D9B (7579)\n-\n-61A889 LOCAL HEADER #1798    04034B50 (67324752)\n-61A88D Extract Zip Spec      14 (20) '2.0'\n-61A88E Extract OS            00 (0) 'MS-DOS'\n-61A88F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61A891 Compression Method    0000 (0) 'Stored'\n-61A893 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61A897 CRC                   00000000 (0)\n-61A89B Compressed Size       00000000 (0)\n-61A89F Uncompressed Size     00000000 (0)\n-61A8A3 Filename Length       0032 (50)\n-61A8A5 Extra Length          0009 (9)\n-61A8A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61A8A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61A8D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61A8DB   Length              0005 (5)\n-61A8DD   Flags               01 (1) 'Modification'\n-61A8DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61A8E2 PAYLOAD\n-\n-61BF05 DATA DESCRIPTOR       08074B50 (134695760)\n-61BF09 CRC                   B52DE397 (3039683479)\n-61BF0D Compressed Size       00001623 (5667)\n-61BF11 Uncompressed Size     00001623 (5667)\n-\n-61BF15 LOCAL HEADER #1799    04034B50 (67324752)\n-61BF19 Extract Zip Spec      14 (20) '2.0'\n-61BF1A Extract OS            00 (0) 'MS-DOS'\n-61BF1B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61BF1D Compression Method    0000 (0) 'Stored'\n-61BF1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61BF23 CRC                   00000000 (0)\n-61BF27 Compressed Size       00000000 (0)\n-61BF2B Uncompressed Size     00000000 (0)\n-61BF2F Filename Length       0032 (50)\n-61BF31 Extra Length          0009 (9)\n-61BF33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61BF33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61BF65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61BF67   Length              0005 (5)\n-61BF69   Flags               01 (1) 'Modification'\n-61BF6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61BF6E PAYLOAD\n-\n-61C691 DATA DESCRIPTOR       08074B50 (134695760)\n-61C695 CRC                   851F3F00 (2233417472)\n-61C699 Compressed Size       00000723 (1827)\n-61C69D Uncompressed Size     00000723 (1827)\n-\n-61C6A1 LOCAL HEADER #1800    04034B50 (67324752)\n-61C6A5 Extract Zip Spec      14 (20) '2.0'\n-61C6A6 Extract OS            00 (0) 'MS-DOS'\n-61C6A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61C6A9 Compression Method    0000 (0) 'Stored'\n-61C6AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61C6AF CRC                   00000000 (0)\n-61C6B3 Compressed Size       00000000 (0)\n-61C6B7 Uncompressed Size     00000000 (0)\n-61C6BB Filename Length       0031 (49)\n-61C6BD Extra Length          0009 (9)\n-61C6BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61C6BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61C6F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61C6F2   Length              0005 (5)\n-61C6F4   Flags               01 (1) 'Modification'\n-61C6F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61C6F9 PAYLOAD\n-\n-61D6B2 DATA DESCRIPTOR       08074B50 (134695760)\n-61D6B6 CRC                   86FDBE3E (2264776254)\n-61D6BA Compressed Size       00000FB9 (4025)\n-61D6BE Uncompressed Size     00000FB9 (4025)\n-\n-61D6C2 LOCAL HEADER #1801    04034B50 (67324752)\n-61D6C6 Extract Zip Spec      14 (20) '2.0'\n-61D6C7 Extract OS            00 (0) 'MS-DOS'\n-61D6C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61D6CA Compression Method    0000 (0) 'Stored'\n-61D6CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61D6D0 CRC                   00000000 (0)\n-61D6D4 Compressed Size       00000000 (0)\n-61D6D8 Uncompressed Size     00000000 (0)\n-61D6DC Filename Length       0036 (54)\n-61D6DE Extra Length          0009 (9)\n-61D6E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61D6E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61D716 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61D718   Length              0005 (5)\n-61D71A   Flags               01 (1) 'Modification'\n-61D71B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61D71F PAYLOAD\n-\n-61E467 DATA DESCRIPTOR       08074B50 (134695760)\n-61E46B CRC                   A0F5CB6A (2700462954)\n-61E46F Compressed Size       00000D48 (3400)\n-61E473 Uncompressed Size     00000D48 (3400)\n-\n-61E477 LOCAL HEADER #1802    04034B50 (67324752)\n-61E47B Extract Zip Spec      14 (20) '2.0'\n-61E47C Extract OS            00 (0) 'MS-DOS'\n-61E47D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61E47F Compression Method    0000 (0) 'Stored'\n-61E481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61E485 CRC                   00000000 (0)\n-61E489 Compressed Size       00000000 (0)\n-61E48D Uncompressed Size     00000000 (0)\n-61E491 Filename Length       002E (46)\n-61E493 Extra Length          0009 (9)\n-61E495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61E495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61E4C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61E4C5   Length              0005 (5)\n-61E4C7   Flags               01 (1) 'Modification'\n-61E4C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61E4CC PAYLOAD\n-\n-61FD04 DATA DESCRIPTOR       08074B50 (134695760)\n-61FD08 CRC                   38AEBD8D (950975885)\n-61FD0C Compressed Size       00001838 (6200)\n-61FD10 Uncompressed Size     00001838 (6200)\n-\n-61FD14 LOCAL HEADER #1803    04034B50 (67324752)\n-61FD18 Extract Zip Spec      14 (20) '2.0'\n-61FD19 Extract OS            00 (0) 'MS-DOS'\n-61FD1A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-61FD1C Compression Method    0000 (0) 'Stored'\n-61FD1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-61FD22 CRC                   00000000 (0)\n-61FD26 Compressed Size       00000000 (0)\n-61FD2A Uncompressed Size     00000000 (0)\n-61FD2E Filename Length       0031 (49)\n-61FD30 Extra Length          0009 (9)\n-61FD32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x61FD32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-61FD63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-61FD65   Length              0005 (5)\n-61FD67   Flags               01 (1) 'Modification'\n-61FD68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-61FD6C PAYLOAD\n-\n-620A2F DATA DESCRIPTOR       08074B50 (134695760)\n-620A33 CRC                   5D6B9E17 (1567333911)\n-620A37 Compressed Size       00000CC3 (3267)\n-620A3B Uncompressed Size     00000CC3 (3267)\n-\n-620A3F LOCAL HEADER #1804    04034B50 (67324752)\n-620A43 Extract Zip Spec      14 (20) '2.0'\n-620A44 Extract OS            00 (0) 'MS-DOS'\n-620A45 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-620A47 Compression Method    0000 (0) 'Stored'\n-620A49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-620A4D CRC                   00000000 (0)\n-620A51 Compressed Size       00000000 (0)\n-620A55 Uncompressed Size     00000000 (0)\n-620A59 Filename Length       002B (43)\n-620A5B Extra Length          0009 (9)\n-620A5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x620A5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-620A88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-620A8A   Length              0005 (5)\n-620A8C   Flags               01 (1) 'Modification'\n-620A8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-620A91 PAYLOAD\n-\n-6211CD DATA DESCRIPTOR       08074B50 (134695760)\n-6211D1 CRC                   33E95645 (870929989)\n-6211D5 Compressed Size       0000073C (1852)\n-6211D9 Uncompressed Size     0000073C (1852)\n-\n-6211DD LOCAL HEADER #1805    04034B50 (67324752)\n-6211E1 Extract Zip Spec      14 (20) '2.0'\n-6211E2 Extract OS            00 (0) 'MS-DOS'\n-6211E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6211E5 Compression Method    0000 (0) 'Stored'\n-6211E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6211EB CRC                   00000000 (0)\n-6211EF Compressed Size       00000000 (0)\n-6211F3 Uncompressed Size     00000000 (0)\n-6211F7 Filename Length       0030 (48)\n-6211F9 Extra Length          0009 (9)\n-6211FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6211FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62122B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62122D   Length              0005 (5)\n-62122F   Flags               01 (1) 'Modification'\n-621230   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-621234 PAYLOAD\n-\n-6228DA DATA DESCRIPTOR       08074B50 (134695760)\n-6228DE CRC                   DF14BD96 (3742678422)\n-6228E2 Compressed Size       000016A6 (5798)\n-6228E6 Uncompressed Size     000016A6 (5798)\n-\n-6228EA LOCAL HEADER #1806    04034B50 (67324752)\n-6228EE Extract Zip Spec      14 (20) '2.0'\n-6228EF Extract OS            00 (0) 'MS-DOS'\n-6228F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6228F2 Compression Method    0000 (0) 'Stored'\n-6228F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6228F8 CRC                   00000000 (0)\n-6228FC Compressed Size       00000000 (0)\n-622900 Uncompressed Size     00000000 (0)\n-622904 Filename Length       0033 (51)\n-622906 Extra Length          0009 (9)\n-622908 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x622908: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62293B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62293D   Length              0005 (5)\n-62293F   Flags               01 (1) 'Modification'\n-622940   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-622944 PAYLOAD\n-\n-623826 DATA DESCRIPTOR       08074B50 (134695760)\n-62382A CRC                   FA17120C (4195815948)\n-62382E Compressed Size       00000EE2 (3810)\n-623832 Uncompressed Size     00000EE2 (3810)\n-\n-623836 LOCAL HEADER #1807    04034B50 (67324752)\n-62383A Extract Zip Spec      14 (20) '2.0'\n-62383B Extract OS            00 (0) 'MS-DOS'\n-62383C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62383E Compression Method    0000 (0) 'Stored'\n-623840 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-623844 CRC                   00000000 (0)\n-623848 Compressed Size       00000000 (0)\n-62384C Uncompressed Size     00000000 (0)\n-623850 Filename Length       002E (46)\n-623852 Extra Length          0009 (9)\n-623854 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x623854: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-623882 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-623884   Length              0005 (5)\n-623886   Flags               01 (1) 'Modification'\n-623887   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62388B PAYLOAD\n-\n-626BD9 DATA DESCRIPTOR       08074B50 (134695760)\n-626BDD CRC                   BCD228F3 (3167889651)\n-626BE1 Compressed Size       0000334E (13134)\n-626BE5 Uncompressed Size     0000334E (13134)\n-\n-626BE9 LOCAL HEADER #1808    04034B50 (67324752)\n-626BED Extract Zip Spec      14 (20) '2.0'\n-626BEE Extract OS            00 (0) 'MS-DOS'\n-626BEF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-626BF1 Compression Method    0000 (0) 'Stored'\n-626BF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-626BF7 CRC                   00000000 (0)\n-626BFB Compressed Size       00000000 (0)\n-626BFF Uncompressed Size     00000000 (0)\n-626C03 Filename Length       0032 (50)\n-626C05 Extra Length          0009 (9)\n-626C07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x626C07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-626C39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-626C3B   Length              0005 (5)\n-626C3D   Flags               01 (1) 'Modification'\n-626C3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-626C42 PAYLOAD\n-\n-629860 DATA DESCRIPTOR       08074B50 (134695760)\n-629864 CRC                   BDC74FB9 (3183955897)\n-629868 Compressed Size       00002C1E (11294)\n-62986C Uncompressed Size     00002C1E (11294)\n-\n-629870 LOCAL HEADER #1809    04034B50 (67324752)\n-629874 Extract Zip Spec      14 (20) '2.0'\n-629875 Extract OS            00 (0) 'MS-DOS'\n-629876 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-629878 Compression Method    0000 (0) 'Stored'\n-62987A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62987E CRC                   00000000 (0)\n-629882 Compressed Size       00000000 (0)\n-629886 Uncompressed Size     00000000 (0)\n-62988A Filename Length       002E (46)\n-62988C Extra Length          0009 (9)\n-62988E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62988E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6298BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6298BE   Length              0005 (5)\n-6298C0   Flags               01 (1) 'Modification'\n-6298C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6298C5 PAYLOAD\n-\n-62A400 DATA DESCRIPTOR       08074B50 (134695760)\n-62A404 CRC                   4BE7E92F (1273489711)\n-62A408 Compressed Size       00000B3B (2875)\n-62A40C Uncompressed Size     00000B3B (2875)\n-\n-62A410 LOCAL HEADER #1810    04034B50 (67324752)\n-62A414 Extract Zip Spec      14 (20) '2.0'\n-62A415 Extract OS            00 (0) 'MS-DOS'\n-62A416 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62A418 Compression Method    0000 (0) 'Stored'\n-62A41A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62A41E CRC                   00000000 (0)\n-62A422 Compressed Size       00000000 (0)\n-62A426 Uncompressed Size     00000000 (0)\n-62A42A Filename Length       002C (44)\n-62A42C Extra Length          0009 (9)\n-62A42E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62A42E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62A45A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62A45C   Length              0005 (5)\n-62A45E   Flags               01 (1) 'Modification'\n-62A45F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62A463 PAYLOAD\n-\n-62AE78 DATA DESCRIPTOR       08074B50 (134695760)\n-62AE7C CRC                   EE9BE4CE (4003194062)\n-62AE80 Compressed Size       00000A15 (2581)\n-62AE84 Uncompressed Size     00000A15 (2581)\n-\n-62AE88 LOCAL HEADER #1811    04034B50 (67324752)\n-62AE8C Extract Zip Spec      14 (20) '2.0'\n-62AE8D Extract OS            00 (0) 'MS-DOS'\n-62AE8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62AE90 Compression Method    0000 (0) 'Stored'\n-62AE92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62AE96 CRC                   00000000 (0)\n-62AE9A Compressed Size       00000000 (0)\n-62AE9E Uncompressed Size     00000000 (0)\n-62AEA2 Filename Length       002F (47)\n-62AEA4 Extra Length          0009 (9)\n-62AEA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62AEA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62AED5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62AED7   Length              0005 (5)\n-62AED9   Flags               01 (1) 'Modification'\n-62AEDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62AEDE PAYLOAD\n-\n-62B8DF DATA DESCRIPTOR       08074B50 (134695760)\n-62B8E3 CRC                   24C74556 (617039190)\n-62B8E7 Compressed Size       00000A01 (2561)\n-62B8EB Uncompressed Size     00000A01 (2561)\n-\n-62B8EF LOCAL HEADER #1812    04034B50 (67324752)\n-62B8F3 Extract Zip Spec      14 (20) '2.0'\n-62B8F4 Extract OS            00 (0) 'MS-DOS'\n-62B8F5 General Purpose Flag  0000 (0)\n-62B8F7 Compression Method    0000 (0) 'Stored'\n-62B8F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62B8FD CRC                   00000000 (0)\n-62B901 Compressed Size       00000000 (0)\n-62B905 Uncompressed Size     00000000 (0)\n-62B909 Filename Length       0020 (32)\n-62B90B Extra Length          0009 (9)\n-62B90D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62B90D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62B92D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62B92F   Length              0005 (5)\n-62B931   Flags               01 (1) 'Modification'\n-62B932   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-62B936 LOCAL HEADER #1813    04034B50 (67324752)\n-62B93A Extract Zip Spec      14 (20) '2.0'\n-62B93B Extract OS            00 (0) 'MS-DOS'\n-62B93C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62B93E Compression Method    0000 (0) 'Stored'\n-62B940 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62B944 CRC                   00000000 (0)\n-62B948 Compressed Size       00000000 (0)\n-62B94C Uncompressed Size     00000000 (0)\n-62B950 Filename Length       0036 (54)\n-62B952 Extra Length          0009 (9)\n-62B954 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62B954: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62B98A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62B98C   Length              0005 (5)\n-62B98E   Flags               01 (1) 'Modification'\n-62B98F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62B993 PAYLOAD\n-\n-62C42F DATA DESCRIPTOR       08074B50 (134695760)\n-62C433 CRC                   F1C552FF (4056240895)\n-62C437 Compressed Size       00000A9C (2716)\n-62C43B Uncompressed Size     00000A9C (2716)\n-\n-62C43F LOCAL HEADER #1814    04034B50 (67324752)\n-62C443 Extract Zip Spec      14 (20) '2.0'\n-62C444 Extract OS            00 (0) 'MS-DOS'\n-62C445 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62C447 Compression Method    0000 (0) 'Stored'\n-62C449 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62C44D CRC                   00000000 (0)\n-62C451 Compressed Size       00000000 (0)\n-62C455 Uncompressed Size     00000000 (0)\n-62C459 Filename Length       002D (45)\n-62C45B Extra Length          0009 (9)\n-62C45D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62C45D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62C48A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62C48C   Length              0005 (5)\n-62C48E   Flags               01 (1) 'Modification'\n-62C48F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62C493 PAYLOAD\n-\n-62CEA7 DATA DESCRIPTOR       08074B50 (134695760)\n-62CEAB CRC                   0D540AED (223611629)\n-62CEAF Compressed Size       00000A14 (2580)\n-62CEB3 Uncompressed Size     00000A14 (2580)\n-\n-62CEB7 LOCAL HEADER #1815    04034B50 (67324752)\n-62CEBB Extract Zip Spec      14 (20) '2.0'\n-62CEBC Extract OS            00 (0) 'MS-DOS'\n-62CEBD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62CEBF Compression Method    0000 (0) 'Stored'\n-62CEC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62CEC5 CRC                   00000000 (0)\n-62CEC9 Compressed Size       00000000 (0)\n-62CECD Uncompressed Size     00000000 (0)\n-62CED1 Filename Length       002F (47)\n-62CED3 Extra Length          0009 (9)\n-62CED5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62CED5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62CF04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62CF06   Length              0005 (5)\n-62CF08   Flags               01 (1) 'Modification'\n-62CF09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62CF0D PAYLOAD\n-\n-62D585 DATA DESCRIPTOR       08074B50 (134695760)\n-62D589 CRC                   00E586BE (15042238)\n-62D58D Compressed Size       00000678 (1656)\n-62D591 Uncompressed Size     00000678 (1656)\n-\n-62D595 LOCAL HEADER #1816    04034B50 (67324752)\n-62D599 Extract Zip Spec      14 (20) '2.0'\n-62D59A Extract OS            00 (0) 'MS-DOS'\n-62D59B General Purpose Flag  0000 (0)\n-62D59D Compression Method    0000 (0) 'Stored'\n-62D59F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62D5A3 CRC                   00000000 (0)\n-62D5A7 Compressed Size       00000000 (0)\n-62D5AB Uncompressed Size     00000000 (0)\n-62D5AF Filename Length       001E (30)\n-62D5B1 Extra Length          0009 (9)\n-62D5B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62D5B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62D5D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62D5D3   Length              0005 (5)\n-62D5D5   Flags               01 (1) 'Modification'\n-62D5D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-62D5DA LOCAL HEADER #1817    04034B50 (67324752)\n-62D5DE Extract Zip Spec      14 (20) '2.0'\n-62D5DF Extract OS            00 (0) 'MS-DOS'\n-62D5E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62D5E2 Compression Method    0000 (0) 'Stored'\n-62D5E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62D5E8 CRC                   00000000 (0)\n-62D5EC Compressed Size       00000000 (0)\n-62D5F0 Uncompressed Size     00000000 (0)\n-62D5F4 Filename Length       003C (60)\n-62D5F6 Extra Length          0009 (9)\n-62D5F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62D5F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62D634 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62D636   Length              0005 (5)\n-62D638   Flags               01 (1) 'Modification'\n-62D639   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62D63D PAYLOAD\n-\n-62DCEA DATA DESCRIPTOR       08074B50 (134695760)\n-62DCEE CRC                   E1C5881F (3787819039)\n-62DCF2 Compressed Size       000006AD (1709)\n-62DCF6 Uncompressed Size     000006AD (1709)\n-\n-62DCFA LOCAL HEADER #1818    04034B50 (67324752)\n-62DCFE Extract Zip Spec      14 (20) '2.0'\n-62DCFF Extract OS            00 (0) 'MS-DOS'\n-62DD00 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62DD02 Compression Method    0000 (0) 'Stored'\n-62DD04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62DD08 CRC                   00000000 (0)\n-62DD0C Compressed Size       00000000 (0)\n-62DD10 Uncompressed Size     00000000 (0)\n-62DD14 Filename Length       003A (58)\n-62DD16 Extra Length          0009 (9)\n-62DD18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62DD18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62DD52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62DD54   Length              0005 (5)\n-62DD56   Flags               01 (1) 'Modification'\n-62DD57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62DD5B PAYLOAD\n-\n-62E270 DATA DESCRIPTOR       08074B50 (134695760)\n-62E274 CRC                   FE9FE6BA (4271892154)\n-62E278 Compressed Size       00000515 (1301)\n-62E27C Uncompressed Size     00000515 (1301)\n-\n-62E280 LOCAL HEADER #1819    04034B50 (67324752)\n-62E284 Extract Zip Spec      14 (20) '2.0'\n-62E285 Extract OS            00 (0) 'MS-DOS'\n-62E286 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62E288 Compression Method    0000 (0) 'Stored'\n-62E28A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62E28E CRC                   00000000 (0)\n-62E292 Compressed Size       00000000 (0)\n-62E296 Uncompressed Size     00000000 (0)\n-62E29A Filename Length       0039 (57)\n-62E29C Extra Length          0009 (9)\n-62E29E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62E29E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62E2D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62E2D9   Length              0005 (5)\n-62E2DB   Flags               01 (1) 'Modification'\n-62E2DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62E2E0 PAYLOAD\n-\n-62E7D7 DATA DESCRIPTOR       08074B50 (134695760)\n-62E7DB CRC                   07F77085 (133656709)\n-62E7DF Compressed Size       000004F7 (1271)\n-62E7E3 Uncompressed Size     000004F7 (1271)\n-\n-62E7E7 LOCAL HEADER #1820    04034B50 (67324752)\n-62E7EB Extract Zip Spec      14 (20) '2.0'\n-62E7EC Extract OS            00 (0) 'MS-DOS'\n-62E7ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62E7EF Compression Method    0000 (0) 'Stored'\n-62E7F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62E7F5 CRC                   00000000 (0)\n-62E7F9 Compressed Size       00000000 (0)\n-62E7FD Uncompressed Size     00000000 (0)\n-62E801 Filename Length       003A (58)\n-62E803 Extra Length          0009 (9)\n-62E805 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62E805: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62E83F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62E841   Length              0005 (5)\n-62E843   Flags               01 (1) 'Modification'\n-62E844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62E848 PAYLOAD\n-\n-62F4E2 DATA DESCRIPTOR       08074B50 (134695760)\n-62F4E6 CRC                   334FA791 (860858257)\n-62F4EA Compressed Size       00000C9A (3226)\n-62F4EE Uncompressed Size     00000C9A (3226)\n-\n-62F4F2 LOCAL HEADER #1821    04034B50 (67324752)\n-62F4F6 Extract Zip Spec      14 (20) '2.0'\n-62F4F7 Extract OS            00 (0) 'MS-DOS'\n-62F4F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-62F4FA Compression Method    0000 (0) 'Stored'\n-62F4FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-62F500 CRC                   00000000 (0)\n-62F504 Compressed Size       00000000 (0)\n-62F508 Uncompressed Size     00000000 (0)\n-62F50C Filename Length       0039 (57)\n-62F50E Extra Length          0009 (9)\n-62F510 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x62F510: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-62F549 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-62F54B   Length              0005 (5)\n-62F54D   Flags               01 (1) 'Modification'\n-62F54E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-62F552 PAYLOAD\n-\n-6302A9 DATA DESCRIPTOR       08074B50 (134695760)\n-6302AD CRC                   5C26FEE4 (1546059492)\n-6302B1 Compressed Size       00000D57 (3415)\n-6302B5 Uncompressed Size     00000D57 (3415)\n-\n-6302B9 LOCAL HEADER #1822    04034B50 (67324752)\n-6302BD Extract Zip Spec      14 (20) '2.0'\n-6302BE Extract OS            00 (0) 'MS-DOS'\n-6302BF General Purpose Flag  0000 (0)\n-6302C1 Compression Method    0000 (0) 'Stored'\n-6302C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6302C7 CRC                   00000000 (0)\n-6302CB Compressed Size       00000000 (0)\n-6302CF Uncompressed Size     00000000 (0)\n-6302D3 Filename Length       001B (27)\n-6302D5 Extra Length          0009 (9)\n-6302D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6302D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6302F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6302F4   Length              0005 (5)\n-6302F6   Flags               01 (1) 'Modification'\n-6302F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6302FB LOCAL HEADER #1823    04034B50 (67324752)\n-6302FF Extract Zip Spec      14 (20) '2.0'\n-630300 Extract OS            00 (0) 'MS-DOS'\n-630301 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-630303 Compression Method    0000 (0) 'Stored'\n-630305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-630309 CRC                   00000000 (0)\n-63030D Compressed Size       00000000 (0)\n-630311 Uncompressed Size     00000000 (0)\n-630315 Filename Length       0037 (55)\n-630317 Extra Length          0009 (9)\n-630319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x630319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-630350 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-630352   Length              0005 (5)\n-630354   Flags               01 (1) 'Modification'\n-630355   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-630359 PAYLOAD\n-\n-63073D DATA DESCRIPTOR       08074B50 (134695760)\n-630741 CRC                   86E81518 (2263356696)\n-630745 Compressed Size       000003E4 (996)\n-630749 Uncompressed Size     000003E4 (996)\n-\n-63074D LOCAL HEADER #1824    04034B50 (67324752)\n-630751 Extract Zip Spec      14 (20) '2.0'\n-630752 Extract OS            00 (0) 'MS-DOS'\n-630753 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-630755 Compression Method    0000 (0) 'Stored'\n-630757 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63075B CRC                   00000000 (0)\n-63075F Compressed Size       00000000 (0)\n-630763 Uncompressed Size     00000000 (0)\n-630767 Filename Length       0030 (48)\n-630769 Extra Length          0009 (9)\n-63076B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63076B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63079B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63079D   Length              0005 (5)\n-63079F   Flags               01 (1) 'Modification'\n-6307A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6307A4 PAYLOAD\n-\n-631A4C DATA DESCRIPTOR       08074B50 (134695760)\n-631A50 CRC                   201D5BFC (538795004)\n-631A54 Compressed Size       000012A8 (4776)\n-631A58 Uncompressed Size     000012A8 (4776)\n-\n-631A5C LOCAL HEADER #1825    04034B50 (67324752)\n-631A60 Extract Zip Spec      14 (20) '2.0'\n-631A61 Extract OS            00 (0) 'MS-DOS'\n-631A62 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-631A64 Compression Method    0000 (0) 'Stored'\n-631A66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-631A6A CRC                   00000000 (0)\n-631A6E Compressed Size       00000000 (0)\n-631A72 Uncompressed Size     00000000 (0)\n-631A76 Filename Length       002F (47)\n-631A78 Extra Length          0009 (9)\n-631A7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x631A7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-631AA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-631AAB   Length              0005 (5)\n-631AAD   Flags               01 (1) 'Modification'\n-631AAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-631AB2 PAYLOAD\n-\n-6324EB DATA DESCRIPTOR       08074B50 (134695760)\n-6324EF CRC                   E946A330 (3913720624)\n-6324F3 Compressed Size       00000A39 (2617)\n-6324F7 Uncompressed Size     00000A39 (2617)\n-\n-6324FB LOCAL HEADER #1826    04034B50 (67324752)\n-6324FF Extract Zip Spec      14 (20) '2.0'\n-632500 Extract OS            00 (0) 'MS-DOS'\n-632501 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-632503 Compression Method    0000 (0) 'Stored'\n-632505 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-632509 CRC                   00000000 (0)\n-63250D Compressed Size       00000000 (0)\n-632511 Uncompressed Size     00000000 (0)\n-632515 Filename Length       0036 (54)\n-632517 Extra Length          0009 (9)\n-632519 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x632519: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63254F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-632551   Length              0005 (5)\n-632553   Flags               01 (1) 'Modification'\n-632554   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-632558 PAYLOAD\n-\n-63291C DATA DESCRIPTOR       08074B50 (134695760)\n-632920 CRC                   FBAECD89 (4222537097)\n-632924 Compressed Size       000003C4 (964)\n-632928 Uncompressed Size     000003C4 (964)\n-\n-63292C LOCAL HEADER #1827    04034B50 (67324752)\n-632930 Extract Zip Spec      14 (20) '2.0'\n-632931 Extract OS            00 (0) 'MS-DOS'\n-632932 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-632934 Compression Method    0000 (0) 'Stored'\n-632936 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63293A CRC                   00000000 (0)\n-63293E Compressed Size       00000000 (0)\n-632942 Uncompressed Size     00000000 (0)\n-632946 Filename Length       0033 (51)\n-632948 Extra Length          0009 (9)\n-63294A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63294A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63297D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63297F   Length              0005 (5)\n-632981   Flags               01 (1) 'Modification'\n-632982   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-632986 PAYLOAD\n-\n-633574 DATA DESCRIPTOR       08074B50 (134695760)\n-633578 CRC                   E22DB581 (3794646401)\n-63357C Compressed Size       00000BEE (3054)\n-633580 Uncompressed Size     00000BEE (3054)\n-\n-633584 LOCAL HEADER #1828    04034B50 (67324752)\n-633588 Extract Zip Spec      14 (20) '2.0'\n-633589 Extract OS            00 (0) 'MS-DOS'\n-63358A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63358C Compression Method    0000 (0) 'Stored'\n-63358E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-633592 CRC                   00000000 (0)\n-633596 Compressed Size       00000000 (0)\n-63359A Uncompressed Size     00000000 (0)\n-63359E Filename Length       002D (45)\n-6335A0 Extra Length          0009 (9)\n-6335A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6335A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6335CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6335D1   Length              0005 (5)\n-6335D3   Flags               01 (1) 'Modification'\n-6335D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6335D8 PAYLOAD\n-\n-635175 DATA DESCRIPTOR       08074B50 (134695760)\n-635179 CRC                   02426CD5 (37907669)\n-63517D Compressed Size       00001B9D (7069)\n-635181 Uncompressed Size     00001B9D (7069)\n-\n-635185 LOCAL HEADER #1829    04034B50 (67324752)\n-635189 Extract Zip Spec      14 (20) '2.0'\n-63518A Extract OS            00 (0) 'MS-DOS'\n-63518B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63518D Compression Method    0000 (0) 'Stored'\n-63518F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-635193 CRC                   00000000 (0)\n-635197 Compressed Size       00000000 (0)\n-63519B Uncompressed Size     00000000 (0)\n-63519F Filename Length       0030 (48)\n-6351A1 Extra Length          0009 (9)\n-6351A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6351A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6351D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6351D5   Length              0005 (5)\n-6351D7   Flags               01 (1) 'Modification'\n-6351D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6351DC PAYLOAD\n-\n-635D8C DATA DESCRIPTOR       08074B50 (134695760)\n-635D90 CRC                   641CBA7B (1679604347)\n-635D94 Compressed Size       00000BB0 (2992)\n-635D98 Uncompressed Size     00000BB0 (2992)\n-\n-635D9C LOCAL HEADER #1830    04034B50 (67324752)\n-635DA0 Extract Zip Spec      14 (20) '2.0'\n-635DA1 Extract OS            00 (0) 'MS-DOS'\n-635DA2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-635DA4 Compression Method    0000 (0) 'Stored'\n-635DA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-635DAA CRC                   00000000 (0)\n-635DAE Compressed Size       00000000 (0)\n-635DB2 Uncompressed Size     00000000 (0)\n-635DB6 Filename Length       0033 (51)\n-635DB8 Extra Length          0009 (9)\n-635DBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x635DBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-635DED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-635DEF   Length              0005 (5)\n-635DF1   Flags               01 (1) 'Modification'\n-635DF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-635DF6 PAYLOAD\n-\n-636867 DATA DESCRIPTOR       08074B50 (134695760)\n-63686B CRC                   C652D326 (3327316774)\n-63686F Compressed Size       00000A71 (2673)\n-636873 Uncompressed Size     00000A71 (2673)\n-\n-636877 LOCAL HEADER #1831    04034B50 (67324752)\n-63687B Extract Zip Spec      14 (20) '2.0'\n-63687C Extract OS            00 (0) 'MS-DOS'\n-63687D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63687F Compression Method    0000 (0) 'Stored'\n-636881 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-636885 CRC                   00000000 (0)\n-636889 Compressed Size       00000000 (0)\n-63688D Uncompressed Size     00000000 (0)\n-636891 Filename Length       002D (45)\n-636893 Extra Length          0009 (9)\n-636895 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x636895: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6368C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6368C4   Length              0005 (5)\n-6368C6   Flags               01 (1) 'Modification'\n-6368C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6368CB PAYLOAD\n-\n-6382D8 DATA DESCRIPTOR       08074B50 (134695760)\n-6382DC CRC                   DE4FB79A (3729766298)\n-6382E0 Compressed Size       00001A0D (6669)\n-6382E4 Uncompressed Size     00001A0D (6669)\n-\n-6382E8 LOCAL HEADER #1832    04034B50 (67324752)\n-6382EC Extract Zip Spec      14 (20) '2.0'\n-6382ED Extract OS            00 (0) 'MS-DOS'\n-6382EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6382F0 Compression Method    0000 (0) 'Stored'\n-6382F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6382F6 CRC                   00000000 (0)\n-6382FA Compressed Size       00000000 (0)\n-6382FE Uncompressed Size     00000000 (0)\n-638302 Filename Length       0031 (49)\n-638304 Extra Length          0009 (9)\n-638306 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x638306: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-638337 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-638339   Length              0005 (5)\n-63833B   Flags               01 (1) 'Modification'\n-63833C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-638340 PAYLOAD\n-\n-63944A DATA DESCRIPTOR       08074B50 (134695760)\n-63944E CRC                   C6C2FD7D (3334667645)\n-639452 Compressed Size       0000110A (4362)\n-639456 Uncompressed Size     0000110A (4362)\n-\n-63945A LOCAL HEADER #1833    04034B50 (67324752)\n-63945E Extract Zip Spec      14 (20) '2.0'\n-63945F Extract OS            00 (0) 'MS-DOS'\n-639460 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-639462 Compression Method    0000 (0) 'Stored'\n-639464 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-639468 CRC                   00000000 (0)\n-63946C Compressed Size       00000000 (0)\n-639470 Uncompressed Size     00000000 (0)\n-639474 Filename Length       002F (47)\n-639476 Extra Length          0009 (9)\n-639478 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x639478: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6394A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6394A9   Length              0005 (5)\n-6394AB   Flags               01 (1) 'Modification'\n-6394AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6394B0 PAYLOAD\n-\n-63A0CC DATA DESCRIPTOR       08074B50 (134695760)\n-63A0D0 CRC                   92839F02 (2458099458)\n-63A0D4 Compressed Size       00000C1C (3100)\n-63A0D8 Uncompressed Size     00000C1C (3100)\n-\n-63A0DC LOCAL HEADER #1834    04034B50 (67324752)\n-63A0E0 Extract Zip Spec      14 (20) '2.0'\n-63A0E1 Extract OS            00 (0) 'MS-DOS'\n-63A0E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63A0E4 Compression Method    0000 (0) 'Stored'\n-63A0E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63A0EA CRC                   00000000 (0)\n-63A0EE Compressed Size       00000000 (0)\n-63A0F2 Uncompressed Size     00000000 (0)\n-63A0F6 Filename Length       0031 (49)\n-63A0F8 Extra Length          0009 (9)\n-63A0FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63A0FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63A12B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63A12D   Length              0005 (5)\n-63A12F   Flags               01 (1) 'Modification'\n-63A130   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-63A134 PAYLOAD\n-\n-63BDB1 DATA DESCRIPTOR       08074B50 (134695760)\n-63BDB5 CRC                   ED067114 (3976622356)\n-63BDB9 Compressed Size       00001C7D (7293)\n-63BDBD Uncompressed Size     00001C7D (7293)\n-\n-63BDC1 LOCAL HEADER #1835    04034B50 (67324752)\n-63BDC5 Extract Zip Spec      14 (20) '2.0'\n-63BDC6 Extract OS            00 (0) 'MS-DOS'\n-63BDC7 General Purpose Flag  0000 (0)\n-63BDC9 Compression Method    0000 (0) 'Stored'\n-63BDCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63BDCF CRC                   00000000 (0)\n-63BDD3 Compressed Size       00000000 (0)\n-63BDD7 Uncompressed Size     00000000 (0)\n-63BDDB Filename Length       001E (30)\n-63BDDD Extra Length          0009 (9)\n-63BDDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63BDDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63BDFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63BDFF   Length              0005 (5)\n-63BE01   Flags               01 (1) 'Modification'\n-63BE02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-63BE06 LOCAL HEADER #1836    04034B50 (67324752)\n-63BE0A Extract Zip Spec      14 (20) '2.0'\n-63BE0B Extract OS            00 (0) 'MS-DOS'\n-63BE0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63BE0E Compression Method    0000 (0) 'Stored'\n-63BE10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63BE14 CRC                   00000000 (0)\n-63BE18 Compressed Size       00000000 (0)\n-63BE1C Uncompressed Size     00000000 (0)\n-63BE20 Filename Length       0033 (51)\n-63BE22 Extra Length          0009 (9)\n-63BE24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63BE24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63BE57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63BE59   Length              0005 (5)\n-63BE5B   Flags               01 (1) 'Modification'\n-63BE5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-63BE60 PAYLOAD\n-\n-63C756 DATA DESCRIPTOR       08074B50 (134695760)\n-63C75A CRC                   EC8B751D (3968562461)\n-63C75E Compressed Size       000008F6 (2294)\n-63C762 Uncompressed Size     000008F6 (2294)\n-\n-63C766 LOCAL HEADER #1837    04034B50 (67324752)\n-63C76A Extract Zip Spec      14 (20) '2.0'\n-63C76B Extract OS            00 (0) 'MS-DOS'\n-63C76C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63C76E Compression Method    0000 (0) 'Stored'\n-63C770 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63C774 CRC                   00000000 (0)\n-63C778 Compressed Size       00000000 (0)\n-63C77C Uncompressed Size     00000000 (0)\n-63C780 Filename Length       0032 (50)\n-63C782 Extra Length          0009 (9)\n-63C784 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63C784: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63C7B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63C7B8   Length              0005 (5)\n-63C7BA   Flags               01 (1) 'Modification'\n-63C7BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-63C7BF PAYLOAD\n-\n-63E711 DATA DESCRIPTOR       08074B50 (134695760)\n-63E715 CRC                   A5C33F03 (2781036291)\n-63E719 Compressed Size       00001F52 (8018)\n-63E71D Uncompressed Size     00001F52 (8018)\n-\n-63E721 LOCAL HEADER #1838    04034B50 (67324752)\n-63E725 Extract Zip Spec      14 (20) '2.0'\n-63E726 Extract OS            00 (0) 'MS-DOS'\n-63E727 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63E729 Compression Method    0000 (0) 'Stored'\n-63E72B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63E72F CRC                   00000000 (0)\n-63E733 Compressed Size       00000000 (0)\n-63E737 Uncompressed Size     00000000 (0)\n-63E73B Filename Length       0033 (51)\n-63E73D Extra Length          0009 (9)\n-63E73F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63E73F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63E772 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63E774   Length              0005 (5)\n-63E776   Flags               01 (1) 'Modification'\n-63E777   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-63E77B PAYLOAD\n-\n-63F879 DATA DESCRIPTOR       08074B50 (134695760)\n-63F87D CRC                   861CA040 (2250022976)\n-63F881 Compressed Size       000010FE (4350)\n-63F885 Uncompressed Size     000010FE (4350)\n-\n-63F889 LOCAL HEADER #1839    04034B50 (67324752)\n-63F88D Extract Zip Spec      14 (20) '2.0'\n-63F88E Extract OS            00 (0) 'MS-DOS'\n-63F88F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-63F891 Compression Method    0000 (0) 'Stored'\n-63F893 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-63F897 CRC                   00000000 (0)\n-63F89B Compressed Size       00000000 (0)\n-63F89F Uncompressed Size     00000000 (0)\n-63F8A3 Filename Length       0038 (56)\n-63F8A5 Extra Length          0009 (9)\n-63F8A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x63F8A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-63F8DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-63F8E1   Length              0005 (5)\n-63F8E3   Flags               01 (1) 'Modification'\n-63F8E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-63F8E8 PAYLOAD\n-\n-641ACC DATA DESCRIPTOR       08074B50 (134695760)\n-641AD0 CRC                   1140D3D7 (289461207)\n-641AD4 Compressed Size       000021E4 (8676)\n-641AD8 Uncompressed Size     000021E4 (8676)\n-\n-641ADC LOCAL HEADER #1840    04034B50 (67324752)\n-641AE0 Extract Zip Spec      14 (20) '2.0'\n-641AE1 Extract OS            00 (0) 'MS-DOS'\n-641AE2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-641AE4 Compression Method    0000 (0) 'Stored'\n-641AE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-641AEA CRC                   00000000 (0)\n-641AEE Compressed Size       00000000 (0)\n-641AF2 Uncompressed Size     00000000 (0)\n-641AF6 Filename Length       0035 (53)\n-641AF8 Extra Length          0009 (9)\n-641AFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x641AFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-641B2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-641B31   Length              0005 (5)\n-641B33   Flags               01 (1) 'Modification'\n-641B34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-641B38 PAYLOAD\n-\n-642A8E DATA DESCRIPTOR       08074B50 (134695760)\n-642A92 CRC                   90398B66 (2419690342)\n-642A96 Compressed Size       00000F56 (3926)\n-642A9A Uncompressed Size     00000F56 (3926)\n-\n-642A9E LOCAL HEADER #1841    04034B50 (67324752)\n-642AA2 Extract Zip Spec      14 (20) '2.0'\n-642AA3 Extract OS            00 (0) 'MS-DOS'\n-642AA4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-642AA6 Compression Method    0000 (0) 'Stored'\n-642AA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-642AAC CRC                   00000000 (0)\n-642AB0 Compressed Size       00000000 (0)\n-642AB4 Uncompressed Size     00000000 (0)\n-642AB8 Filename Length       002D (45)\n-642ABA Extra Length          0009 (9)\n-642ABC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x642ABC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-642AE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-642AEB   Length              0005 (5)\n-642AED   Flags               01 (1) 'Modification'\n-642AEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-642AF2 PAYLOAD\n-\n-643A9B DATA DESCRIPTOR       08074B50 (134695760)\n-643A9F CRC                   8054E5B8 (2153047480)\n-643AA3 Compressed Size       00000FA9 (4009)\n-643AA7 Uncompressed Size     00000FA9 (4009)\n-\n-643AAB LOCAL HEADER #1842    04034B50 (67324752)\n-643AAF Extract Zip Spec      14 (20) '2.0'\n-643AB0 Extract OS            00 (0) 'MS-DOS'\n-643AB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-643AB3 Compression Method    0000 (0) 'Stored'\n-643AB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-643AB9 CRC                   00000000 (0)\n-643ABD Compressed Size       00000000 (0)\n-643AC1 Uncompressed Size     00000000 (0)\n-643AC5 Filename Length       0031 (49)\n-643AC7 Extra Length          0009 (9)\n-643AC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x643AC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-643AFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-643AFC   Length              0005 (5)\n-643AFE   Flags               01 (1) 'Modification'\n-643AFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-643B03 PAYLOAD\n-\n-644230 DATA DESCRIPTOR       08074B50 (134695760)\n-644234 CRC                   873A5673 (2268747379)\n-644238 Compressed Size       0000072D (1837)\n-64423C Uncompressed Size     0000072D (1837)\n-\n-644240 LOCAL HEADER #1843    04034B50 (67324752)\n-644244 Extract Zip Spec      14 (20) '2.0'\n-644245 Extract OS            00 (0) 'MS-DOS'\n-644246 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-644248 Compression Method    0000 (0) 'Stored'\n-64424A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64424E CRC                   00000000 (0)\n-644252 Compressed Size       00000000 (0)\n-644256 Uncompressed Size     00000000 (0)\n-64425A Filename Length       0038 (56)\n-64425C Extra Length          0009 (9)\n-64425E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64425E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-644296 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-644298   Length              0005 (5)\n-64429A   Flags               01 (1) 'Modification'\n-64429B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-64429F PAYLOAD\n-\n-644FEF DATA DESCRIPTOR       08074B50 (134695760)\n-644FF3 CRC                   B63E72D7 (3057545943)\n-644FF7 Compressed Size       00000D50 (3408)\n-644FFB Uncompressed Size     00000D50 (3408)\n-\n-644FFF LOCAL HEADER #1844    04034B50 (67324752)\n-645003 Extract Zip Spec      14 (20) '2.0'\n-645004 Extract OS            00 (0) 'MS-DOS'\n-645005 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-645007 Compression Method    0000 (0) 'Stored'\n-645009 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64500D CRC                   00000000 (0)\n-645011 Compressed Size       00000000 (0)\n-645015 Uncompressed Size     00000000 (0)\n-645019 Filename Length       003A (58)\n-64501B Extra Length          0009 (9)\n-64501D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64501D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-645057 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-645059   Length              0005 (5)\n-64505B   Flags               01 (1) 'Modification'\n-64505C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-645060 PAYLOAD\n-\n-645D78 DATA DESCRIPTOR       08074B50 (134695760)\n-645D7C CRC                   C40EC84E (3289303118)\n-645D80 Compressed Size       00000D18 (3352)\n-645D84 Uncompressed Size     00000D18 (3352)\n-\n-645D88 LOCAL HEADER #1845    04034B50 (67324752)\n-645D8C Extract Zip Spec      14 (20) '2.0'\n-645D8D Extract OS            00 (0) 'MS-DOS'\n-645D8E General Purpose Flag  0000 (0)\n-645D90 Compression Method    0000 (0) 'Stored'\n-645D92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-645D96 CRC                   00000000 (0)\n-645D9A Compressed Size       00000000 (0)\n-645D9E Uncompressed Size     00000000 (0)\n-645DA2 Filename Length       0024 (36)\n-645DA4 Extra Length          0009 (9)\n-645DA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x645DA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-645DCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-645DCC   Length              0005 (5)\n-645DCE   Flags               01 (1) 'Modification'\n-645DCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-645DD3 LOCAL HEADER #1846    04034B50 (67324752)\n-645DD7 Extract Zip Spec      14 (20) '2.0'\n-645DD8 Extract OS            00 (0) 'MS-DOS'\n-645DD9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-645DDB Compression Method    0000 (0) 'Stored'\n-645DDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-645DE1 CRC                   00000000 (0)\n-645DE5 Compressed Size       00000000 (0)\n-645DE9 Uncompressed Size     00000000 (0)\n-645DED Filename Length       003D (61)\n-645DEF Extra Length          0009 (9)\n-645DF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x645DF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-645E2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-645E30   Length              0005 (5)\n-645E32   Flags               01 (1) 'Modification'\n-645E33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-645E37 PAYLOAD\n-\n-649C7E DATA DESCRIPTOR       08074B50 (134695760)\n-649C82 CRC                   B7F8FDDA (3086548442)\n-649C86 Compressed Size       00003E47 (15943)\n-649C8A Uncompressed Size     00003E47 (15943)\n-\n-649C8E LOCAL HEADER #1847    04034B50 (67324752)\n-649C92 Extract Zip Spec      14 (20) '2.0'\n-649C93 Extract OS            00 (0) 'MS-DOS'\n-649C94 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-649C96 Compression Method    0000 (0) 'Stored'\n-649C98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-649C9C CRC                   00000000 (0)\n-649CA0 Compressed Size       00000000 (0)\n-649CA4 Uncompressed Size     00000000 (0)\n-649CA8 Filename Length       003E (62)\n-649CAA Extra Length          0009 (9)\n-649CAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x649CAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-649CEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-649CEC   Length              0005 (5)\n-649CEE   Flags               01 (1) 'Modification'\n-649CEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-649CF3 PAYLOAD\n-\n-64B5D6 DATA DESCRIPTOR       08074B50 (134695760)\n-64B5DA CRC                   03D1B931 (64076081)\n-64B5DE Compressed Size       000018E3 (6371)\n-64B5E2 Uncompressed Size     000018E3 (6371)\n-\n-64B5E6 LOCAL HEADER #1848    04034B50 (67324752)\n-64B5EA Extract Zip Spec      14 (20) '2.0'\n-64B5EB Extract OS            00 (0) 'MS-DOS'\n-64B5EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-64B5EE Compression Method    0000 (0) 'Stored'\n-64B5F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64B5F4 CRC                   00000000 (0)\n-64B5F8 Compressed Size       00000000 (0)\n-64B5FC Uncompressed Size     00000000 (0)\n-64B600 Filename Length       0032 (50)\n-64B602 Extra Length          0009 (9)\n-64B604 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64B604: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64B636 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64B638   Length              0005 (5)\n-64B63A   Flags               01 (1) 'Modification'\n-64B63B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-64B63F PAYLOAD\n-\n-64BEF7 DATA DESCRIPTOR       08074B50 (134695760)\n-64BEFB CRC                   F93BB070 (4181438576)\n-64BEFF Compressed Size       000008B8 (2232)\n-64BF03 Uncompressed Size     000008B8 (2232)\n-\n-64BF07 LOCAL HEADER #1849    04034B50 (67324752)\n-64BF0B Extract Zip Spec      14 (20) '2.0'\n-64BF0C Extract OS            00 (0) 'MS-DOS'\n-64BF0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-64BF0F Compression Method    0000 (0) 'Stored'\n-64BF11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64BF15 CRC                   00000000 (0)\n-64BF19 Compressed Size       00000000 (0)\n-64BF1D Uncompressed Size     00000000 (0)\n-64BF21 Filename Length       0040 (64)\n-64BF23 Extra Length          0009 (9)\n-64BF25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64BF25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64BF65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64BF67   Length              0005 (5)\n-64BF69   Flags               01 (1) 'Modification'\n-64BF6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-64BF6E PAYLOAD\n-\n-64DEA4 DATA DESCRIPTOR       08074B50 (134695760)\n-64DEA8 CRC                   C7D35A4B (3352517195)\n-64DEAC Compressed Size       00001F36 (7990)\n-64DEB0 Uncompressed Size     00001F36 (7990)\n-\n-64DEB4 LOCAL HEADER #1850    04034B50 (67324752)\n-64DEB8 Extract Zip Spec      14 (20) '2.0'\n-64DEB9 Extract OS            00 (0) 'MS-DOS'\n-64DEBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-64DEBC Compression Method    0000 (0) 'Stored'\n-64DEBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64DEC2 CRC                   00000000 (0)\n-64DEC6 Compressed Size       00000000 (0)\n-64DECA Uncompressed Size     00000000 (0)\n-64DECE Filename Length       003C (60)\n-64DED0 Extra Length          0009 (9)\n-64DED2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64DED2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64DF0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64DF10   Length              0005 (5)\n-64DF12   Flags               01 (1) 'Modification'\n-64DF13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-64DF17 PAYLOAD\n-\n-64FAB7 DATA DESCRIPTOR       08074B50 (134695760)\n-64FABB CRC                   D012E5FC (3490899452)\n-64FABF Compressed Size       00001BA0 (7072)\n-64FAC3 Uncompressed Size     00001BA0 (7072)\n-\n-64FAC7 LOCAL HEADER #1851    04034B50 (67324752)\n-64FACB Extract Zip Spec      14 (20) '2.0'\n-64FACC Extract OS            00 (0) 'MS-DOS'\n-64FACD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-64FACF Compression Method    0000 (0) 'Stored'\n-64FAD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-64FAD5 CRC                   00000000 (0)\n-64FAD9 Compressed Size       00000000 (0)\n-64FADD Uncompressed Size     00000000 (0)\n-64FAE1 Filename Length       0033 (51)\n-64FAE3 Extra Length          0009 (9)\n-64FAE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x64FAE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-64FB18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-64FB1A   Length              0005 (5)\n-64FB1C   Flags               01 (1) 'Modification'\n-64FB1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-64FB21 PAYLOAD\n-\n-652608 DATA DESCRIPTOR       08074B50 (134695760)\n-65260C CRC                   A6D38CE4 (2798882020)\n-652610 Compressed Size       00002AE7 (10983)\n-652614 Uncompressed Size     00002AE7 (10983)\n-\n-652618 LOCAL HEADER #1852    04034B50 (67324752)\n-65261C Extract Zip Spec      14 (20) '2.0'\n-65261D Extract OS            00 (0) 'MS-DOS'\n-65261E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-652620 Compression Method    0000 (0) 'Stored'\n-652622 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-652626 CRC                   00000000 (0)\n-65262A Compressed Size       00000000 (0)\n-65262E Uncompressed Size     00000000 (0)\n-652632 Filename Length       003A (58)\n-652634 Extra Length          0009 (9)\n-652636 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x652636: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-652670 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-652672   Length              0005 (5)\n-652674   Flags               01 (1) 'Modification'\n-652675   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-652679 PAYLOAD\n-\n-653092 DATA DESCRIPTOR       08074B50 (134695760)\n-653096 CRC                   982FC700 (2553267968)\n-65309A Compressed Size       00000A19 (2585)\n-65309E Uncompressed Size     00000A19 (2585)\n-\n-6530A2 LOCAL HEADER #1853    04034B50 (67324752)\n-6530A6 Extract Zip Spec      14 (20) '2.0'\n-6530A7 Extract OS            00 (0) 'MS-DOS'\n-6530A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6530AA Compression Method    0000 (0) 'Stored'\n-6530AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6530B0 CRC                   00000000 (0)\n-6530B4 Compressed Size       00000000 (0)\n-6530B8 Uncompressed Size     00000000 (0)\n-6530BC Filename Length       0038 (56)\n-6530BE Extra Length          0009 (9)\n-6530C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6530C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6530F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6530FA   Length              0005 (5)\n-6530FC   Flags               01 (1) 'Modification'\n-6530FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-653101 PAYLOAD\n-\n-653D1F DATA DESCRIPTOR       08074B50 (134695760)\n-653D23 CRC                   C6A73CC6 (3332848838)\n-653D27 Compressed Size       00000C1E (3102)\n-653D2B Uncompressed Size     00000C1E (3102)\n-\n-653D2F LOCAL HEADER #1854    04034B50 (67324752)\n-653D33 Extract Zip Spec      14 (20) '2.0'\n-653D34 Extract OS            00 (0) 'MS-DOS'\n-653D35 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-653D37 Compression Method    0000 (0) 'Stored'\n-653D39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-653D3D CRC                   00000000 (0)\n-653D41 Compressed Size       00000000 (0)\n-653D45 Uncompressed Size     00000000 (0)\n-653D49 Filename Length       0036 (54)\n-653D4B Extra Length          0009 (9)\n-653D4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x653D4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-653D83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-653D85   Length              0005 (5)\n-653D87   Flags               01 (1) 'Modification'\n-653D88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-653D8C PAYLOAD\n-\n-65433D DATA DESCRIPTOR       08074B50 (134695760)\n-654341 CRC                   94899E78 (2492046968)\n-654345 Compressed Size       000005B1 (1457)\n-654349 Uncompressed Size     000005B1 (1457)\n-\n-65434D LOCAL HEADER #1855    04034B50 (67324752)\n-654351 Extract Zip Spec      14 (20) '2.0'\n-654352 Extract OS            00 (0) 'MS-DOS'\n-654353 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-654355 Compression Method    0000 (0) 'Stored'\n-654357 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65435B CRC                   00000000 (0)\n-65435F Compressed Size       00000000 (0)\n-654363 Uncompressed Size     00000000 (0)\n-654367 Filename Length       0035 (53)\n-654369 Extra Length          0009 (9)\n-65436B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65436B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6543A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6543A2   Length              0005 (5)\n-6543A4   Flags               01 (1) 'Modification'\n-6543A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6543A9 PAYLOAD\n-\n-656382 DATA DESCRIPTOR       08074B50 (134695760)\n-656386 CRC                   4247D839 (1112004665)\n-65638A Compressed Size       00001FD9 (8153)\n-65638E Uncompressed Size     00001FD9 (8153)\n-\n-656392 LOCAL HEADER #1856    04034B50 (67324752)\n-656396 Extract Zip Spec      14 (20) '2.0'\n-656397 Extract OS            00 (0) 'MS-DOS'\n-656398 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-65639A Compression Method    0000 (0) 'Stored'\n-65639C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6563A0 CRC                   00000000 (0)\n-6563A4 Compressed Size       00000000 (0)\n-6563A8 Uncompressed Size     00000000 (0)\n-6563AC Filename Length       0036 (54)\n-6563AE Extra Length          0009 (9)\n-6563B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6563B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6563E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6563E8   Length              0005 (5)\n-6563EA   Flags               01 (1) 'Modification'\n-6563EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6563EF PAYLOAD\n-\n-65CF26 DATA DESCRIPTOR       08074B50 (134695760)\n-65CF2A CRC                   C2B511E4 (3266646500)\n-65CF2E Compressed Size       00006B37 (27447)\n-65CF32 Uncompressed Size     00006B37 (27447)\n-\n-65CF36 LOCAL HEADER #1857    04034B50 (67324752)\n-65CF3A Extract Zip Spec      14 (20) '2.0'\n-65CF3B Extract OS            00 (0) 'MS-DOS'\n-65CF3C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-65CF3E Compression Method    0000 (0) 'Stored'\n-65CF40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65CF44 CRC                   00000000 (0)\n-65CF48 Compressed Size       00000000 (0)\n-65CF4C Uncompressed Size     00000000 (0)\n-65CF50 Filename Length       003C (60)\n-65CF52 Extra Length          0009 (9)\n-65CF54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65CF54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65CF90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65CF92   Length              0005 (5)\n-65CF94   Flags               01 (1) 'Modification'\n-65CF95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-65CF99 PAYLOAD\n-\n-65D6AD DATA DESCRIPTOR       08074B50 (134695760)\n-65D6B1 CRC                   7317DB5C (1930943324)\n-65D6B5 Compressed Size       00000714 (1812)\n-65D6B9 Uncompressed Size     00000714 (1812)\n-\n-65D6BD LOCAL HEADER #1858    04034B50 (67324752)\n-65D6C1 Extract Zip Spec      14 (20) '2.0'\n-65D6C2 Extract OS            00 (0) 'MS-DOS'\n-65D6C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-65D6C5 Compression Method    0000 (0) 'Stored'\n-65D6C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65D6CB CRC                   00000000 (0)\n-65D6CF Compressed Size       00000000 (0)\n-65D6D3 Uncompressed Size     00000000 (0)\n-65D6D7 Filename Length       0036 (54)\n-65D6D9 Extra Length          0009 (9)\n-65D6DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65D6DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65D711 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65D713   Length              0005 (5)\n-65D715   Flags               01 (1) 'Modification'\n-65D716   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-65D71A PAYLOAD\n-\n-65E4C8 DATA DESCRIPTOR       08074B50 (134695760)\n-65E4CC CRC                   7D5510EE (2102726894)\n-65E4D0 Compressed Size       00000DAE (3502)\n-65E4D4 Uncompressed Size     00000DAE (3502)\n-\n-65E4D8 LOCAL HEADER #1859    04034B50 (67324752)\n-65E4DC Extract Zip Spec      14 (20) '2.0'\n-65E4DD Extract OS            00 (0) 'MS-DOS'\n-65E4DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-65E4E0 Compression Method    0000 (0) 'Stored'\n-65E4E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-65E4E6 CRC                   00000000 (0)\n-65E4EA Compressed Size       00000000 (0)\n-65E4EE Uncompressed Size     00000000 (0)\n-65E4F2 Filename Length       0042 (66)\n-65E4F4 Extra Length          0009 (9)\n-65E4F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x65E4F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-65E538 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-65E53A   Length              0005 (5)\n-65E53C   Flags               01 (1) 'Modification'\n-65E53D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-65E541 PAYLOAD\n-\n-66050D DATA DESCRIPTOR       08074B50 (134695760)\n-660511 CRC                   344C1E36 (877403702)\n-660515 Compressed Size       00001FCC (8140)\n-660519 Uncompressed Size     00001FCC (8140)\n-\n-66051D LOCAL HEADER #1860    04034B50 (67324752)\n-660521 Extract Zip Spec      14 (20) '2.0'\n-660522 Extract OS            00 (0) 'MS-DOS'\n-660523 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-660525 Compression Method    0000 (0) 'Stored'\n-660527 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66052B CRC                   00000000 (0)\n-66052F Compressed Size       00000000 (0)\n-660533 Uncompressed Size     00000000 (0)\n-660537 Filename Length       0045 (69)\n-660539 Extra Length          0009 (9)\n-66053B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66053B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-660580 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-660582   Length              0005 (5)\n-660584   Flags               01 (1) 'Modification'\n-660585   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-660589 PAYLOAD\n-\n-661D50 DATA DESCRIPTOR       08074B50 (134695760)\n-661D54 CRC                   3B14B127 (991211815)\n-661D58 Compressed Size       000017C7 (6087)\n-661D5C Uncompressed Size     000017C7 (6087)\n-\n-661D60 LOCAL HEADER #1861    04034B50 (67324752)\n-661D64 Extract Zip Spec      14 (20) '2.0'\n-661D65 Extract OS            00 (0) 'MS-DOS'\n-661D66 General Purpose Flag  0000 (0)\n-661D68 Compression Method    0000 (0) 'Stored'\n-661D6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-661D6E CRC                   00000000 (0)\n-661D72 Compressed Size       00000000 (0)\n-661D76 Uncompressed Size     00000000 (0)\n-661D7A Filename Length       002B (43)\n-661D7C Extra Length          0009 (9)\n-661D7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x661D7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-661DA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-661DAB   Length              0005 (5)\n-661DAD   Flags               01 (1) 'Modification'\n-661DAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-661DB2 LOCAL HEADER #1862    04034B50 (67324752)\n-661DB6 Extract Zip Spec      14 (20) '2.0'\n-661DB7 Extract OS            00 (0) 'MS-DOS'\n-661DB8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-661DBA Compression Method    0000 (0) 'Stored'\n-661DBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-661DC0 CRC                   00000000 (0)\n-661DC4 Compressed Size       00000000 (0)\n-661DC8 Uncompressed Size     00000000 (0)\n-661DCC Filename Length       003C (60)\n-661DCE Extra Length          0009 (9)\n-661DD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x661DD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-661E0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-661E0E   Length              0005 (5)\n-661E10   Flags               01 (1) 'Modification'\n-661E11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-661E15 PAYLOAD\n-\n-66403D DATA DESCRIPTOR       08074B50 (134695760)\n-664041 CRC                   1915FFAE (420872110)\n-664045 Compressed Size       00002228 (8744)\n-664049 Uncompressed Size     00002228 (8744)\n-\n-66404D LOCAL HEADER #1863    04034B50 (67324752)\n-664051 Extract Zip Spec      14 (20) '2.0'\n-664052 Extract OS            00 (0) 'MS-DOS'\n-664053 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-664055 Compression Method    0000 (0) 'Stored'\n-664057 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66405B CRC                   00000000 (0)\n-66405F Compressed Size       00000000 (0)\n-664063 Uncompressed Size     00000000 (0)\n-664067 Filename Length       003B (59)\n-664069 Extra Length          0009 (9)\n-66406B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66406B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6640A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6640A8   Length              0005 (5)\n-6640AA   Flags               01 (1) 'Modification'\n-6640AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6640AF PAYLOAD\n-\n-6656F7 DATA DESCRIPTOR       08074B50 (134695760)\n-6656FB CRC                   B4BC5053 (3032240211)\n-6656FF Compressed Size       00001648 (5704)\n-665703 Uncompressed Size     00001648 (5704)\n-\n-665707 LOCAL HEADER #1864    04034B50 (67324752)\n-66570B Extract Zip Spec      14 (20) '2.0'\n-66570C Extract OS            00 (0) 'MS-DOS'\n-66570D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66570F Compression Method    0000 (0) 'Stored'\n-665711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-665715 CRC                   00000000 (0)\n-665719 Compressed Size       00000000 (0)\n-66571D Uncompressed Size     00000000 (0)\n-665721 Filename Length       0035 (53)\n-665723 Extra Length          0009 (9)\n-665725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x665725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66575A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66575C   Length              0005 (5)\n-66575E   Flags               01 (1) 'Modification'\n-66575F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-665763 PAYLOAD\n-\n-665B6C DATA DESCRIPTOR       08074B50 (134695760)\n-665B70 CRC                   FC4D9CC7 (4232944839)\n-665B74 Compressed Size       00000409 (1033)\n-665B78 Uncompressed Size     00000409 (1033)\n-\n-665B7C LOCAL HEADER #1865    04034B50 (67324752)\n-665B80 Extract Zip Spec      14 (20) '2.0'\n-665B81 Extract OS            00 (0) 'MS-DOS'\n-665B82 General Purpose Flag  0000 (0)\n-665B84 Compression Method    0000 (0) 'Stored'\n-665B86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-665B8A CRC                   00000000 (0)\n-665B8E Compressed Size       00000000 (0)\n-665B92 Uncompressed Size     00000000 (0)\n-665B96 Filename Length       002B (43)\n-665B98 Extra Length          0009 (9)\n-665B9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x665B9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-665BC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-665BC7   Length              0005 (5)\n-665BC9   Flags               01 (1) 'Modification'\n-665BCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-665BCE LOCAL HEADER #1866    04034B50 (67324752)\n-665BD2 Extract Zip Spec      14 (20) '2.0'\n-665BD3 Extract OS            00 (0) 'MS-DOS'\n-665BD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-665BD6 Compression Method    0000 (0) 'Stored'\n-665BD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-665BDC CRC                   00000000 (0)\n-665BE0 Compressed Size       00000000 (0)\n-665BE4 Uncompressed Size     00000000 (0)\n-665BE8 Filename Length       0043 (67)\n-665BEA Extra Length          0009 (9)\n-665BEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x665BEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-665C2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-665C31   Length              0005 (5)\n-665C33   Flags               01 (1) 'Modification'\n-665C34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-665C38 PAYLOAD\n-\n-66651C DATA DESCRIPTOR       08074B50 (134695760)\n-666520 CRC                   C9453D78 (3376758136)\n-666524 Compressed Size       000008E4 (2276)\n-666528 Uncompressed Size     000008E4 (2276)\n-\n-66652C LOCAL HEADER #1867    04034B50 (67324752)\n-666530 Extract Zip Spec      14 (20) '2.0'\n-666531 Extract OS            00 (0) 'MS-DOS'\n-666532 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-666534 Compression Method    0000 (0) 'Stored'\n-666536 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66653A CRC                   00000000 (0)\n-66653E Compressed Size       00000000 (0)\n-666542 Uncompressed Size     00000000 (0)\n-666546 Filename Length       0047 (71)\n-666548 Extra Length          0009 (9)\n-66654A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66654A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-666591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-666593   Length              0005 (5)\n-666595   Flags               01 (1) 'Modification'\n-666596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66659A PAYLOAD\n-\n-667120 DATA DESCRIPTOR       08074B50 (134695760)\n-667124 CRC                   5A226E99 (1512205977)\n-667128 Compressed Size       00000B86 (2950)\n-66712C Uncompressed Size     00000B86 (2950)\n-\n-667130 LOCAL HEADER #1868    04034B50 (67324752)\n-667134 Extract Zip Spec      14 (20) '2.0'\n-667135 Extract OS            00 (0) 'MS-DOS'\n-667136 General Purpose Flag  0000 (0)\n-667138 Compression Method    0000 (0) 'Stored'\n-66713A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66713E CRC                   00000000 (0)\n-667142 Compressed Size       00000000 (0)\n-667146 Uncompressed Size     00000000 (0)\n-66714A Filename Length       0023 (35)\n-66714C Extra Length          0009 (9)\n-66714E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66714E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-667171 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-667173   Length              0005 (5)\n-667175   Flags               01 (1) 'Modification'\n-667176   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66717A LOCAL HEADER #1869    04034B50 (67324752)\n-66717E Extract Zip Spec      14 (20) '2.0'\n-66717F Extract OS            00 (0) 'MS-DOS'\n-667180 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-667182 Compression Method    0000 (0) 'Stored'\n-667184 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-667188 CRC                   00000000 (0)\n-66718C Compressed Size       00000000 (0)\n-667190 Uncompressed Size     00000000 (0)\n-667194 Filename Length       003C (60)\n-667196 Extra Length          0009 (9)\n-667198 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x667198: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6671D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6671D6   Length              0005 (5)\n-6671D8   Flags               01 (1) 'Modification'\n-6671D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6671DD PAYLOAD\n-\n-667C36 DATA DESCRIPTOR       08074B50 (134695760)\n-667C3A CRC                   210B2AE8 (554380008)\n-667C3E Compressed Size       00000A59 (2649)\n-667C42 Uncompressed Size     00000A59 (2649)\n-\n-667C46 LOCAL HEADER #1870    04034B50 (67324752)\n-667C4A Extract Zip Spec      14 (20) '2.0'\n-667C4B Extract OS            00 (0) 'MS-DOS'\n-667C4C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-667C4E Compression Method    0000 (0) 'Stored'\n-667C50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-667C54 CRC                   00000000 (0)\n-667C58 Compressed Size       00000000 (0)\n-667C5C Uncompressed Size     00000000 (0)\n-667C60 Filename Length       0032 (50)\n-667C62 Extra Length          0009 (9)\n-667C64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x667C64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-667C96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-667C98   Length              0005 (5)\n-667C9A   Flags               01 (1) 'Modification'\n-667C9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-667C9F PAYLOAD\n-\n-66800B DATA DESCRIPTOR       08074B50 (134695760)\n-66800F CRC                   C1CD2495 (3251446933)\n-668013 Compressed Size       0000036C (876)\n-668017 Uncompressed Size     0000036C (876)\n-\n-66801B LOCAL HEADER #1871    04034B50 (67324752)\n-66801F Extract Zip Spec      14 (20) '2.0'\n-668020 Extract OS            00 (0) 'MS-DOS'\n-668021 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-668023 Compression Method    0000 (0) 'Stored'\n-668025 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-668029 CRC                   00000000 (0)\n-66802D Compressed Size       00000000 (0)\n-668031 Uncompressed Size     00000000 (0)\n-668035 Filename Length       0035 (53)\n-668037 Extra Length          0009 (9)\n-668039 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x668039: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66806E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-668070   Length              0005 (5)\n-668072   Flags               01 (1) 'Modification'\n-668073   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-668077 PAYLOAD\n-\n-668815 DATA DESCRIPTOR       08074B50 (134695760)\n-668819 CRC                   C06931B4 (3228119476)\n-66881D Compressed Size       0000079E (1950)\n-668821 Uncompressed Size     0000079E (1950)\n-\n-668825 LOCAL HEADER #1872    04034B50 (67324752)\n-668829 Extract Zip Spec      14 (20) '2.0'\n-66882A Extract OS            00 (0) 'MS-DOS'\n-66882B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66882D Compression Method    0000 (0) 'Stored'\n-66882F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-668833 CRC                   00000000 (0)\n-668837 Compressed Size       00000000 (0)\n-66883B Uncompressed Size     00000000 (0)\n-66883F Filename Length       0033 (51)\n-668841 Extra Length          0009 (9)\n-668843 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x668843: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-668876 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-668878   Length              0005 (5)\n-66887A   Flags               01 (1) 'Modification'\n-66887B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66887F PAYLOAD\n-\n-669864 DATA DESCRIPTOR       08074B50 (134695760)\n-669868 CRC                   89D2048F (2312242319)\n-66986C Compressed Size       00000FE5 (4069)\n-669870 Uncompressed Size     00000FE5 (4069)\n-\n-669874 LOCAL HEADER #1873    04034B50 (67324752)\n-669878 Extract Zip Spec      14 (20) '2.0'\n-669879 Extract OS            00 (0) 'MS-DOS'\n-66987A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66987C Compression Method    0000 (0) 'Stored'\n-66987E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-669882 CRC                   00000000 (0)\n-669886 Compressed Size       00000000 (0)\n-66988A Uncompressed Size     00000000 (0)\n-66988E Filename Length       0038 (56)\n-669890 Extra Length          0009 (9)\n-669892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x669892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6698CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6698CC   Length              0005 (5)\n-6698CE   Flags               01 (1) 'Modification'\n-6698CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6698D3 PAYLOAD\n-\n-66C1AE DATA DESCRIPTOR       08074B50 (134695760)\n-66C1B2 CRC                   8EC3CE19 (2395196953)\n-66C1B6 Compressed Size       000028DB (10459)\n-66C1BA Uncompressed Size     000028DB (10459)\n-\n-66C1BE LOCAL HEADER #1874    04034B50 (67324752)\n-66C1C2 Extract Zip Spec      14 (20) '2.0'\n-66C1C3 Extract OS            00 (0) 'MS-DOS'\n-66C1C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66C1C6 Compression Method    0000 (0) 'Stored'\n-66C1C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66C1CC CRC                   00000000 (0)\n-66C1D0 Compressed Size       00000000 (0)\n-66C1D4 Uncompressed Size     00000000 (0)\n-66C1D8 Filename Length       0034 (52)\n-66C1DA Extra Length          0009 (9)\n-66C1DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66C1DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66C210 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66C212   Length              0005 (5)\n-66C214   Flags               01 (1) 'Modification'\n-66C215   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66C219 PAYLOAD\n-\n-66E329 DATA DESCRIPTOR       08074B50 (134695760)\n-66E32D CRC                   672528B3 (1730488499)\n-66E331 Compressed Size       00002110 (8464)\n-66E335 Uncompressed Size     00002110 (8464)\n-\n-66E339 LOCAL HEADER #1875    04034B50 (67324752)\n-66E33D Extract Zip Spec      14 (20) '2.0'\n-66E33E Extract OS            00 (0) 'MS-DOS'\n-66E33F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66E341 Compression Method    0000 (0) 'Stored'\n-66E343 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66E347 CRC                   00000000 (0)\n-66E34B Compressed Size       00000000 (0)\n-66E34F Uncompressed Size     00000000 (0)\n-66E353 Filename Length       0044 (68)\n-66E355 Extra Length          0009 (9)\n-66E357 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66E357: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66E39B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66E39D   Length              0005 (5)\n-66E39F   Flags               01 (1) 'Modification'\n-66E3A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66E3A4 PAYLOAD\n-\n-66EDE2 DATA DESCRIPTOR       08074B50 (134695760)\n-66EDE6 CRC                   5C1106B9 (1544619705)\n-66EDEA Compressed Size       00000A3E (2622)\n-66EDEE Uncompressed Size     00000A3E (2622)\n-\n-66EDF2 LOCAL HEADER #1876    04034B50 (67324752)\n-66EDF6 Extract Zip Spec      14 (20) '2.0'\n-66EDF7 Extract OS            00 (0) 'MS-DOS'\n-66EDF8 General Purpose Flag  0000 (0)\n-66EDFA Compression Method    0000 (0) 'Stored'\n-66EDFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66EE00 CRC                   00000000 (0)\n-66EE04 Compressed Size       00000000 (0)\n-66EE08 Uncompressed Size     00000000 (0)\n-66EE0C Filename Length       0030 (48)\n-66EE0E Extra Length          0009 (9)\n-66EE10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66EE10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66EE40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66EE42   Length              0005 (5)\n-66EE44   Flags               01 (1) 'Modification'\n-66EE45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-66EE49 LOCAL HEADER #1877    04034B50 (67324752)\n-66EE4D Extract Zip Spec      14 (20) '2.0'\n-66EE4E Extract OS            00 (0) 'MS-DOS'\n-66EE4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66EE51 Compression Method    0000 (0) 'Stored'\n-66EE53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66EE57 CRC                   00000000 (0)\n-66EE5B Compressed Size       00000000 (0)\n-66EE5F Uncompressed Size     00000000 (0)\n-66EE63 Filename Length       0046 (70)\n-66EE65 Extra Length          0009 (9)\n-66EE67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66EE67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66EEAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66EEAF   Length              0005 (5)\n-66EEB1   Flags               01 (1) 'Modification'\n-66EEB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66EEB6 PAYLOAD\n-\n-66F2FC DATA DESCRIPTOR       08074B50 (134695760)\n-66F300 CRC                   1C86279A (478554010)\n-66F304 Compressed Size       00000446 (1094)\n-66F308 Uncompressed Size     00000446 (1094)\n-\n-66F30C LOCAL HEADER #1878    04034B50 (67324752)\n-66F310 Extract Zip Spec      14 (20) '2.0'\n-66F311 Extract OS            00 (0) 'MS-DOS'\n-66F312 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66F314 Compression Method    0000 (0) 'Stored'\n-66F316 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66F31A CRC                   00000000 (0)\n-66F31E Compressed Size       00000000 (0)\n-66F322 Uncompressed Size     00000000 (0)\n-66F326 Filename Length       0045 (69)\n-66F328 Extra Length          0009 (9)\n-66F32A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66F32A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66F36F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66F371   Length              0005 (5)\n-66F373   Flags               01 (1) 'Modification'\n-66F374   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66F378 PAYLOAD\n-\n-66F92A DATA DESCRIPTOR       08074B50 (134695760)\n-66F92E CRC                   E37CC454 (3816604756)\n-66F932 Compressed Size       000005B2 (1458)\n-66F936 Uncompressed Size     000005B2 (1458)\n-\n-66F93A LOCAL HEADER #1879    04034B50 (67324752)\n-66F93E Extract Zip Spec      14 (20) '2.0'\n-66F93F Extract OS            00 (0) 'MS-DOS'\n-66F940 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-66F942 Compression Method    0000 (0) 'Stored'\n-66F944 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-66F948 CRC                   00000000 (0)\n-66F94C Compressed Size       00000000 (0)\n-66F950 Uncompressed Size     00000000 (0)\n-66F954 Filename Length       004A (74)\n-66F956 Extra Length          0009 (9)\n-66F958 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x66F958: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-66F9A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-66F9A4   Length              0005 (5)\n-66F9A6   Flags               01 (1) 'Modification'\n-66F9A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-66F9AB PAYLOAD\n-\n-670ACB DATA DESCRIPTOR       08074B50 (134695760)\n-670ACF CRC                   2C4E86BA (743343802)\n-670AD3 Compressed Size       00001120 (4384)\n-670AD7 Uncompressed Size     00001120 (4384)\n-\n-670ADB LOCAL HEADER #1880    04034B50 (67324752)\n-670ADF Extract Zip Spec      14 (20) '2.0'\n-670AE0 Extract OS            00 (0) 'MS-DOS'\n-670AE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-670AE3 Compression Method    0000 (0) 'Stored'\n-670AE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-670AE9 CRC                   00000000 (0)\n-670AED Compressed Size       00000000 (0)\n-670AF1 Uncompressed Size     00000000 (0)\n-670AF5 Filename Length       0046 (70)\n-670AF7 Extra Length          0009 (9)\n-670AF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x670AF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-670B3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-670B41   Length              0005 (5)\n-670B43   Flags               01 (1) 'Modification'\n-670B44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-670B48 PAYLOAD\n-\n-670F8E DATA DESCRIPTOR       08074B50 (134695760)\n-670F92 CRC                   592F92C2 (1496289986)\n-670F96 Compressed Size       00000446 (1094)\n-670F9A Uncompressed Size     00000446 (1094)\n-\n-670F9E LOCAL HEADER #1881    04034B50 (67324752)\n-670FA2 Extract Zip Spec      14 (20) '2.0'\n-670FA3 Extract OS            00 (0) 'MS-DOS'\n-670FA4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-670FA6 Compression Method    0000 (0) 'Stored'\n-670FA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-670FAC CRC                   00000000 (0)\n-670FB0 Compressed Size       00000000 (0)\n-670FB4 Uncompressed Size     00000000 (0)\n-670FB8 Filename Length       004A (74)\n-670FBA Extra Length          0009 (9)\n-670FBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x670FBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-671006 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-671008   Length              0005 (5)\n-67100A   Flags               01 (1) 'Modification'\n-67100B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67100F PAYLOAD\n-\n-671470 DATA DESCRIPTOR       08074B50 (134695760)\n-671474 CRC                   7BC2ED93 (2076372371)\n-671478 Compressed Size       00000461 (1121)\n-67147C Uncompressed Size     00000461 (1121)\n-\n-671480 LOCAL HEADER #1882    04034B50 (67324752)\n-671484 Extract Zip Spec      14 (20) '2.0'\n-671485 Extract OS            00 (0) 'MS-DOS'\n-671486 General Purpose Flag  0000 (0)\n-671488 Compression Method    0000 (0) 'Stored'\n-67148A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67148E CRC                   00000000 (0)\n-671492 Compressed Size       00000000 (0)\n-671496 Uncompressed Size     00000000 (0)\n-67149A Filename Length       0026 (38)\n-67149C Extra Length          0009 (9)\n-67149E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67149E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6714C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6714C6   Length              0005 (5)\n-6714C8   Flags               01 (1) 'Modification'\n-6714C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6714CD LOCAL HEADER #1883    04034B50 (67324752)\n-6714D1 Extract Zip Spec      14 (20) '2.0'\n-6714D2 Extract OS            00 (0) 'MS-DOS'\n-6714D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6714D5 Compression Method    0000 (0) 'Stored'\n-6714D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6714DB CRC                   00000000 (0)\n-6714DF Compressed Size       00000000 (0)\n-6714E3 Uncompressed Size     00000000 (0)\n-6714E7 Filename Length       0034 (52)\n-6714E9 Extra Length          0009 (9)\n-6714EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6714EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67151F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-671521   Length              0005 (5)\n-671523   Flags               01 (1) 'Modification'\n-671524   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-671528 PAYLOAD\n-\n-6719B0 DATA DESCRIPTOR       08074B50 (134695760)\n-6719B4 CRC                   0DF301D6 (234029526)\n-6719B8 Compressed Size       00000488 (1160)\n-6719BC Uncompressed Size     00000488 (1160)\n-\n-6719C0 LOCAL HEADER #1884    04034B50 (67324752)\n-6719C4 Extract Zip Spec      14 (20) '2.0'\n-6719C5 Extract OS            00 (0) 'MS-DOS'\n-6719C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6719C8 Compression Method    0000 (0) 'Stored'\n-6719CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6719CE CRC                   00000000 (0)\n-6719D2 Compressed Size       00000000 (0)\n-6719D6 Uncompressed Size     00000000 (0)\n-6719DA Filename Length       004B (75)\n-6719DC Extra Length          0009 (9)\n-6719DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6719DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-671A29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-671A2B   Length              0005 (5)\n-671A2D   Flags               01 (1) 'Modification'\n-671A2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-671A32 PAYLOAD\n-\n-672064 DATA DESCRIPTOR       08074B50 (134695760)\n-672068 CRC                   280A6840 (671770688)\n-67206C Compressed Size       00000632 (1586)\n-672070 Uncompressed Size     00000632 (1586)\n-\n-672074 LOCAL HEADER #1885    04034B50 (67324752)\n-672078 Extract Zip Spec      14 (20) '2.0'\n-672079 Extract OS            00 (0) 'MS-DOS'\n-67207A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67207C Compression Method    0000 (0) 'Stored'\n-67207E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-672082 CRC                   00000000 (0)\n-672086 Compressed Size       00000000 (0)\n-67208A Uncompressed Size     00000000 (0)\n-67208E Filename Length       003A (58)\n-672090 Extra Length          0009 (9)\n-672092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x672092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6720CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6720CE   Length              0005 (5)\n-6720D0   Flags               01 (1) 'Modification'\n-6720D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6720D5 PAYLOAD\n-\n-674392 DATA DESCRIPTOR       08074B50 (134695760)\n-674396 CRC                   ED0697F4 (3976632308)\n-67439A Compressed Size       000022BD (8893)\n-67439E Uncompressed Size     000022BD (8893)\n-\n-6743A2 LOCAL HEADER #1886    04034B50 (67324752)\n-6743A6 Extract Zip Spec      14 (20) '2.0'\n-6743A7 Extract OS            00 (0) 'MS-DOS'\n-6743A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6743AA Compression Method    0000 (0) 'Stored'\n-6743AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6743B0 CRC                   00000000 (0)\n-6743B4 Compressed Size       00000000 (0)\n-6743B8 Uncompressed Size     00000000 (0)\n-6743BC Filename Length       003F (63)\n-6743BE Extra Length          0009 (9)\n-6743C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6743C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6743FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-674401   Length              0005 (5)\n-674403   Flags               01 (1) 'Modification'\n-674404   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-674408 PAYLOAD\n-\n-6750FC DATA DESCRIPTOR       08074B50 (134695760)\n-675100 CRC                   D14D14C7 (3511489735)\n-675104 Compressed Size       00000CF4 (3316)\n-675108 Uncompressed Size     00000CF4 (3316)\n-\n-67510C LOCAL HEADER #1887    04034B50 (67324752)\n-675110 Extract Zip Spec      14 (20) '2.0'\n-675111 Extract OS            00 (0) 'MS-DOS'\n-675112 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-675114 Compression Method    0000 (0) 'Stored'\n-675116 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67511A CRC                   00000000 (0)\n-67511E Compressed Size       00000000 (0)\n-675122 Uncompressed Size     00000000 (0)\n-675126 Filename Length       0046 (70)\n-675128 Extra Length          0009 (9)\n-67512A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67512A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-675170 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-675172   Length              0005 (5)\n-675174   Flags               01 (1) 'Modification'\n-675175   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-675179 PAYLOAD\n-\n-675A9E DATA DESCRIPTOR       08074B50 (134695760)\n-675AA2 CRC                   EE95F899 (4002805913)\n-675AA6 Compressed Size       00000925 (2341)\n-675AAA Uncompressed Size     00000925 (2341)\n-\n-675AAE LOCAL HEADER #1888    04034B50 (67324752)\n-675AB2 Extract Zip Spec      14 (20) '2.0'\n-675AB3 Extract OS            00 (0) 'MS-DOS'\n-675AB4 General Purpose Flag  0000 (0)\n-675AB6 Compression Method    0000 (0) 'Stored'\n-675AB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-675ABC CRC                   00000000 (0)\n-675AC0 Compressed Size       00000000 (0)\n-675AC4 Uncompressed Size     00000000 (0)\n-675AC8 Filename Length       0023 (35)\n-675ACA Extra Length          0009 (9)\n-675ACC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x675ACC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-675AEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-675AF1   Length              0005 (5)\n-675AF3   Flags               01 (1) 'Modification'\n-675AF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-675AF8 LOCAL HEADER #1889    04034B50 (67324752)\n-675AFC Extract Zip Spec      14 (20) '2.0'\n-675AFD Extract OS            00 (0) 'MS-DOS'\n-675AFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-675B00 Compression Method    0000 (0) 'Stored'\n-675B02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-675B06 CRC                   00000000 (0)\n-675B0A Compressed Size       00000000 (0)\n-675B0E Uncompressed Size     00000000 (0)\n-675B12 Filename Length       0034 (52)\n-675B14 Extra Length          0009 (9)\n-675B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x675B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-675B4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-675B4C   Length              0005 (5)\n-675B4E   Flags               01 (1) 'Modification'\n-675B4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-675B53 PAYLOAD\n-\n-6778DB DATA DESCRIPTOR       08074B50 (134695760)\n-6778DF CRC                   67E99252 (1743360594)\n-6778E3 Compressed Size       00001D88 (7560)\n-6778E7 Uncompressed Size     00001D88 (7560)\n-\n-6778EB LOCAL HEADER #1890    04034B50 (67324752)\n-6778EF Extract Zip Spec      14 (20) '2.0'\n-6778F0 Extract OS            00 (0) 'MS-DOS'\n-6778F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6778F3 Compression Method    0000 (0) 'Stored'\n-6778F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6778F9 CRC                   00000000 (0)\n-6778FD Compressed Size       00000000 (0)\n-677901 Uncompressed Size     00000000 (0)\n-677905 Filename Length       003D (61)\n-677907 Extra Length          0009 (9)\n-677909 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x677909: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-677946 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-677948   Length              0005 (5)\n-67794A   Flags               01 (1) 'Modification'\n-67794B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67794F PAYLOAD\n-\n-677D78 DATA DESCRIPTOR       08074B50 (134695760)\n-677D7C CRC                   B3BC74DF (3015472351)\n-677D80 Compressed Size       00000429 (1065)\n-677D84 Uncompressed Size     00000429 (1065)\n-\n-677D88 LOCAL HEADER #1891    04034B50 (67324752)\n-677D8C Extract Zip Spec      14 (20) '2.0'\n-677D8D Extract OS            00 (0) 'MS-DOS'\n-677D8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-677D90 Compression Method    0000 (0) 'Stored'\n-677D92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-677D96 CRC                   00000000 (0)\n-677D9A Compressed Size       00000000 (0)\n-677D9E Uncompressed Size     00000000 (0)\n-677DA2 Filename Length       003C (60)\n-677DA4 Extra Length          0009 (9)\n-677DA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x677DA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-677DE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-677DE4   Length              0005 (5)\n-677DE6   Flags               01 (1) 'Modification'\n-677DE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-677DEB PAYLOAD\n-\n-6786D6 DATA DESCRIPTOR       08074B50 (134695760)\n-6786DA CRC                   29478F2B (692555563)\n-6786DE Compressed Size       000008EB (2283)\n-6786E2 Uncompressed Size     000008EB (2283)\n-\n-6786E6 LOCAL HEADER #1892    04034B50 (67324752)\n-6786EA Extract Zip Spec      14 (20) '2.0'\n-6786EB Extract OS            00 (0) 'MS-DOS'\n-6786EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6786EE Compression Method    0000 (0) 'Stored'\n-6786F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6786F4 CRC                   00000000 (0)\n-6786F8 Compressed Size       00000000 (0)\n-6786FC Uncompressed Size     00000000 (0)\n-678700 Filename Length       003F (63)\n-678702 Extra Length          0009 (9)\n-678704 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x678704: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-678743 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-678745   Length              0005 (5)\n-678747   Flags               01 (1) 'Modification'\n-678748   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67874C PAYLOAD\n-\n-679258 DATA DESCRIPTOR       08074B50 (134695760)\n-67925C CRC                   DBBDBD3B (3686645051)\n-679260 Compressed Size       00000B0C (2828)\n-679264 Uncompressed Size     00000B0C (2828)\n-\n-679268 LOCAL HEADER #1893    04034B50 (67324752)\n-67926C Extract Zip Spec      14 (20) '2.0'\n-67926D Extract OS            00 (0) 'MS-DOS'\n-67926E General Purpose Flag  0000 (0)\n-679270 Compression Method    0000 (0) 'Stored'\n-679272 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-679276 CRC                   00000000 (0)\n-67927A Compressed Size       00000000 (0)\n-67927E Uncompressed Size     00000000 (0)\n-679282 Filename Length       0024 (36)\n-679284 Extra Length          0009 (9)\n-679286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x679286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6792AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6792AC   Length              0005 (5)\n-6792AE   Flags               01 (1) 'Modification'\n-6792AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6792B3 LOCAL HEADER #1894    04034B50 (67324752)\n-6792B7 Extract Zip Spec      14 (20) '2.0'\n-6792B8 Extract OS            00 (0) 'MS-DOS'\n-6792B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6792BB Compression Method    0000 (0) 'Stored'\n-6792BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6792C1 CRC                   00000000 (0)\n-6792C5 Compressed Size       00000000 (0)\n-6792C9 Uncompressed Size     00000000 (0)\n-6792CD Filename Length       0036 (54)\n-6792CF Extra Length          0009 (9)\n-6792D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6792D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-679307 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-679309   Length              0005 (5)\n-67930B   Flags               01 (1) 'Modification'\n-67930C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-679310 PAYLOAD\n-\n-679906 DATA DESCRIPTOR       08074B50 (134695760)\n-67990A CRC                   780A8F69 (2013957993)\n-67990E Compressed Size       000005F6 (1526)\n-679912 Uncompressed Size     000005F6 (1526)\n-\n-679916 LOCAL HEADER #1895    04034B50 (67324752)\n-67991A Extract Zip Spec      14 (20) '2.0'\n-67991B Extract OS            00 (0) 'MS-DOS'\n-67991C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67991E Compression Method    0000 (0) 'Stored'\n-679920 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-679924 CRC                   00000000 (0)\n-679928 Compressed Size       00000000 (0)\n-67992C Uncompressed Size     00000000 (0)\n-679930 Filename Length       0035 (53)\n-679932 Extra Length          0009 (9)\n-679934 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x679934: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-679969 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67996B   Length              0005 (5)\n-67996D   Flags               01 (1) 'Modification'\n-67996E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-679972 PAYLOAD\n-\n-67A428 DATA DESCRIPTOR       08074B50 (134695760)\n-67A42C CRC                   0693959E (110335390)\n-67A430 Compressed Size       00000AB6 (2742)\n-67A434 Uncompressed Size     00000AB6 (2742)\n-\n-67A438 LOCAL HEADER #1896    04034B50 (67324752)\n-67A43C Extract Zip Spec      14 (20) '2.0'\n-67A43D Extract OS            00 (0) 'MS-DOS'\n-67A43E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67A440 Compression Method    0000 (0) 'Stored'\n-67A442 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67A446 CRC                   00000000 (0)\n-67A44A Compressed Size       00000000 (0)\n-67A44E Uncompressed Size     00000000 (0)\n-67A452 Filename Length       0036 (54)\n-67A454 Extra Length          0009 (9)\n-67A456 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67A456: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67A48C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67A48E   Length              0005 (5)\n-67A490   Flags               01 (1) 'Modification'\n-67A491   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67A495 PAYLOAD\n-\n-67B607 DATA DESCRIPTOR       08074B50 (134695760)\n-67B60B CRC                   F08334AC (4035130540)\n-67B60F Compressed Size       00001172 (4466)\n-67B613 Uncompressed Size     00001172 (4466)\n-\n-67B617 LOCAL HEADER #1897    04034B50 (67324752)\n-67B61B Extract Zip Spec      14 (20) '2.0'\n-67B61C Extract OS            00 (0) 'MS-DOS'\n-67B61D General Purpose Flag  0000 (0)\n-67B61F Compression Method    0000 (0) 'Stored'\n-67B621 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67B625 CRC                   00000000 (0)\n-67B629 Compressed Size       00000000 (0)\n-67B62D Uncompressed Size     00000000 (0)\n-67B631 Filename Length       0028 (40)\n-67B633 Extra Length          0009 (9)\n-67B635 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B635: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67B65D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67B65F   Length              0005 (5)\n-67B661   Flags               01 (1) 'Modification'\n-67B662   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67B666 LOCAL HEADER #1898    04034B50 (67324752)\n-67B66A Extract Zip Spec      14 (20) '2.0'\n-67B66B Extract OS            00 (0) 'MS-DOS'\n-67B66C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67B66E Compression Method    0000 (0) 'Stored'\n-67B670 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67B674 CRC                   00000000 (0)\n-67B678 Compressed Size       00000000 (0)\n-67B67C Uncompressed Size     00000000 (0)\n-67B680 Filename Length       003E (62)\n-67B682 Extra Length          0009 (9)\n-67B684 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67B684: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67B6C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67B6C4   Length              0005 (5)\n-67B6C6   Flags               01 (1) 'Modification'\n-67B6C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67B6CB PAYLOAD\n-\n-67D023 DATA DESCRIPTOR       08074B50 (134695760)\n-67D027 CRC                   E525BFD2 (3844456402)\n-67D02B Compressed Size       00001958 (6488)\n-67D02F Uncompressed Size     00001958 (6488)\n-\n-67D033 LOCAL HEADER #1899    04034B50 (67324752)\n-67D037 Extract Zip Spec      14 (20) '2.0'\n-67D038 Extract OS            00 (0) 'MS-DOS'\n-67D039 General Purpose Flag  0000 (0)\n-67D03B Compression Method    0000 (0) 'Stored'\n-67D03D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67D041 CRC                   00000000 (0)\n-67D045 Compressed Size       00000000 (0)\n-67D049 Uncompressed Size     00000000 (0)\n-67D04D Filename Length       002B (43)\n-67D04F Extra Length          0009 (9)\n-67D051 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67D051: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67D07C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67D07E   Length              0005 (5)\n-67D080   Flags               01 (1) 'Modification'\n-67D081   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67D085 LOCAL HEADER #1900    04034B50 (67324752)\n-67D089 Extract Zip Spec      14 (20) '2.0'\n-67D08A Extract OS            00 (0) 'MS-DOS'\n-67D08B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67D08D Compression Method    0000 (0) 'Stored'\n-67D08F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67D093 CRC                   00000000 (0)\n-67D097 Compressed Size       00000000 (0)\n-67D09B Uncompressed Size     00000000 (0)\n-67D09F Filename Length       003E (62)\n-67D0A1 Extra Length          0009 (9)\n-67D0A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67D0A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67D0E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67D0E3   Length              0005 (5)\n-67D0E5   Flags               01 (1) 'Modification'\n-67D0E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67D0EA PAYLOAD\n-\n-67F0AB DATA DESCRIPTOR       08074B50 (134695760)\n-67F0AF CRC                   E8E97BAC (3907615660)\n-67F0B3 Compressed Size       00001FC1 (8129)\n-67F0B7 Uncompressed Size     00001FC1 (8129)\n-\n-67F0BB LOCAL HEADER #1901    04034B50 (67324752)\n-67F0BF Extract Zip Spec      14 (20) '2.0'\n-67F0C0 Extract OS            00 (0) 'MS-DOS'\n-67F0C1 General Purpose Flag  0000 (0)\n-67F0C3 Compression Method    0000 (0) 'Stored'\n-67F0C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67F0C9 CRC                   00000000 (0)\n-67F0CD Compressed Size       00000000 (0)\n-67F0D1 Uncompressed Size     00000000 (0)\n-67F0D5 Filename Length       0024 (36)\n-67F0D7 Extra Length          0009 (9)\n-67F0D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67F0D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67F0FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67F0FF   Length              0005 (5)\n-67F101   Flags               01 (1) 'Modification'\n-67F102   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-67F106 LOCAL HEADER #1902    04034B50 (67324752)\n-67F10A Extract Zip Spec      14 (20) '2.0'\n-67F10B Extract OS            00 (0) 'MS-DOS'\n-67F10C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-67F10E Compression Method    0000 (0) 'Stored'\n-67F110 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-67F114 CRC                   00000000 (0)\n-67F118 Compressed Size       00000000 (0)\n-67F11C Uncompressed Size     00000000 (0)\n-67F120 Filename Length       0036 (54)\n-67F122 Extra Length          0009 (9)\n-67F124 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x67F124: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-67F15A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-67F15C   Length              0005 (5)\n-67F15E   Flags               01 (1) 'Modification'\n-67F15F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-67F163 PAYLOAD\n-\n-6818DD DATA DESCRIPTOR       08074B50 (134695760)\n-6818E1 CRC                   2CD78AEC (752323308)\n-6818E5 Compressed Size       0000277A (10106)\n-6818E9 Uncompressed Size     0000277A (10106)\n-\n-6818ED LOCAL HEADER #1903    04034B50 (67324752)\n-6818F1 Extract Zip Spec      14 (20) '2.0'\n-6818F2 Extract OS            00 (0) 'MS-DOS'\n-6818F3 General Purpose Flag  0000 (0)\n-6818F5 Compression Method    0000 (0) 'Stored'\n-6818F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6818FB CRC                   00000000 (0)\n-6818FF Compressed Size       00000000 (0)\n-681903 Uncompressed Size     00000000 (0)\n-681907 Filename Length       0023 (35)\n-681909 Extra Length          0009 (9)\n-68190B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68190B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68192E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-681930   Length              0005 (5)\n-681932   Flags               01 (1) 'Modification'\n-681933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-681937 LOCAL HEADER #1904    04034B50 (67324752)\n-68193B Extract Zip Spec      14 (20) '2.0'\n-68193C Extract OS            00 (0) 'MS-DOS'\n-68193D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68193F Compression Method    0000 (0) 'Stored'\n-681941 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-681945 CRC                   00000000 (0)\n-681949 Compressed Size       00000000 (0)\n-68194D Uncompressed Size     00000000 (0)\n-681951 Filename Length       003E (62)\n-681953 Extra Length          0009 (9)\n-681955 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x681955: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-681993 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-681995   Length              0005 (5)\n-681997   Flags               01 (1) 'Modification'\n-681998   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68199C PAYLOAD\n-\n-682572 DATA DESCRIPTOR       08074B50 (134695760)\n-682576 CRC                   3DF79E03 (1039638019)\n-68257A Compressed Size       00000BD6 (3030)\n-68257E Uncompressed Size     00000BD6 (3030)\n-\n-682582 LOCAL HEADER #1905    04034B50 (67324752)\n-682586 Extract Zip Spec      14 (20) '2.0'\n-682587 Extract OS            00 (0) 'MS-DOS'\n-682588 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68258A Compression Method    0000 (0) 'Stored'\n-68258C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-682590 CRC                   00000000 (0)\n-682594 Compressed Size       00000000 (0)\n-682598 Uncompressed Size     00000000 (0)\n-68259C Filename Length       0031 (49)\n-68259E Extra Length          0009 (9)\n-6825A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6825A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6825D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6825D3   Length              0005 (5)\n-6825D5   Flags               01 (1) 'Modification'\n-6825D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6825DA PAYLOAD\n-\n-6829CE DATA DESCRIPTOR       08074B50 (134695760)\n-6829D2 CRC                   4DA1C2B1 (1302446769)\n-6829D6 Compressed Size       000003F4 (1012)\n-6829DA Uncompressed Size     000003F4 (1012)\n-\n-6829DE LOCAL HEADER #1906    04034B50 (67324752)\n-6829E2 Extract Zip Spec      14 (20) '2.0'\n-6829E3 Extract OS            00 (0) 'MS-DOS'\n-6829E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6829E6 Compression Method    0000 (0) 'Stored'\n-6829E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6829EC CRC                   00000000 (0)\n-6829F0 Compressed Size       00000000 (0)\n-6829F4 Uncompressed Size     00000000 (0)\n-6829F8 Filename Length       003F (63)\n-6829FA Extra Length          0009 (9)\n-6829FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6829FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-682A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-682A3D   Length              0005 (5)\n-682A3F   Flags               01 (1) 'Modification'\n-682A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-682A44 PAYLOAD\n-\n-683C3B DATA DESCRIPTOR       08074B50 (134695760)\n-683C3F CRC                   150F0CC2 (353307842)\n-683C43 Compressed Size       000011F7 (4599)\n-683C47 Uncompressed Size     000011F7 (4599)\n-\n-683C4B LOCAL HEADER #1907    04034B50 (67324752)\n-683C4F Extract Zip Spec      14 (20) '2.0'\n-683C50 Extract OS            00 (0) 'MS-DOS'\n-683C51 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-683C53 Compression Method    0000 (0) 'Stored'\n-683C55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-683C59 CRC                   00000000 (0)\n-683C5D Compressed Size       00000000 (0)\n-683C61 Uncompressed Size     00000000 (0)\n-683C65 Filename Length       003C (60)\n-683C67 Extra Length          0009 (9)\n-683C69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x683C69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-683CA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-683CA7   Length              0005 (5)\n-683CA9   Flags               01 (1) 'Modification'\n-683CAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-683CAE PAYLOAD\n-\n-6846C3 DATA DESCRIPTOR       08074B50 (134695760)\n-6846C7 CRC                   74B3513E (1957908798)\n-6846CB Compressed Size       00000A15 (2581)\n-6846CF Uncompressed Size     00000A15 (2581)\n-\n-6846D3 LOCAL HEADER #1908    04034B50 (67324752)\n-6846D7 Extract Zip Spec      14 (20) '2.0'\n-6846D8 Extract OS            00 (0) 'MS-DOS'\n-6846D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6846DB Compression Method    0000 (0) 'Stored'\n-6846DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6846E1 CRC                   00000000 (0)\n-6846E5 Compressed Size       00000000 (0)\n-6846E9 Uncompressed Size     00000000 (0)\n-6846ED Filename Length       003F (63)\n-6846EF Extra Length          0009 (9)\n-6846F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6846F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-684730 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-684732   Length              0005 (5)\n-684734   Flags               01 (1) 'Modification'\n-684735   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-684739 PAYLOAD\n-\n-685381 DATA DESCRIPTOR       08074B50 (134695760)\n-685385 CRC                   59C6BCF2 (1506196722)\n-685389 Compressed Size       00000C48 (3144)\n-68538D Uncompressed Size     00000C48 (3144)\n-\n-685391 LOCAL HEADER #1909    04034B50 (67324752)\n-685395 Extract Zip Spec      14 (20) '2.0'\n-685396 Extract OS            00 (0) 'MS-DOS'\n-685397 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-685399 Compression Method    0000 (0) 'Stored'\n-68539B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68539F CRC                   00000000 (0)\n-6853A3 Compressed Size       00000000 (0)\n-6853A7 Uncompressed Size     00000000 (0)\n-6853AB Filename Length       003F (63)\n-6853AD Extra Length          0009 (9)\n-6853AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6853AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6853EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6853F0   Length              0005 (5)\n-6853F2   Flags               01 (1) 'Modification'\n-6853F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6853F7 PAYLOAD\n-\n-685BD8 DATA DESCRIPTOR       08074B50 (134695760)\n-685BDC CRC                   CB062A84 (3406178948)\n-685BE0 Compressed Size       000007E1 (2017)\n-685BE4 Uncompressed Size     000007E1 (2017)\n-\n-685BE8 LOCAL HEADER #1910    04034B50 (67324752)\n-685BEC Extract Zip Spec      14 (20) '2.0'\n-685BED Extract OS            00 (0) 'MS-DOS'\n-685BEE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-685BF0 Compression Method    0000 (0) 'Stored'\n-685BF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-685BF6 CRC                   00000000 (0)\n-685BFA Compressed Size       00000000 (0)\n-685BFE Uncompressed Size     00000000 (0)\n-685C02 Filename Length       0034 (52)\n-685C04 Extra Length          0009 (9)\n-685C06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x685C06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-685C3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-685C3C   Length              0005 (5)\n-685C3E   Flags               01 (1) 'Modification'\n-685C3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-685C43 PAYLOAD\n-\n-688E35 DATA DESCRIPTOR       08074B50 (134695760)\n-688E39 CRC                   8E964D75 (2392214901)\n-688E3D Compressed Size       000031F2 (12786)\n-688E41 Uncompressed Size     000031F2 (12786)\n-\n-688E45 LOCAL HEADER #1911    04034B50 (67324752)\n-688E49 Extract Zip Spec      14 (20) '2.0'\n-688E4A Extract OS            00 (0) 'MS-DOS'\n-688E4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-688E4D Compression Method    0000 (0) 'Stored'\n-688E4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-688E53 CRC                   00000000 (0)\n-688E57 Compressed Size       00000000 (0)\n-688E5B Uncompressed Size     00000000 (0)\n-688E5F Filename Length       003A (58)\n-688E61 Extra Length          0009 (9)\n-688E63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x688E63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-688E9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-688E9F   Length              0005 (5)\n-688EA1   Flags               01 (1) 'Modification'\n-688EA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-688EA6 PAYLOAD\n-\n-68937A DATA DESCRIPTOR       08074B50 (134695760)\n-68937E CRC                   2E39C29D (775537309)\n-689382 Compressed Size       000004D4 (1236)\n-689386 Uncompressed Size     000004D4 (1236)\n-\n-68938A LOCAL HEADER #1912    04034B50 (67324752)\n-68938E Extract Zip Spec      14 (20) '2.0'\n-68938F Extract OS            00 (0) 'MS-DOS'\n-689390 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-689392 Compression Method    0000 (0) 'Stored'\n-689394 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-689398 CRC                   00000000 (0)\n-68939C Compressed Size       00000000 (0)\n-6893A0 Uncompressed Size     00000000 (0)\n-6893A4 Filename Length       0039 (57)\n-6893A6 Extra Length          0009 (9)\n-6893A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6893A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6893E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6893E3   Length              0005 (5)\n-6893E5   Flags               01 (1) 'Modification'\n-6893E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6893EA PAYLOAD\n-\n-689A8F DATA DESCRIPTOR       08074B50 (134695760)\n-689A93 CRC                   8AE5D3FF (2330317823)\n-689A97 Compressed Size       000006A5 (1701)\n-689A9B Uncompressed Size     000006A5 (1701)\n-\n-689A9F LOCAL HEADER #1913    04034B50 (67324752)\n-689AA3 Extract Zip Spec      14 (20) '2.0'\n-689AA4 Extract OS            00 (0) 'MS-DOS'\n-689AA5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-689AA7 Compression Method    0000 (0) 'Stored'\n-689AA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-689AAD CRC                   00000000 (0)\n-689AB1 Compressed Size       00000000 (0)\n-689AB5 Uncompressed Size     00000000 (0)\n-689AB9 Filename Length       0038 (56)\n-689ABB Extra Length          0009 (9)\n-689ABD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x689ABD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-689AF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-689AF7   Length              0005 (5)\n-689AF9   Flags               01 (1) 'Modification'\n-689AFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-689AFE PAYLOAD\n-\n-68AC94 DATA DESCRIPTOR       08074B50 (134695760)\n-68AC98 CRC                   1149E8E6 (290056422)\n-68AC9C Compressed Size       00001196 (4502)\n-68ACA0 Uncompressed Size     00001196 (4502)\n-\n-68ACA4 LOCAL HEADER #1914    04034B50 (67324752)\n-68ACA8 Extract Zip Spec      14 (20) '2.0'\n-68ACA9 Extract OS            00 (0) 'MS-DOS'\n-68ACAA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68ACAC Compression Method    0000 (0) 'Stored'\n-68ACAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68ACB2 CRC                   00000000 (0)\n-68ACB6 Compressed Size       00000000 (0)\n-68ACBA Uncompressed Size     00000000 (0)\n-68ACBE Filename Length       003A (58)\n-68ACC0 Extra Length          0009 (9)\n-68ACC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68ACC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68ACFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68ACFE   Length              0005 (5)\n-68AD00   Flags               01 (1) 'Modification'\n-68AD01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68AD05 PAYLOAD\n-\n-68B6EF DATA DESCRIPTOR       08074B50 (134695760)\n-68B6F3 CRC                   939A92A5 (2476380837)\n-68B6F7 Compressed Size       000009EA (2538)\n-68B6FB Uncompressed Size     000009EA (2538)\n-\n-68B6FF LOCAL HEADER #1915    04034B50 (67324752)\n-68B703 Extract Zip Spec      14 (20) '2.0'\n-68B704 Extract OS            00 (0) 'MS-DOS'\n-68B705 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68B707 Compression Method    0000 (0) 'Stored'\n-68B709 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68B70D CRC                   00000000 (0)\n-68B711 Compressed Size       00000000 (0)\n-68B715 Uncompressed Size     00000000 (0)\n-68B719 Filename Length       0037 (55)\n-68B71B Extra Length          0009 (9)\n-68B71D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68B71D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68B754 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68B756   Length              0005 (5)\n-68B758   Flags               01 (1) 'Modification'\n-68B759   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68B75D PAYLOAD\n-\n-68BEF0 DATA DESCRIPTOR       08074B50 (134695760)\n-68BEF4 CRC                   4DDA4FAB (1306152875)\n-68BEF8 Compressed Size       00000793 (1939)\n-68BEFC Uncompressed Size     00000793 (1939)\n-\n-68BF00 LOCAL HEADER #1916    04034B50 (67324752)\n-68BF04 Extract Zip Spec      14 (20) '2.0'\n-68BF05 Extract OS            00 (0) 'MS-DOS'\n-68BF06 General Purpose Flag  0000 (0)\n-68BF08 Compression Method    0000 (0) 'Stored'\n-68BF0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68BF0E CRC                   00000000 (0)\n-68BF12 Compressed Size       00000000 (0)\n-68BF16 Uncompressed Size     00000000 (0)\n-68BF1A Filename Length       002F (47)\n-68BF1C Extra Length          0009 (9)\n-68BF1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68BF1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68BF4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68BF4F   Length              0005 (5)\n-68BF51   Flags               01 (1) 'Modification'\n-68BF52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68BF56 LOCAL HEADER #1917    04034B50 (67324752)\n-68BF5A Extract Zip Spec      14 (20) '2.0'\n-68BF5B Extract OS            00 (0) 'MS-DOS'\n-68BF5C General Purpose Flag  0000 (0)\n-68BF5E Compression Method    0000 (0) 'Stored'\n-68BF60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68BF64 CRC                   00000000 (0)\n-68BF68 Compressed Size       00000000 (0)\n-68BF6C Uncompressed Size     00000000 (0)\n-68BF70 Filename Length       0037 (55)\n-68BF72 Extra Length          0009 (9)\n-68BF74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68BF74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68BFAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68BFAD   Length              0005 (5)\n-68BFAF   Flags               01 (1) 'Modification'\n-68BFB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68BFB4 LOCAL HEADER #1918    04034B50 (67324752)\n-68BFB8 Extract Zip Spec      14 (20) '2.0'\n-68BFB9 Extract OS            00 (0) 'MS-DOS'\n-68BFBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68BFBC Compression Method    0000 (0) 'Stored'\n-68BFBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68BFC2 CRC                   00000000 (0)\n-68BFC6 Compressed Size       00000000 (0)\n-68BFCA Uncompressed Size     00000000 (0)\n-68BFCE Filename Length       005A (90)\n-68BFD0 Extra Length          0009 (9)\n-68BFD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68BFD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68C02C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68C02E   Length              0005 (5)\n-68C030   Flags               01 (1) 'Modification'\n-68C031   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68C035 PAYLOAD\n-\n-68C88E DATA DESCRIPTOR       08074B50 (134695760)\n-68C892 CRC                   E3F9F330 (3824808752)\n-68C896 Compressed Size       00000859 (2137)\n-68C89A Uncompressed Size     00000859 (2137)\n-\n-68C89E LOCAL HEADER #1919    04034B50 (67324752)\n-68C8A2 Extract Zip Spec      14 (20) '2.0'\n-68C8A3 Extract OS            00 (0) 'MS-DOS'\n-68C8A4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68C8A6 Compression Method    0000 (0) 'Stored'\n-68C8A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68C8AC CRC                   00000000 (0)\n-68C8B0 Compressed Size       00000000 (0)\n-68C8B4 Uncompressed Size     00000000 (0)\n-68C8B8 Filename Length       004F (79)\n-68C8BA Extra Length          0009 (9)\n-68C8BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68C8BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68C90B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68C90D   Length              0005 (5)\n-68C90F   Flags               01 (1) 'Modification'\n-68C910   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68C914 PAYLOAD\n-\n-68CFDA DATA DESCRIPTOR       08074B50 (134695760)\n-68CFDE CRC                   FF2D0DF3 (4281142771)\n-68CFE2 Compressed Size       000006C6 (1734)\n-68CFE6 Uncompressed Size     000006C6 (1734)\n-\n-68CFEA LOCAL HEADER #1920    04034B50 (67324752)\n-68CFEE Extract Zip Spec      14 (20) '2.0'\n-68CFEF Extract OS            00 (0) 'MS-DOS'\n-68CFF0 General Purpose Flag  0000 (0)\n-68CFF2 Compression Method    0000 (0) 'Stored'\n-68CFF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68CFF8 CRC                   00000000 (0)\n-68CFFC Compressed Size       00000000 (0)\n-68D000 Uncompressed Size     00000000 (0)\n-68D004 Filename Length       002B (43)\n-68D006 Extra Length          0009 (9)\n-68D008 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68D008: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68D033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68D035   Length              0005 (5)\n-68D037   Flags               01 (1) 'Modification'\n-68D038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68D03C LOCAL HEADER #1921    04034B50 (67324752)\n-68D040 Extract Zip Spec      14 (20) '2.0'\n-68D041 Extract OS            00 (0) 'MS-DOS'\n-68D042 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68D044 Compression Method    0000 (0) 'Stored'\n-68D046 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68D04A CRC                   00000000 (0)\n-68D04E Compressed Size       00000000 (0)\n-68D052 Uncompressed Size     00000000 (0)\n-68D056 Filename Length       003B (59)\n-68D058 Extra Length          0009 (9)\n-68D05A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68D05A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68D095 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68D097   Length              0005 (5)\n-68D099   Flags               01 (1) 'Modification'\n-68D09A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68D09E PAYLOAD\n-\n-68D5C1 DATA DESCRIPTOR       08074B50 (134695760)\n-68D5C5 CRC                   FC72AE7D (4235374205)\n-68D5C9 Compressed Size       00000523 (1315)\n-68D5CD Uncompressed Size     00000523 (1315)\n-\n-68D5D1 LOCAL HEADER #1922    04034B50 (67324752)\n-68D5D5 Extract Zip Spec      14 (20) '2.0'\n-68D5D6 Extract OS            00 (0) 'MS-DOS'\n-68D5D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68D5D9 Compression Method    0000 (0) 'Stored'\n-68D5DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68D5DF CRC                   00000000 (0)\n-68D5E3 Compressed Size       00000000 (0)\n-68D5E7 Uncompressed Size     00000000 (0)\n-68D5EB Filename Length       003D (61)\n-68D5ED Extra Length          0009 (9)\n-68D5EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68D5EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68D62C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68D62E   Length              0005 (5)\n-68D630   Flags               01 (1) 'Modification'\n-68D631   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68D635 PAYLOAD\n-\n-68EB9C DATA DESCRIPTOR       08074B50 (134695760)\n-68EBA0 CRC                   DD3F3E44 (3711909444)\n-68EBA4 Compressed Size       00001567 (5479)\n-68EBA8 Uncompressed Size     00001567 (5479)\n-\n-68EBAC LOCAL HEADER #1923    04034B50 (67324752)\n-68EBB0 Extract Zip Spec      14 (20) '2.0'\n-68EBB1 Extract OS            00 (0) 'MS-DOS'\n-68EBB2 General Purpose Flag  0000 (0)\n-68EBB4 Compression Method    0000 (0) 'Stored'\n-68EBB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68EBBA CRC                   00000000 (0)\n-68EBBE Compressed Size       00000000 (0)\n-68EBC2 Uncompressed Size     00000000 (0)\n-68EBC6 Filename Length       0022 (34)\n-68EBC8 Extra Length          0009 (9)\n-68EBCA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68EBCA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68EBEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68EBEE   Length              0005 (5)\n-68EBF0   Flags               01 (1) 'Modification'\n-68EBF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-68EBF5 LOCAL HEADER #1924    04034B50 (67324752)\n-68EBF9 Extract Zip Spec      14 (20) '2.0'\n-68EBFA Extract OS            00 (0) 'MS-DOS'\n-68EBFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-68EBFD Compression Method    0000 (0) 'Stored'\n-68EBFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-68EC03 CRC                   00000000 (0)\n-68EC07 Compressed Size       00000000 (0)\n-68EC0B Uncompressed Size     00000000 (0)\n-68EC0F Filename Length       0032 (50)\n-68EC11 Extra Length          0009 (9)\n-68EC13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x68EC13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-68EC45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-68EC47   Length              0005 (5)\n-68EC49   Flags               01 (1) 'Modification'\n-68EC4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-68EC4E PAYLOAD\n-\n-690720 DATA DESCRIPTOR       08074B50 (134695760)\n-690724 CRC                   B748FF21 (3075014433)\n-690728 Compressed Size       00001AD2 (6866)\n-69072C Uncompressed Size     00001AD2 (6866)\n-\n-690730 LOCAL HEADER #1925    04034B50 (67324752)\n-690734 Extract Zip Spec      14 (20) '2.0'\n-690735 Extract OS            00 (0) 'MS-DOS'\n-690736 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-690738 Compression Method    0000 (0) 'Stored'\n-69073A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69073E CRC                   00000000 (0)\n-690742 Compressed Size       00000000 (0)\n-690746 Uncompressed Size     00000000 (0)\n-69074A Filename Length       003A (58)\n-69074C Extra Length          0009 (9)\n-69074E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69074E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-690788 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69078A   Length              0005 (5)\n-69078C   Flags               01 (1) 'Modification'\n-69078D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-690791 PAYLOAD\n-\n-6911F4 DATA DESCRIPTOR       08074B50 (134695760)\n-6911F8 CRC                   BE2E03C3 (3190686659)\n-6911FC Compressed Size       00000A63 (2659)\n-691200 Uncompressed Size     00000A63 (2659)\n-\n-691204 LOCAL HEADER #1926    04034B50 (67324752)\n-691208 Extract Zip Spec      14 (20) '2.0'\n-691209 Extract OS            00 (0) 'MS-DOS'\n-69120A General Purpose Flag  0000 (0)\n-69120C Compression Method    0000 (0) 'Stored'\n-69120E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-691212 CRC                   00000000 (0)\n-691216 Compressed Size       00000000 (0)\n-69121A Uncompressed Size     00000000 (0)\n-69121E Filename Length       0025 (37)\n-691220 Extra Length          0009 (9)\n-691222 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x691222: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-691247 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-691249   Length              0005 (5)\n-69124B   Flags               01 (1) 'Modification'\n-69124C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-691250 LOCAL HEADER #1927    04034B50 (67324752)\n-691254 Extract Zip Spec      14 (20) '2.0'\n-691255 Extract OS            00 (0) 'MS-DOS'\n-691256 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-691258 Compression Method    0000 (0) 'Stored'\n-69125A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69125E CRC                   00000000 (0)\n-691262 Compressed Size       00000000 (0)\n-691266 Uncompressed Size     00000000 (0)\n-69126A Filename Length       003C (60)\n-69126C Extra Length          0009 (9)\n-69126E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69126E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6912AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6912AC   Length              0005 (5)\n-6912AE   Flags               01 (1) 'Modification'\n-6912AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6912B3 PAYLOAD\n-\n-691776 DATA DESCRIPTOR       08074B50 (134695760)\n-69177A CRC                   338329BB (864233915)\n-69177E Compressed Size       000004C3 (1219)\n-691782 Uncompressed Size     000004C3 (1219)\n-\n-691786 LOCAL HEADER #1928    04034B50 (67324752)\n-69178A Extract Zip Spec      14 (20) '2.0'\n-69178B Extract OS            00 (0) 'MS-DOS'\n-69178C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69178E Compression Method    0000 (0) 'Stored'\n-691790 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-691794 CRC                   00000000 (0)\n-691798 Compressed Size       00000000 (0)\n-69179C Uncompressed Size     00000000 (0)\n-6917A0 Filename Length       0041 (65)\n-6917A2 Extra Length          0009 (9)\n-6917A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6917A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6917E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6917E7   Length              0005 (5)\n-6917E9   Flags               01 (1) 'Modification'\n-6917EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6917EE PAYLOAD\n-\n-691D8A DATA DESCRIPTOR       08074B50 (134695760)\n-691D8E CRC                   3B13030C (991101708)\n-691D92 Compressed Size       0000059C (1436)\n-691D96 Uncompressed Size     0000059C (1436)\n-\n-691D9A LOCAL HEADER #1929    04034B50 (67324752)\n-691D9E Extract Zip Spec      14 (20) '2.0'\n-691D9F Extract OS            00 (0) 'MS-DOS'\n-691DA0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-691DA2 Compression Method    0000 (0) 'Stored'\n-691DA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-691DA8 CRC                   00000000 (0)\n-691DAC Compressed Size       00000000 (0)\n-691DB0 Uncompressed Size     00000000 (0)\n-691DB4 Filename Length       0042 (66)\n-691DB6 Extra Length          0009 (9)\n-691DB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x691DB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-691DFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-691DFC   Length              0005 (5)\n-691DFE   Flags               01 (1) 'Modification'\n-691DFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-691E03 PAYLOAD\n-\n-6923D1 DATA DESCRIPTOR       08074B50 (134695760)\n-6923D5 CRC                   45D210E4 (1171394788)\n-6923D9 Compressed Size       000005CE (1486)\n-6923DD Uncompressed Size     000005CE (1486)\n-\n-6923E1 LOCAL HEADER #1930    04034B50 (67324752)\n-6923E5 Extract Zip Spec      14 (20) '2.0'\n-6923E6 Extract OS            00 (0) 'MS-DOS'\n-6923E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6923E9 Compression Method    0000 (0) 'Stored'\n-6923EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6923EF CRC                   00000000 (0)\n-6923F3 Compressed Size       00000000 (0)\n-6923F7 Uncompressed Size     00000000 (0)\n-6923FB Filename Length       0035 (53)\n-6923FD Extra Length          0009 (9)\n-6923FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6923FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-692434 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-692436   Length              0005 (5)\n-692438   Flags               01 (1) 'Modification'\n-692439   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69243D PAYLOAD\n-\n-69848D DATA DESCRIPTOR       08074B50 (134695760)\n-698491 CRC                   FCFC2855 (4244383829)\n-698495 Compressed Size       00006050 (24656)\n-698499 Uncompressed Size     00006050 (24656)\n-\n-69849D LOCAL HEADER #1931    04034B50 (67324752)\n-6984A1 Extract Zip Spec      14 (20) '2.0'\n-6984A2 Extract OS            00 (0) 'MS-DOS'\n-6984A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6984A5 Compression Method    0000 (0) 'Stored'\n-6984A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6984AB CRC                   00000000 (0)\n-6984AF Compressed Size       00000000 (0)\n-6984B3 Uncompressed Size     00000000 (0)\n-6984B7 Filename Length       0039 (57)\n-6984B9 Extra Length          0009 (9)\n-6984BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6984BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6984F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6984F6   Length              0005 (5)\n-6984F8   Flags               01 (1) 'Modification'\n-6984F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6984FD PAYLOAD\n-\n-698A25 DATA DESCRIPTOR       08074B50 (134695760)\n-698A29 CRC                   F36E07A4 (4084074404)\n-698A2D Compressed Size       00000528 (1320)\n-698A31 Uncompressed Size     00000528 (1320)\n-\n-698A35 LOCAL HEADER #1932    04034B50 (67324752)\n-698A39 Extract Zip Spec      14 (20) '2.0'\n-698A3A Extract OS            00 (0) 'MS-DOS'\n-698A3B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-698A3D Compression Method    0000 (0) 'Stored'\n-698A3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-698A43 CRC                   00000000 (0)\n-698A47 Compressed Size       00000000 (0)\n-698A4B Uncompressed Size     00000000 (0)\n-698A4F Filename Length       0037 (55)\n-698A51 Extra Length          0009 (9)\n-698A53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x698A53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-698A8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-698A8C   Length              0005 (5)\n-698A8E   Flags               01 (1) 'Modification'\n-698A8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-698A93 PAYLOAD\n-\n-69A26B DATA DESCRIPTOR       08074B50 (134695760)\n-69A26F CRC                   4E01C35D (1308738397)\n-69A273 Compressed Size       000017D8 (6104)\n-69A277 Uncompressed Size     000017D8 (6104)\n-\n-69A27B LOCAL HEADER #1933    04034B50 (67324752)\n-69A27F Extract Zip Spec      14 (20) '2.0'\n-69A280 Extract OS            00 (0) 'MS-DOS'\n-69A281 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69A283 Compression Method    0000 (0) 'Stored'\n-69A285 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69A289 CRC                   00000000 (0)\n-69A28D Compressed Size       00000000 (0)\n-69A291 Uncompressed Size     00000000 (0)\n-69A295 Filename Length       003B (59)\n-69A297 Extra Length          0009 (9)\n-69A299 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69A299: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69A2D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69A2D6   Length              0005 (5)\n-69A2D8   Flags               01 (1) 'Modification'\n-69A2D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69A2DD PAYLOAD\n-\n-69B210 DATA DESCRIPTOR       08074B50 (134695760)\n-69B214 CRC                   CCF50709 (3438610185)\n-69B218 Compressed Size       00000F33 (3891)\n-69B21C Uncompressed Size     00000F33 (3891)\n-\n-69B220 LOCAL HEADER #1934    04034B50 (67324752)\n-69B224 Extract Zip Spec      14 (20) '2.0'\n-69B225 Extract OS            00 (0) 'MS-DOS'\n-69B226 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69B228 Compression Method    0000 (0) 'Stored'\n-69B22A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69B22E CRC                   00000000 (0)\n-69B232 Compressed Size       00000000 (0)\n-69B236 Uncompressed Size     00000000 (0)\n-69B23A Filename Length       0038 (56)\n-69B23C Extra Length          0009 (9)\n-69B23E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69B23E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69B276 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69B278   Length              0005 (5)\n-69B27A   Flags               01 (1) 'Modification'\n-69B27B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69B27F PAYLOAD\n-\n-69D90E DATA DESCRIPTOR       08074B50 (134695760)\n-69D912 CRC                   8C523252 (2354197074)\n-69D916 Compressed Size       0000268F (9871)\n-69D91A Uncompressed Size     0000268F (9871)\n-\n-69D91E LOCAL HEADER #1935    04034B50 (67324752)\n-69D922 Extract Zip Spec      14 (20) '2.0'\n-69D923 Extract OS            00 (0) 'MS-DOS'\n-69D924 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69D926 Compression Method    0000 (0) 'Stored'\n-69D928 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69D92C CRC                   00000000 (0)\n-69D930 Compressed Size       00000000 (0)\n-69D934 Uncompressed Size     00000000 (0)\n-69D938 Filename Length       0034 (52)\n-69D93A Extra Length          0009 (9)\n-69D93C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69D93C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69D970 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69D972   Length              0005 (5)\n-69D974   Flags               01 (1) 'Modification'\n-69D975   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69D979 PAYLOAD\n-\n-69DFE5 DATA DESCRIPTOR       08074B50 (134695760)\n-69DFE9 CRC                   CBF7FEA9 (3422027433)\n-69DFED Compressed Size       0000066C (1644)\n-69DFF1 Uncompressed Size     0000066C (1644)\n-\n-69DFF5 LOCAL HEADER #1936    04034B50 (67324752)\n-69DFF9 Extract Zip Spec      14 (20) '2.0'\n-69DFFA Extract OS            00 (0) 'MS-DOS'\n-69DFFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69DFFD Compression Method    0000 (0) 'Stored'\n-69DFFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69E003 CRC                   00000000 (0)\n-69E007 Compressed Size       00000000 (0)\n-69E00B Uncompressed Size     00000000 (0)\n-69E00F Filename Length       0035 (53)\n-69E011 Extra Length          0009 (9)\n-69E013 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69E013: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69E048 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69E04A   Length              0005 (5)\n-69E04C   Flags               01 (1) 'Modification'\n-69E04D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69E051 PAYLOAD\n-\n-69F0CB DATA DESCRIPTOR       08074B50 (134695760)\n-69F0CF CRC                   FD7FF5E7 (4253021671)\n-69F0D3 Compressed Size       0000107A (4218)\n-69F0D7 Uncompressed Size     0000107A (4218)\n-\n-69F0DB LOCAL HEADER #1937    04034B50 (67324752)\n-69F0DF Extract Zip Spec      14 (20) '2.0'\n-69F0E0 Extract OS            00 (0) 'MS-DOS'\n-69F0E1 General Purpose Flag  0000 (0)\n-69F0E3 Compression Method    0000 (0) 'Stored'\n-69F0E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69F0E9 CRC                   00000000 (0)\n-69F0ED Compressed Size       00000000 (0)\n-69F0F1 Uncompressed Size     00000000 (0)\n-69F0F5 Filename Length       0029 (41)\n-69F0F7 Extra Length          0009 (9)\n-69F0F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69F0F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69F122 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69F124   Length              0005 (5)\n-69F126   Flags               01 (1) 'Modification'\n-69F127   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-69F12B LOCAL HEADER #1938    04034B50 (67324752)\n-69F12F Extract Zip Spec      14 (20) '2.0'\n-69F130 Extract OS            00 (0) 'MS-DOS'\n-69F131 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-69F133 Compression Method    0000 (0) 'Stored'\n-69F135 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-69F139 CRC                   00000000 (0)\n-69F13D Compressed Size       00000000 (0)\n-69F141 Uncompressed Size     00000000 (0)\n-69F145 Filename Length       0043 (67)\n-69F147 Extra Length          0009 (9)\n-69F149 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x69F149: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-69F18C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-69F18E   Length              0005 (5)\n-69F190   Flags               01 (1) 'Modification'\n-69F191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-69F195 PAYLOAD\n-\n-6A01D3 DATA DESCRIPTOR       08074B50 (134695760)\n-6A01D7 CRC                   6A1A9325 (1780126501)\n-6A01DB Compressed Size       0000103E (4158)\n-6A01DF Uncompressed Size     0000103E (4158)\n-\n-6A01E3 LOCAL HEADER #1939    04034B50 (67324752)\n-6A01E7 Extract Zip Spec      14 (20) '2.0'\n-6A01E8 Extract OS            00 (0) 'MS-DOS'\n-6A01E9 General Purpose Flag  0000 (0)\n-6A01EB Compression Method    0000 (0) 'Stored'\n-6A01ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A01F1 CRC                   00000000 (0)\n-6A01F5 Compressed Size       00000000 (0)\n-6A01F9 Uncompressed Size     00000000 (0)\n-6A01FD Filename Length       0028 (40)\n-6A01FF Extra Length          0009 (9)\n-6A0201 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A0201: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A0229 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A022B   Length              0005 (5)\n-6A022D   Flags               01 (1) 'Modification'\n-6A022E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A0232 LOCAL HEADER #1940    04034B50 (67324752)\n-6A0236 Extract Zip Spec      14 (20) '2.0'\n-6A0237 Extract OS            00 (0) 'MS-DOS'\n-6A0238 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A023A Compression Method    0000 (0) 'Stored'\n-6A023C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A0240 CRC                   00000000 (0)\n-6A0244 Compressed Size       00000000 (0)\n-6A0248 Uncompressed Size     00000000 (0)\n-6A024C Filename Length       003F (63)\n-6A024E Extra Length          0009 (9)\n-6A0250 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A0250: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A028F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A0291   Length              0005 (5)\n-6A0293   Flags               01 (1) 'Modification'\n-6A0294   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A0298 PAYLOAD\n-\n-6A0BE9 DATA DESCRIPTOR       08074B50 (134695760)\n-6A0BED CRC                   021D9C13 (35494931)\n-6A0BF1 Compressed Size       00000951 (2385)\n-6A0BF5 Uncompressed Size     00000951 (2385)\n-\n-6A0BF9 LOCAL HEADER #1941    04034B50 (67324752)\n-6A0BFD Extract Zip Spec      14 (20) '2.0'\n-6A0BFE Extract OS            00 (0) 'MS-DOS'\n-6A0BFF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A0C01 Compression Method    0000 (0) 'Stored'\n-6A0C03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A0C07 CRC                   00000000 (0)\n-6A0C0B Compressed Size       00000000 (0)\n-6A0C0F Uncompressed Size     00000000 (0)\n-6A0C13 Filename Length       004E (78)\n-6A0C15 Extra Length          0009 (9)\n-6A0C17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A0C17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A0C65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A0C67   Length              0005 (5)\n-6A0C69   Flags               01 (1) 'Modification'\n-6A0C6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A0C6E PAYLOAD\n-\n-6A185F DATA DESCRIPTOR       08074B50 (134695760)\n-6A1863 CRC                   48F808F8 (1224214776)\n-6A1867 Compressed Size       00000BF1 (3057)\n-6A186B Uncompressed Size     00000BF1 (3057)\n-\n-6A186F LOCAL HEADER #1942    04034B50 (67324752)\n-6A1873 Extract Zip Spec      14 (20) '2.0'\n-6A1874 Extract OS            00 (0) 'MS-DOS'\n-6A1875 General Purpose Flag  0000 (0)\n-6A1877 Compression Method    0000 (0) 'Stored'\n-6A1879 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A187D CRC                   00000000 (0)\n-6A1881 Compressed Size       00000000 (0)\n-6A1885 Uncompressed Size     00000000 (0)\n-6A1889 Filename Length       0029 (41)\n-6A188B Extra Length          0009 (9)\n-6A188D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A188D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A18B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A18B8   Length              0005 (5)\n-6A18BA   Flags               01 (1) 'Modification'\n-6A18BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A18BF LOCAL HEADER #1943    04034B50 (67324752)\n-6A18C3 Extract Zip Spec      14 (20) '2.0'\n-6A18C4 Extract OS            00 (0) 'MS-DOS'\n-6A18C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A18C7 Compression Method    0000 (0) 'Stored'\n-6A18C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A18CD CRC                   00000000 (0)\n-6A18D1 Compressed Size       00000000 (0)\n-6A18D5 Uncompressed Size     00000000 (0)\n-6A18D9 Filename Length       0040 (64)\n-6A18DB Extra Length          0009 (9)\n-6A18DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A18DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A191D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A191F   Length              0005 (5)\n-6A1921   Flags               01 (1) 'Modification'\n-6A1922   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A1926 PAYLOAD\n-\n-6A3C0F DATA DESCRIPTOR       08074B50 (134695760)\n-6A3C13 CRC                   BD5DBB91 (3177036689)\n-6A3C17 Compressed Size       000022E9 (8937)\n-6A3C1B Uncompressed Size     000022E9 (8937)\n-\n-6A3C1F LOCAL HEADER #1944    04034B50 (67324752)\n-6A3C23 Extract Zip Spec      14 (20) '2.0'\n-6A3C24 Extract OS            00 (0) 'MS-DOS'\n-6A3C25 General Purpose Flag  0000 (0)\n-6A3C27 Compression Method    0000 (0) 'Stored'\n-6A3C29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A3C2D CRC                   00000000 (0)\n-6A3C31 Compressed Size       00000000 (0)\n-6A3C35 Uncompressed Size     00000000 (0)\n-6A3C39 Filename Length       001B (27)\n-6A3C3B Extra Length          0009 (9)\n-6A3C3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A3C3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A3C58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A3C5A   Length              0005 (5)\n-6A3C5C   Flags               01 (1) 'Modification'\n-6A3C5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A3C61 LOCAL HEADER #1945    04034B50 (67324752)\n-6A3C65 Extract Zip Spec      14 (20) '2.0'\n-6A3C66 Extract OS            00 (0) 'MS-DOS'\n-6A3C67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A3C69 Compression Method    0000 (0) 'Stored'\n-6A3C6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A3C6F CRC                   00000000 (0)\n-6A3C73 Compressed Size       00000000 (0)\n-6A3C77 Uncompressed Size     00000000 (0)\n-6A3C7B Filename Length       0034 (52)\n-6A3C7D Extra Length          0009 (9)\n-6A3C7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A3C7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A3CB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A3CB5   Length              0005 (5)\n-6A3CB7   Flags               01 (1) 'Modification'\n-6A3CB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A3CBC PAYLOAD\n-\n-6A496A DATA DESCRIPTOR       08074B50 (134695760)\n-6A496E CRC                   E40DEA4B (3826117195)\n-6A4972 Compressed Size       00000CAE (3246)\n-6A4976 Uncompressed Size     00000CAE (3246)\n-\n-6A497A LOCAL HEADER #1946    04034B50 (67324752)\n-6A497E Extract Zip Spec      14 (20) '2.0'\n-6A497F Extract OS            00 (0) 'MS-DOS'\n-6A4980 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A4982 Compression Method    0000 (0) 'Stored'\n-6A4984 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A4988 CRC                   00000000 (0)\n-6A498C Compressed Size       00000000 (0)\n-6A4990 Uncompressed Size     00000000 (0)\n-6A4994 Filename Length       0034 (52)\n-6A4996 Extra Length          0009 (9)\n-6A4998 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A4998: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A49CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A49CE   Length              0005 (5)\n-6A49D0   Flags               01 (1) 'Modification'\n-6A49D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A49D5 PAYLOAD\n-\n-6A5CC5 DATA DESCRIPTOR       08074B50 (134695760)\n-6A5CC9 CRC                   7B8AE3FF (2072699903)\n-6A5CCD Compressed Size       000012F0 (4848)\n-6A5CD1 Uncompressed Size     000012F0 (4848)\n-\n-6A5CD5 LOCAL HEADER #1947    04034B50 (67324752)\n-6A5CD9 Extract Zip Spec      14 (20) '2.0'\n-6A5CDA Extract OS            00 (0) 'MS-DOS'\n-6A5CDB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A5CDD Compression Method    0000 (0) 'Stored'\n-6A5CDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A5CE3 CRC                   00000000 (0)\n-6A5CE7 Compressed Size       00000000 (0)\n-6A5CEB Uncompressed Size     00000000 (0)\n-6A5CEF Filename Length       0038 (56)\n-6A5CF1 Extra Length          0009 (9)\n-6A5CF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A5CF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A5D2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A5D2D   Length              0005 (5)\n-6A5D2F   Flags               01 (1) 'Modification'\n-6A5D30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A5D34 PAYLOAD\n-\n-6A6C45 DATA DESCRIPTOR       08074B50 (134695760)\n-6A6C49 CRC                   19702ABA (426781370)\n-6A6C4D Compressed Size       00000F11 (3857)\n-6A6C51 Uncompressed Size     00000F11 (3857)\n-\n-6A6C55 LOCAL HEADER #1948    04034B50 (67324752)\n-6A6C59 Extract Zip Spec      14 (20) '2.0'\n-6A6C5A Extract OS            00 (0) 'MS-DOS'\n-6A6C5B General Purpose Flag  0000 (0)\n-6A6C5D Compression Method    0000 (0) 'Stored'\n-6A6C5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A6C63 CRC                   00000000 (0)\n-6A6C67 Compressed Size       00000000 (0)\n-6A6C6B Uncompressed Size     00000000 (0)\n-6A6C6F Filename Length       0025 (37)\n-6A6C71 Extra Length          0009 (9)\n-6A6C73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A6C73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A6C98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A6C9A   Length              0005 (5)\n-6A6C9C   Flags               01 (1) 'Modification'\n-6A6C9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A6CA1 LOCAL HEADER #1949    04034B50 (67324752)\n-6A6CA5 Extract Zip Spec      14 (20) '2.0'\n-6A6CA6 Extract OS            00 (0) 'MS-DOS'\n-6A6CA7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A6CA9 Compression Method    0000 (0) 'Stored'\n-6A6CAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A6CAF CRC                   00000000 (0)\n-6A6CB3 Compressed Size       00000000 (0)\n-6A6CB7 Uncompressed Size     00000000 (0)\n-6A6CBB Filename Length       003F (63)\n-6A6CBD Extra Length          0009 (9)\n-6A6CBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A6CBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A6CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A6D00   Length              0005 (5)\n-6A6D02   Flags               01 (1) 'Modification'\n-6A6D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A6D07 PAYLOAD\n-\n-6A75C3 DATA DESCRIPTOR       08074B50 (134695760)\n-6A75C7 CRC                   763975AF (1983477167)\n-6A75CB Compressed Size       000008BC (2236)\n-6A75CF Uncompressed Size     000008BC (2236)\n-\n-6A75D3 LOCAL HEADER #1950    04034B50 (67324752)\n-6A75D7 Extract Zip Spec      14 (20) '2.0'\n-6A75D8 Extract OS            00 (0) 'MS-DOS'\n-6A75D9 General Purpose Flag  0000 (0)\n-6A75DB Compression Method    0000 (0) 'Stored'\n-6A75DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A75E1 CRC                   00000000 (0)\n-6A75E5 Compressed Size       00000000 (0)\n-6A75E9 Uncompressed Size     00000000 (0)\n-6A75ED Filename Length       001F (31)\n-6A75EF Extra Length          0009 (9)\n-6A75F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A75F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A7610 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A7612   Length              0005 (5)\n-6A7614   Flags               01 (1) 'Modification'\n-6A7615   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A7619 LOCAL HEADER #1951    04034B50 (67324752)\n-6A761D Extract Zip Spec      14 (20) '2.0'\n-6A761E Extract OS            00 (0) 'MS-DOS'\n-6A761F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A7621 Compression Method    0000 (0) 'Stored'\n-6A7623 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A7627 CRC                   00000000 (0)\n-6A762B Compressed Size       00000000 (0)\n-6A762F Uncompressed Size     00000000 (0)\n-6A7633 Filename Length       0033 (51)\n-6A7635 Extra Length          0009 (9)\n-6A7637 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A7637: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A766A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A766C   Length              0005 (5)\n-6A766E   Flags               01 (1) 'Modification'\n-6A766F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A7673 PAYLOAD\n-\n-6A7EBF DATA DESCRIPTOR       08074B50 (134695760)\n-6A7EC3 CRC                   776F6B16 (2003790614)\n-6A7EC7 Compressed Size       0000084C (2124)\n-6A7ECB Uncompressed Size     0000084C (2124)\n-\n-6A7ECF LOCAL HEADER #1952    04034B50 (67324752)\n-6A7ED3 Extract Zip Spec      14 (20) '2.0'\n-6A7ED4 Extract OS            00 (0) 'MS-DOS'\n-6A7ED5 General Purpose Flag  0000 (0)\n-6A7ED7 Compression Method    0000 (0) 'Stored'\n-6A7ED9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A7EDD CRC                   00000000 (0)\n-6A7EE1 Compressed Size       00000000 (0)\n-6A7EE5 Uncompressed Size     00000000 (0)\n-6A7EE9 Filename Length       0023 (35)\n-6A7EEB Extra Length          0009 (9)\n-6A7EED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A7EED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A7F10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A7F12   Length              0005 (5)\n-6A7F14   Flags               01 (1) 'Modification'\n-6A7F15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A7F19 LOCAL HEADER #1953    04034B50 (67324752)\n-6A7F1D Extract Zip Spec      14 (20) '2.0'\n-6A7F1E Extract OS            00 (0) 'MS-DOS'\n-6A7F1F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A7F21 Compression Method    0000 (0) 'Stored'\n-6A7F23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A7F27 CRC                   00000000 (0)\n-6A7F2B Compressed Size       00000000 (0)\n-6A7F2F Uncompressed Size     00000000 (0)\n-6A7F33 Filename Length       003F (63)\n-6A7F35 Extra Length          0009 (9)\n-6A7F37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A7F37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A7F76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A7F78   Length              0005 (5)\n-6A7F7A   Flags               01 (1) 'Modification'\n-6A7F7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A7F7F PAYLOAD\n-\n-6A9651 DATA DESCRIPTOR       08074B50 (134695760)\n-6A9655 CRC                   A1EB5EED (2716557037)\n-6A9659 Compressed Size       000016D2 (5842)\n-6A965D Uncompressed Size     000016D2 (5842)\n-\n-6A9661 LOCAL HEADER #1954    04034B50 (67324752)\n-6A9665 Extract Zip Spec      14 (20) '2.0'\n-6A9666 Extract OS            00 (0) 'MS-DOS'\n-6A9667 General Purpose Flag  0000 (0)\n-6A9669 Compression Method    0000 (0) 'Stored'\n-6A966B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A966F CRC                   00000000 (0)\n-6A9673 Compressed Size       00000000 (0)\n-6A9677 Uncompressed Size     00000000 (0)\n-6A967B Filename Length       001D (29)\n-6A967D Extra Length          0009 (9)\n-6A967F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A967F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A969C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A969E   Length              0005 (5)\n-6A96A0   Flags               01 (1) 'Modification'\n-6A96A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6A96A5 LOCAL HEADER #1955    04034B50 (67324752)\n-6A96A9 Extract Zip Spec      14 (20) '2.0'\n-6A96AA Extract OS            00 (0) 'MS-DOS'\n-6A96AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A96AD Compression Method    0000 (0) 'Stored'\n-6A96AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A96B3 CRC                   00000000 (0)\n-6A96B7 Compressed Size       00000000 (0)\n-6A96BB Uncompressed Size     00000000 (0)\n-6A96BF Filename Length       002D (45)\n-6A96C1 Extra Length          0009 (9)\n-6A96C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A96C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A96F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A96F2   Length              0005 (5)\n-6A96F4   Flags               01 (1) 'Modification'\n-6A96F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A96F9 PAYLOAD\n-\n-6A9A7A DATA DESCRIPTOR       08074B50 (134695760)\n-6A9A7E CRC                   D7F884E9 (3623388393)\n-6A9A82 Compressed Size       00000381 (897)\n-6A9A86 Uncompressed Size     00000381 (897)\n-\n-6A9A8A LOCAL HEADER #1956    04034B50 (67324752)\n-6A9A8E Extract Zip Spec      14 (20) '2.0'\n-6A9A8F Extract OS            00 (0) 'MS-DOS'\n-6A9A90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A9A92 Compression Method    0000 (0) 'Stored'\n-6A9A94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A9A98 CRC                   00000000 (0)\n-6A9A9C Compressed Size       00000000 (0)\n-6A9AA0 Uncompressed Size     00000000 (0)\n-6A9AA4 Filename Length       002D (45)\n-6A9AA6 Extra Length          0009 (9)\n-6A9AA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A9AA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A9AD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A9AD7   Length              0005 (5)\n-6A9AD9   Flags               01 (1) 'Modification'\n-6A9ADA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A9ADE PAYLOAD\n-\n-6A9EEF DATA DESCRIPTOR       08074B50 (134695760)\n-6A9EF3 CRC                   28AB9AE3 (682334947)\n-6A9EF7 Compressed Size       00000411 (1041)\n-6A9EFB Uncompressed Size     00000411 (1041)\n-\n-6A9EFF LOCAL HEADER #1957    04034B50 (67324752)\n-6A9F03 Extract Zip Spec      14 (20) '2.0'\n-6A9F04 Extract OS            00 (0) 'MS-DOS'\n-6A9F05 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6A9F07 Compression Method    0000 (0) 'Stored'\n-6A9F09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6A9F0D CRC                   00000000 (0)\n-6A9F11 Compressed Size       00000000 (0)\n-6A9F15 Uncompressed Size     00000000 (0)\n-6A9F19 Filename Length       0035 (53)\n-6A9F1B Extra Length          0009 (9)\n-6A9F1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6A9F1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6A9F52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6A9F54   Length              0005 (5)\n-6A9F56   Flags               01 (1) 'Modification'\n-6A9F57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6A9F5B PAYLOAD\n-\n-6AA381 DATA DESCRIPTOR       08074B50 (134695760)\n-6AA385 CRC                   9CAA7033 (2628415539)\n-6AA389 Compressed Size       00000426 (1062)\n-6AA38D Uncompressed Size     00000426 (1062)\n-\n-6AA391 LOCAL HEADER #1958    04034B50 (67324752)\n-6AA395 Extract Zip Spec      14 (20) '2.0'\n-6AA396 Extract OS            00 (0) 'MS-DOS'\n-6AA397 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AA399 Compression Method    0000 (0) 'Stored'\n-6AA39B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AA39F CRC                   00000000 (0)\n-6AA3A3 Compressed Size       00000000 (0)\n-6AA3A7 Uncompressed Size     00000000 (0)\n-6AA3AB Filename Length       0032 (50)\n-6AA3AD Extra Length          0009 (9)\n-6AA3AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AA3AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AA3E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AA3E3   Length              0005 (5)\n-6AA3E5   Flags               01 (1) 'Modification'\n-6AA3E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AA3EA PAYLOAD\n-\n-6AABB3 DATA DESCRIPTOR       08074B50 (134695760)\n-6AABB7 CRC                   C2B7ABEC (3266817004)\n-6AABBB Compressed Size       000007C9 (1993)\n-6AABBF Uncompressed Size     000007C9 (1993)\n-\n-6AABC3 LOCAL HEADER #1959    04034B50 (67324752)\n-6AABC7 Extract Zip Spec      14 (20) '2.0'\n-6AABC8 Extract OS            00 (0) 'MS-DOS'\n-6AABC9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AABCB Compression Method    0000 (0) 'Stored'\n-6AABCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AABD1 CRC                   00000000 (0)\n-6AABD5 Compressed Size       00000000 (0)\n-6AABD9 Uncompressed Size     00000000 (0)\n-6AABDD Filename Length       0030 (48)\n-6AABDF Extra Length          0009 (9)\n-6AABE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AABE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AAC11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AAC13   Length              0005 (5)\n-6AAC15   Flags               01 (1) 'Modification'\n-6AAC16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AAC1A PAYLOAD\n-\n-6AB378 DATA DESCRIPTOR       08074B50 (134695760)\n-6AB37C CRC                   2C4FF5E6 (743437798)\n-6AB380 Compressed Size       0000075E (1886)\n-6AB384 Uncompressed Size     0000075E (1886)\n-\n-6AB388 LOCAL HEADER #1960    04034B50 (67324752)\n-6AB38C Extract Zip Spec      14 (20) '2.0'\n-6AB38D Extract OS            00 (0) 'MS-DOS'\n-6AB38E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AB390 Compression Method    0000 (0) 'Stored'\n-6AB392 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AB396 CRC                   00000000 (0)\n-6AB39A Compressed Size       00000000 (0)\n-6AB39E Uncompressed Size     00000000 (0)\n-6AB3A2 Filename Length       0038 (56)\n-6AB3A4 Extra Length          0009 (9)\n-6AB3A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AB3A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AB3DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AB3E0   Length              0005 (5)\n-6AB3E2   Flags               01 (1) 'Modification'\n-6AB3E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AB3E7 PAYLOAD\n-\n-6AB813 DATA DESCRIPTOR       08074B50 (134695760)\n-6AB817 CRC                   420D2C18 (1108159512)\n-6AB81B Compressed Size       0000042C (1068)\n-6AB81F Uncompressed Size     0000042C (1068)\n-\n-6AB823 LOCAL HEADER #1961    04034B50 (67324752)\n-6AB827 Extract Zip Spec      14 (20) '2.0'\n-6AB828 Extract OS            00 (0) 'MS-DOS'\n-6AB829 General Purpose Flag  0000 (0)\n-6AB82B Compression Method    0000 (0) 'Stored'\n-6AB82D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AB831 CRC                   00000000 (0)\n-6AB835 Compressed Size       00000000 (0)\n-6AB839 Uncompressed Size     00000000 (0)\n-6AB83D Filename Length       001D (29)\n-6AB83F Extra Length          0009 (9)\n-6AB841 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AB841: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AB85E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AB860   Length              0005 (5)\n-6AB862   Flags               01 (1) 'Modification'\n-6AB863   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6AB867 LOCAL HEADER #1962    04034B50 (67324752)\n-6AB86B Extract Zip Spec      14 (20) '2.0'\n-6AB86C Extract OS            00 (0) 'MS-DOS'\n-6AB86D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AB86F Compression Method    0000 (0) 'Stored'\n-6AB871 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AB875 CRC                   00000000 (0)\n-6AB879 Compressed Size       00000000 (0)\n-6AB87D Uncompressed Size     00000000 (0)\n-6AB881 Filename Length       002F (47)\n-6AB883 Extra Length          0009 (9)\n-6AB885 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AB885: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AB8B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AB8B6   Length              0005 (5)\n-6AB8B8   Flags               01 (1) 'Modification'\n-6AB8B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AB8BD PAYLOAD\n-\n-6AD7A4 DATA DESCRIPTOR       08074B50 (134695760)\n-6AD7A8 CRC                   71347931 (1899264305)\n-6AD7AC Compressed Size       00001EE7 (7911)\n-6AD7B0 Uncompressed Size     00001EE7 (7911)\n-\n-6AD7B4 LOCAL HEADER #1963    04034B50 (67324752)\n-6AD7B8 Extract Zip Spec      14 (20) '2.0'\n-6AD7B9 Extract OS            00 (0) 'MS-DOS'\n-6AD7BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AD7BC Compression Method    0000 (0) 'Stored'\n-6AD7BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AD7C2 CRC                   00000000 (0)\n-6AD7C6 Compressed Size       00000000 (0)\n-6AD7CA Uncompressed Size     00000000 (0)\n-6AD7CE Filename Length       0036 (54)\n-6AD7D0 Extra Length          0009 (9)\n-6AD7D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AD7D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AD808 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AD80A   Length              0005 (5)\n-6AD80C   Flags               01 (1) 'Modification'\n-6AD80D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AD811 PAYLOAD\n-\n-6AE35A DATA DESCRIPTOR       08074B50 (134695760)\n-6AE35E CRC                   40BAC24E (1085981262)\n-6AE362 Compressed Size       00000B49 (2889)\n-6AE366 Uncompressed Size     00000B49 (2889)\n-\n-6AE36A LOCAL HEADER #1964    04034B50 (67324752)\n-6AE36E Extract Zip Spec      14 (20) '2.0'\n-6AE36F Extract OS            00 (0) 'MS-DOS'\n-6AE370 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6AE372 Compression Method    0000 (0) 'Stored'\n-6AE374 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6AE378 CRC                   00000000 (0)\n-6AE37C Compressed Size       00000000 (0)\n-6AE380 Uncompressed Size     00000000 (0)\n-6AE384 Filename Length       002D (45)\n-6AE386 Extra Length          0009 (9)\n-6AE388 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6AE388: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6AE3B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6AE3B7   Length              0005 (5)\n-6AE3B9   Flags               01 (1) 'Modification'\n-6AE3BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6AE3BE PAYLOAD\n-\n-6B0F13 DATA DESCRIPTOR       08074B50 (134695760)\n-6B0F17 CRC                   E459791A (3831068954)\n-6B0F1B Compressed Size       00002B55 (11093)\n-6B0F1F Uncompressed Size     00002B55 (11093)\n-\n-6B0F23 LOCAL HEADER #1965    04034B50 (67324752)\n-6B0F27 Extract Zip Spec      14 (20) '2.0'\n-6B0F28 Extract OS            00 (0) 'MS-DOS'\n-6B0F29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B0F2B Compression Method    0000 (0) 'Stored'\n-6B0F2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B0F31 CRC                   00000000 (0)\n-6B0F35 Compressed Size       00000000 (0)\n-6B0F39 Uncompressed Size     00000000 (0)\n-6B0F3D Filename Length       002E (46)\n-6B0F3F Extra Length          0009 (9)\n-6B0F41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B0F41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B0F6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B0F71   Length              0005 (5)\n-6B0F73   Flags               01 (1) 'Modification'\n-6B0F74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B0F78 PAYLOAD\n-\n-6B15D6 DATA DESCRIPTOR       08074B50 (134695760)\n-6B15DA CRC                   80C30D3D (2160266557)\n-6B15DE Compressed Size       0000065E (1630)\n-6B15E2 Uncompressed Size     0000065E (1630)\n-\n-6B15E6 LOCAL HEADER #1966    04034B50 (67324752)\n-6B15EA Extract Zip Spec      14 (20) '2.0'\n-6B15EB Extract OS            00 (0) 'MS-DOS'\n-6B15EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B15EE Compression Method    0000 (0) 'Stored'\n-6B15F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B15F4 CRC                   00000000 (0)\n-6B15F8 Compressed Size       00000000 (0)\n-6B15FC Uncompressed Size     00000000 (0)\n-6B1600 Filename Length       002F (47)\n-6B1602 Extra Length          0009 (9)\n-6B1604 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B1604: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B1633 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B1635   Length              0005 (5)\n-6B1637   Flags               01 (1) 'Modification'\n-6B1638   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B163C PAYLOAD\n-\n-6B2699 DATA DESCRIPTOR       08074B50 (134695760)\n-6B269D CRC                   CC5CA724 (3428624164)\n-6B26A1 Compressed Size       0000105D (4189)\n-6B26A5 Uncompressed Size     0000105D (4189)\n-\n-6B26A9 LOCAL HEADER #1967    04034B50 (67324752)\n-6B26AD Extract Zip Spec      14 (20) '2.0'\n-6B26AE Extract OS            00 (0) 'MS-DOS'\n-6B26AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B26B1 Compression Method    0000 (0) 'Stored'\n-6B26B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B26B7 CRC                   00000000 (0)\n-6B26BB Compressed Size       00000000 (0)\n-6B26BF Uncompressed Size     00000000 (0)\n-6B26C3 Filename Length       002A (42)\n-6B26C5 Extra Length          0009 (9)\n-6B26C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B26C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B26F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B26F3   Length              0005 (5)\n-6B26F5   Flags               01 (1) 'Modification'\n-6B26F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B26FA PAYLOAD\n-\n-6B5230 DATA DESCRIPTOR       08074B50 (134695760)\n-6B5234 CRC                   613BF150 (1631318352)\n-6B5238 Compressed Size       00002B36 (11062)\n-6B523C Uncompressed Size     00002B36 (11062)\n-\n-6B5240 LOCAL HEADER #1968    04034B50 (67324752)\n-6B5244 Extract Zip Spec      14 (20) '2.0'\n-6B5245 Extract OS            00 (0) 'MS-DOS'\n-6B5246 General Purpose Flag  0000 (0)\n-6B5248 Compression Method    0000 (0) 'Stored'\n-6B524A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B524E CRC                   00000000 (0)\n-6B5252 Compressed Size       00000000 (0)\n-6B5256 Uncompressed Size     00000000 (0)\n-6B525A Filename Length       001B (27)\n-6B525C Extra Length          0009 (9)\n-6B525E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B525E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B5279 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B527B   Length              0005 (5)\n-6B527D   Flags               01 (1) 'Modification'\n-6B527E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6B5282 LOCAL HEADER #1969    04034B50 (67324752)\n-6B5286 Extract Zip Spec      14 (20) '2.0'\n-6B5287 Extract OS            00 (0) 'MS-DOS'\n-6B5288 General Purpose Flag  0000 (0)\n-6B528A Compression Method    0000 (0) 'Stored'\n-6B528C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B5290 CRC                   00000000 (0)\n-6B5294 Compressed Size       00000000 (0)\n-6B5298 Uncompressed Size     00000000 (0)\n-6B529C Filename Length       0023 (35)\n-6B529E Extra Length          0009 (9)\n-6B52A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B52A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B52C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B52C5   Length              0005 (5)\n-6B52C7   Flags               01 (1) 'Modification'\n-6B52C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6B52CC LOCAL HEADER #1970    04034B50 (67324752)\n-6B52D0 Extract Zip Spec      14 (20) '2.0'\n-6B52D1 Extract OS            00 (0) 'MS-DOS'\n-6B52D2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B52D4 Compression Method    0000 (0) 'Stored'\n-6B52D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B52DA CRC                   00000000 (0)\n-6B52DE Compressed Size       00000000 (0)\n-6B52E2 Uncompressed Size     00000000 (0)\n-6B52E6 Filename Length       003B (59)\n-6B52E8 Extra Length          0009 (9)\n-6B52EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B52EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B5325 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B5327   Length              0005 (5)\n-6B5329   Flags               01 (1) 'Modification'\n-6B532A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B532E PAYLOAD\n-\n-6B5DB2 DATA DESCRIPTOR       08074B50 (134695760)\n-6B5DB6 CRC                   852B452E (2234205486)\n-6B5DBA Compressed Size       00000A84 (2692)\n-6B5DBE Uncompressed Size     00000A84 (2692)\n-\n-6B5DC2 LOCAL HEADER #1971    04034B50 (67324752)\n-6B5DC6 Extract Zip Spec      14 (20) '2.0'\n-6B5DC7 Extract OS            00 (0) 'MS-DOS'\n-6B5DC8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B5DCA Compression Method    0000 (0) 'Stored'\n-6B5DCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B5DD0 CRC                   00000000 (0)\n-6B5DD4 Compressed Size       00000000 (0)\n-6B5DD8 Uncompressed Size     00000000 (0)\n-6B5DDC Filename Length       003C (60)\n-6B5DDE Extra Length          0009 (9)\n-6B5DE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B5DE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B5E1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B5E1E   Length              0005 (5)\n-6B5E20   Flags               01 (1) 'Modification'\n-6B5E21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B5E25 PAYLOAD\n-\n-6B6870 DATA DESCRIPTOR       08074B50 (134695760)\n-6B6874 CRC                   3D3ED0A6 (1027526822)\n-6B6878 Compressed Size       00000A4B (2635)\n-6B687C Uncompressed Size     00000A4B (2635)\n-\n-6B6880 LOCAL HEADER #1972    04034B50 (67324752)\n-6B6884 Extract Zip Spec      14 (20) '2.0'\n-6B6885 Extract OS            00 (0) 'MS-DOS'\n-6B6886 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B6888 Compression Method    0000 (0) 'Stored'\n-6B688A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B688E CRC                   00000000 (0)\n-6B6892 Compressed Size       00000000 (0)\n-6B6896 Uncompressed Size     00000000 (0)\n-6B689A Filename Length       003D (61)\n-6B689C Extra Length          0009 (9)\n-6B689E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B689E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B68DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B68DD   Length              0005 (5)\n-6B68DF   Flags               01 (1) 'Modification'\n-6B68E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B68E4 PAYLOAD\n-\n-6B6FEB DATA DESCRIPTOR       08074B50 (134695760)\n-6B6FEF CRC                   0FA733C6 (262616006)\n-6B6FF3 Compressed Size       00000707 (1799)\n-6B6FF7 Uncompressed Size     00000707 (1799)\n-\n-6B6FFB LOCAL HEADER #1973    04034B50 (67324752)\n-6B6FFF Extract Zip Spec      14 (20) '2.0'\n-6B7000 Extract OS            00 (0) 'MS-DOS'\n-6B7001 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B7003 Compression Method    0000 (0) 'Stored'\n-6B7005 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B7009 CRC                   00000000 (0)\n-6B700D Compressed Size       00000000 (0)\n-6B7011 Uncompressed Size     00000000 (0)\n-6B7015 Filename Length       0041 (65)\n-6B7017 Extra Length          0009 (9)\n-6B7019 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B7019: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B705A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B705C   Length              0005 (5)\n-6B705E   Flags               01 (1) 'Modification'\n-6B705F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B7063 PAYLOAD\n-\n-6B776C DATA DESCRIPTOR       08074B50 (134695760)\n-6B7770 CRC                   42BF763C (1119843900)\n-6B7774 Compressed Size       00000709 (1801)\n-6B7778 Uncompressed Size     00000709 (1801)\n-\n-6B777C LOCAL HEADER #1974    04034B50 (67324752)\n-6B7780 Extract Zip Spec      14 (20) '2.0'\n-6B7781 Extract OS            00 (0) 'MS-DOS'\n-6B7782 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B7784 Compression Method    0000 (0) 'Stored'\n-6B7786 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B778A CRC                   00000000 (0)\n-6B778E Compressed Size       00000000 (0)\n-6B7792 Uncompressed Size     00000000 (0)\n-6B7796 Filename Length       003E (62)\n-6B7798 Extra Length          0009 (9)\n-6B779A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B779A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B77D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B77DA   Length              0005 (5)\n-6B77DC   Flags               01 (1) 'Modification'\n-6B77DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B77E1 PAYLOAD\n-\n-6B89B0 DATA DESCRIPTOR       08074B50 (134695760)\n-6B89B4 CRC                   9A817459 (2592175193)\n-6B89B8 Compressed Size       000011CF (4559)\n-6B89BC Uncompressed Size     000011CF (4559)\n-\n-6B89C0 LOCAL HEADER #1975    04034B50 (67324752)\n-6B89C4 Extract Zip Spec      14 (20) '2.0'\n-6B89C5 Extract OS            00 (0) 'MS-DOS'\n-6B89C6 General Purpose Flag  0000 (0)\n-6B89C8 Compression Method    0000 (0) 'Stored'\n-6B89CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B89CE CRC                   00000000 (0)\n-6B89D2 Compressed Size       00000000 (0)\n-6B89D6 Uncompressed Size     00000000 (0)\n-6B89DA Filename Length       002E (46)\n-6B89DC Extra Length          0009 (9)\n-6B89DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B89DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B8A0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B8A0E   Length              0005 (5)\n-6B8A10   Flags               01 (1) 'Modification'\n-6B8A11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6B8A15 LOCAL HEADER #1976    04034B50 (67324752)\n-6B8A19 Extract Zip Spec      14 (20) '2.0'\n-6B8A1A Extract OS            00 (0) 'MS-DOS'\n-6B8A1B General Purpose Flag  0000 (0)\n-6B8A1D Compression Method    0000 (0) 'Stored'\n-6B8A1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B8A23 CRC                   00000000 (0)\n-6B8A27 Compressed Size       00000000 (0)\n-6B8A2B Uncompressed Size     00000000 (0)\n-6B8A2F Filename Length       0034 (52)\n-6B8A31 Extra Length          0009 (9)\n-6B8A33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B8A33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B8A67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B8A69   Length              0005 (5)\n-6B8A6B   Flags               01 (1) 'Modification'\n-6B8A6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6B8A70 LOCAL HEADER #1977    04034B50 (67324752)\n-6B8A74 Extract Zip Spec      14 (20) '2.0'\n-6B8A75 Extract OS            00 (0) 'MS-DOS'\n-6B8A76 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B8A78 Compression Method    0000 (0) 'Stored'\n-6B8A7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B8A7E CRC                   00000000 (0)\n-6B8A82 Compressed Size       00000000 (0)\n-6B8A86 Uncompressed Size     00000000 (0)\n-6B8A8A Filename Length       0047 (71)\n-6B8A8C Extra Length          0009 (9)\n-6B8A8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B8A8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B8AD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B8AD7   Length              0005 (5)\n-6B8AD9   Flags               01 (1) 'Modification'\n-6B8ADA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B8ADE PAYLOAD\n-\n-6B9158 DATA DESCRIPTOR       08074B50 (134695760)\n-6B915C CRC                   526506A5 (1382352549)\n-6B9160 Compressed Size       0000067A (1658)\n-6B9164 Uncompressed Size     0000067A (1658)\n-\n-6B9168 LOCAL HEADER #1978    04034B50 (67324752)\n-6B916C Extract Zip Spec      14 (20) '2.0'\n-6B916D Extract OS            00 (0) 'MS-DOS'\n-6B916E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B9170 Compression Method    0000 (0) 'Stored'\n-6B9172 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B9176 CRC                   00000000 (0)\n-6B917A Compressed Size       00000000 (0)\n-6B917E Uncompressed Size     00000000 (0)\n-6B9182 Filename Length       0046 (70)\n-6B9184 Extra Length          0009 (9)\n-6B9186 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B9186: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B91CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B91CE   Length              0005 (5)\n-6B91D0   Flags               01 (1) 'Modification'\n-6B91D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B91D5 PAYLOAD\n-\n-6B984E DATA DESCRIPTOR       08074B50 (134695760)\n-6B9852 CRC                   E4089255 (3825766997)\n-6B9856 Compressed Size       00000679 (1657)\n-6B985A Uncompressed Size     00000679 (1657)\n-\n-6B985E LOCAL HEADER #1979    04034B50 (67324752)\n-6B9862 Extract Zip Spec      14 (20) '2.0'\n-6B9863 Extract OS            00 (0) 'MS-DOS'\n-6B9864 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6B9866 Compression Method    0000 (0) 'Stored'\n-6B9868 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6B986C CRC                   00000000 (0)\n-6B9870 Compressed Size       00000000 (0)\n-6B9874 Uncompressed Size     00000000 (0)\n-6B9878 Filename Length       004C (76)\n-6B987A Extra Length          0009 (9)\n-6B987C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6B987C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6B98C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6B98CA   Length              0005 (5)\n-6B98CC   Flags               01 (1) 'Modification'\n-6B98CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6B98D1 PAYLOAD\n-\n-6BA079 DATA DESCRIPTOR       08074B50 (134695760)\n-6BA07D CRC                   3FBD14BB (1069356219)\n-6BA081 Compressed Size       000007A8 (1960)\n-6BA085 Uncompressed Size     000007A8 (1960)\n-\n-6BA089 LOCAL HEADER #1980    04034B50 (67324752)\n-6BA08D Extract Zip Spec      14 (20) '2.0'\n-6BA08E Extract OS            00 (0) 'MS-DOS'\n-6BA08F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BA091 Compression Method    0000 (0) 'Stored'\n-6BA093 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BA097 CRC                   00000000 (0)\n-6BA09B Compressed Size       00000000 (0)\n-6BA09F Uncompressed Size     00000000 (0)\n-6BA0A3 Filename Length       0048 (72)\n-6BA0A5 Extra Length          0009 (9)\n-6BA0A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BA0A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BA0EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BA0F1   Length              0005 (5)\n-6BA0F3   Flags               01 (1) 'Modification'\n-6BA0F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BA0F8 PAYLOAD\n-\n-6BA7B7 DATA DESCRIPTOR       08074B50 (134695760)\n-6BA7BB CRC                   0BA6304B (195440715)\n-6BA7BF Compressed Size       000006BF (1727)\n-6BA7C3 Uncompressed Size     000006BF (1727)\n-\n-6BA7C7 LOCAL HEADER #1981    04034B50 (67324752)\n-6BA7CB Extract Zip Spec      14 (20) '2.0'\n-6BA7CC Extract OS            00 (0) 'MS-DOS'\n-6BA7CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BA7CF Compression Method    0000 (0) 'Stored'\n-6BA7D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BA7D5 CRC                   00000000 (0)\n-6BA7D9 Compressed Size       00000000 (0)\n-6BA7DD Uncompressed Size     00000000 (0)\n-6BA7E1 Filename Length       004C (76)\n-6BA7E3 Extra Length          0009 (9)\n-6BA7E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BA7E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BA831 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BA833   Length              0005 (5)\n-6BA835   Flags               01 (1) 'Modification'\n-6BA836   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BA83A PAYLOAD\n-\n-6BAF10 DATA DESCRIPTOR       08074B50 (134695760)\n-6BAF14 CRC                   6F153BA7 (1863662503)\n-6BAF18 Compressed Size       000006D6 (1750)\n-6BAF1C Uncompressed Size     000006D6 (1750)\n-\n-6BAF20 LOCAL HEADER #1982    04034B50 (67324752)\n-6BAF24 Extract Zip Spec      14 (20) '2.0'\n-6BAF25 Extract OS            00 (0) 'MS-DOS'\n-6BAF26 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BAF28 Compression Method    0000 (0) 'Stored'\n-6BAF2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BAF2E CRC                   00000000 (0)\n-6BAF32 Compressed Size       00000000 (0)\n-6BAF36 Uncompressed Size     00000000 (0)\n-6BAF3A Filename Length       0048 (72)\n-6BAF3C Extra Length          0009 (9)\n-6BAF3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BAF3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BAF86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BAF88   Length              0005 (5)\n-6BAF8A   Flags               01 (1) 'Modification'\n-6BAF8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BAF8F PAYLOAD\n-\n-6BB69E DATA DESCRIPTOR       08074B50 (134695760)\n-6BB6A2 CRC                   6E8EF8DF (1854863583)\n-6BB6A6 Compressed Size       0000070F (1807)\n-6BB6AA Uncompressed Size     0000070F (1807)\n-\n-6BB6AE LOCAL HEADER #1983    04034B50 (67324752)\n-6BB6B2 Extract Zip Spec      14 (20) '2.0'\n-6BB6B3 Extract OS            00 (0) 'MS-DOS'\n-6BB6B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BB6B6 Compression Method    0000 (0) 'Stored'\n-6BB6B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BB6BC CRC                   00000000 (0)\n-6BB6C0 Compressed Size       00000000 (0)\n-6BB6C4 Uncompressed Size     00000000 (0)\n-6BB6C8 Filename Length       0047 (71)\n-6BB6CA Extra Length          0009 (9)\n-6BB6CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BB6CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BB713 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BB715   Length              0005 (5)\n-6BB717   Flags               01 (1) 'Modification'\n-6BB718   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BB71C PAYLOAD\n-\n-6BBD8A DATA DESCRIPTOR       08074B50 (134695760)\n-6BBD8E CRC                   1A07B667 (436713063)\n-6BBD92 Compressed Size       0000066E (1646)\n-6BBD96 Uncompressed Size     0000066E (1646)\n-\n-6BBD9A LOCAL HEADER #1984    04034B50 (67324752)\n-6BBD9E Extract Zip Spec      14 (20) '2.0'\n-6BBD9F Extract OS            00 (0) 'MS-DOS'\n-6BBDA0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BBDA2 Compression Method    0000 (0) 'Stored'\n-6BBDA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BBDA8 CRC                   00000000 (0)\n-6BBDAC Compressed Size       00000000 (0)\n-6BBDB0 Uncompressed Size     00000000 (0)\n-6BBDB4 Filename Length       004D (77)\n-6BBDB6 Extra Length          0009 (9)\n-6BBDB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BBDB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BBE05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BBE07   Length              0005 (5)\n-6BBE09   Flags               01 (1) 'Modification'\n-6BBE0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BBE0E PAYLOAD\n-\n-6BC517 DATA DESCRIPTOR       08074B50 (134695760)\n-6BC51B CRC                   08DC2FC0 (148647872)\n-6BC51F Compressed Size       00000709 (1801)\n-6BC523 Uncompressed Size     00000709 (1801)\n-\n-6BC527 LOCAL HEADER #1985    04034B50 (67324752)\n-6BC52B Extract Zip Spec      14 (20) '2.0'\n-6BC52C Extract OS            00 (0) 'MS-DOS'\n-6BC52D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BC52F Compression Method    0000 (0) 'Stored'\n-6BC531 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BC535 CRC                   00000000 (0)\n-6BC539 Compressed Size       00000000 (0)\n-6BC53D Uncompressed Size     00000000 (0)\n-6BC541 Filename Length       0049 (73)\n-6BC543 Extra Length          0009 (9)\n-6BC545 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BC545: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BC58E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BC590   Length              0005 (5)\n-6BC592   Flags               01 (1) 'Modification'\n-6BC593   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BC597 PAYLOAD\n-\n-6BCC7B DATA DESCRIPTOR       08074B50 (134695760)\n-6BCC7F CRC                   816C5FDD (2171363293)\n-6BCC83 Compressed Size       000006E4 (1764)\n-6BCC87 Uncompressed Size     000006E4 (1764)\n-\n-6BCC8B LOCAL HEADER #1986    04034B50 (67324752)\n-6BCC8F Extract Zip Spec      14 (20) '2.0'\n-6BCC90 Extract OS            00 (0) 'MS-DOS'\n-6BCC91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BCC93 Compression Method    0000 (0) 'Stored'\n-6BCC95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BCC99 CRC                   00000000 (0)\n-6BCC9D Compressed Size       00000000 (0)\n-6BCCA1 Uncompressed Size     00000000 (0)\n-6BCCA5 Filename Length       0045 (69)\n-6BCCA7 Extra Length          0009 (9)\n-6BCCA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BCCA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BCCEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BCCF0   Length              0005 (5)\n-6BCCF2   Flags               01 (1) 'Modification'\n-6BCCF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BCCF7 PAYLOAD\n-\n-6BD398 DATA DESCRIPTOR       08074B50 (134695760)\n-6BD39C CRC                   8DA313D4 (2376274900)\n-6BD3A0 Compressed Size       000006A1 (1697)\n-6BD3A4 Uncompressed Size     000006A1 (1697)\n-\n-6BD3A8 LOCAL HEADER #1987    04034B50 (67324752)\n-6BD3AC Extract Zip Spec      14 (20) '2.0'\n-6BD3AD Extract OS            00 (0) 'MS-DOS'\n-6BD3AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BD3B0 Compression Method    0000 (0) 'Stored'\n-6BD3B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BD3B6 CRC                   00000000 (0)\n-6BD3BA Compressed Size       00000000 (0)\n-6BD3BE Uncompressed Size     00000000 (0)\n-6BD3C2 Filename Length       0043 (67)\n-6BD3C4 Extra Length          0009 (9)\n-6BD3C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BD3C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BD409 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BD40B   Length              0005 (5)\n-6BD40D   Flags               01 (1) 'Modification'\n-6BD40E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BD412 PAYLOAD\n-\n-6BDA05 DATA DESCRIPTOR       08074B50 (134695760)\n-6BDA09 CRC                   73C20F72 (1942097778)\n-6BDA0D Compressed Size       000005F3 (1523)\n-6BDA11 Uncompressed Size     000005F3 (1523)\n-\n-6BDA15 LOCAL HEADER #1988    04034B50 (67324752)\n-6BDA19 Extract Zip Spec      14 (20) '2.0'\n-6BDA1A Extract OS            00 (0) 'MS-DOS'\n-6BDA1B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BDA1D Compression Method    0000 (0) 'Stored'\n-6BDA1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BDA23 CRC                   00000000 (0)\n-6BDA27 Compressed Size       00000000 (0)\n-6BDA2B Uncompressed Size     00000000 (0)\n-6BDA2F Filename Length       0048 (72)\n-6BDA31 Extra Length          0009 (9)\n-6BDA33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BDA33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BDA7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BDA7D   Length              0005 (5)\n-6BDA7F   Flags               01 (1) 'Modification'\n-6BDA80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BDA84 PAYLOAD\n-\n-6BE0FA DATA DESCRIPTOR       08074B50 (134695760)\n-6BE0FE CRC                   51EB89D1 (1374390737)\n-6BE102 Compressed Size       00000676 (1654)\n-6BE106 Uncompressed Size     00000676 (1654)\n-\n-6BE10A LOCAL HEADER #1989    04034B50 (67324752)\n-6BE10E Extract Zip Spec      14 (20) '2.0'\n-6BE10F Extract OS            00 (0) 'MS-DOS'\n-6BE110 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BE112 Compression Method    0000 (0) 'Stored'\n-6BE114 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BE118 CRC                   00000000 (0)\n-6BE11C Compressed Size       00000000 (0)\n-6BE120 Uncompressed Size     00000000 (0)\n-6BE124 Filename Length       0045 (69)\n-6BE126 Extra Length          0009 (9)\n-6BE128 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BE128: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BE16D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BE16F   Length              0005 (5)\n-6BE171   Flags               01 (1) 'Modification'\n-6BE172   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BE176 PAYLOAD\n-\n-6BE78B DATA DESCRIPTOR       08074B50 (134695760)\n-6BE78F CRC                   DBD89AB9 (3688405689)\n-6BE793 Compressed Size       00000615 (1557)\n-6BE797 Uncompressed Size     00000615 (1557)\n-\n-6BE79B LOCAL HEADER #1990    04034B50 (67324752)\n-6BE79F Extract Zip Spec      14 (20) '2.0'\n-6BE7A0 Extract OS            00 (0) 'MS-DOS'\n-6BE7A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BE7A3 Compression Method    0000 (0) 'Stored'\n-6BE7A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BE7A9 CRC                   00000000 (0)\n-6BE7AD Compressed Size       00000000 (0)\n-6BE7B1 Uncompressed Size     00000000 (0)\n-6BE7B5 Filename Length       0049 (73)\n-6BE7B7 Extra Length          0009 (9)\n-6BE7B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BE7B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BE802 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BE804   Length              0005 (5)\n-6BE806   Flags               01 (1) 'Modification'\n-6BE807   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BE80B PAYLOAD\n-\n-6BEDC7 DATA DESCRIPTOR       08074B50 (134695760)\n-6BEDCB CRC                   608B08E5 (1619724517)\n-6BEDCF Compressed Size       000005BC (1468)\n-6BEDD3 Uncompressed Size     000005BC (1468)\n-\n-6BEDD7 LOCAL HEADER #1991    04034B50 (67324752)\n-6BEDDB Extract Zip Spec      14 (20) '2.0'\n-6BEDDC Extract OS            00 (0) 'MS-DOS'\n-6BEDDD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BEDDF Compression Method    0000 (0) 'Stored'\n-6BEDE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BEDE5 CRC                   00000000 (0)\n-6BEDE9 Compressed Size       00000000 (0)\n-6BEDED Uncompressed Size     00000000 (0)\n-6BEDF1 Filename Length       0049 (73)\n-6BEDF3 Extra Length          0009 (9)\n-6BEDF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BEDF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BEE3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BEE40   Length              0005 (5)\n-6BEE42   Flags               01 (1) 'Modification'\n-6BEE43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BEE47 PAYLOAD\n-\n-6BF490 DATA DESCRIPTOR       08074B50 (134695760)\n-6BF494 CRC                   86844A74 (2256816756)\n-6BF498 Compressed Size       00000649 (1609)\n-6BF49C Uncompressed Size     00000649 (1609)\n-\n-6BF4A0 LOCAL HEADER #1992    04034B50 (67324752)\n-6BF4A4 Extract Zip Spec      14 (20) '2.0'\n-6BF4A5 Extract OS            00 (0) 'MS-DOS'\n-6BF4A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BF4A8 Compression Method    0000 (0) 'Stored'\n-6BF4AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BF4AE CRC                   00000000 (0)\n-6BF4B2 Compressed Size       00000000 (0)\n-6BF4B6 Uncompressed Size     00000000 (0)\n-6BF4BA Filename Length       004C (76)\n-6BF4BC Extra Length          0009 (9)\n-6BF4BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BF4BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BF50A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BF50C   Length              0005 (5)\n-6BF50E   Flags               01 (1) 'Modification'\n-6BF50F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BF513 PAYLOAD\n-\n-6BFCEC DATA DESCRIPTOR       08074B50 (134695760)\n-6BFCF0 CRC                   1702371E (386021150)\n-6BFCF4 Compressed Size       000007D9 (2009)\n-6BFCF8 Uncompressed Size     000007D9 (2009)\n-\n-6BFCFC LOCAL HEADER #1993    04034B50 (67324752)\n-6BFD00 Extract Zip Spec      14 (20) '2.0'\n-6BFD01 Extract OS            00 (0) 'MS-DOS'\n-6BFD02 General Purpose Flag  0000 (0)\n-6BFD04 Compression Method    0000 (0) 'Stored'\n-6BFD06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BFD0A CRC                   00000000 (0)\n-6BFD0E Compressed Size       00000000 (0)\n-6BFD12 Uncompressed Size     00000000 (0)\n-6BFD16 Filename Length       001C (28)\n-6BFD18 Extra Length          0009 (9)\n-6BFD1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BFD1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BFD36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BFD38   Length              0005 (5)\n-6BFD3A   Flags               01 (1) 'Modification'\n-6BFD3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6BFD3F LOCAL HEADER #1994    04034B50 (67324752)\n-6BFD43 Extract Zip Spec      14 (20) '2.0'\n-6BFD44 Extract OS            00 (0) 'MS-DOS'\n-6BFD45 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6BFD47 Compression Method    0000 (0) 'Stored'\n-6BFD49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6BFD4D CRC                   00000000 (0)\n-6BFD51 Compressed Size       00000000 (0)\n-6BFD55 Uncompressed Size     00000000 (0)\n-6BFD59 Filename Length       0030 (48)\n-6BFD5B Extra Length          0009 (9)\n-6BFD5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6BFD5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6BFD8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6BFD8F   Length              0005 (5)\n-6BFD91   Flags               01 (1) 'Modification'\n-6BFD92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6BFD96 PAYLOAD\n-\n-6C03FE DATA DESCRIPTOR       08074B50 (134695760)\n-6C0402 CRC                   9FA19E67 (2678169191)\n-6C0406 Compressed Size       00000668 (1640)\n-6C040A Uncompressed Size     00000668 (1640)\n-\n-6C040E LOCAL HEADER #1995    04034B50 (67324752)\n-6C0412 Extract Zip Spec      14 (20) '2.0'\n-6C0413 Extract OS            00 (0) 'MS-DOS'\n-6C0414 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C0416 Compression Method    0000 (0) 'Stored'\n-6C0418 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C041C CRC                   00000000 (0)\n-6C0420 Compressed Size       00000000 (0)\n-6C0424 Uncompressed Size     00000000 (0)\n-6C0428 Filename Length       002B (43)\n-6C042A Extra Length          0009 (9)\n-6C042C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C042C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C0457 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C0459   Length              0005 (5)\n-6C045B   Flags               01 (1) 'Modification'\n-6C045C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C0460 PAYLOAD\n-\n-6C0A43 DATA DESCRIPTOR       08074B50 (134695760)\n-6C0A47 CRC                   00116B33 (1141555)\n-6C0A4B Compressed Size       000005E3 (1507)\n-6C0A4F Uncompressed Size     000005E3 (1507)\n-\n-6C0A53 LOCAL HEADER #1996    04034B50 (67324752)\n-6C0A57 Extract Zip Spec      14 (20) '2.0'\n-6C0A58 Extract OS            00 (0) 'MS-DOS'\n-6C0A59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C0A5B Compression Method    0000 (0) 'Stored'\n-6C0A5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C0A61 CRC                   00000000 (0)\n-6C0A65 Compressed Size       00000000 (0)\n-6C0A69 Uncompressed Size     00000000 (0)\n-6C0A6D Filename Length       002A (42)\n-6C0A6F Extra Length          0009 (9)\n-6C0A71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C0A71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C0A9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C0A9D   Length              0005 (5)\n-6C0A9F   Flags               01 (1) 'Modification'\n-6C0AA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C0AA4 PAYLOAD\n-\n-6C0F1D DATA DESCRIPTOR       08074B50 (134695760)\n-6C0F21 CRC                   767F730D (1988064013)\n-6C0F25 Compressed Size       00000479 (1145)\n-6C0F29 Uncompressed Size     00000479 (1145)\n-\n-6C0F2D LOCAL HEADER #1997    04034B50 (67324752)\n-6C0F31 Extract Zip Spec      14 (20) '2.0'\n-6C0F32 Extract OS            00 (0) 'MS-DOS'\n-6C0F33 General Purpose Flag  0000 (0)\n-6C0F35 Compression Method    0000 (0) 'Stored'\n-6C0F37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C0F3B CRC                   00000000 (0)\n-6C0F3F Compressed Size       00000000 (0)\n-6C0F43 Uncompressed Size     00000000 (0)\n-6C0F47 Filename Length       0023 (35)\n-6C0F49 Extra Length          0009 (9)\n-6C0F4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C0F4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C0F6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C0F70   Length              0005 (5)\n-6C0F72   Flags               01 (1) 'Modification'\n-6C0F73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C0F77 LOCAL HEADER #1998    04034B50 (67324752)\n-6C0F7B Extract Zip Spec      14 (20) '2.0'\n-6C0F7C Extract OS            00 (0) 'MS-DOS'\n-6C0F7D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C0F7F Compression Method    0000 (0) 'Stored'\n-6C0F81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C0F85 CRC                   00000000 (0)\n-6C0F89 Compressed Size       00000000 (0)\n-6C0F8D Uncompressed Size     00000000 (0)\n-6C0F91 Filename Length       0038 (56)\n-6C0F93 Extra Length          0009 (9)\n-6C0F95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C0F95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C0FCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C0FCF   Length              0005 (5)\n-6C0FD1   Flags               01 (1) 'Modification'\n-6C0FD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C0FD6 PAYLOAD\n-\n-6C22C0 DATA DESCRIPTOR       08074B50 (134695760)\n-6C22C4 CRC                   C93175C4 (3375461828)\n-6C22C8 Compressed Size       000012EA (4842)\n-6C22CC Uncompressed Size     000012EA (4842)\n-\n-6C22D0 LOCAL HEADER #1999    04034B50 (67324752)\n-6C22D4 Extract Zip Spec      14 (20) '2.0'\n-6C22D5 Extract OS            00 (0) 'MS-DOS'\n-6C22D6 General Purpose Flag  0000 (0)\n-6C22D8 Compression Method    0000 (0) 'Stored'\n-6C22DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C22DE CRC                   00000000 (0)\n-6C22E2 Compressed Size       00000000 (0)\n-6C22E6 Uncompressed Size     00000000 (0)\n-6C22EA Filename Length       0024 (36)\n-6C22EC Extra Length          0009 (9)\n-6C22EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C22EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C2312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C2314   Length              0005 (5)\n-6C2316   Flags               01 (1) 'Modification'\n-6C2317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C231B LOCAL HEADER #2000    04034B50 (67324752)\n-6C231F Extract Zip Spec      14 (20) '2.0'\n-6C2320 Extract OS            00 (0) 'MS-DOS'\n-6C2321 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C2323 Compression Method    0000 (0) 'Stored'\n-6C2325 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C2329 CRC                   00000000 (0)\n-6C232D Compressed Size       00000000 (0)\n-6C2331 Uncompressed Size     00000000 (0)\n-6C2335 Filename Length       003B (59)\n-6C2337 Extra Length          0009 (9)\n-6C2339 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C2339: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C2374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C2376   Length              0005 (5)\n-6C2378   Flags               01 (1) 'Modification'\n-6C2379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C237D PAYLOAD\n-\n-6C2B53 DATA DESCRIPTOR       08074B50 (134695760)\n-6C2B57 CRC                   1D7B340C (494613516)\n-6C2B5B Compressed Size       000007D6 (2006)\n-6C2B5F Uncompressed Size     000007D6 (2006)\n-\n-6C2B63 LOCAL HEADER #2001    04034B50 (67324752)\n-6C2B67 Extract Zip Spec      14 (20) '2.0'\n-6C2B68 Extract OS            00 (0) 'MS-DOS'\n-6C2B69 General Purpose Flag  0000 (0)\n-6C2B6B Compression Method    0000 (0) 'Stored'\n-6C2B6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C2B71 CRC                   00000000 (0)\n-6C2B75 Compressed Size       00000000 (0)\n-6C2B79 Uncompressed Size     00000000 (0)\n-6C2B7D Filename Length       0030 (48)\n-6C2B7F Extra Length          0009 (9)\n-6C2B81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C2B81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C2BB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C2BB3   Length              0005 (5)\n-6C2BB5   Flags               01 (1) 'Modification'\n-6C2BB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C2BBA LOCAL HEADER #2002    04034B50 (67324752)\n-6C2BBE Extract Zip Spec      14 (20) '2.0'\n-6C2BBF Extract OS            00 (0) 'MS-DOS'\n-6C2BC0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C2BC2 Compression Method    0000 (0) 'Stored'\n-6C2BC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C2BC8 CRC                   00000000 (0)\n-6C2BCC Compressed Size       00000000 (0)\n-6C2BD0 Uncompressed Size     00000000 (0)\n-6C2BD4 Filename Length       0040 (64)\n-6C2BD6 Extra Length          0009 (9)\n-6C2BD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C2BD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C2C18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C2C1A   Length              0005 (5)\n-6C2C1C   Flags               01 (1) 'Modification'\n-6C2C1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C2C21 PAYLOAD\n-\n-6C31E4 DATA DESCRIPTOR       08074B50 (134695760)\n-6C31E8 CRC                   5A6ECC92 (1517210770)\n-6C31EC Compressed Size       000005C3 (1475)\n-6C31F0 Uncompressed Size     000005C3 (1475)\n-\n-6C31F4 LOCAL HEADER #2003    04034B50 (67324752)\n-6C31F8 Extract Zip Spec      14 (20) '2.0'\n-6C31F9 Extract OS            00 (0) 'MS-DOS'\n-6C31FA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C31FC Compression Method    0000 (0) 'Stored'\n-6C31FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C3202 CRC                   00000000 (0)\n-6C3206 Compressed Size       00000000 (0)\n-6C320A Uncompressed Size     00000000 (0)\n-6C320E Filename Length       003F (63)\n-6C3210 Extra Length          0009 (9)\n-6C3212 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C3212: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C3251 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C3253   Length              0005 (5)\n-6C3255   Flags               01 (1) 'Modification'\n-6C3256   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C325A PAYLOAD\n-\n-6C6F99 DATA DESCRIPTOR       08074B50 (134695760)\n-6C6F9D CRC                   B191ADCB (2979114443)\n-6C6FA1 Compressed Size       00003D3F (15679)\n-6C6FA5 Uncompressed Size     00003D3F (15679)\n-\n-6C6FA9 LOCAL HEADER #2004    04034B50 (67324752)\n-6C6FAD Extract Zip Spec      14 (20) '2.0'\n-6C6FAE Extract OS            00 (0) 'MS-DOS'\n-6C6FAF General Purpose Flag  0000 (0)\n-6C6FB1 Compression Method    0000 (0) 'Stored'\n-6C6FB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C6FB7 CRC                   00000000 (0)\n-6C6FBB Compressed Size       00000000 (0)\n-6C6FBF Uncompressed Size     00000000 (0)\n-6C6FC3 Filename Length       0015 (21)\n-6C6FC5 Extra Length          0009 (9)\n-6C6FC7 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C6FC7: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C6FDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C6FDE   Length              0005 (5)\n-6C6FE0   Flags               01 (1) 'Modification'\n-6C6FE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C6FE5 LOCAL HEADER #2005    04034B50 (67324752)\n-6C6FE9 Extract Zip Spec      14 (20) '2.0'\n-6C6FEA Extract OS            00 (0) 'MS-DOS'\n-6C6FEB General Purpose Flag  0000 (0)\n-6C6FED Compression Method    0000 (0) 'Stored'\n-6C6FEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C6FF3 CRC                   00000000 (0)\n-6C6FF7 Compressed Size       00000000 (0)\n-6C6FFB Uncompressed Size     00000000 (0)\n-6C6FFF Filename Length       0019 (25)\n-6C7001 Extra Length          0009 (9)\n-6C7003 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C7003: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C701C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C701E   Length              0005 (5)\n-6C7020   Flags               01 (1) 'Modification'\n-6C7021   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C7025 LOCAL HEADER #2006    04034B50 (67324752)\n-6C7029 Extract Zip Spec      14 (20) '2.0'\n-6C702A Extract OS            00 (0) 'MS-DOS'\n-6C702B General Purpose Flag  0000 (0)\n-6C702D Compression Method    0000 (0) 'Stored'\n-6C702F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C7033 CRC                   00000000 (0)\n-6C7037 Compressed Size       00000000 (0)\n-6C703B Uncompressed Size     00000000 (0)\n-6C703F Filename Length       0022 (34)\n-6C7041 Extra Length          0009 (9)\n-6C7043 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C7043: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C7065 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C7067   Length              0005 (5)\n-6C7069   Flags               01 (1) 'Modification'\n-6C706A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C706E LOCAL HEADER #2007    04034B50 (67324752)\n-6C7072 Extract Zip Spec      14 (20) '2.0'\n-6C7073 Extract OS            00 (0) 'MS-DOS'\n-6C7074 General Purpose Flag  0000 (0)\n-6C7076 Compression Method    0000 (0) 'Stored'\n-6C7078 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C707C CRC                   00000000 (0)\n-6C7080 Compressed Size       00000000 (0)\n-6C7084 Uncompressed Size     00000000 (0)\n-6C7088 Filename Length       0029 (41)\n-6C708A Extra Length          0009 (9)\n-6C708C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C708C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C70B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C70B7   Length              0005 (5)\n-6C70B9   Flags               01 (1) 'Modification'\n-6C70BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6C70BE LOCAL HEADER #2008    04034B50 (67324752)\n-6C70C2 Extract Zip Spec      14 (20) '2.0'\n-6C70C3 Extract OS            00 (0) 'MS-DOS'\n-6C70C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C70C6 Compression Method    0000 (0) 'Stored'\n-6C70C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C70CC CRC                   00000000 (0)\n-6C70D0 Compressed Size       00000000 (0)\n-6C70D4 Uncompressed Size     00000000 (0)\n-6C70D8 Filename Length       003C (60)\n-6C70DA Extra Length          0009 (9)\n-6C70DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C70DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C7118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C711A   Length              0005 (5)\n-6C711C   Flags               01 (1) 'Modification'\n-6C711D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C7121 PAYLOAD\n-\n-6C8F10 DATA DESCRIPTOR       08074B50 (134695760)\n-6C8F14 CRC                   D1A0D101 (3516977409)\n-6C8F18 Compressed Size       00001DEF (7663)\n-6C8F1C Uncompressed Size     00001DEF (7663)\n-\n-6C8F20 LOCAL HEADER #2009    04034B50 (67324752)\n-6C8F24 Extract Zip Spec      14 (20) '2.0'\n-6C8F25 Extract OS            00 (0) 'MS-DOS'\n-6C8F26 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6C8F28 Compression Method    0000 (0) 'Stored'\n-6C8F2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6C8F2E CRC                   00000000 (0)\n-6C8F32 Compressed Size       00000000 (0)\n-6C8F36 Uncompressed Size     00000000 (0)\n-6C8F3A Filename Length       0044 (68)\n-6C8F3C Extra Length          0009 (9)\n-6C8F3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6C8F3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6C8F82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6C8F84   Length              0005 (5)\n-6C8F86   Flags               01 (1) 'Modification'\n-6C8F87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6C8F8B PAYLOAD\n-\n-6CA13D DATA DESCRIPTOR       08074B50 (134695760)\n-6CA141 CRC                   DF3DF190 (3745378704)\n-6CA145 Compressed Size       000011B2 (4530)\n-6CA149 Uncompressed Size     000011B2 (4530)\n-\n-6CA14D LOCAL HEADER #2010    04034B50 (67324752)\n-6CA151 Extract Zip Spec      14 (20) '2.0'\n-6CA152 Extract OS            00 (0) 'MS-DOS'\n-6CA153 General Purpose Flag  0000 (0)\n-6CA155 Compression Method    0000 (0) 'Stored'\n-6CA157 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CA15B CRC                   00000000 (0)\n-6CA15F Compressed Size       00000000 (0)\n-6CA163 Uncompressed Size     00000000 (0)\n-6CA167 Filename Length       0009 (9)\n-6CA169 Extra Length          0009 (9)\n-6CA16B Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CA16B: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-6CA174 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CA176   Length              0005 (5)\n-6CA178   Flags               01 (1) 'Modification'\n-6CA179   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CA17D LOCAL HEADER #2011    04034B50 (67324752)\n-6CA181 Extract Zip Spec      14 (20) '2.0'\n-6CA182 Extract OS            00 (0) 'MS-DOS'\n-6CA183 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CA185 Compression Method    0000 (0) 'Stored'\n-6CA187 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CA18B CRC                   00000000 (0)\n-6CA18F Compressed Size       00000000 (0)\n-6CA193 Uncompressed Size     00000000 (0)\n-6CA197 Filename Length       001E (30)\n-6CA199 Extra Length          0009 (9)\n-6CA19B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CA19B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CA1B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CA1BB   Length              0005 (5)\n-6CA1BD   Flags               01 (1) 'Modification'\n-6CA1BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-6CA1C2 PAYLOAD\n-\n-6CB36A DATA DESCRIPTOR       08074B50 (134695760)\n-6CB36E CRC                   94CE4031 (2496544817)\n-6CB372 Compressed Size       000011A8 (4520)\n-6CB376 Uncompressed Size     000011A8 (4520)\n-\n-6CB37A CENTRAL HEADER #1     02014B50 (33639248)\n-6CB37E Created Zip Spec      14 (20) '2.0'\n-6CB37F Created OS            00 (0) 'MS-DOS'\n-6CB380 Extract Zip Spec      14 (20) '2.0'\n-6CB381 Extract OS            00 (0) 'MS-DOS'\n-6CB382 General Purpose Flag  0000 (0)\n-6CB384 Compression Method    0000 (0) 'Stored'\n-6CB386 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB38A CRC                   00000000 (0)\n-6CB38E Compressed Size       00000000 (0)\n-6CB392 Uncompressed Size     00000000 (0)\n-6CB396 Filename Length       0009 (9)\n-6CB398 Extra Length          0009 (9)\n-6CB39A Comment Length        0000 (0)\n-6CB39C Disk Start            0000 (0)\n-6CB39E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB3A0 Ext File Attributes   00000000 (0)\n-6CB3A4 Local Header Offset   00000000 (0)\n-6CB3A8 Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB3A8: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB3B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB3B3   Length              0005 (5)\n-6CB3B5   Flags               01 (1) 'Modification'\n-6CB3B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB3BA CENTRAL HEADER #2     02014B50 (33639248)\n-6CB3BE Created Zip Spec      14 (20) '2.0'\n-6CB3BF Created OS            00 (0) 'MS-DOS'\n-6CB3C0 Extract Zip Spec      14 (20) '2.0'\n-6CB3C1 Extract OS            00 (0) 'MS-DOS'\n-6CB3C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB3C4 Compression Method    0000 (0) 'Stored'\n-6CB3C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB3CA CRC                   638B5CA1 (1670077601)\n-6CB3CE Compressed Size       0000FB92 (64402)\n-6CB3D2 Uncompressed Size     0000FB92 (64402)\n-6CB3D6 Filename Length       0015 (21)\n-6CB3D8 Extra Length          0009 (9)\n-6CB3DA Comment Length        0000 (0)\n-6CB3DC Disk Start            0000 (0)\n-6CB3DE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB3E0 Ext File Attributes   00000000 (0)\n-6CB3E4 Local Header Offset   00000030 (48)\n-6CB3E8 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB3E8: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB3FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB3FF   Length              0005 (5)\n-6CB401   Flags               01 (1) 'Modification'\n-6CB402   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB406 CENTRAL HEADER #3     02014B50 (33639248)\n-6CB40A Created Zip Spec      14 (20) '2.0'\n-6CB40B Created OS            00 (0) 'MS-DOS'\n-6CB40C Extract Zip Spec      14 (20) '2.0'\n-6CB40D Extract OS            00 (0) 'MS-DOS'\n-6CB40E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB410 Compression Method    0000 (0) 'Stored'\n-6CB412 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB416 CRC                   86E2B4B4 (2263004340)\n-6CB41A Compressed Size       00002C5E (11358)\n-6CB41E Uncompressed Size     00002C5E (11358)\n-6CB422 Filename Length       0010 (16)\n-6CB424 Extra Length          0009 (9)\n-6CB426 Comment Length        0000 (0)\n-6CB428 Disk Start            0000 (0)\n-6CB42A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB42C Ext File Attributes   00000000 (0)\n-6CB430 Local Header Offset   0000FC0E (64526)\n-6CB434 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB434: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB444 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB446   Length              0005 (5)\n-6CB448   Flags               01 (1) 'Modification'\n-6CB449   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB44D CENTRAL HEADER #4     02014B50 (33639248)\n-6CB451 Created Zip Spec      14 (20) '2.0'\n-6CB452 Created OS            00 (0) 'MS-DOS'\n-6CB453 Extract Zip Spec      14 (20) '2.0'\n-6CB454 Extract OS            00 (0) 'MS-DOS'\n-6CB455 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB457 Compression Method    0000 (0) 'Stored'\n-6CB459 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB45D CRC                   EE027FB2 (3993141170)\n-6CB461 Compressed Size       00000019 (25)\n-6CB465 Uncompressed Size     00000019 (25)\n-6CB469 Filename Length       0014 (20)\n-6CB46B Extra Length          0009 (9)\n-6CB46D Comment Length        0000 (0)\n-6CB46F Disk Start            0000 (0)\n-6CB471 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB473 Ext File Attributes   00000000 (0)\n-6CB477 Local Header Offset   000128B3 (75955)\n-6CB47B Filename              'XXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB47B: Filename 'XXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB48F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB491   Length              0005 (5)\n-6CB493   Flags               01 (1) 'Modification'\n-6CB494   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB498 CENTRAL HEADER #5     02014B50 (33639248)\n-6CB49C Created Zip Spec      14 (20) '2.0'\n-6CB49D Created OS            00 (0) 'MS-DOS'\n-6CB49E Extract Zip Spec      14 (20) '2.0'\n-6CB49F Extract OS            00 (0) 'MS-DOS'\n-6CB4A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB4A2 Compression Method    0000 (0) 'Stored'\n-6CB4A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB4A8 CRC                   8FD5DBBD (2413157309)\n-6CB4AC Compressed Size       000000A6 (166)\n-6CB4B0 Uncompressed Size     000000A6 (166)\n-6CB4B4 Filename Length       000F (15)\n-6CB4B6 Extra Length          0009 (9)\n-6CB4B8 Comment Length        0000 (0)\n-6CB4BA Disk Start            0000 (0)\n-6CB4BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB4BE Ext File Attributes   00000000 (0)\n-6CB4C2 Local Header Offset   00012917 (76055)\n-6CB4C6 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB4C6: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB4D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB4D7   Length              0005 (5)\n-6CB4D9   Flags               01 (1) 'Modification'\n-6CB4DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB4DE CENTRAL HEADER #6     02014B50 (33639248)\n-6CB4E2 Created Zip Spec      14 (20) '2.0'\n-6CB4E3 Created OS            00 (0) 'MS-DOS'\n-6CB4E4 Extract Zip Spec      14 (20) '2.0'\n-6CB4E5 Extract OS            00 (0) 'MS-DOS'\n-6CB4E6 General Purpose Flag  0000 (0)\n-6CB4E8 Compression Method    0000 (0) 'Stored'\n-6CB4EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB4EE CRC                   00000000 (0)\n-6CB4F2 Compressed Size       00000000 (0)\n-6CB4F6 Uncompressed Size     00000000 (0)\n-6CB4FA Filename Length       0012 (18)\n-6CB4FC Extra Length          0009 (9)\n-6CB4FE Comment Length        0000 (0)\n-6CB500 Disk Start            0000 (0)\n-6CB502 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB504 Ext File Attributes   00000000 (0)\n-6CB508 Local Header Offset   00012A03 (76291)\n-6CB50C Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB50C: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB51E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB520   Length              0005 (5)\n-6CB522   Flags               01 (1) 'Modification'\n-6CB523   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB527 CENTRAL HEADER #7     02014B50 (33639248)\n-6CB52B Created Zip Spec      14 (20) '2.0'\n-6CB52C Created OS            00 (0) 'MS-DOS'\n-6CB52D Extract Zip Spec      14 (20) '2.0'\n-6CB52E Extract OS            00 (0) 'MS-DOS'\n-6CB52F General Purpose Flag  0000 (0)\n-6CB531 Compression Method    0000 (0) 'Stored'\n-6CB533 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB537 CRC                   00000000 (0)\n-6CB53B Compressed Size       00000000 (0)\n-6CB53F Uncompressed Size     00000000 (0)\n-6CB543 Filename Length       0016 (22)\n-6CB545 Extra Length          0009 (9)\n-6CB547 Comment Length        0000 (0)\n-6CB549 Disk Start            0000 (0)\n-6CB54B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB54D Ext File Attributes   00000000 (0)\n-6CB551 Local Header Offset   00012A3C (76348)\n-6CB555 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB555: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB56B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB56D   Length              0005 (5)\n-6CB56F   Flags               01 (1) 'Modification'\n-6CB570   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB574 CENTRAL HEADER #8     02014B50 (33639248)\n-6CB578 Created Zip Spec      14 (20) '2.0'\n-6CB579 Created OS            00 (0) 'MS-DOS'\n-6CB57A Extract Zip Spec      14 (20) '2.0'\n-6CB57B Extract OS            00 (0) 'MS-DOS'\n-6CB57C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB57E Compression Method    0000 (0) 'Stored'\n-6CB580 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB584 CRC                   628AF130 (1653272880)\n-6CB588 Compressed Size       00000B7F (2943)\n-6CB58C Uncompressed Size     00000B7F (2943)\n-6CB590 Filename Length       001D (29)\n-6CB592 Extra Length          0009 (9)\n-6CB594 Comment Length        0000 (0)\n-6CB596 Disk Start            0000 (0)\n-6CB598 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB59A Ext File Attributes   00000000 (0)\n-6CB59E Local Header Offset   00012A79 (76409)\n-6CB5A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB5A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB5BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB5C1   Length              0005 (5)\n-6CB5C3   Flags               01 (1) 'Modification'\n-6CB5C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB5C8 CENTRAL HEADER #9     02014B50 (33639248)\n-6CB5CC Created Zip Spec      14 (20) '2.0'\n-6CB5CD Created OS            00 (0) 'MS-DOS'\n-6CB5CE Extract Zip Spec      14 (20) '2.0'\n-6CB5CF Extract OS            00 (0) 'MS-DOS'\n-6CB5D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB5D2 Compression Method    0000 (0) 'Stored'\n-6CB5D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB5D8 CRC                   DF2293D8 (3743585240)\n-6CB5DC Compressed Size       00000340 (832)\n-6CB5E0 Uncompressed Size     00000340 (832)\n-6CB5E4 Filename Length       0020 (32)\n-6CB5E6 Extra Length          0009 (9)\n-6CB5E8 Comment Length        0000 (0)\n-6CB5EA Disk Start            0000 (0)\n-6CB5EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB5EE Ext File Attributes   00000000 (0)\n-6CB5F2 Local Header Offset   0001364C (79436)\n-6CB5F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB5F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB616 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB618   Length              0005 (5)\n-6CB61A   Flags               01 (1) 'Modification'\n-6CB61B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB61F CENTRAL HEADER #10    02014B50 (33639248)\n-6CB623 Created Zip Spec      14 (20) '2.0'\n-6CB624 Created OS            00 (0) 'MS-DOS'\n-6CB625 Extract Zip Spec      14 (20) '2.0'\n-6CB626 Extract OS            00 (0) 'MS-DOS'\n-6CB627 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB629 Compression Method    0000 (0) 'Stored'\n-6CB62B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB62F CRC                   0F1B3503 (253441283)\n-6CB633 Compressed Size       000004AC (1196)\n-6CB637 Uncompressed Size     000004AC (1196)\n-6CB63B Filename Length       001F (31)\n-6CB63D Extra Length          0009 (9)\n-6CB63F Comment Length        0000 (0)\n-6CB641 Disk Start            0000 (0)\n-6CB643 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB645 Ext File Attributes   00000000 (0)\n-6CB649 Local Header Offset   000139E3 (80355)\n-6CB64D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB64D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB66C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB66E   Length              0005 (5)\n-6CB670   Flags               01 (1) 'Modification'\n-6CB671   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB675 CENTRAL HEADER #11    02014B50 (33639248)\n-6CB679 Created Zip Spec      14 (20) '2.0'\n-6CB67A Created OS            00 (0) 'MS-DOS'\n-6CB67B Extract Zip Spec      14 (20) '2.0'\n-6CB67C Extract OS            00 (0) 'MS-DOS'\n-6CB67D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB67F Compression Method    0000 (0) 'Stored'\n-6CB681 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB685 CRC                   CD3B8ABC (3443231420)\n-6CB689 Compressed Size       000007D2 (2002)\n-6CB68D Uncompressed Size     000007D2 (2002)\n-6CB691 Filename Length       001F (31)\n-6CB693 Extra Length          0009 (9)\n-6CB695 Comment Length        0000 (0)\n-6CB697 Disk Start            0000 (0)\n-6CB699 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB69B Ext File Attributes   00000000 (0)\n-6CB69F Local Header Offset   00013EE5 (81637)\n-6CB6A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB6A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB6C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB6C4   Length              0005 (5)\n-6CB6C6   Flags               01 (1) 'Modification'\n-6CB6C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB6CB CENTRAL HEADER #12    02014B50 (33639248)\n-6CB6CF Created Zip Spec      14 (20) '2.0'\n-6CB6D0 Created OS            00 (0) 'MS-DOS'\n-6CB6D1 Extract Zip Spec      14 (20) '2.0'\n-6CB6D2 Extract OS            00 (0) 'MS-DOS'\n-6CB6D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB6D5 Compression Method    0000 (0) 'Stored'\n-6CB6D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB6DB CRC                   B719070A (3071870730)\n-6CB6DF Compressed Size       00001481 (5249)\n-6CB6E3 Uncompressed Size     00001481 (5249)\n-6CB6E7 Filename Length       001E (30)\n-6CB6E9 Extra Length          0009 (9)\n-6CB6EB Comment Length        0000 (0)\n-6CB6ED Disk Start            0000 (0)\n-6CB6EF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB6F1 Ext File Attributes   00000000 (0)\n-6CB6F5 Local Header Offset   0001470D (83725)\n-6CB6F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB6F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB717 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB719   Length              0005 (5)\n-6CB71B   Flags               01 (1) 'Modification'\n-6CB71C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB720 CENTRAL HEADER #13    02014B50 (33639248)\n-6CB724 Created Zip Spec      14 (20) '2.0'\n-6CB725 Created OS            00 (0) 'MS-DOS'\n-6CB726 Extract Zip Spec      14 (20) '2.0'\n-6CB727 Extract OS            00 (0) 'MS-DOS'\n-6CB728 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB72A Compression Method    0000 (0) 'Stored'\n-6CB72C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB730 CRC                   DB70852A (3681584426)\n-6CB734 Compressed Size       00000663 (1635)\n-6CB738 Uncompressed Size     00000663 (1635)\n-6CB73C Filename Length       001D (29)\n-6CB73E Extra Length          0009 (9)\n-6CB740 Comment Length        0000 (0)\n-6CB742 Disk Start            0000 (0)\n-6CB744 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB746 Ext File Attributes   00000000 (0)\n-6CB74A Local Header Offset   00015BE3 (89059)\n-6CB74E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB74E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB76B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB76D   Length              0005 (5)\n-6CB76F   Flags               01 (1) 'Modification'\n-6CB770   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB774 CENTRAL HEADER #14    02014B50 (33639248)\n-6CB778 Created Zip Spec      14 (20) '2.0'\n-6CB779 Created OS            00 (0) 'MS-DOS'\n-6CB77A Extract Zip Spec      14 (20) '2.0'\n-6CB77B Extract OS            00 (0) 'MS-DOS'\n-6CB77C General Purpose Flag  0000 (0)\n-6CB77E Compression Method    0000 (0) 'Stored'\n-6CB780 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB784 CRC                   00000000 (0)\n-6CB788 Compressed Size       00000000 (0)\n-6CB78C Uncompressed Size     00000000 (0)\n-6CB790 Filename Length       0010 (16)\n-6CB792 Extra Length          0009 (9)\n-6CB794 Comment Length        0000 (0)\n-6CB796 Disk Start            0000 (0)\n-6CB798 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB79A Ext File Attributes   00000000 (0)\n-6CB79E Local Header Offset   0001629A (90778)\n-6CB7A2 Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB7A2: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB7B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB7B4   Length              0005 (5)\n-6CB7B6   Flags               01 (1) 'Modification'\n-6CB7B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB7BB CENTRAL HEADER #15    02014B50 (33639248)\n-6CB7BF Created Zip Spec      14 (20) '2.0'\n-6CB7C0 Created OS            00 (0) 'MS-DOS'\n-6CB7C1 Extract Zip Spec      14 (20) '2.0'\n-6CB7C2 Extract OS            00 (0) 'MS-DOS'\n-6CB7C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB7C5 Compression Method    0000 (0) 'Stored'\n-6CB7C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB7CB CRC                   E62522BB (3861193403)\n-6CB7CF Compressed Size       0001376F (79727)\n-6CB7D3 Uncompressed Size     0001376F (79727)\n-6CB7D7 Filename Length       0019 (25)\n-6CB7D9 Extra Length          0009 (9)\n-6CB7DB Comment Length        0000 (0)\n-6CB7DD Disk Start            0000 (0)\n-6CB7DF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB7E1 Ext File Attributes   00000000 (0)\n-6CB7E5 Local Header Offset   000162D1 (90833)\n-6CB7E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB7E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB802 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB804   Length              0005 (5)\n-6CB806   Flags               01 (1) 'Modification'\n-6CB807   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB80B CENTRAL HEADER #16    02014B50 (33639248)\n-6CB80F Created Zip Spec      14 (20) '2.0'\n-6CB810 Created OS            00 (0) 'MS-DOS'\n-6CB811 Extract Zip Spec      14 (20) '2.0'\n-6CB812 Extract OS            00 (0) 'MS-DOS'\n-6CB813 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB815 Compression Method    0000 (0) 'Stored'\n-6CB817 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB81B CRC                   7AAFE556 (2058347862)\n-6CB81F Compressed Size       00013DDB (81371)\n-6CB823 Uncompressed Size     00013DDB (81371)\n-6CB827 Filename Length       0012 (18)\n-6CB829 Extra Length          0009 (9)\n-6CB82B Comment Length        0000 (0)\n-6CB82D Disk Start            0000 (0)\n-6CB82F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB831 Ext File Attributes   00000000 (0)\n-6CB835 Local Header Offset   00029A90 (170640)\n-6CB839 Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB839: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB84B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB84D   Length              0005 (5)\n-6CB84F   Flags               01 (1) 'Modification'\n-6CB850   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB854 CENTRAL HEADER #17    02014B50 (33639248)\n-6CB858 Created Zip Spec      14 (20) '2.0'\n-6CB859 Created OS            00 (0) 'MS-DOS'\n-6CB85A Extract Zip Spec      14 (20) '2.0'\n-6CB85B Extract OS            00 (0) 'MS-DOS'\n-6CB85C General Purpose Flag  0000 (0)\n-6CB85E Compression Method    0000 (0) 'Stored'\n-6CB860 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB864 CRC                   00000000 (0)\n-6CB868 Compressed Size       00000000 (0)\n-6CB86C Uncompressed Size     00000000 (0)\n-6CB870 Filename Length       000F (15)\n-6CB872 Extra Length          0009 (9)\n-6CB874 Comment Length        0000 (0)\n-6CB876 Disk Start            0000 (0)\n-6CB878 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB87A Ext File Attributes   00000000 (0)\n-6CB87E Local Header Offset   0003D8B4 (252084)\n-6CB882 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB882: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB891 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB893   Length              0005 (5)\n-6CB895   Flags               01 (1) 'Modification'\n-6CB896   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB89A CENTRAL HEADER #18    02014B50 (33639248)\n-6CB89E Created Zip Spec      14 (20) '2.0'\n-6CB89F Created OS            00 (0) 'MS-DOS'\n-6CB8A0 Extract Zip Spec      14 (20) '2.0'\n-6CB8A1 Extract OS            00 (0) 'MS-DOS'\n-6CB8A2 General Purpose Flag  0000 (0)\n-6CB8A4 Compression Method    0000 (0) 'Stored'\n-6CB8A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB8AA CRC                   00000000 (0)\n-6CB8AE Compressed Size       00000000 (0)\n-6CB8B2 Uncompressed Size     00000000 (0)\n-6CB8B6 Filename Length       0018 (24)\n-6CB8B8 Extra Length          0009 (9)\n-6CB8BA Comment Length        0000 (0)\n-6CB8BC Disk Start            0000 (0)\n-6CB8BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB8C0 Ext File Attributes   00000000 (0)\n-6CB8C4 Local Header Offset   0003D8EA (252138)\n-6CB8C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB8C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB8E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB8E2   Length              0005 (5)\n-6CB8E4   Flags               01 (1) 'Modification'\n-6CB8E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB8E9 CENTRAL HEADER #19    02014B50 (33639248)\n-6CB8ED Created Zip Spec      14 (20) '2.0'\n-6CB8EE Created OS            00 (0) 'MS-DOS'\n-6CB8EF Extract Zip Spec      14 (20) '2.0'\n-6CB8F0 Extract OS            00 (0) 'MS-DOS'\n-6CB8F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB8F3 Compression Method    0000 (0) 'Stored'\n-6CB8F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB8F9 CRC                   19FFB665 (436188773)\n-6CB8FD Compressed Size       00000144 (324)\n-6CB901 Uncompressed Size     00000144 (324)\n-6CB905 Filename Length       003B (59)\n-6CB907 Extra Length          0009 (9)\n-6CB909 Comment Length        0000 (0)\n-6CB90B Disk Start            0000 (0)\n-6CB90D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB90F Ext File Attributes   00000000 (0)\n-6CB913 Local Header Offset   0003D929 (252201)\n-6CB917 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB917: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB952 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB954   Length              0005 (5)\n-6CB956   Flags               01 (1) 'Modification'\n-6CB957   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB95B CENTRAL HEADER #20    02014B50 (33639248)\n-6CB95F Created Zip Spec      14 (20) '2.0'\n-6CB960 Created OS            00 (0) 'MS-DOS'\n-6CB961 Extract Zip Spec      14 (20) '2.0'\n-6CB962 Extract OS            00 (0) 'MS-DOS'\n-6CB963 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB965 Compression Method    0000 (0) 'Stored'\n-6CB967 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB96B CRC                   7B0242B7 (2063745719)\n-6CB96F Compressed Size       000000C3 (195)\n-6CB973 Uncompressed Size     000000C3 (195)\n-6CB977 Filename Length       0041 (65)\n-6CB979 Extra Length          0009 (9)\n-6CB97B Comment Length        0000 (0)\n-6CB97D Disk Start            0000 (0)\n-6CB97F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB981 Ext File Attributes   00000000 (0)\n-6CB985 Local Header Offset   0003DADF (252639)\n-6CB989 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CB989: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CB9CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CB9CC   Length              0005 (5)\n-6CB9CE   Flags               01 (1) 'Modification'\n-6CB9CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CB9D3 CENTRAL HEADER #21    02014B50 (33639248)\n-6CB9D7 Created Zip Spec      14 (20) '2.0'\n-6CB9D8 Created OS            00 (0) 'MS-DOS'\n-6CB9D9 Extract Zip Spec      14 (20) '2.0'\n-6CB9DA Extract OS            00 (0) 'MS-DOS'\n-6CB9DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CB9DD Compression Method    0000 (0) 'Stored'\n-6CB9DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CB9E3 CRC                   23C5150B (600118539)\n-6CB9E7 Compressed Size       00000256 (598)\n-6CB9EB Uncompressed Size     00000256 (598)\n-6CB9EF Filename Length       005F (95)\n-6CB9F1 Extra Length          0009 (9)\n-6CB9F3 Comment Length        0000 (0)\n-6CB9F5 Disk Start            0000 (0)\n-6CB9F7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CB9F9 Ext File Attributes   00000000 (0)\n-6CB9FD Local Header Offset   0003DC1A (252954)\n-6CBA01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBA01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBA60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBA62   Length              0005 (5)\n-6CBA64   Flags               01 (1) 'Modification'\n-6CBA65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBA69 CENTRAL HEADER #22    02014B50 (33639248)\n-6CBA6D Created Zip Spec      14 (20) '2.0'\n-6CBA6E Created OS            00 (0) 'MS-DOS'\n-6CBA6F Extract Zip Spec      14 (20) '2.0'\n-6CBA70 Extract OS            00 (0) 'MS-DOS'\n-6CBA71 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBA73 Compression Method    0000 (0) 'Stored'\n-6CBA75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBA79 CRC                   DA7850A4 (3665318052)\n-6CBA7D Compressed Size       000000A3 (163)\n-6CBA81 Uncompressed Size     000000A3 (163)\n-6CBA85 Filename Length       0044 (68)\n-6CBA87 Extra Length          0009 (9)\n-6CBA89 Comment Length        0000 (0)\n-6CBA8B Disk Start            0000 (0)\n-6CBA8D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBA8F Ext File Attributes   00000000 (0)\n-6CBA93 Local Header Offset   0003DF06 (253702)\n-6CBA97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBA97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBADB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBADD   Length              0005 (5)\n-6CBADF   Flags               01 (1) 'Modification'\n-6CBAE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBAE4 CENTRAL HEADER #23    02014B50 (33639248)\n-6CBAE8 Created Zip Spec      14 (20) '2.0'\n-6CBAE9 Created OS            00 (0) 'MS-DOS'\n-6CBAEA Extract Zip Spec      14 (20) '2.0'\n-6CBAEB Extract OS            00 (0) 'MS-DOS'\n-6CBAEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBAEE Compression Method    0000 (0) 'Stored'\n-6CBAF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBAF4 CRC                   FDF4851E (4260660510)\n-6CBAF8 Compressed Size       00000313 (787)\n-6CBAFC Uncompressed Size     00000313 (787)\n-6CBB00 Filename Length       0041 (65)\n-6CBB02 Extra Length          0009 (9)\n-6CBB04 Comment Length        0000 (0)\n-6CBB06 Disk Start            0000 (0)\n-6CBB08 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBB0A Ext File Attributes   00000000 (0)\n-6CBB0E Local Header Offset   0003E024 (253988)\n-6CBB12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBB12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBB53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBB55   Length              0005 (5)\n-6CBB57   Flags               01 (1) 'Modification'\n-6CBB58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBB5C CENTRAL HEADER #24    02014B50 (33639248)\n-6CBB60 Created Zip Spec      14 (20) '2.0'\n-6CBB61 Created OS            00 (0) 'MS-DOS'\n-6CBB62 Extract Zip Spec      14 (20) '2.0'\n-6CBB63 Extract OS            00 (0) 'MS-DOS'\n-6CBB64 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBB66 Compression Method    0000 (0) 'Stored'\n-6CBB68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBB6C CRC                   558BF598 (1435235736)\n-6CBB70 Compressed Size       000003FF (1023)\n-6CBB74 Uncompressed Size     000003FF (1023)\n-6CBB78 Filename Length       0054 (84)\n-6CBB7A Extra Length          0009 (9)\n-6CBB7C Comment Length        0000 (0)\n-6CBB7E Disk Start            0000 (0)\n-6CBB80 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBB82 Ext File Attributes   00000000 (0)\n-6CBB86 Local Header Offset   0003E3AF (254895)\n-6CBB8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBB8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBBDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBBE0   Length              0005 (5)\n-6CBBE2   Flags               01 (1) 'Modification'\n-6CBBE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBBE7 CENTRAL HEADER #25    02014B50 (33639248)\n-6CBBEB Created Zip Spec      14 (20) '2.0'\n-6CBBEC Created OS            00 (0) 'MS-DOS'\n-6CBBED Extract Zip Spec      14 (20) '2.0'\n-6CBBEE Extract OS            00 (0) 'MS-DOS'\n-6CBBEF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBBF1 Compression Method    0000 (0) 'Stored'\n-6CBBF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBBF7 CRC                   4749E288 (1196024456)\n-6CBBFB Compressed Size       000000D6 (214)\n-6CBBFF Uncompressed Size     000000D6 (214)\n-6CBC03 Filename Length       004A (74)\n-6CBC05 Extra Length          0009 (9)\n-6CBC07 Comment Length        0000 (0)\n-6CBC09 Disk Start            0000 (0)\n-6CBC0B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBC0D Ext File Attributes   00000000 (0)\n-6CBC11 Local Header Offset   0003E839 (256057)\n-6CBC15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBC15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBC5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBC61   Length              0005 (5)\n-6CBC63   Flags               01 (1) 'Modification'\n-6CBC64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBC68 CENTRAL HEADER #26    02014B50 (33639248)\n-6CBC6C Created Zip Spec      14 (20) '2.0'\n-6CBC6D Created OS            00 (0) 'MS-DOS'\n-6CBC6E Extract Zip Spec      14 (20) '2.0'\n-6CBC6F Extract OS            00 (0) 'MS-DOS'\n-6CBC70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBC72 Compression Method    0000 (0) 'Stored'\n-6CBC74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBC78 CRC                   9BF7AC90 (2616700048)\n-6CBC7C Compressed Size       00000045 (69)\n-6CBC80 Uncompressed Size     00000045 (69)\n-6CBC84 Filename Length       0042 (66)\n-6CBC86 Extra Length          0009 (9)\n-6CBC88 Comment Length        0000 (0)\n-6CBC8A Disk Start            0000 (0)\n-6CBC8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBC8E Ext File Attributes   00000000 (0)\n-6CBC92 Local Header Offset   0003E990 (256400)\n-6CBC96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBC96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBCD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBCDA   Length              0005 (5)\n-6CBCDC   Flags               01 (1) 'Modification'\n-6CBCDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBCE1 CENTRAL HEADER #27    02014B50 (33639248)\n-6CBCE5 Created Zip Spec      14 (20) '2.0'\n-6CBCE6 Created OS            00 (0) 'MS-DOS'\n-6CBCE7 Extract Zip Spec      14 (20) '2.0'\n-6CBCE8 Extract OS            00 (0) 'MS-DOS'\n-6CBCE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBCEB Compression Method    0000 (0) 'Stored'\n-6CBCED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBCF1 CRC                   51878B1A (1367837466)\n-6CBCF5 Compressed Size       00000133 (307)\n-6CBCF9 Uncompressed Size     00000133 (307)\n-6CBCFD Filename Length       0044 (68)\n-6CBCFF Extra Length          0009 (9)\n-6CBD01 Comment Length        0000 (0)\n-6CBD03 Disk Start            0000 (0)\n-6CBD05 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBD07 Ext File Attributes   00000000 (0)\n-6CBD0B Local Header Offset   0003EA4E (256590)\n-6CBD0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBD0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBD53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBD55   Length              0005 (5)\n-6CBD57   Flags               01 (1) 'Modification'\n-6CBD58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBD5C CENTRAL HEADER #28    02014B50 (33639248)\n-6CBD60 Created Zip Spec      14 (20) '2.0'\n-6CBD61 Created OS            00 (0) 'MS-DOS'\n-6CBD62 Extract Zip Spec      14 (20) '2.0'\n-6CBD63 Extract OS            00 (0) 'MS-DOS'\n-6CBD64 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBD66 Compression Method    0000 (0) 'Stored'\n-6CBD68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBD6C CRC                   5534192D (1429477677)\n-6CBD70 Compressed Size       00000409 (1033)\n-6CBD74 Uncompressed Size     00000409 (1033)\n-6CBD78 Filename Length       0047 (71)\n-6CBD7A Extra Length          0009 (9)\n-6CBD7C Comment Length        0000 (0)\n-6CBD7E Disk Start            0000 (0)\n-6CBD80 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBD82 Ext File Attributes   00000000 (0)\n-6CBD86 Local Header Offset   0003EBFC (257020)\n-6CBD8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBD8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBDD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBDD3   Length              0005 (5)\n-6CBDD5   Flags               01 (1) 'Modification'\n-6CBDD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBDDA CENTRAL HEADER #29    02014B50 (33639248)\n-6CBDDE Created Zip Spec      14 (20) '2.0'\n-6CBDDF Created OS            00 (0) 'MS-DOS'\n-6CBDE0 Extract Zip Spec      14 (20) '2.0'\n-6CBDE1 Extract OS            00 (0) 'MS-DOS'\n-6CBDE2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBDE4 Compression Method    0000 (0) 'Stored'\n-6CBDE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBDEA CRC                   433990B3 (1127846067)\n-6CBDEE Compressed Size       000000B9 (185)\n-6CBDF2 Uncompressed Size     000000B9 (185)\n-6CBDF6 Filename Length       0063 (99)\n-6CBDF8 Extra Length          0009 (9)\n-6CBDFA Comment Length        0000 (0)\n-6CBDFC Disk Start            0000 (0)\n-6CBDFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBE00 Ext File Attributes   00000000 (0)\n-6CBE04 Local Header Offset   0003F083 (258179)\n-6CBE08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBE08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBE6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBE6D   Length              0005 (5)\n-6CBE6F   Flags               01 (1) 'Modification'\n-6CBE70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBE74 CENTRAL HEADER #30    02014B50 (33639248)\n-6CBE78 Created Zip Spec      14 (20) '2.0'\n-6CBE79 Created OS            00 (0) 'MS-DOS'\n-6CBE7A Extract Zip Spec      14 (20) '2.0'\n-6CBE7B Extract OS            00 (0) 'MS-DOS'\n-6CBE7C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBE7E Compression Method    0000 (0) 'Stored'\n-6CBE80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBE84 CRC                   D59F7213 (3583996435)\n-6CBE88 Compressed Size       000001E0 (480)\n-6CBE8C Uncompressed Size     000001E0 (480)\n-6CBE90 Filename Length       0044 (68)\n-6CBE92 Extra Length          0009 (9)\n-6CBE94 Comment Length        0000 (0)\n-6CBE96 Disk Start            0000 (0)\n-6CBE98 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBE9A Ext File Attributes   00000000 (0)\n-6CBE9E Local Header Offset   0003F1D6 (258518)\n-6CBEA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBEA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBEE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBEE8   Length              0005 (5)\n-6CBEEA   Flags               01 (1) 'Modification'\n-6CBEEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBEEF CENTRAL HEADER #31    02014B50 (33639248)\n-6CBEF3 Created Zip Spec      14 (20) '2.0'\n-6CBEF4 Created OS            00 (0) 'MS-DOS'\n-6CBEF5 Extract Zip Spec      14 (20) '2.0'\n-6CBEF6 Extract OS            00 (0) 'MS-DOS'\n-6CBEF7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBEF9 Compression Method    0000 (0) 'Stored'\n-6CBEFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBEFF CRC                   FD317E52 (4247879250)\n-6CBF03 Compressed Size       0000003D (61)\n-6CBF07 Uncompressed Size     0000003D (61)\n-6CBF0B Filename Length       003F (63)\n-6CBF0D Extra Length          0009 (9)\n-6CBF0F Comment Length        0000 (0)\n-6CBF11 Disk Start            0000 (0)\n-6CBF13 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBF15 Ext File Attributes   00000000 (0)\n-6CBF19 Local Header Offset   0003F431 (259121)\n-6CBF1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBF1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBF5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBF5E   Length              0005 (5)\n-6CBF60   Flags               01 (1) 'Modification'\n-6CBF61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBF65 CENTRAL HEADER #32    02014B50 (33639248)\n-6CBF69 Created Zip Spec      14 (20) '2.0'\n-6CBF6A Created OS            00 (0) 'MS-DOS'\n-6CBF6B Extract Zip Spec      14 (20) '2.0'\n-6CBF6C Extract OS            00 (0) 'MS-DOS'\n-6CBF6D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBF6F Compression Method    0000 (0) 'Stored'\n-6CBF71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBF75 CRC                   C4F26B25 (3304221477)\n-6CBF79 Compressed Size       0000012A (298)\n-6CBF7D Uncompressed Size     0000012A (298)\n-6CBF81 Filename Length       0045 (69)\n-6CBF83 Extra Length          0009 (9)\n-6CBF85 Comment Length        0000 (0)\n-6CBF87 Disk Start            0000 (0)\n-6CBF89 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CBF8B Ext File Attributes   00000000 (0)\n-6CBF8F Local Header Offset   0003F4E4 (259300)\n-6CBF93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CBF93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CBFD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CBFDA   Length              0005 (5)\n-6CBFDC   Flags               01 (1) 'Modification'\n-6CBFDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CBFE1 CENTRAL HEADER #33    02014B50 (33639248)\n-6CBFE5 Created Zip Spec      14 (20) '2.0'\n-6CBFE6 Created OS            00 (0) 'MS-DOS'\n-6CBFE7 Extract Zip Spec      14 (20) '2.0'\n-6CBFE8 Extract OS            00 (0) 'MS-DOS'\n-6CBFE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CBFEB Compression Method    0000 (0) 'Stored'\n-6CBFED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CBFF1 CRC                   BF790872 (3212380274)\n-6CBFF5 Compressed Size       0000004C (76)\n-6CBFF9 Uncompressed Size     0000004C (76)\n-6CBFFD Filename Length       0055 (85)\n-6CBFFF Extra Length          0009 (9)\n-6CC001 Comment Length        0000 (0)\n-6CC003 Disk Start            0000 (0)\n-6CC005 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC007 Ext File Attributes   00000000 (0)\n-6CC00B Local Header Offset   0003F68A (259722)\n-6CC00F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC00F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC064 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC066   Length              0005 (5)\n-6CC068   Flags               01 (1) 'Modification'\n-6CC069   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC06D CENTRAL HEADER #34    02014B50 (33639248)\n-6CC071 Created Zip Spec      14 (20) '2.0'\n-6CC072 Created OS            00 (0) 'MS-DOS'\n-6CC073 Extract Zip Spec      14 (20) '2.0'\n-6CC074 Extract OS            00 (0) 'MS-DOS'\n-6CC075 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC077 Compression Method    0000 (0) 'Stored'\n-6CC079 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC07D CRC                   A63E32BF (2789094079)\n-6CC081 Compressed Size       0000005B (91)\n-6CC085 Uncompressed Size     0000005B (91)\n-6CC089 Filename Length       0059 (89)\n-6CC08B Extra Length          0009 (9)\n-6CC08D Comment Length        0000 (0)\n-6CC08F Disk Start            0000 (0)\n-6CC091 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC093 Ext File Attributes   00000000 (0)\n-6CC097 Local Header Offset   0003F762 (259938)\n-6CC09B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC09B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC0F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC0F6   Length              0005 (5)\n-6CC0F8   Flags               01 (1) 'Modification'\n-6CC0F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC0FD CENTRAL HEADER #35    02014B50 (33639248)\n-6CC101 Created Zip Spec      14 (20) '2.0'\n-6CC102 Created OS            00 (0) 'MS-DOS'\n-6CC103 Extract Zip Spec      14 (20) '2.0'\n-6CC104 Extract OS            00 (0) 'MS-DOS'\n-6CC105 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC107 Compression Method    0000 (0) 'Stored'\n-6CC109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC10D CRC                   1CB10FC5 (481365957)\n-6CC111 Compressed Size       000000AB (171)\n-6CC115 Uncompressed Size     000000AB (171)\n-6CC119 Filename Length       003C (60)\n-6CC11B Extra Length          0009 (9)\n-6CC11D Comment Length        0000 (0)\n-6CC11F Disk Start            0000 (0)\n-6CC121 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC123 Ext File Attributes   00000000 (0)\n-6CC127 Local Header Offset   0003F84D (260173)\n-6CC12B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC12B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC167 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC169   Length              0005 (5)\n-6CC16B   Flags               01 (1) 'Modification'\n-6CC16C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC170 CENTRAL HEADER #36    02014B50 (33639248)\n-6CC174 Created Zip Spec      14 (20) '2.0'\n-6CC175 Created OS            00 (0) 'MS-DOS'\n-6CC176 Extract Zip Spec      14 (20) '2.0'\n-6CC177 Extract OS            00 (0) 'MS-DOS'\n-6CC178 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC17A Compression Method    0000 (0) 'Stored'\n-6CC17C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC180 CRC                   6AE7C3EE (1793573870)\n-6CC184 Compressed Size       0000006D (109)\n-6CC188 Uncompressed Size     0000006D (109)\n-6CC18C Filename Length       003E (62)\n-6CC18E Extra Length          0009 (9)\n-6CC190 Comment Length        0000 (0)\n-6CC192 Disk Start            0000 (0)\n-6CC194 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC196 Ext File Attributes   00000000 (0)\n-6CC19A Local Header Offset   0003F96B (260459)\n-6CC19E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC19E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC1DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC1DE   Length              0005 (5)\n-6CC1E0   Flags               01 (1) 'Modification'\n-6CC1E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC1E5 CENTRAL HEADER #37    02014B50 (33639248)\n-6CC1E9 Created Zip Spec      14 (20) '2.0'\n-6CC1EA Created OS            00 (0) 'MS-DOS'\n-6CC1EB Extract Zip Spec      14 (20) '2.0'\n-6CC1EC Extract OS            00 (0) 'MS-DOS'\n-6CC1ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC1EF Compression Method    0000 (0) 'Stored'\n-6CC1F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC1F5 CRC                   FF8F0A93 (4287564435)\n-6CC1F9 Compressed Size       000000A2 (162)\n-6CC1FD Uncompressed Size     000000A2 (162)\n-6CC201 Filename Length       003C (60)\n-6CC203 Extra Length          0009 (9)\n-6CC205 Comment Length        0000 (0)\n-6CC207 Disk Start            0000 (0)\n-6CC209 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC20B Ext File Attributes   00000000 (0)\n-6CC20F Local Header Offset   0003FA4D (260685)\n-6CC213 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC213: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC24F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC251   Length              0005 (5)\n-6CC253   Flags               01 (1) 'Modification'\n-6CC254   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC258 CENTRAL HEADER #38    02014B50 (33639248)\n-6CC25C Created Zip Spec      14 (20) '2.0'\n-6CC25D Created OS            00 (0) 'MS-DOS'\n-6CC25E Extract Zip Spec      14 (20) '2.0'\n-6CC25F Extract OS            00 (0) 'MS-DOS'\n-6CC260 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC262 Compression Method    0000 (0) 'Stored'\n-6CC264 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC268 CRC                   ACE74F1F (2900840223)\n-6CC26C Compressed Size       0000003D (61)\n-6CC270 Uncompressed Size     0000003D (61)\n-6CC274 Filename Length       0046 (70)\n-6CC276 Extra Length          0009 (9)\n-6CC278 Comment Length        0000 (0)\n-6CC27A Disk Start            0000 (0)\n-6CC27C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC27E Ext File Attributes   00000000 (0)\n-6CC282 Local Header Offset   0003FB62 (260962)\n-6CC286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC2CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC2CE   Length              0005 (5)\n-6CC2D0   Flags               01 (1) 'Modification'\n-6CC2D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC2D5 CENTRAL HEADER #39    02014B50 (33639248)\n-6CC2D9 Created Zip Spec      14 (20) '2.0'\n-6CC2DA Created OS            00 (0) 'MS-DOS'\n-6CC2DB Extract Zip Spec      14 (20) '2.0'\n-6CC2DC Extract OS            00 (0) 'MS-DOS'\n-6CC2DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC2DF Compression Method    0000 (0) 'Stored'\n-6CC2E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC2E5 CRC                   8EA6DB6C (2393299820)\n-6CC2E9 Compressed Size       0000005C (92)\n-6CC2ED Uncompressed Size     0000005C (92)\n-6CC2F1 Filename Length       0049 (73)\n-6CC2F3 Extra Length          0009 (9)\n-6CC2F5 Comment Length        0000 (0)\n-6CC2F7 Disk Start            0000 (0)\n-6CC2F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC2FB Ext File Attributes   00000000 (0)\n-6CC2FF Local Header Offset   0003FC1C (261148)\n-6CC303 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC303: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC34C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC34E   Length              0005 (5)\n-6CC350   Flags               01 (1) 'Modification'\n-6CC351   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC355 CENTRAL HEADER #40    02014B50 (33639248)\n-6CC359 Created Zip Spec      14 (20) '2.0'\n-6CC35A Created OS            00 (0) 'MS-DOS'\n-6CC35B Extract Zip Spec      14 (20) '2.0'\n-6CC35C Extract OS            00 (0) 'MS-DOS'\n-6CC35D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC35F Compression Method    0000 (0) 'Stored'\n-6CC361 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC365 CRC                   8141260E (2168530446)\n-6CC369 Compressed Size       00000096 (150)\n-6CC36D Uncompressed Size     00000096 (150)\n-6CC371 Filename Length       0044 (68)\n-6CC373 Extra Length          0009 (9)\n-6CC375 Comment Length        0000 (0)\n-6CC377 Disk Start            0000 (0)\n-6CC379 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC37B Ext File Attributes   00000000 (0)\n-6CC37F Local Header Offset   0003FCF8 (261368)\n-6CC383 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC383: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC3C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC3C9   Length              0005 (5)\n-6CC3CB   Flags               01 (1) 'Modification'\n-6CC3CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC3D0 CENTRAL HEADER #41    02014B50 (33639248)\n-6CC3D4 Created Zip Spec      14 (20) '2.0'\n-6CC3D5 Created OS            00 (0) 'MS-DOS'\n-6CC3D6 Extract Zip Spec      14 (20) '2.0'\n-6CC3D7 Extract OS            00 (0) 'MS-DOS'\n-6CC3D8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC3DA Compression Method    0000 (0) 'Stored'\n-6CC3DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC3E0 CRC                   C4255C66 (3290782822)\n-6CC3E4 Compressed Size       00000058 (88)\n-6CC3E8 Uncompressed Size     00000058 (88)\n-6CC3EC Filename Length       0049 (73)\n-6CC3EE Extra Length          0009 (9)\n-6CC3F0 Comment Length        0000 (0)\n-6CC3F2 Disk Start            0000 (0)\n-6CC3F4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC3F6 Ext File Attributes   00000000 (0)\n-6CC3FA Local Header Offset   0003FE09 (261641)\n-6CC3FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC3FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC447 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC449   Length              0005 (5)\n-6CC44B   Flags               01 (1) 'Modification'\n-6CC44C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC450 CENTRAL HEADER #42    02014B50 (33639248)\n-6CC454 Created Zip Spec      14 (20) '2.0'\n-6CC455 Created OS            00 (0) 'MS-DOS'\n-6CC456 Extract Zip Spec      14 (20) '2.0'\n-6CC457 Extract OS            00 (0) 'MS-DOS'\n-6CC458 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC45A Compression Method    0000 (0) 'Stored'\n-6CC45C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC460 CRC                   9BBB9DE9 (2612764137)\n-6CC464 Compressed Size       00000114 (276)\n-6CC468 Uncompressed Size     00000114 (276)\n-6CC46C Filename Length       0050 (80)\n-6CC46E Extra Length          0009 (9)\n-6CC470 Comment Length        0000 (0)\n-6CC472 Disk Start            0000 (0)\n-6CC474 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC476 Ext File Attributes   00000000 (0)\n-6CC47A Local Header Offset   0003FEE1 (261857)\n-6CC47E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC47E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC4CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC4D0   Length              0005 (5)\n-6CC4D2   Flags               01 (1) 'Modification'\n-6CC4D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC4D7 CENTRAL HEADER #43    02014B50 (33639248)\n-6CC4DB Created Zip Spec      14 (20) '2.0'\n-6CC4DC Created OS            00 (0) 'MS-DOS'\n-6CC4DD Extract Zip Spec      14 (20) '2.0'\n-6CC4DE Extract OS            00 (0) 'MS-DOS'\n-6CC4DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC4E1 Compression Method    0000 (0) 'Stored'\n-6CC4E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC4E7 CRC                   CB89DDC8 (3414810056)\n-6CC4EB Compressed Size       000001C5 (453)\n-6CC4EF Uncompressed Size     000001C5 (453)\n-6CC4F3 Filename Length       004E (78)\n-6CC4F5 Extra Length          0009 (9)\n-6CC4F7 Comment Length        0000 (0)\n-6CC4F9 Disk Start            0000 (0)\n-6CC4FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC4FD Ext File Attributes   00000000 (0)\n-6CC501 Local Header Offset   0004007C (262268)\n-6CC505 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC505: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC553 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC555   Length              0005 (5)\n-6CC557   Flags               01 (1) 'Modification'\n-6CC558   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC55C CENTRAL HEADER #44    02014B50 (33639248)\n-6CC560 Created Zip Spec      14 (20) '2.0'\n-6CC561 Created OS            00 (0) 'MS-DOS'\n-6CC562 Extract Zip Spec      14 (20) '2.0'\n-6CC563 Extract OS            00 (0) 'MS-DOS'\n-6CC564 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC566 Compression Method    0000 (0) 'Stored'\n-6CC568 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC56C CRC                   496A27A1 (1231693729)\n-6CC570 Compressed Size       000002CC (716)\n-6CC574 Uncompressed Size     000002CC (716)\n-6CC578 Filename Length       0058 (88)\n-6CC57A Extra Length          0009 (9)\n-6CC57C Comment Length        0000 (0)\n-6CC57E Disk Start            0000 (0)\n-6CC580 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC582 Ext File Attributes   00000000 (0)\n-6CC586 Local Header Offset   000402C6 (262854)\n-6CC58A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC58A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC5E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC5E4   Length              0005 (5)\n-6CC5E6   Flags               01 (1) 'Modification'\n-6CC5E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC5EB CENTRAL HEADER #45    02014B50 (33639248)\n-6CC5EF Created Zip Spec      14 (20) '2.0'\n-6CC5F0 Created OS            00 (0) 'MS-DOS'\n-6CC5F1 Extract Zip Spec      14 (20) '2.0'\n-6CC5F2 Extract OS            00 (0) 'MS-DOS'\n-6CC5F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC5F5 Compression Method    0000 (0) 'Stored'\n-6CC5F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC5FB CRC                   5B1D6790 (1528653712)\n-6CC5FF Compressed Size       000000B7 (183)\n-6CC603 Uncompressed Size     000000B7 (183)\n-6CC607 Filename Length       0052 (82)\n-6CC609 Extra Length          0009 (9)\n-6CC60B Comment Length        0000 (0)\n-6CC60D Disk Start            0000 (0)\n-6CC60F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC611 Ext File Attributes   00000000 (0)\n-6CC615 Local Header Offset   00040621 (263713)\n-6CC619 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC619: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC66B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC66D   Length              0005 (5)\n-6CC66F   Flags               01 (1) 'Modification'\n-6CC670   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC674 CENTRAL HEADER #46    02014B50 (33639248)\n-6CC678 Created Zip Spec      14 (20) '2.0'\n-6CC679 Created OS            00 (0) 'MS-DOS'\n-6CC67A Extract Zip Spec      14 (20) '2.0'\n-6CC67B Extract OS            00 (0) 'MS-DOS'\n-6CC67C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC67E Compression Method    0000 (0) 'Stored'\n-6CC680 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC684 CRC                   8738E283 (2268652163)\n-6CC688 Compressed Size       00000039 (57)\n-6CC68C Uncompressed Size     00000039 (57)\n-6CC690 Filename Length       003F (63)\n-6CC692 Extra Length          0009 (9)\n-6CC694 Comment Length        0000 (0)\n-6CC696 Disk Start            0000 (0)\n-6CC698 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC69A Ext File Attributes   00000000 (0)\n-6CC69E Local Header Offset   00040761 (264033)\n-6CC6A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC6A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC6E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC6E3   Length              0005 (5)\n-6CC6E5   Flags               01 (1) 'Modification'\n-6CC6E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC6EA CENTRAL HEADER #47    02014B50 (33639248)\n-6CC6EE Created Zip Spec      14 (20) '2.0'\n-6CC6EF Created OS            00 (0) 'MS-DOS'\n-6CC6F0 Extract Zip Spec      14 (20) '2.0'\n-6CC6F1 Extract OS            00 (0) 'MS-DOS'\n-6CC6F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC6F4 Compression Method    0000 (0) 'Stored'\n-6CC6F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC6FA CRC                   1529E756 (355067734)\n-6CC6FE Compressed Size       00000186 (390)\n-6CC702 Uncompressed Size     00000186 (390)\n-6CC706 Filename Length       0040 (64)\n-6CC708 Extra Length          0009 (9)\n-6CC70A Comment Length        0000 (0)\n-6CC70C Disk Start            0000 (0)\n-6CC70E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC710 Ext File Attributes   00000000 (0)\n-6CC714 Local Header Offset   00040810 (264208)\n-6CC718 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC718: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC758 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC75A   Length              0005 (5)\n-6CC75C   Flags               01 (1) 'Modification'\n-6CC75D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC761 CENTRAL HEADER #48    02014B50 (33639248)\n-6CC765 Created Zip Spec      14 (20) '2.0'\n-6CC766 Created OS            00 (0) 'MS-DOS'\n-6CC767 Extract Zip Spec      14 (20) '2.0'\n-6CC768 Extract OS            00 (0) 'MS-DOS'\n-6CC769 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC76B Compression Method    0000 (0) 'Stored'\n-6CC76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC771 CRC                   02A8F678 (44627576)\n-6CC775 Compressed Size       000002CA (714)\n-6CC779 Uncompressed Size     000002CA (714)\n-6CC77D Filename Length       0041 (65)\n-6CC77F Extra Length          0009 (9)\n-6CC781 Comment Length        0000 (0)\n-6CC783 Disk Start            0000 (0)\n-6CC785 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC787 Ext File Attributes   00000000 (0)\n-6CC78B Local Header Offset   00040A0D (264717)\n-6CC78F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC78F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC7D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC7D2   Length              0005 (5)\n-6CC7D4   Flags               01 (1) 'Modification'\n-6CC7D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC7D9 CENTRAL HEADER #49    02014B50 (33639248)\n-6CC7DD Created Zip Spec      14 (20) '2.0'\n-6CC7DE Created OS            00 (0) 'MS-DOS'\n-6CC7DF Extract Zip Spec      14 (20) '2.0'\n-6CC7E0 Extract OS            00 (0) 'MS-DOS'\n-6CC7E1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC7E3 Compression Method    0000 (0) 'Stored'\n-6CC7E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC7E9 CRC                   290EDBFF (688839679)\n-6CC7ED Compressed Size       00000049 (73)\n-6CC7F1 Uncompressed Size     00000049 (73)\n-6CC7F5 Filename Length       0052 (82)\n-6CC7F7 Extra Length          0009 (9)\n-6CC7F9 Comment Length        0000 (0)\n-6CC7FB Disk Start            0000 (0)\n-6CC7FD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC7FF Ext File Attributes   00000000 (0)\n-6CC803 Local Header Offset   00040D4F (265551)\n-6CC807 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC807: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC859 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC85B   Length              0005 (5)\n-6CC85D   Flags               01 (1) 'Modification'\n-6CC85E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC862 CENTRAL HEADER #50    02014B50 (33639248)\n-6CC866 Created Zip Spec      14 (20) '2.0'\n-6CC867 Created OS            00 (0) 'MS-DOS'\n-6CC868 Extract Zip Spec      14 (20) '2.0'\n-6CC869 Extract OS            00 (0) 'MS-DOS'\n-6CC86A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC86C Compression Method    0000 (0) 'Stored'\n-6CC86E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC872 CRC                   06C4AA00 (113551872)\n-6CC876 Compressed Size       00000251 (593)\n-6CC87A Uncompressed Size     00000251 (593)\n-6CC87E Filename Length       0049 (73)\n-6CC880 Extra Length          0009 (9)\n-6CC882 Comment Length        0000 (0)\n-6CC884 Disk Start            0000 (0)\n-6CC886 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC888 Ext File Attributes   00000000 (0)\n-6CC88C Local Header Offset   00040E21 (265761)\n-6CC890 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC890: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC8D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC8DB   Length              0005 (5)\n-6CC8DD   Flags               01 (1) 'Modification'\n-6CC8DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC8E2 CENTRAL HEADER #51    02014B50 (33639248)\n-6CC8E6 Created Zip Spec      14 (20) '2.0'\n-6CC8E7 Created OS            00 (0) 'MS-DOS'\n-6CC8E8 Extract Zip Spec      14 (20) '2.0'\n-6CC8E9 Extract OS            00 (0) 'MS-DOS'\n-6CC8EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC8EC Compression Method    0000 (0) 'Stored'\n-6CC8EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC8F2 CRC                   20C66B35 (549874485)\n-6CC8F6 Compressed Size       0000024E (590)\n-6CC8FA Uncompressed Size     0000024E (590)\n-6CC8FE Filename Length       0050 (80)\n-6CC900 Extra Length          0009 (9)\n-6CC902 Comment Length        0000 (0)\n-6CC904 Disk Start            0000 (0)\n-6CC906 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC908 Ext File Attributes   00000000 (0)\n-6CC90C Local Header Offset   000410F2 (266482)\n-6CC910 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC910: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC960 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC962   Length              0005 (5)\n-6CC964   Flags               01 (1) 'Modification'\n-6CC965   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC969 CENTRAL HEADER #52    02014B50 (33639248)\n-6CC96D Created Zip Spec      14 (20) '2.0'\n-6CC96E Created OS            00 (0) 'MS-DOS'\n-6CC96F Extract Zip Spec      14 (20) '2.0'\n-6CC970 Extract OS            00 (0) 'MS-DOS'\n-6CC971 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC973 Compression Method    0000 (0) 'Stored'\n-6CC975 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CC979 CRC                   F65F4647 (4133439047)\n-6CC97D Compressed Size       0000027D (637)\n-6CC981 Uncompressed Size     0000027D (637)\n-6CC985 Filename Length       0052 (82)\n-6CC987 Extra Length          0009 (9)\n-6CC989 Comment Length        0000 (0)\n-6CC98B Disk Start            0000 (0)\n-6CC98D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CC98F Ext File Attributes   00000000 (0)\n-6CC993 Local Header Offset   000413C7 (267207)\n-6CC997 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CC997: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CC9E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CC9EB   Length              0005 (5)\n-6CC9ED   Flags               01 (1) 'Modification'\n-6CC9EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CC9F2 CENTRAL HEADER #53    02014B50 (33639248)\n-6CC9F6 Created Zip Spec      14 (20) '2.0'\n-6CC9F7 Created OS            00 (0) 'MS-DOS'\n-6CC9F8 Extract Zip Spec      14 (20) '2.0'\n-6CC9F9 Extract OS            00 (0) 'MS-DOS'\n-6CC9FA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CC9FC Compression Method    0000 (0) 'Stored'\n-6CC9FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCA02 CRC                   A52CE8E2 (2771183842)\n-6CCA06 Compressed Size       000000B1 (177)\n-6CCA0A Uncompressed Size     000000B1 (177)\n-6CCA0E Filename Length       005B (91)\n-6CCA10 Extra Length          0009 (9)\n-6CCA12 Comment Length        0000 (0)\n-6CCA14 Disk Start            0000 (0)\n-6CCA16 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCA18 Ext File Attributes   00000000 (0)\n-6CCA1C Local Header Offset   000416CD (267981)\n-6CCA20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCA20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCA7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCA7D   Length              0005 (5)\n-6CCA7F   Flags               01 (1) 'Modification'\n-6CCA80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCA84 CENTRAL HEADER #54    02014B50 (33639248)\n-6CCA88 Created Zip Spec      14 (20) '2.0'\n-6CCA89 Created OS            00 (0) 'MS-DOS'\n-6CCA8A Extract Zip Spec      14 (20) '2.0'\n-6CCA8B Extract OS            00 (0) 'MS-DOS'\n-6CCA8C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCA8E Compression Method    0000 (0) 'Stored'\n-6CCA90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCA94 CRC                   A49FCF77 (2761936759)\n-6CCA98 Compressed Size       00000054 (84)\n-6CCA9C Uncompressed Size     00000054 (84)\n-6CCAA0 Filename Length       005B (91)\n-6CCAA2 Extra Length          0009 (9)\n-6CCAA4 Comment Length        0000 (0)\n-6CCAA6 Disk Start            0000 (0)\n-6CCAA8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCAAA Ext File Attributes   00000000 (0)\n-6CCAAE Local Header Offset   00041810 (268304)\n-6CCAB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCAB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCB0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCB0F   Length              0005 (5)\n-6CCB11   Flags               01 (1) 'Modification'\n-6CCB12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCB16 CENTRAL HEADER #55    02014B50 (33639248)\n-6CCB1A Created Zip Spec      14 (20) '2.0'\n-6CCB1B Created OS            00 (0) 'MS-DOS'\n-6CCB1C Extract Zip Spec      14 (20) '2.0'\n-6CCB1D Extract OS            00 (0) 'MS-DOS'\n-6CCB1E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCB20 Compression Method    0000 (0) 'Stored'\n-6CCB22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCB26 CRC                   F515114D (4111798605)\n-6CCB2A Compressed Size       00000054 (84)\n-6CCB2E Uncompressed Size     00000054 (84)\n-6CCB32 Filename Length       005D (93)\n-6CCB34 Extra Length          0009 (9)\n-6CCB36 Comment Length        0000 (0)\n-6CCB38 Disk Start            0000 (0)\n-6CCB3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCB3C Ext File Attributes   00000000 (0)\n-6CCB40 Local Header Offset   000418F6 (268534)\n-6CCB44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCB44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCBA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCBA3   Length              0005 (5)\n-6CCBA5   Flags               01 (1) 'Modification'\n-6CCBA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCBAA CENTRAL HEADER #56    02014B50 (33639248)\n-6CCBAE Created Zip Spec      14 (20) '2.0'\n-6CCBAF Created OS            00 (0) 'MS-DOS'\n-6CCBB0 Extract Zip Spec      14 (20) '2.0'\n-6CCBB1 Extract OS            00 (0) 'MS-DOS'\n-6CCBB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCBB4 Compression Method    0000 (0) 'Stored'\n-6CCBB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCBBA CRC                   285254BA (676484282)\n-6CCBBE Compressed Size       0000004E (78)\n-6CCBC2 Uncompressed Size     0000004E (78)\n-6CCBC6 Filename Length       0059 (89)\n-6CCBC8 Extra Length          0009 (9)\n-6CCBCA Comment Length        0000 (0)\n-6CCBCC Disk Start            0000 (0)\n-6CCBCE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCBD0 Ext File Attributes   00000000 (0)\n-6CCBD4 Local Header Offset   000419DE (268766)\n-6CCBD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCBD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCC31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCC33   Length              0005 (5)\n-6CCC35   Flags               01 (1) 'Modification'\n-6CCC36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCC3A CENTRAL HEADER #57    02014B50 (33639248)\n-6CCC3E Created Zip Spec      14 (20) '2.0'\n-6CCC3F Created OS            00 (0) 'MS-DOS'\n-6CCC40 Extract Zip Spec      14 (20) '2.0'\n-6CCC41 Extract OS            00 (0) 'MS-DOS'\n-6CCC42 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCC44 Compression Method    0000 (0) 'Stored'\n-6CCC46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCC4A CRC                   9DAB4985 (2645248389)\n-6CCC4E Compressed Size       0000004A (74)\n-6CCC52 Uncompressed Size     0000004A (74)\n-6CCC56 Filename Length       0056 (86)\n-6CCC58 Extra Length          0009 (9)\n-6CCC5A Comment Length        0000 (0)\n-6CCC5C Disk Start            0000 (0)\n-6CCC5E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCC60 Ext File Attributes   00000000 (0)\n-6CCC64 Local Header Offset   00041ABC (268988)\n-6CCC68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCC68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCCBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCCC0   Length              0005 (5)\n-6CCCC2   Flags               01 (1) 'Modification'\n-6CCCC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCCC7 CENTRAL HEADER #58    02014B50 (33639248)\n-6CCCCB Created Zip Spec      14 (20) '2.0'\n-6CCCCC Created OS            00 (0) 'MS-DOS'\n-6CCCCD Extract Zip Spec      14 (20) '2.0'\n-6CCCCE Extract OS            00 (0) 'MS-DOS'\n-6CCCCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCCD1 Compression Method    0000 (0) 'Stored'\n-6CCCD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCCD7 CRC                   83B04446 (2209367110)\n-6CCCDB Compressed Size       00000131 (305)\n-6CCCDF Uncompressed Size     00000131 (305)\n-6CCCE3 Filename Length       0038 (56)\n-6CCCE5 Extra Length          0009 (9)\n-6CCCE7 Comment Length        0000 (0)\n-6CCCE9 Disk Start            0000 (0)\n-6CCCEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCCED Ext File Attributes   00000000 (0)\n-6CCCF1 Local Header Offset   00041B93 (269203)\n-6CCCF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCCF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCD2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCD2F   Length              0005 (5)\n-6CCD31   Flags               01 (1) 'Modification'\n-6CCD32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCD36 CENTRAL HEADER #59    02014B50 (33639248)\n-6CCD3A Created Zip Spec      14 (20) '2.0'\n-6CCD3B Created OS            00 (0) 'MS-DOS'\n-6CCD3C Extract Zip Spec      14 (20) '2.0'\n-6CCD3D Extract OS            00 (0) 'MS-DOS'\n-6CCD3E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCD40 Compression Method    0000 (0) 'Stored'\n-6CCD42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCD46 CRC                   B02A8DBF (2955578815)\n-6CCD4A Compressed Size       000001A4 (420)\n-6CCD4E Uncompressed Size     000001A4 (420)\n-6CCD52 Filename Length       003C (60)\n-6CCD54 Extra Length          0009 (9)\n-6CCD56 Comment Length        0000 (0)\n-6CCD58 Disk Start            0000 (0)\n-6CCD5A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCD5C Ext File Attributes   00000000 (0)\n-6CCD60 Local Header Offset   00041D33 (269619)\n-6CCD64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCD64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCDA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCDA2   Length              0005 (5)\n-6CCDA4   Flags               01 (1) 'Modification'\n-6CCDA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCDA9 CENTRAL HEADER #60    02014B50 (33639248)\n-6CCDAD Created Zip Spec      14 (20) '2.0'\n-6CCDAE Created OS            00 (0) 'MS-DOS'\n-6CCDAF Extract Zip Spec      14 (20) '2.0'\n-6CCDB0 Extract OS            00 (0) 'MS-DOS'\n-6CCDB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCDB3 Compression Method    0000 (0) 'Stored'\n-6CCDB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCDB9 CRC                   605C157F (1616647551)\n-6CCDBD Compressed Size       0000014D (333)\n-6CCDC1 Uncompressed Size     0000014D (333)\n-6CCDC5 Filename Length       003D (61)\n-6CCDC7 Extra Length          0009 (9)\n-6CCDC9 Comment Length        0000 (0)\n-6CCDCB Disk Start            0000 (0)\n-6CCDCD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCDCF Ext File Attributes   00000000 (0)\n-6CCDD3 Local Header Offset   00041F4A (270154)\n-6CCDD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCDD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCE14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCE16   Length              0005 (5)\n-6CCE18   Flags               01 (1) 'Modification'\n-6CCE19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCE1D CENTRAL HEADER #61    02014B50 (33639248)\n-6CCE21 Created Zip Spec      14 (20) '2.0'\n-6CCE22 Created OS            00 (0) 'MS-DOS'\n-6CCE23 Extract Zip Spec      14 (20) '2.0'\n-6CCE24 Extract OS            00 (0) 'MS-DOS'\n-6CCE25 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCE27 Compression Method    0000 (0) 'Stored'\n-6CCE29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCE2D CRC                   91BA560C (2444908044)\n-6CCE31 Compressed Size       0000003B (59)\n-6CCE35 Uncompressed Size     0000003B (59)\n-6CCE39 Filename Length       0046 (70)\n-6CCE3B Extra Length          0009 (9)\n-6CCE3D Comment Length        0000 (0)\n-6CCE3F Disk Start            0000 (0)\n-6CCE41 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCE43 Ext File Attributes   00000000 (0)\n-6CCE47 Local Header Offset   0004210B (270603)\n-6CCE4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCE4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCE91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCE93   Length              0005 (5)\n-6CCE95   Flags               01 (1) 'Modification'\n-6CCE96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCE9A CENTRAL HEADER #62    02014B50 (33639248)\n-6CCE9E Created Zip Spec      14 (20) '2.0'\n-6CCE9F Created OS            00 (0) 'MS-DOS'\n-6CCEA0 Extract Zip Spec      14 (20) '2.0'\n-6CCEA1 Extract OS            00 (0) 'MS-DOS'\n-6CCEA2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCEA4 Compression Method    0000 (0) 'Stored'\n-6CCEA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCEAA CRC                   E21BFF73 (3793485683)\n-6CCEAE Compressed Size       00000049 (73)\n-6CCEB2 Uncompressed Size     00000049 (73)\n-6CCEB6 Filename Length       0044 (68)\n-6CCEB8 Extra Length          0009 (9)\n-6CCEBA Comment Length        0000 (0)\n-6CCEBC Disk Start            0000 (0)\n-6CCEBE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCEC0 Ext File Attributes   00000000 (0)\n-6CCEC4 Local Header Offset   000421C3 (270787)\n-6CCEC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCEC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCF0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCF0E   Length              0005 (5)\n-6CCF10   Flags               01 (1) 'Modification'\n-6CCF11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCF15 CENTRAL HEADER #63    02014B50 (33639248)\n-6CCF19 Created Zip Spec      14 (20) '2.0'\n-6CCF1A Created OS            00 (0) 'MS-DOS'\n-6CCF1B Extract Zip Spec      14 (20) '2.0'\n-6CCF1C Extract OS            00 (0) 'MS-DOS'\n-6CCF1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCF1F Compression Method    0000 (0) 'Stored'\n-6CCF21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCF25 CRC                   78354721 (2016757537)\n-6CCF29 Compressed Size       000000F8 (248)\n-6CCF2D Uncompressed Size     000000F8 (248)\n-6CCF31 Filename Length       0041 (65)\n-6CCF33 Extra Length          0009 (9)\n-6CCF35 Comment Length        0000 (0)\n-6CCF37 Disk Start            0000 (0)\n-6CCF39 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCF3B Ext File Attributes   00000000 (0)\n-6CCF3F Local Header Offset   00042287 (270983)\n-6CCF43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCF43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCF84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCF86   Length              0005 (5)\n-6CCF88   Flags               01 (1) 'Modification'\n-6CCF89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CCF8D CENTRAL HEADER #64    02014B50 (33639248)\n-6CCF91 Created Zip Spec      14 (20) '2.0'\n-6CCF92 Created OS            00 (0) 'MS-DOS'\n-6CCF93 Extract Zip Spec      14 (20) '2.0'\n-6CCF94 Extract OS            00 (0) 'MS-DOS'\n-6CCF95 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CCF97 Compression Method    0000 (0) 'Stored'\n-6CCF99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CCF9D CRC                   3693E7D5 (915662805)\n-6CCFA1 Compressed Size       0000007D (125)\n-6CCFA5 Uncompressed Size     0000007D (125)\n-6CCFA9 Filename Length       003F (63)\n-6CCFAB Extra Length          0009 (9)\n-6CCFAD Comment Length        0000 (0)\n-6CCFAF Disk Start            0000 (0)\n-6CCFB1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CCFB3 Ext File Attributes   00000000 (0)\n-6CCFB7 Local Header Offset   000423F7 (271351)\n-6CCFBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CCFBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CCFFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CCFFC   Length              0005 (5)\n-6CCFFE   Flags               01 (1) 'Modification'\n-6CCFFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD003 CENTRAL HEADER #65    02014B50 (33639248)\n-6CD007 Created Zip Spec      14 (20) '2.0'\n-6CD008 Created OS            00 (0) 'MS-DOS'\n-6CD009 Extract Zip Spec      14 (20) '2.0'\n-6CD00A Extract OS            00 (0) 'MS-DOS'\n-6CD00B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD00D Compression Method    0000 (0) 'Stored'\n-6CD00F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD013 CRC                   F5C1516B (4123087211)\n-6CD017 Compressed Size       0000034D (845)\n-6CD01B Uncompressed Size     0000034D (845)\n-6CD01F Filename Length       0046 (70)\n-6CD021 Extra Length          0009 (9)\n-6CD023 Comment Length        0000 (0)\n-6CD025 Disk Start            0000 (0)\n-6CD027 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD029 Ext File Attributes   00000000 (0)\n-6CD02D Local Header Offset   000424EA (271594)\n-6CD031 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD031: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD077 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD079   Length              0005 (5)\n-6CD07B   Flags               01 (1) 'Modification'\n-6CD07C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD080 CENTRAL HEADER #66    02014B50 (33639248)\n-6CD084 Created Zip Spec      14 (20) '2.0'\n-6CD085 Created OS            00 (0) 'MS-DOS'\n-6CD086 Extract Zip Spec      14 (20) '2.0'\n-6CD087 Extract OS            00 (0) 'MS-DOS'\n-6CD088 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD08A Compression Method    0000 (0) 'Stored'\n-6CD08C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD090 CRC                   80A8E0CE (2158551246)\n-6CD094 Compressed Size       00000052 (82)\n-6CD098 Uncompressed Size     00000052 (82)\n-6CD09C Filename Length       0050 (80)\n-6CD09E Extra Length          0009 (9)\n-6CD0A0 Comment Length        0000 (0)\n-6CD0A2 Disk Start            0000 (0)\n-6CD0A4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD0A6 Ext File Attributes   00000000 (0)\n-6CD0AA Local Header Offset   000428B4 (272564)\n-6CD0AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD0AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD0FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD100   Length              0005 (5)\n-6CD102   Flags               01 (1) 'Modification'\n-6CD103   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD107 CENTRAL HEADER #67    02014B50 (33639248)\n-6CD10B Created Zip Spec      14 (20) '2.0'\n-6CD10C Created OS            00 (0) 'MS-DOS'\n-6CD10D Extract Zip Spec      14 (20) '2.0'\n-6CD10E Extract OS            00 (0) 'MS-DOS'\n-6CD10F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD111 Compression Method    0000 (0) 'Stored'\n-6CD113 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD117 CRC                   A8176C28 (2820107304)\n-6CD11B Compressed Size       0000048F (1167)\n-6CD11F Uncompressed Size     0000048F (1167)\n-6CD123 Filename Length       0033 (51)\n-6CD125 Extra Length          0009 (9)\n-6CD127 Comment Length        0000 (0)\n-6CD129 Disk Start            0000 (0)\n-6CD12B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD12D Ext File Attributes   00000000 (0)\n-6CD131 Local Header Offset   0004298D (272781)\n-6CD135 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD135: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD168 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD16A   Length              0005 (5)\n-6CD16C   Flags               01 (1) 'Modification'\n-6CD16D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD171 CENTRAL HEADER #68    02014B50 (33639248)\n-6CD175 Created Zip Spec      14 (20) '2.0'\n-6CD176 Created OS            00 (0) 'MS-DOS'\n-6CD177 Extract Zip Spec      14 (20) '2.0'\n-6CD178 Extract OS            00 (0) 'MS-DOS'\n-6CD179 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD17B Compression Method    0000 (0) 'Stored'\n-6CD17D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD181 CRC                   2F399EBD (792305341)\n-6CD185 Compressed Size       00000043 (67)\n-6CD189 Uncompressed Size     00000043 (67)\n-6CD18D Filename Length       003C (60)\n-6CD18F Extra Length          0009 (9)\n-6CD191 Comment Length        0000 (0)\n-6CD193 Disk Start            0000 (0)\n-6CD195 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD197 Ext File Attributes   00000000 (0)\n-6CD19B Local Header Offset   00042E86 (274054)\n-6CD19F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD19F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD1DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD1DD   Length              0005 (5)\n-6CD1DF   Flags               01 (1) 'Modification'\n-6CD1E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD1E4 CENTRAL HEADER #69    02014B50 (33639248)\n-6CD1E8 Created Zip Spec      14 (20) '2.0'\n-6CD1E9 Created OS            00 (0) 'MS-DOS'\n-6CD1EA Extract Zip Spec      14 (20) '2.0'\n-6CD1EB Extract OS            00 (0) 'MS-DOS'\n-6CD1EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD1EE Compression Method    0000 (0) 'Stored'\n-6CD1F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD1F4 CRC                   9B0B664B (2601215563)\n-6CD1F8 Compressed Size       00000489 (1161)\n-6CD1FC Uncompressed Size     00000489 (1161)\n-6CD200 Filename Length       0035 (53)\n-6CD202 Extra Length          0009 (9)\n-6CD204 Comment Length        0000 (0)\n-6CD206 Disk Start            0000 (0)\n-6CD208 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD20A Ext File Attributes   00000000 (0)\n-6CD20E Local Header Offset   00042F3C (274236)\n-6CD212 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD212: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD247 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD249   Length              0005 (5)\n-6CD24B   Flags               01 (1) 'Modification'\n-6CD24C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD250 CENTRAL HEADER #70    02014B50 (33639248)\n-6CD254 Created Zip Spec      14 (20) '2.0'\n-6CD255 Created OS            00 (0) 'MS-DOS'\n-6CD256 Extract Zip Spec      14 (20) '2.0'\n-6CD257 Extract OS            00 (0) 'MS-DOS'\n-6CD258 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD25A Compression Method    0000 (0) 'Stored'\n-6CD25C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD260 CRC                   ED03E48F (3976455311)\n-6CD264 Compressed Size       000000BA (186)\n-6CD268 Uncompressed Size     000000BA (186)\n-6CD26C Filename Length       0039 (57)\n-6CD26E Extra Length          0009 (9)\n-6CD270 Comment Length        0000 (0)\n-6CD272 Disk Start            0000 (0)\n-6CD274 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD276 Ext File Attributes   00000000 (0)\n-6CD27A Local Header Offset   00043431 (275505)\n-6CD27E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD27E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD2B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD2B9   Length              0005 (5)\n-6CD2BB   Flags               01 (1) 'Modification'\n-6CD2BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD2C0 CENTRAL HEADER #71    02014B50 (33639248)\n-6CD2C4 Created Zip Spec      14 (20) '2.0'\n-6CD2C5 Created OS            00 (0) 'MS-DOS'\n-6CD2C6 Extract Zip Spec      14 (20) '2.0'\n-6CD2C7 Extract OS            00 (0) 'MS-DOS'\n-6CD2C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD2CA Compression Method    0000 (0) 'Stored'\n-6CD2CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD2D0 CRC                   72D50831 (1926563889)\n-6CD2D4 Compressed Size       0000028C (652)\n-6CD2D8 Uncompressed Size     0000028C (652)\n-6CD2DC Filename Length       003C (60)\n-6CD2DE Extra Length          0009 (9)\n-6CD2E0 Comment Length        0000 (0)\n-6CD2E2 Disk Start            0000 (0)\n-6CD2E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD2E6 Ext File Attributes   00000000 (0)\n-6CD2EA Local Header Offset   0004355B (275803)\n-6CD2EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD2EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD32A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD32C   Length              0005 (5)\n-6CD32E   Flags               01 (1) 'Modification'\n-6CD32F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD333 CENTRAL HEADER #72    02014B50 (33639248)\n-6CD337 Created Zip Spec      14 (20) '2.0'\n-6CD338 Created OS            00 (0) 'MS-DOS'\n-6CD339 Extract Zip Spec      14 (20) '2.0'\n-6CD33A Extract OS            00 (0) 'MS-DOS'\n-6CD33B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD33D Compression Method    0000 (0) 'Stored'\n-6CD33F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD343 CRC                   B1A9D94F (2980698447)\n-6CD347 Compressed Size       000000AB (171)\n-6CD34B Uncompressed Size     000000AB (171)\n-6CD34F Filename Length       0048 (72)\n-6CD351 Extra Length          0009 (9)\n-6CD353 Comment Length        0000 (0)\n-6CD355 Disk Start            0000 (0)\n-6CD357 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD359 Ext File Attributes   00000000 (0)\n-6CD35D Local Header Offset   0004385A (276570)\n-6CD361 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD361: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD3A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD3AB   Length              0005 (5)\n-6CD3AD   Flags               01 (1) 'Modification'\n-6CD3AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD3B2 CENTRAL HEADER #73    02014B50 (33639248)\n-6CD3B6 Created Zip Spec      14 (20) '2.0'\n-6CD3B7 Created OS            00 (0) 'MS-DOS'\n-6CD3B8 Extract Zip Spec      14 (20) '2.0'\n-6CD3B9 Extract OS            00 (0) 'MS-DOS'\n-6CD3BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD3BC Compression Method    0000 (0) 'Stored'\n-6CD3BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD3C2 CRC                   388E9B78 (948870008)\n-6CD3C6 Compressed Size       00000184 (388)\n-6CD3CA Uncompressed Size     00000184 (388)\n-6CD3CE Filename Length       0040 (64)\n-6CD3D0 Extra Length          0009 (9)\n-6CD3D2 Comment Length        0000 (0)\n-6CD3D4 Disk Start            0000 (0)\n-6CD3D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD3D8 Ext File Attributes   00000000 (0)\n-6CD3DC Local Header Offset   00043984 (276868)\n-6CD3E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD3E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD420 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD422   Length              0005 (5)\n-6CD424   Flags               01 (1) 'Modification'\n-6CD425   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD429 CENTRAL HEADER #74    02014B50 (33639248)\n-6CD42D Created Zip Spec      14 (20) '2.0'\n-6CD42E Created OS            00 (0) 'MS-DOS'\n-6CD42F Extract Zip Spec      14 (20) '2.0'\n-6CD430 Extract OS            00 (0) 'MS-DOS'\n-6CD431 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD433 Compression Method    0000 (0) 'Stored'\n-6CD435 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD439 CRC                   6F4CF591 (1867314577)\n-6CD43D Compressed Size       00000278 (632)\n-6CD441 Uncompressed Size     00000278 (632)\n-6CD445 Filename Length       003B (59)\n-6CD447 Extra Length          0009 (9)\n-6CD449 Comment Length        0000 (0)\n-6CD44B Disk Start            0000 (0)\n-6CD44D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD44F Ext File Attributes   00000000 (0)\n-6CD453 Local Header Offset   00043B7F (277375)\n-6CD457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD492 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD494   Length              0005 (5)\n-6CD496   Flags               01 (1) 'Modification'\n-6CD497   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD49B CENTRAL HEADER #75    02014B50 (33639248)\n-6CD49F Created Zip Spec      14 (20) '2.0'\n-6CD4A0 Created OS            00 (0) 'MS-DOS'\n-6CD4A1 Extract Zip Spec      14 (20) '2.0'\n-6CD4A2 Extract OS            00 (0) 'MS-DOS'\n-6CD4A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD4A5 Compression Method    0000 (0) 'Stored'\n-6CD4A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD4AB CRC                   4D30A945 (1295034693)\n-6CD4AF Compressed Size       000001AF (431)\n-6CD4B3 Uncompressed Size     000001AF (431)\n-6CD4B7 Filename Length       0042 (66)\n-6CD4B9 Extra Length          0009 (9)\n-6CD4BB Comment Length        0000 (0)\n-6CD4BD Disk Start            0000 (0)\n-6CD4BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD4C1 Ext File Attributes   00000000 (0)\n-6CD4C5 Local Header Offset   00043E69 (278121)\n-6CD4C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD4C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD50B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD50D   Length              0005 (5)\n-6CD50F   Flags               01 (1) 'Modification'\n-6CD510   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD514 CENTRAL HEADER #76    02014B50 (33639248)\n-6CD518 Created Zip Spec      14 (20) '2.0'\n-6CD519 Created OS            00 (0) 'MS-DOS'\n-6CD51A Extract Zip Spec      14 (20) '2.0'\n-6CD51B Extract OS            00 (0) 'MS-DOS'\n-6CD51C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD51E Compression Method    0000 (0) 'Stored'\n-6CD520 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD524 CRC                   AE0B59B2 (2919979442)\n-6CD528 Compressed Size       00000053 (83)\n-6CD52C Uncompressed Size     00000053 (83)\n-6CD530 Filename Length       0058 (88)\n-6CD532 Extra Length          0009 (9)\n-6CD534 Comment Length        0000 (0)\n-6CD536 Disk Start            0000 (0)\n-6CD538 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD53A Ext File Attributes   00000000 (0)\n-6CD53E Local Header Offset   00044091 (278673)\n-6CD542 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD542: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD59A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD59C   Length              0005 (5)\n-6CD59E   Flags               01 (1) 'Modification'\n-6CD59F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD5A3 CENTRAL HEADER #77    02014B50 (33639248)\n-6CD5A7 Created Zip Spec      14 (20) '2.0'\n-6CD5A8 Created OS            00 (0) 'MS-DOS'\n-6CD5A9 Extract Zip Spec      14 (20) '2.0'\n-6CD5AA Extract OS            00 (0) 'MS-DOS'\n-6CD5AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD5AD Compression Method    0000 (0) 'Stored'\n-6CD5AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD5B3 CRC                   80BC13A6 (2159809446)\n-6CD5B7 Compressed Size       000000A2 (162)\n-6CD5BB Uncompressed Size     000000A2 (162)\n-6CD5BF Filename Length       0053 (83)\n-6CD5C1 Extra Length          0009 (9)\n-6CD5C3 Comment Length        0000 (0)\n-6CD5C5 Disk Start            0000 (0)\n-6CD5C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD5C9 Ext File Attributes   00000000 (0)\n-6CD5CD Local Header Offset   00044173 (278899)\n-6CD5D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD5D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD624 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD626   Length              0005 (5)\n-6CD628   Flags               01 (1) 'Modification'\n-6CD629   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD62D CENTRAL HEADER #78    02014B50 (33639248)\n-6CD631 Created Zip Spec      14 (20) '2.0'\n-6CD632 Created OS            00 (0) 'MS-DOS'\n-6CD633 Extract Zip Spec      14 (20) '2.0'\n-6CD634 Extract OS            00 (0) 'MS-DOS'\n-6CD635 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD637 Compression Method    0000 (0) 'Stored'\n-6CD639 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD63D CRC                   BA3A525C (3124384348)\n-6CD641 Compressed Size       00000071 (113)\n-6CD645 Uncompressed Size     00000071 (113)\n-6CD649 Filename Length       0049 (73)\n-6CD64B Extra Length          0009 (9)\n-6CD64D Comment Length        0000 (0)\n-6CD64F Disk Start            0000 (0)\n-6CD651 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD653 Ext File Attributes   00000000 (0)\n-6CD657 Local Header Offset   0004429F (279199)\n-6CD65B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD65B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD6A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD6A6   Length              0005 (5)\n-6CD6A8   Flags               01 (1) 'Modification'\n-6CD6A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD6AD CENTRAL HEADER #79    02014B50 (33639248)\n-6CD6B1 Created Zip Spec      14 (20) '2.0'\n-6CD6B2 Created OS            00 (0) 'MS-DOS'\n-6CD6B3 Extract Zip Spec      14 (20) '2.0'\n-6CD6B4 Extract OS            00 (0) 'MS-DOS'\n-6CD6B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD6B7 Compression Method    0000 (0) 'Stored'\n-6CD6B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD6BD CRC                   6F1FEDD0 (1864363472)\n-6CD6C1 Compressed Size       0000004D (77)\n-6CD6C5 Uncompressed Size     0000004D (77)\n-6CD6C9 Filename Length       0059 (89)\n-6CD6CB Extra Length          0009 (9)\n-6CD6CD Comment Length        0000 (0)\n-6CD6CF Disk Start            0000 (0)\n-6CD6D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD6D3 Ext File Attributes   00000000 (0)\n-6CD6D7 Local Header Offset   00044390 (279440)\n-6CD6DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD6DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD734 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD736   Length              0005 (5)\n-6CD738   Flags               01 (1) 'Modification'\n-6CD739   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD73D CENTRAL HEADER #80    02014B50 (33639248)\n-6CD741 Created Zip Spec      14 (20) '2.0'\n-6CD742 Created OS            00 (0) 'MS-DOS'\n-6CD743 Extract Zip Spec      14 (20) '2.0'\n-6CD744 Extract OS            00 (0) 'MS-DOS'\n-6CD745 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD747 Compression Method    0000 (0) 'Stored'\n-6CD749 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD74D CRC                   6F1FEDD0 (1864363472)\n-6CD751 Compressed Size       0000004D (77)\n-6CD755 Uncompressed Size     0000004D (77)\n-6CD759 Filename Length       0059 (89)\n-6CD75B Extra Length          0009 (9)\n-6CD75D Comment Length        0000 (0)\n-6CD75F Disk Start            0000 (0)\n-6CD761 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD763 Ext File Attributes   00000000 (0)\n-6CD767 Local Header Offset   0004446D (279661)\n-6CD76B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD76B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD7C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD7C6   Length              0005 (5)\n-6CD7C8   Flags               01 (1) 'Modification'\n-6CD7C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD7CD CENTRAL HEADER #81    02014B50 (33639248)\n-6CD7D1 Created Zip Spec      14 (20) '2.0'\n-6CD7D2 Created OS            00 (0) 'MS-DOS'\n-6CD7D3 Extract Zip Spec      14 (20) '2.0'\n-6CD7D4 Extract OS            00 (0) 'MS-DOS'\n-6CD7D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD7D7 Compression Method    0000 (0) 'Stored'\n-6CD7D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD7DD CRC                   78C43CAA (2026126506)\n-6CD7E1 Compressed Size       00000088 (136)\n-6CD7E5 Uncompressed Size     00000088 (136)\n-6CD7E9 Filename Length       004F (79)\n-6CD7EB Extra Length          0009 (9)\n-6CD7ED Comment Length        0000 (0)\n-6CD7EF Disk Start            0000 (0)\n-6CD7F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD7F3 Ext File Attributes   00000000 (0)\n-6CD7F7 Local Header Offset   0004454A (279882)\n-6CD7FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD7FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD84A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD84C   Length              0005 (5)\n-6CD84E   Flags               01 (1) 'Modification'\n-6CD84F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD853 CENTRAL HEADER #82    02014B50 (33639248)\n-6CD857 Created Zip Spec      14 (20) '2.0'\n-6CD858 Created OS            00 (0) 'MS-DOS'\n-6CD859 Extract Zip Spec      14 (20) '2.0'\n-6CD85A Extract OS            00 (0) 'MS-DOS'\n-6CD85B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD85D Compression Method    0000 (0) 'Stored'\n-6CD85F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD863 CRC                   2EA22547 (782378311)\n-6CD867 Compressed Size       00000048 (72)\n-6CD86B Uncompressed Size     00000048 (72)\n-6CD86F Filename Length       003E (62)\n-6CD871 Extra Length          0009 (9)\n-6CD873 Comment Length        0000 (0)\n-6CD875 Disk Start            0000 (0)\n-6CD877 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD879 Ext File Attributes   00000000 (0)\n-6CD87D Local Header Offset   00044658 (280152)\n-6CD881 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD881: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD8BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD8C1   Length              0005 (5)\n-6CD8C3   Flags               01 (1) 'Modification'\n-6CD8C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD8C8 CENTRAL HEADER #83    02014B50 (33639248)\n-6CD8CC Created Zip Spec      14 (20) '2.0'\n-6CD8CD Created OS            00 (0) 'MS-DOS'\n-6CD8CE Extract Zip Spec      14 (20) '2.0'\n-6CD8CF Extract OS            00 (0) 'MS-DOS'\n-6CD8D0 General Purpose Flag  0000 (0)\n-6CD8D2 Compression Method    0000 (0) 'Stored'\n-6CD8D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD8D8 CRC                   00000000 (0)\n-6CD8DC Compressed Size       00000000 (0)\n-6CD8E0 Uncompressed Size     00000000 (0)\n-6CD8E4 Filename Length       000F (15)\n-6CD8E6 Extra Length          0009 (9)\n-6CD8E8 Comment Length        0000 (0)\n-6CD8EA Disk Start            0000 (0)\n-6CD8EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD8EE Ext File Attributes   00000000 (0)\n-6CD8F2 Local Header Offset   00044715 (280341)\n-6CD8F6 Filename              'XXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD8F6: Filename 'XXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD905 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD907   Length              0005 (5)\n-6CD909   Flags               01 (1) 'Modification'\n-6CD90A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD90E CENTRAL HEADER #84    02014B50 (33639248)\n-6CD912 Created Zip Spec      14 (20) '2.0'\n-6CD913 Created OS            00 (0) 'MS-DOS'\n-6CD914 Extract Zip Spec      14 (20) '2.0'\n-6CD915 Extract OS            00 (0) 'MS-DOS'\n-6CD916 General Purpose Flag  0000 (0)\n-6CD918 Compression Method    0000 (0) 'Stored'\n-6CD91A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD91E CRC                   00000000 (0)\n-6CD922 Compressed Size       00000000 (0)\n-6CD926 Uncompressed Size     00000000 (0)\n-6CD92A Filename Length       001B (27)\n-6CD92C Extra Length          0009 (9)\n-6CD92E Comment Length        0000 (0)\n-6CD930 Disk Start            0000 (0)\n-6CD932 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD934 Ext File Attributes   00000000 (0)\n-6CD938 Local Header Offset   0004474B (280395)\n-6CD93C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD93C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD957 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD959   Length              0005 (5)\n-6CD95B   Flags               01 (1) 'Modification'\n-6CD95C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD960 CENTRAL HEADER #85    02014B50 (33639248)\n-6CD964 Created Zip Spec      14 (20) '2.0'\n-6CD965 Created OS            00 (0) 'MS-DOS'\n-6CD966 Extract Zip Spec      14 (20) '2.0'\n-6CD967 Extract OS            00 (0) 'MS-DOS'\n-6CD968 General Purpose Flag  0000 (0)\n-6CD96A Compression Method    0000 (0) 'Stored'\n-6CD96C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD970 CRC                   00000000 (0)\n-6CD974 Compressed Size       00000000 (0)\n-6CD978 Uncompressed Size     00000000 (0)\n-6CD97C Filename Length       0028 (40)\n-6CD97E Extra Length          0009 (9)\n-6CD980 Comment Length        0000 (0)\n-6CD982 Disk Start            0000 (0)\n-6CD984 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD986 Ext File Attributes   00000000 (0)\n-6CD98A Local Header Offset   0004478D (280461)\n-6CD98E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD98E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CD9B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CD9B8   Length              0005 (5)\n-6CD9BA   Flags               01 (1) 'Modification'\n-6CD9BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CD9BF CENTRAL HEADER #86    02014B50 (33639248)\n-6CD9C3 Created Zip Spec      14 (20) '2.0'\n-6CD9C4 Created OS            00 (0) 'MS-DOS'\n-6CD9C5 Extract Zip Spec      14 (20) '2.0'\n-6CD9C6 Extract OS            00 (0) 'MS-DOS'\n-6CD9C7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CD9C9 Compression Method    0000 (0) 'Stored'\n-6CD9CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CD9CF CRC                   00000000 (0)\n-6CD9D3 Compressed Size       00000000 (0)\n-6CD9D7 Uncompressed Size     00000000 (0)\n-6CD9DB Filename Length       0036 (54)\n-6CD9DD Extra Length          0009 (9)\n-6CD9DF Comment Length        0000 (0)\n-6CD9E1 Disk Start            0000 (0)\n-6CD9E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CD9E5 Ext File Attributes   00000000 (0)\n-6CD9E9 Local Header Offset   000447DC (280540)\n-6CD9ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CD9ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDA23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDA25   Length              0005 (5)\n-6CDA27   Flags               01 (1) 'Modification'\n-6CDA28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDA2C CENTRAL HEADER #87    02014B50 (33639248)\n-6CDA30 Created Zip Spec      14 (20) '2.0'\n-6CDA31 Created OS            00 (0) 'MS-DOS'\n-6CDA32 Extract Zip Spec      14 (20) '2.0'\n-6CDA33 Extract OS            00 (0) 'MS-DOS'\n-6CDA34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDA36 Compression Method    0000 (0) 'Stored'\n-6CDA38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDA3C CRC                   A18F9C9F (2710543519)\n-6CDA40 Compressed Size       000025D9 (9689)\n-6CDA44 Uncompressed Size     000025D9 (9689)\n-6CDA48 Filename Length       002F (47)\n-6CDA4A Extra Length          0009 (9)\n-6CDA4C Comment Length        0000 (0)\n-6CDA4E Disk Start            0000 (0)\n-6CDA50 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDA52 Ext File Attributes   00000000 (0)\n-6CDA56 Local Header Offset   00044849 (280649)\n-6CDA5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDA5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDA89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDA8B   Length              0005 (5)\n-6CDA8D   Flags               01 (1) 'Modification'\n-6CDA8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDA92 CENTRAL HEADER #88    02014B50 (33639248)\n-6CDA96 Created Zip Spec      14 (20) '2.0'\n-6CDA97 Created OS            00 (0) 'MS-DOS'\n-6CDA98 Extract Zip Spec      14 (20) '2.0'\n-6CDA99 Extract OS            00 (0) 'MS-DOS'\n-6CDA9A General Purpose Flag  0000 (0)\n-6CDA9C Compression Method    0000 (0) 'Stored'\n-6CDA9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDAA2 CRC                   00000000 (0)\n-6CDAA6 Compressed Size       00000000 (0)\n-6CDAAA Uncompressed Size     00000000 (0)\n-6CDAAE Filename Length       0020 (32)\n-6CDAB0 Extra Length          0009 (9)\n-6CDAB2 Comment Length        0000 (0)\n-6CDAB4 Disk Start            0000 (0)\n-6CDAB6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDAB8 Ext File Attributes   00000000 (0)\n-6CDABC Local Header Offset   00046E88 (290440)\n-6CDAC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDAC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDAE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDAE2   Length              0005 (5)\n-6CDAE4   Flags               01 (1) 'Modification'\n-6CDAE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDAE9 CENTRAL HEADER #89    02014B50 (33639248)\n-6CDAED Created Zip Spec      14 (20) '2.0'\n-6CDAEE Created OS            00 (0) 'MS-DOS'\n-6CDAEF Extract Zip Spec      14 (20) '2.0'\n-6CDAF0 Extract OS            00 (0) 'MS-DOS'\n-6CDAF1 General Purpose Flag  0000 (0)\n-6CDAF3 Compression Method    0000 (0) 'Stored'\n-6CDAF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDAF9 CRC                   00000000 (0)\n-6CDAFD Compressed Size       00000000 (0)\n-6CDB01 Uncompressed Size     00000000 (0)\n-6CDB05 Filename Length       002E (46)\n-6CDB07 Extra Length          0009 (9)\n-6CDB09 Comment Length        0000 (0)\n-6CDB0B Disk Start            0000 (0)\n-6CDB0D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDB0F Ext File Attributes   00000000 (0)\n-6CDB13 Local Header Offset   00046ECF (290511)\n-6CDB17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDB17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDB45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDB47   Length              0005 (5)\n-6CDB49   Flags               01 (1) 'Modification'\n-6CDB4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDB4E CENTRAL HEADER #90    02014B50 (33639248)\n-6CDB52 Created Zip Spec      14 (20) '2.0'\n-6CDB53 Created OS            00 (0) 'MS-DOS'\n-6CDB54 Extract Zip Spec      14 (20) '2.0'\n-6CDB55 Extract OS            00 (0) 'MS-DOS'\n-6CDB56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDB58 Compression Method    0000 (0) 'Stored'\n-6CDB5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDB5E CRC                   00000000 (0)\n-6CDB62 Compressed Size       00000000 (0)\n-6CDB66 Uncompressed Size     00000000 (0)\n-6CDB6A Filename Length       003C (60)\n-6CDB6C Extra Length          0009 (9)\n-6CDB6E Comment Length        0000 (0)\n-6CDB70 Disk Start            0000 (0)\n-6CDB72 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDB74 Ext File Attributes   00000000 (0)\n-6CDB78 Local Header Offset   00046F24 (290596)\n-6CDB7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDB7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDBB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDBBA   Length              0005 (5)\n-6CDBBC   Flags               01 (1) 'Modification'\n-6CDBBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDBC1 CENTRAL HEADER #91    02014B50 (33639248)\n-6CDBC5 Created Zip Spec      14 (20) '2.0'\n-6CDBC6 Created OS            00 (0) 'MS-DOS'\n-6CDBC7 Extract Zip Spec      14 (20) '2.0'\n-6CDBC8 Extract OS            00 (0) 'MS-DOS'\n-6CDBC9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDBCB Compression Method    0000 (0) 'Stored'\n-6CDBCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDBD1 CRC                   3E035C22 (1040407586)\n-6CDBD5 Compressed Size       00000A38 (2616)\n-6CDBD9 Uncompressed Size     00000A38 (2616)\n-6CDBDD Filename Length       0035 (53)\n-6CDBDF Extra Length          0009 (9)\n-6CDBE1 Comment Length        0000 (0)\n-6CDBE3 Disk Start            0000 (0)\n-6CDBE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDBE7 Ext File Attributes   00000000 (0)\n-6CDBEB Local Header Offset   00046F97 (290711)\n-6CDBEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDBEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDC24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDC26   Length              0005 (5)\n-6CDC28   Flags               01 (1) 'Modification'\n-6CDC29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDC2D CENTRAL HEADER #92    02014B50 (33639248)\n-6CDC31 Created Zip Spec      14 (20) '2.0'\n-6CDC32 Created OS            00 (0) 'MS-DOS'\n-6CDC33 Extract Zip Spec      14 (20) '2.0'\n-6CDC34 Extract OS            00 (0) 'MS-DOS'\n-6CDC35 General Purpose Flag  0000 (0)\n-6CDC37 Compression Method    0000 (0) 'Stored'\n-6CDC39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDC3D CRC                   00000000 (0)\n-6CDC41 Compressed Size       00000000 (0)\n-6CDC45 Uncompressed Size     00000000 (0)\n-6CDC49 Filename Length       002D (45)\n-6CDC4B Extra Length          0009 (9)\n-6CDC4D Comment Length        0000 (0)\n-6CDC4F Disk Start            0000 (0)\n-6CDC51 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDC53 Ext File Attributes   00000000 (0)\n-6CDC57 Local Header Offset   00047A3B (293435)\n-6CDC5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDC5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDC88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDC8A   Length              0005 (5)\n-6CDC8C   Flags               01 (1) 'Modification'\n-6CDC8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDC91 CENTRAL HEADER #93    02014B50 (33639248)\n-6CDC95 Created Zip Spec      14 (20) '2.0'\n-6CDC96 Created OS            00 (0) 'MS-DOS'\n-6CDC97 Extract Zip Spec      14 (20) '2.0'\n-6CDC98 Extract OS            00 (0) 'MS-DOS'\n-6CDC99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDC9B Compression Method    0000 (0) 'Stored'\n-6CDC9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDCA1 CRC                   00000000 (0)\n-6CDCA5 Compressed Size       00000000 (0)\n-6CDCA9 Uncompressed Size     00000000 (0)\n-6CDCAD Filename Length       003B (59)\n-6CDCAF Extra Length          0009 (9)\n-6CDCB1 Comment Length        0000 (0)\n-6CDCB3 Disk Start            0000 (0)\n-6CDCB5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDCB7 Ext File Attributes   00000000 (0)\n-6CDCBB Local Header Offset   00047A8F (293519)\n-6CDCBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDCBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDCFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDCFC   Length              0005 (5)\n-6CDCFE   Flags               01 (1) 'Modification'\n-6CDCFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDD03 CENTRAL HEADER #94    02014B50 (33639248)\n-6CDD07 Created Zip Spec      14 (20) '2.0'\n-6CDD08 Created OS            00 (0) 'MS-DOS'\n-6CDD09 Extract Zip Spec      14 (20) '2.0'\n-6CDD0A Extract OS            00 (0) 'MS-DOS'\n-6CDD0B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDD0D Compression Method    0000 (0) 'Stored'\n-6CDD0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDD13 CRC                   4D73DC93 (1299438739)\n-6CDD17 Compressed Size       00000BA2 (2978)\n-6CDD1B Uncompressed Size     00000BA2 (2978)\n-6CDD1F Filename Length       0034 (52)\n-6CDD21 Extra Length          0009 (9)\n-6CDD23 Comment Length        0000 (0)\n-6CDD25 Disk Start            0000 (0)\n-6CDD27 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDD29 Ext File Attributes   00000000 (0)\n-6CDD2D Local Header Offset   00047B01 (293633)\n-6CDD31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDD31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDD65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDD67   Length              0005 (5)\n-6CDD69   Flags               01 (1) 'Modification'\n-6CDD6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDD6E CENTRAL HEADER #95    02014B50 (33639248)\n-6CDD72 Created Zip Spec      14 (20) '2.0'\n-6CDD73 Created OS            00 (0) 'MS-DOS'\n-6CDD74 Extract Zip Spec      14 (20) '2.0'\n-6CDD75 Extract OS            00 (0) 'MS-DOS'\n-6CDD76 General Purpose Flag  0000 (0)\n-6CDD78 Compression Method    0000 (0) 'Stored'\n-6CDD7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDD7E CRC                   00000000 (0)\n-6CDD82 Compressed Size       00000000 (0)\n-6CDD86 Uncompressed Size     00000000 (0)\n-6CDD8A Filename Length       0031 (49)\n-6CDD8C Extra Length          0009 (9)\n-6CDD8E Comment Length        0000 (0)\n-6CDD90 Disk Start            0000 (0)\n-6CDD92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDD94 Ext File Attributes   00000000 (0)\n-6CDD98 Local Header Offset   0004870E (296718)\n-6CDD9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDD9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDDCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDDCF   Length              0005 (5)\n-6CDDD1   Flags               01 (1) 'Modification'\n-6CDDD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDDD6 CENTRAL HEADER #96    02014B50 (33639248)\n-6CDDDA Created Zip Spec      14 (20) '2.0'\n-6CDDDB Created OS            00 (0) 'MS-DOS'\n-6CDDDC Extract Zip Spec      14 (20) '2.0'\n-6CDDDD Extract OS            00 (0) 'MS-DOS'\n-6CDDDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDDE0 Compression Method    0000 (0) 'Stored'\n-6CDDE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDDE6 CRC                   00000000 (0)\n-6CDDEA Compressed Size       00000000 (0)\n-6CDDEE Uncompressed Size     00000000 (0)\n-6CDDF2 Filename Length       003F (63)\n-6CDDF4 Extra Length          0009 (9)\n-6CDDF6 Comment Length        0000 (0)\n-6CDDF8 Disk Start            0000 (0)\n-6CDDFA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDDFC Ext File Attributes   00000000 (0)\n-6CDE00 Local Header Offset   00048766 (296806)\n-6CDE04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDE04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDE43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDE45   Length              0005 (5)\n-6CDE47   Flags               01 (1) 'Modification'\n-6CDE48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDE4C CENTRAL HEADER #97    02014B50 (33639248)\n-6CDE50 Created Zip Spec      14 (20) '2.0'\n-6CDE51 Created OS            00 (0) 'MS-DOS'\n-6CDE52 Extract Zip Spec      14 (20) '2.0'\n-6CDE53 Extract OS            00 (0) 'MS-DOS'\n-6CDE54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDE56 Compression Method    0000 (0) 'Stored'\n-6CDE58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDE5C CRC                   417FF1D2 (1098904018)\n-6CDE60 Compressed Size       0000113A (4410)\n-6CDE64 Uncompressed Size     0000113A (4410)\n-6CDE68 Filename Length       0038 (56)\n-6CDE6A Extra Length          0009 (9)\n-6CDE6C Comment Length        0000 (0)\n-6CDE6E Disk Start            0000 (0)\n-6CDE70 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDE72 Ext File Attributes   00000000 (0)\n-6CDE76 Local Header Offset   000487DC (296924)\n-6CDE7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDE7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDEB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDEB4   Length              0005 (5)\n-6CDEB6   Flags               01 (1) 'Modification'\n-6CDEB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDEBB CENTRAL HEADER #98    02014B50 (33639248)\n-6CDEBF Created Zip Spec      14 (20) '2.0'\n-6CDEC0 Created OS            00 (0) 'MS-DOS'\n-6CDEC1 Extract Zip Spec      14 (20) '2.0'\n-6CDEC2 Extract OS            00 (0) 'MS-DOS'\n-6CDEC3 General Purpose Flag  0000 (0)\n-6CDEC5 Compression Method    0000 (0) 'Stored'\n-6CDEC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDECB CRC                   00000000 (0)\n-6CDECF Compressed Size       00000000 (0)\n-6CDED3 Uncompressed Size     00000000 (0)\n-6CDED7 Filename Length       0031 (49)\n-6CDED9 Extra Length          0009 (9)\n-6CDEDB Comment Length        0000 (0)\n-6CDEDD Disk Start            0000 (0)\n-6CDEDF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDEE1 Ext File Attributes   00000000 (0)\n-6CDEE5 Local Header Offset   00049985 (301445)\n-6CDEE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDEE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDF1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDF1C   Length              0005 (5)\n-6CDF1E   Flags               01 (1) 'Modification'\n-6CDF1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDF23 CENTRAL HEADER #99    02014B50 (33639248)\n-6CDF27 Created Zip Spec      14 (20) '2.0'\n-6CDF28 Created OS            00 (0) 'MS-DOS'\n-6CDF29 Extract Zip Spec      14 (20) '2.0'\n-6CDF2A Extract OS            00 (0) 'MS-DOS'\n-6CDF2B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDF2D Compression Method    0000 (0) 'Stored'\n-6CDF2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDF33 CRC                   00000000 (0)\n-6CDF37 Compressed Size       00000000 (0)\n-6CDF3B Uncompressed Size     00000000 (0)\n-6CDF3F Filename Length       003F (63)\n-6CDF41 Extra Length          0009 (9)\n-6CDF43 Comment Length        0000 (0)\n-6CDF45 Disk Start            0000 (0)\n-6CDF47 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDF49 Ext File Attributes   00000000 (0)\n-6CDF4D Local Header Offset   000499DD (301533)\n-6CDF51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDF51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDF90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CDF92   Length              0005 (5)\n-6CDF94   Flags               01 (1) 'Modification'\n-6CDF95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CDF99 CENTRAL HEADER #100   02014B50 (33639248)\n-6CDF9D Created Zip Spec      14 (20) '2.0'\n-6CDF9E Created OS            00 (0) 'MS-DOS'\n-6CDF9F Extract Zip Spec      14 (20) '2.0'\n-6CDFA0 Extract OS            00 (0) 'MS-DOS'\n-6CDFA1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CDFA3 Compression Method    0000 (0) 'Stored'\n-6CDFA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CDFA9 CRC                   48945B27 (1217682215)\n-6CDFAD Compressed Size       00001F82 (8066)\n-6CDFB1 Uncompressed Size     00001F82 (8066)\n-6CDFB5 Filename Length       0038 (56)\n-6CDFB7 Extra Length          0009 (9)\n-6CDFB9 Comment Length        0000 (0)\n-6CDFBB Disk Start            0000 (0)\n-6CDFBD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CDFBF Ext File Attributes   00000000 (0)\n-6CDFC3 Local Header Offset   00049A53 (301651)\n-6CDFC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CDFC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CDFFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE001   Length              0005 (5)\n-6CE003   Flags               01 (1) 'Modification'\n-6CE004   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE008 CENTRAL HEADER #101   02014B50 (33639248)\n-6CE00C Created Zip Spec      14 (20) '2.0'\n-6CE00D Created OS            00 (0) 'MS-DOS'\n-6CE00E Extract Zip Spec      14 (20) '2.0'\n-6CE00F Extract OS            00 (0) 'MS-DOS'\n-6CE010 General Purpose Flag  0000 (0)\n-6CE012 Compression Method    0000 (0) 'Stored'\n-6CE014 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE018 CRC                   00000000 (0)\n-6CE01C Compressed Size       00000000 (0)\n-6CE020 Uncompressed Size     00000000 (0)\n-6CE024 Filename Length       0034 (52)\n-6CE026 Extra Length          0009 (9)\n-6CE028 Comment Length        0000 (0)\n-6CE02A Disk Start            0000 (0)\n-6CE02C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE02E Ext File Attributes   00000000 (0)\n-6CE032 Local Header Offset   0004BA44 (309828)\n-6CE036 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE036: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE06A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE06C   Length              0005 (5)\n-6CE06E   Flags               01 (1) 'Modification'\n-6CE06F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE073 CENTRAL HEADER #102   02014B50 (33639248)\n-6CE077 Created Zip Spec      14 (20) '2.0'\n-6CE078 Created OS            00 (0) 'MS-DOS'\n-6CE079 Extract Zip Spec      14 (20) '2.0'\n-6CE07A Extract OS            00 (0) 'MS-DOS'\n-6CE07B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE07D Compression Method    0000 (0) 'Stored'\n-6CE07F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE083 CRC                   00000000 (0)\n-6CE087 Compressed Size       00000000 (0)\n-6CE08B Uncompressed Size     00000000 (0)\n-6CE08F Filename Length       0042 (66)\n-6CE091 Extra Length          0009 (9)\n-6CE093 Comment Length        0000 (0)\n-6CE095 Disk Start            0000 (0)\n-6CE097 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE099 Ext File Attributes   00000000 (0)\n-6CE09D Local Header Offset   0004BA9F (309919)\n-6CE0A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE0A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE0E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE0E5   Length              0005 (5)\n-6CE0E7   Flags               01 (1) 'Modification'\n-6CE0E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE0EC CENTRAL HEADER #103   02014B50 (33639248)\n-6CE0F0 Created Zip Spec      14 (20) '2.0'\n-6CE0F1 Created OS            00 (0) 'MS-DOS'\n-6CE0F2 Extract Zip Spec      14 (20) '2.0'\n-6CE0F3 Extract OS            00 (0) 'MS-DOS'\n-6CE0F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE0F6 Compression Method    0000 (0) 'Stored'\n-6CE0F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE0FC CRC                   FF3886BE (4281894590)\n-6CE100 Compressed Size       0000190E (6414)\n-6CE104 Uncompressed Size     0000190E (6414)\n-6CE108 Filename Length       003B (59)\n-6CE10A Extra Length          0009 (9)\n-6CE10C Comment Length        0000 (0)\n-6CE10E Disk Start            0000 (0)\n-6CE110 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE112 Ext File Attributes   00000000 (0)\n-6CE116 Local Header Offset   0004BB18 (310040)\n-6CE11A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE11A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE155 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE157   Length              0005 (5)\n-6CE159   Flags               01 (1) 'Modification'\n-6CE15A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE15E CENTRAL HEADER #104   02014B50 (33639248)\n-6CE162 Created Zip Spec      14 (20) '2.0'\n-6CE163 Created OS            00 (0) 'MS-DOS'\n-6CE164 Extract Zip Spec      14 (20) '2.0'\n-6CE165 Extract OS            00 (0) 'MS-DOS'\n-6CE166 General Purpose Flag  0000 (0)\n-6CE168 Compression Method    0000 (0) 'Stored'\n-6CE16A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE16E CRC                   00000000 (0)\n-6CE172 Compressed Size       00000000 (0)\n-6CE176 Uncompressed Size     00000000 (0)\n-6CE17A Filename Length       003A (58)\n-6CE17C Extra Length          0009 (9)\n-6CE17E Comment Length        0000 (0)\n-6CE180 Disk Start            0000 (0)\n-6CE182 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE184 Ext File Attributes   00000000 (0)\n-6CE188 Local Header Offset   0004D498 (316568)\n-6CE18C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE18C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE1C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE1C8   Length              0005 (5)\n-6CE1CA   Flags               01 (1) 'Modification'\n-6CE1CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE1CF CENTRAL HEADER #105   02014B50 (33639248)\n-6CE1D3 Created Zip Spec      14 (20) '2.0'\n-6CE1D4 Created OS            00 (0) 'MS-DOS'\n-6CE1D5 Extract Zip Spec      14 (20) '2.0'\n-6CE1D6 Extract OS            00 (0) 'MS-DOS'\n-6CE1D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE1D9 Compression Method    0000 (0) 'Stored'\n-6CE1DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE1DF CRC                   00000000 (0)\n-6CE1E3 Compressed Size       00000000 (0)\n-6CE1E7 Uncompressed Size     00000000 (0)\n-6CE1EB Filename Length       0048 (72)\n-6CE1ED Extra Length          0009 (9)\n-6CE1EF Comment Length        0000 (0)\n-6CE1F1 Disk Start            0000 (0)\n-6CE1F3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE1F5 Ext File Attributes   00000000 (0)\n-6CE1F9 Local Header Offset   0004D4F9 (316665)\n-6CE1FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE1FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE245 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE247   Length              0005 (5)\n-6CE249   Flags               01 (1) 'Modification'\n-6CE24A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE24E CENTRAL HEADER #106   02014B50 (33639248)\n-6CE252 Created Zip Spec      14 (20) '2.0'\n-6CE253 Created OS            00 (0) 'MS-DOS'\n-6CE254 Extract Zip Spec      14 (20) '2.0'\n-6CE255 Extract OS            00 (0) 'MS-DOS'\n-6CE256 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE258 Compression Method    0000 (0) 'Stored'\n-6CE25A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE25E CRC                   7376C130 (1937162544)\n-6CE262 Compressed Size       0000097C (2428)\n-6CE266 Uncompressed Size     0000097C (2428)\n-6CE26A Filename Length       0041 (65)\n-6CE26C Extra Length          0009 (9)\n-6CE26E Comment Length        0000 (0)\n-6CE270 Disk Start            0000 (0)\n-6CE272 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE274 Ext File Attributes   00000000 (0)\n-6CE278 Local Header Offset   0004D578 (316792)\n-6CE27C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE27C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE2BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE2BF   Length              0005 (5)\n-6CE2C1   Flags               01 (1) 'Modification'\n-6CE2C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE2C6 CENTRAL HEADER #107   02014B50 (33639248)\n-6CE2CA Created Zip Spec      14 (20) '2.0'\n-6CE2CB Created OS            00 (0) 'MS-DOS'\n-6CE2CC Extract Zip Spec      14 (20) '2.0'\n-6CE2CD Extract OS            00 (0) 'MS-DOS'\n-6CE2CE General Purpose Flag  0000 (0)\n-6CE2D0 Compression Method    0000 (0) 'Stored'\n-6CE2D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE2D6 CRC                   00000000 (0)\n-6CE2DA Compressed Size       00000000 (0)\n-6CE2DE Uncompressed Size     00000000 (0)\n-6CE2E2 Filename Length       003A (58)\n-6CE2E4 Extra Length          0009 (9)\n-6CE2E6 Comment Length        0000 (0)\n-6CE2E8 Disk Start            0000 (0)\n-6CE2EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE2EC Ext File Attributes   00000000 (0)\n-6CE2F0 Local Header Offset   0004DF6C (319340)\n-6CE2F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE2F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE32E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE330   Length              0005 (5)\n-6CE332   Flags               01 (1) 'Modification'\n-6CE333   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE337 CENTRAL HEADER #108   02014B50 (33639248)\n-6CE33B Created Zip Spec      14 (20) '2.0'\n-6CE33C Created OS            00 (0) 'MS-DOS'\n-6CE33D Extract Zip Spec      14 (20) '2.0'\n-6CE33E Extract OS            00 (0) 'MS-DOS'\n-6CE33F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE341 Compression Method    0000 (0) 'Stored'\n-6CE343 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE347 CRC                   00000000 (0)\n-6CE34B Compressed Size       00000000 (0)\n-6CE34F Uncompressed Size     00000000 (0)\n-6CE353 Filename Length       0048 (72)\n-6CE355 Extra Length          0009 (9)\n-6CE357 Comment Length        0000 (0)\n-6CE359 Disk Start            0000 (0)\n-6CE35B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE35D Ext File Attributes   00000000 (0)\n-6CE361 Local Header Offset   0004DFCD (319437)\n-6CE365 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE365: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE3AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE3AF   Length              0005 (5)\n-6CE3B1   Flags               01 (1) 'Modification'\n-6CE3B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE3B6 CENTRAL HEADER #109   02014B50 (33639248)\n-6CE3BA Created Zip Spec      14 (20) '2.0'\n-6CE3BB Created OS            00 (0) 'MS-DOS'\n-6CE3BC Extract Zip Spec      14 (20) '2.0'\n-6CE3BD Extract OS            00 (0) 'MS-DOS'\n-6CE3BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE3C0 Compression Method    0000 (0) 'Stored'\n-6CE3C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE3C6 CRC                   4BC00B23 (1270876963)\n-6CE3CA Compressed Size       00000829 (2089)\n-6CE3CE Uncompressed Size     00000829 (2089)\n-6CE3D2 Filename Length       0041 (65)\n-6CE3D4 Extra Length          0009 (9)\n-6CE3D6 Comment Length        0000 (0)\n-6CE3D8 Disk Start            0000 (0)\n-6CE3DA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE3DC Ext File Attributes   00000000 (0)\n-6CE3E0 Local Header Offset   0004E04C (319564)\n-6CE3E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE3E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE427   Length              0005 (5)\n-6CE429   Flags               01 (1) 'Modification'\n-6CE42A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE42E CENTRAL HEADER #110   02014B50 (33639248)\n-6CE432 Created Zip Spec      14 (20) '2.0'\n-6CE433 Created OS            00 (0) 'MS-DOS'\n-6CE434 Extract Zip Spec      14 (20) '2.0'\n-6CE435 Extract OS            00 (0) 'MS-DOS'\n-6CE436 General Purpose Flag  0000 (0)\n-6CE438 Compression Method    0000 (0) 'Stored'\n-6CE43A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE43E CRC                   00000000 (0)\n-6CE442 Compressed Size       00000000 (0)\n-6CE446 Uncompressed Size     00000000 (0)\n-6CE44A Filename Length       0038 (56)\n-6CE44C Extra Length          0009 (9)\n-6CE44E Comment Length        0000 (0)\n-6CE450 Disk Start            0000 (0)\n-6CE452 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE454 Ext File Attributes   00000000 (0)\n-6CE458 Local Header Offset   0004E8ED (321773)\n-6CE45C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE45C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE494 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE496   Length              0005 (5)\n-6CE498   Flags               01 (1) 'Modification'\n-6CE499   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE49D CENTRAL HEADER #111   02014B50 (33639248)\n-6CE4A1 Created Zip Spec      14 (20) '2.0'\n-6CE4A2 Created OS            00 (0) 'MS-DOS'\n-6CE4A3 Extract Zip Spec      14 (20) '2.0'\n-6CE4A4 Extract OS            00 (0) 'MS-DOS'\n-6CE4A5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE4A7 Compression Method    0000 (0) 'Stored'\n-6CE4A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE4AD CRC                   00000000 (0)\n-6CE4B1 Compressed Size       00000000 (0)\n-6CE4B5 Uncompressed Size     00000000 (0)\n-6CE4B9 Filename Length       0046 (70)\n-6CE4BB Extra Length          0009 (9)\n-6CE4BD Comment Length        0000 (0)\n-6CE4BF Disk Start            0000 (0)\n-6CE4C1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE4C3 Ext File Attributes   00000000 (0)\n-6CE4C7 Local Header Offset   0004E94C (321868)\n-6CE4CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE4CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE511 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE513   Length              0005 (5)\n-6CE515   Flags               01 (1) 'Modification'\n-6CE516   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE51A CENTRAL HEADER #112   02014B50 (33639248)\n-6CE51E Created Zip Spec      14 (20) '2.0'\n-6CE51F Created OS            00 (0) 'MS-DOS'\n-6CE520 Extract Zip Spec      14 (20) '2.0'\n-6CE521 Extract OS            00 (0) 'MS-DOS'\n-6CE522 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE524 Compression Method    0000 (0) 'Stored'\n-6CE526 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE52A CRC                   FB57BB2D (4216830765)\n-6CE52E Compressed Size       00000AD3 (2771)\n-6CE532 Uncompressed Size     00000AD3 (2771)\n-6CE536 Filename Length       003F (63)\n-6CE538 Extra Length          0009 (9)\n-6CE53A Comment Length        0000 (0)\n-6CE53C Disk Start            0000 (0)\n-6CE53E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE540 Ext File Attributes   00000000 (0)\n-6CE544 Local Header Offset   0004E9C9 (321993)\n-6CE548 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE548: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE587 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE589   Length              0005 (5)\n-6CE58B   Flags               01 (1) 'Modification'\n-6CE58C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE590 CENTRAL HEADER #113   02014B50 (33639248)\n-6CE594 Created Zip Spec      14 (20) '2.0'\n-6CE595 Created OS            00 (0) 'MS-DOS'\n-6CE596 Extract Zip Spec      14 (20) '2.0'\n-6CE597 Extract OS            00 (0) 'MS-DOS'\n-6CE598 General Purpose Flag  0000 (0)\n-6CE59A Compression Method    0000 (0) 'Stored'\n-6CE59C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE5A0 CRC                   00000000 (0)\n-6CE5A4 Compressed Size       00000000 (0)\n-6CE5A8 Uncompressed Size     00000000 (0)\n-6CE5AC Filename Length       0039 (57)\n-6CE5AE Extra Length          0009 (9)\n-6CE5B0 Comment Length        0000 (0)\n-6CE5B2 Disk Start            0000 (0)\n-6CE5B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE5B6 Ext File Attributes   00000000 (0)\n-6CE5BA Local Header Offset   0004F512 (324882)\n-6CE5BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE5BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE5F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE5F9   Length              0005 (5)\n-6CE5FB   Flags               01 (1) 'Modification'\n-6CE5FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE600 CENTRAL HEADER #114   02014B50 (33639248)\n-6CE604 Created Zip Spec      14 (20) '2.0'\n-6CE605 Created OS            00 (0) 'MS-DOS'\n-6CE606 Extract Zip Spec      14 (20) '2.0'\n-6CE607 Extract OS            00 (0) 'MS-DOS'\n-6CE608 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE60A Compression Method    0000 (0) 'Stored'\n-6CE60C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE610 CRC                   00000000 (0)\n-6CE614 Compressed Size       00000000 (0)\n-6CE618 Uncompressed Size     00000000 (0)\n-6CE61C Filename Length       0047 (71)\n-6CE61E Extra Length          0009 (9)\n-6CE620 Comment Length        0000 (0)\n-6CE622 Disk Start            0000 (0)\n-6CE624 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE626 Ext File Attributes   00000000 (0)\n-6CE62A Local Header Offset   0004F572 (324978)\n-6CE62E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE62E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE675 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE677   Length              0005 (5)\n-6CE679   Flags               01 (1) 'Modification'\n-6CE67A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE67E CENTRAL HEADER #115   02014B50 (33639248)\n-6CE682 Created Zip Spec      14 (20) '2.0'\n-6CE683 Created OS            00 (0) 'MS-DOS'\n-6CE684 Extract Zip Spec      14 (20) '2.0'\n-6CE685 Extract OS            00 (0) 'MS-DOS'\n-6CE686 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE688 Compression Method    0000 (0) 'Stored'\n-6CE68A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE68E CRC                   CFD7D535 (3487028533)\n-6CE692 Compressed Size       00000819 (2073)\n-6CE696 Uncompressed Size     00000819 (2073)\n-6CE69A Filename Length       0040 (64)\n-6CE69C Extra Length          0009 (9)\n-6CE69E Comment Length        0000 (0)\n-6CE6A0 Disk Start            0000 (0)\n-6CE6A2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE6A4 Ext File Attributes   00000000 (0)\n-6CE6A8 Local Header Offset   0004F5F0 (325104)\n-6CE6AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE6AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE6EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE6EE   Length              0005 (5)\n-6CE6F0   Flags               01 (1) 'Modification'\n-6CE6F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE6F5 CENTRAL HEADER #116   02014B50 (33639248)\n-6CE6F9 Created Zip Spec      14 (20) '2.0'\n-6CE6FA Created OS            00 (0) 'MS-DOS'\n-6CE6FB Extract Zip Spec      14 (20) '2.0'\n-6CE6FC Extract OS            00 (0) 'MS-DOS'\n-6CE6FD General Purpose Flag  0000 (0)\n-6CE6FF Compression Method    0000 (0) 'Stored'\n-6CE701 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE705 CRC                   00000000 (0)\n-6CE709 Compressed Size       00000000 (0)\n-6CE70D Uncompressed Size     00000000 (0)\n-6CE711 Filename Length       003D (61)\n-6CE713 Extra Length          0009 (9)\n-6CE715 Comment Length        0000 (0)\n-6CE717 Disk Start            0000 (0)\n-6CE719 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE71B Ext File Attributes   00000000 (0)\n-6CE71F Local Header Offset   0004FE80 (327296)\n-6CE723 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE723: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE760 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE762   Length              0005 (5)\n-6CE764   Flags               01 (1) 'Modification'\n-6CE765   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE769 CENTRAL HEADER #117   02014B50 (33639248)\n-6CE76D Created Zip Spec      14 (20) '2.0'\n-6CE76E Created OS            00 (0) 'MS-DOS'\n-6CE76F Extract Zip Spec      14 (20) '2.0'\n-6CE770 Extract OS            00 (0) 'MS-DOS'\n-6CE771 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE773 Compression Method    0000 (0) 'Stored'\n-6CE775 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE779 CRC                   00000000 (0)\n-6CE77D Compressed Size       00000000 (0)\n-6CE781 Uncompressed Size     00000000 (0)\n-6CE785 Filename Length       004B (75)\n-6CE787 Extra Length          0009 (9)\n-6CE789 Comment Length        0000 (0)\n-6CE78B Disk Start            0000 (0)\n-6CE78D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE78F Ext File Attributes   00000000 (0)\n-6CE793 Local Header Offset   0004FEE4 (327396)\n-6CE797 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE797: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE7E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE7E4   Length              0005 (5)\n-6CE7E6   Flags               01 (1) 'Modification'\n-6CE7E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE7EB CENTRAL HEADER #118   02014B50 (33639248)\n-6CE7EF Created Zip Spec      14 (20) '2.0'\n-6CE7F0 Created OS            00 (0) 'MS-DOS'\n-6CE7F1 Extract Zip Spec      14 (20) '2.0'\n-6CE7F2 Extract OS            00 (0) 'MS-DOS'\n-6CE7F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE7F5 Compression Method    0000 (0) 'Stored'\n-6CE7F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE7FB CRC                   B8E7C6BA (3102197434)\n-6CE7FF Compressed Size       000008DC (2268)\n-6CE803 Uncompressed Size     000008DC (2268)\n-6CE807 Filename Length       0044 (68)\n-6CE809 Extra Length          0009 (9)\n-6CE80B Comment Length        0000 (0)\n-6CE80D Disk Start            0000 (0)\n-6CE80F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE811 Ext File Attributes   00000000 (0)\n-6CE815 Local Header Offset   0004FF66 (327526)\n-6CE819 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE819: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE85D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE85F   Length              0005 (5)\n-6CE861   Flags               01 (1) 'Modification'\n-6CE862   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE866 CENTRAL HEADER #119   02014B50 (33639248)\n-6CE86A Created Zip Spec      14 (20) '2.0'\n-6CE86B Created OS            00 (0) 'MS-DOS'\n-6CE86C Extract Zip Spec      14 (20) '2.0'\n-6CE86D Extract OS            00 (0) 'MS-DOS'\n-6CE86E General Purpose Flag  0000 (0)\n-6CE870 Compression Method    0000 (0) 'Stored'\n-6CE872 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE876 CRC                   00000000 (0)\n-6CE87A Compressed Size       00000000 (0)\n-6CE87E Uncompressed Size     00000000 (0)\n-6CE882 Filename Length       0034 (52)\n-6CE884 Extra Length          0009 (9)\n-6CE886 Comment Length        0000 (0)\n-6CE888 Disk Start            0000 (0)\n-6CE88A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE88C Ext File Attributes   00000000 (0)\n-6CE890 Local Header Offset   000508BD (329917)\n-6CE894 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE894: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE8C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE8CA   Length              0005 (5)\n-6CE8CC   Flags               01 (1) 'Modification'\n-6CE8CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE8D1 CENTRAL HEADER #120   02014B50 (33639248)\n-6CE8D5 Created Zip Spec      14 (20) '2.0'\n-6CE8D6 Created OS            00 (0) 'MS-DOS'\n-6CE8D7 Extract Zip Spec      14 (20) '2.0'\n-6CE8D8 Extract OS            00 (0) 'MS-DOS'\n-6CE8D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE8DB Compression Method    0000 (0) 'Stored'\n-6CE8DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE8E1 CRC                   00000000 (0)\n-6CE8E5 Compressed Size       00000000 (0)\n-6CE8E9 Uncompressed Size     00000000 (0)\n-6CE8ED Filename Length       0042 (66)\n-6CE8EF Extra Length          0009 (9)\n-6CE8F1 Comment Length        0000 (0)\n-6CE8F3 Disk Start            0000 (0)\n-6CE8F5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE8F7 Ext File Attributes   00000000 (0)\n-6CE8FB Local Header Offset   00050918 (330008)\n-6CE8FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE8FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE941 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE943   Length              0005 (5)\n-6CE945   Flags               01 (1) 'Modification'\n-6CE946   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE94A CENTRAL HEADER #121   02014B50 (33639248)\n-6CE94E Created Zip Spec      14 (20) '2.0'\n-6CE94F Created OS            00 (0) 'MS-DOS'\n-6CE950 Extract Zip Spec      14 (20) '2.0'\n-6CE951 Extract OS            00 (0) 'MS-DOS'\n-6CE952 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CE954 Compression Method    0000 (0) 'Stored'\n-6CE956 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE95A CRC                   7212D526 (1913836838)\n-6CE95E Compressed Size       00000956 (2390)\n-6CE962 Uncompressed Size     00000956 (2390)\n-6CE966 Filename Length       003B (59)\n-6CE968 Extra Length          0009 (9)\n-6CE96A Comment Length        0000 (0)\n-6CE96C Disk Start            0000 (0)\n-6CE96E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE970 Ext File Attributes   00000000 (0)\n-6CE974 Local Header Offset   00050991 (330129)\n-6CE978 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE978: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CE9B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CE9B5   Length              0005 (5)\n-6CE9B7   Flags               01 (1) 'Modification'\n-6CE9B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CE9BC CENTRAL HEADER #122   02014B50 (33639248)\n-6CE9C0 Created Zip Spec      14 (20) '2.0'\n-6CE9C1 Created OS            00 (0) 'MS-DOS'\n-6CE9C2 Extract Zip Spec      14 (20) '2.0'\n-6CE9C3 Extract OS            00 (0) 'MS-DOS'\n-6CE9C4 General Purpose Flag  0000 (0)\n-6CE9C6 Compression Method    0000 (0) 'Stored'\n-6CE9C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CE9CC CRC                   00000000 (0)\n-6CE9D0 Compressed Size       00000000 (0)\n-6CE9D4 Uncompressed Size     00000000 (0)\n-6CE9D8 Filename Length       0036 (54)\n-6CE9DA Extra Length          0009 (9)\n-6CE9DC Comment Length        0000 (0)\n-6CE9DE Disk Start            0000 (0)\n-6CE9E0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CE9E2 Ext File Attributes   00000000 (0)\n-6CE9E6 Local Header Offset   00051359 (332633)\n-6CE9EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CE9EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEA20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEA22   Length              0005 (5)\n-6CEA24   Flags               01 (1) 'Modification'\n-6CEA25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEA29 CENTRAL HEADER #123   02014B50 (33639248)\n-6CEA2D Created Zip Spec      14 (20) '2.0'\n-6CEA2E Created OS            00 (0) 'MS-DOS'\n-6CEA2F Extract Zip Spec      14 (20) '2.0'\n-6CEA30 Extract OS            00 (0) 'MS-DOS'\n-6CEA31 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEA33 Compression Method    0000 (0) 'Stored'\n-6CEA35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEA39 CRC                   00000000 (0)\n-6CEA3D Compressed Size       00000000 (0)\n-6CEA41 Uncompressed Size     00000000 (0)\n-6CEA45 Filename Length       0044 (68)\n-6CEA47 Extra Length          0009 (9)\n-6CEA49 Comment Length        0000 (0)\n-6CEA4B Disk Start            0000 (0)\n-6CEA4D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEA4F Ext File Attributes   00000000 (0)\n-6CEA53 Local Header Offset   000513B6 (332726)\n-6CEA57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEA57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEA9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEA9D   Length              0005 (5)\n-6CEA9F   Flags               01 (1) 'Modification'\n-6CEAA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEAA4 CENTRAL HEADER #124   02014B50 (33639248)\n-6CEAA8 Created Zip Spec      14 (20) '2.0'\n-6CEAA9 Created OS            00 (0) 'MS-DOS'\n-6CEAAA Extract Zip Spec      14 (20) '2.0'\n-6CEAAB Extract OS            00 (0) 'MS-DOS'\n-6CEAAC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEAAE Compression Method    0000 (0) 'Stored'\n-6CEAB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEAB4 CRC                   F4C8F642 (4106810946)\n-6CEAB8 Compressed Size       000007CB (1995)\n-6CEABC Uncompressed Size     000007CB (1995)\n-6CEAC0 Filename Length       003D (61)\n-6CEAC2 Extra Length          0009 (9)\n-6CEAC4 Comment Length        0000 (0)\n-6CEAC6 Disk Start            0000 (0)\n-6CEAC8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEACA Ext File Attributes   00000000 (0)\n-6CEACE Local Header Offset   00051431 (332849)\n-6CEAD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEAD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEB0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEB11   Length              0005 (5)\n-6CEB13   Flags               01 (1) 'Modification'\n-6CEB14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEB18 CENTRAL HEADER #125   02014B50 (33639248)\n-6CEB1C Created Zip Spec      14 (20) '2.0'\n-6CEB1D Created OS            00 (0) 'MS-DOS'\n-6CEB1E Extract Zip Spec      14 (20) '2.0'\n-6CEB1F Extract OS            00 (0) 'MS-DOS'\n-6CEB20 General Purpose Flag  0000 (0)\n-6CEB22 Compression Method    0000 (0) 'Stored'\n-6CEB24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEB28 CRC                   00000000 (0)\n-6CEB2C Compressed Size       00000000 (0)\n-6CEB30 Uncompressed Size     00000000 (0)\n-6CEB34 Filename Length       0038 (56)\n-6CEB36 Extra Length          0009 (9)\n-6CEB38 Comment Length        0000 (0)\n-6CEB3A Disk Start            0000 (0)\n-6CEB3C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEB3E Ext File Attributes   00000000 (0)\n-6CEB42 Local Header Offset   00051C70 (334960)\n-6CEB46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEB46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEB7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEB80   Length              0005 (5)\n-6CEB82   Flags               01 (1) 'Modification'\n-6CEB83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEB87 CENTRAL HEADER #126   02014B50 (33639248)\n-6CEB8B Created Zip Spec      14 (20) '2.0'\n-6CEB8C Created OS            00 (0) 'MS-DOS'\n-6CEB8D Extract Zip Spec      14 (20) '2.0'\n-6CEB8E Extract OS            00 (0) 'MS-DOS'\n-6CEB8F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEB91 Compression Method    0000 (0) 'Stored'\n-6CEB93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEB97 CRC                   00000000 (0)\n-6CEB9B Compressed Size       00000000 (0)\n-6CEB9F Uncompressed Size     00000000 (0)\n-6CEBA3 Filename Length       0046 (70)\n-6CEBA5 Extra Length          0009 (9)\n-6CEBA7 Comment Length        0000 (0)\n-6CEBA9 Disk Start            0000 (0)\n-6CEBAB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEBAD Ext File Attributes   00000000 (0)\n-6CEBB1 Local Header Offset   00051CCF (335055)\n-6CEBB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEBB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEBFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEBFD   Length              0005 (5)\n-6CEBFF   Flags               01 (1) 'Modification'\n-6CEC00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEC04 CENTRAL HEADER #127   02014B50 (33639248)\n-6CEC08 Created Zip Spec      14 (20) '2.0'\n-6CEC09 Created OS            00 (0) 'MS-DOS'\n-6CEC0A Extract Zip Spec      14 (20) '2.0'\n-6CEC0B Extract OS            00 (0) 'MS-DOS'\n-6CEC0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEC0E Compression Method    0000 (0) 'Stored'\n-6CEC10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEC14 CRC                   A6C9E837 (2798250039)\n-6CEC18 Compressed Size       0000084D (2125)\n-6CEC1C Uncompressed Size     0000084D (2125)\n-6CEC20 Filename Length       003F (63)\n-6CEC22 Extra Length          0009 (9)\n-6CEC24 Comment Length        0000 (0)\n-6CEC26 Disk Start            0000 (0)\n-6CEC28 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEC2A Ext File Attributes   00000000 (0)\n-6CEC2E Local Header Offset   00051D4C (335180)\n-6CEC32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEC32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEC71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEC73   Length              0005 (5)\n-6CEC75   Flags               01 (1) 'Modification'\n-6CEC76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEC7A CENTRAL HEADER #128   02014B50 (33639248)\n-6CEC7E Created Zip Spec      14 (20) '2.0'\n-6CEC7F Created OS            00 (0) 'MS-DOS'\n-6CEC80 Extract Zip Spec      14 (20) '2.0'\n-6CEC81 Extract OS            00 (0) 'MS-DOS'\n-6CEC82 General Purpose Flag  0000 (0)\n-6CEC84 Compression Method    0000 (0) 'Stored'\n-6CEC86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEC8A CRC                   00000000 (0)\n-6CEC8E Compressed Size       00000000 (0)\n-6CEC92 Uncompressed Size     00000000 (0)\n-6CEC96 Filename Length       0037 (55)\n-6CEC98 Extra Length          0009 (9)\n-6CEC9A Comment Length        0000 (0)\n-6CEC9C Disk Start            0000 (0)\n-6CEC9E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CECA0 Ext File Attributes   00000000 (0)\n-6CECA4 Local Header Offset   0005260F (337423)\n-6CECA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CECA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CECDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CECE1   Length              0005 (5)\n-6CECE3   Flags               01 (1) 'Modification'\n-6CECE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CECE8 CENTRAL HEADER #129   02014B50 (33639248)\n-6CECEC Created Zip Spec      14 (20) '2.0'\n-6CECED Created OS            00 (0) 'MS-DOS'\n-6CECEE Extract Zip Spec      14 (20) '2.0'\n-6CECEF Extract OS            00 (0) 'MS-DOS'\n-6CECF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CECF2 Compression Method    0000 (0) 'Stored'\n-6CECF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CECF8 CRC                   00000000 (0)\n-6CECFC Compressed Size       00000000 (0)\n-6CED00 Uncompressed Size     00000000 (0)\n-6CED04 Filename Length       0045 (69)\n-6CED06 Extra Length          0009 (9)\n-6CED08 Comment Length        0000 (0)\n-6CED0A Disk Start            0000 (0)\n-6CED0C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CED0E Ext File Attributes   00000000 (0)\n-6CED12 Local Header Offset   0005266D (337517)\n-6CED16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CED16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CED5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CED5D   Length              0005 (5)\n-6CED5F   Flags               01 (1) 'Modification'\n-6CED60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CED64 CENTRAL HEADER #130   02014B50 (33639248)\n-6CED68 Created Zip Spec      14 (20) '2.0'\n-6CED69 Created OS            00 (0) 'MS-DOS'\n-6CED6A Extract Zip Spec      14 (20) '2.0'\n-6CED6B Extract OS            00 (0) 'MS-DOS'\n-6CED6C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CED6E Compression Method    0000 (0) 'Stored'\n-6CED70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CED74 CRC                   E0484CF4 (3762834676)\n-6CED78 Compressed Size       0000084F (2127)\n-6CED7C Uncompressed Size     0000084F (2127)\n-6CED80 Filename Length       003E (62)\n-6CED82 Extra Length          0009 (9)\n-6CED84 Comment Length        0000 (0)\n-6CED86 Disk Start            0000 (0)\n-6CED88 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CED8A Ext File Attributes   00000000 (0)\n-6CED8E Local Header Offset   000526E9 (337641)\n-6CED92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CED92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEDD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEDD2   Length              0005 (5)\n-6CEDD4   Flags               01 (1) 'Modification'\n-6CEDD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEDD9 CENTRAL HEADER #131   02014B50 (33639248)\n-6CEDDD Created Zip Spec      14 (20) '2.0'\n-6CEDDE Created OS            00 (0) 'MS-DOS'\n-6CEDDF Extract Zip Spec      14 (20) '2.0'\n-6CEDE0 Extract OS            00 (0) 'MS-DOS'\n-6CEDE1 General Purpose Flag  0000 (0)\n-6CEDE3 Compression Method    0000 (0) 'Stored'\n-6CEDE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEDE9 CRC                   00000000 (0)\n-6CEDED Compressed Size       00000000 (0)\n-6CEDF1 Uncompressed Size     00000000 (0)\n-6CEDF5 Filename Length       0033 (51)\n-6CEDF7 Extra Length          0009 (9)\n-6CEDF9 Comment Length        0000 (0)\n-6CEDFB Disk Start            0000 (0)\n-6CEDFD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEDFF Ext File Attributes   00000000 (0)\n-6CEE03 Local Header Offset   00052FAD (339885)\n-6CEE07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEE07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEE3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEE3C   Length              0005 (5)\n-6CEE3E   Flags               01 (1) 'Modification'\n-6CEE3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEE43 CENTRAL HEADER #132   02014B50 (33639248)\n-6CEE47 Created Zip Spec      14 (20) '2.0'\n-6CEE48 Created OS            00 (0) 'MS-DOS'\n-6CEE49 Extract Zip Spec      14 (20) '2.0'\n-6CEE4A Extract OS            00 (0) 'MS-DOS'\n-6CEE4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEE4D Compression Method    0000 (0) 'Stored'\n-6CEE4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEE53 CRC                   00000000 (0)\n-6CEE57 Compressed Size       00000000 (0)\n-6CEE5B Uncompressed Size     00000000 (0)\n-6CEE5F Filename Length       0041 (65)\n-6CEE61 Extra Length          0009 (9)\n-6CEE63 Comment Length        0000 (0)\n-6CEE65 Disk Start            0000 (0)\n-6CEE67 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEE69 Ext File Attributes   00000000 (0)\n-6CEE6D Local Header Offset   00053007 (339975)\n-6CEE71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEE71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEEB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEEB4   Length              0005 (5)\n-6CEEB6   Flags               01 (1) 'Modification'\n-6CEEB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEEBB CENTRAL HEADER #133   02014B50 (33639248)\n-6CEEBF Created Zip Spec      14 (20) '2.0'\n-6CEEC0 Created OS            00 (0) 'MS-DOS'\n-6CEEC1 Extract Zip Spec      14 (20) '2.0'\n-6CEEC2 Extract OS            00 (0) 'MS-DOS'\n-6CEEC3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEEC5 Compression Method    0000 (0) 'Stored'\n-6CEEC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEECB CRC                   B1327293 (2972873363)\n-6CEECF Compressed Size       000008EB (2283)\n-6CEED3 Uncompressed Size     000008EB (2283)\n-6CEED7 Filename Length       003A (58)\n-6CEED9 Extra Length          0009 (9)\n-6CEEDB Comment Length        0000 (0)\n-6CEEDD Disk Start            0000 (0)\n-6CEEDF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEEE1 Ext File Attributes   00000000 (0)\n-6CEEE5 Local Header Offset   0005307F (340095)\n-6CEEE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEEE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEF23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEF25   Length              0005 (5)\n-6CEF27   Flags               01 (1) 'Modification'\n-6CEF28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEF2C CENTRAL HEADER #134   02014B50 (33639248)\n-6CEF30 Created Zip Spec      14 (20) '2.0'\n-6CEF31 Created OS            00 (0) 'MS-DOS'\n-6CEF32 Extract Zip Spec      14 (20) '2.0'\n-6CEF33 Extract OS            00 (0) 'MS-DOS'\n-6CEF34 General Purpose Flag  0000 (0)\n-6CEF36 Compression Method    0000 (0) 'Stored'\n-6CEF38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEF3C CRC                   00000000 (0)\n-6CEF40 Compressed Size       00000000 (0)\n-6CEF44 Uncompressed Size     00000000 (0)\n-6CEF48 Filename Length       0038 (56)\n-6CEF4A Extra Length          0009 (9)\n-6CEF4C Comment Length        0000 (0)\n-6CEF4E Disk Start            0000 (0)\n-6CEF50 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEF52 Ext File Attributes   00000000 (0)\n-6CEF56 Local Header Offset   000539DB (342491)\n-6CEF5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEF5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CEF92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CEF94   Length              0005 (5)\n-6CEF96   Flags               01 (1) 'Modification'\n-6CEF97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CEF9B CENTRAL HEADER #135   02014B50 (33639248)\n-6CEF9F Created Zip Spec      14 (20) '2.0'\n-6CEFA0 Created OS            00 (0) 'MS-DOS'\n-6CEFA1 Extract Zip Spec      14 (20) '2.0'\n-6CEFA2 Extract OS            00 (0) 'MS-DOS'\n-6CEFA3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CEFA5 Compression Method    0000 (0) 'Stored'\n-6CEFA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CEFAB CRC                   00000000 (0)\n-6CEFAF Compressed Size       00000000 (0)\n-6CEFB3 Uncompressed Size     00000000 (0)\n-6CEFB7 Filename Length       0046 (70)\n-6CEFB9 Extra Length          0009 (9)\n-6CEFBB Comment Length        0000 (0)\n-6CEFBD Disk Start            0000 (0)\n-6CEFBF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CEFC1 Ext File Attributes   00000000 (0)\n-6CEFC5 Local Header Offset   00053A3A (342586)\n-6CEFC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CEFC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF00F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF011   Length              0005 (5)\n-6CF013   Flags               01 (1) 'Modification'\n-6CF014   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF018 CENTRAL HEADER #136   02014B50 (33639248)\n-6CF01C Created Zip Spec      14 (20) '2.0'\n-6CF01D Created OS            00 (0) 'MS-DOS'\n-6CF01E Extract Zip Spec      14 (20) '2.0'\n-6CF01F Extract OS            00 (0) 'MS-DOS'\n-6CF020 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF022 Compression Method    0000 (0) 'Stored'\n-6CF024 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF028 CRC                   C4977D68 (3298262376)\n-6CF02C Compressed Size       00000C15 (3093)\n-6CF030 Uncompressed Size     00000C15 (3093)\n-6CF034 Filename Length       003F (63)\n-6CF036 Extra Length          0009 (9)\n-6CF038 Comment Length        0000 (0)\n-6CF03A Disk Start            0000 (0)\n-6CF03C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF03E Ext File Attributes   00000000 (0)\n-6CF042 Local Header Offset   00053AB7 (342711)\n-6CF046 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF046: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF085 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF087   Length              0005 (5)\n-6CF089   Flags               01 (1) 'Modification'\n-6CF08A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF08E CENTRAL HEADER #137   02014B50 (33639248)\n-6CF092 Created Zip Spec      14 (20) '2.0'\n-6CF093 Created OS            00 (0) 'MS-DOS'\n-6CF094 Extract Zip Spec      14 (20) '2.0'\n-6CF095 Extract OS            00 (0) 'MS-DOS'\n-6CF096 General Purpose Flag  0000 (0)\n-6CF098 Compression Method    0000 (0) 'Stored'\n-6CF09A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF09E CRC                   00000000 (0)\n-6CF0A2 Compressed Size       00000000 (0)\n-6CF0A6 Uncompressed Size     00000000 (0)\n-6CF0AA Filename Length       0033 (51)\n-6CF0AC Extra Length          0009 (9)\n-6CF0AE Comment Length        0000 (0)\n-6CF0B0 Disk Start            0000 (0)\n-6CF0B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF0B4 Ext File Attributes   00000000 (0)\n-6CF0B8 Local Header Offset   00054742 (345922)\n-6CF0BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF0BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF0EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF0F1   Length              0005 (5)\n-6CF0F3   Flags               01 (1) 'Modification'\n-6CF0F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF0F8 CENTRAL HEADER #138   02014B50 (33639248)\n-6CF0FC Created Zip Spec      14 (20) '2.0'\n-6CF0FD Created OS            00 (0) 'MS-DOS'\n-6CF0FE Extract Zip Spec      14 (20) '2.0'\n-6CF0FF Extract OS            00 (0) 'MS-DOS'\n-6CF100 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF102 Compression Method    0000 (0) 'Stored'\n-6CF104 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF108 CRC                   00000000 (0)\n-6CF10C Compressed Size       00000000 (0)\n-6CF110 Uncompressed Size     00000000 (0)\n-6CF114 Filename Length       0041 (65)\n-6CF116 Extra Length          0009 (9)\n-6CF118 Comment Length        0000 (0)\n-6CF11A Disk Start            0000 (0)\n-6CF11C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF11E Ext File Attributes   00000000 (0)\n-6CF122 Local Header Offset   0005479C (346012)\n-6CF126 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF126: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF167 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF169   Length              0005 (5)\n-6CF16B   Flags               01 (1) 'Modification'\n-6CF16C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF170 CENTRAL HEADER #139   02014B50 (33639248)\n-6CF174 Created Zip Spec      14 (20) '2.0'\n-6CF175 Created OS            00 (0) 'MS-DOS'\n-6CF176 Extract Zip Spec      14 (20) '2.0'\n-6CF177 Extract OS            00 (0) 'MS-DOS'\n-6CF178 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF17A Compression Method    0000 (0) 'Stored'\n-6CF17C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF180 CRC                   364739E6 (910637542)\n-6CF184 Compressed Size       00000BF2 (3058)\n-6CF188 Uncompressed Size     00000BF2 (3058)\n-6CF18C Filename Length       003A (58)\n-6CF18E Extra Length          0009 (9)\n-6CF190 Comment Length        0000 (0)\n-6CF192 Disk Start            0000 (0)\n-6CF194 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF196 Ext File Attributes   00000000 (0)\n-6CF19A Local Header Offset   00054814 (346132)\n-6CF19E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF19E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF1D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF1DA   Length              0005 (5)\n-6CF1DC   Flags               01 (1) 'Modification'\n-6CF1DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF1E1 CENTRAL HEADER #140   02014B50 (33639248)\n-6CF1E5 Created Zip Spec      14 (20) '2.0'\n-6CF1E6 Created OS            00 (0) 'MS-DOS'\n-6CF1E7 Extract Zip Spec      14 (20) '2.0'\n-6CF1E8 Extract OS            00 (0) 'MS-DOS'\n-6CF1E9 General Purpose Flag  0000 (0)\n-6CF1EB Compression Method    0000 (0) 'Stored'\n-6CF1ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF1F1 CRC                   00000000 (0)\n-6CF1F5 Compressed Size       00000000 (0)\n-6CF1F9 Uncompressed Size     00000000 (0)\n-6CF1FD Filename Length       003D (61)\n-6CF1FF Extra Length          0009 (9)\n-6CF201 Comment Length        0000 (0)\n-6CF203 Disk Start            0000 (0)\n-6CF205 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF207 Ext File Attributes   00000000 (0)\n-6CF20B Local Header Offset   00055477 (349303)\n-6CF20F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF20F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF24C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF24E   Length              0005 (5)\n-6CF250   Flags               01 (1) 'Modification'\n-6CF251   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF255 CENTRAL HEADER #141   02014B50 (33639248)\n-6CF259 Created Zip Spec      14 (20) '2.0'\n-6CF25A Created OS            00 (0) 'MS-DOS'\n-6CF25B Extract Zip Spec      14 (20) '2.0'\n-6CF25C Extract OS            00 (0) 'MS-DOS'\n-6CF25D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF25F Compression Method    0000 (0) 'Stored'\n-6CF261 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF265 CRC                   00000000 (0)\n-6CF269 Compressed Size       00000000 (0)\n-6CF26D Uncompressed Size     00000000 (0)\n-6CF271 Filename Length       004B (75)\n-6CF273 Extra Length          0009 (9)\n-6CF275 Comment Length        0000 (0)\n-6CF277 Disk Start            0000 (0)\n-6CF279 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF27B Ext File Attributes   00000000 (0)\n-6CF27F Local Header Offset   000554DB (349403)\n-6CF283 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF283: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF2CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF2D0   Length              0005 (5)\n-6CF2D2   Flags               01 (1) 'Modification'\n-6CF2D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF2D7 CENTRAL HEADER #142   02014B50 (33639248)\n-6CF2DB Created Zip Spec      14 (20) '2.0'\n-6CF2DC Created OS            00 (0) 'MS-DOS'\n-6CF2DD Extract Zip Spec      14 (20) '2.0'\n-6CF2DE Extract OS            00 (0) 'MS-DOS'\n-6CF2DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF2E1 Compression Method    0000 (0) 'Stored'\n-6CF2E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF2E7 CRC                   4F6EDF6B (1332666219)\n-6CF2EB Compressed Size       00000864 (2148)\n-6CF2EF Uncompressed Size     00000864 (2148)\n-6CF2F3 Filename Length       0044 (68)\n-6CF2F5 Extra Length          0009 (9)\n-6CF2F7 Comment Length        0000 (0)\n-6CF2F9 Disk Start            0000 (0)\n-6CF2FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF2FD Ext File Attributes   00000000 (0)\n-6CF301 Local Header Offset   0005555D (349533)\n-6CF305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF349 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF34B   Length              0005 (5)\n-6CF34D   Flags               01 (1) 'Modification'\n-6CF34E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF352 CENTRAL HEADER #143   02014B50 (33639248)\n-6CF356 Created Zip Spec      14 (20) '2.0'\n-6CF357 Created OS            00 (0) 'MS-DOS'\n-6CF358 Extract Zip Spec      14 (20) '2.0'\n-6CF359 Extract OS            00 (0) 'MS-DOS'\n-6CF35A General Purpose Flag  0000 (0)\n-6CF35C Compression Method    0000 (0) 'Stored'\n-6CF35E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF362 CRC                   00000000 (0)\n-6CF366 Compressed Size       00000000 (0)\n-6CF36A Uncompressed Size     00000000 (0)\n-6CF36E Filename Length       003B (59)\n-6CF370 Extra Length          0009 (9)\n-6CF372 Comment Length        0000 (0)\n-6CF374 Disk Start            0000 (0)\n-6CF376 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF378 Ext File Attributes   00000000 (0)\n-6CF37C Local Header Offset   00055E3C (351804)\n-6CF380 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF380: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF3BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF3BD   Length              0005 (5)\n-6CF3BF   Flags               01 (1) 'Modification'\n-6CF3C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF3C4 CENTRAL HEADER #144   02014B50 (33639248)\n-6CF3C8 Created Zip Spec      14 (20) '2.0'\n-6CF3C9 Created OS            00 (0) 'MS-DOS'\n-6CF3CA Extract Zip Spec      14 (20) '2.0'\n-6CF3CB Extract OS            00 (0) 'MS-DOS'\n-6CF3CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF3CE Compression Method    0000 (0) 'Stored'\n-6CF3D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF3D4 CRC                   00000000 (0)\n-6CF3D8 Compressed Size       00000000 (0)\n-6CF3DC Uncompressed Size     00000000 (0)\n-6CF3E0 Filename Length       0049 (73)\n-6CF3E2 Extra Length          0009 (9)\n-6CF3E4 Comment Length        0000 (0)\n-6CF3E6 Disk Start            0000 (0)\n-6CF3E8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF3EA Ext File Attributes   00000000 (0)\n-6CF3EE Local Header Offset   00055E9E (351902)\n-6CF3F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF3F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF43B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF43D   Length              0005 (5)\n-6CF43F   Flags               01 (1) 'Modification'\n-6CF440   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF444 CENTRAL HEADER #145   02014B50 (33639248)\n-6CF448 Created Zip Spec      14 (20) '2.0'\n-6CF449 Created OS            00 (0) 'MS-DOS'\n-6CF44A Extract Zip Spec      14 (20) '2.0'\n-6CF44B Extract OS            00 (0) 'MS-DOS'\n-6CF44C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF44E Compression Method    0000 (0) 'Stored'\n-6CF450 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF454 CRC                   FD7A58FE (4252653822)\n-6CF458 Compressed Size       00000A63 (2659)\n-6CF45C Uncompressed Size     00000A63 (2659)\n-6CF460 Filename Length       0042 (66)\n-6CF462 Extra Length          0009 (9)\n-6CF464 Comment Length        0000 (0)\n-6CF466 Disk Start            0000 (0)\n-6CF468 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF46A Ext File Attributes   00000000 (0)\n-6CF46E Local Header Offset   00055F1E (352030)\n-6CF472 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF472: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF4B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF4B6   Length              0005 (5)\n-6CF4B8   Flags               01 (1) 'Modification'\n-6CF4B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF4BD CENTRAL HEADER #146   02014B50 (33639248)\n-6CF4C1 Created Zip Spec      14 (20) '2.0'\n-6CF4C2 Created OS            00 (0) 'MS-DOS'\n-6CF4C3 Extract Zip Spec      14 (20) '2.0'\n-6CF4C4 Extract OS            00 (0) 'MS-DOS'\n-6CF4C5 General Purpose Flag  0000 (0)\n-6CF4C7 Compression Method    0000 (0) 'Stored'\n-6CF4C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF4CD CRC                   00000000 (0)\n-6CF4D1 Compressed Size       00000000 (0)\n-6CF4D5 Uncompressed Size     00000000 (0)\n-6CF4D9 Filename Length       003F (63)\n-6CF4DB Extra Length          0009 (9)\n-6CF4DD Comment Length        0000 (0)\n-6CF4DF Disk Start            0000 (0)\n-6CF4E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF4E3 Ext File Attributes   00000000 (0)\n-6CF4E7 Local Header Offset   000569FA (354810)\n-6CF4EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF4EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF52A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF52C   Length              0005 (5)\n-6CF52E   Flags               01 (1) 'Modification'\n-6CF52F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF533 CENTRAL HEADER #147   02014B50 (33639248)\n-6CF537 Created Zip Spec      14 (20) '2.0'\n-6CF538 Created OS            00 (0) 'MS-DOS'\n-6CF539 Extract Zip Spec      14 (20) '2.0'\n-6CF53A Extract OS            00 (0) 'MS-DOS'\n-6CF53B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF53D Compression Method    0000 (0) 'Stored'\n-6CF53F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF543 CRC                   00000000 (0)\n-6CF547 Compressed Size       00000000 (0)\n-6CF54B Uncompressed Size     00000000 (0)\n-6CF54F Filename Length       004D (77)\n-6CF551 Extra Length          0009 (9)\n-6CF553 Comment Length        0000 (0)\n-6CF555 Disk Start            0000 (0)\n-6CF557 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF559 Ext File Attributes   00000000 (0)\n-6CF55D Local Header Offset   00056A60 (354912)\n-6CF561 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF561: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF5AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF5B0   Length              0005 (5)\n-6CF5B2   Flags               01 (1) 'Modification'\n-6CF5B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF5B7 CENTRAL HEADER #148   02014B50 (33639248)\n-6CF5BB Created Zip Spec      14 (20) '2.0'\n-6CF5BC Created OS            00 (0) 'MS-DOS'\n-6CF5BD Extract Zip Spec      14 (20) '2.0'\n-6CF5BE Extract OS            00 (0) 'MS-DOS'\n-6CF5BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF5C1 Compression Method    0000 (0) 'Stored'\n-6CF5C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF5C7 CRC                   2219CEA0 (572116640)\n-6CF5CB Compressed Size       0000070E (1806)\n-6CF5CF Uncompressed Size     0000070E (1806)\n-6CF5D3 Filename Length       0046 (70)\n-6CF5D5 Extra Length          0009 (9)\n-6CF5D7 Comment Length        0000 (0)\n-6CF5D9 Disk Start            0000 (0)\n-6CF5DB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF5DD Ext File Attributes   00000000 (0)\n-6CF5E1 Local Header Offset   00056AE4 (355044)\n-6CF5E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF5E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF62B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF62D   Length              0005 (5)\n-6CF62F   Flags               01 (1) 'Modification'\n-6CF630   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF634 CENTRAL HEADER #149   02014B50 (33639248)\n-6CF638 Created Zip Spec      14 (20) '2.0'\n-6CF639 Created OS            00 (0) 'MS-DOS'\n-6CF63A Extract Zip Spec      14 (20) '2.0'\n-6CF63B Extract OS            00 (0) 'MS-DOS'\n-6CF63C General Purpose Flag  0000 (0)\n-6CF63E Compression Method    0000 (0) 'Stored'\n-6CF640 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF644 CRC                   00000000 (0)\n-6CF648 Compressed Size       00000000 (0)\n-6CF64C Uncompressed Size     00000000 (0)\n-6CF650 Filename Length       003C (60)\n-6CF652 Extra Length          0009 (9)\n-6CF654 Comment Length        0000 (0)\n-6CF656 Disk Start            0000 (0)\n-6CF658 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF65A Ext File Attributes   00000000 (0)\n-6CF65E Local Header Offset   0005726F (356975)\n-6CF662 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF662: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF69E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF6A0   Length              0005 (5)\n-6CF6A2   Flags               01 (1) 'Modification'\n-6CF6A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF6A7 CENTRAL HEADER #150   02014B50 (33639248)\n-6CF6AB Created Zip Spec      14 (20) '2.0'\n-6CF6AC Created OS            00 (0) 'MS-DOS'\n-6CF6AD Extract Zip Spec      14 (20) '2.0'\n-6CF6AE Extract OS            00 (0) 'MS-DOS'\n-6CF6AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF6B1 Compression Method    0000 (0) 'Stored'\n-6CF6B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF6B7 CRC                   00000000 (0)\n-6CF6BB Compressed Size       00000000 (0)\n-6CF6BF Uncompressed Size     00000000 (0)\n-6CF6C3 Filename Length       004A (74)\n-6CF6C5 Extra Length          0009 (9)\n-6CF6C7 Comment Length        0000 (0)\n-6CF6C9 Disk Start            0000 (0)\n-6CF6CB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF6CD Ext File Attributes   00000000 (0)\n-6CF6D1 Local Header Offset   000572D2 (357074)\n-6CF6D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF6D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF71F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF721   Length              0005 (5)\n-6CF723   Flags               01 (1) 'Modification'\n-6CF724   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF728 CENTRAL HEADER #151   02014B50 (33639248)\n-6CF72C Created Zip Spec      14 (20) '2.0'\n-6CF72D Created OS            00 (0) 'MS-DOS'\n-6CF72E Extract Zip Spec      14 (20) '2.0'\n-6CF72F Extract OS            00 (0) 'MS-DOS'\n-6CF730 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF732 Compression Method    0000 (0) 'Stored'\n-6CF734 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF738 CRC                   FC584130 (4233642288)\n-6CF73C Compressed Size       000007E7 (2023)\n-6CF740 Uncompressed Size     000007E7 (2023)\n-6CF744 Filename Length       0043 (67)\n-6CF746 Extra Length          0009 (9)\n-6CF748 Comment Length        0000 (0)\n-6CF74A Disk Start            0000 (0)\n-6CF74C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF74E Ext File Attributes   00000000 (0)\n-6CF752 Local Header Offset   00057353 (357203)\n-6CF756 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF756: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF79B   Length              0005 (5)\n-6CF79D   Flags               01 (1) 'Modification'\n-6CF79E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF7A2 CENTRAL HEADER #152   02014B50 (33639248)\n-6CF7A6 Created Zip Spec      14 (20) '2.0'\n-6CF7A7 Created OS            00 (0) 'MS-DOS'\n-6CF7A8 Extract Zip Spec      14 (20) '2.0'\n-6CF7A9 Extract OS            00 (0) 'MS-DOS'\n-6CF7AA General Purpose Flag  0000 (0)\n-6CF7AC Compression Method    0000 (0) 'Stored'\n-6CF7AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF7B2 CRC                   00000000 (0)\n-6CF7B6 Compressed Size       00000000 (0)\n-6CF7BA Uncompressed Size     00000000 (0)\n-6CF7BE Filename Length       003C (60)\n-6CF7C0 Extra Length          0009 (9)\n-6CF7C2 Comment Length        0000 (0)\n-6CF7C4 Disk Start            0000 (0)\n-6CF7C6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF7C8 Ext File Attributes   00000000 (0)\n-6CF7CC Local Header Offset   00057BB4 (359348)\n-6CF7D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF7D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF80C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF80E   Length              0005 (5)\n-6CF810   Flags               01 (1) 'Modification'\n-6CF811   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF815 CENTRAL HEADER #153   02014B50 (33639248)\n-6CF819 Created Zip Spec      14 (20) '2.0'\n-6CF81A Created OS            00 (0) 'MS-DOS'\n-6CF81B Extract Zip Spec      14 (20) '2.0'\n-6CF81C Extract OS            00 (0) 'MS-DOS'\n-6CF81D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF81F Compression Method    0000 (0) 'Stored'\n-6CF821 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF825 CRC                   00000000 (0)\n-6CF829 Compressed Size       00000000 (0)\n-6CF82D Uncompressed Size     00000000 (0)\n-6CF831 Filename Length       004A (74)\n-6CF833 Extra Length          0009 (9)\n-6CF835 Comment Length        0000 (0)\n-6CF837 Disk Start            0000 (0)\n-6CF839 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF83B Ext File Attributes   00000000 (0)\n-6CF83F Local Header Offset   00057C17 (359447)\n-6CF843 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF843: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF88D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF88F   Length              0005 (5)\n-6CF891   Flags               01 (1) 'Modification'\n-6CF892   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF896 CENTRAL HEADER #154   02014B50 (33639248)\n-6CF89A Created Zip Spec      14 (20) '2.0'\n-6CF89B Created OS            00 (0) 'MS-DOS'\n-6CF89C Extract Zip Spec      14 (20) '2.0'\n-6CF89D Extract OS            00 (0) 'MS-DOS'\n-6CF89E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF8A0 Compression Method    0000 (0) 'Stored'\n-6CF8A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF8A6 CRC                   7F9CF02D (2140991533)\n-6CF8AA Compressed Size       0000094F (2383)\n-6CF8AE Uncompressed Size     0000094F (2383)\n-6CF8B2 Filename Length       0043 (67)\n-6CF8B4 Extra Length          0009 (9)\n-6CF8B6 Comment Length        0000 (0)\n-6CF8B8 Disk Start            0000 (0)\n-6CF8BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF8BC Ext File Attributes   00000000 (0)\n-6CF8C0 Local Header Offset   00057C98 (359576)\n-6CF8C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF8C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF907 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF909   Length              0005 (5)\n-6CF90B   Flags               01 (1) 'Modification'\n-6CF90C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF910 CENTRAL HEADER #155   02014B50 (33639248)\n-6CF914 Created Zip Spec      14 (20) '2.0'\n-6CF915 Created OS            00 (0) 'MS-DOS'\n-6CF916 Extract Zip Spec      14 (20) '2.0'\n-6CF917 Extract OS            00 (0) 'MS-DOS'\n-6CF918 General Purpose Flag  0000 (0)\n-6CF91A Compression Method    0000 (0) 'Stored'\n-6CF91C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF920 CRC                   00000000 (0)\n-6CF924 Compressed Size       00000000 (0)\n-6CF928 Uncompressed Size     00000000 (0)\n-6CF92C Filename Length       0040 (64)\n-6CF92E Extra Length          0009 (9)\n-6CF930 Comment Length        0000 (0)\n-6CF932 Disk Start            0000 (0)\n-6CF934 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF936 Ext File Attributes   00000000 (0)\n-6CF93A Local Header Offset   00058661 (362081)\n-6CF93E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF93E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CF97E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CF980   Length              0005 (5)\n-6CF982   Flags               01 (1) 'Modification'\n-6CF983   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CF987 CENTRAL HEADER #156   02014B50 (33639248)\n-6CF98B Created Zip Spec      14 (20) '2.0'\n-6CF98C Created OS            00 (0) 'MS-DOS'\n-6CF98D Extract Zip Spec      14 (20) '2.0'\n-6CF98E Extract OS            00 (0) 'MS-DOS'\n-6CF98F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CF991 Compression Method    0000 (0) 'Stored'\n-6CF993 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CF997 CRC                   00000000 (0)\n-6CF99B Compressed Size       00000000 (0)\n-6CF99F Uncompressed Size     00000000 (0)\n-6CF9A3 Filename Length       004E (78)\n-6CF9A5 Extra Length          0009 (9)\n-6CF9A7 Comment Length        0000 (0)\n-6CF9A9 Disk Start            0000 (0)\n-6CF9AB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CF9AD Ext File Attributes   00000000 (0)\n-6CF9B1 Local Header Offset   000586C8 (362184)\n-6CF9B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CF9B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFA03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFA05   Length              0005 (5)\n-6CFA07   Flags               01 (1) 'Modification'\n-6CFA08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFA0C CENTRAL HEADER #157   02014B50 (33639248)\n-6CFA10 Created Zip Spec      14 (20) '2.0'\n-6CFA11 Created OS            00 (0) 'MS-DOS'\n-6CFA12 Extract Zip Spec      14 (20) '2.0'\n-6CFA13 Extract OS            00 (0) 'MS-DOS'\n-6CFA14 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFA16 Compression Method    0000 (0) 'Stored'\n-6CFA18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFA1C CRC                   6E02A698 (1845667480)\n-6CFA20 Compressed Size       0000086B (2155)\n-6CFA24 Uncompressed Size     0000086B (2155)\n-6CFA28 Filename Length       0047 (71)\n-6CFA2A Extra Length          0009 (9)\n-6CFA2C Comment Length        0000 (0)\n-6CFA2E Disk Start            0000 (0)\n-6CFA30 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFA32 Ext File Attributes   00000000 (0)\n-6CFA36 Local Header Offset   0005874D (362317)\n-6CFA3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFA3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFA81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFA83   Length              0005 (5)\n-6CFA85   Flags               01 (1) 'Modification'\n-6CFA86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFA8A CENTRAL HEADER #158   02014B50 (33639248)\n-6CFA8E Created Zip Spec      14 (20) '2.0'\n-6CFA8F Created OS            00 (0) 'MS-DOS'\n-6CFA90 Extract Zip Spec      14 (20) '2.0'\n-6CFA91 Extract OS            00 (0) 'MS-DOS'\n-6CFA92 General Purpose Flag  0000 (0)\n-6CFA94 Compression Method    0000 (0) 'Stored'\n-6CFA96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFA9A CRC                   00000000 (0)\n-6CFA9E Compressed Size       00000000 (0)\n-6CFAA2 Uncompressed Size     00000000 (0)\n-6CFAA6 Filename Length       0032 (50)\n-6CFAA8 Extra Length          0009 (9)\n-6CFAAA Comment Length        0000 (0)\n-6CFAAC Disk Start            0000 (0)\n-6CFAAE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFAB0 Ext File Attributes   00000000 (0)\n-6CFAB4 Local Header Offset   00059036 (364598)\n-6CFAB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFAB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFAEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFAEC   Length              0005 (5)\n-6CFAEE   Flags               01 (1) 'Modification'\n-6CFAEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFAF3 CENTRAL HEADER #159   02014B50 (33639248)\n-6CFAF7 Created Zip Spec      14 (20) '2.0'\n-6CFAF8 Created OS            00 (0) 'MS-DOS'\n-6CFAF9 Extract Zip Spec      14 (20) '2.0'\n-6CFAFA Extract OS            00 (0) 'MS-DOS'\n-6CFAFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFAFD Compression Method    0000 (0) 'Stored'\n-6CFAFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFB03 CRC                   00000000 (0)\n-6CFB07 Compressed Size       00000000 (0)\n-6CFB0B Uncompressed Size     00000000 (0)\n-6CFB0F Filename Length       0040 (64)\n-6CFB11 Extra Length          0009 (9)\n-6CFB13 Comment Length        0000 (0)\n-6CFB15 Disk Start            0000 (0)\n-6CFB17 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFB19 Ext File Attributes   00000000 (0)\n-6CFB1D Local Header Offset   0005908F (364687)\n-6CFB21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFB21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFB61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFB63   Length              0005 (5)\n-6CFB65   Flags               01 (1) 'Modification'\n-6CFB66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFB6A CENTRAL HEADER #160   02014B50 (33639248)\n-6CFB6E Created Zip Spec      14 (20) '2.0'\n-6CFB6F Created OS            00 (0) 'MS-DOS'\n-6CFB70 Extract Zip Spec      14 (20) '2.0'\n-6CFB71 Extract OS            00 (0) 'MS-DOS'\n-6CFB72 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFB74 Compression Method    0000 (0) 'Stored'\n-6CFB76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFB7A CRC                   B4003E22 (3019914786)\n-6CFB7E Compressed Size       00000966 (2406)\n-6CFB82 Uncompressed Size     00000966 (2406)\n-6CFB86 Filename Length       0039 (57)\n-6CFB88 Extra Length          0009 (9)\n-6CFB8A Comment Length        0000 (0)\n-6CFB8C Disk Start            0000 (0)\n-6CFB8E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFB90 Ext File Attributes   00000000 (0)\n-6CFB94 Local Header Offset   00059106 (364806)\n-6CFB98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFB98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFBD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFBD3   Length              0005 (5)\n-6CFBD5   Flags               01 (1) 'Modification'\n-6CFBD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFBDA CENTRAL HEADER #161   02014B50 (33639248)\n-6CFBDE Created Zip Spec      14 (20) '2.0'\n-6CFBDF Created OS            00 (0) 'MS-DOS'\n-6CFBE0 Extract Zip Spec      14 (20) '2.0'\n-6CFBE1 Extract OS            00 (0) 'MS-DOS'\n-6CFBE2 General Purpose Flag  0000 (0)\n-6CFBE4 Compression Method    0000 (0) 'Stored'\n-6CFBE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFBEA CRC                   00000000 (0)\n-6CFBEE Compressed Size       00000000 (0)\n-6CFBF2 Uncompressed Size     00000000 (0)\n-6CFBF6 Filename Length       0036 (54)\n-6CFBF8 Extra Length          0009 (9)\n-6CFBFA Comment Length        0000 (0)\n-6CFBFC Disk Start            0000 (0)\n-6CFBFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFC00 Ext File Attributes   00000000 (0)\n-6CFC04 Local Header Offset   00059ADC (367324)\n-6CFC08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFC08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFC3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFC40   Length              0005 (5)\n-6CFC42   Flags               01 (1) 'Modification'\n-6CFC43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFC47 CENTRAL HEADER #162   02014B50 (33639248)\n-6CFC4B Created Zip Spec      14 (20) '2.0'\n-6CFC4C Created OS            00 (0) 'MS-DOS'\n-6CFC4D Extract Zip Spec      14 (20) '2.0'\n-6CFC4E Extract OS            00 (0) 'MS-DOS'\n-6CFC4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFC51 Compression Method    0000 (0) 'Stored'\n-6CFC53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFC57 CRC                   00000000 (0)\n-6CFC5B Compressed Size       00000000 (0)\n-6CFC5F Uncompressed Size     00000000 (0)\n-6CFC63 Filename Length       0044 (68)\n-6CFC65 Extra Length          0009 (9)\n-6CFC67 Comment Length        0000 (0)\n-6CFC69 Disk Start            0000 (0)\n-6CFC6B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFC6D Ext File Attributes   00000000 (0)\n-6CFC71 Local Header Offset   00059B39 (367417)\n-6CFC75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFC75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFCB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFCBB   Length              0005 (5)\n-6CFCBD   Flags               01 (1) 'Modification'\n-6CFCBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFCC2 CENTRAL HEADER #163   02014B50 (33639248)\n-6CFCC6 Created Zip Spec      14 (20) '2.0'\n-6CFCC7 Created OS            00 (0) 'MS-DOS'\n-6CFCC8 Extract Zip Spec      14 (20) '2.0'\n-6CFCC9 Extract OS            00 (0) 'MS-DOS'\n-6CFCCA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFCCC Compression Method    0000 (0) 'Stored'\n-6CFCCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFCD2 CRC                   B4C3155F (3032683871)\n-6CFCD6 Compressed Size       00000C6F (3183)\n-6CFCDA Uncompressed Size     00000C6F (3183)\n-6CFCDE Filename Length       003D (61)\n-6CFCE0 Extra Length          0009 (9)\n-6CFCE2 Comment Length        0000 (0)\n-6CFCE4 Disk Start            0000 (0)\n-6CFCE6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFCE8 Ext File Attributes   00000000 (0)\n-6CFCEC Local Header Offset   00059BB4 (367540)\n-6CFCF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFCF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFD2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFD2F   Length              0005 (5)\n-6CFD31   Flags               01 (1) 'Modification'\n-6CFD32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFD36 CENTRAL HEADER #164   02014B50 (33639248)\n-6CFD3A Created Zip Spec      14 (20) '2.0'\n-6CFD3B Created OS            00 (0) 'MS-DOS'\n-6CFD3C Extract Zip Spec      14 (20) '2.0'\n-6CFD3D Extract OS            00 (0) 'MS-DOS'\n-6CFD3E General Purpose Flag  0000 (0)\n-6CFD40 Compression Method    0000 (0) 'Stored'\n-6CFD42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFD46 CRC                   00000000 (0)\n-6CFD4A Compressed Size       00000000 (0)\n-6CFD4E Uncompressed Size     00000000 (0)\n-6CFD52 Filename Length       002A (42)\n-6CFD54 Extra Length          0009 (9)\n-6CFD56 Comment Length        0000 (0)\n-6CFD58 Disk Start            0000 (0)\n-6CFD5A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFD5C Ext File Attributes   00000000 (0)\n-6CFD60 Local Header Offset   0005A897 (370839)\n-6CFD64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFD64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFD8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFD90   Length              0005 (5)\n-6CFD92   Flags               01 (1) 'Modification'\n-6CFD93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFD97 CENTRAL HEADER #165   02014B50 (33639248)\n-6CFD9B Created Zip Spec      14 (20) '2.0'\n-6CFD9C Created OS            00 (0) 'MS-DOS'\n-6CFD9D Extract Zip Spec      14 (20) '2.0'\n-6CFD9E Extract OS            00 (0) 'MS-DOS'\n-6CFD9F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFDA1 Compression Method    0000 (0) 'Stored'\n-6CFDA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFDA7 CRC                   00000000 (0)\n-6CFDAB Compressed Size       00000000 (0)\n-6CFDAF Uncompressed Size     00000000 (0)\n-6CFDB3 Filename Length       0038 (56)\n-6CFDB5 Extra Length          0009 (9)\n-6CFDB7 Comment Length        0000 (0)\n-6CFDB9 Disk Start            0000 (0)\n-6CFDBB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFDBD Ext File Attributes   00000000 (0)\n-6CFDC1 Local Header Offset   0005A8E8 (370920)\n-6CFDC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFDC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFDFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFDFF   Length              0005 (5)\n-6CFE01   Flags               01 (1) 'Modification'\n-6CFE02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFE06 CENTRAL HEADER #166   02014B50 (33639248)\n-6CFE0A Created Zip Spec      14 (20) '2.0'\n-6CFE0B Created OS            00 (0) 'MS-DOS'\n-6CFE0C Extract Zip Spec      14 (20) '2.0'\n-6CFE0D Extract OS            00 (0) 'MS-DOS'\n-6CFE0E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFE10 Compression Method    0000 (0) 'Stored'\n-6CFE12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFE16 CRC                   17F3C42C (401851436)\n-6CFE1A Compressed Size       00000B8A (2954)\n-6CFE1E Uncompressed Size     00000B8A (2954)\n-6CFE22 Filename Length       0031 (49)\n-6CFE24 Extra Length          0009 (9)\n-6CFE26 Comment Length        0000 (0)\n-6CFE28 Disk Start            0000 (0)\n-6CFE2A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFE2C Ext File Attributes   00000000 (0)\n-6CFE30 Local Header Offset   0005A957 (371031)\n-6CFE34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFE34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFE65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFE67   Length              0005 (5)\n-6CFE69   Flags               01 (1) 'Modification'\n-6CFE6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFE6E CENTRAL HEADER #167   02014B50 (33639248)\n-6CFE72 Created Zip Spec      14 (20) '2.0'\n-6CFE73 Created OS            00 (0) 'MS-DOS'\n-6CFE74 Extract Zip Spec      14 (20) '2.0'\n-6CFE75 Extract OS            00 (0) 'MS-DOS'\n-6CFE76 General Purpose Flag  0000 (0)\n-6CFE78 Compression Method    0000 (0) 'Stored'\n-6CFE7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFE7E CRC                   00000000 (0)\n-6CFE82 Compressed Size       00000000 (0)\n-6CFE86 Uncompressed Size     00000000 (0)\n-6CFE8A Filename Length       0033 (51)\n-6CFE8C Extra Length          0009 (9)\n-6CFE8E Comment Length        0000 (0)\n-6CFE90 Disk Start            0000 (0)\n-6CFE92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFE94 Ext File Attributes   00000000 (0)\n-6CFE98 Local Header Offset   0005B549 (374089)\n-6CFE9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFE9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFECF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFED1   Length              0005 (5)\n-6CFED3   Flags               01 (1) 'Modification'\n-6CFED4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFED8 CENTRAL HEADER #168   02014B50 (33639248)\n-6CFEDC Created Zip Spec      14 (20) '2.0'\n-6CFEDD Created OS            00 (0) 'MS-DOS'\n-6CFEDE Extract Zip Spec      14 (20) '2.0'\n-6CFEDF Extract OS            00 (0) 'MS-DOS'\n-6CFEE0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFEE2 Compression Method    0000 (0) 'Stored'\n-6CFEE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFEE8 CRC                   00000000 (0)\n-6CFEEC Compressed Size       00000000 (0)\n-6CFEF0 Uncompressed Size     00000000 (0)\n-6CFEF4 Filename Length       0041 (65)\n-6CFEF6 Extra Length          0009 (9)\n-6CFEF8 Comment Length        0000 (0)\n-6CFEFA Disk Start            0000 (0)\n-6CFEFC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFEFE Ext File Attributes   00000000 (0)\n-6CFF02 Local Header Offset   0005B5A3 (374179)\n-6CFF06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFF06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFF47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFF49   Length              0005 (5)\n-6CFF4B   Flags               01 (1) 'Modification'\n-6CFF4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFF50 CENTRAL HEADER #169   02014B50 (33639248)\n-6CFF54 Created Zip Spec      14 (20) '2.0'\n-6CFF55 Created OS            00 (0) 'MS-DOS'\n-6CFF56 Extract Zip Spec      14 (20) '2.0'\n-6CFF57 Extract OS            00 (0) 'MS-DOS'\n-6CFF58 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6CFF5A Compression Method    0000 (0) 'Stored'\n-6CFF5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFF60 CRC                   050B85C5 (84641221)\n-6CFF64 Compressed Size       00000CF1 (3313)\n-6CFF68 Uncompressed Size     00000CF1 (3313)\n-6CFF6C Filename Length       003A (58)\n-6CFF6E Extra Length          0009 (9)\n-6CFF70 Comment Length        0000 (0)\n-6CFF72 Disk Start            0000 (0)\n-6CFF74 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFF76 Ext File Attributes   00000000 (0)\n-6CFF7A Local Header Offset   0005B61B (374299)\n-6CFF7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFF7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6CFFB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6CFFBA   Length              0005 (5)\n-6CFFBC   Flags               01 (1) 'Modification'\n-6CFFBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6CFFC1 CENTRAL HEADER #170   02014B50 (33639248)\n-6CFFC5 Created Zip Spec      14 (20) '2.0'\n-6CFFC6 Created OS            00 (0) 'MS-DOS'\n-6CFFC7 Extract Zip Spec      14 (20) '2.0'\n-6CFFC8 Extract OS            00 (0) 'MS-DOS'\n-6CFFC9 General Purpose Flag  0000 (0)\n-6CFFCB Compression Method    0000 (0) 'Stored'\n-6CFFCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6CFFD1 CRC                   00000000 (0)\n-6CFFD5 Compressed Size       00000000 (0)\n-6CFFD9 Uncompressed Size     00000000 (0)\n-6CFFDD Filename Length       0036 (54)\n-6CFFDF Extra Length          0009 (9)\n-6CFFE1 Comment Length        0000 (0)\n-6CFFE3 Disk Start            0000 (0)\n-6CFFE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6CFFE7 Ext File Attributes   00000000 (0)\n-6CFFEB Local Header Offset   0005C37D (377725)\n-6CFFEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6CFFEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0025 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0027   Length              0005 (5)\n-6D0029   Flags               01 (1) 'Modification'\n-6D002A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D002E CENTRAL HEADER #171   02014B50 (33639248)\n-6D0032 Created Zip Spec      14 (20) '2.0'\n-6D0033 Created OS            00 (0) 'MS-DOS'\n-6D0034 Extract Zip Spec      14 (20) '2.0'\n-6D0035 Extract OS            00 (0) 'MS-DOS'\n-6D0036 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0038 Compression Method    0000 (0) 'Stored'\n-6D003A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D003E CRC                   00000000 (0)\n-6D0042 Compressed Size       00000000 (0)\n-6D0046 Uncompressed Size     00000000 (0)\n-6D004A Filename Length       0044 (68)\n-6D004C Extra Length          0009 (9)\n-6D004E Comment Length        0000 (0)\n-6D0050 Disk Start            0000 (0)\n-6D0052 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0054 Ext File Attributes   00000000 (0)\n-6D0058 Local Header Offset   0005C3DA (377818)\n-6D005C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D005C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D00A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D00A2   Length              0005 (5)\n-6D00A4   Flags               01 (1) 'Modification'\n-6D00A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D00A9 CENTRAL HEADER #172   02014B50 (33639248)\n-6D00AD Created Zip Spec      14 (20) '2.0'\n-6D00AE Created OS            00 (0) 'MS-DOS'\n-6D00AF Extract Zip Spec      14 (20) '2.0'\n-6D00B0 Extract OS            00 (0) 'MS-DOS'\n-6D00B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D00B3 Compression Method    0000 (0) 'Stored'\n-6D00B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D00B9 CRC                   178839D9 (394803673)\n-6D00BD Compressed Size       00000992 (2450)\n-6D00C1 Uncompressed Size     00000992 (2450)\n-6D00C5 Filename Length       003D (61)\n-6D00C7 Extra Length          0009 (9)\n-6D00C9 Comment Length        0000 (0)\n-6D00CB Disk Start            0000 (0)\n-6D00CD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D00CF Ext File Attributes   00000000 (0)\n-6D00D3 Local Header Offset   0005C455 (377941)\n-6D00D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D00D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0114 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0116   Length              0005 (5)\n-6D0118   Flags               01 (1) 'Modification'\n-6D0119   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D011D CENTRAL HEADER #173   02014B50 (33639248)\n-6D0121 Created Zip Spec      14 (20) '2.0'\n-6D0122 Created OS            00 (0) 'MS-DOS'\n-6D0123 Extract Zip Spec      14 (20) '2.0'\n-6D0124 Extract OS            00 (0) 'MS-DOS'\n-6D0125 General Purpose Flag  0000 (0)\n-6D0127 Compression Method    0000 (0) 'Stored'\n-6D0129 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D012D CRC                   00000000 (0)\n-6D0131 Compressed Size       00000000 (0)\n-6D0135 Uncompressed Size     00000000 (0)\n-6D0139 Filename Length       0037 (55)\n-6D013B Extra Length          0009 (9)\n-6D013D Comment Length        0000 (0)\n-6D013F Disk Start            0000 (0)\n-6D0141 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0143 Ext File Attributes   00000000 (0)\n-6D0147 Local Header Offset   0005CE5B (380507)\n-6D014B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D014B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0182 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0184   Length              0005 (5)\n-6D0186   Flags               01 (1) 'Modification'\n-6D0187   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D018B CENTRAL HEADER #174   02014B50 (33639248)\n-6D018F Created Zip Spec      14 (20) '2.0'\n-6D0190 Created OS            00 (0) 'MS-DOS'\n-6D0191 Extract Zip Spec      14 (20) '2.0'\n-6D0192 Extract OS            00 (0) 'MS-DOS'\n-6D0193 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0195 Compression Method    0000 (0) 'Stored'\n-6D0197 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D019B CRC                   00000000 (0)\n-6D019F Compressed Size       00000000 (0)\n-6D01A3 Uncompressed Size     00000000 (0)\n-6D01A7 Filename Length       0045 (69)\n-6D01A9 Extra Length          0009 (9)\n-6D01AB Comment Length        0000 (0)\n-6D01AD Disk Start            0000 (0)\n-6D01AF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D01B1 Ext File Attributes   00000000 (0)\n-6D01B5 Local Header Offset   0005CEB9 (380601)\n-6D01B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D01B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D01FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0200   Length              0005 (5)\n-6D0202   Flags               01 (1) 'Modification'\n-6D0203   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0207 CENTRAL HEADER #175   02014B50 (33639248)\n-6D020B Created Zip Spec      14 (20) '2.0'\n-6D020C Created OS            00 (0) 'MS-DOS'\n-6D020D Extract Zip Spec      14 (20) '2.0'\n-6D020E Extract OS            00 (0) 'MS-DOS'\n-6D020F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0211 Compression Method    0000 (0) 'Stored'\n-6D0213 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0217 CRC                   00E8472C (15222572)\n-6D021B Compressed Size       00000BB5 (2997)\n-6D021F Uncompressed Size     00000BB5 (2997)\n-6D0223 Filename Length       003E (62)\n-6D0225 Extra Length          0009 (9)\n-6D0227 Comment Length        0000 (0)\n-6D0229 Disk Start            0000 (0)\n-6D022B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D022D Ext File Attributes   00000000 (0)\n-6D0231 Local Header Offset   0005CF35 (380725)\n-6D0235 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0235: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0273 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0275   Length              0005 (5)\n-6D0277   Flags               01 (1) 'Modification'\n-6D0278   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D027C CENTRAL HEADER #176   02014B50 (33639248)\n-6D0280 Created Zip Spec      14 (20) '2.0'\n-6D0281 Created OS            00 (0) 'MS-DOS'\n-6D0282 Extract Zip Spec      14 (20) '2.0'\n-6D0283 Extract OS            00 (0) 'MS-DOS'\n-6D0284 General Purpose Flag  0000 (0)\n-6D0286 Compression Method    0000 (0) 'Stored'\n-6D0288 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D028C CRC                   00000000 (0)\n-6D0290 Compressed Size       00000000 (0)\n-6D0294 Uncompressed Size     00000000 (0)\n-6D0298 Filename Length       0035 (53)\n-6D029A Extra Length          0009 (9)\n-6D029C Comment Length        0000 (0)\n-6D029E Disk Start            0000 (0)\n-6D02A0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D02A2 Ext File Attributes   00000000 (0)\n-6D02A6 Local Header Offset   0005DB5F (383839)\n-6D02AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D02AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D02DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D02E1   Length              0005 (5)\n-6D02E3   Flags               01 (1) 'Modification'\n-6D02E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D02E8 CENTRAL HEADER #177   02014B50 (33639248)\n-6D02EC Created Zip Spec      14 (20) '2.0'\n-6D02ED Created OS            00 (0) 'MS-DOS'\n-6D02EE Extract Zip Spec      14 (20) '2.0'\n-6D02EF Extract OS            00 (0) 'MS-DOS'\n-6D02F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D02F2 Compression Method    0000 (0) 'Stored'\n-6D02F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D02F8 CRC                   00000000 (0)\n-6D02FC Compressed Size       00000000 (0)\n-6D0300 Uncompressed Size     00000000 (0)\n-6D0304 Filename Length       0043 (67)\n-6D0306 Extra Length          0009 (9)\n-6D0308 Comment Length        0000 (0)\n-6D030A Disk Start            0000 (0)\n-6D030C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D030E Ext File Attributes   00000000 (0)\n-6D0312 Local Header Offset   0005DBBB (383931)\n-6D0316 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0316: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0359 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D035B   Length              0005 (5)\n-6D035D   Flags               01 (1) 'Modification'\n-6D035E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0362 CENTRAL HEADER #178   02014B50 (33639248)\n-6D0366 Created Zip Spec      14 (20) '2.0'\n-6D0367 Created OS            00 (0) 'MS-DOS'\n-6D0368 Extract Zip Spec      14 (20) '2.0'\n-6D0369 Extract OS            00 (0) 'MS-DOS'\n-6D036A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D036C Compression Method    0000 (0) 'Stored'\n-6D036E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0372 CRC                   8F421884 (2403473540)\n-6D0376 Compressed Size       000008FC (2300)\n-6D037A Uncompressed Size     000008FC (2300)\n-6D037E Filename Length       003C (60)\n-6D0380 Extra Length          0009 (9)\n-6D0382 Comment Length        0000 (0)\n-6D0384 Disk Start            0000 (0)\n-6D0386 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0388 Ext File Attributes   00000000 (0)\n-6D038C Local Header Offset   0005DC35 (384053)\n-6D0390 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0390: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D03CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D03CE   Length              0005 (5)\n-6D03D0   Flags               01 (1) 'Modification'\n-6D03D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D03D5 CENTRAL HEADER #179   02014B50 (33639248)\n-6D03D9 Created Zip Spec      14 (20) '2.0'\n-6D03DA Created OS            00 (0) 'MS-DOS'\n-6D03DB Extract Zip Spec      14 (20) '2.0'\n-6D03DC Extract OS            00 (0) 'MS-DOS'\n-6D03DD General Purpose Flag  0000 (0)\n-6D03DF Compression Method    0000 (0) 'Stored'\n-6D03E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D03E5 CRC                   00000000 (0)\n-6D03E9 Compressed Size       00000000 (0)\n-6D03ED Uncompressed Size     00000000 (0)\n-6D03F1 Filename Length       0036 (54)\n-6D03F3 Extra Length          0009 (9)\n-6D03F5 Comment Length        0000 (0)\n-6D03F7 Disk Start            0000 (0)\n-6D03F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D03FB Ext File Attributes   00000000 (0)\n-6D03FF Local Header Offset   0005E5A4 (386468)\n-6D0403 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0403: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0439 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D043B   Length              0005 (5)\n-6D043D   Flags               01 (1) 'Modification'\n-6D043E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0442 CENTRAL HEADER #180   02014B50 (33639248)\n-6D0446 Created Zip Spec      14 (20) '2.0'\n-6D0447 Created OS            00 (0) 'MS-DOS'\n-6D0448 Extract Zip Spec      14 (20) '2.0'\n-6D0449 Extract OS            00 (0) 'MS-DOS'\n-6D044A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D044C Compression Method    0000 (0) 'Stored'\n-6D044E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0452 CRC                   00000000 (0)\n-6D0456 Compressed Size       00000000 (0)\n-6D045A Uncompressed Size     00000000 (0)\n-6D045E Filename Length       0044 (68)\n-6D0460 Extra Length          0009 (9)\n-6D0462 Comment Length        0000 (0)\n-6D0464 Disk Start            0000 (0)\n-6D0466 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0468 Ext File Attributes   00000000 (0)\n-6D046C Local Header Offset   0005E601 (386561)\n-6D0470 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0470: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D04B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D04B6   Length              0005 (5)\n-6D04B8   Flags               01 (1) 'Modification'\n-6D04B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D04BD CENTRAL HEADER #181   02014B50 (33639248)\n-6D04C1 Created Zip Spec      14 (20) '2.0'\n-6D04C2 Created OS            00 (0) 'MS-DOS'\n-6D04C3 Extract Zip Spec      14 (20) '2.0'\n-6D04C4 Extract OS            00 (0) 'MS-DOS'\n-6D04C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D04C7 Compression Method    0000 (0) 'Stored'\n-6D04C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D04CD CRC                   06F60447 (116786247)\n-6D04D1 Compressed Size       00000BC5 (3013)\n-6D04D5 Uncompressed Size     00000BC5 (3013)\n-6D04D9 Filename Length       003D (61)\n-6D04DB Extra Length          0009 (9)\n-6D04DD Comment Length        0000 (0)\n-6D04DF Disk Start            0000 (0)\n-6D04E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D04E3 Ext File Attributes   00000000 (0)\n-6D04E7 Local Header Offset   0005E67C (386684)\n-6D04EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D04EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0528 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D052A   Length              0005 (5)\n-6D052C   Flags               01 (1) 'Modification'\n-6D052D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0531 CENTRAL HEADER #182   02014B50 (33639248)\n-6D0535 Created Zip Spec      14 (20) '2.0'\n-6D0536 Created OS            00 (0) 'MS-DOS'\n-6D0537 Extract Zip Spec      14 (20) '2.0'\n-6D0538 Extract OS            00 (0) 'MS-DOS'\n-6D0539 General Purpose Flag  0000 (0)\n-6D053B Compression Method    0000 (0) 'Stored'\n-6D053D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0541 CRC                   00000000 (0)\n-6D0545 Compressed Size       00000000 (0)\n-6D0549 Uncompressed Size     00000000 (0)\n-6D054D Filename Length       0039 (57)\n-6D054F Extra Length          0009 (9)\n-6D0551 Comment Length        0000 (0)\n-6D0553 Disk Start            0000 (0)\n-6D0555 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0557 Ext File Attributes   00000000 (0)\n-6D055B Local Header Offset   0005F2B5 (389813)\n-6D055F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D055F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0598 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D059A   Length              0005 (5)\n-6D059C   Flags               01 (1) 'Modification'\n-6D059D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D05A1 CENTRAL HEADER #183   02014B50 (33639248)\n-6D05A5 Created Zip Spec      14 (20) '2.0'\n-6D05A6 Created OS            00 (0) 'MS-DOS'\n-6D05A7 Extract Zip Spec      14 (20) '2.0'\n-6D05A8 Extract OS            00 (0) 'MS-DOS'\n-6D05A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D05AB Compression Method    0000 (0) 'Stored'\n-6D05AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D05B1 CRC                   00000000 (0)\n-6D05B5 Compressed Size       00000000 (0)\n-6D05B9 Uncompressed Size     00000000 (0)\n-6D05BD Filename Length       0047 (71)\n-6D05BF Extra Length          0009 (9)\n-6D05C1 Comment Length        0000 (0)\n-6D05C3 Disk Start            0000 (0)\n-6D05C5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D05C7 Ext File Attributes   00000000 (0)\n-6D05CB Local Header Offset   0005F315 (389909)\n-6D05CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D05CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0616 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0618   Length              0005 (5)\n-6D061A   Flags               01 (1) 'Modification'\n-6D061B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D061F CENTRAL HEADER #184   02014B50 (33639248)\n-6D0623 Created Zip Spec      14 (20) '2.0'\n-6D0624 Created OS            00 (0) 'MS-DOS'\n-6D0625 Extract Zip Spec      14 (20) '2.0'\n-6D0626 Extract OS            00 (0) 'MS-DOS'\n-6D0627 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0629 Compression Method    0000 (0) 'Stored'\n-6D062B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D062F CRC                   78AA4678 (2024425080)\n-6D0633 Compressed Size       000007CF (1999)\n-6D0637 Uncompressed Size     000007CF (1999)\n-6D063B Filename Length       0040 (64)\n-6D063D Extra Length          0009 (9)\n-6D063F Comment Length        0000 (0)\n-6D0641 Disk Start            0000 (0)\n-6D0643 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0645 Ext File Attributes   00000000 (0)\n-6D0649 Local Header Offset   0005F393 (390035)\n-6D064D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D064D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D068D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D068F   Length              0005 (5)\n-6D0691   Flags               01 (1) 'Modification'\n-6D0692   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0696 CENTRAL HEADER #185   02014B50 (33639248)\n-6D069A Created Zip Spec      14 (20) '2.0'\n-6D069B Created OS            00 (0) 'MS-DOS'\n-6D069C Extract Zip Spec      14 (20) '2.0'\n-6D069D Extract OS            00 (0) 'MS-DOS'\n-6D069E General Purpose Flag  0000 (0)\n-6D06A0 Compression Method    0000 (0) 'Stored'\n-6D06A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D06A6 CRC                   00000000 (0)\n-6D06AA Compressed Size       00000000 (0)\n-6D06AE Uncompressed Size     00000000 (0)\n-6D06B2 Filename Length       0038 (56)\n-6D06B4 Extra Length          0009 (9)\n-6D06B6 Comment Length        0000 (0)\n-6D06B8 Disk Start            0000 (0)\n-6D06BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D06BC Ext File Attributes   00000000 (0)\n-6D06C0 Local Header Offset   0005FBD9 (392153)\n-6D06C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D06C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D06FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D06FE   Length              0005 (5)\n-6D0700   Flags               01 (1) 'Modification'\n-6D0701   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0705 CENTRAL HEADER #186   02014B50 (33639248)\n-6D0709 Created Zip Spec      14 (20) '2.0'\n-6D070A Created OS            00 (0) 'MS-DOS'\n-6D070B Extract Zip Spec      14 (20) '2.0'\n-6D070C Extract OS            00 (0) 'MS-DOS'\n-6D070D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D070F Compression Method    0000 (0) 'Stored'\n-6D0711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0715 CRC                   00000000 (0)\n-6D0719 Compressed Size       00000000 (0)\n-6D071D Uncompressed Size     00000000 (0)\n-6D0721 Filename Length       0046 (70)\n-6D0723 Extra Length          0009 (9)\n-6D0725 Comment Length        0000 (0)\n-6D0727 Disk Start            0000 (0)\n-6D0729 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D072B Ext File Attributes   00000000 (0)\n-6D072F Local Header Offset   0005FC38 (392248)\n-6D0733 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0733: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0779 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D077B   Length              0005 (5)\n-6D077D   Flags               01 (1) 'Modification'\n-6D077E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0782 CENTRAL HEADER #187   02014B50 (33639248)\n-6D0786 Created Zip Spec      14 (20) '2.0'\n-6D0787 Created OS            00 (0) 'MS-DOS'\n-6D0788 Extract Zip Spec      14 (20) '2.0'\n-6D0789 Extract OS            00 (0) 'MS-DOS'\n-6D078A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D078C Compression Method    0000 (0) 'Stored'\n-6D078E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0792 CRC                   E3551669 (3814004329)\n-6D0796 Compressed Size       00000B49 (2889)\n-6D079A Uncompressed Size     00000B49 (2889)\n-6D079E Filename Length       003F (63)\n-6D07A0 Extra Length          0009 (9)\n-6D07A2 Comment Length        0000 (0)\n-6D07A4 Disk Start            0000 (0)\n-6D07A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D07A8 Ext File Attributes   00000000 (0)\n-6D07AC Local Header Offset   0005FCB5 (392373)\n-6D07B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D07B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D07EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D07F1   Length              0005 (5)\n-6D07F3   Flags               01 (1) 'Modification'\n-6D07F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D07F8 CENTRAL HEADER #188   02014B50 (33639248)\n-6D07FC Created Zip Spec      14 (20) '2.0'\n-6D07FD Created OS            00 (0) 'MS-DOS'\n-6D07FE Extract Zip Spec      14 (20) '2.0'\n-6D07FF Extract OS            00 (0) 'MS-DOS'\n-6D0800 General Purpose Flag  0000 (0)\n-6D0802 Compression Method    0000 (0) 'Stored'\n-6D0804 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0808 CRC                   00000000 (0)\n-6D080C Compressed Size       00000000 (0)\n-6D0810 Uncompressed Size     00000000 (0)\n-6D0814 Filename Length       0035 (53)\n-6D0816 Extra Length          0009 (9)\n-6D0818 Comment Length        0000 (0)\n-6D081A Disk Start            0000 (0)\n-6D081C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D081E Ext File Attributes   00000000 (0)\n-6D0822 Local Header Offset   00060874 (395380)\n-6D0826 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0826: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D085B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D085D   Length              0005 (5)\n-6D085F   Flags               01 (1) 'Modification'\n-6D0860   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0864 CENTRAL HEADER #189   02014B50 (33639248)\n-6D0868 Created Zip Spec      14 (20) '2.0'\n-6D0869 Created OS            00 (0) 'MS-DOS'\n-6D086A Extract Zip Spec      14 (20) '2.0'\n-6D086B Extract OS            00 (0) 'MS-DOS'\n-6D086C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D086E Compression Method    0000 (0) 'Stored'\n-6D0870 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0874 CRC                   00000000 (0)\n-6D0878 Compressed Size       00000000 (0)\n-6D087C Uncompressed Size     00000000 (0)\n-6D0880 Filename Length       0043 (67)\n-6D0882 Extra Length          0009 (9)\n-6D0884 Comment Length        0000 (0)\n-6D0886 Disk Start            0000 (0)\n-6D0888 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D088A Ext File Attributes   00000000 (0)\n-6D088E Local Header Offset   000608D0 (395472)\n-6D0892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D08D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D08D7   Length              0005 (5)\n-6D08D9   Flags               01 (1) 'Modification'\n-6D08DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D08DE CENTRAL HEADER #190   02014B50 (33639248)\n-6D08E2 Created Zip Spec      14 (20) '2.0'\n-6D08E3 Created OS            00 (0) 'MS-DOS'\n-6D08E4 Extract Zip Spec      14 (20) '2.0'\n-6D08E5 Extract OS            00 (0) 'MS-DOS'\n-6D08E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D08E8 Compression Method    0000 (0) 'Stored'\n-6D08EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D08EE CRC                   0701BB57 (117554007)\n-6D08F2 Compressed Size       00000C33 (3123)\n-6D08F6 Uncompressed Size     00000C33 (3123)\n-6D08FA Filename Length       003C (60)\n-6D08FC Extra Length          0009 (9)\n-6D08FE Comment Length        0000 (0)\n-6D0900 Disk Start            0000 (0)\n-6D0902 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0904 Ext File Attributes   00000000 (0)\n-6D0908 Local Header Offset   0006094A (395594)\n-6D090C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D090C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D094A   Length              0005 (5)\n-6D094C   Flags               01 (1) 'Modification'\n-6D094D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0951 CENTRAL HEADER #191   02014B50 (33639248)\n-6D0955 Created Zip Spec      14 (20) '2.0'\n-6D0956 Created OS            00 (0) 'MS-DOS'\n-6D0957 Extract Zip Spec      14 (20) '2.0'\n-6D0958 Extract OS            00 (0) 'MS-DOS'\n-6D0959 General Purpose Flag  0000 (0)\n-6D095B Compression Method    0000 (0) 'Stored'\n-6D095D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0961 CRC                   00000000 (0)\n-6D0965 Compressed Size       00000000 (0)\n-6D0969 Uncompressed Size     00000000 (0)\n-6D096D Filename Length       0035 (53)\n-6D096F Extra Length          0009 (9)\n-6D0971 Comment Length        0000 (0)\n-6D0973 Disk Start            0000 (0)\n-6D0975 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0977 Ext File Attributes   00000000 (0)\n-6D097B Local Header Offset   000615F0 (398832)\n-6D097F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D097F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D09B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D09B6   Length              0005 (5)\n-6D09B8   Flags               01 (1) 'Modification'\n-6D09B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D09BD CENTRAL HEADER #192   02014B50 (33639248)\n-6D09C1 Created Zip Spec      14 (20) '2.0'\n-6D09C2 Created OS            00 (0) 'MS-DOS'\n-6D09C3 Extract Zip Spec      14 (20) '2.0'\n-6D09C4 Extract OS            00 (0) 'MS-DOS'\n-6D09C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D09C7 Compression Method    0000 (0) 'Stored'\n-6D09C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D09CD CRC                   00000000 (0)\n-6D09D1 Compressed Size       00000000 (0)\n-6D09D5 Uncompressed Size     00000000 (0)\n-6D09D9 Filename Length       0043 (67)\n-6D09DB Extra Length          0009 (9)\n-6D09DD Comment Length        0000 (0)\n-6D09DF Disk Start            0000 (0)\n-6D09E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D09E3 Ext File Attributes   00000000 (0)\n-6D09E7 Local Header Offset   0006164C (398924)\n-6D09EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D09EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0A2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0A30   Length              0005 (5)\n-6D0A32   Flags               01 (1) 'Modification'\n-6D0A33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0A37 CENTRAL HEADER #193   02014B50 (33639248)\n-6D0A3B Created Zip Spec      14 (20) '2.0'\n-6D0A3C Created OS            00 (0) 'MS-DOS'\n-6D0A3D Extract Zip Spec      14 (20) '2.0'\n-6D0A3E Extract OS            00 (0) 'MS-DOS'\n-6D0A3F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0A41 Compression Method    0000 (0) 'Stored'\n-6D0A43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0A47 CRC                   6FB1D315 (1873924885)\n-6D0A4B Compressed Size       00000A29 (2601)\n-6D0A4F Uncompressed Size     00000A29 (2601)\n-6D0A53 Filename Length       003C (60)\n-6D0A55 Extra Length          0009 (9)\n-6D0A57 Comment Length        0000 (0)\n-6D0A59 Disk Start            0000 (0)\n-6D0A5B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0A5D Ext File Attributes   00000000 (0)\n-6D0A61 Local Header Offset   000616C6 (399046)\n-6D0A65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0A65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0AA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0AA3   Length              0005 (5)\n-6D0AA5   Flags               01 (1) 'Modification'\n-6D0AA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0AAA CENTRAL HEADER #194   02014B50 (33639248)\n-6D0AAE Created Zip Spec      14 (20) '2.0'\n-6D0AAF Created OS            00 (0) 'MS-DOS'\n-6D0AB0 Extract Zip Spec      14 (20) '2.0'\n-6D0AB1 Extract OS            00 (0) 'MS-DOS'\n-6D0AB2 General Purpose Flag  0000 (0)\n-6D0AB4 Compression Method    0000 (0) 'Stored'\n-6D0AB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0ABA CRC                   00000000 (0)\n-6D0ABE Compressed Size       00000000 (0)\n-6D0AC2 Uncompressed Size     00000000 (0)\n-6D0AC6 Filename Length       0034 (52)\n-6D0AC8 Extra Length          0009 (9)\n-6D0ACA Comment Length        0000 (0)\n-6D0ACC Disk Start            0000 (0)\n-6D0ACE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0AD0 Ext File Attributes   00000000 (0)\n-6D0AD4 Local Header Offset   00062162 (401762)\n-6D0AD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0AD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0B0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0B0E   Length              0005 (5)\n-6D0B10   Flags               01 (1) 'Modification'\n-6D0B11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0B15 CENTRAL HEADER #195   02014B50 (33639248)\n-6D0B19 Created Zip Spec      14 (20) '2.0'\n-6D0B1A Created OS            00 (0) 'MS-DOS'\n-6D0B1B Extract Zip Spec      14 (20) '2.0'\n-6D0B1C Extract OS            00 (0) 'MS-DOS'\n-6D0B1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0B1F Compression Method    0000 (0) 'Stored'\n-6D0B21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0B25 CRC                   00000000 (0)\n-6D0B29 Compressed Size       00000000 (0)\n-6D0B2D Uncompressed Size     00000000 (0)\n-6D0B31 Filename Length       0042 (66)\n-6D0B33 Extra Length          0009 (9)\n-6D0B35 Comment Length        0000 (0)\n-6D0B37 Disk Start            0000 (0)\n-6D0B39 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0B3B Ext File Attributes   00000000 (0)\n-6D0B3F Local Header Offset   000621BD (401853)\n-6D0B43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0B43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0B85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0B87   Length              0005 (5)\n-6D0B89   Flags               01 (1) 'Modification'\n-6D0B8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0B8E CENTRAL HEADER #196   02014B50 (33639248)\n-6D0B92 Created Zip Spec      14 (20) '2.0'\n-6D0B93 Created OS            00 (0) 'MS-DOS'\n-6D0B94 Extract Zip Spec      14 (20) '2.0'\n-6D0B95 Extract OS            00 (0) 'MS-DOS'\n-6D0B96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0B98 Compression Method    0000 (0) 'Stored'\n-6D0B9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0B9E CRC                   6F2313AC (1864569772)\n-6D0BA2 Compressed Size       000012B3 (4787)\n-6D0BA6 Uncompressed Size     000012B3 (4787)\n-6D0BAA Filename Length       003B (59)\n-6D0BAC Extra Length          0009 (9)\n-6D0BAE Comment Length        0000 (0)\n-6D0BB0 Disk Start            0000 (0)\n-6D0BB2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0BB4 Ext File Attributes   00000000 (0)\n-6D0BB8 Local Header Offset   00062236 (401974)\n-6D0BBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0BBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0BF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0BF9   Length              0005 (5)\n-6D0BFB   Flags               01 (1) 'Modification'\n-6D0BFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0C00 CENTRAL HEADER #197   02014B50 (33639248)\n-6D0C04 Created Zip Spec      14 (20) '2.0'\n-6D0C05 Created OS            00 (0) 'MS-DOS'\n-6D0C06 Extract Zip Spec      14 (20) '2.0'\n-6D0C07 Extract OS            00 (0) 'MS-DOS'\n-6D0C08 General Purpose Flag  0000 (0)\n-6D0C0A Compression Method    0000 (0) 'Stored'\n-6D0C0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0C10 CRC                   00000000 (0)\n-6D0C14 Compressed Size       00000000 (0)\n-6D0C18 Uncompressed Size     00000000 (0)\n-6D0C1C Filename Length       0039 (57)\n-6D0C1E Extra Length          0009 (9)\n-6D0C20 Comment Length        0000 (0)\n-6D0C22 Disk Start            0000 (0)\n-6D0C24 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0C26 Ext File Attributes   00000000 (0)\n-6D0C2A Local Header Offset   0006355B (406875)\n-6D0C2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0C2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0C67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0C69   Length              0005 (5)\n-6D0C6B   Flags               01 (1) 'Modification'\n-6D0C6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0C70 CENTRAL HEADER #198   02014B50 (33639248)\n-6D0C74 Created Zip Spec      14 (20) '2.0'\n-6D0C75 Created OS            00 (0) 'MS-DOS'\n-6D0C76 Extract Zip Spec      14 (20) '2.0'\n-6D0C77 Extract OS            00 (0) 'MS-DOS'\n-6D0C78 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0C7A Compression Method    0000 (0) 'Stored'\n-6D0C7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0C80 CRC                   00000000 (0)\n-6D0C84 Compressed Size       00000000 (0)\n-6D0C88 Uncompressed Size     00000000 (0)\n-6D0C8C Filename Length       0047 (71)\n-6D0C8E Extra Length          0009 (9)\n-6D0C90 Comment Length        0000 (0)\n-6D0C92 Disk Start            0000 (0)\n-6D0C94 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0C96 Ext File Attributes   00000000 (0)\n-6D0C9A Local Header Offset   000635BB (406971)\n-6D0C9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0C9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0CE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0CE7   Length              0005 (5)\n-6D0CE9   Flags               01 (1) 'Modification'\n-6D0CEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0CEE CENTRAL HEADER #199   02014B50 (33639248)\n-6D0CF2 Created Zip Spec      14 (20) '2.0'\n-6D0CF3 Created OS            00 (0) 'MS-DOS'\n-6D0CF4 Extract Zip Spec      14 (20) '2.0'\n-6D0CF5 Extract OS            00 (0) 'MS-DOS'\n-6D0CF6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0CF8 Compression Method    0000 (0) 'Stored'\n-6D0CFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0CFE CRC                   4C2A7690 (1277851280)\n-6D0D02 Compressed Size       000009AC (2476)\n-6D0D06 Uncompressed Size     000009AC (2476)\n-6D0D0A Filename Length       0040 (64)\n-6D0D0C Extra Length          0009 (9)\n-6D0D0E Comment Length        0000 (0)\n-6D0D10 Disk Start            0000 (0)\n-6D0D12 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0D14 Ext File Attributes   00000000 (0)\n-6D0D18 Local Header Offset   00063639 (407097)\n-6D0D1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0D1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0D5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0D5E   Length              0005 (5)\n-6D0D60   Flags               01 (1) 'Modification'\n-6D0D61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0D65 CENTRAL HEADER #200   02014B50 (33639248)\n-6D0D69 Created Zip Spec      14 (20) '2.0'\n-6D0D6A Created OS            00 (0) 'MS-DOS'\n-6D0D6B Extract Zip Spec      14 (20) '2.0'\n-6D0D6C Extract OS            00 (0) 'MS-DOS'\n-6D0D6D General Purpose Flag  0000 (0)\n-6D0D6F Compression Method    0000 (0) 'Stored'\n-6D0D71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0D75 CRC                   00000000 (0)\n-6D0D79 Compressed Size       00000000 (0)\n-6D0D7D Uncompressed Size     00000000 (0)\n-6D0D81 Filename Length       0033 (51)\n-6D0D83 Extra Length          0009 (9)\n-6D0D85 Comment Length        0000 (0)\n-6D0D87 Disk Start            0000 (0)\n-6D0D89 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0D8B Ext File Attributes   00000000 (0)\n-6D0D8F Local Header Offset   0006405C (409692)\n-6D0D93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0D93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0DC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0DC8   Length              0005 (5)\n-6D0DCA   Flags               01 (1) 'Modification'\n-6D0DCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0DCF CENTRAL HEADER #201   02014B50 (33639248)\n-6D0DD3 Created Zip Spec      14 (20) '2.0'\n-6D0DD4 Created OS            00 (0) 'MS-DOS'\n-6D0DD5 Extract Zip Spec      14 (20) '2.0'\n-6D0DD6 Extract OS            00 (0) 'MS-DOS'\n-6D0DD7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0DD9 Compression Method    0000 (0) 'Stored'\n-6D0DDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0DDF CRC                   00000000 (0)\n-6D0DE3 Compressed Size       00000000 (0)\n-6D0DE7 Uncompressed Size     00000000 (0)\n-6D0DEB Filename Length       0041 (65)\n-6D0DED Extra Length          0009 (9)\n-6D0DEF Comment Length        0000 (0)\n-6D0DF1 Disk Start            0000 (0)\n-6D0DF3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0DF5 Ext File Attributes   00000000 (0)\n-6D0DF9 Local Header Offset   000640B6 (409782)\n-6D0DFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0DFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0E3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0E40   Length              0005 (5)\n-6D0E42   Flags               01 (1) 'Modification'\n-6D0E43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0E47 CENTRAL HEADER #202   02014B50 (33639248)\n-6D0E4B Created Zip Spec      14 (20) '2.0'\n-6D0E4C Created OS            00 (0) 'MS-DOS'\n-6D0E4D Extract Zip Spec      14 (20) '2.0'\n-6D0E4E Extract OS            00 (0) 'MS-DOS'\n-6D0E4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0E51 Compression Method    0000 (0) 'Stored'\n-6D0E53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0E57 CRC                   2EBB8418 (784040984)\n-6D0E5B Compressed Size       00000951 (2385)\n-6D0E5F Uncompressed Size     00000951 (2385)\n-6D0E63 Filename Length       003A (58)\n-6D0E65 Extra Length          0009 (9)\n-6D0E67 Comment Length        0000 (0)\n-6D0E69 Disk Start            0000 (0)\n-6D0E6B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0E6D Ext File Attributes   00000000 (0)\n-6D0E71 Local Header Offset   0006412E (409902)\n-6D0E75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0E75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0EAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0EB1   Length              0005 (5)\n-6D0EB3   Flags               01 (1) 'Modification'\n-6D0EB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0EB8 CENTRAL HEADER #203   02014B50 (33639248)\n-6D0EBC Created Zip Spec      14 (20) '2.0'\n-6D0EBD Created OS            00 (0) 'MS-DOS'\n-6D0EBE Extract Zip Spec      14 (20) '2.0'\n-6D0EBF Extract OS            00 (0) 'MS-DOS'\n-6D0EC0 General Purpose Flag  0000 (0)\n-6D0EC2 Compression Method    0000 (0) 'Stored'\n-6D0EC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0EC8 CRC                   00000000 (0)\n-6D0ECC Compressed Size       00000000 (0)\n-6D0ED0 Uncompressed Size     00000000 (0)\n-6D0ED4 Filename Length       0035 (53)\n-6D0ED6 Extra Length          0009 (9)\n-6D0ED8 Comment Length        0000 (0)\n-6D0EDA Disk Start            0000 (0)\n-6D0EDC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0EDE Ext File Attributes   00000000 (0)\n-6D0EE2 Local Header Offset   00064AF0 (412400)\n-6D0EE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0EE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0F1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0F1D   Length              0005 (5)\n-6D0F1F   Flags               01 (1) 'Modification'\n-6D0F20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0F24 CENTRAL HEADER #204   02014B50 (33639248)\n-6D0F28 Created Zip Spec      14 (20) '2.0'\n-6D0F29 Created OS            00 (0) 'MS-DOS'\n-6D0F2A Extract Zip Spec      14 (20) '2.0'\n-6D0F2B Extract OS            00 (0) 'MS-DOS'\n-6D0F2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0F2E Compression Method    0000 (0) 'Stored'\n-6D0F30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0F34 CRC                   00000000 (0)\n-6D0F38 Compressed Size       00000000 (0)\n-6D0F3C Uncompressed Size     00000000 (0)\n-6D0F40 Filename Length       0043 (67)\n-6D0F42 Extra Length          0009 (9)\n-6D0F44 Comment Length        0000 (0)\n-6D0F46 Disk Start            0000 (0)\n-6D0F48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0F4A Ext File Attributes   00000000 (0)\n-6D0F4E Local Header Offset   00064B4C (412492)\n-6D0F52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0F52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D0F95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D0F97   Length              0005 (5)\n-6D0F99   Flags               01 (1) 'Modification'\n-6D0F9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D0F9E CENTRAL HEADER #205   02014B50 (33639248)\n-6D0FA2 Created Zip Spec      14 (20) '2.0'\n-6D0FA3 Created OS            00 (0) 'MS-DOS'\n-6D0FA4 Extract Zip Spec      14 (20) '2.0'\n-6D0FA5 Extract OS            00 (0) 'MS-DOS'\n-6D0FA6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D0FA8 Compression Method    0000 (0) 'Stored'\n-6D0FAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D0FAE CRC                   FACEEC94 (4207864980)\n-6D0FB2 Compressed Size       00000E69 (3689)\n-6D0FB6 Uncompressed Size     00000E69 (3689)\n-6D0FBA Filename Length       003C (60)\n-6D0FBC Extra Length          0009 (9)\n-6D0FBE Comment Length        0000 (0)\n-6D0FC0 Disk Start            0000 (0)\n-6D0FC2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D0FC4 Ext File Attributes   00000000 (0)\n-6D0FC8 Local Header Offset   00064BC6 (412614)\n-6D0FCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D0FCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1008 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D100A   Length              0005 (5)\n-6D100C   Flags               01 (1) 'Modification'\n-6D100D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1011 CENTRAL HEADER #206   02014B50 (33639248)\n-6D1015 Created Zip Spec      14 (20) '2.0'\n-6D1016 Created OS            00 (0) 'MS-DOS'\n-6D1017 Extract Zip Spec      14 (20) '2.0'\n-6D1018 Extract OS            00 (0) 'MS-DOS'\n-6D1019 General Purpose Flag  0000 (0)\n-6D101B Compression Method    0000 (0) 'Stored'\n-6D101D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1021 CRC                   00000000 (0)\n-6D1025 Compressed Size       00000000 (0)\n-6D1029 Uncompressed Size     00000000 (0)\n-6D102D Filename Length       0037 (55)\n-6D102F Extra Length          0009 (9)\n-6D1031 Comment Length        0000 (0)\n-6D1033 Disk Start            0000 (0)\n-6D1035 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1037 Ext File Attributes   00000000 (0)\n-6D103B Local Header Offset   00065AA2 (416418)\n-6D103F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D103F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1076 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1078   Length              0005 (5)\n-6D107A   Flags               01 (1) 'Modification'\n-6D107B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D107F CENTRAL HEADER #207   02014B50 (33639248)\n-6D1083 Created Zip Spec      14 (20) '2.0'\n-6D1084 Created OS            00 (0) 'MS-DOS'\n-6D1085 Extract Zip Spec      14 (20) '2.0'\n-6D1086 Extract OS            00 (0) 'MS-DOS'\n-6D1087 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1089 Compression Method    0000 (0) 'Stored'\n-6D108B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D108F CRC                   00000000 (0)\n-6D1093 Compressed Size       00000000 (0)\n-6D1097 Uncompressed Size     00000000 (0)\n-6D109B Filename Length       0045 (69)\n-6D109D Extra Length          0009 (9)\n-6D109F Comment Length        0000 (0)\n-6D10A1 Disk Start            0000 (0)\n-6D10A3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D10A5 Ext File Attributes   00000000 (0)\n-6D10A9 Local Header Offset   00065B00 (416512)\n-6D10AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D10AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D10F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D10F4   Length              0005 (5)\n-6D10F6   Flags               01 (1) 'Modification'\n-6D10F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D10FB CENTRAL HEADER #208   02014B50 (33639248)\n-6D10FF Created Zip Spec      14 (20) '2.0'\n-6D1100 Created OS            00 (0) 'MS-DOS'\n-6D1101 Extract Zip Spec      14 (20) '2.0'\n-6D1102 Extract OS            00 (0) 'MS-DOS'\n-6D1103 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1105 Compression Method    0000 (0) 'Stored'\n-6D1107 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D110B CRC                   13A927BF (329852863)\n-6D110F Compressed Size       0000084D (2125)\n-6D1113 Uncompressed Size     0000084D (2125)\n-6D1117 Filename Length       003E (62)\n-6D1119 Extra Length          0009 (9)\n-6D111B Comment Length        0000 (0)\n-6D111D Disk Start            0000 (0)\n-6D111F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1121 Ext File Attributes   00000000 (0)\n-6D1125 Local Header Offset   00065B7C (416636)\n-6D1129 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1129: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1167 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1169   Length              0005 (5)\n-6D116B   Flags               01 (1) 'Modification'\n-6D116C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1170 CENTRAL HEADER #209   02014B50 (33639248)\n-6D1174 Created Zip Spec      14 (20) '2.0'\n-6D1175 Created OS            00 (0) 'MS-DOS'\n-6D1176 Extract Zip Spec      14 (20) '2.0'\n-6D1177 Extract OS            00 (0) 'MS-DOS'\n-6D1178 General Purpose Flag  0000 (0)\n-6D117A Compression Method    0000 (0) 'Stored'\n-6D117C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1180 CRC                   00000000 (0)\n-6D1184 Compressed Size       00000000 (0)\n-6D1188 Uncompressed Size     00000000 (0)\n-6D118C Filename Length       0034 (52)\n-6D118E Extra Length          0009 (9)\n-6D1190 Comment Length        0000 (0)\n-6D1192 Disk Start            0000 (0)\n-6D1194 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1196 Ext File Attributes   00000000 (0)\n-6D119A Local Header Offset   0006643E (418878)\n-6D119E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D119E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D11D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D11D4   Length              0005 (5)\n-6D11D6   Flags               01 (1) 'Modification'\n-6D11D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D11DB CENTRAL HEADER #210   02014B50 (33639248)\n-6D11DF Created Zip Spec      14 (20) '2.0'\n-6D11E0 Created OS            00 (0) 'MS-DOS'\n-6D11E1 Extract Zip Spec      14 (20) '2.0'\n-6D11E2 Extract OS            00 (0) 'MS-DOS'\n-6D11E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D11E5 Compression Method    0000 (0) 'Stored'\n-6D11E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D11EB CRC                   00000000 (0)\n-6D11EF Compressed Size       00000000 (0)\n-6D11F3 Uncompressed Size     00000000 (0)\n-6D11F7 Filename Length       0042 (66)\n-6D11F9 Extra Length          0009 (9)\n-6D11FB Comment Length        0000 (0)\n-6D11FD Disk Start            0000 (0)\n-6D11FF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1201 Ext File Attributes   00000000 (0)\n-6D1205 Local Header Offset   00066499 (418969)\n-6D1209 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1209: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D124B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D124D   Length              0005 (5)\n-6D124F   Flags               01 (1) 'Modification'\n-6D1250   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1254 CENTRAL HEADER #211   02014B50 (33639248)\n-6D1258 Created Zip Spec      14 (20) '2.0'\n-6D1259 Created OS            00 (0) 'MS-DOS'\n-6D125A Extract Zip Spec      14 (20) '2.0'\n-6D125B Extract OS            00 (0) 'MS-DOS'\n-6D125C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D125E Compression Method    0000 (0) 'Stored'\n-6D1260 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1264 CRC                   43F8CC2B (1140378667)\n-6D1268 Compressed Size       00000ABA (2746)\n-6D126C Uncompressed Size     00000ABA (2746)\n-6D1270 Filename Length       003B (59)\n-6D1272 Extra Length          0009 (9)\n-6D1274 Comment Length        0000 (0)\n-6D1276 Disk Start            0000 (0)\n-6D1278 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D127A Ext File Attributes   00000000 (0)\n-6D127E Local Header Offset   00066512 (419090)\n-6D1282 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1282: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D12BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D12BF   Length              0005 (5)\n-6D12C1   Flags               01 (1) 'Modification'\n-6D12C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D12C6 CENTRAL HEADER #212   02014B50 (33639248)\n-6D12CA Created Zip Spec      14 (20) '2.0'\n-6D12CB Created OS            00 (0) 'MS-DOS'\n-6D12CC Extract Zip Spec      14 (20) '2.0'\n-6D12CD Extract OS            00 (0) 'MS-DOS'\n-6D12CE General Purpose Flag  0000 (0)\n-6D12D0 Compression Method    0000 (0) 'Stored'\n-6D12D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D12D6 CRC                   00000000 (0)\n-6D12DA Compressed Size       00000000 (0)\n-6D12DE Uncompressed Size     00000000 (0)\n-6D12E2 Filename Length       0034 (52)\n-6D12E4 Extra Length          0009 (9)\n-6D12E6 Comment Length        0000 (0)\n-6D12E8 Disk Start            0000 (0)\n-6D12EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D12EC Ext File Attributes   00000000 (0)\n-6D12F0 Local Header Offset   0006703E (421950)\n-6D12F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D12F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1328 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D132A   Length              0005 (5)\n-6D132C   Flags               01 (1) 'Modification'\n-6D132D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1331 CENTRAL HEADER #213   02014B50 (33639248)\n-6D1335 Created Zip Spec      14 (20) '2.0'\n-6D1336 Created OS            00 (0) 'MS-DOS'\n-6D1337 Extract Zip Spec      14 (20) '2.0'\n-6D1338 Extract OS            00 (0) 'MS-DOS'\n-6D1339 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D133B Compression Method    0000 (0) 'Stored'\n-6D133D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1341 CRC                   00000000 (0)\n-6D1345 Compressed Size       00000000 (0)\n-6D1349 Uncompressed Size     00000000 (0)\n-6D134D Filename Length       0042 (66)\n-6D134F Extra Length          0009 (9)\n-6D1351 Comment Length        0000 (0)\n-6D1353 Disk Start            0000 (0)\n-6D1355 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1357 Ext File Attributes   00000000 (0)\n-6D135B Local Header Offset   00067099 (422041)\n-6D135F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D135F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D13A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D13A3   Length              0005 (5)\n-6D13A5   Flags               01 (1) 'Modification'\n-6D13A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D13AA CENTRAL HEADER #214   02014B50 (33639248)\n-6D13AE Created Zip Spec      14 (20) '2.0'\n-6D13AF Created OS            00 (0) 'MS-DOS'\n-6D13B0 Extract Zip Spec      14 (20) '2.0'\n-6D13B1 Extract OS            00 (0) 'MS-DOS'\n-6D13B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D13B4 Compression Method    0000 (0) 'Stored'\n-6D13B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D13BA CRC                   00C3B148 (12824904)\n-6D13BE Compressed Size       0000098D (2445)\n-6D13C2 Uncompressed Size     0000098D (2445)\n-6D13C6 Filename Length       003B (59)\n-6D13C8 Extra Length          0009 (9)\n-6D13CA Comment Length        0000 (0)\n-6D13CC Disk Start            0000 (0)\n-6D13CE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D13D0 Ext File Attributes   00000000 (0)\n-6D13D4 Local Header Offset   00067112 (422162)\n-6D13D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D13D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1413 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1415   Length              0005 (5)\n-6D1417   Flags               01 (1) 'Modification'\n-6D1418   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D141C CENTRAL HEADER #215   02014B50 (33639248)\n-6D1420 Created Zip Spec      14 (20) '2.0'\n-6D1421 Created OS            00 (0) 'MS-DOS'\n-6D1422 Extract Zip Spec      14 (20) '2.0'\n-6D1423 Extract OS            00 (0) 'MS-DOS'\n-6D1424 General Purpose Flag  0000 (0)\n-6D1426 Compression Method    0000 (0) 'Stored'\n-6D1428 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D142C CRC                   00000000 (0)\n-6D1430 Compressed Size       00000000 (0)\n-6D1434 Uncompressed Size     00000000 (0)\n-6D1438 Filename Length       0035 (53)\n-6D143A Extra Length          0009 (9)\n-6D143C Comment Length        0000 (0)\n-6D143E Disk Start            0000 (0)\n-6D1440 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1442 Ext File Attributes   00000000 (0)\n-6D1446 Local Header Offset   00067B11 (424721)\n-6D144A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D144A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D147F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1481   Length              0005 (5)\n-6D1483   Flags               01 (1) 'Modification'\n-6D1484   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1488 CENTRAL HEADER #216   02014B50 (33639248)\n-6D148C Created Zip Spec      14 (20) '2.0'\n-6D148D Created OS            00 (0) 'MS-DOS'\n-6D148E Extract Zip Spec      14 (20) '2.0'\n-6D148F Extract OS            00 (0) 'MS-DOS'\n-6D1490 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1492 Compression Method    0000 (0) 'Stored'\n-6D1494 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1498 CRC                   00000000 (0)\n-6D149C Compressed Size       00000000 (0)\n-6D14A0 Uncompressed Size     00000000 (0)\n-6D14A4 Filename Length       0043 (67)\n-6D14A6 Extra Length          0009 (9)\n-6D14A8 Comment Length        0000 (0)\n-6D14AA Disk Start            0000 (0)\n-6D14AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D14AE Ext File Attributes   00000000 (0)\n-6D14B2 Local Header Offset   00067B6D (424813)\n-6D14B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D14B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D14F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D14FB   Length              0005 (5)\n-6D14FD   Flags               01 (1) 'Modification'\n-6D14FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1502 CENTRAL HEADER #217   02014B50 (33639248)\n-6D1506 Created Zip Spec      14 (20) '2.0'\n-6D1507 Created OS            00 (0) 'MS-DOS'\n-6D1508 Extract Zip Spec      14 (20) '2.0'\n-6D1509 Extract OS            00 (0) 'MS-DOS'\n-6D150A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D150C Compression Method    0000 (0) 'Stored'\n-6D150E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1512 CRC                   4EEF2300 (1324294912)\n-6D1516 Compressed Size       00000916 (2326)\n-6D151A Uncompressed Size     00000916 (2326)\n-6D151E Filename Length       003C (60)\n-6D1520 Extra Length          0009 (9)\n-6D1522 Comment Length        0000 (0)\n-6D1524 Disk Start            0000 (0)\n-6D1526 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1528 Ext File Attributes   00000000 (0)\n-6D152C Local Header Offset   00067BE7 (424935)\n-6D1530 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1530: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D156C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D156E   Length              0005 (5)\n-6D1570   Flags               01 (1) 'Modification'\n-6D1571   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1575 CENTRAL HEADER #218   02014B50 (33639248)\n-6D1579 Created Zip Spec      14 (20) '2.0'\n-6D157A Created OS            00 (0) 'MS-DOS'\n-6D157B Extract Zip Spec      14 (20) '2.0'\n-6D157C Extract OS            00 (0) 'MS-DOS'\n-6D157D General Purpose Flag  0000 (0)\n-6D157F Compression Method    0000 (0) 'Stored'\n-6D1581 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1585 CRC                   00000000 (0)\n-6D1589 Compressed Size       00000000 (0)\n-6D158D Uncompressed Size     00000000 (0)\n-6D1591 Filename Length       0036 (54)\n-6D1593 Extra Length          0009 (9)\n-6D1595 Comment Length        0000 (0)\n-6D1597 Disk Start            0000 (0)\n-6D1599 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D159B Ext File Attributes   00000000 (0)\n-6D159F Local Header Offset   00068570 (427376)\n-6D15A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D15A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D15D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D15DB   Length              0005 (5)\n-6D15DD   Flags               01 (1) 'Modification'\n-6D15DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D15E2 CENTRAL HEADER #219   02014B50 (33639248)\n-6D15E6 Created Zip Spec      14 (20) '2.0'\n-6D15E7 Created OS            00 (0) 'MS-DOS'\n-6D15E8 Extract Zip Spec      14 (20) '2.0'\n-6D15E9 Extract OS            00 (0) 'MS-DOS'\n-6D15EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D15EC Compression Method    0000 (0) 'Stored'\n-6D15EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D15F2 CRC                   00000000 (0)\n-6D15F6 Compressed Size       00000000 (0)\n-6D15FA Uncompressed Size     00000000 (0)\n-6D15FE Filename Length       0044 (68)\n-6D1600 Extra Length          0009 (9)\n-6D1602 Comment Length        0000 (0)\n-6D1604 Disk Start            0000 (0)\n-6D1606 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1608 Ext File Attributes   00000000 (0)\n-6D160C Local Header Offset   000685CD (427469)\n-6D1610 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1610: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1654 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1656   Length              0005 (5)\n-6D1658   Flags               01 (1) 'Modification'\n-6D1659   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D165D CENTRAL HEADER #220   02014B50 (33639248)\n-6D1661 Created Zip Spec      14 (20) '2.0'\n-6D1662 Created OS            00 (0) 'MS-DOS'\n-6D1663 Extract Zip Spec      14 (20) '2.0'\n-6D1664 Extract OS            00 (0) 'MS-DOS'\n-6D1665 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1667 Compression Method    0000 (0) 'Stored'\n-6D1669 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D166D CRC                   2E65EAC2 (778431170)\n-6D1671 Compressed Size       0000095F (2399)\n-6D1675 Uncompressed Size     0000095F (2399)\n-6D1679 Filename Length       003D (61)\n-6D167B Extra Length          0009 (9)\n-6D167D Comment Length        0000 (0)\n-6D167F Disk Start            0000 (0)\n-6D1681 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1683 Ext File Attributes   00000000 (0)\n-6D1687 Local Header Offset   00068648 (427592)\n-6D168B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D168B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D16C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D16CA   Length              0005 (5)\n-6D16CC   Flags               01 (1) 'Modification'\n-6D16CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D16D1 CENTRAL HEADER #221   02014B50 (33639248)\n-6D16D5 Created Zip Spec      14 (20) '2.0'\n-6D16D6 Created OS            00 (0) 'MS-DOS'\n-6D16D7 Extract Zip Spec      14 (20) '2.0'\n-6D16D8 Extract OS            00 (0) 'MS-DOS'\n-6D16D9 General Purpose Flag  0000 (0)\n-6D16DB Compression Method    0000 (0) 'Stored'\n-6D16DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D16E1 CRC                   00000000 (0)\n-6D16E5 Compressed Size       00000000 (0)\n-6D16E9 Uncompressed Size     00000000 (0)\n-6D16ED Filename Length       0033 (51)\n-6D16EF Extra Length          0009 (9)\n-6D16F1 Comment Length        0000 (0)\n-6D16F3 Disk Start            0000 (0)\n-6D16F5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D16F7 Ext File Attributes   00000000 (0)\n-6D16FB Local Header Offset   0006901B (430107)\n-6D16FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D16FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1732 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1734   Length              0005 (5)\n-6D1736   Flags               01 (1) 'Modification'\n-6D1737   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D173B CENTRAL HEADER #222   02014B50 (33639248)\n-6D173F Created Zip Spec      14 (20) '2.0'\n-6D1740 Created OS            00 (0) 'MS-DOS'\n-6D1741 Extract Zip Spec      14 (20) '2.0'\n-6D1742 Extract OS            00 (0) 'MS-DOS'\n-6D1743 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1745 Compression Method    0000 (0) 'Stored'\n-6D1747 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D174B CRC                   00000000 (0)\n-6D174F Compressed Size       00000000 (0)\n-6D1753 Uncompressed Size     00000000 (0)\n-6D1757 Filename Length       0041 (65)\n-6D1759 Extra Length          0009 (9)\n-6D175B Comment Length        0000 (0)\n-6D175D Disk Start            0000 (0)\n-6D175F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1761 Ext File Attributes   00000000 (0)\n-6D1765 Local Header Offset   00069075 (430197)\n-6D1769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D17AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D17AC   Length              0005 (5)\n-6D17AE   Flags               01 (1) 'Modification'\n-6D17AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D17B3 CENTRAL HEADER #223   02014B50 (33639248)\n-6D17B7 Created Zip Spec      14 (20) '2.0'\n-6D17B8 Created OS            00 (0) 'MS-DOS'\n-6D17B9 Extract Zip Spec      14 (20) '2.0'\n-6D17BA Extract OS            00 (0) 'MS-DOS'\n-6D17BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D17BD Compression Method    0000 (0) 'Stored'\n-6D17BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D17C3 CRC                   E426F2EA (3827757802)\n-6D17C7 Compressed Size       00000898 (2200)\n-6D17CB Uncompressed Size     00000898 (2200)\n-6D17CF Filename Length       003A (58)\n-6D17D1 Extra Length          0009 (9)\n-6D17D3 Comment Length        0000 (0)\n-6D17D5 Disk Start            0000 (0)\n-6D17D7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D17D9 Ext File Attributes   00000000 (0)\n-6D17DD Local Header Offset   000690ED (430317)\n-6D17E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D17E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D181B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D181D   Length              0005 (5)\n-6D181F   Flags               01 (1) 'Modification'\n-6D1820   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1824 CENTRAL HEADER #224   02014B50 (33639248)\n-6D1828 Created Zip Spec      14 (20) '2.0'\n-6D1829 Created OS            00 (0) 'MS-DOS'\n-6D182A Extract Zip Spec      14 (20) '2.0'\n-6D182B Extract OS            00 (0) 'MS-DOS'\n-6D182C General Purpose Flag  0000 (0)\n-6D182E Compression Method    0000 (0) 'Stored'\n-6D1830 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1834 CRC                   00000000 (0)\n-6D1838 Compressed Size       00000000 (0)\n-6D183C Uncompressed Size     00000000 (0)\n-6D1840 Filename Length       0039 (57)\n-6D1842 Extra Length          0009 (9)\n-6D1844 Comment Length        0000 (0)\n-6D1846 Disk Start            0000 (0)\n-6D1848 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D184A Ext File Attributes   00000000 (0)\n-6D184E Local Header Offset   000699F6 (432630)\n-6D1852 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1852: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D188B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D188D   Length              0005 (5)\n-6D188F   Flags               01 (1) 'Modification'\n-6D1890   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1894 CENTRAL HEADER #225   02014B50 (33639248)\n-6D1898 Created Zip Spec      14 (20) '2.0'\n-6D1899 Created OS            00 (0) 'MS-DOS'\n-6D189A Extract Zip Spec      14 (20) '2.0'\n-6D189B Extract OS            00 (0) 'MS-DOS'\n-6D189C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D189E Compression Method    0000 (0) 'Stored'\n-6D18A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D18A4 CRC                   00000000 (0)\n-6D18A8 Compressed Size       00000000 (0)\n-6D18AC Uncompressed Size     00000000 (0)\n-6D18B0 Filename Length       0047 (71)\n-6D18B2 Extra Length          0009 (9)\n-6D18B4 Comment Length        0000 (0)\n-6D18B6 Disk Start            0000 (0)\n-6D18B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D18BA Ext File Attributes   00000000 (0)\n-6D18BE Local Header Offset   00069A56 (432726)\n-6D18C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D18C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1909 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D190B   Length              0005 (5)\n-6D190D   Flags               01 (1) 'Modification'\n-6D190E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1912 CENTRAL HEADER #226   02014B50 (33639248)\n-6D1916 Created Zip Spec      14 (20) '2.0'\n-6D1917 Created OS            00 (0) 'MS-DOS'\n-6D1918 Extract Zip Spec      14 (20) '2.0'\n-6D1919 Extract OS            00 (0) 'MS-DOS'\n-6D191A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D191C Compression Method    0000 (0) 'Stored'\n-6D191E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1922 CRC                   7BEDD7A7 (2079184807)\n-6D1926 Compressed Size       00000A18 (2584)\n-6D192A Uncompressed Size     00000A18 (2584)\n-6D192E Filename Length       0040 (64)\n-6D1930 Extra Length          0009 (9)\n-6D1932 Comment Length        0000 (0)\n-6D1934 Disk Start            0000 (0)\n-6D1936 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1938 Ext File Attributes   00000000 (0)\n-6D193C Local Header Offset   00069AD4 (432852)\n-6D1940 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1940: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1980 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1982   Length              0005 (5)\n-6D1984   Flags               01 (1) 'Modification'\n-6D1985   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1989 CENTRAL HEADER #227   02014B50 (33639248)\n-6D198D Created Zip Spec      14 (20) '2.0'\n-6D198E Created OS            00 (0) 'MS-DOS'\n-6D198F Extract Zip Spec      14 (20) '2.0'\n-6D1990 Extract OS            00 (0) 'MS-DOS'\n-6D1991 General Purpose Flag  0000 (0)\n-6D1993 Compression Method    0000 (0) 'Stored'\n-6D1995 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1999 CRC                   00000000 (0)\n-6D199D Compressed Size       00000000 (0)\n-6D19A1 Uncompressed Size     00000000 (0)\n-6D19A5 Filename Length       002E (46)\n-6D19A7 Extra Length          0009 (9)\n-6D19A9 Comment Length        0000 (0)\n-6D19AB Disk Start            0000 (0)\n-6D19AD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D19AF Ext File Attributes   00000000 (0)\n-6D19B3 Local Header Offset   0006A563 (435555)\n-6D19B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D19B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D19E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D19E7   Length              0005 (5)\n-6D19E9   Flags               01 (1) 'Modification'\n-6D19EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D19EE CENTRAL HEADER #228   02014B50 (33639248)\n-6D19F2 Created Zip Spec      14 (20) '2.0'\n-6D19F3 Created OS            00 (0) 'MS-DOS'\n-6D19F4 Extract Zip Spec      14 (20) '2.0'\n-6D19F5 Extract OS            00 (0) 'MS-DOS'\n-6D19F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D19F8 Compression Method    0000 (0) 'Stored'\n-6D19FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D19FE CRC                   00000000 (0)\n-6D1A02 Compressed Size       00000000 (0)\n-6D1A06 Uncompressed Size     00000000 (0)\n-6D1A0A Filename Length       003C (60)\n-6D1A0C Extra Length          0009 (9)\n-6D1A0E Comment Length        0000 (0)\n-6D1A10 Disk Start            0000 (0)\n-6D1A12 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1A14 Ext File Attributes   00000000 (0)\n-6D1A18 Local Header Offset   0006A5B8 (435640)\n-6D1A1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1A1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1A58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1A5A   Length              0005 (5)\n-6D1A5C   Flags               01 (1) 'Modification'\n-6D1A5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1A61 CENTRAL HEADER #229   02014B50 (33639248)\n-6D1A65 Created Zip Spec      14 (20) '2.0'\n-6D1A66 Created OS            00 (0) 'MS-DOS'\n-6D1A67 Extract Zip Spec      14 (20) '2.0'\n-6D1A68 Extract OS            00 (0) 'MS-DOS'\n-6D1A69 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1A6B Compression Method    0000 (0) 'Stored'\n-6D1A6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1A71 CRC                   0FC7AABB (264743611)\n-6D1A75 Compressed Size       000009B0 (2480)\n-6D1A79 Uncompressed Size     000009B0 (2480)\n-6D1A7D Filename Length       0035 (53)\n-6D1A7F Extra Length          0009 (9)\n-6D1A81 Comment Length        0000 (0)\n-6D1A83 Disk Start            0000 (0)\n-6D1A85 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1A87 Ext File Attributes   00000000 (0)\n-6D1A8B Local Header Offset   0006A62B (435755)\n-6D1A8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1A8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1AC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1AC6   Length              0005 (5)\n-6D1AC8   Flags               01 (1) 'Modification'\n-6D1AC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1ACD CENTRAL HEADER #230   02014B50 (33639248)\n-6D1AD1 Created Zip Spec      14 (20) '2.0'\n-6D1AD2 Created OS            00 (0) 'MS-DOS'\n-6D1AD3 Extract Zip Spec      14 (20) '2.0'\n-6D1AD4 Extract OS            00 (0) 'MS-DOS'\n-6D1AD5 General Purpose Flag  0000 (0)\n-6D1AD7 Compression Method    0000 (0) 'Stored'\n-6D1AD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1ADD CRC                   00000000 (0)\n-6D1AE1 Compressed Size       00000000 (0)\n-6D1AE5 Uncompressed Size     00000000 (0)\n-6D1AE9 Filename Length       0030 (48)\n-6D1AEB Extra Length          0009 (9)\n-6D1AED Comment Length        0000 (0)\n-6D1AEF Disk Start            0000 (0)\n-6D1AF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1AF3 Ext File Attributes   00000000 (0)\n-6D1AF7 Local Header Offset   0006B047 (438343)\n-6D1AFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1AFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1B2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1B2D   Length              0005 (5)\n-6D1B2F   Flags               01 (1) 'Modification'\n-6D1B30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1B34 CENTRAL HEADER #231   02014B50 (33639248)\n-6D1B38 Created Zip Spec      14 (20) '2.0'\n-6D1B39 Created OS            00 (0) 'MS-DOS'\n-6D1B3A Extract Zip Spec      14 (20) '2.0'\n-6D1B3B Extract OS            00 (0) 'MS-DOS'\n-6D1B3C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1B3E Compression Method    0000 (0) 'Stored'\n-6D1B40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1B44 CRC                   00000000 (0)\n-6D1B48 Compressed Size       00000000 (0)\n-6D1B4C Uncompressed Size     00000000 (0)\n-6D1B50 Filename Length       003E (62)\n-6D1B52 Extra Length          0009 (9)\n-6D1B54 Comment Length        0000 (0)\n-6D1B56 Disk Start            0000 (0)\n-6D1B58 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1B5A Ext File Attributes   00000000 (0)\n-6D1B5E Local Header Offset   0006B09E (438430)\n-6D1B62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1B62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1BA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1BA2   Length              0005 (5)\n-6D1BA4   Flags               01 (1) 'Modification'\n-6D1BA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1BA9 CENTRAL HEADER #232   02014B50 (33639248)\n-6D1BAD Created Zip Spec      14 (20) '2.0'\n-6D1BAE Created OS            00 (0) 'MS-DOS'\n-6D1BAF Extract Zip Spec      14 (20) '2.0'\n-6D1BB0 Extract OS            00 (0) 'MS-DOS'\n-6D1BB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1BB3 Compression Method    0000 (0) 'Stored'\n-6D1BB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1BB9 CRC                   45DB5347 (1172001607)\n-6D1BBD Compressed Size       00000FBC (4028)\n-6D1BC1 Uncompressed Size     00000FBC (4028)\n-6D1BC5 Filename Length       0037 (55)\n-6D1BC7 Extra Length          0009 (9)\n-6D1BC9 Comment Length        0000 (0)\n-6D1BCB Disk Start            0000 (0)\n-6D1BCD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1BCF Ext File Attributes   00000000 (0)\n-6D1BD3 Local Header Offset   0006B113 (438547)\n-6D1BD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1BD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1C0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1C10   Length              0005 (5)\n-6D1C12   Flags               01 (1) 'Modification'\n-6D1C13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1C17 CENTRAL HEADER #233   02014B50 (33639248)\n-6D1C1B Created Zip Spec      14 (20) '2.0'\n-6D1C1C Created OS            00 (0) 'MS-DOS'\n-6D1C1D Extract Zip Spec      14 (20) '2.0'\n-6D1C1E Extract OS            00 (0) 'MS-DOS'\n-6D1C1F General Purpose Flag  0000 (0)\n-6D1C21 Compression Method    0000 (0) 'Stored'\n-6D1C23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1C27 CRC                   00000000 (0)\n-6D1C2B Compressed Size       00000000 (0)\n-6D1C2F Uncompressed Size     00000000 (0)\n-6D1C33 Filename Length       002F (47)\n-6D1C35 Extra Length          0009 (9)\n-6D1C37 Comment Length        0000 (0)\n-6D1C39 Disk Start            0000 (0)\n-6D1C3B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1C3D Ext File Attributes   00000000 (0)\n-6D1C41 Local Header Offset   0006C13D (442685)\n-6D1C45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1C45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1C74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1C76   Length              0005 (5)\n-6D1C78   Flags               01 (1) 'Modification'\n-6D1C79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1C7D CENTRAL HEADER #234   02014B50 (33639248)\n-6D1C81 Created Zip Spec      14 (20) '2.0'\n-6D1C82 Created OS            00 (0) 'MS-DOS'\n-6D1C83 Extract Zip Spec      14 (20) '2.0'\n-6D1C84 Extract OS            00 (0) 'MS-DOS'\n-6D1C85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1C87 Compression Method    0000 (0) 'Stored'\n-6D1C89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1C8D CRC                   00000000 (0)\n-6D1C91 Compressed Size       00000000 (0)\n-6D1C95 Uncompressed Size     00000000 (0)\n-6D1C99 Filename Length       003D (61)\n-6D1C9B Extra Length          0009 (9)\n-6D1C9D Comment Length        0000 (0)\n-6D1C9F Disk Start            0000 (0)\n-6D1CA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1CA3 Ext File Attributes   00000000 (0)\n-6D1CA7 Local Header Offset   0006C193 (442771)\n-6D1CAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1CAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1CE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1CEA   Length              0005 (5)\n-6D1CEC   Flags               01 (1) 'Modification'\n-6D1CED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1CF1 CENTRAL HEADER #235   02014B50 (33639248)\n-6D1CF5 Created Zip Spec      14 (20) '2.0'\n-6D1CF6 Created OS            00 (0) 'MS-DOS'\n-6D1CF7 Extract Zip Spec      14 (20) '2.0'\n-6D1CF8 Extract OS            00 (0) 'MS-DOS'\n-6D1CF9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1CFB Compression Method    0000 (0) 'Stored'\n-6D1CFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1D01 CRC                   6EE94123 (1860780323)\n-6D1D05 Compressed Size       00000AC3 (2755)\n-6D1D09 Uncompressed Size     00000AC3 (2755)\n-6D1D0D Filename Length       0036 (54)\n-6D1D0F Extra Length          0009 (9)\n-6D1D11 Comment Length        0000 (0)\n-6D1D13 Disk Start            0000 (0)\n-6D1D15 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1D17 Ext File Attributes   00000000 (0)\n-6D1D1B Local Header Offset   0006C207 (442887)\n-6D1D1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1D1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1D55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1D57   Length              0005 (5)\n-6D1D59   Flags               01 (1) 'Modification'\n-6D1D5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1D5E CENTRAL HEADER #236   02014B50 (33639248)\n-6D1D62 Created Zip Spec      14 (20) '2.0'\n-6D1D63 Created OS            00 (0) 'MS-DOS'\n-6D1D64 Extract Zip Spec      14 (20) '2.0'\n-6D1D65 Extract OS            00 (0) 'MS-DOS'\n-6D1D66 General Purpose Flag  0000 (0)\n-6D1D68 Compression Method    0000 (0) 'Stored'\n-6D1D6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1D6E CRC                   00000000 (0)\n-6D1D72 Compressed Size       00000000 (0)\n-6D1D76 Uncompressed Size     00000000 (0)\n-6D1D7A Filename Length       0032 (50)\n-6D1D7C Extra Length          0009 (9)\n-6D1D7E Comment Length        0000 (0)\n-6D1D80 Disk Start            0000 (0)\n-6D1D82 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1D84 Ext File Attributes   00000000 (0)\n-6D1D88 Local Header Offset   0006CD37 (445751)\n-6D1D8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1D8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1DC0   Length              0005 (5)\n-6D1DC2   Flags               01 (1) 'Modification'\n-6D1DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1DC7 CENTRAL HEADER #237   02014B50 (33639248)\n-6D1DCB Created Zip Spec      14 (20) '2.0'\n-6D1DCC Created OS            00 (0) 'MS-DOS'\n-6D1DCD Extract Zip Spec      14 (20) '2.0'\n-6D1DCE Extract OS            00 (0) 'MS-DOS'\n-6D1DCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1DD1 Compression Method    0000 (0) 'Stored'\n-6D1DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1DD7 CRC                   00000000 (0)\n-6D1DDB Compressed Size       00000000 (0)\n-6D1DDF Uncompressed Size     00000000 (0)\n-6D1DE3 Filename Length       0040 (64)\n-6D1DE5 Extra Length          0009 (9)\n-6D1DE7 Comment Length        0000 (0)\n-6D1DE9 Disk Start            0000 (0)\n-6D1DEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1DED Ext File Attributes   00000000 (0)\n-6D1DF1 Local Header Offset   0006CD90 (445840)\n-6D1DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1E35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1E37   Length              0005 (5)\n-6D1E39   Flags               01 (1) 'Modification'\n-6D1E3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1E3E CENTRAL HEADER #238   02014B50 (33639248)\n-6D1E42 Created Zip Spec      14 (20) '2.0'\n-6D1E43 Created OS            00 (0) 'MS-DOS'\n-6D1E44 Extract Zip Spec      14 (20) '2.0'\n-6D1E45 Extract OS            00 (0) 'MS-DOS'\n-6D1E46 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1E48 Compression Method    0000 (0) 'Stored'\n-6D1E4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1E4E CRC                   BDCAAB86 (3184176006)\n-6D1E52 Compressed Size       00000AD6 (2774)\n-6D1E56 Uncompressed Size     00000AD6 (2774)\n-6D1E5A Filename Length       0039 (57)\n-6D1E5C Extra Length          0009 (9)\n-6D1E5E Comment Length        0000 (0)\n-6D1E60 Disk Start            0000 (0)\n-6D1E62 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1E64 Ext File Attributes   00000000 (0)\n-6D1E68 Local Header Offset   0006CE07 (445959)\n-6D1E6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1E6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1EA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1EA7   Length              0005 (5)\n-6D1EA9   Flags               01 (1) 'Modification'\n-6D1EAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1EAE CENTRAL HEADER #239   02014B50 (33639248)\n-6D1EB2 Created Zip Spec      14 (20) '2.0'\n-6D1EB3 Created OS            00 (0) 'MS-DOS'\n-6D1EB4 Extract Zip Spec      14 (20) '2.0'\n-6D1EB5 Extract OS            00 (0) 'MS-DOS'\n-6D1EB6 General Purpose Flag  0000 (0)\n-6D1EB8 Compression Method    0000 (0) 'Stored'\n-6D1EBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1EBE CRC                   00000000 (0)\n-6D1EC2 Compressed Size       00000000 (0)\n-6D1EC6 Uncompressed Size     00000000 (0)\n-6D1ECA Filename Length       002F (47)\n-6D1ECC Extra Length          0009 (9)\n-6D1ECE Comment Length        0000 (0)\n-6D1ED0 Disk Start            0000 (0)\n-6D1ED2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1ED4 Ext File Attributes   00000000 (0)\n-6D1ED8 Local Header Offset   0006D94D (448845)\n-6D1EDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1EDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1F0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1F0D   Length              0005 (5)\n-6D1F0F   Flags               01 (1) 'Modification'\n-6D1F10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1F14 CENTRAL HEADER #240   02014B50 (33639248)\n-6D1F18 Created Zip Spec      14 (20) '2.0'\n-6D1F19 Created OS            00 (0) 'MS-DOS'\n-6D1F1A Extract Zip Spec      14 (20) '2.0'\n-6D1F1B Extract OS            00 (0) 'MS-DOS'\n-6D1F1C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1F1E Compression Method    0000 (0) 'Stored'\n-6D1F20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1F24 CRC                   00000000 (0)\n-6D1F28 Compressed Size       00000000 (0)\n-6D1F2C Uncompressed Size     00000000 (0)\n-6D1F30 Filename Length       003D (61)\n-6D1F32 Extra Length          0009 (9)\n-6D1F34 Comment Length        0000 (0)\n-6D1F36 Disk Start            0000 (0)\n-6D1F38 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1F3A Ext File Attributes   00000000 (0)\n-6D1F3E Local Header Offset   0006D9A3 (448931)\n-6D1F42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1F42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1F7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1F81   Length              0005 (5)\n-6D1F83   Flags               01 (1) 'Modification'\n-6D1F84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1F88 CENTRAL HEADER #241   02014B50 (33639248)\n-6D1F8C Created Zip Spec      14 (20) '2.0'\n-6D1F8D Created OS            00 (0) 'MS-DOS'\n-6D1F8E Extract Zip Spec      14 (20) '2.0'\n-6D1F8F Extract OS            00 (0) 'MS-DOS'\n-6D1F90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D1F92 Compression Method    0000 (0) 'Stored'\n-6D1F94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D1F98 CRC                   0B401095 (188747925)\n-6D1F9C Compressed Size       000009C8 (2504)\n-6D1FA0 Uncompressed Size     000009C8 (2504)\n-6D1FA4 Filename Length       0036 (54)\n-6D1FA6 Extra Length          0009 (9)\n-6D1FA8 Comment Length        0000 (0)\n-6D1FAA Disk Start            0000 (0)\n-6D1FAC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D1FAE Ext File Attributes   00000000 (0)\n-6D1FB2 Local Header Offset   0006DA17 (449047)\n-6D1FB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D1FB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D1FEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D1FEE   Length              0005 (5)\n-6D1FF0   Flags               01 (1) 'Modification'\n-6D1FF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D1FF5 CENTRAL HEADER #242   02014B50 (33639248)\n-6D1FF9 Created Zip Spec      14 (20) '2.0'\n-6D1FFA Created OS            00 (0) 'MS-DOS'\n-6D1FFB Extract Zip Spec      14 (20) '2.0'\n-6D1FFC Extract OS            00 (0) 'MS-DOS'\n-6D1FFD General Purpose Flag  0000 (0)\n-6D1FFF Compression Method    0000 (0) 'Stored'\n-6D2001 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2005 CRC                   00000000 (0)\n-6D2009 Compressed Size       00000000 (0)\n-6D200D Uncompressed Size     00000000 (0)\n-6D2011 Filename Length       0030 (48)\n-6D2013 Extra Length          0009 (9)\n-6D2015 Comment Length        0000 (0)\n-6D2017 Disk Start            0000 (0)\n-6D2019 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D201B Ext File Attributes   00000000 (0)\n-6D201F Local Header Offset   0006E44C (451660)\n-6D2023 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2023: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2053 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2055   Length              0005 (5)\n-6D2057   Flags               01 (1) 'Modification'\n-6D2058   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D205C CENTRAL HEADER #243   02014B50 (33639248)\n-6D2060 Created Zip Spec      14 (20) '2.0'\n-6D2061 Created OS            00 (0) 'MS-DOS'\n-6D2062 Extract Zip Spec      14 (20) '2.0'\n-6D2063 Extract OS            00 (0) 'MS-DOS'\n-6D2064 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2066 Compression Method    0000 (0) 'Stored'\n-6D2068 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D206C CRC                   00000000 (0)\n-6D2070 Compressed Size       00000000 (0)\n-6D2074 Uncompressed Size     00000000 (0)\n-6D2078 Filename Length       003E (62)\n-6D207A Extra Length          0009 (9)\n-6D207C Comment Length        0000 (0)\n-6D207E Disk Start            0000 (0)\n-6D2080 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2082 Ext File Attributes   00000000 (0)\n-6D2086 Local Header Offset   0006E4A3 (451747)\n-6D208A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D208A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D20C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D20CA   Length              0005 (5)\n-6D20CC   Flags               01 (1) 'Modification'\n-6D20CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D20D1 CENTRAL HEADER #244   02014B50 (33639248)\n-6D20D5 Created Zip Spec      14 (20) '2.0'\n-6D20D6 Created OS            00 (0) 'MS-DOS'\n-6D20D7 Extract Zip Spec      14 (20) '2.0'\n-6D20D8 Extract OS            00 (0) 'MS-DOS'\n-6D20D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D20DB Compression Method    0000 (0) 'Stored'\n-6D20DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D20E1 CRC                   59E5C05D (1508229213)\n-6D20E5 Compressed Size       000007B3 (1971)\n-6D20E9 Uncompressed Size     000007B3 (1971)\n-6D20ED Filename Length       0037 (55)\n-6D20EF Extra Length          0009 (9)\n-6D20F1 Comment Length        0000 (0)\n-6D20F3 Disk Start            0000 (0)\n-6D20F5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D20F7 Ext File Attributes   00000000 (0)\n-6D20FB Local Header Offset   0006E518 (451864)\n-6D20FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D20FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2138   Length              0005 (5)\n-6D213A   Flags               01 (1) 'Modification'\n-6D213B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D213F CENTRAL HEADER #245   02014B50 (33639248)\n-6D2143 Created Zip Spec      14 (20) '2.0'\n-6D2144 Created OS            00 (0) 'MS-DOS'\n-6D2145 Extract Zip Spec      14 (20) '2.0'\n-6D2146 Extract OS            00 (0) 'MS-DOS'\n-6D2147 General Purpose Flag  0000 (0)\n-6D2149 Compression Method    0000 (0) 'Stored'\n-6D214B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D214F CRC                   00000000 (0)\n-6D2153 Compressed Size       00000000 (0)\n-6D2157 Uncompressed Size     00000000 (0)\n-6D215B Filename Length       0034 (52)\n-6D215D Extra Length          0009 (9)\n-6D215F Comment Length        0000 (0)\n-6D2161 Disk Start            0000 (0)\n-6D2163 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2165 Ext File Attributes   00000000 (0)\n-6D2169 Local Header Offset   0006ED39 (453945)\n-6D216D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D216D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D21A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D21A3   Length              0005 (5)\n-6D21A5   Flags               01 (1) 'Modification'\n-6D21A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D21AA CENTRAL HEADER #246   02014B50 (33639248)\n-6D21AE Created Zip Spec      14 (20) '2.0'\n-6D21AF Created OS            00 (0) 'MS-DOS'\n-6D21B0 Extract Zip Spec      14 (20) '2.0'\n-6D21B1 Extract OS            00 (0) 'MS-DOS'\n-6D21B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D21B4 Compression Method    0000 (0) 'Stored'\n-6D21B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D21BA CRC                   00000000 (0)\n-6D21BE Compressed Size       00000000 (0)\n-6D21C2 Uncompressed Size     00000000 (0)\n-6D21C6 Filename Length       0042 (66)\n-6D21C8 Extra Length          0009 (9)\n-6D21CA Comment Length        0000 (0)\n-6D21CC Disk Start            0000 (0)\n-6D21CE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D21D0 Ext File Attributes   00000000 (0)\n-6D21D4 Local Header Offset   0006ED94 (454036)\n-6D21D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D21D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D221A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D221C   Length              0005 (5)\n-6D221E   Flags               01 (1) 'Modification'\n-6D221F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2223 CENTRAL HEADER #247   02014B50 (33639248)\n-6D2227 Created Zip Spec      14 (20) '2.0'\n-6D2228 Created OS            00 (0) 'MS-DOS'\n-6D2229 Extract Zip Spec      14 (20) '2.0'\n-6D222A Extract OS            00 (0) 'MS-DOS'\n-6D222B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D222D Compression Method    0000 (0) 'Stored'\n-6D222F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2233 CRC                   D9872A58 (3649514072)\n-6D2237 Compressed Size       0000083F (2111)\n-6D223B Uncompressed Size     0000083F (2111)\n-6D223F Filename Length       003B (59)\n-6D2241 Extra Length          0009 (9)\n-6D2243 Comment Length        0000 (0)\n-6D2245 Disk Start            0000 (0)\n-6D2247 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2249 Ext File Attributes   00000000 (0)\n-6D224D Local Header Offset   0006EE0D (454157)\n-6D2251 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2251: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D228C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D228E   Length              0005 (5)\n-6D2290   Flags               01 (1) 'Modification'\n-6D2291   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2295 CENTRAL HEADER #248   02014B50 (33639248)\n-6D2299 Created Zip Spec      14 (20) '2.0'\n-6D229A Created OS            00 (0) 'MS-DOS'\n-6D229B Extract Zip Spec      14 (20) '2.0'\n-6D229C Extract OS            00 (0) 'MS-DOS'\n-6D229D General Purpose Flag  0000 (0)\n-6D229F Compression Method    0000 (0) 'Stored'\n-6D22A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D22A5 CRC                   00000000 (0)\n-6D22A9 Compressed Size       00000000 (0)\n-6D22AD Uncompressed Size     00000000 (0)\n-6D22B1 Filename Length       0038 (56)\n-6D22B3 Extra Length          0009 (9)\n-6D22B5 Comment Length        0000 (0)\n-6D22B7 Disk Start            0000 (0)\n-6D22B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D22BB Ext File Attributes   00000000 (0)\n-6D22BF Local Header Offset   0006F6BE (456382)\n-6D22C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D22C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D22FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D22FD   Length              0005 (5)\n-6D22FF   Flags               01 (1) 'Modification'\n-6D2300   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2304 CENTRAL HEADER #249   02014B50 (33639248)\n-6D2308 Created Zip Spec      14 (20) '2.0'\n-6D2309 Created OS            00 (0) 'MS-DOS'\n-6D230A Extract Zip Spec      14 (20) '2.0'\n-6D230B Extract OS            00 (0) 'MS-DOS'\n-6D230C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D230E Compression Method    0000 (0) 'Stored'\n-6D2310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2314 CRC                   00000000 (0)\n-6D2318 Compressed Size       00000000 (0)\n-6D231C Uncompressed Size     00000000 (0)\n-6D2320 Filename Length       0046 (70)\n-6D2322 Extra Length          0009 (9)\n-6D2324 Comment Length        0000 (0)\n-6D2326 Disk Start            0000 (0)\n-6D2328 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D232A Ext File Attributes   00000000 (0)\n-6D232E Local Header Offset   0006F71D (456477)\n-6D2332 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2332: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2378 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D237A   Length              0005 (5)\n-6D237C   Flags               01 (1) 'Modification'\n-6D237D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2381 CENTRAL HEADER #250   02014B50 (33639248)\n-6D2385 Created Zip Spec      14 (20) '2.0'\n-6D2386 Created OS            00 (0) 'MS-DOS'\n-6D2387 Extract Zip Spec      14 (20) '2.0'\n-6D2388 Extract OS            00 (0) 'MS-DOS'\n-6D2389 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D238B Compression Method    0000 (0) 'Stored'\n-6D238D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2391 CRC                   79CD4FCD (2043498445)\n-6D2395 Compressed Size       00000900 (2304)\n-6D2399 Uncompressed Size     00000900 (2304)\n-6D239D Filename Length       003F (63)\n-6D239F Extra Length          0009 (9)\n-6D23A1 Comment Length        0000 (0)\n-6D23A3 Disk Start            0000 (0)\n-6D23A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D23A7 Ext File Attributes   00000000 (0)\n-6D23AB Local Header Offset   0006F79A (456602)\n-6D23AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D23AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D23EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D23F0   Length              0005 (5)\n-6D23F2   Flags               01 (1) 'Modification'\n-6D23F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D23F7 CENTRAL HEADER #251   02014B50 (33639248)\n-6D23FB Created Zip Spec      14 (20) '2.0'\n-6D23FC Created OS            00 (0) 'MS-DOS'\n-6D23FD Extract Zip Spec      14 (20) '2.0'\n-6D23FE Extract OS            00 (0) 'MS-DOS'\n-6D23FF General Purpose Flag  0000 (0)\n-6D2401 Compression Method    0000 (0) 'Stored'\n-6D2403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2407 CRC                   00000000 (0)\n-6D240B Compressed Size       00000000 (0)\n-6D240F Uncompressed Size     00000000 (0)\n-6D2413 Filename Length       0030 (48)\n-6D2415 Extra Length          0009 (9)\n-6D2417 Comment Length        0000 (0)\n-6D2419 Disk Start            0000 (0)\n-6D241B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D241D Ext File Attributes   00000000 (0)\n-6D2421 Local Header Offset   00070110 (459024)\n-6D2425 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2425: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2455 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2457   Length              0005 (5)\n-6D2459   Flags               01 (1) 'Modification'\n-6D245A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D245E CENTRAL HEADER #252   02014B50 (33639248)\n-6D2462 Created Zip Spec      14 (20) '2.0'\n-6D2463 Created OS            00 (0) 'MS-DOS'\n-6D2464 Extract Zip Spec      14 (20) '2.0'\n-6D2465 Extract OS            00 (0) 'MS-DOS'\n-6D2466 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2468 Compression Method    0000 (0) 'Stored'\n-6D246A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D246E CRC                   00000000 (0)\n-6D2472 Compressed Size       00000000 (0)\n-6D2476 Uncompressed Size     00000000 (0)\n-6D247A Filename Length       003E (62)\n-6D247C Extra Length          0009 (9)\n-6D247E Comment Length        0000 (0)\n-6D2480 Disk Start            0000 (0)\n-6D2482 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2484 Ext File Attributes   00000000 (0)\n-6D2488 Local Header Offset   00070167 (459111)\n-6D248C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D248C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D24CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D24CC   Length              0005 (5)\n-6D24CE   Flags               01 (1) 'Modification'\n-6D24CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D24D3 CENTRAL HEADER #253   02014B50 (33639248)\n-6D24D7 Created Zip Spec      14 (20) '2.0'\n-6D24D8 Created OS            00 (0) 'MS-DOS'\n-6D24D9 Extract Zip Spec      14 (20) '2.0'\n-6D24DA Extract OS            00 (0) 'MS-DOS'\n-6D24DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D24DD Compression Method    0000 (0) 'Stored'\n-6D24DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D24E3 CRC                   922534C7 (2451911879)\n-6D24E7 Compressed Size       00000A33 (2611)\n-6D24EB Uncompressed Size     00000A33 (2611)\n-6D24EF Filename Length       0037 (55)\n-6D24F1 Extra Length          0009 (9)\n-6D24F3 Comment Length        0000 (0)\n-6D24F5 Disk Start            0000 (0)\n-6D24F7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D24F9 Ext File Attributes   00000000 (0)\n-6D24FD Local Header Offset   000701DC (459228)\n-6D2501 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2501: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2538 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D253A   Length              0005 (5)\n-6D253C   Flags               01 (1) 'Modification'\n-6D253D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2541 CENTRAL HEADER #254   02014B50 (33639248)\n-6D2545 Created Zip Spec      14 (20) '2.0'\n-6D2546 Created OS            00 (0) 'MS-DOS'\n-6D2547 Extract Zip Spec      14 (20) '2.0'\n-6D2548 Extract OS            00 (0) 'MS-DOS'\n-6D2549 General Purpose Flag  0000 (0)\n-6D254B Compression Method    0000 (0) 'Stored'\n-6D254D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2551 CRC                   00000000 (0)\n-6D2555 Compressed Size       00000000 (0)\n-6D2559 Uncompressed Size     00000000 (0)\n-6D255D Filename Length       002F (47)\n-6D255F Extra Length          0009 (9)\n-6D2561 Comment Length        0000 (0)\n-6D2563 Disk Start            0000 (0)\n-6D2565 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2567 Ext File Attributes   00000000 (0)\n-6D256B Local Header Offset   00070C7D (461949)\n-6D256F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D256F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D259E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D25A0   Length              0005 (5)\n-6D25A2   Flags               01 (1) 'Modification'\n-6D25A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D25A7 CENTRAL HEADER #255   02014B50 (33639248)\n-6D25AB Created Zip Spec      14 (20) '2.0'\n-6D25AC Created OS            00 (0) 'MS-DOS'\n-6D25AD Extract Zip Spec      14 (20) '2.0'\n-6D25AE Extract OS            00 (0) 'MS-DOS'\n-6D25AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D25B1 Compression Method    0000 (0) 'Stored'\n-6D25B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D25B7 CRC                   00000000 (0)\n-6D25BB Compressed Size       00000000 (0)\n-6D25BF Uncompressed Size     00000000 (0)\n-6D25C3 Filename Length       003D (61)\n-6D25C5 Extra Length          0009 (9)\n-6D25C7 Comment Length        0000 (0)\n-6D25C9 Disk Start            0000 (0)\n-6D25CB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D25CD Ext File Attributes   00000000 (0)\n-6D25D1 Local Header Offset   00070CD3 (462035)\n-6D25D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D25D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2612 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2614   Length              0005 (5)\n-6D2616   Flags               01 (1) 'Modification'\n-6D2617   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D261B CENTRAL HEADER #256   02014B50 (33639248)\n-6D261F Created Zip Spec      14 (20) '2.0'\n-6D2620 Created OS            00 (0) 'MS-DOS'\n-6D2621 Extract Zip Spec      14 (20) '2.0'\n-6D2622 Extract OS            00 (0) 'MS-DOS'\n-6D2623 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2625 Compression Method    0000 (0) 'Stored'\n-6D2627 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D262B CRC                   B2FF8BF3 (3003091955)\n-6D262F Compressed Size       00000F9F (3999)\n-6D2633 Uncompressed Size     00000F9F (3999)\n-6D2637 Filename Length       0036 (54)\n-6D2639 Extra Length          0009 (9)\n-6D263B Comment Length        0000 (0)\n-6D263D Disk Start            0000 (0)\n-6D263F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2641 Ext File Attributes   00000000 (0)\n-6D2645 Local Header Offset   00070D47 (462151)\n-6D2649 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2649: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D267F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2681   Length              0005 (5)\n-6D2683   Flags               01 (1) 'Modification'\n-6D2684   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2688 CENTRAL HEADER #257   02014B50 (33639248)\n-6D268C Created Zip Spec      14 (20) '2.0'\n-6D268D Created OS            00 (0) 'MS-DOS'\n-6D268E Extract Zip Spec      14 (20) '2.0'\n-6D268F Extract OS            00 (0) 'MS-DOS'\n-6D2690 General Purpose Flag  0000 (0)\n-6D2692 Compression Method    0000 (0) 'Stored'\n-6D2694 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2698 CRC                   00000000 (0)\n-6D269C Compressed Size       00000000 (0)\n-6D26A0 Uncompressed Size     00000000 (0)\n-6D26A4 Filename Length       002E (46)\n-6D26A6 Extra Length          0009 (9)\n-6D26A8 Comment Length        0000 (0)\n-6D26AA Disk Start            0000 (0)\n-6D26AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D26AE Ext File Attributes   00000000 (0)\n-6D26B2 Local Header Offset   00071D53 (466259)\n-6D26B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D26B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D26E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D26E6   Length              0005 (5)\n-6D26E8   Flags               01 (1) 'Modification'\n-6D26E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D26ED CENTRAL HEADER #258   02014B50 (33639248)\n-6D26F1 Created Zip Spec      14 (20) '2.0'\n-6D26F2 Created OS            00 (0) 'MS-DOS'\n-6D26F3 Extract Zip Spec      14 (20) '2.0'\n-6D26F4 Extract OS            00 (0) 'MS-DOS'\n-6D26F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D26F7 Compression Method    0000 (0) 'Stored'\n-6D26F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D26FD CRC                   00000000 (0)\n-6D2701 Compressed Size       00000000 (0)\n-6D2705 Uncompressed Size     00000000 (0)\n-6D2709 Filename Length       003C (60)\n-6D270B Extra Length          0009 (9)\n-6D270D Comment Length        0000 (0)\n-6D270F Disk Start            0000 (0)\n-6D2711 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2713 Ext File Attributes   00000000 (0)\n-6D2717 Local Header Offset   00071DA8 (466344)\n-6D271B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D271B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2757 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2759   Length              0005 (5)\n-6D275B   Flags               01 (1) 'Modification'\n-6D275C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2760 CENTRAL HEADER #259   02014B50 (33639248)\n-6D2764 Created Zip Spec      14 (20) '2.0'\n-6D2765 Created OS            00 (0) 'MS-DOS'\n-6D2766 Extract Zip Spec      14 (20) '2.0'\n-6D2767 Extract OS            00 (0) 'MS-DOS'\n-6D2768 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D276A Compression Method    0000 (0) 'Stored'\n-6D276C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2770 CRC                   078EE984 (126806404)\n-6D2774 Compressed Size       00000831 (2097)\n-6D2778 Uncompressed Size     00000831 (2097)\n-6D277C Filename Length       0035 (53)\n-6D277E Extra Length          0009 (9)\n-6D2780 Comment Length        0000 (0)\n-6D2782 Disk Start            0000 (0)\n-6D2784 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2786 Ext File Attributes   00000000 (0)\n-6D278A Local Header Offset   00071E1B (466459)\n-6D278E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D278E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D27C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D27C5   Length              0005 (5)\n-6D27C7   Flags               01 (1) 'Modification'\n-6D27C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D27CC CENTRAL HEADER #260   02014B50 (33639248)\n-6D27D0 Created Zip Spec      14 (20) '2.0'\n-6D27D1 Created OS            00 (0) 'MS-DOS'\n-6D27D2 Extract Zip Spec      14 (20) '2.0'\n-6D27D3 Extract OS            00 (0) 'MS-DOS'\n-6D27D4 General Purpose Flag  0000 (0)\n-6D27D6 Compression Method    0000 (0) 'Stored'\n-6D27D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D27DC CRC                   00000000 (0)\n-6D27E0 Compressed Size       00000000 (0)\n-6D27E4 Uncompressed Size     00000000 (0)\n-6D27E8 Filename Length       0031 (49)\n-6D27EA Extra Length          0009 (9)\n-6D27EC Comment Length        0000 (0)\n-6D27EE Disk Start            0000 (0)\n-6D27F0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D27F2 Ext File Attributes   00000000 (0)\n-6D27F6 Local Header Offset   000726B8 (468664)\n-6D27FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D27FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D282B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D282D   Length              0005 (5)\n-6D282F   Flags               01 (1) 'Modification'\n-6D2830   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2834 CENTRAL HEADER #261   02014B50 (33639248)\n-6D2838 Created Zip Spec      14 (20) '2.0'\n-6D2839 Created OS            00 (0) 'MS-DOS'\n-6D283A Extract Zip Spec      14 (20) '2.0'\n-6D283B Extract OS            00 (0) 'MS-DOS'\n-6D283C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D283E Compression Method    0000 (0) 'Stored'\n-6D2840 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2844 CRC                   00000000 (0)\n-6D2848 Compressed Size       00000000 (0)\n-6D284C Uncompressed Size     00000000 (0)\n-6D2850 Filename Length       003F (63)\n-6D2852 Extra Length          0009 (9)\n-6D2854 Comment Length        0000 (0)\n-6D2856 Disk Start            0000 (0)\n-6D2858 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D285A Ext File Attributes   00000000 (0)\n-6D285E Local Header Offset   00072710 (468752)\n-6D2862 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2862: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D28A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D28A3   Length              0005 (5)\n-6D28A5   Flags               01 (1) 'Modification'\n-6D28A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D28AA CENTRAL HEADER #262   02014B50 (33639248)\n-6D28AE Created Zip Spec      14 (20) '2.0'\n-6D28AF Created OS            00 (0) 'MS-DOS'\n-6D28B0 Extract Zip Spec      14 (20) '2.0'\n-6D28B1 Extract OS            00 (0) 'MS-DOS'\n-6D28B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D28B4 Compression Method    0000 (0) 'Stored'\n-6D28B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D28BA CRC                   2B7AF38C (729478028)\n-6D28BE Compressed Size       00000C82 (3202)\n-6D28C2 Uncompressed Size     00000C82 (3202)\n-6D28C6 Filename Length       0038 (56)\n-6D28C8 Extra Length          0009 (9)\n-6D28CA Comment Length        0000 (0)\n-6D28CC Disk Start            0000 (0)\n-6D28CE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D28D0 Ext File Attributes   00000000 (0)\n-6D28D4 Local Header Offset   00072786 (468870)\n-6D28D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D28D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2912   Length              0005 (5)\n-6D2914   Flags               01 (1) 'Modification'\n-6D2915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2919 CENTRAL HEADER #263   02014B50 (33639248)\n-6D291D Created Zip Spec      14 (20) '2.0'\n-6D291E Created OS            00 (0) 'MS-DOS'\n-6D291F Extract Zip Spec      14 (20) '2.0'\n-6D2920 Extract OS            00 (0) 'MS-DOS'\n-6D2921 General Purpose Flag  0000 (0)\n-6D2923 Compression Method    0000 (0) 'Stored'\n-6D2925 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2929 CRC                   00000000 (0)\n-6D292D Compressed Size       00000000 (0)\n-6D2931 Uncompressed Size     00000000 (0)\n-6D2935 Filename Length       0035 (53)\n-6D2937 Extra Length          0009 (9)\n-6D2939 Comment Length        0000 (0)\n-6D293B Disk Start            0000 (0)\n-6D293D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D293F Ext File Attributes   00000000 (0)\n-6D2943 Local Header Offset   00073477 (472183)\n-6D2947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D297C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D297E   Length              0005 (5)\n-6D2980   Flags               01 (1) 'Modification'\n-6D2981   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2985 CENTRAL HEADER #264   02014B50 (33639248)\n-6D2989 Created Zip Spec      14 (20) '2.0'\n-6D298A Created OS            00 (0) 'MS-DOS'\n-6D298B Extract Zip Spec      14 (20) '2.0'\n-6D298C Extract OS            00 (0) 'MS-DOS'\n-6D298D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D298F Compression Method    0000 (0) 'Stored'\n-6D2991 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2995 CRC                   00000000 (0)\n-6D2999 Compressed Size       00000000 (0)\n-6D299D Uncompressed Size     00000000 (0)\n-6D29A1 Filename Length       0043 (67)\n-6D29A3 Extra Length          0009 (9)\n-6D29A5 Comment Length        0000 (0)\n-6D29A7 Disk Start            0000 (0)\n-6D29A9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D29AB Ext File Attributes   00000000 (0)\n-6D29AF Local Header Offset   000734D3 (472275)\n-6D29B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D29B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D29F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D29F8   Length              0005 (5)\n-6D29FA   Flags               01 (1) 'Modification'\n-6D29FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D29FF CENTRAL HEADER #265   02014B50 (33639248)\n-6D2A03 Created Zip Spec      14 (20) '2.0'\n-6D2A04 Created OS            00 (0) 'MS-DOS'\n-6D2A05 Extract Zip Spec      14 (20) '2.0'\n-6D2A06 Extract OS            00 (0) 'MS-DOS'\n-6D2A07 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2A09 Compression Method    0000 (0) 'Stored'\n-6D2A0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2A0F CRC                   7C2E72D4 (2083418836)\n-6D2A13 Compressed Size       00000C74 (3188)\n-6D2A17 Uncompressed Size     00000C74 (3188)\n-6D2A1B Filename Length       003C (60)\n-6D2A1D Extra Length          0009 (9)\n-6D2A1F Comment Length        0000 (0)\n-6D2A21 Disk Start            0000 (0)\n-6D2A23 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2A25 Ext File Attributes   00000000 (0)\n-6D2A29 Local Header Offset   0007354D (472397)\n-6D2A2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2A2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2A69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2A6B   Length              0005 (5)\n-6D2A6D   Flags               01 (1) 'Modification'\n-6D2A6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2A72 CENTRAL HEADER #266   02014B50 (33639248)\n-6D2A76 Created Zip Spec      14 (20) '2.0'\n-6D2A77 Created OS            00 (0) 'MS-DOS'\n-6D2A78 Extract Zip Spec      14 (20) '2.0'\n-6D2A79 Extract OS            00 (0) 'MS-DOS'\n-6D2A7A General Purpose Flag  0000 (0)\n-6D2A7C Compression Method    0000 (0) 'Stored'\n-6D2A7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2A82 CRC                   00000000 (0)\n-6D2A86 Compressed Size       00000000 (0)\n-6D2A8A Uncompressed Size     00000000 (0)\n-6D2A8E Filename Length       002E (46)\n-6D2A90 Extra Length          0009 (9)\n-6D2A92 Comment Length        0000 (0)\n-6D2A94 Disk Start            0000 (0)\n-6D2A96 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2A98 Ext File Attributes   00000000 (0)\n-6D2A9C Local Header Offset   00074234 (475700)\n-6D2AA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2AA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2ACE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2AD0   Length              0005 (5)\n-6D2AD2   Flags               01 (1) 'Modification'\n-6D2AD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2AD7 CENTRAL HEADER #267   02014B50 (33639248)\n-6D2ADB Created Zip Spec      14 (20) '2.0'\n-6D2ADC Created OS            00 (0) 'MS-DOS'\n-6D2ADD Extract Zip Spec      14 (20) '2.0'\n-6D2ADE Extract OS            00 (0) 'MS-DOS'\n-6D2ADF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2AE1 Compression Method    0000 (0) 'Stored'\n-6D2AE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2AE7 CRC                   00000000 (0)\n-6D2AEB Compressed Size       00000000 (0)\n-6D2AEF Uncompressed Size     00000000 (0)\n-6D2AF3 Filename Length       003C (60)\n-6D2AF5 Extra Length          0009 (9)\n-6D2AF7 Comment Length        0000 (0)\n-6D2AF9 Disk Start            0000 (0)\n-6D2AFB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2AFD Ext File Attributes   00000000 (0)\n-6D2B01 Local Header Offset   00074289 (475785)\n-6D2B05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2B05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2B41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2B43   Length              0005 (5)\n-6D2B45   Flags               01 (1) 'Modification'\n-6D2B46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2B4A CENTRAL HEADER #268   02014B50 (33639248)\n-6D2B4E Created Zip Spec      14 (20) '2.0'\n-6D2B4F Created OS            00 (0) 'MS-DOS'\n-6D2B50 Extract Zip Spec      14 (20) '2.0'\n-6D2B51 Extract OS            00 (0) 'MS-DOS'\n-6D2B52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2B54 Compression Method    0000 (0) 'Stored'\n-6D2B56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2B5A CRC                   4CDF6DC7 (1289711047)\n-6D2B5E Compressed Size       00000B22 (2850)\n-6D2B62 Uncompressed Size     00000B22 (2850)\n-6D2B66 Filename Length       0035 (53)\n-6D2B68 Extra Length          0009 (9)\n-6D2B6A Comment Length        0000 (0)\n-6D2B6C Disk Start            0000 (0)\n-6D2B6E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2B70 Ext File Attributes   00000000 (0)\n-6D2B74 Local Header Offset   000742FC (475900)\n-6D2B78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2B78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2BAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2BAF   Length              0005 (5)\n-6D2BB1   Flags               01 (1) 'Modification'\n-6D2BB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2BB6 CENTRAL HEADER #269   02014B50 (33639248)\n-6D2BBA Created Zip Spec      14 (20) '2.0'\n-6D2BBB Created OS            00 (0) 'MS-DOS'\n-6D2BBC Extract Zip Spec      14 (20) '2.0'\n-6D2BBD Extract OS            00 (0) 'MS-DOS'\n-6D2BBE General Purpose Flag  0000 (0)\n-6D2BC0 Compression Method    0000 (0) 'Stored'\n-6D2BC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2BC6 CRC                   00000000 (0)\n-6D2BCA Compressed Size       00000000 (0)\n-6D2BCE Uncompressed Size     00000000 (0)\n-6D2BD2 Filename Length       0038 (56)\n-6D2BD4 Extra Length          0009 (9)\n-6D2BD6 Comment Length        0000 (0)\n-6D2BD8 Disk Start            0000 (0)\n-6D2BDA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2BDC Ext File Attributes   00000000 (0)\n-6D2BE0 Local Header Offset   00074E8A (478858)\n-6D2BE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2BE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2C1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2C1E   Length              0005 (5)\n-6D2C20   Flags               01 (1) 'Modification'\n-6D2C21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2C25 CENTRAL HEADER #270   02014B50 (33639248)\n-6D2C29 Created Zip Spec      14 (20) '2.0'\n-6D2C2A Created OS            00 (0) 'MS-DOS'\n-6D2C2B Extract Zip Spec      14 (20) '2.0'\n-6D2C2C Extract OS            00 (0) 'MS-DOS'\n-6D2C2D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2C2F Compression Method    0000 (0) 'Stored'\n-6D2C31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2C35 CRC                   00000000 (0)\n-6D2C39 Compressed Size       00000000 (0)\n-6D2C3D Uncompressed Size     00000000 (0)\n-6D2C41 Filename Length       0046 (70)\n-6D2C43 Extra Length          0009 (9)\n-6D2C45 Comment Length        0000 (0)\n-6D2C47 Disk Start            0000 (0)\n-6D2C49 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2C4B Ext File Attributes   00000000 (0)\n-6D2C4F Local Header Offset   00074EE9 (478953)\n-6D2C53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2C53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2C99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2C9B   Length              0005 (5)\n-6D2C9D   Flags               01 (1) 'Modification'\n-6D2C9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2CA2 CENTRAL HEADER #271   02014B50 (33639248)\n-6D2CA6 Created Zip Spec      14 (20) '2.0'\n-6D2CA7 Created OS            00 (0) 'MS-DOS'\n-6D2CA8 Extract Zip Spec      14 (20) '2.0'\n-6D2CA9 Extract OS            00 (0) 'MS-DOS'\n-6D2CAA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2CAC Compression Method    0000 (0) 'Stored'\n-6D2CAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2CB2 CRC                   E8369296 (3895890582)\n-6D2CB6 Compressed Size       000007B9 (1977)\n-6D2CBA Uncompressed Size     000007B9 (1977)\n-6D2CBE Filename Length       003F (63)\n-6D2CC0 Extra Length          0009 (9)\n-6D2CC2 Comment Length        0000 (0)\n-6D2CC4 Disk Start            0000 (0)\n-6D2CC6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2CC8 Ext File Attributes   00000000 (0)\n-6D2CCC Local Header Offset   00074F66 (479078)\n-6D2CD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2CD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2D0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2D11   Length              0005 (5)\n-6D2D13   Flags               01 (1) 'Modification'\n-6D2D14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2D18 CENTRAL HEADER #272   02014B50 (33639248)\n-6D2D1C Created Zip Spec      14 (20) '2.0'\n-6D2D1D Created OS            00 (0) 'MS-DOS'\n-6D2D1E Extract Zip Spec      14 (20) '2.0'\n-6D2D1F Extract OS            00 (0) 'MS-DOS'\n-6D2D20 General Purpose Flag  0000 (0)\n-6D2D22 Compression Method    0000 (0) 'Stored'\n-6D2D24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2D28 CRC                   00000000 (0)\n-6D2D2C Compressed Size       00000000 (0)\n-6D2D30 Uncompressed Size     00000000 (0)\n-6D2D34 Filename Length       0039 (57)\n-6D2D36 Extra Length          0009 (9)\n-6D2D38 Comment Length        0000 (0)\n-6D2D3A Disk Start            0000 (0)\n-6D2D3C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2D3E Ext File Attributes   00000000 (0)\n-6D2D42 Local Header Offset   00075795 (481173)\n-6D2D46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2D46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2D7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2D81   Length              0005 (5)\n-6D2D83   Flags               01 (1) 'Modification'\n-6D2D84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2D88 CENTRAL HEADER #273   02014B50 (33639248)\n-6D2D8C Created Zip Spec      14 (20) '2.0'\n-6D2D8D Created OS            00 (0) 'MS-DOS'\n-6D2D8E Extract Zip Spec      14 (20) '2.0'\n-6D2D8F Extract OS            00 (0) 'MS-DOS'\n-6D2D90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2D92 Compression Method    0000 (0) 'Stored'\n-6D2D94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2D98 CRC                   00000000 (0)\n-6D2D9C Compressed Size       00000000 (0)\n-6D2DA0 Uncompressed Size     00000000 (0)\n-6D2DA4 Filename Length       0047 (71)\n-6D2DA6 Extra Length          0009 (9)\n-6D2DA8 Comment Length        0000 (0)\n-6D2DAA Disk Start            0000 (0)\n-6D2DAC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2DAE Ext File Attributes   00000000 (0)\n-6D2DB2 Local Header Offset   000757F5 (481269)\n-6D2DB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2DB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2DFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2DFF   Length              0005 (5)\n-6D2E01   Flags               01 (1) 'Modification'\n-6D2E02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2E06 CENTRAL HEADER #274   02014B50 (33639248)\n-6D2E0A Created Zip Spec      14 (20) '2.0'\n-6D2E0B Created OS            00 (0) 'MS-DOS'\n-6D2E0C Extract Zip Spec      14 (20) '2.0'\n-6D2E0D Extract OS            00 (0) 'MS-DOS'\n-6D2E0E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2E10 Compression Method    0000 (0) 'Stored'\n-6D2E12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2E16 CRC                   469E1753 (1184765779)\n-6D2E1A Compressed Size       0000084D (2125)\n-6D2E1E Uncompressed Size     0000084D (2125)\n-6D2E22 Filename Length       0040 (64)\n-6D2E24 Extra Length          0009 (9)\n-6D2E26 Comment Length        0000 (0)\n-6D2E28 Disk Start            0000 (0)\n-6D2E2A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2E2C Ext File Attributes   00000000 (0)\n-6D2E30 Local Header Offset   00075873 (481395)\n-6D2E34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2E34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2E74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2E76   Length              0005 (5)\n-6D2E78   Flags               01 (1) 'Modification'\n-6D2E79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2E7D CENTRAL HEADER #275   02014B50 (33639248)\n-6D2E81 Created Zip Spec      14 (20) '2.0'\n-6D2E82 Created OS            00 (0) 'MS-DOS'\n-6D2E83 Extract Zip Spec      14 (20) '2.0'\n-6D2E84 Extract OS            00 (0) 'MS-DOS'\n-6D2E85 General Purpose Flag  0000 (0)\n-6D2E87 Compression Method    0000 (0) 'Stored'\n-6D2E89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2E8D CRC                   00000000 (0)\n-6D2E91 Compressed Size       00000000 (0)\n-6D2E95 Uncompressed Size     00000000 (0)\n-6D2E99 Filename Length       003D (61)\n-6D2E9B Extra Length          0009 (9)\n-6D2E9D Comment Length        0000 (0)\n-6D2E9F Disk Start            0000 (0)\n-6D2EA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2EA3 Ext File Attributes   00000000 (0)\n-6D2EA7 Local Header Offset   00076137 (483639)\n-6D2EAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2EAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2EE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2EEA   Length              0005 (5)\n-6D2EEC   Flags               01 (1) 'Modification'\n-6D2EED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2EF1 CENTRAL HEADER #276   02014B50 (33639248)\n-6D2EF5 Created Zip Spec      14 (20) '2.0'\n-6D2EF6 Created OS            00 (0) 'MS-DOS'\n-6D2EF7 Extract Zip Spec      14 (20) '2.0'\n-6D2EF8 Extract OS            00 (0) 'MS-DOS'\n-6D2EF9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2EFB Compression Method    0000 (0) 'Stored'\n-6D2EFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2F01 CRC                   00000000 (0)\n-6D2F05 Compressed Size       00000000 (0)\n-6D2F09 Uncompressed Size     00000000 (0)\n-6D2F0D Filename Length       004B (75)\n-6D2F0F Extra Length          0009 (9)\n-6D2F11 Comment Length        0000 (0)\n-6D2F13 Disk Start            0000 (0)\n-6D2F15 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2F17 Ext File Attributes   00000000 (0)\n-6D2F1B Local Header Offset   0007619B (483739)\n-6D2F1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2F1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2F6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2F6C   Length              0005 (5)\n-6D2F6E   Flags               01 (1) 'Modification'\n-6D2F6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2F73 CENTRAL HEADER #277   02014B50 (33639248)\n-6D2F77 Created Zip Spec      14 (20) '2.0'\n-6D2F78 Created OS            00 (0) 'MS-DOS'\n-6D2F79 Extract Zip Spec      14 (20) '2.0'\n-6D2F7A Extract OS            00 (0) 'MS-DOS'\n-6D2F7B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D2F7D Compression Method    0000 (0) 'Stored'\n-6D2F7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2F83 CRC                   16DF2D66 (383724902)\n-6D2F87 Compressed Size       0000083C (2108)\n-6D2F8B Uncompressed Size     0000083C (2108)\n-6D2F8F Filename Length       0044 (68)\n-6D2F91 Extra Length          0009 (9)\n-6D2F93 Comment Length        0000 (0)\n-6D2F95 Disk Start            0000 (0)\n-6D2F97 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D2F99 Ext File Attributes   00000000 (0)\n-6D2F9D Local Header Offset   0007621D (483869)\n-6D2FA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D2FA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D2FE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D2FE7   Length              0005 (5)\n-6D2FE9   Flags               01 (1) 'Modification'\n-6D2FEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D2FEE CENTRAL HEADER #278   02014B50 (33639248)\n-6D2FF2 Created Zip Spec      14 (20) '2.0'\n-6D2FF3 Created OS            00 (0) 'MS-DOS'\n-6D2FF4 Extract Zip Spec      14 (20) '2.0'\n-6D2FF5 Extract OS            00 (0) 'MS-DOS'\n-6D2FF6 General Purpose Flag  0000 (0)\n-6D2FF8 Compression Method    0000 (0) 'Stored'\n-6D2FFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D2FFE CRC                   00000000 (0)\n-6D3002 Compressed Size       00000000 (0)\n-6D3006 Uncompressed Size     00000000 (0)\n-6D300A Filename Length       0038 (56)\n-6D300C Extra Length          0009 (9)\n-6D300E Comment Length        0000 (0)\n-6D3010 Disk Start            0000 (0)\n-6D3012 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3014 Ext File Attributes   00000000 (0)\n-6D3018 Local Header Offset   00076AD4 (486100)\n-6D301C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D301C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3054 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3056   Length              0005 (5)\n-6D3058   Flags               01 (1) 'Modification'\n-6D3059   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D305D CENTRAL HEADER #279   02014B50 (33639248)\n-6D3061 Created Zip Spec      14 (20) '2.0'\n-6D3062 Created OS            00 (0) 'MS-DOS'\n-6D3063 Extract Zip Spec      14 (20) '2.0'\n-6D3064 Extract OS            00 (0) 'MS-DOS'\n-6D3065 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3067 Compression Method    0000 (0) 'Stored'\n-6D3069 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D306D CRC                   00000000 (0)\n-6D3071 Compressed Size       00000000 (0)\n-6D3075 Uncompressed Size     00000000 (0)\n-6D3079 Filename Length       0046 (70)\n-6D307B Extra Length          0009 (9)\n-6D307D Comment Length        0000 (0)\n-6D307F Disk Start            0000 (0)\n-6D3081 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3083 Ext File Attributes   00000000 (0)\n-6D3087 Local Header Offset   00076B33 (486195)\n-6D308B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D308B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D30D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D30D3   Length              0005 (5)\n-6D30D5   Flags               01 (1) 'Modification'\n-6D30D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D30DA CENTRAL HEADER #280   02014B50 (33639248)\n-6D30DE Created Zip Spec      14 (20) '2.0'\n-6D30DF Created OS            00 (0) 'MS-DOS'\n-6D30E0 Extract Zip Spec      14 (20) '2.0'\n-6D30E1 Extract OS            00 (0) 'MS-DOS'\n-6D30E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D30E4 Compression Method    0000 (0) 'Stored'\n-6D30E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D30EA CRC                   4C93F7E4 (1284765668)\n-6D30EE Compressed Size       0000084D (2125)\n-6D30F2 Uncompressed Size     0000084D (2125)\n-6D30F6 Filename Length       003F (63)\n-6D30F8 Extra Length          0009 (9)\n-6D30FA Comment Length        0000 (0)\n-6D30FC Disk Start            0000 (0)\n-6D30FE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3100 Ext File Attributes   00000000 (0)\n-6D3104 Local Header Offset   00076BB0 (486320)\n-6D3108 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3108: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3147 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3149   Length              0005 (5)\n-6D314B   Flags               01 (1) 'Modification'\n-6D314C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3150 CENTRAL HEADER #281   02014B50 (33639248)\n-6D3154 Created Zip Spec      14 (20) '2.0'\n-6D3155 Created OS            00 (0) 'MS-DOS'\n-6D3156 Extract Zip Spec      14 (20) '2.0'\n-6D3157 Extract OS            00 (0) 'MS-DOS'\n-6D3158 General Purpose Flag  0000 (0)\n-6D315A Compression Method    0000 (0) 'Stored'\n-6D315C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3160 CRC                   00000000 (0)\n-6D3164 Compressed Size       00000000 (0)\n-6D3168 Uncompressed Size     00000000 (0)\n-6D316C Filename Length       0039 (57)\n-6D316E Extra Length          0009 (9)\n-6D3170 Comment Length        0000 (0)\n-6D3172 Disk Start            0000 (0)\n-6D3174 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3176 Ext File Attributes   00000000 (0)\n-6D317A Local Header Offset   00077473 (488563)\n-6D317E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D317E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D31B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D31B9   Length              0005 (5)\n-6D31BB   Flags               01 (1) 'Modification'\n-6D31BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D31C0 CENTRAL HEADER #282   02014B50 (33639248)\n-6D31C4 Created Zip Spec      14 (20) '2.0'\n-6D31C5 Created OS            00 (0) 'MS-DOS'\n-6D31C6 Extract Zip Spec      14 (20) '2.0'\n-6D31C7 Extract OS            00 (0) 'MS-DOS'\n-6D31C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D31CA Compression Method    0000 (0) 'Stored'\n-6D31CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D31D0 CRC                   00000000 (0)\n-6D31D4 Compressed Size       00000000 (0)\n-6D31D8 Uncompressed Size     00000000 (0)\n-6D31DC Filename Length       0047 (71)\n-6D31DE Extra Length          0009 (9)\n-6D31E0 Comment Length        0000 (0)\n-6D31E2 Disk Start            0000 (0)\n-6D31E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D31E6 Ext File Attributes   00000000 (0)\n-6D31EA Local Header Offset   000774D3 (488659)\n-6D31EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D31EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3237   Length              0005 (5)\n-6D3239   Flags               01 (1) 'Modification'\n-6D323A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D323E CENTRAL HEADER #283   02014B50 (33639248)\n-6D3242 Created Zip Spec      14 (20) '2.0'\n-6D3243 Created OS            00 (0) 'MS-DOS'\n-6D3244 Extract Zip Spec      14 (20) '2.0'\n-6D3245 Extract OS            00 (0) 'MS-DOS'\n-6D3246 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3248 Compression Method    0000 (0) 'Stored'\n-6D324A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D324E CRC                   0E05CB4C (235260748)\n-6D3252 Compressed Size       0000084C (2124)\n-6D3256 Uncompressed Size     0000084C (2124)\n-6D325A Filename Length       0040 (64)\n-6D325C Extra Length          0009 (9)\n-6D325E Comment Length        0000 (0)\n-6D3260 Disk Start            0000 (0)\n-6D3262 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3264 Ext File Attributes   00000000 (0)\n-6D3268 Local Header Offset   00077551 (488785)\n-6D326C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D326C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D32AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D32AE   Length              0005 (5)\n-6D32B0   Flags               01 (1) 'Modification'\n-6D32B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D32B5 CENTRAL HEADER #284   02014B50 (33639248)\n-6D32B9 Created Zip Spec      14 (20) '2.0'\n-6D32BA Created OS            00 (0) 'MS-DOS'\n-6D32BB Extract Zip Spec      14 (20) '2.0'\n-6D32BC Extract OS            00 (0) 'MS-DOS'\n-6D32BD General Purpose Flag  0000 (0)\n-6D32BF Compression Method    0000 (0) 'Stored'\n-6D32C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D32C5 CRC                   00000000 (0)\n-6D32C9 Compressed Size       00000000 (0)\n-6D32CD Uncompressed Size     00000000 (0)\n-6D32D1 Filename Length       003D (61)\n-6D32D3 Extra Length          0009 (9)\n-6D32D5 Comment Length        0000 (0)\n-6D32D7 Disk Start            0000 (0)\n-6D32D9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D32DB Ext File Attributes   00000000 (0)\n-6D32DF Local Header Offset   00077E14 (491028)\n-6D32E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D32E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3320 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3322   Length              0005 (5)\n-6D3324   Flags               01 (1) 'Modification'\n-6D3325   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3329 CENTRAL HEADER #285   02014B50 (33639248)\n-6D332D Created Zip Spec      14 (20) '2.0'\n-6D332E Created OS            00 (0) 'MS-DOS'\n-6D332F Extract Zip Spec      14 (20) '2.0'\n-6D3330 Extract OS            00 (0) 'MS-DOS'\n-6D3331 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3333 Compression Method    0000 (0) 'Stored'\n-6D3335 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3339 CRC                   00000000 (0)\n-6D333D Compressed Size       00000000 (0)\n-6D3341 Uncompressed Size     00000000 (0)\n-6D3345 Filename Length       004B (75)\n-6D3347 Extra Length          0009 (9)\n-6D3349 Comment Length        0000 (0)\n-6D334B Disk Start            0000 (0)\n-6D334D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D334F Ext File Attributes   00000000 (0)\n-6D3353 Local Header Offset   00077E78 (491128)\n-6D3357 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3357: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D33A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D33A4   Length              0005 (5)\n-6D33A6   Flags               01 (1) 'Modification'\n-6D33A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D33AB CENTRAL HEADER #286   02014B50 (33639248)\n-6D33AF Created Zip Spec      14 (20) '2.0'\n-6D33B0 Created OS            00 (0) 'MS-DOS'\n-6D33B1 Extract Zip Spec      14 (20) '2.0'\n-6D33B2 Extract OS            00 (0) 'MS-DOS'\n-6D33B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D33B5 Compression Method    0000 (0) 'Stored'\n-6D33B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D33BB CRC                   FE255727 (4263860007)\n-6D33BF Compressed Size       00000840 (2112)\n-6D33C3 Uncompressed Size     00000840 (2112)\n-6D33C7 Filename Length       0044 (68)\n-6D33C9 Extra Length          0009 (9)\n-6D33CB Comment Length        0000 (0)\n-6D33CD Disk Start            0000 (0)\n-6D33CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D33D1 Ext File Attributes   00000000 (0)\n-6D33D5 Local Header Offset   00077EFA (491258)\n-6D33D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D33D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D341D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D341F   Length              0005 (5)\n-6D3421   Flags               01 (1) 'Modification'\n-6D3422   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3426 CENTRAL HEADER #287   02014B50 (33639248)\n-6D342A Created Zip Spec      14 (20) '2.0'\n-6D342B Created OS            00 (0) 'MS-DOS'\n-6D342C Extract Zip Spec      14 (20) '2.0'\n-6D342D Extract OS            00 (0) 'MS-DOS'\n-6D342E General Purpose Flag  0000 (0)\n-6D3430 Compression Method    0000 (0) 'Stored'\n-6D3432 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3436 CRC                   00000000 (0)\n-6D343A Compressed Size       00000000 (0)\n-6D343E Uncompressed Size     00000000 (0)\n-6D3442 Filename Length       0038 (56)\n-6D3444 Extra Length          0009 (9)\n-6D3446 Comment Length        0000 (0)\n-6D3448 Disk Start            0000 (0)\n-6D344A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D344C Ext File Attributes   00000000 (0)\n-6D3450 Local Header Offset   000787B5 (493493)\n-6D3454 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3454: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D348C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D348E   Length              0005 (5)\n-6D3490   Flags               01 (1) 'Modification'\n-6D3491   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3495 CENTRAL HEADER #288   02014B50 (33639248)\n-6D3499 Created Zip Spec      14 (20) '2.0'\n-6D349A Created OS            00 (0) 'MS-DOS'\n-6D349B Extract Zip Spec      14 (20) '2.0'\n-6D349C Extract OS            00 (0) 'MS-DOS'\n-6D349D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D349F Compression Method    0000 (0) 'Stored'\n-6D34A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D34A5 CRC                   00000000 (0)\n-6D34A9 Compressed Size       00000000 (0)\n-6D34AD Uncompressed Size     00000000 (0)\n-6D34B1 Filename Length       0046 (70)\n-6D34B3 Extra Length          0009 (9)\n-6D34B5 Comment Length        0000 (0)\n-6D34B7 Disk Start            0000 (0)\n-6D34B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D34BB Ext File Attributes   00000000 (0)\n-6D34BF Local Header Offset   00078814 (493588)\n-6D34C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D34C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3509 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D350B   Length              0005 (5)\n-6D350D   Flags               01 (1) 'Modification'\n-6D350E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3512 CENTRAL HEADER #289   02014B50 (33639248)\n-6D3516 Created Zip Spec      14 (20) '2.0'\n-6D3517 Created OS            00 (0) 'MS-DOS'\n-6D3518 Extract Zip Spec      14 (20) '2.0'\n-6D3519 Extract OS            00 (0) 'MS-DOS'\n-6D351A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D351C Compression Method    0000 (0) 'Stored'\n-6D351E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3522 CRC                   7BDC1B8D (2078022541)\n-6D3526 Compressed Size       00000836 (2102)\n-6D352A Uncompressed Size     00000836 (2102)\n-6D352E Filename Length       003F (63)\n-6D3530 Extra Length          0009 (9)\n-6D3532 Comment Length        0000 (0)\n-6D3534 Disk Start            0000 (0)\n-6D3536 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3538 Ext File Attributes   00000000 (0)\n-6D353C Local Header Offset   00078891 (493713)\n-6D3540 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3540: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D357F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3581   Length              0005 (5)\n-6D3583   Flags               01 (1) 'Modification'\n-6D3584   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3588 CENTRAL HEADER #290   02014B50 (33639248)\n-6D358C Created Zip Spec      14 (20) '2.0'\n-6D358D Created OS            00 (0) 'MS-DOS'\n-6D358E Extract Zip Spec      14 (20) '2.0'\n-6D358F Extract OS            00 (0) 'MS-DOS'\n-6D3590 General Purpose Flag  0000 (0)\n-6D3592 Compression Method    0000 (0) 'Stored'\n-6D3594 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3598 CRC                   00000000 (0)\n-6D359C Compressed Size       00000000 (0)\n-6D35A0 Uncompressed Size     00000000 (0)\n-6D35A4 Filename Length       0039 (57)\n-6D35A6 Extra Length          0009 (9)\n-6D35A8 Comment Length        0000 (0)\n-6D35AA Disk Start            0000 (0)\n-6D35AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D35AE Ext File Attributes   00000000 (0)\n-6D35B2 Local Header Offset   0007913D (495933)\n-6D35B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D35B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D35EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D35F1   Length              0005 (5)\n-6D35F3   Flags               01 (1) 'Modification'\n-6D35F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D35F8 CENTRAL HEADER #291   02014B50 (33639248)\n-6D35FC Created Zip Spec      14 (20) '2.0'\n-6D35FD Created OS            00 (0) 'MS-DOS'\n-6D35FE Extract Zip Spec      14 (20) '2.0'\n-6D35FF Extract OS            00 (0) 'MS-DOS'\n-6D3600 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3602 Compression Method    0000 (0) 'Stored'\n-6D3604 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3608 CRC                   00000000 (0)\n-6D360C Compressed Size       00000000 (0)\n-6D3610 Uncompressed Size     00000000 (0)\n-6D3614 Filename Length       0047 (71)\n-6D3616 Extra Length          0009 (9)\n-6D3618 Comment Length        0000 (0)\n-6D361A Disk Start            0000 (0)\n-6D361C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D361E Ext File Attributes   00000000 (0)\n-6D3622 Local Header Offset   0007919D (496029)\n-6D3626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D366D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D366F   Length              0005 (5)\n-6D3671   Flags               01 (1) 'Modification'\n-6D3672   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3676 CENTRAL HEADER #292   02014B50 (33639248)\n-6D367A Created Zip Spec      14 (20) '2.0'\n-6D367B Created OS            00 (0) 'MS-DOS'\n-6D367C Extract Zip Spec      14 (20) '2.0'\n-6D367D Extract OS            00 (0) 'MS-DOS'\n-6D367E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3680 Compression Method    0000 (0) 'Stored'\n-6D3682 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3686 CRC                   09F70F91 (167186321)\n-6D368A Compressed Size       000008B7 (2231)\n-6D368E Uncompressed Size     000008B7 (2231)\n-6D3692 Filename Length       0040 (64)\n-6D3694 Extra Length          0009 (9)\n-6D3696 Comment Length        0000 (0)\n-6D3698 Disk Start            0000 (0)\n-6D369A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D369C Ext File Attributes   00000000 (0)\n-6D36A0 Local Header Offset   0007921B (496155)\n-6D36A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D36A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D36E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D36E6   Length              0005 (5)\n-6D36E8   Flags               01 (1) 'Modification'\n-6D36E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D36ED CENTRAL HEADER #293   02014B50 (33639248)\n-6D36F1 Created Zip Spec      14 (20) '2.0'\n-6D36F2 Created OS            00 (0) 'MS-DOS'\n-6D36F3 Extract Zip Spec      14 (20) '2.0'\n-6D36F4 Extract OS            00 (0) 'MS-DOS'\n-6D36F5 General Purpose Flag  0000 (0)\n-6D36F7 Compression Method    0000 (0) 'Stored'\n-6D36F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D36FD CRC                   00000000 (0)\n-6D3701 Compressed Size       00000000 (0)\n-6D3705 Uncompressed Size     00000000 (0)\n-6D3709 Filename Length       0043 (67)\n-6D370B Extra Length          0009 (9)\n-6D370D Comment Length        0000 (0)\n-6D370F Disk Start            0000 (0)\n-6D3711 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3713 Ext File Attributes   00000000 (0)\n-6D3717 Local Header Offset   00079B49 (498505)\n-6D371B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D371B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D375E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3760   Length              0005 (5)\n-6D3762   Flags               01 (1) 'Modification'\n-6D3763   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3767 CENTRAL HEADER #294   02014B50 (33639248)\n-6D376B Created Zip Spec      14 (20) '2.0'\n-6D376C Created OS            00 (0) 'MS-DOS'\n-6D376D Extract Zip Spec      14 (20) '2.0'\n-6D376E Extract OS            00 (0) 'MS-DOS'\n-6D376F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3771 Compression Method    0000 (0) 'Stored'\n-6D3773 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3777 CRC                   00000000 (0)\n-6D377B Compressed Size       00000000 (0)\n-6D377F Uncompressed Size     00000000 (0)\n-6D3783 Filename Length       0051 (81)\n-6D3785 Extra Length          0009 (9)\n-6D3787 Comment Length        0000 (0)\n-6D3789 Disk Start            0000 (0)\n-6D378B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D378D Ext File Attributes   00000000 (0)\n-6D3791 Local Header Offset   00079BB3 (498611)\n-6D3795 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3795: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D37E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D37E8   Length              0005 (5)\n-6D37EA   Flags               01 (1) 'Modification'\n-6D37EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D37EF CENTRAL HEADER #295   02014B50 (33639248)\n-6D37F3 Created Zip Spec      14 (20) '2.0'\n-6D37F4 Created OS            00 (0) 'MS-DOS'\n-6D37F5 Extract Zip Spec      14 (20) '2.0'\n-6D37F6 Extract OS            00 (0) 'MS-DOS'\n-6D37F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D37F9 Compression Method    0000 (0) 'Stored'\n-6D37FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D37FF CRC                   0F6B44E1 (258688225)\n-6D3803 Compressed Size       000007F3 (2035)\n-6D3807 Uncompressed Size     000007F3 (2035)\n-6D380B Filename Length       004A (74)\n-6D380D Extra Length          0009 (9)\n-6D380F Comment Length        0000 (0)\n-6D3811 Disk Start            0000 (0)\n-6D3813 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3815 Ext File Attributes   00000000 (0)\n-6D3819 Local Header Offset   00079C3B (498747)\n-6D381D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D381D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3869   Length              0005 (5)\n-6D386B   Flags               01 (1) 'Modification'\n-6D386C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3870 CENTRAL HEADER #296   02014B50 (33639248)\n-6D3874 Created Zip Spec      14 (20) '2.0'\n-6D3875 Created OS            00 (0) 'MS-DOS'\n-6D3876 Extract Zip Spec      14 (20) '2.0'\n-6D3877 Extract OS            00 (0) 'MS-DOS'\n-6D3878 General Purpose Flag  0000 (0)\n-6D387A Compression Method    0000 (0) 'Stored'\n-6D387C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3880 CRC                   00000000 (0)\n-6D3884 Compressed Size       00000000 (0)\n-6D3888 Uncompressed Size     00000000 (0)\n-6D388C Filename Length       003D (61)\n-6D388E Extra Length          0009 (9)\n-6D3890 Comment Length        0000 (0)\n-6D3892 Disk Start            0000 (0)\n-6D3894 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3896 Ext File Attributes   00000000 (0)\n-6D389A Local Header Offset   0007A4AF (500911)\n-6D389E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D389E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D38DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D38DD   Length              0005 (5)\n-6D38DF   Flags               01 (1) 'Modification'\n-6D38E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D38E4 CENTRAL HEADER #297   02014B50 (33639248)\n-6D38E8 Created Zip Spec      14 (20) '2.0'\n-6D38E9 Created OS            00 (0) 'MS-DOS'\n-6D38EA Extract Zip Spec      14 (20) '2.0'\n-6D38EB Extract OS            00 (0) 'MS-DOS'\n-6D38EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D38EE Compression Method    0000 (0) 'Stored'\n-6D38F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D38F4 CRC                   00000000 (0)\n-6D38F8 Compressed Size       00000000 (0)\n-6D38FC Uncompressed Size     00000000 (0)\n-6D3900 Filename Length       004B (75)\n-6D3902 Extra Length          0009 (9)\n-6D3904 Comment Length        0000 (0)\n-6D3906 Disk Start            0000 (0)\n-6D3908 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D390A Ext File Attributes   00000000 (0)\n-6D390E Local Header Offset   0007A513 (501011)\n-6D3912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D395D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D395F   Length              0005 (5)\n-6D3961   Flags               01 (1) 'Modification'\n-6D3962   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3966 CENTRAL HEADER #298   02014B50 (33639248)\n-6D396A Created Zip Spec      14 (20) '2.0'\n-6D396B Created OS            00 (0) 'MS-DOS'\n-6D396C Extract Zip Spec      14 (20) '2.0'\n-6D396D Extract OS            00 (0) 'MS-DOS'\n-6D396E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3970 Compression Method    0000 (0) 'Stored'\n-6D3972 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3976 CRC                   FA85A8D5 (4203063509)\n-6D397A Compressed Size       00000F0F (3855)\n-6D397E Uncompressed Size     00000F0F (3855)\n-6D3982 Filename Length       0044 (68)\n-6D3984 Extra Length          0009 (9)\n-6D3986 Comment Length        0000 (0)\n-6D3988 Disk Start            0000 (0)\n-6D398A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D398C Ext File Attributes   00000000 (0)\n-6D3990 Local Header Offset   0007A595 (501141)\n-6D3994 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3994: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D39D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D39DA   Length              0005 (5)\n-6D39DC   Flags               01 (1) 'Modification'\n-6D39DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D39E1 CENTRAL HEADER #299   02014B50 (33639248)\n-6D39E5 Created Zip Spec      14 (20) '2.0'\n-6D39E6 Created OS            00 (0) 'MS-DOS'\n-6D39E7 Extract Zip Spec      14 (20) '2.0'\n-6D39E8 Extract OS            00 (0) 'MS-DOS'\n-6D39E9 General Purpose Flag  0000 (0)\n-6D39EB Compression Method    0000 (0) 'Stored'\n-6D39ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D39F1 CRC                   00000000 (0)\n-6D39F5 Compressed Size       00000000 (0)\n-6D39F9 Uncompressed Size     00000000 (0)\n-6D39FD Filename Length       003F (63)\n-6D39FF Extra Length          0009 (9)\n-6D3A01 Comment Length        0000 (0)\n-6D3A03 Disk Start            0000 (0)\n-6D3A05 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3A07 Ext File Attributes   00000000 (0)\n-6D3A0B Local Header Offset   0007B51F (505119)\n-6D3A0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3A0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3A4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3A50   Length              0005 (5)\n-6D3A52   Flags               01 (1) 'Modification'\n-6D3A53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3A57 CENTRAL HEADER #300   02014B50 (33639248)\n-6D3A5B Created Zip Spec      14 (20) '2.0'\n-6D3A5C Created OS            00 (0) 'MS-DOS'\n-6D3A5D Extract Zip Spec      14 (20) '2.0'\n-6D3A5E Extract OS            00 (0) 'MS-DOS'\n-6D3A5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3A61 Compression Method    0000 (0) 'Stored'\n-6D3A63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3A67 CRC                   00000000 (0)\n-6D3A6B Compressed Size       00000000 (0)\n-6D3A6F Uncompressed Size     00000000 (0)\n-6D3A73 Filename Length       004D (77)\n-6D3A75 Extra Length          0009 (9)\n-6D3A77 Comment Length        0000 (0)\n-6D3A79 Disk Start            0000 (0)\n-6D3A7B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3A7D Ext File Attributes   00000000 (0)\n-6D3A81 Local Header Offset   0007B585 (505221)\n-6D3A85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3A85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3AD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3AD4   Length              0005 (5)\n-6D3AD6   Flags               01 (1) 'Modification'\n-6D3AD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3ADB CENTRAL HEADER #301   02014B50 (33639248)\n-6D3ADF Created Zip Spec      14 (20) '2.0'\n-6D3AE0 Created OS            00 (0) 'MS-DOS'\n-6D3AE1 Extract Zip Spec      14 (20) '2.0'\n-6D3AE2 Extract OS            00 (0) 'MS-DOS'\n-6D3AE3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3AE5 Compression Method    0000 (0) 'Stored'\n-6D3AE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3AEB CRC                   28F10A22 (686885410)\n-6D3AEF Compressed Size       0000092B (2347)\n-6D3AF3 Uncompressed Size     0000092B (2347)\n-6D3AF7 Filename Length       0046 (70)\n-6D3AF9 Extra Length          0009 (9)\n-6D3AFB Comment Length        0000 (0)\n-6D3AFD Disk Start            0000 (0)\n-6D3AFF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3B01 Ext File Attributes   00000000 (0)\n-6D3B05 Local Header Offset   0007B609 (505353)\n-6D3B09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3B09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3B4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3B51   Length              0005 (5)\n-6D3B53   Flags               01 (1) 'Modification'\n-6D3B54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3B58 CENTRAL HEADER #302   02014B50 (33639248)\n-6D3B5C Created Zip Spec      14 (20) '2.0'\n-6D3B5D Created OS            00 (0) 'MS-DOS'\n-6D3B5E Extract Zip Spec      14 (20) '2.0'\n-6D3B5F Extract OS            00 (0) 'MS-DOS'\n-6D3B60 General Purpose Flag  0000 (0)\n-6D3B62 Compression Method    0000 (0) 'Stored'\n-6D3B64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3B68 CRC                   00000000 (0)\n-6D3B6C Compressed Size       00000000 (0)\n-6D3B70 Uncompressed Size     00000000 (0)\n-6D3B74 Filename Length       0026 (38)\n-6D3B76 Extra Length          0009 (9)\n-6D3B78 Comment Length        0000 (0)\n-6D3B7A Disk Start            0000 (0)\n-6D3B7C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3B7E Ext File Attributes   00000000 (0)\n-6D3B82 Local Header Offset   0007BFB1 (507825)\n-6D3B86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3B86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3BAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3BAE   Length              0005 (5)\n-6D3BB0   Flags               01 (1) 'Modification'\n-6D3BB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3BB5 CENTRAL HEADER #303   02014B50 (33639248)\n-6D3BB9 Created Zip Spec      14 (20) '2.0'\n-6D3BBA Created OS            00 (0) 'MS-DOS'\n-6D3BBB Extract Zip Spec      14 (20) '2.0'\n-6D3BBC Extract OS            00 (0) 'MS-DOS'\n-6D3BBD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3BBF Compression Method    0000 (0) 'Stored'\n-6D3BC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3BC5 CRC                   00000000 (0)\n-6D3BC9 Compressed Size       00000000 (0)\n-6D3BCD Uncompressed Size     00000000 (0)\n-6D3BD1 Filename Length       0034 (52)\n-6D3BD3 Extra Length          0009 (9)\n-6D3BD5 Comment Length        0000 (0)\n-6D3BD7 Disk Start            0000 (0)\n-6D3BD9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3BDB Ext File Attributes   00000000 (0)\n-6D3BDF Local Header Offset   0007BFFE (507902)\n-6D3BE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3BE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3C17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3C19   Length              0005 (5)\n-6D3C1B   Flags               01 (1) 'Modification'\n-6D3C1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3C20 CENTRAL HEADER #304   02014B50 (33639248)\n-6D3C24 Created Zip Spec      14 (20) '2.0'\n-6D3C25 Created OS            00 (0) 'MS-DOS'\n-6D3C26 Extract Zip Spec      14 (20) '2.0'\n-6D3C27 Extract OS            00 (0) 'MS-DOS'\n-6D3C28 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3C2A Compression Method    0000 (0) 'Stored'\n-6D3C2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3C30 CRC                   183E1D03 (406723843)\n-6D3C34 Compressed Size       0000B03A (45114)\n-6D3C38 Uncompressed Size     0000B03A (45114)\n-6D3C3C Filename Length       002D (45)\n-6D3C3E Extra Length          0009 (9)\n-6D3C40 Comment Length        0000 (0)\n-6D3C42 Disk Start            0000 (0)\n-6D3C44 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3C46 Ext File Attributes   00000000 (0)\n-6D3C4A Local Header Offset   0007C069 (508009)\n-6D3C4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3C4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3C7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3C7D   Length              0005 (5)\n-6D3C7F   Flags               01 (1) 'Modification'\n-6D3C80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3C84 CENTRAL HEADER #305   02014B50 (33639248)\n-6D3C88 Created Zip Spec      14 (20) '2.0'\n-6D3C89 Created OS            00 (0) 'MS-DOS'\n-6D3C8A Extract Zip Spec      14 (20) '2.0'\n-6D3C8B Extract OS            00 (0) 'MS-DOS'\n-6D3C8C General Purpose Flag  0000 (0)\n-6D3C8E Compression Method    0000 (0) 'Stored'\n-6D3C90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3C94 CRC                   00000000 (0)\n-6D3C98 Compressed Size       00000000 (0)\n-6D3C9C Uncompressed Size     00000000 (0)\n-6D3CA0 Filename Length       0012 (18)\n-6D3CA2 Extra Length          0009 (9)\n-6D3CA4 Comment Length        0000 (0)\n-6D3CA6 Disk Start            0000 (0)\n-6D3CA8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3CAA Ext File Attributes   00000000 (0)\n-6D3CAE Local Header Offset   00087107 (553223)\n-6D3CB2 Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3CB2: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3CC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3CC6   Length              0005 (5)\n-6D3CC8   Flags               01 (1) 'Modification'\n-6D3CC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3CCD CENTRAL HEADER #306   02014B50 (33639248)\n-6D3CD1 Created Zip Spec      14 (20) '2.0'\n-6D3CD2 Created OS            00 (0) 'MS-DOS'\n-6D3CD3 Extract Zip Spec      14 (20) '2.0'\n-6D3CD4 Extract OS            00 (0) 'MS-DOS'\n-6D3CD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3CD7 Compression Method    0000 (0) 'Stored'\n-6D3CD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3CDD CRC                   89A6CE58 (2309410392)\n-6D3CE1 Compressed Size       00000161 (353)\n-6D3CE5 Uncompressed Size     00000161 (353)\n-6D3CE9 Filename Length       0043 (67)\n-6D3CEB Extra Length          0009 (9)\n-6D3CED Comment Length        0000 (0)\n-6D3CEF Disk Start            0000 (0)\n-6D3CF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3CF3 Ext File Attributes   00000000 (0)\n-6D3CF7 Local Header Offset   00087140 (553280)\n-6D3CFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3CFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3D3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3D40   Length              0005 (5)\n-6D3D42   Flags               01 (1) 'Modification'\n-6D3D43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3D47 CENTRAL HEADER #307   02014B50 (33639248)\n-6D3D4B Created Zip Spec      14 (20) '2.0'\n-6D3D4C Created OS            00 (0) 'MS-DOS'\n-6D3D4D Extract Zip Spec      14 (20) '2.0'\n-6D3D4E Extract OS            00 (0) 'MS-DOS'\n-6D3D4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3D51 Compression Method    0000 (0) 'Stored'\n-6D3D53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3D57 CRC                   6642E973 (1715661171)\n-6D3D5B Compressed Size       000000C8 (200)\n-6D3D5F Uncompressed Size     000000C8 (200)\n-6D3D63 Filename Length       0018 (24)\n-6D3D65 Extra Length          0009 (9)\n-6D3D67 Comment Length        0000 (0)\n-6D3D69 Disk Start            0000 (0)\n-6D3D6B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3D6D Ext File Attributes   00000000 (0)\n-6D3D71 Local Header Offset   0008731B (553755)\n-6D3D75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3D75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3D8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3D8F   Length              0005 (5)\n-6D3D91   Flags               01 (1) 'Modification'\n-6D3D92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3D96 CENTRAL HEADER #308   02014B50 (33639248)\n-6D3D9A Created Zip Spec      14 (20) '2.0'\n-6D3D9B Created OS            00 (0) 'MS-DOS'\n-6D3D9C Extract Zip Spec      14 (20) '2.0'\n-6D3D9D Extract OS            00 (0) 'MS-DOS'\n-6D3D9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3DA0 Compression Method    0000 (0) 'Stored'\n-6D3DA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3DA6 CRC                   03B2110A (62001418)\n-6D3DAA Compressed Size       00000091 (145)\n-6D3DAE Uncompressed Size     00000091 (145)\n-6D3DB2 Filename Length       0017 (23)\n-6D3DB4 Extra Length          0009 (9)\n-6D3DB6 Comment Length        0000 (0)\n-6D3DB8 Disk Start            0000 (0)\n-6D3DBA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3DBC Ext File Attributes   00000000 (0)\n-6D3DC0 Local Header Offset   00087432 (554034)\n-6D3DC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3DC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3DDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3DDD   Length              0005 (5)\n-6D3DDF   Flags               01 (1) 'Modification'\n-6D3DE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3DE4 CENTRAL HEADER #309   02014B50 (33639248)\n-6D3DE8 Created Zip Spec      14 (20) '2.0'\n-6D3DE9 Created OS            00 (0) 'MS-DOS'\n-6D3DEA Extract Zip Spec      14 (20) '2.0'\n-6D3DEB Extract OS            00 (0) 'MS-DOS'\n-6D3DEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3DEE Compression Method    0000 (0) 'Stored'\n-6D3DF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3DF4 CRC                   B6BD94DA (3065877722)\n-6D3DF8 Compressed Size       00000474 (1140)\n-6D3DFC Uncompressed Size     00000474 (1140)\n-6D3E00 Filename Length       000E (14)\n-6D3E02 Extra Length          0009 (9)\n-6D3E04 Comment Length        0000 (0)\n-6D3E06 Disk Start            0000 (0)\n-6D3E08 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3E0A Ext File Attributes   00000000 (0)\n-6D3E0E Local Header Offset   00087511 (554257)\n-6D3E12 Filename              'XXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3E12: Filename 'XXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3E20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3E22   Length              0005 (5)\n-6D3E24   Flags               01 (1) 'Modification'\n-6D3E25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3E29 CENTRAL HEADER #310   02014B50 (33639248)\n-6D3E2D Created Zip Spec      14 (20) '2.0'\n-6D3E2E Created OS            00 (0) 'MS-DOS'\n-6D3E2F Extract Zip Spec      14 (20) '2.0'\n-6D3E30 Extract OS            00 (0) 'MS-DOS'\n-6D3E31 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3E33 Compression Method    0000 (0) 'Stored'\n-6D3E35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3E39 CRC                   0A4703DB (172426203)\n-6D3E3D Compressed Size       00000ADD (2781)\n-6D3E41 Uncompressed Size     00000ADD (2781)\n-6D3E45 Filename Length       0011 (17)\n-6D3E47 Extra Length          0009 (9)\n-6D3E49 Comment Length        0000 (0)\n-6D3E4B Disk Start            0000 (0)\n-6D3E4D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3E4F Ext File Attributes   00000000 (0)\n-6D3E53 Local Header Offset   000879CA (555466)\n-6D3E57 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3E57: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3E68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3E6A   Length              0005 (5)\n-6D3E6C   Flags               01 (1) 'Modification'\n-6D3E6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3E71 CENTRAL HEADER #311   02014B50 (33639248)\n-6D3E75 Created Zip Spec      14 (20) '2.0'\n-6D3E76 Created OS            00 (0) 'MS-DOS'\n-6D3E77 Extract Zip Spec      14 (20) '2.0'\n-6D3E78 Extract OS            00 (0) 'MS-DOS'\n-6D3E79 General Purpose Flag  0000 (0)\n-6D3E7B Compression Method    0000 (0) 'Stored'\n-6D3E7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3E81 CRC                   00000000 (0)\n-6D3E85 Compressed Size       00000000 (0)\n-6D3E89 Uncompressed Size     00000000 (0)\n-6D3E8D Filename Length       0004 (4)\n-6D3E8F Extra Length          0009 (9)\n-6D3E91 Comment Length        0000 (0)\n-6D3E93 Disk Start            0000 (0)\n-6D3E95 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3E97 Ext File Attributes   00000000 (0)\n-6D3E9B Local Header Offset   000884EF (558319)\n-6D3E9F Filename              'XXXX'\n-#\n-# WARNING: Offset 0x6D3E9F: Filename 'XXXX'\n-#          Zero length filename\n-#\n-6D3EA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3EA5   Length              0005 (5)\n-6D3EA7   Flags               01 (1) 'Modification'\n-6D3EA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3EAC CENTRAL HEADER #312   02014B50 (33639248)\n-6D3EB0 Created Zip Spec      14 (20) '2.0'\n-6D3EB1 Created OS            00 (0) 'MS-DOS'\n-6D3EB2 Extract Zip Spec      14 (20) '2.0'\n-6D3EB3 Extract OS            00 (0) 'MS-DOS'\n-6D3EB4 General Purpose Flag  0000 (0)\n-6D3EB6 Compression Method    0000 (0) 'Stored'\n-6D3EB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3EBC CRC                   00000000 (0)\n-6D3EC0 Compressed Size       00000000 (0)\n-6D3EC4 Uncompressed Size     00000000 (0)\n-6D3EC8 Filename Length       000C (12)\n-6D3ECA Extra Length          0009 (9)\n-6D3ECC Comment Length        0000 (0)\n-6D3ECE Disk Start            0000 (0)\n-6D3ED0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3ED2 Ext File Attributes   00000000 (0)\n-6D3ED6 Local Header Offset   0008851A (558362)\n-6D3EDA Filename              'XXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3EDA: Filename 'XXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3EE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3EE8   Length              0005 (5)\n-6D3EEA   Flags               01 (1) 'Modification'\n-6D3EEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3EEF CENTRAL HEADER #313   02014B50 (33639248)\n-6D3EF3 Created Zip Spec      14 (20) '2.0'\n-6D3EF4 Created OS            00 (0) 'MS-DOS'\n-6D3EF5 Extract Zip Spec      14 (20) '2.0'\n-6D3EF6 Extract OS            00 (0) 'MS-DOS'\n-6D3EF7 General Purpose Flag  0000 (0)\n-6D3EF9 Compression Method    0000 (0) 'Stored'\n-6D3EFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3EFF CRC                   00000000 (0)\n-6D3F03 Compressed Size       00000000 (0)\n-6D3F07 Uncompressed Size     00000000 (0)\n-6D3F0B Filename Length       0010 (16)\n-6D3F0D Extra Length          0009 (9)\n-6D3F0F Comment Length        0000 (0)\n-6D3F11 Disk Start            0000 (0)\n-6D3F13 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3F15 Ext File Attributes   00000000 (0)\n-6D3F19 Local Header Offset   0008854D (558413)\n-6D3F1D Filename              'XXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3F1D: Filename 'XXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3F2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3F2F   Length              0005 (5)\n-6D3F31   Flags               01 (1) 'Modification'\n-6D3F32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3F36 CENTRAL HEADER #314   02014B50 (33639248)\n-6D3F3A Created Zip Spec      14 (20) '2.0'\n-6D3F3B Created OS            00 (0) 'MS-DOS'\n-6D3F3C Extract Zip Spec      14 (20) '2.0'\n-6D3F3D Extract OS            00 (0) 'MS-DOS'\n-6D3F3E General Purpose Flag  0000 (0)\n-6D3F40 Compression Method    0000 (0) 'Stored'\n-6D3F42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3F46 CRC                   00000000 (0)\n-6D3F4A Compressed Size       00000000 (0)\n-6D3F4E Uncompressed Size     00000000 (0)\n-6D3F52 Filename Length       0017 (23)\n-6D3F54 Extra Length          0009 (9)\n-6D3F56 Comment Length        0000 (0)\n-6D3F58 Disk Start            0000 (0)\n-6D3F5A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3F5C Ext File Attributes   00000000 (0)\n-6D3F60 Local Header Offset   00088584 (558468)\n-6D3F64 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3F64: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3F7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3F7D   Length              0005 (5)\n-6D3F7F   Flags               01 (1) 'Modification'\n-6D3F80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3F84 CENTRAL HEADER #315   02014B50 (33639248)\n-6D3F88 Created Zip Spec      14 (20) '2.0'\n-6D3F89 Created OS            00 (0) 'MS-DOS'\n-6D3F8A Extract Zip Spec      14 (20) '2.0'\n-6D3F8B Extract OS            00 (0) 'MS-DOS'\n-6D3F8C General Purpose Flag  0000 (0)\n-6D3F8E Compression Method    0000 (0) 'Stored'\n-6D3F90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3F94 CRC                   00000000 (0)\n-6D3F98 Compressed Size       00000000 (0)\n-6D3F9C Uncompressed Size     00000000 (0)\n-6D3FA0 Filename Length       001F (31)\n-6D3FA2 Extra Length          0009 (9)\n-6D3FA4 Comment Length        0000 (0)\n-6D3FA6 Disk Start            0000 (0)\n-6D3FA8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D3FAA Ext File Attributes   00000000 (0)\n-6D3FAE Local Header Offset   000885C2 (558530)\n-6D3FB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D3FB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D3FD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D3FD3   Length              0005 (5)\n-6D3FD5   Flags               01 (1) 'Modification'\n-6D3FD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D3FDA CENTRAL HEADER #316   02014B50 (33639248)\n-6D3FDE Created Zip Spec      14 (20) '2.0'\n-6D3FDF Created OS            00 (0) 'MS-DOS'\n-6D3FE0 Extract Zip Spec      14 (20) '2.0'\n-6D3FE1 Extract OS            00 (0) 'MS-DOS'\n-6D3FE2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D3FE4 Compression Method    0000 (0) 'Stored'\n-6D3FE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D3FEA CRC                   CB19F474 (3407475828)\n-6D3FEE Compressed Size       00000B41 (2881)\n-6D3FF2 Uncompressed Size     00000B41 (2881)\n-6D3FF6 Filename Length       0034 (52)\n-6D3FF8 Extra Length          0009 (9)\n-6D3FFA Comment Length        0000 (0)\n-6D3FFC Disk Start            0000 (0)\n-6D3FFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4000 Ext File Attributes   00000000 (0)\n-6D4004 Local Header Offset   00088608 (558600)\n-6D4008 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4008: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D403C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D403E   Length              0005 (5)\n-6D4040   Flags               01 (1) 'Modification'\n-6D4041   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4045 CENTRAL HEADER #317   02014B50 (33639248)\n-6D4049 Created Zip Spec      14 (20) '2.0'\n-6D404A Created OS            00 (0) 'MS-DOS'\n-6D404B Extract Zip Spec      14 (20) '2.0'\n-6D404C Extract OS            00 (0) 'MS-DOS'\n-6D404D General Purpose Flag  0000 (0)\n-6D404F Compression Method    0000 (0) 'Stored'\n-6D4051 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4055 CRC                   00000000 (0)\n-6D4059 Compressed Size       00000000 (0)\n-6D405D Uncompressed Size     00000000 (0)\n-6D4061 Filename Length       0022 (34)\n-6D4063 Extra Length          0009 (9)\n-6D4065 Comment Length        0000 (0)\n-6D4067 Disk Start            0000 (0)\n-6D4069 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D406B Ext File Attributes   00000000 (0)\n-6D406F Local Header Offset   000891B4 (561588)\n-6D4073 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4073: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4095 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4097   Length              0005 (5)\n-6D4099   Flags               01 (1) 'Modification'\n-6D409A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D409E CENTRAL HEADER #318   02014B50 (33639248)\n-6D40A2 Created Zip Spec      14 (20) '2.0'\n-6D40A3 Created OS            00 (0) 'MS-DOS'\n-6D40A4 Extract Zip Spec      14 (20) '2.0'\n-6D40A5 Extract OS            00 (0) 'MS-DOS'\n-6D40A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D40A8 Compression Method    0000 (0) 'Stored'\n-6D40AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D40AE CRC                   273E139A (658379674)\n-6D40B2 Compressed Size       000015B3 (5555)\n-6D40B6 Uncompressed Size     000015B3 (5555)\n-6D40BA Filename Length       003B (59)\n-6D40BC Extra Length          0009 (9)\n-6D40BE Comment Length        0000 (0)\n-6D40C0 Disk Start            0000 (0)\n-6D40C2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D40C4 Ext File Attributes   00000000 (0)\n-6D40C8 Local Header Offset   000891FD (561661)\n-6D40CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D40CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4107 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4109   Length              0005 (5)\n-6D410B   Flags               01 (1) 'Modification'\n-6D410C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4110 CENTRAL HEADER #319   02014B50 (33639248)\n-6D4114 Created Zip Spec      14 (20) '2.0'\n-6D4115 Created OS            00 (0) 'MS-DOS'\n-6D4116 Extract Zip Spec      14 (20) '2.0'\n-6D4117 Extract OS            00 (0) 'MS-DOS'\n-6D4118 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D411A Compression Method    0000 (0) 'Stored'\n-6D411C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4120 CRC                   02D2B2EB (47362795)\n-6D4124 Compressed Size       00002CCA (11466)\n-6D4128 Uncompressed Size     00002CCA (11466)\n-6D412C Filename Length       003B (59)\n-6D412E Extra Length          0009 (9)\n-6D4130 Comment Length        0000 (0)\n-6D4132 Disk Start            0000 (0)\n-6D4134 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4136 Ext File Attributes   00000000 (0)\n-6D413A Local Header Offset   0008A822 (567330)\n-6D413E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D413E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4179 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D417B   Length              0005 (5)\n-6D417D   Flags               01 (1) 'Modification'\n-6D417E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4182 CENTRAL HEADER #320   02014B50 (33639248)\n-6D4186 Created Zip Spec      14 (20) '2.0'\n-6D4187 Created OS            00 (0) 'MS-DOS'\n-6D4188 Extract Zip Spec      14 (20) '2.0'\n-6D4189 Extract OS            00 (0) 'MS-DOS'\n-6D418A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D418C Compression Method    0000 (0) 'Stored'\n-6D418E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4192 CRC                   37CC1834 (936122420)\n-6D4196 Compressed Size       000035A9 (13737)\n-6D419A Uncompressed Size     000035A9 (13737)\n-6D419E Filename Length       003C (60)\n-6D41A0 Extra Length          0009 (9)\n-6D41A2 Comment Length        0000 (0)\n-6D41A4 Disk Start            0000 (0)\n-6D41A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D41A8 Ext File Attributes   00000000 (0)\n-6D41AC Local Header Offset   0008D55E (578910)\n-6D41B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D41B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D41EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D41EE   Length              0005 (5)\n-6D41F0   Flags               01 (1) 'Modification'\n-6D41F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D41F5 CENTRAL HEADER #321   02014B50 (33639248)\n-6D41F9 Created Zip Spec      14 (20) '2.0'\n-6D41FA Created OS            00 (0) 'MS-DOS'\n-6D41FB Extract Zip Spec      14 (20) '2.0'\n-6D41FC Extract OS            00 (0) 'MS-DOS'\n-6D41FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D41FF Compression Method    0000 (0) 'Stored'\n-6D4201 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4205 CRC                   77DBD9E2 (2010896866)\n-6D4209 Compressed Size       00000A68 (2664)\n-6D420D Uncompressed Size     00000A68 (2664)\n-6D4211 Filename Length       003E (62)\n-6D4213 Extra Length          0009 (9)\n-6D4215 Comment Length        0000 (0)\n-6D4217 Disk Start            0000 (0)\n-6D4219 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D421B Ext File Attributes   00000000 (0)\n-6D421F Local Header Offset   00090B7A (592762)\n-6D4223 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4223: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4261 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4263   Length              0005 (5)\n-6D4265   Flags               01 (1) 'Modification'\n-6D4266   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D426A CENTRAL HEADER #322   02014B50 (33639248)\n-6D426E Created Zip Spec      14 (20) '2.0'\n-6D426F Created OS            00 (0) 'MS-DOS'\n-6D4270 Extract Zip Spec      14 (20) '2.0'\n-6D4271 Extract OS            00 (0) 'MS-DOS'\n-6D4272 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4274 Compression Method    0000 (0) 'Stored'\n-6D4276 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D427A CRC                   060EB252 (101626450)\n-6D427E Compressed Size       00000AC0 (2752)\n-6D4282 Uncompressed Size     00000AC0 (2752)\n-6D4286 Filename Length       003F (63)\n-6D4288 Extra Length          0009 (9)\n-6D428A Comment Length        0000 (0)\n-6D428C Disk Start            0000 (0)\n-6D428E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4290 Ext File Attributes   00000000 (0)\n-6D4294 Local Header Offset   00091657 (595543)\n-6D4298 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4298: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D42D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D42D9   Length              0005 (5)\n-6D42DB   Flags               01 (1) 'Modification'\n-6D42DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D42E0 CENTRAL HEADER #323   02014B50 (33639248)\n-6D42E4 Created Zip Spec      14 (20) '2.0'\n-6D42E5 Created OS            00 (0) 'MS-DOS'\n-6D42E6 Extract Zip Spec      14 (20) '2.0'\n-6D42E7 Extract OS            00 (0) 'MS-DOS'\n-6D42E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D42EA Compression Method    0000 (0) 'Stored'\n-6D42EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D42F0 CRC                   EF9589B0 (4019554736)\n-6D42F4 Compressed Size       00000B3F (2879)\n-6D42F8 Uncompressed Size     00000B3F (2879)\n-6D42FC Filename Length       003E (62)\n-6D42FE Extra Length          0009 (9)\n-6D4300 Comment Length        0000 (0)\n-6D4302 Disk Start            0000 (0)\n-6D4304 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4306 Ext File Attributes   00000000 (0)\n-6D430A Local Header Offset   0009218D (598413)\n-6D430E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D430E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D434C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D434E   Length              0005 (5)\n-6D4350   Flags               01 (1) 'Modification'\n-6D4351   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4355 CENTRAL HEADER #324   02014B50 (33639248)\n-6D4359 Created Zip Spec      14 (20) '2.0'\n-6D435A Created OS            00 (0) 'MS-DOS'\n-6D435B Extract Zip Spec      14 (20) '2.0'\n-6D435C Extract OS            00 (0) 'MS-DOS'\n-6D435D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D435F Compression Method    0000 (0) 'Stored'\n-6D4361 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4365 CRC                   06019AC3 (100768451)\n-6D4369 Compressed Size       00000A6E (2670)\n-6D436D Uncompressed Size     00000A6E (2670)\n-6D4371 Filename Length       0039 (57)\n-6D4373 Extra Length          0009 (9)\n-6D4375 Comment Length        0000 (0)\n-6D4377 Disk Start            0000 (0)\n-6D4379 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D437B Ext File Attributes   00000000 (0)\n-6D437F Local Header Offset   00092D41 (601409)\n-6D4383 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4383: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D43BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D43BE   Length              0005 (5)\n-6D43C0   Flags               01 (1) 'Modification'\n-6D43C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D43C5 CENTRAL HEADER #325   02014B50 (33639248)\n-6D43C9 Created Zip Spec      14 (20) '2.0'\n-6D43CA Created OS            00 (0) 'MS-DOS'\n-6D43CB Extract Zip Spec      14 (20) '2.0'\n-6D43CC Extract OS            00 (0) 'MS-DOS'\n-6D43CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D43CF Compression Method    0000 (0) 'Stored'\n-6D43D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D43D5 CRC                   D3EA2D1D (3555339549)\n-6D43D9 Compressed Size       00000BA9 (2985)\n-6D43DD Uncompressed Size     00000BA9 (2985)\n-6D43E1 Filename Length       0040 (64)\n-6D43E3 Extra Length          0009 (9)\n-6D43E5 Comment Length        0000 (0)\n-6D43E7 Disk Start            0000 (0)\n-6D43E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D43EB Ext File Attributes   00000000 (0)\n-6D43EF Local Header Offset   0009381F (604191)\n-6D43F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D43F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4435   Length              0005 (5)\n-6D4437   Flags               01 (1) 'Modification'\n-6D4438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D443C CENTRAL HEADER #326   02014B50 (33639248)\n-6D4440 Created Zip Spec      14 (20) '2.0'\n-6D4441 Created OS            00 (0) 'MS-DOS'\n-6D4442 Extract Zip Spec      14 (20) '2.0'\n-6D4443 Extract OS            00 (0) 'MS-DOS'\n-6D4444 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4446 Compression Method    0000 (0) 'Stored'\n-6D4448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D444C CRC                   B1D0AB16 (2983242518)\n-6D4450 Compressed Size       0000137B (4987)\n-6D4454 Uncompressed Size     0000137B (4987)\n-6D4458 Filename Length       0038 (56)\n-6D445A Extra Length          0009 (9)\n-6D445C Comment Length        0000 (0)\n-6D445E Disk Start            0000 (0)\n-6D4460 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4462 Ext File Attributes   00000000 (0)\n-6D4466 Local Header Offset   0009443F (607295)\n-6D446A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D446A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D44A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D44A4   Length              0005 (5)\n-6D44A6   Flags               01 (1) 'Modification'\n-6D44A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D44AB CENTRAL HEADER #327   02014B50 (33639248)\n-6D44AF Created Zip Spec      14 (20) '2.0'\n-6D44B0 Created OS            00 (0) 'MS-DOS'\n-6D44B1 Extract Zip Spec      14 (20) '2.0'\n-6D44B2 Extract OS            00 (0) 'MS-DOS'\n-6D44B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D44B5 Compression Method    0000 (0) 'Stored'\n-6D44B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D44BB CRC                   D18F68BE (3515836606)\n-6D44BF Compressed Size       00000D2C (3372)\n-6D44C3 Uncompressed Size     00000D2C (3372)\n-6D44C7 Filename Length       0036 (54)\n-6D44C9 Extra Length          0009 (9)\n-6D44CB Comment Length        0000 (0)\n-6D44CD Disk Start            0000 (0)\n-6D44CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D44D1 Ext File Attributes   00000000 (0)\n-6D44D5 Local Header Offset   00095829 (612393)\n-6D44D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D44D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D450F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4511   Length              0005 (5)\n-6D4513   Flags               01 (1) 'Modification'\n-6D4514   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4518 CENTRAL HEADER #328   02014B50 (33639248)\n-6D451C Created Zip Spec      14 (20) '2.0'\n-6D451D Created OS            00 (0) 'MS-DOS'\n-6D451E Extract Zip Spec      14 (20) '2.0'\n-6D451F Extract OS            00 (0) 'MS-DOS'\n-6D4520 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4522 Compression Method    0000 (0) 'Stored'\n-6D4524 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4528 CRC                   4FA522A8 (1336222376)\n-6D452C Compressed Size       000049D9 (18905)\n-6D4530 Uncompressed Size     000049D9 (18905)\n-6D4534 Filename Length       0038 (56)\n-6D4536 Extra Length          0009 (9)\n-6D4538 Comment Length        0000 (0)\n-6D453A Disk Start            0000 (0)\n-6D453C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D453E Ext File Attributes   00000000 (0)\n-6D4542 Local Header Offset   000965C2 (615874)\n-6D4546 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4546: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D457E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4580   Length              0005 (5)\n-6D4582   Flags               01 (1) 'Modification'\n-6D4583   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4587 CENTRAL HEADER #329   02014B50 (33639248)\n-6D458B Created Zip Spec      14 (20) '2.0'\n-6D458C Created OS            00 (0) 'MS-DOS'\n-6D458D Extract Zip Spec      14 (20) '2.0'\n-6D458E Extract OS            00 (0) 'MS-DOS'\n-6D458F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4591 Compression Method    0000 (0) 'Stored'\n-6D4593 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4597 CRC                   CA81C016 (3397500950)\n-6D459B Compressed Size       00002307 (8967)\n-6D459F Uncompressed Size     00002307 (8967)\n-6D45A3 Filename Length       0036 (54)\n-6D45A5 Extra Length          0009 (9)\n-6D45A7 Comment Length        0000 (0)\n-6D45A9 Disk Start            0000 (0)\n-6D45AB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D45AD Ext File Attributes   00000000 (0)\n-6D45B1 Local Header Offset   0009B00A (634890)\n-6D45B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D45B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D45EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D45ED   Length              0005 (5)\n-6D45EF   Flags               01 (1) 'Modification'\n-6D45F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D45F4 CENTRAL HEADER #330   02014B50 (33639248)\n-6D45F8 Created Zip Spec      14 (20) '2.0'\n-6D45F9 Created OS            00 (0) 'MS-DOS'\n-6D45FA Extract Zip Spec      14 (20) '2.0'\n-6D45FB Extract OS            00 (0) 'MS-DOS'\n-6D45FC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D45FE Compression Method    0000 (0) 'Stored'\n-6D4600 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4604 CRC                   1BE0DE32 (467721778)\n-6D4608 Compressed Size       00002352 (9042)\n-6D460C Uncompressed Size     00002352 (9042)\n-6D4610 Filename Length       0037 (55)\n-6D4612 Extra Length          0009 (9)\n-6D4614 Comment Length        0000 (0)\n-6D4616 Disk Start            0000 (0)\n-6D4618 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D461A Ext File Attributes   00000000 (0)\n-6D461E Local Header Offset   0009D37E (643966)\n-6D4622 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4622: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4659 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D465B   Length              0005 (5)\n-6D465D   Flags               01 (1) 'Modification'\n-6D465E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4662 CENTRAL HEADER #331   02014B50 (33639248)\n-6D4666 Created Zip Spec      14 (20) '2.0'\n-6D4667 Created OS            00 (0) 'MS-DOS'\n-6D4668 Extract Zip Spec      14 (20) '2.0'\n-6D4669 Extract OS            00 (0) 'MS-DOS'\n-6D466A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D466C Compression Method    0000 (0) 'Stored'\n-6D466E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4672 CRC                   E0540578 (3763602808)\n-6D4676 Compressed Size       00002679 (9849)\n-6D467A Uncompressed Size     00002679 (9849)\n-6D467E Filename Length       0035 (53)\n-6D4680 Extra Length          0009 (9)\n-6D4682 Comment Length        0000 (0)\n-6D4684 Disk Start            0000 (0)\n-6D4686 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4688 Ext File Attributes   00000000 (0)\n-6D468C Local Header Offset   0009F73E (653118)\n-6D4690 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4690: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D46C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D46C7   Length              0005 (5)\n-6D46C9   Flags               01 (1) 'Modification'\n-6D46CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D46CE CENTRAL HEADER #332   02014B50 (33639248)\n-6D46D2 Created Zip Spec      14 (20) '2.0'\n-6D46D3 Created OS            00 (0) 'MS-DOS'\n-6D46D4 Extract Zip Spec      14 (20) '2.0'\n-6D46D5 Extract OS            00 (0) 'MS-DOS'\n-6D46D6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D46D8 Compression Method    0000 (0) 'Stored'\n-6D46DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D46DE CRC                   812FC9F0 (2167392752)\n-6D46E2 Compressed Size       00000D20 (3360)\n-6D46E6 Uncompressed Size     00000D20 (3360)\n-6D46EA Filename Length       003C (60)\n-6D46EC Extra Length          0009 (9)\n-6D46EE Comment Length        0000 (0)\n-6D46F0 Disk Start            0000 (0)\n-6D46F2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D46F4 Ext File Attributes   00000000 (0)\n-6D46F8 Local Header Offset   000A1E23 (663075)\n-6D46FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D46FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4738 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D473A   Length              0005 (5)\n-6D473C   Flags               01 (1) 'Modification'\n-6D473D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4741 CENTRAL HEADER #333   02014B50 (33639248)\n-6D4745 Created Zip Spec      14 (20) '2.0'\n-6D4746 Created OS            00 (0) 'MS-DOS'\n-6D4747 Extract Zip Spec      14 (20) '2.0'\n-6D4748 Extract OS            00 (0) 'MS-DOS'\n-6D4749 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D474B Compression Method    0000 (0) 'Stored'\n-6D474D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4751 CRC                   E6FF39F2 (3875486194)\n-6D4755 Compressed Size       0000046B (1131)\n-6D4759 Uncompressed Size     0000046B (1131)\n-6D475D Filename Length       003D (61)\n-6D475F Extra Length          0009 (9)\n-6D4761 Comment Length        0000 (0)\n-6D4763 Disk Start            0000 (0)\n-6D4765 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4767 Ext File Attributes   00000000 (0)\n-6D476B Local Header Offset   000A2BB6 (666550)\n-6D476F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D476F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D47AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D47AE   Length              0005 (5)\n-6D47B0   Flags               01 (1) 'Modification'\n-6D47B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D47B5 CENTRAL HEADER #334   02014B50 (33639248)\n-6D47B9 Created Zip Spec      14 (20) '2.0'\n-6D47BA Created OS            00 (0) 'MS-DOS'\n-6D47BB Extract Zip Spec      14 (20) '2.0'\n-6D47BC Extract OS            00 (0) 'MS-DOS'\n-6D47BD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D47BF Compression Method    0000 (0) 'Stored'\n-6D47C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D47C5 CRC                   0827F1CF (136835535)\n-6D47C9 Compressed Size       00000C8B (3211)\n-6D47CD Uncompressed Size     00000C8B (3211)\n-6D47D1 Filename Length       0035 (53)\n-6D47D3 Extra Length          0009 (9)\n-6D47D5 Comment Length        0000 (0)\n-6D47D7 Disk Start            0000 (0)\n-6D47D9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D47DB Ext File Attributes   00000000 (0)\n-6D47DF Local Header Offset   000A3095 (667797)\n-6D47E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D47E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4818 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D481A   Length              0005 (5)\n-6D481C   Flags               01 (1) 'Modification'\n-6D481D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4821 CENTRAL HEADER #335   02014B50 (33639248)\n-6D4825 Created Zip Spec      14 (20) '2.0'\n-6D4826 Created OS            00 (0) 'MS-DOS'\n-6D4827 Extract Zip Spec      14 (20) '2.0'\n-6D4828 Extract OS            00 (0) 'MS-DOS'\n-6D4829 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D482B Compression Method    0000 (0) 'Stored'\n-6D482D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4831 CRC                   DB2E2C1B (3677236251)\n-6D4835 Compressed Size       00000B80 (2944)\n-6D4839 Uncompressed Size     00000B80 (2944)\n-6D483D Filename Length       0039 (57)\n-6D483F Extra Length          0009 (9)\n-6D4841 Comment Length        0000 (0)\n-6D4843 Disk Start            0000 (0)\n-6D4845 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4847 Ext File Attributes   00000000 (0)\n-6D484B Local Header Offset   000A3D8C (671116)\n-6D484F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D484F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4888 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D488A   Length              0005 (5)\n-6D488C   Flags               01 (1) 'Modification'\n-6D488D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4891 CENTRAL HEADER #336   02014B50 (33639248)\n-6D4895 Created Zip Spec      14 (20) '2.0'\n-6D4896 Created OS            00 (0) 'MS-DOS'\n-6D4897 Extract Zip Spec      14 (20) '2.0'\n-6D4898 Extract OS            00 (0) 'MS-DOS'\n-6D4899 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D489B Compression Method    0000 (0) 'Stored'\n-6D489D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D48A1 CRC                   BB4C70B3 (3142348979)\n-6D48A5 Compressed Size       0000146B (5227)\n-6D48A9 Uncompressed Size     0000146B (5227)\n-6D48AD Filename Length       0038 (56)\n-6D48AF Extra Length          0009 (9)\n-6D48B1 Comment Length        0000 (0)\n-6D48B3 Disk Start            0000 (0)\n-6D48B5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D48B7 Ext File Attributes   00000000 (0)\n-6D48BB Local Header Offset   000A497C (674172)\n-6D48BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D48BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D48F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D48F9   Length              0005 (5)\n-6D48FB   Flags               01 (1) 'Modification'\n-6D48FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4900 CENTRAL HEADER #337   02014B50 (33639248)\n-6D4904 Created Zip Spec      14 (20) '2.0'\n-6D4905 Created OS            00 (0) 'MS-DOS'\n-6D4906 Extract Zip Spec      14 (20) '2.0'\n-6D4907 Extract OS            00 (0) 'MS-DOS'\n-6D4908 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D490A Compression Method    0000 (0) 'Stored'\n-6D490C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4910 CRC                   5603C310 (1443087120)\n-6D4914 Compressed Size       00001463 (5219)\n-6D4918 Uncompressed Size     00001463 (5219)\n-6D491C Filename Length       0033 (51)\n-6D491E Extra Length          0009 (9)\n-6D4920 Comment Length        0000 (0)\n-6D4922 Disk Start            0000 (0)\n-6D4924 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4926 Ext File Attributes   00000000 (0)\n-6D492A Local Header Offset   000A5E56 (679510)\n-6D492E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D492E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4961 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4963   Length              0005 (5)\n-6D4965   Flags               01 (1) 'Modification'\n-6D4966   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D496A CENTRAL HEADER #338   02014B50 (33639248)\n-6D496E Created Zip Spec      14 (20) '2.0'\n-6D496F Created OS            00 (0) 'MS-DOS'\n-6D4970 Extract Zip Spec      14 (20) '2.0'\n-6D4971 Extract OS            00 (0) 'MS-DOS'\n-6D4972 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4974 Compression Method    0000 (0) 'Stored'\n-6D4976 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D497A CRC                   56DBC793 (1457244051)\n-6D497E Compressed Size       00000C79 (3193)\n-6D4982 Uncompressed Size     00000C79 (3193)\n-6D4986 Filename Length       0036 (54)\n-6D4988 Extra Length          0009 (9)\n-6D498A Comment Length        0000 (0)\n-6D498C Disk Start            0000 (0)\n-6D498E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4990 Ext File Attributes   00000000 (0)\n-6D4994 Local Header Offset   000A7323 (684835)\n-6D4998 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4998: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D49CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D49D0   Length              0005 (5)\n-6D49D2   Flags               01 (1) 'Modification'\n-6D49D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D49D7 CENTRAL HEADER #339   02014B50 (33639248)\n-6D49DB Created Zip Spec      14 (20) '2.0'\n-6D49DC Created OS            00 (0) 'MS-DOS'\n-6D49DD Extract Zip Spec      14 (20) '2.0'\n-6D49DE Extract OS            00 (0) 'MS-DOS'\n-6D49DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D49E1 Compression Method    0000 (0) 'Stored'\n-6D49E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D49E7 CRC                   1549C790 (357156752)\n-6D49EB Compressed Size       000014F8 (5368)\n-6D49EF Uncompressed Size     000014F8 (5368)\n-6D49F3 Filename Length       003D (61)\n-6D49F5 Extra Length          0009 (9)\n-6D49F7 Comment Length        0000 (0)\n-6D49F9 Disk Start            0000 (0)\n-6D49FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D49FD Ext File Attributes   00000000 (0)\n-6D4A01 Local Header Offset   000A8009 (688137)\n-6D4A05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4A05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4A42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4A44   Length              0005 (5)\n-6D4A46   Flags               01 (1) 'Modification'\n-6D4A47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4A4B CENTRAL HEADER #340   02014B50 (33639248)\n-6D4A4F Created Zip Spec      14 (20) '2.0'\n-6D4A50 Created OS            00 (0) 'MS-DOS'\n-6D4A51 Extract Zip Spec      14 (20) '2.0'\n-6D4A52 Extract OS            00 (0) 'MS-DOS'\n-6D4A53 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4A55 Compression Method    0000 (0) 'Stored'\n-6D4A57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4A5B CRC                   D0079E8D (3490160269)\n-6D4A5F Compressed Size       00000D8D (3469)\n-6D4A63 Uncompressed Size     00000D8D (3469)\n-6D4A67 Filename Length       003B (59)\n-6D4A69 Extra Length          0009 (9)\n-6D4A6B Comment Length        0000 (0)\n-6D4A6D Disk Start            0000 (0)\n-6D4A6F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4A71 Ext File Attributes   00000000 (0)\n-6D4A75 Local Header Offset   000A9575 (693621)\n-6D4A79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4A79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4AB6   Length              0005 (5)\n-6D4AB8   Flags               01 (1) 'Modification'\n-6D4AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4ABD CENTRAL HEADER #341   02014B50 (33639248)\n-6D4AC1 Created Zip Spec      14 (20) '2.0'\n-6D4AC2 Created OS            00 (0) 'MS-DOS'\n-6D4AC3 Extract Zip Spec      14 (20) '2.0'\n-6D4AC4 Extract OS            00 (0) 'MS-DOS'\n-6D4AC5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4AC7 Compression Method    0000 (0) 'Stored'\n-6D4AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4ACD CRC                   7728EBEC (1999170540)\n-6D4AD1 Compressed Size       000017BD (6077)\n-6D4AD5 Uncompressed Size     000017BD (6077)\n-6D4AD9 Filename Length       0030 (48)\n-6D4ADB Extra Length          0009 (9)\n-6D4ADD Comment Length        0000 (0)\n-6D4ADF Disk Start            0000 (0)\n-6D4AE1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4AE3 Ext File Attributes   00000000 (0)\n-6D4AE7 Local Header Offset   000AA374 (697204)\n-6D4AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4B1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4B1D   Length              0005 (5)\n-6D4B1F   Flags               01 (1) 'Modification'\n-6D4B20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4B24 CENTRAL HEADER #342   02014B50 (33639248)\n-6D4B28 Created Zip Spec      14 (20) '2.0'\n-6D4B29 Created OS            00 (0) 'MS-DOS'\n-6D4B2A Extract Zip Spec      14 (20) '2.0'\n-6D4B2B Extract OS            00 (0) 'MS-DOS'\n-6D4B2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4B2E Compression Method    0000 (0) 'Stored'\n-6D4B30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4B34 CRC                   27E32CDA (669199578)\n-6D4B38 Compressed Size       00000EE5 (3813)\n-6D4B3C Uncompressed Size     00000EE5 (3813)\n-6D4B40 Filename Length       0033 (51)\n-6D4B42 Extra Length          0009 (9)\n-6D4B44 Comment Length        0000 (0)\n-6D4B46 Disk Start            0000 (0)\n-6D4B48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4B4A Ext File Attributes   00000000 (0)\n-6D4B4E Local Header Offset   000ABB98 (703384)\n-6D4B52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4B52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4B85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4B87   Length              0005 (5)\n-6D4B89   Flags               01 (1) 'Modification'\n-6D4B8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4B8E CENTRAL HEADER #343   02014B50 (33639248)\n-6D4B92 Created Zip Spec      14 (20) '2.0'\n-6D4B93 Created OS            00 (0) 'MS-DOS'\n-6D4B94 Extract Zip Spec      14 (20) '2.0'\n-6D4B95 Extract OS            00 (0) 'MS-DOS'\n-6D4B96 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4B98 Compression Method    0000 (0) 'Stored'\n-6D4B9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4B9E CRC                   723EDDAE (1916722606)\n-6D4BA2 Compressed Size       0000110C (4364)\n-6D4BA6 Uncompressed Size     0000110C (4364)\n-6D4BAA Filename Length       0037 (55)\n-6D4BAC Extra Length          0009 (9)\n-6D4BAE Comment Length        0000 (0)\n-6D4BB0 Disk Start            0000 (0)\n-6D4BB2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4BB4 Ext File Attributes   00000000 (0)\n-6D4BB8 Local Header Offset   000ACAE7 (707303)\n-6D4BBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4BBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4BF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4BF5   Length              0005 (5)\n-6D4BF7   Flags               01 (1) 'Modification'\n-6D4BF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4BFC CENTRAL HEADER #344   02014B50 (33639248)\n-6D4C00 Created Zip Spec      14 (20) '2.0'\n-6D4C01 Created OS            00 (0) 'MS-DOS'\n-6D4C02 Extract Zip Spec      14 (20) '2.0'\n-6D4C03 Extract OS            00 (0) 'MS-DOS'\n-6D4C04 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4C06 Compression Method    0000 (0) 'Stored'\n-6D4C08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4C0C CRC                   B1CE4173 (2983084403)\n-6D4C10 Compressed Size       00000E9E (3742)\n-6D4C14 Uncompressed Size     00000E9E (3742)\n-6D4C18 Filename Length       0035 (53)\n-6D4C1A Extra Length          0009 (9)\n-6D4C1C Comment Length        0000 (0)\n-6D4C1E Disk Start            0000 (0)\n-6D4C20 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4C22 Ext File Attributes   00000000 (0)\n-6D4C26 Local Header Offset   000ADC61 (711777)\n-6D4C2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4C2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4C5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4C61   Length              0005 (5)\n-6D4C63   Flags               01 (1) 'Modification'\n-6D4C64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4C68 CENTRAL HEADER #345   02014B50 (33639248)\n-6D4C6C Created Zip Spec      14 (20) '2.0'\n-6D4C6D Created OS            00 (0) 'MS-DOS'\n-6D4C6E Extract Zip Spec      14 (20) '2.0'\n-6D4C6F Extract OS            00 (0) 'MS-DOS'\n-6D4C70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4C72 Compression Method    0000 (0) 'Stored'\n-6D4C74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4C78 CRC                   764B1E75 (1984634485)\n-6D4C7C Compressed Size       0000054F (1359)\n-6D4C80 Uncompressed Size     0000054F (1359)\n-6D4C84 Filename Length       0035 (53)\n-6D4C86 Extra Length          0009 (9)\n-6D4C88 Comment Length        0000 (0)\n-6D4C8A Disk Start            0000 (0)\n-6D4C8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4C8E Ext File Attributes   00000000 (0)\n-6D4C92 Local Header Offset   000AEB6B (715627)\n-6D4C96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4C96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4CCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4CCD   Length              0005 (5)\n-6D4CCF   Flags               01 (1) 'Modification'\n-6D4CD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4CD4 CENTRAL HEADER #346   02014B50 (33639248)\n-6D4CD8 Created Zip Spec      14 (20) '2.0'\n-6D4CD9 Created OS            00 (0) 'MS-DOS'\n-6D4CDA Extract Zip Spec      14 (20) '2.0'\n-6D4CDB Extract OS            00 (0) 'MS-DOS'\n-6D4CDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4CDE Compression Method    0000 (0) 'Stored'\n-6D4CE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4CE4 CRC                   DA561E50 (3663076944)\n-6D4CE8 Compressed Size       0000070B (1803)\n-6D4CEC Uncompressed Size     0000070B (1803)\n-6D4CF0 Filename Length       0038 (56)\n-6D4CF2 Extra Length          0009 (9)\n-6D4CF4 Comment Length        0000 (0)\n-6D4CF6 Disk Start            0000 (0)\n-6D4CF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4CFA Ext File Attributes   00000000 (0)\n-6D4CFE Local Header Offset   000AF126 (717094)\n-6D4D02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4D02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4D3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4D3C   Length              0005 (5)\n-6D4D3E   Flags               01 (1) 'Modification'\n-6D4D3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4D43 CENTRAL HEADER #347   02014B50 (33639248)\n-6D4D47 Created Zip Spec      14 (20) '2.0'\n-6D4D48 Created OS            00 (0) 'MS-DOS'\n-6D4D49 Extract Zip Spec      14 (20) '2.0'\n-6D4D4A Extract OS            00 (0) 'MS-DOS'\n-6D4D4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4D4D Compression Method    0000 (0) 'Stored'\n-6D4D4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4D53 CRC                   D1926FA5 (3516034981)\n-6D4D57 Compressed Size       00000BBB (3003)\n-6D4D5B Uncompressed Size     00000BBB (3003)\n-6D4D5F Filename Length       003E (62)\n-6D4D61 Extra Length          0009 (9)\n-6D4D63 Comment Length        0000 (0)\n-6D4D65 Disk Start            0000 (0)\n-6D4D67 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4D69 Ext File Attributes   00000000 (0)\n-6D4D6D Local Header Offset   000AF8A0 (719008)\n-6D4D71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4D71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4DAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4DB1   Length              0005 (5)\n-6D4DB3   Flags               01 (1) 'Modification'\n-6D4DB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4DB8 CENTRAL HEADER #348   02014B50 (33639248)\n-6D4DBC Created Zip Spec      14 (20) '2.0'\n-6D4DBD Created OS            00 (0) 'MS-DOS'\n-6D4DBE Extract Zip Spec      14 (20) '2.0'\n-6D4DBF Extract OS            00 (0) 'MS-DOS'\n-6D4DC0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4DC2 Compression Method    0000 (0) 'Stored'\n-6D4DC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4DC8 CRC                   4F5E3DED (1331576301)\n-6D4DCC Compressed Size       00000C13 (3091)\n-6D4DD0 Uncompressed Size     00000C13 (3091)\n-6D4DD4 Filename Length       003C (60)\n-6D4DD6 Extra Length          0009 (9)\n-6D4DD8 Comment Length        0000 (0)\n-6D4DDA Disk Start            0000 (0)\n-6D4DDC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4DDE Ext File Attributes   00000000 (0)\n-6D4DE2 Local Header Offset   000B04D0 (722128)\n-6D4DE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4DE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4E22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4E24   Length              0005 (5)\n-6D4E26   Flags               01 (1) 'Modification'\n-6D4E27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4E2B CENTRAL HEADER #349   02014B50 (33639248)\n-6D4E2F Created Zip Spec      14 (20) '2.0'\n-6D4E30 Created OS            00 (0) 'MS-DOS'\n-6D4E31 Extract Zip Spec      14 (20) '2.0'\n-6D4E32 Extract OS            00 (0) 'MS-DOS'\n-6D4E33 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4E35 Compression Method    0000 (0) 'Stored'\n-6D4E37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4E3B CRC                   C66F6586 (3329189254)\n-6D4E3F Compressed Size       0000098F (2447)\n-6D4E43 Uncompressed Size     0000098F (2447)\n-6D4E47 Filename Length       0036 (54)\n-6D4E49 Extra Length          0009 (9)\n-6D4E4B Comment Length        0000 (0)\n-6D4E4D Disk Start            0000 (0)\n-6D4E4F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4E51 Ext File Attributes   00000000 (0)\n-6D4E55 Local Header Offset   000B1156 (725334)\n-6D4E59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4E59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4E8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4E91   Length              0005 (5)\n-6D4E93   Flags               01 (1) 'Modification'\n-6D4E94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4E98 CENTRAL HEADER #350   02014B50 (33639248)\n-6D4E9C Created Zip Spec      14 (20) '2.0'\n-6D4E9D Created OS            00 (0) 'MS-DOS'\n-6D4E9E Extract Zip Spec      14 (20) '2.0'\n-6D4E9F Extract OS            00 (0) 'MS-DOS'\n-6D4EA0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4EA2 Compression Method    0000 (0) 'Stored'\n-6D4EA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4EA8 CRC                   9EFE4E67 (2667466343)\n-6D4EAC Compressed Size       00000EDF (3807)\n-6D4EB0 Uncompressed Size     00000EDF (3807)\n-6D4EB4 Filename Length       003B (59)\n-6D4EB6 Extra Length          0009 (9)\n-6D4EB8 Comment Length        0000 (0)\n-6D4EBA Disk Start            0000 (0)\n-6D4EBC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4EBE Ext File Attributes   00000000 (0)\n-6D4EC2 Local Header Offset   000B1B52 (727890)\n-6D4EC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4EC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4F01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4F03   Length              0005 (5)\n-6D4F05   Flags               01 (1) 'Modification'\n-6D4F06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4F0A CENTRAL HEADER #351   02014B50 (33639248)\n-6D4F0E Created Zip Spec      14 (20) '2.0'\n-6D4F0F Created OS            00 (0) 'MS-DOS'\n-6D4F10 Extract Zip Spec      14 (20) '2.0'\n-6D4F11 Extract OS            00 (0) 'MS-DOS'\n-6D4F12 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4F14 Compression Method    0000 (0) 'Stored'\n-6D4F16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4F1A CRC                   CC968FE2 (3432419298)\n-6D4F1E Compressed Size       00001758 (5976)\n-6D4F22 Uncompressed Size     00001758 (5976)\n-6D4F26 Filename Length       0038 (56)\n-6D4F28 Extra Length          0009 (9)\n-6D4F2A Comment Length        0000 (0)\n-6D4F2C Disk Start            0000 (0)\n-6D4F2E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4F30 Ext File Attributes   00000000 (0)\n-6D4F34 Local Header Offset   000B2AA3 (731811)\n-6D4F38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4F38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4F70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4F72   Length              0005 (5)\n-6D4F74   Flags               01 (1) 'Modification'\n-6D4F75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4F79 CENTRAL HEADER #352   02014B50 (33639248)\n-6D4F7D Created Zip Spec      14 (20) '2.0'\n-6D4F7E Created OS            00 (0) 'MS-DOS'\n-6D4F7F Extract Zip Spec      14 (20) '2.0'\n-6D4F80 Extract OS            00 (0) 'MS-DOS'\n-6D4F81 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4F83 Compression Method    0000 (0) 'Stored'\n-6D4F85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4F89 CRC                   42CFBA07 (1120909831)\n-6D4F8D Compressed Size       00016026 (90150)\n-6D4F91 Uncompressed Size     00016026 (90150)\n-6D4F95 Filename Length       0034 (52)\n-6D4F97 Extra Length          0009 (9)\n-6D4F99 Comment Length        0000 (0)\n-6D4F9B Disk Start            0000 (0)\n-6D4F9D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D4F9F Ext File Attributes   00000000 (0)\n-6D4FA3 Local Header Offset   000B426A (737898)\n-6D4FA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D4FA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D4FDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D4FDD   Length              0005 (5)\n-6D4FDF   Flags               01 (1) 'Modification'\n-6D4FE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D4FE4 CENTRAL HEADER #353   02014B50 (33639248)\n-6D4FE8 Created Zip Spec      14 (20) '2.0'\n-6D4FE9 Created OS            00 (0) 'MS-DOS'\n-6D4FEA Extract Zip Spec      14 (20) '2.0'\n-6D4FEB Extract OS            00 (0) 'MS-DOS'\n-6D4FEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D4FEE Compression Method    0000 (0) 'Stored'\n-6D4FF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D4FF4 CRC                   038157DF (58808287)\n-6D4FF8 Compressed Size       00009F03 (40707)\n-6D4FFC Uncompressed Size     00009F03 (40707)\n-6D5000 Filename Length       0035 (53)\n-6D5002 Extra Length          0009 (9)\n-6D5004 Comment Length        0000 (0)\n-6D5006 Disk Start            0000 (0)\n-6D5008 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D500A Ext File Attributes   00000000 (0)\n-6D500E Local Header Offset   000CA2FB (828155)\n-6D5012 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5012: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5047 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5049   Length              0005 (5)\n-6D504B   Flags               01 (1) 'Modification'\n-6D504C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5050 CENTRAL HEADER #354   02014B50 (33639248)\n-6D5054 Created Zip Spec      14 (20) '2.0'\n-6D5055 Created OS            00 (0) 'MS-DOS'\n-6D5056 Extract Zip Spec      14 (20) '2.0'\n-6D5057 Extract OS            00 (0) 'MS-DOS'\n-6D5058 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D505A Compression Method    0000 (0) 'Stored'\n-6D505C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5060 CRC                   FF195881 (4279851137)\n-6D5064 Compressed Size       00001388 (5000)\n-6D5068 Uncompressed Size     00001388 (5000)\n-6D506C Filename Length       003D (61)\n-6D506E Extra Length          0009 (9)\n-6D5070 Comment Length        0000 (0)\n-6D5072 Disk Start            0000 (0)\n-6D5074 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5076 Ext File Attributes   00000000 (0)\n-6D507A Local Header Offset   000D426A (868970)\n-6D507E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D507E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D50BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D50BD   Length              0005 (5)\n-6D50BF   Flags               01 (1) 'Modification'\n-6D50C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D50C4 CENTRAL HEADER #355   02014B50 (33639248)\n-6D50C8 Created Zip Spec      14 (20) '2.0'\n-6D50C9 Created OS            00 (0) 'MS-DOS'\n-6D50CA Extract Zip Spec      14 (20) '2.0'\n-6D50CB Extract OS            00 (0) 'MS-DOS'\n-6D50CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D50CE Compression Method    0000 (0) 'Stored'\n-6D50D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D50D4 CRC                   8611C8ED (2249312493)\n-6D50D8 Compressed Size       00000D39 (3385)\n-6D50DC Uncompressed Size     00000D39 (3385)\n-6D50E0 Filename Length       003E (62)\n-6D50E2 Extra Length          0009 (9)\n-6D50E4 Comment Length        0000 (0)\n-6D50E6 Disk Start            0000 (0)\n-6D50E8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D50EA Ext File Attributes   00000000 (0)\n-6D50EE Local Header Offset   000D5666 (874086)\n-6D50F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D50F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5130 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5132   Length              0005 (5)\n-6D5134   Flags               01 (1) 'Modification'\n-6D5135   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5139 CENTRAL HEADER #356   02014B50 (33639248)\n-6D513D Created Zip Spec      14 (20) '2.0'\n-6D513E Created OS            00 (0) 'MS-DOS'\n-6D513F Extract Zip Spec      14 (20) '2.0'\n-6D5140 Extract OS            00 (0) 'MS-DOS'\n-6D5141 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5143 Compression Method    0000 (0) 'Stored'\n-6D5145 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5149 CRC                   654FFB26 (1699740454)\n-6D514D Compressed Size       000012CA (4810)\n-6D5151 Uncompressed Size     000012CA (4810)\n-6D5155 Filename Length       003E (62)\n-6D5157 Extra Length          0009 (9)\n-6D5159 Comment Length        0000 (0)\n-6D515B Disk Start            0000 (0)\n-6D515D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D515F Ext File Attributes   00000000 (0)\n-6D5163 Local Header Offset   000D6414 (877588)\n-6D5167 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5167: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D51A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D51A7   Length              0005 (5)\n-6D51A9   Flags               01 (1) 'Modification'\n-6D51AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D51AE CENTRAL HEADER #357   02014B50 (33639248)\n-6D51B2 Created Zip Spec      14 (20) '2.0'\n-6D51B3 Created OS            00 (0) 'MS-DOS'\n-6D51B4 Extract Zip Spec      14 (20) '2.0'\n-6D51B5 Extract OS            00 (0) 'MS-DOS'\n-6D51B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D51B8 Compression Method    0000 (0) 'Stored'\n-6D51BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D51BE CRC                   D684F652 (3599038034)\n-6D51C2 Compressed Size       0000127F (4735)\n-6D51C6 Uncompressed Size     0000127F (4735)\n-6D51CA Filename Length       003F (63)\n-6D51CC Extra Length          0009 (9)\n-6D51CE Comment Length        0000 (0)\n-6D51D0 Disk Start            0000 (0)\n-6D51D2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D51D4 Ext File Attributes   00000000 (0)\n-6D51D8 Local Header Offset   000D7753 (882515)\n-6D51DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D51DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D521B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D521D   Length              0005 (5)\n-6D521F   Flags               01 (1) 'Modification'\n-6D5220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5224 CENTRAL HEADER #358   02014B50 (33639248)\n-6D5228 Created Zip Spec      14 (20) '2.0'\n-6D5229 Created OS            00 (0) 'MS-DOS'\n-6D522A Extract Zip Spec      14 (20) '2.0'\n-6D522B Extract OS            00 (0) 'MS-DOS'\n-6D522C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D522E Compression Method    0000 (0) 'Stored'\n-6D5230 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5234 CRC                   61E4315C (1642344796)\n-6D5238 Compressed Size       0000E195 (57749)\n-6D523C Uncompressed Size     0000E195 (57749)\n-6D5240 Filename Length       0038 (56)\n-6D5242 Extra Length          0009 (9)\n-6D5244 Comment Length        0000 (0)\n-6D5246 Disk Start            0000 (0)\n-6D5248 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D524A Ext File Attributes   00000000 (0)\n-6D524E Local Header Offset   000D8A48 (887368)\n-6D5252 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5252: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D528A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D528C   Length              0005 (5)\n-6D528E   Flags               01 (1) 'Modification'\n-6D528F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5293 CENTRAL HEADER #359   02014B50 (33639248)\n-6D5297 Created Zip Spec      14 (20) '2.0'\n-6D5298 Created OS            00 (0) 'MS-DOS'\n-6D5299 Extract Zip Spec      14 (20) '2.0'\n-6D529A Extract OS            00 (0) 'MS-DOS'\n-6D529B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D529D Compression Method    0000 (0) 'Stored'\n-6D529F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D52A3 CRC                   9B537823 (2605938723)\n-6D52A7 Compressed Size       00000C42 (3138)\n-6D52AB Uncompressed Size     00000C42 (3138)\n-6D52AF Filename Length       0036 (54)\n-6D52B1 Extra Length          0009 (9)\n-6D52B3 Comment Length        0000 (0)\n-6D52B5 Disk Start            0000 (0)\n-6D52B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D52B9 Ext File Attributes   00000000 (0)\n-6D52BD Local Header Offset   000E6C4C (945228)\n-6D52C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D52C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D52F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D52F9   Length              0005 (5)\n-6D52FB   Flags               01 (1) 'Modification'\n-6D52FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5300 CENTRAL HEADER #360   02014B50 (33639248)\n-6D5304 Created Zip Spec      14 (20) '2.0'\n-6D5305 Created OS            00 (0) 'MS-DOS'\n-6D5306 Extract Zip Spec      14 (20) '2.0'\n-6D5307 Extract OS            00 (0) 'MS-DOS'\n-6D5308 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D530A Compression Method    0000 (0) 'Stored'\n-6D530C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5310 CRC                   091B09EC (152766956)\n-6D5314 Compressed Size       00000B45 (2885)\n-6D5318 Uncompressed Size     00000B45 (2885)\n-6D531C Filename Length       003C (60)\n-6D531E Extra Length          0009 (9)\n-6D5320 Comment Length        0000 (0)\n-6D5322 Disk Start            0000 (0)\n-6D5324 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5326 Ext File Attributes   00000000 (0)\n-6D532A Local Header Offset   000E78FB (948475)\n-6D532E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D532E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D536A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D536C   Length              0005 (5)\n-6D536E   Flags               01 (1) 'Modification'\n-6D536F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5373 CENTRAL HEADER #361   02014B50 (33639248)\n-6D5377 Created Zip Spec      14 (20) '2.0'\n-6D5378 Created OS            00 (0) 'MS-DOS'\n-6D5379 Extract Zip Spec      14 (20) '2.0'\n-6D537A Extract OS            00 (0) 'MS-DOS'\n-6D537B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D537D Compression Method    0000 (0) 'Stored'\n-6D537F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5383 CRC                   4654378B (1179924363)\n-6D5387 Compressed Size       0000092E (2350)\n-6D538B Uncompressed Size     0000092E (2350)\n-6D538F Filename Length       0034 (52)\n-6D5391 Extra Length          0009 (9)\n-6D5393 Comment Length        0000 (0)\n-6D5395 Disk Start            0000 (0)\n-6D5397 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5399 Ext File Attributes   00000000 (0)\n-6D539D Local Header Offset   000E84B3 (951475)\n-6D53A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D53A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D53D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D53D7   Length              0005 (5)\n-6D53D9   Flags               01 (1) 'Modification'\n-6D53DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D53DE CENTRAL HEADER #362   02014B50 (33639248)\n-6D53E2 Created Zip Spec      14 (20) '2.0'\n-6D53E3 Created OS            00 (0) 'MS-DOS'\n-6D53E4 Extract Zip Spec      14 (20) '2.0'\n-6D53E5 Extract OS            00 (0) 'MS-DOS'\n-6D53E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D53E8 Compression Method    0000 (0) 'Stored'\n-6D53EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D53EE CRC                   7366BE52 (1936113234)\n-6D53F2 Compressed Size       0000A298 (41624)\n-6D53F6 Uncompressed Size     0000A298 (41624)\n-6D53FA Filename Length       0033 (51)\n-6D53FC Extra Length          0009 (9)\n-6D53FE Comment Length        0000 (0)\n-6D5400 Disk Start            0000 (0)\n-6D5402 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5404 Ext File Attributes   00000000 (0)\n-6D5408 Local Header Offset   000E8E4C (953932)\n-6D540C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D540C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D543F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5441   Length              0005 (5)\n-6D5443   Flags               01 (1) 'Modification'\n-6D5444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5448 CENTRAL HEADER #363   02014B50 (33639248)\n-6D544C Created Zip Spec      14 (20) '2.0'\n-6D544D Created OS            00 (0) 'MS-DOS'\n-6D544E Extract Zip Spec      14 (20) '2.0'\n-6D544F Extract OS            00 (0) 'MS-DOS'\n-6D5450 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5452 Compression Method    0000 (0) 'Stored'\n-6D5454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5458 CRC                   968E88D0 (2525923536)\n-6D545C Compressed Size       00000E0E (3598)\n-6D5460 Uncompressed Size     00000E0E (3598)\n-6D5464 Filename Length       003A (58)\n-6D5466 Extra Length          0009 (9)\n-6D5468 Comment Length        0000 (0)\n-6D546A Disk Start            0000 (0)\n-6D546C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D546E Ext File Attributes   00000000 (0)\n-6D5472 Local Header Offset   000F314E (995662)\n-6D5476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D54B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D54B2   Length              0005 (5)\n-6D54B4   Flags               01 (1) 'Modification'\n-6D54B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D54B9 CENTRAL HEADER #364   02014B50 (33639248)\n-6D54BD Created Zip Spec      14 (20) '2.0'\n-6D54BE Created OS            00 (0) 'MS-DOS'\n-6D54BF Extract Zip Spec      14 (20) '2.0'\n-6D54C0 Extract OS            00 (0) 'MS-DOS'\n-6D54C1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D54C3 Compression Method    0000 (0) 'Stored'\n-6D54C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D54C9 CRC                   57F2E114 (1475535124)\n-6D54CD Compressed Size       00005AB2 (23218)\n-6D54D1 Uncompressed Size     00005AB2 (23218)\n-6D54D5 Filename Length       0034 (52)\n-6D54D7 Extra Length          0009 (9)\n-6D54D9 Comment Length        0000 (0)\n-6D54DB Disk Start            0000 (0)\n-6D54DD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D54DF Ext File Attributes   00000000 (0)\n-6D54E3 Local Header Offset   000F3FCD (999373)\n-6D54E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D54E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D551B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D551D   Length              0005 (5)\n-6D551F   Flags               01 (1) 'Modification'\n-6D5520   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5524 CENTRAL HEADER #365   02014B50 (33639248)\n-6D5528 Created Zip Spec      14 (20) '2.0'\n-6D5529 Created OS            00 (0) 'MS-DOS'\n-6D552A Extract Zip Spec      14 (20) '2.0'\n-6D552B Extract OS            00 (0) 'MS-DOS'\n-6D552C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D552E Compression Method    0000 (0) 'Stored'\n-6D5530 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5534 CRC                   14C32F61 (348335969)\n-6D5538 Compressed Size       00000D46 (3398)\n-6D553C Uncompressed Size     00000D46 (3398)\n-6D5540 Filename Length       003F (63)\n-6D5542 Extra Length          0009 (9)\n-6D5544 Comment Length        0000 (0)\n-6D5546 Disk Start            0000 (0)\n-6D5548 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D554A Ext File Attributes   00000000 (0)\n-6D554E Local Header Offset   000F9AEA (1022698)\n-6D5552 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5552: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5593   Length              0005 (5)\n-6D5595   Flags               01 (1) 'Modification'\n-6D5596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D559A CENTRAL HEADER #366   02014B50 (33639248)\n-6D559E Created Zip Spec      14 (20) '2.0'\n-6D559F Created OS            00 (0) 'MS-DOS'\n-6D55A0 Extract Zip Spec      14 (20) '2.0'\n-6D55A1 Extract OS            00 (0) 'MS-DOS'\n-6D55A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D55A4 Compression Method    0000 (0) 'Stored'\n-6D55A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D55AA CRC                   69B75EA9 (1773625001)\n-6D55AE Compressed Size       00000E67 (3687)\n-6D55B2 Uncompressed Size     00000E67 (3687)\n-6D55B6 Filename Length       0034 (52)\n-6D55B8 Extra Length          0009 (9)\n-6D55BA Comment Length        0000 (0)\n-6D55BC Disk Start            0000 (0)\n-6D55BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D55C0 Ext File Attributes   00000000 (0)\n-6D55C4 Local Header Offset   000FA8A6 (1026214)\n-6D55C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D55C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D55FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D55FE   Length              0005 (5)\n-6D5600   Flags               01 (1) 'Modification'\n-6D5601   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5605 CENTRAL HEADER #367   02014B50 (33639248)\n-6D5609 Created Zip Spec      14 (20) '2.0'\n-6D560A Created OS            00 (0) 'MS-DOS'\n-6D560B Extract Zip Spec      14 (20) '2.0'\n-6D560C Extract OS            00 (0) 'MS-DOS'\n-6D560D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D560F Compression Method    0000 (0) 'Stored'\n-6D5611 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5615 CRC                   265DEF91 (643690385)\n-6D5619 Compressed Size       0000098C (2444)\n-6D561D Uncompressed Size     0000098C (2444)\n-6D5621 Filename Length       003A (58)\n-6D5623 Extra Length          0009 (9)\n-6D5625 Comment Length        0000 (0)\n-6D5627 Disk Start            0000 (0)\n-6D5629 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D562B Ext File Attributes   00000000 (0)\n-6D562F Local Header Offset   000FB778 (1030008)\n-6D5633 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5633: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D566D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D566F   Length              0005 (5)\n-6D5671   Flags               01 (1) 'Modification'\n-6D5672   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5676 CENTRAL HEADER #368   02014B50 (33639248)\n-6D567A Created Zip Spec      14 (20) '2.0'\n-6D567B Created OS            00 (0) 'MS-DOS'\n-6D567C Extract Zip Spec      14 (20) '2.0'\n-6D567D Extract OS            00 (0) 'MS-DOS'\n-6D567E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5680 Compression Method    0000 (0) 'Stored'\n-6D5682 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5686 CRC                   AC539B8F (2891160463)\n-6D568A Compressed Size       00000A07 (2567)\n-6D568E Uncompressed Size     00000A07 (2567)\n-6D5692 Filename Length       003C (60)\n-6D5694 Extra Length          0009 (9)\n-6D5696 Comment Length        0000 (0)\n-6D5698 Disk Start            0000 (0)\n-6D569A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D569C Ext File Attributes   00000000 (0)\n-6D56A0 Local Header Offset   000FC175 (1032565)\n-6D56A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D56A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D56E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D56E2   Length              0005 (5)\n-6D56E4   Flags               01 (1) 'Modification'\n-6D56E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D56E9 CENTRAL HEADER #369   02014B50 (33639248)\n-6D56ED Created Zip Spec      14 (20) '2.0'\n-6D56EE Created OS            00 (0) 'MS-DOS'\n-6D56EF Extract Zip Spec      14 (20) '2.0'\n-6D56F0 Extract OS            00 (0) 'MS-DOS'\n-6D56F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D56F3 Compression Method    0000 (0) 'Stored'\n-6D56F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D56F9 CRC                   60D7241E (1624712222)\n-6D56FD Compressed Size       000016A3 (5795)\n-6D5701 Uncompressed Size     000016A3 (5795)\n-6D5705 Filename Length       003D (61)\n-6D5707 Extra Length          0009 (9)\n-6D5709 Comment Length        0000 (0)\n-6D570B Disk Start            0000 (0)\n-6D570D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D570F Ext File Attributes   00000000 (0)\n-6D5713 Local Header Offset   000FCBEF (1035247)\n-6D5717 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5717: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5754 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5756   Length              0005 (5)\n-6D5758   Flags               01 (1) 'Modification'\n-6D5759   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D575D CENTRAL HEADER #370   02014B50 (33639248)\n-6D5761 Created Zip Spec      14 (20) '2.0'\n-6D5762 Created OS            00 (0) 'MS-DOS'\n-6D5763 Extract Zip Spec      14 (20) '2.0'\n-6D5764 Extract OS            00 (0) 'MS-DOS'\n-6D5765 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5767 Compression Method    0000 (0) 'Stored'\n-6D5769 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D576D CRC                   52E473B9 (1390703545)\n-6D5771 Compressed Size       0000131F (4895)\n-6D5775 Uncompressed Size     0000131F (4895)\n-6D5779 Filename Length       003E (62)\n-6D577B Extra Length          0009 (9)\n-6D577D Comment Length        0000 (0)\n-6D577F Disk Start            0000 (0)\n-6D5781 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5783 Ext File Attributes   00000000 (0)\n-6D5787 Local Header Offset   000FE306 (1041158)\n-6D578B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D578B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D57C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D57CB   Length              0005 (5)\n-6D57CD   Flags               01 (1) 'Modification'\n-6D57CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D57D2 CENTRAL HEADER #371   02014B50 (33639248)\n-6D57D6 Created Zip Spec      14 (20) '2.0'\n-6D57D7 Created OS            00 (0) 'MS-DOS'\n-6D57D8 Extract Zip Spec      14 (20) '2.0'\n-6D57D9 Extract OS            00 (0) 'MS-DOS'\n-6D57DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D57DC Compression Method    0000 (0) 'Stored'\n-6D57DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D57E2 CRC                   430F5283 (1125077635)\n-6D57E6 Compressed Size       00000BD7 (3031)\n-6D57EA Uncompressed Size     00000BD7 (3031)\n-6D57EE Filename Length       003E (62)\n-6D57F0 Extra Length          0009 (9)\n-6D57F2 Comment Length        0000 (0)\n-6D57F4 Disk Start            0000 (0)\n-6D57F6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D57F8 Ext File Attributes   00000000 (0)\n-6D57FC Local Header Offset   000FF69A (1046170)\n-6D5800 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5800: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D583E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5840   Length              0005 (5)\n-6D5842   Flags               01 (1) 'Modification'\n-6D5843   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5847 CENTRAL HEADER #372   02014B50 (33639248)\n-6D584B Created Zip Spec      14 (20) '2.0'\n-6D584C Created OS            00 (0) 'MS-DOS'\n-6D584D Extract Zip Spec      14 (20) '2.0'\n-6D584E Extract OS            00 (0) 'MS-DOS'\n-6D584F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5851 Compression Method    0000 (0) 'Stored'\n-6D5853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5857 CRC                   66243DE3 (1713651171)\n-6D585B Compressed Size       00000AB0 (2736)\n-6D585F Uncompressed Size     00000AB0 (2736)\n-6D5863 Filename Length       0039 (57)\n-6D5865 Extra Length          0009 (9)\n-6D5867 Comment Length        0000 (0)\n-6D5869 Disk Start            0000 (0)\n-6D586B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D586D Ext File Attributes   00000000 (0)\n-6D5871 Local Header Offset   001002E6 (1049318)\n-6D5875 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5875: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D58AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D58B0   Length              0005 (5)\n-6D58B2   Flags               01 (1) 'Modification'\n-6D58B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D58B7 CENTRAL HEADER #373   02014B50 (33639248)\n-6D58BB Created Zip Spec      14 (20) '2.0'\n-6D58BC Created OS            00 (0) 'MS-DOS'\n-6D58BD Extract Zip Spec      14 (20) '2.0'\n-6D58BE Extract OS            00 (0) 'MS-DOS'\n-6D58BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D58C1 Compression Method    0000 (0) 'Stored'\n-6D58C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D58C7 CRC                   1BFC238A (469509002)\n-6D58CB Compressed Size       00000A2F (2607)\n-6D58CF Uncompressed Size     00000A2F (2607)\n-6D58D3 Filename Length       003E (62)\n-6D58D5 Extra Length          0009 (9)\n-6D58D7 Comment Length        0000 (0)\n-6D58D9 Disk Start            0000 (0)\n-6D58DB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D58DD Ext File Attributes   00000000 (0)\n-6D58E1 Local Header Offset   00100E06 (1052166)\n-6D58E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D58E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5923 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5925   Length              0005 (5)\n-6D5927   Flags               01 (1) 'Modification'\n-6D5928   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D592C CENTRAL HEADER #374   02014B50 (33639248)\n-6D5930 Created Zip Spec      14 (20) '2.0'\n-6D5931 Created OS            00 (0) 'MS-DOS'\n-6D5932 Extract Zip Spec      14 (20) '2.0'\n-6D5933 Extract OS            00 (0) 'MS-DOS'\n-6D5934 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5936 Compression Method    0000 (0) 'Stored'\n-6D5938 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D593C CRC                   2E60A6BB (778086075)\n-6D5940 Compressed Size       00000B99 (2969)\n-6D5944 Uncompressed Size     00000B99 (2969)\n-6D5948 Filename Length       003C (60)\n-6D594A Extra Length          0009 (9)\n-6D594C Comment Length        0000 (0)\n-6D594E Disk Start            0000 (0)\n-6D5950 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5952 Ext File Attributes   00000000 (0)\n-6D5956 Local Header Offset   001018AA (1054890)\n-6D595A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D595A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5996 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5998   Length              0005 (5)\n-6D599A   Flags               01 (1) 'Modification'\n-6D599B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D599F CENTRAL HEADER #375   02014B50 (33639248)\n-6D59A3 Created Zip Spec      14 (20) '2.0'\n-6D59A4 Created OS            00 (0) 'MS-DOS'\n-6D59A5 Extract Zip Spec      14 (20) '2.0'\n-6D59A6 Extract OS            00 (0) 'MS-DOS'\n-6D59A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D59A9 Compression Method    0000 (0) 'Stored'\n-6D59AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D59AF CRC                   0F4C49C0 (256657856)\n-6D59B3 Compressed Size       00000BEC (3052)\n-6D59B7 Uncompressed Size     00000BEC (3052)\n-6D59BB Filename Length       0039 (57)\n-6D59BD Extra Length          0009 (9)\n-6D59BF Comment Length        0000 (0)\n-6D59C1 Disk Start            0000 (0)\n-6D59C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D59C5 Ext File Attributes   00000000 (0)\n-6D59C9 Local Header Offset   001024B6 (1057974)\n-6D59CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D59CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5A06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5A08   Length              0005 (5)\n-6D5A0A   Flags               01 (1) 'Modification'\n-6D5A0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5A0F CENTRAL HEADER #376   02014B50 (33639248)\n-6D5A13 Created Zip Spec      14 (20) '2.0'\n-6D5A14 Created OS            00 (0) 'MS-DOS'\n-6D5A15 Extract Zip Spec      14 (20) '2.0'\n-6D5A16 Extract OS            00 (0) 'MS-DOS'\n-6D5A17 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5A19 Compression Method    0000 (0) 'Stored'\n-6D5A1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5A1F CRC                   FA00D04F (4194357327)\n-6D5A23 Compressed Size       00006112 (24850)\n-6D5A27 Uncompressed Size     00006112 (24850)\n-6D5A2B Filename Length       0037 (55)\n-6D5A2D Extra Length          0009 (9)\n-6D5A2F Comment Length        0000 (0)\n-6D5A31 Disk Start            0000 (0)\n-6D5A33 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5A35 Ext File Attributes   00000000 (0)\n-6D5A39 Local Header Offset   00103112 (1061138)\n-6D5A3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5A3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5A74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5A76   Length              0005 (5)\n-6D5A78   Flags               01 (1) 'Modification'\n-6D5A79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5A7D CENTRAL HEADER #377   02014B50 (33639248)\n-6D5A81 Created Zip Spec      14 (20) '2.0'\n-6D5A82 Created OS            00 (0) 'MS-DOS'\n-6D5A83 Extract Zip Spec      14 (20) '2.0'\n-6D5A84 Extract OS            00 (0) 'MS-DOS'\n-6D5A85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5A87 Compression Method    0000 (0) 'Stored'\n-6D5A89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5A8D CRC                   339C3654 (865875540)\n-6D5A91 Compressed Size       0000360D (13837)\n-6D5A95 Uncompressed Size     0000360D (13837)\n-6D5A99 Filename Length       0035 (53)\n-6D5A9B Extra Length          0009 (9)\n-6D5A9D Comment Length        0000 (0)\n-6D5A9F Disk Start            0000 (0)\n-6D5AA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5AA3 Ext File Attributes   00000000 (0)\n-6D5AA7 Local Header Offset   00109292 (1086098)\n-6D5AAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5AAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5AE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5AE2   Length              0005 (5)\n-6D5AE4   Flags               01 (1) 'Modification'\n-6D5AE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5AE9 CENTRAL HEADER #378   02014B50 (33639248)\n-6D5AED Created Zip Spec      14 (20) '2.0'\n-6D5AEE Created OS            00 (0) 'MS-DOS'\n-6D5AEF Extract Zip Spec      14 (20) '2.0'\n-6D5AF0 Extract OS            00 (0) 'MS-DOS'\n-6D5AF1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5AF3 Compression Method    0000 (0) 'Stored'\n-6D5AF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5AF9 CRC                   6E56FB5B (1851194203)\n-6D5AFD Compressed Size       00000D09 (3337)\n-6D5B01 Uncompressed Size     00000D09 (3337)\n-6D5B05 Filename Length       0033 (51)\n-6D5B07 Extra Length          0009 (9)\n-6D5B09 Comment Length        0000 (0)\n-6D5B0B Disk Start            0000 (0)\n-6D5B0D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5B0F Ext File Attributes   00000000 (0)\n-6D5B13 Local Header Offset   0010C90B (1100043)\n-6D5B17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5B17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5B4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5B4C   Length              0005 (5)\n-6D5B4E   Flags               01 (1) 'Modification'\n-6D5B4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5B53 CENTRAL HEADER #379   02014B50 (33639248)\n-6D5B57 Created Zip Spec      14 (20) '2.0'\n-6D5B58 Created OS            00 (0) 'MS-DOS'\n-6D5B59 Extract Zip Spec      14 (20) '2.0'\n-6D5B5A Extract OS            00 (0) 'MS-DOS'\n-6D5B5B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5B5D Compression Method    0000 (0) 'Stored'\n-6D5B5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5B63 CRC                   D55758DF (3579271391)\n-6D5B67 Compressed Size       00000B49 (2889)\n-6D5B6B Uncompressed Size     00000B49 (2889)\n-6D5B6F Filename Length       0037 (55)\n-6D5B71 Extra Length          0009 (9)\n-6D5B73 Comment Length        0000 (0)\n-6D5B75 Disk Start            0000 (0)\n-6D5B77 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5B79 Ext File Attributes   00000000 (0)\n-6D5B7D Local Header Offset   0010D67E (1103486)\n-6D5B81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5B81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5BB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5BBA   Length              0005 (5)\n-6D5BBC   Flags               01 (1) 'Modification'\n-6D5BBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5BC1 CENTRAL HEADER #380   02014B50 (33639248)\n-6D5BC5 Created Zip Spec      14 (20) '2.0'\n-6D5BC6 Created OS            00 (0) 'MS-DOS'\n-6D5BC7 Extract Zip Spec      14 (20) '2.0'\n-6D5BC8 Extract OS            00 (0) 'MS-DOS'\n-6D5BC9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5BCB Compression Method    0000 (0) 'Stored'\n-6D5BCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5BD1 CRC                   67A3DA8B (1738791563)\n-6D5BD5 Compressed Size       0000174A (5962)\n-6D5BD9 Uncompressed Size     0000174A (5962)\n-6D5BDD Filename Length       0036 (54)\n-6D5BDF Extra Length          0009 (9)\n-6D5BE1 Comment Length        0000 (0)\n-6D5BE3 Disk Start            0000 (0)\n-6D5BE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5BE7 Ext File Attributes   00000000 (0)\n-6D5BEB Local Header Offset   0010E235 (1106485)\n-6D5BEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5BEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5C25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5C27   Length              0005 (5)\n-6D5C29   Flags               01 (1) 'Modification'\n-6D5C2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5C2E CENTRAL HEADER #381   02014B50 (33639248)\n-6D5C32 Created Zip Spec      14 (20) '2.0'\n-6D5C33 Created OS            00 (0) 'MS-DOS'\n-6D5C34 Extract Zip Spec      14 (20) '2.0'\n-6D5C35 Extract OS            00 (0) 'MS-DOS'\n-6D5C36 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5C38 Compression Method    0000 (0) 'Stored'\n-6D5C3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5C3E CRC                   BDD7BBBA (3185032122)\n-6D5C42 Compressed Size       00000E2C (3628)\n-6D5C46 Uncompressed Size     00000E2C (3628)\n-6D5C4A Filename Length       0034 (52)\n-6D5C4C Extra Length          0009 (9)\n-6D5C4E Comment Length        0000 (0)\n-6D5C50 Disk Start            0000 (0)\n-6D5C52 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5C54 Ext File Attributes   00000000 (0)\n-6D5C58 Local Header Offset   0010F9EC (1112556)\n-6D5C5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5C5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5C90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5C92   Length              0005 (5)\n-6D5C94   Flags               01 (1) 'Modification'\n-6D5C95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5C99 CENTRAL HEADER #382   02014B50 (33639248)\n-6D5C9D Created Zip Spec      14 (20) '2.0'\n-6D5C9E Created OS            00 (0) 'MS-DOS'\n-6D5C9F Extract Zip Spec      14 (20) '2.0'\n-6D5CA0 Extract OS            00 (0) 'MS-DOS'\n-6D5CA1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5CA3 Compression Method    0000 (0) 'Stored'\n-6D5CA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5CA9 CRC                   96A3AA02 (2527308290)\n-6D5CAD Compressed Size       00000D62 (3426)\n-6D5CB1 Uncompressed Size     00000D62 (3426)\n-6D5CB5 Filename Length       0039 (57)\n-6D5CB7 Extra Length          0009 (9)\n-6D5CB9 Comment Length        0000 (0)\n-6D5CBB Disk Start            0000 (0)\n-6D5CBD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5CBF Ext File Attributes   00000000 (0)\n-6D5CC3 Local Header Offset   00110883 (1116291)\n-6D5CC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5CC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5D00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5D02   Length              0005 (5)\n-6D5D04   Flags               01 (1) 'Modification'\n-6D5D05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5D09 CENTRAL HEADER #383   02014B50 (33639248)\n-6D5D0D Created Zip Spec      14 (20) '2.0'\n-6D5D0E Created OS            00 (0) 'MS-DOS'\n-6D5D0F Extract Zip Spec      14 (20) '2.0'\n-6D5D10 Extract OS            00 (0) 'MS-DOS'\n-6D5D11 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5D13 Compression Method    0000 (0) 'Stored'\n-6D5D15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5D19 CRC                   D08B9F5C (3498811228)\n-6D5D1D Compressed Size       00000A60 (2656)\n-6D5D21 Uncompressed Size     00000A60 (2656)\n-6D5D25 Filename Length       0037 (55)\n-6D5D27 Extra Length          0009 (9)\n-6D5D29 Comment Length        0000 (0)\n-6D5D2B Disk Start            0000 (0)\n-6D5D2D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5D2F Ext File Attributes   00000000 (0)\n-6D5D33 Local Header Offset   00111655 (1119829)\n-6D5D37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5D37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5D6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5D70   Length              0005 (5)\n-6D5D72   Flags               01 (1) 'Modification'\n-6D5D73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5D77 CENTRAL HEADER #384   02014B50 (33639248)\n-6D5D7B Created Zip Spec      14 (20) '2.0'\n-6D5D7C Created OS            00 (0) 'MS-DOS'\n-6D5D7D Extract Zip Spec      14 (20) '2.0'\n-6D5D7E Extract OS            00 (0) 'MS-DOS'\n-6D5D7F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5D81 Compression Method    0000 (0) 'Stored'\n-6D5D83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5D87 CRC                   17688FAA (392728490)\n-6D5D8B Compressed Size       000009A8 (2472)\n-6D5D8F Uncompressed Size     000009A8 (2472)\n-6D5D93 Filename Length       0031 (49)\n-6D5D95 Extra Length          0009 (9)\n-6D5D97 Comment Length        0000 (0)\n-6D5D99 Disk Start            0000 (0)\n-6D5D9B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5D9D Ext File Attributes   00000000 (0)\n-6D5DA1 Local Header Offset   00112123 (1122595)\n-6D5DA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5DA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5DD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5DD8   Length              0005 (5)\n-6D5DDA   Flags               01 (1) 'Modification'\n-6D5DDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5DDF CENTRAL HEADER #385   02014B50 (33639248)\n-6D5DE3 Created Zip Spec      14 (20) '2.0'\n-6D5DE4 Created OS            00 (0) 'MS-DOS'\n-6D5DE5 Extract Zip Spec      14 (20) '2.0'\n-6D5DE6 Extract OS            00 (0) 'MS-DOS'\n-6D5DE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5DE9 Compression Method    0000 (0) 'Stored'\n-6D5DEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5DEF CRC                   E14A6B5A (3779750746)\n-6D5DF3 Compressed Size       0000694D (26957)\n-6D5DF7 Uncompressed Size     0000694D (26957)\n-6D5DFB Filename Length       0038 (56)\n-6D5DFD Extra Length          0009 (9)\n-6D5DFF Comment Length        0000 (0)\n-6D5E01 Disk Start            0000 (0)\n-6D5E03 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5E05 Ext File Attributes   00000000 (0)\n-6D5E09 Local Header Offset   00112B33 (1125171)\n-6D5E0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5E0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5E45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5E47   Length              0005 (5)\n-6D5E49   Flags               01 (1) 'Modification'\n-6D5E4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5E4E CENTRAL HEADER #386   02014B50 (33639248)\n-6D5E52 Created Zip Spec      14 (20) '2.0'\n-6D5E53 Created OS            00 (0) 'MS-DOS'\n-6D5E54 Extract Zip Spec      14 (20) '2.0'\n-6D5E55 Extract OS            00 (0) 'MS-DOS'\n-6D5E56 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5E58 Compression Method    0000 (0) 'Stored'\n-6D5E5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5E5E CRC                   515E6059 (1365139545)\n-6D5E62 Compressed Size       0000106F (4207)\n-6D5E66 Uncompressed Size     0000106F (4207)\n-6D5E6A Filename Length       003A (58)\n-6D5E6C Extra Length          0009 (9)\n-6D5E6E Comment Length        0000 (0)\n-6D5E70 Disk Start            0000 (0)\n-6D5E72 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5E74 Ext File Attributes   00000000 (0)\n-6D5E78 Local Header Offset   001194EF (1152239)\n-6D5E7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5E7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5EB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5EB8   Length              0005 (5)\n-6D5EBA   Flags               01 (1) 'Modification'\n-6D5EBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5EBF CENTRAL HEADER #387   02014B50 (33639248)\n-6D5EC3 Created Zip Spec      14 (20) '2.0'\n-6D5EC4 Created OS            00 (0) 'MS-DOS'\n-6D5EC5 Extract Zip Spec      14 (20) '2.0'\n-6D5EC6 Extract OS            00 (0) 'MS-DOS'\n-6D5EC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5EC9 Compression Method    0000 (0) 'Stored'\n-6D5ECB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5ECF CRC                   5238B40F (1379447823)\n-6D5ED3 Compressed Size       00000CA6 (3238)\n-6D5ED7 Uncompressed Size     00000CA6 (3238)\n-6D5EDB Filename Length       0038 (56)\n-6D5EDD Extra Length          0009 (9)\n-6D5EDF Comment Length        0000 (0)\n-6D5EE1 Disk Start            0000 (0)\n-6D5EE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5EE5 Ext File Attributes   00000000 (0)\n-6D5EE9 Local Header Offset   0011A5CF (1156559)\n-6D5EED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5EED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5F25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5F27   Length              0005 (5)\n-6D5F29   Flags               01 (1) 'Modification'\n-6D5F2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5F2E CENTRAL HEADER #388   02014B50 (33639248)\n-6D5F32 Created Zip Spec      14 (20) '2.0'\n-6D5F33 Created OS            00 (0) 'MS-DOS'\n-6D5F34 Extract Zip Spec      14 (20) '2.0'\n-6D5F35 Extract OS            00 (0) 'MS-DOS'\n-6D5F36 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5F38 Compression Method    0000 (0) 'Stored'\n-6D5F3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5F3E CRC                   9A414F54 (2587971412)\n-6D5F42 Compressed Size       00000A4B (2635)\n-6D5F46 Uncompressed Size     00000A4B (2635)\n-6D5F4A Filename Length       0044 (68)\n-6D5F4C Extra Length          0009 (9)\n-6D5F4E Comment Length        0000 (0)\n-6D5F50 Disk Start            0000 (0)\n-6D5F52 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5F54 Ext File Attributes   00000000 (0)\n-6D5F58 Local Header Offset   0011B2E4 (1159908)\n-6D5F5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5F5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D5FA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D5FA2   Length              0005 (5)\n-6D5FA4   Flags               01 (1) 'Modification'\n-6D5FA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D5FA9 CENTRAL HEADER #389   02014B50 (33639248)\n-6D5FAD Created Zip Spec      14 (20) '2.0'\n-6D5FAE Created OS            00 (0) 'MS-DOS'\n-6D5FAF Extract Zip Spec      14 (20) '2.0'\n-6D5FB0 Extract OS            00 (0) 'MS-DOS'\n-6D5FB1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D5FB3 Compression Method    0000 (0) 'Stored'\n-6D5FB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D5FB9 CRC                   DD24EE95 (3710185109)\n-6D5FBD Compressed Size       00001008 (4104)\n-6D5FC1 Uncompressed Size     00001008 (4104)\n-6D5FC5 Filename Length       003E (62)\n-6D5FC7 Extra Length          0009 (9)\n-6D5FC9 Comment Length        0000 (0)\n-6D5FCB Disk Start            0000 (0)\n-6D5FCD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D5FCF Ext File Attributes   00000000 (0)\n-6D5FD3 Local Header Offset   0011BDAA (1162666)\n-6D5FD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D5FD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6015 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6017   Length              0005 (5)\n-6D6019   Flags               01 (1) 'Modification'\n-6D601A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D601E CENTRAL HEADER #390   02014B50 (33639248)\n-6D6022 Created Zip Spec      14 (20) '2.0'\n-6D6023 Created OS            00 (0) 'MS-DOS'\n-6D6024 Extract Zip Spec      14 (20) '2.0'\n-6D6025 Extract OS            00 (0) 'MS-DOS'\n-6D6026 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6028 Compression Method    0000 (0) 'Stored'\n-6D602A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D602E CRC                   00A2AB95 (10660757)\n-6D6032 Compressed Size       00000C7F (3199)\n-6D6036 Uncompressed Size     00000C7F (3199)\n-6D603A Filename Length       003C (60)\n-6D603C Extra Length          0009 (9)\n-6D603E Comment Length        0000 (0)\n-6D6040 Disk Start            0000 (0)\n-6D6042 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6044 Ext File Attributes   00000000 (0)\n-6D6048 Local Header Offset   0011CE27 (1166887)\n-6D604C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D604C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6088 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D608A   Length              0005 (5)\n-6D608C   Flags               01 (1) 'Modification'\n-6D608D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6091 CENTRAL HEADER #391   02014B50 (33639248)\n-6D6095 Created Zip Spec      14 (20) '2.0'\n-6D6096 Created OS            00 (0) 'MS-DOS'\n-6D6097 Extract Zip Spec      14 (20) '2.0'\n-6D6098 Extract OS            00 (0) 'MS-DOS'\n-6D6099 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D609B Compression Method    0000 (0) 'Stored'\n-6D609D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D60A1 CRC                   165EFEE5 (375324389)\n-6D60A5 Compressed Size       00000ABA (2746)\n-6D60A9 Uncompressed Size     00000ABA (2746)\n-6D60AD Filename Length       003A (58)\n-6D60AF Extra Length          0009 (9)\n-6D60B1 Comment Length        0000 (0)\n-6D60B3 Disk Start            0000 (0)\n-6D60B5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D60B7 Ext File Attributes   00000000 (0)\n-6D60BB Local Header Offset   0011DB19 (1170201)\n-6D60BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D60BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D60F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D60FB   Length              0005 (5)\n-6D60FD   Flags               01 (1) 'Modification'\n-6D60FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6102 CENTRAL HEADER #392   02014B50 (33639248)\n-6D6106 Created Zip Spec      14 (20) '2.0'\n-6D6107 Created OS            00 (0) 'MS-DOS'\n-6D6108 Extract Zip Spec      14 (20) '2.0'\n-6D6109 Extract OS            00 (0) 'MS-DOS'\n-6D610A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D610C Compression Method    0000 (0) 'Stored'\n-6D610E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6112 CRC                   E295C65E (3801466462)\n-6D6116 Compressed Size       0000026A (618)\n-6D611A Uncompressed Size     0000026A (618)\n-6D611E Filename Length       0037 (55)\n-6D6120 Extra Length          0009 (9)\n-6D6122 Comment Length        0000 (0)\n-6D6124 Disk Start            0000 (0)\n-6D6126 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6128 Ext File Attributes   00000000 (0)\n-6D612C Local Header Offset   0011E644 (1173060)\n-6D6130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6167 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6169   Length              0005 (5)\n-6D616B   Flags               01 (1) 'Modification'\n-6D616C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6170 CENTRAL HEADER #393   02014B50 (33639248)\n-6D6174 Created Zip Spec      14 (20) '2.0'\n-6D6175 Created OS            00 (0) 'MS-DOS'\n-6D6176 Extract Zip Spec      14 (20) '2.0'\n-6D6177 Extract OS            00 (0) 'MS-DOS'\n-6D6178 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D617A Compression Method    0000 (0) 'Stored'\n-6D617C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6180 CRC                   EA548F41 (3931410241)\n-6D6184 Compressed Size       00000CF9 (3321)\n-6D6188 Uncompressed Size     00000CF9 (3321)\n-6D618C Filename Length       0038 (56)\n-6D618E Extra Length          0009 (9)\n-6D6190 Comment Length        0000 (0)\n-6D6192 Disk Start            0000 (0)\n-6D6194 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6196 Ext File Attributes   00000000 (0)\n-6D619A Local Header Offset   0011E91C (1173788)\n-6D619E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D619E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D61D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D61D8   Length              0005 (5)\n-6D61DA   Flags               01 (1) 'Modification'\n-6D61DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D61DF CENTRAL HEADER #394   02014B50 (33639248)\n-6D61E3 Created Zip Spec      14 (20) '2.0'\n-6D61E4 Created OS            00 (0) 'MS-DOS'\n-6D61E5 Extract Zip Spec      14 (20) '2.0'\n-6D61E6 Extract OS            00 (0) 'MS-DOS'\n-6D61E7 General Purpose Flag  0000 (0)\n-6D61E9 Compression Method    0000 (0) 'Stored'\n-6D61EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D61EF CRC                   00000000 (0)\n-6D61F3 Compressed Size       00000000 (0)\n-6D61F7 Uncompressed Size     00000000 (0)\n-6D61FB Filename Length       0028 (40)\n-6D61FD Extra Length          0009 (9)\n-6D61FF Comment Length        0000 (0)\n-6D6201 Disk Start            0000 (0)\n-6D6203 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6205 Ext File Attributes   00000000 (0)\n-6D6209 Local Header Offset   0011F684 (1177220)\n-6D620D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D620D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6237   Length              0005 (5)\n-6D6239   Flags               01 (1) 'Modification'\n-6D623A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D623E CENTRAL HEADER #395   02014B50 (33639248)\n-6D6242 Created Zip Spec      14 (20) '2.0'\n-6D6243 Created OS            00 (0) 'MS-DOS'\n-6D6244 Extract Zip Spec      14 (20) '2.0'\n-6D6245 Extract OS            00 (0) 'MS-DOS'\n-6D6246 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6248 Compression Method    0000 (0) 'Stored'\n-6D624A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D624E CRC                   F75A753A (4149900602)\n-6D6252 Compressed Size       0000079E (1950)\n-6D6256 Uncompressed Size     0000079E (1950)\n-6D625A Filename Length       003B (59)\n-6D625C Extra Length          0009 (9)\n-6D625E Comment Length        0000 (0)\n-6D6260 Disk Start            0000 (0)\n-6D6262 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6264 Ext File Attributes   00000000 (0)\n-6D6268 Local Header Offset   0011F6D3 (1177299)\n-6D626C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D626C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D62A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D62A9   Length              0005 (5)\n-6D62AB   Flags               01 (1) 'Modification'\n-6D62AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D62B0 CENTRAL HEADER #396   02014B50 (33639248)\n-6D62B4 Created Zip Spec      14 (20) '2.0'\n-6D62B5 Created OS            00 (0) 'MS-DOS'\n-6D62B6 Extract Zip Spec      14 (20) '2.0'\n-6D62B7 Extract OS            00 (0) 'MS-DOS'\n-6D62B8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D62BA Compression Method    0000 (0) 'Stored'\n-6D62BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D62C0 CRC                   44EA1A2E (1156192814)\n-6D62C4 Compressed Size       000007A1 (1953)\n-6D62C8 Uncompressed Size     000007A1 (1953)\n-6D62CC Filename Length       003A (58)\n-6D62CE Extra Length          0009 (9)\n-6D62D0 Comment Length        0000 (0)\n-6D62D2 Disk Start            0000 (0)\n-6D62D4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D62D6 Ext File Attributes   00000000 (0)\n-6D62DA Local Header Offset   0011FEE3 (1179363)\n-6D62DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D62DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6318 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D631A   Length              0005 (5)\n-6D631C   Flags               01 (1) 'Modification'\n-6D631D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6321 CENTRAL HEADER #397   02014B50 (33639248)\n-6D6325 Created Zip Spec      14 (20) '2.0'\n-6D6326 Created OS            00 (0) 'MS-DOS'\n-6D6327 Extract Zip Spec      14 (20) '2.0'\n-6D6328 Extract OS            00 (0) 'MS-DOS'\n-6D6329 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D632B Compression Method    0000 (0) 'Stored'\n-6D632D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6331 CRC                   0EA48277 (245662327)\n-6D6335 Compressed Size       000007B2 (1970)\n-6D6339 Uncompressed Size     000007B2 (1970)\n-6D633D Filename Length       0040 (64)\n-6D633F Extra Length          0009 (9)\n-6D6341 Comment Length        0000 (0)\n-6D6343 Disk Start            0000 (0)\n-6D6345 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6347 Ext File Attributes   00000000 (0)\n-6D634B Local Header Offset   001206F5 (1181429)\n-6D634F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D634F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D638F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6391   Length              0005 (5)\n-6D6393   Flags               01 (1) 'Modification'\n-6D6394   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6398 CENTRAL HEADER #398   02014B50 (33639248)\n-6D639C Created Zip Spec      14 (20) '2.0'\n-6D639D Created OS            00 (0) 'MS-DOS'\n-6D639E Extract Zip Spec      14 (20) '2.0'\n-6D639F Extract OS            00 (0) 'MS-DOS'\n-6D63A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D63A2 Compression Method    0000 (0) 'Stored'\n-6D63A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D63A8 CRC                   4D63953A (1298371898)\n-6D63AC Compressed Size       0000081B (2075)\n-6D63B0 Uncompressed Size     0000081B (2075)\n-6D63B4 Filename Length       003C (60)\n-6D63B6 Extra Length          0009 (9)\n-6D63B8 Comment Length        0000 (0)\n-6D63BA Disk Start            0000 (0)\n-6D63BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D63BE Ext File Attributes   00000000 (0)\n-6D63C2 Local Header Offset   00120F1E (1183518)\n-6D63C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D63C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6402 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6404   Length              0005 (5)\n-6D6406   Flags               01 (1) 'Modification'\n-6D6407   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D640B CENTRAL HEADER #399   02014B50 (33639248)\n-6D640F Created Zip Spec      14 (20) '2.0'\n-6D6410 Created OS            00 (0) 'MS-DOS'\n-6D6411 Extract Zip Spec      14 (20) '2.0'\n-6D6412 Extract OS            00 (0) 'MS-DOS'\n-6D6413 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6415 Compression Method    0000 (0) 'Stored'\n-6D6417 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D641B CRC                   3ADD7788 (987592584)\n-6D641F Compressed Size       000007D9 (2009)\n-6D6423 Uncompressed Size     000007D9 (2009)\n-6D6427 Filename Length       0040 (64)\n-6D6429 Extra Length          0009 (9)\n-6D642B Comment Length        0000 (0)\n-6D642D Disk Start            0000 (0)\n-6D642F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6431 Ext File Attributes   00000000 (0)\n-6D6435 Local Header Offset   001217AC (1185708)\n-6D6439 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6439: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6479 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D647B   Length              0005 (5)\n-6D647D   Flags               01 (1) 'Modification'\n-6D647E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6482 CENTRAL HEADER #400   02014B50 (33639248)\n-6D6486 Created Zip Spec      14 (20) '2.0'\n-6D6487 Created OS            00 (0) 'MS-DOS'\n-6D6488 Extract Zip Spec      14 (20) '2.0'\n-6D6489 Extract OS            00 (0) 'MS-DOS'\n-6D648A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D648C Compression Method    0000 (0) 'Stored'\n-6D648E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6492 CRC                   0C426FFB (205680635)\n-6D6496 Compressed Size       000008A9 (2217)\n-6D649A Uncompressed Size     000008A9 (2217)\n-6D649E Filename Length       003C (60)\n-6D64A0 Extra Length          0009 (9)\n-6D64A2 Comment Length        0000 (0)\n-6D64A4 Disk Start            0000 (0)\n-6D64A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D64A8 Ext File Attributes   00000000 (0)\n-6D64AC Local Header Offset   00121FFC (1187836)\n-6D64B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D64B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D64EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D64EE   Length              0005 (5)\n-6D64F0   Flags               01 (1) 'Modification'\n-6D64F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D64F5 CENTRAL HEADER #401   02014B50 (33639248)\n-6D64F9 Created Zip Spec      14 (20) '2.0'\n-6D64FA Created OS            00 (0) 'MS-DOS'\n-6D64FB Extract Zip Spec      14 (20) '2.0'\n-6D64FC Extract OS            00 (0) 'MS-DOS'\n-6D64FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D64FF Compression Method    0000 (0) 'Stored'\n-6D6501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6505 CRC                   4BAE3F59 (1269710681)\n-6D6509 Compressed Size       00000792 (1938)\n-6D650D Uncompressed Size     00000792 (1938)\n-6D6511 Filename Length       003B (59)\n-6D6513 Extra Length          0009 (9)\n-6D6515 Comment Length        0000 (0)\n-6D6517 Disk Start            0000 (0)\n-6D6519 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D651B Ext File Attributes   00000000 (0)\n-6D651F Local Header Offset   00122918 (1190168)\n-6D6523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D655E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6560   Length              0005 (5)\n-6D6562   Flags               01 (1) 'Modification'\n-6D6563   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6567 CENTRAL HEADER #402   02014B50 (33639248)\n-6D656B Created Zip Spec      14 (20) '2.0'\n-6D656C Created OS            00 (0) 'MS-DOS'\n-6D656D Extract Zip Spec      14 (20) '2.0'\n-6D656E Extract OS            00 (0) 'MS-DOS'\n-6D656F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6571 Compression Method    0000 (0) 'Stored'\n-6D6573 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6577 CRC                   A4C4918F (2764345743)\n-6D657B Compressed Size       00000803 (2051)\n-6D657F Uncompressed Size     00000803 (2051)\n-6D6583 Filename Length       0041 (65)\n-6D6585 Extra Length          0009 (9)\n-6D6587 Comment Length        0000 (0)\n-6D6589 Disk Start            0000 (0)\n-6D658B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D658D Ext File Attributes   00000000 (0)\n-6D6591 Local Header Offset   0012311C (1192220)\n-6D6595 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6595: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D65D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D65D8   Length              0005 (5)\n-6D65DA   Flags               01 (1) 'Modification'\n-6D65DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D65DF CENTRAL HEADER #403   02014B50 (33639248)\n-6D65E3 Created Zip Spec      14 (20) '2.0'\n-6D65E4 Created OS            00 (0) 'MS-DOS'\n-6D65E5 Extract Zip Spec      14 (20) '2.0'\n-6D65E6 Extract OS            00 (0) 'MS-DOS'\n-6D65E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D65E9 Compression Method    0000 (0) 'Stored'\n-6D65EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D65EF CRC                   8696E439 (2258035769)\n-6D65F3 Compressed Size       000007F5 (2037)\n-6D65F7 Uncompressed Size     000007F5 (2037)\n-6D65FB Filename Length       003D (61)\n-6D65FD Extra Length          0009 (9)\n-6D65FF Comment Length        0000 (0)\n-6D6601 Disk Start            0000 (0)\n-6D6603 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6605 Ext File Attributes   00000000 (0)\n-6D6609 Local Header Offset   00123997 (1194391)\n-6D660D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D660D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D664A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D664C   Length              0005 (5)\n-6D664E   Flags               01 (1) 'Modification'\n-6D664F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6653 CENTRAL HEADER #404   02014B50 (33639248)\n-6D6657 Created Zip Spec      14 (20) '2.0'\n-6D6658 Created OS            00 (0) 'MS-DOS'\n-6D6659 Extract Zip Spec      14 (20) '2.0'\n-6D665A Extract OS            00 (0) 'MS-DOS'\n-6D665B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D665D Compression Method    0000 (0) 'Stored'\n-6D665F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6663 CRC                   28964A03 (680937987)\n-6D6667 Compressed Size       0000080F (2063)\n-6D666B Uncompressed Size     0000080F (2063)\n-6D666F Filename Length       0039 (57)\n-6D6671 Extra Length          0009 (9)\n-6D6673 Comment Length        0000 (0)\n-6D6675 Disk Start            0000 (0)\n-6D6677 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6679 Ext File Attributes   00000000 (0)\n-6D667D Local Header Offset   00124200 (1196544)\n-6D6681 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6681: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D66BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D66BC   Length              0005 (5)\n-6D66BE   Flags               01 (1) 'Modification'\n-6D66BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D66C3 CENTRAL HEADER #405   02014B50 (33639248)\n-6D66C7 Created Zip Spec      14 (20) '2.0'\n-6D66C8 Created OS            00 (0) 'MS-DOS'\n-6D66C9 Extract Zip Spec      14 (20) '2.0'\n-6D66CA Extract OS            00 (0) 'MS-DOS'\n-6D66CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D66CD Compression Method    0000 (0) 'Stored'\n-6D66CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D66D3 CRC                   9EA0D74F (2661341007)\n-6D66D7 Compressed Size       000006EF (1775)\n-6D66DB Uncompressed Size     000006EF (1775)\n-6D66DF Filename Length       0037 (55)\n-6D66E1 Extra Length          0009 (9)\n-6D66E3 Comment Length        0000 (0)\n-6D66E5 Disk Start            0000 (0)\n-6D66E7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D66E9 Ext File Attributes   00000000 (0)\n-6D66ED Local Header Offset   00124A7F (1198719)\n-6D66F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D66F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6728 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D672A   Length              0005 (5)\n-6D672C   Flags               01 (1) 'Modification'\n-6D672D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6731 CENTRAL HEADER #406   02014B50 (33639248)\n-6D6735 Created Zip Spec      14 (20) '2.0'\n-6D6736 Created OS            00 (0) 'MS-DOS'\n-6D6737 Extract Zip Spec      14 (20) '2.0'\n-6D6738 Extract OS            00 (0) 'MS-DOS'\n-6D6739 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D673B Compression Method    0000 (0) 'Stored'\n-6D673D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6741 CRC                   B957E47F (3109545087)\n-6D6745 Compressed Size       00000795 (1941)\n-6D6749 Uncompressed Size     00000795 (1941)\n-6D674D Filename Length       003C (60)\n-6D674F Extra Length          0009 (9)\n-6D6751 Comment Length        0000 (0)\n-6D6753 Disk Start            0000 (0)\n-6D6755 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6757 Ext File Attributes   00000000 (0)\n-6D675B Local Header Offset   001251DC (1200604)\n-6D675F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D675F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D679B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D679D   Length              0005 (5)\n-6D679F   Flags               01 (1) 'Modification'\n-6D67A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D67A4 CENTRAL HEADER #407   02014B50 (33639248)\n-6D67A8 Created Zip Spec      14 (20) '2.0'\n-6D67A9 Created OS            00 (0) 'MS-DOS'\n-6D67AA Extract Zip Spec      14 (20) '2.0'\n-6D67AB Extract OS            00 (0) 'MS-DOS'\n-6D67AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D67AE Compression Method    0000 (0) 'Stored'\n-6D67B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D67B4 CRC                   12627859 (308443225)\n-6D67B8 Compressed Size       00000705 (1797)\n-6D67BC Uncompressed Size     00000705 (1797)\n-6D67C0 Filename Length       0039 (57)\n-6D67C2 Extra Length          0009 (9)\n-6D67C4 Comment Length        0000 (0)\n-6D67C6 Disk Start            0000 (0)\n-6D67C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D67CA Ext File Attributes   00000000 (0)\n-6D67CE Local Header Offset   001259E4 (1202660)\n-6D67D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D67D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D680B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D680D   Length              0005 (5)\n-6D680F   Flags               01 (1) 'Modification'\n-6D6810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6814 CENTRAL HEADER #408   02014B50 (33639248)\n-6D6818 Created Zip Spec      14 (20) '2.0'\n-6D6819 Created OS            00 (0) 'MS-DOS'\n-6D681A Extract Zip Spec      14 (20) '2.0'\n-6D681B Extract OS            00 (0) 'MS-DOS'\n-6D681C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D681E Compression Method    0000 (0) 'Stored'\n-6D6820 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6824 CRC                   EE87A59D (4001867165)\n-6D6828 Compressed Size       000005C7 (1479)\n-6D682C Uncompressed Size     000005C7 (1479)\n-6D6830 Filename Length       003D (61)\n-6D6832 Extra Length          0009 (9)\n-6D6834 Comment Length        0000 (0)\n-6D6836 Disk Start            0000 (0)\n-6D6838 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D683A Ext File Attributes   00000000 (0)\n-6D683E Local Header Offset   00126159 (1204569)\n-6D6842 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6842: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D687F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6881   Length              0005 (5)\n-6D6883   Flags               01 (1) 'Modification'\n-6D6884   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6888 CENTRAL HEADER #409   02014B50 (33639248)\n-6D688C Created Zip Spec      14 (20) '2.0'\n-6D688D Created OS            00 (0) 'MS-DOS'\n-6D688E Extract Zip Spec      14 (20) '2.0'\n-6D688F Extract OS            00 (0) 'MS-DOS'\n-6D6890 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6892 Compression Method    0000 (0) 'Stored'\n-6D6894 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6898 CRC                   6A312F64 (1781608292)\n-6D689C Compressed Size       00000727 (1831)\n-6D68A0 Uncompressed Size     00000727 (1831)\n-6D68A4 Filename Length       003D (61)\n-6D68A6 Extra Length          0009 (9)\n-6D68A8 Comment Length        0000 (0)\n-6D68AA Disk Start            0000 (0)\n-6D68AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D68AE Ext File Attributes   00000000 (0)\n-6D68B2 Local Header Offset   00126794 (1206164)\n-6D68B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D68B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D68F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D68F5   Length              0005 (5)\n-6D68F7   Flags               01 (1) 'Modification'\n-6D68F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D68FC CENTRAL HEADER #410   02014B50 (33639248)\n-6D6900 Created Zip Spec      14 (20) '2.0'\n-6D6901 Created OS            00 (0) 'MS-DOS'\n-6D6902 Extract Zip Spec      14 (20) '2.0'\n-6D6903 Extract OS            00 (0) 'MS-DOS'\n-6D6904 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6906 Compression Method    0000 (0) 'Stored'\n-6D6908 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D690C CRC                   CA63D3D1 (3395539921)\n-6D6910 Compressed Size       00000A30 (2608)\n-6D6914 Uncompressed Size     00000A30 (2608)\n-6D6918 Filename Length       0040 (64)\n-6D691A Extra Length          0009 (9)\n-6D691C Comment Length        0000 (0)\n-6D691E Disk Start            0000 (0)\n-6D6920 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6922 Ext File Attributes   00000000 (0)\n-6D6926 Local Header Offset   00126F2F (1208111)\n-6D692A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D692A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D696A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D696C   Length              0005 (5)\n-6D696E   Flags               01 (1) 'Modification'\n-6D696F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6973 CENTRAL HEADER #411   02014B50 (33639248)\n-6D6977 Created Zip Spec      14 (20) '2.0'\n-6D6978 Created OS            00 (0) 'MS-DOS'\n-6D6979 Extract Zip Spec      14 (20) '2.0'\n-6D697A Extract OS            00 (0) 'MS-DOS'\n-6D697B General Purpose Flag  0000 (0)\n-6D697D Compression Method    0000 (0) 'Stored'\n-6D697F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6983 CRC                   00000000 (0)\n-6D6987 Compressed Size       00000000 (0)\n-6D698B Uncompressed Size     00000000 (0)\n-6D698F Filename Length       0028 (40)\n-6D6991 Extra Length          0009 (9)\n-6D6993 Comment Length        0000 (0)\n-6D6995 Disk Start            0000 (0)\n-6D6997 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6999 Ext File Attributes   00000000 (0)\n-6D699D Local Header Offset   001279D6 (1210838)\n-6D69A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D69A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D69C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D69CB   Length              0005 (5)\n-6D69CD   Flags               01 (1) 'Modification'\n-6D69CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D69D2 CENTRAL HEADER #412   02014B50 (33639248)\n-6D69D6 Created Zip Spec      14 (20) '2.0'\n-6D69D7 Created OS            00 (0) 'MS-DOS'\n-6D69D8 Extract Zip Spec      14 (20) '2.0'\n-6D69D9 Extract OS            00 (0) 'MS-DOS'\n-6D69DA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D69DC Compression Method    0000 (0) 'Stored'\n-6D69DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D69E2 CRC                   350B3EEE (889929454)\n-6D69E6 Compressed Size       00002E9D (11933)\n-6D69EA Uncompressed Size     00002E9D (11933)\n-6D69EE Filename Length       003B (59)\n-6D69F0 Extra Length          0009 (9)\n-6D69F2 Comment Length        0000 (0)\n-6D69F4 Disk Start            0000 (0)\n-6D69F6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D69F8 Ext File Attributes   00000000 (0)\n-6D69FC Local Header Offset   00127A25 (1210917)\n-6D6A00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6A00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6A3D   Length              0005 (5)\n-6D6A3F   Flags               01 (1) 'Modification'\n-6D6A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6A44 CENTRAL HEADER #413   02014B50 (33639248)\n-6D6A48 Created Zip Spec      14 (20) '2.0'\n-6D6A49 Created OS            00 (0) 'MS-DOS'\n-6D6A4A Extract Zip Spec      14 (20) '2.0'\n-6D6A4B Extract OS            00 (0) 'MS-DOS'\n-6D6A4C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6A4E Compression Method    0000 (0) 'Stored'\n-6D6A50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6A54 CRC                   FE2BC051 (4264280145)\n-6D6A58 Compressed Size       00002F6C (12140)\n-6D6A5C Uncompressed Size     00002F6C (12140)\n-6D6A60 Filename Length       003A (58)\n-6D6A62 Extra Length          0009 (9)\n-6D6A64 Comment Length        0000 (0)\n-6D6A66 Disk Start            0000 (0)\n-6D6A68 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6A6A Ext File Attributes   00000000 (0)\n-6D6A6E Local Header Offset   0012A934 (1222964)\n-6D6A72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6A72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6AAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6AAE   Length              0005 (5)\n-6D6AB0   Flags               01 (1) 'Modification'\n-6D6AB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6AB5 CENTRAL HEADER #414   02014B50 (33639248)\n-6D6AB9 Created Zip Spec      14 (20) '2.0'\n-6D6ABA Created OS            00 (0) 'MS-DOS'\n-6D6ABB Extract Zip Spec      14 (20) '2.0'\n-6D6ABC Extract OS            00 (0) 'MS-DOS'\n-6D6ABD General Purpose Flag  0000 (0)\n-6D6ABF Compression Method    0000 (0) 'Stored'\n-6D6AC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6AC5 CRC                   00000000 (0)\n-6D6AC9 Compressed Size       00000000 (0)\n-6D6ACD Uncompressed Size     00000000 (0)\n-6D6AD1 Filename Length       0024 (36)\n-6D6AD3 Extra Length          0009 (9)\n-6D6AD5 Comment Length        0000 (0)\n-6D6AD7 Disk Start            0000 (0)\n-6D6AD9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6ADB Ext File Attributes   00000000 (0)\n-6D6ADF Local Header Offset   0012D911 (1235217)\n-6D6AE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6AE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6B07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6B09   Length              0005 (5)\n-6D6B0B   Flags               01 (1) 'Modification'\n-6D6B0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6B10 CENTRAL HEADER #415   02014B50 (33639248)\n-6D6B14 Created Zip Spec      14 (20) '2.0'\n-6D6B15 Created OS            00 (0) 'MS-DOS'\n-6D6B16 Extract Zip Spec      14 (20) '2.0'\n-6D6B17 Extract OS            00 (0) 'MS-DOS'\n-6D6B18 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6B1A Compression Method    0000 (0) 'Stored'\n-6D6B1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6B20 CRC                   57AE068E (1471022734)\n-6D6B24 Compressed Size       00001AD7 (6871)\n-6D6B28 Uncompressed Size     00001AD7 (6871)\n-6D6B2C Filename Length       0037 (55)\n-6D6B2E Extra Length          0009 (9)\n-6D6B30 Comment Length        0000 (0)\n-6D6B32 Disk Start            0000 (0)\n-6D6B34 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6B36 Ext File Attributes   00000000 (0)\n-6D6B3A Local Header Offset   0012D95C (1235292)\n-6D6B3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6B3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6B75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6B77   Length              0005 (5)\n-6D6B79   Flags               01 (1) 'Modification'\n-6D6B7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6B7E CENTRAL HEADER #416   02014B50 (33639248)\n-6D6B82 Created Zip Spec      14 (20) '2.0'\n-6D6B83 Created OS            00 (0) 'MS-DOS'\n-6D6B84 Extract Zip Spec      14 (20) '2.0'\n-6D6B85 Extract OS            00 (0) 'MS-DOS'\n-6D6B86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6B88 Compression Method    0000 (0) 'Stored'\n-6D6B8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6B8E CRC                   1538A07E (356032638)\n-6D6B92 Compressed Size       00001ABD (6845)\n-6D6B96 Uncompressed Size     00001ABD (6845)\n-6D6B9A Filename Length       002F (47)\n-6D6B9C Extra Length          0009 (9)\n-6D6B9E Comment Length        0000 (0)\n-6D6BA0 Disk Start            0000 (0)\n-6D6BA2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6BA4 Ext File Attributes   00000000 (0)\n-6D6BA8 Local Header Offset   0012F4A1 (1242273)\n-6D6BAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6BAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6BDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6BDD   Length              0005 (5)\n-6D6BDF   Flags               01 (1) 'Modification'\n-6D6BE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6BE4 CENTRAL HEADER #417   02014B50 (33639248)\n-6D6BE8 Created Zip Spec      14 (20) '2.0'\n-6D6BE9 Created OS            00 (0) 'MS-DOS'\n-6D6BEA Extract Zip Spec      14 (20) '2.0'\n-6D6BEB Extract OS            00 (0) 'MS-DOS'\n-6D6BEC General Purpose Flag  0000 (0)\n-6D6BEE Compression Method    0000 (0) 'Stored'\n-6D6BF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6BF4 CRC                   00000000 (0)\n-6D6BF8 Compressed Size       00000000 (0)\n-6D6BFC Uncompressed Size     00000000 (0)\n-6D6C00 Filename Length       0012 (18)\n-6D6C02 Extra Length          0009 (9)\n-6D6C04 Comment Length        0000 (0)\n-6D6C06 Disk Start            0000 (0)\n-6D6C08 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6C0A Ext File Attributes   00000000 (0)\n-6D6C0E Local Header Offset   00130FC4 (1249220)\n-6D6C12 Filename              'XXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6C12: Filename 'XXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6C24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6C26   Length              0005 (5)\n-6D6C28   Flags               01 (1) 'Modification'\n-6D6C29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6C2D CENTRAL HEADER #418   02014B50 (33639248)\n-6D6C31 Created Zip Spec      14 (20) '2.0'\n-6D6C32 Created OS            00 (0) 'MS-DOS'\n-6D6C33 Extract Zip Spec      14 (20) '2.0'\n-6D6C34 Extract OS            00 (0) 'MS-DOS'\n-6D6C35 General Purpose Flag  0000 (0)\n-6D6C37 Compression Method    0000 (0) 'Stored'\n-6D6C39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6C3D CRC                   00000000 (0)\n-6D6C41 Compressed Size       00000000 (0)\n-6D6C45 Uncompressed Size     00000000 (0)\n-6D6C49 Filename Length       0018 (24)\n-6D6C4B Extra Length          0009 (9)\n-6D6C4D Comment Length        0000 (0)\n-6D6C4F Disk Start            0000 (0)\n-6D6C51 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6C53 Ext File Attributes   00000000 (0)\n-6D6C57 Local Header Offset   00130FFD (1249277)\n-6D6C5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6C5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6C73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6C75   Length              0005 (5)\n-6D6C77   Flags               01 (1) 'Modification'\n-6D6C78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6C7C CENTRAL HEADER #419   02014B50 (33639248)\n-6D6C80 Created Zip Spec      14 (20) '2.0'\n-6D6C81 Created OS            00 (0) 'MS-DOS'\n-6D6C82 Extract Zip Spec      14 (20) '2.0'\n-6D6C83 Extract OS            00 (0) 'MS-DOS'\n-6D6C84 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6C86 Compression Method    0000 (0) 'Stored'\n-6D6C88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6C8C CRC                   A0D1D7AD (2698106797)\n-6D6C90 Compressed Size       000003A7 (935)\n-6D6C94 Uncompressed Size     000003A7 (935)\n-6D6C98 Filename Length       0022 (34)\n-6D6C9A Extra Length          0009 (9)\n-6D6C9C Comment Length        0000 (0)\n-6D6C9E Disk Start            0000 (0)\n-6D6CA0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6CA2 Ext File Attributes   00000000 (0)\n-6D6CA6 Local Header Offset   0013103C (1249340)\n-6D6CAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6CAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6CCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6CCE   Length              0005 (5)\n-6D6CD0   Flags               01 (1) 'Modification'\n-6D6CD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6CD5 CENTRAL HEADER #420   02014B50 (33639248)\n-6D6CD9 Created Zip Spec      14 (20) '2.0'\n-6D6CDA Created OS            00 (0) 'MS-DOS'\n-6D6CDB Extract Zip Spec      14 (20) '2.0'\n-6D6CDC Extract OS            00 (0) 'MS-DOS'\n-6D6CDD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6CDF Compression Method    0000 (0) 'Stored'\n-6D6CE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6CE5 CRC                   36E8AAE8 (921217768)\n-6D6CE9 Compressed Size       0000043E (1086)\n-6D6CED Uncompressed Size     0000043E (1086)\n-6D6CF1 Filename Length       0029 (41)\n-6D6CF3 Extra Length          0009 (9)\n-6D6CF5 Comment Length        0000 (0)\n-6D6CF7 Disk Start            0000 (0)\n-6D6CF9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6CFB Ext File Attributes   00000000 (0)\n-6D6CFF Local Header Offset   0013143C (1250364)\n-6D6D03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6D03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6D2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6D2E   Length              0005 (5)\n-6D6D30   Flags               01 (1) 'Modification'\n-6D6D31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6D35 CENTRAL HEADER #421   02014B50 (33639248)\n-6D6D39 Created Zip Spec      14 (20) '2.0'\n-6D6D3A Created OS            00 (0) 'MS-DOS'\n-6D6D3B Extract Zip Spec      14 (20) '2.0'\n-6D6D3C Extract OS            00 (0) 'MS-DOS'\n-6D6D3D General Purpose Flag  0000 (0)\n-6D6D3F Compression Method    0000 (0) 'Stored'\n-6D6D41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6D45 CRC                   00000000 (0)\n-6D6D49 Compressed Size       00000000 (0)\n-6D6D4D Uncompressed Size     00000000 (0)\n-6D6D51 Filename Length       0020 (32)\n-6D6D53 Extra Length          0009 (9)\n-6D6D55 Comment Length        0000 (0)\n-6D6D57 Disk Start            0000 (0)\n-6D6D59 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6D5B Ext File Attributes   00000000 (0)\n-6D6D5F Local Header Offset   001318DA (1251546)\n-6D6D63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6D63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6D83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6D85   Length              0005 (5)\n-6D6D87   Flags               01 (1) 'Modification'\n-6D6D88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6D8C CENTRAL HEADER #422   02014B50 (33639248)\n-6D6D90 Created Zip Spec      14 (20) '2.0'\n-6D6D91 Created OS            00 (0) 'MS-DOS'\n-6D6D92 Extract Zip Spec      14 (20) '2.0'\n-6D6D93 Extract OS            00 (0) 'MS-DOS'\n-6D6D94 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6D96 Compression Method    0000 (0) 'Stored'\n-6D6D98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6D9C CRC                   94A98A55 (2494138965)\n-6D6DA0 Compressed Size       000007E6 (2022)\n-6D6DA4 Uncompressed Size     000007E6 (2022)\n-6D6DA8 Filename Length       0039 (57)\n-6D6DAA Extra Length          0009 (9)\n-6D6DAC Comment Length        0000 (0)\n-6D6DAE Disk Start            0000 (0)\n-6D6DB0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6DB2 Ext File Attributes   00000000 (0)\n-6D6DB6 Local Header Offset   00131921 (1251617)\n-6D6DBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6DBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6DF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6DF5   Length              0005 (5)\n-6D6DF7   Flags               01 (1) 'Modification'\n-6D6DF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6DFC CENTRAL HEADER #423   02014B50 (33639248)\n-6D6E00 Created Zip Spec      14 (20) '2.0'\n-6D6E01 Created OS            00 (0) 'MS-DOS'\n-6D6E02 Extract Zip Spec      14 (20) '2.0'\n-6D6E03 Extract OS            00 (0) 'MS-DOS'\n-6D6E04 General Purpose Flag  0000 (0)\n-6D6E06 Compression Method    0000 (0) 'Stored'\n-6D6E08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6E0C CRC                   00000000 (0)\n-6D6E10 Compressed Size       00000000 (0)\n-6D6E14 Uncompressed Size     00000000 (0)\n-6D6E18 Filename Length       0019 (25)\n-6D6E1A Extra Length          0009 (9)\n-6D6E1C Comment Length        0000 (0)\n-6D6E1E Disk Start            0000 (0)\n-6D6E20 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6E22 Ext File Attributes   00000000 (0)\n-6D6E26 Local Header Offset   00132177 (1253751)\n-6D6E2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6E2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6E43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6E45   Length              0005 (5)\n-6D6E47   Flags               01 (1) 'Modification'\n-6D6E48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6E4C CENTRAL HEADER #424   02014B50 (33639248)\n-6D6E50 Created Zip Spec      14 (20) '2.0'\n-6D6E51 Created OS            00 (0) 'MS-DOS'\n-6D6E52 Extract Zip Spec      14 (20) '2.0'\n-6D6E53 Extract OS            00 (0) 'MS-DOS'\n-6D6E54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6E56 Compression Method    0000 (0) 'Stored'\n-6D6E58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6E5C CRC                   B2D5E5FC (3000362492)\n-6D6E60 Compressed Size       00000738 (1848)\n-6D6E64 Uncompressed Size     00000738 (1848)\n-6D6E68 Filename Length       0027 (39)\n-6D6E6A Extra Length          0009 (9)\n-6D6E6C Comment Length        0000 (0)\n-6D6E6E Disk Start            0000 (0)\n-6D6E70 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6E72 Ext File Attributes   00000000 (0)\n-6D6E76 Local Header Offset   001321B7 (1253815)\n-6D6E7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6E7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6EA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6EA3   Length              0005 (5)\n-6D6EA5   Flags               01 (1) 'Modification'\n-6D6EA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6EAA CENTRAL HEADER #425   02014B50 (33639248)\n-6D6EAE Created Zip Spec      14 (20) '2.0'\n-6D6EAF Created OS            00 (0) 'MS-DOS'\n-6D6EB0 Extract Zip Spec      14 (20) '2.0'\n-6D6EB1 Extract OS            00 (0) 'MS-DOS'\n-6D6EB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6EB4 Compression Method    0000 (0) 'Stored'\n-6D6EB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6EBA CRC                   D19F2618 (3516868120)\n-6D6EBE Compressed Size       00004BE5 (19429)\n-6D6EC2 Uncompressed Size     00004BE5 (19429)\n-6D6EC6 Filename Length       0021 (33)\n-6D6EC8 Extra Length          0009 (9)\n-6D6ECA Comment Length        0000 (0)\n-6D6ECC Disk Start            0000 (0)\n-6D6ECE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6ED0 Ext File Attributes   00000000 (0)\n-6D6ED4 Local Header Offset   0013294D (1255757)\n-6D6ED8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6ED8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6EF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6EFB   Length              0005 (5)\n-6D6EFD   Flags               01 (1) 'Modification'\n-6D6EFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6F02 CENTRAL HEADER #426   02014B50 (33639248)\n-6D6F06 Created Zip Spec      14 (20) '2.0'\n-6D6F07 Created OS            00 (0) 'MS-DOS'\n-6D6F08 Extract Zip Spec      14 (20) '2.0'\n-6D6F09 Extract OS            00 (0) 'MS-DOS'\n-6D6F0A General Purpose Flag  0000 (0)\n-6D6F0C Compression Method    0000 (0) 'Stored'\n-6D6F0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6F12 CRC                   00000000 (0)\n-6D6F16 Compressed Size       00000000 (0)\n-6D6F1A Uncompressed Size     00000000 (0)\n-6D6F1E Filename Length       0022 (34)\n-6D6F20 Extra Length          0009 (9)\n-6D6F22 Comment Length        0000 (0)\n-6D6F24 Disk Start            0000 (0)\n-6D6F26 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6F28 Ext File Attributes   00000000 (0)\n-6D6F2C Local Header Offset   0013758A (1275274)\n-6D6F30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6F30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6F52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6F54   Length              0005 (5)\n-6D6F56   Flags               01 (1) 'Modification'\n-6D6F57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6F5B CENTRAL HEADER #427   02014B50 (33639248)\n-6D6F5F Created Zip Spec      14 (20) '2.0'\n-6D6F60 Created OS            00 (0) 'MS-DOS'\n-6D6F61 Extract Zip Spec      14 (20) '2.0'\n-6D6F62 Extract OS            00 (0) 'MS-DOS'\n-6D6F63 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D6F65 Compression Method    0000 (0) 'Stored'\n-6D6F67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6F6B CRC                   AB4B3845 (2873833541)\n-6D6F6F Compressed Size       000003C1 (961)\n-6D6F73 Uncompressed Size     000003C1 (961)\n-6D6F77 Filename Length       002F (47)\n-6D6F79 Extra Length          0009 (9)\n-6D6F7B Comment Length        0000 (0)\n-6D6F7D Disk Start            0000 (0)\n-6D6F7F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6F81 Ext File Attributes   00000000 (0)\n-6D6F85 Local Header Offset   001375D3 (1275347)\n-6D6F89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6F89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D6FB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D6FBA   Length              0005 (5)\n-6D6FBC   Flags               01 (1) 'Modification'\n-6D6FBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D6FC1 CENTRAL HEADER #428   02014B50 (33639248)\n-6D6FC5 Created Zip Spec      14 (20) '2.0'\n-6D6FC6 Created OS            00 (0) 'MS-DOS'\n-6D6FC7 Extract Zip Spec      14 (20) '2.0'\n-6D6FC8 Extract OS            00 (0) 'MS-DOS'\n-6D6FC9 General Purpose Flag  0000 (0)\n-6D6FCB Compression Method    0000 (0) 'Stored'\n-6D6FCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D6FD1 CRC                   00000000 (0)\n-6D6FD5 Compressed Size       00000000 (0)\n-6D6FD9 Uncompressed Size     00000000 (0)\n-6D6FDD Filename Length       0023 (35)\n-6D6FDF Extra Length          0009 (9)\n-6D6FE1 Comment Length        0000 (0)\n-6D6FE3 Disk Start            0000 (0)\n-6D6FE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D6FE7 Ext File Attributes   00000000 (0)\n-6D6FEB Local Header Offset   001379FA (1276410)\n-6D6FEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D6FEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7012 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7014   Length              0005 (5)\n-6D7016   Flags               01 (1) 'Modification'\n-6D7017   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D701B CENTRAL HEADER #429   02014B50 (33639248)\n-6D701F Created Zip Spec      14 (20) '2.0'\n-6D7020 Created OS            00 (0) 'MS-DOS'\n-6D7021 Extract Zip Spec      14 (20) '2.0'\n-6D7022 Extract OS            00 (0) 'MS-DOS'\n-6D7023 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7025 Compression Method    0000 (0) 'Stored'\n-6D7027 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D702B CRC                   87D33073 (2278764659)\n-6D702F Compressed Size       000005CF (1487)\n-6D7033 Uncompressed Size     000005CF (1487)\n-6D7037 Filename Length       0030 (48)\n-6D7039 Extra Length          0009 (9)\n-6D703B Comment Length        0000 (0)\n-6D703D Disk Start            0000 (0)\n-6D703F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7041 Ext File Attributes   00000000 (0)\n-6D7045 Local Header Offset   00137A44 (1276484)\n-6D7049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7079 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D707B   Length              0005 (5)\n-6D707D   Flags               01 (1) 'Modification'\n-6D707E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7082 CENTRAL HEADER #430   02014B50 (33639248)\n-6D7086 Created Zip Spec      14 (20) '2.0'\n-6D7087 Created OS            00 (0) 'MS-DOS'\n-6D7088 Extract Zip Spec      14 (20) '2.0'\n-6D7089 Extract OS            00 (0) 'MS-DOS'\n-6D708A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D708C Compression Method    0000 (0) 'Stored'\n-6D708E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7092 CRC                   5F752BEF (1601514479)\n-6D7096 Compressed Size       000003F1 (1009)\n-6D709A Uncompressed Size     000003F1 (1009)\n-6D709E Filename Length       0038 (56)\n-6D70A0 Extra Length          0009 (9)\n-6D70A2 Comment Length        0000 (0)\n-6D70A4 Disk Start            0000 (0)\n-6D70A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D70A8 Ext File Attributes   00000000 (0)\n-6D70AC Local Header Offset   0013807A (1278074)\n-6D70B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D70B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D70E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D70EA   Length              0005 (5)\n-6D70EC   Flags               01 (1) 'Modification'\n-6D70ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D70F1 CENTRAL HEADER #431   02014B50 (33639248)\n-6D70F5 Created Zip Spec      14 (20) '2.0'\n-6D70F6 Created OS            00 (0) 'MS-DOS'\n-6D70F7 Extract Zip Spec      14 (20) '2.0'\n-6D70F8 Extract OS            00 (0) 'MS-DOS'\n-6D70F9 General Purpose Flag  0000 (0)\n-6D70FB Compression Method    0000 (0) 'Stored'\n-6D70FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7101 CRC                   00000000 (0)\n-6D7105 Compressed Size       00000000 (0)\n-6D7109 Uncompressed Size     00000000 (0)\n-6D710D Filename Length       0020 (32)\n-6D710F Extra Length          0009 (9)\n-6D7111 Comment Length        0000 (0)\n-6D7113 Disk Start            0000 (0)\n-6D7115 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7117 Ext File Attributes   00000000 (0)\n-6D711B Local Header Offset   001384DA (1279194)\n-6D711F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D711F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D713F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7141   Length              0005 (5)\n-6D7143   Flags               01 (1) 'Modification'\n-6D7144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7148 CENTRAL HEADER #432   02014B50 (33639248)\n-6D714C Created Zip Spec      14 (20) '2.0'\n-6D714D Created OS            00 (0) 'MS-DOS'\n-6D714E Extract Zip Spec      14 (20) '2.0'\n-6D714F Extract OS            00 (0) 'MS-DOS'\n-6D7150 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7152 Compression Method    0000 (0) 'Stored'\n-6D7154 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7158 CRC                   75D97425 (1977185317)\n-6D715C Compressed Size       000003C7 (967)\n-6D7160 Uncompressed Size     000003C7 (967)\n-6D7164 Filename Length       0032 (50)\n-6D7166 Extra Length          0009 (9)\n-6D7168 Comment Length        0000 (0)\n-6D716A Disk Start            0000 (0)\n-6D716C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D716E Ext File Attributes   00000000 (0)\n-6D7172 Local Header Offset   00138521 (1279265)\n-6D7176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D71A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D71AA   Length              0005 (5)\n-6D71AC   Flags               01 (1) 'Modification'\n-6D71AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D71B1 CENTRAL HEADER #433   02014B50 (33639248)\n-6D71B5 Created Zip Spec      14 (20) '2.0'\n-6D71B6 Created OS            00 (0) 'MS-DOS'\n-6D71B7 Extract Zip Spec      14 (20) '2.0'\n-6D71B8 Extract OS            00 (0) 'MS-DOS'\n-6D71B9 General Purpose Flag  0000 (0)\n-6D71BB Compression Method    0000 (0) 'Stored'\n-6D71BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D71C1 CRC                   00000000 (0)\n-6D71C5 Compressed Size       00000000 (0)\n-6D71C9 Uncompressed Size     00000000 (0)\n-6D71CD Filename Length       0023 (35)\n-6D71CF Extra Length          0009 (9)\n-6D71D1 Comment Length        0000 (0)\n-6D71D3 Disk Start            0000 (0)\n-6D71D5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D71D7 Ext File Attributes   00000000 (0)\n-6D71DB Local Header Offset   00138951 (1280337)\n-6D71DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D71DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7202 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7204   Length              0005 (5)\n-6D7206   Flags               01 (1) 'Modification'\n-6D7207   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D720B CENTRAL HEADER #434   02014B50 (33639248)\n-6D720F Created Zip Spec      14 (20) '2.0'\n-6D7210 Created OS            00 (0) 'MS-DOS'\n-6D7211 Extract Zip Spec      14 (20) '2.0'\n-6D7212 Extract OS            00 (0) 'MS-DOS'\n-6D7213 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7215 Compression Method    0000 (0) 'Stored'\n-6D7217 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D721B CRC                   1B82D5A6 (461559206)\n-6D721F Compressed Size       000003C9 (969)\n-6D7223 Uncompressed Size     000003C9 (969)\n-6D7227 Filename Length       0033 (51)\n-6D7229 Extra Length          0009 (9)\n-6D722B Comment Length        0000 (0)\n-6D722D Disk Start            0000 (0)\n-6D722F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7231 Ext File Attributes   00000000 (0)\n-6D7235 Local Header Offset   0013899B (1280411)\n-6D7239 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7239: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D726C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D726E   Length              0005 (5)\n-6D7270   Flags               01 (1) 'Modification'\n-6D7271   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7275 CENTRAL HEADER #435   02014B50 (33639248)\n-6D7279 Created Zip Spec      14 (20) '2.0'\n-6D727A Created OS            00 (0) 'MS-DOS'\n-6D727B Extract Zip Spec      14 (20) '2.0'\n-6D727C Extract OS            00 (0) 'MS-DOS'\n-6D727D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D727F Compression Method    0000 (0) 'Stored'\n-6D7281 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7285 CRC                   E66C1AF8 (3865844472)\n-6D7289 Compressed Size       000003CB (971)\n-6D728D Uncompressed Size     000003CB (971)\n-6D7291 Filename Length       0034 (52)\n-6D7293 Extra Length          0009 (9)\n-6D7295 Comment Length        0000 (0)\n-6D7297 Disk Start            0000 (0)\n-6D7299 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D729B Ext File Attributes   00000000 (0)\n-6D729F Local Header Offset   00138DCE (1281486)\n-6D72A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D72A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D72D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D72D9   Length              0005 (5)\n-6D72DB   Flags               01 (1) 'Modification'\n-6D72DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D72E0 CENTRAL HEADER #436   02014B50 (33639248)\n-6D72E4 Created Zip Spec      14 (20) '2.0'\n-6D72E5 Created OS            00 (0) 'MS-DOS'\n-6D72E6 Extract Zip Spec      14 (20) '2.0'\n-6D72E7 Extract OS            00 (0) 'MS-DOS'\n-6D72E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D72EA Compression Method    0000 (0) 'Stored'\n-6D72EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D72F0 CRC                   A93FA4B2 (2839520434)\n-6D72F4 Compressed Size       000006AC (1708)\n-6D72F8 Uncompressed Size     000006AC (1708)\n-6D72FC Filename Length       0035 (53)\n-6D72FE Extra Length          0009 (9)\n-6D7300 Comment Length        0000 (0)\n-6D7302 Disk Start            0000 (0)\n-6D7304 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7306 Ext File Attributes   00000000 (0)\n-6D730A Local Header Offset   00139204 (1282564)\n-6D730E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D730E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7343 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7345   Length              0005 (5)\n-6D7347   Flags               01 (1) 'Modification'\n-6D7348   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D734C CENTRAL HEADER #437   02014B50 (33639248)\n-6D7350 Created Zip Spec      14 (20) '2.0'\n-6D7351 Created OS            00 (0) 'MS-DOS'\n-6D7352 Extract Zip Spec      14 (20) '2.0'\n-6D7353 Extract OS            00 (0) 'MS-DOS'\n-6D7354 General Purpose Flag  0000 (0)\n-6D7356 Compression Method    0000 (0) 'Stored'\n-6D7358 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D735C CRC                   00000000 (0)\n-6D7360 Compressed Size       00000000 (0)\n-6D7364 Uncompressed Size     00000000 (0)\n-6D7368 Filename Length       0020 (32)\n-6D736A Extra Length          0009 (9)\n-6D736C Comment Length        0000 (0)\n-6D736E Disk Start            0000 (0)\n-6D7370 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7372 Ext File Attributes   00000000 (0)\n-6D7376 Local Header Offset   0013991C (1284380)\n-6D737A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D737A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D739A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D739C   Length              0005 (5)\n-6D739E   Flags               01 (1) 'Modification'\n-6D739F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D73A3 CENTRAL HEADER #438   02014B50 (33639248)\n-6D73A7 Created Zip Spec      14 (20) '2.0'\n-6D73A8 Created OS            00 (0) 'MS-DOS'\n-6D73A9 Extract Zip Spec      14 (20) '2.0'\n-6D73AA Extract OS            00 (0) 'MS-DOS'\n-6D73AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D73AD Compression Method    0000 (0) 'Stored'\n-6D73AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D73B3 CRC                   BEC11652 (3200325202)\n-6D73B7 Compressed Size       000004CE (1230)\n-6D73BB Uncompressed Size     000004CE (1230)\n-6D73BF Filename Length       002B (43)\n-6D73C1 Extra Length          0009 (9)\n-6D73C3 Comment Length        0000 (0)\n-6D73C5 Disk Start            0000 (0)\n-6D73C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D73C9 Ext File Attributes   00000000 (0)\n-6D73CD Local Header Offset   00139963 (1284451)\n-6D73D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D73D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D73FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D73FE   Length              0005 (5)\n-6D7400   Flags               01 (1) 'Modification'\n-6D7401   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7405 CENTRAL HEADER #439   02014B50 (33639248)\n-6D7409 Created Zip Spec      14 (20) '2.0'\n-6D740A Created OS            00 (0) 'MS-DOS'\n-6D740B Extract Zip Spec      14 (20) '2.0'\n-6D740C Extract OS            00 (0) 'MS-DOS'\n-6D740D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D740F Compression Method    0000 (0) 'Stored'\n-6D7411 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7415 CRC                   E8509F41 (3897597761)\n-6D7419 Compressed Size       000003ED (1005)\n-6D741D Uncompressed Size     000003ED (1005)\n-6D7421 Filename Length       0032 (50)\n-6D7423 Extra Length          0009 (9)\n-6D7425 Comment Length        0000 (0)\n-6D7427 Disk Start            0000 (0)\n-6D7429 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D742B Ext File Attributes   00000000 (0)\n-6D742F Local Header Offset   00139E93 (1285779)\n-6D7433 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7433: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7465 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7467   Length              0005 (5)\n-6D7469   Flags               01 (1) 'Modification'\n-6D746A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D746E CENTRAL HEADER #440   02014B50 (33639248)\n-6D7472 Created Zip Spec      14 (20) '2.0'\n-6D7473 Created OS            00 (0) 'MS-DOS'\n-6D7474 Extract Zip Spec      14 (20) '2.0'\n-6D7475 Extract OS            00 (0) 'MS-DOS'\n-6D7476 General Purpose Flag  0000 (0)\n-6D7478 Compression Method    0000 (0) 'Stored'\n-6D747A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D747E CRC                   00000000 (0)\n-6D7482 Compressed Size       00000000 (0)\n-6D7486 Uncompressed Size     00000000 (0)\n-6D748A Filename Length       001F (31)\n-6D748C Extra Length          0009 (9)\n-6D748E Comment Length        0000 (0)\n-6D7490 Disk Start            0000 (0)\n-6D7492 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7494 Ext File Attributes   00000000 (0)\n-6D7498 Local Header Offset   0013A2E9 (1286889)\n-6D749C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D749C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D74BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D74BD   Length              0005 (5)\n-6D74BF   Flags               01 (1) 'Modification'\n-6D74C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D74C4 CENTRAL HEADER #441   02014B50 (33639248)\n-6D74C8 Created Zip Spec      14 (20) '2.0'\n-6D74C9 Created OS            00 (0) 'MS-DOS'\n-6D74CA Extract Zip Spec      14 (20) '2.0'\n-6D74CB Extract OS            00 (0) 'MS-DOS'\n-6D74CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D74CE Compression Method    0000 (0) 'Stored'\n-6D74D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D74D4 CRC                   DEFC6FC7 (3741085639)\n-6D74D8 Compressed Size       000003BD (957)\n-6D74DC Uncompressed Size     000003BD (957)\n-6D74E0 Filename Length       002D (45)\n-6D74E2 Extra Length          0009 (9)\n-6D74E4 Comment Length        0000 (0)\n-6D74E6 Disk Start            0000 (0)\n-6D74E8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D74EA Ext File Attributes   00000000 (0)\n-6D74EE Local Header Offset   0013A32F (1286959)\n-6D74F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D74F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D751F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7521   Length              0005 (5)\n-6D7523   Flags               01 (1) 'Modification'\n-6D7524   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7528 CENTRAL HEADER #442   02014B50 (33639248)\n-6D752C Created Zip Spec      14 (20) '2.0'\n-6D752D Created OS            00 (0) 'MS-DOS'\n-6D752E Extract Zip Spec      14 (20) '2.0'\n-6D752F Extract OS            00 (0) 'MS-DOS'\n-6D7530 General Purpose Flag  0000 (0)\n-6D7532 Compression Method    0000 (0) 'Stored'\n-6D7534 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7538 CRC                   00000000 (0)\n-6D753C Compressed Size       00000000 (0)\n-6D7540 Uncompressed Size     00000000 (0)\n-6D7544 Filename Length       0024 (36)\n-6D7546 Extra Length          0009 (9)\n-6D7548 Comment Length        0000 (0)\n-6D754A Disk Start            0000 (0)\n-6D754C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D754E Ext File Attributes   00000000 (0)\n-6D7552 Local Header Offset   0013A750 (1288016)\n-6D7556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D757A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D757C   Length              0005 (5)\n-6D757E   Flags               01 (1) 'Modification'\n-6D757F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7583 CENTRAL HEADER #443   02014B50 (33639248)\n-6D7587 Created Zip Spec      14 (20) '2.0'\n-6D7588 Created OS            00 (0) 'MS-DOS'\n-6D7589 Extract Zip Spec      14 (20) '2.0'\n-6D758A Extract OS            00 (0) 'MS-DOS'\n-6D758B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D758D Compression Method    0000 (0) 'Stored'\n-6D758F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7593 CRC                   34B28AB6 (884116150)\n-6D7597 Compressed Size       000004E1 (1249)\n-6D759B Uncompressed Size     000004E1 (1249)\n-6D759F Filename Length       0033 (51)\n-6D75A1 Extra Length          0009 (9)\n-6D75A3 Comment Length        0000 (0)\n-6D75A5 Disk Start            0000 (0)\n-6D75A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D75A9 Ext File Attributes   00000000 (0)\n-6D75AD Local Header Offset   0013A79B (1288091)\n-6D75B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D75B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D75E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D75E6   Length              0005 (5)\n-6D75E8   Flags               01 (1) 'Modification'\n-6D75E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D75ED CENTRAL HEADER #444   02014B50 (33639248)\n-6D75F1 Created Zip Spec      14 (20) '2.0'\n-6D75F2 Created OS            00 (0) 'MS-DOS'\n-6D75F3 Extract Zip Spec      14 (20) '2.0'\n-6D75F4 Extract OS            00 (0) 'MS-DOS'\n-6D75F5 General Purpose Flag  0000 (0)\n-6D75F7 Compression Method    0000 (0) 'Stored'\n-6D75F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D75FD CRC                   00000000 (0)\n-6D7601 Compressed Size       00000000 (0)\n-6D7605 Uncompressed Size     00000000 (0)\n-6D7609 Filename Length       001F (31)\n-6D760B Extra Length          0009 (9)\n-6D760D Comment Length        0000 (0)\n-6D760F Disk Start            0000 (0)\n-6D7611 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7613 Ext File Attributes   00000000 (0)\n-6D7617 Local Header Offset   0013ACE6 (1289446)\n-6D761B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D761B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D763A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D763C   Length              0005 (5)\n-6D763E   Flags               01 (1) 'Modification'\n-6D763F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7643 CENTRAL HEADER #445   02014B50 (33639248)\n-6D7647 Created Zip Spec      14 (20) '2.0'\n-6D7648 Created OS            00 (0) 'MS-DOS'\n-6D7649 Extract Zip Spec      14 (20) '2.0'\n-6D764A Extract OS            00 (0) 'MS-DOS'\n-6D764B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D764D Compression Method    0000 (0) 'Stored'\n-6D764F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7653 CRC                   7889994B (2022283595)\n-6D7657 Compressed Size       000011F5 (4597)\n-6D765B Uncompressed Size     000011F5 (4597)\n-6D765F Filename Length       002C (44)\n-6D7661 Extra Length          0009 (9)\n-6D7663 Comment Length        0000 (0)\n-6D7665 Disk Start            0000 (0)\n-6D7667 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7669 Ext File Attributes   00000000 (0)\n-6D766D Local Header Offset   0013AD2C (1289516)\n-6D7671 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7671: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D769D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D769F   Length              0005 (5)\n-6D76A1   Flags               01 (1) 'Modification'\n-6D76A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D76A6 CENTRAL HEADER #446   02014B50 (33639248)\n-6D76AA Created Zip Spec      14 (20) '2.0'\n-6D76AB Created OS            00 (0) 'MS-DOS'\n-6D76AC Extract Zip Spec      14 (20) '2.0'\n-6D76AD Extract OS            00 (0) 'MS-DOS'\n-6D76AE General Purpose Flag  0000 (0)\n-6D76B0 Compression Method    0000 (0) 'Stored'\n-6D76B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D76B6 CRC                   00000000 (0)\n-6D76BA Compressed Size       00000000 (0)\n-6D76BE Uncompressed Size     00000000 (0)\n-6D76C2 Filename Length       0019 (25)\n-6D76C4 Extra Length          0009 (9)\n-6D76C6 Comment Length        0000 (0)\n-6D76C8 Disk Start            0000 (0)\n-6D76CA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D76CC Ext File Attributes   00000000 (0)\n-6D76D0 Local Header Offset   0013BF84 (1294212)\n-6D76D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D76D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D76ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D76EF   Length              0005 (5)\n-6D76F1   Flags               01 (1) 'Modification'\n-6D76F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D76F6 CENTRAL HEADER #447   02014B50 (33639248)\n-6D76FA Created Zip Spec      14 (20) '2.0'\n-6D76FB Created OS            00 (0) 'MS-DOS'\n-6D76FC Extract Zip Spec      14 (20) '2.0'\n-6D76FD Extract OS            00 (0) 'MS-DOS'\n-6D76FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7700 Compression Method    0000 (0) 'Stored'\n-6D7702 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7706 CRC                   785E6462 (2019452002)\n-6D770A Compressed Size       00000446 (1094)\n-6D770E Uncompressed Size     00000446 (1094)\n-6D7712 Filename Length       002F (47)\n-6D7714 Extra Length          0009 (9)\n-6D7716 Comment Length        0000 (0)\n-6D7718 Disk Start            0000 (0)\n-6D771A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D771C Ext File Attributes   00000000 (0)\n-6D7720 Local Header Offset   0013BFC4 (1294276)\n-6D7724 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7724: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7753 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7755   Length              0005 (5)\n-6D7757   Flags               01 (1) 'Modification'\n-6D7758   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D775C CENTRAL HEADER #448   02014B50 (33639248)\n-6D7760 Created Zip Spec      14 (20) '2.0'\n-6D7761 Created OS            00 (0) 'MS-DOS'\n-6D7762 Extract Zip Spec      14 (20) '2.0'\n-6D7763 Extract OS            00 (0) 'MS-DOS'\n-6D7764 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7766 Compression Method    0000 (0) 'Stored'\n-6D7768 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D776C CRC                   12EE7A54 (317618772)\n-6D7770 Compressed Size       000003B7 (951)\n-6D7774 Uncompressed Size     000003B7 (951)\n-6D7778 Filename Length       002C (44)\n-6D777A Extra Length          0009 (9)\n-6D777C Comment Length        0000 (0)\n-6D777E Disk Start            0000 (0)\n-6D7780 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7782 Ext File Attributes   00000000 (0)\n-6D7786 Local Header Offset   0013C470 (1295472)\n-6D778A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D778A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D77B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D77B8   Length              0005 (5)\n-6D77BA   Flags               01 (1) 'Modification'\n-6D77BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D77BF CENTRAL HEADER #449   02014B50 (33639248)\n-6D77C3 Created Zip Spec      14 (20) '2.0'\n-6D77C4 Created OS            00 (0) 'MS-DOS'\n-6D77C5 Extract Zip Spec      14 (20) '2.0'\n-6D77C6 Extract OS            00 (0) 'MS-DOS'\n-6D77C7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D77C9 Compression Method    0000 (0) 'Stored'\n-6D77CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D77CF CRC                   AE09219E (2919834014)\n-6D77D3 Compressed Size       000003B7 (951)\n-6D77D7 Uncompressed Size     000003B7 (951)\n-6D77DB Filename Length       002C (44)\n-6D77DD Extra Length          0009 (9)\n-6D77DF Comment Length        0000 (0)\n-6D77E1 Disk Start            0000 (0)\n-6D77E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D77E5 Ext File Attributes   00000000 (0)\n-6D77E9 Local Header Offset   0013C88A (1296522)\n-6D77ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D77ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7819 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D781B   Length              0005 (5)\n-6D781D   Flags               01 (1) 'Modification'\n-6D781E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7822 CENTRAL HEADER #450   02014B50 (33639248)\n-6D7826 Created Zip Spec      14 (20) '2.0'\n-6D7827 Created OS            00 (0) 'MS-DOS'\n-6D7828 Extract Zip Spec      14 (20) '2.0'\n-6D7829 Extract OS            00 (0) 'MS-DOS'\n-6D782A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D782C Compression Method    0000 (0) 'Stored'\n-6D782E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7832 CRC                   C0617C64 (3227614308)\n-6D7836 Compressed Size       000003B5 (949)\n-6D783A Uncompressed Size     000003B5 (949)\n-6D783E Filename Length       002A (42)\n-6D7840 Extra Length          0009 (9)\n-6D7842 Comment Length        0000 (0)\n-6D7844 Disk Start            0000 (0)\n-6D7846 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7848 Ext File Attributes   00000000 (0)\n-6D784C Local Header Offset   0013CCA4 (1297572)\n-6D7850 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7850: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D787A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D787C   Length              0005 (5)\n-6D787E   Flags               01 (1) 'Modification'\n-6D787F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7883 CENTRAL HEADER #451   02014B50 (33639248)\n-6D7887 Created Zip Spec      14 (20) '2.0'\n-6D7888 Created OS            00 (0) 'MS-DOS'\n-6D7889 Extract Zip Spec      14 (20) '2.0'\n-6D788A Extract OS            00 (0) 'MS-DOS'\n-6D788B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D788D Compression Method    0000 (0) 'Stored'\n-6D788F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7893 CRC                   50E43A38 (1357134392)\n-6D7897 Compressed Size       00000420 (1056)\n-6D789B Uncompressed Size     00000420 (1056)\n-6D789F Filename Length       002A (42)\n-6D78A1 Extra Length          0009 (9)\n-6D78A3 Comment Length        0000 (0)\n-6D78A5 Disk Start            0000 (0)\n-6D78A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D78A9 Ext File Attributes   00000000 (0)\n-6D78AD Local Header Offset   0013D0BA (1298618)\n-6D78B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D78B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D78DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D78DD   Length              0005 (5)\n-6D78DF   Flags               01 (1) 'Modification'\n-6D78E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D78E4 CENTRAL HEADER #452   02014B50 (33639248)\n-6D78E8 Created Zip Spec      14 (20) '2.0'\n-6D78E9 Created OS            00 (0) 'MS-DOS'\n-6D78EA Extract Zip Spec      14 (20) '2.0'\n-6D78EB Extract OS            00 (0) 'MS-DOS'\n-6D78EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D78EE Compression Method    0000 (0) 'Stored'\n-6D78F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D78F4 CRC                   7B632F2C (2070097708)\n-6D78F8 Compressed Size       00000428 (1064)\n-6D78FC Uncompressed Size     00000428 (1064)\n-6D7900 Filename Length       002B (43)\n-6D7902 Extra Length          0009 (9)\n-6D7904 Comment Length        0000 (0)\n-6D7906 Disk Start            0000 (0)\n-6D7908 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D790A Ext File Attributes   00000000 (0)\n-6D790E Local Header Offset   0013D53B (1299771)\n-6D7912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D793D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D793F   Length              0005 (5)\n-6D7941   Flags               01 (1) 'Modification'\n-6D7942   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7946 CENTRAL HEADER #453   02014B50 (33639248)\n-6D794A Created Zip Spec      14 (20) '2.0'\n-6D794B Created OS            00 (0) 'MS-DOS'\n-6D794C Extract Zip Spec      14 (20) '2.0'\n-6D794D Extract OS            00 (0) 'MS-DOS'\n-6D794E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7950 Compression Method    0000 (0) 'Stored'\n-6D7952 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7956 CRC                   885A72D3 (2287629011)\n-6D795A Compressed Size       00000481 (1153)\n-6D795E Uncompressed Size     00000481 (1153)\n-6D7962 Filename Length       002C (44)\n-6D7964 Extra Length          0009 (9)\n-6D7966 Comment Length        0000 (0)\n-6D7968 Disk Start            0000 (0)\n-6D796A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D796C Ext File Attributes   00000000 (0)\n-6D7970 Local Header Offset   0013D9C5 (1300933)\n-6D7974 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7974: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D79A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D79A2   Length              0005 (5)\n-6D79A4   Flags               01 (1) 'Modification'\n-6D79A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D79A9 CENTRAL HEADER #454   02014B50 (33639248)\n-6D79AD Created Zip Spec      14 (20) '2.0'\n-6D79AE Created OS            00 (0) 'MS-DOS'\n-6D79AF Extract Zip Spec      14 (20) '2.0'\n-6D79B0 Extract OS            00 (0) 'MS-DOS'\n-6D79B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D79B3 Compression Method    0000 (0) 'Stored'\n-6D79B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D79B9 CRC                   419EAEDE (1100918494)\n-6D79BD Compressed Size       000003B7 (951)\n-6D79C1 Uncompressed Size     000003B7 (951)\n-6D79C5 Filename Length       002C (44)\n-6D79C7 Extra Length          0009 (9)\n-6D79C9 Comment Length        0000 (0)\n-6D79CB Disk Start            0000 (0)\n-6D79CD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D79CF Ext File Attributes   00000000 (0)\n-6D79D3 Local Header Offset   0013DEA9 (1302185)\n-6D79D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D79D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7A03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7A05   Length              0005 (5)\n-6D7A07   Flags               01 (1) 'Modification'\n-6D7A08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7A0C CENTRAL HEADER #455   02014B50 (33639248)\n-6D7A10 Created Zip Spec      14 (20) '2.0'\n-6D7A11 Created OS            00 (0) 'MS-DOS'\n-6D7A12 Extract Zip Spec      14 (20) '2.0'\n-6D7A13 Extract OS            00 (0) 'MS-DOS'\n-6D7A14 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7A16 Compression Method    0000 (0) 'Stored'\n-6D7A18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7A1C CRC                   76D9341F (1993946143)\n-6D7A20 Compressed Size       0000045A (1114)\n-6D7A24 Uncompressed Size     0000045A (1114)\n-6D7A28 Filename Length       002D (45)\n-6D7A2A Extra Length          0009 (9)\n-6D7A2C Comment Length        0000 (0)\n-6D7A2E Disk Start            0000 (0)\n-6D7A30 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7A32 Ext File Attributes   00000000 (0)\n-6D7A36 Local Header Offset   0013E2C3 (1303235)\n-6D7A3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7A3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7A67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7A69   Length              0005 (5)\n-6D7A6B   Flags               01 (1) 'Modification'\n-6D7A6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7A70 CENTRAL HEADER #456   02014B50 (33639248)\n-6D7A74 Created Zip Spec      14 (20) '2.0'\n-6D7A75 Created OS            00 (0) 'MS-DOS'\n-6D7A76 Extract Zip Spec      14 (20) '2.0'\n-6D7A77 Extract OS            00 (0) 'MS-DOS'\n-6D7A78 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7A7A Compression Method    0000 (0) 'Stored'\n-6D7A7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7A80 CRC                   61ADD6F9 (1638782713)\n-6D7A84 Compressed Size       00000498 (1176)\n-6D7A88 Uncompressed Size     00000498 (1176)\n-6D7A8C Filename Length       002C (44)\n-6D7A8E Extra Length          0009 (9)\n-6D7A90 Comment Length        0000 (0)\n-6D7A92 Disk Start            0000 (0)\n-6D7A94 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7A96 Ext File Attributes   00000000 (0)\n-6D7A9A Local Header Offset   0013E781 (1304449)\n-6D7A9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7A9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7ACA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7ACC   Length              0005 (5)\n-6D7ACE   Flags               01 (1) 'Modification'\n-6D7ACF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7AD3 CENTRAL HEADER #457   02014B50 (33639248)\n-6D7AD7 Created Zip Spec      14 (20) '2.0'\n-6D7AD8 Created OS            00 (0) 'MS-DOS'\n-6D7AD9 Extract Zip Spec      14 (20) '2.0'\n-6D7ADA Extract OS            00 (0) 'MS-DOS'\n-6D7ADB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7ADD Compression Method    0000 (0) 'Stored'\n-6D7ADF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7AE3 CRC                   E87449AF (3899935151)\n-6D7AE7 Compressed Size       00000467 (1127)\n-6D7AEB Uncompressed Size     00000467 (1127)\n-6D7AEF Filename Length       002B (43)\n-6D7AF1 Extra Length          0009 (9)\n-6D7AF3 Comment Length        0000 (0)\n-6D7AF5 Disk Start            0000 (0)\n-6D7AF7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7AF9 Ext File Attributes   00000000 (0)\n-6D7AFD Local Header Offset   0013EC7C (1305724)\n-6D7B01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7B01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7B2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7B2E   Length              0005 (5)\n-6D7B30   Flags               01 (1) 'Modification'\n-6D7B31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7B35 CENTRAL HEADER #458   02014B50 (33639248)\n-6D7B39 Created Zip Spec      14 (20) '2.0'\n-6D7B3A Created OS            00 (0) 'MS-DOS'\n-6D7B3B Extract Zip Spec      14 (20) '2.0'\n-6D7B3C Extract OS            00 (0) 'MS-DOS'\n-6D7B3D General Purpose Flag  0000 (0)\n-6D7B3F Compression Method    0000 (0) 'Stored'\n-6D7B41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7B45 CRC                   00000000 (0)\n-6D7B49 Compressed Size       00000000 (0)\n-6D7B4D Uncompressed Size     00000000 (0)\n-6D7B51 Filename Length       0024 (36)\n-6D7B53 Extra Length          0009 (9)\n-6D7B55 Comment Length        0000 (0)\n-6D7B57 Disk Start            0000 (0)\n-6D7B59 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7B5B Ext File Attributes   00000000 (0)\n-6D7B5F Local Header Offset   0013F145 (1306949)\n-6D7B63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7B63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7B87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7B89   Length              0005 (5)\n-6D7B8B   Flags               01 (1) 'Modification'\n-6D7B8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7B90 CENTRAL HEADER #459   02014B50 (33639248)\n-6D7B94 Created Zip Spec      14 (20) '2.0'\n-6D7B95 Created OS            00 (0) 'MS-DOS'\n-6D7B96 Extract Zip Spec      14 (20) '2.0'\n-6D7B97 Extract OS            00 (0) 'MS-DOS'\n-6D7B98 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7B9A Compression Method    0000 (0) 'Stored'\n-6D7B9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7BA0 CRC                   9122A7A7 (2434967463)\n-6D7BA4 Compressed Size       00000A3F (2623)\n-6D7BA8 Uncompressed Size     00000A3F (2623)\n-6D7BAC Filename Length       0032 (50)\n-6D7BAE Extra Length          0009 (9)\n-6D7BB0 Comment Length        0000 (0)\n-6D7BB2 Disk Start            0000 (0)\n-6D7BB4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7BB6 Ext File Attributes   00000000 (0)\n-6D7BBA Local Header Offset   0013F190 (1307024)\n-6D7BBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7BBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7BF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7BF2   Length              0005 (5)\n-6D7BF4   Flags               01 (1) 'Modification'\n-6D7BF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7BF9 CENTRAL HEADER #460   02014B50 (33639248)\n-6D7BFD Created Zip Spec      14 (20) '2.0'\n-6D7BFE Created OS            00 (0) 'MS-DOS'\n-6D7BFF Extract Zip Spec      14 (20) '2.0'\n-6D7C00 Extract OS            00 (0) 'MS-DOS'\n-6D7C01 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7C03 Compression Method    0000 (0) 'Stored'\n-6D7C05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7C09 CRC                   3228CAA5 (841534117)\n-6D7C0D Compressed Size       00000A97 (2711)\n-6D7C11 Uncompressed Size     00000A97 (2711)\n-6D7C15 Filename Length       0030 (48)\n-6D7C17 Extra Length          0009 (9)\n-6D7C19 Comment Length        0000 (0)\n-6D7C1B Disk Start            0000 (0)\n-6D7C1D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7C1F Ext File Attributes   00000000 (0)\n-6D7C23 Local Header Offset   0013FC38 (1309752)\n-6D7C27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7C27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7C57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7C59   Length              0005 (5)\n-6D7C5B   Flags               01 (1) 'Modification'\n-6D7C5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7C60 CENTRAL HEADER #461   02014B50 (33639248)\n-6D7C64 Created Zip Spec      14 (20) '2.0'\n-6D7C65 Created OS            00 (0) 'MS-DOS'\n-6D7C66 Extract Zip Spec      14 (20) '2.0'\n-6D7C67 Extract OS            00 (0) 'MS-DOS'\n-6D7C68 General Purpose Flag  0000 (0)\n-6D7C6A Compression Method    0000 (0) 'Stored'\n-6D7C6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7C70 CRC                   00000000 (0)\n-6D7C74 Compressed Size       00000000 (0)\n-6D7C78 Uncompressed Size     00000000 (0)\n-6D7C7C Filename Length       0020 (32)\n-6D7C7E Extra Length          0009 (9)\n-6D7C80 Comment Length        0000 (0)\n-6D7C82 Disk Start            0000 (0)\n-6D7C84 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7C86 Ext File Attributes   00000000 (0)\n-6D7C8A Local Header Offset   00140736 (1312566)\n-6D7C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7CAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7CB0   Length              0005 (5)\n-6D7CB2   Flags               01 (1) 'Modification'\n-6D7CB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7CB7 CENTRAL HEADER #462   02014B50 (33639248)\n-6D7CBB Created Zip Spec      14 (20) '2.0'\n-6D7CBC Created OS            00 (0) 'MS-DOS'\n-6D7CBD Extract Zip Spec      14 (20) '2.0'\n-6D7CBE Extract OS            00 (0) 'MS-DOS'\n-6D7CBF General Purpose Flag  0000 (0)\n-6D7CC1 Compression Method    0000 (0) 'Stored'\n-6D7CC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7CC7 CRC                   00000000 (0)\n-6D7CCB Compressed Size       00000000 (0)\n-6D7CCF Uncompressed Size     00000000 (0)\n-6D7CD3 Filename Length       0028 (40)\n-6D7CD5 Extra Length          0009 (9)\n-6D7CD7 Comment Length        0000 (0)\n-6D7CD9 Disk Start            0000 (0)\n-6D7CDB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7CDD Ext File Attributes   00000000 (0)\n-6D7CE1 Local Header Offset   0014077D (1312637)\n-6D7CE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7CE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7D0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7D0F   Length              0005 (5)\n-6D7D11   Flags               01 (1) 'Modification'\n-6D7D12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7D16 CENTRAL HEADER #463   02014B50 (33639248)\n-6D7D1A Created Zip Spec      14 (20) '2.0'\n-6D7D1B Created OS            00 (0) 'MS-DOS'\n-6D7D1C Extract Zip Spec      14 (20) '2.0'\n-6D7D1D Extract OS            00 (0) 'MS-DOS'\n-6D7D1E General Purpose Flag  0000 (0)\n-6D7D20 Compression Method    0000 (0) 'Stored'\n-6D7D22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7D26 CRC                   00000000 (0)\n-6D7D2A Compressed Size       00000000 (0)\n-6D7D2E Uncompressed Size     00000000 (0)\n-6D7D32 Filename Length       0033 (51)\n-6D7D34 Extra Length          0009 (9)\n-6D7D36 Comment Length        0000 (0)\n-6D7D38 Disk Start            0000 (0)\n-6D7D3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7D3C Ext File Attributes   00000000 (0)\n-6D7D40 Local Header Offset   001407CC (1312716)\n-6D7D44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7D44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7D77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7D79   Length              0005 (5)\n-6D7D7B   Flags               01 (1) 'Modification'\n-6D7D7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7D80 CENTRAL HEADER #464   02014B50 (33639248)\n-6D7D84 Created Zip Spec      14 (20) '2.0'\n-6D7D85 Created OS            00 (0) 'MS-DOS'\n-6D7D86 Extract Zip Spec      14 (20) '2.0'\n-6D7D87 Extract OS            00 (0) 'MS-DOS'\n-6D7D88 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7D8A Compression Method    0000 (0) 'Stored'\n-6D7D8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7D90 CRC                   CE003164 (3456119140)\n-6D7D94 Compressed Size       00000AB3 (2739)\n-6D7D98 Uncompressed Size     00000AB3 (2739)\n-6D7D9C Filename Length       0043 (67)\n-6D7D9E Extra Length          0009 (9)\n-6D7DA0 Comment Length        0000 (0)\n-6D7DA2 Disk Start            0000 (0)\n-6D7DA4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7DA6 Ext File Attributes   00000000 (0)\n-6D7DAA Local Header Offset   00140826 (1312806)\n-6D7DAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7DAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7DF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7DF3   Length              0005 (5)\n-6D7DF5   Flags               01 (1) 'Modification'\n-6D7DF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7DFA CENTRAL HEADER #465   02014B50 (33639248)\n-6D7DFE Created Zip Spec      14 (20) '2.0'\n-6D7DFF Created OS            00 (0) 'MS-DOS'\n-6D7E00 Extract Zip Spec      14 (20) '2.0'\n-6D7E01 Extract OS            00 (0) 'MS-DOS'\n-6D7E02 General Purpose Flag  0000 (0)\n-6D7E04 Compression Method    0000 (0) 'Stored'\n-6D7E06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7E0A CRC                   00000000 (0)\n-6D7E0E Compressed Size       00000000 (0)\n-6D7E12 Uncompressed Size     00000000 (0)\n-6D7E16 Filename Length       001C (28)\n-6D7E18 Extra Length          0009 (9)\n-6D7E1A Comment Length        0000 (0)\n-6D7E1C Disk Start            0000 (0)\n-6D7E1E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7E20 Ext File Attributes   00000000 (0)\n-6D7E24 Local Header Offset   00141353 (1315667)\n-6D7E28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7E28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7E44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7E46   Length              0005 (5)\n-6D7E48   Flags               01 (1) 'Modification'\n-6D7E49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7E4D CENTRAL HEADER #466   02014B50 (33639248)\n-6D7E51 Created Zip Spec      14 (20) '2.0'\n-6D7E52 Created OS            00 (0) 'MS-DOS'\n-6D7E53 Extract Zip Spec      14 (20) '2.0'\n-6D7E54 Extract OS            00 (0) 'MS-DOS'\n-6D7E55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7E57 Compression Method    0000 (0) 'Stored'\n-6D7E59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7E5D CRC                   DC9E9A97 (3701381783)\n-6D7E61 Compressed Size       000003B7 (951)\n-6D7E65 Uncompressed Size     000003B7 (951)\n-6D7E69 Filename Length       002A (42)\n-6D7E6B Extra Length          0009 (9)\n-6D7E6D Comment Length        0000 (0)\n-6D7E6F Disk Start            0000 (0)\n-6D7E71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7E73 Ext File Attributes   00000000 (0)\n-6D7E77 Local Header Offset   00141396 (1315734)\n-6D7E7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7E7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7EA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7EA7   Length              0005 (5)\n-6D7EA9   Flags               01 (1) 'Modification'\n-6D7EAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7EAE CENTRAL HEADER #467   02014B50 (33639248)\n-6D7EB2 Created Zip Spec      14 (20) '2.0'\n-6D7EB3 Created OS            00 (0) 'MS-DOS'\n-6D7EB4 Extract Zip Spec      14 (20) '2.0'\n-6D7EB5 Extract OS            00 (0) 'MS-DOS'\n-6D7EB6 General Purpose Flag  0000 (0)\n-6D7EB8 Compression Method    0000 (0) 'Stored'\n-6D7EBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7EBE CRC                   00000000 (0)\n-6D7EC2 Compressed Size       00000000 (0)\n-6D7EC6 Uncompressed Size     00000000 (0)\n-6D7ECA Filename Length       001A (26)\n-6D7ECC Extra Length          0009 (9)\n-6D7ECE Comment Length        0000 (0)\n-6D7ED0 Disk Start            0000 (0)\n-6D7ED2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7ED4 Ext File Attributes   00000000 (0)\n-6D7ED8 Local Header Offset   001417AE (1316782)\n-6D7EDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7EDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7EF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7EF8   Length              0005 (5)\n-6D7EFA   Flags               01 (1) 'Modification'\n-6D7EFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7EFF CENTRAL HEADER #468   02014B50 (33639248)\n-6D7F03 Created Zip Spec      14 (20) '2.0'\n-6D7F04 Created OS            00 (0) 'MS-DOS'\n-6D7F05 Extract Zip Spec      14 (20) '2.0'\n-6D7F06 Extract OS            00 (0) 'MS-DOS'\n-6D7F07 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7F09 Compression Method    0000 (0) 'Stored'\n-6D7F0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7F0F CRC                   D9881C34 (3649575988)\n-6D7F13 Compressed Size       0000063F (1599)\n-6D7F17 Uncompressed Size     0000063F (1599)\n-6D7F1B Filename Length       0026 (38)\n-6D7F1D Extra Length          0009 (9)\n-6D7F1F Comment Length        0000 (0)\n-6D7F21 Disk Start            0000 (0)\n-6D7F23 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7F25 Ext File Attributes   00000000 (0)\n-6D7F29 Local Header Offset   001417EF (1316847)\n-6D7F2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7F2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7F53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7F55   Length              0005 (5)\n-6D7F57   Flags               01 (1) 'Modification'\n-6D7F58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7F5C CENTRAL HEADER #469   02014B50 (33639248)\n-6D7F60 Created Zip Spec      14 (20) '2.0'\n-6D7F61 Created OS            00 (0) 'MS-DOS'\n-6D7F62 Extract Zip Spec      14 (20) '2.0'\n-6D7F63 Extract OS            00 (0) 'MS-DOS'\n-6D7F64 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D7F66 Compression Method    0000 (0) 'Stored'\n-6D7F68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7F6C CRC                   29B723AE (699868078)\n-6D7F70 Compressed Size       000004D6 (1238)\n-6D7F74 Uncompressed Size     000004D6 (1238)\n-6D7F78 Filename Length       002D (45)\n-6D7F7A Extra Length          0009 (9)\n-6D7F7C Comment Length        0000 (0)\n-6D7F7E Disk Start            0000 (0)\n-6D7F80 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7F82 Ext File Attributes   00000000 (0)\n-6D7F86 Local Header Offset   00141E8B (1318539)\n-6D7F8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7F8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D7FB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D7FB9   Length              0005 (5)\n-6D7FBB   Flags               01 (1) 'Modification'\n-6D7FBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D7FC0 CENTRAL HEADER #470   02014B50 (33639248)\n-6D7FC4 Created Zip Spec      14 (20) '2.0'\n-6D7FC5 Created OS            00 (0) 'MS-DOS'\n-6D7FC6 Extract Zip Spec      14 (20) '2.0'\n-6D7FC7 Extract OS            00 (0) 'MS-DOS'\n-6D7FC8 General Purpose Flag  0000 (0)\n-6D7FCA Compression Method    0000 (0) 'Stored'\n-6D7FCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D7FD0 CRC                   00000000 (0)\n-6D7FD4 Compressed Size       00000000 (0)\n-6D7FD8 Uncompressed Size     00000000 (0)\n-6D7FDC Filename Length       0016 (22)\n-6D7FDE Extra Length          0009 (9)\n-6D7FE0 Comment Length        0000 (0)\n-6D7FE2 Disk Start            0000 (0)\n-6D7FE4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D7FE6 Ext File Attributes   00000000 (0)\n-6D7FEA Local Header Offset   001423C5 (1319877)\n-6D7FEE Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D7FEE: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8004 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8006   Length              0005 (5)\n-6D8008   Flags               01 (1) 'Modification'\n-6D8009   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D800D CENTRAL HEADER #471   02014B50 (33639248)\n-6D8011 Created Zip Spec      14 (20) '2.0'\n-6D8012 Created OS            00 (0) 'MS-DOS'\n-6D8013 Extract Zip Spec      14 (20) '2.0'\n-6D8014 Extract OS            00 (0) 'MS-DOS'\n-6D8015 General Purpose Flag  0000 (0)\n-6D8017 Compression Method    0000 (0) 'Stored'\n-6D8019 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D801D CRC                   00000000 (0)\n-6D8021 Compressed Size       00000000 (0)\n-6D8025 Uncompressed Size     00000000 (0)\n-6D8029 Filename Length       001E (30)\n-6D802B Extra Length          0009 (9)\n-6D802D Comment Length        0000 (0)\n-6D802F Disk Start            0000 (0)\n-6D8031 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8033 Ext File Attributes   00000000 (0)\n-6D8037 Local Header Offset   00142402 (1319938)\n-6D803B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D803B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8059 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D805B   Length              0005 (5)\n-6D805D   Flags               01 (1) 'Modification'\n-6D805E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8062 CENTRAL HEADER #472   02014B50 (33639248)\n-6D8066 Created Zip Spec      14 (20) '2.0'\n-6D8067 Created OS            00 (0) 'MS-DOS'\n-6D8068 Extract Zip Spec      14 (20) '2.0'\n-6D8069 Extract OS            00 (0) 'MS-DOS'\n-6D806A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D806C Compression Method    0000 (0) 'Stored'\n-6D806E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8072 CRC                   496AA8AF (1231726767)\n-6D8076 Compressed Size       00000523 (1315)\n-6D807A Uncompressed Size     00000523 (1315)\n-6D807E Filename Length       002E (46)\n-6D8080 Extra Length          0009 (9)\n-6D8082 Comment Length        0000 (0)\n-6D8084 Disk Start            0000 (0)\n-6D8086 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8088 Ext File Attributes   00000000 (0)\n-6D808C Local Header Offset   00142447 (1320007)\n-6D8090 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8090: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D80BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D80C0   Length              0005 (5)\n-6D80C2   Flags               01 (1) 'Modification'\n-6D80C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D80C7 CENTRAL HEADER #473   02014B50 (33639248)\n-6D80CB Created Zip Spec      14 (20) '2.0'\n-6D80CC Created OS            00 (0) 'MS-DOS'\n-6D80CD Extract Zip Spec      14 (20) '2.0'\n-6D80CE Extract OS            00 (0) 'MS-DOS'\n-6D80CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D80D1 Compression Method    0000 (0) 'Stored'\n-6D80D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D80D7 CRC                   52213B11 (1377909521)\n-6D80DB Compressed Size       000005A6 (1446)\n-6D80DF Uncompressed Size     000005A6 (1446)\n-6D80E3 Filename Length       0031 (49)\n-6D80E5 Extra Length          0009 (9)\n-6D80E7 Comment Length        0000 (0)\n-6D80E9 Disk Start            0000 (0)\n-6D80EB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D80ED Ext File Attributes   00000000 (0)\n-6D80F1 Local Header Offset   001429CF (1321423)\n-6D80F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D80F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8126 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8128   Length              0005 (5)\n-6D812A   Flags               01 (1) 'Modification'\n-6D812B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D812F CENTRAL HEADER #474   02014B50 (33639248)\n-6D8133 Created Zip Spec      14 (20) '2.0'\n-6D8134 Created OS            00 (0) 'MS-DOS'\n-6D8135 Extract Zip Spec      14 (20) '2.0'\n-6D8136 Extract OS            00 (0) 'MS-DOS'\n-6D8137 General Purpose Flag  0000 (0)\n-6D8139 Compression Method    0000 (0) 'Stored'\n-6D813B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D813F CRC                   00000000 (0)\n-6D8143 Compressed Size       00000000 (0)\n-6D8147 Uncompressed Size     00000000 (0)\n-6D814B Filename Length       001B (27)\n-6D814D Extra Length          0009 (9)\n-6D814F Comment Length        0000 (0)\n-6D8151 Disk Start            0000 (0)\n-6D8153 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8155 Ext File Attributes   00000000 (0)\n-6D8159 Local Header Offset   00142FDD (1322973)\n-6D815D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D815D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8178 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D817A   Length              0005 (5)\n-6D817C   Flags               01 (1) 'Modification'\n-6D817D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8181 CENTRAL HEADER #475   02014B50 (33639248)\n-6D8185 Created Zip Spec      14 (20) '2.0'\n-6D8186 Created OS            00 (0) 'MS-DOS'\n-6D8187 Extract Zip Spec      14 (20) '2.0'\n-6D8188 Extract OS            00 (0) 'MS-DOS'\n-6D8189 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D818B Compression Method    0000 (0) 'Stored'\n-6D818D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8191 CRC                   BB714DA3 (3144764835)\n-6D8195 Compressed Size       00000804 (2052)\n-6D8199 Uncompressed Size     00000804 (2052)\n-6D819D Filename Length       002E (46)\n-6D819F Extra Length          0009 (9)\n-6D81A1 Comment Length        0000 (0)\n-6D81A3 Disk Start            0000 (0)\n-6D81A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D81A7 Ext File Attributes   00000000 (0)\n-6D81AB Local Header Offset   0014301F (1323039)\n-6D81AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D81AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D81DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D81DF   Length              0005 (5)\n-6D81E1   Flags               01 (1) 'Modification'\n-6D81E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D81E6 CENTRAL HEADER #476   02014B50 (33639248)\n-6D81EA Created Zip Spec      14 (20) '2.0'\n-6D81EB Created OS            00 (0) 'MS-DOS'\n-6D81EC Extract Zip Spec      14 (20) '2.0'\n-6D81ED Extract OS            00 (0) 'MS-DOS'\n-6D81EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D81F0 Compression Method    0000 (0) 'Stored'\n-6D81F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D81F6 CRC                   D76B4438 (3614131256)\n-6D81FA Compressed Size       000009FC (2556)\n-6D81FE Uncompressed Size     000009FC (2556)\n-6D8202 Filename Length       0028 (40)\n-6D8204 Extra Length          0009 (9)\n-6D8206 Comment Length        0000 (0)\n-6D8208 Disk Start            0000 (0)\n-6D820A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D820C Ext File Attributes   00000000 (0)\n-6D8210 Local Header Offset   00143888 (1325192)\n-6D8214 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8214: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D823C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D823E   Length              0005 (5)\n-6D8240   Flags               01 (1) 'Modification'\n-6D8241   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8245 CENTRAL HEADER #477   02014B50 (33639248)\n-6D8249 Created Zip Spec      14 (20) '2.0'\n-6D824A Created OS            00 (0) 'MS-DOS'\n-6D824B Extract Zip Spec      14 (20) '2.0'\n-6D824C Extract OS            00 (0) 'MS-DOS'\n-6D824D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D824F Compression Method    0000 (0) 'Stored'\n-6D8251 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8255 CRC                   C61A4C11 (3323612177)\n-6D8259 Compressed Size       000004E1 (1249)\n-6D825D Uncompressed Size     000004E1 (1249)\n-6D8261 Filename Length       002F (47)\n-6D8263 Extra Length          0009 (9)\n-6D8265 Comment Length        0000 (0)\n-6D8267 Disk Start            0000 (0)\n-6D8269 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D826B Ext File Attributes   00000000 (0)\n-6D826F Local Header Offset   001442E3 (1327843)\n-6D8273 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8273: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D82A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D82A4   Length              0005 (5)\n-6D82A6   Flags               01 (1) 'Modification'\n-6D82A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D82AB CENTRAL HEADER #478   02014B50 (33639248)\n-6D82AF Created Zip Spec      14 (20) '2.0'\n-6D82B0 Created OS            00 (0) 'MS-DOS'\n-6D82B1 Extract Zip Spec      14 (20) '2.0'\n-6D82B2 Extract OS            00 (0) 'MS-DOS'\n-6D82B3 General Purpose Flag  0000 (0)\n-6D82B5 Compression Method    0000 (0) 'Stored'\n-6D82B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D82BB CRC                   00000000 (0)\n-6D82BF Compressed Size       00000000 (0)\n-6D82C3 Uncompressed Size     00000000 (0)\n-6D82C7 Filename Length       0023 (35)\n-6D82C9 Extra Length          0009 (9)\n-6D82CB Comment Length        0000 (0)\n-6D82CD Disk Start            0000 (0)\n-6D82CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D82D1 Ext File Attributes   00000000 (0)\n-6D82D5 Local Header Offset   0014482A (1329194)\n-6D82D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D82D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D82FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D82FE   Length              0005 (5)\n-6D8300   Flags               01 (1) 'Modification'\n-6D8301   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8305 CENTRAL HEADER #479   02014B50 (33639248)\n-6D8309 Created Zip Spec      14 (20) '2.0'\n-6D830A Created OS            00 (0) 'MS-DOS'\n-6D830B Extract Zip Spec      14 (20) '2.0'\n-6D830C Extract OS            00 (0) 'MS-DOS'\n-6D830D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D830F Compression Method    0000 (0) 'Stored'\n-6D8311 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8315 CRC                   1991942D (428971053)\n-6D8319 Compressed Size       0000184C (6220)\n-6D831D Uncompressed Size     0000184C (6220)\n-6D8321 Filename Length       0038 (56)\n-6D8323 Extra Length          0009 (9)\n-6D8325 Comment Length        0000 (0)\n-6D8327 Disk Start            0000 (0)\n-6D8329 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D832B Ext File Attributes   00000000 (0)\n-6D832F Local Header Offset   00144874 (1329268)\n-6D8333 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8333: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D836B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D836D   Length              0005 (5)\n-6D836F   Flags               01 (1) 'Modification'\n-6D8370   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8374 CENTRAL HEADER #480   02014B50 (33639248)\n-6D8378 Created Zip Spec      14 (20) '2.0'\n-6D8379 Created OS            00 (0) 'MS-DOS'\n-6D837A Extract Zip Spec      14 (20) '2.0'\n-6D837B Extract OS            00 (0) 'MS-DOS'\n-6D837C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D837E Compression Method    0000 (0) 'Stored'\n-6D8380 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8384 CRC                   6C394AEE (1815694062)\n-6D8388 Compressed Size       00000530 (1328)\n-6D838C Uncompressed Size     00000530 (1328)\n-6D8390 Filename Length       003F (63)\n-6D8392 Extra Length          0009 (9)\n-6D8394 Comment Length        0000 (0)\n-6D8396 Disk Start            0000 (0)\n-6D8398 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D839A Ext File Attributes   00000000 (0)\n-6D839E Local Header Offset   0014612F (1335599)\n-6D83A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D83A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D83E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D83E3   Length              0005 (5)\n-6D83E5   Flags               01 (1) 'Modification'\n-6D83E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D83EA CENTRAL HEADER #481   02014B50 (33639248)\n-6D83EE Created Zip Spec      14 (20) '2.0'\n-6D83EF Created OS            00 (0) 'MS-DOS'\n-6D83F0 Extract Zip Spec      14 (20) '2.0'\n-6D83F1 Extract OS            00 (0) 'MS-DOS'\n-6D83F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D83F4 Compression Method    0000 (0) 'Stored'\n-6D83F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D83FA CRC                   03FD65CD (66938317)\n-6D83FE Compressed Size       00001B8B (7051)\n-6D8402 Uncompressed Size     00001B8B (7051)\n-6D8406 Filename Length       0038 (56)\n-6D8408 Extra Length          0009 (9)\n-6D840A Comment Length        0000 (0)\n-6D840C Disk Start            0000 (0)\n-6D840E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8410 Ext File Attributes   00000000 (0)\n-6D8414 Local Header Offset   001466D5 (1337045)\n-6D8418 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8418: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8450 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8452   Length              0005 (5)\n-6D8454   Flags               01 (1) 'Modification'\n-6D8455   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8459 CENTRAL HEADER #482   02014B50 (33639248)\n-6D845D Created Zip Spec      14 (20) '2.0'\n-6D845E Created OS            00 (0) 'MS-DOS'\n-6D845F Extract Zip Spec      14 (20) '2.0'\n-6D8460 Extract OS            00 (0) 'MS-DOS'\n-6D8461 General Purpose Flag  0000 (0)\n-6D8463 Compression Method    0000 (0) 'Stored'\n-6D8465 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8469 CRC                   00000000 (0)\n-6D846D Compressed Size       00000000 (0)\n-6D8471 Uncompressed Size     00000000 (0)\n-6D8475 Filename Length       001B (27)\n-6D8477 Extra Length          0009 (9)\n-6D8479 Comment Length        0000 (0)\n-6D847B Disk Start            0000 (0)\n-6D847D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D847F Ext File Attributes   00000000 (0)\n-6D8483 Local Header Offset   001482CF (1344207)\n-6D8487 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8487: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D84A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D84A4   Length              0005 (5)\n-6D84A6   Flags               01 (1) 'Modification'\n-6D84A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D84AB CENTRAL HEADER #483   02014B50 (33639248)\n-6D84AF Created Zip Spec      14 (20) '2.0'\n-6D84B0 Created OS            00 (0) 'MS-DOS'\n-6D84B1 Extract Zip Spec      14 (20) '2.0'\n-6D84B2 Extract OS            00 (0) 'MS-DOS'\n-6D84B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D84B5 Compression Method    0000 (0) 'Stored'\n-6D84B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D84BB CRC                   B05300B6 (2958229686)\n-6D84BF Compressed Size       00000443 (1091)\n-6D84C3 Uncompressed Size     00000443 (1091)\n-6D84C7 Filename Length       0027 (39)\n-6D84C9 Extra Length          0009 (9)\n-6D84CB Comment Length        0000 (0)\n-6D84CD Disk Start            0000 (0)\n-6D84CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D84D1 Ext File Attributes   00000000 (0)\n-6D84D5 Local Header Offset   00148311 (1344273)\n-6D84D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D84D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8500 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8502   Length              0005 (5)\n-6D8504   Flags               01 (1) 'Modification'\n-6D8505   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8509 CENTRAL HEADER #484   02014B50 (33639248)\n-6D850D Created Zip Spec      14 (20) '2.0'\n-6D850E Created OS            00 (0) 'MS-DOS'\n-6D850F Extract Zip Spec      14 (20) '2.0'\n-6D8510 Extract OS            00 (0) 'MS-DOS'\n-6D8511 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8513 Compression Method    0000 (0) 'Stored'\n-6D8515 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8519 CRC                   4B53EA77 (1263790711)\n-6D851D Compressed Size       000008BC (2236)\n-6D8521 Uncompressed Size     000008BC (2236)\n-6D8525 Filename Length       002E (46)\n-6D8527 Extra Length          0009 (9)\n-6D8529 Comment Length        0000 (0)\n-6D852B Disk Start            0000 (0)\n-6D852D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D852F Ext File Attributes   00000000 (0)\n-6D8533 Local Header Offset   001487B2 (1345458)\n-6D8537 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8537: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8565 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8567   Length              0005 (5)\n-6D8569   Flags               01 (1) 'Modification'\n-6D856A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D856E CENTRAL HEADER #485   02014B50 (33639248)\n-6D8572 Created Zip Spec      14 (20) '2.0'\n-6D8573 Created OS            00 (0) 'MS-DOS'\n-6D8574 Extract Zip Spec      14 (20) '2.0'\n-6D8575 Extract OS            00 (0) 'MS-DOS'\n-6D8576 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8578 Compression Method    0000 (0) 'Stored'\n-6D857A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D857E CRC                   F7117BC1 (4145118145)\n-6D8582 Compressed Size       000003AD (941)\n-6D8586 Uncompressed Size     000003AD (941)\n-6D858A Filename Length       0025 (37)\n-6D858C Extra Length          0009 (9)\n-6D858E Comment Length        0000 (0)\n-6D8590 Disk Start            0000 (0)\n-6D8592 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8594 Ext File Attributes   00000000 (0)\n-6D8598 Local Header Offset   001490D3 (1347795)\n-6D859C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D859C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D85C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D85C3   Length              0005 (5)\n-6D85C5   Flags               01 (1) 'Modification'\n-6D85C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D85CA CENTRAL HEADER #486   02014B50 (33639248)\n-6D85CE Created Zip Spec      14 (20) '2.0'\n-6D85CF Created OS            00 (0) 'MS-DOS'\n-6D85D0 Extract Zip Spec      14 (20) '2.0'\n-6D85D1 Extract OS            00 (0) 'MS-DOS'\n-6D85D2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D85D4 Compression Method    0000 (0) 'Stored'\n-6D85D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D85DA CRC                   AB71C50D (2876359949)\n-6D85DE Compressed Size       000003AF (943)\n-6D85E2 Uncompressed Size     000003AF (943)\n-6D85E6 Filename Length       0026 (38)\n-6D85E8 Extra Length          0009 (9)\n-6D85EA Comment Length        0000 (0)\n-6D85EC Disk Start            0000 (0)\n-6D85EE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D85F0 Ext File Attributes   00000000 (0)\n-6D85F4 Local Header Offset   001494DC (1348828)\n-6D85F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D85F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D861E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8620   Length              0005 (5)\n-6D8622   Flags               01 (1) 'Modification'\n-6D8623   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8627 CENTRAL HEADER #487   02014B50 (33639248)\n-6D862B Created Zip Spec      14 (20) '2.0'\n-6D862C Created OS            00 (0) 'MS-DOS'\n-6D862D Extract Zip Spec      14 (20) '2.0'\n-6D862E Extract OS            00 (0) 'MS-DOS'\n-6D862F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8631 Compression Method    0000 (0) 'Stored'\n-6D8633 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8637 CRC                   738B9E3F (1938529855)\n-6D863B Compressed Size       0000054E (1358)\n-6D863F Uncompressed Size     0000054E (1358)\n-6D8643 Filename Length       002A (42)\n-6D8645 Extra Length          0009 (9)\n-6D8647 Comment Length        0000 (0)\n-6D8649 Disk Start            0000 (0)\n-6D864B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D864D Ext File Attributes   00000000 (0)\n-6D8651 Local Header Offset   001498E8 (1349864)\n-6D8655 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8655: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D867F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8681   Length              0005 (5)\n-6D8683   Flags               01 (1) 'Modification'\n-6D8684   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8688 CENTRAL HEADER #488   02014B50 (33639248)\n-6D868C Created Zip Spec      14 (20) '2.0'\n-6D868D Created OS            00 (0) 'MS-DOS'\n-6D868E Extract Zip Spec      14 (20) '2.0'\n-6D868F Extract OS            00 (0) 'MS-DOS'\n-6D8690 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8692 Compression Method    0000 (0) 'Stored'\n-6D8694 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8698 CRC                   DF216F41 (3743510337)\n-6D869C Compressed Size       000007B3 (1971)\n-6D86A0 Uncompressed Size     000007B3 (1971)\n-6D86A4 Filename Length       0031 (49)\n-6D86A6 Extra Length          0009 (9)\n-6D86A8 Comment Length        0000 (0)\n-6D86AA Disk Start            0000 (0)\n-6D86AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D86AE Ext File Attributes   00000000 (0)\n-6D86B2 Local Header Offset   00149E97 (1351319)\n-6D86B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D86B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D86E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D86E9   Length              0005 (5)\n-6D86EB   Flags               01 (1) 'Modification'\n-6D86EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D86F0 CENTRAL HEADER #489   02014B50 (33639248)\n-6D86F4 Created Zip Spec      14 (20) '2.0'\n-6D86F5 Created OS            00 (0) 'MS-DOS'\n-6D86F6 Extract Zip Spec      14 (20) '2.0'\n-6D86F7 Extract OS            00 (0) 'MS-DOS'\n-6D86F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D86FA Compression Method    0000 (0) 'Stored'\n-6D86FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8700 CRC                   7ECEF1EF (2127491567)\n-6D8704 Compressed Size       000003B8 (952)\n-6D8708 Uncompressed Size     000003B8 (952)\n-6D870C Filename Length       0026 (38)\n-6D870E Extra Length          0009 (9)\n-6D8710 Comment Length        0000 (0)\n-6D8712 Disk Start            0000 (0)\n-6D8714 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8716 Ext File Attributes   00000000 (0)\n-6D871A Local Header Offset   0014A6B2 (1353394)\n-6D871E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D871E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8744 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8746   Length              0005 (5)\n-6D8748   Flags               01 (1) 'Modification'\n-6D8749   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D874D CENTRAL HEADER #490   02014B50 (33639248)\n-6D8751 Created Zip Spec      14 (20) '2.0'\n-6D8752 Created OS            00 (0) 'MS-DOS'\n-6D8753 Extract Zip Spec      14 (20) '2.0'\n-6D8754 Extract OS            00 (0) 'MS-DOS'\n-6D8755 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8757 Compression Method    0000 (0) 'Stored'\n-6D8759 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D875D CRC                   43AA3D45 (1135230277)\n-6D8761 Compressed Size       00000CA7 (3239)\n-6D8765 Uncompressed Size     00000CA7 (3239)\n-6D8769 Filename Length       002B (43)\n-6D876B Extra Length          0009 (9)\n-6D876D Comment Length        0000 (0)\n-6D876F Disk Start            0000 (0)\n-6D8771 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8773 Ext File Attributes   00000000 (0)\n-6D8777 Local Header Offset   0014AAC7 (1354439)\n-6D877B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D877B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D87A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D87A8   Length              0005 (5)\n-6D87AA   Flags               01 (1) 'Modification'\n-6D87AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D87AF CENTRAL HEADER #491   02014B50 (33639248)\n-6D87B3 Created Zip Spec      14 (20) '2.0'\n-6D87B4 Created OS            00 (0) 'MS-DOS'\n-6D87B5 Extract Zip Spec      14 (20) '2.0'\n-6D87B6 Extract OS            00 (0) 'MS-DOS'\n-6D87B7 General Purpose Flag  0000 (0)\n-6D87B9 Compression Method    0000 (0) 'Stored'\n-6D87BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D87BF CRC                   00000000 (0)\n-6D87C3 Compressed Size       00000000 (0)\n-6D87C7 Uncompressed Size     00000000 (0)\n-6D87CB Filename Length       0024 (36)\n-6D87CD Extra Length          0009 (9)\n-6D87CF Comment Length        0000 (0)\n-6D87D1 Disk Start            0000 (0)\n-6D87D3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D87D5 Ext File Attributes   00000000 (0)\n-6D87D9 Local Header Offset   0014B7D0 (1357776)\n-6D87DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D87DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8801 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8803   Length              0005 (5)\n-6D8805   Flags               01 (1) 'Modification'\n-6D8806   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D880A CENTRAL HEADER #492   02014B50 (33639248)\n-6D880E Created Zip Spec      14 (20) '2.0'\n-6D880F Created OS            00 (0) 'MS-DOS'\n-6D8810 Extract Zip Spec      14 (20) '2.0'\n-6D8811 Extract OS            00 (0) 'MS-DOS'\n-6D8812 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8814 Compression Method    0000 (0) 'Stored'\n-6D8816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D881A CRC                   4B6F1882 (1265571970)\n-6D881E Compressed Size       000003C7 (967)\n-6D8822 Uncompressed Size     000003C7 (967)\n-6D8826 Filename Length       0032 (50)\n-6D8828 Extra Length          0009 (9)\n-6D882A Comment Length        0000 (0)\n-6D882C Disk Start            0000 (0)\n-6D882E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8830 Ext File Attributes   00000000 (0)\n-6D8834 Local Header Offset   0014B81B (1357851)\n-6D8838 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8838: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D886A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D886C   Length              0005 (5)\n-6D886E   Flags               01 (1) 'Modification'\n-6D886F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8873 CENTRAL HEADER #493   02014B50 (33639248)\n-6D8877 Created Zip Spec      14 (20) '2.0'\n-6D8878 Created OS            00 (0) 'MS-DOS'\n-6D8879 Extract Zip Spec      14 (20) '2.0'\n-6D887A Extract OS            00 (0) 'MS-DOS'\n-6D887B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D887D Compression Method    0000 (0) 'Stored'\n-6D887F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8883 CRC                   CE84EC2F (3464817711)\n-6D8887 Compressed Size       00000464 (1124)\n-6D888B Uncompressed Size     00000464 (1124)\n-6D888F Filename Length       0039 (57)\n-6D8891 Extra Length          0009 (9)\n-6D8893 Comment Length        0000 (0)\n-6D8895 Disk Start            0000 (0)\n-6D8897 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8899 Ext File Attributes   00000000 (0)\n-6D889D Local Header Offset   0014BC4B (1358923)\n-6D88A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D88A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D88DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D88DC   Length              0005 (5)\n-6D88DE   Flags               01 (1) 'Modification'\n-6D88DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D88E3 CENTRAL HEADER #494   02014B50 (33639248)\n-6D88E7 Created Zip Spec      14 (20) '2.0'\n-6D88E8 Created OS            00 (0) 'MS-DOS'\n-6D88E9 Extract Zip Spec      14 (20) '2.0'\n-6D88EA Extract OS            00 (0) 'MS-DOS'\n-6D88EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D88ED Compression Method    0000 (0) 'Stored'\n-6D88EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D88F3 CRC                   EFE6AFC6 (4024872902)\n-6D88F7 Compressed Size       000005D1 (1489)\n-6D88FB Uncompressed Size     000005D1 (1489)\n-6D88FF Filename Length       0037 (55)\n-6D8901 Extra Length          0009 (9)\n-6D8903 Comment Length        0000 (0)\n-6D8905 Disk Start            0000 (0)\n-6D8907 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8909 Ext File Attributes   00000000 (0)\n-6D890D Local Header Offset   0014C11F (1360159)\n-6D8911 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8911: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D894A   Length              0005 (5)\n-6D894C   Flags               01 (1) 'Modification'\n-6D894D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8951 CENTRAL HEADER #495   02014B50 (33639248)\n-6D8955 Created Zip Spec      14 (20) '2.0'\n-6D8956 Created OS            00 (0) 'MS-DOS'\n-6D8957 Extract Zip Spec      14 (20) '2.0'\n-6D8958 Extract OS            00 (0) 'MS-DOS'\n-6D8959 General Purpose Flag  0000 (0)\n-6D895B Compression Method    0000 (0) 'Stored'\n-6D895D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8961 CRC                   00000000 (0)\n-6D8965 Compressed Size       00000000 (0)\n-6D8969 Uncompressed Size     00000000 (0)\n-6D896D Filename Length       0020 (32)\n-6D896F Extra Length          0009 (9)\n-6D8971 Comment Length        0000 (0)\n-6D8973 Disk Start            0000 (0)\n-6D8975 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8977 Ext File Attributes   00000000 (0)\n-6D897B Local Header Offset   0014C75E (1361758)\n-6D897F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D897F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D899F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D89A1   Length              0005 (5)\n-6D89A3   Flags               01 (1) 'Modification'\n-6D89A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D89A8 CENTRAL HEADER #496   02014B50 (33639248)\n-6D89AC Created Zip Spec      14 (20) '2.0'\n-6D89AD Created OS            00 (0) 'MS-DOS'\n-6D89AE Extract Zip Spec      14 (20) '2.0'\n-6D89AF Extract OS            00 (0) 'MS-DOS'\n-6D89B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D89B2 Compression Method    0000 (0) 'Stored'\n-6D89B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D89B8 CRC                   2510FA3B (621869627)\n-6D89BC Compressed Size       000003C1 (961)\n-6D89C0 Uncompressed Size     000003C1 (961)\n-6D89C4 Filename Length       002F (47)\n-6D89C6 Extra Length          0009 (9)\n-6D89C8 Comment Length        0000 (0)\n-6D89CA Disk Start            0000 (0)\n-6D89CC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D89CE Ext File Attributes   00000000 (0)\n-6D89D2 Local Header Offset   0014C7A5 (1361829)\n-6D89D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D89D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8A05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8A07   Length              0005 (5)\n-6D8A09   Flags               01 (1) 'Modification'\n-6D8A0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8A0E CENTRAL HEADER #497   02014B50 (33639248)\n-6D8A12 Created Zip Spec      14 (20) '2.0'\n-6D8A13 Created OS            00 (0) 'MS-DOS'\n-6D8A14 Extract Zip Spec      14 (20) '2.0'\n-6D8A15 Extract OS            00 (0) 'MS-DOS'\n-6D8A16 General Purpose Flag  0000 (0)\n-6D8A18 Compression Method    0000 (0) 'Stored'\n-6D8A1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8A1E CRC                   00000000 (0)\n-6D8A22 Compressed Size       00000000 (0)\n-6D8A26 Uncompressed Size     00000000 (0)\n-6D8A2A Filename Length       001F (31)\n-6D8A2C Extra Length          0009 (9)\n-6D8A2E Comment Length        0000 (0)\n-6D8A30 Disk Start            0000 (0)\n-6D8A32 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8A34 Ext File Attributes   00000000 (0)\n-6D8A38 Local Header Offset   0014CBCC (1362892)\n-6D8A3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8A3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8A5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8A5D   Length              0005 (5)\n-6D8A5F   Flags               01 (1) 'Modification'\n-6D8A60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8A64 CENTRAL HEADER #498   02014B50 (33639248)\n-6D8A68 Created Zip Spec      14 (20) '2.0'\n-6D8A69 Created OS            00 (0) 'MS-DOS'\n-6D8A6A Extract Zip Spec      14 (20) '2.0'\n-6D8A6B Extract OS            00 (0) 'MS-DOS'\n-6D8A6C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8A6E Compression Method    0000 (0) 'Stored'\n-6D8A70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8A74 CRC                   14A7D3CC (346543052)\n-6D8A78 Compressed Size       000003BD (957)\n-6D8A7C Uncompressed Size     000003BD (957)\n-6D8A80 Filename Length       002D (45)\n-6D8A82 Extra Length          0009 (9)\n-6D8A84 Comment Length        0000 (0)\n-6D8A86 Disk Start            0000 (0)\n-6D8A88 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8A8A Ext File Attributes   00000000 (0)\n-6D8A8E Local Header Offset   0014CC12 (1362962)\n-6D8A92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8A92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8AC1   Length              0005 (5)\n-6D8AC3   Flags               01 (1) 'Modification'\n-6D8AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8AC8 CENTRAL HEADER #499   02014B50 (33639248)\n-6D8ACC Created Zip Spec      14 (20) '2.0'\n-6D8ACD Created OS            00 (0) 'MS-DOS'\n-6D8ACE Extract Zip Spec      14 (20) '2.0'\n-6D8ACF Extract OS            00 (0) 'MS-DOS'\n-6D8AD0 General Purpose Flag  0000 (0)\n-6D8AD2 Compression Method    0000 (0) 'Stored'\n-6D8AD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8AD8 CRC                   00000000 (0)\n-6D8ADC Compressed Size       00000000 (0)\n-6D8AE0 Uncompressed Size     00000000 (0)\n-6D8AE4 Filename Length       0022 (34)\n-6D8AE6 Extra Length          0009 (9)\n-6D8AE8 Comment Length        0000 (0)\n-6D8AEA Disk Start            0000 (0)\n-6D8AEC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8AEE Ext File Attributes   00000000 (0)\n-6D8AF2 Local Header Offset   0014D033 (1364019)\n-6D8AF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8AF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8B18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8B1A   Length              0005 (5)\n-6D8B1C   Flags               01 (1) 'Modification'\n-6D8B1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8B21 CENTRAL HEADER #500   02014B50 (33639248)\n-6D8B25 Created Zip Spec      14 (20) '2.0'\n-6D8B26 Created OS            00 (0) 'MS-DOS'\n-6D8B27 Extract Zip Spec      14 (20) '2.0'\n-6D8B28 Extract OS            00 (0) 'MS-DOS'\n-6D8B29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8B2B Compression Method    0000 (0) 'Stored'\n-6D8B2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8B31 CRC                   1652AFBA (374517690)\n-6D8B35 Compressed Size       00000538 (1336)\n-6D8B39 Uncompressed Size     00000538 (1336)\n-6D8B3D Filename Length       0034 (52)\n-6D8B3F Extra Length          0009 (9)\n-6D8B41 Comment Length        0000 (0)\n-6D8B43 Disk Start            0000 (0)\n-6D8B45 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8B47 Ext File Attributes   00000000 (0)\n-6D8B4B Local Header Offset   0014D07C (1364092)\n-6D8B4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8B4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8B83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8B85   Length              0005 (5)\n-6D8B87   Flags               01 (1) 'Modification'\n-6D8B88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8B8C CENTRAL HEADER #501   02014B50 (33639248)\n-6D8B90 Created Zip Spec      14 (20) '2.0'\n-6D8B91 Created OS            00 (0) 'MS-DOS'\n-6D8B92 Extract Zip Spec      14 (20) '2.0'\n-6D8B93 Extract OS            00 (0) 'MS-DOS'\n-6D8B94 General Purpose Flag  0000 (0)\n-6D8B96 Compression Method    0000 (0) 'Stored'\n-6D8B98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8B9C CRC                   00000000 (0)\n-6D8BA0 Compressed Size       00000000 (0)\n-6D8BA4 Uncompressed Size     00000000 (0)\n-6D8BA8 Filename Length       0025 (37)\n-6D8BAA Extra Length          0009 (9)\n-6D8BAC Comment Length        0000 (0)\n-6D8BAE Disk Start            0000 (0)\n-6D8BB0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8BB2 Ext File Attributes   00000000 (0)\n-6D8BB6 Local Header Offset   0014D61F (1365535)\n-6D8BBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8BBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8BE1   Length              0005 (5)\n-6D8BE3   Flags               01 (1) 'Modification'\n-6D8BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8BE8 CENTRAL HEADER #502   02014B50 (33639248)\n-6D8BEC Created Zip Spec      14 (20) '2.0'\n-6D8BED Created OS            00 (0) 'MS-DOS'\n-6D8BEE Extract Zip Spec      14 (20) '2.0'\n-6D8BEF Extract OS            00 (0) 'MS-DOS'\n-6D8BF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8BF2 Compression Method    0000 (0) 'Stored'\n-6D8BF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8BF8 CRC                   15451137 (356847927)\n-6D8BFC Compressed Size       000003DF (991)\n-6D8C00 Uncompressed Size     000003DF (991)\n-6D8C04 Filename Length       003E (62)\n-6D8C06 Extra Length          0009 (9)\n-6D8C08 Comment Length        0000 (0)\n-6D8C0A Disk Start            0000 (0)\n-6D8C0C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8C0E Ext File Attributes   00000000 (0)\n-6D8C12 Local Header Offset   0014D66B (1365611)\n-6D8C16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8C16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8C54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8C56   Length              0005 (5)\n-6D8C58   Flags               01 (1) 'Modification'\n-6D8C59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8C5D CENTRAL HEADER #503   02014B50 (33639248)\n-6D8C61 Created Zip Spec      14 (20) '2.0'\n-6D8C62 Created OS            00 (0) 'MS-DOS'\n-6D8C63 Extract Zip Spec      14 (20) '2.0'\n-6D8C64 Extract OS            00 (0) 'MS-DOS'\n-6D8C65 General Purpose Flag  0000 (0)\n-6D8C67 Compression Method    0000 (0) 'Stored'\n-6D8C69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8C6D CRC                   00000000 (0)\n-6D8C71 Compressed Size       00000000 (0)\n-6D8C75 Uncompressed Size     00000000 (0)\n-6D8C79 Filename Length       0016 (22)\n-6D8C7B Extra Length          0009 (9)\n-6D8C7D Comment Length        0000 (0)\n-6D8C7F Disk Start            0000 (0)\n-6D8C81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8C83 Ext File Attributes   00000000 (0)\n-6D8C87 Local Header Offset   0014DABF (1366719)\n-6D8C8B Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8C8B: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8CA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8CA3   Length              0005 (5)\n-6D8CA5   Flags               01 (1) 'Modification'\n-6D8CA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8CAA CENTRAL HEADER #504   02014B50 (33639248)\n-6D8CAE Created Zip Spec      14 (20) '2.0'\n-6D8CAF Created OS            00 (0) 'MS-DOS'\n-6D8CB0 Extract Zip Spec      14 (20) '2.0'\n-6D8CB1 Extract OS            00 (0) 'MS-DOS'\n-6D8CB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8CB4 Compression Method    0000 (0) 'Stored'\n-6D8CB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8CBA CRC                   5AF92E3B (1526279739)\n-6D8CBE Compressed Size       000005DD (1501)\n-6D8CC2 Uncompressed Size     000005DD (1501)\n-6D8CC6 Filename Length       0023 (35)\n-6D8CC8 Extra Length          0009 (9)\n-6D8CCA Comment Length        0000 (0)\n-6D8CCC Disk Start            0000 (0)\n-6D8CCE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8CD0 Ext File Attributes   00000000 (0)\n-6D8CD4 Local Header Offset   0014DAFC (1366780)\n-6D8CD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8CD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8CFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8CFD   Length              0005 (5)\n-6D8CFF   Flags               01 (1) 'Modification'\n-6D8D00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8D04 CENTRAL HEADER #505   02014B50 (33639248)\n-6D8D08 Created Zip Spec      14 (20) '2.0'\n-6D8D09 Created OS            00 (0) 'MS-DOS'\n-6D8D0A Extract Zip Spec      14 (20) '2.0'\n-6D8D0B Extract OS            00 (0) 'MS-DOS'\n-6D8D0C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8D0E Compression Method    0000 (0) 'Stored'\n-6D8D10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8D14 CRC                   4813D623 (1209259555)\n-6D8D18 Compressed Size       000005DD (1501)\n-6D8D1C Uncompressed Size     000005DD (1501)\n-6D8D20 Filename Length       0021 (33)\n-6D8D22 Extra Length          0009 (9)\n-6D8D24 Comment Length        0000 (0)\n-6D8D26 Disk Start            0000 (0)\n-6D8D28 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8D2A Ext File Attributes   00000000 (0)\n-6D8D2E Local Header Offset   0014E133 (1368371)\n-6D8D32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8D32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8D53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8D55   Length              0005 (5)\n-6D8D57   Flags               01 (1) 'Modification'\n-6D8D58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8D5C CENTRAL HEADER #506   02014B50 (33639248)\n-6D8D60 Created Zip Spec      14 (20) '2.0'\n-6D8D61 Created OS            00 (0) 'MS-DOS'\n-6D8D62 Extract Zip Spec      14 (20) '2.0'\n-6D8D63 Extract OS            00 (0) 'MS-DOS'\n-6D8D64 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8D66 Compression Method    0000 (0) 'Stored'\n-6D8D68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8D6C CRC                   6425D257 (1680200279)\n-6D8D70 Compressed Size       000011F5 (4597)\n-6D8D74 Uncompressed Size     000011F5 (4597)\n-6D8D78 Filename Length       0025 (37)\n-6D8D7A Extra Length          0009 (9)\n-6D8D7C Comment Length        0000 (0)\n-6D8D7E Disk Start            0000 (0)\n-6D8D80 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8D82 Ext File Attributes   00000000 (0)\n-6D8D86 Local Header Offset   0014E768 (1369960)\n-6D8D8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8D8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8DAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8DB1   Length              0005 (5)\n-6D8DB3   Flags               01 (1) 'Modification'\n-6D8DB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8DB8 CENTRAL HEADER #507   02014B50 (33639248)\n-6D8DBC Created Zip Spec      14 (20) '2.0'\n-6D8DBD Created OS            00 (0) 'MS-DOS'\n-6D8DBE Extract Zip Spec      14 (20) '2.0'\n-6D8DBF Extract OS            00 (0) 'MS-DOS'\n-6D8DC0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8DC2 Compression Method    0000 (0) 'Stored'\n-6D8DC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8DC8 CRC                   4751F7D9 (1196554201)\n-6D8DCC Compressed Size       00000933 (2355)\n-6D8DD0 Uncompressed Size     00000933 (2355)\n-6D8DD4 Filename Length       0022 (34)\n-6D8DD6 Extra Length          0009 (9)\n-6D8DD8 Comment Length        0000 (0)\n-6D8DDA Disk Start            0000 (0)\n-6D8DDC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8DDE Ext File Attributes   00000000 (0)\n-6D8DE2 Local Header Offset   0014F9B9 (1374649)\n-6D8DE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8DE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8E08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8E0A   Length              0005 (5)\n-6D8E0C   Flags               01 (1) 'Modification'\n-6D8E0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8E11 CENTRAL HEADER #508   02014B50 (33639248)\n-6D8E15 Created Zip Spec      14 (20) '2.0'\n-6D8E16 Created OS            00 (0) 'MS-DOS'\n-6D8E17 Extract Zip Spec      14 (20) '2.0'\n-6D8E18 Extract OS            00 (0) 'MS-DOS'\n-6D8E19 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8E1B Compression Method    0000 (0) 'Stored'\n-6D8E1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8E21 CRC                   A7B8FF5F (2813919071)\n-6D8E25 Compressed Size       0000060D (1549)\n-6D8E29 Uncompressed Size     0000060D (1549)\n-6D8E2D Filename Length       002A (42)\n-6D8E2F Extra Length          0009 (9)\n-6D8E31 Comment Length        0000 (0)\n-6D8E33 Disk Start            0000 (0)\n-6D8E35 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8E37 Ext File Attributes   00000000 (0)\n-6D8E3B Local Header Offset   00150345 (1377093)\n-6D8E3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8E3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8E69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8E6B   Length              0005 (5)\n-6D8E6D   Flags               01 (1) 'Modification'\n-6D8E6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8E72 CENTRAL HEADER #509   02014B50 (33639248)\n-6D8E76 Created Zip Spec      14 (20) '2.0'\n-6D8E77 Created OS            00 (0) 'MS-DOS'\n-6D8E78 Extract Zip Spec      14 (20) '2.0'\n-6D8E79 Extract OS            00 (0) 'MS-DOS'\n-6D8E7A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8E7C Compression Method    0000 (0) 'Stored'\n-6D8E7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8E82 CRC                   A6915B8B (2794544011)\n-6D8E86 Compressed Size       000006AD (1709)\n-6D8E8A Uncompressed Size     000006AD (1709)\n-6D8E8E Filename Length       0023 (35)\n-6D8E90 Extra Length          0009 (9)\n-6D8E92 Comment Length        0000 (0)\n-6D8E94 Disk Start            0000 (0)\n-6D8E96 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8E98 Ext File Attributes   00000000 (0)\n-6D8E9C Local Header Offset   001509B3 (1378739)\n-6D8EA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8EA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8EC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8EC5   Length              0005 (5)\n-6D8EC7   Flags               01 (1) 'Modification'\n-6D8EC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8ECC CENTRAL HEADER #510   02014B50 (33639248)\n-6D8ED0 Created Zip Spec      14 (20) '2.0'\n-6D8ED1 Created OS            00 (0) 'MS-DOS'\n-6D8ED2 Extract Zip Spec      14 (20) '2.0'\n-6D8ED3 Extract OS            00 (0) 'MS-DOS'\n-6D8ED4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8ED6 Compression Method    0000 (0) 'Stored'\n-6D8ED8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8EDC CRC                   F08690D4 (4035350740)\n-6D8EE0 Compressed Size       000007FC (2044)\n-6D8EE4 Uncompressed Size     000007FC (2044)\n-6D8EE8 Filename Length       0027 (39)\n-6D8EEA Extra Length          0009 (9)\n-6D8EEC Comment Length        0000 (0)\n-6D8EEE Disk Start            0000 (0)\n-6D8EF0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8EF2 Ext File Attributes   00000000 (0)\n-6D8EF6 Local Header Offset   001510BA (1380538)\n-6D8EFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8EFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8F21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8F23   Length              0005 (5)\n-6D8F25   Flags               01 (1) 'Modification'\n-6D8F26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8F2A CENTRAL HEADER #511   02014B50 (33639248)\n-6D8F2E Created Zip Spec      14 (20) '2.0'\n-6D8F2F Created OS            00 (0) 'MS-DOS'\n-6D8F30 Extract Zip Spec      14 (20) '2.0'\n-6D8F31 Extract OS            00 (0) 'MS-DOS'\n-6D8F32 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8F34 Compression Method    0000 (0) 'Stored'\n-6D8F36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8F3A CRC                   79872C8E (2038901902)\n-6D8F3E Compressed Size       000012BE (4798)\n-6D8F42 Uncompressed Size     000012BE (4798)\n-6D8F46 Filename Length       0021 (33)\n-6D8F48 Extra Length          0009 (9)\n-6D8F4A Comment Length        0000 (0)\n-6D8F4C Disk Start            0000 (0)\n-6D8F4E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8F50 Ext File Attributes   00000000 (0)\n-6D8F54 Local Header Offset   00151914 (1382676)\n-6D8F58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8F58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8F79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8F7B   Length              0005 (5)\n-6D8F7D   Flags               01 (1) 'Modification'\n-6D8F7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8F82 CENTRAL HEADER #512   02014B50 (33639248)\n-6D8F86 Created Zip Spec      14 (20) '2.0'\n-6D8F87 Created OS            00 (0) 'MS-DOS'\n-6D8F88 Extract Zip Spec      14 (20) '2.0'\n-6D8F89 Extract OS            00 (0) 'MS-DOS'\n-6D8F8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8F8C Compression Method    0000 (0) 'Stored'\n-6D8F8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8F92 CRC                   037ECE86 (58642054)\n-6D8F96 Compressed Size       00002BF5 (11253)\n-6D8F9A Uncompressed Size     00002BF5 (11253)\n-6D8F9E Filename Length       0025 (37)\n-6D8FA0 Extra Length          0009 (9)\n-6D8FA2 Comment Length        0000 (0)\n-6D8FA4 Disk Start            0000 (0)\n-6D8FA6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D8FA8 Ext File Attributes   00000000 (0)\n-6D8FAC Local Header Offset   00152C2A (1387562)\n-6D8FB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D8FB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D8FD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D8FD7   Length              0005 (5)\n-6D8FD9   Flags               01 (1) 'Modification'\n-6D8FDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D8FDE CENTRAL HEADER #513   02014B50 (33639248)\n-6D8FE2 Created Zip Spec      14 (20) '2.0'\n-6D8FE3 Created OS            00 (0) 'MS-DOS'\n-6D8FE4 Extract Zip Spec      14 (20) '2.0'\n-6D8FE5 Extract OS            00 (0) 'MS-DOS'\n-6D8FE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D8FE8 Compression Method    0000 (0) 'Stored'\n-6D8FEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D8FEE CRC                   FF29698F (4280904079)\n-6D8FF2 Compressed Size       00000659 (1625)\n-6D8FF6 Uncompressed Size     00000659 (1625)\n-6D8FFA Filename Length       0027 (39)\n-6D8FFC Extra Length          0009 (9)\n-6D8FFE Comment Length        0000 (0)\n-6D9000 Disk Start            0000 (0)\n-6D9002 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9004 Ext File Attributes   00000000 (0)\n-6D9008 Local Header Offset   0015587B (1398907)\n-6D900C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D900C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9035   Length              0005 (5)\n-6D9037   Flags               01 (1) 'Modification'\n-6D9038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D903C CENTRAL HEADER #514   02014B50 (33639248)\n-6D9040 Created Zip Spec      14 (20) '2.0'\n-6D9041 Created OS            00 (0) 'MS-DOS'\n-6D9042 Extract Zip Spec      14 (20) '2.0'\n-6D9043 Extract OS            00 (0) 'MS-DOS'\n-6D9044 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9046 Compression Method    0000 (0) 'Stored'\n-6D9048 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D904C CRC                   F6E65C00 (4142291968)\n-6D9050 Compressed Size       00001C4D (7245)\n-6D9054 Uncompressed Size     00001C4D (7245)\n-6D9058 Filename Length       0028 (40)\n-6D905A Extra Length          0009 (9)\n-6D905C Comment Length        0000 (0)\n-6D905E Disk Start            0000 (0)\n-6D9060 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9062 Ext File Attributes   00000000 (0)\n-6D9066 Local Header Offset   00155F32 (1400626)\n-6D906A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D906A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9092 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9094   Length              0005 (5)\n-6D9096   Flags               01 (1) 'Modification'\n-6D9097   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D909B CENTRAL HEADER #515   02014B50 (33639248)\n-6D909F Created Zip Spec      14 (20) '2.0'\n-6D90A0 Created OS            00 (0) 'MS-DOS'\n-6D90A1 Extract Zip Spec      14 (20) '2.0'\n-6D90A2 Extract OS            00 (0) 'MS-DOS'\n-6D90A3 General Purpose Flag  0000 (0)\n-6D90A5 Compression Method    0000 (0) 'Stored'\n-6D90A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D90AB CRC                   00000000 (0)\n-6D90AF Compressed Size       00000000 (0)\n-6D90B3 Uncompressed Size     00000000 (0)\n-6D90B7 Filename Length       001E (30)\n-6D90B9 Extra Length          0009 (9)\n-6D90BB Comment Length        0000 (0)\n-6D90BD Disk Start            0000 (0)\n-6D90BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D90C1 Ext File Attributes   00000000 (0)\n-6D90C5 Local Header Offset   00157BDE (1407966)\n-6D90C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D90C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D90E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D90E9   Length              0005 (5)\n-6D90EB   Flags               01 (1) 'Modification'\n-6D90EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D90F0 CENTRAL HEADER #516   02014B50 (33639248)\n-6D90F4 Created Zip Spec      14 (20) '2.0'\n-6D90F5 Created OS            00 (0) 'MS-DOS'\n-6D90F6 Extract Zip Spec      14 (20) '2.0'\n-6D90F7 Extract OS            00 (0) 'MS-DOS'\n-6D90F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D90FA Compression Method    0000 (0) 'Stored'\n-6D90FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9100 CRC                   54F4EBB3 (1425337267)\n-6D9104 Compressed Size       00000554 (1364)\n-6D9108 Uncompressed Size     00000554 (1364)\n-6D910C Filename Length       002A (42)\n-6D910E Extra Length          0009 (9)\n-6D9110 Comment Length        0000 (0)\n-6D9112 Disk Start            0000 (0)\n-6D9114 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9116 Ext File Attributes   00000000 (0)\n-6D911A Local Header Offset   00157C23 (1408035)\n-6D911E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D911E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9148 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D914A   Length              0005 (5)\n-6D914C   Flags               01 (1) 'Modification'\n-6D914D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9151 CENTRAL HEADER #517   02014B50 (33639248)\n-6D9155 Created Zip Spec      14 (20) '2.0'\n-6D9156 Created OS            00 (0) 'MS-DOS'\n-6D9157 Extract Zip Spec      14 (20) '2.0'\n-6D9158 Extract OS            00 (0) 'MS-DOS'\n-6D9159 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D915B Compression Method    0000 (0) 'Stored'\n-6D915D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9161 CRC                   22C3EE20 (583265824)\n-6D9165 Compressed Size       000003CD (973)\n-6D9169 Uncompressed Size     000003CD (973)\n-6D916D Filename Length       0036 (54)\n-6D916F Extra Length          0009 (9)\n-6D9171 Comment Length        0000 (0)\n-6D9173 Disk Start            0000 (0)\n-6D9175 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9177 Ext File Attributes   00000000 (0)\n-6D917B Local Header Offset   001581D8 (1409496)\n-6D917F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D917F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D91B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D91B7   Length              0005 (5)\n-6D91B9   Flags               01 (1) 'Modification'\n-6D91BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D91BE CENTRAL HEADER #518   02014B50 (33639248)\n-6D91C2 Created Zip Spec      14 (20) '2.0'\n-6D91C3 Created OS            00 (0) 'MS-DOS'\n-6D91C4 Extract Zip Spec      14 (20) '2.0'\n-6D91C5 Extract OS            00 (0) 'MS-DOS'\n-6D91C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D91C8 Compression Method    0000 (0) 'Stored'\n-6D91CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D91CE CRC                   1E2DFE7D (506330749)\n-6D91D2 Compressed Size       00000684 (1668)\n-6D91D6 Uncompressed Size     00000684 (1668)\n-6D91DA Filename Length       002C (44)\n-6D91DC Extra Length          0009 (9)\n-6D91DE Comment Length        0000 (0)\n-6D91E0 Disk Start            0000 (0)\n-6D91E2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D91E4 Ext File Attributes   00000000 (0)\n-6D91E8 Local Header Offset   00158612 (1410578)\n-6D91EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D91EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9218 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D921A   Length              0005 (5)\n-6D921C   Flags               01 (1) 'Modification'\n-6D921D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9221 CENTRAL HEADER #519   02014B50 (33639248)\n-6D9225 Created Zip Spec      14 (20) '2.0'\n-6D9226 Created OS            00 (0) 'MS-DOS'\n-6D9227 Extract Zip Spec      14 (20) '2.0'\n-6D9228 Extract OS            00 (0) 'MS-DOS'\n-6D9229 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D922B Compression Method    0000 (0) 'Stored'\n-6D922D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9231 CRC                   E0114FF9 (3759230969)\n-6D9235 Compressed Size       000007CF (1999)\n-6D9239 Uncompressed Size     000007CF (1999)\n-6D923D Filename Length       002E (46)\n-6D923F Extra Length          0009 (9)\n-6D9241 Comment Length        0000 (0)\n-6D9243 Disk Start            0000 (0)\n-6D9245 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9247 Ext File Attributes   00000000 (0)\n-6D924B Local Header Offset   00158CF9 (1412345)\n-6D924F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D924F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D927D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D927F   Length              0005 (5)\n-6D9281   Flags               01 (1) 'Modification'\n-6D9282   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9286 CENTRAL HEADER #520   02014B50 (33639248)\n-6D928A Created Zip Spec      14 (20) '2.0'\n-6D928B Created OS            00 (0) 'MS-DOS'\n-6D928C Extract Zip Spec      14 (20) '2.0'\n-6D928D Extract OS            00 (0) 'MS-DOS'\n-6D928E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9290 Compression Method    0000 (0) 'Stored'\n-6D9292 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9296 CRC                   C476DBA7 (3296123815)\n-6D929A Compressed Size       000003B5 (949)\n-6D929E Uncompressed Size     000003B5 (949)\n-6D92A2 Filename Length       0029 (41)\n-6D92A4 Extra Length          0009 (9)\n-6D92A6 Comment Length        0000 (0)\n-6D92A8 Disk Start            0000 (0)\n-6D92AA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D92AC Ext File Attributes   00000000 (0)\n-6D92B0 Local Header Offset   0015952D (1414445)\n-6D92B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D92B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D92DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D92DF   Length              0005 (5)\n-6D92E1   Flags               01 (1) 'Modification'\n-6D92E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D92E6 CENTRAL HEADER #521   02014B50 (33639248)\n-6D92EA Created Zip Spec      14 (20) '2.0'\n-6D92EB Created OS            00 (0) 'MS-DOS'\n-6D92EC Extract Zip Spec      14 (20) '2.0'\n-6D92ED Extract OS            00 (0) 'MS-DOS'\n-6D92EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D92F0 Compression Method    0000 (0) 'Stored'\n-6D92F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D92F6 CRC                   A69542CD (2794799821)\n-6D92FA Compressed Size       00000A92 (2706)\n-6D92FE Uncompressed Size     00000A92 (2706)\n-6D9302 Filename Length       0029 (41)\n-6D9304 Extra Length          0009 (9)\n-6D9306 Comment Length        0000 (0)\n-6D9308 Disk Start            0000 (0)\n-6D930A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D930C Ext File Attributes   00000000 (0)\n-6D9310 Local Header Offset   00159942 (1415490)\n-6D9314 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9314: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D933D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D933F   Length              0005 (5)\n-6D9341   Flags               01 (1) 'Modification'\n-6D9342   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9346 CENTRAL HEADER #522   02014B50 (33639248)\n-6D934A Created Zip Spec      14 (20) '2.0'\n-6D934B Created OS            00 (0) 'MS-DOS'\n-6D934C Extract Zip Spec      14 (20) '2.0'\n-6D934D Extract OS            00 (0) 'MS-DOS'\n-6D934E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9350 Compression Method    0000 (0) 'Stored'\n-6D9352 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9356 CRC                   A83F3E21 (2822716961)\n-6D935A Compressed Size       000004DA (1242)\n-6D935E Uncompressed Size     000004DA (1242)\n-6D9362 Filename Length       0030 (48)\n-6D9364 Extra Length          0009 (9)\n-6D9366 Comment Length        0000 (0)\n-6D9368 Disk Start            0000 (0)\n-6D936A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D936C Ext File Attributes   00000000 (0)\n-6D9370 Local Header Offset   0015A434 (1418292)\n-6D9374 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9374: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D93A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D93A6   Length              0005 (5)\n-6D93A8   Flags               01 (1) 'Modification'\n-6D93A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D93AD CENTRAL HEADER #523   02014B50 (33639248)\n-6D93B1 Created Zip Spec      14 (20) '2.0'\n-6D93B2 Created OS            00 (0) 'MS-DOS'\n-6D93B3 Extract Zip Spec      14 (20) '2.0'\n-6D93B4 Extract OS            00 (0) 'MS-DOS'\n-6D93B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D93B7 Compression Method    0000 (0) 'Stored'\n-6D93B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D93BD CRC                   75803CF4 (1971338484)\n-6D93C1 Compressed Size       0000059F (1439)\n-6D93C5 Uncompressed Size     0000059F (1439)\n-6D93C9 Filename Length       0030 (48)\n-6D93CB Extra Length          0009 (9)\n-6D93CD Comment Length        0000 (0)\n-6D93CF Disk Start            0000 (0)\n-6D93D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D93D3 Ext File Attributes   00000000 (0)\n-6D93D7 Local Header Offset   0015A975 (1419637)\n-6D93DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D93DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D940B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D940D   Length              0005 (5)\n-6D940F   Flags               01 (1) 'Modification'\n-6D9410   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9414 CENTRAL HEADER #524   02014B50 (33639248)\n-6D9418 Created Zip Spec      14 (20) '2.0'\n-6D9419 Created OS            00 (0) 'MS-DOS'\n-6D941A Extract Zip Spec      14 (20) '2.0'\n-6D941B Extract OS            00 (0) 'MS-DOS'\n-6D941C General Purpose Flag  0000 (0)\n-6D941E Compression Method    0000 (0) 'Stored'\n-6D9420 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9424 CRC                   00000000 (0)\n-6D9428 Compressed Size       00000000 (0)\n-6D942C Uncompressed Size     00000000 (0)\n-6D9430 Filename Length       002A (42)\n-6D9432 Extra Length          0009 (9)\n-6D9434 Comment Length        0000 (0)\n-6D9436 Disk Start            0000 (0)\n-6D9438 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D943A Ext File Attributes   00000000 (0)\n-6D943E Local Header Offset   0015AF7B (1421179)\n-6D9442 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9442: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D946C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D946E   Length              0005 (5)\n-6D9470   Flags               01 (1) 'Modification'\n-6D9471   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9475 CENTRAL HEADER #525   02014B50 (33639248)\n-6D9479 Created Zip Spec      14 (20) '2.0'\n-6D947A Created OS            00 (0) 'MS-DOS'\n-6D947B Extract Zip Spec      14 (20) '2.0'\n-6D947C Extract OS            00 (0) 'MS-DOS'\n-6D947D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D947F Compression Method    0000 (0) 'Stored'\n-6D9481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9485 CRC                   823F4C5B (2185186395)\n-6D9489 Compressed Size       000003EC (1004)\n-6D948D Uncompressed Size     000003EC (1004)\n-6D9491 Filename Length       0042 (66)\n-6D9493 Extra Length          0009 (9)\n-6D9495 Comment Length        0000 (0)\n-6D9497 Disk Start            0000 (0)\n-6D9499 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D949B Ext File Attributes   00000000 (0)\n-6D949F Local Header Offset   0015AFCC (1421260)\n-6D94A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D94A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D94E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D94E7   Length              0005 (5)\n-6D94E9   Flags               01 (1) 'Modification'\n-6D94EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D94EE CENTRAL HEADER #526   02014B50 (33639248)\n-6D94F2 Created Zip Spec      14 (20) '2.0'\n-6D94F3 Created OS            00 (0) 'MS-DOS'\n-6D94F4 Extract Zip Spec      14 (20) '2.0'\n-6D94F5 Extract OS            00 (0) 'MS-DOS'\n-6D94F6 General Purpose Flag  0000 (0)\n-6D94F8 Compression Method    0000 (0) 'Stored'\n-6D94FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D94FE CRC                   00000000 (0)\n-6D9502 Compressed Size       00000000 (0)\n-6D9506 Uncompressed Size     00000000 (0)\n-6D950A Filename Length       001F (31)\n-6D950C Extra Length          0009 (9)\n-6D950E Comment Length        0000 (0)\n-6D9510 Disk Start            0000 (0)\n-6D9512 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9514 Ext File Attributes   00000000 (0)\n-6D9518 Local Header Offset   0015B431 (1422385)\n-6D951C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D951C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D953B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D953D   Length              0005 (5)\n-6D953F   Flags               01 (1) 'Modification'\n-6D9540   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9544 CENTRAL HEADER #527   02014B50 (33639248)\n-6D9548 Created Zip Spec      14 (20) '2.0'\n-6D9549 Created OS            00 (0) 'MS-DOS'\n-6D954A Extract Zip Spec      14 (20) '2.0'\n-6D954B Extract OS            00 (0) 'MS-DOS'\n-6D954C General Purpose Flag  0000 (0)\n-6D954E Compression Method    0000 (0) 'Stored'\n-6D9550 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9554 CRC                   00000000 (0)\n-6D9558 Compressed Size       00000000 (0)\n-6D955C Uncompressed Size     00000000 (0)\n-6D9560 Filename Length       0025 (37)\n-6D9562 Extra Length          0009 (9)\n-6D9564 Comment Length        0000 (0)\n-6D9566 Disk Start            0000 (0)\n-6D9568 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D956A Ext File Attributes   00000000 (0)\n-6D956E Local Header Offset   0015B477 (1422455)\n-6D9572 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9572: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9597 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9599   Length              0005 (5)\n-6D959B   Flags               01 (1) 'Modification'\n-6D959C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D95A0 CENTRAL HEADER #528   02014B50 (33639248)\n-6D95A4 Created Zip Spec      14 (20) '2.0'\n-6D95A5 Created OS            00 (0) 'MS-DOS'\n-6D95A6 Extract Zip Spec      14 (20) '2.0'\n-6D95A7 Extract OS            00 (0) 'MS-DOS'\n-6D95A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D95AA Compression Method    0000 (0) 'Stored'\n-6D95AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D95B0 CRC                   68E206BA (1759643322)\n-6D95B4 Compressed Size       000013F7 (5111)\n-6D95B8 Uncompressed Size     000013F7 (5111)\n-6D95BC Filename Length       0037 (55)\n-6D95BE Extra Length          0009 (9)\n-6D95C0 Comment Length        0000 (0)\n-6D95C2 Disk Start            0000 (0)\n-6D95C4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D95C6 Ext File Attributes   00000000 (0)\n-6D95CA Local Header Offset   0015B4C3 (1422531)\n-6D95CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D95CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9605 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9607   Length              0005 (5)\n-6D9609   Flags               01 (1) 'Modification'\n-6D960A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D960E CENTRAL HEADER #529   02014B50 (33639248)\n-6D9612 Created Zip Spec      14 (20) '2.0'\n-6D9613 Created OS            00 (0) 'MS-DOS'\n-6D9614 Extract Zip Spec      14 (20) '2.0'\n-6D9615 Extract OS            00 (0) 'MS-DOS'\n-6D9616 General Purpose Flag  0000 (0)\n-6D9618 Compression Method    0000 (0) 'Stored'\n-6D961A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D961E CRC                   00000000 (0)\n-6D9622 Compressed Size       00000000 (0)\n-6D9626 Uncompressed Size     00000000 (0)\n-6D962A Filename Length       0024 (36)\n-6D962C Extra Length          0009 (9)\n-6D962E Comment Length        0000 (0)\n-6D9630 Disk Start            0000 (0)\n-6D9632 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9634 Ext File Attributes   00000000 (0)\n-6D9638 Local Header Offset   0015C928 (1427752)\n-6D963C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D963C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9660 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9662   Length              0005 (5)\n-6D9664   Flags               01 (1) 'Modification'\n-6D9665   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9669 CENTRAL HEADER #530   02014B50 (33639248)\n-6D966D Created Zip Spec      14 (20) '2.0'\n-6D966E Created OS            00 (0) 'MS-DOS'\n-6D966F Extract Zip Spec      14 (20) '2.0'\n-6D9670 Extract OS            00 (0) 'MS-DOS'\n-6D9671 General Purpose Flag  0000 (0)\n-6D9673 Compression Method    0000 (0) 'Stored'\n-6D9675 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9679 CRC                   00000000 (0)\n-6D967D Compressed Size       00000000 (0)\n-6D9681 Uncompressed Size     00000000 (0)\n-6D9685 Filename Length       002C (44)\n-6D9687 Extra Length          0009 (9)\n-6D9689 Comment Length        0000 (0)\n-6D968B Disk Start            0000 (0)\n-6D968D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D968F Ext File Attributes   00000000 (0)\n-6D9693 Local Header Offset   0015C973 (1427827)\n-6D9697 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9697: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D96C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D96C5   Length              0005 (5)\n-6D96C7   Flags               01 (1) 'Modification'\n-6D96C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D96CC CENTRAL HEADER #531   02014B50 (33639248)\n-6D96D0 Created Zip Spec      14 (20) '2.0'\n-6D96D1 Created OS            00 (0) 'MS-DOS'\n-6D96D2 Extract Zip Spec      14 (20) '2.0'\n-6D96D3 Extract OS            00 (0) 'MS-DOS'\n-6D96D4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D96D6 Compression Method    0000 (0) 'Stored'\n-6D96D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D96DC CRC                   CC53D052 (3428044882)\n-6D96E0 Compressed Size       000003D7 (983)\n-6D96E4 Uncompressed Size     000003D7 (983)\n-6D96E8 Filename Length       003C (60)\n-6D96EA Extra Length          0009 (9)\n-6D96EC Comment Length        0000 (0)\n-6D96EE Disk Start            0000 (0)\n-6D96F0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D96F2 Ext File Attributes   00000000 (0)\n-6D96F6 Local Header Offset   0015C9C6 (1427910)\n-6D96FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D96FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9736 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9738   Length              0005 (5)\n-6D973A   Flags               01 (1) 'Modification'\n-6D973B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D973F CENTRAL HEADER #532   02014B50 (33639248)\n-6D9743 Created Zip Spec      14 (20) '2.0'\n-6D9744 Created OS            00 (0) 'MS-DOS'\n-6D9745 Extract Zip Spec      14 (20) '2.0'\n-6D9746 Extract OS            00 (0) 'MS-DOS'\n-6D9747 General Purpose Flag  0000 (0)\n-6D9749 Compression Method    0000 (0) 'Stored'\n-6D974B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D974F CRC                   00000000 (0)\n-6D9753 Compressed Size       00000000 (0)\n-6D9757 Uncompressed Size     00000000 (0)\n-6D975B Filename Length       0023 (35)\n-6D975D Extra Length          0009 (9)\n-6D975F Comment Length        0000 (0)\n-6D9761 Disk Start            0000 (0)\n-6D9763 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9765 Ext File Attributes   00000000 (0)\n-6D9769 Local Header Offset   0015CE10 (1429008)\n-6D976D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D976D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9790 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9792   Length              0005 (5)\n-6D9794   Flags               01 (1) 'Modification'\n-6D9795   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9799 CENTRAL HEADER #533   02014B50 (33639248)\n-6D979D Created Zip Spec      14 (20) '2.0'\n-6D979E Created OS            00 (0) 'MS-DOS'\n-6D979F Extract Zip Spec      14 (20) '2.0'\n-6D97A0 Extract OS            00 (0) 'MS-DOS'\n-6D97A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D97A3 Compression Method    0000 (0) 'Stored'\n-6D97A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D97A9 CRC                   6A4EF718 (1783559960)\n-6D97AD Compressed Size       00000580 (1408)\n-6D97B1 Uncompressed Size     00000580 (1408)\n-6D97B5 Filename Length       003B (59)\n-6D97B7 Extra Length          0009 (9)\n-6D97B9 Comment Length        0000 (0)\n-6D97BB Disk Start            0000 (0)\n-6D97BD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D97BF Ext File Attributes   00000000 (0)\n-6D97C3 Local Header Offset   0015CE5A (1429082)\n-6D97C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D97C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9802 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9804   Length              0005 (5)\n-6D9806   Flags               01 (1) 'Modification'\n-6D9807   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D980B CENTRAL HEADER #534   02014B50 (33639248)\n-6D980F Created Zip Spec      14 (20) '2.0'\n-6D9810 Created OS            00 (0) 'MS-DOS'\n-6D9811 Extract Zip Spec      14 (20) '2.0'\n-6D9812 Extract OS            00 (0) 'MS-DOS'\n-6D9813 General Purpose Flag  0000 (0)\n-6D9815 Compression Method    0000 (0) 'Stored'\n-6D9817 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D981B CRC                   00000000 (0)\n-6D981F Compressed Size       00000000 (0)\n-6D9823 Uncompressed Size     00000000 (0)\n-6D9827 Filename Length       0026 (38)\n-6D9829 Extra Length          0009 (9)\n-6D982B Comment Length        0000 (0)\n-6D982D Disk Start            0000 (0)\n-6D982F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9831 Ext File Attributes   00000000 (0)\n-6D9835 Local Header Offset   0015D44C (1430604)\n-6D9839 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9839: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D985F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9861   Length              0005 (5)\n-6D9863   Flags               01 (1) 'Modification'\n-6D9864   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9868 CENTRAL HEADER #535   02014B50 (33639248)\n-6D986C Created Zip Spec      14 (20) '2.0'\n-6D986D Created OS            00 (0) 'MS-DOS'\n-6D986E Extract Zip Spec      14 (20) '2.0'\n-6D986F Extract OS            00 (0) 'MS-DOS'\n-6D9870 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9872 Compression Method    0000 (0) 'Stored'\n-6D9874 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9878 CRC                   4A3ABC52 (1245363282)\n-6D987C Compressed Size       000003DD (989)\n-6D9880 Uncompressed Size     000003DD (989)\n-6D9884 Filename Length       003D (61)\n-6D9886 Extra Length          0009 (9)\n-6D9888 Comment Length        0000 (0)\n-6D988A Disk Start            0000 (0)\n-6D988C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D988E Ext File Attributes   00000000 (0)\n-6D9892 Local Header Offset   0015D499 (1430681)\n-6D9896 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9896: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D98D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D98D5   Length              0005 (5)\n-6D98D7   Flags               01 (1) 'Modification'\n-6D98D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D98DC CENTRAL HEADER #536   02014B50 (33639248)\n-6D98E0 Created Zip Spec      14 (20) '2.0'\n-6D98E1 Created OS            00 (0) 'MS-DOS'\n-6D98E2 Extract Zip Spec      14 (20) '2.0'\n-6D98E3 Extract OS            00 (0) 'MS-DOS'\n-6D98E4 General Purpose Flag  0000 (0)\n-6D98E6 Compression Method    0000 (0) 'Stored'\n-6D98E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D98EC CRC                   00000000 (0)\n-6D98F0 Compressed Size       00000000 (0)\n-6D98F4 Uncompressed Size     00000000 (0)\n-6D98F8 Filename Length       001E (30)\n-6D98FA Extra Length          0009 (9)\n-6D98FC Comment Length        0000 (0)\n-6D98FE Disk Start            0000 (0)\n-6D9900 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9902 Ext File Attributes   00000000 (0)\n-6D9906 Local Header Offset   0015D8EA (1431786)\n-6D990A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D990A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9928 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D992A   Length              0005 (5)\n-6D992C   Flags               01 (1) 'Modification'\n-6D992D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9931 CENTRAL HEADER #537   02014B50 (33639248)\n-6D9935 Created Zip Spec      14 (20) '2.0'\n-6D9936 Created OS            00 (0) 'MS-DOS'\n-6D9937 Extract Zip Spec      14 (20) '2.0'\n-6D9938 Extract OS            00 (0) 'MS-DOS'\n-6D9939 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D993B Compression Method    0000 (0) 'Stored'\n-6D993D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9941 CRC                   00900547 (9438535)\n-6D9945 Compressed Size       000003BF (959)\n-6D9949 Uncompressed Size     000003BF (959)\n-6D994D Filename Length       002E (46)\n-6D994F Extra Length          0009 (9)\n-6D9951 Comment Length        0000 (0)\n-6D9953 Disk Start            0000 (0)\n-6D9955 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9957 Ext File Attributes   00000000 (0)\n-6D995B Local Header Offset   0015D92F (1431855)\n-6D995F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D995F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D998D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D998F   Length              0005 (5)\n-6D9991   Flags               01 (1) 'Modification'\n-6D9992   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9996 CENTRAL HEADER #538   02014B50 (33639248)\n-6D999A Created Zip Spec      14 (20) '2.0'\n-6D999B Created OS            00 (0) 'MS-DOS'\n-6D999C Extract Zip Spec      14 (20) '2.0'\n-6D999D Extract OS            00 (0) 'MS-DOS'\n-6D999E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D99A0 Compression Method    0000 (0) 'Stored'\n-6D99A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D99A6 CRC                   C50B0632 (3305834034)\n-6D99AA Compressed Size       000007AE (1966)\n-6D99AE Uncompressed Size     000007AE (1966)\n-6D99B2 Filename Length       0033 (51)\n-6D99B4 Extra Length          0009 (9)\n-6D99B6 Comment Length        0000 (0)\n-6D99B8 Disk Start            0000 (0)\n-6D99BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D99BC Ext File Attributes   00000000 (0)\n-6D99C0 Local Header Offset   0015DD53 (1432915)\n-6D99C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D99C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D99F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D99F9   Length              0005 (5)\n-6D99FB   Flags               01 (1) 'Modification'\n-6D99FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9A00 CENTRAL HEADER #539   02014B50 (33639248)\n-6D9A04 Created Zip Spec      14 (20) '2.0'\n-6D9A05 Created OS            00 (0) 'MS-DOS'\n-6D9A06 Extract Zip Spec      14 (20) '2.0'\n-6D9A07 Extract OS            00 (0) 'MS-DOS'\n-6D9A08 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9A0A Compression Method    0000 (0) 'Stored'\n-6D9A0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9A10 CRC                   C514DA82 (3306478210)\n-6D9A14 Compressed Size       00000465 (1125)\n-6D9A18 Uncompressed Size     00000465 (1125)\n-6D9A1C Filename Length       0031 (49)\n-6D9A1E Extra Length          0009 (9)\n-6D9A20 Comment Length        0000 (0)\n-6D9A22 Disk Start            0000 (0)\n-6D9A24 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9A26 Ext File Attributes   00000000 (0)\n-6D9A2A Local Header Offset   0015E56B (1434987)\n-6D9A2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9A2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9A5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9A61   Length              0005 (5)\n-6D9A63   Flags               01 (1) 'Modification'\n-6D9A64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9A68 CENTRAL HEADER #540   02014B50 (33639248)\n-6D9A6C Created Zip Spec      14 (20) '2.0'\n-6D9A6D Created OS            00 (0) 'MS-DOS'\n-6D9A6E Extract Zip Spec      14 (20) '2.0'\n-6D9A6F Extract OS            00 (0) 'MS-DOS'\n-6D9A70 General Purpose Flag  0000 (0)\n-6D9A72 Compression Method    0000 (0) 'Stored'\n-6D9A74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9A78 CRC                   00000000 (0)\n-6D9A7C Compressed Size       00000000 (0)\n-6D9A80 Uncompressed Size     00000000 (0)\n-6D9A84 Filename Length       001E (30)\n-6D9A86 Extra Length          0009 (9)\n-6D9A88 Comment Length        0000 (0)\n-6D9A8A Disk Start            0000 (0)\n-6D9A8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9A8E Ext File Attributes   00000000 (0)\n-6D9A92 Local Header Offset   0015EA38 (1436216)\n-6D9A96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9A96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9AB6   Length              0005 (5)\n-6D9AB8   Flags               01 (1) 'Modification'\n-6D9AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9ABD CENTRAL HEADER #541   02014B50 (33639248)\n-6D9AC1 Created Zip Spec      14 (20) '2.0'\n-6D9AC2 Created OS            00 (0) 'MS-DOS'\n-6D9AC3 Extract Zip Spec      14 (20) '2.0'\n-6D9AC4 Extract OS            00 (0) 'MS-DOS'\n-6D9AC5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9AC7 Compression Method    0000 (0) 'Stored'\n-6D9AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9ACD CRC                   ECC626C6 (3972409030)\n-6D9AD1 Compressed Size       00000B01 (2817)\n-6D9AD5 Uncompressed Size     00000B01 (2817)\n-6D9AD9 Filename Length       002B (43)\n-6D9ADB Extra Length          0009 (9)\n-6D9ADD Comment Length        0000 (0)\n-6D9ADF Disk Start            0000 (0)\n-6D9AE1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9AE3 Ext File Attributes   00000000 (0)\n-6D9AE7 Local Header Offset   0015EA7D (1436285)\n-6D9AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9B16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9B18   Length              0005 (5)\n-6D9B1A   Flags               01 (1) 'Modification'\n-6D9B1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9B1F CENTRAL HEADER #542   02014B50 (33639248)\n-6D9B23 Created Zip Spec      14 (20) '2.0'\n-6D9B24 Created OS            00 (0) 'MS-DOS'\n-6D9B25 Extract Zip Spec      14 (20) '2.0'\n-6D9B26 Extract OS            00 (0) 'MS-DOS'\n-6D9B27 General Purpose Flag  0000 (0)\n-6D9B29 Compression Method    0000 (0) 'Stored'\n-6D9B2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9B2F CRC                   00000000 (0)\n-6D9B33 Compressed Size       00000000 (0)\n-6D9B37 Uncompressed Size     00000000 (0)\n-6D9B3B Filename Length       001D (29)\n-6D9B3D Extra Length          0009 (9)\n-6D9B3F Comment Length        0000 (0)\n-6D9B41 Disk Start            0000 (0)\n-6D9B43 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9B45 Ext File Attributes   00000000 (0)\n-6D9B49 Local Header Offset   0015F5E0 (1439200)\n-6D9B4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9B4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9B6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9B6C   Length              0005 (5)\n-6D9B6E   Flags               01 (1) 'Modification'\n-6D9B6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9B73 CENTRAL HEADER #543   02014B50 (33639248)\n-6D9B77 Created Zip Spec      14 (20) '2.0'\n-6D9B78 Created OS            00 (0) 'MS-DOS'\n-6D9B79 Extract Zip Spec      14 (20) '2.0'\n-6D9B7A Extract OS            00 (0) 'MS-DOS'\n-6D9B7B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9B7D Compression Method    0000 (0) 'Stored'\n-6D9B7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9B83 CRC                   1456EFA1 (341241761)\n-6D9B87 Compressed Size       000003BB (955)\n-6D9B8B Uncompressed Size     000003BB (955)\n-6D9B8F Filename Length       002C (44)\n-6D9B91 Extra Length          0009 (9)\n-6D9B93 Comment Length        0000 (0)\n-6D9B95 Disk Start            0000 (0)\n-6D9B97 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9B99 Ext File Attributes   00000000 (0)\n-6D9B9D Local Header Offset   0015F624 (1439268)\n-6D9BA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9BA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9BCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9BCF   Length              0005 (5)\n-6D9BD1   Flags               01 (1) 'Modification'\n-6D9BD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9BD6 CENTRAL HEADER #544   02014B50 (33639248)\n-6D9BDA Created Zip Spec      14 (20) '2.0'\n-6D9BDB Created OS            00 (0) 'MS-DOS'\n-6D9BDC Extract Zip Spec      14 (20) '2.0'\n-6D9BDD Extract OS            00 (0) 'MS-DOS'\n-6D9BDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9BE0 Compression Method    0000 (0) 'Stored'\n-6D9BE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9BE6 CRC                   E92C073F (3911976767)\n-6D9BEA Compressed Size       000003B9 (953)\n-6D9BEE Uncompressed Size     000003B9 (953)\n-6D9BF2 Filename Length       002B (43)\n-6D9BF4 Extra Length          0009 (9)\n-6D9BF6 Comment Length        0000 (0)\n-6D9BF8 Disk Start            0000 (0)\n-6D9BFA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9BFC Ext File Attributes   00000000 (0)\n-6D9C00 Local Header Offset   0015FA42 (1440322)\n-6D9C04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9C04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9C2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9C31   Length              0005 (5)\n-6D9C33   Flags               01 (1) 'Modification'\n-6D9C34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9C38 CENTRAL HEADER #545   02014B50 (33639248)\n-6D9C3C Created Zip Spec      14 (20) '2.0'\n-6D9C3D Created OS            00 (0) 'MS-DOS'\n-6D9C3E Extract Zip Spec      14 (20) '2.0'\n-6D9C3F Extract OS            00 (0) 'MS-DOS'\n-6D9C40 General Purpose Flag  0000 (0)\n-6D9C42 Compression Method    0000 (0) 'Stored'\n-6D9C44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9C48 CRC                   00000000 (0)\n-6D9C4C Compressed Size       00000000 (0)\n-6D9C50 Uncompressed Size     00000000 (0)\n-6D9C54 Filename Length       0004 (4)\n-6D9C56 Extra Length          0009 (9)\n-6D9C58 Comment Length        0000 (0)\n-6D9C5A Disk Start            0000 (0)\n-6D9C5C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9C5E Ext File Attributes   00000000 (0)\n-6D9C62 Local Header Offset   0015FE5D (1441373)\n-6D9C66 Filename              'XXXX'\n-#\n-# WARNING: Offset 0x6D9C66: Filename 'XXXX'\n-#          Zero length filename\n-#\n-6D9C6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9C6C   Length              0005 (5)\n-6D9C6E   Flags               01 (1) 'Modification'\n-6D9C6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9C73 CENTRAL HEADER #546   02014B50 (33639248)\n-6D9C77 Created Zip Spec      14 (20) '2.0'\n-6D9C78 Created OS            00 (0) 'MS-DOS'\n-6D9C79 Extract Zip Spec      14 (20) '2.0'\n-6D9C7A Extract OS            00 (0) 'MS-DOS'\n-6D9C7B General Purpose Flag  0000 (0)\n-6D9C7D Compression Method    0000 (0) 'Stored'\n-6D9C7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9C83 CRC                   00000000 (0)\n-6D9C87 Compressed Size       00000000 (0)\n-6D9C8B Uncompressed Size     00000000 (0)\n-6D9C8F Filename Length       000B (11)\n-6D9C91 Extra Length          0009 (9)\n-6D9C93 Comment Length        0000 (0)\n-6D9C95 Disk Start            0000 (0)\n-6D9C97 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9C99 Ext File Attributes   00000000 (0)\n-6D9C9D Local Header Offset   0015FE88 (1441416)\n-6D9CA1 Filename              'XXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9CA1: Filename 'XXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9CAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9CAE   Length              0005 (5)\n-6D9CB0   Flags               01 (1) 'Modification'\n-6D9CB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9CB5 CENTRAL HEADER #547   02014B50 (33639248)\n-6D9CB9 Created Zip Spec      14 (20) '2.0'\n-6D9CBA Created OS            00 (0) 'MS-DOS'\n-6D9CBB Extract Zip Spec      14 (20) '2.0'\n-6D9CBC Extract OS            00 (0) 'MS-DOS'\n-6D9CBD General Purpose Flag  0000 (0)\n-6D9CBF Compression Method    0000 (0) 'Stored'\n-6D9CC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9CC5 CRC                   00000000 (0)\n-6D9CC9 Compressed Size       00000000 (0)\n-6D9CCD Uncompressed Size     00000000 (0)\n-6D9CD1 Filename Length       0011 (17)\n-6D9CD3 Extra Length          0009 (9)\n-6D9CD5 Comment Length        0000 (0)\n-6D9CD7 Disk Start            0000 (0)\n-6D9CD9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9CDB Ext File Attributes   00000000 (0)\n-6D9CDF Local Header Offset   0015FEBA (1441466)\n-6D9CE3 Filename              'XXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9CE3: Filename 'XXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9CF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9CF6   Length              0005 (5)\n-6D9CF8   Flags               01 (1) 'Modification'\n-6D9CF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9CFD CENTRAL HEADER #548   02014B50 (33639248)\n-6D9D01 Created Zip Spec      14 (20) '2.0'\n-6D9D02 Created OS            00 (0) 'MS-DOS'\n-6D9D03 Extract Zip Spec      14 (20) '2.0'\n-6D9D04 Extract OS            00 (0) 'MS-DOS'\n-6D9D05 General Purpose Flag  0000 (0)\n-6D9D07 Compression Method    0000 (0) 'Stored'\n-6D9D09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9D0D CRC                   00000000 (0)\n-6D9D11 Compressed Size       00000000 (0)\n-6D9D15 Uncompressed Size     00000000 (0)\n-6D9D19 Filename Length       0017 (23)\n-6D9D1B Extra Length          0009 (9)\n-6D9D1D Comment Length        0000 (0)\n-6D9D1F Disk Start            0000 (0)\n-6D9D21 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9D23 Ext File Attributes   00000000 (0)\n-6D9D27 Local Header Offset   0015FEF2 (1441522)\n-6D9D2B Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9D2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9D42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9D44   Length              0005 (5)\n-6D9D46   Flags               01 (1) 'Modification'\n-6D9D47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9D4B CENTRAL HEADER #549   02014B50 (33639248)\n-6D9D4F Created Zip Spec      14 (20) '2.0'\n-6D9D50 Created OS            00 (0) 'MS-DOS'\n-6D9D51 Extract Zip Spec      14 (20) '2.0'\n-6D9D52 Extract OS            00 (0) 'MS-DOS'\n-6D9D53 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9D55 Compression Method    0000 (0) 'Stored'\n-6D9D57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9D5B CRC                   4E701AB1 (1315969713)\n-6D9D5F Compressed Size       000006EA (1770)\n-6D9D63 Uncompressed Size     000006EA (1770)\n-6D9D67 Filename Length       0021 (33)\n-6D9D69 Extra Length          0009 (9)\n-6D9D6B Comment Length        0000 (0)\n-6D9D6D Disk Start            0000 (0)\n-6D9D6F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9D71 Ext File Attributes   00000000 (0)\n-6D9D75 Local Header Offset   0015FF30 (1441584)\n-6D9D79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9D79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9D9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9D9C   Length              0005 (5)\n-6D9D9E   Flags               01 (1) 'Modification'\n-6D9D9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9DA3 CENTRAL HEADER #550   02014B50 (33639248)\n-6D9DA7 Created Zip Spec      14 (20) '2.0'\n-6D9DA8 Created OS            00 (0) 'MS-DOS'\n-6D9DA9 Extract Zip Spec      14 (20) '2.0'\n-6D9DAA Extract OS            00 (0) 'MS-DOS'\n-6D9DAB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9DAD Compression Method    0000 (0) 'Stored'\n-6D9DAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9DB3 CRC                   95722913 (2507286803)\n-6D9DB7 Compressed Size       000006C2 (1730)\n-6D9DBB Uncompressed Size     000006C2 (1730)\n-6D9DBF Filename Length       0028 (40)\n-6D9DC1 Extra Length          0009 (9)\n-6D9DC3 Comment Length        0000 (0)\n-6D9DC5 Disk Start            0000 (0)\n-6D9DC7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9DC9 Ext File Attributes   00000000 (0)\n-6D9DCD Local Header Offset   00160672 (1443442)\n-6D9DD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9DD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9DF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9DFB   Length              0005 (5)\n-6D9DFD   Flags               01 (1) 'Modification'\n-6D9DFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9E02 CENTRAL HEADER #551   02014B50 (33639248)\n-6D9E06 Created Zip Spec      14 (20) '2.0'\n-6D9E07 Created OS            00 (0) 'MS-DOS'\n-6D9E08 Extract Zip Spec      14 (20) '2.0'\n-6D9E09 Extract OS            00 (0) 'MS-DOS'\n-6D9E0A General Purpose Flag  0000 (0)\n-6D9E0C Compression Method    0000 (0) 'Stored'\n-6D9E0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9E12 CRC                   00000000 (0)\n-6D9E16 Compressed Size       00000000 (0)\n-6D9E1A Uncompressed Size     00000000 (0)\n-6D9E1E Filename Length       001E (30)\n-6D9E20 Extra Length          0009 (9)\n-6D9E22 Comment Length        0000 (0)\n-6D9E24 Disk Start            0000 (0)\n-6D9E26 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9E28 Ext File Attributes   00000000 (0)\n-6D9E2C Local Header Offset   00160D93 (1445267)\n-6D9E30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9E30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9E4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9E50   Length              0005 (5)\n-6D9E52   Flags               01 (1) 'Modification'\n-6D9E53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9E57 CENTRAL HEADER #552   02014B50 (33639248)\n-6D9E5B Created Zip Spec      14 (20) '2.0'\n-6D9E5C Created OS            00 (0) 'MS-DOS'\n-6D9E5D Extract Zip Spec      14 (20) '2.0'\n-6D9E5E Extract OS            00 (0) 'MS-DOS'\n-6D9E5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9E61 Compression Method    0000 (0) 'Stored'\n-6D9E63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9E67 CRC                   0E9E2711 (245245713)\n-6D9E6B Compressed Size       000016CB (5835)\n-6D9E6F Uncompressed Size     000016CB (5835)\n-6D9E73 Filename Length       002E (46)\n-6D9E75 Extra Length          0009 (9)\n-6D9E77 Comment Length        0000 (0)\n-6D9E79 Disk Start            0000 (0)\n-6D9E7B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9E7D Ext File Attributes   00000000 (0)\n-6D9E81 Local Header Offset   00160DD8 (1445336)\n-6D9E85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9E85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9EB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9EB5   Length              0005 (5)\n-6D9EB7   Flags               01 (1) 'Modification'\n-6D9EB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9EBC CENTRAL HEADER #553   02014B50 (33639248)\n-6D9EC0 Created Zip Spec      14 (20) '2.0'\n-6D9EC1 Created OS            00 (0) 'MS-DOS'\n-6D9EC2 Extract Zip Spec      14 (20) '2.0'\n-6D9EC3 Extract OS            00 (0) 'MS-DOS'\n-6D9EC4 General Purpose Flag  0000 (0)\n-6D9EC6 Compression Method    0000 (0) 'Stored'\n-6D9EC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9ECC CRC                   00000000 (0)\n-6D9ED0 Compressed Size       00000000 (0)\n-6D9ED4 Uncompressed Size     00000000 (0)\n-6D9ED8 Filename Length       001F (31)\n-6D9EDA Extra Length          0009 (9)\n-6D9EDC Comment Length        0000 (0)\n-6D9EDE Disk Start            0000 (0)\n-6D9EE0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9EE2 Ext File Attributes   00000000 (0)\n-6D9EE6 Local Header Offset   00162508 (1451272)\n-6D9EEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9EEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9F09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9F0B   Length              0005 (5)\n-6D9F0D   Flags               01 (1) 'Modification'\n-6D9F0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9F12 CENTRAL HEADER #554   02014B50 (33639248)\n-6D9F16 Created Zip Spec      14 (20) '2.0'\n-6D9F17 Created OS            00 (0) 'MS-DOS'\n-6D9F18 Extract Zip Spec      14 (20) '2.0'\n-6D9F19 Extract OS            00 (0) 'MS-DOS'\n-6D9F1A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9F1C Compression Method    0000 (0) 'Stored'\n-6D9F1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9F22 CRC                   048D5F10 (76373776)\n-6D9F26 Compressed Size       00000C38 (3128)\n-6D9F2A Uncompressed Size     00000C38 (3128)\n-6D9F2E Filename Length       0038 (56)\n-6D9F30 Extra Length          0009 (9)\n-6D9F32 Comment Length        0000 (0)\n-6D9F34 Disk Start            0000 (0)\n-6D9F36 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9F38 Ext File Attributes   00000000 (0)\n-6D9F3C Local Header Offset   0016254E (1451342)\n-6D9F40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9F40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9F78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9F7A   Length              0005 (5)\n-6D9F7C   Flags               01 (1) 'Modification'\n-6D9F7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9F81 CENTRAL HEADER #555   02014B50 (33639248)\n-6D9F85 Created Zip Spec      14 (20) '2.0'\n-6D9F86 Created OS            00 (0) 'MS-DOS'\n-6D9F87 Extract Zip Spec      14 (20) '2.0'\n-6D9F88 Extract OS            00 (0) 'MS-DOS'\n-6D9F89 General Purpose Flag  0000 (0)\n-6D9F8B Compression Method    0000 (0) 'Stored'\n-6D9F8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9F91 CRC                   00000000 (0)\n-6D9F95 Compressed Size       00000000 (0)\n-6D9F99 Uncompressed Size     00000000 (0)\n-6D9F9D Filename Length       0028 (40)\n-6D9F9F Extra Length          0009 (9)\n-6D9FA1 Comment Length        0000 (0)\n-6D9FA3 Disk Start            0000 (0)\n-6D9FA5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6D9FA7 Ext File Attributes   00000000 (0)\n-6D9FAB Local Header Offset   001631F5 (1454581)\n-6D9FAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6D9FAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6D9FD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6D9FD9   Length              0005 (5)\n-6D9FDB   Flags               01 (1) 'Modification'\n-6D9FDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6D9FE0 CENTRAL HEADER #556   02014B50 (33639248)\n-6D9FE4 Created Zip Spec      14 (20) '2.0'\n-6D9FE5 Created OS            00 (0) 'MS-DOS'\n-6D9FE6 Extract Zip Spec      14 (20) '2.0'\n-6D9FE7 Extract OS            00 (0) 'MS-DOS'\n-6D9FE8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6D9FEA Compression Method    0000 (0) 'Stored'\n-6D9FEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6D9FF0 CRC                   6447E2ED (1682432749)\n-6D9FF4 Compressed Size       00000C52 (3154)\n-6D9FF8 Uncompressed Size     00000C52 (3154)\n-6D9FFC Filename Length       003A (58)\n-6D9FFE Extra Length          0009 (9)\n-6DA000 Comment Length        0000 (0)\n-6DA002 Disk Start            0000 (0)\n-6DA004 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA006 Ext File Attributes   00000000 (0)\n-6DA00A Local Header Offset   00163244 (1454660)\n-6DA00E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA00E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA048 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA04A   Length              0005 (5)\n-6DA04C   Flags               01 (1) 'Modification'\n-6DA04D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA051 CENTRAL HEADER #557   02014B50 (33639248)\n-6DA055 Created Zip Spec      14 (20) '2.0'\n-6DA056 Created OS            00 (0) 'MS-DOS'\n-6DA057 Extract Zip Spec      14 (20) '2.0'\n-6DA058 Extract OS            00 (0) 'MS-DOS'\n-6DA059 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA05B Compression Method    0000 (0) 'Stored'\n-6DA05D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA061 CRC                   11FDDB06 (301849350)\n-6DA065 Compressed Size       0000065F (1631)\n-6DA069 Uncompressed Size     0000065F (1631)\n-6DA06D Filename Length       0041 (65)\n-6DA06F Extra Length          0009 (9)\n-6DA071 Comment Length        0000 (0)\n-6DA073 Disk Start            0000 (0)\n-6DA075 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA077 Ext File Attributes   00000000 (0)\n-6DA07B Local Header Offset   00163F07 (1457927)\n-6DA07F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA07F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA0C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA0C2   Length              0005 (5)\n-6DA0C4   Flags               01 (1) 'Modification'\n-6DA0C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA0C9 CENTRAL HEADER #558   02014B50 (33639248)\n-6DA0CD Created Zip Spec      14 (20) '2.0'\n-6DA0CE Created OS            00 (0) 'MS-DOS'\n-6DA0CF Extract Zip Spec      14 (20) '2.0'\n-6DA0D0 Extract OS            00 (0) 'MS-DOS'\n-6DA0D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA0D3 Compression Method    0000 (0) 'Stored'\n-6DA0D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA0D9 CRC                   58EB82E0 (1491829472)\n-6DA0DD Compressed Size       00002969 (10601)\n-6DA0E1 Uncompressed Size     00002969 (10601)\n-6DA0E5 Filename Length       0038 (56)\n-6DA0E7 Extra Length          0009 (9)\n-6DA0E9 Comment Length        0000 (0)\n-6DA0EB Disk Start            0000 (0)\n-6DA0ED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA0EF Ext File Attributes   00000000 (0)\n-6DA0F3 Local Header Offset   001645DE (1459678)\n-6DA0F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA0F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA12F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA131   Length              0005 (5)\n-6DA133   Flags               01 (1) 'Modification'\n-6DA134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA138 CENTRAL HEADER #559   02014B50 (33639248)\n-6DA13C Created Zip Spec      14 (20) '2.0'\n-6DA13D Created OS            00 (0) 'MS-DOS'\n-6DA13E Extract Zip Spec      14 (20) '2.0'\n-6DA13F Extract OS            00 (0) 'MS-DOS'\n-6DA140 General Purpose Flag  0000 (0)\n-6DA142 Compression Method    0000 (0) 'Stored'\n-6DA144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA148 CRC                   00000000 (0)\n-6DA14C Compressed Size       00000000 (0)\n-6DA150 Uncompressed Size     00000000 (0)\n-6DA154 Filename Length       0026 (38)\n-6DA156 Extra Length          0009 (9)\n-6DA158 Comment Length        0000 (0)\n-6DA15A Disk Start            0000 (0)\n-6DA15C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA15E Ext File Attributes   00000000 (0)\n-6DA162 Local Header Offset   00166FB6 (1470390)\n-6DA166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA18C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA18E   Length              0005 (5)\n-6DA190   Flags               01 (1) 'Modification'\n-6DA191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA195 CENTRAL HEADER #560   02014B50 (33639248)\n-6DA199 Created Zip Spec      14 (20) '2.0'\n-6DA19A Created OS            00 (0) 'MS-DOS'\n-6DA19B Extract Zip Spec      14 (20) '2.0'\n-6DA19C Extract OS            00 (0) 'MS-DOS'\n-6DA19D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA19F Compression Method    0000 (0) 'Stored'\n-6DA1A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA1A5 CRC                   5EA7953B (1588041019)\n-6DA1A9 Compressed Size       00000E48 (3656)\n-6DA1AD Uncompressed Size     00000E48 (3656)\n-6DA1B1 Filename Length       0031 (49)\n-6DA1B3 Extra Length          0009 (9)\n-6DA1B5 Comment Length        0000 (0)\n-6DA1B7 Disk Start            0000 (0)\n-6DA1B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA1BB Ext File Attributes   00000000 (0)\n-6DA1BF Local Header Offset   00167003 (1470467)\n-6DA1C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA1C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA1F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA1F6   Length              0005 (5)\n-6DA1F8   Flags               01 (1) 'Modification'\n-6DA1F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA1FD CENTRAL HEADER #561   02014B50 (33639248)\n-6DA201 Created Zip Spec      14 (20) '2.0'\n-6DA202 Created OS            00 (0) 'MS-DOS'\n-6DA203 Extract Zip Spec      14 (20) '2.0'\n-6DA204 Extract OS            00 (0) 'MS-DOS'\n-6DA205 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA207 Compression Method    0000 (0) 'Stored'\n-6DA209 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA20D CRC                   05E875FD (99120637)\n-6DA211 Compressed Size       0000070E (1806)\n-6DA215 Uncompressed Size     0000070E (1806)\n-6DA219 Filename Length       0038 (56)\n-6DA21B Extra Length          0009 (9)\n-6DA21D Comment Length        0000 (0)\n-6DA21F Disk Start            0000 (0)\n-6DA221 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA223 Ext File Attributes   00000000 (0)\n-6DA227 Local Header Offset   00167EB3 (1474227)\n-6DA22B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA22B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA263 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA265   Length              0005 (5)\n-6DA267   Flags               01 (1) 'Modification'\n-6DA268   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA26C CENTRAL HEADER #562   02014B50 (33639248)\n-6DA270 Created Zip Spec      14 (20) '2.0'\n-6DA271 Created OS            00 (0) 'MS-DOS'\n-6DA272 Extract Zip Spec      14 (20) '2.0'\n-6DA273 Extract OS            00 (0) 'MS-DOS'\n-6DA274 General Purpose Flag  0000 (0)\n-6DA276 Compression Method    0000 (0) 'Stored'\n-6DA278 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA27C CRC                   00000000 (0)\n-6DA280 Compressed Size       00000000 (0)\n-6DA284 Uncompressed Size     00000000 (0)\n-6DA288 Filename Length       0023 (35)\n-6DA28A Extra Length          0009 (9)\n-6DA28C Comment Length        0000 (0)\n-6DA28E Disk Start            0000 (0)\n-6DA290 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA292 Ext File Attributes   00000000 (0)\n-6DA296 Local Header Offset   00168630 (1476144)\n-6DA29A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA29A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA2BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA2BF   Length              0005 (5)\n-6DA2C1   Flags               01 (1) 'Modification'\n-6DA2C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA2C6 CENTRAL HEADER #563   02014B50 (33639248)\n-6DA2CA Created Zip Spec      14 (20) '2.0'\n-6DA2CB Created OS            00 (0) 'MS-DOS'\n-6DA2CC Extract Zip Spec      14 (20) '2.0'\n-6DA2CD Extract OS            00 (0) 'MS-DOS'\n-6DA2CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA2D0 Compression Method    0000 (0) 'Stored'\n-6DA2D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA2D6 CRC                   39ECA03B (971808827)\n-6DA2DA Compressed Size       00000C4E (3150)\n-6DA2DE Uncompressed Size     00000C4E (3150)\n-6DA2E2 Filename Length       0030 (48)\n-6DA2E4 Extra Length          0009 (9)\n-6DA2E6 Comment Length        0000 (0)\n-6DA2E8 Disk Start            0000 (0)\n-6DA2EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA2EC Ext File Attributes   00000000 (0)\n-6DA2F0 Local Header Offset   0016867A (1476218)\n-6DA2F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA2F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA324 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA326   Length              0005 (5)\n-6DA328   Flags               01 (1) 'Modification'\n-6DA329   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA32D CENTRAL HEADER #564   02014B50 (33639248)\n-6DA331 Created Zip Spec      14 (20) '2.0'\n-6DA332 Created OS            00 (0) 'MS-DOS'\n-6DA333 Extract Zip Spec      14 (20) '2.0'\n-6DA334 Extract OS            00 (0) 'MS-DOS'\n-6DA335 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA337 Compression Method    0000 (0) 'Stored'\n-6DA339 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA33D CRC                   D327EA9B (3542608539)\n-6DA341 Compressed Size       0000061E (1566)\n-6DA345 Uncompressed Size     0000061E (1566)\n-6DA349 Filename Length       0037 (55)\n-6DA34B Extra Length          0009 (9)\n-6DA34D Comment Length        0000 (0)\n-6DA34F Disk Start            0000 (0)\n-6DA351 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA353 Ext File Attributes   00000000 (0)\n-6DA357 Local Header Offset   0016932F (1479471)\n-6DA35B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA35B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA392 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA394   Length              0005 (5)\n-6DA396   Flags               01 (1) 'Modification'\n-6DA397   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA39B CENTRAL HEADER #565   02014B50 (33639248)\n-6DA39F Created Zip Spec      14 (20) '2.0'\n-6DA3A0 Created OS            00 (0) 'MS-DOS'\n-6DA3A1 Extract Zip Spec      14 (20) '2.0'\n-6DA3A2 Extract OS            00 (0) 'MS-DOS'\n-6DA3A3 General Purpose Flag  0000 (0)\n-6DA3A5 Compression Method    0000 (0) 'Stored'\n-6DA3A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA3AB CRC                   00000000 (0)\n-6DA3AF Compressed Size       00000000 (0)\n-6DA3B3 Uncompressed Size     00000000 (0)\n-6DA3B7 Filename Length       0023 (35)\n-6DA3B9 Extra Length          0009 (9)\n-6DA3BB Comment Length        0000 (0)\n-6DA3BD Disk Start            0000 (0)\n-6DA3BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA3C1 Ext File Attributes   00000000 (0)\n-6DA3C5 Local Header Offset   001699BB (1481147)\n-6DA3C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA3C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA3EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA3EE   Length              0005 (5)\n-6DA3F0   Flags               01 (1) 'Modification'\n-6DA3F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA3F5 CENTRAL HEADER #566   02014B50 (33639248)\n-6DA3F9 Created Zip Spec      14 (20) '2.0'\n-6DA3FA Created OS            00 (0) 'MS-DOS'\n-6DA3FB Extract Zip Spec      14 (20) '2.0'\n-6DA3FC Extract OS            00 (0) 'MS-DOS'\n-6DA3FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA3FF Compression Method    0000 (0) 'Stored'\n-6DA401 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA405 CRC                   E901806B (3909189739)\n-6DA409 Compressed Size       00000B75 (2933)\n-6DA40D Uncompressed Size     00000B75 (2933)\n-6DA411 Filename Length       0030 (48)\n-6DA413 Extra Length          0009 (9)\n-6DA415 Comment Length        0000 (0)\n-6DA417 Disk Start            0000 (0)\n-6DA419 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA41B Ext File Attributes   00000000 (0)\n-6DA41F Local Header Offset   00169A05 (1481221)\n-6DA423 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA423: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA453 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA455   Length              0005 (5)\n-6DA457   Flags               01 (1) 'Modification'\n-6DA458   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA45C CENTRAL HEADER #567   02014B50 (33639248)\n-6DA460 Created Zip Spec      14 (20) '2.0'\n-6DA461 Created OS            00 (0) 'MS-DOS'\n-6DA462 Extract Zip Spec      14 (20) '2.0'\n-6DA463 Extract OS            00 (0) 'MS-DOS'\n-6DA464 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA466 Compression Method    0000 (0) 'Stored'\n-6DA468 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA46C CRC                   45C1CEBF (1170329279)\n-6DA470 Compressed Size       00000649 (1609)\n-6DA474 Uncompressed Size     00000649 (1609)\n-6DA478 Filename Length       0037 (55)\n-6DA47A Extra Length          0009 (9)\n-6DA47C Comment Length        0000 (0)\n-6DA47E Disk Start            0000 (0)\n-6DA480 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA482 Ext File Attributes   00000000 (0)\n-6DA486 Local Header Offset   0016A5E1 (1484257)\n-6DA48A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA48A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA4C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA4C3   Length              0005 (5)\n-6DA4C5   Flags               01 (1) 'Modification'\n-6DA4C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA4CA CENTRAL HEADER #568   02014B50 (33639248)\n-6DA4CE Created Zip Spec      14 (20) '2.0'\n-6DA4CF Created OS            00 (0) 'MS-DOS'\n-6DA4D0 Extract Zip Spec      14 (20) '2.0'\n-6DA4D1 Extract OS            00 (0) 'MS-DOS'\n-6DA4D2 General Purpose Flag  0000 (0)\n-6DA4D4 Compression Method    0000 (0) 'Stored'\n-6DA4D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA4DA CRC                   00000000 (0)\n-6DA4DE Compressed Size       00000000 (0)\n-6DA4E2 Uncompressed Size     00000000 (0)\n-6DA4E6 Filename Length       002B (43)\n-6DA4E8 Extra Length          0009 (9)\n-6DA4EA Comment Length        0000 (0)\n-6DA4EC Disk Start            0000 (0)\n-6DA4EE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA4F0 Ext File Attributes   00000000 (0)\n-6DA4F4 Local Header Offset   0016AC98 (1485976)\n-6DA4F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA4F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA523 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA525   Length              0005 (5)\n-6DA527   Flags               01 (1) 'Modification'\n-6DA528   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA52C CENTRAL HEADER #569   02014B50 (33639248)\n-6DA530 Created Zip Spec      14 (20) '2.0'\n-6DA531 Created OS            00 (0) 'MS-DOS'\n-6DA532 Extract Zip Spec      14 (20) '2.0'\n-6DA533 Extract OS            00 (0) 'MS-DOS'\n-6DA534 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA536 Compression Method    0000 (0) 'Stored'\n-6DA538 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA53C CRC                   27EFB86F (670021743)\n-6DA540 Compressed Size       00000B71 (2929)\n-6DA544 Uncompressed Size     00000B71 (2929)\n-6DA548 Filename Length       0040 (64)\n-6DA54A Extra Length          0009 (9)\n-6DA54C Comment Length        0000 (0)\n-6DA54E Disk Start            0000 (0)\n-6DA550 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA552 Ext File Attributes   00000000 (0)\n-6DA556 Local Header Offset   0016ACEA (1486058)\n-6DA55A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA55A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA59A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA59C   Length              0005 (5)\n-6DA59E   Flags               01 (1) 'Modification'\n-6DA59F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA5A3 CENTRAL HEADER #570   02014B50 (33639248)\n-6DA5A7 Created Zip Spec      14 (20) '2.0'\n-6DA5A8 Created OS            00 (0) 'MS-DOS'\n-6DA5A9 Extract Zip Spec      14 (20) '2.0'\n-6DA5AA Extract OS            00 (0) 'MS-DOS'\n-6DA5AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA5AD Compression Method    0000 (0) 'Stored'\n-6DA5AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA5B3 CRC                   0D988858 (228100184)\n-6DA5B7 Compressed Size       000006C6 (1734)\n-6DA5BB Uncompressed Size     000006C6 (1734)\n-6DA5BF Filename Length       0047 (71)\n-6DA5C1 Extra Length          0009 (9)\n-6DA5C3 Comment Length        0000 (0)\n-6DA5C5 Disk Start            0000 (0)\n-6DA5C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA5C9 Ext File Attributes   00000000 (0)\n-6DA5CD Local Header Offset   0016B8D2 (1489106)\n-6DA5D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA5D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA618 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA61A   Length              0005 (5)\n-6DA61C   Flags               01 (1) 'Modification'\n-6DA61D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA621 CENTRAL HEADER #571   02014B50 (33639248)\n-6DA625 Created Zip Spec      14 (20) '2.0'\n-6DA626 Created OS            00 (0) 'MS-DOS'\n-6DA627 Extract Zip Spec      14 (20) '2.0'\n-6DA628 Extract OS            00 (0) 'MS-DOS'\n-6DA629 General Purpose Flag  0000 (0)\n-6DA62B Compression Method    0000 (0) 'Stored'\n-6DA62D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA631 CRC                   00000000 (0)\n-6DA635 Compressed Size       00000000 (0)\n-6DA639 Uncompressed Size     00000000 (0)\n-6DA63D Filename Length       0018 (24)\n-6DA63F Extra Length          0009 (9)\n-6DA641 Comment Length        0000 (0)\n-6DA643 Disk Start            0000 (0)\n-6DA645 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA647 Ext File Attributes   00000000 (0)\n-6DA64B Local Header Offset   0016C016 (1490966)\n-6DA64F Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA64F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA667 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA669   Length              0005 (5)\n-6DA66B   Flags               01 (1) 'Modification'\n-6DA66C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA670 CENTRAL HEADER #572   02014B50 (33639248)\n-6DA674 Created Zip Spec      14 (20) '2.0'\n-6DA675 Created OS            00 (0) 'MS-DOS'\n-6DA676 Extract Zip Spec      14 (20) '2.0'\n-6DA677 Extract OS            00 (0) 'MS-DOS'\n-6DA678 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA67A Compression Method    0000 (0) 'Stored'\n-6DA67C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA680 CRC                   4059C95D (1079626077)\n-6DA684 Compressed Size       000010F7 (4343)\n-6DA688 Uncompressed Size     000010F7 (4343)\n-6DA68C Filename Length       0030 (48)\n-6DA68E Extra Length          0009 (9)\n-6DA690 Comment Length        0000 (0)\n-6DA692 Disk Start            0000 (0)\n-6DA694 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA696 Ext File Attributes   00000000 (0)\n-6DA69A Local Header Offset   0016C055 (1491029)\n-6DA69E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA69E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA6CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA6D0   Length              0005 (5)\n-6DA6D2   Flags               01 (1) 'Modification'\n-6DA6D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA6D7 CENTRAL HEADER #573   02014B50 (33639248)\n-6DA6DB Created Zip Spec      14 (20) '2.0'\n-6DA6DC Created OS            00 (0) 'MS-DOS'\n-6DA6DD Extract Zip Spec      14 (20) '2.0'\n-6DA6DE Extract OS            00 (0) 'MS-DOS'\n-6DA6DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA6E1 Compression Method    0000 (0) 'Stored'\n-6DA6E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA6E7 CRC                   BF971C06 (3214351366)\n-6DA6EB Compressed Size       00000552 (1362)\n-6DA6EF Uncompressed Size     00000552 (1362)\n-6DA6F3 Filename Length       0029 (41)\n-6DA6F5 Extra Length          0009 (9)\n-6DA6F7 Comment Length        0000 (0)\n-6DA6F9 Disk Start            0000 (0)\n-6DA6FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA6FD Ext File Attributes   00000000 (0)\n-6DA701 Local Header Offset   0016D1B3 (1495475)\n-6DA705 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA705: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA72E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA730   Length              0005 (5)\n-6DA732   Flags               01 (1) 'Modification'\n-6DA733   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA737 CENTRAL HEADER #574   02014B50 (33639248)\n-6DA73B Created Zip Spec      14 (20) '2.0'\n-6DA73C Created OS            00 (0) 'MS-DOS'\n-6DA73D Extract Zip Spec      14 (20) '2.0'\n-6DA73E Extract OS            00 (0) 'MS-DOS'\n-6DA73F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA741 Compression Method    0000 (0) 'Stored'\n-6DA743 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA747 CRC                   1CCCA507 (483173639)\n-6DA74B Compressed Size       000009AB (2475)\n-6DA74F Uncompressed Size     000009AB (2475)\n-6DA753 Filename Length       0026 (38)\n-6DA755 Extra Length          0009 (9)\n-6DA757 Comment Length        0000 (0)\n-6DA759 Disk Start            0000 (0)\n-6DA75B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA75D Ext File Attributes   00000000 (0)\n-6DA761 Local Header Offset   0016D765 (1496933)\n-6DA765 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA765: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA78B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA78D   Length              0005 (5)\n-6DA78F   Flags               01 (1) 'Modification'\n-6DA790   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA794 CENTRAL HEADER #575   02014B50 (33639248)\n-6DA798 Created Zip Spec      14 (20) '2.0'\n-6DA799 Created OS            00 (0) 'MS-DOS'\n-6DA79A Extract Zip Spec      14 (20) '2.0'\n-6DA79B Extract OS            00 (0) 'MS-DOS'\n-6DA79C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA79E Compression Method    0000 (0) 'Stored'\n-6DA7A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA7A4 CRC                   0622E0A0 (102949024)\n-6DA7A8 Compressed Size       0000049F (1183)\n-6DA7AC Uncompressed Size     0000049F (1183)\n-6DA7B0 Filename Length       0021 (33)\n-6DA7B2 Extra Length          0009 (9)\n-6DA7B4 Comment Length        0000 (0)\n-6DA7B6 Disk Start            0000 (0)\n-6DA7B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA7BA Ext File Attributes   00000000 (0)\n-6DA7BE Local Header Offset   0016E16D (1499501)\n-6DA7C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA7C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA7E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA7E5   Length              0005 (5)\n-6DA7E7   Flags               01 (1) 'Modification'\n-6DA7E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA7EC CENTRAL HEADER #576   02014B50 (33639248)\n-6DA7F0 Created Zip Spec      14 (20) '2.0'\n-6DA7F1 Created OS            00 (0) 'MS-DOS'\n-6DA7F2 Extract Zip Spec      14 (20) '2.0'\n-6DA7F3 Extract OS            00 (0) 'MS-DOS'\n-6DA7F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA7F6 Compression Method    0000 (0) 'Stored'\n-6DA7F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA7FC CRC                   3DF15F74 (1039228788)\n-6DA800 Compressed Size       0000229A (8858)\n-6DA804 Uncompressed Size     0000229A (8858)\n-6DA808 Filename Length       0027 (39)\n-6DA80A Extra Length          0009 (9)\n-6DA80C Comment Length        0000 (0)\n-6DA80E Disk Start            0000 (0)\n-6DA810 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA812 Ext File Attributes   00000000 (0)\n-6DA816 Local Header Offset   0016E664 (1500772)\n-6DA81A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA81A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA841 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA843   Length              0005 (5)\n-6DA845   Flags               01 (1) 'Modification'\n-6DA846   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA84A CENTRAL HEADER #577   02014B50 (33639248)\n-6DA84E Created Zip Spec      14 (20) '2.0'\n-6DA84F Created OS            00 (0) 'MS-DOS'\n-6DA850 Extract Zip Spec      14 (20) '2.0'\n-6DA851 Extract OS            00 (0) 'MS-DOS'\n-6DA852 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA854 Compression Method    0000 (0) 'Stored'\n-6DA856 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA85A CRC                   52712A03 (1383148035)\n-6DA85E Compressed Size       000003E8 (1000)\n-6DA862 Uncompressed Size     000003E8 (1000)\n-6DA866 Filename Length       0026 (38)\n-6DA868 Extra Length          0009 (9)\n-6DA86A Comment Length        0000 (0)\n-6DA86C Disk Start            0000 (0)\n-6DA86E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA870 Ext File Attributes   00000000 (0)\n-6DA874 Local Header Offset   0017095C (1509724)\n-6DA878 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA878: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA89E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA8A0   Length              0005 (5)\n-6DA8A2   Flags               01 (1) 'Modification'\n-6DA8A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA8A7 CENTRAL HEADER #578   02014B50 (33639248)\n-6DA8AB Created Zip Spec      14 (20) '2.0'\n-6DA8AC Created OS            00 (0) 'MS-DOS'\n-6DA8AD Extract Zip Spec      14 (20) '2.0'\n-6DA8AE Extract OS            00 (0) 'MS-DOS'\n-6DA8AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA8B1 Compression Method    0000 (0) 'Stored'\n-6DA8B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA8B7 CRC                   4B96BF4D (1268170573)\n-6DA8BB Compressed Size       00011389 (70537)\n-6DA8BF Uncompressed Size     00011389 (70537)\n-6DA8C3 Filename Length       0020 (32)\n-6DA8C5 Extra Length          0009 (9)\n-6DA8C7 Comment Length        0000 (0)\n-6DA8C9 Disk Start            0000 (0)\n-6DA8CB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA8CD Ext File Attributes   00000000 (0)\n-6DA8D1 Local Header Offset   00170DA1 (1510817)\n-6DA8D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA8D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA8F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA8F7   Length              0005 (5)\n-6DA8F9   Flags               01 (1) 'Modification'\n-6DA8FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA8FE CENTRAL HEADER #579   02014B50 (33639248)\n-6DA902 Created Zip Spec      14 (20) '2.0'\n-6DA903 Created OS            00 (0) 'MS-DOS'\n-6DA904 Extract Zip Spec      14 (20) '2.0'\n-6DA905 Extract OS            00 (0) 'MS-DOS'\n-6DA906 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA908 Compression Method    0000 (0) 'Stored'\n-6DA90A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA90E CRC                   E6F6EE92 (3874942610)\n-6DA912 Compressed Size       00003564 (13668)\n-6DA916 Uncompressed Size     00003564 (13668)\n-6DA91A Filename Length       0027 (39)\n-6DA91C Extra Length          0009 (9)\n-6DA91E Comment Length        0000 (0)\n-6DA920 Disk Start            0000 (0)\n-6DA922 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA924 Ext File Attributes   00000000 (0)\n-6DA928 Local Header Offset   00182181 (1581441)\n-6DA92C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA92C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA953 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA955   Length              0005 (5)\n-6DA957   Flags               01 (1) 'Modification'\n-6DA958   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA95C CENTRAL HEADER #580   02014B50 (33639248)\n-6DA960 Created Zip Spec      14 (20) '2.0'\n-6DA961 Created OS            00 (0) 'MS-DOS'\n-6DA962 Extract Zip Spec      14 (20) '2.0'\n-6DA963 Extract OS            00 (0) 'MS-DOS'\n-6DA964 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA966 Compression Method    0000 (0) 'Stored'\n-6DA968 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA96C CRC                   8B1361FF (2333303295)\n-6DA970 Compressed Size       000034A1 (13473)\n-6DA974 Uncompressed Size     000034A1 (13473)\n-6DA978 Filename Length       0029 (41)\n-6DA97A Extra Length          0009 (9)\n-6DA97C Comment Length        0000 (0)\n-6DA97E Disk Start            0000 (0)\n-6DA980 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA982 Ext File Attributes   00000000 (0)\n-6DA986 Local Header Offset   00185743 (1595203)\n-6DA98A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA98A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DA9B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DA9B5   Length              0005 (5)\n-6DA9B7   Flags               01 (1) 'Modification'\n-6DA9B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DA9BC CENTRAL HEADER #581   02014B50 (33639248)\n-6DA9C0 Created Zip Spec      14 (20) '2.0'\n-6DA9C1 Created OS            00 (0) 'MS-DOS'\n-6DA9C2 Extract Zip Spec      14 (20) '2.0'\n-6DA9C3 Extract OS            00 (0) 'MS-DOS'\n-6DA9C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DA9C6 Compression Method    0000 (0) 'Stored'\n-6DA9C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DA9CC CRC                   F43D3BE1 (4097653729)\n-6DA9D0 Compressed Size       00002625 (9765)\n-6DA9D4 Uncompressed Size     00002625 (9765)\n-6DA9D8 Filename Length       0024 (36)\n-6DA9DA Extra Length          0009 (9)\n-6DA9DC Comment Length        0000 (0)\n-6DA9DE Disk Start            0000 (0)\n-6DA9E0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DA9E2 Ext File Attributes   00000000 (0)\n-6DA9E6 Local Header Offset   00188C44 (1608772)\n-6DA9EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DA9EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAA0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAA10   Length              0005 (5)\n-6DAA12   Flags               01 (1) 'Modification'\n-6DAA13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAA17 CENTRAL HEADER #582   02014B50 (33639248)\n-6DAA1B Created Zip Spec      14 (20) '2.0'\n-6DAA1C Created OS            00 (0) 'MS-DOS'\n-6DAA1D Extract Zip Spec      14 (20) '2.0'\n-6DAA1E Extract OS            00 (0) 'MS-DOS'\n-6DAA1F General Purpose Flag  0000 (0)\n-6DAA21 Compression Method    0000 (0) 'Stored'\n-6DAA23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAA27 CRC                   00000000 (0)\n-6DAA2B Compressed Size       00000000 (0)\n-6DAA2F Uncompressed Size     00000000 (0)\n-6DAA33 Filename Length       0021 (33)\n-6DAA35 Extra Length          0009 (9)\n-6DAA37 Comment Length        0000 (0)\n-6DAA39 Disk Start            0000 (0)\n-6DAA3B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAA3D Ext File Attributes   00000000 (0)\n-6DAA41 Local Header Offset   0018B2C4 (1618628)\n-6DAA45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAA45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAA66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAA68   Length              0005 (5)\n-6DAA6A   Flags               01 (1) 'Modification'\n-6DAA6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAA6F CENTRAL HEADER #583   02014B50 (33639248)\n-6DAA73 Created Zip Spec      14 (20) '2.0'\n-6DAA74 Created OS            00 (0) 'MS-DOS'\n-6DAA75 Extract Zip Spec      14 (20) '2.0'\n-6DAA76 Extract OS            00 (0) 'MS-DOS'\n-6DAA77 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAA79 Compression Method    0000 (0) 'Stored'\n-6DAA7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAA7F CRC                   62810B39 (1652624185)\n-6DAA83 Compressed Size       00000554 (1364)\n-6DAA87 Uncompressed Size     00000554 (1364)\n-6DAA8B Filename Length       0036 (54)\n-6DAA8D Extra Length          0009 (9)\n-6DAA8F Comment Length        0000 (0)\n-6DAA91 Disk Start            0000 (0)\n-6DAA93 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAA95 Ext File Attributes   00000000 (0)\n-6DAA99 Local Header Offset   0018B30C (1618700)\n-6DAA9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAA9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAAD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAAD5   Length              0005 (5)\n-6DAAD7   Flags               01 (1) 'Modification'\n-6DAAD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAADC CENTRAL HEADER #584   02014B50 (33639248)\n-6DAAE0 Created Zip Spec      14 (20) '2.0'\n-6DAAE1 Created OS            00 (0) 'MS-DOS'\n-6DAAE2 Extract Zip Spec      14 (20) '2.0'\n-6DAAE3 Extract OS            00 (0) 'MS-DOS'\n-6DAAE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAAE6 Compression Method    0000 (0) 'Stored'\n-6DAAE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAAEC CRC                   F49AF035 (4103794741)\n-6DAAF0 Compressed Size       000018A5 (6309)\n-6DAAF4 Uncompressed Size     000018A5 (6309)\n-6DAAF8 Filename Length       0038 (56)\n-6DAAFA Extra Length          0009 (9)\n-6DAAFC Comment Length        0000 (0)\n-6DAAFE Disk Start            0000 (0)\n-6DAB00 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAB02 Ext File Attributes   00000000 (0)\n-6DAB06 Local Header Offset   0018B8CD (1620173)\n-6DAB0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAB0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAB42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAB44   Length              0005 (5)\n-6DAB46   Flags               01 (1) 'Modification'\n-6DAB47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAB4B CENTRAL HEADER #585   02014B50 (33639248)\n-6DAB4F Created Zip Spec      14 (20) '2.0'\n-6DAB50 Created OS            00 (0) 'MS-DOS'\n-6DAB51 Extract Zip Spec      14 (20) '2.0'\n-6DAB52 Extract OS            00 (0) 'MS-DOS'\n-6DAB53 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAB55 Compression Method    0000 (0) 'Stored'\n-6DAB57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAB5B CRC                   11EE6DF6 (300838390)\n-6DAB5F Compressed Size       00004ECE (20174)\n-6DAB63 Uncompressed Size     00004ECE (20174)\n-6DAB67 Filename Length       003B (59)\n-6DAB69 Extra Length          0009 (9)\n-6DAB6B Comment Length        0000 (0)\n-6DAB6D Disk Start            0000 (0)\n-6DAB6F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAB71 Ext File Attributes   00000000 (0)\n-6DAB75 Local Header Offset   0018D1E1 (1626593)\n-6DAB79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAB79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DABB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DABB6   Length              0005 (5)\n-6DABB8   Flags               01 (1) 'Modification'\n-6DABB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DABBD CENTRAL HEADER #586   02014B50 (33639248)\n-6DABC1 Created Zip Spec      14 (20) '2.0'\n-6DABC2 Created OS            00 (0) 'MS-DOS'\n-6DABC3 Extract Zip Spec      14 (20) '2.0'\n-6DABC4 Extract OS            00 (0) 'MS-DOS'\n-6DABC5 General Purpose Flag  0000 (0)\n-6DABC7 Compression Method    0000 (0) 'Stored'\n-6DABC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DABCD CRC                   00000000 (0)\n-6DABD1 Compressed Size       00000000 (0)\n-6DABD5 Uncompressed Size     00000000 (0)\n-6DABD9 Filename Length       0021 (33)\n-6DABDB Extra Length          0009 (9)\n-6DABDD Comment Length        0000 (0)\n-6DABDF Disk Start            0000 (0)\n-6DABE1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DABE3 Ext File Attributes   00000000 (0)\n-6DABE7 Local Header Offset   00192121 (1646881)\n-6DABEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DABEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAC0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAC0E   Length              0005 (5)\n-6DAC10   Flags               01 (1) 'Modification'\n-6DAC11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAC15 CENTRAL HEADER #587   02014B50 (33639248)\n-6DAC19 Created Zip Spec      14 (20) '2.0'\n-6DAC1A Created OS            00 (0) 'MS-DOS'\n-6DAC1B Extract Zip Spec      14 (20) '2.0'\n-6DAC1C Extract OS            00 (0) 'MS-DOS'\n-6DAC1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAC1F Compression Method    0000 (0) 'Stored'\n-6DAC21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAC25 CRC                   87F19404 (2280756228)\n-6DAC29 Compressed Size       000032DF (13023)\n-6DAC2D Uncompressed Size     000032DF (13023)\n-6DAC31 Filename Length       0034 (52)\n-6DAC33 Extra Length          0009 (9)\n-6DAC35 Comment Length        0000 (0)\n-6DAC37 Disk Start            0000 (0)\n-6DAC39 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAC3B Ext File Attributes   00000000 (0)\n-6DAC3F Local Header Offset   00192169 (1646953)\n-6DAC43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAC43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAC77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAC79   Length              0005 (5)\n-6DAC7B   Flags               01 (1) 'Modification'\n-6DAC7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAC80 CENTRAL HEADER #588   02014B50 (33639248)\n-6DAC84 Created Zip Spec      14 (20) '2.0'\n-6DAC85 Created OS            00 (0) 'MS-DOS'\n-6DAC86 Extract Zip Spec      14 (20) '2.0'\n-6DAC87 Extract OS            00 (0) 'MS-DOS'\n-6DAC88 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAC8A Compression Method    0000 (0) 'Stored'\n-6DAC8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAC90 CRC                   AA2CE6AF (2855069359)\n-6DAC94 Compressed Size       00000DB2 (3506)\n-6DAC98 Uncompressed Size     00000DB2 (3506)\n-6DAC9C Filename Length       003F (63)\n-6DAC9E Extra Length          0009 (9)\n-6DACA0 Comment Length        0000 (0)\n-6DACA2 Disk Start            0000 (0)\n-6DACA4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DACA6 Ext File Attributes   00000000 (0)\n-6DACAA Local Header Offset   001954B3 (1660083)\n-6DACAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DACAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DACED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DACEF   Length              0005 (5)\n-6DACF1   Flags               01 (1) 'Modification'\n-6DACF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DACF6 CENTRAL HEADER #589   02014B50 (33639248)\n-6DACFA Created Zip Spec      14 (20) '2.0'\n-6DACFB Created OS            00 (0) 'MS-DOS'\n-6DACFC Extract Zip Spec      14 (20) '2.0'\n-6DACFD Extract OS            00 (0) 'MS-DOS'\n-6DACFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAD00 Compression Method    0000 (0) 'Stored'\n-6DAD02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAD06 CRC                   4F0E9D5D (1326357853)\n-6DAD0A Compressed Size       00002017 (8215)\n-6DAD0E Uncompressed Size     00002017 (8215)\n-6DAD12 Filename Length       002B (43)\n-6DAD14 Extra Length          0009 (9)\n-6DAD16 Comment Length        0000 (0)\n-6DAD18 Disk Start            0000 (0)\n-6DAD1A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAD1C Ext File Attributes   00000000 (0)\n-6DAD20 Local Header Offset   001962DB (1663707)\n-6DAD24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAD24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAD4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAD51   Length              0005 (5)\n-6DAD53   Flags               01 (1) 'Modification'\n-6DAD54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAD58 CENTRAL HEADER #590   02014B50 (33639248)\n-6DAD5C Created Zip Spec      14 (20) '2.0'\n-6DAD5D Created OS            00 (0) 'MS-DOS'\n-6DAD5E Extract Zip Spec      14 (20) '2.0'\n-6DAD5F Extract OS            00 (0) 'MS-DOS'\n-6DAD60 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAD62 Compression Method    0000 (0) 'Stored'\n-6DAD64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAD68 CRC                   35B34ECC (900943564)\n-6DAD6C Compressed Size       0000049E (1182)\n-6DAD70 Uncompressed Size     0000049E (1182)\n-6DAD74 Filename Length       003B (59)\n-6DAD76 Extra Length          0009 (9)\n-6DAD78 Comment Length        0000 (0)\n-6DAD7A Disk Start            0000 (0)\n-6DAD7C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAD7E Ext File Attributes   00000000 (0)\n-6DAD82 Local Header Offset   00198354 (1672020)\n-6DAD86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAD86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DADC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DADC3   Length              0005 (5)\n-6DADC5   Flags               01 (1) 'Modification'\n-6DADC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DADCA CENTRAL HEADER #591   02014B50 (33639248)\n-6DADCE Created Zip Spec      14 (20) '2.0'\n-6DADCF Created OS            00 (0) 'MS-DOS'\n-6DADD0 Extract Zip Spec      14 (20) '2.0'\n-6DADD1 Extract OS            00 (0) 'MS-DOS'\n-6DADD2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DADD4 Compression Method    0000 (0) 'Stored'\n-6DADD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DADDA CRC                   AE36D6DB (2922829531)\n-6DADDE Compressed Size       000004A6 (1190)\n-6DADE2 Uncompressed Size     000004A6 (1190)\n-6DADE6 Filename Length       003D (61)\n-6DADE8 Extra Length          0009 (9)\n-6DADEA Comment Length        0000 (0)\n-6DADEC Disk Start            0000 (0)\n-6DADEE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DADF0 Ext File Attributes   00000000 (0)\n-6DADF4 Local Header Offset   00198864 (1673316)\n-6DADF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DADF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAE35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAE37   Length              0005 (5)\n-6DAE39   Flags               01 (1) 'Modification'\n-6DAE3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAE3E CENTRAL HEADER #592   02014B50 (33639248)\n-6DAE42 Created Zip Spec      14 (20) '2.0'\n-6DAE43 Created OS            00 (0) 'MS-DOS'\n-6DAE44 Extract Zip Spec      14 (20) '2.0'\n-6DAE45 Extract OS            00 (0) 'MS-DOS'\n-6DAE46 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAE48 Compression Method    0000 (0) 'Stored'\n-6DAE4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAE4E CRC                   693DBCBA (1765653690)\n-6DAE52 Compressed Size       00002F4D (12109)\n-6DAE56 Uncompressed Size     00002F4D (12109)\n-6DAE5A Filename Length       002B (43)\n-6DAE5C Extra Length          0009 (9)\n-6DAE5E Comment Length        0000 (0)\n-6DAE60 Disk Start            0000 (0)\n-6DAE62 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAE64 Ext File Attributes   00000000 (0)\n-6DAE68 Local Header Offset   00198D7E (1674622)\n-6DAE6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAE6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAE97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAE99   Length              0005 (5)\n-6DAE9B   Flags               01 (1) 'Modification'\n-6DAE9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAEA0 CENTRAL HEADER #593   02014B50 (33639248)\n-6DAEA4 Created Zip Spec      14 (20) '2.0'\n-6DAEA5 Created OS            00 (0) 'MS-DOS'\n-6DAEA6 Extract Zip Spec      14 (20) '2.0'\n-6DAEA7 Extract OS            00 (0) 'MS-DOS'\n-6DAEA8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAEAA Compression Method    0000 (0) 'Stored'\n-6DAEAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAEB0 CRC                   44BCC62B (1153222187)\n-6DAEB4 Compressed Size       00004608 (17928)\n-6DAEB8 Uncompressed Size     00004608 (17928)\n-6DAEBC Filename Length       002D (45)\n-6DAEBE Extra Length          0009 (9)\n-6DAEC0 Comment Length        0000 (0)\n-6DAEC2 Disk Start            0000 (0)\n-6DAEC4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAEC6 Ext File Attributes   00000000 (0)\n-6DAECA Local Header Offset   0019BD2D (1686829)\n-6DAECE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAECE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAEFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAEFD   Length              0005 (5)\n-6DAEFF   Flags               01 (1) 'Modification'\n-6DAF00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAF04 CENTRAL HEADER #594   02014B50 (33639248)\n-6DAF08 Created Zip Spec      14 (20) '2.0'\n-6DAF09 Created OS            00 (0) 'MS-DOS'\n-6DAF0A Extract Zip Spec      14 (20) '2.0'\n-6DAF0B Extract OS            00 (0) 'MS-DOS'\n-6DAF0C General Purpose Flag  0000 (0)\n-6DAF0E Compression Method    0000 (0) 'Stored'\n-6DAF10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAF14 CRC                   00000000 (0)\n-6DAF18 Compressed Size       00000000 (0)\n-6DAF1C Uncompressed Size     00000000 (0)\n-6DAF20 Filename Length       0021 (33)\n-6DAF22 Extra Length          0009 (9)\n-6DAF24 Comment Length        0000 (0)\n-6DAF26 Disk Start            0000 (0)\n-6DAF28 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAF2A Ext File Attributes   00000000 (0)\n-6DAF2E Local Header Offset   001A0399 (1704857)\n-6DAF32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAF32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAF53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAF55   Length              0005 (5)\n-6DAF57   Flags               01 (1) 'Modification'\n-6DAF58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAF5C CENTRAL HEADER #595   02014B50 (33639248)\n-6DAF60 Created Zip Spec      14 (20) '2.0'\n-6DAF61 Created OS            00 (0) 'MS-DOS'\n-6DAF62 Extract Zip Spec      14 (20) '2.0'\n-6DAF63 Extract OS            00 (0) 'MS-DOS'\n-6DAF64 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DAF66 Compression Method    0000 (0) 'Stored'\n-6DAF68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAF6C CRC                   01EEDE5E (32431710)\n-6DAF70 Compressed Size       000004E7 (1255)\n-6DAF74 Uncompressed Size     000004E7 (1255)\n-6DAF78 Filename Length       002E (46)\n-6DAF7A Extra Length          0009 (9)\n-6DAF7C Comment Length        0000 (0)\n-6DAF7E Disk Start            0000 (0)\n-6DAF80 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAF82 Ext File Attributes   00000000 (0)\n-6DAF86 Local Header Offset   001A03E1 (1704929)\n-6DAF8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAF8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DAFB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DAFBA   Length              0005 (5)\n-6DAFBC   Flags               01 (1) 'Modification'\n-6DAFBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DAFC1 CENTRAL HEADER #596   02014B50 (33639248)\n-6DAFC5 Created Zip Spec      14 (20) '2.0'\n-6DAFC6 Created OS            00 (0) 'MS-DOS'\n-6DAFC7 Extract Zip Spec      14 (20) '2.0'\n-6DAFC8 Extract OS            00 (0) 'MS-DOS'\n-6DAFC9 General Purpose Flag  0000 (0)\n-6DAFCB Compression Method    0000 (0) 'Stored'\n-6DAFCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DAFD1 CRC                   00000000 (0)\n-6DAFD5 Compressed Size       00000000 (0)\n-6DAFD9 Uncompressed Size     00000000 (0)\n-6DAFDD Filename Length       0029 (41)\n-6DAFDF Extra Length          0009 (9)\n-6DAFE1 Comment Length        0000 (0)\n-6DAFE3 Disk Start            0000 (0)\n-6DAFE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DAFE7 Ext File Attributes   00000000 (0)\n-6DAFEB Local Header Offset   001A092D (1706285)\n-6DAFEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DAFEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB018 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB01A   Length              0005 (5)\n-6DB01C   Flags               01 (1) 'Modification'\n-6DB01D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB021 CENTRAL HEADER #597   02014B50 (33639248)\n-6DB025 Created Zip Spec      14 (20) '2.0'\n-6DB026 Created OS            00 (0) 'MS-DOS'\n-6DB027 Extract Zip Spec      14 (20) '2.0'\n-6DB028 Extract OS            00 (0) 'MS-DOS'\n-6DB029 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB02B Compression Method    0000 (0) 'Stored'\n-6DB02D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB031 CRC                   20854F04 (545607428)\n-6DB035 Compressed Size       00000B1B (2843)\n-6DB039 Uncompressed Size     00000B1B (2843)\n-6DB03D Filename Length       003E (62)\n-6DB03F Extra Length          0009 (9)\n-6DB041 Comment Length        0000 (0)\n-6DB043 Disk Start            0000 (0)\n-6DB045 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB047 Ext File Attributes   00000000 (0)\n-6DB04B Local Header Offset   001A097D (1706365)\n-6DB04F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB04F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB08D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB08F   Length              0005 (5)\n-6DB091   Flags               01 (1) 'Modification'\n-6DB092   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB096 CENTRAL HEADER #598   02014B50 (33639248)\n-6DB09A Created Zip Spec      14 (20) '2.0'\n-6DB09B Created OS            00 (0) 'MS-DOS'\n-6DB09C Extract Zip Spec      14 (20) '2.0'\n-6DB09D Extract OS            00 (0) 'MS-DOS'\n-6DB09E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB0A0 Compression Method    0000 (0) 'Stored'\n-6DB0A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB0A6 CRC                   D19D012A (3516727594)\n-6DB0AA Compressed Size       00000733 (1843)\n-6DB0AE Uncompressed Size     00000733 (1843)\n-6DB0B2 Filename Length       003E (62)\n-6DB0B4 Extra Length          0009 (9)\n-6DB0B6 Comment Length        0000 (0)\n-6DB0B8 Disk Start            0000 (0)\n-6DB0BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB0BC Ext File Attributes   00000000 (0)\n-6DB0C0 Local Header Offset   001A150D (1709325)\n-6DB0C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB0C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB102 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB104   Length              0005 (5)\n-6DB106   Flags               01 (1) 'Modification'\n-6DB107   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB10B CENTRAL HEADER #599   02014B50 (33639248)\n-6DB10F Created Zip Spec      14 (20) '2.0'\n-6DB110 Created OS            00 (0) 'MS-DOS'\n-6DB111 Extract Zip Spec      14 (20) '2.0'\n-6DB112 Extract OS            00 (0) 'MS-DOS'\n-6DB113 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB115 Compression Method    0000 (0) 'Stored'\n-6DB117 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB11B CRC                   489CA2B6 (1218224822)\n-6DB11F Compressed Size       00003CC4 (15556)\n-6DB123 Uncompressed Size     00003CC4 (15556)\n-6DB127 Filename Length       0038 (56)\n-6DB129 Extra Length          0009 (9)\n-6DB12B Comment Length        0000 (0)\n-6DB12D Disk Start            0000 (0)\n-6DB12F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB131 Ext File Attributes   00000000 (0)\n-6DB135 Local Header Offset   001A1CB5 (1711285)\n-6DB139 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB139: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB171 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB173   Length              0005 (5)\n-6DB175   Flags               01 (1) 'Modification'\n-6DB176   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB17A CENTRAL HEADER #600   02014B50 (33639248)\n-6DB17E Created Zip Spec      14 (20) '2.0'\n-6DB17F Created OS            00 (0) 'MS-DOS'\n-6DB180 Extract Zip Spec      14 (20) '2.0'\n-6DB181 Extract OS            00 (0) 'MS-DOS'\n-6DB182 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB184 Compression Method    0000 (0) 'Stored'\n-6DB186 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB18A CRC                   BD63F8B8 (3177445560)\n-6DB18E Compressed Size       000013BA (5050)\n-6DB192 Uncompressed Size     000013BA (5050)\n-6DB196 Filename Length       003C (60)\n-6DB198 Extra Length          0009 (9)\n-6DB19A Comment Length        0000 (0)\n-6DB19C Disk Start            0000 (0)\n-6DB19E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB1A0 Ext File Attributes   00000000 (0)\n-6DB1A4 Local Header Offset   001A59E8 (1726952)\n-6DB1A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB1A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB1E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB1E6   Length              0005 (5)\n-6DB1E8   Flags               01 (1) 'Modification'\n-6DB1E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB1ED CENTRAL HEADER #601   02014B50 (33639248)\n-6DB1F1 Created Zip Spec      14 (20) '2.0'\n-6DB1F2 Created OS            00 (0) 'MS-DOS'\n-6DB1F3 Extract Zip Spec      14 (20) '2.0'\n-6DB1F4 Extract OS            00 (0) 'MS-DOS'\n-6DB1F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB1F7 Compression Method    0000 (0) 'Stored'\n-6DB1F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB1FD CRC                   C96B89A9 (3379268009)\n-6DB201 Compressed Size       00000DB0 (3504)\n-6DB205 Uncompressed Size     00000DB0 (3504)\n-6DB209 Filename Length       003F (63)\n-6DB20B Extra Length          0009 (9)\n-6DB20D Comment Length        0000 (0)\n-6DB20F Disk Start            0000 (0)\n-6DB211 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB213 Ext File Attributes   00000000 (0)\n-6DB217 Local Header Offset   001A6E15 (1732117)\n-6DB21B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB21B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB25A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB25C   Length              0005 (5)\n-6DB25E   Flags               01 (1) 'Modification'\n-6DB25F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB263 CENTRAL HEADER #602   02014B50 (33639248)\n-6DB267 Created Zip Spec      14 (20) '2.0'\n-6DB268 Created OS            00 (0) 'MS-DOS'\n-6DB269 Extract Zip Spec      14 (20) '2.0'\n-6DB26A Extract OS            00 (0) 'MS-DOS'\n-6DB26B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB26D Compression Method    0000 (0) 'Stored'\n-6DB26F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB273 CRC                   3FE3ACCB (1071885515)\n-6DB277 Compressed Size       00002CC5 (11461)\n-6DB27B Uncompressed Size     00002CC5 (11461)\n-6DB27F Filename Length       0039 (57)\n-6DB281 Extra Length          0009 (9)\n-6DB283 Comment Length        0000 (0)\n-6DB285 Disk Start            0000 (0)\n-6DB287 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB289 Ext File Attributes   00000000 (0)\n-6DB28D Local Header Offset   001A7C3B (1735739)\n-6DB291 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB291: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB2CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB2CC   Length              0005 (5)\n-6DB2CE   Flags               01 (1) 'Modification'\n-6DB2CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB2D3 CENTRAL HEADER #603   02014B50 (33639248)\n-6DB2D7 Created Zip Spec      14 (20) '2.0'\n-6DB2D8 Created OS            00 (0) 'MS-DOS'\n-6DB2D9 Extract Zip Spec      14 (20) '2.0'\n-6DB2DA Extract OS            00 (0) 'MS-DOS'\n-6DB2DB General Purpose Flag  0000 (0)\n-6DB2DD Compression Method    0000 (0) 'Stored'\n-6DB2DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB2E3 CRC                   00000000 (0)\n-6DB2E7 Compressed Size       00000000 (0)\n-6DB2EB Uncompressed Size     00000000 (0)\n-6DB2EF Filename Length       001F (31)\n-6DB2F1 Extra Length          0009 (9)\n-6DB2F3 Comment Length        0000 (0)\n-6DB2F5 Disk Start            0000 (0)\n-6DB2F7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB2F9 Ext File Attributes   00000000 (0)\n-6DB2FD Local Header Offset   001AA970 (1747312)\n-6DB301 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB301: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB320 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB322   Length              0005 (5)\n-6DB324   Flags               01 (1) 'Modification'\n-6DB325   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB329 CENTRAL HEADER #604   02014B50 (33639248)\n-6DB32D Created Zip Spec      14 (20) '2.0'\n-6DB32E Created OS            00 (0) 'MS-DOS'\n-6DB32F Extract Zip Spec      14 (20) '2.0'\n-6DB330 Extract OS            00 (0) 'MS-DOS'\n-6DB331 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB333 Compression Method    0000 (0) 'Stored'\n-6DB335 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB339 CRC                   F325AC46 (4079332422)\n-6DB33D Compressed Size       000010FE (4350)\n-6DB341 Uncompressed Size     000010FE (4350)\n-6DB345 Filename Length       003A (58)\n-6DB347 Extra Length          0009 (9)\n-6DB349 Comment Length        0000 (0)\n-6DB34B Disk Start            0000 (0)\n-6DB34D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB34F Ext File Attributes   00000000 (0)\n-6DB353 Local Header Offset   001AA9B6 (1747382)\n-6DB357 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB357: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB391 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB393   Length              0005 (5)\n-6DB395   Flags               01 (1) 'Modification'\n-6DB396   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB39A CENTRAL HEADER #605   02014B50 (33639248)\n-6DB39E Created Zip Spec      14 (20) '2.0'\n-6DB39F Created OS            00 (0) 'MS-DOS'\n-6DB3A0 Extract Zip Spec      14 (20) '2.0'\n-6DB3A1 Extract OS            00 (0) 'MS-DOS'\n-6DB3A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB3A4 Compression Method    0000 (0) 'Stored'\n-6DB3A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB3AA CRC                   9BAFC26A (2611987050)\n-6DB3AE Compressed Size       00001AC5 (6853)\n-6DB3B2 Uncompressed Size     00001AC5 (6853)\n-6DB3B6 Filename Length       0031 (49)\n-6DB3B8 Extra Length          0009 (9)\n-6DB3BA Comment Length        0000 (0)\n-6DB3BC Disk Start            0000 (0)\n-6DB3BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB3C0 Ext File Attributes   00000000 (0)\n-6DB3C4 Local Header Offset   001ABB25 (1751845)\n-6DB3C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB3C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB3F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB3FB   Length              0005 (5)\n-6DB3FD   Flags               01 (1) 'Modification'\n-6DB3FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB402 CENTRAL HEADER #606   02014B50 (33639248)\n-6DB406 Created Zip Spec      14 (20) '2.0'\n-6DB407 Created OS            00 (0) 'MS-DOS'\n-6DB408 Extract Zip Spec      14 (20) '2.0'\n-6DB409 Extract OS            00 (0) 'MS-DOS'\n-6DB40A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB40C Compression Method    0000 (0) 'Stored'\n-6DB40E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB412 CRC                   68B50306 (1756693254)\n-6DB416 Compressed Size       000012AB (4779)\n-6DB41A Uncompressed Size     000012AB (4779)\n-6DB41E Filename Length       0036 (54)\n-6DB420 Extra Length          0009 (9)\n-6DB422 Comment Length        0000 (0)\n-6DB424 Disk Start            0000 (0)\n-6DB426 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB428 Ext File Attributes   00000000 (0)\n-6DB42C Local Header Offset   001AD652 (1758802)\n-6DB430 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB430: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB466 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB468   Length              0005 (5)\n-6DB46A   Flags               01 (1) 'Modification'\n-6DB46B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB46F CENTRAL HEADER #607   02014B50 (33639248)\n-6DB473 Created Zip Spec      14 (20) '2.0'\n-6DB474 Created OS            00 (0) 'MS-DOS'\n-6DB475 Extract Zip Spec      14 (20) '2.0'\n-6DB476 Extract OS            00 (0) 'MS-DOS'\n-6DB477 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB479 Compression Method    0000 (0) 'Stored'\n-6DB47B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB47F CRC                   0BFFCD1E (201313566)\n-6DB483 Compressed Size       00002715 (10005)\n-6DB487 Uncompressed Size     00002715 (10005)\n-6DB48B Filename Length       002F (47)\n-6DB48D Extra Length          0009 (9)\n-6DB48F Comment Length        0000 (0)\n-6DB491 Disk Start            0000 (0)\n-6DB493 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB495 Ext File Attributes   00000000 (0)\n-6DB499 Local Header Offset   001AE96A (1763690)\n-6DB49D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB49D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB4CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB4CE   Length              0005 (5)\n-6DB4D0   Flags               01 (1) 'Modification'\n-6DB4D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB4D5 CENTRAL HEADER #608   02014B50 (33639248)\n-6DB4D9 Created Zip Spec      14 (20) '2.0'\n-6DB4DA Created OS            00 (0) 'MS-DOS'\n-6DB4DB Extract Zip Spec      14 (20) '2.0'\n-6DB4DC Extract OS            00 (0) 'MS-DOS'\n-6DB4DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB4DF Compression Method    0000 (0) 'Stored'\n-6DB4E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB4E5 CRC                   94D758DF (2497140959)\n-6DB4E9 Compressed Size       000004F3 (1267)\n-6DB4ED Uncompressed Size     000004F3 (1267)\n-6DB4F1 Filename Length       003C (60)\n-6DB4F3 Extra Length          0009 (9)\n-6DB4F5 Comment Length        0000 (0)\n-6DB4F7 Disk Start            0000 (0)\n-6DB4F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB4FB Ext File Attributes   00000000 (0)\n-6DB4FF Local Header Offset   001B10E5 (1773797)\n-6DB503 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB503: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB53F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB541   Length              0005 (5)\n-6DB543   Flags               01 (1) 'Modification'\n-6DB544   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB548 CENTRAL HEADER #609   02014B50 (33639248)\n-6DB54C Created Zip Spec      14 (20) '2.0'\n-6DB54D Created OS            00 (0) 'MS-DOS'\n-6DB54E Extract Zip Spec      14 (20) '2.0'\n-6DB54F Extract OS            00 (0) 'MS-DOS'\n-6DB550 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB552 Compression Method    0000 (0) 'Stored'\n-6DB554 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB558 CRC                   778123FC (2004952060)\n-6DB55C Compressed Size       00000770 (1904)\n-6DB560 Uncompressed Size     00000770 (1904)\n-6DB564 Filename Length       0039 (57)\n-6DB566 Extra Length          0009 (9)\n-6DB568 Comment Length        0000 (0)\n-6DB56A Disk Start            0000 (0)\n-6DB56C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB56E Ext File Attributes   00000000 (0)\n-6DB572 Local Header Offset   001B164B (1775179)\n-6DB576 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB576: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB5AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB5B1   Length              0005 (5)\n-6DB5B3   Flags               01 (1) 'Modification'\n-6DB5B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB5B8 CENTRAL HEADER #610   02014B50 (33639248)\n-6DB5BC Created Zip Spec      14 (20) '2.0'\n-6DB5BD Created OS            00 (0) 'MS-DOS'\n-6DB5BE Extract Zip Spec      14 (20) '2.0'\n-6DB5BF Extract OS            00 (0) 'MS-DOS'\n-6DB5C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB5C2 Compression Method    0000 (0) 'Stored'\n-6DB5C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB5C8 CRC                   041CAAC9 (68987593)\n-6DB5CC Compressed Size       000004B1 (1201)\n-6DB5D0 Uncompressed Size     000004B1 (1201)\n-6DB5D4 Filename Length       003D (61)\n-6DB5D6 Extra Length          0009 (9)\n-6DB5D8 Comment Length        0000 (0)\n-6DB5DA Disk Start            0000 (0)\n-6DB5DC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB5DE Ext File Attributes   00000000 (0)\n-6DB5E2 Local Header Offset   001B1E2B (1777195)\n-6DB5E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB5E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB623 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB625   Length              0005 (5)\n-6DB627   Flags               01 (1) 'Modification'\n-6DB628   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB62C CENTRAL HEADER #611   02014B50 (33639248)\n-6DB630 Created Zip Spec      14 (20) '2.0'\n-6DB631 Created OS            00 (0) 'MS-DOS'\n-6DB632 Extract Zip Spec      14 (20) '2.0'\n-6DB633 Extract OS            00 (0) 'MS-DOS'\n-6DB634 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB636 Compression Method    0000 (0) 'Stored'\n-6DB638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB63C CRC                   01D0CBB6 (30460854)\n-6DB640 Compressed Size       00000A4C (2636)\n-6DB644 Uncompressed Size     00000A4C (2636)\n-6DB648 Filename Length       003B (59)\n-6DB64A Extra Length          0009 (9)\n-6DB64C Comment Length        0000 (0)\n-6DB64E Disk Start            0000 (0)\n-6DB650 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB652 Ext File Attributes   00000000 (0)\n-6DB656 Local Header Offset   001B2350 (1778512)\n-6DB65A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB65A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB695 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB697   Length              0005 (5)\n-6DB699   Flags               01 (1) 'Modification'\n-6DB69A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB69E CENTRAL HEADER #612   02014B50 (33639248)\n-6DB6A2 Created Zip Spec      14 (20) '2.0'\n-6DB6A3 Created OS            00 (0) 'MS-DOS'\n-6DB6A4 Extract Zip Spec      14 (20) '2.0'\n-6DB6A5 Extract OS            00 (0) 'MS-DOS'\n-6DB6A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB6A8 Compression Method    0000 (0) 'Stored'\n-6DB6AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB6AE CRC                   790D5CAF (2030918831)\n-6DB6B2 Compressed Size       000004AD (1197)\n-6DB6B6 Uncompressed Size     000004AD (1197)\n-6DB6BA Filename Length       0037 (55)\n-6DB6BC Extra Length          0009 (9)\n-6DB6BE Comment Length        0000 (0)\n-6DB6C0 Disk Start            0000 (0)\n-6DB6C2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB6C4 Ext File Attributes   00000000 (0)\n-6DB6C8 Local Header Offset   001B2E0E (1781262)\n-6DB6CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB6CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB703 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB705   Length              0005 (5)\n-6DB707   Flags               01 (1) 'Modification'\n-6DB708   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB70C CENTRAL HEADER #613   02014B50 (33639248)\n-6DB710 Created Zip Spec      14 (20) '2.0'\n-6DB711 Created OS            00 (0) 'MS-DOS'\n-6DB712 Extract Zip Spec      14 (20) '2.0'\n-6DB713 Extract OS            00 (0) 'MS-DOS'\n-6DB714 General Purpose Flag  0000 (0)\n-6DB716 Compression Method    0000 (0) 'Stored'\n-6DB718 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB71C CRC                   00000000 (0)\n-6DB720 Compressed Size       00000000 (0)\n-6DB724 Uncompressed Size     00000000 (0)\n-6DB728 Filename Length       002C (44)\n-6DB72A Extra Length          0009 (9)\n-6DB72C Comment Length        0000 (0)\n-6DB72E Disk Start            0000 (0)\n-6DB730 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB732 Ext File Attributes   00000000 (0)\n-6DB736 Local Header Offset   001B3329 (1782569)\n-6DB73A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB73A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB766 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB768   Length              0005 (5)\n-6DB76A   Flags               01 (1) 'Modification'\n-6DB76B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB76F CENTRAL HEADER #614   02014B50 (33639248)\n-6DB773 Created Zip Spec      14 (20) '2.0'\n-6DB774 Created OS            00 (0) 'MS-DOS'\n-6DB775 Extract Zip Spec      14 (20) '2.0'\n-6DB776 Extract OS            00 (0) 'MS-DOS'\n-6DB777 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB779 Compression Method    0000 (0) 'Stored'\n-6DB77B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB77F CRC                   A679BD52 (2792996178)\n-6DB783 Compressed Size       0000264E (9806)\n-6DB787 Uncompressed Size     0000264E (9806)\n-6DB78B Filename Length       004D (77)\n-6DB78D Extra Length          0009 (9)\n-6DB78F Comment Length        0000 (0)\n-6DB791 Disk Start            0000 (0)\n-6DB793 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB795 Ext File Attributes   00000000 (0)\n-6DB799 Local Header Offset   001B337C (1782652)\n-6DB79D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB79D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB7EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB7EC   Length              0005 (5)\n-6DB7EE   Flags               01 (1) 'Modification'\n-6DB7EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB7F3 CENTRAL HEADER #615   02014B50 (33639248)\n-6DB7F7 Created Zip Spec      14 (20) '2.0'\n-6DB7F8 Created OS            00 (0) 'MS-DOS'\n-6DB7F9 Extract Zip Spec      14 (20) '2.0'\n-6DB7FA Extract OS            00 (0) 'MS-DOS'\n-6DB7FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB7FD Compression Method    0000 (0) 'Stored'\n-6DB7FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB803 CRC                   5C1CB033 (1545383987)\n-6DB807 Compressed Size       000006CB (1739)\n-6DB80B Uncompressed Size     000006CB (1739)\n-6DB80F Filename Length       0054 (84)\n-6DB811 Extra Length          0009 (9)\n-6DB813 Comment Length        0000 (0)\n-6DB815 Disk Start            0000 (0)\n-6DB817 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB819 Ext File Attributes   00000000 (0)\n-6DB81D Local Header Offset   001B5A4E (1792590)\n-6DB821 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB821: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB875 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB877   Length              0005 (5)\n-6DB879   Flags               01 (1) 'Modification'\n-6DB87A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB87E CENTRAL HEADER #616   02014B50 (33639248)\n-6DB882 Created Zip Spec      14 (20) '2.0'\n-6DB883 Created OS            00 (0) 'MS-DOS'\n-6DB884 Extract Zip Spec      14 (20) '2.0'\n-6DB885 Extract OS            00 (0) 'MS-DOS'\n-6DB886 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB888 Compression Method    0000 (0) 'Stored'\n-6DB88A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB88E CRC                   E6853BBE (3867491262)\n-6DB892 Compressed Size       00000448 (1096)\n-6DB896 Uncompressed Size     00000448 (1096)\n-6DB89A Filename Length       0041 (65)\n-6DB89C Extra Length          0009 (9)\n-6DB89E Comment Length        0000 (0)\n-6DB8A0 Disk Start            0000 (0)\n-6DB8A2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB8A4 Ext File Attributes   00000000 (0)\n-6DB8A8 Local Header Offset   001B61A4 (1794468)\n-6DB8AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB8AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB8ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB8EF   Length              0005 (5)\n-6DB8F1   Flags               01 (1) 'Modification'\n-6DB8F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB8F6 CENTRAL HEADER #617   02014B50 (33639248)\n-6DB8FA Created Zip Spec      14 (20) '2.0'\n-6DB8FB Created OS            00 (0) 'MS-DOS'\n-6DB8FC Extract Zip Spec      14 (20) '2.0'\n-6DB8FD Extract OS            00 (0) 'MS-DOS'\n-6DB8FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB900 Compression Method    0000 (0) 'Stored'\n-6DB902 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB906 CRC                   B9E6C475 (3118908533)\n-6DB90A Compressed Size       00000B0B (2827)\n-6DB90E Uncompressed Size     00000B0B (2827)\n-6DB912 Filename Length       0043 (67)\n-6DB914 Extra Length          0009 (9)\n-6DB916 Comment Length        0000 (0)\n-6DB918 Disk Start            0000 (0)\n-6DB91A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB91C Ext File Attributes   00000000 (0)\n-6DB920 Local Header Offset   001B6664 (1795684)\n-6DB924 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB924: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB967 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB969   Length              0005 (5)\n-6DB96B   Flags               01 (1) 'Modification'\n-6DB96C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB970 CENTRAL HEADER #618   02014B50 (33639248)\n-6DB974 Created Zip Spec      14 (20) '2.0'\n-6DB975 Created OS            00 (0) 'MS-DOS'\n-6DB976 Extract Zip Spec      14 (20) '2.0'\n-6DB977 Extract OS            00 (0) 'MS-DOS'\n-6DB978 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB97A Compression Method    0000 (0) 'Stored'\n-6DB97C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB980 CRC                   74E6231A (1961239322)\n-6DB984 Compressed Size       00000511 (1297)\n-6DB988 Uncompressed Size     00000511 (1297)\n-6DB98C Filename Length       0046 (70)\n-6DB98E Extra Length          0009 (9)\n-6DB990 Comment Length        0000 (0)\n-6DB992 Disk Start            0000 (0)\n-6DB994 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DB996 Ext File Attributes   00000000 (0)\n-6DB99A Local Header Offset   001B71E9 (1798633)\n-6DB99E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DB99E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DB9E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DB9E6   Length              0005 (5)\n-6DB9E8   Flags               01 (1) 'Modification'\n-6DB9E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DB9ED CENTRAL HEADER #619   02014B50 (33639248)\n-6DB9F1 Created Zip Spec      14 (20) '2.0'\n-6DB9F2 Created OS            00 (0) 'MS-DOS'\n-6DB9F3 Extract Zip Spec      14 (20) '2.0'\n-6DB9F4 Extract OS            00 (0) 'MS-DOS'\n-6DB9F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DB9F7 Compression Method    0000 (0) 'Stored'\n-6DB9F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DB9FD CRC                   695FC9AE (1767885230)\n-6DBA01 Compressed Size       00000447 (1095)\n-6DBA05 Uncompressed Size     00000447 (1095)\n-6DBA09 Filename Length       003A (58)\n-6DBA0B Extra Length          0009 (9)\n-6DBA0D Comment Length        0000 (0)\n-6DBA0F Disk Start            0000 (0)\n-6DBA11 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBA13 Ext File Attributes   00000000 (0)\n-6DBA17 Local Header Offset   001B7777 (1800055)\n-6DBA1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBA1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBA55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBA57   Length              0005 (5)\n-6DBA59   Flags               01 (1) 'Modification'\n-6DBA5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBA5E CENTRAL HEADER #620   02014B50 (33639248)\n-6DBA62 Created Zip Spec      14 (20) '2.0'\n-6DBA63 Created OS            00 (0) 'MS-DOS'\n-6DBA64 Extract Zip Spec      14 (20) '2.0'\n-6DBA65 Extract OS            00 (0) 'MS-DOS'\n-6DBA66 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBA68 Compression Method    0000 (0) 'Stored'\n-6DBA6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBA6E CRC                   1744C936 (390383926)\n-6DBA72 Compressed Size       000023F1 (9201)\n-6DBA76 Uncompressed Size     000023F1 (9201)\n-6DBA7A Filename Length       0045 (69)\n-6DBA7C Extra Length          0009 (9)\n-6DBA7E Comment Length        0000 (0)\n-6DBA80 Disk Start            0000 (0)\n-6DBA82 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBA84 Ext File Attributes   00000000 (0)\n-6DBA88 Local Header Offset   001B7C2F (1801263)\n-6DBA8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBA8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBAD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBAD3   Length              0005 (5)\n-6DBAD5   Flags               01 (1) 'Modification'\n-6DBAD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBADA CENTRAL HEADER #621   02014B50 (33639248)\n-6DBADE Created Zip Spec      14 (20) '2.0'\n-6DBADF Created OS            00 (0) 'MS-DOS'\n-6DBAE0 Extract Zip Spec      14 (20) '2.0'\n-6DBAE1 Extract OS            00 (0) 'MS-DOS'\n-6DBAE2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBAE4 Compression Method    0000 (0) 'Stored'\n-6DBAE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBAEA CRC                   287FAB99 (679455641)\n-6DBAEE Compressed Size       000007C3 (1987)\n-6DBAF2 Uncompressed Size     000007C3 (1987)\n-6DBAF6 Filename Length       004C (76)\n-6DBAF8 Extra Length          0009 (9)\n-6DBAFA Comment Length        0000 (0)\n-6DBAFC Disk Start            0000 (0)\n-6DBAFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBB00 Ext File Attributes   00000000 (0)\n-6DBB04 Local Header Offset   001BA09C (1810588)\n-6DBB08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBB08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBB54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBB56   Length              0005 (5)\n-6DBB58   Flags               01 (1) 'Modification'\n-6DBB59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBB5D CENTRAL HEADER #622   02014B50 (33639248)\n-6DBB61 Created Zip Spec      14 (20) '2.0'\n-6DBB62 Created OS            00 (0) 'MS-DOS'\n-6DBB63 Extract Zip Spec      14 (20) '2.0'\n-6DBB64 Extract OS            00 (0) 'MS-DOS'\n-6DBB65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBB67 Compression Method    0000 (0) 'Stored'\n-6DBB69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBB6D CRC                   9083C03B (2424553531)\n-6DBB71 Compressed Size       00001B7B (7035)\n-6DBB75 Uncompressed Size     00001B7B (7035)\n-6DBB79 Filename Length       004D (77)\n-6DBB7B Extra Length          0009 (9)\n-6DBB7D Comment Length        0000 (0)\n-6DBB7F Disk Start            0000 (0)\n-6DBB81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBB83 Ext File Attributes   00000000 (0)\n-6DBB87 Local Header Offset   001BA8E2 (1812706)\n-6DBB8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBB8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBBD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBBDA   Length              0005 (5)\n-6DBBDC   Flags               01 (1) 'Modification'\n-6DBBDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBBE1 CENTRAL HEADER #623   02014B50 (33639248)\n-6DBBE5 Created Zip Spec      14 (20) '2.0'\n-6DBBE6 Created OS            00 (0) 'MS-DOS'\n-6DBBE7 Extract Zip Spec      14 (20) '2.0'\n-6DBBE8 Extract OS            00 (0) 'MS-DOS'\n-6DBBE9 General Purpose Flag  0000 (0)\n-6DBBEB Compression Method    0000 (0) 'Stored'\n-6DBBED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBBF1 CRC                   00000000 (0)\n-6DBBF5 Compressed Size       00000000 (0)\n-6DBBF9 Uncompressed Size     00000000 (0)\n-6DBBFD Filename Length       0031 (49)\n-6DBBFF Extra Length          0009 (9)\n-6DBC01 Comment Length        0000 (0)\n-6DBC03 Disk Start            0000 (0)\n-6DBC05 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBC07 Ext File Attributes   00000000 (0)\n-6DBC0B Local Header Offset   001BC4E1 (1819873)\n-6DBC0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBC0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBC40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBC42   Length              0005 (5)\n-6DBC44   Flags               01 (1) 'Modification'\n-6DBC45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBC49 CENTRAL HEADER #624   02014B50 (33639248)\n-6DBC4D Created Zip Spec      14 (20) '2.0'\n-6DBC4E Created OS            00 (0) 'MS-DOS'\n-6DBC4F Extract Zip Spec      14 (20) '2.0'\n-6DBC50 Extract OS            00 (0) 'MS-DOS'\n-6DBC51 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBC53 Compression Method    0000 (0) 'Stored'\n-6DBC55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBC59 CRC                   F23B4D60 (4063972704)\n-6DBC5D Compressed Size       0000582A (22570)\n-6DBC61 Uncompressed Size     0000582A (22570)\n-6DBC65 Filename Length       0054 (84)\n-6DBC67 Extra Length          0009 (9)\n-6DBC69 Comment Length        0000 (0)\n-6DBC6B Disk Start            0000 (0)\n-6DBC6D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBC6F Ext File Attributes   00000000 (0)\n-6DBC73 Local Header Offset   001BC539 (1819961)\n-6DBC77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBC77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBCCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBCCD   Length              0005 (5)\n-6DBCCF   Flags               01 (1) 'Modification'\n-6DBCD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBCD4 CENTRAL HEADER #625   02014B50 (33639248)\n-6DBCD8 Created Zip Spec      14 (20) '2.0'\n-6DBCD9 Created OS            00 (0) 'MS-DOS'\n-6DBCDA Extract Zip Spec      14 (20) '2.0'\n-6DBCDB Extract OS            00 (0) 'MS-DOS'\n-6DBCDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBCDE Compression Method    0000 (0) 'Stored'\n-6DBCE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBCE4 CRC                   E57CCA12 (3850160658)\n-6DBCE8 Compressed Size       000005CF (1487)\n-6DBCEC Uncompressed Size     000005CF (1487)\n-6DBCF0 Filename Length       005B (91)\n-6DBCF2 Extra Length          0009 (9)\n-6DBCF4 Comment Length        0000 (0)\n-6DBCF6 Disk Start            0000 (0)\n-6DBCF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBCFA Ext File Attributes   00000000 (0)\n-6DBCFE Local Header Offset   001C1DEE (1842670)\n-6DBD02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBD02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBD5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBD5F   Length              0005 (5)\n-6DBD61   Flags               01 (1) 'Modification'\n-6DBD62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBD66 CENTRAL HEADER #626   02014B50 (33639248)\n-6DBD6A Created Zip Spec      14 (20) '2.0'\n-6DBD6B Created OS            00 (0) 'MS-DOS'\n-6DBD6C Extract Zip Spec      14 (20) '2.0'\n-6DBD6D Extract OS            00 (0) 'MS-DOS'\n-6DBD6E General Purpose Flag  0000 (0)\n-6DBD70 Compression Method    0000 (0) 'Stored'\n-6DBD72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBD76 CRC                   00000000 (0)\n-6DBD7A Compressed Size       00000000 (0)\n-6DBD7E Uncompressed Size     00000000 (0)\n-6DBD82 Filename Length       0030 (48)\n-6DBD84 Extra Length          0009 (9)\n-6DBD86 Comment Length        0000 (0)\n-6DBD88 Disk Start            0000 (0)\n-6DBD8A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBD8C Ext File Attributes   00000000 (0)\n-6DBD90 Local Header Offset   001C244F (1844303)\n-6DBD94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBD94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBDC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBDC6   Length              0005 (5)\n-6DBDC8   Flags               01 (1) 'Modification'\n-6DBDC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBDCD CENTRAL HEADER #627   02014B50 (33639248)\n-6DBDD1 Created Zip Spec      14 (20) '2.0'\n-6DBDD2 Created OS            00 (0) 'MS-DOS'\n-6DBDD3 Extract Zip Spec      14 (20) '2.0'\n-6DBDD4 Extract OS            00 (0) 'MS-DOS'\n-6DBDD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBDD7 Compression Method    0000 (0) 'Stored'\n-6DBDD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBDDD CRC                   B946295F (3108383071)\n-6DBDE1 Compressed Size       000008A7 (2215)\n-6DBDE5 Uncompressed Size     000008A7 (2215)\n-6DBDE9 Filename Length       004C (76)\n-6DBDEB Extra Length          0009 (9)\n-6DBDED Comment Length        0000 (0)\n-6DBDEF Disk Start            0000 (0)\n-6DBDF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBDF3 Ext File Attributes   00000000 (0)\n-6DBDF7 Local Header Offset   001C24A6 (1844390)\n-6DBDFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBDFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBE47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBE49   Length              0005 (5)\n-6DBE4B   Flags               01 (1) 'Modification'\n-6DBE4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBE50 CENTRAL HEADER #628   02014B50 (33639248)\n-6DBE54 Created Zip Spec      14 (20) '2.0'\n-6DBE55 Created OS            00 (0) 'MS-DOS'\n-6DBE56 Extract Zip Spec      14 (20) '2.0'\n-6DBE57 Extract OS            00 (0) 'MS-DOS'\n-6DBE58 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBE5A Compression Method    0000 (0) 'Stored'\n-6DBE5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBE60 CRC                   208B91F5 (546017781)\n-6DBE64 Compressed Size       00000524 (1316)\n-6DBE68 Uncompressed Size     00000524 (1316)\n-6DBE6C Filename Length       0053 (83)\n-6DBE6E Extra Length          0009 (9)\n-6DBE70 Comment Length        0000 (0)\n-6DBE72 Disk Start            0000 (0)\n-6DBE74 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBE76 Ext File Attributes   00000000 (0)\n-6DBE7A Local Header Offset   001C2DD0 (1846736)\n-6DBE7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBE7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBED1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBED3   Length              0005 (5)\n-6DBED5   Flags               01 (1) 'Modification'\n-6DBED6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBEDA CENTRAL HEADER #629   02014B50 (33639248)\n-6DBEDE Created Zip Spec      14 (20) '2.0'\n-6DBEDF Created OS            00 (0) 'MS-DOS'\n-6DBEE0 Extract Zip Spec      14 (20) '2.0'\n-6DBEE1 Extract OS            00 (0) 'MS-DOS'\n-6DBEE2 General Purpose Flag  0000 (0)\n-6DBEE4 Compression Method    0000 (0) 'Stored'\n-6DBEE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBEEA CRC                   00000000 (0)\n-6DBEEE Compressed Size       00000000 (0)\n-6DBEF2 Uncompressed Size     00000000 (0)\n-6DBEF6 Filename Length       0034 (52)\n-6DBEF8 Extra Length          0009 (9)\n-6DBEFA Comment Length        0000 (0)\n-6DBEFC Disk Start            0000 (0)\n-6DBEFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBF00 Ext File Attributes   00000000 (0)\n-6DBF04 Local Header Offset   001C337E (1848190)\n-6DBF08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBF08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBF3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBF3E   Length              0005 (5)\n-6DBF40   Flags               01 (1) 'Modification'\n-6DBF41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBF45 CENTRAL HEADER #630   02014B50 (33639248)\n-6DBF49 Created Zip Spec      14 (20) '2.0'\n-6DBF4A Created OS            00 (0) 'MS-DOS'\n-6DBF4B Extract Zip Spec      14 (20) '2.0'\n-6DBF4C Extract OS            00 (0) 'MS-DOS'\n-6DBF4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DBF4F Compression Method    0000 (0) 'Stored'\n-6DBF51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBF55 CRC                   C03FB50A (3225400586)\n-6DBF59 Compressed Size       00000F4A (3914)\n-6DBF5D Uncompressed Size     00000F4A (3914)\n-6DBF61 Filename Length       0056 (86)\n-6DBF63 Extra Length          0009 (9)\n-6DBF65 Comment Length        0000 (0)\n-6DBF67 Disk Start            0000 (0)\n-6DBF69 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBF6B Ext File Attributes   00000000 (0)\n-6DBF6F Local Header Offset   001C33D9 (1848281)\n-6DBF73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DBF73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DBFC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DBFCB   Length              0005 (5)\n-6DBFCD   Flags               01 (1) 'Modification'\n-6DBFCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DBFD2 CENTRAL HEADER #631   02014B50 (33639248)\n-6DBFD6 Created Zip Spec      14 (20) '2.0'\n-6DBFD7 Created OS            00 (0) 'MS-DOS'\n-6DBFD8 Extract Zip Spec      14 (20) '2.0'\n-6DBFD9 Extract OS            00 (0) 'MS-DOS'\n-6DBFDA General Purpose Flag  0000 (0)\n-6DBFDC Compression Method    0000 (0) 'Stored'\n-6DBFDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DBFE2 CRC                   00000000 (0)\n-6DBFE6 Compressed Size       00000000 (0)\n-6DBFEA Uncompressed Size     00000000 (0)\n-6DBFEE Filename Length       0022 (34)\n-6DBFF0 Extra Length          0009 (9)\n-6DBFF2 Comment Length        0000 (0)\n-6DBFF4 Disk Start            0000 (0)\n-6DBFF6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DBFF8 Ext File Attributes   00000000 (0)\n-6DBFFC Local Header Offset   001C43B0 (1852336)\n-6DC000 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC000: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC022 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC024   Length              0005 (5)\n-6DC026   Flags               01 (1) 'Modification'\n-6DC027   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC02B CENTRAL HEADER #632   02014B50 (33639248)\n-6DC02F Created Zip Spec      14 (20) '2.0'\n-6DC030 Created OS            00 (0) 'MS-DOS'\n-6DC031 Extract Zip Spec      14 (20) '2.0'\n-6DC032 Extract OS            00 (0) 'MS-DOS'\n-6DC033 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC035 Compression Method    0000 (0) 'Stored'\n-6DC037 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC03B CRC                   2CFFA2CA (754950858)\n-6DC03F Compressed Size       00002810 (10256)\n-6DC043 Uncompressed Size     00002810 (10256)\n-6DC047 Filename Length       0036 (54)\n-6DC049 Extra Length          0009 (9)\n-6DC04B Comment Length        0000 (0)\n-6DC04D Disk Start            0000 (0)\n-6DC04F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC051 Ext File Attributes   00000000 (0)\n-6DC055 Local Header Offset   001C43F9 (1852409)\n-6DC059 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC059: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC08F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC091   Length              0005 (5)\n-6DC093   Flags               01 (1) 'Modification'\n-6DC094   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC098 CENTRAL HEADER #633   02014B50 (33639248)\n-6DC09C Created Zip Spec      14 (20) '2.0'\n-6DC09D Created OS            00 (0) 'MS-DOS'\n-6DC09E Extract Zip Spec      14 (20) '2.0'\n-6DC09F Extract OS            00 (0) 'MS-DOS'\n-6DC0A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC0A2 Compression Method    0000 (0) 'Stored'\n-6DC0A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC0A8 CRC                   A6E18129 (2799796521)\n-6DC0AC Compressed Size       000003BF (959)\n-6DC0B0 Uncompressed Size     000003BF (959)\n-6DC0B4 Filename Length       0036 (54)\n-6DC0B6 Extra Length          0009 (9)\n-6DC0B8 Comment Length        0000 (0)\n-6DC0BA Disk Start            0000 (0)\n-6DC0BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC0BE Ext File Attributes   00000000 (0)\n-6DC0C2 Local Header Offset   001C6C76 (1862774)\n-6DC0C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC0C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC0FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC0FE   Length              0005 (5)\n-6DC100   Flags               01 (1) 'Modification'\n-6DC101   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC105 CENTRAL HEADER #634   02014B50 (33639248)\n-6DC109 Created Zip Spec      14 (20) '2.0'\n-6DC10A Created OS            00 (0) 'MS-DOS'\n-6DC10B Extract Zip Spec      14 (20) '2.0'\n-6DC10C Extract OS            00 (0) 'MS-DOS'\n-6DC10D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC10F Compression Method    0000 (0) 'Stored'\n-6DC111 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC115 CRC                   0D4F07B4 (223283124)\n-6DC119 Compressed Size       0000042F (1071)\n-6DC11D Uncompressed Size     0000042F (1071)\n-6DC121 Filename Length       0033 (51)\n-6DC123 Extra Length          0009 (9)\n-6DC125 Comment Length        0000 (0)\n-6DC127 Disk Start            0000 (0)\n-6DC129 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC12B Ext File Attributes   00000000 (0)\n-6DC12F Local Header Offset   001C70A2 (1863842)\n-6DC133 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC133: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC166 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC168   Length              0005 (5)\n-6DC16A   Flags               01 (1) 'Modification'\n-6DC16B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC16F CENTRAL HEADER #635   02014B50 (33639248)\n-6DC173 Created Zip Spec      14 (20) '2.0'\n-6DC174 Created OS            00 (0) 'MS-DOS'\n-6DC175 Extract Zip Spec      14 (20) '2.0'\n-6DC176 Extract OS            00 (0) 'MS-DOS'\n-6DC177 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC179 Compression Method    0000 (0) 'Stored'\n-6DC17B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC17F CRC                   E90F01CB (3910074827)\n-6DC183 Compressed Size       00000D8D (3469)\n-6DC187 Uncompressed Size     00000D8D (3469)\n-6DC18B Filename Length       0038 (56)\n-6DC18D Extra Length          0009 (9)\n-6DC18F Comment Length        0000 (0)\n-6DC191 Disk Start            0000 (0)\n-6DC193 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC195 Ext File Attributes   00000000 (0)\n-6DC199 Local Header Offset   001C753B (1865019)\n-6DC19D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC19D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC1D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC1D7   Length              0005 (5)\n-6DC1D9   Flags               01 (1) 'Modification'\n-6DC1DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC1DE CENTRAL HEADER #636   02014B50 (33639248)\n-6DC1E2 Created Zip Spec      14 (20) '2.0'\n-6DC1E3 Created OS            00 (0) 'MS-DOS'\n-6DC1E4 Extract Zip Spec      14 (20) '2.0'\n-6DC1E5 Extract OS            00 (0) 'MS-DOS'\n-6DC1E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC1E8 Compression Method    0000 (0) 'Stored'\n-6DC1EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC1EE CRC                   1B8CE743 (462219075)\n-6DC1F2 Compressed Size       000003B6 (950)\n-6DC1F6 Uncompressed Size     000003B6 (950)\n-6DC1FA Filename Length       0038 (56)\n-6DC1FC Extra Length          0009 (9)\n-6DC1FE Comment Length        0000 (0)\n-6DC200 Disk Start            0000 (0)\n-6DC202 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC204 Ext File Attributes   00000000 (0)\n-6DC208 Local Header Offset   001C8337 (1868599)\n-6DC20C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC20C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC244 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC246   Length              0005 (5)\n-6DC248   Flags               01 (1) 'Modification'\n-6DC249   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC24D CENTRAL HEADER #637   02014B50 (33639248)\n-6DC251 Created Zip Spec      14 (20) '2.0'\n-6DC252 Created OS            00 (0) 'MS-DOS'\n-6DC253 Extract Zip Spec      14 (20) '2.0'\n-6DC254 Extract OS            00 (0) 'MS-DOS'\n-6DC255 General Purpose Flag  0000 (0)\n-6DC257 Compression Method    0000 (0) 'Stored'\n-6DC259 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC25D CRC                   00000000 (0)\n-6DC261 Compressed Size       00000000 (0)\n-6DC265 Uncompressed Size     00000000 (0)\n-6DC269 Filename Length       0020 (32)\n-6DC26B Extra Length          0009 (9)\n-6DC26D Comment Length        0000 (0)\n-6DC26F Disk Start            0000 (0)\n-6DC271 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC273 Ext File Attributes   00000000 (0)\n-6DC277 Local Header Offset   001C875C (1869660)\n-6DC27B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC27B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC29B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC29D   Length              0005 (5)\n-6DC29F   Flags               01 (1) 'Modification'\n-6DC2A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC2A4 CENTRAL HEADER #638   02014B50 (33639248)\n-6DC2A8 Created Zip Spec      14 (20) '2.0'\n-6DC2A9 Created OS            00 (0) 'MS-DOS'\n-6DC2AA Extract Zip Spec      14 (20) '2.0'\n-6DC2AB Extract OS            00 (0) 'MS-DOS'\n-6DC2AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC2AE Compression Method    0000 (0) 'Stored'\n-6DC2B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC2B4 CRC                   94BF4E7B (2495565435)\n-6DC2B8 Compressed Size       000003B5 (949)\n-6DC2BC Uncompressed Size     000003B5 (949)\n-6DC2C0 Filename Length       0031 (49)\n-6DC2C2 Extra Length          0009 (9)\n-6DC2C4 Comment Length        0000 (0)\n-6DC2C6 Disk Start            0000 (0)\n-6DC2C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC2CA Ext File Attributes   00000000 (0)\n-6DC2CE Local Header Offset   001C87A3 (1869731)\n-6DC2D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC2D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC303 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC305   Length              0005 (5)\n-6DC307   Flags               01 (1) 'Modification'\n-6DC308   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC30C CENTRAL HEADER #639   02014B50 (33639248)\n-6DC310 Created Zip Spec      14 (20) '2.0'\n-6DC311 Created OS            00 (0) 'MS-DOS'\n-6DC312 Extract Zip Spec      14 (20) '2.0'\n-6DC313 Extract OS            00 (0) 'MS-DOS'\n-6DC314 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC316 Compression Method    0000 (0) 'Stored'\n-6DC318 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC31C CRC                   01244711 (19154705)\n-6DC320 Compressed Size       000005BD (1469)\n-6DC324 Uncompressed Size     000005BD (1469)\n-6DC328 Filename Length       002E (46)\n-6DC32A Extra Length          0009 (9)\n-6DC32C Comment Length        0000 (0)\n-6DC32E Disk Start            0000 (0)\n-6DC330 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC332 Ext File Attributes   00000000 (0)\n-6DC336 Local Header Offset   001C8BC0 (1870784)\n-6DC33A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC33A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC368 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC36A   Length              0005 (5)\n-6DC36C   Flags               01 (1) 'Modification'\n-6DC36D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC371 CENTRAL HEADER #640   02014B50 (33639248)\n-6DC375 Created Zip Spec      14 (20) '2.0'\n-6DC376 Created OS            00 (0) 'MS-DOS'\n-6DC377 Extract Zip Spec      14 (20) '2.0'\n-6DC378 Extract OS            00 (0) 'MS-DOS'\n-6DC379 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC37B Compression Method    0000 (0) 'Stored'\n-6DC37D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC381 CRC                   8B9FA779 (2342496121)\n-6DC385 Compressed Size       0000047A (1146)\n-6DC389 Uncompressed Size     0000047A (1146)\n-6DC38D Filename Length       0035 (53)\n-6DC38F Extra Length          0009 (9)\n-6DC391 Comment Length        0000 (0)\n-6DC393 Disk Start            0000 (0)\n-6DC395 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC397 Ext File Attributes   00000000 (0)\n-6DC39B Local Header Offset   001C91E2 (1872354)\n-6DC39F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC39F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC3D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC3D6   Length              0005 (5)\n-6DC3D8   Flags               01 (1) 'Modification'\n-6DC3D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC3DD CENTRAL HEADER #641   02014B50 (33639248)\n-6DC3E1 Created Zip Spec      14 (20) '2.0'\n-6DC3E2 Created OS            00 (0) 'MS-DOS'\n-6DC3E3 Extract Zip Spec      14 (20) '2.0'\n-6DC3E4 Extract OS            00 (0) 'MS-DOS'\n-6DC3E5 General Purpose Flag  0000 (0)\n-6DC3E7 Compression Method    0000 (0) 'Stored'\n-6DC3E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC3ED CRC                   00000000 (0)\n-6DC3F1 Compressed Size       00000000 (0)\n-6DC3F5 Uncompressed Size     00000000 (0)\n-6DC3F9 Filename Length       0020 (32)\n-6DC3FB Extra Length          0009 (9)\n-6DC3FD Comment Length        0000 (0)\n-6DC3FF Disk Start            0000 (0)\n-6DC401 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC403 Ext File Attributes   00000000 (0)\n-6DC407 Local Header Offset   001C96C8 (1873608)\n-6DC40B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC40B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC42B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC42D   Length              0005 (5)\n-6DC42F   Flags               01 (1) 'Modification'\n-6DC430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC434 CENTRAL HEADER #642   02014B50 (33639248)\n-6DC438 Created Zip Spec      14 (20) '2.0'\n-6DC439 Created OS            00 (0) 'MS-DOS'\n-6DC43A Extract Zip Spec      14 (20) '2.0'\n-6DC43B Extract OS            00 (0) 'MS-DOS'\n-6DC43C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC43E Compression Method    0000 (0) 'Stored'\n-6DC440 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC444 CRC                   6A25F272 (1780871794)\n-6DC448 Compressed Size       00000E60 (3680)\n-6DC44C Uncompressed Size     00000E60 (3680)\n-6DC450 Filename Length       002E (46)\n-6DC452 Extra Length          0009 (9)\n-6DC454 Comment Length        0000 (0)\n-6DC456 Disk Start            0000 (0)\n-6DC458 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC45A Ext File Attributes   00000000 (0)\n-6DC45E Local Header Offset   001C970F (1873679)\n-6DC462 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC462: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC490 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC492   Length              0005 (5)\n-6DC494   Flags               01 (1) 'Modification'\n-6DC495   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC499 CENTRAL HEADER #643   02014B50 (33639248)\n-6DC49D Created Zip Spec      14 (20) '2.0'\n-6DC49E Created OS            00 (0) 'MS-DOS'\n-6DC49F Extract Zip Spec      14 (20) '2.0'\n-6DC4A0 Extract OS            00 (0) 'MS-DOS'\n-6DC4A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC4A3 Compression Method    0000 (0) 'Stored'\n-6DC4A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC4A9 CRC                   94774B8E (2490846094)\n-6DC4AD Compressed Size       00000411 (1041)\n-6DC4B1 Uncompressed Size     00000411 (1041)\n-6DC4B5 Filename Length       0034 (52)\n-6DC4B7 Extra Length          0009 (9)\n-6DC4B9 Comment Length        0000 (0)\n-6DC4BB Disk Start            0000 (0)\n-6DC4BD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC4BF Ext File Attributes   00000000 (0)\n-6DC4C3 Local Header Offset   001CA5D4 (1877460)\n-6DC4C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC4C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC4FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC4FD   Length              0005 (5)\n-6DC4FF   Flags               01 (1) 'Modification'\n-6DC500   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC504 CENTRAL HEADER #644   02014B50 (33639248)\n-6DC508 Created Zip Spec      14 (20) '2.0'\n-6DC509 Created OS            00 (0) 'MS-DOS'\n-6DC50A Extract Zip Spec      14 (20) '2.0'\n-6DC50B Extract OS            00 (0) 'MS-DOS'\n-6DC50C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC50E Compression Method    0000 (0) 'Stored'\n-6DC510 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC514 CRC                   A95D9412 (2841482258)\n-6DC518 Compressed Size       00000532 (1330)\n-6DC51C Uncompressed Size     00000532 (1330)\n-6DC520 Filename Length       003D (61)\n-6DC522 Extra Length          0009 (9)\n-6DC524 Comment Length        0000 (0)\n-6DC526 Disk Start            0000 (0)\n-6DC528 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC52A Ext File Attributes   00000000 (0)\n-6DC52E Local Header Offset   001CAA50 (1878608)\n-6DC532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC56F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC571   Length              0005 (5)\n-6DC573   Flags               01 (1) 'Modification'\n-6DC574   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC578 CENTRAL HEADER #645   02014B50 (33639248)\n-6DC57C Created Zip Spec      14 (20) '2.0'\n-6DC57D Created OS            00 (0) 'MS-DOS'\n-6DC57E Extract Zip Spec      14 (20) '2.0'\n-6DC57F Extract OS            00 (0) 'MS-DOS'\n-6DC580 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC582 Compression Method    0000 (0) 'Stored'\n-6DC584 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC588 CRC                   578BE304 (1468785412)\n-6DC58C Compressed Size       00000514 (1300)\n-6DC590 Uncompressed Size     00000514 (1300)\n-6DC594 Filename Length       003F (63)\n-6DC596 Extra Length          0009 (9)\n-6DC598 Comment Length        0000 (0)\n-6DC59A Disk Start            0000 (0)\n-6DC59C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC59E Ext File Attributes   00000000 (0)\n-6DC5A2 Local Header Offset   001CAFF6 (1880054)\n-6DC5A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC5A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC5E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC5E7   Length              0005 (5)\n-6DC5E9   Flags               01 (1) 'Modification'\n-6DC5EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC5EE CENTRAL HEADER #646   02014B50 (33639248)\n-6DC5F2 Created Zip Spec      14 (20) '2.0'\n-6DC5F3 Created OS            00 (0) 'MS-DOS'\n-6DC5F4 Extract Zip Spec      14 (20) '2.0'\n-6DC5F5 Extract OS            00 (0) 'MS-DOS'\n-6DC5F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC5F8 Compression Method    0000 (0) 'Stored'\n-6DC5FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC5FE CRC                   8AE0BB27 (2329983783)\n-6DC602 Compressed Size       000005DA (1498)\n-6DC606 Uncompressed Size     000005DA (1498)\n-6DC60A Filename Length       003F (63)\n-6DC60C Extra Length          0009 (9)\n-6DC60E Comment Length        0000 (0)\n-6DC610 Disk Start            0000 (0)\n-6DC612 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC614 Ext File Attributes   00000000 (0)\n-6DC618 Local Header Offset   001CB580 (1881472)\n-6DC61C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC61C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC65B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC65D   Length              0005 (5)\n-6DC65F   Flags               01 (1) 'Modification'\n-6DC660   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC664 CENTRAL HEADER #647   02014B50 (33639248)\n-6DC668 Created Zip Spec      14 (20) '2.0'\n-6DC669 Created OS            00 (0) 'MS-DOS'\n-6DC66A Extract Zip Spec      14 (20) '2.0'\n-6DC66B Extract OS            00 (0) 'MS-DOS'\n-6DC66C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC66E Compression Method    0000 (0) 'Stored'\n-6DC670 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC674 CRC                   D8EB7635 (3639309877)\n-6DC678 Compressed Size       0000052E (1326)\n-6DC67C Uncompressed Size     0000052E (1326)\n-6DC680 Filename Length       003C (60)\n-6DC682 Extra Length          0009 (9)\n-6DC684 Comment Length        0000 (0)\n-6DC686 Disk Start            0000 (0)\n-6DC688 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC68A Ext File Attributes   00000000 (0)\n-6DC68E Local Header Offset   001CBBD0 (1883088)\n-6DC692 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC692: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC6CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC6D0   Length              0005 (5)\n-6DC6D2   Flags               01 (1) 'Modification'\n-6DC6D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC6D7 CENTRAL HEADER #648   02014B50 (33639248)\n-6DC6DB Created Zip Spec      14 (20) '2.0'\n-6DC6DC Created OS            00 (0) 'MS-DOS'\n-6DC6DD Extract Zip Spec      14 (20) '2.0'\n-6DC6DE Extract OS            00 (0) 'MS-DOS'\n-6DC6DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC6E1 Compression Method    0000 (0) 'Stored'\n-6DC6E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC6E7 CRC                   7C7DD03D (2088620093)\n-6DC6EB Compressed Size       00000528 (1320)\n-6DC6EF Uncompressed Size     00000528 (1320)\n-6DC6F3 Filename Length       003B (59)\n-6DC6F5 Extra Length          0009 (9)\n-6DC6F7 Comment Length        0000 (0)\n-6DC6F9 Disk Start            0000 (0)\n-6DC6FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC6FD Ext File Attributes   00000000 (0)\n-6DC701 Local Header Offset   001CC171 (1884529)\n-6DC705 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC705: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC740 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC742   Length              0005 (5)\n-6DC744   Flags               01 (1) 'Modification'\n-6DC745   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC749 CENTRAL HEADER #649   02014B50 (33639248)\n-6DC74D Created Zip Spec      14 (20) '2.0'\n-6DC74E Created OS            00 (0) 'MS-DOS'\n-6DC74F Extract Zip Spec      14 (20) '2.0'\n-6DC750 Extract OS            00 (0) 'MS-DOS'\n-6DC751 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC753 Compression Method    0000 (0) 'Stored'\n-6DC755 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC759 CRC                   39AACB0F (967494415)\n-6DC75D Compressed Size       0000052E (1326)\n-6DC761 Uncompressed Size     0000052E (1326)\n-6DC765 Filename Length       003D (61)\n-6DC767 Extra Length          0009 (9)\n-6DC769 Comment Length        0000 (0)\n-6DC76B Disk Start            0000 (0)\n-6DC76D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC76F Ext File Attributes   00000000 (0)\n-6DC773 Local Header Offset   001CC70B (1885963)\n-6DC777 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC777: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC7B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC7B6   Length              0005 (5)\n-6DC7B8   Flags               01 (1) 'Modification'\n-6DC7B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC7BD CENTRAL HEADER #650   02014B50 (33639248)\n-6DC7C1 Created Zip Spec      14 (20) '2.0'\n-6DC7C2 Created OS            00 (0) 'MS-DOS'\n-6DC7C3 Extract Zip Spec      14 (20) '2.0'\n-6DC7C4 Extract OS            00 (0) 'MS-DOS'\n-6DC7C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC7C7 Compression Method    0000 (0) 'Stored'\n-6DC7C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC7CD CRC                   5BF59138 (1542820152)\n-6DC7D1 Compressed Size       00000524 (1316)\n-6DC7D5 Uncompressed Size     00000524 (1316)\n-6DC7D9 Filename Length       003A (58)\n-6DC7DB Extra Length          0009 (9)\n-6DC7DD Comment Length        0000 (0)\n-6DC7DF Disk Start            0000 (0)\n-6DC7E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC7E3 Ext File Attributes   00000000 (0)\n-6DC7E7 Local Header Offset   001CCCAD (1887405)\n-6DC7EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC7EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC825 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC827   Length              0005 (5)\n-6DC829   Flags               01 (1) 'Modification'\n-6DC82A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC82E CENTRAL HEADER #651   02014B50 (33639248)\n-6DC832 Created Zip Spec      14 (20) '2.0'\n-6DC833 Created OS            00 (0) 'MS-DOS'\n-6DC834 Extract Zip Spec      14 (20) '2.0'\n-6DC835 Extract OS            00 (0) 'MS-DOS'\n-6DC836 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC838 Compression Method    0000 (0) 'Stored'\n-6DC83A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC83E CRC                   9AA4AEC4 (2594483908)\n-6DC842 Compressed Size       000004F3 (1267)\n-6DC846 Uncompressed Size     000004F3 (1267)\n-6DC84A Filename Length       003E (62)\n-6DC84C Extra Length          0009 (9)\n-6DC84E Comment Length        0000 (0)\n-6DC850 Disk Start            0000 (0)\n-6DC852 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC854 Ext File Attributes   00000000 (0)\n-6DC858 Local Header Offset   001CD242 (1888834)\n-6DC85C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC85C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC89A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC89C   Length              0005 (5)\n-6DC89E   Flags               01 (1) 'Modification'\n-6DC89F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC8A3 CENTRAL HEADER #652   02014B50 (33639248)\n-6DC8A7 Created Zip Spec      14 (20) '2.0'\n-6DC8A8 Created OS            00 (0) 'MS-DOS'\n-6DC8A9 Extract Zip Spec      14 (20) '2.0'\n-6DC8AA Extract OS            00 (0) 'MS-DOS'\n-6DC8AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC8AD Compression Method    0000 (0) 'Stored'\n-6DC8AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC8B3 CRC                   FD88956D (4253586797)\n-6DC8B7 Compressed Size       00000529 (1321)\n-6DC8BB Uncompressed Size     00000529 (1321)\n-6DC8BF Filename Length       003B (59)\n-6DC8C1 Extra Length          0009 (9)\n-6DC8C3 Comment Length        0000 (0)\n-6DC8C5 Disk Start            0000 (0)\n-6DC8C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC8C9 Ext File Attributes   00000000 (0)\n-6DC8CD Local Header Offset   001CD7AA (1890218)\n-6DC8D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC8D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC90C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC90E   Length              0005 (5)\n-6DC910   Flags               01 (1) 'Modification'\n-6DC911   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC915 CENTRAL HEADER #653   02014B50 (33639248)\n-6DC919 Created Zip Spec      14 (20) '2.0'\n-6DC91A Created OS            00 (0) 'MS-DOS'\n-6DC91B Extract Zip Spec      14 (20) '2.0'\n-6DC91C Extract OS            00 (0) 'MS-DOS'\n-6DC91D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC91F Compression Method    0000 (0) 'Stored'\n-6DC921 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC925 CRC                   88F80863 (2297956451)\n-6DC929 Compressed Size       00000452 (1106)\n-6DC92D Uncompressed Size     00000452 (1106)\n-6DC931 Filename Length       003C (60)\n-6DC933 Extra Length          0009 (9)\n-6DC935 Comment Length        0000 (0)\n-6DC937 Disk Start            0000 (0)\n-6DC939 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC93B Ext File Attributes   00000000 (0)\n-6DC93F Local Header Offset   001CDD45 (1891653)\n-6DC943 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC943: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC97F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC981   Length              0005 (5)\n-6DC983   Flags               01 (1) 'Modification'\n-6DC984   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC988 CENTRAL HEADER #654   02014B50 (33639248)\n-6DC98C Created Zip Spec      14 (20) '2.0'\n-6DC98D Created OS            00 (0) 'MS-DOS'\n-6DC98E Extract Zip Spec      14 (20) '2.0'\n-6DC98F Extract OS            00 (0) 'MS-DOS'\n-6DC990 General Purpose Flag  0000 (0)\n-6DC992 Compression Method    0000 (0) 'Stored'\n-6DC994 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC998 CRC                   00000000 (0)\n-6DC99C Compressed Size       00000000 (0)\n-6DC9A0 Uncompressed Size     00000000 (0)\n-6DC9A4 Filename Length       0029 (41)\n-6DC9A6 Extra Length          0009 (9)\n-6DC9A8 Comment Length        0000 (0)\n-6DC9AA Disk Start            0000 (0)\n-6DC9AC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DC9AE Ext File Attributes   00000000 (0)\n-6DC9B2 Local Header Offset   001CE20A (1892874)\n-6DC9B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DC9B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DC9DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DC9E1   Length              0005 (5)\n-6DC9E3   Flags               01 (1) 'Modification'\n-6DC9E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DC9E8 CENTRAL HEADER #655   02014B50 (33639248)\n-6DC9EC Created Zip Spec      14 (20) '2.0'\n-6DC9ED Created OS            00 (0) 'MS-DOS'\n-6DC9EE Extract Zip Spec      14 (20) '2.0'\n-6DC9EF Extract OS            00 (0) 'MS-DOS'\n-6DC9F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DC9F2 Compression Method    0000 (0) 'Stored'\n-6DC9F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DC9F8 CRC                   56E92431 (1458119729)\n-6DC9FC Compressed Size       00000D31 (3377)\n-6DCA00 Uncompressed Size     00000D31 (3377)\n-6DCA04 Filename Length       0041 (65)\n-6DCA06 Extra Length          0009 (9)\n-6DCA08 Comment Length        0000 (0)\n-6DCA0A Disk Start            0000 (0)\n-6DCA0C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCA0E Ext File Attributes   00000000 (0)\n-6DCA12 Local Header Offset   001CE25A (1892954)\n-6DCA16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCA16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCA57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCA59   Length              0005 (5)\n-6DCA5B   Flags               01 (1) 'Modification'\n-6DCA5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCA60 CENTRAL HEADER #656   02014B50 (33639248)\n-6DCA64 Created Zip Spec      14 (20) '2.0'\n-6DCA65 Created OS            00 (0) 'MS-DOS'\n-6DCA66 Extract Zip Spec      14 (20) '2.0'\n-6DCA67 Extract OS            00 (0) 'MS-DOS'\n-6DCA68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCA6A Compression Method    0000 (0) 'Stored'\n-6DCA6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCA70 CRC                   54A7512C (1420251436)\n-6DCA74 Compressed Size       00000774 (1908)\n-6DCA78 Uncompressed Size     00000774 (1908)\n-6DCA7C Filename Length       0044 (68)\n-6DCA7E Extra Length          0009 (9)\n-6DCA80 Comment Length        0000 (0)\n-6DCA82 Disk Start            0000 (0)\n-6DCA84 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCA86 Ext File Attributes   00000000 (0)\n-6DCA8A Local Header Offset   001CF003 (1896451)\n-6DCA8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCA8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCAD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCAD4   Length              0005 (5)\n-6DCAD6   Flags               01 (1) 'Modification'\n-6DCAD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCADB CENTRAL HEADER #657   02014B50 (33639248)\n-6DCADF Created Zip Spec      14 (20) '2.0'\n-6DCAE0 Created OS            00 (0) 'MS-DOS'\n-6DCAE1 Extract Zip Spec      14 (20) '2.0'\n-6DCAE2 Extract OS            00 (0) 'MS-DOS'\n-6DCAE3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCAE5 Compression Method    0000 (0) 'Stored'\n-6DCAE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCAEB CRC                   44B63BF0 (1152793584)\n-6DCAEF Compressed Size       0000050F (1295)\n-6DCAF3 Uncompressed Size     0000050F (1295)\n-6DCAF7 Filename Length       004C (76)\n-6DCAF9 Extra Length          0009 (9)\n-6DCAFB Comment Length        0000 (0)\n-6DCAFD Disk Start            0000 (0)\n-6DCAFF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCB01 Ext File Attributes   00000000 (0)\n-6DCB05 Local Header Offset   001CF7F2 (1898482)\n-6DCB09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCB09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCB55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCB57   Length              0005 (5)\n-6DCB59   Flags               01 (1) 'Modification'\n-6DCB5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCB5E CENTRAL HEADER #658   02014B50 (33639248)\n-6DCB62 Created Zip Spec      14 (20) '2.0'\n-6DCB63 Created OS            00 (0) 'MS-DOS'\n-6DCB64 Extract Zip Spec      14 (20) '2.0'\n-6DCB65 Extract OS            00 (0) 'MS-DOS'\n-6DCB66 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCB68 Compression Method    0000 (0) 'Stored'\n-6DCB6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCB6E CRC                   6FDF7D92 (1876917650)\n-6DCB72 Compressed Size       00000538 (1336)\n-6DCB76 Uncompressed Size     00000538 (1336)\n-6DCB7A Filename Length       004C (76)\n-6DCB7C Extra Length          0009 (9)\n-6DCB7E Comment Length        0000 (0)\n-6DCB80 Disk Start            0000 (0)\n-6DCB82 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCB84 Ext File Attributes   00000000 (0)\n-6DCB88 Local Header Offset   001CFD84 (1899908)\n-6DCB8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCB8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCBD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCBDA   Length              0005 (5)\n-6DCBDC   Flags               01 (1) 'Modification'\n-6DCBDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCBE1 CENTRAL HEADER #659   02014B50 (33639248)\n-6DCBE5 Created Zip Spec      14 (20) '2.0'\n-6DCBE6 Created OS            00 (0) 'MS-DOS'\n-6DCBE7 Extract Zip Spec      14 (20) '2.0'\n-6DCBE8 Extract OS            00 (0) 'MS-DOS'\n-6DCBE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCBEB Compression Method    0000 (0) 'Stored'\n-6DCBED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCBF1 CRC                   E28B1205 (3800764933)\n-6DCBF5 Compressed Size       000004D6 (1238)\n-6DCBF9 Uncompressed Size     000004D6 (1238)\n-6DCBFD Filename Length       0049 (73)\n-6DCBFF Extra Length          0009 (9)\n-6DCC01 Comment Length        0000 (0)\n-6DCC03 Disk Start            0000 (0)\n-6DCC05 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCC07 Ext File Attributes   00000000 (0)\n-6DCC0B Local Header Offset   001D033F (1901375)\n-6DCC0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCC0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCC58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCC5A   Length              0005 (5)\n-6DCC5C   Flags               01 (1) 'Modification'\n-6DCC5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCC61 CENTRAL HEADER #660   02014B50 (33639248)\n-6DCC65 Created Zip Spec      14 (20) '2.0'\n-6DCC66 Created OS            00 (0) 'MS-DOS'\n-6DCC67 Extract Zip Spec      14 (20) '2.0'\n-6DCC68 Extract OS            00 (0) 'MS-DOS'\n-6DCC69 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCC6B Compression Method    0000 (0) 'Stored'\n-6DCC6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCC71 CRC                   8C9A6BCF (2358930383)\n-6DCC75 Compressed Size       000004BF (1215)\n-6DCC79 Uncompressed Size     000004BF (1215)\n-6DCC7D Filename Length       0044 (68)\n-6DCC7F Extra Length          0009 (9)\n-6DCC81 Comment Length        0000 (0)\n-6DCC83 Disk Start            0000 (0)\n-6DCC85 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCC87 Ext File Attributes   00000000 (0)\n-6DCC8B Local Header Offset   001D0895 (1902741)\n-6DCC8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCC8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCCD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCCD5   Length              0005 (5)\n-6DCCD7   Flags               01 (1) 'Modification'\n-6DCCD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCCDC CENTRAL HEADER #661   02014B50 (33639248)\n-6DCCE0 Created Zip Spec      14 (20) '2.0'\n-6DCCE1 Created OS            00 (0) 'MS-DOS'\n-6DCCE2 Extract Zip Spec      14 (20) '2.0'\n-6DCCE3 Extract OS            00 (0) 'MS-DOS'\n-6DCCE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCCE6 Compression Method    0000 (0) 'Stored'\n-6DCCE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCCEC CRC                   17228680 (388138624)\n-6DCCF0 Compressed Size       00000C22 (3106)\n-6DCCF4 Uncompressed Size     00000C22 (3106)\n-6DCCF8 Filename Length       0047 (71)\n-6DCCFA Extra Length          0009 (9)\n-6DCCFC Comment Length        0000 (0)\n-6DCCFE Disk Start            0000 (0)\n-6DCD00 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCD02 Ext File Attributes   00000000 (0)\n-6DCD06 Local Header Offset   001D0DCF (1904079)\n-6DCD0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCD0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCD51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCD53   Length              0005 (5)\n-6DCD55   Flags               01 (1) 'Modification'\n-6DCD56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCD5A CENTRAL HEADER #662   02014B50 (33639248)\n-6DCD5E Created Zip Spec      14 (20) '2.0'\n-6DCD5F Created OS            00 (0) 'MS-DOS'\n-6DCD60 Extract Zip Spec      14 (20) '2.0'\n-6DCD61 Extract OS            00 (0) 'MS-DOS'\n-6DCD62 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCD64 Compression Method    0000 (0) 'Stored'\n-6DCD66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCD6A CRC                   90DCE257 (2430394967)\n-6DCD6E Compressed Size       000004B8 (1208)\n-6DCD72 Uncompressed Size     000004B8 (1208)\n-6DCD76 Filename Length       0043 (67)\n-6DCD78 Extra Length          0009 (9)\n-6DCD7A Comment Length        0000 (0)\n-6DCD7C Disk Start            0000 (0)\n-6DCD7E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCD80 Ext File Attributes   00000000 (0)\n-6DCD84 Local Header Offset   001D1A6F (1907311)\n-6DCD88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCD88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCDCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCDCD   Length              0005 (5)\n-6DCDCF   Flags               01 (1) 'Modification'\n-6DCDD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCDD4 CENTRAL HEADER #663   02014B50 (33639248)\n-6DCDD8 Created Zip Spec      14 (20) '2.0'\n-6DCDD9 Created OS            00 (0) 'MS-DOS'\n-6DCDDA Extract Zip Spec      14 (20) '2.0'\n-6DCDDB Extract OS            00 (0) 'MS-DOS'\n-6DCDDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCDDE Compression Method    0000 (0) 'Stored'\n-6DCDE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCDE4 CRC                   092E21B3 (154018227)\n-6DCDE8 Compressed Size       00000873 (2163)\n-6DCDEC Uncompressed Size     00000873 (2163)\n-6DCDF0 Filename Length       0049 (73)\n-6DCDF2 Extra Length          0009 (9)\n-6DCDF4 Comment Length        0000 (0)\n-6DCDF6 Disk Start            0000 (0)\n-6DCDF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCDFA Ext File Attributes   00000000 (0)\n-6DCDFE Local Header Offset   001D1FA1 (1908641)\n-6DCE02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCE02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCE4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCE4D   Length              0005 (5)\n-6DCE4F   Flags               01 (1) 'Modification'\n-6DCE50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCE54 CENTRAL HEADER #664   02014B50 (33639248)\n-6DCE58 Created Zip Spec      14 (20) '2.0'\n-6DCE59 Created OS            00 (0) 'MS-DOS'\n-6DCE5A Extract Zip Spec      14 (20) '2.0'\n-6DCE5B Extract OS            00 (0) 'MS-DOS'\n-6DCE5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCE5E Compression Method    0000 (0) 'Stored'\n-6DCE60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCE64 CRC                   D50997CD (3574175693)\n-6DCE68 Compressed Size       000004F1 (1265)\n-6DCE6C Uncompressed Size     000004F1 (1265)\n-6DCE70 Filename Length       004B (75)\n-6DCE72 Extra Length          0009 (9)\n-6DCE74 Comment Length        0000 (0)\n-6DCE76 Disk Start            0000 (0)\n-6DCE78 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCE7A Ext File Attributes   00000000 (0)\n-6DCE7E Local Header Offset   001D2894 (1910932)\n-6DCE82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCE82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCECD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCECF   Length              0005 (5)\n-6DCED1   Flags               01 (1) 'Modification'\n-6DCED2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCED6 CENTRAL HEADER #665   02014B50 (33639248)\n-6DCEDA Created Zip Spec      14 (20) '2.0'\n-6DCEDB Created OS            00 (0) 'MS-DOS'\n-6DCEDC Extract Zip Spec      14 (20) '2.0'\n-6DCEDD Extract OS            00 (0) 'MS-DOS'\n-6DCEDE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCEE0 Compression Method    0000 (0) 'Stored'\n-6DCEE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCEE6 CRC                   1389D7CB (327800779)\n-6DCEEA Compressed Size       000004D7 (1239)\n-6DCEEE Uncompressed Size     000004D7 (1239)\n-6DCEF2 Filename Length       0044 (68)\n-6DCEF4 Extra Length          0009 (9)\n-6DCEF6 Comment Length        0000 (0)\n-6DCEF8 Disk Start            0000 (0)\n-6DCEFA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCEFC Ext File Attributes   00000000 (0)\n-6DCF00 Local Header Offset   001D2E07 (1912327)\n-6DCF04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCF04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCF48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCF4A   Length              0005 (5)\n-6DCF4C   Flags               01 (1) 'Modification'\n-6DCF4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCF51 CENTRAL HEADER #666   02014B50 (33639248)\n-6DCF55 Created Zip Spec      14 (20) '2.0'\n-6DCF56 Created OS            00 (0) 'MS-DOS'\n-6DCF57 Extract Zip Spec      14 (20) '2.0'\n-6DCF58 Extract OS            00 (0) 'MS-DOS'\n-6DCF59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCF5B Compression Method    0000 (0) 'Stored'\n-6DCF5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCF61 CRC                   0204ADF7 (33861111)\n-6DCF65 Compressed Size       000004AF (1199)\n-6DCF69 Uncompressed Size     000004AF (1199)\n-6DCF6D Filename Length       0042 (66)\n-6DCF6F Extra Length          0009 (9)\n-6DCF71 Comment Length        0000 (0)\n-6DCF73 Disk Start            0000 (0)\n-6DCF75 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCF77 Ext File Attributes   00000000 (0)\n-6DCF7B Local Header Offset   001D3359 (1913689)\n-6DCF7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCF7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DCFC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DCFC3   Length              0005 (5)\n-6DCFC5   Flags               01 (1) 'Modification'\n-6DCFC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DCFCA CENTRAL HEADER #667   02014B50 (33639248)\n-6DCFCE Created Zip Spec      14 (20) '2.0'\n-6DCFCF Created OS            00 (0) 'MS-DOS'\n-6DCFD0 Extract Zip Spec      14 (20) '2.0'\n-6DCFD1 Extract OS            00 (0) 'MS-DOS'\n-6DCFD2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DCFD4 Compression Method    0000 (0) 'Stored'\n-6DCFD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DCFDA CRC                   DE2764C3 (3727123651)\n-6DCFDE Compressed Size       000004C9 (1225)\n-6DCFE2 Uncompressed Size     000004C9 (1225)\n-6DCFE6 Filename Length       0048 (72)\n-6DCFE8 Extra Length          0009 (9)\n-6DCFEA Comment Length        0000 (0)\n-6DCFEC Disk Start            0000 (0)\n-6DCFEE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DCFF0 Ext File Attributes   00000000 (0)\n-6DCFF4 Local Header Offset   001D3881 (1915009)\n-6DCFF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DCFF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD040 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD042   Length              0005 (5)\n-6DD044   Flags               01 (1) 'Modification'\n-6DD045   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD049 CENTRAL HEADER #668   02014B50 (33639248)\n-6DD04D Created Zip Spec      14 (20) '2.0'\n-6DD04E Created OS            00 (0) 'MS-DOS'\n-6DD04F Extract Zip Spec      14 (20) '2.0'\n-6DD050 Extract OS            00 (0) 'MS-DOS'\n-6DD051 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD053 Compression Method    0000 (0) 'Stored'\n-6DD055 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD059 CRC                   A00FADB6 (2685382070)\n-6DD05D Compressed Size       0000050B (1291)\n-6DD061 Uncompressed Size     0000050B (1291)\n-6DD065 Filename Length       004C (76)\n-6DD067 Extra Length          0009 (9)\n-6DD069 Comment Length        0000 (0)\n-6DD06B Disk Start            0000 (0)\n-6DD06D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD06F Ext File Attributes   00000000 (0)\n-6DD073 Local Header Offset   001D3DC9 (1916361)\n-6DD077 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD077: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD0C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD0C5   Length              0005 (5)\n-6DD0C7   Flags               01 (1) 'Modification'\n-6DD0C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD0CC CENTRAL HEADER #669   02014B50 (33639248)\n-6DD0D0 Created Zip Spec      14 (20) '2.0'\n-6DD0D1 Created OS            00 (0) 'MS-DOS'\n-6DD0D2 Extract Zip Spec      14 (20) '2.0'\n-6DD0D3 Extract OS            00 (0) 'MS-DOS'\n-6DD0D4 General Purpose Flag  0000 (0)\n-6DD0D6 Compression Method    0000 (0) 'Stored'\n-6DD0D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD0DC CRC                   00000000 (0)\n-6DD0E0 Compressed Size       00000000 (0)\n-6DD0E4 Uncompressed Size     00000000 (0)\n-6DD0E8 Filename Length       0022 (34)\n-6DD0EA Extra Length          0009 (9)\n-6DD0EC Comment Length        0000 (0)\n-6DD0EE Disk Start            0000 (0)\n-6DD0F0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD0F2 Ext File Attributes   00000000 (0)\n-6DD0F6 Local Header Offset   001D4357 (1917783)\n-6DD0FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD0FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD11C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD11E   Length              0005 (5)\n-6DD120   Flags               01 (1) 'Modification'\n-6DD121   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD125 CENTRAL HEADER #670   02014B50 (33639248)\n-6DD129 Created Zip Spec      14 (20) '2.0'\n-6DD12A Created OS            00 (0) 'MS-DOS'\n-6DD12B Extract Zip Spec      14 (20) '2.0'\n-6DD12C Extract OS            00 (0) 'MS-DOS'\n-6DD12D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD12F Compression Method    0000 (0) 'Stored'\n-6DD131 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD135 CRC                   9A2D2058 (2586648664)\n-6DD139 Compressed Size       00000D7A (3450)\n-6DD13D Uncompressed Size     00000D7A (3450)\n-6DD141 Filename Length       002F (47)\n-6DD143 Extra Length          0009 (9)\n-6DD145 Comment Length        0000 (0)\n-6DD147 Disk Start            0000 (0)\n-6DD149 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD14B Ext File Attributes   00000000 (0)\n-6DD14F Local Header Offset   001D43A0 (1917856)\n-6DD153 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD153: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD182 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD184   Length              0005 (5)\n-6DD186   Flags               01 (1) 'Modification'\n-6DD187   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD18B CENTRAL HEADER #671   02014B50 (33639248)\n-6DD18F Created Zip Spec      14 (20) '2.0'\n-6DD190 Created OS            00 (0) 'MS-DOS'\n-6DD191 Extract Zip Spec      14 (20) '2.0'\n-6DD192 Extract OS            00 (0) 'MS-DOS'\n-6DD193 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD195 Compression Method    0000 (0) 'Stored'\n-6DD197 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD19B CRC                   5D8BAE4F (1569435215)\n-6DD19F Compressed Size       00000A47 (2631)\n-6DD1A3 Uncompressed Size     00000A47 (2631)\n-6DD1A7 Filename Length       002F (47)\n-6DD1A9 Extra Length          0009 (9)\n-6DD1AB Comment Length        0000 (0)\n-6DD1AD Disk Start            0000 (0)\n-6DD1AF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD1B1 Ext File Attributes   00000000 (0)\n-6DD1B5 Local Header Offset   001D5180 (1921408)\n-6DD1B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD1B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD1E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD1EA   Length              0005 (5)\n-6DD1EC   Flags               01 (1) 'Modification'\n-6DD1ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD1F1 CENTRAL HEADER #672   02014B50 (33639248)\n-6DD1F5 Created Zip Spec      14 (20) '2.0'\n-6DD1F6 Created OS            00 (0) 'MS-DOS'\n-6DD1F7 Extract Zip Spec      14 (20) '2.0'\n-6DD1F8 Extract OS            00 (0) 'MS-DOS'\n-6DD1F9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD1FB Compression Method    0000 (0) 'Stored'\n-6DD1FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD201 CRC                   B148CBF0 (2974338032)\n-6DD205 Compressed Size       00003C07 (15367)\n-6DD209 Uncompressed Size     00003C07 (15367)\n-6DD20D Filename Length       0041 (65)\n-6DD20F Extra Length          0009 (9)\n-6DD211 Comment Length        0000 (0)\n-6DD213 Disk Start            0000 (0)\n-6DD215 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD217 Ext File Attributes   00000000 (0)\n-6DD21B Local Header Offset   001D5C2D (1924141)\n-6DD21F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD21F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD260 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD262   Length              0005 (5)\n-6DD264   Flags               01 (1) 'Modification'\n-6DD265   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD269 CENTRAL HEADER #673   02014B50 (33639248)\n-6DD26D Created Zip Spec      14 (20) '2.0'\n-6DD26E Created OS            00 (0) 'MS-DOS'\n-6DD26F Extract Zip Spec      14 (20) '2.0'\n-6DD270 Extract OS            00 (0) 'MS-DOS'\n-6DD271 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD273 Compression Method    0000 (0) 'Stored'\n-6DD275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD279 CRC                   D1BB774A (3518723914)\n-6DD27D Compressed Size       000004B9 (1209)\n-6DD281 Uncompressed Size     000004B9 (1209)\n-6DD285 Filename Length       0034 (52)\n-6DD287 Extra Length          0009 (9)\n-6DD289 Comment Length        0000 (0)\n-6DD28B Disk Start            0000 (0)\n-6DD28D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD28F Ext File Attributes   00000000 (0)\n-6DD293 Local Header Offset   001D98AC (1939628)\n-6DD297 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD297: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD2CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD2CD   Length              0005 (5)\n-6DD2CF   Flags               01 (1) 'Modification'\n-6DD2D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD2D4 CENTRAL HEADER #674   02014B50 (33639248)\n-6DD2D8 Created Zip Spec      14 (20) '2.0'\n-6DD2D9 Created OS            00 (0) 'MS-DOS'\n-6DD2DA Extract Zip Spec      14 (20) '2.0'\n-6DD2DB Extract OS            00 (0) 'MS-DOS'\n-6DD2DC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD2DE Compression Method    0000 (0) 'Stored'\n-6DD2E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD2E4 CRC                   F2DE48ED (4074653933)\n-6DD2E8 Compressed Size       0000048D (1165)\n-6DD2EC Uncompressed Size     0000048D (1165)\n-6DD2F0 Filename Length       0043 (67)\n-6DD2F2 Extra Length          0009 (9)\n-6DD2F4 Comment Length        0000 (0)\n-6DD2F6 Disk Start            0000 (0)\n-6DD2F8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD2FA Ext File Attributes   00000000 (0)\n-6DD2FE Local Header Offset   001D9DD0 (1940944)\n-6DD302 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD302: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD345 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD347   Length              0005 (5)\n-6DD349   Flags               01 (1) 'Modification'\n-6DD34A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD34E CENTRAL HEADER #675   02014B50 (33639248)\n-6DD352 Created Zip Spec      14 (20) '2.0'\n-6DD353 Created OS            00 (0) 'MS-DOS'\n-6DD354 Extract Zip Spec      14 (20) '2.0'\n-6DD355 Extract OS            00 (0) 'MS-DOS'\n-6DD356 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD358 Compression Method    0000 (0) 'Stored'\n-6DD35A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD35E CRC                   0662480F (107104271)\n-6DD362 Compressed Size       000004C4 (1220)\n-6DD366 Uncompressed Size     000004C4 (1220)\n-6DD36A Filename Length       003B (59)\n-6DD36C Extra Length          0009 (9)\n-6DD36E Comment Length        0000 (0)\n-6DD370 Disk Start            0000 (0)\n-6DD372 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD374 Ext File Attributes   00000000 (0)\n-6DD378 Local Header Offset   001DA2D7 (1942231)\n-6DD37C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD37C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD3B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD3B9   Length              0005 (5)\n-6DD3BB   Flags               01 (1) 'Modification'\n-6DD3BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD3C0 CENTRAL HEADER #676   02014B50 (33639248)\n-6DD3C4 Created Zip Spec      14 (20) '2.0'\n-6DD3C5 Created OS            00 (0) 'MS-DOS'\n-6DD3C6 Extract Zip Spec      14 (20) '2.0'\n-6DD3C7 Extract OS            00 (0) 'MS-DOS'\n-6DD3C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD3CA Compression Method    0000 (0) 'Stored'\n-6DD3CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD3D0 CRC                   4C849D6C (1283759468)\n-6DD3D4 Compressed Size       0000047A (1146)\n-6DD3D8 Uncompressed Size     0000047A (1146)\n-6DD3DC Filename Length       0037 (55)\n-6DD3DE Extra Length          0009 (9)\n-6DD3E0 Comment Length        0000 (0)\n-6DD3E2 Disk Start            0000 (0)\n-6DD3E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD3E6 Ext File Attributes   00000000 (0)\n-6DD3EA Local Header Offset   001DA80D (1943565)\n-6DD3EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD3EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD427   Length              0005 (5)\n-6DD429   Flags               01 (1) 'Modification'\n-6DD42A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD42E CENTRAL HEADER #677   02014B50 (33639248)\n-6DD432 Created Zip Spec      14 (20) '2.0'\n-6DD433 Created OS            00 (0) 'MS-DOS'\n-6DD434 Extract Zip Spec      14 (20) '2.0'\n-6DD435 Extract OS            00 (0) 'MS-DOS'\n-6DD436 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD438 Compression Method    0000 (0) 'Stored'\n-6DD43A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD43E CRC                   A96FE6E5 (2842683109)\n-6DD442 Compressed Size       00009CEF (40175)\n-6DD446 Uncompressed Size     00009CEF (40175)\n-6DD44A Filename Length       0036 (54)\n-6DD44C Extra Length          0009 (9)\n-6DD44E Comment Length        0000 (0)\n-6DD450 Disk Start            0000 (0)\n-6DD452 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD454 Ext File Attributes   00000000 (0)\n-6DD458 Local Header Offset   001DACF5 (1944821)\n-6DD45C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD45C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD492 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD494   Length              0005 (5)\n-6DD496   Flags               01 (1) 'Modification'\n-6DD497   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD49B CENTRAL HEADER #678   02014B50 (33639248)\n-6DD49F Created Zip Spec      14 (20) '2.0'\n-6DD4A0 Created OS            00 (0) 'MS-DOS'\n-6DD4A1 Extract Zip Spec      14 (20) '2.0'\n-6DD4A2 Extract OS            00 (0) 'MS-DOS'\n-6DD4A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD4A5 Compression Method    0000 (0) 'Stored'\n-6DD4A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD4AB CRC                   CA31D6AC (3392263852)\n-6DD4AF Compressed Size       0000058E (1422)\n-6DD4B3 Uncompressed Size     0000058E (1422)\n-6DD4B7 Filename Length       0036 (54)\n-6DD4B9 Extra Length          0009 (9)\n-6DD4BB Comment Length        0000 (0)\n-6DD4BD Disk Start            0000 (0)\n-6DD4BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD4C1 Ext File Attributes   00000000 (0)\n-6DD4C5 Local Header Offset   001E4A51 (1985105)\n-6DD4C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD4C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD4FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD501   Length              0005 (5)\n-6DD503   Flags               01 (1) 'Modification'\n-6DD504   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD508 CENTRAL HEADER #679   02014B50 (33639248)\n-6DD50C Created Zip Spec      14 (20) '2.0'\n-6DD50D Created OS            00 (0) 'MS-DOS'\n-6DD50E Extract Zip Spec      14 (20) '2.0'\n-6DD50F Extract OS            00 (0) 'MS-DOS'\n-6DD510 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD512 Compression Method    0000 (0) 'Stored'\n-6DD514 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD518 CRC                   48D76DDD (1222077917)\n-6DD51C Compressed Size       00000932 (2354)\n-6DD520 Uncompressed Size     00000932 (2354)\n-6DD524 Filename Length       002A (42)\n-6DD526 Extra Length          0009 (9)\n-6DD528 Comment Length        0000 (0)\n-6DD52A Disk Start            0000 (0)\n-6DD52C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD52E Ext File Attributes   00000000 (0)\n-6DD532 Local Header Offset   001E504C (1986636)\n-6DD536 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD536: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD560 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD562   Length              0005 (5)\n-6DD564   Flags               01 (1) 'Modification'\n-6DD565   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD569 CENTRAL HEADER #680   02014B50 (33639248)\n-6DD56D Created Zip Spec      14 (20) '2.0'\n-6DD56E Created OS            00 (0) 'MS-DOS'\n-6DD56F Extract Zip Spec      14 (20) '2.0'\n-6DD570 Extract OS            00 (0) 'MS-DOS'\n-6DD571 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD573 Compression Method    0000 (0) 'Stored'\n-6DD575 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD579 CRC                   C525F495 (3307598997)\n-6DD57D Compressed Size       000004C9 (1225)\n-6DD581 Uncompressed Size     000004C9 (1225)\n-6DD585 Filename Length       003E (62)\n-6DD587 Extra Length          0009 (9)\n-6DD589 Comment Length        0000 (0)\n-6DD58B Disk Start            0000 (0)\n-6DD58D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD58F Ext File Attributes   00000000 (0)\n-6DD593 Local Header Offset   001E59DF (1989087)\n-6DD597 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD597: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD5D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD5D7   Length              0005 (5)\n-6DD5D9   Flags               01 (1) 'Modification'\n-6DD5DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD5DE CENTRAL HEADER #681   02014B50 (33639248)\n-6DD5E2 Created Zip Spec      14 (20) '2.0'\n-6DD5E3 Created OS            00 (0) 'MS-DOS'\n-6DD5E4 Extract Zip Spec      14 (20) '2.0'\n-6DD5E5 Extract OS            00 (0) 'MS-DOS'\n-6DD5E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD5E8 Compression Method    0000 (0) 'Stored'\n-6DD5EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD5EE CRC                   25A296EC (631412460)\n-6DD5F2 Compressed Size       00000510 (1296)\n-6DD5F6 Uncompressed Size     00000510 (1296)\n-6DD5FA Filename Length       002E (46)\n-6DD5FC Extra Length          0009 (9)\n-6DD5FE Comment Length        0000 (0)\n-6DD600 Disk Start            0000 (0)\n-6DD602 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD604 Ext File Attributes   00000000 (0)\n-6DD608 Local Header Offset   001E5F1D (1990429)\n-6DD60C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD60C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD63A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD63C   Length              0005 (5)\n-6DD63E   Flags               01 (1) 'Modification'\n-6DD63F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD643 CENTRAL HEADER #682   02014B50 (33639248)\n-6DD647 Created Zip Spec      14 (20) '2.0'\n-6DD648 Created OS            00 (0) 'MS-DOS'\n-6DD649 Extract Zip Spec      14 (20) '2.0'\n-6DD64A Extract OS            00 (0) 'MS-DOS'\n-6DD64B General Purpose Flag  0000 (0)\n-6DD64D Compression Method    0000 (0) 'Stored'\n-6DD64F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD653 CRC                   00000000 (0)\n-6DD657 Compressed Size       00000000 (0)\n-6DD65B Uncompressed Size     00000000 (0)\n-6DD65F Filename Length       002A (42)\n-6DD661 Extra Length          0009 (9)\n-6DD663 Comment Length        0000 (0)\n-6DD665 Disk Start            0000 (0)\n-6DD667 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD669 Ext File Attributes   00000000 (0)\n-6DD66D Local Header Offset   001E6492 (1991826)\n-6DD671 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD671: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD69B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD69D   Length              0005 (5)\n-6DD69F   Flags               01 (1) 'Modification'\n-6DD6A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD6A4 CENTRAL HEADER #683   02014B50 (33639248)\n-6DD6A8 Created Zip Spec      14 (20) '2.0'\n-6DD6A9 Created OS            00 (0) 'MS-DOS'\n-6DD6AA Extract Zip Spec      14 (20) '2.0'\n-6DD6AB Extract OS            00 (0) 'MS-DOS'\n-6DD6AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD6AE Compression Method    0000 (0) 'Stored'\n-6DD6B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD6B4 CRC                   EA8B59C6 (3935001030)\n-6DD6B8 Compressed Size       00000800 (2048)\n-6DD6BC Uncompressed Size     00000800 (2048)\n-6DD6C0 Filename Length       0047 (71)\n-6DD6C2 Extra Length          0009 (9)\n-6DD6C4 Comment Length        0000 (0)\n-6DD6C6 Disk Start            0000 (0)\n-6DD6C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD6CA Ext File Attributes   00000000 (0)\n-6DD6CE Local Header Offset   001E64E3 (1991907)\n-6DD6D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD6D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD719 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD71B   Length              0005 (5)\n-6DD71D   Flags               01 (1) 'Modification'\n-6DD71E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD722 CENTRAL HEADER #684   02014B50 (33639248)\n-6DD726 Created Zip Spec      14 (20) '2.0'\n-6DD727 Created OS            00 (0) 'MS-DOS'\n-6DD728 Extract Zip Spec      14 (20) '2.0'\n-6DD729 Extract OS            00 (0) 'MS-DOS'\n-6DD72A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD72C Compression Method    0000 (0) 'Stored'\n-6DD72E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD732 CRC                   3280412A (847266090)\n-6DD736 Compressed Size       0000060F (1551)\n-6DD73A Uncompressed Size     0000060F (1551)\n-6DD73E Filename Length       0042 (66)\n-6DD740 Extra Length          0009 (9)\n-6DD742 Comment Length        0000 (0)\n-6DD744 Disk Start            0000 (0)\n-6DD746 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD748 Ext File Attributes   00000000 (0)\n-6DD74C Local Header Offset   001E6D61 (1994081)\n-6DD750 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD750: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD792 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD794   Length              0005 (5)\n-6DD796   Flags               01 (1) 'Modification'\n-6DD797   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD79B CENTRAL HEADER #685   02014B50 (33639248)\n-6DD79F Created Zip Spec      14 (20) '2.0'\n-6DD7A0 Created OS            00 (0) 'MS-DOS'\n-6DD7A1 Extract Zip Spec      14 (20) '2.0'\n-6DD7A2 Extract OS            00 (0) 'MS-DOS'\n-6DD7A3 General Purpose Flag  0000 (0)\n-6DD7A5 Compression Method    0000 (0) 'Stored'\n-6DD7A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD7AB CRC                   00000000 (0)\n-6DD7AF Compressed Size       00000000 (0)\n-6DD7B3 Uncompressed Size     00000000 (0)\n-6DD7B7 Filename Length       002A (42)\n-6DD7B9 Extra Length          0009 (9)\n-6DD7BB Comment Length        0000 (0)\n-6DD7BD Disk Start            0000 (0)\n-6DD7BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD7C1 Ext File Attributes   00000000 (0)\n-6DD7C5 Local Header Offset   001E73E9 (1995753)\n-6DD7C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD7C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD7F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD7F5   Length              0005 (5)\n-6DD7F7   Flags               01 (1) 'Modification'\n-6DD7F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD7FC CENTRAL HEADER #686   02014B50 (33639248)\n-6DD800 Created Zip Spec      14 (20) '2.0'\n-6DD801 Created OS            00 (0) 'MS-DOS'\n-6DD802 Extract Zip Spec      14 (20) '2.0'\n-6DD803 Extract OS            00 (0) 'MS-DOS'\n-6DD804 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD806 Compression Method    0000 (0) 'Stored'\n-6DD808 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD80C CRC                   B81BB8E1 (3088824545)\n-6DD810 Compressed Size       000011D4 (4564)\n-6DD814 Uncompressed Size     000011D4 (4564)\n-6DD818 Filename Length       0041 (65)\n-6DD81A Extra Length          0009 (9)\n-6DD81C Comment Length        0000 (0)\n-6DD81E Disk Start            0000 (0)\n-6DD820 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD822 Ext File Attributes   00000000 (0)\n-6DD826 Local Header Offset   001E743A (1995834)\n-6DD82A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD82A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD86B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD86D   Length              0005 (5)\n-6DD86F   Flags               01 (1) 'Modification'\n-6DD870   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD874 CENTRAL HEADER #687   02014B50 (33639248)\n-6DD878 Created Zip Spec      14 (20) '2.0'\n-6DD879 Created OS            00 (0) 'MS-DOS'\n-6DD87A Extract Zip Spec      14 (20) '2.0'\n-6DD87B Extract OS            00 (0) 'MS-DOS'\n-6DD87C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD87E Compression Method    0000 (0) 'Stored'\n-6DD880 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD884 CRC                   C0FD96E7 (3237844711)\n-6DD888 Compressed Size       00000BFA (3066)\n-6DD88C Uncompressed Size     00000BFA (3066)\n-6DD890 Filename Length       0040 (64)\n-6DD892 Extra Length          0009 (9)\n-6DD894 Comment Length        0000 (0)\n-6DD896 Disk Start            0000 (0)\n-6DD898 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD89A Ext File Attributes   00000000 (0)\n-6DD89E Local Header Offset   001E8686 (2000518)\n-6DD8A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD8A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD8E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD8E4   Length              0005 (5)\n-6DD8E6   Flags               01 (1) 'Modification'\n-6DD8E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD8EB CENTRAL HEADER #688   02014B50 (33639248)\n-6DD8EF Created Zip Spec      14 (20) '2.0'\n-6DD8F0 Created OS            00 (0) 'MS-DOS'\n-6DD8F1 Extract Zip Spec      14 (20) '2.0'\n-6DD8F2 Extract OS            00 (0) 'MS-DOS'\n-6DD8F3 General Purpose Flag  0000 (0)\n-6DD8F5 Compression Method    0000 (0) 'Stored'\n-6DD8F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD8FB CRC                   00000000 (0)\n-6DD8FF Compressed Size       00000000 (0)\n-6DD903 Uncompressed Size     00000000 (0)\n-6DD907 Filename Length       0021 (33)\n-6DD909 Extra Length          0009 (9)\n-6DD90B Comment Length        0000 (0)\n-6DD90D Disk Start            0000 (0)\n-6DD90F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD911 Ext File Attributes   00000000 (0)\n-6DD915 Local Header Offset   001E92F7 (2003703)\n-6DD919 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD919: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD93A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD93C   Length              0005 (5)\n-6DD93E   Flags               01 (1) 'Modification'\n-6DD93F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD943 CENTRAL HEADER #689   02014B50 (33639248)\n-6DD947 Created Zip Spec      14 (20) '2.0'\n-6DD948 Created OS            00 (0) 'MS-DOS'\n-6DD949 Extract Zip Spec      14 (20) '2.0'\n-6DD94A Extract OS            00 (0) 'MS-DOS'\n-6DD94B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD94D Compression Method    0000 (0) 'Stored'\n-6DD94F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD953 CRC                   3980931B (964727579)\n-6DD957 Compressed Size       00000925 (2341)\n-6DD95B Uncompressed Size     00000925 (2341)\n-6DD95F Filename Length       0030 (48)\n-6DD961 Extra Length          0009 (9)\n-6DD963 Comment Length        0000 (0)\n-6DD965 Disk Start            0000 (0)\n-6DD967 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD969 Ext File Attributes   00000000 (0)\n-6DD96D Local Header Offset   001E933F (2003775)\n-6DD971 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD971: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DD9A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DD9A3   Length              0005 (5)\n-6DD9A5   Flags               01 (1) 'Modification'\n-6DD9A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DD9AA CENTRAL HEADER #690   02014B50 (33639248)\n-6DD9AE Created Zip Spec      14 (20) '2.0'\n-6DD9AF Created OS            00 (0) 'MS-DOS'\n-6DD9B0 Extract Zip Spec      14 (20) '2.0'\n-6DD9B1 Extract OS            00 (0) 'MS-DOS'\n-6DD9B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DD9B4 Compression Method    0000 (0) 'Stored'\n-6DD9B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DD9BA CRC                   4F8202FE (1333920510)\n-6DD9BE Compressed Size       00000A7B (2683)\n-6DD9C2 Uncompressed Size     00000A7B (2683)\n-6DD9C6 Filename Length       002D (45)\n-6DD9C8 Extra Length          0009 (9)\n-6DD9CA Comment Length        0000 (0)\n-6DD9CC Disk Start            0000 (0)\n-6DD9CE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DD9D0 Ext File Attributes   00000000 (0)\n-6DD9D4 Local Header Offset   001E9CCB (2006219)\n-6DD9D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DD9D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDA05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDA07   Length              0005 (5)\n-6DDA09   Flags               01 (1) 'Modification'\n-6DDA0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDA0E CENTRAL HEADER #691   02014B50 (33639248)\n-6DDA12 Created Zip Spec      14 (20) '2.0'\n-6DDA13 Created OS            00 (0) 'MS-DOS'\n-6DDA14 Extract Zip Spec      14 (20) '2.0'\n-6DDA15 Extract OS            00 (0) 'MS-DOS'\n-6DDA16 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDA18 Compression Method    0000 (0) 'Stored'\n-6DDA1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDA1E CRC                   3F1DB4B7 (1058911415)\n-6DDA22 Compressed Size       00000638 (1592)\n-6DDA26 Uncompressed Size     00000638 (1592)\n-6DDA2A Filename Length       0035 (53)\n-6DDA2C Extra Length          0009 (9)\n-6DDA2E Comment Length        0000 (0)\n-6DDA30 Disk Start            0000 (0)\n-6DDA32 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDA34 Ext File Attributes   00000000 (0)\n-6DDA38 Local Header Offset   001EA7AA (2009002)\n-6DDA3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDA3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDA71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDA73   Length              0005 (5)\n-6DDA75   Flags               01 (1) 'Modification'\n-6DDA76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDA7A CENTRAL HEADER #692   02014B50 (33639248)\n-6DDA7E Created Zip Spec      14 (20) '2.0'\n-6DDA7F Created OS            00 (0) 'MS-DOS'\n-6DDA80 Extract Zip Spec      14 (20) '2.0'\n-6DDA81 Extract OS            00 (0) 'MS-DOS'\n-6DDA82 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDA84 Compression Method    0000 (0) 'Stored'\n-6DDA86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDA8A CRC                   86537D4A (2253618506)\n-6DDA8E Compressed Size       000007F0 (2032)\n-6DDA92 Uncompressed Size     000007F0 (2032)\n-6DDA96 Filename Length       0037 (55)\n-6DDA98 Extra Length          0009 (9)\n-6DDA9A Comment Length        0000 (0)\n-6DDA9C Disk Start            0000 (0)\n-6DDA9E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDAA0 Ext File Attributes   00000000 (0)\n-6DDAA4 Local Header Offset   001EAE4E (2010702)\n-6DDAA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDAA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDADF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDAE1   Length              0005 (5)\n-6DDAE3   Flags               01 (1) 'Modification'\n-6DDAE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDAE8 CENTRAL HEADER #693   02014B50 (33639248)\n-6DDAEC Created Zip Spec      14 (20) '2.0'\n-6DDAED Created OS            00 (0) 'MS-DOS'\n-6DDAEE Extract Zip Spec      14 (20) '2.0'\n-6DDAEF Extract OS            00 (0) 'MS-DOS'\n-6DDAF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDAF2 Compression Method    0000 (0) 'Stored'\n-6DDAF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDAF8 CRC                   76835014 (1988317204)\n-6DDAFC Compressed Size       00000885 (2181)\n-6DDB00 Uncompressed Size     00000885 (2181)\n-6DDB04 Filename Length       0037 (55)\n-6DDB06 Extra Length          0009 (9)\n-6DDB08 Comment Length        0000 (0)\n-6DDB0A Disk Start            0000 (0)\n-6DDB0C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDB0E Ext File Attributes   00000000 (0)\n-6DDB12 Local Header Offset   001EB6AC (2012844)\n-6DDB16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDB16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDB4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDB4F   Length              0005 (5)\n-6DDB51   Flags               01 (1) 'Modification'\n-6DDB52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDB56 CENTRAL HEADER #694   02014B50 (33639248)\n-6DDB5A Created Zip Spec      14 (20) '2.0'\n-6DDB5B Created OS            00 (0) 'MS-DOS'\n-6DDB5C Extract Zip Spec      14 (20) '2.0'\n-6DDB5D Extract OS            00 (0) 'MS-DOS'\n-6DDB5E General Purpose Flag  0000 (0)\n-6DDB60 Compression Method    0000 (0) 'Stored'\n-6DDB62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDB66 CRC                   00000000 (0)\n-6DDB6A Compressed Size       00000000 (0)\n-6DDB6E Uncompressed Size     00000000 (0)\n-6DDB72 Filename Length       001E (30)\n-6DDB74 Extra Length          0009 (9)\n-6DDB76 Comment Length        0000 (0)\n-6DDB78 Disk Start            0000 (0)\n-6DDB7A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDB7C Ext File Attributes   00000000 (0)\n-6DDB80 Local Header Offset   001EBF9F (2015135)\n-6DDB84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDB84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDBA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDBA4   Length              0005 (5)\n-6DDBA6   Flags               01 (1) 'Modification'\n-6DDBA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDBAB CENTRAL HEADER #695   02014B50 (33639248)\n-6DDBAF Created Zip Spec      14 (20) '2.0'\n-6DDBB0 Created OS            00 (0) 'MS-DOS'\n-6DDBB1 Extract Zip Spec      14 (20) '2.0'\n-6DDBB2 Extract OS            00 (0) 'MS-DOS'\n-6DDBB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDBB5 Compression Method    0000 (0) 'Stored'\n-6DDBB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDBBB CRC                   7A06D81E (2047268894)\n-6DDBBF Compressed Size       00000619 (1561)\n-6DDBC3 Uncompressed Size     00000619 (1561)\n-6DDBC7 Filename Length       002F (47)\n-6DDBC9 Extra Length          0009 (9)\n-6DDBCB Comment Length        0000 (0)\n-6DDBCD Disk Start            0000 (0)\n-6DDBCF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDBD1 Ext File Attributes   00000000 (0)\n-6DDBD5 Local Header Offset   001EBFE4 (2015204)\n-6DDBD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDBD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDC08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDC0A   Length              0005 (5)\n-6DDC0C   Flags               01 (1) 'Modification'\n-6DDC0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDC11 CENTRAL HEADER #696   02014B50 (33639248)\n-6DDC15 Created Zip Spec      14 (20) '2.0'\n-6DDC16 Created OS            00 (0) 'MS-DOS'\n-6DDC17 Extract Zip Spec      14 (20) '2.0'\n-6DDC18 Extract OS            00 (0) 'MS-DOS'\n-6DDC19 General Purpose Flag  0000 (0)\n-6DDC1B Compression Method    0000 (0) 'Stored'\n-6DDC1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDC21 CRC                   00000000 (0)\n-6DDC25 Compressed Size       00000000 (0)\n-6DDC29 Uncompressed Size     00000000 (0)\n-6DDC2D Filename Length       0026 (38)\n-6DDC2F Extra Length          0009 (9)\n-6DDC31 Comment Length        0000 (0)\n-6DDC33 Disk Start            0000 (0)\n-6DDC35 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDC37 Ext File Attributes   00000000 (0)\n-6DDC3B Local Header Offset   001EC663 (2016867)\n-6DDC3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDC3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDC65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDC67   Length              0005 (5)\n-6DDC69   Flags               01 (1) 'Modification'\n-6DDC6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDC6E CENTRAL HEADER #697   02014B50 (33639248)\n-6DDC72 Created Zip Spec      14 (20) '2.0'\n-6DDC73 Created OS            00 (0) 'MS-DOS'\n-6DDC74 Extract Zip Spec      14 (20) '2.0'\n-6DDC75 Extract OS            00 (0) 'MS-DOS'\n-6DDC76 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDC78 Compression Method    0000 (0) 'Stored'\n-6DDC7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDC7E CRC                   596F5AFB (1500470011)\n-6DDC82 Compressed Size       00000504 (1284)\n-6DDC86 Uncompressed Size     00000504 (1284)\n-6DDC8A Filename Length       0036 (54)\n-6DDC8C Extra Length          0009 (9)\n-6DDC8E Comment Length        0000 (0)\n-6DDC90 Disk Start            0000 (0)\n-6DDC92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDC94 Ext File Attributes   00000000 (0)\n-6DDC98 Local Header Offset   001EC6B0 (2016944)\n-6DDC9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDC9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDCD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDCD4   Length              0005 (5)\n-6DDCD6   Flags               01 (1) 'Modification'\n-6DDCD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDCDB CENTRAL HEADER #698   02014B50 (33639248)\n-6DDCDF Created Zip Spec      14 (20) '2.0'\n-6DDCE0 Created OS            00 (0) 'MS-DOS'\n-6DDCE1 Extract Zip Spec      14 (20) '2.0'\n-6DDCE2 Extract OS            00 (0) 'MS-DOS'\n-6DDCE3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDCE5 Compression Method    0000 (0) 'Stored'\n-6DDCE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDCEB CRC                   DAE5D322 (3672494882)\n-6DDCEF Compressed Size       00000B55 (2901)\n-6DDCF3 Uncompressed Size     00000B55 (2901)\n-6DDCF7 Filename Length       003D (61)\n-6DDCF9 Extra Length          0009 (9)\n-6DDCFB Comment Length        0000 (0)\n-6DDCFD Disk Start            0000 (0)\n-6DDCFF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDD01 Ext File Attributes   00000000 (0)\n-6DDD05 Local Header Offset   001ECC21 (2018337)\n-6DDD09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDD09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDD46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDD48   Length              0005 (5)\n-6DDD4A   Flags               01 (1) 'Modification'\n-6DDD4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDD4F CENTRAL HEADER #699   02014B50 (33639248)\n-6DDD53 Created Zip Spec      14 (20) '2.0'\n-6DDD54 Created OS            00 (0) 'MS-DOS'\n-6DDD55 Extract Zip Spec      14 (20) '2.0'\n-6DDD56 Extract OS            00 (0) 'MS-DOS'\n-6DDD57 General Purpose Flag  0000 (0)\n-6DDD59 Compression Method    0000 (0) 'Stored'\n-6DDD5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDD5F CRC                   00000000 (0)\n-6DDD63 Compressed Size       00000000 (0)\n-6DDD67 Uncompressed Size     00000000 (0)\n-6DDD6B Filename Length       001B (27)\n-6DDD6D Extra Length          0009 (9)\n-6DDD6F Comment Length        0000 (0)\n-6DDD71 Disk Start            0000 (0)\n-6DDD73 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDD75 Ext File Attributes   00000000 (0)\n-6DDD79 Local Header Offset   001ED7EA (2021354)\n-6DDD7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDD7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDD98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDD9A   Length              0005 (5)\n-6DDD9C   Flags               01 (1) 'Modification'\n-6DDD9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDDA1 CENTRAL HEADER #700   02014B50 (33639248)\n-6DDDA5 Created Zip Spec      14 (20) '2.0'\n-6DDDA6 Created OS            00 (0) 'MS-DOS'\n-6DDDA7 Extract Zip Spec      14 (20) '2.0'\n-6DDDA8 Extract OS            00 (0) 'MS-DOS'\n-6DDDA9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDDAB Compression Method    0000 (0) 'Stored'\n-6DDDAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDDB1 CRC                   0BDE6714 (199124756)\n-6DDDB5 Compressed Size       00006518 (25880)\n-6DDDB9 Uncompressed Size     00006518 (25880)\n-6DDDBD Filename Length       0025 (37)\n-6DDDBF Extra Length          0009 (9)\n-6DDDC1 Comment Length        0000 (0)\n-6DDDC3 Disk Start            0000 (0)\n-6DDDC5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDDC7 Ext File Attributes   00000000 (0)\n-6DDDCB Local Header Offset   001ED82C (2021420)\n-6DDDCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDDCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDDF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDDF6   Length              0005 (5)\n-6DDDF8   Flags               01 (1) 'Modification'\n-6DDDF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDDFD CENTRAL HEADER #701   02014B50 (33639248)\n-6DDE01 Created Zip Spec      14 (20) '2.0'\n-6DDE02 Created OS            00 (0) 'MS-DOS'\n-6DDE03 Extract Zip Spec      14 (20) '2.0'\n-6DDE04 Extract OS            00 (0) 'MS-DOS'\n-6DDE05 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDE07 Compression Method    0000 (0) 'Stored'\n-6DDE09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDE0D CRC                   16F10E62 (384896610)\n-6DDE11 Compressed Size       00001B02 (6914)\n-6DDE15 Uncompressed Size     00001B02 (6914)\n-6DDE19 Filename Length       002B (43)\n-6DDE1B Extra Length          0009 (9)\n-6DDE1D Comment Length        0000 (0)\n-6DDE1F Disk Start            0000 (0)\n-6DDE21 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDE23 Ext File Attributes   00000000 (0)\n-6DDE27 Local Header Offset   001F3DA0 (2047392)\n-6DDE2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDE2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDE56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDE58   Length              0005 (5)\n-6DDE5A   Flags               01 (1) 'Modification'\n-6DDE5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDE5F CENTRAL HEADER #702   02014B50 (33639248)\n-6DDE63 Created Zip Spec      14 (20) '2.0'\n-6DDE64 Created OS            00 (0) 'MS-DOS'\n-6DDE65 Extract Zip Spec      14 (20) '2.0'\n-6DDE66 Extract OS            00 (0) 'MS-DOS'\n-6DDE67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDE69 Compression Method    0000 (0) 'Stored'\n-6DDE6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDE6F CRC                   A6F50F6E (2801078126)\n-6DDE73 Compressed Size       00000BEB (3051)\n-6DDE77 Uncompressed Size     00000BEB (3051)\n-6DDE7B Filename Length       003A (58)\n-6DDE7D Extra Length          0009 (9)\n-6DDE7F Comment Length        0000 (0)\n-6DDE81 Disk Start            0000 (0)\n-6DDE83 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDE85 Ext File Attributes   00000000 (0)\n-6DDE89 Local Header Offset   001F5904 (2054404)\n-6DDE8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDE8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDEC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDEC9   Length              0005 (5)\n-6DDECB   Flags               01 (1) 'Modification'\n-6DDECC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDED0 CENTRAL HEADER #703   02014B50 (33639248)\n-6DDED4 Created Zip Spec      14 (20) '2.0'\n-6DDED5 Created OS            00 (0) 'MS-DOS'\n-6DDED6 Extract Zip Spec      14 (20) '2.0'\n-6DDED7 Extract OS            00 (0) 'MS-DOS'\n-6DDED8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDEDA Compression Method    0000 (0) 'Stored'\n-6DDEDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDEE0 CRC                   5110A2B9 (1360044729)\n-6DDEE4 Compressed Size       00000B8E (2958)\n-6DDEE8 Uncompressed Size     00000B8E (2958)\n-6DDEEC Filename Length       003B (59)\n-6DDEEE Extra Length          0009 (9)\n-6DDEF0 Comment Length        0000 (0)\n-6DDEF2 Disk Start            0000 (0)\n-6DDEF4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDEF6 Ext File Attributes   00000000 (0)\n-6DDEFA Local Header Offset   001F6560 (2057568)\n-6DDEFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDEFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDF39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDF3B   Length              0005 (5)\n-6DDF3D   Flags               01 (1) 'Modification'\n-6DDF3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDF42 CENTRAL HEADER #704   02014B50 (33639248)\n-6DDF46 Created Zip Spec      14 (20) '2.0'\n-6DDF47 Created OS            00 (0) 'MS-DOS'\n-6DDF48 Extract Zip Spec      14 (20) '2.0'\n-6DDF49 Extract OS            00 (0) 'MS-DOS'\n-6DDF4A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDF4C Compression Method    0000 (0) 'Stored'\n-6DDF4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDF52 CRC                   490F11E6 (1225724390)\n-6DDF56 Compressed Size       00000C65 (3173)\n-6DDF5A Uncompressed Size     00000C65 (3173)\n-6DDF5E Filename Length       0032 (50)\n-6DDF60 Extra Length          0009 (9)\n-6DDF62 Comment Length        0000 (0)\n-6DDF64 Disk Start            0000 (0)\n-6DDF66 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDF68 Ext File Attributes   00000000 (0)\n-6DDF6C Local Header Offset   001F7160 (2060640)\n-6DDF70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDF70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DDFA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DDFA4   Length              0005 (5)\n-6DDFA6   Flags               01 (1) 'Modification'\n-6DDFA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DDFAB CENTRAL HEADER #705   02014B50 (33639248)\n-6DDFAF Created Zip Spec      14 (20) '2.0'\n-6DDFB0 Created OS            00 (0) 'MS-DOS'\n-6DDFB1 Extract Zip Spec      14 (20) '2.0'\n-6DDFB2 Extract OS            00 (0) 'MS-DOS'\n-6DDFB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DDFB5 Compression Method    0000 (0) 'Stored'\n-6DDFB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DDFBB CRC                   2D3D8039 (759005241)\n-6DDFBF Compressed Size       00000AD5 (2773)\n-6DDFC3 Uncompressed Size     00000AD5 (2773)\n-6DDFC7 Filename Length       0032 (50)\n-6DDFC9 Extra Length          0009 (9)\n-6DDFCB Comment Length        0000 (0)\n-6DDFCD Disk Start            0000 (0)\n-6DDFCF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DDFD1 Ext File Attributes   00000000 (0)\n-6DDFD5 Local Header Offset   001F7E2E (2063918)\n-6DDFD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DDFD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE00B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE00D   Length              0005 (5)\n-6DE00F   Flags               01 (1) 'Modification'\n-6DE010   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE014 CENTRAL HEADER #706   02014B50 (33639248)\n-6DE018 Created Zip Spec      14 (20) '2.0'\n-6DE019 Created OS            00 (0) 'MS-DOS'\n-6DE01A Extract Zip Spec      14 (20) '2.0'\n-6DE01B Extract OS            00 (0) 'MS-DOS'\n-6DE01C General Purpose Flag  0000 (0)\n-6DE01E Compression Method    0000 (0) 'Stored'\n-6DE020 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE024 CRC                   00000000 (0)\n-6DE028 Compressed Size       00000000 (0)\n-6DE02C Uncompressed Size     00000000 (0)\n-6DE030 Filename Length       001D (29)\n-6DE032 Extra Length          0009 (9)\n-6DE034 Comment Length        0000 (0)\n-6DE036 Disk Start            0000 (0)\n-6DE038 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE03A Ext File Attributes   00000000 (0)\n-6DE03E Local Header Offset   001F896C (2066796)\n-6DE042 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE042: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE05F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE061   Length              0005 (5)\n-6DE063   Flags               01 (1) 'Modification'\n-6DE064   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE068 CENTRAL HEADER #707   02014B50 (33639248)\n-6DE06C Created Zip Spec      14 (20) '2.0'\n-6DE06D Created OS            00 (0) 'MS-DOS'\n-6DE06E Extract Zip Spec      14 (20) '2.0'\n-6DE06F Extract OS            00 (0) 'MS-DOS'\n-6DE070 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE072 Compression Method    0000 (0) 'Stored'\n-6DE074 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE078 CRC                   BACA53B9 (3133821881)\n-6DE07C Compressed Size       000044D5 (17621)\n-6DE080 Uncompressed Size     000044D5 (17621)\n-6DE084 Filename Length       0036 (54)\n-6DE086 Extra Length          0009 (9)\n-6DE088 Comment Length        0000 (0)\n-6DE08A Disk Start            0000 (0)\n-6DE08C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE08E Ext File Attributes   00000000 (0)\n-6DE092 Local Header Offset   001F89B0 (2066864)\n-6DE096 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE096: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE0CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE0CE   Length              0005 (5)\n-6DE0D0   Flags               01 (1) 'Modification'\n-6DE0D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE0D5 CENTRAL HEADER #708   02014B50 (33639248)\n-6DE0D9 Created Zip Spec      14 (20) '2.0'\n-6DE0DA Created OS            00 (0) 'MS-DOS'\n-6DE0DB Extract Zip Spec      14 (20) '2.0'\n-6DE0DC Extract OS            00 (0) 'MS-DOS'\n-6DE0DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE0DF Compression Method    0000 (0) 'Stored'\n-6DE0E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE0E5 CRC                   FA032BB6 (4194511798)\n-6DE0E9 Compressed Size       00003385 (13189)\n-6DE0ED Uncompressed Size     00003385 (13189)\n-6DE0F1 Filename Length       002C (44)\n-6DE0F3 Extra Length          0009 (9)\n-6DE0F5 Comment Length        0000 (0)\n-6DE0F7 Disk Start            0000 (0)\n-6DE0F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE0FB Ext File Attributes   00000000 (0)\n-6DE0FF Local Header Offset   001FCEF2 (2084594)\n-6DE103 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE103: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE12F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE131   Length              0005 (5)\n-6DE133   Flags               01 (1) 'Modification'\n-6DE134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE138 CENTRAL HEADER #709   02014B50 (33639248)\n-6DE13C Created Zip Spec      14 (20) '2.0'\n-6DE13D Created OS            00 (0) 'MS-DOS'\n-6DE13E Extract Zip Spec      14 (20) '2.0'\n-6DE13F Extract OS            00 (0) 'MS-DOS'\n-6DE140 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE142 Compression Method    0000 (0) 'Stored'\n-6DE144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE148 CRC                   39C07894 (968915092)\n-6DE14C Compressed Size       00006AA4 (27300)\n-6DE150 Uncompressed Size     00006AA4 (27300)\n-6DE154 Filename Length       0026 (38)\n-6DE156 Extra Length          0009 (9)\n-6DE158 Comment Length        0000 (0)\n-6DE15A Disk Start            0000 (0)\n-6DE15C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE15E Ext File Attributes   00000000 (0)\n-6DE162 Local Header Offset   002002DA (2097882)\n-6DE166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE18C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE18E   Length              0005 (5)\n-6DE190   Flags               01 (1) 'Modification'\n-6DE191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE195 CENTRAL HEADER #710   02014B50 (33639248)\n-6DE199 Created Zip Spec      14 (20) '2.0'\n-6DE19A Created OS            00 (0) 'MS-DOS'\n-6DE19B Extract Zip Spec      14 (20) '2.0'\n-6DE19C Extract OS            00 (0) 'MS-DOS'\n-6DE19D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE19F Compression Method    0000 (0) 'Stored'\n-6DE1A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE1A5 CRC                   2313A478 (588489848)\n-6DE1A9 Compressed Size       00001330 (4912)\n-6DE1AD Uncompressed Size     00001330 (4912)\n-6DE1B1 Filename Length       002B (43)\n-6DE1B3 Extra Length          0009 (9)\n-6DE1B5 Comment Length        0000 (0)\n-6DE1B7 Disk Start            0000 (0)\n-6DE1B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE1BB Ext File Attributes   00000000 (0)\n-6DE1BF Local Header Offset   00206DDB (2125275)\n-6DE1C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE1C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE1EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE1F0   Length              0005 (5)\n-6DE1F2   Flags               01 (1) 'Modification'\n-6DE1F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE1F7 CENTRAL HEADER #711   02014B50 (33639248)\n-6DE1FB Created Zip Spec      14 (20) '2.0'\n-6DE1FC Created OS            00 (0) 'MS-DOS'\n-6DE1FD Extract Zip Spec      14 (20) '2.0'\n-6DE1FE Extract OS            00 (0) 'MS-DOS'\n-6DE1FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE201 Compression Method    0000 (0) 'Stored'\n-6DE203 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE207 CRC                   10BC97FD (280795133)\n-6DE20B Compressed Size       000005B5 (1461)\n-6DE20F Uncompressed Size     000005B5 (1461)\n-6DE213 Filename Length       002F (47)\n-6DE215 Extra Length          0009 (9)\n-6DE217 Comment Length        0000 (0)\n-6DE219 Disk Start            0000 (0)\n-6DE21B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE21D Ext File Attributes   00000000 (0)\n-6DE221 Local Header Offset   0020816D (2130285)\n-6DE225 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE225: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE254 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE256   Length              0005 (5)\n-6DE258   Flags               01 (1) 'Modification'\n-6DE259   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE25D CENTRAL HEADER #712   02014B50 (33639248)\n-6DE261 Created Zip Spec      14 (20) '2.0'\n-6DE262 Created OS            00 (0) 'MS-DOS'\n-6DE263 Extract Zip Spec      14 (20) '2.0'\n-6DE264 Extract OS            00 (0) 'MS-DOS'\n-6DE265 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE267 Compression Method    0000 (0) 'Stored'\n-6DE269 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE26D CRC                   982A34CC (2552902860)\n-6DE271 Compressed Size       000004AE (1198)\n-6DE275 Uncompressed Size     000004AE (1198)\n-6DE279 Filename Length       002A (42)\n-6DE27B Extra Length          0009 (9)\n-6DE27D Comment Length        0000 (0)\n-6DE27F Disk Start            0000 (0)\n-6DE281 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE283 Ext File Attributes   00000000 (0)\n-6DE287 Local Header Offset   00208788 (2131848)\n-6DE28B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE28B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE2B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE2B7   Length              0005 (5)\n-6DE2B9   Flags               01 (1) 'Modification'\n-6DE2BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE2BE CENTRAL HEADER #713   02014B50 (33639248)\n-6DE2C2 Created Zip Spec      14 (20) '2.0'\n-6DE2C3 Created OS            00 (0) 'MS-DOS'\n-6DE2C4 Extract Zip Spec      14 (20) '2.0'\n-6DE2C5 Extract OS            00 (0) 'MS-DOS'\n-6DE2C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE2C8 Compression Method    0000 (0) 'Stored'\n-6DE2CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE2CE CRC                   7653CF57 (1985204055)\n-6DE2D2 Compressed Size       000015FB (5627)\n-6DE2D6 Uncompressed Size     000015FB (5627)\n-6DE2DA Filename Length       002C (44)\n-6DE2DC Extra Length          0009 (9)\n-6DE2DE Comment Length        0000 (0)\n-6DE2E0 Disk Start            0000 (0)\n-6DE2E2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE2E4 Ext File Attributes   00000000 (0)\n-6DE2E8 Local Header Offset   00208C97 (2133143)\n-6DE2EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE2EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE318 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE31A   Length              0005 (5)\n-6DE31C   Flags               01 (1) 'Modification'\n-6DE31D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE321 CENTRAL HEADER #714   02014B50 (33639248)\n-6DE325 Created Zip Spec      14 (20) '2.0'\n-6DE326 Created OS            00 (0) 'MS-DOS'\n-6DE327 Extract Zip Spec      14 (20) '2.0'\n-6DE328 Extract OS            00 (0) 'MS-DOS'\n-6DE329 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE32B Compression Method    0000 (0) 'Stored'\n-6DE32D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE331 CRC                   4D87180A (1300699146)\n-6DE335 Compressed Size       000008A6 (2214)\n-6DE339 Uncompressed Size     000008A6 (2214)\n-6DE33D Filename Length       002C (44)\n-6DE33F Extra Length          0009 (9)\n-6DE341 Comment Length        0000 (0)\n-6DE343 Disk Start            0000 (0)\n-6DE345 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE347 Ext File Attributes   00000000 (0)\n-6DE34B Local Header Offset   0020A2F5 (2138869)\n-6DE34F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE34F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE37B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE37D   Length              0005 (5)\n-6DE37F   Flags               01 (1) 'Modification'\n-6DE380   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE384 CENTRAL HEADER #715   02014B50 (33639248)\n-6DE388 Created Zip Spec      14 (20) '2.0'\n-6DE389 Created OS            00 (0) 'MS-DOS'\n-6DE38A Extract Zip Spec      14 (20) '2.0'\n-6DE38B Extract OS            00 (0) 'MS-DOS'\n-6DE38C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE38E Compression Method    0000 (0) 'Stored'\n-6DE390 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE394 CRC                   8F2D4992 (2402109842)\n-6DE398 Compressed Size       000008C7 (2247)\n-6DE39C Uncompressed Size     000008C7 (2247)\n-6DE3A0 Filename Length       002B (43)\n-6DE3A2 Extra Length          0009 (9)\n-6DE3A4 Comment Length        0000 (0)\n-6DE3A6 Disk Start            0000 (0)\n-6DE3A8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE3AA Ext File Attributes   00000000 (0)\n-6DE3AE Local Header Offset   0020ABFE (2141182)\n-6DE3B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE3B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE3DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE3DF   Length              0005 (5)\n-6DE3E1   Flags               01 (1) 'Modification'\n-6DE3E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE3E6 CENTRAL HEADER #716   02014B50 (33639248)\n-6DE3EA Created Zip Spec      14 (20) '2.0'\n-6DE3EB Created OS            00 (0) 'MS-DOS'\n-6DE3EC Extract Zip Spec      14 (20) '2.0'\n-6DE3ED Extract OS            00 (0) 'MS-DOS'\n-6DE3EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE3F0 Compression Method    0000 (0) 'Stored'\n-6DE3F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE3F6 CRC                   33828390 (864191376)\n-6DE3FA Compressed Size       00000AEC (2796)\n-6DE3FE Uncompressed Size     00000AEC (2796)\n-6DE402 Filename Length       002D (45)\n-6DE404 Extra Length          0009 (9)\n-6DE406 Comment Length        0000 (0)\n-6DE408 Disk Start            0000 (0)\n-6DE40A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE40C Ext File Attributes   00000000 (0)\n-6DE410 Local Header Offset   0020B527 (2143527)\n-6DE414 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE414: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE441 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE443   Length              0005 (5)\n-6DE445   Flags               01 (1) 'Modification'\n-6DE446   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE44A CENTRAL HEADER #717   02014B50 (33639248)\n-6DE44E Created Zip Spec      14 (20) '2.0'\n-6DE44F Created OS            00 (0) 'MS-DOS'\n-6DE450 Extract Zip Spec      14 (20) '2.0'\n-6DE451 Extract OS            00 (0) 'MS-DOS'\n-6DE452 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE454 Compression Method    0000 (0) 'Stored'\n-6DE456 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE45A CRC                   ECCF2EAF (3973000879)\n-6DE45E Compressed Size       00001FDF (8159)\n-6DE462 Uncompressed Size     00001FDF (8159)\n-6DE466 Filename Length       002C (44)\n-6DE468 Extra Length          0009 (9)\n-6DE46A Comment Length        0000 (0)\n-6DE46C Disk Start            0000 (0)\n-6DE46E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE470 Ext File Attributes   00000000 (0)\n-6DE474 Local Header Offset   0020C077 (2146423)\n-6DE478 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE478: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE4A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE4A6   Length              0005 (5)\n-6DE4A8   Flags               01 (1) 'Modification'\n-6DE4A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE4AD CENTRAL HEADER #718   02014B50 (33639248)\n-6DE4B1 Created Zip Spec      14 (20) '2.0'\n-6DE4B2 Created OS            00 (0) 'MS-DOS'\n-6DE4B3 Extract Zip Spec      14 (20) '2.0'\n-6DE4B4 Extract OS            00 (0) 'MS-DOS'\n-6DE4B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE4B7 Compression Method    0000 (0) 'Stored'\n-6DE4B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE4BD CRC                   4EF6CDD0 (1324797392)\n-6DE4C1 Compressed Size       00000489 (1161)\n-6DE4C5 Uncompressed Size     00000489 (1161)\n-6DE4C9 Filename Length       0030 (48)\n-6DE4CB Extra Length          0009 (9)\n-6DE4CD Comment Length        0000 (0)\n-6DE4CF Disk Start            0000 (0)\n-6DE4D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE4D3 Ext File Attributes   00000000 (0)\n-6DE4D7 Local Header Offset   0020E0B9 (2154681)\n-6DE4DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE4DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE50B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE50D   Length              0005 (5)\n-6DE50F   Flags               01 (1) 'Modification'\n-6DE510   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE514 CENTRAL HEADER #719   02014B50 (33639248)\n-6DE518 Created Zip Spec      14 (20) '2.0'\n-6DE519 Created OS            00 (0) 'MS-DOS'\n-6DE51A Extract Zip Spec      14 (20) '2.0'\n-6DE51B Extract OS            00 (0) 'MS-DOS'\n-6DE51C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE51E Compression Method    0000 (0) 'Stored'\n-6DE520 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE524 CRC                   D5F1D071 (3589394545)\n-6DE528 Compressed Size       000072B9 (29369)\n-6DE52C Uncompressed Size     000072B9 (29369)\n-6DE530 Filename Length       0027 (39)\n-6DE532 Extra Length          0009 (9)\n-6DE534 Comment Length        0000 (0)\n-6DE536 Disk Start            0000 (0)\n-6DE538 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE53A Ext File Attributes   00000000 (0)\n-6DE53E Local Header Offset   0020E5A9 (2155945)\n-6DE542 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE542: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE569 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE56B   Length              0005 (5)\n-6DE56D   Flags               01 (1) 'Modification'\n-6DE56E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE572 CENTRAL HEADER #720   02014B50 (33639248)\n-6DE576 Created Zip Spec      14 (20) '2.0'\n-6DE577 Created OS            00 (0) 'MS-DOS'\n-6DE578 Extract Zip Spec      14 (20) '2.0'\n-6DE579 Extract OS            00 (0) 'MS-DOS'\n-6DE57A General Purpose Flag  0000 (0)\n-6DE57C Compression Method    0000 (0) 'Stored'\n-6DE57E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE582 CRC                   00000000 (0)\n-6DE586 Compressed Size       00000000 (0)\n-6DE58A Uncompressed Size     00000000 (0)\n-6DE58E Filename Length       001D (29)\n-6DE590 Extra Length          0009 (9)\n-6DE592 Comment Length        0000 (0)\n-6DE594 Disk Start            0000 (0)\n-6DE596 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE598 Ext File Attributes   00000000 (0)\n-6DE59C Local Header Offset   002158C0 (2185408)\n-6DE5A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE5A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE5BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE5BF   Length              0005 (5)\n-6DE5C1   Flags               01 (1) 'Modification'\n-6DE5C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE5C6 CENTRAL HEADER #721   02014B50 (33639248)\n-6DE5CA Created Zip Spec      14 (20) '2.0'\n-6DE5CB Created OS            00 (0) 'MS-DOS'\n-6DE5CC Extract Zip Spec      14 (20) '2.0'\n-6DE5CD Extract OS            00 (0) 'MS-DOS'\n-6DE5CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE5D0 Compression Method    0000 (0) 'Stored'\n-6DE5D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE5D6 CRC                   99C9FFC3 (2580152259)\n-6DE5DA Compressed Size       00000902 (2306)\n-6DE5DE Uncompressed Size     00000902 (2306)\n-6DE5E2 Filename Length       002D (45)\n-6DE5E4 Extra Length          0009 (9)\n-6DE5E6 Comment Length        0000 (0)\n-6DE5E8 Disk Start            0000 (0)\n-6DE5EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE5EC Ext File Attributes   00000000 (0)\n-6DE5F0 Local Header Offset   00215904 (2185476)\n-6DE5F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE5F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE621 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE623   Length              0005 (5)\n-6DE625   Flags               01 (1) 'Modification'\n-6DE626   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE62A CENTRAL HEADER #722   02014B50 (33639248)\n-6DE62E Created Zip Spec      14 (20) '2.0'\n-6DE62F Created OS            00 (0) 'MS-DOS'\n-6DE630 Extract Zip Spec      14 (20) '2.0'\n-6DE631 Extract OS            00 (0) 'MS-DOS'\n-6DE632 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE634 Compression Method    0000 (0) 'Stored'\n-6DE636 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE63A CRC                   C53EC878 (3309226104)\n-6DE63E Compressed Size       00000488 (1160)\n-6DE642 Uncompressed Size     00000488 (1160)\n-6DE646 Filename Length       0036 (54)\n-6DE648 Extra Length          0009 (9)\n-6DE64A Comment Length        0000 (0)\n-6DE64C Disk Start            0000 (0)\n-6DE64E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE650 Ext File Attributes   00000000 (0)\n-6DE654 Local Header Offset   0021626A (2187882)\n-6DE658 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE658: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE68E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE690   Length              0005 (5)\n-6DE692   Flags               01 (1) 'Modification'\n-6DE693   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE697 CENTRAL HEADER #723   02014B50 (33639248)\n-6DE69B Created Zip Spec      14 (20) '2.0'\n-6DE69C Created OS            00 (0) 'MS-DOS'\n-6DE69D Extract Zip Spec      14 (20) '2.0'\n-6DE69E Extract OS            00 (0) 'MS-DOS'\n-6DE69F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE6A1 Compression Method    0000 (0) 'Stored'\n-6DE6A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE6A7 CRC                   8EF8ABEC (2398661612)\n-6DE6AB Compressed Size       00000920 (2336)\n-6DE6AF Uncompressed Size     00000920 (2336)\n-6DE6B3 Filename Length       0037 (55)\n-6DE6B5 Extra Length          0009 (9)\n-6DE6B7 Comment Length        0000 (0)\n-6DE6B9 Disk Start            0000 (0)\n-6DE6BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE6BD Ext File Attributes   00000000 (0)\n-6DE6C1 Local Header Offset   0021675F (2189151)\n-6DE6C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE6C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE6FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE6FE   Length              0005 (5)\n-6DE700   Flags               01 (1) 'Modification'\n-6DE701   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE705 CENTRAL HEADER #724   02014B50 (33639248)\n-6DE709 Created Zip Spec      14 (20) '2.0'\n-6DE70A Created OS            00 (0) 'MS-DOS'\n-6DE70B Extract Zip Spec      14 (20) '2.0'\n-6DE70C Extract OS            00 (0) 'MS-DOS'\n-6DE70D General Purpose Flag  0000 (0)\n-6DE70F Compression Method    0000 (0) 'Stored'\n-6DE711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE715 CRC                   00000000 (0)\n-6DE719 Compressed Size       00000000 (0)\n-6DE71D Uncompressed Size     00000000 (0)\n-6DE721 Filename Length       001F (31)\n-6DE723 Extra Length          0009 (9)\n-6DE725 Comment Length        0000 (0)\n-6DE727 Disk Start            0000 (0)\n-6DE729 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE72B Ext File Attributes   00000000 (0)\n-6DE72F Local Header Offset   002170ED (2191597)\n-6DE733 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE733: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE752 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE754   Length              0005 (5)\n-6DE756   Flags               01 (1) 'Modification'\n-6DE757   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE75B CENTRAL HEADER #725   02014B50 (33639248)\n-6DE75F Created Zip Spec      14 (20) '2.0'\n-6DE760 Created OS            00 (0) 'MS-DOS'\n-6DE761 Extract Zip Spec      14 (20) '2.0'\n-6DE762 Extract OS            00 (0) 'MS-DOS'\n-6DE763 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE765 Compression Method    0000 (0) 'Stored'\n-6DE767 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE76B CRC                   9D821087 (2642546823)\n-6DE76F Compressed Size       000004BE (1214)\n-6DE773 Uncompressed Size     000004BE (1214)\n-6DE777 Filename Length       0029 (41)\n-6DE779 Extra Length          0009 (9)\n-6DE77B Comment Length        0000 (0)\n-6DE77D Disk Start            0000 (0)\n-6DE77F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE781 Ext File Attributes   00000000 (0)\n-6DE785 Local Header Offset   00217133 (2191667)\n-6DE789 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE789: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE7B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE7B4   Length              0005 (5)\n-6DE7B6   Flags               01 (1) 'Modification'\n-6DE7B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE7BB CENTRAL HEADER #726   02014B50 (33639248)\n-6DE7BF Created Zip Spec      14 (20) '2.0'\n-6DE7C0 Created OS            00 (0) 'MS-DOS'\n-6DE7C1 Extract Zip Spec      14 (20) '2.0'\n-6DE7C2 Extract OS            00 (0) 'MS-DOS'\n-6DE7C3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE7C5 Compression Method    0000 (0) 'Stored'\n-6DE7C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE7CB CRC                   7A6DF346 (2054026054)\n-6DE7CF Compressed Size       00000ED8 (3800)\n-6DE7D3 Uncompressed Size     00000ED8 (3800)\n-6DE7D7 Filename Length       002A (42)\n-6DE7D9 Extra Length          0009 (9)\n-6DE7DB Comment Length        0000 (0)\n-6DE7DD Disk Start            0000 (0)\n-6DE7DF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE7E1 Ext File Attributes   00000000 (0)\n-6DE7E5 Local Header Offset   00217651 (2192977)\n-6DE7E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE7E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE813 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE815   Length              0005 (5)\n-6DE817   Flags               01 (1) 'Modification'\n-6DE818   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE81C CENTRAL HEADER #727   02014B50 (33639248)\n-6DE820 Created Zip Spec      14 (20) '2.0'\n-6DE821 Created OS            00 (0) 'MS-DOS'\n-6DE822 Extract Zip Spec      14 (20) '2.0'\n-6DE823 Extract OS            00 (0) 'MS-DOS'\n-6DE824 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE826 Compression Method    0000 (0) 'Stored'\n-6DE828 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE82C CRC                   A6EF1A57 (2800687703)\n-6DE830 Compressed Size       00000745 (1861)\n-6DE834 Uncompressed Size     00000745 (1861)\n-6DE838 Filename Length       0031 (49)\n-6DE83A Extra Length          0009 (9)\n-6DE83C Comment Length        0000 (0)\n-6DE83E Disk Start            0000 (0)\n-6DE840 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE842 Ext File Attributes   00000000 (0)\n-6DE846 Local Header Offset   0021858A (2196874)\n-6DE84A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE84A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE87B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE87D   Length              0005 (5)\n-6DE87F   Flags               01 (1) 'Modification'\n-6DE880   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE884 CENTRAL HEADER #728   02014B50 (33639248)\n-6DE888 Created Zip Spec      14 (20) '2.0'\n-6DE889 Created OS            00 (0) 'MS-DOS'\n-6DE88A Extract Zip Spec      14 (20) '2.0'\n-6DE88B Extract OS            00 (0) 'MS-DOS'\n-6DE88C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE88E Compression Method    0000 (0) 'Stored'\n-6DE890 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE894 CRC                   626EDC3E (1651432510)\n-6DE898 Compressed Size       00001485 (5253)\n-6DE89C Uncompressed Size     00001485 (5253)\n-6DE8A0 Filename Length       0031 (49)\n-6DE8A2 Extra Length          0009 (9)\n-6DE8A4 Comment Length        0000 (0)\n-6DE8A6 Disk Start            0000 (0)\n-6DE8A8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE8AA Ext File Attributes   00000000 (0)\n-6DE8AE Local Header Offset   00218D37 (2198839)\n-6DE8B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE8B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE8E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE8E5   Length              0005 (5)\n-6DE8E7   Flags               01 (1) 'Modification'\n-6DE8E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE8EC CENTRAL HEADER #729   02014B50 (33639248)\n-6DE8F0 Created Zip Spec      14 (20) '2.0'\n-6DE8F1 Created OS            00 (0) 'MS-DOS'\n-6DE8F2 Extract Zip Spec      14 (20) '2.0'\n-6DE8F3 Extract OS            00 (0) 'MS-DOS'\n-6DE8F4 General Purpose Flag  0000 (0)\n-6DE8F6 Compression Method    0000 (0) 'Stored'\n-6DE8F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE8FC CRC                   00000000 (0)\n-6DE900 Compressed Size       00000000 (0)\n-6DE904 Uncompressed Size     00000000 (0)\n-6DE908 Filename Length       0023 (35)\n-6DE90A Extra Length          0009 (9)\n-6DE90C Comment Length        0000 (0)\n-6DE90E Disk Start            0000 (0)\n-6DE910 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE912 Ext File Attributes   00000000 (0)\n-6DE916 Local Header Offset   0021A224 (2204196)\n-6DE91A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE91A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE93D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE93F   Length              0005 (5)\n-6DE941   Flags               01 (1) 'Modification'\n-6DE942   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE946 CENTRAL HEADER #730   02014B50 (33639248)\n-6DE94A Created Zip Spec      14 (20) '2.0'\n-6DE94B Created OS            00 (0) 'MS-DOS'\n-6DE94C Extract Zip Spec      14 (20) '2.0'\n-6DE94D Extract OS            00 (0) 'MS-DOS'\n-6DE94E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE950 Compression Method    0000 (0) 'Stored'\n-6DE952 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE956 CRC                   65EBC1EB (1709949419)\n-6DE95A Compressed Size       00000D0E (3342)\n-6DE95E Uncompressed Size     00000D0E (3342)\n-6DE962 Filename Length       0031 (49)\n-6DE964 Extra Length          0009 (9)\n-6DE966 Comment Length        0000 (0)\n-6DE968 Disk Start            0000 (0)\n-6DE96A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE96C Ext File Attributes   00000000 (0)\n-6DE970 Local Header Offset   0021A26E (2204270)\n-6DE974 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE974: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DE9A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DE9A7   Length              0005 (5)\n-6DE9A9   Flags               01 (1) 'Modification'\n-6DE9AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DE9AE CENTRAL HEADER #731   02014B50 (33639248)\n-6DE9B2 Created Zip Spec      14 (20) '2.0'\n-6DE9B3 Created OS            00 (0) 'MS-DOS'\n-6DE9B4 Extract Zip Spec      14 (20) '2.0'\n-6DE9B5 Extract OS            00 (0) 'MS-DOS'\n-6DE9B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DE9B8 Compression Method    0000 (0) 'Stored'\n-6DE9BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DE9BE CRC                   006A5B46 (6970182)\n-6DE9C2 Compressed Size       000006F8 (1784)\n-6DE9C6 Uncompressed Size     000006F8 (1784)\n-6DE9CA Filename Length       0038 (56)\n-6DE9CC Extra Length          0009 (9)\n-6DE9CE Comment Length        0000 (0)\n-6DE9D0 Disk Start            0000 (0)\n-6DE9D2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DE9D4 Ext File Attributes   00000000 (0)\n-6DE9D8 Local Header Offset   0021AFE4 (2207716)\n-6DE9DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DE9DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEA14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEA16   Length              0005 (5)\n-6DEA18   Flags               01 (1) 'Modification'\n-6DEA19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEA1D CENTRAL HEADER #732   02014B50 (33639248)\n-6DEA21 Created Zip Spec      14 (20) '2.0'\n-6DEA22 Created OS            00 (0) 'MS-DOS'\n-6DEA23 Extract Zip Spec      14 (20) '2.0'\n-6DEA24 Extract OS            00 (0) 'MS-DOS'\n-6DEA25 General Purpose Flag  0000 (0)\n-6DEA27 Compression Method    0000 (0) 'Stored'\n-6DEA29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEA2D CRC                   00000000 (0)\n-6DEA31 Compressed Size       00000000 (0)\n-6DEA35 Uncompressed Size     00000000 (0)\n-6DEA39 Filename Length       0023 (35)\n-6DEA3B Extra Length          0009 (9)\n-6DEA3D Comment Length        0000 (0)\n-6DEA3F Disk Start            0000 (0)\n-6DEA41 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEA43 Ext File Attributes   00000000 (0)\n-6DEA47 Local Header Offset   0021B74B (2209611)\n-6DEA4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEA4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEA6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEA70   Length              0005 (5)\n-6DEA72   Flags               01 (1) 'Modification'\n-6DEA73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEA77 CENTRAL HEADER #733   02014B50 (33639248)\n-6DEA7B Created Zip Spec      14 (20) '2.0'\n-6DEA7C Created OS            00 (0) 'MS-DOS'\n-6DEA7D Extract Zip Spec      14 (20) '2.0'\n-6DEA7E Extract OS            00 (0) 'MS-DOS'\n-6DEA7F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEA81 Compression Method    0000 (0) 'Stored'\n-6DEA83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEA87 CRC                   8FD172CF (2412868303)\n-6DEA8B Compressed Size       00000D1B (3355)\n-6DEA8F Uncompressed Size     00000D1B (3355)\n-6DEA93 Filename Length       0031 (49)\n-6DEA95 Extra Length          0009 (9)\n-6DEA97 Comment Length        0000 (0)\n-6DEA99 Disk Start            0000 (0)\n-6DEA9B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEA9D Ext File Attributes   00000000 (0)\n-6DEAA1 Local Header Offset   0021B795 (2209685)\n-6DEAA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEAA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEAD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEAD8   Length              0005 (5)\n-6DEADA   Flags               01 (1) 'Modification'\n-6DEADB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEADF CENTRAL HEADER #734   02014B50 (33639248)\n-6DEAE3 Created Zip Spec      14 (20) '2.0'\n-6DEAE4 Created OS            00 (0) 'MS-DOS'\n-6DEAE5 Extract Zip Spec      14 (20) '2.0'\n-6DEAE6 Extract OS            00 (0) 'MS-DOS'\n-6DEAE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEAE9 Compression Method    0000 (0) 'Stored'\n-6DEAEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEAEF CRC                   7ADBDBE0 (2061229024)\n-6DEAF3 Compressed Size       000012FC (4860)\n-6DEAF7 Uncompressed Size     000012FC (4860)\n-6DEAFB Filename Length       0038 (56)\n-6DEAFD Extra Length          0009 (9)\n-6DEAFF Comment Length        0000 (0)\n-6DEB01 Disk Start            0000 (0)\n-6DEB03 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEB05 Ext File Attributes   00000000 (0)\n-6DEB09 Local Header Offset   0021C518 (2213144)\n-6DEB0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEB0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEB45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEB47   Length              0005 (5)\n-6DEB49   Flags               01 (1) 'Modification'\n-6DEB4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEB4E CENTRAL HEADER #735   02014B50 (33639248)\n-6DEB52 Created Zip Spec      14 (20) '2.0'\n-6DEB53 Created OS            00 (0) 'MS-DOS'\n-6DEB54 Extract Zip Spec      14 (20) '2.0'\n-6DEB55 Extract OS            00 (0) 'MS-DOS'\n-6DEB56 General Purpose Flag  0000 (0)\n-6DEB58 Compression Method    0000 (0) 'Stored'\n-6DEB5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEB5E CRC                   00000000 (0)\n-6DEB62 Compressed Size       00000000 (0)\n-6DEB66 Uncompressed Size     00000000 (0)\n-6DEB6A Filename Length       0025 (37)\n-6DEB6C Extra Length          0009 (9)\n-6DEB6E Comment Length        0000 (0)\n-6DEB70 Disk Start            0000 (0)\n-6DEB72 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEB74 Ext File Attributes   00000000 (0)\n-6DEB78 Local Header Offset   0021D883 (2218115)\n-6DEB7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEB7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEBA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEBA3   Length              0005 (5)\n-6DEBA5   Flags               01 (1) 'Modification'\n-6DEBA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEBAA CENTRAL HEADER #736   02014B50 (33639248)\n-6DEBAE Created Zip Spec      14 (20) '2.0'\n-6DEBAF Created OS            00 (0) 'MS-DOS'\n-6DEBB0 Extract Zip Spec      14 (20) '2.0'\n-6DEBB1 Extract OS            00 (0) 'MS-DOS'\n-6DEBB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEBB4 Compression Method    0000 (0) 'Stored'\n-6DEBB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEBBA CRC                   0237005F (37159007)\n-6DEBBE Compressed Size       00000E61 (3681)\n-6DEBC2 Uncompressed Size     00000E61 (3681)\n-6DEBC6 Filename Length       0035 (53)\n-6DEBC8 Extra Length          0009 (9)\n-6DEBCA Comment Length        0000 (0)\n-6DEBCC Disk Start            0000 (0)\n-6DEBCE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEBD0 Ext File Attributes   00000000 (0)\n-6DEBD4 Local Header Offset   0021D8CF (2218191)\n-6DEBD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEBD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEC0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEC0F   Length              0005 (5)\n-6DEC11   Flags               01 (1) 'Modification'\n-6DEC12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEC16 CENTRAL HEADER #737   02014B50 (33639248)\n-6DEC1A Created Zip Spec      14 (20) '2.0'\n-6DEC1B Created OS            00 (0) 'MS-DOS'\n-6DEC1C Extract Zip Spec      14 (20) '2.0'\n-6DEC1D Extract OS            00 (0) 'MS-DOS'\n-6DEC1E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEC20 Compression Method    0000 (0) 'Stored'\n-6DEC22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEC26 CRC                   CE737695 (3463673493)\n-6DEC2A Compressed Size       000010CC (4300)\n-6DEC2E Uncompressed Size     000010CC (4300)\n-6DEC32 Filename Length       003C (60)\n-6DEC34 Extra Length          0009 (9)\n-6DEC36 Comment Length        0000 (0)\n-6DEC38 Disk Start            0000 (0)\n-6DEC3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEC3C Ext File Attributes   00000000 (0)\n-6DEC40 Local Header Offset   0021E79C (2221980)\n-6DEC44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEC44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEC80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEC82   Length              0005 (5)\n-6DEC84   Flags               01 (1) 'Modification'\n-6DEC85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEC89 CENTRAL HEADER #738   02014B50 (33639248)\n-6DEC8D Created Zip Spec      14 (20) '2.0'\n-6DEC8E Created OS            00 (0) 'MS-DOS'\n-6DEC8F Extract Zip Spec      14 (20) '2.0'\n-6DEC90 Extract OS            00 (0) 'MS-DOS'\n-6DEC91 General Purpose Flag  0000 (0)\n-6DEC93 Compression Method    0000 (0) 'Stored'\n-6DEC95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEC99 CRC                   00000000 (0)\n-6DEC9D Compressed Size       00000000 (0)\n-6DECA1 Uncompressed Size     00000000 (0)\n-6DECA5 Filename Length       0026 (38)\n-6DECA7 Extra Length          0009 (9)\n-6DECA9 Comment Length        0000 (0)\n-6DECAB Disk Start            0000 (0)\n-6DECAD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DECAF Ext File Attributes   00000000 (0)\n-6DECB3 Local Header Offset   0021F8DB (2226395)\n-6DECB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DECB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DECDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DECDF   Length              0005 (5)\n-6DECE1   Flags               01 (1) 'Modification'\n-6DECE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DECE6 CENTRAL HEADER #739   02014B50 (33639248)\n-6DECEA Created Zip Spec      14 (20) '2.0'\n-6DECEB Created OS            00 (0) 'MS-DOS'\n-6DECEC Extract Zip Spec      14 (20) '2.0'\n-6DECED Extract OS            00 (0) 'MS-DOS'\n-6DECEE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DECF0 Compression Method    0000 (0) 'Stored'\n-6DECF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DECF6 CRC                   719AAFB0 (1905962928)\n-6DECFA Compressed Size       00000C98 (3224)\n-6DECFE Uncompressed Size     00000C98 (3224)\n-6DED02 Filename Length       0037 (55)\n-6DED04 Extra Length          0009 (9)\n-6DED06 Comment Length        0000 (0)\n-6DED08 Disk Start            0000 (0)\n-6DED0A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DED0C Ext File Attributes   00000000 (0)\n-6DED10 Local Header Offset   0021F928 (2226472)\n-6DED14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DED14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DED4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DED4D   Length              0005 (5)\n-6DED4F   Flags               01 (1) 'Modification'\n-6DED50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DED54 CENTRAL HEADER #740   02014B50 (33639248)\n-6DED58 Created Zip Spec      14 (20) '2.0'\n-6DED59 Created OS            00 (0) 'MS-DOS'\n-6DED5A Extract Zip Spec      14 (20) '2.0'\n-6DED5B Extract OS            00 (0) 'MS-DOS'\n-6DED5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DED5E Compression Method    0000 (0) 'Stored'\n-6DED60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DED64 CRC                   B7D93D08 (3084467464)\n-6DED68 Compressed Size       00000CED (3309)\n-6DED6C Uncompressed Size     00000CED (3309)\n-6DED70 Filename Length       003E (62)\n-6DED72 Extra Length          0009 (9)\n-6DED74 Comment Length        0000 (0)\n-6DED76 Disk Start            0000 (0)\n-6DED78 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DED7A Ext File Attributes   00000000 (0)\n-6DED7E Local Header Offset   0022062E (2229806)\n-6DED82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DED82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEDC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEDC2   Length              0005 (5)\n-6DEDC4   Flags               01 (1) 'Modification'\n-6DEDC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEDC9 CENTRAL HEADER #741   02014B50 (33639248)\n-6DEDCD Created Zip Spec      14 (20) '2.0'\n-6DEDCE Created OS            00 (0) 'MS-DOS'\n-6DEDCF Extract Zip Spec      14 (20) '2.0'\n-6DEDD0 Extract OS            00 (0) 'MS-DOS'\n-6DEDD1 General Purpose Flag  0000 (0)\n-6DEDD3 Compression Method    0000 (0) 'Stored'\n-6DEDD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEDD9 CRC                   00000000 (0)\n-6DEDDD Compressed Size       00000000 (0)\n-6DEDE1 Uncompressed Size     00000000 (0)\n-6DEDE5 Filename Length       0025 (37)\n-6DEDE7 Extra Length          0009 (9)\n-6DEDE9 Comment Length        0000 (0)\n-6DEDEB Disk Start            0000 (0)\n-6DEDED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEDEF Ext File Attributes   00000000 (0)\n-6DEDF3 Local Header Offset   00221390 (2233232)\n-6DEDF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEDF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEE1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEE1E   Length              0005 (5)\n-6DEE20   Flags               01 (1) 'Modification'\n-6DEE21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEE25 CENTRAL HEADER #742   02014B50 (33639248)\n-6DEE29 Created Zip Spec      14 (20) '2.0'\n-6DEE2A Created OS            00 (0) 'MS-DOS'\n-6DEE2B Extract Zip Spec      14 (20) '2.0'\n-6DEE2C Extract OS            00 (0) 'MS-DOS'\n-6DEE2D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEE2F Compression Method    0000 (0) 'Stored'\n-6DEE31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEE35 CRC                   FD6565BB (4251280827)\n-6DEE39 Compressed Size       00001876 (6262)\n-6DEE3D Uncompressed Size     00001876 (6262)\n-6DEE41 Filename Length       0035 (53)\n-6DEE43 Extra Length          0009 (9)\n-6DEE45 Comment Length        0000 (0)\n-6DEE47 Disk Start            0000 (0)\n-6DEE49 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEE4B Ext File Attributes   00000000 (0)\n-6DEE4F Local Header Offset   002213DC (2233308)\n-6DEE53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEE53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEE88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEE8A   Length              0005 (5)\n-6DEE8C   Flags               01 (1) 'Modification'\n-6DEE8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEE91 CENTRAL HEADER #743   02014B50 (33639248)\n-6DEE95 Created Zip Spec      14 (20) '2.0'\n-6DEE96 Created OS            00 (0) 'MS-DOS'\n-6DEE97 Extract Zip Spec      14 (20) '2.0'\n-6DEE98 Extract OS            00 (0) 'MS-DOS'\n-6DEE99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEE9B Compression Method    0000 (0) 'Stored'\n-6DEE9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEEA1 CRC                   2D853131 (763703601)\n-6DEEA5 Compressed Size       000006EF (1775)\n-6DEEA9 Uncompressed Size     000006EF (1775)\n-6DEEAD Filename Length       003C (60)\n-6DEEAF Extra Length          0009 (9)\n-6DEEB1 Comment Length        0000 (0)\n-6DEEB3 Disk Start            0000 (0)\n-6DEEB5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEEB7 Ext File Attributes   00000000 (0)\n-6DEEBB Local Header Offset   00222CBE (2239678)\n-6DEEBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEEBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEEFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEEFD   Length              0005 (5)\n-6DEEFF   Flags               01 (1) 'Modification'\n-6DEF00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEF04 CENTRAL HEADER #744   02014B50 (33639248)\n-6DEF08 Created Zip Spec      14 (20) '2.0'\n-6DEF09 Created OS            00 (0) 'MS-DOS'\n-6DEF0A Extract Zip Spec      14 (20) '2.0'\n-6DEF0B Extract OS            00 (0) 'MS-DOS'\n-6DEF0C General Purpose Flag  0000 (0)\n-6DEF0E Compression Method    0000 (0) 'Stored'\n-6DEF10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEF14 CRC                   00000000 (0)\n-6DEF18 Compressed Size       00000000 (0)\n-6DEF1C Uncompressed Size     00000000 (0)\n-6DEF20 Filename Length       0027 (39)\n-6DEF22 Extra Length          0009 (9)\n-6DEF24 Comment Length        0000 (0)\n-6DEF26 Disk Start            0000 (0)\n-6DEF28 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEF2A Ext File Attributes   00000000 (0)\n-6DEF2E Local Header Offset   00223420 (2241568)\n-6DEF32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEF32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEF59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEF5B   Length              0005 (5)\n-6DEF5D   Flags               01 (1) 'Modification'\n-6DEF5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEF62 CENTRAL HEADER #745   02014B50 (33639248)\n-6DEF66 Created Zip Spec      14 (20) '2.0'\n-6DEF67 Created OS            00 (0) 'MS-DOS'\n-6DEF68 Extract Zip Spec      14 (20) '2.0'\n-6DEF69 Extract OS            00 (0) 'MS-DOS'\n-6DEF6A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DEF6C Compression Method    0000 (0) 'Stored'\n-6DEF6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEF72 CRC                   01B8CE5D (28888669)\n-6DEF76 Compressed Size       000013B5 (5045)\n-6DEF7A Uncompressed Size     000013B5 (5045)\n-6DEF7E Filename Length       003A (58)\n-6DEF80 Extra Length          0009 (9)\n-6DEF82 Comment Length        0000 (0)\n-6DEF84 Disk Start            0000 (0)\n-6DEF86 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEF88 Ext File Attributes   00000000 (0)\n-6DEF8C Local Header Offset   0022346E (2241646)\n-6DEF90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DEF90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DEFCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DEFCC   Length              0005 (5)\n-6DEFCE   Flags               01 (1) 'Modification'\n-6DEFCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DEFD3 CENTRAL HEADER #746   02014B50 (33639248)\n-6DEFD7 Created Zip Spec      14 (20) '2.0'\n-6DEFD8 Created OS            00 (0) 'MS-DOS'\n-6DEFD9 Extract Zip Spec      14 (20) '2.0'\n-6DEFDA Extract OS            00 (0) 'MS-DOS'\n-6DEFDB General Purpose Flag  0000 (0)\n-6DEFDD Compression Method    0000 (0) 'Stored'\n-6DEFDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DEFE3 CRC                   00000000 (0)\n-6DEFE7 Compressed Size       00000000 (0)\n-6DEFEB Uncompressed Size     00000000 (0)\n-6DEFEF Filename Length       0022 (34)\n-6DEFF1 Extra Length          0009 (9)\n-6DEFF3 Comment Length        0000 (0)\n-6DEFF5 Disk Start            0000 (0)\n-6DEFF7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DEFF9 Ext File Attributes   00000000 (0)\n-6DEFFD Local Header Offset   00224894 (2246804)\n-6DF001 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF001: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF023 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF025   Length              0005 (5)\n-6DF027   Flags               01 (1) 'Modification'\n-6DF028   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF02C CENTRAL HEADER #747   02014B50 (33639248)\n-6DF030 Created Zip Spec      14 (20) '2.0'\n-6DF031 Created OS            00 (0) 'MS-DOS'\n-6DF032 Extract Zip Spec      14 (20) '2.0'\n-6DF033 Extract OS            00 (0) 'MS-DOS'\n-6DF034 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF036 Compression Method    0000 (0) 'Stored'\n-6DF038 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF03C CRC                   072B28E1 (120269025)\n-6DF040 Compressed Size       00000423 (1059)\n-6DF044 Uncompressed Size     00000423 (1059)\n-6DF048 Filename Length       0030 (48)\n-6DF04A Extra Length          0009 (9)\n-6DF04C Comment Length        0000 (0)\n-6DF04E Disk Start            0000 (0)\n-6DF050 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF052 Ext File Attributes   00000000 (0)\n-6DF056 Local Header Offset   002248DD (2246877)\n-6DF05A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF05A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF08A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF08C   Length              0005 (5)\n-6DF08E   Flags               01 (1) 'Modification'\n-6DF08F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF093 CENTRAL HEADER #748   02014B50 (33639248)\n-6DF097 Created Zip Spec      14 (20) '2.0'\n-6DF098 Created OS            00 (0) 'MS-DOS'\n-6DF099 Extract Zip Spec      14 (20) '2.0'\n-6DF09A Extract OS            00 (0) 'MS-DOS'\n-6DF09B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF09D Compression Method    0000 (0) 'Stored'\n-6DF09F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF0A3 CRC                   121EAF1A (304000794)\n-6DF0A7 Compressed Size       000005A4 (1444)\n-6DF0AB Uncompressed Size     000005A4 (1444)\n-6DF0AF Filename Length       0030 (48)\n-6DF0B1 Extra Length          0009 (9)\n-6DF0B3 Comment Length        0000 (0)\n-6DF0B5 Disk Start            0000 (0)\n-6DF0B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF0B9 Ext File Attributes   00000000 (0)\n-6DF0BD Local Header Offset   00224D67 (2248039)\n-6DF0C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF0C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF0F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF0F3   Length              0005 (5)\n-6DF0F5   Flags               01 (1) 'Modification'\n-6DF0F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF0FA CENTRAL HEADER #749   02014B50 (33639248)\n-6DF0FE Created Zip Spec      14 (20) '2.0'\n-6DF0FF Created OS            00 (0) 'MS-DOS'\n-6DF100 Extract Zip Spec      14 (20) '2.0'\n-6DF101 Extract OS            00 (0) 'MS-DOS'\n-6DF102 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF104 Compression Method    0000 (0) 'Stored'\n-6DF106 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF10A CRC                   9F97C867 (2677524583)\n-6DF10E Compressed Size       000008EC (2284)\n-6DF112 Uncompressed Size     000008EC (2284)\n-6DF116 Filename Length       0030 (48)\n-6DF118 Extra Length          0009 (9)\n-6DF11A Comment Length        0000 (0)\n-6DF11C Disk Start            0000 (0)\n-6DF11E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF120 Ext File Attributes   00000000 (0)\n-6DF124 Local Header Offset   00225372 (2249586)\n-6DF128 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF128: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF158 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF15A   Length              0005 (5)\n-6DF15C   Flags               01 (1) 'Modification'\n-6DF15D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF161 CENTRAL HEADER #750   02014B50 (33639248)\n-6DF165 Created Zip Spec      14 (20) '2.0'\n-6DF166 Created OS            00 (0) 'MS-DOS'\n-6DF167 Extract Zip Spec      14 (20) '2.0'\n-6DF168 Extract OS            00 (0) 'MS-DOS'\n-6DF169 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF16B Compression Method    0000 (0) 'Stored'\n-6DF16D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF171 CRC                   BCDD8DC5 (3168636357)\n-6DF175 Compressed Size       00000AB5 (2741)\n-6DF179 Uncompressed Size     00000AB5 (2741)\n-6DF17D Filename Length       0031 (49)\n-6DF17F Extra Length          0009 (9)\n-6DF181 Comment Length        0000 (0)\n-6DF183 Disk Start            0000 (0)\n-6DF185 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF187 Ext File Attributes   00000000 (0)\n-6DF18B Local Header Offset   00225CC5 (2251973)\n-6DF18F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF18F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF1C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF1C2   Length              0005 (5)\n-6DF1C4   Flags               01 (1) 'Modification'\n-6DF1C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF1C9 CENTRAL HEADER #751   02014B50 (33639248)\n-6DF1CD Created Zip Spec      14 (20) '2.0'\n-6DF1CE Created OS            00 (0) 'MS-DOS'\n-6DF1CF Extract Zip Spec      14 (20) '2.0'\n-6DF1D0 Extract OS            00 (0) 'MS-DOS'\n-6DF1D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF1D3 Compression Method    0000 (0) 'Stored'\n-6DF1D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF1D9 CRC                   F1A78E98 (4054290072)\n-6DF1DD Compressed Size       00000D54 (3412)\n-6DF1E1 Uncompressed Size     00000D54 (3412)\n-6DF1E5 Filename Length       0032 (50)\n-6DF1E7 Extra Length          0009 (9)\n-6DF1E9 Comment Length        0000 (0)\n-6DF1EB Disk Start            0000 (0)\n-6DF1ED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF1EF Ext File Attributes   00000000 (0)\n-6DF1F3 Local Header Offset   002267E2 (2254818)\n-6DF1F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF1F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF229 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF22B   Length              0005 (5)\n-6DF22D   Flags               01 (1) 'Modification'\n-6DF22E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF232 CENTRAL HEADER #752   02014B50 (33639248)\n-6DF236 Created Zip Spec      14 (20) '2.0'\n-6DF237 Created OS            00 (0) 'MS-DOS'\n-6DF238 Extract Zip Spec      14 (20) '2.0'\n-6DF239 Extract OS            00 (0) 'MS-DOS'\n-6DF23A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF23C Compression Method    0000 (0) 'Stored'\n-6DF23E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF242 CRC                   CA608B45 (3395324741)\n-6DF246 Compressed Size       000008E9 (2281)\n-6DF24A Uncompressed Size     000008E9 (2281)\n-6DF24E Filename Length       0033 (51)\n-6DF250 Extra Length          0009 (9)\n-6DF252 Comment Length        0000 (0)\n-6DF254 Disk Start            0000 (0)\n-6DF256 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF258 Ext File Attributes   00000000 (0)\n-6DF25C Local Header Offset   0022759F (2258335)\n-6DF260 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF260: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF293 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF295   Length              0005 (5)\n-6DF297   Flags               01 (1) 'Modification'\n-6DF298   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF29C CENTRAL HEADER #753   02014B50 (33639248)\n-6DF2A0 Created Zip Spec      14 (20) '2.0'\n-6DF2A1 Created OS            00 (0) 'MS-DOS'\n-6DF2A2 Extract Zip Spec      14 (20) '2.0'\n-6DF2A3 Extract OS            00 (0) 'MS-DOS'\n-6DF2A4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF2A6 Compression Method    0000 (0) 'Stored'\n-6DF2A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF2AC CRC                   04921C47 (76684359)\n-6DF2B0 Compressed Size       000009D7 (2519)\n-6DF2B4 Uncompressed Size     000009D7 (2519)\n-6DF2B8 Filename Length       0034 (52)\n-6DF2BA Extra Length          0009 (9)\n-6DF2BC Comment Length        0000 (0)\n-6DF2BE Disk Start            0000 (0)\n-6DF2C0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF2C2 Ext File Attributes   00000000 (0)\n-6DF2C6 Local Header Offset   00227EF2 (2260722)\n-6DF2CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF2CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF2FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF300   Length              0005 (5)\n-6DF302   Flags               01 (1) 'Modification'\n-6DF303   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF307 CENTRAL HEADER #754   02014B50 (33639248)\n-6DF30B Created Zip Spec      14 (20) '2.0'\n-6DF30C Created OS            00 (0) 'MS-DOS'\n-6DF30D Extract Zip Spec      14 (20) '2.0'\n-6DF30E Extract OS            00 (0) 'MS-DOS'\n-6DF30F General Purpose Flag  0000 (0)\n-6DF311 Compression Method    0000 (0) 'Stored'\n-6DF313 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF317 CRC                   00000000 (0)\n-6DF31B Compressed Size       00000000 (0)\n-6DF31F Uncompressed Size     00000000 (0)\n-6DF323 Filename Length       0027 (39)\n-6DF325 Extra Length          0009 (9)\n-6DF327 Comment Length        0000 (0)\n-6DF329 Disk Start            0000 (0)\n-6DF32B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF32D Ext File Attributes   00000000 (0)\n-6DF331 Local Header Offset   00228934 (2263348)\n-6DF335 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF335: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF35C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF35E   Length              0005 (5)\n-6DF360   Flags               01 (1) 'Modification'\n-6DF361   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF365 CENTRAL HEADER #755   02014B50 (33639248)\n-6DF369 Created Zip Spec      14 (20) '2.0'\n-6DF36A Created OS            00 (0) 'MS-DOS'\n-6DF36B Extract Zip Spec      14 (20) '2.0'\n-6DF36C Extract OS            00 (0) 'MS-DOS'\n-6DF36D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF36F Compression Method    0000 (0) 'Stored'\n-6DF371 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF375 CRC                   3E0609F4 (1040583156)\n-6DF379 Compressed Size       00000E94 (3732)\n-6DF37D Uncompressed Size     00000E94 (3732)\n-6DF381 Filename Length       003B (59)\n-6DF383 Extra Length          0009 (9)\n-6DF385 Comment Length        0000 (0)\n-6DF387 Disk Start            0000 (0)\n-6DF389 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF38B Ext File Attributes   00000000 (0)\n-6DF38F Local Header Offset   00228982 (2263426)\n-6DF393 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF393: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF3CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF3D0   Length              0005 (5)\n-6DF3D2   Flags               01 (1) 'Modification'\n-6DF3D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF3D7 CENTRAL HEADER #756   02014B50 (33639248)\n-6DF3DB Created Zip Spec      14 (20) '2.0'\n-6DF3DC Created OS            00 (0) 'MS-DOS'\n-6DF3DD Extract Zip Spec      14 (20) '2.0'\n-6DF3DE Extract OS            00 (0) 'MS-DOS'\n-6DF3DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF3E1 Compression Method    0000 (0) 'Stored'\n-6DF3E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF3E7 CRC                   99ADAD26 (2578296102)\n-6DF3EB Compressed Size       00000CCF (3279)\n-6DF3EF Uncompressed Size     00000CCF (3279)\n-6DF3F3 Filename Length       003C (60)\n-6DF3F5 Extra Length          0009 (9)\n-6DF3F7 Comment Length        0000 (0)\n-6DF3F9 Disk Start            0000 (0)\n-6DF3FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF3FD Ext File Attributes   00000000 (0)\n-6DF401 Local Header Offset   00229888 (2267272)\n-6DF405 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF405: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF441 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF443   Length              0005 (5)\n-6DF445   Flags               01 (1) 'Modification'\n-6DF446   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF44A CENTRAL HEADER #757   02014B50 (33639248)\n-6DF44E Created Zip Spec      14 (20) '2.0'\n-6DF44F Created OS            00 (0) 'MS-DOS'\n-6DF450 Extract Zip Spec      14 (20) '2.0'\n-6DF451 Extract OS            00 (0) 'MS-DOS'\n-6DF452 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF454 Compression Method    0000 (0) 'Stored'\n-6DF456 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF45A CRC                   61EF883C (1643087932)\n-6DF45E Compressed Size       00000719 (1817)\n-6DF462 Uncompressed Size     00000719 (1817)\n-6DF466 Filename Length       003D (61)\n-6DF468 Extra Length          0009 (9)\n-6DF46A Comment Length        0000 (0)\n-6DF46C Disk Start            0000 (0)\n-6DF46E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF470 Ext File Attributes   00000000 (0)\n-6DF474 Local Header Offset   0022A5CA (2270666)\n-6DF478 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF478: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF4B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF4B7   Length              0005 (5)\n-6DF4B9   Flags               01 (1) 'Modification'\n-6DF4BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF4BE CENTRAL HEADER #758   02014B50 (33639248)\n-6DF4C2 Created Zip Spec      14 (20) '2.0'\n-6DF4C3 Created OS            00 (0) 'MS-DOS'\n-6DF4C4 Extract Zip Spec      14 (20) '2.0'\n-6DF4C5 Extract OS            00 (0) 'MS-DOS'\n-6DF4C6 General Purpose Flag  0000 (0)\n-6DF4C8 Compression Method    0000 (0) 'Stored'\n-6DF4CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF4CE CRC                   00000000 (0)\n-6DF4D2 Compressed Size       00000000 (0)\n-6DF4D6 Uncompressed Size     00000000 (0)\n-6DF4DA Filename Length       002B (43)\n-6DF4DC Extra Length          0009 (9)\n-6DF4DE Comment Length        0000 (0)\n-6DF4E0 Disk Start            0000 (0)\n-6DF4E2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF4E4 Ext File Attributes   00000000 (0)\n-6DF4E8 Local Header Offset   0022AD57 (2272599)\n-6DF4EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF4EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF517 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF519   Length              0005 (5)\n-6DF51B   Flags               01 (1) 'Modification'\n-6DF51C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF520 CENTRAL HEADER #759   02014B50 (33639248)\n-6DF524 Created Zip Spec      14 (20) '2.0'\n-6DF525 Created OS            00 (0) 'MS-DOS'\n-6DF526 Extract Zip Spec      14 (20) '2.0'\n-6DF527 Extract OS            00 (0) 'MS-DOS'\n-6DF528 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF52A Compression Method    0000 (0) 'Stored'\n-6DF52C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF530 CRC                   313A7353 (825914195)\n-6DF534 Compressed Size       00000D23 (3363)\n-6DF538 Uncompressed Size     00000D23 (3363)\n-6DF53C Filename Length       0043 (67)\n-6DF53E Extra Length          0009 (9)\n-6DF540 Comment Length        0000 (0)\n-6DF542 Disk Start            0000 (0)\n-6DF544 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF546 Ext File Attributes   00000000 (0)\n-6DF54A Local Header Offset   0022ADA9 (2272681)\n-6DF54E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF54E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF593   Length              0005 (5)\n-6DF595   Flags               01 (1) 'Modification'\n-6DF596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF59A CENTRAL HEADER #760   02014B50 (33639248)\n-6DF59E Created Zip Spec      14 (20) '2.0'\n-6DF59F Created OS            00 (0) 'MS-DOS'\n-6DF5A0 Extract Zip Spec      14 (20) '2.0'\n-6DF5A1 Extract OS            00 (0) 'MS-DOS'\n-6DF5A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF5A4 Compression Method    0000 (0) 'Stored'\n-6DF5A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF5AA CRC                   86605046 (2254458950)\n-6DF5AE Compressed Size       00000CE3 (3299)\n-6DF5B2 Uncompressed Size     00000CE3 (3299)\n-6DF5B6 Filename Length       0044 (68)\n-6DF5B8 Extra Length          0009 (9)\n-6DF5BA Comment Length        0000 (0)\n-6DF5BC Disk Start            0000 (0)\n-6DF5BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF5C0 Ext File Attributes   00000000 (0)\n-6DF5C4 Local Header Offset   0022BB46 (2276166)\n-6DF5C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF5C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF60C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF60E   Length              0005 (5)\n-6DF610   Flags               01 (1) 'Modification'\n-6DF611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF615 CENTRAL HEADER #761   02014B50 (33639248)\n-6DF619 Created Zip Spec      14 (20) '2.0'\n-6DF61A Created OS            00 (0) 'MS-DOS'\n-6DF61B Extract Zip Spec      14 (20) '2.0'\n-6DF61C Extract OS            00 (0) 'MS-DOS'\n-6DF61D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF61F Compression Method    0000 (0) 'Stored'\n-6DF621 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF625 CRC                   4FF68747 (1341556551)\n-6DF629 Compressed Size       00000780 (1920)\n-6DF62D Uncompressed Size     00000780 (1920)\n-6DF631 Filename Length       0045 (69)\n-6DF633 Extra Length          0009 (9)\n-6DF635 Comment Length        0000 (0)\n-6DF637 Disk Start            0000 (0)\n-6DF639 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF63B Ext File Attributes   00000000 (0)\n-6DF63F Local Header Offset   0022C8A4 (2279588)\n-6DF643 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF643: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF688 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF68A   Length              0005 (5)\n-6DF68C   Flags               01 (1) 'Modification'\n-6DF68D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF691 CENTRAL HEADER #762   02014B50 (33639248)\n-6DF695 Created Zip Spec      14 (20) '2.0'\n-6DF696 Created OS            00 (0) 'MS-DOS'\n-6DF697 Extract Zip Spec      14 (20) '2.0'\n-6DF698 Extract OS            00 (0) 'MS-DOS'\n-6DF699 General Purpose Flag  0000 (0)\n-6DF69B Compression Method    0000 (0) 'Stored'\n-6DF69D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF6A1 CRC                   00000000 (0)\n-6DF6A5 Compressed Size       00000000 (0)\n-6DF6A9 Uncompressed Size     00000000 (0)\n-6DF6AD Filename Length       0026 (38)\n-6DF6AF Extra Length          0009 (9)\n-6DF6B1 Comment Length        0000 (0)\n-6DF6B3 Disk Start            0000 (0)\n-6DF6B5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF6B7 Ext File Attributes   00000000 (0)\n-6DF6BB Local Header Offset   0022D0A0 (2281632)\n-6DF6BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF6BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF6E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF6E7   Length              0005 (5)\n-6DF6E9   Flags               01 (1) 'Modification'\n-6DF6EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF6EE CENTRAL HEADER #763   02014B50 (33639248)\n-6DF6F2 Created Zip Spec      14 (20) '2.0'\n-6DF6F3 Created OS            00 (0) 'MS-DOS'\n-6DF6F4 Extract Zip Spec      14 (20) '2.0'\n-6DF6F5 Extract OS            00 (0) 'MS-DOS'\n-6DF6F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF6F8 Compression Method    0000 (0) 'Stored'\n-6DF6FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF6FE CRC                   1FDC8762 (534546274)\n-6DF702 Compressed Size       00000721 (1825)\n-6DF706 Uncompressed Size     00000721 (1825)\n-6DF70A Filename Length       0035 (53)\n-6DF70C Extra Length          0009 (9)\n-6DF70E Comment Length        0000 (0)\n-6DF710 Disk Start            0000 (0)\n-6DF712 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF714 Ext File Attributes   00000000 (0)\n-6DF718 Local Header Offset   0022D0ED (2281709)\n-6DF71C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF71C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF751 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF753   Length              0005 (5)\n-6DF755   Flags               01 (1) 'Modification'\n-6DF756   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF75A CENTRAL HEADER #764   02014B50 (33639248)\n-6DF75E Created Zip Spec      14 (20) '2.0'\n-6DF75F Created OS            00 (0) 'MS-DOS'\n-6DF760 Extract Zip Spec      14 (20) '2.0'\n-6DF761 Extract OS            00 (0) 'MS-DOS'\n-6DF762 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF764 Compression Method    0000 (0) 'Stored'\n-6DF766 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF76A CRC                   58015D22 (1476484386)\n-6DF76E Compressed Size       00000CF3 (3315)\n-6DF772 Uncompressed Size     00000CF3 (3315)\n-6DF776 Filename Length       0039 (57)\n-6DF778 Extra Length          0009 (9)\n-6DF77A Comment Length        0000 (0)\n-6DF77C Disk Start            0000 (0)\n-6DF77E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF780 Ext File Attributes   00000000 (0)\n-6DF784 Local Header Offset   0022D87A (2283642)\n-6DF788 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF788: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF7C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF7C3   Length              0005 (5)\n-6DF7C5   Flags               01 (1) 'Modification'\n-6DF7C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF7CA CENTRAL HEADER #765   02014B50 (33639248)\n-6DF7CE Created Zip Spec      14 (20) '2.0'\n-6DF7CF Created OS            00 (0) 'MS-DOS'\n-6DF7D0 Extract Zip Spec      14 (20) '2.0'\n-6DF7D1 Extract OS            00 (0) 'MS-DOS'\n-6DF7D2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF7D4 Compression Method    0000 (0) 'Stored'\n-6DF7D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF7DA CRC                   5529CB85 (1428802437)\n-6DF7DE Compressed Size       00000B6A (2922)\n-6DF7E2 Uncompressed Size     00000B6A (2922)\n-6DF7E6 Filename Length       003A (58)\n-6DF7E8 Extra Length          0009 (9)\n-6DF7EA Comment Length        0000 (0)\n-6DF7EC Disk Start            0000 (0)\n-6DF7EE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF7F0 Ext File Attributes   00000000 (0)\n-6DF7F4 Local Header Offset   0022E5DD (2287069)\n-6DF7F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF7F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF832 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF834   Length              0005 (5)\n-6DF836   Flags               01 (1) 'Modification'\n-6DF837   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF83B CENTRAL HEADER #766   02014B50 (33639248)\n-6DF83F Created Zip Spec      14 (20) '2.0'\n-6DF840 Created OS            00 (0) 'MS-DOS'\n-6DF841 Extract Zip Spec      14 (20) '2.0'\n-6DF842 Extract OS            00 (0) 'MS-DOS'\n-6DF843 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF845 Compression Method    0000 (0) 'Stored'\n-6DF847 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF84B CRC                   E3E7B767 (3823613799)\n-6DF84F Compressed Size       00000753 (1875)\n-6DF853 Uncompressed Size     00000753 (1875)\n-6DF857 Filename Length       003B (59)\n-6DF859 Extra Length          0009 (9)\n-6DF85B Comment Length        0000 (0)\n-6DF85D Disk Start            0000 (0)\n-6DF85F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF861 Ext File Attributes   00000000 (0)\n-6DF865 Local Header Offset   0022F1B8 (2290104)\n-6DF869 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF869: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF8A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF8A6   Length              0005 (5)\n-6DF8A8   Flags               01 (1) 'Modification'\n-6DF8A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF8AD CENTRAL HEADER #767   02014B50 (33639248)\n-6DF8B1 Created Zip Spec      14 (20) '2.0'\n-6DF8B2 Created OS            00 (0) 'MS-DOS'\n-6DF8B3 Extract Zip Spec      14 (20) '2.0'\n-6DF8B4 Extract OS            00 (0) 'MS-DOS'\n-6DF8B5 General Purpose Flag  0000 (0)\n-6DF8B7 Compression Method    0000 (0) 'Stored'\n-6DF8B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF8BD CRC                   00000000 (0)\n-6DF8C1 Compressed Size       00000000 (0)\n-6DF8C5 Uncompressed Size     00000000 (0)\n-6DF8C9 Filename Length       0027 (39)\n-6DF8CB Extra Length          0009 (9)\n-6DF8CD Comment Length        0000 (0)\n-6DF8CF Disk Start            0000 (0)\n-6DF8D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF8D3 Ext File Attributes   00000000 (0)\n-6DF8D7 Local Header Offset   0022F97D (2292093)\n-6DF8DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF8DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF902 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF904   Length              0005 (5)\n-6DF906   Flags               01 (1) 'Modification'\n-6DF907   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF90B CENTRAL HEADER #768   02014B50 (33639248)\n-6DF90F Created Zip Spec      14 (20) '2.0'\n-6DF910 Created OS            00 (0) 'MS-DOS'\n-6DF911 Extract Zip Spec      14 (20) '2.0'\n-6DF912 Extract OS            00 (0) 'MS-DOS'\n-6DF913 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF915 Compression Method    0000 (0) 'Stored'\n-6DF917 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF91B CRC                   33751F07 (863313671)\n-6DF91F Compressed Size       00000D59 (3417)\n-6DF923 Uncompressed Size     00000D59 (3417)\n-6DF927 Filename Length       003F (63)\n-6DF929 Extra Length          0009 (9)\n-6DF92B Comment Length        0000 (0)\n-6DF92D Disk Start            0000 (0)\n-6DF92F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF931 Ext File Attributes   00000000 (0)\n-6DF935 Local Header Offset   0022F9CB (2292171)\n-6DF939 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF939: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF978 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF97A   Length              0005 (5)\n-6DF97C   Flags               01 (1) 'Modification'\n-6DF97D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF981 CENTRAL HEADER #769   02014B50 (33639248)\n-6DF985 Created Zip Spec      14 (20) '2.0'\n-6DF986 Created OS            00 (0) 'MS-DOS'\n-6DF987 Extract Zip Spec      14 (20) '2.0'\n-6DF988 Extract OS            00 (0) 'MS-DOS'\n-6DF989 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DF98B Compression Method    0000 (0) 'Stored'\n-6DF98D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DF991 CRC                   B2B54D61 (2998226273)\n-6DF995 Compressed Size       00000B38 (2872)\n-6DF999 Uncompressed Size     00000B38 (2872)\n-6DF99D Filename Length       0040 (64)\n-6DF99F Extra Length          0009 (9)\n-6DF9A1 Comment Length        0000 (0)\n-6DF9A3 Disk Start            0000 (0)\n-6DF9A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DF9A7 Ext File Attributes   00000000 (0)\n-6DF9AB Local Header Offset   0023079A (2295706)\n-6DF9AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DF9AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DF9EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DF9F1   Length              0005 (5)\n-6DF9F3   Flags               01 (1) 'Modification'\n-6DF9F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DF9F8 CENTRAL HEADER #770   02014B50 (33639248)\n-6DF9FC Created Zip Spec      14 (20) '2.0'\n-6DF9FD Created OS            00 (0) 'MS-DOS'\n-6DF9FE Extract Zip Spec      14 (20) '2.0'\n-6DF9FF Extract OS            00 (0) 'MS-DOS'\n-6DFA00 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFA02 Compression Method    0000 (0) 'Stored'\n-6DFA04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFA08 CRC                   B5CFC99D (3050293661)\n-6DFA0C Compressed Size       000006EC (1772)\n-6DFA10 Uncompressed Size     000006EC (1772)\n-6DFA14 Filename Length       003D (61)\n-6DFA16 Extra Length          0009 (9)\n-6DFA18 Comment Length        0000 (0)\n-6DFA1A Disk Start            0000 (0)\n-6DFA1C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFA1E Ext File Attributes   00000000 (0)\n-6DFA22 Local Header Offset   00231349 (2298697)\n-6DFA26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFA26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFA63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFA65   Length              0005 (5)\n-6DFA67   Flags               01 (1) 'Modification'\n-6DFA68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFA6C CENTRAL HEADER #771   02014B50 (33639248)\n-6DFA70 Created Zip Spec      14 (20) '2.0'\n-6DFA71 Created OS            00 (0) 'MS-DOS'\n-6DFA72 Extract Zip Spec      14 (20) '2.0'\n-6DFA73 Extract OS            00 (0) 'MS-DOS'\n-6DFA74 General Purpose Flag  0000 (0)\n-6DFA76 Compression Method    0000 (0) 'Stored'\n-6DFA78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFA7C CRC                   00000000 (0)\n-6DFA80 Compressed Size       00000000 (0)\n-6DFA84 Uncompressed Size     00000000 (0)\n-6DFA88 Filename Length       002B (43)\n-6DFA8A Extra Length          0009 (9)\n-6DFA8C Comment Length        0000 (0)\n-6DFA8E Disk Start            0000 (0)\n-6DFA90 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFA92 Ext File Attributes   00000000 (0)\n-6DFA96 Local Header Offset   00231AA9 (2300585)\n-6DFA9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFA9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFAC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFAC7   Length              0005 (5)\n-6DFAC9   Flags               01 (1) 'Modification'\n-6DFACA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFACE CENTRAL HEADER #772   02014B50 (33639248)\n-6DFAD2 Created Zip Spec      14 (20) '2.0'\n-6DFAD3 Created OS            00 (0) 'MS-DOS'\n-6DFAD4 Extract Zip Spec      14 (20) '2.0'\n-6DFAD5 Extract OS            00 (0) 'MS-DOS'\n-6DFAD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFAD8 Compression Method    0000 (0) 'Stored'\n-6DFADA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFADE CRC                   D5F6B94F (3589716303)\n-6DFAE2 Compressed Size       00000D44 (3396)\n-6DFAE6 Uncompressed Size     00000D44 (3396)\n-6DFAEA Filename Length       0043 (67)\n-6DFAEC Extra Length          0009 (9)\n-6DFAEE Comment Length        0000 (0)\n-6DFAF0 Disk Start            0000 (0)\n-6DFAF2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFAF4 Ext File Attributes   00000000 (0)\n-6DFAF8 Local Header Offset   00231AFB (2300667)\n-6DFAFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFAFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFB3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFB41   Length              0005 (5)\n-6DFB43   Flags               01 (1) 'Modification'\n-6DFB44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFB48 CENTRAL HEADER #773   02014B50 (33639248)\n-6DFB4C Created Zip Spec      14 (20) '2.0'\n-6DFB4D Created OS            00 (0) 'MS-DOS'\n-6DFB4E Extract Zip Spec      14 (20) '2.0'\n-6DFB4F Extract OS            00 (0) 'MS-DOS'\n-6DFB50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFB52 Compression Method    0000 (0) 'Stored'\n-6DFB54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFB58 CRC                   DDF975D0 (3724113360)\n-6DFB5C Compressed Size       00000CCA (3274)\n-6DFB60 Uncompressed Size     00000CCA (3274)\n-6DFB64 Filename Length       0044 (68)\n-6DFB66 Extra Length          0009 (9)\n-6DFB68 Comment Length        0000 (0)\n-6DFB6A Disk Start            0000 (0)\n-6DFB6C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFB6E Ext File Attributes   00000000 (0)\n-6DFB72 Local Header Offset   002328B9 (2304185)\n-6DFB76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFB76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFBBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFBBC   Length              0005 (5)\n-6DFBBE   Flags               01 (1) 'Modification'\n-6DFBBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFBC3 CENTRAL HEADER #774   02014B50 (33639248)\n-6DFBC7 Created Zip Spec      14 (20) '2.0'\n-6DFBC8 Created OS            00 (0) 'MS-DOS'\n-6DFBC9 Extract Zip Spec      14 (20) '2.0'\n-6DFBCA Extract OS            00 (0) 'MS-DOS'\n-6DFBCB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFBCD Compression Method    0000 (0) 'Stored'\n-6DFBCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFBD3 CRC                   B8EAACB4 (3102387380)\n-6DFBD7 Compressed Size       000007BB (1979)\n-6DFBDB Uncompressed Size     000007BB (1979)\n-6DFBDF Filename Length       0045 (69)\n-6DFBE1 Extra Length          0009 (9)\n-6DFBE3 Comment Length        0000 (0)\n-6DFBE5 Disk Start            0000 (0)\n-6DFBE7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFBE9 Ext File Attributes   00000000 (0)\n-6DFBED Local Header Offset   002335FE (2307582)\n-6DFBF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFBF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFC36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFC38   Length              0005 (5)\n-6DFC3A   Flags               01 (1) 'Modification'\n-6DFC3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFC3F CENTRAL HEADER #775   02014B50 (33639248)\n-6DFC43 Created Zip Spec      14 (20) '2.0'\n-6DFC44 Created OS            00 (0) 'MS-DOS'\n-6DFC45 Extract Zip Spec      14 (20) '2.0'\n-6DFC46 Extract OS            00 (0) 'MS-DOS'\n-6DFC47 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFC49 Compression Method    0000 (0) 'Stored'\n-6DFC4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFC4F CRC                   A762DB85 (2808273797)\n-6DFC53 Compressed Size       00000487 (1159)\n-6DFC57 Uncompressed Size     00000487 (1159)\n-6DFC5B Filename Length       0049 (73)\n-6DFC5D Extra Length          0009 (9)\n-6DFC5F Comment Length        0000 (0)\n-6DFC61 Disk Start            0000 (0)\n-6DFC63 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFC65 Ext File Attributes   00000000 (0)\n-6DFC69 Local Header Offset   00233E35 (2309685)\n-6DFC6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFC6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFCB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFCB8   Length              0005 (5)\n-6DFCBA   Flags               01 (1) 'Modification'\n-6DFCBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFCBF CENTRAL HEADER #776   02014B50 (33639248)\n-6DFCC3 Created Zip Spec      14 (20) '2.0'\n-6DFCC4 Created OS            00 (0) 'MS-DOS'\n-6DFCC5 Extract Zip Spec      14 (20) '2.0'\n-6DFCC6 Extract OS            00 (0) 'MS-DOS'\n-6DFCC7 General Purpose Flag  0000 (0)\n-6DFCC9 Compression Method    0000 (0) 'Stored'\n-6DFCCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFCCF CRC                   00000000 (0)\n-6DFCD3 Compressed Size       00000000 (0)\n-6DFCD7 Uncompressed Size     00000000 (0)\n-6DFCDB Filename Length       0031 (49)\n-6DFCDD Extra Length          0009 (9)\n-6DFCDF Comment Length        0000 (0)\n-6DFCE1 Disk Start            0000 (0)\n-6DFCE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFCE5 Ext File Attributes   00000000 (0)\n-6DFCE9 Local Header Offset   0023433C (2310972)\n-6DFCED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFCED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFD1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFD20   Length              0005 (5)\n-6DFD22   Flags               01 (1) 'Modification'\n-6DFD23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFD27 CENTRAL HEADER #777   02014B50 (33639248)\n-6DFD2B Created Zip Spec      14 (20) '2.0'\n-6DFD2C Created OS            00 (0) 'MS-DOS'\n-6DFD2D Extract Zip Spec      14 (20) '2.0'\n-6DFD2E Extract OS            00 (0) 'MS-DOS'\n-6DFD2F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFD31 Compression Method    0000 (0) 'Stored'\n-6DFD33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFD37 CRC                   E10895F0 (3775436272)\n-6DFD3B Compressed Size       000005A8 (1448)\n-6DFD3F Uncompressed Size     000005A8 (1448)\n-6DFD43 Filename Length       0058 (88)\n-6DFD45 Extra Length          0009 (9)\n-6DFD47 Comment Length        0000 (0)\n-6DFD49 Disk Start            0000 (0)\n-6DFD4B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFD4D Ext File Attributes   00000000 (0)\n-6DFD51 Local Header Offset   00234394 (2311060)\n-6DFD55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFD55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFDAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFDAF   Length              0005 (5)\n-6DFDB1   Flags               01 (1) 'Modification'\n-6DFDB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFDB6 CENTRAL HEADER #778   02014B50 (33639248)\n-6DFDBA Created Zip Spec      14 (20) '2.0'\n-6DFDBB Created OS            00 (0) 'MS-DOS'\n-6DFDBC Extract Zip Spec      14 (20) '2.0'\n-6DFDBD Extract OS            00 (0) 'MS-DOS'\n-6DFDBE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFDC0 Compression Method    0000 (0) 'Stored'\n-6DFDC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFDC6 CRC                   EE1761D8 (3994509784)\n-6DFDCA Compressed Size       000004C6 (1222)\n-6DFDCE Uncompressed Size     000004C6 (1222)\n-6DFDD2 Filename Length       0057 (87)\n-6DFDD4 Extra Length          0009 (9)\n-6DFDD6 Comment Length        0000 (0)\n-6DFDD8 Disk Start            0000 (0)\n-6DFDDA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFDDC Ext File Attributes   00000000 (0)\n-6DFDE0 Local Header Offset   002349CB (2312651)\n-6DFDE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFDE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFE3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFE3D   Length              0005 (5)\n-6DFE3F   Flags               01 (1) 'Modification'\n-6DFE40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFE44 CENTRAL HEADER #779   02014B50 (33639248)\n-6DFE48 Created Zip Spec      14 (20) '2.0'\n-6DFE49 Created OS            00 (0) 'MS-DOS'\n-6DFE4A Extract Zip Spec      14 (20) '2.0'\n-6DFE4B Extract OS            00 (0) 'MS-DOS'\n-6DFE4C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFE4E Compression Method    0000 (0) 'Stored'\n-6DFE50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFE54 CRC                   FCEAC14E (4243243342)\n-6DFE58 Compressed Size       00000729 (1833)\n-6DFE5C Uncompressed Size     00000729 (1833)\n-6DFE60 Filename Length       0050 (80)\n-6DFE62 Extra Length          0009 (9)\n-6DFE64 Comment Length        0000 (0)\n-6DFE66 Disk Start            0000 (0)\n-6DFE68 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFE6A Ext File Attributes   00000000 (0)\n-6DFE6E Local Header Offset   00234F1F (2314015)\n-6DFE72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFE72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFEC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFEC4   Length              0005 (5)\n-6DFEC6   Flags               01 (1) 'Modification'\n-6DFEC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFECB CENTRAL HEADER #780   02014B50 (33639248)\n-6DFECF Created Zip Spec      14 (20) '2.0'\n-6DFED0 Created OS            00 (0) 'MS-DOS'\n-6DFED1 Extract Zip Spec      14 (20) '2.0'\n-6DFED2 Extract OS            00 (0) 'MS-DOS'\n-6DFED3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFED5 Compression Method    0000 (0) 'Stored'\n-6DFED7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFEDB CRC                   8464A9F5 (2221189621)\n-6DFEDF Compressed Size       00000892 (2194)\n-6DFEE3 Uncompressed Size     00000892 (2194)\n-6DFEE7 Filename Length       0059 (89)\n-6DFEE9 Extra Length          0009 (9)\n-6DFEEB Comment Length        0000 (0)\n-6DFEED Disk Start            0000 (0)\n-6DFEEF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFEF1 Ext File Attributes   00000000 (0)\n-6DFEF5 Local Header Offset   002356CF (2315983)\n-6DFEF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFEF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFF52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFF54   Length              0005 (5)\n-6DFF56   Flags               01 (1) 'Modification'\n-6DFF57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFF5B CENTRAL HEADER #781   02014B50 (33639248)\n-6DFF5F Created Zip Spec      14 (20) '2.0'\n-6DFF60 Created OS            00 (0) 'MS-DOS'\n-6DFF61 Extract Zip Spec      14 (20) '2.0'\n-6DFF62 Extract OS            00 (0) 'MS-DOS'\n-6DFF63 General Purpose Flag  0000 (0)\n-6DFF65 Compression Method    0000 (0) 'Stored'\n-6DFF67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFF6B CRC                   00000000 (0)\n-6DFF6F Compressed Size       00000000 (0)\n-6DFF73 Uncompressed Size     00000000 (0)\n-6DFF77 Filename Length       0027 (39)\n-6DFF79 Extra Length          0009 (9)\n-6DFF7B Comment Length        0000 (0)\n-6DFF7D Disk Start            0000 (0)\n-6DFF7F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFF81 Ext File Attributes   00000000 (0)\n-6DFF85 Local Header Offset   00235FF1 (2318321)\n-6DFF89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFF89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6DFFB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6DFFB2   Length              0005 (5)\n-6DFFB4   Flags               01 (1) 'Modification'\n-6DFFB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6DFFB9 CENTRAL HEADER #782   02014B50 (33639248)\n-6DFFBD Created Zip Spec      14 (20) '2.0'\n-6DFFBE Created OS            00 (0) 'MS-DOS'\n-6DFFBF Extract Zip Spec      14 (20) '2.0'\n-6DFFC0 Extract OS            00 (0) 'MS-DOS'\n-6DFFC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6DFFC3 Compression Method    0000 (0) 'Stored'\n-6DFFC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6DFFC9 CRC                   77A7867D (2007467645)\n-6DFFCD Compressed Size       000007A2 (1954)\n-6DFFD1 Uncompressed Size     000007A2 (1954)\n-6DFFD5 Filename Length       0046 (70)\n-6DFFD7 Extra Length          0009 (9)\n-6DFFD9 Comment Length        0000 (0)\n-6DFFDB Disk Start            0000 (0)\n-6DFFDD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6DFFDF Ext File Attributes   00000000 (0)\n-6DFFE3 Local Header Offset   0023603F (2318399)\n-6DFFE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6DFFE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E002D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E002F   Length              0005 (5)\n-6E0031   Flags               01 (1) 'Modification'\n-6E0032   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0036 CENTRAL HEADER #783   02014B50 (33639248)\n-6E003A Created Zip Spec      14 (20) '2.0'\n-6E003B Created OS            00 (0) 'MS-DOS'\n-6E003C Extract Zip Spec      14 (20) '2.0'\n-6E003D Extract OS            00 (0) 'MS-DOS'\n-6E003E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0040 Compression Method    0000 (0) 'Stored'\n-6E0042 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0046 CRC                   5433235C (1412637532)\n-6E004A Compressed Size       00000901 (2305)\n-6E004E Uncompressed Size     00000901 (2305)\n-6E0052 Filename Length       0046 (70)\n-6E0054 Extra Length          0009 (9)\n-6E0056 Comment Length        0000 (0)\n-6E0058 Disk Start            0000 (0)\n-6E005A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E005C Ext File Attributes   00000000 (0)\n-6E0060 Local Header Offset   0023685E (2320478)\n-6E0064 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0064: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E00AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E00AC   Length              0005 (5)\n-6E00AE   Flags               01 (1) 'Modification'\n-6E00AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E00B3 CENTRAL HEADER #784   02014B50 (33639248)\n-6E00B7 Created Zip Spec      14 (20) '2.0'\n-6E00B8 Created OS            00 (0) 'MS-DOS'\n-6E00B9 Extract Zip Spec      14 (20) '2.0'\n-6E00BA Extract OS            00 (0) 'MS-DOS'\n-6E00BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E00BD Compression Method    0000 (0) 'Stored'\n-6E00BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E00C3 CRC                   1A06EC84 (436661380)\n-6E00C7 Compressed Size       00000647 (1607)\n-6E00CB Uncompressed Size     00000647 (1607)\n-6E00CF Filename Length       0047 (71)\n-6E00D1 Extra Length          0009 (9)\n-6E00D3 Comment Length        0000 (0)\n-6E00D5 Disk Start            0000 (0)\n-6E00D7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E00D9 Ext File Attributes   00000000 (0)\n-6E00DD Local Header Offset   002371DC (2322908)\n-6E00E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E00E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0128 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E012A   Length              0005 (5)\n-6E012C   Flags               01 (1) 'Modification'\n-6E012D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0131 CENTRAL HEADER #785   02014B50 (33639248)\n-6E0135 Created Zip Spec      14 (20) '2.0'\n-6E0136 Created OS            00 (0) 'MS-DOS'\n-6E0137 Extract Zip Spec      14 (20) '2.0'\n-6E0138 Extract OS            00 (0) 'MS-DOS'\n-6E0139 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E013B Compression Method    0000 (0) 'Stored'\n-6E013D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0141 CRC                   EBC07089 (3955257481)\n-6E0145 Compressed Size       00000B84 (2948)\n-6E0149 Uncompressed Size     00000B84 (2948)\n-6E014D Filename Length       003B (59)\n-6E014F Extra Length          0009 (9)\n-6E0151 Comment Length        0000 (0)\n-6E0153 Disk Start            0000 (0)\n-6E0155 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0157 Ext File Attributes   00000000 (0)\n-6E015B Local Header Offset   002378A1 (2324641)\n-6E015F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E015F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E019A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E019C   Length              0005 (5)\n-6E019E   Flags               01 (1) 'Modification'\n-6E019F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E01A3 CENTRAL HEADER #786   02014B50 (33639248)\n-6E01A7 Created Zip Spec      14 (20) '2.0'\n-6E01A8 Created OS            00 (0) 'MS-DOS'\n-6E01A9 Extract Zip Spec      14 (20) '2.0'\n-6E01AA Extract OS            00 (0) 'MS-DOS'\n-6E01AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E01AD Compression Method    0000 (0) 'Stored'\n-6E01AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E01B3 CRC                   BE6D297E (3194825086)\n-6E01B7 Compressed Size       00000881 (2177)\n-6E01BB Uncompressed Size     00000881 (2177)\n-6E01BF Filename Length       003C (60)\n-6E01C1 Extra Length          0009 (9)\n-6E01C3 Comment Length        0000 (0)\n-6E01C5 Disk Start            0000 (0)\n-6E01C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E01C9 Ext File Attributes   00000000 (0)\n-6E01CD Local Header Offset   00238497 (2327703)\n-6E01D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E01D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E020D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E020F   Length              0005 (5)\n-6E0211   Flags               01 (1) 'Modification'\n-6E0212   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0216 CENTRAL HEADER #787   02014B50 (33639248)\n-6E021A Created Zip Spec      14 (20) '2.0'\n-6E021B Created OS            00 (0) 'MS-DOS'\n-6E021C Extract Zip Spec      14 (20) '2.0'\n-6E021D Extract OS            00 (0) 'MS-DOS'\n-6E021E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0220 Compression Method    0000 (0) 'Stored'\n-6E0222 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0226 CRC                   AD8F41D0 (2911846864)\n-6E022A Compressed Size       0000075D (1885)\n-6E022E Uncompressed Size     0000075D (1885)\n-6E0232 Filename Length       003D (61)\n-6E0234 Extra Length          0009 (9)\n-6E0236 Comment Length        0000 (0)\n-6E0238 Disk Start            0000 (0)\n-6E023A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E023C Ext File Attributes   00000000 (0)\n-6E0240 Local Header Offset   00238D8B (2329995)\n-6E0244 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0244: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0281 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0283   Length              0005 (5)\n-6E0285   Flags               01 (1) 'Modification'\n-6E0286   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E028A CENTRAL HEADER #788   02014B50 (33639248)\n-6E028E Created Zip Spec      14 (20) '2.0'\n-6E028F Created OS            00 (0) 'MS-DOS'\n-6E0290 Extract Zip Spec      14 (20) '2.0'\n-6E0291 Extract OS            00 (0) 'MS-DOS'\n-6E0292 General Purpose Flag  0000 (0)\n-6E0294 Compression Method    0000 (0) 'Stored'\n-6E0296 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E029A CRC                   00000000 (0)\n-6E029E Compressed Size       00000000 (0)\n-6E02A2 Uncompressed Size     00000000 (0)\n-6E02A6 Filename Length       0027 (39)\n-6E02A8 Extra Length          0009 (9)\n-6E02AA Comment Length        0000 (0)\n-6E02AC Disk Start            0000 (0)\n-6E02AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E02B0 Ext File Attributes   00000000 (0)\n-6E02B4 Local Header Offset   0023955C (2331996)\n-6E02B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E02B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E02DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E02E1   Length              0005 (5)\n-6E02E3   Flags               01 (1) 'Modification'\n-6E02E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E02E8 CENTRAL HEADER #789   02014B50 (33639248)\n-6E02EC Created Zip Spec      14 (20) '2.0'\n-6E02ED Created OS            00 (0) 'MS-DOS'\n-6E02EE Extract Zip Spec      14 (20) '2.0'\n-6E02EF Extract OS            00 (0) 'MS-DOS'\n-6E02F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E02F2 Compression Method    0000 (0) 'Stored'\n-6E02F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E02F8 CRC                   96641300 (2523140864)\n-6E02FC Compressed Size       00000A4F (2639)\n-6E0300 Uncompressed Size     00000A4F (2639)\n-6E0304 Filename Length       003A (58)\n-6E0306 Extra Length          0009 (9)\n-6E0308 Comment Length        0000 (0)\n-6E030A Disk Start            0000 (0)\n-6E030C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E030E Ext File Attributes   00000000 (0)\n-6E0312 Local Header Offset   002395AA (2332074)\n-6E0316 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0316: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0350 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0352   Length              0005 (5)\n-6E0354   Flags               01 (1) 'Modification'\n-6E0355   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0359 CENTRAL HEADER #790   02014B50 (33639248)\n-6E035D Created Zip Spec      14 (20) '2.0'\n-6E035E Created OS            00 (0) 'MS-DOS'\n-6E035F Extract Zip Spec      14 (20) '2.0'\n-6E0360 Extract OS            00 (0) 'MS-DOS'\n-6E0361 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0363 Compression Method    0000 (0) 'Stored'\n-6E0365 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0369 CRC                   70240B76 (1881410422)\n-6E036D Compressed Size       000011F6 (4598)\n-6E0371 Uncompressed Size     000011F6 (4598)\n-6E0375 Filename Length       003B (59)\n-6E0377 Extra Length          0009 (9)\n-6E0379 Comment Length        0000 (0)\n-6E037B Disk Start            0000 (0)\n-6E037D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E037F Ext File Attributes   00000000 (0)\n-6E0383 Local Header Offset   0023A06A (2334826)\n-6E0387 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0387: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E03C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E03C4   Length              0005 (5)\n-6E03C6   Flags               01 (1) 'Modification'\n-6E03C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E03CB CENTRAL HEADER #791   02014B50 (33639248)\n-6E03CF Created Zip Spec      14 (20) '2.0'\n-6E03D0 Created OS            00 (0) 'MS-DOS'\n-6E03D1 Extract Zip Spec      14 (20) '2.0'\n-6E03D2 Extract OS            00 (0) 'MS-DOS'\n-6E03D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E03D5 Compression Method    0000 (0) 'Stored'\n-6E03D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E03DB CRC                   8E4DF810 (2387474448)\n-6E03DF Compressed Size       00000CEA (3306)\n-6E03E3 Uncompressed Size     00000CEA (3306)\n-6E03E7 Filename Length       003C (60)\n-6E03E9 Extra Length          0009 (9)\n-6E03EB Comment Length        0000 (0)\n-6E03ED Disk Start            0000 (0)\n-6E03EF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E03F1 Ext File Attributes   00000000 (0)\n-6E03F5 Local Header Offset   0023B2D2 (2339538)\n-6E03F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E03F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0435 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0437   Length              0005 (5)\n-6E0439   Flags               01 (1) 'Modification'\n-6E043A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E043E CENTRAL HEADER #792   02014B50 (33639248)\n-6E0442 Created Zip Spec      14 (20) '2.0'\n-6E0443 Created OS            00 (0) 'MS-DOS'\n-6E0444 Extract Zip Spec      14 (20) '2.0'\n-6E0445 Extract OS            00 (0) 'MS-DOS'\n-6E0446 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0448 Compression Method    0000 (0) 'Stored'\n-6E044A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E044E CRC                   BA9B880B (3130755083)\n-6E0452 Compressed Size       0000079F (1951)\n-6E0456 Uncompressed Size     0000079F (1951)\n-6E045A Filename Length       003D (61)\n-6E045C Extra Length          0009 (9)\n-6E045E Comment Length        0000 (0)\n-6E0460 Disk Start            0000 (0)\n-6E0462 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0464 Ext File Attributes   00000000 (0)\n-6E0468 Local Header Offset   0023C02F (2342959)\n-6E046C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E046C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E04A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E04AB   Length              0005 (5)\n-6E04AD   Flags               01 (1) 'Modification'\n-6E04AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E04B2 CENTRAL HEADER #793   02014B50 (33639248)\n-6E04B6 Created Zip Spec      14 (20) '2.0'\n-6E04B7 Created OS            00 (0) 'MS-DOS'\n-6E04B8 Extract Zip Spec      14 (20) '2.0'\n-6E04B9 Extract OS            00 (0) 'MS-DOS'\n-6E04BA General Purpose Flag  0000 (0)\n-6E04BC Compression Method    0000 (0) 'Stored'\n-6E04BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E04C2 CRC                   00000000 (0)\n-6E04C6 Compressed Size       00000000 (0)\n-6E04CA Uncompressed Size     00000000 (0)\n-6E04CE Filename Length       0031 (49)\n-6E04D0 Extra Length          0009 (9)\n-6E04D2 Comment Length        0000 (0)\n-6E04D4 Disk Start            0000 (0)\n-6E04D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E04D8 Ext File Attributes   00000000 (0)\n-6E04DC Local Header Offset   0023C842 (2345026)\n-6E04E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E04E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0511 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0513   Length              0005 (5)\n-6E0515   Flags               01 (1) 'Modification'\n-6E0516   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E051A CENTRAL HEADER #794   02014B50 (33639248)\n-6E051E Created Zip Spec      14 (20) '2.0'\n-6E051F Created OS            00 (0) 'MS-DOS'\n-6E0520 Extract Zip Spec      14 (20) '2.0'\n-6E0521 Extract OS            00 (0) 'MS-DOS'\n-6E0522 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0524 Compression Method    0000 (0) 'Stored'\n-6E0526 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E052A CRC                   8FAE8E58 (2410581592)\n-6E052E Compressed Size       000012B7 (4791)\n-6E0532 Uncompressed Size     000012B7 (4791)\n-6E0536 Filename Length       0046 (70)\n-6E0538 Extra Length          0009 (9)\n-6E053A Comment Length        0000 (0)\n-6E053C Disk Start            0000 (0)\n-6E053E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0540 Ext File Attributes   00000000 (0)\n-6E0544 Local Header Offset   0023C89A (2345114)\n-6E0548 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0548: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E058E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0590   Length              0005 (5)\n-6E0592   Flags               01 (1) 'Modification'\n-6E0593   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0597 CENTRAL HEADER #795   02014B50 (33639248)\n-6E059B Created Zip Spec      14 (20) '2.0'\n-6E059C Created OS            00 (0) 'MS-DOS'\n-6E059D Extract Zip Spec      14 (20) '2.0'\n-6E059E Extract OS            00 (0) 'MS-DOS'\n-6E059F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E05A1 Compression Method    0000 (0) 'Stored'\n-6E05A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E05A7 CRC                   49D1BF52 (1238482770)\n-6E05AB Compressed Size       00000CDD (3293)\n-6E05AF Uncompressed Size     00000CDD (3293)\n-6E05B3 Filename Length       0047 (71)\n-6E05B5 Extra Length          0009 (9)\n-6E05B7 Comment Length        0000 (0)\n-6E05B9 Disk Start            0000 (0)\n-6E05BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E05BD Ext File Attributes   00000000 (0)\n-6E05C1 Local Header Offset   0023DBCE (2350030)\n-6E05C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E05C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E060C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E060E   Length              0005 (5)\n-6E0610   Flags               01 (1) 'Modification'\n-6E0611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0615 CENTRAL HEADER #796   02014B50 (33639248)\n-6E0619 Created Zip Spec      14 (20) '2.0'\n-6E061A Created OS            00 (0) 'MS-DOS'\n-6E061B Extract Zip Spec      14 (20) '2.0'\n-6E061C Extract OS            00 (0) 'MS-DOS'\n-6E061D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E061F Compression Method    0000 (0) 'Stored'\n-6E0621 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0625 CRC                   05BCA175 (96248181)\n-6E0629 Compressed Size       00000799 (1945)\n-6E062D Uncompressed Size     00000799 (1945)\n-6E0631 Filename Length       0048 (72)\n-6E0633 Extra Length          0009 (9)\n-6E0635 Comment Length        0000 (0)\n-6E0637 Disk Start            0000 (0)\n-6E0639 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E063B Ext File Attributes   00000000 (0)\n-6E063F Local Header Offset   0023E929 (2353449)\n-6E0643 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0643: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E068B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E068D   Length              0005 (5)\n-6E068F   Flags               01 (1) 'Modification'\n-6E0690   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0694 CENTRAL HEADER #797   02014B50 (33639248)\n-6E0698 Created Zip Spec      14 (20) '2.0'\n-6E0699 Created OS            00 (0) 'MS-DOS'\n-6E069A Extract Zip Spec      14 (20) '2.0'\n-6E069B Extract OS            00 (0) 'MS-DOS'\n-6E069C General Purpose Flag  0000 (0)\n-6E069E Compression Method    0000 (0) 'Stored'\n-6E06A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E06A4 CRC                   00000000 (0)\n-6E06A8 Compressed Size       00000000 (0)\n-6E06AC Uncompressed Size     00000000 (0)\n-6E06B0 Filename Length       002D (45)\n-6E06B2 Extra Length          0009 (9)\n-6E06B4 Comment Length        0000 (0)\n-6E06B6 Disk Start            0000 (0)\n-6E06B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E06BA Ext File Attributes   00000000 (0)\n-6E06BE Local Header Offset   0023F141 (2355521)\n-6E06C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E06C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E06EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E06F1   Length              0005 (5)\n-6E06F3   Flags               01 (1) 'Modification'\n-6E06F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E06F8 CENTRAL HEADER #798   02014B50 (33639248)\n-6E06FC Created Zip Spec      14 (20) '2.0'\n-6E06FD Created OS            00 (0) 'MS-DOS'\n-6E06FE Extract Zip Spec      14 (20) '2.0'\n-6E06FF Extract OS            00 (0) 'MS-DOS'\n-6E0700 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0702 Compression Method    0000 (0) 'Stored'\n-6E0704 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0708 CRC                   300B4DD6 (806047190)\n-6E070C Compressed Size       000016B2 (5810)\n-6E0710 Uncompressed Size     000016B2 (5810)\n-6E0714 Filename Length       0045 (69)\n-6E0716 Extra Length          0009 (9)\n-6E0718 Comment Length        0000 (0)\n-6E071A Disk Start            0000 (0)\n-6E071C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E071E Ext File Attributes   00000000 (0)\n-6E0722 Local Header Offset   0023F195 (2355605)\n-6E0726 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0726: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E076B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E076D   Length              0005 (5)\n-6E076F   Flags               01 (1) 'Modification'\n-6E0770   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0774 CENTRAL HEADER #799   02014B50 (33639248)\n-6E0778 Created Zip Spec      14 (20) '2.0'\n-6E0779 Created OS            00 (0) 'MS-DOS'\n-6E077A Extract Zip Spec      14 (20) '2.0'\n-6E077B Extract OS            00 (0) 'MS-DOS'\n-6E077C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E077E Compression Method    0000 (0) 'Stored'\n-6E0780 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0784 CRC                   F7853FBB (4152704955)\n-6E0788 Compressed Size       000005F7 (1527)\n-6E078C Uncompressed Size     000005F7 (1527)\n-6E0790 Filename Length       003B (59)\n-6E0792 Extra Length          0009 (9)\n-6E0794 Comment Length        0000 (0)\n-6E0796 Disk Start            0000 (0)\n-6E0798 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E079A Ext File Attributes   00000000 (0)\n-6E079E Local Header Offset   002408C3 (2361539)\n-6E07A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E07A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E07DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E07DF   Length              0005 (5)\n-6E07E1   Flags               01 (1) 'Modification'\n-6E07E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E07E6 CENTRAL HEADER #800   02014B50 (33639248)\n-6E07EA Created Zip Spec      14 (20) '2.0'\n-6E07EB Created OS            00 (0) 'MS-DOS'\n-6E07EC Extract Zip Spec      14 (20) '2.0'\n-6E07ED Extract OS            00 (0) 'MS-DOS'\n-6E07EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E07F0 Compression Method    0000 (0) 'Stored'\n-6E07F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E07F6 CRC                   E7186373 (3877135219)\n-6E07FA Compressed Size       00000585 (1413)\n-6E07FE Uncompressed Size     00000585 (1413)\n-6E0802 Filename Length       0043 (67)\n-6E0804 Extra Length          0009 (9)\n-6E0806 Comment Length        0000 (0)\n-6E0808 Disk Start            0000 (0)\n-6E080A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E080C Ext File Attributes   00000000 (0)\n-6E0810 Local Header Offset   00240F2C (2363180)\n-6E0814 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0814: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0857 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0859   Length              0005 (5)\n-6E085B   Flags               01 (1) 'Modification'\n-6E085C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0860 CENTRAL HEADER #801   02014B50 (33639248)\n-6E0864 Created Zip Spec      14 (20) '2.0'\n-6E0865 Created OS            00 (0) 'MS-DOS'\n-6E0866 Extract Zip Spec      14 (20) '2.0'\n-6E0867 Extract OS            00 (0) 'MS-DOS'\n-6E0868 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E086A Compression Method    0000 (0) 'Stored'\n-6E086C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0870 CRC                   AB66324F (2875601487)\n-6E0874 Compressed Size       00000460 (1120)\n-6E0878 Uncompressed Size     00000460 (1120)\n-6E087C Filename Length       0046 (70)\n-6E087E Extra Length          0009 (9)\n-6E0880 Comment Length        0000 (0)\n-6E0882 Disk Start            0000 (0)\n-6E0884 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0886 Ext File Attributes   00000000 (0)\n-6E088A Local Header Offset   0024152B (2364715)\n-6E088E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E088E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E08D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E08D6   Length              0005 (5)\n-6E08D8   Flags               01 (1) 'Modification'\n-6E08D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E08DD CENTRAL HEADER #802   02014B50 (33639248)\n-6E08E1 Created Zip Spec      14 (20) '2.0'\n-6E08E2 Created OS            00 (0) 'MS-DOS'\n-6E08E3 Extract Zip Spec      14 (20) '2.0'\n-6E08E4 Extract OS            00 (0) 'MS-DOS'\n-6E08E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E08E7 Compression Method    0000 (0) 'Stored'\n-6E08E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E08ED CRC                   A5D7D6FA (2782385914)\n-6E08F1 Compressed Size       00000516 (1302)\n-6E08F5 Uncompressed Size     00000516 (1302)\n-6E08F9 Filename Length       0048 (72)\n-6E08FB Extra Length          0009 (9)\n-6E08FD Comment Length        0000 (0)\n-6E08FF Disk Start            0000 (0)\n-6E0901 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0903 Ext File Attributes   00000000 (0)\n-6E0907 Local Header Offset   00241A08 (2365960)\n-6E090B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E090B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0953 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0955   Length              0005 (5)\n-6E0957   Flags               01 (1) 'Modification'\n-6E0958   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E095C CENTRAL HEADER #803   02014B50 (33639248)\n-6E0960 Created Zip Spec      14 (20) '2.0'\n-6E0961 Created OS            00 (0) 'MS-DOS'\n-6E0962 Extract Zip Spec      14 (20) '2.0'\n-6E0963 Extract OS            00 (0) 'MS-DOS'\n-6E0964 General Purpose Flag  0000 (0)\n-6E0966 Compression Method    0000 (0) 'Stored'\n-6E0968 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E096C CRC                   00000000 (0)\n-6E0970 Compressed Size       00000000 (0)\n-6E0974 Uncompressed Size     00000000 (0)\n-6E0978 Filename Length       002D (45)\n-6E097A Extra Length          0009 (9)\n-6E097C Comment Length        0000 (0)\n-6E097E Disk Start            0000 (0)\n-6E0980 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0982 Ext File Attributes   00000000 (0)\n-6E0986 Local Header Offset   00241F9D (2367389)\n-6E098A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E098A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E09B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E09B9   Length              0005 (5)\n-6E09BB   Flags               01 (1) 'Modification'\n-6E09BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E09C0 CENTRAL HEADER #804   02014B50 (33639248)\n-6E09C4 Created Zip Spec      14 (20) '2.0'\n-6E09C5 Created OS            00 (0) 'MS-DOS'\n-6E09C6 Extract Zip Spec      14 (20) '2.0'\n-6E09C7 Extract OS            00 (0) 'MS-DOS'\n-6E09C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E09CA Compression Method    0000 (0) 'Stored'\n-6E09CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E09D0 CRC                   6029E0CC (1613357260)\n-6E09D4 Compressed Size       00000D7E (3454)\n-6E09D8 Uncompressed Size     00000D7E (3454)\n-6E09DC Filename Length       0047 (71)\n-6E09DE Extra Length          0009 (9)\n-6E09E0 Comment Length        0000 (0)\n-6E09E2 Disk Start            0000 (0)\n-6E09E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E09E6 Ext File Attributes   00000000 (0)\n-6E09EA Local Header Offset   00241FF1 (2367473)\n-6E09EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E09EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0A35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0A37   Length              0005 (5)\n-6E0A39   Flags               01 (1) 'Modification'\n-6E0A3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0A3E CENTRAL HEADER #805   02014B50 (33639248)\n-6E0A42 Created Zip Spec      14 (20) '2.0'\n-6E0A43 Created OS            00 (0) 'MS-DOS'\n-6E0A44 Extract Zip Spec      14 (20) '2.0'\n-6E0A45 Extract OS            00 (0) 'MS-DOS'\n-6E0A46 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0A48 Compression Method    0000 (0) 'Stored'\n-6E0A4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0A4E CRC                   5EB75116 (1589072150)\n-6E0A52 Compressed Size       00000CEE (3310)\n-6E0A56 Uncompressed Size     00000CEE (3310)\n-6E0A5A Filename Length       0048 (72)\n-6E0A5C Extra Length          0009 (9)\n-6E0A5E Comment Length        0000 (0)\n-6E0A60 Disk Start            0000 (0)\n-6E0A62 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0A64 Ext File Attributes   00000000 (0)\n-6E0A68 Local Header Offset   00242DED (2371053)\n-6E0A6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0A6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0AB6   Length              0005 (5)\n-6E0AB8   Flags               01 (1) 'Modification'\n-6E0AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0ABD CENTRAL HEADER #806   02014B50 (33639248)\n-6E0AC1 Created Zip Spec      14 (20) '2.0'\n-6E0AC2 Created OS            00 (0) 'MS-DOS'\n-6E0AC3 Extract Zip Spec      14 (20) '2.0'\n-6E0AC4 Extract OS            00 (0) 'MS-DOS'\n-6E0AC5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0AC7 Compression Method    0000 (0) 'Stored'\n-6E0AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0ACD CRC                   2DE55F52 (770006866)\n-6E0AD1 Compressed Size       000007A3 (1955)\n-6E0AD5 Uncompressed Size     000007A3 (1955)\n-6E0AD9 Filename Length       0049 (73)\n-6E0ADB Extra Length          0009 (9)\n-6E0ADD Comment Length        0000 (0)\n-6E0ADF Disk Start            0000 (0)\n-6E0AE1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0AE3 Ext File Attributes   00000000 (0)\n-6E0AE7 Local Header Offset   00243B5A (2374490)\n-6E0AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0B34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0B36   Length              0005 (5)\n-6E0B38   Flags               01 (1) 'Modification'\n-6E0B39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0B3D CENTRAL HEADER #807   02014B50 (33639248)\n-6E0B41 Created Zip Spec      14 (20) '2.0'\n-6E0B42 Created OS            00 (0) 'MS-DOS'\n-6E0B43 Extract Zip Spec      14 (20) '2.0'\n-6E0B44 Extract OS            00 (0) 'MS-DOS'\n-6E0B45 General Purpose Flag  0000 (0)\n-6E0B47 Compression Method    0000 (0) 'Stored'\n-6E0B49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0B4D CRC                   00000000 (0)\n-6E0B51 Compressed Size       00000000 (0)\n-6E0B55 Uncompressed Size     00000000 (0)\n-6E0B59 Filename Length       002B (43)\n-6E0B5B Extra Length          0009 (9)\n-6E0B5D Comment Length        0000 (0)\n-6E0B5F Disk Start            0000 (0)\n-6E0B61 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0B63 Ext File Attributes   00000000 (0)\n-6E0B67 Local Header Offset   0024437D (2376573)\n-6E0B6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0B6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0B96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0B98   Length              0005 (5)\n-6E0B9A   Flags               01 (1) 'Modification'\n-6E0B9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0B9F CENTRAL HEADER #808   02014B50 (33639248)\n-6E0BA3 Created Zip Spec      14 (20) '2.0'\n-6E0BA4 Created OS            00 (0) 'MS-DOS'\n-6E0BA5 Extract Zip Spec      14 (20) '2.0'\n-6E0BA6 Extract OS            00 (0) 'MS-DOS'\n-6E0BA7 General Purpose Flag  0000 (0)\n-6E0BA9 Compression Method    0000 (0) 'Stored'\n-6E0BAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0BAF CRC                   00000000 (0)\n-6E0BB3 Compressed Size       00000000 (0)\n-6E0BB7 Uncompressed Size     00000000 (0)\n-6E0BBB Filename Length       0033 (51)\n-6E0BBD Extra Length          0009 (9)\n-6E0BBF Comment Length        0000 (0)\n-6E0BC1 Disk Start            0000 (0)\n-6E0BC3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0BC5 Ext File Attributes   00000000 (0)\n-6E0BC9 Local Header Offset   002443CF (2376655)\n-6E0BCD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0BCD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0C00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0C02   Length              0005 (5)\n-6E0C04   Flags               01 (1) 'Modification'\n-6E0C05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0C09 CENTRAL HEADER #809   02014B50 (33639248)\n-6E0C0D Created Zip Spec      14 (20) '2.0'\n-6E0C0E Created OS            00 (0) 'MS-DOS'\n-6E0C0F Extract Zip Spec      14 (20) '2.0'\n-6E0C10 Extract OS            00 (0) 'MS-DOS'\n-6E0C11 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0C13 Compression Method    0000 (0) 'Stored'\n-6E0C15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0C19 CRC                   F393F7AB (4086560683)\n-6E0C1D Compressed Size       000014F7 (5367)\n-6E0C21 Uncompressed Size     000014F7 (5367)\n-6E0C25 Filename Length       0056 (86)\n-6E0C27 Extra Length          0009 (9)\n-6E0C29 Comment Length        0000 (0)\n-6E0C2B Disk Start            0000 (0)\n-6E0C2D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0C2F Ext File Attributes   00000000 (0)\n-6E0C33 Local Header Offset   00244429 (2376745)\n-6E0C37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0C37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0C8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0C8F   Length              0005 (5)\n-6E0C91   Flags               01 (1) 'Modification'\n-6E0C92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0C96 CENTRAL HEADER #810   02014B50 (33639248)\n-6E0C9A Created Zip Spec      14 (20) '2.0'\n-6E0C9B Created OS            00 (0) 'MS-DOS'\n-6E0C9C Extract Zip Spec      14 (20) '2.0'\n-6E0C9D Extract OS            00 (0) 'MS-DOS'\n-6E0C9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0CA0 Compression Method    0000 (0) 'Stored'\n-6E0CA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0CA6 CRC                   836D6DDB (2204986843)\n-6E0CAA Compressed Size       000014E0 (5344)\n-6E0CAE Uncompressed Size     000014E0 (5344)\n-6E0CB2 Filename Length       0057 (87)\n-6E0CB4 Extra Length          0009 (9)\n-6E0CB6 Comment Length        0000 (0)\n-6E0CB8 Disk Start            0000 (0)\n-6E0CBA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0CBC Ext File Attributes   00000000 (0)\n-6E0CC0 Local Header Offset   002459AD (2382253)\n-6E0CC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0CC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0D1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0D1D   Length              0005 (5)\n-6E0D1F   Flags               01 (1) 'Modification'\n-6E0D20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0D24 CENTRAL HEADER #811   02014B50 (33639248)\n-6E0D28 Created Zip Spec      14 (20) '2.0'\n-6E0D29 Created OS            00 (0) 'MS-DOS'\n-6E0D2A Extract Zip Spec      14 (20) '2.0'\n-6E0D2B Extract OS            00 (0) 'MS-DOS'\n-6E0D2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0D2E Compression Method    0000 (0) 'Stored'\n-6E0D30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0D34 CRC                   B1C72E69 (2982620777)\n-6E0D38 Compressed Size       0000077E (1918)\n-6E0D3C Uncompressed Size     0000077E (1918)\n-6E0D40 Filename Length       0058 (88)\n-6E0D42 Extra Length          0009 (9)\n-6E0D44 Comment Length        0000 (0)\n-6E0D46 Disk Start            0000 (0)\n-6E0D48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0D4A Ext File Attributes   00000000 (0)\n-6E0D4E Local Header Offset   00246F1B (2387739)\n-6E0D52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0D52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0DAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0DAC   Length              0005 (5)\n-6E0DAE   Flags               01 (1) 'Modification'\n-6E0DAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0DB3 CENTRAL HEADER #812   02014B50 (33639248)\n-6E0DB7 Created Zip Spec      14 (20) '2.0'\n-6E0DB8 Created OS            00 (0) 'MS-DOS'\n-6E0DB9 Extract Zip Spec      14 (20) '2.0'\n-6E0DBA Extract OS            00 (0) 'MS-DOS'\n-6E0DBB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0DBD Compression Method    0000 (0) 'Stored'\n-6E0DBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0DC3 CRC                   78006A1A (2013293082)\n-6E0DC7 Compressed Size       000012A8 (4776)\n-6E0DCB Uncompressed Size     000012A8 (4776)\n-6E0DCF Filename Length       0052 (82)\n-6E0DD1 Extra Length          0009 (9)\n-6E0DD3 Comment Length        0000 (0)\n-6E0DD5 Disk Start            0000 (0)\n-6E0DD7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0DD9 Ext File Attributes   00000000 (0)\n-6E0DDD Local Header Offset   00247728 (2389800)\n-6E0DE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0DE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0E35   Length              0005 (5)\n-6E0E37   Flags               01 (1) 'Modification'\n-6E0E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0E3C CENTRAL HEADER #813   02014B50 (33639248)\n-6E0E40 Created Zip Spec      14 (20) '2.0'\n-6E0E41 Created OS            00 (0) 'MS-DOS'\n-6E0E42 Extract Zip Spec      14 (20) '2.0'\n-6E0E43 Extract OS            00 (0) 'MS-DOS'\n-6E0E44 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0E46 Compression Method    0000 (0) 'Stored'\n-6E0E48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0E4C CRC                   E8DE57DA (3906885594)\n-6E0E50 Compressed Size       00001501 (5377)\n-6E0E54 Uncompressed Size     00001501 (5377)\n-6E0E58 Filename Length       0053 (83)\n-6E0E5A Extra Length          0009 (9)\n-6E0E5C Comment Length        0000 (0)\n-6E0E5E Disk Start            0000 (0)\n-6E0E60 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0E62 Ext File Attributes   00000000 (0)\n-6E0E66 Local Header Offset   00248A59 (2394713)\n-6E0E6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0E6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0EBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0EBF   Length              0005 (5)\n-6E0EC1   Flags               01 (1) 'Modification'\n-6E0EC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0EC6 CENTRAL HEADER #814   02014B50 (33639248)\n-6E0ECA Created Zip Spec      14 (20) '2.0'\n-6E0ECB Created OS            00 (0) 'MS-DOS'\n-6E0ECC Extract Zip Spec      14 (20) '2.0'\n-6E0ECD Extract OS            00 (0) 'MS-DOS'\n-6E0ECE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0ED0 Compression Method    0000 (0) 'Stored'\n-6E0ED2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0ED6 CRC                   DB97F7FB (3684169723)\n-6E0EDA Compressed Size       00000987 (2439)\n-6E0EDE Uncompressed Size     00000987 (2439)\n-6E0EE2 Filename Length       0054 (84)\n-6E0EE4 Extra Length          0009 (9)\n-6E0EE6 Comment Length        0000 (0)\n-6E0EE8 Disk Start            0000 (0)\n-6E0EEA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0EEC Ext File Attributes   00000000 (0)\n-6E0EF0 Local Header Offset   00249FE4 (2400228)\n-6E0EF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0EF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0F48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0F4A   Length              0005 (5)\n-6E0F4C   Flags               01 (1) 'Modification'\n-6E0F4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0F51 CENTRAL HEADER #815   02014B50 (33639248)\n-6E0F55 Created Zip Spec      14 (20) '2.0'\n-6E0F56 Created OS            00 (0) 'MS-DOS'\n-6E0F57 Extract Zip Spec      14 (20) '2.0'\n-6E0F58 Extract OS            00 (0) 'MS-DOS'\n-6E0F59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0F5B Compression Method    0000 (0) 'Stored'\n-6E0F5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0F61 CRC                   FACFCF03 (4207922947)\n-6E0F65 Compressed Size       00001FCC (8140)\n-6E0F69 Uncompressed Size     00001FCC (8140)\n-6E0F6D Filename Length       0045 (69)\n-6E0F6F Extra Length          0009 (9)\n-6E0F71 Comment Length        0000 (0)\n-6E0F73 Disk Start            0000 (0)\n-6E0F75 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0F77 Ext File Attributes   00000000 (0)\n-6E0F7B Local Header Offset   0024A9F6 (2402806)\n-6E0F7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0F7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E0FC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E0FC6   Length              0005 (5)\n-6E0FC8   Flags               01 (1) 'Modification'\n-6E0FC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E0FCD CENTRAL HEADER #816   02014B50 (33639248)\n-6E0FD1 Created Zip Spec      14 (20) '2.0'\n-6E0FD2 Created OS            00 (0) 'MS-DOS'\n-6E0FD3 Extract Zip Spec      14 (20) '2.0'\n-6E0FD4 Extract OS            00 (0) 'MS-DOS'\n-6E0FD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E0FD7 Compression Method    0000 (0) 'Stored'\n-6E0FD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E0FDD CRC                   8EB7D7DD (2394413021)\n-6E0FE1 Compressed Size       00000A11 (2577)\n-6E0FE5 Uncompressed Size     00000A11 (2577)\n-6E0FE9 Filename Length       0050 (80)\n-6E0FEB Extra Length          0009 (9)\n-6E0FED Comment Length        0000 (0)\n-6E0FEF Disk Start            0000 (0)\n-6E0FF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E0FF3 Ext File Attributes   00000000 (0)\n-6E0FF7 Local Header Offset   0024CA3E (2411070)\n-6E0FFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E0FFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E104B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E104D   Length              0005 (5)\n-6E104F   Flags               01 (1) 'Modification'\n-6E1050   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1054 CENTRAL HEADER #817   02014B50 (33639248)\n-6E1058 Created Zip Spec      14 (20) '2.0'\n-6E1059 Created OS            00 (0) 'MS-DOS'\n-6E105A Extract Zip Spec      14 (20) '2.0'\n-6E105B Extract OS            00 (0) 'MS-DOS'\n-6E105C General Purpose Flag  0000 (0)\n-6E105E Compression Method    0000 (0) 'Stored'\n-6E1060 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1064 CRC                   00000000 (0)\n-6E1068 Compressed Size       00000000 (0)\n-6E106C Uncompressed Size     00000000 (0)\n-6E1070 Filename Length       003B (59)\n-6E1072 Extra Length          0009 (9)\n-6E1074 Comment Length        0000 (0)\n-6E1076 Disk Start            0000 (0)\n-6E1078 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E107A Ext File Attributes   00000000 (0)\n-6E107E Local Header Offset   0024D4D6 (2413782)\n-6E1082 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1082: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E10BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E10BF   Length              0005 (5)\n-6E10C1   Flags               01 (1) 'Modification'\n-6E10C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E10C6 CENTRAL HEADER #818   02014B50 (33639248)\n-6E10CA Created Zip Spec      14 (20) '2.0'\n-6E10CB Created OS            00 (0) 'MS-DOS'\n-6E10CC Extract Zip Spec      14 (20) '2.0'\n-6E10CD Extract OS            00 (0) 'MS-DOS'\n-6E10CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E10D0 Compression Method    0000 (0) 'Stored'\n-6E10D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E10D6 CRC                   3E2D4260 (1043153504)\n-6E10DA Compressed Size       00007BD0 (31696)\n-6E10DE Uncompressed Size     00007BD0 (31696)\n-6E10E2 Filename Length       0048 (72)\n-6E10E4 Extra Length          0009 (9)\n-6E10E6 Comment Length        0000 (0)\n-6E10E8 Disk Start            0000 (0)\n-6E10EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E10EC Ext File Attributes   00000000 (0)\n-6E10F0 Local Header Offset   0024D538 (2413880)\n-6E10F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E10F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E113C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E113E   Length              0005 (5)\n-6E1140   Flags               01 (1) 'Modification'\n-6E1141   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1145 CENTRAL HEADER #819   02014B50 (33639248)\n-6E1149 Created Zip Spec      14 (20) '2.0'\n-6E114A Created OS            00 (0) 'MS-DOS'\n-6E114B Extract Zip Spec      14 (20) '2.0'\n-6E114C Extract OS            00 (0) 'MS-DOS'\n-6E114D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E114F Compression Method    0000 (0) 'Stored'\n-6E1151 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1155 CRC                   218FA1FC (563061244)\n-6E1159 Compressed Size       00018F15 (102165)\n-6E115D Uncompressed Size     00018F15 (102165)\n-6E1161 Filename Length       004B (75)\n-6E1163 Extra Length          0009 (9)\n-6E1165 Comment Length        0000 (0)\n-6E1167 Disk Start            0000 (0)\n-6E1169 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E116B Ext File Attributes   00000000 (0)\n-6E116F Local Header Offset   00255187 (2445703)\n-6E1173 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1173: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E11BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E11C0   Length              0005 (5)\n-6E11C2   Flags               01 (1) 'Modification'\n-6E11C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E11C7 CENTRAL HEADER #820   02014B50 (33639248)\n-6E11CB Created Zip Spec      14 (20) '2.0'\n-6E11CC Created OS            00 (0) 'MS-DOS'\n-6E11CD Extract Zip Spec      14 (20) '2.0'\n-6E11CE Extract OS            00 (0) 'MS-DOS'\n-6E11CF General Purpose Flag  0000 (0)\n-6E11D1 Compression Method    0000 (0) 'Stored'\n-6E11D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E11D7 CRC                   00000000 (0)\n-6E11DB Compressed Size       00000000 (0)\n-6E11DF Uncompressed Size     00000000 (0)\n-6E11E3 Filename Length       002D (45)\n-6E11E5 Extra Length          0009 (9)\n-6E11E7 Comment Length        0000 (0)\n-6E11E9 Disk Start            0000 (0)\n-6E11EB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E11ED Ext File Attributes   00000000 (0)\n-6E11F1 Local Header Offset   0026E11E (2547998)\n-6E11F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E11F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1222 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1224   Length              0005 (5)\n-6E1226   Flags               01 (1) 'Modification'\n-6E1227   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E122B CENTRAL HEADER #821   02014B50 (33639248)\n-6E122F Created Zip Spec      14 (20) '2.0'\n-6E1230 Created OS            00 (0) 'MS-DOS'\n-6E1231 Extract Zip Spec      14 (20) '2.0'\n-6E1232 Extract OS            00 (0) 'MS-DOS'\n-6E1233 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1235 Compression Method    0000 (0) 'Stored'\n-6E1237 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E123B CRC                   8EE26A20 (2397202976)\n-6E123F Compressed Size       0000108D (4237)\n-6E1243 Uncompressed Size     0000108D (4237)\n-6E1247 Filename Length       0047 (71)\n-6E1249 Extra Length          0009 (9)\n-6E124B Comment Length        0000 (0)\n-6E124D Disk Start            0000 (0)\n-6E124F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1251 Ext File Attributes   00000000 (0)\n-6E1255 Local Header Offset   0026E172 (2548082)\n-6E1259 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1259: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E12A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E12A2   Length              0005 (5)\n-6E12A4   Flags               01 (1) 'Modification'\n-6E12A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E12A9 CENTRAL HEADER #822   02014B50 (33639248)\n-6E12AD Created Zip Spec      14 (20) '2.0'\n-6E12AE Created OS            00 (0) 'MS-DOS'\n-6E12AF Extract Zip Spec      14 (20) '2.0'\n-6E12B0 Extract OS            00 (0) 'MS-DOS'\n-6E12B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E12B3 Compression Method    0000 (0) 'Stored'\n-6E12B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E12B9 CRC                   D0E3428B (3504554635)\n-6E12BD Compressed Size       00000F32 (3890)\n-6E12C1 Uncompressed Size     00000F32 (3890)\n-6E12C5 Filename Length       0048 (72)\n-6E12C7 Extra Length          0009 (9)\n-6E12C9 Comment Length        0000 (0)\n-6E12CB Disk Start            0000 (0)\n-6E12CD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E12CF Ext File Attributes   00000000 (0)\n-6E12D3 Local Header Offset   0026F27D (2552445)\n-6E12D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E12D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E131F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1321   Length              0005 (5)\n-6E1323   Flags               01 (1) 'Modification'\n-6E1324   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1328 CENTRAL HEADER #823   02014B50 (33639248)\n-6E132C Created Zip Spec      14 (20) '2.0'\n-6E132D Created OS            00 (0) 'MS-DOS'\n-6E132E Extract Zip Spec      14 (20) '2.0'\n-6E132F Extract OS            00 (0) 'MS-DOS'\n-6E1330 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1332 Compression Method    0000 (0) 'Stored'\n-6E1334 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1338 CRC                   7E62C783 (2120402819)\n-6E133C Compressed Size       0000079E (1950)\n-6E1340 Uncompressed Size     0000079E (1950)\n-6E1344 Filename Length       0049 (73)\n-6E1346 Extra Length          0009 (9)\n-6E1348 Comment Length        0000 (0)\n-6E134A Disk Start            0000 (0)\n-6E134C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E134E Ext File Attributes   00000000 (0)\n-6E1352 Local Header Offset   0027022E (2556462)\n-6E1356 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1356: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E139F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E13A1   Length              0005 (5)\n-6E13A3   Flags               01 (1) 'Modification'\n-6E13A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E13A8 CENTRAL HEADER #824   02014B50 (33639248)\n-6E13AC Created Zip Spec      14 (20) '2.0'\n-6E13AD Created OS            00 (0) 'MS-DOS'\n-6E13AE Extract Zip Spec      14 (20) '2.0'\n-6E13AF Extract OS            00 (0) 'MS-DOS'\n-6E13B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E13B2 Compression Method    0000 (0) 'Stored'\n-6E13B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E13B8 CRC                   39DE609E (970875038)\n-6E13BC Compressed Size       00000481 (1153)\n-6E13C0 Uncompressed Size     00000481 (1153)\n-6E13C4 Filename Length       0039 (57)\n-6E13C6 Extra Length          0009 (9)\n-6E13C8 Comment Length        0000 (0)\n-6E13CA Disk Start            0000 (0)\n-6E13CC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E13CE Ext File Attributes   00000000 (0)\n-6E13D2 Local Header Offset   00270A4C (2558540)\n-6E13D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E13D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E140F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1411   Length              0005 (5)\n-6E1413   Flags               01 (1) 'Modification'\n-6E1414   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1418 CENTRAL HEADER #825   02014B50 (33639248)\n-6E141C Created Zip Spec      14 (20) '2.0'\n-6E141D Created OS            00 (0) 'MS-DOS'\n-6E141E Extract Zip Spec      14 (20) '2.0'\n-6E141F Extract OS            00 (0) 'MS-DOS'\n-6E1420 General Purpose Flag  0000 (0)\n-6E1422 Compression Method    0000 (0) 'Stored'\n-6E1424 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1428 CRC                   00000000 (0)\n-6E142C Compressed Size       00000000 (0)\n-6E1430 Uncompressed Size     00000000 (0)\n-6E1434 Filename Length       0036 (54)\n-6E1436 Extra Length          0009 (9)\n-6E1438 Comment Length        0000 (0)\n-6E143A Disk Start            0000 (0)\n-6E143C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E143E Ext File Attributes   00000000 (0)\n-6E1442 Local Header Offset   00270F3D (2559805)\n-6E1446 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1446: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E147C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E147E   Length              0005 (5)\n-6E1480   Flags               01 (1) 'Modification'\n-6E1481   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1485 CENTRAL HEADER #826   02014B50 (33639248)\n-6E1489 Created Zip Spec      14 (20) '2.0'\n-6E148A Created OS            00 (0) 'MS-DOS'\n-6E148B Extract Zip Spec      14 (20) '2.0'\n-6E148C Extract OS            00 (0) 'MS-DOS'\n-6E148D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E148F Compression Method    0000 (0) 'Stored'\n-6E1491 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1495 CRC                   FAE713D9 (4209447897)\n-6E1499 Compressed Size       0000077E (1918)\n-6E149D Uncompressed Size     0000077E (1918)\n-6E14A1 Filename Length       004A (74)\n-6E14A3 Extra Length          0009 (9)\n-6E14A5 Comment Length        0000 (0)\n-6E14A7 Disk Start            0000 (0)\n-6E14A9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E14AB Ext File Attributes   00000000 (0)\n-6E14AF Local Header Offset   00270F9A (2559898)\n-6E14B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E14B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E14FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E14FF   Length              0005 (5)\n-6E1501   Flags               01 (1) 'Modification'\n-6E1502   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1506 CENTRAL HEADER #827   02014B50 (33639248)\n-6E150A Created Zip Spec      14 (20) '2.0'\n-6E150B Created OS            00 (0) 'MS-DOS'\n-6E150C Extract Zip Spec      14 (20) '2.0'\n-6E150D Extract OS            00 (0) 'MS-DOS'\n-6E150E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1510 Compression Method    0000 (0) 'Stored'\n-6E1512 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1516 CRC                   1D3EA7BE (490645438)\n-6E151A Compressed Size       00000793 (1939)\n-6E151E Uncompressed Size     00000793 (1939)\n-6E1522 Filename Length       0047 (71)\n-6E1524 Extra Length          0009 (9)\n-6E1526 Comment Length        0000 (0)\n-6E1528 Disk Start            0000 (0)\n-6E152A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E152C Ext File Attributes   00000000 (0)\n-6E1530 Local Header Offset   00271799 (2561945)\n-6E1534 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1534: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E157B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E157D   Length              0005 (5)\n-6E157F   Flags               01 (1) 'Modification'\n-6E1580   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1584 CENTRAL HEADER #828   02014B50 (33639248)\n-6E1588 Created Zip Spec      14 (20) '2.0'\n-6E1589 Created OS            00 (0) 'MS-DOS'\n-6E158A Extract Zip Spec      14 (20) '2.0'\n-6E158B Extract OS            00 (0) 'MS-DOS'\n-6E158C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E158E Compression Method    0000 (0) 'Stored'\n-6E1590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1594 CRC                   585FB751 (1482667857)\n-6E1598 Compressed Size       00000778 (1912)\n-6E159C Uncompressed Size     00000778 (1912)\n-6E15A0 Filename Length       004C (76)\n-6E15A2 Extra Length          0009 (9)\n-6E15A4 Comment Length        0000 (0)\n-6E15A6 Disk Start            0000 (0)\n-6E15A8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E15AA Ext File Attributes   00000000 (0)\n-6E15AE Local Header Offset   00271FAA (2564010)\n-6E15B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E15B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E15FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1600   Length              0005 (5)\n-6E1602   Flags               01 (1) 'Modification'\n-6E1603   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1607 CENTRAL HEADER #829   02014B50 (33639248)\n-6E160B Created Zip Spec      14 (20) '2.0'\n-6E160C Created OS            00 (0) 'MS-DOS'\n-6E160D Extract Zip Spec      14 (20) '2.0'\n-6E160E Extract OS            00 (0) 'MS-DOS'\n-6E160F General Purpose Flag  0000 (0)\n-6E1611 Compression Method    0000 (0) 'Stored'\n-6E1613 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1617 CRC                   00000000 (0)\n-6E161B Compressed Size       00000000 (0)\n-6E161F Uncompressed Size     00000000 (0)\n-6E1623 Filename Length       0033 (51)\n-6E1625 Extra Length          0009 (9)\n-6E1627 Comment Length        0000 (0)\n-6E1629 Disk Start            0000 (0)\n-6E162B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E162D Ext File Attributes   00000000 (0)\n-6E1631 Local Header Offset   002727A5 (2566053)\n-6E1635 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1635: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1668 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E166A   Length              0005 (5)\n-6E166C   Flags               01 (1) 'Modification'\n-6E166D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1671 CENTRAL HEADER #830   02014B50 (33639248)\n-6E1675 Created Zip Spec      14 (20) '2.0'\n-6E1676 Created OS            00 (0) 'MS-DOS'\n-6E1677 Extract Zip Spec      14 (20) '2.0'\n-6E1678 Extract OS            00 (0) 'MS-DOS'\n-6E1679 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E167B Compression Method    0000 (0) 'Stored'\n-6E167D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1681 CRC                   2EE59E00 (786800128)\n-6E1685 Compressed Size       00000EFE (3838)\n-6E1689 Uncompressed Size     00000EFE (3838)\n-6E168D Filename Length       0044 (68)\n-6E168F Extra Length          0009 (9)\n-6E1691 Comment Length        0000 (0)\n-6E1693 Disk Start            0000 (0)\n-6E1695 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1697 Ext File Attributes   00000000 (0)\n-6E169B Local Header Offset   002727FF (2566143)\n-6E169F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E169F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E16E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E16E5   Length              0005 (5)\n-6E16E7   Flags               01 (1) 'Modification'\n-6E16E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E16EC CENTRAL HEADER #831   02014B50 (33639248)\n-6E16F0 Created Zip Spec      14 (20) '2.0'\n-6E16F1 Created OS            00 (0) 'MS-DOS'\n-6E16F2 Extract Zip Spec      14 (20) '2.0'\n-6E16F3 Extract OS            00 (0) 'MS-DOS'\n-6E16F4 General Purpose Flag  0000 (0)\n-6E16F6 Compression Method    0000 (0) 'Stored'\n-6E16F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E16FC CRC                   00000000 (0)\n-6E1700 Compressed Size       00000000 (0)\n-6E1704 Uncompressed Size     00000000 (0)\n-6E1708 Filename Length       002A (42)\n-6E170A Extra Length          0009 (9)\n-6E170C Comment Length        0000 (0)\n-6E170E Disk Start            0000 (0)\n-6E1710 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1712 Ext File Attributes   00000000 (0)\n-6E1716 Local Header Offset   00273778 (2570104)\n-6E171A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E171A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1744 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1746   Length              0005 (5)\n-6E1748   Flags               01 (1) 'Modification'\n-6E1749   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E174D CENTRAL HEADER #832   02014B50 (33639248)\n-6E1751 Created Zip Spec      14 (20) '2.0'\n-6E1752 Created OS            00 (0) 'MS-DOS'\n-6E1753 Extract Zip Spec      14 (20) '2.0'\n-6E1754 Extract OS            00 (0) 'MS-DOS'\n-6E1755 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1757 Compression Method    0000 (0) 'Stored'\n-6E1759 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E175D CRC                   27075A5A (654793306)\n-6E1761 Compressed Size       00000828 (2088)\n-6E1765 Uncompressed Size     00000828 (2088)\n-6E1769 Filename Length       0048 (72)\n-6E176B Extra Length          0009 (9)\n-6E176D Comment Length        0000 (0)\n-6E176F Disk Start            0000 (0)\n-6E1771 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1773 Ext File Attributes   00000000 (0)\n-6E1777 Local Header Offset   002737C9 (2570185)\n-6E177B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E177B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E17C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E17C5   Length              0005 (5)\n-6E17C7   Flags               01 (1) 'Modification'\n-6E17C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E17CC CENTRAL HEADER #833   02014B50 (33639248)\n-6E17D0 Created Zip Spec      14 (20) '2.0'\n-6E17D1 Created OS            00 (0) 'MS-DOS'\n-6E17D2 Extract Zip Spec      14 (20) '2.0'\n-6E17D3 Extract OS            00 (0) 'MS-DOS'\n-6E17D4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E17D6 Compression Method    0000 (0) 'Stored'\n-6E17D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E17DC CRC                   48B6E606 (1219945990)\n-6E17E0 Compressed Size       00000493 (1171)\n-6E17E4 Uncompressed Size     00000493 (1171)\n-6E17E8 Filename Length       0045 (69)\n-6E17EA Extra Length          0009 (9)\n-6E17EC Comment Length        0000 (0)\n-6E17EE Disk Start            0000 (0)\n-6E17F0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E17F2 Ext File Attributes   00000000 (0)\n-6E17F6 Local Header Offset   00274070 (2572400)\n-6E17FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E17FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E183F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1841   Length              0005 (5)\n-6E1843   Flags               01 (1) 'Modification'\n-6E1844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1848 CENTRAL HEADER #834   02014B50 (33639248)\n-6E184C Created Zip Spec      14 (20) '2.0'\n-6E184D Created OS            00 (0) 'MS-DOS'\n-6E184E Extract Zip Spec      14 (20) '2.0'\n-6E184F Extract OS            00 (0) 'MS-DOS'\n-6E1850 General Purpose Flag  0000 (0)\n-6E1852 Compression Method    0000 (0) 'Stored'\n-6E1854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1858 CRC                   00000000 (0)\n-6E185C Compressed Size       00000000 (0)\n-6E1860 Uncompressed Size     00000000 (0)\n-6E1864 Filename Length       001F (31)\n-6E1866 Extra Length          0009 (9)\n-6E1868 Comment Length        0000 (0)\n-6E186A Disk Start            0000 (0)\n-6E186C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E186E Ext File Attributes   00000000 (0)\n-6E1872 Local Header Offset   0027457F (2573695)\n-6E1876 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1876: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1895 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1897   Length              0005 (5)\n-6E1899   Flags               01 (1) 'Modification'\n-6E189A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E189E CENTRAL HEADER #835   02014B50 (33639248)\n-6E18A2 Created Zip Spec      14 (20) '2.0'\n-6E18A3 Created OS            00 (0) 'MS-DOS'\n-6E18A4 Extract Zip Spec      14 (20) '2.0'\n-6E18A5 Extract OS            00 (0) 'MS-DOS'\n-6E18A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E18A8 Compression Method    0000 (0) 'Stored'\n-6E18AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E18AE CRC                   EE49CD50 (3997814096)\n-6E18B2 Compressed Size       0000075D (1885)\n-6E18B6 Uncompressed Size     0000075D (1885)\n-6E18BA Filename Length       002A (42)\n-6E18BC Extra Length          0009 (9)\n-6E18BE Comment Length        0000 (0)\n-6E18C0 Disk Start            0000 (0)\n-6E18C2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E18C4 Ext File Attributes   00000000 (0)\n-6E18C8 Local Header Offset   002745C5 (2573765)\n-6E18CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E18CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E18F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E18F8   Length              0005 (5)\n-6E18FA   Flags               01 (1) 'Modification'\n-6E18FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E18FF CENTRAL HEADER #836   02014B50 (33639248)\n-6E1903 Created Zip Spec      14 (20) '2.0'\n-6E1904 Created OS            00 (0) 'MS-DOS'\n-6E1905 Extract Zip Spec      14 (20) '2.0'\n-6E1906 Extract OS            00 (0) 'MS-DOS'\n-6E1907 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1909 Compression Method    0000 (0) 'Stored'\n-6E190B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E190F CRC                   4C723E93 (1282555539)\n-6E1913 Compressed Size       00000432 (1074)\n-6E1917 Uncompressed Size     00000432 (1074)\n-6E191B Filename Length       0031 (49)\n-6E191D Extra Length          0009 (9)\n-6E191F Comment Length        0000 (0)\n-6E1921 Disk Start            0000 (0)\n-6E1923 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1925 Ext File Attributes   00000000 (0)\n-6E1929 Local Header Offset   00274D83 (2575747)\n-6E192D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E192D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E195E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1960   Length              0005 (5)\n-6E1962   Flags               01 (1) 'Modification'\n-6E1963   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1967 CENTRAL HEADER #837   02014B50 (33639248)\n-6E196B Created Zip Spec      14 (20) '2.0'\n-6E196C Created OS            00 (0) 'MS-DOS'\n-6E196D Extract Zip Spec      14 (20) '2.0'\n-6E196E Extract OS            00 (0) 'MS-DOS'\n-6E196F General Purpose Flag  0000 (0)\n-6E1971 Compression Method    0000 (0) 'Stored'\n-6E1973 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1977 CRC                   00000000 (0)\n-6E197B Compressed Size       00000000 (0)\n-6E197F Uncompressed Size     00000000 (0)\n-6E1983 Filename Length       0027 (39)\n-6E1985 Extra Length          0009 (9)\n-6E1987 Comment Length        0000 (0)\n-6E1989 Disk Start            0000 (0)\n-6E198B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E198D Ext File Attributes   00000000 (0)\n-6E1991 Local Header Offset   0027521D (2576925)\n-6E1995 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1995: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E19BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E19BE   Length              0005 (5)\n-6E19C0   Flags               01 (1) 'Modification'\n-6E19C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E19C5 CENTRAL HEADER #838   02014B50 (33639248)\n-6E19C9 Created Zip Spec      14 (20) '2.0'\n-6E19CA Created OS            00 (0) 'MS-DOS'\n-6E19CB Extract Zip Spec      14 (20) '2.0'\n-6E19CC Extract OS            00 (0) 'MS-DOS'\n-6E19CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E19CF Compression Method    0000 (0) 'Stored'\n-6E19D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E19D5 CRC                   CD3068DB (3442501851)\n-6E19D9 Compressed Size       000008A7 (2215)\n-6E19DD Uncompressed Size     000008A7 (2215)\n-6E19E1 Filename Length       003D (61)\n-6E19E3 Extra Length          0009 (9)\n-6E19E5 Comment Length        0000 (0)\n-6E19E7 Disk Start            0000 (0)\n-6E19E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E19EB Ext File Attributes   00000000 (0)\n-6E19EF Local Header Offset   0027526B (2577003)\n-6E19F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E19F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1A30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1A32   Length              0005 (5)\n-6E1A34   Flags               01 (1) 'Modification'\n-6E1A35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1A39 CENTRAL HEADER #839   02014B50 (33639248)\n-6E1A3D Created Zip Spec      14 (20) '2.0'\n-6E1A3E Created OS            00 (0) 'MS-DOS'\n-6E1A3F Extract Zip Spec      14 (20) '2.0'\n-6E1A40 Extract OS            00 (0) 'MS-DOS'\n-6E1A41 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1A43 Compression Method    0000 (0) 'Stored'\n-6E1A45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1A49 CRC                   E601D6EE (3858880238)\n-6E1A4D Compressed Size       00000701 (1793)\n-6E1A51 Uncompressed Size     00000701 (1793)\n-6E1A55 Filename Length       003F (63)\n-6E1A57 Extra Length          0009 (9)\n-6E1A59 Comment Length        0000 (0)\n-6E1A5B Disk Start            0000 (0)\n-6E1A5D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1A5F Ext File Attributes   00000000 (0)\n-6E1A63 Local Header Offset   00275B86 (2579334)\n-6E1A67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1A67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1AA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1AA8   Length              0005 (5)\n-6E1AAA   Flags               01 (1) 'Modification'\n-6E1AAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1AAF CENTRAL HEADER #840   02014B50 (33639248)\n-6E1AB3 Created Zip Spec      14 (20) '2.0'\n-6E1AB4 Created OS            00 (0) 'MS-DOS'\n-6E1AB5 Extract Zip Spec      14 (20) '2.0'\n-6E1AB6 Extract OS            00 (0) 'MS-DOS'\n-6E1AB7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1AB9 Compression Method    0000 (0) 'Stored'\n-6E1ABB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1ABF CRC                   577B6C79 (1467706489)\n-6E1AC3 Compressed Size       000007D4 (2004)\n-6E1AC7 Uncompressed Size     000007D4 (2004)\n-6E1ACB Filename Length       0037 (55)\n-6E1ACD Extra Length          0009 (9)\n-6E1ACF Comment Length        0000 (0)\n-6E1AD1 Disk Start            0000 (0)\n-6E1AD3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1AD5 Ext File Attributes   00000000 (0)\n-6E1AD9 Local Header Offset   002762FD (2581245)\n-6E1ADD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1ADD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1B14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1B16   Length              0005 (5)\n-6E1B18   Flags               01 (1) 'Modification'\n-6E1B19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1B1D CENTRAL HEADER #841   02014B50 (33639248)\n-6E1B21 Created Zip Spec      14 (20) '2.0'\n-6E1B22 Created OS            00 (0) 'MS-DOS'\n-6E1B23 Extract Zip Spec      14 (20) '2.0'\n-6E1B24 Extract OS            00 (0) 'MS-DOS'\n-6E1B25 General Purpose Flag  0000 (0)\n-6E1B27 Compression Method    0000 (0) 'Stored'\n-6E1B29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1B2D CRC                   00000000 (0)\n-6E1B31 Compressed Size       00000000 (0)\n-6E1B35 Uncompressed Size     00000000 (0)\n-6E1B39 Filename Length       001E (30)\n-6E1B3B Extra Length          0009 (9)\n-6E1B3D Comment Length        0000 (0)\n-6E1B3F Disk Start            0000 (0)\n-6E1B41 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1B43 Ext File Attributes   00000000 (0)\n-6E1B47 Local Header Offset   00276B3F (2583359)\n-6E1B4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1B4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1B69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1B6B   Length              0005 (5)\n-6E1B6D   Flags               01 (1) 'Modification'\n-6E1B6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1B72 CENTRAL HEADER #842   02014B50 (33639248)\n-6E1B76 Created Zip Spec      14 (20) '2.0'\n-6E1B77 Created OS            00 (0) 'MS-DOS'\n-6E1B78 Extract Zip Spec      14 (20) '2.0'\n-6E1B79 Extract OS            00 (0) 'MS-DOS'\n-6E1B7A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1B7C Compression Method    0000 (0) 'Stored'\n-6E1B7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1B82 CRC                   BF5F9C1E (3210714142)\n-6E1B86 Compressed Size       00000500 (1280)\n-6E1B8A Uncompressed Size     00000500 (1280)\n-6E1B8E Filename Length       002C (44)\n-6E1B90 Extra Length          0009 (9)\n-6E1B92 Comment Length        0000 (0)\n-6E1B94 Disk Start            0000 (0)\n-6E1B96 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1B98 Ext File Attributes   00000000 (0)\n-6E1B9C Local Header Offset   00276B84 (2583428)\n-6E1BA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1BA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1BCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1BCE   Length              0005 (5)\n-6E1BD0   Flags               01 (1) 'Modification'\n-6E1BD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1BD5 CENTRAL HEADER #843   02014B50 (33639248)\n-6E1BD9 Created Zip Spec      14 (20) '2.0'\n-6E1BDA Created OS            00 (0) 'MS-DOS'\n-6E1BDB Extract Zip Spec      14 (20) '2.0'\n-6E1BDC Extract OS            00 (0) 'MS-DOS'\n-6E1BDD General Purpose Flag  0000 (0)\n-6E1BDF Compression Method    0000 (0) 'Stored'\n-6E1BE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1BE5 CRC                   00000000 (0)\n-6E1BE9 Compressed Size       00000000 (0)\n-6E1BED Uncompressed Size     00000000 (0)\n-6E1BF1 Filename Length       0026 (38)\n-6E1BF3 Extra Length          0009 (9)\n-6E1BF5 Comment Length        0000 (0)\n-6E1BF7 Disk Start            0000 (0)\n-6E1BF9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1BFB Ext File Attributes   00000000 (0)\n-6E1BFF Local Header Offset   002770E7 (2584807)\n-6E1C03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1C03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1C29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1C2B   Length              0005 (5)\n-6E1C2D   Flags               01 (1) 'Modification'\n-6E1C2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1C32 CENTRAL HEADER #844   02014B50 (33639248)\n-6E1C36 Created Zip Spec      14 (20) '2.0'\n-6E1C37 Created OS            00 (0) 'MS-DOS'\n-6E1C38 Extract Zip Spec      14 (20) '2.0'\n-6E1C39 Extract OS            00 (0) 'MS-DOS'\n-6E1C3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1C3C Compression Method    0000 (0) 'Stored'\n-6E1C3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1C42 CRC                   5E930431 (1586693169)\n-6E1C46 Compressed Size       000008C7 (2247)\n-6E1C4A Uncompressed Size     000008C7 (2247)\n-6E1C4E Filename Length       003A (58)\n-6E1C50 Extra Length          0009 (9)\n-6E1C52 Comment Length        0000 (0)\n-6E1C54 Disk Start            0000 (0)\n-6E1C56 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1C58 Ext File Attributes   00000000 (0)\n-6E1C5C Local Header Offset   00277134 (2584884)\n-6E1C60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1C60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1C9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1C9C   Length              0005 (5)\n-6E1C9E   Flags               01 (1) 'Modification'\n-6E1C9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1CA3 CENTRAL HEADER #845   02014B50 (33639248)\n-6E1CA7 Created Zip Spec      14 (20) '2.0'\n-6E1CA8 Created OS            00 (0) 'MS-DOS'\n-6E1CA9 Extract Zip Spec      14 (20) '2.0'\n-6E1CAA Extract OS            00 (0) 'MS-DOS'\n-6E1CAB General Purpose Flag  0000 (0)\n-6E1CAD Compression Method    0000 (0) 'Stored'\n-6E1CAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1CB3 CRC                   00000000 (0)\n-6E1CB7 Compressed Size       00000000 (0)\n-6E1CBB Uncompressed Size     00000000 (0)\n-6E1CBF Filename Length       0024 (36)\n-6E1CC1 Extra Length          0009 (9)\n-6E1CC3 Comment Length        0000 (0)\n-6E1CC5 Disk Start            0000 (0)\n-6E1CC7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1CC9 Ext File Attributes   00000000 (0)\n-6E1CCD Local Header Offset   00277A6C (2587244)\n-6E1CD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1CD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1CF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1CF7   Length              0005 (5)\n-6E1CF9   Flags               01 (1) 'Modification'\n-6E1CFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1CFE CENTRAL HEADER #846   02014B50 (33639248)\n-6E1D02 Created Zip Spec      14 (20) '2.0'\n-6E1D03 Created OS            00 (0) 'MS-DOS'\n-6E1D04 Extract Zip Spec      14 (20) '2.0'\n-6E1D05 Extract OS            00 (0) 'MS-DOS'\n-6E1D06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1D08 Compression Method    0000 (0) 'Stored'\n-6E1D0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1D0E CRC                   54C421FF (1422139903)\n-6E1D12 Compressed Size       00000739 (1849)\n-6E1D16 Uncompressed Size     00000739 (1849)\n-6E1D1A Filename Length       0039 (57)\n-6E1D1C Extra Length          0009 (9)\n-6E1D1E Comment Length        0000 (0)\n-6E1D20 Disk Start            0000 (0)\n-6E1D22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1D24 Ext File Attributes   00000000 (0)\n-6E1D28 Local Header Offset   00277AB7 (2587319)\n-6E1D2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1D2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1D65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1D67   Length              0005 (5)\n-6E1D69   Flags               01 (1) 'Modification'\n-6E1D6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1D6E CENTRAL HEADER #847   02014B50 (33639248)\n-6E1D72 Created Zip Spec      14 (20) '2.0'\n-6E1D73 Created OS            00 (0) 'MS-DOS'\n-6E1D74 Extract Zip Spec      14 (20) '2.0'\n-6E1D75 Extract OS            00 (0) 'MS-DOS'\n-6E1D76 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1D78 Compression Method    0000 (0) 'Stored'\n-6E1D7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1D7E CRC                   DFEE0135 (3756917045)\n-6E1D82 Compressed Size       0000098D (2445)\n-6E1D86 Uncompressed Size     0000098D (2445)\n-6E1D8A Filename Length       0037 (55)\n-6E1D8C Extra Length          0009 (9)\n-6E1D8E Comment Length        0000 (0)\n-6E1D90 Disk Start            0000 (0)\n-6E1D92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1D94 Ext File Attributes   00000000 (0)\n-6E1D98 Local Header Offset   00278260 (2589280)\n-6E1D9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1D9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1DD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1DD5   Length              0005 (5)\n-6E1DD7   Flags               01 (1) 'Modification'\n-6E1DD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1DDC CENTRAL HEADER #848   02014B50 (33639248)\n-6E1DE0 Created Zip Spec      14 (20) '2.0'\n-6E1DE1 Created OS            00 (0) 'MS-DOS'\n-6E1DE2 Extract Zip Spec      14 (20) '2.0'\n-6E1DE3 Extract OS            00 (0) 'MS-DOS'\n-6E1DE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1DE6 Compression Method    0000 (0) 'Stored'\n-6E1DE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1DEC CRC                   F7472DA9 (4148637097)\n-6E1DF0 Compressed Size       00001AF8 (6904)\n-6E1DF4 Uncompressed Size     00001AF8 (6904)\n-6E1DF8 Filename Length       003C (60)\n-6E1DFA Extra Length          0009 (9)\n-6E1DFC Comment Length        0000 (0)\n-6E1DFE Disk Start            0000 (0)\n-6E1E00 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1E02 Ext File Attributes   00000000 (0)\n-6E1E06 Local Header Offset   00278C5B (2591835)\n-6E1E0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1E0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1E46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1E48   Length              0005 (5)\n-6E1E4A   Flags               01 (1) 'Modification'\n-6E1E4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1E4F CENTRAL HEADER #849   02014B50 (33639248)\n-6E1E53 Created Zip Spec      14 (20) '2.0'\n-6E1E54 Created OS            00 (0) 'MS-DOS'\n-6E1E55 Extract Zip Spec      14 (20) '2.0'\n-6E1E56 Extract OS            00 (0) 'MS-DOS'\n-6E1E57 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1E59 Compression Method    0000 (0) 'Stored'\n-6E1E5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1E5F CRC                   17B25B54 (397564756)\n-6E1E63 Compressed Size       00001558 (5464)\n-6E1E67 Uncompressed Size     00001558 (5464)\n-6E1E6B Filename Length       003F (63)\n-6E1E6D Extra Length          0009 (9)\n-6E1E6F Comment Length        0000 (0)\n-6E1E71 Disk Start            0000 (0)\n-6E1E73 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1E75 Ext File Attributes   00000000 (0)\n-6E1E79 Local Header Offset   0027A7C6 (2598854)\n-6E1E7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1E7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1EBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1EBE   Length              0005 (5)\n-6E1EC0   Flags               01 (1) 'Modification'\n-6E1EC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1EC5 CENTRAL HEADER #850   02014B50 (33639248)\n-6E1EC9 Created Zip Spec      14 (20) '2.0'\n-6E1ECA Created OS            00 (0) 'MS-DOS'\n-6E1ECB Extract Zip Spec      14 (20) '2.0'\n-6E1ECC Extract OS            00 (0) 'MS-DOS'\n-6E1ECD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1ECF Compression Method    0000 (0) 'Stored'\n-6E1ED1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1ED5 CRC                   9C1B711A (2619044122)\n-6E1ED9 Compressed Size       0000065E (1630)\n-6E1EDD Uncompressed Size     0000065E (1630)\n-6E1EE1 Filename Length       0043 (67)\n-6E1EE3 Extra Length          0009 (9)\n-6E1EE5 Comment Length        0000 (0)\n-6E1EE7 Disk Start            0000 (0)\n-6E1EE9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1EEB Ext File Attributes   00000000 (0)\n-6E1EEF Local Header Offset   0027BD94 (2604436)\n-6E1EF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1EF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1F36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1F38   Length              0005 (5)\n-6E1F3A   Flags               01 (1) 'Modification'\n-6E1F3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1F3F CENTRAL HEADER #851   02014B50 (33639248)\n-6E1F43 Created Zip Spec      14 (20) '2.0'\n-6E1F44 Created OS            00 (0) 'MS-DOS'\n-6E1F45 Extract Zip Spec      14 (20) '2.0'\n-6E1F46 Extract OS            00 (0) 'MS-DOS'\n-6E1F47 General Purpose Flag  0000 (0)\n-6E1F49 Compression Method    0000 (0) 'Stored'\n-6E1F4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1F4F CRC                   00000000 (0)\n-6E1F53 Compressed Size       00000000 (0)\n-6E1F57 Uncompressed Size     00000000 (0)\n-6E1F5B Filename Length       0023 (35)\n-6E1F5D Extra Length          0009 (9)\n-6E1F5F Comment Length        0000 (0)\n-6E1F61 Disk Start            0000 (0)\n-6E1F63 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1F65 Ext File Attributes   00000000 (0)\n-6E1F69 Local Header Offset   0027C46C (2606188)\n-6E1F6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1F6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1F90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1F92   Length              0005 (5)\n-6E1F94   Flags               01 (1) 'Modification'\n-6E1F95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E1F99 CENTRAL HEADER #852   02014B50 (33639248)\n-6E1F9D Created Zip Spec      14 (20) '2.0'\n-6E1F9E Created OS            00 (0) 'MS-DOS'\n-6E1F9F Extract Zip Spec      14 (20) '2.0'\n-6E1FA0 Extract OS            00 (0) 'MS-DOS'\n-6E1FA1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E1FA3 Compression Method    0000 (0) 'Stored'\n-6E1FA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E1FA9 CRC                   8247BF31 (2185740081)\n-6E1FAD Compressed Size       0000054B (1355)\n-6E1FB1 Uncompressed Size     0000054B (1355)\n-6E1FB5 Filename Length       0032 (50)\n-6E1FB7 Extra Length          0009 (9)\n-6E1FB9 Comment Length        0000 (0)\n-6E1FBB Disk Start            0000 (0)\n-6E1FBD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E1FBF Ext File Attributes   00000000 (0)\n-6E1FC3 Local Header Offset   0027C4B6 (2606262)\n-6E1FC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E1FC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E1FF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E1FFB   Length              0005 (5)\n-6E1FFD   Flags               01 (1) 'Modification'\n-6E1FFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2002 CENTRAL HEADER #853   02014B50 (33639248)\n-6E2006 Created Zip Spec      14 (20) '2.0'\n-6E2007 Created OS            00 (0) 'MS-DOS'\n-6E2008 Extract Zip Spec      14 (20) '2.0'\n-6E2009 Extract OS            00 (0) 'MS-DOS'\n-6E200A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E200C Compression Method    0000 (0) 'Stored'\n-6E200E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2012 CRC                   8DDA963E (2379912766)\n-6E2016 Compressed Size       00001A95 (6805)\n-6E201A Uncompressed Size     00001A95 (6805)\n-6E201E Filename Length       003A (58)\n-6E2020 Extra Length          0009 (9)\n-6E2022 Comment Length        0000 (0)\n-6E2024 Disk Start            0000 (0)\n-6E2026 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2028 Ext File Attributes   00000000 (0)\n-6E202C Local Header Offset   0027CA6A (2607722)\n-6E2030 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2030: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E206A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E206C   Length              0005 (5)\n-6E206E   Flags               01 (1) 'Modification'\n-6E206F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2073 CENTRAL HEADER #854   02014B50 (33639248)\n-6E2077 Created Zip Spec      14 (20) '2.0'\n-6E2078 Created OS            00 (0) 'MS-DOS'\n-6E2079 Extract Zip Spec      14 (20) '2.0'\n-6E207A Extract OS            00 (0) 'MS-DOS'\n-6E207B General Purpose Flag  0000 (0)\n-6E207D Compression Method    0000 (0) 'Stored'\n-6E207F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2083 CRC                   00000000 (0)\n-6E2087 Compressed Size       00000000 (0)\n-6E208B Uncompressed Size     00000000 (0)\n-6E208F Filename Length       002E (46)\n-6E2091 Extra Length          0009 (9)\n-6E2093 Comment Length        0000 (0)\n-6E2095 Disk Start            0000 (0)\n-6E2097 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2099 Ext File Attributes   00000000 (0)\n-6E209D Local Header Offset   0027E570 (2614640)\n-6E20A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E20A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E20CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E20D1   Length              0005 (5)\n-6E20D3   Flags               01 (1) 'Modification'\n-6E20D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E20D8 CENTRAL HEADER #855   02014B50 (33639248)\n-6E20DC Created Zip Spec      14 (20) '2.0'\n-6E20DD Created OS            00 (0) 'MS-DOS'\n-6E20DE Extract Zip Spec      14 (20) '2.0'\n-6E20DF Extract OS            00 (0) 'MS-DOS'\n-6E20E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E20E2 Compression Method    0000 (0) 'Stored'\n-6E20E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E20E8 CRC                   A445CFD0 (2756038608)\n-6E20EC Compressed Size       0000090C (2316)\n-6E20F0 Uncompressed Size     0000090C (2316)\n-6E20F4 Filename Length       004D (77)\n-6E20F6 Extra Length          0009 (9)\n-6E20F8 Comment Length        0000 (0)\n-6E20FA Disk Start            0000 (0)\n-6E20FC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E20FE Ext File Attributes   00000000 (0)\n-6E2102 Local Header Offset   0027E5C5 (2614725)\n-6E2106 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2106: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2153 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2155   Length              0005 (5)\n-6E2157   Flags               01 (1) 'Modification'\n-6E2158   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E215C CENTRAL HEADER #856   02014B50 (33639248)\n-6E2160 Created Zip Spec      14 (20) '2.0'\n-6E2161 Created OS            00 (0) 'MS-DOS'\n-6E2162 Extract Zip Spec      14 (20) '2.0'\n-6E2163 Extract OS            00 (0) 'MS-DOS'\n-6E2164 General Purpose Flag  0000 (0)\n-6E2166 Compression Method    0000 (0) 'Stored'\n-6E2168 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E216C CRC                   00000000 (0)\n-6E2170 Compressed Size       00000000 (0)\n-6E2174 Uncompressed Size     00000000 (0)\n-6E2178 Filename Length       0029 (41)\n-6E217A Extra Length          0009 (9)\n-6E217C Comment Length        0000 (0)\n-6E217E Disk Start            0000 (0)\n-6E2180 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2182 Ext File Attributes   00000000 (0)\n-6E2186 Local Header Offset   0027EF55 (2617173)\n-6E218A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E218A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E21B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E21B5   Length              0005 (5)\n-6E21B7   Flags               01 (1) 'Modification'\n-6E21B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E21BC CENTRAL HEADER #857   02014B50 (33639248)\n-6E21C0 Created Zip Spec      14 (20) '2.0'\n-6E21C1 Created OS            00 (0) 'MS-DOS'\n-6E21C2 Extract Zip Spec      14 (20) '2.0'\n-6E21C3 Extract OS            00 (0) 'MS-DOS'\n-6E21C4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E21C6 Compression Method    0000 (0) 'Stored'\n-6E21C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E21CC CRC                   0A4E202C (172892204)\n-6E21D0 Compressed Size       000004DB (1243)\n-6E21D4 Uncompressed Size     000004DB (1243)\n-6E21D8 Filename Length       0046 (70)\n-6E21DA Extra Length          0009 (9)\n-6E21DC Comment Length        0000 (0)\n-6E21DE Disk Start            0000 (0)\n-6E21E0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E21E2 Ext File Attributes   00000000 (0)\n-6E21E6 Local Header Offset   0027EFA5 (2617253)\n-6E21EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E21EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2230 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2232   Length              0005 (5)\n-6E2234   Flags               01 (1) 'Modification'\n-6E2235   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2239 CENTRAL HEADER #858   02014B50 (33639248)\n-6E223D Created Zip Spec      14 (20) '2.0'\n-6E223E Created OS            00 (0) 'MS-DOS'\n-6E223F Extract Zip Spec      14 (20) '2.0'\n-6E2240 Extract OS            00 (0) 'MS-DOS'\n-6E2241 General Purpose Flag  0000 (0)\n-6E2243 Compression Method    0000 (0) 'Stored'\n-6E2245 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2249 CRC                   00000000 (0)\n-6E224D Compressed Size       00000000 (0)\n-6E2251 Uncompressed Size     00000000 (0)\n-6E2255 Filename Length       002B (43)\n-6E2257 Extra Length          0009 (9)\n-6E2259 Comment Length        0000 (0)\n-6E225B Disk Start            0000 (0)\n-6E225D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E225F Ext File Attributes   00000000 (0)\n-6E2263 Local Header Offset   0027F4FD (2618621)\n-6E2267 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2267: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2292 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2294   Length              0005 (5)\n-6E2296   Flags               01 (1) 'Modification'\n-6E2297   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E229B CENTRAL HEADER #859   02014B50 (33639248)\n-6E229F Created Zip Spec      14 (20) '2.0'\n-6E22A0 Created OS            00 (0) 'MS-DOS'\n-6E22A1 Extract Zip Spec      14 (20) '2.0'\n-6E22A2 Extract OS            00 (0) 'MS-DOS'\n-6E22A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E22A5 Compression Method    0000 (0) 'Stored'\n-6E22A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E22AB CRC                   6D3F9D1E (1832885534)\n-6E22AF Compressed Size       00001E30 (7728)\n-6E22B3 Uncompressed Size     00001E30 (7728)\n-6E22B7 Filename Length       0049 (73)\n-6E22B9 Extra Length          0009 (9)\n-6E22BB Comment Length        0000 (0)\n-6E22BD Disk Start            0000 (0)\n-6E22BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E22C1 Ext File Attributes   00000000 (0)\n-6E22C5 Local Header Offset   0027F54F (2618703)\n-6E22C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E22C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2314   Length              0005 (5)\n-6E2316   Flags               01 (1) 'Modification'\n-6E2317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E231B CENTRAL HEADER #860   02014B50 (33639248)\n-6E231F Created Zip Spec      14 (20) '2.0'\n-6E2320 Created OS            00 (0) 'MS-DOS'\n-6E2321 Extract Zip Spec      14 (20) '2.0'\n-6E2322 Extract OS            00 (0) 'MS-DOS'\n-6E2323 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2325 Compression Method    0000 (0) 'Stored'\n-6E2327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E232B CRC                   355480AB (894730411)\n-6E232F Compressed Size       00000919 (2329)\n-6E2333 Uncompressed Size     00000919 (2329)\n-6E2337 Filename Length       0042 (66)\n-6E2339 Extra Length          0009 (9)\n-6E233B Comment Length        0000 (0)\n-6E233D Disk Start            0000 (0)\n-6E233F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2341 Ext File Attributes   00000000 (0)\n-6E2345 Local Header Offset   002813FF (2626559)\n-6E2349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E238B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E238D   Length              0005 (5)\n-6E238F   Flags               01 (1) 'Modification'\n-6E2390   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2394 CENTRAL HEADER #861   02014B50 (33639248)\n-6E2398 Created Zip Spec      14 (20) '2.0'\n-6E2399 Created OS            00 (0) 'MS-DOS'\n-6E239A Extract Zip Spec      14 (20) '2.0'\n-6E239B Extract OS            00 (0) 'MS-DOS'\n-6E239C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E239E Compression Method    0000 (0) 'Stored'\n-6E23A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E23A4 CRC                   47FCDE13 (1207754259)\n-6E23A8 Compressed Size       000007FA (2042)\n-6E23AC Uncompressed Size     000007FA (2042)\n-6E23B0 Filename Length       0034 (52)\n-6E23B2 Extra Length          0009 (9)\n-6E23B4 Comment Length        0000 (0)\n-6E23B6 Disk Start            0000 (0)\n-6E23B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E23BA Ext File Attributes   00000000 (0)\n-6E23BE Local Header Offset   00281D91 (2629009)\n-6E23C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E23C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E23F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E23F8   Length              0005 (5)\n-6E23FA   Flags               01 (1) 'Modification'\n-6E23FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E23FF CENTRAL HEADER #862   02014B50 (33639248)\n-6E2403 Created Zip Spec      14 (20) '2.0'\n-6E2404 Created OS            00 (0) 'MS-DOS'\n-6E2405 Extract Zip Spec      14 (20) '2.0'\n-6E2406 Extract OS            00 (0) 'MS-DOS'\n-6E2407 General Purpose Flag  0000 (0)\n-6E2409 Compression Method    0000 (0) 'Stored'\n-6E240B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E240F CRC                   00000000 (0)\n-6E2413 Compressed Size       00000000 (0)\n-6E2417 Uncompressed Size     00000000 (0)\n-6E241B Filename Length       002B (43)\n-6E241D Extra Length          0009 (9)\n-6E241F Comment Length        0000 (0)\n-6E2421 Disk Start            0000 (0)\n-6E2423 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2425 Ext File Attributes   00000000 (0)\n-6E2429 Local Header Offset   002825F6 (2631158)\n-6E242D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E242D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2458 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E245A   Length              0005 (5)\n-6E245C   Flags               01 (1) 'Modification'\n-6E245D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2461 CENTRAL HEADER #863   02014B50 (33639248)\n-6E2465 Created Zip Spec      14 (20) '2.0'\n-6E2466 Created OS            00 (0) 'MS-DOS'\n-6E2467 Extract Zip Spec      14 (20) '2.0'\n-6E2468 Extract OS            00 (0) 'MS-DOS'\n-6E2469 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E246B Compression Method    0000 (0) 'Stored'\n-6E246D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2471 CRC                   A9E4FF87 (2850357127)\n-6E2475 Compressed Size       00001767 (5991)\n-6E2479 Uncompressed Size     00001767 (5991)\n-6E247D Filename Length       0045 (69)\n-6E247F Extra Length          0009 (9)\n-6E2481 Comment Length        0000 (0)\n-6E2483 Disk Start            0000 (0)\n-6E2485 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2487 Ext File Attributes   00000000 (0)\n-6E248B Local Header Offset   00282648 (2631240)\n-6E248F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E248F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E24D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E24D6   Length              0005 (5)\n-6E24D8   Flags               01 (1) 'Modification'\n-6E24D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E24DD CENTRAL HEADER #864   02014B50 (33639248)\n-6E24E1 Created Zip Spec      14 (20) '2.0'\n-6E24E2 Created OS            00 (0) 'MS-DOS'\n-6E24E3 Extract Zip Spec      14 (20) '2.0'\n-6E24E4 Extract OS            00 (0) 'MS-DOS'\n-6E24E5 General Purpose Flag  0000 (0)\n-6E24E7 Compression Method    0000 (0) 'Stored'\n-6E24E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E24ED CRC                   00000000 (0)\n-6E24F1 Compressed Size       00000000 (0)\n-6E24F5 Uncompressed Size     00000000 (0)\n-6E24F9 Filename Length       0032 (50)\n-6E24FB Extra Length          0009 (9)\n-6E24FD Comment Length        0000 (0)\n-6E24FF Disk Start            0000 (0)\n-6E2501 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2503 Ext File Attributes   00000000 (0)\n-6E2507 Local Header Offset   00283E2B (2637355)\n-6E250B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E250B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E253D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E253F   Length              0005 (5)\n-6E2541   Flags               01 (1) 'Modification'\n-6E2542   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2546 CENTRAL HEADER #865   02014B50 (33639248)\n-6E254A Created Zip Spec      14 (20) '2.0'\n-6E254B Created OS            00 (0) 'MS-DOS'\n-6E254C Extract Zip Spec      14 (20) '2.0'\n-6E254D Extract OS            00 (0) 'MS-DOS'\n-6E254E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2550 Compression Method    0000 (0) 'Stored'\n-6E2552 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2556 CRC                   7C2CDC15 (2083314709)\n-6E255A Compressed Size       00000C7D (3197)\n-6E255E Uncompressed Size     00000C7D (3197)\n-6E2562 Filename Length       0047 (71)\n-6E2564 Extra Length          0009 (9)\n-6E2566 Comment Length        0000 (0)\n-6E2568 Disk Start            0000 (0)\n-6E256A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E256C Ext File Attributes   00000000 (0)\n-6E2570 Local Header Offset   00283E84 (2637444)\n-6E2574 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2574: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E25BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E25BD   Length              0005 (5)\n-6E25BF   Flags               01 (1) 'Modification'\n-6E25C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E25C4 CENTRAL HEADER #866   02014B50 (33639248)\n-6E25C8 Created Zip Spec      14 (20) '2.0'\n-6E25C9 Created OS            00 (0) 'MS-DOS'\n-6E25CA Extract Zip Spec      14 (20) '2.0'\n-6E25CB Extract OS            00 (0) 'MS-DOS'\n-6E25CC General Purpose Flag  0000 (0)\n-6E25CE Compression Method    0000 (0) 'Stored'\n-6E25D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E25D4 CRC                   00000000 (0)\n-6E25D8 Compressed Size       00000000 (0)\n-6E25DC Uncompressed Size     00000000 (0)\n-6E25E0 Filename Length       0031 (49)\n-6E25E2 Extra Length          0009 (9)\n-6E25E4 Comment Length        0000 (0)\n-6E25E6 Disk Start            0000 (0)\n-6E25E8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E25EA Ext File Attributes   00000000 (0)\n-6E25EE Local Header Offset   00284B7F (2640767)\n-6E25F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E25F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2623 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2625   Length              0005 (5)\n-6E2627   Flags               01 (1) 'Modification'\n-6E2628   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E262C CENTRAL HEADER #867   02014B50 (33639248)\n-6E2630 Created Zip Spec      14 (20) '2.0'\n-6E2631 Created OS            00 (0) 'MS-DOS'\n-6E2632 Extract Zip Spec      14 (20) '2.0'\n-6E2633 Extract OS            00 (0) 'MS-DOS'\n-6E2634 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2636 Compression Method    0000 (0) 'Stored'\n-6E2638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E263C CRC                   DF3FC6E9 (3745498857)\n-6E2640 Compressed Size       00000BC1 (3009)\n-6E2644 Uncompressed Size     00000BC1 (3009)\n-6E2648 Filename Length       0045 (69)\n-6E264A Extra Length          0009 (9)\n-6E264C Comment Length        0000 (0)\n-6E264E Disk Start            0000 (0)\n-6E2650 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2652 Ext File Attributes   00000000 (0)\n-6E2656 Local Header Offset   00284BD7 (2640855)\n-6E265A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E265A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E269F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E26A1   Length              0005 (5)\n-6E26A3   Flags               01 (1) 'Modification'\n-6E26A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E26A8 CENTRAL HEADER #868   02014B50 (33639248)\n-6E26AC Created Zip Spec      14 (20) '2.0'\n-6E26AD Created OS            00 (0) 'MS-DOS'\n-6E26AE Extract Zip Spec      14 (20) '2.0'\n-6E26AF Extract OS            00 (0) 'MS-DOS'\n-6E26B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E26B2 Compression Method    0000 (0) 'Stored'\n-6E26B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E26B8 CRC                   B7E8049A (3085436058)\n-6E26BC Compressed Size       00000CBE (3262)\n-6E26C0 Uncompressed Size     00000CBE (3262)\n-6E26C4 Filename Length       004D (77)\n-6E26C6 Extra Length          0009 (9)\n-6E26C8 Comment Length        0000 (0)\n-6E26CA Disk Start            0000 (0)\n-6E26CC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E26CE Ext File Attributes   00000000 (0)\n-6E26D2 Local Header Offset   00285814 (2643988)\n-6E26D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E26D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2723 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2725   Length              0005 (5)\n-6E2727   Flags               01 (1) 'Modification'\n-6E2728   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E272C CENTRAL HEADER #869   02014B50 (33639248)\n-6E2730 Created Zip Spec      14 (20) '2.0'\n-6E2731 Created OS            00 (0) 'MS-DOS'\n-6E2732 Extract Zip Spec      14 (20) '2.0'\n-6E2733 Extract OS            00 (0) 'MS-DOS'\n-6E2734 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2736 Compression Method    0000 (0) 'Stored'\n-6E2738 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E273C CRC                   365FEBC7 (912255943)\n-6E2740 Compressed Size       00000B87 (2951)\n-6E2744 Uncompressed Size     00000B87 (2951)\n-6E2748 Filename Length       003F (63)\n-6E274A Extra Length          0009 (9)\n-6E274C Comment Length        0000 (0)\n-6E274E Disk Start            0000 (0)\n-6E2750 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2752 Ext File Attributes   00000000 (0)\n-6E2756 Local Header Offset   00286556 (2647382)\n-6E275A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E275A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E279B   Length              0005 (5)\n-6E279D   Flags               01 (1) 'Modification'\n-6E279E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E27A2 CENTRAL HEADER #870   02014B50 (33639248)\n-6E27A6 Created Zip Spec      14 (20) '2.0'\n-6E27A7 Created OS            00 (0) 'MS-DOS'\n-6E27A8 Extract Zip Spec      14 (20) '2.0'\n-6E27A9 Extract OS            00 (0) 'MS-DOS'\n-6E27AA General Purpose Flag  0000 (0)\n-6E27AC Compression Method    0000 (0) 'Stored'\n-6E27AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E27B2 CRC                   00000000 (0)\n-6E27B6 Compressed Size       00000000 (0)\n-6E27BA Uncompressed Size     00000000 (0)\n-6E27BE Filename Length       0031 (49)\n-6E27C0 Extra Length          0009 (9)\n-6E27C2 Comment Length        0000 (0)\n-6E27C4 Disk Start            0000 (0)\n-6E27C6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E27C8 Ext File Attributes   00000000 (0)\n-6E27CC Local Header Offset   00287153 (2650451)\n-6E27D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E27D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2801 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2803   Length              0005 (5)\n-6E2805   Flags               01 (1) 'Modification'\n-6E2806   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E280A CENTRAL HEADER #871   02014B50 (33639248)\n-6E280E Created Zip Spec      14 (20) '2.0'\n-6E280F Created OS            00 (0) 'MS-DOS'\n-6E2810 Extract Zip Spec      14 (20) '2.0'\n-6E2811 Extract OS            00 (0) 'MS-DOS'\n-6E2812 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2814 Compression Method    0000 (0) 'Stored'\n-6E2816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E281A CRC                   3EDDC0EF (1054720239)\n-6E281E Compressed Size       00000AA3 (2723)\n-6E2822 Uncompressed Size     00000AA3 (2723)\n-6E2826 Filename Length       0045 (69)\n-6E2828 Extra Length          0009 (9)\n-6E282A Comment Length        0000 (0)\n-6E282C Disk Start            0000 (0)\n-6E282E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2830 Ext File Attributes   00000000 (0)\n-6E2834 Local Header Offset   002871AB (2650539)\n-6E2838 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2838: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E287D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E287F   Length              0005 (5)\n-6E2881   Flags               01 (1) 'Modification'\n-6E2882   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2886 CENTRAL HEADER #872   02014B50 (33639248)\n-6E288A Created Zip Spec      14 (20) '2.0'\n-6E288B Created OS            00 (0) 'MS-DOS'\n-6E288C Extract Zip Spec      14 (20) '2.0'\n-6E288D Extract OS            00 (0) 'MS-DOS'\n-6E288E General Purpose Flag  0000 (0)\n-6E2890 Compression Method    0000 (0) 'Stored'\n-6E2892 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2896 CRC                   00000000 (0)\n-6E289A Compressed Size       00000000 (0)\n-6E289E Uncompressed Size     00000000 (0)\n-6E28A2 Filename Length       0033 (51)\n-6E28A4 Extra Length          0009 (9)\n-6E28A6 Comment Length        0000 (0)\n-6E28A8 Disk Start            0000 (0)\n-6E28AA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E28AC Ext File Attributes   00000000 (0)\n-6E28B0 Local Header Offset   00287CCA (2653386)\n-6E28B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E28B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E28E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E28E9   Length              0005 (5)\n-6E28EB   Flags               01 (1) 'Modification'\n-6E28EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E28F0 CENTRAL HEADER #873   02014B50 (33639248)\n-6E28F4 Created Zip Spec      14 (20) '2.0'\n-6E28F5 Created OS            00 (0) 'MS-DOS'\n-6E28F6 Extract Zip Spec      14 (20) '2.0'\n-6E28F7 Extract OS            00 (0) 'MS-DOS'\n-6E28F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E28FA Compression Method    0000 (0) 'Stored'\n-6E28FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2900 CRC                   25691E02 (627645954)\n-6E2904 Compressed Size       00000B75 (2933)\n-6E2908 Uncompressed Size     00000B75 (2933)\n-6E290C Filename Length       0049 (73)\n-6E290E Extra Length          0009 (9)\n-6E2910 Comment Length        0000 (0)\n-6E2912 Disk Start            0000 (0)\n-6E2914 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2916 Ext File Attributes   00000000 (0)\n-6E291A Local Header Offset   00287D24 (2653476)\n-6E291E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E291E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2967 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2969   Length              0005 (5)\n-6E296B   Flags               01 (1) 'Modification'\n-6E296C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2970 CENTRAL HEADER #874   02014B50 (33639248)\n-6E2974 Created Zip Spec      14 (20) '2.0'\n-6E2975 Created OS            00 (0) 'MS-DOS'\n-6E2976 Extract Zip Spec      14 (20) '2.0'\n-6E2977 Extract OS            00 (0) 'MS-DOS'\n-6E2978 General Purpose Flag  0000 (0)\n-6E297A Compression Method    0000 (0) 'Stored'\n-6E297C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2980 CRC                   00000000 (0)\n-6E2984 Compressed Size       00000000 (0)\n-6E2988 Uncompressed Size     00000000 (0)\n-6E298C Filename Length       001E (30)\n-6E298E Extra Length          0009 (9)\n-6E2990 Comment Length        0000 (0)\n-6E2992 Disk Start            0000 (0)\n-6E2994 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2996 Ext File Attributes   00000000 (0)\n-6E299A Local Header Offset   00288919 (2656537)\n-6E299E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E299E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E29BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E29BE   Length              0005 (5)\n-6E29C0   Flags               01 (1) 'Modification'\n-6E29C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E29C5 CENTRAL HEADER #875   02014B50 (33639248)\n-6E29C9 Created Zip Spec      14 (20) '2.0'\n-6E29CA Created OS            00 (0) 'MS-DOS'\n-6E29CB Extract Zip Spec      14 (20) '2.0'\n-6E29CC Extract OS            00 (0) 'MS-DOS'\n-6E29CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E29CF Compression Method    0000 (0) 'Stored'\n-6E29D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E29D5 CRC                   15C91CF2 (365501682)\n-6E29D9 Compressed Size       000079B9 (31161)\n-6E29DD Uncompressed Size     000079B9 (31161)\n-6E29E1 Filename Length       0033 (51)\n-6E29E3 Extra Length          0009 (9)\n-6E29E5 Comment Length        0000 (0)\n-6E29E7 Disk Start            0000 (0)\n-6E29E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E29EB Ext File Attributes   00000000 (0)\n-6E29EF Local Header Offset   0028895E (2656606)\n-6E29F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E29F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2A26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2A28   Length              0005 (5)\n-6E2A2A   Flags               01 (1) 'Modification'\n-6E2A2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2A2F CENTRAL HEADER #876   02014B50 (33639248)\n-6E2A33 Created Zip Spec      14 (20) '2.0'\n-6E2A34 Created OS            00 (0) 'MS-DOS'\n-6E2A35 Extract Zip Spec      14 (20) '2.0'\n-6E2A36 Extract OS            00 (0) 'MS-DOS'\n-6E2A37 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2A39 Compression Method    0000 (0) 'Stored'\n-6E2A3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2A3F CRC                   896B8386 (2305524614)\n-6E2A43 Compressed Size       0000069C (1692)\n-6E2A47 Uncompressed Size     0000069C (1692)\n-6E2A4B Filename Length       002A (42)\n-6E2A4D Extra Length          0009 (9)\n-6E2A4F Comment Length        0000 (0)\n-6E2A51 Disk Start            0000 (0)\n-6E2A53 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2A55 Ext File Attributes   00000000 (0)\n-6E2A59 Local Header Offset   00290381 (2687873)\n-6E2A5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2A5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2A87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2A89   Length              0005 (5)\n-6E2A8B   Flags               01 (1) 'Modification'\n-6E2A8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2A90 CENTRAL HEADER #877   02014B50 (33639248)\n-6E2A94 Created Zip Spec      14 (20) '2.0'\n-6E2A95 Created OS            00 (0) 'MS-DOS'\n-6E2A96 Extract Zip Spec      14 (20) '2.0'\n-6E2A97 Extract OS            00 (0) 'MS-DOS'\n-6E2A98 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2A9A Compression Method    0000 (0) 'Stored'\n-6E2A9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2AA0 CRC                   2D8D7FE9 (764248041)\n-6E2AA4 Compressed Size       00000769 (1897)\n-6E2AA8 Uncompressed Size     00000769 (1897)\n-6E2AAC Filename Length       0028 (40)\n-6E2AAE Extra Length          0009 (9)\n-6E2AB0 Comment Length        0000 (0)\n-6E2AB2 Disk Start            0000 (0)\n-6E2AB4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2AB6 Ext File Attributes   00000000 (0)\n-6E2ABA Local Header Offset   00290A7E (2689662)\n-6E2ABE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2ABE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2AE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2AE8   Length              0005 (5)\n-6E2AEA   Flags               01 (1) 'Modification'\n-6E2AEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2AEF CENTRAL HEADER #878   02014B50 (33639248)\n-6E2AF3 Created Zip Spec      14 (20) '2.0'\n-6E2AF4 Created OS            00 (0) 'MS-DOS'\n-6E2AF5 Extract Zip Spec      14 (20) '2.0'\n-6E2AF6 Extract OS            00 (0) 'MS-DOS'\n-6E2AF7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2AF9 Compression Method    0000 (0) 'Stored'\n-6E2AFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2AFF CRC                   E9761FB8 (3916832696)\n-6E2B03 Compressed Size       00000497 (1175)\n-6E2B07 Uncompressed Size     00000497 (1175)\n-6E2B0B Filename Length       002C (44)\n-6E2B0D Extra Length          0009 (9)\n-6E2B0F Comment Length        0000 (0)\n-6E2B11 Disk Start            0000 (0)\n-6E2B13 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2B15 Ext File Attributes   00000000 (0)\n-6E2B19 Local Header Offset   00291246 (2691654)\n-6E2B1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2B1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2B49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2B4B   Length              0005 (5)\n-6E2B4D   Flags               01 (1) 'Modification'\n-6E2B4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2B52 CENTRAL HEADER #879   02014B50 (33639248)\n-6E2B56 Created Zip Spec      14 (20) '2.0'\n-6E2B57 Created OS            00 (0) 'MS-DOS'\n-6E2B58 Extract Zip Spec      14 (20) '2.0'\n-6E2B59 Extract OS            00 (0) 'MS-DOS'\n-6E2B5A General Purpose Flag  0000 (0)\n-6E2B5C Compression Method    0000 (0) 'Stored'\n-6E2B5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2B62 CRC                   00000000 (0)\n-6E2B66 Compressed Size       00000000 (0)\n-6E2B6A Uncompressed Size     00000000 (0)\n-6E2B6E Filename Length       001E (30)\n-6E2B70 Extra Length          0009 (9)\n-6E2B72 Comment Length        0000 (0)\n-6E2B74 Disk Start            0000 (0)\n-6E2B76 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2B78 Ext File Attributes   00000000 (0)\n-6E2B7C Local Header Offset   00291740 (2692928)\n-6E2B80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2B80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2B9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2BA0   Length              0005 (5)\n-6E2BA2   Flags               01 (1) 'Modification'\n-6E2BA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2BA7 CENTRAL HEADER #880   02014B50 (33639248)\n-6E2BAB Created Zip Spec      14 (20) '2.0'\n-6E2BAC Created OS            00 (0) 'MS-DOS'\n-6E2BAD Extract Zip Spec      14 (20) '2.0'\n-6E2BAE Extract OS            00 (0) 'MS-DOS'\n-6E2BAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2BB1 Compression Method    0000 (0) 'Stored'\n-6E2BB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2BB7 CRC                   24647E40 (610565696)\n-6E2BBB Compressed Size       00005305 (21253)\n-6E2BBF Uncompressed Size     00005305 (21253)\n-6E2BC3 Filename Length       0032 (50)\n-6E2BC5 Extra Length          0009 (9)\n-6E2BC7 Comment Length        0000 (0)\n-6E2BC9 Disk Start            0000 (0)\n-6E2BCB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2BCD Ext File Attributes   00000000 (0)\n-6E2BD1 Local Header Offset   00291785 (2692997)\n-6E2BD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2BD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2C07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2C09   Length              0005 (5)\n-6E2C0B   Flags               01 (1) 'Modification'\n-6E2C0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2C10 CENTRAL HEADER #881   02014B50 (33639248)\n-6E2C14 Created Zip Spec      14 (20) '2.0'\n-6E2C15 Created OS            00 (0) 'MS-DOS'\n-6E2C16 Extract Zip Spec      14 (20) '2.0'\n-6E2C17 Extract OS            00 (0) 'MS-DOS'\n-6E2C18 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2C1A Compression Method    0000 (0) 'Stored'\n-6E2C1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2C20 CRC                   9612E24D (2517819981)\n-6E2C24 Compressed Size       00000936 (2358)\n-6E2C28 Uncompressed Size     00000936 (2358)\n-6E2C2C Filename Length       002D (45)\n-6E2C2E Extra Length          0009 (9)\n-6E2C30 Comment Length        0000 (0)\n-6E2C32 Disk Start            0000 (0)\n-6E2C34 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2C36 Ext File Attributes   00000000 (0)\n-6E2C3A Local Header Offset   00296AF3 (2714355)\n-6E2C3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2C3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2C6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2C6D   Length              0005 (5)\n-6E2C6F   Flags               01 (1) 'Modification'\n-6E2C70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2C74 CENTRAL HEADER #882   02014B50 (33639248)\n-6E2C78 Created Zip Spec      14 (20) '2.0'\n-6E2C79 Created OS            00 (0) 'MS-DOS'\n-6E2C7A Extract Zip Spec      14 (20) '2.0'\n-6E2C7B Extract OS            00 (0) 'MS-DOS'\n-6E2C7C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2C7E Compression Method    0000 (0) 'Stored'\n-6E2C80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2C84 CRC                   40170699 (1075250841)\n-6E2C88 Compressed Size       0000059E (1438)\n-6E2C8C Uncompressed Size     0000059E (1438)\n-6E2C90 Filename Length       0029 (41)\n-6E2C92 Extra Length          0009 (9)\n-6E2C94 Comment Length        0000 (0)\n-6E2C96 Disk Start            0000 (0)\n-6E2C98 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2C9A Ext File Attributes   00000000 (0)\n-6E2C9E Local Header Offset   0029748D (2716813)\n-6E2CA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2CA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2CCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2CCD   Length              0005 (5)\n-6E2CCF   Flags               01 (1) 'Modification'\n-6E2CD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2CD4 CENTRAL HEADER #883   02014B50 (33639248)\n-6E2CD8 Created Zip Spec      14 (20) '2.0'\n-6E2CD9 Created OS            00 (0) 'MS-DOS'\n-6E2CDA Extract Zip Spec      14 (20) '2.0'\n-6E2CDB Extract OS            00 (0) 'MS-DOS'\n-6E2CDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2CDE Compression Method    0000 (0) 'Stored'\n-6E2CE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2CE4 CRC                   A604EAF8 (2785340152)\n-6E2CE8 Compressed Size       00001249 (4681)\n-6E2CEC Uncompressed Size     00001249 (4681)\n-6E2CF0 Filename Length       0038 (56)\n-6E2CF2 Extra Length          0009 (9)\n-6E2CF4 Comment Length        0000 (0)\n-6E2CF6 Disk Start            0000 (0)\n-6E2CF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2CFA Ext File Attributes   00000000 (0)\n-6E2CFE Local Header Offset   00297A8B (2718347)\n-6E2D02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2D02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2D3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2D3C   Length              0005 (5)\n-6E2D3E   Flags               01 (1) 'Modification'\n-6E2D3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2D43 CENTRAL HEADER #884   02014B50 (33639248)\n-6E2D47 Created Zip Spec      14 (20) '2.0'\n-6E2D48 Created OS            00 (0) 'MS-DOS'\n-6E2D49 Extract Zip Spec      14 (20) '2.0'\n-6E2D4A Extract OS            00 (0) 'MS-DOS'\n-6E2D4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2D4D Compression Method    0000 (0) 'Stored'\n-6E2D4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2D53 CRC                   D7EB77B9 (3622533049)\n-6E2D57 Compressed Size       0000137A (4986)\n-6E2D5B Uncompressed Size     0000137A (4986)\n-6E2D5F Filename Length       002C (44)\n-6E2D61 Extra Length          0009 (9)\n-6E2D63 Comment Length        0000 (0)\n-6E2D65 Disk Start            0000 (0)\n-6E2D67 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2D69 Ext File Attributes   00000000 (0)\n-6E2D6D Local Header Offset   00298D43 (2723139)\n-6E2D71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2D71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2D9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2D9F   Length              0005 (5)\n-6E2DA1   Flags               01 (1) 'Modification'\n-6E2DA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2DA6 CENTRAL HEADER #885   02014B50 (33639248)\n-6E2DAA Created Zip Spec      14 (20) '2.0'\n-6E2DAB Created OS            00 (0) 'MS-DOS'\n-6E2DAC Extract Zip Spec      14 (20) '2.0'\n-6E2DAD Extract OS            00 (0) 'MS-DOS'\n-6E2DAE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2DB0 Compression Method    0000 (0) 'Stored'\n-6E2DB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2DB6 CRC                   95FCA49F (2516362399)\n-6E2DBA Compressed Size       00000510 (1296)\n-6E2DBE Uncompressed Size     00000510 (1296)\n-6E2DC2 Filename Length       0039 (57)\n-6E2DC4 Extra Length          0009 (9)\n-6E2DC6 Comment Length        0000 (0)\n-6E2DC8 Disk Start            0000 (0)\n-6E2DCA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2DCC Ext File Attributes   00000000 (0)\n-6E2DD0 Local Header Offset   0029A120 (2728224)\n-6E2DD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2DD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2E0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2E0F   Length              0005 (5)\n-6E2E11   Flags               01 (1) 'Modification'\n-6E2E12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2E16 CENTRAL HEADER #886   02014B50 (33639248)\n-6E2E1A Created Zip Spec      14 (20) '2.0'\n-6E2E1B Created OS            00 (0) 'MS-DOS'\n-6E2E1C Extract Zip Spec      14 (20) '2.0'\n-6E2E1D Extract OS            00 (0) 'MS-DOS'\n-6E2E1E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2E20 Compression Method    0000 (0) 'Stored'\n-6E2E22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2E26 CRC                   EEA257C4 (4003616708)\n-6E2E2A Compressed Size       000015B8 (5560)\n-6E2E2E Uncompressed Size     000015B8 (5560)\n-6E2E32 Filename Length       002E (46)\n-6E2E34 Extra Length          0009 (9)\n-6E2E36 Comment Length        0000 (0)\n-6E2E38 Disk Start            0000 (0)\n-6E2E3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2E3C Ext File Attributes   00000000 (0)\n-6E2E40 Local Header Offset   0029A6A0 (2729632)\n-6E2E44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2E44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2E72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2E74   Length              0005 (5)\n-6E2E76   Flags               01 (1) 'Modification'\n-6E2E77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2E7B CENTRAL HEADER #887   02014B50 (33639248)\n-6E2E7F Created Zip Spec      14 (20) '2.0'\n-6E2E80 Created OS            00 (0) 'MS-DOS'\n-6E2E81 Extract Zip Spec      14 (20) '2.0'\n-6E2E82 Extract OS            00 (0) 'MS-DOS'\n-6E2E83 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2E85 Compression Method    0000 (0) 'Stored'\n-6E2E87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2E8B CRC                   54F0EEAE (1425075886)\n-6E2E8F Compressed Size       00004623 (17955)\n-6E2E93 Uncompressed Size     00004623 (17955)\n-6E2E97 Filename Length       002D (45)\n-6E2E99 Extra Length          0009 (9)\n-6E2E9B Comment Length        0000 (0)\n-6E2E9D Disk Start            0000 (0)\n-6E2E9F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2EA1 Ext File Attributes   00000000 (0)\n-6E2EA5 Local Header Offset   0029BCBD (2735293)\n-6E2EA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2EA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2ED6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2ED8   Length              0005 (5)\n-6E2EDA   Flags               01 (1) 'Modification'\n-6E2EDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2EDF CENTRAL HEADER #888   02014B50 (33639248)\n-6E2EE3 Created Zip Spec      14 (20) '2.0'\n-6E2EE4 Created OS            00 (0) 'MS-DOS'\n-6E2EE5 Extract Zip Spec      14 (20) '2.0'\n-6E2EE6 Extract OS            00 (0) 'MS-DOS'\n-6E2EE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2EE9 Compression Method    0000 (0) 'Stored'\n-6E2EEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2EEF CRC                   49173B6A (1226259306)\n-6E2EF3 Compressed Size       00002D62 (11618)\n-6E2EF7 Uncompressed Size     00002D62 (11618)\n-6E2EFB Filename Length       0032 (50)\n-6E2EFD Extra Length          0009 (9)\n-6E2EFF Comment Length        0000 (0)\n-6E2F01 Disk Start            0000 (0)\n-6E2F03 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2F05 Ext File Attributes   00000000 (0)\n-6E2F09 Local Header Offset   002A0344 (2753348)\n-6E2F0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2F0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2F3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2F41   Length              0005 (5)\n-6E2F43   Flags               01 (1) 'Modification'\n-6E2F44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2F48 CENTRAL HEADER #889   02014B50 (33639248)\n-6E2F4C Created Zip Spec      14 (20) '2.0'\n-6E2F4D Created OS            00 (0) 'MS-DOS'\n-6E2F4E Extract Zip Spec      14 (20) '2.0'\n-6E2F4F Extract OS            00 (0) 'MS-DOS'\n-6E2F50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2F52 Compression Method    0000 (0) 'Stored'\n-6E2F54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2F58 CRC                   094FFA20 (156236320)\n-6E2F5C Compressed Size       0000235E (9054)\n-6E2F60 Uncompressed Size     0000235E (9054)\n-6E2F64 Filename Length       0036 (54)\n-6E2F66 Extra Length          0009 (9)\n-6E2F68 Comment Length        0000 (0)\n-6E2F6A Disk Start            0000 (0)\n-6E2F6C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2F6E Ext File Attributes   00000000 (0)\n-6E2F72 Local Header Offset   002A310F (2765071)\n-6E2F76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2F76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E2FAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E2FAE   Length              0005 (5)\n-6E2FB0   Flags               01 (1) 'Modification'\n-6E2FB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E2FB5 CENTRAL HEADER #890   02014B50 (33639248)\n-6E2FB9 Created Zip Spec      14 (20) '2.0'\n-6E2FBA Created OS            00 (0) 'MS-DOS'\n-6E2FBB Extract Zip Spec      14 (20) '2.0'\n-6E2FBC Extract OS            00 (0) 'MS-DOS'\n-6E2FBD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E2FBF Compression Method    0000 (0) 'Stored'\n-6E2FC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E2FC5 CRC                   0EFD7C48 (251493448)\n-6E2FC9 Compressed Size       000011C9 (4553)\n-6E2FCD Uncompressed Size     000011C9 (4553)\n-6E2FD1 Filename Length       0034 (52)\n-6E2FD3 Extra Length          0009 (9)\n-6E2FD5 Comment Length        0000 (0)\n-6E2FD7 Disk Start            0000 (0)\n-6E2FD9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E2FDB Ext File Attributes   00000000 (0)\n-6E2FDF Local Header Offset   002A54DA (2774234)\n-6E2FE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E2FE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3017 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3019   Length              0005 (5)\n-6E301B   Flags               01 (1) 'Modification'\n-6E301C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3020 CENTRAL HEADER #891   02014B50 (33639248)\n-6E3024 Created Zip Spec      14 (20) '2.0'\n-6E3025 Created OS            00 (0) 'MS-DOS'\n-6E3026 Extract Zip Spec      14 (20) '2.0'\n-6E3027 Extract OS            00 (0) 'MS-DOS'\n-6E3028 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E302A Compression Method    0000 (0) 'Stored'\n-6E302C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3030 CRC                   8CFD4A70 (2365409904)\n-6E3034 Compressed Size       00002FB5 (12213)\n-6E3038 Uncompressed Size     00002FB5 (12213)\n-6E303C Filename Length       002E (46)\n-6E303E Extra Length          0009 (9)\n-6E3040 Comment Length        0000 (0)\n-6E3042 Disk Start            0000 (0)\n-6E3044 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3046 Ext File Attributes   00000000 (0)\n-6E304A Local Header Offset   002A670E (2778894)\n-6E304E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E304E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E307C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E307E   Length              0005 (5)\n-6E3080   Flags               01 (1) 'Modification'\n-6E3081   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3085 CENTRAL HEADER #892   02014B50 (33639248)\n-6E3089 Created Zip Spec      14 (20) '2.0'\n-6E308A Created OS            00 (0) 'MS-DOS'\n-6E308B Extract Zip Spec      14 (20) '2.0'\n-6E308C Extract OS            00 (0) 'MS-DOS'\n-6E308D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E308F Compression Method    0000 (0) 'Stored'\n-6E3091 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3095 CRC                   81A24999 (2174896537)\n-6E3099 Compressed Size       000008A4 (2212)\n-6E309D Uncompressed Size     000008A4 (2212)\n-6E30A1 Filename Length       002E (46)\n-6E30A3 Extra Length          0009 (9)\n-6E30A5 Comment Length        0000 (0)\n-6E30A7 Disk Start            0000 (0)\n-6E30A9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E30AB Ext File Attributes   00000000 (0)\n-6E30AF Local Header Offset   002A9728 (2791208)\n-6E30B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E30B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E30E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E30E3   Length              0005 (5)\n-6E30E5   Flags               01 (1) 'Modification'\n-6E30E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E30EA CENTRAL HEADER #893   02014B50 (33639248)\n-6E30EE Created Zip Spec      14 (20) '2.0'\n-6E30EF Created OS            00 (0) 'MS-DOS'\n-6E30F0 Extract Zip Spec      14 (20) '2.0'\n-6E30F1 Extract OS            00 (0) 'MS-DOS'\n-6E30F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E30F4 Compression Method    0000 (0) 'Stored'\n-6E30F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E30FA CRC                   831A7179 (2199548281)\n-6E30FE Compressed Size       0000080F (2063)\n-6E3102 Uncompressed Size     0000080F (2063)\n-6E3106 Filename Length       0030 (48)\n-6E3108 Extra Length          0009 (9)\n-6E310A Comment Length        0000 (0)\n-6E310C Disk Start            0000 (0)\n-6E310E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3110 Ext File Attributes   00000000 (0)\n-6E3114 Local Header Offset   002AA031 (2793521)\n-6E3118 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3118: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3148 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E314A   Length              0005 (5)\n-6E314C   Flags               01 (1) 'Modification'\n-6E314D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3151 CENTRAL HEADER #894   02014B50 (33639248)\n-6E3155 Created Zip Spec      14 (20) '2.0'\n-6E3156 Created OS            00 (0) 'MS-DOS'\n-6E3157 Extract Zip Spec      14 (20) '2.0'\n-6E3158 Extract OS            00 (0) 'MS-DOS'\n-6E3159 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E315B Compression Method    0000 (0) 'Stored'\n-6E315D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3161 CRC                   7319AF3E (1931063102)\n-6E3165 Compressed Size       0000143D (5181)\n-6E3169 Uncompressed Size     0000143D (5181)\n-6E316D Filename Length       002F (47)\n-6E316F Extra Length          0009 (9)\n-6E3171 Comment Length        0000 (0)\n-6E3173 Disk Start            0000 (0)\n-6E3175 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3177 Ext File Attributes   00000000 (0)\n-6E317B Local Header Offset   002AA8A7 (2795687)\n-6E317F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E317F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E31AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E31B0   Length              0005 (5)\n-6E31B2   Flags               01 (1) 'Modification'\n-6E31B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E31B7 CENTRAL HEADER #895   02014B50 (33639248)\n-6E31BB Created Zip Spec      14 (20) '2.0'\n-6E31BC Created OS            00 (0) 'MS-DOS'\n-6E31BD Extract Zip Spec      14 (20) '2.0'\n-6E31BE Extract OS            00 (0) 'MS-DOS'\n-6E31BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E31C1 Compression Method    0000 (0) 'Stored'\n-6E31C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E31C7 CRC                   D07CEF7E (3497848702)\n-6E31CB Compressed Size       00001341 (4929)\n-6E31CF Uncompressed Size     00001341 (4929)\n-6E31D3 Filename Length       002D (45)\n-6E31D5 Extra Length          0009 (9)\n-6E31D7 Comment Length        0000 (0)\n-6E31D9 Disk Start            0000 (0)\n-6E31DB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E31DD Ext File Attributes   00000000 (0)\n-6E31E1 Local Header Offset   002ABD4A (2800970)\n-6E31E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E31E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3212 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3214   Length              0005 (5)\n-6E3216   Flags               01 (1) 'Modification'\n-6E3217   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E321B CENTRAL HEADER #896   02014B50 (33639248)\n-6E321F Created Zip Spec      14 (20) '2.0'\n-6E3220 Created OS            00 (0) 'MS-DOS'\n-6E3221 Extract Zip Spec      14 (20) '2.0'\n-6E3222 Extract OS            00 (0) 'MS-DOS'\n-6E3223 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3225 Compression Method    0000 (0) 'Stored'\n-6E3227 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E322B CRC                   4E3FC833 (1312802867)\n-6E322F Compressed Size       00000443 (1091)\n-6E3233 Uncompressed Size     00000443 (1091)\n-6E3237 Filename Length       0029 (41)\n-6E3239 Extra Length          0009 (9)\n-6E323B Comment Length        0000 (0)\n-6E323D Disk Start            0000 (0)\n-6E323F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3241 Ext File Attributes   00000000 (0)\n-6E3245 Local Header Offset   002AD0EF (2805999)\n-6E3249 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3249: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3272 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3274   Length              0005 (5)\n-6E3276   Flags               01 (1) 'Modification'\n-6E3277   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E327B CENTRAL HEADER #897   02014B50 (33639248)\n-6E327F Created Zip Spec      14 (20) '2.0'\n-6E3280 Created OS            00 (0) 'MS-DOS'\n-6E3281 Extract Zip Spec      14 (20) '2.0'\n-6E3282 Extract OS            00 (0) 'MS-DOS'\n-6E3283 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3285 Compression Method    0000 (0) 'Stored'\n-6E3287 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E328B CRC                   7A9C058A (2057045386)\n-6E328F Compressed Size       00002117 (8471)\n-6E3293 Uncompressed Size     00002117 (8471)\n-6E3297 Filename Length       002A (42)\n-6E3299 Extra Length          0009 (9)\n-6E329B Comment Length        0000 (0)\n-6E329D Disk Start            0000 (0)\n-6E329F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E32A1 Ext File Attributes   00000000 (0)\n-6E32A5 Local Header Offset   002AD592 (2807186)\n-6E32A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E32A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E32D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E32D5   Length              0005 (5)\n-6E32D7   Flags               01 (1) 'Modification'\n-6E32D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E32DC CENTRAL HEADER #898   02014B50 (33639248)\n-6E32E0 Created Zip Spec      14 (20) '2.0'\n-6E32E1 Created OS            00 (0) 'MS-DOS'\n-6E32E2 Extract Zip Spec      14 (20) '2.0'\n-6E32E3 Extract OS            00 (0) 'MS-DOS'\n-6E32E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E32E6 Compression Method    0000 (0) 'Stored'\n-6E32E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E32EC CRC                   A4F19F22 (2767298338)\n-6E32F0 Compressed Size       0000104C (4172)\n-6E32F4 Uncompressed Size     0000104C (4172)\n-6E32F8 Filename Length       002A (42)\n-6E32FA Extra Length          0009 (9)\n-6E32FC Comment Length        0000 (0)\n-6E32FE Disk Start            0000 (0)\n-6E3300 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3302 Ext File Attributes   00000000 (0)\n-6E3306 Local Header Offset   002AF70A (2815754)\n-6E330A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E330A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3334 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3336   Length              0005 (5)\n-6E3338   Flags               01 (1) 'Modification'\n-6E3339   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E333D CENTRAL HEADER #899   02014B50 (33639248)\n-6E3341 Created Zip Spec      14 (20) '2.0'\n-6E3342 Created OS            00 (0) 'MS-DOS'\n-6E3343 Extract Zip Spec      14 (20) '2.0'\n-6E3344 Extract OS            00 (0) 'MS-DOS'\n-6E3345 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3347 Compression Method    0000 (0) 'Stored'\n-6E3349 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E334D CRC                   E7A31A4E (3886225998)\n-6E3351 Compressed Size       00002166 (8550)\n-6E3355 Uncompressed Size     00002166 (8550)\n-6E3359 Filename Length       002B (43)\n-6E335B Extra Length          0009 (9)\n-6E335D Comment Length        0000 (0)\n-6E335F Disk Start            0000 (0)\n-6E3361 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3363 Ext File Attributes   00000000 (0)\n-6E3367 Local Header Offset   002B07B7 (2820023)\n-6E336B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E336B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3396 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3398   Length              0005 (5)\n-6E339A   Flags               01 (1) 'Modification'\n-6E339B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E339F CENTRAL HEADER #900   02014B50 (33639248)\n-6E33A3 Created Zip Spec      14 (20) '2.0'\n-6E33A4 Created OS            00 (0) 'MS-DOS'\n-6E33A5 Extract Zip Spec      14 (20) '2.0'\n-6E33A6 Extract OS            00 (0) 'MS-DOS'\n-6E33A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E33A9 Compression Method    0000 (0) 'Stored'\n-6E33AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E33AF CRC                   139F375C (329201500)\n-6E33B3 Compressed Size       00000BC2 (3010)\n-6E33B7 Uncompressed Size     00000BC2 (3010)\n-6E33BB Filename Length       002B (43)\n-6E33BD Extra Length          0009 (9)\n-6E33BF Comment Length        0000 (0)\n-6E33C1 Disk Start            0000 (0)\n-6E33C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E33C5 Ext File Attributes   00000000 (0)\n-6E33C9 Local Header Offset   002B297F (2828671)\n-6E33CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E33CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E33F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E33FA   Length              0005 (5)\n-6E33FC   Flags               01 (1) 'Modification'\n-6E33FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3401 CENTRAL HEADER #901   02014B50 (33639248)\n-6E3405 Created Zip Spec      14 (20) '2.0'\n-6E3406 Created OS            00 (0) 'MS-DOS'\n-6E3407 Extract Zip Spec      14 (20) '2.0'\n-6E3408 Extract OS            00 (0) 'MS-DOS'\n-6E3409 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E340B Compression Method    0000 (0) 'Stored'\n-6E340D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3411 CRC                   C39767CB (3281479627)\n-6E3415 Compressed Size       00000DAA (3498)\n-6E3419 Uncompressed Size     00000DAA (3498)\n-6E341D Filename Length       0026 (38)\n-6E341F Extra Length          0009 (9)\n-6E3421 Comment Length        0000 (0)\n-6E3423 Disk Start            0000 (0)\n-6E3425 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3427 Ext File Attributes   00000000 (0)\n-6E342B Local Header Offset   002B35A3 (2831779)\n-6E342F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E342F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3455 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3457   Length              0005 (5)\n-6E3459   Flags               01 (1) 'Modification'\n-6E345A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E345E CENTRAL HEADER #902   02014B50 (33639248)\n-6E3462 Created Zip Spec      14 (20) '2.0'\n-6E3463 Created OS            00 (0) 'MS-DOS'\n-6E3464 Extract Zip Spec      14 (20) '2.0'\n-6E3465 Extract OS            00 (0) 'MS-DOS'\n-6E3466 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3468 Compression Method    0000 (0) 'Stored'\n-6E346A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E346E CRC                   0C719C80 (208772224)\n-6E3472 Compressed Size       000010C1 (4289)\n-6E3476 Uncompressed Size     000010C1 (4289)\n-6E347A Filename Length       002C (44)\n-6E347C Extra Length          0009 (9)\n-6E347E Comment Length        0000 (0)\n-6E3480 Disk Start            0000 (0)\n-6E3482 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3484 Ext File Attributes   00000000 (0)\n-6E3488 Local Header Offset   002B43AA (2835370)\n-6E348C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E348C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E34B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E34BA   Length              0005 (5)\n-6E34BC   Flags               01 (1) 'Modification'\n-6E34BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E34C1 CENTRAL HEADER #903   02014B50 (33639248)\n-6E34C5 Created Zip Spec      14 (20) '2.0'\n-6E34C6 Created OS            00 (0) 'MS-DOS'\n-6E34C7 Extract Zip Spec      14 (20) '2.0'\n-6E34C8 Extract OS            00 (0) 'MS-DOS'\n-6E34C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E34CB Compression Method    0000 (0) 'Stored'\n-6E34CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E34D1 CRC                   4A73FA6D (1249114733)\n-6E34D5 Compressed Size       000010A2 (4258)\n-6E34D9 Uncompressed Size     000010A2 (4258)\n-6E34DD Filename Length       002A (42)\n-6E34DF Extra Length          0009 (9)\n-6E34E1 Comment Length        0000 (0)\n-6E34E3 Disk Start            0000 (0)\n-6E34E5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E34E7 Ext File Attributes   00000000 (0)\n-6E34EB Local Header Offset   002B54CE (2839758)\n-6E34EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E34EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3519 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E351B   Length              0005 (5)\n-6E351D   Flags               01 (1) 'Modification'\n-6E351E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3522 CENTRAL HEADER #904   02014B50 (33639248)\n-6E3526 Created Zip Spec      14 (20) '2.0'\n-6E3527 Created OS            00 (0) 'MS-DOS'\n-6E3528 Extract Zip Spec      14 (20) '2.0'\n-6E3529 Extract OS            00 (0) 'MS-DOS'\n-6E352A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E352C Compression Method    0000 (0) 'Stored'\n-6E352E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3532 CRC                   7D5526CA (2102732490)\n-6E3536 Compressed Size       00000960 (2400)\n-6E353A Uncompressed Size     00000960 (2400)\n-6E353E Filename Length       002E (46)\n-6E3540 Extra Length          0009 (9)\n-6E3542 Comment Length        0000 (0)\n-6E3544 Disk Start            0000 (0)\n-6E3546 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3548 Ext File Attributes   00000000 (0)\n-6E354C Local Header Offset   002B65D1 (2844113)\n-6E3550 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3550: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E357E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3580   Length              0005 (5)\n-6E3582   Flags               01 (1) 'Modification'\n-6E3583   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3587 CENTRAL HEADER #905   02014B50 (33639248)\n-6E358B Created Zip Spec      14 (20) '2.0'\n-6E358C Created OS            00 (0) 'MS-DOS'\n-6E358D Extract Zip Spec      14 (20) '2.0'\n-6E358E Extract OS            00 (0) 'MS-DOS'\n-6E358F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3591 Compression Method    0000 (0) 'Stored'\n-6E3593 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3597 CRC                   3C2ED9BE (1009703358)\n-6E359B Compressed Size       00000939 (2361)\n-6E359F Uncompressed Size     00000939 (2361)\n-6E35A3 Filename Length       0033 (51)\n-6E35A5 Extra Length          0009 (9)\n-6E35A7 Comment Length        0000 (0)\n-6E35A9 Disk Start            0000 (0)\n-6E35AB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E35AD Ext File Attributes   00000000 (0)\n-6E35B1 Local Header Offset   002B6F96 (2846614)\n-6E35B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E35B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E35E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E35EA   Length              0005 (5)\n-6E35EC   Flags               01 (1) 'Modification'\n-6E35ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E35F1 CENTRAL HEADER #906   02014B50 (33639248)\n-6E35F5 Created Zip Spec      14 (20) '2.0'\n-6E35F6 Created OS            00 (0) 'MS-DOS'\n-6E35F7 Extract Zip Spec      14 (20) '2.0'\n-6E35F8 Extract OS            00 (0) 'MS-DOS'\n-6E35F9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E35FB Compression Method    0000 (0) 'Stored'\n-6E35FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3601 CRC                   BA95C40E (3130377230)\n-6E3605 Compressed Size       000039CB (14795)\n-6E3609 Uncompressed Size     000039CB (14795)\n-6E360D Filename Length       002E (46)\n-6E360F Extra Length          0009 (9)\n-6E3611 Comment Length        0000 (0)\n-6E3613 Disk Start            0000 (0)\n-6E3615 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3617 Ext File Attributes   00000000 (0)\n-6E361B Local Header Offset   002B7939 (2849081)\n-6E361F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E361F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E364D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E364F   Length              0005 (5)\n-6E3651   Flags               01 (1) 'Modification'\n-6E3652   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3656 CENTRAL HEADER #907   02014B50 (33639248)\n-6E365A Created Zip Spec      14 (20) '2.0'\n-6E365B Created OS            00 (0) 'MS-DOS'\n-6E365C Extract Zip Spec      14 (20) '2.0'\n-6E365D Extract OS            00 (0) 'MS-DOS'\n-6E365E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3660 Compression Method    0000 (0) 'Stored'\n-6E3662 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3666 CRC                   A4EA9AD2 (2766838482)\n-6E366A Compressed Size       0000085B (2139)\n-6E366E Uncompressed Size     0000085B (2139)\n-6E3672 Filename Length       0035 (53)\n-6E3674 Extra Length          0009 (9)\n-6E3676 Comment Length        0000 (0)\n-6E3678 Disk Start            0000 (0)\n-6E367A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E367C Ext File Attributes   00000000 (0)\n-6E3680 Local Header Offset   002BB369 (2863977)\n-6E3684 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3684: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E36B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E36BB   Length              0005 (5)\n-6E36BD   Flags               01 (1) 'Modification'\n-6E36BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E36C2 CENTRAL HEADER #908   02014B50 (33639248)\n-6E36C6 Created Zip Spec      14 (20) '2.0'\n-6E36C7 Created OS            00 (0) 'MS-DOS'\n-6E36C8 Extract Zip Spec      14 (20) '2.0'\n-6E36C9 Extract OS            00 (0) 'MS-DOS'\n-6E36CA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E36CC Compression Method    0000 (0) 'Stored'\n-6E36CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E36D2 CRC                   90514D51 (2421247313)\n-6E36D6 Compressed Size       00005DC7 (24007)\n-6E36DA Uncompressed Size     00005DC7 (24007)\n-6E36DE Filename Length       002B (43)\n-6E36E0 Extra Length          0009 (9)\n-6E36E2 Comment Length        0000 (0)\n-6E36E4 Disk Start            0000 (0)\n-6E36E6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E36E8 Ext File Attributes   00000000 (0)\n-6E36EC Local Header Offset   002BBC30 (2866224)\n-6E36F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E36F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E371B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E371D   Length              0005 (5)\n-6E371F   Flags               01 (1) 'Modification'\n-6E3720   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3724 CENTRAL HEADER #909   02014B50 (33639248)\n-6E3728 Created Zip Spec      14 (20) '2.0'\n-6E3729 Created OS            00 (0) 'MS-DOS'\n-6E372A Extract Zip Spec      14 (20) '2.0'\n-6E372B Extract OS            00 (0) 'MS-DOS'\n-6E372C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E372E Compression Method    0000 (0) 'Stored'\n-6E3730 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3734 CRC                   6148ED28 (1632169256)\n-6E3738 Compressed Size       00000813 (2067)\n-6E373C Uncompressed Size     00000813 (2067)\n-6E3740 Filename Length       0027 (39)\n-6E3742 Extra Length          0009 (9)\n-6E3744 Comment Length        0000 (0)\n-6E3746 Disk Start            0000 (0)\n-6E3748 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E374A Ext File Attributes   00000000 (0)\n-6E374E Local Header Offset   002C1A59 (2890329)\n-6E3752 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3752: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3779 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E377B   Length              0005 (5)\n-6E377D   Flags               01 (1) 'Modification'\n-6E377E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3782 CENTRAL HEADER #910   02014B50 (33639248)\n-6E3786 Created Zip Spec      14 (20) '2.0'\n-6E3787 Created OS            00 (0) 'MS-DOS'\n-6E3788 Extract Zip Spec      14 (20) '2.0'\n-6E3789 Extract OS            00 (0) 'MS-DOS'\n-6E378A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E378C Compression Method    0000 (0) 'Stored'\n-6E378E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3792 CRC                   32B357AB (850614187)\n-6E3796 Compressed Size       0000095A (2394)\n-6E379A Uncompressed Size     0000095A (2394)\n-6E379E Filename Length       002C (44)\n-6E37A0 Extra Length          0009 (9)\n-6E37A2 Comment Length        0000 (0)\n-6E37A4 Disk Start            0000 (0)\n-6E37A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E37A8 Ext File Attributes   00000000 (0)\n-6E37AC Local Header Offset   002C22CA (2892490)\n-6E37B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E37B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E37DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E37DE   Length              0005 (5)\n-6E37E0   Flags               01 (1) 'Modification'\n-6E37E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E37E5 CENTRAL HEADER #911   02014B50 (33639248)\n-6E37E9 Created Zip Spec      14 (20) '2.0'\n-6E37EA Created OS            00 (0) 'MS-DOS'\n-6E37EB Extract Zip Spec      14 (20) '2.0'\n-6E37EC Extract OS            00 (0) 'MS-DOS'\n-6E37ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E37EF Compression Method    0000 (0) 'Stored'\n-6E37F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E37F5 CRC                   34D97477 (886666359)\n-6E37F9 Compressed Size       00008320 (33568)\n-6E37FD Uncompressed Size     00008320 (33568)\n-6E3801 Filename Length       002C (44)\n-6E3803 Extra Length          0009 (9)\n-6E3805 Comment Length        0000 (0)\n-6E3807 Disk Start            0000 (0)\n-6E3809 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E380B Ext File Attributes   00000000 (0)\n-6E380F Local Header Offset   002C2C87 (2894983)\n-6E3813 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3813: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E383F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3841   Length              0005 (5)\n-6E3843   Flags               01 (1) 'Modification'\n-6E3844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3848 CENTRAL HEADER #912   02014B50 (33639248)\n-6E384C Created Zip Spec      14 (20) '2.0'\n-6E384D Created OS            00 (0) 'MS-DOS'\n-6E384E Extract Zip Spec      14 (20) '2.0'\n-6E384F Extract OS            00 (0) 'MS-DOS'\n-6E3850 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3852 Compression Method    0000 (0) 'Stored'\n-6E3854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3858 CRC                   6788144F (1736971343)\n-6E385C Compressed Size       0000B91D (47389)\n-6E3860 Uncompressed Size     0000B91D (47389)\n-6E3864 Filename Length       002F (47)\n-6E3866 Extra Length          0009 (9)\n-6E3868 Comment Length        0000 (0)\n-6E386A Disk Start            0000 (0)\n-6E386C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E386E Ext File Attributes   00000000 (0)\n-6E3872 Local Header Offset   002CB00A (2928650)\n-6E3876 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3876: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E38A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E38A7   Length              0005 (5)\n-6E38A9   Flags               01 (1) 'Modification'\n-6E38AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E38AE CENTRAL HEADER #913   02014B50 (33639248)\n-6E38B2 Created Zip Spec      14 (20) '2.0'\n-6E38B3 Created OS            00 (0) 'MS-DOS'\n-6E38B4 Extract Zip Spec      14 (20) '2.0'\n-6E38B5 Extract OS            00 (0) 'MS-DOS'\n-6E38B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E38B8 Compression Method    0000 (0) 'Stored'\n-6E38BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E38BE CRC                   9D4E3C73 (2639150195)\n-6E38C2 Compressed Size       00001707 (5895)\n-6E38C6 Uncompressed Size     00001707 (5895)\n-6E38CA Filename Length       0038 (56)\n-6E38CC Extra Length          0009 (9)\n-6E38CE Comment Length        0000 (0)\n-6E38D0 Disk Start            0000 (0)\n-6E38D2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E38D4 Ext File Attributes   00000000 (0)\n-6E38D8 Local Header Offset   002D698D (2976141)\n-6E38DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E38DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3914 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3916   Length              0005 (5)\n-6E3918   Flags               01 (1) 'Modification'\n-6E3919   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E391D CENTRAL HEADER #914   02014B50 (33639248)\n-6E3921 Created Zip Spec      14 (20) '2.0'\n-6E3922 Created OS            00 (0) 'MS-DOS'\n-6E3923 Extract Zip Spec      14 (20) '2.0'\n-6E3924 Extract OS            00 (0) 'MS-DOS'\n-6E3925 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3927 Compression Method    0000 (0) 'Stored'\n-6E3929 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E392D CRC                   359BAAF7 (899394295)\n-6E3931 Compressed Size       000011CA (4554)\n-6E3935 Uncompressed Size     000011CA (4554)\n-6E3939 Filename Length       003C (60)\n-6E393B Extra Length          0009 (9)\n-6E393D Comment Length        0000 (0)\n-6E393F Disk Start            0000 (0)\n-6E3941 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3943 Ext File Attributes   00000000 (0)\n-6E3947 Local Header Offset   002D8103 (2982147)\n-6E394B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E394B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3987 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3989   Length              0005 (5)\n-6E398B   Flags               01 (1) 'Modification'\n-6E398C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3990 CENTRAL HEADER #915   02014B50 (33639248)\n-6E3994 Created Zip Spec      14 (20) '2.0'\n-6E3995 Created OS            00 (0) 'MS-DOS'\n-6E3996 Extract Zip Spec      14 (20) '2.0'\n-6E3997 Extract OS            00 (0) 'MS-DOS'\n-6E3998 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E399A Compression Method    0000 (0) 'Stored'\n-6E399C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E39A0 CRC                   4DF6AB6E (1308011374)\n-6E39A4 Compressed Size       00000CBD (3261)\n-6E39A8 Uncompressed Size     00000CBD (3261)\n-6E39AC Filename Length       0028 (40)\n-6E39AE Extra Length          0009 (9)\n-6E39B0 Comment Length        0000 (0)\n-6E39B2 Disk Start            0000 (0)\n-6E39B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E39B6 Ext File Attributes   00000000 (0)\n-6E39BA Local Header Offset   002D9340 (2986816)\n-6E39BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E39BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E39E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E39E8   Length              0005 (5)\n-6E39EA   Flags               01 (1) 'Modification'\n-6E39EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E39EF CENTRAL HEADER #916   02014B50 (33639248)\n-6E39F3 Created Zip Spec      14 (20) '2.0'\n-6E39F4 Created OS            00 (0) 'MS-DOS'\n-6E39F5 Extract Zip Spec      14 (20) '2.0'\n-6E39F6 Extract OS            00 (0) 'MS-DOS'\n-6E39F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E39F9 Compression Method    0000 (0) 'Stored'\n-6E39FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E39FF CRC                   E15897D6 (3780679638)\n-6E3A03 Compressed Size       00000A1C (2588)\n-6E3A07 Uncompressed Size     00000A1C (2588)\n-6E3A0B Filename Length       0044 (68)\n-6E3A0D Extra Length          0009 (9)\n-6E3A0F Comment Length        0000 (0)\n-6E3A11 Disk Start            0000 (0)\n-6E3A13 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3A15 Ext File Attributes   00000000 (0)\n-6E3A19 Local Header Offset   002DA05C (2990172)\n-6E3A1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3A1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3A61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3A63   Length              0005 (5)\n-6E3A65   Flags               01 (1) 'Modification'\n-6E3A66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3A6A CENTRAL HEADER #917   02014B50 (33639248)\n-6E3A6E Created Zip Spec      14 (20) '2.0'\n-6E3A6F Created OS            00 (0) 'MS-DOS'\n-6E3A70 Extract Zip Spec      14 (20) '2.0'\n-6E3A71 Extract OS            00 (0) 'MS-DOS'\n-6E3A72 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3A74 Compression Method    0000 (0) 'Stored'\n-6E3A76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3A7A CRC                   080CFD86 (135069062)\n-6E3A7E Compressed Size       00009370 (37744)\n-6E3A82 Uncompressed Size     00009370 (37744)\n-6E3A86 Filename Length       002E (46)\n-6E3A88 Extra Length          0009 (9)\n-6E3A8A Comment Length        0000 (0)\n-6E3A8C Disk Start            0000 (0)\n-6E3A8E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3A90 Ext File Attributes   00000000 (0)\n-6E3A94 Local Header Offset   002DAAF3 (2992883)\n-6E3A98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3A98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3AC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3AC8   Length              0005 (5)\n-6E3ACA   Flags               01 (1) 'Modification'\n-6E3ACB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3ACF CENTRAL HEADER #918   02014B50 (33639248)\n-6E3AD3 Created Zip Spec      14 (20) '2.0'\n-6E3AD4 Created OS            00 (0) 'MS-DOS'\n-6E3AD5 Extract Zip Spec      14 (20) '2.0'\n-6E3AD6 Extract OS            00 (0) 'MS-DOS'\n-6E3AD7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3AD9 Compression Method    0000 (0) 'Stored'\n-6E3ADB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3ADF CRC                   45127F53 (1158840147)\n-6E3AE3 Compressed Size       000021F8 (8696)\n-6E3AE7 Uncompressed Size     000021F8 (8696)\n-6E3AEB Filename Length       002C (44)\n-6E3AED Extra Length          0009 (9)\n-6E3AEF Comment Length        0000 (0)\n-6E3AF1 Disk Start            0000 (0)\n-6E3AF3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3AF5 Ext File Attributes   00000000 (0)\n-6E3AF9 Local Header Offset   002E3EC8 (3030728)\n-6E3AFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3AFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3B29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3B2B   Length              0005 (5)\n-6E3B2D   Flags               01 (1) 'Modification'\n-6E3B2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3B32 CENTRAL HEADER #919   02014B50 (33639248)\n-6E3B36 Created Zip Spec      14 (20) '2.0'\n-6E3B37 Created OS            00 (0) 'MS-DOS'\n-6E3B38 Extract Zip Spec      14 (20) '2.0'\n-6E3B39 Extract OS            00 (0) 'MS-DOS'\n-6E3B3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3B3C Compression Method    0000 (0) 'Stored'\n-6E3B3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3B42 CRC                   BCEF5B37 (3169803063)\n-6E3B46 Compressed Size       0000634F (25423)\n-6E3B4A Uncompressed Size     0000634F (25423)\n-6E3B4E Filename Length       002B (43)\n-6E3B50 Extra Length          0009 (9)\n-6E3B52 Comment Length        0000 (0)\n-6E3B54 Disk Start            0000 (0)\n-6E3B56 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3B58 Ext File Attributes   00000000 (0)\n-6E3B5C Local Header Offset   002E6123 (3039523)\n-6E3B60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3B60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3B8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3B8D   Length              0005 (5)\n-6E3B8F   Flags               01 (1) 'Modification'\n-6E3B90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3B94 CENTRAL HEADER #920   02014B50 (33639248)\n-6E3B98 Created Zip Spec      14 (20) '2.0'\n-6E3B99 Created OS            00 (0) 'MS-DOS'\n-6E3B9A Extract Zip Spec      14 (20) '2.0'\n-6E3B9B Extract OS            00 (0) 'MS-DOS'\n-6E3B9C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3B9E Compression Method    0000 (0) 'Stored'\n-6E3BA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3BA4 CRC                   E7AAF9A0 (3886741920)\n-6E3BA8 Compressed Size       000026C6 (9926)\n-6E3BAC Uncompressed Size     000026C6 (9926)\n-6E3BB0 Filename Length       002C (44)\n-6E3BB2 Extra Length          0009 (9)\n-6E3BB4 Comment Length        0000 (0)\n-6E3BB6 Disk Start            0000 (0)\n-6E3BB8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3BBA Ext File Attributes   00000000 (0)\n-6E3BBE Local Header Offset   002EC4D4 (3065044)\n-6E3BC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3BC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3BEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3BF0   Length              0005 (5)\n-6E3BF2   Flags               01 (1) 'Modification'\n-6E3BF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3BF7 CENTRAL HEADER #921   02014B50 (33639248)\n-6E3BFB Created Zip Spec      14 (20) '2.0'\n-6E3BFC Created OS            00 (0) 'MS-DOS'\n-6E3BFD Extract Zip Spec      14 (20) '2.0'\n-6E3BFE Extract OS            00 (0) 'MS-DOS'\n-6E3BFF General Purpose Flag  0000 (0)\n-6E3C01 Compression Method    0000 (0) 'Stored'\n-6E3C03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3C07 CRC                   00000000 (0)\n-6E3C0B Compressed Size       00000000 (0)\n-6E3C0F Uncompressed Size     00000000 (0)\n-6E3C13 Filename Length       0018 (24)\n-6E3C15 Extra Length          0009 (9)\n-6E3C17 Comment Length        0000 (0)\n-6E3C19 Disk Start            0000 (0)\n-6E3C1B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3C1D Ext File Attributes   00000000 (0)\n-6E3C21 Local Header Offset   002EEBFD (3075069)\n-6E3C25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3C25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3C3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3C3F   Length              0005 (5)\n-6E3C41   Flags               01 (1) 'Modification'\n-6E3C42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3C46 CENTRAL HEADER #922   02014B50 (33639248)\n-6E3C4A Created Zip Spec      14 (20) '2.0'\n-6E3C4B Created OS            00 (0) 'MS-DOS'\n-6E3C4C Extract Zip Spec      14 (20) '2.0'\n-6E3C4D Extract OS            00 (0) 'MS-DOS'\n-6E3C4E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3C50 Compression Method    0000 (0) 'Stored'\n-6E3C52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3C56 CRC                   4A1B9248 (1243320904)\n-6E3C5A Compressed Size       0000642A (25642)\n-6E3C5E Uncompressed Size     0000642A (25642)\n-6E3C62 Filename Length       002B (43)\n-6E3C64 Extra Length          0009 (9)\n-6E3C66 Comment Length        0000 (0)\n-6E3C68 Disk Start            0000 (0)\n-6E3C6A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3C6C Ext File Attributes   00000000 (0)\n-6E3C70 Local Header Offset   002EEC3C (3075132)\n-6E3C74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3C74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3C9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3CA1   Length              0005 (5)\n-6E3CA3   Flags               01 (1) 'Modification'\n-6E3CA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3CA8 CENTRAL HEADER #923   02014B50 (33639248)\n-6E3CAC Created Zip Spec      14 (20) '2.0'\n-6E3CAD Created OS            00 (0) 'MS-DOS'\n-6E3CAE Extract Zip Spec      14 (20) '2.0'\n-6E3CAF Extract OS            00 (0) 'MS-DOS'\n-6E3CB0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3CB2 Compression Method    0000 (0) 'Stored'\n-6E3CB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3CB8 CRC                   4BCB8E78 (1271631480)\n-6E3CBC Compressed Size       00005EF7 (24311)\n-6E3CC0 Uncompressed Size     00005EF7 (24311)\n-6E3CC4 Filename Length       0034 (52)\n-6E3CC6 Extra Length          0009 (9)\n-6E3CC8 Comment Length        0000 (0)\n-6E3CCA Disk Start            0000 (0)\n-6E3CCC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3CCE Ext File Attributes   00000000 (0)\n-6E3CD2 Local Header Offset   002F50C8 (3100872)\n-6E3CD6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3CD6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3D0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3D0C   Length              0005 (5)\n-6E3D0E   Flags               01 (1) 'Modification'\n-6E3D0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3D13 CENTRAL HEADER #924   02014B50 (33639248)\n-6E3D17 Created Zip Spec      14 (20) '2.0'\n-6E3D18 Created OS            00 (0) 'MS-DOS'\n-6E3D19 Extract Zip Spec      14 (20) '2.0'\n-6E3D1A Extract OS            00 (0) 'MS-DOS'\n-6E3D1B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3D1D Compression Method    0000 (0) 'Stored'\n-6E3D1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3D23 CRC                   EBCB75D3 (3955979731)\n-6E3D27 Compressed Size       00001235 (4661)\n-6E3D2B Uncompressed Size     00001235 (4661)\n-6E3D2F Filename Length       0031 (49)\n-6E3D31 Extra Length          0009 (9)\n-6E3D33 Comment Length        0000 (0)\n-6E3D35 Disk Start            0000 (0)\n-6E3D37 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3D39 Ext File Attributes   00000000 (0)\n-6E3D3D Local Header Offset   002FB02A (3125290)\n-6E3D41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3D41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3D72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3D74   Length              0005 (5)\n-6E3D76   Flags               01 (1) 'Modification'\n-6E3D77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3D7B CENTRAL HEADER #925   02014B50 (33639248)\n-6E3D7F Created Zip Spec      14 (20) '2.0'\n-6E3D80 Created OS            00 (0) 'MS-DOS'\n-6E3D81 Extract Zip Spec      14 (20) '2.0'\n-6E3D82 Extract OS            00 (0) 'MS-DOS'\n-6E3D83 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3D85 Compression Method    0000 (0) 'Stored'\n-6E3D87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3D8B CRC                   0D6CD567 (225236327)\n-6E3D8F Compressed Size       000015F5 (5621)\n-6E3D93 Uncompressed Size     000015F5 (5621)\n-6E3D97 Filename Length       0034 (52)\n-6E3D99 Extra Length          0009 (9)\n-6E3D9B Comment Length        0000 (0)\n-6E3D9D Disk Start            0000 (0)\n-6E3D9F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3DA1 Ext File Attributes   00000000 (0)\n-6E3DA5 Local Header Offset   002FC2C7 (3130055)\n-6E3DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3DDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3DDF   Length              0005 (5)\n-6E3DE1   Flags               01 (1) 'Modification'\n-6E3DE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3DE6 CENTRAL HEADER #926   02014B50 (33639248)\n-6E3DEA Created Zip Spec      14 (20) '2.0'\n-6E3DEB Created OS            00 (0) 'MS-DOS'\n-6E3DEC Extract Zip Spec      14 (20) '2.0'\n-6E3DED Extract OS            00 (0) 'MS-DOS'\n-6E3DEE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3DF0 Compression Method    0000 (0) 'Stored'\n-6E3DF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3DF6 CRC                   6E97D75C (1855444828)\n-6E3DFA Compressed Size       00001A42 (6722)\n-6E3DFE Uncompressed Size     00001A42 (6722)\n-6E3E02 Filename Length       0032 (50)\n-6E3E04 Extra Length          0009 (9)\n-6E3E06 Comment Length        0000 (0)\n-6E3E08 Disk Start            0000 (0)\n-6E3E0A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3E0C Ext File Attributes   00000000 (0)\n-6E3E10 Local Header Offset   002FD927 (3135783)\n-6E3E14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3E14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3E46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3E48   Length              0005 (5)\n-6E3E4A   Flags               01 (1) 'Modification'\n-6E3E4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3E4F CENTRAL HEADER #927   02014B50 (33639248)\n-6E3E53 Created Zip Spec      14 (20) '2.0'\n-6E3E54 Created OS            00 (0) 'MS-DOS'\n-6E3E55 Extract Zip Spec      14 (20) '2.0'\n-6E3E56 Extract OS            00 (0) 'MS-DOS'\n-6E3E57 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3E59 Compression Method    0000 (0) 'Stored'\n-6E3E5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3E5F CRC                   327F969A (847222426)\n-6E3E63 Compressed Size       0000350F (13583)\n-6E3E67 Uncompressed Size     0000350F (13583)\n-6E3E6B Filename Length       002E (46)\n-6E3E6D Extra Length          0009 (9)\n-6E3E6F Comment Length        0000 (0)\n-6E3E71 Disk Start            0000 (0)\n-6E3E73 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3E75 Ext File Attributes   00000000 (0)\n-6E3E79 Local Header Offset   002FF3D2 (3142610)\n-6E3E7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3E7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3EAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3EAD   Length              0005 (5)\n-6E3EAF   Flags               01 (1) 'Modification'\n-6E3EB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3EB4 CENTRAL HEADER #928   02014B50 (33639248)\n-6E3EB8 Created Zip Spec      14 (20) '2.0'\n-6E3EB9 Created OS            00 (0) 'MS-DOS'\n-6E3EBA Extract Zip Spec      14 (20) '2.0'\n-6E3EBB Extract OS            00 (0) 'MS-DOS'\n-6E3EBC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3EBE Compression Method    0000 (0) 'Stored'\n-6E3EC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3EC4 CRC                   C17F60B4 (3246350516)\n-6E3EC8 Compressed Size       0000084E (2126)\n-6E3ECC Uncompressed Size     0000084E (2126)\n-6E3ED0 Filename Length       002B (43)\n-6E3ED2 Extra Length          0009 (9)\n-6E3ED4 Comment Length        0000 (0)\n-6E3ED6 Disk Start            0000 (0)\n-6E3ED8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3EDA Ext File Attributes   00000000 (0)\n-6E3EDE Local Header Offset   00302946 (3156294)\n-6E3EE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3EE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3F0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3F0F   Length              0005 (5)\n-6E3F11   Flags               01 (1) 'Modification'\n-6E3F12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3F16 CENTRAL HEADER #929   02014B50 (33639248)\n-6E3F1A Created Zip Spec      14 (20) '2.0'\n-6E3F1B Created OS            00 (0) 'MS-DOS'\n-6E3F1C Extract Zip Spec      14 (20) '2.0'\n-6E3F1D Extract OS            00 (0) 'MS-DOS'\n-6E3F1E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3F20 Compression Method    0000 (0) 'Stored'\n-6E3F22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3F26 CRC                   60259860 (1613076576)\n-6E3F2A Compressed Size       0000229B (8859)\n-6E3F2E Uncompressed Size     0000229B (8859)\n-6E3F32 Filename Length       002F (47)\n-6E3F34 Extra Length          0009 (9)\n-6E3F36 Comment Length        0000 (0)\n-6E3F38 Disk Start            0000 (0)\n-6E3F3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3F3C Ext File Attributes   00000000 (0)\n-6E3F40 Local Header Offset   003031F6 (3158518)\n-6E3F44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3F44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3F73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3F75   Length              0005 (5)\n-6E3F77   Flags               01 (1) 'Modification'\n-6E3F78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3F7C CENTRAL HEADER #930   02014B50 (33639248)\n-6E3F80 Created Zip Spec      14 (20) '2.0'\n-6E3F81 Created OS            00 (0) 'MS-DOS'\n-6E3F82 Extract Zip Spec      14 (20) '2.0'\n-6E3F83 Extract OS            00 (0) 'MS-DOS'\n-6E3F84 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3F86 Compression Method    0000 (0) 'Stored'\n-6E3F88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3F8C CRC                   44C14167 (1153515879)\n-6E3F90 Compressed Size       00000471 (1137)\n-6E3F94 Uncompressed Size     00000471 (1137)\n-6E3F98 Filename Length       002E (46)\n-6E3F9A Extra Length          0009 (9)\n-6E3F9C Comment Length        0000 (0)\n-6E3F9E Disk Start            0000 (0)\n-6E3FA0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E3FA2 Ext File Attributes   00000000 (0)\n-6E3FA6 Local Header Offset   003054F7 (3167479)\n-6E3FAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E3FAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E3FD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E3FDA   Length              0005 (5)\n-6E3FDC   Flags               01 (1) 'Modification'\n-6E3FDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E3FE1 CENTRAL HEADER #931   02014B50 (33639248)\n-6E3FE5 Created Zip Spec      14 (20) '2.0'\n-6E3FE6 Created OS            00 (0) 'MS-DOS'\n-6E3FE7 Extract Zip Spec      14 (20) '2.0'\n-6E3FE8 Extract OS            00 (0) 'MS-DOS'\n-6E3FE9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E3FEB Compression Method    0000 (0) 'Stored'\n-6E3FED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E3FF1 CRC                   F5917ED9 (4119953113)\n-6E3FF5 Compressed Size       0000045C (1116)\n-6E3FF9 Uncompressed Size     0000045C (1116)\n-6E3FFD Filename Length       0030 (48)\n-6E3FFF Extra Length          0009 (9)\n-6E4001 Comment Length        0000 (0)\n-6E4003 Disk Start            0000 (0)\n-6E4005 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4007 Ext File Attributes   00000000 (0)\n-6E400B Local Header Offset   003059CD (3168717)\n-6E400F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E400F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E403F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4041   Length              0005 (5)\n-6E4043   Flags               01 (1) 'Modification'\n-6E4044   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4048 CENTRAL HEADER #932   02014B50 (33639248)\n-6E404C Created Zip Spec      14 (20) '2.0'\n-6E404D Created OS            00 (0) 'MS-DOS'\n-6E404E Extract Zip Spec      14 (20) '2.0'\n-6E404F Extract OS            00 (0) 'MS-DOS'\n-6E4050 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4052 Compression Method    0000 (0) 'Stored'\n-6E4054 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4058 CRC                   CBED4405 (3421324293)\n-6E405C Compressed Size       00000B21 (2849)\n-6E4060 Uncompressed Size     00000B21 (2849)\n-6E4064 Filename Length       0026 (38)\n-6E4066 Extra Length          0009 (9)\n-6E4068 Comment Length        0000 (0)\n-6E406A Disk Start            0000 (0)\n-6E406C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E406E Ext File Attributes   00000000 (0)\n-6E4072 Local Header Offset   00305E90 (3169936)\n-6E4076 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4076: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E409C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E409E   Length              0005 (5)\n-6E40A0   Flags               01 (1) 'Modification'\n-6E40A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E40A5 CENTRAL HEADER #933   02014B50 (33639248)\n-6E40A9 Created Zip Spec      14 (20) '2.0'\n-6E40AA Created OS            00 (0) 'MS-DOS'\n-6E40AB Extract Zip Spec      14 (20) '2.0'\n-6E40AC Extract OS            00 (0) 'MS-DOS'\n-6E40AD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E40AF Compression Method    0000 (0) 'Stored'\n-6E40B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E40B5 CRC                   4EECAFD1 (1324134353)\n-6E40B9 Compressed Size       00000DF0 (3568)\n-6E40BD Uncompressed Size     00000DF0 (3568)\n-6E40C1 Filename Length       002B (43)\n-6E40C3 Extra Length          0009 (9)\n-6E40C5 Comment Length        0000 (0)\n-6E40C7 Disk Start            0000 (0)\n-6E40C9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E40CB Ext File Attributes   00000000 (0)\n-6E40CF Local Header Offset   00306A0E (3172878)\n-6E40D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E40D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E40FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4100   Length              0005 (5)\n-6E4102   Flags               01 (1) 'Modification'\n-6E4103   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4107 CENTRAL HEADER #934   02014B50 (33639248)\n-6E410B Created Zip Spec      14 (20) '2.0'\n-6E410C Created OS            00 (0) 'MS-DOS'\n-6E410D Extract Zip Spec      14 (20) '2.0'\n-6E410E Extract OS            00 (0) 'MS-DOS'\n-6E410F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4111 Compression Method    0000 (0) 'Stored'\n-6E4113 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4117 CRC                   7CE2D61E (2095240734)\n-6E411B Compressed Size       0000131F (4895)\n-6E411F Uncompressed Size     0000131F (4895)\n-6E4123 Filename Length       002E (46)\n-6E4125 Extra Length          0009 (9)\n-6E4127 Comment Length        0000 (0)\n-6E4129 Disk Start            0000 (0)\n-6E412B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E412D Ext File Attributes   00000000 (0)\n-6E4131 Local Header Offset   00307860 (3176544)\n-6E4135 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4135: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4163 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4165   Length              0005 (5)\n-6E4167   Flags               01 (1) 'Modification'\n-6E4168   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E416C CENTRAL HEADER #935   02014B50 (33639248)\n-6E4170 Created Zip Spec      14 (20) '2.0'\n-6E4171 Created OS            00 (0) 'MS-DOS'\n-6E4172 Extract Zip Spec      14 (20) '2.0'\n-6E4173 Extract OS            00 (0) 'MS-DOS'\n-6E4174 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4176 Compression Method    0000 (0) 'Stored'\n-6E4178 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E417C CRC                   44E5E8ED (1155918061)\n-6E4180 Compressed Size       00001786 (6022)\n-6E4184 Uncompressed Size     00001786 (6022)\n-6E4188 Filename Length       0031 (49)\n-6E418A Extra Length          0009 (9)\n-6E418C Comment Length        0000 (0)\n-6E418E Disk Start            0000 (0)\n-6E4190 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4192 Ext File Attributes   00000000 (0)\n-6E4196 Local Header Offset   00308BE4 (3181540)\n-6E419A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E419A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E41CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E41CD   Length              0005 (5)\n-6E41CF   Flags               01 (1) 'Modification'\n-6E41D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E41D4 CENTRAL HEADER #936   02014B50 (33639248)\n-6E41D8 Created Zip Spec      14 (20) '2.0'\n-6E41D9 Created OS            00 (0) 'MS-DOS'\n-6E41DA Extract Zip Spec      14 (20) '2.0'\n-6E41DB Extract OS            00 (0) 'MS-DOS'\n-6E41DC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E41DE Compression Method    0000 (0) 'Stored'\n-6E41E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E41E4 CRC                   AEF897E4 (2935527396)\n-6E41E8 Compressed Size       00002174 (8564)\n-6E41EC Uncompressed Size     00002174 (8564)\n-6E41F0 Filename Length       0029 (41)\n-6E41F2 Extra Length          0009 (9)\n-6E41F4 Comment Length        0000 (0)\n-6E41F6 Disk Start            0000 (0)\n-6E41F8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E41FA Ext File Attributes   00000000 (0)\n-6E41FE Local Header Offset   0030A3D2 (3187666)\n-6E4202 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4202: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E422B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E422D   Length              0005 (5)\n-6E422F   Flags               01 (1) 'Modification'\n-6E4230   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4234 CENTRAL HEADER #937   02014B50 (33639248)\n-6E4238 Created Zip Spec      14 (20) '2.0'\n-6E4239 Created OS            00 (0) 'MS-DOS'\n-6E423A Extract Zip Spec      14 (20) '2.0'\n-6E423B Extract OS            00 (0) 'MS-DOS'\n-6E423C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E423E Compression Method    0000 (0) 'Stored'\n-6E4240 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4244 CRC                   1F3B896F (523995503)\n-6E4248 Compressed Size       0000065A (1626)\n-6E424C Uncompressed Size     0000065A (1626)\n-6E4250 Filename Length       002A (42)\n-6E4252 Extra Length          0009 (9)\n-6E4254 Comment Length        0000 (0)\n-6E4256 Disk Start            0000 (0)\n-6E4258 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E425A Ext File Attributes   00000000 (0)\n-6E425E Local Header Offset   0030C5A6 (3196326)\n-6E4262 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4262: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E428C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E428E   Length              0005 (5)\n-6E4290   Flags               01 (1) 'Modification'\n-6E4291   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4295 CENTRAL HEADER #938   02014B50 (33639248)\n-6E4299 Created Zip Spec      14 (20) '2.0'\n-6E429A Created OS            00 (0) 'MS-DOS'\n-6E429B Extract Zip Spec      14 (20) '2.0'\n-6E429C Extract OS            00 (0) 'MS-DOS'\n-6E429D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E429F Compression Method    0000 (0) 'Stored'\n-6E42A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E42A5 CRC                   FE661D4B (4268105035)\n-6E42A9 Compressed Size       00000DF5 (3573)\n-6E42AD Uncompressed Size     00000DF5 (3573)\n-6E42B1 Filename Length       0029 (41)\n-6E42B3 Extra Length          0009 (9)\n-6E42B5 Comment Length        0000 (0)\n-6E42B7 Disk Start            0000 (0)\n-6E42B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E42BB Ext File Attributes   00000000 (0)\n-6E42BF Local Header Offset   0030CC61 (3198049)\n-6E42C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E42C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E42EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E42EE   Length              0005 (5)\n-6E42F0   Flags               01 (1) 'Modification'\n-6E42F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E42F5 CENTRAL HEADER #939   02014B50 (33639248)\n-6E42F9 Created Zip Spec      14 (20) '2.0'\n-6E42FA Created OS            00 (0) 'MS-DOS'\n-6E42FB Extract Zip Spec      14 (20) '2.0'\n-6E42FC Extract OS            00 (0) 'MS-DOS'\n-6E42FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E42FF Compression Method    0000 (0) 'Stored'\n-6E4301 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4305 CRC                   32F83356 (855126870)\n-6E4309 Compressed Size       00000E80 (3712)\n-6E430D Uncompressed Size     00000E80 (3712)\n-6E4311 Filename Length       002A (42)\n-6E4313 Extra Length          0009 (9)\n-6E4315 Comment Length        0000 (0)\n-6E4317 Disk Start            0000 (0)\n-6E4319 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E431B Ext File Attributes   00000000 (0)\n-6E431F Local Header Offset   0030DAB6 (3201718)\n-6E4323 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4323: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E434D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E434F   Length              0005 (5)\n-6E4351   Flags               01 (1) 'Modification'\n-6E4352   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4356 CENTRAL HEADER #940   02014B50 (33639248)\n-6E435A Created Zip Spec      14 (20) '2.0'\n-6E435B Created OS            00 (0) 'MS-DOS'\n-6E435C Extract Zip Spec      14 (20) '2.0'\n-6E435D Extract OS            00 (0) 'MS-DOS'\n-6E435E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4360 Compression Method    0000 (0) 'Stored'\n-6E4362 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4366 CRC                   5B6E7792 (1533966226)\n-6E436A Compressed Size       000033BD (13245)\n-6E436E Uncompressed Size     000033BD (13245)\n-6E4372 Filename Length       002B (43)\n-6E4374 Extra Length          0009 (9)\n-6E4376 Comment Length        0000 (0)\n-6E4378 Disk Start            0000 (0)\n-6E437A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E437C Ext File Attributes   00000000 (0)\n-6E4380 Local Header Offset   0030E997 (3205527)\n-6E4384 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4384: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E43AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E43B1   Length              0005 (5)\n-6E43B3   Flags               01 (1) 'Modification'\n-6E43B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E43B8 CENTRAL HEADER #941   02014B50 (33639248)\n-6E43BC Created Zip Spec      14 (20) '2.0'\n-6E43BD Created OS            00 (0) 'MS-DOS'\n-6E43BE Extract Zip Spec      14 (20) '2.0'\n-6E43BF Extract OS            00 (0) 'MS-DOS'\n-6E43C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E43C2 Compression Method    0000 (0) 'Stored'\n-6E43C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E43C8 CRC                   321C1C15 (840702997)\n-6E43CC Compressed Size       00002894 (10388)\n-6E43D0 Uncompressed Size     00002894 (10388)\n-6E43D4 Filename Length       002B (43)\n-6E43D6 Extra Length          0009 (9)\n-6E43D8 Comment Length        0000 (0)\n-6E43DA Disk Start            0000 (0)\n-6E43DC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E43DE Ext File Attributes   00000000 (0)\n-6E43E2 Local Header Offset   00311DB6 (3218870)\n-6E43E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E43E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4411 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4413   Length              0005 (5)\n-6E4415   Flags               01 (1) 'Modification'\n-6E4416   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E441A CENTRAL HEADER #942   02014B50 (33639248)\n-6E441E Created Zip Spec      14 (20) '2.0'\n-6E441F Created OS            00 (0) 'MS-DOS'\n-6E4420 Extract Zip Spec      14 (20) '2.0'\n-6E4421 Extract OS            00 (0) 'MS-DOS'\n-6E4422 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4424 Compression Method    0000 (0) 'Stored'\n-6E4426 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E442A CRC                   5F946D70 (1603562864)\n-6E442E Compressed Size       00005E41 (24129)\n-6E4432 Uncompressed Size     00005E41 (24129)\n-6E4436 Filename Length       002C (44)\n-6E4438 Extra Length          0009 (9)\n-6E443A Comment Length        0000 (0)\n-6E443C Disk Start            0000 (0)\n-6E443E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4440 Ext File Attributes   00000000 (0)\n-6E4444 Local Header Offset   003146AC (3229356)\n-6E4448 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4448: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4474 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4476   Length              0005 (5)\n-6E4478   Flags               01 (1) 'Modification'\n-6E4479   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E447D CENTRAL HEADER #943   02014B50 (33639248)\n-6E4481 Created Zip Spec      14 (20) '2.0'\n-6E4482 Created OS            00 (0) 'MS-DOS'\n-6E4483 Extract Zip Spec      14 (20) '2.0'\n-6E4484 Extract OS            00 (0) 'MS-DOS'\n-6E4485 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4487 Compression Method    0000 (0) 'Stored'\n-6E4489 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E448D CRC                   52C8839A (1388872602)\n-6E4491 Compressed Size       000020A7 (8359)\n-6E4495 Uncompressed Size     000020A7 (8359)\n-6E4499 Filename Length       0030 (48)\n-6E449B Extra Length          0009 (9)\n-6E449D Comment Length        0000 (0)\n-6E449F Disk Start            0000 (0)\n-6E44A1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E44A3 Ext File Attributes   00000000 (0)\n-6E44A7 Local Header Offset   0031A550 (3253584)\n-6E44AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E44AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E44DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E44DD   Length              0005 (5)\n-6E44DF   Flags               01 (1) 'Modification'\n-6E44E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E44E4 CENTRAL HEADER #944   02014B50 (33639248)\n-6E44E8 Created Zip Spec      14 (20) '2.0'\n-6E44E9 Created OS            00 (0) 'MS-DOS'\n-6E44EA Extract Zip Spec      14 (20) '2.0'\n-6E44EB Extract OS            00 (0) 'MS-DOS'\n-6E44EC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E44EE Compression Method    0000 (0) 'Stored'\n-6E44F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E44F4 CRC                   838E36DD (2207135453)\n-6E44F8 Compressed Size       00003312 (13074)\n-6E44FC Uncompressed Size     00003312 (13074)\n-6E4500 Filename Length       002B (43)\n-6E4502 Extra Length          0009 (9)\n-6E4504 Comment Length        0000 (0)\n-6E4506 Disk Start            0000 (0)\n-6E4508 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E450A Ext File Attributes   00000000 (0)\n-6E450E Local Header Offset   0031C65E (3262046)\n-6E4512 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4512: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E453D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E453F   Length              0005 (5)\n-6E4541   Flags               01 (1) 'Modification'\n-6E4542   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4546 CENTRAL HEADER #945   02014B50 (33639248)\n-6E454A Created Zip Spec      14 (20) '2.0'\n-6E454B Created OS            00 (0) 'MS-DOS'\n-6E454C Extract Zip Spec      14 (20) '2.0'\n-6E454D Extract OS            00 (0) 'MS-DOS'\n-6E454E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4550 Compression Method    0000 (0) 'Stored'\n-6E4552 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4556 CRC                   CBF03B71 (3421518705)\n-6E455A Compressed Size       00007DD7 (32215)\n-6E455E Uncompressed Size     00007DD7 (32215)\n-6E4562 Filename Length       002A (42)\n-6E4564 Extra Length          0009 (9)\n-6E4566 Comment Length        0000 (0)\n-6E4568 Disk Start            0000 (0)\n-6E456A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E456C Ext File Attributes   00000000 (0)\n-6E4570 Local Header Offset   0031F9D2 (3275218)\n-6E4574 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4574: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E459E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E45A0   Length              0005 (5)\n-6E45A2   Flags               01 (1) 'Modification'\n-6E45A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E45A7 CENTRAL HEADER #946   02014B50 (33639248)\n-6E45AB Created Zip Spec      14 (20) '2.0'\n-6E45AC Created OS            00 (0) 'MS-DOS'\n-6E45AD Extract Zip Spec      14 (20) '2.0'\n-6E45AE Extract OS            00 (0) 'MS-DOS'\n-6E45AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E45B1 Compression Method    0000 (0) 'Stored'\n-6E45B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E45B7 CRC                   CB5B9E0C (3411779084)\n-6E45BB Compressed Size       00003489 (13449)\n-6E45BF Uncompressed Size     00003489 (13449)\n-6E45C3 Filename Length       002E (46)\n-6E45C5 Extra Length          0009 (9)\n-6E45C7 Comment Length        0000 (0)\n-6E45C9 Disk Start            0000 (0)\n-6E45CB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E45CD Ext File Attributes   00000000 (0)\n-6E45D1 Local Header Offset   0032780A (3307530)\n-6E45D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E45D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4603 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4605   Length              0005 (5)\n-6E4607   Flags               01 (1) 'Modification'\n-6E4608   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E460C CENTRAL HEADER #947   02014B50 (33639248)\n-6E4610 Created Zip Spec      14 (20) '2.0'\n-6E4611 Created OS            00 (0) 'MS-DOS'\n-6E4612 Extract Zip Spec      14 (20) '2.0'\n-6E4613 Extract OS            00 (0) 'MS-DOS'\n-6E4614 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4616 Compression Method    0000 (0) 'Stored'\n-6E4618 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E461C CRC                   5FCFA231 (1607442993)\n-6E4620 Compressed Size       00001BE6 (7142)\n-6E4624 Uncompressed Size     00001BE6 (7142)\n-6E4628 Filename Length       0026 (38)\n-6E462A Extra Length          0009 (9)\n-6E462C Comment Length        0000 (0)\n-6E462E Disk Start            0000 (0)\n-6E4630 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4632 Ext File Attributes   00000000 (0)\n-6E4636 Local Header Offset   0032ACF8 (3321080)\n-6E463A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E463A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4660 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4662   Length              0005 (5)\n-6E4664   Flags               01 (1) 'Modification'\n-6E4665   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4669 CENTRAL HEADER #948   02014B50 (33639248)\n-6E466D Created Zip Spec      14 (20) '2.0'\n-6E466E Created OS            00 (0) 'MS-DOS'\n-6E466F Extract Zip Spec      14 (20) '2.0'\n-6E4670 Extract OS            00 (0) 'MS-DOS'\n-6E4671 General Purpose Flag  0000 (0)\n-6E4673 Compression Method    0000 (0) 'Stored'\n-6E4675 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4679 CRC                   00000000 (0)\n-6E467D Compressed Size       00000000 (0)\n-6E4681 Uncompressed Size     00000000 (0)\n-6E4685 Filename Length       0023 (35)\n-6E4687 Extra Length          0009 (9)\n-6E4689 Comment Length        0000 (0)\n-6E468B Disk Start            0000 (0)\n-6E468D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E468F Ext File Attributes   00000000 (0)\n-6E4693 Local Header Offset   0032C93B (3328315)\n-6E4697 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4697: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E46BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E46BC   Length              0005 (5)\n-6E46BE   Flags               01 (1) 'Modification'\n-6E46BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E46C3 CENTRAL HEADER #949   02014B50 (33639248)\n-6E46C7 Created Zip Spec      14 (20) '2.0'\n-6E46C8 Created OS            00 (0) 'MS-DOS'\n-6E46C9 Extract Zip Spec      14 (20) '2.0'\n-6E46CA Extract OS            00 (0) 'MS-DOS'\n-6E46CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E46CD Compression Method    0000 (0) 'Stored'\n-6E46CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E46D3 CRC                   53B2D875 (1404229749)\n-6E46D7 Compressed Size       000005A4 (1444)\n-6E46DB Uncompressed Size     000005A4 (1444)\n-6E46DF Filename Length       0030 (48)\n-6E46E1 Extra Length          0009 (9)\n-6E46E3 Comment Length        0000 (0)\n-6E46E5 Disk Start            0000 (0)\n-6E46E7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E46E9 Ext File Attributes   00000000 (0)\n-6E46ED Local Header Offset   0032C985 (3328389)\n-6E46F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E46F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4721 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4723   Length              0005 (5)\n-6E4725   Flags               01 (1) 'Modification'\n-6E4726   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E472A CENTRAL HEADER #950   02014B50 (33639248)\n-6E472E Created Zip Spec      14 (20) '2.0'\n-6E472F Created OS            00 (0) 'MS-DOS'\n-6E4730 Extract Zip Spec      14 (20) '2.0'\n-6E4731 Extract OS            00 (0) 'MS-DOS'\n-6E4732 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4734 Compression Method    0000 (0) 'Stored'\n-6E4736 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E473A CRC                   07CF28F9 (131016953)\n-6E473E Compressed Size       00001D72 (7538)\n-6E4742 Uncompressed Size     00001D72 (7538)\n-6E4746 Filename Length       0036 (54)\n-6E4748 Extra Length          0009 (9)\n-6E474A Comment Length        0000 (0)\n-6E474C Disk Start            0000 (0)\n-6E474E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4750 Ext File Attributes   00000000 (0)\n-6E4754 Local Header Offset   0032CF90 (3329936)\n-6E4758 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4758: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E478E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4790   Length              0005 (5)\n-6E4792   Flags               01 (1) 'Modification'\n-6E4793   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4797 CENTRAL HEADER #951   02014B50 (33639248)\n-6E479B Created Zip Spec      14 (20) '2.0'\n-6E479C Created OS            00 (0) 'MS-DOS'\n-6E479D Extract Zip Spec      14 (20) '2.0'\n-6E479E Extract OS            00 (0) 'MS-DOS'\n-6E479F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E47A1 Compression Method    0000 (0) 'Stored'\n-6E47A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E47A7 CRC                   FF8666DF (4286998239)\n-6E47AB Compressed Size       00001A8A (6794)\n-6E47AF Uncompressed Size     00001A8A (6794)\n-6E47B3 Filename Length       0034 (52)\n-6E47B5 Extra Length          0009 (9)\n-6E47B7 Comment Length        0000 (0)\n-6E47B9 Disk Start            0000 (0)\n-6E47BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E47BD Ext File Attributes   00000000 (0)\n-6E47C1 Local Header Offset   0032ED6F (3337583)\n-6E47C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E47C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E47F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E47FB   Length              0005 (5)\n-6E47FD   Flags               01 (1) 'Modification'\n-6E47FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4802 CENTRAL HEADER #952   02014B50 (33639248)\n-6E4806 Created Zip Spec      14 (20) '2.0'\n-6E4807 Created OS            00 (0) 'MS-DOS'\n-6E4808 Extract Zip Spec      14 (20) '2.0'\n-6E4809 Extract OS            00 (0) 'MS-DOS'\n-6E480A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E480C Compression Method    0000 (0) 'Stored'\n-6E480E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4812 CRC                   C4C508F0 (3301247216)\n-6E4816 Compressed Size       00000751 (1873)\n-6E481A Uncompressed Size     00000751 (1873)\n-6E481E Filename Length       002E (46)\n-6E4820 Extra Length          0009 (9)\n-6E4822 Comment Length        0000 (0)\n-6E4824 Disk Start            0000 (0)\n-6E4826 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4828 Ext File Attributes   00000000 (0)\n-6E482C Local Header Offset   00330864 (3344484)\n-6E4830 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4830: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E485E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4860   Length              0005 (5)\n-6E4862   Flags               01 (1) 'Modification'\n-6E4863   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4867 CENTRAL HEADER #953   02014B50 (33639248)\n-6E486B Created Zip Spec      14 (20) '2.0'\n-6E486C Created OS            00 (0) 'MS-DOS'\n-6E486D Extract Zip Spec      14 (20) '2.0'\n-6E486E Extract OS            00 (0) 'MS-DOS'\n-6E486F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4871 Compression Method    0000 (0) 'Stored'\n-6E4873 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4877 CRC                   55945694 (1435784852)\n-6E487B Compressed Size       00001B9B (7067)\n-6E487F Uncompressed Size     00001B9B (7067)\n-6E4883 Filename Length       0031 (49)\n-6E4885 Extra Length          0009 (9)\n-6E4887 Comment Length        0000 (0)\n-6E4889 Disk Start            0000 (0)\n-6E488B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E488D Ext File Attributes   00000000 (0)\n-6E4891 Local Header Offset   0033101A (3346458)\n-6E4895 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4895: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E48C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E48C8   Length              0005 (5)\n-6E48CA   Flags               01 (1) 'Modification'\n-6E48CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E48CF CENTRAL HEADER #954   02014B50 (33639248)\n-6E48D3 Created Zip Spec      14 (20) '2.0'\n-6E48D4 Created OS            00 (0) 'MS-DOS'\n-6E48D5 Extract Zip Spec      14 (20) '2.0'\n-6E48D6 Extract OS            00 (0) 'MS-DOS'\n-6E48D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E48D9 Compression Method    0000 (0) 'Stored'\n-6E48DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E48DF CRC                   CEB8A43B (3468207163)\n-6E48E3 Compressed Size       00001ABC (6844)\n-6E48E7 Uncompressed Size     00001ABC (6844)\n-6E48EB Filename Length       002F (47)\n-6E48ED Extra Length          0009 (9)\n-6E48EF Comment Length        0000 (0)\n-6E48F1 Disk Start            0000 (0)\n-6E48F3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E48F5 Ext File Attributes   00000000 (0)\n-6E48F9 Local Header Offset   00332C1D (3353629)\n-6E48FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E48FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E492C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E492E   Length              0005 (5)\n-6E4930   Flags               01 (1) 'Modification'\n-6E4931   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4935 CENTRAL HEADER #955   02014B50 (33639248)\n-6E4939 Created Zip Spec      14 (20) '2.0'\n-6E493A Created OS            00 (0) 'MS-DOS'\n-6E493B Extract Zip Spec      14 (20) '2.0'\n-6E493C Extract OS            00 (0) 'MS-DOS'\n-6E493D General Purpose Flag  0000 (0)\n-6E493F Compression Method    0000 (0) 'Stored'\n-6E4941 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4945 CRC                   00000000 (0)\n-6E4949 Compressed Size       00000000 (0)\n-6E494D Uncompressed Size     00000000 (0)\n-6E4951 Filename Length       0022 (34)\n-6E4953 Extra Length          0009 (9)\n-6E4955 Comment Length        0000 (0)\n-6E4957 Disk Start            0000 (0)\n-6E4959 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E495B Ext File Attributes   00000000 (0)\n-6E495F Local Header Offset   0033473F (3360575)\n-6E4963 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4963: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4985 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4987   Length              0005 (5)\n-6E4989   Flags               01 (1) 'Modification'\n-6E498A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E498E CENTRAL HEADER #956   02014B50 (33639248)\n-6E4992 Created Zip Spec      14 (20) '2.0'\n-6E4993 Created OS            00 (0) 'MS-DOS'\n-6E4994 Extract Zip Spec      14 (20) '2.0'\n-6E4995 Extract OS            00 (0) 'MS-DOS'\n-6E4996 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4998 Compression Method    0000 (0) 'Stored'\n-6E499A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E499E CRC                   57D2914C (1473417548)\n-6E49A2 Compressed Size       0000CCAC (52396)\n-6E49A6 Uncompressed Size     0000CCAC (52396)\n-6E49AA Filename Length       0035 (53)\n-6E49AC Extra Length          0009 (9)\n-6E49AE Comment Length        0000 (0)\n-6E49B0 Disk Start            0000 (0)\n-6E49B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E49B4 Ext File Attributes   00000000 (0)\n-6E49B8 Local Header Offset   00334788 (3360648)\n-6E49BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E49BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E49F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E49F3   Length              0005 (5)\n-6E49F5   Flags               01 (1) 'Modification'\n-6E49F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E49FA CENTRAL HEADER #957   02014B50 (33639248)\n-6E49FE Created Zip Spec      14 (20) '2.0'\n-6E49FF Created OS            00 (0) 'MS-DOS'\n-6E4A00 Extract Zip Spec      14 (20) '2.0'\n-6E4A01 Extract OS            00 (0) 'MS-DOS'\n-6E4A02 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4A04 Compression Method    0000 (0) 'Stored'\n-6E4A06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4A0A CRC                   BB643DBD (3143908797)\n-6E4A0E Compressed Size       0000046C (1132)\n-6E4A12 Uncompressed Size     0000046C (1132)\n-6E4A16 Filename Length       0046 (70)\n-6E4A18 Extra Length          0009 (9)\n-6E4A1A Comment Length        0000 (0)\n-6E4A1C Disk Start            0000 (0)\n-6E4A1E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4A20 Ext File Attributes   00000000 (0)\n-6E4A24 Local Header Offset   003414A0 (3413152)\n-6E4A28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4A28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4A6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4A70   Length              0005 (5)\n-6E4A72   Flags               01 (1) 'Modification'\n-6E4A73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4A77 CENTRAL HEADER #958   02014B50 (33639248)\n-6E4A7B Created Zip Spec      14 (20) '2.0'\n-6E4A7C Created OS            00 (0) 'MS-DOS'\n-6E4A7D Extract Zip Spec      14 (20) '2.0'\n-6E4A7E Extract OS            00 (0) 'MS-DOS'\n-6E4A7F General Purpose Flag  0000 (0)\n-6E4A81 Compression Method    0000 (0) 'Stored'\n-6E4A83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4A87 CRC                   00000000 (0)\n-6E4A8B Compressed Size       00000000 (0)\n-6E4A8F Uncompressed Size     00000000 (0)\n-6E4A93 Filename Length       002B (43)\n-6E4A95 Extra Length          0009 (9)\n-6E4A97 Comment Length        0000 (0)\n-6E4A99 Disk Start            0000 (0)\n-6E4A9B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4A9D Ext File Attributes   00000000 (0)\n-6E4AA1 Local Header Offset   00341989 (3414409)\n-6E4AA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4AA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4AD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4AD2   Length              0005 (5)\n-6E4AD4   Flags               01 (1) 'Modification'\n-6E4AD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4AD9 CENTRAL HEADER #959   02014B50 (33639248)\n-6E4ADD Created Zip Spec      14 (20) '2.0'\n-6E4ADE Created OS            00 (0) 'MS-DOS'\n-6E4ADF Extract Zip Spec      14 (20) '2.0'\n-6E4AE0 Extract OS            00 (0) 'MS-DOS'\n-6E4AE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4AE3 Compression Method    0000 (0) 'Stored'\n-6E4AE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4AE9 CRC                   272CCF3E (657248062)\n-6E4AED Compressed Size       000009E5 (2533)\n-6E4AF1 Uncompressed Size     000009E5 (2533)\n-6E4AF5 Filename Length       003F (63)\n-6E4AF7 Extra Length          0009 (9)\n-6E4AF9 Comment Length        0000 (0)\n-6E4AFB Disk Start            0000 (0)\n-6E4AFD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4AFF Ext File Attributes   00000000 (0)\n-6E4B03 Local Header Offset   003419DB (3414491)\n-6E4B07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4B07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4B46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4B48   Length              0005 (5)\n-6E4B4A   Flags               01 (1) 'Modification'\n-6E4B4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4B4F CENTRAL HEADER #960   02014B50 (33639248)\n-6E4B53 Created Zip Spec      14 (20) '2.0'\n-6E4B54 Created OS            00 (0) 'MS-DOS'\n-6E4B55 Extract Zip Spec      14 (20) '2.0'\n-6E4B56 Extract OS            00 (0) 'MS-DOS'\n-6E4B57 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4B59 Compression Method    0000 (0) 'Stored'\n-6E4B5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4B5F CRC                   A2DFDA9A (2732579482)\n-6E4B63 Compressed Size       000023FC (9212)\n-6E4B67 Uncompressed Size     000023FC (9212)\n-6E4B6B Filename Length       0048 (72)\n-6E4B6D Extra Length          0009 (9)\n-6E4B6F Comment Length        0000 (0)\n-6E4B71 Disk Start            0000 (0)\n-6E4B73 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4B75 Ext File Attributes   00000000 (0)\n-6E4B79 Local Header Offset   00342436 (3417142)\n-6E4B7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4B7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4BC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4BC7   Length              0005 (5)\n-6E4BC9   Flags               01 (1) 'Modification'\n-6E4BCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4BCE CENTRAL HEADER #961   02014B50 (33639248)\n-6E4BD2 Created Zip Spec      14 (20) '2.0'\n-6E4BD3 Created OS            00 (0) 'MS-DOS'\n-6E4BD4 Extract Zip Spec      14 (20) '2.0'\n-6E4BD5 Extract OS            00 (0) 'MS-DOS'\n-6E4BD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4BD8 Compression Method    0000 (0) 'Stored'\n-6E4BDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4BDE CRC                   99D438F5 (2580822261)\n-6E4BE2 Compressed Size       00001582 (5506)\n-6E4BE6 Uncompressed Size     00001582 (5506)\n-6E4BEA Filename Length       0045 (69)\n-6E4BEC Extra Length          0009 (9)\n-6E4BEE Comment Length        0000 (0)\n-6E4BF0 Disk Start            0000 (0)\n-6E4BF2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4BF4 Ext File Attributes   00000000 (0)\n-6E4BF8 Local Header Offset   003448B1 (3426481)\n-6E4BFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4BFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4C41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4C43   Length              0005 (5)\n-6E4C45   Flags               01 (1) 'Modification'\n-6E4C46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4C4A CENTRAL HEADER #962   02014B50 (33639248)\n-6E4C4E Created Zip Spec      14 (20) '2.0'\n-6E4C4F Created OS            00 (0) 'MS-DOS'\n-6E4C50 Extract Zip Spec      14 (20) '2.0'\n-6E4C51 Extract OS            00 (0) 'MS-DOS'\n-6E4C52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4C54 Compression Method    0000 (0) 'Stored'\n-6E4C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4C5A CRC                   348CD6A3 (881645219)\n-6E4C5E Compressed Size       00001009 (4105)\n-6E4C62 Uncompressed Size     00001009 (4105)\n-6E4C66 Filename Length       0048 (72)\n-6E4C68 Extra Length          0009 (9)\n-6E4C6A Comment Length        0000 (0)\n-6E4C6C Disk Start            0000 (0)\n-6E4C6E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4C70 Ext File Attributes   00000000 (0)\n-6E4C74 Local Header Offset   00345EAF (3432111)\n-6E4C78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4C78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4CC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4CC2   Length              0005 (5)\n-6E4CC4   Flags               01 (1) 'Modification'\n-6E4CC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4CC9 CENTRAL HEADER #963   02014B50 (33639248)\n-6E4CCD Created Zip Spec      14 (20) '2.0'\n-6E4CCE Created OS            00 (0) 'MS-DOS'\n-6E4CCF Extract Zip Spec      14 (20) '2.0'\n-6E4CD0 Extract OS            00 (0) 'MS-DOS'\n-6E4CD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4CD3 Compression Method    0000 (0) 'Stored'\n-6E4CD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4CD9 CRC                   C2D529E3 (3268749795)\n-6E4CDD Compressed Size       00001A83 (6787)\n-6E4CE1 Uncompressed Size     00001A83 (6787)\n-6E4CE5 Filename Length       0046 (70)\n-6E4CE7 Extra Length          0009 (9)\n-6E4CE9 Comment Length        0000 (0)\n-6E4CEB Disk Start            0000 (0)\n-6E4CED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4CEF Ext File Attributes   00000000 (0)\n-6E4CF3 Local Header Offset   00346F37 (3436343)\n-6E4CF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4CF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4D3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4D3F   Length              0005 (5)\n-6E4D41   Flags               01 (1) 'Modification'\n-6E4D42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4D46 CENTRAL HEADER #964   02014B50 (33639248)\n-6E4D4A Created Zip Spec      14 (20) '2.0'\n-6E4D4B Created OS            00 (0) 'MS-DOS'\n-6E4D4C Extract Zip Spec      14 (20) '2.0'\n-6E4D4D Extract OS            00 (0) 'MS-DOS'\n-6E4D4E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4D50 Compression Method    0000 (0) 'Stored'\n-6E4D52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4D56 CRC                   E72A3EBF (3878305471)\n-6E4D5A Compressed Size       00001A6F (6767)\n-6E4D5E Uncompressed Size     00001A6F (6767)\n-6E4D62 Filename Length       0042 (66)\n-6E4D64 Extra Length          0009 (9)\n-6E4D66 Comment Length        0000 (0)\n-6E4D68 Disk Start            0000 (0)\n-6E4D6A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4D6C Ext File Attributes   00000000 (0)\n-6E4D70 Local Header Offset   00348A37 (3443255)\n-6E4D74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4D74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4DB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4DB8   Length              0005 (5)\n-6E4DBA   Flags               01 (1) 'Modification'\n-6E4DBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4DBF CENTRAL HEADER #965   02014B50 (33639248)\n-6E4DC3 Created Zip Spec      14 (20) '2.0'\n-6E4DC4 Created OS            00 (0) 'MS-DOS'\n-6E4DC5 Extract Zip Spec      14 (20) '2.0'\n-6E4DC6 Extract OS            00 (0) 'MS-DOS'\n-6E4DC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4DC9 Compression Method    0000 (0) 'Stored'\n-6E4DCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4DCF CRC                   1CF76EFC (485977852)\n-6E4DD3 Compressed Size       00000749 (1865)\n-6E4DD7 Uncompressed Size     00000749 (1865)\n-6E4DDB Filename Length       003F (63)\n-6E4DDD Extra Length          0009 (9)\n-6E4DDF Comment Length        0000 (0)\n-6E4DE1 Disk Start            0000 (0)\n-6E4DE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4DE5 Ext File Attributes   00000000 (0)\n-6E4DE9 Local Header Offset   0034A51F (3450143)\n-6E4DED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4DED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4E2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4E2E   Length              0005 (5)\n-6E4E30   Flags               01 (1) 'Modification'\n-6E4E31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4E35 CENTRAL HEADER #966   02014B50 (33639248)\n-6E4E39 Created Zip Spec      14 (20) '2.0'\n-6E4E3A Created OS            00 (0) 'MS-DOS'\n-6E4E3B Extract Zip Spec      14 (20) '2.0'\n-6E4E3C Extract OS            00 (0) 'MS-DOS'\n-6E4E3D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4E3F Compression Method    0000 (0) 'Stored'\n-6E4E41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4E45 CRC                   187BA855 (410757205)\n-6E4E49 Compressed Size       000010FE (4350)\n-6E4E4D Uncompressed Size     000010FE (4350)\n-6E4E51 Filename Length       0043 (67)\n-6E4E53 Extra Length          0009 (9)\n-6E4E55 Comment Length        0000 (0)\n-6E4E57 Disk Start            0000 (0)\n-6E4E59 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4E5B Ext File Attributes   00000000 (0)\n-6E4E5F Local Header Offset   0034ACDE (3452126)\n-6E4E63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4E63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4EA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4EA8   Length              0005 (5)\n-6E4EAA   Flags               01 (1) 'Modification'\n-6E4EAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4EAF CENTRAL HEADER #967   02014B50 (33639248)\n-6E4EB3 Created Zip Spec      14 (20) '2.0'\n-6E4EB4 Created OS            00 (0) 'MS-DOS'\n-6E4EB5 Extract Zip Spec      14 (20) '2.0'\n-6E4EB6 Extract OS            00 (0) 'MS-DOS'\n-6E4EB7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4EB9 Compression Method    0000 (0) 'Stored'\n-6E4EBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4EBF CRC                   D7A41DAE (3617856942)\n-6E4EC3 Compressed Size       00000D3D (3389)\n-6E4EC7 Uncompressed Size     00000D3D (3389)\n-6E4ECB Filename Length       003F (63)\n-6E4ECD Extra Length          0009 (9)\n-6E4ECF Comment Length        0000 (0)\n-6E4ED1 Disk Start            0000 (0)\n-6E4ED3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4ED5 Ext File Attributes   00000000 (0)\n-6E4ED9 Local Header Offset   0034BE56 (3456598)\n-6E4EDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4EDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4F1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4F1E   Length              0005 (5)\n-6E4F20   Flags               01 (1) 'Modification'\n-6E4F21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4F25 CENTRAL HEADER #968   02014B50 (33639248)\n-6E4F29 Created Zip Spec      14 (20) '2.0'\n-6E4F2A Created OS            00 (0) 'MS-DOS'\n-6E4F2B Extract Zip Spec      14 (20) '2.0'\n-6E4F2C Extract OS            00 (0) 'MS-DOS'\n-6E4F2D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4F2F Compression Method    0000 (0) 'Stored'\n-6E4F31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4F35 CRC                   F1C1369F (4055971487)\n-6E4F39 Compressed Size       000010CF (4303)\n-6E4F3D Uncompressed Size     000010CF (4303)\n-6E4F41 Filename Length       0045 (69)\n-6E4F43 Extra Length          0009 (9)\n-6E4F45 Comment Length        0000 (0)\n-6E4F47 Disk Start            0000 (0)\n-6E4F49 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4F4B Ext File Attributes   00000000 (0)\n-6E4F4F Local Header Offset   0034CC09 (3460105)\n-6E4F53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4F53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E4F98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E4F9A   Length              0005 (5)\n-6E4F9C   Flags               01 (1) 'Modification'\n-6E4F9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E4FA1 CENTRAL HEADER #969   02014B50 (33639248)\n-6E4FA5 Created Zip Spec      14 (20) '2.0'\n-6E4FA6 Created OS            00 (0) 'MS-DOS'\n-6E4FA7 Extract Zip Spec      14 (20) '2.0'\n-6E4FA8 Extract OS            00 (0) 'MS-DOS'\n-6E4FA9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E4FAB Compression Method    0000 (0) 'Stored'\n-6E4FAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E4FB1 CRC                   B12B8896 (2972420246)\n-6E4FB5 Compressed Size       000017E3 (6115)\n-6E4FB9 Uncompressed Size     000017E3 (6115)\n-6E4FBD Filename Length       003D (61)\n-6E4FBF Extra Length          0009 (9)\n-6E4FC1 Comment Length        0000 (0)\n-6E4FC3 Disk Start            0000 (0)\n-6E4FC5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E4FC7 Ext File Attributes   00000000 (0)\n-6E4FCB Local Header Offset   0034DD54 (3464532)\n-6E4FCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E4FCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E500C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E500E   Length              0005 (5)\n-6E5010   Flags               01 (1) 'Modification'\n-6E5011   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5015 CENTRAL HEADER #970   02014B50 (33639248)\n-6E5019 Created Zip Spec      14 (20) '2.0'\n-6E501A Created OS            00 (0) 'MS-DOS'\n-6E501B Extract Zip Spec      14 (20) '2.0'\n-6E501C Extract OS            00 (0) 'MS-DOS'\n-6E501D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E501F Compression Method    0000 (0) 'Stored'\n-6E5021 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5025 CRC                   04D43ED1 (81018577)\n-6E5029 Compressed Size       00000D84 (3460)\n-6E502D Uncompressed Size     00000D84 (3460)\n-6E5031 Filename Length       003D (61)\n-6E5033 Extra Length          0009 (9)\n-6E5035 Comment Length        0000 (0)\n-6E5037 Disk Start            0000 (0)\n-6E5039 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E503B Ext File Attributes   00000000 (0)\n-6E503F Local Header Offset   0034F5AB (3470763)\n-6E5043 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5043: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5080 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5082   Length              0005 (5)\n-6E5084   Flags               01 (1) 'Modification'\n-6E5085   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5089 CENTRAL HEADER #971   02014B50 (33639248)\n-6E508D Created Zip Spec      14 (20) '2.0'\n-6E508E Created OS            00 (0) 'MS-DOS'\n-6E508F Extract Zip Spec      14 (20) '2.0'\n-6E5090 Extract OS            00 (0) 'MS-DOS'\n-6E5091 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5093 Compression Method    0000 (0) 'Stored'\n-6E5095 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5099 CRC                   05580F75 (89657205)\n-6E509D Compressed Size       00000EA4 (3748)\n-6E50A1 Uncompressed Size     00000EA4 (3748)\n-6E50A5 Filename Length       003E (62)\n-6E50A7 Extra Length          0009 (9)\n-6E50A9 Comment Length        0000 (0)\n-6E50AB Disk Start            0000 (0)\n-6E50AD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E50AF Ext File Attributes   00000000 (0)\n-6E50B3 Local Header Offset   003503A3 (3474339)\n-6E50B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E50B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E50F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E50F7   Length              0005 (5)\n-6E50F9   Flags               01 (1) 'Modification'\n-6E50FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E50FE CENTRAL HEADER #972   02014B50 (33639248)\n-6E5102 Created Zip Spec      14 (20) '2.0'\n-6E5103 Created OS            00 (0) 'MS-DOS'\n-6E5104 Extract Zip Spec      14 (20) '2.0'\n-6E5105 Extract OS            00 (0) 'MS-DOS'\n-6E5106 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5108 Compression Method    0000 (0) 'Stored'\n-6E510A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E510E CRC                   D6497204 (3595137540)\n-6E5112 Compressed Size       00002746 (10054)\n-6E5116 Uncompressed Size     00002746 (10054)\n-6E511A Filename Length       003F (63)\n-6E511C Extra Length          0009 (9)\n-6E511E Comment Length        0000 (0)\n-6E5120 Disk Start            0000 (0)\n-6E5122 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5124 Ext File Attributes   00000000 (0)\n-6E5128 Local Header Offset   003512BC (3478204)\n-6E512C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E512C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E516B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E516D   Length              0005 (5)\n-6E516F   Flags               01 (1) 'Modification'\n-6E5170   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5174 CENTRAL HEADER #973   02014B50 (33639248)\n-6E5178 Created Zip Spec      14 (20) '2.0'\n-6E5179 Created OS            00 (0) 'MS-DOS'\n-6E517A Extract Zip Spec      14 (20) '2.0'\n-6E517B Extract OS            00 (0) 'MS-DOS'\n-6E517C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E517E Compression Method    0000 (0) 'Stored'\n-6E5180 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5184 CRC                   1ADB9373 (450597747)\n-6E5188 Compressed Size       00001A82 (6786)\n-6E518C Uncompressed Size     00001A82 (6786)\n-6E5190 Filename Length       003F (63)\n-6E5192 Extra Length          0009 (9)\n-6E5194 Comment Length        0000 (0)\n-6E5196 Disk Start            0000 (0)\n-6E5198 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E519A Ext File Attributes   00000000 (0)\n-6E519E Local Header Offset   00353A78 (3488376)\n-6E51A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E51A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E51E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E51E3   Length              0005 (5)\n-6E51E5   Flags               01 (1) 'Modification'\n-6E51E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E51EA CENTRAL HEADER #974   02014B50 (33639248)\n-6E51EE Created Zip Spec      14 (20) '2.0'\n-6E51EF Created OS            00 (0) 'MS-DOS'\n-6E51F0 Extract Zip Spec      14 (20) '2.0'\n-6E51F1 Extract OS            00 (0) 'MS-DOS'\n-6E51F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E51F4 Compression Method    0000 (0) 'Stored'\n-6E51F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E51FA CRC                   41505507 (1095783687)\n-6E51FE Compressed Size       00001224 (4644)\n-6E5202 Uncompressed Size     00001224 (4644)\n-6E5206 Filename Length       0040 (64)\n-6E5208 Extra Length          0009 (9)\n-6E520A Comment Length        0000 (0)\n-6E520C Disk Start            0000 (0)\n-6E520E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5210 Ext File Attributes   00000000 (0)\n-6E5214 Local Header Offset   00355570 (3495280)\n-6E5218 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5218: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5258 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E525A   Length              0005 (5)\n-6E525C   Flags               01 (1) 'Modification'\n-6E525D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5261 CENTRAL HEADER #975   02014B50 (33639248)\n-6E5265 Created Zip Spec      14 (20) '2.0'\n-6E5266 Created OS            00 (0) 'MS-DOS'\n-6E5267 Extract Zip Spec      14 (20) '2.0'\n-6E5268 Extract OS            00 (0) 'MS-DOS'\n-6E5269 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E526B Compression Method    0000 (0) 'Stored'\n-6E526D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5271 CRC                   C452CFCB (3293761483)\n-6E5275 Compressed Size       000025C2 (9666)\n-6E5279 Uncompressed Size     000025C2 (9666)\n-6E527D Filename Length       003F (63)\n-6E527F Extra Length          0009 (9)\n-6E5281 Comment Length        0000 (0)\n-6E5283 Disk Start            0000 (0)\n-6E5285 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5287 Ext File Attributes   00000000 (0)\n-6E528B Local Header Offset   0035680B (3500043)\n-6E528F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E528F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E52CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E52D0   Length              0005 (5)\n-6E52D2   Flags               01 (1) 'Modification'\n-6E52D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E52D7 CENTRAL HEADER #976   02014B50 (33639248)\n-6E52DB Created Zip Spec      14 (20) '2.0'\n-6E52DC Created OS            00 (0) 'MS-DOS'\n-6E52DD Extract Zip Spec      14 (20) '2.0'\n-6E52DE Extract OS            00 (0) 'MS-DOS'\n-6E52DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E52E1 Compression Method    0000 (0) 'Stored'\n-6E52E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E52E7 CRC                   FCF57B8C (4243946380)\n-6E52EB Compressed Size       00001158 (4440)\n-6E52EF Uncompressed Size     00001158 (4440)\n-6E52F3 Filename Length       003E (62)\n-6E52F5 Extra Length          0009 (9)\n-6E52F7 Comment Length        0000 (0)\n-6E52F9 Disk Start            0000 (0)\n-6E52FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E52FD Ext File Attributes   00000000 (0)\n-6E5301 Local Header Offset   00358E43 (3509827)\n-6E5305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+4973CD Compression Method    0000 (0) 'Stored'\n+4973CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4973D3 CRC                   00000000 (0)\n+4973D7 Compressed Size       00000000 (0)\n+4973DB Uncompressed Size     00000000 (0)\n+4973DF Filename Length       0050 (80)\n+4973E1 Extra Length          0009 (9)\n+4973E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4973E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+497433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+497435   Length              0005 (5)\n+497437   Flags               01 (1) 'Modification'\n+497438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49743C PAYLOAD\n+\n+49792B DATA DESCRIPTOR       08074B50 (134695760)\n+49792F CRC                   09B44E50 (162811472)\n+497933 Compressed Size       000004EF (1263)\n+497937 Uncompressed Size     000004EF (1263)\n+\n+49793B LOCAL HEADER #1346    04034B50 (67324752)\n+49793F Extract Zip Spec      14 (20) '2.0'\n+497940 Extract OS            00 (0) 'MS-DOS'\n+497941 General Purpose Flag  0000 (0)\n+497943 Compression Method    0000 (0) 'Stored'\n+497945 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+497949 CRC                   00000000 (0)\n+49794D Compressed Size       00000000 (0)\n+497951 Uncompressed Size     00000000 (0)\n+497955 Filename Length       0020 (32)\n+497957 Extra Length          0009 (9)\n+497959 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x497959: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+497979 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49797B   Length              0005 (5)\n+49797D   Flags               01 (1) 'Modification'\n+49797E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+497982 LOCAL HEADER #1347    04034B50 (67324752)\n+497986 Extract Zip Spec      14 (20) '2.0'\n+497987 Extract OS            00 (0) 'MS-DOS'\n+497988 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+49798A Compression Method    0000 (0) 'Stored'\n+49798C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+497990 CRC                   00000000 (0)\n+497994 Compressed Size       00000000 (0)\n+497998 Uncompressed Size     00000000 (0)\n+49799C Filename Length       0032 (50)\n+49799E Extra Length          0009 (9)\n+4979A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4979A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4979D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4979D4   Length              0005 (5)\n+4979D6   Flags               01 (1) 'Modification'\n+4979D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4979DB PAYLOAD\n+\n+49911F DATA DESCRIPTOR       08074B50 (134695760)\n+499123 CRC                   AE92FDCB (2928868811)\n+499127 Compressed Size       00001744 (5956)\n+49912B Uncompressed Size     00001744 (5956)\n+\n+49912F LOCAL HEADER #1348    04034B50 (67324752)\n+499133 Extract Zip Spec      14 (20) '2.0'\n+499134 Extract OS            00 (0) 'MS-DOS'\n+499135 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+499137 Compression Method    0000 (0) 'Stored'\n+499139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49913D CRC                   00000000 (0)\n+499141 Compressed Size       00000000 (0)\n+499145 Uncompressed Size     00000000 (0)\n+499149 Filename Length       0039 (57)\n+49914B Extra Length          0009 (9)\n+49914D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49914D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+499186 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+499188   Length              0005 (5)\n+49918A   Flags               01 (1) 'Modification'\n+49918B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49918F PAYLOAD\n+\n+49A80F DATA DESCRIPTOR       08074B50 (134695760)\n+49A813 CRC                   1162A7F0 (291678192)\n+49A817 Compressed Size       00001680 (5760)\n+49A81B Uncompressed Size     00001680 (5760)\n+\n+49A81F LOCAL HEADER #1349    04034B50 (67324752)\n+49A823 Extract Zip Spec      14 (20) '2.0'\n+49A824 Extract OS            00 (0) 'MS-DOS'\n+49A825 General Purpose Flag  0000 (0)\n+49A827 Compression Method    0000 (0) 'Stored'\n+49A829 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49A82D CRC                   00000000 (0)\n+49A831 Compressed Size       00000000 (0)\n+49A835 Uncompressed Size     00000000 (0)\n+49A839 Filename Length       001F (31)\n+49A83B Extra Length          0009 (9)\n+49A83D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49A83D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49A85C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49A85E   Length              0005 (5)\n+49A860   Flags               01 (1) 'Modification'\n+49A861   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+49A865 LOCAL HEADER #1350    04034B50 (67324752)\n+49A869 Extract Zip Spec      14 (20) '2.0'\n+49A86A Extract OS            00 (0) 'MS-DOS'\n+49A86B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+49A86D Compression Method    0000 (0) 'Stored'\n+49A86F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49A873 CRC                   00000000 (0)\n+49A877 Compressed Size       00000000 (0)\n+49A87B Uncompressed Size     00000000 (0)\n+49A87F Filename Length       0030 (48)\n+49A881 Extra Length          0009 (9)\n+49A883 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49A883: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49A8B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49A8B5   Length              0005 (5)\n+49A8B7   Flags               01 (1) 'Modification'\n+49A8B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49A8BC PAYLOAD\n+\n+49E817 DATA DESCRIPTOR       08074B50 (134695760)\n+49E81B CRC                   775C02B8 (2002518712)\n+49E81F Compressed Size       00003F5B (16219)\n+49E823 Uncompressed Size     00003F5B (16219)\n+\n+49E827 LOCAL HEADER #1351    04034B50 (67324752)\n+49E82B Extract Zip Spec      14 (20) '2.0'\n+49E82C Extract OS            00 (0) 'MS-DOS'\n+49E82D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+49E82F Compression Method    0000 (0) 'Stored'\n+49E831 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49E835 CRC                   00000000 (0)\n+49E839 Compressed Size       00000000 (0)\n+49E83D Uncompressed Size     00000000 (0)\n+49E841 Filename Length       0037 (55)\n+49E843 Extra Length          0009 (9)\n+49E845 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49E845: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49E87C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49E87E   Length              0005 (5)\n+49E880   Flags               01 (1) 'Modification'\n+49E881   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49E885 PAYLOAD\n+\n+49EE2A DATA DESCRIPTOR       08074B50 (134695760)\n+49EE2E CRC                   C7AB4B17 (3349891863)\n+49EE32 Compressed Size       000005A5 (1445)\n+49EE36 Uncompressed Size     000005A5 (1445)\n+\n+49EE3A LOCAL HEADER #1352    04034B50 (67324752)\n+49EE3E Extract Zip Spec      14 (20) '2.0'\n+49EE3F Extract OS            00 (0) 'MS-DOS'\n+49EE40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+49EE42 Compression Method    0000 (0) 'Stored'\n+49EE44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+49EE48 CRC                   00000000 (0)\n+49EE4C Compressed Size       00000000 (0)\n+49EE50 Uncompressed Size     00000000 (0)\n+49EE54 Filename Length       0038 (56)\n+49EE56 Extra Length          0009 (9)\n+49EE58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x49EE58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+49EE90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+49EE92   Length              0005 (5)\n+49EE94   Flags               01 (1) 'Modification'\n+49EE95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+49EE99 PAYLOAD\n+\n+4A0F5B DATA DESCRIPTOR       08074B50 (134695760)\n+4A0F5F CRC                   935B5779 (2472236921)\n+4A0F63 Compressed Size       000020C2 (8386)\n+4A0F67 Uncompressed Size     000020C2 (8386)\n+\n+4A0F6B LOCAL HEADER #1353    04034B50 (67324752)\n+4A0F6F Extract Zip Spec      14 (20) '2.0'\n+4A0F70 Extract OS            00 (0) 'MS-DOS'\n+4A0F71 General Purpose Flag  0000 (0)\n+4A0F73 Compression Method    0000 (0) 'Stored'\n+4A0F75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A0F79 CRC                   00000000 (0)\n+4A0F7D Compressed Size       00000000 (0)\n+4A0F81 Uncompressed Size     00000000 (0)\n+4A0F85 Filename Length       0021 (33)\n+4A0F87 Extra Length          0009 (9)\n+4A0F89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A0F89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A0FAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A0FAC   Length              0005 (5)\n+4A0FAE   Flags               01 (1) 'Modification'\n+4A0FAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4A0FB3 LOCAL HEADER #1354    04034B50 (67324752)\n+4A0FB7 Extract Zip Spec      14 (20) '2.0'\n+4A0FB8 Extract OS            00 (0) 'MS-DOS'\n+4A0FB9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4A0FBB Compression Method    0000 (0) 'Stored'\n+4A0FBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A0FC1 CRC                   00000000 (0)\n+4A0FC5 Compressed Size       00000000 (0)\n+4A0FC9 Uncompressed Size     00000000 (0)\n+4A0FCD Filename Length       0046 (70)\n+4A0FCF Extra Length          0009 (9)\n+4A0FD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A0FD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A1017 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A1019   Length              0005 (5)\n+4A101B   Flags               01 (1) 'Modification'\n+4A101C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4A1020 PAYLOAD\n+\n+4A383A DATA DESCRIPTOR       08074B50 (134695760)\n+4A383E CRC                   74817B02 (1954642690)\n+4A3842 Compressed Size       0000281A (10266)\n+4A3846 Uncompressed Size     0000281A (10266)\n+\n+4A384A LOCAL HEADER #1355    04034B50 (67324752)\n+4A384E Extract Zip Spec      14 (20) '2.0'\n+4A384F Extract OS            00 (0) 'MS-DOS'\n+4A3850 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4A3852 Compression Method    0000 (0) 'Stored'\n+4A3854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A3858 CRC                   00000000 (0)\n+4A385C Compressed Size       00000000 (0)\n+4A3860 Uncompressed Size     00000000 (0)\n+4A3864 Filename Length       003C (60)\n+4A3866 Extra Length          0009 (9)\n+4A3868 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A3868: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A38A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A38A6   Length              0005 (5)\n+4A38A8   Flags               01 (1) 'Modification'\n+4A38A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4A38AD PAYLOAD\n+\n+4A653E DATA DESCRIPTOR       08074B50 (134695760)\n+4A6542 CRC                   8BDBBEA7 (2346434215)\n+4A6546 Compressed Size       00002C91 (11409)\n+4A654A Uncompressed Size     00002C91 (11409)\n+\n+4A654E LOCAL HEADER #1356    04034B50 (67324752)\n+4A6552 Extract Zip Spec      14 (20) '2.0'\n+4A6553 Extract OS            00 (0) 'MS-DOS'\n+4A6554 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4A6556 Compression Method    0000 (0) 'Stored'\n+4A6558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A655C CRC                   00000000 (0)\n+4A6560 Compressed Size       00000000 (0)\n+4A6564 Uncompressed Size     00000000 (0)\n+4A6568 Filename Length       0032 (50)\n+4A656A Extra Length          0009 (9)\n+4A656C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A656C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A659E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A65A0   Length              0005 (5)\n+4A65A2   Flags               01 (1) 'Modification'\n+4A65A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4A65A7 PAYLOAD\n+\n+4A696C DATA DESCRIPTOR       08074B50 (134695760)\n+4A6970 CRC                   B1C6B8A4 (2982590628)\n+4A6974 Compressed Size       000003C5 (965)\n+4A6978 Uncompressed Size     000003C5 (965)\n+\n+4A697C LOCAL HEADER #1357    04034B50 (67324752)\n+4A6980 Extract Zip Spec      14 (20) '2.0'\n+4A6981 Extract OS            00 (0) 'MS-DOS'\n+4A6982 General Purpose Flag  0000 (0)\n+4A6984 Compression Method    0000 (0) 'Stored'\n+4A6986 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A698A CRC                   00000000 (0)\n+4A698E Compressed Size       00000000 (0)\n+4A6992 Uncompressed Size     00000000 (0)\n+4A6996 Filename Length       0026 (38)\n+4A6998 Extra Length          0009 (9)\n+4A699A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A699A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A69C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A69C2   Length              0005 (5)\n+4A69C4   Flags               01 (1) 'Modification'\n+4A69C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4A69C9 LOCAL HEADER #1358    04034B50 (67324752)\n+4A69CD Extract Zip Spec      14 (20) '2.0'\n+4A69CE Extract OS            00 (0) 'MS-DOS'\n+4A69CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4A69D1 Compression Method    0000 (0) 'Stored'\n+4A69D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A69D7 CRC                   00000000 (0)\n+4A69DB Compressed Size       00000000 (0)\n+4A69DF Uncompressed Size     00000000 (0)\n+4A69E3 Filename Length       0047 (71)\n+4A69E5 Extra Length          0009 (9)\n+4A69E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A69E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A6A2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A6A30   Length              0005 (5)\n+4A6A32   Flags               01 (1) 'Modification'\n+4A6A33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4A6A37 PAYLOAD\n+\n+4A79CC DATA DESCRIPTOR       08074B50 (134695760)\n+4A79D0 CRC                   AA7692A4 (2859897508)\n+4A79D4 Compressed Size       00000F95 (3989)\n+4A79D8 Uncompressed Size     00000F95 (3989)\n+\n+4A79DC LOCAL HEADER #1359    04034B50 (67324752)\n+4A79E0 Extract Zip Spec      14 (20) '2.0'\n+4A79E1 Extract OS            00 (0) 'MS-DOS'\n+4A79E2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4A79E4 Compression Method    0000 (0) 'Stored'\n+4A79E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4A79EA CRC                   00000000 (0)\n+4A79EE Compressed Size       00000000 (0)\n+4A79F2 Uncompressed Size     00000000 (0)\n+4A79F6 Filename Length       003B (59)\n+4A79F8 Extra Length          0009 (9)\n+4A79FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4A79FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4A7A35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4A7A37   Length              0005 (5)\n+4A7A39   Flags               01 (1) 'Modification'\n+4A7A3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4A7A3E PAYLOAD\n+\n+4AA757 DATA DESCRIPTOR       08074B50 (134695760)\n+4AA75B CRC                   B7357AFB (3073735419)\n+4AA75F Compressed Size       00002D19 (11545)\n+4AA763 Uncompressed Size     00002D19 (11545)\n+\n+4AA767 LOCAL HEADER #1360    04034B50 (67324752)\n+4AA76B Extract Zip Spec      14 (20) '2.0'\n+4AA76C Extract OS            00 (0) 'MS-DOS'\n+4AA76D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4AA76F Compression Method    0000 (0) 'Stored'\n+4AA771 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AA775 CRC                   00000000 (0)\n+4AA779 Compressed Size       00000000 (0)\n+4AA77D Uncompressed Size     00000000 (0)\n+4AA781 Filename Length       004E (78)\n+4AA783 Extra Length          0009 (9)\n+4AA785 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AA785: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AA7D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4AA7D5   Length              0005 (5)\n+4AA7D7   Flags               01 (1) 'Modification'\n+4AA7D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4AA7DC PAYLOAD\n+\n+4AB4E8 DATA DESCRIPTOR       08074B50 (134695760)\n+4AB4EC CRC                   C79AC1A5 (3348808101)\n+4AB4F0 Compressed Size       00000D0C (3340)\n+4AB4F4 Uncompressed Size     00000D0C (3340)\n+\n+4AB4F8 LOCAL HEADER #1361    04034B50 (67324752)\n+4AB4FC Extract Zip Spec      14 (20) '2.0'\n+4AB4FD Extract OS            00 (0) 'MS-DOS'\n+4AB4FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4AB500 Compression Method    0000 (0) 'Stored'\n+4AB502 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AB506 CRC                   00000000 (0)\n+4AB50A Compressed Size       00000000 (0)\n+4AB50E Uncompressed Size     00000000 (0)\n+4AB512 Filename Length       0042 (66)\n+4AB514 Extra Length          0009 (9)\n+4AB516 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AB516: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AB558 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4AB55A   Length              0005 (5)\n+4AB55C   Flags               01 (1) 'Modification'\n+4AB55D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4AB561 PAYLOAD\n+\n+4AB90A DATA DESCRIPTOR       08074B50 (134695760)\n+4AB90E CRC                   09C52AF8 (163916536)\n+4AB912 Compressed Size       000003A9 (937)\n+4AB916 Uncompressed Size     000003A9 (937)\n+\n+4AB91A LOCAL HEADER #1362    04034B50 (67324752)\n+4AB91E Extract Zip Spec      14 (20) '2.0'\n+4AB91F Extract OS            00 (0) 'MS-DOS'\n+4AB920 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4AB922 Compression Method    0000 (0) 'Stored'\n+4AB924 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4AB928 CRC                   00000000 (0)\n+4AB92C Compressed Size       00000000 (0)\n+4AB930 Uncompressed Size     00000000 (0)\n+4AB934 Filename Length       003C (60)\n+4AB936 Extra Length          0009 (9)\n+4AB938 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4AB938: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4AB974 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4AB976   Length              0005 (5)\n+4AB978   Flags               01 (1) 'Modification'\n+4AB979   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4AB97D PAYLOAD\n+\n+4B2BB7 DATA DESCRIPTOR       08074B50 (134695760)\n+4B2BBB CRC                   963EDCDB (2520702171)\n+4B2BBF Compressed Size       0000723A (29242)\n+4B2BC3 Uncompressed Size     0000723A (29242)\n+\n+4B2BC7 LOCAL HEADER #1363    04034B50 (67324752)\n+4B2BCB Extract Zip Spec      14 (20) '2.0'\n+4B2BCC Extract OS            00 (0) 'MS-DOS'\n+4B2BCD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4B2BCF Compression Method    0000 (0) 'Stored'\n+4B2BD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4B2BD5 CRC                   00000000 (0)\n+4B2BD9 Compressed Size       00000000 (0)\n+4B2BDD Uncompressed Size     00000000 (0)\n+4B2BE1 Filename Length       003B (59)\n+4B2BE3 Extra Length          0009 (9)\n+4B2BE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4B2BE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4B2C20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4B2C22   Length              0005 (5)\n+4B2C24   Flags               01 (1) 'Modification'\n+4B2C25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4B2C29 PAYLOAD\n+\n+4BC1E2 DATA DESCRIPTOR       08074B50 (134695760)\n+4BC1E6 CRC                   180ADDBE (403365310)\n+4BC1EA Compressed Size       000095B9 (38329)\n+4BC1EE Uncompressed Size     000095B9 (38329)\n+\n+4BC1F2 LOCAL HEADER #1364    04034B50 (67324752)\n+4BC1F6 Extract Zip Spec      14 (20) '2.0'\n+4BC1F7 Extract OS            00 (0) 'MS-DOS'\n+4BC1F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4BC1FA Compression Method    0000 (0) 'Stored'\n+4BC1FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4BC200 CRC                   00000000 (0)\n+4BC204 Compressed Size       00000000 (0)\n+4BC208 Uncompressed Size     00000000 (0)\n+4BC20C Filename Length       0043 (67)\n+4BC20E Extra Length          0009 (9)\n+4BC210 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4BC210: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4BC253 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4BC255   Length              0005 (5)\n+4BC257   Flags               01 (1) 'Modification'\n+4BC258   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4BC25C PAYLOAD\n+\n+4BCAC0 DATA DESCRIPTOR       08074B50 (134695760)\n+4BCAC4 CRC                   7701B7FD (1996601341)\n+4BCAC8 Compressed Size       00000864 (2148)\n+4BCACC Uncompressed Size     00000864 (2148)\n+\n+4BCAD0 LOCAL HEADER #1365    04034B50 (67324752)\n+4BCAD4 Extract Zip Spec      14 (20) '2.0'\n+4BCAD5 Extract OS            00 (0) 'MS-DOS'\n+4BCAD6 General Purpose Flag  0000 (0)\n+4BCAD8 Compression Method    0000 (0) 'Stored'\n+4BCADA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4BCADE CRC                   00000000 (0)\n+4BCAE2 Compressed Size       00000000 (0)\n+4BCAE6 Uncompressed Size     00000000 (0)\n+4BCAEA Filename Length       0024 (36)\n+4BCAEC Extra Length          0009 (9)\n+4BCAEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4BCAEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4BCB12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4BCB14   Length              0005 (5)\n+4BCB16   Flags               01 (1) 'Modification'\n+4BCB17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4BCB1B LOCAL HEADER #1366    04034B50 (67324752)\n+4BCB1F Extract Zip Spec      14 (20) '2.0'\n+4BCB20 Extract OS            00 (0) 'MS-DOS'\n+4BCB21 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4BCB23 Compression Method    0000 (0) 'Stored'\n+4BCB25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4BCB29 CRC                   00000000 (0)\n+4BCB2D Compressed Size       00000000 (0)\n+4BCB31 Uncompressed Size     00000000 (0)\n+4BCB35 Filename Length       003A (58)\n+4BCB37 Extra Length          0009 (9)\n+4BCB39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4BCB39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4BCB73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4BCB75   Length              0005 (5)\n+4BCB77   Flags               01 (1) 'Modification'\n+4BCB78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4BCB7C PAYLOAD\n+\n+4C0CD0 DATA DESCRIPTOR       08074B50 (134695760)\n+4C0CD4 CRC                   E0604599 (3764405657)\n+4C0CD8 Compressed Size       00004154 (16724)\n+4C0CDC Uncompressed Size     00004154 (16724)\n+\n+4C0CE0 LOCAL HEADER #1367    04034B50 (67324752)\n+4C0CE4 Extract Zip Spec      14 (20) '2.0'\n+4C0CE5 Extract OS            00 (0) 'MS-DOS'\n+4C0CE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C0CE8 Compression Method    0000 (0) 'Stored'\n+4C0CEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C0CEE CRC                   00000000 (0)\n+4C0CF2 Compressed Size       00000000 (0)\n+4C0CF6 Uncompressed Size     00000000 (0)\n+4C0CFA Filename Length       0041 (65)\n+4C0CFC Extra Length          0009 (9)\n+4C0CFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C0CFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C0D3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C0D41   Length              0005 (5)\n+4C0D43   Flags               01 (1) 'Modification'\n+4C0D44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C0D48 PAYLOAD\n+\n+4C122C DATA DESCRIPTOR       08074B50 (134695760)\n+4C1230 CRC                   20C4D90B (549771531)\n+4C1234 Compressed Size       000004E4 (1252)\n+4C1238 Uncompressed Size     000004E4 (1252)\n+\n+4C123C LOCAL HEADER #1368    04034B50 (67324752)\n+4C1240 Extract Zip Spec      14 (20) '2.0'\n+4C1241 Extract OS            00 (0) 'MS-DOS'\n+4C1242 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C1244 Compression Method    0000 (0) 'Stored'\n+4C1246 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C124A CRC                   00000000 (0)\n+4C124E Compressed Size       00000000 (0)\n+4C1252 Uncompressed Size     00000000 (0)\n+4C1256 Filename Length       0042 (66)\n+4C1258 Extra Length          0009 (9)\n+4C125A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C125A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C129C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C129E   Length              0005 (5)\n+4C12A0   Flags               01 (1) 'Modification'\n+4C12A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C12A5 PAYLOAD\n+\n+4C1A73 DATA DESCRIPTOR       08074B50 (134695760)\n+4C1A77 CRC                   BE10FD6D (3188784493)\n+4C1A7B Compressed Size       000007CE (1998)\n+4C1A7F Uncompressed Size     000007CE (1998)\n+\n+4C1A83 LOCAL HEADER #1369    04034B50 (67324752)\n+4C1A87 Extract Zip Spec      14 (20) '2.0'\n+4C1A88 Extract OS            00 (0) 'MS-DOS'\n+4C1A89 General Purpose Flag  0000 (0)\n+4C1A8B Compression Method    0000 (0) 'Stored'\n+4C1A8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C1A91 CRC                   00000000 (0)\n+4C1A95 Compressed Size       00000000 (0)\n+4C1A99 Uncompressed Size     00000000 (0)\n+4C1A9D Filename Length       0023 (35)\n+4C1A9F Extra Length          0009 (9)\n+4C1AA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C1AA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C1AC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C1AC6   Length              0005 (5)\n+4C1AC8   Flags               01 (1) 'Modification'\n+4C1AC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4C1ACD LOCAL HEADER #1370    04034B50 (67324752)\n+4C1AD1 Extract Zip Spec      14 (20) '2.0'\n+4C1AD2 Extract OS            00 (0) 'MS-DOS'\n+4C1AD3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C1AD5 Compression Method    0000 (0) 'Stored'\n+4C1AD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C1ADB CRC                   00000000 (0)\n+4C1ADF Compressed Size       00000000 (0)\n+4C1AE3 Uncompressed Size     00000000 (0)\n+4C1AE7 Filename Length       0038 (56)\n+4C1AE9 Extra Length          0009 (9)\n+4C1AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C1AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C1B23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C1B25   Length              0005 (5)\n+4C1B27   Flags               01 (1) 'Modification'\n+4C1B28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C1B2C PAYLOAD\n+\n+4C4CF3 DATA DESCRIPTOR       08074B50 (134695760)\n+4C4CF7 CRC                   BDA5F435 (3181769781)\n+4C4CFB Compressed Size       000031C7 (12743)\n+4C4CFF Uncompressed Size     000031C7 (12743)\n+\n+4C4D03 LOCAL HEADER #1371    04034B50 (67324752)\n+4C4D07 Extract Zip Spec      14 (20) '2.0'\n+4C4D08 Extract OS            00 (0) 'MS-DOS'\n+4C4D09 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C4D0B Compression Method    0000 (0) 'Stored'\n+4C4D0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C4D11 CRC                   00000000 (0)\n+4C4D15 Compressed Size       00000000 (0)\n+4C4D19 Uncompressed Size     00000000 (0)\n+4C4D1D Filename Length       003F (63)\n+4C4D1F Extra Length          0009 (9)\n+4C4D21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C4D21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C4D60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C4D62   Length              0005 (5)\n+4C4D64   Flags               01 (1) 'Modification'\n+4C4D65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C4D69 PAYLOAD\n+\n+4C5248 DATA DESCRIPTOR       08074B50 (134695760)\n+4C524C CRC                   BA9C4A25 (3130804773)\n+4C5250 Compressed Size       000004DF (1247)\n+4C5254 Uncompressed Size     000004DF (1247)\n+\n+4C5258 LOCAL HEADER #1372    04034B50 (67324752)\n+4C525C Extract Zip Spec      14 (20) '2.0'\n+4C525D Extract OS            00 (0) 'MS-DOS'\n+4C525E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C5260 Compression Method    0000 (0) 'Stored'\n+4C5262 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C5266 CRC                   00000000 (0)\n+4C526A Compressed Size       00000000 (0)\n+4C526E Uncompressed Size     00000000 (0)\n+4C5272 Filename Length       0048 (72)\n+4C5274 Extra Length          0009 (9)\n+4C5276 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C5276: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C52BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C52C0   Length              0005 (5)\n+4C52C2   Flags               01 (1) 'Modification'\n+4C52C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C52C7 PAYLOAD\n+\n+4C71F5 DATA DESCRIPTOR       08074B50 (134695760)\n+4C71F9 CRC                   23EFD54C (602920268)\n+4C71FD Compressed Size       00001F2E (7982)\n+4C7201 Uncompressed Size     00001F2E (7982)\n+\n+4C7205 LOCAL HEADER #1373    04034B50 (67324752)\n+4C7209 Extract Zip Spec      14 (20) '2.0'\n+4C720A Extract OS            00 (0) 'MS-DOS'\n+4C720B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C720D Compression Method    0000 (0) 'Stored'\n+4C720F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C7213 CRC                   00000000 (0)\n+4C7217 Compressed Size       00000000 (0)\n+4C721B Uncompressed Size     00000000 (0)\n+4C721F Filename Length       004F (79)\n+4C7221 Extra Length          0009 (9)\n+4C7223 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C7223: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C7272 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C7274   Length              0005 (5)\n+4C7276   Flags               01 (1) 'Modification'\n+4C7277   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C727B PAYLOAD\n+\n+4C777D DATA DESCRIPTOR       08074B50 (134695760)\n+4C7781 CRC                   CC2EC0C4 (3425616068)\n+4C7785 Compressed Size       00000502 (1282)\n+4C7789 Uncompressed Size     00000502 (1282)\n+\n+4C778D LOCAL HEADER #1374    04034B50 (67324752)\n+4C7791 Extract Zip Spec      14 (20) '2.0'\n+4C7792 Extract OS            00 (0) 'MS-DOS'\n+4C7793 General Purpose Flag  0000 (0)\n+4C7795 Compression Method    0000 (0) 'Stored'\n+4C7797 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C779B CRC                   00000000 (0)\n+4C779F Compressed Size       00000000 (0)\n+4C77A3 Uncompressed Size     00000000 (0)\n+4C77A7 Filename Length       0020 (32)\n+4C77A9 Extra Length          0009 (9)\n+4C77AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C77AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C77CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C77CD   Length              0005 (5)\n+4C77CF   Flags               01 (1) 'Modification'\n+4C77D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4C77D4 LOCAL HEADER #1375    04034B50 (67324752)\n+4C77D8 Extract Zip Spec      14 (20) '2.0'\n+4C77D9 Extract OS            00 (0) 'MS-DOS'\n+4C77DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C77DC Compression Method    0000 (0) 'Stored'\n+4C77DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C77E2 CRC                   00000000 (0)\n+4C77E6 Compressed Size       00000000 (0)\n+4C77EA Uncompressed Size     00000000 (0)\n+4C77EE Filename Length       003E (62)\n+4C77F0 Extra Length          0009 (9)\n+4C77F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C77F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C7830 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C7832   Length              0005 (5)\n+4C7834   Flags               01 (1) 'Modification'\n+4C7835   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C7839 PAYLOAD\n+\n+4C8689 DATA DESCRIPTOR       08074B50 (134695760)\n+4C868D CRC                   EDC5D490 (3989165200)\n+4C8691 Compressed Size       00000E50 (3664)\n+4C8695 Uncompressed Size     00000E50 (3664)\n+\n+4C8699 LOCAL HEADER #1376    04034B50 (67324752)\n+4C869D Extract Zip Spec      14 (20) '2.0'\n+4C869E Extract OS            00 (0) 'MS-DOS'\n+4C869F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4C86A1 Compression Method    0000 (0) 'Stored'\n+4C86A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4C86A7 CRC                   00000000 (0)\n+4C86AB Compressed Size       00000000 (0)\n+4C86AF Uncompressed Size     00000000 (0)\n+4C86B3 Filename Length       0032 (50)\n+4C86B5 Extra Length          0009 (9)\n+4C86B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4C86B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4C86E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4C86EB   Length              0005 (5)\n+4C86ED   Flags               01 (1) 'Modification'\n+4C86EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4C86F2 PAYLOAD\n+\n+4CE59D DATA DESCRIPTOR       08074B50 (134695760)\n+4CE5A1 CRC                   F6A25F0D (4137836301)\n+4CE5A5 Compressed Size       00005EAB (24235)\n+4CE5A9 Uncompressed Size     00005EAB (24235)\n+\n+4CE5AD LOCAL HEADER #1377    04034B50 (67324752)\n+4CE5B1 Extract Zip Spec      14 (20) '2.0'\n+4CE5B2 Extract OS            00 (0) 'MS-DOS'\n+4CE5B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4CE5B5 Compression Method    0000 (0) 'Stored'\n+4CE5B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4CE5BB CRC                   00000000 (0)\n+4CE5BF Compressed Size       00000000 (0)\n+4CE5C3 Uncompressed Size     00000000 (0)\n+4CE5C7 Filename Length       0039 (57)\n+4CE5C9 Extra Length          0009 (9)\n+4CE5CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4CE5CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4CE604 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4CE606   Length              0005 (5)\n+4CE608   Flags               01 (1) 'Modification'\n+4CE609   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4CE60D PAYLOAD\n+\n+4CEDB4 DATA DESCRIPTOR       08074B50 (134695760)\n+4CEDB8 CRC                   8E75DF39 (2390089529)\n+4CEDBC Compressed Size       000007A7 (1959)\n+4CEDC0 Uncompressed Size     000007A7 (1959)\n+\n+4CEDC4 LOCAL HEADER #1378    04034B50 (67324752)\n+4CEDC8 Extract Zip Spec      14 (20) '2.0'\n+4CEDC9 Extract OS            00 (0) 'MS-DOS'\n+4CEDCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4CEDCC Compression Method    0000 (0) 'Stored'\n+4CEDCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4CEDD2 CRC                   00000000 (0)\n+4CEDD6 Compressed Size       00000000 (0)\n+4CEDDA Uncompressed Size     00000000 (0)\n+4CEDDE Filename Length       003A (58)\n+4CEDE0 Extra Length          0009 (9)\n+4CEDE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4CEDE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4CEE1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4CEE1E   Length              0005 (5)\n+4CEE20   Flags               01 (1) 'Modification'\n+4CEE21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4CEE25 PAYLOAD\n+\n+4D0583 DATA DESCRIPTOR       08074B50 (134695760)\n+4D0587 CRC                   6AA8E21B (1789452827)\n+4D058B Compressed Size       0000175E (5982)\n+4D058F Uncompressed Size     0000175E (5982)\n+\n+4D0593 LOCAL HEADER #1379    04034B50 (67324752)\n+4D0597 Extract Zip Spec      14 (20) '2.0'\n+4D0598 Extract OS            00 (0) 'MS-DOS'\n+4D0599 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4D059B Compression Method    0000 (0) 'Stored'\n+4D059D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D05A1 CRC                   00000000 (0)\n+4D05A5 Compressed Size       00000000 (0)\n+4D05A9 Uncompressed Size     00000000 (0)\n+4D05AD Filename Length       0041 (65)\n+4D05AF Extra Length          0009 (9)\n+4D05B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D05B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D05F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D05F4   Length              0005 (5)\n+4D05F6   Flags               01 (1) 'Modification'\n+4D05F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D05FB PAYLOAD\n+\n+4D0AF5 DATA DESCRIPTOR       08074B50 (134695760)\n+4D0AF9 CRC                   22BB3DD7 (582696407)\n+4D0AFD Compressed Size       000004FA (1274)\n+4D0B01 Uncompressed Size     000004FA (1274)\n+\n+4D0B05 LOCAL HEADER #1380    04034B50 (67324752)\n+4D0B09 Extract Zip Spec      14 (20) '2.0'\n+4D0B0A Extract OS            00 (0) 'MS-DOS'\n+4D0B0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4D0B0D Compression Method    0000 (0) 'Stored'\n+4D0B0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D0B13 CRC                   00000000 (0)\n+4D0B17 Compressed Size       00000000 (0)\n+4D0B1B Uncompressed Size     00000000 (0)\n+4D0B1F Filename Length       0035 (53)\n+4D0B21 Extra Length          0009 (9)\n+4D0B23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D0B23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D0B58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D0B5A   Length              0005 (5)\n+4D0B5C   Flags               01 (1) 'Modification'\n+4D0B5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D0B61 PAYLOAD\n+\n+4D26C6 DATA DESCRIPTOR       08074B50 (134695760)\n+4D26CA CRC                   B2C3D88B (2999179403)\n+4D26CE Compressed Size       00001B65 (7013)\n+4D26D2 Uncompressed Size     00001B65 (7013)\n+\n+4D26D6 LOCAL HEADER #1381    04034B50 (67324752)\n+4D26DA Extract Zip Spec      14 (20) '2.0'\n+4D26DB Extract OS            00 (0) 'MS-DOS'\n+4D26DC General Purpose Flag  0000 (0)\n+4D26DE Compression Method    0000 (0) 'Stored'\n+4D26E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D26E4 CRC                   00000000 (0)\n+4D26E8 Compressed Size       00000000 (0)\n+4D26EC Uncompressed Size     00000000 (0)\n+4D26F0 Filename Length       0025 (37)\n+4D26F2 Extra Length          0009 (9)\n+4D26F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D26F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D2719 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D271B   Length              0005 (5)\n+4D271D   Flags               01 (1) 'Modification'\n+4D271E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4D2722 LOCAL HEADER #1382    04034B50 (67324752)\n+4D2726 Extract Zip Spec      14 (20) '2.0'\n+4D2727 Extract OS            00 (0) 'MS-DOS'\n+4D2728 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4D272A Compression Method    0000 (0) 'Stored'\n+4D272C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D2730 CRC                   00000000 (0)\n+4D2734 Compressed Size       00000000 (0)\n+4D2738 Uncompressed Size     00000000 (0)\n+4D273C Filename Length       0041 (65)\n+4D273E Extra Length          0009 (9)\n+4D2740 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D2740: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D2781 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D2783   Length              0005 (5)\n+4D2785   Flags               01 (1) 'Modification'\n+4D2786   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D278A PAYLOAD\n+\n+4D3285 DATA DESCRIPTOR       08074B50 (134695760)\n+4D3289 CRC                   E8B12001 (3903922177)\n+4D328D Compressed Size       00000AFB (2811)\n+4D3291 Uncompressed Size     00000AFB (2811)\n+\n+4D3295 LOCAL HEADER #1383    04034B50 (67324752)\n+4D3299 Extract Zip Spec      14 (20) '2.0'\n+4D329A Extract OS            00 (0) 'MS-DOS'\n+4D329B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4D329D Compression Method    0000 (0) 'Stored'\n+4D329F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D32A3 CRC                   00000000 (0)\n+4D32A7 Compressed Size       00000000 (0)\n+4D32AB Uncompressed Size     00000000 (0)\n+4D32AF Filename Length       0041 (65)\n+4D32B1 Extra Length          0009 (9)\n+4D32B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D32B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D32F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D32F6   Length              0005 (5)\n+4D32F8   Flags               01 (1) 'Modification'\n+4D32F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D32FD PAYLOAD\n+\n+4D52FB DATA DESCRIPTOR       08074B50 (134695760)\n+4D52FF CRC                   0823E298 (136569496)\n+4D5303 Compressed Size       00001FFE (8190)\n+4D5307 Uncompressed Size     00001FFE (8190)\n+\n+4D530B LOCAL HEADER #1384    04034B50 (67324752)\n+4D530F Extract Zip Spec      14 (20) '2.0'\n+4D5310 Extract OS            00 (0) 'MS-DOS'\n+4D5311 General Purpose Flag  0000 (0)\n+4D5313 Compression Method    0000 (0) 'Stored'\n+4D5315 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D5319 CRC                   00000000 (0)\n+4D531D Compressed Size       00000000 (0)\n+4D5321 Uncompressed Size     00000000 (0)\n+4D5325 Filename Length       0020 (32)\n+4D5327 Extra Length          0009 (9)\n+4D5329 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D5329: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D5349 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D534B   Length              0005 (5)\n+4D534D   Flags               01 (1) 'Modification'\n+4D534E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4D5352 LOCAL HEADER #1385    04034B50 (67324752)\n+4D5356 Extract Zip Spec      14 (20) '2.0'\n+4D5357 Extract OS            00 (0) 'MS-DOS'\n+4D5358 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4D535A Compression Method    0000 (0) 'Stored'\n+4D535C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4D5360 CRC                   00000000 (0)\n+4D5364 Compressed Size       00000000 (0)\n+4D5368 Uncompressed Size     00000000 (0)\n+4D536C Filename Length       0032 (50)\n+4D536E Extra Length          0009 (9)\n+4D5370 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4D5370: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4D53A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4D53A4   Length              0005 (5)\n+4D53A6   Flags               01 (1) 'Modification'\n+4D53A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4D53AB PAYLOAD\n+\n+4DA252 DATA DESCRIPTOR       08074B50 (134695760)\n+4DA256 CRC                   3CD43B28 (1020541736)\n+4DA25A Compressed Size       00004EA7 (20135)\n+4DA25E Uncompressed Size     00004EA7 (20135)\n+\n+4DA262 LOCAL HEADER #1386    04034B50 (67324752)\n+4DA266 Extract Zip Spec      14 (20) '2.0'\n+4DA267 Extract OS            00 (0) 'MS-DOS'\n+4DA268 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DA26A Compression Method    0000 (0) 'Stored'\n+4DA26C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DA270 CRC                   00000000 (0)\n+4DA274 Compressed Size       00000000 (0)\n+4DA278 Uncompressed Size     00000000 (0)\n+4DA27C Filename Length       0039 (57)\n+4DA27E Extra Length          0009 (9)\n+4DA280 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DA280: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DA2B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DA2BB   Length              0005 (5)\n+4DA2BD   Flags               01 (1) 'Modification'\n+4DA2BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DA2C2 PAYLOAD\n+\n+4DA799 DATA DESCRIPTOR       08074B50 (134695760)\n+4DA79D CRC                   DA82F0B1 (3666014385)\n+4DA7A1 Compressed Size       000004D7 (1239)\n+4DA7A5 Uncompressed Size     000004D7 (1239)\n+\n+4DA7A9 LOCAL HEADER #1387    04034B50 (67324752)\n+4DA7AD Extract Zip Spec      14 (20) '2.0'\n+4DA7AE Extract OS            00 (0) 'MS-DOS'\n+4DA7AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DA7B1 Compression Method    0000 (0) 'Stored'\n+4DA7B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DA7B7 CRC                   00000000 (0)\n+4DA7BB Compressed Size       00000000 (0)\n+4DA7BF Uncompressed Size     00000000 (0)\n+4DA7C3 Filename Length       003A (58)\n+4DA7C5 Extra Length          0009 (9)\n+4DA7C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DA7C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DA801 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DA803   Length              0005 (5)\n+4DA805   Flags               01 (1) 'Modification'\n+4DA806   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DA80A PAYLOAD\n+\n+4DAF8C DATA DESCRIPTOR       08074B50 (134695760)\n+4DAF90 CRC                   C8E9661F (3370739231)\n+4DAF94 Compressed Size       00000782 (1922)\n+4DAF98 Uncompressed Size     00000782 (1922)\n+\n+4DAF9C LOCAL HEADER #1388    04034B50 (67324752)\n+4DAFA0 Extract Zip Spec      14 (20) '2.0'\n+4DAFA1 Extract OS            00 (0) 'MS-DOS'\n+4DAFA2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DAFA4 Compression Method    0000 (0) 'Stored'\n+4DAFA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DAFAA CRC                   00000000 (0)\n+4DAFAE Compressed Size       00000000 (0)\n+4DAFB2 Uncompressed Size     00000000 (0)\n+4DAFB6 Filename Length       0041 (65)\n+4DAFB8 Extra Length          0009 (9)\n+4DAFBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DAFBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DAFFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DAFFD   Length              0005 (5)\n+4DAFFF   Flags               01 (1) 'Modification'\n+4DB000   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DB004 PAYLOAD\n+\n+4DB4F0 DATA DESCRIPTOR       08074B50 (134695760)\n+4DB4F4 CRC                   80DBFA57 (2161900119)\n+4DB4F8 Compressed Size       000004EC (1260)\n+4DB4FC Uncompressed Size     000004EC (1260)\n+\n+4DB500 LOCAL HEADER #1389    04034B50 (67324752)\n+4DB504 Extract Zip Spec      14 (20) '2.0'\n+4DB505 Extract OS            00 (0) 'MS-DOS'\n+4DB506 General Purpose Flag  0000 (0)\n+4DB508 Compression Method    0000 (0) 'Stored'\n+4DB50A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DB50E CRC                   00000000 (0)\n+4DB512 Compressed Size       00000000 (0)\n+4DB516 Uncompressed Size     00000000 (0)\n+4DB51A Filename Length       0020 (32)\n+4DB51C Extra Length          0009 (9)\n+4DB51E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DB51E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DB53E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DB540   Length              0005 (5)\n+4DB542   Flags               01 (1) 'Modification'\n+4DB543   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4DB547 LOCAL HEADER #1390    04034B50 (67324752)\n+4DB54B Extract Zip Spec      14 (20) '2.0'\n+4DB54C Extract OS            00 (0) 'MS-DOS'\n+4DB54D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DB54F Compression Method    0000 (0) 'Stored'\n+4DB551 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DB555 CRC                   00000000 (0)\n+4DB559 Compressed Size       00000000 (0)\n+4DB55D Uncompressed Size     00000000 (0)\n+4DB561 Filename Length       0036 (54)\n+4DB563 Extra Length          0009 (9)\n+4DB565 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DB565: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DB59B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DB59D   Length              0005 (5)\n+4DB59F   Flags               01 (1) 'Modification'\n+4DB5A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DB5A4 PAYLOAD\n+\n+4DC771 DATA DESCRIPTOR       08074B50 (134695760)\n+4DC775 CRC                   B5B90B55 (3048803157)\n+4DC779 Compressed Size       000011CD (4557)\n+4DC77D Uncompressed Size     000011CD (4557)\n+\n+4DC781 LOCAL HEADER #1391    04034B50 (67324752)\n+4DC785 Extract Zip Spec      14 (20) '2.0'\n+4DC786 Extract OS            00 (0) 'MS-DOS'\n+4DC787 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DC789 Compression Method    0000 (0) 'Stored'\n+4DC78B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DC78F CRC                   00000000 (0)\n+4DC793 Compressed Size       00000000 (0)\n+4DC797 Uncompressed Size     00000000 (0)\n+4DC79B Filename Length       0039 (57)\n+4DC79D Extra Length          0009 (9)\n+4DC79F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DC79F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DC7D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DC7DA   Length              0005 (5)\n+4DC7DC   Flags               01 (1) 'Modification'\n+4DC7DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DC7E1 PAYLOAD\n+\n+4DCDB0 DATA DESCRIPTOR       08074B50 (134695760)\n+4DCDB4 CRC                   5117C509 (1360512265)\n+4DCDB8 Compressed Size       000005CF (1487)\n+4DCDBC Uncompressed Size     000005CF (1487)\n+\n+4DCDC0 LOCAL HEADER #1392    04034B50 (67324752)\n+4DCDC4 Extract Zip Spec      14 (20) '2.0'\n+4DCDC5 Extract OS            00 (0) 'MS-DOS'\n+4DCDC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DCDC8 Compression Method    0000 (0) 'Stored'\n+4DCDCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DCDCE CRC                   00000000 (0)\n+4DCDD2 Compressed Size       00000000 (0)\n+4DCDD6 Uncompressed Size     00000000 (0)\n+4DCDDA Filename Length       0039 (57)\n+4DCDDC Extra Length          0009 (9)\n+4DCDDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DCDDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DCE17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DCE19   Length              0005 (5)\n+4DCE1B   Flags               01 (1) 'Modification'\n+4DCE1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DCE20 PAYLOAD\n+\n+4DD500 DATA DESCRIPTOR       08074B50 (134695760)\n+4DD504 CRC                   FCC4145B (4240708699)\n+4DD508 Compressed Size       000006E0 (1760)\n+4DD50C Uncompressed Size     000006E0 (1760)\n+\n+4DD510 LOCAL HEADER #1393    04034B50 (67324752)\n+4DD514 Extract Zip Spec      14 (20) '2.0'\n+4DD515 Extract OS            00 (0) 'MS-DOS'\n+4DD516 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DD518 Compression Method    0000 (0) 'Stored'\n+4DD51A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DD51E CRC                   00000000 (0)\n+4DD522 Compressed Size       00000000 (0)\n+4DD526 Uncompressed Size     00000000 (0)\n+4DD52A Filename Length       003B (59)\n+4DD52C Extra Length          0009 (9)\n+4DD52E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DD52E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DD569 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DD56B   Length              0005 (5)\n+4DD56D   Flags               01 (1) 'Modification'\n+4DD56E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DD572 PAYLOAD\n+\n+4DDB4D DATA DESCRIPTOR       08074B50 (134695760)\n+4DDB51 CRC                   A6BC7A6B (2797369963)\n+4DDB55 Compressed Size       000005DB (1499)\n+4DDB59 Uncompressed Size     000005DB (1499)\n+\n+4DDB5D LOCAL HEADER #1394    04034B50 (67324752)\n+4DDB61 Extract Zip Spec      14 (20) '2.0'\n+4DDB62 Extract OS            00 (0) 'MS-DOS'\n+4DDB63 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DDB65 Compression Method    0000 (0) 'Stored'\n+4DDB67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DDB6B CRC                   00000000 (0)\n+4DDB6F Compressed Size       00000000 (0)\n+4DDB73 Uncompressed Size     00000000 (0)\n+4DDB77 Filename Length       003B (59)\n+4DDB79 Extra Length          0009 (9)\n+4DDB7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DDB7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DDBB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DDBB8   Length              0005 (5)\n+4DDBBA   Flags               01 (1) 'Modification'\n+4DDBBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DDBBF PAYLOAD\n+\n+4DE2A9 DATA DESCRIPTOR       08074B50 (134695760)\n+4DE2AD CRC                   CDD77CC5 (3453451461)\n+4DE2B1 Compressed Size       000006EA (1770)\n+4DE2B5 Uncompressed Size     000006EA (1770)\n+\n+4DE2B9 LOCAL HEADER #1395    04034B50 (67324752)\n+4DE2BD Extract Zip Spec      14 (20) '2.0'\n+4DE2BE Extract OS            00 (0) 'MS-DOS'\n+4DE2BF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DE2C1 Compression Method    0000 (0) 'Stored'\n+4DE2C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DE2C7 CRC                   00000000 (0)\n+4DE2CB Compressed Size       00000000 (0)\n+4DE2CF Uncompressed Size     00000000 (0)\n+4DE2D3 Filename Length       0031 (49)\n+4DE2D5 Extra Length          0009 (9)\n+4DE2D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DE2D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DE308 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DE30A   Length              0005 (5)\n+4DE30C   Flags               01 (1) 'Modification'\n+4DE30D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DE311 PAYLOAD\n+\n+4DE8D8 DATA DESCRIPTOR       08074B50 (134695760)\n+4DE8DC CRC                   5112EBCA (1360194506)\n+4DE8E0 Compressed Size       000005C7 (1479)\n+4DE8E4 Uncompressed Size     000005C7 (1479)\n+\n+4DE8E8 LOCAL HEADER #1396    04034B50 (67324752)\n+4DE8EC Extract Zip Spec      14 (20) '2.0'\n+4DE8ED Extract OS            00 (0) 'MS-DOS'\n+4DE8EE General Purpose Flag  0000 (0)\n+4DE8F0 Compression Method    0000 (0) 'Stored'\n+4DE8F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DE8F6 CRC                   00000000 (0)\n+4DE8FA Compressed Size       00000000 (0)\n+4DE8FE Uncompressed Size     00000000 (0)\n+4DE902 Filename Length       001F (31)\n+4DE904 Extra Length          0009 (9)\n+4DE906 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DE906: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DE925 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DE927   Length              0005 (5)\n+4DE929   Flags               01 (1) 'Modification'\n+4DE92A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4DE92E LOCAL HEADER #1397    04034B50 (67324752)\n+4DE932 Extract Zip Spec      14 (20) '2.0'\n+4DE933 Extract OS            00 (0) 'MS-DOS'\n+4DE934 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4DE936 Compression Method    0000 (0) 'Stored'\n+4DE938 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4DE93C CRC                   00000000 (0)\n+4DE940 Compressed Size       00000000 (0)\n+4DE944 Uncompressed Size     00000000 (0)\n+4DE948 Filename Length       0030 (48)\n+4DE94A Extra Length          0009 (9)\n+4DE94C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4DE94C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4DE97C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4DE97E   Length              0005 (5)\n+4DE980   Flags               01 (1) 'Modification'\n+4DE981   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4DE985 PAYLOAD\n+\n+4E1418 DATA DESCRIPTOR       08074B50 (134695760)\n+4E141C CRC                   5CAA5BA4 (1554668452)\n+4E1420 Compressed Size       00002A93 (10899)\n+4E1424 Uncompressed Size     00002A93 (10899)\n+\n+4E1428 LOCAL HEADER #1398    04034B50 (67324752)\n+4E142C Extract Zip Spec      14 (20) '2.0'\n+4E142D Extract OS            00 (0) 'MS-DOS'\n+4E142E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E1430 Compression Method    0000 (0) 'Stored'\n+4E1432 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E1436 CRC                   00000000 (0)\n+4E143A Compressed Size       00000000 (0)\n+4E143E Uncompressed Size     00000000 (0)\n+4E1442 Filename Length       0039 (57)\n+4E1444 Extra Length          0009 (9)\n+4E1446 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E1446: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E147F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E1481   Length              0005 (5)\n+4E1483   Flags               01 (1) 'Modification'\n+4E1484   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E1488 PAYLOAD\n+\n+4E1A16 DATA DESCRIPTOR       08074B50 (134695760)\n+4E1A1A CRC                   55DBCEB5 (1440468661)\n+4E1A1E Compressed Size       0000058E (1422)\n+4E1A22 Uncompressed Size     0000058E (1422)\n+\n+4E1A26 LOCAL HEADER #1399    04034B50 (67324752)\n+4E1A2A Extract Zip Spec      14 (20) '2.0'\n+4E1A2B Extract OS            00 (0) 'MS-DOS'\n+4E1A2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E1A2E Compression Method    0000 (0) 'Stored'\n+4E1A30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E1A34 CRC                   00000000 (0)\n+4E1A38 Compressed Size       00000000 (0)\n+4E1A3C Uncompressed Size     00000000 (0)\n+4E1A40 Filename Length       0037 (55)\n+4E1A42 Extra Length          0009 (9)\n+4E1A44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E1A44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E1A7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E1A7D   Length              0005 (5)\n+4E1A7F   Flags               01 (1) 'Modification'\n+4E1A80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E1A84 PAYLOAD\n+\n+4E2014 DATA DESCRIPTOR       08074B50 (134695760)\n+4E2018 CRC                   74ECF448 (1961686088)\n+4E201C Compressed Size       00000590 (1424)\n+4E2020 Uncompressed Size     00000590 (1424)\n+\n+4E2024 LOCAL HEADER #1400    04034B50 (67324752)\n+4E2028 Extract Zip Spec      14 (20) '2.0'\n+4E2029 Extract OS            00 (0) 'MS-DOS'\n+4E202A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E202C Compression Method    0000 (0) 'Stored'\n+4E202E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E2032 CRC                   00000000 (0)\n+4E2036 Compressed Size       00000000 (0)\n+4E203A Uncompressed Size     00000000 (0)\n+4E203E Filename Length       0038 (56)\n+4E2040 Extra Length          0009 (9)\n+4E2042 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E2042: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E207A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E207C   Length              0005 (5)\n+4E207E   Flags               01 (1) 'Modification'\n+4E207F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E2083 PAYLOAD\n+\n+4E2A01 DATA DESCRIPTOR       08074B50 (134695760)\n+4E2A05 CRC                   5119DCCD (1360649421)\n+4E2A09 Compressed Size       0000097E (2430)\n+4E2A0D Uncompressed Size     0000097E (2430)\n+\n+4E2A11 LOCAL HEADER #1401    04034B50 (67324752)\n+4E2A15 Extract Zip Spec      14 (20) '2.0'\n+4E2A16 Extract OS            00 (0) 'MS-DOS'\n+4E2A17 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E2A19 Compression Method    0000 (0) 'Stored'\n+4E2A1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E2A1F CRC                   00000000 (0)\n+4E2A23 Compressed Size       00000000 (0)\n+4E2A27 Uncompressed Size     00000000 (0)\n+4E2A2B Filename Length       0040 (64)\n+4E2A2D Extra Length          0009 (9)\n+4E2A2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E2A2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E2A6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E2A71   Length              0005 (5)\n+4E2A73   Flags               01 (1) 'Modification'\n+4E2A74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E2A78 PAYLOAD\n+\n+4E5227 DATA DESCRIPTOR       08074B50 (134695760)\n+4E522B CRC                   A9FB32A5 (2851812005)\n+4E522F Compressed Size       000027AF (10159)\n+4E5233 Uncompressed Size     000027AF (10159)\n+\n+4E5237 LOCAL HEADER #1402    04034B50 (67324752)\n+4E523B Extract Zip Spec      14 (20) '2.0'\n+4E523C Extract OS            00 (0) 'MS-DOS'\n+4E523D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E523F Compression Method    0000 (0) 'Stored'\n+4E5241 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E5245 CRC                   00000000 (0)\n+4E5249 Compressed Size       00000000 (0)\n+4E524D Uncompressed Size     00000000 (0)\n+4E5251 Filename Length       0047 (71)\n+4E5253 Extra Length          0009 (9)\n+4E5255 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E5255: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E529C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E529E   Length              0005 (5)\n+4E52A0   Flags               01 (1) 'Modification'\n+4E52A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E52A5 PAYLOAD\n+\n+4E579A DATA DESCRIPTOR       08074B50 (134695760)\n+4E579E CRC                   1848A62B (407414315)\n+4E57A2 Compressed Size       000004F5 (1269)\n+4E57A6 Uncompressed Size     000004F5 (1269)\n+\n+4E57AA LOCAL HEADER #1403    04034B50 (67324752)\n+4E57AE Extract Zip Spec      14 (20) '2.0'\n+4E57AF Extract OS            00 (0) 'MS-DOS'\n+4E57B0 General Purpose Flag  0000 (0)\n+4E57B2 Compression Method    0000 (0) 'Stored'\n+4E57B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E57B8 CRC                   00000000 (0)\n+4E57BC Compressed Size       00000000 (0)\n+4E57C0 Uncompressed Size     00000000 (0)\n+4E57C4 Filename Length       0021 (33)\n+4E57C6 Extra Length          0009 (9)\n+4E57C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E57C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E57E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E57EB   Length              0005 (5)\n+4E57ED   Flags               01 (1) 'Modification'\n+4E57EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4E57F2 LOCAL HEADER #1404    04034B50 (67324752)\n+4E57F6 Extract Zip Spec      14 (20) '2.0'\n+4E57F7 Extract OS            00 (0) 'MS-DOS'\n+4E57F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E57FA Compression Method    0000 (0) 'Stored'\n+4E57FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E5800 CRC                   00000000 (0)\n+4E5804 Compressed Size       00000000 (0)\n+4E5808 Uncompressed Size     00000000 (0)\n+4E580C Filename Length       003B (59)\n+4E580E Extra Length          0009 (9)\n+4E5810 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E5810: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E584B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E584D   Length              0005 (5)\n+4E584F   Flags               01 (1) 'Modification'\n+4E5850   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E5854 PAYLOAD\n+\n+4E607A DATA DESCRIPTOR       08074B50 (134695760)\n+4E607E CRC                   F2E8FAB9 (4075354809)\n+4E6082 Compressed Size       00000826 (2086)\n+4E6086 Uncompressed Size     00000826 (2086)\n+\n+4E608A LOCAL HEADER #1405    04034B50 (67324752)\n+4E608E Extract Zip Spec      14 (20) '2.0'\n+4E608F Extract OS            00 (0) 'MS-DOS'\n+4E6090 General Purpose Flag  0000 (0)\n+4E6092 Compression Method    0000 (0) 'Stored'\n+4E6094 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E6098 CRC                   00000000 (0)\n+4E609C Compressed Size       00000000 (0)\n+4E60A0 Uncompressed Size     00000000 (0)\n+4E60A4 Filename Length       0022 (34)\n+4E60A6 Extra Length          0009 (9)\n+4E60A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E60A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E60CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E60CC   Length              0005 (5)\n+4E60CE   Flags               01 (1) 'Modification'\n+4E60CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4E60D3 LOCAL HEADER #1406    04034B50 (67324752)\n+4E60D7 Extract Zip Spec      14 (20) '2.0'\n+4E60D8 Extract OS            00 (0) 'MS-DOS'\n+4E60D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4E60DB Compression Method    0000 (0) 'Stored'\n+4E60DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4E60E1 CRC                   00000000 (0)\n+4E60E5 Compressed Size       00000000 (0)\n+4E60E9 Uncompressed Size     00000000 (0)\n+4E60ED Filename Length       0037 (55)\n+4E60EF Extra Length          0009 (9)\n+4E60F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4E60F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4E6128 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4E612A   Length              0005 (5)\n+4E612C   Flags               01 (1) 'Modification'\n+4E612D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4E6131 PAYLOAD\n+\n+4EB4B0 DATA DESCRIPTOR       08074B50 (134695760)\n+4EB4B4 CRC                   5DDCD4C5 (1574753477)\n+4EB4B8 Compressed Size       0000537F (21375)\n+4EB4BC Uncompressed Size     0000537F (21375)\n+\n+4EB4C0 LOCAL HEADER #1407    04034B50 (67324752)\n+4EB4C4 Extract Zip Spec      14 (20) '2.0'\n+4EB4C5 Extract OS            00 (0) 'MS-DOS'\n+4EB4C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4EB4C8 Compression Method    0000 (0) 'Stored'\n+4EB4CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4EB4CE CRC                   00000000 (0)\n+4EB4D2 Compressed Size       00000000 (0)\n+4EB4D6 Uncompressed Size     00000000 (0)\n+4EB4DA Filename Length       003E (62)\n+4EB4DC Extra Length          0009 (9)\n+4EB4DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4EB4DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4EB51C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4EB51E   Length              0005 (5)\n+4EB520   Flags               01 (1) 'Modification'\n+4EB521   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4EB525 PAYLOAD\n+\n+4ED2AF DATA DESCRIPTOR       08074B50 (134695760)\n+4ED2B3 CRC                   5BC81E29 (1539841577)\n+4ED2B7 Compressed Size       00001D8A (7562)\n+4ED2BB Uncompressed Size     00001D8A (7562)\n+\n+4ED2BF LOCAL HEADER #1408    04034B50 (67324752)\n+4ED2C3 Extract Zip Spec      14 (20) '2.0'\n+4ED2C4 Extract OS            00 (0) 'MS-DOS'\n+4ED2C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4ED2C7 Compression Method    0000 (0) 'Stored'\n+4ED2C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4ED2CD CRC                   00000000 (0)\n+4ED2D1 Compressed Size       00000000 (0)\n+4ED2D5 Uncompressed Size     00000000 (0)\n+4ED2D9 Filename Length       0037 (55)\n+4ED2DB Extra Length          0009 (9)\n+4ED2DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4ED2DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4ED314 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4ED316   Length              0005 (5)\n+4ED318   Flags               01 (1) 'Modification'\n+4ED319   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4ED31D PAYLOAD\n+\n+4F194B DATA DESCRIPTOR       08074B50 (134695760)\n+4F194F CRC                   A266F3B2 (2724656050)\n+4F1953 Compressed Size       0000462E (17966)\n+4F1957 Uncompressed Size     0000462E (17966)\n+\n+4F195B LOCAL HEADER #1409    04034B50 (67324752)\n+4F195F Extract Zip Spec      14 (20) '2.0'\n+4F1960 Extract OS            00 (0) 'MS-DOS'\n+4F1961 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F1963 Compression Method    0000 (0) 'Stored'\n+4F1965 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F1969 CRC                   00000000 (0)\n+4F196D Compressed Size       00000000 (0)\n+4F1971 Uncompressed Size     00000000 (0)\n+4F1975 Filename Length       0043 (67)\n+4F1977 Extra Length          0009 (9)\n+4F1979 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F1979: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F19BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F19BE   Length              0005 (5)\n+4F19C0   Flags               01 (1) 'Modification'\n+4F19C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F19C5 PAYLOAD\n+\n+4F1F17 DATA DESCRIPTOR       08074B50 (134695760)\n+4F1F1B CRC                   952E3CF5 (2502835445)\n+4F1F1F Compressed Size       00000552 (1362)\n+4F1F23 Uncompressed Size     00000552 (1362)\n+\n+4F1F27 LOCAL HEADER #1410    04034B50 (67324752)\n+4F1F2B Extract Zip Spec      14 (20) '2.0'\n+4F1F2C Extract OS            00 (0) 'MS-DOS'\n+4F1F2D General Purpose Flag  0000 (0)\n+4F1F2F Compression Method    0000 (0) 'Stored'\n+4F1F31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F1F35 CRC                   00000000 (0)\n+4F1F39 Compressed Size       00000000 (0)\n+4F1F3D Uncompressed Size     00000000 (0)\n+4F1F41 Filename Length       0024 (36)\n+4F1F43 Extra Length          0009 (9)\n+4F1F45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F1F45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F1F69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F1F6B   Length              0005 (5)\n+4F1F6D   Flags               01 (1) 'Modification'\n+4F1F6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4F1F72 LOCAL HEADER #1411    04034B50 (67324752)\n+4F1F76 Extract Zip Spec      14 (20) '2.0'\n+4F1F77 Extract OS            00 (0) 'MS-DOS'\n+4F1F78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F1F7A Compression Method    0000 (0) 'Stored'\n+4F1F7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F1F80 CRC                   00000000 (0)\n+4F1F84 Compressed Size       00000000 (0)\n+4F1F88 Uncompressed Size     00000000 (0)\n+4F1F8C Filename Length       003A (58)\n+4F1F8E Extra Length          0009 (9)\n+4F1F90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F1F90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F1FCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F1FCC   Length              0005 (5)\n+4F1FCE   Flags               01 (1) 'Modification'\n+4F1FCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F1FD3 PAYLOAD\n+\n+4F283E DATA DESCRIPTOR       08074B50 (134695760)\n+4F2842 CRC                   7F603610 (2137011728)\n+4F2846 Compressed Size       0000086B (2155)\n+4F284A Uncompressed Size     0000086B (2155)\n+\n+4F284E LOCAL HEADER #1412    04034B50 (67324752)\n+4F2852 Extract Zip Spec      14 (20) '2.0'\n+4F2853 Extract OS            00 (0) 'MS-DOS'\n+4F2854 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F2856 Compression Method    0000 (0) 'Stored'\n+4F2858 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F285C CRC                   00000000 (0)\n+4F2860 Compressed Size       00000000 (0)\n+4F2864 Uncompressed Size     00000000 (0)\n+4F2868 Filename Length       003A (58)\n+4F286A Extra Length          0009 (9)\n+4F286C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F286C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F28A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F28A8   Length              0005 (5)\n+4F28AA   Flags               01 (1) 'Modification'\n+4F28AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F28AF PAYLOAD\n+\n+4F62CE DATA DESCRIPTOR       08074B50 (134695760)\n+4F62D2 CRC                   57271651 (1462179409)\n+4F62D6 Compressed Size       00003A1F (14879)\n+4F62DA Uncompressed Size     00003A1F (14879)\n+\n+4F62DE LOCAL HEADER #1413    04034B50 (67324752)\n+4F62E2 Extract Zip Spec      14 (20) '2.0'\n+4F62E3 Extract OS            00 (0) 'MS-DOS'\n+4F62E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F62E6 Compression Method    0000 (0) 'Stored'\n+4F62E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F62EC CRC                   00000000 (0)\n+4F62F0 Compressed Size       00000000 (0)\n+4F62F4 Uncompressed Size     00000000 (0)\n+4F62F8 Filename Length       0041 (65)\n+4F62FA Extra Length          0009 (9)\n+4F62FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F62FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F633D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F633F   Length              0005 (5)\n+4F6341   Flags               01 (1) 'Modification'\n+4F6342   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F6346 PAYLOAD\n+\n+4F69C9 DATA DESCRIPTOR       08074B50 (134695760)\n+4F69CD CRC                   E96DE12E (3916292398)\n+4F69D1 Compressed Size       00000683 (1667)\n+4F69D5 Uncompressed Size     00000683 (1667)\n+\n+4F69D9 LOCAL HEADER #1414    04034B50 (67324752)\n+4F69DD Extract Zip Spec      14 (20) '2.0'\n+4F69DE Extract OS            00 (0) 'MS-DOS'\n+4F69DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F69E1 Compression Method    0000 (0) 'Stored'\n+4F69E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F69E7 CRC                   00000000 (0)\n+4F69EB Compressed Size       00000000 (0)\n+4F69EF Uncompressed Size     00000000 (0)\n+4F69F3 Filename Length       0042 (66)\n+4F69F5 Extra Length          0009 (9)\n+4F69F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F69F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F6A39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F6A3B   Length              0005 (5)\n+4F6A3D   Flags               01 (1) 'Modification'\n+4F6A3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F6A42 PAYLOAD\n+\n+4F8B71 DATA DESCRIPTOR       08074B50 (134695760)\n+4F8B75 CRC                   30ABB121 (816558369)\n+4F8B79 Compressed Size       0000212F (8495)\n+4F8B7D Uncompressed Size     0000212F (8495)\n+\n+4F8B81 LOCAL HEADER #1415    04034B50 (67324752)\n+4F8B85 Extract Zip Spec      14 (20) '2.0'\n+4F8B86 Extract OS            00 (0) 'MS-DOS'\n+4F8B87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F8B89 Compression Method    0000 (0) 'Stored'\n+4F8B8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F8B8F CRC                   00000000 (0)\n+4F8B93 Compressed Size       00000000 (0)\n+4F8B97 Uncompressed Size     00000000 (0)\n+4F8B9B Filename Length       004F (79)\n+4F8B9D Extra Length          0009 (9)\n+4F8B9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F8B9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F8BEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F8BF0   Length              0005 (5)\n+4F8BF2   Flags               01 (1) 'Modification'\n+4F8BF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F8BF7 PAYLOAD\n+\n+4F98B1 DATA DESCRIPTOR       08074B50 (134695760)\n+4F98B5 CRC                   9A6BCF9D (2590756765)\n+4F98B9 Compressed Size       00000CBA (3258)\n+4F98BD Uncompressed Size     00000CBA (3258)\n+\n+4F98C1 LOCAL HEADER #1416    04034B50 (67324752)\n+4F98C5 Extract Zip Spec      14 (20) '2.0'\n+4F98C6 Extract OS            00 (0) 'MS-DOS'\n+4F98C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F98C9 Compression Method    0000 (0) 'Stored'\n+4F98CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F98CF CRC                   00000000 (0)\n+4F98D3 Compressed Size       00000000 (0)\n+4F98D7 Uncompressed Size     00000000 (0)\n+4F98DB Filename Length       0049 (73)\n+4F98DD Extra Length          0009 (9)\n+4F98DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F98DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F9928 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F992A   Length              0005 (5)\n+4F992C   Flags               01 (1) 'Modification'\n+4F992D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F9931 PAYLOAD\n+\n+4F9E27 DATA DESCRIPTOR       08074B50 (134695760)\n+4F9E2B CRC                   3AB6ADA6 (985050534)\n+4F9E2F Compressed Size       000004F6 (1270)\n+4F9E33 Uncompressed Size     000004F6 (1270)\n+\n+4F9E37 LOCAL HEADER #1417    04034B50 (67324752)\n+4F9E3B Extract Zip Spec      14 (20) '2.0'\n+4F9E3C Extract OS            00 (0) 'MS-DOS'\n+4F9E3D General Purpose Flag  0000 (0)\n+4F9E3F Compression Method    0000 (0) 'Stored'\n+4F9E41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F9E45 CRC                   00000000 (0)\n+4F9E49 Compressed Size       00000000 (0)\n+4F9E4D Uncompressed Size     00000000 (0)\n+4F9E51 Filename Length       0029 (41)\n+4F9E53 Extra Length          0009 (9)\n+4F9E55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F9E55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F9E7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F9E80   Length              0005 (5)\n+4F9E82   Flags               01 (1) 'Modification'\n+4F9E83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4F9E87 LOCAL HEADER #1418    04034B50 (67324752)\n+4F9E8B Extract Zip Spec      14 (20) '2.0'\n+4F9E8C Extract OS            00 (0) 'MS-DOS'\n+4F9E8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4F9E8F Compression Method    0000 (0) 'Stored'\n+4F9E91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4F9E95 CRC                   00000000 (0)\n+4F9E99 Compressed Size       00000000 (0)\n+4F9E9D Uncompressed Size     00000000 (0)\n+4F9EA1 Filename Length       0044 (68)\n+4F9EA3 Extra Length          0009 (9)\n+4F9EA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4F9EA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4F9EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4F9EEB   Length              0005 (5)\n+4F9EED   Flags               01 (1) 'Modification'\n+4F9EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4F9EF2 PAYLOAD\n+\n+4FABC9 DATA DESCRIPTOR       08074B50 (134695760)\n+4FABCD CRC                   2502C8DF (620939487)\n+4FABD1 Compressed Size       00000CD7 (3287)\n+4FABD5 Uncompressed Size     00000CD7 (3287)\n+\n+4FABD9 LOCAL HEADER #1419    04034B50 (67324752)\n+4FABDD Extract Zip Spec      14 (20) '2.0'\n+4FABDE Extract OS            00 (0) 'MS-DOS'\n+4FABDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FABE1 Compression Method    0000 (0) 'Stored'\n+4FABE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FABE7 CRC                   00000000 (0)\n+4FABEB Compressed Size       00000000 (0)\n+4FABEF Uncompressed Size     00000000 (0)\n+4FABF3 Filename Length       0043 (67)\n+4FABF5 Extra Length          0009 (9)\n+4FABF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FABF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FAC3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FAC3C   Length              0005 (5)\n+4FAC3E   Flags               01 (1) 'Modification'\n+4FAC3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FAC43 PAYLOAD\n+\n+4FC20E DATA DESCRIPTOR       08074B50 (134695760)\n+4FC212 CRC                   B9A91D04 (3114867972)\n+4FC216 Compressed Size       000015CB (5579)\n+4FC21A Uncompressed Size     000015CB (5579)\n+\n+4FC21E LOCAL HEADER #1420    04034B50 (67324752)\n+4FC222 Extract Zip Spec      14 (20) '2.0'\n+4FC223 Extract OS            00 (0) 'MS-DOS'\n+4FC224 General Purpose Flag  0000 (0)\n+4FC226 Compression Method    0000 (0) 'Stored'\n+4FC228 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FC22C CRC                   00000000 (0)\n+4FC230 Compressed Size       00000000 (0)\n+4FC234 Uncompressed Size     00000000 (0)\n+4FC238 Filename Length       001A (26)\n+4FC23A Extra Length          0009 (9)\n+4FC23C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FC23C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FC256 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FC258   Length              0005 (5)\n+4FC25A   Flags               01 (1) 'Modification'\n+4FC25B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+4FC25F LOCAL HEADER #1421    04034B50 (67324752)\n+4FC263 Extract Zip Spec      14 (20) '2.0'\n+4FC264 Extract OS            00 (0) 'MS-DOS'\n+4FC265 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FC267 Compression Method    0000 (0) 'Stored'\n+4FC269 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FC26D CRC                   00000000 (0)\n+4FC271 Compressed Size       00000000 (0)\n+4FC275 Uncompressed Size     00000000 (0)\n+4FC279 Filename Length       0026 (38)\n+4FC27B Extra Length          0009 (9)\n+4FC27D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FC27D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FC2A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FC2A5   Length              0005 (5)\n+4FC2A7   Flags               01 (1) 'Modification'\n+4FC2A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FC2AC PAYLOAD\n+\n+4FCA2F DATA DESCRIPTOR       08074B50 (134695760)\n+4FCA33 CRC                   040E3AFC (68041468)\n+4FCA37 Compressed Size       00000783 (1923)\n+4FCA3B Uncompressed Size     00000783 (1923)\n+\n+4FCA3F LOCAL HEADER #1422    04034B50 (67324752)\n+4FCA43 Extract Zip Spec      14 (20) '2.0'\n+4FCA44 Extract OS            00 (0) 'MS-DOS'\n+4FCA45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FCA47 Compression Method    0000 (0) 'Stored'\n+4FCA49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FCA4D CRC                   00000000 (0)\n+4FCA51 Compressed Size       00000000 (0)\n+4FCA55 Uncompressed Size     00000000 (0)\n+4FCA59 Filename Length       002D (45)\n+4FCA5B Extra Length          0009 (9)\n+4FCA5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FCA5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FCA8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FCA8C   Length              0005 (5)\n+4FCA8E   Flags               01 (1) 'Modification'\n+4FCA8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FCA93 PAYLOAD\n+\n+4FD2DC DATA DESCRIPTOR       08074B50 (134695760)\n+4FD2E0 CRC                   1A6C5333 (443306803)\n+4FD2E4 Compressed Size       00000849 (2121)\n+4FD2E8 Uncompressed Size     00000849 (2121)\n+\n+4FD2EC LOCAL HEADER #1423    04034B50 (67324752)\n+4FD2F0 Extract Zip Spec      14 (20) '2.0'\n+4FD2F1 Extract OS            00 (0) 'MS-DOS'\n+4FD2F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FD2F4 Compression Method    0000 (0) 'Stored'\n+4FD2F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FD2FA CRC                   00000000 (0)\n+4FD2FE Compressed Size       00000000 (0)\n+4FD302 Uncompressed Size     00000000 (0)\n+4FD306 Filename Length       0025 (37)\n+4FD308 Extra Length          0009 (9)\n+4FD30A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FD30A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FD32F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FD331   Length              0005 (5)\n+4FD333   Flags               01 (1) 'Modification'\n+4FD334   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FD338 PAYLOAD\n+\n+4FD8C3 DATA DESCRIPTOR       08074B50 (134695760)\n+4FD8C7 CRC                   107C6EE6 (276590310)\n+4FD8CB Compressed Size       0000058B (1419)\n+4FD8CF Uncompressed Size     0000058B (1419)\n+\n+4FD8D3 LOCAL HEADER #1424    04034B50 (67324752)\n+4FD8D7 Extract Zip Spec      14 (20) '2.0'\n+4FD8D8 Extract OS            00 (0) 'MS-DOS'\n+4FD8D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FD8DB Compression Method    0000 (0) 'Stored'\n+4FD8DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FD8E1 CRC                   00000000 (0)\n+4FD8E5 Compressed Size       00000000 (0)\n+4FD8E9 Uncompressed Size     00000000 (0)\n+4FD8ED Filename Length       0024 (36)\n+4FD8EF Extra Length          0009 (9)\n+4FD8F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FD8F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FD915 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FD917   Length              0005 (5)\n+4FD919   Flags               01 (1) 'Modification'\n+4FD91A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FD91E PAYLOAD\n+\n+4FE08F DATA DESCRIPTOR       08074B50 (134695760)\n+4FE093 CRC                   9EA8C701 (2661861121)\n+4FE097 Compressed Size       00000771 (1905)\n+4FE09B Uncompressed Size     00000771 (1905)\n+\n+4FE09F LOCAL HEADER #1425    04034B50 (67324752)\n+4FE0A3 Extract Zip Spec      14 (20) '2.0'\n+4FE0A4 Extract OS            00 (0) 'MS-DOS'\n+4FE0A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FE0A7 Compression Method    0000 (0) 'Stored'\n+4FE0A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FE0AD CRC                   00000000 (0)\n+4FE0B1 Compressed Size       00000000 (0)\n+4FE0B5 Uncompressed Size     00000000 (0)\n+4FE0B9 Filename Length       0025 (37)\n+4FE0BB Extra Length          0009 (9)\n+4FE0BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FE0BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FE0E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FE0E4   Length              0005 (5)\n+4FE0E6   Flags               01 (1) 'Modification'\n+4FE0E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FE0EB PAYLOAD\n+\n+4FE66F DATA DESCRIPTOR       08074B50 (134695760)\n+4FE673 CRC                   2D139396 (756257686)\n+4FE677 Compressed Size       00000584 (1412)\n+4FE67B Uncompressed Size     00000584 (1412)\n+\n+4FE67F LOCAL HEADER #1426    04034B50 (67324752)\n+4FE683 Extract Zip Spec      14 (20) '2.0'\n+4FE684 Extract OS            00 (0) 'MS-DOS'\n+4FE685 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FE687 Compression Method    0000 (0) 'Stored'\n+4FE689 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FE68D CRC                   00000000 (0)\n+4FE691 Compressed Size       00000000 (0)\n+4FE695 Uncompressed Size     00000000 (0)\n+4FE699 Filename Length       0028 (40)\n+4FE69B Extra Length          0009 (9)\n+4FE69D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FE69D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FE6C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FE6C7   Length              0005 (5)\n+4FE6C9   Flags               01 (1) 'Modification'\n+4FE6CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FE6CE PAYLOAD\n+\n+4FF5D2 DATA DESCRIPTOR       08074B50 (134695760)\n+4FF5D6 CRC                   CEFC9AFA (3472661242)\n+4FF5DA Compressed Size       00000F04 (3844)\n+4FF5DE Uncompressed Size     00000F04 (3844)\n+\n+4FF5E2 LOCAL HEADER #1427    04034B50 (67324752)\n+4FF5E6 Extract Zip Spec      14 (20) '2.0'\n+4FF5E7 Extract OS            00 (0) 'MS-DOS'\n+4FF5E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FF5EA Compression Method    0000 (0) 'Stored'\n+4FF5EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FF5F0 CRC                   00000000 (0)\n+4FF5F4 Compressed Size       00000000 (0)\n+4FF5F8 Uncompressed Size     00000000 (0)\n+4FF5FC Filename Length       0029 (41)\n+4FF5FE Extra Length          0009 (9)\n+4FF600 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FF600: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FF629 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FF62B   Length              0005 (5)\n+4FF62D   Flags               01 (1) 'Modification'\n+4FF62E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FF632 PAYLOAD\n+\n+4FF9DE DATA DESCRIPTOR       08074B50 (134695760)\n+4FF9E2 CRC                   D7F89917 (3623393559)\n+4FF9E6 Compressed Size       000003AC (940)\n+4FF9EA Uncompressed Size     000003AC (940)\n+\n+4FF9EE LOCAL HEADER #1428    04034B50 (67324752)\n+4FF9F2 Extract Zip Spec      14 (20) '2.0'\n+4FF9F3 Extract OS            00 (0) 'MS-DOS'\n+4FF9F4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+4FF9F6 Compression Method    0000 (0) 'Stored'\n+4FF9F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+4FF9FC CRC                   00000000 (0)\n+4FFA00 Compressed Size       00000000 (0)\n+4FFA04 Uncompressed Size     00000000 (0)\n+4FFA08 Filename Length       0029 (41)\n+4FFA0A Extra Length          0009 (9)\n+4FFA0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x4FFA0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+4FFA35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+4FFA37   Length              0005 (5)\n+4FFA39   Flags               01 (1) 'Modification'\n+4FFA3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+4FFA3E PAYLOAD\n+\n+50005F DATA DESCRIPTOR       08074B50 (134695760)\n+500063 CRC                   4A25E4BC (1243997372)\n+500067 Compressed Size       00000621 (1569)\n+50006B Uncompressed Size     00000621 (1569)\n+\n+50006F LOCAL HEADER #1429    04034B50 (67324752)\n+500073 Extract Zip Spec      14 (20) '2.0'\n+500074 Extract OS            00 (0) 'MS-DOS'\n+500075 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+500077 Compression Method    0000 (0) 'Stored'\n+500079 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50007D CRC                   00000000 (0)\n+500081 Compressed Size       00000000 (0)\n+500085 Uncompressed Size     00000000 (0)\n+500089 Filename Length       0027 (39)\n+50008B Extra Length          0009 (9)\n+50008D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50008D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5000B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5000B6   Length              0005 (5)\n+5000B8   Flags               01 (1) 'Modification'\n+5000B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5000BD PAYLOAD\n+\n+5008FA DATA DESCRIPTOR       08074B50 (134695760)\n+5008FE CRC                   D97FD102 (3649032450)\n+500902 Compressed Size       0000083D (2109)\n+500906 Uncompressed Size     0000083D (2109)\n+\n+50090A LOCAL HEADER #1430    04034B50 (67324752)\n+50090E Extract Zip Spec      14 (20) '2.0'\n+50090F Extract OS            00 (0) 'MS-DOS'\n+500910 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+500912 Compression Method    0000 (0) 'Stored'\n+500914 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+500918 CRC                   00000000 (0)\n+50091C Compressed Size       00000000 (0)\n+500920 Uncompressed Size     00000000 (0)\n+500924 Filename Length       0031 (49)\n+500926 Extra Length          0009 (9)\n+500928 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x500928: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+500959 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+50095B   Length              0005 (5)\n+50095D   Flags               01 (1) 'Modification'\n+50095E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+500962 PAYLOAD\n+\n+5012CA DATA DESCRIPTOR       08074B50 (134695760)\n+5012CE CRC                   6CA638E1 (1822832865)\n+5012D2 Compressed Size       00000968 (2408)\n+5012D6 Uncompressed Size     00000968 (2408)\n+\n+5012DA LOCAL HEADER #1431    04034B50 (67324752)\n+5012DE Extract Zip Spec      14 (20) '2.0'\n+5012DF Extract OS            00 (0) 'MS-DOS'\n+5012E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5012E2 Compression Method    0000 (0) 'Stored'\n+5012E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5012E8 CRC                   00000000 (0)\n+5012EC Compressed Size       00000000 (0)\n+5012F0 Uncompressed Size     00000000 (0)\n+5012F4 Filename Length       002B (43)\n+5012F6 Extra Length          0009 (9)\n+5012F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5012F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+501323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+501325   Length              0005 (5)\n+501327   Flags               01 (1) 'Modification'\n+501328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+50132C PAYLOAD\n+\n+501961 DATA DESCRIPTOR       08074B50 (134695760)\n+501965 CRC                   31AD4BD9 (833440729)\n+501969 Compressed Size       00000635 (1589)\n+50196D Uncompressed Size     00000635 (1589)\n+\n+501971 LOCAL HEADER #1432    04034B50 (67324752)\n+501975 Extract Zip Spec      14 (20) '2.0'\n+501976 Extract OS            00 (0) 'MS-DOS'\n+501977 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+501979 Compression Method    0000 (0) 'Stored'\n+50197B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50197F CRC                   00000000 (0)\n+501983 Compressed Size       00000000 (0)\n+501987 Uncompressed Size     00000000 (0)\n+50198B Filename Length       0030 (48)\n+50198D Extra Length          0009 (9)\n+50198F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50198F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5019BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5019C1   Length              0005 (5)\n+5019C3   Flags               01 (1) 'Modification'\n+5019C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5019C8 PAYLOAD\n+\n+5026B1 DATA DESCRIPTOR       08074B50 (134695760)\n+5026B5 CRC                   8BF38561 (2347992417)\n+5026B9 Compressed Size       00000CE9 (3305)\n+5026BD Uncompressed Size     00000CE9 (3305)\n+\n+5026C1 LOCAL HEADER #1433    04034B50 (67324752)\n+5026C5 Extract Zip Spec      14 (20) '2.0'\n+5026C6 Extract OS            00 (0) 'MS-DOS'\n+5026C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5026C9 Compression Method    0000 (0) 'Stored'\n+5026CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5026CF CRC                   00000000 (0)\n+5026D3 Compressed Size       00000000 (0)\n+5026D7 Uncompressed Size     00000000 (0)\n+5026DB Filename Length       002D (45)\n+5026DD Extra Length          0009 (9)\n+5026DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5026DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+50270C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+50270E   Length              0005 (5)\n+502710   Flags               01 (1) 'Modification'\n+502711   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+502715 PAYLOAD\n+\n+502DF8 DATA DESCRIPTOR       08074B50 (134695760)\n+502DFC CRC                   38EB0C43 (954928195)\n+502E00 Compressed Size       000006E3 (1763)\n+502E04 Uncompressed Size     000006E3 (1763)\n+\n+502E08 LOCAL HEADER #1434    04034B50 (67324752)\n+502E0C Extract Zip Spec      14 (20) '2.0'\n+502E0D Extract OS            00 (0) 'MS-DOS'\n+502E0E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+502E10 Compression Method    0000 (0) 'Stored'\n+502E12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+502E16 CRC                   00000000 (0)\n+502E1A Compressed Size       00000000 (0)\n+502E1E Uncompressed Size     00000000 (0)\n+502E22 Filename Length       002F (47)\n+502E24 Extra Length          0009 (9)\n+502E26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x502E26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+502E55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+502E57   Length              0005 (5)\n+502E59   Flags               01 (1) 'Modification'\n+502E5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+502E5E PAYLOAD\n+\n+50361F DATA DESCRIPTOR       08074B50 (134695760)\n+503623 CRC                   D0646959 (3496241497)\n+503627 Compressed Size       000007C1 (1985)\n+50362B Uncompressed Size     000007C1 (1985)\n+\n+50362F LOCAL HEADER #1435    04034B50 (67324752)\n+503633 Extract Zip Spec      14 (20) '2.0'\n+503634 Extract OS            00 (0) 'MS-DOS'\n+503635 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+503637 Compression Method    0000 (0) 'Stored'\n+503639 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50363D CRC                   00000000 (0)\n+503641 Compressed Size       00000000 (0)\n+503645 Uncompressed Size     00000000 (0)\n+503649 Filename Length       002A (42)\n+50364B Extra Length          0009 (9)\n+50364D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50364D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+503677 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+503679   Length              0005 (5)\n+50367B   Flags               01 (1) 'Modification'\n+50367C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+503680 PAYLOAD\n+\n+503ECE DATA DESCRIPTOR       08074B50 (134695760)\n+503ED2 CRC                   4475FC12 (1148582930)\n+503ED6 Compressed Size       0000084E (2126)\n+503EDA Uncompressed Size     0000084E (2126)\n+\n+503EDE LOCAL HEADER #1436    04034B50 (67324752)\n+503EE2 Extract Zip Spec      14 (20) '2.0'\n+503EE3 Extract OS            00 (0) 'MS-DOS'\n+503EE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+503EE6 Compression Method    0000 (0) 'Stored'\n+503EE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+503EEC CRC                   00000000 (0)\n+503EF0 Compressed Size       00000000 (0)\n+503EF4 Uncompressed Size     00000000 (0)\n+503EF8 Filename Length       002B (43)\n+503EFA Extra Length          0009 (9)\n+503EFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x503EFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+503F27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+503F29   Length              0005 (5)\n+503F2B   Flags               01 (1) 'Modification'\n+503F2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+503F30 PAYLOAD\n+\n+504B49 DATA DESCRIPTOR       08074B50 (134695760)\n+504B4D CRC                   65BE8BD8 (1706986456)\n+504B51 Compressed Size       00000C19 (3097)\n+504B55 Uncompressed Size     00000C19 (3097)\n+\n+504B59 LOCAL HEADER #1437    04034B50 (67324752)\n+504B5D Extract Zip Spec      14 (20) '2.0'\n+504B5E Extract OS            00 (0) 'MS-DOS'\n+504B5F General Purpose Flag  0000 (0)\n+504B61 Compression Method    0000 (0) 'Stored'\n+504B63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+504B67 CRC                   00000000 (0)\n+504B6B Compressed Size       00000000 (0)\n+504B6F Uncompressed Size     00000000 (0)\n+504B73 Filename Length       0021 (33)\n+504B75 Extra Length          0009 (9)\n+504B77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x504B77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+504B98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+504B9A   Length              0005 (5)\n+504B9C   Flags               01 (1) 'Modification'\n+504B9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+504BA1 LOCAL HEADER #1438    04034B50 (67324752)\n+504BA5 Extract Zip Spec      14 (20) '2.0'\n+504BA6 Extract OS            00 (0) 'MS-DOS'\n+504BA7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+504BA9 Compression Method    0000 (0) 'Stored'\n+504BAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+504BAF CRC                   00000000 (0)\n+504BB3 Compressed Size       00000000 (0)\n+504BB7 Uncompressed Size     00000000 (0)\n+504BBB Filename Length       003B (59)\n+504BBD Extra Length          0009 (9)\n+504BBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x504BBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+504BFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+504BFC   Length              0005 (5)\n+504BFE   Flags               01 (1) 'Modification'\n+504BFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+504C03 PAYLOAD\n+\n+50715C DATA DESCRIPTOR       08074B50 (134695760)\n+507160 CRC                   33E8796E (870873454)\n+507164 Compressed Size       00002559 (9561)\n+507168 Uncompressed Size     00002559 (9561)\n+\n+50716C LOCAL HEADER #1439    04034B50 (67324752)\n+507170 Extract Zip Spec      14 (20) '2.0'\n+507171 Extract OS            00 (0) 'MS-DOS'\n+507172 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+507174 Compression Method    0000 (0) 'Stored'\n+507176 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+50717A CRC                   00000000 (0)\n+50717E Compressed Size       00000000 (0)\n+507182 Uncompressed Size     00000000 (0)\n+507186 Filename Length       0043 (67)\n+507188 Extra Length          0009 (9)\n+50718A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x50718A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5071CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5071CF   Length              0005 (5)\n+5071D1   Flags               01 (1) 'Modification'\n+5071D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5071D6 PAYLOAD\n+\n+509088 DATA DESCRIPTOR       08074B50 (134695760)\n+50908C CRC                   AD83DA8F (2911099535)\n+509090 Compressed Size       00001EB2 (7858)\n+509094 Uncompressed Size     00001EB2 (7858)\n+\n+509098 LOCAL HEADER #1440    04034B50 (67324752)\n+50909C Extract Zip Spec      14 (20) '2.0'\n+50909D Extract OS            00 (0) 'MS-DOS'\n+50909E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5090A0 Compression Method    0000 (0) 'Stored'\n+5090A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5090A6 CRC                   00000000 (0)\n+5090AA Compressed Size       00000000 (0)\n+5090AE Uncompressed Size     00000000 (0)\n+5090B2 Filename Length       0033 (51)\n+5090B4 Extra Length          0009 (9)\n+5090B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5090B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5090E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5090EB   Length              0005 (5)\n+5090ED   Flags               01 (1) 'Modification'\n+5090EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5090F2 PAYLOAD\n+\n+513F19 DATA DESCRIPTOR       08074B50 (134695760)\n+513F1D CRC                   14F45D67 (351559015)\n+513F21 Compressed Size       0000AE27 (44583)\n+513F25 Uncompressed Size     0000AE27 (44583)\n+\n+513F29 LOCAL HEADER #1441    04034B50 (67324752)\n+513F2D Extract Zip Spec      14 (20) '2.0'\n+513F2E Extract OS            00 (0) 'MS-DOS'\n+513F2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+513F31 Compression Method    0000 (0) 'Stored'\n+513F33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+513F37 CRC                   00000000 (0)\n+513F3B Compressed Size       00000000 (0)\n+513F3F Uncompressed Size     00000000 (0)\n+513F43 Filename Length       003A (58)\n+513F45 Extra Length          0009 (9)\n+513F47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x513F47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+513F81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+513F83   Length              0005 (5)\n+513F85   Flags               01 (1) 'Modification'\n+513F86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+513F8A PAYLOAD\n+\n+5143E0 DATA DESCRIPTOR       08074B50 (134695760)\n+5143E4 CRC                   6A53E0FE (1783881982)\n+5143E8 Compressed Size       00000456 (1110)\n+5143EC Uncompressed Size     00000456 (1110)\n+\n+5143F0 LOCAL HEADER #1442    04034B50 (67324752)\n+5143F4 Extract Zip Spec      14 (20) '2.0'\n+5143F5 Extract OS            00 (0) 'MS-DOS'\n+5143F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5143F8 Compression Method    0000 (0) 'Stored'\n+5143FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5143FE CRC                   00000000 (0)\n+514402 Compressed Size       00000000 (0)\n+514406 Uncompressed Size     00000000 (0)\n+51440A Filename Length       003E (62)\n+51440C Extra Length          0009 (9)\n+51440E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51440E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51444C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51444E   Length              0005 (5)\n+514450   Flags               01 (1) 'Modification'\n+514451   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+514455 PAYLOAD\n+\n+5150A8 DATA DESCRIPTOR       08074B50 (134695760)\n+5150AC CRC                   4997E6D6 (1234691798)\n+5150B0 Compressed Size       00000C53 (3155)\n+5150B4 Uncompressed Size     00000C53 (3155)\n+\n+5150B8 LOCAL HEADER #1443    04034B50 (67324752)\n+5150BC Extract Zip Spec      14 (20) '2.0'\n+5150BD Extract OS            00 (0) 'MS-DOS'\n+5150BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5150C0 Compression Method    0000 (0) 'Stored'\n+5150C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5150C6 CRC                   00000000 (0)\n+5150CA Compressed Size       00000000 (0)\n+5150CE Uncompressed Size     00000000 (0)\n+5150D2 Filename Length       003F (63)\n+5150D4 Extra Length          0009 (9)\n+5150D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5150D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+515115 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+515117   Length              0005 (5)\n+515119   Flags               01 (1) 'Modification'\n+51511A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51511E PAYLOAD\n+\n+515883 DATA DESCRIPTOR       08074B50 (134695760)\n+515887 CRC                   996F8C6F (2574224495)\n+51588B Compressed Size       00000765 (1893)\n+51588F Uncompressed Size     00000765 (1893)\n+\n+515893 LOCAL HEADER #1444    04034B50 (67324752)\n+515897 Extract Zip Spec      14 (20) '2.0'\n+515898 Extract OS            00 (0) 'MS-DOS'\n+515899 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51589B Compression Method    0000 (0) 'Stored'\n+51589D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5158A1 CRC                   00000000 (0)\n+5158A5 Compressed Size       00000000 (0)\n+5158A9 Uncompressed Size     00000000 (0)\n+5158AD Filename Length       0034 (52)\n+5158AF Extra Length          0009 (9)\n+5158B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5158B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5158E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5158E7   Length              0005 (5)\n+5158E9   Flags               01 (1) 'Modification'\n+5158EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5158EE PAYLOAD\n+\n+516C2C DATA DESCRIPTOR       08074B50 (134695760)\n+516C30 CRC                   C2B309D7 (3266513367)\n+516C34 Compressed Size       0000133E (4926)\n+516C38 Uncompressed Size     0000133E (4926)\n+\n+516C3C LOCAL HEADER #1445    04034B50 (67324752)\n+516C40 Extract Zip Spec      14 (20) '2.0'\n+516C41 Extract OS            00 (0) 'MS-DOS'\n+516C42 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+516C44 Compression Method    0000 (0) 'Stored'\n+516C46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+516C4A CRC                   00000000 (0)\n+516C4E Compressed Size       00000000 (0)\n+516C52 Uncompressed Size     00000000 (0)\n+516C56 Filename Length       0040 (64)\n+516C58 Extra Length          0009 (9)\n+516C5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x516C5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+516C9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+516C9C   Length              0005 (5)\n+516C9E   Flags               01 (1) 'Modification'\n+516C9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+516CA3 PAYLOAD\n+\n+5176E8 DATA DESCRIPTOR       08074B50 (134695760)\n+5176EC CRC                   9D245ED3 (2636406483)\n+5176F0 Compressed Size       00000A45 (2629)\n+5176F4 Uncompressed Size     00000A45 (2629)\n+\n+5176F8 LOCAL HEADER #1446    04034B50 (67324752)\n+5176FC Extract Zip Spec      14 (20) '2.0'\n+5176FD Extract OS            00 (0) 'MS-DOS'\n+5176FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+517700 Compression Method    0000 (0) 'Stored'\n+517702 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+517706 CRC                   00000000 (0)\n+51770A Compressed Size       00000000 (0)\n+51770E Uncompressed Size     00000000 (0)\n+517712 Filename Length       003A (58)\n+517714 Extra Length          0009 (9)\n+517716 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x517716: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+517750 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+517752   Length              0005 (5)\n+517754   Flags               01 (1) 'Modification'\n+517755   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+517759 PAYLOAD\n+\n+518D41 DATA DESCRIPTOR       08074B50 (134695760)\n+518D45 CRC                   5ED5B140 (1591062848)\n+518D49 Compressed Size       000015E8 (5608)\n+518D4D Uncompressed Size     000015E8 (5608)\n+\n+518D51 LOCAL HEADER #1447    04034B50 (67324752)\n+518D55 Extract Zip Spec      14 (20) '2.0'\n+518D56 Extract OS            00 (0) 'MS-DOS'\n+518D57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+518D59 Compression Method    0000 (0) 'Stored'\n+518D5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+518D5F CRC                   00000000 (0)\n+518D63 Compressed Size       00000000 (0)\n+518D67 Uncompressed Size     00000000 (0)\n+518D6B Filename Length       0037 (55)\n+518D6D Extra Length          0009 (9)\n+518D6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x518D6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+518DA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+518DA8   Length              0005 (5)\n+518DAA   Flags               01 (1) 'Modification'\n+518DAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+518DAF PAYLOAD\n+\n+51A75E DATA DESCRIPTOR       08074B50 (134695760)\n+51A762 CRC                   CC038CDE (3422784734)\n+51A766 Compressed Size       000019AF (6575)\n+51A76A Uncompressed Size     000019AF (6575)\n+\n+51A76E LOCAL HEADER #1448    04034B50 (67324752)\n+51A772 Extract Zip Spec      14 (20) '2.0'\n+51A773 Extract OS            00 (0) 'MS-DOS'\n+51A774 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51A776 Compression Method    0000 (0) 'Stored'\n+51A778 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51A77C CRC                   00000000 (0)\n+51A780 Compressed Size       00000000 (0)\n+51A784 Uncompressed Size     00000000 (0)\n+51A788 Filename Length       003E (62)\n+51A78A Extra Length          0009 (9)\n+51A78C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51A78C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51A7CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51A7CC   Length              0005 (5)\n+51A7CE   Flags               01 (1) 'Modification'\n+51A7CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51A7D3 PAYLOAD\n+\n+51AF4C DATA DESCRIPTOR       08074B50 (134695760)\n+51AF50 CRC                   80349D10 (2150931728)\n+51AF54 Compressed Size       00000779 (1913)\n+51AF58 Uncompressed Size     00000779 (1913)\n+\n+51AF5C LOCAL HEADER #1449    04034B50 (67324752)\n+51AF60 Extract Zip Spec      14 (20) '2.0'\n+51AF61 Extract OS            00 (0) 'MS-DOS'\n+51AF62 General Purpose Flag  0000 (0)\n+51AF64 Compression Method    0000 (0) 'Stored'\n+51AF66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51AF6A CRC                   00000000 (0)\n+51AF6E Compressed Size       00000000 (0)\n+51AF72 Uncompressed Size     00000000 (0)\n+51AF76 Filename Length       001F (31)\n+51AF78 Extra Length          0009 (9)\n+51AF7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51AF7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51AF99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51AF9B   Length              0005 (5)\n+51AF9D   Flags               01 (1) 'Modification'\n+51AF9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+51AFA2 LOCAL HEADER #1450    04034B50 (67324752)\n+51AFA6 Extract Zip Spec      14 (20) '2.0'\n+51AFA7 Extract OS            00 (0) 'MS-DOS'\n+51AFA8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51AFAA Compression Method    0000 (0) 'Stored'\n+51AFAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51AFB0 CRC                   00000000 (0)\n+51AFB4 Compressed Size       00000000 (0)\n+51AFB8 Uncompressed Size     00000000 (0)\n+51AFBC Filename Length       0037 (55)\n+51AFBE Extra Length          0009 (9)\n+51AFC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51AFC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51AFF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51AFF9   Length              0005 (5)\n+51AFFB   Flags               01 (1) 'Modification'\n+51AFFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51B000 PAYLOAD\n+\n+51B657 DATA DESCRIPTOR       08074B50 (134695760)\n+51B65B CRC                   2526A8CF (623290575)\n+51B65F Compressed Size       00000657 (1623)\n+51B663 Uncompressed Size     00000657 (1623)\n+\n+51B667 LOCAL HEADER #1451    04034B50 (67324752)\n+51B66B Extract Zip Spec      14 (20) '2.0'\n+51B66C Extract OS            00 (0) 'MS-DOS'\n+51B66D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51B66F Compression Method    0000 (0) 'Stored'\n+51B671 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51B675 CRC                   00000000 (0)\n+51B679 Compressed Size       00000000 (0)\n+51B67D Uncompressed Size     00000000 (0)\n+51B681 Filename Length       0031 (49)\n+51B683 Extra Length          0009 (9)\n+51B685 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51B685: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51B6B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51B6B8   Length              0005 (5)\n+51B6BA   Flags               01 (1) 'Modification'\n+51B6BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51B6BF PAYLOAD\n+\n+51BA9B DATA DESCRIPTOR       08074B50 (134695760)\n+51BA9F CRC                   CD8B51D1 (3448459729)\n+51BAA3 Compressed Size       000003DC (988)\n+51BAA7 Uncompressed Size     000003DC (988)\n+\n+51BAAB LOCAL HEADER #1452    04034B50 (67324752)\n+51BAAF Extract Zip Spec      14 (20) '2.0'\n+51BAB0 Extract OS            00 (0) 'MS-DOS'\n+51BAB1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51BAB3 Compression Method    0000 (0) 'Stored'\n+51BAB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51BAB9 CRC                   00000000 (0)\n+51BABD Compressed Size       00000000 (0)\n+51BAC1 Uncompressed Size     00000000 (0)\n+51BAC5 Filename Length       002D (45)\n+51BAC7 Extra Length          0009 (9)\n+51BAC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51BAC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51BAF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51BAF8   Length              0005 (5)\n+51BAFA   Flags               01 (1) 'Modification'\n+51BAFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51BAFF PAYLOAD\n+\n+51C1FF DATA DESCRIPTOR       08074B50 (134695760)\n+51C203 CRC                   322BAD20 (841723168)\n+51C207 Compressed Size       00000700 (1792)\n+51C20B Uncompressed Size     00000700 (1792)\n+\n+51C20F LOCAL HEADER #1453    04034B50 (67324752)\n+51C213 Extract Zip Spec      14 (20) '2.0'\n+51C214 Extract OS            00 (0) 'MS-DOS'\n+51C215 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51C217 Compression Method    0000 (0) 'Stored'\n+51C219 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51C21D CRC                   00000000 (0)\n+51C221 Compressed Size       00000000 (0)\n+51C225 Uncompressed Size     00000000 (0)\n+51C229 Filename Length       002E (46)\n+51C22B Extra Length          0009 (9)\n+51C22D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51C22D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51C25B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51C25D   Length              0005 (5)\n+51C25F   Flags               01 (1) 'Modification'\n+51C260   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51C264 PAYLOAD\n+\n+51DC0E DATA DESCRIPTOR       08074B50 (134695760)\n+51DC12 CRC                   9A56CC71 (2589379697)\n+51DC16 Compressed Size       000019AA (6570)\n+51DC1A Uncompressed Size     000019AA (6570)\n+\n+51DC1E LOCAL HEADER #1454    04034B50 (67324752)\n+51DC22 Extract Zip Spec      14 (20) '2.0'\n+51DC23 Extract OS            00 (0) 'MS-DOS'\n+51DC24 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51DC26 Compression Method    0000 (0) 'Stored'\n+51DC28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51DC2C CRC                   00000000 (0)\n+51DC30 Compressed Size       00000000 (0)\n+51DC34 Uncompressed Size     00000000 (0)\n+51DC38 Filename Length       0033 (51)\n+51DC3A Extra Length          0009 (9)\n+51DC3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51DC3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51DC6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51DC71   Length              0005 (5)\n+51DC73   Flags               01 (1) 'Modification'\n+51DC74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51DC78 PAYLOAD\n+\n+51E45E DATA DESCRIPTOR       08074B50 (134695760)\n+51E462 CRC                   BBB4B4AC (3149182124)\n+51E466 Compressed Size       000007E6 (2022)\n+51E46A Uncompressed Size     000007E6 (2022)\n+\n+51E46E LOCAL HEADER #1455    04034B50 (67324752)\n+51E472 Extract Zip Spec      14 (20) '2.0'\n+51E473 Extract OS            00 (0) 'MS-DOS'\n+51E474 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51E476 Compression Method    0000 (0) 'Stored'\n+51E478 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51E47C CRC                   00000000 (0)\n+51E480 Compressed Size       00000000 (0)\n+51E484 Uncompressed Size     00000000 (0)\n+51E488 Filename Length       002F (47)\n+51E48A Extra Length          0009 (9)\n+51E48C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51E48C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51E4BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51E4BD   Length              0005 (5)\n+51E4BF   Flags               01 (1) 'Modification'\n+51E4C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51E4C4 PAYLOAD\n+\n+51E9BE DATA DESCRIPTOR       08074B50 (134695760)\n+51E9C2 CRC                   302E6CD8 (808348888)\n+51E9C6 Compressed Size       000004FA (1274)\n+51E9CA Uncompressed Size     000004FA (1274)\n+\n+51E9CE LOCAL HEADER #1456    04034B50 (67324752)\n+51E9D2 Extract Zip Spec      14 (20) '2.0'\n+51E9D3 Extract OS            00 (0) 'MS-DOS'\n+51E9D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51E9D6 Compression Method    0000 (0) 'Stored'\n+51E9D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51E9DC CRC                   00000000 (0)\n+51E9E0 Compressed Size       00000000 (0)\n+51E9E4 Uncompressed Size     00000000 (0)\n+51E9E8 Filename Length       0031 (49)\n+51E9EA Extra Length          0009 (9)\n+51E9EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51E9EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51EA1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51EA1F   Length              0005 (5)\n+51EA21   Flags               01 (1) 'Modification'\n+51EA22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51EA26 PAYLOAD\n+\n+51EE0A DATA DESCRIPTOR       08074B50 (134695760)\n+51EE0E CRC                   6ADC9301 (1792840449)\n+51EE12 Compressed Size       000003E4 (996)\n+51EE16 Uncompressed Size     000003E4 (996)\n+\n+51EE1A LOCAL HEADER #1457    04034B50 (67324752)\n+51EE1E Extract Zip Spec      14 (20) '2.0'\n+51EE1F Extract OS            00 (0) 'MS-DOS'\n+51EE20 General Purpose Flag  0000 (0)\n+51EE22 Compression Method    0000 (0) 'Stored'\n+51EE24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51EE28 CRC                   00000000 (0)\n+51EE2C Compressed Size       00000000 (0)\n+51EE30 Uncompressed Size     00000000 (0)\n+51EE34 Filename Length       0025 (37)\n+51EE36 Extra Length          0009 (9)\n+51EE38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51EE38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51EE5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51EE5F   Length              0005 (5)\n+51EE61   Flags               01 (1) 'Modification'\n+51EE62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+51EE66 LOCAL HEADER #1458    04034B50 (67324752)\n+51EE6A Extract Zip Spec      14 (20) '2.0'\n+51EE6B Extract OS            00 (0) 'MS-DOS'\n+51EE6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51EE6E Compression Method    0000 (0) 'Stored'\n+51EE70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51EE74 CRC                   00000000 (0)\n+51EE78 Compressed Size       00000000 (0)\n+51EE7C Uncompressed Size     00000000 (0)\n+51EE80 Filename Length       0041 (65)\n+51EE82 Extra Length          0009 (9)\n+51EE84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51EE84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51EEC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51EEC7   Length              0005 (5)\n+51EEC9   Flags               01 (1) 'Modification'\n+51EECA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51EECE PAYLOAD\n+\n+51F358 DATA DESCRIPTOR       08074B50 (134695760)\n+51F35C CRC                   F69577E7 (4136990695)\n+51F360 Compressed Size       0000048A (1162)\n+51F364 Uncompressed Size     0000048A (1162)\n+\n+51F368 LOCAL HEADER #1459    04034B50 (67324752)\n+51F36C Extract Zip Spec      14 (20) '2.0'\n+51F36D Extract OS            00 (0) 'MS-DOS'\n+51F36E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+51F370 Compression Method    0000 (0) 'Stored'\n+51F372 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+51F376 CRC                   00000000 (0)\n+51F37A Compressed Size       00000000 (0)\n+51F37E Uncompressed Size     00000000 (0)\n+51F382 Filename Length       0035 (53)\n+51F384 Extra Length          0009 (9)\n+51F386 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x51F386: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+51F3BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+51F3BD   Length              0005 (5)\n+51F3BF   Flags               01 (1) 'Modification'\n+51F3C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+51F3C4 PAYLOAD\n+\n+5236A5 DATA DESCRIPTOR       08074B50 (134695760)\n+5236A9 CRC                   93092688 (2466850440)\n+5236AD Compressed Size       000042E1 (17121)\n+5236B1 Uncompressed Size     000042E1 (17121)\n+\n+5236B5 LOCAL HEADER #1460    04034B50 (67324752)\n+5236B9 Extract Zip Spec      14 (20) '2.0'\n+5236BA Extract OS            00 (0) 'MS-DOS'\n+5236BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5236BD Compression Method    0000 (0) 'Stored'\n+5236BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5236C3 CRC                   00000000 (0)\n+5236C7 Compressed Size       00000000 (0)\n+5236CB Uncompressed Size     00000000 (0)\n+5236CF Filename Length       003C (60)\n+5236D1 Extra Length          0009 (9)\n+5236D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5236D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52370F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+523711   Length              0005 (5)\n+523713   Flags               01 (1) 'Modification'\n+523714   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+523718 PAYLOAD\n+\n+52A8D0 DATA DESCRIPTOR       08074B50 (134695760)\n+52A8D4 CRC                   29CC663D (701261373)\n+52A8D8 Compressed Size       000071B8 (29112)\n+52A8DC Uncompressed Size     000071B8 (29112)\n+\n+52A8E0 LOCAL HEADER #1461    04034B50 (67324752)\n+52A8E4 Extract Zip Spec      14 (20) '2.0'\n+52A8E5 Extract OS            00 (0) 'MS-DOS'\n+52A8E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52A8E8 Compression Method    0000 (0) 'Stored'\n+52A8EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52A8EE CRC                   00000000 (0)\n+52A8F2 Compressed Size       00000000 (0)\n+52A8F6 Uncompressed Size     00000000 (0)\n+52A8FA Filename Length       003A (58)\n+52A8FC Extra Length          0009 (9)\n+52A8FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52A8FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52A938 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52A93A   Length              0005 (5)\n+52A93C   Flags               01 (1) 'Modification'\n+52A93D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52A941 PAYLOAD\n+\n+52ADDF DATA DESCRIPTOR       08074B50 (134695760)\n+52ADE3 CRC                   11BF3CA1 (297745569)\n+52ADE7 Compressed Size       0000049E (1182)\n+52ADEB Uncompressed Size     0000049E (1182)\n+\n+52ADEF LOCAL HEADER #1462    04034B50 (67324752)\n+52ADF3 Extract Zip Spec      14 (20) '2.0'\n+52ADF4 Extract OS            00 (0) 'MS-DOS'\n+52ADF5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52ADF7 Compression Method    0000 (0) 'Stored'\n+52ADF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52ADFD CRC                   00000000 (0)\n+52AE01 Compressed Size       00000000 (0)\n+52AE05 Uncompressed Size     00000000 (0)\n+52AE09 Filename Length       0034 (52)\n+52AE0B Extra Length          0009 (9)\n+52AE0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52AE0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52AE41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52AE43   Length              0005 (5)\n+52AE45   Flags               01 (1) 'Modification'\n+52AE46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52AE4A PAYLOAD\n+\n+52BC16 DATA DESCRIPTOR       08074B50 (134695760)\n+52BC1A CRC                   8B7AC527 (2340078887)\n+52BC1E Compressed Size       00000DCC (3532)\n+52BC22 Uncompressed Size     00000DCC (3532)\n+\n+52BC26 LOCAL HEADER #1463    04034B50 (67324752)\n+52BC2A Extract Zip Spec      14 (20) '2.0'\n+52BC2B Extract OS            00 (0) 'MS-DOS'\n+52BC2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52BC2E Compression Method    0000 (0) 'Stored'\n+52BC30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52BC34 CRC                   00000000 (0)\n+52BC38 Compressed Size       00000000 (0)\n+52BC3C Uncompressed Size     00000000 (0)\n+52BC40 Filename Length       0035 (53)\n+52BC42 Extra Length          0009 (9)\n+52BC44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52BC44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52BC79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52BC7B   Length              0005 (5)\n+52BC7D   Flags               01 (1) 'Modification'\n+52BC7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52BC82 PAYLOAD\n+\n+52C1EC DATA DESCRIPTOR       08074B50 (134695760)\n+52C1F0 CRC                   117709A7 (293013927)\n+52C1F4 Compressed Size       0000056A (1386)\n+52C1F8 Uncompressed Size     0000056A (1386)\n+\n+52C1FC LOCAL HEADER #1464    04034B50 (67324752)\n+52C200 Extract Zip Spec      14 (20) '2.0'\n+52C201 Extract OS            00 (0) 'MS-DOS'\n+52C202 General Purpose Flag  0000 (0)\n+52C204 Compression Method    0000 (0) 'Stored'\n+52C206 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52C20A CRC                   00000000 (0)\n+52C20E Compressed Size       00000000 (0)\n+52C212 Uncompressed Size     00000000 (0)\n+52C216 Filename Length       0026 (38)\n+52C218 Extra Length          0009 (9)\n+52C21A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52C21A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52C240 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52C242   Length              0005 (5)\n+52C244   Flags               01 (1) 'Modification'\n+52C245   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+52C249 LOCAL HEADER #1465    04034B50 (67324752)\n+52C24D Extract Zip Spec      14 (20) '2.0'\n+52C24E Extract OS            00 (0) 'MS-DOS'\n+52C24F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52C251 Compression Method    0000 (0) 'Stored'\n+52C253 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52C257 CRC                   00000000 (0)\n+52C25B Compressed Size       00000000 (0)\n+52C25F Uncompressed Size     00000000 (0)\n+52C263 Filename Length       0035 (53)\n+52C265 Extra Length          0009 (9)\n+52C267 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52C267: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52C29C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52C29E   Length              0005 (5)\n+52C2A0   Flags               01 (1) 'Modification'\n+52C2A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52C2A5 PAYLOAD\n+\n+52CE5E DATA DESCRIPTOR       08074B50 (134695760)\n+52CE62 CRC                   A1B16DDC (2712759772)\n+52CE66 Compressed Size       00000BB9 (3001)\n+52CE6A Uncompressed Size     00000BB9 (3001)\n+\n+52CE6E LOCAL HEADER #1466    04034B50 (67324752)\n+52CE72 Extract Zip Spec      14 (20) '2.0'\n+52CE73 Extract OS            00 (0) 'MS-DOS'\n+52CE74 General Purpose Flag  0000 (0)\n+52CE76 Compression Method    0000 (0) 'Stored'\n+52CE78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52CE7C CRC                   00000000 (0)\n+52CE80 Compressed Size       00000000 (0)\n+52CE84 Uncompressed Size     00000000 (0)\n+52CE88 Filename Length       0027 (39)\n+52CE8A Extra Length          0009 (9)\n+52CE8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52CE8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52CEB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52CEB5   Length              0005 (5)\n+52CEB7   Flags               01 (1) 'Modification'\n+52CEB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+52CEBC LOCAL HEADER #1467    04034B50 (67324752)\n+52CEC0 Extract Zip Spec      14 (20) '2.0'\n+52CEC1 Extract OS            00 (0) 'MS-DOS'\n+52CEC2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52CEC4 Compression Method    0000 (0) 'Stored'\n+52CEC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52CECA CRC                   00000000 (0)\n+52CECE Compressed Size       00000000 (0)\n+52CED2 Uncompressed Size     00000000 (0)\n+52CED6 Filename Length       003E (62)\n+52CED8 Extra Length          0009 (9)\n+52CEDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52CEDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52CF18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52CF1A   Length              0005 (5)\n+52CF1C   Flags               01 (1) 'Modification'\n+52CF1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52CF21 PAYLOAD\n+\n+52EC35 DATA DESCRIPTOR       08074B50 (134695760)\n+52EC39 CRC                   43B8CAA4 (1136183972)\n+52EC3D Compressed Size       00001D14 (7444)\n+52EC41 Uncompressed Size     00001D14 (7444)\n+\n+52EC45 LOCAL HEADER #1468    04034B50 (67324752)\n+52EC49 Extract Zip Spec      14 (20) '2.0'\n+52EC4A Extract OS            00 (0) 'MS-DOS'\n+52EC4B General Purpose Flag  0000 (0)\n+52EC4D Compression Method    0000 (0) 'Stored'\n+52EC4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52EC53 CRC                   00000000 (0)\n+52EC57 Compressed Size       00000000 (0)\n+52EC5B Uncompressed Size     00000000 (0)\n+52EC5F Filename Length       0023 (35)\n+52EC61 Extra Length          0009 (9)\n+52EC63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52EC63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52EC86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52EC88   Length              0005 (5)\n+52EC8A   Flags               01 (1) 'Modification'\n+52EC8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+52EC8F LOCAL HEADER #1469    04034B50 (67324752)\n+52EC93 Extract Zip Spec      14 (20) '2.0'\n+52EC94 Extract OS            00 (0) 'MS-DOS'\n+52EC95 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52EC97 Compression Method    0000 (0) 'Stored'\n+52EC99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52EC9D CRC                   00000000 (0)\n+52ECA1 Compressed Size       00000000 (0)\n+52ECA5 Uncompressed Size     00000000 (0)\n+52ECA9 Filename Length       0037 (55)\n+52ECAB Extra Length          0009 (9)\n+52ECAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52ECAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52ECE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52ECE6   Length              0005 (5)\n+52ECE8   Flags               01 (1) 'Modification'\n+52ECE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52ECED PAYLOAD\n+\n+52F691 DATA DESCRIPTOR       08074B50 (134695760)\n+52F695 CRC                   D599DEAA (3583631018)\n+52F699 Compressed Size       000009A4 (2468)\n+52F69D Uncompressed Size     000009A4 (2468)\n+\n+52F6A1 LOCAL HEADER #1470    04034B50 (67324752)\n+52F6A5 Extract Zip Spec      14 (20) '2.0'\n+52F6A6 Extract OS            00 (0) 'MS-DOS'\n+52F6A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52F6A9 Compression Method    0000 (0) 'Stored'\n+52F6AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52F6AF CRC                   00000000 (0)\n+52F6B3 Compressed Size       00000000 (0)\n+52F6B7 Uncompressed Size     00000000 (0)\n+52F6BB Filename Length       0036 (54)\n+52F6BD Extra Length          0009 (9)\n+52F6BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52F6BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52F6F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52F6F7   Length              0005 (5)\n+52F6F9   Flags               01 (1) 'Modification'\n+52F6FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52F6FE PAYLOAD\n+\n+52FB18 DATA DESCRIPTOR       08074B50 (134695760)\n+52FB1C CRC                   E165CDFB (3781545467)\n+52FB20 Compressed Size       0000041A (1050)\n+52FB24 Uncompressed Size     0000041A (1050)\n+\n+52FB28 LOCAL HEADER #1471    04034B50 (67324752)\n+52FB2C Extract Zip Spec      14 (20) '2.0'\n+52FB2D Extract OS            00 (0) 'MS-DOS'\n+52FB2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+52FB30 Compression Method    0000 (0) 'Stored'\n+52FB32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+52FB36 CRC                   00000000 (0)\n+52FB3A Compressed Size       00000000 (0)\n+52FB3E Uncompressed Size     00000000 (0)\n+52FB42 Filename Length       0037 (55)\n+52FB44 Extra Length          0009 (9)\n+52FB46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x52FB46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+52FB7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+52FB7F   Length              0005 (5)\n+52FB81   Flags               01 (1) 'Modification'\n+52FB82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+52FB86 PAYLOAD\n+\n+53013F DATA DESCRIPTOR       08074B50 (134695760)\n+530143 CRC                   72699C54 (1919523924)\n+530147 Compressed Size       000005B9 (1465)\n+53014B Uncompressed Size     000005B9 (1465)\n+\n+53014F LOCAL HEADER #1472    04034B50 (67324752)\n+530153 Extract Zip Spec      14 (20) '2.0'\n+530154 Extract OS            00 (0) 'MS-DOS'\n+530155 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+530157 Compression Method    0000 (0) 'Stored'\n+530159 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53015D CRC                   00000000 (0)\n+530161 Compressed Size       00000000 (0)\n+530165 Uncompressed Size     00000000 (0)\n+530169 Filename Length       0036 (54)\n+53016B Extra Length          0009 (9)\n+53016D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53016D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5301A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5301A5   Length              0005 (5)\n+5301A7   Flags               01 (1) 'Modification'\n+5301A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5301AC PAYLOAD\n+\n+530734 DATA DESCRIPTOR       08074B50 (134695760)\n+530738 CRC                   330FACB0 (856665264)\n+53073C Compressed Size       00000588 (1416)\n+530740 Uncompressed Size     00000588 (1416)\n+\n+530744 LOCAL HEADER #1473    04034B50 (67324752)\n+530748 Extract Zip Spec      14 (20) '2.0'\n+530749 Extract OS            00 (0) 'MS-DOS'\n+53074A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53074C Compression Method    0000 (0) 'Stored'\n+53074E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+530752 CRC                   00000000 (0)\n+530756 Compressed Size       00000000 (0)\n+53075A Uncompressed Size     00000000 (0)\n+53075E Filename Length       0031 (49)\n+530760 Extra Length          0009 (9)\n+530762 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x530762: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+530793 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+530795   Length              0005 (5)\n+530797   Flags               01 (1) 'Modification'\n+530798   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53079C PAYLOAD\n+\n+530F4E DATA DESCRIPTOR       08074B50 (134695760)\n+530F52 CRC                   D85DA328 (3630015272)\n+530F56 Compressed Size       000007B2 (1970)\n+530F5A Uncompressed Size     000007B2 (1970)\n+\n+530F5E LOCAL HEADER #1474    04034B50 (67324752)\n+530F62 Extract Zip Spec      14 (20) '2.0'\n+530F63 Extract OS            00 (0) 'MS-DOS'\n+530F64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+530F66 Compression Method    0000 (0) 'Stored'\n+530F68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+530F6C CRC                   00000000 (0)\n+530F70 Compressed Size       00000000 (0)\n+530F74 Uncompressed Size     00000000 (0)\n+530F78 Filename Length       0032 (50)\n+530F7A Extra Length          0009 (9)\n+530F7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x530F7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+530FAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+530FB0   Length              0005 (5)\n+530FB2   Flags               01 (1) 'Modification'\n+530FB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+530FB7 PAYLOAD\n+\n+532314 DATA DESCRIPTOR       08074B50 (134695760)\n+532318 CRC                   B04E2D51 (2957913425)\n+53231C Compressed Size       0000135D (4957)\n+532320 Uncompressed Size     0000135D (4957)\n+\n+532324 LOCAL HEADER #1475    04034B50 (67324752)\n+532328 Extract Zip Spec      14 (20) '2.0'\n+532329 Extract OS            00 (0) 'MS-DOS'\n+53232A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53232C Compression Method    0000 (0) 'Stored'\n+53232E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+532332 CRC                   00000000 (0)\n+532336 Compressed Size       00000000 (0)\n+53233A Uncompressed Size     00000000 (0)\n+53233E Filename Length       002F (47)\n+532340 Extra Length          0009 (9)\n+532342 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x532342: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+532371 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+532373   Length              0005 (5)\n+532375   Flags               01 (1) 'Modification'\n+532376   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53237A PAYLOAD\n+\n+533266 DATA DESCRIPTOR       08074B50 (134695760)\n+53326A CRC                   D366AAB0 (3546720944)\n+53326E Compressed Size       00000EEC (3820)\n+533272 Uncompressed Size     00000EEC (3820)\n+\n+533276 LOCAL HEADER #1476    04034B50 (67324752)\n+53327A Extract Zip Spec      14 (20) '2.0'\n+53327B Extract OS            00 (0) 'MS-DOS'\n+53327C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53327E Compression Method    0000 (0) 'Stored'\n+533280 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+533284 CRC                   00000000 (0)\n+533288 Compressed Size       00000000 (0)\n+53328C Uncompressed Size     00000000 (0)\n+533290 Filename Length       0030 (48)\n+533292 Extra Length          0009 (9)\n+533294 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x533294: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5332C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5332C6   Length              0005 (5)\n+5332C8   Flags               01 (1) 'Modification'\n+5332C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5332CD PAYLOAD\n+\n+534291 DATA DESCRIPTOR       08074B50 (134695760)\n+534295 CRC                   FF46E79C (4282836892)\n+534299 Compressed Size       00000FC4 (4036)\n+53429D Uncompressed Size     00000FC4 (4036)\n+\n+5342A1 LOCAL HEADER #1477    04034B50 (67324752)\n+5342A5 Extract Zip Spec      14 (20) '2.0'\n+5342A6 Extract OS            00 (0) 'MS-DOS'\n+5342A7 General Purpose Flag  0000 (0)\n+5342A9 Compression Method    0000 (0) 'Stored'\n+5342AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5342AF CRC                   00000000 (0)\n+5342B3 Compressed Size       00000000 (0)\n+5342B7 Uncompressed Size     00000000 (0)\n+5342BB Filename Length       0029 (41)\n+5342BD Extra Length          0009 (9)\n+5342BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5342BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5342E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5342EA   Length              0005 (5)\n+5342EC   Flags               01 (1) 'Modification'\n+5342ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5342F1 LOCAL HEADER #1478    04034B50 (67324752)\n+5342F5 Extract Zip Spec      14 (20) '2.0'\n+5342F6 Extract OS            00 (0) 'MS-DOS'\n+5342F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5342F9 Compression Method    0000 (0) 'Stored'\n+5342FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5342FF CRC                   00000000 (0)\n+534303 Compressed Size       00000000 (0)\n+534307 Uncompressed Size     00000000 (0)\n+53430B Filename Length       003B (59)\n+53430D Extra Length          0009 (9)\n+53430F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53430F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53434A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53434C   Length              0005 (5)\n+53434E   Flags               01 (1) 'Modification'\n+53434F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+534353 PAYLOAD\n+\n+539442 DATA DESCRIPTOR       08074B50 (134695760)\n+539446 CRC                   6E137A75 (1846770293)\n+53944A Compressed Size       000050EF (20719)\n+53944E Uncompressed Size     000050EF (20719)\n+\n+539452 LOCAL HEADER #1479    04034B50 (67324752)\n+539456 Extract Zip Spec      14 (20) '2.0'\n+539457 Extract OS            00 (0) 'MS-DOS'\n+539458 General Purpose Flag  0000 (0)\n+53945A Compression Method    0000 (0) 'Stored'\n+53945C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+539460 CRC                   00000000 (0)\n+539464 Compressed Size       00000000 (0)\n+539468 Uncompressed Size     00000000 (0)\n+53946C Filename Length       002B (43)\n+53946E Extra Length          0009 (9)\n+539470 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x539470: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53949B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53949D   Length              0005 (5)\n+53949F   Flags               01 (1) 'Modification'\n+5394A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5394A4 LOCAL HEADER #1480    04034B50 (67324752)\n+5394A8 Extract Zip Spec      14 (20) '2.0'\n+5394A9 Extract OS            00 (0) 'MS-DOS'\n+5394AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5394AC Compression Method    0000 (0) 'Stored'\n+5394AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5394B2 CRC                   00000000 (0)\n+5394B6 Compressed Size       00000000 (0)\n+5394BA Uncompressed Size     00000000 (0)\n+5394BE Filename Length       003D (61)\n+5394C0 Extra Length          0009 (9)\n+5394C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5394C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5394FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+539501   Length              0005 (5)\n+539503   Flags               01 (1) 'Modification'\n+539504   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+539508 PAYLOAD\n+\n+53C320 DATA DESCRIPTOR       08074B50 (134695760)\n+53C324 CRC                   38A27EA4 (950173348)\n+53C328 Compressed Size       00002E18 (11800)\n+53C32C Uncompressed Size     00002E18 (11800)\n+\n+53C330 LOCAL HEADER #1481    04034B50 (67324752)\n+53C334 Extract Zip Spec      14 (20) '2.0'\n+53C335 Extract OS            00 (0) 'MS-DOS'\n+53C336 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53C338 Compression Method    0000 (0) 'Stored'\n+53C33A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53C33E CRC                   00000000 (0)\n+53C342 Compressed Size       00000000 (0)\n+53C346 Uncompressed Size     00000000 (0)\n+53C34A Filename Length       0046 (70)\n+53C34C Extra Length          0009 (9)\n+53C34E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53C34E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53C394 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53C396   Length              0005 (5)\n+53C398   Flags               01 (1) 'Modification'\n+53C399   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53C39D PAYLOAD\n+\n+53C958 DATA DESCRIPTOR       08074B50 (134695760)\n+53C95C CRC                   8AF6C6B7 (2331428535)\n+53C960 Compressed Size       000005BB (1467)\n+53C964 Uncompressed Size     000005BB (1467)\n+\n+53C968 LOCAL HEADER #1482    04034B50 (67324752)\n+53C96C Extract Zip Spec      14 (20) '2.0'\n+53C96D Extract OS            00 (0) 'MS-DOS'\n+53C96E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53C970 Compression Method    0000 (0) 'Stored'\n+53C972 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53C976 CRC                   00000000 (0)\n+53C97A Compressed Size       00000000 (0)\n+53C97E Uncompressed Size     00000000 (0)\n+53C982 Filename Length       0049 (73)\n+53C984 Extra Length          0009 (9)\n+53C986 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53C986: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53C9CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53C9D1   Length              0005 (5)\n+53C9D3   Flags               01 (1) 'Modification'\n+53C9D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53C9D8 PAYLOAD\n+\n+53DB3D DATA DESCRIPTOR       08074B50 (134695760)\n+53DB41 CRC                   2C68D340 (745067328)\n+53DB45 Compressed Size       00001165 (4453)\n+53DB49 Uncompressed Size     00001165 (4453)\n+\n+53DB4D LOCAL HEADER #1483    04034B50 (67324752)\n+53DB51 Extract Zip Spec      14 (20) '2.0'\n+53DB52 Extract OS            00 (0) 'MS-DOS'\n+53DB53 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53DB55 Compression Method    0000 (0) 'Stored'\n+53DB57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53DB5B CRC                   00000000 (0)\n+53DB5F Compressed Size       00000000 (0)\n+53DB63 Uncompressed Size     00000000 (0)\n+53DB67 Filename Length       0046 (70)\n+53DB69 Extra Length          0009 (9)\n+53DB6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53DB6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53DBB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53DBB3   Length              0005 (5)\n+53DBB5   Flags               01 (1) 'Modification'\n+53DBB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53DBBA PAYLOAD\n+\n+53E98F DATA DESCRIPTOR       08074B50 (134695760)\n+53E993 CRC                   C14E1F5D (3243122525)\n+53E997 Compressed Size       00000DD5 (3541)\n+53E99B Uncompressed Size     00000DD5 (3541)\n+\n+53E99F LOCAL HEADER #1484    04034B50 (67324752)\n+53E9A3 Extract Zip Spec      14 (20) '2.0'\n+53E9A4 Extract OS            00 (0) 'MS-DOS'\n+53E9A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53E9A7 Compression Method    0000 (0) 'Stored'\n+53E9A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53E9AD CRC                   00000000 (0)\n+53E9B1 Compressed Size       00000000 (0)\n+53E9B5 Uncompressed Size     00000000 (0)\n+53E9B9 Filename Length       003C (60)\n+53E9BB Extra Length          0009 (9)\n+53E9BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53E9BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53E9F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53E9FB   Length              0005 (5)\n+53E9FD   Flags               01 (1) 'Modification'\n+53E9FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53EA02 PAYLOAD\n+\n+53F3B8 DATA DESCRIPTOR       08074B50 (134695760)\n+53F3BC CRC                   0593378C (93534092)\n+53F3C0 Compressed Size       000009B6 (2486)\n+53F3C4 Uncompressed Size     000009B6 (2486)\n+\n+53F3C8 LOCAL HEADER #1485    04034B50 (67324752)\n+53F3CC Extract Zip Spec      14 (20) '2.0'\n+53F3CD Extract OS            00 (0) 'MS-DOS'\n+53F3CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53F3D0 Compression Method    0000 (0) 'Stored'\n+53F3D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53F3D6 CRC                   00000000 (0)\n+53F3DA Compressed Size       00000000 (0)\n+53F3DE Uncompressed Size     00000000 (0)\n+53F3E2 Filename Length       0037 (55)\n+53F3E4 Extra Length          0009 (9)\n+53F3E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53F3E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53F41D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53F41F   Length              0005 (5)\n+53F421   Flags               01 (1) 'Modification'\n+53F422   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53F426 PAYLOAD\n+\n+53F93C DATA DESCRIPTOR       08074B50 (134695760)\n+53F940 CRC                   B40DC99A (3020802458)\n+53F944 Compressed Size       00000516 (1302)\n+53F948 Uncompressed Size     00000516 (1302)\n+\n+53F94C LOCAL HEADER #1486    04034B50 (67324752)\n+53F950 Extract Zip Spec      14 (20) '2.0'\n+53F951 Extract OS            00 (0) 'MS-DOS'\n+53F952 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+53F954 Compression Method    0000 (0) 'Stored'\n+53F956 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+53F95A CRC                   00000000 (0)\n+53F95E Compressed Size       00000000 (0)\n+53F962 Uncompressed Size     00000000 (0)\n+53F966 Filename Length       0041 (65)\n+53F968 Extra Length          0009 (9)\n+53F96A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x53F96A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+53F9AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+53F9AD   Length              0005 (5)\n+53F9AF   Flags               01 (1) 'Modification'\n+53F9B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+53F9B4 PAYLOAD\n+\n+54045E DATA DESCRIPTOR       08074B50 (134695760)\n+540462 CRC                   27689F2C (661167916)\n+540466 Compressed Size       00000AAA (2730)\n+54046A Uncompressed Size     00000AAA (2730)\n+\n+54046E LOCAL HEADER #1487    04034B50 (67324752)\n+540472 Extract Zip Spec      14 (20) '2.0'\n+540473 Extract OS            00 (0) 'MS-DOS'\n+540474 General Purpose Flag  0000 (0)\n+540476 Compression Method    0000 (0) 'Stored'\n+540478 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54047C CRC                   00000000 (0)\n+540480 Compressed Size       00000000 (0)\n+540484 Uncompressed Size     00000000 (0)\n+540488 Filename Length       0032 (50)\n+54048A Extra Length          0009 (9)\n+54048C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54048C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5404BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5404C0   Length              0005 (5)\n+5404C2   Flags               01 (1) 'Modification'\n+5404C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5404C7 LOCAL HEADER #1488    04034B50 (67324752)\n+5404CB Extract Zip Spec      14 (20) '2.0'\n+5404CC Extract OS            00 (0) 'MS-DOS'\n+5404CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5404CF Compression Method    0000 (0) 'Stored'\n+5404D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5404D5 CRC                   00000000 (0)\n+5404D9 Compressed Size       00000000 (0)\n+5404DD Uncompressed Size     00000000 (0)\n+5404E1 Filename Length       0048 (72)\n+5404E3 Extra Length          0009 (9)\n+5404E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5404E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54052D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54052F   Length              0005 (5)\n+540531   Flags               01 (1) 'Modification'\n+540532   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+540536 PAYLOAD\n+\n+5410D5 DATA DESCRIPTOR       08074B50 (134695760)\n+5410D9 CRC                   E73F3737 (3879679799)\n+5410DD Compressed Size       00000B9F (2975)\n+5410E1 Uncompressed Size     00000B9F (2975)\n+\n+5410E5 LOCAL HEADER #1489    04034B50 (67324752)\n+5410E9 Extract Zip Spec      14 (20) '2.0'\n+5410EA Extract OS            00 (0) 'MS-DOS'\n+5410EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5410ED Compression Method    0000 (0) 'Stored'\n+5410EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5410F3 CRC                   00000000 (0)\n+5410F7 Compressed Size       00000000 (0)\n+5410FB Uncompressed Size     00000000 (0)\n+5410FF Filename Length       0045 (69)\n+541101 Extra Length          0009 (9)\n+541103 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x541103: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+541148 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54114A   Length              0005 (5)\n+54114C   Flags               01 (1) 'Modification'\n+54114D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+541151 PAYLOAD\n+\n+5419E1 DATA DESCRIPTOR       08074B50 (134695760)\n+5419E5 CRC                   BC922CD8 (3163696344)\n+5419E9 Compressed Size       00000890 (2192)\n+5419ED Uncompressed Size     00000890 (2192)\n+\n+5419F1 LOCAL HEADER #1490    04034B50 (67324752)\n+5419F5 Extract Zip Spec      14 (20) '2.0'\n+5419F6 Extract OS            00 (0) 'MS-DOS'\n+5419F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5419F9 Compression Method    0000 (0) 'Stored'\n+5419FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5419FF CRC                   00000000 (0)\n+541A03 Compressed Size       00000000 (0)\n+541A07 Uncompressed Size     00000000 (0)\n+541A0B Filename Length       004C (76)\n+541A0D Extra Length          0009 (9)\n+541A0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x541A0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+541A5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+541A5D   Length              0005 (5)\n+541A5F   Flags               01 (1) 'Modification'\n+541A60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+541A64 PAYLOAD\n+\n+543BDE DATA DESCRIPTOR       08074B50 (134695760)\n+543BE2 CRC                   B13FDACC (2973752012)\n+543BE6 Compressed Size       0000217A (8570)\n+543BEA Uncompressed Size     0000217A (8570)\n+\n+543BEE LOCAL HEADER #1491    04034B50 (67324752)\n+543BF2 Extract Zip Spec      14 (20) '2.0'\n+543BF3 Extract OS            00 (0) 'MS-DOS'\n+543BF4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+543BF6 Compression Method    0000 (0) 'Stored'\n+543BF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+543BFC CRC                   00000000 (0)\n+543C00 Compressed Size       00000000 (0)\n+543C04 Uncompressed Size     00000000 (0)\n+543C08 Filename Length       004B (75)\n+543C0A Extra Length          0009 (9)\n+543C0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x543C0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+543C57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+543C59   Length              0005 (5)\n+543C5B   Flags               01 (1) 'Modification'\n+543C5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+543C60 PAYLOAD\n+\n+545ADB DATA DESCRIPTOR       08074B50 (134695760)\n+545ADF CRC                   2FB42746 (800335686)\n+545AE3 Compressed Size       00001E7B (7803)\n+545AE7 Uncompressed Size     00001E7B (7803)\n+\n+545AEB LOCAL HEADER #1492    04034B50 (67324752)\n+545AEF Extract Zip Spec      14 (20) '2.0'\n+545AF0 Extract OS            00 (0) 'MS-DOS'\n+545AF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+545AF3 Compression Method    0000 (0) 'Stored'\n+545AF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+545AF9 CRC                   00000000 (0)\n+545AFD Compressed Size       00000000 (0)\n+545B01 Uncompressed Size     00000000 (0)\n+545B05 Filename Length       004C (76)\n+545B07 Extra Length          0009 (9)\n+545B09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x545B09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+545B55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+545B57   Length              0005 (5)\n+545B59   Flags               01 (1) 'Modification'\n+545B5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+545B5E PAYLOAD\n+\n+547FDC DATA DESCRIPTOR       08074B50 (134695760)\n+547FE0 CRC                   C01CAB2E (3223104302)\n+547FE4 Compressed Size       0000247E (9342)\n+547FE8 Uncompressed Size     0000247E (9342)\n+\n+547FEC LOCAL HEADER #1493    04034B50 (67324752)\n+547FF0 Extract Zip Spec      14 (20) '2.0'\n+547FF1 Extract OS            00 (0) 'MS-DOS'\n+547FF2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+547FF4 Compression Method    0000 (0) 'Stored'\n+547FF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+547FFA CRC                   00000000 (0)\n+547FFE Compressed Size       00000000 (0)\n+548002 Uncompressed Size     00000000 (0)\n+548006 Filename Length       004B (75)\n+548008 Extra Length          0009 (9)\n+54800A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54800A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+548055 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+548057   Length              0005 (5)\n+548059   Flags               01 (1) 'Modification'\n+54805A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54805E PAYLOAD\n+\n+54A540 DATA DESCRIPTOR       08074B50 (134695760)\n+54A544 CRC                   6C372682 (1815553666)\n+54A548 Compressed Size       000024E2 (9442)\n+54A54C Uncompressed Size     000024E2 (9442)\n+\n+54A550 LOCAL HEADER #1494    04034B50 (67324752)\n+54A554 Extract Zip Spec      14 (20) '2.0'\n+54A555 Extract OS            00 (0) 'MS-DOS'\n+54A556 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54A558 Compression Method    0000 (0) 'Stored'\n+54A55A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54A55E CRC                   00000000 (0)\n+54A562 Compressed Size       00000000 (0)\n+54A566 Uncompressed Size     00000000 (0)\n+54A56A Filename Length       0046 (70)\n+54A56C Extra Length          0009 (9)\n+54A56E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54A56E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54A5B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54A5B6   Length              0005 (5)\n+54A5B8   Flags               01 (1) 'Modification'\n+54A5B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54A5BD PAYLOAD\n+\n+54AD58 DATA DESCRIPTOR       08074B50 (134695760)\n+54AD5C CRC                   7F591FA6 (2136547238)\n+54AD60 Compressed Size       0000079B (1947)\n+54AD64 Uncompressed Size     0000079B (1947)\n+\n+54AD68 LOCAL HEADER #1495    04034B50 (67324752)\n+54AD6C Extract Zip Spec      14 (20) '2.0'\n+54AD6D Extract OS            00 (0) 'MS-DOS'\n+54AD6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54AD70 Compression Method    0000 (0) 'Stored'\n+54AD72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54AD76 CRC                   00000000 (0)\n+54AD7A Compressed Size       00000000 (0)\n+54AD7E Uncompressed Size     00000000 (0)\n+54AD82 Filename Length       0047 (71)\n+54AD84 Extra Length          0009 (9)\n+54AD86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54AD86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54ADCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54ADCF   Length              0005 (5)\n+54ADD1   Flags               01 (1) 'Modification'\n+54ADD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54ADD6 PAYLOAD\n+\n+54BFBC DATA DESCRIPTOR       08074B50 (134695760)\n+54BFC0 CRC                   BBC269CA (3150080458)\n+54BFC4 Compressed Size       000011E6 (4582)\n+54BFC8 Uncompressed Size     000011E6 (4582)\n+\n+54BFCC LOCAL HEADER #1496    04034B50 (67324752)\n+54BFD0 Extract Zip Spec      14 (20) '2.0'\n+54BFD1 Extract OS            00 (0) 'MS-DOS'\n+54BFD2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54BFD4 Compression Method    0000 (0) 'Stored'\n+54BFD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54BFDA CRC                   00000000 (0)\n+54BFDE Compressed Size       00000000 (0)\n+54BFE2 Uncompressed Size     00000000 (0)\n+54BFE6 Filename Length       0049 (73)\n+54BFE8 Extra Length          0009 (9)\n+54BFEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54BFEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54C033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54C035   Length              0005 (5)\n+54C037   Flags               01 (1) 'Modification'\n+54C038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54C03C PAYLOAD\n+\n+54CAAB DATA DESCRIPTOR       08074B50 (134695760)\n+54CAAF CRC                   CCFFACEF (3439308015)\n+54CAB3 Compressed Size       00000A6F (2671)\n+54CAB7 Uncompressed Size     00000A6F (2671)\n+\n+54CABB LOCAL HEADER #1497    04034B50 (67324752)\n+54CABF Extract Zip Spec      14 (20) '2.0'\n+54CAC0 Extract OS            00 (0) 'MS-DOS'\n+54CAC1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54CAC3 Compression Method    0000 (0) 'Stored'\n+54CAC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54CAC9 CRC                   00000000 (0)\n+54CACD Compressed Size       00000000 (0)\n+54CAD1 Uncompressed Size     00000000 (0)\n+54CAD5 Filename Length       0049 (73)\n+54CAD7 Extra Length          0009 (9)\n+54CAD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54CAD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54CB22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54CB24   Length              0005 (5)\n+54CB26   Flags               01 (1) 'Modification'\n+54CB27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54CB2B PAYLOAD\n+\n+54D5FB DATA DESCRIPTOR       08074B50 (134695760)\n+54D5FF CRC                   39DE0130 (970850608)\n+54D603 Compressed Size       00000AD0 (2768)\n+54D607 Uncompressed Size     00000AD0 (2768)\n+\n+54D60B LOCAL HEADER #1498    04034B50 (67324752)\n+54D60F Extract Zip Spec      14 (20) '2.0'\n+54D610 Extract OS            00 (0) 'MS-DOS'\n+54D611 General Purpose Flag  0000 (0)\n+54D613 Compression Method    0000 (0) 'Stored'\n+54D615 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54D619 CRC                   00000000 (0)\n+54D61D Compressed Size       00000000 (0)\n+54D621 Uncompressed Size     00000000 (0)\n+54D625 Filename Length       001F (31)\n+54D627 Extra Length          0009 (9)\n+54D629 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54D629: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54D648 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54D64A   Length              0005 (5)\n+54D64C   Flags               01 (1) 'Modification'\n+54D64D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+54D651 LOCAL HEADER #1499    04034B50 (67324752)\n+54D655 Extract Zip Spec      14 (20) '2.0'\n+54D656 Extract OS            00 (0) 'MS-DOS'\n+54D657 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54D659 Compression Method    0000 (0) 'Stored'\n+54D65B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54D65F CRC                   00000000 (0)\n+54D663 Compressed Size       00000000 (0)\n+54D667 Uncompressed Size     00000000 (0)\n+54D66B Filename Length       002E (46)\n+54D66D Extra Length          0009 (9)\n+54D66F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54D66F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54D69D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54D69F   Length              0005 (5)\n+54D6A1   Flags               01 (1) 'Modification'\n+54D6A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54D6A6 PAYLOAD\n+\n+54DBCD DATA DESCRIPTOR       08074B50 (134695760)\n+54DBD1 CRC                   20838DDF (545492447)\n+54DBD5 Compressed Size       00000527 (1319)\n+54DBD9 Uncompressed Size     00000527 (1319)\n+\n+54DBDD LOCAL HEADER #1500    04034B50 (67324752)\n+54DBE1 Extract Zip Spec      14 (20) '2.0'\n+54DBE2 Extract OS            00 (0) 'MS-DOS'\n+54DBE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54DBE5 Compression Method    0000 (0) 'Stored'\n+54DBE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54DBEB CRC                   00000000 (0)\n+54DBEF Compressed Size       00000000 (0)\n+54DBF3 Uncompressed Size     00000000 (0)\n+54DBF7 Filename Length       002F (47)\n+54DBF9 Extra Length          0009 (9)\n+54DBFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54DBFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54DC2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54DC2C   Length              0005 (5)\n+54DC2E   Flags               01 (1) 'Modification'\n+54DC2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54DC33 PAYLOAD\n+\n+54E19D DATA DESCRIPTOR       08074B50 (134695760)\n+54E1A1 CRC                   736BD280 (1936446080)\n+54E1A5 Compressed Size       0000056A (1386)\n+54E1A9 Uncompressed Size     0000056A (1386)\n+\n+54E1AD LOCAL HEADER #1501    04034B50 (67324752)\n+54E1B1 Extract Zip Spec      14 (20) '2.0'\n+54E1B2 Extract OS            00 (0) 'MS-DOS'\n+54E1B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54E1B5 Compression Method    0000 (0) 'Stored'\n+54E1B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54E1BB CRC                   00000000 (0)\n+54E1BF Compressed Size       00000000 (0)\n+54E1C3 Uncompressed Size     00000000 (0)\n+54E1C7 Filename Length       002E (46)\n+54E1C9 Extra Length          0009 (9)\n+54E1CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54E1CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54E1F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54E1FB   Length              0005 (5)\n+54E1FD   Flags               01 (1) 'Modification'\n+54E1FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54E202 PAYLOAD\n+\n+54E8EB DATA DESCRIPTOR       08074B50 (134695760)\n+54E8EF CRC                   C27E840C (3263071244)\n+54E8F3 Compressed Size       000006E9 (1769)\n+54E8F7 Uncompressed Size     000006E9 (1769)\n+\n+54E8FB LOCAL HEADER #1502    04034B50 (67324752)\n+54E8FF Extract Zip Spec      14 (20) '2.0'\n+54E900 Extract OS            00 (0) 'MS-DOS'\n+54E901 General Purpose Flag  0000 (0)\n+54E903 Compression Method    0000 (0) 'Stored'\n+54E905 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54E909 CRC                   00000000 (0)\n+54E90D Compressed Size       00000000 (0)\n+54E911 Uncompressed Size     00000000 (0)\n+54E915 Filename Length       0025 (37)\n+54E917 Extra Length          0009 (9)\n+54E919 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54E919: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54E93E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54E940   Length              0005 (5)\n+54E942   Flags               01 (1) 'Modification'\n+54E943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+54E947 LOCAL HEADER #1503    04034B50 (67324752)\n+54E94B Extract Zip Spec      14 (20) '2.0'\n+54E94C Extract OS            00 (0) 'MS-DOS'\n+54E94D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54E94F Compression Method    0000 (0) 'Stored'\n+54E951 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54E955 CRC                   00000000 (0)\n+54E959 Compressed Size       00000000 (0)\n+54E95D Uncompressed Size     00000000 (0)\n+54E961 Filename Length       0039 (57)\n+54E963 Extra Length          0009 (9)\n+54E965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54E965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54E99E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54E9A0   Length              0005 (5)\n+54E9A2   Flags               01 (1) 'Modification'\n+54E9A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54E9A7 PAYLOAD\n+\n+54EEB0 DATA DESCRIPTOR       08074B50 (134695760)\n+54EEB4 CRC                   88BB48F4 (2293975284)\n+54EEB8 Compressed Size       00000509 (1289)\n+54EEBC Uncompressed Size     00000509 (1289)\n+\n+54EEC0 LOCAL HEADER #1504    04034B50 (67324752)\n+54EEC4 Extract Zip Spec      14 (20) '2.0'\n+54EEC5 Extract OS            00 (0) 'MS-DOS'\n+54EEC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+54EEC8 Compression Method    0000 (0) 'Stored'\n+54EECA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+54EECE CRC                   00000000 (0)\n+54EED2 Compressed Size       00000000 (0)\n+54EED6 Uncompressed Size     00000000 (0)\n+54EEDA Filename Length       0039 (57)\n+54EEDC Extra Length          0009 (9)\n+54EEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x54EEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+54EF17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+54EF19   Length              0005 (5)\n+54EF1B   Flags               01 (1) 'Modification'\n+54EF1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+54EF20 PAYLOAD\n+\n+5501AE DATA DESCRIPTOR       08074B50 (134695760)\n+5501B2 CRC                   690E10B4 (1762529460)\n+5501B6 Compressed Size       0000128E (4750)\n+5501BA Uncompressed Size     0000128E (4750)\n+\n+5501BE LOCAL HEADER #1505    04034B50 (67324752)\n+5501C2 Extract Zip Spec      14 (20) '2.0'\n+5501C3 Extract OS            00 (0) 'MS-DOS'\n+5501C4 General Purpose Flag  0000 (0)\n+5501C6 Compression Method    0000 (0) 'Stored'\n+5501C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5501CC CRC                   00000000 (0)\n+5501D0 Compressed Size       00000000 (0)\n+5501D4 Uncompressed Size     00000000 (0)\n+5501D8 Filename Length       0027 (39)\n+5501DA Extra Length          0009 (9)\n+5501DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5501DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+550203 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+550205   Length              0005 (5)\n+550207   Flags               01 (1) 'Modification'\n+550208   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+55020C LOCAL HEADER #1506    04034B50 (67324752)\n+550210 Extract Zip Spec      14 (20) '2.0'\n+550211 Extract OS            00 (0) 'MS-DOS'\n+550212 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+550214 Compression Method    0000 (0) 'Stored'\n+550216 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55021A CRC                   00000000 (0)\n+55021E Compressed Size       00000000 (0)\n+550222 Uncompressed Size     00000000 (0)\n+550226 Filename Length       003D (61)\n+550228 Extra Length          0009 (9)\n+55022A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55022A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+550267 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+550269   Length              0005 (5)\n+55026B   Flags               01 (1) 'Modification'\n+55026C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+550270 PAYLOAD\n+\n+550898 DATA DESCRIPTOR       08074B50 (134695760)\n+55089C CRC                   099C0616 (161220118)\n+5508A0 Compressed Size       00000628 (1576)\n+5508A4 Uncompressed Size     00000628 (1576)\n+\n+5508A8 LOCAL HEADER #1507    04034B50 (67324752)\n+5508AC Extract Zip Spec      14 (20) '2.0'\n+5508AD Extract OS            00 (0) 'MS-DOS'\n+5508AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5508B0 Compression Method    0000 (0) 'Stored'\n+5508B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5508B6 CRC                   00000000 (0)\n+5508BA Compressed Size       00000000 (0)\n+5508BE Uncompressed Size     00000000 (0)\n+5508C2 Filename Length       003D (61)\n+5508C4 Extra Length          0009 (9)\n+5508C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5508C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+550903 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+550905   Length              0005 (5)\n+550907   Flags               01 (1) 'Modification'\n+550908   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55090C PAYLOAD\n+\n+551254 DATA DESCRIPTOR       08074B50 (134695760)\n+551258 CRC                   1EBD34EC (515716332)\n+55125C Compressed Size       00000948 (2376)\n+551260 Uncompressed Size     00000948 (2376)\n+\n+551264 LOCAL HEADER #1508    04034B50 (67324752)\n+551268 Extract Zip Spec      14 (20) '2.0'\n+551269 Extract OS            00 (0) 'MS-DOS'\n+55126A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55126C Compression Method    0000 (0) 'Stored'\n+55126E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+551272 CRC                   00000000 (0)\n+551276 Compressed Size       00000000 (0)\n+55127A Uncompressed Size     00000000 (0)\n+55127E Filename Length       003D (61)\n+551280 Extra Length          0009 (9)\n+551282 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x551282: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5512BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5512C1   Length              0005 (5)\n+5512C3   Flags               01 (1) 'Modification'\n+5512C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5512C8 PAYLOAD\n+\n+5517D9 DATA DESCRIPTOR       08074B50 (134695760)\n+5517DD CRC                   129B84CC (312181964)\n+5517E1 Compressed Size       00000511 (1297)\n+5517E5 Uncompressed Size     00000511 (1297)\n+\n+5517E9 LOCAL HEADER #1509    04034B50 (67324752)\n+5517ED Extract Zip Spec      14 (20) '2.0'\n+5517EE Extract OS            00 (0) 'MS-DOS'\n+5517EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5517F1 Compression Method    0000 (0) 'Stored'\n+5517F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5517F7 CRC                   00000000 (0)\n+5517FB Compressed Size       00000000 (0)\n+5517FF Uncompressed Size     00000000 (0)\n+551803 Filename Length       003D (61)\n+551805 Extra Length          0009 (9)\n+551807 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x551807: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+551844 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+551846   Length              0005 (5)\n+551848   Flags               01 (1) 'Modification'\n+551849   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55184D PAYLOAD\n+\n+551D89 DATA DESCRIPTOR       08074B50 (134695760)\n+551D8D CRC                   9F24457D (2669954429)\n+551D91 Compressed Size       0000053C (1340)\n+551D95 Uncompressed Size     0000053C (1340)\n+\n+551D99 LOCAL HEADER #1510    04034B50 (67324752)\n+551D9D Extract Zip Spec      14 (20) '2.0'\n+551D9E Extract OS            00 (0) 'MS-DOS'\n+551D9F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+551DA1 Compression Method    0000 (0) 'Stored'\n+551DA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+551DA7 CRC                   00000000 (0)\n+551DAB Compressed Size       00000000 (0)\n+551DAF Uncompressed Size     00000000 (0)\n+551DB3 Filename Length       003A (58)\n+551DB5 Extra Length          0009 (9)\n+551DB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x551DB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+551DF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+551DF3   Length              0005 (5)\n+551DF5   Flags               01 (1) 'Modification'\n+551DF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+551DFA PAYLOAD\n+\n+5524CC DATA DESCRIPTOR       08074B50 (134695760)\n+5524D0 CRC                   F1DDFBFB (4057857019)\n+5524D4 Compressed Size       000006D2 (1746)\n+5524D8 Uncompressed Size     000006D2 (1746)\n+\n+5524DC LOCAL HEADER #1511    04034B50 (67324752)\n+5524E0 Extract Zip Spec      14 (20) '2.0'\n+5524E1 Extract OS            00 (0) 'MS-DOS'\n+5524E2 General Purpose Flag  0000 (0)\n+5524E4 Compression Method    0000 (0) 'Stored'\n+5524E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5524EA CRC                   00000000 (0)\n+5524EE Compressed Size       00000000 (0)\n+5524F2 Uncompressed Size     00000000 (0)\n+5524F6 Filename Length       0027 (39)\n+5524F8 Extra Length          0009 (9)\n+5524FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5524FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+552521 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+552523   Length              0005 (5)\n+552525   Flags               01 (1) 'Modification'\n+552526   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+55252A LOCAL HEADER #1512    04034B50 (67324752)\n+55252E Extract Zip Spec      14 (20) '2.0'\n+55252F Extract OS            00 (0) 'MS-DOS'\n+552530 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+552532 Compression Method    0000 (0) 'Stored'\n+552534 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+552538 CRC                   00000000 (0)\n+55253C Compressed Size       00000000 (0)\n+552540 Uncompressed Size     00000000 (0)\n+552544 Filename Length       003E (62)\n+552546 Extra Length          0009 (9)\n+552548 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x552548: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+552586 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+552588   Length              0005 (5)\n+55258A   Flags               01 (1) 'Modification'\n+55258B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55258F PAYLOAD\n+\n+553272 DATA DESCRIPTOR       08074B50 (134695760)\n+553276 CRC                   AD23A7BE (2904795070)\n+55327A Compressed Size       00000CE3 (3299)\n+55327E Uncompressed Size     00000CE3 (3299)\n+\n+553282 LOCAL HEADER #1513    04034B50 (67324752)\n+553286 Extract Zip Spec      14 (20) '2.0'\n+553287 Extract OS            00 (0) 'MS-DOS'\n+553288 General Purpose Flag  0000 (0)\n+55328A Compression Method    0000 (0) 'Stored'\n+55328C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+553290 CRC                   00000000 (0)\n+553294 Compressed Size       00000000 (0)\n+553298 Uncompressed Size     00000000 (0)\n+55329C Filename Length       0026 (38)\n+55329E Extra Length          0009 (9)\n+5532A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5532A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5532C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5532C8   Length              0005 (5)\n+5532CA   Flags               01 (1) 'Modification'\n+5532CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5532CF LOCAL HEADER #1514    04034B50 (67324752)\n+5532D3 Extract Zip Spec      14 (20) '2.0'\n+5532D4 Extract OS            00 (0) 'MS-DOS'\n+5532D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5532D7 Compression Method    0000 (0) 'Stored'\n+5532D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5532DD CRC                   00000000 (0)\n+5532E1 Compressed Size       00000000 (0)\n+5532E5 Uncompressed Size     00000000 (0)\n+5532E9 Filename Length       003B (59)\n+5532EB Extra Length          0009 (9)\n+5532ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5532ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+553328 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55332A   Length              0005 (5)\n+55332C   Flags               01 (1) 'Modification'\n+55332D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+553331 PAYLOAD\n+\n+55381A DATA DESCRIPTOR       08074B50 (134695760)\n+55381E CRC                   2A48966F (709400175)\n+553822 Compressed Size       000004E9 (1257)\n+553826 Uncompressed Size     000004E9 (1257)\n+\n+55382A LOCAL HEADER #1515    04034B50 (67324752)\n+55382E Extract Zip Spec      14 (20) '2.0'\n+55382F Extract OS            00 (0) 'MS-DOS'\n+553830 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+553832 Compression Method    0000 (0) 'Stored'\n+553834 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+553838 CRC                   00000000 (0)\n+55383C Compressed Size       00000000 (0)\n+553840 Uncompressed Size     00000000 (0)\n+553844 Filename Length       003B (59)\n+553846 Extra Length          0009 (9)\n+553848 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x553848: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+553883 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+553885   Length              0005 (5)\n+553887   Flags               01 (1) 'Modification'\n+553888   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55388C PAYLOAD\n+\n+5547E4 DATA DESCRIPTOR       08074B50 (134695760)\n+5547E8 CRC                   150E80EA (353272042)\n+5547EC Compressed Size       00000F58 (3928)\n+5547F0 Uncompressed Size     00000F58 (3928)\n+\n+5547F4 LOCAL HEADER #1516    04034B50 (67324752)\n+5547F8 Extract Zip Spec      14 (20) '2.0'\n+5547F9 Extract OS            00 (0) 'MS-DOS'\n+5547FA General Purpose Flag  0000 (0)\n+5547FC Compression Method    0000 (0) 'Stored'\n+5547FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+554802 CRC                   00000000 (0)\n+554806 Compressed Size       00000000 (0)\n+55480A Uncompressed Size     00000000 (0)\n+55480E Filename Length       001E (30)\n+554810 Extra Length          0009 (9)\n+554812 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x554812: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+554830 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+554832   Length              0005 (5)\n+554834   Flags               01 (1) 'Modification'\n+554835   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+554839 LOCAL HEADER #1517    04034B50 (67324752)\n+55483D Extract Zip Spec      14 (20) '2.0'\n+55483E Extract OS            00 (0) 'MS-DOS'\n+55483F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+554841 Compression Method    0000 (0) 'Stored'\n+554843 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+554847 CRC                   00000000 (0)\n+55484B Compressed Size       00000000 (0)\n+55484F Uncompressed Size     00000000 (0)\n+554853 Filename Length       0028 (40)\n+554855 Extra Length          0009 (9)\n+554857 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x554857: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55487F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+554881   Length              0005 (5)\n+554883   Flags               01 (1) 'Modification'\n+554884   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+554888 PAYLOAD\n+\n+554ECD DATA DESCRIPTOR       08074B50 (134695760)\n+554ED1 CRC                   22156101 (571826433)\n+554ED5 Compressed Size       00000645 (1605)\n+554ED9 Uncompressed Size     00000645 (1605)\n+\n+554EDD LOCAL HEADER #1518    04034B50 (67324752)\n+554EE1 Extract Zip Spec      14 (20) '2.0'\n+554EE2 Extract OS            00 (0) 'MS-DOS'\n+554EE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+554EE5 Compression Method    0000 (0) 'Stored'\n+554EE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+554EEB CRC                   00000000 (0)\n+554EEF Compressed Size       00000000 (0)\n+554EF3 Uncompressed Size     00000000 (0)\n+554EF7 Filename Length       002C (44)\n+554EF9 Extra Length          0009 (9)\n+554EFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x554EFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+554F27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+554F29   Length              0005 (5)\n+554F2B   Flags               01 (1) 'Modification'\n+554F2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+554F30 PAYLOAD\n+\n+555460 DATA DESCRIPTOR       08074B50 (134695760)\n+555464 CRC                   5BDCE546 (1541203270)\n+555468 Compressed Size       00000530 (1328)\n+55546C Uncompressed Size     00000530 (1328)\n+\n+555470 LOCAL HEADER #1519    04034B50 (67324752)\n+555474 Extract Zip Spec      14 (20) '2.0'\n+555475 Extract OS            00 (0) 'MS-DOS'\n+555476 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+555478 Compression Method    0000 (0) 'Stored'\n+55547A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55547E CRC                   00000000 (0)\n+555482 Compressed Size       00000000 (0)\n+555486 Uncompressed Size     00000000 (0)\n+55548A Filename Length       002D (45)\n+55548C Extra Length          0009 (9)\n+55548E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55548E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5554BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5554BD   Length              0005 (5)\n+5554BF   Flags               01 (1) 'Modification'\n+5554C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5554C4 PAYLOAD\n+\n+555C51 DATA DESCRIPTOR       08074B50 (134695760)\n+555C55 CRC                   86A6B236 (2259071542)\n+555C59 Compressed Size       0000078D (1933)\n+555C5D Uncompressed Size     0000078D (1933)\n+\n+555C61 LOCAL HEADER #1520    04034B50 (67324752)\n+555C65 Extract Zip Spec      14 (20) '2.0'\n+555C66 Extract OS            00 (0) 'MS-DOS'\n+555C67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+555C69 Compression Method    0000 (0) 'Stored'\n+555C6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+555C6F CRC                   00000000 (0)\n+555C73 Compressed Size       00000000 (0)\n+555C77 Uncompressed Size     00000000 (0)\n+555C7B Filename Length       0027 (39)\n+555C7D Extra Length          0009 (9)\n+555C7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x555C7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+555CA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+555CA8   Length              0005 (5)\n+555CAA   Flags               01 (1) 'Modification'\n+555CAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+555CAF PAYLOAD\n+\n+5561A2 DATA DESCRIPTOR       08074B50 (134695760)\n+5561A6 CRC                   1B4BCF89 (457953161)\n+5561AA Compressed Size       000004F3 (1267)\n+5561AE Uncompressed Size     000004F3 (1267)\n+\n+5561B2 LOCAL HEADER #1521    04034B50 (67324752)\n+5561B6 Extract Zip Spec      14 (20) '2.0'\n+5561B7 Extract OS            00 (0) 'MS-DOS'\n+5561B8 General Purpose Flag  0000 (0)\n+5561BA Compression Method    0000 (0) 'Stored'\n+5561BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5561C0 CRC                   00000000 (0)\n+5561C4 Compressed Size       00000000 (0)\n+5561C8 Uncompressed Size     00000000 (0)\n+5561CC Filename Length       0027 (39)\n+5561CE Extra Length          0009 (9)\n+5561D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5561D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5561F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5561F9   Length              0005 (5)\n+5561FB   Flags               01 (1) 'Modification'\n+5561FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+556200 LOCAL HEADER #1522    04034B50 (67324752)\n+556204 Extract Zip Spec      14 (20) '2.0'\n+556205 Extract OS            00 (0) 'MS-DOS'\n+556206 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+556208 Compression Method    0000 (0) 'Stored'\n+55620A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55620E CRC                   00000000 (0)\n+556212 Compressed Size       00000000 (0)\n+556216 Uncompressed Size     00000000 (0)\n+55621A Filename Length       0039 (57)\n+55621C Extra Length          0009 (9)\n+55621E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55621E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+556257 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+556259   Length              0005 (5)\n+55625B   Flags               01 (1) 'Modification'\n+55625C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+556260 PAYLOAD\n+\n+556761 DATA DESCRIPTOR       08074B50 (134695760)\n+556765 CRC                   DDB2647D (3719455869)\n+556769 Compressed Size       00000501 (1281)\n+55676D Uncompressed Size     00000501 (1281)\n+\n+556771 LOCAL HEADER #1523    04034B50 (67324752)\n+556775 Extract Zip Spec      14 (20) '2.0'\n+556776 Extract OS            00 (0) 'MS-DOS'\n+556777 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+556779 Compression Method    0000 (0) 'Stored'\n+55677B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55677F CRC                   00000000 (0)\n+556783 Compressed Size       00000000 (0)\n+556787 Uncompressed Size     00000000 (0)\n+55678B Filename Length       003D (61)\n+55678D Extra Length          0009 (9)\n+55678F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55678F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5567CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5567CE   Length              0005 (5)\n+5567D0   Flags               01 (1) 'Modification'\n+5567D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5567D5 PAYLOAD\n+\n+556C7A DATA DESCRIPTOR       08074B50 (134695760)\n+556C7E CRC                   5D9DDBCF (1570626511)\n+556C82 Compressed Size       000004A5 (1189)\n+556C86 Uncompressed Size     000004A5 (1189)\n+\n+556C8A LOCAL HEADER #1524    04034B50 (67324752)\n+556C8E Extract Zip Spec      14 (20) '2.0'\n+556C8F Extract OS            00 (0) 'MS-DOS'\n+556C90 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+556C92 Compression Method    0000 (0) 'Stored'\n+556C94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+556C98 CRC                   00000000 (0)\n+556C9C Compressed Size       00000000 (0)\n+556CA0 Uncompressed Size     00000000 (0)\n+556CA4 Filename Length       003E (62)\n+556CA6 Extra Length          0009 (9)\n+556CA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x556CA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+556CE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+556CE8   Length              0005 (5)\n+556CEA   Flags               01 (1) 'Modification'\n+556CEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+556CEF PAYLOAD\n+\n+55745D DATA DESCRIPTOR       08074B50 (134695760)\n+557461 CRC                   4453948E (1146328206)\n+557465 Compressed Size       0000076E (1902)\n+557469 Uncompressed Size     0000076E (1902)\n+\n+55746D LOCAL HEADER #1525    04034B50 (67324752)\n+557471 Extract Zip Spec      14 (20) '2.0'\n+557472 Extract OS            00 (0) 'MS-DOS'\n+557473 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+557475 Compression Method    0000 (0) 'Stored'\n+557477 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55747B CRC                   00000000 (0)\n+55747F Compressed Size       00000000 (0)\n+557483 Uncompressed Size     00000000 (0)\n+557487 Filename Length       0038 (56)\n+557489 Extra Length          0009 (9)\n+55748B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55748B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5574C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5574C5   Length              0005 (5)\n+5574C7   Flags               01 (1) 'Modification'\n+5574C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5574CC PAYLOAD\n+\n+5578EC DATA DESCRIPTOR       08074B50 (134695760)\n+5578F0 CRC                   E8A94DD9 (3903409625)\n+5578F4 Compressed Size       00000420 (1056)\n+5578F8 Uncompressed Size     00000420 (1056)\n+\n+5578FC LOCAL HEADER #1526    04034B50 (67324752)\n+557900 Extract Zip Spec      14 (20) '2.0'\n+557901 Extract OS            00 (0) 'MS-DOS'\n+557902 General Purpose Flag  0000 (0)\n+557904 Compression Method    0000 (0) 'Stored'\n+557906 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55790A CRC                   00000000 (0)\n+55790E Compressed Size       00000000 (0)\n+557912 Uncompressed Size     00000000 (0)\n+557916 Filename Length       002F (47)\n+557918 Extra Length          0009 (9)\n+55791A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55791A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+557949 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55794B   Length              0005 (5)\n+55794D   Flags               01 (1) 'Modification'\n+55794E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+557952 LOCAL HEADER #1527    04034B50 (67324752)\n+557956 Extract Zip Spec      14 (20) '2.0'\n+557957 Extract OS            00 (0) 'MS-DOS'\n+557958 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55795A Compression Method    0000 (0) 'Stored'\n+55795C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+557960 CRC                   00000000 (0)\n+557964 Compressed Size       00000000 (0)\n+557968 Uncompressed Size     00000000 (0)\n+55796C Filename Length       0049 (73)\n+55796E Extra Length          0009 (9)\n+557970 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x557970: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5579B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5579BB   Length              0005 (5)\n+5579BD   Flags               01 (1) 'Modification'\n+5579BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5579C2 PAYLOAD\n+\n+558B64 DATA DESCRIPTOR       08074B50 (134695760)\n+558B68 CRC                   C68A15C0 (3330938304)\n+558B6C Compressed Size       000011A2 (4514)\n+558B70 Uncompressed Size     000011A2 (4514)\n+\n+558B74 LOCAL HEADER #1528    04034B50 (67324752)\n+558B78 Extract Zip Spec      14 (20) '2.0'\n+558B79 Extract OS            00 (0) 'MS-DOS'\n+558B7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+558B7C Compression Method    0000 (0) 'Stored'\n+558B7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+558B82 CRC                   00000000 (0)\n+558B86 Compressed Size       00000000 (0)\n+558B8A Uncompressed Size     00000000 (0)\n+558B8E Filename Length       0046 (70)\n+558B90 Extra Length          0009 (9)\n+558B92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x558B92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+558BD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+558BDA   Length              0005 (5)\n+558BDC   Flags               01 (1) 'Modification'\n+558BDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+558BE1 PAYLOAD\n+\n+559F15 DATA DESCRIPTOR       08074B50 (134695760)\n+559F19 CRC                   27A7C8DD (665307357)\n+559F1D Compressed Size       00001334 (4916)\n+559F21 Uncompressed Size     00001334 (4916)\n+\n+559F25 LOCAL HEADER #1529    04034B50 (67324752)\n+559F29 Extract Zip Spec      14 (20) '2.0'\n+559F2A Extract OS            00 (0) 'MS-DOS'\n+559F2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+559F2D Compression Method    0000 (0) 'Stored'\n+559F2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+559F33 CRC                   00000000 (0)\n+559F37 Compressed Size       00000000 (0)\n+559F3B Uncompressed Size     00000000 (0)\n+559F3F Filename Length       0045 (69)\n+559F41 Extra Length          0009 (9)\n+559F43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x559F43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+559F88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+559F8A   Length              0005 (5)\n+559F8C   Flags               01 (1) 'Modification'\n+559F8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+559F91 PAYLOAD\n+\n+55B429 DATA DESCRIPTOR       08074B50 (134695760)\n+55B42D CRC                   EC1A089B (3961129115)\n+55B431 Compressed Size       00001498 (5272)\n+55B435 Uncompressed Size     00001498 (5272)\n+\n+55B439 LOCAL HEADER #1530    04034B50 (67324752)\n+55B43D Extract Zip Spec      14 (20) '2.0'\n+55B43E Extract OS            00 (0) 'MS-DOS'\n+55B43F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55B441 Compression Method    0000 (0) 'Stored'\n+55B443 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55B447 CRC                   00000000 (0)\n+55B44B Compressed Size       00000000 (0)\n+55B44F Uncompressed Size     00000000 (0)\n+55B453 Filename Length       0049 (73)\n+55B455 Extra Length          0009 (9)\n+55B457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55B457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55B4A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55B4A2   Length              0005 (5)\n+55B4A4   Flags               01 (1) 'Modification'\n+55B4A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55B4A9 PAYLOAD\n+\n+55B9DF DATA DESCRIPTOR       08074B50 (134695760)\n+55B9E3 CRC                   D99CBCB4 (3650927796)\n+55B9E7 Compressed Size       00000536 (1334)\n+55B9EB Uncompressed Size     00000536 (1334)\n+\n+55B9EF LOCAL HEADER #1531    04034B50 (67324752)\n+55B9F3 Extract Zip Spec      14 (20) '2.0'\n+55B9F4 Extract OS            00 (0) 'MS-DOS'\n+55B9F5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55B9F7 Compression Method    0000 (0) 'Stored'\n+55B9F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55B9FD CRC                   00000000 (0)\n+55BA01 Compressed Size       00000000 (0)\n+55BA05 Uncompressed Size     00000000 (0)\n+55BA09 Filename Length       004A (74)\n+55BA0B Extra Length          0009 (9)\n+55BA0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55BA0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55BA57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55BA59   Length              0005 (5)\n+55BA5B   Flags               01 (1) 'Modification'\n+55BA5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55BA60 PAYLOAD\n+\n+55CAF4 DATA DESCRIPTOR       08074B50 (134695760)\n+55CAF8 CRC                   25CC04D5 (634127573)\n+55CAFC Compressed Size       00001094 (4244)\n+55CB00 Uncompressed Size     00001094 (4244)\n+\n+55CB04 LOCAL HEADER #1532    04034B50 (67324752)\n+55CB08 Extract Zip Spec      14 (20) '2.0'\n+55CB09 Extract OS            00 (0) 'MS-DOS'\n+55CB0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55CB0C Compression Method    0000 (0) 'Stored'\n+55CB0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55CB12 CRC                   00000000 (0)\n+55CB16 Compressed Size       00000000 (0)\n+55CB1A Uncompressed Size     00000000 (0)\n+55CB1E Filename Length       004E (78)\n+55CB20 Extra Length          0009 (9)\n+55CB22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55CB22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55CB70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55CB72   Length              0005 (5)\n+55CB74   Flags               01 (1) 'Modification'\n+55CB75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55CB79 PAYLOAD\n+\n+55D0BE DATA DESCRIPTOR       08074B50 (134695760)\n+55D0C2 CRC                   ECA8B7E4 (3970480100)\n+55D0C6 Compressed Size       00000545 (1349)\n+55D0CA Uncompressed Size     00000545 (1349)\n+\n+55D0CE LOCAL HEADER #1533    04034B50 (67324752)\n+55D0D2 Extract Zip Spec      14 (20) '2.0'\n+55D0D3 Extract OS            00 (0) 'MS-DOS'\n+55D0D4 General Purpose Flag  0000 (0)\n+55D0D6 Compression Method    0000 (0) 'Stored'\n+55D0D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55D0DC CRC                   00000000 (0)\n+55D0E0 Compressed Size       00000000 (0)\n+55D0E4 Uncompressed Size     00000000 (0)\n+55D0E8 Filename Length       0026 (38)\n+55D0EA Extra Length          0009 (9)\n+55D0EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55D0EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55D112 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55D114   Length              0005 (5)\n+55D116   Flags               01 (1) 'Modification'\n+55D117   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+55D11B LOCAL HEADER #1534    04034B50 (67324752)\n+55D11F Extract Zip Spec      14 (20) '2.0'\n+55D120 Extract OS            00 (0) 'MS-DOS'\n+55D121 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55D123 Compression Method    0000 (0) 'Stored'\n+55D125 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55D129 CRC                   00000000 (0)\n+55D12D Compressed Size       00000000 (0)\n+55D131 Uncompressed Size     00000000 (0)\n+55D135 Filename Length       0038 (56)\n+55D137 Extra Length          0009 (9)\n+55D139 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55D139: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55D171 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55D173   Length              0005 (5)\n+55D175   Flags               01 (1) 'Modification'\n+55D176   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55D17A PAYLOAD\n+\n+55E11C DATA DESCRIPTOR       08074B50 (134695760)\n+55E120 CRC                   F154D7FB (4048869371)\n+55E124 Compressed Size       00000FA2 (4002)\n+55E128 Uncompressed Size     00000FA2 (4002)\n+\n+55E12C LOCAL HEADER #1535    04034B50 (67324752)\n+55E130 Extract Zip Spec      14 (20) '2.0'\n+55E131 Extract OS            00 (0) 'MS-DOS'\n+55E132 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55E134 Compression Method    0000 (0) 'Stored'\n+55E136 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55E13A CRC                   00000000 (0)\n+55E13E Compressed Size       00000000 (0)\n+55E142 Uncompressed Size     00000000 (0)\n+55E146 Filename Length       0034 (52)\n+55E148 Extra Length          0009 (9)\n+55E14A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55E14A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55E17E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55E180   Length              0005 (5)\n+55E182   Flags               01 (1) 'Modification'\n+55E183   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55E187 PAYLOAD\n+\n+55F547 DATA DESCRIPTOR       08074B50 (134695760)\n+55F54B CRC                   126F64B9 (309290169)\n+55F54F Compressed Size       000013C0 (5056)\n+55F553 Uncompressed Size     000013C0 (5056)\n+\n+55F557 LOCAL HEADER #1536    04034B50 (67324752)\n+55F55B Extract Zip Spec      14 (20) '2.0'\n+55F55C Extract OS            00 (0) 'MS-DOS'\n+55F55D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55F55F Compression Method    0000 (0) 'Stored'\n+55F561 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55F565 CRC                   00000000 (0)\n+55F569 Compressed Size       00000000 (0)\n+55F56D Uncompressed Size     00000000 (0)\n+55F571 Filename Length       0038 (56)\n+55F573 Extra Length          0009 (9)\n+55F575 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55F575: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55F5AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55F5AF   Length              0005 (5)\n+55F5B1   Flags               01 (1) 'Modification'\n+55F5B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55F5B6 PAYLOAD\n+\n+55FAA1 DATA DESCRIPTOR       08074B50 (134695760)\n+55FAA5 CRC                   DE2F0B5D (3727625053)\n+55FAA9 Compressed Size       000004EB (1259)\n+55FAAD Uncompressed Size     000004EB (1259)\n+\n+55FAB1 LOCAL HEADER #1537    04034B50 (67324752)\n+55FAB5 Extract Zip Spec      14 (20) '2.0'\n+55FAB6 Extract OS            00 (0) 'MS-DOS'\n+55FAB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+55FAB9 Compression Method    0000 (0) 'Stored'\n+55FABB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+55FABF CRC                   00000000 (0)\n+55FAC3 Compressed Size       00000000 (0)\n+55FAC7 Uncompressed Size     00000000 (0)\n+55FACB Filename Length       0039 (57)\n+55FACD Extra Length          0009 (9)\n+55FACF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x55FACF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+55FB08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+55FB0A   Length              0005 (5)\n+55FB0C   Flags               01 (1) 'Modification'\n+55FB0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+55FB11 PAYLOAD\n+\n+560B50 DATA DESCRIPTOR       08074B50 (134695760)\n+560B54 CRC                   91721BC5 (2440174533)\n+560B58 Compressed Size       0000103F (4159)\n+560B5C Uncompressed Size     0000103F (4159)\n+\n+560B60 LOCAL HEADER #1538    04034B50 (67324752)\n+560B64 Extract Zip Spec      14 (20) '2.0'\n+560B65 Extract OS            00 (0) 'MS-DOS'\n+560B66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+560B68 Compression Method    0000 (0) 'Stored'\n+560B6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+560B6E CRC                   00000000 (0)\n+560B72 Compressed Size       00000000 (0)\n+560B76 Uncompressed Size     00000000 (0)\n+560B7A Filename Length       003D (61)\n+560B7C Extra Length          0009 (9)\n+560B7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x560B7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+560BBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+560BBD   Length              0005 (5)\n+560BBF   Flags               01 (1) 'Modification'\n+560BC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+560BC4 PAYLOAD\n+\n+5610BE DATA DESCRIPTOR       08074B50 (134695760)\n+5610C2 CRC                   6E31EAB9 (1848765113)\n+5610C6 Compressed Size       000004FA (1274)\n+5610CA Uncompressed Size     000004FA (1274)\n+\n+5610CE LOCAL HEADER #1539    04034B50 (67324752)\n+5610D2 Extract Zip Spec      14 (20) '2.0'\n+5610D3 Extract OS            00 (0) 'MS-DOS'\n+5610D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5610D6 Compression Method    0000 (0) 'Stored'\n+5610D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5610DC CRC                   00000000 (0)\n+5610E0 Compressed Size       00000000 (0)\n+5610E4 Uncompressed Size     00000000 (0)\n+5610E8 Filename Length       0035 (53)\n+5610EA Extra Length          0009 (9)\n+5610EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5610EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+561121 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+561123   Length              0005 (5)\n+561125   Flags               01 (1) 'Modification'\n+561126   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56112A PAYLOAD\n+\n+5621C9 DATA DESCRIPTOR       08074B50 (134695760)\n+5621CD CRC                   9A81C390 (2592195472)\n+5621D1 Compressed Size       0000109F (4255)\n+5621D5 Uncompressed Size     0000109F (4255)\n+\n+5621D9 LOCAL HEADER #1540    04034B50 (67324752)\n+5621DD Extract Zip Spec      14 (20) '2.0'\n+5621DE Extract OS            00 (0) 'MS-DOS'\n+5621DF General Purpose Flag  0000 (0)\n+5621E1 Compression Method    0000 (0) 'Stored'\n+5621E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5621E7 CRC                   00000000 (0)\n+5621EB Compressed Size       00000000 (0)\n+5621EF Uncompressed Size     00000000 (0)\n+5621F3 Filename Length       0021 (33)\n+5621F5 Extra Length          0009 (9)\n+5621F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5621F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+562218 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56221A   Length              0005 (5)\n+56221C   Flags               01 (1) 'Modification'\n+56221D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+562221 LOCAL HEADER #1541    04034B50 (67324752)\n+562225 Extract Zip Spec      14 (20) '2.0'\n+562226 Extract OS            00 (0) 'MS-DOS'\n+562227 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+562229 Compression Method    0000 (0) 'Stored'\n+56222B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56222F CRC                   00000000 (0)\n+562233 Compressed Size       00000000 (0)\n+562237 Uncompressed Size     00000000 (0)\n+56223B Filename Length       0033 (51)\n+56223D Extra Length          0009 (9)\n+56223F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56223F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+562272 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+562274   Length              0005 (5)\n+562276   Flags               01 (1) 'Modification'\n+562277   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56227B PAYLOAD\n+\n+56275A DATA DESCRIPTOR       08074B50 (134695760)\n+56275E CRC                   1A03F22E (436466222)\n+562762 Compressed Size       000004DF (1247)\n+562766 Uncompressed Size     000004DF (1247)\n+\n+56276A LOCAL HEADER #1542    04034B50 (67324752)\n+56276E Extract Zip Spec      14 (20) '2.0'\n+56276F Extract OS            00 (0) 'MS-DOS'\n+562770 General Purpose Flag  0000 (0)\n+562772 Compression Method    0000 (0) 'Stored'\n+562774 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+562778 CRC                   00000000 (0)\n+56277C Compressed Size       00000000 (0)\n+562780 Uncompressed Size     00000000 (0)\n+562784 Filename Length       0027 (39)\n+562786 Extra Length          0009 (9)\n+562788 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x562788: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5627AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5627B1   Length              0005 (5)\n+5627B3   Flags               01 (1) 'Modification'\n+5627B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5627B8 LOCAL HEADER #1543    04034B50 (67324752)\n+5627BC Extract Zip Spec      14 (20) '2.0'\n+5627BD Extract OS            00 (0) 'MS-DOS'\n+5627BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5627C0 Compression Method    0000 (0) 'Stored'\n+5627C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5627C6 CRC                   00000000 (0)\n+5627CA Compressed Size       00000000 (0)\n+5627CE Uncompressed Size     00000000 (0)\n+5627D2 Filename Length       0037 (55)\n+5627D4 Extra Length          0009 (9)\n+5627D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5627D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56280D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56280F   Length              0005 (5)\n+562811   Flags               01 (1) 'Modification'\n+562812   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+562816 PAYLOAD\n+\n+565683 DATA DESCRIPTOR       08074B50 (134695760)\n+565687 CRC                   DBE899CA (3689454026)\n+56568B Compressed Size       00002E6D (11885)\n+56568F Uncompressed Size     00002E6D (11885)\n+\n+565693 LOCAL HEADER #1544    04034B50 (67324752)\n+565697 Extract Zip Spec      14 (20) '2.0'\n+565698 Extract OS            00 (0) 'MS-DOS'\n+565699 General Purpose Flag  0000 (0)\n+56569B Compression Method    0000 (0) 'Stored'\n+56569D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5656A1 CRC                   00000000 (0)\n+5656A5 Compressed Size       00000000 (0)\n+5656A9 Uncompressed Size     00000000 (0)\n+5656AD Filename Length       0029 (41)\n+5656AF Extra Length          0009 (9)\n+5656B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5656B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5656DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5656DC   Length              0005 (5)\n+5656DE   Flags               01 (1) 'Modification'\n+5656DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5656E3 LOCAL HEADER #1545    04034B50 (67324752)\n+5656E7 Extract Zip Spec      14 (20) '2.0'\n+5656E8 Extract OS            00 (0) 'MS-DOS'\n+5656E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5656EB Compression Method    0000 (0) 'Stored'\n+5656ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5656F1 CRC                   00000000 (0)\n+5656F5 Compressed Size       00000000 (0)\n+5656F9 Uncompressed Size     00000000 (0)\n+5656FD Filename Length       0032 (50)\n+5656FF Extra Length          0009 (9)\n+565701 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x565701: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+565733 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+565735   Length              0005 (5)\n+565737   Flags               01 (1) 'Modification'\n+565738   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56573C PAYLOAD\n+\n+565C54 DATA DESCRIPTOR       08074B50 (134695760)\n+565C58 CRC                   91FB3CEA (2449161450)\n+565C5C Compressed Size       00000518 (1304)\n+565C60 Uncompressed Size     00000518 (1304)\n+\n+565C64 LOCAL HEADER #1546    04034B50 (67324752)\n+565C68 Extract Zip Spec      14 (20) '2.0'\n+565C69 Extract OS            00 (0) 'MS-DOS'\n+565C6A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+565C6C Compression Method    0000 (0) 'Stored'\n+565C6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+565C72 CRC                   00000000 (0)\n+565C76 Compressed Size       00000000 (0)\n+565C7A Uncompressed Size     00000000 (0)\n+565C7E Filename Length       0042 (66)\n+565C80 Extra Length          0009 (9)\n+565C82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x565C82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+565CC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+565CC6   Length              0005 (5)\n+565CC8   Flags               01 (1) 'Modification'\n+565CC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+565CCD PAYLOAD\n+\n+566C9B DATA DESCRIPTOR       08074B50 (134695760)\n+566C9F CRC                   492B287D (1227565181)\n+566CA3 Compressed Size       00000FCE (4046)\n+566CA7 Uncompressed Size     00000FCE (4046)\n+\n+566CAB LOCAL HEADER #1547    04034B50 (67324752)\n+566CAF Extract Zip Spec      14 (20) '2.0'\n+566CB0 Extract OS            00 (0) 'MS-DOS'\n+566CB1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+566CB3 Compression Method    0000 (0) 'Stored'\n+566CB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+566CB9 CRC                   00000000 (0)\n+566CBD Compressed Size       00000000 (0)\n+566CC1 Uncompressed Size     00000000 (0)\n+566CC5 Filename Length       0039 (57)\n+566CC7 Extra Length          0009 (9)\n+566CC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x566CC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+566D02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+566D04   Length              0005 (5)\n+566D06   Flags               01 (1) 'Modification'\n+566D07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+566D0B PAYLOAD\n+\n+5683A8 DATA DESCRIPTOR       08074B50 (134695760)\n+5683AC CRC                   EB3BD2B9 (3946566329)\n+5683B0 Compressed Size       0000169D (5789)\n+5683B4 Uncompressed Size     0000169D (5789)\n+\n+5683B8 LOCAL HEADER #1548    04034B50 (67324752)\n+5683BC Extract Zip Spec      14 (20) '2.0'\n+5683BD Extract OS            00 (0) 'MS-DOS'\n+5683BE General Purpose Flag  0000 (0)\n+5683C0 Compression Method    0000 (0) 'Stored'\n+5683C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5683C6 CRC                   00000000 (0)\n+5683CA Compressed Size       00000000 (0)\n+5683CE Uncompressed Size     00000000 (0)\n+5683D2 Filename Length       0031 (49)\n+5683D4 Extra Length          0009 (9)\n+5683D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5683D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+568407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+568409   Length              0005 (5)\n+56840B   Flags               01 (1) 'Modification'\n+56840C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+568410 LOCAL HEADER #1549    04034B50 (67324752)\n+568414 Extract Zip Spec      14 (20) '2.0'\n+568415 Extract OS            00 (0) 'MS-DOS'\n+568416 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+568418 Compression Method    0000 (0) 'Stored'\n+56841A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56841E CRC                   00000000 (0)\n+568422 Compressed Size       00000000 (0)\n+568426 Uncompressed Size     00000000 (0)\n+56842A Filename Length       0048 (72)\n+56842C Extra Length          0009 (9)\n+56842E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56842E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+568476 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+568478   Length              0005 (5)\n+56847A   Flags               01 (1) 'Modification'\n+56847B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56847F PAYLOAD\n+\n+568BB7 DATA DESCRIPTOR       08074B50 (134695760)\n+568BBB CRC                   74498D23 (1950977315)\n+568BBF Compressed Size       00000738 (1848)\n+568BC3 Uncompressed Size     00000738 (1848)\n+\n+568BC7 LOCAL HEADER #1550    04034B50 (67324752)\n+568BCB Extract Zip Spec      14 (20) '2.0'\n+568BCC Extract OS            00 (0) 'MS-DOS'\n+568BCD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+568BCF Compression Method    0000 (0) 'Stored'\n+568BD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+568BD5 CRC                   00000000 (0)\n+568BD9 Compressed Size       00000000 (0)\n+568BDD Uncompressed Size     00000000 (0)\n+568BE1 Filename Length       0047 (71)\n+568BE3 Extra Length          0009 (9)\n+568BE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x568BE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+568C2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+568C2E   Length              0005 (5)\n+568C30   Flags               01 (1) 'Modification'\n+568C31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+568C35 PAYLOAD\n+\n+5691B6 DATA DESCRIPTOR       08074B50 (134695760)\n+5691BA CRC                   C2DA4C0E (3269086222)\n+5691BE Compressed Size       00000581 (1409)\n+5691C2 Uncompressed Size     00000581 (1409)\n+\n+5691C6 LOCAL HEADER #1551    04034B50 (67324752)\n+5691CA Extract Zip Spec      14 (20) '2.0'\n+5691CB Extract OS            00 (0) 'MS-DOS'\n+5691CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5691CE Compression Method    0000 (0) 'Stored'\n+5691D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5691D4 CRC                   00000000 (0)\n+5691D8 Compressed Size       00000000 (0)\n+5691DC Uncompressed Size     00000000 (0)\n+5691E0 Filename Length       0047 (71)\n+5691E2 Extra Length          0009 (9)\n+5691E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5691E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56922B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56922D   Length              0005 (5)\n+56922F   Flags               01 (1) 'Modification'\n+569230   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+569234 PAYLOAD\n+\n+56A084 DATA DESCRIPTOR       08074B50 (134695760)\n+56A088 CRC                   A166D974 (2707872116)\n+56A08C Compressed Size       00000E50 (3664)\n+56A090 Uncompressed Size     00000E50 (3664)\n+\n+56A094 LOCAL HEADER #1552    04034B50 (67324752)\n+56A098 Extract Zip Spec      14 (20) '2.0'\n+56A099 Extract OS            00 (0) 'MS-DOS'\n+56A09A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+56A09C Compression Method    0000 (0) 'Stored'\n+56A09E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56A0A2 CRC                   00000000 (0)\n+56A0A6 Compressed Size       00000000 (0)\n+56A0AA Uncompressed Size     00000000 (0)\n+56A0AE Filename Length       0046 (70)\n+56A0B0 Extra Length          0009 (9)\n+56A0B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56A0B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56A0F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56A0FA   Length              0005 (5)\n+56A0FC   Flags               01 (1) 'Modification'\n+56A0FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56A101 PAYLOAD\n+\n+56B1DD DATA DESCRIPTOR       08074B50 (134695760)\n+56B1E1 CRC                   07F19A54 (133274196)\n+56B1E5 Compressed Size       000010DC (4316)\n+56B1E9 Uncompressed Size     000010DC (4316)\n+\n+56B1ED LOCAL HEADER #1553    04034B50 (67324752)\n+56B1F1 Extract Zip Spec      14 (20) '2.0'\n+56B1F2 Extract OS            00 (0) 'MS-DOS'\n+56B1F3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+56B1F5 Compression Method    0000 (0) 'Stored'\n+56B1F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56B1FB CRC                   00000000 (0)\n+56B1FF Compressed Size       00000000 (0)\n+56B203 Uncompressed Size     00000000 (0)\n+56B207 Filename Length       0049 (73)\n+56B209 Extra Length          0009 (9)\n+56B20B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56B20B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56B254 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56B256   Length              0005 (5)\n+56B258   Flags               01 (1) 'Modification'\n+56B259   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56B25D PAYLOAD\n+\n+56C46D DATA DESCRIPTOR       08074B50 (134695760)\n+56C471 CRC                   F5209683 (4112553603)\n+56C475 Compressed Size       00001210 (4624)\n+56C479 Uncompressed Size     00001210 (4624)\n+\n+56C47D LOCAL HEADER #1554    04034B50 (67324752)\n+56C481 Extract Zip Spec      14 (20) '2.0'\n+56C482 Extract OS            00 (0) 'MS-DOS'\n+56C483 General Purpose Flag  0000 (0)\n+56C485 Compression Method    0000 (0) 'Stored'\n+56C487 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56C48B CRC                   00000000 (0)\n+56C48F Compressed Size       00000000 (0)\n+56C493 Uncompressed Size     00000000 (0)\n+56C497 Filename Length       0024 (36)\n+56C499 Extra Length          0009 (9)\n+56C49B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56C49B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56C4BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56C4C1   Length              0005 (5)\n+56C4C3   Flags               01 (1) 'Modification'\n+56C4C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+56C4C8 LOCAL HEADER #1555    04034B50 (67324752)\n+56C4CC Extract Zip Spec      14 (20) '2.0'\n+56C4CD Extract OS            00 (0) 'MS-DOS'\n+56C4CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+56C4D0 Compression Method    0000 (0) 'Stored'\n+56C4D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56C4D6 CRC                   00000000 (0)\n+56C4DA Compressed Size       00000000 (0)\n+56C4DE Uncompressed Size     00000000 (0)\n+56C4E2 Filename Length       0038 (56)\n+56C4E4 Extra Length          0009 (9)\n+56C4E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56C4E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56C51E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56C520   Length              0005 (5)\n+56C522   Flags               01 (1) 'Modification'\n+56C523   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56C527 PAYLOAD\n+\n+56CC94 DATA DESCRIPTOR       08074B50 (134695760)\n+56CC98 CRC                   A7E27376 (2816635766)\n+56CC9C Compressed Size       0000076D (1901)\n+56CCA0 Uncompressed Size     0000076D (1901)\n+\n+56CCA4 LOCAL HEADER #1556    04034B50 (67324752)\n+56CCA8 Extract Zip Spec      14 (20) '2.0'\n+56CCA9 Extract OS            00 (0) 'MS-DOS'\n+56CCAA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+56CCAC Compression Method    0000 (0) 'Stored'\n+56CCAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56CCB2 CRC                   00000000 (0)\n+56CCB6 Compressed Size       00000000 (0)\n+56CCBA Uncompressed Size     00000000 (0)\n+56CCBE Filename Length       0047 (71)\n+56CCC0 Extra Length          0009 (9)\n+56CCC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56CCC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56CD09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56CD0B   Length              0005 (5)\n+56CD0D   Flags               01 (1) 'Modification'\n+56CD0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56CD12 PAYLOAD\n+\n+56D622 DATA DESCRIPTOR       08074B50 (134695760)\n+56D626 CRC                   28520740 (676464448)\n+56D62A Compressed Size       00000910 (2320)\n+56D62E Uncompressed Size     00000910 (2320)\n+\n+56D632 LOCAL HEADER #1557    04034B50 (67324752)\n+56D636 Extract Zip Spec      14 (20) '2.0'\n+56D637 Extract OS            00 (0) 'MS-DOS'\n+56D638 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+56D63A Compression Method    0000 (0) 'Stored'\n+56D63C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+56D640 CRC                   00000000 (0)\n+56D644 Compressed Size       00000000 (0)\n+56D648 Uncompressed Size     00000000 (0)\n+56D64C Filename Length       0037 (55)\n+56D64E Extra Length          0009 (9)\n+56D650 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x56D650: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+56D687 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+56D689   Length              0005 (5)\n+56D68B   Flags               01 (1) 'Modification'\n+56D68C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+56D690 PAYLOAD\n+\n+57063F DATA DESCRIPTOR       08074B50 (134695760)\n+570643 CRC                   B8E0F8E9 (3101751529)\n+570647 Compressed Size       00002FAF (12207)\n+57064B Uncompressed Size     00002FAF (12207)\n+\n+57064F LOCAL HEADER #1558    04034B50 (67324752)\n+570653 Extract Zip Spec      14 (20) '2.0'\n+570654 Extract OS            00 (0) 'MS-DOS'\n+570655 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+570657 Compression Method    0000 (0) 'Stored'\n+570659 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57065D CRC                   00000000 (0)\n+570661 Compressed Size       00000000 (0)\n+570665 Uncompressed Size     00000000 (0)\n+570669 Filename Length       0036 (54)\n+57066B Extra Length          0009 (9)\n+57066D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57066D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5706A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5706A5   Length              0005 (5)\n+5706A7   Flags               01 (1) 'Modification'\n+5706A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5706AC PAYLOAD\n+\n+5716AD DATA DESCRIPTOR       08074B50 (134695760)\n+5716B1 CRC                   191CDF67 (421322599)\n+5716B5 Compressed Size       00001001 (4097)\n+5716B9 Uncompressed Size     00001001 (4097)\n+\n+5716BD LOCAL HEADER #1559    04034B50 (67324752)\n+5716C1 Extract Zip Spec      14 (20) '2.0'\n+5716C2 Extract OS            00 (0) 'MS-DOS'\n+5716C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5716C5 Compression Method    0000 (0) 'Stored'\n+5716C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5716CB CRC                   00000000 (0)\n+5716CF Compressed Size       00000000 (0)\n+5716D3 Uncompressed Size     00000000 (0)\n+5716D7 Filename Length       0039 (57)\n+5716D9 Extra Length          0009 (9)\n+5716DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5716DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+571714 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+571716   Length              0005 (5)\n+571718   Flags               01 (1) 'Modification'\n+571719   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57171D PAYLOAD\n+\n+5727A8 DATA DESCRIPTOR       08074B50 (134695760)\n+5727AC CRC                   D94EDD2B (3645824299)\n+5727B0 Compressed Size       0000108B (4235)\n+5727B4 Uncompressed Size     0000108B (4235)\n+\n+5727B8 LOCAL HEADER #1560    04034B50 (67324752)\n+5727BC Extract Zip Spec      14 (20) '2.0'\n+5727BD Extract OS            00 (0) 'MS-DOS'\n+5727BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5727C0 Compression Method    0000 (0) 'Stored'\n+5727C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5727C6 CRC                   00000000 (0)\n+5727CA Compressed Size       00000000 (0)\n+5727CE Uncompressed Size     00000000 (0)\n+5727D2 Filename Length       0035 (53)\n+5727D4 Extra Length          0009 (9)\n+5727D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5727D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57280B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57280D   Length              0005 (5)\n+57280F   Flags               01 (1) 'Modification'\n+572810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+572814 PAYLOAD\n+\n+57386C DATA DESCRIPTOR       08074B50 (134695760)\n+573870 CRC                   C397571B (3281475355)\n+573874 Compressed Size       00001058 (4184)\n+573878 Uncompressed Size     00001058 (4184)\n+\n+57387C LOCAL HEADER #1561    04034B50 (67324752)\n+573880 Extract Zip Spec      14 (20) '2.0'\n+573881 Extract OS            00 (0) 'MS-DOS'\n+573882 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+573884 Compression Method    0000 (0) 'Stored'\n+573886 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57388A CRC                   00000000 (0)\n+57388E Compressed Size       00000000 (0)\n+573892 Uncompressed Size     00000000 (0)\n+573896 Filename Length       0037 (55)\n+573898 Extra Length          0009 (9)\n+57389A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57389A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5738D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5738D3   Length              0005 (5)\n+5738D5   Flags               01 (1) 'Modification'\n+5738D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5738DA PAYLOAD\n+\n+57559D DATA DESCRIPTOR       08074B50 (134695760)\n+5755A1 CRC                   9B1DD286 (2602422918)\n+5755A5 Compressed Size       00001CC3 (7363)\n+5755A9 Uncompressed Size     00001CC3 (7363)\n+\n+5755AD LOCAL HEADER #1562    04034B50 (67324752)\n+5755B1 Extract Zip Spec      14 (20) '2.0'\n+5755B2 Extract OS            00 (0) 'MS-DOS'\n+5755B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5755B5 Compression Method    0000 (0) 'Stored'\n+5755B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5755BB CRC                   00000000 (0)\n+5755BF Compressed Size       00000000 (0)\n+5755C3 Uncompressed Size     00000000 (0)\n+5755C7 Filename Length       0038 (56)\n+5755C9 Extra Length          0009 (9)\n+5755CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5755CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+575603 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+575605   Length              0005 (5)\n+575607   Flags               01 (1) 'Modification'\n+575608   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57560C PAYLOAD\n+\n+5762A7 DATA DESCRIPTOR       08074B50 (134695760)\n+5762AB CRC                   8ED687AA (2396424106)\n+5762AF Compressed Size       00000C9B (3227)\n+5762B3 Uncompressed Size     00000C9B (3227)\n+\n+5762B7 LOCAL HEADER #1563    04034B50 (67324752)\n+5762BB Extract Zip Spec      14 (20) '2.0'\n+5762BC Extract OS            00 (0) 'MS-DOS'\n+5762BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5762BF Compression Method    0000 (0) 'Stored'\n+5762C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5762C5 CRC                   00000000 (0)\n+5762C9 Compressed Size       00000000 (0)\n+5762CD Uncompressed Size     00000000 (0)\n+5762D1 Filename Length       003E (62)\n+5762D3 Extra Length          0009 (9)\n+5762D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5762D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+576313 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+576315   Length              0005 (5)\n+576317   Flags               01 (1) 'Modification'\n+576318   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57631C PAYLOAD\n+\n+576986 DATA DESCRIPTOR       08074B50 (134695760)\n+57698A CRC                   3E4334ED (1044591853)\n+57698E Compressed Size       0000066A (1642)\n+576992 Uncompressed Size     0000066A (1642)\n+\n+576996 LOCAL HEADER #1564    04034B50 (67324752)\n+57699A Extract Zip Spec      14 (20) '2.0'\n+57699B Extract OS            00 (0) 'MS-DOS'\n+57699C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57699E Compression Method    0000 (0) 'Stored'\n+5769A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5769A4 CRC                   00000000 (0)\n+5769A8 Compressed Size       00000000 (0)\n+5769AC Uncompressed Size     00000000 (0)\n+5769B0 Filename Length       003F (63)\n+5769B2 Extra Length          0009 (9)\n+5769B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5769B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5769F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5769F5   Length              0005 (5)\n+5769F7   Flags               01 (1) 'Modification'\n+5769F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5769FC PAYLOAD\n+\n+576DF9 DATA DESCRIPTOR       08074B50 (134695760)\n+576DFD CRC                   1F076089 (520577161)\n+576E01 Compressed Size       000003FD (1021)\n+576E05 Uncompressed Size     000003FD (1021)\n+\n+576E09 LOCAL HEADER #1565    04034B50 (67324752)\n+576E0D Extract Zip Spec      14 (20) '2.0'\n+576E0E Extract OS            00 (0) 'MS-DOS'\n+576E0F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+576E11 Compression Method    0000 (0) 'Stored'\n+576E13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+576E17 CRC                   00000000 (0)\n+576E1B Compressed Size       00000000 (0)\n+576E1F Uncompressed Size     00000000 (0)\n+576E23 Filename Length       0041 (65)\n+576E25 Extra Length          0009 (9)\n+576E27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x576E27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+576E68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+576E6A   Length              0005 (5)\n+576E6C   Flags               01 (1) 'Modification'\n+576E6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+576E71 PAYLOAD\n+\n+577DF0 DATA DESCRIPTOR       08074B50 (134695760)\n+577DF4 CRC                   63B69239 (1672909369)\n+577DF8 Compressed Size       00000F7F (3967)\n+577DFC Uncompressed Size     00000F7F (3967)\n+\n+577E00 LOCAL HEADER #1566    04034B50 (67324752)\n+577E04 Extract Zip Spec      14 (20) '2.0'\n+577E05 Extract OS            00 (0) 'MS-DOS'\n+577E06 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+577E08 Compression Method    0000 (0) 'Stored'\n+577E0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+577E0E CRC                   00000000 (0)\n+577E12 Compressed Size       00000000 (0)\n+577E16 Uncompressed Size     00000000 (0)\n+577E1A Filename Length       0037 (55)\n+577E1C Extra Length          0009 (9)\n+577E1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x577E1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+577E55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+577E57   Length              0005 (5)\n+577E59   Flags               01 (1) 'Modification'\n+577E5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+577E5E PAYLOAD\n+\n+578C4C DATA DESCRIPTOR       08074B50 (134695760)\n+578C50 CRC                   DB6423CF (3680773071)\n+578C54 Compressed Size       00000DEE (3566)\n+578C58 Uncompressed Size     00000DEE (3566)\n+\n+578C5C LOCAL HEADER #1567    04034B50 (67324752)\n+578C60 Extract Zip Spec      14 (20) '2.0'\n+578C61 Extract OS            00 (0) 'MS-DOS'\n+578C62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+578C64 Compression Method    0000 (0) 'Stored'\n+578C66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+578C6A CRC                   00000000 (0)\n+578C6E Compressed Size       00000000 (0)\n+578C72 Uncompressed Size     00000000 (0)\n+578C76 Filename Length       0035 (53)\n+578C78 Extra Length          0009 (9)\n+578C7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x578C7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+578CAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+578CB1   Length              0005 (5)\n+578CB3   Flags               01 (1) 'Modification'\n+578CB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+578CB8 PAYLOAD\n+\n+57AB47 DATA DESCRIPTOR       08074B50 (134695760)\n+57AB4B CRC                   79B32E36 (2041785910)\n+57AB4F Compressed Size       00001E8F (7823)\n+57AB53 Uncompressed Size     00001E8F (7823)\n+\n+57AB57 LOCAL HEADER #1568    04034B50 (67324752)\n+57AB5B Extract Zip Spec      14 (20) '2.0'\n+57AB5C Extract OS            00 (0) 'MS-DOS'\n+57AB5D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57AB5F Compression Method    0000 (0) 'Stored'\n+57AB61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57AB65 CRC                   00000000 (0)\n+57AB69 Compressed Size       00000000 (0)\n+57AB6D Uncompressed Size     00000000 (0)\n+57AB71 Filename Length       0036 (54)\n+57AB73 Extra Length          0009 (9)\n+57AB75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57AB75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57ABAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57ABAD   Length              0005 (5)\n+57ABAF   Flags               01 (1) 'Modification'\n+57ABB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57ABB4 PAYLOAD\n+\n+57B5C2 DATA DESCRIPTOR       08074B50 (134695760)\n+57B5C6 CRC                   5F8B1DE8 (1602952680)\n+57B5CA Compressed Size       00000A0E (2574)\n+57B5CE Uncompressed Size     00000A0E (2574)\n+\n+57B5D2 LOCAL HEADER #1569    04034B50 (67324752)\n+57B5D6 Extract Zip Spec      14 (20) '2.0'\n+57B5D7 Extract OS            00 (0) 'MS-DOS'\n+57B5D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57B5DA Compression Method    0000 (0) 'Stored'\n+57B5DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57B5E0 CRC                   00000000 (0)\n+57B5E4 Compressed Size       00000000 (0)\n+57B5E8 Uncompressed Size     00000000 (0)\n+57B5EC Filename Length       0044 (68)\n+57B5EE Extra Length          0009 (9)\n+57B5F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57B5F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57B634 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57B636   Length              0005 (5)\n+57B638   Flags               01 (1) 'Modification'\n+57B639   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57B63D PAYLOAD\n+\n+57BAA6 DATA DESCRIPTOR       08074B50 (134695760)\n+57BAAA CRC                   D9BD9D3A (3653082426)\n+57BAAE Compressed Size       00000469 (1129)\n+57BAB2 Uncompressed Size     00000469 (1129)\n+\n+57BAB6 LOCAL HEADER #1570    04034B50 (67324752)\n+57BABA Extract Zip Spec      14 (20) '2.0'\n+57BABB Extract OS            00 (0) 'MS-DOS'\n+57BABC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57BABE Compression Method    0000 (0) 'Stored'\n+57BAC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57BAC4 CRC                   00000000 (0)\n+57BAC8 Compressed Size       00000000 (0)\n+57BACC Uncompressed Size     00000000 (0)\n+57BAD0 Filename Length       003C (60)\n+57BAD2 Extra Length          0009 (9)\n+57BAD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57BAD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57BB10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57BB12   Length              0005 (5)\n+57BB14   Flags               01 (1) 'Modification'\n+57BB15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57BB19 PAYLOAD\n+\n+57C1CE DATA DESCRIPTOR       08074B50 (134695760)\n+57C1D2 CRC                   78792D26 (2021207334)\n+57C1D6 Compressed Size       000006B5 (1717)\n+57C1DA Uncompressed Size     000006B5 (1717)\n+\n+57C1DE LOCAL HEADER #1571    04034B50 (67324752)\n+57C1E2 Extract Zip Spec      14 (20) '2.0'\n+57C1E3 Extract OS            00 (0) 'MS-DOS'\n+57C1E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57C1E6 Compression Method    0000 (0) 'Stored'\n+57C1E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57C1EC CRC                   00000000 (0)\n+57C1F0 Compressed Size       00000000 (0)\n+57C1F4 Uncompressed Size     00000000 (0)\n+57C1F8 Filename Length       0037 (55)\n+57C1FA Extra Length          0009 (9)\n+57C1FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57C1FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57C233 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57C235   Length              0005 (5)\n+57C237   Flags               01 (1) 'Modification'\n+57C238   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57C23C PAYLOAD\n+\n+57CE81 DATA DESCRIPTOR       08074B50 (134695760)\n+57CE85 CRC                   A9090E7C (2835943036)\n+57CE89 Compressed Size       00000C45 (3141)\n+57CE8D Uncompressed Size     00000C45 (3141)\n+\n+57CE91 LOCAL HEADER #1572    04034B50 (67324752)\n+57CE95 Extract Zip Spec      14 (20) '2.0'\n+57CE96 Extract OS            00 (0) 'MS-DOS'\n+57CE97 General Purpose Flag  0000 (0)\n+57CE99 Compression Method    0000 (0) 'Stored'\n+57CE9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57CE9F CRC                   00000000 (0)\n+57CEA3 Compressed Size       00000000 (0)\n+57CEA7 Uncompressed Size     00000000 (0)\n+57CEAB Filename Length       002A (42)\n+57CEAD Extra Length          0009 (9)\n+57CEAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57CEAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57CED9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57CEDB   Length              0005 (5)\n+57CEDD   Flags               01 (1) 'Modification'\n+57CEDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+57CEE2 LOCAL HEADER #1573    04034B50 (67324752)\n+57CEE6 Extract Zip Spec      14 (20) '2.0'\n+57CEE7 Extract OS            00 (0) 'MS-DOS'\n+57CEE8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57CEEA Compression Method    0000 (0) 'Stored'\n+57CEEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57CEF0 CRC                   00000000 (0)\n+57CEF4 Compressed Size       00000000 (0)\n+57CEF8 Uncompressed Size     00000000 (0)\n+57CEFC Filename Length       003B (59)\n+57CEFE Extra Length          0009 (9)\n+57CF00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57CF00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57CF3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57CF3D   Length              0005 (5)\n+57CF3F   Flags               01 (1) 'Modification'\n+57CF40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57CF44 PAYLOAD\n+\n+57D88F DATA DESCRIPTOR       08074B50 (134695760)\n+57D893 CRC                   101D85B9 (270370233)\n+57D897 Compressed Size       0000094B (2379)\n+57D89B Uncompressed Size     0000094B (2379)\n+\n+57D89F LOCAL HEADER #1574    04034B50 (67324752)\n+57D8A3 Extract Zip Spec      14 (20) '2.0'\n+57D8A4 Extract OS            00 (0) 'MS-DOS'\n+57D8A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57D8A7 Compression Method    0000 (0) 'Stored'\n+57D8A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57D8AD CRC                   00000000 (0)\n+57D8B1 Compressed Size       00000000 (0)\n+57D8B5 Uncompressed Size     00000000 (0)\n+57D8B9 Filename Length       003D (61)\n+57D8BB Extra Length          0009 (9)\n+57D8BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57D8BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57D8FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57D8FC   Length              0005 (5)\n+57D8FE   Flags               01 (1) 'Modification'\n+57D8FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57D903 PAYLOAD\n+\n+57E661 DATA DESCRIPTOR       08074B50 (134695760)\n+57E665 CRC                   7EE6D15A (2129056090)\n+57E669 Compressed Size       00000D5E (3422)\n+57E66D Uncompressed Size     00000D5E (3422)\n+\n+57E671 LOCAL HEADER #1575    04034B50 (67324752)\n+57E675 Extract Zip Spec      14 (20) '2.0'\n+57E676 Extract OS            00 (0) 'MS-DOS'\n+57E677 General Purpose Flag  0000 (0)\n+57E679 Compression Method    0000 (0) 'Stored'\n+57E67B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57E67F CRC                   00000000 (0)\n+57E683 Compressed Size       00000000 (0)\n+57E687 Uncompressed Size     00000000 (0)\n+57E68B Filename Length       002F (47)\n+57E68D Extra Length          0009 (9)\n+57E68F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57E68F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57E6BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57E6C0   Length              0005 (5)\n+57E6C2   Flags               01 (1) 'Modification'\n+57E6C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+57E6C7 LOCAL HEADER #1576    04034B50 (67324752)\n+57E6CB Extract Zip Spec      14 (20) '2.0'\n+57E6CC Extract OS            00 (0) 'MS-DOS'\n+57E6CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57E6CF Compression Method    0000 (0) 'Stored'\n+57E6D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57E6D5 CRC                   00000000 (0)\n+57E6D9 Compressed Size       00000000 (0)\n+57E6DD Uncompressed Size     00000000 (0)\n+57E6E1 Filename Length       0048 (72)\n+57E6E3 Extra Length          0009 (9)\n+57E6E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57E6E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57E72D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57E72F   Length              0005 (5)\n+57E731   Flags               01 (1) 'Modification'\n+57E732   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57E736 PAYLOAD\n+\n+57F93B DATA DESCRIPTOR       08074B50 (134695760)\n+57F93F CRC                   A053D891 (2689849489)\n+57F943 Compressed Size       00001205 (4613)\n+57F947 Uncompressed Size     00001205 (4613)\n+\n+57F94B LOCAL HEADER #1577    04034B50 (67324752)\n+57F94F Extract Zip Spec      14 (20) '2.0'\n+57F950 Extract OS            00 (0) 'MS-DOS'\n+57F951 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+57F953 Compression Method    0000 (0) 'Stored'\n+57F955 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+57F959 CRC                   00000000 (0)\n+57F95D Compressed Size       00000000 (0)\n+57F961 Uncompressed Size     00000000 (0)\n+57F965 Filename Length       0043 (67)\n+57F967 Extra Length          0009 (9)\n+57F969 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x57F969: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+57F9AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+57F9AE   Length              0005 (5)\n+57F9B0   Flags               01 (1) 'Modification'\n+57F9B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+57F9B5 PAYLOAD\n+\n+580178 DATA DESCRIPTOR       08074B50 (134695760)\n+58017C CRC                   F077FE2F (4034395695)\n+580180 Compressed Size       000007C3 (1987)\n+580184 Uncompressed Size     000007C3 (1987)\n+\n+580188 LOCAL HEADER #1578    04034B50 (67324752)\n+58018C Extract Zip Spec      14 (20) '2.0'\n+58018D Extract OS            00 (0) 'MS-DOS'\n+58018E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+580190 Compression Method    0000 (0) 'Stored'\n+580192 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+580196 CRC                   00000000 (0)\n+58019A Compressed Size       00000000 (0)\n+58019E Uncompressed Size     00000000 (0)\n+5801A2 Filename Length       0049 (73)\n+5801A4 Extra Length          0009 (9)\n+5801A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5801A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5801EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5801F1   Length              0005 (5)\n+5801F3   Flags               01 (1) 'Modification'\n+5801F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5801F8 PAYLOAD\n+\n+581747 DATA DESCRIPTOR       08074B50 (134695760)\n+58174B CRC                   1DD7EFDF (500690911)\n+58174F Compressed Size       0000154F (5455)\n+581753 Uncompressed Size     0000154F (5455)\n+\n+581757 LOCAL HEADER #1579    04034B50 (67324752)\n+58175B Extract Zip Spec      14 (20) '2.0'\n+58175C Extract OS            00 (0) 'MS-DOS'\n+58175D General Purpose Flag  0000 (0)\n+58175F Compression Method    0000 (0) 'Stored'\n+581761 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+581765 CRC                   00000000 (0)\n+581769 Compressed Size       00000000 (0)\n+58176D Uncompressed Size     00000000 (0)\n+581771 Filename Length       0033 (51)\n+581773 Extra Length          0009 (9)\n+581775 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x581775: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5817A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5817AA   Length              0005 (5)\n+5817AC   Flags               01 (1) 'Modification'\n+5817AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5817B1 LOCAL HEADER #1580    04034B50 (67324752)\n+5817B5 Extract Zip Spec      14 (20) '2.0'\n+5817B6 Extract OS            00 (0) 'MS-DOS'\n+5817B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5817B9 Compression Method    0000 (0) 'Stored'\n+5817BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5817BF CRC                   00000000 (0)\n+5817C3 Compressed Size       00000000 (0)\n+5817C7 Uncompressed Size     00000000 (0)\n+5817CB Filename Length       0049 (73)\n+5817CD Extra Length          0009 (9)\n+5817CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5817CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+581818 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58181A   Length              0005 (5)\n+58181C   Flags               01 (1) 'Modification'\n+58181D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+581821 PAYLOAD\n+\n+58268A DATA DESCRIPTOR       08074B50 (134695760)\n+58268E CRC                   1909E1F3 (420078067)\n+582692 Compressed Size       00000E69 (3689)\n+582696 Uncompressed Size     00000E69 (3689)\n+\n+58269A LOCAL HEADER #1581    04034B50 (67324752)\n+58269E Extract Zip Spec      14 (20) '2.0'\n+58269F Extract OS            00 (0) 'MS-DOS'\n+5826A0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5826A2 Compression Method    0000 (0) 'Stored'\n+5826A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5826A8 CRC                   00000000 (0)\n+5826AC Compressed Size       00000000 (0)\n+5826B0 Uncompressed Size     00000000 (0)\n+5826B4 Filename Length       0045 (69)\n+5826B6 Extra Length          0009 (9)\n+5826B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5826B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5826FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5826FF   Length              0005 (5)\n+582701   Flags               01 (1) 'Modification'\n+582702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+582706 PAYLOAD\n+\n+582C27 DATA DESCRIPTOR       08074B50 (134695760)\n+582C2B CRC                   40313D69 (1076968809)\n+582C2F Compressed Size       00000521 (1313)\n+582C33 Uncompressed Size     00000521 (1313)\n+\n+582C37 LOCAL HEADER #1582    04034B50 (67324752)\n+582C3B Extract Zip Spec      14 (20) '2.0'\n+582C3C Extract OS            00 (0) 'MS-DOS'\n+582C3D General Purpose Flag  0000 (0)\n+582C3F Compression Method    0000 (0) 'Stored'\n+582C41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+582C45 CRC                   00000000 (0)\n+582C49 Compressed Size       00000000 (0)\n+582C4D Uncompressed Size     00000000 (0)\n+582C51 Filename Length       003A (58)\n+582C53 Extra Length          0009 (9)\n+582C55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x582C55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+582C8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+582C91   Length              0005 (5)\n+582C93   Flags               01 (1) 'Modification'\n+582C94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+582C98 LOCAL HEADER #1583    04034B50 (67324752)\n+582C9C Extract Zip Spec      14 (20) '2.0'\n+582C9D Extract OS            00 (0) 'MS-DOS'\n+582C9E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+582CA0 Compression Method    0000 (0) 'Stored'\n+582CA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+582CA6 CRC                   00000000 (0)\n+582CAA Compressed Size       00000000 (0)\n+582CAE Uncompressed Size     00000000 (0)\n+582CB2 Filename Length       005E (94)\n+582CB4 Extra Length          0009 (9)\n+582CB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x582CB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+582D14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+582D16   Length              0005 (5)\n+582D18   Flags               01 (1) 'Modification'\n+582D19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+582D1D PAYLOAD\n+\n+58425B DATA DESCRIPTOR       08074B50 (134695760)\n+58425F CRC                   7D6D8264 (2104328804)\n+584263 Compressed Size       0000153E (5438)\n+584267 Uncompressed Size     0000153E (5438)\n+\n+58426B LOCAL HEADER #1584    04034B50 (67324752)\n+58426F Extract Zip Spec      14 (20) '2.0'\n+584270 Extract OS            00 (0) 'MS-DOS'\n+584271 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+584273 Compression Method    0000 (0) 'Stored'\n+584275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+584279 CRC                   00000000 (0)\n+58427D Compressed Size       00000000 (0)\n+584281 Uncompressed Size     00000000 (0)\n+584285 Filename Length       005A (90)\n+584287 Extra Length          0009 (9)\n+584289 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x584289: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5842E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5842E5   Length              0005 (5)\n+5842E7   Flags               01 (1) 'Modification'\n+5842E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5842EC PAYLOAD\n+\n+58483D DATA DESCRIPTOR       08074B50 (134695760)\n+584841 CRC                   5474BB92 (1416936338)\n+584845 Compressed Size       00000551 (1361)\n+584849 Uncompressed Size     00000551 (1361)\n+\n+58484D LOCAL HEADER #1585    04034B50 (67324752)\n+584851 Extract Zip Spec      14 (20) '2.0'\n+584852 Extract OS            00 (0) 'MS-DOS'\n+584853 General Purpose Flag  0000 (0)\n+584855 Compression Method    0000 (0) 'Stored'\n+584857 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58485B CRC                   00000000 (0)\n+58485F Compressed Size       00000000 (0)\n+584863 Uncompressed Size     00000000 (0)\n+584867 Filename Length       0036 (54)\n+584869 Extra Length          0009 (9)\n+58486B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58486B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5848A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5848A3   Length              0005 (5)\n+5848A5   Flags               01 (1) 'Modification'\n+5848A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5848AA LOCAL HEADER #1586    04034B50 (67324752)\n+5848AE Extract Zip Spec      14 (20) '2.0'\n+5848AF Extract OS            00 (0) 'MS-DOS'\n+5848B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5848B2 Compression Method    0000 (0) 'Stored'\n+5848B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5848B8 CRC                   00000000 (0)\n+5848BC Compressed Size       00000000 (0)\n+5848C0 Uncompressed Size     00000000 (0)\n+5848C4 Filename Length       004F (79)\n+5848C6 Extra Length          0009 (9)\n+5848C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5848C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+584917 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+584919   Length              0005 (5)\n+58491B   Flags               01 (1) 'Modification'\n+58491C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+584920 PAYLOAD\n+\n+585206 DATA DESCRIPTOR       08074B50 (134695760)\n+58520A CRC                   F9C89211 (4190671377)\n+58520E Compressed Size       000008E6 (2278)\n+585212 Uncompressed Size     000008E6 (2278)\n+\n+585216 LOCAL HEADER #1587    04034B50 (67324752)\n+58521A Extract Zip Spec      14 (20) '2.0'\n+58521B Extract OS            00 (0) 'MS-DOS'\n+58521C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58521E Compression Method    0000 (0) 'Stored'\n+585220 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+585224 CRC                   00000000 (0)\n+585228 Compressed Size       00000000 (0)\n+58522C Uncompressed Size     00000000 (0)\n+585230 Filename Length       004B (75)\n+585232 Extra Length          0009 (9)\n+585234 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x585234: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58527F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+585281   Length              0005 (5)\n+585283   Flags               01 (1) 'Modification'\n+585284   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+585288 PAYLOAD\n+\n+5857A9 DATA DESCRIPTOR       08074B50 (134695760)\n+5857AD CRC                   66FEA41B (1727964187)\n+5857B1 Compressed Size       00000521 (1313)\n+5857B5 Uncompressed Size     00000521 (1313)\n+\n+5857B9 LOCAL HEADER #1588    04034B50 (67324752)\n+5857BD Extract Zip Spec      14 (20) '2.0'\n+5857BE Extract OS            00 (0) 'MS-DOS'\n+5857BF General Purpose Flag  0000 (0)\n+5857C1 Compression Method    0000 (0) 'Stored'\n+5857C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5857C7 CRC                   00000000 (0)\n+5857CB Compressed Size       00000000 (0)\n+5857CF Uncompressed Size     00000000 (0)\n+5857D3 Filename Length       0039 (57)\n+5857D5 Extra Length          0009 (9)\n+5857D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5857D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+585810 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+585812   Length              0005 (5)\n+585814   Flags               01 (1) 'Modification'\n+585815   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+585819 LOCAL HEADER #1589    04034B50 (67324752)\n+58581D Extract Zip Spec      14 (20) '2.0'\n+58581E Extract OS            00 (0) 'MS-DOS'\n+58581F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+585821 Compression Method    0000 (0) 'Stored'\n+585823 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+585827 CRC                   00000000 (0)\n+58582B Compressed Size       00000000 (0)\n+58582F Uncompressed Size     00000000 (0)\n+585833 Filename Length       0055 (85)\n+585835 Extra Length          0009 (9)\n+585837 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x585837: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58588C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58588E   Length              0005 (5)\n+585890   Flags               01 (1) 'Modification'\n+585891   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+585895 PAYLOAD\n+\n+586521 DATA DESCRIPTOR       08074B50 (134695760)\n+586525 CRC                   E83FE9D5 (3896502741)\n+586529 Compressed Size       00000C8C (3212)\n+58652D Uncompressed Size     00000C8C (3212)\n+\n+586531 LOCAL HEADER #1590    04034B50 (67324752)\n+586535 Extract Zip Spec      14 (20) '2.0'\n+586536 Extract OS            00 (0) 'MS-DOS'\n+586537 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+586539 Compression Method    0000 (0) 'Stored'\n+58653B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58653F CRC                   00000000 (0)\n+586543 Compressed Size       00000000 (0)\n+586547 Uncompressed Size     00000000 (0)\n+58654B Filename Length       0051 (81)\n+58654D Extra Length          0009 (9)\n+58654F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58654F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5865A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5865A2   Length              0005 (5)\n+5865A4   Flags               01 (1) 'Modification'\n+5865A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5865A9 PAYLOAD\n+\n+586AFE DATA DESCRIPTOR       08074B50 (134695760)\n+586B02 CRC                   DF933BA4 (3750968228)\n+586B06 Compressed Size       00000555 (1365)\n+586B0A Uncompressed Size     00000555 (1365)\n+\n+586B0E LOCAL HEADER #1591    04034B50 (67324752)\n+586B12 Extract Zip Spec      14 (20) '2.0'\n+586B13 Extract OS            00 (0) 'MS-DOS'\n+586B14 General Purpose Flag  0000 (0)\n+586B16 Compression Method    0000 (0) 'Stored'\n+586B18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+586B1C CRC                   00000000 (0)\n+586B20 Compressed Size       00000000 (0)\n+586B24 Uncompressed Size     00000000 (0)\n+586B28 Filename Length       0037 (55)\n+586B2A Extra Length          0009 (9)\n+586B2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x586B2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+586B63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+586B65   Length              0005 (5)\n+586B67   Flags               01 (1) 'Modification'\n+586B68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+586B6C LOCAL HEADER #1592    04034B50 (67324752)\n+586B70 Extract Zip Spec      14 (20) '2.0'\n+586B71 Extract OS            00 (0) 'MS-DOS'\n+586B72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+586B74 Compression Method    0000 (0) 'Stored'\n+586B76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+586B7A CRC                   00000000 (0)\n+586B7E Compressed Size       00000000 (0)\n+586B82 Uncompressed Size     00000000 (0)\n+586B86 Filename Length       0055 (85)\n+586B88 Extra Length          0009 (9)\n+586B8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x586B8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+586BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+586BE1   Length              0005 (5)\n+586BE3   Flags               01 (1) 'Modification'\n+586BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+586BE8 PAYLOAD\n+\n+58752C DATA DESCRIPTOR       08074B50 (134695760)\n+587530 CRC                   9032EA6A (2419255914)\n+587534 Compressed Size       00000944 (2372)\n+587538 Uncompressed Size     00000944 (2372)\n+\n+58753C LOCAL HEADER #1593    04034B50 (67324752)\n+587540 Extract Zip Spec      14 (20) '2.0'\n+587541 Extract OS            00 (0) 'MS-DOS'\n+587542 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+587544 Compression Method    0000 (0) 'Stored'\n+587546 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58754A CRC                   00000000 (0)\n+58754E Compressed Size       00000000 (0)\n+587552 Uncompressed Size     00000000 (0)\n+587556 Filename Length       0051 (81)\n+587558 Extra Length          0009 (9)\n+58755A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58755A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5875AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5875AD   Length              0005 (5)\n+5875AF   Flags               01 (1) 'Modification'\n+5875B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5875B4 PAYLOAD\n+\n+587AFA DATA DESCRIPTOR       08074B50 (134695760)\n+587AFE CRC                   897FB906 (2306849030)\n+587B02 Compressed Size       00000546 (1350)\n+587B06 Uncompressed Size     00000546 (1350)\n+\n+587B0A LOCAL HEADER #1594    04034B50 (67324752)\n+587B0E Extract Zip Spec      14 (20) '2.0'\n+587B0F Extract OS            00 (0) 'MS-DOS'\n+587B10 General Purpose Flag  0000 (0)\n+587B12 Compression Method    0000 (0) 'Stored'\n+587B14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+587B18 CRC                   00000000 (0)\n+587B1C Compressed Size       00000000 (0)\n+587B20 Uncompressed Size     00000000 (0)\n+587B24 Filename Length       002C (44)\n+587B26 Extra Length          0009 (9)\n+587B28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x587B28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+587B54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+587B56   Length              0005 (5)\n+587B58   Flags               01 (1) 'Modification'\n+587B59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+587B5D LOCAL HEADER #1595    04034B50 (67324752)\n+587B61 Extract Zip Spec      14 (20) '2.0'\n+587B62 Extract OS            00 (0) 'MS-DOS'\n+587B63 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+587B65 Compression Method    0000 (0) 'Stored'\n+587B67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+587B6B CRC                   00000000 (0)\n+587B6F Compressed Size       00000000 (0)\n+587B73 Uncompressed Size     00000000 (0)\n+587B77 Filename Length       003F (63)\n+587B79 Extra Length          0009 (9)\n+587B7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x587B7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+587BBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+587BBC   Length              0005 (5)\n+587BBE   Flags               01 (1) 'Modification'\n+587BBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+587BC3 PAYLOAD\n+\n+589542 DATA DESCRIPTOR       08074B50 (134695760)\n+589546 CRC                   56951E3F (1452613183)\n+58954A Compressed Size       0000197F (6527)\n+58954E Uncompressed Size     0000197F (6527)\n+\n+589552 LOCAL HEADER #1596    04034B50 (67324752)\n+589556 Extract Zip Spec      14 (20) '2.0'\n+589557 Extract OS            00 (0) 'MS-DOS'\n+589558 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58955A Compression Method    0000 (0) 'Stored'\n+58955C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+589560 CRC                   00000000 (0)\n+589564 Compressed Size       00000000 (0)\n+589568 Uncompressed Size     00000000 (0)\n+58956C Filename Length       003E (62)\n+58956E Extra Length          0009 (9)\n+589570 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x589570: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5895AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5895B0   Length              0005 (5)\n+5895B2   Flags               01 (1) 'Modification'\n+5895B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5895B7 PAYLOAD\n+\n+58A67D DATA DESCRIPTOR       08074B50 (134695760)\n+58A681 CRC                   42023036 (1107439670)\n+58A685 Compressed Size       000010C6 (4294)\n+58A689 Uncompressed Size     000010C6 (4294)\n+\n+58A68D LOCAL HEADER #1597    04034B50 (67324752)\n+58A691 Extract Zip Spec      14 (20) '2.0'\n+58A692 Extract OS            00 (0) 'MS-DOS'\n+58A693 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58A695 Compression Method    0000 (0) 'Stored'\n+58A697 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58A69B CRC                   00000000 (0)\n+58A69F Compressed Size       00000000 (0)\n+58A6A3 Uncompressed Size     00000000 (0)\n+58A6A7 Filename Length       0044 (68)\n+58A6A9 Extra Length          0009 (9)\n+58A6AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58A6AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58A6EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58A6F1   Length              0005 (5)\n+58A6F3   Flags               01 (1) 'Modification'\n+58A6F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58A6F8 PAYLOAD\n+\n+58BED6 DATA DESCRIPTOR       08074B50 (134695760)\n+58BEDA CRC                   52180500 (1377305856)\n+58BEDE Compressed Size       000017DE (6110)\n+58BEE2 Uncompressed Size     000017DE (6110)\n+\n+58BEE6 LOCAL HEADER #1598    04034B50 (67324752)\n+58BEEA Extract Zip Spec      14 (20) '2.0'\n+58BEEB Extract OS            00 (0) 'MS-DOS'\n+58BEEC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58BEEE Compression Method    0000 (0) 'Stored'\n+58BEF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58BEF4 CRC                   00000000 (0)\n+58BEF8 Compressed Size       00000000 (0)\n+58BEFC Uncompressed Size     00000000 (0)\n+58BF00 Filename Length       003F (63)\n+58BF02 Extra Length          0009 (9)\n+58BF04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58BF04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58BF43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58BF45   Length              0005 (5)\n+58BF47   Flags               01 (1) 'Modification'\n+58BF48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58BF4C PAYLOAD\n+\n+58D116 DATA DESCRIPTOR       08074B50 (134695760)\n+58D11A CRC                   EC29A626 (3962152486)\n+58D11E Compressed Size       000011CA (4554)\n+58D122 Uncompressed Size     000011CA (4554)\n+\n+58D126 LOCAL HEADER #1599    04034B50 (67324752)\n+58D12A Extract Zip Spec      14 (20) '2.0'\n+58D12B Extract OS            00 (0) 'MS-DOS'\n+58D12C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58D12E Compression Method    0000 (0) 'Stored'\n+58D130 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58D134 CRC                   00000000 (0)\n+58D138 Compressed Size       00000000 (0)\n+58D13C Uncompressed Size     00000000 (0)\n+58D140 Filename Length       003E (62)\n+58D142 Extra Length          0009 (9)\n+58D144 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58D144: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58D182 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58D184   Length              0005 (5)\n+58D186   Flags               01 (1) 'Modification'\n+58D187   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58D18B PAYLOAD\n+\n+58E62E DATA DESCRIPTOR       08074B50 (134695760)\n+58E632 CRC                   253B482C (624642092)\n+58E636 Compressed Size       000014A3 (5283)\n+58E63A Uncompressed Size     000014A3 (5283)\n+\n+58E63E LOCAL HEADER #1600    04034B50 (67324752)\n+58E642 Extract Zip Spec      14 (20) '2.0'\n+58E643 Extract OS            00 (0) 'MS-DOS'\n+58E644 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58E646 Compression Method    0000 (0) 'Stored'\n+58E648 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58E64C CRC                   00000000 (0)\n+58E650 Compressed Size       00000000 (0)\n+58E654 Uncompressed Size     00000000 (0)\n+58E658 Filename Length       0043 (67)\n+58E65A Extra Length          0009 (9)\n+58E65C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58E65C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58E69F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58E6A1   Length              0005 (5)\n+58E6A3   Flags               01 (1) 'Modification'\n+58E6A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58E6A8 PAYLOAD\n+\n+58ED04 DATA DESCRIPTOR       08074B50 (134695760)\n+58ED08 CRC                   117073F8 (292582392)\n+58ED0C Compressed Size       0000065C (1628)\n+58ED10 Uncompressed Size     0000065C (1628)\n+\n+58ED14 LOCAL HEADER #1601    04034B50 (67324752)\n+58ED18 Extract Zip Spec      14 (20) '2.0'\n+58ED19 Extract OS            00 (0) 'MS-DOS'\n+58ED1A General Purpose Flag  0000 (0)\n+58ED1C Compression Method    0000 (0) 'Stored'\n+58ED1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58ED22 CRC                   00000000 (0)\n+58ED26 Compressed Size       00000000 (0)\n+58ED2A Uncompressed Size     00000000 (0)\n+58ED2E Filename Length       0029 (41)\n+58ED30 Extra Length          0009 (9)\n+58ED32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58ED32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58ED5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58ED5D   Length              0005 (5)\n+58ED5F   Flags               01 (1) 'Modification'\n+58ED60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+58ED64 LOCAL HEADER #1602    04034B50 (67324752)\n+58ED68 Extract Zip Spec      14 (20) '2.0'\n+58ED69 Extract OS            00 (0) 'MS-DOS'\n+58ED6A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+58ED6C Compression Method    0000 (0) 'Stored'\n+58ED6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+58ED72 CRC                   00000000 (0)\n+58ED76 Compressed Size       00000000 (0)\n+58ED7A Uncompressed Size     00000000 (0)\n+58ED7E Filename Length       0039 (57)\n+58ED80 Extra Length          0009 (9)\n+58ED82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x58ED82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+58EDBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+58EDBD   Length              0005 (5)\n+58EDBF   Flags               01 (1) 'Modification'\n+58EDC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+58EDC4 PAYLOAD\n+\n+590577 DATA DESCRIPTOR       08074B50 (134695760)\n+59057B CRC                   0EB2B1F5 (246591989)\n+59057F Compressed Size       000017B3 (6067)\n+590583 Uncompressed Size     000017B3 (6067)\n+\n+590587 LOCAL HEADER #1603    04034B50 (67324752)\n+59058B Extract Zip Spec      14 (20) '2.0'\n+59058C Extract OS            00 (0) 'MS-DOS'\n+59058D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+59058F Compression Method    0000 (0) 'Stored'\n+590591 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+590595 CRC                   00000000 (0)\n+590599 Compressed Size       00000000 (0)\n+59059D Uncompressed Size     00000000 (0)\n+5905A1 Filename Length       0038 (56)\n+5905A3 Extra Length          0009 (9)\n+5905A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5905A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5905DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5905DF   Length              0005 (5)\n+5905E1   Flags               01 (1) 'Modification'\n+5905E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5905E6 PAYLOAD\n+\n+59237E DATA DESCRIPTOR       08074B50 (134695760)\n+592382 CRC                   B6BACA35 (3065694773)\n+592386 Compressed Size       00001D98 (7576)\n+59238A Uncompressed Size     00001D98 (7576)\n+\n+59238E LOCAL HEADER #1604    04034B50 (67324752)\n+592392 Extract Zip Spec      14 (20) '2.0'\n+592393 Extract OS            00 (0) 'MS-DOS'\n+592394 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+592396 Compression Method    0000 (0) 'Stored'\n+592398 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59239C CRC                   00000000 (0)\n+5923A0 Compressed Size       00000000 (0)\n+5923A4 Uncompressed Size     00000000 (0)\n+5923A8 Filename Length       003E (62)\n+5923AA Extra Length          0009 (9)\n+5923AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5923AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5923EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5923EC   Length              0005 (5)\n+5923EE   Flags               01 (1) 'Modification'\n+5923EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5923F3 PAYLOAD\n+\n+593C71 DATA DESCRIPTOR       08074B50 (134695760)\n+593C75 CRC                   E154BEF4 (3780427508)\n+593C79 Compressed Size       0000187E (6270)\n+593C7D Uncompressed Size     0000187E (6270)\n+\n+593C81 LOCAL HEADER #1605    04034B50 (67324752)\n+593C85 Extract Zip Spec      14 (20) '2.0'\n+593C86 Extract OS            00 (0) 'MS-DOS'\n+593C87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+593C89 Compression Method    0000 (0) 'Stored'\n+593C8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+593C8F CRC                   00000000 (0)\n+593C93 Compressed Size       00000000 (0)\n+593C97 Uncompressed Size     00000000 (0)\n+593C9B Filename Length       0039 (57)\n+593C9D Extra Length          0009 (9)\n+593C9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x593C9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+593CD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+593CDA   Length              0005 (5)\n+593CDC   Flags               01 (1) 'Modification'\n+593CDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+593CE1 PAYLOAD\n+\n+594998 DATA DESCRIPTOR       08074B50 (134695760)\n+59499C CRC                   B2448F97 (2990837655)\n+5949A0 Compressed Size       00000CB7 (3255)\n+5949A4 Uncompressed Size     00000CB7 (3255)\n+\n+5949A8 LOCAL HEADER #1606    04034B50 (67324752)\n+5949AC Extract Zip Spec      14 (20) '2.0'\n+5949AD Extract OS            00 (0) 'MS-DOS'\n+5949AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5949B0 Compression Method    0000 (0) 'Stored'\n+5949B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5949B6 CRC                   00000000 (0)\n+5949BA Compressed Size       00000000 (0)\n+5949BE Uncompressed Size     00000000 (0)\n+5949C2 Filename Length       0038 (56)\n+5949C4 Extra Length          0009 (9)\n+5949C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5949C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5949FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+594A00   Length              0005 (5)\n+594A02   Flags               01 (1) 'Modification'\n+594A03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+594A07 PAYLOAD\n+\n+595AF4 DATA DESCRIPTOR       08074B50 (134695760)\n+595AF8 CRC                   A33A370C (2738501388)\n+595AFC Compressed Size       000010ED (4333)\n+595B00 Uncompressed Size     000010ED (4333)\n+\n+595B04 LOCAL HEADER #1607    04034B50 (67324752)\n+595B08 Extract Zip Spec      14 (20) '2.0'\n+595B09 Extract OS            00 (0) 'MS-DOS'\n+595B0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+595B0C Compression Method    0000 (0) 'Stored'\n+595B0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+595B12 CRC                   00000000 (0)\n+595B16 Compressed Size       00000000 (0)\n+595B1A Uncompressed Size     00000000 (0)\n+595B1E Filename Length       003D (61)\n+595B20 Extra Length          0009 (9)\n+595B22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x595B22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+595B5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+595B61   Length              0005 (5)\n+595B63   Flags               01 (1) 'Modification'\n+595B64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+595B68 PAYLOAD\n+\n+596194 DATA DESCRIPTOR       08074B50 (134695760)\n+596198 CRC                   242C94A2 (606901410)\n+59619C Compressed Size       0000062C (1580)\n+5961A0 Uncompressed Size     0000062C (1580)\n+\n+5961A4 LOCAL HEADER #1608    04034B50 (67324752)\n+5961A8 Extract Zip Spec      14 (20) '2.0'\n+5961A9 Extract OS            00 (0) 'MS-DOS'\n+5961AA General Purpose Flag  0000 (0)\n+5961AC Compression Method    0000 (0) 'Stored'\n+5961AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5961B2 CRC                   00000000 (0)\n+5961B6 Compressed Size       00000000 (0)\n+5961BA Uncompressed Size     00000000 (0)\n+5961BE Filename Length       002A (42)\n+5961C0 Extra Length          0009 (9)\n+5961C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5961C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5961EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5961EE   Length              0005 (5)\n+5961F0   Flags               01 (1) 'Modification'\n+5961F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5961F5 LOCAL HEADER #1609    04034B50 (67324752)\n+5961F9 Extract Zip Spec      14 (20) '2.0'\n+5961FA Extract OS            00 (0) 'MS-DOS'\n+5961FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5961FD Compression Method    0000 (0) 'Stored'\n+5961FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+596203 CRC                   00000000 (0)\n+596207 Compressed Size       00000000 (0)\n+59620B Uncompressed Size     00000000 (0)\n+59620F Filename Length       0047 (71)\n+596211 Extra Length          0009 (9)\n+596213 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x596213: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59625A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59625C   Length              0005 (5)\n+59625E   Flags               01 (1) 'Modification'\n+59625F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+596263 PAYLOAD\n+\n+598ADF DATA DESCRIPTOR       08074B50 (134695760)\n+598AE3 CRC                   9FEC08A1 (2683046049)\n+598AE7 Compressed Size       0000287C (10364)\n+598AEB Uncompressed Size     0000287C (10364)\n+\n+598AEF LOCAL HEADER #1610    04034B50 (67324752)\n+598AF3 Extract Zip Spec      14 (20) '2.0'\n+598AF4 Extract OS            00 (0) 'MS-DOS'\n+598AF5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+598AF7 Compression Method    0000 (0) 'Stored'\n+598AF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+598AFD CRC                   00000000 (0)\n+598B01 Compressed Size       00000000 (0)\n+598B05 Uncompressed Size     00000000 (0)\n+598B09 Filename Length       004E (78)\n+598B0B Extra Length          0009 (9)\n+598B0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x598B0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+598B5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+598B5D   Length              0005 (5)\n+598B5F   Flags               01 (1) 'Modification'\n+598B60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+598B64 PAYLOAD\n+\n+59935F DATA DESCRIPTOR       08074B50 (134695760)\n+599363 CRC                   399B609C (966484124)\n+599367 Compressed Size       000007FB (2043)\n+59936B Uncompressed Size     000007FB (2043)\n+\n+59936F LOCAL HEADER #1611    04034B50 (67324752)\n+599373 Extract Zip Spec      14 (20) '2.0'\n+599374 Extract OS            00 (0) 'MS-DOS'\n+599375 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+599377 Compression Method    0000 (0) 'Stored'\n+599379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59937D CRC                   00000000 (0)\n+599381 Compressed Size       00000000 (0)\n+599385 Uncompressed Size     00000000 (0)\n+599389 Filename Length       003B (59)\n+59938B Extra Length          0009 (9)\n+59938D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59938D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5993C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5993CA   Length              0005 (5)\n+5993CC   Flags               01 (1) 'Modification'\n+5993CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5993D1 PAYLOAD\n+\n+59AF6E DATA DESCRIPTOR       08074B50 (134695760)\n+59AF72 CRC                   9371F11F (2473718047)\n+59AF76 Compressed Size       00001B9D (7069)\n+59AF7A Uncompressed Size     00001B9D (7069)\n+\n+59AF7E LOCAL HEADER #1612    04034B50 (67324752)\n+59AF82 Extract Zip Spec      14 (20) '2.0'\n+59AF83 Extract OS            00 (0) 'MS-DOS'\n+59AF84 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+59AF86 Compression Method    0000 (0) 'Stored'\n+59AF88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59AF8C CRC                   00000000 (0)\n+59AF90 Compressed Size       00000000 (0)\n+59AF94 Uncompressed Size     00000000 (0)\n+59AF98 Filename Length       003A (58)\n+59AF9A Extra Length          0009 (9)\n+59AF9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59AF9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59AFD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59AFD8   Length              0005 (5)\n+59AFDA   Flags               01 (1) 'Modification'\n+59AFDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59AFDF PAYLOAD\n+\n+59CCBB DATA DESCRIPTOR       08074B50 (134695760)\n+59CCBF CRC                   79FA59C0 (2046450112)\n+59CCC3 Compressed Size       00001CDC (7388)\n+59CCC7 Uncompressed Size     00001CDC (7388)\n+\n+59CCCB LOCAL HEADER #1613    04034B50 (67324752)\n+59CCCF Extract Zip Spec      14 (20) '2.0'\n+59CCD0 Extract OS            00 (0) 'MS-DOS'\n+59CCD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+59CCD3 Compression Method    0000 (0) 'Stored'\n+59CCD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59CCD9 CRC                   00000000 (0)\n+59CCDD Compressed Size       00000000 (0)\n+59CCE1 Uncompressed Size     00000000 (0)\n+59CCE5 Filename Length       0040 (64)\n+59CCE7 Extra Length          0009 (9)\n+59CCE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59CCE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59CD29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59CD2B   Length              0005 (5)\n+59CD2D   Flags               01 (1) 'Modification'\n+59CD2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59CD32 PAYLOAD\n+\n+59E856 DATA DESCRIPTOR       08074B50 (134695760)\n+59E85A CRC                   EF9DBA26 (4020091430)\n+59E85E Compressed Size       00001B24 (6948)\n+59E862 Uncompressed Size     00001B24 (6948)\n+\n+59E866 LOCAL HEADER #1614    04034B50 (67324752)\n+59E86A Extract Zip Spec      14 (20) '2.0'\n+59E86B Extract OS            00 (0) 'MS-DOS'\n+59E86C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+59E86E Compression Method    0000 (0) 'Stored'\n+59E870 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59E874 CRC                   00000000 (0)\n+59E878 Compressed Size       00000000 (0)\n+59E87C Uncompressed Size     00000000 (0)\n+59E880 Filename Length       003B (59)\n+59E882 Extra Length          0009 (9)\n+59E884 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59E884: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59E8BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59E8C1   Length              0005 (5)\n+59E8C3   Flags               01 (1) 'Modification'\n+59E8C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59E8C8 PAYLOAD\n+\n+59FC61 DATA DESCRIPTOR       08074B50 (134695760)\n+59FC65 CRC                   A0D2AF4F (2698161999)\n+59FC69 Compressed Size       00001399 (5017)\n+59FC6D Uncompressed Size     00001399 (5017)\n+\n+59FC71 LOCAL HEADER #1615    04034B50 (67324752)\n+59FC75 Extract Zip Spec      14 (20) '2.0'\n+59FC76 Extract OS            00 (0) 'MS-DOS'\n+59FC77 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+59FC79 Compression Method    0000 (0) 'Stored'\n+59FC7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+59FC7F CRC                   00000000 (0)\n+59FC83 Compressed Size       00000000 (0)\n+59FC87 Uncompressed Size     00000000 (0)\n+59FC8B Filename Length       003A (58)\n+59FC8D Extra Length          0009 (9)\n+59FC8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x59FC8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+59FCC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+59FCCB   Length              0005 (5)\n+59FCCD   Flags               01 (1) 'Modification'\n+59FCCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+59FCD2 PAYLOAD\n+\n+5A0A18 DATA DESCRIPTOR       08074B50 (134695760)\n+5A0A1C CRC                   79ACCC49 (2041367625)\n+5A0A20 Compressed Size       00000D46 (3398)\n+5A0A24 Uncompressed Size     00000D46 (3398)\n+\n+5A0A28 LOCAL HEADER #1616    04034B50 (67324752)\n+5A0A2C Extract Zip Spec      14 (20) '2.0'\n+5A0A2D Extract OS            00 (0) 'MS-DOS'\n+5A0A2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A0A30 Compression Method    0000 (0) 'Stored'\n+5A0A32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A0A36 CRC                   00000000 (0)\n+5A0A3A Compressed Size       00000000 (0)\n+5A0A3E Uncompressed Size     00000000 (0)\n+5A0A42 Filename Length       003A (58)\n+5A0A44 Extra Length          0009 (9)\n+5A0A46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A0A46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A0A80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A0A82   Length              0005 (5)\n+5A0A84   Flags               01 (1) 'Modification'\n+5A0A85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A0A89 PAYLOAD\n+\n+5A24F2 DATA DESCRIPTOR       08074B50 (134695760)\n+5A24F6 CRC                   E768197F (3882359167)\n+5A24FA Compressed Size       00001A69 (6761)\n+5A24FE Uncompressed Size     00001A69 (6761)\n+\n+5A2502 LOCAL HEADER #1617    04034B50 (67324752)\n+5A2506 Extract Zip Spec      14 (20) '2.0'\n+5A2507 Extract OS            00 (0) 'MS-DOS'\n+5A2508 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A250A Compression Method    0000 (0) 'Stored'\n+5A250C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A2510 CRC                   00000000 (0)\n+5A2514 Compressed Size       00000000 (0)\n+5A2518 Uncompressed Size     00000000 (0)\n+5A251C Filename Length       003F (63)\n+5A251E Extra Length          0009 (9)\n+5A2520 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A2520: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A255F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A2561   Length              0005 (5)\n+5A2563   Flags               01 (1) 'Modification'\n+5A2564   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A2568 PAYLOAD\n+\n+5A2B9A DATA DESCRIPTOR       08074B50 (134695760)\n+5A2B9E CRC                   010536C2 (17118914)\n+5A2BA2 Compressed Size       00000632 (1586)\n+5A2BA6 Uncompressed Size     00000632 (1586)\n+\n+5A2BAA LOCAL HEADER #1618    04034B50 (67324752)\n+5A2BAE Extract Zip Spec      14 (20) '2.0'\n+5A2BAF Extract OS            00 (0) 'MS-DOS'\n+5A2BB0 General Purpose Flag  0000 (0)\n+5A2BB2 Compression Method    0000 (0) 'Stored'\n+5A2BB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A2BB8 CRC                   00000000 (0)\n+5A2BBC Compressed Size       00000000 (0)\n+5A2BC0 Uncompressed Size     00000000 (0)\n+5A2BC4 Filename Length       002B (43)\n+5A2BC6 Extra Length          0009 (9)\n+5A2BC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A2BC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A2BF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A2BF5   Length              0005 (5)\n+5A2BF7   Flags               01 (1) 'Modification'\n+5A2BF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5A2BFC LOCAL HEADER #1619    04034B50 (67324752)\n+5A2C00 Extract Zip Spec      14 (20) '2.0'\n+5A2C01 Extract OS            00 (0) 'MS-DOS'\n+5A2C02 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A2C04 Compression Method    0000 (0) 'Stored'\n+5A2C06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A2C0A CRC                   00000000 (0)\n+5A2C0E Compressed Size       00000000 (0)\n+5A2C12 Uncompressed Size     00000000 (0)\n+5A2C16 Filename Length       0048 (72)\n+5A2C18 Extra Length          0009 (9)\n+5A2C1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A2C1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A2C62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A2C64   Length              0005 (5)\n+5A2C66   Flags               01 (1) 'Modification'\n+5A2C67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A2C6B PAYLOAD\n+\n+5A5451 DATA DESCRIPTOR       08074B50 (134695760)\n+5A5455 CRC                   73E7CE8A (1944571530)\n+5A5459 Compressed Size       000027E6 (10214)\n+5A545D Uncompressed Size     000027E6 (10214)\n+\n+5A5461 LOCAL HEADER #1620    04034B50 (67324752)\n+5A5465 Extract Zip Spec      14 (20) '2.0'\n+5A5466 Extract OS            00 (0) 'MS-DOS'\n+5A5467 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A5469 Compression Method    0000 (0) 'Stored'\n+5A546B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A546F CRC                   00000000 (0)\n+5A5473 Compressed Size       00000000 (0)\n+5A5477 Uncompressed Size     00000000 (0)\n+5A547B Filename Length       003C (60)\n+5A547D Extra Length          0009 (9)\n+5A547F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A547F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A54BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A54BD   Length              0005 (5)\n+5A54BF   Flags               01 (1) 'Modification'\n+5A54C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A54C4 PAYLOAD\n+\n+5A7819 DATA DESCRIPTOR       08074B50 (134695760)\n+5A781D CRC                   EADF50E0 (3940503776)\n+5A7821 Compressed Size       00002355 (9045)\n+5A7825 Uncompressed Size     00002355 (9045)\n+\n+5A7829 LOCAL HEADER #1621    04034B50 (67324752)\n+5A782D Extract Zip Spec      14 (20) '2.0'\n+5A782E Extract OS            00 (0) 'MS-DOS'\n+5A782F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A7831 Compression Method    0000 (0) 'Stored'\n+5A7833 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A7837 CRC                   00000000 (0)\n+5A783B Compressed Size       00000000 (0)\n+5A783F Uncompressed Size     00000000 (0)\n+5A7843 Filename Length       003B (59)\n+5A7845 Extra Length          0009 (9)\n+5A7847 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A7847: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A7882 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A7884   Length              0005 (5)\n+5A7886   Flags               01 (1) 'Modification'\n+5A7887   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A788B PAYLOAD\n+\n+5A9DAA DATA DESCRIPTOR       08074B50 (134695760)\n+5A9DAE CRC                   1CB2BCAF (481475759)\n+5A9DB2 Compressed Size       0000251F (9503)\n+5A9DB6 Uncompressed Size     0000251F (9503)\n+\n+5A9DBA LOCAL HEADER #1622    04034B50 (67324752)\n+5A9DBE Extract Zip Spec      14 (20) '2.0'\n+5A9DBF Extract OS            00 (0) 'MS-DOS'\n+5A9DC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5A9DC2 Compression Method    0000 (0) 'Stored'\n+5A9DC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5A9DC8 CRC                   00000000 (0)\n+5A9DCC Compressed Size       00000000 (0)\n+5A9DD0 Uncompressed Size     00000000 (0)\n+5A9DD4 Filename Length       0042 (66)\n+5A9DD6 Extra Length          0009 (9)\n+5A9DD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5A9DD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5A9E1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5A9E1C   Length              0005 (5)\n+5A9E1E   Flags               01 (1) 'Modification'\n+5A9E1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5A9E23 PAYLOAD\n+\n+5AB72D DATA DESCRIPTOR       08074B50 (134695760)\n+5AB731 CRC                   7DE2A421 (2112005153)\n+5AB735 Compressed Size       0000190A (6410)\n+5AB739 Uncompressed Size     0000190A (6410)\n+\n+5AB73D LOCAL HEADER #1623    04034B50 (67324752)\n+5AB741 Extract Zip Spec      14 (20) '2.0'\n+5AB742 Extract OS            00 (0) 'MS-DOS'\n+5AB743 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5AB745 Compression Method    0000 (0) 'Stored'\n+5AB747 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5AB74B CRC                   00000000 (0)\n+5AB74F Compressed Size       00000000 (0)\n+5AB753 Uncompressed Size     00000000 (0)\n+5AB757 Filename Length       0041 (65)\n+5AB759 Extra Length          0009 (9)\n+5AB75B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5AB75B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5AB79C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5AB79E   Length              0005 (5)\n+5AB7A0   Flags               01 (1) 'Modification'\n+5AB7A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5AB7A5 PAYLOAD\n+\n+5AC5E5 DATA DESCRIPTOR       08074B50 (134695760)\n+5AC5E9 CRC                   3BA2E25A (1000530522)\n+5AC5ED Compressed Size       00000E40 (3648)\n+5AC5F1 Uncompressed Size     00000E40 (3648)\n+\n+5AC5F5 LOCAL HEADER #1624    04034B50 (67324752)\n+5AC5F9 Extract Zip Spec      14 (20) '2.0'\n+5AC5FA Extract OS            00 (0) 'MS-DOS'\n+5AC5FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5AC5FD Compression Method    0000 (0) 'Stored'\n+5AC5FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5AC603 CRC                   00000000 (0)\n+5AC607 Compressed Size       00000000 (0)\n+5AC60B Uncompressed Size     00000000 (0)\n+5AC60F Filename Length       0045 (69)\n+5AC611 Extra Length          0009 (9)\n+5AC613 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5AC613: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5AC658 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5AC65A   Length              0005 (5)\n+5AC65C   Flags               01 (1) 'Modification'\n+5AC65D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5AC661 PAYLOAD\n+\n+5AD0FB DATA DESCRIPTOR       08074B50 (134695760)\n+5AD0FF CRC                   1E5B2A86 (509291142)\n+5AD103 Compressed Size       00000A9A (2714)\n+5AD107 Uncompressed Size     00000A9A (2714)\n+\n+5AD10B LOCAL HEADER #1625    04034B50 (67324752)\n+5AD10F Extract Zip Spec      14 (20) '2.0'\n+5AD110 Extract OS            00 (0) 'MS-DOS'\n+5AD111 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5AD113 Compression Method    0000 (0) 'Stored'\n+5AD115 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5AD119 CRC                   00000000 (0)\n+5AD11D Compressed Size       00000000 (0)\n+5AD121 Uncompressed Size     00000000 (0)\n+5AD125 Filename Length       003B (59)\n+5AD127 Extra Length          0009 (9)\n+5AD129 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5AD129: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5AD164 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5AD166   Length              0005 (5)\n+5AD168   Flags               01 (1) 'Modification'\n+5AD169   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5AD16D PAYLOAD\n+\n+5AF13A DATA DESCRIPTOR       08074B50 (134695760)\n+5AF13E CRC                   1CDD10AA (484249770)\n+5AF142 Compressed Size       00001FCD (8141)\n+5AF146 Uncompressed Size     00001FCD (8141)\n+\n+5AF14A LOCAL HEADER #1626    04034B50 (67324752)\n+5AF14E Extract Zip Spec      14 (20) '2.0'\n+5AF14F Extract OS            00 (0) 'MS-DOS'\n+5AF150 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5AF152 Compression Method    0000 (0) 'Stored'\n+5AF154 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5AF158 CRC                   00000000 (0)\n+5AF15C Compressed Size       00000000 (0)\n+5AF160 Uncompressed Size     00000000 (0)\n+5AF164 Filename Length       0042 (66)\n+5AF166 Extra Length          0009 (9)\n+5AF168 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5AF168: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5AF1AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5AF1AC   Length              0005 (5)\n+5AF1AE   Flags               01 (1) 'Modification'\n+5AF1AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5AF1B3 PAYLOAD\n+\n+5B06B8 DATA DESCRIPTOR       08074B50 (134695760)\n+5B06BC CRC                   52A8EAC6 (1386801862)\n+5B06C0 Compressed Size       00001505 (5381)\n+5B06C4 Uncompressed Size     00001505 (5381)\n+\n+5B06C8 LOCAL HEADER #1627    04034B50 (67324752)\n+5B06CC Extract Zip Spec      14 (20) '2.0'\n+5B06CD Extract OS            00 (0) 'MS-DOS'\n+5B06CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B06D0 Compression Method    0000 (0) 'Stored'\n+5B06D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B06D6 CRC                   00000000 (0)\n+5B06DA Compressed Size       00000000 (0)\n+5B06DE Uncompressed Size     00000000 (0)\n+5B06E2 Filename Length       0040 (64)\n+5B06E4 Extra Length          0009 (9)\n+5B06E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B06E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B0726 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B0728   Length              0005 (5)\n+5B072A   Flags               01 (1) 'Modification'\n+5B072B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B072F PAYLOAD\n+\n+5B0DA8 DATA DESCRIPTOR       08074B50 (134695760)\n+5B0DAC CRC                   1AC58108 (449151240)\n+5B0DB0 Compressed Size       00000679 (1657)\n+5B0DB4 Uncompressed Size     00000679 (1657)\n+\n+5B0DB8 LOCAL HEADER #1628    04034B50 (67324752)\n+5B0DBC Extract Zip Spec      14 (20) '2.0'\n+5B0DBD Extract OS            00 (0) 'MS-DOS'\n+5B0DBE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B0DC0 Compression Method    0000 (0) 'Stored'\n+5B0DC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B0DC6 CRC                   00000000 (0)\n+5B0DCA Compressed Size       00000000 (0)\n+5B0DCE Uncompressed Size     00000000 (0)\n+5B0DD2 Filename Length       003B (59)\n+5B0DD4 Extra Length          0009 (9)\n+5B0DD6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B0DD6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B0E11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B0E13   Length              0005 (5)\n+5B0E15   Flags               01 (1) 'Modification'\n+5B0E16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B0E1A PAYLOAD\n+\n+5B2441 DATA DESCRIPTOR       08074B50 (134695760)\n+5B2445 CRC                   377C624A (930898506)\n+5B2449 Compressed Size       00001627 (5671)\n+5B244D Uncompressed Size     00001627 (5671)\n+\n+5B2451 LOCAL HEADER #1629    04034B50 (67324752)\n+5B2455 Extract Zip Spec      14 (20) '2.0'\n+5B2456 Extract OS            00 (0) 'MS-DOS'\n+5B2457 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B2459 Compression Method    0000 (0) 'Stored'\n+5B245B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B245F CRC                   00000000 (0)\n+5B2463 Compressed Size       00000000 (0)\n+5B2467 Uncompressed Size     00000000 (0)\n+5B246B Filename Length       0045 (69)\n+5B246D Extra Length          0009 (9)\n+5B246F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B246F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B24B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B24B6   Length              0005 (5)\n+5B24B8   Flags               01 (1) 'Modification'\n+5B24B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B24BD PAYLOAD\n+\n+5B3C15 DATA DESCRIPTOR       08074B50 (134695760)\n+5B3C19 CRC                   37334079 (926105721)\n+5B3C1D Compressed Size       00001758 (5976)\n+5B3C21 Uncompressed Size     00001758 (5976)\n+\n+5B3C25 LOCAL HEADER #1630    04034B50 (67324752)\n+5B3C29 Extract Zip Spec      14 (20) '2.0'\n+5B3C2A Extract OS            00 (0) 'MS-DOS'\n+5B3C2B General Purpose Flag  0000 (0)\n+5B3C2D Compression Method    0000 (0) 'Stored'\n+5B3C2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B3C33 CRC                   00000000 (0)\n+5B3C37 Compressed Size       00000000 (0)\n+5B3C3B Uncompressed Size     00000000 (0)\n+5B3C3F Filename Length       0033 (51)\n+5B3C41 Extra Length          0009 (9)\n+5B3C43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B3C43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B3C76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B3C78   Length              0005 (5)\n+5B3C7A   Flags               01 (1) 'Modification'\n+5B3C7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5B3C7F LOCAL HEADER #1631    04034B50 (67324752)\n+5B3C83 Extract Zip Spec      14 (20) '2.0'\n+5B3C84 Extract OS            00 (0) 'MS-DOS'\n+5B3C85 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B3C87 Compression Method    0000 (0) 'Stored'\n+5B3C89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B3C8D CRC                   00000000 (0)\n+5B3C91 Compressed Size       00000000 (0)\n+5B3C95 Uncompressed Size     00000000 (0)\n+5B3C99 Filename Length       0047 (71)\n+5B3C9B Extra Length          0009 (9)\n+5B3C9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B3C9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B3CE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B3CE6   Length              0005 (5)\n+5B3CE8   Flags               01 (1) 'Modification'\n+5B3CE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B3CED PAYLOAD\n+\n+5B45B0 DATA DESCRIPTOR       08074B50 (134695760)\n+5B45B4 CRC                   58FEAB57 (1493085015)\n+5B45B8 Compressed Size       000008C3 (2243)\n+5B45BC Uncompressed Size     000008C3 (2243)\n+\n+5B45C0 LOCAL HEADER #1632    04034B50 (67324752)\n+5B45C4 Extract Zip Spec      14 (20) '2.0'\n+5B45C5 Extract OS            00 (0) 'MS-DOS'\n+5B45C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B45C8 Compression Method    0000 (0) 'Stored'\n+5B45CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B45CE CRC                   00000000 (0)\n+5B45D2 Compressed Size       00000000 (0)\n+5B45D6 Uncompressed Size     00000000 (0)\n+5B45DA Filename Length       0048 (72)\n+5B45DC Extra Length          0009 (9)\n+5B45DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B45DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B4626 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B4628   Length              0005 (5)\n+5B462A   Flags               01 (1) 'Modification'\n+5B462B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B462F PAYLOAD\n+\n+5B80E7 DATA DESCRIPTOR       08074B50 (134695760)\n+5B80EB CRC                   A355BCB4 (2740305076)\n+5B80EF Compressed Size       00003AB8 (15032)\n+5B80F3 Uncompressed Size     00003AB8 (15032)\n+\n+5B80F7 LOCAL HEADER #1633    04034B50 (67324752)\n+5B80FB Extract Zip Spec      14 (20) '2.0'\n+5B80FC Extract OS            00 (0) 'MS-DOS'\n+5B80FD General Purpose Flag  0000 (0)\n+5B80FF Compression Method    0000 (0) 'Stored'\n+5B8101 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B8105 CRC                   00000000 (0)\n+5B8109 Compressed Size       00000000 (0)\n+5B810D Uncompressed Size     00000000 (0)\n+5B8111 Filename Length       0020 (32)\n+5B8113 Extra Length          0009 (9)\n+5B8115 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B8115: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B8135 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B8137   Length              0005 (5)\n+5B8139   Flags               01 (1) 'Modification'\n+5B813A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5B813E LOCAL HEADER #1634    04034B50 (67324752)\n+5B8142 Extract Zip Spec      14 (20) '2.0'\n+5B8143 Extract OS            00 (0) 'MS-DOS'\n+5B8144 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B8146 Compression Method    0000 (0) 'Stored'\n+5B8148 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B814C CRC                   00000000 (0)\n+5B8150 Compressed Size       00000000 (0)\n+5B8154 Uncompressed Size     00000000 (0)\n+5B8158 Filename Length       0033 (51)\n+5B815A Extra Length          0009 (9)\n+5B815C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B815C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B818F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B8191   Length              0005 (5)\n+5B8193   Flags               01 (1) 'Modification'\n+5B8194   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B8198 PAYLOAD\n+\n+5B88D0 DATA DESCRIPTOR       08074B50 (134695760)\n+5B88D4 CRC                   C50A75E6 (3305797094)\n+5B88D8 Compressed Size       00000738 (1848)\n+5B88DC Uncompressed Size     00000738 (1848)\n+\n+5B88E0 LOCAL HEADER #1635    04034B50 (67324752)\n+5B88E4 Extract Zip Spec      14 (20) '2.0'\n+5B88E5 Extract OS            00 (0) 'MS-DOS'\n+5B88E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B88E8 Compression Method    0000 (0) 'Stored'\n+5B88EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B88EE CRC                   00000000 (0)\n+5B88F2 Compressed Size       00000000 (0)\n+5B88F6 Uncompressed Size     00000000 (0)\n+5B88FA Filename Length       002D (45)\n+5B88FC Extra Length          0009 (9)\n+5B88FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B88FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B892B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B892D   Length              0005 (5)\n+5B892F   Flags               01 (1) 'Modification'\n+5B8930   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B8934 PAYLOAD\n+\n+5B8F67 DATA DESCRIPTOR       08074B50 (134695760)\n+5B8F6B CRC                   7B898F0A (2072612618)\n+5B8F6F Compressed Size       00000633 (1587)\n+5B8F73 Uncompressed Size     00000633 (1587)\n+\n+5B8F77 LOCAL HEADER #1636    04034B50 (67324752)\n+5B8F7B Extract Zip Spec      14 (20) '2.0'\n+5B8F7C Extract OS            00 (0) 'MS-DOS'\n+5B8F7D General Purpose Flag  0000 (0)\n+5B8F7F Compression Method    0000 (0) 'Stored'\n+5B8F81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B8F85 CRC                   00000000 (0)\n+5B8F89 Compressed Size       00000000 (0)\n+5B8F8D Uncompressed Size     00000000 (0)\n+5B8F91 Filename Length       0024 (36)\n+5B8F93 Extra Length          0009 (9)\n+5B8F95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B8F95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B8FB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B8FBB   Length              0005 (5)\n+5B8FBD   Flags               01 (1) 'Modification'\n+5B8FBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5B8FC2 LOCAL HEADER #1637    04034B50 (67324752)\n+5B8FC6 Extract Zip Spec      14 (20) '2.0'\n+5B8FC7 Extract OS            00 (0) 'MS-DOS'\n+5B8FC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B8FCA Compression Method    0000 (0) 'Stored'\n+5B8FCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B8FD0 CRC                   00000000 (0)\n+5B8FD4 Compressed Size       00000000 (0)\n+5B8FD8 Uncompressed Size     00000000 (0)\n+5B8FDC Filename Length       0036 (54)\n+5B8FDE Extra Length          0009 (9)\n+5B8FE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B8FE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B9016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B9018   Length              0005 (5)\n+5B901A   Flags               01 (1) 'Modification'\n+5B901B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B901F PAYLOAD\n+\n+5B9400 DATA DESCRIPTOR       08074B50 (134695760)\n+5B9404 CRC                   CCE4DF99 (3437551513)\n+5B9408 Compressed Size       000003E1 (993)\n+5B940C Uncompressed Size     000003E1 (993)\n+\n+5B9410 LOCAL HEADER #1638    04034B50 (67324752)\n+5B9414 Extract Zip Spec      14 (20) '2.0'\n+5B9415 Extract OS            00 (0) 'MS-DOS'\n+5B9416 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B9418 Compression Method    0000 (0) 'Stored'\n+5B941A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B941E CRC                   00000000 (0)\n+5B9422 Compressed Size       00000000 (0)\n+5B9426 Uncompressed Size     00000000 (0)\n+5B942A Filename Length       0035 (53)\n+5B942C Extra Length          0009 (9)\n+5B942E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B942E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B9463 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B9465   Length              0005 (5)\n+5B9467   Flags               01 (1) 'Modification'\n+5B9468   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B946C PAYLOAD\n+\n+5B9854 DATA DESCRIPTOR       08074B50 (134695760)\n+5B9858 CRC                   E6F1CD7B (3874606459)\n+5B985C Compressed Size       000003E8 (1000)\n+5B9860 Uncompressed Size     000003E8 (1000)\n+\n+5B9864 LOCAL HEADER #1639    04034B50 (67324752)\n+5B9868 Extract Zip Spec      14 (20) '2.0'\n+5B9869 Extract OS            00 (0) 'MS-DOS'\n+5B986A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5B986C Compression Method    0000 (0) 'Stored'\n+5B986E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5B9872 CRC                   00000000 (0)\n+5B9876 Compressed Size       00000000 (0)\n+5B987A Uncompressed Size     00000000 (0)\n+5B987E Filename Length       0032 (50)\n+5B9880 Extra Length          0009 (9)\n+5B9882 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5B9882: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5B98B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5B98B6   Length              0005 (5)\n+5B98B8   Flags               01 (1) 'Modification'\n+5B98B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5B98BD PAYLOAD\n+\n+5BA0E3 DATA DESCRIPTOR       08074B50 (134695760)\n+5BA0E7 CRC                   7BBE25FE (2076059134)\n+5BA0EB Compressed Size       00000826 (2086)\n+5BA0EF Uncompressed Size     00000826 (2086)\n+\n+5BA0F3 LOCAL HEADER #1640    04034B50 (67324752)\n+5BA0F7 Extract Zip Spec      14 (20) '2.0'\n+5BA0F8 Extract OS            00 (0) 'MS-DOS'\n+5BA0F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BA0FB Compression Method    0000 (0) 'Stored'\n+5BA0FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BA101 CRC                   00000000 (0)\n+5BA105 Compressed Size       00000000 (0)\n+5BA109 Uncompressed Size     00000000 (0)\n+5BA10D Filename Length       0036 (54)\n+5BA10F Extra Length          0009 (9)\n+5BA111 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BA111: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BA147 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BA149   Length              0005 (5)\n+5BA14B   Flags               01 (1) 'Modification'\n+5BA14C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BA150 PAYLOAD\n+\n+5BA593 DATA DESCRIPTOR       08074B50 (134695760)\n+5BA597 CRC                   3E36C27D (1043776125)\n+5BA59B Compressed Size       00000443 (1091)\n+5BA59F Uncompressed Size     00000443 (1091)\n+\n+5BA5A3 LOCAL HEADER #1641    04034B50 (67324752)\n+5BA5A7 Extract Zip Spec      14 (20) '2.0'\n+5BA5A8 Extract OS            00 (0) 'MS-DOS'\n+5BA5A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BA5AB Compression Method    0000 (0) 'Stored'\n+5BA5AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BA5B1 CRC                   00000000 (0)\n+5BA5B5 Compressed Size       00000000 (0)\n+5BA5B9 Uncompressed Size     00000000 (0)\n+5BA5BD Filename Length       0038 (56)\n+5BA5BF Extra Length          0009 (9)\n+5BA5C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BA5C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BA5F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BA5FB   Length              0005 (5)\n+5BA5FD   Flags               01 (1) 'Modification'\n+5BA5FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BA602 PAYLOAD\n+\n+5BAE3C DATA DESCRIPTOR       08074B50 (134695760)\n+5BAE40 CRC                   9FD06EC6 (2681237190)\n+5BAE44 Compressed Size       0000083A (2106)\n+5BAE48 Uncompressed Size     0000083A (2106)\n+\n+5BAE4C LOCAL HEADER #1642    04034B50 (67324752)\n+5BAE50 Extract Zip Spec      14 (20) '2.0'\n+5BAE51 Extract OS            00 (0) 'MS-DOS'\n+5BAE52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BAE54 Compression Method    0000 (0) 'Stored'\n+5BAE56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BAE5A CRC                   00000000 (0)\n+5BAE5E Compressed Size       00000000 (0)\n+5BAE62 Uncompressed Size     00000000 (0)\n+5BAE66 Filename Length       003D (61)\n+5BAE68 Extra Length          0009 (9)\n+5BAE6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BAE6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BAEA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BAEA9   Length              0005 (5)\n+5BAEAB   Flags               01 (1) 'Modification'\n+5BAEAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BAEB0 PAYLOAD\n+\n+5BB373 DATA DESCRIPTOR       08074B50 (134695760)\n+5BB377 CRC                   AA83E634 (2860770868)\n+5BB37B Compressed Size       000004C3 (1219)\n+5BB37F Uncompressed Size     000004C3 (1219)\n+\n+5BB383 LOCAL HEADER #1643    04034B50 (67324752)\n+5BB387 Extract Zip Spec      14 (20) '2.0'\n+5BB388 Extract OS            00 (0) 'MS-DOS'\n+5BB389 General Purpose Flag  0000 (0)\n+5BB38B Compression Method    0000 (0) 'Stored'\n+5BB38D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BB391 CRC                   00000000 (0)\n+5BB395 Compressed Size       00000000 (0)\n+5BB399 Uncompressed Size     00000000 (0)\n+5BB39D Filename Length       002C (44)\n+5BB39F Extra Length          0009 (9)\n+5BB3A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BB3A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BB3CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BB3CF   Length              0005 (5)\n+5BB3D1   Flags               01 (1) 'Modification'\n+5BB3D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5BB3D6 LOCAL HEADER #1644    04034B50 (67324752)\n+5BB3DA Extract Zip Spec      14 (20) '2.0'\n+5BB3DB Extract OS            00 (0) 'MS-DOS'\n+5BB3DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BB3DE Compression Method    0000 (0) 'Stored'\n+5BB3E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BB3E4 CRC                   00000000 (0)\n+5BB3E8 Compressed Size       00000000 (0)\n+5BB3EC Uncompressed Size     00000000 (0)\n+5BB3F0 Filename Length       0047 (71)\n+5BB3F2 Extra Length          0009 (9)\n+5BB3F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BB3F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BB43B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BB43D   Length              0005 (5)\n+5BB43F   Flags               01 (1) 'Modification'\n+5BB440   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BB444 PAYLOAD\n+\n+5BF6F8 DATA DESCRIPTOR       08074B50 (134695760)\n+5BF6FC CRC                   C08A2F01 (3230281473)\n+5BF700 Compressed Size       000042B4 (17076)\n+5BF704 Uncompressed Size     000042B4 (17076)\n+\n+5BF708 LOCAL HEADER #1645    04034B50 (67324752)\n+5BF70C Extract Zip Spec      14 (20) '2.0'\n+5BF70D Extract OS            00 (0) 'MS-DOS'\n+5BF70E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BF710 Compression Method    0000 (0) 'Stored'\n+5BF712 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BF716 CRC                   00000000 (0)\n+5BF71A Compressed Size       00000000 (0)\n+5BF71E Uncompressed Size     00000000 (0)\n+5BF722 Filename Length       004C (76)\n+5BF724 Extra Length          0009 (9)\n+5BF726 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BF726: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BF772 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BF774   Length              0005 (5)\n+5BF776   Flags               01 (1) 'Modification'\n+5BF777   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BF77B PAYLOAD\n+\n+5BFC77 DATA DESCRIPTOR       08074B50 (134695760)\n+5BFC7B CRC                   7A12603D (2048024637)\n+5BFC7F Compressed Size       000004FC (1276)\n+5BFC83 Uncompressed Size     000004FC (1276)\n+\n+5BFC87 LOCAL HEADER #1646    04034B50 (67324752)\n+5BFC8B Extract Zip Spec      14 (20) '2.0'\n+5BFC8C Extract OS            00 (0) 'MS-DOS'\n+5BFC8D General Purpose Flag  0000 (0)\n+5BFC8F Compression Method    0000 (0) 'Stored'\n+5BFC91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BFC95 CRC                   00000000 (0)\n+5BFC99 Compressed Size       00000000 (0)\n+5BFC9D Uncompressed Size     00000000 (0)\n+5BFCA1 Filename Length       002C (44)\n+5BFCA3 Extra Length          0009 (9)\n+5BFCA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BFCA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BFCD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BFCD3   Length              0005 (5)\n+5BFCD5   Flags               01 (1) 'Modification'\n+5BFCD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5BFCDA LOCAL HEADER #1647    04034B50 (67324752)\n+5BFCDE Extract Zip Spec      14 (20) '2.0'\n+5BFCDF Extract OS            00 (0) 'MS-DOS'\n+5BFCE0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5BFCE2 Compression Method    0000 (0) 'Stored'\n+5BFCE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5BFCE8 CRC                   00000000 (0)\n+5BFCEC Compressed Size       00000000 (0)\n+5BFCF0 Uncompressed Size     00000000 (0)\n+5BFCF4 Filename Length       0048 (72)\n+5BFCF6 Extra Length          0009 (9)\n+5BFCF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5BFCF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5BFD40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5BFD42   Length              0005 (5)\n+5BFD44   Flags               01 (1) 'Modification'\n+5BFD45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5BFD49 PAYLOAD\n+\n+5C1D2F DATA DESCRIPTOR       08074B50 (134695760)\n+5C1D33 CRC                   72360194 (1916141972)\n+5C1D37 Compressed Size       00001FE6 (8166)\n+5C1D3B Uncompressed Size     00001FE6 (8166)\n+\n+5C1D3F LOCAL HEADER #1648    04034B50 (67324752)\n+5C1D43 Extract Zip Spec      14 (20) '2.0'\n+5C1D44 Extract OS            00 (0) 'MS-DOS'\n+5C1D45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5C1D47 Compression Method    0000 (0) 'Stored'\n+5C1D49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C1D4D CRC                   00000000 (0)\n+5C1D51 Compressed Size       00000000 (0)\n+5C1D55 Uncompressed Size     00000000 (0)\n+5C1D59 Filename Length       004D (77)\n+5C1D5B Extra Length          0009 (9)\n+5C1D5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C1D5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C1DAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C1DAC   Length              0005 (5)\n+5C1DAE   Flags               01 (1) 'Modification'\n+5C1DAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5C1DB3 PAYLOAD\n+\n+5C39E9 DATA DESCRIPTOR       08074B50 (134695760)\n+5C39ED CRC                   9AC76181 (2596757889)\n+5C39F1 Compressed Size       00001C36 (7222)\n+5C39F5 Uncompressed Size     00001C36 (7222)\n+\n+5C39F9 LOCAL HEADER #1649    04034B50 (67324752)\n+5C39FD Extract Zip Spec      14 (20) '2.0'\n+5C39FE Extract OS            00 (0) 'MS-DOS'\n+5C39FF General Purpose Flag  0000 (0)\n+5C3A01 Compression Method    0000 (0) 'Stored'\n+5C3A03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C3A07 CRC                   00000000 (0)\n+5C3A0B Compressed Size       00000000 (0)\n+5C3A0F Uncompressed Size     00000000 (0)\n+5C3A13 Filename Length       0015 (21)\n+5C3A15 Extra Length          0009 (9)\n+5C3A17 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C3A17: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C3A2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C3A2E   Length              0005 (5)\n+5C3A30   Flags               01 (1) 'Modification'\n+5C3A31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5C3A35 LOCAL HEADER #1650    04034B50 (67324752)\n+5C3A39 Extract Zip Spec      14 (20) '2.0'\n+5C3A3A Extract OS            00 (0) 'MS-DOS'\n+5C3A3B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5C3A3D Compression Method    0000 (0) 'Stored'\n+5C3A3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C3A43 CRC                   00000000 (0)\n+5C3A47 Compressed Size       00000000 (0)\n+5C3A4B Uncompressed Size     00000000 (0)\n+5C3A4F Filename Length       0025 (37)\n+5C3A51 Extra Length          0009 (9)\n+5C3A53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C3A53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C3A78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C3A7A   Length              0005 (5)\n+5C3A7C   Flags               01 (1) 'Modification'\n+5C3A7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5C3A81 PAYLOAD\n+\n+5C5A04 DATA DESCRIPTOR       08074B50 (134695760)\n+5C5A08 CRC                   58855C59 (1485134937)\n+5C5A0C Compressed Size       00001F83 (8067)\n+5C5A10 Uncompressed Size     00001F83 (8067)\n+\n+5C5A14 LOCAL HEADER #1651    04034B50 (67324752)\n+5C5A18 Extract Zip Spec      14 (20) '2.0'\n+5C5A19 Extract OS            00 (0) 'MS-DOS'\n+5C5A1A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5C5A1C Compression Method    0000 (0) 'Stored'\n+5C5A1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C5A22 CRC                   00000000 (0)\n+5C5A26 Compressed Size       00000000 (0)\n+5C5A2A Uncompressed Size     00000000 (0)\n+5C5A2E Filename Length       0026 (38)\n+5C5A30 Extra Length          0009 (9)\n+5C5A32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C5A32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C5A58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C5A5A   Length              0005 (5)\n+5C5A5C   Flags               01 (1) 'Modification'\n+5C5A5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5C5A61 PAYLOAD\n+\n+5C6491 DATA DESCRIPTOR       08074B50 (134695760)\n+5C6495 CRC                   16C36050 (381902928)\n+5C6499 Compressed Size       00000A30 (2608)\n+5C649D Uncompressed Size     00000A30 (2608)\n+\n+5C64A1 LOCAL HEADER #1652    04034B50 (67324752)\n+5C64A5 Extract Zip Spec      14 (20) '2.0'\n+5C64A6 Extract OS            00 (0) 'MS-DOS'\n+5C64A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5C64A9 Compression Method    0000 (0) 'Stored'\n+5C64AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C64AF CRC                   00000000 (0)\n+5C64B3 Compressed Size       00000000 (0)\n+5C64B7 Uncompressed Size     00000000 (0)\n+5C64BB Filename Length       002A (42)\n+5C64BD Extra Length          0009 (9)\n+5C64BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C64BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C64E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C64EB   Length              0005 (5)\n+5C64ED   Flags               01 (1) 'Modification'\n+5C64EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5C64F2 PAYLOAD\n+\n+5C6F68 DATA DESCRIPTOR       08074B50 (134695760)\n+5C6F6C CRC                   28FBE016 (687595542)\n+5C6F70 Compressed Size       00000A76 (2678)\n+5C6F74 Uncompressed Size     00000A76 (2678)\n+\n+5C6F78 LOCAL HEADER #1653    04034B50 (67324752)\n+5C6F7C Extract Zip Spec      14 (20) '2.0'\n+5C6F7D Extract OS            00 (0) 'MS-DOS'\n+5C6F7E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5C6F80 Compression Method    0000 (0) 'Stored'\n+5C6F82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5C6F86 CRC                   00000000 (0)\n+5C6F8A Compressed Size       00000000 (0)\n+5C6F8E Uncompressed Size     00000000 (0)\n+5C6F92 Filename Length       0028 (40)\n+5C6F94 Extra Length          0009 (9)\n+5C6F96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5C6F96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5C6FBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5C6FC0   Length              0005 (5)\n+5C6FC2   Flags               01 (1) 'Modification'\n+5C6FC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5C6FC7 PAYLOAD\n+\n+5CA13C DATA DESCRIPTOR       08074B50 (134695760)\n+5CA140 CRC                   18D15EB0 (416374448)\n+5CA144 Compressed Size       00003175 (12661)\n+5CA148 Uncompressed Size     00003175 (12661)\n+\n+5CA14C LOCAL HEADER #1654    04034B50 (67324752)\n+5CA150 Extract Zip Spec      14 (20) '2.0'\n+5CA151 Extract OS            00 (0) 'MS-DOS'\n+5CA152 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CA154 Compression Method    0000 (0) 'Stored'\n+5CA156 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CA15A CRC                   00000000 (0)\n+5CA15E Compressed Size       00000000 (0)\n+5CA162 Uncompressed Size     00000000 (0)\n+5CA166 Filename Length       002C (44)\n+5CA168 Extra Length          0009 (9)\n+5CA16A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CA16A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CA196 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CA198   Length              0005 (5)\n+5CA19A   Flags               01 (1) 'Modification'\n+5CA19B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CA19F PAYLOAD\n+\n+5CAB4E DATA DESCRIPTOR       08074B50 (134695760)\n+5CAB52 CRC                   C1E775CF (3253171663)\n+5CAB56 Compressed Size       000009AF (2479)\n+5CAB5A Uncompressed Size     000009AF (2479)\n+\n+5CAB5E LOCAL HEADER #1655    04034B50 (67324752)\n+5CAB62 Extract Zip Spec      14 (20) '2.0'\n+5CAB63 Extract OS            00 (0) 'MS-DOS'\n+5CAB64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CAB66 Compression Method    0000 (0) 'Stored'\n+5CAB68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CAB6C CRC                   00000000 (0)\n+5CAB70 Compressed Size       00000000 (0)\n+5CAB74 Uncompressed Size     00000000 (0)\n+5CAB78 Filename Length       0023 (35)\n+5CAB7A Extra Length          0009 (9)\n+5CAB7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CAB7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CAB9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CABA1   Length              0005 (5)\n+5CABA3   Flags               01 (1) 'Modification'\n+5CABA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CABA8 PAYLOAD\n+\n+5CB621 DATA DESCRIPTOR       08074B50 (134695760)\n+5CB625 CRC                   7E97C5F2 (2123875826)\n+5CB629 Compressed Size       00000A79 (2681)\n+5CB62D Uncompressed Size     00000A79 (2681)\n+\n+5CB631 LOCAL HEADER #1656    04034B50 (67324752)\n+5CB635 Extract Zip Spec      14 (20) '2.0'\n+5CB636 Extract OS            00 (0) 'MS-DOS'\n+5CB637 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CB639 Compression Method    0000 (0) 'Stored'\n+5CB63B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CB63F CRC                   00000000 (0)\n+5CB643 Compressed Size       00000000 (0)\n+5CB647 Uncompressed Size     00000000 (0)\n+5CB64B Filename Length       0022 (34)\n+5CB64D Extra Length          0009 (9)\n+5CB64F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CB64F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CB671 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CB673   Length              0005 (5)\n+5CB675   Flags               01 (1) 'Modification'\n+5CB676   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CB67A PAYLOAD\n+\n+5CBBB9 DATA DESCRIPTOR       08074B50 (134695760)\n+5CBBBD CRC                   525AF459 (1381692505)\n+5CBBC1 Compressed Size       0000053F (1343)\n+5CBBC5 Uncompressed Size     0000053F (1343)\n+\n+5CBBC9 LOCAL HEADER #1657    04034B50 (67324752)\n+5CBBCD Extract Zip Spec      14 (20) '2.0'\n+5CBBCE Extract OS            00 (0) 'MS-DOS'\n+5CBBCF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CBBD1 Compression Method    0000 (0) 'Stored'\n+5CBBD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CBBD7 CRC                   00000000 (0)\n+5CBBDB Compressed Size       00000000 (0)\n+5CBBDF Uncompressed Size     00000000 (0)\n+5CBBE3 Filename Length       002A (42)\n+5CBBE5 Extra Length          0009 (9)\n+5CBBE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CBBE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CBC11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CBC13   Length              0005 (5)\n+5CBC15   Flags               01 (1) 'Modification'\n+5CBC16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CBC1A PAYLOAD\n+\n+5CC1C6 DATA DESCRIPTOR       08074B50 (134695760)\n+5CC1CA CRC                   FC32E707 (4231194375)\n+5CC1CE Compressed Size       000005AC (1452)\n+5CC1D2 Uncompressed Size     000005AC (1452)\n+\n+5CC1D6 LOCAL HEADER #1658    04034B50 (67324752)\n+5CC1DA Extract Zip Spec      14 (20) '2.0'\n+5CC1DB Extract OS            00 (0) 'MS-DOS'\n+5CC1DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CC1DE Compression Method    0000 (0) 'Stored'\n+5CC1E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CC1E4 CRC                   00000000 (0)\n+5CC1E8 Compressed Size       00000000 (0)\n+5CC1EC Uncompressed Size     00000000 (0)\n+5CC1F0 Filename Length       0020 (32)\n+5CC1F2 Extra Length          0009 (9)\n+5CC1F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CC1F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CC214 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CC216   Length              0005 (5)\n+5CC218   Flags               01 (1) 'Modification'\n+5CC219   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CC21D PAYLOAD\n+\n+5CCB82 DATA DESCRIPTOR       08074B50 (134695760)\n+5CCB86 CRC                   2EDA0DE9 (786042345)\n+5CCB8A Compressed Size       00000965 (2405)\n+5CCB8E Uncompressed Size     00000965 (2405)\n+\n+5CCB92 LOCAL HEADER #1659    04034B50 (67324752)\n+5CCB96 Extract Zip Spec      14 (20) '2.0'\n+5CCB97 Extract OS            00 (0) 'MS-DOS'\n+5CCB98 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CCB9A Compression Method    0000 (0) 'Stored'\n+5CCB9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CCBA0 CRC                   00000000 (0)\n+5CCBA4 Compressed Size       00000000 (0)\n+5CCBA8 Uncompressed Size     00000000 (0)\n+5CCBAC Filename Length       0027 (39)\n+5CCBAE Extra Length          0009 (9)\n+5CCBB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CCBB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CCBD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CCBD9   Length              0005 (5)\n+5CCBDB   Flags               01 (1) 'Modification'\n+5CCBDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CCBE0 PAYLOAD\n+\n+5CDBC9 DATA DESCRIPTOR       08074B50 (134695760)\n+5CDBCD CRC                   F67FCDE8 (4135570920)\n+5CDBD1 Compressed Size       00000FE9 (4073)\n+5CDBD5 Uncompressed Size     00000FE9 (4073)\n+\n+5CDBD9 LOCAL HEADER #1660    04034B50 (67324752)\n+5CDBDD Extract Zip Spec      14 (20) '2.0'\n+5CDBDE Extract OS            00 (0) 'MS-DOS'\n+5CDBDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CDBE1 Compression Method    0000 (0) 'Stored'\n+5CDBE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CDBE7 CRC                   00000000 (0)\n+5CDBEB Compressed Size       00000000 (0)\n+5CDBEF Uncompressed Size     00000000 (0)\n+5CDBF3 Filename Length       0024 (36)\n+5CDBF5 Extra Length          0009 (9)\n+5CDBF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CDBF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CDC1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CDC1D   Length              0005 (5)\n+5CDC1F   Flags               01 (1) 'Modification'\n+5CDC20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CDC24 PAYLOAD\n+\n+5CEB51 DATA DESCRIPTOR       08074B50 (134695760)\n+5CEB55 CRC                   E5052367 (3842319207)\n+5CEB59 Compressed Size       00000F2D (3885)\n+5CEB5D Uncompressed Size     00000F2D (3885)\n+\n+5CEB61 LOCAL HEADER #1661    04034B50 (67324752)\n+5CEB65 Extract Zip Spec      14 (20) '2.0'\n+5CEB66 Extract OS            00 (0) 'MS-DOS'\n+5CEB67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CEB69 Compression Method    0000 (0) 'Stored'\n+5CEB6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CEB6F CRC                   00000000 (0)\n+5CEB73 Compressed Size       00000000 (0)\n+5CEB77 Uncompressed Size     00000000 (0)\n+5CEB7B Filename Length       0024 (36)\n+5CEB7D Extra Length          0009 (9)\n+5CEB7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CEB7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CEBA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CEBA5   Length              0005 (5)\n+5CEBA7   Flags               01 (1) 'Modification'\n+5CEBA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CEBAC PAYLOAD\n+\n+5CEF3A DATA DESCRIPTOR       08074B50 (134695760)\n+5CEF3E CRC                   1A821C29 (444734505)\n+5CEF42 Compressed Size       0000038E (910)\n+5CEF46 Uncompressed Size     0000038E (910)\n+\n+5CEF4A LOCAL HEADER #1662    04034B50 (67324752)\n+5CEF4E Extract Zip Spec      14 (20) '2.0'\n+5CEF4F Extract OS            00 (0) 'MS-DOS'\n+5CEF50 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CEF52 Compression Method    0000 (0) 'Stored'\n+5CEF54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CEF58 CRC                   00000000 (0)\n+5CEF5C Compressed Size       00000000 (0)\n+5CEF60 Uncompressed Size     00000000 (0)\n+5CEF64 Filename Length       0021 (33)\n+5CEF66 Extra Length          0009 (9)\n+5CEF68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CEF68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CEF89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CEF8B   Length              0005 (5)\n+5CEF8D   Flags               01 (1) 'Modification'\n+5CEF8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CEF92 PAYLOAD\n+\n+5CF563 DATA DESCRIPTOR       08074B50 (134695760)\n+5CF567 CRC                   19B4DE27 (431283751)\n+5CF56B Compressed Size       000005D1 (1489)\n+5CF56F Uncompressed Size     000005D1 (1489)\n+\n+5CF573 LOCAL HEADER #1663    04034B50 (67324752)\n+5CF577 Extract Zip Spec      14 (20) '2.0'\n+5CF578 Extract OS            00 (0) 'MS-DOS'\n+5CF579 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CF57B Compression Method    0000 (0) 'Stored'\n+5CF57D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CF581 CRC                   00000000 (0)\n+5CF585 Compressed Size       00000000 (0)\n+5CF589 Uncompressed Size     00000000 (0)\n+5CF58D Filename Length       0029 (41)\n+5CF58F Extra Length          0009 (9)\n+5CF591 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CF591: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CF5BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CF5BC   Length              0005 (5)\n+5CF5BE   Flags               01 (1) 'Modification'\n+5CF5BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CF5C3 PAYLOAD\n+\n+5CFB5D DATA DESCRIPTOR       08074B50 (134695760)\n+5CFB61 CRC                   D82F1E47 (3626966599)\n+5CFB65 Compressed Size       0000059A (1434)\n+5CFB69 Uncompressed Size     0000059A (1434)\n+\n+5CFB6D LOCAL HEADER #1664    04034B50 (67324752)\n+5CFB71 Extract Zip Spec      14 (20) '2.0'\n+5CFB72 Extract OS            00 (0) 'MS-DOS'\n+5CFB73 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5CFB75 Compression Method    0000 (0) 'Stored'\n+5CFB77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5CFB7B CRC                   00000000 (0)\n+5CFB7F Compressed Size       00000000 (0)\n+5CFB83 Uncompressed Size     00000000 (0)\n+5CFB87 Filename Length       002A (42)\n+5CFB89 Extra Length          0009 (9)\n+5CFB8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5CFB8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5CFBB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5CFBB7   Length              0005 (5)\n+5CFBB9   Flags               01 (1) 'Modification'\n+5CFBBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5CFBBE PAYLOAD\n+\n+5D03C3 DATA DESCRIPTOR       08074B50 (134695760)\n+5D03C7 CRC                   16B7BD77 (381140343)\n+5D03CB Compressed Size       00000805 (2053)\n+5D03CF Uncompressed Size     00000805 (2053)\n+\n+5D03D3 LOCAL HEADER #1665    04034B50 (67324752)\n+5D03D7 Extract Zip Spec      14 (20) '2.0'\n+5D03D8 Extract OS            00 (0) 'MS-DOS'\n+5D03D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D03DB Compression Method    0000 (0) 'Stored'\n+5D03DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D03E1 CRC                   00000000 (0)\n+5D03E5 Compressed Size       00000000 (0)\n+5D03E9 Uncompressed Size     00000000 (0)\n+5D03ED Filename Length       0022 (34)\n+5D03EF Extra Length          0009 (9)\n+5D03F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D03F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D0413 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D0415   Length              0005 (5)\n+5D0417   Flags               01 (1) 'Modification'\n+5D0418   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D041C PAYLOAD\n+\n+5D120C DATA DESCRIPTOR       08074B50 (134695760)\n+5D1210 CRC                   CCB43BAA (3434363818)\n+5D1214 Compressed Size       00000DF0 (3568)\n+5D1218 Uncompressed Size     00000DF0 (3568)\n+\n+5D121C LOCAL HEADER #1666    04034B50 (67324752)\n+5D1220 Extract Zip Spec      14 (20) '2.0'\n+5D1221 Extract OS            00 (0) 'MS-DOS'\n+5D1222 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D1224 Compression Method    0000 (0) 'Stored'\n+5D1226 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D122A CRC                   00000000 (0)\n+5D122E Compressed Size       00000000 (0)\n+5D1232 Uncompressed Size     00000000 (0)\n+5D1236 Filename Length       0028 (40)\n+5D1238 Extra Length          0009 (9)\n+5D123A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D123A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D1262 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D1264   Length              0005 (5)\n+5D1266   Flags               01 (1) 'Modification'\n+5D1267   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D126B PAYLOAD\n+\n+5D1866 DATA DESCRIPTOR       08074B50 (134695760)\n+5D186A CRC                   6D231835 (1831016501)\n+5D186E Compressed Size       000005FB (1531)\n+5D1872 Uncompressed Size     000005FB (1531)\n+\n+5D1876 LOCAL HEADER #1667    04034B50 (67324752)\n+5D187A Extract Zip Spec      14 (20) '2.0'\n+5D187B Extract OS            00 (0) 'MS-DOS'\n+5D187C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D187E Compression Method    0000 (0) 'Stored'\n+5D1880 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D1884 CRC                   00000000 (0)\n+5D1888 Compressed Size       00000000 (0)\n+5D188C Uncompressed Size     00000000 (0)\n+5D1890 Filename Length       0026 (38)\n+5D1892 Extra Length          0009 (9)\n+5D1894 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D1894: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D18BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D18BC   Length              0005 (5)\n+5D18BE   Flags               01 (1) 'Modification'\n+5D18BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D18C3 PAYLOAD\n+\n+5D1FDC DATA DESCRIPTOR       08074B50 (134695760)\n+5D1FE0 CRC                   2A77FFA2 (712507298)\n+5D1FE4 Compressed Size       00000719 (1817)\n+5D1FE8 Uncompressed Size     00000719 (1817)\n+\n+5D1FEC LOCAL HEADER #1668    04034B50 (67324752)\n+5D1FF0 Extract Zip Spec      14 (20) '2.0'\n+5D1FF1 Extract OS            00 (0) 'MS-DOS'\n+5D1FF2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D1FF4 Compression Method    0000 (0) 'Stored'\n+5D1FF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D1FFA CRC                   00000000 (0)\n+5D1FFE Compressed Size       00000000 (0)\n+5D2002 Uncompressed Size     00000000 (0)\n+5D2006 Filename Length       0020 (32)\n+5D2008 Extra Length          0009 (9)\n+5D200A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D200A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D202A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D202C   Length              0005 (5)\n+5D202E   Flags               01 (1) 'Modification'\n+5D202F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D2033 PAYLOAD\n+\n+5D3630 DATA DESCRIPTOR       08074B50 (134695760)\n+5D3634 CRC                   1DB16B63 (498166627)\n+5D3638 Compressed Size       000015FD (5629)\n+5D363C Uncompressed Size     000015FD (5629)\n+\n+5D3640 LOCAL HEADER #1669    04034B50 (67324752)\n+5D3644 Extract Zip Spec      14 (20) '2.0'\n+5D3645 Extract OS            00 (0) 'MS-DOS'\n+5D3646 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D3648 Compression Method    0000 (0) 'Stored'\n+5D364A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D364E CRC                   00000000 (0)\n+5D3652 Compressed Size       00000000 (0)\n+5D3656 Uncompressed Size     00000000 (0)\n+5D365A Filename Length       0026 (38)\n+5D365C Extra Length          0009 (9)\n+5D365E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D365E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D3684 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D3686   Length              0005 (5)\n+5D3688   Flags               01 (1) 'Modification'\n+5D3689   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D368D PAYLOAD\n+\n+5D3C2B DATA DESCRIPTOR       08074B50 (134695760)\n+5D3C2F CRC                   3BFD1345 (1006441285)\n+5D3C33 Compressed Size       0000059E (1438)\n+5D3C37 Uncompressed Size     0000059E (1438)\n+\n+5D3C3B LOCAL HEADER #1670    04034B50 (67324752)\n+5D3C3F Extract Zip Spec      14 (20) '2.0'\n+5D3C40 Extract OS            00 (0) 'MS-DOS'\n+5D3C41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D3C43 Compression Method    0000 (0) 'Stored'\n+5D3C45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D3C49 CRC                   00000000 (0)\n+5D3C4D Compressed Size       00000000 (0)\n+5D3C51 Uncompressed Size     00000000 (0)\n+5D3C55 Filename Length       0024 (36)\n+5D3C57 Extra Length          0009 (9)\n+5D3C59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D3C59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D3C7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D3C7F   Length              0005 (5)\n+5D3C81   Flags               01 (1) 'Modification'\n+5D3C82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D3C86 PAYLOAD\n+\n+5D96E3 DATA DESCRIPTOR       08074B50 (134695760)\n+5D96E7 CRC                   C3E7F091 (3286757521)\n+5D96EB Compressed Size       00005A5D (23133)\n+5D96EF Uncompressed Size     00005A5D (23133)\n+\n+5D96F3 LOCAL HEADER #1671    04034B50 (67324752)\n+5D96F7 Extract Zip Spec      14 (20) '2.0'\n+5D96F8 Extract OS            00 (0) 'MS-DOS'\n+5D96F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5D96FB Compression Method    0000 (0) 'Stored'\n+5D96FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5D9701 CRC                   00000000 (0)\n+5D9705 Compressed Size       00000000 (0)\n+5D9709 Uncompressed Size     00000000 (0)\n+5D970D Filename Length       0026 (38)\n+5D970F Extra Length          0009 (9)\n+5D9711 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5D9711: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5D9737 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5D9739   Length              0005 (5)\n+5D973B   Flags               01 (1) 'Modification'\n+5D973C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5D9740 PAYLOAD\n+\n+5DA4D7 DATA DESCRIPTOR       08074B50 (134695760)\n+5DA4DB CRC                   CCECA2E4 (3438060260)\n+5DA4DF Compressed Size       00000D97 (3479)\n+5DA4E3 Uncompressed Size     00000D97 (3479)\n+\n+5DA4E7 LOCAL HEADER #1672    04034B50 (67324752)\n+5DA4EB Extract Zip Spec      14 (20) '2.0'\n+5DA4EC Extract OS            00 (0) 'MS-DOS'\n+5DA4ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5DA4EF Compression Method    0000 (0) 'Stored'\n+5DA4F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5DA4F5 CRC                   00000000 (0)\n+5DA4F9 Compressed Size       00000000 (0)\n+5DA4FD Uncompressed Size     00000000 (0)\n+5DA501 Filename Length       0027 (39)\n+5DA503 Extra Length          0009 (9)\n+5DA505 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5DA505: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5DA52C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5DA52E   Length              0005 (5)\n+5DA530   Flags               01 (1) 'Modification'\n+5DA531   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5DA535 PAYLOAD\n+\n+5DE178 DATA DESCRIPTOR       08074B50 (134695760)\n+5DE17C CRC                   8DF2CD69 (2381499753)\n+5DE180 Compressed Size       00003C43 (15427)\n+5DE184 Uncompressed Size     00003C43 (15427)\n+\n+5DE188 LOCAL HEADER #1673    04034B50 (67324752)\n+5DE18C Extract Zip Spec      14 (20) '2.0'\n+5DE18D Extract OS            00 (0) 'MS-DOS'\n+5DE18E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5DE190 Compression Method    0000 (0) 'Stored'\n+5DE192 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5DE196 CRC                   00000000 (0)\n+5DE19A Compressed Size       00000000 (0)\n+5DE19E Uncompressed Size     00000000 (0)\n+5DE1A2 Filename Length       0023 (35)\n+5DE1A4 Extra Length          0009 (9)\n+5DE1A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5DE1A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5DE1C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5DE1CB   Length              0005 (5)\n+5DE1CD   Flags               01 (1) 'Modification'\n+5DE1CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5DE1D2 PAYLOAD\n+\n+5E0360 DATA DESCRIPTOR       08074B50 (134695760)\n+5E0364 CRC                   B577D739 (3044529977)\n+5E0368 Compressed Size       0000218E (8590)\n+5E036C Uncompressed Size     0000218E (8590)\n+\n+5E0370 LOCAL HEADER #1674    04034B50 (67324752)\n+5E0374 Extract Zip Spec      14 (20) '2.0'\n+5E0375 Extract OS            00 (0) 'MS-DOS'\n+5E0376 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E0378 Compression Method    0000 (0) 'Stored'\n+5E037A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E037E CRC                   00000000 (0)\n+5E0382 Compressed Size       00000000 (0)\n+5E0386 Uncompressed Size     00000000 (0)\n+5E038A Filename Length       002A (42)\n+5E038C Extra Length          0009 (9)\n+5E038E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E038E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E03B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E03BA   Length              0005 (5)\n+5E03BC   Flags               01 (1) 'Modification'\n+5E03BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E03C1 PAYLOAD\n+\n+5E0F7B DATA DESCRIPTOR       08074B50 (134695760)\n+5E0F7F CRC                   CDFD7CF6 (3455941878)\n+5E0F83 Compressed Size       00000BBA (3002)\n+5E0F87 Uncompressed Size     00000BBA (3002)\n+\n+5E0F8B LOCAL HEADER #1675    04034B50 (67324752)\n+5E0F8F Extract Zip Spec      14 (20) '2.0'\n+5E0F90 Extract OS            00 (0) 'MS-DOS'\n+5E0F91 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E0F93 Compression Method    0000 (0) 'Stored'\n+5E0F95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E0F99 CRC                   00000000 (0)\n+5E0F9D Compressed Size       00000000 (0)\n+5E0FA1 Uncompressed Size     00000000 (0)\n+5E0FA5 Filename Length       0026 (38)\n+5E0FA7 Extra Length          0009 (9)\n+5E0FA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E0FA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E0FCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E0FD1   Length              0005 (5)\n+5E0FD3   Flags               01 (1) 'Modification'\n+5E0FD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E0FD8 PAYLOAD\n+\n+5E149D DATA DESCRIPTOR       08074B50 (134695760)\n+5E14A1 CRC                   32C986CB (852068043)\n+5E14A5 Compressed Size       000004C5 (1221)\n+5E14A9 Uncompressed Size     000004C5 (1221)\n+\n+5E14AD LOCAL HEADER #1676    04034B50 (67324752)\n+5E14B1 Extract Zip Spec      14 (20) '2.0'\n+5E14B2 Extract OS            00 (0) 'MS-DOS'\n+5E14B3 General Purpose Flag  0000 (0)\n+5E14B5 Compression Method    0000 (0) 'Stored'\n+5E14B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E14BB CRC                   00000000 (0)\n+5E14BF Compressed Size       00000000 (0)\n+5E14C3 Uncompressed Size     00000000 (0)\n+5E14C7 Filename Length       001D (29)\n+5E14C9 Extra Length          0009 (9)\n+5E14CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E14CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E14E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E14EA   Length              0005 (5)\n+5E14EC   Flags               01 (1) 'Modification'\n+5E14ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5E14F1 LOCAL HEADER #1677    04034B50 (67324752)\n+5E14F5 Extract Zip Spec      14 (20) '2.0'\n+5E14F6 Extract OS            00 (0) 'MS-DOS'\n+5E14F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E14F9 Compression Method    0000 (0) 'Stored'\n+5E14FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E14FF CRC                   00000000 (0)\n+5E1503 Compressed Size       00000000 (0)\n+5E1507 Uncompressed Size     00000000 (0)\n+5E150B Filename Length       0038 (56)\n+5E150D Extra Length          0009 (9)\n+5E150F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E150F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E1547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E1549   Length              0005 (5)\n+5E154B   Flags               01 (1) 'Modification'\n+5E154C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E1550 PAYLOAD\n+\n+5E1B6B DATA DESCRIPTOR       08074B50 (134695760)\n+5E1B6F CRC                   C25375A4 (3260249508)\n+5E1B73 Compressed Size       0000061B (1563)\n+5E1B77 Uncompressed Size     0000061B (1563)\n+\n+5E1B7B LOCAL HEADER #1678    04034B50 (67324752)\n+5E1B7F Extract Zip Spec      14 (20) '2.0'\n+5E1B80 Extract OS            00 (0) 'MS-DOS'\n+5E1B81 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E1B83 Compression Method    0000 (0) 'Stored'\n+5E1B85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E1B89 CRC                   00000000 (0)\n+5E1B8D Compressed Size       00000000 (0)\n+5E1B91 Uncompressed Size     00000000 (0)\n+5E1B95 Filename Length       0029 (41)\n+5E1B97 Extra Length          0009 (9)\n+5E1B99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E1B99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E1BC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E1BC4   Length              0005 (5)\n+5E1BC6   Flags               01 (1) 'Modification'\n+5E1BC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E1BCB PAYLOAD\n+\n+5E23EF DATA DESCRIPTOR       08074B50 (134695760)\n+5E23F3 CRC                   27965EEA (664166122)\n+5E23F7 Compressed Size       00000824 (2084)\n+5E23FB Uncompressed Size     00000824 (2084)\n+\n+5E23FF LOCAL HEADER #1679    04034B50 (67324752)\n+5E2403 Extract Zip Spec      14 (20) '2.0'\n+5E2404 Extract OS            00 (0) 'MS-DOS'\n+5E2405 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E2407 Compression Method    0000 (0) 'Stored'\n+5E2409 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E240D CRC                   00000000 (0)\n+5E2411 Compressed Size       00000000 (0)\n+5E2415 Uncompressed Size     00000000 (0)\n+5E2419 Filename Length       0030 (48)\n+5E241B Extra Length          0009 (9)\n+5E241D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E241D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E244D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E244F   Length              0005 (5)\n+5E2451   Flags               01 (1) 'Modification'\n+5E2452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E2456 PAYLOAD\n+\n+5E2B48 DATA DESCRIPTOR       08074B50 (134695760)\n+5E2B4C CRC                   5EECCC48 (1592577096)\n+5E2B50 Compressed Size       000006F2 (1778)\n+5E2B54 Uncompressed Size     000006F2 (1778)\n+\n+5E2B58 LOCAL HEADER #1680    04034B50 (67324752)\n+5E2B5C Extract Zip Spec      14 (20) '2.0'\n+5E2B5D Extract OS            00 (0) 'MS-DOS'\n+5E2B5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E2B60 Compression Method    0000 (0) 'Stored'\n+5E2B62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E2B66 CRC                   00000000 (0)\n+5E2B6A Compressed Size       00000000 (0)\n+5E2B6E Uncompressed Size     00000000 (0)\n+5E2B72 Filename Length       002E (46)\n+5E2B74 Extra Length          0009 (9)\n+5E2B76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E2B76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E2BA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E2BA6   Length              0005 (5)\n+5E2BA8   Flags               01 (1) 'Modification'\n+5E2BA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E2BAD PAYLOAD\n+\n+5E3CD0 DATA DESCRIPTOR       08074B50 (134695760)\n+5E3CD4 CRC                   665C4504 (1717323012)\n+5E3CD8 Compressed Size       00001123 (4387)\n+5E3CDC Uncompressed Size     00001123 (4387)\n+\n+5E3CE0 LOCAL HEADER #1681    04034B50 (67324752)\n+5E3CE4 Extract Zip Spec      14 (20) '2.0'\n+5E3CE5 Extract OS            00 (0) 'MS-DOS'\n+5E3CE6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E3CE8 Compression Method    0000 (0) 'Stored'\n+5E3CEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E3CEE CRC                   00000000 (0)\n+5E3CF2 Compressed Size       00000000 (0)\n+5E3CF6 Uncompressed Size     00000000 (0)\n+5E3CFA Filename Length       0035 (53)\n+5E3CFC Extra Length          0009 (9)\n+5E3CFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E3CFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E3D33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E3D35   Length              0005 (5)\n+5E3D37   Flags               01 (1) 'Modification'\n+5E3D38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E3D3C PAYLOAD\n+\n+5E4270 DATA DESCRIPTOR       08074B50 (134695760)\n+5E4274 CRC                   7FA20103 (2141323523)\n+5E4278 Compressed Size       00000534 (1332)\n+5E427C Uncompressed Size     00000534 (1332)\n+\n+5E4280 LOCAL HEADER #1682    04034B50 (67324752)\n+5E4284 Extract Zip Spec      14 (20) '2.0'\n+5E4285 Extract OS            00 (0) 'MS-DOS'\n+5E4286 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E4288 Compression Method    0000 (0) 'Stored'\n+5E428A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E428E CRC                   00000000 (0)\n+5E4292 Compressed Size       00000000 (0)\n+5E4296 Uncompressed Size     00000000 (0)\n+5E429A Filename Length       002B (43)\n+5E429C Extra Length          0009 (9)\n+5E429E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E429E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E42C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E42CB   Length              0005 (5)\n+5E42CD   Flags               01 (1) 'Modification'\n+5E42CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E42D2 PAYLOAD\n+\n+5E4E48 DATA DESCRIPTOR       08074B50 (134695760)\n+5E4E4C CRC                   D4481329 (3561493289)\n+5E4E50 Compressed Size       00000B76 (2934)\n+5E4E54 Uncompressed Size     00000B76 (2934)\n+\n+5E4E58 LOCAL HEADER #1683    04034B50 (67324752)\n+5E4E5C Extract Zip Spec      14 (20) '2.0'\n+5E4E5D Extract OS            00 (0) 'MS-DOS'\n+5E4E5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E4E60 Compression Method    0000 (0) 'Stored'\n+5E4E62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E4E66 CRC                   00000000 (0)\n+5E4E6A Compressed Size       00000000 (0)\n+5E4E6E Uncompressed Size     00000000 (0)\n+5E4E72 Filename Length       002B (43)\n+5E4E74 Extra Length          0009 (9)\n+5E4E76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E4E76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E4EA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E4EA3   Length              0005 (5)\n+5E4EA5   Flags               01 (1) 'Modification'\n+5E4EA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E4EAA PAYLOAD\n+\n+5E5574 DATA DESCRIPTOR       08074B50 (134695760)\n+5E5578 CRC                   2FCAE9BB (801827259)\n+5E557C Compressed Size       000006CA (1738)\n+5E5580 Uncompressed Size     000006CA (1738)\n+\n+5E5584 LOCAL HEADER #1684    04034B50 (67324752)\n+5E5588 Extract Zip Spec      14 (20) '2.0'\n+5E5589 Extract OS            00 (0) 'MS-DOS'\n+5E558A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E558C Compression Method    0000 (0) 'Stored'\n+5E558E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E5592 CRC                   00000000 (0)\n+5E5596 Compressed Size       00000000 (0)\n+5E559A Uncompressed Size     00000000 (0)\n+5E559E Filename Length       002D (45)\n+5E55A0 Extra Length          0009 (9)\n+5E55A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E55A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E55CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E55D1   Length              0005 (5)\n+5E55D3   Flags               01 (1) 'Modification'\n+5E55D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E55D8 PAYLOAD\n+\n+5E5D0A DATA DESCRIPTOR       08074B50 (134695760)\n+5E5D0E CRC                   2EFAFE2D (788201005)\n+5E5D12 Compressed Size       00000732 (1842)\n+5E5D16 Uncompressed Size     00000732 (1842)\n+\n+5E5D1A LOCAL HEADER #1685    04034B50 (67324752)\n+5E5D1E Extract Zip Spec      14 (20) '2.0'\n+5E5D1F Extract OS            00 (0) 'MS-DOS'\n+5E5D20 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E5D22 Compression Method    0000 (0) 'Stored'\n+5E5D24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E5D28 CRC                   00000000 (0)\n+5E5D2C Compressed Size       00000000 (0)\n+5E5D30 Uncompressed Size     00000000 (0)\n+5E5D34 Filename Length       0028 (40)\n+5E5D36 Extra Length          0009 (9)\n+5E5D38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E5D38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E5D60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E5D62   Length              0005 (5)\n+5E5D64   Flags               01 (1) 'Modification'\n+5E5D65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E5D69 PAYLOAD\n+\n+5E613A DATA DESCRIPTOR       08074B50 (134695760)\n+5E613E CRC                   09ED5602 (166548994)\n+5E6142 Compressed Size       000003D1 (977)\n+5E6146 Uncompressed Size     000003D1 (977)\n+\n+5E614A LOCAL HEADER #1686    04034B50 (67324752)\n+5E614E Extract Zip Spec      14 (20) '2.0'\n+5E614F Extract OS            00 (0) 'MS-DOS'\n+5E6150 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E6152 Compression Method    0000 (0) 'Stored'\n+5E6154 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E6158 CRC                   00000000 (0)\n+5E615C Compressed Size       00000000 (0)\n+5E6160 Uncompressed Size     00000000 (0)\n+5E6164 Filename Length       0028 (40)\n+5E6166 Extra Length          0009 (9)\n+5E6168 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E6168: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E6190 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E6192   Length              0005 (5)\n+5E6194   Flags               01 (1) 'Modification'\n+5E6195   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E6199 PAYLOAD\n+\n+5E6E8C DATA DESCRIPTOR       08074B50 (134695760)\n+5E6E90 CRC                   58C25CA8 (1489132712)\n+5E6E94 Compressed Size       00000CF3 (3315)\n+5E6E98 Uncompressed Size     00000CF3 (3315)\n+\n+5E6E9C LOCAL HEADER #1687    04034B50 (67324752)\n+5E6EA0 Extract Zip Spec      14 (20) '2.0'\n+5E6EA1 Extract OS            00 (0) 'MS-DOS'\n+5E6EA2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E6EA4 Compression Method    0000 (0) 'Stored'\n+5E6EA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E6EAA CRC                   00000000 (0)\n+5E6EAE Compressed Size       00000000 (0)\n+5E6EB2 Uncompressed Size     00000000 (0)\n+5E6EB6 Filename Length       002D (45)\n+5E6EB8 Extra Length          0009 (9)\n+5E6EBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E6EBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E6EE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E6EE9   Length              0005 (5)\n+5E6EEB   Flags               01 (1) 'Modification'\n+5E6EEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E6EF0 PAYLOAD\n+\n+5E7F78 DATA DESCRIPTOR       08074B50 (134695760)\n+5E7F7C CRC                   234C96D0 (592221904)\n+5E7F80 Compressed Size       00001088 (4232)\n+5E7F84 Uncompressed Size     00001088 (4232)\n+\n+5E7F88 LOCAL HEADER #1688    04034B50 (67324752)\n+5E7F8C Extract Zip Spec      14 (20) '2.0'\n+5E7F8D Extract OS            00 (0) 'MS-DOS'\n+5E7F8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E7F90 Compression Method    0000 (0) 'Stored'\n+5E7F92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E7F96 CRC                   00000000 (0)\n+5E7F9A Compressed Size       00000000 (0)\n+5E7F9E Uncompressed Size     00000000 (0)\n+5E7FA2 Filename Length       002F (47)\n+5E7FA4 Extra Length          0009 (9)\n+5E7FA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E7FA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E7FD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E7FD7   Length              0005 (5)\n+5E7FD9   Flags               01 (1) 'Modification'\n+5E7FDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E7FDE PAYLOAD\n+\n+5E8737 DATA DESCRIPTOR       08074B50 (134695760)\n+5E873B CRC                   FDB2D35D (4256355165)\n+5E873F Compressed Size       00000759 (1881)\n+5E8743 Uncompressed Size     00000759 (1881)\n+\n+5E8747 LOCAL HEADER #1689    04034B50 (67324752)\n+5E874B Extract Zip Spec      14 (20) '2.0'\n+5E874C Extract OS            00 (0) 'MS-DOS'\n+5E874D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E874F Compression Method    0000 (0) 'Stored'\n+5E8751 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E8755 CRC                   00000000 (0)\n+5E8759 Compressed Size       00000000 (0)\n+5E875D Uncompressed Size     00000000 (0)\n+5E8761 Filename Length       002F (47)\n+5E8763 Extra Length          0009 (9)\n+5E8765 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E8765: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E8794 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E8796   Length              0005 (5)\n+5E8798   Flags               01 (1) 'Modification'\n+5E8799   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E879D PAYLOAD\n+\n+5E8BD2 DATA DESCRIPTOR       08074B50 (134695760)\n+5E8BD6 CRC                   BC987223 (3164107299)\n+5E8BDA Compressed Size       00000435 (1077)\n+5E8BDE Uncompressed Size     00000435 (1077)\n+\n+5E8BE2 LOCAL HEADER #1690    04034B50 (67324752)\n+5E8BE6 Extract Zip Spec      14 (20) '2.0'\n+5E8BE7 Extract OS            00 (0) 'MS-DOS'\n+5E8BE8 General Purpose Flag  0000 (0)\n+5E8BEA Compression Method    0000 (0) 'Stored'\n+5E8BEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E8BF0 CRC                   00000000 (0)\n+5E8BF4 Compressed Size       00000000 (0)\n+5E8BF8 Uncompressed Size     00000000 (0)\n+5E8BFC Filename Length       002A (42)\n+5E8BFE Extra Length          0009 (9)\n+5E8C00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E8C00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E8C2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E8C2C   Length              0005 (5)\n+5E8C2E   Flags               01 (1) 'Modification'\n+5E8C2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5E8C33 LOCAL HEADER #1691    04034B50 (67324752)\n+5E8C37 Extract Zip Spec      14 (20) '2.0'\n+5E8C38 Extract OS            00 (0) 'MS-DOS'\n+5E8C39 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5E8C3B Compression Method    0000 (0) 'Stored'\n+5E8C3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5E8C41 CRC                   00000000 (0)\n+5E8C45 Compressed Size       00000000 (0)\n+5E8C49 Uncompressed Size     00000000 (0)\n+5E8C4D Filename Length       0043 (67)\n+5E8C4F Extra Length          0009 (9)\n+5E8C51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5E8C51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5E8C94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5E8C96   Length              0005 (5)\n+5E8C98   Flags               01 (1) 'Modification'\n+5E8C99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5E8C9D PAYLOAD\n+\n+5EADE3 DATA DESCRIPTOR       08074B50 (134695760)\n+5EADE7 CRC                   91868A4C (2441513548)\n+5EADEB Compressed Size       00002146 (8518)\n+5EADEF Uncompressed Size     00002146 (8518)\n+\n+5EADF3 LOCAL HEADER #1692    04034B50 (67324752)\n+5EADF7 Extract Zip Spec      14 (20) '2.0'\n+5EADF8 Extract OS            00 (0) 'MS-DOS'\n+5EADF9 General Purpose Flag  0000 (0)\n+5EADFB Compression Method    0000 (0) 'Stored'\n+5EADFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EAE01 CRC                   00000000 (0)\n+5EAE05 Compressed Size       00000000 (0)\n+5EAE09 Uncompressed Size     00000000 (0)\n+5EAE0D Filename Length       0031 (49)\n+5EAE0F Extra Length          0009 (9)\n+5EAE11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EAE11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EAE42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EAE44   Length              0005 (5)\n+5EAE46   Flags               01 (1) 'Modification'\n+5EAE47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5EAE4B LOCAL HEADER #1693    04034B50 (67324752)\n+5EAE4F Extract Zip Spec      14 (20) '2.0'\n+5EAE50 Extract OS            00 (0) 'MS-DOS'\n+5EAE51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EAE53 Compression Method    0000 (0) 'Stored'\n+5EAE55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EAE59 CRC                   00000000 (0)\n+5EAE5D Compressed Size       00000000 (0)\n+5EAE61 Uncompressed Size     00000000 (0)\n+5EAE65 Filename Length       0048 (72)\n+5EAE67 Extra Length          0009 (9)\n+5EAE69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EAE69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EAEB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EAEB3   Length              0005 (5)\n+5EAEB5   Flags               01 (1) 'Modification'\n+5EAEB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EAEBA PAYLOAD\n+\n+5EB3EC DATA DESCRIPTOR       08074B50 (134695760)\n+5EB3F0 CRC                   FB552F52 (4216663890)\n+5EB3F4 Compressed Size       00000532 (1330)\n+5EB3F8 Uncompressed Size     00000532 (1330)\n+\n+5EB3FC LOCAL HEADER #1694    04034B50 (67324752)\n+5EB400 Extract Zip Spec      14 (20) '2.0'\n+5EB401 Extract OS            00 (0) 'MS-DOS'\n+5EB402 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EB404 Compression Method    0000 (0) 'Stored'\n+5EB406 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EB40A CRC                   00000000 (0)\n+5EB40E Compressed Size       00000000 (0)\n+5EB412 Uncompressed Size     00000000 (0)\n+5EB416 Filename Length       004F (79)\n+5EB418 Extra Length          0009 (9)\n+5EB41A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EB41A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EB469 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EB46B   Length              0005 (5)\n+5EB46D   Flags               01 (1) 'Modification'\n+5EB46E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EB472 PAYLOAD\n+\n+5EB968 DATA DESCRIPTOR       08074B50 (134695760)\n+5EB96C CRC                   87AAF61F (2276128287)\n+5EB970 Compressed Size       000004F6 (1270)\n+5EB974 Uncompressed Size     000004F6 (1270)\n+\n+5EB978 LOCAL HEADER #1695    04034B50 (67324752)\n+5EB97C Extract Zip Spec      14 (20) '2.0'\n+5EB97D Extract OS            00 (0) 'MS-DOS'\n+5EB97E General Purpose Flag  0000 (0)\n+5EB980 Compression Method    0000 (0) 'Stored'\n+5EB982 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EB986 CRC                   00000000 (0)\n+5EB98A Compressed Size       00000000 (0)\n+5EB98E Uncompressed Size     00000000 (0)\n+5EB992 Filename Length       0033 (51)\n+5EB994 Extra Length          0009 (9)\n+5EB996 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EB996: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EB9C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EB9CB   Length              0005 (5)\n+5EB9CD   Flags               01 (1) 'Modification'\n+5EB9CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5EB9D2 LOCAL HEADER #1696    04034B50 (67324752)\n+5EB9D6 Extract Zip Spec      14 (20) '2.0'\n+5EB9D7 Extract OS            00 (0) 'MS-DOS'\n+5EB9D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EB9DA Compression Method    0000 (0) 'Stored'\n+5EB9DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EB9E0 CRC                   00000000 (0)\n+5EB9E4 Compressed Size       00000000 (0)\n+5EB9E8 Uncompressed Size     00000000 (0)\n+5EB9EC Filename Length       004C (76)\n+5EB9EE Extra Length          0009 (9)\n+5EB9F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EB9F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EBA3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EBA3E   Length              0005 (5)\n+5EBA40   Flags               01 (1) 'Modification'\n+5EBA41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EBA45 PAYLOAD\n+\n+5EBF77 DATA DESCRIPTOR       08074B50 (134695760)\n+5EBF7B CRC                   267D653A (645752122)\n+5EBF7F Compressed Size       00000532 (1330)\n+5EBF83 Uncompressed Size     00000532 (1330)\n+\n+5EBF87 LOCAL HEADER #1697    04034B50 (67324752)\n+5EBF8B Extract Zip Spec      14 (20) '2.0'\n+5EBF8C Extract OS            00 (0) 'MS-DOS'\n+5EBF8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EBF8F Compression Method    0000 (0) 'Stored'\n+5EBF91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EBF95 CRC                   00000000 (0)\n+5EBF99 Compressed Size       00000000 (0)\n+5EBF9D Uncompressed Size     00000000 (0)\n+5EBFA1 Filename Length       0053 (83)\n+5EBFA3 Extra Length          0009 (9)\n+5EBFA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EBFA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EBFF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EBFFA   Length              0005 (5)\n+5EBFFC   Flags               01 (1) 'Modification'\n+5EBFFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EC001 PAYLOAD\n+\n+5EC4FF DATA DESCRIPTOR       08074B50 (134695760)\n+5EC503 CRC                   2179F10E (561639694)\n+5EC507 Compressed Size       000004FE (1278)\n+5EC50B Uncompressed Size     000004FE (1278)\n+\n+5EC50F LOCAL HEADER #1698    04034B50 (67324752)\n+5EC513 Extract Zip Spec      14 (20) '2.0'\n+5EC514 Extract OS            00 (0) 'MS-DOS'\n+5EC515 General Purpose Flag  0000 (0)\n+5EC517 Compression Method    0000 (0) 'Stored'\n+5EC519 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EC51D CRC                   00000000 (0)\n+5EC521 Compressed Size       00000000 (0)\n+5EC525 Uncompressed Size     00000000 (0)\n+5EC529 Filename Length       0031 (49)\n+5EC52B Extra Length          0009 (9)\n+5EC52D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EC52D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EC55E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EC560   Length              0005 (5)\n+5EC562   Flags               01 (1) 'Modification'\n+5EC563   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5EC567 LOCAL HEADER #1699    04034B50 (67324752)\n+5EC56B Extract Zip Spec      14 (20) '2.0'\n+5EC56C Extract OS            00 (0) 'MS-DOS'\n+5EC56D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EC56F Compression Method    0000 (0) 'Stored'\n+5EC571 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EC575 CRC                   00000000 (0)\n+5EC579 Compressed Size       00000000 (0)\n+5EC57D Uncompressed Size     00000000 (0)\n+5EC581 Filename Length       0042 (66)\n+5EC583 Extra Length          0009 (9)\n+5EC585 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EC585: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EC5C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EC5C9   Length              0005 (5)\n+5EC5CB   Flags               01 (1) 'Modification'\n+5EC5CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EC5D0 PAYLOAD\n+\n+5EE802 DATA DESCRIPTOR       08074B50 (134695760)\n+5EE806 CRC                   DEAE7474 (3735975028)\n+5EE80A Compressed Size       00002232 (8754)\n+5EE80E Uncompressed Size     00002232 (8754)\n+\n+5EE812 LOCAL HEADER #1700    04034B50 (67324752)\n+5EE816 Extract Zip Spec      14 (20) '2.0'\n+5EE817 Extract OS            00 (0) 'MS-DOS'\n+5EE818 General Purpose Flag  0000 (0)\n+5EE81A Compression Method    0000 (0) 'Stored'\n+5EE81C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EE820 CRC                   00000000 (0)\n+5EE824 Compressed Size       00000000 (0)\n+5EE828 Uncompressed Size     00000000 (0)\n+5EE82C Filename Length       0037 (55)\n+5EE82E Extra Length          0009 (9)\n+5EE830 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EE830: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EE867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EE869   Length              0005 (5)\n+5EE86B   Flags               01 (1) 'Modification'\n+5EE86C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5EE870 LOCAL HEADER #1701    04034B50 (67324752)\n+5EE874 Extract Zip Spec      14 (20) '2.0'\n+5EE875 Extract OS            00 (0) 'MS-DOS'\n+5EE876 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EE878 Compression Method    0000 (0) 'Stored'\n+5EE87A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EE87E CRC                   00000000 (0)\n+5EE882 Compressed Size       00000000 (0)\n+5EE886 Uncompressed Size     00000000 (0)\n+5EE88A Filename Length       0046 (70)\n+5EE88C Extra Length          0009 (9)\n+5EE88E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EE88E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EE8D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EE8D6   Length              0005 (5)\n+5EE8D8   Flags               01 (1) 'Modification'\n+5EE8D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EE8DD PAYLOAD\n+\n+5EF440 DATA DESCRIPTOR       08074B50 (134695760)\n+5EF444 CRC                   036D4C42 (57494594)\n+5EF448 Compressed Size       00000B63 (2915)\n+5EF44C Uncompressed Size     00000B63 (2915)\n+\n+5EF450 LOCAL HEADER #1702    04034B50 (67324752)\n+5EF454 Extract Zip Spec      14 (20) '2.0'\n+5EF455 Extract OS            00 (0) 'MS-DOS'\n+5EF456 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EF458 Compression Method    0000 (0) 'Stored'\n+5EF45A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EF45E CRC                   00000000 (0)\n+5EF462 Compressed Size       00000000 (0)\n+5EF466 Uncompressed Size     00000000 (0)\n+5EF46A Filename Length       004E (78)\n+5EF46C Extra Length          0009 (9)\n+5EF46E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EF46E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EF4BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EF4BE   Length              0005 (5)\n+5EF4C0   Flags               01 (1) 'Modification'\n+5EF4C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EF4C5 PAYLOAD\n+\n+5EFCCF DATA DESCRIPTOR       08074B50 (134695760)\n+5EFCD3 CRC                   27E35EC9 (669212361)\n+5EFCD7 Compressed Size       0000080A (2058)\n+5EFCDB Uncompressed Size     0000080A (2058)\n+\n+5EFCDF LOCAL HEADER #1703    04034B50 (67324752)\n+5EFCE3 Extract Zip Spec      14 (20) '2.0'\n+5EFCE4 Extract OS            00 (0) 'MS-DOS'\n+5EFCE5 General Purpose Flag  0000 (0)\n+5EFCE7 Compression Method    0000 (0) 'Stored'\n+5EFCE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EFCED CRC                   00000000 (0)\n+5EFCF1 Compressed Size       00000000 (0)\n+5EFCF5 Uncompressed Size     00000000 (0)\n+5EFCF9 Filename Length       0027 (39)\n+5EFCFB Extra Length          0009 (9)\n+5EFCFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EFCFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EFD24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EFD26   Length              0005 (5)\n+5EFD28   Flags               01 (1) 'Modification'\n+5EFD29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5EFD2D LOCAL HEADER #1704    04034B50 (67324752)\n+5EFD31 Extract Zip Spec      14 (20) '2.0'\n+5EFD32 Extract OS            00 (0) 'MS-DOS'\n+5EFD33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5EFD35 Compression Method    0000 (0) 'Stored'\n+5EFD37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5EFD3B CRC                   00000000 (0)\n+5EFD3F Compressed Size       00000000 (0)\n+5EFD43 Uncompressed Size     00000000 (0)\n+5EFD47 Filename Length       003D (61)\n+5EFD49 Extra Length          0009 (9)\n+5EFD4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5EFD4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5EFD88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5EFD8A   Length              0005 (5)\n+5EFD8C   Flags               01 (1) 'Modification'\n+5EFD8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5EFD91 PAYLOAD\n+\n+5F10F2 DATA DESCRIPTOR       08074B50 (134695760)\n+5F10F6 CRC                   A6C08F00 (2797637376)\n+5F10FA Compressed Size       00001361 (4961)\n+5F10FE Uncompressed Size     00001361 (4961)\n+\n+5F1102 LOCAL HEADER #1705    04034B50 (67324752)\n+5F1106 Extract Zip Spec      14 (20) '2.0'\n+5F1107 Extract OS            00 (0) 'MS-DOS'\n+5F1108 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F110A Compression Method    0000 (0) 'Stored'\n+5F110C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F1110 CRC                   00000000 (0)\n+5F1114 Compressed Size       00000000 (0)\n+5F1118 Uncompressed Size     00000000 (0)\n+5F111C Filename Length       003B (59)\n+5F111E Extra Length          0009 (9)\n+5F1120 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F1120: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F115B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F115D   Length              0005 (5)\n+5F115F   Flags               01 (1) 'Modification'\n+5F1160   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F1164 PAYLOAD\n+\n+5F202F DATA DESCRIPTOR       08074B50 (134695760)\n+5F2033 CRC                   FF9ED7FD (4288600061)\n+5F2037 Compressed Size       00000ECB (3787)\n+5F203B Uncompressed Size     00000ECB (3787)\n+\n+5F203F LOCAL HEADER #1706    04034B50 (67324752)\n+5F2043 Extract Zip Spec      14 (20) '2.0'\n+5F2044 Extract OS            00 (0) 'MS-DOS'\n+5F2045 General Purpose Flag  0000 (0)\n+5F2047 Compression Method    0000 (0) 'Stored'\n+5F2049 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F204D CRC                   00000000 (0)\n+5F2051 Compressed Size       00000000 (0)\n+5F2055 Uncompressed Size     00000000 (0)\n+5F2059 Filename Length       0028 (40)\n+5F205B Extra Length          0009 (9)\n+5F205D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F205D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F2085 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F2087   Length              0005 (5)\n+5F2089   Flags               01 (1) 'Modification'\n+5F208A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5F208E LOCAL HEADER #1707    04034B50 (67324752)\n+5F2092 Extract Zip Spec      14 (20) '2.0'\n+5F2093 Extract OS            00 (0) 'MS-DOS'\n+5F2094 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F2096 Compression Method    0000 (0) 'Stored'\n+5F2098 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F209C CRC                   00000000 (0)\n+5F20A0 Compressed Size       00000000 (0)\n+5F20A4 Uncompressed Size     00000000 (0)\n+5F20A8 Filename Length       0050 (80)\n+5F20AA Extra Length          0009 (9)\n+5F20AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F20AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F20FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F20FE   Length              0005 (5)\n+5F2100   Flags               01 (1) 'Modification'\n+5F2101   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F2105 PAYLOAD\n+\n+5F27F1 DATA DESCRIPTOR       08074B50 (134695760)\n+5F27F5 CRC                   33C069B6 (868247990)\n+5F27F9 Compressed Size       000006EC (1772)\n+5F27FD Uncompressed Size     000006EC (1772)\n+\n+5F2801 LOCAL HEADER #1708    04034B50 (67324752)\n+5F2805 Extract Zip Spec      14 (20) '2.0'\n+5F2806 Extract OS            00 (0) 'MS-DOS'\n+5F2807 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F2809 Compression Method    0000 (0) 'Stored'\n+5F280B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F280F CRC                   00000000 (0)\n+5F2813 Compressed Size       00000000 (0)\n+5F2817 Uncompressed Size     00000000 (0)\n+5F281B Filename Length       0045 (69)\n+5F281D Extra Length          0009 (9)\n+5F281F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F281F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F2864 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F2866   Length              0005 (5)\n+5F2868   Flags               01 (1) 'Modification'\n+5F2869   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F286D PAYLOAD\n+\n+5F374F DATA DESCRIPTOR       08074B50 (134695760)\n+5F3753 CRC                   1A3A8FC1 (440045505)\n+5F3757 Compressed Size       00000EE2 (3810)\n+5F375B Uncompressed Size     00000EE2 (3810)\n+\n+5F375F LOCAL HEADER #1709    04034B50 (67324752)\n+5F3763 Extract Zip Spec      14 (20) '2.0'\n+5F3764 Extract OS            00 (0) 'MS-DOS'\n+5F3765 General Purpose Flag  0000 (0)\n+5F3767 Compression Method    0000 (0) 'Stored'\n+5F3769 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F376D CRC                   00000000 (0)\n+5F3771 Compressed Size       00000000 (0)\n+5F3775 Uncompressed Size     00000000 (0)\n+5F3779 Filename Length       0029 (41)\n+5F377B Extra Length          0009 (9)\n+5F377D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F377D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F37A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F37A8   Length              0005 (5)\n+5F37AA   Flags               01 (1) 'Modification'\n+5F37AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5F37AF LOCAL HEADER #1710    04034B50 (67324752)\n+5F37B3 Extract Zip Spec      14 (20) '2.0'\n+5F37B4 Extract OS            00 (0) 'MS-DOS'\n+5F37B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F37B7 Compression Method    0000 (0) 'Stored'\n+5F37B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F37BD CRC                   00000000 (0)\n+5F37C1 Compressed Size       00000000 (0)\n+5F37C5 Uncompressed Size     00000000 (0)\n+5F37C9 Filename Length       0040 (64)\n+5F37CB Extra Length          0009 (9)\n+5F37CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F37CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F380D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F380F   Length              0005 (5)\n+5F3811   Flags               01 (1) 'Modification'\n+5F3812   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F3816 PAYLOAD\n+\n+5F4122 DATA DESCRIPTOR       08074B50 (134695760)\n+5F4126 CRC                   B2FCFE3E (3002924606)\n+5F412A Compressed Size       0000090C (2316)\n+5F412E Uncompressed Size     0000090C (2316)\n+\n+5F4132 LOCAL HEADER #1711    04034B50 (67324752)\n+5F4136 Extract Zip Spec      14 (20) '2.0'\n+5F4137 Extract OS            00 (0) 'MS-DOS'\n+5F4138 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F413A Compression Method    0000 (0) 'Stored'\n+5F413C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F4140 CRC                   00000000 (0)\n+5F4144 Compressed Size       00000000 (0)\n+5F4148 Uncompressed Size     00000000 (0)\n+5F414C Filename Length       004F (79)\n+5F414E Extra Length          0009 (9)\n+5F4150 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F4150: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F419F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F41A1   Length              0005 (5)\n+5F41A3   Flags               01 (1) 'Modification'\n+5F41A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F41A8 PAYLOAD\n+\n+5F4A77 DATA DESCRIPTOR       08074B50 (134695760)\n+5F4A7B CRC                   8FEFC776 (2414856054)\n+5F4A7F Compressed Size       000008CF (2255)\n+5F4A83 Uncompressed Size     000008CF (2255)\n+\n+5F4A87 LOCAL HEADER #1712    04034B50 (67324752)\n+5F4A8B Extract Zip Spec      14 (20) '2.0'\n+5F4A8C Extract OS            00 (0) 'MS-DOS'\n+5F4A8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F4A8F Compression Method    0000 (0) 'Stored'\n+5F4A91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F4A95 CRC                   00000000 (0)\n+5F4A99 Compressed Size       00000000 (0)\n+5F4A9D Uncompressed Size     00000000 (0)\n+5F4AA1 Filename Length       0049 (73)\n+5F4AA3 Extra Length          0009 (9)\n+5F4AA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F4AA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F4AEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F4AF0   Length              0005 (5)\n+5F4AF2   Flags               01 (1) 'Modification'\n+5F4AF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F4AF7 PAYLOAD\n+\n+5F559A DATA DESCRIPTOR       08074B50 (134695760)\n+5F559E CRC                   33BD82F4 (868057844)\n+5F55A2 Compressed Size       00000AA3 (2723)\n+5F55A6 Uncompressed Size     00000AA3 (2723)\n+\n+5F55AA LOCAL HEADER #1713    04034B50 (67324752)\n+5F55AE Extract Zip Spec      14 (20) '2.0'\n+5F55AF Extract OS            00 (0) 'MS-DOS'\n+5F55B0 General Purpose Flag  0000 (0)\n+5F55B2 Compression Method    0000 (0) 'Stored'\n+5F55B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F55B8 CRC                   00000000 (0)\n+5F55BC Compressed Size       00000000 (0)\n+5F55C0 Uncompressed Size     00000000 (0)\n+5F55C4 Filename Length       0029 (41)\n+5F55C6 Extra Length          0009 (9)\n+5F55C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F55C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F55F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F55F3   Length              0005 (5)\n+5F55F5   Flags               01 (1) 'Modification'\n+5F55F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5F55FA LOCAL HEADER #1714    04034B50 (67324752)\n+5F55FE Extract Zip Spec      14 (20) '2.0'\n+5F55FF Extract OS            00 (0) 'MS-DOS'\n+5F5600 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F5602 Compression Method    0000 (0) 'Stored'\n+5F5604 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F5608 CRC                   00000000 (0)\n+5F560C Compressed Size       00000000 (0)\n+5F5610 Uncompressed Size     00000000 (0)\n+5F5614 Filename Length       0041 (65)\n+5F5616 Extra Length          0009 (9)\n+5F5618 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F5618: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F5659 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F565B   Length              0005 (5)\n+5F565D   Flags               01 (1) 'Modification'\n+5F565E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F5662 PAYLOAD\n+\n+5F6723 DATA DESCRIPTOR       08074B50 (134695760)\n+5F6727 CRC                   BCC9CB9D (3167341469)\n+5F672B Compressed Size       000010C1 (4289)\n+5F672F Uncompressed Size     000010C1 (4289)\n+\n+5F6733 LOCAL HEADER #1715    04034B50 (67324752)\n+5F6737 Extract Zip Spec      14 (20) '2.0'\n+5F6738 Extract OS            00 (0) 'MS-DOS'\n+5F6739 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F673B Compression Method    0000 (0) 'Stored'\n+5F673D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F6741 CRC                   00000000 (0)\n+5F6745 Compressed Size       00000000 (0)\n+5F6749 Uncompressed Size     00000000 (0)\n+5F674D Filename Length       0047 (71)\n+5F674F Extra Length          0009 (9)\n+5F6751 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F6751: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F6798 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F679A   Length              0005 (5)\n+5F679C   Flags               01 (1) 'Modification'\n+5F679D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F67A1 PAYLOAD\n+\n+5F7C8C DATA DESCRIPTOR       08074B50 (134695760)\n+5F7C90 CRC                   D501B98C (3573660044)\n+5F7C94 Compressed Size       000014EB (5355)\n+5F7C98 Uncompressed Size     000014EB (5355)\n+\n+5F7C9C LOCAL HEADER #1716    04034B50 (67324752)\n+5F7CA0 Extract Zip Spec      14 (20) '2.0'\n+5F7CA1 Extract OS            00 (0) 'MS-DOS'\n+5F7CA2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F7CA4 Compression Method    0000 (0) 'Stored'\n+5F7CA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F7CAA CRC                   00000000 (0)\n+5F7CAE Compressed Size       00000000 (0)\n+5F7CB2 Uncompressed Size     00000000 (0)\n+5F7CB6 Filename Length       0044 (68)\n+5F7CB8 Extra Length          0009 (9)\n+5F7CBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F7CBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F7CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F7D00   Length              0005 (5)\n+5F7D02   Flags               01 (1) 'Modification'\n+5F7D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F7D07 PAYLOAD\n+\n+5F92F6 DATA DESCRIPTOR       08074B50 (134695760)\n+5F92FA CRC                   5955E637 (1498801719)\n+5F92FE Compressed Size       000015EF (5615)\n+5F9302 Uncompressed Size     000015EF (5615)\n+\n+5F9306 LOCAL HEADER #1717    04034B50 (67324752)\n+5F930A Extract Zip Spec      14 (20) '2.0'\n+5F930B Extract OS            00 (0) 'MS-DOS'\n+5F930C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5F930E Compression Method    0000 (0) 'Stored'\n+5F9310 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5F9314 CRC                   00000000 (0)\n+5F9318 Compressed Size       00000000 (0)\n+5F931C Uncompressed Size     00000000 (0)\n+5F9320 Filename Length       003F (63)\n+5F9322 Extra Length          0009 (9)\n+5F9324 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5F9324: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5F9363 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5F9365   Length              0005 (5)\n+5F9367   Flags               01 (1) 'Modification'\n+5F9368   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5F936C PAYLOAD\n+\n+5FA0BC DATA DESCRIPTOR       08074B50 (134695760)\n+5FA0C0 CRC                   E9DD16E0 (3923580640)\n+5FA0C4 Compressed Size       00000D50 (3408)\n+5FA0C8 Uncompressed Size     00000D50 (3408)\n+\n+5FA0CC LOCAL HEADER #1718    04034B50 (67324752)\n+5FA0D0 Extract Zip Spec      14 (20) '2.0'\n+5FA0D1 Extract OS            00 (0) 'MS-DOS'\n+5FA0D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FA0D4 Compression Method    0000 (0) 'Stored'\n+5FA0D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FA0DA CRC                   00000000 (0)\n+5FA0DE Compressed Size       00000000 (0)\n+5FA0E2 Uncompressed Size     00000000 (0)\n+5FA0E6 Filename Length       0043 (67)\n+5FA0E8 Extra Length          0009 (9)\n+5FA0EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FA0EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FA12D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FA12F   Length              0005 (5)\n+5FA131   Flags               01 (1) 'Modification'\n+5FA132   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FA136 PAYLOAD\n+\n+5FB402 DATA DESCRIPTOR       08074B50 (134695760)\n+5FB406 CRC                   B03BDD5E (2956713310)\n+5FB40A Compressed Size       000012CC (4812)\n+5FB40E Uncompressed Size     000012CC (4812)\n+\n+5FB412 LOCAL HEADER #1719    04034B50 (67324752)\n+5FB416 Extract Zip Spec      14 (20) '2.0'\n+5FB417 Extract OS            00 (0) 'MS-DOS'\n+5FB418 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FB41A Compression Method    0000 (0) 'Stored'\n+5FB41C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FB420 CRC                   00000000 (0)\n+5FB424 Compressed Size       00000000 (0)\n+5FB428 Uncompressed Size     00000000 (0)\n+5FB42C Filename Length       0049 (73)\n+5FB42E Extra Length          0009 (9)\n+5FB430 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FB430: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FB479 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FB47B   Length              0005 (5)\n+5FB47D   Flags               01 (1) 'Modification'\n+5FB47E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FB482 PAYLOAD\n+\n+5FC6BB DATA DESCRIPTOR       08074B50 (134695760)\n+5FC6BF CRC                   0139FCC5 (20577477)\n+5FC6C3 Compressed Size       00001239 (4665)\n+5FC6C7 Uncompressed Size     00001239 (4665)\n+\n+5FC6CB LOCAL HEADER #1720    04034B50 (67324752)\n+5FC6CF Extract Zip Spec      14 (20) '2.0'\n+5FC6D0 Extract OS            00 (0) 'MS-DOS'\n+5FC6D1 General Purpose Flag  0000 (0)\n+5FC6D3 Compression Method    0000 (0) 'Stored'\n+5FC6D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FC6D9 CRC                   00000000 (0)\n+5FC6DD Compressed Size       00000000 (0)\n+5FC6E1 Uncompressed Size     00000000 (0)\n+5FC6E5 Filename Length       0024 (36)\n+5FC6E7 Extra Length          0009 (9)\n+5FC6E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FC6E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FC70D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FC70F   Length              0005 (5)\n+5FC711   Flags               01 (1) 'Modification'\n+5FC712   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+5FC716 LOCAL HEADER #1721    04034B50 (67324752)\n+5FC71A Extract Zip Spec      14 (20) '2.0'\n+5FC71B Extract OS            00 (0) 'MS-DOS'\n+5FC71C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FC71E Compression Method    0000 (0) 'Stored'\n+5FC720 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FC724 CRC                   00000000 (0)\n+5FC728 Compressed Size       00000000 (0)\n+5FC72C Uncompressed Size     00000000 (0)\n+5FC730 Filename Length       0034 (52)\n+5FC732 Extra Length          0009 (9)\n+5FC734 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FC734: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FC768 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FC76A   Length              0005 (5)\n+5FC76C   Flags               01 (1) 'Modification'\n+5FC76D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FC771 PAYLOAD\n+\n+5FD0CA DATA DESCRIPTOR       08074B50 (134695760)\n+5FD0CE CRC                   B70DC735 (3071133493)\n+5FD0D2 Compressed Size       00000959 (2393)\n+5FD0D6 Uncompressed Size     00000959 (2393)\n+\n+5FD0DA LOCAL HEADER #1722    04034B50 (67324752)\n+5FD0DE Extract Zip Spec      14 (20) '2.0'\n+5FD0DF Extract OS            00 (0) 'MS-DOS'\n+5FD0E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FD0E2 Compression Method    0000 (0) 'Stored'\n+5FD0E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FD0E8 CRC                   00000000 (0)\n+5FD0EC Compressed Size       00000000 (0)\n+5FD0F0 Uncompressed Size     00000000 (0)\n+5FD0F4 Filename Length       003B (59)\n+5FD0F6 Extra Length          0009 (9)\n+5FD0F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FD0F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FD133 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FD135   Length              0005 (5)\n+5FD137   Flags               01 (1) 'Modification'\n+5FD138   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FD13C PAYLOAD\n+\n+5FD7CA DATA DESCRIPTOR       08074B50 (134695760)\n+5FD7CE CRC                   5ECBBD86 (1590410630)\n+5FD7D2 Compressed Size       0000068E (1678)\n+5FD7D6 Uncompressed Size     0000068E (1678)\n+\n+5FD7DA LOCAL HEADER #1723    04034B50 (67324752)\n+5FD7DE Extract Zip Spec      14 (20) '2.0'\n+5FD7DF Extract OS            00 (0) 'MS-DOS'\n+5FD7E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FD7E2 Compression Method    0000 (0) 'Stored'\n+5FD7E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FD7E8 CRC                   00000000 (0)\n+5FD7EC Compressed Size       00000000 (0)\n+5FD7F0 Uncompressed Size     00000000 (0)\n+5FD7F4 Filename Length       0038 (56)\n+5FD7F6 Extra Length          0009 (9)\n+5FD7F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FD7F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FD830 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FD832   Length              0005 (5)\n+5FD834   Flags               01 (1) 'Modification'\n+5FD835   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FD839 PAYLOAD\n+\n+5FDEA0 DATA DESCRIPTOR       08074B50 (134695760)\n+5FDEA4 CRC                   0CC7ECCD (214428877)\n+5FDEA8 Compressed Size       00000667 (1639)\n+5FDEAC Uncompressed Size     00000667 (1639)\n+\n+5FDEB0 LOCAL HEADER #1724    04034B50 (67324752)\n+5FDEB4 Extract Zip Spec      14 (20) '2.0'\n+5FDEB5 Extract OS            00 (0) 'MS-DOS'\n+5FDEB6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FDEB8 Compression Method    0000 (0) 'Stored'\n+5FDEBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FDEBE CRC                   00000000 (0)\n+5FDEC2 Compressed Size       00000000 (0)\n+5FDEC6 Uncompressed Size     00000000 (0)\n+5FDECA Filename Length       0038 (56)\n+5FDECC Extra Length          0009 (9)\n+5FDECE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FDECE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FDF06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FDF08   Length              0005 (5)\n+5FDF0A   Flags               01 (1) 'Modification'\n+5FDF0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FDF0F PAYLOAD\n+\n+5FE574 DATA DESCRIPTOR       08074B50 (134695760)\n+5FE578 CRC                   091CC51B (152880411)\n+5FE57C Compressed Size       00000665 (1637)\n+5FE580 Uncompressed Size     00000665 (1637)\n+\n+5FE584 LOCAL HEADER #1725    04034B50 (67324752)\n+5FE588 Extract Zip Spec      14 (20) '2.0'\n+5FE589 Extract OS            00 (0) 'MS-DOS'\n+5FE58A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FE58C Compression Method    0000 (0) 'Stored'\n+5FE58E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FE592 CRC                   00000000 (0)\n+5FE596 Compressed Size       00000000 (0)\n+5FE59A Uncompressed Size     00000000 (0)\n+5FE59E Filename Length       003A (58)\n+5FE5A0 Extra Length          0009 (9)\n+5FE5A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FE5A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FE5DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FE5DE   Length              0005 (5)\n+5FE5E0   Flags               01 (1) 'Modification'\n+5FE5E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FE5E5 PAYLOAD\n+\n+5FEB4F DATA DESCRIPTOR       08074B50 (134695760)\n+5FEB53 CRC                   43B612AE (1136005806)\n+5FEB57 Compressed Size       0000056A (1386)\n+5FEB5B Uncompressed Size     0000056A (1386)\n+\n+5FEB5F LOCAL HEADER #1726    04034B50 (67324752)\n+5FEB63 Extract Zip Spec      14 (20) '2.0'\n+5FEB64 Extract OS            00 (0) 'MS-DOS'\n+5FEB65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FEB67 Compression Method    0000 (0) 'Stored'\n+5FEB69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FEB6D CRC                   00000000 (0)\n+5FEB71 Compressed Size       00000000 (0)\n+5FEB75 Uncompressed Size     00000000 (0)\n+5FEB79 Filename Length       0039 (57)\n+5FEB7B Extra Length          0009 (9)\n+5FEB7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FEB7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FEBB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FEBB8   Length              0005 (5)\n+5FEBBA   Flags               01 (1) 'Modification'\n+5FEBBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FEBBF PAYLOAD\n+\n+5FF22E DATA DESCRIPTOR       08074B50 (134695760)\n+5FF232 CRC                   DDA728F5 (3718719733)\n+5FF236 Compressed Size       0000066F (1647)\n+5FF23A Uncompressed Size     0000066F (1647)\n+\n+5FF23E LOCAL HEADER #1727    04034B50 (67324752)\n+5FF242 Extract Zip Spec      14 (20) '2.0'\n+5FF243 Extract OS            00 (0) 'MS-DOS'\n+5FF244 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FF246 Compression Method    0000 (0) 'Stored'\n+5FF248 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FF24C CRC                   00000000 (0)\n+5FF250 Compressed Size       00000000 (0)\n+5FF254 Uncompressed Size     00000000 (0)\n+5FF258 Filename Length       0037 (55)\n+5FF25A Extra Length          0009 (9)\n+5FF25C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FF25C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FF293 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FF295   Length              0005 (5)\n+5FF297   Flags               01 (1) 'Modification'\n+5FF298   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FF29C PAYLOAD\n+\n+5FF7F6 DATA DESCRIPTOR       08074B50 (134695760)\n+5FF7FA CRC                   389B0984 (949684612)\n+5FF7FE Compressed Size       0000055A (1370)\n+5FF802 Uncompressed Size     0000055A (1370)\n+\n+5FF806 LOCAL HEADER #1728    04034B50 (67324752)\n+5FF80A Extract Zip Spec      14 (20) '2.0'\n+5FF80B Extract OS            00 (0) 'MS-DOS'\n+5FF80C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FF80E Compression Method    0000 (0) 'Stored'\n+5FF810 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FF814 CRC                   00000000 (0)\n+5FF818 Compressed Size       00000000 (0)\n+5FF81C Uncompressed Size     00000000 (0)\n+5FF820 Filename Length       0033 (51)\n+5FF822 Extra Length          0009 (9)\n+5FF824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FF824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FF857 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FF859   Length              0005 (5)\n+5FF85B   Flags               01 (1) 'Modification'\n+5FF85C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FF860 PAYLOAD\n+\n+5FFE5F DATA DESCRIPTOR       08074B50 (134695760)\n+5FFE63 CRC                   792EF15D (2033119581)\n+5FFE67 Compressed Size       000005FF (1535)\n+5FFE6B Uncompressed Size     000005FF (1535)\n+\n+5FFE6F LOCAL HEADER #1729    04034B50 (67324752)\n+5FFE73 Extract Zip Spec      14 (20) '2.0'\n+5FFE74 Extract OS            00 (0) 'MS-DOS'\n+5FFE75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+5FFE77 Compression Method    0000 (0) 'Stored'\n+5FFE79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+5FFE7D CRC                   00000000 (0)\n+5FFE81 Compressed Size       00000000 (0)\n+5FFE85 Uncompressed Size     00000000 (0)\n+5FFE89 Filename Length       0038 (56)\n+5FFE8B Extra Length          0009 (9)\n+5FFE8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x5FFE8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+5FFEC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+5FFEC7   Length              0005 (5)\n+5FFEC9   Flags               01 (1) 'Modification'\n+5FFECA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+5FFECE PAYLOAD\n+\n+60042C DATA DESCRIPTOR       08074B50 (134695760)\n+600430 CRC                   C7E5A422 (3353715746)\n+600434 Compressed Size       0000055E (1374)\n+600438 Uncompressed Size     0000055E (1374)\n+\n+60043C LOCAL HEADER #1730    04034B50 (67324752)\n+600440 Extract Zip Spec      14 (20) '2.0'\n+600441 Extract OS            00 (0) 'MS-DOS'\n+600442 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+600444 Compression Method    0000 (0) 'Stored'\n+600446 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60044A CRC                   00000000 (0)\n+60044E Compressed Size       00000000 (0)\n+600452 Uncompressed Size     00000000 (0)\n+600456 Filename Length       0032 (50)\n+600458 Extra Length          0009 (9)\n+60045A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60045A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60048C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60048E   Length              0005 (5)\n+600490   Flags               01 (1) 'Modification'\n+600491   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+600495 PAYLOAD\n+\n+600A77 DATA DESCRIPTOR       08074B50 (134695760)\n+600A7B CRC                   2C8707FF (747046911)\n+600A7F Compressed Size       000005E2 (1506)\n+600A83 Uncompressed Size     000005E2 (1506)\n+\n+600A87 LOCAL HEADER #1731    04034B50 (67324752)\n+600A8B Extract Zip Spec      14 (20) '2.0'\n+600A8C Extract OS            00 (0) 'MS-DOS'\n+600A8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+600A8F Compression Method    0000 (0) 'Stored'\n+600A91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+600A95 CRC                   00000000 (0)\n+600A99 Compressed Size       00000000 (0)\n+600A9D Uncompressed Size     00000000 (0)\n+600AA1 Filename Length       0036 (54)\n+600AA3 Extra Length          0009 (9)\n+600AA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x600AA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+600ADB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+600ADD   Length              0005 (5)\n+600ADF   Flags               01 (1) 'Modification'\n+600AE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+600AE4 PAYLOAD\n+\n+601653 DATA DESCRIPTOR       08074B50 (134695760)\n+601657 CRC                   B5B9A154 (3048841556)\n+60165B Compressed Size       00000B6F (2927)\n+60165F Uncompressed Size     00000B6F (2927)\n+\n+601663 LOCAL HEADER #1732    04034B50 (67324752)\n+601667 Extract Zip Spec      14 (20) '2.0'\n+601668 Extract OS            00 (0) 'MS-DOS'\n+601669 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60166B Compression Method    0000 (0) 'Stored'\n+60166D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+601671 CRC                   00000000 (0)\n+601675 Compressed Size       00000000 (0)\n+601679 Uncompressed Size     00000000 (0)\n+60167D Filename Length       0032 (50)\n+60167F Extra Length          0009 (9)\n+601681 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x601681: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6016B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6016B5   Length              0005 (5)\n+6016B7   Flags               01 (1) 'Modification'\n+6016B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6016BC PAYLOAD\n+\n+601C88 DATA DESCRIPTOR       08074B50 (134695760)\n+601C8C CRC                   B82C3560 (3089904992)\n+601C90 Compressed Size       000005CC (1484)\n+601C94 Uncompressed Size     000005CC (1484)\n+\n+601C98 LOCAL HEADER #1733    04034B50 (67324752)\n+601C9C Extract Zip Spec      14 (20) '2.0'\n+601C9D Extract OS            00 (0) 'MS-DOS'\n+601C9E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+601CA0 Compression Method    0000 (0) 'Stored'\n+601CA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+601CA6 CRC                   00000000 (0)\n+601CAA Compressed Size       00000000 (0)\n+601CAE Uncompressed Size     00000000 (0)\n+601CB2 Filename Length       0039 (57)\n+601CB4 Extra Length          0009 (9)\n+601CB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x601CB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+601CEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+601CF1   Length              0005 (5)\n+601CF3   Flags               01 (1) 'Modification'\n+601CF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+601CF8 PAYLOAD\n+\n+602367 DATA DESCRIPTOR       08074B50 (134695760)\n+60236B CRC                   F57D6E98 (4118638232)\n+60236F Compressed Size       0000066F (1647)\n+602373 Uncompressed Size     0000066F (1647)\n+\n+602377 LOCAL HEADER #1734    04034B50 (67324752)\n+60237B Extract Zip Spec      14 (20) '2.0'\n+60237C Extract OS            00 (0) 'MS-DOS'\n+60237D General Purpose Flag  0000 (0)\n+60237F Compression Method    0000 (0) 'Stored'\n+602381 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+602385 CRC                   00000000 (0)\n+602389 Compressed Size       00000000 (0)\n+60238D Uncompressed Size     00000000 (0)\n+602391 Filename Length       0024 (36)\n+602393 Extra Length          0009 (9)\n+602395 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x602395: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6023B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6023BB   Length              0005 (5)\n+6023BD   Flags               01 (1) 'Modification'\n+6023BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6023C2 LOCAL HEADER #1735    04034B50 (67324752)\n+6023C6 Extract Zip Spec      14 (20) '2.0'\n+6023C7 Extract OS            00 (0) 'MS-DOS'\n+6023C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6023CA Compression Method    0000 (0) 'Stored'\n+6023CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6023D0 CRC                   00000000 (0)\n+6023D4 Compressed Size       00000000 (0)\n+6023D8 Uncompressed Size     00000000 (0)\n+6023DC Filename Length       0037 (55)\n+6023DE Extra Length          0009 (9)\n+6023E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6023E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+602417 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+602419   Length              0005 (5)\n+60241B   Flags               01 (1) 'Modification'\n+60241C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+602420 PAYLOAD\n+\n+602C53 DATA DESCRIPTOR       08074B50 (134695760)\n+602C57 CRC                   C962C74B (3378693963)\n+602C5B Compressed Size       00000833 (2099)\n+602C5F Uncompressed Size     00000833 (2099)\n+\n+602C63 LOCAL HEADER #1736    04034B50 (67324752)\n+602C67 Extract Zip Spec      14 (20) '2.0'\n+602C68 Extract OS            00 (0) 'MS-DOS'\n+602C69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+602C6B Compression Method    0000 (0) 'Stored'\n+602C6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+602C71 CRC                   00000000 (0)\n+602C75 Compressed Size       00000000 (0)\n+602C79 Uncompressed Size     00000000 (0)\n+602C7D Filename Length       003B (59)\n+602C7F Extra Length          0009 (9)\n+602C81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x602C81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+602CBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+602CBE   Length              0005 (5)\n+602CC0   Flags               01 (1) 'Modification'\n+602CC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+602CC5 PAYLOAD\n+\n+6036F7 DATA DESCRIPTOR       08074B50 (134695760)\n+6036FB CRC                   7A4C73B7 (2051830711)\n+6036FF Compressed Size       00000A32 (2610)\n+603703 Uncompressed Size     00000A32 (2610)\n+\n+603707 LOCAL HEADER #1737    04034B50 (67324752)\n+60370B Extract Zip Spec      14 (20) '2.0'\n+60370C Extract OS            00 (0) 'MS-DOS'\n+60370D General Purpose Flag  0000 (0)\n+60370F Compression Method    0000 (0) 'Stored'\n+603711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+603715 CRC                   00000000 (0)\n+603719 Compressed Size       00000000 (0)\n+60371D Uncompressed Size     00000000 (0)\n+603721 Filename Length       002E (46)\n+603723 Extra Length          0009 (9)\n+603725 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x603725: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+603753 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+603755   Length              0005 (5)\n+603757   Flags               01 (1) 'Modification'\n+603758   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60375C LOCAL HEADER #1738    04034B50 (67324752)\n+603760 Extract Zip Spec      14 (20) '2.0'\n+603761 Extract OS            00 (0) 'MS-DOS'\n+603762 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+603764 Compression Method    0000 (0) 'Stored'\n+603766 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60376A CRC                   00000000 (0)\n+60376E Compressed Size       00000000 (0)\n+603772 Uncompressed Size     00000000 (0)\n+603776 Filename Length       0042 (66)\n+603778 Extra Length          0009 (9)\n+60377A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60377A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6037BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6037BE   Length              0005 (5)\n+6037C0   Flags               01 (1) 'Modification'\n+6037C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6037C5 PAYLOAD\n+\n+606B39 DATA DESCRIPTOR       08074B50 (134695760)\n+606B3D CRC                   BCF898DF (3170408671)\n+606B41 Compressed Size       00003374 (13172)\n+606B45 Uncompressed Size     00003374 (13172)\n+\n+606B49 LOCAL HEADER #1739    04034B50 (67324752)\n+606B4D Extract Zip Spec      14 (20) '2.0'\n+606B4E Extract OS            00 (0) 'MS-DOS'\n+606B4F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+606B51 Compression Method    0000 (0) 'Stored'\n+606B53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+606B57 CRC                   00000000 (0)\n+606B5B Compressed Size       00000000 (0)\n+606B5F Uncompressed Size     00000000 (0)\n+606B63 Filename Length       0049 (73)\n+606B65 Extra Length          0009 (9)\n+606B67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x606B67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+606BB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+606BB2   Length              0005 (5)\n+606BB4   Flags               01 (1) 'Modification'\n+606BB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+606BB9 PAYLOAD\n+\n+6070F9 DATA DESCRIPTOR       08074B50 (134695760)\n+6070FD CRC                   E35903B0 (3814261680)\n+607101 Compressed Size       00000540 (1344)\n+607105 Uncompressed Size     00000540 (1344)\n+\n+607109 LOCAL HEADER #1740    04034B50 (67324752)\n+60710D Extract Zip Spec      14 (20) '2.0'\n+60710E Extract OS            00 (0) 'MS-DOS'\n+60710F General Purpose Flag  0000 (0)\n+607111 Compression Method    0000 (0) 'Stored'\n+607113 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+607117 CRC                   00000000 (0)\n+60711B Compressed Size       00000000 (0)\n+60711F Uncompressed Size     00000000 (0)\n+607123 Filename Length       0035 (53)\n+607125 Extra Length          0009 (9)\n+607127 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x607127: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60715C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60715E   Length              0005 (5)\n+607160   Flags               01 (1) 'Modification'\n+607161   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+607165 LOCAL HEADER #1741    04034B50 (67324752)\n+607169 Extract Zip Spec      14 (20) '2.0'\n+60716A Extract OS            00 (0) 'MS-DOS'\n+60716B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60716D Compression Method    0000 (0) 'Stored'\n+60716F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+607173 CRC                   00000000 (0)\n+607177 Compressed Size       00000000 (0)\n+60717B Uncompressed Size     00000000 (0)\n+60717F Filename Length       0043 (67)\n+607181 Extra Length          0009 (9)\n+607183 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x607183: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6071C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6071C8   Length              0005 (5)\n+6071CA   Flags               01 (1) 'Modification'\n+6071CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6071CF PAYLOAD\n+\n+60777E DATA DESCRIPTOR       08074B50 (134695760)\n+607782 CRC                   9ADBEDAC (2598104492)\n+607786 Compressed Size       000005AF (1455)\n+60778A Uncompressed Size     000005AF (1455)\n+\n+60778E LOCAL HEADER #1742    04034B50 (67324752)\n+607792 Extract Zip Spec      14 (20) '2.0'\n+607793 Extract OS            00 (0) 'MS-DOS'\n+607794 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+607796 Compression Method    0000 (0) 'Stored'\n+607798 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60779C CRC                   00000000 (0)\n+6077A0 Compressed Size       00000000 (0)\n+6077A4 Uncompressed Size     00000000 (0)\n+6077A8 Filename Length       004A (74)\n+6077AA Extra Length          0009 (9)\n+6077AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6077AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6077F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6077F8   Length              0005 (5)\n+6077FA   Flags               01 (1) 'Modification'\n+6077FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6077FF PAYLOAD\n+\n+607E87 DATA DESCRIPTOR       08074B50 (134695760)\n+607E8B CRC                   0E6EFC60 (242154592)\n+607E8F Compressed Size       00000688 (1672)\n+607E93 Uncompressed Size     00000688 (1672)\n+\n+607E97 LOCAL HEADER #1743    04034B50 (67324752)\n+607E9B Extract Zip Spec      14 (20) '2.0'\n+607E9C Extract OS            00 (0) 'MS-DOS'\n+607E9D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+607E9F Compression Method    0000 (0) 'Stored'\n+607EA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+607EA5 CRC                   00000000 (0)\n+607EA9 Compressed Size       00000000 (0)\n+607EAD Uncompressed Size     00000000 (0)\n+607EB1 Filename Length       004A (74)\n+607EB3 Extra Length          0009 (9)\n+607EB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x607EB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+607EFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+607F01   Length              0005 (5)\n+607F03   Flags               01 (1) 'Modification'\n+607F04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+607F08 PAYLOAD\n+\n+6093A2 DATA DESCRIPTOR       08074B50 (134695760)\n+6093A6 CRC                   44A1E13F (1151459647)\n+6093AA Compressed Size       0000149A (5274)\n+6093AE Uncompressed Size     0000149A (5274)\n+\n+6093B2 LOCAL HEADER #1744    04034B50 (67324752)\n+6093B6 Extract Zip Spec      14 (20) '2.0'\n+6093B7 Extract OS            00 (0) 'MS-DOS'\n+6093B8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6093BA Compression Method    0000 (0) 'Stored'\n+6093BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6093C0 CRC                   00000000 (0)\n+6093C4 Compressed Size       00000000 (0)\n+6093C8 Uncompressed Size     00000000 (0)\n+6093CC Filename Length       0047 (71)\n+6093CE Extra Length          0009 (9)\n+6093D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6093D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+609417 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+609419   Length              0005 (5)\n+60941B   Flags               01 (1) 'Modification'\n+60941C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+609420 PAYLOAD\n+\n+6099E9 DATA DESCRIPTOR       08074B50 (134695760)\n+6099ED CRC                   F0BD77BE (4038948798)\n+6099F1 Compressed Size       000005C9 (1481)\n+6099F5 Uncompressed Size     000005C9 (1481)\n+\n+6099F9 LOCAL HEADER #1745    04034B50 (67324752)\n+6099FD Extract Zip Spec      14 (20) '2.0'\n+6099FE Extract OS            00 (0) 'MS-DOS'\n+6099FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+609A01 Compression Method    0000 (0) 'Stored'\n+609A03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+609A07 CRC                   00000000 (0)\n+609A0B Compressed Size       00000000 (0)\n+609A0F Uncompressed Size     00000000 (0)\n+609A13 Filename Length       004E (78)\n+609A15 Extra Length          0009 (9)\n+609A17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x609A17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+609A65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+609A67   Length              0005 (5)\n+609A69   Flags               01 (1) 'Modification'\n+609A6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+609A6E PAYLOAD\n+\n+609FD4 DATA DESCRIPTOR       08074B50 (134695760)\n+609FD8 CRC                   6CA6E955 (1822878037)\n+609FDC Compressed Size       00000566 (1382)\n+609FE0 Uncompressed Size     00000566 (1382)\n+\n+609FE4 LOCAL HEADER #1746    04034B50 (67324752)\n+609FE8 Extract Zip Spec      14 (20) '2.0'\n+609FE9 Extract OS            00 (0) 'MS-DOS'\n+609FEA General Purpose Flag  0000 (0)\n+609FEC Compression Method    0000 (0) 'Stored'\n+609FEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+609FF2 CRC                   00000000 (0)\n+609FF6 Compressed Size       00000000 (0)\n+609FFA Uncompressed Size     00000000 (0)\n+609FFE Filename Length       003B (59)\n+60A000 Extra Length          0009 (9)\n+60A002 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60A002: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60A03D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60A03F   Length              0005 (5)\n+60A041   Flags               01 (1) 'Modification'\n+60A042   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60A046 LOCAL HEADER #1747    04034B50 (67324752)\n+60A04A Extract Zip Spec      14 (20) '2.0'\n+60A04B Extract OS            00 (0) 'MS-DOS'\n+60A04C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60A04E Compression Method    0000 (0) 'Stored'\n+60A050 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60A054 CRC                   00000000 (0)\n+60A058 Compressed Size       00000000 (0)\n+60A05C Uncompressed Size     00000000 (0)\n+60A060 Filename Length       0053 (83)\n+60A062 Extra Length          0009 (9)\n+60A064 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60A064: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60A0B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60A0B9   Length              0005 (5)\n+60A0BB   Flags               01 (1) 'Modification'\n+60A0BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60A0C0 PAYLOAD\n+\n+60A5F2 DATA DESCRIPTOR       08074B50 (134695760)\n+60A5F6 CRC                   1C57CB8B (475515787)\n+60A5FA Compressed Size       00000532 (1330)\n+60A5FE Uncompressed Size     00000532 (1330)\n+\n+60A602 LOCAL HEADER #1748    04034B50 (67324752)\n+60A606 Extract Zip Spec      14 (20) '2.0'\n+60A607 Extract OS            00 (0) 'MS-DOS'\n+60A608 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60A60A Compression Method    0000 (0) 'Stored'\n+60A60C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60A610 CRC                   00000000 (0)\n+60A614 Compressed Size       00000000 (0)\n+60A618 Uncompressed Size     00000000 (0)\n+60A61C Filename Length       0053 (83)\n+60A61E Extra Length          0009 (9)\n+60A620 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60A620: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60A673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60A675   Length              0005 (5)\n+60A677   Flags               01 (1) 'Modification'\n+60A678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60A67C PAYLOAD\n+\n+60AD87 DATA DESCRIPTOR       08074B50 (134695760)\n+60AD8B CRC                   CDABD9DC (3450591708)\n+60AD8F Compressed Size       0000070B (1803)\n+60AD93 Uncompressed Size     0000070B (1803)\n+\n+60AD97 LOCAL HEADER #1749    04034B50 (67324752)\n+60AD9B Extract Zip Spec      14 (20) '2.0'\n+60AD9C Extract OS            00 (0) 'MS-DOS'\n+60AD9D General Purpose Flag  0000 (0)\n+60AD9F Compression Method    0000 (0) 'Stored'\n+60ADA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60ADA5 CRC                   00000000 (0)\n+60ADA9 Compressed Size       00000000 (0)\n+60ADAD Uncompressed Size     00000000 (0)\n+60ADB1 Filename Length       0029 (41)\n+60ADB3 Extra Length          0009 (9)\n+60ADB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60ADB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60ADDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60ADE0   Length              0005 (5)\n+60ADE2   Flags               01 (1) 'Modification'\n+60ADE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60ADE7 LOCAL HEADER #1750    04034B50 (67324752)\n+60ADEB Extract Zip Spec      14 (20) '2.0'\n+60ADEC Extract OS            00 (0) 'MS-DOS'\n+60ADED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60ADEF Compression Method    0000 (0) 'Stored'\n+60ADF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60ADF5 CRC                   00000000 (0)\n+60ADF9 Compressed Size       00000000 (0)\n+60ADFD Uncompressed Size     00000000 (0)\n+60AE01 Filename Length       003F (63)\n+60AE03 Extra Length          0009 (9)\n+60AE05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60AE05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60AE44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60AE46   Length              0005 (5)\n+60AE48   Flags               01 (1) 'Modification'\n+60AE49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60AE4D PAYLOAD\n+\n+60BACD DATA DESCRIPTOR       08074B50 (134695760)\n+60BAD1 CRC                   EF9BEB14 (4019972884)\n+60BAD5 Compressed Size       00000C80 (3200)\n+60BAD9 Uncompressed Size     00000C80 (3200)\n+\n+60BADD LOCAL HEADER #1751    04034B50 (67324752)\n+60BAE1 Extract Zip Spec      14 (20) '2.0'\n+60BAE2 Extract OS            00 (0) 'MS-DOS'\n+60BAE3 General Purpose Flag  0000 (0)\n+60BAE5 Compression Method    0000 (0) 'Stored'\n+60BAE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60BAEB CRC                   00000000 (0)\n+60BAEF Compressed Size       00000000 (0)\n+60BAF3 Uncompressed Size     00000000 (0)\n+60BAF7 Filename Length       0029 (41)\n+60BAF9 Extra Length          0009 (9)\n+60BAFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60BAFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60BB24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60BB26   Length              0005 (5)\n+60BB28   Flags               01 (1) 'Modification'\n+60BB29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60BB2D LOCAL HEADER #1752    04034B50 (67324752)\n+60BB31 Extract Zip Spec      14 (20) '2.0'\n+60BB32 Extract OS            00 (0) 'MS-DOS'\n+60BB33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60BB35 Compression Method    0000 (0) 'Stored'\n+60BB37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60BB3B CRC                   00000000 (0)\n+60BB3F Compressed Size       00000000 (0)\n+60BB43 Uncompressed Size     00000000 (0)\n+60BB47 Filename Length       0042 (66)\n+60BB49 Extra Length          0009 (9)\n+60BB4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60BB4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60BB8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60BB8F   Length              0005 (5)\n+60BB91   Flags               01 (1) 'Modification'\n+60BB92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60BB96 PAYLOAD\n+\n+60CB50 DATA DESCRIPTOR       08074B50 (134695760)\n+60CB54 CRC                   720B0082 (1913323650)\n+60CB58 Compressed Size       00000FBA (4026)\n+60CB5C Uncompressed Size     00000FBA (4026)\n+\n+60CB60 LOCAL HEADER #1753    04034B50 (67324752)\n+60CB64 Extract Zip Spec      14 (20) '2.0'\n+60CB65 Extract OS            00 (0) 'MS-DOS'\n+60CB66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60CB68 Compression Method    0000 (0) 'Stored'\n+60CB6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60CB6E CRC                   00000000 (0)\n+60CB72 Compressed Size       00000000 (0)\n+60CB76 Uncompressed Size     00000000 (0)\n+60CB7A Filename Length       003F (63)\n+60CB7C Extra Length          0009 (9)\n+60CB7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60CB7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60CBBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60CBBF   Length              0005 (5)\n+60CBC1   Flags               01 (1) 'Modification'\n+60CBC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60CBC6 PAYLOAD\n+\n+60D0DD DATA DESCRIPTOR       08074B50 (134695760)\n+60D0E1 CRC                   0EB84276 (246956662)\n+60D0E5 Compressed Size       00000517 (1303)\n+60D0E9 Uncompressed Size     00000517 (1303)\n+\n+60D0ED LOCAL HEADER #1754    04034B50 (67324752)\n+60D0F1 Extract Zip Spec      14 (20) '2.0'\n+60D0F2 Extract OS            00 (0) 'MS-DOS'\n+60D0F3 General Purpose Flag  0000 (0)\n+60D0F5 Compression Method    0000 (0) 'Stored'\n+60D0F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60D0FB CRC                   00000000 (0)\n+60D0FF Compressed Size       00000000 (0)\n+60D103 Uncompressed Size     00000000 (0)\n+60D107 Filename Length       002B (43)\n+60D109 Extra Length          0009 (9)\n+60D10B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60D10B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60D136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60D138   Length              0005 (5)\n+60D13A   Flags               01 (1) 'Modification'\n+60D13B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60D13F LOCAL HEADER #1755    04034B50 (67324752)\n+60D143 Extract Zip Spec      14 (20) '2.0'\n+60D144 Extract OS            00 (0) 'MS-DOS'\n+60D145 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60D147 Compression Method    0000 (0) 'Stored'\n+60D149 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60D14D CRC                   00000000 (0)\n+60D151 Compressed Size       00000000 (0)\n+60D155 Uncompressed Size     00000000 (0)\n+60D159 Filename Length       003C (60)\n+60D15B Extra Length          0009 (9)\n+60D15D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60D15D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60D199 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60D19B   Length              0005 (5)\n+60D19D   Flags               01 (1) 'Modification'\n+60D19E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60D1A2 PAYLOAD\n+\n+60ECD4 DATA DESCRIPTOR       08074B50 (134695760)\n+60ECD8 CRC                   64ACCB0D (1689045773)\n+60ECDC Compressed Size       00001B32 (6962)\n+60ECE0 Uncompressed Size     00001B32 (6962)\n+\n+60ECE4 LOCAL HEADER #1756    04034B50 (67324752)\n+60ECE8 Extract Zip Spec      14 (20) '2.0'\n+60ECE9 Extract OS            00 (0) 'MS-DOS'\n+60ECEA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60ECEC Compression Method    0000 (0) 'Stored'\n+60ECEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60ECF2 CRC                   00000000 (0)\n+60ECF6 Compressed Size       00000000 (0)\n+60ECFA Uncompressed Size     00000000 (0)\n+60ECFE Filename Length       0043 (67)\n+60ED00 Extra Length          0009 (9)\n+60ED02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60ED02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60ED45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60ED47   Length              0005 (5)\n+60ED49   Flags               01 (1) 'Modification'\n+60ED4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60ED4E PAYLOAD\n+\n+60F3E9 DATA DESCRIPTOR       08074B50 (134695760)\n+60F3ED CRC                   72CD5ED3 (1926061779)\n+60F3F1 Compressed Size       0000069B (1691)\n+60F3F5 Uncompressed Size     0000069B (1691)\n+\n+60F3F9 LOCAL HEADER #1757    04034B50 (67324752)\n+60F3FD Extract Zip Spec      14 (20) '2.0'\n+60F3FE Extract OS            00 (0) 'MS-DOS'\n+60F3FF General Purpose Flag  0000 (0)\n+60F401 Compression Method    0000 (0) 'Stored'\n+60F403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60F407 CRC                   00000000 (0)\n+60F40B Compressed Size       00000000 (0)\n+60F40F Uncompressed Size     00000000 (0)\n+60F413 Filename Length       0028 (40)\n+60F415 Extra Length          0009 (9)\n+60F417 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60F417: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60F43F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60F441   Length              0005 (5)\n+60F443   Flags               01 (1) 'Modification'\n+60F444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+60F448 LOCAL HEADER #1758    04034B50 (67324752)\n+60F44C Extract Zip Spec      14 (20) '2.0'\n+60F44D Extract OS            00 (0) 'MS-DOS'\n+60F44E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+60F450 Compression Method    0000 (0) 'Stored'\n+60F452 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+60F456 CRC                   00000000 (0)\n+60F45A Compressed Size       00000000 (0)\n+60F45E Uncompressed Size     00000000 (0)\n+60F462 Filename Length       0036 (54)\n+60F464 Extra Length          0009 (9)\n+60F466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x60F466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+60F49C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+60F49E   Length              0005 (5)\n+60F4A0   Flags               01 (1) 'Modification'\n+60F4A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+60F4A5 PAYLOAD\n+\n+612325 DATA DESCRIPTOR       08074B50 (134695760)\n+612329 CRC                   20710777 (544278391)\n+61232D Compressed Size       00002E80 (11904)\n+612331 Uncompressed Size     00002E80 (11904)\n+\n+612335 LOCAL HEADER #1759    04034B50 (67324752)\n+612339 Extract Zip Spec      14 (20) '2.0'\n+61233A Extract OS            00 (0) 'MS-DOS'\n+61233B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61233D Compression Method    0000 (0) 'Stored'\n+61233F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+612343 CRC                   00000000 (0)\n+612347 Compressed Size       00000000 (0)\n+61234B Uncompressed Size     00000000 (0)\n+61234F Filename Length       003D (61)\n+612351 Extra Length          0009 (9)\n+612353 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x612353: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+612390 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+612392   Length              0005 (5)\n+612394   Flags               01 (1) 'Modification'\n+612395   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+612399 PAYLOAD\n+\n+6128DA DATA DESCRIPTOR       08074B50 (134695760)\n+6128DE CRC                   1A0DB37D (437105533)\n+6128E2 Compressed Size       00000541 (1345)\n+6128E6 Uncompressed Size     00000541 (1345)\n+\n+6128EA LOCAL HEADER #1760    04034B50 (67324752)\n+6128EE Extract Zip Spec      14 (20) '2.0'\n+6128EF Extract OS            00 (0) 'MS-DOS'\n+6128F0 General Purpose Flag  0000 (0)\n+6128F2 Compression Method    0000 (0) 'Stored'\n+6128F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6128F8 CRC                   00000000 (0)\n+6128FC Compressed Size       00000000 (0)\n+612900 Uncompressed Size     00000000 (0)\n+612904 Filename Length       002E (46)\n+612906 Extra Length          0009 (9)\n+612908 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x612908: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+612936 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+612938   Length              0005 (5)\n+61293A   Flags               01 (1) 'Modification'\n+61293B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+61293F LOCAL HEADER #1761    04034B50 (67324752)\n+612943 Extract Zip Spec      14 (20) '2.0'\n+612944 Extract OS            00 (0) 'MS-DOS'\n+612945 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+612947 Compression Method    0000 (0) 'Stored'\n+612949 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61294D CRC                   00000000 (0)\n+612951 Compressed Size       00000000 (0)\n+612955 Uncompressed Size     00000000 (0)\n+612959 Filename Length       0036 (54)\n+61295B Extra Length          0009 (9)\n+61295D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61295D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+612993 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+612995   Length              0005 (5)\n+612997   Flags               01 (1) 'Modification'\n+612998   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61299C PAYLOAD\n+\n+612EC4 DATA DESCRIPTOR       08074B50 (134695760)\n+612EC8 CRC                   20217A79 (539064953)\n+612ECC Compressed Size       00000528 (1320)\n+612ED0 Uncompressed Size     00000528 (1320)\n+\n+612ED4 LOCAL HEADER #1762    04034B50 (67324752)\n+612ED8 Extract Zip Spec      14 (20) '2.0'\n+612ED9 Extract OS            00 (0) 'MS-DOS'\n+612EDA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+612EDC Compression Method    0000 (0) 'Stored'\n+612EDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+612EE2 CRC                   00000000 (0)\n+612EE6 Compressed Size       00000000 (0)\n+612EEA Uncompressed Size     00000000 (0)\n+612EEE Filename Length       0040 (64)\n+612EF0 Extra Length          0009 (9)\n+612EF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x612EF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+612F32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+612F34   Length              0005 (5)\n+612F36   Flags               01 (1) 'Modification'\n+612F37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+612F3B PAYLOAD\n+\n+613A74 DATA DESCRIPTOR       08074B50 (134695760)\n+613A78 CRC                   EFB59934 (4021655860)\n+613A7C Compressed Size       00000B39 (2873)\n+613A80 Uncompressed Size     00000B39 (2873)\n+\n+613A84 LOCAL HEADER #1763    04034B50 (67324752)\n+613A88 Extract Zip Spec      14 (20) '2.0'\n+613A89 Extract OS            00 (0) 'MS-DOS'\n+613A8A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+613A8C Compression Method    0000 (0) 'Stored'\n+613A8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+613A92 CRC                   00000000 (0)\n+613A96 Compressed Size       00000000 (0)\n+613A9A Uncompressed Size     00000000 (0)\n+613A9E Filename Length       0040 (64)\n+613AA0 Extra Length          0009 (9)\n+613AA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x613AA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+613AE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+613AE4   Length              0005 (5)\n+613AE6   Flags               01 (1) 'Modification'\n+613AE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+613AEB PAYLOAD\n+\n+614128 DATA DESCRIPTOR       08074B50 (134695760)\n+61412C CRC                   B7F4FBDF (3086285791)\n+614130 Compressed Size       0000063D (1597)\n+614134 Uncompressed Size     0000063D (1597)\n+\n+614138 LOCAL HEADER #1764    04034B50 (67324752)\n+61413C Extract Zip Spec      14 (20) '2.0'\n+61413D Extract OS            00 (0) 'MS-DOS'\n+61413E General Purpose Flag  0000 (0)\n+614140 Compression Method    0000 (0) 'Stored'\n+614142 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+614146 CRC                   00000000 (0)\n+61414A Compressed Size       00000000 (0)\n+61414E Uncompressed Size     00000000 (0)\n+614152 Filename Length       0025 (37)\n+614154 Extra Length          0009 (9)\n+614156 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x614156: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61417B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61417D   Length              0005 (5)\n+61417F   Flags               01 (1) 'Modification'\n+614180   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+614184 LOCAL HEADER #1765    04034B50 (67324752)\n+614188 Extract Zip Spec      14 (20) '2.0'\n+614189 Extract OS            00 (0) 'MS-DOS'\n+61418A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61418C Compression Method    0000 (0) 'Stored'\n+61418E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+614192 CRC                   00000000 (0)\n+614196 Compressed Size       00000000 (0)\n+61419A Uncompressed Size     00000000 (0)\n+61419E Filename Length       0040 (64)\n+6141A0 Extra Length          0009 (9)\n+6141A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6141A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6141E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6141E4   Length              0005 (5)\n+6141E6   Flags               01 (1) 'Modification'\n+6141E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6141EB PAYLOAD\n+\n+617561 DATA DESCRIPTOR       08074B50 (134695760)\n+617565 CRC                   11C1AD74 (297905524)\n+617569 Compressed Size       00003376 (13174)\n+61756D Uncompressed Size     00003376 (13174)\n+\n+617571 LOCAL HEADER #1766    04034B50 (67324752)\n+617575 Extract Zip Spec      14 (20) '2.0'\n+617576 Extract OS            00 (0) 'MS-DOS'\n+617577 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+617579 Compression Method    0000 (0) 'Stored'\n+61757B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61757F CRC                   00000000 (0)\n+617583 Compressed Size       00000000 (0)\n+617587 Uncompressed Size     00000000 (0)\n+61758B Filename Length       003A (58)\n+61758D Extra Length          0009 (9)\n+61758F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61758F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6175C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6175CB   Length              0005 (5)\n+6175CD   Flags               01 (1) 'Modification'\n+6175CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6175D2 PAYLOAD\n+\n+617B18 DATA DESCRIPTOR       08074B50 (134695760)\n+617B1C CRC                   8CA55593 (2359645587)\n+617B20 Compressed Size       00000546 (1350)\n+617B24 Uncompressed Size     00000546 (1350)\n+\n+617B28 LOCAL HEADER #1767    04034B50 (67324752)\n+617B2C Extract Zip Spec      14 (20) '2.0'\n+617B2D Extract OS            00 (0) 'MS-DOS'\n+617B2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+617B30 Compression Method    0000 (0) 'Stored'\n+617B32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+617B36 CRC                   00000000 (0)\n+617B3A Compressed Size       00000000 (0)\n+617B3E Uncompressed Size     00000000 (0)\n+617B42 Filename Length       0041 (65)\n+617B44 Extra Length          0009 (9)\n+617B46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x617B46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+617B87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+617B89   Length              0005 (5)\n+617B8B   Flags               01 (1) 'Modification'\n+617B8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+617B90 PAYLOAD\n+\n+61826C DATA DESCRIPTOR       08074B50 (134695760)\n+618270 CRC                   BDD5C58A (3184903562)\n+618274 Compressed Size       000006DC (1756)\n+618278 Uncompressed Size     000006DC (1756)\n+\n+61827C LOCAL HEADER #1768    04034B50 (67324752)\n+618280 Extract Zip Spec      14 (20) '2.0'\n+618281 Extract OS            00 (0) 'MS-DOS'\n+618282 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+618284 Compression Method    0000 (0) 'Stored'\n+618286 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61828A CRC                   00000000 (0)\n+61828E Compressed Size       00000000 (0)\n+618292 Uncompressed Size     00000000 (0)\n+618296 Filename Length       003A (58)\n+618298 Extra Length          0009 (9)\n+61829A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61829A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6182D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6182D6   Length              0005 (5)\n+6182D8   Flags               01 (1) 'Modification'\n+6182D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6182DD PAYLOAD\n+\n+6187F5 DATA DESCRIPTOR       08074B50 (134695760)\n+6187F9 CRC                   DBE638BA (3689298106)\n+6187FD Compressed Size       00000518 (1304)\n+618801 Uncompressed Size     00000518 (1304)\n+\n+618805 LOCAL HEADER #1769    04034B50 (67324752)\n+618809 Extract Zip Spec      14 (20) '2.0'\n+61880A Extract OS            00 (0) 'MS-DOS'\n+61880B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61880D Compression Method    0000 (0) 'Stored'\n+61880F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+618813 CRC                   00000000 (0)\n+618817 Compressed Size       00000000 (0)\n+61881B Uncompressed Size     00000000 (0)\n+61881F Filename Length       0041 (65)\n+618821 Extra Length          0009 (9)\n+618823 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x618823: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+618864 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+618866   Length              0005 (5)\n+618868   Flags               01 (1) 'Modification'\n+618869   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61886D PAYLOAD\n+\n+619C8D DATA DESCRIPTOR       08074B50 (134695760)\n+619C91 CRC                   4263898A (1113819530)\n+619C95 Compressed Size       00001420 (5152)\n+619C99 Uncompressed Size     00001420 (5152)\n+\n+619C9D LOCAL HEADER #1770    04034B50 (67324752)\n+619CA1 Extract Zip Spec      14 (20) '2.0'\n+619CA2 Extract OS            00 (0) 'MS-DOS'\n+619CA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+619CA5 Compression Method    0000 (0) 'Stored'\n+619CA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+619CAB CRC                   00000000 (0)\n+619CAF Compressed Size       00000000 (0)\n+619CB3 Uncompressed Size     00000000 (0)\n+619CB7 Filename Length       0036 (54)\n+619CB9 Extra Length          0009 (9)\n+619CBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x619CBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+619CF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+619CF3   Length              0005 (5)\n+619CF5   Flags               01 (1) 'Modification'\n+619CF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+619CFA PAYLOAD\n+\n+61B576 DATA DESCRIPTOR       08074B50 (134695760)\n+61B57A CRC                   61647F39 (1633976121)\n+61B57E Compressed Size       0000187C (6268)\n+61B582 Uncompressed Size     0000187C (6268)\n+\n+61B586 LOCAL HEADER #1771    04034B50 (67324752)\n+61B58A Extract Zip Spec      14 (20) '2.0'\n+61B58B Extract OS            00 (0) 'MS-DOS'\n+61B58C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61B58E Compression Method    0000 (0) 'Stored'\n+61B590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61B594 CRC                   00000000 (0)\n+61B598 Compressed Size       00000000 (0)\n+61B59C Uncompressed Size     00000000 (0)\n+61B5A0 Filename Length       0039 (57)\n+61B5A2 Extra Length          0009 (9)\n+61B5A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61B5A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61B5DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61B5DF   Length              0005 (5)\n+61B5E1   Flags               01 (1) 'Modification'\n+61B5E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61B5E6 PAYLOAD\n+\n+61BB3F DATA DESCRIPTOR       08074B50 (134695760)\n+61BB43 CRC                   48FD2377 (1224549239)\n+61BB47 Compressed Size       00000559 (1369)\n+61BB4B Uncompressed Size     00000559 (1369)\n+\n+61BB4F LOCAL HEADER #1772    04034B50 (67324752)\n+61BB53 Extract Zip Spec      14 (20) '2.0'\n+61BB54 Extract OS            00 (0) 'MS-DOS'\n+61BB55 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61BB57 Compression Method    0000 (0) 'Stored'\n+61BB59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61BB5D CRC                   00000000 (0)\n+61BB61 Compressed Size       00000000 (0)\n+61BB65 Uncompressed Size     00000000 (0)\n+61BB69 Filename Length       0040 (64)\n+61BB6B Extra Length          0009 (9)\n+61BB6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61BB6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61BBAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61BBAF   Length              0005 (5)\n+61BBB1   Flags               01 (1) 'Modification'\n+61BBB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61BBB6 PAYLOAD\n+\n+61D68D DATA DESCRIPTOR       08074B50 (134695760)\n+61D691 CRC                   DAA0DBC8 (3667975112)\n+61D695 Compressed Size       00001AD7 (6871)\n+61D699 Uncompressed Size     00001AD7 (6871)\n+\n+61D69D LOCAL HEADER #1773    04034B50 (67324752)\n+61D6A1 Extract Zip Spec      14 (20) '2.0'\n+61D6A2 Extract OS            00 (0) 'MS-DOS'\n+61D6A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61D6A5 Compression Method    0000 (0) 'Stored'\n+61D6A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61D6AB CRC                   00000000 (0)\n+61D6AF Compressed Size       00000000 (0)\n+61D6B3 Uncompressed Size     00000000 (0)\n+61D6B7 Filename Length       0039 (57)\n+61D6B9 Extra Length          0009 (9)\n+61D6BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61D6BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61D6F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61D6F6   Length              0005 (5)\n+61D6F8   Flags               01 (1) 'Modification'\n+61D6F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61D6FD PAYLOAD\n+\n+61DC56 DATA DESCRIPTOR       08074B50 (134695760)\n+61DC5A CRC                   887DA686 (2289936006)\n+61DC5E Compressed Size       00000559 (1369)\n+61DC62 Uncompressed Size     00000559 (1369)\n+\n+61DC66 LOCAL HEADER #1774    04034B50 (67324752)\n+61DC6A Extract Zip Spec      14 (20) '2.0'\n+61DC6B Extract OS            00 (0) 'MS-DOS'\n+61DC6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61DC6E Compression Method    0000 (0) 'Stored'\n+61DC70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61DC74 CRC                   00000000 (0)\n+61DC78 Compressed Size       00000000 (0)\n+61DC7C Uncompressed Size     00000000 (0)\n+61DC80 Filename Length       0040 (64)\n+61DC82 Extra Length          0009 (9)\n+61DC84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61DC84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61DCC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61DCC6   Length              0005 (5)\n+61DCC8   Flags               01 (1) 'Modification'\n+61DCC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61DCCD PAYLOAD\n+\n+61E81E DATA DESCRIPTOR       08074B50 (134695760)\n+61E822 CRC                   A7345C3C (2805226556)\n+61E826 Compressed Size       00000B51 (2897)\n+61E82A Uncompressed Size     00000B51 (2897)\n+\n+61E82E LOCAL HEADER #1775    04034B50 (67324752)\n+61E832 Extract Zip Spec      14 (20) '2.0'\n+61E833 Extract OS            00 (0) 'MS-DOS'\n+61E834 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61E836 Compression Method    0000 (0) 'Stored'\n+61E838 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61E83C CRC                   00000000 (0)\n+61E840 Compressed Size       00000000 (0)\n+61E844 Uncompressed Size     00000000 (0)\n+61E848 Filename Length       0039 (57)\n+61E84A Extra Length          0009 (9)\n+61E84C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61E84C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61E885 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61E887   Length              0005 (5)\n+61E889   Flags               01 (1) 'Modification'\n+61E88A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61E88E PAYLOAD\n+\n+61EDE7 DATA DESCRIPTOR       08074B50 (134695760)\n+61EDEB CRC                   C412C0D3 (3289563347)\n+61EDEF Compressed Size       00000559 (1369)\n+61EDF3 Uncompressed Size     00000559 (1369)\n+\n+61EDF7 LOCAL HEADER #1776    04034B50 (67324752)\n+61EDFB Extract Zip Spec      14 (20) '2.0'\n+61EDFC Extract OS            00 (0) 'MS-DOS'\n+61EDFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+61EDFF Compression Method    0000 (0) 'Stored'\n+61EE01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+61EE05 CRC                   00000000 (0)\n+61EE09 Compressed Size       00000000 (0)\n+61EE0D Uncompressed Size     00000000 (0)\n+61EE11 Filename Length       0040 (64)\n+61EE13 Extra Length          0009 (9)\n+61EE15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x61EE15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+61EE55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+61EE57   Length              0005 (5)\n+61EE59   Flags               01 (1) 'Modification'\n+61EE5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+61EE5E PAYLOAD\n+\n+6203EB DATA DESCRIPTOR       08074B50 (134695760)\n+6203EF CRC                   7A3E3AF6 (2050898678)\n+6203F3 Compressed Size       0000158D (5517)\n+6203F7 Uncompressed Size     0000158D (5517)\n+\n+6203FB LOCAL HEADER #1777    04034B50 (67324752)\n+6203FF Extract Zip Spec      14 (20) '2.0'\n+620400 Extract OS            00 (0) 'MS-DOS'\n+620401 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+620403 Compression Method    0000 (0) 'Stored'\n+620405 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+620409 CRC                   00000000 (0)\n+62040D Compressed Size       00000000 (0)\n+620411 Uncompressed Size     00000000 (0)\n+620415 Filename Length       0039 (57)\n+620417 Extra Length          0009 (9)\n+620419 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x620419: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+620452 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+620454   Length              0005 (5)\n+620456   Flags               01 (1) 'Modification'\n+620457   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62045B PAYLOAD\n+\n+6209B4 DATA DESCRIPTOR       08074B50 (134695760)\n+6209B8 CRC                   68A40EAC (1755582124)\n+6209BC Compressed Size       00000559 (1369)\n+6209C0 Uncompressed Size     00000559 (1369)\n+\n+6209C4 LOCAL HEADER #1778    04034B50 (67324752)\n+6209C8 Extract Zip Spec      14 (20) '2.0'\n+6209C9 Extract OS            00 (0) 'MS-DOS'\n+6209CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6209CC Compression Method    0000 (0) 'Stored'\n+6209CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6209D2 CRC                   00000000 (0)\n+6209D6 Compressed Size       00000000 (0)\n+6209DA Uncompressed Size     00000000 (0)\n+6209DE Filename Length       0040 (64)\n+6209E0 Extra Length          0009 (9)\n+6209E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6209E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+620A22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+620A24   Length              0005 (5)\n+620A26   Flags               01 (1) 'Modification'\n+620A27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+620A2B PAYLOAD\n+\n+62136D DATA DESCRIPTOR       08074B50 (134695760)\n+621371 CRC                   DEA6E3F0 (3735479280)\n+621375 Compressed Size       00000942 (2370)\n+621379 Uncompressed Size     00000942 (2370)\n+\n+62137D LOCAL HEADER #1779    04034B50 (67324752)\n+621381 Extract Zip Spec      14 (20) '2.0'\n+621382 Extract OS            00 (0) 'MS-DOS'\n+621383 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+621385 Compression Method    0000 (0) 'Stored'\n+621387 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62138B CRC                   00000000 (0)\n+62138F Compressed Size       00000000 (0)\n+621393 Uncompressed Size     00000000 (0)\n+621397 Filename Length       0038 (56)\n+621399 Extra Length          0009 (9)\n+62139B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62139B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6213D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6213D5   Length              0005 (5)\n+6213D7   Flags               01 (1) 'Modification'\n+6213D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6213DC PAYLOAD\n+\n+621931 DATA DESCRIPTOR       08074B50 (134695760)\n+621935 CRC                   1E103695 (504379029)\n+621939 Compressed Size       00000555 (1365)\n+62193D Uncompressed Size     00000555 (1365)\n+\n+621941 LOCAL HEADER #1780    04034B50 (67324752)\n+621945 Extract Zip Spec      14 (20) '2.0'\n+621946 Extract OS            00 (0) 'MS-DOS'\n+621947 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+621949 Compression Method    0000 (0) 'Stored'\n+62194B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62194F CRC                   00000000 (0)\n+621953 Compressed Size       00000000 (0)\n+621957 Uncompressed Size     00000000 (0)\n+62195B Filename Length       003F (63)\n+62195D Extra Length          0009 (9)\n+62195F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62195F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62199E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6219A0   Length              0005 (5)\n+6219A2   Flags               01 (1) 'Modification'\n+6219A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6219A7 PAYLOAD\n+\n+622EE3 DATA DESCRIPTOR       08074B50 (134695760)\n+622EE7 CRC                   0384CEE3 (59035363)\n+622EEB Compressed Size       0000153C (5436)\n+622EEF Uncompressed Size     0000153C (5436)\n+\n+622EF3 LOCAL HEADER #1781    04034B50 (67324752)\n+622EF7 Extract Zip Spec      14 (20) '2.0'\n+622EF8 Extract OS            00 (0) 'MS-DOS'\n+622EF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+622EFB Compression Method    0000 (0) 'Stored'\n+622EFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+622F01 CRC                   00000000 (0)\n+622F05 Compressed Size       00000000 (0)\n+622F09 Uncompressed Size     00000000 (0)\n+622F0D Filename Length       003A (58)\n+622F0F Extra Length          0009 (9)\n+622F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x622F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+622F4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+622F4D   Length              0005 (5)\n+622F4F   Flags               01 (1) 'Modification'\n+622F50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+622F54 PAYLOAD\n+\n+623480 DATA DESCRIPTOR       08074B50 (134695760)\n+623484 CRC                   A4DAB8AE (2765797550)\n+623488 Compressed Size       0000052C (1324)\n+62348C Uncompressed Size     0000052C (1324)\n+\n+623490 LOCAL HEADER #1782    04034B50 (67324752)\n+623494 Extract Zip Spec      14 (20) '2.0'\n+623495 Extract OS            00 (0) 'MS-DOS'\n+623496 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+623498 Compression Method    0000 (0) 'Stored'\n+62349A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62349E CRC                   00000000 (0)\n+6234A2 Compressed Size       00000000 (0)\n+6234A6 Uncompressed Size     00000000 (0)\n+6234AA Filename Length       0041 (65)\n+6234AC Extra Length          0009 (9)\n+6234AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6234AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6234EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6234F1   Length              0005 (5)\n+6234F3   Flags               01 (1) 'Modification'\n+6234F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6234F8 PAYLOAD\n+\n+62539A DATA DESCRIPTOR       08074B50 (134695760)\n+62539E CRC                   FAE0CB59 (4209036121)\n+6253A2 Compressed Size       00001EA2 (7842)\n+6253A6 Uncompressed Size     00001EA2 (7842)\n+\n+6253AA LOCAL HEADER #1783    04034B50 (67324752)\n+6253AE Extract Zip Spec      14 (20) '2.0'\n+6253AF Extract OS            00 (0) 'MS-DOS'\n+6253B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6253B2 Compression Method    0000 (0) 'Stored'\n+6253B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6253B8 CRC                   00000000 (0)\n+6253BC Compressed Size       00000000 (0)\n+6253C0 Uncompressed Size     00000000 (0)\n+6253C4 Filename Length       0043 (67)\n+6253C6 Extra Length          0009 (9)\n+6253C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6253C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62540B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62540D   Length              0005 (5)\n+62540F   Flags               01 (1) 'Modification'\n+625410   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+625414 PAYLOAD\n+\n+6258C1 DATA DESCRIPTOR       08074B50 (134695760)\n+6258C5 CRC                   B9BB0148 (3116040520)\n+6258C9 Compressed Size       000004AD (1197)\n+6258CD Uncompressed Size     000004AD (1197)\n+\n+6258D1 LOCAL HEADER #1784    04034B50 (67324752)\n+6258D5 Extract Zip Spec      14 (20) '2.0'\n+6258D6 Extract OS            00 (0) 'MS-DOS'\n+6258D7 General Purpose Flag  0000 (0)\n+6258D9 Compression Method    0000 (0) 'Stored'\n+6258DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6258DF CRC                   00000000 (0)\n+6258E3 Compressed Size       00000000 (0)\n+6258E7 Uncompressed Size     00000000 (0)\n+6258EB Filename Length       002F (47)\n+6258ED Extra Length          0009 (9)\n+6258EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6258EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62591E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+625920   Length              0005 (5)\n+625922   Flags               01 (1) 'Modification'\n+625923   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+625927 LOCAL HEADER #1785    04034B50 (67324752)\n+62592B Extract Zip Spec      14 (20) '2.0'\n+62592C Extract OS            00 (0) 'MS-DOS'\n+62592D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62592F Compression Method    0000 (0) 'Stored'\n+625931 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+625935 CRC                   00000000 (0)\n+625939 Compressed Size       00000000 (0)\n+62593D Uncompressed Size     00000000 (0)\n+625941 Filename Length       004E (78)\n+625943 Extra Length          0009 (9)\n+625945 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x625945: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+625993 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+625995   Length              0005 (5)\n+625997   Flags               01 (1) 'Modification'\n+625998   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62599C PAYLOAD\n+\n+625E1A DATA DESCRIPTOR       08074B50 (134695760)\n+625E1E CRC                   381C2681 (941368961)\n+625E22 Compressed Size       0000047E (1150)\n+625E26 Uncompressed Size     0000047E (1150)\n+\n+625E2A LOCAL HEADER #1786    04034B50 (67324752)\n+625E2E Extract Zip Spec      14 (20) '2.0'\n+625E2F Extract OS            00 (0) 'MS-DOS'\n+625E30 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+625E32 Compression Method    0000 (0) 'Stored'\n+625E34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+625E38 CRC                   00000000 (0)\n+625E3C Compressed Size       00000000 (0)\n+625E40 Uncompressed Size     00000000 (0)\n+625E44 Filename Length       004B (75)\n+625E46 Extra Length          0009 (9)\n+625E48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x625E48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+625E93 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+625E95   Length              0005 (5)\n+625E97   Flags               01 (1) 'Modification'\n+625E98   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+625E9C PAYLOAD\n+\n+6265C2 DATA DESCRIPTOR       08074B50 (134695760)\n+6265C6 CRC                   21012AB4 (553724596)\n+6265CA Compressed Size       00000726 (1830)\n+6265CE Uncompressed Size     00000726 (1830)\n+\n+6265D2 LOCAL HEADER #1787    04034B50 (67324752)\n+6265D6 Extract Zip Spec      14 (20) '2.0'\n+6265D7 Extract OS            00 (0) 'MS-DOS'\n+6265D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6265DA Compression Method    0000 (0) 'Stored'\n+6265DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6265E0 CRC                   00000000 (0)\n+6265E4 Compressed Size       00000000 (0)\n+6265E8 Uncompressed Size     00000000 (0)\n+6265EC Filename Length       0041 (65)\n+6265EE Extra Length          0009 (9)\n+6265F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6265F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+626631 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+626633   Length              0005 (5)\n+626635   Flags               01 (1) 'Modification'\n+626636   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62663A PAYLOAD\n+\n+627364 DATA DESCRIPTOR       08074B50 (134695760)\n+627368 CRC                   06F39E69 (116629097)\n+62736C Compressed Size       00000D2A (3370)\n+627370 Uncompressed Size     00000D2A (3370)\n+\n+627374 LOCAL HEADER #1788    04034B50 (67324752)\n+627378 Extract Zip Spec      14 (20) '2.0'\n+627379 Extract OS            00 (0) 'MS-DOS'\n+62737A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62737C Compression Method    0000 (0) 'Stored'\n+62737E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+627382 CRC                   00000000 (0)\n+627386 Compressed Size       00000000 (0)\n+62738A Uncompressed Size     00000000 (0)\n+62738E Filename Length       0041 (65)\n+627390 Extra Length          0009 (9)\n+627392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x627392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6273D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6273D5   Length              0005 (5)\n+6273D7   Flags               01 (1) 'Modification'\n+6273D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6273DC PAYLOAD\n+\n+6277AC DATA DESCRIPTOR       08074B50 (134695760)\n+6277B0 CRC                   34F1D732 (888264498)\n+6277B4 Compressed Size       000003D0 (976)\n+6277B8 Uncompressed Size     000003D0 (976)\n+\n+6277BC LOCAL HEADER #1789    04034B50 (67324752)\n+6277C0 Extract Zip Spec      14 (20) '2.0'\n+6277C1 Extract OS            00 (0) 'MS-DOS'\n+6277C2 General Purpose Flag  0000 (0)\n+6277C4 Compression Method    0000 (0) 'Stored'\n+6277C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6277CA CRC                   00000000 (0)\n+6277CE Compressed Size       00000000 (0)\n+6277D2 Uncompressed Size     00000000 (0)\n+6277D6 Filename Length       002E (46)\n+6277D8 Extra Length          0009 (9)\n+6277DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6277DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+627808 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62780A   Length              0005 (5)\n+62780C   Flags               01 (1) 'Modification'\n+62780D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+627811 LOCAL HEADER #1790    04034B50 (67324752)\n+627815 Extract Zip Spec      14 (20) '2.0'\n+627816 Extract OS            00 (0) 'MS-DOS'\n+627817 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+627819 Compression Method    0000 (0) 'Stored'\n+62781B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62781F CRC                   00000000 (0)\n+627823 Compressed Size       00000000 (0)\n+627827 Uncompressed Size     00000000 (0)\n+62782B Filename Length       0043 (67)\n+62782D Extra Length          0009 (9)\n+62782F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62782F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+627872 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+627874   Length              0005 (5)\n+627876   Flags               01 (1) 'Modification'\n+627877   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62787B PAYLOAD\n+\n+627E29 DATA DESCRIPTOR       08074B50 (134695760)\n+627E2D CRC                   5C6630BB (1550201019)\n+627E31 Compressed Size       000005AE (1454)\n+627E35 Uncompressed Size     000005AE (1454)\n+\n+627E39 LOCAL HEADER #1791    04034B50 (67324752)\n+627E3D Extract Zip Spec      14 (20) '2.0'\n+627E3E Extract OS            00 (0) 'MS-DOS'\n+627E3F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+627E41 Compression Method    0000 (0) 'Stored'\n+627E43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+627E47 CRC                   00000000 (0)\n+627E4B Compressed Size       00000000 (0)\n+627E4F Uncompressed Size     00000000 (0)\n+627E53 Filename Length       004A (74)\n+627E55 Extra Length          0009 (9)\n+627E57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x627E57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+627EA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+627EA3   Length              0005 (5)\n+627EA5   Flags               01 (1) 'Modification'\n+627EA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+627EAA PAYLOAD\n+\n+62AB9E DATA DESCRIPTOR       08074B50 (134695760)\n+62ABA2 CRC                   CAF28C51 (3404893265)\n+62ABA6 Compressed Size       00002CF4 (11508)\n+62ABAA Uncompressed Size     00002CF4 (11508)\n+\n+62ABAE LOCAL HEADER #1792    04034B50 (67324752)\n+62ABB2 Extract Zip Spec      14 (20) '2.0'\n+62ABB3 Extract OS            00 (0) 'MS-DOS'\n+62ABB4 General Purpose Flag  0000 (0)\n+62ABB6 Compression Method    0000 (0) 'Stored'\n+62ABB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62ABBC CRC                   00000000 (0)\n+62ABC0 Compressed Size       00000000 (0)\n+62ABC4 Uncompressed Size     00000000 (0)\n+62ABC8 Filename Length       002D (45)\n+62ABCA Extra Length          0009 (9)\n+62ABCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62ABCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62ABF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62ABFB   Length              0005 (5)\n+62ABFD   Flags               01 (1) 'Modification'\n+62ABFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+62AC02 LOCAL HEADER #1793    04034B50 (67324752)\n+62AC06 Extract Zip Spec      14 (20) '2.0'\n+62AC07 Extract OS            00 (0) 'MS-DOS'\n+62AC08 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62AC0A Compression Method    0000 (0) 'Stored'\n+62AC0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62AC10 CRC                   00000000 (0)\n+62AC14 Compressed Size       00000000 (0)\n+62AC18 Uncompressed Size     00000000 (0)\n+62AC1C Filename Length       0041 (65)\n+62AC1E Extra Length          0009 (9)\n+62AC20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62AC20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62AC61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62AC63   Length              0005 (5)\n+62AC65   Flags               01 (1) 'Modification'\n+62AC66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62AC6A PAYLOAD\n+\n+62C1B6 DATA DESCRIPTOR       08074B50 (134695760)\n+62C1BA CRC                   36D0D661 (919656033)\n+62C1BE Compressed Size       0000154C (5452)\n+62C1C2 Uncompressed Size     0000154C (5452)\n+\n+62C1C6 LOCAL HEADER #1794    04034B50 (67324752)\n+62C1CA Extract Zip Spec      14 (20) '2.0'\n+62C1CB Extract OS            00 (0) 'MS-DOS'\n+62C1CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62C1CE Compression Method    0000 (0) 'Stored'\n+62C1D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62C1D4 CRC                   00000000 (0)\n+62C1D8 Compressed Size       00000000 (0)\n+62C1DC Uncompressed Size     00000000 (0)\n+62C1E0 Filename Length       0044 (68)\n+62C1E2 Extra Length          0009 (9)\n+62C1E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62C1E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62C228 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62C22A   Length              0005 (5)\n+62C22C   Flags               01 (1) 'Modification'\n+62C22D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62C231 PAYLOAD\n+\n+62DF76 DATA DESCRIPTOR       08074B50 (134695760)\n+62DF7A CRC                   A2C265E1 (2730649057)\n+62DF7E Compressed Size       00001D45 (7493)\n+62DF82 Uncompressed Size     00001D45 (7493)\n+\n+62DF86 LOCAL HEADER #1795    04034B50 (67324752)\n+62DF8A Extract Zip Spec      14 (20) '2.0'\n+62DF8B Extract OS            00 (0) 'MS-DOS'\n+62DF8C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62DF8E Compression Method    0000 (0) 'Stored'\n+62DF90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62DF94 CRC                   00000000 (0)\n+62DF98 Compressed Size       00000000 (0)\n+62DF9C Uncompressed Size     00000000 (0)\n+62DFA0 Filename Length       0044 (68)\n+62DFA2 Extra Length          0009 (9)\n+62DFA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62DFA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62DFE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62DFEA   Length              0005 (5)\n+62DFEC   Flags               01 (1) 'Modification'\n+62DFED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62DFF1 PAYLOAD\n+\n+62E5AB DATA DESCRIPTOR       08074B50 (134695760)\n+62E5AF CRC                   AEA9AD13 (2930355475)\n+62E5B3 Compressed Size       000005BA (1466)\n+62E5B7 Uncompressed Size     000005BA (1466)\n+\n+62E5BB LOCAL HEADER #1796    04034B50 (67324752)\n+62E5BF Extract Zip Spec      14 (20) '2.0'\n+62E5C0 Extract OS            00 (0) 'MS-DOS'\n+62E5C1 General Purpose Flag  0000 (0)\n+62E5C3 Compression Method    0000 (0) 'Stored'\n+62E5C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62E5C9 CRC                   00000000 (0)\n+62E5CD Compressed Size       00000000 (0)\n+62E5D1 Uncompressed Size     00000000 (0)\n+62E5D5 Filename Length       001C (28)\n+62E5D7 Extra Length          0009 (9)\n+62E5D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62E5D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62E5F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62E5F7   Length              0005 (5)\n+62E5F9   Flags               01 (1) 'Modification'\n+62E5FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+62E5FE LOCAL HEADER #1797    04034B50 (67324752)\n+62E602 Extract Zip Spec      14 (20) '2.0'\n+62E603 Extract OS            00 (0) 'MS-DOS'\n+62E604 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+62E606 Compression Method    0000 (0) 'Stored'\n+62E608 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+62E60C CRC                   00000000 (0)\n+62E610 Compressed Size       00000000 (0)\n+62E614 Uncompressed Size     00000000 (0)\n+62E618 Filename Length       0030 (48)\n+62E61A Extra Length          0009 (9)\n+62E61C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x62E61C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+62E64C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+62E64E   Length              0005 (5)\n+62E650   Flags               01 (1) 'Modification'\n+62E651   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+62E655 PAYLOAD\n+\n+6304B2 DATA DESCRIPTOR       08074B50 (134695760)\n+6304B6 CRC                   9594ED56 (2509565270)\n+6304BA Compressed Size       00001E5D (7773)\n+6304BE Uncompressed Size     00001E5D (7773)\n+\n+6304C2 LOCAL HEADER #1798    04034B50 (67324752)\n+6304C6 Extract Zip Spec      14 (20) '2.0'\n+6304C7 Extract OS            00 (0) 'MS-DOS'\n+6304C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6304CA Compression Method    0000 (0) 'Stored'\n+6304CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6304D0 CRC                   00000000 (0)\n+6304D4 Compressed Size       00000000 (0)\n+6304D8 Uncompressed Size     00000000 (0)\n+6304DC Filename Length       0032 (50)\n+6304DE Extra Length          0009 (9)\n+6304E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6304E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+630512 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+630514   Length              0005 (5)\n+630516   Flags               01 (1) 'Modification'\n+630517   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+63051B PAYLOAD\n+\n+631B3E DATA DESCRIPTOR       08074B50 (134695760)\n+631B42 CRC                   B52DE397 (3039683479)\n+631B46 Compressed Size       00001623 (5667)\n+631B4A Uncompressed Size     00001623 (5667)\n+\n+631B4E LOCAL HEADER #1799    04034B50 (67324752)\n+631B52 Extract Zip Spec      14 (20) '2.0'\n+631B53 Extract OS            00 (0) 'MS-DOS'\n+631B54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+631B56 Compression Method    0000 (0) 'Stored'\n+631B58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+631B5C CRC                   00000000 (0)\n+631B60 Compressed Size       00000000 (0)\n+631B64 Uncompressed Size     00000000 (0)\n+631B68 Filename Length       0032 (50)\n+631B6A Extra Length          0009 (9)\n+631B6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x631B6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+631B9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+631BA0   Length              0005 (5)\n+631BA2   Flags               01 (1) 'Modification'\n+631BA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+631BA7 PAYLOAD\n+\n+6322CA DATA DESCRIPTOR       08074B50 (134695760)\n+6322CE CRC                   851F3F00 (2233417472)\n+6322D2 Compressed Size       00000723 (1827)\n+6322D6 Uncompressed Size     00000723 (1827)\n+\n+6322DA LOCAL HEADER #1800    04034B50 (67324752)\n+6322DE Extract Zip Spec      14 (20) '2.0'\n+6322DF Extract OS            00 (0) 'MS-DOS'\n+6322E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6322E2 Compression Method    0000 (0) 'Stored'\n+6322E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6322E8 CRC                   00000000 (0)\n+6322EC Compressed Size       00000000 (0)\n+6322F0 Uncompressed Size     00000000 (0)\n+6322F4 Filename Length       0031 (49)\n+6322F6 Extra Length          0009 (9)\n+6322F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6322F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+632329 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63232B   Length              0005 (5)\n+63232D   Flags               01 (1) 'Modification'\n+63232E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+632332 PAYLOAD\n+\n+6332EB DATA DESCRIPTOR       08074B50 (134695760)\n+6332EF CRC                   86FDBE3E (2264776254)\n+6332F3 Compressed Size       00000FB9 (4025)\n+6332F7 Uncompressed Size     00000FB9 (4025)\n+\n+6332FB LOCAL HEADER #1801    04034B50 (67324752)\n+6332FF Extract Zip Spec      14 (20) '2.0'\n+633300 Extract OS            00 (0) 'MS-DOS'\n+633301 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+633303 Compression Method    0000 (0) 'Stored'\n+633305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+633309 CRC                   00000000 (0)\n+63330D Compressed Size       00000000 (0)\n+633311 Uncompressed Size     00000000 (0)\n+633315 Filename Length       0036 (54)\n+633317 Extra Length          0009 (9)\n+633319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x633319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63334F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+633351   Length              0005 (5)\n+633353   Flags               01 (1) 'Modification'\n+633354   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+633358 PAYLOAD\n+\n+6340E8 DATA DESCRIPTOR       08074B50 (134695760)\n+6340EC CRC                   CA71D506 (3396457734)\n+6340F0 Compressed Size       00000D90 (3472)\n+6340F4 Uncompressed Size     00000D90 (3472)\n+\n+6340F8 LOCAL HEADER #1802    04034B50 (67324752)\n+6340FC Extract Zip Spec      14 (20) '2.0'\n+6340FD Extract OS            00 (0) 'MS-DOS'\n+6340FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+634100 Compression Method    0000 (0) 'Stored'\n+634102 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+634106 CRC                   00000000 (0)\n+63410A Compressed Size       00000000 (0)\n+63410E Uncompressed Size     00000000 (0)\n+634112 Filename Length       002E (46)\n+634114 Extra Length          0009 (9)\n+634116 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x634116: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+634144 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+634146   Length              0005 (5)\n+634148   Flags               01 (1) 'Modification'\n+634149   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+63414D PAYLOAD\n+\n+635A19 DATA DESCRIPTOR       08074B50 (134695760)\n+635A1D CRC                   B42DC810 (3022899216)\n+635A21 Compressed Size       000018CC (6348)\n+635A25 Uncompressed Size     000018CC (6348)\n+\n+635A29 LOCAL HEADER #1803    04034B50 (67324752)\n+635A2D Extract Zip Spec      14 (20) '2.0'\n+635A2E Extract OS            00 (0) 'MS-DOS'\n+635A2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+635A31 Compression Method    0000 (0) 'Stored'\n+635A33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+635A37 CRC                   00000000 (0)\n+635A3B Compressed Size       00000000 (0)\n+635A3F Uncompressed Size     00000000 (0)\n+635A43 Filename Length       0031 (49)\n+635A45 Extra Length          0009 (9)\n+635A47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x635A47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+635A78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+635A7A   Length              0005 (5)\n+635A7C   Flags               01 (1) 'Modification'\n+635A7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+635A81 PAYLOAD\n+\n+636744 DATA DESCRIPTOR       08074B50 (134695760)\n+636748 CRC                   5D6B9E17 (1567333911)\n+63674C Compressed Size       00000CC3 (3267)\n+636750 Uncompressed Size     00000CC3 (3267)\n+\n+636754 LOCAL HEADER #1804    04034B50 (67324752)\n+636758 Extract Zip Spec      14 (20) '2.0'\n+636759 Extract OS            00 (0) 'MS-DOS'\n+63675A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+63675C Compression Method    0000 (0) 'Stored'\n+63675E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+636762 CRC                   00000000 (0)\n+636766 Compressed Size       00000000 (0)\n+63676A Uncompressed Size     00000000 (0)\n+63676E Filename Length       002B (43)\n+636770 Extra Length          0009 (9)\n+636772 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x636772: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63679D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63679F   Length              0005 (5)\n+6367A1   Flags               01 (1) 'Modification'\n+6367A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6367A6 PAYLOAD\n+\n+636EE2 DATA DESCRIPTOR       08074B50 (134695760)\n+636EE6 CRC                   33E95645 (870929989)\n+636EEA Compressed Size       0000073C (1852)\n+636EEE Uncompressed Size     0000073C (1852)\n+\n+636EF2 LOCAL HEADER #1805    04034B50 (67324752)\n+636EF6 Extract Zip Spec      14 (20) '2.0'\n+636EF7 Extract OS            00 (0) 'MS-DOS'\n+636EF8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+636EFA Compression Method    0000 (0) 'Stored'\n+636EFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+636F00 CRC                   00000000 (0)\n+636F04 Compressed Size       00000000 (0)\n+636F08 Uncompressed Size     00000000 (0)\n+636F0C Filename Length       0030 (48)\n+636F0E Extra Length          0009 (9)\n+636F10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x636F10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+636F40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+636F42   Length              0005 (5)\n+636F44   Flags               01 (1) 'Modification'\n+636F45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+636F49 PAYLOAD\n+\n+6385EF DATA DESCRIPTOR       08074B50 (134695760)\n+6385F3 CRC                   DF14BD96 (3742678422)\n+6385F7 Compressed Size       000016A6 (5798)\n+6385FB Uncompressed Size     000016A6 (5798)\n+\n+6385FF LOCAL HEADER #1806    04034B50 (67324752)\n+638603 Extract Zip Spec      14 (20) '2.0'\n+638604 Extract OS            00 (0) 'MS-DOS'\n+638605 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+638607 Compression Method    0000 (0) 'Stored'\n+638609 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63860D CRC                   00000000 (0)\n+638611 Compressed Size       00000000 (0)\n+638615 Uncompressed Size     00000000 (0)\n+638619 Filename Length       0033 (51)\n+63861B Extra Length          0009 (9)\n+63861D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63861D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+638650 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+638652   Length              0005 (5)\n+638654   Flags               01 (1) 'Modification'\n+638655   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+638659 PAYLOAD\n+\n+63953B DATA DESCRIPTOR       08074B50 (134695760)\n+63953F CRC                   FA17120C (4195815948)\n+639543 Compressed Size       00000EE2 (3810)\n+639547 Uncompressed Size     00000EE2 (3810)\n+\n+63954B LOCAL HEADER #1807    04034B50 (67324752)\n+63954F Extract Zip Spec      14 (20) '2.0'\n+639550 Extract OS            00 (0) 'MS-DOS'\n+639551 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+639553 Compression Method    0000 (0) 'Stored'\n+639555 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+639559 CRC                   00000000 (0)\n+63955D Compressed Size       00000000 (0)\n+639561 Uncompressed Size     00000000 (0)\n+639565 Filename Length       002E (46)\n+639567 Extra Length          0009 (9)\n+639569 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x639569: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+639597 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+639599   Length              0005 (5)\n+63959B   Flags               01 (1) 'Modification'\n+63959C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6395A0 PAYLOAD\n+\n+63C9DB DATA DESCRIPTOR       08074B50 (134695760)\n+63C9DF CRC                   8B21CC44 (2334248004)\n+63C9E3 Compressed Size       0000343B (13371)\n+63C9E7 Uncompressed Size     0000343B (13371)\n+\n+63C9EB LOCAL HEADER #1808    04034B50 (67324752)\n+63C9EF Extract Zip Spec      14 (20) '2.0'\n+63C9F0 Extract OS            00 (0) 'MS-DOS'\n+63C9F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+63C9F3 Compression Method    0000 (0) 'Stored'\n+63C9F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63C9F9 CRC                   00000000 (0)\n+63C9FD Compressed Size       00000000 (0)\n+63CA01 Uncompressed Size     00000000 (0)\n+63CA05 Filename Length       0032 (50)\n+63CA07 Extra Length          0009 (9)\n+63CA09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63CA09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63CA3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63CA3D   Length              0005 (5)\n+63CA3F   Flags               01 (1) 'Modification'\n+63CA40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+63CA44 PAYLOAD\n+\n+63F662 DATA DESCRIPTOR       08074B50 (134695760)\n+63F666 CRC                   BDC74FB9 (3183955897)\n+63F66A Compressed Size       00002C1E (11294)\n+63F66E Uncompressed Size     00002C1E (11294)\n+\n+63F672 LOCAL HEADER #1809    04034B50 (67324752)\n+63F676 Extract Zip Spec      14 (20) '2.0'\n+63F677 Extract OS            00 (0) 'MS-DOS'\n+63F678 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+63F67A Compression Method    0000 (0) 'Stored'\n+63F67C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+63F680 CRC                   00000000 (0)\n+63F684 Compressed Size       00000000 (0)\n+63F688 Uncompressed Size     00000000 (0)\n+63F68C Filename Length       002E (46)\n+63F68E Extra Length          0009 (9)\n+63F690 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x63F690: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+63F6BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+63F6C0   Length              0005 (5)\n+63F6C2   Flags               01 (1) 'Modification'\n+63F6C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+63F6C7 PAYLOAD\n+\n+640202 DATA DESCRIPTOR       08074B50 (134695760)\n+640206 CRC                   4BE7E92F (1273489711)\n+64020A Compressed Size       00000B3B (2875)\n+64020E Uncompressed Size     00000B3B (2875)\n+\n+640212 LOCAL HEADER #1810    04034B50 (67324752)\n+640216 Extract Zip Spec      14 (20) '2.0'\n+640217 Extract OS            00 (0) 'MS-DOS'\n+640218 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64021A Compression Method    0000 (0) 'Stored'\n+64021C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+640220 CRC                   00000000 (0)\n+640224 Compressed Size       00000000 (0)\n+640228 Uncompressed Size     00000000 (0)\n+64022C Filename Length       002C (44)\n+64022E Extra Length          0009 (9)\n+640230 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x640230: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64025C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64025E   Length              0005 (5)\n+640260   Flags               01 (1) 'Modification'\n+640261   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+640265 PAYLOAD\n+\n+640C7A DATA DESCRIPTOR       08074B50 (134695760)\n+640C7E CRC                   EE9BE4CE (4003194062)\n+640C82 Compressed Size       00000A15 (2581)\n+640C86 Uncompressed Size     00000A15 (2581)\n+\n+640C8A LOCAL HEADER #1811    04034B50 (67324752)\n+640C8E Extract Zip Spec      14 (20) '2.0'\n+640C8F Extract OS            00 (0) 'MS-DOS'\n+640C90 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+640C92 Compression Method    0000 (0) 'Stored'\n+640C94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+640C98 CRC                   00000000 (0)\n+640C9C Compressed Size       00000000 (0)\n+640CA0 Uncompressed Size     00000000 (0)\n+640CA4 Filename Length       002F (47)\n+640CA6 Extra Length          0009 (9)\n+640CA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x640CA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+640CD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+640CD9   Length              0005 (5)\n+640CDB   Flags               01 (1) 'Modification'\n+640CDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+640CE0 PAYLOAD\n+\n+64171C DATA DESCRIPTOR       08074B50 (134695760)\n+641720 CRC                   930DE3AE (2467161006)\n+641724 Compressed Size       00000A3C (2620)\n+641728 Uncompressed Size     00000A3C (2620)\n+\n+64172C LOCAL HEADER #1812    04034B50 (67324752)\n+641730 Extract Zip Spec      14 (20) '2.0'\n+641731 Extract OS            00 (0) 'MS-DOS'\n+641732 General Purpose Flag  0000 (0)\n+641734 Compression Method    0000 (0) 'Stored'\n+641736 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64173A CRC                   00000000 (0)\n+64173E Compressed Size       00000000 (0)\n+641742 Uncompressed Size     00000000 (0)\n+641746 Filename Length       0020 (32)\n+641748 Extra Length          0009 (9)\n+64174A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64174A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64176A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64176C   Length              0005 (5)\n+64176E   Flags               01 (1) 'Modification'\n+64176F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+641773 LOCAL HEADER #1813    04034B50 (67324752)\n+641777 Extract Zip Spec      14 (20) '2.0'\n+641778 Extract OS            00 (0) 'MS-DOS'\n+641779 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64177B Compression Method    0000 (0) 'Stored'\n+64177D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+641781 CRC                   00000000 (0)\n+641785 Compressed Size       00000000 (0)\n+641789 Uncompressed Size     00000000 (0)\n+64178D Filename Length       0036 (54)\n+64178F Extra Length          0009 (9)\n+641791 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x641791: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6417C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6417C9   Length              0005 (5)\n+6417CB   Flags               01 (1) 'Modification'\n+6417CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6417D0 PAYLOAD\n+\n+6422AF DATA DESCRIPTOR       08074B50 (134695760)\n+6422B3 CRC                   184AAEF9 (407547641)\n+6422B7 Compressed Size       00000ADF (2783)\n+6422BB Uncompressed Size     00000ADF (2783)\n+\n+6422BF LOCAL HEADER #1814    04034B50 (67324752)\n+6422C3 Extract Zip Spec      14 (20) '2.0'\n+6422C4 Extract OS            00 (0) 'MS-DOS'\n+6422C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6422C7 Compression Method    0000 (0) 'Stored'\n+6422C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6422CD CRC                   00000000 (0)\n+6422D1 Compressed Size       00000000 (0)\n+6422D5 Uncompressed Size     00000000 (0)\n+6422D9 Filename Length       002D (45)\n+6422DB Extra Length          0009 (9)\n+6422DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6422DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64230A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64230C   Length              0005 (5)\n+64230E   Flags               01 (1) 'Modification'\n+64230F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+642313 PAYLOAD\n+\n+642D83 DATA DESCRIPTOR       08074B50 (134695760)\n+642D87 CRC                   3867D7AC (946329516)\n+642D8B Compressed Size       00000A70 (2672)\n+642D8F Uncompressed Size     00000A70 (2672)\n+\n+642D93 LOCAL HEADER #1815    04034B50 (67324752)\n+642D97 Extract Zip Spec      14 (20) '2.0'\n+642D98 Extract OS            00 (0) 'MS-DOS'\n+642D99 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+642D9B Compression Method    0000 (0) 'Stored'\n+642D9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+642DA1 CRC                   00000000 (0)\n+642DA5 Compressed Size       00000000 (0)\n+642DA9 Uncompressed Size     00000000 (0)\n+642DAD Filename Length       002F (47)\n+642DAF Extra Length          0009 (9)\n+642DB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x642DB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+642DE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+642DE2   Length              0005 (5)\n+642DE4   Flags               01 (1) 'Modification'\n+642DE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+642DE9 PAYLOAD\n+\n+643461 DATA DESCRIPTOR       08074B50 (134695760)\n+643465 CRC                   00E586BE (15042238)\n+643469 Compressed Size       00000678 (1656)\n+64346D Uncompressed Size     00000678 (1656)\n+\n+643471 LOCAL HEADER #1816    04034B50 (67324752)\n+643475 Extract Zip Spec      14 (20) '2.0'\n+643476 Extract OS            00 (0) 'MS-DOS'\n+643477 General Purpose Flag  0000 (0)\n+643479 Compression Method    0000 (0) 'Stored'\n+64347B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64347F CRC                   00000000 (0)\n+643483 Compressed Size       00000000 (0)\n+643487 Uncompressed Size     00000000 (0)\n+64348B Filename Length       001E (30)\n+64348D Extra Length          0009 (9)\n+64348F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64348F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6434AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6434AF   Length              0005 (5)\n+6434B1   Flags               01 (1) 'Modification'\n+6434B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6434B6 LOCAL HEADER #1817    04034B50 (67324752)\n+6434BA Extract Zip Spec      14 (20) '2.0'\n+6434BB Extract OS            00 (0) 'MS-DOS'\n+6434BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6434BE Compression Method    0000 (0) 'Stored'\n+6434C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6434C4 CRC                   00000000 (0)\n+6434C8 Compressed Size       00000000 (0)\n+6434CC Uncompressed Size     00000000 (0)\n+6434D0 Filename Length       003C (60)\n+6434D2 Extra Length          0009 (9)\n+6434D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6434D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+643510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+643512   Length              0005 (5)\n+643514   Flags               01 (1) 'Modification'\n+643515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+643519 PAYLOAD\n+\n+643BC6 DATA DESCRIPTOR       08074B50 (134695760)\n+643BCA CRC                   E1C5881F (3787819039)\n+643BCE Compressed Size       000006AD (1709)\n+643BD2 Uncompressed Size     000006AD (1709)\n+\n+643BD6 LOCAL HEADER #1818    04034B50 (67324752)\n+643BDA Extract Zip Spec      14 (20) '2.0'\n+643BDB Extract OS            00 (0) 'MS-DOS'\n+643BDC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+643BDE Compression Method    0000 (0) 'Stored'\n+643BE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+643BE4 CRC                   00000000 (0)\n+643BE8 Compressed Size       00000000 (0)\n+643BEC Uncompressed Size     00000000 (0)\n+643BF0 Filename Length       003A (58)\n+643BF2 Extra Length          0009 (9)\n+643BF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x643BF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+643C2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+643C30   Length              0005 (5)\n+643C32   Flags               01 (1) 'Modification'\n+643C33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+643C37 PAYLOAD\n+\n+64414C DATA DESCRIPTOR       08074B50 (134695760)\n+644150 CRC                   FE9FE6BA (4271892154)\n+644154 Compressed Size       00000515 (1301)\n+644158 Uncompressed Size     00000515 (1301)\n+\n+64415C LOCAL HEADER #1819    04034B50 (67324752)\n+644160 Extract Zip Spec      14 (20) '2.0'\n+644161 Extract OS            00 (0) 'MS-DOS'\n+644162 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+644164 Compression Method    0000 (0) 'Stored'\n+644166 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64416A CRC                   00000000 (0)\n+64416E Compressed Size       00000000 (0)\n+644172 Uncompressed Size     00000000 (0)\n+644176 Filename Length       0039 (57)\n+644178 Extra Length          0009 (9)\n+64417A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64417A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6441B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6441B5   Length              0005 (5)\n+6441B7   Flags               01 (1) 'Modification'\n+6441B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6441BC PAYLOAD\n+\n+6446B3 DATA DESCRIPTOR       08074B50 (134695760)\n+6446B7 CRC                   07F77085 (133656709)\n+6446BB Compressed Size       000004F7 (1271)\n+6446BF Uncompressed Size     000004F7 (1271)\n+\n+6446C3 LOCAL HEADER #1820    04034B50 (67324752)\n+6446C7 Extract Zip Spec      14 (20) '2.0'\n+6446C8 Extract OS            00 (0) 'MS-DOS'\n+6446C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6446CB Compression Method    0000 (0) 'Stored'\n+6446CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6446D1 CRC                   00000000 (0)\n+6446D5 Compressed Size       00000000 (0)\n+6446D9 Uncompressed Size     00000000 (0)\n+6446DD Filename Length       003A (58)\n+6446DF Extra Length          0009 (9)\n+6446E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6446E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64471B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64471D   Length              0005 (5)\n+64471F   Flags               01 (1) 'Modification'\n+644720   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+644724 PAYLOAD\n+\n+6453BE DATA DESCRIPTOR       08074B50 (134695760)\n+6453C2 CRC                   334FA791 (860858257)\n+6453C6 Compressed Size       00000C9A (3226)\n+6453CA Uncompressed Size     00000C9A (3226)\n+\n+6453CE LOCAL HEADER #1821    04034B50 (67324752)\n+6453D2 Extract Zip Spec      14 (20) '2.0'\n+6453D3 Extract OS            00 (0) 'MS-DOS'\n+6453D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6453D6 Compression Method    0000 (0) 'Stored'\n+6453D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6453DC CRC                   00000000 (0)\n+6453E0 Compressed Size       00000000 (0)\n+6453E4 Uncompressed Size     00000000 (0)\n+6453E8 Filename Length       0039 (57)\n+6453EA Extra Length          0009 (9)\n+6453EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6453EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+645425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+645427   Length              0005 (5)\n+645429   Flags               01 (1) 'Modification'\n+64542A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64542E PAYLOAD\n+\n+646185 DATA DESCRIPTOR       08074B50 (134695760)\n+646189 CRC                   5C26FEE4 (1546059492)\n+64618D Compressed Size       00000D57 (3415)\n+646191 Uncompressed Size     00000D57 (3415)\n+\n+646195 LOCAL HEADER #1822    04034B50 (67324752)\n+646199 Extract Zip Spec      14 (20) '2.0'\n+64619A Extract OS            00 (0) 'MS-DOS'\n+64619B General Purpose Flag  0000 (0)\n+64619D Compression Method    0000 (0) 'Stored'\n+64619F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6461A3 CRC                   00000000 (0)\n+6461A7 Compressed Size       00000000 (0)\n+6461AB Uncompressed Size     00000000 (0)\n+6461AF Filename Length       001B (27)\n+6461B1 Extra Length          0009 (9)\n+6461B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6461B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6461CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6461D0   Length              0005 (5)\n+6461D2   Flags               01 (1) 'Modification'\n+6461D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6461D7 LOCAL HEADER #1823    04034B50 (67324752)\n+6461DB Extract Zip Spec      14 (20) '2.0'\n+6461DC Extract OS            00 (0) 'MS-DOS'\n+6461DD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6461DF Compression Method    0000 (0) 'Stored'\n+6461E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6461E5 CRC                   00000000 (0)\n+6461E9 Compressed Size       00000000 (0)\n+6461ED Uncompressed Size     00000000 (0)\n+6461F1 Filename Length       0037 (55)\n+6461F3 Extra Length          0009 (9)\n+6461F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6461F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64622C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64622E   Length              0005 (5)\n+646230   Flags               01 (1) 'Modification'\n+646231   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+646235 PAYLOAD\n+\n+646633 DATA DESCRIPTOR       08074B50 (134695760)\n+646637 CRC                   63368ED1 (1664519889)\n+64663B Compressed Size       000003FE (1022)\n+64663F Uncompressed Size     000003FE (1022)\n+\n+646643 LOCAL HEADER #1824    04034B50 (67324752)\n+646647 Extract Zip Spec      14 (20) '2.0'\n+646648 Extract OS            00 (0) 'MS-DOS'\n+646649 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64664B Compression Method    0000 (0) 'Stored'\n+64664D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+646651 CRC                   00000000 (0)\n+646655 Compressed Size       00000000 (0)\n+646659 Uncompressed Size     00000000 (0)\n+64665D Filename Length       0030 (48)\n+64665F Extra Length          0009 (9)\n+646661 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x646661: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+646691 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+646693   Length              0005 (5)\n+646695   Flags               01 (1) 'Modification'\n+646696   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64669A PAYLOAD\n+\n+6479C2 DATA DESCRIPTOR       08074B50 (134695760)\n+6479C6 CRC                   876E0335 (2272133941)\n+6479CA Compressed Size       00001328 (4904)\n+6479CE Uncompressed Size     00001328 (4904)\n+\n+6479D2 LOCAL HEADER #1825    04034B50 (67324752)\n+6479D6 Extract Zip Spec      14 (20) '2.0'\n+6479D7 Extract OS            00 (0) 'MS-DOS'\n+6479D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6479DA Compression Method    0000 (0) 'Stored'\n+6479DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6479E0 CRC                   00000000 (0)\n+6479E4 Compressed Size       00000000 (0)\n+6479E8 Uncompressed Size     00000000 (0)\n+6479EC Filename Length       002F (47)\n+6479EE Extra Length          0009 (9)\n+6479F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6479F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+647A1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+647A21   Length              0005 (5)\n+647A23   Flags               01 (1) 'Modification'\n+647A24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+647A28 PAYLOAD\n+\n+6484B8 DATA DESCRIPTOR       08074B50 (134695760)\n+6484BC CRC                   1E67CB82 (510118786)\n+6484C0 Compressed Size       00000A90 (2704)\n+6484C4 Uncompressed Size     00000A90 (2704)\n+\n+6484C8 LOCAL HEADER #1826    04034B50 (67324752)\n+6484CC Extract Zip Spec      14 (20) '2.0'\n+6484CD Extract OS            00 (0) 'MS-DOS'\n+6484CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6484D0 Compression Method    0000 (0) 'Stored'\n+6484D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6484D6 CRC                   00000000 (0)\n+6484DA Compressed Size       00000000 (0)\n+6484DE Uncompressed Size     00000000 (0)\n+6484E2 Filename Length       0036 (54)\n+6484E4 Extra Length          0009 (9)\n+6484E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6484E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64851C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64851E   Length              0005 (5)\n+648520   Flags               01 (1) 'Modification'\n+648521   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+648525 PAYLOAD\n+\n+648903 DATA DESCRIPTOR       08074B50 (134695760)\n+648907 CRC                   61CAA47B (1640670331)\n+64890B Compressed Size       000003DE (990)\n+64890F Uncompressed Size     000003DE (990)\n+\n+648913 LOCAL HEADER #1827    04034B50 (67324752)\n+648917 Extract Zip Spec      14 (20) '2.0'\n+648918 Extract OS            00 (0) 'MS-DOS'\n+648919 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64891B Compression Method    0000 (0) 'Stored'\n+64891D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+648921 CRC                   00000000 (0)\n+648925 Compressed Size       00000000 (0)\n+648929 Uncompressed Size     00000000 (0)\n+64892D Filename Length       0033 (51)\n+64892F Extra Length          0009 (9)\n+648931 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x648931: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+648964 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+648966   Length              0005 (5)\n+648968   Flags               01 (1) 'Modification'\n+648969   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64896D PAYLOAD\n+\n+6495C0 DATA DESCRIPTOR       08074B50 (134695760)\n+6495C4 CRC                   607FF27E (1618997886)\n+6495C8 Compressed Size       00000C53 (3155)\n+6495CC Uncompressed Size     00000C53 (3155)\n+\n+6495D0 LOCAL HEADER #1828    04034B50 (67324752)\n+6495D4 Extract Zip Spec      14 (20) '2.0'\n+6495D5 Extract OS            00 (0) 'MS-DOS'\n+6495D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6495D8 Compression Method    0000 (0) 'Stored'\n+6495DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6495DE CRC                   00000000 (0)\n+6495E2 Compressed Size       00000000 (0)\n+6495E6 Uncompressed Size     00000000 (0)\n+6495EA Filename Length       002D (45)\n+6495EC Extra Length          0009 (9)\n+6495EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6495EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64961B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64961D   Length              0005 (5)\n+64961F   Flags               01 (1) 'Modification'\n+649620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+649624 PAYLOAD\n+\n+64B29C DATA DESCRIPTOR       08074B50 (134695760)\n+64B2A0 CRC                   7B7924E9 (2071536873)\n+64B2A4 Compressed Size       00001C78 (7288)\n+64B2A8 Uncompressed Size     00001C78 (7288)\n+\n+64B2AC LOCAL HEADER #1829    04034B50 (67324752)\n+64B2B0 Extract Zip Spec      14 (20) '2.0'\n+64B2B1 Extract OS            00 (0) 'MS-DOS'\n+64B2B2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64B2B4 Compression Method    0000 (0) 'Stored'\n+64B2B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64B2BA CRC                   00000000 (0)\n+64B2BE Compressed Size       00000000 (0)\n+64B2C2 Uncompressed Size     00000000 (0)\n+64B2C6 Filename Length       0030 (48)\n+64B2C8 Extra Length          0009 (9)\n+64B2CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64B2CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64B2FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64B2FC   Length              0005 (5)\n+64B2FE   Flags               01 (1) 'Modification'\n+64B2FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64B303 PAYLOAD\n+\n+64BF10 DATA DESCRIPTOR       08074B50 (134695760)\n+64BF14 CRC                   707F9167 (1887408487)\n+64BF18 Compressed Size       00000C0D (3085)\n+64BF1C Uncompressed Size     00000C0D (3085)\n+\n+64BF20 LOCAL HEADER #1830    04034B50 (67324752)\n+64BF24 Extract Zip Spec      14 (20) '2.0'\n+64BF25 Extract OS            00 (0) 'MS-DOS'\n+64BF26 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64BF28 Compression Method    0000 (0) 'Stored'\n+64BF2A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64BF2E CRC                   00000000 (0)\n+64BF32 Compressed Size       00000000 (0)\n+64BF36 Uncompressed Size     00000000 (0)\n+64BF3A Filename Length       0033 (51)\n+64BF3C Extra Length          0009 (9)\n+64BF3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64BF3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64BF71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64BF73   Length              0005 (5)\n+64BF75   Flags               01 (1) 'Modification'\n+64BF76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64BF7A PAYLOAD\n+\n+64CA3B DATA DESCRIPTOR       08074B50 (134695760)\n+64CA3F CRC                   FDA638C9 (4255529161)\n+64CA43 Compressed Size       00000AC1 (2753)\n+64CA47 Uncompressed Size     00000AC1 (2753)\n+\n+64CA4B LOCAL HEADER #1831    04034B50 (67324752)\n+64CA4F Extract Zip Spec      14 (20) '2.0'\n+64CA50 Extract OS            00 (0) 'MS-DOS'\n+64CA51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64CA53 Compression Method    0000 (0) 'Stored'\n+64CA55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64CA59 CRC                   00000000 (0)\n+64CA5D Compressed Size       00000000 (0)\n+64CA61 Uncompressed Size     00000000 (0)\n+64CA65 Filename Length       002D (45)\n+64CA67 Extra Length          0009 (9)\n+64CA69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64CA69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64CA96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64CA98   Length              0005 (5)\n+64CA9A   Flags               01 (1) 'Modification'\n+64CA9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64CA9F PAYLOAD\n+\n+64E579 DATA DESCRIPTOR       08074B50 (134695760)\n+64E57D CRC                   5FA42AEE (1604594414)\n+64E581 Compressed Size       00001ADA (6874)\n+64E585 Uncompressed Size     00001ADA (6874)\n+\n+64E589 LOCAL HEADER #1832    04034B50 (67324752)\n+64E58D Extract Zip Spec      14 (20) '2.0'\n+64E58E Extract OS            00 (0) 'MS-DOS'\n+64E58F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64E591 Compression Method    0000 (0) 'Stored'\n+64E593 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64E597 CRC                   00000000 (0)\n+64E59B Compressed Size       00000000 (0)\n+64E59F Uncompressed Size     00000000 (0)\n+64E5A3 Filename Length       0031 (49)\n+64E5A5 Extra Length          0009 (9)\n+64E5A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64E5A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64E5D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64E5DA   Length              0005 (5)\n+64E5DC   Flags               01 (1) 'Modification'\n+64E5DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64E5E1 PAYLOAD\n+\n+64F762 DATA DESCRIPTOR       08074B50 (134695760)\n+64F766 CRC                   619FED81 (1637870977)\n+64F76A Compressed Size       00001181 (4481)\n+64F76E Uncompressed Size     00001181 (4481)\n+\n+64F772 LOCAL HEADER #1833    04034B50 (67324752)\n+64F776 Extract Zip Spec      14 (20) '2.0'\n+64F777 Extract OS            00 (0) 'MS-DOS'\n+64F778 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+64F77A Compression Method    0000 (0) 'Stored'\n+64F77C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+64F780 CRC                   00000000 (0)\n+64F784 Compressed Size       00000000 (0)\n+64F788 Uncompressed Size     00000000 (0)\n+64F78C Filename Length       002F (47)\n+64F78E Extra Length          0009 (9)\n+64F790 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x64F790: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+64F7BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+64F7C1   Length              0005 (5)\n+64F7C3   Flags               01 (1) 'Modification'\n+64F7C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+64F7C8 PAYLOAD\n+\n+65044A DATA DESCRIPTOR       08074B50 (134695760)\n+65044E CRC                   E8166721 (3893782305)\n+650452 Compressed Size       00000C82 (3202)\n+650456 Uncompressed Size     00000C82 (3202)\n+\n+65045A LOCAL HEADER #1834    04034B50 (67324752)\n+65045E Extract Zip Spec      14 (20) '2.0'\n+65045F Extract OS            00 (0) 'MS-DOS'\n+650460 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+650462 Compression Method    0000 (0) 'Stored'\n+650464 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+650468 CRC                   00000000 (0)\n+65046C Compressed Size       00000000 (0)\n+650470 Uncompressed Size     00000000 (0)\n+650474 Filename Length       0031 (49)\n+650476 Extra Length          0009 (9)\n+650478 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x650478: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6504A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6504AB   Length              0005 (5)\n+6504AD   Flags               01 (1) 'Modification'\n+6504AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6504B2 PAYLOAD\n+\n+6521E8 DATA DESCRIPTOR       08074B50 (134695760)\n+6521EC CRC                   363316B0 (909317808)\n+6521F0 Compressed Size       00001D36 (7478)\n+6521F4 Uncompressed Size     00001D36 (7478)\n+\n+6521F8 LOCAL HEADER #1835    04034B50 (67324752)\n+6521FC Extract Zip Spec      14 (20) '2.0'\n+6521FD Extract OS            00 (0) 'MS-DOS'\n+6521FE General Purpose Flag  0000 (0)\n+652200 Compression Method    0000 (0) 'Stored'\n+652202 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+652206 CRC                   00000000 (0)\n+65220A Compressed Size       00000000 (0)\n+65220E Uncompressed Size     00000000 (0)\n+652212 Filename Length       001E (30)\n+652214 Extra Length          0009 (9)\n+652216 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x652216: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+652234 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+652236   Length              0005 (5)\n+652238   Flags               01 (1) 'Modification'\n+652239   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65223D LOCAL HEADER #1836    04034B50 (67324752)\n+652241 Extract Zip Spec      14 (20) '2.0'\n+652242 Extract OS            00 (0) 'MS-DOS'\n+652243 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+652245 Compression Method    0000 (0) 'Stored'\n+652247 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65224B CRC                   00000000 (0)\n+65224F Compressed Size       00000000 (0)\n+652253 Uncompressed Size     00000000 (0)\n+652257 Filename Length       0033 (51)\n+652259 Extra Length          0009 (9)\n+65225B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65225B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65228E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+652290   Length              0005 (5)\n+652292   Flags               01 (1) 'Modification'\n+652293   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+652297 PAYLOAD\n+\n+652B8D DATA DESCRIPTOR       08074B50 (134695760)\n+652B91 CRC                   EC8B751D (3968562461)\n+652B95 Compressed Size       000008F6 (2294)\n+652B99 Uncompressed Size     000008F6 (2294)\n+\n+652B9D LOCAL HEADER #1837    04034B50 (67324752)\n+652BA1 Extract Zip Spec      14 (20) '2.0'\n+652BA2 Extract OS            00 (0) 'MS-DOS'\n+652BA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+652BA5 Compression Method    0000 (0) 'Stored'\n+652BA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+652BAB CRC                   00000000 (0)\n+652BAF Compressed Size       00000000 (0)\n+652BB3 Uncompressed Size     00000000 (0)\n+652BB7 Filename Length       0032 (50)\n+652BB9 Extra Length          0009 (9)\n+652BBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x652BBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+652BED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+652BEF   Length              0005 (5)\n+652BF1   Flags               01 (1) 'Modification'\n+652BF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+652BF6 PAYLOAD\n+\n+654C18 DATA DESCRIPTOR       08074B50 (134695760)\n+654C1C CRC                   62F535FA (1660237306)\n+654C20 Compressed Size       00002022 (8226)\n+654C24 Uncompressed Size     00002022 (8226)\n+\n+654C28 LOCAL HEADER #1838    04034B50 (67324752)\n+654C2C Extract Zip Spec      14 (20) '2.0'\n+654C2D Extract OS            00 (0) 'MS-DOS'\n+654C2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+654C30 Compression Method    0000 (0) 'Stored'\n+654C32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+654C36 CRC                   00000000 (0)\n+654C3A Compressed Size       00000000 (0)\n+654C3E Uncompressed Size     00000000 (0)\n+654C42 Filename Length       0033 (51)\n+654C44 Extra Length          0009 (9)\n+654C46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x654C46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+654C79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+654C7B   Length              0005 (5)\n+654C7D   Flags               01 (1) 'Modification'\n+654C7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+654C82 PAYLOAD\n+\n+655DF4 DATA DESCRIPTOR       08074B50 (134695760)\n+655DF8 CRC                   56578DF7 (1448578551)\n+655DFC Compressed Size       00001172 (4466)\n+655E00 Uncompressed Size     00001172 (4466)\n+\n+655E04 LOCAL HEADER #1839    04034B50 (67324752)\n+655E08 Extract Zip Spec      14 (20) '2.0'\n+655E09 Extract OS            00 (0) 'MS-DOS'\n+655E0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+655E0C Compression Method    0000 (0) 'Stored'\n+655E0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+655E12 CRC                   00000000 (0)\n+655E16 Compressed Size       00000000 (0)\n+655E1A Uncompressed Size     00000000 (0)\n+655E1E Filename Length       0038 (56)\n+655E20 Extra Length          0009 (9)\n+655E22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x655E22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+655E5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+655E5C   Length              0005 (5)\n+655E5E   Flags               01 (1) 'Modification'\n+655E5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+655E63 PAYLOAD\n+\n+658047 DATA DESCRIPTOR       08074B50 (134695760)\n+65804B CRC                   1140D3D7 (289461207)\n+65804F Compressed Size       000021E4 (8676)\n+658053 Uncompressed Size     000021E4 (8676)\n+\n+658057 LOCAL HEADER #1840    04034B50 (67324752)\n+65805B Extract Zip Spec      14 (20) '2.0'\n+65805C Extract OS            00 (0) 'MS-DOS'\n+65805D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+65805F Compression Method    0000 (0) 'Stored'\n+658061 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+658065 CRC                   00000000 (0)\n+658069 Compressed Size       00000000 (0)\n+65806D Uncompressed Size     00000000 (0)\n+658071 Filename Length       0035 (53)\n+658073 Extra Length          0009 (9)\n+658075 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x658075: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6580AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6580AC   Length              0005 (5)\n+6580AE   Flags               01 (1) 'Modification'\n+6580AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6580B3 PAYLOAD\n+\n+65906F DATA DESCRIPTOR       08074B50 (134695760)\n+659073 CRC                   B6A13567 (3064018279)\n+659077 Compressed Size       00000FBC (4028)\n+65907B Uncompressed Size     00000FBC (4028)\n+\n+65907F LOCAL HEADER #1841    04034B50 (67324752)\n+659083 Extract Zip Spec      14 (20) '2.0'\n+659084 Extract OS            00 (0) 'MS-DOS'\n+659085 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+659087 Compression Method    0000 (0) 'Stored'\n+659089 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65908D CRC                   00000000 (0)\n+659091 Compressed Size       00000000 (0)\n+659095 Uncompressed Size     00000000 (0)\n+659099 Filename Length       002D (45)\n+65909B Extra Length          0009 (9)\n+65909D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65909D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6590CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6590CC   Length              0005 (5)\n+6590CE   Flags               01 (1) 'Modification'\n+6590CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6590D3 PAYLOAD\n+\n+65A0F1 DATA DESCRIPTOR       08074B50 (134695760)\n+65A0F5 CRC                   0A163D1E (169229598)\n+65A0F9 Compressed Size       0000101E (4126)\n+65A0FD Uncompressed Size     0000101E (4126)\n+\n+65A101 LOCAL HEADER #1842    04034B50 (67324752)\n+65A105 Extract Zip Spec      14 (20) '2.0'\n+65A106 Extract OS            00 (0) 'MS-DOS'\n+65A107 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+65A109 Compression Method    0000 (0) 'Stored'\n+65A10B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65A10F CRC                   00000000 (0)\n+65A113 Compressed Size       00000000 (0)\n+65A117 Uncompressed Size     00000000 (0)\n+65A11B Filename Length       0031 (49)\n+65A11D Extra Length          0009 (9)\n+65A11F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65A11F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65A150 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65A152   Length              0005 (5)\n+65A154   Flags               01 (1) 'Modification'\n+65A155   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+65A159 PAYLOAD\n+\n+65A886 DATA DESCRIPTOR       08074B50 (134695760)\n+65A88A CRC                   873A5673 (2268747379)\n+65A88E Compressed Size       0000072D (1837)\n+65A892 Uncompressed Size     0000072D (1837)\n+\n+65A896 LOCAL HEADER #1843    04034B50 (67324752)\n+65A89A Extract Zip Spec      14 (20) '2.0'\n+65A89B Extract OS            00 (0) 'MS-DOS'\n+65A89C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+65A89E Compression Method    0000 (0) 'Stored'\n+65A8A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65A8A4 CRC                   00000000 (0)\n+65A8A8 Compressed Size       00000000 (0)\n+65A8AC Uncompressed Size     00000000 (0)\n+65A8B0 Filename Length       0038 (56)\n+65A8B2 Extra Length          0009 (9)\n+65A8B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65A8B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65A8EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65A8EE   Length              0005 (5)\n+65A8F0   Flags               01 (1) 'Modification'\n+65A8F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+65A8F5 PAYLOAD\n+\n+65B645 DATA DESCRIPTOR       08074B50 (134695760)\n+65B649 CRC                   B63E72D7 (3057545943)\n+65B64D Compressed Size       00000D50 (3408)\n+65B651 Uncompressed Size     00000D50 (3408)\n+\n+65B655 LOCAL HEADER #1844    04034B50 (67324752)\n+65B659 Extract Zip Spec      14 (20) '2.0'\n+65B65A Extract OS            00 (0) 'MS-DOS'\n+65B65B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+65B65D Compression Method    0000 (0) 'Stored'\n+65B65F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65B663 CRC                   00000000 (0)\n+65B667 Compressed Size       00000000 (0)\n+65B66B Uncompressed Size     00000000 (0)\n+65B66F Filename Length       003A (58)\n+65B671 Extra Length          0009 (9)\n+65B673 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65B673: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65B6AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65B6AF   Length              0005 (5)\n+65B6B1   Flags               01 (1) 'Modification'\n+65B6B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+65B6B6 PAYLOAD\n+\n+65C3CE DATA DESCRIPTOR       08074B50 (134695760)\n+65C3D2 CRC                   C40EC84E (3289303118)\n+65C3D6 Compressed Size       00000D18 (3352)\n+65C3DA Uncompressed Size     00000D18 (3352)\n+\n+65C3DE LOCAL HEADER #1845    04034B50 (67324752)\n+65C3E2 Extract Zip Spec      14 (20) '2.0'\n+65C3E3 Extract OS            00 (0) 'MS-DOS'\n+65C3E4 General Purpose Flag  0000 (0)\n+65C3E6 Compression Method    0000 (0) 'Stored'\n+65C3E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65C3EC CRC                   00000000 (0)\n+65C3F0 Compressed Size       00000000 (0)\n+65C3F4 Uncompressed Size     00000000 (0)\n+65C3F8 Filename Length       0024 (36)\n+65C3FA Extra Length          0009 (9)\n+65C3FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65C3FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65C420 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65C422   Length              0005 (5)\n+65C424   Flags               01 (1) 'Modification'\n+65C425   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+65C429 LOCAL HEADER #1846    04034B50 (67324752)\n+65C42D Extract Zip Spec      14 (20) '2.0'\n+65C42E Extract OS            00 (0) 'MS-DOS'\n+65C42F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+65C431 Compression Method    0000 (0) 'Stored'\n+65C433 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+65C437 CRC                   00000000 (0)\n+65C43B Compressed Size       00000000 (0)\n+65C43F Uncompressed Size     00000000 (0)\n+65C443 Filename Length       003D (61)\n+65C445 Extra Length          0009 (9)\n+65C447 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x65C447: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+65C484 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+65C486   Length              0005 (5)\n+65C488   Flags               01 (1) 'Modification'\n+65C489   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+65C48D PAYLOAD\n+\n+660412 DATA DESCRIPTOR       08074B50 (134695760)\n+660416 CRC                   5F5E6ACD (1600023245)\n+66041A Compressed Size       00003F85 (16261)\n+66041E Uncompressed Size     00003F85 (16261)\n+\n+660422 LOCAL HEADER #1847    04034B50 (67324752)\n+660426 Extract Zip Spec      14 (20) '2.0'\n+660427 Extract OS            00 (0) 'MS-DOS'\n+660428 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+66042A Compression Method    0000 (0) 'Stored'\n+66042C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+660430 CRC                   00000000 (0)\n+660434 Compressed Size       00000000 (0)\n+660438 Uncompressed Size     00000000 (0)\n+66043C Filename Length       003E (62)\n+66043E Extra Length          0009 (9)\n+660440 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x660440: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66047E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+660480   Length              0005 (5)\n+660482   Flags               01 (1) 'Modification'\n+660483   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+660487 PAYLOAD\n+\n+661E21 DATA DESCRIPTOR       08074B50 (134695760)\n+661E25 CRC                   980C94D0 (2550961360)\n+661E29 Compressed Size       0000199A (6554)\n+661E2D Uncompressed Size     0000199A (6554)\n+\n+661E31 LOCAL HEADER #1848    04034B50 (67324752)\n+661E35 Extract Zip Spec      14 (20) '2.0'\n+661E36 Extract OS            00 (0) 'MS-DOS'\n+661E37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+661E39 Compression Method    0000 (0) 'Stored'\n+661E3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+661E3F CRC                   00000000 (0)\n+661E43 Compressed Size       00000000 (0)\n+661E47 Uncompressed Size     00000000 (0)\n+661E4B Filename Length       0032 (50)\n+661E4D Extra Length          0009 (9)\n+661E4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x661E4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+661E81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+661E83   Length              0005 (5)\n+661E85   Flags               01 (1) 'Modification'\n+661E86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+661E8A PAYLOAD\n+\n+662789 DATA DESCRIPTOR       08074B50 (134695760)\n+66278D CRC                   4C7D08FC (1283262716)\n+662791 Compressed Size       000008FF (2303)\n+662795 Uncompressed Size     000008FF (2303)\n+\n+662799 LOCAL HEADER #1849    04034B50 (67324752)\n+66279D Extract Zip Spec      14 (20) '2.0'\n+66279E Extract OS            00 (0) 'MS-DOS'\n+66279F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6627A1 Compression Method    0000 (0) 'Stored'\n+6627A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6627A7 CRC                   00000000 (0)\n+6627AB Compressed Size       00000000 (0)\n+6627AF Uncompressed Size     00000000 (0)\n+6627B3 Filename Length       0040 (64)\n+6627B5 Extra Length          0009 (9)\n+6627B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6627B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6627F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6627F9   Length              0005 (5)\n+6627FB   Flags               01 (1) 'Modification'\n+6627FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+662800 PAYLOAD\n+\n+6647F9 DATA DESCRIPTOR       08074B50 (134695760)\n+6647FD CRC                   EAE8515F (3941093727)\n+664801 Compressed Size       00001FF9 (8185)\n+664805 Uncompressed Size     00001FF9 (8185)\n+\n+664809 LOCAL HEADER #1850    04034B50 (67324752)\n+66480D Extract Zip Spec      14 (20) '2.0'\n+66480E Extract OS            00 (0) 'MS-DOS'\n+66480F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+664811 Compression Method    0000 (0) 'Stored'\n+664813 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+664817 CRC                   00000000 (0)\n+66481B Compressed Size       00000000 (0)\n+66481F Uncompressed Size     00000000 (0)\n+664823 Filename Length       003C (60)\n+664825 Extra Length          0009 (9)\n+664827 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x664827: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+664863 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+664865   Length              0005 (5)\n+664867   Flags               01 (1) 'Modification'\n+664868   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66486C PAYLOAD\n+\n+6664C4 DATA DESCRIPTOR       08074B50 (134695760)\n+6664C8 CRC                   E202F321 (3791844129)\n+6664CC Compressed Size       00001C58 (7256)\n+6664D0 Uncompressed Size     00001C58 (7256)\n+\n+6664D4 LOCAL HEADER #1851    04034B50 (67324752)\n+6664D8 Extract Zip Spec      14 (20) '2.0'\n+6664D9 Extract OS            00 (0) 'MS-DOS'\n+6664DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6664DC Compression Method    0000 (0) 'Stored'\n+6664DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6664E2 CRC                   00000000 (0)\n+6664E6 Compressed Size       00000000 (0)\n+6664EA Uncompressed Size     00000000 (0)\n+6664EE Filename Length       0033 (51)\n+6664F0 Extra Length          0009 (9)\n+6664F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6664F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+666525 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+666527   Length              0005 (5)\n+666529   Flags               01 (1) 'Modification'\n+66652A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66652E PAYLOAD\n+\n+66910D DATA DESCRIPTOR       08074B50 (134695760)\n+669111 CRC                   DBBCD787 (3686586247)\n+669115 Compressed Size       00002BDF (11231)\n+669119 Uncompressed Size     00002BDF (11231)\n+\n+66911D LOCAL HEADER #1852    04034B50 (67324752)\n+669121 Extract Zip Spec      14 (20) '2.0'\n+669122 Extract OS            00 (0) 'MS-DOS'\n+669123 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+669125 Compression Method    0000 (0) 'Stored'\n+669127 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66912B CRC                   00000000 (0)\n+66912F Compressed Size       00000000 (0)\n+669133 Uncompressed Size     00000000 (0)\n+669137 Filename Length       003A (58)\n+669139 Extra Length          0009 (9)\n+66913B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66913B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+669175 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+669177   Length              0005 (5)\n+669179   Flags               01 (1) 'Modification'\n+66917A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66917E PAYLOAD\n+\n+669BCC DATA DESCRIPTOR       08074B50 (134695760)\n+669BD0 CRC                   E1297FD5 (3777593301)\n+669BD4 Compressed Size       00000A4E (2638)\n+669BD8 Uncompressed Size     00000A4E (2638)\n+\n+669BDC LOCAL HEADER #1853    04034B50 (67324752)\n+669BE0 Extract Zip Spec      14 (20) '2.0'\n+669BE1 Extract OS            00 (0) 'MS-DOS'\n+669BE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+669BE4 Compression Method    0000 (0) 'Stored'\n+669BE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+669BEA CRC                   00000000 (0)\n+669BEE Compressed Size       00000000 (0)\n+669BF2 Uncompressed Size     00000000 (0)\n+669BF6 Filename Length       0038 (56)\n+669BF8 Extra Length          0009 (9)\n+669BFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x669BFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+669C32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+669C34   Length              0005 (5)\n+669C36   Flags               01 (1) 'Modification'\n+669C37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+669C3B PAYLOAD\n+\n+66A8AF DATA DESCRIPTOR       08074B50 (134695760)\n+66A8B3 CRC                   CDBF443E (3451864126)\n+66A8B7 Compressed Size       00000C74 (3188)\n+66A8BB Uncompressed Size     00000C74 (3188)\n+\n+66A8BF LOCAL HEADER #1854    04034B50 (67324752)\n+66A8C3 Extract Zip Spec      14 (20) '2.0'\n+66A8C4 Extract OS            00 (0) 'MS-DOS'\n+66A8C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+66A8C7 Compression Method    0000 (0) 'Stored'\n+66A8C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66A8CD CRC                   00000000 (0)\n+66A8D1 Compressed Size       00000000 (0)\n+66A8D5 Uncompressed Size     00000000 (0)\n+66A8D9 Filename Length       0036 (54)\n+66A8DB Extra Length          0009 (9)\n+66A8DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66A8DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66A913 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66A915   Length              0005 (5)\n+66A917   Flags               01 (1) 'Modification'\n+66A918   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66A91C PAYLOAD\n+\n+66AEF9 DATA DESCRIPTOR       08074B50 (134695760)\n+66AEFD CRC                   151E182C (354293804)\n+66AF01 Compressed Size       000005DD (1501)\n+66AF05 Uncompressed Size     000005DD (1501)\n+\n+66AF09 LOCAL HEADER #1855    04034B50 (67324752)\n+66AF0D Extract Zip Spec      14 (20) '2.0'\n+66AF0E Extract OS            00 (0) 'MS-DOS'\n+66AF0F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+66AF11 Compression Method    0000 (0) 'Stored'\n+66AF13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66AF17 CRC                   00000000 (0)\n+66AF1B Compressed Size       00000000 (0)\n+66AF1F Uncompressed Size     00000000 (0)\n+66AF23 Filename Length       0035 (53)\n+66AF25 Extra Length          0009 (9)\n+66AF27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66AF27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66AF5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66AF5E   Length              0005 (5)\n+66AF60   Flags               01 (1) 'Modification'\n+66AF61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66AF65 PAYLOAD\n+\n+66CFF5 DATA DESCRIPTOR       08074B50 (134695760)\n+66CFF9 CRC                   39CBA339 (969646905)\n+66CFFD Compressed Size       00002090 (8336)\n+66D001 Uncompressed Size     00002090 (8336)\n+\n+66D005 LOCAL HEADER #1856    04034B50 (67324752)\n+66D009 Extract Zip Spec      14 (20) '2.0'\n+66D00A Extract OS            00 (0) 'MS-DOS'\n+66D00B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+66D00D Compression Method    0000 (0) 'Stored'\n+66D00F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+66D013 CRC                   00000000 (0)\n+66D017 Compressed Size       00000000 (0)\n+66D01B Uncompressed Size     00000000 (0)\n+66D01F Filename Length       0036 (54)\n+66D021 Extra Length          0009 (9)\n+66D023 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x66D023: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+66D059 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+66D05B   Length              0005 (5)\n+66D05D   Flags               01 (1) 'Modification'\n+66D05E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+66D062 PAYLOAD\n+\n+673E47 DATA DESCRIPTOR       08074B50 (134695760)\n+673E4B CRC                   07C16F02 (130117378)\n+673E4F Compressed Size       00006DE5 (28133)\n+673E53 Uncompressed Size     00006DE5 (28133)\n+\n+673E57 LOCAL HEADER #1857    04034B50 (67324752)\n+673E5B Extract Zip Spec      14 (20) '2.0'\n+673E5C Extract OS            00 (0) 'MS-DOS'\n+673E5D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+673E5F Compression Method    0000 (0) 'Stored'\n+673E61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+673E65 CRC                   00000000 (0)\n+673E69 Compressed Size       00000000 (0)\n+673E6D Uncompressed Size     00000000 (0)\n+673E71 Filename Length       003C (60)\n+673E73 Extra Length          0009 (9)\n+673E75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x673E75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+673EB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+673EB3   Length              0005 (5)\n+673EB5   Flags               01 (1) 'Modification'\n+673EB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+673EBA PAYLOAD\n+\n+67460C DATA DESCRIPTOR       08074B50 (134695760)\n+674610 CRC                   DA119291 (3658584721)\n+674614 Compressed Size       00000752 (1874)\n+674618 Uncompressed Size     00000752 (1874)\n+\n+67461C LOCAL HEADER #1858    04034B50 (67324752)\n+674620 Extract Zip Spec      14 (20) '2.0'\n+674621 Extract OS            00 (0) 'MS-DOS'\n+674622 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+674624 Compression Method    0000 (0) 'Stored'\n+674626 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67462A CRC                   00000000 (0)\n+67462E Compressed Size       00000000 (0)\n+674632 Uncompressed Size     00000000 (0)\n+674636 Filename Length       0036 (54)\n+674638 Extra Length          0009 (9)\n+67463A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67463A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+674670 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+674672   Length              0005 (5)\n+674674   Flags               01 (1) 'Modification'\n+674675   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+674679 PAYLOAD\n+\n+67548A DATA DESCRIPTOR       08074B50 (134695760)\n+67548E CRC                   3F21380C (1059141644)\n+675492 Compressed Size       00000E11 (3601)\n+675496 Uncompressed Size     00000E11 (3601)\n+\n+67549A LOCAL HEADER #1859    04034B50 (67324752)\n+67549E Extract Zip Spec      14 (20) '2.0'\n+67549F Extract OS            00 (0) 'MS-DOS'\n+6754A0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6754A2 Compression Method    0000 (0) 'Stored'\n+6754A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6754A8 CRC                   00000000 (0)\n+6754AC Compressed Size       00000000 (0)\n+6754B0 Uncompressed Size     00000000 (0)\n+6754B4 Filename Length       0042 (66)\n+6754B6 Extra Length          0009 (9)\n+6754B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6754B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6754FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6754FC   Length              0005 (5)\n+6754FE   Flags               01 (1) 'Modification'\n+6754FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+675503 PAYLOAD\n+\n+6775DC DATA DESCRIPTOR       08074B50 (134695760)\n+6775E0 CRC                   0574FE58 (91553368)\n+6775E4 Compressed Size       000020D9 (8409)\n+6775E8 Uncompressed Size     000020D9 (8409)\n+\n+6775EC LOCAL HEADER #1860    04034B50 (67324752)\n+6775F0 Extract Zip Spec      14 (20) '2.0'\n+6775F1 Extract OS            00 (0) 'MS-DOS'\n+6775F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6775F4 Compression Method    0000 (0) 'Stored'\n+6775F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6775FA CRC                   00000000 (0)\n+6775FE Compressed Size       00000000 (0)\n+677602 Uncompressed Size     00000000 (0)\n+677606 Filename Length       0045 (69)\n+677608 Extra Length          0009 (9)\n+67760A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67760A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67764F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+677651   Length              0005 (5)\n+677653   Flags               01 (1) 'Modification'\n+677654   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+677658 PAYLOAD\n+\n+678EF2 DATA DESCRIPTOR       08074B50 (134695760)\n+678EF6 CRC                   B5644E62 (3043249762)\n+678EFA Compressed Size       0000189A (6298)\n+678EFE Uncompressed Size     0000189A (6298)\n+\n+678F02 LOCAL HEADER #1861    04034B50 (67324752)\n+678F06 Extract Zip Spec      14 (20) '2.0'\n+678F07 Extract OS            00 (0) 'MS-DOS'\n+678F08 General Purpose Flag  0000 (0)\n+678F0A Compression Method    0000 (0) 'Stored'\n+678F0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+678F10 CRC                   00000000 (0)\n+678F14 Compressed Size       00000000 (0)\n+678F18 Uncompressed Size     00000000 (0)\n+678F1C Filename Length       002B (43)\n+678F1E Extra Length          0009 (9)\n+678F20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x678F20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+678F4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+678F4D   Length              0005 (5)\n+678F4F   Flags               01 (1) 'Modification'\n+678F50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+678F54 LOCAL HEADER #1862    04034B50 (67324752)\n+678F58 Extract Zip Spec      14 (20) '2.0'\n+678F59 Extract OS            00 (0) 'MS-DOS'\n+678F5A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+678F5C Compression Method    0000 (0) 'Stored'\n+678F5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+678F62 CRC                   00000000 (0)\n+678F66 Compressed Size       00000000 (0)\n+678F6A Uncompressed Size     00000000 (0)\n+678F6E Filename Length       003C (60)\n+678F70 Extra Length          0009 (9)\n+678F72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x678F72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+678FAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+678FB0   Length              0005 (5)\n+678FB2   Flags               01 (1) 'Modification'\n+678FB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+678FB7 PAYLOAD\n+\n+67B2AA DATA DESCRIPTOR       08074B50 (134695760)\n+67B2AE CRC                   45086F19 (1158180633)\n+67B2B2 Compressed Size       000022F3 (8947)\n+67B2B6 Uncompressed Size     000022F3 (8947)\n+\n+67B2BA LOCAL HEADER #1863    04034B50 (67324752)\n+67B2BE Extract Zip Spec      14 (20) '2.0'\n+67B2BF Extract OS            00 (0) 'MS-DOS'\n+67B2C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67B2C2 Compression Method    0000 (0) 'Stored'\n+67B2C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67B2C8 CRC                   00000000 (0)\n+67B2CC Compressed Size       00000000 (0)\n+67B2D0 Uncompressed Size     00000000 (0)\n+67B2D4 Filename Length       003B (59)\n+67B2D6 Extra Length          0009 (9)\n+67B2D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67B2D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67B313 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67B315   Length              0005 (5)\n+67B317   Flags               01 (1) 'Modification'\n+67B318   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67B31C PAYLOAD\n+\n+67C9E3 DATA DESCRIPTOR       08074B50 (134695760)\n+67C9E7 CRC                   57E4B8CF (1474607311)\n+67C9EB Compressed Size       000016C7 (5831)\n+67C9EF Uncompressed Size     000016C7 (5831)\n+\n+67C9F3 LOCAL HEADER #1864    04034B50 (67324752)\n+67C9F7 Extract Zip Spec      14 (20) '2.0'\n+67C9F8 Extract OS            00 (0) 'MS-DOS'\n+67C9F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67C9FB Compression Method    0000 (0) 'Stored'\n+67C9FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67CA01 CRC                   00000000 (0)\n+67CA05 Compressed Size       00000000 (0)\n+67CA09 Uncompressed Size     00000000 (0)\n+67CA0D Filename Length       0035 (53)\n+67CA0F Extra Length          0009 (9)\n+67CA11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67CA11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67CA46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67CA48   Length              0005 (5)\n+67CA4A   Flags               01 (1) 'Modification'\n+67CA4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67CA4F PAYLOAD\n+\n+67CE6D DATA DESCRIPTOR       08074B50 (134695760)\n+67CE71 CRC                   49F89DC8 (1241030088)\n+67CE75 Compressed Size       0000041E (1054)\n+67CE79 Uncompressed Size     0000041E (1054)\n+\n+67CE7D LOCAL HEADER #1865    04034B50 (67324752)\n+67CE81 Extract Zip Spec      14 (20) '2.0'\n+67CE82 Extract OS            00 (0) 'MS-DOS'\n+67CE83 General Purpose Flag  0000 (0)\n+67CE85 Compression Method    0000 (0) 'Stored'\n+67CE87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67CE8B CRC                   00000000 (0)\n+67CE8F Compressed Size       00000000 (0)\n+67CE93 Uncompressed Size     00000000 (0)\n+67CE97 Filename Length       002B (43)\n+67CE99 Extra Length          0009 (9)\n+67CE9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67CE9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67CEC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67CEC8   Length              0005 (5)\n+67CECA   Flags               01 (1) 'Modification'\n+67CECB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67CECF LOCAL HEADER #1866    04034B50 (67324752)\n+67CED3 Extract Zip Spec      14 (20) '2.0'\n+67CED4 Extract OS            00 (0) 'MS-DOS'\n+67CED5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67CED7 Compression Method    0000 (0) 'Stored'\n+67CED9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67CEDD CRC                   00000000 (0)\n+67CEE1 Compressed Size       00000000 (0)\n+67CEE5 Uncompressed Size     00000000 (0)\n+67CEE9 Filename Length       0043 (67)\n+67CEEB Extra Length          0009 (9)\n+67CEED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67CEED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67CF30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67CF32   Length              0005 (5)\n+67CF34   Flags               01 (1) 'Modification'\n+67CF35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67CF39 PAYLOAD\n+\n+67D85A DATA DESCRIPTOR       08074B50 (134695760)\n+67D85E CRC                   A77D588D (2810009741)\n+67D862 Compressed Size       00000921 (2337)\n+67D866 Uncompressed Size     00000921 (2337)\n+\n+67D86A LOCAL HEADER #1867    04034B50 (67324752)\n+67D86E Extract Zip Spec      14 (20) '2.0'\n+67D86F Extract OS            00 (0) 'MS-DOS'\n+67D870 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67D872 Compression Method    0000 (0) 'Stored'\n+67D874 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67D878 CRC                   00000000 (0)\n+67D87C Compressed Size       00000000 (0)\n+67D880 Uncompressed Size     00000000 (0)\n+67D884 Filename Length       0047 (71)\n+67D886 Extra Length          0009 (9)\n+67D888 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67D888: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67D8CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67D8D1   Length              0005 (5)\n+67D8D3   Flags               01 (1) 'Modification'\n+67D8D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67D8D8 PAYLOAD\n+\n+67E4A1 DATA DESCRIPTOR       08074B50 (134695760)\n+67E4A5 CRC                   DF443A2F (3745790511)\n+67E4A9 Compressed Size       00000BC9 (3017)\n+67E4AD Uncompressed Size     00000BC9 (3017)\n+\n+67E4B1 LOCAL HEADER #1868    04034B50 (67324752)\n+67E4B5 Extract Zip Spec      14 (20) '2.0'\n+67E4B6 Extract OS            00 (0) 'MS-DOS'\n+67E4B7 General Purpose Flag  0000 (0)\n+67E4B9 Compression Method    0000 (0) 'Stored'\n+67E4BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67E4BF CRC                   00000000 (0)\n+67E4C3 Compressed Size       00000000 (0)\n+67E4C7 Uncompressed Size     00000000 (0)\n+67E4CB Filename Length       0023 (35)\n+67E4CD Extra Length          0009 (9)\n+67E4CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67E4CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67E4F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67E4F4   Length              0005 (5)\n+67E4F6   Flags               01 (1) 'Modification'\n+67E4F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+67E4FB LOCAL HEADER #1869    04034B50 (67324752)\n+67E4FF Extract Zip Spec      14 (20) '2.0'\n+67E500 Extract OS            00 (0) 'MS-DOS'\n+67E501 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67E503 Compression Method    0000 (0) 'Stored'\n+67E505 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67E509 CRC                   00000000 (0)\n+67E50D Compressed Size       00000000 (0)\n+67E511 Uncompressed Size     00000000 (0)\n+67E515 Filename Length       003C (60)\n+67E517 Extra Length          0009 (9)\n+67E519 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67E519: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67E555 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67E557   Length              0005 (5)\n+67E559   Flags               01 (1) 'Modification'\n+67E55A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67E55E PAYLOAD\n+\n+67F000 DATA DESCRIPTOR       08074B50 (134695760)\n+67F004 CRC                   01526E5B (22179419)\n+67F008 Compressed Size       00000AA2 (2722)\n+67F00C Uncompressed Size     00000AA2 (2722)\n+\n+67F010 LOCAL HEADER #1870    04034B50 (67324752)\n+67F014 Extract Zip Spec      14 (20) '2.0'\n+67F015 Extract OS            00 (0) 'MS-DOS'\n+67F016 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67F018 Compression Method    0000 (0) 'Stored'\n+67F01A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67F01E CRC                   00000000 (0)\n+67F022 Compressed Size       00000000 (0)\n+67F026 Uncompressed Size     00000000 (0)\n+67F02A Filename Length       0032 (50)\n+67F02C Extra Length          0009 (9)\n+67F02E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67F02E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67F060 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67F062   Length              0005 (5)\n+67F064   Flags               01 (1) 'Modification'\n+67F065   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67F069 PAYLOAD\n+\n+67F3EA DATA DESCRIPTOR       08074B50 (134695760)\n+67F3EE CRC                   D457458D (3562489229)\n+67F3F2 Compressed Size       00000381 (897)\n+67F3F6 Uncompressed Size     00000381 (897)\n+\n+67F3FA LOCAL HEADER #1871    04034B50 (67324752)\n+67F3FE Extract Zip Spec      14 (20) '2.0'\n+67F3FF Extract OS            00 (0) 'MS-DOS'\n+67F400 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67F402 Compression Method    0000 (0) 'Stored'\n+67F404 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67F408 CRC                   00000000 (0)\n+67F40C Compressed Size       00000000 (0)\n+67F410 Uncompressed Size     00000000 (0)\n+67F414 Filename Length       0035 (53)\n+67F416 Extra Length          0009 (9)\n+67F418 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67F418: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67F44D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67F44F   Length              0005 (5)\n+67F451   Flags               01 (1) 'Modification'\n+67F452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67F456 PAYLOAD\n+\n+67FC1D DATA DESCRIPTOR       08074B50 (134695760)\n+67FC21 CRC                   73B49906 (1941215494)\n+67FC25 Compressed Size       000007C7 (1991)\n+67FC29 Uncompressed Size     000007C7 (1991)\n+\n+67FC2D LOCAL HEADER #1872    04034B50 (67324752)\n+67FC31 Extract Zip Spec      14 (20) '2.0'\n+67FC32 Extract OS            00 (0) 'MS-DOS'\n+67FC33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+67FC35 Compression Method    0000 (0) 'Stored'\n+67FC37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+67FC3B CRC                   00000000 (0)\n+67FC3F Compressed Size       00000000 (0)\n+67FC43 Uncompressed Size     00000000 (0)\n+67FC47 Filename Length       0033 (51)\n+67FC49 Extra Length          0009 (9)\n+67FC4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x67FC4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+67FC7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+67FC80   Length              0005 (5)\n+67FC82   Flags               01 (1) 'Modification'\n+67FC83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+67FC87 PAYLOAD\n+\n+680CE2 DATA DESCRIPTOR       08074B50 (134695760)\n+680CE6 CRC                   7E6F88F1 (2121238769)\n+680CEA Compressed Size       0000105B (4187)\n+680CEE Uncompressed Size     0000105B (4187)\n+\n+680CF2 LOCAL HEADER #1873    04034B50 (67324752)\n+680CF6 Extract Zip Spec      14 (20) '2.0'\n+680CF7 Extract OS            00 (0) 'MS-DOS'\n+680CF8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+680CFA Compression Method    0000 (0) 'Stored'\n+680CFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+680D00 CRC                   00000000 (0)\n+680D04 Compressed Size       00000000 (0)\n+680D08 Uncompressed Size     00000000 (0)\n+680D0C Filename Length       0038 (56)\n+680D0E Extra Length          0009 (9)\n+680D10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x680D10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+680D48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+680D4A   Length              0005 (5)\n+680D4C   Flags               01 (1) 'Modification'\n+680D4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+680D51 PAYLOAD\n+\n+68370D DATA DESCRIPTOR       08074B50 (134695760)\n+683711 CRC                   65B11F2E (1706106670)\n+683715 Compressed Size       000029BC (10684)\n+683719 Uncompressed Size     000029BC (10684)\n+\n+68371D LOCAL HEADER #1874    04034B50 (67324752)\n+683721 Extract Zip Spec      14 (20) '2.0'\n+683722 Extract OS            00 (0) 'MS-DOS'\n+683723 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+683725 Compression Method    0000 (0) 'Stored'\n+683727 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68372B CRC                   00000000 (0)\n+68372F Compressed Size       00000000 (0)\n+683733 Uncompressed Size     00000000 (0)\n+683737 Filename Length       0034 (52)\n+683739 Extra Length          0009 (9)\n+68373B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68373B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68376F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+683771   Length              0005 (5)\n+683773   Flags               01 (1) 'Modification'\n+683774   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+683778 PAYLOAD\n+\n+685973 DATA DESCRIPTOR       08074B50 (134695760)\n+685977 CRC                   ECC477BE (3972298686)\n+68597B Compressed Size       000021FB (8699)\n+68597F Uncompressed Size     000021FB (8699)\n+\n+685983 LOCAL HEADER #1875    04034B50 (67324752)\n+685987 Extract Zip Spec      14 (20) '2.0'\n+685988 Extract OS            00 (0) 'MS-DOS'\n+685989 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68598B Compression Method    0000 (0) 'Stored'\n+68598D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+685991 CRC                   00000000 (0)\n+685995 Compressed Size       00000000 (0)\n+685999 Uncompressed Size     00000000 (0)\n+68599D Filename Length       0044 (68)\n+68599F Extra Length          0009 (9)\n+6859A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6859A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6859E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6859E7   Length              0005 (5)\n+6859E9   Flags               01 (1) 'Modification'\n+6859EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6859EE PAYLOAD\n+\n+686481 DATA DESCRIPTOR       08074B50 (134695760)\n+686485 CRC                   67A5A923 (1738909987)\n+686489 Compressed Size       00000A93 (2707)\n+68648D Uncompressed Size     00000A93 (2707)\n+\n+686491 LOCAL HEADER #1876    04034B50 (67324752)\n+686495 Extract Zip Spec      14 (20) '2.0'\n+686496 Extract OS            00 (0) 'MS-DOS'\n+686497 General Purpose Flag  0000 (0)\n+686499 Compression Method    0000 (0) 'Stored'\n+68649B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68649F CRC                   00000000 (0)\n+6864A3 Compressed Size       00000000 (0)\n+6864A7 Uncompressed Size     00000000 (0)\n+6864AB Filename Length       0030 (48)\n+6864AD Extra Length          0009 (9)\n+6864AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6864AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6864DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6864E1   Length              0005 (5)\n+6864E3   Flags               01 (1) 'Modification'\n+6864E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6864E8 LOCAL HEADER #1877    04034B50 (67324752)\n+6864EC Extract Zip Spec      14 (20) '2.0'\n+6864ED Extract OS            00 (0) 'MS-DOS'\n+6864EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6864F0 Compression Method    0000 (0) 'Stored'\n+6864F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6864F6 CRC                   00000000 (0)\n+6864FA Compressed Size       00000000 (0)\n+6864FE Uncompressed Size     00000000 (0)\n+686502 Filename Length       0046 (70)\n+686504 Extra Length          0009 (9)\n+686506 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x686506: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68654C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68654E   Length              0005 (5)\n+686550   Flags               01 (1) 'Modification'\n+686551   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+686555 PAYLOAD\n+\n+6869B5 DATA DESCRIPTOR       08074B50 (134695760)\n+6869B9 CRC                   63B2617E (1672634750)\n+6869BD Compressed Size       00000460 (1120)\n+6869C1 Uncompressed Size     00000460 (1120)\n+\n+6869C5 LOCAL HEADER #1878    04034B50 (67324752)\n+6869C9 Extract Zip Spec      14 (20) '2.0'\n+6869CA Extract OS            00 (0) 'MS-DOS'\n+6869CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6869CD Compression Method    0000 (0) 'Stored'\n+6869CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6869D3 CRC                   00000000 (0)\n+6869D7 Compressed Size       00000000 (0)\n+6869DB Uncompressed Size     00000000 (0)\n+6869DF Filename Length       0045 (69)\n+6869E1 Extra Length          0009 (9)\n+6869E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6869E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+686A28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+686A2A   Length              0005 (5)\n+686A2C   Flags               01 (1) 'Modification'\n+686A2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+686A31 PAYLOAD\n+\n+68700C DATA DESCRIPTOR       08074B50 (134695760)\n+687010 CRC                   1AFA4B4D (452610893)\n+687014 Compressed Size       000005DB (1499)\n+687018 Uncompressed Size     000005DB (1499)\n+\n+68701C LOCAL HEADER #1879    04034B50 (67324752)\n+687020 Extract Zip Spec      14 (20) '2.0'\n+687021 Extract OS            00 (0) 'MS-DOS'\n+687022 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+687024 Compression Method    0000 (0) 'Stored'\n+687026 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68702A CRC                   00000000 (0)\n+68702E Compressed Size       00000000 (0)\n+687032 Uncompressed Size     00000000 (0)\n+687036 Filename Length       004A (74)\n+687038 Extra Length          0009 (9)\n+68703A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68703A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+687084 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+687086   Length              0005 (5)\n+687088   Flags               01 (1) 'Modification'\n+687089   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68708D PAYLOAD\n+\n+688211 DATA DESCRIPTOR       08074B50 (134695760)\n+688215 CRC                   25DC5E62 (635199074)\n+688219 Compressed Size       00001184 (4484)\n+68821D Uncompressed Size     00001184 (4484)\n+\n+688221 LOCAL HEADER #1880    04034B50 (67324752)\n+688225 Extract Zip Spec      14 (20) '2.0'\n+688226 Extract OS            00 (0) 'MS-DOS'\n+688227 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+688229 Compression Method    0000 (0) 'Stored'\n+68822B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68822F CRC                   00000000 (0)\n+688233 Compressed Size       00000000 (0)\n+688237 Uncompressed Size     00000000 (0)\n+68823B Filename Length       0046 (70)\n+68823D Extra Length          0009 (9)\n+68823F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68823F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+688285 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+688287   Length              0005 (5)\n+688289   Flags               01 (1) 'Modification'\n+68828A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68828E PAYLOAD\n+\n+6886EE DATA DESCRIPTOR       08074B50 (134695760)\n+6886F2 CRC                   AADBB488 (2866525320)\n+6886F6 Compressed Size       00000460 (1120)\n+6886FA Uncompressed Size     00000460 (1120)\n+\n+6886FE LOCAL HEADER #1881    04034B50 (67324752)\n+688702 Extract Zip Spec      14 (20) '2.0'\n+688703 Extract OS            00 (0) 'MS-DOS'\n+688704 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+688706 Compression Method    0000 (0) 'Stored'\n+688708 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68870C CRC                   00000000 (0)\n+688710 Compressed Size       00000000 (0)\n+688714 Uncompressed Size     00000000 (0)\n+688718 Filename Length       004A (74)\n+68871A Extra Length          0009 (9)\n+68871C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68871C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+688766 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+688768   Length              0005 (5)\n+68876A   Flags               01 (1) 'Modification'\n+68876B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68876F PAYLOAD\n+\n+688BEB DATA DESCRIPTOR       08074B50 (134695760)\n+688BEF CRC                   BEF6AA62 (3203836514)\n+688BF3 Compressed Size       0000047C (1148)\n+688BF7 Uncompressed Size     0000047C (1148)\n+\n+688BFB LOCAL HEADER #1882    04034B50 (67324752)\n+688BFF Extract Zip Spec      14 (20) '2.0'\n+688C00 Extract OS            00 (0) 'MS-DOS'\n+688C01 General Purpose Flag  0000 (0)\n+688C03 Compression Method    0000 (0) 'Stored'\n+688C05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+688C09 CRC                   00000000 (0)\n+688C0D Compressed Size       00000000 (0)\n+688C11 Uncompressed Size     00000000 (0)\n+688C15 Filename Length       0026 (38)\n+688C17 Extra Length          0009 (9)\n+688C19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x688C19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+688C3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+688C41   Length              0005 (5)\n+688C43   Flags               01 (1) 'Modification'\n+688C44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+688C48 LOCAL HEADER #1883    04034B50 (67324752)\n+688C4C Extract Zip Spec      14 (20) '2.0'\n+688C4D Extract OS            00 (0) 'MS-DOS'\n+688C4E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+688C50 Compression Method    0000 (0) 'Stored'\n+688C52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+688C56 CRC                   00000000 (0)\n+688C5A Compressed Size       00000000 (0)\n+688C5E Uncompressed Size     00000000 (0)\n+688C62 Filename Length       0034 (52)\n+688C64 Extra Length          0009 (9)\n+688C66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x688C66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+688C9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+688C9C   Length              0005 (5)\n+688C9E   Flags               01 (1) 'Modification'\n+688C9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+688CA3 PAYLOAD\n+\n+68914E DATA DESCRIPTOR       08074B50 (134695760)\n+689152 CRC                   626BA0DE (1651220702)\n+689156 Compressed Size       000004AB (1195)\n+68915A Uncompressed Size     000004AB (1195)\n+\n+68915E LOCAL HEADER #1884    04034B50 (67324752)\n+689162 Extract Zip Spec      14 (20) '2.0'\n+689163 Extract OS            00 (0) 'MS-DOS'\n+689164 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+689166 Compression Method    0000 (0) 'Stored'\n+689168 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68916C CRC                   00000000 (0)\n+689170 Compressed Size       00000000 (0)\n+689174 Uncompressed Size     00000000 (0)\n+689178 Filename Length       004B (75)\n+68917A Extra Length          0009 (9)\n+68917C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68917C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6891C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6891C9   Length              0005 (5)\n+6891CB   Flags               01 (1) 'Modification'\n+6891CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6891D0 PAYLOAD\n+\n+68982B DATA DESCRIPTOR       08074B50 (134695760)\n+68982F CRC                   BA6404A6 (3127116966)\n+689833 Compressed Size       0000065B (1627)\n+689837 Uncompressed Size     0000065B (1627)\n+\n+68983B LOCAL HEADER #1885    04034B50 (67324752)\n+68983F Extract Zip Spec      14 (20) '2.0'\n+689840 Extract OS            00 (0) 'MS-DOS'\n+689841 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+689843 Compression Method    0000 (0) 'Stored'\n+689845 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+689849 CRC                   00000000 (0)\n+68984D Compressed Size       00000000 (0)\n+689851 Uncompressed Size     00000000 (0)\n+689855 Filename Length       003A (58)\n+689857 Extra Length          0009 (9)\n+689859 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x689859: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+689893 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+689895   Length              0005 (5)\n+689897   Flags               01 (1) 'Modification'\n+689898   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68989C PAYLOAD\n+\n+68BB59 DATA DESCRIPTOR       08074B50 (134695760)\n+68BB5D CRC                   ED0697F4 (3976632308)\n+68BB61 Compressed Size       000022BD (8893)\n+68BB65 Uncompressed Size     000022BD (8893)\n+\n+68BB69 LOCAL HEADER #1886    04034B50 (67324752)\n+68BB6D Extract Zip Spec      14 (20) '2.0'\n+68BB6E Extract OS            00 (0) 'MS-DOS'\n+68BB6F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68BB71 Compression Method    0000 (0) 'Stored'\n+68BB73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68BB77 CRC                   00000000 (0)\n+68BB7B Compressed Size       00000000 (0)\n+68BB7F Uncompressed Size     00000000 (0)\n+68BB83 Filename Length       003F (63)\n+68BB85 Extra Length          0009 (9)\n+68BB87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68BB87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68BBC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68BBC8   Length              0005 (5)\n+68BBCA   Flags               01 (1) 'Modification'\n+68BBCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68BBCF PAYLOAD\n+\n+68C8C3 DATA DESCRIPTOR       08074B50 (134695760)\n+68C8C7 CRC                   D14D14C7 (3511489735)\n+68C8CB Compressed Size       00000CF4 (3316)\n+68C8CF Uncompressed Size     00000CF4 (3316)\n+\n+68C8D3 LOCAL HEADER #1887    04034B50 (67324752)\n+68C8D7 Extract Zip Spec      14 (20) '2.0'\n+68C8D8 Extract OS            00 (0) 'MS-DOS'\n+68C8D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68C8DB Compression Method    0000 (0) 'Stored'\n+68C8DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68C8E1 CRC                   00000000 (0)\n+68C8E5 Compressed Size       00000000 (0)\n+68C8E9 Uncompressed Size     00000000 (0)\n+68C8ED Filename Length       0046 (70)\n+68C8EF Extra Length          0009 (9)\n+68C8F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68C8F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68C937 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68C939   Length              0005 (5)\n+68C93B   Flags               01 (1) 'Modification'\n+68C93C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68C940 PAYLOAD\n+\n+68D29F DATA DESCRIPTOR       08074B50 (134695760)\n+68D2A3 CRC                   5C6A1FAA (1550458794)\n+68D2A7 Compressed Size       0000095F (2399)\n+68D2AB Uncompressed Size     0000095F (2399)\n+\n+68D2AF LOCAL HEADER #1888    04034B50 (67324752)\n+68D2B3 Extract Zip Spec      14 (20) '2.0'\n+68D2B4 Extract OS            00 (0) 'MS-DOS'\n+68D2B5 General Purpose Flag  0000 (0)\n+68D2B7 Compression Method    0000 (0) 'Stored'\n+68D2B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68D2BD CRC                   00000000 (0)\n+68D2C1 Compressed Size       00000000 (0)\n+68D2C5 Uncompressed Size     00000000 (0)\n+68D2C9 Filename Length       0023 (35)\n+68D2CB Extra Length          0009 (9)\n+68D2CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68D2CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68D2F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68D2F2   Length              0005 (5)\n+68D2F4   Flags               01 (1) 'Modification'\n+68D2F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+68D2F9 LOCAL HEADER #1889    04034B50 (67324752)\n+68D2FD Extract Zip Spec      14 (20) '2.0'\n+68D2FE Extract OS            00 (0) 'MS-DOS'\n+68D2FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68D301 Compression Method    0000 (0) 'Stored'\n+68D303 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68D307 CRC                   00000000 (0)\n+68D30B Compressed Size       00000000 (0)\n+68D30F Uncompressed Size     00000000 (0)\n+68D313 Filename Length       0034 (52)\n+68D315 Extra Length          0009 (9)\n+68D317 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68D317: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68D34B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68D34D   Length              0005 (5)\n+68D34F   Flags               01 (1) 'Modification'\n+68D350   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68D354 PAYLOAD\n+\n+68F19A DATA DESCRIPTOR       08074B50 (134695760)\n+68F19E CRC                   928E5A20 (2458802720)\n+68F1A2 Compressed Size       00001E46 (7750)\n+68F1A6 Uncompressed Size     00001E46 (7750)\n+\n+68F1AA LOCAL HEADER #1890    04034B50 (67324752)\n+68F1AE Extract Zip Spec      14 (20) '2.0'\n+68F1AF Extract OS            00 (0) 'MS-DOS'\n+68F1B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68F1B2 Compression Method    0000 (0) 'Stored'\n+68F1B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68F1B8 CRC                   00000000 (0)\n+68F1BC Compressed Size       00000000 (0)\n+68F1C0 Uncompressed Size     00000000 (0)\n+68F1C4 Filename Length       003D (61)\n+68F1C6 Extra Length          0009 (9)\n+68F1C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68F1C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68F205 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68F207   Length              0005 (5)\n+68F209   Flags               01 (1) 'Modification'\n+68F20A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68F20E PAYLOAD\n+\n+68F637 DATA DESCRIPTOR       08074B50 (134695760)\n+68F63B CRC                   B3BC74DF (3015472351)\n+68F63F Compressed Size       00000429 (1065)\n+68F643 Uncompressed Size     00000429 (1065)\n+\n+68F647 LOCAL HEADER #1891    04034B50 (67324752)\n+68F64B Extract Zip Spec      14 (20) '2.0'\n+68F64C Extract OS            00 (0) 'MS-DOS'\n+68F64D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68F64F Compression Method    0000 (0) 'Stored'\n+68F651 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68F655 CRC                   00000000 (0)\n+68F659 Compressed Size       00000000 (0)\n+68F65D Uncompressed Size     00000000 (0)\n+68F661 Filename Length       003C (60)\n+68F663 Extra Length          0009 (9)\n+68F665 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x68F665: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+68F6A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+68F6A3   Length              0005 (5)\n+68F6A5   Flags               01 (1) 'Modification'\n+68F6A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+68F6AA PAYLOAD\n+\n+68FFD2 DATA DESCRIPTOR       08074B50 (134695760)\n+68FFD6 CRC                   F065E593 (4033209747)\n+68FFDA Compressed Size       00000928 (2344)\n+68FFDE Uncompressed Size     00000928 (2344)\n+\n+68FFE2 LOCAL HEADER #1892    04034B50 (67324752)\n+68FFE6 Extract Zip Spec      14 (20) '2.0'\n+68FFE7 Extract OS            00 (0) 'MS-DOS'\n+68FFE8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+68FFEA Compression Method    0000 (0) 'Stored'\n+68FFEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+68FFF0 CRC                   00000000 (0)\n+68FFF4 Compressed Size       00000000 (0)\n+68FFF8 Uncompressed Size     00000000 (0)\n+68FFFC Filename Length       003F (63)\n+68FFFE Extra Length          0009 (9)\n+690000 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x690000: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69003F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+690041   Length              0005 (5)\n+690043   Flags               01 (1) 'Modification'\n+690044   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+690048 PAYLOAD\n+\n+690BAA DATA DESCRIPTOR       08074B50 (134695760)\n+690BAE CRC                   C56F8EA2 (3312422562)\n+690BB2 Compressed Size       00000B62 (2914)\n+690BB6 Uncompressed Size     00000B62 (2914)\n+\n+690BBA LOCAL HEADER #1893    04034B50 (67324752)\n+690BBE Extract Zip Spec      14 (20) '2.0'\n+690BBF Extract OS            00 (0) 'MS-DOS'\n+690BC0 General Purpose Flag  0000 (0)\n+690BC2 Compression Method    0000 (0) 'Stored'\n+690BC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+690BC8 CRC                   00000000 (0)\n+690BCC Compressed Size       00000000 (0)\n+690BD0 Uncompressed Size     00000000 (0)\n+690BD4 Filename Length       0024 (36)\n+690BD6 Extra Length          0009 (9)\n+690BD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x690BD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+690BFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+690BFE   Length              0005 (5)\n+690C00   Flags               01 (1) 'Modification'\n+690C01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+690C05 LOCAL HEADER #1894    04034B50 (67324752)\n+690C09 Extract Zip Spec      14 (20) '2.0'\n+690C0A Extract OS            00 (0) 'MS-DOS'\n+690C0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+690C0D Compression Method    0000 (0) 'Stored'\n+690C0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+690C13 CRC                   00000000 (0)\n+690C17 Compressed Size       00000000 (0)\n+690C1B Uncompressed Size     00000000 (0)\n+690C1F Filename Length       0036 (54)\n+690C21 Extra Length          0009 (9)\n+690C23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x690C23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+690C59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+690C5B   Length              0005 (5)\n+690C5D   Flags               01 (1) 'Modification'\n+690C5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+690C62 PAYLOAD\n+\n+691258 DATA DESCRIPTOR       08074B50 (134695760)\n+69125C CRC                   780A8F69 (2013957993)\n+691260 Compressed Size       000005F6 (1526)\n+691264 Uncompressed Size     000005F6 (1526)\n+\n+691268 LOCAL HEADER #1895    04034B50 (67324752)\n+69126C Extract Zip Spec      14 (20) '2.0'\n+69126D Extract OS            00 (0) 'MS-DOS'\n+69126E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+691270 Compression Method    0000 (0) 'Stored'\n+691272 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+691276 CRC                   00000000 (0)\n+69127A Compressed Size       00000000 (0)\n+69127E Uncompressed Size     00000000 (0)\n+691282 Filename Length       0035 (53)\n+691284 Extra Length          0009 (9)\n+691286 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x691286: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6912BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6912BD   Length              0005 (5)\n+6912BF   Flags               01 (1) 'Modification'\n+6912C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6912C4 PAYLOAD\n+\n+691D7A DATA DESCRIPTOR       08074B50 (134695760)\n+691D7E CRC                   0693959E (110335390)\n+691D82 Compressed Size       00000AB6 (2742)\n+691D86 Uncompressed Size     00000AB6 (2742)\n+\n+691D8A LOCAL HEADER #1896    04034B50 (67324752)\n+691D8E Extract Zip Spec      14 (20) '2.0'\n+691D8F Extract OS            00 (0) 'MS-DOS'\n+691D90 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+691D92 Compression Method    0000 (0) 'Stored'\n+691D94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+691D98 CRC                   00000000 (0)\n+691D9C Compressed Size       00000000 (0)\n+691DA0 Uncompressed Size     00000000 (0)\n+691DA4 Filename Length       0036 (54)\n+691DA6 Extra Length          0009 (9)\n+691DA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x691DA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+691DDE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+691DE0   Length              0005 (5)\n+691DE2   Flags               01 (1) 'Modification'\n+691DE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+691DE7 PAYLOAD\n+\n+692FD1 DATA DESCRIPTOR       08074B50 (134695760)\n+692FD5 CRC                   EACFC8D2 (3939485906)\n+692FD9 Compressed Size       000011EA (4586)\n+692FDD Uncompressed Size     000011EA (4586)\n+\n+692FE1 LOCAL HEADER #1897    04034B50 (67324752)\n+692FE5 Extract Zip Spec      14 (20) '2.0'\n+692FE6 Extract OS            00 (0) 'MS-DOS'\n+692FE7 General Purpose Flag  0000 (0)\n+692FE9 Compression Method    0000 (0) 'Stored'\n+692FEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+692FEF CRC                   00000000 (0)\n+692FF3 Compressed Size       00000000 (0)\n+692FF7 Uncompressed Size     00000000 (0)\n+692FFB Filename Length       0028 (40)\n+692FFD Extra Length          0009 (9)\n+692FFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x692FFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+693027 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+693029   Length              0005 (5)\n+69302B   Flags               01 (1) 'Modification'\n+69302C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+693030 LOCAL HEADER #1898    04034B50 (67324752)\n+693034 Extract Zip Spec      14 (20) '2.0'\n+693035 Extract OS            00 (0) 'MS-DOS'\n+693036 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+693038 Compression Method    0000 (0) 'Stored'\n+69303A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69303E CRC                   00000000 (0)\n+693042 Compressed Size       00000000 (0)\n+693046 Uncompressed Size     00000000 (0)\n+69304A Filename Length       003E (62)\n+69304C Extra Length          0009 (9)\n+69304E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69304E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69308C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69308E   Length              0005 (5)\n+693090   Flags               01 (1) 'Modification'\n+693091   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+693095 PAYLOAD\n+\n+6949ED DATA DESCRIPTOR       08074B50 (134695760)\n+6949F1 CRC                   E525BFD2 (3844456402)\n+6949F5 Compressed Size       00001958 (6488)\n+6949F9 Uncompressed Size     00001958 (6488)\n+\n+6949FD LOCAL HEADER #1899    04034B50 (67324752)\n+694A01 Extract Zip Spec      14 (20) '2.0'\n+694A02 Extract OS            00 (0) 'MS-DOS'\n+694A03 General Purpose Flag  0000 (0)\n+694A05 Compression Method    0000 (0) 'Stored'\n+694A07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+694A0B CRC                   00000000 (0)\n+694A0F Compressed Size       00000000 (0)\n+694A13 Uncompressed Size     00000000 (0)\n+694A17 Filename Length       002B (43)\n+694A19 Extra Length          0009 (9)\n+694A1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x694A1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+694A46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+694A48   Length              0005 (5)\n+694A4A   Flags               01 (1) 'Modification'\n+694A4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+694A4F LOCAL HEADER #1900    04034B50 (67324752)\n+694A53 Extract Zip Spec      14 (20) '2.0'\n+694A54 Extract OS            00 (0) 'MS-DOS'\n+694A55 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+694A57 Compression Method    0000 (0) 'Stored'\n+694A59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+694A5D CRC                   00000000 (0)\n+694A61 Compressed Size       00000000 (0)\n+694A65 Uncompressed Size     00000000 (0)\n+694A69 Filename Length       003E (62)\n+694A6B Extra Length          0009 (9)\n+694A6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x694A6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+694AAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+694AAD   Length              0005 (5)\n+694AAF   Flags               01 (1) 'Modification'\n+694AB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+694AB4 PAYLOAD\n+\n+696B32 DATA DESCRIPTOR       08074B50 (134695760)\n+696B36 CRC                   C2851F80 (3263504256)\n+696B3A Compressed Size       0000207E (8318)\n+696B3E Uncompressed Size     0000207E (8318)\n+\n+696B42 LOCAL HEADER #1901    04034B50 (67324752)\n+696B46 Extract Zip Spec      14 (20) '2.0'\n+696B47 Extract OS            00 (0) 'MS-DOS'\n+696B48 General Purpose Flag  0000 (0)\n+696B4A Compression Method    0000 (0) 'Stored'\n+696B4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+696B50 CRC                   00000000 (0)\n+696B54 Compressed Size       00000000 (0)\n+696B58 Uncompressed Size     00000000 (0)\n+696B5C Filename Length       0024 (36)\n+696B5E Extra Length          0009 (9)\n+696B60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x696B60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+696B84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+696B86   Length              0005 (5)\n+696B88   Flags               01 (1) 'Modification'\n+696B89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+696B8D LOCAL HEADER #1902    04034B50 (67324752)\n+696B91 Extract Zip Spec      14 (20) '2.0'\n+696B92 Extract OS            00 (0) 'MS-DOS'\n+696B93 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+696B95 Compression Method    0000 (0) 'Stored'\n+696B97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+696B9B CRC                   00000000 (0)\n+696B9F Compressed Size       00000000 (0)\n+696BA3 Uncompressed Size     00000000 (0)\n+696BA7 Filename Length       0036 (54)\n+696BA9 Extra Length          0009 (9)\n+696BAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x696BAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+696BE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+696BE3   Length              0005 (5)\n+696BE5   Flags               01 (1) 'Modification'\n+696BE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+696BEA PAYLOAD\n+\n+699364 DATA DESCRIPTOR       08074B50 (134695760)\n+699368 CRC                   2CD78AEC (752323308)\n+69936C Compressed Size       0000277A (10106)\n+699370 Uncompressed Size     0000277A (10106)\n+\n+699374 LOCAL HEADER #1903    04034B50 (67324752)\n+699378 Extract Zip Spec      14 (20) '2.0'\n+699379 Extract OS            00 (0) 'MS-DOS'\n+69937A General Purpose Flag  0000 (0)\n+69937C Compression Method    0000 (0) 'Stored'\n+69937E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+699382 CRC                   00000000 (0)\n+699386 Compressed Size       00000000 (0)\n+69938A Uncompressed Size     00000000 (0)\n+69938E Filename Length       0023 (35)\n+699390 Extra Length          0009 (9)\n+699392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x699392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6993B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6993B7   Length              0005 (5)\n+6993B9   Flags               01 (1) 'Modification'\n+6993BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6993BE LOCAL HEADER #1904    04034B50 (67324752)\n+6993C2 Extract Zip Spec      14 (20) '2.0'\n+6993C3 Extract OS            00 (0) 'MS-DOS'\n+6993C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6993C6 Compression Method    0000 (0) 'Stored'\n+6993C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6993CC CRC                   00000000 (0)\n+6993D0 Compressed Size       00000000 (0)\n+6993D4 Uncompressed Size     00000000 (0)\n+6993D8 Filename Length       003E (62)\n+6993DA Extra Length          0009 (9)\n+6993DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6993DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69941A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69941C   Length              0005 (5)\n+69941E   Flags               01 (1) 'Modification'\n+69941F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+699423 PAYLOAD\n+\n+69A049 DATA DESCRIPTOR       08074B50 (134695760)\n+69A04D CRC                   E49ADE4B (3835354699)\n+69A051 Compressed Size       00000C26 (3110)\n+69A055 Uncompressed Size     00000C26 (3110)\n+\n+69A059 LOCAL HEADER #1905    04034B50 (67324752)\n+69A05D Extract Zip Spec      14 (20) '2.0'\n+69A05E Extract OS            00 (0) 'MS-DOS'\n+69A05F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69A061 Compression Method    0000 (0) 'Stored'\n+69A063 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69A067 CRC                   00000000 (0)\n+69A06B Compressed Size       00000000 (0)\n+69A06F Uncompressed Size     00000000 (0)\n+69A073 Filename Length       0031 (49)\n+69A075 Extra Length          0009 (9)\n+69A077 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69A077: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69A0A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69A0AA   Length              0005 (5)\n+69A0AC   Flags               01 (1) 'Modification'\n+69A0AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69A0B1 PAYLOAD\n+\n+69A4C2 DATA DESCRIPTOR       08074B50 (134695760)\n+69A4C6 CRC                   CAFD8C87 (3405614215)\n+69A4CA Compressed Size       00000411 (1041)\n+69A4CE Uncompressed Size     00000411 (1041)\n+\n+69A4D2 LOCAL HEADER #1906    04034B50 (67324752)\n+69A4D6 Extract Zip Spec      14 (20) '2.0'\n+69A4D7 Extract OS            00 (0) 'MS-DOS'\n+69A4D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69A4DA Compression Method    0000 (0) 'Stored'\n+69A4DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69A4E0 CRC                   00000000 (0)\n+69A4E4 Compressed Size       00000000 (0)\n+69A4E8 Uncompressed Size     00000000 (0)\n+69A4EC Filename Length       003F (63)\n+69A4EE Extra Length          0009 (9)\n+69A4F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69A4F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69A52F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69A531   Length              0005 (5)\n+69A533   Flags               01 (1) 'Modification'\n+69A534   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69A538 PAYLOAD\n+\n+69B7B2 DATA DESCRIPTOR       08074B50 (134695760)\n+69B7B6 CRC                   3D20A35F (1025549151)\n+69B7BA Compressed Size       0000127A (4730)\n+69B7BE Uncompressed Size     0000127A (4730)\n+\n+69B7C2 LOCAL HEADER #1907    04034B50 (67324752)\n+69B7C6 Extract Zip Spec      14 (20) '2.0'\n+69B7C7 Extract OS            00 (0) 'MS-DOS'\n+69B7C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69B7CA Compression Method    0000 (0) 'Stored'\n+69B7CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69B7D0 CRC                   00000000 (0)\n+69B7D4 Compressed Size       00000000 (0)\n+69B7D8 Uncompressed Size     00000000 (0)\n+69B7DC Filename Length       003C (60)\n+69B7DE Extra Length          0009 (9)\n+69B7E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69B7E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69B81C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69B81E   Length              0005 (5)\n+69B820   Flags               01 (1) 'Modification'\n+69B821   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69B825 PAYLOAD\n+\n+69C23A DATA DESCRIPTOR       08074B50 (134695760)\n+69C23E CRC                   74B3513E (1957908798)\n+69C242 Compressed Size       00000A15 (2581)\n+69C246 Uncompressed Size     00000A15 (2581)\n+\n+69C24A LOCAL HEADER #1908    04034B50 (67324752)\n+69C24E Extract Zip Spec      14 (20) '2.0'\n+69C24F Extract OS            00 (0) 'MS-DOS'\n+69C250 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69C252 Compression Method    0000 (0) 'Stored'\n+69C254 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69C258 CRC                   00000000 (0)\n+69C25C Compressed Size       00000000 (0)\n+69C260 Uncompressed Size     00000000 (0)\n+69C264 Filename Length       003F (63)\n+69C266 Extra Length          0009 (9)\n+69C268 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69C268: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69C2A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69C2A9   Length              0005 (5)\n+69C2AB   Flags               01 (1) 'Modification'\n+69C2AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69C2B0 PAYLOAD\n+\n+69CF41 DATA DESCRIPTOR       08074B50 (134695760)\n+69CF45 CRC                   755A7982 (1968863618)\n+69CF49 Compressed Size       00000C91 (3217)\n+69CF4D Uncompressed Size     00000C91 (3217)\n+\n+69CF51 LOCAL HEADER #1909    04034B50 (67324752)\n+69CF55 Extract Zip Spec      14 (20) '2.0'\n+69CF56 Extract OS            00 (0) 'MS-DOS'\n+69CF57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69CF59 Compression Method    0000 (0) 'Stored'\n+69CF5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69CF5F CRC                   00000000 (0)\n+69CF63 Compressed Size       00000000 (0)\n+69CF67 Uncompressed Size     00000000 (0)\n+69CF6B Filename Length       003F (63)\n+69CF6D Extra Length          0009 (9)\n+69CF6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69CF6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69CFAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69CFB0   Length              0005 (5)\n+69CFB2   Flags               01 (1) 'Modification'\n+69CFB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69CFB7 PAYLOAD\n+\n+69D798 DATA DESCRIPTOR       08074B50 (134695760)\n+69D79C CRC                   CB062A84 (3406178948)\n+69D7A0 Compressed Size       000007E1 (2017)\n+69D7A4 Uncompressed Size     000007E1 (2017)\n+\n+69D7A8 LOCAL HEADER #1910    04034B50 (67324752)\n+69D7AC Extract Zip Spec      14 (20) '2.0'\n+69D7AD Extract OS            00 (0) 'MS-DOS'\n+69D7AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+69D7B0 Compression Method    0000 (0) 'Stored'\n+69D7B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+69D7B6 CRC                   00000000 (0)\n+69D7BA Compressed Size       00000000 (0)\n+69D7BE Uncompressed Size     00000000 (0)\n+69D7C2 Filename Length       0034 (52)\n+69D7C4 Extra Length          0009 (9)\n+69D7C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x69D7C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+69D7FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+69D7FC   Length              0005 (5)\n+69D7FE   Flags               01 (1) 'Modification'\n+69D7FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+69D803 PAYLOAD\n+\n+6A0B1C DATA DESCRIPTOR       08074B50 (134695760)\n+6A0B20 CRC                   D7522A4D (3612486221)\n+6A0B24 Compressed Size       00003319 (13081)\n+6A0B28 Uncompressed Size     00003319 (13081)\n+\n+6A0B2C LOCAL HEADER #1911    04034B50 (67324752)\n+6A0B30 Extract Zip Spec      14 (20) '2.0'\n+6A0B31 Extract OS            00 (0) 'MS-DOS'\n+6A0B32 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A0B34 Compression Method    0000 (0) 'Stored'\n+6A0B36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A0B3A CRC                   00000000 (0)\n+6A0B3E Compressed Size       00000000 (0)\n+6A0B42 Uncompressed Size     00000000 (0)\n+6A0B46 Filename Length       003A (58)\n+6A0B48 Extra Length          0009 (9)\n+6A0B4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A0B4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A0B84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A0B86   Length              0005 (5)\n+6A0B88   Flags               01 (1) 'Modification'\n+6A0B89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A0B8D PAYLOAD\n+\n+6A1082 DATA DESCRIPTOR       08074B50 (134695760)\n+6A1086 CRC                   6BBB41BD (1807434173)\n+6A108A Compressed Size       000004F5 (1269)\n+6A108E Uncompressed Size     000004F5 (1269)\n+\n+6A1092 LOCAL HEADER #1912    04034B50 (67324752)\n+6A1096 Extract Zip Spec      14 (20) '2.0'\n+6A1097 Extract OS            00 (0) 'MS-DOS'\n+6A1098 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A109A Compression Method    0000 (0) 'Stored'\n+6A109C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A10A0 CRC                   00000000 (0)\n+6A10A4 Compressed Size       00000000 (0)\n+6A10A8 Uncompressed Size     00000000 (0)\n+6A10AC Filename Length       0039 (57)\n+6A10AE Extra Length          0009 (9)\n+6A10B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A10B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A10E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A10EB   Length              0005 (5)\n+6A10ED   Flags               01 (1) 'Modification'\n+6A10EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A10F2 PAYLOAD\n+\n+6A17C3 DATA DESCRIPTOR       08074B50 (134695760)\n+6A17C7 CRC                   086F2C9C (141503644)\n+6A17CB Compressed Size       000006D1 (1745)\n+6A17CF Uncompressed Size     000006D1 (1745)\n+\n+6A17D3 LOCAL HEADER #1913    04034B50 (67324752)\n+6A17D7 Extract Zip Spec      14 (20) '2.0'\n+6A17D8 Extract OS            00 (0) 'MS-DOS'\n+6A17D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A17DB Compression Method    0000 (0) 'Stored'\n+6A17DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A17E1 CRC                   00000000 (0)\n+6A17E5 Compressed Size       00000000 (0)\n+6A17E9 Uncompressed Size     00000000 (0)\n+6A17ED Filename Length       0038 (56)\n+6A17EF Extra Length          0009 (9)\n+6A17F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A17F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A1829 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A182B   Length              0005 (5)\n+6A182D   Flags               01 (1) 'Modification'\n+6A182E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A1832 PAYLOAD\n+\n+6A2A32 DATA DESCRIPTOR       08074B50 (134695760)\n+6A2A36 CRC                   A0E895BE (2699597246)\n+6A2A3A Compressed Size       00001200 (4608)\n+6A2A3E Uncompressed Size     00001200 (4608)\n+\n+6A2A42 LOCAL HEADER #1914    04034B50 (67324752)\n+6A2A46 Extract Zip Spec      14 (20) '2.0'\n+6A2A47 Extract OS            00 (0) 'MS-DOS'\n+6A2A48 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A2A4A Compression Method    0000 (0) 'Stored'\n+6A2A4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A2A50 CRC                   00000000 (0)\n+6A2A54 Compressed Size       00000000 (0)\n+6A2A58 Uncompressed Size     00000000 (0)\n+6A2A5C Filename Length       003A (58)\n+6A2A5E Extra Length          0009 (9)\n+6A2A60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A2A60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A2A9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A2A9C   Length              0005 (5)\n+6A2A9E   Flags               01 (1) 'Modification'\n+6A2A9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A2AA3 PAYLOAD\n+\n+6A348D DATA DESCRIPTOR       08074B50 (134695760)\n+6A3491 CRC                   939A92A5 (2476380837)\n+6A3495 Compressed Size       000009EA (2538)\n+6A3499 Uncompressed Size     000009EA (2538)\n+\n+6A349D LOCAL HEADER #1915    04034B50 (67324752)\n+6A34A1 Extract Zip Spec      14 (20) '2.0'\n+6A34A2 Extract OS            00 (0) 'MS-DOS'\n+6A34A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A34A5 Compression Method    0000 (0) 'Stored'\n+6A34A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A34AB CRC                   00000000 (0)\n+6A34AF Compressed Size       00000000 (0)\n+6A34B3 Uncompressed Size     00000000 (0)\n+6A34B7 Filename Length       0037 (55)\n+6A34B9 Extra Length          0009 (9)\n+6A34BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A34BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A34F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A34F4   Length              0005 (5)\n+6A34F6   Flags               01 (1) 'Modification'\n+6A34F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A34FB PAYLOAD\n+\n+6A3C8E DATA DESCRIPTOR       08074B50 (134695760)\n+6A3C92 CRC                   4DDA4FAB (1306152875)\n+6A3C96 Compressed Size       00000793 (1939)\n+6A3C9A Uncompressed Size     00000793 (1939)\n+\n+6A3C9E LOCAL HEADER #1916    04034B50 (67324752)\n+6A3CA2 Extract Zip Spec      14 (20) '2.0'\n+6A3CA3 Extract OS            00 (0) 'MS-DOS'\n+6A3CA4 General Purpose Flag  0000 (0)\n+6A3CA6 Compression Method    0000 (0) 'Stored'\n+6A3CA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A3CAC CRC                   00000000 (0)\n+6A3CB0 Compressed Size       00000000 (0)\n+6A3CB4 Uncompressed Size     00000000 (0)\n+6A3CB8 Filename Length       002F (47)\n+6A3CBA Extra Length          0009 (9)\n+6A3CBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A3CBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A3CEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A3CED   Length              0005 (5)\n+6A3CEF   Flags               01 (1) 'Modification'\n+6A3CF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6A3CF4 LOCAL HEADER #1917    04034B50 (67324752)\n+6A3CF8 Extract Zip Spec      14 (20) '2.0'\n+6A3CF9 Extract OS            00 (0) 'MS-DOS'\n+6A3CFA General Purpose Flag  0000 (0)\n+6A3CFC Compression Method    0000 (0) 'Stored'\n+6A3CFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A3D02 CRC                   00000000 (0)\n+6A3D06 Compressed Size       00000000 (0)\n+6A3D0A Uncompressed Size     00000000 (0)\n+6A3D0E Filename Length       0037 (55)\n+6A3D10 Extra Length          0009 (9)\n+6A3D12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A3D12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A3D49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A3D4B   Length              0005 (5)\n+6A3D4D   Flags               01 (1) 'Modification'\n+6A3D4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6A3D52 LOCAL HEADER #1918    04034B50 (67324752)\n+6A3D56 Extract Zip Spec      14 (20) '2.0'\n+6A3D57 Extract OS            00 (0) 'MS-DOS'\n+6A3D58 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A3D5A Compression Method    0000 (0) 'Stored'\n+6A3D5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A3D60 CRC                   00000000 (0)\n+6A3D64 Compressed Size       00000000 (0)\n+6A3D68 Uncompressed Size     00000000 (0)\n+6A3D6C Filename Length       005A (90)\n+6A3D6E Extra Length          0009 (9)\n+6A3D70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A3D70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A3DCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A3DCC   Length              0005 (5)\n+6A3DCE   Flags               01 (1) 'Modification'\n+6A3DCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A3DD3 PAYLOAD\n+\n+6A462C DATA DESCRIPTOR       08074B50 (134695760)\n+6A4630 CRC                   E3F9F330 (3824808752)\n+6A4634 Compressed Size       00000859 (2137)\n+6A4638 Uncompressed Size     00000859 (2137)\n+\n+6A463C LOCAL HEADER #1919    04034B50 (67324752)\n+6A4640 Extract Zip Spec      14 (20) '2.0'\n+6A4641 Extract OS            00 (0) 'MS-DOS'\n+6A4642 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A4644 Compression Method    0000 (0) 'Stored'\n+6A4646 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A464A CRC                   00000000 (0)\n+6A464E Compressed Size       00000000 (0)\n+6A4652 Uncompressed Size     00000000 (0)\n+6A4656 Filename Length       004F (79)\n+6A4658 Extra Length          0009 (9)\n+6A465A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A465A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A46A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A46AB   Length              0005 (5)\n+6A46AD   Flags               01 (1) 'Modification'\n+6A46AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A46B2 PAYLOAD\n+\n+6A4DA2 DATA DESCRIPTOR       08074B50 (134695760)\n+6A4DA6 CRC                   879AD63A (2275071546)\n+6A4DAA Compressed Size       000006F0 (1776)\n+6A4DAE Uncompressed Size     000006F0 (1776)\n+\n+6A4DB2 LOCAL HEADER #1920    04034B50 (67324752)\n+6A4DB6 Extract Zip Spec      14 (20) '2.0'\n+6A4DB7 Extract OS            00 (0) 'MS-DOS'\n+6A4DB8 General Purpose Flag  0000 (0)\n+6A4DBA Compression Method    0000 (0) 'Stored'\n+6A4DBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A4DC0 CRC                   00000000 (0)\n+6A4DC4 Compressed Size       00000000 (0)\n+6A4DC8 Uncompressed Size     00000000 (0)\n+6A4DCC Filename Length       002B (43)\n+6A4DCE Extra Length          0009 (9)\n+6A4DD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A4DD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A4DFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A4DFD   Length              0005 (5)\n+6A4DFF   Flags               01 (1) 'Modification'\n+6A4E00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6A4E04 LOCAL HEADER #1921    04034B50 (67324752)\n+6A4E08 Extract Zip Spec      14 (20) '2.0'\n+6A4E09 Extract OS            00 (0) 'MS-DOS'\n+6A4E0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A4E0C Compression Method    0000 (0) 'Stored'\n+6A4E0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A4E12 CRC                   00000000 (0)\n+6A4E16 Compressed Size       00000000 (0)\n+6A4E1A Uncompressed Size     00000000 (0)\n+6A4E1E Filename Length       003B (59)\n+6A4E20 Extra Length          0009 (9)\n+6A4E22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A4E22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A4E5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A4E5F   Length              0005 (5)\n+6A4E61   Flags               01 (1) 'Modification'\n+6A4E62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A4E66 PAYLOAD\n+\n+6A5389 DATA DESCRIPTOR       08074B50 (134695760)\n+6A538D CRC                   FC72AE7D (4235374205)\n+6A5391 Compressed Size       00000523 (1315)\n+6A5395 Uncompressed Size     00000523 (1315)\n+\n+6A5399 LOCAL HEADER #1922    04034B50 (67324752)\n+6A539D Extract Zip Spec      14 (20) '2.0'\n+6A539E Extract OS            00 (0) 'MS-DOS'\n+6A539F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A53A1 Compression Method    0000 (0) 'Stored'\n+6A53A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A53A7 CRC                   00000000 (0)\n+6A53AB Compressed Size       00000000 (0)\n+6A53AF Uncompressed Size     00000000 (0)\n+6A53B3 Filename Length       003D (61)\n+6A53B5 Extra Length          0009 (9)\n+6A53B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A53B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A53F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A53F6   Length              0005 (5)\n+6A53F8   Flags               01 (1) 'Modification'\n+6A53F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A53FD PAYLOAD\n+\n+6A69F8 DATA DESCRIPTOR       08074B50 (134695760)\n+6A69FC CRC                   98665538 (2556843320)\n+6A6A00 Compressed Size       000015FB (5627)\n+6A6A04 Uncompressed Size     000015FB (5627)\n+\n+6A6A08 LOCAL HEADER #1923    04034B50 (67324752)\n+6A6A0C Extract Zip Spec      14 (20) '2.0'\n+6A6A0D Extract OS            00 (0) 'MS-DOS'\n+6A6A0E General Purpose Flag  0000 (0)\n+6A6A10 Compression Method    0000 (0) 'Stored'\n+6A6A12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A6A16 CRC                   00000000 (0)\n+6A6A1A Compressed Size       00000000 (0)\n+6A6A1E Uncompressed Size     00000000 (0)\n+6A6A22 Filename Length       0022 (34)\n+6A6A24 Extra Length          0009 (9)\n+6A6A26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A6A26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A6A48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A6A4A   Length              0005 (5)\n+6A6A4C   Flags               01 (1) 'Modification'\n+6A6A4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6A6A51 LOCAL HEADER #1924    04034B50 (67324752)\n+6A6A55 Extract Zip Spec      14 (20) '2.0'\n+6A6A56 Extract OS            00 (0) 'MS-DOS'\n+6A6A57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A6A59 Compression Method    0000 (0) 'Stored'\n+6A6A5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A6A5F CRC                   00000000 (0)\n+6A6A63 Compressed Size       00000000 (0)\n+6A6A67 Uncompressed Size     00000000 (0)\n+6A6A6B Filename Length       0032 (50)\n+6A6A6D Extra Length          0009 (9)\n+6A6A6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A6A6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A6AA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A6AA3   Length              0005 (5)\n+6A6AA5   Flags               01 (1) 'Modification'\n+6A6AA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A6AAA PAYLOAD\n+\n+6A857C DATA DESCRIPTOR       08074B50 (134695760)\n+6A8580 CRC                   B748FF21 (3075014433)\n+6A8584 Compressed Size       00001AD2 (6866)\n+6A8588 Uncompressed Size     00001AD2 (6866)\n+\n+6A858C LOCAL HEADER #1925    04034B50 (67324752)\n+6A8590 Extract Zip Spec      14 (20) '2.0'\n+6A8591 Extract OS            00 (0) 'MS-DOS'\n+6A8592 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A8594 Compression Method    0000 (0) 'Stored'\n+6A8596 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A859A CRC                   00000000 (0)\n+6A859E Compressed Size       00000000 (0)\n+6A85A2 Uncompressed Size     00000000 (0)\n+6A85A6 Filename Length       003A (58)\n+6A85A8 Extra Length          0009 (9)\n+6A85AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A85AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A85E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A85E6   Length              0005 (5)\n+6A85E8   Flags               01 (1) 'Modification'\n+6A85E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A85ED PAYLOAD\n+\n+6A908F DATA DESCRIPTOR       08074B50 (134695760)\n+6A9093 CRC                   E36AF793 (3815438227)\n+6A9097 Compressed Size       00000AA2 (2722)\n+6A909B Uncompressed Size     00000AA2 (2722)\n+\n+6A909F LOCAL HEADER #1926    04034B50 (67324752)\n+6A90A3 Extract Zip Spec      14 (20) '2.0'\n+6A90A4 Extract OS            00 (0) 'MS-DOS'\n+6A90A5 General Purpose Flag  0000 (0)\n+6A90A7 Compression Method    0000 (0) 'Stored'\n+6A90A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A90AD CRC                   00000000 (0)\n+6A90B1 Compressed Size       00000000 (0)\n+6A90B5 Uncompressed Size     00000000 (0)\n+6A90B9 Filename Length       0025 (37)\n+6A90BB Extra Length          0009 (9)\n+6A90BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A90BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A90E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A90E4   Length              0005 (5)\n+6A90E6   Flags               01 (1) 'Modification'\n+6A90E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6A90EB LOCAL HEADER #1927    04034B50 (67324752)\n+6A90EF Extract Zip Spec      14 (20) '2.0'\n+6A90F0 Extract OS            00 (0) 'MS-DOS'\n+6A90F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A90F3 Compression Method    0000 (0) 'Stored'\n+6A90F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A90F9 CRC                   00000000 (0)\n+6A90FD Compressed Size       00000000 (0)\n+6A9101 Uncompressed Size     00000000 (0)\n+6A9105 Filename Length       003C (60)\n+6A9107 Extra Length          0009 (9)\n+6A9109 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A9109: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A9145 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A9147   Length              0005 (5)\n+6A9149   Flags               01 (1) 'Modification'\n+6A914A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A914E PAYLOAD\n+\n+6A9630 DATA DESCRIPTOR       08074B50 (134695760)\n+6A9634 CRC                   63A56C0E (1671785486)\n+6A9638 Compressed Size       000004E2 (1250)\n+6A963C Uncompressed Size     000004E2 (1250)\n+\n+6A9640 LOCAL HEADER #1928    04034B50 (67324752)\n+6A9644 Extract Zip Spec      14 (20) '2.0'\n+6A9645 Extract OS            00 (0) 'MS-DOS'\n+6A9646 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A9648 Compression Method    0000 (0) 'Stored'\n+6A964A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A964E CRC                   00000000 (0)\n+6A9652 Compressed Size       00000000 (0)\n+6A9656 Uncompressed Size     00000000 (0)\n+6A965A Filename Length       0041 (65)\n+6A965C Extra Length          0009 (9)\n+6A965E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A965E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A969F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A96A1   Length              0005 (5)\n+6A96A3   Flags               01 (1) 'Modification'\n+6A96A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A96A8 PAYLOAD\n+\n+6A9C68 DATA DESCRIPTOR       08074B50 (134695760)\n+6A9C6C CRC                   E0FB0689 (3774547593)\n+6A9C70 Compressed Size       000005C0 (1472)\n+6A9C74 Uncompressed Size     000005C0 (1472)\n+\n+6A9C78 LOCAL HEADER #1929    04034B50 (67324752)\n+6A9C7C Extract Zip Spec      14 (20) '2.0'\n+6A9C7D Extract OS            00 (0) 'MS-DOS'\n+6A9C7E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6A9C80 Compression Method    0000 (0) 'Stored'\n+6A9C82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6A9C86 CRC                   00000000 (0)\n+6A9C8A Compressed Size       00000000 (0)\n+6A9C8E Uncompressed Size     00000000 (0)\n+6A9C92 Filename Length       0042 (66)\n+6A9C94 Extra Length          0009 (9)\n+6A9C96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6A9C96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6A9CD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6A9CDA   Length              0005 (5)\n+6A9CDC   Flags               01 (1) 'Modification'\n+6A9CDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6A9CE1 PAYLOAD\n+\n+6AA2AF DATA DESCRIPTOR       08074B50 (134695760)\n+6AA2B3 CRC                   45D210E4 (1171394788)\n+6AA2B7 Compressed Size       000005CE (1486)\n+6AA2BB Uncompressed Size     000005CE (1486)\n+\n+6AA2BF LOCAL HEADER #1930    04034B50 (67324752)\n+6AA2C3 Extract Zip Spec      14 (20) '2.0'\n+6AA2C4 Extract OS            00 (0) 'MS-DOS'\n+6AA2C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6AA2C7 Compression Method    0000 (0) 'Stored'\n+6AA2C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6AA2CD CRC                   00000000 (0)\n+6AA2D1 Compressed Size       00000000 (0)\n+6AA2D5 Uncompressed Size     00000000 (0)\n+6AA2D9 Filename Length       0035 (53)\n+6AA2DB Extra Length          0009 (9)\n+6AA2DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6AA2DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6AA312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6AA314   Length              0005 (5)\n+6AA316   Flags               01 (1) 'Modification'\n+6AA317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6AA31B PAYLOAD\n+\n+6B0625 DATA DESCRIPTOR       08074B50 (134695760)\n+6B0629 CRC                   F30965C2 (4077479362)\n+6B062D Compressed Size       0000630A (25354)\n+6B0631 Uncompressed Size     0000630A (25354)\n+\n+6B0635 LOCAL HEADER #1931    04034B50 (67324752)\n+6B0639 Extract Zip Spec      14 (20) '2.0'\n+6B063A Extract OS            00 (0) 'MS-DOS'\n+6B063B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B063D Compression Method    0000 (0) 'Stored'\n+6B063F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B0643 CRC                   00000000 (0)\n+6B0647 Compressed Size       00000000 (0)\n+6B064B Uncompressed Size     00000000 (0)\n+6B064F Filename Length       0039 (57)\n+6B0651 Extra Length          0009 (9)\n+6B0653 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B0653: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B068C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B068E   Length              0005 (5)\n+6B0690   Flags               01 (1) 'Modification'\n+6B0691   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B0695 PAYLOAD\n+\n+6B0BDD DATA DESCRIPTOR       08074B50 (134695760)\n+6B0BE1 CRC                   046733D7 (73872343)\n+6B0BE5 Compressed Size       00000548 (1352)\n+6B0BE9 Uncompressed Size     00000548 (1352)\n+\n+6B0BED LOCAL HEADER #1932    04034B50 (67324752)\n+6B0BF1 Extract Zip Spec      14 (20) '2.0'\n+6B0BF2 Extract OS            00 (0) 'MS-DOS'\n+6B0BF3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B0BF5 Compression Method    0000 (0) 'Stored'\n+6B0BF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B0BFB CRC                   00000000 (0)\n+6B0BFF Compressed Size       00000000 (0)\n+6B0C03 Uncompressed Size     00000000 (0)\n+6B0C07 Filename Length       0037 (55)\n+6B0C09 Extra Length          0009 (9)\n+6B0C0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B0C0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B0C42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B0C44   Length              0005 (5)\n+6B0C46   Flags               01 (1) 'Modification'\n+6B0C47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B0C4B PAYLOAD\n+\n+6B24CE DATA DESCRIPTOR       08074B50 (134695760)\n+6B24D2 CRC                   0C743F4B (208944971)\n+6B24D6 Compressed Size       00001883 (6275)\n+6B24DA Uncompressed Size     00001883 (6275)\n+\n+6B24DE LOCAL HEADER #1933    04034B50 (67324752)\n+6B24E2 Extract Zip Spec      14 (20) '2.0'\n+6B24E3 Extract OS            00 (0) 'MS-DOS'\n+6B24E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B24E6 Compression Method    0000 (0) 'Stored'\n+6B24E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B24EC CRC                   00000000 (0)\n+6B24F0 Compressed Size       00000000 (0)\n+6B24F4 Uncompressed Size     00000000 (0)\n+6B24F8 Filename Length       003B (59)\n+6B24FA Extra Length          0009 (9)\n+6B24FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B24FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B2537 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B2539   Length              0005 (5)\n+6B253B   Flags               01 (1) 'Modification'\n+6B253C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B2540 PAYLOAD\n+\n+6B34D3 DATA DESCRIPTOR       08074B50 (134695760)\n+6B34D7 CRC                   ADE79375 (2917634933)\n+6B34DB Compressed Size       00000F93 (3987)\n+6B34DF Uncompressed Size     00000F93 (3987)\n+\n+6B34E3 LOCAL HEADER #1934    04034B50 (67324752)\n+6B34E7 Extract Zip Spec      14 (20) '2.0'\n+6B34E8 Extract OS            00 (0) 'MS-DOS'\n+6B34E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B34EB Compression Method    0000 (0) 'Stored'\n+6B34ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B34F1 CRC                   00000000 (0)\n+6B34F5 Compressed Size       00000000 (0)\n+6B34F9 Uncompressed Size     00000000 (0)\n+6B34FD Filename Length       0038 (56)\n+6B34FF Extra Length          0009 (9)\n+6B3501 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B3501: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B3539 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B353B   Length              0005 (5)\n+6B353D   Flags               01 (1) 'Modification'\n+6B353E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B3542 PAYLOAD\n+\n+6B5CE1 DATA DESCRIPTOR       08074B50 (134695760)\n+6B5CE5 CRC                   95A966C5 (2510907077)\n+6B5CE9 Compressed Size       0000279F (10143)\n+6B5CED Uncompressed Size     0000279F (10143)\n+\n+6B5CF1 LOCAL HEADER #1935    04034B50 (67324752)\n+6B5CF5 Extract Zip Spec      14 (20) '2.0'\n+6B5CF6 Extract OS            00 (0) 'MS-DOS'\n+6B5CF7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B5CF9 Compression Method    0000 (0) 'Stored'\n+6B5CFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B5CFF CRC                   00000000 (0)\n+6B5D03 Compressed Size       00000000 (0)\n+6B5D07 Uncompressed Size     00000000 (0)\n+6B5D0B Filename Length       0034 (52)\n+6B5D0D Extra Length          0009 (9)\n+6B5D0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B5D0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B5D43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B5D45   Length              0005 (5)\n+6B5D47   Flags               01 (1) 'Modification'\n+6B5D48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B5D4C PAYLOAD\n+\n+6B63EB DATA DESCRIPTOR       08074B50 (134695760)\n+6B63EF CRC                   FBA20F3E (4221701950)\n+6B63F3 Compressed Size       0000069F (1695)\n+6B63F7 Uncompressed Size     0000069F (1695)\n+\n+6B63FB LOCAL HEADER #1936    04034B50 (67324752)\n+6B63FF Extract Zip Spec      14 (20) '2.0'\n+6B6400 Extract OS            00 (0) 'MS-DOS'\n+6B6401 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B6403 Compression Method    0000 (0) 'Stored'\n+6B6405 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B6409 CRC                   00000000 (0)\n+6B640D Compressed Size       00000000 (0)\n+6B6411 Uncompressed Size     00000000 (0)\n+6B6415 Filename Length       0035 (53)\n+6B6417 Extra Length          0009 (9)\n+6B6419 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B6419: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B644E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B6450   Length              0005 (5)\n+6B6452   Flags               01 (1) 'Modification'\n+6B6453   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B6457 PAYLOAD\n+\n+6B7558 DATA DESCRIPTOR       08074B50 (134695760)\n+6B755C CRC                   6BB5A87E (1807067262)\n+6B7560 Compressed Size       00001101 (4353)\n+6B7564 Uncompressed Size     00001101 (4353)\n+\n+6B7568 LOCAL HEADER #1937    04034B50 (67324752)\n+6B756C Extract Zip Spec      14 (20) '2.0'\n+6B756D Extract OS            00 (0) 'MS-DOS'\n+6B756E General Purpose Flag  0000 (0)\n+6B7570 Compression Method    0000 (0) 'Stored'\n+6B7572 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B7576 CRC                   00000000 (0)\n+6B757A Compressed Size       00000000 (0)\n+6B757E Uncompressed Size     00000000 (0)\n+6B7582 Filename Length       0029 (41)\n+6B7584 Extra Length          0009 (9)\n+6B7586 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B7586: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B75AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B75B1   Length              0005 (5)\n+6B75B3   Flags               01 (1) 'Modification'\n+6B75B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6B75B8 LOCAL HEADER #1938    04034B50 (67324752)\n+6B75BC Extract Zip Spec      14 (20) '2.0'\n+6B75BD Extract OS            00 (0) 'MS-DOS'\n+6B75BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B75C0 Compression Method    0000 (0) 'Stored'\n+6B75C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B75C6 CRC                   00000000 (0)\n+6B75CA Compressed Size       00000000 (0)\n+6B75CE Uncompressed Size     00000000 (0)\n+6B75D2 Filename Length       0043 (67)\n+6B75D4 Extra Length          0009 (9)\n+6B75D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B75D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B7619 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B761B   Length              0005 (5)\n+6B761D   Flags               01 (1) 'Modification'\n+6B761E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B7622 PAYLOAD\n+\n+6B86D9 DATA DESCRIPTOR       08074B50 (134695760)\n+6B86DD CRC                   B641845C (3057747036)\n+6B86E1 Compressed Size       000010B7 (4279)\n+6B86E5 Uncompressed Size     000010B7 (4279)\n+\n+6B86E9 LOCAL HEADER #1939    04034B50 (67324752)\n+6B86ED Extract Zip Spec      14 (20) '2.0'\n+6B86EE Extract OS            00 (0) 'MS-DOS'\n+6B86EF General Purpose Flag  0000 (0)\n+6B86F1 Compression Method    0000 (0) 'Stored'\n+6B86F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B86F7 CRC                   00000000 (0)\n+6B86FB Compressed Size       00000000 (0)\n+6B86FF Uncompressed Size     00000000 (0)\n+6B8703 Filename Length       0028 (40)\n+6B8705 Extra Length          0009 (9)\n+6B8707 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B8707: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B872F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B8731   Length              0005 (5)\n+6B8733   Flags               01 (1) 'Modification'\n+6B8734   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6B8738 LOCAL HEADER #1940    04034B50 (67324752)\n+6B873C Extract Zip Spec      14 (20) '2.0'\n+6B873D Extract OS            00 (0) 'MS-DOS'\n+6B873E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B8740 Compression Method    0000 (0) 'Stored'\n+6B8742 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B8746 CRC                   00000000 (0)\n+6B874A Compressed Size       00000000 (0)\n+6B874E Uncompressed Size     00000000 (0)\n+6B8752 Filename Length       003F (63)\n+6B8754 Extra Length          0009 (9)\n+6B8756 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B8756: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B8795 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B8797   Length              0005 (5)\n+6B8799   Flags               01 (1) 'Modification'\n+6B879A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B879E PAYLOAD\n+\n+6B90EF DATA DESCRIPTOR       08074B50 (134695760)\n+6B90F3 CRC                   021D9C13 (35494931)\n+6B90F7 Compressed Size       00000951 (2385)\n+6B90FB Uncompressed Size     00000951 (2385)\n+\n+6B90FF LOCAL HEADER #1941    04034B50 (67324752)\n+6B9103 Extract Zip Spec      14 (20) '2.0'\n+6B9104 Extract OS            00 (0) 'MS-DOS'\n+6B9105 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B9107 Compression Method    0000 (0) 'Stored'\n+6B9109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B910D CRC                   00000000 (0)\n+6B9111 Compressed Size       00000000 (0)\n+6B9115 Uncompressed Size     00000000 (0)\n+6B9119 Filename Length       004E (78)\n+6B911B Extra Length          0009 (9)\n+6B911D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B911D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B916B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B916D   Length              0005 (5)\n+6B916F   Flags               01 (1) 'Modification'\n+6B9170   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B9174 PAYLOAD\n+\n+6B9DDA DATA DESCRIPTOR       08074B50 (134695760)\n+6B9DDE CRC                   C419897B (3290007931)\n+6B9DE2 Compressed Size       00000C66 (3174)\n+6B9DE6 Uncompressed Size     00000C66 (3174)\n+\n+6B9DEA LOCAL HEADER #1942    04034B50 (67324752)\n+6B9DEE Extract Zip Spec      14 (20) '2.0'\n+6B9DEF Extract OS            00 (0) 'MS-DOS'\n+6B9DF0 General Purpose Flag  0000 (0)\n+6B9DF2 Compression Method    0000 (0) 'Stored'\n+6B9DF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B9DF8 CRC                   00000000 (0)\n+6B9DFC Compressed Size       00000000 (0)\n+6B9E00 Uncompressed Size     00000000 (0)\n+6B9E04 Filename Length       0029 (41)\n+6B9E06 Extra Length          0009 (9)\n+6B9E08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B9E08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B9E31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B9E33   Length              0005 (5)\n+6B9E35   Flags               01 (1) 'Modification'\n+6B9E36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6B9E3A LOCAL HEADER #1943    04034B50 (67324752)\n+6B9E3E Extract Zip Spec      14 (20) '2.0'\n+6B9E3F Extract OS            00 (0) 'MS-DOS'\n+6B9E40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6B9E42 Compression Method    0000 (0) 'Stored'\n+6B9E44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6B9E48 CRC                   00000000 (0)\n+6B9E4C Compressed Size       00000000 (0)\n+6B9E50 Uncompressed Size     00000000 (0)\n+6B9E54 Filename Length       0040 (64)\n+6B9E56 Extra Length          0009 (9)\n+6B9E58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6B9E58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6B9E98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6B9E9A   Length              0005 (5)\n+6B9E9C   Flags               01 (1) 'Modification'\n+6B9E9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6B9EA1 PAYLOAD\n+\n+6BC25D DATA DESCRIPTOR       08074B50 (134695760)\n+6BC261 CRC                   263D0E7B (641535611)\n+6BC265 Compressed Size       000023BC (9148)\n+6BC269 Uncompressed Size     000023BC (9148)\n+\n+6BC26D LOCAL HEADER #1944    04034B50 (67324752)\n+6BC271 Extract Zip Spec      14 (20) '2.0'\n+6BC272 Extract OS            00 (0) 'MS-DOS'\n+6BC273 General Purpose Flag  0000 (0)\n+6BC275 Compression Method    0000 (0) 'Stored'\n+6BC277 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BC27B CRC                   00000000 (0)\n+6BC27F Compressed Size       00000000 (0)\n+6BC283 Uncompressed Size     00000000 (0)\n+6BC287 Filename Length       001B (27)\n+6BC289 Extra Length          0009 (9)\n+6BC28B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BC28B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BC2A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BC2A8   Length              0005 (5)\n+6BC2AA   Flags               01 (1) 'Modification'\n+6BC2AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6BC2AF LOCAL HEADER #1945    04034B50 (67324752)\n+6BC2B3 Extract Zip Spec      14 (20) '2.0'\n+6BC2B4 Extract OS            00 (0) 'MS-DOS'\n+6BC2B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6BC2B7 Compression Method    0000 (0) 'Stored'\n+6BC2B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BC2BD CRC                   00000000 (0)\n+6BC2C1 Compressed Size       00000000 (0)\n+6BC2C5 Uncompressed Size     00000000 (0)\n+6BC2C9 Filename Length       0034 (52)\n+6BC2CB Extra Length          0009 (9)\n+6BC2CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BC2CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BC301 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BC303   Length              0005 (5)\n+6BC305   Flags               01 (1) 'Modification'\n+6BC306   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6BC30A PAYLOAD\n+\n+6BCFB8 DATA DESCRIPTOR       08074B50 (134695760)\n+6BCFBC CRC                   E40DEA4B (3826117195)\n+6BCFC0 Compressed Size       00000CAE (3246)\n+6BCFC4 Uncompressed Size     00000CAE (3246)\n+\n+6BCFC8 LOCAL HEADER #1946    04034B50 (67324752)\n+6BCFCC Extract Zip Spec      14 (20) '2.0'\n+6BCFCD Extract OS            00 (0) 'MS-DOS'\n+6BCFCE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6BCFD0 Compression Method    0000 (0) 'Stored'\n+6BCFD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BCFD6 CRC                   00000000 (0)\n+6BCFDA Compressed Size       00000000 (0)\n+6BCFDE Uncompressed Size     00000000 (0)\n+6BCFE2 Filename Length       0034 (52)\n+6BCFE4 Extra Length          0009 (9)\n+6BCFE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BCFE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BD01A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BD01C   Length              0005 (5)\n+6BD01E   Flags               01 (1) 'Modification'\n+6BD01F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6BD023 PAYLOAD\n+\n+6BE392 DATA DESCRIPTOR       08074B50 (134695760)\n+6BE396 CRC                   09E32673 (165881459)\n+6BE39A Compressed Size       0000136F (4975)\n+6BE39E Uncompressed Size     0000136F (4975)\n+\n+6BE3A2 LOCAL HEADER #1947    04034B50 (67324752)\n+6BE3A6 Extract Zip Spec      14 (20) '2.0'\n+6BE3A7 Extract OS            00 (0) 'MS-DOS'\n+6BE3A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6BE3AA Compression Method    0000 (0) 'Stored'\n+6BE3AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BE3B0 CRC                   00000000 (0)\n+6BE3B4 Compressed Size       00000000 (0)\n+6BE3B8 Uncompressed Size     00000000 (0)\n+6BE3BC Filename Length       0038 (56)\n+6BE3BE Extra Length          0009 (9)\n+6BE3C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BE3C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BE3F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BE3FA   Length              0005 (5)\n+6BE3FC   Flags               01 (1) 'Modification'\n+6BE3FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6BE401 PAYLOAD\n+\n+6BF374 DATA DESCRIPTOR       08074B50 (134695760)\n+6BF378 CRC                   BE828C08 (3196226568)\n+6BF37C Compressed Size       00000F73 (3955)\n+6BF380 Uncompressed Size     00000F73 (3955)\n+\n+6BF384 LOCAL HEADER #1948    04034B50 (67324752)\n+6BF388 Extract Zip Spec      14 (20) '2.0'\n+6BF389 Extract OS            00 (0) 'MS-DOS'\n+6BF38A General Purpose Flag  0000 (0)\n+6BF38C Compression Method    0000 (0) 'Stored'\n+6BF38E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BF392 CRC                   00000000 (0)\n+6BF396 Compressed Size       00000000 (0)\n+6BF39A Uncompressed Size     00000000 (0)\n+6BF39E Filename Length       0025 (37)\n+6BF3A0 Extra Length          0009 (9)\n+6BF3A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BF3A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BF3C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BF3C9   Length              0005 (5)\n+6BF3CB   Flags               01 (1) 'Modification'\n+6BF3CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6BF3D0 LOCAL HEADER #1949    04034B50 (67324752)\n+6BF3D4 Extract Zip Spec      14 (20) '2.0'\n+6BF3D5 Extract OS            00 (0) 'MS-DOS'\n+6BF3D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6BF3D8 Compression Method    0000 (0) 'Stored'\n+6BF3DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BF3DE CRC                   00000000 (0)\n+6BF3E2 Compressed Size       00000000 (0)\n+6BF3E6 Uncompressed Size     00000000 (0)\n+6BF3EA Filename Length       003F (63)\n+6BF3EC Extra Length          0009 (9)\n+6BF3EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BF3EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BF42D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BF42F   Length              0005 (5)\n+6BF431   Flags               01 (1) 'Modification'\n+6BF432   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6BF436 PAYLOAD\n+\n+6BFD26 DATA DESCRIPTOR       08074B50 (134695760)\n+6BFD2A CRC                   33B08A9A (867207834)\n+6BFD2E Compressed Size       000008F0 (2288)\n+6BFD32 Uncompressed Size     000008F0 (2288)\n+\n+6BFD36 LOCAL HEADER #1950    04034B50 (67324752)\n+6BFD3A Extract Zip Spec      14 (20) '2.0'\n+6BFD3B Extract OS            00 (0) 'MS-DOS'\n+6BFD3C General Purpose Flag  0000 (0)\n+6BFD3E Compression Method    0000 (0) 'Stored'\n+6BFD40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BFD44 CRC                   00000000 (0)\n+6BFD48 Compressed Size       00000000 (0)\n+6BFD4C Uncompressed Size     00000000 (0)\n+6BFD50 Filename Length       001F (31)\n+6BFD52 Extra Length          0009 (9)\n+6BFD54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BFD54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BFD73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BFD75   Length              0005 (5)\n+6BFD77   Flags               01 (1) 'Modification'\n+6BFD78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6BFD7C LOCAL HEADER #1951    04034B50 (67324752)\n+6BFD80 Extract Zip Spec      14 (20) '2.0'\n+6BFD81 Extract OS            00 (0) 'MS-DOS'\n+6BFD82 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6BFD84 Compression Method    0000 (0) 'Stored'\n+6BFD86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6BFD8A CRC                   00000000 (0)\n+6BFD8E Compressed Size       00000000 (0)\n+6BFD92 Uncompressed Size     00000000 (0)\n+6BFD96 Filename Length       0033 (51)\n+6BFD98 Extra Length          0009 (9)\n+6BFD9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6BFD9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6BFDCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6BFDCF   Length              0005 (5)\n+6BFDD1   Flags               01 (1) 'Modification'\n+6BFDD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6BFDD6 PAYLOAD\n+\n+6C0622 DATA DESCRIPTOR       08074B50 (134695760)\n+6C0626 CRC                   776F6B16 (2003790614)\n+6C062A Compressed Size       0000084C (2124)\n+6C062E Uncompressed Size     0000084C (2124)\n+\n+6C0632 LOCAL HEADER #1952    04034B50 (67324752)\n+6C0636 Extract Zip Spec      14 (20) '2.0'\n+6C0637 Extract OS            00 (0) 'MS-DOS'\n+6C0638 General Purpose Flag  0000 (0)\n+6C063A Compression Method    0000 (0) 'Stored'\n+6C063C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C0640 CRC                   00000000 (0)\n+6C0644 Compressed Size       00000000 (0)\n+6C0648 Uncompressed Size     00000000 (0)\n+6C064C Filename Length       0023 (35)\n+6C064E Extra Length          0009 (9)\n+6C0650 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C0650: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C0673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C0675   Length              0005 (5)\n+6C0677   Flags               01 (1) 'Modification'\n+6C0678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6C067C LOCAL HEADER #1953    04034B50 (67324752)\n+6C0680 Extract Zip Spec      14 (20) '2.0'\n+6C0681 Extract OS            00 (0) 'MS-DOS'\n+6C0682 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C0684 Compression Method    0000 (0) 'Stored'\n+6C0686 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C068A CRC                   00000000 (0)\n+6C068E Compressed Size       00000000 (0)\n+6C0692 Uncompressed Size     00000000 (0)\n+6C0696 Filename Length       003F (63)\n+6C0698 Extra Length          0009 (9)\n+6C069A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C069A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C06D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C06DB   Length              0005 (5)\n+6C06DD   Flags               01 (1) 'Modification'\n+6C06DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C06E2 PAYLOAD\n+\n+6C1DB4 DATA DESCRIPTOR       08074B50 (134695760)\n+6C1DB8 CRC                   A1EB5EED (2716557037)\n+6C1DBC Compressed Size       000016D2 (5842)\n+6C1DC0 Uncompressed Size     000016D2 (5842)\n+\n+6C1DC4 LOCAL HEADER #1954    04034B50 (67324752)\n+6C1DC8 Extract Zip Spec      14 (20) '2.0'\n+6C1DC9 Extract OS            00 (0) 'MS-DOS'\n+6C1DCA General Purpose Flag  0000 (0)\n+6C1DCC Compression Method    0000 (0) 'Stored'\n+6C1DCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C1DD2 CRC                   00000000 (0)\n+6C1DD6 Compressed Size       00000000 (0)\n+6C1DDA Uncompressed Size     00000000 (0)\n+6C1DDE Filename Length       001D (29)\n+6C1DE0 Extra Length          0009 (9)\n+6C1DE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C1DE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C1DFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C1E01   Length              0005 (5)\n+6C1E03   Flags               01 (1) 'Modification'\n+6C1E04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6C1E08 LOCAL HEADER #1955    04034B50 (67324752)\n+6C1E0C Extract Zip Spec      14 (20) '2.0'\n+6C1E0D Extract OS            00 (0) 'MS-DOS'\n+6C1E0E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C1E10 Compression Method    0000 (0) 'Stored'\n+6C1E12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C1E16 CRC                   00000000 (0)\n+6C1E1A Compressed Size       00000000 (0)\n+6C1E1E Uncompressed Size     00000000 (0)\n+6C1E22 Filename Length       002D (45)\n+6C1E24 Extra Length          0009 (9)\n+6C1E26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C1E26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C1E53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C1E55   Length              0005 (5)\n+6C1E57   Flags               01 (1) 'Modification'\n+6C1E58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C1E5C PAYLOAD\n+\n+6C21F4 DATA DESCRIPTOR       08074B50 (134695760)\n+6C21F8 CRC                   8C6F354A (2356098378)\n+6C21FC Compressed Size       00000398 (920)\n+6C2200 Uncompressed Size     00000398 (920)\n+\n+6C2204 LOCAL HEADER #1956    04034B50 (67324752)\n+6C2208 Extract Zip Spec      14 (20) '2.0'\n+6C2209 Extract OS            00 (0) 'MS-DOS'\n+6C220A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C220C Compression Method    0000 (0) 'Stored'\n+6C220E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C2212 CRC                   00000000 (0)\n+6C2216 Compressed Size       00000000 (0)\n+6C221A Uncompressed Size     00000000 (0)\n+6C221E Filename Length       002D (45)\n+6C2220 Extra Length          0009 (9)\n+6C2222 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C2222: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C224F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C2251   Length              0005 (5)\n+6C2253   Flags               01 (1) 'Modification'\n+6C2254   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C2258 PAYLOAD\n+\n+6C2689 DATA DESCRIPTOR       08074B50 (134695760)\n+6C268D CRC                   4B31CC84 (1261554820)\n+6C2691 Compressed Size       00000431 (1073)\n+6C2695 Uncompressed Size     00000431 (1073)\n+\n+6C2699 LOCAL HEADER #1957    04034B50 (67324752)\n+6C269D Extract Zip Spec      14 (20) '2.0'\n+6C269E Extract OS            00 (0) 'MS-DOS'\n+6C269F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C26A1 Compression Method    0000 (0) 'Stored'\n+6C26A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C26A7 CRC                   00000000 (0)\n+6C26AB Compressed Size       00000000 (0)\n+6C26AF Uncompressed Size     00000000 (0)\n+6C26B3 Filename Length       0035 (53)\n+6C26B5 Extra Length          0009 (9)\n+6C26B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C26B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C26EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C26EE   Length              0005 (5)\n+6C26F0   Flags               01 (1) 'Modification'\n+6C26F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C26F5 PAYLOAD\n+\n+6C2B37 DATA DESCRIPTOR       08074B50 (134695760)\n+6C2B3B CRC                   66AD4132 (1722630450)\n+6C2B3F Compressed Size       00000442 (1090)\n+6C2B43 Uncompressed Size     00000442 (1090)\n+\n+6C2B47 LOCAL HEADER #1958    04034B50 (67324752)\n+6C2B4B Extract Zip Spec      14 (20) '2.0'\n+6C2B4C Extract OS            00 (0) 'MS-DOS'\n+6C2B4D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C2B4F Compression Method    0000 (0) 'Stored'\n+6C2B51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C2B55 CRC                   00000000 (0)\n+6C2B59 Compressed Size       00000000 (0)\n+6C2B5D Uncompressed Size     00000000 (0)\n+6C2B61 Filename Length       0032 (50)\n+6C2B63 Extra Length          0009 (9)\n+6C2B65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C2B65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C2B97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C2B99   Length              0005 (5)\n+6C2B9B   Flags               01 (1) 'Modification'\n+6C2B9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C2BA0 PAYLOAD\n+\n+6C33A9 DATA DESCRIPTOR       08074B50 (134695760)\n+6C33AD CRC                   49B9FF79 (1236926329)\n+6C33B1 Compressed Size       00000809 (2057)\n+6C33B5 Uncompressed Size     00000809 (2057)\n+\n+6C33B9 LOCAL HEADER #1959    04034B50 (67324752)\n+6C33BD Extract Zip Spec      14 (20) '2.0'\n+6C33BE Extract OS            00 (0) 'MS-DOS'\n+6C33BF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C33C1 Compression Method    0000 (0) 'Stored'\n+6C33C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C33C7 CRC                   00000000 (0)\n+6C33CB Compressed Size       00000000 (0)\n+6C33CF Uncompressed Size     00000000 (0)\n+6C33D3 Filename Length       0030 (48)\n+6C33D5 Extra Length          0009 (9)\n+6C33D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C33D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C3407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C3409   Length              0005 (5)\n+6C340B   Flags               01 (1) 'Modification'\n+6C340C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C3410 PAYLOAD\n+\n+6C3B9D DATA DESCRIPTOR       08074B50 (134695760)\n+6C3BA1 CRC                   D07DEF14 (3497914132)\n+6C3BA5 Compressed Size       0000078D (1933)\n+6C3BA9 Uncompressed Size     0000078D (1933)\n+\n+6C3BAD LOCAL HEADER #1960    04034B50 (67324752)\n+6C3BB1 Extract Zip Spec      14 (20) '2.0'\n+6C3BB2 Extract OS            00 (0) 'MS-DOS'\n+6C3BB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C3BB5 Compression Method    0000 (0) 'Stored'\n+6C3BB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C3BBB CRC                   00000000 (0)\n+6C3BBF Compressed Size       00000000 (0)\n+6C3BC3 Uncompressed Size     00000000 (0)\n+6C3BC7 Filename Length       0038 (56)\n+6C3BC9 Extra Length          0009 (9)\n+6C3BCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C3BCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C3C03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C3C05   Length              0005 (5)\n+6C3C07   Flags               01 (1) 'Modification'\n+6C3C08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C3C0C PAYLOAD\n+\n+6C4054 DATA DESCRIPTOR       08074B50 (134695760)\n+6C4058 CRC                   4AFAB67E (1257944702)\n+6C405C Compressed Size       00000448 (1096)\n+6C4060 Uncompressed Size     00000448 (1096)\n+\n+6C4064 LOCAL HEADER #1961    04034B50 (67324752)\n+6C4068 Extract Zip Spec      14 (20) '2.0'\n+6C4069 Extract OS            00 (0) 'MS-DOS'\n+6C406A General Purpose Flag  0000 (0)\n+6C406C Compression Method    0000 (0) 'Stored'\n+6C406E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C4072 CRC                   00000000 (0)\n+6C4076 Compressed Size       00000000 (0)\n+6C407A Uncompressed Size     00000000 (0)\n+6C407E Filename Length       001D (29)\n+6C4080 Extra Length          0009 (9)\n+6C4082 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C4082: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C409F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C40A1   Length              0005 (5)\n+6C40A3   Flags               01 (1) 'Modification'\n+6C40A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6C40A8 LOCAL HEADER #1962    04034B50 (67324752)\n+6C40AC Extract Zip Spec      14 (20) '2.0'\n+6C40AD Extract OS            00 (0) 'MS-DOS'\n+6C40AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C40B0 Compression Method    0000 (0) 'Stored'\n+6C40B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C40B6 CRC                   00000000 (0)\n+6C40BA Compressed Size       00000000 (0)\n+6C40BE Uncompressed Size     00000000 (0)\n+6C40C2 Filename Length       002F (47)\n+6C40C4 Extra Length          0009 (9)\n+6C40C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C40C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C40F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C40F7   Length              0005 (5)\n+6C40F9   Flags               01 (1) 'Modification'\n+6C40FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C40FE PAYLOAD\n+\n+6C60FE DATA DESCRIPTOR       08074B50 (134695760)\n+6C6102 CRC                   93BDDA62 (2478692962)\n+6C6106 Compressed Size       00002000 (8192)\n+6C610A Uncompressed Size     00002000 (8192)\n+\n+6C610E LOCAL HEADER #1963    04034B50 (67324752)\n+6C6112 Extract Zip Spec      14 (20) '2.0'\n+6C6113 Extract OS            00 (0) 'MS-DOS'\n+6C6114 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C6116 Compression Method    0000 (0) 'Stored'\n+6C6118 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C611C CRC                   00000000 (0)\n+6C6120 Compressed Size       00000000 (0)\n+6C6124 Uncompressed Size     00000000 (0)\n+6C6128 Filename Length       0036 (54)\n+6C612A Extra Length          0009 (9)\n+6C612C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C612C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C6162 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C6164   Length              0005 (5)\n+6C6166   Flags               01 (1) 'Modification'\n+6C6167   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C616B PAYLOAD\n+\n+6C6CFB DATA DESCRIPTOR       08074B50 (134695760)\n+6C6CFF CRC                   C563319A (3311612314)\n+6C6D03 Compressed Size       00000B90 (2960)\n+6C6D07 Uncompressed Size     00000B90 (2960)\n+\n+6C6D0B LOCAL HEADER #1964    04034B50 (67324752)\n+6C6D0F Extract Zip Spec      14 (20) '2.0'\n+6C6D10 Extract OS            00 (0) 'MS-DOS'\n+6C6D11 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C6D13 Compression Method    0000 (0) 'Stored'\n+6C6D15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C6D19 CRC                   00000000 (0)\n+6C6D1D Compressed Size       00000000 (0)\n+6C6D21 Uncompressed Size     00000000 (0)\n+6C6D25 Filename Length       002D (45)\n+6C6D27 Extra Length          0009 (9)\n+6C6D29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C6D29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C6D56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C6D58   Length              0005 (5)\n+6C6D5A   Flags               01 (1) 'Modification'\n+6C6D5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C6D5F PAYLOAD\n+\n+6C98B4 DATA DESCRIPTOR       08074B50 (134695760)\n+6C98B8 CRC                   E459791A (3831068954)\n+6C98BC Compressed Size       00002B55 (11093)\n+6C98C0 Uncompressed Size     00002B55 (11093)\n+\n+6C98C4 LOCAL HEADER #1965    04034B50 (67324752)\n+6C98C8 Extract Zip Spec      14 (20) '2.0'\n+6C98C9 Extract OS            00 (0) 'MS-DOS'\n+6C98CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C98CC Compression Method    0000 (0) 'Stored'\n+6C98CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C98D2 CRC                   00000000 (0)\n+6C98D6 Compressed Size       00000000 (0)\n+6C98DA Uncompressed Size     00000000 (0)\n+6C98DE Filename Length       002E (46)\n+6C98E0 Extra Length          0009 (9)\n+6C98E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C98E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C9910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C9912   Length              0005 (5)\n+6C9914   Flags               01 (1) 'Modification'\n+6C9915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C9919 PAYLOAD\n+\n+6C9F77 DATA DESCRIPTOR       08074B50 (134695760)\n+6C9F7B CRC                   80C30D3D (2160266557)\n+6C9F7F Compressed Size       0000065E (1630)\n+6C9F83 Uncompressed Size     0000065E (1630)\n+\n+6C9F87 LOCAL HEADER #1966    04034B50 (67324752)\n+6C9F8B Extract Zip Spec      14 (20) '2.0'\n+6C9F8C Extract OS            00 (0) 'MS-DOS'\n+6C9F8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6C9F8F Compression Method    0000 (0) 'Stored'\n+6C9F91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6C9F95 CRC                   00000000 (0)\n+6C9F99 Compressed Size       00000000 (0)\n+6C9F9D Uncompressed Size     00000000 (0)\n+6C9FA1 Filename Length       002F (47)\n+6C9FA3 Extra Length          0009 (9)\n+6C9FA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6C9FA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6C9FD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6C9FD6   Length              0005 (5)\n+6C9FD8   Flags               01 (1) 'Modification'\n+6C9FD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6C9FDD PAYLOAD\n+\n+6CB095 DATA DESCRIPTOR       08074B50 (134695760)\n+6CB099 CRC                   1187A07F (294101119)\n+6CB09D Compressed Size       000010B8 (4280)\n+6CB0A1 Uncompressed Size     000010B8 (4280)\n+\n+6CB0A5 LOCAL HEADER #1967    04034B50 (67324752)\n+6CB0A9 Extract Zip Spec      14 (20) '2.0'\n+6CB0AA Extract OS            00 (0) 'MS-DOS'\n+6CB0AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6CB0AD Compression Method    0000 (0) 'Stored'\n+6CB0AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CB0B3 CRC                   00000000 (0)\n+6CB0B7 Compressed Size       00000000 (0)\n+6CB0BB Uncompressed Size     00000000 (0)\n+6CB0BF Filename Length       002A (42)\n+6CB0C1 Extra Length          0009 (9)\n+6CB0C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CB0C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CB0ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CB0EF   Length              0005 (5)\n+6CB0F1   Flags               01 (1) 'Modification'\n+6CB0F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6CB0F6 PAYLOAD\n+\n+6CDD3D DATA DESCRIPTOR       08074B50 (134695760)\n+6CDD41 CRC                   8E103737 (2383427383)\n+6CDD45 Compressed Size       00002C47 (11335)\n+6CDD49 Uncompressed Size     00002C47 (11335)\n+\n+6CDD4D LOCAL HEADER #1968    04034B50 (67324752)\n+6CDD51 Extract Zip Spec      14 (20) '2.0'\n+6CDD52 Extract OS            00 (0) 'MS-DOS'\n+6CDD53 General Purpose Flag  0000 (0)\n+6CDD55 Compression Method    0000 (0) 'Stored'\n+6CDD57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CDD5B CRC                   00000000 (0)\n+6CDD5F Compressed Size       00000000 (0)\n+6CDD63 Uncompressed Size     00000000 (0)\n+6CDD67 Filename Length       001B (27)\n+6CDD69 Extra Length          0009 (9)\n+6CDD6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CDD6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CDD86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CDD88   Length              0005 (5)\n+6CDD8A   Flags               01 (1) 'Modification'\n+6CDD8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6CDD8F LOCAL HEADER #1969    04034B50 (67324752)\n+6CDD93 Extract Zip Spec      14 (20) '2.0'\n+6CDD94 Extract OS            00 (0) 'MS-DOS'\n+6CDD95 General Purpose Flag  0000 (0)\n+6CDD97 Compression Method    0000 (0) 'Stored'\n+6CDD99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CDD9D CRC                   00000000 (0)\n+6CDDA1 Compressed Size       00000000 (0)\n+6CDDA5 Uncompressed Size     00000000 (0)\n+6CDDA9 Filename Length       0023 (35)\n+6CDDAB Extra Length          0009 (9)\n+6CDDAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CDDAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CDDD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CDDD2   Length              0005 (5)\n+6CDDD4   Flags               01 (1) 'Modification'\n+6CDDD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6CDDD9 LOCAL HEADER #1970    04034B50 (67324752)\n+6CDDDD Extract Zip Spec      14 (20) '2.0'\n+6CDDDE Extract OS            00 (0) 'MS-DOS'\n+6CDDDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6CDDE1 Compression Method    0000 (0) 'Stored'\n+6CDDE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CDDE7 CRC                   00000000 (0)\n+6CDDEB Compressed Size       00000000 (0)\n+6CDDEF Uncompressed Size     00000000 (0)\n+6CDDF3 Filename Length       003B (59)\n+6CDDF5 Extra Length          0009 (9)\n+6CDDF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CDDF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CDE32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CDE34   Length              0005 (5)\n+6CDE36   Flags               01 (1) 'Modification'\n+6CDE37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6CDE3B PAYLOAD\n+\n+6CE921 DATA DESCRIPTOR       08074B50 (134695760)\n+6CE925 CRC                   ED7C06AB (3984328363)\n+6CE929 Compressed Size       00000AE6 (2790)\n+6CE92D Uncompressed Size     00000AE6 (2790)\n+\n+6CE931 LOCAL HEADER #1971    04034B50 (67324752)\n+6CE935 Extract Zip Spec      14 (20) '2.0'\n+6CE936 Extract OS            00 (0) 'MS-DOS'\n+6CE937 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6CE939 Compression Method    0000 (0) 'Stored'\n+6CE93B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CE93F CRC                   00000000 (0)\n+6CE943 Compressed Size       00000000 (0)\n+6CE947 Uncompressed Size     00000000 (0)\n+6CE94B Filename Length       003C (60)\n+6CE94D Extra Length          0009 (9)\n+6CE94F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CE94F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CE98B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CE98D   Length              0005 (5)\n+6CE98F   Flags               01 (1) 'Modification'\n+6CE990   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6CE994 PAYLOAD\n+\n+6CF43E DATA DESCRIPTOR       08074B50 (134695760)\n+6CF442 CRC                   86102534 (2249205044)\n+6CF446 Compressed Size       00000AAA (2730)\n+6CF44A Uncompressed Size     00000AAA (2730)\n+\n+6CF44E LOCAL HEADER #1972    04034B50 (67324752)\n+6CF452 Extract Zip Spec      14 (20) '2.0'\n+6CF453 Extract OS            00 (0) 'MS-DOS'\n+6CF454 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6CF456 Compression Method    0000 (0) 'Stored'\n+6CF458 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CF45C CRC                   00000000 (0)\n+6CF460 Compressed Size       00000000 (0)\n+6CF464 Uncompressed Size     00000000 (0)\n+6CF468 Filename Length       003D (61)\n+6CF46A Extra Length          0009 (9)\n+6CF46C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CF46C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CF4A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CF4AB   Length              0005 (5)\n+6CF4AD   Flags               01 (1) 'Modification'\n+6CF4AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6CF4B2 PAYLOAD\n+\n+6CFBEE DATA DESCRIPTOR       08074B50 (134695760)\n+6CFBF2 CRC                   D9C4B6B2 (3653547698)\n+6CFBF6 Compressed Size       0000073C (1852)\n+6CFBFA Uncompressed Size     0000073C (1852)\n+\n+6CFBFE LOCAL HEADER #1973    04034B50 (67324752)\n+6CFC02 Extract Zip Spec      14 (20) '2.0'\n+6CFC03 Extract OS            00 (0) 'MS-DOS'\n+6CFC04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6CFC06 Compression Method    0000 (0) 'Stored'\n+6CFC08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6CFC0C CRC                   00000000 (0)\n+6CFC10 Compressed Size       00000000 (0)\n+6CFC14 Uncompressed Size     00000000 (0)\n+6CFC18 Filename Length       0041 (65)\n+6CFC1A Extra Length          0009 (9)\n+6CFC1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6CFC1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6CFC5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6CFC5F   Length              0005 (5)\n+6CFC61   Flags               01 (1) 'Modification'\n+6CFC62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6CFC66 PAYLOAD\n+\n+6D0399 DATA DESCRIPTOR       08074B50 (134695760)\n+6D039D CRC                   5DF61F16 (1576410902)\n+6D03A1 Compressed Size       00000733 (1843)\n+6D03A5 Uncompressed Size     00000733 (1843)\n+\n+6D03A9 LOCAL HEADER #1974    04034B50 (67324752)\n+6D03AD Extract Zip Spec      14 (20) '2.0'\n+6D03AE Extract OS            00 (0) 'MS-DOS'\n+6D03AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D03B1 Compression Method    0000 (0) 'Stored'\n+6D03B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D03B7 CRC                   00000000 (0)\n+6D03BB Compressed Size       00000000 (0)\n+6D03BF Uncompressed Size     00000000 (0)\n+6D03C3 Filename Length       003E (62)\n+6D03C5 Extra Length          0009 (9)\n+6D03C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D03C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D0405 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D0407   Length              0005 (5)\n+6D0409   Flags               01 (1) 'Modification'\n+6D040A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D040E PAYLOAD\n+\n+6D1635 DATA DESCRIPTOR       08074B50 (134695760)\n+6D1639 CRC                   B4FAC75F (3036333919)\n+6D163D Compressed Size       00001227 (4647)\n+6D1641 Uncompressed Size     00001227 (4647)\n+\n+6D1645 LOCAL HEADER #1975    04034B50 (67324752)\n+6D1649 Extract Zip Spec      14 (20) '2.0'\n+6D164A Extract OS            00 (0) 'MS-DOS'\n+6D164B General Purpose Flag  0000 (0)\n+6D164D Compression Method    0000 (0) 'Stored'\n+6D164F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D1653 CRC                   00000000 (0)\n+6D1657 Compressed Size       00000000 (0)\n+6D165B Uncompressed Size     00000000 (0)\n+6D165F Filename Length       002E (46)\n+6D1661 Extra Length          0009 (9)\n+6D1663 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D1663: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D1691 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D1693   Length              0005 (5)\n+6D1695   Flags               01 (1) 'Modification'\n+6D1696   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6D169A LOCAL HEADER #1976    04034B50 (67324752)\n+6D169E Extract Zip Spec      14 (20) '2.0'\n+6D169F Extract OS            00 (0) 'MS-DOS'\n+6D16A0 General Purpose Flag  0000 (0)\n+6D16A2 Compression Method    0000 (0) 'Stored'\n+6D16A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D16A8 CRC                   00000000 (0)\n+6D16AC Compressed Size       00000000 (0)\n+6D16B0 Uncompressed Size     00000000 (0)\n+6D16B4 Filename Length       0034 (52)\n+6D16B6 Extra Length          0009 (9)\n+6D16B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D16B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D16EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D16EE   Length              0005 (5)\n+6D16F0   Flags               01 (1) 'Modification'\n+6D16F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6D16F5 LOCAL HEADER #1977    04034B50 (67324752)\n+6D16F9 Extract Zip Spec      14 (20) '2.0'\n+6D16FA Extract OS            00 (0) 'MS-DOS'\n+6D16FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D16FD Compression Method    0000 (0) 'Stored'\n+6D16FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D1703 CRC                   00000000 (0)\n+6D1707 Compressed Size       00000000 (0)\n+6D170B Uncompressed Size     00000000 (0)\n+6D170F Filename Length       0047 (71)\n+6D1711 Extra Length          0009 (9)\n+6D1713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D1713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D175A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D175C   Length              0005 (5)\n+6D175E   Flags               01 (1) 'Modification'\n+6D175F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D1763 PAYLOAD\n+\n+6D1E12 DATA DESCRIPTOR       08074B50 (134695760)\n+6D1E16 CRC                   B981B5EA (3112285674)\n+6D1E1A Compressed Size       000006AF (1711)\n+6D1E1E Uncompressed Size     000006AF (1711)\n+\n+6D1E22 LOCAL HEADER #1978    04034B50 (67324752)\n+6D1E26 Extract Zip Spec      14 (20) '2.0'\n+6D1E27 Extract OS            00 (0) 'MS-DOS'\n+6D1E28 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D1E2A Compression Method    0000 (0) 'Stored'\n+6D1E2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D1E30 CRC                   00000000 (0)\n+6D1E34 Compressed Size       00000000 (0)\n+6D1E38 Uncompressed Size     00000000 (0)\n+6D1E3C Filename Length       0046 (70)\n+6D1E3E Extra Length          0009 (9)\n+6D1E40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D1E40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D1E86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D1E88   Length              0005 (5)\n+6D1E8A   Flags               01 (1) 'Modification'\n+6D1E8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D1E8F PAYLOAD\n+\n+6D253E DATA DESCRIPTOR       08074B50 (134695760)\n+6D2542 CRC                   D04429D3 (3494128083)\n+6D2546 Compressed Size       000006AF (1711)\n+6D254A Uncompressed Size     000006AF (1711)\n+\n+6D254E LOCAL HEADER #1979    04034B50 (67324752)\n+6D2552 Extract Zip Spec      14 (20) '2.0'\n+6D2553 Extract OS            00 (0) 'MS-DOS'\n+6D2554 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D2556 Compression Method    0000 (0) 'Stored'\n+6D2558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D255C CRC                   00000000 (0)\n+6D2560 Compressed Size       00000000 (0)\n+6D2564 Uncompressed Size     00000000 (0)\n+6D2568 Filename Length       004C (76)\n+6D256A Extra Length          0009 (9)\n+6D256C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D256C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D25B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D25BA   Length              0005 (5)\n+6D25BC   Flags               01 (1) 'Modification'\n+6D25BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D25C1 PAYLOAD\n+\n+6D2DA2 DATA DESCRIPTOR       08074B50 (134695760)\n+6D2DA6 CRC                   473D2A13 (1195190803)\n+6D2DAA Compressed Size       000007E1 (2017)\n+6D2DAE Uncompressed Size     000007E1 (2017)\n+\n+6D2DB2 LOCAL HEADER #1980    04034B50 (67324752)\n+6D2DB6 Extract Zip Spec      14 (20) '2.0'\n+6D2DB7 Extract OS            00 (0) 'MS-DOS'\n+6D2DB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D2DBA Compression Method    0000 (0) 'Stored'\n+6D2DBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D2DC0 CRC                   00000000 (0)\n+6D2DC4 Compressed Size       00000000 (0)\n+6D2DC8 Uncompressed Size     00000000 (0)\n+6D2DCC Filename Length       0048 (72)\n+6D2DCE Extra Length          0009 (9)\n+6D2DD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D2DD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D2E18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D2E1A   Length              0005 (5)\n+6D2E1C   Flags               01 (1) 'Modification'\n+6D2E1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D2E21 PAYLOAD\n+\n+6D3517 DATA DESCRIPTOR       08074B50 (134695760)\n+6D351B CRC                   5EDE06FE (1591609086)\n+6D351F Compressed Size       000006F6 (1782)\n+6D3523 Uncompressed Size     000006F6 (1782)\n+\n+6D3527 LOCAL HEADER #1981    04034B50 (67324752)\n+6D352B Extract Zip Spec      14 (20) '2.0'\n+6D352C Extract OS            00 (0) 'MS-DOS'\n+6D352D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D352F Compression Method    0000 (0) 'Stored'\n+6D3531 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D3535 CRC                   00000000 (0)\n+6D3539 Compressed Size       00000000 (0)\n+6D353D Uncompressed Size     00000000 (0)\n+6D3541 Filename Length       004C (76)\n+6D3543 Extra Length          0009 (9)\n+6D3545 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D3545: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D3591 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D3593   Length              0005 (5)\n+6D3595   Flags               01 (1) 'Modification'\n+6D3596   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D359A PAYLOAD\n+\n+6D3CA7 DATA DESCRIPTOR       08074B50 (134695760)\n+6D3CAB CRC                   C24A81AD (3259662765)\n+6D3CAF Compressed Size       0000070D (1805)\n+6D3CB3 Uncompressed Size     0000070D (1805)\n+\n+6D3CB7 LOCAL HEADER #1982    04034B50 (67324752)\n+6D3CBB Extract Zip Spec      14 (20) '2.0'\n+6D3CBC Extract OS            00 (0) 'MS-DOS'\n+6D3CBD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D3CBF Compression Method    0000 (0) 'Stored'\n+6D3CC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D3CC5 CRC                   00000000 (0)\n+6D3CC9 Compressed Size       00000000 (0)\n+6D3CCD Uncompressed Size     00000000 (0)\n+6D3CD1 Filename Length       0048 (72)\n+6D3CD3 Extra Length          0009 (9)\n+6D3CD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D3CD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D3D1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D3D1F   Length              0005 (5)\n+6D3D21   Flags               01 (1) 'Modification'\n+6D3D22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D3D26 PAYLOAD\n+\n+6D446E DATA DESCRIPTOR       08074B50 (134695760)\n+6D4472 CRC                   5F5E8EB8 (1600032440)\n+6D4476 Compressed Size       00000748 (1864)\n+6D447A Uncompressed Size     00000748 (1864)\n+\n+6D447E LOCAL HEADER #1983    04034B50 (67324752)\n+6D4482 Extract Zip Spec      14 (20) '2.0'\n+6D4483 Extract OS            00 (0) 'MS-DOS'\n+6D4484 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D4486 Compression Method    0000 (0) 'Stored'\n+6D4488 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D448C CRC                   00000000 (0)\n+6D4490 Compressed Size       00000000 (0)\n+6D4494 Uncompressed Size     00000000 (0)\n+6D4498 Filename Length       0047 (71)\n+6D449A Extra Length          0009 (9)\n+6D449C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D449C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D44E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D44E5   Length              0005 (5)\n+6D44E7   Flags               01 (1) 'Modification'\n+6D44E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D44EC PAYLOAD\n+\n+6D4B8F DATA DESCRIPTOR       08074B50 (134695760)\n+6D4B93 CRC                   058FA161 (93299041)\n+6D4B97 Compressed Size       000006A3 (1699)\n+6D4B9B Uncompressed Size     000006A3 (1699)\n+\n+6D4B9F LOCAL HEADER #1984    04034B50 (67324752)\n+6D4BA3 Extract Zip Spec      14 (20) '2.0'\n+6D4BA4 Extract OS            00 (0) 'MS-DOS'\n+6D4BA5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D4BA7 Compression Method    0000 (0) 'Stored'\n+6D4BA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D4BAD CRC                   00000000 (0)\n+6D4BB1 Compressed Size       00000000 (0)\n+6D4BB5 Uncompressed Size     00000000 (0)\n+6D4BB9 Filename Length       004D (77)\n+6D4BBB Extra Length          0009 (9)\n+6D4BBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D4BBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D4C0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D4C0C   Length              0005 (5)\n+6D4C0E   Flags               01 (1) 'Modification'\n+6D4C0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D4C13 PAYLOAD\n+\n+6D5353 DATA DESCRIPTOR       08074B50 (134695760)\n+6D5357 CRC                   E27B7C96 (3799743638)\n+6D535B Compressed Size       00000740 (1856)\n+6D535F Uncompressed Size     00000740 (1856)\n+\n+6D5363 LOCAL HEADER #1985    04034B50 (67324752)\n+6D5367 Extract Zip Spec      14 (20) '2.0'\n+6D5368 Extract OS            00 (0) 'MS-DOS'\n+6D5369 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D536B Compression Method    0000 (0) 'Stored'\n+6D536D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D5371 CRC                   00000000 (0)\n+6D5375 Compressed Size       00000000 (0)\n+6D5379 Uncompressed Size     00000000 (0)\n+6D537D Filename Length       0049 (73)\n+6D537F Extra Length          0009 (9)\n+6D5381 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D5381: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D53CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D53CC   Length              0005 (5)\n+6D53CE   Flags               01 (1) 'Modification'\n+6D53CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D53D3 PAYLOAD\n+\n+6D5AEE DATA DESCRIPTOR       08074B50 (134695760)\n+6D5AF2 CRC                   9F3D415D (2671591773)\n+6D5AF6 Compressed Size       0000071B (1819)\n+6D5AFA Uncompressed Size     0000071B (1819)\n+\n+6D5AFE LOCAL HEADER #1986    04034B50 (67324752)\n+6D5B02 Extract Zip Spec      14 (20) '2.0'\n+6D5B03 Extract OS            00 (0) 'MS-DOS'\n+6D5B04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D5B06 Compression Method    0000 (0) 'Stored'\n+6D5B08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D5B0C CRC                   00000000 (0)\n+6D5B10 Compressed Size       00000000 (0)\n+6D5B14 Uncompressed Size     00000000 (0)\n+6D5B18 Filename Length       0045 (69)\n+6D5B1A Extra Length          0009 (9)\n+6D5B1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D5B1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D5B61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D5B63   Length              0005 (5)\n+6D5B65   Flags               01 (1) 'Modification'\n+6D5B66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D5B6A PAYLOAD\n+\n+6D6243 DATA DESCRIPTOR       08074B50 (134695760)\n+6D6247 CRC                   51BCB93C (1371322684)\n+6D624B Compressed Size       000006D9 (1753)\n+6D624F Uncompressed Size     000006D9 (1753)\n+\n+6D6253 LOCAL HEADER #1987    04034B50 (67324752)\n+6D6257 Extract Zip Spec      14 (20) '2.0'\n+6D6258 Extract OS            00 (0) 'MS-DOS'\n+6D6259 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D625B Compression Method    0000 (0) 'Stored'\n+6D625D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D6261 CRC                   00000000 (0)\n+6D6265 Compressed Size       00000000 (0)\n+6D6269 Uncompressed Size     00000000 (0)\n+6D626D Filename Length       0043 (67)\n+6D626F Extra Length          0009 (9)\n+6D6271 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D6271: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D62B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D62B6   Length              0005 (5)\n+6D62B8   Flags               01 (1) 'Modification'\n+6D62B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D62BD PAYLOAD\n+\n+6D68E4 DATA DESCRIPTOR       08074B50 (134695760)\n+6D68E8 CRC                   A6FC3818 (2801547288)\n+6D68EC Compressed Size       00000627 (1575)\n+6D68F0 Uncompressed Size     00000627 (1575)\n+\n+6D68F4 LOCAL HEADER #1988    04034B50 (67324752)\n+6D68F8 Extract Zip Spec      14 (20) '2.0'\n+6D68F9 Extract OS            00 (0) 'MS-DOS'\n+6D68FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D68FC Compression Method    0000 (0) 'Stored'\n+6D68FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D6902 CRC                   00000000 (0)\n+6D6906 Compressed Size       00000000 (0)\n+6D690A Uncompressed Size     00000000 (0)\n+6D690E Filename Length       0048 (72)\n+6D6910 Extra Length          0009 (9)\n+6D6912 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D6912: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D695A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D695C   Length              0005 (5)\n+6D695E   Flags               01 (1) 'Modification'\n+6D695F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D6963 PAYLOAD\n+\n+6D700E DATA DESCRIPTOR       08074B50 (134695760)\n+6D7012 CRC                   2D3E4959 (759056729)\n+6D7016 Compressed Size       000006AB (1707)\n+6D701A Uncompressed Size     000006AB (1707)\n+\n+6D701E LOCAL HEADER #1989    04034B50 (67324752)\n+6D7022 Extract Zip Spec      14 (20) '2.0'\n+6D7023 Extract OS            00 (0) 'MS-DOS'\n+6D7024 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D7026 Compression Method    0000 (0) 'Stored'\n+6D7028 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D702C CRC                   00000000 (0)\n+6D7030 Compressed Size       00000000 (0)\n+6D7034 Uncompressed Size     00000000 (0)\n+6D7038 Filename Length       0045 (69)\n+6D703A Extra Length          0009 (9)\n+6D703C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D703C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D7081 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D7083   Length              0005 (5)\n+6D7085   Flags               01 (1) 'Modification'\n+6D7086   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D708A PAYLOAD\n+\n+6D76D3 DATA DESCRIPTOR       08074B50 (134695760)\n+6D76D7 CRC                   34807571 (880833905)\n+6D76DB Compressed Size       00000649 (1609)\n+6D76DF Uncompressed Size     00000649 (1609)\n+\n+6D76E3 LOCAL HEADER #1990    04034B50 (67324752)\n+6D76E7 Extract Zip Spec      14 (20) '2.0'\n+6D76E8 Extract OS            00 (0) 'MS-DOS'\n+6D76E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D76EB Compression Method    0000 (0) 'Stored'\n+6D76ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D76F1 CRC                   00000000 (0)\n+6D76F5 Compressed Size       00000000 (0)\n+6D76F9 Uncompressed Size     00000000 (0)\n+6D76FD Filename Length       0049 (73)\n+6D76FF Extra Length          0009 (9)\n+6D7701 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D7701: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D774A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D774C   Length              0005 (5)\n+6D774E   Flags               01 (1) 'Modification'\n+6D774F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D7753 PAYLOAD\n+\n+6D7D3A DATA DESCRIPTOR       08074B50 (134695760)\n+6D7D3E CRC                   823F34AF (2185180335)\n+6D7D42 Compressed Size       000005E7 (1511)\n+6D7D46 Uncompressed Size     000005E7 (1511)\n+\n+6D7D4A LOCAL HEADER #1991    04034B50 (67324752)\n+6D7D4E Extract Zip Spec      14 (20) '2.0'\n+6D7D4F Extract OS            00 (0) 'MS-DOS'\n+6D7D50 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D7D52 Compression Method    0000 (0) 'Stored'\n+6D7D54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D7D58 CRC                   00000000 (0)\n+6D7D5C Compressed Size       00000000 (0)\n+6D7D60 Uncompressed Size     00000000 (0)\n+6D7D64 Filename Length       0049 (73)\n+6D7D66 Extra Length          0009 (9)\n+6D7D68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D7D68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D7DB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D7DB3   Length              0005 (5)\n+6D7DB5   Flags               01 (1) 'Modification'\n+6D7DB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D7DBA PAYLOAD\n+\n+6D8436 DATA DESCRIPTOR       08074B50 (134695760)\n+6D843A CRC                   F89085BF (4170220991)\n+6D843E Compressed Size       0000067C (1660)\n+6D8442 Uncompressed Size     0000067C (1660)\n+\n+6D8446 LOCAL HEADER #1992    04034B50 (67324752)\n+6D844A Extract Zip Spec      14 (20) '2.0'\n+6D844B Extract OS            00 (0) 'MS-DOS'\n+6D844C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D844E Compression Method    0000 (0) 'Stored'\n+6D8450 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D8454 CRC                   00000000 (0)\n+6D8458 Compressed Size       00000000 (0)\n+6D845C Uncompressed Size     00000000 (0)\n+6D8460 Filename Length       004C (76)\n+6D8462 Extra Length          0009 (9)\n+6D8464 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D8464: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D84B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D84B2   Length              0005 (5)\n+6D84B4   Flags               01 (1) 'Modification'\n+6D84B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D84B9 PAYLOAD\n+\n+6D8CD0 DATA DESCRIPTOR       08074B50 (134695760)\n+6D8CD4 CRC                   A0A0B3FD (2694886397)\n+6D8CD8 Compressed Size       00000817 (2071)\n+6D8CDC Uncompressed Size     00000817 (2071)\n+\n+6D8CE0 LOCAL HEADER #1993    04034B50 (67324752)\n+6D8CE4 Extract Zip Spec      14 (20) '2.0'\n+6D8CE5 Extract OS            00 (0) 'MS-DOS'\n+6D8CE6 General Purpose Flag  0000 (0)\n+6D8CE8 Compression Method    0000 (0) 'Stored'\n+6D8CEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D8CEE CRC                   00000000 (0)\n+6D8CF2 Compressed Size       00000000 (0)\n+6D8CF6 Uncompressed Size     00000000 (0)\n+6D8CFA Filename Length       001C (28)\n+6D8CFC Extra Length          0009 (9)\n+6D8CFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D8CFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D8D1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D8D1C   Length              0005 (5)\n+6D8D1E   Flags               01 (1) 'Modification'\n+6D8D1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6D8D23 LOCAL HEADER #1994    04034B50 (67324752)\n+6D8D27 Extract Zip Spec      14 (20) '2.0'\n+6D8D28 Extract OS            00 (0) 'MS-DOS'\n+6D8D29 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D8D2B Compression Method    0000 (0) 'Stored'\n+6D8D2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D8D31 CRC                   00000000 (0)\n+6D8D35 Compressed Size       00000000 (0)\n+6D8D39 Uncompressed Size     00000000 (0)\n+6D8D3D Filename Length       0030 (48)\n+6D8D3F Extra Length          0009 (9)\n+6D8D41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D8D41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D8D71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D8D73   Length              0005 (5)\n+6D8D75   Flags               01 (1) 'Modification'\n+6D8D76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D8D7A PAYLOAD\n+\n+6D93E2 DATA DESCRIPTOR       08074B50 (134695760)\n+6D93E6 CRC                   9FA19E67 (2678169191)\n+6D93EA Compressed Size       00000668 (1640)\n+6D93EE Uncompressed Size     00000668 (1640)\n+\n+6D93F2 LOCAL HEADER #1995    04034B50 (67324752)\n+6D93F6 Extract Zip Spec      14 (20) '2.0'\n+6D93F7 Extract OS            00 (0) 'MS-DOS'\n+6D93F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D93FA Compression Method    0000 (0) 'Stored'\n+6D93FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D9400 CRC                   00000000 (0)\n+6D9404 Compressed Size       00000000 (0)\n+6D9408 Uncompressed Size     00000000 (0)\n+6D940C Filename Length       002B (43)\n+6D940E Extra Length          0009 (9)\n+6D9410 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D9410: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D943B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D943D   Length              0005 (5)\n+6D943F   Flags               01 (1) 'Modification'\n+6D9440   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D9444 PAYLOAD\n+\n+6D9A27 DATA DESCRIPTOR       08074B50 (134695760)\n+6D9A2B CRC                   00116B33 (1141555)\n+6D9A2F Compressed Size       000005E3 (1507)\n+6D9A33 Uncompressed Size     000005E3 (1507)\n+\n+6D9A37 LOCAL HEADER #1996    04034B50 (67324752)\n+6D9A3B Extract Zip Spec      14 (20) '2.0'\n+6D9A3C Extract OS            00 (0) 'MS-DOS'\n+6D9A3D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D9A3F Compression Method    0000 (0) 'Stored'\n+6D9A41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D9A45 CRC                   00000000 (0)\n+6D9A49 Compressed Size       00000000 (0)\n+6D9A4D Uncompressed Size     00000000 (0)\n+6D9A51 Filename Length       002A (42)\n+6D9A53 Extra Length          0009 (9)\n+6D9A55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D9A55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D9A7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D9A81   Length              0005 (5)\n+6D9A83   Flags               01 (1) 'Modification'\n+6D9A84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D9A88 PAYLOAD\n+\n+6D9F01 DATA DESCRIPTOR       08074B50 (134695760)\n+6D9F05 CRC                   767F730D (1988064013)\n+6D9F09 Compressed Size       00000479 (1145)\n+6D9F0D Uncompressed Size     00000479 (1145)\n+\n+6D9F11 LOCAL HEADER #1997    04034B50 (67324752)\n+6D9F15 Extract Zip Spec      14 (20) '2.0'\n+6D9F16 Extract OS            00 (0) 'MS-DOS'\n+6D9F17 General Purpose Flag  0000 (0)\n+6D9F19 Compression Method    0000 (0) 'Stored'\n+6D9F1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D9F1F CRC                   00000000 (0)\n+6D9F23 Compressed Size       00000000 (0)\n+6D9F27 Uncompressed Size     00000000 (0)\n+6D9F2B Filename Length       0023 (35)\n+6D9F2D Extra Length          0009 (9)\n+6D9F2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D9F2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D9F52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D9F54   Length              0005 (5)\n+6D9F56   Flags               01 (1) 'Modification'\n+6D9F57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6D9F5B LOCAL HEADER #1998    04034B50 (67324752)\n+6D9F5F Extract Zip Spec      14 (20) '2.0'\n+6D9F60 Extract OS            00 (0) 'MS-DOS'\n+6D9F61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6D9F63 Compression Method    0000 (0) 'Stored'\n+6D9F65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6D9F69 CRC                   00000000 (0)\n+6D9F6D Compressed Size       00000000 (0)\n+6D9F71 Uncompressed Size     00000000 (0)\n+6D9F75 Filename Length       0038 (56)\n+6D9F77 Extra Length          0009 (9)\n+6D9F79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6D9F79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6D9FB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6D9FB3   Length              0005 (5)\n+6D9FB5   Flags               01 (1) 'Modification'\n+6D9FB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6D9FBA PAYLOAD\n+\n+6DB2A4 DATA DESCRIPTOR       08074B50 (134695760)\n+6DB2A8 CRC                   C93175C4 (3375461828)\n+6DB2AC Compressed Size       000012EA (4842)\n+6DB2B0 Uncompressed Size     000012EA (4842)\n+\n+6DB2B4 LOCAL HEADER #1999    04034B50 (67324752)\n+6DB2B8 Extract Zip Spec      14 (20) '2.0'\n+6DB2B9 Extract OS            00 (0) 'MS-DOS'\n+6DB2BA General Purpose Flag  0000 (0)\n+6DB2BC Compression Method    0000 (0) 'Stored'\n+6DB2BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DB2C2 CRC                   00000000 (0)\n+6DB2C6 Compressed Size       00000000 (0)\n+6DB2CA Uncompressed Size     00000000 (0)\n+6DB2CE Filename Length       0024 (36)\n+6DB2D0 Extra Length          0009 (9)\n+6DB2D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DB2D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DB2F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DB2F8   Length              0005 (5)\n+6DB2FA   Flags               01 (1) 'Modification'\n+6DB2FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6DB2FF LOCAL HEADER #2000    04034B50 (67324752)\n+6DB303 Extract Zip Spec      14 (20) '2.0'\n+6DB304 Extract OS            00 (0) 'MS-DOS'\n+6DB305 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6DB307 Compression Method    0000 (0) 'Stored'\n+6DB309 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DB30D CRC                   00000000 (0)\n+6DB311 Compressed Size       00000000 (0)\n+6DB315 Uncompressed Size     00000000 (0)\n+6DB319 Filename Length       003B (59)\n+6DB31B Extra Length          0009 (9)\n+6DB31D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DB31D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DB358 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DB35A   Length              0005 (5)\n+6DB35C   Flags               01 (1) 'Modification'\n+6DB35D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6DB361 PAYLOAD\n+\n+6DBB37 DATA DESCRIPTOR       08074B50 (134695760)\n+6DBB3B CRC                   1D7B340C (494613516)\n+6DBB3F Compressed Size       000007D6 (2006)\n+6DBB43 Uncompressed Size     000007D6 (2006)\n+\n+6DBB47 LOCAL HEADER #2001    04034B50 (67324752)\n+6DBB4B Extract Zip Spec      14 (20) '2.0'\n+6DBB4C Extract OS            00 (0) 'MS-DOS'\n+6DBB4D General Purpose Flag  0000 (0)\n+6DBB4F Compression Method    0000 (0) 'Stored'\n+6DBB51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DBB55 CRC                   00000000 (0)\n+6DBB59 Compressed Size       00000000 (0)\n+6DBB5D Uncompressed Size     00000000 (0)\n+6DBB61 Filename Length       0030 (48)\n+6DBB63 Extra Length          0009 (9)\n+6DBB65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DBB65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DBB95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DBB97   Length              0005 (5)\n+6DBB99   Flags               01 (1) 'Modification'\n+6DBB9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6DBB9E LOCAL HEADER #2002    04034B50 (67324752)\n+6DBBA2 Extract Zip Spec      14 (20) '2.0'\n+6DBBA3 Extract OS            00 (0) 'MS-DOS'\n+6DBBA4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6DBBA6 Compression Method    0000 (0) 'Stored'\n+6DBBA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DBBAC CRC                   00000000 (0)\n+6DBBB0 Compressed Size       00000000 (0)\n+6DBBB4 Uncompressed Size     00000000 (0)\n+6DBBB8 Filename Length       0040 (64)\n+6DBBBA Extra Length          0009 (9)\n+6DBBBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DBBBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DBBFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DBBFE   Length              0005 (5)\n+6DBC00   Flags               01 (1) 'Modification'\n+6DBC01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6DBC05 PAYLOAD\n+\n+6DC1C8 DATA DESCRIPTOR       08074B50 (134695760)\n+6DC1CC CRC                   5A6ECC92 (1517210770)\n+6DC1D0 Compressed Size       000005C3 (1475)\n+6DC1D4 Uncompressed Size     000005C3 (1475)\n+\n+6DC1D8 LOCAL HEADER #2003    04034B50 (67324752)\n+6DC1DC Extract Zip Spec      14 (20) '2.0'\n+6DC1DD Extract OS            00 (0) 'MS-DOS'\n+6DC1DE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6DC1E0 Compression Method    0000 (0) 'Stored'\n+6DC1E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DC1E6 CRC                   00000000 (0)\n+6DC1EA Compressed Size       00000000 (0)\n+6DC1EE Uncompressed Size     00000000 (0)\n+6DC1F2 Filename Length       003F (63)\n+6DC1F4 Extra Length          0009 (9)\n+6DC1F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DC1F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DC235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DC237   Length              0005 (5)\n+6DC239   Flags               01 (1) 'Modification'\n+6DC23A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6DC23E PAYLOAD\n+\n+6DFF7D DATA DESCRIPTOR       08074B50 (134695760)\n+6DFF81 CRC                   B191ADCB (2979114443)\n+6DFF85 Compressed Size       00003D3F (15679)\n+6DFF89 Uncompressed Size     00003D3F (15679)\n+\n+6DFF8D LOCAL HEADER #2004    04034B50 (67324752)\n+6DFF91 Extract Zip Spec      14 (20) '2.0'\n+6DFF92 Extract OS            00 (0) 'MS-DOS'\n+6DFF93 General Purpose Flag  0000 (0)\n+6DFF95 Compression Method    0000 (0) 'Stored'\n+6DFF97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DFF9B CRC                   00000000 (0)\n+6DFF9F Compressed Size       00000000 (0)\n+6DFFA3 Uncompressed Size     00000000 (0)\n+6DFFA7 Filename Length       0015 (21)\n+6DFFA9 Extra Length          0009 (9)\n+6DFFAB Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DFFAB: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6DFFC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6DFFC2   Length              0005 (5)\n+6DFFC4   Flags               01 (1) 'Modification'\n+6DFFC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6DFFC9 LOCAL HEADER #2005    04034B50 (67324752)\n+6DFFCD Extract Zip Spec      14 (20) '2.0'\n+6DFFCE Extract OS            00 (0) 'MS-DOS'\n+6DFFCF General Purpose Flag  0000 (0)\n+6DFFD1 Compression Method    0000 (0) 'Stored'\n+6DFFD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6DFFD7 CRC                   00000000 (0)\n+6DFFDB Compressed Size       00000000 (0)\n+6DFFDF Uncompressed Size     00000000 (0)\n+6DFFE3 Filename Length       0019 (25)\n+6DFFE5 Extra Length          0009 (9)\n+6DFFE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6DFFE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E0000 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E0002   Length              0005 (5)\n+6E0004   Flags               01 (1) 'Modification'\n+6E0005   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E0009 LOCAL HEADER #2006    04034B50 (67324752)\n+6E000D Extract Zip Spec      14 (20) '2.0'\n+6E000E Extract OS            00 (0) 'MS-DOS'\n+6E000F General Purpose Flag  0000 (0)\n+6E0011 Compression Method    0000 (0) 'Stored'\n+6E0013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E0017 CRC                   00000000 (0)\n+6E001B Compressed Size       00000000 (0)\n+6E001F Uncompressed Size     00000000 (0)\n+6E0023 Filename Length       0022 (34)\n+6E0025 Extra Length          0009 (9)\n+6E0027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E0027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E0049 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E004B   Length              0005 (5)\n+6E004D   Flags               01 (1) 'Modification'\n+6E004E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E0052 LOCAL HEADER #2007    04034B50 (67324752)\n+6E0056 Extract Zip Spec      14 (20) '2.0'\n+6E0057 Extract OS            00 (0) 'MS-DOS'\n+6E0058 General Purpose Flag  0000 (0)\n+6E005A Compression Method    0000 (0) 'Stored'\n+6E005C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E0060 CRC                   00000000 (0)\n+6E0064 Compressed Size       00000000 (0)\n+6E0068 Uncompressed Size     00000000 (0)\n+6E006C Filename Length       0029 (41)\n+6E006E Extra Length          0009 (9)\n+6E0070 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E0070: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E0099 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E009B   Length              0005 (5)\n+6E009D   Flags               01 (1) 'Modification'\n+6E009E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E00A2 LOCAL HEADER #2008    04034B50 (67324752)\n+6E00A6 Extract Zip Spec      14 (20) '2.0'\n+6E00A7 Extract OS            00 (0) 'MS-DOS'\n+6E00A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E00AA Compression Method    0000 (0) 'Stored'\n+6E00AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E00B0 CRC                   00000000 (0)\n+6E00B4 Compressed Size       00000000 (0)\n+6E00B8 Uncompressed Size     00000000 (0)\n+6E00BC Filename Length       003C (60)\n+6E00BE Extra Length          0009 (9)\n+6E00C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E00C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E00FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E00FE   Length              0005 (5)\n+6E0100   Flags               01 (1) 'Modification'\n+6E0101   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6E0105 PAYLOAD\n+\n+6E1FB8 DATA DESCRIPTOR       08074B50 (134695760)\n+6E1FBC CRC                   E5707DAD (3849354669)\n+6E1FC0 Compressed Size       00001EB3 (7859)\n+6E1FC4 Uncompressed Size     00001EB3 (7859)\n+\n+6E1FC8 LOCAL HEADER #2009    04034B50 (67324752)\n+6E1FCC Extract Zip Spec      14 (20) '2.0'\n+6E1FCD Extract OS            00 (0) 'MS-DOS'\n+6E1FCE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E1FD0 Compression Method    0000 (0) 'Stored'\n+6E1FD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E1FD6 CRC                   00000000 (0)\n+6E1FDA Compressed Size       00000000 (0)\n+6E1FDE Uncompressed Size     00000000 (0)\n+6E1FE2 Filename Length       0044 (68)\n+6E1FE4 Extra Length          0009 (9)\n+6E1FE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E1FE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E202A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E202C   Length              0005 (5)\n+6E202E   Flags               01 (1) 'Modification'\n+6E202F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6E2033 PAYLOAD\n+\n+6E3273 DATA DESCRIPTOR       08074B50 (134695760)\n+6E3277 CRC                   6680C3C2 (1719714754)\n+6E327B Compressed Size       00001240 (4672)\n+6E327F Uncompressed Size     00001240 (4672)\n+\n+6E3283 LOCAL HEADER #2010    04034B50 (67324752)\n+6E3287 Extract Zip Spec      14 (20) '2.0'\n+6E3288 Extract OS            00 (0) 'MS-DOS'\n+6E3289 General Purpose Flag  0000 (0)\n+6E328B Compression Method    0000 (0) 'Stored'\n+6E328D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E3291 CRC                   00000000 (0)\n+6E3295 Compressed Size       00000000 (0)\n+6E3299 Uncompressed Size     00000000 (0)\n+6E329D Filename Length       0009 (9)\n+6E329F Extra Length          0009 (9)\n+6E32A1 Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E32A1: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+6E32AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E32AC   Length              0005 (5)\n+6E32AE   Flags               01 (1) 'Modification'\n+6E32AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E32B3 LOCAL HEADER #2011    04034B50 (67324752)\n+6E32B7 Extract Zip Spec      14 (20) '2.0'\n+6E32B8 Extract OS            00 (0) 'MS-DOS'\n+6E32B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E32BB Compression Method    0000 (0) 'Stored'\n+6E32BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E32C1 CRC                   00000000 (0)\n+6E32C5 Compressed Size       00000000 (0)\n+6E32C9 Uncompressed Size     00000000 (0)\n+6E32CD Filename Length       001E (30)\n+6E32CF Extra Length          0009 (9)\n+6E32D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E32D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E32EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E32F1   Length              0005 (5)\n+6E32F3   Flags               01 (1) 'Modification'\n+6E32F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+6E32F8 PAYLOAD\n+\n+6E4546 DATA DESCRIPTOR       08074B50 (134695760)\n+6E454A CRC                   1096B4BF (278312127)\n+6E454E Compressed Size       0000124E (4686)\n+6E4552 Uncompressed Size     0000124E (4686)\n+\n+6E4556 CENTRAL HEADER #1     02014B50 (33639248)\n+6E455A Created Zip Spec      14 (20) '2.0'\n+6E455B Created OS            00 (0) 'MS-DOS'\n+6E455C Extract Zip Spec      14 (20) '2.0'\n+6E455D Extract OS            00 (0) 'MS-DOS'\n+6E455E General Purpose Flag  0000 (0)\n+6E4560 Compression Method    0000 (0) 'Stored'\n+6E4562 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4566 CRC                   00000000 (0)\n+6E456A Compressed Size       00000000 (0)\n+6E456E Uncompressed Size     00000000 (0)\n+6E4572 Filename Length       0009 (9)\n+6E4574 Extra Length          0009 (9)\n+6E4576 Comment Length        0000 (0)\n+6E4578 Disk Start            0000 (0)\n+6E457A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E457C Ext File Attributes   00000000 (0)\n+6E4580 Local Header Offset   00000000 (0)\n+6E4584 Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4584: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+6E458D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E458F   Length              0005 (5)\n+6E4591   Flags               01 (1) 'Modification'\n+6E4592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4596 CENTRAL HEADER #2     02014B50 (33639248)\n+6E459A Created Zip Spec      14 (20) '2.0'\n+6E459B Created OS            00 (0) 'MS-DOS'\n+6E459C Extract Zip Spec      14 (20) '2.0'\n+6E459D Extract OS            00 (0) 'MS-DOS'\n+6E459E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E45A0 Compression Method    0000 (0) 'Stored'\n+6E45A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E45A6 CRC                   638B5CA1 (1670077601)\n+6E45AA Compressed Size       0000FB92 (64402)\n+6E45AE Uncompressed Size     0000FB92 (64402)\n+6E45B2 Filename Length       0015 (21)\n+6E45B4 Extra Length          0009 (9)\n+6E45B6 Comment Length        0000 (0)\n+6E45B8 Disk Start            0000 (0)\n+6E45BA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E45BC Ext File Attributes   00000000 (0)\n+6E45C0 Local Header Offset   00000030 (48)\n+6E45C4 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E45C4: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E45D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E45DB   Length              0005 (5)\n+6E45DD   Flags               01 (1) 'Modification'\n+6E45DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E45E2 CENTRAL HEADER #3     02014B50 (33639248)\n+6E45E6 Created Zip Spec      14 (20) '2.0'\n+6E45E7 Created OS            00 (0) 'MS-DOS'\n+6E45E8 Extract Zip Spec      14 (20) '2.0'\n+6E45E9 Extract OS            00 (0) 'MS-DOS'\n+6E45EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E45EC Compression Method    0000 (0) 'Stored'\n+6E45EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E45F2 CRC                   86E2B4B4 (2263004340)\n+6E45F6 Compressed Size       00002C5E (11358)\n+6E45FA Uncompressed Size     00002C5E (11358)\n+6E45FE Filename Length       0010 (16)\n+6E4600 Extra Length          0009 (9)\n+6E4602 Comment Length        0000 (0)\n+6E4604 Disk Start            0000 (0)\n+6E4606 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4608 Ext File Attributes   00000000 (0)\n+6E460C Local Header Offset   0000FC0E (64526)\n+6E4610 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4610: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4620 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4622   Length              0005 (5)\n+6E4624   Flags               01 (1) 'Modification'\n+6E4625   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4629 CENTRAL HEADER #4     02014B50 (33639248)\n+6E462D Created Zip Spec      14 (20) '2.0'\n+6E462E Created OS            00 (0) 'MS-DOS'\n+6E462F Extract Zip Spec      14 (20) '2.0'\n+6E4630 Extract OS            00 (0) 'MS-DOS'\n+6E4631 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4633 Compression Method    0000 (0) 'Stored'\n+6E4635 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4639 CRC                   EE027FB2 (3993141170)\n+6E463D Compressed Size       00000019 (25)\n+6E4641 Uncompressed Size     00000019 (25)\n+6E4645 Filename Length       0014 (20)\n+6E4647 Extra Length          0009 (9)\n+6E4649 Comment Length        0000 (0)\n+6E464B Disk Start            0000 (0)\n+6E464D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E464F Ext File Attributes   00000000 (0)\n+6E4653 Local Header Offset   000128B3 (75955)\n+6E4657 Filename              'XXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4657: Filename 'XXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E466B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E466D   Length              0005 (5)\n+6E466F   Flags               01 (1) 'Modification'\n+6E4670   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4674 CENTRAL HEADER #5     02014B50 (33639248)\n+6E4678 Created Zip Spec      14 (20) '2.0'\n+6E4679 Created OS            00 (0) 'MS-DOS'\n+6E467A Extract Zip Spec      14 (20) '2.0'\n+6E467B Extract OS            00 (0) 'MS-DOS'\n+6E467C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E467E Compression Method    0000 (0) 'Stored'\n+6E4680 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4684 CRC                   8FD5DBBD (2413157309)\n+6E4688 Compressed Size       000000A6 (166)\n+6E468C Uncompressed Size     000000A6 (166)\n+6E4690 Filename Length       000F (15)\n+6E4692 Extra Length          0009 (9)\n+6E4694 Comment Length        0000 (0)\n+6E4696 Disk Start            0000 (0)\n+6E4698 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E469A Ext File Attributes   00000000 (0)\n+6E469E Local Header Offset   00012917 (76055)\n+6E46A2 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E46A2: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E46B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E46B3   Length              0005 (5)\n+6E46B5   Flags               01 (1) 'Modification'\n+6E46B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E46BA CENTRAL HEADER #6     02014B50 (33639248)\n+6E46BE Created Zip Spec      14 (20) '2.0'\n+6E46BF Created OS            00 (0) 'MS-DOS'\n+6E46C0 Extract Zip Spec      14 (20) '2.0'\n+6E46C1 Extract OS            00 (0) 'MS-DOS'\n+6E46C2 General Purpose Flag  0000 (0)\n+6E46C4 Compression Method    0000 (0) 'Stored'\n+6E46C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E46CA CRC                   00000000 (0)\n+6E46CE Compressed Size       00000000 (0)\n+6E46D2 Uncompressed Size     00000000 (0)\n+6E46D6 Filename Length       0012 (18)\n+6E46D8 Extra Length          0009 (9)\n+6E46DA Comment Length        0000 (0)\n+6E46DC Disk Start            0000 (0)\n+6E46DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E46E0 Ext File Attributes   00000000 (0)\n+6E46E4 Local Header Offset   00012A03 (76291)\n+6E46E8 Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E46E8: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E46FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E46FC   Length              0005 (5)\n+6E46FE   Flags               01 (1) 'Modification'\n+6E46FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4703 CENTRAL HEADER #7     02014B50 (33639248)\n+6E4707 Created Zip Spec      14 (20) '2.0'\n+6E4708 Created OS            00 (0) 'MS-DOS'\n+6E4709 Extract Zip Spec      14 (20) '2.0'\n+6E470A Extract OS            00 (0) 'MS-DOS'\n+6E470B General Purpose Flag  0000 (0)\n+6E470D Compression Method    0000 (0) 'Stored'\n+6E470F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4713 CRC                   00000000 (0)\n+6E4717 Compressed Size       00000000 (0)\n+6E471B Uncompressed Size     00000000 (0)\n+6E471F Filename Length       0016 (22)\n+6E4721 Extra Length          0009 (9)\n+6E4723 Comment Length        0000 (0)\n+6E4725 Disk Start            0000 (0)\n+6E4727 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4729 Ext File Attributes   00000000 (0)\n+6E472D Local Header Offset   00012A3C (76348)\n+6E4731 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4731: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4747 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4749   Length              0005 (5)\n+6E474B   Flags               01 (1) 'Modification'\n+6E474C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4750 CENTRAL HEADER #8     02014B50 (33639248)\n+6E4754 Created Zip Spec      14 (20) '2.0'\n+6E4755 Created OS            00 (0) 'MS-DOS'\n+6E4756 Extract Zip Spec      14 (20) '2.0'\n+6E4757 Extract OS            00 (0) 'MS-DOS'\n+6E4758 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E475A Compression Method    0000 (0) 'Stored'\n+6E475C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4760 CRC                   F79D8E60 (4154297952)\n+6E4764 Compressed Size       00000BEB (3051)\n+6E4768 Uncompressed Size     00000BEB (3051)\n+6E476C Filename Length       001D (29)\n+6E476E Extra Length          0009 (9)\n+6E4770 Comment Length        0000 (0)\n+6E4772 Disk Start            0000 (0)\n+6E4774 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4776 Ext File Attributes   00000000 (0)\n+6E477A Local Header Offset   00012A79 (76409)\n+6E477E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E477E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E479B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E479D   Length              0005 (5)\n+6E479F   Flags               01 (1) 'Modification'\n+6E47A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E47A4 CENTRAL HEADER #9     02014B50 (33639248)\n+6E47A8 Created Zip Spec      14 (20) '2.0'\n+6E47A9 Created OS            00 (0) 'MS-DOS'\n+6E47AA Extract Zip Spec      14 (20) '2.0'\n+6E47AB Extract OS            00 (0) 'MS-DOS'\n+6E47AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E47AE Compression Method    0000 (0) 'Stored'\n+6E47B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E47B4 CRC                   3ED932F9 (1054421753)\n+6E47B8 Compressed Size       00000354 (852)\n+6E47BC Uncompressed Size     00000354 (852)\n+6E47C0 Filename Length       0020 (32)\n+6E47C2 Extra Length          0009 (9)\n+6E47C4 Comment Length        0000 (0)\n+6E47C6 Disk Start            0000 (0)\n+6E47C8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E47CA Ext File Attributes   00000000 (0)\n+6E47CE Local Header Offset   000136B8 (79544)\n+6E47D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E47D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E47F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E47F4   Length              0005 (5)\n+6E47F6   Flags               01 (1) 'Modification'\n+6E47F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E47FB CENTRAL HEADER #10    02014B50 (33639248)\n+6E47FF Created Zip Spec      14 (20) '2.0'\n+6E4800 Created OS            00 (0) 'MS-DOS'\n+6E4801 Extract Zip Spec      14 (20) '2.0'\n+6E4802 Extract OS            00 (0) 'MS-DOS'\n+6E4803 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4805 Compression Method    0000 (0) 'Stored'\n+6E4807 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E480B CRC                   B518B61F (3038295583)\n+6E480F Compressed Size       000004D4 (1236)\n+6E4813 Uncompressed Size     000004D4 (1236)\n+6E4817 Filename Length       001F (31)\n+6E4819 Extra Length          0009 (9)\n+6E481B Comment Length        0000 (0)\n+6E481D Disk Start            0000 (0)\n+6E481F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4821 Ext File Attributes   00000000 (0)\n+6E4825 Local Header Offset   00013A63 (80483)\n+6E4829 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4829: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4848 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E484A   Length              0005 (5)\n+6E484C   Flags               01 (1) 'Modification'\n+6E484D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4851 CENTRAL HEADER #11    02014B50 (33639248)\n+6E4855 Created Zip Spec      14 (20) '2.0'\n+6E4856 Created OS            00 (0) 'MS-DOS'\n+6E4857 Extract Zip Spec      14 (20) '2.0'\n+6E4858 Extract OS            00 (0) 'MS-DOS'\n+6E4859 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E485B Compression Method    0000 (0) 'Stored'\n+6E485D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4861 CRC                   CD3B8ABC (3443231420)\n+6E4865 Compressed Size       000007D2 (2002)\n+6E4869 Uncompressed Size     000007D2 (2002)\n+6E486D Filename Length       001F (31)\n+6E486F Extra Length          0009 (9)\n+6E4871 Comment Length        0000 (0)\n+6E4873 Disk Start            0000 (0)\n+6E4875 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4877 Ext File Attributes   00000000 (0)\n+6E487B Local Header Offset   00013F8D (81805)\n+6E487F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E487F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E489E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E48A0   Length              0005 (5)\n+6E48A2   Flags               01 (1) 'Modification'\n+6E48A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E48A7 CENTRAL HEADER #12    02014B50 (33639248)\n+6E48AB Created Zip Spec      14 (20) '2.0'\n+6E48AC Created OS            00 (0) 'MS-DOS'\n+6E48AD Extract Zip Spec      14 (20) '2.0'\n+6E48AE Extract OS            00 (0) 'MS-DOS'\n+6E48AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E48B1 Compression Method    0000 (0) 'Stored'\n+6E48B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E48B7 CRC                   4CE4C327 (1290060583)\n+6E48BB Compressed Size       00001505 (5381)\n+6E48BF Uncompressed Size     00001505 (5381)\n+6E48C3 Filename Length       001E (30)\n+6E48C5 Extra Length          0009 (9)\n+6E48C7 Comment Length        0000 (0)\n+6E48C9 Disk Start            0000 (0)\n+6E48CB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E48CD Ext File Attributes   00000000 (0)\n+6E48D1 Local Header Offset   000147B5 (83893)\n+6E48D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E48D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E48F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E48F5   Length              0005 (5)\n+6E48F7   Flags               01 (1) 'Modification'\n+6E48F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E48FC CENTRAL HEADER #13    02014B50 (33639248)\n+6E4900 Created Zip Spec      14 (20) '2.0'\n+6E4901 Created OS            00 (0) 'MS-DOS'\n+6E4902 Extract Zip Spec      14 (20) '2.0'\n+6E4903 Extract OS            00 (0) 'MS-DOS'\n+6E4904 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4906 Compression Method    0000 (0) 'Stored'\n+6E4908 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E490C CRC                   FA33FECC (4197711564)\n+6E4910 Compressed Size       0000069F (1695)\n+6E4914 Uncompressed Size     0000069F (1695)\n+6E4918 Filename Length       001D (29)\n+6E491A Extra Length          0009 (9)\n+6E491C Comment Length        0000 (0)\n+6E491E Disk Start            0000 (0)\n+6E4920 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4922 Ext File Attributes   00000000 (0)\n+6E4926 Local Header Offset   00015D0F (89359)\n+6E492A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E492A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4947 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4949   Length              0005 (5)\n+6E494B   Flags               01 (1) 'Modification'\n+6E494C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4950 CENTRAL HEADER #14    02014B50 (33639248)\n+6E4954 Created Zip Spec      14 (20) '2.0'\n+6E4955 Created OS            00 (0) 'MS-DOS'\n+6E4956 Extract Zip Spec      14 (20) '2.0'\n+6E4957 Extract OS            00 (0) 'MS-DOS'\n+6E4958 General Purpose Flag  0000 (0)\n+6E495A Compression Method    0000 (0) 'Stored'\n+6E495C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4960 CRC                   00000000 (0)\n+6E4964 Compressed Size       00000000 (0)\n+6E4968 Uncompressed Size     00000000 (0)\n+6E496C Filename Length       0010 (16)\n+6E496E Extra Length          0009 (9)\n+6E4970 Comment Length        0000 (0)\n+6E4972 Disk Start            0000 (0)\n+6E4974 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4976 Ext File Attributes   00000000 (0)\n+6E497A Local Header Offset   00016402 (91138)\n+6E497E Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E497E: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E498E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4990   Length              0005 (5)\n+6E4992   Flags               01 (1) 'Modification'\n+6E4993   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4997 CENTRAL HEADER #15    02014B50 (33639248)\n+6E499B Created Zip Spec      14 (20) '2.0'\n+6E499C Created OS            00 (0) 'MS-DOS'\n+6E499D Extract Zip Spec      14 (20) '2.0'\n+6E499E Extract OS            00 (0) 'MS-DOS'\n+6E499F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E49A1 Compression Method    0000 (0) 'Stored'\n+6E49A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E49A7 CRC                   91F75F87 (2448908167)\n+6E49AB Compressed Size       00013DD1 (81361)\n+6E49AF Uncompressed Size     00013DD1 (81361)\n+6E49B3 Filename Length       0019 (25)\n+6E49B5 Extra Length          0009 (9)\n+6E49B7 Comment Length        0000 (0)\n+6E49B9 Disk Start            0000 (0)\n+6E49BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E49BD Ext File Attributes   00000000 (0)\n+6E49C1 Local Header Offset   00016439 (91193)\n+6E49C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E49C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E49DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E49E0   Length              0005 (5)\n+6E49E2   Flags               01 (1) 'Modification'\n+6E49E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E49E7 CENTRAL HEADER #16    02014B50 (33639248)\n+6E49EB Created Zip Spec      14 (20) '2.0'\n+6E49EC Created OS            00 (0) 'MS-DOS'\n+6E49ED Extract Zip Spec      14 (20) '2.0'\n+6E49EE Extract OS            00 (0) 'MS-DOS'\n+6E49EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E49F1 Compression Method    0000 (0) 'Stored'\n+6E49F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E49F7 CRC                   DDC8B9B8 (3720919480)\n+6E49FB Compressed Size       00014461 (83041)\n+6E49FF Uncompressed Size     00014461 (83041)\n+6E4A03 Filename Length       0012 (18)\n+6E4A05 Extra Length          0009 (9)\n+6E4A07 Comment Length        0000 (0)\n+6E4A09 Disk Start            0000 (0)\n+6E4A0B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4A0D Ext File Attributes   00000000 (0)\n+6E4A11 Local Header Offset   0002A25A (172634)\n+6E4A15 Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4A15: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4A27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4A29   Length              0005 (5)\n+6E4A2B   Flags               01 (1) 'Modification'\n+6E4A2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4A30 CENTRAL HEADER #17    02014B50 (33639248)\n+6E4A34 Created Zip Spec      14 (20) '2.0'\n+6E4A35 Created OS            00 (0) 'MS-DOS'\n+6E4A36 Extract Zip Spec      14 (20) '2.0'\n+6E4A37 Extract OS            00 (0) 'MS-DOS'\n+6E4A38 General Purpose Flag  0000 (0)\n+6E4A3A Compression Method    0000 (0) 'Stored'\n+6E4A3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4A40 CRC                   00000000 (0)\n+6E4A44 Compressed Size       00000000 (0)\n+6E4A48 Uncompressed Size     00000000 (0)\n+6E4A4C Filename Length       000F (15)\n+6E4A4E Extra Length          0009 (9)\n+6E4A50 Comment Length        0000 (0)\n+6E4A52 Disk Start            0000 (0)\n+6E4A54 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4A56 Ext File Attributes   00000000 (0)\n+6E4A5A Local Header Offset   0003E704 (255748)\n+6E4A5E Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4A5E: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4A6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4A6F   Length              0005 (5)\n+6E4A71   Flags               01 (1) 'Modification'\n+6E4A72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4A76 CENTRAL HEADER #18    02014B50 (33639248)\n+6E4A7A Created Zip Spec      14 (20) '2.0'\n+6E4A7B Created OS            00 (0) 'MS-DOS'\n+6E4A7C Extract Zip Spec      14 (20) '2.0'\n+6E4A7D Extract OS            00 (0) 'MS-DOS'\n+6E4A7E General Purpose Flag  0000 (0)\n+6E4A80 Compression Method    0000 (0) 'Stored'\n+6E4A82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4A86 CRC                   00000000 (0)\n+6E4A8A Compressed Size       00000000 (0)\n+6E4A8E Uncompressed Size     00000000 (0)\n+6E4A92 Filename Length       0018 (24)\n+6E4A94 Extra Length          0009 (9)\n+6E4A96 Comment Length        0000 (0)\n+6E4A98 Disk Start            0000 (0)\n+6E4A9A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4A9C Ext File Attributes   00000000 (0)\n+6E4AA0 Local Header Offset   0003E73A (255802)\n+6E4AA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4AA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4ABC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4ABE   Length              0005 (5)\n+6E4AC0   Flags               01 (1) 'Modification'\n+6E4AC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4AC5 CENTRAL HEADER #19    02014B50 (33639248)\n+6E4AC9 Created Zip Spec      14 (20) '2.0'\n+6E4ACA Created OS            00 (0) 'MS-DOS'\n+6E4ACB Extract Zip Spec      14 (20) '2.0'\n+6E4ACC Extract OS            00 (0) 'MS-DOS'\n+6E4ACD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4ACF Compression Method    0000 (0) 'Stored'\n+6E4AD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4AD5 CRC                   19FFB665 (436188773)\n+6E4AD9 Compressed Size       00000144 (324)\n+6E4ADD Uncompressed Size     00000144 (324)\n+6E4AE1 Filename Length       003B (59)\n+6E4AE3 Extra Length          0009 (9)\n+6E4AE5 Comment Length        0000 (0)\n+6E4AE7 Disk Start            0000 (0)\n+6E4AE9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4AEB Ext File Attributes   00000000 (0)\n+6E4AEF Local Header Offset   0003E779 (255865)\n+6E4AF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4AF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4B2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4B30   Length              0005 (5)\n+6E4B32   Flags               01 (1) 'Modification'\n+6E4B33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4B37 CENTRAL HEADER #20    02014B50 (33639248)\n+6E4B3B Created Zip Spec      14 (20) '2.0'\n+6E4B3C Created OS            00 (0) 'MS-DOS'\n+6E4B3D Extract Zip Spec      14 (20) '2.0'\n+6E4B3E Extract OS            00 (0) 'MS-DOS'\n+6E4B3F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4B41 Compression Method    0000 (0) 'Stored'\n+6E4B43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4B47 CRC                   7B0242B7 (2063745719)\n+6E4B4B Compressed Size       000000C3 (195)\n+6E4B4F Uncompressed Size     000000C3 (195)\n+6E4B53 Filename Length       0041 (65)\n+6E4B55 Extra Length          0009 (9)\n+6E4B57 Comment Length        0000 (0)\n+6E4B59 Disk Start            0000 (0)\n+6E4B5B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4B5D Ext File Attributes   00000000 (0)\n+6E4B61 Local Header Offset   0003E92F (256303)\n+6E4B65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4B65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4BA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4BA8   Length              0005 (5)\n+6E4BAA   Flags               01 (1) 'Modification'\n+6E4BAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4BAF CENTRAL HEADER #21    02014B50 (33639248)\n+6E4BB3 Created Zip Spec      14 (20) '2.0'\n+6E4BB4 Created OS            00 (0) 'MS-DOS'\n+6E4BB5 Extract Zip Spec      14 (20) '2.0'\n+6E4BB6 Extract OS            00 (0) 'MS-DOS'\n+6E4BB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4BB9 Compression Method    0000 (0) 'Stored'\n+6E4BBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4BBF CRC                   2D373412 (758592530)\n+6E4BC3 Compressed Size       00000258 (600)\n+6E4BC7 Uncompressed Size     00000258 (600)\n+6E4BCB Filename Length       005F (95)\n+6E4BCD Extra Length          0009 (9)\n+6E4BCF Comment Length        0000 (0)\n+6E4BD1 Disk Start            0000 (0)\n+6E4BD3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4BD5 Ext File Attributes   00000000 (0)\n+6E4BD9 Local Header Offset   0003EA6A (256618)\n+6E4BDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4BDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4C3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4C3E   Length              0005 (5)\n+6E4C40   Flags               01 (1) 'Modification'\n+6E4C41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4C45 CENTRAL HEADER #22    02014B50 (33639248)\n+6E4C49 Created Zip Spec      14 (20) '2.0'\n+6E4C4A Created OS            00 (0) 'MS-DOS'\n+6E4C4B Extract Zip Spec      14 (20) '2.0'\n+6E4C4C Extract OS            00 (0) 'MS-DOS'\n+6E4C4D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4C4F Compression Method    0000 (0) 'Stored'\n+6E4C51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4C55 CRC                   FD9DED40 (4254985536)\n+6E4C59 Compressed Size       000000A5 (165)\n+6E4C5D Uncompressed Size     000000A5 (165)\n+6E4C61 Filename Length       0044 (68)\n+6E4C63 Extra Length          0009 (9)\n+6E4C65 Comment Length        0000 (0)\n+6E4C67 Disk Start            0000 (0)\n+6E4C69 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4C6B Ext File Attributes   00000000 (0)\n+6E4C6F Local Header Offset   0003ED58 (257368)\n+6E4C73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4C73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4CB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4CB9   Length              0005 (5)\n+6E4CBB   Flags               01 (1) 'Modification'\n+6E4CBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4CC0 CENTRAL HEADER #23    02014B50 (33639248)\n+6E4CC4 Created Zip Spec      14 (20) '2.0'\n+6E4CC5 Created OS            00 (0) 'MS-DOS'\n+6E4CC6 Extract Zip Spec      14 (20) '2.0'\n+6E4CC7 Extract OS            00 (0) 'MS-DOS'\n+6E4CC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4CCA Compression Method    0000 (0) 'Stored'\n+6E4CCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4CD0 CRC                   5208AFC5 (1376300997)\n+6E4CD4 Compressed Size       0000031D (797)\n+6E4CD8 Uncompressed Size     0000031D (797)\n+6E4CDC Filename Length       0041 (65)\n+6E4CDE Extra Length          0009 (9)\n+6E4CE0 Comment Length        0000 (0)\n+6E4CE2 Disk Start            0000 (0)\n+6E4CE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4CE6 Ext File Attributes   00000000 (0)\n+6E4CEA Local Header Offset   0003EE78 (257656)\n+6E4CEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4CEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4D2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4D31   Length              0005 (5)\n+6E4D33   Flags               01 (1) 'Modification'\n+6E4D34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4D38 CENTRAL HEADER #24    02014B50 (33639248)\n+6E4D3C Created Zip Spec      14 (20) '2.0'\n+6E4D3D Created OS            00 (0) 'MS-DOS'\n+6E4D3E Extract Zip Spec      14 (20) '2.0'\n+6E4D3F Extract OS            00 (0) 'MS-DOS'\n+6E4D40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4D42 Compression Method    0000 (0) 'Stored'\n+6E4D44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4D48 CRC                   7A6F7ED2 (2054127314)\n+6E4D4C Compressed Size       0000040B (1035)\n+6E4D50 Uncompressed Size     0000040B (1035)\n+6E4D54 Filename Length       0054 (84)\n+6E4D56 Extra Length          0009 (9)\n+6E4D58 Comment Length        0000 (0)\n+6E4D5A Disk Start            0000 (0)\n+6E4D5C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4D5E Ext File Attributes   00000000 (0)\n+6E4D62 Local Header Offset   0003F20D (258573)\n+6E4D66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4D66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4DBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4DBC   Length              0005 (5)\n+6E4DBE   Flags               01 (1) 'Modification'\n+6E4DBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4DC3 CENTRAL HEADER #25    02014B50 (33639248)\n+6E4DC7 Created Zip Spec      14 (20) '2.0'\n+6E4DC8 Created OS            00 (0) 'MS-DOS'\n+6E4DC9 Extract Zip Spec      14 (20) '2.0'\n+6E4DCA Extract OS            00 (0) 'MS-DOS'\n+6E4DCB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4DCD Compression Method    0000 (0) 'Stored'\n+6E4DCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4DD3 CRC                   4749E288 (1196024456)\n+6E4DD7 Compressed Size       000000D6 (214)\n+6E4DDB Uncompressed Size     000000D6 (214)\n+6E4DDF Filename Length       004A (74)\n+6E4DE1 Extra Length          0009 (9)\n+6E4DE3 Comment Length        0000 (0)\n+6E4DE5 Disk Start            0000 (0)\n+6E4DE7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4DE9 Ext File Attributes   00000000 (0)\n+6E4DED Local Header Offset   0003F6A3 (259747)\n+6E4DF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4DF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4E3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4E3D   Length              0005 (5)\n+6E4E3F   Flags               01 (1) 'Modification'\n+6E4E40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4E44 CENTRAL HEADER #26    02014B50 (33639248)\n+6E4E48 Created Zip Spec      14 (20) '2.0'\n+6E4E49 Created OS            00 (0) 'MS-DOS'\n+6E4E4A Extract Zip Spec      14 (20) '2.0'\n+6E4E4B Extract OS            00 (0) 'MS-DOS'\n+6E4E4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4E4E Compression Method    0000 (0) 'Stored'\n+6E4E50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4E54 CRC                   9BF7AC90 (2616700048)\n+6E4E58 Compressed Size       00000045 (69)\n+6E4E5C Uncompressed Size     00000045 (69)\n+6E4E60 Filename Length       0042 (66)\n+6E4E62 Extra Length          0009 (9)\n+6E4E64 Comment Length        0000 (0)\n+6E4E66 Disk Start            0000 (0)\n+6E4E68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4E6A Ext File Attributes   00000000 (0)\n+6E4E6E Local Header Offset   0003F7FA (260090)\n+6E4E72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4E72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4EB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4EB6   Length              0005 (5)\n+6E4EB8   Flags               01 (1) 'Modification'\n+6E4EB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4EBD CENTRAL HEADER #27    02014B50 (33639248)\n+6E4EC1 Created Zip Spec      14 (20) '2.0'\n+6E4EC2 Created OS            00 (0) 'MS-DOS'\n+6E4EC3 Extract Zip Spec      14 (20) '2.0'\n+6E4EC4 Extract OS            00 (0) 'MS-DOS'\n+6E4EC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4EC7 Compression Method    0000 (0) 'Stored'\n+6E4EC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4ECD CRC                   51878B1A (1367837466)\n+6E4ED1 Compressed Size       00000133 (307)\n+6E4ED5 Uncompressed Size     00000133 (307)\n+6E4ED9 Filename Length       0044 (68)\n+6E4EDB Extra Length          0009 (9)\n+6E4EDD Comment Length        0000 (0)\n+6E4EDF Disk Start            0000 (0)\n+6E4EE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4EE3 Ext File Attributes   00000000 (0)\n+6E4EE7 Local Header Offset   0003F8B8 (260280)\n+6E4EEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4EEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4F2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4F31   Length              0005 (5)\n+6E4F33   Flags               01 (1) 'Modification'\n+6E4F34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4F38 CENTRAL HEADER #28    02014B50 (33639248)\n+6E4F3C Created Zip Spec      14 (20) '2.0'\n+6E4F3D Created OS            00 (0) 'MS-DOS'\n+6E4F3E Extract Zip Spec      14 (20) '2.0'\n+6E4F3F Extract OS            00 (0) 'MS-DOS'\n+6E4F40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4F42 Compression Method    0000 (0) 'Stored'\n+6E4F44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4F48 CRC                   BDA8469E (3181921950)\n+6E4F4C Compressed Size       0000040C (1036)\n+6E4F50 Uncompressed Size     0000040C (1036)\n+6E4F54 Filename Length       0047 (71)\n+6E4F56 Extra Length          0009 (9)\n+6E4F58 Comment Length        0000 (0)\n+6E4F5A Disk Start            0000 (0)\n+6E4F5C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4F5E Ext File Attributes   00000000 (0)\n+6E4F62 Local Header Offset   0003FA66 (260710)\n+6E4F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E4FAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E4FAF   Length              0005 (5)\n+6E4FB1   Flags               01 (1) 'Modification'\n+6E4FB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E4FB6 CENTRAL HEADER #29    02014B50 (33639248)\n+6E4FBA Created Zip Spec      14 (20) '2.0'\n+6E4FBB Created OS            00 (0) 'MS-DOS'\n+6E4FBC Extract Zip Spec      14 (20) '2.0'\n+6E4FBD Extract OS            00 (0) 'MS-DOS'\n+6E4FBE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E4FC0 Compression Method    0000 (0) 'Stored'\n+6E4FC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E4FC6 CRC                   87B990A8 (2277085352)\n+6E4FCA Compressed Size       000000BA (186)\n+6E4FCE Uncompressed Size     000000BA (186)\n+6E4FD2 Filename Length       0063 (99)\n+6E4FD4 Extra Length          0009 (9)\n+6E4FD6 Comment Length        0000 (0)\n+6E4FD8 Disk Start            0000 (0)\n+6E4FDA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E4FDC Ext File Attributes   00000000 (0)\n+6E4FE0 Local Header Offset   0003FEF0 (261872)\n+6E4FE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E4FE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5047 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5049   Length              0005 (5)\n+6E504B   Flags               01 (1) 'Modification'\n+6E504C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5050 CENTRAL HEADER #30    02014B50 (33639248)\n+6E5054 Created Zip Spec      14 (20) '2.0'\n+6E5055 Created OS            00 (0) 'MS-DOS'\n+6E5056 Extract Zip Spec      14 (20) '2.0'\n+6E5057 Extract OS            00 (0) 'MS-DOS'\n+6E5058 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E505A Compression Method    0000 (0) 'Stored'\n+6E505C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5060 CRC                   38FE5551 (956192081)\n+6E5064 Compressed Size       000001E1 (481)\n+6E5068 Uncompressed Size     000001E1 (481)\n+6E506C Filename Length       0044 (68)\n+6E506E Extra Length          0009 (9)\n+6E5070 Comment Length        0000 (0)\n+6E5072 Disk Start            0000 (0)\n+6E5074 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5076 Ext File Attributes   00000000 (0)\n+6E507A Local Header Offset   00040044 (262212)\n+6E507E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E507E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E50C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E50C4   Length              0005 (5)\n+6E50C6   Flags               01 (1) 'Modification'\n+6E50C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E50CB CENTRAL HEADER #31    02014B50 (33639248)\n+6E50CF Created Zip Spec      14 (20) '2.0'\n+6E50D0 Created OS            00 (0) 'MS-DOS'\n+6E50D1 Extract Zip Spec      14 (20) '2.0'\n+6E50D2 Extract OS            00 (0) 'MS-DOS'\n+6E50D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E50D5 Compression Method    0000 (0) 'Stored'\n+6E50D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E50DB CRC                   FD317E52 (4247879250)\n+6E50DF Compressed Size       0000003D (61)\n+6E50E3 Uncompressed Size     0000003D (61)\n+6E50E7 Filename Length       003F (63)\n+6E50E9 Extra Length          0009 (9)\n+6E50EB Comment Length        0000 (0)\n+6E50ED Disk Start            0000 (0)\n+6E50EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E50F1 Ext File Attributes   00000000 (0)\n+6E50F5 Local Header Offset   000402A0 (262816)\n+6E50F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E50F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5138 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E513A   Length              0005 (5)\n+6E513C   Flags               01 (1) 'Modification'\n+6E513D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5141 CENTRAL HEADER #32    02014B50 (33639248)\n+6E5145 Created Zip Spec      14 (20) '2.0'\n+6E5146 Created OS            00 (0) 'MS-DOS'\n+6E5147 Extract Zip Spec      14 (20) '2.0'\n+6E5148 Extract OS            00 (0) 'MS-DOS'\n+6E5149 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E514B Compression Method    0000 (0) 'Stored'\n+6E514D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5151 CRC                   C4F26B25 (3304221477)\n+6E5155 Compressed Size       0000012A (298)\n+6E5159 Uncompressed Size     0000012A (298)\n+6E515D Filename Length       0045 (69)\n+6E515F Extra Length          0009 (9)\n+6E5161 Comment Length        0000 (0)\n+6E5163 Disk Start            0000 (0)\n+6E5165 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5167 Ext File Attributes   00000000 (0)\n+6E516B Local Header Offset   00040353 (262995)\n+6E516F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E516F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E51B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E51B6   Length              0005 (5)\n+6E51B8   Flags               01 (1) 'Modification'\n+6E51B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E51BD CENTRAL HEADER #33    02014B50 (33639248)\n+6E51C1 Created Zip Spec      14 (20) '2.0'\n+6E51C2 Created OS            00 (0) 'MS-DOS'\n+6E51C3 Extract Zip Spec      14 (20) '2.0'\n+6E51C4 Extract OS            00 (0) 'MS-DOS'\n+6E51C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E51C7 Compression Method    0000 (0) 'Stored'\n+6E51C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E51CD CRC                   BF790872 (3212380274)\n+6E51D1 Compressed Size       0000004C (76)\n+6E51D5 Uncompressed Size     0000004C (76)\n+6E51D9 Filename Length       0055 (85)\n+6E51DB Extra Length          0009 (9)\n+6E51DD Comment Length        0000 (0)\n+6E51DF Disk Start            0000 (0)\n+6E51E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E51E3 Ext File Attributes   00000000 (0)\n+6E51E7 Local Header Offset   000404F9 (263417)\n+6E51EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E51EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5240 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5242   Length              0005 (5)\n+6E5244   Flags               01 (1) 'Modification'\n+6E5245   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5249 CENTRAL HEADER #34    02014B50 (33639248)\n+6E524D Created Zip Spec      14 (20) '2.0'\n+6E524E Created OS            00 (0) 'MS-DOS'\n+6E524F Extract Zip Spec      14 (20) '2.0'\n+6E5250 Extract OS            00 (0) 'MS-DOS'\n+6E5251 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5253 Compression Method    0000 (0) 'Stored'\n+6E5255 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5259 CRC                   A63E32BF (2789094079)\n+6E525D Compressed Size       0000005B (91)\n+6E5261 Uncompressed Size     0000005B (91)\n+6E5265 Filename Length       0059 (89)\n+6E5267 Extra Length          0009 (9)\n+6E5269 Comment Length        0000 (0)\n+6E526B Disk Start            0000 (0)\n+6E526D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E526F Ext File Attributes   00000000 (0)\n+6E5273 Local Header Offset   000405D1 (263633)\n+6E5277 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5277: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E52D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E52D2   Length              0005 (5)\n+6E52D4   Flags               01 (1) 'Modification'\n+6E52D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E52D9 CENTRAL HEADER #35    02014B50 (33639248)\n+6E52DD Created Zip Spec      14 (20) '2.0'\n+6E52DE Created OS            00 (0) 'MS-DOS'\n+6E52DF Extract Zip Spec      14 (20) '2.0'\n+6E52E0 Extract OS            00 (0) 'MS-DOS'\n+6E52E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E52E3 Compression Method    0000 (0) 'Stored'\n+6E52E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E52E9 CRC                   1CB10FC5 (481365957)\n+6E52ED Compressed Size       000000AB (171)\n+6E52F1 Uncompressed Size     000000AB (171)\n+6E52F5 Filename Length       003C (60)\n+6E52F7 Extra Length          0009 (9)\n+6E52F9 Comment Length        0000 (0)\n+6E52FB Disk Start            0000 (0)\n+6E52FD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E52FF Ext File Attributes   00000000 (0)\n+6E5303 Local Header Offset   000406BC (263868)\n+6E5307 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6E5305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6E5307: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6E5343 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6E5345   Length              0005 (5)\n 6E5347   Flags               01 (1) 'Modification'\n 6E5348   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6E534C CENTRAL HEADER #977   02014B50 (33639248)\n+6E534C CENTRAL HEADER #36    02014B50 (33639248)\n 6E5350 Created Zip Spec      14 (20) '2.0'\n 6E5351 Created OS            00 (0) 'MS-DOS'\n 6E5352 Extract Zip Spec      14 (20) '2.0'\n 6E5353 Extract OS            00 (0) 'MS-DOS'\n 6E5354 General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6E5356 Compression Method    0000 (0) 'Stored'\n 6E5358 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E535C CRC                   93AEE0AC (2477711532)\n-6E5360 Compressed Size       0000040A (1034)\n-6E5364 Uncompressed Size     0000040A (1034)\n-6E5368 Filename Length       003C (60)\n+6E535C CRC                   2318E723 (588834595)\n+6E5360 Compressed Size       0000006F (111)\n+6E5364 Uncompressed Size     0000006F (111)\n+6E5368 Filename Length       003E (62)\n 6E536A Extra Length          0009 (9)\n 6E536C Comment Length        0000 (0)\n 6E536E Disk Start            0000 (0)\n 6E5370 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6E5372 Ext File Attributes   00000000 (0)\n-6E5376 Local Header Offset   0035A010 (3514384)\n-6E537A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6E5376 Local Header Offset   000407DA (264154)\n+6E537A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6E537A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6E537A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6E53B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E53B8   Length              0005 (5)\n-6E53BA   Flags               01 (1) 'Modification'\n-6E53BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E53BF CENTRAL HEADER #978   02014B50 (33639248)\n-6E53C3 Created Zip Spec      14 (20) '2.0'\n-6E53C4 Created OS            00 (0) 'MS-DOS'\n-6E53C5 Extract Zip Spec      14 (20) '2.0'\n-6E53C6 Extract OS            00 (0) 'MS-DOS'\n-6E53C7 General Purpose Flag  0000 (0)\n-6E53C9 Compression Method    0000 (0) 'Stored'\n-6E53CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E53CF CRC                   00000000 (0)\n-6E53D3 Compressed Size       00000000 (0)\n-6E53D7 Uncompressed Size     00000000 (0)\n-6E53DB Filename Length       0020 (32)\n-6E53DD Extra Length          0009 (9)\n-6E53DF Comment Length        0000 (0)\n-6E53E1 Disk Start            0000 (0)\n-6E53E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E53E5 Ext File Attributes   00000000 (0)\n-6E53E9 Local Header Offset   0035A48D (3515533)\n-6E53ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E53ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E540D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E540F   Length              0005 (5)\n-6E5411   Flags               01 (1) 'Modification'\n-6E5412   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5416 CENTRAL HEADER #979   02014B50 (33639248)\n-6E541A Created Zip Spec      14 (20) '2.0'\n-6E541B Created OS            00 (0) 'MS-DOS'\n-6E541C Extract Zip Spec      14 (20) '2.0'\n-6E541D Extract OS            00 (0) 'MS-DOS'\n-6E541E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5420 Compression Method    0000 (0) 'Stored'\n-6E5422 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5426 CRC                   339D235A (865936218)\n-6E542A Compressed Size       00000791 (1937)\n-6E542E Uncompressed Size     00000791 (1937)\n-6E5432 Filename Length       003F (63)\n-6E5434 Extra Length          0009 (9)\n-6E5436 Comment Length        0000 (0)\n-6E5438 Disk Start            0000 (0)\n-6E543A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E543C Ext File Attributes   00000000 (0)\n-6E5440 Local Header Offset   0035A4D4 (3515604)\n-6E5444 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5444: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5483 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5485   Length              0005 (5)\n-6E5487   Flags               01 (1) 'Modification'\n-6E5488   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E548C CENTRAL HEADER #980   02014B50 (33639248)\n-6E5490 Created Zip Spec      14 (20) '2.0'\n-6E5491 Created OS            00 (0) 'MS-DOS'\n-6E5492 Extract Zip Spec      14 (20) '2.0'\n-6E5493 Extract OS            00 (0) 'MS-DOS'\n-6E5494 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5496 Compression Method    0000 (0) 'Stored'\n-6E5498 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E549C CRC                   F30DAB50 (4077759312)\n-6E54A0 Compressed Size       000047F4 (18420)\n-6E54A4 Uncompressed Size     000047F4 (18420)\n-6E54A8 Filename Length       0032 (50)\n-6E54AA Extra Length          0009 (9)\n-6E54AC Comment Length        0000 (0)\n-6E54AE Disk Start            0000 (0)\n-6E54B0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E54B2 Ext File Attributes   00000000 (0)\n-6E54B6 Local Header Offset   0035ACDB (3517659)\n-6E54BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E54BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E54EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E54EE   Length              0005 (5)\n-6E54F0   Flags               01 (1) 'Modification'\n-6E54F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E54F5 CENTRAL HEADER #981   02014B50 (33639248)\n-6E54F9 Created Zip Spec      14 (20) '2.0'\n-6E54FA Created OS            00 (0) 'MS-DOS'\n-6E54FB Extract Zip Spec      14 (20) '2.0'\n-6E54FC Extract OS            00 (0) 'MS-DOS'\n-6E54FD General Purpose Flag  0000 (0)\n-6E54FF Compression Method    0000 (0) 'Stored'\n-6E5501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5505 CRC                   00000000 (0)\n-6E5509 Compressed Size       00000000 (0)\n-6E550D Uncompressed Size     00000000 (0)\n-6E5511 Filename Length       001E (30)\n-6E5513 Extra Length          0009 (9)\n-6E5515 Comment Length        0000 (0)\n-6E5517 Disk Start            0000 (0)\n-6E5519 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E551B Ext File Attributes   00000000 (0)\n-6E551F Local Header Offset   0035F538 (3536184)\n-6E5523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5541 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5543   Length              0005 (5)\n-6E5545   Flags               01 (1) 'Modification'\n-6E5546   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E554A CENTRAL HEADER #982   02014B50 (33639248)\n-6E554E Created Zip Spec      14 (20) '2.0'\n-6E554F Created OS            00 (0) 'MS-DOS'\n-6E5550 Extract Zip Spec      14 (20) '2.0'\n-6E5551 Extract OS            00 (0) 'MS-DOS'\n-6E5552 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5554 Compression Method    0000 (0) 'Stored'\n-6E5556 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E555A CRC                   7A3B23D9 (2050696153)\n-6E555E Compressed Size       00000479 (1145)\n-6E5562 Uncompressed Size     00000479 (1145)\n-6E5566 Filename Length       003D (61)\n-6E5568 Extra Length          0009 (9)\n-6E556A Comment Length        0000 (0)\n-6E556C Disk Start            0000 (0)\n-6E556E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5570 Ext File Attributes   00000000 (0)\n-6E5574 Local Header Offset   0035F57D (3536253)\n-6E5578 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5578: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E55B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E55B7   Length              0005 (5)\n-6E55B9   Flags               01 (1) 'Modification'\n-6E55BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E55BE CENTRAL HEADER #983   02014B50 (33639248)\n-6E55C2 Created Zip Spec      14 (20) '2.0'\n-6E55C3 Created OS            00 (0) 'MS-DOS'\n-6E55C4 Extract Zip Spec      14 (20) '2.0'\n-6E55C5 Extract OS            00 (0) 'MS-DOS'\n-6E55C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E55C8 Compression Method    0000 (0) 'Stored'\n-6E55CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E55CE CRC                   3E8906CC (1049167564)\n-6E55D2 Compressed Size       00000690 (1680)\n-6E55D6 Uncompressed Size     00000690 (1680)\n-6E55DA Filename Length       0043 (67)\n-6E55DC Extra Length          0009 (9)\n-6E55DE Comment Length        0000 (0)\n-6E55E0 Disk Start            0000 (0)\n-6E55E2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E55E4 Ext File Attributes   00000000 (0)\n-6E55E8 Local Header Offset   0035FA6A (3537514)\n-6E55EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E55EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E562F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5631   Length              0005 (5)\n-6E5633   Flags               01 (1) 'Modification'\n-6E5634   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5638 CENTRAL HEADER #984   02014B50 (33639248)\n-6E563C Created Zip Spec      14 (20) '2.0'\n-6E563D Created OS            00 (0) 'MS-DOS'\n-6E563E Extract Zip Spec      14 (20) '2.0'\n-6E563F Extract OS            00 (0) 'MS-DOS'\n-6E5640 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5642 Compression Method    0000 (0) 'Stored'\n-6E5644 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5648 CRC                   AE1F051B (2921268507)\n-6E564C Compressed Size       00000698 (1688)\n-6E5650 Uncompressed Size     00000698 (1688)\n-6E5654 Filename Length       0045 (69)\n-6E5656 Extra Length          0009 (9)\n-6E5658 Comment Length        0000 (0)\n-6E565A Disk Start            0000 (0)\n-6E565C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E565E Ext File Attributes   00000000 (0)\n-6E5662 Local Header Offset   00360174 (3539316)\n-6E5666 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5666: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E56AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E56AD   Length              0005 (5)\n-6E56AF   Flags               01 (1) 'Modification'\n-6E56B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E56B4 CENTRAL HEADER #985   02014B50 (33639248)\n-6E56B8 Created Zip Spec      14 (20) '2.0'\n-6E56B9 Created OS            00 (0) 'MS-DOS'\n-6E56BA Extract Zip Spec      14 (20) '2.0'\n-6E56BB Extract OS            00 (0) 'MS-DOS'\n-6E56BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E56BE Compression Method    0000 (0) 'Stored'\n-6E56C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E56C4 CRC                   542D0143 (1412235587)\n-6E56C8 Compressed Size       000005A4 (1444)\n-6E56CC Uncompressed Size     000005A4 (1444)\n-6E56D0 Filename Length       0040 (64)\n-6E56D2 Extra Length          0009 (9)\n-6E56D4 Comment Length        0000 (0)\n-6E56D6 Disk Start            0000 (0)\n-6E56D8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E56DA Ext File Attributes   00000000 (0)\n-6E56DE Local Header Offset   00360888 (3541128)\n-6E56E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E56E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5722 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5724   Length              0005 (5)\n-6E5726   Flags               01 (1) 'Modification'\n-6E5727   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E572B CENTRAL HEADER #986   02014B50 (33639248)\n-6E572F Created Zip Spec      14 (20) '2.0'\n-6E5730 Created OS            00 (0) 'MS-DOS'\n-6E5731 Extract Zip Spec      14 (20) '2.0'\n-6E5732 Extract OS            00 (0) 'MS-DOS'\n-6E5733 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5735 Compression Method    0000 (0) 'Stored'\n-6E5737 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E573B CRC                   FC50C2FA (4233151226)\n-6E573F Compressed Size       0000066A (1642)\n-6E5743 Uncompressed Size     0000066A (1642)\n-6E5747 Filename Length       0042 (66)\n-6E5749 Extra Length          0009 (9)\n-6E574B Comment Length        0000 (0)\n-6E574D Disk Start            0000 (0)\n-6E574F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5751 Ext File Attributes   00000000 (0)\n-6E5755 Local Header Offset   00360EA3 (3542691)\n-6E5759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E579B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E579D   Length              0005 (5)\n-6E579F   Flags               01 (1) 'Modification'\n-6E57A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E57A4 CENTRAL HEADER #987   02014B50 (33639248)\n-6E57A8 Created Zip Spec      14 (20) '2.0'\n-6E57A9 Created OS            00 (0) 'MS-DOS'\n-6E57AA Extract Zip Spec      14 (20) '2.0'\n-6E57AB Extract OS            00 (0) 'MS-DOS'\n-6E57AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E57AE Compression Method    0000 (0) 'Stored'\n-6E57B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E57B4 CRC                   E1CD8446 (3788342342)\n-6E57B8 Compressed Size       000004FA (1274)\n-6E57BC Uncompressed Size     000004FA (1274)\n-6E57C0 Filename Length       003D (61)\n-6E57C2 Extra Length          0009 (9)\n-6E57C4 Comment Length        0000 (0)\n-6E57C6 Disk Start            0000 (0)\n-6E57C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E57CA Ext File Attributes   00000000 (0)\n-6E57CE Local Header Offset   00361586 (3544454)\n-6E57D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E57D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E580F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5811   Length              0005 (5)\n-6E5813   Flags               01 (1) 'Modification'\n-6E5814   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5818 CENTRAL HEADER #988   02014B50 (33639248)\n-6E581C Created Zip Spec      14 (20) '2.0'\n-6E581D Created OS            00 (0) 'MS-DOS'\n-6E581E Extract Zip Spec      14 (20) '2.0'\n-6E581F Extract OS            00 (0) 'MS-DOS'\n-6E5820 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5822 Compression Method    0000 (0) 'Stored'\n-6E5824 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5828 CRC                   FE2922A2 (4264108706)\n-6E582C Compressed Size       00000502 (1282)\n-6E5830 Uncompressed Size     00000502 (1282)\n-6E5834 Filename Length       003F (63)\n-6E5836 Extra Length          0009 (9)\n-6E5838 Comment Length        0000 (0)\n-6E583A Disk Start            0000 (0)\n-6E583C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E583E Ext File Attributes   00000000 (0)\n-6E5842 Local Header Offset   00361AF4 (3545844)\n-6E5846 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5846: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5885 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5887   Length              0005 (5)\n-6E5889   Flags               01 (1) 'Modification'\n-6E588A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E588E CENTRAL HEADER #989   02014B50 (33639248)\n-6E5892 Created Zip Spec      14 (20) '2.0'\n-6E5893 Created OS            00 (0) 'MS-DOS'\n-6E5894 Extract Zip Spec      14 (20) '2.0'\n-6E5895 Extract OS            00 (0) 'MS-DOS'\n-6E5896 General Purpose Flag  0000 (0)\n-6E5898 Compression Method    0000 (0) 'Stored'\n-6E589A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E589E CRC                   00000000 (0)\n-6E58A2 Compressed Size       00000000 (0)\n-6E58A6 Uncompressed Size     00000000 (0)\n-6E58AA Filename Length       0027 (39)\n-6E58AC Extra Length          0009 (9)\n-6E58AE Comment Length        0000 (0)\n-6E58B0 Disk Start            0000 (0)\n-6E58B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E58B4 Ext File Attributes   00000000 (0)\n-6E58B8 Local Header Offset   0036206C (3547244)\n-6E58BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E58BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E58E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E58E5   Length              0005 (5)\n-6E58E7   Flags               01 (1) 'Modification'\n-6E58E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E58EC CENTRAL HEADER #990   02014B50 (33639248)\n-6E58F0 Created Zip Spec      14 (20) '2.0'\n-6E58F1 Created OS            00 (0) 'MS-DOS'\n-6E58F2 Extract Zip Spec      14 (20) '2.0'\n-6E58F3 Extract OS            00 (0) 'MS-DOS'\n-6E58F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E58F6 Compression Method    0000 (0) 'Stored'\n-6E58F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E58FC CRC                   704BFEFA (1884028666)\n-6E5900 Compressed Size       00000741 (1857)\n-6E5904 Uncompressed Size     00000741 (1857)\n-6E5908 Filename Length       0040 (64)\n-6E590A Extra Length          0009 (9)\n-6E590C Comment Length        0000 (0)\n-6E590E Disk Start            0000 (0)\n-6E5910 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5912 Ext File Attributes   00000000 (0)\n-6E5916 Local Header Offset   003620BA (3547322)\n-6E591A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E591A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E595A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E595C   Length              0005 (5)\n-6E595E   Flags               01 (1) 'Modification'\n-6E595F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5963 CENTRAL HEADER #991   02014B50 (33639248)\n-6E5967 Created Zip Spec      14 (20) '2.0'\n-6E5968 Created OS            00 (0) 'MS-DOS'\n-6E5969 Extract Zip Spec      14 (20) '2.0'\n-6E596A Extract OS            00 (0) 'MS-DOS'\n-6E596B General Purpose Flag  0000 (0)\n-6E596D Compression Method    0000 (0) 'Stored'\n-6E596F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5973 CRC                   00000000 (0)\n-6E5977 Compressed Size       00000000 (0)\n-6E597B Uncompressed Size     00000000 (0)\n-6E597F Filename Length       0020 (32)\n-6E5981 Extra Length          0009 (9)\n-6E5983 Comment Length        0000 (0)\n-6E5985 Disk Start            0000 (0)\n-6E5987 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5989 Ext File Attributes   00000000 (0)\n-6E598D Local Header Offset   00362872 (3549298)\n-6E5991 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5991: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E59B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E59B3   Length              0005 (5)\n-6E59B5   Flags               01 (1) 'Modification'\n-6E59B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E59BA CENTRAL HEADER #992   02014B50 (33639248)\n-6E59BE Created Zip Spec      14 (20) '2.0'\n-6E59BF Created OS            00 (0) 'MS-DOS'\n-6E59C0 Extract Zip Spec      14 (20) '2.0'\n-6E59C1 Extract OS            00 (0) 'MS-DOS'\n-6E59C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E59C4 Compression Method    0000 (0) 'Stored'\n-6E59C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E59CA CRC                   7E779F80 (2121768832)\n-6E59CE Compressed Size       000007FD (2045)\n-6E59D2 Uncompressed Size     000007FD (2045)\n-6E59D6 Filename Length       0044 (68)\n-6E59D8 Extra Length          0009 (9)\n-6E59DA Comment Length        0000 (0)\n-6E59DC Disk Start            0000 (0)\n-6E59DE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E59E0 Ext File Attributes   00000000 (0)\n-6E59E4 Local Header Offset   003628B9 (3549369)\n-6E59E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E59E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5A2C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5A2E   Length              0005 (5)\n-6E5A30   Flags               01 (1) 'Modification'\n-6E5A31   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5A35 CENTRAL HEADER #993   02014B50 (33639248)\n-6E5A39 Created Zip Spec      14 (20) '2.0'\n-6E5A3A Created OS            00 (0) 'MS-DOS'\n-6E5A3B Extract Zip Spec      14 (20) '2.0'\n-6E5A3C Extract OS            00 (0) 'MS-DOS'\n-6E5A3D General Purpose Flag  0000 (0)\n-6E5A3F Compression Method    0000 (0) 'Stored'\n-6E5A41 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5A45 CRC                   00000000 (0)\n-6E5A49 Compressed Size       00000000 (0)\n-6E5A4D Uncompressed Size     00000000 (0)\n-6E5A51 Filename Length       0021 (33)\n-6E5A53 Extra Length          0009 (9)\n-6E5A55 Comment Length        0000 (0)\n-6E5A57 Disk Start            0000 (0)\n-6E5A59 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5A5B Ext File Attributes   00000000 (0)\n-6E5A5F Local Header Offset   00363131 (3551537)\n-6E5A63 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5A63: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5A84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5A86   Length              0005 (5)\n-6E5A88   Flags               01 (1) 'Modification'\n-6E5A89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5A8D CENTRAL HEADER #994   02014B50 (33639248)\n-6E5A91 Created Zip Spec      14 (20) '2.0'\n-6E5A92 Created OS            00 (0) 'MS-DOS'\n-6E5A93 Extract Zip Spec      14 (20) '2.0'\n-6E5A94 Extract OS            00 (0) 'MS-DOS'\n-6E5A95 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5A97 Compression Method    0000 (0) 'Stored'\n-6E5A99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5A9D CRC                   33B32090 (867377296)\n-6E5AA1 Compressed Size       00001259 (4697)\n-6E5AA5 Uncompressed Size     00001259 (4697)\n-6E5AA9 Filename Length       0049 (73)\n-6E5AAB Extra Length          0009 (9)\n-6E5AAD Comment Length        0000 (0)\n-6E5AAF Disk Start            0000 (0)\n-6E5AB1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5AB3 Ext File Attributes   00000000 (0)\n-6E5AB7 Local Header Offset   00363179 (3551609)\n-6E5ABB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5ABB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5B04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5B06   Length              0005 (5)\n-6E5B08   Flags               01 (1) 'Modification'\n-6E5B09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5B0D CENTRAL HEADER #995   02014B50 (33639248)\n-6E5B11 Created Zip Spec      14 (20) '2.0'\n-6E5B12 Created OS            00 (0) 'MS-DOS'\n-6E5B13 Extract Zip Spec      14 (20) '2.0'\n-6E5B14 Extract OS            00 (0) 'MS-DOS'\n-6E5B15 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5B17 Compression Method    0000 (0) 'Stored'\n-6E5B19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5B1D CRC                   DEA0C858 (3735079000)\n-6E5B21 Compressed Size       00000A13 (2579)\n-6E5B25 Uncompressed Size     00000A13 (2579)\n-6E5B29 Filename Length       0043 (67)\n-6E5B2B Extra Length          0009 (9)\n-6E5B2D Comment Length        0000 (0)\n-6E5B2F Disk Start            0000 (0)\n-6E5B31 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5B33 Ext File Attributes   00000000 (0)\n-6E5B37 Local Header Offset   00364452 (3556434)\n-6E5B3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5B3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5B7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5B80   Length              0005 (5)\n-6E5B82   Flags               01 (1) 'Modification'\n-6E5B83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5B87 CENTRAL HEADER #996   02014B50 (33639248)\n-6E5B8B Created Zip Spec      14 (20) '2.0'\n-6E5B8C Created OS            00 (0) 'MS-DOS'\n-6E5B8D Extract Zip Spec      14 (20) '2.0'\n-6E5B8E Extract OS            00 (0) 'MS-DOS'\n-6E5B8F General Purpose Flag  0000 (0)\n-6E5B91 Compression Method    0000 (0) 'Stored'\n-6E5B93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5B97 CRC                   00000000 (0)\n-6E5B9B Compressed Size       00000000 (0)\n-6E5B9F Uncompressed Size     00000000 (0)\n-6E5BA3 Filename Length       001F (31)\n-6E5BA5 Extra Length          0009 (9)\n-6E5BA7 Comment Length        0000 (0)\n-6E5BA9 Disk Start            0000 (0)\n-6E5BAB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5BAD Ext File Attributes   00000000 (0)\n-6E5BB1 Local Header Offset   00364EDF (3559135)\n-6E5BB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5BB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5BD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5BD6   Length              0005 (5)\n-6E5BD8   Flags               01 (1) 'Modification'\n-6E5BD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5BDD CENTRAL HEADER #997   02014B50 (33639248)\n-6E5BE1 Created Zip Spec      14 (20) '2.0'\n-6E5BE2 Created OS            00 (0) 'MS-DOS'\n-6E5BE3 Extract Zip Spec      14 (20) '2.0'\n-6E5BE4 Extract OS            00 (0) 'MS-DOS'\n-6E5BE5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5BE7 Compression Method    0000 (0) 'Stored'\n-6E5BE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5BED CRC                   D4A82FA9 (3567792041)\n-6E5BF1 Compressed Size       000011C8 (4552)\n-6E5BF5 Uncompressed Size     000011C8 (4552)\n-6E5BF9 Filename Length       0034 (52)\n-6E5BFB Extra Length          0009 (9)\n-6E5BFD Comment Length        0000 (0)\n-6E5BFF Disk Start            0000 (0)\n-6E5C01 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5C03 Ext File Attributes   00000000 (0)\n-6E5C07 Local Header Offset   00364F25 (3559205)\n-6E5C0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5C0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5C3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5C41   Length              0005 (5)\n-6E5C43   Flags               01 (1) 'Modification'\n-6E5C44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5C48 CENTRAL HEADER #998   02014B50 (33639248)\n-6E5C4C Created Zip Spec      14 (20) '2.0'\n-6E5C4D Created OS            00 (0) 'MS-DOS'\n-6E5C4E Extract Zip Spec      14 (20) '2.0'\n-6E5C4F Extract OS            00 (0) 'MS-DOS'\n-6E5C50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5C52 Compression Method    0000 (0) 'Stored'\n-6E5C54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5C58 CRC                   3F3FCF79 (1061146489)\n-6E5C5C Compressed Size       0000135C (4956)\n-6E5C60 Uncompressed Size     0000135C (4956)\n-6E5C64 Filename Length       0031 (49)\n-6E5C66 Extra Length          0009 (9)\n-6E5C68 Comment Length        0000 (0)\n-6E5C6A Disk Start            0000 (0)\n-6E5C6C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5C6E Ext File Attributes   00000000 (0)\n-6E5C72 Local Header Offset   00366158 (3563864)\n-6E5C76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5C76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5CA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5CA9   Length              0005 (5)\n-6E5CAB   Flags               01 (1) 'Modification'\n-6E5CAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5CB0 CENTRAL HEADER #999   02014B50 (33639248)\n-6E5CB4 Created Zip Spec      14 (20) '2.0'\n-6E5CB5 Created OS            00 (0) 'MS-DOS'\n-6E5CB6 Extract Zip Spec      14 (20) '2.0'\n-6E5CB7 Extract OS            00 (0) 'MS-DOS'\n-6E5CB8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5CBA Compression Method    0000 (0) 'Stored'\n-6E5CBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5CC0 CRC                   F95CA75C (4183598940)\n-6E5CC4 Compressed Size       0000115B (4443)\n-6E5CC8 Uncompressed Size     0000115B (4443)\n-6E5CCC Filename Length       002F (47)\n-6E5CCE Extra Length          0009 (9)\n-6E5CD0 Comment Length        0000 (0)\n-6E5CD2 Disk Start            0000 (0)\n-6E5CD4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5CD6 Ext File Attributes   00000000 (0)\n-6E5CDA Local Header Offset   0036751C (3568924)\n-6E5CDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5CDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5D0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5D0F   Length              0005 (5)\n-6E5D11   Flags               01 (1) 'Modification'\n-6E5D12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5D16 CENTRAL HEADER #1000  02014B50 (33639248)\n-6E5D1A Created Zip Spec      14 (20) '2.0'\n-6E5D1B Created OS            00 (0) 'MS-DOS'\n-6E5D1C Extract Zip Spec      14 (20) '2.0'\n-6E5D1D Extract OS            00 (0) 'MS-DOS'\n-6E5D1E General Purpose Flag  0000 (0)\n-6E5D20 Compression Method    0000 (0) 'Stored'\n-6E5D22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5D26 CRC                   00000000 (0)\n-6E5D2A Compressed Size       00000000 (0)\n-6E5D2E Uncompressed Size     00000000 (0)\n-6E5D32 Filename Length       0025 (37)\n-6E5D34 Extra Length          0009 (9)\n-6E5D36 Comment Length        0000 (0)\n-6E5D38 Disk Start            0000 (0)\n-6E5D3A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5D3C Ext File Attributes   00000000 (0)\n-6E5D40 Local Header Offset   003686DD (3573469)\n-6E5D44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5D44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5D69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5D6B   Length              0005 (5)\n-6E5D6D   Flags               01 (1) 'Modification'\n-6E5D6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5D72 CENTRAL HEADER #1001  02014B50 (33639248)\n-6E5D76 Created Zip Spec      14 (20) '2.0'\n-6E5D77 Created OS            00 (0) 'MS-DOS'\n-6E5D78 Extract Zip Spec      14 (20) '2.0'\n-6E5D79 Extract OS            00 (0) 'MS-DOS'\n-6E5D7A General Purpose Flag  0000 (0)\n-6E5D7C Compression Method    0000 (0) 'Stored'\n-6E5D7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5D82 CRC                   00000000 (0)\n-6E5D86 Compressed Size       00000000 (0)\n-6E5D8A Uncompressed Size     00000000 (0)\n-6E5D8E Filename Length       002D (45)\n-6E5D90 Extra Length          0009 (9)\n-6E5D92 Comment Length        0000 (0)\n-6E5D94 Disk Start            0000 (0)\n-6E5D96 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5D98 Ext File Attributes   00000000 (0)\n-6E5D9C Local Header Offset   00368729 (3573545)\n-6E5DA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5DA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5DCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5DCF   Length              0005 (5)\n-6E5DD1   Flags               01 (1) 'Modification'\n-6E5DD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5DD6 CENTRAL HEADER #1002  02014B50 (33639248)\n-6E5DDA Created Zip Spec      14 (20) '2.0'\n-6E5DDB Created OS            00 (0) 'MS-DOS'\n-6E5DDC Extract Zip Spec      14 (20) '2.0'\n-6E5DDD Extract OS            00 (0) 'MS-DOS'\n-6E5DDE General Purpose Flag  0000 (0)\n-6E5DE0 Compression Method    0000 (0) 'Stored'\n-6E5DE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5DE6 CRC                   00000000 (0)\n-6E5DEA Compressed Size       00000000 (0)\n-6E5DEE Uncompressed Size     00000000 (0)\n-6E5DF2 Filename Length       0038 (56)\n-6E5DF4 Extra Length          0009 (9)\n-6E5DF6 Comment Length        0000 (0)\n-6E5DF8 Disk Start            0000 (0)\n-6E5DFA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5DFC Ext File Attributes   00000000 (0)\n-6E5E00 Local Header Offset   0036877D (3573629)\n-6E5E04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5E04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5E3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5E3E   Length              0005 (5)\n-6E5E40   Flags               01 (1) 'Modification'\n-6E5E41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5E45 CENTRAL HEADER #1003  02014B50 (33639248)\n-6E5E49 Created Zip Spec      14 (20) '2.0'\n-6E5E4A Created OS            00 (0) 'MS-DOS'\n-6E5E4B Extract Zip Spec      14 (20) '2.0'\n-6E5E4C Extract OS            00 (0) 'MS-DOS'\n-6E5E4D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5E4F Compression Method    0000 (0) 'Stored'\n-6E5E51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5E55 CRC                   B8989C24 (3097009188)\n-6E5E59 Compressed Size       00001843 (6211)\n-6E5E5D Uncompressed Size     00001843 (6211)\n-6E5E61 Filename Length       0060 (96)\n-6E5E63 Extra Length          0009 (9)\n-6E5E65 Comment Length        0000 (0)\n-6E5E67 Disk Start            0000 (0)\n-6E5E69 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5E6B Ext File Attributes   00000000 (0)\n-6E5E6F Local Header Offset   003687DC (3573724)\n-6E5E73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5E73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5ED3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5ED5   Length              0005 (5)\n-6E5ED7   Flags               01 (1) 'Modification'\n-6E5ED8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5EDC CENTRAL HEADER #1004  02014B50 (33639248)\n-6E5EE0 Created Zip Spec      14 (20) '2.0'\n-6E5EE1 Created OS            00 (0) 'MS-DOS'\n-6E5EE2 Extract Zip Spec      14 (20) '2.0'\n-6E5EE3 Extract OS            00 (0) 'MS-DOS'\n-6E5EE4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5EE6 Compression Method    0000 (0) 'Stored'\n-6E5EE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5EEC CRC                   88B1EF9C (2293362588)\n-6E5EF0 Compressed Size       00001A70 (6768)\n-6E5EF4 Uncompressed Size     00001A70 (6768)\n-6E5EF8 Filename Length       0060 (96)\n-6E5EFA Extra Length          0009 (9)\n-6E5EFC Comment Length        0000 (0)\n-6E5EFE Disk Start            0000 (0)\n-6E5F00 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5F02 Ext File Attributes   00000000 (0)\n-6E5F06 Local Header Offset   0036A0B6 (3580086)\n-6E5F0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5F0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5F6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5F6C   Length              0005 (5)\n-6E5F6E   Flags               01 (1) 'Modification'\n-6E5F6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E5F73 CENTRAL HEADER #1005  02014B50 (33639248)\n-6E5F77 Created Zip Spec      14 (20) '2.0'\n-6E5F78 Created OS            00 (0) 'MS-DOS'\n-6E5F79 Extract Zip Spec      14 (20) '2.0'\n-6E5F7A Extract OS            00 (0) 'MS-DOS'\n-6E5F7B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E5F7D Compression Method    0000 (0) 'Stored'\n-6E5F7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E5F83 CRC                   B78EFF6E (3079602030)\n-6E5F87 Compressed Size       00000BDD (3037)\n-6E5F8B Uncompressed Size     00000BDD (3037)\n-6E5F8F Filename Length       005C (92)\n-6E5F91 Extra Length          0009 (9)\n-6E5F93 Comment Length        0000 (0)\n-6E5F95 Disk Start            0000 (0)\n-6E5F97 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E5F99 Ext File Attributes   00000000 (0)\n-6E5F9D Local Header Offset   0036BBBD (3587005)\n-6E5FA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E5FA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E5FFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E5FFF   Length              0005 (5)\n-6E6001   Flags               01 (1) 'Modification'\n-6E6002   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6006 CENTRAL HEADER #1006  02014B50 (33639248)\n-6E600A Created Zip Spec      14 (20) '2.0'\n-6E600B Created OS            00 (0) 'MS-DOS'\n-6E600C Extract Zip Spec      14 (20) '2.0'\n-6E600D Extract OS            00 (0) 'MS-DOS'\n-6E600E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6010 Compression Method    0000 (0) 'Stored'\n-6E6012 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6016 CRC                   F2F49006 (4076113926)\n-6E601A Compressed Size       00000C34 (3124)\n-6E601E Uncompressed Size     00000C34 (3124)\n-6E6022 Filename Length       005A (90)\n-6E6024 Extra Length          0009 (9)\n-6E6026 Comment Length        0000 (0)\n-6E6028 Disk Start            0000 (0)\n-6E602A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E602C Ext File Attributes   00000000 (0)\n-6E6030 Local Header Offset   0036C82D (3590189)\n-6E6034 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6034: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E608E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6090   Length              0005 (5)\n-6E6092   Flags               01 (1) 'Modification'\n-6E6093   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6097 CENTRAL HEADER #1007  02014B50 (33639248)\n-6E609B Created Zip Spec      14 (20) '2.0'\n-6E609C Created OS            00 (0) 'MS-DOS'\n-6E609D Extract Zip Spec      14 (20) '2.0'\n-6E609E Extract OS            00 (0) 'MS-DOS'\n-6E609F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E60A1 Compression Method    0000 (0) 'Stored'\n-6E60A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E60A7 CRC                   63E9E69D (1676273309)\n-6E60AB Compressed Size       000048C6 (18630)\n-6E60AF Uncompressed Size     000048C6 (18630)\n-6E60B3 Filename Length       0061 (97)\n-6E60B5 Extra Length          0009 (9)\n-6E60B7 Comment Length        0000 (0)\n-6E60B9 Disk Start            0000 (0)\n-6E60BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E60BD Ext File Attributes   00000000 (0)\n-6E60C1 Local Header Offset   0036D4F2 (3593458)\n-6E60C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E60C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6126 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6128   Length              0005 (5)\n-6E612A   Flags               01 (1) 'Modification'\n-6E612B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E612F CENTRAL HEADER #1008  02014B50 (33639248)\n-6E6133 Created Zip Spec      14 (20) '2.0'\n-6E6134 Created OS            00 (0) 'MS-DOS'\n-6E6135 Extract Zip Spec      14 (20) '2.0'\n-6E6136 Extract OS            00 (0) 'MS-DOS'\n-6E6137 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6139 Compression Method    0000 (0) 'Stored'\n-6E613B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E613F CRC                   7BF0B1BF (2079371711)\n-6E6143 Compressed Size       00001CDC (7388)\n-6E6147 Uncompressed Size     00001CDC (7388)\n-6E614B Filename Length       0051 (81)\n-6E614D Extra Length          0009 (9)\n-6E614F Comment Length        0000 (0)\n-6E6151 Disk Start            0000 (0)\n-6E6153 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6155 Ext File Attributes   00000000 (0)\n-6E6159 Local Header Offset   00371E50 (3612240)\n-6E615D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E615D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E61AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E61B0   Length              0005 (5)\n-6E61B2   Flags               01 (1) 'Modification'\n-6E61B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E61B7 CENTRAL HEADER #1009  02014B50 (33639248)\n-6E61BB Created Zip Spec      14 (20) '2.0'\n-6E61BC Created OS            00 (0) 'MS-DOS'\n-6E61BD Extract Zip Spec      14 (20) '2.0'\n-6E61BE Extract OS            00 (0) 'MS-DOS'\n-6E61BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E61C1 Compression Method    0000 (0) 'Stored'\n-6E61C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E61C7 CRC                   3CA6083C (1017514044)\n-6E61CB Compressed Size       00000716 (1814)\n-6E61CF Uncompressed Size     00000716 (1814)\n-6E61D3 Filename Length       005F (95)\n-6E61D5 Extra Length          0009 (9)\n-6E61D7 Comment Length        0000 (0)\n-6E61D9 Disk Start            0000 (0)\n-6E61DB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E61DD Ext File Attributes   00000000 (0)\n-6E61E1 Local Header Offset   00373BB4 (3619764)\n-6E61E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E61E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6244 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6246   Length              0005 (5)\n-6E6248   Flags               01 (1) 'Modification'\n-6E6249   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E624D CENTRAL HEADER #1010  02014B50 (33639248)\n-6E6251 Created Zip Spec      14 (20) '2.0'\n-6E6252 Created OS            00 (0) 'MS-DOS'\n-6E6253 Extract Zip Spec      14 (20) '2.0'\n-6E6254 Extract OS            00 (0) 'MS-DOS'\n-6E6255 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6257 Compression Method    0000 (0) 'Stored'\n-6E6259 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E625D CRC                   87C6FC27 (2277964839)\n-6E6261 Compressed Size       00001175 (4469)\n-6E6265 Uncompressed Size     00001175 (4469)\n-6E6269 Filename Length       0053 (83)\n-6E626B Extra Length          0009 (9)\n-6E626D Comment Length        0000 (0)\n-6E626F Disk Start            0000 (0)\n-6E6271 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6273 Ext File Attributes   00000000 (0)\n-6E6277 Local Header Offset   00374360 (3621728)\n-6E627B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E627B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E62CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E62D0   Length              0005 (5)\n-6E62D2   Flags               01 (1) 'Modification'\n-6E62D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E62D7 CENTRAL HEADER #1011  02014B50 (33639248)\n-6E62DB Created Zip Spec      14 (20) '2.0'\n-6E62DC Created OS            00 (0) 'MS-DOS'\n-6E62DD Extract Zip Spec      14 (20) '2.0'\n-6E62DE Extract OS            00 (0) 'MS-DOS'\n-6E62DF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E62E1 Compression Method    0000 (0) 'Stored'\n-6E62E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E62E7 CRC                   DD6B0419 (3714778137)\n-6E62EB Compressed Size       00005649 (22089)\n-6E62EF Uncompressed Size     00005649 (22089)\n-6E62F3 Filename Length       0056 (86)\n-6E62F5 Extra Length          0009 (9)\n-6E62F7 Comment Length        0000 (0)\n-6E62F9 Disk Start            0000 (0)\n-6E62FB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E62FD Ext File Attributes   00000000 (0)\n-6E6301 Local Header Offset   0037555F (3626335)\n-6E6305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E635B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E635D   Length              0005 (5)\n-6E635F   Flags               01 (1) 'Modification'\n-6E6360   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6364 CENTRAL HEADER #1012  02014B50 (33639248)\n-6E6368 Created Zip Spec      14 (20) '2.0'\n-6E6369 Created OS            00 (0) 'MS-DOS'\n-6E636A Extract Zip Spec      14 (20) '2.0'\n-6E636B Extract OS            00 (0) 'MS-DOS'\n-6E636C General Purpose Flag  0000 (0)\n-6E636E Compression Method    0000 (0) 'Stored'\n-6E6370 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6374 CRC                   00000000 (0)\n-6E6378 Compressed Size       00000000 (0)\n-6E637C Uncompressed Size     00000000 (0)\n-6E6380 Filename Length       0034 (52)\n-6E6382 Extra Length          0009 (9)\n-6E6384 Comment Length        0000 (0)\n-6E6386 Disk Start            0000 (0)\n-6E6388 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E638A Ext File Attributes   00000000 (0)\n-6E638E Local Header Offset   0037AC35 (3648565)\n-6E6392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E63C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E63C8   Length              0005 (5)\n-6E63CA   Flags               01 (1) 'Modification'\n-6E63CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E63CF CENTRAL HEADER #1013  02014B50 (33639248)\n-6E63D3 Created Zip Spec      14 (20) '2.0'\n-6E63D4 Created OS            00 (0) 'MS-DOS'\n-6E63D5 Extract Zip Spec      14 (20) '2.0'\n-6E63D6 Extract OS            00 (0) 'MS-DOS'\n-6E63D7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E63D9 Compression Method    0000 (0) 'Stored'\n-6E63DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E63DF CRC                   B68D8917 (3062728983)\n-6E63E3 Compressed Size       00000641 (1601)\n-6E63E7 Uncompressed Size     00000641 (1601)\n-6E63EB Filename Length       005E (94)\n-6E63ED Extra Length          0009 (9)\n-6E63EF Comment Length        0000 (0)\n-6E63F1 Disk Start            0000 (0)\n-6E63F3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E63F5 Ext File Attributes   00000000 (0)\n-6E63F9 Local Header Offset   0037AC90 (3648656)\n-6E63FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E63FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E645B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E645D   Length              0005 (5)\n-6E645F   Flags               01 (1) 'Modification'\n-6E6460   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6464 CENTRAL HEADER #1014  02014B50 (33639248)\n-6E6468 Created Zip Spec      14 (20) '2.0'\n-6E6469 Created OS            00 (0) 'MS-DOS'\n-6E646A Extract Zip Spec      14 (20) '2.0'\n-6E646B Extract OS            00 (0) 'MS-DOS'\n-6E646C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E646E Compression Method    0000 (0) 'Stored'\n-6E6470 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6474 CRC                   919401C9 (2442396105)\n-6E6478 Compressed Size       00001153 (4435)\n-6E647C Uncompressed Size     00001153 (4435)\n-6E6480 Filename Length       0069 (105)\n-6E6482 Extra Length          0009 (9)\n-6E6484 Comment Length        0000 (0)\n-6E6486 Disk Start            0000 (0)\n-6E6488 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E648A Ext File Attributes   00000000 (0)\n-6E648E Local Header Offset   0037B366 (3650406)\n-6E6492 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6492: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E64FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E64FD   Length              0005 (5)\n-6E64FF   Flags               01 (1) 'Modification'\n-6E6500   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6504 CENTRAL HEADER #1015  02014B50 (33639248)\n-6E6508 Created Zip Spec      14 (20) '2.0'\n-6E6509 Created OS            00 (0) 'MS-DOS'\n-6E650A Extract Zip Spec      14 (20) '2.0'\n-6E650B Extract OS            00 (0) 'MS-DOS'\n-6E650C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E650E Compression Method    0000 (0) 'Stored'\n-6E6510 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6514 CRC                   587421D1 (1484005841)\n-6E6518 Compressed Size       000015AC (5548)\n-6E651C Uncompressed Size     000015AC (5548)\n-6E6520 Filename Length       0064 (100)\n-6E6522 Extra Length          0009 (9)\n-6E6524 Comment Length        0000 (0)\n-6E6526 Disk Start            0000 (0)\n-6E6528 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E652A Ext File Attributes   00000000 (0)\n-6E652E Local Header Offset   0037C559 (3655001)\n-6E6532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6596 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6598   Length              0005 (5)\n-6E659A   Flags               01 (1) 'Modification'\n-6E659B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E659F CENTRAL HEADER #1016  02014B50 (33639248)\n-6E65A3 Created Zip Spec      14 (20) '2.0'\n-6E65A4 Created OS            00 (0) 'MS-DOS'\n-6E65A5 Extract Zip Spec      14 (20) '2.0'\n-6E65A6 Extract OS            00 (0) 'MS-DOS'\n-6E65A7 General Purpose Flag  0000 (0)\n-6E65A9 Compression Method    0000 (0) 'Stored'\n-6E65AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E65AF CRC                   00000000 (0)\n-6E65B3 Compressed Size       00000000 (0)\n-6E65B7 Uncompressed Size     00000000 (0)\n-6E65BB Filename Length       0027 (39)\n-6E65BD Extra Length          0009 (9)\n-6E65BF Comment Length        0000 (0)\n-6E65C1 Disk Start            0000 (0)\n-6E65C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E65C5 Ext File Attributes   00000000 (0)\n-6E65C9 Local Header Offset   0037DBA0 (3660704)\n-6E65CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E65CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E65F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E65F6   Length              0005 (5)\n-6E65F8   Flags               01 (1) 'Modification'\n-6E65F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E65FD CENTRAL HEADER #1017  02014B50 (33639248)\n-6E6601 Created Zip Spec      14 (20) '2.0'\n-6E6602 Created OS            00 (0) 'MS-DOS'\n-6E6603 Extract Zip Spec      14 (20) '2.0'\n-6E6604 Extract OS            00 (0) 'MS-DOS'\n-6E6605 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6607 Compression Method    0000 (0) 'Stored'\n-6E6609 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E660D CRC                   CB41069C (3410036380)\n-6E6611 Compressed Size       00000A62 (2658)\n-6E6615 Uncompressed Size     00000A62 (2658)\n-6E6619 Filename Length       004D (77)\n-6E661B Extra Length          0009 (9)\n-6E661D Comment Length        0000 (0)\n-6E661F Disk Start            0000 (0)\n-6E6621 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6623 Ext File Attributes   00000000 (0)\n-6E6627 Local Header Offset   0037DBEE (3660782)\n-6E662B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E662B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6678 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E667A   Length              0005 (5)\n-6E667C   Flags               01 (1) 'Modification'\n-6E667D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6681 CENTRAL HEADER #1018  02014B50 (33639248)\n-6E6685 Created Zip Spec      14 (20) '2.0'\n-6E6686 Created OS            00 (0) 'MS-DOS'\n-6E6687 Extract Zip Spec      14 (20) '2.0'\n-6E6688 Extract OS            00 (0) 'MS-DOS'\n-6E6689 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E668B Compression Method    0000 (0) 'Stored'\n-6E668D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6691 CRC                   22C199A6 (583113126)\n-6E6695 Compressed Size       00000C25 (3109)\n-6E6699 Uncompressed Size     00000C25 (3109)\n-6E669D Filename Length       004D (77)\n-6E669F Extra Length          0009 (9)\n-6E66A1 Comment Length        0000 (0)\n-6E66A3 Disk Start            0000 (0)\n-6E66A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E66A7 Ext File Attributes   00000000 (0)\n-6E66AB Local Header Offset   0037E6D4 (3663572)\n-6E66AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E66AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E66FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E66FE   Length              0005 (5)\n-6E6700   Flags               01 (1) 'Modification'\n-6E6701   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6705 CENTRAL HEADER #1019  02014B50 (33639248)\n-6E6709 Created Zip Spec      14 (20) '2.0'\n-6E670A Created OS            00 (0) 'MS-DOS'\n-6E670B Extract Zip Spec      14 (20) '2.0'\n-6E670C Extract OS            00 (0) 'MS-DOS'\n-6E670D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E670F Compression Method    0000 (0) 'Stored'\n-6E6711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6715 CRC                   7440B75F (1950398303)\n-6E6719 Compressed Size       00000743 (1859)\n-6E671D Uncompressed Size     00000743 (1859)\n-6E6721 Filename Length       0058 (88)\n-6E6723 Extra Length          0009 (9)\n-6E6725 Comment Length        0000 (0)\n-6E6727 Disk Start            0000 (0)\n-6E6729 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E672B Ext File Attributes   00000000 (0)\n-6E672F Local Header Offset   0037F37D (3666813)\n-6E6733 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6733: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E678B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E678D   Length              0005 (5)\n-6E678F   Flags               01 (1) 'Modification'\n-6E6790   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6794 CENTRAL HEADER #1020  02014B50 (33639248)\n-6E6798 Created Zip Spec      14 (20) '2.0'\n-6E6799 Created OS            00 (0) 'MS-DOS'\n-6E679A Extract Zip Spec      14 (20) '2.0'\n-6E679B Extract OS            00 (0) 'MS-DOS'\n-6E679C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E679E Compression Method    0000 (0) 'Stored'\n-6E67A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E67A4 CRC                   D92B8674 (3643508340)\n-6E67A8 Compressed Size       00000EAC (3756)\n-6E67AC Uncompressed Size     00000EAC (3756)\n-6E67B0 Filename Length       0056 (86)\n-6E67B2 Extra Length          0009 (9)\n-6E67B4 Comment Length        0000 (0)\n-6E67B6 Disk Start            0000 (0)\n-6E67B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E67BA Ext File Attributes   00000000 (0)\n-6E67BE Local Header Offset   0037FB4F (3668815)\n-6E67C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E67C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6818 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E681A   Length              0005 (5)\n-6E681C   Flags               01 (1) 'Modification'\n-6E681D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6821 CENTRAL HEADER #1021  02014B50 (33639248)\n-6E6825 Created Zip Spec      14 (20) '2.0'\n-6E6826 Created OS            00 (0) 'MS-DOS'\n-6E6827 Extract Zip Spec      14 (20) '2.0'\n-6E6828 Extract OS            00 (0) 'MS-DOS'\n-6E6829 General Purpose Flag  0000 (0)\n-6E682B Compression Method    0000 (0) 'Stored'\n-6E682D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6831 CRC                   00000000 (0)\n-6E6835 Compressed Size       00000000 (0)\n-6E6839 Uncompressed Size     00000000 (0)\n-6E683D Filename Length       0032 (50)\n-6E683F Extra Length          0009 (9)\n-6E6841 Comment Length        0000 (0)\n-6E6843 Disk Start            0000 (0)\n-6E6845 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6847 Ext File Attributes   00000000 (0)\n-6E684B Local Header Offset   00380A88 (3672712)\n-6E684F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E684F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6881 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6883   Length              0005 (5)\n-6E6885   Flags               01 (1) 'Modification'\n-6E6886   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E688A CENTRAL HEADER #1022  02014B50 (33639248)\n-6E688E Created Zip Spec      14 (20) '2.0'\n-6E688F Created OS            00 (0) 'MS-DOS'\n-6E6890 Extract Zip Spec      14 (20) '2.0'\n-6E6891 Extract OS            00 (0) 'MS-DOS'\n-6E6892 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6894 Compression Method    0000 (0) 'Stored'\n-6E6896 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E689A CRC                   E1ADA7E4 (3786254308)\n-6E689E Compressed Size       00000A96 (2710)\n-6E68A2 Uncompressed Size     00000A96 (2710)\n-6E68A6 Filename Length       005A (90)\n-6E68A8 Extra Length          0009 (9)\n-6E68AA Comment Length        0000 (0)\n-6E68AC Disk Start            0000 (0)\n-6E68AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E68B0 Ext File Attributes   00000000 (0)\n-6E68B4 Local Header Offset   00380AE1 (3672801)\n-6E68B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E68B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6912 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6914   Length              0005 (5)\n-6E6916   Flags               01 (1) 'Modification'\n-6E6917   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E691B CENTRAL HEADER #1023  02014B50 (33639248)\n-6E691F Created Zip Spec      14 (20) '2.0'\n-6E6920 Created OS            00 (0) 'MS-DOS'\n-6E6921 Extract Zip Spec      14 (20) '2.0'\n-6E6922 Extract OS            00 (0) 'MS-DOS'\n-6E6923 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6925 Compression Method    0000 (0) 'Stored'\n-6E6927 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E692B CRC                   041B9E71 (68918897)\n-6E692F Compressed Size       00000ACF (2767)\n-6E6933 Uncompressed Size     00000ACF (2767)\n-6E6937 Filename Length       0049 (73)\n-6E6939 Extra Length          0009 (9)\n-6E693B Comment Length        0000 (0)\n-6E693D Disk Start            0000 (0)\n-6E693F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6941 Ext File Attributes   00000000 (0)\n-6E6945 Local Header Offset   00381608 (3675656)\n-6E6949 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6949: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6994   Length              0005 (5)\n-6E6996   Flags               01 (1) 'Modification'\n-6E6997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E699B CENTRAL HEADER #1024  02014B50 (33639248)\n-6E699F Created Zip Spec      14 (20) '2.0'\n-6E69A0 Created OS            00 (0) 'MS-DOS'\n-6E69A1 Extract Zip Spec      14 (20) '2.0'\n-6E69A2 Extract OS            00 (0) 'MS-DOS'\n-6E69A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E69A5 Compression Method    0000 (0) 'Stored'\n-6E69A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E69AB CRC                   9BFB49A5 (2616936869)\n-6E69AF Compressed Size       00001171 (4465)\n-6E69B3 Uncompressed Size     00001171 (4465)\n-6E69B7 Filename Length       0052 (82)\n-6E69B9 Extra Length          0009 (9)\n-6E69BB Comment Length        0000 (0)\n-6E69BD Disk Start            0000 (0)\n-6E69BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E69C1 Ext File Attributes   00000000 (0)\n-6E69C5 Local Header Offset   00382157 (3678551)\n-6E69C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E69C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6A1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6A1D   Length              0005 (5)\n-6E6A1F   Flags               01 (1) 'Modification'\n-6E6A20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6A24 CENTRAL HEADER #1025  02014B50 (33639248)\n-6E6A28 Created Zip Spec      14 (20) '2.0'\n-6E6A29 Created OS            00 (0) 'MS-DOS'\n-6E6A2A Extract Zip Spec      14 (20) '2.0'\n-6E6A2B Extract OS            00 (0) 'MS-DOS'\n-6E6A2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6A2E Compression Method    0000 (0) 'Stored'\n-6E6A30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6A34 CRC                   7378DDAE (1937300910)\n-6E6A38 Compressed Size       000012B5 (4789)\n-6E6A3C Uncompressed Size     000012B5 (4789)\n-6E6A40 Filename Length       004F (79)\n-6E6A42 Extra Length          0009 (9)\n-6E6A44 Comment Length        0000 (0)\n-6E6A46 Disk Start            0000 (0)\n-6E6A48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6A4A Ext File Attributes   00000000 (0)\n-6E6A4E Local Header Offset   00383351 (3683153)\n-6E6A52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6A52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6AA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6AA3   Length              0005 (5)\n-6E6AA5   Flags               01 (1) 'Modification'\n-6E6AA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6AAA CENTRAL HEADER #1026  02014B50 (33639248)\n-6E6AAE Created Zip Spec      14 (20) '2.0'\n-6E6AAF Created OS            00 (0) 'MS-DOS'\n-6E6AB0 Extract Zip Spec      14 (20) '2.0'\n-6E6AB1 Extract OS            00 (0) 'MS-DOS'\n-6E6AB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6AB4 Compression Method    0000 (0) 'Stored'\n-6E6AB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6ABA CRC                   AC9AB837 (2895820855)\n-6E6ABE Compressed Size       00000C64 (3172)\n-6E6AC2 Uncompressed Size     00000C64 (3172)\n-6E6AC6 Filename Length       0058 (88)\n-6E6AC8 Extra Length          0009 (9)\n-6E6ACA Comment Length        0000 (0)\n-6E6ACC Disk Start            0000 (0)\n-6E6ACE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6AD0 Ext File Attributes   00000000 (0)\n-6E6AD4 Local Header Offset   0038468C (3688076)\n-6E6AD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6AD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6B32   Length              0005 (5)\n-6E6B34   Flags               01 (1) 'Modification'\n-6E6B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6B39 CENTRAL HEADER #1027  02014B50 (33639248)\n-6E6B3D Created Zip Spec      14 (20) '2.0'\n-6E6B3E Created OS            00 (0) 'MS-DOS'\n-6E6B3F Extract Zip Spec      14 (20) '2.0'\n-6E6B40 Extract OS            00 (0) 'MS-DOS'\n-6E6B41 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6B43 Compression Method    0000 (0) 'Stored'\n-6E6B45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6B49 CRC                   D46003CA (3563062218)\n-6E6B4D Compressed Size       00000807 (2055)\n-6E6B51 Uncompressed Size     00000807 (2055)\n-6E6B55 Filename Length       0057 (87)\n-6E6B57 Extra Length          0009 (9)\n-6E6B59 Comment Length        0000 (0)\n-6E6B5B Disk Start            0000 (0)\n-6E6B5D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6B5F Ext File Attributes   00000000 (0)\n-6E6B63 Local Header Offset   0038537F (3691391)\n-6E6B67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6B67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6BBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6BC0   Length              0005 (5)\n-6E6BC2   Flags               01 (1) 'Modification'\n-6E6BC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6BC7 CENTRAL HEADER #1028  02014B50 (33639248)\n-6E6BCB Created Zip Spec      14 (20) '2.0'\n-6E6BCC Created OS            00 (0) 'MS-DOS'\n-6E6BCD Extract Zip Spec      14 (20) '2.0'\n-6E6BCE Extract OS            00 (0) 'MS-DOS'\n-6E6BCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6BD1 Compression Method    0000 (0) 'Stored'\n-6E6BD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6BD7 CRC                   93877211 (2475127313)\n-6E6BDB Compressed Size       00000B29 (2857)\n-6E6BDF Uncompressed Size     00000B29 (2857)\n-6E6BE3 Filename Length       0042 (66)\n-6E6BE5 Extra Length          0009 (9)\n-6E6BE7 Comment Length        0000 (0)\n-6E6BE9 Disk Start            0000 (0)\n-6E6BEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6BED Ext File Attributes   00000000 (0)\n-6E6BF1 Local Header Offset   00385C14 (3693588)\n-6E6BF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6BF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6C37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6C39   Length              0005 (5)\n-6E6C3B   Flags               01 (1) 'Modification'\n-6E6C3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6C40 CENTRAL HEADER #1029  02014B50 (33639248)\n-6E6C44 Created Zip Spec      14 (20) '2.0'\n-6E6C45 Created OS            00 (0) 'MS-DOS'\n-6E6C46 Extract Zip Spec      14 (20) '2.0'\n-6E6C47 Extract OS            00 (0) 'MS-DOS'\n-6E6C48 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6C4A Compression Method    0000 (0) 'Stored'\n-6E6C4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6C50 CRC                   7F0F87F2 (2131724274)\n-6E6C54 Compressed Size       00000D8D (3469)\n-6E6C58 Uncompressed Size     00000D8D (3469)\n-6E6C5C Filename Length       0048 (72)\n-6E6C5E Extra Length          0009 (9)\n-6E6C60 Comment Length        0000 (0)\n-6E6C62 Disk Start            0000 (0)\n-6E6C64 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6C66 Ext File Attributes   00000000 (0)\n-6E6C6A Local Header Offset   003867B6 (3696566)\n-6E6C6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6C6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6CB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6CB8   Length              0005 (5)\n-6E6CBA   Flags               01 (1) 'Modification'\n-6E6CBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6CBF CENTRAL HEADER #1030  02014B50 (33639248)\n-6E6CC3 Created Zip Spec      14 (20) '2.0'\n-6E6CC4 Created OS            00 (0) 'MS-DOS'\n-6E6CC5 Extract Zip Spec      14 (20) '2.0'\n-6E6CC6 Extract OS            00 (0) 'MS-DOS'\n-6E6CC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6CC9 Compression Method    0000 (0) 'Stored'\n-6E6CCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6CCF CRC                   0F98947D (261657725)\n-6E6CD3 Compressed Size       00000635 (1589)\n-6E6CD7 Uncompressed Size     00000635 (1589)\n-6E6CDB Filename Length       004B (75)\n-6E6CDD Extra Length          0009 (9)\n-6E6CDF Comment Length        0000 (0)\n-6E6CE1 Disk Start            0000 (0)\n-6E6CE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6CE5 Ext File Attributes   00000000 (0)\n-6E6CE9 Local Header Offset   003875C2 (3700162)\n-6E6CED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6CED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6D38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6D3A   Length              0005 (5)\n-6E6D3C   Flags               01 (1) 'Modification'\n-6E6D3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6D41 CENTRAL HEADER #1031  02014B50 (33639248)\n-6E6D45 Created Zip Spec      14 (20) '2.0'\n-6E6D46 Created OS            00 (0) 'MS-DOS'\n-6E6D47 Extract Zip Spec      14 (20) '2.0'\n-6E6D48 Extract OS            00 (0) 'MS-DOS'\n-6E6D49 General Purpose Flag  0000 (0)\n-6E6D4B Compression Method    0000 (0) 'Stored'\n-6E6D4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6D51 CRC                   00000000 (0)\n-6E6D55 Compressed Size       00000000 (0)\n-6E6D59 Uncompressed Size     00000000 (0)\n-6E6D5D Filename Length       002E (46)\n-6E6D5F Extra Length          0009 (9)\n-6E6D61 Comment Length        0000 (0)\n-6E6D63 Disk Start            0000 (0)\n-6E6D65 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6D67 Ext File Attributes   00000000 (0)\n-6E6D6B Local Header Offset   00387C79 (3701881)\n-6E6D6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6D6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6D9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6D9F   Length              0005 (5)\n-6E6DA1   Flags               01 (1) 'Modification'\n-6E6DA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6DA6 CENTRAL HEADER #1032  02014B50 (33639248)\n-6E6DAA Created Zip Spec      14 (20) '2.0'\n-6E6DAB Created OS            00 (0) 'MS-DOS'\n-6E6DAC Extract Zip Spec      14 (20) '2.0'\n-6E6DAD Extract OS            00 (0) 'MS-DOS'\n-6E6DAE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6DB0 Compression Method    0000 (0) 'Stored'\n-6E6DB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6DB6 CRC                   84EC925F (2230096479)\n-6E6DBA Compressed Size       00000975 (2421)\n-6E6DBE Uncompressed Size     00000975 (2421)\n-6E6DC2 Filename Length       004C (76)\n-6E6DC4 Extra Length          0009 (9)\n-6E6DC6 Comment Length        0000 (0)\n-6E6DC8 Disk Start            0000 (0)\n-6E6DCA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6DCC Ext File Attributes   00000000 (0)\n-6E6DD0 Local Header Offset   00387CCE (3701966)\n-6E6DD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6DD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6E20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6E22   Length              0005 (5)\n-6E6E24   Flags               01 (1) 'Modification'\n-6E6E25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6E29 CENTRAL HEADER #1033  02014B50 (33639248)\n-6E6E2D Created Zip Spec      14 (20) '2.0'\n-6E6E2E Created OS            00 (0) 'MS-DOS'\n-6E6E2F Extract Zip Spec      14 (20) '2.0'\n-6E6E30 Extract OS            00 (0) 'MS-DOS'\n-6E6E31 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6E33 Compression Method    0000 (0) 'Stored'\n-6E6E35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6E39 CRC                   32AC7879 (850163833)\n-6E6E3D Compressed Size       00000CD3 (3283)\n-6E6E41 Uncompressed Size     00000CD3 (3283)\n-6E6E45 Filename Length       0064 (100)\n-6E6E47 Extra Length          0009 (9)\n-6E6E49 Comment Length        0000 (0)\n-6E6E4B Disk Start            0000 (0)\n-6E6E4D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6E4F Ext File Attributes   00000000 (0)\n-6E6E53 Local Header Offset   003886C6 (3704518)\n-6E6E57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6E57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6EBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6EBD   Length              0005 (5)\n-6E6EBF   Flags               01 (1) 'Modification'\n-6E6EC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6EC4 CENTRAL HEADER #1034  02014B50 (33639248)\n-6E6EC8 Created Zip Spec      14 (20) '2.0'\n-6E6EC9 Created OS            00 (0) 'MS-DOS'\n-6E6ECA Extract Zip Spec      14 (20) '2.0'\n-6E6ECB Extract OS            00 (0) 'MS-DOS'\n-6E6ECC General Purpose Flag  0000 (0)\n-6E6ECE Compression Method    0000 (0) 'Stored'\n-6E6ED0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6ED4 CRC                   00000000 (0)\n-6E6ED8 Compressed Size       00000000 (0)\n-6E6EDC Uncompressed Size     00000000 (0)\n-6E6EE0 Filename Length       002D (45)\n-6E6EE2 Extra Length          0009 (9)\n-6E6EE4 Comment Length        0000 (0)\n-6E6EE6 Disk Start            0000 (0)\n-6E6EE8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6EEA Ext File Attributes   00000000 (0)\n-6E6EEE Local Header Offset   00389434 (3707956)\n-6E6EF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6EF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6F1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6F21   Length              0005 (5)\n-6E6F23   Flags               01 (1) 'Modification'\n-6E6F24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6F28 CENTRAL HEADER #1035  02014B50 (33639248)\n-6E6F2C Created Zip Spec      14 (20) '2.0'\n-6E6F2D Created OS            00 (0) 'MS-DOS'\n-6E6F2E Extract Zip Spec      14 (20) '2.0'\n-6E6F2F Extract OS            00 (0) 'MS-DOS'\n-6E6F30 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6F32 Compression Method    0000 (0) 'Stored'\n-6E6F34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6F38 CRC                   C7D55000 (3352645632)\n-6E6F3C Compressed Size       00000737 (1847)\n-6E6F40 Uncompressed Size     00000737 (1847)\n-6E6F44 Filename Length       004B (75)\n-6E6F46 Extra Length          0009 (9)\n-6E6F48 Comment Length        0000 (0)\n-6E6F4A Disk Start            0000 (0)\n-6E6F4C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6F4E Ext File Attributes   00000000 (0)\n-6E6F52 Local Header Offset   00389488 (3708040)\n-6E6F56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6F56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E6FA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E6FA3   Length              0005 (5)\n-6E6FA5   Flags               01 (1) 'Modification'\n-6E6FA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E6FAA CENTRAL HEADER #1036  02014B50 (33639248)\n-6E6FAE Created Zip Spec      14 (20) '2.0'\n-6E6FAF Created OS            00 (0) 'MS-DOS'\n-6E6FB0 Extract Zip Spec      14 (20) '2.0'\n-6E6FB1 Extract OS            00 (0) 'MS-DOS'\n-6E6FB2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E6FB4 Compression Method    0000 (0) 'Stored'\n-6E6FB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E6FBA CRC                   33FEB344 (872330052)\n-6E6FBE Compressed Size       00000736 (1846)\n-6E6FC2 Uncompressed Size     00000736 (1846)\n-6E6FC6 Filename Length       004B (75)\n-6E6FC8 Extra Length          0009 (9)\n-6E6FCA Comment Length        0000 (0)\n-6E6FCC Disk Start            0000 (0)\n-6E6FCE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E6FD0 Ext File Attributes   00000000 (0)\n-6E6FD4 Local Header Offset   00389C41 (3710017)\n-6E6FD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E6FD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7023 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7025   Length              0005 (5)\n-6E7027   Flags               01 (1) 'Modification'\n-6E7028   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E702C CENTRAL HEADER #1037  02014B50 (33639248)\n-6E7030 Created Zip Spec      14 (20) '2.0'\n-6E7031 Created OS            00 (0) 'MS-DOS'\n-6E7032 Extract Zip Spec      14 (20) '2.0'\n-6E7033 Extract OS            00 (0) 'MS-DOS'\n-6E7034 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7036 Compression Method    0000 (0) 'Stored'\n-6E7038 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E703C CRC                   BFF1DD26 (3220299046)\n-6E7040 Compressed Size       000006C6 (1734)\n-6E7044 Uncompressed Size     000006C6 (1734)\n-6E7048 Filename Length       004A (74)\n-6E704A Extra Length          0009 (9)\n-6E704C Comment Length        0000 (0)\n-6E704E Disk Start            0000 (0)\n-6E7050 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7052 Ext File Attributes   00000000 (0)\n-6E7056 Local Header Offset   0038A3F9 (3711993)\n-6E705A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E705A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E70A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E70A6   Length              0005 (5)\n-6E70A8   Flags               01 (1) 'Modification'\n-6E70A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E70AD CENTRAL HEADER #1038  02014B50 (33639248)\n-6E70B1 Created Zip Spec      14 (20) '2.0'\n-6E70B2 Created OS            00 (0) 'MS-DOS'\n-6E70B3 Extract Zip Spec      14 (20) '2.0'\n-6E70B4 Extract OS            00 (0) 'MS-DOS'\n-6E70B5 General Purpose Flag  0000 (0)\n-6E70B7 Compression Method    0000 (0) 'Stored'\n-6E70B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E70BD CRC                   00000000 (0)\n-6E70C1 Compressed Size       00000000 (0)\n-6E70C5 Uncompressed Size     00000000 (0)\n-6E70C9 Filename Length       0032 (50)\n-6E70CB Extra Length          0009 (9)\n-6E70CD Comment Length        0000 (0)\n-6E70CF Disk Start            0000 (0)\n-6E70D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E70D3 Ext File Attributes   00000000 (0)\n-6E70D7 Local Header Offset   0038AB40 (3713856)\n-6E70DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E70DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E710D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E710F   Length              0005 (5)\n-6E7111   Flags               01 (1) 'Modification'\n-6E7112   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7116 CENTRAL HEADER #1039  02014B50 (33639248)\n-6E711A Created Zip Spec      14 (20) '2.0'\n-6E711B Created OS            00 (0) 'MS-DOS'\n-6E711C Extract Zip Spec      14 (20) '2.0'\n-6E711D Extract OS            00 (0) 'MS-DOS'\n-6E711E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7120 Compression Method    0000 (0) 'Stored'\n-6E7122 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7126 CRC                   D7398AF1 (3610872561)\n-6E712A Compressed Size       00000940 (2368)\n-6E712E Uncompressed Size     00000940 (2368)\n-6E7132 Filename Length       0050 (80)\n-6E7134 Extra Length          0009 (9)\n-6E7136 Comment Length        0000 (0)\n-6E7138 Disk Start            0000 (0)\n-6E713A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E713C Ext File Attributes   00000000 (0)\n-6E7140 Local Header Offset   0038AB99 (3713945)\n-6E7144 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7144: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7196   Length              0005 (5)\n-6E7198   Flags               01 (1) 'Modification'\n-6E7199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E719D CENTRAL HEADER #1040  02014B50 (33639248)\n-6E71A1 Created Zip Spec      14 (20) '2.0'\n-6E71A2 Created OS            00 (0) 'MS-DOS'\n-6E71A3 Extract Zip Spec      14 (20) '2.0'\n-6E71A4 Extract OS            00 (0) 'MS-DOS'\n-6E71A5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E71A7 Compression Method    0000 (0) 'Stored'\n-6E71A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E71AD CRC                   85DF07D4 (2245986260)\n-6E71B1 Compressed Size       000007AB (1963)\n-6E71B5 Uncompressed Size     000007AB (1963)\n-6E71B9 Filename Length       004F (79)\n-6E71BB Extra Length          0009 (9)\n-6E71BD Comment Length        0000 (0)\n-6E71BF Disk Start            0000 (0)\n-6E71C1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E71C3 Ext File Attributes   00000000 (0)\n-6E71C7 Local Header Offset   0038B560 (3716448)\n-6E71CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E71CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E721A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E721C   Length              0005 (5)\n-6E721E   Flags               01 (1) 'Modification'\n-6E721F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7223 CENTRAL HEADER #1041  02014B50 (33639248)\n-6E7227 Created Zip Spec      14 (20) '2.0'\n-6E7228 Created OS            00 (0) 'MS-DOS'\n-6E7229 Extract Zip Spec      14 (20) '2.0'\n-6E722A Extract OS            00 (0) 'MS-DOS'\n-6E722B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E722D Compression Method    0000 (0) 'Stored'\n-6E722F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7233 CRC                   59514F7F (1498500991)\n-6E7237 Compressed Size       0000088D (2189)\n-6E723B Uncompressed Size     0000088D (2189)\n-6E723F Filename Length       0048 (72)\n-6E7241 Extra Length          0009 (9)\n-6E7243 Comment Length        0000 (0)\n-6E7245 Disk Start            0000 (0)\n-6E7247 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7249 Ext File Attributes   00000000 (0)\n-6E724D Local Header Offset   0038BD91 (3718545)\n-6E7251 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7251: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7299 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E729B   Length              0005 (5)\n-6E729D   Flags               01 (1) 'Modification'\n-6E729E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E72A2 CENTRAL HEADER #1042  02014B50 (33639248)\n-6E72A6 Created Zip Spec      14 (20) '2.0'\n-6E72A7 Created OS            00 (0) 'MS-DOS'\n-6E72A8 Extract Zip Spec      14 (20) '2.0'\n-6E72A9 Extract OS            00 (0) 'MS-DOS'\n-6E72AA General Purpose Flag  0000 (0)\n-6E72AC Compression Method    0000 (0) 'Stored'\n-6E72AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E72B2 CRC                   00000000 (0)\n-6E72B6 Compressed Size       00000000 (0)\n-6E72BA Uncompressed Size     00000000 (0)\n-6E72BE Filename Length       0029 (41)\n-6E72C0 Extra Length          0009 (9)\n-6E72C2 Comment Length        0000 (0)\n-6E72C4 Disk Start            0000 (0)\n-6E72C6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E72C8 Ext File Attributes   00000000 (0)\n-6E72CC Local Header Offset   0038C69D (3720861)\n-6E72D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E72D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E72F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E72FB   Length              0005 (5)\n-6E72FD   Flags               01 (1) 'Modification'\n-6E72FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7302 CENTRAL HEADER #1043  02014B50 (33639248)\n-6E7306 Created Zip Spec      14 (20) '2.0'\n-6E7307 Created OS            00 (0) 'MS-DOS'\n-6E7308 Extract Zip Spec      14 (20) '2.0'\n-6E7309 Extract OS            00 (0) 'MS-DOS'\n-6E730A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E730C Compression Method    0000 (0) 'Stored'\n-6E730E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7312 CRC                   EFF8B6F4 (4026054388)\n-6E7316 Compressed Size       00000B2E (2862)\n-6E731A Uncompressed Size     00000B2E (2862)\n-6E731E Filename Length       0044 (68)\n-6E7320 Extra Length          0009 (9)\n-6E7322 Comment Length        0000 (0)\n-6E7324 Disk Start            0000 (0)\n-6E7326 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7328 Ext File Attributes   00000000 (0)\n-6E732C Local Header Offset   0038C6ED (3720941)\n-6E7330 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7330: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7376   Length              0005 (5)\n-6E7378   Flags               01 (1) 'Modification'\n-6E7379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E737D CENTRAL HEADER #1044  02014B50 (33639248)\n-6E7381 Created Zip Spec      14 (20) '2.0'\n-6E7382 Created OS            00 (0) 'MS-DOS'\n-6E7383 Extract Zip Spec      14 (20) '2.0'\n-6E7384 Extract OS            00 (0) 'MS-DOS'\n-6E7385 General Purpose Flag  0000 (0)\n-6E7387 Compression Method    0000 (0) 'Stored'\n-6E7389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E738D CRC                   00000000 (0)\n-6E7391 Compressed Size       00000000 (0)\n-6E7395 Uncompressed Size     00000000 (0)\n-6E7399 Filename Length       0026 (38)\n-6E739B Extra Length          0009 (9)\n-6E739D Comment Length        0000 (0)\n-6E739F Disk Start            0000 (0)\n-6E73A1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E73A3 Ext File Attributes   00000000 (0)\n-6E73A7 Local Header Offset   0038D296 (3723926)\n-6E73AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E73AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E73D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E73D3   Length              0005 (5)\n-6E73D5   Flags               01 (1) 'Modification'\n-6E73D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E73DA CENTRAL HEADER #1045  02014B50 (33639248)\n-6E73DE Created Zip Spec      14 (20) '2.0'\n-6E73DF Created OS            00 (0) 'MS-DOS'\n-6E73E0 Extract Zip Spec      14 (20) '2.0'\n-6E73E1 Extract OS            00 (0) 'MS-DOS'\n-6E73E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E73E4 Compression Method    0000 (0) 'Stored'\n-6E73E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E73EA CRC                   E6EC6DE5 (3874254309)\n-6E73EE Compressed Size       00000B52 (2898)\n-6E73F2 Uncompressed Size     00000B52 (2898)\n-6E73F6 Filename Length       0049 (73)\n-6E73F8 Extra Length          0009 (9)\n-6E73FA Comment Length        0000 (0)\n-6E73FC Disk Start            0000 (0)\n-6E73FE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7400 Ext File Attributes   00000000 (0)\n-6E7404 Local Header Offset   0038D2E3 (3724003)\n-6E7408 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7408: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7451 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7453   Length              0005 (5)\n-6E7455   Flags               01 (1) 'Modification'\n-6E7456   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E745A CENTRAL HEADER #1046  02014B50 (33639248)\n-6E745E Created Zip Spec      14 (20) '2.0'\n-6E745F Created OS            00 (0) 'MS-DOS'\n-6E7460 Extract Zip Spec      14 (20) '2.0'\n-6E7461 Extract OS            00 (0) 'MS-DOS'\n-6E7462 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7464 Compression Method    0000 (0) 'Stored'\n-6E7466 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E746A CRC                   6DDE9A21 (1843304993)\n-6E746E Compressed Size       0000580E (22542)\n-6E7472 Uncompressed Size     0000580E (22542)\n-6E7476 Filename Length       0044 (68)\n-6E7478 Extra Length          0009 (9)\n-6E747A Comment Length        0000 (0)\n-6E747C Disk Start            0000 (0)\n-6E747E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7480 Ext File Attributes   00000000 (0)\n-6E7484 Local Header Offset   0038DEB5 (3727029)\n-6E7488 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7488: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E74CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E74CE   Length              0005 (5)\n-6E74D0   Flags               01 (1) 'Modification'\n-6E74D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E74D5 CENTRAL HEADER #1047  02014B50 (33639248)\n-6E74D9 Created Zip Spec      14 (20) '2.0'\n-6E74DA Created OS            00 (0) 'MS-DOS'\n-6E74DB Extract Zip Spec      14 (20) '2.0'\n-6E74DC Extract OS            00 (0) 'MS-DOS'\n-6E74DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E74DF Compression Method    0000 (0) 'Stored'\n-6E74E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E74E5 CRC                   FDDFE0B7 (4259307703)\n-6E74E9 Compressed Size       0000138F (5007)\n-6E74ED Uncompressed Size     0000138F (5007)\n-6E74F1 Filename Length       0040 (64)\n-6E74F3 Extra Length          0009 (9)\n-6E74F5 Comment Length        0000 (0)\n-6E74F7 Disk Start            0000 (0)\n-6E74F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E74FB Ext File Attributes   00000000 (0)\n-6E74FF Local Header Offset   0039373E (3749694)\n-6E7503 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7503: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7543 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7545   Length              0005 (5)\n-6E7547   Flags               01 (1) 'Modification'\n-6E7548   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E754C CENTRAL HEADER #1048  02014B50 (33639248)\n-6E7550 Created Zip Spec      14 (20) '2.0'\n-6E7551 Created OS            00 (0) 'MS-DOS'\n-6E7552 Extract Zip Spec      14 (20) '2.0'\n-6E7553 Extract OS            00 (0) 'MS-DOS'\n-6E7554 General Purpose Flag  0000 (0)\n-6E7556 Compression Method    0000 (0) 'Stored'\n-6E7558 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E755C CRC                   00000000 (0)\n-6E7560 Compressed Size       00000000 (0)\n-6E7564 Uncompressed Size     00000000 (0)\n-6E7568 Filename Length       0026 (38)\n-6E756A Extra Length          0009 (9)\n-6E756C Comment Length        0000 (0)\n-6E756E Disk Start            0000 (0)\n-6E7570 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7572 Ext File Attributes   00000000 (0)\n-6E7576 Local Header Offset   00394B44 (3754820)\n-6E757A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E757A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E75A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E75A2   Length              0005 (5)\n-6E75A4   Flags               01 (1) 'Modification'\n-6E75A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E75A9 CENTRAL HEADER #1049  02014B50 (33639248)\n-6E75AD Created Zip Spec      14 (20) '2.0'\n-6E75AE Created OS            00 (0) 'MS-DOS'\n-6E75AF Extract Zip Spec      14 (20) '2.0'\n-6E75B0 Extract OS            00 (0) 'MS-DOS'\n-6E75B1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E75B3 Compression Method    0000 (0) 'Stored'\n-6E75B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E75B9 CRC                   263FC442 (641713218)\n-6E75BD Compressed Size       00000D56 (3414)\n-6E75C1 Uncompressed Size     00000D56 (3414)\n-6E75C5 Filename Length       0042 (66)\n-6E75C7 Extra Length          0009 (9)\n-6E75C9 Comment Length        0000 (0)\n-6E75CB Disk Start            0000 (0)\n-6E75CD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E75CF Ext File Attributes   00000000 (0)\n-6E75D3 Local Header Offset   00394B91 (3754897)\n-6E75D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E75D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7619 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E761B   Length              0005 (5)\n-6E761D   Flags               01 (1) 'Modification'\n-6E761E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7622 CENTRAL HEADER #1050  02014B50 (33639248)\n-6E7626 Created Zip Spec      14 (20) '2.0'\n-6E7627 Created OS            00 (0) 'MS-DOS'\n-6E7628 Extract Zip Spec      14 (20) '2.0'\n-6E7629 Extract OS            00 (0) 'MS-DOS'\n-6E762A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E762C Compression Method    0000 (0) 'Stored'\n-6E762E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7632 CRC                   8F184A91 (2400733841)\n-6E7636 Compressed Size       00000E6C (3692)\n-6E763A Uncompressed Size     00000E6C (3692)\n-6E763E Filename Length       003E (62)\n-6E7640 Extra Length          0009 (9)\n-6E7642 Comment Length        0000 (0)\n-6E7644 Disk Start            0000 (0)\n-6E7646 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7648 Ext File Attributes   00000000 (0)\n-6E764C Local Header Offset   00395960 (3758432)\n-6E7650 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7650: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E768E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7690   Length              0005 (5)\n-6E7692   Flags               01 (1) 'Modification'\n-6E7693   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7697 CENTRAL HEADER #1051  02014B50 (33639248)\n-6E769B Created Zip Spec      14 (20) '2.0'\n-6E769C Created OS            00 (0) 'MS-DOS'\n-6E769D Extract Zip Spec      14 (20) '2.0'\n-6E769E Extract OS            00 (0) 'MS-DOS'\n-6E769F General Purpose Flag  0000 (0)\n-6E76A1 Compression Method    0000 (0) 'Stored'\n-6E76A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E76A7 CRC                   00000000 (0)\n-6E76AB Compressed Size       00000000 (0)\n-6E76AF Uncompressed Size     00000000 (0)\n-6E76B3 Filename Length       0024 (36)\n-6E76B5 Extra Length          0009 (9)\n-6E76B7 Comment Length        0000 (0)\n-6E76B9 Disk Start            0000 (0)\n-6E76BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E76BD Ext File Attributes   00000000 (0)\n-6E76C1 Local Header Offset   00396841 (3762241)\n-6E76C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E76C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E76E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E76EB   Length              0005 (5)\n-6E76ED   Flags               01 (1) 'Modification'\n-6E76EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E76F2 CENTRAL HEADER #1052  02014B50 (33639248)\n-6E76F6 Created Zip Spec      14 (20) '2.0'\n-6E76F7 Created OS            00 (0) 'MS-DOS'\n-6E76F8 Extract Zip Spec      14 (20) '2.0'\n-6E76F9 Extract OS            00 (0) 'MS-DOS'\n-6E76FA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E76FC Compression Method    0000 (0) 'Stored'\n-6E76FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7702 CRC                   B14D8B82 (2974649218)\n-6E7706 Compressed Size       000018C2 (6338)\n-6E770A Uncompressed Size     000018C2 (6338)\n-6E770E Filename Length       003D (61)\n-6E7710 Extra Length          0009 (9)\n-6E7712 Comment Length        0000 (0)\n-6E7714 Disk Start            0000 (0)\n-6E7716 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7718 Ext File Attributes   00000000 (0)\n-6E771C Local Header Offset   0039688C (3762316)\n-6E7720 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7720: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E775D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E775F   Length              0005 (5)\n-6E7761   Flags               01 (1) 'Modification'\n-6E7762   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7766 CENTRAL HEADER #1053  02014B50 (33639248)\n-6E776A Created Zip Spec      14 (20) '2.0'\n-6E776B Created OS            00 (0) 'MS-DOS'\n-6E776C Extract Zip Spec      14 (20) '2.0'\n-6E776D Extract OS            00 (0) 'MS-DOS'\n-6E776E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7770 Compression Method    0000 (0) 'Stored'\n-6E7772 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7776 CRC                   0414302F (68431919)\n-6E777A Compressed Size       00001C89 (7305)\n-6E777E Uncompressed Size     00001C89 (7305)\n-6E7782 Filename Length       0037 (55)\n-6E7784 Extra Length          0009 (9)\n-6E7786 Comment Length        0000 (0)\n-6E7788 Disk Start            0000 (0)\n-6E778A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E778C Ext File Attributes   00000000 (0)\n-6E7790 Local Header Offset   003981C2 (3768770)\n-6E7794 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7794: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E77CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E77CD   Length              0005 (5)\n-6E77CF   Flags               01 (1) 'Modification'\n-6E77D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E77D4 CENTRAL HEADER #1054  02014B50 (33639248)\n-6E77D8 Created Zip Spec      14 (20) '2.0'\n-6E77D9 Created OS            00 (0) 'MS-DOS'\n-6E77DA Extract Zip Spec      14 (20) '2.0'\n-6E77DB Extract OS            00 (0) 'MS-DOS'\n-6E77DC General Purpose Flag  0000 (0)\n-6E77DE Compression Method    0000 (0) 'Stored'\n-6E77E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E77E4 CRC                   00000000 (0)\n-6E77E8 Compressed Size       00000000 (0)\n-6E77EC Uncompressed Size     00000000 (0)\n-6E77F0 Filename Length       0020 (32)\n-6E77F2 Extra Length          0009 (9)\n-6E77F4 Comment Length        0000 (0)\n-6E77F6 Disk Start            0000 (0)\n-6E77F8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E77FA Ext File Attributes   00000000 (0)\n-6E77FE Local Header Offset   00399EB9 (3776185)\n-6E7802 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7802: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7822 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7824   Length              0005 (5)\n-6E7826   Flags               01 (1) 'Modification'\n-6E7827   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E782B CENTRAL HEADER #1055  02014B50 (33639248)\n-6E782F Created Zip Spec      14 (20) '2.0'\n-6E7830 Created OS            00 (0) 'MS-DOS'\n-6E7831 Extract Zip Spec      14 (20) '2.0'\n-6E7832 Extract OS            00 (0) 'MS-DOS'\n-6E7833 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7835 Compression Method    0000 (0) 'Stored'\n-6E7837 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E783B CRC                   9409E400 (2483676160)\n-6E783F Compressed Size       000007F6 (2038)\n-6E7843 Uncompressed Size     000007F6 (2038)\n-6E7847 Filename Length       002E (46)\n-6E7849 Extra Length          0009 (9)\n-6E784B Comment Length        0000 (0)\n-6E784D Disk Start            0000 (0)\n-6E784F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7851 Ext File Attributes   00000000 (0)\n-6E7855 Local Header Offset   00399F00 (3776256)\n-6E7859 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7859: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7887 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7889   Length              0005 (5)\n-6E788B   Flags               01 (1) 'Modification'\n-6E788C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7890 CENTRAL HEADER #1056  02014B50 (33639248)\n-6E7894 Created Zip Spec      14 (20) '2.0'\n-6E7895 Created OS            00 (0) 'MS-DOS'\n-6E7896 Extract Zip Spec      14 (20) '2.0'\n-6E7897 Extract OS            00 (0) 'MS-DOS'\n-6E7898 General Purpose Flag  0000 (0)\n-6E789A Compression Method    0000 (0) 'Stored'\n-6E789C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E78A0 CRC                   00000000 (0)\n-6E78A4 Compressed Size       00000000 (0)\n-6E78A8 Uncompressed Size     00000000 (0)\n-6E78AC Filename Length       001E (30)\n-6E78AE Extra Length          0009 (9)\n-6E78B0 Comment Length        0000 (0)\n-6E78B2 Disk Start            0000 (0)\n-6E78B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E78B6 Ext File Attributes   00000000 (0)\n-6E78BA Local Header Offset   0039A75B (3778395)\n-6E78BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E78BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E78DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E78DE   Length              0005 (5)\n-6E78E0   Flags               01 (1) 'Modification'\n-6E78E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E78E5 CENTRAL HEADER #1057  02014B50 (33639248)\n-6E78E9 Created Zip Spec      14 (20) '2.0'\n-6E78EA Created OS            00 (0) 'MS-DOS'\n-6E78EB Extract Zip Spec      14 (20) '2.0'\n-6E78EC Extract OS            00 (0) 'MS-DOS'\n-6E78ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E78EF Compression Method    0000 (0) 'Stored'\n-6E78F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E78F5 CRC                   CE83BFB8 (3464740792)\n-6E78F9 Compressed Size       00007356 (29526)\n-6E78FD Uncompressed Size     00007356 (29526)\n-6E7901 Filename Length       0038 (56)\n-6E7903 Extra Length          0009 (9)\n-6E7905 Comment Length        0000 (0)\n-6E7907 Disk Start            0000 (0)\n-6E7909 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E790B Ext File Attributes   00000000 (0)\n-6E790F Local Header Offset   0039A7A0 (3778464)\n-6E7913 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7913: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E794B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E794D   Length              0005 (5)\n-6E794F   Flags               01 (1) 'Modification'\n-6E7950   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7954 CENTRAL HEADER #1058  02014B50 (33639248)\n-6E7958 Created Zip Spec      14 (20) '2.0'\n-6E7959 Created OS            00 (0) 'MS-DOS'\n-6E795A Extract Zip Spec      14 (20) '2.0'\n-6E795B Extract OS            00 (0) 'MS-DOS'\n-6E795C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E795E Compression Method    0000 (0) 'Stored'\n-6E7960 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7964 CRC                   B659AACE (3059329742)\n-6E7968 Compressed Size       0000227D (8829)\n-6E796C Uncompressed Size     0000227D (8829)\n-6E7970 Filename Length       0037 (55)\n-6E7972 Extra Length          0009 (9)\n-6E7974 Comment Length        0000 (0)\n-6E7976 Disk Start            0000 (0)\n-6E7978 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E797A Ext File Attributes   00000000 (0)\n-6E797E Local Header Offset   003A1B65 (3808101)\n-6E7982 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7982: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E79B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E79BB   Length              0005 (5)\n-6E79BD   Flags               01 (1) 'Modification'\n-6E79BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E79C2 CENTRAL HEADER #1059  02014B50 (33639248)\n-6E79C6 Created Zip Spec      14 (20) '2.0'\n-6E79C7 Created OS            00 (0) 'MS-DOS'\n-6E79C8 Extract Zip Spec      14 (20) '2.0'\n-6E79C9 Extract OS            00 (0) 'MS-DOS'\n-6E79CA General Purpose Flag  0000 (0)\n-6E79CC Compression Method    0000 (0) 'Stored'\n-6E79CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E79D2 CRC                   00000000 (0)\n-6E79D6 Compressed Size       00000000 (0)\n-6E79DA Uncompressed Size     00000000 (0)\n-6E79DE Filename Length       001E (30)\n-6E79E0 Extra Length          0009 (9)\n-6E79E2 Comment Length        0000 (0)\n-6E79E4 Disk Start            0000 (0)\n-6E79E6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E79E8 Ext File Attributes   00000000 (0)\n-6E79EC Local Header Offset   003A3E50 (3817040)\n-6E79F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E79F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7A0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7A10   Length              0005 (5)\n-6E7A12   Flags               01 (1) 'Modification'\n-6E7A13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7A17 CENTRAL HEADER #1060  02014B50 (33639248)\n-6E7A1B Created Zip Spec      14 (20) '2.0'\n-6E7A1C Created OS            00 (0) 'MS-DOS'\n-6E7A1D Extract Zip Spec      14 (20) '2.0'\n-6E7A1E Extract OS            00 (0) 'MS-DOS'\n-6E7A1F General Purpose Flag  0000 (0)\n-6E7A21 Compression Method    0000 (0) 'Stored'\n-6E7A23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7A27 CRC                   00000000 (0)\n-6E7A2B Compressed Size       00000000 (0)\n-6E7A2F Uncompressed Size     00000000 (0)\n-6E7A33 Filename Length       0025 (37)\n-6E7A35 Extra Length          0009 (9)\n-6E7A37 Comment Length        0000 (0)\n-6E7A39 Disk Start            0000 (0)\n-6E7A3B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7A3D Ext File Attributes   00000000 (0)\n-6E7A41 Local Header Offset   003A3E95 (3817109)\n-6E7A45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7A45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7A6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7A6C   Length              0005 (5)\n-6E7A6E   Flags               01 (1) 'Modification'\n-6E7A6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7A73 CENTRAL HEADER #1061  02014B50 (33639248)\n-6E7A77 Created Zip Spec      14 (20) '2.0'\n-6E7A78 Created OS            00 (0) 'MS-DOS'\n-6E7A79 Extract Zip Spec      14 (20) '2.0'\n-6E7A7A Extract OS            00 (0) 'MS-DOS'\n-6E7A7B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7A7D Compression Method    0000 (0) 'Stored'\n-6E7A7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7A83 CRC                   52CF3DD1 (1389313489)\n-6E7A87 Compressed Size       00001AE7 (6887)\n-6E7A8B Uncompressed Size     00001AE7 (6887)\n-6E7A8F Filename Length       0044 (68)\n-6E7A91 Extra Length          0009 (9)\n-6E7A93 Comment Length        0000 (0)\n-6E7A95 Disk Start            0000 (0)\n-6E7A97 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7A99 Ext File Attributes   00000000 (0)\n-6E7A9D Local Header Offset   003A3EE1 (3817185)\n-6E7AA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7AA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7AE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7AE7   Length              0005 (5)\n-6E7AE9   Flags               01 (1) 'Modification'\n-6E7AEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7AEE CENTRAL HEADER #1062  02014B50 (33639248)\n-6E7AF2 Created Zip Spec      14 (20) '2.0'\n-6E7AF3 Created OS            00 (0) 'MS-DOS'\n-6E7AF4 Extract Zip Spec      14 (20) '2.0'\n-6E7AF5 Extract OS            00 (0) 'MS-DOS'\n-6E7AF6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7AF8 Compression Method    0000 (0) 'Stored'\n-6E7AFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7AFE CRC                   350D1F44 (890052420)\n-6E7B02 Compressed Size       00000534 (1332)\n-6E7B06 Uncompressed Size     00000534 (1332)\n-6E7B0A Filename Length       004B (75)\n-6E7B0C Extra Length          0009 (9)\n-6E7B0E Comment Length        0000 (0)\n-6E7B10 Disk Start            0000 (0)\n-6E7B12 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7B14 Ext File Attributes   00000000 (0)\n-6E7B18 Local Header Offset   003A5A43 (3824195)\n-6E7B1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7B1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7B67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7B69   Length              0005 (5)\n-6E7B6B   Flags               01 (1) 'Modification'\n-6E7B6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7B70 CENTRAL HEADER #1063  02014B50 (33639248)\n-6E7B74 Created Zip Spec      14 (20) '2.0'\n-6E7B75 Created OS            00 (0) 'MS-DOS'\n-6E7B76 Extract Zip Spec      14 (20) '2.0'\n-6E7B77 Extract OS            00 (0) 'MS-DOS'\n-6E7B78 General Purpose Flag  0000 (0)\n-6E7B7A Compression Method    0000 (0) 'Stored'\n-6E7B7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7B80 CRC                   00000000 (0)\n-6E7B84 Compressed Size       00000000 (0)\n-6E7B88 Uncompressed Size     00000000 (0)\n-6E7B8C Filename Length       0026 (38)\n-6E7B8E Extra Length          0009 (9)\n-6E7B90 Comment Length        0000 (0)\n-6E7B92 Disk Start            0000 (0)\n-6E7B94 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7B96 Ext File Attributes   00000000 (0)\n-6E7B9A Local Header Offset   003A5FF9 (3825657)\n-6E7B9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7B9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7BC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7BC6   Length              0005 (5)\n-6E7BC8   Flags               01 (1) 'Modification'\n-6E7BC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7BCD CENTRAL HEADER #1064  02014B50 (33639248)\n-6E7BD1 Created Zip Spec      14 (20) '2.0'\n-6E7BD2 Created OS            00 (0) 'MS-DOS'\n-6E7BD3 Extract Zip Spec      14 (20) '2.0'\n-6E7BD4 Extract OS            00 (0) 'MS-DOS'\n-6E7BD5 General Purpose Flag  0000 (0)\n-6E7BD7 Compression Method    0000 (0) 'Stored'\n-6E7BD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7BDD CRC                   00000000 (0)\n-6E7BE1 Compressed Size       00000000 (0)\n-6E7BE5 Uncompressed Size     00000000 (0)\n-6E7BE9 Filename Length       002D (45)\n-6E7BEB Extra Length          0009 (9)\n-6E7BED Comment Length        0000 (0)\n-6E7BEF Disk Start            0000 (0)\n-6E7BF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7BF3 Ext File Attributes   00000000 (0)\n-6E7BF7 Local Header Offset   003A6046 (3825734)\n-6E7BFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7BFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7C28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7C2A   Length              0005 (5)\n-6E7C2C   Flags               01 (1) 'Modification'\n-6E7C2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7C31 CENTRAL HEADER #1065  02014B50 (33639248)\n-6E7C35 Created Zip Spec      14 (20) '2.0'\n-6E7C36 Created OS            00 (0) 'MS-DOS'\n-6E7C37 Extract Zip Spec      14 (20) '2.0'\n-6E7C38 Extract OS            00 (0) 'MS-DOS'\n-6E7C39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7C3B Compression Method    0000 (0) 'Stored'\n-6E7C3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7C41 CRC                   52ECC716 (1391249174)\n-6E7C45 Compressed Size       00002E2A (11818)\n-6E7C49 Uncompressed Size     00002E2A (11818)\n-6E7C4D Filename Length       004C (76)\n-6E7C4F Extra Length          0009 (9)\n-6E7C51 Comment Length        0000 (0)\n-6E7C53 Disk Start            0000 (0)\n-6E7C55 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7C57 Ext File Attributes   00000000 (0)\n-6E7C5B Local Header Offset   003A609A (3825818)\n-6E7C5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7C5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7CAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7CAD   Length              0005 (5)\n-6E7CAF   Flags               01 (1) 'Modification'\n-6E7CB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7CB4 CENTRAL HEADER #1066  02014B50 (33639248)\n-6E7CB8 Created Zip Spec      14 (20) '2.0'\n-6E7CB9 Created OS            00 (0) 'MS-DOS'\n-6E7CBA Extract Zip Spec      14 (20) '2.0'\n-6E7CBB Extract OS            00 (0) 'MS-DOS'\n-6E7CBC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7CBE Compression Method    0000 (0) 'Stored'\n-6E7CC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7CC4 CRC                   BB1FB1EA (3139416554)\n-6E7CC8 Compressed Size       0000051A (1306)\n-6E7CCC Uncompressed Size     0000051A (1306)\n-6E7CD0 Filename Length       0053 (83)\n-6E7CD2 Extra Length          0009 (9)\n-6E7CD4 Comment Length        0000 (0)\n-6E7CD6 Disk Start            0000 (0)\n-6E7CD8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7CDA Ext File Attributes   00000000 (0)\n-6E7CDE Local Header Offset   003A8F47 (3837767)\n-6E7CE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7CE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7D35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7D37   Length              0005 (5)\n-6E7D39   Flags               01 (1) 'Modification'\n-6E7D3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7D3E CENTRAL HEADER #1067  02014B50 (33639248)\n-6E7D42 Created Zip Spec      14 (20) '2.0'\n-6E7D43 Created OS            00 (0) 'MS-DOS'\n-6E7D44 Extract Zip Spec      14 (20) '2.0'\n-6E7D45 Extract OS            00 (0) 'MS-DOS'\n-6E7D46 General Purpose Flag  0000 (0)\n-6E7D48 Compression Method    0000 (0) 'Stored'\n-6E7D4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7D4E CRC                   00000000 (0)\n-6E7D52 Compressed Size       00000000 (0)\n-6E7D56 Uncompressed Size     00000000 (0)\n-6E7D5A Filename Length       002B (43)\n-6E7D5C Extra Length          0009 (9)\n-6E7D5E Comment Length        0000 (0)\n-6E7D60 Disk Start            0000 (0)\n-6E7D62 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7D64 Ext File Attributes   00000000 (0)\n-6E7D68 Local Header Offset   003A94EB (3839211)\n-6E7D6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7D6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7D97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7D99   Length              0005 (5)\n-6E7D9B   Flags               01 (1) 'Modification'\n-6E7D9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7DA0 CENTRAL HEADER #1068  02014B50 (33639248)\n-6E7DA4 Created Zip Spec      14 (20) '2.0'\n-6E7DA5 Created OS            00 (0) 'MS-DOS'\n-6E7DA6 Extract Zip Spec      14 (20) '2.0'\n-6E7DA7 Extract OS            00 (0) 'MS-DOS'\n-6E7DA8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7DAA Compression Method    0000 (0) 'Stored'\n-6E7DAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7DB0 CRC                   F0553B98 (4032117656)\n-6E7DB4 Compressed Size       00001B8F (7055)\n-6E7DB8 Uncompressed Size     00001B8F (7055)\n-6E7DBC Filename Length       0048 (72)\n-6E7DBE Extra Length          0009 (9)\n-6E7DC0 Comment Length        0000 (0)\n-6E7DC2 Disk Start            0000 (0)\n-6E7DC4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7DC6 Ext File Attributes   00000000 (0)\n-6E7DCA Local Header Offset   003A953D (3839293)\n-6E7DCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7DCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7E16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7E18   Length              0005 (5)\n-6E7E1A   Flags               01 (1) 'Modification'\n-6E7E1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7E1F CENTRAL HEADER #1069  02014B50 (33639248)\n-6E7E23 Created Zip Spec      14 (20) '2.0'\n-6E7E24 Created OS            00 (0) 'MS-DOS'\n-6E7E25 Extract Zip Spec      14 (20) '2.0'\n-6E7E26 Extract OS            00 (0) 'MS-DOS'\n-6E7E27 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7E29 Compression Method    0000 (0) 'Stored'\n-6E7E2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7E2F CRC                   D59518E0 (3583318240)\n-6E7E33 Compressed Size       0000055D (1373)\n-6E7E37 Uncompressed Size     0000055D (1373)\n-6E7E3B Filename Length       004F (79)\n-6E7E3D Extra Length          0009 (9)\n-6E7E3F Comment Length        0000 (0)\n-6E7E41 Disk Start            0000 (0)\n-6E7E43 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7E45 Ext File Attributes   00000000 (0)\n-6E7E49 Local Header Offset   003AB14B (3846475)\n-6E7E4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7E4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7E9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7E9E   Length              0005 (5)\n-6E7EA0   Flags               01 (1) 'Modification'\n-6E7EA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7EA5 CENTRAL HEADER #1070  02014B50 (33639248)\n-6E7EA9 Created Zip Spec      14 (20) '2.0'\n-6E7EAA Created OS            00 (0) 'MS-DOS'\n-6E7EAB Extract Zip Spec      14 (20) '2.0'\n-6E7EAC Extract OS            00 (0) 'MS-DOS'\n-6E7EAD General Purpose Flag  0000 (0)\n-6E7EAF Compression Method    0000 (0) 'Stored'\n-6E7EB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7EB5 CRC                   00000000 (0)\n-6E7EB9 Compressed Size       00000000 (0)\n-6E7EBD Uncompressed Size     00000000 (0)\n-6E7EC1 Filename Length       002C (44)\n-6E7EC3 Extra Length          0009 (9)\n-6E7EC5 Comment Length        0000 (0)\n-6E7EC7 Disk Start            0000 (0)\n-6E7EC9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7ECB Ext File Attributes   00000000 (0)\n-6E7ECF Local Header Offset   003AB72E (3847982)\n-6E7ED3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7ED3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7EFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7F01   Length              0005 (5)\n-6E7F03   Flags               01 (1) 'Modification'\n-6E7F04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7F08 CENTRAL HEADER #1071  02014B50 (33639248)\n-6E7F0C Created Zip Spec      14 (20) '2.0'\n-6E7F0D Created OS            00 (0) 'MS-DOS'\n-6E7F0E Extract Zip Spec      14 (20) '2.0'\n-6E7F0F Extract OS            00 (0) 'MS-DOS'\n-6E7F10 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7F12 Compression Method    0000 (0) 'Stored'\n-6E7F14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7F18 CRC                   9FC2FAF4 (2680355572)\n-6E7F1C Compressed Size       00000A03 (2563)\n-6E7F20 Uncompressed Size     00000A03 (2563)\n-6E7F24 Filename Length       004A (74)\n-6E7F26 Extra Length          0009 (9)\n-6E7F28 Comment Length        0000 (0)\n-6E7F2A Disk Start            0000 (0)\n-6E7F2C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7F2E Ext File Attributes   00000000 (0)\n-6E7F32 Local Header Offset   003AB781 (3848065)\n-6E7F36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7F36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E7F80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E7F82   Length              0005 (5)\n-6E7F84   Flags               01 (1) 'Modification'\n-6E7F85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E7F89 CENTRAL HEADER #1072  02014B50 (33639248)\n-6E7F8D Created Zip Spec      14 (20) '2.0'\n-6E7F8E Created OS            00 (0) 'MS-DOS'\n-6E7F8F Extract Zip Spec      14 (20) '2.0'\n-6E7F90 Extract OS            00 (0) 'MS-DOS'\n-6E7F91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E7F93 Compression Method    0000 (0) 'Stored'\n-6E7F95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E7F99 CRC                   E1F2B0D2 (3790778578)\n-6E7F9D Compressed Size       0000352A (13610)\n-6E7FA1 Uncompressed Size     0000352A (13610)\n-6E7FA5 Filename Length       004A (74)\n-6E7FA7 Extra Length          0009 (9)\n-6E7FA9 Comment Length        0000 (0)\n-6E7FAB Disk Start            0000 (0)\n-6E7FAD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E7FAF Ext File Attributes   00000000 (0)\n-6E7FB3 Local Header Offset   003AC205 (3850757)\n-6E7FB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E7FB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8001 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8003   Length              0005 (5)\n-6E8005   Flags               01 (1) 'Modification'\n-6E8006   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E800A CENTRAL HEADER #1073  02014B50 (33639248)\n-6E800E Created Zip Spec      14 (20) '2.0'\n-6E800F Created OS            00 (0) 'MS-DOS'\n-6E8010 Extract Zip Spec      14 (20) '2.0'\n-6E8011 Extract OS            00 (0) 'MS-DOS'\n-6E8012 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8014 Compression Method    0000 (0) 'Stored'\n-6E8016 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E801A CRC                   2422B0CC (606253260)\n-6E801E Compressed Size       000006FD (1789)\n-6E8022 Uncompressed Size     000006FD (1789)\n-6E8026 Filename Length       0051 (81)\n-6E8028 Extra Length          0009 (9)\n-6E802A Comment Length        0000 (0)\n-6E802C Disk Start            0000 (0)\n-6E802E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8030 Ext File Attributes   00000000 (0)\n-6E8034 Local Header Offset   003AF7B0 (3864496)\n-6E8038 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8038: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8089 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E808B   Length              0005 (5)\n-6E808D   Flags               01 (1) 'Modification'\n-6E808E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8092 CENTRAL HEADER #1074  02014B50 (33639248)\n-6E8096 Created Zip Spec      14 (20) '2.0'\n-6E8097 Created OS            00 (0) 'MS-DOS'\n-6E8098 Extract Zip Spec      14 (20) '2.0'\n-6E8099 Extract OS            00 (0) 'MS-DOS'\n-6E809A General Purpose Flag  0000 (0)\n-6E809C Compression Method    0000 (0) 'Stored'\n-6E809E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E80A2 CRC                   00000000 (0)\n-6E80A6 Compressed Size       00000000 (0)\n-6E80AA Uncompressed Size     00000000 (0)\n-6E80AE Filename Length       0030 (48)\n-6E80B0 Extra Length          0009 (9)\n-6E80B2 Comment Length        0000 (0)\n-6E80B4 Disk Start            0000 (0)\n-6E80B6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E80B8 Ext File Attributes   00000000 (0)\n-6E80BC Local Header Offset   003AFF35 (3866421)\n-6E80C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E80C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E80F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E80F2   Length              0005 (5)\n-6E80F4   Flags               01 (1) 'Modification'\n-6E80F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E80F9 CENTRAL HEADER #1075  02014B50 (33639248)\n-6E80FD Created Zip Spec      14 (20) '2.0'\n-6E80FE Created OS            00 (0) 'MS-DOS'\n-6E80FF Extract Zip Spec      14 (20) '2.0'\n-6E8100 Extract OS            00 (0) 'MS-DOS'\n-6E8101 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8103 Compression Method    0000 (0) 'Stored'\n-6E8105 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8109 CRC                   37B6CF89 (934727561)\n-6E810D Compressed Size       000013FA (5114)\n-6E8111 Uncompressed Size     000013FA (5114)\n-6E8115 Filename Length       0042 (66)\n-6E8117 Extra Length          0009 (9)\n-6E8119 Comment Length        0000 (0)\n-6E811B Disk Start            0000 (0)\n-6E811D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E811F Ext File Attributes   00000000 (0)\n-6E8123 Local Header Offset   003AFF8C (3866508)\n-6E8127 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8127: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8169 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E816B   Length              0005 (5)\n-6E816D   Flags               01 (1) 'Modification'\n-6E816E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8172 CENTRAL HEADER #1076  02014B50 (33639248)\n-6E8176 Created Zip Spec      14 (20) '2.0'\n-6E8177 Created OS            00 (0) 'MS-DOS'\n-6E8178 Extract Zip Spec      14 (20) '2.0'\n-6E8179 Extract OS            00 (0) 'MS-DOS'\n-6E817A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E817C Compression Method    0000 (0) 'Stored'\n-6E817E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8182 CRC                   79761F08 (2037784328)\n-6E8186 Compressed Size       0000105D (4189)\n-6E818A Uncompressed Size     0000105D (4189)\n-6E818E Filename Length       0052 (82)\n-6E8190 Extra Length          0009 (9)\n-6E8192 Comment Length        0000 (0)\n-6E8194 Disk Start            0000 (0)\n-6E8196 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8198 Ext File Attributes   00000000 (0)\n-6E819C Local Header Offset   003B13FF (3871743)\n-6E81A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E81A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E81F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E81F4   Length              0005 (5)\n-6E81F6   Flags               01 (1) 'Modification'\n-6E81F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E81FB CENTRAL HEADER #1077  02014B50 (33639248)\n-6E81FF Created Zip Spec      14 (20) '2.0'\n-6E8200 Created OS            00 (0) 'MS-DOS'\n-6E8201 Extract Zip Spec      14 (20) '2.0'\n-6E8202 Extract OS            00 (0) 'MS-DOS'\n-6E8203 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8205 Compression Method    0000 (0) 'Stored'\n-6E8207 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E820B CRC                   DDA3D8AF (3718502575)\n-6E820F Compressed Size       00000649 (1609)\n-6E8213 Uncompressed Size     00000649 (1609)\n-6E8217 Filename Length       0059 (89)\n-6E8219 Extra Length          0009 (9)\n-6E821B Comment Length        0000 (0)\n-6E821D Disk Start            0000 (0)\n-6E821F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8221 Ext File Attributes   00000000 (0)\n-6E8225 Local Header Offset   003B24E5 (3876069)\n-6E8229 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8229: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8282 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8284   Length              0005 (5)\n-6E8286   Flags               01 (1) 'Modification'\n-6E8287   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E828B CENTRAL HEADER #1078  02014B50 (33639248)\n-6E828F Created Zip Spec      14 (20) '2.0'\n-6E8290 Created OS            00 (0) 'MS-DOS'\n-6E8291 Extract Zip Spec      14 (20) '2.0'\n-6E8292 Extract OS            00 (0) 'MS-DOS'\n-6E8293 General Purpose Flag  0000 (0)\n-6E8295 Compression Method    0000 (0) 'Stored'\n-6E8297 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E829B CRC                   00000000 (0)\n-6E829F Compressed Size       00000000 (0)\n-6E82A3 Uncompressed Size     00000000 (0)\n-6E82A7 Filename Length       001B (27)\n-6E82A9 Extra Length          0009 (9)\n-6E82AB Comment Length        0000 (0)\n-6E82AD Disk Start            0000 (0)\n-6E82AF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E82B1 Ext File Attributes   00000000 (0)\n-6E82B5 Local Header Offset   003B2BBE (3877822)\n-6E82B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E82B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E82D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E82D6   Length              0005 (5)\n-6E82D8   Flags               01 (1) 'Modification'\n-6E82D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E82DD CENTRAL HEADER #1079  02014B50 (33639248)\n-6E82E1 Created Zip Spec      14 (20) '2.0'\n-6E82E2 Created OS            00 (0) 'MS-DOS'\n-6E82E3 Extract Zip Spec      14 (20) '2.0'\n-6E82E4 Extract OS            00 (0) 'MS-DOS'\n-6E82E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E82E7 Compression Method    0000 (0) 'Stored'\n-6E82E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E82ED CRC                   14FCC408 (352109576)\n-6E82F1 Compressed Size       00000497 (1175)\n-6E82F5 Uncompressed Size     00000497 (1175)\n-6E82F9 Filename Length       0029 (41)\n-6E82FB Extra Length          0009 (9)\n-6E82FD Comment Length        0000 (0)\n-6E82FF Disk Start            0000 (0)\n-6E8301 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8303 Ext File Attributes   00000000 (0)\n-6E8307 Local Header Offset   003B2C00 (3877888)\n-6E830B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E830B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8334 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8336   Length              0005 (5)\n-6E8338   Flags               01 (1) 'Modification'\n-6E8339   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E833D CENTRAL HEADER #1080  02014B50 (33639248)\n-6E8341 Created Zip Spec      14 (20) '2.0'\n-6E8342 Created OS            00 (0) 'MS-DOS'\n-6E8343 Extract Zip Spec      14 (20) '2.0'\n-6E8344 Extract OS            00 (0) 'MS-DOS'\n-6E8345 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8347 Compression Method    0000 (0) 'Stored'\n-6E8349 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E834D CRC                   6D55499F (1834305951)\n-6E8351 Compressed Size       00001115 (4373)\n-6E8355 Uncompressed Size     00001115 (4373)\n-6E8359 Filename Length       0024 (36)\n-6E835B Extra Length          0009 (9)\n-6E835D Comment Length        0000 (0)\n-6E835F Disk Start            0000 (0)\n-6E8361 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8363 Ext File Attributes   00000000 (0)\n-6E8367 Local Header Offset   003B30F7 (3879159)\n-6E836B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E836B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E838F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8391   Length              0005 (5)\n-6E8393   Flags               01 (1) 'Modification'\n-6E8394   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8398 CENTRAL HEADER #1081  02014B50 (33639248)\n-6E839C Created Zip Spec      14 (20) '2.0'\n-6E839D Created OS            00 (0) 'MS-DOS'\n-6E839E Extract Zip Spec      14 (20) '2.0'\n-6E839F Extract OS            00 (0) 'MS-DOS'\n-6E83A0 General Purpose Flag  0000 (0)\n-6E83A2 Compression Method    0000 (0) 'Stored'\n-6E83A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E83A8 CRC                   00000000 (0)\n-6E83AC Compressed Size       00000000 (0)\n-6E83B0 Uncompressed Size     00000000 (0)\n-6E83B4 Filename Length       0021 (33)\n-6E83B6 Extra Length          0009 (9)\n-6E83B8 Comment Length        0000 (0)\n-6E83BA Disk Start            0000 (0)\n-6E83BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E83BE Ext File Attributes   00000000 (0)\n-6E83C2 Local Header Offset   003B4267 (3883623)\n-6E83C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E83C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E83E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E83E9   Length              0005 (5)\n-6E83EB   Flags               01 (1) 'Modification'\n-6E83EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E83F0 CENTRAL HEADER #1082  02014B50 (33639248)\n-6E83F4 Created Zip Spec      14 (20) '2.0'\n-6E83F5 Created OS            00 (0) 'MS-DOS'\n-6E83F6 Extract Zip Spec      14 (20) '2.0'\n-6E83F7 Extract OS            00 (0) 'MS-DOS'\n-6E83F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E83FA Compression Method    0000 (0) 'Stored'\n-6E83FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8400 CRC                   88CEDD40 (2295258432)\n-6E8404 Compressed Size       000011F6 (4598)\n-6E8408 Uncompressed Size     000011F6 (4598)\n-6E840C Filename Length       0034 (52)\n-6E840E Extra Length          0009 (9)\n-6E8410 Comment Length        0000 (0)\n-6E8412 Disk Start            0000 (0)\n-6E8414 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8416 Ext File Attributes   00000000 (0)\n-6E841A Local Header Offset   003B42AF (3883695)\n-6E841E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E841E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8452 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8454   Length              0005 (5)\n-6E8456   Flags               01 (1) 'Modification'\n-6E8457   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E845B CENTRAL HEADER #1083  02014B50 (33639248)\n-6E845F Created Zip Spec      14 (20) '2.0'\n-6E8460 Created OS            00 (0) 'MS-DOS'\n-6E8461 Extract Zip Spec      14 (20) '2.0'\n-6E8462 Extract OS            00 (0) 'MS-DOS'\n-6E8463 General Purpose Flag  0000 (0)\n-6E8465 Compression Method    0000 (0) 'Stored'\n-6E8467 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E846B CRC                   00000000 (0)\n-6E846F Compressed Size       00000000 (0)\n-6E8473 Uncompressed Size     00000000 (0)\n-6E8477 Filename Length       0023 (35)\n-6E8479 Extra Length          0009 (9)\n-6E847B Comment Length        0000 (0)\n-6E847D Disk Start            0000 (0)\n-6E847F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8481 Ext File Attributes   00000000 (0)\n-6E8485 Local Header Offset   003B5510 (3888400)\n-6E8489 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8489: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E84AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E84AE   Length              0005 (5)\n-6E84B0   Flags               01 (1) 'Modification'\n-6E84B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E84B5 CENTRAL HEADER #1084  02014B50 (33639248)\n-6E84B9 Created Zip Spec      14 (20) '2.0'\n-6E84BA Created OS            00 (0) 'MS-DOS'\n-6E84BB Extract Zip Spec      14 (20) '2.0'\n-6E84BC Extract OS            00 (0) 'MS-DOS'\n-6E84BD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E84BF Compression Method    0000 (0) 'Stored'\n-6E84C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E84C5 CRC                   75FBF59C (1979446684)\n-6E84C9 Compressed Size       00000FCF (4047)\n-6E84CD Uncompressed Size     00000FCF (4047)\n-6E84D1 Filename Length       0038 (56)\n-6E84D3 Extra Length          0009 (9)\n-6E84D5 Comment Length        0000 (0)\n-6E84D7 Disk Start            0000 (0)\n-6E84D9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E84DB Ext File Attributes   00000000 (0)\n-6E84DF Local Header Offset   003B555A (3888474)\n-6E84E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E84E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E851B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E851D   Length              0005 (5)\n-6E851F   Flags               01 (1) 'Modification'\n-6E8520   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8524 CENTRAL HEADER #1085  02014B50 (33639248)\n-6E8528 Created Zip Spec      14 (20) '2.0'\n-6E8529 Created OS            00 (0) 'MS-DOS'\n-6E852A Extract Zip Spec      14 (20) '2.0'\n-6E852B Extract OS            00 (0) 'MS-DOS'\n-6E852C General Purpose Flag  0000 (0)\n-6E852E Compression Method    0000 (0) 'Stored'\n-6E8530 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8534 CRC                   00000000 (0)\n-6E8538 Compressed Size       00000000 (0)\n-6E853C Uncompressed Size     00000000 (0)\n-6E8540 Filename Length       0022 (34)\n-6E8542 Extra Length          0009 (9)\n-6E8544 Comment Length        0000 (0)\n-6E8546 Disk Start            0000 (0)\n-6E8548 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E854A Ext File Attributes   00000000 (0)\n-6E854E Local Header Offset   003B6598 (3892632)\n-6E8552 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8552: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8574 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8576   Length              0005 (5)\n-6E8578   Flags               01 (1) 'Modification'\n-6E8579   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E857D CENTRAL HEADER #1086  02014B50 (33639248)\n-6E8581 Created Zip Spec      14 (20) '2.0'\n-6E8582 Created OS            00 (0) 'MS-DOS'\n-6E8583 Extract Zip Spec      14 (20) '2.0'\n-6E8584 Extract OS            00 (0) 'MS-DOS'\n-6E8585 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8587 Compression Method    0000 (0) 'Stored'\n-6E8589 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E858D CRC                   2AFEDAAE (721345198)\n-6E8591 Compressed Size       00000992 (2450)\n-6E8595 Uncompressed Size     00000992 (2450)\n-6E8599 Filename Length       0036 (54)\n-6E859B Extra Length          0009 (9)\n-6E859D Comment Length        0000 (0)\n-6E859F Disk Start            0000 (0)\n-6E85A1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E85A3 Ext File Attributes   00000000 (0)\n-6E85A7 Local Header Offset   003B65E1 (3892705)\n-6E85AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E85AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E85E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E85E3   Length              0005 (5)\n-6E85E5   Flags               01 (1) 'Modification'\n-6E85E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E85EA CENTRAL HEADER #1087  02014B50 (33639248)\n-6E85EE Created Zip Spec      14 (20) '2.0'\n-6E85EF Created OS            00 (0) 'MS-DOS'\n-6E85F0 Extract Zip Spec      14 (20) '2.0'\n-6E85F1 Extract OS            00 (0) 'MS-DOS'\n-6E85F2 General Purpose Flag  0000 (0)\n-6E85F4 Compression Method    0000 (0) 'Stored'\n-6E85F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E85FA CRC                   00000000 (0)\n-6E85FE Compressed Size       00000000 (0)\n-6E8602 Uncompressed Size     00000000 (0)\n-6E8606 Filename Length       0017 (23)\n-6E8608 Extra Length          0009 (9)\n-6E860A Comment Length        0000 (0)\n-6E860C Disk Start            0000 (0)\n-6E860E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8610 Ext File Attributes   00000000 (0)\n-6E8614 Local Header Offset   003B6FE0 (3895264)\n-6E8618 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8618: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E862F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8631   Length              0005 (5)\n-6E8633   Flags               01 (1) 'Modification'\n-6E8634   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8638 CENTRAL HEADER #1088  02014B50 (33639248)\n-6E863C Created Zip Spec      14 (20) '2.0'\n-6E863D Created OS            00 (0) 'MS-DOS'\n-6E863E Extract Zip Spec      14 (20) '2.0'\n-6E863F Extract OS            00 (0) 'MS-DOS'\n-6E8640 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8642 Compression Method    0000 (0) 'Stored'\n-6E8644 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8648 CRC                   0896EC5C (144108636)\n-6E864C Compressed Size       000016D6 (5846)\n-6E8650 Uncompressed Size     000016D6 (5846)\n-6E8654 Filename Length       0033 (51)\n-6E8656 Extra Length          0009 (9)\n-6E8658 Comment Length        0000 (0)\n-6E865A Disk Start            0000 (0)\n-6E865C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E865E Ext File Attributes   00000000 (0)\n-6E8662 Local Header Offset   003B701E (3895326)\n-6E8666 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8666: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8699 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E869B   Length              0005 (5)\n-6E869D   Flags               01 (1) 'Modification'\n-6E869E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E86A2 CENTRAL HEADER #1089  02014B50 (33639248)\n-6E86A6 Created Zip Spec      14 (20) '2.0'\n-6E86A7 Created OS            00 (0) 'MS-DOS'\n-6E86A8 Extract Zip Spec      14 (20) '2.0'\n-6E86A9 Extract OS            00 (0) 'MS-DOS'\n-6E86AA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E86AC Compression Method    0000 (0) 'Stored'\n-6E86AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E86B2 CRC                   7DBCFDD1 (2109537745)\n-6E86B6 Compressed Size       0000055B (1371)\n-6E86BA Uncompressed Size     0000055B (1371)\n-6E86BE Filename Length       0034 (52)\n-6E86C0 Extra Length          0009 (9)\n-6E86C2 Comment Length        0000 (0)\n-6E86C4 Disk Start            0000 (0)\n-6E86C6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E86C8 Ext File Attributes   00000000 (0)\n-6E86CC Local Header Offset   003B875E (3901278)\n-6E86D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E86D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8704 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8706   Length              0005 (5)\n-6E8708   Flags               01 (1) 'Modification'\n-6E8709   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E870D CENTRAL HEADER #1090  02014B50 (33639248)\n-6E8711 Created Zip Spec      14 (20) '2.0'\n-6E8712 Created OS            00 (0) 'MS-DOS'\n-6E8713 Extract Zip Spec      14 (20) '2.0'\n-6E8714 Extract OS            00 (0) 'MS-DOS'\n-6E8715 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8717 Compression Method    0000 (0) 'Stored'\n-6E8719 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E871D CRC                   3AC92564 (986260836)\n-6E8721 Compressed Size       00000464 (1124)\n-6E8725 Uncompressed Size     00000464 (1124)\n-6E8729 Filename Length       0031 (49)\n-6E872B Extra Length          0009 (9)\n-6E872D Comment Length        0000 (0)\n-6E872F Disk Start            0000 (0)\n-6E8731 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8733 Ext File Attributes   00000000 (0)\n-6E8737 Local Header Offset   003B8D24 (3902756)\n-6E873B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E873B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E876C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E876E   Length              0005 (5)\n-6E8770   Flags               01 (1) 'Modification'\n-6E8771   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8775 CENTRAL HEADER #1091  02014B50 (33639248)\n-6E8779 Created Zip Spec      14 (20) '2.0'\n-6E877A Created OS            00 (0) 'MS-DOS'\n-6E877B Extract Zip Spec      14 (20) '2.0'\n-6E877C Extract OS            00 (0) 'MS-DOS'\n-6E877D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E877F Compression Method    0000 (0) 'Stored'\n-6E8781 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8785 CRC                   0EB290DE (246583518)\n-6E8789 Compressed Size       0000061E (1566)\n-6E878D Uncompressed Size     0000061E (1566)\n-6E8791 Filename Length       0021 (33)\n-6E8793 Extra Length          0009 (9)\n-6E8795 Comment Length        0000 (0)\n-6E8797 Disk Start            0000 (0)\n-6E8799 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E879B Ext File Attributes   00000000 (0)\n-6E879F Local Header Offset   003B91F0 (3903984)\n-6E87A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E87A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E87C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E87C6   Length              0005 (5)\n-6E87C8   Flags               01 (1) 'Modification'\n-6E87C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E87CD CENTRAL HEADER #1092  02014B50 (33639248)\n-6E87D1 Created Zip Spec      14 (20) '2.0'\n-6E87D2 Created OS            00 (0) 'MS-DOS'\n-6E87D3 Extract Zip Spec      14 (20) '2.0'\n-6E87D4 Extract OS            00 (0) 'MS-DOS'\n-6E87D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E87D7 Compression Method    0000 (0) 'Stored'\n-6E87D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E87DD CRC                   2A1C7A3B (706509371)\n-6E87E1 Compressed Size       000008DC (2268)\n-6E87E5 Uncompressed Size     000008DC (2268)\n-6E87E9 Filename Length       002B (43)\n-6E87EB Extra Length          0009 (9)\n-6E87ED Comment Length        0000 (0)\n-6E87EF Disk Start            0000 (0)\n-6E87F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E87F3 Ext File Attributes   00000000 (0)\n-6E87F7 Local Header Offset   003B9866 (3905638)\n-6E87FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E87FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8828   Length              0005 (5)\n-6E882A   Flags               01 (1) 'Modification'\n-6E882B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E882F CENTRAL HEADER #1093  02014B50 (33639248)\n-6E8833 Created Zip Spec      14 (20) '2.0'\n-6E8834 Created OS            00 (0) 'MS-DOS'\n-6E8835 Extract Zip Spec      14 (20) '2.0'\n-6E8836 Extract OS            00 (0) 'MS-DOS'\n-6E8837 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8839 Compression Method    0000 (0) 'Stored'\n-6E883B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E883F CRC                   3A57EAC8 (978840264)\n-6E8843 Compressed Size       0000126A (4714)\n-6E8847 Uncompressed Size     0000126A (4714)\n-6E884B Filename Length       0029 (41)\n-6E884D Extra Length          0009 (9)\n-6E884F Comment Length        0000 (0)\n-6E8851 Disk Start            0000 (0)\n-6E8853 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8855 Ext File Attributes   00000000 (0)\n-6E8859 Local Header Offset   003BA1A4 (3908004)\n-6E885D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E885D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8886 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8888   Length              0005 (5)\n-6E888A   Flags               01 (1) 'Modification'\n-6E888B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E888F CENTRAL HEADER #1094  02014B50 (33639248)\n-6E8893 Created Zip Spec      14 (20) '2.0'\n-6E8894 Created OS            00 (0) 'MS-DOS'\n-6E8895 Extract Zip Spec      14 (20) '2.0'\n-6E8896 Extract OS            00 (0) 'MS-DOS'\n-6E8897 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8899 Compression Method    0000 (0) 'Stored'\n-6E889B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E889F CRC                   B1AAD78E (2980763534)\n-6E88A3 Compressed Size       00000463 (1123)\n-6E88A7 Uncompressed Size     00000463 (1123)\n-6E88AB Filename Length       0028 (40)\n-6E88AD Extra Length          0009 (9)\n-6E88AF Comment Length        0000 (0)\n-6E88B1 Disk Start            0000 (0)\n-6E88B3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E88B5 Ext File Attributes   00000000 (0)\n-6E88B9 Local Header Offset   003BB46E (3912814)\n-6E88BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E88BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E88E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E88E7   Length              0005 (5)\n-6E88E9   Flags               01 (1) 'Modification'\n-6E88EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E88EE CENTRAL HEADER #1095  02014B50 (33639248)\n-6E88F2 Created Zip Spec      14 (20) '2.0'\n-6E88F3 Created OS            00 (0) 'MS-DOS'\n-6E88F4 Extract Zip Spec      14 (20) '2.0'\n-6E88F5 Extract OS            00 (0) 'MS-DOS'\n-6E88F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E88F8 Compression Method    0000 (0) 'Stored'\n-6E88FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E88FE CRC                   903888C3 (2419624131)\n-6E8902 Compressed Size       0000120D (4621)\n-6E8906 Uncompressed Size     0000120D (4621)\n-6E890A Filename Length       0030 (48)\n-6E890C Extra Length          0009 (9)\n-6E890E Comment Length        0000 (0)\n-6E8910 Disk Start            0000 (0)\n-6E8912 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8914 Ext File Attributes   00000000 (0)\n-6E8918 Local Header Offset   003BB930 (3914032)\n-6E891C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E891C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E894C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E894E   Length              0005 (5)\n-6E8950   Flags               01 (1) 'Modification'\n-6E8951   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8955 CENTRAL HEADER #1096  02014B50 (33639248)\n-6E8959 Created Zip Spec      14 (20) '2.0'\n-6E895A Created OS            00 (0) 'MS-DOS'\n-6E895B Extract Zip Spec      14 (20) '2.0'\n-6E895C Extract OS            00 (0) 'MS-DOS'\n-6E895D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E895F Compression Method    0000 (0) 'Stored'\n-6E8961 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8965 CRC                   98A61B9D (2561022877)\n-6E8969 Compressed Size       000014BA (5306)\n-6E896D Uncompressed Size     000014BA (5306)\n-6E8971 Filename Length       0026 (38)\n-6E8973 Extra Length          0009 (9)\n-6E8975 Comment Length        0000 (0)\n-6E8977 Disk Start            0000 (0)\n-6E8979 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E897B Ext File Attributes   00000000 (0)\n-6E897F Local Header Offset   003BCBA4 (3918756)\n-6E8983 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8983: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E89A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E89AB   Length              0005 (5)\n-6E89AD   Flags               01 (1) 'Modification'\n-6E89AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E89B2 CENTRAL HEADER #1097  02014B50 (33639248)\n-6E89B6 Created Zip Spec      14 (20) '2.0'\n-6E89B7 Created OS            00 (0) 'MS-DOS'\n-6E89B8 Extract Zip Spec      14 (20) '2.0'\n-6E89B9 Extract OS            00 (0) 'MS-DOS'\n-6E89BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E89BC Compression Method    0000 (0) 'Stored'\n-6E89BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E89C2 CRC                   1AE780F7 (451379447)\n-6E89C6 Compressed Size       000004BD (1213)\n-6E89CA Uncompressed Size     000004BD (1213)\n-6E89CE Filename Length       0033 (51)\n-6E89D0 Extra Length          0009 (9)\n-6E89D2 Comment Length        0000 (0)\n-6E89D4 Disk Start            0000 (0)\n-6E89D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E89D8 Ext File Attributes   00000000 (0)\n-6E89DC Local Header Offset   003BE0BB (3924155)\n-6E89E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E89E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8A13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8A15   Length              0005 (5)\n-6E8A17   Flags               01 (1) 'Modification'\n-6E8A18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8A1C CENTRAL HEADER #1098  02014B50 (33639248)\n-6E8A20 Created Zip Spec      14 (20) '2.0'\n-6E8A21 Created OS            00 (0) 'MS-DOS'\n-6E8A22 Extract Zip Spec      14 (20) '2.0'\n-6E8A23 Extract OS            00 (0) 'MS-DOS'\n-6E8A24 General Purpose Flag  0000 (0)\n-6E8A26 Compression Method    0000 (0) 'Stored'\n-6E8A28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8A2C CRC                   00000000 (0)\n-6E8A30 Compressed Size       00000000 (0)\n-6E8A34 Uncompressed Size     00000000 (0)\n-6E8A38 Filename Length       001A (26)\n-6E8A3A Extra Length          0009 (9)\n-6E8A3C Comment Length        0000 (0)\n-6E8A3E Disk Start            0000 (0)\n-6E8A40 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8A42 Ext File Attributes   00000000 (0)\n-6E8A46 Local Header Offset   003BE5E2 (3925474)\n-6E8A4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8A4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8A64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8A66   Length              0005 (5)\n-6E8A68   Flags               01 (1) 'Modification'\n-6E8A69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8A6D CENTRAL HEADER #1099  02014B50 (33639248)\n-6E8A71 Created Zip Spec      14 (20) '2.0'\n-6E8A72 Created OS            00 (0) 'MS-DOS'\n-6E8A73 Extract Zip Spec      14 (20) '2.0'\n-6E8A74 Extract OS            00 (0) 'MS-DOS'\n-6E8A75 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8A77 Compression Method    0000 (0) 'Stored'\n-6E8A79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8A7D CRC                   CF6AE7CA (3479889866)\n-6E8A81 Compressed Size       00000A57 (2647)\n-6E8A85 Uncompressed Size     00000A57 (2647)\n-6E8A89 Filename Length       003A (58)\n-6E8A8B Extra Length          0009 (9)\n-6E8A8D Comment Length        0000 (0)\n-6E8A8F Disk Start            0000 (0)\n-6E8A91 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8A93 Ext File Attributes   00000000 (0)\n-6E8A97 Local Header Offset   003BE623 (3925539)\n-6E8A9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8A9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8AD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8AD7   Length              0005 (5)\n-6E8AD9   Flags               01 (1) 'Modification'\n-6E8ADA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8ADE CENTRAL HEADER #1100  02014B50 (33639248)\n-6E8AE2 Created Zip Spec      14 (20) '2.0'\n-6E8AE3 Created OS            00 (0) 'MS-DOS'\n-6E8AE4 Extract Zip Spec      14 (20) '2.0'\n-6E8AE5 Extract OS            00 (0) 'MS-DOS'\n-6E8AE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8AE8 Compression Method    0000 (0) 'Stored'\n-6E8AEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8AEE CRC                   462DB2DF (1177400031)\n-6E8AF2 Compressed Size       0000100F (4111)\n-6E8AF6 Uncompressed Size     0000100F (4111)\n-6E8AFA Filename Length       0045 (69)\n-6E8AFC Extra Length          0009 (9)\n-6E8AFE Comment Length        0000 (0)\n-6E8B00 Disk Start            0000 (0)\n-6E8B02 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8B04 Ext File Attributes   00000000 (0)\n-6E8B08 Local Header Offset   003BF0EB (3928299)\n-6E8B0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8B0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8B51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8B53   Length              0005 (5)\n-6E8B55   Flags               01 (1) 'Modification'\n-6E8B56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8B5A CENTRAL HEADER #1101  02014B50 (33639248)\n-6E8B5E Created Zip Spec      14 (20) '2.0'\n-6E8B5F Created OS            00 (0) 'MS-DOS'\n-6E8B60 Extract Zip Spec      14 (20) '2.0'\n-6E8B61 Extract OS            00 (0) 'MS-DOS'\n-6E8B62 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8B64 Compression Method    0000 (0) 'Stored'\n-6E8B66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8B6A CRC                   A8E35A99 (2833472153)\n-6E8B6E Compressed Size       000004F2 (1266)\n-6E8B72 Uncompressed Size     000004F2 (1266)\n-6E8B76 Filename Length       0032 (50)\n-6E8B78 Extra Length          0009 (9)\n-6E8B7A Comment Length        0000 (0)\n-6E8B7C Disk Start            0000 (0)\n-6E8B7E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8B80 Ext File Attributes   00000000 (0)\n-6E8B84 Local Header Offset   003C0176 (3932534)\n-6E8B88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8B88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8BBA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8BBC   Length              0005 (5)\n-6E8BBE   Flags               01 (1) 'Modification'\n-6E8BBF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8BC3 CENTRAL HEADER #1102  02014B50 (33639248)\n-6E8BC7 Created Zip Spec      14 (20) '2.0'\n-6E8BC8 Created OS            00 (0) 'MS-DOS'\n-6E8BC9 Extract Zip Spec      14 (20) '2.0'\n-6E8BCA Extract OS            00 (0) 'MS-DOS'\n-6E8BCB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8BCD Compression Method    0000 (0) 'Stored'\n-6E8BCF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8BD3 CRC                   ECCEFB44 (3972987716)\n-6E8BD7 Compressed Size       00000398 (920)\n-6E8BDB Uncompressed Size     00000398 (920)\n-6E8BDF Filename Length       002E (46)\n-6E8BE1 Extra Length          0009 (9)\n-6E8BE3 Comment Length        0000 (0)\n-6E8BE5 Disk Start            0000 (0)\n-6E8BE7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8BE9 Ext File Attributes   00000000 (0)\n-6E8BED Local Header Offset   003C06D1 (3933905)\n-6E8BF1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8BF1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8C1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8C21   Length              0005 (5)\n-6E8C23   Flags               01 (1) 'Modification'\n-6E8C24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8C28 CENTRAL HEADER #1103  02014B50 (33639248)\n-6E8C2C Created Zip Spec      14 (20) '2.0'\n-6E8C2D Created OS            00 (0) 'MS-DOS'\n-6E8C2E Extract Zip Spec      14 (20) '2.0'\n-6E8C2F Extract OS            00 (0) 'MS-DOS'\n-6E8C30 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8C32 Compression Method    0000 (0) 'Stored'\n-6E8C34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8C38 CRC                   7822EF2B (2015555371)\n-6E8C3C Compressed Size       000004DC (1244)\n-6E8C40 Uncompressed Size     000004DC (1244)\n-6E8C44 Filename Length       0035 (53)\n-6E8C46 Extra Length          0009 (9)\n-6E8C48 Comment Length        0000 (0)\n-6E8C4A Disk Start            0000 (0)\n-6E8C4C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8C4E Ext File Attributes   00000000 (0)\n-6E8C52 Local Header Offset   003C0ACE (3934926)\n-6E8C56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8C56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8C8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8C8D   Length              0005 (5)\n-6E8C8F   Flags               01 (1) 'Modification'\n-6E8C90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8C94 CENTRAL HEADER #1104  02014B50 (33639248)\n-6E8C98 Created Zip Spec      14 (20) '2.0'\n-6E8C99 Created OS            00 (0) 'MS-DOS'\n-6E8C9A Extract Zip Spec      14 (20) '2.0'\n-6E8C9B Extract OS            00 (0) 'MS-DOS'\n-6E8C9C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8C9E Compression Method    0000 (0) 'Stored'\n-6E8CA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8CA4 CRC                   5CAAFB07 (1554709255)\n-6E8CA8 Compressed Size       0000062F (1583)\n-6E8CAC Uncompressed Size     0000062F (1583)\n-6E8CB0 Filename Length       0030 (48)\n-6E8CB2 Extra Length          0009 (9)\n-6E8CB4 Comment Length        0000 (0)\n-6E8CB6 Disk Start            0000 (0)\n-6E8CB8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8CBA Ext File Attributes   00000000 (0)\n-6E8CBE Local Header Offset   003C1016 (3936278)\n-6E8CC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8CC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8CF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8CF4   Length              0005 (5)\n-6E8CF6   Flags               01 (1) 'Modification'\n-6E8CF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8CFB CENTRAL HEADER #1105  02014B50 (33639248)\n-6E8CFF Created Zip Spec      14 (20) '2.0'\n-6E8D00 Created OS            00 (0) 'MS-DOS'\n-6E8D01 Extract Zip Spec      14 (20) '2.0'\n-6E8D02 Extract OS            00 (0) 'MS-DOS'\n-6E8D03 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8D05 Compression Method    0000 (0) 'Stored'\n-6E8D07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8D0B CRC                   4F1688E0 (1326876896)\n-6E8D0F Compressed Size       00003A7C (14972)\n-6E8D13 Uncompressed Size     00003A7C (14972)\n-6E8D17 Filename Length       002B (43)\n-6E8D19 Extra Length          0009 (9)\n-6E8D1B Comment Length        0000 (0)\n-6E8D1D Disk Start            0000 (0)\n-6E8D1F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8D21 Ext File Attributes   00000000 (0)\n-6E8D25 Local Header Offset   003C16AC (3937964)\n-6E8D29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8D29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8D54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8D56   Length              0005 (5)\n-6E8D58   Flags               01 (1) 'Modification'\n-6E8D59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8D5D CENTRAL HEADER #1106  02014B50 (33639248)\n-6E8D61 Created Zip Spec      14 (20) '2.0'\n-6E8D62 Created OS            00 (0) 'MS-DOS'\n-6E8D63 Extract Zip Spec      14 (20) '2.0'\n-6E8D64 Extract OS            00 (0) 'MS-DOS'\n-6E8D65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8D67 Compression Method    0000 (0) 'Stored'\n-6E8D69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8D6D CRC                   F33C5BFA (4080819194)\n-6E8D71 Compressed Size       000004BD (1213)\n-6E8D75 Uncompressed Size     000004BD (1213)\n-6E8D79 Filename Length       0033 (51)\n-6E8D7B Extra Length          0009 (9)\n-6E8D7D Comment Length        0000 (0)\n-6E8D7F Disk Start            0000 (0)\n-6E8D81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8D83 Ext File Attributes   00000000 (0)\n-6E8D87 Local Header Offset   003C518A (3953034)\n-6E8D8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8D8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8DC0   Length              0005 (5)\n-6E8DC2   Flags               01 (1) 'Modification'\n-6E8DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8DC7 CENTRAL HEADER #1107  02014B50 (33639248)\n-6E8DCB Created Zip Spec      14 (20) '2.0'\n-6E8DCC Created OS            00 (0) 'MS-DOS'\n-6E8DCD Extract Zip Spec      14 (20) '2.0'\n-6E8DCE Extract OS            00 (0) 'MS-DOS'\n-6E8DCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8DD1 Compression Method    0000 (0) 'Stored'\n-6E8DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8DD7 CRC                   B27D0F80 (2994540416)\n-6E8DDB Compressed Size       00002A19 (10777)\n-6E8DDF Uncompressed Size     00002A19 (10777)\n-6E8DE3 Filename Length       002E (46)\n-6E8DE5 Extra Length          0009 (9)\n-6E8DE7 Comment Length        0000 (0)\n-6E8DE9 Disk Start            0000 (0)\n-6E8DEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8DED Ext File Attributes   00000000 (0)\n-6E8DF1 Local Header Offset   003C56B1 (3954353)\n-6E8DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8E23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8E25   Length              0005 (5)\n-6E8E27   Flags               01 (1) 'Modification'\n-6E8E28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8E2C CENTRAL HEADER #1108  02014B50 (33639248)\n-6E8E30 Created Zip Spec      14 (20) '2.0'\n-6E8E31 Created OS            00 (0) 'MS-DOS'\n-6E8E32 Extract Zip Spec      14 (20) '2.0'\n-6E8E33 Extract OS            00 (0) 'MS-DOS'\n-6E8E34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8E36 Compression Method    0000 (0) 'Stored'\n-6E8E38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8E3C CRC                   2A67D5E8 (711448040)\n-6E8E40 Compressed Size       00000C0C (3084)\n-6E8E44 Uncompressed Size     00000C0C (3084)\n-6E8E48 Filename Length       0036 (54)\n-6E8E4A Extra Length          0009 (9)\n-6E8E4C Comment Length        0000 (0)\n-6E8E4E Disk Start            0000 (0)\n-6E8E50 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8E52 Ext File Attributes   00000000 (0)\n-6E8E56 Local Header Offset   003C812F (3965231)\n-6E8E5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8E5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8E90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8E92   Length              0005 (5)\n-6E8E94   Flags               01 (1) 'Modification'\n-6E8E95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8E99 CENTRAL HEADER #1109  02014B50 (33639248)\n-6E8E9D Created Zip Spec      14 (20) '2.0'\n-6E8E9E Created OS            00 (0) 'MS-DOS'\n-6E8E9F Extract Zip Spec      14 (20) '2.0'\n-6E8EA0 Extract OS            00 (0) 'MS-DOS'\n-6E8EA1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8EA3 Compression Method    0000 (0) 'Stored'\n-6E8EA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8EA9 CRC                   7483DD2E (1954798894)\n-6E8EAD Compressed Size       000008BC (2236)\n-6E8EB1 Uncompressed Size     000008BC (2236)\n-6E8EB5 Filename Length       0032 (50)\n-6E8EB7 Extra Length          0009 (9)\n-6E8EB9 Comment Length        0000 (0)\n-6E8EBB Disk Start            0000 (0)\n-6E8EBD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8EBF Ext File Attributes   00000000 (0)\n-6E8EC3 Local Header Offset   003C8DA8 (3968424)\n-6E8EC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8EC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8EF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8EFB   Length              0005 (5)\n-6E8EFD   Flags               01 (1) 'Modification'\n-6E8EFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8F02 CENTRAL HEADER #1110  02014B50 (33639248)\n-6E8F06 Created Zip Spec      14 (20) '2.0'\n-6E8F07 Created OS            00 (0) 'MS-DOS'\n-6E8F08 Extract Zip Spec      14 (20) '2.0'\n-6E8F09 Extract OS            00 (0) 'MS-DOS'\n-6E8F0A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8F0C Compression Method    0000 (0) 'Stored'\n-6E8F0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8F12 CRC                   6B4F2850 (1800349776)\n-6E8F16 Compressed Size       00000801 (2049)\n-6E8F1A Uncompressed Size     00000801 (2049)\n-6E8F1E Filename Length       002F (47)\n-6E8F20 Extra Length          0009 (9)\n-6E8F22 Comment Length        0000 (0)\n-6E8F24 Disk Start            0000 (0)\n-6E8F26 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8F28 Ext File Attributes   00000000 (0)\n-6E8F2C Local Header Offset   003C96CD (3970765)\n-6E8F30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8F30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8F5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8F61   Length              0005 (5)\n-6E8F63   Flags               01 (1) 'Modification'\n-6E8F64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8F68 CENTRAL HEADER #1111  02014B50 (33639248)\n-6E8F6C Created Zip Spec      14 (20) '2.0'\n-6E8F6D Created OS            00 (0) 'MS-DOS'\n-6E8F6E Extract Zip Spec      14 (20) '2.0'\n-6E8F6F Extract OS            00 (0) 'MS-DOS'\n-6E8F70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8F72 Compression Method    0000 (0) 'Stored'\n-6E8F74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8F78 CRC                   065E383D (106838077)\n-6E8F7C Compressed Size       00000B59 (2905)\n-6E8F80 Uncompressed Size     00000B59 (2905)\n-6E8F84 Filename Length       0031 (49)\n-6E8F86 Extra Length          0009 (9)\n-6E8F88 Comment Length        0000 (0)\n-6E8F8A Disk Start            0000 (0)\n-6E8F8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8F8E Ext File Attributes   00000000 (0)\n-6E8F92 Local Header Offset   003C9F34 (3972916)\n-6E8F96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8F96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E8FC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E8FC9   Length              0005 (5)\n-6E8FCB   Flags               01 (1) 'Modification'\n-6E8FCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E8FD0 CENTRAL HEADER #1112  02014B50 (33639248)\n-6E8FD4 Created Zip Spec      14 (20) '2.0'\n-6E8FD5 Created OS            00 (0) 'MS-DOS'\n-6E8FD6 Extract Zip Spec      14 (20) '2.0'\n-6E8FD7 Extract OS            00 (0) 'MS-DOS'\n-6E8FD8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E8FDA Compression Method    0000 (0) 'Stored'\n-6E8FDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E8FE0 CRC                   33B4FA9F (867498655)\n-6E8FE4 Compressed Size       00000A57 (2647)\n-6E8FE8 Uncompressed Size     00000A57 (2647)\n-6E8FEC Filename Length       0036 (54)\n-6E8FEE Extra Length          0009 (9)\n-6E8FF0 Comment Length        0000 (0)\n-6E8FF2 Disk Start            0000 (0)\n-6E8FF4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E8FF6 Ext File Attributes   00000000 (0)\n-6E8FFA Local Header Offset   003CAAF5 (3975925)\n-6E8FFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E8FFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9034 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9036   Length              0005 (5)\n-6E9038   Flags               01 (1) 'Modification'\n-6E9039   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E903D CENTRAL HEADER #1113  02014B50 (33639248)\n-6E9041 Created Zip Spec      14 (20) '2.0'\n-6E9042 Created OS            00 (0) 'MS-DOS'\n-6E9043 Extract Zip Spec      14 (20) '2.0'\n-6E9044 Extract OS            00 (0) 'MS-DOS'\n-6E9045 General Purpose Flag  0000 (0)\n-6E9047 Compression Method    0000 (0) 'Stored'\n-6E9049 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E904D CRC                   00000000 (0)\n-6E9051 Compressed Size       00000000 (0)\n-6E9055 Uncompressed Size     00000000 (0)\n-6E9059 Filename Length       0025 (37)\n-6E905B Extra Length          0009 (9)\n-6E905D Comment Length        0000 (0)\n-6E905F Disk Start            0000 (0)\n-6E9061 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9063 Ext File Attributes   00000000 (0)\n-6E9067 Local Header Offset   003CB5B9 (3978681)\n-6E906B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E906B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9090 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9092   Length              0005 (5)\n-6E9094   Flags               01 (1) 'Modification'\n-6E9095   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9099 CENTRAL HEADER #1114  02014B50 (33639248)\n-6E909D Created Zip Spec      14 (20) '2.0'\n-6E909E Created OS            00 (0) 'MS-DOS'\n-6E909F Extract Zip Spec      14 (20) '2.0'\n-6E90A0 Extract OS            00 (0) 'MS-DOS'\n-6E90A1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E90A3 Compression Method    0000 (0) 'Stored'\n-6E90A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E90A9 CRC                   99A066B3 (2577426099)\n-6E90AD Compressed Size       00000A40 (2624)\n-6E90B1 Uncompressed Size     00000A40 (2624)\n-6E90B5 Filename Length       0041 (65)\n-6E90B7 Extra Length          0009 (9)\n-6E90B9 Comment Length        0000 (0)\n-6E90BB Disk Start            0000 (0)\n-6E90BD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E90BF Ext File Attributes   00000000 (0)\n-6E90C3 Local Header Offset   003CB605 (3978757)\n-6E90C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E90C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9108 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E910A   Length              0005 (5)\n-6E910C   Flags               01 (1) 'Modification'\n-6E910D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9111 CENTRAL HEADER #1115  02014B50 (33639248)\n-6E9115 Created Zip Spec      14 (20) '2.0'\n-6E9116 Created OS            00 (0) 'MS-DOS'\n-6E9117 Extract Zip Spec      14 (20) '2.0'\n-6E9118 Extract OS            00 (0) 'MS-DOS'\n-6E9119 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E911B Compression Method    0000 (0) 'Stored'\n-6E911D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9121 CRC                   8FC61B83 (2412125059)\n-6E9125 Compressed Size       00000F15 (3861)\n-6E9129 Uncompressed Size     00000F15 (3861)\n-6E912D Filename Length       0042 (66)\n-6E912F Extra Length          0009 (9)\n-6E9131 Comment Length        0000 (0)\n-6E9133 Disk Start            0000 (0)\n-6E9135 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9137 Ext File Attributes   00000000 (0)\n-6E913B Local Header Offset   003CC0BD (3981501)\n-6E913F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E913F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9181 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9183   Length              0005 (5)\n-6E9185   Flags               01 (1) 'Modification'\n-6E9186   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E918A CENTRAL HEADER #1116  02014B50 (33639248)\n-6E918E Created Zip Spec      14 (20) '2.0'\n-6E918F Created OS            00 (0) 'MS-DOS'\n-6E9190 Extract Zip Spec      14 (20) '2.0'\n-6E9191 Extract OS            00 (0) 'MS-DOS'\n-6E9192 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9194 Compression Method    0000 (0) 'Stored'\n-6E9196 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E919A CRC                   C36126A3 (3277924003)\n-6E919E Compressed Size       00000CF2 (3314)\n-6E91A2 Uncompressed Size     00000CF2 (3314)\n-6E91A6 Filename Length       003F (63)\n-6E91A8 Extra Length          0009 (9)\n-6E91AA Comment Length        0000 (0)\n-6E91AC Disk Start            0000 (0)\n-6E91AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E91B0 Ext File Attributes   00000000 (0)\n-6E91B4 Local Header Offset   003CD04B (3985483)\n-6E91B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E91B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E91F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E91F9   Length              0005 (5)\n-6E91FB   Flags               01 (1) 'Modification'\n-6E91FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9200 CENTRAL HEADER #1117  02014B50 (33639248)\n-6E9204 Created Zip Spec      14 (20) '2.0'\n-6E9205 Created OS            00 (0) 'MS-DOS'\n-6E9206 Extract Zip Spec      14 (20) '2.0'\n-6E9207 Extract OS            00 (0) 'MS-DOS'\n-6E9208 General Purpose Flag  0000 (0)\n-6E920A Compression Method    0000 (0) 'Stored'\n-6E920C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9210 CRC                   00000000 (0)\n-6E9214 Compressed Size       00000000 (0)\n-6E9218 Uncompressed Size     00000000 (0)\n-6E921C Filename Length       002D (45)\n-6E921E Extra Length          0009 (9)\n-6E9220 Comment Length        0000 (0)\n-6E9222 Disk Start            0000 (0)\n-6E9224 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9226 Ext File Attributes   00000000 (0)\n-6E922A Local Header Offset   003CDDB3 (3988915)\n-6E922E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E922E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E925B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E925D   Length              0005 (5)\n-6E925F   Flags               01 (1) 'Modification'\n-6E9260   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9264 CENTRAL HEADER #1118  02014B50 (33639248)\n-6E9268 Created Zip Spec      14 (20) '2.0'\n-6E9269 Created OS            00 (0) 'MS-DOS'\n-6E926A Extract Zip Spec      14 (20) '2.0'\n-6E926B Extract OS            00 (0) 'MS-DOS'\n-6E926C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E926E Compression Method    0000 (0) 'Stored'\n-6E9270 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9274 CRC                   C15189CF (3243346383)\n-6E9278 Compressed Size       000006BB (1723)\n-6E927C Uncompressed Size     000006BB (1723)\n-6E9280 Filename Length       0042 (66)\n-6E9282 Extra Length          0009 (9)\n-6E9284 Comment Length        0000 (0)\n-6E9286 Disk Start            0000 (0)\n-6E9288 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E928A Ext File Attributes   00000000 (0)\n-6E928E Local Header Offset   003CDE07 (3988999)\n-6E9292 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9292: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E92D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E92D6   Length              0005 (5)\n-6E92D8   Flags               01 (1) 'Modification'\n-6E92D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E92DD CENTRAL HEADER #1119  02014B50 (33639248)\n-6E92E1 Created Zip Spec      14 (20) '2.0'\n-6E92E2 Created OS            00 (0) 'MS-DOS'\n-6E92E3 Extract Zip Spec      14 (20) '2.0'\n-6E92E4 Extract OS            00 (0) 'MS-DOS'\n-6E92E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E92E7 Compression Method    0000 (0) 'Stored'\n-6E92E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E92ED CRC                   48345DF3 (1211391475)\n-6E92F1 Compressed Size       00000ACD (2765)\n-6E92F5 Uncompressed Size     00000ACD (2765)\n-6E92F9 Filename Length       0047 (71)\n-6E92FB Extra Length          0009 (9)\n-6E92FD Comment Length        0000 (0)\n-6E92FF Disk Start            0000 (0)\n-6E9301 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9303 Ext File Attributes   00000000 (0)\n-6E9307 Local Header Offset   003CE53B (3990843)\n-6E930B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E930B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9352 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9354   Length              0005 (5)\n-6E9356   Flags               01 (1) 'Modification'\n-6E9357   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E935B CENTRAL HEADER #1120  02014B50 (33639248)\n-6E935F Created Zip Spec      14 (20) '2.0'\n-6E9360 Created OS            00 (0) 'MS-DOS'\n-6E9361 Extract Zip Spec      14 (20) '2.0'\n-6E9362 Extract OS            00 (0) 'MS-DOS'\n-6E9363 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9365 Compression Method    0000 (0) 'Stored'\n-6E9367 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E936B CRC                   8C150447 (2350187591)\n-6E936F Compressed Size       000009B8 (2488)\n-6E9373 Uncompressed Size     000009B8 (2488)\n-6E9377 Filename Length       0044 (68)\n-6E9379 Extra Length          0009 (9)\n-6E937B Comment Length        0000 (0)\n-6E937D Disk Start            0000 (0)\n-6E937F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9381 Ext File Attributes   00000000 (0)\n-6E9385 Local Header Offset   003CF086 (3993734)\n-6E9389 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9389: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E93CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E93CF   Length              0005 (5)\n-6E93D1   Flags               01 (1) 'Modification'\n-6E93D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E93D6 CENTRAL HEADER #1121  02014B50 (33639248)\n-6E93DA Created Zip Spec      14 (20) '2.0'\n-6E93DB Created OS            00 (0) 'MS-DOS'\n-6E93DC Extract Zip Spec      14 (20) '2.0'\n-6E93DD Extract OS            00 (0) 'MS-DOS'\n-6E93DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E93E0 Compression Method    0000 (0) 'Stored'\n-6E93E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E93E6 CRC                   288B644A (680223818)\n-6E93EA Compressed Size       0000079B (1947)\n-6E93EE Uncompressed Size     0000079B (1947)\n-6E93F2 Filename Length       0041 (65)\n-6E93F4 Extra Length          0009 (9)\n-6E93F6 Comment Length        0000 (0)\n-6E93F8 Disk Start            0000 (0)\n-6E93FA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E93FC Ext File Attributes   00000000 (0)\n-6E9400 Local Header Offset   003CFAB9 (3996345)\n-6E9404 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9404: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9445 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9447   Length              0005 (5)\n-6E9449   Flags               01 (1) 'Modification'\n-6E944A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E944E CENTRAL HEADER #1122  02014B50 (33639248)\n-6E9452 Created Zip Spec      14 (20) '2.0'\n-6E9453 Created OS            00 (0) 'MS-DOS'\n-6E9454 Extract Zip Spec      14 (20) '2.0'\n-6E9455 Extract OS            00 (0) 'MS-DOS'\n-6E9456 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9458 Compression Method    0000 (0) 'Stored'\n-6E945A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E945E CRC                   A6C8F390 (2798187408)\n-6E9462 Compressed Size       00000C41 (3137)\n-6E9466 Uncompressed Size     00000C41 (3137)\n-6E946A Filename Length       0040 (64)\n-6E946C Extra Length          0009 (9)\n-6E946E Comment Length        0000 (0)\n-6E9470 Disk Start            0000 (0)\n-6E9472 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9474 Ext File Attributes   00000000 (0)\n-6E9478 Local Header Offset   003D02CC (3998412)\n-6E947C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E947C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E94BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E94BE   Length              0005 (5)\n-6E94C0   Flags               01 (1) 'Modification'\n-6E94C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E94C5 CENTRAL HEADER #1123  02014B50 (33639248)\n-6E94C9 Created Zip Spec      14 (20) '2.0'\n-6E94CA Created OS            00 (0) 'MS-DOS'\n-6E94CB Extract Zip Spec      14 (20) '2.0'\n-6E94CC Extract OS            00 (0) 'MS-DOS'\n-6E94CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E94CF Compression Method    0000 (0) 'Stored'\n-6E94D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E94D5 CRC                   7350CC44 (1934675012)\n-6E94D9 Compressed Size       000005A3 (1443)\n-6E94DD Uncompressed Size     000005A3 (1443)\n-6E94E1 Filename Length       003D (61)\n-6E94E3 Extra Length          0009 (9)\n-6E94E5 Comment Length        0000 (0)\n-6E94E7 Disk Start            0000 (0)\n-6E94E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E94EB Ext File Attributes   00000000 (0)\n-6E94EF Local Header Offset   003D0F84 (4001668)\n-6E94F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E94F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9530 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9532   Length              0005 (5)\n-6E9534   Flags               01 (1) 'Modification'\n-6E9535   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9539 CENTRAL HEADER #1124  02014B50 (33639248)\n-6E953D Created Zip Spec      14 (20) '2.0'\n-6E953E Created OS            00 (0) 'MS-DOS'\n-6E953F Extract Zip Spec      14 (20) '2.0'\n-6E9540 Extract OS            00 (0) 'MS-DOS'\n-6E9541 General Purpose Flag  0000 (0)\n-6E9543 Compression Method    0000 (0) 'Stored'\n-6E9545 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9549 CRC                   00000000 (0)\n-6E954D Compressed Size       00000000 (0)\n-6E9551 Uncompressed Size     00000000 (0)\n-6E9555 Filename Length       002B (43)\n-6E9557 Extra Length          0009 (9)\n-6E9559 Comment Length        0000 (0)\n-6E955B Disk Start            0000 (0)\n-6E955D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E955F Ext File Attributes   00000000 (0)\n-6E9563 Local Header Offset   003D159B (4003227)\n-6E9567 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9567: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9592 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9594   Length              0005 (5)\n-6E9596   Flags               01 (1) 'Modification'\n-6E9597   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E959B CENTRAL HEADER #1125  02014B50 (33639248)\n-6E959F Created Zip Spec      14 (20) '2.0'\n-6E95A0 Created OS            00 (0) 'MS-DOS'\n-6E95A1 Extract Zip Spec      14 (20) '2.0'\n-6E95A2 Extract OS            00 (0) 'MS-DOS'\n-6E95A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E95A5 Compression Method    0000 (0) 'Stored'\n-6E95A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E95AB CRC                   53726EBB (1400008379)\n-6E95AF Compressed Size       00000567 (1383)\n-6E95B3 Uncompressed Size     00000567 (1383)\n-6E95B7 Filename Length       0045 (69)\n-6E95B9 Extra Length          0009 (9)\n-6E95BB Comment Length        0000 (0)\n-6E95BD Disk Start            0000 (0)\n-6E95BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E95C1 Ext File Attributes   00000000 (0)\n-6E95C5 Local Header Offset   003D15ED (4003309)\n-6E95C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E95C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E960E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9610   Length              0005 (5)\n-6E9612   Flags               01 (1) 'Modification'\n-6E9613   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9617 CENTRAL HEADER #1126  02014B50 (33639248)\n-6E961B Created Zip Spec      14 (20) '2.0'\n-6E961C Created OS            00 (0) 'MS-DOS'\n-6E961D Extract Zip Spec      14 (20) '2.0'\n-6E961E Extract OS            00 (0) 'MS-DOS'\n-6E961F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9621 Compression Method    0000 (0) 'Stored'\n-6E9623 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9627 CRC                   C61A5369 (3323614057)\n-6E962B Compressed Size       00000C49 (3145)\n-6E962F Uncompressed Size     00000C49 (3145)\n-6E9633 Filename Length       0040 (64)\n-6E9635 Extra Length          0009 (9)\n-6E9637 Comment Length        0000 (0)\n-6E9639 Disk Start            0000 (0)\n-6E963B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E963D Ext File Attributes   00000000 (0)\n-6E9641 Local Header Offset   003D1BD0 (4004816)\n-6E9645 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9645: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9685 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9687   Length              0005 (5)\n-6E9689   Flags               01 (1) 'Modification'\n-6E968A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E968E CENTRAL HEADER #1127  02014B50 (33639248)\n-6E9692 Created Zip Spec      14 (20) '2.0'\n-6E9693 Created OS            00 (0) 'MS-DOS'\n-6E9694 Extract Zip Spec      14 (20) '2.0'\n-6E9695 Extract OS            00 (0) 'MS-DOS'\n-6E9696 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9698 Compression Method    0000 (0) 'Stored'\n-6E969A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E969E CRC                   4594C88A (1167378570)\n-6E96A2 Compressed Size       00000BC7 (3015)\n-6E96A6 Uncompressed Size     00000BC7 (3015)\n-6E96AA Filename Length       0041 (65)\n-6E96AC Extra Length          0009 (9)\n-6E96AE Comment Length        0000 (0)\n-6E96B0 Disk Start            0000 (0)\n-6E96B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E96B4 Ext File Attributes   00000000 (0)\n-6E96B8 Local Header Offset   003D2890 (4008080)\n-6E96BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E96BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E96FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E96FF   Length              0005 (5)\n-6E9701   Flags               01 (1) 'Modification'\n-6E9702   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9706 CENTRAL HEADER #1128  02014B50 (33639248)\n-6E970A Created Zip Spec      14 (20) '2.0'\n-6E970B Created OS            00 (0) 'MS-DOS'\n-6E970C Extract Zip Spec      14 (20) '2.0'\n-6E970D Extract OS            00 (0) 'MS-DOS'\n-6E970E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9710 Compression Method    0000 (0) 'Stored'\n-6E9712 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9716 CRC                   06EFE96C (116386156)\n-6E971A Compressed Size       000014BB (5307)\n-6E971E Uncompressed Size     000014BB (5307)\n-6E9722 Filename Length       003E (62)\n-6E9724 Extra Length          0009 (9)\n-6E9726 Comment Length        0000 (0)\n-6E9728 Disk Start            0000 (0)\n-6E972A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E972C Ext File Attributes   00000000 (0)\n-6E9730 Local Header Offset   003D34CF (4011215)\n-6E9734 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9734: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9772 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9774   Length              0005 (5)\n-6E9776   Flags               01 (1) 'Modification'\n-6E9777   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E977B CENTRAL HEADER #1129  02014B50 (33639248)\n-6E977F Created Zip Spec      14 (20) '2.0'\n-6E9780 Created OS            00 (0) 'MS-DOS'\n-6E9781 Extract Zip Spec      14 (20) '2.0'\n-6E9782 Extract OS            00 (0) 'MS-DOS'\n-6E9783 General Purpose Flag  0000 (0)\n-6E9785 Compression Method    0000 (0) 'Stored'\n-6E9787 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E978B CRC                   00000000 (0)\n-6E978F Compressed Size       00000000 (0)\n-6E9793 Uncompressed Size     00000000 (0)\n-6E9797 Filename Length       002A (42)\n-6E9799 Extra Length          0009 (9)\n-6E979B Comment Length        0000 (0)\n-6E979D Disk Start            0000 (0)\n-6E979F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E97A1 Ext File Attributes   00000000 (0)\n-6E97A5 Local Header Offset   003D49FF (4016639)\n-6E97A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E97A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E97D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E97D5   Length              0005 (5)\n-6E97D7   Flags               01 (1) 'Modification'\n-6E97D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E97DC CENTRAL HEADER #1130  02014B50 (33639248)\n-6E97E0 Created Zip Spec      14 (20) '2.0'\n-6E97E1 Created OS            00 (0) 'MS-DOS'\n-6E97E2 Extract Zip Spec      14 (20) '2.0'\n-6E97E3 Extract OS            00 (0) 'MS-DOS'\n-6E97E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E97E6 Compression Method    0000 (0) 'Stored'\n-6E97E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E97EC CRC                   28793399 (679031705)\n-6E97F0 Compressed Size       00000DA7 (3495)\n-6E97F4 Uncompressed Size     00000DA7 (3495)\n-6E97F8 Filename Length       0039 (57)\n-6E97FA Extra Length          0009 (9)\n-6E97FC Comment Length        0000 (0)\n-6E97FE Disk Start            0000 (0)\n-6E9800 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9802 Ext File Attributes   00000000 (0)\n-6E9806 Local Header Offset   003D4A50 (4016720)\n-6E980A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E980A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9843 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9845   Length              0005 (5)\n-6E9847   Flags               01 (1) 'Modification'\n-6E9848   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E984C CENTRAL HEADER #1131  02014B50 (33639248)\n-6E9850 Created Zip Spec      14 (20) '2.0'\n-6E9851 Created OS            00 (0) 'MS-DOS'\n-6E9852 Extract Zip Spec      14 (20) '2.0'\n-6E9853 Extract OS            00 (0) 'MS-DOS'\n-6E9854 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9856 Compression Method    0000 (0) 'Stored'\n-6E9858 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E985C CRC                   A3334B6D (2738047853)\n-6E9860 Compressed Size       00000CE7 (3303)\n-6E9864 Uncompressed Size     00000CE7 (3303)\n-6E9868 Filename Length       0046 (70)\n-6E986A Extra Length          0009 (9)\n-6E986C Comment Length        0000 (0)\n-6E986E Disk Start            0000 (0)\n-6E9870 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9872 Ext File Attributes   00000000 (0)\n-6E9876 Local Header Offset   003D5867 (4020327)\n-6E987A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E987A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E98C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E98C2   Length              0005 (5)\n-6E98C4   Flags               01 (1) 'Modification'\n-6E98C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E98C9 CENTRAL HEADER #1132  02014B50 (33639248)\n-6E98CD Created Zip Spec      14 (20) '2.0'\n-6E98CE Created OS            00 (0) 'MS-DOS'\n-6E98CF Extract Zip Spec      14 (20) '2.0'\n-6E98D0 Extract OS            00 (0) 'MS-DOS'\n-6E98D1 General Purpose Flag  0000 (0)\n-6E98D3 Compression Method    0000 (0) 'Stored'\n-6E98D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E98D9 CRC                   00000000 (0)\n-6E98DD Compressed Size       00000000 (0)\n-6E98E1 Uncompressed Size     00000000 (0)\n-6E98E5 Filename Length       0021 (33)\n-6E98E7 Extra Length          0009 (9)\n-6E98E9 Comment Length        0000 (0)\n-6E98EB Disk Start            0000 (0)\n-6E98ED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E98EF Ext File Attributes   00000000 (0)\n-6E98F3 Local Header Offset   003D65CB (4023755)\n-6E98F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E98F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9918 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E991A   Length              0005 (5)\n-6E991C   Flags               01 (1) 'Modification'\n-6E991D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9921 CENTRAL HEADER #1133  02014B50 (33639248)\n-6E9925 Created Zip Spec      14 (20) '2.0'\n-6E9926 Created OS            00 (0) 'MS-DOS'\n-6E9927 Extract Zip Spec      14 (20) '2.0'\n-6E9928 Extract OS            00 (0) 'MS-DOS'\n-6E9929 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E992B Compression Method    0000 (0) 'Stored'\n-6E992D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9931 CRC                   04A20B3B (77728571)\n-6E9935 Compressed Size       00000B66 (2918)\n-6E9939 Uncompressed Size     00000B66 (2918)\n-6E993D Filename Length       0034 (52)\n-6E993F Extra Length          0009 (9)\n-6E9941 Comment Length        0000 (0)\n-6E9943 Disk Start            0000 (0)\n-6E9945 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9947 Ext File Attributes   00000000 (0)\n-6E994B Local Header Offset   003D6613 (4023827)\n-6E994F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E994F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9983 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9985   Length              0005 (5)\n-6E9987   Flags               01 (1) 'Modification'\n-6E9988   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E998C CENTRAL HEADER #1134  02014B50 (33639248)\n-6E9990 Created Zip Spec      14 (20) '2.0'\n-6E9991 Created OS            00 (0) 'MS-DOS'\n-6E9992 Extract Zip Spec      14 (20) '2.0'\n-6E9993 Extract OS            00 (0) 'MS-DOS'\n-6E9994 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9996 Compression Method    0000 (0) 'Stored'\n-6E9998 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E999C CRC                   60C61EB2 (1623596722)\n-6E99A0 Compressed Size       00000460 (1120)\n-6E99A4 Uncompressed Size     00000460 (1120)\n-6E99A8 Filename Length       003B (59)\n-6E99AA Extra Length          0009 (9)\n-6E99AC Comment Length        0000 (0)\n-6E99AE Disk Start            0000 (0)\n-6E99B0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E99B2 Ext File Attributes   00000000 (0)\n-6E99B6 Local Header Offset   003D71E4 (4026852)\n-6E99BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E99BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E99F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E99F7   Length              0005 (5)\n-6E99F9   Flags               01 (1) 'Modification'\n-6E99FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E99FE CENTRAL HEADER #1135  02014B50 (33639248)\n-6E9A02 Created Zip Spec      14 (20) '2.0'\n-6E9A03 Created OS            00 (0) 'MS-DOS'\n-6E9A04 Extract Zip Spec      14 (20) '2.0'\n-6E9A05 Extract OS            00 (0) 'MS-DOS'\n-6E9A06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9A08 Compression Method    0000 (0) 'Stored'\n-6E9A0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9A0E CRC                   5AB1BA26 (1521596966)\n-6E9A12 Compressed Size       00000E0A (3594)\n-6E9A16 Uncompressed Size     00000E0A (3594)\n-6E9A1A Filename Length       003C (60)\n-6E9A1C Extra Length          0009 (9)\n-6E9A1E Comment Length        0000 (0)\n-6E9A20 Disk Start            0000 (0)\n-6E9A22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9A24 Ext File Attributes   00000000 (0)\n-6E9A28 Local Header Offset   003D76B6 (4028086)\n-6E9A2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9A2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9A68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9A6A   Length              0005 (5)\n-6E9A6C   Flags               01 (1) 'Modification'\n-6E9A6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9A71 CENTRAL HEADER #1136  02014B50 (33639248)\n-6E9A75 Created Zip Spec      14 (20) '2.0'\n-6E9A76 Created OS            00 (0) 'MS-DOS'\n-6E9A77 Extract Zip Spec      14 (20) '2.0'\n-6E9A78 Extract OS            00 (0) 'MS-DOS'\n-6E9A79 General Purpose Flag  0000 (0)\n-6E9A7B Compression Method    0000 (0) 'Stored'\n-6E9A7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9A81 CRC                   00000000 (0)\n-6E9A85 Compressed Size       00000000 (0)\n-6E9A89 Uncompressed Size     00000000 (0)\n-6E9A8D Filename Length       002C (44)\n-6E9A8F Extra Length          0009 (9)\n-6E9A91 Comment Length        0000 (0)\n-6E9A93 Disk Start            0000 (0)\n-6E9A95 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9A97 Ext File Attributes   00000000 (0)\n-6E9A9B Local Header Offset   003D8533 (4031795)\n-6E9A9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9A9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9ACB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9ACD   Length              0005 (5)\n-6E9ACF   Flags               01 (1) 'Modification'\n-6E9AD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9AD4 CENTRAL HEADER #1137  02014B50 (33639248)\n-6E9AD8 Created Zip Spec      14 (20) '2.0'\n-6E9AD9 Created OS            00 (0) 'MS-DOS'\n-6E9ADA Extract Zip Spec      14 (20) '2.0'\n-6E9ADB Extract OS            00 (0) 'MS-DOS'\n-6E9ADC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9ADE Compression Method    0000 (0) 'Stored'\n-6E9AE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9AE4 CRC                   ED364E79 (3979759225)\n-6E9AE8 Compressed Size       000008DD (2269)\n-6E9AEC Uncompressed Size     000008DD (2269)\n-6E9AF0 Filename Length       0052 (82)\n-6E9AF2 Extra Length          0009 (9)\n-6E9AF4 Comment Length        0000 (0)\n-6E9AF6 Disk Start            0000 (0)\n-6E9AF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9AFA Ext File Attributes   00000000 (0)\n-6E9AFE Local Header Offset   003D8586 (4031878)\n-6E9B02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9B02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9B54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9B56   Length              0005 (5)\n-6E9B58   Flags               01 (1) 'Modification'\n-6E9B59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9B5D CENTRAL HEADER #1138  02014B50 (33639248)\n-6E9B61 Created Zip Spec      14 (20) '2.0'\n-6E9B62 Created OS            00 (0) 'MS-DOS'\n-6E9B63 Extract Zip Spec      14 (20) '2.0'\n-6E9B64 Extract OS            00 (0) 'MS-DOS'\n-6E9B65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9B67 Compression Method    0000 (0) 'Stored'\n-6E9B69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9B6D CRC                   07379C13 (121084947)\n-6E9B71 Compressed Size       000003D4 (980)\n-6E9B75 Uncompressed Size     000003D4 (980)\n-6E9B79 Filename Length       0047 (71)\n-6E9B7B Extra Length          0009 (9)\n-6E9B7D Comment Length        0000 (0)\n-6E9B7F Disk Start            0000 (0)\n-6E9B81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9B83 Ext File Attributes   00000000 (0)\n-6E9B87 Local Header Offset   003D8EEC (4034284)\n-6E9B8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9B8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9BD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9BD4   Length              0005 (5)\n-6E9BD6   Flags               01 (1) 'Modification'\n-6E9BD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9BDB CENTRAL HEADER #1139  02014B50 (33639248)\n-6E9BDF Created Zip Spec      14 (20) '2.0'\n-6E9BE0 Created OS            00 (0) 'MS-DOS'\n-6E9BE1 Extract Zip Spec      14 (20) '2.0'\n-6E9BE2 Extract OS            00 (0) 'MS-DOS'\n-6E9BE3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9BE5 Compression Method    0000 (0) 'Stored'\n-6E9BE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9BEB CRC                   AA1837AB (2853713835)\n-6E9BEF Compressed Size       00000C62 (3170)\n-6E9BF3 Uncompressed Size     00000C62 (3170)\n-6E9BF7 Filename Length       004E (78)\n-6E9BF9 Extra Length          0009 (9)\n-6E9BFB Comment Length        0000 (0)\n-6E9BFD Disk Start            0000 (0)\n-6E9BFF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9C01 Ext File Attributes   00000000 (0)\n-6E9C05 Local Header Offset   003D933E (4035390)\n-6E9C09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9C09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9C57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9C59   Length              0005 (5)\n-6E9C5B   Flags               01 (1) 'Modification'\n-6E9C5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9C60 CENTRAL HEADER #1140  02014B50 (33639248)\n-6E9C64 Created Zip Spec      14 (20) '2.0'\n-6E9C65 Created OS            00 (0) 'MS-DOS'\n-6E9C66 Extract Zip Spec      14 (20) '2.0'\n-6E9C67 Extract OS            00 (0) 'MS-DOS'\n-6E9C68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9C6A Compression Method    0000 (0) 'Stored'\n-6E9C6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9C70 CRC                   C4C68375 (3301344117)\n-6E9C74 Compressed Size       0000081D (2077)\n-6E9C78 Uncompressed Size     0000081D (2077)\n-6E9C7C Filename Length       003C (60)\n-6E9C7E Extra Length          0009 (9)\n-6E9C80 Comment Length        0000 (0)\n-6E9C82 Disk Start            0000 (0)\n-6E9C84 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9C86 Ext File Attributes   00000000 (0)\n-6E9C8A Local Header Offset   003DA025 (4038693)\n-6E9C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9CCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9CCC   Length              0005 (5)\n-6E9CCE   Flags               01 (1) 'Modification'\n-6E9CCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9CD3 CENTRAL HEADER #1141  02014B50 (33639248)\n-6E9CD7 Created Zip Spec      14 (20) '2.0'\n-6E9CD8 Created OS            00 (0) 'MS-DOS'\n-6E9CD9 Extract Zip Spec      14 (20) '2.0'\n-6E9CDA Extract OS            00 (0) 'MS-DOS'\n-6E9CDB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9CDD Compression Method    0000 (0) 'Stored'\n-6E9CDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9CE3 CRC                   F9021EF9 (4177665785)\n-6E9CE7 Compressed Size       00000C7A (3194)\n-6E9CEB Uncompressed Size     00000C7A (3194)\n-6E9CEF Filename Length       0043 (67)\n-6E9CF1 Extra Length          0009 (9)\n-6E9CF3 Comment Length        0000 (0)\n-6E9CF5 Disk Start            0000 (0)\n-6E9CF7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9CF9 Ext File Attributes   00000000 (0)\n-6E9CFD Local Header Offset   003DA8B5 (4040885)\n-6E9D01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9D01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9D44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9D46   Length              0005 (5)\n-6E9D48   Flags               01 (1) 'Modification'\n-6E9D49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9D4D CENTRAL HEADER #1142  02014B50 (33639248)\n-6E9D51 Created Zip Spec      14 (20) '2.0'\n-6E9D52 Created OS            00 (0) 'MS-DOS'\n-6E9D53 Extract Zip Spec      14 (20) '2.0'\n-6E9D54 Extract OS            00 (0) 'MS-DOS'\n-6E9D55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9D57 Compression Method    0000 (0) 'Stored'\n-6E9D59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9D5D CRC                   D8F5C90C (3639986444)\n-6E9D61 Compressed Size       00000C3E (3134)\n-6E9D65 Uncompressed Size     00000C3E (3134)\n-6E9D69 Filename Length       004A (74)\n-6E9D6B Extra Length          0009 (9)\n-6E9D6D Comment Length        0000 (0)\n-6E9D6F Disk Start            0000 (0)\n-6E9D71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9D73 Ext File Attributes   00000000 (0)\n-6E9D77 Local Header Offset   003DB5A9 (4044201)\n-6E9D7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9D7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9DC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9DC7   Length              0005 (5)\n-6E9DC9   Flags               01 (1) 'Modification'\n-6E9DCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9DCE CENTRAL HEADER #1143  02014B50 (33639248)\n-6E9DD2 Created Zip Spec      14 (20) '2.0'\n-6E9DD3 Created OS            00 (0) 'MS-DOS'\n-6E9DD4 Extract Zip Spec      14 (20) '2.0'\n-6E9DD5 Extract OS            00 (0) 'MS-DOS'\n-6E9DD6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9DD8 Compression Method    0000 (0) 'Stored'\n-6E9DDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9DDE CRC                   F7E9DD6B (4159298923)\n-6E9DE2 Compressed Size       00000871 (2161)\n-6E9DE6 Uncompressed Size     00000871 (2161)\n-6E9DEA Filename Length       004D (77)\n-6E9DEC Extra Length          0009 (9)\n-6E9DEE Comment Length        0000 (0)\n-6E9DF0 Disk Start            0000 (0)\n-6E9DF2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9DF4 Ext File Attributes   00000000 (0)\n-6E9DF8 Local Header Offset   003DC268 (4047464)\n-6E9DFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9DFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9E49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9E4B   Length              0005 (5)\n-6E9E4D   Flags               01 (1) 'Modification'\n-6E9E4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9E52 CENTRAL HEADER #1144  02014B50 (33639248)\n-6E9E56 Created Zip Spec      14 (20) '2.0'\n-6E9E57 Created OS            00 (0) 'MS-DOS'\n-6E9E58 Extract Zip Spec      14 (20) '2.0'\n-6E9E59 Extract OS            00 (0) 'MS-DOS'\n-6E9E5A General Purpose Flag  0000 (0)\n-6E9E5C Compression Method    0000 (0) 'Stored'\n-6E9E5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9E62 CRC                   00000000 (0)\n-6E9E66 Compressed Size       00000000 (0)\n-6E9E6A Uncompressed Size     00000000 (0)\n-6E9E6E Filename Length       0029 (41)\n-6E9E70 Extra Length          0009 (9)\n-6E9E72 Comment Length        0000 (0)\n-6E9E74 Disk Start            0000 (0)\n-6E9E76 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9E78 Ext File Attributes   00000000 (0)\n-6E9E7C Local Header Offset   003DCB5D (4049757)\n-6E9E80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9E80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9EA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9EAB   Length              0005 (5)\n-6E9EAD   Flags               01 (1) 'Modification'\n-6E9EAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9EB2 CENTRAL HEADER #1145  02014B50 (33639248)\n-6E9EB6 Created Zip Spec      14 (20) '2.0'\n-6E9EB7 Created OS            00 (0) 'MS-DOS'\n-6E9EB8 Extract Zip Spec      14 (20) '2.0'\n-6E9EB9 Extract OS            00 (0) 'MS-DOS'\n-6E9EBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9EBC Compression Method    0000 (0) 'Stored'\n-6E9EBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9EC2 CRC                   8DD7FA96 (2379741846)\n-6E9EC6 Compressed Size       00004F7F (20351)\n-6E9ECA Uncompressed Size     00004F7F (20351)\n-6E9ECE Filename Length       0044 (68)\n-6E9ED0 Extra Length          0009 (9)\n-6E9ED2 Comment Length        0000 (0)\n-6E9ED4 Disk Start            0000 (0)\n-6E9ED6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9ED8 Ext File Attributes   00000000 (0)\n-6E9EDC Local Header Offset   003DCBAD (4049837)\n-6E9EE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9EE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9F24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9F26   Length              0005 (5)\n-6E9F28   Flags               01 (1) 'Modification'\n-6E9F29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9F2D CENTRAL HEADER #1146  02014B50 (33639248)\n-6E9F31 Created Zip Spec      14 (20) '2.0'\n-6E9F32 Created OS            00 (0) 'MS-DOS'\n-6E9F33 Extract Zip Spec      14 (20) '2.0'\n-6E9F34 Extract OS            00 (0) 'MS-DOS'\n-6E9F35 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9F37 Compression Method    0000 (0) 'Stored'\n-6E9F39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9F3D CRC                   C31A43AC (3273278380)\n-6E9F41 Compressed Size       00000A43 (2627)\n-6E9F45 Uncompressed Size     00000A43 (2627)\n-6E9F49 Filename Length       004B (75)\n-6E9F4B Extra Length          0009 (9)\n-6E9F4D Comment Length        0000 (0)\n-6E9F4F Disk Start            0000 (0)\n-6E9F51 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9F53 Ext File Attributes   00000000 (0)\n-6E9F57 Local Header Offset   003E1BA7 (4070311)\n-6E9F5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9F5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6E9FA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6E9FA8   Length              0005 (5)\n-6E9FAA   Flags               01 (1) 'Modification'\n-6E9FAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6E9FAF CENTRAL HEADER #1147  02014B50 (33639248)\n-6E9FB3 Created Zip Spec      14 (20) '2.0'\n-6E9FB4 Created OS            00 (0) 'MS-DOS'\n-6E9FB5 Extract Zip Spec      14 (20) '2.0'\n-6E9FB6 Extract OS            00 (0) 'MS-DOS'\n-6E9FB7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6E9FB9 Compression Method    0000 (0) 'Stored'\n-6E9FBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6E9FBF CRC                   4CCC6F49 (1288466249)\n-6E9FC3 Compressed Size       00000506 (1286)\n-6E9FC7 Uncompressed Size     00000506 (1286)\n-6E9FCB Filename Length       0037 (55)\n-6E9FCD Extra Length          0009 (9)\n-6E9FCF Comment Length        0000 (0)\n-6E9FD1 Disk Start            0000 (0)\n-6E9FD3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6E9FD5 Ext File Attributes   00000000 (0)\n-6E9FD9 Local Header Offset   003E266C (4073068)\n-6E9FDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6E9FDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA014 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA016   Length              0005 (5)\n-6EA018   Flags               01 (1) 'Modification'\n-6EA019   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA01D CENTRAL HEADER #1148  02014B50 (33639248)\n-6EA021 Created Zip Spec      14 (20) '2.0'\n-6EA022 Created OS            00 (0) 'MS-DOS'\n-6EA023 Extract Zip Spec      14 (20) '2.0'\n-6EA024 Extract OS            00 (0) 'MS-DOS'\n-6EA025 General Purpose Flag  0000 (0)\n-6EA027 Compression Method    0000 (0) 'Stored'\n-6EA029 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA02D CRC                   00000000 (0)\n-6EA031 Compressed Size       00000000 (0)\n-6EA035 Uncompressed Size     00000000 (0)\n-6EA039 Filename Length       001F (31)\n-6EA03B Extra Length          0009 (9)\n-6EA03D Comment Length        0000 (0)\n-6EA03F Disk Start            0000 (0)\n-6EA041 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA043 Ext File Attributes   00000000 (0)\n-6EA047 Local Header Offset   003E2BE0 (4074464)\n-6EA04B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA04B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA06A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA06C   Length              0005 (5)\n-6EA06E   Flags               01 (1) 'Modification'\n-6EA06F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA073 CENTRAL HEADER #1149  02014B50 (33639248)\n-6EA077 Created Zip Spec      14 (20) '2.0'\n-6EA078 Created OS            00 (0) 'MS-DOS'\n-6EA079 Extract Zip Spec      14 (20) '2.0'\n-6EA07A Extract OS            00 (0) 'MS-DOS'\n-6EA07B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA07D Compression Method    0000 (0) 'Stored'\n-6EA07F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA083 CRC                   B342E8EC (3007506668)\n-6EA087 Compressed Size       0000096F (2415)\n-6EA08B Uncompressed Size     0000096F (2415)\n-6EA08F Filename Length       004D (77)\n-6EA091 Extra Length          0009 (9)\n-6EA093 Comment Length        0000 (0)\n-6EA095 Disk Start            0000 (0)\n-6EA097 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA099 Ext File Attributes   00000000 (0)\n-6EA09D Local Header Offset   003E2C26 (4074534)\n-6EA0A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA0A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA0EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA0F0   Length              0005 (5)\n-6EA0F2   Flags               01 (1) 'Modification'\n-6EA0F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA0F7 CENTRAL HEADER #1150  02014B50 (33639248)\n-6EA0FB Created Zip Spec      14 (20) '2.0'\n-6EA0FC Created OS            00 (0) 'MS-DOS'\n-6EA0FD Extract Zip Spec      14 (20) '2.0'\n-6EA0FE Extract OS            00 (0) 'MS-DOS'\n-6EA0FF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA101 Compression Method    0000 (0) 'Stored'\n-6EA103 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA107 CRC                   CAD52129 (3402965289)\n-6EA10B Compressed Size       00003D87 (15751)\n-6EA10F Uncompressed Size     00003D87 (15751)\n-6EA113 Filename Length       0047 (71)\n-6EA115 Extra Length          0009 (9)\n-6EA117 Comment Length        0000 (0)\n-6EA119 Disk Start            0000 (0)\n-6EA11B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA11D Ext File Attributes   00000000 (0)\n-6EA121 Local Header Offset   003E3619 (4077081)\n-6EA125 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA125: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA16C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA16E   Length              0005 (5)\n-6EA170   Flags               01 (1) 'Modification'\n-6EA171   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA175 CENTRAL HEADER #1151  02014B50 (33639248)\n-6EA179 Created Zip Spec      14 (20) '2.0'\n-6EA17A Created OS            00 (0) 'MS-DOS'\n-6EA17B Extract Zip Spec      14 (20) '2.0'\n-6EA17C Extract OS            00 (0) 'MS-DOS'\n-6EA17D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA17F Compression Method    0000 (0) 'Stored'\n-6EA181 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA185 CRC                   47F26503 (1207067907)\n-6EA189 Compressed Size       000009C5 (2501)\n-6EA18D Uncompressed Size     000009C5 (2501)\n-6EA191 Filename Length       0045 (69)\n-6EA193 Extra Length          0009 (9)\n-6EA195 Comment Length        0000 (0)\n-6EA197 Disk Start            0000 (0)\n-6EA199 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA19B Ext File Attributes   00000000 (0)\n-6EA19F Local Header Offset   003E741E (4092958)\n-6EA1A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA1A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA1E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA1EA   Length              0005 (5)\n-6EA1EC   Flags               01 (1) 'Modification'\n-6EA1ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA1F1 CENTRAL HEADER #1152  02014B50 (33639248)\n-6EA1F5 Created Zip Spec      14 (20) '2.0'\n-6EA1F6 Created OS            00 (0) 'MS-DOS'\n-6EA1F7 Extract Zip Spec      14 (20) '2.0'\n-6EA1F8 Extract OS            00 (0) 'MS-DOS'\n-6EA1F9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA1FB Compression Method    0000 (0) 'Stored'\n-6EA1FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA201 CRC                   19F0D91C (435214620)\n-6EA205 Compressed Size       00000D07 (3335)\n-6EA209 Uncompressed Size     00000D07 (3335)\n-6EA20D Filename Length       0046 (70)\n-6EA20F Extra Length          0009 (9)\n-6EA211 Comment Length        0000 (0)\n-6EA213 Disk Start            0000 (0)\n-6EA215 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA217 Ext File Attributes   00000000 (0)\n-6EA21B Local Header Offset   003E7E5F (4095583)\n-6EA21F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA21F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA265 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA267   Length              0005 (5)\n-6EA269   Flags               01 (1) 'Modification'\n-6EA26A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA26E CENTRAL HEADER #1153  02014B50 (33639248)\n-6EA272 Created Zip Spec      14 (20) '2.0'\n-6EA273 Created OS            00 (0) 'MS-DOS'\n-6EA274 Extract Zip Spec      14 (20) '2.0'\n-6EA275 Extract OS            00 (0) 'MS-DOS'\n-6EA276 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA278 Compression Method    0000 (0) 'Stored'\n-6EA27A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA27E CRC                   7E8AFFB4 (2123038644)\n-6EA282 Compressed Size       000007C3 (1987)\n-6EA286 Uncompressed Size     000007C3 (1987)\n-6EA28A Filename Length       0046 (70)\n-6EA28C Extra Length          0009 (9)\n-6EA28E Comment Length        0000 (0)\n-6EA290 Disk Start            0000 (0)\n-6EA292 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA294 Ext File Attributes   00000000 (0)\n-6EA298 Local Header Offset   003E8BE3 (4099043)\n-6EA29C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA29C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA2E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA2E4   Length              0005 (5)\n-6EA2E6   Flags               01 (1) 'Modification'\n-6EA2E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA2EB CENTRAL HEADER #1154  02014B50 (33639248)\n-6EA2EF Created Zip Spec      14 (20) '2.0'\n-6EA2F0 Created OS            00 (0) 'MS-DOS'\n-6EA2F1 Extract Zip Spec      14 (20) '2.0'\n-6EA2F2 Extract OS            00 (0) 'MS-DOS'\n-6EA2F3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA2F5 Compression Method    0000 (0) 'Stored'\n-6EA2F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA2FB CRC                   BE623F70 (3194109808)\n-6EA2FF Compressed Size       00001B70 (7024)\n-6EA303 Uncompressed Size     00001B70 (7024)\n-6EA307 Filename Length       0033 (51)\n-6EA309 Extra Length          0009 (9)\n-6EA30B Comment Length        0000 (0)\n-6EA30D Disk Start            0000 (0)\n-6EA30F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA311 Ext File Attributes   00000000 (0)\n-6EA315 Local Header Offset   003E9423 (4101155)\n-6EA319 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA319: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA34C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA34E   Length              0005 (5)\n-6EA350   Flags               01 (1) 'Modification'\n-6EA351   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA355 CENTRAL HEADER #1155  02014B50 (33639248)\n-6EA359 Created Zip Spec      14 (20) '2.0'\n-6EA35A Created OS            00 (0) 'MS-DOS'\n-6EA35B Extract Zip Spec      14 (20) '2.0'\n-6EA35C Extract OS            00 (0) 'MS-DOS'\n-6EA35D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA35F Compression Method    0000 (0) 'Stored'\n-6EA361 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA365 CRC                   C31D4A4B (3273476683)\n-6EA369 Compressed Size       0000120B (4619)\n-6EA36D Uncompressed Size     0000120B (4619)\n-6EA371 Filename Length       0039 (57)\n-6EA373 Extra Length          0009 (9)\n-6EA375 Comment Length        0000 (0)\n-6EA377 Disk Start            0000 (0)\n-6EA379 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA37B Ext File Attributes   00000000 (0)\n-6EA37F Local Header Offset   003EAFFD (4108285)\n-6EA383 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA383: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA3BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA3BE   Length              0005 (5)\n-6EA3C0   Flags               01 (1) 'Modification'\n-6EA3C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA3C5 CENTRAL HEADER #1156  02014B50 (33639248)\n-6EA3C9 Created Zip Spec      14 (20) '2.0'\n-6EA3CA Created OS            00 (0) 'MS-DOS'\n-6EA3CB Extract Zip Spec      14 (20) '2.0'\n-6EA3CC Extract OS            00 (0) 'MS-DOS'\n-6EA3CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA3CF Compression Method    0000 (0) 'Stored'\n-6EA3D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA3D5 CRC                   B4E1FAB5 (3034708661)\n-6EA3D9 Compressed Size       0000180E (6158)\n-6EA3DD Uncompressed Size     0000180E (6158)\n-6EA3E1 Filename Length       0036 (54)\n-6EA3E3 Extra Length          0009 (9)\n-6EA3E5 Comment Length        0000 (0)\n-6EA3E7 Disk Start            0000 (0)\n-6EA3E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA3EB Ext File Attributes   00000000 (0)\n-6EA3EF Local Header Offset   003EC278 (4113016)\n-6EA3F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA3F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA429 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA42B   Length              0005 (5)\n-6EA42D   Flags               01 (1) 'Modification'\n-6EA42E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA432 CENTRAL HEADER #1157  02014B50 (33639248)\n-6EA436 Created Zip Spec      14 (20) '2.0'\n-6EA437 Created OS            00 (0) 'MS-DOS'\n-6EA438 Extract Zip Spec      14 (20) '2.0'\n-6EA439 Extract OS            00 (0) 'MS-DOS'\n-6EA43A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA43C Compression Method    0000 (0) 'Stored'\n-6EA43E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA442 CRC                   5668569D (1449678493)\n-6EA446 Compressed Size       00000C7B (3195)\n-6EA44A Uncompressed Size     00000C7B (3195)\n-6EA44E Filename Length       0037 (55)\n-6EA450 Extra Length          0009 (9)\n-6EA452 Comment Length        0000 (0)\n-6EA454 Disk Start            0000 (0)\n-6EA456 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA458 Ext File Attributes   00000000 (0)\n-6EA45C Local Header Offset   003EDAF3 (4119283)\n-6EA460 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA460: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA497 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA499   Length              0005 (5)\n-6EA49B   Flags               01 (1) 'Modification'\n-6EA49C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA4A0 CENTRAL HEADER #1158  02014B50 (33639248)\n-6EA4A4 Created Zip Spec      14 (20) '2.0'\n-6EA4A5 Created OS            00 (0) 'MS-DOS'\n-6EA4A6 Extract Zip Spec      14 (20) '2.0'\n-6EA4A7 Extract OS            00 (0) 'MS-DOS'\n-6EA4A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA4AA Compression Method    0000 (0) 'Stored'\n-6EA4AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA4B0 CRC                   EA525DAF (3931266479)\n-6EA4B4 Compressed Size       000004C1 (1217)\n-6EA4B8 Uncompressed Size     000004C1 (1217)\n-6EA4BC Filename Length       003D (61)\n-6EA4BE Extra Length          0009 (9)\n-6EA4C0 Comment Length        0000 (0)\n-6EA4C2 Disk Start            0000 (0)\n-6EA4C4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA4C6 Ext File Attributes   00000000 (0)\n-6EA4CA Local Header Offset   003EE7DC (4122588)\n-6EA4CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA4CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA50B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA50D   Length              0005 (5)\n-6EA50F   Flags               01 (1) 'Modification'\n-6EA510   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA514 CENTRAL HEADER #1159  02014B50 (33639248)\n-6EA518 Created Zip Spec      14 (20) '2.0'\n-6EA519 Created OS            00 (0) 'MS-DOS'\n-6EA51A Extract Zip Spec      14 (20) '2.0'\n-6EA51B Extract OS            00 (0) 'MS-DOS'\n-6EA51C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA51E Compression Method    0000 (0) 'Stored'\n-6EA520 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA524 CRC                   6E98A8DB (1855498459)\n-6EA528 Compressed Size       0000063C (1596)\n-6EA52C Uncompressed Size     0000063C (1596)\n-6EA530 Filename Length       003F (63)\n-6EA532 Extra Length          0009 (9)\n-6EA534 Comment Length        0000 (0)\n-6EA536 Disk Start            0000 (0)\n-6EA538 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA53A Ext File Attributes   00000000 (0)\n-6EA53E Local Header Offset   003EED11 (4123921)\n-6EA542 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA542: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA581 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA583   Length              0005 (5)\n-6EA585   Flags               01 (1) 'Modification'\n-6EA586   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA58A CENTRAL HEADER #1160  02014B50 (33639248)\n-6EA58E Created Zip Spec      14 (20) '2.0'\n-6EA58F Created OS            00 (0) 'MS-DOS'\n-6EA590 Extract Zip Spec      14 (20) '2.0'\n-6EA591 Extract OS            00 (0) 'MS-DOS'\n-6EA592 General Purpose Flag  0000 (0)\n-6EA594 Compression Method    0000 (0) 'Stored'\n-6EA596 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA59A CRC                   00000000 (0)\n-6EA59E Compressed Size       00000000 (0)\n-6EA5A2 Uncompressed Size     00000000 (0)\n-6EA5A6 Filename Length       0025 (37)\n-6EA5A8 Extra Length          0009 (9)\n-6EA5AA Comment Length        0000 (0)\n-6EA5AC Disk Start            0000 (0)\n-6EA5AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA5B0 Ext File Attributes   00000000 (0)\n-6EA5B4 Local Header Offset   003EF3C3 (4125635)\n-6EA5B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA5B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA5DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA5DF   Length              0005 (5)\n-6EA5E1   Flags               01 (1) 'Modification'\n-6EA5E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA5E6 CENTRAL HEADER #1161  02014B50 (33639248)\n-6EA5EA Created Zip Spec      14 (20) '2.0'\n-6EA5EB Created OS            00 (0) 'MS-DOS'\n-6EA5EC Extract Zip Spec      14 (20) '2.0'\n-6EA5ED Extract OS            00 (0) 'MS-DOS'\n-6EA5EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA5F0 Compression Method    0000 (0) 'Stored'\n-6EA5F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA5F6 CRC                   96165FE8 (2518048744)\n-6EA5FA Compressed Size       00000B47 (2887)\n-6EA5FE Uncompressed Size     00000B47 (2887)\n-6EA602 Filename Length       0048 (72)\n-6EA604 Extra Length          0009 (9)\n-6EA606 Comment Length        0000 (0)\n-6EA608 Disk Start            0000 (0)\n-6EA60A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA60C Ext File Attributes   00000000 (0)\n-6EA610 Local Header Offset   003EF40F (4125711)\n-6EA614 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA614: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA65C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA65E   Length              0005 (5)\n-6EA660   Flags               01 (1) 'Modification'\n-6EA661   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA665 CENTRAL HEADER #1162  02014B50 (33639248)\n-6EA669 Created Zip Spec      14 (20) '2.0'\n-6EA66A Created OS            00 (0) 'MS-DOS'\n-6EA66B Extract Zip Spec      14 (20) '2.0'\n-6EA66C Extract OS            00 (0) 'MS-DOS'\n-6EA66D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA66F Compression Method    0000 (0) 'Stored'\n-6EA671 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA675 CRC                   BB15446F (3138733167)\n-6EA679 Compressed Size       00000540 (1344)\n-6EA67D Uncompressed Size     00000540 (1344)\n-6EA681 Filename Length       0045 (69)\n-6EA683 Extra Length          0009 (9)\n-6EA685 Comment Length        0000 (0)\n-6EA687 Disk Start            0000 (0)\n-6EA689 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA68B Ext File Attributes   00000000 (0)\n-6EA68F Local Header Offset   003EFFD5 (4128725)\n-6EA693 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA693: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA6D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA6DA   Length              0005 (5)\n-6EA6DC   Flags               01 (1) 'Modification'\n-6EA6DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA6E1 CENTRAL HEADER #1163  02014B50 (33639248)\n-6EA6E5 Created Zip Spec      14 (20) '2.0'\n-6EA6E6 Created OS            00 (0) 'MS-DOS'\n-6EA6E7 Extract Zip Spec      14 (20) '2.0'\n-6EA6E8 Extract OS            00 (0) 'MS-DOS'\n-6EA6E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA6EB Compression Method    0000 (0) 'Stored'\n-6EA6ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA6F1 CRC                   C656CCE4 (3327577316)\n-6EA6F5 Compressed Size       00000872 (2162)\n-6EA6F9 Uncompressed Size     00000872 (2162)\n-6EA6FD Filename Length       0047 (71)\n-6EA6FF Extra Length          0009 (9)\n-6EA701 Comment Length        0000 (0)\n-6EA703 Disk Start            0000 (0)\n-6EA705 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA707 Ext File Attributes   00000000 (0)\n-6EA70B Local Header Offset   003F0591 (4130193)\n-6EA70F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA70F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA756 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA758   Length              0005 (5)\n-6EA75A   Flags               01 (1) 'Modification'\n-6EA75B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA75F CENTRAL HEADER #1164  02014B50 (33639248)\n-6EA763 Created Zip Spec      14 (20) '2.0'\n-6EA764 Created OS            00 (0) 'MS-DOS'\n-6EA765 Extract Zip Spec      14 (20) '2.0'\n-6EA766 Extract OS            00 (0) 'MS-DOS'\n-6EA767 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA769 Compression Method    0000 (0) 'Stored'\n-6EA76B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA76F CRC                   6100366B (1627403883)\n-6EA773 Compressed Size       000011E6 (4582)\n-6EA777 Uncompressed Size     000011E6 (4582)\n-6EA77B Filename Length       004A (74)\n-6EA77D Extra Length          0009 (9)\n-6EA77F Comment Length        0000 (0)\n-6EA781 Disk Start            0000 (0)\n-6EA783 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA785 Ext File Attributes   00000000 (0)\n-6EA789 Local Header Offset   003F0E81 (4132481)\n-6EA78D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA78D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA7D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA7D9   Length              0005 (5)\n-6EA7DB   Flags               01 (1) 'Modification'\n-6EA7DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA7E0 CENTRAL HEADER #1165  02014B50 (33639248)\n-6EA7E4 Created Zip Spec      14 (20) '2.0'\n-6EA7E5 Created OS            00 (0) 'MS-DOS'\n-6EA7E6 Extract Zip Spec      14 (20) '2.0'\n-6EA7E7 Extract OS            00 (0) 'MS-DOS'\n-6EA7E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA7EA Compression Method    0000 (0) 'Stored'\n-6EA7EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA7F0 CRC                   8939A522 (2302256418)\n-6EA7F4 Compressed Size       00000548 (1352)\n-6EA7F8 Uncompressed Size     00000548 (1352)\n-6EA7FC Filename Length       0047 (71)\n-6EA7FE Extra Length          0009 (9)\n-6EA800 Comment Length        0000 (0)\n-6EA802 Disk Start            0000 (0)\n-6EA804 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA806 Ext File Attributes   00000000 (0)\n-6EA80A Local Header Offset   003F20E8 (4137192)\n-6EA80E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA80E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA855 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA857   Length              0005 (5)\n-6EA859   Flags               01 (1) 'Modification'\n-6EA85A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA85E CENTRAL HEADER #1166  02014B50 (33639248)\n-6EA862 Created Zip Spec      14 (20) '2.0'\n-6EA863 Created OS            00 (0) 'MS-DOS'\n-6EA864 Extract Zip Spec      14 (20) '2.0'\n-6EA865 Extract OS            00 (0) 'MS-DOS'\n-6EA866 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA868 Compression Method    0000 (0) 'Stored'\n-6EA86A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA86E CRC                   2244431E (574898974)\n-6EA872 Compressed Size       000006DE (1758)\n-6EA876 Uncompressed Size     000006DE (1758)\n-6EA87A Filename Length       004B (75)\n-6EA87C Extra Length          0009 (9)\n-6EA87E Comment Length        0000 (0)\n-6EA880 Disk Start            0000 (0)\n-6EA882 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA884 Ext File Attributes   00000000 (0)\n-6EA888 Local Header Offset   003F26AE (4138670)\n-6EA88C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA88C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA8D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA8D9   Length              0005 (5)\n-6EA8DB   Flags               01 (1) 'Modification'\n-6EA8DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA8E0 CENTRAL HEADER #1167  02014B50 (33639248)\n-6EA8E4 Created Zip Spec      14 (20) '2.0'\n-6EA8E5 Created OS            00 (0) 'MS-DOS'\n-6EA8E6 Extract Zip Spec      14 (20) '2.0'\n-6EA8E7 Extract OS            00 (0) 'MS-DOS'\n-6EA8E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA8EA Compression Method    0000 (0) 'Stored'\n-6EA8EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA8F0 CRC                   6B0A1F36 (1795825462)\n-6EA8F4 Compressed Size       00000544 (1348)\n-6EA8F8 Uncompressed Size     00000544 (1348)\n-6EA8FC Filename Length       0046 (70)\n-6EA8FE Extra Length          0009 (9)\n-6EA900 Comment Length        0000 (0)\n-6EA902 Disk Start            0000 (0)\n-6EA904 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA906 Ext File Attributes   00000000 (0)\n-6EA90A Local Header Offset   003F2E0E (4140558)\n-6EA90E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA90E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA954 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA956   Length              0005 (5)\n-6EA958   Flags               01 (1) 'Modification'\n-6EA959   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA95D CENTRAL HEADER #1168  02014B50 (33639248)\n-6EA961 Created Zip Spec      14 (20) '2.0'\n-6EA962 Created OS            00 (0) 'MS-DOS'\n-6EA963 Extract Zip Spec      14 (20) '2.0'\n-6EA964 Extract OS            00 (0) 'MS-DOS'\n-6EA965 General Purpose Flag  0000 (0)\n-6EA967 Compression Method    0000 (0) 'Stored'\n-6EA969 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA96D CRC                   00000000 (0)\n-6EA971 Compressed Size       00000000 (0)\n-6EA975 Uncompressed Size     00000000 (0)\n-6EA979 Filename Length       0029 (41)\n-6EA97B Extra Length          0009 (9)\n-6EA97D Comment Length        0000 (0)\n-6EA97F Disk Start            0000 (0)\n-6EA981 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA983 Ext File Attributes   00000000 (0)\n-6EA987 Local Header Offset   003F33CF (4142031)\n-6EA98B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA98B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EA9B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EA9B6   Length              0005 (5)\n-6EA9B8   Flags               01 (1) 'Modification'\n-6EA9B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EA9BD CENTRAL HEADER #1169  02014B50 (33639248)\n-6EA9C1 Created Zip Spec      14 (20) '2.0'\n-6EA9C2 Created OS            00 (0) 'MS-DOS'\n-6EA9C3 Extract Zip Spec      14 (20) '2.0'\n-6EA9C4 Extract OS            00 (0) 'MS-DOS'\n-6EA9C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EA9C7 Compression Method    0000 (0) 'Stored'\n-6EA9C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EA9CD CRC                   F6AB8A5C (4138437212)\n-6EA9D1 Compressed Size       00000B30 (2864)\n-6EA9D5 Uncompressed Size     00000B30 (2864)\n-6EA9D9 Filename Length       0059 (89)\n-6EA9DB Extra Length          0009 (9)\n-6EA9DD Comment Length        0000 (0)\n-6EA9DF Disk Start            0000 (0)\n-6EA9E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EA9E3 Ext File Attributes   00000000 (0)\n-6EA9E7 Local Header Offset   003F341F (4142111)\n-6EA9EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EA9EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAA44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAA46   Length              0005 (5)\n-6EAA48   Flags               01 (1) 'Modification'\n-6EAA49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAA4D CENTRAL HEADER #1170  02014B50 (33639248)\n-6EAA51 Created Zip Spec      14 (20) '2.0'\n-6EAA52 Created OS            00 (0) 'MS-DOS'\n-6EAA53 Extract Zip Spec      14 (20) '2.0'\n-6EAA54 Extract OS            00 (0) 'MS-DOS'\n-6EAA55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAA57 Compression Method    0000 (0) 'Stored'\n-6EAA59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAA5D CRC                   8ECDA075 (2395840629)\n-6EAA61 Compressed Size       00000705 (1797)\n-6EAA65 Uncompressed Size     00000705 (1797)\n-6EAA69 Filename Length       004D (77)\n-6EAA6B Extra Length          0009 (9)\n-6EAA6D Comment Length        0000 (0)\n-6EAA6F Disk Start            0000 (0)\n-6EAA71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAA73 Ext File Attributes   00000000 (0)\n-6EAA77 Local Header Offset   003F3FDF (4145119)\n-6EAA7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAA7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAAC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAACA   Length              0005 (5)\n-6EAACC   Flags               01 (1) 'Modification'\n-6EAACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAAD1 CENTRAL HEADER #1171  02014B50 (33639248)\n-6EAAD5 Created Zip Spec      14 (20) '2.0'\n-6EAAD6 Created OS            00 (0) 'MS-DOS'\n-6EAAD7 Extract Zip Spec      14 (20) '2.0'\n-6EAAD8 Extract OS            00 (0) 'MS-DOS'\n-6EAAD9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAADB Compression Method    0000 (0) 'Stored'\n-6EAADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAAE1 CRC                   C535197D (3308591485)\n-6EAAE5 Compressed Size       00000700 (1792)\n-6EAAE9 Uncompressed Size     00000700 (1792)\n-6EAAED Filename Length       004C (76)\n-6EAAEF Extra Length          0009 (9)\n-6EAAF1 Comment Length        0000 (0)\n-6EAAF3 Disk Start            0000 (0)\n-6EAAF5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAAF7 Ext File Attributes   00000000 (0)\n-6EAAFB Local Header Offset   003F4768 (4147048)\n-6EAAFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAAFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAB4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAB4D   Length              0005 (5)\n-6EAB4F   Flags               01 (1) 'Modification'\n-6EAB50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAB54 CENTRAL HEADER #1172  02014B50 (33639248)\n-6EAB58 Created Zip Spec      14 (20) '2.0'\n-6EAB59 Created OS            00 (0) 'MS-DOS'\n-6EAB5A Extract Zip Spec      14 (20) '2.0'\n-6EAB5B Extract OS            00 (0) 'MS-DOS'\n-6EAB5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAB5E Compression Method    0000 (0) 'Stored'\n-6EAB60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAB64 CRC                   A895CAB3 (2828389043)\n-6EAB68 Compressed Size       00001870 (6256)\n-6EAB6C Uncompressed Size     00001870 (6256)\n-6EAB70 Filename Length       0052 (82)\n-6EAB72 Extra Length          0009 (9)\n-6EAB74 Comment Length        0000 (0)\n-6EAB76 Disk Start            0000 (0)\n-6EAB78 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAB7A Ext File Attributes   00000000 (0)\n-6EAB7E Local Header Offset   003F4EEB (4148971)\n-6EAB82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAB82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EABD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EABD6   Length              0005 (5)\n-6EABD8   Flags               01 (1) 'Modification'\n-6EABD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EABDD CENTRAL HEADER #1173  02014B50 (33639248)\n-6EABE1 Created Zip Spec      14 (20) '2.0'\n-6EABE2 Created OS            00 (0) 'MS-DOS'\n-6EABE3 Extract Zip Spec      14 (20) '2.0'\n-6EABE4 Extract OS            00 (0) 'MS-DOS'\n-6EABE5 General Purpose Flag  0000 (0)\n-6EABE7 Compression Method    0000 (0) 'Stored'\n-6EABE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EABED CRC                   00000000 (0)\n-6EABF1 Compressed Size       00000000 (0)\n-6EABF5 Uncompressed Size     00000000 (0)\n-6EABF9 Filename Length       0020 (32)\n-6EABFB Extra Length          0009 (9)\n-6EABFD Comment Length        0000 (0)\n-6EABFF Disk Start            0000 (0)\n-6EAC01 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAC03 Ext File Attributes   00000000 (0)\n-6EAC07 Local Header Offset   003F67E4 (4155364)\n-6EAC0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAC0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAC2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAC2D   Length              0005 (5)\n-6EAC2F   Flags               01 (1) 'Modification'\n-6EAC30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAC34 CENTRAL HEADER #1174  02014B50 (33639248)\n-6EAC38 Created Zip Spec      14 (20) '2.0'\n-6EAC39 Created OS            00 (0) 'MS-DOS'\n-6EAC3A Extract Zip Spec      14 (20) '2.0'\n-6EAC3B Extract OS            00 (0) 'MS-DOS'\n-6EAC3C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAC3E Compression Method    0000 (0) 'Stored'\n-6EAC40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAC44 CRC                   C67BB267 (3329995367)\n-6EAC48 Compressed Size       0000106A (4202)\n-6EAC4C Uncompressed Size     0000106A (4202)\n-6EAC50 Filename Length       004C (76)\n-6EAC52 Extra Length          0009 (9)\n-6EAC54 Comment Length        0000 (0)\n-6EAC56 Disk Start            0000 (0)\n-6EAC58 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAC5A Ext File Attributes   00000000 (0)\n-6EAC5E Local Header Offset   003F682B (4155435)\n-6EAC62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAC62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EACAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EACB0   Length              0005 (5)\n-6EACB2   Flags               01 (1) 'Modification'\n-6EACB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EACB7 CENTRAL HEADER #1175  02014B50 (33639248)\n-6EACBB Created Zip Spec      14 (20) '2.0'\n-6EACBC Created OS            00 (0) 'MS-DOS'\n-6EACBD Extract Zip Spec      14 (20) '2.0'\n-6EACBE Extract OS            00 (0) 'MS-DOS'\n-6EACBF General Purpose Flag  0000 (0)\n-6EACC1 Compression Method    0000 (0) 'Stored'\n-6EACC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EACC7 CRC                   00000000 (0)\n-6EACCB Compressed Size       00000000 (0)\n-6EACCF Uncompressed Size     00000000 (0)\n-6EACD3 Filename Length       0027 (39)\n-6EACD5 Extra Length          0009 (9)\n-6EACD7 Comment Length        0000 (0)\n-6EACD9 Disk Start            0000 (0)\n-6EACDB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EACDD Ext File Attributes   00000000 (0)\n-6EACE1 Local Header Offset   003F7918 (4159768)\n-6EACE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EACE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAD0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAD0E   Length              0005 (5)\n-6EAD10   Flags               01 (1) 'Modification'\n-6EAD11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAD15 CENTRAL HEADER #1176  02014B50 (33639248)\n-6EAD19 Created Zip Spec      14 (20) '2.0'\n-6EAD1A Created OS            00 (0) 'MS-DOS'\n-6EAD1B Extract Zip Spec      14 (20) '2.0'\n-6EAD1C Extract OS            00 (0) 'MS-DOS'\n-6EAD1D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAD1F Compression Method    0000 (0) 'Stored'\n-6EAD21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAD25 CRC                   BE116E78 (3188813432)\n-6EAD29 Compressed Size       000014EF (5359)\n-6EAD2D Uncompressed Size     000014EF (5359)\n-6EAD31 Filename Length       0040 (64)\n-6EAD33 Extra Length          0009 (9)\n-6EAD35 Comment Length        0000 (0)\n-6EAD37 Disk Start            0000 (0)\n-6EAD39 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAD3B Ext File Attributes   00000000 (0)\n-6EAD3F Local Header Offset   003F7966 (4159846)\n-6EAD43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAD43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAD83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAD85   Length              0005 (5)\n-6EAD87   Flags               01 (1) 'Modification'\n-6EAD88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAD8C CENTRAL HEADER #1177  02014B50 (33639248)\n-6EAD90 Created Zip Spec      14 (20) '2.0'\n-6EAD91 Created OS            00 (0) 'MS-DOS'\n-6EAD92 Extract Zip Spec      14 (20) '2.0'\n-6EAD93 Extract OS            00 (0) 'MS-DOS'\n-6EAD94 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAD96 Compression Method    0000 (0) 'Stored'\n-6EAD98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAD9C CRC                   0FE45FE3 (266624995)\n-6EADA0 Compressed Size       00000505 (1285)\n-6EADA4 Uncompressed Size     00000505 (1285)\n-6EADA8 Filename Length       0047 (71)\n-6EADAA Extra Length          0009 (9)\n-6EADAC Comment Length        0000 (0)\n-6EADAE Disk Start            0000 (0)\n-6EADB0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EADB2 Ext File Attributes   00000000 (0)\n-6EADB6 Local Header Offset   003F8ECC (4165324)\n-6EADBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EADBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAE01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAE03   Length              0005 (5)\n-6EAE05   Flags               01 (1) 'Modification'\n-6EAE06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAE0A CENTRAL HEADER #1178  02014B50 (33639248)\n-6EAE0E Created Zip Spec      14 (20) '2.0'\n-6EAE0F Created OS            00 (0) 'MS-DOS'\n-6EAE10 Extract Zip Spec      14 (20) '2.0'\n-6EAE11 Extract OS            00 (0) 'MS-DOS'\n-6EAE12 General Purpose Flag  0000 (0)\n-6EAE14 Compression Method    0000 (0) 'Stored'\n-6EAE16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAE1A CRC                   00000000 (0)\n-6EAE1E Compressed Size       00000000 (0)\n-6EAE22 Uncompressed Size     00000000 (0)\n-6EAE26 Filename Length       0025 (37)\n-6EAE28 Extra Length          0009 (9)\n-6EAE2A Comment Length        0000 (0)\n-6EAE2C Disk Start            0000 (0)\n-6EAE2E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAE30 Ext File Attributes   00000000 (0)\n-6EAE34 Local Header Offset   003F944F (4166735)\n-6EAE38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAE38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAE5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAE5F   Length              0005 (5)\n-6EAE61   Flags               01 (1) 'Modification'\n-6EAE62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAE66 CENTRAL HEADER #1179  02014B50 (33639248)\n-6EAE6A Created Zip Spec      14 (20) '2.0'\n-6EAE6B Created OS            00 (0) 'MS-DOS'\n-6EAE6C Extract Zip Spec      14 (20) '2.0'\n-6EAE6D Extract OS            00 (0) 'MS-DOS'\n-6EAE6E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAE70 Compression Method    0000 (0) 'Stored'\n-6EAE72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAE76 CRC                   00AA2381 (11150209)\n-6EAE7A Compressed Size       0000165C (5724)\n-6EAE7E Uncompressed Size     0000165C (5724)\n-6EAE82 Filename Length       003C (60)\n-6EAE84 Extra Length          0009 (9)\n-6EAE86 Comment Length        0000 (0)\n-6EAE88 Disk Start            0000 (0)\n-6EAE8A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAE8C Ext File Attributes   00000000 (0)\n-6EAE90 Local Header Offset   003F949B (4166811)\n-6EAE94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAE94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAED0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAED2   Length              0005 (5)\n-6EAED4   Flags               01 (1) 'Modification'\n-6EAED5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAED9 CENTRAL HEADER #1180  02014B50 (33639248)\n-6EAEDD Created Zip Spec      14 (20) '2.0'\n-6EAEDE Created OS            00 (0) 'MS-DOS'\n-6EAEDF Extract Zip Spec      14 (20) '2.0'\n-6EAEE0 Extract OS            00 (0) 'MS-DOS'\n-6EAEE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAEE3 Compression Method    0000 (0) 'Stored'\n-6EAEE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAEE9 CRC                   7E524C52 (2119322706)\n-6EAEED Compressed Size       0000083E (2110)\n-6EAEF1 Uncompressed Size     0000083E (2110)\n-6EAEF5 Filename Length       0043 (67)\n-6EAEF7 Extra Length          0009 (9)\n-6EAEF9 Comment Length        0000 (0)\n-6EAEFB Disk Start            0000 (0)\n-6EAEFD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAEFF Ext File Attributes   00000000 (0)\n-6EAF03 Local Header Offset   003FAB6A (4172650)\n-6EAF07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAF07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAF4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAF4C   Length              0005 (5)\n-6EAF4E   Flags               01 (1) 'Modification'\n-6EAF4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAF53 CENTRAL HEADER #1181  02014B50 (33639248)\n-6EAF57 Created Zip Spec      14 (20) '2.0'\n-6EAF58 Created OS            00 (0) 'MS-DOS'\n-6EAF59 Extract Zip Spec      14 (20) '2.0'\n-6EAF5A Extract OS            00 (0) 'MS-DOS'\n-6EAF5B General Purpose Flag  0000 (0)\n-6EAF5D Compression Method    0000 (0) 'Stored'\n-6EAF5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAF63 CRC                   00000000 (0)\n-6EAF67 Compressed Size       00000000 (0)\n-6EAF6B Uncompressed Size     00000000 (0)\n-6EAF6F Filename Length       0029 (41)\n-6EAF71 Extra Length          0009 (9)\n-6EAF73 Comment Length        0000 (0)\n-6EAF75 Disk Start            0000 (0)\n-6EAF77 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAF79 Ext File Attributes   00000000 (0)\n-6EAF7D Local Header Offset   003FB422 (4174882)\n-6EAF81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAF81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EAFAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EAFAC   Length              0005 (5)\n-6EAFAE   Flags               01 (1) 'Modification'\n-6EAFAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EAFB3 CENTRAL HEADER #1182  02014B50 (33639248)\n-6EAFB7 Created Zip Spec      14 (20) '2.0'\n-6EAFB8 Created OS            00 (0) 'MS-DOS'\n-6EAFB9 Extract Zip Spec      14 (20) '2.0'\n-6EAFBA Extract OS            00 (0) 'MS-DOS'\n-6EAFBB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EAFBD Compression Method    0000 (0) 'Stored'\n-6EAFBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EAFC3 CRC                   AB30D581 (2872104321)\n-6EAFC7 Compressed Size       00000697 (1687)\n-6EAFCB Uncompressed Size     00000697 (1687)\n-6EAFCF Filename Length       003F (63)\n-6EAFD1 Extra Length          0009 (9)\n-6EAFD3 Comment Length        0000 (0)\n-6EAFD5 Disk Start            0000 (0)\n-6EAFD7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EAFD9 Ext File Attributes   00000000 (0)\n-6EAFDD Local Header Offset   003FB472 (4174962)\n-6EAFE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EAFE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB020 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB022   Length              0005 (5)\n-6EB024   Flags               01 (1) 'Modification'\n-6EB025   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB029 CENTRAL HEADER #1183  02014B50 (33639248)\n-6EB02D Created Zip Spec      14 (20) '2.0'\n-6EB02E Created OS            00 (0) 'MS-DOS'\n-6EB02F Extract Zip Spec      14 (20) '2.0'\n-6EB030 Extract OS            00 (0) 'MS-DOS'\n-6EB031 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB033 Compression Method    0000 (0) 'Stored'\n-6EB035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB039 CRC                   546B40F4 (1416315124)\n-6EB03D Compressed Size       00005C0A (23562)\n-6EB041 Uncompressed Size     00005C0A (23562)\n-6EB045 Filename Length       0044 (68)\n-6EB047 Extra Length          0009 (9)\n-6EB049 Comment Length        0000 (0)\n-6EB04B Disk Start            0000 (0)\n-6EB04D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB04F Ext File Attributes   00000000 (0)\n-6EB053 Local Header Offset   003FBB7F (4176767)\n-6EB057 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB057: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB09B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB09D   Length              0005 (5)\n-6EB09F   Flags               01 (1) 'Modification'\n-6EB0A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB0A4 CENTRAL HEADER #1184  02014B50 (33639248)\n-6EB0A8 Created Zip Spec      14 (20) '2.0'\n-6EB0A9 Created OS            00 (0) 'MS-DOS'\n-6EB0AA Extract Zip Spec      14 (20) '2.0'\n-6EB0AB Extract OS            00 (0) 'MS-DOS'\n-6EB0AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB0AE Compression Method    0000 (0) 'Stored'\n-6EB0B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB0B4 CRC                   3F1A06E9 (1058670313)\n-6EB0B8 Compressed Size       000004D7 (1239)\n-6EB0BC Uncompressed Size     000004D7 (1239)\n-6EB0C0 Filename Length       004B (75)\n-6EB0C2 Extra Length          0009 (9)\n-6EB0C4 Comment Length        0000 (0)\n-6EB0C6 Disk Start            0000 (0)\n-6EB0C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB0CA Ext File Attributes   00000000 (0)\n-6EB0CE Local Header Offset   00401804 (4200452)\n-6EB0D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB0D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB11D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB11F   Length              0005 (5)\n-6EB121   Flags               01 (1) 'Modification'\n-6EB122   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB126 CENTRAL HEADER #1185  02014B50 (33639248)\n-6EB12A Created Zip Spec      14 (20) '2.0'\n-6EB12B Created OS            00 (0) 'MS-DOS'\n-6EB12C Extract Zip Spec      14 (20) '2.0'\n-6EB12D Extract OS            00 (0) 'MS-DOS'\n-6EB12E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB130 Compression Method    0000 (0) 'Stored'\n-6EB132 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB136 CRC                   A5D0004C (2781872204)\n-6EB13A Compressed Size       00000C55 (3157)\n-6EB13E Uncompressed Size     00000C55 (3157)\n-6EB142 Filename Length       0044 (68)\n-6EB144 Extra Length          0009 (9)\n-6EB146 Comment Length        0000 (0)\n-6EB148 Disk Start            0000 (0)\n-6EB14A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB14C Ext File Attributes   00000000 (0)\n-6EB150 Local Header Offset   00401D5D (4201821)\n-6EB154 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB154: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB198 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB19A   Length              0005 (5)\n-6EB19C   Flags               01 (1) 'Modification'\n-6EB19D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB1A1 CENTRAL HEADER #1186  02014B50 (33639248)\n-6EB1A5 Created Zip Spec      14 (20) '2.0'\n-6EB1A6 Created OS            00 (0) 'MS-DOS'\n-6EB1A7 Extract Zip Spec      14 (20) '2.0'\n-6EB1A8 Extract OS            00 (0) 'MS-DOS'\n-6EB1A9 General Purpose Flag  0000 (0)\n-6EB1AB Compression Method    0000 (0) 'Stored'\n-6EB1AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB1B1 CRC                   00000000 (0)\n-6EB1B5 Compressed Size       00000000 (0)\n-6EB1B9 Uncompressed Size     00000000 (0)\n-6EB1BD Filename Length       0026 (38)\n-6EB1BF Extra Length          0009 (9)\n-6EB1C1 Comment Length        0000 (0)\n-6EB1C3 Disk Start            0000 (0)\n-6EB1C5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB1C7 Ext File Attributes   00000000 (0)\n-6EB1CB Local Header Offset   00402A2D (4205101)\n-6EB1CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB1CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB1F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB1F7   Length              0005 (5)\n-6EB1F9   Flags               01 (1) 'Modification'\n-6EB1FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB1FE CENTRAL HEADER #1187  02014B50 (33639248)\n-6EB202 Created Zip Spec      14 (20) '2.0'\n-6EB203 Created OS            00 (0) 'MS-DOS'\n-6EB204 Extract Zip Spec      14 (20) '2.0'\n-6EB205 Extract OS            00 (0) 'MS-DOS'\n-6EB206 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB208 Compression Method    0000 (0) 'Stored'\n-6EB20A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB20E CRC                   F93596DA (4181038810)\n-6EB212 Compressed Size       000008A5 (2213)\n-6EB216 Uncompressed Size     000008A5 (2213)\n-6EB21A Filename Length       0044 (68)\n-6EB21C Extra Length          0009 (9)\n-6EB21E Comment Length        0000 (0)\n-6EB220 Disk Start            0000 (0)\n-6EB222 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB224 Ext File Attributes   00000000 (0)\n-6EB228 Local Header Offset   00402A7A (4205178)\n-6EB22C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB22C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB270 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB272   Length              0005 (5)\n-6EB274   Flags               01 (1) 'Modification'\n-6EB275   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB279 CENTRAL HEADER #1188  02014B50 (33639248)\n-6EB27D Created Zip Spec      14 (20) '2.0'\n-6EB27E Created OS            00 (0) 'MS-DOS'\n-6EB27F Extract Zip Spec      14 (20) '2.0'\n-6EB280 Extract OS            00 (0) 'MS-DOS'\n-6EB281 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB283 Compression Method    0000 (0) 'Stored'\n-6EB285 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB289 CRC                   6BCB8A4E (1808501326)\n-6EB28D Compressed Size       00002868 (10344)\n-6EB291 Uncompressed Size     00002868 (10344)\n-6EB295 Filename Length       003E (62)\n-6EB297 Extra Length          0009 (9)\n-6EB299 Comment Length        0000 (0)\n-6EB29B Disk Start            0000 (0)\n-6EB29D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB29F Ext File Attributes   00000000 (0)\n-6EB2A3 Local Header Offset   0040339A (4207514)\n-6EB2A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB2A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB2E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB2E7   Length              0005 (5)\n-6EB2E9   Flags               01 (1) 'Modification'\n-6EB2EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB2EE CENTRAL HEADER #1189  02014B50 (33639248)\n-6EB2F2 Created Zip Spec      14 (20) '2.0'\n-6EB2F3 Created OS            00 (0) 'MS-DOS'\n-6EB2F4 Extract Zip Spec      14 (20) '2.0'\n-6EB2F5 Extract OS            00 (0) 'MS-DOS'\n-6EB2F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB2F8 Compression Method    0000 (0) 'Stored'\n-6EB2FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB2FE CRC                   030A303D (50999357)\n-6EB302 Compressed Size       00000501 (1281)\n-6EB306 Uncompressed Size     00000501 (1281)\n-6EB30A Filename Length       0045 (69)\n-6EB30C Extra Length          0009 (9)\n-6EB30E Comment Length        0000 (0)\n-6EB310 Disk Start            0000 (0)\n-6EB312 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB314 Ext File Attributes   00000000 (0)\n-6EB318 Local Header Offset   00405C77 (4217975)\n-6EB31C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB31C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB361 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB363   Length              0005 (5)\n-6EB365   Flags               01 (1) 'Modification'\n-6EB366   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB36A CENTRAL HEADER #1190  02014B50 (33639248)\n-6EB36E Created Zip Spec      14 (20) '2.0'\n-6EB36F Created OS            00 (0) 'MS-DOS'\n-6EB370 Extract Zip Spec      14 (20) '2.0'\n-6EB371 Extract OS            00 (0) 'MS-DOS'\n-6EB372 General Purpose Flag  0000 (0)\n-6EB374 Compression Method    0000 (0) 'Stored'\n-6EB376 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB37A CRC                   00000000 (0)\n-6EB37E Compressed Size       00000000 (0)\n-6EB382 Uncompressed Size     00000000 (0)\n-6EB386 Filename Length       0026 (38)\n-6EB388 Extra Length          0009 (9)\n-6EB38A Comment Length        0000 (0)\n-6EB38C Disk Start            0000 (0)\n-6EB38E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB390 Ext File Attributes   00000000 (0)\n-6EB394 Local Header Offset   004061F4 (4219380)\n-6EB398 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB398: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB3BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB3C0   Length              0005 (5)\n-6EB3C2   Flags               01 (1) 'Modification'\n-6EB3C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB3C7 CENTRAL HEADER #1191  02014B50 (33639248)\n-6EB3CB Created Zip Spec      14 (20) '2.0'\n-6EB3CC Created OS            00 (0) 'MS-DOS'\n-6EB3CD Extract Zip Spec      14 (20) '2.0'\n-6EB3CE Extract OS            00 (0) 'MS-DOS'\n-6EB3CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB3D1 Compression Method    0000 (0) 'Stored'\n-6EB3D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB3D7 CRC                   AE94BF94 (2928983956)\n-6EB3DB Compressed Size       00002469 (9321)\n-6EB3DF Uncompressed Size     00002469 (9321)\n-6EB3E3 Filename Length       003E (62)\n-6EB3E5 Extra Length          0009 (9)\n-6EB3E7 Comment Length        0000 (0)\n-6EB3E9 Disk Start            0000 (0)\n-6EB3EB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB3ED Ext File Attributes   00000000 (0)\n-6EB3F1 Local Header Offset   00406241 (4219457)\n-6EB3F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB3F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB435   Length              0005 (5)\n-6EB437   Flags               01 (1) 'Modification'\n-6EB438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB43C CENTRAL HEADER #1192  02014B50 (33639248)\n-6EB440 Created Zip Spec      14 (20) '2.0'\n-6EB441 Created OS            00 (0) 'MS-DOS'\n-6EB442 Extract Zip Spec      14 (20) '2.0'\n-6EB443 Extract OS            00 (0) 'MS-DOS'\n-6EB444 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB446 Compression Method    0000 (0) 'Stored'\n-6EB448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB44C CRC                   FCE39D55 (4242775381)\n-6EB450 Compressed Size       000004F5 (1269)\n-6EB454 Uncompressed Size     000004F5 (1269)\n-6EB458 Filename Length       0045 (69)\n-6EB45A Extra Length          0009 (9)\n-6EB45C Comment Length        0000 (0)\n-6EB45E Disk Start            0000 (0)\n-6EB460 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB462 Ext File Attributes   00000000 (0)\n-6EB466 Local Header Offset   0040871F (4228895)\n-6EB46A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB46A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB4AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB4B1   Length              0005 (5)\n-6EB4B3   Flags               01 (1) 'Modification'\n-6EB4B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB4B8 CENTRAL HEADER #1193  02014B50 (33639248)\n-6EB4BC Created Zip Spec      14 (20) '2.0'\n-6EB4BD Created OS            00 (0) 'MS-DOS'\n-6EB4BE Extract Zip Spec      14 (20) '2.0'\n-6EB4BF Extract OS            00 (0) 'MS-DOS'\n-6EB4C0 General Purpose Flag  0000 (0)\n-6EB4C2 Compression Method    0000 (0) 'Stored'\n-6EB4C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB4C8 CRC                   00000000 (0)\n-6EB4CC Compressed Size       00000000 (0)\n-6EB4D0 Uncompressed Size     00000000 (0)\n-6EB4D4 Filename Length       002A (42)\n-6EB4D6 Extra Length          0009 (9)\n-6EB4D8 Comment Length        0000 (0)\n-6EB4DA Disk Start            0000 (0)\n-6EB4DC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB4DE Ext File Attributes   00000000 (0)\n-6EB4E2 Local Header Offset   00408C90 (4230288)\n-6EB4E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB4E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB512   Length              0005 (5)\n-6EB514   Flags               01 (1) 'Modification'\n-6EB515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB519 CENTRAL HEADER #1194  02014B50 (33639248)\n-6EB51D Created Zip Spec      14 (20) '2.0'\n-6EB51E Created OS            00 (0) 'MS-DOS'\n-6EB51F Extract Zip Spec      14 (20) '2.0'\n-6EB520 Extract OS            00 (0) 'MS-DOS'\n-6EB521 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB523 Compression Method    0000 (0) 'Stored'\n-6EB525 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB529 CRC                   C83DC072 (3359490162)\n-6EB52D Compressed Size       00001CFB (7419)\n-6EB531 Uncompressed Size     00001CFB (7419)\n-6EB535 Filename Length       0046 (70)\n-6EB537 Extra Length          0009 (9)\n-6EB539 Comment Length        0000 (0)\n-6EB53B Disk Start            0000 (0)\n-6EB53D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB53F Ext File Attributes   00000000 (0)\n-6EB543 Local Header Offset   00408CE1 (4230369)\n-6EB547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB58D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB58F   Length              0005 (5)\n-6EB591   Flags               01 (1) 'Modification'\n-6EB592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB596 CENTRAL HEADER #1195  02014B50 (33639248)\n-6EB59A Created Zip Spec      14 (20) '2.0'\n-6EB59B Created OS            00 (0) 'MS-DOS'\n-6EB59C Extract Zip Spec      14 (20) '2.0'\n-6EB59D Extract OS            00 (0) 'MS-DOS'\n-6EB59E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB5A0 Compression Method    0000 (0) 'Stored'\n-6EB5A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB5A6 CRC                   30CD3349 (818754377)\n-6EB5AA Compressed Size       00000623 (1571)\n-6EB5AE Uncompressed Size     00000623 (1571)\n-6EB5B2 Filename Length       004D (77)\n-6EB5B4 Extra Length          0009 (9)\n-6EB5B6 Comment Length        0000 (0)\n-6EB5B8 Disk Start            0000 (0)\n-6EB5BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB5BC Ext File Attributes   00000000 (0)\n-6EB5C0 Local Header Offset   0040AA59 (4237913)\n-6EB5C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB5C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB611 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB613   Length              0005 (5)\n-6EB615   Flags               01 (1) 'Modification'\n-6EB616   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB61A CENTRAL HEADER #1196  02014B50 (33639248)\n-6EB61E Created Zip Spec      14 (20) '2.0'\n-6EB61F Created OS            00 (0) 'MS-DOS'\n-6EB620 Extract Zip Spec      14 (20) '2.0'\n-6EB621 Extract OS            00 (0) 'MS-DOS'\n-6EB622 General Purpose Flag  0000 (0)\n-6EB624 Compression Method    0000 (0) 'Stored'\n-6EB626 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB62A CRC                   00000000 (0)\n-6EB62E Compressed Size       00000000 (0)\n-6EB632 Uncompressed Size     00000000 (0)\n-6EB636 Filename Length       0019 (25)\n-6EB638 Extra Length          0009 (9)\n-6EB63A Comment Length        0000 (0)\n-6EB63C Disk Start            0000 (0)\n-6EB63E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB640 Ext File Attributes   00000000 (0)\n-6EB644 Local Header Offset   0040B100 (4239616)\n-6EB648 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB648: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB661 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB663   Length              0005 (5)\n-6EB665   Flags               01 (1) 'Modification'\n-6EB666   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB66A CENTRAL HEADER #1197  02014B50 (33639248)\n-6EB66E Created Zip Spec      14 (20) '2.0'\n-6EB66F Created OS            00 (0) 'MS-DOS'\n-6EB670 Extract Zip Spec      14 (20) '2.0'\n-6EB671 Extract OS            00 (0) 'MS-DOS'\n-6EB672 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB674 Compression Method    0000 (0) 'Stored'\n-6EB676 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB67A CRC                   974A673F (2538235711)\n-6EB67E Compressed Size       0000050A (1290)\n-6EB682 Uncompressed Size     0000050A (1290)\n-6EB686 Filename Length       0027 (39)\n-6EB688 Extra Length          0009 (9)\n-6EB68A Comment Length        0000 (0)\n-6EB68C Disk Start            0000 (0)\n-6EB68E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB690 Ext File Attributes   00000000 (0)\n-6EB694 Local Header Offset   0040B140 (4239680)\n-6EB698 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB698: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB6BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB6C1   Length              0005 (5)\n-6EB6C3   Flags               01 (1) 'Modification'\n-6EB6C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB6C8 CENTRAL HEADER #1198  02014B50 (33639248)\n-6EB6CC Created Zip Spec      14 (20) '2.0'\n-6EB6CD Created OS            00 (0) 'MS-DOS'\n-6EB6CE Extract Zip Spec      14 (20) '2.0'\n-6EB6CF Extract OS            00 (0) 'MS-DOS'\n-6EB6D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB6D2 Compression Method    0000 (0) 'Stored'\n-6EB6D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB6D8 CRC                   8692FC93 (2257779859)\n-6EB6DC Compressed Size       00000396 (918)\n-6EB6E0 Uncompressed Size     00000396 (918)\n-6EB6E4 Filename Length       002C (44)\n-6EB6E6 Extra Length          0009 (9)\n-6EB6E8 Comment Length        0000 (0)\n-6EB6EA Disk Start            0000 (0)\n-6EB6EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB6EE Ext File Attributes   00000000 (0)\n-6EB6F2 Local Header Offset   0040B6A8 (4241064)\n-6EB6F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB6F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB722 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB724   Length              0005 (5)\n-6EB726   Flags               01 (1) 'Modification'\n-6EB727   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB72B CENTRAL HEADER #1199  02014B50 (33639248)\n-6EB72F Created Zip Spec      14 (20) '2.0'\n-6EB730 Created OS            00 (0) 'MS-DOS'\n-6EB731 Extract Zip Spec      14 (20) '2.0'\n-6EB732 Extract OS            00 (0) 'MS-DOS'\n-6EB733 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB735 Compression Method    0000 (0) 'Stored'\n-6EB737 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB73B CRC                   51FB7003 (1375432707)\n-6EB73F Compressed Size       0000044C (1100)\n-6EB743 Uncompressed Size     0000044C (1100)\n-6EB747 Filename Length       0025 (37)\n-6EB749 Extra Length          0009 (9)\n-6EB74B Comment Length        0000 (0)\n-6EB74D Disk Start            0000 (0)\n-6EB74F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB751 Ext File Attributes   00000000 (0)\n-6EB755 Local Header Offset   0040BAA1 (4242081)\n-6EB759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB77E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB780   Length              0005 (5)\n-6EB782   Flags               01 (1) 'Modification'\n-6EB783   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB787 CENTRAL HEADER #1200  02014B50 (33639248)\n-6EB78B Created Zip Spec      14 (20) '2.0'\n-6EB78C Created OS            00 (0) 'MS-DOS'\n-6EB78D Extract Zip Spec      14 (20) '2.0'\n-6EB78E Extract OS            00 (0) 'MS-DOS'\n-6EB78F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB791 Compression Method    0000 (0) 'Stored'\n-6EB793 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB797 CRC                   9DE5257E (2649040254)\n-6EB79B Compressed Size       000004ED (1261)\n-6EB79F Uncompressed Size     000004ED (1261)\n-6EB7A3 Filename Length       002C (44)\n-6EB7A5 Extra Length          0009 (9)\n-6EB7A7 Comment Length        0000 (0)\n-6EB7A9 Disk Start            0000 (0)\n-6EB7AB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB7AD Ext File Attributes   00000000 (0)\n-6EB7B1 Local Header Offset   0040BF49 (4243273)\n-6EB7B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB7B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB7E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB7E3   Length              0005 (5)\n-6EB7E5   Flags               01 (1) 'Modification'\n-6EB7E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB7EA CENTRAL HEADER #1201  02014B50 (33639248)\n-6EB7EE Created Zip Spec      14 (20) '2.0'\n-6EB7EF Created OS            00 (0) 'MS-DOS'\n-6EB7F0 Extract Zip Spec      14 (20) '2.0'\n-6EB7F1 Extract OS            00 (0) 'MS-DOS'\n-6EB7F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB7F4 Compression Method    0000 (0) 'Stored'\n-6EB7F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB7FA CRC                   78905E9C (2022727324)\n-6EB7FE Compressed Size       00000D44 (3396)\n-6EB802 Uncompressed Size     00000D44 (3396)\n-6EB806 Filename Length       002C (44)\n-6EB808 Extra Length          0009 (9)\n-6EB80A Comment Length        0000 (0)\n-6EB80C Disk Start            0000 (0)\n-6EB80E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB810 Ext File Attributes   00000000 (0)\n-6EB814 Local Header Offset   0040C499 (4244633)\n-6EB818 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB818: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB844 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB846   Length              0005 (5)\n-6EB848   Flags               01 (1) 'Modification'\n-6EB849   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB84D CENTRAL HEADER #1202  02014B50 (33639248)\n-6EB851 Created Zip Spec      14 (20) '2.0'\n-6EB852 Created OS            00 (0) 'MS-DOS'\n-6EB853 Extract Zip Spec      14 (20) '2.0'\n-6EB854 Extract OS            00 (0) 'MS-DOS'\n-6EB855 General Purpose Flag  0000 (0)\n-6EB857 Compression Method    0000 (0) 'Stored'\n-6EB859 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB85D CRC                   00000000 (0)\n-6EB861 Compressed Size       00000000 (0)\n-6EB865 Uncompressed Size     00000000 (0)\n-6EB869 Filename Length       001F (31)\n-6EB86B Extra Length          0009 (9)\n-6EB86D Comment Length        0000 (0)\n-6EB86F Disk Start            0000 (0)\n-6EB871 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB873 Ext File Attributes   00000000 (0)\n-6EB877 Local Header Offset   0040D240 (4248128)\n-6EB87B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB87B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB89A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB89C   Length              0005 (5)\n-6EB89E   Flags               01 (1) 'Modification'\n-6EB89F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB8A3 CENTRAL HEADER #1203  02014B50 (33639248)\n-6EB8A7 Created Zip Spec      14 (20) '2.0'\n-6EB8A8 Created OS            00 (0) 'MS-DOS'\n-6EB8A9 Extract Zip Spec      14 (20) '2.0'\n-6EB8AA Extract OS            00 (0) 'MS-DOS'\n-6EB8AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB8AD Compression Method    0000 (0) 'Stored'\n-6EB8AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB8B3 CRC                   EA5FE743 (3932153667)\n-6EB8B7 Compressed Size       00002351 (9041)\n-6EB8BB Uncompressed Size     00002351 (9041)\n-6EB8BF Filename Length       0030 (48)\n-6EB8C1 Extra Length          0009 (9)\n-6EB8C3 Comment Length        0000 (0)\n-6EB8C5 Disk Start            0000 (0)\n-6EB8C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB8C9 Ext File Attributes   00000000 (0)\n-6EB8CD Local Header Offset   0040D286 (4248198)\n-6EB8D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB8D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB901 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB903   Length              0005 (5)\n-6EB905   Flags               01 (1) 'Modification'\n-6EB906   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB90A CENTRAL HEADER #1204  02014B50 (33639248)\n-6EB90E Created Zip Spec      14 (20) '2.0'\n-6EB90F Created OS            00 (0) 'MS-DOS'\n-6EB910 Extract Zip Spec      14 (20) '2.0'\n-6EB911 Extract OS            00 (0) 'MS-DOS'\n-6EB912 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB914 Compression Method    0000 (0) 'Stored'\n-6EB916 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB91A CRC                   8FE44697 (2414102167)\n-6EB91E Compressed Size       00000B05 (2821)\n-6EB922 Uncompressed Size     00000B05 (2821)\n-6EB926 Filename Length       0037 (55)\n-6EB928 Extra Length          0009 (9)\n-6EB92A Comment Length        0000 (0)\n-6EB92C Disk Start            0000 (0)\n-6EB92E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB930 Ext File Attributes   00000000 (0)\n-6EB934 Local Header Offset   0040F63E (4257342)\n-6EB938 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB938: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB96F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB971   Length              0005 (5)\n-6EB973   Flags               01 (1) 'Modification'\n-6EB974   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB978 CENTRAL HEADER #1205  02014B50 (33639248)\n-6EB97C Created Zip Spec      14 (20) '2.0'\n-6EB97D Created OS            00 (0) 'MS-DOS'\n-6EB97E Extract Zip Spec      14 (20) '2.0'\n-6EB97F Extract OS            00 (0) 'MS-DOS'\n-6EB980 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB982 Compression Method    0000 (0) 'Stored'\n-6EB984 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB988 CRC                   8F262250 (2401641040)\n-6EB98C Compressed Size       00002B4E (11086)\n-6EB990 Uncompressed Size     00002B4E (11086)\n-6EB994 Filename Length       0031 (49)\n-6EB996 Extra Length          0009 (9)\n-6EB998 Comment Length        0000 (0)\n-6EB99A Disk Start            0000 (0)\n-6EB99C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EB99E Ext File Attributes   00000000 (0)\n-6EB9A2 Local Header Offset   004101B1 (4260273)\n-6EB9A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EB9A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EB9D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EB9D9   Length              0005 (5)\n-6EB9DB   Flags               01 (1) 'Modification'\n-6EB9DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EB9E0 CENTRAL HEADER #1206  02014B50 (33639248)\n-6EB9E4 Created Zip Spec      14 (20) '2.0'\n-6EB9E5 Created OS            00 (0) 'MS-DOS'\n-6EB9E6 Extract Zip Spec      14 (20) '2.0'\n-6EB9E7 Extract OS            00 (0) 'MS-DOS'\n-6EB9E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EB9EA Compression Method    0000 (0) 'Stored'\n-6EB9EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EB9F0 CRC                   DAB7FE63 (3669491299)\n-6EB9F4 Compressed Size       00001734 (5940)\n-6EB9F8 Uncompressed Size     00001734 (5940)\n-6EB9FC Filename Length       002E (46)\n-6EB9FE Extra Length          0009 (9)\n-6EBA00 Comment Length        0000 (0)\n-6EBA02 Disk Start            0000 (0)\n-6EBA04 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBA06 Ext File Attributes   00000000 (0)\n-6EBA0A Local Header Offset   00412D67 (4271463)\n-6EBA0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBA0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBA3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBA3E   Length              0005 (5)\n-6EBA40   Flags               01 (1) 'Modification'\n-6EBA41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBA45 CENTRAL HEADER #1207  02014B50 (33639248)\n-6EBA49 Created Zip Spec      14 (20) '2.0'\n-6EBA4A Created OS            00 (0) 'MS-DOS'\n-6EBA4B Extract Zip Spec      14 (20) '2.0'\n-6EBA4C Extract OS            00 (0) 'MS-DOS'\n-6EBA4D General Purpose Flag  0000 (0)\n-6EBA4F Compression Method    0000 (0) 'Stored'\n-6EBA51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBA55 CRC                   00000000 (0)\n-6EBA59 Compressed Size       00000000 (0)\n-6EBA5D Uncompressed Size     00000000 (0)\n-6EBA61 Filename Length       0021 (33)\n-6EBA63 Extra Length          0009 (9)\n-6EBA65 Comment Length        0000 (0)\n-6EBA67 Disk Start            0000 (0)\n-6EBA69 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBA6B Ext File Attributes   00000000 (0)\n-6EBA6F Local Header Offset   00414500 (4277504)\n-6EBA73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBA73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBA94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBA96   Length              0005 (5)\n-6EBA98   Flags               01 (1) 'Modification'\n-6EBA99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBA9D CENTRAL HEADER #1208  02014B50 (33639248)\n-6EBAA1 Created Zip Spec      14 (20) '2.0'\n-6EBAA2 Created OS            00 (0) 'MS-DOS'\n-6EBAA3 Extract Zip Spec      14 (20) '2.0'\n-6EBAA4 Extract OS            00 (0) 'MS-DOS'\n-6EBAA5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBAA7 Compression Method    0000 (0) 'Stored'\n-6EBAA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBAAD CRC                   FA4C7A14 (4199315988)\n-6EBAB1 Compressed Size       00001336 (4918)\n-6EBAB5 Uncompressed Size     00001336 (4918)\n-6EBAB9 Filename Length       003C (60)\n-6EBABB Extra Length          0009 (9)\n-6EBABD Comment Length        0000 (0)\n-6EBABF Disk Start            0000 (0)\n-6EBAC1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBAC3 Ext File Attributes   00000000 (0)\n-6EBAC7 Local Header Offset   00414548 (4277576)\n-6EBACB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBACB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBB07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBB09   Length              0005 (5)\n-6EBB0B   Flags               01 (1) 'Modification'\n-6EBB0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBB10 CENTRAL HEADER #1209  02014B50 (33639248)\n-6EBB14 Created Zip Spec      14 (20) '2.0'\n-6EBB15 Created OS            00 (0) 'MS-DOS'\n-6EBB16 Extract Zip Spec      14 (20) '2.0'\n-6EBB17 Extract OS            00 (0) 'MS-DOS'\n-6EBB18 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBB1A Compression Method    0000 (0) 'Stored'\n-6EBB1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBB20 CRC                   9C73731D (2624811805)\n-6EBB24 Compressed Size       00000460 (1120)\n-6EBB28 Uncompressed Size     00000460 (1120)\n-6EBB2C Filename Length       003C (60)\n-6EBB2E Extra Length          0009 (9)\n-6EBB30 Comment Length        0000 (0)\n-6EBB32 Disk Start            0000 (0)\n-6EBB34 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBB36 Ext File Attributes   00000000 (0)\n-6EBB3A Local Header Offset   004158F1 (4282609)\n-6EBB3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBB3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBB7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBB7C   Length              0005 (5)\n-6EBB7E   Flags               01 (1) 'Modification'\n-6EBB7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBB83 CENTRAL HEADER #1210  02014B50 (33639248)\n-6EBB87 Created Zip Spec      14 (20) '2.0'\n-6EBB88 Created OS            00 (0) 'MS-DOS'\n-6EBB89 Extract Zip Spec      14 (20) '2.0'\n-6EBB8A Extract OS            00 (0) 'MS-DOS'\n-6EBB8B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBB8D Compression Method    0000 (0) 'Stored'\n-6EBB8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBB93 CRC                   10FA9E81 (284860033)\n-6EBB97 Compressed Size       000021D4 (8660)\n-6EBB9B Uncompressed Size     000021D4 (8660)\n-6EBB9F Filename Length       0033 (51)\n-6EBBA1 Extra Length          0009 (9)\n-6EBBA3 Comment Length        0000 (0)\n-6EBBA5 Disk Start            0000 (0)\n-6EBBA7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBBA9 Ext File Attributes   00000000 (0)\n-6EBBAD Local Header Offset   00415DC4 (4283844)\n-6EBBB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBBB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBBE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBBE6   Length              0005 (5)\n-6EBBE8   Flags               01 (1) 'Modification'\n-6EBBE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBBED CENTRAL HEADER #1211  02014B50 (33639248)\n-6EBBF1 Created Zip Spec      14 (20) '2.0'\n-6EBBF2 Created OS            00 (0) 'MS-DOS'\n-6EBBF3 Extract Zip Spec      14 (20) '2.0'\n-6EBBF4 Extract OS            00 (0) 'MS-DOS'\n-6EBBF5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBBF7 Compression Method    0000 (0) 'Stored'\n-6EBBF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBBFD CRC                   A1A88F0D (2712178445)\n-6EBC01 Compressed Size       00000460 (1120)\n-6EBC05 Uncompressed Size     00000460 (1120)\n-6EBC09 Filename Length       003C (60)\n-6EBC0B Extra Length          0009 (9)\n-6EBC0D Comment Length        0000 (0)\n-6EBC0F Disk Start            0000 (0)\n-6EBC11 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBC13 Ext File Attributes   00000000 (0)\n-6EBC17 Local Header Offset   00418002 (4292610)\n-6EBC1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBC1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBC57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBC59   Length              0005 (5)\n-6EBC5B   Flags               01 (1) 'Modification'\n-6EBC5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBC60 CENTRAL HEADER #1212  02014B50 (33639248)\n-6EBC64 Created Zip Spec      14 (20) '2.0'\n-6EBC65 Created OS            00 (0) 'MS-DOS'\n-6EBC66 Extract Zip Spec      14 (20) '2.0'\n-6EBC67 Extract OS            00 (0) 'MS-DOS'\n-6EBC68 General Purpose Flag  0000 (0)\n-6EBC6A Compression Method    0000 (0) 'Stored'\n-6EBC6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBC70 CRC                   00000000 (0)\n-6EBC74 Compressed Size       00000000 (0)\n-6EBC78 Uncompressed Size     00000000 (0)\n-6EBC7C Filename Length       0015 (21)\n-6EBC7E Extra Length          0009 (9)\n-6EBC80 Comment Length        0000 (0)\n-6EBC82 Disk Start            0000 (0)\n-6EBC84 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBC86 Ext File Attributes   00000000 (0)\n-6EBC8A Local Header Offset   004184D5 (4293845)\n-6EBC8E Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBC8E: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBCA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBCA5   Length              0005 (5)\n-6EBCA7   Flags               01 (1) 'Modification'\n-6EBCA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBCAC CENTRAL HEADER #1213  02014B50 (33639248)\n-6EBCB0 Created Zip Spec      14 (20) '2.0'\n-6EBCB1 Created OS            00 (0) 'MS-DOS'\n-6EBCB2 Extract Zip Spec      14 (20) '2.0'\n-6EBCB3 Extract OS            00 (0) 'MS-DOS'\n-6EBCB4 General Purpose Flag  0000 (0)\n-6EBCB6 Compression Method    0000 (0) 'Stored'\n-6EBCB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBCBC CRC                   00000000 (0)\n-6EBCC0 Compressed Size       00000000 (0)\n-6EBCC4 Uncompressed Size     00000000 (0)\n-6EBCC8 Filename Length       001D (29)\n-6EBCCA Extra Length          0009 (9)\n-6EBCCC Comment Length        0000 (0)\n-6EBCCE Disk Start            0000 (0)\n-6EBCD0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBCD2 Ext File Attributes   00000000 (0)\n-6EBCD6 Local Header Offset   00418511 (4293905)\n-6EBCDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBCDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBCF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBCF9   Length              0005 (5)\n-6EBCFB   Flags               01 (1) 'Modification'\n-6EBCFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBD00 CENTRAL HEADER #1214  02014B50 (33639248)\n-6EBD04 Created Zip Spec      14 (20) '2.0'\n-6EBD05 Created OS            00 (0) 'MS-DOS'\n-6EBD06 Extract Zip Spec      14 (20) '2.0'\n-6EBD07 Extract OS            00 (0) 'MS-DOS'\n-6EBD08 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBD0A Compression Method    0000 (0) 'Stored'\n-6EBD0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBD10 CRC                   FE44AB9A (4265913242)\n-6EBD14 Compressed Size       000003F7 (1015)\n-6EBD18 Uncompressed Size     000003F7 (1015)\n-6EBD1C Filename Length       002D (45)\n-6EBD1E Extra Length          0009 (9)\n-6EBD20 Comment Length        0000 (0)\n-6EBD22 Disk Start            0000 (0)\n-6EBD24 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBD26 Ext File Attributes   00000000 (0)\n-6EBD2A Local Header Offset   00418555 (4293973)\n-6EBD2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBD2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBD5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBD5D   Length              0005 (5)\n-6EBD5F   Flags               01 (1) 'Modification'\n-6EBD60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBD64 CENTRAL HEADER #1215  02014B50 (33639248)\n-6EBD68 Created Zip Spec      14 (20) '2.0'\n-6EBD69 Created OS            00 (0) 'MS-DOS'\n-6EBD6A Extract Zip Spec      14 (20) '2.0'\n-6EBD6B Extract OS            00 (0) 'MS-DOS'\n-6EBD6C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBD6E Compression Method    0000 (0) 'Stored'\n-6EBD70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBD74 CRC                   C783A617 (3347293719)\n-6EBD78 Compressed Size       00000880 (2176)\n-6EBD7C Uncompressed Size     00000880 (2176)\n-6EBD80 Filename Length       0030 (48)\n-6EBD82 Extra Length          0009 (9)\n-6EBD84 Comment Length        0000 (0)\n-6EBD86 Disk Start            0000 (0)\n-6EBD88 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBD8A Ext File Attributes   00000000 (0)\n-6EBD8E Local Header Offset   004189B0 (4295088)\n-6EBD92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBD92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBDC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBDC4   Length              0005 (5)\n-6EBDC6   Flags               01 (1) 'Modification'\n-6EBDC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBDCB CENTRAL HEADER #1216  02014B50 (33639248)\n-6EBDCF Created Zip Spec      14 (20) '2.0'\n-6EBDD0 Created OS            00 (0) 'MS-DOS'\n-6EBDD1 Extract Zip Spec      14 (20) '2.0'\n-6EBDD2 Extract OS            00 (0) 'MS-DOS'\n-6EBDD3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBDD5 Compression Method    0000 (0) 'Stored'\n-6EBDD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBDDB CRC                   F2C44151 (4072948049)\n-6EBDDF Compressed Size       000004A6 (1190)\n-6EBDE3 Uncompressed Size     000004A6 (1190)\n-6EBDE7 Filename Length       0037 (55)\n-6EBDE9 Extra Length          0009 (9)\n-6EBDEB Comment Length        0000 (0)\n-6EBDED Disk Start            0000 (0)\n-6EBDEF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBDF1 Ext File Attributes   00000000 (0)\n-6EBDF5 Local Header Offset   00419297 (4297367)\n-6EBDF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBDF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBE30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBE32   Length              0005 (5)\n-6EBE34   Flags               01 (1) 'Modification'\n-6EBE35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBE39 CENTRAL HEADER #1217  02014B50 (33639248)\n-6EBE3D Created Zip Spec      14 (20) '2.0'\n-6EBE3E Created OS            00 (0) 'MS-DOS'\n-6EBE3F Extract Zip Spec      14 (20) '2.0'\n-6EBE40 Extract OS            00 (0) 'MS-DOS'\n-6EBE41 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBE43 Compression Method    0000 (0) 'Stored'\n-6EBE45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBE49 CRC                   D40E78F4 (3557718260)\n-6EBE4D Compressed Size       000004A8 (1192)\n-6EBE51 Uncompressed Size     000004A8 (1192)\n-6EBE55 Filename Length       0031 (49)\n-6EBE57 Extra Length          0009 (9)\n-6EBE59 Comment Length        0000 (0)\n-6EBE5B Disk Start            0000 (0)\n-6EBE5D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBE5F Ext File Attributes   00000000 (0)\n-6EBE63 Local Header Offset   004197AB (4298667)\n-6EBE67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBE67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBE98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBE9A   Length              0005 (5)\n-6EBE9C   Flags               01 (1) 'Modification'\n-6EBE9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBEA1 CENTRAL HEADER #1218  02014B50 (33639248)\n-6EBEA5 Created Zip Spec      14 (20) '2.0'\n-6EBEA6 Created OS            00 (0) 'MS-DOS'\n-6EBEA7 Extract Zip Spec      14 (20) '2.0'\n-6EBEA8 Extract OS            00 (0) 'MS-DOS'\n-6EBEA9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBEAB Compression Method    0000 (0) 'Stored'\n-6EBEAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBEB1 CRC                   2A63E263 (711189091)\n-6EBEB5 Compressed Size       0000061D (1565)\n-6EBEB9 Uncompressed Size     0000061D (1565)\n-6EBEBD Filename Length       0038 (56)\n-6EBEBF Extra Length          0009 (9)\n-6EBEC1 Comment Length        0000 (0)\n-6EBEC3 Disk Start            0000 (0)\n-6EBEC5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBEC7 Ext File Attributes   00000000 (0)\n-6EBECB Local Header Offset   00419CBB (4299963)\n-6EBECF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBECF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBF07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBF09   Length              0005 (5)\n-6EBF0B   Flags               01 (1) 'Modification'\n-6EBF0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBF10 CENTRAL HEADER #1219  02014B50 (33639248)\n-6EBF14 Created Zip Spec      14 (20) '2.0'\n-6EBF15 Created OS            00 (0) 'MS-DOS'\n-6EBF16 Extract Zip Spec      14 (20) '2.0'\n-6EBF17 Extract OS            00 (0) 'MS-DOS'\n-6EBF18 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBF1A Compression Method    0000 (0) 'Stored'\n-6EBF1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBF20 CRC                   D473D979 (3564362105)\n-6EBF24 Compressed Size       00000400 (1024)\n-6EBF28 Uncompressed Size     00000400 (1024)\n-6EBF2C Filename Length       0038 (56)\n-6EBF2E Extra Length          0009 (9)\n-6EBF30 Comment Length        0000 (0)\n-6EBF32 Disk Start            0000 (0)\n-6EBF34 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBF36 Ext File Attributes   00000000 (0)\n-6EBF3A Local Header Offset   0041A347 (4301639)\n-6EBF3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBF3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBF76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBF78   Length              0005 (5)\n-6EBF7A   Flags               01 (1) 'Modification'\n-6EBF7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBF7F CENTRAL HEADER #1220  02014B50 (33639248)\n-6EBF83 Created Zip Spec      14 (20) '2.0'\n-6EBF84 Created OS            00 (0) 'MS-DOS'\n-6EBF85 Extract Zip Spec      14 (20) '2.0'\n-6EBF86 Extract OS            00 (0) 'MS-DOS'\n-6EBF87 General Purpose Flag  0000 (0)\n-6EBF89 Compression Method    0000 (0) 'Stored'\n-6EBF8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBF8F CRC                   00000000 (0)\n-6EBF93 Compressed Size       00000000 (0)\n-6EBF97 Uncompressed Size     00000000 (0)\n-6EBF9B Filename Length       0028 (40)\n-6EBF9D Extra Length          0009 (9)\n-6EBF9F Comment Length        0000 (0)\n-6EBFA1 Disk Start            0000 (0)\n-6EBFA3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EBFA5 Ext File Attributes   00000000 (0)\n-6EBFA9 Local Header Offset   0041A7B6 (4302774)\n-6EBFAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EBFAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EBFD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EBFD7   Length              0005 (5)\n-6EBFD9   Flags               01 (1) 'Modification'\n-6EBFDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EBFDE CENTRAL HEADER #1221  02014B50 (33639248)\n-6EBFE2 Created Zip Spec      14 (20) '2.0'\n-6EBFE3 Created OS            00 (0) 'MS-DOS'\n-6EBFE4 Extract Zip Spec      14 (20) '2.0'\n-6EBFE5 Extract OS            00 (0) 'MS-DOS'\n-6EBFE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EBFE8 Compression Method    0000 (0) 'Stored'\n-6EBFEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EBFEE CRC                   45D6532E (1171673902)\n-6EBFF2 Compressed Size       00000647 (1607)\n-6EBFF6 Uncompressed Size     00000647 (1607)\n-6EBFFA Filename Length       0030 (48)\n-6EBFFC Extra Length          0009 (9)\n-6EBFFE Comment Length        0000 (0)\n-6EC000 Disk Start            0000 (0)\n-6EC002 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC004 Ext File Attributes   00000000 (0)\n-6EC008 Local Header Offset   0041A805 (4302853)\n-6EC00C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC00C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC03C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC03E   Length              0005 (5)\n-6EC040   Flags               01 (1) 'Modification'\n-6EC041   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC045 CENTRAL HEADER #1222  02014B50 (33639248)\n-6EC049 Created Zip Spec      14 (20) '2.0'\n-6EC04A Created OS            00 (0) 'MS-DOS'\n-6EC04B Extract Zip Spec      14 (20) '2.0'\n-6EC04C Extract OS            00 (0) 'MS-DOS'\n-6EC04D General Purpose Flag  0000 (0)\n-6EC04F Compression Method    0000 (0) 'Stored'\n-6EC051 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC055 CRC                   00000000 (0)\n-6EC059 Compressed Size       00000000 (0)\n-6EC05D Uncompressed Size     00000000 (0)\n-6EC061 Filename Length       0025 (37)\n-6EC063 Extra Length          0009 (9)\n-6EC065 Comment Length        0000 (0)\n-6EC067 Disk Start            0000 (0)\n-6EC069 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC06B Ext File Attributes   00000000 (0)\n-6EC06F Local Header Offset   0041AEB3 (4304563)\n-6EC073 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC073: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC098 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC09A   Length              0005 (5)\n-6EC09C   Flags               01 (1) 'Modification'\n-6EC09D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC0A1 CENTRAL HEADER #1223  02014B50 (33639248)\n-6EC0A5 Created Zip Spec      14 (20) '2.0'\n-6EC0A6 Created OS            00 (0) 'MS-DOS'\n-6EC0A7 Extract Zip Spec      14 (20) '2.0'\n-6EC0A8 Extract OS            00 (0) 'MS-DOS'\n-6EC0A9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC0AB Compression Method    0000 (0) 'Stored'\n-6EC0AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC0B1 CRC                   D812ECFA (3625118970)\n-6EC0B5 Compressed Size       00000F93 (3987)\n-6EC0B9 Uncompressed Size     00000F93 (3987)\n-6EC0BD Filename Length       003C (60)\n-6EC0BF Extra Length          0009 (9)\n-6EC0C1 Comment Length        0000 (0)\n-6EC0C3 Disk Start            0000 (0)\n-6EC0C5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC0C7 Ext File Attributes   00000000 (0)\n-6EC0CB Local Header Offset   0041AEFF (4304639)\n-6EC0CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC0CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC10B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC10D   Length              0005 (5)\n-6EC10F   Flags               01 (1) 'Modification'\n-6EC110   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC114 CENTRAL HEADER #1224  02014B50 (33639248)\n-6EC118 Created Zip Spec      14 (20) '2.0'\n-6EC119 Created OS            00 (0) 'MS-DOS'\n-6EC11A Extract Zip Spec      14 (20) '2.0'\n-6EC11B Extract OS            00 (0) 'MS-DOS'\n-6EC11C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC11E Compression Method    0000 (0) 'Stored'\n-6EC120 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC124 CRC                   E1096065 (3775488101)\n-6EC128 Compressed Size       000006BD (1725)\n-6EC12C Uncompressed Size     000006BD (1725)\n-6EC130 Filename Length       003E (62)\n-6EC132 Extra Length          0009 (9)\n-6EC134 Comment Length        0000 (0)\n-6EC136 Disk Start            0000 (0)\n-6EC138 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC13A Ext File Attributes   00000000 (0)\n-6EC13E Local Header Offset   0041BF05 (4308741)\n-6EC142 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC142: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC180 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC182   Length              0005 (5)\n-6EC184   Flags               01 (1) 'Modification'\n-6EC185   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC189 CENTRAL HEADER #1225  02014B50 (33639248)\n-6EC18D Created Zip Spec      14 (20) '2.0'\n-6EC18E Created OS            00 (0) 'MS-DOS'\n-6EC18F Extract Zip Spec      14 (20) '2.0'\n-6EC190 Extract OS            00 (0) 'MS-DOS'\n-6EC191 General Purpose Flag  0000 (0)\n-6EC193 Compression Method    0000 (0) 'Stored'\n-6EC195 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC199 CRC                   00000000 (0)\n-6EC19D Compressed Size       00000000 (0)\n-6EC1A1 Uncompressed Size     00000000 (0)\n-6EC1A5 Filename Length       0022 (34)\n-6EC1A7 Extra Length          0009 (9)\n-6EC1A9 Comment Length        0000 (0)\n-6EC1AB Disk Start            0000 (0)\n-6EC1AD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC1AF Ext File Attributes   00000000 (0)\n-6EC1B3 Local Header Offset   0041C637 (4310583)\n-6EC1B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC1B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC1D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC1DB   Length              0005 (5)\n-6EC1DD   Flags               01 (1) 'Modification'\n-6EC1DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC1E2 CENTRAL HEADER #1226  02014B50 (33639248)\n-6EC1E6 Created Zip Spec      14 (20) '2.0'\n-6EC1E7 Created OS            00 (0) 'MS-DOS'\n-6EC1E8 Extract Zip Spec      14 (20) '2.0'\n-6EC1E9 Extract OS            00 (0) 'MS-DOS'\n-6EC1EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC1EC Compression Method    0000 (0) 'Stored'\n-6EC1EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC1F2 CRC                   86EEED41 (2263805249)\n-6EC1F6 Compressed Size       00000E84 (3716)\n-6EC1FA Uncompressed Size     00000E84 (3716)\n-6EC1FE Filename Length       002B (43)\n-6EC200 Extra Length          0009 (9)\n-6EC202 Comment Length        0000 (0)\n-6EC204 Disk Start            0000 (0)\n-6EC206 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC208 Ext File Attributes   00000000 (0)\n-6EC20C Local Header Offset   0041C680 (4310656)\n-6EC210 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC210: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC23B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC23D   Length              0005 (5)\n-6EC23F   Flags               01 (1) 'Modification'\n-6EC240   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC244 CENTRAL HEADER #1227  02014B50 (33639248)\n-6EC248 Created Zip Spec      14 (20) '2.0'\n-6EC249 Created OS            00 (0) 'MS-DOS'\n-6EC24A Extract Zip Spec      14 (20) '2.0'\n-6EC24B Extract OS            00 (0) 'MS-DOS'\n-6EC24C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC24E Compression Method    0000 (0) 'Stored'\n-6EC250 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC254 CRC                   1E97BBCE (513260494)\n-6EC258 Compressed Size       00000D38 (3384)\n-6EC25C Uncompressed Size     00000D38 (3384)\n-6EC260 Filename Length       0029 (41)\n-6EC262 Extra Length          0009 (9)\n-6EC264 Comment Length        0000 (0)\n-6EC266 Disk Start            0000 (0)\n-6EC268 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC26A Ext File Attributes   00000000 (0)\n-6EC26E Local Header Offset   0041D566 (4314470)\n-6EC272 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC272: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC29B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC29D   Length              0005 (5)\n-6EC29F   Flags               01 (1) 'Modification'\n-6EC2A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC2A4 CENTRAL HEADER #1228  02014B50 (33639248)\n-6EC2A8 Created Zip Spec      14 (20) '2.0'\n-6EC2A9 Created OS            00 (0) 'MS-DOS'\n-6EC2AA Extract Zip Spec      14 (20) '2.0'\n-6EC2AB Extract OS            00 (0) 'MS-DOS'\n-6EC2AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC2AE Compression Method    0000 (0) 'Stored'\n-6EC2B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC2B4 CRC                   5DD1BF6F (1574027119)\n-6EC2B8 Compressed Size       00000D02 (3330)\n-6EC2BC Uncompressed Size     00000D02 (3330)\n-6EC2C0 Filename Length       002E (46)\n-6EC2C2 Extra Length          0009 (9)\n-6EC2C4 Comment Length        0000 (0)\n-6EC2C6 Disk Start            0000 (0)\n-6EC2C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC2CA Ext File Attributes   00000000 (0)\n-6EC2CE Local Header Offset   0041E2FE (4317950)\n-6EC2D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC2D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC300 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC302   Length              0005 (5)\n-6EC304   Flags               01 (1) 'Modification'\n-6EC305   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC309 CENTRAL HEADER #1229  02014B50 (33639248)\n-6EC30D Created Zip Spec      14 (20) '2.0'\n-6EC30E Created OS            00 (0) 'MS-DOS'\n-6EC30F Extract Zip Spec      14 (20) '2.0'\n-6EC310 Extract OS            00 (0) 'MS-DOS'\n-6EC311 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC313 Compression Method    0000 (0) 'Stored'\n-6EC315 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC319 CRC                   677CD800 (1736235008)\n-6EC31D Compressed Size       00000D35 (3381)\n-6EC321 Uncompressed Size     00000D35 (3381)\n-6EC325 Filename Length       002D (45)\n-6EC327 Extra Length          0009 (9)\n-6EC329 Comment Length        0000 (0)\n-6EC32B Disk Start            0000 (0)\n-6EC32D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC32F Ext File Attributes   00000000 (0)\n-6EC333 Local Header Offset   0041F065 (4321381)\n-6EC337 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC337: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC364 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC366   Length              0005 (5)\n-6EC368   Flags               01 (1) 'Modification'\n-6EC369   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC36D CENTRAL HEADER #1230  02014B50 (33639248)\n-6EC371 Created Zip Spec      14 (20) '2.0'\n-6EC372 Created OS            00 (0) 'MS-DOS'\n-6EC373 Extract Zip Spec      14 (20) '2.0'\n-6EC374 Extract OS            00 (0) 'MS-DOS'\n-6EC375 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC377 Compression Method    0000 (0) 'Stored'\n-6EC379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC37D CRC                   15091C1F (352918559)\n-6EC381 Compressed Size       00000B30 (2864)\n-6EC385 Uncompressed Size     00000B30 (2864)\n-6EC389 Filename Length       0036 (54)\n-6EC38B Extra Length          0009 (9)\n-6EC38D Comment Length        0000 (0)\n-6EC38F Disk Start            0000 (0)\n-6EC391 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC393 Ext File Attributes   00000000 (0)\n-6EC397 Local Header Offset   0041FDFE (4324862)\n-6EC39B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC39B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC3D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC3D3   Length              0005 (5)\n-6EC3D5   Flags               01 (1) 'Modification'\n-6EC3D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC3DA CENTRAL HEADER #1231  02014B50 (33639248)\n-6EC3DE Created Zip Spec      14 (20) '2.0'\n-6EC3DF Created OS            00 (0) 'MS-DOS'\n-6EC3E0 Extract Zip Spec      14 (20) '2.0'\n-6EC3E1 Extract OS            00 (0) 'MS-DOS'\n-6EC3E2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC3E4 Compression Method    0000 (0) 'Stored'\n-6EC3E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC3EA CRC                   AADA64B2 (2866439346)\n-6EC3EE Compressed Size       00000519 (1305)\n-6EC3F2 Uncompressed Size     00000519 (1305)\n-6EC3F6 Filename Length       002B (43)\n-6EC3F8 Extra Length          0009 (9)\n-6EC3FA Comment Length        0000 (0)\n-6EC3FC Disk Start            0000 (0)\n-6EC3FE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC400 Ext File Attributes   00000000 (0)\n-6EC404 Local Header Offset   0042099B (4327835)\n-6EC408 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC408: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC435   Length              0005 (5)\n-6EC437   Flags               01 (1) 'Modification'\n-6EC438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC43C CENTRAL HEADER #1232  02014B50 (33639248)\n-6EC440 Created Zip Spec      14 (20) '2.0'\n-6EC441 Created OS            00 (0) 'MS-DOS'\n-6EC442 Extract Zip Spec      14 (20) '2.0'\n-6EC443 Extract OS            00 (0) 'MS-DOS'\n-6EC444 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC446 Compression Method    0000 (0) 'Stored'\n-6EC448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC44C CRC                   CD1091C2 (3440415170)\n-6EC450 Compressed Size       00001084 (4228)\n-6EC454 Uncompressed Size     00001084 (4228)\n-6EC458 Filename Length       002C (44)\n-6EC45A Extra Length          0009 (9)\n-6EC45C Comment Length        0000 (0)\n-6EC45E Disk Start            0000 (0)\n-6EC460 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC462 Ext File Attributes   00000000 (0)\n-6EC466 Local Header Offset   00420F16 (4329238)\n-6EC46A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC46A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC496 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC498   Length              0005 (5)\n-6EC49A   Flags               01 (1) 'Modification'\n-6EC49B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC49F CENTRAL HEADER #1233  02014B50 (33639248)\n-6EC4A3 Created Zip Spec      14 (20) '2.0'\n-6EC4A4 Created OS            00 (0) 'MS-DOS'\n-6EC4A5 Extract Zip Spec      14 (20) '2.0'\n-6EC4A6 Extract OS            00 (0) 'MS-DOS'\n-6EC4A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC4A9 Compression Method    0000 (0) 'Stored'\n-6EC4AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC4AF CRC                   CA6DC12E (3396190510)\n-6EC4B3 Compressed Size       00000600 (1536)\n-6EC4B7 Uncompressed Size     00000600 (1536)\n-6EC4BB Filename Length       002E (46)\n-6EC4BD Extra Length          0009 (9)\n-6EC4BF Comment Length        0000 (0)\n-6EC4C1 Disk Start            0000 (0)\n-6EC4C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC4C5 Ext File Attributes   00000000 (0)\n-6EC4C9 Local Header Offset   00421FFD (4333565)\n-6EC4CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC4CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC4FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC4FD   Length              0005 (5)\n-6EC4FF   Flags               01 (1) 'Modification'\n-6EC500   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC504 CENTRAL HEADER #1234  02014B50 (33639248)\n-6EC508 Created Zip Spec      14 (20) '2.0'\n-6EC509 Created OS            00 (0) 'MS-DOS'\n-6EC50A Extract Zip Spec      14 (20) '2.0'\n-6EC50B Extract OS            00 (0) 'MS-DOS'\n-6EC50C General Purpose Flag  0000 (0)\n-6EC50E Compression Method    0000 (0) 'Stored'\n-6EC510 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC514 CRC                   00000000 (0)\n-6EC518 Compressed Size       00000000 (0)\n-6EC51C Uncompressed Size     00000000 (0)\n-6EC520 Filename Length       0022 (34)\n-6EC522 Extra Length          0009 (9)\n-6EC524 Comment Length        0000 (0)\n-6EC526 Disk Start            0000 (0)\n-6EC528 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC52A Ext File Attributes   00000000 (0)\n-6EC52E Local Header Offset   00422662 (4335202)\n-6EC532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC554 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC556   Length              0005 (5)\n-6EC558   Flags               01 (1) 'Modification'\n-6EC559   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC55D CENTRAL HEADER #1235  02014B50 (33639248)\n-6EC561 Created Zip Spec      14 (20) '2.0'\n-6EC562 Created OS            00 (0) 'MS-DOS'\n-6EC563 Extract Zip Spec      14 (20) '2.0'\n-6EC564 Extract OS            00 (0) 'MS-DOS'\n-6EC565 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC567 Compression Method    0000 (0) 'Stored'\n-6EC569 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC56D CRC                   8BEA30C0 (2347380928)\n-6EC571 Compressed Size       00000893 (2195)\n-6EC575 Uncompressed Size     00000893 (2195)\n-6EC579 Filename Length       0034 (52)\n-6EC57B Extra Length          0009 (9)\n-6EC57D Comment Length        0000 (0)\n-6EC57F Disk Start            0000 (0)\n-6EC581 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC583 Ext File Attributes   00000000 (0)\n-6EC587 Local Header Offset   004226AB (4335275)\n-6EC58B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC58B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC5BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC5C1   Length              0005 (5)\n-6EC5C3   Flags               01 (1) 'Modification'\n-6EC5C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC5C8 CENTRAL HEADER #1236  02014B50 (33639248)\n-6EC5CC Created Zip Spec      14 (20) '2.0'\n-6EC5CD Created OS            00 (0) 'MS-DOS'\n-6EC5CE Extract Zip Spec      14 (20) '2.0'\n-6EC5CF Extract OS            00 (0) 'MS-DOS'\n-6EC5D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC5D2 Compression Method    0000 (0) 'Stored'\n-6EC5D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC5D8 CRC                   9A0D91FA (2584580602)\n-6EC5DC Compressed Size       00000A9D (2717)\n-6EC5E0 Uncompressed Size     00000A9D (2717)\n-6EC5E4 Filename Length       0038 (56)\n-6EC5E6 Extra Length          0009 (9)\n-6EC5E8 Comment Length        0000 (0)\n-6EC5EA Disk Start            0000 (0)\n-6EC5EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC5EE Ext File Attributes   00000000 (0)\n-6EC5F2 Local Header Offset   00422FA9 (4337577)\n-6EC5F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC5F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC62E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC630   Length              0005 (5)\n-6EC632   Flags               01 (1) 'Modification'\n-6EC633   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC637 CENTRAL HEADER #1237  02014B50 (33639248)\n-6EC63B Created Zip Spec      14 (20) '2.0'\n-6EC63C Created OS            00 (0) 'MS-DOS'\n-6EC63D Extract Zip Spec      14 (20) '2.0'\n-6EC63E Extract OS            00 (0) 'MS-DOS'\n-6EC63F General Purpose Flag  0000 (0)\n-6EC641 Compression Method    0000 (0) 'Stored'\n-6EC643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC647 CRC                   00000000 (0)\n-6EC64B Compressed Size       00000000 (0)\n-6EC64F Uncompressed Size     00000000 (0)\n-6EC653 Filename Length       001C (28)\n-6EC655 Extra Length          0009 (9)\n-6EC657 Comment Length        0000 (0)\n-6EC659 Disk Start            0000 (0)\n-6EC65B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC65D Ext File Attributes   00000000 (0)\n-6EC661 Local Header Offset   00423AB5 (4340405)\n-6EC665 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC665: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC681 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC683   Length              0005 (5)\n-6EC685   Flags               01 (1) 'Modification'\n-6EC686   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC68A CENTRAL HEADER #1238  02014B50 (33639248)\n-6EC68E Created Zip Spec      14 (20) '2.0'\n-6EC68F Created OS            00 (0) 'MS-DOS'\n-6EC690 Extract Zip Spec      14 (20) '2.0'\n-6EC691 Extract OS            00 (0) 'MS-DOS'\n-6EC692 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC694 Compression Method    0000 (0) 'Stored'\n-6EC696 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC69A CRC                   93C23403 (2478978051)\n-6EC69E Compressed Size       000003DE (990)\n-6EC6A2 Uncompressed Size     000003DE (990)\n-6EC6A6 Filename Length       002D (45)\n-6EC6A8 Extra Length          0009 (9)\n-6EC6AA Comment Length        0000 (0)\n-6EC6AC Disk Start            0000 (0)\n-6EC6AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC6B0 Ext File Attributes   00000000 (0)\n-6EC6B4 Local Header Offset   00423AF8 (4340472)\n-6EC6B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6E53B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E53BA   Length              0005 (5)\n+6E53BC   Flags               01 (1) 'Modification'\n+6E53BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E53C1 CENTRAL HEADER #37    02014B50 (33639248)\n+6E53C5 Created Zip Spec      14 (20) '2.0'\n+6E53C6 Created OS            00 (0) 'MS-DOS'\n+6E53C7 Extract Zip Spec      14 (20) '2.0'\n+6E53C8 Extract OS            00 (0) 'MS-DOS'\n+6E53C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E53CB Compression Method    0000 (0) 'Stored'\n+6E53CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E53D1 CRC                   D55F5F8C (3579797388)\n+6E53D5 Compressed Size       000000A3 (163)\n+6E53D9 Uncompressed Size     000000A3 (163)\n+6E53DD Filename Length       003C (60)\n+6E53DF Extra Length          0009 (9)\n+6E53E1 Comment Length        0000 (0)\n+6E53E3 Disk Start            0000 (0)\n+6E53E5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E53E7 Ext File Attributes   00000000 (0)\n+6E53EB Local Header Offset   000408BE (264382)\n+6E53EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E53EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E542B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E542D   Length              0005 (5)\n+6E542F   Flags               01 (1) 'Modification'\n+6E5430   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5434 CENTRAL HEADER #38    02014B50 (33639248)\n+6E5438 Created Zip Spec      14 (20) '2.0'\n+6E5439 Created OS            00 (0) 'MS-DOS'\n+6E543A Extract Zip Spec      14 (20) '2.0'\n+6E543B Extract OS            00 (0) 'MS-DOS'\n+6E543C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E543E Compression Method    0000 (0) 'Stored'\n+6E5440 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5444 CRC                   ACE74F1F (2900840223)\n+6E5448 Compressed Size       0000003D (61)\n+6E544C Uncompressed Size     0000003D (61)\n+6E5450 Filename Length       0046 (70)\n+6E5452 Extra Length          0009 (9)\n+6E5454 Comment Length        0000 (0)\n+6E5456 Disk Start            0000 (0)\n+6E5458 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E545A Ext File Attributes   00000000 (0)\n+6E545E Local Header Offset   000409D4 (264660)\n+6E5462 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5462: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E54A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E54AA   Length              0005 (5)\n+6E54AC   Flags               01 (1) 'Modification'\n+6E54AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E54B1 CENTRAL HEADER #39    02014B50 (33639248)\n+6E54B5 Created Zip Spec      14 (20) '2.0'\n+6E54B6 Created OS            00 (0) 'MS-DOS'\n+6E54B7 Extract Zip Spec      14 (20) '2.0'\n+6E54B8 Extract OS            00 (0) 'MS-DOS'\n+6E54B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E54BB Compression Method    0000 (0) 'Stored'\n+6E54BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E54C1 CRC                   9A25D8A3 (2586171555)\n+6E54C5 Compressed Size       0000005E (94)\n+6E54C9 Uncompressed Size     0000005E (94)\n+6E54CD Filename Length       0049 (73)\n+6E54CF Extra Length          0009 (9)\n+6E54D1 Comment Length        0000 (0)\n+6E54D3 Disk Start            0000 (0)\n+6E54D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E54D7 Ext File Attributes   00000000 (0)\n+6E54DB Local Header Offset   00040A8E (264846)\n+6E54DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E54DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5528 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E552A   Length              0005 (5)\n+6E552C   Flags               01 (1) 'Modification'\n+6E552D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5531 CENTRAL HEADER #40    02014B50 (33639248)\n+6E5535 Created Zip Spec      14 (20) '2.0'\n+6E5536 Created OS            00 (0) 'MS-DOS'\n+6E5537 Extract Zip Spec      14 (20) '2.0'\n+6E5538 Extract OS            00 (0) 'MS-DOS'\n+6E5539 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E553B Compression Method    0000 (0) 'Stored'\n+6E553D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5541 CRC                   8141260E (2168530446)\n+6E5545 Compressed Size       00000096 (150)\n+6E5549 Uncompressed Size     00000096 (150)\n+6E554D Filename Length       0044 (68)\n+6E554F Extra Length          0009 (9)\n+6E5551 Comment Length        0000 (0)\n+6E5553 Disk Start            0000 (0)\n+6E5555 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5557 Ext File Attributes   00000000 (0)\n+6E555B Local Header Offset   00040B6C (265068)\n+6E555F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E555F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E55A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E55A5   Length              0005 (5)\n+6E55A7   Flags               01 (1) 'Modification'\n+6E55A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E55AC CENTRAL HEADER #41    02014B50 (33639248)\n+6E55B0 Created Zip Spec      14 (20) '2.0'\n+6E55B1 Created OS            00 (0) 'MS-DOS'\n+6E55B2 Extract Zip Spec      14 (20) '2.0'\n+6E55B3 Extract OS            00 (0) 'MS-DOS'\n+6E55B4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E55B6 Compression Method    0000 (0) 'Stored'\n+6E55B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E55BC CRC                   C4255C66 (3290782822)\n+6E55C0 Compressed Size       00000058 (88)\n+6E55C4 Uncompressed Size     00000058 (88)\n+6E55C8 Filename Length       0049 (73)\n+6E55CA Extra Length          0009 (9)\n+6E55CC Comment Length        0000 (0)\n+6E55CE Disk Start            0000 (0)\n+6E55D0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E55D2 Ext File Attributes   00000000 (0)\n+6E55D6 Local Header Offset   00040C7D (265341)\n+6E55DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E55DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5623 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5625   Length              0005 (5)\n+6E5627   Flags               01 (1) 'Modification'\n+6E5628   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E562C CENTRAL HEADER #42    02014B50 (33639248)\n+6E5630 Created Zip Spec      14 (20) '2.0'\n+6E5631 Created OS            00 (0) 'MS-DOS'\n+6E5632 Extract Zip Spec      14 (20) '2.0'\n+6E5633 Extract OS            00 (0) 'MS-DOS'\n+6E5634 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5636 Compression Method    0000 (0) 'Stored'\n+6E5638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E563C CRC                   83E117A1 (2212566945)\n+6E5640 Compressed Size       00000117 (279)\n+6E5644 Uncompressed Size     00000117 (279)\n+6E5648 Filename Length       0050 (80)\n+6E564A Extra Length          0009 (9)\n+6E564C Comment Length        0000 (0)\n+6E564E Disk Start            0000 (0)\n+6E5650 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5652 Ext File Attributes   00000000 (0)\n+6E5656 Local Header Offset   00040D55 (265557)\n+6E565A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E565A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E56AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E56AC   Length              0005 (5)\n+6E56AE   Flags               01 (1) 'Modification'\n+6E56AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E56B3 CENTRAL HEADER #43    02014B50 (33639248)\n+6E56B7 Created Zip Spec      14 (20) '2.0'\n+6E56B8 Created OS            00 (0) 'MS-DOS'\n+6E56B9 Extract Zip Spec      14 (20) '2.0'\n+6E56BA Extract OS            00 (0) 'MS-DOS'\n+6E56BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E56BD Compression Method    0000 (0) 'Stored'\n+6E56BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E56C3 CRC                   E654BF14 (3864313620)\n+6E56C7 Compressed Size       000001CB (459)\n+6E56CB Uncompressed Size     000001CB (459)\n+6E56CF Filename Length       004E (78)\n+6E56D1 Extra Length          0009 (9)\n+6E56D3 Comment Length        0000 (0)\n+6E56D5 Disk Start            0000 (0)\n+6E56D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E56D9 Ext File Attributes   00000000 (0)\n+6E56DD Local Header Offset   00040EF3 (265971)\n+6E56E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E56E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E572F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5731   Length              0005 (5)\n+6E5733   Flags               01 (1) 'Modification'\n+6E5734   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5738 CENTRAL HEADER #44    02014B50 (33639248)\n+6E573C Created Zip Spec      14 (20) '2.0'\n+6E573D Created OS            00 (0) 'MS-DOS'\n+6E573E Extract Zip Spec      14 (20) '2.0'\n+6E573F Extract OS            00 (0) 'MS-DOS'\n+6E5740 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5742 Compression Method    0000 (0) 'Stored'\n+6E5744 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5748 CRC                   F21C5285 (4061942405)\n+6E574C Compressed Size       000002D5 (725)\n+6E5750 Uncompressed Size     000002D5 (725)\n+6E5754 Filename Length       0058 (88)\n+6E5756 Extra Length          0009 (9)\n+6E5758 Comment Length        0000 (0)\n+6E575A Disk Start            0000 (0)\n+6E575C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E575E Ext File Attributes   00000000 (0)\n+6E5762 Local Header Offset   00041143 (266563)\n+6E5766 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5766: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E57BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E57C0   Length              0005 (5)\n+6E57C2   Flags               01 (1) 'Modification'\n+6E57C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E57C7 CENTRAL HEADER #45    02014B50 (33639248)\n+6E57CB Created Zip Spec      14 (20) '2.0'\n+6E57CC Created OS            00 (0) 'MS-DOS'\n+6E57CD Extract Zip Spec      14 (20) '2.0'\n+6E57CE Extract OS            00 (0) 'MS-DOS'\n+6E57CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E57D1 Compression Method    0000 (0) 'Stored'\n+6E57D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E57D7 CRC                   7F686F44 (2137550660)\n+6E57DB Compressed Size       000000B9 (185)\n+6E57DF Uncompressed Size     000000B9 (185)\n+6E57E3 Filename Length       0052 (82)\n+6E57E5 Extra Length          0009 (9)\n+6E57E7 Comment Length        0000 (0)\n+6E57E9 Disk Start            0000 (0)\n+6E57EB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E57ED Ext File Attributes   00000000 (0)\n+6E57F1 Local Header Offset   000414A7 (267431)\n+6E57F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E57F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5847 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5849   Length              0005 (5)\n+6E584B   Flags               01 (1) 'Modification'\n+6E584C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5850 CENTRAL HEADER #46    02014B50 (33639248)\n+6E5854 Created Zip Spec      14 (20) '2.0'\n+6E5855 Created OS            00 (0) 'MS-DOS'\n+6E5856 Extract Zip Spec      14 (20) '2.0'\n+6E5857 Extract OS            00 (0) 'MS-DOS'\n+6E5858 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E585A Compression Method    0000 (0) 'Stored'\n+6E585C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5860 CRC                   8738E283 (2268652163)\n+6E5864 Compressed Size       00000039 (57)\n+6E5868 Uncompressed Size     00000039 (57)\n+6E586C Filename Length       003F (63)\n+6E586E Extra Length          0009 (9)\n+6E5870 Comment Length        0000 (0)\n+6E5872 Disk Start            0000 (0)\n+6E5874 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5876 Ext File Attributes   00000000 (0)\n+6E587A Local Header Offset   000415E9 (267753)\n+6E587E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E587E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E58BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E58BF   Length              0005 (5)\n+6E58C1   Flags               01 (1) 'Modification'\n+6E58C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E58C6 CENTRAL HEADER #47    02014B50 (33639248)\n+6E58CA Created Zip Spec      14 (20) '2.0'\n+6E58CB Created OS            00 (0) 'MS-DOS'\n+6E58CC Extract Zip Spec      14 (20) '2.0'\n+6E58CD Extract OS            00 (0) 'MS-DOS'\n+6E58CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E58D0 Compression Method    0000 (0) 'Stored'\n+6E58D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E58D6 CRC                   77A9D190 (2007617936)\n+6E58DA Compressed Size       0000018E (398)\n+6E58DE Uncompressed Size     0000018E (398)\n+6E58E2 Filename Length       0040 (64)\n+6E58E4 Extra Length          0009 (9)\n+6E58E6 Comment Length        0000 (0)\n+6E58E8 Disk Start            0000 (0)\n+6E58EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E58EC Ext File Attributes   00000000 (0)\n+6E58F0 Local Header Offset   00041698 (267928)\n+6E58F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E58F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5934 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5936   Length              0005 (5)\n+6E5938   Flags               01 (1) 'Modification'\n+6E5939   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E593D CENTRAL HEADER #48    02014B50 (33639248)\n+6E5941 Created Zip Spec      14 (20) '2.0'\n+6E5942 Created OS            00 (0) 'MS-DOS'\n+6E5943 Extract Zip Spec      14 (20) '2.0'\n+6E5944 Extract OS            00 (0) 'MS-DOS'\n+6E5945 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5947 Compression Method    0000 (0) 'Stored'\n+6E5949 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E594D CRC                   D0ECCA57 (3505179223)\n+6E5951 Compressed Size       000002CC (716)\n+6E5955 Uncompressed Size     000002CC (716)\n+6E5959 Filename Length       0041 (65)\n+6E595B Extra Length          0009 (9)\n+6E595D Comment Length        0000 (0)\n+6E595F Disk Start            0000 (0)\n+6E5961 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5963 Ext File Attributes   00000000 (0)\n+6E5967 Local Header Offset   0004189D (268445)\n+6E596B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E596B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E59AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E59AE   Length              0005 (5)\n+6E59B0   Flags               01 (1) 'Modification'\n+6E59B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E59B5 CENTRAL HEADER #49    02014B50 (33639248)\n+6E59B9 Created Zip Spec      14 (20) '2.0'\n+6E59BA Created OS            00 (0) 'MS-DOS'\n+6E59BB Extract Zip Spec      14 (20) '2.0'\n+6E59BC Extract OS            00 (0) 'MS-DOS'\n+6E59BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E59BF Compression Method    0000 (0) 'Stored'\n+6E59C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E59C5 CRC                   290EDBFF (688839679)\n+6E59C9 Compressed Size       00000049 (73)\n+6E59CD Uncompressed Size     00000049 (73)\n+6E59D1 Filename Length       0052 (82)\n+6E59D3 Extra Length          0009 (9)\n+6E59D5 Comment Length        0000 (0)\n+6E59D7 Disk Start            0000 (0)\n+6E59D9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E59DB Ext File Attributes   00000000 (0)\n+6E59DF Local Header Offset   00041BE1 (269281)\n+6E59E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E59E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5A35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5A37   Length              0005 (5)\n+6E5A39   Flags               01 (1) 'Modification'\n+6E5A3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5A3E CENTRAL HEADER #50    02014B50 (33639248)\n+6E5A42 Created Zip Spec      14 (20) '2.0'\n+6E5A43 Created OS            00 (0) 'MS-DOS'\n+6E5A44 Extract Zip Spec      14 (20) '2.0'\n+6E5A45 Extract OS            00 (0) 'MS-DOS'\n+6E5A46 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5A48 Compression Method    0000 (0) 'Stored'\n+6E5A4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5A4E CRC                   5A07C547 (1510458695)\n+6E5A52 Compressed Size       00000252 (594)\n+6E5A56 Uncompressed Size     00000252 (594)\n+6E5A5A Filename Length       0049 (73)\n+6E5A5C Extra Length          0009 (9)\n+6E5A5E Comment Length        0000 (0)\n+6E5A60 Disk Start            0000 (0)\n+6E5A62 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5A64 Ext File Attributes   00000000 (0)\n+6E5A68 Local Header Offset   00041CB3 (269491)\n+6E5A6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5A6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5AB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5AB7   Length              0005 (5)\n+6E5AB9   Flags               01 (1) 'Modification'\n+6E5ABA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5ABE CENTRAL HEADER #51    02014B50 (33639248)\n+6E5AC2 Created Zip Spec      14 (20) '2.0'\n+6E5AC3 Created OS            00 (0) 'MS-DOS'\n+6E5AC4 Extract Zip Spec      14 (20) '2.0'\n+6E5AC5 Extract OS            00 (0) 'MS-DOS'\n+6E5AC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5AC8 Compression Method    0000 (0) 'Stored'\n+6E5ACA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5ACE CRC                   20C66B35 (549874485)\n+6E5AD2 Compressed Size       0000024E (590)\n+6E5AD6 Uncompressed Size     0000024E (590)\n+6E5ADA Filename Length       0050 (80)\n+6E5ADC Extra Length          0009 (9)\n+6E5ADE Comment Length        0000 (0)\n+6E5AE0 Disk Start            0000 (0)\n+6E5AE2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5AE4 Ext File Attributes   00000000 (0)\n+6E5AE8 Local Header Offset   00041F85 (270213)\n+6E5AEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5AEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5B3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5B3E   Length              0005 (5)\n+6E5B40   Flags               01 (1) 'Modification'\n+6E5B41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5B45 CENTRAL HEADER #52    02014B50 (33639248)\n+6E5B49 Created Zip Spec      14 (20) '2.0'\n+6E5B4A Created OS            00 (0) 'MS-DOS'\n+6E5B4B Extract Zip Spec      14 (20) '2.0'\n+6E5B4C Extract OS            00 (0) 'MS-DOS'\n+6E5B4D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5B4F Compression Method    0000 (0) 'Stored'\n+6E5B51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5B55 CRC                   A80508FF (2818902271)\n+6E5B59 Compressed Size       00000283 (643)\n+6E5B5D Uncompressed Size     00000283 (643)\n+6E5B61 Filename Length       0052 (82)\n+6E5B63 Extra Length          0009 (9)\n+6E5B65 Comment Length        0000 (0)\n+6E5B67 Disk Start            0000 (0)\n+6E5B69 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5B6B Ext File Attributes   00000000 (0)\n+6E5B6F Local Header Offset   0004225A (270938)\n+6E5B73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5B73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5BC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5BC7   Length              0005 (5)\n+6E5BC9   Flags               01 (1) 'Modification'\n+6E5BCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5BCE CENTRAL HEADER #53    02014B50 (33639248)\n+6E5BD2 Created Zip Spec      14 (20) '2.0'\n+6E5BD3 Created OS            00 (0) 'MS-DOS'\n+6E5BD4 Extract Zip Spec      14 (20) '2.0'\n+6E5BD5 Extract OS            00 (0) 'MS-DOS'\n+6E5BD6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5BD8 Compression Method    0000 (0) 'Stored'\n+6E5BDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5BDE CRC                   2D09B871 (755611761)\n+6E5BE2 Compressed Size       000000B2 (178)\n+6E5BE6 Uncompressed Size     000000B2 (178)\n+6E5BEA Filename Length       005B (91)\n+6E5BEC Extra Length          0009 (9)\n+6E5BEE Comment Length        0000 (0)\n+6E5BF0 Disk Start            0000 (0)\n+6E5BF2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5BF4 Ext File Attributes   00000000 (0)\n+6E5BF8 Local Header Offset   00042566 (271718)\n+6E5BFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5BFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5C57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5C59   Length              0005 (5)\n+6E5C5B   Flags               01 (1) 'Modification'\n+6E5C5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5C60 CENTRAL HEADER #54    02014B50 (33639248)\n+6E5C64 Created Zip Spec      14 (20) '2.0'\n+6E5C65 Created OS            00 (0) 'MS-DOS'\n+6E5C66 Extract Zip Spec      14 (20) '2.0'\n+6E5C67 Extract OS            00 (0) 'MS-DOS'\n+6E5C68 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5C6A Compression Method    0000 (0) 'Stored'\n+6E5C6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5C70 CRC                   A49FCF77 (2761936759)\n+6E5C74 Compressed Size       00000054 (84)\n+6E5C78 Uncompressed Size     00000054 (84)\n+6E5C7C Filename Length       005B (91)\n+6E5C7E Extra Length          0009 (9)\n+6E5C80 Comment Length        0000 (0)\n+6E5C82 Disk Start            0000 (0)\n+6E5C84 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5C86 Ext File Attributes   00000000 (0)\n+6E5C8A Local Header Offset   000426AA (272042)\n+6E5C8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5C8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5CE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5CEB   Length              0005 (5)\n+6E5CED   Flags               01 (1) 'Modification'\n+6E5CEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5CF2 CENTRAL HEADER #55    02014B50 (33639248)\n+6E5CF6 Created Zip Spec      14 (20) '2.0'\n+6E5CF7 Created OS            00 (0) 'MS-DOS'\n+6E5CF8 Extract Zip Spec      14 (20) '2.0'\n+6E5CF9 Extract OS            00 (0) 'MS-DOS'\n+6E5CFA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5CFC Compression Method    0000 (0) 'Stored'\n+6E5CFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5D02 CRC                   F515114D (4111798605)\n+6E5D06 Compressed Size       00000054 (84)\n+6E5D0A Uncompressed Size     00000054 (84)\n+6E5D0E Filename Length       005D (93)\n+6E5D10 Extra Length          0009 (9)\n+6E5D12 Comment Length        0000 (0)\n+6E5D14 Disk Start            0000 (0)\n+6E5D16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5D18 Ext File Attributes   00000000 (0)\n+6E5D1C Local Header Offset   00042790 (272272)\n+6E5D20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5D20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5D7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5D7F   Length              0005 (5)\n+6E5D81   Flags               01 (1) 'Modification'\n+6E5D82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5D86 CENTRAL HEADER #56    02014B50 (33639248)\n+6E5D8A Created Zip Spec      14 (20) '2.0'\n+6E5D8B Created OS            00 (0) 'MS-DOS'\n+6E5D8C Extract Zip Spec      14 (20) '2.0'\n+6E5D8D Extract OS            00 (0) 'MS-DOS'\n+6E5D8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5D90 Compression Method    0000 (0) 'Stored'\n+6E5D92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5D96 CRC                   285254BA (676484282)\n+6E5D9A Compressed Size       0000004E (78)\n+6E5D9E Uncompressed Size     0000004E (78)\n+6E5DA2 Filename Length       0059 (89)\n+6E5DA4 Extra Length          0009 (9)\n+6E5DA6 Comment Length        0000 (0)\n+6E5DA8 Disk Start            0000 (0)\n+6E5DAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5DAC Ext File Attributes   00000000 (0)\n+6E5DB0 Local Header Offset   00042878 (272504)\n+6E5DB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5DB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5E0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5E0F   Length              0005 (5)\n+6E5E11   Flags               01 (1) 'Modification'\n+6E5E12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5E16 CENTRAL HEADER #57    02014B50 (33639248)\n+6E5E1A Created Zip Spec      14 (20) '2.0'\n+6E5E1B Created OS            00 (0) 'MS-DOS'\n+6E5E1C Extract Zip Spec      14 (20) '2.0'\n+6E5E1D Extract OS            00 (0) 'MS-DOS'\n+6E5E1E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5E20 Compression Method    0000 (0) 'Stored'\n+6E5E22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5E26 CRC                   9DAB4985 (2645248389)\n+6E5E2A Compressed Size       0000004A (74)\n+6E5E2E Uncompressed Size     0000004A (74)\n+6E5E32 Filename Length       0056 (86)\n+6E5E34 Extra Length          0009 (9)\n+6E5E36 Comment Length        0000 (0)\n+6E5E38 Disk Start            0000 (0)\n+6E5E3A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5E3C Ext File Attributes   00000000 (0)\n+6E5E40 Local Header Offset   00042956 (272726)\n+6E5E44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5E44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5E9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5E9C   Length              0005 (5)\n+6E5E9E   Flags               01 (1) 'Modification'\n+6E5E9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5EA3 CENTRAL HEADER #58    02014B50 (33639248)\n+6E5EA7 Created Zip Spec      14 (20) '2.0'\n+6E5EA8 Created OS            00 (0) 'MS-DOS'\n+6E5EA9 Extract Zip Spec      14 (20) '2.0'\n+6E5EAA Extract OS            00 (0) 'MS-DOS'\n+6E5EAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5EAD Compression Method    0000 (0) 'Stored'\n+6E5EAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5EB3 CRC                   83B04446 (2209367110)\n+6E5EB7 Compressed Size       00000131 (305)\n+6E5EBB Uncompressed Size     00000131 (305)\n+6E5EBF Filename Length       0038 (56)\n+6E5EC1 Extra Length          0009 (9)\n+6E5EC3 Comment Length        0000 (0)\n+6E5EC5 Disk Start            0000 (0)\n+6E5EC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5EC9 Ext File Attributes   00000000 (0)\n+6E5ECD Local Header Offset   00042A2D (272941)\n+6E5ED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5ED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5F09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5F0B   Length              0005 (5)\n+6E5F0D   Flags               01 (1) 'Modification'\n+6E5F0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5F12 CENTRAL HEADER #59    02014B50 (33639248)\n+6E5F16 Created Zip Spec      14 (20) '2.0'\n+6E5F17 Created OS            00 (0) 'MS-DOS'\n+6E5F18 Extract Zip Spec      14 (20) '2.0'\n+6E5F19 Extract OS            00 (0) 'MS-DOS'\n+6E5F1A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5F1C Compression Method    0000 (0) 'Stored'\n+6E5F1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5F22 CRC                   B02A8DBF (2955578815)\n+6E5F26 Compressed Size       000001A4 (420)\n+6E5F2A Uncompressed Size     000001A4 (420)\n+6E5F2E Filename Length       003C (60)\n+6E5F30 Extra Length          0009 (9)\n+6E5F32 Comment Length        0000 (0)\n+6E5F34 Disk Start            0000 (0)\n+6E5F36 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5F38 Ext File Attributes   00000000 (0)\n+6E5F3C Local Header Offset   00042BCD (273357)\n+6E5F40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5F40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5F7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5F7E   Length              0005 (5)\n+6E5F80   Flags               01 (1) 'Modification'\n+6E5F81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5F85 CENTRAL HEADER #60    02014B50 (33639248)\n+6E5F89 Created Zip Spec      14 (20) '2.0'\n+6E5F8A Created OS            00 (0) 'MS-DOS'\n+6E5F8B Extract Zip Spec      14 (20) '2.0'\n+6E5F8C Extract OS            00 (0) 'MS-DOS'\n+6E5F8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E5F8F Compression Method    0000 (0) 'Stored'\n+6E5F91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E5F95 CRC                   605C157F (1616647551)\n+6E5F99 Compressed Size       0000014D (333)\n+6E5F9D Uncompressed Size     0000014D (333)\n+6E5FA1 Filename Length       003D (61)\n+6E5FA3 Extra Length          0009 (9)\n+6E5FA5 Comment Length        0000 (0)\n+6E5FA7 Disk Start            0000 (0)\n+6E5FA9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E5FAB Ext File Attributes   00000000 (0)\n+6E5FAF Local Header Offset   00042DE4 (273892)\n+6E5FB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E5FB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E5FF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E5FF2   Length              0005 (5)\n+6E5FF4   Flags               01 (1) 'Modification'\n+6E5FF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E5FF9 CENTRAL HEADER #61    02014B50 (33639248)\n+6E5FFD Created Zip Spec      14 (20) '2.0'\n+6E5FFE Created OS            00 (0) 'MS-DOS'\n+6E5FFF Extract Zip Spec      14 (20) '2.0'\n+6E6000 Extract OS            00 (0) 'MS-DOS'\n+6E6001 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6003 Compression Method    0000 (0) 'Stored'\n+6E6005 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6009 CRC                   91BA560C (2444908044)\n+6E600D Compressed Size       0000003B (59)\n+6E6011 Uncompressed Size     0000003B (59)\n+6E6015 Filename Length       0046 (70)\n+6E6017 Extra Length          0009 (9)\n+6E6019 Comment Length        0000 (0)\n+6E601B Disk Start            0000 (0)\n+6E601D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E601F Ext File Attributes   00000000 (0)\n+6E6023 Local Header Offset   00042FA5 (274341)\n+6E6027 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6027: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E606D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E606F   Length              0005 (5)\n+6E6071   Flags               01 (1) 'Modification'\n+6E6072   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6076 CENTRAL HEADER #62    02014B50 (33639248)\n+6E607A Created Zip Spec      14 (20) '2.0'\n+6E607B Created OS            00 (0) 'MS-DOS'\n+6E607C Extract Zip Spec      14 (20) '2.0'\n+6E607D Extract OS            00 (0) 'MS-DOS'\n+6E607E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6080 Compression Method    0000 (0) 'Stored'\n+6E6082 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6086 CRC                   E21BFF73 (3793485683)\n+6E608A Compressed Size       00000049 (73)\n+6E608E Uncompressed Size     00000049 (73)\n+6E6092 Filename Length       0044 (68)\n+6E6094 Extra Length          0009 (9)\n+6E6096 Comment Length        0000 (0)\n+6E6098 Disk Start            0000 (0)\n+6E609A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E609C Ext File Attributes   00000000 (0)\n+6E60A0 Local Header Offset   0004305D (274525)\n+6E60A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E60A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E60E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E60EA   Length              0005 (5)\n+6E60EC   Flags               01 (1) 'Modification'\n+6E60ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E60F1 CENTRAL HEADER #63    02014B50 (33639248)\n+6E60F5 Created Zip Spec      14 (20) '2.0'\n+6E60F6 Created OS            00 (0) 'MS-DOS'\n+6E60F7 Extract Zip Spec      14 (20) '2.0'\n+6E60F8 Extract OS            00 (0) 'MS-DOS'\n+6E60F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E60FB Compression Method    0000 (0) 'Stored'\n+6E60FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6101 CRC                   78354721 (2016757537)\n+6E6105 Compressed Size       000000F8 (248)\n+6E6109 Uncompressed Size     000000F8 (248)\n+6E610D Filename Length       0041 (65)\n+6E610F Extra Length          0009 (9)\n+6E6111 Comment Length        0000 (0)\n+6E6113 Disk Start            0000 (0)\n+6E6115 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6117 Ext File Attributes   00000000 (0)\n+6E611B Local Header Offset   00043121 (274721)\n+6E611F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E611F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6160 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6162   Length              0005 (5)\n+6E6164   Flags               01 (1) 'Modification'\n+6E6165   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6169 CENTRAL HEADER #64    02014B50 (33639248)\n+6E616D Created Zip Spec      14 (20) '2.0'\n+6E616E Created OS            00 (0) 'MS-DOS'\n+6E616F Extract Zip Spec      14 (20) '2.0'\n+6E6170 Extract OS            00 (0) 'MS-DOS'\n+6E6171 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6173 Compression Method    0000 (0) 'Stored'\n+6E6175 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6179 CRC                   3693E7D5 (915662805)\n+6E617D Compressed Size       0000007D (125)\n+6E6181 Uncompressed Size     0000007D (125)\n+6E6185 Filename Length       003F (63)\n+6E6187 Extra Length          0009 (9)\n+6E6189 Comment Length        0000 (0)\n+6E618B Disk Start            0000 (0)\n+6E618D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E618F Ext File Attributes   00000000 (0)\n+6E6193 Local Header Offset   00043291 (275089)\n+6E6197 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6197: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E61D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E61D8   Length              0005 (5)\n+6E61DA   Flags               01 (1) 'Modification'\n+6E61DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E61DF CENTRAL HEADER #65    02014B50 (33639248)\n+6E61E3 Created Zip Spec      14 (20) '2.0'\n+6E61E4 Created OS            00 (0) 'MS-DOS'\n+6E61E5 Extract Zip Spec      14 (20) '2.0'\n+6E61E6 Extract OS            00 (0) 'MS-DOS'\n+6E61E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E61E9 Compression Method    0000 (0) 'Stored'\n+6E61EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E61EF CRC                   97778096 (2541191318)\n+6E61F3 Compressed Size       00000355 (853)\n+6E61F7 Uncompressed Size     00000355 (853)\n+6E61FB Filename Length       0046 (70)\n+6E61FD Extra Length          0009 (9)\n+6E61FF Comment Length        0000 (0)\n+6E6201 Disk Start            0000 (0)\n+6E6203 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6205 Ext File Attributes   00000000 (0)\n+6E6209 Local Header Offset   00043384 (275332)\n+6E620D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E620D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6253 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6255   Length              0005 (5)\n+6E6257   Flags               01 (1) 'Modification'\n+6E6258   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E625C CENTRAL HEADER #66    02014B50 (33639248)\n+6E6260 Created Zip Spec      14 (20) '2.0'\n+6E6261 Created OS            00 (0) 'MS-DOS'\n+6E6262 Extract Zip Spec      14 (20) '2.0'\n+6E6263 Extract OS            00 (0) 'MS-DOS'\n+6E6264 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6266 Compression Method    0000 (0) 'Stored'\n+6E6268 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E626C CRC                   80A8E0CE (2158551246)\n+6E6270 Compressed Size       00000052 (82)\n+6E6274 Uncompressed Size     00000052 (82)\n+6E6278 Filename Length       0050 (80)\n+6E627A Extra Length          0009 (9)\n+6E627C Comment Length        0000 (0)\n+6E627E Disk Start            0000 (0)\n+6E6280 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6282 Ext File Attributes   00000000 (0)\n+6E6286 Local Header Offset   00043756 (276310)\n+6E628A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E628A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E62DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E62DC   Length              0005 (5)\n+6E62DE   Flags               01 (1) 'Modification'\n+6E62DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E62E3 CENTRAL HEADER #67    02014B50 (33639248)\n+6E62E7 Created Zip Spec      14 (20) '2.0'\n+6E62E8 Created OS            00 (0) 'MS-DOS'\n+6E62E9 Extract Zip Spec      14 (20) '2.0'\n+6E62EA Extract OS            00 (0) 'MS-DOS'\n+6E62EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E62ED Compression Method    0000 (0) 'Stored'\n+6E62EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E62F3 CRC                   ECAE314A (3970838858)\n+6E62F7 Compressed Size       00000491 (1169)\n+6E62FB Uncompressed Size     00000491 (1169)\n+6E62FF Filename Length       0033 (51)\n+6E6301 Extra Length          0009 (9)\n+6E6303 Comment Length        0000 (0)\n+6E6305 Disk Start            0000 (0)\n+6E6307 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6309 Ext File Attributes   00000000 (0)\n+6E630D Local Header Offset   0004382F (276527)\n+6E6311 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6311: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6344 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6346   Length              0005 (5)\n+6E6348   Flags               01 (1) 'Modification'\n+6E6349   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E634D CENTRAL HEADER #68    02014B50 (33639248)\n+6E6351 Created Zip Spec      14 (20) '2.0'\n+6E6352 Created OS            00 (0) 'MS-DOS'\n+6E6353 Extract Zip Spec      14 (20) '2.0'\n+6E6354 Extract OS            00 (0) 'MS-DOS'\n+6E6355 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6357 Compression Method    0000 (0) 'Stored'\n+6E6359 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E635D CRC                   2F399EBD (792305341)\n+6E6361 Compressed Size       00000043 (67)\n+6E6365 Uncompressed Size     00000043 (67)\n+6E6369 Filename Length       003C (60)\n+6E636B Extra Length          0009 (9)\n+6E636D Comment Length        0000 (0)\n+6E636F Disk Start            0000 (0)\n+6E6371 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6373 Ext File Attributes   00000000 (0)\n+6E6377 Local Header Offset   00043D2A (277802)\n+6E637B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E637B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E63B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E63B9   Length              0005 (5)\n+6E63BB   Flags               01 (1) 'Modification'\n+6E63BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E63C0 CENTRAL HEADER #69    02014B50 (33639248)\n+6E63C4 Created Zip Spec      14 (20) '2.0'\n+6E63C5 Created OS            00 (0) 'MS-DOS'\n+6E63C6 Extract Zip Spec      14 (20) '2.0'\n+6E63C7 Extract OS            00 (0) 'MS-DOS'\n+6E63C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E63CA Compression Method    0000 (0) 'Stored'\n+6E63CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E63D0 CRC                   0C25920C (203788812)\n+6E63D4 Compressed Size       0000048A (1162)\n+6E63D8 Uncompressed Size     0000048A (1162)\n+6E63DC Filename Length       0035 (53)\n+6E63DE Extra Length          0009 (9)\n+6E63E0 Comment Length        0000 (0)\n+6E63E2 Disk Start            0000 (0)\n+6E63E4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E63E6 Ext File Attributes   00000000 (0)\n+6E63EA Local Header Offset   00043DE0 (277984)\n+6E63EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E63EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6423 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6425   Length              0005 (5)\n+6E6427   Flags               01 (1) 'Modification'\n+6E6428   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E642C CENTRAL HEADER #70    02014B50 (33639248)\n+6E6430 Created Zip Spec      14 (20) '2.0'\n+6E6431 Created OS            00 (0) 'MS-DOS'\n+6E6432 Extract Zip Spec      14 (20) '2.0'\n+6E6433 Extract OS            00 (0) 'MS-DOS'\n+6E6434 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6436 Compression Method    0000 (0) 'Stored'\n+6E6438 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E643C CRC                   ED03E48F (3976455311)\n+6E6440 Compressed Size       000000BA (186)\n+6E6444 Uncompressed Size     000000BA (186)\n+6E6448 Filename Length       0039 (57)\n+6E644A Extra Length          0009 (9)\n+6E644C Comment Length        0000 (0)\n+6E644E Disk Start            0000 (0)\n+6E6450 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6452 Ext File Attributes   00000000 (0)\n+6E6456 Local Header Offset   000442D6 (279254)\n+6E645A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E645A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6493 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6495   Length              0005 (5)\n+6E6497   Flags               01 (1) 'Modification'\n+6E6498   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E649C CENTRAL HEADER #71    02014B50 (33639248)\n+6E64A0 Created Zip Spec      14 (20) '2.0'\n+6E64A1 Created OS            00 (0) 'MS-DOS'\n+6E64A2 Extract Zip Spec      14 (20) '2.0'\n+6E64A3 Extract OS            00 (0) 'MS-DOS'\n+6E64A4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E64A6 Compression Method    0000 (0) 'Stored'\n+6E64A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E64AC CRC                   72D50831 (1926563889)\n+6E64B0 Compressed Size       0000028C (652)\n+6E64B4 Uncompressed Size     0000028C (652)\n+6E64B8 Filename Length       003C (60)\n+6E64BA Extra Length          0009 (9)\n+6E64BC Comment Length        0000 (0)\n+6E64BE Disk Start            0000 (0)\n+6E64C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E64C2 Ext File Attributes   00000000 (0)\n+6E64C6 Local Header Offset   00044400 (279552)\n+6E64CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E64CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6506 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6508   Length              0005 (5)\n+6E650A   Flags               01 (1) 'Modification'\n+6E650B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E650F CENTRAL HEADER #72    02014B50 (33639248)\n+6E6513 Created Zip Spec      14 (20) '2.0'\n+6E6514 Created OS            00 (0) 'MS-DOS'\n+6E6515 Extract Zip Spec      14 (20) '2.0'\n+6E6516 Extract OS            00 (0) 'MS-DOS'\n+6E6517 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6519 Compression Method    0000 (0) 'Stored'\n+6E651B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E651F CRC                   B1A9D94F (2980698447)\n+6E6523 Compressed Size       000000AB (171)\n+6E6527 Uncompressed Size     000000AB (171)\n+6E652B Filename Length       0048 (72)\n+6E652D Extra Length          0009 (9)\n+6E652F Comment Length        0000 (0)\n+6E6531 Disk Start            0000 (0)\n+6E6533 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6535 Ext File Attributes   00000000 (0)\n+6E6539 Local Header Offset   000446FF (280319)\n+6E653D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E653D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6585 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6587   Length              0005 (5)\n+6E6589   Flags               01 (1) 'Modification'\n+6E658A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E658E CENTRAL HEADER #73    02014B50 (33639248)\n+6E6592 Created Zip Spec      14 (20) '2.0'\n+6E6593 Created OS            00 (0) 'MS-DOS'\n+6E6594 Extract Zip Spec      14 (20) '2.0'\n+6E6595 Extract OS            00 (0) 'MS-DOS'\n+6E6596 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6598 Compression Method    0000 (0) 'Stored'\n+6E659A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E659E CRC                   388E9B78 (948870008)\n+6E65A2 Compressed Size       00000184 (388)\n+6E65A6 Uncompressed Size     00000184 (388)\n+6E65AA Filename Length       0040 (64)\n+6E65AC Extra Length          0009 (9)\n+6E65AE Comment Length        0000 (0)\n+6E65B0 Disk Start            0000 (0)\n+6E65B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E65B4 Ext File Attributes   00000000 (0)\n+6E65B8 Local Header Offset   00044829 (280617)\n+6E65BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E65BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E65FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E65FE   Length              0005 (5)\n+6E6600   Flags               01 (1) 'Modification'\n+6E6601   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6605 CENTRAL HEADER #74    02014B50 (33639248)\n+6E6609 Created Zip Spec      14 (20) '2.0'\n+6E660A Created OS            00 (0) 'MS-DOS'\n+6E660B Extract Zip Spec      14 (20) '2.0'\n+6E660C Extract OS            00 (0) 'MS-DOS'\n+6E660D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E660F Compression Method    0000 (0) 'Stored'\n+6E6611 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6615 CRC                   6F4CF591 (1867314577)\n+6E6619 Compressed Size       00000278 (632)\n+6E661D Uncompressed Size     00000278 (632)\n+6E6621 Filename Length       003B (59)\n+6E6623 Extra Length          0009 (9)\n+6E6625 Comment Length        0000 (0)\n+6E6627 Disk Start            0000 (0)\n+6E6629 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E662B Ext File Attributes   00000000 (0)\n+6E662F Local Header Offset   00044A24 (281124)\n+6E6633 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6633: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E666E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6670   Length              0005 (5)\n+6E6672   Flags               01 (1) 'Modification'\n+6E6673   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6677 CENTRAL HEADER #75    02014B50 (33639248)\n+6E667B Created Zip Spec      14 (20) '2.0'\n+6E667C Created OS            00 (0) 'MS-DOS'\n+6E667D Extract Zip Spec      14 (20) '2.0'\n+6E667E Extract OS            00 (0) 'MS-DOS'\n+6E667F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6681 Compression Method    0000 (0) 'Stored'\n+6E6683 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6687 CRC                   4D30A945 (1295034693)\n+6E668B Compressed Size       000001AF (431)\n+6E668F Uncompressed Size     000001AF (431)\n+6E6693 Filename Length       0042 (66)\n+6E6695 Extra Length          0009 (9)\n+6E6697 Comment Length        0000 (0)\n+6E6699 Disk Start            0000 (0)\n+6E669B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E669D Ext File Attributes   00000000 (0)\n+6E66A1 Local Header Offset   00044D0E (281870)\n+6E66A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E66A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E66E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E66E9   Length              0005 (5)\n+6E66EB   Flags               01 (1) 'Modification'\n+6E66EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E66F0 CENTRAL HEADER #76    02014B50 (33639248)\n+6E66F4 Created Zip Spec      14 (20) '2.0'\n+6E66F5 Created OS            00 (0) 'MS-DOS'\n+6E66F6 Extract Zip Spec      14 (20) '2.0'\n+6E66F7 Extract OS            00 (0) 'MS-DOS'\n+6E66F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E66FA Compression Method    0000 (0) 'Stored'\n+6E66FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6700 CRC                   AE0B59B2 (2919979442)\n+6E6704 Compressed Size       00000053 (83)\n+6E6708 Uncompressed Size     00000053 (83)\n+6E670C Filename Length       0058 (88)\n+6E670E Extra Length          0009 (9)\n+6E6710 Comment Length        0000 (0)\n+6E6712 Disk Start            0000 (0)\n+6E6714 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6716 Ext File Attributes   00000000 (0)\n+6E671A Local Header Offset   00044F36 (282422)\n+6E671E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E671E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6776 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6778   Length              0005 (5)\n+6E677A   Flags               01 (1) 'Modification'\n+6E677B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E677F CENTRAL HEADER #77    02014B50 (33639248)\n+6E6783 Created Zip Spec      14 (20) '2.0'\n+6E6784 Created OS            00 (0) 'MS-DOS'\n+6E6785 Extract Zip Spec      14 (20) '2.0'\n+6E6786 Extract OS            00 (0) 'MS-DOS'\n+6E6787 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6789 Compression Method    0000 (0) 'Stored'\n+6E678B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E678F CRC                   7F3BA707 (2134615815)\n+6E6793 Compressed Size       000000A3 (163)\n+6E6797 Uncompressed Size     000000A3 (163)\n+6E679B Filename Length       0053 (83)\n+6E679D Extra Length          0009 (9)\n+6E679F Comment Length        0000 (0)\n+6E67A1 Disk Start            0000 (0)\n+6E67A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E67A5 Ext File Attributes   00000000 (0)\n+6E67A9 Local Header Offset   00045018 (282648)\n+6E67AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E67AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6800 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6802   Length              0005 (5)\n+6E6804   Flags               01 (1) 'Modification'\n+6E6805   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6809 CENTRAL HEADER #78    02014B50 (33639248)\n+6E680D Created Zip Spec      14 (20) '2.0'\n+6E680E Created OS            00 (0) 'MS-DOS'\n+6E680F Extract Zip Spec      14 (20) '2.0'\n+6E6810 Extract OS            00 (0) 'MS-DOS'\n+6E6811 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6813 Compression Method    0000 (0) 'Stored'\n+6E6815 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6819 CRC                   F822DEA4 (4163034788)\n+6E681D Compressed Size       00000072 (114)\n+6E6821 Uncompressed Size     00000072 (114)\n+6E6825 Filename Length       0049 (73)\n+6E6827 Extra Length          0009 (9)\n+6E6829 Comment Length        0000 (0)\n+6E682B Disk Start            0000 (0)\n+6E682D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E682F Ext File Attributes   00000000 (0)\n+6E6833 Local Header Offset   00045145 (282949)\n+6E6837 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6837: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6880 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6882   Length              0005 (5)\n+6E6884   Flags               01 (1) 'Modification'\n+6E6885   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6889 CENTRAL HEADER #79    02014B50 (33639248)\n+6E688D Created Zip Spec      14 (20) '2.0'\n+6E688E Created OS            00 (0) 'MS-DOS'\n+6E688F Extract Zip Spec      14 (20) '2.0'\n+6E6890 Extract OS            00 (0) 'MS-DOS'\n+6E6891 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6893 Compression Method    0000 (0) 'Stored'\n+6E6895 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6899 CRC                   6F1FEDD0 (1864363472)\n+6E689D Compressed Size       0000004D (77)\n+6E68A1 Uncompressed Size     0000004D (77)\n+6E68A5 Filename Length       0059 (89)\n+6E68A7 Extra Length          0009 (9)\n+6E68A9 Comment Length        0000 (0)\n+6E68AB Disk Start            0000 (0)\n+6E68AD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E68AF Ext File Attributes   00000000 (0)\n+6E68B3 Local Header Offset   00045237 (283191)\n+6E68B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E68B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6912   Length              0005 (5)\n+6E6914   Flags               01 (1) 'Modification'\n+6E6915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6919 CENTRAL HEADER #80    02014B50 (33639248)\n+6E691D Created Zip Spec      14 (20) '2.0'\n+6E691E Created OS            00 (0) 'MS-DOS'\n+6E691F Extract Zip Spec      14 (20) '2.0'\n+6E6920 Extract OS            00 (0) 'MS-DOS'\n+6E6921 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6923 Compression Method    0000 (0) 'Stored'\n+6E6925 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6929 CRC                   6F1FEDD0 (1864363472)\n+6E692D Compressed Size       0000004D (77)\n+6E6931 Uncompressed Size     0000004D (77)\n+6E6935 Filename Length       0059 (89)\n+6E6937 Extra Length          0009 (9)\n+6E6939 Comment Length        0000 (0)\n+6E693B Disk Start            0000 (0)\n+6E693D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E693F Ext File Attributes   00000000 (0)\n+6E6943 Local Header Offset   00045314 (283412)\n+6E6947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E69A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E69A2   Length              0005 (5)\n+6E69A4   Flags               01 (1) 'Modification'\n+6E69A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E69A9 CENTRAL HEADER #81    02014B50 (33639248)\n+6E69AD Created Zip Spec      14 (20) '2.0'\n+6E69AE Created OS            00 (0) 'MS-DOS'\n+6E69AF Extract Zip Spec      14 (20) '2.0'\n+6E69B0 Extract OS            00 (0) 'MS-DOS'\n+6E69B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E69B3 Compression Method    0000 (0) 'Stored'\n+6E69B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E69B9 CRC                   78C43CAA (2026126506)\n+6E69BD Compressed Size       00000088 (136)\n+6E69C1 Uncompressed Size     00000088 (136)\n+6E69C5 Filename Length       004F (79)\n+6E69C7 Extra Length          0009 (9)\n+6E69C9 Comment Length        0000 (0)\n+6E69CB Disk Start            0000 (0)\n+6E69CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E69CF Ext File Attributes   00000000 (0)\n+6E69D3 Local Header Offset   000453F1 (283633)\n+6E69D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E69D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6A26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6A28   Length              0005 (5)\n+6E6A2A   Flags               01 (1) 'Modification'\n+6E6A2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6A2F CENTRAL HEADER #82    02014B50 (33639248)\n+6E6A33 Created Zip Spec      14 (20) '2.0'\n+6E6A34 Created OS            00 (0) 'MS-DOS'\n+6E6A35 Extract Zip Spec      14 (20) '2.0'\n+6E6A36 Extract OS            00 (0) 'MS-DOS'\n+6E6A37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6A39 Compression Method    0000 (0) 'Stored'\n+6E6A3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6A3F CRC                   2EA22547 (782378311)\n+6E6A43 Compressed Size       00000048 (72)\n+6E6A47 Uncompressed Size     00000048 (72)\n+6E6A4B Filename Length       003E (62)\n+6E6A4D Extra Length          0009 (9)\n+6E6A4F Comment Length        0000 (0)\n+6E6A51 Disk Start            0000 (0)\n+6E6A53 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6A55 Ext File Attributes   00000000 (0)\n+6E6A59 Local Header Offset   000454FF (283903)\n+6E6A5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6A5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6A9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6A9D   Length              0005 (5)\n+6E6A9F   Flags               01 (1) 'Modification'\n+6E6AA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6AA4 CENTRAL HEADER #83    02014B50 (33639248)\n+6E6AA8 Created Zip Spec      14 (20) '2.0'\n+6E6AA9 Created OS            00 (0) 'MS-DOS'\n+6E6AAA Extract Zip Spec      14 (20) '2.0'\n+6E6AAB Extract OS            00 (0) 'MS-DOS'\n+6E6AAC General Purpose Flag  0000 (0)\n+6E6AAE Compression Method    0000 (0) 'Stored'\n+6E6AB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6AB4 CRC                   00000000 (0)\n+6E6AB8 Compressed Size       00000000 (0)\n+6E6ABC Uncompressed Size     00000000 (0)\n+6E6AC0 Filename Length       000F (15)\n+6E6AC2 Extra Length          0009 (9)\n+6E6AC4 Comment Length        0000 (0)\n+6E6AC6 Disk Start            0000 (0)\n+6E6AC8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6ACA Ext File Attributes   00000000 (0)\n+6E6ACE Local Header Offset   000455BC (284092)\n+6E6AD2 Filename              'XXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6AD2: Filename 'XXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6AE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6AE3   Length              0005 (5)\n+6E6AE5   Flags               01 (1) 'Modification'\n+6E6AE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6AEA CENTRAL HEADER #84    02014B50 (33639248)\n+6E6AEE Created Zip Spec      14 (20) '2.0'\n+6E6AEF Created OS            00 (0) 'MS-DOS'\n+6E6AF0 Extract Zip Spec      14 (20) '2.0'\n+6E6AF1 Extract OS            00 (0) 'MS-DOS'\n+6E6AF2 General Purpose Flag  0000 (0)\n+6E6AF4 Compression Method    0000 (0) 'Stored'\n+6E6AF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6AFA CRC                   00000000 (0)\n+6E6AFE Compressed Size       00000000 (0)\n+6E6B02 Uncompressed Size     00000000 (0)\n+6E6B06 Filename Length       001B (27)\n+6E6B08 Extra Length          0009 (9)\n+6E6B0A Comment Length        0000 (0)\n+6E6B0C Disk Start            0000 (0)\n+6E6B0E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6B10 Ext File Attributes   00000000 (0)\n+6E6B14 Local Header Offset   000455F2 (284146)\n+6E6B18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6B18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6B33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6B35   Length              0005 (5)\n+6E6B37   Flags               01 (1) 'Modification'\n+6E6B38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6B3C CENTRAL HEADER #85    02014B50 (33639248)\n+6E6B40 Created Zip Spec      14 (20) '2.0'\n+6E6B41 Created OS            00 (0) 'MS-DOS'\n+6E6B42 Extract Zip Spec      14 (20) '2.0'\n+6E6B43 Extract OS            00 (0) 'MS-DOS'\n+6E6B44 General Purpose Flag  0000 (0)\n+6E6B46 Compression Method    0000 (0) 'Stored'\n+6E6B48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6B4C CRC                   00000000 (0)\n+6E6B50 Compressed Size       00000000 (0)\n+6E6B54 Uncompressed Size     00000000 (0)\n+6E6B58 Filename Length       0028 (40)\n+6E6B5A Extra Length          0009 (9)\n+6E6B5C Comment Length        0000 (0)\n+6E6B5E Disk Start            0000 (0)\n+6E6B60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6B62 Ext File Attributes   00000000 (0)\n+6E6B66 Local Header Offset   00045634 (284212)\n+6E6B6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6B6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6B92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6B94   Length              0005 (5)\n+6E6B96   Flags               01 (1) 'Modification'\n+6E6B97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6B9B CENTRAL HEADER #86    02014B50 (33639248)\n+6E6B9F Created Zip Spec      14 (20) '2.0'\n+6E6BA0 Created OS            00 (0) 'MS-DOS'\n+6E6BA1 Extract Zip Spec      14 (20) '2.0'\n+6E6BA2 Extract OS            00 (0) 'MS-DOS'\n+6E6BA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6BA5 Compression Method    0000 (0) 'Stored'\n+6E6BA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6BAB CRC                   00000000 (0)\n+6E6BAF Compressed Size       00000000 (0)\n+6E6BB3 Uncompressed Size     00000000 (0)\n+6E6BB7 Filename Length       0036 (54)\n+6E6BB9 Extra Length          0009 (9)\n+6E6BBB Comment Length        0000 (0)\n+6E6BBD Disk Start            0000 (0)\n+6E6BBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6BC1 Ext File Attributes   00000000 (0)\n+6E6BC5 Local Header Offset   00045683 (284291)\n+6E6BC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6BC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6BFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6C01   Length              0005 (5)\n+6E6C03   Flags               01 (1) 'Modification'\n+6E6C04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6C08 CENTRAL HEADER #87    02014B50 (33639248)\n+6E6C0C Created Zip Spec      14 (20) '2.0'\n+6E6C0D Created OS            00 (0) 'MS-DOS'\n+6E6C0E Extract Zip Spec      14 (20) '2.0'\n+6E6C0F Extract OS            00 (0) 'MS-DOS'\n+6E6C10 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6C12 Compression Method    0000 (0) 'Stored'\n+6E6C14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6C18 CRC                   A18F9C9F (2710543519)\n+6E6C1C Compressed Size       000025D9 (9689)\n+6E6C20 Uncompressed Size     000025D9 (9689)\n+6E6C24 Filename Length       002F (47)\n+6E6C26 Extra Length          0009 (9)\n+6E6C28 Comment Length        0000 (0)\n+6E6C2A Disk Start            0000 (0)\n+6E6C2C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6C2E Ext File Attributes   00000000 (0)\n+6E6C32 Local Header Offset   000456F0 (284400)\n+6E6C36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6C36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6C65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6C67   Length              0005 (5)\n+6E6C69   Flags               01 (1) 'Modification'\n+6E6C6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6C6E CENTRAL HEADER #88    02014B50 (33639248)\n+6E6C72 Created Zip Spec      14 (20) '2.0'\n+6E6C73 Created OS            00 (0) 'MS-DOS'\n+6E6C74 Extract Zip Spec      14 (20) '2.0'\n+6E6C75 Extract OS            00 (0) 'MS-DOS'\n+6E6C76 General Purpose Flag  0000 (0)\n+6E6C78 Compression Method    0000 (0) 'Stored'\n+6E6C7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6C7E CRC                   00000000 (0)\n+6E6C82 Compressed Size       00000000 (0)\n+6E6C86 Uncompressed Size     00000000 (0)\n+6E6C8A Filename Length       0020 (32)\n+6E6C8C Extra Length          0009 (9)\n+6E6C8E Comment Length        0000 (0)\n+6E6C90 Disk Start            0000 (0)\n+6E6C92 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6C94 Ext File Attributes   00000000 (0)\n+6E6C98 Local Header Offset   00047D2F (294191)\n+6E6C9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6C9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6CBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6CBE   Length              0005 (5)\n+6E6CC0   Flags               01 (1) 'Modification'\n+6E6CC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6CC5 CENTRAL HEADER #89    02014B50 (33639248)\n+6E6CC9 Created Zip Spec      14 (20) '2.0'\n+6E6CCA Created OS            00 (0) 'MS-DOS'\n+6E6CCB Extract Zip Spec      14 (20) '2.0'\n+6E6CCC Extract OS            00 (0) 'MS-DOS'\n+6E6CCD General Purpose Flag  0000 (0)\n+6E6CCF Compression Method    0000 (0) 'Stored'\n+6E6CD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6CD5 CRC                   00000000 (0)\n+6E6CD9 Compressed Size       00000000 (0)\n+6E6CDD Uncompressed Size     00000000 (0)\n+6E6CE1 Filename Length       002E (46)\n+6E6CE3 Extra Length          0009 (9)\n+6E6CE5 Comment Length        0000 (0)\n+6E6CE7 Disk Start            0000 (0)\n+6E6CE9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6CEB Ext File Attributes   00000000 (0)\n+6E6CEF Local Header Offset   00047D76 (294262)\n+6E6CF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6CF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6D21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6D23   Length              0005 (5)\n+6E6D25   Flags               01 (1) 'Modification'\n+6E6D26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6D2A CENTRAL HEADER #90    02014B50 (33639248)\n+6E6D2E Created Zip Spec      14 (20) '2.0'\n+6E6D2F Created OS            00 (0) 'MS-DOS'\n+6E6D30 Extract Zip Spec      14 (20) '2.0'\n+6E6D31 Extract OS            00 (0) 'MS-DOS'\n+6E6D32 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6D34 Compression Method    0000 (0) 'Stored'\n+6E6D36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6D3A CRC                   00000000 (0)\n+6E6D3E Compressed Size       00000000 (0)\n+6E6D42 Uncompressed Size     00000000 (0)\n+6E6D46 Filename Length       003C (60)\n+6E6D48 Extra Length          0009 (9)\n+6E6D4A Comment Length        0000 (0)\n+6E6D4C Disk Start            0000 (0)\n+6E6D4E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6D50 Ext File Attributes   00000000 (0)\n+6E6D54 Local Header Offset   00047DCB (294347)\n+6E6D58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6D58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6D94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6D96   Length              0005 (5)\n+6E6D98   Flags               01 (1) 'Modification'\n+6E6D99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6D9D CENTRAL HEADER #91    02014B50 (33639248)\n+6E6DA1 Created Zip Spec      14 (20) '2.0'\n+6E6DA2 Created OS            00 (0) 'MS-DOS'\n+6E6DA3 Extract Zip Spec      14 (20) '2.0'\n+6E6DA4 Extract OS            00 (0) 'MS-DOS'\n+6E6DA5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6DA7 Compression Method    0000 (0) 'Stored'\n+6E6DA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6DAD CRC                   F526CD58 (4112960856)\n+6E6DB1 Compressed Size       000009F4 (2548)\n+6E6DB5 Uncompressed Size     000009F4 (2548)\n+6E6DB9 Filename Length       0035 (53)\n+6E6DBB Extra Length          0009 (9)\n+6E6DBD Comment Length        0000 (0)\n+6E6DBF Disk Start            0000 (0)\n+6E6DC1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6DC3 Ext File Attributes   00000000 (0)\n+6E6DC7 Local Header Offset   00047E3E (294462)\n+6E6DCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6DCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6E00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6E02   Length              0005 (5)\n+6E6E04   Flags               01 (1) 'Modification'\n+6E6E05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6E09 CENTRAL HEADER #92    02014B50 (33639248)\n+6E6E0D Created Zip Spec      14 (20) '2.0'\n+6E6E0E Created OS            00 (0) 'MS-DOS'\n+6E6E0F Extract Zip Spec      14 (20) '2.0'\n+6E6E10 Extract OS            00 (0) 'MS-DOS'\n+6E6E11 General Purpose Flag  0000 (0)\n+6E6E13 Compression Method    0000 (0) 'Stored'\n+6E6E15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6E19 CRC                   00000000 (0)\n+6E6E1D Compressed Size       00000000 (0)\n+6E6E21 Uncompressed Size     00000000 (0)\n+6E6E25 Filename Length       002D (45)\n+6E6E27 Extra Length          0009 (9)\n+6E6E29 Comment Length        0000 (0)\n+6E6E2B Disk Start            0000 (0)\n+6E6E2D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6E2F Ext File Attributes   00000000 (0)\n+6E6E33 Local Header Offset   0004889E (297118)\n+6E6E37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6E37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6E64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6E66   Length              0005 (5)\n+6E6E68   Flags               01 (1) 'Modification'\n+6E6E69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6E6D CENTRAL HEADER #93    02014B50 (33639248)\n+6E6E71 Created Zip Spec      14 (20) '2.0'\n+6E6E72 Created OS            00 (0) 'MS-DOS'\n+6E6E73 Extract Zip Spec      14 (20) '2.0'\n+6E6E74 Extract OS            00 (0) 'MS-DOS'\n+6E6E75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6E77 Compression Method    0000 (0) 'Stored'\n+6E6E79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6E7D CRC                   00000000 (0)\n+6E6E81 Compressed Size       00000000 (0)\n+6E6E85 Uncompressed Size     00000000 (0)\n+6E6E89 Filename Length       003B (59)\n+6E6E8B Extra Length          0009 (9)\n+6E6E8D Comment Length        0000 (0)\n+6E6E8F Disk Start            0000 (0)\n+6E6E91 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6E93 Ext File Attributes   00000000 (0)\n+6E6E97 Local Header Offset   000488F2 (297202)\n+6E6E9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6E9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6ED6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6ED8   Length              0005 (5)\n+6E6EDA   Flags               01 (1) 'Modification'\n+6E6EDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6EDF CENTRAL HEADER #94    02014B50 (33639248)\n+6E6EE3 Created Zip Spec      14 (20) '2.0'\n+6E6EE4 Created OS            00 (0) 'MS-DOS'\n+6E6EE5 Extract Zip Spec      14 (20) '2.0'\n+6E6EE6 Extract OS            00 (0) 'MS-DOS'\n+6E6EE7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6EE9 Compression Method    0000 (0) 'Stored'\n+6E6EEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6EEF CRC                   CDE8C563 (3454584163)\n+6E6EF3 Compressed Size       00000B50 (2896)\n+6E6EF7 Uncompressed Size     00000B50 (2896)\n+6E6EFB Filename Length       0034 (52)\n+6E6EFD Extra Length          0009 (9)\n+6E6EFF Comment Length        0000 (0)\n+6E6F01 Disk Start            0000 (0)\n+6E6F03 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6F05 Ext File Attributes   00000000 (0)\n+6E6F09 Local Header Offset   00048964 (297316)\n+6E6F0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6F0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6F41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6F43   Length              0005 (5)\n+6E6F45   Flags               01 (1) 'Modification'\n+6E6F46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6F4A CENTRAL HEADER #95    02014B50 (33639248)\n+6E6F4E Created Zip Spec      14 (20) '2.0'\n+6E6F4F Created OS            00 (0) 'MS-DOS'\n+6E6F50 Extract Zip Spec      14 (20) '2.0'\n+6E6F51 Extract OS            00 (0) 'MS-DOS'\n+6E6F52 General Purpose Flag  0000 (0)\n+6E6F54 Compression Method    0000 (0) 'Stored'\n+6E6F56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6F5A CRC                   00000000 (0)\n+6E6F5E Compressed Size       00000000 (0)\n+6E6F62 Uncompressed Size     00000000 (0)\n+6E6F66 Filename Length       0031 (49)\n+6E6F68 Extra Length          0009 (9)\n+6E6F6A Comment Length        0000 (0)\n+6E6F6C Disk Start            0000 (0)\n+6E6F6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6F70 Ext File Attributes   00000000 (0)\n+6E6F74 Local Header Offset   0004951F (300319)\n+6E6F78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6F78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E6FA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E6FAB   Length              0005 (5)\n+6E6FAD   Flags               01 (1) 'Modification'\n+6E6FAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E6FB2 CENTRAL HEADER #96    02014B50 (33639248)\n+6E6FB6 Created Zip Spec      14 (20) '2.0'\n+6E6FB7 Created OS            00 (0) 'MS-DOS'\n+6E6FB8 Extract Zip Spec      14 (20) '2.0'\n+6E6FB9 Extract OS            00 (0) 'MS-DOS'\n+6E6FBA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E6FBC Compression Method    0000 (0) 'Stored'\n+6E6FBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E6FC2 CRC                   00000000 (0)\n+6E6FC6 Compressed Size       00000000 (0)\n+6E6FCA Uncompressed Size     00000000 (0)\n+6E6FCE Filename Length       003F (63)\n+6E6FD0 Extra Length          0009 (9)\n+6E6FD2 Comment Length        0000 (0)\n+6E6FD4 Disk Start            0000 (0)\n+6E6FD6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E6FD8 Ext File Attributes   00000000 (0)\n+6E6FDC Local Header Offset   00049577 (300407)\n+6E6FE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E6FE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E701F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7021   Length              0005 (5)\n+6E7023   Flags               01 (1) 'Modification'\n+6E7024   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7028 CENTRAL HEADER #97    02014B50 (33639248)\n+6E702C Created Zip Spec      14 (20) '2.0'\n+6E702D Created OS            00 (0) 'MS-DOS'\n+6E702E Extract Zip Spec      14 (20) '2.0'\n+6E702F Extract OS            00 (0) 'MS-DOS'\n+6E7030 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7032 Compression Method    0000 (0) 'Stored'\n+6E7034 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7038 CRC                   7291F3D3 (1922167763)\n+6E703C Compressed Size       000010C7 (4295)\n+6E7040 Uncompressed Size     000010C7 (4295)\n+6E7044 Filename Length       0038 (56)\n+6E7046 Extra Length          0009 (9)\n+6E7048 Comment Length        0000 (0)\n+6E704A Disk Start            0000 (0)\n+6E704C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E704E Ext File Attributes   00000000 (0)\n+6E7052 Local Header Offset   000495ED (300525)\n+6E7056 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7056: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E708E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7090   Length              0005 (5)\n+6E7092   Flags               01 (1) 'Modification'\n+6E7093   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7097 CENTRAL HEADER #98    02014B50 (33639248)\n+6E709B Created Zip Spec      14 (20) '2.0'\n+6E709C Created OS            00 (0) 'MS-DOS'\n+6E709D Extract Zip Spec      14 (20) '2.0'\n+6E709E Extract OS            00 (0) 'MS-DOS'\n+6E709F General Purpose Flag  0000 (0)\n+6E70A1 Compression Method    0000 (0) 'Stored'\n+6E70A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E70A7 CRC                   00000000 (0)\n+6E70AB Compressed Size       00000000 (0)\n+6E70AF Uncompressed Size     00000000 (0)\n+6E70B3 Filename Length       0031 (49)\n+6E70B5 Extra Length          0009 (9)\n+6E70B7 Comment Length        0000 (0)\n+6E70B9 Disk Start            0000 (0)\n+6E70BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E70BD Ext File Attributes   00000000 (0)\n+6E70C1 Local Header Offset   0004A723 (304931)\n+6E70C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E70C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E70F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E70F8   Length              0005 (5)\n+6E70FA   Flags               01 (1) 'Modification'\n+6E70FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E70FF CENTRAL HEADER #99    02014B50 (33639248)\n+6E7103 Created Zip Spec      14 (20) '2.0'\n+6E7104 Created OS            00 (0) 'MS-DOS'\n+6E7105 Extract Zip Spec      14 (20) '2.0'\n+6E7106 Extract OS            00 (0) 'MS-DOS'\n+6E7107 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7109 Compression Method    0000 (0) 'Stored'\n+6E710B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E710F CRC                   00000000 (0)\n+6E7113 Compressed Size       00000000 (0)\n+6E7117 Uncompressed Size     00000000 (0)\n+6E711B Filename Length       003F (63)\n+6E711D Extra Length          0009 (9)\n+6E711F Comment Length        0000 (0)\n+6E7121 Disk Start            0000 (0)\n+6E7123 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7125 Ext File Attributes   00000000 (0)\n+6E7129 Local Header Offset   0004A77B (305019)\n+6E712D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E712D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E716C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E716E   Length              0005 (5)\n+6E7170   Flags               01 (1) 'Modification'\n+6E7171   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7175 CENTRAL HEADER #100   02014B50 (33639248)\n+6E7179 Created Zip Spec      14 (20) '2.0'\n+6E717A Created OS            00 (0) 'MS-DOS'\n+6E717B Extract Zip Spec      14 (20) '2.0'\n+6E717C Extract OS            00 (0) 'MS-DOS'\n+6E717D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E717F Compression Method    0000 (0) 'Stored'\n+6E7181 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7185 CRC                   50B6758C (1354134924)\n+6E7189 Compressed Size       00001EA4 (7844)\n+6E718D Uncompressed Size     00001EA4 (7844)\n+6E7191 Filename Length       0038 (56)\n+6E7193 Extra Length          0009 (9)\n+6E7195 Comment Length        0000 (0)\n+6E7197 Disk Start            0000 (0)\n+6E7199 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E719B Ext File Attributes   00000000 (0)\n+6E719F Local Header Offset   0004A7F1 (305137)\n+6E71A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E71A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E71DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E71DD   Length              0005 (5)\n+6E71DF   Flags               01 (1) 'Modification'\n+6E71E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E71E4 CENTRAL HEADER #101   02014B50 (33639248)\n+6E71E8 Created Zip Spec      14 (20) '2.0'\n+6E71E9 Created OS            00 (0) 'MS-DOS'\n+6E71EA Extract Zip Spec      14 (20) '2.0'\n+6E71EB Extract OS            00 (0) 'MS-DOS'\n+6E71EC General Purpose Flag  0000 (0)\n+6E71EE Compression Method    0000 (0) 'Stored'\n+6E71F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E71F4 CRC                   00000000 (0)\n+6E71F8 Compressed Size       00000000 (0)\n+6E71FC Uncompressed Size     00000000 (0)\n+6E7200 Filename Length       0034 (52)\n+6E7202 Extra Length          0009 (9)\n+6E7204 Comment Length        0000 (0)\n+6E7206 Disk Start            0000 (0)\n+6E7208 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E720A Ext File Attributes   00000000 (0)\n+6E720E Local Header Offset   0004C704 (313092)\n+6E7212 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7212: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7248   Length              0005 (5)\n+6E724A   Flags               01 (1) 'Modification'\n+6E724B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E724F CENTRAL HEADER #102   02014B50 (33639248)\n+6E7253 Created Zip Spec      14 (20) '2.0'\n+6E7254 Created OS            00 (0) 'MS-DOS'\n+6E7255 Extract Zip Spec      14 (20) '2.0'\n+6E7256 Extract OS            00 (0) 'MS-DOS'\n+6E7257 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7259 Compression Method    0000 (0) 'Stored'\n+6E725B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E725F CRC                   00000000 (0)\n+6E7263 Compressed Size       00000000 (0)\n+6E7267 Uncompressed Size     00000000 (0)\n+6E726B Filename Length       0042 (66)\n+6E726D Extra Length          0009 (9)\n+6E726F Comment Length        0000 (0)\n+6E7271 Disk Start            0000 (0)\n+6E7273 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7275 Ext File Attributes   00000000 (0)\n+6E7279 Local Header Offset   0004C75F (313183)\n+6E727D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E727D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E72BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E72C1   Length              0005 (5)\n+6E72C3   Flags               01 (1) 'Modification'\n+6E72C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E72C8 CENTRAL HEADER #103   02014B50 (33639248)\n+6E72CC Created Zip Spec      14 (20) '2.0'\n+6E72CD Created OS            00 (0) 'MS-DOS'\n+6E72CE Extract Zip Spec      14 (20) '2.0'\n+6E72CF Extract OS            00 (0) 'MS-DOS'\n+6E72D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E72D2 Compression Method    0000 (0) 'Stored'\n+6E72D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E72D8 CRC                   DBB26296 (3685900950)\n+6E72DC Compressed Size       00001859 (6233)\n+6E72E0 Uncompressed Size     00001859 (6233)\n+6E72E4 Filename Length       003B (59)\n+6E72E6 Extra Length          0009 (9)\n+6E72E8 Comment Length        0000 (0)\n+6E72EA Disk Start            0000 (0)\n+6E72EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E72EE Ext File Attributes   00000000 (0)\n+6E72F2 Local Header Offset   0004C7D8 (313304)\n+6E72F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E72F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7331 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7333   Length              0005 (5)\n+6E7335   Flags               01 (1) 'Modification'\n+6E7336   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E733A CENTRAL HEADER #104   02014B50 (33639248)\n+6E733E Created Zip Spec      14 (20) '2.0'\n+6E733F Created OS            00 (0) 'MS-DOS'\n+6E7340 Extract Zip Spec      14 (20) '2.0'\n+6E7341 Extract OS            00 (0) 'MS-DOS'\n+6E7342 General Purpose Flag  0000 (0)\n+6E7344 Compression Method    0000 (0) 'Stored'\n+6E7346 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E734A CRC                   00000000 (0)\n+6E734E Compressed Size       00000000 (0)\n+6E7352 Uncompressed Size     00000000 (0)\n+6E7356 Filename Length       003A (58)\n+6E7358 Extra Length          0009 (9)\n+6E735A Comment Length        0000 (0)\n+6E735C Disk Start            0000 (0)\n+6E735E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7360 Ext File Attributes   00000000 (0)\n+6E7364 Local Header Offset   0004E0A3 (319651)\n+6E7368 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7368: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E73A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E73A4   Length              0005 (5)\n+6E73A6   Flags               01 (1) 'Modification'\n+6E73A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E73AB CENTRAL HEADER #105   02014B50 (33639248)\n+6E73AF Created Zip Spec      14 (20) '2.0'\n+6E73B0 Created OS            00 (0) 'MS-DOS'\n+6E73B1 Extract Zip Spec      14 (20) '2.0'\n+6E73B2 Extract OS            00 (0) 'MS-DOS'\n+6E73B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E73B5 Compression Method    0000 (0) 'Stored'\n+6E73B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E73BB CRC                   00000000 (0)\n+6E73BF Compressed Size       00000000 (0)\n+6E73C3 Uncompressed Size     00000000 (0)\n+6E73C7 Filename Length       0048 (72)\n+6E73C9 Extra Length          0009 (9)\n+6E73CB Comment Length        0000 (0)\n+6E73CD Disk Start            0000 (0)\n+6E73CF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E73D1 Ext File Attributes   00000000 (0)\n+6E73D5 Local Header Offset   0004E104 (319748)\n+6E73D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E73D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7421 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7423   Length              0005 (5)\n+6E7425   Flags               01 (1) 'Modification'\n+6E7426   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E742A CENTRAL HEADER #106   02014B50 (33639248)\n+6E742E Created Zip Spec      14 (20) '2.0'\n+6E742F Created OS            00 (0) 'MS-DOS'\n+6E7430 Extract Zip Spec      14 (20) '2.0'\n+6E7431 Extract OS            00 (0) 'MS-DOS'\n+6E7432 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7434 Compression Method    0000 (0) 'Stored'\n+6E7436 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E743A CRC                   91AC24FF (2443977983)\n+6E743E Compressed Size       00000941 (2369)\n+6E7442 Uncompressed Size     00000941 (2369)\n+6E7446 Filename Length       0041 (65)\n+6E7448 Extra Length          0009 (9)\n+6E744A Comment Length        0000 (0)\n+6E744C Disk Start            0000 (0)\n+6E744E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7450 Ext File Attributes   00000000 (0)\n+6E7454 Local Header Offset   0004E183 (319875)\n+6E7458 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7458: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7499 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E749B   Length              0005 (5)\n+6E749D   Flags               01 (1) 'Modification'\n+6E749E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E74A2 CENTRAL HEADER #107   02014B50 (33639248)\n+6E74A6 Created Zip Spec      14 (20) '2.0'\n+6E74A7 Created OS            00 (0) 'MS-DOS'\n+6E74A8 Extract Zip Spec      14 (20) '2.0'\n+6E74A9 Extract OS            00 (0) 'MS-DOS'\n+6E74AA General Purpose Flag  0000 (0)\n+6E74AC Compression Method    0000 (0) 'Stored'\n+6E74AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E74B2 CRC                   00000000 (0)\n+6E74B6 Compressed Size       00000000 (0)\n+6E74BA Uncompressed Size     00000000 (0)\n+6E74BE Filename Length       003A (58)\n+6E74C0 Extra Length          0009 (9)\n+6E74C2 Comment Length        0000 (0)\n+6E74C4 Disk Start            0000 (0)\n+6E74C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E74C8 Ext File Attributes   00000000 (0)\n+6E74CC Local Header Offset   0004EB3C (322364)\n+6E74D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E74D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E750A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E750C   Length              0005 (5)\n+6E750E   Flags               01 (1) 'Modification'\n+6E750F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7513 CENTRAL HEADER #108   02014B50 (33639248)\n+6E7517 Created Zip Spec      14 (20) '2.0'\n+6E7518 Created OS            00 (0) 'MS-DOS'\n+6E7519 Extract Zip Spec      14 (20) '2.0'\n+6E751A Extract OS            00 (0) 'MS-DOS'\n+6E751B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E751D Compression Method    0000 (0) 'Stored'\n+6E751F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7523 CRC                   00000000 (0)\n+6E7527 Compressed Size       00000000 (0)\n+6E752B Uncompressed Size     00000000 (0)\n+6E752F Filename Length       0048 (72)\n+6E7531 Extra Length          0009 (9)\n+6E7533 Comment Length        0000 (0)\n+6E7535 Disk Start            0000 (0)\n+6E7537 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7539 Ext File Attributes   00000000 (0)\n+6E753D Local Header Offset   0004EB9D (322461)\n+6E7541 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7541: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7589 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E758B   Length              0005 (5)\n+6E758D   Flags               01 (1) 'Modification'\n+6E758E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7592 CENTRAL HEADER #109   02014B50 (33639248)\n+6E7596 Created Zip Spec      14 (20) '2.0'\n+6E7597 Created OS            00 (0) 'MS-DOS'\n+6E7598 Extract Zip Spec      14 (20) '2.0'\n+6E7599 Extract OS            00 (0) 'MS-DOS'\n+6E759A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E759C Compression Method    0000 (0) 'Stored'\n+6E759E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E75A2 CRC                   76B58A01 (1991608833)\n+6E75A6 Compressed Size       000007F6 (2038)\n+6E75AA Uncompressed Size     000007F6 (2038)\n+6E75AE Filename Length       0041 (65)\n+6E75B0 Extra Length          0009 (9)\n+6E75B2 Comment Length        0000 (0)\n+6E75B4 Disk Start            0000 (0)\n+6E75B6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E75B8 Ext File Attributes   00000000 (0)\n+6E75BC Local Header Offset   0004EC1C (322588)\n+6E75C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E75C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7603   Length              0005 (5)\n+6E7605   Flags               01 (1) 'Modification'\n+6E7606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E760A CENTRAL HEADER #110   02014B50 (33639248)\n+6E760E Created Zip Spec      14 (20) '2.0'\n+6E760F Created OS            00 (0) 'MS-DOS'\n+6E7610 Extract Zip Spec      14 (20) '2.0'\n+6E7611 Extract OS            00 (0) 'MS-DOS'\n+6E7612 General Purpose Flag  0000 (0)\n+6E7614 Compression Method    0000 (0) 'Stored'\n+6E7616 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E761A CRC                   00000000 (0)\n+6E761E Compressed Size       00000000 (0)\n+6E7622 Uncompressed Size     00000000 (0)\n+6E7626 Filename Length       0038 (56)\n+6E7628 Extra Length          0009 (9)\n+6E762A Comment Length        0000 (0)\n+6E762C Disk Start            0000 (0)\n+6E762E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7630 Ext File Attributes   00000000 (0)\n+6E7634 Local Header Offset   0004F48A (324746)\n+6E7638 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7638: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7670 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7672   Length              0005 (5)\n+6E7674   Flags               01 (1) 'Modification'\n+6E7675   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7679 CENTRAL HEADER #111   02014B50 (33639248)\n+6E767D Created Zip Spec      14 (20) '2.0'\n+6E767E Created OS            00 (0) 'MS-DOS'\n+6E767F Extract Zip Spec      14 (20) '2.0'\n+6E7680 Extract OS            00 (0) 'MS-DOS'\n+6E7681 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7683 Compression Method    0000 (0) 'Stored'\n+6E7685 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7689 CRC                   00000000 (0)\n+6E768D Compressed Size       00000000 (0)\n+6E7691 Uncompressed Size     00000000 (0)\n+6E7695 Filename Length       0046 (70)\n+6E7697 Extra Length          0009 (9)\n+6E7699 Comment Length        0000 (0)\n+6E769B Disk Start            0000 (0)\n+6E769D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E769F Ext File Attributes   00000000 (0)\n+6E76A3 Local Header Offset   0004F4E9 (324841)\n+6E76A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E76A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E76ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E76EF   Length              0005 (5)\n+6E76F1   Flags               01 (1) 'Modification'\n+6E76F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E76F6 CENTRAL HEADER #112   02014B50 (33639248)\n+6E76FA Created Zip Spec      14 (20) '2.0'\n+6E76FB Created OS            00 (0) 'MS-DOS'\n+6E76FC Extract Zip Spec      14 (20) '2.0'\n+6E76FD Extract OS            00 (0) 'MS-DOS'\n+6E76FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7700 Compression Method    0000 (0) 'Stored'\n+6E7702 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7706 CRC                   4486615B (1149657435)\n+6E770A Compressed Size       00000A8A (2698)\n+6E770E Uncompressed Size     00000A8A (2698)\n+6E7712 Filename Length       003F (63)\n+6E7714 Extra Length          0009 (9)\n+6E7716 Comment Length        0000 (0)\n+6E7718 Disk Start            0000 (0)\n+6E771A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E771C Ext File Attributes   00000000 (0)\n+6E7720 Local Header Offset   0004F566 (324966)\n+6E7724 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7724: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7763 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7765   Length              0005 (5)\n+6E7767   Flags               01 (1) 'Modification'\n+6E7768   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E776C CENTRAL HEADER #113   02014B50 (33639248)\n+6E7770 Created Zip Spec      14 (20) '2.0'\n+6E7771 Created OS            00 (0) 'MS-DOS'\n+6E7772 Extract Zip Spec      14 (20) '2.0'\n+6E7773 Extract OS            00 (0) 'MS-DOS'\n+6E7774 General Purpose Flag  0000 (0)\n+6E7776 Compression Method    0000 (0) 'Stored'\n+6E7778 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E777C CRC                   00000000 (0)\n+6E7780 Compressed Size       00000000 (0)\n+6E7784 Uncompressed Size     00000000 (0)\n+6E7788 Filename Length       0039 (57)\n+6E778A Extra Length          0009 (9)\n+6E778C Comment Length        0000 (0)\n+6E778E Disk Start            0000 (0)\n+6E7790 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7792 Ext File Attributes   00000000 (0)\n+6E7796 Local Header Offset   00050066 (327782)\n+6E779A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E779A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E77D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E77D5   Length              0005 (5)\n+6E77D7   Flags               01 (1) 'Modification'\n+6E77D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E77DC CENTRAL HEADER #114   02014B50 (33639248)\n+6E77E0 Created Zip Spec      14 (20) '2.0'\n+6E77E1 Created OS            00 (0) 'MS-DOS'\n+6E77E2 Extract Zip Spec      14 (20) '2.0'\n+6E77E3 Extract OS            00 (0) 'MS-DOS'\n+6E77E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E77E6 Compression Method    0000 (0) 'Stored'\n+6E77E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E77EC CRC                   00000000 (0)\n+6E77F0 Compressed Size       00000000 (0)\n+6E77F4 Uncompressed Size     00000000 (0)\n+6E77F8 Filename Length       0047 (71)\n+6E77FA Extra Length          0009 (9)\n+6E77FC Comment Length        0000 (0)\n+6E77FE Disk Start            0000 (0)\n+6E7800 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7802 Ext File Attributes   00000000 (0)\n+6E7806 Local Header Offset   000500C6 (327878)\n+6E780A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E780A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7851 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7853   Length              0005 (5)\n+6E7855   Flags               01 (1) 'Modification'\n+6E7856   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E785A CENTRAL HEADER #115   02014B50 (33639248)\n+6E785E Created Zip Spec      14 (20) '2.0'\n+6E785F Created OS            00 (0) 'MS-DOS'\n+6E7860 Extract Zip Spec      14 (20) '2.0'\n+6E7861 Extract OS            00 (0) 'MS-DOS'\n+6E7862 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7864 Compression Method    0000 (0) 'Stored'\n+6E7866 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E786A CRC                   F1E099F8 (4058028536)\n+6E786E Compressed Size       000007E8 (2024)\n+6E7872 Uncompressed Size     000007E8 (2024)\n+6E7876 Filename Length       0040 (64)\n+6E7878 Extra Length          0009 (9)\n+6E787A Comment Length        0000 (0)\n+6E787C Disk Start            0000 (0)\n+6E787E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7880 Ext File Attributes   00000000 (0)\n+6E7884 Local Header Offset   00050144 (328004)\n+6E7888 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7888: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E78C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E78CA   Length              0005 (5)\n+6E78CC   Flags               01 (1) 'Modification'\n+6E78CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E78D1 CENTRAL HEADER #116   02014B50 (33639248)\n+6E78D5 Created Zip Spec      14 (20) '2.0'\n+6E78D6 Created OS            00 (0) 'MS-DOS'\n+6E78D7 Extract Zip Spec      14 (20) '2.0'\n+6E78D8 Extract OS            00 (0) 'MS-DOS'\n+6E78D9 General Purpose Flag  0000 (0)\n+6E78DB Compression Method    0000 (0) 'Stored'\n+6E78DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E78E1 CRC                   00000000 (0)\n+6E78E5 Compressed Size       00000000 (0)\n+6E78E9 Uncompressed Size     00000000 (0)\n+6E78ED Filename Length       003D (61)\n+6E78EF Extra Length          0009 (9)\n+6E78F1 Comment Length        0000 (0)\n+6E78F3 Disk Start            0000 (0)\n+6E78F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E78F7 Ext File Attributes   00000000 (0)\n+6E78FB Local Header Offset   000509A3 (330147)\n+6E78FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E78FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E793C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E793E   Length              0005 (5)\n+6E7940   Flags               01 (1) 'Modification'\n+6E7941   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7945 CENTRAL HEADER #117   02014B50 (33639248)\n+6E7949 Created Zip Spec      14 (20) '2.0'\n+6E794A Created OS            00 (0) 'MS-DOS'\n+6E794B Extract Zip Spec      14 (20) '2.0'\n+6E794C Extract OS            00 (0) 'MS-DOS'\n+6E794D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E794F Compression Method    0000 (0) 'Stored'\n+6E7951 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7955 CRC                   00000000 (0)\n+6E7959 Compressed Size       00000000 (0)\n+6E795D Uncompressed Size     00000000 (0)\n+6E7961 Filename Length       004B (75)\n+6E7963 Extra Length          0009 (9)\n+6E7965 Comment Length        0000 (0)\n+6E7967 Disk Start            0000 (0)\n+6E7969 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E796B Ext File Attributes   00000000 (0)\n+6E796F Local Header Offset   00050A07 (330247)\n+6E7973 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7973: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E79BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E79C0   Length              0005 (5)\n+6E79C2   Flags               01 (1) 'Modification'\n+6E79C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E79C7 CENTRAL HEADER #118   02014B50 (33639248)\n+6E79CB Created Zip Spec      14 (20) '2.0'\n+6E79CC Created OS            00 (0) 'MS-DOS'\n+6E79CD Extract Zip Spec      14 (20) '2.0'\n+6E79CE Extract OS            00 (0) 'MS-DOS'\n+6E79CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E79D1 Compression Method    0000 (0) 'Stored'\n+6E79D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E79D7 CRC                   E98EF8F4 (3918461172)\n+6E79DB Compressed Size       000008A5 (2213)\n+6E79DF Uncompressed Size     000008A5 (2213)\n+6E79E3 Filename Length       0044 (68)\n+6E79E5 Extra Length          0009 (9)\n+6E79E7 Comment Length        0000 (0)\n+6E79E9 Disk Start            0000 (0)\n+6E79EB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E79ED Ext File Attributes   00000000 (0)\n+6E79F1 Local Header Offset   00050A89 (330377)\n+6E79F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E79F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7A39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7A3B   Length              0005 (5)\n+6E7A3D   Flags               01 (1) 'Modification'\n+6E7A3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7A42 CENTRAL HEADER #119   02014B50 (33639248)\n+6E7A46 Created Zip Spec      14 (20) '2.0'\n+6E7A47 Created OS            00 (0) 'MS-DOS'\n+6E7A48 Extract Zip Spec      14 (20) '2.0'\n+6E7A49 Extract OS            00 (0) 'MS-DOS'\n+6E7A4A General Purpose Flag  0000 (0)\n+6E7A4C Compression Method    0000 (0) 'Stored'\n+6E7A4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7A52 CRC                   00000000 (0)\n+6E7A56 Compressed Size       00000000 (0)\n+6E7A5A Uncompressed Size     00000000 (0)\n+6E7A5E Filename Length       0034 (52)\n+6E7A60 Extra Length          0009 (9)\n+6E7A62 Comment Length        0000 (0)\n+6E7A64 Disk Start            0000 (0)\n+6E7A66 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7A68 Ext File Attributes   00000000 (0)\n+6E7A6C Local Header Offset   000513A9 (332713)\n+6E7A70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7A70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7AA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7AA6   Length              0005 (5)\n+6E7AA8   Flags               01 (1) 'Modification'\n+6E7AA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7AAD CENTRAL HEADER #120   02014B50 (33639248)\n+6E7AB1 Created Zip Spec      14 (20) '2.0'\n+6E7AB2 Created OS            00 (0) 'MS-DOS'\n+6E7AB3 Extract Zip Spec      14 (20) '2.0'\n+6E7AB4 Extract OS            00 (0) 'MS-DOS'\n+6E7AB5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7AB7 Compression Method    0000 (0) 'Stored'\n+6E7AB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7ABD CRC                   00000000 (0)\n+6E7AC1 Compressed Size       00000000 (0)\n+6E7AC5 Uncompressed Size     00000000 (0)\n+6E7AC9 Filename Length       0042 (66)\n+6E7ACB Extra Length          0009 (9)\n+6E7ACD Comment Length        0000 (0)\n+6E7ACF Disk Start            0000 (0)\n+6E7AD1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7AD3 Ext File Attributes   00000000 (0)\n+6E7AD7 Local Header Offset   00051404 (332804)\n+6E7ADB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7ADB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7B1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7B1F   Length              0005 (5)\n+6E7B21   Flags               01 (1) 'Modification'\n+6E7B22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7B26 CENTRAL HEADER #121   02014B50 (33639248)\n+6E7B2A Created Zip Spec      14 (20) '2.0'\n+6E7B2B Created OS            00 (0) 'MS-DOS'\n+6E7B2C Extract Zip Spec      14 (20) '2.0'\n+6E7B2D Extract OS            00 (0) 'MS-DOS'\n+6E7B2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7B30 Compression Method    0000 (0) 'Stored'\n+6E7B32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7B36 CRC                   C9681FCD (3379044301)\n+6E7B3A Compressed Size       00000917 (2327)\n+6E7B3E Uncompressed Size     00000917 (2327)\n+6E7B42 Filename Length       003B (59)\n+6E7B44 Extra Length          0009 (9)\n+6E7B46 Comment Length        0000 (0)\n+6E7B48 Disk Start            0000 (0)\n+6E7B4A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7B4C Ext File Attributes   00000000 (0)\n+6E7B50 Local Header Offset   0005147D (332925)\n+6E7B54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7B54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7B8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7B91   Length              0005 (5)\n+6E7B93   Flags               01 (1) 'Modification'\n+6E7B94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7B98 CENTRAL HEADER #122   02014B50 (33639248)\n+6E7B9C Created Zip Spec      14 (20) '2.0'\n+6E7B9D Created OS            00 (0) 'MS-DOS'\n+6E7B9E Extract Zip Spec      14 (20) '2.0'\n+6E7B9F Extract OS            00 (0) 'MS-DOS'\n+6E7BA0 General Purpose Flag  0000 (0)\n+6E7BA2 Compression Method    0000 (0) 'Stored'\n+6E7BA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7BA8 CRC                   00000000 (0)\n+6E7BAC Compressed Size       00000000 (0)\n+6E7BB0 Uncompressed Size     00000000 (0)\n+6E7BB4 Filename Length       0036 (54)\n+6E7BB6 Extra Length          0009 (9)\n+6E7BB8 Comment Length        0000 (0)\n+6E7BBA Disk Start            0000 (0)\n+6E7BBC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7BBE Ext File Attributes   00000000 (0)\n+6E7BC2 Local Header Offset   00051E06 (335366)\n+6E7BC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7BC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7BFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7BFE   Length              0005 (5)\n+6E7C00   Flags               01 (1) 'Modification'\n+6E7C01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7C05 CENTRAL HEADER #123   02014B50 (33639248)\n+6E7C09 Created Zip Spec      14 (20) '2.0'\n+6E7C0A Created OS            00 (0) 'MS-DOS'\n+6E7C0B Extract Zip Spec      14 (20) '2.0'\n+6E7C0C Extract OS            00 (0) 'MS-DOS'\n+6E7C0D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7C0F Compression Method    0000 (0) 'Stored'\n+6E7C11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7C15 CRC                   00000000 (0)\n+6E7C19 Compressed Size       00000000 (0)\n+6E7C1D Uncompressed Size     00000000 (0)\n+6E7C21 Filename Length       0044 (68)\n+6E7C23 Extra Length          0009 (9)\n+6E7C25 Comment Length        0000 (0)\n+6E7C27 Disk Start            0000 (0)\n+6E7C29 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7C2B Ext File Attributes   00000000 (0)\n+6E7C2F Local Header Offset   00051E63 (335459)\n+6E7C33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7C33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7C77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7C79   Length              0005 (5)\n+6E7C7B   Flags               01 (1) 'Modification'\n+6E7C7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7C80 CENTRAL HEADER #124   02014B50 (33639248)\n+6E7C84 Created Zip Spec      14 (20) '2.0'\n+6E7C85 Created OS            00 (0) 'MS-DOS'\n+6E7C86 Extract Zip Spec      14 (20) '2.0'\n+6E7C87 Extract OS            00 (0) 'MS-DOS'\n+6E7C88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7C8A Compression Method    0000 (0) 'Stored'\n+6E7C8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7C90 CRC                   5DC5D2E5 (1573245669)\n+6E7C94 Compressed Size       0000079B (1947)\n+6E7C98 Uncompressed Size     0000079B (1947)\n+6E7C9C Filename Length       003D (61)\n+6E7C9E Extra Length          0009 (9)\n+6E7CA0 Comment Length        0000 (0)\n+6E7CA2 Disk Start            0000 (0)\n+6E7CA4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7CA6 Ext File Attributes   00000000 (0)\n+6E7CAA Local Header Offset   00051EDE (335582)\n+6E7CAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7CAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7CEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7CED   Length              0005 (5)\n+6E7CEF   Flags               01 (1) 'Modification'\n+6E7CF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7CF4 CENTRAL HEADER #125   02014B50 (33639248)\n+6E7CF8 Created Zip Spec      14 (20) '2.0'\n+6E7CF9 Created OS            00 (0) 'MS-DOS'\n+6E7CFA Extract Zip Spec      14 (20) '2.0'\n+6E7CFB Extract OS            00 (0) 'MS-DOS'\n+6E7CFC General Purpose Flag  0000 (0)\n+6E7CFE Compression Method    0000 (0) 'Stored'\n+6E7D00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7D04 CRC                   00000000 (0)\n+6E7D08 Compressed Size       00000000 (0)\n+6E7D0C Uncompressed Size     00000000 (0)\n+6E7D10 Filename Length       0038 (56)\n+6E7D12 Extra Length          0009 (9)\n+6E7D14 Comment Length        0000 (0)\n+6E7D16 Disk Start            0000 (0)\n+6E7D18 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7D1A Ext File Attributes   00000000 (0)\n+6E7D1E Local Header Offset   000526ED (337645)\n+6E7D22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7D22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7D5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7D5C   Length              0005 (5)\n+6E7D5E   Flags               01 (1) 'Modification'\n+6E7D5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7D63 CENTRAL HEADER #126   02014B50 (33639248)\n+6E7D67 Created Zip Spec      14 (20) '2.0'\n+6E7D68 Created OS            00 (0) 'MS-DOS'\n+6E7D69 Extract Zip Spec      14 (20) '2.0'\n+6E7D6A Extract OS            00 (0) 'MS-DOS'\n+6E7D6B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7D6D Compression Method    0000 (0) 'Stored'\n+6E7D6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7D73 CRC                   00000000 (0)\n+6E7D77 Compressed Size       00000000 (0)\n+6E7D7B Uncompressed Size     00000000 (0)\n+6E7D7F Filename Length       0046 (70)\n+6E7D81 Extra Length          0009 (9)\n+6E7D83 Comment Length        0000 (0)\n+6E7D85 Disk Start            0000 (0)\n+6E7D87 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7D89 Ext File Attributes   00000000 (0)\n+6E7D8D Local Header Offset   0005274C (337740)\n+6E7D91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7D91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7DD7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7DD9   Length              0005 (5)\n+6E7DDB   Flags               01 (1) 'Modification'\n+6E7DDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7DE0 CENTRAL HEADER #127   02014B50 (33639248)\n+6E7DE4 Created Zip Spec      14 (20) '2.0'\n+6E7DE5 Created OS            00 (0) 'MS-DOS'\n+6E7DE6 Extract Zip Spec      14 (20) '2.0'\n+6E7DE7 Extract OS            00 (0) 'MS-DOS'\n+6E7DE8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7DEA Compression Method    0000 (0) 'Stored'\n+6E7DEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7DF0 CRC                   3042ABBA (809675706)\n+6E7DF4 Compressed Size       00000819 (2073)\n+6E7DF8 Uncompressed Size     00000819 (2073)\n+6E7DFC Filename Length       003F (63)\n+6E7DFE Extra Length          0009 (9)\n+6E7E00 Comment Length        0000 (0)\n+6E7E02 Disk Start            0000 (0)\n+6E7E04 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7E06 Ext File Attributes   00000000 (0)\n+6E7E0A Local Header Offset   000527C9 (337865)\n+6E7E0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7E0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7E4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7E4F   Length              0005 (5)\n+6E7E51   Flags               01 (1) 'Modification'\n+6E7E52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7E56 CENTRAL HEADER #128   02014B50 (33639248)\n+6E7E5A Created Zip Spec      14 (20) '2.0'\n+6E7E5B Created OS            00 (0) 'MS-DOS'\n+6E7E5C Extract Zip Spec      14 (20) '2.0'\n+6E7E5D Extract OS            00 (0) 'MS-DOS'\n+6E7E5E General Purpose Flag  0000 (0)\n+6E7E60 Compression Method    0000 (0) 'Stored'\n+6E7E62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7E66 CRC                   00000000 (0)\n+6E7E6A Compressed Size       00000000 (0)\n+6E7E6E Uncompressed Size     00000000 (0)\n+6E7E72 Filename Length       0037 (55)\n+6E7E74 Extra Length          0009 (9)\n+6E7E76 Comment Length        0000 (0)\n+6E7E78 Disk Start            0000 (0)\n+6E7E7A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7E7C Ext File Attributes   00000000 (0)\n+6E7E80 Local Header Offset   00053058 (340056)\n+6E7E84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7E84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7EBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7EBD   Length              0005 (5)\n+6E7EBF   Flags               01 (1) 'Modification'\n+6E7EC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7EC4 CENTRAL HEADER #129   02014B50 (33639248)\n+6E7EC8 Created Zip Spec      14 (20) '2.0'\n+6E7EC9 Created OS            00 (0) 'MS-DOS'\n+6E7ECA Extract Zip Spec      14 (20) '2.0'\n+6E7ECB Extract OS            00 (0) 'MS-DOS'\n+6E7ECC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7ECE Compression Method    0000 (0) 'Stored'\n+6E7ED0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7ED4 CRC                   00000000 (0)\n+6E7ED8 Compressed Size       00000000 (0)\n+6E7EDC Uncompressed Size     00000000 (0)\n+6E7EE0 Filename Length       0045 (69)\n+6E7EE2 Extra Length          0009 (9)\n+6E7EE4 Comment Length        0000 (0)\n+6E7EE6 Disk Start            0000 (0)\n+6E7EE8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7EEA Ext File Attributes   00000000 (0)\n+6E7EEE Local Header Offset   000530B6 (340150)\n+6E7EF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7EF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7F37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7F39   Length              0005 (5)\n+6E7F3B   Flags               01 (1) 'Modification'\n+6E7F3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7F40 CENTRAL HEADER #130   02014B50 (33639248)\n+6E7F44 Created Zip Spec      14 (20) '2.0'\n+6E7F45 Created OS            00 (0) 'MS-DOS'\n+6E7F46 Extract Zip Spec      14 (20) '2.0'\n+6E7F47 Extract OS            00 (0) 'MS-DOS'\n+6E7F48 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E7F4A Compression Method    0000 (0) 'Stored'\n+6E7F4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7F50 CRC                   FBE00F68 (4225765224)\n+6E7F54 Compressed Size       0000081B (2075)\n+6E7F58 Uncompressed Size     0000081B (2075)\n+6E7F5C Filename Length       003E (62)\n+6E7F5E Extra Length          0009 (9)\n+6E7F60 Comment Length        0000 (0)\n+6E7F62 Disk Start            0000 (0)\n+6E7F64 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7F66 Ext File Attributes   00000000 (0)\n+6E7F6A Local Header Offset   00053132 (340274)\n+6E7F6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7F6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E7FAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E7FAE   Length              0005 (5)\n+6E7FB0   Flags               01 (1) 'Modification'\n+6E7FB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E7FB5 CENTRAL HEADER #131   02014B50 (33639248)\n+6E7FB9 Created Zip Spec      14 (20) '2.0'\n+6E7FBA Created OS            00 (0) 'MS-DOS'\n+6E7FBB Extract Zip Spec      14 (20) '2.0'\n+6E7FBC Extract OS            00 (0) 'MS-DOS'\n+6E7FBD General Purpose Flag  0000 (0)\n+6E7FBF Compression Method    0000 (0) 'Stored'\n+6E7FC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E7FC5 CRC                   00000000 (0)\n+6E7FC9 Compressed Size       00000000 (0)\n+6E7FCD Uncompressed Size     00000000 (0)\n+6E7FD1 Filename Length       0033 (51)\n+6E7FD3 Extra Length          0009 (9)\n+6E7FD5 Comment Length        0000 (0)\n+6E7FD7 Disk Start            0000 (0)\n+6E7FD9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E7FDB Ext File Attributes   00000000 (0)\n+6E7FDF Local Header Offset   000539C2 (342466)\n+6E7FE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E7FE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8018   Length              0005 (5)\n+6E801A   Flags               01 (1) 'Modification'\n+6E801B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E801F CENTRAL HEADER #132   02014B50 (33639248)\n+6E8023 Created Zip Spec      14 (20) '2.0'\n+6E8024 Created OS            00 (0) 'MS-DOS'\n+6E8025 Extract Zip Spec      14 (20) '2.0'\n+6E8026 Extract OS            00 (0) 'MS-DOS'\n+6E8027 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8029 Compression Method    0000 (0) 'Stored'\n+6E802B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E802F CRC                   00000000 (0)\n+6E8033 Compressed Size       00000000 (0)\n+6E8037 Uncompressed Size     00000000 (0)\n+6E803B Filename Length       0041 (65)\n+6E803D Extra Length          0009 (9)\n+6E803F Comment Length        0000 (0)\n+6E8041 Disk Start            0000 (0)\n+6E8043 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8045 Ext File Attributes   00000000 (0)\n+6E8049 Local Header Offset   00053A1C (342556)\n+6E804D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E804D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E808E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8090   Length              0005 (5)\n+6E8092   Flags               01 (1) 'Modification'\n+6E8093   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8097 CENTRAL HEADER #133   02014B50 (33639248)\n+6E809B Created Zip Spec      14 (20) '2.0'\n+6E809C Created OS            00 (0) 'MS-DOS'\n+6E809D Extract Zip Spec      14 (20) '2.0'\n+6E809E Extract OS            00 (0) 'MS-DOS'\n+6E809F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E80A1 Compression Method    0000 (0) 'Stored'\n+6E80A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E80A7 CRC                   6B1D5A12 (1797085714)\n+6E80AB Compressed Size       000008B1 (2225)\n+6E80AF Uncompressed Size     000008B1 (2225)\n+6E80B3 Filename Length       003A (58)\n+6E80B5 Extra Length          0009 (9)\n+6E80B7 Comment Length        0000 (0)\n+6E80B9 Disk Start            0000 (0)\n+6E80BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E80BD Ext File Attributes   00000000 (0)\n+6E80C1 Local Header Offset   00053A94 (342676)\n+6E80C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E80C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E80FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8101   Length              0005 (5)\n+6E8103   Flags               01 (1) 'Modification'\n+6E8104   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8108 CENTRAL HEADER #134   02014B50 (33639248)\n+6E810C Created Zip Spec      14 (20) '2.0'\n+6E810D Created OS            00 (0) 'MS-DOS'\n+6E810E Extract Zip Spec      14 (20) '2.0'\n+6E810F Extract OS            00 (0) 'MS-DOS'\n+6E8110 General Purpose Flag  0000 (0)\n+6E8112 Compression Method    0000 (0) 'Stored'\n+6E8114 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8118 CRC                   00000000 (0)\n+6E811C Compressed Size       00000000 (0)\n+6E8120 Uncompressed Size     00000000 (0)\n+6E8124 Filename Length       0038 (56)\n+6E8126 Extra Length          0009 (9)\n+6E8128 Comment Length        0000 (0)\n+6E812A Disk Start            0000 (0)\n+6E812C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E812E Ext File Attributes   00000000 (0)\n+6E8132 Local Header Offset   000543B6 (345014)\n+6E8136 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8136: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E816E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8170   Length              0005 (5)\n+6E8172   Flags               01 (1) 'Modification'\n+6E8173   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8177 CENTRAL HEADER #135   02014B50 (33639248)\n+6E817B Created Zip Spec      14 (20) '2.0'\n+6E817C Created OS            00 (0) 'MS-DOS'\n+6E817D Extract Zip Spec      14 (20) '2.0'\n+6E817E Extract OS            00 (0) 'MS-DOS'\n+6E817F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8181 Compression Method    0000 (0) 'Stored'\n+6E8183 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8187 CRC                   00000000 (0)\n+6E818B Compressed Size       00000000 (0)\n+6E818F Uncompressed Size     00000000 (0)\n+6E8193 Filename Length       0046 (70)\n+6E8195 Extra Length          0009 (9)\n+6E8197 Comment Length        0000 (0)\n+6E8199 Disk Start            0000 (0)\n+6E819B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E819D Ext File Attributes   00000000 (0)\n+6E81A1 Local Header Offset   00054415 (345109)\n+6E81A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E81A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E81EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E81ED   Length              0005 (5)\n+6E81EF   Flags               01 (1) 'Modification'\n+6E81F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E81F4 CENTRAL HEADER #136   02014B50 (33639248)\n+6E81F8 Created Zip Spec      14 (20) '2.0'\n+6E81F9 Created OS            00 (0) 'MS-DOS'\n+6E81FA Extract Zip Spec      14 (20) '2.0'\n+6E81FB Extract OS            00 (0) 'MS-DOS'\n+6E81FC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E81FE Compression Method    0000 (0) 'Stored'\n+6E8200 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8204 CRC                   705B7625 (1885042213)\n+6E8208 Compressed Size       00000BC3 (3011)\n+6E820C Uncompressed Size     00000BC3 (3011)\n+6E8210 Filename Length       003F (63)\n+6E8212 Extra Length          0009 (9)\n+6E8214 Comment Length        0000 (0)\n+6E8216 Disk Start            0000 (0)\n+6E8218 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E821A Ext File Attributes   00000000 (0)\n+6E821E Local Header Offset   00054492 (345234)\n+6E8222 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8222: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8261 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8263   Length              0005 (5)\n+6E8265   Flags               01 (1) 'Modification'\n+6E8266   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E826A CENTRAL HEADER #137   02014B50 (33639248)\n+6E826E Created Zip Spec      14 (20) '2.0'\n+6E826F Created OS            00 (0) 'MS-DOS'\n+6E8270 Extract Zip Spec      14 (20) '2.0'\n+6E8271 Extract OS            00 (0) 'MS-DOS'\n+6E8272 General Purpose Flag  0000 (0)\n+6E8274 Compression Method    0000 (0) 'Stored'\n+6E8276 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E827A CRC                   00000000 (0)\n+6E827E Compressed Size       00000000 (0)\n+6E8282 Uncompressed Size     00000000 (0)\n+6E8286 Filename Length       0033 (51)\n+6E8288 Extra Length          0009 (9)\n+6E828A Comment Length        0000 (0)\n+6E828C Disk Start            0000 (0)\n+6E828E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8290 Ext File Attributes   00000000 (0)\n+6E8294 Local Header Offset   000550CB (348363)\n+6E8298 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8298: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E82CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E82CD   Length              0005 (5)\n+6E82CF   Flags               01 (1) 'Modification'\n+6E82D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E82D4 CENTRAL HEADER #138   02014B50 (33639248)\n+6E82D8 Created Zip Spec      14 (20) '2.0'\n+6E82D9 Created OS            00 (0) 'MS-DOS'\n+6E82DA Extract Zip Spec      14 (20) '2.0'\n+6E82DB Extract OS            00 (0) 'MS-DOS'\n+6E82DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E82DE Compression Method    0000 (0) 'Stored'\n+6E82E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E82E4 CRC                   00000000 (0)\n+6E82E8 Compressed Size       00000000 (0)\n+6E82EC Uncompressed Size     00000000 (0)\n+6E82F0 Filename Length       0041 (65)\n+6E82F2 Extra Length          0009 (9)\n+6E82F4 Comment Length        0000 (0)\n+6E82F6 Disk Start            0000 (0)\n+6E82F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E82FA Ext File Attributes   00000000 (0)\n+6E82FE Local Header Offset   00055125 (348453)\n+6E8302 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8302: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8343 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8345   Length              0005 (5)\n+6E8347   Flags               01 (1) 'Modification'\n+6E8348   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E834C CENTRAL HEADER #139   02014B50 (33639248)\n+6E8350 Created Zip Spec      14 (20) '2.0'\n+6E8351 Created OS            00 (0) 'MS-DOS'\n+6E8352 Extract Zip Spec      14 (20) '2.0'\n+6E8353 Extract OS            00 (0) 'MS-DOS'\n+6E8354 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8356 Compression Method    0000 (0) 'Stored'\n+6E8358 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E835C CRC                   4FF02D0F (1341140239)\n+6E8360 Compressed Size       00000BA1 (2977)\n+6E8364 Uncompressed Size     00000BA1 (2977)\n+6E8368 Filename Length       003A (58)\n+6E836A Extra Length          0009 (9)\n+6E836C Comment Length        0000 (0)\n+6E836E Disk Start            0000 (0)\n+6E8370 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8372 Ext File Attributes   00000000 (0)\n+6E8376 Local Header Offset   0005519D (348573)\n+6E837A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E837A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E83B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E83B6   Length              0005 (5)\n+6E83B8   Flags               01 (1) 'Modification'\n+6E83B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E83BD CENTRAL HEADER #140   02014B50 (33639248)\n+6E83C1 Created Zip Spec      14 (20) '2.0'\n+6E83C2 Created OS            00 (0) 'MS-DOS'\n+6E83C3 Extract Zip Spec      14 (20) '2.0'\n+6E83C4 Extract OS            00 (0) 'MS-DOS'\n+6E83C5 General Purpose Flag  0000 (0)\n+6E83C7 Compression Method    0000 (0) 'Stored'\n+6E83C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E83CD CRC                   00000000 (0)\n+6E83D1 Compressed Size       00000000 (0)\n+6E83D5 Uncompressed Size     00000000 (0)\n+6E83D9 Filename Length       003D (61)\n+6E83DB Extra Length          0009 (9)\n+6E83DD Comment Length        0000 (0)\n+6E83DF Disk Start            0000 (0)\n+6E83E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E83E3 Ext File Attributes   00000000 (0)\n+6E83E7 Local Header Offset   00055DAF (351663)\n+6E83EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E83EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8428 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E842A   Length              0005 (5)\n+6E842C   Flags               01 (1) 'Modification'\n+6E842D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8431 CENTRAL HEADER #141   02014B50 (33639248)\n+6E8435 Created Zip Spec      14 (20) '2.0'\n+6E8436 Created OS            00 (0) 'MS-DOS'\n+6E8437 Extract Zip Spec      14 (20) '2.0'\n+6E8438 Extract OS            00 (0) 'MS-DOS'\n+6E8439 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E843B Compression Method    0000 (0) 'Stored'\n+6E843D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8441 CRC                   00000000 (0)\n+6E8445 Compressed Size       00000000 (0)\n+6E8449 Uncompressed Size     00000000 (0)\n+6E844D Filename Length       004B (75)\n+6E844F Extra Length          0009 (9)\n+6E8451 Comment Length        0000 (0)\n+6E8453 Disk Start            0000 (0)\n+6E8455 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8457 Ext File Attributes   00000000 (0)\n+6E845B Local Header Offset   00055E13 (351763)\n+6E845F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E845F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E84AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E84AC   Length              0005 (5)\n+6E84AE   Flags               01 (1) 'Modification'\n+6E84AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E84B3 CENTRAL HEADER #142   02014B50 (33639248)\n+6E84B7 Created Zip Spec      14 (20) '2.0'\n+6E84B8 Created OS            00 (0) 'MS-DOS'\n+6E84B9 Extract Zip Spec      14 (20) '2.0'\n+6E84BA Extract OS            00 (0) 'MS-DOS'\n+6E84BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E84BD Compression Method    0000 (0) 'Stored'\n+6E84BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E84C3 CRC                   BC035C85 (3154336901)\n+6E84C7 Compressed Size       00000830 (2096)\n+6E84CB Uncompressed Size     00000830 (2096)\n+6E84CF Filename Length       0044 (68)\n+6E84D1 Extra Length          0009 (9)\n+6E84D3 Comment Length        0000 (0)\n+6E84D5 Disk Start            0000 (0)\n+6E84D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E84D9 Ext File Attributes   00000000 (0)\n+6E84DD Local Header Offset   00055E95 (351893)\n+6E84E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E84E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8525 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8527   Length              0005 (5)\n+6E8529   Flags               01 (1) 'Modification'\n+6E852A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E852E CENTRAL HEADER #143   02014B50 (33639248)\n+6E8532 Created Zip Spec      14 (20) '2.0'\n+6E8533 Created OS            00 (0) 'MS-DOS'\n+6E8534 Extract Zip Spec      14 (20) '2.0'\n+6E8535 Extract OS            00 (0) 'MS-DOS'\n+6E8536 General Purpose Flag  0000 (0)\n+6E8538 Compression Method    0000 (0) 'Stored'\n+6E853A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E853E CRC                   00000000 (0)\n+6E8542 Compressed Size       00000000 (0)\n+6E8546 Uncompressed Size     00000000 (0)\n+6E854A Filename Length       003B (59)\n+6E854C Extra Length          0009 (9)\n+6E854E Comment Length        0000 (0)\n+6E8550 Disk Start            0000 (0)\n+6E8552 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8554 Ext File Attributes   00000000 (0)\n+6E8558 Local Header Offset   00056740 (354112)\n+6E855C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E855C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8597 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8599   Length              0005 (5)\n+6E859B   Flags               01 (1) 'Modification'\n+6E859C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E85A0 CENTRAL HEADER #144   02014B50 (33639248)\n+6E85A4 Created Zip Spec      14 (20) '2.0'\n+6E85A5 Created OS            00 (0) 'MS-DOS'\n+6E85A6 Extract Zip Spec      14 (20) '2.0'\n+6E85A7 Extract OS            00 (0) 'MS-DOS'\n+6E85A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E85AA Compression Method    0000 (0) 'Stored'\n+6E85AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E85B0 CRC                   00000000 (0)\n+6E85B4 Compressed Size       00000000 (0)\n+6E85B8 Uncompressed Size     00000000 (0)\n+6E85BC Filename Length       0049 (73)\n+6E85BE Extra Length          0009 (9)\n+6E85C0 Comment Length        0000 (0)\n+6E85C2 Disk Start            0000 (0)\n+6E85C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E85C6 Ext File Attributes   00000000 (0)\n+6E85CA Local Header Offset   000567A2 (354210)\n+6E85CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E85CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8617 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8619   Length              0005 (5)\n+6E861B   Flags               01 (1) 'Modification'\n+6E861C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8620 CENTRAL HEADER #145   02014B50 (33639248)\n+6E8624 Created Zip Spec      14 (20) '2.0'\n+6E8625 Created OS            00 (0) 'MS-DOS'\n+6E8626 Extract Zip Spec      14 (20) '2.0'\n+6E8627 Extract OS            00 (0) 'MS-DOS'\n+6E8628 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E862A Compression Method    0000 (0) 'Stored'\n+6E862C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8630 CRC                   5928AB14 (1495837460)\n+6E8634 Compressed Size       00000A1C (2588)\n+6E8638 Uncompressed Size     00000A1C (2588)\n+6E863C Filename Length       0042 (66)\n+6E863E Extra Length          0009 (9)\n+6E8640 Comment Length        0000 (0)\n+6E8642 Disk Start            0000 (0)\n+6E8644 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8646 Ext File Attributes   00000000 (0)\n+6E864A Local Header Offset   00056822 (354338)\n+6E864E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E864E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8690 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8692   Length              0005 (5)\n+6E8694   Flags               01 (1) 'Modification'\n+6E8695   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8699 CENTRAL HEADER #146   02014B50 (33639248)\n+6E869D Created Zip Spec      14 (20) '2.0'\n+6E869E Created OS            00 (0) 'MS-DOS'\n+6E869F Extract Zip Spec      14 (20) '2.0'\n+6E86A0 Extract OS            00 (0) 'MS-DOS'\n+6E86A1 General Purpose Flag  0000 (0)\n+6E86A3 Compression Method    0000 (0) 'Stored'\n+6E86A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E86A9 CRC                   00000000 (0)\n+6E86AD Compressed Size       00000000 (0)\n+6E86B1 Uncompressed Size     00000000 (0)\n+6E86B5 Filename Length       003F (63)\n+6E86B7 Extra Length          0009 (9)\n+6E86B9 Comment Length        0000 (0)\n+6E86BB Disk Start            0000 (0)\n+6E86BD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E86BF Ext File Attributes   00000000 (0)\n+6E86C3 Local Header Offset   000572B7 (357047)\n+6E86C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E86C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8706 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8708   Length              0005 (5)\n+6E870A   Flags               01 (1) 'Modification'\n+6E870B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E870F CENTRAL HEADER #147   02014B50 (33639248)\n+6E8713 Created Zip Spec      14 (20) '2.0'\n+6E8714 Created OS            00 (0) 'MS-DOS'\n+6E8715 Extract Zip Spec      14 (20) '2.0'\n+6E8716 Extract OS            00 (0) 'MS-DOS'\n+6E8717 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8719 Compression Method    0000 (0) 'Stored'\n+6E871B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E871F CRC                   00000000 (0)\n+6E8723 Compressed Size       00000000 (0)\n+6E8727 Uncompressed Size     00000000 (0)\n+6E872B Filename Length       004D (77)\n+6E872D Extra Length          0009 (9)\n+6E872F Comment Length        0000 (0)\n+6E8731 Disk Start            0000 (0)\n+6E8733 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8735 Ext File Attributes   00000000 (0)\n+6E8739 Local Header Offset   0005731D (357149)\n+6E873D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E873D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E878A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E878C   Length              0005 (5)\n+6E878E   Flags               01 (1) 'Modification'\n+6E878F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8793 CENTRAL HEADER #148   02014B50 (33639248)\n+6E8797 Created Zip Spec      14 (20) '2.0'\n+6E8798 Created OS            00 (0) 'MS-DOS'\n+6E8799 Extract Zip Spec      14 (20) '2.0'\n+6E879A Extract OS            00 (0) 'MS-DOS'\n+6E879B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E879D Compression Method    0000 (0) 'Stored'\n+6E879F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E87A3 CRC                   9E243A48 (2653174344)\n+6E87A7 Compressed Size       000006E3 (1763)\n+6E87AB Uncompressed Size     000006E3 (1763)\n+6E87AF Filename Length       0046 (70)\n+6E87B1 Extra Length          0009 (9)\n+6E87B3 Comment Length        0000 (0)\n+6E87B5 Disk Start            0000 (0)\n+6E87B7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E87B9 Ext File Attributes   00000000 (0)\n+6E87BD Local Header Offset   000573A1 (357281)\n+6E87C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E87C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8807 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8809   Length              0005 (5)\n+6E880B   Flags               01 (1) 'Modification'\n+6E880C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8810 CENTRAL HEADER #149   02014B50 (33639248)\n+6E8814 Created Zip Spec      14 (20) '2.0'\n+6E8815 Created OS            00 (0) 'MS-DOS'\n+6E8816 Extract Zip Spec      14 (20) '2.0'\n+6E8817 Extract OS            00 (0) 'MS-DOS'\n+6E8818 General Purpose Flag  0000 (0)\n+6E881A Compression Method    0000 (0) 'Stored'\n+6E881C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8820 CRC                   00000000 (0)\n+6E8824 Compressed Size       00000000 (0)\n+6E8828 Uncompressed Size     00000000 (0)\n+6E882C Filename Length       003C (60)\n+6E882E Extra Length          0009 (9)\n+6E8830 Comment Length        0000 (0)\n+6E8832 Disk Start            0000 (0)\n+6E8834 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8836 Ext File Attributes   00000000 (0)\n+6E883A Local Header Offset   00057B01 (359169)\n+6E883E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E883E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E887A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E887C   Length              0005 (5)\n+6E887E   Flags               01 (1) 'Modification'\n+6E887F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8883 CENTRAL HEADER #150   02014B50 (33639248)\n+6E8887 Created Zip Spec      14 (20) '2.0'\n+6E8888 Created OS            00 (0) 'MS-DOS'\n+6E8889 Extract Zip Spec      14 (20) '2.0'\n+6E888A Extract OS            00 (0) 'MS-DOS'\n+6E888B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E888D Compression Method    0000 (0) 'Stored'\n+6E888F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8893 CRC                   00000000 (0)\n+6E8897 Compressed Size       00000000 (0)\n+6E889B Uncompressed Size     00000000 (0)\n+6E889F Filename Length       004A (74)\n+6E88A1 Extra Length          0009 (9)\n+6E88A3 Comment Length        0000 (0)\n+6E88A5 Disk Start            0000 (0)\n+6E88A7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E88A9 Ext File Attributes   00000000 (0)\n+6E88AD Local Header Offset   00057B64 (359268)\n+6E88B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E88B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E88FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E88FD   Length              0005 (5)\n+6E88FF   Flags               01 (1) 'Modification'\n+6E8900   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8904 CENTRAL HEADER #151   02014B50 (33639248)\n+6E8908 Created Zip Spec      14 (20) '2.0'\n+6E8909 Created OS            00 (0) 'MS-DOS'\n+6E890A Extract Zip Spec      14 (20) '2.0'\n+6E890B Extract OS            00 (0) 'MS-DOS'\n+6E890C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E890E Compression Method    0000 (0) 'Stored'\n+6E8910 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8914 CRC                   19067571 (419853681)\n+6E8918 Compressed Size       000007B7 (1975)\n+6E891C Uncompressed Size     000007B7 (1975)\n+6E8920 Filename Length       0043 (67)\n+6E8922 Extra Length          0009 (9)\n+6E8924 Comment Length        0000 (0)\n+6E8926 Disk Start            0000 (0)\n+6E8928 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E892A Ext File Attributes   00000000 (0)\n+6E892E Local Header Offset   00057BE5 (359397)\n+6E8932 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8932: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8975 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8977   Length              0005 (5)\n+6E8979   Flags               01 (1) 'Modification'\n+6E897A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E897E CENTRAL HEADER #152   02014B50 (33639248)\n+6E8982 Created Zip Spec      14 (20) '2.0'\n+6E8983 Created OS            00 (0) 'MS-DOS'\n+6E8984 Extract Zip Spec      14 (20) '2.0'\n+6E8985 Extract OS            00 (0) 'MS-DOS'\n+6E8986 General Purpose Flag  0000 (0)\n+6E8988 Compression Method    0000 (0) 'Stored'\n+6E898A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E898E CRC                   00000000 (0)\n+6E8992 Compressed Size       00000000 (0)\n+6E8996 Uncompressed Size     00000000 (0)\n+6E899A Filename Length       003C (60)\n+6E899C Extra Length          0009 (9)\n+6E899E Comment Length        0000 (0)\n+6E89A0 Disk Start            0000 (0)\n+6E89A2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E89A4 Ext File Attributes   00000000 (0)\n+6E89A8 Local Header Offset   00058416 (361494)\n+6E89AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E89AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E89E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E89EA   Length              0005 (5)\n+6E89EC   Flags               01 (1) 'Modification'\n+6E89ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E89F1 CENTRAL HEADER #153   02014B50 (33639248)\n+6E89F5 Created Zip Spec      14 (20) '2.0'\n+6E89F6 Created OS            00 (0) 'MS-DOS'\n+6E89F7 Extract Zip Spec      14 (20) '2.0'\n+6E89F8 Extract OS            00 (0) 'MS-DOS'\n+6E89F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E89FB Compression Method    0000 (0) 'Stored'\n+6E89FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8A01 CRC                   00000000 (0)\n+6E8A05 Compressed Size       00000000 (0)\n+6E8A09 Uncompressed Size     00000000 (0)\n+6E8A0D Filename Length       004A (74)\n+6E8A0F Extra Length          0009 (9)\n+6E8A11 Comment Length        0000 (0)\n+6E8A13 Disk Start            0000 (0)\n+6E8A15 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8A17 Ext File Attributes   00000000 (0)\n+6E8A1B Local Header Offset   00058479 (361593)\n+6E8A1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8A1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8A69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8A6B   Length              0005 (5)\n+6E8A6D   Flags               01 (1) 'Modification'\n+6E8A6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8A72 CENTRAL HEADER #154   02014B50 (33639248)\n+6E8A76 Created Zip Spec      14 (20) '2.0'\n+6E8A77 Created OS            00 (0) 'MS-DOS'\n+6E8A78 Extract Zip Spec      14 (20) '2.0'\n+6E8A79 Extract OS            00 (0) 'MS-DOS'\n+6E8A7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8A7C Compression Method    0000 (0) 'Stored'\n+6E8A7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8A82 CRC                   26D24E82 (651316866)\n+6E8A86 Compressed Size       00000911 (2321)\n+6E8A8A Uncompressed Size     00000911 (2321)\n+6E8A8E Filename Length       0043 (67)\n+6E8A90 Extra Length          0009 (9)\n+6E8A92 Comment Length        0000 (0)\n+6E8A94 Disk Start            0000 (0)\n+6E8A96 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8A98 Ext File Attributes   00000000 (0)\n+6E8A9C Local Header Offset   000584FA (361722)\n+6E8AA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8AA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8AE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8AE5   Length              0005 (5)\n+6E8AE7   Flags               01 (1) 'Modification'\n+6E8AE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8AEC CENTRAL HEADER #155   02014B50 (33639248)\n+6E8AF0 Created Zip Spec      14 (20) '2.0'\n+6E8AF1 Created OS            00 (0) 'MS-DOS'\n+6E8AF2 Extract Zip Spec      14 (20) '2.0'\n+6E8AF3 Extract OS            00 (0) 'MS-DOS'\n+6E8AF4 General Purpose Flag  0000 (0)\n+6E8AF6 Compression Method    0000 (0) 'Stored'\n+6E8AF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8AFC CRC                   00000000 (0)\n+6E8B00 Compressed Size       00000000 (0)\n+6E8B04 Uncompressed Size     00000000 (0)\n+6E8B08 Filename Length       0040 (64)\n+6E8B0A Extra Length          0009 (9)\n+6E8B0C Comment Length        0000 (0)\n+6E8B0E Disk Start            0000 (0)\n+6E8B10 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8B12 Ext File Attributes   00000000 (0)\n+6E8B16 Local Header Offset   00058E85 (364165)\n+6E8B1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8B1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8B5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8B5C   Length              0005 (5)\n+6E8B5E   Flags               01 (1) 'Modification'\n+6E8B5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8B63 CENTRAL HEADER #156   02014B50 (33639248)\n+6E8B67 Created Zip Spec      14 (20) '2.0'\n+6E8B68 Created OS            00 (0) 'MS-DOS'\n+6E8B69 Extract Zip Spec      14 (20) '2.0'\n+6E8B6A Extract OS            00 (0) 'MS-DOS'\n+6E8B6B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8B6D Compression Method    0000 (0) 'Stored'\n+6E8B6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8B73 CRC                   00000000 (0)\n+6E8B77 Compressed Size       00000000 (0)\n+6E8B7B Uncompressed Size     00000000 (0)\n+6E8B7F Filename Length       004E (78)\n+6E8B81 Extra Length          0009 (9)\n+6E8B83 Comment Length        0000 (0)\n+6E8B85 Disk Start            0000 (0)\n+6E8B87 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8B89 Ext File Attributes   00000000 (0)\n+6E8B8D Local Header Offset   00058EEC (364268)\n+6E8B91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8B91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8BE1   Length              0005 (5)\n+6E8BE3   Flags               01 (1) 'Modification'\n+6E8BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8BE8 CENTRAL HEADER #157   02014B50 (33639248)\n+6E8BEC Created Zip Spec      14 (20) '2.0'\n+6E8BED Created OS            00 (0) 'MS-DOS'\n+6E8BEE Extract Zip Spec      14 (20) '2.0'\n+6E8BEF Extract OS            00 (0) 'MS-DOS'\n+6E8BF0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8BF2 Compression Method    0000 (0) 'Stored'\n+6E8BF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8BF8 CRC                   1213AD1C (303279388)\n+6E8BFC Compressed Size       00000836 (2102)\n+6E8C00 Uncompressed Size     00000836 (2102)\n+6E8C04 Filename Length       0047 (71)\n+6E8C06 Extra Length          0009 (9)\n+6E8C08 Comment Length        0000 (0)\n+6E8C0A Disk Start            0000 (0)\n+6E8C0C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8C0E Ext File Attributes   00000000 (0)\n+6E8C12 Local Header Offset   00058F71 (364401)\n+6E8C16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8C16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8C5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8C5F   Length              0005 (5)\n+6E8C61   Flags               01 (1) 'Modification'\n+6E8C62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8C66 CENTRAL HEADER #158   02014B50 (33639248)\n+6E8C6A Created Zip Spec      14 (20) '2.0'\n+6E8C6B Created OS            00 (0) 'MS-DOS'\n+6E8C6C Extract Zip Spec      14 (20) '2.0'\n+6E8C6D Extract OS            00 (0) 'MS-DOS'\n+6E8C6E General Purpose Flag  0000 (0)\n+6E8C70 Compression Method    0000 (0) 'Stored'\n+6E8C72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8C76 CRC                   00000000 (0)\n+6E8C7A Compressed Size       00000000 (0)\n+6E8C7E Uncompressed Size     00000000 (0)\n+6E8C82 Filename Length       0032 (50)\n+6E8C84 Extra Length          0009 (9)\n+6E8C86 Comment Length        0000 (0)\n+6E8C88 Disk Start            0000 (0)\n+6E8C8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8C8C Ext File Attributes   00000000 (0)\n+6E8C90 Local Header Offset   00059825 (366629)\n+6E8C94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8C94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8CC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8CC8   Length              0005 (5)\n+6E8CCA   Flags               01 (1) 'Modification'\n+6E8CCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8CCF CENTRAL HEADER #159   02014B50 (33639248)\n+6E8CD3 Created Zip Spec      14 (20) '2.0'\n+6E8CD4 Created OS            00 (0) 'MS-DOS'\n+6E8CD5 Extract Zip Spec      14 (20) '2.0'\n+6E8CD6 Extract OS            00 (0) 'MS-DOS'\n+6E8CD7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8CD9 Compression Method    0000 (0) 'Stored'\n+6E8CDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8CDF CRC                   00000000 (0)\n+6E8CE3 Compressed Size       00000000 (0)\n+6E8CE7 Uncompressed Size     00000000 (0)\n+6E8CEB Filename Length       0040 (64)\n+6E8CED Extra Length          0009 (9)\n+6E8CEF Comment Length        0000 (0)\n+6E8CF1 Disk Start            0000 (0)\n+6E8CF3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8CF5 Ext File Attributes   00000000 (0)\n+6E8CF9 Local Header Offset   0005987E (366718)\n+6E8CFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8CFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8D3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8D3F   Length              0005 (5)\n+6E8D41   Flags               01 (1) 'Modification'\n+6E8D42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8D46 CENTRAL HEADER #160   02014B50 (33639248)\n+6E8D4A Created Zip Spec      14 (20) '2.0'\n+6E8D4B Created OS            00 (0) 'MS-DOS'\n+6E8D4C Extract Zip Spec      14 (20) '2.0'\n+6E8D4D Extract OS            00 (0) 'MS-DOS'\n+6E8D4E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8D50 Compression Method    0000 (0) 'Stored'\n+6E8D52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8D56 CRC                   6A3922C1 (1782129345)\n+6E8D5A Compressed Size       0000092A (2346)\n+6E8D5E Uncompressed Size     0000092A (2346)\n+6E8D62 Filename Length       0039 (57)\n+6E8D64 Extra Length          0009 (9)\n+6E8D66 Comment Length        0000 (0)\n+6E8D68 Disk Start            0000 (0)\n+6E8D6A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8D6C Ext File Attributes   00000000 (0)\n+6E8D70 Local Header Offset   000598F5 (366837)\n+6E8D74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8D74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8DAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8DAF   Length              0005 (5)\n+6E8DB1   Flags               01 (1) 'Modification'\n+6E8DB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8DB6 CENTRAL HEADER #161   02014B50 (33639248)\n+6E8DBA Created Zip Spec      14 (20) '2.0'\n+6E8DBB Created OS            00 (0) 'MS-DOS'\n+6E8DBC Extract Zip Spec      14 (20) '2.0'\n+6E8DBD Extract OS            00 (0) 'MS-DOS'\n+6E8DBE General Purpose Flag  0000 (0)\n+6E8DC0 Compression Method    0000 (0) 'Stored'\n+6E8DC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8DC6 CRC                   00000000 (0)\n+6E8DCA Compressed Size       00000000 (0)\n+6E8DCE Uncompressed Size     00000000 (0)\n+6E8DD2 Filename Length       0036 (54)\n+6E8DD4 Extra Length          0009 (9)\n+6E8DD6 Comment Length        0000 (0)\n+6E8DD8 Disk Start            0000 (0)\n+6E8DDA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8DDC Ext File Attributes   00000000 (0)\n+6E8DE0 Local Header Offset   0005A28F (369295)\n+6E8DE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8DE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8E1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8E1C   Length              0005 (5)\n+6E8E1E   Flags               01 (1) 'Modification'\n+6E8E1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8E23 CENTRAL HEADER #162   02014B50 (33639248)\n+6E8E27 Created Zip Spec      14 (20) '2.0'\n+6E8E28 Created OS            00 (0) 'MS-DOS'\n+6E8E29 Extract Zip Spec      14 (20) '2.0'\n+6E8E2A Extract OS            00 (0) 'MS-DOS'\n+6E8E2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8E2D Compression Method    0000 (0) 'Stored'\n+6E8E2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8E33 CRC                   00000000 (0)\n+6E8E37 Compressed Size       00000000 (0)\n+6E8E3B Uncompressed Size     00000000 (0)\n+6E8E3F Filename Length       0044 (68)\n+6E8E41 Extra Length          0009 (9)\n+6E8E43 Comment Length        0000 (0)\n+6E8E45 Disk Start            0000 (0)\n+6E8E47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8E49 Ext File Attributes   00000000 (0)\n+6E8E4D Local Header Offset   0005A2EC (369388)\n+6E8E51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8E51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8E95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8E97   Length              0005 (5)\n+6E8E99   Flags               01 (1) 'Modification'\n+6E8E9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8E9E CENTRAL HEADER #163   02014B50 (33639248)\n+6E8EA2 Created Zip Spec      14 (20) '2.0'\n+6E8EA3 Created OS            00 (0) 'MS-DOS'\n+6E8EA4 Extract Zip Spec      14 (20) '2.0'\n+6E8EA5 Extract OS            00 (0) 'MS-DOS'\n+6E8EA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8EA8 Compression Method    0000 (0) 'Stored'\n+6E8EAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8EAE CRC                   5192999D (1368562077)\n+6E8EB2 Compressed Size       00000C1C (3100)\n+6E8EB6 Uncompressed Size     00000C1C (3100)\n+6E8EBA Filename Length       003D (61)\n+6E8EBC Extra Length          0009 (9)\n+6E8EBE Comment Length        0000 (0)\n+6E8EC0 Disk Start            0000 (0)\n+6E8EC2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8EC4 Ext File Attributes   00000000 (0)\n+6E8EC8 Local Header Offset   0005A367 (369511)\n+6E8ECC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8ECC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8F09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8F0B   Length              0005 (5)\n+6E8F0D   Flags               01 (1) 'Modification'\n+6E8F0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8F12 CENTRAL HEADER #164   02014B50 (33639248)\n+6E8F16 Created Zip Spec      14 (20) '2.0'\n+6E8F17 Created OS            00 (0) 'MS-DOS'\n+6E8F18 Extract Zip Spec      14 (20) '2.0'\n+6E8F19 Extract OS            00 (0) 'MS-DOS'\n+6E8F1A General Purpose Flag  0000 (0)\n+6E8F1C Compression Method    0000 (0) 'Stored'\n+6E8F1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8F22 CRC                   00000000 (0)\n+6E8F26 Compressed Size       00000000 (0)\n+6E8F2A Uncompressed Size     00000000 (0)\n+6E8F2E Filename Length       002A (42)\n+6E8F30 Extra Length          0009 (9)\n+6E8F32 Comment Length        0000 (0)\n+6E8F34 Disk Start            0000 (0)\n+6E8F36 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8F38 Ext File Attributes   00000000 (0)\n+6E8F3C Local Header Offset   0005AFF7 (372727)\n+6E8F40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8F40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8F6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8F6C   Length              0005 (5)\n+6E8F6E   Flags               01 (1) 'Modification'\n+6E8F6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8F73 CENTRAL HEADER #165   02014B50 (33639248)\n+6E8F77 Created Zip Spec      14 (20) '2.0'\n+6E8F78 Created OS            00 (0) 'MS-DOS'\n+6E8F79 Extract Zip Spec      14 (20) '2.0'\n+6E8F7A Extract OS            00 (0) 'MS-DOS'\n+6E8F7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8F7D Compression Method    0000 (0) 'Stored'\n+6E8F7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8F83 CRC                   00000000 (0)\n+6E8F87 Compressed Size       00000000 (0)\n+6E8F8B Uncompressed Size     00000000 (0)\n+6E8F8F Filename Length       0038 (56)\n+6E8F91 Extra Length          0009 (9)\n+6E8F93 Comment Length        0000 (0)\n+6E8F95 Disk Start            0000 (0)\n+6E8F97 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E8F99 Ext File Attributes   00000000 (0)\n+6E8F9D Local Header Offset   0005B048 (372808)\n+6E8FA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E8FA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E8FD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E8FDB   Length              0005 (5)\n+6E8FDD   Flags               01 (1) 'Modification'\n+6E8FDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E8FE2 CENTRAL HEADER #166   02014B50 (33639248)\n+6E8FE6 Created Zip Spec      14 (20) '2.0'\n+6E8FE7 Created OS            00 (0) 'MS-DOS'\n+6E8FE8 Extract Zip Spec      14 (20) '2.0'\n+6E8FE9 Extract OS            00 (0) 'MS-DOS'\n+6E8FEA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E8FEC Compression Method    0000 (0) 'Stored'\n+6E8FEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E8FF2 CRC                   CC527EDE (3427958494)\n+6E8FF6 Compressed Size       00000B3D (2877)\n+6E8FFA Uncompressed Size     00000B3D (2877)\n+6E8FFE Filename Length       0031 (49)\n+6E9000 Extra Length          0009 (9)\n+6E9002 Comment Length        0000 (0)\n+6E9004 Disk Start            0000 (0)\n+6E9006 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9008 Ext File Attributes   00000000 (0)\n+6E900C Local Header Offset   0005B0B7 (372919)\n+6E9010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9041 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9043   Length              0005 (5)\n+6E9045   Flags               01 (1) 'Modification'\n+6E9046   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E904A CENTRAL HEADER #167   02014B50 (33639248)\n+6E904E Created Zip Spec      14 (20) '2.0'\n+6E904F Created OS            00 (0) 'MS-DOS'\n+6E9050 Extract Zip Spec      14 (20) '2.0'\n+6E9051 Extract OS            00 (0) 'MS-DOS'\n+6E9052 General Purpose Flag  0000 (0)\n+6E9054 Compression Method    0000 (0) 'Stored'\n+6E9056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E905A CRC                   00000000 (0)\n+6E905E Compressed Size       00000000 (0)\n+6E9062 Uncompressed Size     00000000 (0)\n+6E9066 Filename Length       0033 (51)\n+6E9068 Extra Length          0009 (9)\n+6E906A Comment Length        0000 (0)\n+6E906C Disk Start            0000 (0)\n+6E906E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9070 Ext File Attributes   00000000 (0)\n+6E9074 Local Header Offset   0005BC5C (375900)\n+6E9078 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9078: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E90AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E90AD   Length              0005 (5)\n+6E90AF   Flags               01 (1) 'Modification'\n+6E90B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E90B4 CENTRAL HEADER #168   02014B50 (33639248)\n+6E90B8 Created Zip Spec      14 (20) '2.0'\n+6E90B9 Created OS            00 (0) 'MS-DOS'\n+6E90BA Extract Zip Spec      14 (20) '2.0'\n+6E90BB Extract OS            00 (0) 'MS-DOS'\n+6E90BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E90BE Compression Method    0000 (0) 'Stored'\n+6E90C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E90C4 CRC                   00000000 (0)\n+6E90C8 Compressed Size       00000000 (0)\n+6E90CC Uncompressed Size     00000000 (0)\n+6E90D0 Filename Length       0041 (65)\n+6E90D2 Extra Length          0009 (9)\n+6E90D4 Comment Length        0000 (0)\n+6E90D6 Disk Start            0000 (0)\n+6E90D8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E90DA Ext File Attributes   00000000 (0)\n+6E90DE Local Header Offset   0005BCB6 (375990)\n+6E90E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E90E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9123 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9125   Length              0005 (5)\n+6E9127   Flags               01 (1) 'Modification'\n+6E9128   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E912C CENTRAL HEADER #169   02014B50 (33639248)\n+6E9130 Created Zip Spec      14 (20) '2.0'\n+6E9131 Created OS            00 (0) 'MS-DOS'\n+6E9132 Extract Zip Spec      14 (20) '2.0'\n+6E9133 Extract OS            00 (0) 'MS-DOS'\n+6E9134 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9136 Compression Method    0000 (0) 'Stored'\n+6E9138 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E913C CRC                   C9D6A7C1 (3386288065)\n+6E9140 Compressed Size       00000C99 (3225)\n+6E9144 Uncompressed Size     00000C99 (3225)\n+6E9148 Filename Length       003A (58)\n+6E914A Extra Length          0009 (9)\n+6E914C Comment Length        0000 (0)\n+6E914E Disk Start            0000 (0)\n+6E9150 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9152 Ext File Attributes   00000000 (0)\n+6E9156 Local Header Offset   0005BD2E (376110)\n+6E915A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E915A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9196   Length              0005 (5)\n+6E9198   Flags               01 (1) 'Modification'\n+6E9199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E919D CENTRAL HEADER #170   02014B50 (33639248)\n+6E91A1 Created Zip Spec      14 (20) '2.0'\n+6E91A2 Created OS            00 (0) 'MS-DOS'\n+6E91A3 Extract Zip Spec      14 (20) '2.0'\n+6E91A4 Extract OS            00 (0) 'MS-DOS'\n+6E91A5 General Purpose Flag  0000 (0)\n+6E91A7 Compression Method    0000 (0) 'Stored'\n+6E91A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E91AD CRC                   00000000 (0)\n+6E91B1 Compressed Size       00000000 (0)\n+6E91B5 Uncompressed Size     00000000 (0)\n+6E91B9 Filename Length       0036 (54)\n+6E91BB Extra Length          0009 (9)\n+6E91BD Comment Length        0000 (0)\n+6E91BF Disk Start            0000 (0)\n+6E91C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E91C3 Ext File Attributes   00000000 (0)\n+6E91C7 Local Header Offset   0005CA38 (379448)\n+6E91CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E91CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9201 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9203   Length              0005 (5)\n+6E9205   Flags               01 (1) 'Modification'\n+6E9206   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E920A CENTRAL HEADER #171   02014B50 (33639248)\n+6E920E Created Zip Spec      14 (20) '2.0'\n+6E920F Created OS            00 (0) 'MS-DOS'\n+6E9210 Extract Zip Spec      14 (20) '2.0'\n+6E9211 Extract OS            00 (0) 'MS-DOS'\n+6E9212 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9214 Compression Method    0000 (0) 'Stored'\n+6E9216 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E921A CRC                   00000000 (0)\n+6E921E Compressed Size       00000000 (0)\n+6E9222 Uncompressed Size     00000000 (0)\n+6E9226 Filename Length       0044 (68)\n+6E9228 Extra Length          0009 (9)\n+6E922A Comment Length        0000 (0)\n+6E922C Disk Start            0000 (0)\n+6E922E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9230 Ext File Attributes   00000000 (0)\n+6E9234 Local Header Offset   0005CA95 (379541)\n+6E9238 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9238: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E927C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E927E   Length              0005 (5)\n+6E9280   Flags               01 (1) 'Modification'\n+6E9281   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9285 CENTRAL HEADER #172   02014B50 (33639248)\n+6E9289 Created Zip Spec      14 (20) '2.0'\n+6E928A Created OS            00 (0) 'MS-DOS'\n+6E928B Extract Zip Spec      14 (20) '2.0'\n+6E928C Extract OS            00 (0) 'MS-DOS'\n+6E928D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E928F Compression Method    0000 (0) 'Stored'\n+6E9291 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9295 CRC                   136E4489 (325993609)\n+6E9299 Compressed Size       00000951 (2385)\n+6E929D Uncompressed Size     00000951 (2385)\n+6E92A1 Filename Length       003D (61)\n+6E92A3 Extra Length          0009 (9)\n+6E92A5 Comment Length        0000 (0)\n+6E92A7 Disk Start            0000 (0)\n+6E92A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E92AB Ext File Attributes   00000000 (0)\n+6E92AF Local Header Offset   0005CB10 (379664)\n+6E92B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E92B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E92F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E92F2   Length              0005 (5)\n+6E92F4   Flags               01 (1) 'Modification'\n+6E92F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E92F9 CENTRAL HEADER #173   02014B50 (33639248)\n+6E92FD Created Zip Spec      14 (20) '2.0'\n+6E92FE Created OS            00 (0) 'MS-DOS'\n+6E92FF Extract Zip Spec      14 (20) '2.0'\n+6E9300 Extract OS            00 (0) 'MS-DOS'\n+6E9301 General Purpose Flag  0000 (0)\n+6E9303 Compression Method    0000 (0) 'Stored'\n+6E9305 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9309 CRC                   00000000 (0)\n+6E930D Compressed Size       00000000 (0)\n+6E9311 Uncompressed Size     00000000 (0)\n+6E9315 Filename Length       0037 (55)\n+6E9317 Extra Length          0009 (9)\n+6E9319 Comment Length        0000 (0)\n+6E931B Disk Start            0000 (0)\n+6E931D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E931F Ext File Attributes   00000000 (0)\n+6E9323 Local Header Offset   0005D4D5 (382165)\n+6E9327 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9327: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E935E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9360   Length              0005 (5)\n+6E9362   Flags               01 (1) 'Modification'\n+6E9363   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9367 CENTRAL HEADER #174   02014B50 (33639248)\n+6E936B Created Zip Spec      14 (20) '2.0'\n+6E936C Created OS            00 (0) 'MS-DOS'\n+6E936D Extract Zip Spec      14 (20) '2.0'\n+6E936E Extract OS            00 (0) 'MS-DOS'\n+6E936F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9371 Compression Method    0000 (0) 'Stored'\n+6E9373 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9377 CRC                   00000000 (0)\n+6E937B Compressed Size       00000000 (0)\n+6E937F Uncompressed Size     00000000 (0)\n+6E9383 Filename Length       0045 (69)\n+6E9385 Extra Length          0009 (9)\n+6E9387 Comment Length        0000 (0)\n+6E9389 Disk Start            0000 (0)\n+6E938B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E938D Ext File Attributes   00000000 (0)\n+6E9391 Local Header Offset   0005D533 (382259)\n+6E9395 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9395: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E93DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E93DC   Length              0005 (5)\n+6E93DE   Flags               01 (1) 'Modification'\n+6E93DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E93E3 CENTRAL HEADER #175   02014B50 (33639248)\n+6E93E7 Created Zip Spec      14 (20) '2.0'\n+6E93E8 Created OS            00 (0) 'MS-DOS'\n+6E93E9 Extract Zip Spec      14 (20) '2.0'\n+6E93EA Extract OS            00 (0) 'MS-DOS'\n+6E93EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E93ED Compression Method    0000 (0) 'Stored'\n+6E93EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E93F3 CRC                   1F6FA72F (527410991)\n+6E93F7 Compressed Size       00000B68 (2920)\n+6E93FB Uncompressed Size     00000B68 (2920)\n+6E93FF Filename Length       003E (62)\n+6E9401 Extra Length          0009 (9)\n+6E9403 Comment Length        0000 (0)\n+6E9405 Disk Start            0000 (0)\n+6E9407 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9409 Ext File Attributes   00000000 (0)\n+6E940D Local Header Offset   0005D5AF (382383)\n+6E9411 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9411: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E944F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9451   Length              0005 (5)\n+6E9453   Flags               01 (1) 'Modification'\n+6E9454   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9458 CENTRAL HEADER #176   02014B50 (33639248)\n+6E945C Created Zip Spec      14 (20) '2.0'\n+6E945D Created OS            00 (0) 'MS-DOS'\n+6E945E Extract Zip Spec      14 (20) '2.0'\n+6E945F Extract OS            00 (0) 'MS-DOS'\n+6E9460 General Purpose Flag  0000 (0)\n+6E9462 Compression Method    0000 (0) 'Stored'\n+6E9464 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9468 CRC                   00000000 (0)\n+6E946C Compressed Size       00000000 (0)\n+6E9470 Uncompressed Size     00000000 (0)\n+6E9474 Filename Length       0035 (53)\n+6E9476 Extra Length          0009 (9)\n+6E9478 Comment Length        0000 (0)\n+6E947A Disk Start            0000 (0)\n+6E947C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E947E Ext File Attributes   00000000 (0)\n+6E9482 Local Header Offset   0005E18C (385420)\n+6E9486 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9486: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E94BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E94BD   Length              0005 (5)\n+6E94BF   Flags               01 (1) 'Modification'\n+6E94C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E94C4 CENTRAL HEADER #177   02014B50 (33639248)\n+6E94C8 Created Zip Spec      14 (20) '2.0'\n+6E94C9 Created OS            00 (0) 'MS-DOS'\n+6E94CA Extract Zip Spec      14 (20) '2.0'\n+6E94CB Extract OS            00 (0) 'MS-DOS'\n+6E94CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E94CE Compression Method    0000 (0) 'Stored'\n+6E94D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E94D4 CRC                   00000000 (0)\n+6E94D8 Compressed Size       00000000 (0)\n+6E94DC Uncompressed Size     00000000 (0)\n+6E94E0 Filename Length       0043 (67)\n+6E94E2 Extra Length          0009 (9)\n+6E94E4 Comment Length        0000 (0)\n+6E94E6 Disk Start            0000 (0)\n+6E94E8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E94EA Ext File Attributes   00000000 (0)\n+6E94EE Local Header Offset   0005E1E8 (385512)\n+6E94F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E94F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9535 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9537   Length              0005 (5)\n+6E9539   Flags               01 (1) 'Modification'\n+6E953A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E953E CENTRAL HEADER #178   02014B50 (33639248)\n+6E9542 Created Zip Spec      14 (20) '2.0'\n+6E9543 Created OS            00 (0) 'MS-DOS'\n+6E9544 Extract Zip Spec      14 (20) '2.0'\n+6E9545 Extract OS            00 (0) 'MS-DOS'\n+6E9546 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9548 Compression Method    0000 (0) 'Stored'\n+6E954A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E954E CRC                   69F6084D (1777731661)\n+6E9552 Compressed Size       000008C5 (2245)\n+6E9556 Uncompressed Size     000008C5 (2245)\n+6E955A Filename Length       003C (60)\n+6E955C Extra Length          0009 (9)\n+6E955E Comment Length        0000 (0)\n+6E9560 Disk Start            0000 (0)\n+6E9562 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9564 Ext File Attributes   00000000 (0)\n+6E9568 Local Header Offset   0005E262 (385634)\n+6E956C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E956C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E95A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E95AA   Length              0005 (5)\n+6E95AC   Flags               01 (1) 'Modification'\n+6E95AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E95B1 CENTRAL HEADER #179   02014B50 (33639248)\n+6E95B5 Created Zip Spec      14 (20) '2.0'\n+6E95B6 Created OS            00 (0) 'MS-DOS'\n+6E95B7 Extract Zip Spec      14 (20) '2.0'\n+6E95B8 Extract OS            00 (0) 'MS-DOS'\n+6E95B9 General Purpose Flag  0000 (0)\n+6E95BB Compression Method    0000 (0) 'Stored'\n+6E95BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E95C1 CRC                   00000000 (0)\n+6E95C5 Compressed Size       00000000 (0)\n+6E95C9 Uncompressed Size     00000000 (0)\n+6E95CD Filename Length       0036 (54)\n+6E95CF Extra Length          0009 (9)\n+6E95D1 Comment Length        0000 (0)\n+6E95D3 Disk Start            0000 (0)\n+6E95D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E95D7 Ext File Attributes   00000000 (0)\n+6E95DB Local Header Offset   0005EB9A (387994)\n+6E95DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E95DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9615 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9617   Length              0005 (5)\n+6E9619   Flags               01 (1) 'Modification'\n+6E961A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E961E CENTRAL HEADER #180   02014B50 (33639248)\n+6E9622 Created Zip Spec      14 (20) '2.0'\n+6E9623 Created OS            00 (0) 'MS-DOS'\n+6E9624 Extract Zip Spec      14 (20) '2.0'\n+6E9625 Extract OS            00 (0) 'MS-DOS'\n+6E9626 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9628 Compression Method    0000 (0) 'Stored'\n+6E962A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E962E CRC                   00000000 (0)\n+6E9632 Compressed Size       00000000 (0)\n+6E9636 Uncompressed Size     00000000 (0)\n+6E963A Filename Length       0044 (68)\n+6E963C Extra Length          0009 (9)\n+6E963E Comment Length        0000 (0)\n+6E9640 Disk Start            0000 (0)\n+6E9642 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9644 Ext File Attributes   00000000 (0)\n+6E9648 Local Header Offset   0005EBF7 (388087)\n+6E964C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E964C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9690 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9692   Length              0005 (5)\n+6E9694   Flags               01 (1) 'Modification'\n+6E9695   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9699 CENTRAL HEADER #181   02014B50 (33639248)\n+6E969D Created Zip Spec      14 (20) '2.0'\n+6E969E Created OS            00 (0) 'MS-DOS'\n+6E969F Extract Zip Spec      14 (20) '2.0'\n+6E96A0 Extract OS            00 (0) 'MS-DOS'\n+6E96A1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E96A3 Compression Method    0000 (0) 'Stored'\n+6E96A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E96A9 CRC                   26CC786B (650934379)\n+6E96AD Compressed Size       00000B76 (2934)\n+6E96B1 Uncompressed Size     00000B76 (2934)\n+6E96B5 Filename Length       003D (61)\n+6E96B7 Extra Length          0009 (9)\n+6E96B9 Comment Length        0000 (0)\n+6E96BB Disk Start            0000 (0)\n+6E96BD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E96BF Ext File Attributes   00000000 (0)\n+6E96C3 Local Header Offset   0005EC72 (388210)\n+6E96C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E96C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9704 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9706   Length              0005 (5)\n+6E9708   Flags               01 (1) 'Modification'\n+6E9709   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E970D CENTRAL HEADER #182   02014B50 (33639248)\n+6E9711 Created Zip Spec      14 (20) '2.0'\n+6E9712 Created OS            00 (0) 'MS-DOS'\n+6E9713 Extract Zip Spec      14 (20) '2.0'\n+6E9714 Extract OS            00 (0) 'MS-DOS'\n+6E9715 General Purpose Flag  0000 (0)\n+6E9717 Compression Method    0000 (0) 'Stored'\n+6E9719 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E971D CRC                   00000000 (0)\n+6E9721 Compressed Size       00000000 (0)\n+6E9725 Uncompressed Size     00000000 (0)\n+6E9729 Filename Length       0039 (57)\n+6E972B Extra Length          0009 (9)\n+6E972D Comment Length        0000 (0)\n+6E972F Disk Start            0000 (0)\n+6E9731 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9733 Ext File Attributes   00000000 (0)\n+6E9737 Local Header Offset   0005F85C (391260)\n+6E973B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E973B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9774 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9776   Length              0005 (5)\n+6E9778   Flags               01 (1) 'Modification'\n+6E9779   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E977D CENTRAL HEADER #183   02014B50 (33639248)\n+6E9781 Created Zip Spec      14 (20) '2.0'\n+6E9782 Created OS            00 (0) 'MS-DOS'\n+6E9783 Extract Zip Spec      14 (20) '2.0'\n+6E9784 Extract OS            00 (0) 'MS-DOS'\n+6E9785 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9787 Compression Method    0000 (0) 'Stored'\n+6E9789 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E978D CRC                   00000000 (0)\n+6E9791 Compressed Size       00000000 (0)\n+6E9795 Uncompressed Size     00000000 (0)\n+6E9799 Filename Length       0047 (71)\n+6E979B Extra Length          0009 (9)\n+6E979D Comment Length        0000 (0)\n+6E979F Disk Start            0000 (0)\n+6E97A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E97A3 Ext File Attributes   00000000 (0)\n+6E97A7 Local Header Offset   0005F8BC (391356)\n+6E97AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E97AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E97F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E97F4   Length              0005 (5)\n+6E97F6   Flags               01 (1) 'Modification'\n+6E97F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E97FB CENTRAL HEADER #184   02014B50 (33639248)\n+6E97FF Created Zip Spec      14 (20) '2.0'\n+6E9800 Created OS            00 (0) 'MS-DOS'\n+6E9801 Extract Zip Spec      14 (20) '2.0'\n+6E9802 Extract OS            00 (0) 'MS-DOS'\n+6E9803 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9805 Compression Method    0000 (0) 'Stored'\n+6E9807 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E980B CRC                   0FDE28B3 (266217651)\n+6E980F Compressed Size       0000079F (1951)\n+6E9813 Uncompressed Size     0000079F (1951)\n+6E9817 Filename Length       0040 (64)\n+6E9819 Extra Length          0009 (9)\n+6E981B Comment Length        0000 (0)\n+6E981D Disk Start            0000 (0)\n+6E981F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9821 Ext File Attributes   00000000 (0)\n+6E9825 Local Header Offset   0005F93A (391482)\n+6E9829 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9829: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9869 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E986B   Length              0005 (5)\n+6E986D   Flags               01 (1) 'Modification'\n+6E986E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9872 CENTRAL HEADER #185   02014B50 (33639248)\n+6E9876 Created Zip Spec      14 (20) '2.0'\n+6E9877 Created OS            00 (0) 'MS-DOS'\n+6E9878 Extract Zip Spec      14 (20) '2.0'\n+6E9879 Extract OS            00 (0) 'MS-DOS'\n+6E987A General Purpose Flag  0000 (0)\n+6E987C Compression Method    0000 (0) 'Stored'\n+6E987E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9882 CRC                   00000000 (0)\n+6E9886 Compressed Size       00000000 (0)\n+6E988A Uncompressed Size     00000000 (0)\n+6E988E Filename Length       0038 (56)\n+6E9890 Extra Length          0009 (9)\n+6E9892 Comment Length        0000 (0)\n+6E9894 Disk Start            0000 (0)\n+6E9896 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9898 Ext File Attributes   00000000 (0)\n+6E989C Local Header Offset   00060150 (393552)\n+6E98A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E98A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E98D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E98DA   Length              0005 (5)\n+6E98DC   Flags               01 (1) 'Modification'\n+6E98DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E98E1 CENTRAL HEADER #186   02014B50 (33639248)\n+6E98E5 Created Zip Spec      14 (20) '2.0'\n+6E98E6 Created OS            00 (0) 'MS-DOS'\n+6E98E7 Extract Zip Spec      14 (20) '2.0'\n+6E98E8 Extract OS            00 (0) 'MS-DOS'\n+6E98E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E98EB Compression Method    0000 (0) 'Stored'\n+6E98ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E98F1 CRC                   00000000 (0)\n+6E98F5 Compressed Size       00000000 (0)\n+6E98F9 Uncompressed Size     00000000 (0)\n+6E98FD Filename Length       0046 (70)\n+6E98FF Extra Length          0009 (9)\n+6E9901 Comment Length        0000 (0)\n+6E9903 Disk Start            0000 (0)\n+6E9905 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9907 Ext File Attributes   00000000 (0)\n+6E990B Local Header Offset   000601AF (393647)\n+6E990F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E990F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9955 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9957   Length              0005 (5)\n+6E9959   Flags               01 (1) 'Modification'\n+6E995A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E995E CENTRAL HEADER #187   02014B50 (33639248)\n+6E9962 Created Zip Spec      14 (20) '2.0'\n+6E9963 Created OS            00 (0) 'MS-DOS'\n+6E9964 Extract Zip Spec      14 (20) '2.0'\n+6E9965 Extract OS            00 (0) 'MS-DOS'\n+6E9966 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9968 Compression Method    0000 (0) 'Stored'\n+6E996A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E996E CRC                   6A4E29DE (1783507422)\n+6E9972 Compressed Size       00000AFE (2814)\n+6E9976 Uncompressed Size     00000AFE (2814)\n+6E997A Filename Length       003F (63)\n+6E997C Extra Length          0009 (9)\n+6E997E Comment Length        0000 (0)\n+6E9980 Disk Start            0000 (0)\n+6E9982 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9984 Ext File Attributes   00000000 (0)\n+6E9988 Local Header Offset   0006022C (393772)\n+6E998C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E998C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E99CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E99CD   Length              0005 (5)\n+6E99CF   Flags               01 (1) 'Modification'\n+6E99D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E99D4 CENTRAL HEADER #188   02014B50 (33639248)\n+6E99D8 Created Zip Spec      14 (20) '2.0'\n+6E99D9 Created OS            00 (0) 'MS-DOS'\n+6E99DA Extract Zip Spec      14 (20) '2.0'\n+6E99DB Extract OS            00 (0) 'MS-DOS'\n+6E99DC General Purpose Flag  0000 (0)\n+6E99DE Compression Method    0000 (0) 'Stored'\n+6E99E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E99E4 CRC                   00000000 (0)\n+6E99E8 Compressed Size       00000000 (0)\n+6E99EC Uncompressed Size     00000000 (0)\n+6E99F0 Filename Length       0035 (53)\n+6E99F2 Extra Length          0009 (9)\n+6E99F4 Comment Length        0000 (0)\n+6E99F6 Disk Start            0000 (0)\n+6E99F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E99FA Ext File Attributes   00000000 (0)\n+6E99FE Local Header Offset   00060DA0 (396704)\n+6E9A02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9A02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9A37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9A39   Length              0005 (5)\n+6E9A3B   Flags               01 (1) 'Modification'\n+6E9A3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9A40 CENTRAL HEADER #189   02014B50 (33639248)\n+6E9A44 Created Zip Spec      14 (20) '2.0'\n+6E9A45 Created OS            00 (0) 'MS-DOS'\n+6E9A46 Extract Zip Spec      14 (20) '2.0'\n+6E9A47 Extract OS            00 (0) 'MS-DOS'\n+6E9A48 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9A4A Compression Method    0000 (0) 'Stored'\n+6E9A4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9A50 CRC                   00000000 (0)\n+6E9A54 Compressed Size       00000000 (0)\n+6E9A58 Uncompressed Size     00000000 (0)\n+6E9A5C Filename Length       0043 (67)\n+6E9A5E Extra Length          0009 (9)\n+6E9A60 Comment Length        0000 (0)\n+6E9A62 Disk Start            0000 (0)\n+6E9A64 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9A66 Ext File Attributes   00000000 (0)\n+6E9A6A Local Header Offset   00060DFC (396796)\n+6E9A6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9A6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9AB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9AB3   Length              0005 (5)\n+6E9AB5   Flags               01 (1) 'Modification'\n+6E9AB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9ABA CENTRAL HEADER #190   02014B50 (33639248)\n+6E9ABE Created Zip Spec      14 (20) '2.0'\n+6E9ABF Created OS            00 (0) 'MS-DOS'\n+6E9AC0 Extract Zip Spec      14 (20) '2.0'\n+6E9AC1 Extract OS            00 (0) 'MS-DOS'\n+6E9AC2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9AC4 Compression Method    0000 (0) 'Stored'\n+6E9AC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9ACA CRC                   6A8F4F7A (1787776890)\n+6E9ACE Compressed Size       00000BE1 (3041)\n+6E9AD2 Uncompressed Size     00000BE1 (3041)\n+6E9AD6 Filename Length       003C (60)\n+6E9AD8 Extra Length          0009 (9)\n+6E9ADA Comment Length        0000 (0)\n+6E9ADC Disk Start            0000 (0)\n+6E9ADE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9AE0 Ext File Attributes   00000000 (0)\n+6E9AE4 Local Header Offset   00060E76 (396918)\n+6E9AE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9AE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9B24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9B26   Length              0005 (5)\n+6E9B28   Flags               01 (1) 'Modification'\n+6E9B29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9B2D CENTRAL HEADER #191   02014B50 (33639248)\n+6E9B31 Created Zip Spec      14 (20) '2.0'\n+6E9B32 Created OS            00 (0) 'MS-DOS'\n+6E9B33 Extract Zip Spec      14 (20) '2.0'\n+6E9B34 Extract OS            00 (0) 'MS-DOS'\n+6E9B35 General Purpose Flag  0000 (0)\n+6E9B37 Compression Method    0000 (0) 'Stored'\n+6E9B39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9B3D CRC                   00000000 (0)\n+6E9B41 Compressed Size       00000000 (0)\n+6E9B45 Uncompressed Size     00000000 (0)\n+6E9B49 Filename Length       0035 (53)\n+6E9B4B Extra Length          0009 (9)\n+6E9B4D Comment Length        0000 (0)\n+6E9B4F Disk Start            0000 (0)\n+6E9B51 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9B53 Ext File Attributes   00000000 (0)\n+6E9B57 Local Header Offset   00061ACA (400074)\n+6E9B5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9B5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9B90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9B92   Length              0005 (5)\n+6E9B94   Flags               01 (1) 'Modification'\n+6E9B95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9B99 CENTRAL HEADER #192   02014B50 (33639248)\n+6E9B9D Created Zip Spec      14 (20) '2.0'\n+6E9B9E Created OS            00 (0) 'MS-DOS'\n+6E9B9F Extract Zip Spec      14 (20) '2.0'\n+6E9BA0 Extract OS            00 (0) 'MS-DOS'\n+6E9BA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9BA3 Compression Method    0000 (0) 'Stored'\n+6E9BA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9BA9 CRC                   00000000 (0)\n+6E9BAD Compressed Size       00000000 (0)\n+6E9BB1 Uncompressed Size     00000000 (0)\n+6E9BB5 Filename Length       0043 (67)\n+6E9BB7 Extra Length          0009 (9)\n+6E9BB9 Comment Length        0000 (0)\n+6E9BBB Disk Start            0000 (0)\n+6E9BBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9BBF Ext File Attributes   00000000 (0)\n+6E9BC3 Local Header Offset   00061B26 (400166)\n+6E9BC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9BC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9C0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9C0C   Length              0005 (5)\n+6E9C0E   Flags               01 (1) 'Modification'\n+6E9C0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9C13 CENTRAL HEADER #193   02014B50 (33639248)\n+6E9C17 Created Zip Spec      14 (20) '2.0'\n+6E9C18 Created OS            00 (0) 'MS-DOS'\n+6E9C19 Extract Zip Spec      14 (20) '2.0'\n+6E9C1A Extract OS            00 (0) 'MS-DOS'\n+6E9C1B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9C1D Compression Method    0000 (0) 'Stored'\n+6E9C1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9C23 CRC                   1ABCFE9F (448593567)\n+6E9C27 Compressed Size       000009E6 (2534)\n+6E9C2B Uncompressed Size     000009E6 (2534)\n+6E9C2F Filename Length       003C (60)\n+6E9C31 Extra Length          0009 (9)\n+6E9C33 Comment Length        0000 (0)\n+6E9C35 Disk Start            0000 (0)\n+6E9C37 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9C39 Ext File Attributes   00000000 (0)\n+6E9C3D Local Header Offset   00061BA0 (400288)\n+6E9C41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9C41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9C7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9C7F   Length              0005 (5)\n+6E9C81   Flags               01 (1) 'Modification'\n+6E9C82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9C86 CENTRAL HEADER #194   02014B50 (33639248)\n+6E9C8A Created Zip Spec      14 (20) '2.0'\n+6E9C8B Created OS            00 (0) 'MS-DOS'\n+6E9C8C Extract Zip Spec      14 (20) '2.0'\n+6E9C8D Extract OS            00 (0) 'MS-DOS'\n+6E9C8E General Purpose Flag  0000 (0)\n+6E9C90 Compression Method    0000 (0) 'Stored'\n+6E9C92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9C96 CRC                   00000000 (0)\n+6E9C9A Compressed Size       00000000 (0)\n+6E9C9E Uncompressed Size     00000000 (0)\n+6E9CA2 Filename Length       0034 (52)\n+6E9CA4 Extra Length          0009 (9)\n+6E9CA6 Comment Length        0000 (0)\n+6E9CA8 Disk Start            0000 (0)\n+6E9CAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9CAC Ext File Attributes   00000000 (0)\n+6E9CB0 Local Header Offset   000625F9 (402937)\n+6E9CB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9CB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9CE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9CEA   Length              0005 (5)\n+6E9CEC   Flags               01 (1) 'Modification'\n+6E9CED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9CF1 CENTRAL HEADER #195   02014B50 (33639248)\n+6E9CF5 Created Zip Spec      14 (20) '2.0'\n+6E9CF6 Created OS            00 (0) 'MS-DOS'\n+6E9CF7 Extract Zip Spec      14 (20) '2.0'\n+6E9CF8 Extract OS            00 (0) 'MS-DOS'\n+6E9CF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9CFB Compression Method    0000 (0) 'Stored'\n+6E9CFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9D01 CRC                   00000000 (0)\n+6E9D05 Compressed Size       00000000 (0)\n+6E9D09 Uncompressed Size     00000000 (0)\n+6E9D0D Filename Length       0042 (66)\n+6E9D0F Extra Length          0009 (9)\n+6E9D11 Comment Length        0000 (0)\n+6E9D13 Disk Start            0000 (0)\n+6E9D15 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9D17 Ext File Attributes   00000000 (0)\n+6E9D1B Local Header Offset   00062654 (403028)\n+6E9D1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9D1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9D61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9D63   Length              0005 (5)\n+6E9D65   Flags               01 (1) 'Modification'\n+6E9D66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9D6A CENTRAL HEADER #196   02014B50 (33639248)\n+6E9D6E Created Zip Spec      14 (20) '2.0'\n+6E9D6F Created OS            00 (0) 'MS-DOS'\n+6E9D70 Extract Zip Spec      14 (20) '2.0'\n+6E9D71 Extract OS            00 (0) 'MS-DOS'\n+6E9D72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9D74 Compression Method    0000 (0) 'Stored'\n+6E9D76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9D7A CRC                   72A63AD4 (1923496660)\n+6E9D7E Compressed Size       0000122E (4654)\n+6E9D82 Uncompressed Size     0000122E (4654)\n+6E9D86 Filename Length       003B (59)\n+6E9D88 Extra Length          0009 (9)\n+6E9D8A Comment Length        0000 (0)\n+6E9D8C Disk Start            0000 (0)\n+6E9D8E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9D90 Ext File Attributes   00000000 (0)\n+6E9D94 Local Header Offset   000626CD (403149)\n+6E9D98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9D98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9DD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9DD5   Length              0005 (5)\n+6E9DD7   Flags               01 (1) 'Modification'\n+6E9DD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9DDC CENTRAL HEADER #197   02014B50 (33639248)\n+6E9DE0 Created Zip Spec      14 (20) '2.0'\n+6E9DE1 Created OS            00 (0) 'MS-DOS'\n+6E9DE2 Extract Zip Spec      14 (20) '2.0'\n+6E9DE3 Extract OS            00 (0) 'MS-DOS'\n+6E9DE4 General Purpose Flag  0000 (0)\n+6E9DE6 Compression Method    0000 (0) 'Stored'\n+6E9DE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9DEC CRC                   00000000 (0)\n+6E9DF0 Compressed Size       00000000 (0)\n+6E9DF4 Uncompressed Size     00000000 (0)\n+6E9DF8 Filename Length       0039 (57)\n+6E9DFA Extra Length          0009 (9)\n+6E9DFC Comment Length        0000 (0)\n+6E9DFE Disk Start            0000 (0)\n+6E9E00 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9E02 Ext File Attributes   00000000 (0)\n+6E9E06 Local Header Offset   0006396D (407917)\n+6E9E0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9E0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9E43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9E45   Length              0005 (5)\n+6E9E47   Flags               01 (1) 'Modification'\n+6E9E48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9E4C CENTRAL HEADER #198   02014B50 (33639248)\n+6E9E50 Created Zip Spec      14 (20) '2.0'\n+6E9E51 Created OS            00 (0) 'MS-DOS'\n+6E9E52 Extract Zip Spec      14 (20) '2.0'\n+6E9E53 Extract OS            00 (0) 'MS-DOS'\n+6E9E54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9E56 Compression Method    0000 (0) 'Stored'\n+6E9E58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9E5C CRC                   00000000 (0)\n+6E9E60 Compressed Size       00000000 (0)\n+6E9E64 Uncompressed Size     00000000 (0)\n+6E9E68 Filename Length       0047 (71)\n+6E9E6A Extra Length          0009 (9)\n+6E9E6C Comment Length        0000 (0)\n+6E9E6E Disk Start            0000 (0)\n+6E9E70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9E72 Ext File Attributes   00000000 (0)\n+6E9E76 Local Header Offset   000639CD (408013)\n+6E9E7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9E7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9EC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9EC3   Length              0005 (5)\n+6E9EC5   Flags               01 (1) 'Modification'\n+6E9EC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9ECA CENTRAL HEADER #199   02014B50 (33639248)\n+6E9ECE Created Zip Spec      14 (20) '2.0'\n+6E9ECF Created OS            00 (0) 'MS-DOS'\n+6E9ED0 Extract Zip Spec      14 (20) '2.0'\n+6E9ED1 Extract OS            00 (0) 'MS-DOS'\n+6E9ED2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9ED4 Compression Method    0000 (0) 'Stored'\n+6E9ED6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9EDA CRC                   2D62C29D (761447069)\n+6E9EDE Compressed Size       0000096E (2414)\n+6E9EE2 Uncompressed Size     0000096E (2414)\n+6E9EE6 Filename Length       0040 (64)\n+6E9EE8 Extra Length          0009 (9)\n+6E9EEA Comment Length        0000 (0)\n+6E9EEC Disk Start            0000 (0)\n+6E9EEE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9EF0 Ext File Attributes   00000000 (0)\n+6E9EF4 Local Header Offset   00063A4B (408139)\n+6E9EF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9EF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9F38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9F3A   Length              0005 (5)\n+6E9F3C   Flags               01 (1) 'Modification'\n+6E9F3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9F41 CENTRAL HEADER #200   02014B50 (33639248)\n+6E9F45 Created Zip Spec      14 (20) '2.0'\n+6E9F46 Created OS            00 (0) 'MS-DOS'\n+6E9F47 Extract Zip Spec      14 (20) '2.0'\n+6E9F48 Extract OS            00 (0) 'MS-DOS'\n+6E9F49 General Purpose Flag  0000 (0)\n+6E9F4B Compression Method    0000 (0) 'Stored'\n+6E9F4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9F51 CRC                   00000000 (0)\n+6E9F55 Compressed Size       00000000 (0)\n+6E9F59 Uncompressed Size     00000000 (0)\n+6E9F5D Filename Length       0033 (51)\n+6E9F5F Extra Length          0009 (9)\n+6E9F61 Comment Length        0000 (0)\n+6E9F63 Disk Start            0000 (0)\n+6E9F65 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9F67 Ext File Attributes   00000000 (0)\n+6E9F6B Local Header Offset   00064430 (410672)\n+6E9F6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9F6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6E9FA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6E9FA4   Length              0005 (5)\n+6E9FA6   Flags               01 (1) 'Modification'\n+6E9FA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6E9FAB CENTRAL HEADER #201   02014B50 (33639248)\n+6E9FAF Created Zip Spec      14 (20) '2.0'\n+6E9FB0 Created OS            00 (0) 'MS-DOS'\n+6E9FB1 Extract Zip Spec      14 (20) '2.0'\n+6E9FB2 Extract OS            00 (0) 'MS-DOS'\n+6E9FB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6E9FB5 Compression Method    0000 (0) 'Stored'\n+6E9FB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6E9FBB CRC                   00000000 (0)\n+6E9FBF Compressed Size       00000000 (0)\n+6E9FC3 Uncompressed Size     00000000 (0)\n+6E9FC7 Filename Length       0041 (65)\n+6E9FC9 Extra Length          0009 (9)\n+6E9FCB Comment Length        0000 (0)\n+6E9FCD Disk Start            0000 (0)\n+6E9FCF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6E9FD1 Ext File Attributes   00000000 (0)\n+6E9FD5 Local Header Offset   0006448A (410762)\n+6E9FD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6E9FD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA01A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA01C   Length              0005 (5)\n+6EA01E   Flags               01 (1) 'Modification'\n+6EA01F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA023 CENTRAL HEADER #202   02014B50 (33639248)\n+6EA027 Created Zip Spec      14 (20) '2.0'\n+6EA028 Created OS            00 (0) 'MS-DOS'\n+6EA029 Extract Zip Spec      14 (20) '2.0'\n+6EA02A Extract OS            00 (0) 'MS-DOS'\n+6EA02B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA02D Compression Method    0000 (0) 'Stored'\n+6EA02F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA033 CRC                   412C4DB4 (1093422516)\n+6EA037 Compressed Size       00000916 (2326)\n+6EA03B Uncompressed Size     00000916 (2326)\n+6EA03F Filename Length       003A (58)\n+6EA041 Extra Length          0009 (9)\n+6EA043 Comment Length        0000 (0)\n+6EA045 Disk Start            0000 (0)\n+6EA047 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA049 Ext File Attributes   00000000 (0)\n+6EA04D Local Header Offset   00064502 (410882)\n+6EA051 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA051: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA08B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA08D   Length              0005 (5)\n+6EA08F   Flags               01 (1) 'Modification'\n+6EA090   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA094 CENTRAL HEADER #203   02014B50 (33639248)\n+6EA098 Created Zip Spec      14 (20) '2.0'\n+6EA099 Created OS            00 (0) 'MS-DOS'\n+6EA09A Extract Zip Spec      14 (20) '2.0'\n+6EA09B Extract OS            00 (0) 'MS-DOS'\n+6EA09C General Purpose Flag  0000 (0)\n+6EA09E Compression Method    0000 (0) 'Stored'\n+6EA0A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA0A4 CRC                   00000000 (0)\n+6EA0A8 Compressed Size       00000000 (0)\n+6EA0AC Uncompressed Size     00000000 (0)\n+6EA0B0 Filename Length       0035 (53)\n+6EA0B2 Extra Length          0009 (9)\n+6EA0B4 Comment Length        0000 (0)\n+6EA0B6 Disk Start            0000 (0)\n+6EA0B8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA0BA Ext File Attributes   00000000 (0)\n+6EA0BE Local Header Offset   00064E89 (413321)\n+6EA0C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA0C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA0F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA0F9   Length              0005 (5)\n+6EA0FB   Flags               01 (1) 'Modification'\n+6EA0FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA100 CENTRAL HEADER #204   02014B50 (33639248)\n+6EA104 Created Zip Spec      14 (20) '2.0'\n+6EA105 Created OS            00 (0) 'MS-DOS'\n+6EA106 Extract Zip Spec      14 (20) '2.0'\n+6EA107 Extract OS            00 (0) 'MS-DOS'\n+6EA108 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA10A Compression Method    0000 (0) 'Stored'\n+6EA10C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA110 CRC                   00000000 (0)\n+6EA114 Compressed Size       00000000 (0)\n+6EA118 Uncompressed Size     00000000 (0)\n+6EA11C Filename Length       0043 (67)\n+6EA11E Extra Length          0009 (9)\n+6EA120 Comment Length        0000 (0)\n+6EA122 Disk Start            0000 (0)\n+6EA124 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA126 Ext File Attributes   00000000 (0)\n+6EA12A Local Header Offset   00064EE5 (413413)\n+6EA12E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA12E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA171 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA173   Length              0005 (5)\n+6EA175   Flags               01 (1) 'Modification'\n+6EA176   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA17A CENTRAL HEADER #205   02014B50 (33639248)\n+6EA17E Created Zip Spec      14 (20) '2.0'\n+6EA17F Created OS            00 (0) 'MS-DOS'\n+6EA180 Extract Zip Spec      14 (20) '2.0'\n+6EA181 Extract OS            00 (0) 'MS-DOS'\n+6EA182 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA184 Compression Method    0000 (0) 'Stored'\n+6EA186 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA18A CRC                   DB79C8F6 (3682191606)\n+6EA18E Compressed Size       00000E01 (3585)\n+6EA192 Uncompressed Size     00000E01 (3585)\n+6EA196 Filename Length       003C (60)\n+6EA198 Extra Length          0009 (9)\n+6EA19A Comment Length        0000 (0)\n+6EA19C Disk Start            0000 (0)\n+6EA19E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA1A0 Ext File Attributes   00000000 (0)\n+6EA1A4 Local Header Offset   00064F5F (413535)\n+6EA1A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA1A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA1E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA1E6   Length              0005 (5)\n+6EA1E8   Flags               01 (1) 'Modification'\n+6EA1E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA1ED CENTRAL HEADER #206   02014B50 (33639248)\n+6EA1F1 Created Zip Spec      14 (20) '2.0'\n+6EA1F2 Created OS            00 (0) 'MS-DOS'\n+6EA1F3 Extract Zip Spec      14 (20) '2.0'\n+6EA1F4 Extract OS            00 (0) 'MS-DOS'\n+6EA1F5 General Purpose Flag  0000 (0)\n+6EA1F7 Compression Method    0000 (0) 'Stored'\n+6EA1F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA1FD CRC                   00000000 (0)\n+6EA201 Compressed Size       00000000 (0)\n+6EA205 Uncompressed Size     00000000 (0)\n+6EA209 Filename Length       0037 (55)\n+6EA20B Extra Length          0009 (9)\n+6EA20D Comment Length        0000 (0)\n+6EA20F Disk Start            0000 (0)\n+6EA211 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA213 Ext File Attributes   00000000 (0)\n+6EA217 Local Header Offset   00065DD3 (417235)\n+6EA21B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA21B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA252 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA254   Length              0005 (5)\n+6EA256   Flags               01 (1) 'Modification'\n+6EA257   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA25B CENTRAL HEADER #207   02014B50 (33639248)\n+6EA25F Created Zip Spec      14 (20) '2.0'\n+6EA260 Created OS            00 (0) 'MS-DOS'\n+6EA261 Extract Zip Spec      14 (20) '2.0'\n+6EA262 Extract OS            00 (0) 'MS-DOS'\n+6EA263 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA265 Compression Method    0000 (0) 'Stored'\n+6EA267 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA26B CRC                   00000000 (0)\n+6EA26F Compressed Size       00000000 (0)\n+6EA273 Uncompressed Size     00000000 (0)\n+6EA277 Filename Length       0045 (69)\n+6EA279 Extra Length          0009 (9)\n+6EA27B Comment Length        0000 (0)\n+6EA27D Disk Start            0000 (0)\n+6EA27F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA281 Ext File Attributes   00000000 (0)\n+6EA285 Local Header Offset   00065E31 (417329)\n+6EA289 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA289: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA2CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA2D0   Length              0005 (5)\n+6EA2D2   Flags               01 (1) 'Modification'\n+6EA2D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA2D7 CENTRAL HEADER #208   02014B50 (33639248)\n+6EA2DB Created Zip Spec      14 (20) '2.0'\n+6EA2DC Created OS            00 (0) 'MS-DOS'\n+6EA2DD Extract Zip Spec      14 (20) '2.0'\n+6EA2DE Extract OS            00 (0) 'MS-DOS'\n+6EA2DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA2E1 Compression Method    0000 (0) 'Stored'\n+6EA2E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA2E7 CRC                   72B9B37F (1924772735)\n+6EA2EB Compressed Size       00000819 (2073)\n+6EA2EF Uncompressed Size     00000819 (2073)\n+6EA2F3 Filename Length       003E (62)\n+6EA2F5 Extra Length          0009 (9)\n+6EA2F7 Comment Length        0000 (0)\n+6EA2F9 Disk Start            0000 (0)\n+6EA2FB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA2FD Ext File Attributes   00000000 (0)\n+6EA301 Local Header Offset   00065EAD (417453)\n+6EA305 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA305: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA343 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA345   Length              0005 (5)\n+6EA347   Flags               01 (1) 'Modification'\n+6EA348   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA34C CENTRAL HEADER #209   02014B50 (33639248)\n+6EA350 Created Zip Spec      14 (20) '2.0'\n+6EA351 Created OS            00 (0) 'MS-DOS'\n+6EA352 Extract Zip Spec      14 (20) '2.0'\n+6EA353 Extract OS            00 (0) 'MS-DOS'\n+6EA354 General Purpose Flag  0000 (0)\n+6EA356 Compression Method    0000 (0) 'Stored'\n+6EA358 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA35C CRC                   00000000 (0)\n+6EA360 Compressed Size       00000000 (0)\n+6EA364 Uncompressed Size     00000000 (0)\n+6EA368 Filename Length       0034 (52)\n+6EA36A Extra Length          0009 (9)\n+6EA36C Comment Length        0000 (0)\n+6EA36E Disk Start            0000 (0)\n+6EA370 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA372 Ext File Attributes   00000000 (0)\n+6EA376 Local Header Offset   0006673B (419643)\n+6EA37A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA37A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA3AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA3B0   Length              0005 (5)\n+6EA3B2   Flags               01 (1) 'Modification'\n+6EA3B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA3B7 CENTRAL HEADER #210   02014B50 (33639248)\n+6EA3BB Created Zip Spec      14 (20) '2.0'\n+6EA3BC Created OS            00 (0) 'MS-DOS'\n+6EA3BD Extract Zip Spec      14 (20) '2.0'\n+6EA3BE Extract OS            00 (0) 'MS-DOS'\n+6EA3BF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA3C1 Compression Method    0000 (0) 'Stored'\n+6EA3C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA3C7 CRC                   00000000 (0)\n+6EA3CB Compressed Size       00000000 (0)\n+6EA3CF Uncompressed Size     00000000 (0)\n+6EA3D3 Filename Length       0042 (66)\n+6EA3D5 Extra Length          0009 (9)\n+6EA3D7 Comment Length        0000 (0)\n+6EA3D9 Disk Start            0000 (0)\n+6EA3DB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA3DD Ext File Attributes   00000000 (0)\n+6EA3E1 Local Header Offset   00066796 (419734)\n+6EA3E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA3E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA427 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA429   Length              0005 (5)\n+6EA42B   Flags               01 (1) 'Modification'\n+6EA42C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA430 CENTRAL HEADER #211   02014B50 (33639248)\n+6EA434 Created Zip Spec      14 (20) '2.0'\n+6EA435 Created OS            00 (0) 'MS-DOS'\n+6EA436 Extract Zip Spec      14 (20) '2.0'\n+6EA437 Extract OS            00 (0) 'MS-DOS'\n+6EA438 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA43A Compression Method    0000 (0) 'Stored'\n+6EA43C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA440 CRC                   A5CD24A2 (2781684898)\n+6EA444 Compressed Size       00000A73 (2675)\n+6EA448 Uncompressed Size     00000A73 (2675)\n+6EA44C Filename Length       003B (59)\n+6EA44E Extra Length          0009 (9)\n+6EA450 Comment Length        0000 (0)\n+6EA452 Disk Start            0000 (0)\n+6EA454 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA456 Ext File Attributes   00000000 (0)\n+6EA45A Local Header Offset   0006680F (419855)\n+6EA45E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA45E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA499 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA49B   Length              0005 (5)\n+6EA49D   Flags               01 (1) 'Modification'\n+6EA49E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA4A2 CENTRAL HEADER #212   02014B50 (33639248)\n+6EA4A6 Created Zip Spec      14 (20) '2.0'\n+6EA4A7 Created OS            00 (0) 'MS-DOS'\n+6EA4A8 Extract Zip Spec      14 (20) '2.0'\n+6EA4A9 Extract OS            00 (0) 'MS-DOS'\n+6EA4AA General Purpose Flag  0000 (0)\n+6EA4AC Compression Method    0000 (0) 'Stored'\n+6EA4AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA4B2 CRC                   00000000 (0)\n+6EA4B6 Compressed Size       00000000 (0)\n+6EA4BA Uncompressed Size     00000000 (0)\n+6EA4BE Filename Length       0034 (52)\n+6EA4C0 Extra Length          0009 (9)\n+6EA4C2 Comment Length        0000 (0)\n+6EA4C4 Disk Start            0000 (0)\n+6EA4C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA4C8 Ext File Attributes   00000000 (0)\n+6EA4CC Local Header Offset   000672F4 (422644)\n+6EA4D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA4D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA504 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA506   Length              0005 (5)\n+6EA508   Flags               01 (1) 'Modification'\n+6EA509   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA50D CENTRAL HEADER #213   02014B50 (33639248)\n+6EA511 Created Zip Spec      14 (20) '2.0'\n+6EA512 Created OS            00 (0) 'MS-DOS'\n+6EA513 Extract Zip Spec      14 (20) '2.0'\n+6EA514 Extract OS            00 (0) 'MS-DOS'\n+6EA515 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA517 Compression Method    0000 (0) 'Stored'\n+6EA519 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA51D CRC                   00000000 (0)\n+6EA521 Compressed Size       00000000 (0)\n+6EA525 Uncompressed Size     00000000 (0)\n+6EA529 Filename Length       0042 (66)\n+6EA52B Extra Length          0009 (9)\n+6EA52D Comment Length        0000 (0)\n+6EA52F Disk Start            0000 (0)\n+6EA531 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA533 Ext File Attributes   00000000 (0)\n+6EA537 Local Header Offset   0006734F (422735)\n+6EA53B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA53B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA57D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA57F   Length              0005 (5)\n+6EA581   Flags               01 (1) 'Modification'\n+6EA582   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA586 CENTRAL HEADER #214   02014B50 (33639248)\n+6EA58A Created Zip Spec      14 (20) '2.0'\n+6EA58B Created OS            00 (0) 'MS-DOS'\n+6EA58C Extract Zip Spec      14 (20) '2.0'\n+6EA58D Extract OS            00 (0) 'MS-DOS'\n+6EA58E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA590 Compression Method    0000 (0) 'Stored'\n+6EA592 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA596 CRC                   5512F588 (1427305864)\n+6EA59A Compressed Size       0000094F (2383)\n+6EA59E Uncompressed Size     0000094F (2383)\n+6EA5A2 Filename Length       003B (59)\n+6EA5A4 Extra Length          0009 (9)\n+6EA5A6 Comment Length        0000 (0)\n+6EA5A8 Disk Start            0000 (0)\n+6EA5AA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA5AC Ext File Attributes   00000000 (0)\n+6EA5B0 Local Header Offset   000673C8 (422856)\n+6EA5B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA5B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA5EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA5F1   Length              0005 (5)\n+6EA5F3   Flags               01 (1) 'Modification'\n+6EA5F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA5F8 CENTRAL HEADER #215   02014B50 (33639248)\n+6EA5FC Created Zip Spec      14 (20) '2.0'\n+6EA5FD Created OS            00 (0) 'MS-DOS'\n+6EA5FE Extract Zip Spec      14 (20) '2.0'\n+6EA5FF Extract OS            00 (0) 'MS-DOS'\n+6EA600 General Purpose Flag  0000 (0)\n+6EA602 Compression Method    0000 (0) 'Stored'\n+6EA604 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA608 CRC                   00000000 (0)\n+6EA60C Compressed Size       00000000 (0)\n+6EA610 Uncompressed Size     00000000 (0)\n+6EA614 Filename Length       0035 (53)\n+6EA616 Extra Length          0009 (9)\n+6EA618 Comment Length        0000 (0)\n+6EA61A Disk Start            0000 (0)\n+6EA61C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA61E Ext File Attributes   00000000 (0)\n+6EA622 Local Header Offset   00067D89 (425353)\n+6EA626 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA626: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA65B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA65D   Length              0005 (5)\n+6EA65F   Flags               01 (1) 'Modification'\n+6EA660   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA664 CENTRAL HEADER #216   02014B50 (33639248)\n+6EA668 Created Zip Spec      14 (20) '2.0'\n+6EA669 Created OS            00 (0) 'MS-DOS'\n+6EA66A Extract Zip Spec      14 (20) '2.0'\n+6EA66B Extract OS            00 (0) 'MS-DOS'\n+6EA66C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA66E Compression Method    0000 (0) 'Stored'\n+6EA670 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA674 CRC                   00000000 (0)\n+6EA678 Compressed Size       00000000 (0)\n+6EA67C Uncompressed Size     00000000 (0)\n+6EA680 Filename Length       0043 (67)\n+6EA682 Extra Length          0009 (9)\n+6EA684 Comment Length        0000 (0)\n+6EA686 Disk Start            0000 (0)\n+6EA688 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA68A Ext File Attributes   00000000 (0)\n+6EA68E Local Header Offset   00067DE5 (425445)\n+6EA692 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA692: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA6D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA6D7   Length              0005 (5)\n+6EA6D9   Flags               01 (1) 'Modification'\n+6EA6DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA6DE CENTRAL HEADER #217   02014B50 (33639248)\n+6EA6E2 Created Zip Spec      14 (20) '2.0'\n+6EA6E3 Created OS            00 (0) 'MS-DOS'\n+6EA6E4 Extract Zip Spec      14 (20) '2.0'\n+6EA6E5 Extract OS            00 (0) 'MS-DOS'\n+6EA6E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA6E8 Compression Method    0000 (0) 'Stored'\n+6EA6EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA6EE CRC                   53B720C2 (1404510402)\n+6EA6F2 Compressed Size       000008DC (2268)\n+6EA6F6 Uncompressed Size     000008DC (2268)\n+6EA6FA Filename Length       003C (60)\n+6EA6FC Extra Length          0009 (9)\n+6EA6FE Comment Length        0000 (0)\n+6EA700 Disk Start            0000 (0)\n+6EA702 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA704 Ext File Attributes   00000000 (0)\n+6EA708 Local Header Offset   00067E5F (425567)\n+6EA70C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA70C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA748 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA74A   Length              0005 (5)\n+6EA74C   Flags               01 (1) 'Modification'\n+6EA74D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA751 CENTRAL HEADER #218   02014B50 (33639248)\n+6EA755 Created Zip Spec      14 (20) '2.0'\n+6EA756 Created OS            00 (0) 'MS-DOS'\n+6EA757 Extract Zip Spec      14 (20) '2.0'\n+6EA758 Extract OS            00 (0) 'MS-DOS'\n+6EA759 General Purpose Flag  0000 (0)\n+6EA75B Compression Method    0000 (0) 'Stored'\n+6EA75D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA761 CRC                   00000000 (0)\n+6EA765 Compressed Size       00000000 (0)\n+6EA769 Uncompressed Size     00000000 (0)\n+6EA76D Filename Length       0036 (54)\n+6EA76F Extra Length          0009 (9)\n+6EA771 Comment Length        0000 (0)\n+6EA773 Disk Start            0000 (0)\n+6EA775 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA777 Ext File Attributes   00000000 (0)\n+6EA77B Local Header Offset   000687AE (427950)\n+6EA77F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA77F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA7B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA7B7   Length              0005 (5)\n+6EA7B9   Flags               01 (1) 'Modification'\n+6EA7BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA7BE CENTRAL HEADER #219   02014B50 (33639248)\n+6EA7C2 Created Zip Spec      14 (20) '2.0'\n+6EA7C3 Created OS            00 (0) 'MS-DOS'\n+6EA7C4 Extract Zip Spec      14 (20) '2.0'\n+6EA7C5 Extract OS            00 (0) 'MS-DOS'\n+6EA7C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA7C8 Compression Method    0000 (0) 'Stored'\n+6EA7CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA7CE CRC                   00000000 (0)\n+6EA7D2 Compressed Size       00000000 (0)\n+6EA7D6 Uncompressed Size     00000000 (0)\n+6EA7DA Filename Length       0044 (68)\n+6EA7DC Extra Length          0009 (9)\n+6EA7DE Comment Length        0000 (0)\n+6EA7E0 Disk Start            0000 (0)\n+6EA7E2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA7E4 Ext File Attributes   00000000 (0)\n+6EA7E8 Local Header Offset   0006880B (428043)\n+6EA7EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA7EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA830 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA832   Length              0005 (5)\n+6EA834   Flags               01 (1) 'Modification'\n+6EA835   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA839 CENTRAL HEADER #220   02014B50 (33639248)\n+6EA83D Created Zip Spec      14 (20) '2.0'\n+6EA83E Created OS            00 (0) 'MS-DOS'\n+6EA83F Extract Zip Spec      14 (20) '2.0'\n+6EA840 Extract OS            00 (0) 'MS-DOS'\n+6EA841 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA843 Compression Method    0000 (0) 'Stored'\n+6EA845 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA849 CRC                   1D29AE65 (489270885)\n+6EA84D Compressed Size       00000924 (2340)\n+6EA851 Uncompressed Size     00000924 (2340)\n+6EA855 Filename Length       003D (61)\n+6EA857 Extra Length          0009 (9)\n+6EA859 Comment Length        0000 (0)\n+6EA85B Disk Start            0000 (0)\n+6EA85D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA85F Ext File Attributes   00000000 (0)\n+6EA863 Local Header Offset   00068886 (428166)\n+6EA867 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA867: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA8A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA8A6   Length              0005 (5)\n+6EA8A8   Flags               01 (1) 'Modification'\n+6EA8A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA8AD CENTRAL HEADER #221   02014B50 (33639248)\n+6EA8B1 Created Zip Spec      14 (20) '2.0'\n+6EA8B2 Created OS            00 (0) 'MS-DOS'\n+6EA8B3 Extract Zip Spec      14 (20) '2.0'\n+6EA8B4 Extract OS            00 (0) 'MS-DOS'\n+6EA8B5 General Purpose Flag  0000 (0)\n+6EA8B7 Compression Method    0000 (0) 'Stored'\n+6EA8B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA8BD CRC                   00000000 (0)\n+6EA8C1 Compressed Size       00000000 (0)\n+6EA8C5 Uncompressed Size     00000000 (0)\n+6EA8C9 Filename Length       0033 (51)\n+6EA8CB Extra Length          0009 (9)\n+6EA8CD Comment Length        0000 (0)\n+6EA8CF Disk Start            0000 (0)\n+6EA8D1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA8D3 Ext File Attributes   00000000 (0)\n+6EA8D7 Local Header Offset   0006921E (430622)\n+6EA8DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA8DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA90E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA910   Length              0005 (5)\n+6EA912   Flags               01 (1) 'Modification'\n+6EA913   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA917 CENTRAL HEADER #222   02014B50 (33639248)\n+6EA91B Created Zip Spec      14 (20) '2.0'\n+6EA91C Created OS            00 (0) 'MS-DOS'\n+6EA91D Extract Zip Spec      14 (20) '2.0'\n+6EA91E Extract OS            00 (0) 'MS-DOS'\n+6EA91F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA921 Compression Method    0000 (0) 'Stored'\n+6EA923 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA927 CRC                   00000000 (0)\n+6EA92B Compressed Size       00000000 (0)\n+6EA92F Uncompressed Size     00000000 (0)\n+6EA933 Filename Length       0041 (65)\n+6EA935 Extra Length          0009 (9)\n+6EA937 Comment Length        0000 (0)\n+6EA939 Disk Start            0000 (0)\n+6EA93B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA93D Ext File Attributes   00000000 (0)\n+6EA941 Local Header Offset   00069278 (430712)\n+6EA945 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA945: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA986 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA988   Length              0005 (5)\n+6EA98A   Flags               01 (1) 'Modification'\n+6EA98B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EA98F CENTRAL HEADER #223   02014B50 (33639248)\n+6EA993 Created Zip Spec      14 (20) '2.0'\n+6EA994 Created OS            00 (0) 'MS-DOS'\n+6EA995 Extract Zip Spec      14 (20) '2.0'\n+6EA996 Extract OS            00 (0) 'MS-DOS'\n+6EA997 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EA999 Compression Method    0000 (0) 'Stored'\n+6EA99B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EA99F CRC                   4435D23A (1144377914)\n+6EA9A3 Compressed Size       00000862 (2146)\n+6EA9A7 Uncompressed Size     00000862 (2146)\n+6EA9AB Filename Length       003A (58)\n+6EA9AD Extra Length          0009 (9)\n+6EA9AF Comment Length        0000 (0)\n+6EA9B1 Disk Start            0000 (0)\n+6EA9B3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EA9B5 Ext File Attributes   00000000 (0)\n+6EA9B9 Local Header Offset   000692F0 (430832)\n+6EA9BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EA9BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EA9F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EA9F9   Length              0005 (5)\n+6EA9FB   Flags               01 (1) 'Modification'\n+6EA9FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAA00 CENTRAL HEADER #224   02014B50 (33639248)\n+6EAA04 Created Zip Spec      14 (20) '2.0'\n+6EAA05 Created OS            00 (0) 'MS-DOS'\n+6EAA06 Extract Zip Spec      14 (20) '2.0'\n+6EAA07 Extract OS            00 (0) 'MS-DOS'\n+6EAA08 General Purpose Flag  0000 (0)\n+6EAA0A Compression Method    0000 (0) 'Stored'\n+6EAA0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAA10 CRC                   00000000 (0)\n+6EAA14 Compressed Size       00000000 (0)\n+6EAA18 Uncompressed Size     00000000 (0)\n+6EAA1C Filename Length       0039 (57)\n+6EAA1E Extra Length          0009 (9)\n+6EAA20 Comment Length        0000 (0)\n+6EAA22 Disk Start            0000 (0)\n+6EAA24 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAA26 Ext File Attributes   00000000 (0)\n+6EAA2A Local Header Offset   00069BC3 (433091)\n+6EAA2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAA2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAA67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAA69   Length              0005 (5)\n+6EAA6B   Flags               01 (1) 'Modification'\n+6EAA6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAA70 CENTRAL HEADER #225   02014B50 (33639248)\n+6EAA74 Created Zip Spec      14 (20) '2.0'\n+6EAA75 Created OS            00 (0) 'MS-DOS'\n+6EAA76 Extract Zip Spec      14 (20) '2.0'\n+6EAA77 Extract OS            00 (0) 'MS-DOS'\n+6EAA78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAA7A Compression Method    0000 (0) 'Stored'\n+6EAA7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAA80 CRC                   00000000 (0)\n+6EAA84 Compressed Size       00000000 (0)\n+6EAA88 Uncompressed Size     00000000 (0)\n+6EAA8C Filename Length       0047 (71)\n+6EAA8E Extra Length          0009 (9)\n+6EAA90 Comment Length        0000 (0)\n+6EAA92 Disk Start            0000 (0)\n+6EAA94 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAA96 Ext File Attributes   00000000 (0)\n+6EAA9A Local Header Offset   00069C23 (433187)\n+6EAA9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAA9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAAE5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAAE7   Length              0005 (5)\n+6EAAE9   Flags               01 (1) 'Modification'\n+6EAAEA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAAEE CENTRAL HEADER #226   02014B50 (33639248)\n+6EAAF2 Created Zip Spec      14 (20) '2.0'\n+6EAAF3 Created OS            00 (0) 'MS-DOS'\n+6EAAF4 Extract Zip Spec      14 (20) '2.0'\n+6EAAF5 Extract OS            00 (0) 'MS-DOS'\n+6EAAF6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAAF8 Compression Method    0000 (0) 'Stored'\n+6EAAFA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAAFE CRC                   E9E92C7C (3924372604)\n+6EAB02 Compressed Size       000009D6 (2518)\n+6EAB06 Uncompressed Size     000009D6 (2518)\n+6EAB0A Filename Length       0040 (64)\n+6EAB0C Extra Length          0009 (9)\n+6EAB0E Comment Length        0000 (0)\n+6EAB10 Disk Start            0000 (0)\n+6EAB12 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAB14 Ext File Attributes   00000000 (0)\n+6EAB18 Local Header Offset   00069CA1 (433313)\n+6EAB1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAB1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAB5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAB5E   Length              0005 (5)\n+6EAB60   Flags               01 (1) 'Modification'\n+6EAB61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAB65 CENTRAL HEADER #227   02014B50 (33639248)\n+6EAB69 Created Zip Spec      14 (20) '2.0'\n+6EAB6A Created OS            00 (0) 'MS-DOS'\n+6EAB6B Extract Zip Spec      14 (20) '2.0'\n+6EAB6C Extract OS            00 (0) 'MS-DOS'\n+6EAB6D General Purpose Flag  0000 (0)\n+6EAB6F Compression Method    0000 (0) 'Stored'\n+6EAB71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAB75 CRC                   00000000 (0)\n+6EAB79 Compressed Size       00000000 (0)\n+6EAB7D Uncompressed Size     00000000 (0)\n+6EAB81 Filename Length       002E (46)\n+6EAB83 Extra Length          0009 (9)\n+6EAB85 Comment Length        0000 (0)\n+6EAB87 Disk Start            0000 (0)\n+6EAB89 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAB8B Ext File Attributes   00000000 (0)\n+6EAB8F Local Header Offset   0006A6EE (435950)\n+6EAB93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAB93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EABC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EABC3   Length              0005 (5)\n+6EABC5   Flags               01 (1) 'Modification'\n+6EABC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EABCA CENTRAL HEADER #228   02014B50 (33639248)\n+6EABCE Created Zip Spec      14 (20) '2.0'\n+6EABCF Created OS            00 (0) 'MS-DOS'\n+6EABD0 Extract Zip Spec      14 (20) '2.0'\n+6EABD1 Extract OS            00 (0) 'MS-DOS'\n+6EABD2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EABD4 Compression Method    0000 (0) 'Stored'\n+6EABD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EABDA CRC                   00000000 (0)\n+6EABDE Compressed Size       00000000 (0)\n+6EABE2 Uncompressed Size     00000000 (0)\n+6EABE6 Filename Length       003C (60)\n+6EABE8 Extra Length          0009 (9)\n+6EABEA Comment Length        0000 (0)\n+6EABEC Disk Start            0000 (0)\n+6EABEE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EABF0 Ext File Attributes   00000000 (0)\n+6EABF4 Local Header Offset   0006A743 (436035)\n+6EABF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EABF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAC34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAC36   Length              0005 (5)\n+6EAC38   Flags               01 (1) 'Modification'\n+6EAC39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAC3D CENTRAL HEADER #229   02014B50 (33639248)\n+6EAC41 Created Zip Spec      14 (20) '2.0'\n+6EAC42 Created OS            00 (0) 'MS-DOS'\n+6EAC43 Extract Zip Spec      14 (20) '2.0'\n+6EAC44 Extract OS            00 (0) 'MS-DOS'\n+6EAC45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAC47 Compression Method    0000 (0) 'Stored'\n+6EAC49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAC4D CRC                   A1CBD481 (2714489985)\n+6EAC51 Compressed Size       00000971 (2417)\n+6EAC55 Uncompressed Size     00000971 (2417)\n+6EAC59 Filename Length       0035 (53)\n+6EAC5B Extra Length          0009 (9)\n+6EAC5D Comment Length        0000 (0)\n+6EAC5F Disk Start            0000 (0)\n+6EAC61 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAC63 Ext File Attributes   00000000 (0)\n+6EAC67 Local Header Offset   0006A7B6 (436150)\n+6EAC6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAC6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EACA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EACA2   Length              0005 (5)\n+6EACA4   Flags               01 (1) 'Modification'\n+6EACA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EACA9 CENTRAL HEADER #230   02014B50 (33639248)\n+6EACAD Created Zip Spec      14 (20) '2.0'\n+6EACAE Created OS            00 (0) 'MS-DOS'\n+6EACAF Extract Zip Spec      14 (20) '2.0'\n+6EACB0 Extract OS            00 (0) 'MS-DOS'\n+6EACB1 General Purpose Flag  0000 (0)\n+6EACB3 Compression Method    0000 (0) 'Stored'\n+6EACB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EACB9 CRC                   00000000 (0)\n+6EACBD Compressed Size       00000000 (0)\n+6EACC1 Uncompressed Size     00000000 (0)\n+6EACC5 Filename Length       0030 (48)\n+6EACC7 Extra Length          0009 (9)\n+6EACC9 Comment Length        0000 (0)\n+6EACCB Disk Start            0000 (0)\n+6EACCD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EACCF Ext File Attributes   00000000 (0)\n+6EACD3 Local Header Offset   0006B193 (438675)\n+6EACD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EACD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAD07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAD09   Length              0005 (5)\n+6EAD0B   Flags               01 (1) 'Modification'\n+6EAD0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAD10 CENTRAL HEADER #231   02014B50 (33639248)\n+6EAD14 Created Zip Spec      14 (20) '2.0'\n+6EAD15 Created OS            00 (0) 'MS-DOS'\n+6EAD16 Extract Zip Spec      14 (20) '2.0'\n+6EAD17 Extract OS            00 (0) 'MS-DOS'\n+6EAD18 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAD1A Compression Method    0000 (0) 'Stored'\n+6EAD1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAD20 CRC                   00000000 (0)\n+6EAD24 Compressed Size       00000000 (0)\n+6EAD28 Uncompressed Size     00000000 (0)\n+6EAD2C Filename Length       003E (62)\n+6EAD2E Extra Length          0009 (9)\n+6EAD30 Comment Length        0000 (0)\n+6EAD32 Disk Start            0000 (0)\n+6EAD34 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAD36 Ext File Attributes   00000000 (0)\n+6EAD3A Local Header Offset   0006B1EA (438762)\n+6EAD3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAD3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAD7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAD7E   Length              0005 (5)\n+6EAD80   Flags               01 (1) 'Modification'\n+6EAD81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAD85 CENTRAL HEADER #232   02014B50 (33639248)\n+6EAD89 Created Zip Spec      14 (20) '2.0'\n+6EAD8A Created OS            00 (0) 'MS-DOS'\n+6EAD8B Extract Zip Spec      14 (20) '2.0'\n+6EAD8C Extract OS            00 (0) 'MS-DOS'\n+6EAD8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAD8F Compression Method    0000 (0) 'Stored'\n+6EAD91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAD95 CRC                   C3B87E97 (3283648151)\n+6EAD99 Compressed Size       00000F4C (3916)\n+6EAD9D Uncompressed Size     00000F4C (3916)\n+6EADA1 Filename Length       0037 (55)\n+6EADA3 Extra Length          0009 (9)\n+6EADA5 Comment Length        0000 (0)\n+6EADA7 Disk Start            0000 (0)\n+6EADA9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EADAB Ext File Attributes   00000000 (0)\n+6EADAF Local Header Offset   0006B25F (438879)\n+6EADB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EADB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EADEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EADEC   Length              0005 (5)\n+6EADEE   Flags               01 (1) 'Modification'\n+6EADEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EADF3 CENTRAL HEADER #233   02014B50 (33639248)\n+6EADF7 Created Zip Spec      14 (20) '2.0'\n+6EADF8 Created OS            00 (0) 'MS-DOS'\n+6EADF9 Extract Zip Spec      14 (20) '2.0'\n+6EADFA Extract OS            00 (0) 'MS-DOS'\n+6EADFB General Purpose Flag  0000 (0)\n+6EADFD Compression Method    0000 (0) 'Stored'\n+6EADFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAE03 CRC                   00000000 (0)\n+6EAE07 Compressed Size       00000000 (0)\n+6EAE0B Uncompressed Size     00000000 (0)\n+6EAE0F Filename Length       002F (47)\n+6EAE11 Extra Length          0009 (9)\n+6EAE13 Comment Length        0000 (0)\n+6EAE15 Disk Start            0000 (0)\n+6EAE17 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAE19 Ext File Attributes   00000000 (0)\n+6EAE1D Local Header Offset   0006C219 (442905)\n+6EAE21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAE21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAE50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAE52   Length              0005 (5)\n+6EAE54   Flags               01 (1) 'Modification'\n+6EAE55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAE59 CENTRAL HEADER #234   02014B50 (33639248)\n+6EAE5D Created Zip Spec      14 (20) '2.0'\n+6EAE5E Created OS            00 (0) 'MS-DOS'\n+6EAE5F Extract Zip Spec      14 (20) '2.0'\n+6EAE60 Extract OS            00 (0) 'MS-DOS'\n+6EAE61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAE63 Compression Method    0000 (0) 'Stored'\n+6EAE65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAE69 CRC                   00000000 (0)\n+6EAE6D Compressed Size       00000000 (0)\n+6EAE71 Uncompressed Size     00000000 (0)\n+6EAE75 Filename Length       003D (61)\n+6EAE77 Extra Length          0009 (9)\n+6EAE79 Comment Length        0000 (0)\n+6EAE7B Disk Start            0000 (0)\n+6EAE7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAE7F Ext File Attributes   00000000 (0)\n+6EAE83 Local Header Offset   0006C26F (442991)\n+6EAE87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAE87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAEC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAEC6   Length              0005 (5)\n+6EAEC8   Flags               01 (1) 'Modification'\n+6EAEC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAECD CENTRAL HEADER #235   02014B50 (33639248)\n+6EAED1 Created Zip Spec      14 (20) '2.0'\n+6EAED2 Created OS            00 (0) 'MS-DOS'\n+6EAED3 Extract Zip Spec      14 (20) '2.0'\n+6EAED4 Extract OS            00 (0) 'MS-DOS'\n+6EAED5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAED7 Compression Method    0000 (0) 'Stored'\n+6EAED9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAEDD CRC                   C105B8EB (3238377707)\n+6EAEE1 Compressed Size       00000A79 (2681)\n+6EAEE5 Uncompressed Size     00000A79 (2681)\n+6EAEE9 Filename Length       0036 (54)\n+6EAEEB Extra Length          0009 (9)\n+6EAEED Comment Length        0000 (0)\n+6EAEEF Disk Start            0000 (0)\n+6EAEF1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAEF3 Ext File Attributes   00000000 (0)\n+6EAEF7 Local Header Offset   0006C2E3 (443107)\n+6EAEFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAEFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAF31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAF33   Length              0005 (5)\n+6EAF35   Flags               01 (1) 'Modification'\n+6EAF36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAF3A CENTRAL HEADER #236   02014B50 (33639248)\n+6EAF3E Created Zip Spec      14 (20) '2.0'\n+6EAF3F Created OS            00 (0) 'MS-DOS'\n+6EAF40 Extract Zip Spec      14 (20) '2.0'\n+6EAF41 Extract OS            00 (0) 'MS-DOS'\n+6EAF42 General Purpose Flag  0000 (0)\n+6EAF44 Compression Method    0000 (0) 'Stored'\n+6EAF46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAF4A CRC                   00000000 (0)\n+6EAF4E Compressed Size       00000000 (0)\n+6EAF52 Uncompressed Size     00000000 (0)\n+6EAF56 Filename Length       0032 (50)\n+6EAF58 Extra Length          0009 (9)\n+6EAF5A Comment Length        0000 (0)\n+6EAF5C Disk Start            0000 (0)\n+6EAF5E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAF60 Ext File Attributes   00000000 (0)\n+6EAF64 Local Header Offset   0006CDC9 (445897)\n+6EAF68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAF68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EAF9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EAF9C   Length              0005 (5)\n+6EAF9E   Flags               01 (1) 'Modification'\n+6EAF9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EAFA3 CENTRAL HEADER #237   02014B50 (33639248)\n+6EAFA7 Created Zip Spec      14 (20) '2.0'\n+6EAFA8 Created OS            00 (0) 'MS-DOS'\n+6EAFA9 Extract Zip Spec      14 (20) '2.0'\n+6EAFAA Extract OS            00 (0) 'MS-DOS'\n+6EAFAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EAFAD Compression Method    0000 (0) 'Stored'\n+6EAFAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EAFB3 CRC                   00000000 (0)\n+6EAFB7 Compressed Size       00000000 (0)\n+6EAFBB Uncompressed Size     00000000 (0)\n+6EAFBF Filename Length       0040 (64)\n+6EAFC1 Extra Length          0009 (9)\n+6EAFC3 Comment Length        0000 (0)\n+6EAFC5 Disk Start            0000 (0)\n+6EAFC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EAFC9 Ext File Attributes   00000000 (0)\n+6EAFCD Local Header Offset   0006CE22 (445986)\n+6EAFD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EAFD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB011 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB013   Length              0005 (5)\n+6EB015   Flags               01 (1) 'Modification'\n+6EB016   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB01A CENTRAL HEADER #238   02014B50 (33639248)\n+6EB01E Created Zip Spec      14 (20) '2.0'\n+6EB01F Created OS            00 (0) 'MS-DOS'\n+6EB020 Extract Zip Spec      14 (20) '2.0'\n+6EB021 Extract OS            00 (0) 'MS-DOS'\n+6EB022 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB024 Compression Method    0000 (0) 'Stored'\n+6EB026 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB02A CRC                   19FB740D (435909645)\n+6EB02E Compressed Size       00000A8E (2702)\n+6EB032 Uncompressed Size     00000A8E (2702)\n+6EB036 Filename Length       0039 (57)\n+6EB038 Extra Length          0009 (9)\n+6EB03A Comment Length        0000 (0)\n+6EB03C Disk Start            0000 (0)\n+6EB03E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB040 Ext File Attributes   00000000 (0)\n+6EB044 Local Header Offset   0006CE99 (446105)\n+6EB048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB081 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB083   Length              0005 (5)\n+6EB085   Flags               01 (1) 'Modification'\n+6EB086   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB08A CENTRAL HEADER #239   02014B50 (33639248)\n+6EB08E Created Zip Spec      14 (20) '2.0'\n+6EB08F Created OS            00 (0) 'MS-DOS'\n+6EB090 Extract Zip Spec      14 (20) '2.0'\n+6EB091 Extract OS            00 (0) 'MS-DOS'\n+6EB092 General Purpose Flag  0000 (0)\n+6EB094 Compression Method    0000 (0) 'Stored'\n+6EB096 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB09A CRC                   00000000 (0)\n+6EB09E Compressed Size       00000000 (0)\n+6EB0A2 Uncompressed Size     00000000 (0)\n+6EB0A6 Filename Length       002F (47)\n+6EB0A8 Extra Length          0009 (9)\n+6EB0AA Comment Length        0000 (0)\n+6EB0AC Disk Start            0000 (0)\n+6EB0AE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB0B0 Ext File Attributes   00000000 (0)\n+6EB0B4 Local Header Offset   0006D997 (448919)\n+6EB0B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB0B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB0E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB0E9   Length              0005 (5)\n+6EB0EB   Flags               01 (1) 'Modification'\n+6EB0EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB0F0 CENTRAL HEADER #240   02014B50 (33639248)\n+6EB0F4 Created Zip Spec      14 (20) '2.0'\n+6EB0F5 Created OS            00 (0) 'MS-DOS'\n+6EB0F6 Extract Zip Spec      14 (20) '2.0'\n+6EB0F7 Extract OS            00 (0) 'MS-DOS'\n+6EB0F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB0FA Compression Method    0000 (0) 'Stored'\n+6EB0FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB100 CRC                   00000000 (0)\n+6EB104 Compressed Size       00000000 (0)\n+6EB108 Uncompressed Size     00000000 (0)\n+6EB10C Filename Length       003D (61)\n+6EB10E Extra Length          0009 (9)\n+6EB110 Comment Length        0000 (0)\n+6EB112 Disk Start            0000 (0)\n+6EB114 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB116 Ext File Attributes   00000000 (0)\n+6EB11A Local Header Offset   0006D9ED (449005)\n+6EB11E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB11E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB15B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB15D   Length              0005 (5)\n+6EB15F   Flags               01 (1) 'Modification'\n+6EB160   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB164 CENTRAL HEADER #241   02014B50 (33639248)\n+6EB168 Created Zip Spec      14 (20) '2.0'\n+6EB169 Created OS            00 (0) 'MS-DOS'\n+6EB16A Extract Zip Spec      14 (20) '2.0'\n+6EB16B Extract OS            00 (0) 'MS-DOS'\n+6EB16C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB16E Compression Method    0000 (0) 'Stored'\n+6EB170 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB174 CRC                   03176EE3 (51867363)\n+6EB178 Compressed Size       00000988 (2440)\n+6EB17C Uncompressed Size     00000988 (2440)\n+6EB180 Filename Length       0036 (54)\n+6EB182 Extra Length          0009 (9)\n+6EB184 Comment Length        0000 (0)\n+6EB186 Disk Start            0000 (0)\n+6EB188 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB18A Ext File Attributes   00000000 (0)\n+6EB18E Local Header Offset   0006DA61 (449121)\n+6EB192 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB192: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB1C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB1CA   Length              0005 (5)\n+6EB1CC   Flags               01 (1) 'Modification'\n+6EB1CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB1D1 CENTRAL HEADER #242   02014B50 (33639248)\n+6EB1D5 Created Zip Spec      14 (20) '2.0'\n+6EB1D6 Created OS            00 (0) 'MS-DOS'\n+6EB1D7 Extract Zip Spec      14 (20) '2.0'\n+6EB1D8 Extract OS            00 (0) 'MS-DOS'\n+6EB1D9 General Purpose Flag  0000 (0)\n+6EB1DB Compression Method    0000 (0) 'Stored'\n+6EB1DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB1E1 CRC                   00000000 (0)\n+6EB1E5 Compressed Size       00000000 (0)\n+6EB1E9 Uncompressed Size     00000000 (0)\n+6EB1ED Filename Length       0030 (48)\n+6EB1EF Extra Length          0009 (9)\n+6EB1F1 Comment Length        0000 (0)\n+6EB1F3 Disk Start            0000 (0)\n+6EB1F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB1F7 Ext File Attributes   00000000 (0)\n+6EB1FB Local Header Offset   0006E456 (451670)\n+6EB1FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB1FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB22F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB231   Length              0005 (5)\n+6EB233   Flags               01 (1) 'Modification'\n+6EB234   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB238 CENTRAL HEADER #243   02014B50 (33639248)\n+6EB23C Created Zip Spec      14 (20) '2.0'\n+6EB23D Created OS            00 (0) 'MS-DOS'\n+6EB23E Extract Zip Spec      14 (20) '2.0'\n+6EB23F Extract OS            00 (0) 'MS-DOS'\n+6EB240 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB242 Compression Method    0000 (0) 'Stored'\n+6EB244 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB248 CRC                   00000000 (0)\n+6EB24C Compressed Size       00000000 (0)\n+6EB250 Uncompressed Size     00000000 (0)\n+6EB254 Filename Length       003E (62)\n+6EB256 Extra Length          0009 (9)\n+6EB258 Comment Length        0000 (0)\n+6EB25A Disk Start            0000 (0)\n+6EB25C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB25E Ext File Attributes   00000000 (0)\n+6EB262 Local Header Offset   0006E4AD (451757)\n+6EB266 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB266: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB2A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB2A6   Length              0005 (5)\n+6EB2A8   Flags               01 (1) 'Modification'\n+6EB2A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB2AD CENTRAL HEADER #244   02014B50 (33639248)\n+6EB2B1 Created Zip Spec      14 (20) '2.0'\n+6EB2B2 Created OS            00 (0) 'MS-DOS'\n+6EB2B3 Extract Zip Spec      14 (20) '2.0'\n+6EB2B4 Extract OS            00 (0) 'MS-DOS'\n+6EB2B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB2B7 Compression Method    0000 (0) 'Stored'\n+6EB2B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB2BD CRC                   C4A7A8FF (3299322111)\n+6EB2C1 Compressed Size       00000783 (1923)\n+6EB2C5 Uncompressed Size     00000783 (1923)\n+6EB2C9 Filename Length       0037 (55)\n+6EB2CB Extra Length          0009 (9)\n+6EB2CD Comment Length        0000 (0)\n+6EB2CF Disk Start            0000 (0)\n+6EB2D1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB2D3 Ext File Attributes   00000000 (0)\n+6EB2D7 Local Header Offset   0006E522 (451874)\n+6EB2DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB2DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB314   Length              0005 (5)\n+6EB316   Flags               01 (1) 'Modification'\n+6EB317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB31B CENTRAL HEADER #245   02014B50 (33639248)\n+6EB31F Created Zip Spec      14 (20) '2.0'\n+6EB320 Created OS            00 (0) 'MS-DOS'\n+6EB321 Extract Zip Spec      14 (20) '2.0'\n+6EB322 Extract OS            00 (0) 'MS-DOS'\n+6EB323 General Purpose Flag  0000 (0)\n+6EB325 Compression Method    0000 (0) 'Stored'\n+6EB327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB32B CRC                   00000000 (0)\n+6EB32F Compressed Size       00000000 (0)\n+6EB333 Uncompressed Size     00000000 (0)\n+6EB337 Filename Length       0034 (52)\n+6EB339 Extra Length          0009 (9)\n+6EB33B Comment Length        0000 (0)\n+6EB33D Disk Start            0000 (0)\n+6EB33F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB341 Ext File Attributes   00000000 (0)\n+6EB345 Local Header Offset   0006ED13 (453907)\n+6EB349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB37D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB37F   Length              0005 (5)\n+6EB381   Flags               01 (1) 'Modification'\n+6EB382   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB386 CENTRAL HEADER #246   02014B50 (33639248)\n+6EB38A Created Zip Spec      14 (20) '2.0'\n+6EB38B Created OS            00 (0) 'MS-DOS'\n+6EB38C Extract Zip Spec      14 (20) '2.0'\n+6EB38D Extract OS            00 (0) 'MS-DOS'\n+6EB38E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB390 Compression Method    0000 (0) 'Stored'\n+6EB392 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB396 CRC                   00000000 (0)\n+6EB39A Compressed Size       00000000 (0)\n+6EB39E Uncompressed Size     00000000 (0)\n+6EB3A2 Filename Length       0042 (66)\n+6EB3A4 Extra Length          0009 (9)\n+6EB3A6 Comment Length        0000 (0)\n+6EB3A8 Disk Start            0000 (0)\n+6EB3AA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB3AC Ext File Attributes   00000000 (0)\n+6EB3B0 Local Header Offset   0006ED6E (453998)\n+6EB3B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB3B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB3F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB3F8   Length              0005 (5)\n+6EB3FA   Flags               01 (1) 'Modification'\n+6EB3FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB3FF CENTRAL HEADER #247   02014B50 (33639248)\n+6EB403 Created Zip Spec      14 (20) '2.0'\n+6EB404 Created OS            00 (0) 'MS-DOS'\n+6EB405 Extract Zip Spec      14 (20) '2.0'\n+6EB406 Extract OS            00 (0) 'MS-DOS'\n+6EB407 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB409 Compression Method    0000 (0) 'Stored'\n+6EB40B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB40F CRC                   6C50312F (1817194799)\n+6EB413 Compressed Size       0000080B (2059)\n+6EB417 Uncompressed Size     0000080B (2059)\n+6EB41B Filename Length       003B (59)\n+6EB41D Extra Length          0009 (9)\n+6EB41F Comment Length        0000 (0)\n+6EB421 Disk Start            0000 (0)\n+6EB423 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB425 Ext File Attributes   00000000 (0)\n+6EB429 Local Header Offset   0006EDE7 (454119)\n+6EB42D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB42D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB468 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB46A   Length              0005 (5)\n+6EB46C   Flags               01 (1) 'Modification'\n+6EB46D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB471 CENTRAL HEADER #248   02014B50 (33639248)\n+6EB475 Created Zip Spec      14 (20) '2.0'\n+6EB476 Created OS            00 (0) 'MS-DOS'\n+6EB477 Extract Zip Spec      14 (20) '2.0'\n+6EB478 Extract OS            00 (0) 'MS-DOS'\n+6EB479 General Purpose Flag  0000 (0)\n+6EB47B Compression Method    0000 (0) 'Stored'\n+6EB47D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB481 CRC                   00000000 (0)\n+6EB485 Compressed Size       00000000 (0)\n+6EB489 Uncompressed Size     00000000 (0)\n+6EB48D Filename Length       0038 (56)\n+6EB48F Extra Length          0009 (9)\n+6EB491 Comment Length        0000 (0)\n+6EB493 Disk Start            0000 (0)\n+6EB495 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB497 Ext File Attributes   00000000 (0)\n+6EB49B Local Header Offset   0006F664 (456292)\n+6EB49F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB49F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB4D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB4D9   Length              0005 (5)\n+6EB4DB   Flags               01 (1) 'Modification'\n+6EB4DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB4E0 CENTRAL HEADER #249   02014B50 (33639248)\n+6EB4E4 Created Zip Spec      14 (20) '2.0'\n+6EB4E5 Created OS            00 (0) 'MS-DOS'\n+6EB4E6 Extract Zip Spec      14 (20) '2.0'\n+6EB4E7 Extract OS            00 (0) 'MS-DOS'\n+6EB4E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB4EA Compression Method    0000 (0) 'Stored'\n+6EB4EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB4F0 CRC                   00000000 (0)\n+6EB4F4 Compressed Size       00000000 (0)\n+6EB4F8 Uncompressed Size     00000000 (0)\n+6EB4FC Filename Length       0046 (70)\n+6EB4FE Extra Length          0009 (9)\n+6EB500 Comment Length        0000 (0)\n+6EB502 Disk Start            0000 (0)\n+6EB504 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB506 Ext File Attributes   00000000 (0)\n+6EB50A Local Header Offset   0006F6C3 (456387)\n+6EB50E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB50E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB554 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB556   Length              0005 (5)\n+6EB558   Flags               01 (1) 'Modification'\n+6EB559   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB55D CENTRAL HEADER #250   02014B50 (33639248)\n+6EB561 Created Zip Spec      14 (20) '2.0'\n+6EB562 Created OS            00 (0) 'MS-DOS'\n+6EB563 Extract Zip Spec      14 (20) '2.0'\n+6EB564 Extract OS            00 (0) 'MS-DOS'\n+6EB565 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB567 Compression Method    0000 (0) 'Stored'\n+6EB569 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB56D CRC                   DFB279C5 (3753015749)\n+6EB571 Compressed Size       000008C6 (2246)\n+6EB575 Uncompressed Size     000008C6 (2246)\n+6EB579 Filename Length       003F (63)\n+6EB57B Extra Length          0009 (9)\n+6EB57D Comment Length        0000 (0)\n+6EB57F Disk Start            0000 (0)\n+6EB581 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB583 Ext File Attributes   00000000 (0)\n+6EB587 Local Header Offset   0006F740 (456512)\n+6EB58B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB58B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB5CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB5CC   Length              0005 (5)\n+6EB5CE   Flags               01 (1) 'Modification'\n+6EB5CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB5D3 CENTRAL HEADER #251   02014B50 (33639248)\n+6EB5D7 Created Zip Spec      14 (20) '2.0'\n+6EB5D8 Created OS            00 (0) 'MS-DOS'\n+6EB5D9 Extract Zip Spec      14 (20) '2.0'\n+6EB5DA Extract OS            00 (0) 'MS-DOS'\n+6EB5DB General Purpose Flag  0000 (0)\n+6EB5DD Compression Method    0000 (0) 'Stored'\n+6EB5DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB5E3 CRC                   00000000 (0)\n+6EB5E7 Compressed Size       00000000 (0)\n+6EB5EB Uncompressed Size     00000000 (0)\n+6EB5EF Filename Length       0030 (48)\n+6EB5F1 Extra Length          0009 (9)\n+6EB5F3 Comment Length        0000 (0)\n+6EB5F5 Disk Start            0000 (0)\n+6EB5F7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB5F9 Ext File Attributes   00000000 (0)\n+6EB5FD Local Header Offset   0007007C (458876)\n+6EB601 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB601: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB631 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB633   Length              0005 (5)\n+6EB635   Flags               01 (1) 'Modification'\n+6EB636   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB63A CENTRAL HEADER #252   02014B50 (33639248)\n+6EB63E Created Zip Spec      14 (20) '2.0'\n+6EB63F Created OS            00 (0) 'MS-DOS'\n+6EB640 Extract Zip Spec      14 (20) '2.0'\n+6EB641 Extract OS            00 (0) 'MS-DOS'\n+6EB642 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB644 Compression Method    0000 (0) 'Stored'\n+6EB646 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB64A CRC                   00000000 (0)\n+6EB64E Compressed Size       00000000 (0)\n+6EB652 Uncompressed Size     00000000 (0)\n+6EB656 Filename Length       003E (62)\n+6EB658 Extra Length          0009 (9)\n+6EB65A Comment Length        0000 (0)\n+6EB65C Disk Start            0000 (0)\n+6EB65E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB660 Ext File Attributes   00000000 (0)\n+6EB664 Local Header Offset   000700D3 (458963)\n+6EB668 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB668: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB6A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB6A8   Length              0005 (5)\n+6EB6AA   Flags               01 (1) 'Modification'\n+6EB6AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB6AF CENTRAL HEADER #253   02014B50 (33639248)\n+6EB6B3 Created Zip Spec      14 (20) '2.0'\n+6EB6B4 Created OS            00 (0) 'MS-DOS'\n+6EB6B5 Extract Zip Spec      14 (20) '2.0'\n+6EB6B6 Extract OS            00 (0) 'MS-DOS'\n+6EB6B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB6B9 Compression Method    0000 (0) 'Stored'\n+6EB6BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB6BF CRC                   C023047F (3223520383)\n+6EB6C3 Compressed Size       000009EF (2543)\n+6EB6C7 Uncompressed Size     000009EF (2543)\n+6EB6CB Filename Length       0037 (55)\n+6EB6CD Extra Length          0009 (9)\n+6EB6CF Comment Length        0000 (0)\n+6EB6D1 Disk Start            0000 (0)\n+6EB6D3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB6D5 Ext File Attributes   00000000 (0)\n+6EB6D9 Local Header Offset   00070148 (459080)\n+6EB6DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB6DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB714 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB716   Length              0005 (5)\n+6EB718   Flags               01 (1) 'Modification'\n+6EB719   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB71D CENTRAL HEADER #254   02014B50 (33639248)\n+6EB721 Created Zip Spec      14 (20) '2.0'\n+6EB722 Created OS            00 (0) 'MS-DOS'\n+6EB723 Extract Zip Spec      14 (20) '2.0'\n+6EB724 Extract OS            00 (0) 'MS-DOS'\n+6EB725 General Purpose Flag  0000 (0)\n+6EB727 Compression Method    0000 (0) 'Stored'\n+6EB729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB72D CRC                   00000000 (0)\n+6EB731 Compressed Size       00000000 (0)\n+6EB735 Uncompressed Size     00000000 (0)\n+6EB739 Filename Length       002F (47)\n+6EB73B Extra Length          0009 (9)\n+6EB73D Comment Length        0000 (0)\n+6EB73F Disk Start            0000 (0)\n+6EB741 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB743 Ext File Attributes   00000000 (0)\n+6EB747 Local Header Offset   00070BA5 (461733)\n+6EB74B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB74B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB77A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB77C   Length              0005 (5)\n+6EB77E   Flags               01 (1) 'Modification'\n+6EB77F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB783 CENTRAL HEADER #255   02014B50 (33639248)\n+6EB787 Created Zip Spec      14 (20) '2.0'\n+6EB788 Created OS            00 (0) 'MS-DOS'\n+6EB789 Extract Zip Spec      14 (20) '2.0'\n+6EB78A Extract OS            00 (0) 'MS-DOS'\n+6EB78B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB78D Compression Method    0000 (0) 'Stored'\n+6EB78F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB793 CRC                   00000000 (0)\n+6EB797 Compressed Size       00000000 (0)\n+6EB79B Uncompressed Size     00000000 (0)\n+6EB79F Filename Length       003D (61)\n+6EB7A1 Extra Length          0009 (9)\n+6EB7A3 Comment Length        0000 (0)\n+6EB7A5 Disk Start            0000 (0)\n+6EB7A7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB7A9 Ext File Attributes   00000000 (0)\n+6EB7AD Local Header Offset   00070BFB (461819)\n+6EB7B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB7B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB7EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB7F0   Length              0005 (5)\n+6EB7F2   Flags               01 (1) 'Modification'\n+6EB7F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB7F7 CENTRAL HEADER #256   02014B50 (33639248)\n+6EB7FB Created Zip Spec      14 (20) '2.0'\n+6EB7FC Created OS            00 (0) 'MS-DOS'\n+6EB7FD Extract Zip Spec      14 (20) '2.0'\n+6EB7FE Extract OS            00 (0) 'MS-DOS'\n+6EB7FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB801 Compression Method    0000 (0) 'Stored'\n+6EB803 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB807 CRC                   E36316D8 (3814921944)\n+6EB80B Compressed Size       00000F30 (3888)\n+6EB80F Uncompressed Size     00000F30 (3888)\n+6EB813 Filename Length       0036 (54)\n+6EB815 Extra Length          0009 (9)\n+6EB817 Comment Length        0000 (0)\n+6EB819 Disk Start            0000 (0)\n+6EB81B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB81D Ext File Attributes   00000000 (0)\n+6EB821 Local Header Offset   00070C6F (461935)\n+6EB825 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB825: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB85B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB85D   Length              0005 (5)\n+6EB85F   Flags               01 (1) 'Modification'\n+6EB860   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB864 CENTRAL HEADER #257   02014B50 (33639248)\n+6EB868 Created Zip Spec      14 (20) '2.0'\n+6EB869 Created OS            00 (0) 'MS-DOS'\n+6EB86A Extract Zip Spec      14 (20) '2.0'\n+6EB86B Extract OS            00 (0) 'MS-DOS'\n+6EB86C General Purpose Flag  0000 (0)\n+6EB86E Compression Method    0000 (0) 'Stored'\n+6EB870 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB874 CRC                   00000000 (0)\n+6EB878 Compressed Size       00000000 (0)\n+6EB87C Uncompressed Size     00000000 (0)\n+6EB880 Filename Length       002E (46)\n+6EB882 Extra Length          0009 (9)\n+6EB884 Comment Length        0000 (0)\n+6EB886 Disk Start            0000 (0)\n+6EB888 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB88A Ext File Attributes   00000000 (0)\n+6EB88E Local Header Offset   00071C0C (465932)\n+6EB892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB8C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB8C2   Length              0005 (5)\n+6EB8C4   Flags               01 (1) 'Modification'\n+6EB8C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB8C9 CENTRAL HEADER #258   02014B50 (33639248)\n+6EB8CD Created Zip Spec      14 (20) '2.0'\n+6EB8CE Created OS            00 (0) 'MS-DOS'\n+6EB8CF Extract Zip Spec      14 (20) '2.0'\n+6EB8D0 Extract OS            00 (0) 'MS-DOS'\n+6EB8D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB8D3 Compression Method    0000 (0) 'Stored'\n+6EB8D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB8D9 CRC                   00000000 (0)\n+6EB8DD Compressed Size       00000000 (0)\n+6EB8E1 Uncompressed Size     00000000 (0)\n+6EB8E5 Filename Length       003C (60)\n+6EB8E7 Extra Length          0009 (9)\n+6EB8E9 Comment Length        0000 (0)\n+6EB8EB Disk Start            0000 (0)\n+6EB8ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB8EF Ext File Attributes   00000000 (0)\n+6EB8F3 Local Header Offset   00071C61 (466017)\n+6EB8F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB8F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB933 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB935   Length              0005 (5)\n+6EB937   Flags               01 (1) 'Modification'\n+6EB938   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB93C CENTRAL HEADER #259   02014B50 (33639248)\n+6EB940 Created Zip Spec      14 (20) '2.0'\n+6EB941 Created OS            00 (0) 'MS-DOS'\n+6EB942 Extract Zip Spec      14 (20) '2.0'\n+6EB943 Extract OS            00 (0) 'MS-DOS'\n+6EB944 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EB946 Compression Method    0000 (0) 'Stored'\n+6EB948 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB94C CRC                   53E95BBF (1407802303)\n+6EB950 Compressed Size       000007FD (2045)\n+6EB954 Uncompressed Size     000007FD (2045)\n+6EB958 Filename Length       0035 (53)\n+6EB95A Extra Length          0009 (9)\n+6EB95C Comment Length        0000 (0)\n+6EB95E Disk Start            0000 (0)\n+6EB960 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB962 Ext File Attributes   00000000 (0)\n+6EB966 Local Header Offset   00071CD4 (466132)\n+6EB96A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB96A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EB99F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EB9A1   Length              0005 (5)\n+6EB9A3   Flags               01 (1) 'Modification'\n+6EB9A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EB9A8 CENTRAL HEADER #260   02014B50 (33639248)\n+6EB9AC Created Zip Spec      14 (20) '2.0'\n+6EB9AD Created OS            00 (0) 'MS-DOS'\n+6EB9AE Extract Zip Spec      14 (20) '2.0'\n+6EB9AF Extract OS            00 (0) 'MS-DOS'\n+6EB9B0 General Purpose Flag  0000 (0)\n+6EB9B2 Compression Method    0000 (0) 'Stored'\n+6EB9B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EB9B8 CRC                   00000000 (0)\n+6EB9BC Compressed Size       00000000 (0)\n+6EB9C0 Uncompressed Size     00000000 (0)\n+6EB9C4 Filename Length       0031 (49)\n+6EB9C6 Extra Length          0009 (9)\n+6EB9C8 Comment Length        0000 (0)\n+6EB9CA Disk Start            0000 (0)\n+6EB9CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EB9CE Ext File Attributes   00000000 (0)\n+6EB9D2 Local Header Offset   0007253D (468285)\n+6EB9D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EB9D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBA07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBA09   Length              0005 (5)\n+6EBA0B   Flags               01 (1) 'Modification'\n+6EBA0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBA10 CENTRAL HEADER #261   02014B50 (33639248)\n+6EBA14 Created Zip Spec      14 (20) '2.0'\n+6EBA15 Created OS            00 (0) 'MS-DOS'\n+6EBA16 Extract Zip Spec      14 (20) '2.0'\n+6EBA17 Extract OS            00 (0) 'MS-DOS'\n+6EBA18 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBA1A Compression Method    0000 (0) 'Stored'\n+6EBA1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBA20 CRC                   00000000 (0)\n+6EBA24 Compressed Size       00000000 (0)\n+6EBA28 Uncompressed Size     00000000 (0)\n+6EBA2C Filename Length       003F (63)\n+6EBA2E Extra Length          0009 (9)\n+6EBA30 Comment Length        0000 (0)\n+6EBA32 Disk Start            0000 (0)\n+6EBA34 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBA36 Ext File Attributes   00000000 (0)\n+6EBA3A Local Header Offset   00072595 (468373)\n+6EBA3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBA3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBA7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBA7F   Length              0005 (5)\n+6EBA81   Flags               01 (1) 'Modification'\n+6EBA82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBA86 CENTRAL HEADER #262   02014B50 (33639248)\n+6EBA8A Created Zip Spec      14 (20) '2.0'\n+6EBA8B Created OS            00 (0) 'MS-DOS'\n+6EBA8C Extract Zip Spec      14 (20) '2.0'\n+6EBA8D Extract OS            00 (0) 'MS-DOS'\n+6EBA8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBA90 Compression Method    0000 (0) 'Stored'\n+6EBA92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBA96 CRC                   FBA32B90 (4221774736)\n+6EBA9A Compressed Size       00000C2F (3119)\n+6EBA9E Uncompressed Size     00000C2F (3119)\n+6EBAA2 Filename Length       0038 (56)\n+6EBAA4 Extra Length          0009 (9)\n+6EBAA6 Comment Length        0000 (0)\n+6EBAA8 Disk Start            0000 (0)\n+6EBAAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBAAC Ext File Attributes   00000000 (0)\n+6EBAB0 Local Header Offset   0007260B (468491)\n+6EBAB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBAB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBAEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBAEE   Length              0005 (5)\n+6EBAF0   Flags               01 (1) 'Modification'\n+6EBAF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBAF5 CENTRAL HEADER #263   02014B50 (33639248)\n+6EBAF9 Created Zip Spec      14 (20) '2.0'\n+6EBAFA Created OS            00 (0) 'MS-DOS'\n+6EBAFB Extract Zip Spec      14 (20) '2.0'\n+6EBAFC Extract OS            00 (0) 'MS-DOS'\n+6EBAFD General Purpose Flag  0000 (0)\n+6EBAFF Compression Method    0000 (0) 'Stored'\n+6EBB01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBB05 CRC                   00000000 (0)\n+6EBB09 Compressed Size       00000000 (0)\n+6EBB0D Uncompressed Size     00000000 (0)\n+6EBB11 Filename Length       0035 (53)\n+6EBB13 Extra Length          0009 (9)\n+6EBB15 Comment Length        0000 (0)\n+6EBB17 Disk Start            0000 (0)\n+6EBB19 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBB1B Ext File Attributes   00000000 (0)\n+6EBB1F Local Header Offset   000732A9 (471721)\n+6EBB23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBB23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBB58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBB5A   Length              0005 (5)\n+6EBB5C   Flags               01 (1) 'Modification'\n+6EBB5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBB61 CENTRAL HEADER #264   02014B50 (33639248)\n+6EBB65 Created Zip Spec      14 (20) '2.0'\n+6EBB66 Created OS            00 (0) 'MS-DOS'\n+6EBB67 Extract Zip Spec      14 (20) '2.0'\n+6EBB68 Extract OS            00 (0) 'MS-DOS'\n+6EBB69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBB6B Compression Method    0000 (0) 'Stored'\n+6EBB6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBB71 CRC                   00000000 (0)\n+6EBB75 Compressed Size       00000000 (0)\n+6EBB79 Uncompressed Size     00000000 (0)\n+6EBB7D Filename Length       0043 (67)\n+6EBB7F Extra Length          0009 (9)\n+6EBB81 Comment Length        0000 (0)\n+6EBB83 Disk Start            0000 (0)\n+6EBB85 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBB87 Ext File Attributes   00000000 (0)\n+6EBB8B Local Header Offset   00073305 (471813)\n+6EBB8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBB8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBBD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBBD4   Length              0005 (5)\n+6EBBD6   Flags               01 (1) 'Modification'\n+6EBBD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBBDB CENTRAL HEADER #265   02014B50 (33639248)\n+6EBBDF Created Zip Spec      14 (20) '2.0'\n+6EBBE0 Created OS            00 (0) 'MS-DOS'\n+6EBBE1 Extract Zip Spec      14 (20) '2.0'\n+6EBBE2 Extract OS            00 (0) 'MS-DOS'\n+6EBBE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBBE5 Compression Method    0000 (0) 'Stored'\n+6EBBE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBBEB CRC                   42F6A52E (1123460398)\n+6EBBEF Compressed Size       00000C1F (3103)\n+6EBBF3 Uncompressed Size     00000C1F (3103)\n+6EBBF7 Filename Length       003C (60)\n+6EBBF9 Extra Length          0009 (9)\n+6EBBFB Comment Length        0000 (0)\n+6EBBFD Disk Start            0000 (0)\n+6EBBFF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBC01 Ext File Attributes   00000000 (0)\n+6EBC05 Local Header Offset   0007337F (471935)\n+6EBC09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBC09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBC45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBC47   Length              0005 (5)\n+6EBC49   Flags               01 (1) 'Modification'\n+6EBC4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBC4E CENTRAL HEADER #266   02014B50 (33639248)\n+6EBC52 Created Zip Spec      14 (20) '2.0'\n+6EBC53 Created OS            00 (0) 'MS-DOS'\n+6EBC54 Extract Zip Spec      14 (20) '2.0'\n+6EBC55 Extract OS            00 (0) 'MS-DOS'\n+6EBC56 General Purpose Flag  0000 (0)\n+6EBC58 Compression Method    0000 (0) 'Stored'\n+6EBC5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBC5E CRC                   00000000 (0)\n+6EBC62 Compressed Size       00000000 (0)\n+6EBC66 Uncompressed Size     00000000 (0)\n+6EBC6A Filename Length       002E (46)\n+6EBC6C Extra Length          0009 (9)\n+6EBC6E Comment Length        0000 (0)\n+6EBC70 Disk Start            0000 (0)\n+6EBC72 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBC74 Ext File Attributes   00000000 (0)\n+6EBC78 Local Header Offset   00074011 (475153)\n+6EBC7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBC7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBCAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBCAC   Length              0005 (5)\n+6EBCAE   Flags               01 (1) 'Modification'\n+6EBCAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBCB3 CENTRAL HEADER #267   02014B50 (33639248)\n+6EBCB7 Created Zip Spec      14 (20) '2.0'\n+6EBCB8 Created OS            00 (0) 'MS-DOS'\n+6EBCB9 Extract Zip Spec      14 (20) '2.0'\n+6EBCBA Extract OS            00 (0) 'MS-DOS'\n+6EBCBB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBCBD Compression Method    0000 (0) 'Stored'\n+6EBCBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBCC3 CRC                   00000000 (0)\n+6EBCC7 Compressed Size       00000000 (0)\n+6EBCCB Uncompressed Size     00000000 (0)\n+6EBCCF Filename Length       003C (60)\n+6EBCD1 Extra Length          0009 (9)\n+6EBCD3 Comment Length        0000 (0)\n+6EBCD5 Disk Start            0000 (0)\n+6EBCD7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBCD9 Ext File Attributes   00000000 (0)\n+6EBCDD Local Header Offset   00074066 (475238)\n+6EBCE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBCE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBD1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBD1F   Length              0005 (5)\n+6EBD21   Flags               01 (1) 'Modification'\n+6EBD22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBD26 CENTRAL HEADER #268   02014B50 (33639248)\n+6EBD2A Created Zip Spec      14 (20) '2.0'\n+6EBD2B Created OS            00 (0) 'MS-DOS'\n+6EBD2C Extract Zip Spec      14 (20) '2.0'\n+6EBD2D Extract OS            00 (0) 'MS-DOS'\n+6EBD2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBD30 Compression Method    0000 (0) 'Stored'\n+6EBD32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBD36 CRC                   E989D516 (3918124310)\n+6EBD3A Compressed Size       00000ADD (2781)\n+6EBD3E Uncompressed Size     00000ADD (2781)\n+6EBD42 Filename Length       0035 (53)\n+6EBD44 Extra Length          0009 (9)\n+6EBD46 Comment Length        0000 (0)\n+6EBD48 Disk Start            0000 (0)\n+6EBD4A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBD4C Ext File Attributes   00000000 (0)\n+6EBD50 Local Header Offset   000740D9 (475353)\n+6EBD54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBD54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBD89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBD8B   Length              0005 (5)\n+6EBD8D   Flags               01 (1) 'Modification'\n+6EBD8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBD92 CENTRAL HEADER #269   02014B50 (33639248)\n+6EBD96 Created Zip Spec      14 (20) '2.0'\n+6EBD97 Created OS            00 (0) 'MS-DOS'\n+6EBD98 Extract Zip Spec      14 (20) '2.0'\n+6EBD99 Extract OS            00 (0) 'MS-DOS'\n+6EBD9A General Purpose Flag  0000 (0)\n+6EBD9C Compression Method    0000 (0) 'Stored'\n+6EBD9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBDA2 CRC                   00000000 (0)\n+6EBDA6 Compressed Size       00000000 (0)\n+6EBDAA Uncompressed Size     00000000 (0)\n+6EBDAE Filename Length       0038 (56)\n+6EBDB0 Extra Length          0009 (9)\n+6EBDB2 Comment Length        0000 (0)\n+6EBDB4 Disk Start            0000 (0)\n+6EBDB6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBDB8 Ext File Attributes   00000000 (0)\n+6EBDBC Local Header Offset   00074C22 (478242)\n+6EBDC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBDC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBDF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBDFA   Length              0005 (5)\n+6EBDFC   Flags               01 (1) 'Modification'\n+6EBDFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBE01 CENTRAL HEADER #270   02014B50 (33639248)\n+6EBE05 Created Zip Spec      14 (20) '2.0'\n+6EBE06 Created OS            00 (0) 'MS-DOS'\n+6EBE07 Extract Zip Spec      14 (20) '2.0'\n+6EBE08 Extract OS            00 (0) 'MS-DOS'\n+6EBE09 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBE0B Compression Method    0000 (0) 'Stored'\n+6EBE0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBE11 CRC                   00000000 (0)\n+6EBE15 Compressed Size       00000000 (0)\n+6EBE19 Uncompressed Size     00000000 (0)\n+6EBE1D Filename Length       0046 (70)\n+6EBE1F Extra Length          0009 (9)\n+6EBE21 Comment Length        0000 (0)\n+6EBE23 Disk Start            0000 (0)\n+6EBE25 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBE27 Ext File Attributes   00000000 (0)\n+6EBE2B Local Header Offset   00074C81 (478337)\n+6EBE2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBE2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBE75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBE77   Length              0005 (5)\n+6EBE79   Flags               01 (1) 'Modification'\n+6EBE7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBE7E CENTRAL HEADER #271   02014B50 (33639248)\n+6EBE82 Created Zip Spec      14 (20) '2.0'\n+6EBE83 Created OS            00 (0) 'MS-DOS'\n+6EBE84 Extract Zip Spec      14 (20) '2.0'\n+6EBE85 Extract OS            00 (0) 'MS-DOS'\n+6EBE86 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBE88 Compression Method    0000 (0) 'Stored'\n+6EBE8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBE8E CRC                   91053145 (2433036613)\n+6EBE92 Compressed Size       00000789 (1929)\n+6EBE96 Uncompressed Size     00000789 (1929)\n+6EBE9A Filename Length       003F (63)\n+6EBE9C Extra Length          0009 (9)\n+6EBE9E Comment Length        0000 (0)\n+6EBEA0 Disk Start            0000 (0)\n+6EBEA2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBEA4 Ext File Attributes   00000000 (0)\n+6EBEA8 Local Header Offset   00074CFE (478462)\n+6EBEAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBEAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBEEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBEED   Length              0005 (5)\n+6EBEEF   Flags               01 (1) 'Modification'\n+6EBEF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBEF4 CENTRAL HEADER #272   02014B50 (33639248)\n+6EBEF8 Created Zip Spec      14 (20) '2.0'\n+6EBEF9 Created OS            00 (0) 'MS-DOS'\n+6EBEFA Extract Zip Spec      14 (20) '2.0'\n+6EBEFB Extract OS            00 (0) 'MS-DOS'\n+6EBEFC General Purpose Flag  0000 (0)\n+6EBEFE Compression Method    0000 (0) 'Stored'\n+6EBF00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBF04 CRC                   00000000 (0)\n+6EBF08 Compressed Size       00000000 (0)\n+6EBF0C Uncompressed Size     00000000 (0)\n+6EBF10 Filename Length       0039 (57)\n+6EBF12 Extra Length          0009 (9)\n+6EBF14 Comment Length        0000 (0)\n+6EBF16 Disk Start            0000 (0)\n+6EBF18 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBF1A Ext File Attributes   00000000 (0)\n+6EBF1E Local Header Offset   000754FD (480509)\n+6EBF22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBF22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBF5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBF5D   Length              0005 (5)\n+6EBF5F   Flags               01 (1) 'Modification'\n+6EBF60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBF64 CENTRAL HEADER #273   02014B50 (33639248)\n+6EBF68 Created Zip Spec      14 (20) '2.0'\n+6EBF69 Created OS            00 (0) 'MS-DOS'\n+6EBF6A Extract Zip Spec      14 (20) '2.0'\n+6EBF6B Extract OS            00 (0) 'MS-DOS'\n+6EBF6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBF6E Compression Method    0000 (0) 'Stored'\n+6EBF70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBF74 CRC                   00000000 (0)\n+6EBF78 Compressed Size       00000000 (0)\n+6EBF7C Uncompressed Size     00000000 (0)\n+6EBF80 Filename Length       0047 (71)\n+6EBF82 Extra Length          0009 (9)\n+6EBF84 Comment Length        0000 (0)\n+6EBF86 Disk Start            0000 (0)\n+6EBF88 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EBF8A Ext File Attributes   00000000 (0)\n+6EBF8E Local Header Offset   0007555D (480605)\n+6EBF92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EBF92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EBFD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EBFDB   Length              0005 (5)\n+6EBFDD   Flags               01 (1) 'Modification'\n+6EBFDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EBFE2 CENTRAL HEADER #274   02014B50 (33639248)\n+6EBFE6 Created Zip Spec      14 (20) '2.0'\n+6EBFE7 Created OS            00 (0) 'MS-DOS'\n+6EBFE8 Extract Zip Spec      14 (20) '2.0'\n+6EBFE9 Extract OS            00 (0) 'MS-DOS'\n+6EBFEA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EBFEC Compression Method    0000 (0) 'Stored'\n+6EBFEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EBFF2 CRC                   7B8B6784 (2072733572)\n+6EBFF6 Compressed Size       00000819 (2073)\n+6EBFFA Uncompressed Size     00000819 (2073)\n+6EBFFE Filename Length       0040 (64)\n+6EC000 Extra Length          0009 (9)\n+6EC002 Comment Length        0000 (0)\n+6EC004 Disk Start            0000 (0)\n+6EC006 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC008 Ext File Attributes   00000000 (0)\n+6EC00C Local Header Offset   000755DB (480731)\n+6EC010 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC010: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC050 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC052   Length              0005 (5)\n+6EC054   Flags               01 (1) 'Modification'\n+6EC055   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC059 CENTRAL HEADER #275   02014B50 (33639248)\n+6EC05D Created Zip Spec      14 (20) '2.0'\n+6EC05E Created OS            00 (0) 'MS-DOS'\n+6EC05F Extract Zip Spec      14 (20) '2.0'\n+6EC060 Extract OS            00 (0) 'MS-DOS'\n+6EC061 General Purpose Flag  0000 (0)\n+6EC063 Compression Method    0000 (0) 'Stored'\n+6EC065 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC069 CRC                   00000000 (0)\n+6EC06D Compressed Size       00000000 (0)\n+6EC071 Uncompressed Size     00000000 (0)\n+6EC075 Filename Length       003D (61)\n+6EC077 Extra Length          0009 (9)\n+6EC079 Comment Length        0000 (0)\n+6EC07B Disk Start            0000 (0)\n+6EC07D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC07F Ext File Attributes   00000000 (0)\n+6EC083 Local Header Offset   00075E6B (482923)\n+6EC087 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC087: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC0C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC0C6   Length              0005 (5)\n+6EC0C8   Flags               01 (1) 'Modification'\n+6EC0C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC0CD CENTRAL HEADER #276   02014B50 (33639248)\n+6EC0D1 Created Zip Spec      14 (20) '2.0'\n+6EC0D2 Created OS            00 (0) 'MS-DOS'\n+6EC0D3 Extract Zip Spec      14 (20) '2.0'\n+6EC0D4 Extract OS            00 (0) 'MS-DOS'\n+6EC0D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC0D7 Compression Method    0000 (0) 'Stored'\n+6EC0D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC0DD CRC                   00000000 (0)\n+6EC0E1 Compressed Size       00000000 (0)\n+6EC0E5 Uncompressed Size     00000000 (0)\n+6EC0E9 Filename Length       004B (75)\n+6EC0EB Extra Length          0009 (9)\n+6EC0ED Comment Length        0000 (0)\n+6EC0EF Disk Start            0000 (0)\n+6EC0F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC0F3 Ext File Attributes   00000000 (0)\n+6EC0F7 Local Header Offset   00075ECF (483023)\n+6EC0FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC0FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC146 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC148   Length              0005 (5)\n+6EC14A   Flags               01 (1) 'Modification'\n+6EC14B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC14F CENTRAL HEADER #277   02014B50 (33639248)\n+6EC153 Created Zip Spec      14 (20) '2.0'\n+6EC154 Created OS            00 (0) 'MS-DOS'\n+6EC155 Extract Zip Spec      14 (20) '2.0'\n+6EC156 Extract OS            00 (0) 'MS-DOS'\n+6EC157 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC159 Compression Method    0000 (0) 'Stored'\n+6EC15B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC15F CRC                   4A5D3F5A (1247625050)\n+6EC163 Compressed Size       00000808 (2056)\n+6EC167 Uncompressed Size     00000808 (2056)\n+6EC16B Filename Length       0044 (68)\n+6EC16D Extra Length          0009 (9)\n+6EC16F Comment Length        0000 (0)\n+6EC171 Disk Start            0000 (0)\n+6EC173 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC175 Ext File Attributes   00000000 (0)\n+6EC179 Local Header Offset   00075F51 (483153)\n+6EC17D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC17D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC1C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC1C3   Length              0005 (5)\n+6EC1C5   Flags               01 (1) 'Modification'\n+6EC1C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC1CA CENTRAL HEADER #278   02014B50 (33639248)\n+6EC1CE Created Zip Spec      14 (20) '2.0'\n+6EC1CF Created OS            00 (0) 'MS-DOS'\n+6EC1D0 Extract Zip Spec      14 (20) '2.0'\n+6EC1D1 Extract OS            00 (0) 'MS-DOS'\n+6EC1D2 General Purpose Flag  0000 (0)\n+6EC1D4 Compression Method    0000 (0) 'Stored'\n+6EC1D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC1DA CRC                   00000000 (0)\n+6EC1DE Compressed Size       00000000 (0)\n+6EC1E2 Uncompressed Size     00000000 (0)\n+6EC1E6 Filename Length       0038 (56)\n+6EC1E8 Extra Length          0009 (9)\n+6EC1EA Comment Length        0000 (0)\n+6EC1EC Disk Start            0000 (0)\n+6EC1EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC1F0 Ext File Attributes   00000000 (0)\n+6EC1F4 Local Header Offset   000767D4 (485332)\n+6EC1F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC1F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC230 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC232   Length              0005 (5)\n+6EC234   Flags               01 (1) 'Modification'\n+6EC235   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC239 CENTRAL HEADER #279   02014B50 (33639248)\n+6EC23D Created Zip Spec      14 (20) '2.0'\n+6EC23E Created OS            00 (0) 'MS-DOS'\n+6EC23F Extract Zip Spec      14 (20) '2.0'\n+6EC240 Extract OS            00 (0) 'MS-DOS'\n+6EC241 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC243 Compression Method    0000 (0) 'Stored'\n+6EC245 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC249 CRC                   00000000 (0)\n+6EC24D Compressed Size       00000000 (0)\n+6EC251 Uncompressed Size     00000000 (0)\n+6EC255 Filename Length       0046 (70)\n+6EC257 Extra Length          0009 (9)\n+6EC259 Comment Length        0000 (0)\n+6EC25B Disk Start            0000 (0)\n+6EC25D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC25F Ext File Attributes   00000000 (0)\n+6EC263 Local Header Offset   00076833 (485427)\n+6EC267 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC267: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC2AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC2AF   Length              0005 (5)\n+6EC2B1   Flags               01 (1) 'Modification'\n+6EC2B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC2B6 CENTRAL HEADER #280   02014B50 (33639248)\n+6EC2BA Created Zip Spec      14 (20) '2.0'\n+6EC2BB Created OS            00 (0) 'MS-DOS'\n+6EC2BC Extract Zip Spec      14 (20) '2.0'\n+6EC2BD Extract OS            00 (0) 'MS-DOS'\n+6EC2BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC2C0 Compression Method    0000 (0) 'Stored'\n+6EC2C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC2C6 CRC                   2E75446F (779437167)\n+6EC2CA Compressed Size       00000819 (2073)\n+6EC2CE Uncompressed Size     00000819 (2073)\n+6EC2D2 Filename Length       003F (63)\n+6EC2D4 Extra Length          0009 (9)\n+6EC2D6 Comment Length        0000 (0)\n+6EC2D8 Disk Start            0000 (0)\n+6EC2DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC2DC Ext File Attributes   00000000 (0)\n+6EC2E0 Local Header Offset   000768B0 (485552)\n+6EC2E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC2E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC323 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC325   Length              0005 (5)\n+6EC327   Flags               01 (1) 'Modification'\n+6EC328   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC32C CENTRAL HEADER #281   02014B50 (33639248)\n+6EC330 Created Zip Spec      14 (20) '2.0'\n+6EC331 Created OS            00 (0) 'MS-DOS'\n+6EC332 Extract Zip Spec      14 (20) '2.0'\n+6EC333 Extract OS            00 (0) 'MS-DOS'\n+6EC334 General Purpose Flag  0000 (0)\n+6EC336 Compression Method    0000 (0) 'Stored'\n+6EC338 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC33C CRC                   00000000 (0)\n+6EC340 Compressed Size       00000000 (0)\n+6EC344 Uncompressed Size     00000000 (0)\n+6EC348 Filename Length       0039 (57)\n+6EC34A Extra Length          0009 (9)\n+6EC34C Comment Length        0000 (0)\n+6EC34E Disk Start            0000 (0)\n+6EC350 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC352 Ext File Attributes   00000000 (0)\n+6EC356 Local Header Offset   0007713F (487743)\n+6EC35A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC35A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC393 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC395   Length              0005 (5)\n+6EC397   Flags               01 (1) 'Modification'\n+6EC398   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC39C CENTRAL HEADER #282   02014B50 (33639248)\n+6EC3A0 Created Zip Spec      14 (20) '2.0'\n+6EC3A1 Created OS            00 (0) 'MS-DOS'\n+6EC3A2 Extract Zip Spec      14 (20) '2.0'\n+6EC3A3 Extract OS            00 (0) 'MS-DOS'\n+6EC3A4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC3A6 Compression Method    0000 (0) 'Stored'\n+6EC3A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC3AC CRC                   00000000 (0)\n+6EC3B0 Compressed Size       00000000 (0)\n+6EC3B4 Uncompressed Size     00000000 (0)\n+6EC3B8 Filename Length       0047 (71)\n+6EC3BA Extra Length          0009 (9)\n+6EC3BC Comment Length        0000 (0)\n+6EC3BE Disk Start            0000 (0)\n+6EC3C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC3C2 Ext File Attributes   00000000 (0)\n+6EC3C6 Local Header Offset   0007719F (487839)\n+6EC3CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC3CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC411 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC413   Length              0005 (5)\n+6EC415   Flags               01 (1) 'Modification'\n+6EC416   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC41A CENTRAL HEADER #283   02014B50 (33639248)\n+6EC41E Created Zip Spec      14 (20) '2.0'\n+6EC41F Created OS            00 (0) 'MS-DOS'\n+6EC420 Extract Zip Spec      14 (20) '2.0'\n+6EC421 Extract OS            00 (0) 'MS-DOS'\n+6EC422 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC424 Compression Method    0000 (0) 'Stored'\n+6EC426 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC42A CRC                   2D88023E (763888190)\n+6EC42E Compressed Size       00000818 (2072)\n+6EC432 Uncompressed Size     00000818 (2072)\n+6EC436 Filename Length       0040 (64)\n+6EC438 Extra Length          0009 (9)\n+6EC43A Comment Length        0000 (0)\n+6EC43C Disk Start            0000 (0)\n+6EC43E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC440 Ext File Attributes   00000000 (0)\n+6EC444 Local Header Offset   0007721D (487965)\n+6EC448 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC448: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC488 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC48A   Length              0005 (5)\n+6EC48C   Flags               01 (1) 'Modification'\n+6EC48D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC491 CENTRAL HEADER #284   02014B50 (33639248)\n+6EC495 Created Zip Spec      14 (20) '2.0'\n+6EC496 Created OS            00 (0) 'MS-DOS'\n+6EC497 Extract Zip Spec      14 (20) '2.0'\n+6EC498 Extract OS            00 (0) 'MS-DOS'\n+6EC499 General Purpose Flag  0000 (0)\n+6EC49B Compression Method    0000 (0) 'Stored'\n+6EC49D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC4A1 CRC                   00000000 (0)\n+6EC4A5 Compressed Size       00000000 (0)\n+6EC4A9 Uncompressed Size     00000000 (0)\n+6EC4AD Filename Length       003D (61)\n+6EC4AF Extra Length          0009 (9)\n+6EC4B1 Comment Length        0000 (0)\n+6EC4B3 Disk Start            0000 (0)\n+6EC4B5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC4B7 Ext File Attributes   00000000 (0)\n+6EC4BB Local Header Offset   00077AAC (490156)\n+6EC4BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC4BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC4FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC4FE   Length              0005 (5)\n+6EC500   Flags               01 (1) 'Modification'\n+6EC501   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC505 CENTRAL HEADER #285   02014B50 (33639248)\n+6EC509 Created Zip Spec      14 (20) '2.0'\n+6EC50A Created OS            00 (0) 'MS-DOS'\n+6EC50B Extract Zip Spec      14 (20) '2.0'\n+6EC50C Extract OS            00 (0) 'MS-DOS'\n+6EC50D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC50F Compression Method    0000 (0) 'Stored'\n+6EC511 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC515 CRC                   00000000 (0)\n+6EC519 Compressed Size       00000000 (0)\n+6EC51D Uncompressed Size     00000000 (0)\n+6EC521 Filename Length       004B (75)\n+6EC523 Extra Length          0009 (9)\n+6EC525 Comment Length        0000 (0)\n+6EC527 Disk Start            0000 (0)\n+6EC529 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC52B Ext File Attributes   00000000 (0)\n+6EC52F Local Header Offset   00077B10 (490256)\n+6EC533 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC533: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC57E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC580   Length              0005 (5)\n+6EC582   Flags               01 (1) 'Modification'\n+6EC583   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC587 CENTRAL HEADER #286   02014B50 (33639248)\n+6EC58B Created Zip Spec      14 (20) '2.0'\n+6EC58C Created OS            00 (0) 'MS-DOS'\n+6EC58D Extract Zip Spec      14 (20) '2.0'\n+6EC58E Extract OS            00 (0) 'MS-DOS'\n+6EC58F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC591 Compression Method    0000 (0) 'Stored'\n+6EC593 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC597 CRC                   7063BECD (1885585101)\n+6EC59B Compressed Size       0000080C (2060)\n+6EC59F Uncompressed Size     0000080C (2060)\n+6EC5A3 Filename Length       0044 (68)\n+6EC5A5 Extra Length          0009 (9)\n+6EC5A7 Comment Length        0000 (0)\n+6EC5A9 Disk Start            0000 (0)\n+6EC5AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC5AD Ext File Attributes   00000000 (0)\n+6EC5B1 Local Header Offset   00077B92 (490386)\n+6EC5B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC5B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC5F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC5FB   Length              0005 (5)\n+6EC5FD   Flags               01 (1) 'Modification'\n+6EC5FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC602 CENTRAL HEADER #287   02014B50 (33639248)\n+6EC606 Created Zip Spec      14 (20) '2.0'\n+6EC607 Created OS            00 (0) 'MS-DOS'\n+6EC608 Extract Zip Spec      14 (20) '2.0'\n+6EC609 Extract OS            00 (0) 'MS-DOS'\n+6EC60A General Purpose Flag  0000 (0)\n+6EC60C Compression Method    0000 (0) 'Stored'\n+6EC60E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC612 CRC                   00000000 (0)\n+6EC616 Compressed Size       00000000 (0)\n+6EC61A Uncompressed Size     00000000 (0)\n+6EC61E Filename Length       0038 (56)\n+6EC620 Extra Length          0009 (9)\n+6EC622 Comment Length        0000 (0)\n+6EC624 Disk Start            0000 (0)\n+6EC626 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC628 Ext File Attributes   00000000 (0)\n+6EC62C Local Header Offset   00078419 (492569)\n+6EC630 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC630: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC668 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC66A   Length              0005 (5)\n+6EC66C   Flags               01 (1) 'Modification'\n+6EC66D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC671 CENTRAL HEADER #288   02014B50 (33639248)\n+6EC675 Created Zip Spec      14 (20) '2.0'\n+6EC676 Created OS            00 (0) 'MS-DOS'\n+6EC677 Extract Zip Spec      14 (20) '2.0'\n+6EC678 Extract OS            00 (0) 'MS-DOS'\n+6EC679 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC67B Compression Method    0000 (0) 'Stored'\n+6EC67D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC681 CRC                   00000000 (0)\n+6EC685 Compressed Size       00000000 (0)\n+6EC689 Uncompressed Size     00000000 (0)\n+6EC68D Filename Length       0046 (70)\n+6EC68F Extra Length          0009 (9)\n+6EC691 Comment Length        0000 (0)\n+6EC693 Disk Start            0000 (0)\n+6EC695 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC697 Ext File Attributes   00000000 (0)\n+6EC69B Local Header Offset   00078478 (492664)\n+6EC69F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6EC6B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6EC69F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6EC6E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6EC6E7   Length              0005 (5)\n 6EC6E9   Flags               01 (1) 'Modification'\n 6EC6EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6EC6EE CENTRAL HEADER #1239  02014B50 (33639248)\n+6EC6EE CENTRAL HEADER #289   02014B50 (33639248)\n 6EC6F2 Created Zip Spec      14 (20) '2.0'\n 6EC6F3 Created OS            00 (0) 'MS-DOS'\n 6EC6F4 Extract Zip Spec      14 (20) '2.0'\n 6EC6F5 Extract OS            00 (0) 'MS-DOS'\n-6EC6F6 General Purpose Flag  0000 (0)\n+6EC6F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n 6EC6F8 Compression Method    0000 (0) 'Stored'\n 6EC6FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC6FE CRC                   00000000 (0)\n-6EC702 Compressed Size       00000000 (0)\n-6EC706 Uncompressed Size     00000000 (0)\n-6EC70A Filename Length       001C (28)\n+6EC6FE CRC                   EA70B20B (3933254155)\n+6EC702 Compressed Size       00000802 (2050)\n+6EC706 Uncompressed Size     00000802 (2050)\n+6EC70A Filename Length       003F (63)\n 6EC70C Extra Length          0009 (9)\n 6EC70E Comment Length        0000 (0)\n 6EC710 Disk Start            0000 (0)\n 6EC712 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6EC714 Ext File Attributes   00000000 (0)\n-6EC718 Local Header Offset   00423F3A (4341562)\n-6EC71C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6EC718 Local Header Offset   000784F5 (492789)\n+6EC71C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6EC71C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6EC71C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6EC738 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC73A   Length              0005 (5)\n-6EC73C   Flags               01 (1) 'Modification'\n-6EC73D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC741 CENTRAL HEADER #1240  02014B50 (33639248)\n-6EC745 Created Zip Spec      14 (20) '2.0'\n-6EC746 Created OS            00 (0) 'MS-DOS'\n-6EC747 Extract Zip Spec      14 (20) '2.0'\n-6EC748 Extract OS            00 (0) 'MS-DOS'\n-6EC749 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC74B Compression Method    0000 (0) 'Stored'\n-6EC74D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC751 CRC                   FA05AB13 (4194675475)\n-6EC755 Compressed Size       00000B10 (2832)\n-6EC759 Uncompressed Size     00000B10 (2832)\n-6EC75D Filename Length       0034 (52)\n-6EC75F Extra Length          0009 (9)\n-6EC761 Comment Length        0000 (0)\n-6EC763 Disk Start            0000 (0)\n-6EC765 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC767 Ext File Attributes   00000000 (0)\n-6EC76B Local Header Offset   00423F7D (4341629)\n-6EC76F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC76F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC7A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC7A5   Length              0005 (5)\n-6EC7A7   Flags               01 (1) 'Modification'\n-6EC7A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC7AC CENTRAL HEADER #1241  02014B50 (33639248)\n-6EC7B0 Created Zip Spec      14 (20) '2.0'\n-6EC7B1 Created OS            00 (0) 'MS-DOS'\n-6EC7B2 Extract Zip Spec      14 (20) '2.0'\n-6EC7B3 Extract OS            00 (0) 'MS-DOS'\n-6EC7B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC7B6 Compression Method    0000 (0) 'Stored'\n-6EC7B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC7BC CRC                   4A88912B (1250464043)\n-6EC7C0 Compressed Size       00001A65 (6757)\n-6EC7C4 Uncompressed Size     00001A65 (6757)\n-6EC7C8 Filename Length       0033 (51)\n-6EC7CA Extra Length          0009 (9)\n-6EC7CC Comment Length        0000 (0)\n-6EC7CE Disk Start            0000 (0)\n-6EC7D0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC7D2 Ext File Attributes   00000000 (0)\n-6EC7D6 Local Header Offset   00424AF8 (4344568)\n-6EC7DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC7DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC80D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC80F   Length              0005 (5)\n-6EC811   Flags               01 (1) 'Modification'\n-6EC812   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC816 CENTRAL HEADER #1242  02014B50 (33639248)\n-6EC81A Created Zip Spec      14 (20) '2.0'\n-6EC81B Created OS            00 (0) 'MS-DOS'\n-6EC81C Extract Zip Spec      14 (20) '2.0'\n-6EC81D Extract OS            00 (0) 'MS-DOS'\n-6EC81E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC820 Compression Method    0000 (0) 'Stored'\n-6EC822 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC826 CRC                   0FA20D48 (262278472)\n-6EC82A Compressed Size       000006EF (1775)\n-6EC82E Uncompressed Size     000006EF (1775)\n-6EC832 Filename Length       0035 (53)\n-6EC834 Extra Length          0009 (9)\n-6EC836 Comment Length        0000 (0)\n-6EC838 Disk Start            0000 (0)\n-6EC83A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC83C Ext File Attributes   00000000 (0)\n-6EC840 Local Header Offset   004265C7 (4351431)\n-6EC844 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC844: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC879 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC87B   Length              0005 (5)\n-6EC87D   Flags               01 (1) 'Modification'\n-6EC87E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC882 CENTRAL HEADER #1243  02014B50 (33639248)\n-6EC886 Created Zip Spec      14 (20) '2.0'\n-6EC887 Created OS            00 (0) 'MS-DOS'\n-6EC888 Extract Zip Spec      14 (20) '2.0'\n-6EC889 Extract OS            00 (0) 'MS-DOS'\n-6EC88A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC88C Compression Method    0000 (0) 'Stored'\n-6EC88E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC892 CRC                   27D9ECF0 (668593392)\n-6EC896 Compressed Size       00002AD5 (10965)\n-6EC89A Uncompressed Size     00002AD5 (10965)\n-6EC89E Filename Length       0034 (52)\n-6EC8A0 Extra Length          0009 (9)\n-6EC8A2 Comment Length        0000 (0)\n-6EC8A4 Disk Start            0000 (0)\n-6EC8A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC8A8 Ext File Attributes   00000000 (0)\n-6EC8AC Local Header Offset   00426D22 (4353314)\n-6EC8B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC8B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC8E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC8E6   Length              0005 (5)\n-6EC8E8   Flags               01 (1) 'Modification'\n-6EC8E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC8ED CENTRAL HEADER #1244  02014B50 (33639248)\n-6EC8F1 Created Zip Spec      14 (20) '2.0'\n-6EC8F2 Created OS            00 (0) 'MS-DOS'\n-6EC8F3 Extract Zip Spec      14 (20) '2.0'\n-6EC8F4 Extract OS            00 (0) 'MS-DOS'\n-6EC8F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC8F7 Compression Method    0000 (0) 'Stored'\n-6EC8F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC8FD CRC                   540DE20D (1410195981)\n-6EC901 Compressed Size       00001A1C (6684)\n-6EC905 Uncompressed Size     00001A1C (6684)\n-6EC909 Filename Length       0032 (50)\n-6EC90B Extra Length          0009 (9)\n-6EC90D Comment Length        0000 (0)\n-6EC90F Disk Start            0000 (0)\n-6EC911 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC913 Ext File Attributes   00000000 (0)\n-6EC917 Local Header Offset   00429862 (4364386)\n-6EC91B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC91B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC94D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC94F   Length              0005 (5)\n-6EC951   Flags               01 (1) 'Modification'\n-6EC952   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC956 CENTRAL HEADER #1245  02014B50 (33639248)\n-6EC95A Created Zip Spec      14 (20) '2.0'\n-6EC95B Created OS            00 (0) 'MS-DOS'\n-6EC95C Extract Zip Spec      14 (20) '2.0'\n-6EC95D Extract OS            00 (0) 'MS-DOS'\n-6EC95E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC960 Compression Method    0000 (0) 'Stored'\n-6EC962 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC966 CRC                   256F6EAD (628059821)\n-6EC96A Compressed Size       00000F7C (3964)\n-6EC96E Uncompressed Size     00000F7C (3964)\n-6EC972 Filename Length       0031 (49)\n-6EC974 Extra Length          0009 (9)\n-6EC976 Comment Length        0000 (0)\n-6EC978 Disk Start            0000 (0)\n-6EC97A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC97C Ext File Attributes   00000000 (0)\n-6EC980 Local Header Offset   0042B2E7 (4371175)\n-6EC984 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC984: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EC9B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EC9B7   Length              0005 (5)\n-6EC9B9   Flags               01 (1) 'Modification'\n-6EC9BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EC9BE CENTRAL HEADER #1246  02014B50 (33639248)\n-6EC9C2 Created Zip Spec      14 (20) '2.0'\n-6EC9C3 Created OS            00 (0) 'MS-DOS'\n-6EC9C4 Extract Zip Spec      14 (20) '2.0'\n-6EC9C5 Extract OS            00 (0) 'MS-DOS'\n-6EC9C6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EC9C8 Compression Method    0000 (0) 'Stored'\n-6EC9CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EC9CE CRC                   41EC82BB (1106019003)\n-6EC9D2 Compressed Size       00000F05 (3845)\n-6EC9D6 Uncompressed Size     00000F05 (3845)\n-6EC9DA Filename Length       0032 (50)\n-6EC9DC Extra Length          0009 (9)\n-6EC9DE Comment Length        0000 (0)\n-6EC9E0 Disk Start            0000 (0)\n-6EC9E2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EC9E4 Ext File Attributes   00000000 (0)\n-6EC9E8 Local Header Offset   0042C2CB (4375243)\n-6EC9EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EC9EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECA1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECA20   Length              0005 (5)\n-6ECA22   Flags               01 (1) 'Modification'\n-6ECA23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECA27 CENTRAL HEADER #1247  02014B50 (33639248)\n-6ECA2B Created Zip Spec      14 (20) '2.0'\n-6ECA2C Created OS            00 (0) 'MS-DOS'\n-6ECA2D Extract Zip Spec      14 (20) '2.0'\n-6ECA2E Extract OS            00 (0) 'MS-DOS'\n-6ECA2F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECA31 Compression Method    0000 (0) 'Stored'\n-6ECA33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECA37 CRC                   C71A64BF (3340395711)\n-6ECA3B Compressed Size       00000AD7 (2775)\n-6ECA3F Uncompressed Size     00000AD7 (2775)\n-6ECA43 Filename Length       0034 (52)\n-6ECA45 Extra Length          0009 (9)\n-6ECA47 Comment Length        0000 (0)\n-6ECA49 Disk Start            0000 (0)\n-6ECA4B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECA4D Ext File Attributes   00000000 (0)\n-6ECA51 Local Header Offset   0042D239 (4379193)\n-6ECA55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECA55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECA89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECA8B   Length              0005 (5)\n-6ECA8D   Flags               01 (1) 'Modification'\n-6ECA8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECA92 CENTRAL HEADER #1248  02014B50 (33639248)\n-6ECA96 Created Zip Spec      14 (20) '2.0'\n-6ECA97 Created OS            00 (0) 'MS-DOS'\n-6ECA98 Extract Zip Spec      14 (20) '2.0'\n-6ECA99 Extract OS            00 (0) 'MS-DOS'\n-6ECA9A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECA9C Compression Method    0000 (0) 'Stored'\n-6ECA9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECAA2 CRC                   ED50455A (3981460826)\n-6ECAA6 Compressed Size       00000A88 (2696)\n-6ECAAA Uncompressed Size     00000A88 (2696)\n-6ECAAE Filename Length       0036 (54)\n-6ECAB0 Extra Length          0009 (9)\n-6ECAB2 Comment Length        0000 (0)\n-6ECAB4 Disk Start            0000 (0)\n-6ECAB6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECAB8 Ext File Attributes   00000000 (0)\n-6ECABC Local Header Offset   0042DD7B (4382075)\n-6ECAC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECAC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECAF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECAF8   Length              0005 (5)\n-6ECAFA   Flags               01 (1) 'Modification'\n-6ECAFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECAFF CENTRAL HEADER #1249  02014B50 (33639248)\n-6ECB03 Created Zip Spec      14 (20) '2.0'\n-6ECB04 Created OS            00 (0) 'MS-DOS'\n-6ECB05 Extract Zip Spec      14 (20) '2.0'\n-6ECB06 Extract OS            00 (0) 'MS-DOS'\n-6ECB07 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECB09 Compression Method    0000 (0) 'Stored'\n-6ECB0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECB0F CRC                   BA485F30 (3125305136)\n-6ECB13 Compressed Size       00000FBB (4027)\n-6ECB17 Uncompressed Size     00000FBB (4027)\n-6ECB1B Filename Length       0033 (51)\n-6ECB1D Extra Length          0009 (9)\n-6ECB1F Comment Length        0000 (0)\n-6ECB21 Disk Start            0000 (0)\n-6ECB23 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECB25 Ext File Attributes   00000000 (0)\n-6ECB29 Local Header Offset   0042E870 (4384880)\n-6ECB2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECB2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECB60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECB62   Length              0005 (5)\n-6ECB64   Flags               01 (1) 'Modification'\n-6ECB65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECB69 CENTRAL HEADER #1250  02014B50 (33639248)\n-6ECB6D Created Zip Spec      14 (20) '2.0'\n-6ECB6E Created OS            00 (0) 'MS-DOS'\n-6ECB6F Extract Zip Spec      14 (20) '2.0'\n-6ECB70 Extract OS            00 (0) 'MS-DOS'\n-6ECB71 General Purpose Flag  0000 (0)\n-6ECB73 Compression Method    0000 (0) 'Stored'\n-6ECB75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECB79 CRC                   00000000 (0)\n-6ECB7D Compressed Size       00000000 (0)\n-6ECB81 Uncompressed Size     00000000 (0)\n-6ECB85 Filename Length       001E (30)\n-6ECB87 Extra Length          0009 (9)\n-6ECB89 Comment Length        0000 (0)\n-6ECB8B Disk Start            0000 (0)\n-6ECB8D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECB8F Ext File Attributes   00000000 (0)\n-6ECB93 Local Header Offset   0042F895 (4389013)\n-6ECB97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECB97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECBB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECBB7   Length              0005 (5)\n-6ECBB9   Flags               01 (1) 'Modification'\n-6ECBBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECBBE CENTRAL HEADER #1251  02014B50 (33639248)\n-6ECBC2 Created Zip Spec      14 (20) '2.0'\n-6ECBC3 Created OS            00 (0) 'MS-DOS'\n-6ECBC4 Extract Zip Spec      14 (20) '2.0'\n-6ECBC5 Extract OS            00 (0) 'MS-DOS'\n-6ECBC6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECBC8 Compression Method    0000 (0) 'Stored'\n-6ECBCA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECBCE CRC                   72812E46 (1921068614)\n-6ECBD2 Compressed Size       000010D3 (4307)\n-6ECBD6 Uncompressed Size     000010D3 (4307)\n-6ECBDA Filename Length       0035 (53)\n-6ECBDC Extra Length          0009 (9)\n-6ECBDE Comment Length        0000 (0)\n-6ECBE0 Disk Start            0000 (0)\n-6ECBE2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECBE4 Ext File Attributes   00000000 (0)\n-6ECBE8 Local Header Offset   0042F8DA (4389082)\n-6ECBEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECBEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECC21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECC23   Length              0005 (5)\n-6ECC25   Flags               01 (1) 'Modification'\n-6ECC26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECC2A CENTRAL HEADER #1252  02014B50 (33639248)\n-6ECC2E Created Zip Spec      14 (20) '2.0'\n-6ECC2F Created OS            00 (0) 'MS-DOS'\n-6ECC30 Extract Zip Spec      14 (20) '2.0'\n-6ECC31 Extract OS            00 (0) 'MS-DOS'\n-6ECC32 General Purpose Flag  0000 (0)\n-6ECC34 Compression Method    0000 (0) 'Stored'\n-6ECC36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECC3A CRC                   00000000 (0)\n-6ECC3E Compressed Size       00000000 (0)\n-6ECC42 Uncompressed Size     00000000 (0)\n-6ECC46 Filename Length       001C (28)\n-6ECC48 Extra Length          0009 (9)\n-6ECC4A Comment Length        0000 (0)\n-6ECC4C Disk Start            0000 (0)\n-6ECC4E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECC50 Ext File Attributes   00000000 (0)\n-6ECC54 Local Header Offset   00430A19 (4393497)\n-6ECC58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECC58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECC74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECC76   Length              0005 (5)\n-6ECC78   Flags               01 (1) 'Modification'\n-6ECC79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECC7D CENTRAL HEADER #1253  02014B50 (33639248)\n-6ECC81 Created Zip Spec      14 (20) '2.0'\n-6ECC82 Created OS            00 (0) 'MS-DOS'\n-6ECC83 Extract Zip Spec      14 (20) '2.0'\n-6ECC84 Extract OS            00 (0) 'MS-DOS'\n-6ECC85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECC87 Compression Method    0000 (0) 'Stored'\n-6ECC89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECC8D CRC                   4C3B1439 (1278940217)\n-6ECC91 Compressed Size       000004E5 (1253)\n-6ECC95 Uncompressed Size     000004E5 (1253)\n-6ECC99 Filename Length       002A (42)\n-6ECC9B Extra Length          0009 (9)\n-6ECC9D Comment Length        0000 (0)\n-6ECC9F Disk Start            0000 (0)\n-6ECCA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECCA3 Ext File Attributes   00000000 (0)\n-6ECCA7 Local Header Offset   00430A5C (4393564)\n-6ECCAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECCAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECCD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECCD7   Length              0005 (5)\n-6ECCD9   Flags               01 (1) 'Modification'\n-6ECCDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECCDE CENTRAL HEADER #1254  02014B50 (33639248)\n-6ECCE2 Created Zip Spec      14 (20) '2.0'\n-6ECCE3 Created OS            00 (0) 'MS-DOS'\n-6ECCE4 Extract Zip Spec      14 (20) '2.0'\n-6ECCE5 Extract OS            00 (0) 'MS-DOS'\n-6ECCE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECCE8 Compression Method    0000 (0) 'Stored'\n-6ECCEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECCEE CRC                   0C035F96 (201547670)\n-6ECCF2 Compressed Size       000011CA (4554)\n-6ECCF6 Uncompressed Size     000011CA (4554)\n-6ECCFA Filename Length       0027 (39)\n-6ECCFC Extra Length          0009 (9)\n-6ECCFE Comment Length        0000 (0)\n-6ECD00 Disk Start            0000 (0)\n-6ECD02 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECD04 Ext File Attributes   00000000 (0)\n-6ECD08 Local Header Offset   00430FA2 (4394914)\n-6ECD0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECD0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECD33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECD35   Length              0005 (5)\n-6ECD37   Flags               01 (1) 'Modification'\n-6ECD38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECD3C CENTRAL HEADER #1255  02014B50 (33639248)\n-6ECD40 Created Zip Spec      14 (20) '2.0'\n-6ECD41 Created OS            00 (0) 'MS-DOS'\n-6ECD42 Extract Zip Spec      14 (20) '2.0'\n-6ECD43 Extract OS            00 (0) 'MS-DOS'\n-6ECD44 General Purpose Flag  0000 (0)\n-6ECD46 Compression Method    0000 (0) 'Stored'\n-6ECD48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECD4C CRC                   00000000 (0)\n-6ECD50 Compressed Size       00000000 (0)\n-6ECD54 Uncompressed Size     00000000 (0)\n-6ECD58 Filename Length       0024 (36)\n-6ECD5A Extra Length          0009 (9)\n-6ECD5C Comment Length        0000 (0)\n-6ECD5E Disk Start            0000 (0)\n-6ECD60 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECD62 Ext File Attributes   00000000 (0)\n-6ECD66 Local Header Offset   004321CA (4399562)\n-6ECD6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECD6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECD8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECD90   Length              0005 (5)\n-6ECD92   Flags               01 (1) 'Modification'\n-6ECD93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECD97 CENTRAL HEADER #1256  02014B50 (33639248)\n-6ECD9B Created Zip Spec      14 (20) '2.0'\n-6ECD9C Created OS            00 (0) 'MS-DOS'\n-6ECD9D Extract Zip Spec      14 (20) '2.0'\n-6ECD9E Extract OS            00 (0) 'MS-DOS'\n-6ECD9F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECDA1 Compression Method    0000 (0) 'Stored'\n-6ECDA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECDA7 CRC                   5688E99A (1451813274)\n-6ECDAB Compressed Size       00001436 (5174)\n-6ECDAF Uncompressed Size     00001436 (5174)\n-6ECDB3 Filename Length       003B (59)\n-6ECDB5 Extra Length          0009 (9)\n-6ECDB7 Comment Length        0000 (0)\n-6ECDB9 Disk Start            0000 (0)\n-6ECDBB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECDBD Ext File Attributes   00000000 (0)\n-6ECDC1 Local Header Offset   00432215 (4399637)\n-6ECDC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECDC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECE00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECE02   Length              0005 (5)\n-6ECE04   Flags               01 (1) 'Modification'\n-6ECE05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECE09 CENTRAL HEADER #1257  02014B50 (33639248)\n-6ECE0D Created Zip Spec      14 (20) '2.0'\n-6ECE0E Created OS            00 (0) 'MS-DOS'\n-6ECE0F Extract Zip Spec      14 (20) '2.0'\n-6ECE10 Extract OS            00 (0) 'MS-DOS'\n-6ECE11 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECE13 Compression Method    0000 (0) 'Stored'\n-6ECE15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECE19 CRC                   DA916F8A (3666964362)\n-6ECE1D Compressed Size       000007A1 (1953)\n-6ECE21 Uncompressed Size     000007A1 (1953)\n-6ECE25 Filename Length       003F (63)\n-6ECE27 Extra Length          0009 (9)\n-6ECE29 Comment Length        0000 (0)\n-6ECE2B Disk Start            0000 (0)\n-6ECE2D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECE2F Ext File Attributes   00000000 (0)\n-6ECE33 Local Header Offset   004336BD (4404925)\n-6ECE37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECE37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECE76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECE78   Length              0005 (5)\n-6ECE7A   Flags               01 (1) 'Modification'\n-6ECE7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECE7F CENTRAL HEADER #1258  02014B50 (33639248)\n-6ECE83 Created Zip Spec      14 (20) '2.0'\n-6ECE84 Created OS            00 (0) 'MS-DOS'\n-6ECE85 Extract Zip Spec      14 (20) '2.0'\n-6ECE86 Extract OS            00 (0) 'MS-DOS'\n-6ECE87 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECE89 Compression Method    0000 (0) 'Stored'\n-6ECE8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECE8F CRC                   1CB52B1D (481635101)\n-6ECE93 Compressed Size       0000100F (4111)\n-6ECE97 Uncompressed Size     0000100F (4111)\n-6ECE9B Filename Length       003A (58)\n-6ECE9D Extra Length          0009 (9)\n-6ECE9F Comment Length        0000 (0)\n-6ECEA1 Disk Start            0000 (0)\n-6ECEA3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECEA5 Ext File Attributes   00000000 (0)\n-6ECEA9 Local Header Offset   00433ED4 (4406996)\n-6ECEAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECEAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECEE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECEE9   Length              0005 (5)\n-6ECEEB   Flags               01 (1) 'Modification'\n-6ECEEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECEF0 CENTRAL HEADER #1259  02014B50 (33639248)\n-6ECEF4 Created Zip Spec      14 (20) '2.0'\n-6ECEF5 Created OS            00 (0) 'MS-DOS'\n-6ECEF6 Extract Zip Spec      14 (20) '2.0'\n-6ECEF7 Extract OS            00 (0) 'MS-DOS'\n-6ECEF8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECEFA Compression Method    0000 (0) 'Stored'\n-6ECEFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECF00 CRC                   B7AE5AFA (3081657082)\n-6ECF04 Compressed Size       000006EA (1770)\n-6ECF08 Uncompressed Size     000006EA (1770)\n-6ECF0C Filename Length       003F (63)\n-6ECF0E Extra Length          0009 (9)\n-6ECF10 Comment Length        0000 (0)\n-6ECF12 Disk Start            0000 (0)\n-6ECF14 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECF16 Ext File Attributes   00000000 (0)\n-6ECF1A Local Header Offset   00434F54 (4411220)\n-6ECF1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECF1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECF5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECF5F   Length              0005 (5)\n-6ECF61   Flags               01 (1) 'Modification'\n-6ECF62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECF66 CENTRAL HEADER #1260  02014B50 (33639248)\n-6ECF6A Created Zip Spec      14 (20) '2.0'\n-6ECF6B Created OS            00 (0) 'MS-DOS'\n-6ECF6C Extract Zip Spec      14 (20) '2.0'\n-6ECF6D Extract OS            00 (0) 'MS-DOS'\n-6ECF6E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ECF70 Compression Method    0000 (0) 'Stored'\n-6ECF72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECF76 CRC                   D392C9E8 (3549612520)\n-6ECF7A Compressed Size       00000C81 (3201)\n-6ECF7E Uncompressed Size     00000C81 (3201)\n-6ECF82 Filename Length       003D (61)\n-6ECF84 Extra Length          0009 (9)\n-6ECF86 Comment Length        0000 (0)\n-6ECF88 Disk Start            0000 (0)\n-6ECF8A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ECF8C Ext File Attributes   00000000 (0)\n-6ECF90 Local Header Offset   004356B4 (4413108)\n-6ECF94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ECF94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ECFD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ECFD3   Length              0005 (5)\n-6ECFD5   Flags               01 (1) 'Modification'\n-6ECFD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ECFDA CENTRAL HEADER #1261  02014B50 (33639248)\n-6ECFDE Created Zip Spec      14 (20) '2.0'\n-6ECFDF Created OS            00 (0) 'MS-DOS'\n-6ECFE0 Extract Zip Spec      14 (20) '2.0'\n-6ECFE1 Extract OS            00 (0) 'MS-DOS'\n-6ECFE2 General Purpose Flag  0000 (0)\n-6ECFE4 Compression Method    0000 (0) 'Stored'\n-6ECFE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ECFEA CRC                   00000000 (0)\n-6ECFEE Compressed Size       00000000 (0)\n-6ECFF2 Uncompressed Size     00000000 (0)\n-6ECFF6 Filename Length       001C (28)\n-6ECFF8 Extra Length          0009 (9)\n-6ECFFA Comment Length        0000 (0)\n-6ECFFC Disk Start            0000 (0)\n-6ECFFE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED000 Ext File Attributes   00000000 (0)\n-6ED004 Local Header Offset   004363A9 (4416425)\n-6ED008 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED008: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED024 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED026   Length              0005 (5)\n-6ED028   Flags               01 (1) 'Modification'\n-6ED029   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED02D CENTRAL HEADER #1262  02014B50 (33639248)\n-6ED031 Created Zip Spec      14 (20) '2.0'\n-6ED032 Created OS            00 (0) 'MS-DOS'\n-6ED033 Extract Zip Spec      14 (20) '2.0'\n-6ED034 Extract OS            00 (0) 'MS-DOS'\n-6ED035 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED037 Compression Method    0000 (0) 'Stored'\n-6ED039 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED03D CRC                   2AA01116 (715133206)\n-6ED041 Compressed Size       000003D7 (983)\n-6ED045 Uncompressed Size     000003D7 (983)\n-6ED049 Filename Length       002B (43)\n-6ED04B Extra Length          0009 (9)\n-6ED04D Comment Length        0000 (0)\n-6ED04F Disk Start            0000 (0)\n-6ED051 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED053 Ext File Attributes   00000000 (0)\n-6ED057 Local Header Offset   004363EC (4416492)\n-6ED05B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED05B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED086 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED088   Length              0005 (5)\n-6ED08A   Flags               01 (1) 'Modification'\n-6ED08B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED08F CENTRAL HEADER #1263  02014B50 (33639248)\n-6ED093 Created Zip Spec      14 (20) '2.0'\n-6ED094 Created OS            00 (0) 'MS-DOS'\n-6ED095 Extract Zip Spec      14 (20) '2.0'\n-6ED096 Extract OS            00 (0) 'MS-DOS'\n-6ED097 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED099 Compression Method    0000 (0) 'Stored'\n-6ED09B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED09F CRC                   70DD7BE1 (1893563361)\n-6ED0A3 Compressed Size       00000AAE (2734)\n-6ED0A7 Uncompressed Size     00000AAE (2734)\n-6ED0AB Filename Length       0024 (36)\n-6ED0AD Extra Length          0009 (9)\n-6ED0AF Comment Length        0000 (0)\n-6ED0B1 Disk Start            0000 (0)\n-6ED0B3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED0B5 Ext File Attributes   00000000 (0)\n-6ED0B9 Local Header Offset   00436825 (4417573)\n-6ED0BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED0BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED0E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED0E3   Length              0005 (5)\n-6ED0E5   Flags               01 (1) 'Modification'\n-6ED0E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED0EA CENTRAL HEADER #1264  02014B50 (33639248)\n-6ED0EE Created Zip Spec      14 (20) '2.0'\n-6ED0EF Created OS            00 (0) 'MS-DOS'\n-6ED0F0 Extract Zip Spec      14 (20) '2.0'\n-6ED0F1 Extract OS            00 (0) 'MS-DOS'\n-6ED0F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED0F4 Compression Method    0000 (0) 'Stored'\n-6ED0F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED0FA CRC                   725BA0A7 (1918607527)\n-6ED0FE Compressed Size       000008DD (2269)\n-6ED102 Uncompressed Size     000008DD (2269)\n-6ED106 Filename Length       0028 (40)\n-6ED108 Extra Length          0009 (9)\n-6ED10A Comment Length        0000 (0)\n-6ED10C Disk Start            0000 (0)\n-6ED10E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED110 Ext File Attributes   00000000 (0)\n-6ED114 Local Header Offset   0043732E (4420398)\n-6ED118 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED118: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED140 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED142   Length              0005 (5)\n-6ED144   Flags               01 (1) 'Modification'\n-6ED145   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED149 CENTRAL HEADER #1265  02014B50 (33639248)\n-6ED14D Created Zip Spec      14 (20) '2.0'\n-6ED14E Created OS            00 (0) 'MS-DOS'\n-6ED14F Extract Zip Spec      14 (20) '2.0'\n-6ED150 Extract OS            00 (0) 'MS-DOS'\n-6ED151 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED153 Compression Method    0000 (0) 'Stored'\n-6ED155 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED159 CRC                   353D3BE5 (893205477)\n-6ED15D Compressed Size       00003D01 (15617)\n-6ED161 Uncompressed Size     00003D01 (15617)\n-6ED165 Filename Length       0027 (39)\n-6ED167 Extra Length          0009 (9)\n-6ED169 Comment Length        0000 (0)\n-6ED16B Disk Start            0000 (0)\n-6ED16D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED16F Ext File Attributes   00000000 (0)\n-6ED173 Local Header Offset   00437C6A (4422762)\n-6ED177 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED177: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED19E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED1A0   Length              0005 (5)\n-6ED1A2   Flags               01 (1) 'Modification'\n-6ED1A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED1A7 CENTRAL HEADER #1266  02014B50 (33639248)\n-6ED1AB Created Zip Spec      14 (20) '2.0'\n-6ED1AC Created OS            00 (0) 'MS-DOS'\n-6ED1AD Extract Zip Spec      14 (20) '2.0'\n-6ED1AE Extract OS            00 (0) 'MS-DOS'\n-6ED1AF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED1B1 Compression Method    0000 (0) 'Stored'\n-6ED1B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED1B7 CRC                   1DFA3CFF (502938879)\n-6ED1BB Compressed Size       00001CCE (7374)\n-6ED1BF Uncompressed Size     00001CCE (7374)\n-6ED1C3 Filename Length       0026 (38)\n-6ED1C5 Extra Length          0009 (9)\n-6ED1C7 Comment Length        0000 (0)\n-6ED1C9 Disk Start            0000 (0)\n-6ED1CB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED1CD Ext File Attributes   00000000 (0)\n-6ED1D1 Local Header Offset   0043B9C9 (4438473)\n-6ED1D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED1D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED1FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED1FD   Length              0005 (5)\n-6ED1FF   Flags               01 (1) 'Modification'\n-6ED200   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED204 CENTRAL HEADER #1267  02014B50 (33639248)\n-6ED208 Created Zip Spec      14 (20) '2.0'\n-6ED209 Created OS            00 (0) 'MS-DOS'\n-6ED20A Extract Zip Spec      14 (20) '2.0'\n-6ED20B Extract OS            00 (0) 'MS-DOS'\n-6ED20C General Purpose Flag  0000 (0)\n-6ED20E Compression Method    0000 (0) 'Stored'\n-6ED210 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED214 CRC                   00000000 (0)\n-6ED218 Compressed Size       00000000 (0)\n-6ED21C Uncompressed Size     00000000 (0)\n-6ED220 Filename Length       001A (26)\n-6ED222 Extra Length          0009 (9)\n-6ED224 Comment Length        0000 (0)\n-6ED226 Disk Start            0000 (0)\n-6ED228 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED22A Ext File Attributes   00000000 (0)\n-6ED22E Local Header Offset   0043D6F4 (4445940)\n-6ED232 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED232: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED24C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED24E   Length              0005 (5)\n-6ED250   Flags               01 (1) 'Modification'\n-6ED251   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED255 CENTRAL HEADER #1268  02014B50 (33639248)\n-6ED259 Created Zip Spec      14 (20) '2.0'\n-6ED25A Created OS            00 (0) 'MS-DOS'\n-6ED25B Extract Zip Spec      14 (20) '2.0'\n-6ED25C Extract OS            00 (0) 'MS-DOS'\n-6ED25D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED25F Compression Method    0000 (0) 'Stored'\n-6ED261 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED265 CRC                   D4B8B1A6 (3568873894)\n-6ED269 Compressed Size       00000520 (1312)\n-6ED26D Uncompressed Size     00000520 (1312)\n-6ED271 Filename Length       002E (46)\n-6ED273 Extra Length          0009 (9)\n-6ED275 Comment Length        0000 (0)\n-6ED277 Disk Start            0000 (0)\n-6ED279 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED27B Ext File Attributes   00000000 (0)\n-6ED27F Local Header Offset   0043D735 (4446005)\n-6ED283 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED283: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED2B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED2B3   Length              0005 (5)\n-6ED2B5   Flags               01 (1) 'Modification'\n-6ED2B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED2BA CENTRAL HEADER #1269  02014B50 (33639248)\n-6ED2BE Created Zip Spec      14 (20) '2.0'\n-6ED2BF Created OS            00 (0) 'MS-DOS'\n-6ED2C0 Extract Zip Spec      14 (20) '2.0'\n-6ED2C1 Extract OS            00 (0) 'MS-DOS'\n-6ED2C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED2C4 Compression Method    0000 (0) 'Stored'\n-6ED2C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED2CA CRC                   9303661A (2466473498)\n-6ED2CE Compressed Size       00000A6D (2669)\n-6ED2D2 Uncompressed Size     00000A6D (2669)\n-6ED2D6 Filename Length       0028 (40)\n-6ED2D8 Extra Length          0009 (9)\n-6ED2DA Comment Length        0000 (0)\n-6ED2DC Disk Start            0000 (0)\n-6ED2DE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED2E0 Ext File Attributes   00000000 (0)\n-6ED2E4 Local Header Offset   0043DCBA (4447418)\n-6ED2E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED2E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED310 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED312   Length              0005 (5)\n-6ED314   Flags               01 (1) 'Modification'\n-6ED315   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED319 CENTRAL HEADER #1270  02014B50 (33639248)\n-6ED31D Created Zip Spec      14 (20) '2.0'\n-6ED31E Created OS            00 (0) 'MS-DOS'\n-6ED31F Extract Zip Spec      14 (20) '2.0'\n-6ED320 Extract OS            00 (0) 'MS-DOS'\n-6ED321 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED323 Compression Method    0000 (0) 'Stored'\n-6ED325 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED329 CRC                   8391A9ED (2207361517)\n-6ED32D Compressed Size       00001419 (5145)\n-6ED331 Uncompressed Size     00001419 (5145)\n-6ED335 Filename Length       0036 (54)\n-6ED337 Extra Length          0009 (9)\n-6ED339 Comment Length        0000 (0)\n-6ED33B Disk Start            0000 (0)\n-6ED33D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED33F Ext File Attributes   00000000 (0)\n-6ED343 Local Header Offset   0043E786 (4450182)\n-6ED347 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED347: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED37D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED37F   Length              0005 (5)\n-6ED381   Flags               01 (1) 'Modification'\n-6ED382   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED386 CENTRAL HEADER #1271  02014B50 (33639248)\n-6ED38A Created Zip Spec      14 (20) '2.0'\n-6ED38B Created OS            00 (0) 'MS-DOS'\n-6ED38C Extract Zip Spec      14 (20) '2.0'\n-6ED38D Extract OS            00 (0) 'MS-DOS'\n-6ED38E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED390 Compression Method    0000 (0) 'Stored'\n-6ED392 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED396 CRC                   4C19B653 (1276753491)\n-6ED39A Compressed Size       00000A34 (2612)\n-6ED39E Uncompressed Size     00000A34 (2612)\n-6ED3A2 Filename Length       002D (45)\n-6ED3A4 Extra Length          0009 (9)\n-6ED3A6 Comment Length        0000 (0)\n-6ED3A8 Disk Start            0000 (0)\n-6ED3AA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED3AC Ext File Attributes   00000000 (0)\n-6ED3B0 Local Header Offset   0043FC0C (4455436)\n-6ED3B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED3B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED3E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED3E3   Length              0005 (5)\n-6ED3E5   Flags               01 (1) 'Modification'\n-6ED3E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED3EA CENTRAL HEADER #1272  02014B50 (33639248)\n-6ED3EE Created Zip Spec      14 (20) '2.0'\n-6ED3EF Created OS            00 (0) 'MS-DOS'\n-6ED3F0 Extract Zip Spec      14 (20) '2.0'\n-6ED3F1 Extract OS            00 (0) 'MS-DOS'\n-6ED3F2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED3F4 Compression Method    0000 (0) 'Stored'\n-6ED3F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED3FA CRC                   92D33C56 (2463317078)\n-6ED3FE Compressed Size       0000053A (1338)\n-6ED402 Uncompressed Size     0000053A (1338)\n-6ED406 Filename Length       0027 (39)\n-6ED408 Extra Length          0009 (9)\n-6ED40A Comment Length        0000 (0)\n-6ED40C Disk Start            0000 (0)\n-6ED40E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED410 Ext File Attributes   00000000 (0)\n-6ED414 Local Header Offset   004406A4 (4458148)\n-6ED418 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED418: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED43F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED441   Length              0005 (5)\n-6ED443   Flags               01 (1) 'Modification'\n-6ED444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED448 CENTRAL HEADER #1273  02014B50 (33639248)\n-6ED44C Created Zip Spec      14 (20) '2.0'\n-6ED44D Created OS            00 (0) 'MS-DOS'\n-6ED44E Extract Zip Spec      14 (20) '2.0'\n-6ED44F Extract OS            00 (0) 'MS-DOS'\n-6ED450 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED452 Compression Method    0000 (0) 'Stored'\n-6ED454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED458 CRC                   8AC6D7E1 (2328287201)\n-6ED45C Compressed Size       000007D3 (2003)\n-6ED460 Uncompressed Size     000007D3 (2003)\n-6ED464 Filename Length       002E (46)\n-6ED466 Extra Length          0009 (9)\n-6ED468 Comment Length        0000 (0)\n-6ED46A Disk Start            0000 (0)\n-6ED46C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED46E Ext File Attributes   00000000 (0)\n-6ED472 Local Header Offset   00440C3C (4459580)\n-6ED476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED4A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED4A6   Length              0005 (5)\n-6ED4A8   Flags               01 (1) 'Modification'\n-6ED4A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED4AD CENTRAL HEADER #1274  02014B50 (33639248)\n-6ED4B1 Created Zip Spec      14 (20) '2.0'\n-6ED4B2 Created OS            00 (0) 'MS-DOS'\n-6ED4B3 Extract Zip Spec      14 (20) '2.0'\n-6ED4B4 Extract OS            00 (0) 'MS-DOS'\n-6ED4B5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED4B7 Compression Method    0000 (0) 'Stored'\n-6ED4B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED4BD CRC                   BDE39003 (3185807363)\n-6ED4C1 Compressed Size       000005F9 (1529)\n-6ED4C5 Uncompressed Size     000005F9 (1529)\n-6ED4C9 Filename Length       0035 (53)\n-6ED4CB Extra Length          0009 (9)\n-6ED4CD Comment Length        0000 (0)\n-6ED4CF Disk Start            0000 (0)\n-6ED4D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED4D3 Ext File Attributes   00000000 (0)\n-6ED4D7 Local Header Offset   00441474 (4461684)\n-6ED4DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED4DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED512   Length              0005 (5)\n-6ED514   Flags               01 (1) 'Modification'\n-6ED515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED519 CENTRAL HEADER #1275  02014B50 (33639248)\n-6ED51D Created Zip Spec      14 (20) '2.0'\n-6ED51E Created OS            00 (0) 'MS-DOS'\n-6ED51F Extract Zip Spec      14 (20) '2.0'\n-6ED520 Extract OS            00 (0) 'MS-DOS'\n-6ED521 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED523 Compression Method    0000 (0) 'Stored'\n-6ED525 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED529 CRC                   6C2E2D81 (1814965633)\n-6ED52D Compressed Size       00001602 (5634)\n-6ED531 Uncompressed Size     00001602 (5634)\n-6ED535 Filename Length       002E (46)\n-6ED537 Extra Length          0009 (9)\n-6ED539 Comment Length        0000 (0)\n-6ED53B Disk Start            0000 (0)\n-6ED53D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED53F Ext File Attributes   00000000 (0)\n-6ED543 Local Header Offset   00441AD9 (4463321)\n-6ED547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED575 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED577   Length              0005 (5)\n-6ED579   Flags               01 (1) 'Modification'\n-6ED57A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED57E CENTRAL HEADER #1276  02014B50 (33639248)\n-6ED582 Created Zip Spec      14 (20) '2.0'\n-6ED583 Created OS            00 (0) 'MS-DOS'\n-6ED584 Extract Zip Spec      14 (20) '2.0'\n-6ED585 Extract OS            00 (0) 'MS-DOS'\n-6ED586 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED588 Compression Method    0000 (0) 'Stored'\n-6ED58A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED58E CRC                   350310AE (889393326)\n-6ED592 Compressed Size       0000048E (1166)\n-6ED596 Uncompressed Size     0000048E (1166)\n-6ED59A Filename Length       0036 (54)\n-6ED59C Extra Length          0009 (9)\n-6ED59E Comment Length        0000 (0)\n-6ED5A0 Disk Start            0000 (0)\n-6ED5A2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED5A4 Ext File Attributes   00000000 (0)\n-6ED5A8 Local Header Offset   00443140 (4469056)\n-6ED5AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED5AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED5E2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED5E4   Length              0005 (5)\n-6ED5E6   Flags               01 (1) 'Modification'\n-6ED5E7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED5EB CENTRAL HEADER #1277  02014B50 (33639248)\n-6ED5EF Created Zip Spec      14 (20) '2.0'\n-6ED5F0 Created OS            00 (0) 'MS-DOS'\n-6ED5F1 Extract Zip Spec      14 (20) '2.0'\n-6ED5F2 Extract OS            00 (0) 'MS-DOS'\n-6ED5F3 General Purpose Flag  0000 (0)\n-6ED5F5 Compression Method    0000 (0) 'Stored'\n-6ED5F7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED5FB CRC                   00000000 (0)\n-6ED5FF Compressed Size       00000000 (0)\n-6ED603 Uncompressed Size     00000000 (0)\n-6ED607 Filename Length       0021 (33)\n-6ED609 Extra Length          0009 (9)\n-6ED60B Comment Length        0000 (0)\n-6ED60D Disk Start            0000 (0)\n-6ED60F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED611 Ext File Attributes   00000000 (0)\n-6ED615 Local Header Offset   0044363B (4470331)\n-6ED619 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED619: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED63A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED63C   Length              0005 (5)\n-6ED63E   Flags               01 (1) 'Modification'\n-6ED63F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED643 CENTRAL HEADER #1278  02014B50 (33639248)\n-6ED647 Created Zip Spec      14 (20) '2.0'\n-6ED648 Created OS            00 (0) 'MS-DOS'\n-6ED649 Extract Zip Spec      14 (20) '2.0'\n-6ED64A Extract OS            00 (0) 'MS-DOS'\n-6ED64B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED64D Compression Method    0000 (0) 'Stored'\n-6ED64F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED653 CRC                   D05840B7 (3495444663)\n-6ED657 Compressed Size       00000833 (2099)\n-6ED65B Uncompressed Size     00000833 (2099)\n-6ED65F Filename Length       003E (62)\n-6ED661 Extra Length          0009 (9)\n-6ED663 Comment Length        0000 (0)\n-6ED665 Disk Start            0000 (0)\n-6ED667 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED669 Ext File Attributes   00000000 (0)\n-6ED66D Local Header Offset   00443683 (4470403)\n-6ED671 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED671: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED6AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED6B1   Length              0005 (5)\n-6ED6B3   Flags               01 (1) 'Modification'\n-6ED6B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED6B8 CENTRAL HEADER #1279  02014B50 (33639248)\n-6ED6BC Created Zip Spec      14 (20) '2.0'\n-6ED6BD Created OS            00 (0) 'MS-DOS'\n-6ED6BE Extract Zip Spec      14 (20) '2.0'\n-6ED6BF Extract OS            00 (0) 'MS-DOS'\n-6ED6C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED6C2 Compression Method    0000 (0) 'Stored'\n-6ED6C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED6C8 CRC                   D9AD2407 (3652002823)\n-6ED6CC Compressed Size       000006C3 (1731)\n-6ED6D0 Uncompressed Size     000006C3 (1731)\n-6ED6D4 Filename Length       0045 (69)\n-6ED6D6 Extra Length          0009 (9)\n-6ED6D8 Comment Length        0000 (0)\n-6ED6DA Disk Start            0000 (0)\n-6ED6DC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED6DE Ext File Attributes   00000000 (0)\n-6ED6E2 Local Header Offset   00443F2B (4472619)\n-6ED6E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED6E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED72B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED72D   Length              0005 (5)\n-6ED72F   Flags               01 (1) 'Modification'\n-6ED730   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED734 CENTRAL HEADER #1280  02014B50 (33639248)\n-6ED738 Created Zip Spec      14 (20) '2.0'\n-6ED739 Created OS            00 (0) 'MS-DOS'\n-6ED73A Extract Zip Spec      14 (20) '2.0'\n-6ED73B Extract OS            00 (0) 'MS-DOS'\n-6ED73C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED73E Compression Method    0000 (0) 'Stored'\n-6ED740 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED744 CRC                   6AAAC02C (1789575212)\n-6ED748 Compressed Size       00000565 (1381)\n-6ED74C Uncompressed Size     00000565 (1381)\n-6ED750 Filename Length       0046 (70)\n-6ED752 Extra Length          0009 (9)\n-6ED754 Comment Length        0000 (0)\n-6ED756 Disk Start            0000 (0)\n-6ED758 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED75A Ext File Attributes   00000000 (0)\n-6ED75E Local Header Offset   0044466A (4474474)\n-6ED762 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED762: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED7A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED7AA   Length              0005 (5)\n-6ED7AC   Flags               01 (1) 'Modification'\n-6ED7AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED7B1 CENTRAL HEADER #1281  02014B50 (33639248)\n-6ED7B5 Created Zip Spec      14 (20) '2.0'\n-6ED7B6 Created OS            00 (0) 'MS-DOS'\n-6ED7B7 Extract Zip Spec      14 (20) '2.0'\n-6ED7B8 Extract OS            00 (0) 'MS-DOS'\n-6ED7B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED7BB Compression Method    0000 (0) 'Stored'\n-6ED7BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED7C1 CRC                   5F8855A5 (1602770341)\n-6ED7C5 Compressed Size       00000870 (2160)\n-6ED7C9 Uncompressed Size     00000870 (2160)\n-6ED7CD Filename Length       0044 (68)\n-6ED7CF Extra Length          0009 (9)\n-6ED7D1 Comment Length        0000 (0)\n-6ED7D3 Disk Start            0000 (0)\n-6ED7D5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED7D7 Ext File Attributes   00000000 (0)\n-6ED7DB Local Header Offset   00444C4C (4475980)\n-6ED7DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED7DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED823 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED825   Length              0005 (5)\n-6ED827   Flags               01 (1) 'Modification'\n-6ED828   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED82C CENTRAL HEADER #1282  02014B50 (33639248)\n-6ED830 Created Zip Spec      14 (20) '2.0'\n-6ED831 Created OS            00 (0) 'MS-DOS'\n-6ED832 Extract Zip Spec      14 (20) '2.0'\n-6ED833 Extract OS            00 (0) 'MS-DOS'\n-6ED834 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED836 Compression Method    0000 (0) 'Stored'\n-6ED838 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED83C CRC                   C2AD0276 (3266118262)\n-6ED840 Compressed Size       000017B0 (6064)\n-6ED844 Uncompressed Size     000017B0 (6064)\n-6ED848 Filename Length       003C (60)\n-6ED84A Extra Length          0009 (9)\n-6ED84C Comment Length        0000 (0)\n-6ED84E Disk Start            0000 (0)\n-6ED850 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED852 Ext File Attributes   00000000 (0)\n-6ED856 Local Header Offset   00445537 (4478263)\n-6ED85A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED85A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED896 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED898   Length              0005 (5)\n-6ED89A   Flags               01 (1) 'Modification'\n-6ED89B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED89F CENTRAL HEADER #1283  02014B50 (33639248)\n-6ED8A3 Created Zip Spec      14 (20) '2.0'\n-6ED8A4 Created OS            00 (0) 'MS-DOS'\n-6ED8A5 Extract Zip Spec      14 (20) '2.0'\n-6ED8A6 Extract OS            00 (0) 'MS-DOS'\n-6ED8A7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED8A9 Compression Method    0000 (0) 'Stored'\n-6ED8AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED8AF CRC                   77B5952D (2008388909)\n-6ED8B3 Compressed Size       00002A27 (10791)\n-6ED8B7 Uncompressed Size     00002A27 (10791)\n-6ED8BB Filename Length       0045 (69)\n-6ED8BD Extra Length          0009 (9)\n-6ED8BF Comment Length        0000 (0)\n-6ED8C1 Disk Start            0000 (0)\n-6ED8C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED8C5 Ext File Attributes   00000000 (0)\n-6ED8C9 Local Header Offset   00446D5A (4484442)\n-6ED8CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED8CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED912 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED914   Length              0005 (5)\n-6ED916   Flags               01 (1) 'Modification'\n-6ED917   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED91B CENTRAL HEADER #1284  02014B50 (33639248)\n-6ED91F Created Zip Spec      14 (20) '2.0'\n-6ED920 Created OS            00 (0) 'MS-DOS'\n-6ED921 Extract Zip Spec      14 (20) '2.0'\n-6ED922 Extract OS            00 (0) 'MS-DOS'\n-6ED923 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED925 Compression Method    0000 (0) 'Stored'\n-6ED927 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED92B CRC                   013987D8 (20547544)\n-6ED92F Compressed Size       00001FF0 (8176)\n-6ED933 Uncompressed Size     00001FF0 (8176)\n-6ED937 Filename Length       0040 (64)\n-6ED939 Extra Length          0009 (9)\n-6ED93B Comment Length        0000 (0)\n-6ED93D Disk Start            0000 (0)\n-6ED93F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED941 Ext File Attributes   00000000 (0)\n-6ED945 Local Header Offset   004497FD (4495357)\n-6ED949 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED949: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED989 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED98B   Length              0005 (5)\n-6ED98D   Flags               01 (1) 'Modification'\n-6ED98E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6ED992 CENTRAL HEADER #1285  02014B50 (33639248)\n-6ED996 Created Zip Spec      14 (20) '2.0'\n-6ED997 Created OS            00 (0) 'MS-DOS'\n-6ED998 Extract Zip Spec      14 (20) '2.0'\n-6ED999 Extract OS            00 (0) 'MS-DOS'\n-6ED99A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6ED99C Compression Method    0000 (0) 'Stored'\n-6ED99E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6ED9A2 CRC                   E564338A (3848549258)\n-6ED9A6 Compressed Size       00002F23 (12067)\n-6ED9AA Uncompressed Size     00002F23 (12067)\n-6ED9AE Filename Length       0038 (56)\n-6ED9B0 Extra Length          0009 (9)\n-6ED9B2 Comment Length        0000 (0)\n-6ED9B4 Disk Start            0000 (0)\n-6ED9B6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6ED9B8 Ext File Attributes   00000000 (0)\n-6ED9BC Local Header Offset   0044B864 (4503652)\n-6ED9C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6ED9C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6ED9F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6ED9FA   Length              0005 (5)\n-6ED9FC   Flags               01 (1) 'Modification'\n-6ED9FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDA01 CENTRAL HEADER #1286  02014B50 (33639248)\n-6EDA05 Created Zip Spec      14 (20) '2.0'\n-6EDA06 Created OS            00 (0) 'MS-DOS'\n-6EDA07 Extract Zip Spec      14 (20) '2.0'\n-6EDA08 Extract OS            00 (0) 'MS-DOS'\n-6EDA09 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDA0B Compression Method    0000 (0) 'Stored'\n-6EDA0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDA11 CRC                   4D393448 (1295594568)\n-6EDA15 Compressed Size       000005E0 (1504)\n-6EDA19 Uncompressed Size     000005E0 (1504)\n-6EDA1D Filename Length       003F (63)\n-6EDA1F Extra Length          0009 (9)\n-6EDA21 Comment Length        0000 (0)\n-6EDA23 Disk Start            0000 (0)\n-6EDA25 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDA27 Ext File Attributes   00000000 (0)\n-6EDA2B Local Header Offset   0044E7F6 (4515830)\n-6EDA2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDA2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDA6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDA70   Length              0005 (5)\n-6EDA72   Flags               01 (1) 'Modification'\n-6EDA73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDA77 CENTRAL HEADER #1287  02014B50 (33639248)\n-6EDA7B Created Zip Spec      14 (20) '2.0'\n-6EDA7C Created OS            00 (0) 'MS-DOS'\n-6EDA7D Extract Zip Spec      14 (20) '2.0'\n-6EDA7E Extract OS            00 (0) 'MS-DOS'\n-6EDA7F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDA81 Compression Method    0000 (0) 'Stored'\n-6EDA83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDA87 CRC                   6E2B9BED (1848351725)\n-6EDA8B Compressed Size       00002EA9 (11945)\n-6EDA8F Uncompressed Size     00002EA9 (11945)\n-6EDA93 Filename Length       0036 (54)\n-6EDA95 Extra Length          0009 (9)\n-6EDA97 Comment Length        0000 (0)\n-6EDA99 Disk Start            0000 (0)\n-6EDA9B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDA9D Ext File Attributes   00000000 (0)\n-6EDAA1 Local Header Offset   0044EE4C (4517452)\n-6EDAA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDAA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDADB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDADD   Length              0005 (5)\n-6EDADF   Flags               01 (1) 'Modification'\n-6EDAE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDAE4 CENTRAL HEADER #1288  02014B50 (33639248)\n-6EDAE8 Created Zip Spec      14 (20) '2.0'\n-6EDAE9 Created OS            00 (0) 'MS-DOS'\n-6EDAEA Extract Zip Spec      14 (20) '2.0'\n-6EDAEB Extract OS            00 (0) 'MS-DOS'\n-6EDAEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDAEE Compression Method    0000 (0) 'Stored'\n-6EDAF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDAF4 CRC                   9F02351C (2667722012)\n-6EDAF8 Compressed Size       000007B6 (1974)\n-6EDAFC Uncompressed Size     000007B6 (1974)\n-6EDB00 Filename Length       003D (61)\n-6EDB02 Extra Length          0009 (9)\n-6EDB04 Comment Length        0000 (0)\n-6EDB06 Disk Start            0000 (0)\n-6EDB08 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDB0A Ext File Attributes   00000000 (0)\n-6EDB0E Local Header Offset   00451D62 (4529506)\n-6EDB12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDB12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDB4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDB51   Length              0005 (5)\n-6EDB53   Flags               01 (1) 'Modification'\n-6EDB54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDB58 CENTRAL HEADER #1289  02014B50 (33639248)\n-6EDB5C Created Zip Spec      14 (20) '2.0'\n-6EDB5D Created OS            00 (0) 'MS-DOS'\n-6EDB5E Extract Zip Spec      14 (20) '2.0'\n-6EDB5F Extract OS            00 (0) 'MS-DOS'\n-6EDB60 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDB62 Compression Method    0000 (0) 'Stored'\n-6EDB64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDB68 CRC                   88D1E805 (2295457797)\n-6EDB6C Compressed Size       0000521E (21022)\n-6EDB70 Uncompressed Size     0000521E (21022)\n-6EDB74 Filename Length       003E (62)\n-6EDB76 Extra Length          0009 (9)\n-6EDB78 Comment Length        0000 (0)\n-6EDB7A Disk Start            0000 (0)\n-6EDB7C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDB7E Ext File Attributes   00000000 (0)\n-6EDB82 Local Header Offset   0045258C (4531596)\n-6EDB86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDB86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDBC4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDBC6   Length              0005 (5)\n-6EDBC8   Flags               01 (1) 'Modification'\n-6EDBC9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDBCD CENTRAL HEADER #1290  02014B50 (33639248)\n-6EDBD1 Created Zip Spec      14 (20) '2.0'\n-6EDBD2 Created OS            00 (0) 'MS-DOS'\n-6EDBD3 Extract Zip Spec      14 (20) '2.0'\n-6EDBD4 Extract OS            00 (0) 'MS-DOS'\n-6EDBD5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDBD7 Compression Method    0000 (0) 'Stored'\n-6EDBD9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDBDD CRC                   1C63503A (476270650)\n-6EDBE1 Compressed Size       00002CDC (11484)\n-6EDBE5 Uncompressed Size     00002CDC (11484)\n-6EDBE9 Filename Length       0047 (71)\n-6EDBEB Extra Length          0009 (9)\n-6EDBED Comment Length        0000 (0)\n-6EDBEF Disk Start            0000 (0)\n-6EDBF1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDBF3 Ext File Attributes   00000000 (0)\n-6EDBF7 Local Header Offset   0045781F (4552735)\n-6EDBFB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDBFB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDC42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDC44   Length              0005 (5)\n-6EDC46   Flags               01 (1) 'Modification'\n-6EDC47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDC4B CENTRAL HEADER #1291  02014B50 (33639248)\n-6EDC4F Created Zip Spec      14 (20) '2.0'\n-6EDC50 Created OS            00 (0) 'MS-DOS'\n-6EDC51 Extract Zip Spec      14 (20) '2.0'\n-6EDC52 Extract OS            00 (0) 'MS-DOS'\n-6EDC53 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDC55 Compression Method    0000 (0) 'Stored'\n-6EDC57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDC5B CRC                   A7D42D9C (2815700380)\n-6EDC5F Compressed Size       0000068D (1677)\n-6EDC63 Uncompressed Size     0000068D (1677)\n-6EDC67 Filename Length       0045 (69)\n-6EDC69 Extra Length          0009 (9)\n-6EDC6B Comment Length        0000 (0)\n-6EDC6D Disk Start            0000 (0)\n-6EDC6F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDC71 Ext File Attributes   00000000 (0)\n-6EDC75 Local Header Offset   0045A579 (4564345)\n-6EDC79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDC79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDCBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDCC0   Length              0005 (5)\n-6EDCC2   Flags               01 (1) 'Modification'\n-6EDCC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDCC7 CENTRAL HEADER #1292  02014B50 (33639248)\n-6EDCCB Created Zip Spec      14 (20) '2.0'\n-6EDCCC Created OS            00 (0) 'MS-DOS'\n-6EDCCD Extract Zip Spec      14 (20) '2.0'\n-6EDCCE Extract OS            00 (0) 'MS-DOS'\n-6EDCCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDCD1 Compression Method    0000 (0) 'Stored'\n-6EDCD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDCD7 CRC                   F623C4B3 (4129539251)\n-6EDCDB Compressed Size       00000DAA (3498)\n-6EDCDF Uncompressed Size     00000DAA (3498)\n-6EDCE3 Filename Length       0035 (53)\n-6EDCE5 Extra Length          0009 (9)\n-6EDCE7 Comment Length        0000 (0)\n-6EDCE9 Disk Start            0000 (0)\n-6EDCEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDCED Ext File Attributes   00000000 (0)\n-6EDCF1 Local Header Offset   0045AC82 (4566146)\n-6EDCF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDCF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDD2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDD2C   Length              0005 (5)\n-6EDD2E   Flags               01 (1) 'Modification'\n-6EDD2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDD33 CENTRAL HEADER #1293  02014B50 (33639248)\n-6EDD37 Created Zip Spec      14 (20) '2.0'\n-6EDD38 Created OS            00 (0) 'MS-DOS'\n-6EDD39 Extract Zip Spec      14 (20) '2.0'\n-6EDD3A Extract OS            00 (0) 'MS-DOS'\n-6EDD3B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDD3D Compression Method    0000 (0) 'Stored'\n-6EDD3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDD43 CRC                   5B09319E (1527329182)\n-6EDD47 Compressed Size       000005D6 (1494)\n-6EDD4B Uncompressed Size     000005D6 (1494)\n-6EDD4F Filename Length       003F (63)\n-6EDD51 Extra Length          0009 (9)\n-6EDD53 Comment Length        0000 (0)\n-6EDD55 Disk Start            0000 (0)\n-6EDD57 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDD59 Ext File Attributes   00000000 (0)\n-6EDD5D Local Header Offset   0045BA98 (4569752)\n-6EDD61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDD61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDDA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDDA2   Length              0005 (5)\n-6EDDA4   Flags               01 (1) 'Modification'\n-6EDDA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDDA9 CENTRAL HEADER #1294  02014B50 (33639248)\n-6EDDAD Created Zip Spec      14 (20) '2.0'\n-6EDDAE Created OS            00 (0) 'MS-DOS'\n-6EDDAF Extract Zip Spec      14 (20) '2.0'\n-6EDDB0 Extract OS            00 (0) 'MS-DOS'\n-6EDDB1 General Purpose Flag  0000 (0)\n-6EDDB3 Compression Method    0000 (0) 'Stored'\n-6EDDB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDDB9 CRC                   00000000 (0)\n-6EDDBD Compressed Size       00000000 (0)\n-6EDDC1 Uncompressed Size     00000000 (0)\n-6EDDC5 Filename Length       0027 (39)\n-6EDDC7 Extra Length          0009 (9)\n-6EDDC9 Comment Length        0000 (0)\n-6EDDCB Disk Start            0000 (0)\n-6EDDCD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDDCF Ext File Attributes   00000000 (0)\n-6EDDD3 Local Header Offset   0045C0E4 (4571364)\n-6EDDD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDDD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDDFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDE00   Length              0005 (5)\n-6EDE02   Flags               01 (1) 'Modification'\n-6EDE03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDE07 CENTRAL HEADER #1295  02014B50 (33639248)\n-6EDE0B Created Zip Spec      14 (20) '2.0'\n-6EDE0C Created OS            00 (0) 'MS-DOS'\n-6EDE0D Extract Zip Spec      14 (20) '2.0'\n-6EDE0E Extract OS            00 (0) 'MS-DOS'\n-6EDE0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDE11 Compression Method    0000 (0) 'Stored'\n-6EDE13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDE17 CRC                   504AAFAB (1347071915)\n-6EDE1B Compressed Size       000004F6 (1270)\n-6EDE1F Uncompressed Size     000004F6 (1270)\n-6EDE23 Filename Length       004A (74)\n-6EDE25 Extra Length          0009 (9)\n-6EDE27 Comment Length        0000 (0)\n-6EDE29 Disk Start            0000 (0)\n-6EDE2B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDE2D Ext File Attributes   00000000 (0)\n-6EDE31 Local Header Offset   0045C132 (4571442)\n-6EDE35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDE35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDE7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDE81   Length              0005 (5)\n-6EDE83   Flags               01 (1) 'Modification'\n-6EDE84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDE88 CENTRAL HEADER #1296  02014B50 (33639248)\n-6EDE8C Created Zip Spec      14 (20) '2.0'\n-6EDE8D Created OS            00 (0) 'MS-DOS'\n-6EDE8E Extract Zip Spec      14 (20) '2.0'\n-6EDE8F Extract OS            00 (0) 'MS-DOS'\n-6EDE90 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDE92 Compression Method    0000 (0) 'Stored'\n-6EDE94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDE98 CRC                   24C1B311 (616674065)\n-6EDE9C Compressed Size       000004FB (1275)\n-6EDEA0 Uncompressed Size     000004FB (1275)\n-6EDEA4 Filename Length       004B (75)\n-6EDEA6 Extra Length          0009 (9)\n-6EDEA8 Comment Length        0000 (0)\n-6EDEAA Disk Start            0000 (0)\n-6EDEAC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDEAE Ext File Attributes   00000000 (0)\n-6EDEB2 Local Header Offset   0045C6A9 (4572841)\n-6EDEB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDEB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDF01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDF03   Length              0005 (5)\n-6EDF05   Flags               01 (1) 'Modification'\n-6EDF06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDF0A CENTRAL HEADER #1297  02014B50 (33639248)\n-6EDF0E Created Zip Spec      14 (20) '2.0'\n-6EDF0F Created OS            00 (0) 'MS-DOS'\n-6EDF10 Extract Zip Spec      14 (20) '2.0'\n-6EDF11 Extract OS            00 (0) 'MS-DOS'\n-6EDF12 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDF14 Compression Method    0000 (0) 'Stored'\n-6EDF16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDF1A CRC                   F122AA0E (4045580814)\n-6EDF1E Compressed Size       0000086F (2159)\n-6EDF22 Uncompressed Size     0000086F (2159)\n-6EDF26 Filename Length       0041 (65)\n-6EDF28 Extra Length          0009 (9)\n-6EDF2A Comment Length        0000 (0)\n-6EDF2C Disk Start            0000 (0)\n-6EDF2E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDF30 Ext File Attributes   00000000 (0)\n-6EDF34 Local Header Offset   0045CC26 (4574246)\n-6EDF38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDF38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDF79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDF7B   Length              0005 (5)\n-6EDF7D   Flags               01 (1) 'Modification'\n-6EDF7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EDF82 CENTRAL HEADER #1298  02014B50 (33639248)\n-6EDF86 Created Zip Spec      14 (20) '2.0'\n-6EDF87 Created OS            00 (0) 'MS-DOS'\n-6EDF88 Extract Zip Spec      14 (20) '2.0'\n-6EDF89 Extract OS            00 (0) 'MS-DOS'\n-6EDF8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EDF8C Compression Method    0000 (0) 'Stored'\n-6EDF8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EDF92 CRC                   267DEE50 (645787216)\n-6EDF96 Compressed Size       0000067B (1659)\n-6EDF9A Uncompressed Size     0000067B (1659)\n-6EDF9E Filename Length       004A (74)\n-6EDFA0 Extra Length          0009 (9)\n-6EDFA2 Comment Length        0000 (0)\n-6EDFA4 Disk Start            0000 (0)\n-6EDFA6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EDFA8 Ext File Attributes   00000000 (0)\n-6EDFAC Local Header Offset   0045D50D (4576525)\n-6EDFB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EDFB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EDFFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EDFFC   Length              0005 (5)\n-6EDFFE   Flags               01 (1) 'Modification'\n-6EDFFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE003 CENTRAL HEADER #1299  02014B50 (33639248)\n-6EE007 Created Zip Spec      14 (20) '2.0'\n-6EE008 Created OS            00 (0) 'MS-DOS'\n-6EE009 Extract Zip Spec      14 (20) '2.0'\n-6EE00A Extract OS            00 (0) 'MS-DOS'\n-6EE00B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE00D Compression Method    0000 (0) 'Stored'\n-6EE00F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE013 CRC                   398D4C03 (965561347)\n-6EE017 Compressed Size       00000524 (1316)\n-6EE01B Uncompressed Size     00000524 (1316)\n-6EE01F Filename Length       004C (76)\n-6EE021 Extra Length          0009 (9)\n-6EE023 Comment Length        0000 (0)\n-6EE025 Disk Start            0000 (0)\n-6EE027 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE029 Ext File Attributes   00000000 (0)\n-6EE02D Local Header Offset   0045DC09 (4578313)\n-6EE031 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE031: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE07D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE07F   Length              0005 (5)\n-6EE081   Flags               01 (1) 'Modification'\n-6EE082   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE086 CENTRAL HEADER #1300  02014B50 (33639248)\n-6EE08A Created Zip Spec      14 (20) '2.0'\n-6EE08B Created OS            00 (0) 'MS-DOS'\n-6EE08C Extract Zip Spec      14 (20) '2.0'\n-6EE08D Extract OS            00 (0) 'MS-DOS'\n-6EE08E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE090 Compression Method    0000 (0) 'Stored'\n-6EE092 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE096 CRC                   120048C8 (302008520)\n-6EE09A Compressed Size       0000052A (1322)\n-6EE09E Uncompressed Size     0000052A (1322)\n-6EE0A2 Filename Length       004D (77)\n-6EE0A4 Extra Length          0009 (9)\n-6EE0A6 Comment Length        0000 (0)\n-6EE0A8 Disk Start            0000 (0)\n-6EE0AA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE0AC Ext File Attributes   00000000 (0)\n-6EE0B0 Local Header Offset   0045E1B0 (4579760)\n-6EE0B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE0B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE101 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE103   Length              0005 (5)\n-6EE105   Flags               01 (1) 'Modification'\n-6EE106   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE10A CENTRAL HEADER #1301  02014B50 (33639248)\n-6EE10E Created Zip Spec      14 (20) '2.0'\n-6EE10F Created OS            00 (0) 'MS-DOS'\n-6EE110 Extract Zip Spec      14 (20) '2.0'\n-6EE111 Extract OS            00 (0) 'MS-DOS'\n-6EE112 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE114 Compression Method    0000 (0) 'Stored'\n-6EE116 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE11A CRC                   7B9FC9D5 (2074069461)\n-6EE11E Compressed Size       00000675 (1653)\n-6EE122 Uncompressed Size     00000675 (1653)\n-6EE126 Filename Length       0040 (64)\n-6EE128 Extra Length          0009 (9)\n-6EE12A Comment Length        0000 (0)\n-6EE12C Disk Start            0000 (0)\n-6EE12E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE130 Ext File Attributes   00000000 (0)\n-6EE134 Local Header Offset   0045E75E (4581214)\n-6EE138 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE138: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE178 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE17A   Length              0005 (5)\n-6EE17C   Flags               01 (1) 'Modification'\n-6EE17D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE181 CENTRAL HEADER #1302  02014B50 (33639248)\n-6EE185 Created Zip Spec      14 (20) '2.0'\n-6EE186 Created OS            00 (0) 'MS-DOS'\n-6EE187 Extract Zip Spec      14 (20) '2.0'\n-6EE188 Extract OS            00 (0) 'MS-DOS'\n-6EE189 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE18B Compression Method    0000 (0) 'Stored'\n-6EE18D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE191 CRC                   A2914700 (2727429888)\n-6EE195 Compressed Size       00000547 (1351)\n-6EE199 Uncompressed Size     00000547 (1351)\n-6EE19D Filename Length       004D (77)\n-6EE19F Extra Length          0009 (9)\n-6EE1A1 Comment Length        0000 (0)\n-6EE1A3 Disk Start            0000 (0)\n-6EE1A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE1A7 Ext File Attributes   00000000 (0)\n-6EE1AB Local Header Offset   0045EE4A (4582986)\n-6EE1AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE1AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE1FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE1FE   Length              0005 (5)\n-6EE200   Flags               01 (1) 'Modification'\n-6EE201   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE205 CENTRAL HEADER #1303  02014B50 (33639248)\n-6EE209 Created Zip Spec      14 (20) '2.0'\n-6EE20A Created OS            00 (0) 'MS-DOS'\n-6EE20B Extract Zip Spec      14 (20) '2.0'\n-6EE20C Extract OS            00 (0) 'MS-DOS'\n-6EE20D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE20F Compression Method    0000 (0) 'Stored'\n-6EE211 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE215 CRC                   A0D533A5 (2698326949)\n-6EE219 Compressed Size       0000054F (1359)\n-6EE21D Uncompressed Size     0000054F (1359)\n-6EE221 Filename Length       004F (79)\n-6EE223 Extra Length          0009 (9)\n-6EE225 Comment Length        0000 (0)\n-6EE227 Disk Start            0000 (0)\n-6EE229 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE22B Ext File Attributes   00000000 (0)\n-6EE22F Local Header Offset   0045F415 (4584469)\n-6EE233 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE233: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE282 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE284   Length              0005 (5)\n-6EE286   Flags               01 (1) 'Modification'\n-6EE287   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE28B CENTRAL HEADER #1304  02014B50 (33639248)\n-6EE28F Created Zip Spec      14 (20) '2.0'\n-6EE290 Created OS            00 (0) 'MS-DOS'\n-6EE291 Extract Zip Spec      14 (20) '2.0'\n-6EE292 Extract OS            00 (0) 'MS-DOS'\n-6EE293 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE295 Compression Method    0000 (0) 'Stored'\n-6EE297 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE29B CRC                   DD6C864E (3714877006)\n-6EE29F Compressed Size       00000540 (1344)\n-6EE2A3 Uncompressed Size     00000540 (1344)\n-6EE2A7 Filename Length       004A (74)\n-6EE2A9 Extra Length          0009 (9)\n-6EE2AB Comment Length        0000 (0)\n-6EE2AD Disk Start            0000 (0)\n-6EE2AF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE2B1 Ext File Attributes   00000000 (0)\n-6EE2B5 Local Header Offset   0045F9EA (4585962)\n-6EE2B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE2B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE303 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE305   Length              0005 (5)\n-6EE307   Flags               01 (1) 'Modification'\n-6EE308   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE30C CENTRAL HEADER #1305  02014B50 (33639248)\n-6EE310 Created Zip Spec      14 (20) '2.0'\n-6EE311 Created OS            00 (0) 'MS-DOS'\n-6EE312 Extract Zip Spec      14 (20) '2.0'\n-6EE313 Extract OS            00 (0) 'MS-DOS'\n-6EE314 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE316 Compression Method    0000 (0) 'Stored'\n-6EE318 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE31C CRC                   F868DDB6 (4167622070)\n-6EE320 Compressed Size       00000565 (1381)\n-6EE324 Uncompressed Size     00000565 (1381)\n-6EE328 Filename Length       004C (76)\n-6EE32A Extra Length          0009 (9)\n-6EE32C Comment Length        0000 (0)\n-6EE32E Disk Start            0000 (0)\n-6EE330 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE332 Ext File Attributes   00000000 (0)\n-6EE336 Local Header Offset   0045FFAB (4587435)\n-6EE33A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE33A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE386 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE388   Length              0005 (5)\n-6EE38A   Flags               01 (1) 'Modification'\n-6EE38B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE38F CENTRAL HEADER #1306  02014B50 (33639248)\n-6EE393 Created Zip Spec      14 (20) '2.0'\n-6EE394 Created OS            00 (0) 'MS-DOS'\n-6EE395 Extract Zip Spec      14 (20) '2.0'\n-6EE396 Extract OS            00 (0) 'MS-DOS'\n-6EE397 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE399 Compression Method    0000 (0) 'Stored'\n-6EE39B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE39F CRC                   97496C8E (2538171534)\n-6EE3A3 Compressed Size       000008A6 (2214)\n-6EE3A7 Uncompressed Size     000008A6 (2214)\n-6EE3AB Filename Length       0048 (72)\n-6EE3AD Extra Length          0009 (9)\n-6EE3AF Comment Length        0000 (0)\n-6EE3B1 Disk Start            0000 (0)\n-6EE3B3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE3B5 Ext File Attributes   00000000 (0)\n-6EE3B9 Local Header Offset   00460593 (4588947)\n-6EE3BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE3BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE405 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE407   Length              0005 (5)\n-6EE409   Flags               01 (1) 'Modification'\n-6EE40A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE40E CENTRAL HEADER #1307  02014B50 (33639248)\n-6EE412 Created Zip Spec      14 (20) '2.0'\n-6EE413 Created OS            00 (0) 'MS-DOS'\n-6EE414 Extract Zip Spec      14 (20) '2.0'\n-6EE415 Extract OS            00 (0) 'MS-DOS'\n-6EE416 General Purpose Flag  0000 (0)\n-6EE418 Compression Method    0000 (0) 'Stored'\n-6EE41A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE41E CRC                   00000000 (0)\n-6EE422 Compressed Size       00000000 (0)\n-6EE426 Uncompressed Size     00000000 (0)\n-6EE42A Filename Length       0030 (48)\n-6EE42C Extra Length          0009 (9)\n-6EE42E Comment Length        0000 (0)\n-6EE430 Disk Start            0000 (0)\n-6EE432 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE434 Ext File Attributes   00000000 (0)\n-6EE438 Local Header Offset   00460EB8 (4591288)\n-6EE43C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE43C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE46C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE46E   Length              0005 (5)\n-6EE470   Flags               01 (1) 'Modification'\n-6EE471   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE475 CENTRAL HEADER #1308  02014B50 (33639248)\n-6EE479 Created Zip Spec      14 (20) '2.0'\n-6EE47A Created OS            00 (0) 'MS-DOS'\n-6EE47B Extract Zip Spec      14 (20) '2.0'\n-6EE47C Extract OS            00 (0) 'MS-DOS'\n-6EE47D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE47F Compression Method    0000 (0) 'Stored'\n-6EE481 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE485 CRC                   C309C134 (3272196404)\n-6EE489 Compressed Size       00000E22 (3618)\n-6EE48D Uncompressed Size     00000E22 (3618)\n-6EE491 Filename Length       0049 (73)\n-6EE493 Extra Length          0009 (9)\n-6EE495 Comment Length        0000 (0)\n-6EE497 Disk Start            0000 (0)\n-6EE499 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE49B Ext File Attributes   00000000 (0)\n-6EE49F Local Header Offset   00460F0F (4591375)\n-6EE4A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE4A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE4EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE4EE   Length              0005 (5)\n-6EE4F0   Flags               01 (1) 'Modification'\n-6EE4F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE4F5 CENTRAL HEADER #1309  02014B50 (33639248)\n-6EE4F9 Created Zip Spec      14 (20) '2.0'\n-6EE4FA Created OS            00 (0) 'MS-DOS'\n-6EE4FB Extract Zip Spec      14 (20) '2.0'\n-6EE4FC Extract OS            00 (0) 'MS-DOS'\n-6EE4FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE4FF Compression Method    0000 (0) 'Stored'\n-6EE501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE505 CRC                   BD334F2B (3174256427)\n-6EE509 Compressed Size       00002C35 (11317)\n-6EE50D Uncompressed Size     00002C35 (11317)\n-6EE511 Filename Length       0054 (84)\n-6EE513 Extra Length          0009 (9)\n-6EE515 Comment Length        0000 (0)\n-6EE517 Disk Start            0000 (0)\n-6EE519 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE51B Ext File Attributes   00000000 (0)\n-6EE51F Local Header Offset   00461DB1 (4595121)\n-6EE523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE577 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE579   Length              0005 (5)\n-6EE57B   Flags               01 (1) 'Modification'\n-6EE57C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE580 CENTRAL HEADER #1310  02014B50 (33639248)\n-6EE584 Created Zip Spec      14 (20) '2.0'\n-6EE585 Created OS            00 (0) 'MS-DOS'\n-6EE586 Extract Zip Spec      14 (20) '2.0'\n-6EE587 Extract OS            00 (0) 'MS-DOS'\n-6EE588 General Purpose Flag  0000 (0)\n-6EE58A Compression Method    0000 (0) 'Stored'\n-6EE58C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE590 CRC                   00000000 (0)\n-6EE594 Compressed Size       00000000 (0)\n-6EE598 Uncompressed Size     00000000 (0)\n-6EE59C Filename Length       002A (42)\n-6EE59E Extra Length          0009 (9)\n-6EE5A0 Comment Length        0000 (0)\n-6EE5A2 Disk Start            0000 (0)\n-6EE5A4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE5A6 Ext File Attributes   00000000 (0)\n-6EE5AA Local Header Offset   00464A71 (4606577)\n-6EE5AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE5AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE5D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE5DA   Length              0005 (5)\n-6EE5DC   Flags               01 (1) 'Modification'\n-6EE5DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE5E1 CENTRAL HEADER #1311  02014B50 (33639248)\n-6EE5E5 Created Zip Spec      14 (20) '2.0'\n-6EE5E6 Created OS            00 (0) 'MS-DOS'\n-6EE5E7 Extract Zip Spec      14 (20) '2.0'\n-6EE5E8 Extract OS            00 (0) 'MS-DOS'\n-6EE5E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE5EB Compression Method    0000 (0) 'Stored'\n-6EE5ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE5F1 CRC                   8764F382 (2271540098)\n-6EE5F5 Compressed Size       00000E76 (3702)\n-6EE5F9 Uncompressed Size     00000E76 (3702)\n-6EE5FD Filename Length       0049 (73)\n-6EE5FF Extra Length          0009 (9)\n-6EE601 Comment Length        0000 (0)\n-6EE603 Disk Start            0000 (0)\n-6EE605 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE607 Ext File Attributes   00000000 (0)\n-6EE60B Local Header Offset   00464AC2 (4606658)\n-6EE60F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE60F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE658 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE65A   Length              0005 (5)\n-6EE65C   Flags               01 (1) 'Modification'\n-6EE65D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE661 CENTRAL HEADER #1312  02014B50 (33639248)\n-6EE665 Created Zip Spec      14 (20) '2.0'\n-6EE666 Created OS            00 (0) 'MS-DOS'\n-6EE667 Extract Zip Spec      14 (20) '2.0'\n-6EE668 Extract OS            00 (0) 'MS-DOS'\n-6EE669 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE66B Compression Method    0000 (0) 'Stored'\n-6EE66D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE671 CRC                   E42AC0C2 (3828007106)\n-6EE675 Compressed Size       000005D7 (1495)\n-6EE679 Uncompressed Size     000005D7 (1495)\n-6EE67D Filename Length       0048 (72)\n-6EE67F Extra Length          0009 (9)\n-6EE681 Comment Length        0000 (0)\n-6EE683 Disk Start            0000 (0)\n-6EE685 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE687 Ext File Attributes   00000000 (0)\n-6EE68B Local Header Offset   004659B8 (4610488)\n-6EE68F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE68F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE6D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE6D9   Length              0005 (5)\n-6EE6DB   Flags               01 (1) 'Modification'\n-6EE6DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE6E0 CENTRAL HEADER #1313  02014B50 (33639248)\n-6EE6E4 Created Zip Spec      14 (20) '2.0'\n-6EE6E5 Created OS            00 (0) 'MS-DOS'\n-6EE6E6 Extract Zip Spec      14 (20) '2.0'\n-6EE6E7 Extract OS            00 (0) 'MS-DOS'\n-6EE6E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE6EA Compression Method    0000 (0) 'Stored'\n-6EE6EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE6F0 CRC                   33C91E00 (868818432)\n-6EE6F4 Compressed Size       00000AEA (2794)\n-6EE6F8 Uncompressed Size     00000AEA (2794)\n-6EE6FC Filename Length       0059 (89)\n-6EE6FE Extra Length          0009 (9)\n-6EE700 Comment Length        0000 (0)\n-6EE702 Disk Start            0000 (0)\n-6EE704 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE706 Ext File Attributes   00000000 (0)\n-6EE70A Local Header Offset   0046600E (4612110)\n-6EE70E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE70E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE767 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE769   Length              0005 (5)\n-6EE76B   Flags               01 (1) 'Modification'\n-6EE76C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE770 CENTRAL HEADER #1314  02014B50 (33639248)\n-6EE774 Created Zip Spec      14 (20) '2.0'\n-6EE775 Created OS            00 (0) 'MS-DOS'\n-6EE776 Extract Zip Spec      14 (20) '2.0'\n-6EE777 Extract OS            00 (0) 'MS-DOS'\n-6EE778 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE77A Compression Method    0000 (0) 'Stored'\n-6EE77C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE780 CRC                   055EEF97 (90107799)\n-6EE784 Compressed Size       000012A3 (4771)\n-6EE788 Uncompressed Size     000012A3 (4771)\n-6EE78C Filename Length       003C (60)\n-6EE78E Extra Length          0009 (9)\n-6EE790 Comment Length        0000 (0)\n-6EE792 Disk Start            0000 (0)\n-6EE794 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE796 Ext File Attributes   00000000 (0)\n-6EE79A Local Header Offset   00466B88 (4615048)\n-6EE79E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE79E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE7DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE7DC   Length              0005 (5)\n-6EE7DE   Flags               01 (1) 'Modification'\n-6EE7DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE7E3 CENTRAL HEADER #1315  02014B50 (33639248)\n-6EE7E7 Created Zip Spec      14 (20) '2.0'\n-6EE7E8 Created OS            00 (0) 'MS-DOS'\n-6EE7E9 Extract Zip Spec      14 (20) '2.0'\n-6EE7EA Extract OS            00 (0) 'MS-DOS'\n-6EE7EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE7ED Compression Method    0000 (0) 'Stored'\n-6EE7EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE7F3 CRC                   02F66D1C (49704220)\n-6EE7F7 Compressed Size       000008F8 (2296)\n-6EE7FB Uncompressed Size     000008F8 (2296)\n-6EE7FF Filename Length       004E (78)\n-6EE801 Extra Length          0009 (9)\n-6EE803 Comment Length        0000 (0)\n-6EE805 Disk Start            0000 (0)\n-6EE807 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE809 Ext File Attributes   00000000 (0)\n-6EE80D Local Header Offset   00467E9E (4619934)\n-6EE811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE85F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE861   Length              0005 (5)\n-6EE863   Flags               01 (1) 'Modification'\n-6EE864   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE868 CENTRAL HEADER #1316  02014B50 (33639248)\n-6EE86C Created Zip Spec      14 (20) '2.0'\n-6EE86D Created OS            00 (0) 'MS-DOS'\n-6EE86E Extract Zip Spec      14 (20) '2.0'\n-6EE86F Extract OS            00 (0) 'MS-DOS'\n-6EE870 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE872 Compression Method    0000 (0) 'Stored'\n-6EE874 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE878 CRC                   0266C937 (40290615)\n-6EE87C Compressed Size       00000AC3 (2755)\n-6EE880 Uncompressed Size     00000AC3 (2755)\n-6EE884 Filename Length       0054 (84)\n-6EE886 Extra Length          0009 (9)\n-6EE888 Comment Length        0000 (0)\n-6EE88A Disk Start            0000 (0)\n-6EE88C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE88E Ext File Attributes   00000000 (0)\n-6EE892 Local Header Offset   0046881B (4622363)\n-6EE896 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE896: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE8EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE8EC   Length              0005 (5)\n-6EE8EE   Flags               01 (1) 'Modification'\n-6EE8EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE8F3 CENTRAL HEADER #1317  02014B50 (33639248)\n-6EE8F7 Created Zip Spec      14 (20) '2.0'\n-6EE8F8 Created OS            00 (0) 'MS-DOS'\n-6EE8F9 Extract Zip Spec      14 (20) '2.0'\n-6EE8FA Extract OS            00 (0) 'MS-DOS'\n-6EE8FB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE8FD Compression Method    0000 (0) 'Stored'\n-6EE8FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE903 CRC                   BFC681E5 (3217457637)\n-6EE907 Compressed Size       00000FB5 (4021)\n-6EE90B Uncompressed Size     00000FB5 (4021)\n-6EE90F Filename Length       0050 (80)\n-6EE911 Extra Length          0009 (9)\n-6EE913 Comment Length        0000 (0)\n-6EE915 Disk Start            0000 (0)\n-6EE917 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE919 Ext File Attributes   00000000 (0)\n-6EE91D Local Header Offset   00469369 (4625257)\n-6EE921 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE921: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE971 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE973   Length              0005 (5)\n-6EE975   Flags               01 (1) 'Modification'\n-6EE976   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE97A CENTRAL HEADER #1318  02014B50 (33639248)\n-6EE97E Created Zip Spec      14 (20) '2.0'\n-6EE97F Created OS            00 (0) 'MS-DOS'\n-6EE980 Extract Zip Spec      14 (20) '2.0'\n-6EE981 Extract OS            00 (0) 'MS-DOS'\n-6EE982 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EE984 Compression Method    0000 (0) 'Stored'\n-6EE986 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EE98A CRC                   3C5C28F1 (1012672753)\n-6EE98E Compressed Size       0000348D (13453)\n-6EE992 Uncompressed Size     0000348D (13453)\n-6EE996 Filename Length       004B (75)\n-6EE998 Extra Length          0009 (9)\n-6EE99A Comment Length        0000 (0)\n-6EE99C Disk Start            0000 (0)\n-6EE99E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EE9A0 Ext File Attributes   00000000 (0)\n-6EE9A4 Local Header Offset   0046A3A5 (4629413)\n-6EE9A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EE9A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EE9F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EE9F5   Length              0005 (5)\n-6EE9F7   Flags               01 (1) 'Modification'\n-6EE9F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EE9FC CENTRAL HEADER #1319  02014B50 (33639248)\n-6EEA00 Created Zip Spec      14 (20) '2.0'\n-6EEA01 Created OS            00 (0) 'MS-DOS'\n-6EEA02 Extract Zip Spec      14 (20) '2.0'\n-6EEA03 Extract OS            00 (0) 'MS-DOS'\n-6EEA04 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEA06 Compression Method    0000 (0) 'Stored'\n-6EEA08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEA0C CRC                   81760C22 (2171997218)\n-6EEA10 Compressed Size       0000086F (2159)\n-6EEA14 Uncompressed Size     0000086F (2159)\n-6EEA18 Filename Length       0053 (83)\n-6EEA1A Extra Length          0009 (9)\n-6EEA1C Comment Length        0000 (0)\n-6EEA1E Disk Start            0000 (0)\n-6EEA20 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEA22 Ext File Attributes   00000000 (0)\n-6EEA26 Local Header Offset   0046D8B4 (4642996)\n-6EEA2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEA2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEA7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEA7F   Length              0005 (5)\n-6EEA81   Flags               01 (1) 'Modification'\n-6EEA82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEA86 CENTRAL HEADER #1320  02014B50 (33639248)\n-6EEA8A Created Zip Spec      14 (20) '2.0'\n-6EEA8B Created OS            00 (0) 'MS-DOS'\n-6EEA8C Extract Zip Spec      14 (20) '2.0'\n-6EEA8D Extract OS            00 (0) 'MS-DOS'\n-6EEA8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEA90 Compression Method    0000 (0) 'Stored'\n-6EEA92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEA96 CRC                   7D70DC8D (2104548493)\n-6EEA9A Compressed Size       00000E7E (3710)\n-6EEA9E Uncompressed Size     00000E7E (3710)\n-6EEAA2 Filename Length       0050 (80)\n-6EEAA4 Extra Length          0009 (9)\n-6EEAA6 Comment Length        0000 (0)\n-6EEAA8 Disk Start            0000 (0)\n-6EEAAA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEAAC Ext File Attributes   00000000 (0)\n-6EEAB0 Local Header Offset   0046E1AD (4645293)\n-6EEAB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEAB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEB04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEB06   Length              0005 (5)\n-6EEB08   Flags               01 (1) 'Modification'\n-6EEB09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEB0D CENTRAL HEADER #1321  02014B50 (33639248)\n-6EEB11 Created Zip Spec      14 (20) '2.0'\n-6EEB12 Created OS            00 (0) 'MS-DOS'\n-6EEB13 Extract Zip Spec      14 (20) '2.0'\n-6EEB14 Extract OS            00 (0) 'MS-DOS'\n-6EEB15 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEB17 Compression Method    0000 (0) 'Stored'\n-6EEB19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEB1D CRC                   BE3056BF (3190838975)\n-6EEB21 Compressed Size       00000848 (2120)\n-6EEB25 Uncompressed Size     00000848 (2120)\n-6EEB29 Filename Length       0048 (72)\n-6EEB2B Extra Length          0009 (9)\n-6EEB2D Comment Length        0000 (0)\n-6EEB2F Disk Start            0000 (0)\n-6EEB31 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEB33 Ext File Attributes   00000000 (0)\n-6EEB37 Local Header Offset   0046F0B2 (4649138)\n-6EEB3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEB3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEB83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEB85   Length              0005 (5)\n-6EEB87   Flags               01 (1) 'Modification'\n-6EEB88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEB8C CENTRAL HEADER #1322  02014B50 (33639248)\n-6EEB90 Created Zip Spec      14 (20) '2.0'\n-6EEB91 Created OS            00 (0) 'MS-DOS'\n-6EEB92 Extract Zip Spec      14 (20) '2.0'\n-6EEB93 Extract OS            00 (0) 'MS-DOS'\n-6EEB94 General Purpose Flag  0000 (0)\n-6EEB96 Compression Method    0000 (0) 'Stored'\n-6EEB98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEB9C CRC                   00000000 (0)\n-6EEBA0 Compressed Size       00000000 (0)\n-6EEBA4 Uncompressed Size     00000000 (0)\n-6EEBA8 Filename Length       0030 (48)\n-6EEBAA Extra Length          0009 (9)\n-6EEBAC Comment Length        0000 (0)\n-6EEBAE Disk Start            0000 (0)\n-6EEBB0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEBB2 Ext File Attributes   00000000 (0)\n-6EEBB6 Local Header Offset   0046F979 (4651385)\n-6EEBBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEBBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEBEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEBEC   Length              0005 (5)\n-6EEBEE   Flags               01 (1) 'Modification'\n-6EEBEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEBF3 CENTRAL HEADER #1323  02014B50 (33639248)\n-6EEBF7 Created Zip Spec      14 (20) '2.0'\n-6EEBF8 Created OS            00 (0) 'MS-DOS'\n-6EEBF9 Extract Zip Spec      14 (20) '2.0'\n-6EEBFA Extract OS            00 (0) 'MS-DOS'\n-6EEBFB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEBFD Compression Method    0000 (0) 'Stored'\n-6EEBFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEC03 CRC                   E322696B (3810683243)\n-6EEC07 Compressed Size       00002E62 (11874)\n-6EEC0B Uncompressed Size     00002E62 (11874)\n-6EEC0F Filename Length       0054 (84)\n-6EEC11 Extra Length          0009 (9)\n-6EEC13 Comment Length        0000 (0)\n-6EEC15 Disk Start            0000 (0)\n-6EEC17 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEC19 Ext File Attributes   00000000 (0)\n-6EEC1D Local Header Offset   0046F9D0 (4651472)\n-6EEC21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEC21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEC75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEC77   Length              0005 (5)\n-6EEC79   Flags               01 (1) 'Modification'\n-6EEC7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEC7E CENTRAL HEADER #1324  02014B50 (33639248)\n-6EEC82 Created Zip Spec      14 (20) '2.0'\n-6EEC83 Created OS            00 (0) 'MS-DOS'\n-6EEC84 Extract Zip Spec      14 (20) '2.0'\n-6EEC85 Extract OS            00 (0) 'MS-DOS'\n-6EEC86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEC88 Compression Method    0000 (0) 'Stored'\n-6EEC8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEC8E CRC                   6CE6F13F (1827074367)\n-6EEC92 Compressed Size       00001D8A (7562)\n-6EEC96 Uncompressed Size     00001D8A (7562)\n-6EEC9A Filename Length       004E (78)\n-6EEC9C Extra Length          0009 (9)\n-6EEC9E Comment Length        0000 (0)\n-6EECA0 Disk Start            0000 (0)\n-6EECA2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EECA4 Ext File Attributes   00000000 (0)\n-6EECA8 Local Header Offset   004728BD (4663485)\n-6EECAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EECAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EECFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EECFC   Length              0005 (5)\n-6EECFE   Flags               01 (1) 'Modification'\n-6EECFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EED03 CENTRAL HEADER #1325  02014B50 (33639248)\n-6EED07 Created Zip Spec      14 (20) '2.0'\n-6EED08 Created OS            00 (0) 'MS-DOS'\n-6EED09 Extract Zip Spec      14 (20) '2.0'\n-6EED0A Extract OS            00 (0) 'MS-DOS'\n-6EED0B General Purpose Flag  0000 (0)\n-6EED0D Compression Method    0000 (0) 'Stored'\n-6EED0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EED13 CRC                   00000000 (0)\n-6EED17 Compressed Size       00000000 (0)\n-6EED1B Uncompressed Size     00000000 (0)\n-6EED1F Filename Length       002B (43)\n-6EED21 Extra Length          0009 (9)\n-6EED23 Comment Length        0000 (0)\n-6EED25 Disk Start            0000 (0)\n-6EED27 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EED29 Ext File Attributes   00000000 (0)\n-6EED2D Local Header Offset   004746CC (4671180)\n-6EED31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EED31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EED5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EED5E   Length              0005 (5)\n-6EED60   Flags               01 (1) 'Modification'\n-6EED61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EED65 CENTRAL HEADER #1326  02014B50 (33639248)\n-6EED69 Created Zip Spec      14 (20) '2.0'\n-6EED6A Created OS            00 (0) 'MS-DOS'\n-6EED6B Extract Zip Spec      14 (20) '2.0'\n-6EED6C Extract OS            00 (0) 'MS-DOS'\n-6EED6D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EED6F Compression Method    0000 (0) 'Stored'\n-6EED71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EED75 CRC                   C9115A1F (3373357599)\n-6EED79 Compressed Size       00000C95 (3221)\n-6EED7D Uncompressed Size     00000C95 (3221)\n-6EED81 Filename Length       0051 (81)\n-6EED83 Extra Length          0009 (9)\n-6EED85 Comment Length        0000 (0)\n-6EED87 Disk Start            0000 (0)\n-6EED89 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EED8B Ext File Attributes   00000000 (0)\n-6EED8F Local Header Offset   0047471E (4671262)\n-6EED93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EED93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEDE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEDE6   Length              0005 (5)\n-6EEDE8   Flags               01 (1) 'Modification'\n-6EEDE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEDED CENTRAL HEADER #1327  02014B50 (33639248)\n-6EEDF1 Created Zip Spec      14 (20) '2.0'\n-6EEDF2 Created OS            00 (0) 'MS-DOS'\n-6EEDF3 Extract Zip Spec      14 (20) '2.0'\n-6EEDF4 Extract OS            00 (0) 'MS-DOS'\n-6EEDF5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEDF7 Compression Method    0000 (0) 'Stored'\n-6EEDF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEDFD CRC                   2197D7D3 (563599315)\n-6EEE01 Compressed Size       00000398 (920)\n-6EEE05 Uncompressed Size     00000398 (920)\n-6EEE09 Filename Length       0047 (71)\n-6EEE0B Extra Length          0009 (9)\n-6EEE0D Comment Length        0000 (0)\n-6EEE0F Disk Start            0000 (0)\n-6EEE11 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEE13 Ext File Attributes   00000000 (0)\n-6EEE17 Local Header Offset   0047543B (4674619)\n-6EEE1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEE1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEE62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEE64   Length              0005 (5)\n-6EEE66   Flags               01 (1) 'Modification'\n-6EEE67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEE6B CENTRAL HEADER #1328  02014B50 (33639248)\n-6EEE6F Created Zip Spec      14 (20) '2.0'\n-6EEE70 Created OS            00 (0) 'MS-DOS'\n-6EEE71 Extract Zip Spec      14 (20) '2.0'\n-6EEE72 Extract OS            00 (0) 'MS-DOS'\n-6EEE73 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEE75 Compression Method    0000 (0) 'Stored'\n-6EEE77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEE7B CRC                   D03865FF (3493357055)\n-6EEE7F Compressed Size       00000454 (1108)\n-6EEE83 Uncompressed Size     00000454 (1108)\n-6EEE87 Filename Length       004A (74)\n-6EEE89 Extra Length          0009 (9)\n-6EEE8B Comment Length        0000 (0)\n-6EEE8D Disk Start            0000 (0)\n-6EEE8F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEE91 Ext File Attributes   00000000 (0)\n-6EEE95 Local Header Offset   00475851 (4675665)\n-6EEE99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEE99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEEE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEEE5   Length              0005 (5)\n-6EEEE7   Flags               01 (1) 'Modification'\n-6EEEE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEEEC CENTRAL HEADER #1329  02014B50 (33639248)\n-6EEEF0 Created Zip Spec      14 (20) '2.0'\n-6EEEF1 Created OS            00 (0) 'MS-DOS'\n-6EEEF2 Extract Zip Spec      14 (20) '2.0'\n-6EEEF3 Extract OS            00 (0) 'MS-DOS'\n-6EEEF4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEEF6 Compression Method    0000 (0) 'Stored'\n-6EEEF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEEFC CRC                   D6056B09 (3590679305)\n-6EEF00 Compressed Size       000039C3 (14787)\n-6EEF04 Uncompressed Size     000039C3 (14787)\n-6EEF08 Filename Length       0040 (64)\n-6EEF0A Extra Length          0009 (9)\n-6EEF0C Comment Length        0000 (0)\n-6EEF0E Disk Start            0000 (0)\n-6EEF10 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEF12 Ext File Attributes   00000000 (0)\n-6EEF16 Local Header Offset   00475D26 (4676902)\n-6EEF1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEF1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEF5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEF5C   Length              0005 (5)\n-6EEF5E   Flags               01 (1) 'Modification'\n-6EEF5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEF63 CENTRAL HEADER #1330  02014B50 (33639248)\n-6EEF67 Created Zip Spec      14 (20) '2.0'\n-6EEF68 Created OS            00 (0) 'MS-DOS'\n-6EEF69 Extract Zip Spec      14 (20) '2.0'\n-6EEF6A Extract OS            00 (0) 'MS-DOS'\n-6EEF6B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEF6D Compression Method    0000 (0) 'Stored'\n-6EEF6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEF73 CRC                   8A132C8F (2316512399)\n-6EEF77 Compressed Size       00000AB9 (2745)\n-6EEF7B Uncompressed Size     00000AB9 (2745)\n-6EEF7F Filename Length       0044 (68)\n-6EEF81 Extra Length          0009 (9)\n-6EEF83 Comment Length        0000 (0)\n-6EEF85 Disk Start            0000 (0)\n-6EEF87 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EEF89 Ext File Attributes   00000000 (0)\n-6EEF8D Local Header Offset   00479760 (4691808)\n-6EEF91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EEF91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EEFD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EEFD7   Length              0005 (5)\n-6EEFD9   Flags               01 (1) 'Modification'\n-6EEFDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EEFDE CENTRAL HEADER #1331  02014B50 (33639248)\n-6EEFE2 Created Zip Spec      14 (20) '2.0'\n-6EEFE3 Created OS            00 (0) 'MS-DOS'\n-6EEFE4 Extract Zip Spec      14 (20) '2.0'\n-6EEFE5 Extract OS            00 (0) 'MS-DOS'\n-6EEFE6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EEFE8 Compression Method    0000 (0) 'Stored'\n-6EEFEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EEFEE CRC                   F9713EB9 (4184948409)\n-6EEFF2 Compressed Size       00001198 (4504)\n-6EEFF6 Uncompressed Size     00001198 (4504)\n-6EEFFA Filename Length       0045 (69)\n-6EEFFC Extra Length          0009 (9)\n-6EEFFE Comment Length        0000 (0)\n-6EF000 Disk Start            0000 (0)\n-6EF002 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF004 Ext File Attributes   00000000 (0)\n-6EF008 Local Header Offset   0047A294 (4694676)\n-6EF00C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF00C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF051 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF053   Length              0005 (5)\n-6EF055   Flags               01 (1) 'Modification'\n-6EF056   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF05A CENTRAL HEADER #1332  02014B50 (33639248)\n-6EF05E Created Zip Spec      14 (20) '2.0'\n-6EF05F Created OS            00 (0) 'MS-DOS'\n-6EF060 Extract Zip Spec      14 (20) '2.0'\n-6EF061 Extract OS            00 (0) 'MS-DOS'\n-6EF062 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF064 Compression Method    0000 (0) 'Stored'\n-6EF066 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF06A CRC                   5914D57F (1494537599)\n-6EF06E Compressed Size       00000A34 (2612)\n-6EF072 Uncompressed Size     00000A34 (2612)\n-6EF076 Filename Length       0050 (80)\n-6EF078 Extra Length          0009 (9)\n-6EF07A Comment Length        0000 (0)\n-6EF07C Disk Start            0000 (0)\n-6EF07E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF080 Ext File Attributes   00000000 (0)\n-6EF084 Local Header Offset   0047B4A8 (4699304)\n-6EF088 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF088: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF0D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF0DA   Length              0005 (5)\n-6EF0DC   Flags               01 (1) 'Modification'\n-6EF0DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF0E1 CENTRAL HEADER #1333  02014B50 (33639248)\n-6EF0E5 Created Zip Spec      14 (20) '2.0'\n-6EF0E6 Created OS            00 (0) 'MS-DOS'\n-6EF0E7 Extract Zip Spec      14 (20) '2.0'\n-6EF0E8 Extract OS            00 (0) 'MS-DOS'\n-6EF0E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF0EB Compression Method    0000 (0) 'Stored'\n-6EF0ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF0F1 CRC                   F9948D9B (4187262363)\n-6EF0F5 Compressed Size       00000403 (1027)\n-6EF0F9 Uncompressed Size     00000403 (1027)\n-6EF0FD Filename Length       0032 (50)\n-6EF0FF Extra Length          0009 (9)\n-6EF101 Comment Length        0000 (0)\n-6EF103 Disk Start            0000 (0)\n-6EF105 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF107 Ext File Attributes   00000000 (0)\n-6EF10B Local Header Offset   0047BF63 (4702051)\n-6EF10F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF10F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF141 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF143   Length              0005 (5)\n-6EF145   Flags               01 (1) 'Modification'\n-6EF146   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF14A CENTRAL HEADER #1334  02014B50 (33639248)\n-6EF14E Created Zip Spec      14 (20) '2.0'\n-6EF14F Created OS            00 (0) 'MS-DOS'\n-6EF150 Extract Zip Spec      14 (20) '2.0'\n-6EF151 Extract OS            00 (0) 'MS-DOS'\n-6EF152 General Purpose Flag  0000 (0)\n-6EF154 Compression Method    0000 (0) 'Stored'\n-6EF156 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF15A CRC                   00000000 (0)\n-6EF15E Compressed Size       00000000 (0)\n-6EF162 Uncompressed Size     00000000 (0)\n-6EF166 Filename Length       002A (42)\n-6EF168 Extra Length          0009 (9)\n-6EF16A Comment Length        0000 (0)\n-6EF16C Disk Start            0000 (0)\n-6EF16E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF170 Ext File Attributes   00000000 (0)\n-6EF174 Local Header Offset   0047C3CF (4703183)\n-6EF178 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF178: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF1A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF1A4   Length              0005 (5)\n-6EF1A6   Flags               01 (1) 'Modification'\n-6EF1A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF1AB CENTRAL HEADER #1335  02014B50 (33639248)\n-6EF1AF Created Zip Spec      14 (20) '2.0'\n-6EF1B0 Created OS            00 (0) 'MS-DOS'\n-6EF1B1 Extract Zip Spec      14 (20) '2.0'\n-6EF1B2 Extract OS            00 (0) 'MS-DOS'\n-6EF1B3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF1B5 Compression Method    0000 (0) 'Stored'\n-6EF1B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF1BB CRC                   D0D8B588 (3503863176)\n-6EF1BF Compressed Size       000006A9 (1705)\n-6EF1C3 Uncompressed Size     000006A9 (1705)\n-6EF1C7 Filename Length       004C (76)\n-6EF1C9 Extra Length          0009 (9)\n-6EF1CB Comment Length        0000 (0)\n-6EF1CD Disk Start            0000 (0)\n-6EF1CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF1D1 Ext File Attributes   00000000 (0)\n-6EF1D5 Local Header Offset   0047C420 (4703264)\n-6EF1D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF1D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF225 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF227   Length              0005 (5)\n-6EF229   Flags               01 (1) 'Modification'\n-6EF22A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF22E CENTRAL HEADER #1336  02014B50 (33639248)\n-6EF232 Created Zip Spec      14 (20) '2.0'\n-6EF233 Created OS            00 (0) 'MS-DOS'\n-6EF234 Extract Zip Spec      14 (20) '2.0'\n-6EF235 Extract OS            00 (0) 'MS-DOS'\n-6EF236 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF238 Compression Method    0000 (0) 'Stored'\n-6EF23A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF23E CRC                   DDD86D2D (3721948461)\n-6EF242 Compressed Size       000006A3 (1699)\n-6EF246 Uncompressed Size     000006A3 (1699)\n-6EF24A Filename Length       0046 (70)\n-6EF24C Extra Length          0009 (9)\n-6EF24E Comment Length        0000 (0)\n-6EF250 Disk Start            0000 (0)\n-6EF252 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF254 Ext File Attributes   00000000 (0)\n-6EF258 Local Header Offset   0047CB4C (4705100)\n-6EF25C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF25C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF2A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF2A4   Length              0005 (5)\n-6EF2A6   Flags               01 (1) 'Modification'\n-6EF2A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF2AB CENTRAL HEADER #1337  02014B50 (33639248)\n-6EF2AF Created Zip Spec      14 (20) '2.0'\n-6EF2B0 Created OS            00 (0) 'MS-DOS'\n-6EF2B1 Extract Zip Spec      14 (20) '2.0'\n-6EF2B2 Extract OS            00 (0) 'MS-DOS'\n-6EF2B3 General Purpose Flag  0000 (0)\n-6EF2B5 Compression Method    0000 (0) 'Stored'\n-6EF2B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF2BB CRC                   00000000 (0)\n-6EF2BF Compressed Size       00000000 (0)\n-6EF2C3 Uncompressed Size     00000000 (0)\n-6EF2C7 Filename Length       0021 (33)\n-6EF2C9 Extra Length          0009 (9)\n-6EF2CB Comment Length        0000 (0)\n-6EF2CD Disk Start            0000 (0)\n-6EF2CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF2D1 Ext File Attributes   00000000 (0)\n-6EF2D5 Local Header Offset   0047D26C (4706924)\n-6EF2D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF2D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF2FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF2FC   Length              0005 (5)\n-6EF2FE   Flags               01 (1) 'Modification'\n-6EF2FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF303 CENTRAL HEADER #1338  02014B50 (33639248)\n-6EF307 Created Zip Spec      14 (20) '2.0'\n-6EF308 Created OS            00 (0) 'MS-DOS'\n-6EF309 Extract Zip Spec      14 (20) '2.0'\n-6EF30A Extract OS            00 (0) 'MS-DOS'\n-6EF30B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF30D Compression Method    0000 (0) 'Stored'\n-6EF30F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF313 CRC                   DD92E439 (3717391417)\n-6EF317 Compressed Size       00000641 (1601)\n-6EF31B Uncompressed Size     00000641 (1601)\n-6EF31F Filename Length       003C (60)\n-6EF321 Extra Length          0009 (9)\n-6EF323 Comment Length        0000 (0)\n-6EF325 Disk Start            0000 (0)\n-6EF327 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF329 Ext File Attributes   00000000 (0)\n-6EF32D Local Header Offset   0047D2B4 (4706996)\n-6EF331 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF331: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF36D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF36F   Length              0005 (5)\n-6EF371   Flags               01 (1) 'Modification'\n-6EF372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF376 CENTRAL HEADER #1339  02014B50 (33639248)\n-6EF37A Created Zip Spec      14 (20) '2.0'\n-6EF37B Created OS            00 (0) 'MS-DOS'\n-6EF37C Extract Zip Spec      14 (20) '2.0'\n-6EF37D Extract OS            00 (0) 'MS-DOS'\n-6EF37E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF380 Compression Method    0000 (0) 'Stored'\n-6EF382 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF386 CRC                   1FAE29F0 (531507696)\n-6EF38A Compressed Size       000009D3 (2515)\n-6EF38E Uncompressed Size     000009D3 (2515)\n-6EF392 Filename Length       0035 (53)\n-6EF394 Extra Length          0009 (9)\n-6EF396 Comment Length        0000 (0)\n-6EF398 Disk Start            0000 (0)\n-6EF39A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF39C Ext File Attributes   00000000 (0)\n-6EF3A0 Local Header Offset   0047D968 (4708712)\n-6EF3A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF3A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF3D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF3DB   Length              0005 (5)\n-6EF3DD   Flags               01 (1) 'Modification'\n-6EF3DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF3E2 CENTRAL HEADER #1340  02014B50 (33639248)\n-6EF3E6 Created Zip Spec      14 (20) '2.0'\n-6EF3E7 Created OS            00 (0) 'MS-DOS'\n-6EF3E8 Extract Zip Spec      14 (20) '2.0'\n-6EF3E9 Extract OS            00 (0) 'MS-DOS'\n-6EF3EA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF3EC Compression Method    0000 (0) 'Stored'\n-6EF3EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF3F2 CRC                   CF695E4A (3479789130)\n-6EF3F6 Compressed Size       00003883 (14467)\n-6EF3FA Uncompressed Size     00003883 (14467)\n-6EF3FE Filename Length       0034 (52)\n-6EF400 Extra Length          0009 (9)\n-6EF402 Comment Length        0000 (0)\n-6EF404 Disk Start            0000 (0)\n-6EF406 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF408 Ext File Attributes   00000000 (0)\n-6EF40C Local Header Offset   0047E3A7 (4711335)\n-6EF410 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF410: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF444 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF446   Length              0005 (5)\n-6EF448   Flags               01 (1) 'Modification'\n-6EF449   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF44D CENTRAL HEADER #1341  02014B50 (33639248)\n-6EF451 Created Zip Spec      14 (20) '2.0'\n-6EF452 Created OS            00 (0) 'MS-DOS'\n-6EF453 Extract Zip Spec      14 (20) '2.0'\n-6EF454 Extract OS            00 (0) 'MS-DOS'\n-6EF455 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF457 Compression Method    0000 (0) 'Stored'\n-6EF459 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF45D CRC                   EE6324FC (3999474940)\n-6EF461 Compressed Size       000004D1 (1233)\n-6EF465 Uncompressed Size     000004D1 (1233)\n-6EF469 Filename Length       003B (59)\n-6EF46B Extra Length          0009 (9)\n-6EF46D Comment Length        0000 (0)\n-6EF46F Disk Start            0000 (0)\n-6EF471 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF473 Ext File Attributes   00000000 (0)\n-6EF477 Local Header Offset   00481C95 (4725909)\n-6EF47B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF47B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF4B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF4B8   Length              0005 (5)\n-6EF4BA   Flags               01 (1) 'Modification'\n-6EF4BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF4BF CENTRAL HEADER #1342  02014B50 (33639248)\n-6EF4C3 Created Zip Spec      14 (20) '2.0'\n-6EF4C4 Created OS            00 (0) 'MS-DOS'\n-6EF4C5 Extract Zip Spec      14 (20) '2.0'\n-6EF4C6 Extract OS            00 (0) 'MS-DOS'\n-6EF4C7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF4C9 Compression Method    0000 (0) 'Stored'\n-6EF4CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF4CF CRC                   8A186986 (2316855686)\n-6EF4D3 Compressed Size       0000477D (18301)\n-6EF4D7 Uncompressed Size     0000477D (18301)\n-6EF4DB Filename Length       003C (60)\n-6EF4DD Extra Length          0009 (9)\n-6EF4DF Comment Length        0000 (0)\n-6EF4E1 Disk Start            0000 (0)\n-6EF4E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF4E5 Ext File Attributes   00000000 (0)\n-6EF4E9 Local Header Offset   004821D8 (4727256)\n-6EF4ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF4ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF529 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF52B   Length              0005 (5)\n-6EF52D   Flags               01 (1) 'Modification'\n-6EF52E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF532 CENTRAL HEADER #1343  02014B50 (33639248)\n-6EF536 Created Zip Spec      14 (20) '2.0'\n-6EF537 Created OS            00 (0) 'MS-DOS'\n-6EF538 Extract Zip Spec      14 (20) '2.0'\n-6EF539 Extract OS            00 (0) 'MS-DOS'\n-6EF53A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF53C Compression Method    0000 (0) 'Stored'\n-6EF53E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF542 CRC                   35541C2F (894704687)\n-6EF546 Compressed Size       000004D1 (1233)\n-6EF54A Uncompressed Size     000004D1 (1233)\n-6EF54E Filename Length       0043 (67)\n-6EF550 Extra Length          0009 (9)\n-6EF552 Comment Length        0000 (0)\n-6EF554 Disk Start            0000 (0)\n-6EF556 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF558 Ext File Attributes   00000000 (0)\n-6EF55C Local Header Offset   004869C8 (4745672)\n-6EF560 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF560: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF5A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF5A5   Length              0005 (5)\n-6EF5A7   Flags               01 (1) 'Modification'\n-6EF5A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF5AC CENTRAL HEADER #1344  02014B50 (33639248)\n-6EF5B0 Created Zip Spec      14 (20) '2.0'\n-6EF5B1 Created OS            00 (0) 'MS-DOS'\n-6EF5B2 Extract Zip Spec      14 (20) '2.0'\n-6EF5B3 Extract OS            00 (0) 'MS-DOS'\n-6EF5B4 General Purpose Flag  0808 (2056)\n-       [Bit  3]              1 'Streamed'\n-       [Bit 11]              1 'Language Encoding'\n-6EF5B6 Compression Method    0000 (0) 'Stored'\n-6EF5B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF5BC CRC                   35541C2F (894704687)\n-6EF5C0 Compressed Size       000004D1 (1233)\n-6EF5C4 Uncompressed Size     000004D1 (1233)\n-6EF5C8 Filename Length       0048 (72)\n-6EF5CA Extra Length          0009 (9)\n-6EF5CC Comment Length        0000 (0)\n-6EF5CE Disk Start            0000 (0)\n-6EF5D0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF5D2 Ext File Attributes   00000000 (0)\n-6EF5D6 Local Header Offset   00486F13 (4747027)\n-6EF5DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF5DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF622 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF624   Length              0005 (5)\n-6EF626   Flags               01 (1) 'Modification'\n-6EF627   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF62B CENTRAL HEADER #1345  02014B50 (33639248)\n-6EF62F Created Zip Spec      14 (20) '2.0'\n-6EF630 Created OS            00 (0) 'MS-DOS'\n-6EF631 Extract Zip Spec      14 (20) '2.0'\n-6EF632 Extract OS            00 (0) 'MS-DOS'\n-6EF633 General Purpose Flag  0808 (2056)\n-       [Bit  3]              1 'Streamed'\n-       [Bit 11]              1 'Language Encoding'\n-6EF635 Compression Method    0000 (0) 'Stored'\n-6EF637 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF63B CRC                   35541C2F (894704687)\n-6EF63F Compressed Size       000004D1 (1233)\n-6EF643 Uncompressed Size     000004D1 (1233)\n-6EF647 Filename Length       0050 (80)\n-6EF649 Extra Length          0009 (9)\n-6EF64B Comment Length        0000 (0)\n-6EF64D Disk Start            0000 (0)\n-6EF64F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF651 Ext File Attributes   00000000 (0)\n-6EF655 Local Header Offset   00487463 (4748387)\n-6EF659 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF659: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF6A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF6AB   Length              0005 (5)\n-6EF6AD   Flags               01 (1) 'Modification'\n-6EF6AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF6B2 CENTRAL HEADER #1346  02014B50 (33639248)\n-6EF6B6 Created Zip Spec      14 (20) '2.0'\n-6EF6B7 Created OS            00 (0) 'MS-DOS'\n-6EF6B8 Extract Zip Spec      14 (20) '2.0'\n-6EF6B9 Extract OS            00 (0) 'MS-DOS'\n-6EF6BA General Purpose Flag  0000 (0)\n-6EF6BC Compression Method    0000 (0) 'Stored'\n-6EF6BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF6C2 CRC                   00000000 (0)\n-6EF6C6 Compressed Size       00000000 (0)\n-6EF6CA Uncompressed Size     00000000 (0)\n-6EF6CE Filename Length       0020 (32)\n-6EF6D0 Extra Length          0009 (9)\n-6EF6D2 Comment Length        0000 (0)\n-6EF6D4 Disk Start            0000 (0)\n-6EF6D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF6D8 Ext File Attributes   00000000 (0)\n-6EF6DC Local Header Offset   004879BB (4749755)\n-6EF6E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF6E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF700 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF702   Length              0005 (5)\n-6EF704   Flags               01 (1) 'Modification'\n-6EF705   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF709 CENTRAL HEADER #1347  02014B50 (33639248)\n-6EF70D Created Zip Spec      14 (20) '2.0'\n-6EF70E Created OS            00 (0) 'MS-DOS'\n-6EF70F Extract Zip Spec      14 (20) '2.0'\n-6EF710 Extract OS            00 (0) 'MS-DOS'\n-6EF711 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF713 Compression Method    0000 (0) 'Stored'\n-6EF715 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF719 CRC                   AE92FDCB (2928868811)\n-6EF71D Compressed Size       00001744 (5956)\n-6EF721 Uncompressed Size     00001744 (5956)\n-6EF725 Filename Length       0032 (50)\n-6EF727 Extra Length          0009 (9)\n-6EF729 Comment Length        0000 (0)\n-6EF72B Disk Start            0000 (0)\n-6EF72D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF72F Ext File Attributes   00000000 (0)\n-6EF733 Local Header Offset   00487A02 (4749826)\n-6EF737 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF737: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF769 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF76B   Length              0005 (5)\n-6EF76D   Flags               01 (1) 'Modification'\n-6EF76E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF772 CENTRAL HEADER #1348  02014B50 (33639248)\n-6EF776 Created Zip Spec      14 (20) '2.0'\n-6EF777 Created OS            00 (0) 'MS-DOS'\n-6EF778 Extract Zip Spec      14 (20) '2.0'\n-6EF779 Extract OS            00 (0) 'MS-DOS'\n-6EF77A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF77C Compression Method    0000 (0) 'Stored'\n-6EF77E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF782 CRC                   1162A7F0 (291678192)\n-6EF786 Compressed Size       00001680 (5760)\n-6EF78A Uncompressed Size     00001680 (5760)\n-6EF78E Filename Length       0039 (57)\n-6EF790 Extra Length          0009 (9)\n-6EF792 Comment Length        0000 (0)\n-6EF794 Disk Start            0000 (0)\n-6EF796 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF798 Ext File Attributes   00000000 (0)\n-6EF79C Local Header Offset   004891AF (4755887)\n-6EF7A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF7A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF7D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF7DB   Length              0005 (5)\n-6EF7DD   Flags               01 (1) 'Modification'\n-6EF7DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF7E2 CENTRAL HEADER #1349  02014B50 (33639248)\n-6EF7E6 Created Zip Spec      14 (20) '2.0'\n-6EF7E7 Created OS            00 (0) 'MS-DOS'\n-6EF7E8 Extract Zip Spec      14 (20) '2.0'\n-6EF7E9 Extract OS            00 (0) 'MS-DOS'\n-6EF7EA General Purpose Flag  0000 (0)\n-6EF7EC Compression Method    0000 (0) 'Stored'\n-6EF7EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF7F2 CRC                   00000000 (0)\n-6EF7F6 Compressed Size       00000000 (0)\n-6EF7FA Uncompressed Size     00000000 (0)\n-6EF7FE Filename Length       001F (31)\n-6EF800 Extra Length          0009 (9)\n-6EF802 Comment Length        0000 (0)\n-6EF804 Disk Start            0000 (0)\n-6EF806 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF808 Ext File Attributes   00000000 (0)\n-6EF80C Local Header Offset   0048A89F (4761759)\n-6EF810 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF810: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF82F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF831   Length              0005 (5)\n-6EF833   Flags               01 (1) 'Modification'\n-6EF834   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF838 CENTRAL HEADER #1350  02014B50 (33639248)\n-6EF83C Created Zip Spec      14 (20) '2.0'\n-6EF83D Created OS            00 (0) 'MS-DOS'\n-6EF83E Extract Zip Spec      14 (20) '2.0'\n-6EF83F Extract OS            00 (0) 'MS-DOS'\n-6EF840 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF842 Compression Method    0000 (0) 'Stored'\n-6EF844 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF848 CRC                   E5134667 (3843245671)\n-6EF84C Compressed Size       00003DF8 (15864)\n-6EF850 Uncompressed Size     00003DF8 (15864)\n-6EF854 Filename Length       0030 (48)\n-6EF856 Extra Length          0009 (9)\n-6EF858 Comment Length        0000 (0)\n-6EF85A Disk Start            0000 (0)\n-6EF85C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF85E Ext File Attributes   00000000 (0)\n-6EF862 Local Header Offset   0048A8E5 (4761829)\n-6EF866 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6EC75B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC75D   Length              0005 (5)\n+6EC75F   Flags               01 (1) 'Modification'\n+6EC760   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC764 CENTRAL HEADER #290   02014B50 (33639248)\n+6EC768 Created Zip Spec      14 (20) '2.0'\n+6EC769 Created OS            00 (0) 'MS-DOS'\n+6EC76A Extract Zip Spec      14 (20) '2.0'\n+6EC76B Extract OS            00 (0) 'MS-DOS'\n+6EC76C General Purpose Flag  0000 (0)\n+6EC76E Compression Method    0000 (0) 'Stored'\n+6EC770 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC774 CRC                   00000000 (0)\n+6EC778 Compressed Size       00000000 (0)\n+6EC77C Uncompressed Size     00000000 (0)\n+6EC780 Filename Length       0039 (57)\n+6EC782 Extra Length          0009 (9)\n+6EC784 Comment Length        0000 (0)\n+6EC786 Disk Start            0000 (0)\n+6EC788 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC78A Ext File Attributes   00000000 (0)\n+6EC78E Local Header Offset   00078D6D (494957)\n+6EC792 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC792: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC7CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC7CD   Length              0005 (5)\n+6EC7CF   Flags               01 (1) 'Modification'\n+6EC7D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC7D4 CENTRAL HEADER #291   02014B50 (33639248)\n+6EC7D8 Created Zip Spec      14 (20) '2.0'\n+6EC7D9 Created OS            00 (0) 'MS-DOS'\n+6EC7DA Extract Zip Spec      14 (20) '2.0'\n+6EC7DB Extract OS            00 (0) 'MS-DOS'\n+6EC7DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC7DE Compression Method    0000 (0) 'Stored'\n+6EC7E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC7E4 CRC                   00000000 (0)\n+6EC7E8 Compressed Size       00000000 (0)\n+6EC7EC Uncompressed Size     00000000 (0)\n+6EC7F0 Filename Length       0047 (71)\n+6EC7F2 Extra Length          0009 (9)\n+6EC7F4 Comment Length        0000 (0)\n+6EC7F6 Disk Start            0000 (0)\n+6EC7F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC7FA Ext File Attributes   00000000 (0)\n+6EC7FE Local Header Offset   00078DCD (495053)\n+6EC802 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC802: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC849 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC84B   Length              0005 (5)\n+6EC84D   Flags               01 (1) 'Modification'\n+6EC84E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC852 CENTRAL HEADER #292   02014B50 (33639248)\n+6EC856 Created Zip Spec      14 (20) '2.0'\n+6EC857 Created OS            00 (0) 'MS-DOS'\n+6EC858 Extract Zip Spec      14 (20) '2.0'\n+6EC859 Extract OS            00 (0) 'MS-DOS'\n+6EC85A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC85C Compression Method    0000 (0) 'Stored'\n+6EC85E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC862 CRC                   CA9739B0 (3398908336)\n+6EC866 Compressed Size       0000087F (2175)\n+6EC86A Uncompressed Size     0000087F (2175)\n+6EC86E Filename Length       0040 (64)\n+6EC870 Extra Length          0009 (9)\n+6EC872 Comment Length        0000 (0)\n+6EC874 Disk Start            0000 (0)\n+6EC876 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC878 Ext File Attributes   00000000 (0)\n+6EC87C Local Header Offset   00078E4B (495179)\n+6EC880 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC880: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC8C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC8C2   Length              0005 (5)\n+6EC8C4   Flags               01 (1) 'Modification'\n+6EC8C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC8C9 CENTRAL HEADER #293   02014B50 (33639248)\n+6EC8CD Created Zip Spec      14 (20) '2.0'\n+6EC8CE Created OS            00 (0) 'MS-DOS'\n+6EC8CF Extract Zip Spec      14 (20) '2.0'\n+6EC8D0 Extract OS            00 (0) 'MS-DOS'\n+6EC8D1 General Purpose Flag  0000 (0)\n+6EC8D3 Compression Method    0000 (0) 'Stored'\n+6EC8D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC8D9 CRC                   00000000 (0)\n+6EC8DD Compressed Size       00000000 (0)\n+6EC8E1 Uncompressed Size     00000000 (0)\n+6EC8E5 Filename Length       0043 (67)\n+6EC8E7 Extra Length          0009 (9)\n+6EC8E9 Comment Length        0000 (0)\n+6EC8EB Disk Start            0000 (0)\n+6EC8ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC8EF Ext File Attributes   00000000 (0)\n+6EC8F3 Local Header Offset   00079741 (497473)\n+6EC8F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC8F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC93A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC93C   Length              0005 (5)\n+6EC93E   Flags               01 (1) 'Modification'\n+6EC93F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC943 CENTRAL HEADER #294   02014B50 (33639248)\n+6EC947 Created Zip Spec      14 (20) '2.0'\n+6EC948 Created OS            00 (0) 'MS-DOS'\n+6EC949 Extract Zip Spec      14 (20) '2.0'\n+6EC94A Extract OS            00 (0) 'MS-DOS'\n+6EC94B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC94D Compression Method    0000 (0) 'Stored'\n+6EC94F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC953 CRC                   00000000 (0)\n+6EC957 Compressed Size       00000000 (0)\n+6EC95B Uncompressed Size     00000000 (0)\n+6EC95F Filename Length       0051 (81)\n+6EC961 Extra Length          0009 (9)\n+6EC963 Comment Length        0000 (0)\n+6EC965 Disk Start            0000 (0)\n+6EC967 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC969 Ext File Attributes   00000000 (0)\n+6EC96D Local Header Offset   000797AB (497579)\n+6EC971 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC971: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EC9C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EC9C4   Length              0005 (5)\n+6EC9C6   Flags               01 (1) 'Modification'\n+6EC9C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EC9CB CENTRAL HEADER #295   02014B50 (33639248)\n+6EC9CF Created Zip Spec      14 (20) '2.0'\n+6EC9D0 Created OS            00 (0) 'MS-DOS'\n+6EC9D1 Extract Zip Spec      14 (20) '2.0'\n+6EC9D2 Extract OS            00 (0) 'MS-DOS'\n+6EC9D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EC9D5 Compression Method    0000 (0) 'Stored'\n+6EC9D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EC9DB CRC                   D7D86FD9 (3621285849)\n+6EC9DF Compressed Size       000007C2 (1986)\n+6EC9E3 Uncompressed Size     000007C2 (1986)\n+6EC9E7 Filename Length       004A (74)\n+6EC9E9 Extra Length          0009 (9)\n+6EC9EB Comment Length        0000 (0)\n+6EC9ED Disk Start            0000 (0)\n+6EC9EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EC9F1 Ext File Attributes   00000000 (0)\n+6EC9F5 Local Header Offset   00079833 (497715)\n+6EC9F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EC9F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECA43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECA45   Length              0005 (5)\n+6ECA47   Flags               01 (1) 'Modification'\n+6ECA48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECA4C CENTRAL HEADER #296   02014B50 (33639248)\n+6ECA50 Created Zip Spec      14 (20) '2.0'\n+6ECA51 Created OS            00 (0) 'MS-DOS'\n+6ECA52 Extract Zip Spec      14 (20) '2.0'\n+6ECA53 Extract OS            00 (0) 'MS-DOS'\n+6ECA54 General Purpose Flag  0000 (0)\n+6ECA56 Compression Method    0000 (0) 'Stored'\n+6ECA58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECA5C CRC                   00000000 (0)\n+6ECA60 Compressed Size       00000000 (0)\n+6ECA64 Uncompressed Size     00000000 (0)\n+6ECA68 Filename Length       003D (61)\n+6ECA6A Extra Length          0009 (9)\n+6ECA6C Comment Length        0000 (0)\n+6ECA6E Disk Start            0000 (0)\n+6ECA70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECA72 Ext File Attributes   00000000 (0)\n+6ECA76 Local Header Offset   0007A076 (499830)\n+6ECA7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECA7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECAB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECAB9   Length              0005 (5)\n+6ECABB   Flags               01 (1) 'Modification'\n+6ECABC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECAC0 CENTRAL HEADER #297   02014B50 (33639248)\n+6ECAC4 Created Zip Spec      14 (20) '2.0'\n+6ECAC5 Created OS            00 (0) 'MS-DOS'\n+6ECAC6 Extract Zip Spec      14 (20) '2.0'\n+6ECAC7 Extract OS            00 (0) 'MS-DOS'\n+6ECAC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECACA Compression Method    0000 (0) 'Stored'\n+6ECACC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECAD0 CRC                   00000000 (0)\n+6ECAD4 Compressed Size       00000000 (0)\n+6ECAD8 Uncompressed Size     00000000 (0)\n+6ECADC Filename Length       004B (75)\n+6ECADE Extra Length          0009 (9)\n+6ECAE0 Comment Length        0000 (0)\n+6ECAE2 Disk Start            0000 (0)\n+6ECAE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECAE6 Ext File Attributes   00000000 (0)\n+6ECAEA Local Header Offset   0007A0DA (499930)\n+6ECAEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECAEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECB39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECB3B   Length              0005 (5)\n+6ECB3D   Flags               01 (1) 'Modification'\n+6ECB3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECB42 CENTRAL HEADER #298   02014B50 (33639248)\n+6ECB46 Created Zip Spec      14 (20) '2.0'\n+6ECB47 Created OS            00 (0) 'MS-DOS'\n+6ECB48 Extract Zip Spec      14 (20) '2.0'\n+6ECB49 Extract OS            00 (0) 'MS-DOS'\n+6ECB4A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECB4C Compression Method    0000 (0) 'Stored'\n+6ECB4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECB52 CRC                   A4C37506 (2764272902)\n+6ECB56 Compressed Size       00000EA7 (3751)\n+6ECB5A Uncompressed Size     00000EA7 (3751)\n+6ECB5E Filename Length       0044 (68)\n+6ECB60 Extra Length          0009 (9)\n+6ECB62 Comment Length        0000 (0)\n+6ECB64 Disk Start            0000 (0)\n+6ECB66 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECB68 Ext File Attributes   00000000 (0)\n+6ECB6C Local Header Offset   0007A15C (500060)\n+6ECB70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECB70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECBB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECBB6   Length              0005 (5)\n+6ECBB8   Flags               01 (1) 'Modification'\n+6ECBB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECBBD CENTRAL HEADER #299   02014B50 (33639248)\n+6ECBC1 Created Zip Spec      14 (20) '2.0'\n+6ECBC2 Created OS            00 (0) 'MS-DOS'\n+6ECBC3 Extract Zip Spec      14 (20) '2.0'\n+6ECBC4 Extract OS            00 (0) 'MS-DOS'\n+6ECBC5 General Purpose Flag  0000 (0)\n+6ECBC7 Compression Method    0000 (0) 'Stored'\n+6ECBC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECBCD CRC                   00000000 (0)\n+6ECBD1 Compressed Size       00000000 (0)\n+6ECBD5 Uncompressed Size     00000000 (0)\n+6ECBD9 Filename Length       003F (63)\n+6ECBDB Extra Length          0009 (9)\n+6ECBDD Comment Length        0000 (0)\n+6ECBDF Disk Start            0000 (0)\n+6ECBE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECBE3 Ext File Attributes   00000000 (0)\n+6ECBE7 Local Header Offset   0007B07E (503934)\n+6ECBEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECBEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECC2A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECC2C   Length              0005 (5)\n+6ECC2E   Flags               01 (1) 'Modification'\n+6ECC2F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECC33 CENTRAL HEADER #300   02014B50 (33639248)\n+6ECC37 Created Zip Spec      14 (20) '2.0'\n+6ECC38 Created OS            00 (0) 'MS-DOS'\n+6ECC39 Extract Zip Spec      14 (20) '2.0'\n+6ECC3A Extract OS            00 (0) 'MS-DOS'\n+6ECC3B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECC3D Compression Method    0000 (0) 'Stored'\n+6ECC3F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECC43 CRC                   00000000 (0)\n+6ECC47 Compressed Size       00000000 (0)\n+6ECC4B Uncompressed Size     00000000 (0)\n+6ECC4F Filename Length       004D (77)\n+6ECC51 Extra Length          0009 (9)\n+6ECC53 Comment Length        0000 (0)\n+6ECC55 Disk Start            0000 (0)\n+6ECC57 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECC59 Ext File Attributes   00000000 (0)\n+6ECC5D Local Header Offset   0007B0E4 (504036)\n+6ECC61 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECC61: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECCAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECCB0   Length              0005 (5)\n+6ECCB2   Flags               01 (1) 'Modification'\n+6ECCB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECCB7 CENTRAL HEADER #301   02014B50 (33639248)\n+6ECCBB Created Zip Spec      14 (20) '2.0'\n+6ECCBC Created OS            00 (0) 'MS-DOS'\n+6ECCBD Extract Zip Spec      14 (20) '2.0'\n+6ECCBE Extract OS            00 (0) 'MS-DOS'\n+6ECCBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECCC1 Compression Method    0000 (0) 'Stored'\n+6ECCC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECCC7 CRC                   619718E2 (1637292258)\n+6ECCCB Compressed Size       000008F1 (2289)\n+6ECCCF Uncompressed Size     000008F1 (2289)\n+6ECCD3 Filename Length       0046 (70)\n+6ECCD5 Extra Length          0009 (9)\n+6ECCD7 Comment Length        0000 (0)\n+6ECCD9 Disk Start            0000 (0)\n+6ECCDB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECCDD Ext File Attributes   00000000 (0)\n+6ECCE1 Local Header Offset   0007B168 (504168)\n+6ECCE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECCE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECD2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECD2D   Length              0005 (5)\n+6ECD2F   Flags               01 (1) 'Modification'\n+6ECD30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECD34 CENTRAL HEADER #302   02014B50 (33639248)\n+6ECD38 Created Zip Spec      14 (20) '2.0'\n+6ECD39 Created OS            00 (0) 'MS-DOS'\n+6ECD3A Extract Zip Spec      14 (20) '2.0'\n+6ECD3B Extract OS            00 (0) 'MS-DOS'\n+6ECD3C General Purpose Flag  0000 (0)\n+6ECD3E Compression Method    0000 (0) 'Stored'\n+6ECD40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECD44 CRC                   00000000 (0)\n+6ECD48 Compressed Size       00000000 (0)\n+6ECD4C Uncompressed Size     00000000 (0)\n+6ECD50 Filename Length       0026 (38)\n+6ECD52 Extra Length          0009 (9)\n+6ECD54 Comment Length        0000 (0)\n+6ECD56 Disk Start            0000 (0)\n+6ECD58 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECD5A Ext File Attributes   00000000 (0)\n+6ECD5E Local Header Offset   0007BAD6 (506582)\n+6ECD62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECD62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECD88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECD8A   Length              0005 (5)\n+6ECD8C   Flags               01 (1) 'Modification'\n+6ECD8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECD91 CENTRAL HEADER #303   02014B50 (33639248)\n+6ECD95 Created Zip Spec      14 (20) '2.0'\n+6ECD96 Created OS            00 (0) 'MS-DOS'\n+6ECD97 Extract Zip Spec      14 (20) '2.0'\n+6ECD98 Extract OS            00 (0) 'MS-DOS'\n+6ECD99 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECD9B Compression Method    0000 (0) 'Stored'\n+6ECD9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECDA1 CRC                   00000000 (0)\n+6ECDA5 Compressed Size       00000000 (0)\n+6ECDA9 Uncompressed Size     00000000 (0)\n+6ECDAD Filename Length       0034 (52)\n+6ECDAF Extra Length          0009 (9)\n+6ECDB1 Comment Length        0000 (0)\n+6ECDB3 Disk Start            0000 (0)\n+6ECDB5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECDB7 Ext File Attributes   00000000 (0)\n+6ECDBB Local Header Offset   0007BB23 (506659)\n+6ECDBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECDBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECDF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECDF5   Length              0005 (5)\n+6ECDF7   Flags               01 (1) 'Modification'\n+6ECDF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECDFC CENTRAL HEADER #304   02014B50 (33639248)\n+6ECE00 Created Zip Spec      14 (20) '2.0'\n+6ECE01 Created OS            00 (0) 'MS-DOS'\n+6ECE02 Extract Zip Spec      14 (20) '2.0'\n+6ECE03 Extract OS            00 (0) 'MS-DOS'\n+6ECE04 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECE06 Compression Method    0000 (0) 'Stored'\n+6ECE08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECE0C CRC                   45B97541 (1169782081)\n+6ECE10 Compressed Size       0000A69D (42653)\n+6ECE14 Uncompressed Size     0000A69D (42653)\n+6ECE18 Filename Length       002D (45)\n+6ECE1A Extra Length          0009 (9)\n+6ECE1C Comment Length        0000 (0)\n+6ECE1E Disk Start            0000 (0)\n+6ECE20 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECE22 Ext File Attributes   00000000 (0)\n+6ECE26 Local Header Offset   0007BB8E (506766)\n+6ECE2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECE2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECE57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECE59   Length              0005 (5)\n+6ECE5B   Flags               01 (1) 'Modification'\n+6ECE5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECE60 CENTRAL HEADER #305   02014B50 (33639248)\n+6ECE64 Created Zip Spec      14 (20) '2.0'\n+6ECE65 Created OS            00 (0) 'MS-DOS'\n+6ECE66 Extract Zip Spec      14 (20) '2.0'\n+6ECE67 Extract OS            00 (0) 'MS-DOS'\n+6ECE68 General Purpose Flag  0000 (0)\n+6ECE6A Compression Method    0000 (0) 'Stored'\n+6ECE6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECE70 CRC                   00000000 (0)\n+6ECE74 Compressed Size       00000000 (0)\n+6ECE78 Uncompressed Size     00000000 (0)\n+6ECE7C Filename Length       0012 (18)\n+6ECE7E Extra Length          0009 (9)\n+6ECE80 Comment Length        0000 (0)\n+6ECE82 Disk Start            0000 (0)\n+6ECE84 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECE86 Ext File Attributes   00000000 (0)\n+6ECE8A Local Header Offset   0008628F (549519)\n+6ECE8E Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECE8E: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECEA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECEA2   Length              0005 (5)\n+6ECEA4   Flags               01 (1) 'Modification'\n+6ECEA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECEA9 CENTRAL HEADER #306   02014B50 (33639248)\n+6ECEAD Created Zip Spec      14 (20) '2.0'\n+6ECEAE Created OS            00 (0) 'MS-DOS'\n+6ECEAF Extract Zip Spec      14 (20) '2.0'\n+6ECEB0 Extract OS            00 (0) 'MS-DOS'\n+6ECEB1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECEB3 Compression Method    0000 (0) 'Stored'\n+6ECEB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECEB9 CRC                   299613D2 (697701330)\n+6ECEBD Compressed Size       000000B2 (178)\n+6ECEC1 Uncompressed Size     000000B2 (178)\n+6ECEC5 Filename Length       0043 (67)\n+6ECEC7 Extra Length          0009 (9)\n+6ECEC9 Comment Length        0000 (0)\n+6ECECB Disk Start            0000 (0)\n+6ECECD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECECF Ext File Attributes   00000000 (0)\n+6ECED3 Local Header Offset   000862C8 (549576)\n+6ECED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECF1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECF1C   Length              0005 (5)\n+6ECF1E   Flags               01 (1) 'Modification'\n+6ECF1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECF23 CENTRAL HEADER #307   02014B50 (33639248)\n+6ECF27 Created Zip Spec      14 (20) '2.0'\n+6ECF28 Created OS            00 (0) 'MS-DOS'\n+6ECF29 Extract Zip Spec      14 (20) '2.0'\n+6ECF2A Extract OS            00 (0) 'MS-DOS'\n+6ECF2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECF2D Compression Method    0000 (0) 'Stored'\n+6ECF2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECF33 CRC                   6642E973 (1715661171)\n+6ECF37 Compressed Size       000000C8 (200)\n+6ECF3B Uncompressed Size     000000C8 (200)\n+6ECF3F Filename Length       0018 (24)\n+6ECF41 Extra Length          0009 (9)\n+6ECF43 Comment Length        0000 (0)\n+6ECF45 Disk Start            0000 (0)\n+6ECF47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECF49 Ext File Attributes   00000000 (0)\n+6ECF4D Local Header Offset   000863F4 (549876)\n+6ECF51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECF51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECF69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECF6B   Length              0005 (5)\n+6ECF6D   Flags               01 (1) 'Modification'\n+6ECF6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECF72 CENTRAL HEADER #308   02014B50 (33639248)\n+6ECF76 Created Zip Spec      14 (20) '2.0'\n+6ECF77 Created OS            00 (0) 'MS-DOS'\n+6ECF78 Extract Zip Spec      14 (20) '2.0'\n+6ECF79 Extract OS            00 (0) 'MS-DOS'\n+6ECF7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECF7C Compression Method    0000 (0) 'Stored'\n+6ECF7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECF82 CRC                   03B2110A (62001418)\n+6ECF86 Compressed Size       00000091 (145)\n+6ECF8A Uncompressed Size     00000091 (145)\n+6ECF8E Filename Length       0017 (23)\n+6ECF90 Extra Length          0009 (9)\n+6ECF92 Comment Length        0000 (0)\n+6ECF94 Disk Start            0000 (0)\n+6ECF96 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECF98 Ext File Attributes   00000000 (0)\n+6ECF9C Local Header Offset   0008650B (550155)\n+6ECFA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECFA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECFB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECFB9   Length              0005 (5)\n+6ECFBB   Flags               01 (1) 'Modification'\n+6ECFBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ECFC0 CENTRAL HEADER #309   02014B50 (33639248)\n+6ECFC4 Created Zip Spec      14 (20) '2.0'\n+6ECFC5 Created OS            00 (0) 'MS-DOS'\n+6ECFC6 Extract Zip Spec      14 (20) '2.0'\n+6ECFC7 Extract OS            00 (0) 'MS-DOS'\n+6ECFC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ECFCA Compression Method    0000 (0) 'Stored'\n+6ECFCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ECFD0 CRC                   812B2402 (2167088130)\n+6ECFD4 Compressed Size       0000048E (1166)\n+6ECFD8 Uncompressed Size     0000048E (1166)\n+6ECFDC Filename Length       000E (14)\n+6ECFDE Extra Length          0009 (9)\n+6ECFE0 Comment Length        0000 (0)\n+6ECFE2 Disk Start            0000 (0)\n+6ECFE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ECFE6 Ext File Attributes   00000000 (0)\n+6ECFEA Local Header Offset   000865EA (550378)\n+6ECFEE Filename              'XXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ECFEE: Filename 'XXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ECFFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ECFFE   Length              0005 (5)\n+6ED000   Flags               01 (1) 'Modification'\n+6ED001   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED005 CENTRAL HEADER #310   02014B50 (33639248)\n+6ED009 Created Zip Spec      14 (20) '2.0'\n+6ED00A Created OS            00 (0) 'MS-DOS'\n+6ED00B Extract Zip Spec      14 (20) '2.0'\n+6ED00C Extract OS            00 (0) 'MS-DOS'\n+6ED00D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED00F Compression Method    0000 (0) 'Stored'\n+6ED011 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED015 CRC                   79E45B46 (2045008710)\n+6ED019 Compressed Size       00000B1D (2845)\n+6ED01D Uncompressed Size     00000B1D (2845)\n+6ED021 Filename Length       0011 (17)\n+6ED023 Extra Length          0009 (9)\n+6ED025 Comment Length        0000 (0)\n+6ED027 Disk Start            0000 (0)\n+6ED029 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED02B Ext File Attributes   00000000 (0)\n+6ED02F Local Header Offset   00086ABD (551613)\n+6ED033 Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED033: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED044 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED046   Length              0005 (5)\n+6ED048   Flags               01 (1) 'Modification'\n+6ED049   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED04D CENTRAL HEADER #311   02014B50 (33639248)\n+6ED051 Created Zip Spec      14 (20) '2.0'\n+6ED052 Created OS            00 (0) 'MS-DOS'\n+6ED053 Extract Zip Spec      14 (20) '2.0'\n+6ED054 Extract OS            00 (0) 'MS-DOS'\n+6ED055 General Purpose Flag  0000 (0)\n+6ED057 Compression Method    0000 (0) 'Stored'\n+6ED059 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED05D CRC                   00000000 (0)\n+6ED061 Compressed Size       00000000 (0)\n+6ED065 Uncompressed Size     00000000 (0)\n+6ED069 Filename Length       0004 (4)\n+6ED06B Extra Length          0009 (9)\n+6ED06D Comment Length        0000 (0)\n+6ED06F Disk Start            0000 (0)\n+6ED071 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED073 Ext File Attributes   00000000 (0)\n+6ED077 Local Header Offset   00087622 (554530)\n+6ED07B Filename              'XXXX'\n+#\n+# WARNING: Offset 0x6ED07B: Filename 'XXXX'\n+#          Zero length filename\n+#\n+6ED07F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED081   Length              0005 (5)\n+6ED083   Flags               01 (1) 'Modification'\n+6ED084   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED088 CENTRAL HEADER #312   02014B50 (33639248)\n+6ED08C Created Zip Spec      14 (20) '2.0'\n+6ED08D Created OS            00 (0) 'MS-DOS'\n+6ED08E Extract Zip Spec      14 (20) '2.0'\n+6ED08F Extract OS            00 (0) 'MS-DOS'\n+6ED090 General Purpose Flag  0000 (0)\n+6ED092 Compression Method    0000 (0) 'Stored'\n+6ED094 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED098 CRC                   00000000 (0)\n+6ED09C Compressed Size       00000000 (0)\n+6ED0A0 Uncompressed Size     00000000 (0)\n+6ED0A4 Filename Length       000C (12)\n+6ED0A6 Extra Length          0009 (9)\n+6ED0A8 Comment Length        0000 (0)\n+6ED0AA Disk Start            0000 (0)\n+6ED0AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED0AE Ext File Attributes   00000000 (0)\n+6ED0B2 Local Header Offset   0008764D (554573)\n+6ED0B6 Filename              'XXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED0B6: Filename 'XXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED0C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED0C4   Length              0005 (5)\n+6ED0C6   Flags               01 (1) 'Modification'\n+6ED0C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED0CB CENTRAL HEADER #313   02014B50 (33639248)\n+6ED0CF Created Zip Spec      14 (20) '2.0'\n+6ED0D0 Created OS            00 (0) 'MS-DOS'\n+6ED0D1 Extract Zip Spec      14 (20) '2.0'\n+6ED0D2 Extract OS            00 (0) 'MS-DOS'\n+6ED0D3 General Purpose Flag  0000 (0)\n+6ED0D5 Compression Method    0000 (0) 'Stored'\n+6ED0D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED0DB CRC                   00000000 (0)\n+6ED0DF Compressed Size       00000000 (0)\n+6ED0E3 Uncompressed Size     00000000 (0)\n+6ED0E7 Filename Length       0010 (16)\n+6ED0E9 Extra Length          0009 (9)\n+6ED0EB Comment Length        0000 (0)\n+6ED0ED Disk Start            0000 (0)\n+6ED0EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED0F1 Ext File Attributes   00000000 (0)\n+6ED0F5 Local Header Offset   00087680 (554624)\n+6ED0F9 Filename              'XXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED0F9: Filename 'XXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED109 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED10B   Length              0005 (5)\n+6ED10D   Flags               01 (1) 'Modification'\n+6ED10E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED112 CENTRAL HEADER #314   02014B50 (33639248)\n+6ED116 Created Zip Spec      14 (20) '2.0'\n+6ED117 Created OS            00 (0) 'MS-DOS'\n+6ED118 Extract Zip Spec      14 (20) '2.0'\n+6ED119 Extract OS            00 (0) 'MS-DOS'\n+6ED11A General Purpose Flag  0000 (0)\n+6ED11C Compression Method    0000 (0) 'Stored'\n+6ED11E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED122 CRC                   00000000 (0)\n+6ED126 Compressed Size       00000000 (0)\n+6ED12A Uncompressed Size     00000000 (0)\n+6ED12E Filename Length       0017 (23)\n+6ED130 Extra Length          0009 (9)\n+6ED132 Comment Length        0000 (0)\n+6ED134 Disk Start            0000 (0)\n+6ED136 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED138 Ext File Attributes   00000000 (0)\n+6ED13C Local Header Offset   000876B7 (554679)\n+6ED140 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED140: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED157 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED159   Length              0005 (5)\n+6ED15B   Flags               01 (1) 'Modification'\n+6ED15C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED160 CENTRAL HEADER #315   02014B50 (33639248)\n+6ED164 Created Zip Spec      14 (20) '2.0'\n+6ED165 Created OS            00 (0) 'MS-DOS'\n+6ED166 Extract Zip Spec      14 (20) '2.0'\n+6ED167 Extract OS            00 (0) 'MS-DOS'\n+6ED168 General Purpose Flag  0000 (0)\n+6ED16A Compression Method    0000 (0) 'Stored'\n+6ED16C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED170 CRC                   00000000 (0)\n+6ED174 Compressed Size       00000000 (0)\n+6ED178 Uncompressed Size     00000000 (0)\n+6ED17C Filename Length       001F (31)\n+6ED17E Extra Length          0009 (9)\n+6ED180 Comment Length        0000 (0)\n+6ED182 Disk Start            0000 (0)\n+6ED184 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED186 Ext File Attributes   00000000 (0)\n+6ED18A Local Header Offset   000876F5 (554741)\n+6ED18E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED18E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED1AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED1AF   Length              0005 (5)\n+6ED1B1   Flags               01 (1) 'Modification'\n+6ED1B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED1B6 CENTRAL HEADER #316   02014B50 (33639248)\n+6ED1BA Created Zip Spec      14 (20) '2.0'\n+6ED1BB Created OS            00 (0) 'MS-DOS'\n+6ED1BC Extract Zip Spec      14 (20) '2.0'\n+6ED1BD Extract OS            00 (0) 'MS-DOS'\n+6ED1BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED1C0 Compression Method    0000 (0) 'Stored'\n+6ED1C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED1C6 CRC                   CB19F474 (3407475828)\n+6ED1CA Compressed Size       00000B41 (2881)\n+6ED1CE Uncompressed Size     00000B41 (2881)\n+6ED1D2 Filename Length       0034 (52)\n+6ED1D4 Extra Length          0009 (9)\n+6ED1D6 Comment Length        0000 (0)\n+6ED1D8 Disk Start            0000 (0)\n+6ED1DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED1DC Ext File Attributes   00000000 (0)\n+6ED1E0 Local Header Offset   0008773B (554811)\n+6ED1E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED1E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED218 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED21A   Length              0005 (5)\n+6ED21C   Flags               01 (1) 'Modification'\n+6ED21D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED221 CENTRAL HEADER #317   02014B50 (33639248)\n+6ED225 Created Zip Spec      14 (20) '2.0'\n+6ED226 Created OS            00 (0) 'MS-DOS'\n+6ED227 Extract Zip Spec      14 (20) '2.0'\n+6ED228 Extract OS            00 (0) 'MS-DOS'\n+6ED229 General Purpose Flag  0000 (0)\n+6ED22B Compression Method    0000 (0) 'Stored'\n+6ED22D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED231 CRC                   00000000 (0)\n+6ED235 Compressed Size       00000000 (0)\n+6ED239 Uncompressed Size     00000000 (0)\n+6ED23D Filename Length       0022 (34)\n+6ED23F Extra Length          0009 (9)\n+6ED241 Comment Length        0000 (0)\n+6ED243 Disk Start            0000 (0)\n+6ED245 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED247 Ext File Attributes   00000000 (0)\n+6ED24B Local Header Offset   000882E7 (557799)\n+6ED24F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED24F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED271 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED273   Length              0005 (5)\n+6ED275   Flags               01 (1) 'Modification'\n+6ED276   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED27A CENTRAL HEADER #318   02014B50 (33639248)\n+6ED27E Created Zip Spec      14 (20) '2.0'\n+6ED27F Created OS            00 (0) 'MS-DOS'\n+6ED280 Extract Zip Spec      14 (20) '2.0'\n+6ED281 Extract OS            00 (0) 'MS-DOS'\n+6ED282 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED284 Compression Method    0000 (0) 'Stored'\n+6ED286 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED28A CRC                   273E139A (658379674)\n+6ED28E Compressed Size       000015B3 (5555)\n+6ED292 Uncompressed Size     000015B3 (5555)\n+6ED296 Filename Length       003B (59)\n+6ED298 Extra Length          0009 (9)\n+6ED29A Comment Length        0000 (0)\n+6ED29C Disk Start            0000 (0)\n+6ED29E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED2A0 Ext File Attributes   00000000 (0)\n+6ED2A4 Local Header Offset   00088330 (557872)\n+6ED2A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED2A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED2E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED2E5   Length              0005 (5)\n+6ED2E7   Flags               01 (1) 'Modification'\n+6ED2E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED2EC CENTRAL HEADER #319   02014B50 (33639248)\n+6ED2F0 Created Zip Spec      14 (20) '2.0'\n+6ED2F1 Created OS            00 (0) 'MS-DOS'\n+6ED2F2 Extract Zip Spec      14 (20) '2.0'\n+6ED2F3 Extract OS            00 (0) 'MS-DOS'\n+6ED2F4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED2F6 Compression Method    0000 (0) 'Stored'\n+6ED2F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED2FC CRC                   02D2B2EB (47362795)\n+6ED300 Compressed Size       00002CCA (11466)\n+6ED304 Uncompressed Size     00002CCA (11466)\n+6ED308 Filename Length       003B (59)\n+6ED30A Extra Length          0009 (9)\n+6ED30C Comment Length        0000 (0)\n+6ED30E Disk Start            0000 (0)\n+6ED310 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED312 Ext File Attributes   00000000 (0)\n+6ED316 Local Header Offset   00089955 (563541)\n+6ED31A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED31A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED355 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED357   Length              0005 (5)\n+6ED359   Flags               01 (1) 'Modification'\n+6ED35A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED35E CENTRAL HEADER #320   02014B50 (33639248)\n+6ED362 Created Zip Spec      14 (20) '2.0'\n+6ED363 Created OS            00 (0) 'MS-DOS'\n+6ED364 Extract Zip Spec      14 (20) '2.0'\n+6ED365 Extract OS            00 (0) 'MS-DOS'\n+6ED366 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED368 Compression Method    0000 (0) 'Stored'\n+6ED36A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED36E CRC                   37CC1834 (936122420)\n+6ED372 Compressed Size       000035A9 (13737)\n+6ED376 Uncompressed Size     000035A9 (13737)\n+6ED37A Filename Length       003C (60)\n+6ED37C Extra Length          0009 (9)\n+6ED37E Comment Length        0000 (0)\n+6ED380 Disk Start            0000 (0)\n+6ED382 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED384 Ext File Attributes   00000000 (0)\n+6ED388 Local Header Offset   0008C691 (575121)\n+6ED38C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED38C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED3C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED3CA   Length              0005 (5)\n+6ED3CC   Flags               01 (1) 'Modification'\n+6ED3CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED3D1 CENTRAL HEADER #321   02014B50 (33639248)\n+6ED3D5 Created Zip Spec      14 (20) '2.0'\n+6ED3D6 Created OS            00 (0) 'MS-DOS'\n+6ED3D7 Extract Zip Spec      14 (20) '2.0'\n+6ED3D8 Extract OS            00 (0) 'MS-DOS'\n+6ED3D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED3DB Compression Method    0000 (0) 'Stored'\n+6ED3DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED3E1 CRC                   77DBD9E2 (2010896866)\n+6ED3E5 Compressed Size       00000A68 (2664)\n+6ED3E9 Uncompressed Size     00000A68 (2664)\n+6ED3ED Filename Length       003E (62)\n+6ED3EF Extra Length          0009 (9)\n+6ED3F1 Comment Length        0000 (0)\n+6ED3F3 Disk Start            0000 (0)\n+6ED3F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED3F7 Ext File Attributes   00000000 (0)\n+6ED3FB Local Header Offset   0008FCAD (588973)\n+6ED3FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED3FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED43D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED43F   Length              0005 (5)\n+6ED441   Flags               01 (1) 'Modification'\n+6ED442   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED446 CENTRAL HEADER #322   02014B50 (33639248)\n+6ED44A Created Zip Spec      14 (20) '2.0'\n+6ED44B Created OS            00 (0) 'MS-DOS'\n+6ED44C Extract Zip Spec      14 (20) '2.0'\n+6ED44D Extract OS            00 (0) 'MS-DOS'\n+6ED44E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED450 Compression Method    0000 (0) 'Stored'\n+6ED452 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED456 CRC                   060EB252 (101626450)\n+6ED45A Compressed Size       00000AC0 (2752)\n+6ED45E Uncompressed Size     00000AC0 (2752)\n+6ED462 Filename Length       003F (63)\n+6ED464 Extra Length          0009 (9)\n+6ED466 Comment Length        0000 (0)\n+6ED468 Disk Start            0000 (0)\n+6ED46A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED46C Ext File Attributes   00000000 (0)\n+6ED470 Local Header Offset   0009078A (591754)\n+6ED474 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED474: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED4B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED4B5   Length              0005 (5)\n+6ED4B7   Flags               01 (1) 'Modification'\n+6ED4B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED4BC CENTRAL HEADER #323   02014B50 (33639248)\n+6ED4C0 Created Zip Spec      14 (20) '2.0'\n+6ED4C1 Created OS            00 (0) 'MS-DOS'\n+6ED4C2 Extract Zip Spec      14 (20) '2.0'\n+6ED4C3 Extract OS            00 (0) 'MS-DOS'\n+6ED4C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED4C6 Compression Method    0000 (0) 'Stored'\n+6ED4C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED4CC CRC                   EF9589B0 (4019554736)\n+6ED4D0 Compressed Size       00000B3F (2879)\n+6ED4D4 Uncompressed Size     00000B3F (2879)\n+6ED4D8 Filename Length       003E (62)\n+6ED4DA Extra Length          0009 (9)\n+6ED4DC Comment Length        0000 (0)\n+6ED4DE Disk Start            0000 (0)\n+6ED4E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED4E2 Ext File Attributes   00000000 (0)\n+6ED4E6 Local Header Offset   000912C0 (594624)\n+6ED4EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED4EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED528 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED52A   Length              0005 (5)\n+6ED52C   Flags               01 (1) 'Modification'\n+6ED52D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED531 CENTRAL HEADER #324   02014B50 (33639248)\n+6ED535 Created Zip Spec      14 (20) '2.0'\n+6ED536 Created OS            00 (0) 'MS-DOS'\n+6ED537 Extract Zip Spec      14 (20) '2.0'\n+6ED538 Extract OS            00 (0) 'MS-DOS'\n+6ED539 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED53B Compression Method    0000 (0) 'Stored'\n+6ED53D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED541 CRC                   06019AC3 (100768451)\n+6ED545 Compressed Size       00000A6E (2670)\n+6ED549 Uncompressed Size     00000A6E (2670)\n+6ED54D Filename Length       0039 (57)\n+6ED54F Extra Length          0009 (9)\n+6ED551 Comment Length        0000 (0)\n+6ED553 Disk Start            0000 (0)\n+6ED555 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED557 Ext File Attributes   00000000 (0)\n+6ED55B Local Header Offset   00091E74 (597620)\n+6ED55F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED55F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED598 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED59A   Length              0005 (5)\n+6ED59C   Flags               01 (1) 'Modification'\n+6ED59D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED5A1 CENTRAL HEADER #325   02014B50 (33639248)\n+6ED5A5 Created Zip Spec      14 (20) '2.0'\n+6ED5A6 Created OS            00 (0) 'MS-DOS'\n+6ED5A7 Extract Zip Spec      14 (20) '2.0'\n+6ED5A8 Extract OS            00 (0) 'MS-DOS'\n+6ED5A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED5AB Compression Method    0000 (0) 'Stored'\n+6ED5AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED5B1 CRC                   D3EA2D1D (3555339549)\n+6ED5B5 Compressed Size       00000BA9 (2985)\n+6ED5B9 Uncompressed Size     00000BA9 (2985)\n+6ED5BD Filename Length       0040 (64)\n+6ED5BF Extra Length          0009 (9)\n+6ED5C1 Comment Length        0000 (0)\n+6ED5C3 Disk Start            0000 (0)\n+6ED5C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED5C7 Ext File Attributes   00000000 (0)\n+6ED5CB Local Header Offset   00092952 (600402)\n+6ED5CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED5CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED60F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED611   Length              0005 (5)\n+6ED613   Flags               01 (1) 'Modification'\n+6ED614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED618 CENTRAL HEADER #326   02014B50 (33639248)\n+6ED61C Created Zip Spec      14 (20) '2.0'\n+6ED61D Created OS            00 (0) 'MS-DOS'\n+6ED61E Extract Zip Spec      14 (20) '2.0'\n+6ED61F Extract OS            00 (0) 'MS-DOS'\n+6ED620 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED622 Compression Method    0000 (0) 'Stored'\n+6ED624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED628 CRC                   B1D0AB16 (2983242518)\n+6ED62C Compressed Size       0000137B (4987)\n+6ED630 Uncompressed Size     0000137B (4987)\n+6ED634 Filename Length       0038 (56)\n+6ED636 Extra Length          0009 (9)\n+6ED638 Comment Length        0000 (0)\n+6ED63A Disk Start            0000 (0)\n+6ED63C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED63E Ext File Attributes   00000000 (0)\n+6ED642 Local Header Offset   00093572 (603506)\n+6ED646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED67E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED680   Length              0005 (5)\n+6ED682   Flags               01 (1) 'Modification'\n+6ED683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED687 CENTRAL HEADER #327   02014B50 (33639248)\n+6ED68B Created Zip Spec      14 (20) '2.0'\n+6ED68C Created OS            00 (0) 'MS-DOS'\n+6ED68D Extract Zip Spec      14 (20) '2.0'\n+6ED68E Extract OS            00 (0) 'MS-DOS'\n+6ED68F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED691 Compression Method    0000 (0) 'Stored'\n+6ED693 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED697 CRC                   D18F68BE (3515836606)\n+6ED69B Compressed Size       00000D2C (3372)\n+6ED69F Uncompressed Size     00000D2C (3372)\n+6ED6A3 Filename Length       0036 (54)\n+6ED6A5 Extra Length          0009 (9)\n+6ED6A7 Comment Length        0000 (0)\n+6ED6A9 Disk Start            0000 (0)\n+6ED6AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED6AD Ext File Attributes   00000000 (0)\n+6ED6B1 Local Header Offset   0009495C (608604)\n+6ED6B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED6B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED6EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED6ED   Length              0005 (5)\n+6ED6EF   Flags               01 (1) 'Modification'\n+6ED6F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED6F4 CENTRAL HEADER #328   02014B50 (33639248)\n+6ED6F8 Created Zip Spec      14 (20) '2.0'\n+6ED6F9 Created OS            00 (0) 'MS-DOS'\n+6ED6FA Extract Zip Spec      14 (20) '2.0'\n+6ED6FB Extract OS            00 (0) 'MS-DOS'\n+6ED6FC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED6FE Compression Method    0000 (0) 'Stored'\n+6ED700 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED704 CRC                   4FA522A8 (1336222376)\n+6ED708 Compressed Size       000049D9 (18905)\n+6ED70C Uncompressed Size     000049D9 (18905)\n+6ED710 Filename Length       0038 (56)\n+6ED712 Extra Length          0009 (9)\n+6ED714 Comment Length        0000 (0)\n+6ED716 Disk Start            0000 (0)\n+6ED718 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED71A Ext File Attributes   00000000 (0)\n+6ED71E Local Header Offset   000956F5 (612085)\n+6ED722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED75A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED75C   Length              0005 (5)\n+6ED75E   Flags               01 (1) 'Modification'\n+6ED75F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED763 CENTRAL HEADER #329   02014B50 (33639248)\n+6ED767 Created Zip Spec      14 (20) '2.0'\n+6ED768 Created OS            00 (0) 'MS-DOS'\n+6ED769 Extract Zip Spec      14 (20) '2.0'\n+6ED76A Extract OS            00 (0) 'MS-DOS'\n+6ED76B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED76D Compression Method    0000 (0) 'Stored'\n+6ED76F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED773 CRC                   CA81C016 (3397500950)\n+6ED777 Compressed Size       00002307 (8967)\n+6ED77B Uncompressed Size     00002307 (8967)\n+6ED77F Filename Length       0036 (54)\n+6ED781 Extra Length          0009 (9)\n+6ED783 Comment Length        0000 (0)\n+6ED785 Disk Start            0000 (0)\n+6ED787 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED789 Ext File Attributes   00000000 (0)\n+6ED78D Local Header Offset   0009A13D (631101)\n+6ED791 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED791: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED7C7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED7C9   Length              0005 (5)\n+6ED7CB   Flags               01 (1) 'Modification'\n+6ED7CC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED7D0 CENTRAL HEADER #330   02014B50 (33639248)\n+6ED7D4 Created Zip Spec      14 (20) '2.0'\n+6ED7D5 Created OS            00 (0) 'MS-DOS'\n+6ED7D6 Extract Zip Spec      14 (20) '2.0'\n+6ED7D7 Extract OS            00 (0) 'MS-DOS'\n+6ED7D8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED7DA Compression Method    0000 (0) 'Stored'\n+6ED7DC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED7E0 CRC                   1BE0DE32 (467721778)\n+6ED7E4 Compressed Size       00002352 (9042)\n+6ED7E8 Uncompressed Size     00002352 (9042)\n+6ED7EC Filename Length       0037 (55)\n+6ED7EE Extra Length          0009 (9)\n+6ED7F0 Comment Length        0000 (0)\n+6ED7F2 Disk Start            0000 (0)\n+6ED7F4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED7F6 Ext File Attributes   00000000 (0)\n+6ED7FA Local Header Offset   0009C4B1 (640177)\n+6ED7FE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED7FE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED835 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED837   Length              0005 (5)\n+6ED839   Flags               01 (1) 'Modification'\n+6ED83A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED83E CENTRAL HEADER #331   02014B50 (33639248)\n+6ED842 Created Zip Spec      14 (20) '2.0'\n+6ED843 Created OS            00 (0) 'MS-DOS'\n+6ED844 Extract Zip Spec      14 (20) '2.0'\n+6ED845 Extract OS            00 (0) 'MS-DOS'\n+6ED846 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED848 Compression Method    0000 (0) 'Stored'\n+6ED84A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED84E CRC                   E0540578 (3763602808)\n+6ED852 Compressed Size       00002679 (9849)\n+6ED856 Uncompressed Size     00002679 (9849)\n+6ED85A Filename Length       0035 (53)\n+6ED85C Extra Length          0009 (9)\n+6ED85E Comment Length        0000 (0)\n+6ED860 Disk Start            0000 (0)\n+6ED862 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED864 Ext File Attributes   00000000 (0)\n+6ED868 Local Header Offset   0009E871 (649329)\n+6ED86C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED86C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED8A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED8A3   Length              0005 (5)\n+6ED8A5   Flags               01 (1) 'Modification'\n+6ED8A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED8AA CENTRAL HEADER #332   02014B50 (33639248)\n+6ED8AE Created Zip Spec      14 (20) '2.0'\n+6ED8AF Created OS            00 (0) 'MS-DOS'\n+6ED8B0 Extract Zip Spec      14 (20) '2.0'\n+6ED8B1 Extract OS            00 (0) 'MS-DOS'\n+6ED8B2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED8B4 Compression Method    0000 (0) 'Stored'\n+6ED8B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED8BA CRC                   812FC9F0 (2167392752)\n+6ED8BE Compressed Size       00000D20 (3360)\n+6ED8C2 Uncompressed Size     00000D20 (3360)\n+6ED8C6 Filename Length       003C (60)\n+6ED8C8 Extra Length          0009 (9)\n+6ED8CA Comment Length        0000 (0)\n+6ED8CC Disk Start            0000 (0)\n+6ED8CE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED8D0 Ext File Attributes   00000000 (0)\n+6ED8D4 Local Header Offset   000A0F56 (659286)\n+6ED8D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED8D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED914 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED916   Length              0005 (5)\n+6ED918   Flags               01 (1) 'Modification'\n+6ED919   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED91D CENTRAL HEADER #333   02014B50 (33639248)\n+6ED921 Created Zip Spec      14 (20) '2.0'\n+6ED922 Created OS            00 (0) 'MS-DOS'\n+6ED923 Extract Zip Spec      14 (20) '2.0'\n+6ED924 Extract OS            00 (0) 'MS-DOS'\n+6ED925 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED927 Compression Method    0000 (0) 'Stored'\n+6ED929 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED92D CRC                   E6FF39F2 (3875486194)\n+6ED931 Compressed Size       0000046B (1131)\n+6ED935 Uncompressed Size     0000046B (1131)\n+6ED939 Filename Length       003D (61)\n+6ED93B Extra Length          0009 (9)\n+6ED93D Comment Length        0000 (0)\n+6ED93F Disk Start            0000 (0)\n+6ED941 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED943 Ext File Attributes   00000000 (0)\n+6ED947 Local Header Offset   000A1CE9 (662761)\n+6ED94B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED94B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED988 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED98A   Length              0005 (5)\n+6ED98C   Flags               01 (1) 'Modification'\n+6ED98D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED991 CENTRAL HEADER #334   02014B50 (33639248)\n+6ED995 Created Zip Spec      14 (20) '2.0'\n+6ED996 Created OS            00 (0) 'MS-DOS'\n+6ED997 Extract Zip Spec      14 (20) '2.0'\n+6ED998 Extract OS            00 (0) 'MS-DOS'\n+6ED999 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6ED99B Compression Method    0000 (0) 'Stored'\n+6ED99D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6ED9A1 CRC                   0827F1CF (136835535)\n+6ED9A5 Compressed Size       00000C8B (3211)\n+6ED9A9 Uncompressed Size     00000C8B (3211)\n+6ED9AD Filename Length       0035 (53)\n+6ED9AF Extra Length          0009 (9)\n+6ED9B1 Comment Length        0000 (0)\n+6ED9B3 Disk Start            0000 (0)\n+6ED9B5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6ED9B7 Ext File Attributes   00000000 (0)\n+6ED9BB Local Header Offset   000A21C8 (664008)\n+6ED9BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6ED9BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6ED9F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6ED9F6   Length              0005 (5)\n+6ED9F8   Flags               01 (1) 'Modification'\n+6ED9F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6ED9FD CENTRAL HEADER #335   02014B50 (33639248)\n+6EDA01 Created Zip Spec      14 (20) '2.0'\n+6EDA02 Created OS            00 (0) 'MS-DOS'\n+6EDA03 Extract Zip Spec      14 (20) '2.0'\n+6EDA04 Extract OS            00 (0) 'MS-DOS'\n+6EDA05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDA07 Compression Method    0000 (0) 'Stored'\n+6EDA09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDA0D CRC                   DB2E2C1B (3677236251)\n+6EDA11 Compressed Size       00000B80 (2944)\n+6EDA15 Uncompressed Size     00000B80 (2944)\n+6EDA19 Filename Length       0039 (57)\n+6EDA1B Extra Length          0009 (9)\n+6EDA1D Comment Length        0000 (0)\n+6EDA1F Disk Start            0000 (0)\n+6EDA21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDA23 Ext File Attributes   00000000 (0)\n+6EDA27 Local Header Offset   000A2EBF (667327)\n+6EDA2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDA2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDA64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDA66   Length              0005 (5)\n+6EDA68   Flags               01 (1) 'Modification'\n+6EDA69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDA6D CENTRAL HEADER #336   02014B50 (33639248)\n+6EDA71 Created Zip Spec      14 (20) '2.0'\n+6EDA72 Created OS            00 (0) 'MS-DOS'\n+6EDA73 Extract Zip Spec      14 (20) '2.0'\n+6EDA74 Extract OS            00 (0) 'MS-DOS'\n+6EDA75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDA77 Compression Method    0000 (0) 'Stored'\n+6EDA79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDA7D CRC                   BB4C70B3 (3142348979)\n+6EDA81 Compressed Size       0000146B (5227)\n+6EDA85 Uncompressed Size     0000146B (5227)\n+6EDA89 Filename Length       0038 (56)\n+6EDA8B Extra Length          0009 (9)\n+6EDA8D Comment Length        0000 (0)\n+6EDA8F Disk Start            0000 (0)\n+6EDA91 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDA93 Ext File Attributes   00000000 (0)\n+6EDA97 Local Header Offset   000A3AAF (670383)\n+6EDA9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDA9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDAD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDAD5   Length              0005 (5)\n+6EDAD7   Flags               01 (1) 'Modification'\n+6EDAD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDADC CENTRAL HEADER #337   02014B50 (33639248)\n+6EDAE0 Created Zip Spec      14 (20) '2.0'\n+6EDAE1 Created OS            00 (0) 'MS-DOS'\n+6EDAE2 Extract Zip Spec      14 (20) '2.0'\n+6EDAE3 Extract OS            00 (0) 'MS-DOS'\n+6EDAE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDAE6 Compression Method    0000 (0) 'Stored'\n+6EDAE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDAEC CRC                   5603C310 (1443087120)\n+6EDAF0 Compressed Size       00001463 (5219)\n+6EDAF4 Uncompressed Size     00001463 (5219)\n+6EDAF8 Filename Length       0033 (51)\n+6EDAFA Extra Length          0009 (9)\n+6EDAFC Comment Length        0000 (0)\n+6EDAFE Disk Start            0000 (0)\n+6EDB00 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDB02 Ext File Attributes   00000000 (0)\n+6EDB06 Local Header Offset   000A4F89 (675721)\n+6EDB0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDB0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDB3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDB3F   Length              0005 (5)\n+6EDB41   Flags               01 (1) 'Modification'\n+6EDB42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDB46 CENTRAL HEADER #338   02014B50 (33639248)\n+6EDB4A Created Zip Spec      14 (20) '2.0'\n+6EDB4B Created OS            00 (0) 'MS-DOS'\n+6EDB4C Extract Zip Spec      14 (20) '2.0'\n+6EDB4D Extract OS            00 (0) 'MS-DOS'\n+6EDB4E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDB50 Compression Method    0000 (0) 'Stored'\n+6EDB52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDB56 CRC                   56DBC793 (1457244051)\n+6EDB5A Compressed Size       00000C79 (3193)\n+6EDB5E Uncompressed Size     00000C79 (3193)\n+6EDB62 Filename Length       0036 (54)\n+6EDB64 Extra Length          0009 (9)\n+6EDB66 Comment Length        0000 (0)\n+6EDB68 Disk Start            0000 (0)\n+6EDB6A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDB6C Ext File Attributes   00000000 (0)\n+6EDB70 Local Header Offset   000A6456 (681046)\n+6EDB74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDB74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDBAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDBAC   Length              0005 (5)\n+6EDBAE   Flags               01 (1) 'Modification'\n+6EDBAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDBB3 CENTRAL HEADER #339   02014B50 (33639248)\n+6EDBB7 Created Zip Spec      14 (20) '2.0'\n+6EDBB8 Created OS            00 (0) 'MS-DOS'\n+6EDBB9 Extract Zip Spec      14 (20) '2.0'\n+6EDBBA Extract OS            00 (0) 'MS-DOS'\n+6EDBBB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDBBD Compression Method    0000 (0) 'Stored'\n+6EDBBF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDBC3 CRC                   1549C790 (357156752)\n+6EDBC7 Compressed Size       000014F8 (5368)\n+6EDBCB Uncompressed Size     000014F8 (5368)\n+6EDBCF Filename Length       003D (61)\n+6EDBD1 Extra Length          0009 (9)\n+6EDBD3 Comment Length        0000 (0)\n+6EDBD5 Disk Start            0000 (0)\n+6EDBD7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDBD9 Ext File Attributes   00000000 (0)\n+6EDBDD Local Header Offset   000A713C (684348)\n+6EDBE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDBE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDC1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDC20   Length              0005 (5)\n+6EDC22   Flags               01 (1) 'Modification'\n+6EDC23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDC27 CENTRAL HEADER #340   02014B50 (33639248)\n+6EDC2B Created Zip Spec      14 (20) '2.0'\n+6EDC2C Created OS            00 (0) 'MS-DOS'\n+6EDC2D Extract Zip Spec      14 (20) '2.0'\n+6EDC2E Extract OS            00 (0) 'MS-DOS'\n+6EDC2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDC31 Compression Method    0000 (0) 'Stored'\n+6EDC33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDC37 CRC                   D0079E8D (3490160269)\n+6EDC3B Compressed Size       00000D8D (3469)\n+6EDC3F Uncompressed Size     00000D8D (3469)\n+6EDC43 Filename Length       003B (59)\n+6EDC45 Extra Length          0009 (9)\n+6EDC47 Comment Length        0000 (0)\n+6EDC49 Disk Start            0000 (0)\n+6EDC4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDC4D Ext File Attributes   00000000 (0)\n+6EDC51 Local Header Offset   000A86A8 (689832)\n+6EDC55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDC55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDC90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDC92   Length              0005 (5)\n+6EDC94   Flags               01 (1) 'Modification'\n+6EDC95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDC99 CENTRAL HEADER #341   02014B50 (33639248)\n+6EDC9D Created Zip Spec      14 (20) '2.0'\n+6EDC9E Created OS            00 (0) 'MS-DOS'\n+6EDC9F Extract Zip Spec      14 (20) '2.0'\n+6EDCA0 Extract OS            00 (0) 'MS-DOS'\n+6EDCA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDCA3 Compression Method    0000 (0) 'Stored'\n+6EDCA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDCA9 CRC                   7728EBEC (1999170540)\n+6EDCAD Compressed Size       000017BD (6077)\n+6EDCB1 Uncompressed Size     000017BD (6077)\n+6EDCB5 Filename Length       0030 (48)\n+6EDCB7 Extra Length          0009 (9)\n+6EDCB9 Comment Length        0000 (0)\n+6EDCBB Disk Start            0000 (0)\n+6EDCBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDCBF Ext File Attributes   00000000 (0)\n+6EDCC3 Local Header Offset   000A94A7 (693415)\n+6EDCC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDCC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDCF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDCF9   Length              0005 (5)\n+6EDCFB   Flags               01 (1) 'Modification'\n+6EDCFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDD00 CENTRAL HEADER #342   02014B50 (33639248)\n+6EDD04 Created Zip Spec      14 (20) '2.0'\n+6EDD05 Created OS            00 (0) 'MS-DOS'\n+6EDD06 Extract Zip Spec      14 (20) '2.0'\n+6EDD07 Extract OS            00 (0) 'MS-DOS'\n+6EDD08 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDD0A Compression Method    0000 (0) 'Stored'\n+6EDD0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDD10 CRC                   27E32CDA (669199578)\n+6EDD14 Compressed Size       00000EE5 (3813)\n+6EDD18 Uncompressed Size     00000EE5 (3813)\n+6EDD1C Filename Length       0033 (51)\n+6EDD1E Extra Length          0009 (9)\n+6EDD20 Comment Length        0000 (0)\n+6EDD22 Disk Start            0000 (0)\n+6EDD24 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDD26 Ext File Attributes   00000000 (0)\n+6EDD2A Local Header Offset   000AACCB (699595)\n+6EDD2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDD2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDD61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDD63   Length              0005 (5)\n+6EDD65   Flags               01 (1) 'Modification'\n+6EDD66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDD6A CENTRAL HEADER #343   02014B50 (33639248)\n+6EDD6E Created Zip Spec      14 (20) '2.0'\n+6EDD6F Created OS            00 (0) 'MS-DOS'\n+6EDD70 Extract Zip Spec      14 (20) '2.0'\n+6EDD71 Extract OS            00 (0) 'MS-DOS'\n+6EDD72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDD74 Compression Method    0000 (0) 'Stored'\n+6EDD76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDD7A CRC                   723EDDAE (1916722606)\n+6EDD7E Compressed Size       0000110C (4364)\n+6EDD82 Uncompressed Size     0000110C (4364)\n+6EDD86 Filename Length       0037 (55)\n+6EDD88 Extra Length          0009 (9)\n+6EDD8A Comment Length        0000 (0)\n+6EDD8C Disk Start            0000 (0)\n+6EDD8E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDD90 Ext File Attributes   00000000 (0)\n+6EDD94 Local Header Offset   000ABC1A (703514)\n+6EDD98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDD98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDDCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDDD1   Length              0005 (5)\n+6EDDD3   Flags               01 (1) 'Modification'\n+6EDDD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDDD8 CENTRAL HEADER #344   02014B50 (33639248)\n+6EDDDC Created Zip Spec      14 (20) '2.0'\n+6EDDDD Created OS            00 (0) 'MS-DOS'\n+6EDDDE Extract Zip Spec      14 (20) '2.0'\n+6EDDDF Extract OS            00 (0) 'MS-DOS'\n+6EDDE0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDDE2 Compression Method    0000 (0) 'Stored'\n+6EDDE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDDE8 CRC                   B1CE4173 (2983084403)\n+6EDDEC Compressed Size       00000E9E (3742)\n+6EDDF0 Uncompressed Size     00000E9E (3742)\n+6EDDF4 Filename Length       0035 (53)\n+6EDDF6 Extra Length          0009 (9)\n+6EDDF8 Comment Length        0000 (0)\n+6EDDFA Disk Start            0000 (0)\n+6EDDFC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDDFE Ext File Attributes   00000000 (0)\n+6EDE02 Local Header Offset   000ACD94 (707988)\n+6EDE06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDE06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDE3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDE3D   Length              0005 (5)\n+6EDE3F   Flags               01 (1) 'Modification'\n+6EDE40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDE44 CENTRAL HEADER #345   02014B50 (33639248)\n+6EDE48 Created Zip Spec      14 (20) '2.0'\n+6EDE49 Created OS            00 (0) 'MS-DOS'\n+6EDE4A Extract Zip Spec      14 (20) '2.0'\n+6EDE4B Extract OS            00 (0) 'MS-DOS'\n+6EDE4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDE4E Compression Method    0000 (0) 'Stored'\n+6EDE50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDE54 CRC                   764B1E75 (1984634485)\n+6EDE58 Compressed Size       0000054F (1359)\n+6EDE5C Uncompressed Size     0000054F (1359)\n+6EDE60 Filename Length       0035 (53)\n+6EDE62 Extra Length          0009 (9)\n+6EDE64 Comment Length        0000 (0)\n+6EDE66 Disk Start            0000 (0)\n+6EDE68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDE6A Ext File Attributes   00000000 (0)\n+6EDE6E Local Header Offset   000ADC9E (711838)\n+6EDE72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDE72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDEA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDEA9   Length              0005 (5)\n+6EDEAB   Flags               01 (1) 'Modification'\n+6EDEAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDEB0 CENTRAL HEADER #346   02014B50 (33639248)\n+6EDEB4 Created Zip Spec      14 (20) '2.0'\n+6EDEB5 Created OS            00 (0) 'MS-DOS'\n+6EDEB6 Extract Zip Spec      14 (20) '2.0'\n+6EDEB7 Extract OS            00 (0) 'MS-DOS'\n+6EDEB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDEBA Compression Method    0000 (0) 'Stored'\n+6EDEBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDEC0 CRC                   DA561E50 (3663076944)\n+6EDEC4 Compressed Size       0000070B (1803)\n+6EDEC8 Uncompressed Size     0000070B (1803)\n+6EDECC Filename Length       0038 (56)\n+6EDECE Extra Length          0009 (9)\n+6EDED0 Comment Length        0000 (0)\n+6EDED2 Disk Start            0000 (0)\n+6EDED4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDED6 Ext File Attributes   00000000 (0)\n+6EDEDA Local Header Offset   000AE259 (713305)\n+6EDEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDF16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDF18   Length              0005 (5)\n+6EDF1A   Flags               01 (1) 'Modification'\n+6EDF1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDF1F CENTRAL HEADER #347   02014B50 (33639248)\n+6EDF23 Created Zip Spec      14 (20) '2.0'\n+6EDF24 Created OS            00 (0) 'MS-DOS'\n+6EDF25 Extract Zip Spec      14 (20) '2.0'\n+6EDF26 Extract OS            00 (0) 'MS-DOS'\n+6EDF27 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDF29 Compression Method    0000 (0) 'Stored'\n+6EDF2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDF2F CRC                   D1926FA5 (3516034981)\n+6EDF33 Compressed Size       00000BBB (3003)\n+6EDF37 Uncompressed Size     00000BBB (3003)\n+6EDF3B Filename Length       003E (62)\n+6EDF3D Extra Length          0009 (9)\n+6EDF3F Comment Length        0000 (0)\n+6EDF41 Disk Start            0000 (0)\n+6EDF43 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDF45 Ext File Attributes   00000000 (0)\n+6EDF49 Local Header Offset   000AE9D3 (715219)\n+6EDF4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDF4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDF8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EDF8D   Length              0005 (5)\n+6EDF8F   Flags               01 (1) 'Modification'\n+6EDF90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EDF94 CENTRAL HEADER #348   02014B50 (33639248)\n+6EDF98 Created Zip Spec      14 (20) '2.0'\n+6EDF99 Created OS            00 (0) 'MS-DOS'\n+6EDF9A Extract Zip Spec      14 (20) '2.0'\n+6EDF9B Extract OS            00 (0) 'MS-DOS'\n+6EDF9C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EDF9E Compression Method    0000 (0) 'Stored'\n+6EDFA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EDFA4 CRC                   4F5E3DED (1331576301)\n+6EDFA8 Compressed Size       00000C13 (3091)\n+6EDFAC Uncompressed Size     00000C13 (3091)\n+6EDFB0 Filename Length       003C (60)\n+6EDFB2 Extra Length          0009 (9)\n+6EDFB4 Comment Length        0000 (0)\n+6EDFB6 Disk Start            0000 (0)\n+6EDFB8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EDFBA Ext File Attributes   00000000 (0)\n+6EDFBE Local Header Offset   000AF603 (718339)\n+6EDFC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EDFC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EDFFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE000   Length              0005 (5)\n+6EE002   Flags               01 (1) 'Modification'\n+6EE003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE007 CENTRAL HEADER #349   02014B50 (33639248)\n+6EE00B Created Zip Spec      14 (20) '2.0'\n+6EE00C Created OS            00 (0) 'MS-DOS'\n+6EE00D Extract Zip Spec      14 (20) '2.0'\n+6EE00E Extract OS            00 (0) 'MS-DOS'\n+6EE00F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE011 Compression Method    0000 (0) 'Stored'\n+6EE013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE017 CRC                   C66F6586 (3329189254)\n+6EE01B Compressed Size       0000098F (2447)\n+6EE01F Uncompressed Size     0000098F (2447)\n+6EE023 Filename Length       0036 (54)\n+6EE025 Extra Length          0009 (9)\n+6EE027 Comment Length        0000 (0)\n+6EE029 Disk Start            0000 (0)\n+6EE02B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE02D Ext File Attributes   00000000 (0)\n+6EE031 Local Header Offset   000B0289 (721545)\n+6EE035 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE035: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE06B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE06D   Length              0005 (5)\n+6EE06F   Flags               01 (1) 'Modification'\n+6EE070   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE074 CENTRAL HEADER #350   02014B50 (33639248)\n+6EE078 Created Zip Spec      14 (20) '2.0'\n+6EE079 Created OS            00 (0) 'MS-DOS'\n+6EE07A Extract Zip Spec      14 (20) '2.0'\n+6EE07B Extract OS            00 (0) 'MS-DOS'\n+6EE07C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE07E Compression Method    0000 (0) 'Stored'\n+6EE080 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE084 CRC                   9EFE4E67 (2667466343)\n+6EE088 Compressed Size       00000EDF (3807)\n+6EE08C Uncompressed Size     00000EDF (3807)\n+6EE090 Filename Length       003B (59)\n+6EE092 Extra Length          0009 (9)\n+6EE094 Comment Length        0000 (0)\n+6EE096 Disk Start            0000 (0)\n+6EE098 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE09A Ext File Attributes   00000000 (0)\n+6EE09E Local Header Offset   000B0C85 (724101)\n+6EE0A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE0A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE0DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE0DF   Length              0005 (5)\n+6EE0E1   Flags               01 (1) 'Modification'\n+6EE0E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE0E6 CENTRAL HEADER #351   02014B50 (33639248)\n+6EE0EA Created Zip Spec      14 (20) '2.0'\n+6EE0EB Created OS            00 (0) 'MS-DOS'\n+6EE0EC Extract Zip Spec      14 (20) '2.0'\n+6EE0ED Extract OS            00 (0) 'MS-DOS'\n+6EE0EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE0F0 Compression Method    0000 (0) 'Stored'\n+6EE0F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE0F6 CRC                   CC968FE2 (3432419298)\n+6EE0FA Compressed Size       00001758 (5976)\n+6EE0FE Uncompressed Size     00001758 (5976)\n+6EE102 Filename Length       0038 (56)\n+6EE104 Extra Length          0009 (9)\n+6EE106 Comment Length        0000 (0)\n+6EE108 Disk Start            0000 (0)\n+6EE10A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE10C Ext File Attributes   00000000 (0)\n+6EE110 Local Header Offset   000B1BD6 (728022)\n+6EE114 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE114: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE14C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE14E   Length              0005 (5)\n+6EE150   Flags               01 (1) 'Modification'\n+6EE151   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE155 CENTRAL HEADER #352   02014B50 (33639248)\n+6EE159 Created Zip Spec      14 (20) '2.0'\n+6EE15A Created OS            00 (0) 'MS-DOS'\n+6EE15B Extract Zip Spec      14 (20) '2.0'\n+6EE15C Extract OS            00 (0) 'MS-DOS'\n+6EE15D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE15F Compression Method    0000 (0) 'Stored'\n+6EE161 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE165 CRC                   42CFBA07 (1120909831)\n+6EE169 Compressed Size       00016026 (90150)\n+6EE16D Uncompressed Size     00016026 (90150)\n+6EE171 Filename Length       0034 (52)\n+6EE173 Extra Length          0009 (9)\n+6EE175 Comment Length        0000 (0)\n+6EE177 Disk Start            0000 (0)\n+6EE179 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE17B Ext File Attributes   00000000 (0)\n+6EE17F Local Header Offset   000B339D (734109)\n+6EE183 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE183: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE1B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE1B9   Length              0005 (5)\n+6EE1BB   Flags               01 (1) 'Modification'\n+6EE1BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE1C0 CENTRAL HEADER #353   02014B50 (33639248)\n+6EE1C4 Created Zip Spec      14 (20) '2.0'\n+6EE1C5 Created OS            00 (0) 'MS-DOS'\n+6EE1C6 Extract Zip Spec      14 (20) '2.0'\n+6EE1C7 Extract OS            00 (0) 'MS-DOS'\n+6EE1C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE1CA Compression Method    0000 (0) 'Stored'\n+6EE1CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE1D0 CRC                   038157DF (58808287)\n+6EE1D4 Compressed Size       00009F03 (40707)\n+6EE1D8 Uncompressed Size     00009F03 (40707)\n+6EE1DC Filename Length       0035 (53)\n+6EE1DE Extra Length          0009 (9)\n+6EE1E0 Comment Length        0000 (0)\n+6EE1E2 Disk Start            0000 (0)\n+6EE1E4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE1E6 Ext File Attributes   00000000 (0)\n+6EE1EA Local Header Offset   000C942E (824366)\n+6EE1EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE1EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE223 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE225   Length              0005 (5)\n+6EE227   Flags               01 (1) 'Modification'\n+6EE228   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE22C CENTRAL HEADER #354   02014B50 (33639248)\n+6EE230 Created Zip Spec      14 (20) '2.0'\n+6EE231 Created OS            00 (0) 'MS-DOS'\n+6EE232 Extract Zip Spec      14 (20) '2.0'\n+6EE233 Extract OS            00 (0) 'MS-DOS'\n+6EE234 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE236 Compression Method    0000 (0) 'Stored'\n+6EE238 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE23C CRC                   FF195881 (4279851137)\n+6EE240 Compressed Size       00001388 (5000)\n+6EE244 Uncompressed Size     00001388 (5000)\n+6EE248 Filename Length       003D (61)\n+6EE24A Extra Length          0009 (9)\n+6EE24C Comment Length        0000 (0)\n+6EE24E Disk Start            0000 (0)\n+6EE250 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE252 Ext File Attributes   00000000 (0)\n+6EE256 Local Header Offset   000D339D (865181)\n+6EE25A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE25A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE297 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE299   Length              0005 (5)\n+6EE29B   Flags               01 (1) 'Modification'\n+6EE29C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE2A0 CENTRAL HEADER #355   02014B50 (33639248)\n+6EE2A4 Created Zip Spec      14 (20) '2.0'\n+6EE2A5 Created OS            00 (0) 'MS-DOS'\n+6EE2A6 Extract Zip Spec      14 (20) '2.0'\n+6EE2A7 Extract OS            00 (0) 'MS-DOS'\n+6EE2A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE2AA Compression Method    0000 (0) 'Stored'\n+6EE2AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE2B0 CRC                   8611C8ED (2249312493)\n+6EE2B4 Compressed Size       00000D39 (3385)\n+6EE2B8 Uncompressed Size     00000D39 (3385)\n+6EE2BC Filename Length       003E (62)\n+6EE2BE Extra Length          0009 (9)\n+6EE2C0 Comment Length        0000 (0)\n+6EE2C2 Disk Start            0000 (0)\n+6EE2C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE2C6 Ext File Attributes   00000000 (0)\n+6EE2CA Local Header Offset   000D4799 (870297)\n+6EE2CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE2CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE30C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE30E   Length              0005 (5)\n+6EE310   Flags               01 (1) 'Modification'\n+6EE311   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE315 CENTRAL HEADER #356   02014B50 (33639248)\n+6EE319 Created Zip Spec      14 (20) '2.0'\n+6EE31A Created OS            00 (0) 'MS-DOS'\n+6EE31B Extract Zip Spec      14 (20) '2.0'\n+6EE31C Extract OS            00 (0) 'MS-DOS'\n+6EE31D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE31F Compression Method    0000 (0) 'Stored'\n+6EE321 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE325 CRC                   654FFB26 (1699740454)\n+6EE329 Compressed Size       000012CA (4810)\n+6EE32D Uncompressed Size     000012CA (4810)\n+6EE331 Filename Length       003E (62)\n+6EE333 Extra Length          0009 (9)\n+6EE335 Comment Length        0000 (0)\n+6EE337 Disk Start            0000 (0)\n+6EE339 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE33B Ext File Attributes   00000000 (0)\n+6EE33F Local Header Offset   000D5547 (873799)\n+6EE343 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE343: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE381 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE383   Length              0005 (5)\n+6EE385   Flags               01 (1) 'Modification'\n+6EE386   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE38A CENTRAL HEADER #357   02014B50 (33639248)\n+6EE38E Created Zip Spec      14 (20) '2.0'\n+6EE38F Created OS            00 (0) 'MS-DOS'\n+6EE390 Extract Zip Spec      14 (20) '2.0'\n+6EE391 Extract OS            00 (0) 'MS-DOS'\n+6EE392 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE394 Compression Method    0000 (0) 'Stored'\n+6EE396 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE39A CRC                   D684F652 (3599038034)\n+6EE39E Compressed Size       0000127F (4735)\n+6EE3A2 Uncompressed Size     0000127F (4735)\n+6EE3A6 Filename Length       003F (63)\n+6EE3A8 Extra Length          0009 (9)\n+6EE3AA Comment Length        0000 (0)\n+6EE3AC Disk Start            0000 (0)\n+6EE3AE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE3B0 Ext File Attributes   00000000 (0)\n+6EE3B4 Local Header Offset   000D6886 (878726)\n+6EE3B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE3B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE3F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE3F9   Length              0005 (5)\n+6EE3FB   Flags               01 (1) 'Modification'\n+6EE3FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE400 CENTRAL HEADER #358   02014B50 (33639248)\n+6EE404 Created Zip Spec      14 (20) '2.0'\n+6EE405 Created OS            00 (0) 'MS-DOS'\n+6EE406 Extract Zip Spec      14 (20) '2.0'\n+6EE407 Extract OS            00 (0) 'MS-DOS'\n+6EE408 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE40A Compression Method    0000 (0) 'Stored'\n+6EE40C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE410 CRC                   61E4315C (1642344796)\n+6EE414 Compressed Size       0000E195 (57749)\n+6EE418 Uncompressed Size     0000E195 (57749)\n+6EE41C Filename Length       0038 (56)\n+6EE41E Extra Length          0009 (9)\n+6EE420 Comment Length        0000 (0)\n+6EE422 Disk Start            0000 (0)\n+6EE424 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE426 Ext File Attributes   00000000 (0)\n+6EE42A Local Header Offset   000D7B7B (883579)\n+6EE42E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE42E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE466 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE468   Length              0005 (5)\n+6EE46A   Flags               01 (1) 'Modification'\n+6EE46B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE46F CENTRAL HEADER #359   02014B50 (33639248)\n+6EE473 Created Zip Spec      14 (20) '2.0'\n+6EE474 Created OS            00 (0) 'MS-DOS'\n+6EE475 Extract Zip Spec      14 (20) '2.0'\n+6EE476 Extract OS            00 (0) 'MS-DOS'\n+6EE477 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE479 Compression Method    0000 (0) 'Stored'\n+6EE47B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE47F CRC                   9B537823 (2605938723)\n+6EE483 Compressed Size       00000C42 (3138)\n+6EE487 Uncompressed Size     00000C42 (3138)\n+6EE48B Filename Length       0036 (54)\n+6EE48D Extra Length          0009 (9)\n+6EE48F Comment Length        0000 (0)\n+6EE491 Disk Start            0000 (0)\n+6EE493 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE495 Ext File Attributes   00000000 (0)\n+6EE499 Local Header Offset   000E5D7F (941439)\n+6EE49D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE49D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE4D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE4D5   Length              0005 (5)\n+6EE4D7   Flags               01 (1) 'Modification'\n+6EE4D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE4DC CENTRAL HEADER #360   02014B50 (33639248)\n+6EE4E0 Created Zip Spec      14 (20) '2.0'\n+6EE4E1 Created OS            00 (0) 'MS-DOS'\n+6EE4E2 Extract Zip Spec      14 (20) '2.0'\n+6EE4E3 Extract OS            00 (0) 'MS-DOS'\n+6EE4E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE4E6 Compression Method    0000 (0) 'Stored'\n+6EE4E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE4EC CRC                   091B09EC (152766956)\n+6EE4F0 Compressed Size       00000B45 (2885)\n+6EE4F4 Uncompressed Size     00000B45 (2885)\n+6EE4F8 Filename Length       003C (60)\n+6EE4FA Extra Length          0009 (9)\n+6EE4FC Comment Length        0000 (0)\n+6EE4FE Disk Start            0000 (0)\n+6EE500 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE502 Ext File Attributes   00000000 (0)\n+6EE506 Local Header Offset   000E6A2E (944686)\n+6EE50A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE50A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE548   Length              0005 (5)\n+6EE54A   Flags               01 (1) 'Modification'\n+6EE54B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE54F CENTRAL HEADER #361   02014B50 (33639248)\n+6EE553 Created Zip Spec      14 (20) '2.0'\n+6EE554 Created OS            00 (0) 'MS-DOS'\n+6EE555 Extract Zip Spec      14 (20) '2.0'\n+6EE556 Extract OS            00 (0) 'MS-DOS'\n+6EE557 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE559 Compression Method    0000 (0) 'Stored'\n+6EE55B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE55F CRC                   4654378B (1179924363)\n+6EE563 Compressed Size       0000092E (2350)\n+6EE567 Uncompressed Size     0000092E (2350)\n+6EE56B Filename Length       0034 (52)\n+6EE56D Extra Length          0009 (9)\n+6EE56F Comment Length        0000 (0)\n+6EE571 Disk Start            0000 (0)\n+6EE573 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE575 Ext File Attributes   00000000 (0)\n+6EE579 Local Header Offset   000E75E6 (947686)\n+6EE57D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE57D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE5B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE5B3   Length              0005 (5)\n+6EE5B5   Flags               01 (1) 'Modification'\n+6EE5B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE5BA CENTRAL HEADER #362   02014B50 (33639248)\n+6EE5BE Created Zip Spec      14 (20) '2.0'\n+6EE5BF Created OS            00 (0) 'MS-DOS'\n+6EE5C0 Extract Zip Spec      14 (20) '2.0'\n+6EE5C1 Extract OS            00 (0) 'MS-DOS'\n+6EE5C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE5C4 Compression Method    0000 (0) 'Stored'\n+6EE5C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE5CA CRC                   7366BE52 (1936113234)\n+6EE5CE Compressed Size       0000A298 (41624)\n+6EE5D2 Uncompressed Size     0000A298 (41624)\n+6EE5D6 Filename Length       0033 (51)\n+6EE5D8 Extra Length          0009 (9)\n+6EE5DA Comment Length        0000 (0)\n+6EE5DC Disk Start            0000 (0)\n+6EE5DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE5E0 Ext File Attributes   00000000 (0)\n+6EE5E4 Local Header Offset   000E7F7F (950143)\n+6EE5E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE5E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE61B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE61D   Length              0005 (5)\n+6EE61F   Flags               01 (1) 'Modification'\n+6EE620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE624 CENTRAL HEADER #363   02014B50 (33639248)\n+6EE628 Created Zip Spec      14 (20) '2.0'\n+6EE629 Created OS            00 (0) 'MS-DOS'\n+6EE62A Extract Zip Spec      14 (20) '2.0'\n+6EE62B Extract OS            00 (0) 'MS-DOS'\n+6EE62C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE62E Compression Method    0000 (0) 'Stored'\n+6EE630 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE634 CRC                   968E88D0 (2525923536)\n+6EE638 Compressed Size       00000E0E (3598)\n+6EE63C Uncompressed Size     00000E0E (3598)\n+6EE640 Filename Length       003A (58)\n+6EE642 Extra Length          0009 (9)\n+6EE644 Comment Length        0000 (0)\n+6EE646 Disk Start            0000 (0)\n+6EE648 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE64A Ext File Attributes   00000000 (0)\n+6EE64E Local Header Offset   000F2281 (991873)\n+6EE652 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE652: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE68C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE68E   Length              0005 (5)\n+6EE690   Flags               01 (1) 'Modification'\n+6EE691   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE695 CENTRAL HEADER #364   02014B50 (33639248)\n+6EE699 Created Zip Spec      14 (20) '2.0'\n+6EE69A Created OS            00 (0) 'MS-DOS'\n+6EE69B Extract Zip Spec      14 (20) '2.0'\n+6EE69C Extract OS            00 (0) 'MS-DOS'\n+6EE69D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE69F Compression Method    0000 (0) 'Stored'\n+6EE6A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE6A5 CRC                   57F2E114 (1475535124)\n+6EE6A9 Compressed Size       00005AB2 (23218)\n+6EE6AD Uncompressed Size     00005AB2 (23218)\n+6EE6B1 Filename Length       0034 (52)\n+6EE6B3 Extra Length          0009 (9)\n+6EE6B5 Comment Length        0000 (0)\n+6EE6B7 Disk Start            0000 (0)\n+6EE6B9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE6BB Ext File Attributes   00000000 (0)\n+6EE6BF Local Header Offset   000F3100 (995584)\n+6EE6C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE6C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE6F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE6F9   Length              0005 (5)\n+6EE6FB   Flags               01 (1) 'Modification'\n+6EE6FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE700 CENTRAL HEADER #365   02014B50 (33639248)\n+6EE704 Created Zip Spec      14 (20) '2.0'\n+6EE705 Created OS            00 (0) 'MS-DOS'\n+6EE706 Extract Zip Spec      14 (20) '2.0'\n+6EE707 Extract OS            00 (0) 'MS-DOS'\n+6EE708 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE70A Compression Method    0000 (0) 'Stored'\n+6EE70C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE710 CRC                   14C32F61 (348335969)\n+6EE714 Compressed Size       00000D46 (3398)\n+6EE718 Uncompressed Size     00000D46 (3398)\n+6EE71C Filename Length       003F (63)\n+6EE71E Extra Length          0009 (9)\n+6EE720 Comment Length        0000 (0)\n+6EE722 Disk Start            0000 (0)\n+6EE724 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE726 Ext File Attributes   00000000 (0)\n+6EE72A Local Header Offset   000F8C1D (1018909)\n+6EE72E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE72E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE76D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE76F   Length              0005 (5)\n+6EE771   Flags               01 (1) 'Modification'\n+6EE772   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE776 CENTRAL HEADER #366   02014B50 (33639248)\n+6EE77A Created Zip Spec      14 (20) '2.0'\n+6EE77B Created OS            00 (0) 'MS-DOS'\n+6EE77C Extract Zip Spec      14 (20) '2.0'\n+6EE77D Extract OS            00 (0) 'MS-DOS'\n+6EE77E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE780 Compression Method    0000 (0) 'Stored'\n+6EE782 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE786 CRC                   69B75EA9 (1773625001)\n+6EE78A Compressed Size       00000E67 (3687)\n+6EE78E Uncompressed Size     00000E67 (3687)\n+6EE792 Filename Length       0034 (52)\n+6EE794 Extra Length          0009 (9)\n+6EE796 Comment Length        0000 (0)\n+6EE798 Disk Start            0000 (0)\n+6EE79A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE79C Ext File Attributes   00000000 (0)\n+6EE7A0 Local Header Offset   000F99D9 (1022425)\n+6EE7A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE7A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE7D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE7DA   Length              0005 (5)\n+6EE7DC   Flags               01 (1) 'Modification'\n+6EE7DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE7E1 CENTRAL HEADER #367   02014B50 (33639248)\n+6EE7E5 Created Zip Spec      14 (20) '2.0'\n+6EE7E6 Created OS            00 (0) 'MS-DOS'\n+6EE7E7 Extract Zip Spec      14 (20) '2.0'\n+6EE7E8 Extract OS            00 (0) 'MS-DOS'\n+6EE7E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE7EB Compression Method    0000 (0) 'Stored'\n+6EE7ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE7F1 CRC                   265DEF91 (643690385)\n+6EE7F5 Compressed Size       0000098C (2444)\n+6EE7F9 Uncompressed Size     0000098C (2444)\n+6EE7FD Filename Length       003A (58)\n+6EE7FF Extra Length          0009 (9)\n+6EE801 Comment Length        0000 (0)\n+6EE803 Disk Start            0000 (0)\n+6EE805 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE807 Ext File Attributes   00000000 (0)\n+6EE80B Local Header Offset   000FA8AB (1026219)\n+6EE80F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE80F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE849 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE84B   Length              0005 (5)\n+6EE84D   Flags               01 (1) 'Modification'\n+6EE84E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE852 CENTRAL HEADER #368   02014B50 (33639248)\n+6EE856 Created Zip Spec      14 (20) '2.0'\n+6EE857 Created OS            00 (0) 'MS-DOS'\n+6EE858 Extract Zip Spec      14 (20) '2.0'\n+6EE859 Extract OS            00 (0) 'MS-DOS'\n+6EE85A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE85C Compression Method    0000 (0) 'Stored'\n+6EE85E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE862 CRC                   AC539B8F (2891160463)\n+6EE866 Compressed Size       00000A07 (2567)\n+6EE86A Uncompressed Size     00000A07 (2567)\n+6EE86E Filename Length       003C (60)\n+6EE870 Extra Length          0009 (9)\n+6EE872 Comment Length        0000 (0)\n+6EE874 Disk Start            0000 (0)\n+6EE876 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE878 Ext File Attributes   00000000 (0)\n+6EE87C Local Header Offset   000FB2A8 (1028776)\n+6EE880 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE880: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE8BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE8BE   Length              0005 (5)\n+6EE8C0   Flags               01 (1) 'Modification'\n+6EE8C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE8C5 CENTRAL HEADER #369   02014B50 (33639248)\n+6EE8C9 Created Zip Spec      14 (20) '2.0'\n+6EE8CA Created OS            00 (0) 'MS-DOS'\n+6EE8CB Extract Zip Spec      14 (20) '2.0'\n+6EE8CC Extract OS            00 (0) 'MS-DOS'\n+6EE8CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE8CF Compression Method    0000 (0) 'Stored'\n+6EE8D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE8D5 CRC                   60D7241E (1624712222)\n+6EE8D9 Compressed Size       000016A3 (5795)\n+6EE8DD Uncompressed Size     000016A3 (5795)\n+6EE8E1 Filename Length       003D (61)\n+6EE8E3 Extra Length          0009 (9)\n+6EE8E5 Comment Length        0000 (0)\n+6EE8E7 Disk Start            0000 (0)\n+6EE8E9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE8EB Ext File Attributes   00000000 (0)\n+6EE8EF Local Header Offset   000FBD22 (1031458)\n+6EE8F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE8F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE930 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE932   Length              0005 (5)\n+6EE934   Flags               01 (1) 'Modification'\n+6EE935   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE939 CENTRAL HEADER #370   02014B50 (33639248)\n+6EE93D Created Zip Spec      14 (20) '2.0'\n+6EE93E Created OS            00 (0) 'MS-DOS'\n+6EE93F Extract Zip Spec      14 (20) '2.0'\n+6EE940 Extract OS            00 (0) 'MS-DOS'\n+6EE941 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE943 Compression Method    0000 (0) 'Stored'\n+6EE945 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE949 CRC                   52E473B9 (1390703545)\n+6EE94D Compressed Size       0000131F (4895)\n+6EE951 Uncompressed Size     0000131F (4895)\n+6EE955 Filename Length       003E (62)\n+6EE957 Extra Length          0009 (9)\n+6EE959 Comment Length        0000 (0)\n+6EE95B Disk Start            0000 (0)\n+6EE95D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE95F Ext File Attributes   00000000 (0)\n+6EE963 Local Header Offset   000FD439 (1037369)\n+6EE967 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE967: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EE9A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EE9A7   Length              0005 (5)\n+6EE9A9   Flags               01 (1) 'Modification'\n+6EE9AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EE9AE CENTRAL HEADER #371   02014B50 (33639248)\n+6EE9B2 Created Zip Spec      14 (20) '2.0'\n+6EE9B3 Created OS            00 (0) 'MS-DOS'\n+6EE9B4 Extract Zip Spec      14 (20) '2.0'\n+6EE9B5 Extract OS            00 (0) 'MS-DOS'\n+6EE9B6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EE9B8 Compression Method    0000 (0) 'Stored'\n+6EE9BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EE9BE CRC                   430F5283 (1125077635)\n+6EE9C2 Compressed Size       00000BD7 (3031)\n+6EE9C6 Uncompressed Size     00000BD7 (3031)\n+6EE9CA Filename Length       003E (62)\n+6EE9CC Extra Length          0009 (9)\n+6EE9CE Comment Length        0000 (0)\n+6EE9D0 Disk Start            0000 (0)\n+6EE9D2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EE9D4 Ext File Attributes   00000000 (0)\n+6EE9D8 Local Header Offset   000FE7CD (1042381)\n+6EE9DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EE9DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEA1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEA1C   Length              0005 (5)\n+6EEA1E   Flags               01 (1) 'Modification'\n+6EEA1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEA23 CENTRAL HEADER #372   02014B50 (33639248)\n+6EEA27 Created Zip Spec      14 (20) '2.0'\n+6EEA28 Created OS            00 (0) 'MS-DOS'\n+6EEA29 Extract Zip Spec      14 (20) '2.0'\n+6EEA2A Extract OS            00 (0) 'MS-DOS'\n+6EEA2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEA2D Compression Method    0000 (0) 'Stored'\n+6EEA2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEA33 CRC                   66243DE3 (1713651171)\n+6EEA37 Compressed Size       00000AB0 (2736)\n+6EEA3B Uncompressed Size     00000AB0 (2736)\n+6EEA3F Filename Length       0039 (57)\n+6EEA41 Extra Length          0009 (9)\n+6EEA43 Comment Length        0000 (0)\n+6EEA45 Disk Start            0000 (0)\n+6EEA47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEA49 Ext File Attributes   00000000 (0)\n+6EEA4D Local Header Offset   000FF419 (1045529)\n+6EEA51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEA51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEA8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEA8C   Length              0005 (5)\n+6EEA8E   Flags               01 (1) 'Modification'\n+6EEA8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEA93 CENTRAL HEADER #373   02014B50 (33639248)\n+6EEA97 Created Zip Spec      14 (20) '2.0'\n+6EEA98 Created OS            00 (0) 'MS-DOS'\n+6EEA99 Extract Zip Spec      14 (20) '2.0'\n+6EEA9A Extract OS            00 (0) 'MS-DOS'\n+6EEA9B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEA9D Compression Method    0000 (0) 'Stored'\n+6EEA9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEAA3 CRC                   1BFC238A (469509002)\n+6EEAA7 Compressed Size       00000A2F (2607)\n+6EEAAB Uncompressed Size     00000A2F (2607)\n+6EEAAF Filename Length       003E (62)\n+6EEAB1 Extra Length          0009 (9)\n+6EEAB3 Comment Length        0000 (0)\n+6EEAB5 Disk Start            0000 (0)\n+6EEAB7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEAB9 Ext File Attributes   00000000 (0)\n+6EEABD Local Header Offset   000FFF39 (1048377)\n+6EEAC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEAC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEAFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEB01   Length              0005 (5)\n+6EEB03   Flags               01 (1) 'Modification'\n+6EEB04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEB08 CENTRAL HEADER #374   02014B50 (33639248)\n+6EEB0C Created Zip Spec      14 (20) '2.0'\n+6EEB0D Created OS            00 (0) 'MS-DOS'\n+6EEB0E Extract Zip Spec      14 (20) '2.0'\n+6EEB0F Extract OS            00 (0) 'MS-DOS'\n+6EEB10 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEB12 Compression Method    0000 (0) 'Stored'\n+6EEB14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEB18 CRC                   2E60A6BB (778086075)\n+6EEB1C Compressed Size       00000B99 (2969)\n+6EEB20 Uncompressed Size     00000B99 (2969)\n+6EEB24 Filename Length       003C (60)\n+6EEB26 Extra Length          0009 (9)\n+6EEB28 Comment Length        0000 (0)\n+6EEB2A Disk Start            0000 (0)\n+6EEB2C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEB2E Ext File Attributes   00000000 (0)\n+6EEB32 Local Header Offset   001009DD (1051101)\n+6EEB36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEB36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEB72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEB74   Length              0005 (5)\n+6EEB76   Flags               01 (1) 'Modification'\n+6EEB77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEB7B CENTRAL HEADER #375   02014B50 (33639248)\n+6EEB7F Created Zip Spec      14 (20) '2.0'\n+6EEB80 Created OS            00 (0) 'MS-DOS'\n+6EEB81 Extract Zip Spec      14 (20) '2.0'\n+6EEB82 Extract OS            00 (0) 'MS-DOS'\n+6EEB83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEB85 Compression Method    0000 (0) 'Stored'\n+6EEB87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEB8B CRC                   0F4C49C0 (256657856)\n+6EEB8F Compressed Size       00000BEC (3052)\n+6EEB93 Uncompressed Size     00000BEC (3052)\n+6EEB97 Filename Length       0039 (57)\n+6EEB99 Extra Length          0009 (9)\n+6EEB9B Comment Length        0000 (0)\n+6EEB9D Disk Start            0000 (0)\n+6EEB9F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEBA1 Ext File Attributes   00000000 (0)\n+6EEBA5 Local Header Offset   001015E9 (1054185)\n+6EEBA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEBA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEBE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEBE4   Length              0005 (5)\n+6EEBE6   Flags               01 (1) 'Modification'\n+6EEBE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEBEB CENTRAL HEADER #376   02014B50 (33639248)\n+6EEBEF Created Zip Spec      14 (20) '2.0'\n+6EEBF0 Created OS            00 (0) 'MS-DOS'\n+6EEBF1 Extract Zip Spec      14 (20) '2.0'\n+6EEBF2 Extract OS            00 (0) 'MS-DOS'\n+6EEBF3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEBF5 Compression Method    0000 (0) 'Stored'\n+6EEBF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEBFB CRC                   FA00D04F (4194357327)\n+6EEBFF Compressed Size       00006112 (24850)\n+6EEC03 Uncompressed Size     00006112 (24850)\n+6EEC07 Filename Length       0037 (55)\n+6EEC09 Extra Length          0009 (9)\n+6EEC0B Comment Length        0000 (0)\n+6EEC0D Disk Start            0000 (0)\n+6EEC0F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEC11 Ext File Attributes   00000000 (0)\n+6EEC15 Local Header Offset   00102245 (1057349)\n+6EEC19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEC19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEC50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEC52   Length              0005 (5)\n+6EEC54   Flags               01 (1) 'Modification'\n+6EEC55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEC59 CENTRAL HEADER #377   02014B50 (33639248)\n+6EEC5D Created Zip Spec      14 (20) '2.0'\n+6EEC5E Created OS            00 (0) 'MS-DOS'\n+6EEC5F Extract Zip Spec      14 (20) '2.0'\n+6EEC60 Extract OS            00 (0) 'MS-DOS'\n+6EEC61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEC63 Compression Method    0000 (0) 'Stored'\n+6EEC65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEC69 CRC                   339C3654 (865875540)\n+6EEC6D Compressed Size       0000360D (13837)\n+6EEC71 Uncompressed Size     0000360D (13837)\n+6EEC75 Filename Length       0035 (53)\n+6EEC77 Extra Length          0009 (9)\n+6EEC79 Comment Length        0000 (0)\n+6EEC7B Disk Start            0000 (0)\n+6EEC7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEC7F Ext File Attributes   00000000 (0)\n+6EEC83 Local Header Offset   001083C5 (1082309)\n+6EEC87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEC87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EECBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EECBE   Length              0005 (5)\n+6EECC0   Flags               01 (1) 'Modification'\n+6EECC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EECC5 CENTRAL HEADER #378   02014B50 (33639248)\n+6EECC9 Created Zip Spec      14 (20) '2.0'\n+6EECCA Created OS            00 (0) 'MS-DOS'\n+6EECCB Extract Zip Spec      14 (20) '2.0'\n+6EECCC Extract OS            00 (0) 'MS-DOS'\n+6EECCD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EECCF Compression Method    0000 (0) 'Stored'\n+6EECD1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EECD5 CRC                   6E56FB5B (1851194203)\n+6EECD9 Compressed Size       00000D09 (3337)\n+6EECDD Uncompressed Size     00000D09 (3337)\n+6EECE1 Filename Length       0033 (51)\n+6EECE3 Extra Length          0009 (9)\n+6EECE5 Comment Length        0000 (0)\n+6EECE7 Disk Start            0000 (0)\n+6EECE9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EECEB Ext File Attributes   00000000 (0)\n+6EECEF Local Header Offset   0010BA3E (1096254)\n+6EECF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EECF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EED26 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EED28   Length              0005 (5)\n+6EED2A   Flags               01 (1) 'Modification'\n+6EED2B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EED2F CENTRAL HEADER #379   02014B50 (33639248)\n+6EED33 Created Zip Spec      14 (20) '2.0'\n+6EED34 Created OS            00 (0) 'MS-DOS'\n+6EED35 Extract Zip Spec      14 (20) '2.0'\n+6EED36 Extract OS            00 (0) 'MS-DOS'\n+6EED37 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EED39 Compression Method    0000 (0) 'Stored'\n+6EED3B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EED3F CRC                   D55758DF (3579271391)\n+6EED43 Compressed Size       00000B49 (2889)\n+6EED47 Uncompressed Size     00000B49 (2889)\n+6EED4B Filename Length       0037 (55)\n+6EED4D Extra Length          0009 (9)\n+6EED4F Comment Length        0000 (0)\n+6EED51 Disk Start            0000 (0)\n+6EED53 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EED55 Ext File Attributes   00000000 (0)\n+6EED59 Local Header Offset   0010C7B1 (1099697)\n+6EED5D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EED5D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EED94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EED96   Length              0005 (5)\n+6EED98   Flags               01 (1) 'Modification'\n+6EED99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EED9D CENTRAL HEADER #380   02014B50 (33639248)\n+6EEDA1 Created Zip Spec      14 (20) '2.0'\n+6EEDA2 Created OS            00 (0) 'MS-DOS'\n+6EEDA3 Extract Zip Spec      14 (20) '2.0'\n+6EEDA4 Extract OS            00 (0) 'MS-DOS'\n+6EEDA5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEDA7 Compression Method    0000 (0) 'Stored'\n+6EEDA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEDAD CRC                   67A3DA8B (1738791563)\n+6EEDB1 Compressed Size       0000174A (5962)\n+6EEDB5 Uncompressed Size     0000174A (5962)\n+6EEDB9 Filename Length       0036 (54)\n+6EEDBB Extra Length          0009 (9)\n+6EEDBD Comment Length        0000 (0)\n+6EEDBF Disk Start            0000 (0)\n+6EEDC1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEDC3 Ext File Attributes   00000000 (0)\n+6EEDC7 Local Header Offset   0010D368 (1102696)\n+6EEDCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEDCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEE01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEE03   Length              0005 (5)\n+6EEE05   Flags               01 (1) 'Modification'\n+6EEE06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEE0A CENTRAL HEADER #381   02014B50 (33639248)\n+6EEE0E Created Zip Spec      14 (20) '2.0'\n+6EEE0F Created OS            00 (0) 'MS-DOS'\n+6EEE10 Extract Zip Spec      14 (20) '2.0'\n+6EEE11 Extract OS            00 (0) 'MS-DOS'\n+6EEE12 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEE14 Compression Method    0000 (0) 'Stored'\n+6EEE16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEE1A CRC                   BDD7BBBA (3185032122)\n+6EEE1E Compressed Size       00000E2C (3628)\n+6EEE22 Uncompressed Size     00000E2C (3628)\n+6EEE26 Filename Length       0034 (52)\n+6EEE28 Extra Length          0009 (9)\n+6EEE2A Comment Length        0000 (0)\n+6EEE2C Disk Start            0000 (0)\n+6EEE2E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEE30 Ext File Attributes   00000000 (0)\n+6EEE34 Local Header Offset   0010EB1F (1108767)\n+6EEE38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEE38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEE6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEE6E   Length              0005 (5)\n+6EEE70   Flags               01 (1) 'Modification'\n+6EEE71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEE75 CENTRAL HEADER #382   02014B50 (33639248)\n+6EEE79 Created Zip Spec      14 (20) '2.0'\n+6EEE7A Created OS            00 (0) 'MS-DOS'\n+6EEE7B Extract Zip Spec      14 (20) '2.0'\n+6EEE7C Extract OS            00 (0) 'MS-DOS'\n+6EEE7D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEE7F Compression Method    0000 (0) 'Stored'\n+6EEE81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEE85 CRC                   96A3AA02 (2527308290)\n+6EEE89 Compressed Size       00000D62 (3426)\n+6EEE8D Uncompressed Size     00000D62 (3426)\n+6EEE91 Filename Length       0039 (57)\n+6EEE93 Extra Length          0009 (9)\n+6EEE95 Comment Length        0000 (0)\n+6EEE97 Disk Start            0000 (0)\n+6EEE99 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEE9B Ext File Attributes   00000000 (0)\n+6EEE9F Local Header Offset   0010F9B6 (1112502)\n+6EEEA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEEA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEEDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEEDE   Length              0005 (5)\n+6EEEE0   Flags               01 (1) 'Modification'\n+6EEEE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEEE5 CENTRAL HEADER #383   02014B50 (33639248)\n+6EEEE9 Created Zip Spec      14 (20) '2.0'\n+6EEEEA Created OS            00 (0) 'MS-DOS'\n+6EEEEB Extract Zip Spec      14 (20) '2.0'\n+6EEEEC Extract OS            00 (0) 'MS-DOS'\n+6EEEED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEEEF Compression Method    0000 (0) 'Stored'\n+6EEEF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEEF5 CRC                   D08B9F5C (3498811228)\n+6EEEF9 Compressed Size       00000A60 (2656)\n+6EEEFD Uncompressed Size     00000A60 (2656)\n+6EEF01 Filename Length       0037 (55)\n+6EEF03 Extra Length          0009 (9)\n+6EEF05 Comment Length        0000 (0)\n+6EEF07 Disk Start            0000 (0)\n+6EEF09 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEF0B Ext File Attributes   00000000 (0)\n+6EEF0F Local Header Offset   00110788 (1116040)\n+6EEF13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEF13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEF4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEF4C   Length              0005 (5)\n+6EEF4E   Flags               01 (1) 'Modification'\n+6EEF4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEF53 CENTRAL HEADER #384   02014B50 (33639248)\n+6EEF57 Created Zip Spec      14 (20) '2.0'\n+6EEF58 Created OS            00 (0) 'MS-DOS'\n+6EEF59 Extract Zip Spec      14 (20) '2.0'\n+6EEF5A Extract OS            00 (0) 'MS-DOS'\n+6EEF5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEF5D Compression Method    0000 (0) 'Stored'\n+6EEF5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEF63 CRC                   17688FAA (392728490)\n+6EEF67 Compressed Size       000009A8 (2472)\n+6EEF6B Uncompressed Size     000009A8 (2472)\n+6EEF6F Filename Length       0031 (49)\n+6EEF71 Extra Length          0009 (9)\n+6EEF73 Comment Length        0000 (0)\n+6EEF75 Disk Start            0000 (0)\n+6EEF77 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEF79 Ext File Attributes   00000000 (0)\n+6EEF7D Local Header Offset   00111256 (1118806)\n+6EEF81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEF81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EEFB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EEFB4   Length              0005 (5)\n+6EEFB6   Flags               01 (1) 'Modification'\n+6EEFB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EEFBB CENTRAL HEADER #385   02014B50 (33639248)\n+6EEFBF Created Zip Spec      14 (20) '2.0'\n+6EEFC0 Created OS            00 (0) 'MS-DOS'\n+6EEFC1 Extract Zip Spec      14 (20) '2.0'\n+6EEFC2 Extract OS            00 (0) 'MS-DOS'\n+6EEFC3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EEFC5 Compression Method    0000 (0) 'Stored'\n+6EEFC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EEFCB CRC                   E14A6B5A (3779750746)\n+6EEFCF Compressed Size       0000694D (26957)\n+6EEFD3 Uncompressed Size     0000694D (26957)\n+6EEFD7 Filename Length       0038 (56)\n+6EEFD9 Extra Length          0009 (9)\n+6EEFDB Comment Length        0000 (0)\n+6EEFDD Disk Start            0000 (0)\n+6EEFDF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EEFE1 Ext File Attributes   00000000 (0)\n+6EEFE5 Local Header Offset   00111C66 (1121382)\n+6EEFE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EEFE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF021 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF023   Length              0005 (5)\n+6EF025   Flags               01 (1) 'Modification'\n+6EF026   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF02A CENTRAL HEADER #386   02014B50 (33639248)\n+6EF02E Created Zip Spec      14 (20) '2.0'\n+6EF02F Created OS            00 (0) 'MS-DOS'\n+6EF030 Extract Zip Spec      14 (20) '2.0'\n+6EF031 Extract OS            00 (0) 'MS-DOS'\n+6EF032 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF034 Compression Method    0000 (0) 'Stored'\n+6EF036 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF03A CRC                   515E6059 (1365139545)\n+6EF03E Compressed Size       0000106F (4207)\n+6EF042 Uncompressed Size     0000106F (4207)\n+6EF046 Filename Length       003A (58)\n+6EF048 Extra Length          0009 (9)\n+6EF04A Comment Length        0000 (0)\n+6EF04C Disk Start            0000 (0)\n+6EF04E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF050 Ext File Attributes   00000000 (0)\n+6EF054 Local Header Offset   00118622 (1148450)\n+6EF058 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF058: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF092 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF094   Length              0005 (5)\n+6EF096   Flags               01 (1) 'Modification'\n+6EF097   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF09B CENTRAL HEADER #387   02014B50 (33639248)\n+6EF09F Created Zip Spec      14 (20) '2.0'\n+6EF0A0 Created OS            00 (0) 'MS-DOS'\n+6EF0A1 Extract Zip Spec      14 (20) '2.0'\n+6EF0A2 Extract OS            00 (0) 'MS-DOS'\n+6EF0A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF0A5 Compression Method    0000 (0) 'Stored'\n+6EF0A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF0AB CRC                   5238B40F (1379447823)\n+6EF0AF Compressed Size       00000CA6 (3238)\n+6EF0B3 Uncompressed Size     00000CA6 (3238)\n+6EF0B7 Filename Length       0038 (56)\n+6EF0B9 Extra Length          0009 (9)\n+6EF0BB Comment Length        0000 (0)\n+6EF0BD Disk Start            0000 (0)\n+6EF0BF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF0C1 Ext File Attributes   00000000 (0)\n+6EF0C5 Local Header Offset   00119702 (1152770)\n+6EF0C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF0C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF101 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF103   Length              0005 (5)\n+6EF105   Flags               01 (1) 'Modification'\n+6EF106   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF10A CENTRAL HEADER #388   02014B50 (33639248)\n+6EF10E Created Zip Spec      14 (20) '2.0'\n+6EF10F Created OS            00 (0) 'MS-DOS'\n+6EF110 Extract Zip Spec      14 (20) '2.0'\n+6EF111 Extract OS            00 (0) 'MS-DOS'\n+6EF112 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF114 Compression Method    0000 (0) 'Stored'\n+6EF116 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF11A CRC                   9A414F54 (2587971412)\n+6EF11E Compressed Size       00000A4B (2635)\n+6EF122 Uncompressed Size     00000A4B (2635)\n+6EF126 Filename Length       0044 (68)\n+6EF128 Extra Length          0009 (9)\n+6EF12A Comment Length        0000 (0)\n+6EF12C Disk Start            0000 (0)\n+6EF12E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF130 Ext File Attributes   00000000 (0)\n+6EF134 Local Header Offset   0011A417 (1156119)\n+6EF138 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF138: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF17C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF17E   Length              0005 (5)\n+6EF180   Flags               01 (1) 'Modification'\n+6EF181   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF185 CENTRAL HEADER #389   02014B50 (33639248)\n+6EF189 Created Zip Spec      14 (20) '2.0'\n+6EF18A Created OS            00 (0) 'MS-DOS'\n+6EF18B Extract Zip Spec      14 (20) '2.0'\n+6EF18C Extract OS            00 (0) 'MS-DOS'\n+6EF18D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF18F Compression Method    0000 (0) 'Stored'\n+6EF191 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF195 CRC                   DD24EE95 (3710185109)\n+6EF199 Compressed Size       00001008 (4104)\n+6EF19D Uncompressed Size     00001008 (4104)\n+6EF1A1 Filename Length       003E (62)\n+6EF1A3 Extra Length          0009 (9)\n+6EF1A5 Comment Length        0000 (0)\n+6EF1A7 Disk Start            0000 (0)\n+6EF1A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF1AB Ext File Attributes   00000000 (0)\n+6EF1AF Local Header Offset   0011AEDD (1158877)\n+6EF1B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF1B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF1F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF1F3   Length              0005 (5)\n+6EF1F5   Flags               01 (1) 'Modification'\n+6EF1F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF1FA CENTRAL HEADER #390   02014B50 (33639248)\n+6EF1FE Created Zip Spec      14 (20) '2.0'\n+6EF1FF Created OS            00 (0) 'MS-DOS'\n+6EF200 Extract Zip Spec      14 (20) '2.0'\n+6EF201 Extract OS            00 (0) 'MS-DOS'\n+6EF202 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF204 Compression Method    0000 (0) 'Stored'\n+6EF206 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF20A CRC                   00A2AB95 (10660757)\n+6EF20E Compressed Size       00000C7F (3199)\n+6EF212 Uncompressed Size     00000C7F (3199)\n+6EF216 Filename Length       003C (60)\n+6EF218 Extra Length          0009 (9)\n+6EF21A Comment Length        0000 (0)\n+6EF21C Disk Start            0000 (0)\n+6EF21E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF220 Ext File Attributes   00000000 (0)\n+6EF224 Local Header Offset   0011BF5A (1163098)\n+6EF228 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF228: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF264 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF266   Length              0005 (5)\n+6EF268   Flags               01 (1) 'Modification'\n+6EF269   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF26D CENTRAL HEADER #391   02014B50 (33639248)\n+6EF271 Created Zip Spec      14 (20) '2.0'\n+6EF272 Created OS            00 (0) 'MS-DOS'\n+6EF273 Extract Zip Spec      14 (20) '2.0'\n+6EF274 Extract OS            00 (0) 'MS-DOS'\n+6EF275 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF277 Compression Method    0000 (0) 'Stored'\n+6EF279 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF27D CRC                   165EFEE5 (375324389)\n+6EF281 Compressed Size       00000ABA (2746)\n+6EF285 Uncompressed Size     00000ABA (2746)\n+6EF289 Filename Length       003A (58)\n+6EF28B Extra Length          0009 (9)\n+6EF28D Comment Length        0000 (0)\n+6EF28F Disk Start            0000 (0)\n+6EF291 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF293 Ext File Attributes   00000000 (0)\n+6EF297 Local Header Offset   0011CC4C (1166412)\n+6EF29B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF29B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF2D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF2D7   Length              0005 (5)\n+6EF2D9   Flags               01 (1) 'Modification'\n+6EF2DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF2DE CENTRAL HEADER #392   02014B50 (33639248)\n+6EF2E2 Created Zip Spec      14 (20) '2.0'\n+6EF2E3 Created OS            00 (0) 'MS-DOS'\n+6EF2E4 Extract Zip Spec      14 (20) '2.0'\n+6EF2E5 Extract OS            00 (0) 'MS-DOS'\n+6EF2E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF2E8 Compression Method    0000 (0) 'Stored'\n+6EF2EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF2EE CRC                   E295C65E (3801466462)\n+6EF2F2 Compressed Size       0000026A (618)\n+6EF2F6 Uncompressed Size     0000026A (618)\n+6EF2FA Filename Length       0037 (55)\n+6EF2FC Extra Length          0009 (9)\n+6EF2FE Comment Length        0000 (0)\n+6EF300 Disk Start            0000 (0)\n+6EF302 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF304 Ext File Attributes   00000000 (0)\n+6EF308 Local Header Offset   0011D777 (1169271)\n+6EF30C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF30C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF343 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF345   Length              0005 (5)\n+6EF347   Flags               01 (1) 'Modification'\n+6EF348   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF34C CENTRAL HEADER #393   02014B50 (33639248)\n+6EF350 Created Zip Spec      14 (20) '2.0'\n+6EF351 Created OS            00 (0) 'MS-DOS'\n+6EF352 Extract Zip Spec      14 (20) '2.0'\n+6EF353 Extract OS            00 (0) 'MS-DOS'\n+6EF354 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF356 Compression Method    0000 (0) 'Stored'\n+6EF358 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF35C CRC                   EA548F41 (3931410241)\n+6EF360 Compressed Size       00000CF9 (3321)\n+6EF364 Uncompressed Size     00000CF9 (3321)\n+6EF368 Filename Length       0038 (56)\n+6EF36A Extra Length          0009 (9)\n+6EF36C Comment Length        0000 (0)\n+6EF36E Disk Start            0000 (0)\n+6EF370 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF372 Ext File Attributes   00000000 (0)\n+6EF376 Local Header Offset   0011DA4F (1169999)\n+6EF37A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF37A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF3B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF3B4   Length              0005 (5)\n+6EF3B6   Flags               01 (1) 'Modification'\n+6EF3B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF3BB CENTRAL HEADER #394   02014B50 (33639248)\n+6EF3BF Created Zip Spec      14 (20) '2.0'\n+6EF3C0 Created OS            00 (0) 'MS-DOS'\n+6EF3C1 Extract Zip Spec      14 (20) '2.0'\n+6EF3C2 Extract OS            00 (0) 'MS-DOS'\n+6EF3C3 General Purpose Flag  0000 (0)\n+6EF3C5 Compression Method    0000 (0) 'Stored'\n+6EF3C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF3CB CRC                   00000000 (0)\n+6EF3CF Compressed Size       00000000 (0)\n+6EF3D3 Uncompressed Size     00000000 (0)\n+6EF3D7 Filename Length       0028 (40)\n+6EF3D9 Extra Length          0009 (9)\n+6EF3DB Comment Length        0000 (0)\n+6EF3DD Disk Start            0000 (0)\n+6EF3DF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF3E1 Ext File Attributes   00000000 (0)\n+6EF3E5 Local Header Offset   0011E7B7 (1173431)\n+6EF3E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF3E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF411 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF413   Length              0005 (5)\n+6EF415   Flags               01 (1) 'Modification'\n+6EF416   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF41A CENTRAL HEADER #395   02014B50 (33639248)\n+6EF41E Created Zip Spec      14 (20) '2.0'\n+6EF41F Created OS            00 (0) 'MS-DOS'\n+6EF420 Extract Zip Spec      14 (20) '2.0'\n+6EF421 Extract OS            00 (0) 'MS-DOS'\n+6EF422 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF424 Compression Method    0000 (0) 'Stored'\n+6EF426 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF42A CRC                   F75A753A (4149900602)\n+6EF42E Compressed Size       0000079E (1950)\n+6EF432 Uncompressed Size     0000079E (1950)\n+6EF436 Filename Length       003B (59)\n+6EF438 Extra Length          0009 (9)\n+6EF43A Comment Length        0000 (0)\n+6EF43C Disk Start            0000 (0)\n+6EF43E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF440 Ext File Attributes   00000000 (0)\n+6EF444 Local Header Offset   0011E806 (1173510)\n+6EF448 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF448: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF483 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF485   Length              0005 (5)\n+6EF487   Flags               01 (1) 'Modification'\n+6EF488   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF48C CENTRAL HEADER #396   02014B50 (33639248)\n+6EF490 Created Zip Spec      14 (20) '2.0'\n+6EF491 Created OS            00 (0) 'MS-DOS'\n+6EF492 Extract Zip Spec      14 (20) '2.0'\n+6EF493 Extract OS            00 (0) 'MS-DOS'\n+6EF494 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF496 Compression Method    0000 (0) 'Stored'\n+6EF498 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF49C CRC                   44EA1A2E (1156192814)\n+6EF4A0 Compressed Size       000007A1 (1953)\n+6EF4A4 Uncompressed Size     000007A1 (1953)\n+6EF4A8 Filename Length       003A (58)\n+6EF4AA Extra Length          0009 (9)\n+6EF4AC Comment Length        0000 (0)\n+6EF4AE Disk Start            0000 (0)\n+6EF4B0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF4B2 Ext File Attributes   00000000 (0)\n+6EF4B6 Local Header Offset   0011F016 (1175574)\n+6EF4BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF4BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF4F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF4F6   Length              0005 (5)\n+6EF4F8   Flags               01 (1) 'Modification'\n+6EF4F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF4FD CENTRAL HEADER #397   02014B50 (33639248)\n+6EF501 Created Zip Spec      14 (20) '2.0'\n+6EF502 Created OS            00 (0) 'MS-DOS'\n+6EF503 Extract Zip Spec      14 (20) '2.0'\n+6EF504 Extract OS            00 (0) 'MS-DOS'\n+6EF505 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF507 Compression Method    0000 (0) 'Stored'\n+6EF509 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF50D CRC                   0EA48277 (245662327)\n+6EF511 Compressed Size       000007B2 (1970)\n+6EF515 Uncompressed Size     000007B2 (1970)\n+6EF519 Filename Length       0040 (64)\n+6EF51B Extra Length          0009 (9)\n+6EF51D Comment Length        0000 (0)\n+6EF51F Disk Start            0000 (0)\n+6EF521 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF523 Ext File Attributes   00000000 (0)\n+6EF527 Local Header Offset   0011F828 (1177640)\n+6EF52B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF52B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF56B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF56D   Length              0005 (5)\n+6EF56F   Flags               01 (1) 'Modification'\n+6EF570   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF574 CENTRAL HEADER #398   02014B50 (33639248)\n+6EF578 Created Zip Spec      14 (20) '2.0'\n+6EF579 Created OS            00 (0) 'MS-DOS'\n+6EF57A Extract Zip Spec      14 (20) '2.0'\n+6EF57B Extract OS            00 (0) 'MS-DOS'\n+6EF57C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF57E Compression Method    0000 (0) 'Stored'\n+6EF580 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF584 CRC                   4D63953A (1298371898)\n+6EF588 Compressed Size       0000081B (2075)\n+6EF58C Uncompressed Size     0000081B (2075)\n+6EF590 Filename Length       003C (60)\n+6EF592 Extra Length          0009 (9)\n+6EF594 Comment Length        0000 (0)\n+6EF596 Disk Start            0000 (0)\n+6EF598 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF59A Ext File Attributes   00000000 (0)\n+6EF59E Local Header Offset   00120051 (1179729)\n+6EF5A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF5A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF5DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF5E0   Length              0005 (5)\n+6EF5E2   Flags               01 (1) 'Modification'\n+6EF5E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF5E7 CENTRAL HEADER #399   02014B50 (33639248)\n+6EF5EB Created Zip Spec      14 (20) '2.0'\n+6EF5EC Created OS            00 (0) 'MS-DOS'\n+6EF5ED Extract Zip Spec      14 (20) '2.0'\n+6EF5EE Extract OS            00 (0) 'MS-DOS'\n+6EF5EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF5F1 Compression Method    0000 (0) 'Stored'\n+6EF5F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF5F7 CRC                   3ADD7788 (987592584)\n+6EF5FB Compressed Size       000007D9 (2009)\n+6EF5FF Uncompressed Size     000007D9 (2009)\n+6EF603 Filename Length       0040 (64)\n+6EF605 Extra Length          0009 (9)\n+6EF607 Comment Length        0000 (0)\n+6EF609 Disk Start            0000 (0)\n+6EF60B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF60D Ext File Attributes   00000000 (0)\n+6EF611 Local Header Offset   001208DF (1181919)\n+6EF615 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF615: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF655 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF657   Length              0005 (5)\n+6EF659   Flags               01 (1) 'Modification'\n+6EF65A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF65E CENTRAL HEADER #400   02014B50 (33639248)\n+6EF662 Created Zip Spec      14 (20) '2.0'\n+6EF663 Created OS            00 (0) 'MS-DOS'\n+6EF664 Extract Zip Spec      14 (20) '2.0'\n+6EF665 Extract OS            00 (0) 'MS-DOS'\n+6EF666 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF668 Compression Method    0000 (0) 'Stored'\n+6EF66A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF66E CRC                   0C426FFB (205680635)\n+6EF672 Compressed Size       000008A9 (2217)\n+6EF676 Uncompressed Size     000008A9 (2217)\n+6EF67A Filename Length       003C (60)\n+6EF67C Extra Length          0009 (9)\n+6EF67E Comment Length        0000 (0)\n+6EF680 Disk Start            0000 (0)\n+6EF682 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF684 Ext File Attributes   00000000 (0)\n+6EF688 Local Header Offset   0012112F (1184047)\n+6EF68C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF68C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF6C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF6CA   Length              0005 (5)\n+6EF6CC   Flags               01 (1) 'Modification'\n+6EF6CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF6D1 CENTRAL HEADER #401   02014B50 (33639248)\n+6EF6D5 Created Zip Spec      14 (20) '2.0'\n+6EF6D6 Created OS            00 (0) 'MS-DOS'\n+6EF6D7 Extract Zip Spec      14 (20) '2.0'\n+6EF6D8 Extract OS            00 (0) 'MS-DOS'\n+6EF6D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF6DB Compression Method    0000 (0) 'Stored'\n+6EF6DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF6E1 CRC                   4BAE3F59 (1269710681)\n+6EF6E5 Compressed Size       00000792 (1938)\n+6EF6E9 Uncompressed Size     00000792 (1938)\n+6EF6ED Filename Length       003B (59)\n+6EF6EF Extra Length          0009 (9)\n+6EF6F1 Comment Length        0000 (0)\n+6EF6F3 Disk Start            0000 (0)\n+6EF6F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF6F7 Ext File Attributes   00000000 (0)\n+6EF6FB Local Header Offset   00121A4B (1186379)\n+6EF6FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF6FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF73A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF73C   Length              0005 (5)\n+6EF73E   Flags               01 (1) 'Modification'\n+6EF73F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF743 CENTRAL HEADER #402   02014B50 (33639248)\n+6EF747 Created Zip Spec      14 (20) '2.0'\n+6EF748 Created OS            00 (0) 'MS-DOS'\n+6EF749 Extract Zip Spec      14 (20) '2.0'\n+6EF74A Extract OS            00 (0) 'MS-DOS'\n+6EF74B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF74D Compression Method    0000 (0) 'Stored'\n+6EF74F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF753 CRC                   A4C4918F (2764345743)\n+6EF757 Compressed Size       00000803 (2051)\n+6EF75B Uncompressed Size     00000803 (2051)\n+6EF75F Filename Length       0041 (65)\n+6EF761 Extra Length          0009 (9)\n+6EF763 Comment Length        0000 (0)\n+6EF765 Disk Start            0000 (0)\n+6EF767 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF769 Ext File Attributes   00000000 (0)\n+6EF76D Local Header Offset   0012224F (1188431)\n+6EF771 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF771: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF7B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF7B4   Length              0005 (5)\n+6EF7B6   Flags               01 (1) 'Modification'\n+6EF7B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF7BB CENTRAL HEADER #403   02014B50 (33639248)\n+6EF7BF Created Zip Spec      14 (20) '2.0'\n+6EF7C0 Created OS            00 (0) 'MS-DOS'\n+6EF7C1 Extract Zip Spec      14 (20) '2.0'\n+6EF7C2 Extract OS            00 (0) 'MS-DOS'\n+6EF7C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF7C5 Compression Method    0000 (0) 'Stored'\n+6EF7C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF7CB CRC                   8696E439 (2258035769)\n+6EF7CF Compressed Size       000007F5 (2037)\n+6EF7D3 Uncompressed Size     000007F5 (2037)\n+6EF7D7 Filename Length       003D (61)\n+6EF7D9 Extra Length          0009 (9)\n+6EF7DB Comment Length        0000 (0)\n+6EF7DD Disk Start            0000 (0)\n+6EF7DF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF7E1 Ext File Attributes   00000000 (0)\n+6EF7E5 Local Header Offset   00122ACA (1190602)\n+6EF7E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF7E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF826 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF828   Length              0005 (5)\n+6EF82A   Flags               01 (1) 'Modification'\n+6EF82B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF82F CENTRAL HEADER #404   02014B50 (33639248)\n+6EF833 Created Zip Spec      14 (20) '2.0'\n+6EF834 Created OS            00 (0) 'MS-DOS'\n+6EF835 Extract Zip Spec      14 (20) '2.0'\n+6EF836 Extract OS            00 (0) 'MS-DOS'\n+6EF837 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF839 Compression Method    0000 (0) 'Stored'\n+6EF83B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF83F CRC                   28964A03 (680937987)\n+6EF843 Compressed Size       0000080F (2063)\n+6EF847 Uncompressed Size     0000080F (2063)\n+6EF84B Filename Length       0039 (57)\n+6EF84D Extra Length          0009 (9)\n+6EF84F Comment Length        0000 (0)\n+6EF851 Disk Start            0000 (0)\n+6EF853 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF855 Ext File Attributes   00000000 (0)\n+6EF859 Local Header Offset   00123333 (1192755)\n+6EF85D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6EF866: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6EF85D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6EF896 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6EF898   Length              0005 (5)\n 6EF89A   Flags               01 (1) 'Modification'\n 6EF89B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6EF89F CENTRAL HEADER #1351  02014B50 (33639248)\n+6EF89F CENTRAL HEADER #405   02014B50 (33639248)\n 6EF8A3 Created Zip Spec      14 (20) '2.0'\n 6EF8A4 Created OS            00 (0) 'MS-DOS'\n 6EF8A5 Extract Zip Spec      14 (20) '2.0'\n 6EF8A6 Extract OS            00 (0) 'MS-DOS'\n 6EF8A7 General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6EF8A9 Compression Method    0000 (0) 'Stored'\n 6EF8AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF8AF CRC                   EAAFA7AC (3937380268)\n-6EF8B3 Compressed Size       00000581 (1409)\n-6EF8B7 Uncompressed Size     00000581 (1409)\n+6EF8AF CRC                   9EA0D74F (2661341007)\n+6EF8B3 Compressed Size       000006EF (1775)\n+6EF8B7 Uncompressed Size     000006EF (1775)\n 6EF8BB Filename Length       0037 (55)\n 6EF8BD Extra Length          0009 (9)\n 6EF8BF Comment Length        0000 (0)\n 6EF8C1 Disk Start            0000 (0)\n 6EF8C3 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6EF8C5 Ext File Attributes   00000000 (0)\n-6EF8C9 Local Header Offset   0048E744 (4777796)\n+6EF8C9 Local Header Offset   00123BB2 (1194930)\n 6EF8CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n # WARNING: Offset 0x6EF8CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6EF904 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6EF906   Length              0005 (5)\n 6EF908   Flags               01 (1) 'Modification'\n 6EF909   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6EF90D CENTRAL HEADER #1352  02014B50 (33639248)\n+6EF90D CENTRAL HEADER #406   02014B50 (33639248)\n 6EF911 Created Zip Spec      14 (20) '2.0'\n 6EF912 Created OS            00 (0) 'MS-DOS'\n 6EF913 Extract Zip Spec      14 (20) '2.0'\n 6EF914 Extract OS            00 (0) 'MS-DOS'\n 6EF915 General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6EF917 Compression Method    0000 (0) 'Stored'\n 6EF919 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF91D CRC                   D94FAF9D (3645878173)\n-6EF921 Compressed Size       00001FF4 (8180)\n-6EF925 Uncompressed Size     00001FF4 (8180)\n-6EF929 Filename Length       0038 (56)\n+6EF91D CRC                   B957E47F (3109545087)\n+6EF921 Compressed Size       00000795 (1941)\n+6EF925 Uncompressed Size     00000795 (1941)\n+6EF929 Filename Length       003C (60)\n 6EF92B Extra Length          0009 (9)\n 6EF92D Comment Length        0000 (0)\n 6EF92F Disk Start            0000 (0)\n 6EF931 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6EF933 Ext File Attributes   00000000 (0)\n-6EF937 Local Header Offset   0048ED33 (4779315)\n-6EF93B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6EF937 Local Header Offset   0012430F (1196815)\n+6EF93B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6EF93B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6EF93B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6EF973 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF975   Length              0005 (5)\n-6EF977   Flags               01 (1) 'Modification'\n-6EF978   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF97C CENTRAL HEADER #1353  02014B50 (33639248)\n-6EF980 Created Zip Spec      14 (20) '2.0'\n-6EF981 Created OS            00 (0) 'MS-DOS'\n-6EF982 Extract Zip Spec      14 (20) '2.0'\n-6EF983 Extract OS            00 (0) 'MS-DOS'\n-6EF984 General Purpose Flag  0000 (0)\n-6EF986 Compression Method    0000 (0) 'Stored'\n-6EF988 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF98C CRC                   00000000 (0)\n-6EF990 Compressed Size       00000000 (0)\n-6EF994 Uncompressed Size     00000000 (0)\n-6EF998 Filename Length       0021 (33)\n-6EF99A Extra Length          0009 (9)\n-6EF99C Comment Length        0000 (0)\n-6EF99E Disk Start            0000 (0)\n-6EF9A0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF9A2 Ext File Attributes   00000000 (0)\n-6EF9A6 Local Header Offset   00490D96 (4787606)\n-6EF9AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EF9AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EF9CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EF9CD   Length              0005 (5)\n-6EF9CF   Flags               01 (1) 'Modification'\n-6EF9D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EF9D4 CENTRAL HEADER #1354  02014B50 (33639248)\n-6EF9D8 Created Zip Spec      14 (20) '2.0'\n-6EF9D9 Created OS            00 (0) 'MS-DOS'\n-6EF9DA Extract Zip Spec      14 (20) '2.0'\n-6EF9DB Extract OS            00 (0) 'MS-DOS'\n-6EF9DC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EF9DE Compression Method    0000 (0) 'Stored'\n-6EF9E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EF9E4 CRC                   CF5D6816 (3479005206)\n-6EF9E8 Compressed Size       000026A9 (9897)\n-6EF9EC Uncompressed Size     000026A9 (9897)\n-6EF9F0 Filename Length       0046 (70)\n-6EF9F2 Extra Length          0009 (9)\n-6EF9F4 Comment Length        0000 (0)\n-6EF9F6 Disk Start            0000 (0)\n-6EF9F8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EF9FA Ext File Attributes   00000000 (0)\n-6EF9FE Local Header Offset   00490DDE (4787678)\n-6EFA02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFA02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFA48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFA4A   Length              0005 (5)\n-6EFA4C   Flags               01 (1) 'Modification'\n-6EFA4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFA51 CENTRAL HEADER #1355  02014B50 (33639248)\n-6EFA55 Created Zip Spec      14 (20) '2.0'\n-6EFA56 Created OS            00 (0) 'MS-DOS'\n-6EFA57 Extract Zip Spec      14 (20) '2.0'\n-6EFA58 Extract OS            00 (0) 'MS-DOS'\n-6EFA59 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFA5B Compression Method    0000 (0) 'Stored'\n-6EFA5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFA61 CRC                   4F723C34 (1332886580)\n-6EFA65 Compressed Size       00002B78 (11128)\n-6EFA69 Uncompressed Size     00002B78 (11128)\n-6EFA6D Filename Length       003C (60)\n-6EFA6F Extra Length          0009 (9)\n-6EFA71 Comment Length        0000 (0)\n-6EFA73 Disk Start            0000 (0)\n-6EFA75 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFA77 Ext File Attributes   00000000 (0)\n-6EFA7B Local Header Offset   00493504 (4797700)\n-6EFA7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFA7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFABB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFABD   Length              0005 (5)\n-6EFABF   Flags               01 (1) 'Modification'\n-6EFAC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFAC4 CENTRAL HEADER #1356  02014B50 (33639248)\n-6EFAC8 Created Zip Spec      14 (20) '2.0'\n-6EFAC9 Created OS            00 (0) 'MS-DOS'\n-6EFACA Extract Zip Spec      14 (20) '2.0'\n-6EFACB Extract OS            00 (0) 'MS-DOS'\n-6EFACC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFACE Compression Method    0000 (0) 'Stored'\n-6EFAD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFAD4 CRC                   71DE9B6F (1910414191)\n-6EFAD8 Compressed Size       000003AF (943)\n-6EFADC Uncompressed Size     000003AF (943)\n-6EFAE0 Filename Length       0032 (50)\n-6EFAE2 Extra Length          0009 (9)\n-6EFAE4 Comment Length        0000 (0)\n-6EFAE6 Disk Start            0000 (0)\n-6EFAE8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFAEA Ext File Attributes   00000000 (0)\n-6EFAEE Local Header Offset   004960EF (4808943)\n-6EFAF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFAF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFB24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFB26   Length              0005 (5)\n-6EFB28   Flags               01 (1) 'Modification'\n-6EFB29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFB2D CENTRAL HEADER #1357  02014B50 (33639248)\n-6EFB31 Created Zip Spec      14 (20) '2.0'\n-6EFB32 Created OS            00 (0) 'MS-DOS'\n-6EFB33 Extract Zip Spec      14 (20) '2.0'\n-6EFB34 Extract OS            00 (0) 'MS-DOS'\n-6EFB35 General Purpose Flag  0000 (0)\n-6EFB37 Compression Method    0000 (0) 'Stored'\n-6EFB39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFB3D CRC                   00000000 (0)\n-6EFB41 Compressed Size       00000000 (0)\n-6EFB45 Uncompressed Size     00000000 (0)\n-6EFB49 Filename Length       0026 (38)\n-6EFB4B Extra Length          0009 (9)\n-6EFB4D Comment Length        0000 (0)\n-6EFB4F Disk Start            0000 (0)\n-6EFB51 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFB53 Ext File Attributes   00000000 (0)\n-6EFB57 Local Header Offset   00496507 (4809991)\n-6EFB5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFB5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFB81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFB83   Length              0005 (5)\n-6EFB85   Flags               01 (1) 'Modification'\n-6EFB86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFB8A CENTRAL HEADER #1358  02014B50 (33639248)\n-6EFB8E Created Zip Spec      14 (20) '2.0'\n-6EFB8F Created OS            00 (0) 'MS-DOS'\n-6EFB90 Extract Zip Spec      14 (20) '2.0'\n-6EFB91 Extract OS            00 (0) 'MS-DOS'\n-6EFB92 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFB94 Compression Method    0000 (0) 'Stored'\n-6EFB96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFB9A CRC                   F2CE052F (4073588015)\n-6EFB9E Compressed Size       00000F34 (3892)\n-6EFBA2 Uncompressed Size     00000F34 (3892)\n-6EFBA6 Filename Length       0047 (71)\n-6EFBA8 Extra Length          0009 (9)\n-6EFBAA Comment Length        0000 (0)\n-6EFBAC Disk Start            0000 (0)\n-6EFBAE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFBB0 Ext File Attributes   00000000 (0)\n-6EFBB4 Local Header Offset   00496554 (4810068)\n-6EFBB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFBB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFBFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFC01   Length              0005 (5)\n-6EFC03   Flags               01 (1) 'Modification'\n-6EFC04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFC08 CENTRAL HEADER #1359  02014B50 (33639248)\n-6EFC0C Created Zip Spec      14 (20) '2.0'\n-6EFC0D Created OS            00 (0) 'MS-DOS'\n-6EFC0E Extract Zip Spec      14 (20) '2.0'\n-6EFC0F Extract OS            00 (0) 'MS-DOS'\n-6EFC10 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFC12 Compression Method    0000 (0) 'Stored'\n-6EFC14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFC18 CRC                   BF63BCF2 (3210984690)\n-6EFC1C Compressed Size       00002BFC (11260)\n-6EFC20 Uncompressed Size     00002BFC (11260)\n-6EFC24 Filename Length       003B (59)\n-6EFC26 Extra Length          0009 (9)\n-6EFC28 Comment Length        0000 (0)\n-6EFC2A Disk Start            0000 (0)\n-6EFC2C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFC2E Ext File Attributes   00000000 (0)\n-6EFC32 Local Header Offset   00497506 (4814086)\n-6EFC36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFC36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFC71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFC73   Length              0005 (5)\n-6EFC75   Flags               01 (1) 'Modification'\n-6EFC76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFC7A CENTRAL HEADER #1360  02014B50 (33639248)\n-6EFC7E Created Zip Spec      14 (20) '2.0'\n-6EFC7F Created OS            00 (0) 'MS-DOS'\n-6EFC80 Extract Zip Spec      14 (20) '2.0'\n-6EFC81 Extract OS            00 (0) 'MS-DOS'\n-6EFC82 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFC84 Compression Method    0000 (0) 'Stored'\n-6EFC86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFC8A CRC                   E2D6B20B (3805721099)\n-6EFC8E Compressed Size       00000CC3 (3267)\n-6EFC92 Uncompressed Size     00000CC3 (3267)\n-6EFC96 Filename Length       004E (78)\n-6EFC98 Extra Length          0009 (9)\n-6EFC9A Comment Length        0000 (0)\n-6EFC9C Disk Start            0000 (0)\n-6EFC9E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFCA0 Ext File Attributes   00000000 (0)\n-6EFCA4 Local Header Offset   0049A174 (4825460)\n-6EFCA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFCA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFCF6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFCF8   Length              0005 (5)\n-6EFCFA   Flags               01 (1) 'Modification'\n-6EFCFB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFCFF CENTRAL HEADER #1361  02014B50 (33639248)\n-6EFD03 Created Zip Spec      14 (20) '2.0'\n-6EFD04 Created OS            00 (0) 'MS-DOS'\n-6EFD05 Extract Zip Spec      14 (20) '2.0'\n-6EFD06 Extract OS            00 (0) 'MS-DOS'\n-6EFD07 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFD09 Compression Method    0000 (0) 'Stored'\n-6EFD0B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFD0F CRC                   ACAF58B5 (2897172661)\n-6EFD13 Compressed Size       00000394 (916)\n-6EFD17 Uncompressed Size     00000394 (916)\n-6EFD1B Filename Length       0042 (66)\n-6EFD1D Extra Length          0009 (9)\n-6EFD1F Comment Length        0000 (0)\n-6EFD21 Disk Start            0000 (0)\n-6EFD23 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFD25 Ext File Attributes   00000000 (0)\n-6EFD29 Local Header Offset   0049AEBC (4828860)\n-6EFD2D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFD2D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFD6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFD71   Length              0005 (5)\n-6EFD73   Flags               01 (1) 'Modification'\n-6EFD74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFD78 CENTRAL HEADER #1362  02014B50 (33639248)\n-6EFD7C Created Zip Spec      14 (20) '2.0'\n-6EFD7D Created OS            00 (0) 'MS-DOS'\n-6EFD7E Extract Zip Spec      14 (20) '2.0'\n-6EFD7F Extract OS            00 (0) 'MS-DOS'\n-6EFD80 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFD82 Compression Method    0000 (0) 'Stored'\n-6EFD84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFD88 CRC                   963EDCDB (2520702171)\n-6EFD8C Compressed Size       0000723A (29242)\n-6EFD90 Uncompressed Size     0000723A (29242)\n-6EFD94 Filename Length       003C (60)\n-6EFD96 Extra Length          0009 (9)\n-6EFD98 Comment Length        0000 (0)\n-6EFD9A Disk Start            0000 (0)\n-6EFD9C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFD9E Ext File Attributes   00000000 (0)\n-6EFDA2 Local Header Offset   0049B2C9 (4829897)\n-6EFDA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFDA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFDE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFDE4   Length              0005 (5)\n-6EFDE6   Flags               01 (1) 'Modification'\n-6EFDE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFDEB CENTRAL HEADER #1363  02014B50 (33639248)\n-6EFDEF Created Zip Spec      14 (20) '2.0'\n-6EFDF0 Created OS            00 (0) 'MS-DOS'\n-6EFDF1 Extract Zip Spec      14 (20) '2.0'\n-6EFDF2 Extract OS            00 (0) 'MS-DOS'\n-6EFDF3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFDF5 Compression Method    0000 (0) 'Stored'\n-6EFDF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFDFB CRC                   FA47221B (4198965787)\n-6EFDFF Compressed Size       0000926E (37486)\n-6EFE03 Uncompressed Size     0000926E (37486)\n-6EFE07 Filename Length       003B (59)\n-6EFE09 Extra Length          0009 (9)\n-6EFE0B Comment Length        0000 (0)\n-6EFE0D Disk Start            0000 (0)\n-6EFE0F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFE11 Ext File Attributes   00000000 (0)\n-6EFE15 Local Header Offset   004A2576 (4859254)\n-6EFE19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFE19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFE54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFE56   Length              0005 (5)\n-6EFE58   Flags               01 (1) 'Modification'\n-6EFE59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFE5D CENTRAL HEADER #1364  02014B50 (33639248)\n-6EFE61 Created Zip Spec      14 (20) '2.0'\n-6EFE62 Created OS            00 (0) 'MS-DOS'\n-6EFE63 Extract Zip Spec      14 (20) '2.0'\n-6EFE64 Extract OS            00 (0) 'MS-DOS'\n-6EFE65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFE67 Compression Method    0000 (0) 'Stored'\n-6EFE69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFE6D CRC                   14A86D48 (346582344)\n-6EFE71 Compressed Size       0000082F (2095)\n-6EFE75 Uncompressed Size     0000082F (2095)\n-6EFE79 Filename Length       0043 (67)\n-6EFE7B Extra Length          0009 (9)\n-6EFE7D Comment Length        0000 (0)\n-6EFE7F Disk Start            0000 (0)\n-6EFE81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFE83 Ext File Attributes   00000000 (0)\n-6EFE87 Local Header Offset   004AB856 (4896854)\n-6EFE8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFE8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFECE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFED0   Length              0005 (5)\n-6EFED2   Flags               01 (1) 'Modification'\n-6EFED3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFED7 CENTRAL HEADER #1365  02014B50 (33639248)\n-6EFEDB Created Zip Spec      14 (20) '2.0'\n-6EFEDC Created OS            00 (0) 'MS-DOS'\n-6EFEDD Extract Zip Spec      14 (20) '2.0'\n-6EFEDE Extract OS            00 (0) 'MS-DOS'\n-6EFEDF General Purpose Flag  0000 (0)\n-6EFEE1 Compression Method    0000 (0) 'Stored'\n-6EFEE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFEE7 CRC                   00000000 (0)\n-6EFEEB Compressed Size       00000000 (0)\n-6EFEEF Uncompressed Size     00000000 (0)\n-6EFEF3 Filename Length       0024 (36)\n-6EFEF5 Extra Length          0009 (9)\n-6EFEF7 Comment Length        0000 (0)\n-6EFEF9 Disk Start            0000 (0)\n-6EFEFB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFEFD Ext File Attributes   00000000 (0)\n-6EFF01 Local Header Offset   004AC0FF (4899071)\n-6EFF05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFF05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFF29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFF2B   Length              0005 (5)\n-6EFF2D   Flags               01 (1) 'Modification'\n-6EFF2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFF32 CENTRAL HEADER #1366  02014B50 (33639248)\n-6EFF36 Created Zip Spec      14 (20) '2.0'\n-6EFF37 Created OS            00 (0) 'MS-DOS'\n-6EFF38 Extract Zip Spec      14 (20) '2.0'\n-6EFF39 Extract OS            00 (0) 'MS-DOS'\n-6EFF3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFF3C Compression Method    0000 (0) 'Stored'\n-6EFF3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFF42 CRC                   E0604599 (3764405657)\n-6EFF46 Compressed Size       00004154 (16724)\n-6EFF4A Uncompressed Size     00004154 (16724)\n-6EFF4E Filename Length       003A (58)\n-6EFF50 Extra Length          0009 (9)\n-6EFF52 Comment Length        0000 (0)\n-6EFF54 Disk Start            0000 (0)\n-6EFF56 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFF58 Ext File Attributes   00000000 (0)\n-6EFF5C Local Header Offset   004AC14A (4899146)\n-6EFF60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFF60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6EFF9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6EFF9C   Length              0005 (5)\n-6EFF9E   Flags               01 (1) 'Modification'\n-6EFF9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6EFFA3 CENTRAL HEADER #1367  02014B50 (33639248)\n-6EFFA7 Created Zip Spec      14 (20) '2.0'\n-6EFFA8 Created OS            00 (0) 'MS-DOS'\n-6EFFA9 Extract Zip Spec      14 (20) '2.0'\n-6EFFAA Extract OS            00 (0) 'MS-DOS'\n-6EFFAB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6EFFAD Compression Method    0000 (0) 'Stored'\n-6EFFAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6EFFB3 CRC                   20C4D90B (549771531)\n-6EFFB7 Compressed Size       000004E4 (1252)\n-6EFFBB Uncompressed Size     000004E4 (1252)\n-6EFFBF Filename Length       0041 (65)\n-6EFFC1 Extra Length          0009 (9)\n-6EFFC3 Comment Length        0000 (0)\n-6EFFC5 Disk Start            0000 (0)\n-6EFFC7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6EFFC9 Ext File Attributes   00000000 (0)\n-6EFFCD Local Header Offset   004B030F (4915983)\n-6EFFD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6EFFD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0012 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0014   Length              0005 (5)\n-6F0016   Flags               01 (1) 'Modification'\n-6F0017   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F001B CENTRAL HEADER #1368  02014B50 (33639248)\n-6F001F Created Zip Spec      14 (20) '2.0'\n-6F0020 Created OS            00 (0) 'MS-DOS'\n-6F0021 Extract Zip Spec      14 (20) '2.0'\n-6F0022 Extract OS            00 (0) 'MS-DOS'\n-6F0023 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0025 Compression Method    0000 (0) 'Stored'\n-6F0027 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F002B CRC                   DE8C8852 (3733751890)\n-6F002F Compressed Size       0000078C (1932)\n-6F0033 Uncompressed Size     0000078C (1932)\n-6F0037 Filename Length       0042 (66)\n-6F0039 Extra Length          0009 (9)\n-6F003B Comment Length        0000 (0)\n-6F003D Disk Start            0000 (0)\n-6F003F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0041 Ext File Attributes   00000000 (0)\n-6F0045 Local Header Offset   004B086B (4917355)\n-6F0049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F008B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F008D   Length              0005 (5)\n-6F008F   Flags               01 (1) 'Modification'\n-6F0090   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0094 CENTRAL HEADER #1369  02014B50 (33639248)\n-6F0098 Created Zip Spec      14 (20) '2.0'\n-6F0099 Created OS            00 (0) 'MS-DOS'\n-6F009A Extract Zip Spec      14 (20) '2.0'\n-6F009B Extract OS            00 (0) 'MS-DOS'\n-6F009C General Purpose Flag  0000 (0)\n-6F009E Compression Method    0000 (0) 'Stored'\n-6F00A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F00A4 CRC                   00000000 (0)\n-6F00A8 Compressed Size       00000000 (0)\n-6F00AC Uncompressed Size     00000000 (0)\n-6F00B0 Filename Length       0023 (35)\n-6F00B2 Extra Length          0009 (9)\n-6F00B4 Comment Length        0000 (0)\n-6F00B6 Disk Start            0000 (0)\n-6F00B8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F00BA Ext File Attributes   00000000 (0)\n-6F00BE Local Header Offset   004B1070 (4919408)\n-6F00C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F00C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F00E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F00E7   Length              0005 (5)\n-6F00E9   Flags               01 (1) 'Modification'\n-6F00EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F00EE CENTRAL HEADER #1370  02014B50 (33639248)\n-6F00F2 Created Zip Spec      14 (20) '2.0'\n-6F00F3 Created OS            00 (0) 'MS-DOS'\n-6F00F4 Extract Zip Spec      14 (20) '2.0'\n-6F00F5 Extract OS            00 (0) 'MS-DOS'\n-6F00F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F00F8 Compression Method    0000 (0) 'Stored'\n-6F00FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F00FE CRC                   71E62C15 (1910909973)\n-6F0102 Compressed Size       00003076 (12406)\n-6F0106 Uncompressed Size     00003076 (12406)\n-6F010A Filename Length       0038 (56)\n-6F010C Extra Length          0009 (9)\n-6F010E Comment Length        0000 (0)\n-6F0110 Disk Start            0000 (0)\n-6F0112 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0114 Ext File Attributes   00000000 (0)\n-6F0118 Local Header Offset   004B10BA (4919482)\n-6F011C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F011C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0154 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0156   Length              0005 (5)\n-6F0158   Flags               01 (1) 'Modification'\n-6F0159   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F015D CENTRAL HEADER #1371  02014B50 (33639248)\n-6F0161 Created Zip Spec      14 (20) '2.0'\n-6F0162 Created OS            00 (0) 'MS-DOS'\n-6F0163 Extract Zip Spec      14 (20) '2.0'\n-6F0164 Extract OS            00 (0) 'MS-DOS'\n-6F0165 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0167 Compression Method    0000 (0) 'Stored'\n-6F0169 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F016D CRC                   6ACD2956 (1791830358)\n-6F0171 Compressed Size       000004BE (1214)\n-6F0175 Uncompressed Size     000004BE (1214)\n-6F0179 Filename Length       003F (63)\n-6F017B Extra Length          0009 (9)\n-6F017D Comment Length        0000 (0)\n-6F017F Disk Start            0000 (0)\n-6F0181 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0183 Ext File Attributes   00000000 (0)\n-6F0187 Local Header Offset   004B419F (4931999)\n-6F018B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F018B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F01CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F01CC   Length              0005 (5)\n-6F01CE   Flags               01 (1) 'Modification'\n-6F01CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F01D3 CENTRAL HEADER #1372  02014B50 (33639248)\n-6F01D7 Created Zip Spec      14 (20) '2.0'\n-6F01D8 Created OS            00 (0) 'MS-DOS'\n-6F01D9 Extract Zip Spec      14 (20) '2.0'\n-6F01DA Extract OS            00 (0) 'MS-DOS'\n-6F01DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F01DD Compression Method    0000 (0) 'Stored'\n-6F01DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F01E3 CRC                   32A6602D (849764397)\n-6F01E7 Compressed Size       00001E83 (7811)\n-6F01EB Uncompressed Size     00001E83 (7811)\n-6F01EF Filename Length       0048 (72)\n-6F01F1 Extra Length          0009 (9)\n-6F01F3 Comment Length        0000 (0)\n-6F01F5 Disk Start            0000 (0)\n-6F01F7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F01F9 Ext File Attributes   00000000 (0)\n-6F01FD Local Header Offset   004B46D3 (4933331)\n-6F0201 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0201: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0249 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F024B   Length              0005 (5)\n-6F024D   Flags               01 (1) 'Modification'\n-6F024E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0252 CENTRAL HEADER #1373  02014B50 (33639248)\n-6F0256 Created Zip Spec      14 (20) '2.0'\n-6F0257 Created OS            00 (0) 'MS-DOS'\n-6F0258 Extract Zip Spec      14 (20) '2.0'\n-6F0259 Extract OS            00 (0) 'MS-DOS'\n-6F025A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F025C Compression Method    0000 (0) 'Stored'\n-6F025E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0262 CRC                   DA761D6A (3665173866)\n-6F0266 Compressed Size       000004E6 (1254)\n-6F026A Uncompressed Size     000004E6 (1254)\n-6F026E Filename Length       004F (79)\n-6F0270 Extra Length          0009 (9)\n-6F0272 Comment Length        0000 (0)\n-6F0274 Disk Start            0000 (0)\n-6F0276 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0278 Ext File Attributes   00000000 (0)\n-6F027C Local Header Offset   004B65D5 (4941269)\n-6F0280 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0280: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F02CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F02D1   Length              0005 (5)\n-6F02D3   Flags               01 (1) 'Modification'\n-6F02D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F02D8 CENTRAL HEADER #1374  02014B50 (33639248)\n-6F02DC Created Zip Spec      14 (20) '2.0'\n-6F02DD Created OS            00 (0) 'MS-DOS'\n-6F02DE Extract Zip Spec      14 (20) '2.0'\n-6F02DF Extract OS            00 (0) 'MS-DOS'\n-6F02E0 General Purpose Flag  0000 (0)\n-6F02E2 Compression Method    0000 (0) 'Stored'\n-6F02E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F02E8 CRC                   00000000 (0)\n-6F02EC Compressed Size       00000000 (0)\n-6F02F0 Uncompressed Size     00000000 (0)\n-6F02F4 Filename Length       0020 (32)\n-6F02F6 Extra Length          0009 (9)\n-6F02F8 Comment Length        0000 (0)\n-6F02FA Disk Start            0000 (0)\n-6F02FC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F02FE Ext File Attributes   00000000 (0)\n-6F0302 Local Header Offset   004B6B41 (4942657)\n-6F0306 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0306: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0326 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0328   Length              0005 (5)\n-6F032A   Flags               01 (1) 'Modification'\n-6F032B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F032F CENTRAL HEADER #1375  02014B50 (33639248)\n-6F0333 Created Zip Spec      14 (20) '2.0'\n-6F0334 Created OS            00 (0) 'MS-DOS'\n-6F0335 Extract Zip Spec      14 (20) '2.0'\n-6F0336 Extract OS            00 (0) 'MS-DOS'\n-6F0337 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0339 Compression Method    0000 (0) 'Stored'\n-6F033B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F033F CRC                   BB0161DF (3137429983)\n-6F0343 Compressed Size       00000DF9 (3577)\n-6F0347 Uncompressed Size     00000DF9 (3577)\n-6F034B Filename Length       003E (62)\n-6F034D Extra Length          0009 (9)\n-6F034F Comment Length        0000 (0)\n-6F0351 Disk Start            0000 (0)\n-6F0353 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0355 Ext File Attributes   00000000 (0)\n-6F0359 Local Header Offset   004B6B88 (4942728)\n-6F035D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F035D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F039B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F039D   Length              0005 (5)\n-6F039F   Flags               01 (1) 'Modification'\n-6F03A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F03A4 CENTRAL HEADER #1376  02014B50 (33639248)\n-6F03A8 Created Zip Spec      14 (20) '2.0'\n-6F03A9 Created OS            00 (0) 'MS-DOS'\n-6F03AA Extract Zip Spec      14 (20) '2.0'\n-6F03AB Extract OS            00 (0) 'MS-DOS'\n-6F03AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F03AE Compression Method    0000 (0) 'Stored'\n-6F03B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F03B4 CRC                   E2B000EA (3803185386)\n-6F03B8 Compressed Size       00005C3B (23611)\n-6F03BC Uncompressed Size     00005C3B (23611)\n-6F03C0 Filename Length       0032 (50)\n-6F03C2 Extra Length          0009 (9)\n-6F03C4 Comment Length        0000 (0)\n-6F03C6 Disk Start            0000 (0)\n-6F03C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F03CA Ext File Attributes   00000000 (0)\n-6F03CE Local Header Offset   004B79F6 (4946422)\n-6F03D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F03D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0404 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0406   Length              0005 (5)\n-6F0408   Flags               01 (1) 'Modification'\n-6F0409   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F040D CENTRAL HEADER #1377  02014B50 (33639248)\n-6F0411 Created Zip Spec      14 (20) '2.0'\n-6F0412 Created OS            00 (0) 'MS-DOS'\n-6F0413 Extract Zip Spec      14 (20) '2.0'\n-6F0414 Extract OS            00 (0) 'MS-DOS'\n-6F0415 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0417 Compression Method    0000 (0) 'Stored'\n-6F0419 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F041D CRC                   A100EF71 (2701193073)\n-6F0421 Compressed Size       00000776 (1910)\n-6F0425 Uncompressed Size     00000776 (1910)\n-6F0429 Filename Length       0039 (57)\n-6F042B Extra Length          0009 (9)\n-6F042D Comment Length        0000 (0)\n-6F042F Disk Start            0000 (0)\n-6F0431 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0433 Ext File Attributes   00000000 (0)\n-6F0437 Local Header Offset   004BD69A (4970138)\n-6F043B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F043B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0474 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0476   Length              0005 (5)\n-6F0478   Flags               01 (1) 'Modification'\n-6F0479   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F047D CENTRAL HEADER #1378  02014B50 (33639248)\n-6F0481 Created Zip Spec      14 (20) '2.0'\n-6F0482 Created OS            00 (0) 'MS-DOS'\n-6F0483 Extract Zip Spec      14 (20) '2.0'\n-6F0484 Extract OS            00 (0) 'MS-DOS'\n-6F0485 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0487 Compression Method    0000 (0) 'Stored'\n-6F0489 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F048D CRC                   2220AA2B (572566059)\n-6F0491 Compressed Size       000016C4 (5828)\n-6F0495 Uncompressed Size     000016C4 (5828)\n-6F0499 Filename Length       003A (58)\n-6F049B Extra Length          0009 (9)\n-6F049D Comment Length        0000 (0)\n-6F049F Disk Start            0000 (0)\n-6F04A1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F04A3 Ext File Attributes   00000000 (0)\n-6F04A7 Local Header Offset   004BDE80 (4972160)\n-6F04AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F04AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F04E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F04E7   Length              0005 (5)\n-6F04E9   Flags               01 (1) 'Modification'\n-6F04EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F04EE CENTRAL HEADER #1379  02014B50 (33639248)\n-6F04F2 Created Zip Spec      14 (20) '2.0'\n-6F04F3 Created OS            00 (0) 'MS-DOS'\n-6F04F4 Extract Zip Spec      14 (20) '2.0'\n-6F04F5 Extract OS            00 (0) 'MS-DOS'\n-6F04F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F04F8 Compression Method    0000 (0) 'Stored'\n-6F04FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F04FE CRC                   94B18BA4 (2494663588)\n-6F0502 Compressed Size       000004D9 (1241)\n-6F0506 Uncompressed Size     000004D9 (1241)\n-6F050A Filename Length       0041 (65)\n-6F050C Extra Length          0009 (9)\n-6F050E Comment Length        0000 (0)\n-6F0510 Disk Start            0000 (0)\n-6F0512 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0514 Ext File Attributes   00000000 (0)\n-6F0518 Local Header Offset   004BF5B5 (4978101)\n-6F051C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F051C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F055D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F055F   Length              0005 (5)\n-6F0561   Flags               01 (1) 'Modification'\n-6F0562   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0566 CENTRAL HEADER #1380  02014B50 (33639248)\n-6F056A Created Zip Spec      14 (20) '2.0'\n-6F056B Created OS            00 (0) 'MS-DOS'\n-6F056C Extract Zip Spec      14 (20) '2.0'\n-6F056D Extract OS            00 (0) 'MS-DOS'\n-6F056E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0570 Compression Method    0000 (0) 'Stored'\n-6F0572 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0576 CRC                   F3388AB4 (4080569012)\n-6F057A Compressed Size       00001A7B (6779)\n-6F057E Uncompressed Size     00001A7B (6779)\n-6F0582 Filename Length       0035 (53)\n-6F0584 Extra Length          0009 (9)\n-6F0586 Comment Length        0000 (0)\n-6F0588 Disk Start            0000 (0)\n-6F058A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F058C Ext File Attributes   00000000 (0)\n-6F0590 Local Header Offset   004BFB06 (4979462)\n-6F0594 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0594: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F05C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F05CB   Length              0005 (5)\n-6F05CD   Flags               01 (1) 'Modification'\n-6F05CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F05D2 CENTRAL HEADER #1381  02014B50 (33639248)\n-6F05D6 Created Zip Spec      14 (20) '2.0'\n-6F05D7 Created OS            00 (0) 'MS-DOS'\n-6F05D8 Extract Zip Spec      14 (20) '2.0'\n-6F05D9 Extract OS            00 (0) 'MS-DOS'\n-6F05DA General Purpose Flag  0000 (0)\n-6F05DC Compression Method    0000 (0) 'Stored'\n-6F05DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F05E2 CRC                   00000000 (0)\n-6F05E6 Compressed Size       00000000 (0)\n-6F05EA Uncompressed Size     00000000 (0)\n-6F05EE Filename Length       0025 (37)\n-6F05F0 Extra Length          0009 (9)\n-6F05F2 Comment Length        0000 (0)\n-6F05F4 Disk Start            0000 (0)\n-6F05F6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F05F8 Ext File Attributes   00000000 (0)\n-6F05FC Local Header Offset   004C15ED (4986349)\n-6F0600 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0600: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0625 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0627   Length              0005 (5)\n-6F0629   Flags               01 (1) 'Modification'\n-6F062A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F062E CENTRAL HEADER #1382  02014B50 (33639248)\n-6F0632 Created Zip Spec      14 (20) '2.0'\n-6F0633 Created OS            00 (0) 'MS-DOS'\n-6F0634 Extract Zip Spec      14 (20) '2.0'\n-6F0635 Extract OS            00 (0) 'MS-DOS'\n-6F0636 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0638 Compression Method    0000 (0) 'Stored'\n-6F063A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F063E CRC                   D4BBF170 (3569086832)\n-6F0642 Compressed Size       00000AB8 (2744)\n-6F0646 Uncompressed Size     00000AB8 (2744)\n-6F064A Filename Length       0041 (65)\n-6F064C Extra Length          0009 (9)\n-6F064E Comment Length        0000 (0)\n-6F0650 Disk Start            0000 (0)\n-6F0652 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0654 Ext File Attributes   00000000 (0)\n-6F0658 Local Header Offset   004C1639 (4986425)\n-6F065C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F065C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F069D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F069F   Length              0005 (5)\n-6F06A1   Flags               01 (1) 'Modification'\n-6F06A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F06A6 CENTRAL HEADER #1383  02014B50 (33639248)\n-6F06AA Created Zip Spec      14 (20) '2.0'\n-6F06AB Created OS            00 (0) 'MS-DOS'\n-6F06AC Extract Zip Spec      14 (20) '2.0'\n-6F06AD Extract OS            00 (0) 'MS-DOS'\n-6F06AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F06B0 Compression Method    0000 (0) 'Stored'\n-6F06B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F06B6 CRC                   76AAEB5B (1990912859)\n-6F06BA Compressed Size       00001F41 (8001)\n-6F06BE Uncompressed Size     00001F41 (8001)\n-6F06C2 Filename Length       0041 (65)\n-6F06C4 Extra Length          0009 (9)\n-6F06C6 Comment Length        0000 (0)\n-6F06C8 Disk Start            0000 (0)\n-6F06CA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F06CC Ext File Attributes   00000000 (0)\n-6F06D0 Local Header Offset   004C2169 (4989289)\n-6F06D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F06D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0717   Length              0005 (5)\n-6F0719   Flags               01 (1) 'Modification'\n-6F071A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F071E CENTRAL HEADER #1384  02014B50 (33639248)\n-6F0722 Created Zip Spec      14 (20) '2.0'\n-6F0723 Created OS            00 (0) 'MS-DOS'\n-6F0724 Extract Zip Spec      14 (20) '2.0'\n-6F0725 Extract OS            00 (0) 'MS-DOS'\n-6F0726 General Purpose Flag  0000 (0)\n-6F0728 Compression Method    0000 (0) 'Stored'\n-6F072A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F072E CRC                   00000000 (0)\n-6F0732 Compressed Size       00000000 (0)\n-6F0736 Uncompressed Size     00000000 (0)\n-6F073A Filename Length       0020 (32)\n-6F073C Extra Length          0009 (9)\n-6F073E Comment Length        0000 (0)\n-6F0740 Disk Start            0000 (0)\n-6F0742 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0744 Ext File Attributes   00000000 (0)\n-6F0748 Local Header Offset   004C4122 (4997410)\n-6F074C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F074C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F076C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F076E   Length              0005 (5)\n-6F0770   Flags               01 (1) 'Modification'\n-6F0771   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0775 CENTRAL HEADER #1385  02014B50 (33639248)\n-6F0779 Created Zip Spec      14 (20) '2.0'\n-6F077A Created OS            00 (0) 'MS-DOS'\n-6F077B Extract Zip Spec      14 (20) '2.0'\n-6F077C Extract OS            00 (0) 'MS-DOS'\n-6F077D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F077F Compression Method    0000 (0) 'Stored'\n-6F0781 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0785 CRC                   3CD43B28 (1020541736)\n-6F0789 Compressed Size       00004EA7 (20135)\n-6F078D Uncompressed Size     00004EA7 (20135)\n-6F0791 Filename Length       0032 (50)\n-6F0793 Extra Length          0009 (9)\n-6F0795 Comment Length        0000 (0)\n-6F0797 Disk Start            0000 (0)\n-6F0799 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F079B Ext File Attributes   00000000 (0)\n-6F079F Local Header Offset   004C4169 (4997481)\n-6F07A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F07A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F07D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F07D7   Length              0005 (5)\n-6F07D9   Flags               01 (1) 'Modification'\n-6F07DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F07DE CENTRAL HEADER #1386  02014B50 (33639248)\n-6F07E2 Created Zip Spec      14 (20) '2.0'\n-6F07E3 Created OS            00 (0) 'MS-DOS'\n-6F07E4 Extract Zip Spec      14 (20) '2.0'\n-6F07E5 Extract OS            00 (0) 'MS-DOS'\n-6F07E6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F07E8 Compression Method    0000 (0) 'Stored'\n-6F07EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F07EE CRC                   DA82F0B1 (3666014385)\n-6F07F2 Compressed Size       000004D7 (1239)\n-6F07F6 Uncompressed Size     000004D7 (1239)\n-6F07FA Filename Length       0039 (57)\n-6F07FC Extra Length          0009 (9)\n-6F07FE Comment Length        0000 (0)\n-6F0800 Disk Start            0000 (0)\n-6F0802 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0804 Ext File Attributes   00000000 (0)\n-6F0808 Local Header Offset   004C9079 (5017721)\n-6F080C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F080C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0845 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0847   Length              0005 (5)\n-6F0849   Flags               01 (1) 'Modification'\n-6F084A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F084E CENTRAL HEADER #1387  02014B50 (33639248)\n-6F0852 Created Zip Spec      14 (20) '2.0'\n-6F0853 Created OS            00 (0) 'MS-DOS'\n-6F0854 Extract Zip Spec      14 (20) '2.0'\n-6F0855 Extract OS            00 (0) 'MS-DOS'\n-6F0856 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0858 Compression Method    0000 (0) 'Stored'\n-6F085A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F085E CRC                   34AAC091 (883605649)\n-6F0862 Compressed Size       00000742 (1858)\n-6F0866 Uncompressed Size     00000742 (1858)\n-6F086A Filename Length       003A (58)\n-6F086C Extra Length          0009 (9)\n-6F086E Comment Length        0000 (0)\n-6F0870 Disk Start            0000 (0)\n-6F0872 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0874 Ext File Attributes   00000000 (0)\n-6F0878 Local Header Offset   004C95C0 (5019072)\n-6F087C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F087C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F08B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F08B8   Length              0005 (5)\n-6F08BA   Flags               01 (1) 'Modification'\n-6F08BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F08BF CENTRAL HEADER #1388  02014B50 (33639248)\n-6F08C3 Created Zip Spec      14 (20) '2.0'\n-6F08C4 Created OS            00 (0) 'MS-DOS'\n-6F08C5 Extract Zip Spec      14 (20) '2.0'\n-6F08C6 Extract OS            00 (0) 'MS-DOS'\n-6F08C7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F08C9 Compression Method    0000 (0) 'Stored'\n-6F08CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F08CF CRC                   70BBABEF (1891347439)\n-6F08D3 Compressed Size       000004CE (1230)\n-6F08D7 Uncompressed Size     000004CE (1230)\n-6F08DB Filename Length       0041 (65)\n-6F08DD Extra Length          0009 (9)\n-6F08DF Comment Length        0000 (0)\n-6F08E1 Disk Start            0000 (0)\n-6F08E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F08E5 Ext File Attributes   00000000 (0)\n-6F08E9 Local Header Offset   004C9D73 (5021043)\n-6F08ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F08ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F092E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0930   Length              0005 (5)\n-6F0932   Flags               01 (1) 'Modification'\n-6F0933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0937 CENTRAL HEADER #1389  02014B50 (33639248)\n-6F093B Created Zip Spec      14 (20) '2.0'\n-6F093C Created OS            00 (0) 'MS-DOS'\n-6F093D Extract Zip Spec      14 (20) '2.0'\n-6F093E Extract OS            00 (0) 'MS-DOS'\n-6F093F General Purpose Flag  0000 (0)\n-6F0941 Compression Method    0000 (0) 'Stored'\n-6F0943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0947 CRC                   00000000 (0)\n-6F094B Compressed Size       00000000 (0)\n-6F094F Uncompressed Size     00000000 (0)\n-6F0953 Filename Length       0020 (32)\n-6F0955 Extra Length          0009 (9)\n-6F0957 Comment Length        0000 (0)\n-6F0959 Disk Start            0000 (0)\n-6F095B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F095D Ext File Attributes   00000000 (0)\n-6F0961 Local Header Offset   004CA2B9 (5022393)\n-6F0965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0985 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0987   Length              0005 (5)\n-6F0989   Flags               01 (1) 'Modification'\n-6F098A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F098E CENTRAL HEADER #1390  02014B50 (33639248)\n-6F0992 Created Zip Spec      14 (20) '2.0'\n-6F0993 Created OS            00 (0) 'MS-DOS'\n-6F0994 Extract Zip Spec      14 (20) '2.0'\n-6F0995 Extract OS            00 (0) 'MS-DOS'\n-6F0996 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0998 Compression Method    0000 (0) 'Stored'\n-6F099A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F099E CRC                   A7748368 (2809430888)\n-6F09A2 Compressed Size       00001148 (4424)\n-6F09A6 Uncompressed Size     00001148 (4424)\n-6F09AA Filename Length       0036 (54)\n-6F09AC Extra Length          0009 (9)\n-6F09AE Comment Length        0000 (0)\n-6F09B0 Disk Start            0000 (0)\n-6F09B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F09B4 Ext File Attributes   00000000 (0)\n-6F09B8 Local Header Offset   004CA300 (5022464)\n-6F09BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F09BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F09F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F09F4   Length              0005 (5)\n-6F09F6   Flags               01 (1) 'Modification'\n-6F09F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F09FB CENTRAL HEADER #1391  02014B50 (33639248)\n-6F09FF Created Zip Spec      14 (20) '2.0'\n-6F0A00 Created OS            00 (0) 'MS-DOS'\n-6F0A01 Extract Zip Spec      14 (20) '2.0'\n-6F0A02 Extract OS            00 (0) 'MS-DOS'\n-6F0A03 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0A05 Compression Method    0000 (0) 'Stored'\n-6F0A07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0A0B CRC                   5117C509 (1360512265)\n-6F0A0F Compressed Size       000005CF (1487)\n-6F0A13 Uncompressed Size     000005CF (1487)\n-6F0A17 Filename Length       0039 (57)\n-6F0A19 Extra Length          0009 (9)\n-6F0A1B Comment Length        0000 (0)\n-6F0A1D Disk Start            0000 (0)\n-6F0A1F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0A21 Ext File Attributes   00000000 (0)\n-6F0A25 Local Header Offset   004CB4B5 (5026997)\n-6F0A29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0A29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0A62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0A64   Length              0005 (5)\n-6F0A66   Flags               01 (1) 'Modification'\n-6F0A67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0A6B CENTRAL HEADER #1392  02014B50 (33639248)\n-6F0A6F Created Zip Spec      14 (20) '2.0'\n-6F0A70 Created OS            00 (0) 'MS-DOS'\n-6F0A71 Extract Zip Spec      14 (20) '2.0'\n-6F0A72 Extract OS            00 (0) 'MS-DOS'\n-6F0A73 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0A75 Compression Method    0000 (0) 'Stored'\n-6F0A77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0A7B CRC                   FCC4145B (4240708699)\n-6F0A7F Compressed Size       000006E0 (1760)\n-6F0A83 Uncompressed Size     000006E0 (1760)\n-6F0A87 Filename Length       0039 (57)\n-6F0A89 Extra Length          0009 (9)\n-6F0A8B Comment Length        0000 (0)\n-6F0A8D Disk Start            0000 (0)\n-6F0A8F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0A91 Ext File Attributes   00000000 (0)\n-6F0A95 Local Header Offset   004CBAF4 (5028596)\n-6F0A99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0A99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0AD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0AD4   Length              0005 (5)\n-6F0AD6   Flags               01 (1) 'Modification'\n-6F0AD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0ADB CENTRAL HEADER #1393  02014B50 (33639248)\n-6F0ADF Created Zip Spec      14 (20) '2.0'\n-6F0AE0 Created OS            00 (0) 'MS-DOS'\n-6F0AE1 Extract Zip Spec      14 (20) '2.0'\n-6F0AE2 Extract OS            00 (0) 'MS-DOS'\n-6F0AE3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0AE5 Compression Method    0000 (0) 'Stored'\n-6F0AE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0AEB CRC                   A6BC7A6B (2797369963)\n-6F0AEF Compressed Size       000005DB (1499)\n-6F0AF3 Uncompressed Size     000005DB (1499)\n-6F0AF7 Filename Length       003B (59)\n-6F0AF9 Extra Length          0009 (9)\n-6F0AFB Comment Length        0000 (0)\n-6F0AFD Disk Start            0000 (0)\n-6F0AFF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0B01 Ext File Attributes   00000000 (0)\n-6F0B05 Local Header Offset   004CC244 (5030468)\n-6F0B09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0B09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0B44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0B46   Length              0005 (5)\n-6F0B48   Flags               01 (1) 'Modification'\n-6F0B49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0B4D CENTRAL HEADER #1394  02014B50 (33639248)\n-6F0B51 Created Zip Spec      14 (20) '2.0'\n-6F0B52 Created OS            00 (0) 'MS-DOS'\n-6F0B53 Extract Zip Spec      14 (20) '2.0'\n-6F0B54 Extract OS            00 (0) 'MS-DOS'\n-6F0B55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0B57 Compression Method    0000 (0) 'Stored'\n-6F0B59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0B5D CRC                   CDD77CC5 (3453451461)\n-6F0B61 Compressed Size       000006EA (1770)\n-6F0B65 Uncompressed Size     000006EA (1770)\n-6F0B69 Filename Length       003B (59)\n-6F0B6B Extra Length          0009 (9)\n-6F0B6D Comment Length        0000 (0)\n-6F0B6F Disk Start            0000 (0)\n-6F0B71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0B73 Ext File Attributes   00000000 (0)\n-6F0B77 Local Header Offset   004CC891 (5032081)\n-6F0B7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0B7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0BB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0BB8   Length              0005 (5)\n-6F0BBA   Flags               01 (1) 'Modification'\n-6F0BBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0BBF CENTRAL HEADER #1395  02014B50 (33639248)\n-6F0BC3 Created Zip Spec      14 (20) '2.0'\n-6F0BC4 Created OS            00 (0) 'MS-DOS'\n-6F0BC5 Extract Zip Spec      14 (20) '2.0'\n-6F0BC6 Extract OS            00 (0) 'MS-DOS'\n-6F0BC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0BC9 Compression Method    0000 (0) 'Stored'\n-6F0BCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0BCF CRC                   1D384067 (490225767)\n-6F0BD3 Compressed Size       0000059E (1438)\n-6F0BD7 Uncompressed Size     0000059E (1438)\n-6F0BDB Filename Length       0031 (49)\n-6F0BDD Extra Length          0009 (9)\n-6F0BDF Comment Length        0000 (0)\n-6F0BE1 Disk Start            0000 (0)\n-6F0BE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0BE5 Ext File Attributes   00000000 (0)\n-6F0BE9 Local Header Offset   004CCFED (5033965)\n-6F0BED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0BED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0C1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0C20   Length              0005 (5)\n-6F0C22   Flags               01 (1) 'Modification'\n-6F0C23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0C27 CENTRAL HEADER #1396  02014B50 (33639248)\n-6F0C2B Created Zip Spec      14 (20) '2.0'\n-6F0C2C Created OS            00 (0) 'MS-DOS'\n-6F0C2D Extract Zip Spec      14 (20) '2.0'\n-6F0C2E Extract OS            00 (0) 'MS-DOS'\n-6F0C2F General Purpose Flag  0000 (0)\n-6F0C31 Compression Method    0000 (0) 'Stored'\n-6F0C33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0C37 CRC                   00000000 (0)\n-6F0C3B Compressed Size       00000000 (0)\n-6F0C3F Uncompressed Size     00000000 (0)\n-6F0C43 Filename Length       001F (31)\n-6F0C45 Extra Length          0009 (9)\n-6F0C47 Comment Length        0000 (0)\n-6F0C49 Disk Start            0000 (0)\n-6F0C4B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0C4D Ext File Attributes   00000000 (0)\n-6F0C51 Local Header Offset   004CD5F3 (5035507)\n-6F0C55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0C55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0C74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0C76   Length              0005 (5)\n-6F0C78   Flags               01 (1) 'Modification'\n-6F0C79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0C7D CENTRAL HEADER #1397  02014B50 (33639248)\n-6F0C81 Created Zip Spec      14 (20) '2.0'\n-6F0C82 Created OS            00 (0) 'MS-DOS'\n-6F0C83 Extract Zip Spec      14 (20) '2.0'\n-6F0C84 Extract OS            00 (0) 'MS-DOS'\n-6F0C85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0C87 Compression Method    0000 (0) 'Stored'\n-6F0C89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0C8D CRC                   67F68BAB (1744210859)\n-6F0C91 Compressed Size       0000296B (10603)\n-6F0C95 Uncompressed Size     0000296B (10603)\n-6F0C99 Filename Length       0030 (48)\n-6F0C9B Extra Length          0009 (9)\n-6F0C9D Comment Length        0000 (0)\n-6F0C9F Disk Start            0000 (0)\n-6F0CA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0CA3 Ext File Attributes   00000000 (0)\n-6F0CA7 Local Header Offset   004CD639 (5035577)\n-6F0CAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0CAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0CDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0CDD   Length              0005 (5)\n-6F0CDF   Flags               01 (1) 'Modification'\n-6F0CE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0CE4 CENTRAL HEADER #1398  02014B50 (33639248)\n-6F0CE8 Created Zip Spec      14 (20) '2.0'\n-6F0CE9 Created OS            00 (0) 'MS-DOS'\n-6F0CEA Extract Zip Spec      14 (20) '2.0'\n-6F0CEB Extract OS            00 (0) 'MS-DOS'\n-6F0CEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0CEE Compression Method    0000 (0) 'Stored'\n-6F0CF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0CF4 CRC                   5E420043 (1581383747)\n-6F0CF8 Compressed Size       00000563 (1379)\n-6F0CFC Uncompressed Size     00000563 (1379)\n-6F0D00 Filename Length       0039 (57)\n-6F0D02 Extra Length          0009 (9)\n-6F0D04 Comment Length        0000 (0)\n-6F0D06 Disk Start            0000 (0)\n-6F0D08 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0D0A Ext File Attributes   00000000 (0)\n-6F0D0E Local Header Offset   004D000B (5046283)\n-6F0D12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0D12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0D4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0D4D   Length              0005 (5)\n-6F0D4F   Flags               01 (1) 'Modification'\n-6F0D50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0D54 CENTRAL HEADER #1399  02014B50 (33639248)\n-6F0D58 Created Zip Spec      14 (20) '2.0'\n-6F0D59 Created OS            00 (0) 'MS-DOS'\n-6F0D5A Extract Zip Spec      14 (20) '2.0'\n-6F0D5B Extract OS            00 (0) 'MS-DOS'\n-6F0D5C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0D5E Compression Method    0000 (0) 'Stored'\n-6F0D60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0D64 CRC                   F10F61B1 (4044317105)\n-6F0D68 Compressed Size       00000567 (1383)\n-6F0D6C Uncompressed Size     00000567 (1383)\n-6F0D70 Filename Length       0037 (55)\n-6F0D72 Extra Length          0009 (9)\n-6F0D74 Comment Length        0000 (0)\n-6F0D76 Disk Start            0000 (0)\n-6F0D78 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0D7A Ext File Attributes   00000000 (0)\n-6F0D7E Local Header Offset   004D05DE (5047774)\n-6F0D82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0D82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0DB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0DBB   Length              0005 (5)\n-6F0DBD   Flags               01 (1) 'Modification'\n-6F0DBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0DC2 CENTRAL HEADER #1400  02014B50 (33639248)\n-6F0DC6 Created Zip Spec      14 (20) '2.0'\n-6F0DC7 Created OS            00 (0) 'MS-DOS'\n-6F0DC8 Extract Zip Spec      14 (20) '2.0'\n-6F0DC9 Extract OS            00 (0) 'MS-DOS'\n-6F0DCA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0DCC Compression Method    0000 (0) 'Stored'\n-6F0DCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0DD2 CRC                   F71501FC (4145349116)\n-6F0DD6 Compressed Size       00000924 (2340)\n-6F0DDA Uncompressed Size     00000924 (2340)\n-6F0DDE Filename Length       0038 (56)\n-6F0DE0 Extra Length          0009 (9)\n-6F0DE2 Comment Length        0000 (0)\n-6F0DE4 Disk Start            0000 (0)\n-6F0DE6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0DE8 Ext File Attributes   00000000 (0)\n-6F0DEC Local Header Offset   004D0BB3 (5049267)\n-6F0DF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0DF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0E28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0E2A   Length              0005 (5)\n-6F0E2C   Flags               01 (1) 'Modification'\n-6F0E2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0E31 CENTRAL HEADER #1401  02014B50 (33639248)\n-6F0E35 Created Zip Spec      14 (20) '2.0'\n-6F0E36 Created OS            00 (0) 'MS-DOS'\n-6F0E37 Extract Zip Spec      14 (20) '2.0'\n-6F0E38 Extract OS            00 (0) 'MS-DOS'\n-6F0E39 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0E3B Compression Method    0000 (0) 'Stored'\n-6F0E3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0E41 CRC                   B6DFDCE2 (3068124386)\n-6F0E45 Compressed Size       000026B1 (9905)\n-6F0E49 Uncompressed Size     000026B1 (9905)\n-6F0E4D Filename Length       0040 (64)\n-6F0E4F Extra Length          0009 (9)\n-6F0E51 Comment Length        0000 (0)\n-6F0E53 Disk Start            0000 (0)\n-6F0E55 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0E57 Ext File Attributes   00000000 (0)\n-6F0E5B Local Header Offset   004D1546 (5051718)\n-6F0E5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0E5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0E9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0EA1   Length              0005 (5)\n-6F0EA3   Flags               01 (1) 'Modification'\n-6F0EA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0EA8 CENTRAL HEADER #1402  02014B50 (33639248)\n-6F0EAC Created Zip Spec      14 (20) '2.0'\n-6F0EAD Created OS            00 (0) 'MS-DOS'\n-6F0EAE Extract Zip Spec      14 (20) '2.0'\n-6F0EAF Extract OS            00 (0) 'MS-DOS'\n-6F0EB0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0EB2 Compression Method    0000 (0) 'Stored'\n-6F0EB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0EB8 CRC                   3C911134 (1016140084)\n-6F0EBC Compressed Size       000004D9 (1241)\n-6F0EC0 Uncompressed Size     000004D9 (1241)\n-6F0EC4 Filename Length       0047 (71)\n-6F0EC6 Extra Length          0009 (9)\n-6F0EC8 Comment Length        0000 (0)\n-6F0ECA Disk Start            0000 (0)\n-6F0ECC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0ECE Ext File Attributes   00000000 (0)\n-6F0ED2 Local Header Offset   004D3C6E (5061742)\n-6F0ED6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0ED6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0F1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0F1F   Length              0005 (5)\n-6F0F21   Flags               01 (1) 'Modification'\n-6F0F22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0F26 CENTRAL HEADER #1403  02014B50 (33639248)\n-6F0F2A Created Zip Spec      14 (20) '2.0'\n-6F0F2B Created OS            00 (0) 'MS-DOS'\n-6F0F2C Extract Zip Spec      14 (20) '2.0'\n-6F0F2D Extract OS            00 (0) 'MS-DOS'\n-6F0F2E General Purpose Flag  0000 (0)\n-6F0F30 Compression Method    0000 (0) 'Stored'\n-6F0F32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0F36 CRC                   00000000 (0)\n-6F0F3A Compressed Size       00000000 (0)\n-6F0F3E Uncompressed Size     00000000 (0)\n-6F0F42 Filename Length       0021 (33)\n-6F0F44 Extra Length          0009 (9)\n-6F0F46 Comment Length        0000 (0)\n-6F0F48 Disk Start            0000 (0)\n-6F0F4A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0F4C Ext File Attributes   00000000 (0)\n-6F0F50 Local Header Offset   004D41C5 (5063109)\n-6F0F54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0F54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0F75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0F77   Length              0005 (5)\n-6F0F79   Flags               01 (1) 'Modification'\n-6F0F7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0F7E CENTRAL HEADER #1404  02014B50 (33639248)\n-6F0F82 Created Zip Spec      14 (20) '2.0'\n-6F0F83 Created OS            00 (0) 'MS-DOS'\n-6F0F84 Extract Zip Spec      14 (20) '2.0'\n-6F0F85 Extract OS            00 (0) 'MS-DOS'\n-6F0F86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F0F88 Compression Method    0000 (0) 'Stored'\n-6F0F8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F0F8E CRC                   F2E8FAB9 (4075354809)\n-6F0F92 Compressed Size       00000826 (2086)\n-6F0F96 Uncompressed Size     00000826 (2086)\n-6F0F9A Filename Length       003B (59)\n-6F0F9C Extra Length          0009 (9)\n-6F0F9E Comment Length        0000 (0)\n-6F0FA0 Disk Start            0000 (0)\n-6F0FA2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F0FA4 Ext File Attributes   00000000 (0)\n-6F0FA8 Local Header Offset   004D420D (5063181)\n-6F0FAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F0FAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F0FE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F0FE9   Length              0005 (5)\n-6F0FEB   Flags               01 (1) 'Modification'\n-6F0FEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F0FF0 CENTRAL HEADER #1405  02014B50 (33639248)\n-6F0FF4 Created Zip Spec      14 (20) '2.0'\n-6F0FF5 Created OS            00 (0) 'MS-DOS'\n-6F0FF6 Extract Zip Spec      14 (20) '2.0'\n-6F0FF7 Extract OS            00 (0) 'MS-DOS'\n-6F0FF8 General Purpose Flag  0000 (0)\n-6F0FFA Compression Method    0000 (0) 'Stored'\n-6F0FFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1000 CRC                   00000000 (0)\n-6F1004 Compressed Size       00000000 (0)\n-6F1008 Uncompressed Size     00000000 (0)\n-6F100C Filename Length       0022 (34)\n-6F100E Extra Length          0009 (9)\n-6F1010 Comment Length        0000 (0)\n-6F1012 Disk Start            0000 (0)\n-6F1014 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1016 Ext File Attributes   00000000 (0)\n-6F101A Local Header Offset   004D4AA5 (5065381)\n-6F101E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F101E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1040 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1042   Length              0005 (5)\n-6F1044   Flags               01 (1) 'Modification'\n-6F1045   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1049 CENTRAL HEADER #1406  02014B50 (33639248)\n-6F104D Created Zip Spec      14 (20) '2.0'\n-6F104E Created OS            00 (0) 'MS-DOS'\n-6F104F Extract Zip Spec      14 (20) '2.0'\n-6F1050 Extract OS            00 (0) 'MS-DOS'\n-6F1051 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1053 Compression Method    0000 (0) 'Stored'\n-6F1055 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1059 CRC                   5DDCD4C5 (1574753477)\n-6F105D Compressed Size       0000537F (21375)\n-6F1061 Uncompressed Size     0000537F (21375)\n-6F1065 Filename Length       0037 (55)\n-6F1067 Extra Length          0009 (9)\n-6F1069 Comment Length        0000 (0)\n-6F106B Disk Start            0000 (0)\n-6F106D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F106F Ext File Attributes   00000000 (0)\n-6F1073 Local Header Offset   004D4AEE (5065454)\n-6F1077 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1077: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F10AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F10B0   Length              0005 (5)\n-6F10B2   Flags               01 (1) 'Modification'\n-6F10B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F10B7 CENTRAL HEADER #1407  02014B50 (33639248)\n-6F10BB Created Zip Spec      14 (20) '2.0'\n-6F10BC Created OS            00 (0) 'MS-DOS'\n-6F10BD Extract Zip Spec      14 (20) '2.0'\n-6F10BE Extract OS            00 (0) 'MS-DOS'\n-6F10BF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F10C1 Compression Method    0000 (0) 'Stored'\n-6F10C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F10C7 CRC                   5BC81E29 (1539841577)\n-6F10CB Compressed Size       00001D8A (7562)\n-6F10CF Uncompressed Size     00001D8A (7562)\n-6F10D3 Filename Length       003E (62)\n-6F10D5 Extra Length          0009 (9)\n-6F10D7 Comment Length        0000 (0)\n-6F10D9 Disk Start            0000 (0)\n-6F10DB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F10DD Ext File Attributes   00000000 (0)\n-6F10E1 Local Header Offset   004D9EDB (5086939)\n-6F10E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F10E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1123 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1125   Length              0005 (5)\n-6F1127   Flags               01 (1) 'Modification'\n-6F1128   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F112C CENTRAL HEADER #1408  02014B50 (33639248)\n-6F1130 Created Zip Spec      14 (20) '2.0'\n-6F1131 Created OS            00 (0) 'MS-DOS'\n-6F1132 Extract Zip Spec      14 (20) '2.0'\n-6F1133 Extract OS            00 (0) 'MS-DOS'\n-6F1134 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1136 Compression Method    0000 (0) 'Stored'\n-6F1138 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F113C CRC                   A266F3B2 (2724656050)\n-6F1140 Compressed Size       0000462E (17966)\n-6F1144 Uncompressed Size     0000462E (17966)\n-6F1148 Filename Length       0037 (55)\n-6F114A Extra Length          0009 (9)\n-6F114C Comment Length        0000 (0)\n-6F114E Disk Start            0000 (0)\n-6F1150 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1152 Ext File Attributes   00000000 (0)\n-6F1156 Local Header Offset   004DBCDA (5094618)\n-6F115A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F115A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1191 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1193   Length              0005 (5)\n-6F1195   Flags               01 (1) 'Modification'\n-6F1196   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F119A CENTRAL HEADER #1409  02014B50 (33639248)\n-6F119E Created Zip Spec      14 (20) '2.0'\n-6F119F Created OS            00 (0) 'MS-DOS'\n-6F11A0 Extract Zip Spec      14 (20) '2.0'\n-6F11A1 Extract OS            00 (0) 'MS-DOS'\n-6F11A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F11A4 Compression Method    0000 (0) 'Stored'\n-6F11A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F11AA CRC                   952E3CF5 (2502835445)\n-6F11AE Compressed Size       00000552 (1362)\n-6F11B2 Uncompressed Size     00000552 (1362)\n-6F11B6 Filename Length       0043 (67)\n-6F11B8 Extra Length          0009 (9)\n-6F11BA Comment Length        0000 (0)\n-6F11BC Disk Start            0000 (0)\n-6F11BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F11C0 Ext File Attributes   00000000 (0)\n-6F11C4 Local Header Offset   004E0376 (5112694)\n-6F11C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F11C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F120B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F120D   Length              0005 (5)\n-6F120F   Flags               01 (1) 'Modification'\n-6F1210   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1214 CENTRAL HEADER #1410  02014B50 (33639248)\n-6F1218 Created Zip Spec      14 (20) '2.0'\n-6F1219 Created OS            00 (0) 'MS-DOS'\n-6F121A Extract Zip Spec      14 (20) '2.0'\n-6F121B Extract OS            00 (0) 'MS-DOS'\n-6F121C General Purpose Flag  0000 (0)\n-6F121E Compression Method    0000 (0) 'Stored'\n-6F1220 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1224 CRC                   00000000 (0)\n-6F1228 Compressed Size       00000000 (0)\n-6F122C Uncompressed Size     00000000 (0)\n-6F1230 Filename Length       0024 (36)\n-6F1232 Extra Length          0009 (9)\n-6F1234 Comment Length        0000 (0)\n-6F1236 Disk Start            0000 (0)\n-6F1238 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F123A Ext File Attributes   00000000 (0)\n-6F123E Local Header Offset   004E0942 (5114178)\n-6F1242 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1242: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1266 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1268   Length              0005 (5)\n-6F126A   Flags               01 (1) 'Modification'\n-6F126B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F126F CENTRAL HEADER #1411  02014B50 (33639248)\n-6F1273 Created Zip Spec      14 (20) '2.0'\n-6F1274 Created OS            00 (0) 'MS-DOS'\n-6F1275 Extract Zip Spec      14 (20) '2.0'\n-6F1276 Extract OS            00 (0) 'MS-DOS'\n-6F1277 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1279 Compression Method    0000 (0) 'Stored'\n-6F127B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F127F CRC                   FA431F6B (4198702955)\n-6F1283 Compressed Size       0000081E (2078)\n-6F1287 Uncompressed Size     0000081E (2078)\n-6F128B Filename Length       003A (58)\n-6F128D Extra Length          0009 (9)\n-6F128F Comment Length        0000 (0)\n-6F1291 Disk Start            0000 (0)\n-6F1293 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1295 Ext File Attributes   00000000 (0)\n-6F1299 Local Header Offset   004E098D (5114253)\n-6F129D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F129D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F12D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F12D9   Length              0005 (5)\n-6F12DB   Flags               01 (1) 'Modification'\n-6F12DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F12E0 CENTRAL HEADER #1412  02014B50 (33639248)\n-6F12E4 Created Zip Spec      14 (20) '2.0'\n-6F12E5 Created OS            00 (0) 'MS-DOS'\n-6F12E6 Extract Zip Spec      14 (20) '2.0'\n-6F12E7 Extract OS            00 (0) 'MS-DOS'\n-6F12E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F12EA Compression Method    0000 (0) 'Stored'\n-6F12EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F12F0 CRC                   57271651 (1462179409)\n-6F12F4 Compressed Size       00003A1F (14879)\n-6F12F8 Uncompressed Size     00003A1F (14879)\n-6F12FC Filename Length       003A (58)\n-6F12FE Extra Length          0009 (9)\n-6F1300 Comment Length        0000 (0)\n-6F1302 Disk Start            0000 (0)\n-6F1304 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1306 Ext File Attributes   00000000 (0)\n-6F130A Local Header Offset   004E121C (5116444)\n-6F130E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F130E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1348 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F134A   Length              0005 (5)\n-6F134C   Flags               01 (1) 'Modification'\n-6F134D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1351 CENTRAL HEADER #1413  02014B50 (33639248)\n-6F1355 Created Zip Spec      14 (20) '2.0'\n-6F1356 Created OS            00 (0) 'MS-DOS'\n-6F1357 Extract Zip Spec      14 (20) '2.0'\n-6F1358 Extract OS            00 (0) 'MS-DOS'\n-6F1359 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F135B Compression Method    0000 (0) 'Stored'\n-6F135D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1361 CRC                   E96DE12E (3916292398)\n-6F1365 Compressed Size       00000683 (1667)\n-6F1369 Uncompressed Size     00000683 (1667)\n-6F136D Filename Length       0041 (65)\n-6F136F Extra Length          0009 (9)\n-6F1371 Comment Length        0000 (0)\n-6F1373 Disk Start            0000 (0)\n-6F1375 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1377 Ext File Attributes   00000000 (0)\n-6F137B Local Header Offset   004E4CAC (5131436)\n-6F137F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F137F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F13C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F13C2   Length              0005 (5)\n-6F13C4   Flags               01 (1) 'Modification'\n-6F13C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F13C9 CENTRAL HEADER #1414  02014B50 (33639248)\n-6F13CD Created Zip Spec      14 (20) '2.0'\n-6F13CE Created OS            00 (0) 'MS-DOS'\n-6F13CF Extract Zip Spec      14 (20) '2.0'\n-6F13D0 Extract OS            00 (0) 'MS-DOS'\n-6F13D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F13D3 Compression Method    0000 (0) 'Stored'\n-6F13D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F13D9 CRC                   F6A7D6C9 (4138194633)\n-6F13DD Compressed Size       0000205C (8284)\n-6F13E1 Uncompressed Size     0000205C (8284)\n-6F13E5 Filename Length       0042 (66)\n-6F13E7 Extra Length          0009 (9)\n-6F13E9 Comment Length        0000 (0)\n-6F13EB Disk Start            0000 (0)\n-6F13ED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F13EF Ext File Attributes   00000000 (0)\n-6F13F3 Local Header Offset   004E53A7 (5133223)\n-6F13F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F13F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1439 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F143B   Length              0005 (5)\n-6F143D   Flags               01 (1) 'Modification'\n-6F143E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1442 CENTRAL HEADER #1415  02014B50 (33639248)\n-6F1446 Created Zip Spec      14 (20) '2.0'\n-6F1447 Created OS            00 (0) 'MS-DOS'\n-6F1448 Extract Zip Spec      14 (20) '2.0'\n-6F1449 Extract OS            00 (0) 'MS-DOS'\n-6F144A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F144C Compression Method    0000 (0) 'Stored'\n-6F144E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1452 CRC                   B6EA911C (3068825884)\n-6F1456 Compressed Size       00000C6F (3183)\n-6F145A Uncompressed Size     00000C6F (3183)\n-6F145E Filename Length       004F (79)\n-6F1460 Extra Length          0009 (9)\n-6F1462 Comment Length        0000 (0)\n-6F1464 Disk Start            0000 (0)\n-6F1466 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1468 Ext File Attributes   00000000 (0)\n-6F146C Local Header Offset   004E747C (5141628)\n-6F1470 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1470: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F14BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F14C1   Length              0005 (5)\n-6F14C3   Flags               01 (1) 'Modification'\n-6F14C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F14C8 CENTRAL HEADER #1416  02014B50 (33639248)\n-6F14CC Created Zip Spec      14 (20) '2.0'\n-6F14CD Created OS            00 (0) 'MS-DOS'\n-6F14CE Extract Zip Spec      14 (20) '2.0'\n-6F14CF Extract OS            00 (0) 'MS-DOS'\n-6F14D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F14D2 Compression Method    0000 (0) 'Stored'\n-6F14D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F14D8 CRC                   ACDFEDCC (2900356556)\n-6F14DC Compressed Size       000004D9 (1241)\n-6F14E0 Uncompressed Size     000004D9 (1241)\n-6F14E4 Filename Length       0049 (73)\n-6F14E6 Extra Length          0009 (9)\n-6F14E8 Comment Length        0000 (0)\n-6F14EA Disk Start            0000 (0)\n-6F14EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F14EE Ext File Attributes   00000000 (0)\n-6F14F2 Local Header Offset   004E8171 (5144945)\n-6F14F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F14F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F153F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1541   Length              0005 (5)\n-6F1543   Flags               01 (1) 'Modification'\n-6F1544   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1548 CENTRAL HEADER #1417  02014B50 (33639248)\n-6F154C Created Zip Spec      14 (20) '2.0'\n-6F154D Created OS            00 (0) 'MS-DOS'\n-6F154E Extract Zip Spec      14 (20) '2.0'\n-6F154F Extract OS            00 (0) 'MS-DOS'\n-6F1550 General Purpose Flag  0000 (0)\n-6F1552 Compression Method    0000 (0) 'Stored'\n-6F1554 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1558 CRC                   00000000 (0)\n-6F155C Compressed Size       00000000 (0)\n-6F1560 Uncompressed Size     00000000 (0)\n-6F1564 Filename Length       0029 (41)\n-6F1566 Extra Length          0009 (9)\n-6F1568 Comment Length        0000 (0)\n-6F156A Disk Start            0000 (0)\n-6F156C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F156E Ext File Attributes   00000000 (0)\n-6F1572 Local Header Offset   004E86CA (5146314)\n-6F1576 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1576: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F159F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F15A1   Length              0005 (5)\n-6F15A3   Flags               01 (1) 'Modification'\n-6F15A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F15A8 CENTRAL HEADER #1418  02014B50 (33639248)\n-6F15AC Created Zip Spec      14 (20) '2.0'\n-6F15AD Created OS            00 (0) 'MS-DOS'\n-6F15AE Extract Zip Spec      14 (20) '2.0'\n-6F15AF Extract OS            00 (0) 'MS-DOS'\n-6F15B0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F15B2 Compression Method    0000 (0) 'Stored'\n-6F15B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F15B8 CRC                   7087B36E (1887941486)\n-6F15BC Compressed Size       00000C71 (3185)\n-6F15C0 Uncompressed Size     00000C71 (3185)\n-6F15C4 Filename Length       0044 (68)\n-6F15C6 Extra Length          0009 (9)\n-6F15C8 Comment Length        0000 (0)\n-6F15CA Disk Start            0000 (0)\n-6F15CC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F15CE Ext File Attributes   00000000 (0)\n-6F15D2 Local Header Offset   004E871A (5146394)\n-6F15D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F15D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F161A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F161C   Length              0005 (5)\n-6F161E   Flags               01 (1) 'Modification'\n-6F161F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1623 CENTRAL HEADER #1419  02014B50 (33639248)\n-6F1627 Created Zip Spec      14 (20) '2.0'\n-6F1628 Created OS            00 (0) 'MS-DOS'\n-6F1629 Extract Zip Spec      14 (20) '2.0'\n-6F162A Extract OS            00 (0) 'MS-DOS'\n-6F162B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F162D Compression Method    0000 (0) 'Stored'\n-6F162F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1633 CRC                   AF46E40B (2940658699)\n-6F1637 Compressed Size       00001556 (5462)\n-6F163B Uncompressed Size     00001556 (5462)\n-6F163F Filename Length       0043 (67)\n-6F1641 Extra Length          0009 (9)\n-6F1643 Comment Length        0000 (0)\n-6F1645 Disk Start            0000 (0)\n-6F1647 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1649 Ext File Attributes   00000000 (0)\n-6F164D Local Header Offset   004E9406 (5149702)\n-6F1651 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1651: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1694 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1696   Length              0005 (5)\n-6F1698   Flags               01 (1) 'Modification'\n-6F1699   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F169D CENTRAL HEADER #1420  02014B50 (33639248)\n-6F16A1 Created Zip Spec      14 (20) '2.0'\n-6F16A2 Created OS            00 (0) 'MS-DOS'\n-6F16A3 Extract Zip Spec      14 (20) '2.0'\n-6F16A4 Extract OS            00 (0) 'MS-DOS'\n-6F16A5 General Purpose Flag  0000 (0)\n-6F16A7 Compression Method    0000 (0) 'Stored'\n-6F16A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F16AD CRC                   00000000 (0)\n-6F16B1 Compressed Size       00000000 (0)\n-6F16B5 Uncompressed Size     00000000 (0)\n-6F16B9 Filename Length       001A (26)\n-6F16BB Extra Length          0009 (9)\n-6F16BD Comment Length        0000 (0)\n-6F16BF Disk Start            0000 (0)\n-6F16C1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F16C3 Ext File Attributes   00000000 (0)\n-6F16C7 Local Header Offset   004EA9D6 (5155286)\n-6F16CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F16CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F16E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F16E7   Length              0005 (5)\n-6F16E9   Flags               01 (1) 'Modification'\n-6F16EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F16EE CENTRAL HEADER #1421  02014B50 (33639248)\n-6F16F2 Created Zip Spec      14 (20) '2.0'\n-6F16F3 Created OS            00 (0) 'MS-DOS'\n-6F16F4 Extract Zip Spec      14 (20) '2.0'\n-6F16F5 Extract OS            00 (0) 'MS-DOS'\n-6F16F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F16F8 Compression Method    0000 (0) 'Stored'\n-6F16FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F16FE CRC                   1FBA8398 (532317080)\n-6F1702 Compressed Size       0000073A (1850)\n-6F1706 Uncompressed Size     0000073A (1850)\n-6F170A Filename Length       0026 (38)\n-6F170C Extra Length          0009 (9)\n-6F170E Comment Length        0000 (0)\n-6F1710 Disk Start            0000 (0)\n-6F1712 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1714 Ext File Attributes   00000000 (0)\n-6F1718 Local Header Offset   004EAA17 (5155351)\n-6F171C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F171C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1742 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1744   Length              0005 (5)\n-6F1746   Flags               01 (1) 'Modification'\n-6F1747   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F174B CENTRAL HEADER #1422  02014B50 (33639248)\n-6F174F Created Zip Spec      14 (20) '2.0'\n-6F1750 Created OS            00 (0) 'MS-DOS'\n-6F1751 Extract Zip Spec      14 (20) '2.0'\n-6F1752 Extract OS            00 (0) 'MS-DOS'\n-6F1753 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1755 Compression Method    0000 (0) 'Stored'\n-6F1757 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F175B CRC                   1A6C5333 (443306803)\n-6F175F Compressed Size       00000849 (2121)\n-6F1763 Uncompressed Size     00000849 (2121)\n-6F1767 Filename Length       002D (45)\n-6F1769 Extra Length          0009 (9)\n-6F176B Comment Length        0000 (0)\n-6F176D Disk Start            0000 (0)\n-6F176F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1771 Ext File Attributes   00000000 (0)\n-6F1775 Local Header Offset   004EB1AE (5157294)\n-6F1779 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1779: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F17A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F17A8   Length              0005 (5)\n-6F17AA   Flags               01 (1) 'Modification'\n-6F17AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F17AF CENTRAL HEADER #1423  02014B50 (33639248)\n-6F17B3 Created Zip Spec      14 (20) '2.0'\n-6F17B4 Created OS            00 (0) 'MS-DOS'\n-6F17B5 Extract Zip Spec      14 (20) '2.0'\n-6F17B6 Extract OS            00 (0) 'MS-DOS'\n-6F17B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F17B9 Compression Method    0000 (0) 'Stored'\n-6F17BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F17BF CRC                   107C6EE6 (276590310)\n-6F17C3 Compressed Size       0000058B (1419)\n-6F17C7 Uncompressed Size     0000058B (1419)\n-6F17CB Filename Length       0025 (37)\n-6F17CD Extra Length          0009 (9)\n-6F17CF Comment Length        0000 (0)\n-6F17D1 Disk Start            0000 (0)\n-6F17D3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F17D5 Ext File Attributes   00000000 (0)\n-6F17D9 Local Header Offset   004EBA5B (5159515)\n-6F17DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F17DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1802 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1804   Length              0005 (5)\n-6F1806   Flags               01 (1) 'Modification'\n-6F1807   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F180B CENTRAL HEADER #1424  02014B50 (33639248)\n-6F180F Created Zip Spec      14 (20) '2.0'\n-6F1810 Created OS            00 (0) 'MS-DOS'\n-6F1811 Extract Zip Spec      14 (20) '2.0'\n-6F1812 Extract OS            00 (0) 'MS-DOS'\n-6F1813 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1815 Compression Method    0000 (0) 'Stored'\n-6F1817 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F181B CRC                   201747E5 (538396645)\n-6F181F Compressed Size       00000734 (1844)\n-6F1823 Uncompressed Size     00000734 (1844)\n-6F1827 Filename Length       0024 (36)\n-6F1829 Extra Length          0009 (9)\n-6F182B Comment Length        0000 (0)\n-6F182D Disk Start            0000 (0)\n-6F182F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1831 Ext File Attributes   00000000 (0)\n-6F1835 Local Header Offset   004EC042 (5161026)\n-6F1839 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1839: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F185D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F185F   Length              0005 (5)\n-6F1861   Flags               01 (1) 'Modification'\n-6F1862   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1866 CENTRAL HEADER #1425  02014B50 (33639248)\n-6F186A Created Zip Spec      14 (20) '2.0'\n-6F186B Created OS            00 (0) 'MS-DOS'\n-6F186C Extract Zip Spec      14 (20) '2.0'\n-6F186D Extract OS            00 (0) 'MS-DOS'\n-6F186E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1870 Compression Method    0000 (0) 'Stored'\n-6F1872 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1876 CRC                   B08F3D84 (2962177412)\n-6F187A Compressed Size       0000055C (1372)\n-6F187E Uncompressed Size     0000055C (1372)\n-6F1882 Filename Length       0025 (37)\n-6F1884 Extra Length          0009 (9)\n-6F1886 Comment Length        0000 (0)\n-6F1888 Disk Start            0000 (0)\n-6F188A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F188C Ext File Attributes   00000000 (0)\n-6F1890 Local Header Offset   004EC7D1 (5162961)\n-6F1894 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1894: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F18B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F18BB   Length              0005 (5)\n-6F18BD   Flags               01 (1) 'Modification'\n-6F18BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F18C2 CENTRAL HEADER #1426  02014B50 (33639248)\n-6F18C6 Created Zip Spec      14 (20) '2.0'\n-6F18C7 Created OS            00 (0) 'MS-DOS'\n-6F18C8 Extract Zip Spec      14 (20) '2.0'\n-6F18C9 Extract OS            00 (0) 'MS-DOS'\n-6F18CA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F18CC Compression Method    0000 (0) 'Stored'\n-6F18CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F18D2 CRC                   AB401562 (2873103714)\n-6F18D6 Compressed Size       00000E7B (3707)\n-6F18DA Uncompressed Size     00000E7B (3707)\n-6F18DE Filename Length       0028 (40)\n-6F18E0 Extra Length          0009 (9)\n-6F18E2 Comment Length        0000 (0)\n-6F18E4 Disk Start            0000 (0)\n-6F18E6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F18E8 Ext File Attributes   00000000 (0)\n-6F18EC Local Header Offset   004ECD89 (5164425)\n-6F18F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F18F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1918 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F191A   Length              0005 (5)\n-6F191C   Flags               01 (1) 'Modification'\n-6F191D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1921 CENTRAL HEADER #1427  02014B50 (33639248)\n-6F1925 Created Zip Spec      14 (20) '2.0'\n-6F1926 Created OS            00 (0) 'MS-DOS'\n-6F1927 Extract Zip Spec      14 (20) '2.0'\n-6F1928 Extract OS            00 (0) 'MS-DOS'\n-6F1929 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F192B Compression Method    0000 (0) 'Stored'\n-6F192D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1931 CRC                   D7F89917 (3623393559)\n-6F1935 Compressed Size       000003AC (940)\n-6F1939 Uncompressed Size     000003AC (940)\n-6F193D Filename Length       0029 (41)\n-6F193F Extra Length          0009 (9)\n-6F1941 Comment Length        0000 (0)\n-6F1943 Disk Start            0000 (0)\n-6F1945 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1947 Ext File Attributes   00000000 (0)\n-6F194B Local Header Offset   004EDC63 (5168227)\n-6F194F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F194F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1978 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F197A   Length              0005 (5)\n-6F197C   Flags               01 (1) 'Modification'\n-6F197D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1981 CENTRAL HEADER #1428  02014B50 (33639248)\n-6F1985 Created Zip Spec      14 (20) '2.0'\n-6F1986 Created OS            00 (0) 'MS-DOS'\n-6F1987 Extract Zip Spec      14 (20) '2.0'\n-6F1988 Extract OS            00 (0) 'MS-DOS'\n-6F1989 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F198B Compression Method    0000 (0) 'Stored'\n-6F198D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1991 CRC                   277ABF59 (662355801)\n-6F1995 Compressed Size       000005F8 (1528)\n-6F1999 Uncompressed Size     000005F8 (1528)\n-6F199D Filename Length       0029 (41)\n-6F199F Extra Length          0009 (9)\n-6F19A1 Comment Length        0000 (0)\n-6F19A3 Disk Start            0000 (0)\n-6F19A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F19A7 Ext File Attributes   00000000 (0)\n-6F19AB Local Header Offset   004EE06F (5169263)\n-6F19AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F19AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F19D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F19DA   Length              0005 (5)\n-6F19DC   Flags               01 (1) 'Modification'\n-6F19DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F19E1 CENTRAL HEADER #1429  02014B50 (33639248)\n-6F19E5 Created Zip Spec      14 (20) '2.0'\n-6F19E6 Created OS            00 (0) 'MS-DOS'\n-6F19E7 Extract Zip Spec      14 (20) '2.0'\n-6F19E8 Extract OS            00 (0) 'MS-DOS'\n-6F19E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F19EB Compression Method    0000 (0) 'Stored'\n-6F19ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F19F1 CRC                   D97FD102 (3649032450)\n-6F19F5 Compressed Size       0000083D (2109)\n-6F19F9 Uncompressed Size     0000083D (2109)\n-6F19FD Filename Length       0027 (39)\n-6F19FF Extra Length          0009 (9)\n-6F1A01 Comment Length        0000 (0)\n-6F1A03 Disk Start            0000 (0)\n-6F1A05 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1A07 Ext File Attributes   00000000 (0)\n-6F1A0B Local Header Offset   004EE6C7 (5170887)\n-6F1A0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1A0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1A36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1A38   Length              0005 (5)\n-6F1A3A   Flags               01 (1) 'Modification'\n-6F1A3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1A3F CENTRAL HEADER #1430  02014B50 (33639248)\n-6F1A43 Created Zip Spec      14 (20) '2.0'\n-6F1A44 Created OS            00 (0) 'MS-DOS'\n-6F1A45 Extract Zip Spec      14 (20) '2.0'\n-6F1A46 Extract OS            00 (0) 'MS-DOS'\n-6F1A47 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1A49 Compression Method    0000 (0) 'Stored'\n-6F1A4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1A4F CRC                   6CA638E1 (1822832865)\n-6F1A53 Compressed Size       00000968 (2408)\n-6F1A57 Uncompressed Size     00000968 (2408)\n-6F1A5B Filename Length       0031 (49)\n-6F1A5D Extra Length          0009 (9)\n-6F1A5F Comment Length        0000 (0)\n-6F1A61 Disk Start            0000 (0)\n-6F1A63 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1A65 Ext File Attributes   00000000 (0)\n-6F1A69 Local Header Offset   004EEF62 (5173090)\n-6F1A6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1A6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1A9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1AA0   Length              0005 (5)\n-6F1AA2   Flags               01 (1) 'Modification'\n-6F1AA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1AA7 CENTRAL HEADER #1431  02014B50 (33639248)\n-6F1AAB Created Zip Spec      14 (20) '2.0'\n-6F1AAC Created OS            00 (0) 'MS-DOS'\n-6F1AAD Extract Zip Spec      14 (20) '2.0'\n-6F1AAE Extract OS            00 (0) 'MS-DOS'\n-6F1AAF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1AB1 Compression Method    0000 (0) 'Stored'\n-6F1AB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1AB7 CRC                   A6AFF543 (2796549443)\n-6F1ABB Compressed Size       00000613 (1555)\n-6F1ABF Uncompressed Size     00000613 (1555)\n-6F1AC3 Filename Length       002B (43)\n-6F1AC5 Extra Length          0009 (9)\n-6F1AC7 Comment Length        0000 (0)\n-6F1AC9 Disk Start            0000 (0)\n-6F1ACB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1ACD Ext File Attributes   00000000 (0)\n-6F1AD1 Local Header Offset   004EF932 (5175602)\n-6F1AD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1AD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1B00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1B02   Length              0005 (5)\n-6F1B04   Flags               01 (1) 'Modification'\n-6F1B05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1B09 CENTRAL HEADER #1432  02014B50 (33639248)\n-6F1B0D Created Zip Spec      14 (20) '2.0'\n-6F1B0E Created OS            00 (0) 'MS-DOS'\n-6F1B0F Extract Zip Spec      14 (20) '2.0'\n-6F1B10 Extract OS            00 (0) 'MS-DOS'\n-6F1B11 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1B13 Compression Method    0000 (0) 'Stored'\n-6F1B15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1B19 CRC                   F7D73BF2 (4158077938)\n-6F1B1D Compressed Size       00000C96 (3222)\n-6F1B21 Uncompressed Size     00000C96 (3222)\n-6F1B25 Filename Length       0030 (48)\n-6F1B27 Extra Length          0009 (9)\n-6F1B29 Comment Length        0000 (0)\n-6F1B2B Disk Start            0000 (0)\n-6F1B2D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1B2F Ext File Attributes   00000000 (0)\n-6F1B33 Local Header Offset   004EFFA7 (5177255)\n-6F1B37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1B37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1B67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1B69   Length              0005 (5)\n-6F1B6B   Flags               01 (1) 'Modification'\n-6F1B6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1B70 CENTRAL HEADER #1433  02014B50 (33639248)\n-6F1B74 Created Zip Spec      14 (20) '2.0'\n-6F1B75 Created OS            00 (0) 'MS-DOS'\n-6F1B76 Extract Zip Spec      14 (20) '2.0'\n-6F1B77 Extract OS            00 (0) 'MS-DOS'\n-6F1B78 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1B7A Compression Method    0000 (0) 'Stored'\n-6F1B7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1B80 CRC                   D7FFC616 (3623863830)\n-6F1B84 Compressed Size       000006A9 (1705)\n-6F1B88 Uncompressed Size     000006A9 (1705)\n-6F1B8C Filename Length       002D (45)\n-6F1B8E Extra Length          0009 (9)\n-6F1B90 Comment Length        0000 (0)\n-6F1B92 Disk Start            0000 (0)\n-6F1B94 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1B96 Ext File Attributes   00000000 (0)\n-6F1B9A Local Header Offset   004F0CA4 (5180580)\n-6F1B9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1B9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1BCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1BCD   Length              0005 (5)\n-6F1BCF   Flags               01 (1) 'Modification'\n-6F1BD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1BD4 CENTRAL HEADER #1434  02014B50 (33639248)\n-6F1BD8 Created Zip Spec      14 (20) '2.0'\n-6F1BD9 Created OS            00 (0) 'MS-DOS'\n-6F1BDA Extract Zip Spec      14 (20) '2.0'\n-6F1BDB Extract OS            00 (0) 'MS-DOS'\n-6F1BDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1BDE Compression Method    0000 (0) 'Stored'\n-6F1BE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1BE4 CRC                   272E47E6 (657344486)\n-6F1BE8 Compressed Size       00000789 (1929)\n-6F1BEC Uncompressed Size     00000789 (1929)\n-6F1BF0 Filename Length       002F (47)\n-6F1BF2 Extra Length          0009 (9)\n-6F1BF4 Comment Length        0000 (0)\n-6F1BF6 Disk Start            0000 (0)\n-6F1BF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1BFA Ext File Attributes   00000000 (0)\n-6F1BFE Local Header Offset   004F13B1 (5182385)\n-6F1C02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1C02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1C31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1C33   Length              0005 (5)\n-6F1C35   Flags               01 (1) 'Modification'\n-6F1C36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1C3A CENTRAL HEADER #1435  02014B50 (33639248)\n-6F1C3E Created Zip Spec      14 (20) '2.0'\n-6F1C3F Created OS            00 (0) 'MS-DOS'\n-6F1C40 Extract Zip Spec      14 (20) '2.0'\n-6F1C41 Extract OS            00 (0) 'MS-DOS'\n-6F1C42 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1C44 Compression Method    0000 (0) 'Stored'\n-6F1C46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1C4A CRC                   684E4E1B (1749962267)\n-6F1C4E Compressed Size       00000814 (2068)\n-6F1C52 Uncompressed Size     00000814 (2068)\n-6F1C56 Filename Length       002A (42)\n-6F1C58 Extra Length          0009 (9)\n-6F1C5A Comment Length        0000 (0)\n-6F1C5C Disk Start            0000 (0)\n-6F1C5E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1C60 Ext File Attributes   00000000 (0)\n-6F1C64 Local Header Offset   004F1BA0 (5184416)\n-6F1C68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1C68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1C92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1C94   Length              0005 (5)\n-6F1C96   Flags               01 (1) 'Modification'\n-6F1C97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1C9B CENTRAL HEADER #1436  02014B50 (33639248)\n-6F1C9F Created Zip Spec      14 (20) '2.0'\n-6F1CA0 Created OS            00 (0) 'MS-DOS'\n-6F1CA1 Extract Zip Spec      14 (20) '2.0'\n-6F1CA2 Extract OS            00 (0) 'MS-DOS'\n-6F1CA3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1CA5 Compression Method    0000 (0) 'Stored'\n-6F1CA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1CAB CRC                   65BE8BD8 (1706986456)\n-6F1CAF Compressed Size       00000C19 (3097)\n-6F1CB3 Uncompressed Size     00000C19 (3097)\n-6F1CB7 Filename Length       002B (43)\n-6F1CB9 Extra Length          0009 (9)\n-6F1CBB Comment Length        0000 (0)\n-6F1CBD Disk Start            0000 (0)\n-6F1CBF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1CC1 Ext File Attributes   00000000 (0)\n-6F1CC5 Local Header Offset   004F2415 (5186581)\n-6F1CC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6EF977 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF979   Length              0005 (5)\n+6EF97B   Flags               01 (1) 'Modification'\n+6EF97C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF980 CENTRAL HEADER #407   02014B50 (33639248)\n+6EF984 Created Zip Spec      14 (20) '2.0'\n+6EF985 Created OS            00 (0) 'MS-DOS'\n+6EF986 Extract Zip Spec      14 (20) '2.0'\n+6EF987 Extract OS            00 (0) 'MS-DOS'\n+6EF988 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF98A Compression Method    0000 (0) 'Stored'\n+6EF98C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EF990 CRC                   12627859 (308443225)\n+6EF994 Compressed Size       00000705 (1797)\n+6EF998 Uncompressed Size     00000705 (1797)\n+6EF99C Filename Length       0039 (57)\n+6EF99E Extra Length          0009 (9)\n+6EF9A0 Comment Length        0000 (0)\n+6EF9A2 Disk Start            0000 (0)\n+6EF9A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EF9A6 Ext File Attributes   00000000 (0)\n+6EF9AA Local Header Offset   00124B17 (1198871)\n+6EF9AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EF9AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EF9E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EF9E9   Length              0005 (5)\n+6EF9EB   Flags               01 (1) 'Modification'\n+6EF9EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EF9F0 CENTRAL HEADER #408   02014B50 (33639248)\n+6EF9F4 Created Zip Spec      14 (20) '2.0'\n+6EF9F5 Created OS            00 (0) 'MS-DOS'\n+6EF9F6 Extract Zip Spec      14 (20) '2.0'\n+6EF9F7 Extract OS            00 (0) 'MS-DOS'\n+6EF9F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EF9FA Compression Method    0000 (0) 'Stored'\n+6EF9FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFA00 CRC                   EE87A59D (4001867165)\n+6EFA04 Compressed Size       000005C7 (1479)\n+6EFA08 Uncompressed Size     000005C7 (1479)\n+6EFA0C Filename Length       003D (61)\n+6EFA0E Extra Length          0009 (9)\n+6EFA10 Comment Length        0000 (0)\n+6EFA12 Disk Start            0000 (0)\n+6EFA14 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFA16 Ext File Attributes   00000000 (0)\n+6EFA1A Local Header Offset   0012528C (1200780)\n+6EFA1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFA1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFA5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFA5D   Length              0005 (5)\n+6EFA5F   Flags               01 (1) 'Modification'\n+6EFA60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFA64 CENTRAL HEADER #409   02014B50 (33639248)\n+6EFA68 Created Zip Spec      14 (20) '2.0'\n+6EFA69 Created OS            00 (0) 'MS-DOS'\n+6EFA6A Extract Zip Spec      14 (20) '2.0'\n+6EFA6B Extract OS            00 (0) 'MS-DOS'\n+6EFA6C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFA6E Compression Method    0000 (0) 'Stored'\n+6EFA70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFA74 CRC                   6A312F64 (1781608292)\n+6EFA78 Compressed Size       00000727 (1831)\n+6EFA7C Uncompressed Size     00000727 (1831)\n+6EFA80 Filename Length       003D (61)\n+6EFA82 Extra Length          0009 (9)\n+6EFA84 Comment Length        0000 (0)\n+6EFA86 Disk Start            0000 (0)\n+6EFA88 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFA8A Ext File Attributes   00000000 (0)\n+6EFA8E Local Header Offset   001258C7 (1202375)\n+6EFA92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFA92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFACF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFAD1   Length              0005 (5)\n+6EFAD3   Flags               01 (1) 'Modification'\n+6EFAD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFAD8 CENTRAL HEADER #410   02014B50 (33639248)\n+6EFADC Created Zip Spec      14 (20) '2.0'\n+6EFADD Created OS            00 (0) 'MS-DOS'\n+6EFADE Extract Zip Spec      14 (20) '2.0'\n+6EFADF Extract OS            00 (0) 'MS-DOS'\n+6EFAE0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFAE2 Compression Method    0000 (0) 'Stored'\n+6EFAE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFAE8 CRC                   CA63D3D1 (3395539921)\n+6EFAEC Compressed Size       00000A30 (2608)\n+6EFAF0 Uncompressed Size     00000A30 (2608)\n+6EFAF4 Filename Length       0040 (64)\n+6EFAF6 Extra Length          0009 (9)\n+6EFAF8 Comment Length        0000 (0)\n+6EFAFA Disk Start            0000 (0)\n+6EFAFC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFAFE Ext File Attributes   00000000 (0)\n+6EFB02 Local Header Offset   00126062 (1204322)\n+6EFB06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFB06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFB46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFB48   Length              0005 (5)\n+6EFB4A   Flags               01 (1) 'Modification'\n+6EFB4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFB4F CENTRAL HEADER #411   02014B50 (33639248)\n+6EFB53 Created Zip Spec      14 (20) '2.0'\n+6EFB54 Created OS            00 (0) 'MS-DOS'\n+6EFB55 Extract Zip Spec      14 (20) '2.0'\n+6EFB56 Extract OS            00 (0) 'MS-DOS'\n+6EFB57 General Purpose Flag  0000 (0)\n+6EFB59 Compression Method    0000 (0) 'Stored'\n+6EFB5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFB5F CRC                   00000000 (0)\n+6EFB63 Compressed Size       00000000 (0)\n+6EFB67 Uncompressed Size     00000000 (0)\n+6EFB6B Filename Length       0028 (40)\n+6EFB6D Extra Length          0009 (9)\n+6EFB6F Comment Length        0000 (0)\n+6EFB71 Disk Start            0000 (0)\n+6EFB73 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFB75 Ext File Attributes   00000000 (0)\n+6EFB79 Local Header Offset   00126B09 (1207049)\n+6EFB7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFB7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFBA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFBA7   Length              0005 (5)\n+6EFBA9   Flags               01 (1) 'Modification'\n+6EFBAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFBAE CENTRAL HEADER #412   02014B50 (33639248)\n+6EFBB2 Created Zip Spec      14 (20) '2.0'\n+6EFBB3 Created OS            00 (0) 'MS-DOS'\n+6EFBB4 Extract Zip Spec      14 (20) '2.0'\n+6EFBB5 Extract OS            00 (0) 'MS-DOS'\n+6EFBB6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFBB8 Compression Method    0000 (0) 'Stored'\n+6EFBBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFBBE CRC                   350B3EEE (889929454)\n+6EFBC2 Compressed Size       00002E9D (11933)\n+6EFBC6 Uncompressed Size     00002E9D (11933)\n+6EFBCA Filename Length       003B (59)\n+6EFBCC Extra Length          0009 (9)\n+6EFBCE Comment Length        0000 (0)\n+6EFBD0 Disk Start            0000 (0)\n+6EFBD2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFBD4 Ext File Attributes   00000000 (0)\n+6EFBD8 Local Header Offset   00126B58 (1207128)\n+6EFBDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFBDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFC17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFC19   Length              0005 (5)\n+6EFC1B   Flags               01 (1) 'Modification'\n+6EFC1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFC20 CENTRAL HEADER #413   02014B50 (33639248)\n+6EFC24 Created Zip Spec      14 (20) '2.0'\n+6EFC25 Created OS            00 (0) 'MS-DOS'\n+6EFC26 Extract Zip Spec      14 (20) '2.0'\n+6EFC27 Extract OS            00 (0) 'MS-DOS'\n+6EFC28 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFC2A Compression Method    0000 (0) 'Stored'\n+6EFC2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFC30 CRC                   FE2BC051 (4264280145)\n+6EFC34 Compressed Size       00002F6C (12140)\n+6EFC38 Uncompressed Size     00002F6C (12140)\n+6EFC3C Filename Length       003A (58)\n+6EFC3E Extra Length          0009 (9)\n+6EFC40 Comment Length        0000 (0)\n+6EFC42 Disk Start            0000 (0)\n+6EFC44 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFC46 Ext File Attributes   00000000 (0)\n+6EFC4A Local Header Offset   00129A67 (1219175)\n+6EFC4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFC4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFC88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFC8A   Length              0005 (5)\n+6EFC8C   Flags               01 (1) 'Modification'\n+6EFC8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFC91 CENTRAL HEADER #414   02014B50 (33639248)\n+6EFC95 Created Zip Spec      14 (20) '2.0'\n+6EFC96 Created OS            00 (0) 'MS-DOS'\n+6EFC97 Extract Zip Spec      14 (20) '2.0'\n+6EFC98 Extract OS            00 (0) 'MS-DOS'\n+6EFC99 General Purpose Flag  0000 (0)\n+6EFC9B Compression Method    0000 (0) 'Stored'\n+6EFC9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFCA1 CRC                   00000000 (0)\n+6EFCA5 Compressed Size       00000000 (0)\n+6EFCA9 Uncompressed Size     00000000 (0)\n+6EFCAD Filename Length       0024 (36)\n+6EFCAF Extra Length          0009 (9)\n+6EFCB1 Comment Length        0000 (0)\n+6EFCB3 Disk Start            0000 (0)\n+6EFCB5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFCB7 Ext File Attributes   00000000 (0)\n+6EFCBB Local Header Offset   0012CA44 (1231428)\n+6EFCBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFCBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFCE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFCE5   Length              0005 (5)\n+6EFCE7   Flags               01 (1) 'Modification'\n+6EFCE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFCEC CENTRAL HEADER #415   02014B50 (33639248)\n+6EFCF0 Created Zip Spec      14 (20) '2.0'\n+6EFCF1 Created OS            00 (0) 'MS-DOS'\n+6EFCF2 Extract Zip Spec      14 (20) '2.0'\n+6EFCF3 Extract OS            00 (0) 'MS-DOS'\n+6EFCF4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFCF6 Compression Method    0000 (0) 'Stored'\n+6EFCF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFCFC CRC                   57AE068E (1471022734)\n+6EFD00 Compressed Size       00001AD7 (6871)\n+6EFD04 Uncompressed Size     00001AD7 (6871)\n+6EFD08 Filename Length       0037 (55)\n+6EFD0A Extra Length          0009 (9)\n+6EFD0C Comment Length        0000 (0)\n+6EFD0E Disk Start            0000 (0)\n+6EFD10 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFD12 Ext File Attributes   00000000 (0)\n+6EFD16 Local Header Offset   0012CA8F (1231503)\n+6EFD1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFD1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFD51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFD53   Length              0005 (5)\n+6EFD55   Flags               01 (1) 'Modification'\n+6EFD56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFD5A CENTRAL HEADER #416   02014B50 (33639248)\n+6EFD5E Created Zip Spec      14 (20) '2.0'\n+6EFD5F Created OS            00 (0) 'MS-DOS'\n+6EFD60 Extract Zip Spec      14 (20) '2.0'\n+6EFD61 Extract OS            00 (0) 'MS-DOS'\n+6EFD62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFD64 Compression Method    0000 (0) 'Stored'\n+6EFD66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFD6A CRC                   1538A07E (356032638)\n+6EFD6E Compressed Size       00001ABD (6845)\n+6EFD72 Uncompressed Size     00001ABD (6845)\n+6EFD76 Filename Length       002F (47)\n+6EFD78 Extra Length          0009 (9)\n+6EFD7A Comment Length        0000 (0)\n+6EFD7C Disk Start            0000 (0)\n+6EFD7E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFD80 Ext File Attributes   00000000 (0)\n+6EFD84 Local Header Offset   0012E5D4 (1238484)\n+6EFD88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFD88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFDB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFDB9   Length              0005 (5)\n+6EFDBB   Flags               01 (1) 'Modification'\n+6EFDBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFDC0 CENTRAL HEADER #417   02014B50 (33639248)\n+6EFDC4 Created Zip Spec      14 (20) '2.0'\n+6EFDC5 Created OS            00 (0) 'MS-DOS'\n+6EFDC6 Extract Zip Spec      14 (20) '2.0'\n+6EFDC7 Extract OS            00 (0) 'MS-DOS'\n+6EFDC8 General Purpose Flag  0000 (0)\n+6EFDCA Compression Method    0000 (0) 'Stored'\n+6EFDCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFDD0 CRC                   00000000 (0)\n+6EFDD4 Compressed Size       00000000 (0)\n+6EFDD8 Uncompressed Size     00000000 (0)\n+6EFDDC Filename Length       0012 (18)\n+6EFDDE Extra Length          0009 (9)\n+6EFDE0 Comment Length        0000 (0)\n+6EFDE2 Disk Start            0000 (0)\n+6EFDE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFDE6 Ext File Attributes   00000000 (0)\n+6EFDEA Local Header Offset   001300F7 (1245431)\n+6EFDEE Filename              'XXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFDEE: Filename 'XXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFE00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFE02   Length              0005 (5)\n+6EFE04   Flags               01 (1) 'Modification'\n+6EFE05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFE09 CENTRAL HEADER #418   02014B50 (33639248)\n+6EFE0D Created Zip Spec      14 (20) '2.0'\n+6EFE0E Created OS            00 (0) 'MS-DOS'\n+6EFE0F Extract Zip Spec      14 (20) '2.0'\n+6EFE10 Extract OS            00 (0) 'MS-DOS'\n+6EFE11 General Purpose Flag  0000 (0)\n+6EFE13 Compression Method    0000 (0) 'Stored'\n+6EFE15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFE19 CRC                   00000000 (0)\n+6EFE1D Compressed Size       00000000 (0)\n+6EFE21 Uncompressed Size     00000000 (0)\n+6EFE25 Filename Length       0018 (24)\n+6EFE27 Extra Length          0009 (9)\n+6EFE29 Comment Length        0000 (0)\n+6EFE2B Disk Start            0000 (0)\n+6EFE2D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFE2F Ext File Attributes   00000000 (0)\n+6EFE33 Local Header Offset   00130130 (1245488)\n+6EFE37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFE37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFE4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFE51   Length              0005 (5)\n+6EFE53   Flags               01 (1) 'Modification'\n+6EFE54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFE58 CENTRAL HEADER #419   02014B50 (33639248)\n+6EFE5C Created Zip Spec      14 (20) '2.0'\n+6EFE5D Created OS            00 (0) 'MS-DOS'\n+6EFE5E Extract Zip Spec      14 (20) '2.0'\n+6EFE5F Extract OS            00 (0) 'MS-DOS'\n+6EFE60 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFE62 Compression Method    0000 (0) 'Stored'\n+6EFE64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFE68 CRC                   A0D1D7AD (2698106797)\n+6EFE6C Compressed Size       000003A7 (935)\n+6EFE70 Uncompressed Size     000003A7 (935)\n+6EFE74 Filename Length       0022 (34)\n+6EFE76 Extra Length          0009 (9)\n+6EFE78 Comment Length        0000 (0)\n+6EFE7A Disk Start            0000 (0)\n+6EFE7C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFE7E Ext File Attributes   00000000 (0)\n+6EFE82 Local Header Offset   0013016F (1245551)\n+6EFE86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFE86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFEA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFEAA   Length              0005 (5)\n+6EFEAC   Flags               01 (1) 'Modification'\n+6EFEAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFEB1 CENTRAL HEADER #420   02014B50 (33639248)\n+6EFEB5 Created Zip Spec      14 (20) '2.0'\n+6EFEB6 Created OS            00 (0) 'MS-DOS'\n+6EFEB7 Extract Zip Spec      14 (20) '2.0'\n+6EFEB8 Extract OS            00 (0) 'MS-DOS'\n+6EFEB9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFEBB Compression Method    0000 (0) 'Stored'\n+6EFEBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFEC1 CRC                   36E8AAE8 (921217768)\n+6EFEC5 Compressed Size       0000043E (1086)\n+6EFEC9 Uncompressed Size     0000043E (1086)\n+6EFECD Filename Length       0029 (41)\n+6EFECF Extra Length          0009 (9)\n+6EFED1 Comment Length        0000 (0)\n+6EFED3 Disk Start            0000 (0)\n+6EFED5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFED7 Ext File Attributes   00000000 (0)\n+6EFEDB Local Header Offset   0013056F (1246575)\n+6EFEDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFEDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFF08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFF0A   Length              0005 (5)\n+6EFF0C   Flags               01 (1) 'Modification'\n+6EFF0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFF11 CENTRAL HEADER #421   02014B50 (33639248)\n+6EFF15 Created Zip Spec      14 (20) '2.0'\n+6EFF16 Created OS            00 (0) 'MS-DOS'\n+6EFF17 Extract Zip Spec      14 (20) '2.0'\n+6EFF18 Extract OS            00 (0) 'MS-DOS'\n+6EFF19 General Purpose Flag  0000 (0)\n+6EFF1B Compression Method    0000 (0) 'Stored'\n+6EFF1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFF21 CRC                   00000000 (0)\n+6EFF25 Compressed Size       00000000 (0)\n+6EFF29 Uncompressed Size     00000000 (0)\n+6EFF2D Filename Length       0020 (32)\n+6EFF2F Extra Length          0009 (9)\n+6EFF31 Comment Length        0000 (0)\n+6EFF33 Disk Start            0000 (0)\n+6EFF35 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFF37 Ext File Attributes   00000000 (0)\n+6EFF3B Local Header Offset   00130A0D (1247757)\n+6EFF3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFF3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFF5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFF61   Length              0005 (5)\n+6EFF63   Flags               01 (1) 'Modification'\n+6EFF64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFF68 CENTRAL HEADER #422   02014B50 (33639248)\n+6EFF6C Created Zip Spec      14 (20) '2.0'\n+6EFF6D Created OS            00 (0) 'MS-DOS'\n+6EFF6E Extract Zip Spec      14 (20) '2.0'\n+6EFF6F Extract OS            00 (0) 'MS-DOS'\n+6EFF70 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6EFF72 Compression Method    0000 (0) 'Stored'\n+6EFF74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFF78 CRC                   0C0A434B (201999179)\n+6EFF7C Compressed Size       0000081B (2075)\n+6EFF80 Uncompressed Size     0000081B (2075)\n+6EFF84 Filename Length       0039 (57)\n+6EFF86 Extra Length          0009 (9)\n+6EFF88 Comment Length        0000 (0)\n+6EFF8A Disk Start            0000 (0)\n+6EFF8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFF8E Ext File Attributes   00000000 (0)\n+6EFF92 Local Header Offset   00130A54 (1247828)\n+6EFF96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6EFF96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6EFFCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6EFFD1   Length              0005 (5)\n+6EFFD3   Flags               01 (1) 'Modification'\n+6EFFD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6EFFD8 CENTRAL HEADER #423   02014B50 (33639248)\n+6EFFDC Created Zip Spec      14 (20) '2.0'\n+6EFFDD Created OS            00 (0) 'MS-DOS'\n+6EFFDE Extract Zip Spec      14 (20) '2.0'\n+6EFFDF Extract OS            00 (0) 'MS-DOS'\n+6EFFE0 General Purpose Flag  0000 (0)\n+6EFFE2 Compression Method    0000 (0) 'Stored'\n+6EFFE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6EFFE8 CRC                   00000000 (0)\n+6EFFEC Compressed Size       00000000 (0)\n+6EFFF0 Uncompressed Size     00000000 (0)\n+6EFFF4 Filename Length       0019 (25)\n+6EFFF6 Extra Length          0009 (9)\n+6EFFF8 Comment Length        0000 (0)\n+6EFFFA Disk Start            0000 (0)\n+6EFFFC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6EFFFE Ext File Attributes   00000000 (0)\n+6F0002 Local Header Offset   001312DF (1250015)\n+6F0006 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0006: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F001F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0021   Length              0005 (5)\n+6F0023   Flags               01 (1) 'Modification'\n+6F0024   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0028 CENTRAL HEADER #424   02014B50 (33639248)\n+6F002C Created Zip Spec      14 (20) '2.0'\n+6F002D Created OS            00 (0) 'MS-DOS'\n+6F002E Extract Zip Spec      14 (20) '2.0'\n+6F002F Extract OS            00 (0) 'MS-DOS'\n+6F0030 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0032 Compression Method    0000 (0) 'Stored'\n+6F0034 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0038 CRC                   7421F96B (1948383595)\n+6F003C Compressed Size       00000763 (1891)\n+6F0040 Uncompressed Size     00000763 (1891)\n+6F0044 Filename Length       0027 (39)\n+6F0046 Extra Length          0009 (9)\n+6F0048 Comment Length        0000 (0)\n+6F004A Disk Start            0000 (0)\n+6F004C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F004E Ext File Attributes   00000000 (0)\n+6F0052 Local Header Offset   0013131F (1250079)\n+6F0056 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0056: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F007D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F007F   Length              0005 (5)\n+6F0081   Flags               01 (1) 'Modification'\n+6F0082   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0086 CENTRAL HEADER #425   02014B50 (33639248)\n+6F008A Created Zip Spec      14 (20) '2.0'\n+6F008B Created OS            00 (0) 'MS-DOS'\n+6F008C Extract Zip Spec      14 (20) '2.0'\n+6F008D Extract OS            00 (0) 'MS-DOS'\n+6F008E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0090 Compression Method    0000 (0) 'Stored'\n+6F0092 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0096 CRC                   D19F2618 (3516868120)\n+6F009A Compressed Size       00004BE5 (19429)\n+6F009E Uncompressed Size     00004BE5 (19429)\n+6F00A2 Filename Length       0021 (33)\n+6F00A4 Extra Length          0009 (9)\n+6F00A6 Comment Length        0000 (0)\n+6F00A8 Disk Start            0000 (0)\n+6F00AA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F00AC Ext File Attributes   00000000 (0)\n+6F00B0 Local Header Offset   00131AE0 (1252064)\n+6F00B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F00B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F00D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F00D7   Length              0005 (5)\n+6F00D9   Flags               01 (1) 'Modification'\n+6F00DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F00DE CENTRAL HEADER #426   02014B50 (33639248)\n+6F00E2 Created Zip Spec      14 (20) '2.0'\n+6F00E3 Created OS            00 (0) 'MS-DOS'\n+6F00E4 Extract Zip Spec      14 (20) '2.0'\n+6F00E5 Extract OS            00 (0) 'MS-DOS'\n+6F00E6 General Purpose Flag  0000 (0)\n+6F00E8 Compression Method    0000 (0) 'Stored'\n+6F00EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F00EE CRC                   00000000 (0)\n+6F00F2 Compressed Size       00000000 (0)\n+6F00F6 Uncompressed Size     00000000 (0)\n+6F00FA Filename Length       0022 (34)\n+6F00FC Extra Length          0009 (9)\n+6F00FE Comment Length        0000 (0)\n+6F0100 Disk Start            0000 (0)\n+6F0102 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0104 Ext File Attributes   00000000 (0)\n+6F0108 Local Header Offset   0013671D (1271581)\n+6F010C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F010C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F012E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0130   Length              0005 (5)\n+6F0132   Flags               01 (1) 'Modification'\n+6F0133   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0137 CENTRAL HEADER #427   02014B50 (33639248)\n+6F013B Created Zip Spec      14 (20) '2.0'\n+6F013C Created OS            00 (0) 'MS-DOS'\n+6F013D Extract Zip Spec      14 (20) '2.0'\n+6F013E Extract OS            00 (0) 'MS-DOS'\n+6F013F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0141 Compression Method    0000 (0) 'Stored'\n+6F0143 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0147 CRC                   AB4B3845 (2873833541)\n+6F014B Compressed Size       000003C1 (961)\n+6F014F Uncompressed Size     000003C1 (961)\n+6F0153 Filename Length       002F (47)\n+6F0155 Extra Length          0009 (9)\n+6F0157 Comment Length        0000 (0)\n+6F0159 Disk Start            0000 (0)\n+6F015B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F015D Ext File Attributes   00000000 (0)\n+6F0161 Local Header Offset   00136766 (1271654)\n+6F0165 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0165: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0196   Length              0005 (5)\n+6F0198   Flags               01 (1) 'Modification'\n+6F0199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F019D CENTRAL HEADER #428   02014B50 (33639248)\n+6F01A1 Created Zip Spec      14 (20) '2.0'\n+6F01A2 Created OS            00 (0) 'MS-DOS'\n+6F01A3 Extract Zip Spec      14 (20) '2.0'\n+6F01A4 Extract OS            00 (0) 'MS-DOS'\n+6F01A5 General Purpose Flag  0000 (0)\n+6F01A7 Compression Method    0000 (0) 'Stored'\n+6F01A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F01AD CRC                   00000000 (0)\n+6F01B1 Compressed Size       00000000 (0)\n+6F01B5 Uncompressed Size     00000000 (0)\n+6F01B9 Filename Length       0023 (35)\n+6F01BB Extra Length          0009 (9)\n+6F01BD Comment Length        0000 (0)\n+6F01BF Disk Start            0000 (0)\n+6F01C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F01C3 Ext File Attributes   00000000 (0)\n+6F01C7 Local Header Offset   00136B8D (1272717)\n+6F01CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F01CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F01EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F01F0   Length              0005 (5)\n+6F01F2   Flags               01 (1) 'Modification'\n+6F01F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F01F7 CENTRAL HEADER #429   02014B50 (33639248)\n+6F01FB Created Zip Spec      14 (20) '2.0'\n+6F01FC Created OS            00 (0) 'MS-DOS'\n+6F01FD Extract Zip Spec      14 (20) '2.0'\n+6F01FE Extract OS            00 (0) 'MS-DOS'\n+6F01FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0201 Compression Method    0000 (0) 'Stored'\n+6F0203 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0207 CRC                   87D33073 (2278764659)\n+6F020B Compressed Size       000005CF (1487)\n+6F020F Uncompressed Size     000005CF (1487)\n+6F0213 Filename Length       0030 (48)\n+6F0215 Extra Length          0009 (9)\n+6F0217 Comment Length        0000 (0)\n+6F0219 Disk Start            0000 (0)\n+6F021B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F021D Ext File Attributes   00000000 (0)\n+6F0221 Local Header Offset   00136BD7 (1272791)\n+6F0225 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0225: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0255 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0257   Length              0005 (5)\n+6F0259   Flags               01 (1) 'Modification'\n+6F025A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F025E CENTRAL HEADER #430   02014B50 (33639248)\n+6F0262 Created Zip Spec      14 (20) '2.0'\n+6F0263 Created OS            00 (0) 'MS-DOS'\n+6F0264 Extract Zip Spec      14 (20) '2.0'\n+6F0265 Extract OS            00 (0) 'MS-DOS'\n+6F0266 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0268 Compression Method    0000 (0) 'Stored'\n+6F026A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F026E CRC                   F8808D33 (4169174323)\n+6F0272 Compressed Size       0000040A (1034)\n+6F0276 Uncompressed Size     0000040A (1034)\n+6F027A Filename Length       0038 (56)\n+6F027C Extra Length          0009 (9)\n+6F027E Comment Length        0000 (0)\n+6F0280 Disk Start            0000 (0)\n+6F0282 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0284 Ext File Attributes   00000000 (0)\n+6F0288 Local Header Offset   0013720D (1274381)\n+6F028C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F028C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F02C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F02C6   Length              0005 (5)\n+6F02C8   Flags               01 (1) 'Modification'\n+6F02C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F02CD CENTRAL HEADER #431   02014B50 (33639248)\n+6F02D1 Created Zip Spec      14 (20) '2.0'\n+6F02D2 Created OS            00 (0) 'MS-DOS'\n+6F02D3 Extract Zip Spec      14 (20) '2.0'\n+6F02D4 Extract OS            00 (0) 'MS-DOS'\n+6F02D5 General Purpose Flag  0000 (0)\n+6F02D7 Compression Method    0000 (0) 'Stored'\n+6F02D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F02DD CRC                   00000000 (0)\n+6F02E1 Compressed Size       00000000 (0)\n+6F02E5 Uncompressed Size     00000000 (0)\n+6F02E9 Filename Length       0020 (32)\n+6F02EB Extra Length          0009 (9)\n+6F02ED Comment Length        0000 (0)\n+6F02EF Disk Start            0000 (0)\n+6F02F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F02F3 Ext File Attributes   00000000 (0)\n+6F02F7 Local Header Offset   00137686 (1275526)\n+6F02FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F02FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F031B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F031D   Length              0005 (5)\n+6F031F   Flags               01 (1) 'Modification'\n+6F0320   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0324 CENTRAL HEADER #432   02014B50 (33639248)\n+6F0328 Created Zip Spec      14 (20) '2.0'\n+6F0329 Created OS            00 (0) 'MS-DOS'\n+6F032A Extract Zip Spec      14 (20) '2.0'\n+6F032B Extract OS            00 (0) 'MS-DOS'\n+6F032C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F032E Compression Method    0000 (0) 'Stored'\n+6F0330 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0334 CRC                   75D97425 (1977185317)\n+6F0338 Compressed Size       000003C7 (967)\n+6F033C Uncompressed Size     000003C7 (967)\n+6F0340 Filename Length       0032 (50)\n+6F0342 Extra Length          0009 (9)\n+6F0344 Comment Length        0000 (0)\n+6F0346 Disk Start            0000 (0)\n+6F0348 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F034A Ext File Attributes   00000000 (0)\n+6F034E Local Header Offset   001376CD (1275597)\n+6F0352 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0352: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0384 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0386   Length              0005 (5)\n+6F0388   Flags               01 (1) 'Modification'\n+6F0389   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F038D CENTRAL HEADER #433   02014B50 (33639248)\n+6F0391 Created Zip Spec      14 (20) '2.0'\n+6F0392 Created OS            00 (0) 'MS-DOS'\n+6F0393 Extract Zip Spec      14 (20) '2.0'\n+6F0394 Extract OS            00 (0) 'MS-DOS'\n+6F0395 General Purpose Flag  0000 (0)\n+6F0397 Compression Method    0000 (0) 'Stored'\n+6F0399 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F039D CRC                   00000000 (0)\n+6F03A1 Compressed Size       00000000 (0)\n+6F03A5 Uncompressed Size     00000000 (0)\n+6F03A9 Filename Length       0023 (35)\n+6F03AB Extra Length          0009 (9)\n+6F03AD Comment Length        0000 (0)\n+6F03AF Disk Start            0000 (0)\n+6F03B1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F03B3 Ext File Attributes   00000000 (0)\n+6F03B7 Local Header Offset   00137AFD (1276669)\n+6F03BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F03BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F03DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F03E0   Length              0005 (5)\n+6F03E2   Flags               01 (1) 'Modification'\n+6F03E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F03E7 CENTRAL HEADER #434   02014B50 (33639248)\n+6F03EB Created Zip Spec      14 (20) '2.0'\n+6F03EC Created OS            00 (0) 'MS-DOS'\n+6F03ED Extract Zip Spec      14 (20) '2.0'\n+6F03EE Extract OS            00 (0) 'MS-DOS'\n+6F03EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F03F1 Compression Method    0000 (0) 'Stored'\n+6F03F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F03F7 CRC                   1B82D5A6 (461559206)\n+6F03FB Compressed Size       000003C9 (969)\n+6F03FF Uncompressed Size     000003C9 (969)\n+6F0403 Filename Length       0033 (51)\n+6F0405 Extra Length          0009 (9)\n+6F0407 Comment Length        0000 (0)\n+6F0409 Disk Start            0000 (0)\n+6F040B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F040D Ext File Attributes   00000000 (0)\n+6F0411 Local Header Offset   00137B47 (1276743)\n+6F0415 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0415: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0448 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F044A   Length              0005 (5)\n+6F044C   Flags               01 (1) 'Modification'\n+6F044D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0451 CENTRAL HEADER #435   02014B50 (33639248)\n+6F0455 Created Zip Spec      14 (20) '2.0'\n+6F0456 Created OS            00 (0) 'MS-DOS'\n+6F0457 Extract Zip Spec      14 (20) '2.0'\n+6F0458 Extract OS            00 (0) 'MS-DOS'\n+6F0459 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F045B Compression Method    0000 (0) 'Stored'\n+6F045D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0461 CRC                   E66C1AF8 (3865844472)\n+6F0465 Compressed Size       000003CB (971)\n+6F0469 Uncompressed Size     000003CB (971)\n+6F046D Filename Length       0034 (52)\n+6F046F Extra Length          0009 (9)\n+6F0471 Comment Length        0000 (0)\n+6F0473 Disk Start            0000 (0)\n+6F0475 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0477 Ext File Attributes   00000000 (0)\n+6F047B Local Header Offset   00137F7A (1277818)\n+6F047F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F047F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F04B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F04B5   Length              0005 (5)\n+6F04B7   Flags               01 (1) 'Modification'\n+6F04B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F04BC CENTRAL HEADER #436   02014B50 (33639248)\n+6F04C0 Created Zip Spec      14 (20) '2.0'\n+6F04C1 Created OS            00 (0) 'MS-DOS'\n+6F04C2 Extract Zip Spec      14 (20) '2.0'\n+6F04C3 Extract OS            00 (0) 'MS-DOS'\n+6F04C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F04C6 Compression Method    0000 (0) 'Stored'\n+6F04C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F04CC CRC                   A93FA4B2 (2839520434)\n+6F04D0 Compressed Size       000006AC (1708)\n+6F04D4 Uncompressed Size     000006AC (1708)\n+6F04D8 Filename Length       0035 (53)\n+6F04DA Extra Length          0009 (9)\n+6F04DC Comment Length        0000 (0)\n+6F04DE Disk Start            0000 (0)\n+6F04E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F04E2 Ext File Attributes   00000000 (0)\n+6F04E6 Local Header Offset   001383B0 (1278896)\n+6F04EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F04EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F051F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0521   Length              0005 (5)\n+6F0523   Flags               01 (1) 'Modification'\n+6F0524   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0528 CENTRAL HEADER #437   02014B50 (33639248)\n+6F052C Created Zip Spec      14 (20) '2.0'\n+6F052D Created OS            00 (0) 'MS-DOS'\n+6F052E Extract Zip Spec      14 (20) '2.0'\n+6F052F Extract OS            00 (0) 'MS-DOS'\n+6F0530 General Purpose Flag  0000 (0)\n+6F0532 Compression Method    0000 (0) 'Stored'\n+6F0534 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0538 CRC                   00000000 (0)\n+6F053C Compressed Size       00000000 (0)\n+6F0540 Uncompressed Size     00000000 (0)\n+6F0544 Filename Length       0020 (32)\n+6F0546 Extra Length          0009 (9)\n+6F0548 Comment Length        0000 (0)\n+6F054A Disk Start            0000 (0)\n+6F054C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F054E Ext File Attributes   00000000 (0)\n+6F0552 Local Header Offset   00138AC8 (1280712)\n+6F0556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0576 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0578   Length              0005 (5)\n+6F057A   Flags               01 (1) 'Modification'\n+6F057B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F057F CENTRAL HEADER #438   02014B50 (33639248)\n+6F0583 Created Zip Spec      14 (20) '2.0'\n+6F0584 Created OS            00 (0) 'MS-DOS'\n+6F0585 Extract Zip Spec      14 (20) '2.0'\n+6F0586 Extract OS            00 (0) 'MS-DOS'\n+6F0587 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0589 Compression Method    0000 (0) 'Stored'\n+6F058B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F058F CRC                   BEC11652 (3200325202)\n+6F0593 Compressed Size       000004CE (1230)\n+6F0597 Uncompressed Size     000004CE (1230)\n+6F059B Filename Length       002B (43)\n+6F059D Extra Length          0009 (9)\n+6F059F Comment Length        0000 (0)\n+6F05A1 Disk Start            0000 (0)\n+6F05A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F05A5 Ext File Attributes   00000000 (0)\n+6F05A9 Local Header Offset   00138B0F (1280783)\n+6F05AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F05AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F05D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F05DA   Length              0005 (5)\n+6F05DC   Flags               01 (1) 'Modification'\n+6F05DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F05E1 CENTRAL HEADER #439   02014B50 (33639248)\n+6F05E5 Created Zip Spec      14 (20) '2.0'\n+6F05E6 Created OS            00 (0) 'MS-DOS'\n+6F05E7 Extract Zip Spec      14 (20) '2.0'\n+6F05E8 Extract OS            00 (0) 'MS-DOS'\n+6F05E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F05EB Compression Method    0000 (0) 'Stored'\n+6F05ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F05F1 CRC                   E8509F41 (3897597761)\n+6F05F5 Compressed Size       000003ED (1005)\n+6F05F9 Uncompressed Size     000003ED (1005)\n+6F05FD Filename Length       0032 (50)\n+6F05FF Extra Length          0009 (9)\n+6F0601 Comment Length        0000 (0)\n+6F0603 Disk Start            0000 (0)\n+6F0605 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0607 Ext File Attributes   00000000 (0)\n+6F060B Local Header Offset   0013903F (1282111)\n+6F060F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F060F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0641 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0643   Length              0005 (5)\n+6F0645   Flags               01 (1) 'Modification'\n+6F0646   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F064A CENTRAL HEADER #440   02014B50 (33639248)\n+6F064E Created Zip Spec      14 (20) '2.0'\n+6F064F Created OS            00 (0) 'MS-DOS'\n+6F0650 Extract Zip Spec      14 (20) '2.0'\n+6F0651 Extract OS            00 (0) 'MS-DOS'\n+6F0652 General Purpose Flag  0000 (0)\n+6F0654 Compression Method    0000 (0) 'Stored'\n+6F0656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F065A CRC                   00000000 (0)\n+6F065E Compressed Size       00000000 (0)\n+6F0662 Uncompressed Size     00000000 (0)\n+6F0666 Filename Length       001F (31)\n+6F0668 Extra Length          0009 (9)\n+6F066A Comment Length        0000 (0)\n+6F066C Disk Start            0000 (0)\n+6F066E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0670 Ext File Attributes   00000000 (0)\n+6F0674 Local Header Offset   00139495 (1283221)\n+6F0678 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0678: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0697 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0699   Length              0005 (5)\n+6F069B   Flags               01 (1) 'Modification'\n+6F069C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F06A0 CENTRAL HEADER #441   02014B50 (33639248)\n+6F06A4 Created Zip Spec      14 (20) '2.0'\n+6F06A5 Created OS            00 (0) 'MS-DOS'\n+6F06A6 Extract Zip Spec      14 (20) '2.0'\n+6F06A7 Extract OS            00 (0) 'MS-DOS'\n+6F06A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F06AA Compression Method    0000 (0) 'Stored'\n+6F06AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F06B0 CRC                   DEFC6FC7 (3741085639)\n+6F06B4 Compressed Size       000003BD (957)\n+6F06B8 Uncompressed Size     000003BD (957)\n+6F06BC Filename Length       002D (45)\n+6F06BE Extra Length          0009 (9)\n+6F06C0 Comment Length        0000 (0)\n+6F06C2 Disk Start            0000 (0)\n+6F06C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F06C6 Ext File Attributes   00000000 (0)\n+6F06CA Local Header Offset   001394DB (1283291)\n+6F06CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F06CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F06FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F06FD   Length              0005 (5)\n+6F06FF   Flags               01 (1) 'Modification'\n+6F0700   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0704 CENTRAL HEADER #442   02014B50 (33639248)\n+6F0708 Created Zip Spec      14 (20) '2.0'\n+6F0709 Created OS            00 (0) 'MS-DOS'\n+6F070A Extract Zip Spec      14 (20) '2.0'\n+6F070B Extract OS            00 (0) 'MS-DOS'\n+6F070C General Purpose Flag  0000 (0)\n+6F070E Compression Method    0000 (0) 'Stored'\n+6F0710 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0714 CRC                   00000000 (0)\n+6F0718 Compressed Size       00000000 (0)\n+6F071C Uncompressed Size     00000000 (0)\n+6F0720 Filename Length       0024 (36)\n+6F0722 Extra Length          0009 (9)\n+6F0724 Comment Length        0000 (0)\n+6F0726 Disk Start            0000 (0)\n+6F0728 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F072A Ext File Attributes   00000000 (0)\n+6F072E Local Header Offset   001398FC (1284348)\n+6F0732 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0732: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0756 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0758   Length              0005 (5)\n+6F075A   Flags               01 (1) 'Modification'\n+6F075B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F075F CENTRAL HEADER #443   02014B50 (33639248)\n+6F0763 Created Zip Spec      14 (20) '2.0'\n+6F0764 Created OS            00 (0) 'MS-DOS'\n+6F0765 Extract Zip Spec      14 (20) '2.0'\n+6F0766 Extract OS            00 (0) 'MS-DOS'\n+6F0767 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0769 Compression Method    0000 (0) 'Stored'\n+6F076B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F076F CRC                   34B28AB6 (884116150)\n+6F0773 Compressed Size       000004E1 (1249)\n+6F0777 Uncompressed Size     000004E1 (1249)\n+6F077B Filename Length       0033 (51)\n+6F077D Extra Length          0009 (9)\n+6F077F Comment Length        0000 (0)\n+6F0781 Disk Start            0000 (0)\n+6F0783 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0785 Ext File Attributes   00000000 (0)\n+6F0789 Local Header Offset   00139947 (1284423)\n+6F078D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F078D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F07C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F07C2   Length              0005 (5)\n+6F07C4   Flags               01 (1) 'Modification'\n+6F07C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F07C9 CENTRAL HEADER #444   02014B50 (33639248)\n+6F07CD Created Zip Spec      14 (20) '2.0'\n+6F07CE Created OS            00 (0) 'MS-DOS'\n+6F07CF Extract Zip Spec      14 (20) '2.0'\n+6F07D0 Extract OS            00 (0) 'MS-DOS'\n+6F07D1 General Purpose Flag  0000 (0)\n+6F07D3 Compression Method    0000 (0) 'Stored'\n+6F07D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F07D9 CRC                   00000000 (0)\n+6F07DD Compressed Size       00000000 (0)\n+6F07E1 Uncompressed Size     00000000 (0)\n+6F07E5 Filename Length       001F (31)\n+6F07E7 Extra Length          0009 (9)\n+6F07E9 Comment Length        0000 (0)\n+6F07EB Disk Start            0000 (0)\n+6F07ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F07EF Ext File Attributes   00000000 (0)\n+6F07F3 Local Header Offset   00139E92 (1285778)\n+6F07F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F07F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0816 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0818   Length              0005 (5)\n+6F081A   Flags               01 (1) 'Modification'\n+6F081B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F081F CENTRAL HEADER #445   02014B50 (33639248)\n+6F0823 Created Zip Spec      14 (20) '2.0'\n+6F0824 Created OS            00 (0) 'MS-DOS'\n+6F0825 Extract Zip Spec      14 (20) '2.0'\n+6F0826 Extract OS            00 (0) 'MS-DOS'\n+6F0827 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0829 Compression Method    0000 (0) 'Stored'\n+6F082B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F082F CRC                   0CEB317A (216740218)\n+6F0833 Compressed Size       00001263 (4707)\n+6F0837 Uncompressed Size     00001263 (4707)\n+6F083B Filename Length       002C (44)\n+6F083D Extra Length          0009 (9)\n+6F083F Comment Length        0000 (0)\n+6F0841 Disk Start            0000 (0)\n+6F0843 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0845 Ext File Attributes   00000000 (0)\n+6F0849 Local Header Offset   00139ED8 (1285848)\n+6F084D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F084D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0879 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F087B   Length              0005 (5)\n+6F087D   Flags               01 (1) 'Modification'\n+6F087E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0882 CENTRAL HEADER #446   02014B50 (33639248)\n+6F0886 Created Zip Spec      14 (20) '2.0'\n+6F0887 Created OS            00 (0) 'MS-DOS'\n+6F0888 Extract Zip Spec      14 (20) '2.0'\n+6F0889 Extract OS            00 (0) 'MS-DOS'\n+6F088A General Purpose Flag  0000 (0)\n+6F088C Compression Method    0000 (0) 'Stored'\n+6F088E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0892 CRC                   00000000 (0)\n+6F0896 Compressed Size       00000000 (0)\n+6F089A Uncompressed Size     00000000 (0)\n+6F089E Filename Length       0019 (25)\n+6F08A0 Extra Length          0009 (9)\n+6F08A2 Comment Length        0000 (0)\n+6F08A4 Disk Start            0000 (0)\n+6F08A6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F08A8 Ext File Attributes   00000000 (0)\n+6F08AC Local Header Offset   0013B19E (1290654)\n+6F08B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F08B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F08C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F08CB   Length              0005 (5)\n+6F08CD   Flags               01 (1) 'Modification'\n+6F08CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F08D2 CENTRAL HEADER #447   02014B50 (33639248)\n+6F08D6 Created Zip Spec      14 (20) '2.0'\n+6F08D7 Created OS            00 (0) 'MS-DOS'\n+6F08D8 Extract Zip Spec      14 (20) '2.0'\n+6F08D9 Extract OS            00 (0) 'MS-DOS'\n+6F08DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F08DC Compression Method    0000 (0) 'Stored'\n+6F08DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F08E2 CRC                   785E6462 (2019452002)\n+6F08E6 Compressed Size       00000446 (1094)\n+6F08EA Uncompressed Size     00000446 (1094)\n+6F08EE Filename Length       002F (47)\n+6F08F0 Extra Length          0009 (9)\n+6F08F2 Comment Length        0000 (0)\n+6F08F4 Disk Start            0000 (0)\n+6F08F6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F08F8 Ext File Attributes   00000000 (0)\n+6F08FC Local Header Offset   0013B1DE (1290718)\n+6F0900 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0900: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F092F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0931   Length              0005 (5)\n+6F0933   Flags               01 (1) 'Modification'\n+6F0934   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0938 CENTRAL HEADER #448   02014B50 (33639248)\n+6F093C Created Zip Spec      14 (20) '2.0'\n+6F093D Created OS            00 (0) 'MS-DOS'\n+6F093E Extract Zip Spec      14 (20) '2.0'\n+6F093F Extract OS            00 (0) 'MS-DOS'\n+6F0940 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0942 Compression Method    0000 (0) 'Stored'\n+6F0944 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0948 CRC                   12EE7A54 (317618772)\n+6F094C Compressed Size       000003B7 (951)\n+6F0950 Uncompressed Size     000003B7 (951)\n+6F0954 Filename Length       002C (44)\n+6F0956 Extra Length          0009 (9)\n+6F0958 Comment Length        0000 (0)\n+6F095A Disk Start            0000 (0)\n+6F095C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F095E Ext File Attributes   00000000 (0)\n+6F0962 Local Header Offset   0013B68A (1291914)\n+6F0966 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0966: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0994   Length              0005 (5)\n+6F0996   Flags               01 (1) 'Modification'\n+6F0997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F099B CENTRAL HEADER #449   02014B50 (33639248)\n+6F099F Created Zip Spec      14 (20) '2.0'\n+6F09A0 Created OS            00 (0) 'MS-DOS'\n+6F09A1 Extract Zip Spec      14 (20) '2.0'\n+6F09A2 Extract OS            00 (0) 'MS-DOS'\n+6F09A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F09A5 Compression Method    0000 (0) 'Stored'\n+6F09A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F09AB CRC                   AE09219E (2919834014)\n+6F09AF Compressed Size       000003B7 (951)\n+6F09B3 Uncompressed Size     000003B7 (951)\n+6F09B7 Filename Length       002C (44)\n+6F09B9 Extra Length          0009 (9)\n+6F09BB Comment Length        0000 (0)\n+6F09BD Disk Start            0000 (0)\n+6F09BF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F09C1 Ext File Attributes   00000000 (0)\n+6F09C5 Local Header Offset   0013BAA4 (1292964)\n+6F09C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F09C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F09F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F09F7   Length              0005 (5)\n+6F09F9   Flags               01 (1) 'Modification'\n+6F09FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F09FE CENTRAL HEADER #450   02014B50 (33639248)\n+6F0A02 Created Zip Spec      14 (20) '2.0'\n+6F0A03 Created OS            00 (0) 'MS-DOS'\n+6F0A04 Extract Zip Spec      14 (20) '2.0'\n+6F0A05 Extract OS            00 (0) 'MS-DOS'\n+6F0A06 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0A08 Compression Method    0000 (0) 'Stored'\n+6F0A0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0A0E CRC                   C0617C64 (3227614308)\n+6F0A12 Compressed Size       000003B5 (949)\n+6F0A16 Uncompressed Size     000003B5 (949)\n+6F0A1A Filename Length       002A (42)\n+6F0A1C Extra Length          0009 (9)\n+6F0A1E Comment Length        0000 (0)\n+6F0A20 Disk Start            0000 (0)\n+6F0A22 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0A24 Ext File Attributes   00000000 (0)\n+6F0A28 Local Header Offset   0013BEBE (1294014)\n+6F0A2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0A2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0A56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0A58   Length              0005 (5)\n+6F0A5A   Flags               01 (1) 'Modification'\n+6F0A5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0A5F CENTRAL HEADER #451   02014B50 (33639248)\n+6F0A63 Created Zip Spec      14 (20) '2.0'\n+6F0A64 Created OS            00 (0) 'MS-DOS'\n+6F0A65 Extract Zip Spec      14 (20) '2.0'\n+6F0A66 Extract OS            00 (0) 'MS-DOS'\n+6F0A67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0A69 Compression Method    0000 (0) 'Stored'\n+6F0A6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0A6F CRC                   50E43A38 (1357134392)\n+6F0A73 Compressed Size       00000420 (1056)\n+6F0A77 Uncompressed Size     00000420 (1056)\n+6F0A7B Filename Length       002A (42)\n+6F0A7D Extra Length          0009 (9)\n+6F0A7F Comment Length        0000 (0)\n+6F0A81 Disk Start            0000 (0)\n+6F0A83 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0A85 Ext File Attributes   00000000 (0)\n+6F0A89 Local Header Offset   0013C2D4 (1295060)\n+6F0A8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0A8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0AB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0AB9   Length              0005 (5)\n+6F0ABB   Flags               01 (1) 'Modification'\n+6F0ABC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0AC0 CENTRAL HEADER #452   02014B50 (33639248)\n+6F0AC4 Created Zip Spec      14 (20) '2.0'\n+6F0AC5 Created OS            00 (0) 'MS-DOS'\n+6F0AC6 Extract Zip Spec      14 (20) '2.0'\n+6F0AC7 Extract OS            00 (0) 'MS-DOS'\n+6F0AC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0ACA Compression Method    0000 (0) 'Stored'\n+6F0ACC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0AD0 CRC                   7B632F2C (2070097708)\n+6F0AD4 Compressed Size       00000428 (1064)\n+6F0AD8 Uncompressed Size     00000428 (1064)\n+6F0ADC Filename Length       002B (43)\n+6F0ADE Extra Length          0009 (9)\n+6F0AE0 Comment Length        0000 (0)\n+6F0AE2 Disk Start            0000 (0)\n+6F0AE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0AE6 Ext File Attributes   00000000 (0)\n+6F0AEA Local Header Offset   0013C755 (1296213)\n+6F0AEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0AEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0B19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0B1B   Length              0005 (5)\n+6F0B1D   Flags               01 (1) 'Modification'\n+6F0B1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0B22 CENTRAL HEADER #453   02014B50 (33639248)\n+6F0B26 Created Zip Spec      14 (20) '2.0'\n+6F0B27 Created OS            00 (0) 'MS-DOS'\n+6F0B28 Extract Zip Spec      14 (20) '2.0'\n+6F0B29 Extract OS            00 (0) 'MS-DOS'\n+6F0B2A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0B2C Compression Method    0000 (0) 'Stored'\n+6F0B2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0B32 CRC                   885A72D3 (2287629011)\n+6F0B36 Compressed Size       00000481 (1153)\n+6F0B3A Uncompressed Size     00000481 (1153)\n+6F0B3E Filename Length       002C (44)\n+6F0B40 Extra Length          0009 (9)\n+6F0B42 Comment Length        0000 (0)\n+6F0B44 Disk Start            0000 (0)\n+6F0B46 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0B48 Ext File Attributes   00000000 (0)\n+6F0B4C Local Header Offset   0013CBDF (1297375)\n+6F0B50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0B50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0B7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0B7E   Length              0005 (5)\n+6F0B80   Flags               01 (1) 'Modification'\n+6F0B81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0B85 CENTRAL HEADER #454   02014B50 (33639248)\n+6F0B89 Created Zip Spec      14 (20) '2.0'\n+6F0B8A Created OS            00 (0) 'MS-DOS'\n+6F0B8B Extract Zip Spec      14 (20) '2.0'\n+6F0B8C Extract OS            00 (0) 'MS-DOS'\n+6F0B8D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0B8F Compression Method    0000 (0) 'Stored'\n+6F0B91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0B95 CRC                   419EAEDE (1100918494)\n+6F0B99 Compressed Size       000003B7 (951)\n+6F0B9D Uncompressed Size     000003B7 (951)\n+6F0BA1 Filename Length       002C (44)\n+6F0BA3 Extra Length          0009 (9)\n+6F0BA5 Comment Length        0000 (0)\n+6F0BA7 Disk Start            0000 (0)\n+6F0BA9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0BAB Ext File Attributes   00000000 (0)\n+6F0BAF Local Header Offset   0013D0C3 (1298627)\n+6F0BB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0BB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0BDF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0BE1   Length              0005 (5)\n+6F0BE3   Flags               01 (1) 'Modification'\n+6F0BE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0BE8 CENTRAL HEADER #455   02014B50 (33639248)\n+6F0BEC Created Zip Spec      14 (20) '2.0'\n+6F0BED Created OS            00 (0) 'MS-DOS'\n+6F0BEE Extract Zip Spec      14 (20) '2.0'\n+6F0BEF Extract OS            00 (0) 'MS-DOS'\n+6F0BF0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0BF2 Compression Method    0000 (0) 'Stored'\n+6F0BF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0BF8 CRC                   730F08F3 (1930365171)\n+6F0BFC Compressed Size       0000047B (1147)\n+6F0C00 Uncompressed Size     0000047B (1147)\n+6F0C04 Filename Length       002D (45)\n+6F0C06 Extra Length          0009 (9)\n+6F0C08 Comment Length        0000 (0)\n+6F0C0A Disk Start            0000 (0)\n+6F0C0C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0C0E Ext File Attributes   00000000 (0)\n+6F0C12 Local Header Offset   0013D4DD (1299677)\n+6F0C16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0C16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0C43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0C45   Length              0005 (5)\n+6F0C47   Flags               01 (1) 'Modification'\n+6F0C48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0C4C CENTRAL HEADER #456   02014B50 (33639248)\n+6F0C50 Created Zip Spec      14 (20) '2.0'\n+6F0C51 Created OS            00 (0) 'MS-DOS'\n+6F0C52 Extract Zip Spec      14 (20) '2.0'\n+6F0C53 Extract OS            00 (0) 'MS-DOS'\n+6F0C54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0C56 Compression Method    0000 (0) 'Stored'\n+6F0C58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0C5C CRC                   61ADD6F9 (1638782713)\n+6F0C60 Compressed Size       00000498 (1176)\n+6F0C64 Uncompressed Size     00000498 (1176)\n+6F0C68 Filename Length       002C (44)\n+6F0C6A Extra Length          0009 (9)\n+6F0C6C Comment Length        0000 (0)\n+6F0C6E Disk Start            0000 (0)\n+6F0C70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0C72 Ext File Attributes   00000000 (0)\n+6F0C76 Local Header Offset   0013D9BC (1300924)\n+6F0C7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0C7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0CA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0CA8   Length              0005 (5)\n+6F0CAA   Flags               01 (1) 'Modification'\n+6F0CAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0CAF CENTRAL HEADER #457   02014B50 (33639248)\n+6F0CB3 Created Zip Spec      14 (20) '2.0'\n+6F0CB4 Created OS            00 (0) 'MS-DOS'\n+6F0CB5 Extract Zip Spec      14 (20) '2.0'\n+6F0CB6 Extract OS            00 (0) 'MS-DOS'\n+6F0CB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0CB9 Compression Method    0000 (0) 'Stored'\n+6F0CBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0CBF CRC                   E87449AF (3899935151)\n+6F0CC3 Compressed Size       00000467 (1127)\n+6F0CC7 Uncompressed Size     00000467 (1127)\n+6F0CCB Filename Length       002B (43)\n+6F0CCD Extra Length          0009 (9)\n+6F0CCF Comment Length        0000 (0)\n+6F0CD1 Disk Start            0000 (0)\n+6F0CD3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0CD5 Ext File Attributes   00000000 (0)\n+6F0CD9 Local Header Offset   0013DEB7 (1302199)\n+6F0CDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0CDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0D08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0D0A   Length              0005 (5)\n+6F0D0C   Flags               01 (1) 'Modification'\n+6F0D0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0D11 CENTRAL HEADER #458   02014B50 (33639248)\n+6F0D15 Created Zip Spec      14 (20) '2.0'\n+6F0D16 Created OS            00 (0) 'MS-DOS'\n+6F0D17 Extract Zip Spec      14 (20) '2.0'\n+6F0D18 Extract OS            00 (0) 'MS-DOS'\n+6F0D19 General Purpose Flag  0000 (0)\n+6F0D1B Compression Method    0000 (0) 'Stored'\n+6F0D1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0D21 CRC                   00000000 (0)\n+6F0D25 Compressed Size       00000000 (0)\n+6F0D29 Uncompressed Size     00000000 (0)\n+6F0D2D Filename Length       0024 (36)\n+6F0D2F Extra Length          0009 (9)\n+6F0D31 Comment Length        0000 (0)\n+6F0D33 Disk Start            0000 (0)\n+6F0D35 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0D37 Ext File Attributes   00000000 (0)\n+6F0D3B Local Header Offset   0013E380 (1303424)\n+6F0D3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0D3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0D63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0D65   Length              0005 (5)\n+6F0D67   Flags               01 (1) 'Modification'\n+6F0D68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0D6C CENTRAL HEADER #459   02014B50 (33639248)\n+6F0D70 Created Zip Spec      14 (20) '2.0'\n+6F0D71 Created OS            00 (0) 'MS-DOS'\n+6F0D72 Extract Zip Spec      14 (20) '2.0'\n+6F0D73 Extract OS            00 (0) 'MS-DOS'\n+6F0D74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0D76 Compression Method    0000 (0) 'Stored'\n+6F0D78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0D7C CRC                   79620788 (2036467592)\n+6F0D80 Compressed Size       00000AB0 (2736)\n+6F0D84 Uncompressed Size     00000AB0 (2736)\n+6F0D88 Filename Length       0032 (50)\n+6F0D8A Extra Length          0009 (9)\n+6F0D8C Comment Length        0000 (0)\n+6F0D8E Disk Start            0000 (0)\n+6F0D90 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0D92 Ext File Attributes   00000000 (0)\n+6F0D96 Local Header Offset   0013E3CB (1303499)\n+6F0D9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0D9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0DCC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0DCE   Length              0005 (5)\n+6F0DD0   Flags               01 (1) 'Modification'\n+6F0DD1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0DD5 CENTRAL HEADER #460   02014B50 (33639248)\n+6F0DD9 Created Zip Spec      14 (20) '2.0'\n+6F0DDA Created OS            00 (0) 'MS-DOS'\n+6F0DDB Extract Zip Spec      14 (20) '2.0'\n+6F0DDC Extract OS            00 (0) 'MS-DOS'\n+6F0DDD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0DDF Compression Method    0000 (0) 'Stored'\n+6F0DE1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0DE5 CRC                   C8043322 (3355718434)\n+6F0DE9 Compressed Size       00000B0F (2831)\n+6F0DED Uncompressed Size     00000B0F (2831)\n+6F0DF1 Filename Length       0030 (48)\n+6F0DF3 Extra Length          0009 (9)\n+6F0DF5 Comment Length        0000 (0)\n+6F0DF7 Disk Start            0000 (0)\n+6F0DF9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0DFB Ext File Attributes   00000000 (0)\n+6F0DFF Local Header Offset   0013EEE4 (1306340)\n+6F0E03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0E03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0E35   Length              0005 (5)\n+6F0E37   Flags               01 (1) 'Modification'\n+6F0E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0E3C CENTRAL HEADER #461   02014B50 (33639248)\n+6F0E40 Created Zip Spec      14 (20) '2.0'\n+6F0E41 Created OS            00 (0) 'MS-DOS'\n+6F0E42 Extract Zip Spec      14 (20) '2.0'\n+6F0E43 Extract OS            00 (0) 'MS-DOS'\n+6F0E44 General Purpose Flag  0000 (0)\n+6F0E46 Compression Method    0000 (0) 'Stored'\n+6F0E48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0E4C CRC                   00000000 (0)\n+6F0E50 Compressed Size       00000000 (0)\n+6F0E54 Uncompressed Size     00000000 (0)\n+6F0E58 Filename Length       0020 (32)\n+6F0E5A Extra Length          0009 (9)\n+6F0E5C Comment Length        0000 (0)\n+6F0E5E Disk Start            0000 (0)\n+6F0E60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0E62 Ext File Attributes   00000000 (0)\n+6F0E66 Local Header Offset   0013FA5A (1309274)\n+6F0E6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0E6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0E8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0E8C   Length              0005 (5)\n+6F0E8E   Flags               01 (1) 'Modification'\n+6F0E8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0E93 CENTRAL HEADER #462   02014B50 (33639248)\n+6F0E97 Created Zip Spec      14 (20) '2.0'\n+6F0E98 Created OS            00 (0) 'MS-DOS'\n+6F0E99 Extract Zip Spec      14 (20) '2.0'\n+6F0E9A Extract OS            00 (0) 'MS-DOS'\n+6F0E9B General Purpose Flag  0000 (0)\n+6F0E9D Compression Method    0000 (0) 'Stored'\n+6F0E9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0EA3 CRC                   00000000 (0)\n+6F0EA7 Compressed Size       00000000 (0)\n+6F0EAB Uncompressed Size     00000000 (0)\n+6F0EAF Filename Length       0028 (40)\n+6F0EB1 Extra Length          0009 (9)\n+6F0EB3 Comment Length        0000 (0)\n+6F0EB5 Disk Start            0000 (0)\n+6F0EB7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0EB9 Ext File Attributes   00000000 (0)\n+6F0EBD Local Header Offset   0013FAA1 (1309345)\n+6F0EC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0EC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0EE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0EEB   Length              0005 (5)\n+6F0EED   Flags               01 (1) 'Modification'\n+6F0EEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0EF2 CENTRAL HEADER #463   02014B50 (33639248)\n+6F0EF6 Created Zip Spec      14 (20) '2.0'\n+6F0EF7 Created OS            00 (0) 'MS-DOS'\n+6F0EF8 Extract Zip Spec      14 (20) '2.0'\n+6F0EF9 Extract OS            00 (0) 'MS-DOS'\n+6F0EFA General Purpose Flag  0000 (0)\n+6F0EFC Compression Method    0000 (0) 'Stored'\n+6F0EFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0F02 CRC                   00000000 (0)\n+6F0F06 Compressed Size       00000000 (0)\n+6F0F0A Uncompressed Size     00000000 (0)\n+6F0F0E Filename Length       0033 (51)\n+6F0F10 Extra Length          0009 (9)\n+6F0F12 Comment Length        0000 (0)\n+6F0F14 Disk Start            0000 (0)\n+6F0F16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0F18 Ext File Attributes   00000000 (0)\n+6F0F1C Local Header Offset   0013FAF0 (1309424)\n+6F0F20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0F20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0F53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0F55   Length              0005 (5)\n+6F0F57   Flags               01 (1) 'Modification'\n+6F0F58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0F5C CENTRAL HEADER #464   02014B50 (33639248)\n+6F0F60 Created Zip Spec      14 (20) '2.0'\n+6F0F61 Created OS            00 (0) 'MS-DOS'\n+6F0F62 Extract Zip Spec      14 (20) '2.0'\n+6F0F63 Extract OS            00 (0) 'MS-DOS'\n+6F0F64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F0F66 Compression Method    0000 (0) 'Stored'\n+6F0F68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0F6C CRC                   8EE85A26 (2397592102)\n+6F0F70 Compressed Size       00000AFD (2813)\n+6F0F74 Uncompressed Size     00000AFD (2813)\n+6F0F78 Filename Length       0043 (67)\n+6F0F7A Extra Length          0009 (9)\n+6F0F7C Comment Length        0000 (0)\n+6F0F7E Disk Start            0000 (0)\n+6F0F80 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0F82 Ext File Attributes   00000000 (0)\n+6F0F86 Local Header Offset   0013FB4A (1309514)\n+6F0F8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F0F8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F0FCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F0FCF   Length              0005 (5)\n+6F0FD1   Flags               01 (1) 'Modification'\n+6F0FD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F0FD6 CENTRAL HEADER #465   02014B50 (33639248)\n+6F0FDA Created Zip Spec      14 (20) '2.0'\n+6F0FDB Created OS            00 (0) 'MS-DOS'\n+6F0FDC Extract Zip Spec      14 (20) '2.0'\n+6F0FDD Extract OS            00 (0) 'MS-DOS'\n+6F0FDE General Purpose Flag  0000 (0)\n+6F0FE0 Compression Method    0000 (0) 'Stored'\n+6F0FE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F0FE6 CRC                   00000000 (0)\n+6F0FEA Compressed Size       00000000 (0)\n+6F0FEE Uncompressed Size     00000000 (0)\n+6F0FF2 Filename Length       001C (28)\n+6F0FF4 Extra Length          0009 (9)\n+6F0FF6 Comment Length        0000 (0)\n+6F0FF8 Disk Start            0000 (0)\n+6F0FFA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F0FFC Ext File Attributes   00000000 (0)\n+6F1000 Local Header Offset   001406C1 (1312449)\n+6F1004 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1004: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1020 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1022   Length              0005 (5)\n+6F1024   Flags               01 (1) 'Modification'\n+6F1025   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1029 CENTRAL HEADER #466   02014B50 (33639248)\n+6F102D Created Zip Spec      14 (20) '2.0'\n+6F102E Created OS            00 (0) 'MS-DOS'\n+6F102F Extract Zip Spec      14 (20) '2.0'\n+6F1030 Extract OS            00 (0) 'MS-DOS'\n+6F1031 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1033 Compression Method    0000 (0) 'Stored'\n+6F1035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1039 CRC                   DC9E9A97 (3701381783)\n+6F103D Compressed Size       000003B7 (951)\n+6F1041 Uncompressed Size     000003B7 (951)\n+6F1045 Filename Length       002A (42)\n+6F1047 Extra Length          0009 (9)\n+6F1049 Comment Length        0000 (0)\n+6F104B Disk Start            0000 (0)\n+6F104D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F104F Ext File Attributes   00000000 (0)\n+6F1053 Local Header Offset   00140704 (1312516)\n+6F1057 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1057: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1081 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1083   Length              0005 (5)\n+6F1085   Flags               01 (1) 'Modification'\n+6F1086   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F108A CENTRAL HEADER #467   02014B50 (33639248)\n+6F108E Created Zip Spec      14 (20) '2.0'\n+6F108F Created OS            00 (0) 'MS-DOS'\n+6F1090 Extract Zip Spec      14 (20) '2.0'\n+6F1091 Extract OS            00 (0) 'MS-DOS'\n+6F1092 General Purpose Flag  0000 (0)\n+6F1094 Compression Method    0000 (0) 'Stored'\n+6F1096 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F109A CRC                   00000000 (0)\n+6F109E Compressed Size       00000000 (0)\n+6F10A2 Uncompressed Size     00000000 (0)\n+6F10A6 Filename Length       001A (26)\n+6F10A8 Extra Length          0009 (9)\n+6F10AA Comment Length        0000 (0)\n+6F10AC Disk Start            0000 (0)\n+6F10AE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F10B0 Ext File Attributes   00000000 (0)\n+6F10B4 Local Header Offset   00140B1C (1313564)\n+6F10B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F10B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F10D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F10D4   Length              0005 (5)\n+6F10D6   Flags               01 (1) 'Modification'\n+6F10D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F10DB CENTRAL HEADER #468   02014B50 (33639248)\n+6F10DF Created Zip Spec      14 (20) '2.0'\n+6F10E0 Created OS            00 (0) 'MS-DOS'\n+6F10E1 Extract Zip Spec      14 (20) '2.0'\n+6F10E2 Extract OS            00 (0) 'MS-DOS'\n+6F10E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F10E5 Compression Method    0000 (0) 'Stored'\n+6F10E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F10EB CRC                   D9881C34 (3649575988)\n+6F10EF Compressed Size       0000063F (1599)\n+6F10F3 Uncompressed Size     0000063F (1599)\n+6F10F7 Filename Length       0026 (38)\n+6F10F9 Extra Length          0009 (9)\n+6F10FB Comment Length        0000 (0)\n+6F10FD Disk Start            0000 (0)\n+6F10FF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1101 Ext File Attributes   00000000 (0)\n+6F1105 Local Header Offset   00140B5D (1313629)\n+6F1109 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1109: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F112F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1131   Length              0005 (5)\n+6F1133   Flags               01 (1) 'Modification'\n+6F1134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1138 CENTRAL HEADER #469   02014B50 (33639248)\n+6F113C Created Zip Spec      14 (20) '2.0'\n+6F113D Created OS            00 (0) 'MS-DOS'\n+6F113E Extract Zip Spec      14 (20) '2.0'\n+6F113F Extract OS            00 (0) 'MS-DOS'\n+6F1140 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1142 Compression Method    0000 (0) 'Stored'\n+6F1144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1148 CRC                   29B723AE (699868078)\n+6F114C Compressed Size       000004D6 (1238)\n+6F1150 Uncompressed Size     000004D6 (1238)\n+6F1154 Filename Length       002D (45)\n+6F1156 Extra Length          0009 (9)\n+6F1158 Comment Length        0000 (0)\n+6F115A Disk Start            0000 (0)\n+6F115C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F115E Ext File Attributes   00000000 (0)\n+6F1162 Local Header Offset   001411F9 (1315321)\n+6F1166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1193 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1195   Length              0005 (5)\n+6F1197   Flags               01 (1) 'Modification'\n+6F1198   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F119C CENTRAL HEADER #470   02014B50 (33639248)\n+6F11A0 Created Zip Spec      14 (20) '2.0'\n+6F11A1 Created OS            00 (0) 'MS-DOS'\n+6F11A2 Extract Zip Spec      14 (20) '2.0'\n+6F11A3 Extract OS            00 (0) 'MS-DOS'\n+6F11A4 General Purpose Flag  0000 (0)\n+6F11A6 Compression Method    0000 (0) 'Stored'\n+6F11A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F11AC CRC                   00000000 (0)\n+6F11B0 Compressed Size       00000000 (0)\n+6F11B4 Uncompressed Size     00000000 (0)\n+6F11B8 Filename Length       0016 (22)\n+6F11BA Extra Length          0009 (9)\n+6F11BC Comment Length        0000 (0)\n+6F11BE Disk Start            0000 (0)\n+6F11C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F11C2 Ext File Attributes   00000000 (0)\n+6F11C6 Local Header Offset   00141733 (1316659)\n+6F11CA Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F11CA: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F11E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F11E2   Length              0005 (5)\n+6F11E4   Flags               01 (1) 'Modification'\n+6F11E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F11E9 CENTRAL HEADER #471   02014B50 (33639248)\n+6F11ED Created Zip Spec      14 (20) '2.0'\n+6F11EE Created OS            00 (0) 'MS-DOS'\n+6F11EF Extract Zip Spec      14 (20) '2.0'\n+6F11F0 Extract OS            00 (0) 'MS-DOS'\n+6F11F1 General Purpose Flag  0000 (0)\n+6F11F3 Compression Method    0000 (0) 'Stored'\n+6F11F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F11F9 CRC                   00000000 (0)\n+6F11FD Compressed Size       00000000 (0)\n+6F1201 Uncompressed Size     00000000 (0)\n+6F1205 Filename Length       001E (30)\n+6F1207 Extra Length          0009 (9)\n+6F1209 Comment Length        0000 (0)\n+6F120B Disk Start            0000 (0)\n+6F120D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F120F Ext File Attributes   00000000 (0)\n+6F1213 Local Header Offset   00141770 (1316720)\n+6F1217 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1217: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1235 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1237   Length              0005 (5)\n+6F1239   Flags               01 (1) 'Modification'\n+6F123A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F123E CENTRAL HEADER #472   02014B50 (33639248)\n+6F1242 Created Zip Spec      14 (20) '2.0'\n+6F1243 Created OS            00 (0) 'MS-DOS'\n+6F1244 Extract Zip Spec      14 (20) '2.0'\n+6F1245 Extract OS            00 (0) 'MS-DOS'\n+6F1246 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1248 Compression Method    0000 (0) 'Stored'\n+6F124A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F124E CRC                   496AA8AF (1231726767)\n+6F1252 Compressed Size       00000523 (1315)\n+6F1256 Uncompressed Size     00000523 (1315)\n+6F125A Filename Length       002E (46)\n+6F125C Extra Length          0009 (9)\n+6F125E Comment Length        0000 (0)\n+6F1260 Disk Start            0000 (0)\n+6F1262 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1264 Ext File Attributes   00000000 (0)\n+6F1268 Local Header Offset   001417B5 (1316789)\n+6F126C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F126C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F129A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F129C   Length              0005 (5)\n+6F129E   Flags               01 (1) 'Modification'\n+6F129F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F12A3 CENTRAL HEADER #473   02014B50 (33639248)\n+6F12A7 Created Zip Spec      14 (20) '2.0'\n+6F12A8 Created OS            00 (0) 'MS-DOS'\n+6F12A9 Extract Zip Spec      14 (20) '2.0'\n+6F12AA Extract OS            00 (0) 'MS-DOS'\n+6F12AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F12AD Compression Method    0000 (0) 'Stored'\n+6F12AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F12B3 CRC                   52213B11 (1377909521)\n+6F12B7 Compressed Size       000005A6 (1446)\n+6F12BB Uncompressed Size     000005A6 (1446)\n+6F12BF Filename Length       0031 (49)\n+6F12C1 Extra Length          0009 (9)\n+6F12C3 Comment Length        0000 (0)\n+6F12C5 Disk Start            0000 (0)\n+6F12C7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F12C9 Ext File Attributes   00000000 (0)\n+6F12CD Local Header Offset   00141D3D (1318205)\n+6F12D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F12D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1302 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1304   Length              0005 (5)\n+6F1306   Flags               01 (1) 'Modification'\n+6F1307   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F130B CENTRAL HEADER #474   02014B50 (33639248)\n+6F130F Created Zip Spec      14 (20) '2.0'\n+6F1310 Created OS            00 (0) 'MS-DOS'\n+6F1311 Extract Zip Spec      14 (20) '2.0'\n+6F1312 Extract OS            00 (0) 'MS-DOS'\n+6F1313 General Purpose Flag  0000 (0)\n+6F1315 Compression Method    0000 (0) 'Stored'\n+6F1317 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F131B CRC                   00000000 (0)\n+6F131F Compressed Size       00000000 (0)\n+6F1323 Uncompressed Size     00000000 (0)\n+6F1327 Filename Length       001B (27)\n+6F1329 Extra Length          0009 (9)\n+6F132B Comment Length        0000 (0)\n+6F132D Disk Start            0000 (0)\n+6F132F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1331 Ext File Attributes   00000000 (0)\n+6F1335 Local Header Offset   0014234B (1319755)\n+6F1339 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1339: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1354 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1356   Length              0005 (5)\n+6F1358   Flags               01 (1) 'Modification'\n+6F1359   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F135D CENTRAL HEADER #475   02014B50 (33639248)\n+6F1361 Created Zip Spec      14 (20) '2.0'\n+6F1362 Created OS            00 (0) 'MS-DOS'\n+6F1363 Extract Zip Spec      14 (20) '2.0'\n+6F1364 Extract OS            00 (0) 'MS-DOS'\n+6F1365 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1367 Compression Method    0000 (0) 'Stored'\n+6F1369 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F136D CRC                   981F5DED (2552192493)\n+6F1371 Compressed Size       00000841 (2113)\n+6F1375 Uncompressed Size     00000841 (2113)\n+6F1379 Filename Length       002E (46)\n+6F137B Extra Length          0009 (9)\n+6F137D Comment Length        0000 (0)\n+6F137F Disk Start            0000 (0)\n+6F1381 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1383 Ext File Attributes   00000000 (0)\n+6F1387 Local Header Offset   0014238D (1319821)\n+6F138B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F138B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F13B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F13BB   Length              0005 (5)\n+6F13BD   Flags               01 (1) 'Modification'\n+6F13BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F13C2 CENTRAL HEADER #476   02014B50 (33639248)\n+6F13C6 Created Zip Spec      14 (20) '2.0'\n+6F13C7 Created OS            00 (0) 'MS-DOS'\n+6F13C8 Extract Zip Spec      14 (20) '2.0'\n+6F13C9 Extract OS            00 (0) 'MS-DOS'\n+6F13CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F13CC Compression Method    0000 (0) 'Stored'\n+6F13CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F13D2 CRC                   D76B4438 (3614131256)\n+6F13D6 Compressed Size       000009FC (2556)\n+6F13DA Uncompressed Size     000009FC (2556)\n+6F13DE Filename Length       0028 (40)\n+6F13E0 Extra Length          0009 (9)\n+6F13E2 Comment Length        0000 (0)\n+6F13E4 Disk Start            0000 (0)\n+6F13E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F13E8 Ext File Attributes   00000000 (0)\n+6F13EC Local Header Offset   00142C33 (1322035)\n+6F13F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F13F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1418 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F141A   Length              0005 (5)\n+6F141C   Flags               01 (1) 'Modification'\n+6F141D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1421 CENTRAL HEADER #477   02014B50 (33639248)\n+6F1425 Created Zip Spec      14 (20) '2.0'\n+6F1426 Created OS            00 (0) 'MS-DOS'\n+6F1427 Extract Zip Spec      14 (20) '2.0'\n+6F1428 Extract OS            00 (0) 'MS-DOS'\n+6F1429 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F142B Compression Method    0000 (0) 'Stored'\n+6F142D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1431 CRC                   C61A4C11 (3323612177)\n+6F1435 Compressed Size       000004E1 (1249)\n+6F1439 Uncompressed Size     000004E1 (1249)\n+6F143D Filename Length       002F (47)\n+6F143F Extra Length          0009 (9)\n+6F1441 Comment Length        0000 (0)\n+6F1443 Disk Start            0000 (0)\n+6F1445 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1447 Ext File Attributes   00000000 (0)\n+6F144B Local Header Offset   0014368E (1324686)\n+6F144F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F144F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F147E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1480   Length              0005 (5)\n+6F1482   Flags               01 (1) 'Modification'\n+6F1483   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1487 CENTRAL HEADER #478   02014B50 (33639248)\n+6F148B Created Zip Spec      14 (20) '2.0'\n+6F148C Created OS            00 (0) 'MS-DOS'\n+6F148D Extract Zip Spec      14 (20) '2.0'\n+6F148E Extract OS            00 (0) 'MS-DOS'\n+6F148F General Purpose Flag  0000 (0)\n+6F1491 Compression Method    0000 (0) 'Stored'\n+6F1493 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1497 CRC                   00000000 (0)\n+6F149B Compressed Size       00000000 (0)\n+6F149F Uncompressed Size     00000000 (0)\n+6F14A3 Filename Length       0023 (35)\n+6F14A5 Extra Length          0009 (9)\n+6F14A7 Comment Length        0000 (0)\n+6F14A9 Disk Start            0000 (0)\n+6F14AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F14AD Ext File Attributes   00000000 (0)\n+6F14B1 Local Header Offset   00143BD5 (1326037)\n+6F14B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F14B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F14D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F14DA   Length              0005 (5)\n+6F14DC   Flags               01 (1) 'Modification'\n+6F14DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F14E1 CENTRAL HEADER #479   02014B50 (33639248)\n+6F14E5 Created Zip Spec      14 (20) '2.0'\n+6F14E6 Created OS            00 (0) 'MS-DOS'\n+6F14E7 Extract Zip Spec      14 (20) '2.0'\n+6F14E8 Extract OS            00 (0) 'MS-DOS'\n+6F14E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F14EB Compression Method    0000 (0) 'Stored'\n+6F14ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F14F1 CRC                   90AFF823 (2427451427)\n+6F14F5 Compressed Size       000018DF (6367)\n+6F14F9 Uncompressed Size     000018DF (6367)\n+6F14FD Filename Length       0038 (56)\n+6F14FF Extra Length          0009 (9)\n+6F1501 Comment Length        0000 (0)\n+6F1503 Disk Start            0000 (0)\n+6F1505 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1507 Ext File Attributes   00000000 (0)\n+6F150B Local Header Offset   00143C1F (1326111)\n+6F150F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F150F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1547 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1549   Length              0005 (5)\n+6F154B   Flags               01 (1) 'Modification'\n+6F154C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1550 CENTRAL HEADER #480   02014B50 (33639248)\n+6F1554 Created Zip Spec      14 (20) '2.0'\n+6F1555 Created OS            00 (0) 'MS-DOS'\n+6F1556 Extract Zip Spec      14 (20) '2.0'\n+6F1557 Extract OS            00 (0) 'MS-DOS'\n+6F1558 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F155A Compression Method    0000 (0) 'Stored'\n+6F155C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1560 CRC                   85536244 (2236834372)\n+6F1564 Compressed Size       00000553 (1363)\n+6F1568 Uncompressed Size     00000553 (1363)\n+6F156C Filename Length       003F (63)\n+6F156E Extra Length          0009 (9)\n+6F1570 Comment Length        0000 (0)\n+6F1572 Disk Start            0000 (0)\n+6F1574 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1576 Ext File Attributes   00000000 (0)\n+6F157A Local Header Offset   0014556D (1332589)\n+6F157E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F157E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F15BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F15BF   Length              0005 (5)\n+6F15C1   Flags               01 (1) 'Modification'\n+6F15C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F15C6 CENTRAL HEADER #481   02014B50 (33639248)\n+6F15CA Created Zip Spec      14 (20) '2.0'\n+6F15CB Created OS            00 (0) 'MS-DOS'\n+6F15CC Extract Zip Spec      14 (20) '2.0'\n+6F15CD Extract OS            00 (0) 'MS-DOS'\n+6F15CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F15D0 Compression Method    0000 (0) 'Stored'\n+6F15D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F15D6 CRC                   98DC2CD5 (2564566229)\n+6F15DA Compressed Size       00001C48 (7240)\n+6F15DE Uncompressed Size     00001C48 (7240)\n+6F15E2 Filename Length       0038 (56)\n+6F15E4 Extra Length          0009 (9)\n+6F15E6 Comment Length        0000 (0)\n+6F15E8 Disk Start            0000 (0)\n+6F15EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F15EC Ext File Attributes   00000000 (0)\n+6F15F0 Local Header Offset   00145B36 (1334070)\n+6F15F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F15F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F162C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F162E   Length              0005 (5)\n+6F1630   Flags               01 (1) 'Modification'\n+6F1631   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1635 CENTRAL HEADER #482   02014B50 (33639248)\n+6F1639 Created Zip Spec      14 (20) '2.0'\n+6F163A Created OS            00 (0) 'MS-DOS'\n+6F163B Extract Zip Spec      14 (20) '2.0'\n+6F163C Extract OS            00 (0) 'MS-DOS'\n+6F163D General Purpose Flag  0000 (0)\n+6F163F Compression Method    0000 (0) 'Stored'\n+6F1641 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1645 CRC                   00000000 (0)\n+6F1649 Compressed Size       00000000 (0)\n+6F164D Uncompressed Size     00000000 (0)\n+6F1651 Filename Length       001B (27)\n+6F1653 Extra Length          0009 (9)\n+6F1655 Comment Length        0000 (0)\n+6F1657 Disk Start            0000 (0)\n+6F1659 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F165B Ext File Attributes   00000000 (0)\n+6F165F Local Header Offset   001477ED (1341421)\n+6F1663 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1663: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F167E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1680   Length              0005 (5)\n+6F1682   Flags               01 (1) 'Modification'\n+6F1683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1687 CENTRAL HEADER #483   02014B50 (33639248)\n+6F168B Created Zip Spec      14 (20) '2.0'\n+6F168C Created OS            00 (0) 'MS-DOS'\n+6F168D Extract Zip Spec      14 (20) '2.0'\n+6F168E Extract OS            00 (0) 'MS-DOS'\n+6F168F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1691 Compression Method    0000 (0) 'Stored'\n+6F1693 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1697 CRC                   B05300B6 (2958229686)\n+6F169B Compressed Size       00000443 (1091)\n+6F169F Uncompressed Size     00000443 (1091)\n+6F16A3 Filename Length       0027 (39)\n+6F16A5 Extra Length          0009 (9)\n+6F16A7 Comment Length        0000 (0)\n+6F16A9 Disk Start            0000 (0)\n+6F16AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F16AD Ext File Attributes   00000000 (0)\n+6F16B1 Local Header Offset   0014782F (1341487)\n+6F16B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F16B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F16DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F16DE   Length              0005 (5)\n+6F16E0   Flags               01 (1) 'Modification'\n+6F16E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F16E5 CENTRAL HEADER #484   02014B50 (33639248)\n+6F16E9 Created Zip Spec      14 (20) '2.0'\n+6F16EA Created OS            00 (0) 'MS-DOS'\n+6F16EB Extract Zip Spec      14 (20) '2.0'\n+6F16EC Extract OS            00 (0) 'MS-DOS'\n+6F16ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F16EF Compression Method    0000 (0) 'Stored'\n+6F16F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F16F5 CRC                   4B53EA77 (1263790711)\n+6F16F9 Compressed Size       000008BC (2236)\n+6F16FD Uncompressed Size     000008BC (2236)\n+6F1701 Filename Length       002E (46)\n+6F1703 Extra Length          0009 (9)\n+6F1705 Comment Length        0000 (0)\n+6F1707 Disk Start            0000 (0)\n+6F1709 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F170B Ext File Attributes   00000000 (0)\n+6F170F Local Header Offset   00147CD0 (1342672)\n+6F1713 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1713: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1741 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1743   Length              0005 (5)\n+6F1745   Flags               01 (1) 'Modification'\n+6F1746   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F174A CENTRAL HEADER #485   02014B50 (33639248)\n+6F174E Created Zip Spec      14 (20) '2.0'\n+6F174F Created OS            00 (0) 'MS-DOS'\n+6F1750 Extract Zip Spec      14 (20) '2.0'\n+6F1751 Extract OS            00 (0) 'MS-DOS'\n+6F1752 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1754 Compression Method    0000 (0) 'Stored'\n+6F1756 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F175A CRC                   F7117BC1 (4145118145)\n+6F175E Compressed Size       000003AD (941)\n+6F1762 Uncompressed Size     000003AD (941)\n+6F1766 Filename Length       0025 (37)\n+6F1768 Extra Length          0009 (9)\n+6F176A Comment Length        0000 (0)\n+6F176C Disk Start            0000 (0)\n+6F176E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1770 Ext File Attributes   00000000 (0)\n+6F1774 Local Header Offset   001485F1 (1345009)\n+6F1778 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1778: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F179D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F179F   Length              0005 (5)\n+6F17A1   Flags               01 (1) 'Modification'\n+6F17A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F17A6 CENTRAL HEADER #486   02014B50 (33639248)\n+6F17AA Created Zip Spec      14 (20) '2.0'\n+6F17AB Created OS            00 (0) 'MS-DOS'\n+6F17AC Extract Zip Spec      14 (20) '2.0'\n+6F17AD Extract OS            00 (0) 'MS-DOS'\n+6F17AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F17B0 Compression Method    0000 (0) 'Stored'\n+6F17B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F17B6 CRC                   AB71C50D (2876359949)\n+6F17BA Compressed Size       000003AF (943)\n+6F17BE Uncompressed Size     000003AF (943)\n+6F17C2 Filename Length       0026 (38)\n+6F17C4 Extra Length          0009 (9)\n+6F17C6 Comment Length        0000 (0)\n+6F17C8 Disk Start            0000 (0)\n+6F17CA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F17CC Ext File Attributes   00000000 (0)\n+6F17D0 Local Header Offset   001489FA (1346042)\n+6F17D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F17D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F17FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F17FC   Length              0005 (5)\n+6F17FE   Flags               01 (1) 'Modification'\n+6F17FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1803 CENTRAL HEADER #487   02014B50 (33639248)\n+6F1807 Created Zip Spec      14 (20) '2.0'\n+6F1808 Created OS            00 (0) 'MS-DOS'\n+6F1809 Extract Zip Spec      14 (20) '2.0'\n+6F180A Extract OS            00 (0) 'MS-DOS'\n+6F180B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F180D Compression Method    0000 (0) 'Stored'\n+6F180F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1813 CRC                   738B9E3F (1938529855)\n+6F1817 Compressed Size       0000054E (1358)\n+6F181B Uncompressed Size     0000054E (1358)\n+6F181F Filename Length       002A (42)\n+6F1821 Extra Length          0009 (9)\n+6F1823 Comment Length        0000 (0)\n+6F1825 Disk Start            0000 (0)\n+6F1827 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1829 Ext File Attributes   00000000 (0)\n+6F182D Local Header Offset   00148E06 (1347078)\n+6F1831 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1831: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F185B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F185D   Length              0005 (5)\n+6F185F   Flags               01 (1) 'Modification'\n+6F1860   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1864 CENTRAL HEADER #488   02014B50 (33639248)\n+6F1868 Created Zip Spec      14 (20) '2.0'\n+6F1869 Created OS            00 (0) 'MS-DOS'\n+6F186A Extract Zip Spec      14 (20) '2.0'\n+6F186B Extract OS            00 (0) 'MS-DOS'\n+6F186C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F186E Compression Method    0000 (0) 'Stored'\n+6F1870 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1874 CRC                   302E4037 (808337463)\n+6F1878 Compressed Size       000007E9 (2025)\n+6F187C Uncompressed Size     000007E9 (2025)\n+6F1880 Filename Length       0031 (49)\n+6F1882 Extra Length          0009 (9)\n+6F1884 Comment Length        0000 (0)\n+6F1886 Disk Start            0000 (0)\n+6F1888 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F188A Ext File Attributes   00000000 (0)\n+6F188E Local Header Offset   001493B5 (1348533)\n+6F1892 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1892: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F18C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F18C5   Length              0005 (5)\n+6F18C7   Flags               01 (1) 'Modification'\n+6F18C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F18CC CENTRAL HEADER #489   02014B50 (33639248)\n+6F18D0 Created Zip Spec      14 (20) '2.0'\n+6F18D1 Created OS            00 (0) 'MS-DOS'\n+6F18D2 Extract Zip Spec      14 (20) '2.0'\n+6F18D3 Extract OS            00 (0) 'MS-DOS'\n+6F18D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F18D6 Compression Method    0000 (0) 'Stored'\n+6F18D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F18DC CRC                   6793ECA6 (1737747622)\n+6F18E0 Compressed Size       000003CF (975)\n+6F18E4 Uncompressed Size     000003CF (975)\n+6F18E8 Filename Length       0026 (38)\n+6F18EA Extra Length          0009 (9)\n+6F18EC Comment Length        0000 (0)\n+6F18EE Disk Start            0000 (0)\n+6F18F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F18F2 Ext File Attributes   00000000 (0)\n+6F18F6 Local Header Offset   00149C06 (1350662)\n+6F18FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F18FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1920 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1922   Length              0005 (5)\n+6F1924   Flags               01 (1) 'Modification'\n+6F1925   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1929 CENTRAL HEADER #490   02014B50 (33639248)\n+6F192D Created Zip Spec      14 (20) '2.0'\n+6F192E Created OS            00 (0) 'MS-DOS'\n+6F192F Extract Zip Spec      14 (20) '2.0'\n+6F1930 Extract OS            00 (0) 'MS-DOS'\n+6F1931 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1933 Compression Method    0000 (0) 'Stored'\n+6F1935 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1939 CRC                   39731479 (963843193)\n+6F193D Compressed Size       00000CF9 (3321)\n+6F1941 Uncompressed Size     00000CF9 (3321)\n+6F1945 Filename Length       002B (43)\n+6F1947 Extra Length          0009 (9)\n+6F1949 Comment Length        0000 (0)\n+6F194B Disk Start            0000 (0)\n+6F194D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F194F Ext File Attributes   00000000 (0)\n+6F1953 Local Header Offset   0014A032 (1351730)\n+6F1957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1982 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1984   Length              0005 (5)\n+6F1986   Flags               01 (1) 'Modification'\n+6F1987   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F198B CENTRAL HEADER #491   02014B50 (33639248)\n+6F198F Created Zip Spec      14 (20) '2.0'\n+6F1990 Created OS            00 (0) 'MS-DOS'\n+6F1991 Extract Zip Spec      14 (20) '2.0'\n+6F1992 Extract OS            00 (0) 'MS-DOS'\n+6F1993 General Purpose Flag  0000 (0)\n+6F1995 Compression Method    0000 (0) 'Stored'\n+6F1997 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F199B CRC                   00000000 (0)\n+6F199F Compressed Size       00000000 (0)\n+6F19A3 Uncompressed Size     00000000 (0)\n+6F19A7 Filename Length       0024 (36)\n+6F19A9 Extra Length          0009 (9)\n+6F19AB Comment Length        0000 (0)\n+6F19AD Disk Start            0000 (0)\n+6F19AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F19B1 Ext File Attributes   00000000 (0)\n+6F19B5 Local Header Offset   0014AD8D (1355149)\n+6F19B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F19B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F19DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F19DF   Length              0005 (5)\n+6F19E1   Flags               01 (1) 'Modification'\n+6F19E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F19E6 CENTRAL HEADER #492   02014B50 (33639248)\n+6F19EA Created Zip Spec      14 (20) '2.0'\n+6F19EB Created OS            00 (0) 'MS-DOS'\n+6F19EC Extract Zip Spec      14 (20) '2.0'\n+6F19ED Extract OS            00 (0) 'MS-DOS'\n+6F19EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F19F0 Compression Method    0000 (0) 'Stored'\n+6F19F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F19F6 CRC                   4B6F1882 (1265571970)\n+6F19FA Compressed Size       000003C7 (967)\n+6F19FE Uncompressed Size     000003C7 (967)\n+6F1A02 Filename Length       0032 (50)\n+6F1A04 Extra Length          0009 (9)\n+6F1A06 Comment Length        0000 (0)\n+6F1A08 Disk Start            0000 (0)\n+6F1A0A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1A0C Ext File Attributes   00000000 (0)\n+6F1A10 Local Header Offset   0014ADD8 (1355224)\n+6F1A14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1A14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1A46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1A48   Length              0005 (5)\n+6F1A4A   Flags               01 (1) 'Modification'\n+6F1A4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1A4F CENTRAL HEADER #493   02014B50 (33639248)\n+6F1A53 Created Zip Spec      14 (20) '2.0'\n+6F1A54 Created OS            00 (0) 'MS-DOS'\n+6F1A55 Extract Zip Spec      14 (20) '2.0'\n+6F1A56 Extract OS            00 (0) 'MS-DOS'\n+6F1A57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1A59 Compression Method    0000 (0) 'Stored'\n+6F1A5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1A5F CRC                   498B4AB9 (1233865401)\n+6F1A63 Compressed Size       0000048B (1163)\n+6F1A67 Uncompressed Size     0000048B (1163)\n+6F1A6B Filename Length       0039 (57)\n+6F1A6D Extra Length          0009 (9)\n+6F1A6F Comment Length        0000 (0)\n+6F1A71 Disk Start            0000 (0)\n+6F1A73 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1A75 Ext File Attributes   00000000 (0)\n+6F1A79 Local Header Offset   0014B208 (1356296)\n+6F1A7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1A7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1AB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1AB8   Length              0005 (5)\n+6F1ABA   Flags               01 (1) 'Modification'\n+6F1ABB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1ABF CENTRAL HEADER #494   02014B50 (33639248)\n+6F1AC3 Created Zip Spec      14 (20) '2.0'\n+6F1AC4 Created OS            00 (0) 'MS-DOS'\n+6F1AC5 Extract Zip Spec      14 (20) '2.0'\n+6F1AC6 Extract OS            00 (0) 'MS-DOS'\n+6F1AC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1AC9 Compression Method    0000 (0) 'Stored'\n+6F1ACB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1ACF CRC                   DEB81EEE (3736608494)\n+6F1AD3 Compressed Size       00000609 (1545)\n+6F1AD7 Uncompressed Size     00000609 (1545)\n+6F1ADB Filename Length       0037 (55)\n+6F1ADD Extra Length          0009 (9)\n+6F1ADF Comment Length        0000 (0)\n+6F1AE1 Disk Start            0000 (0)\n+6F1AE3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1AE5 Ext File Attributes   00000000 (0)\n+6F1AE9 Local Header Offset   0014B703 (1357571)\n+6F1AED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1AED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1B24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1B26   Length              0005 (5)\n+6F1B28   Flags               01 (1) 'Modification'\n+6F1B29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1B2D CENTRAL HEADER #495   02014B50 (33639248)\n+6F1B31 Created Zip Spec      14 (20) '2.0'\n+6F1B32 Created OS            00 (0) 'MS-DOS'\n+6F1B33 Extract Zip Spec      14 (20) '2.0'\n+6F1B34 Extract OS            00 (0) 'MS-DOS'\n+6F1B35 General Purpose Flag  0000 (0)\n+6F1B37 Compression Method    0000 (0) 'Stored'\n+6F1B39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1B3D CRC                   00000000 (0)\n+6F1B41 Compressed Size       00000000 (0)\n+6F1B45 Uncompressed Size     00000000 (0)\n+6F1B49 Filename Length       0020 (32)\n+6F1B4B Extra Length          0009 (9)\n+6F1B4D Comment Length        0000 (0)\n+6F1B4F Disk Start            0000 (0)\n+6F1B51 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1B53 Ext File Attributes   00000000 (0)\n+6F1B57 Local Header Offset   0014BD7A (1359226)\n+6F1B5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1B5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1B7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1B7D   Length              0005 (5)\n+6F1B7F   Flags               01 (1) 'Modification'\n+6F1B80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1B84 CENTRAL HEADER #496   02014B50 (33639248)\n+6F1B88 Created Zip Spec      14 (20) '2.0'\n+6F1B89 Created OS            00 (0) 'MS-DOS'\n+6F1B8A Extract Zip Spec      14 (20) '2.0'\n+6F1B8B Extract OS            00 (0) 'MS-DOS'\n+6F1B8C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1B8E Compression Method    0000 (0) 'Stored'\n+6F1B90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1B94 CRC                   2510FA3B (621869627)\n+6F1B98 Compressed Size       000003C1 (961)\n+6F1B9C Uncompressed Size     000003C1 (961)\n+6F1BA0 Filename Length       002F (47)\n+6F1BA2 Extra Length          0009 (9)\n+6F1BA4 Comment Length        0000 (0)\n+6F1BA6 Disk Start            0000 (0)\n+6F1BA8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1BAA Ext File Attributes   00000000 (0)\n+6F1BAE Local Header Offset   0014BDC1 (1359297)\n+6F1BB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1BB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1BE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1BE3   Length              0005 (5)\n+6F1BE5   Flags               01 (1) 'Modification'\n+6F1BE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1BEA CENTRAL HEADER #497   02014B50 (33639248)\n+6F1BEE Created Zip Spec      14 (20) '2.0'\n+6F1BEF Created OS            00 (0) 'MS-DOS'\n+6F1BF0 Extract Zip Spec      14 (20) '2.0'\n+6F1BF1 Extract OS            00 (0) 'MS-DOS'\n+6F1BF2 General Purpose Flag  0000 (0)\n+6F1BF4 Compression Method    0000 (0) 'Stored'\n+6F1BF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1BFA CRC                   00000000 (0)\n+6F1BFE Compressed Size       00000000 (0)\n+6F1C02 Uncompressed Size     00000000 (0)\n+6F1C06 Filename Length       001F (31)\n+6F1C08 Extra Length          0009 (9)\n+6F1C0A Comment Length        0000 (0)\n+6F1C0C Disk Start            0000 (0)\n+6F1C0E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1C10 Ext File Attributes   00000000 (0)\n+6F1C14 Local Header Offset   0014C1E8 (1360360)\n+6F1C18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1C18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1C37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1C39   Length              0005 (5)\n+6F1C3B   Flags               01 (1) 'Modification'\n+6F1C3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1C40 CENTRAL HEADER #498   02014B50 (33639248)\n+6F1C44 Created Zip Spec      14 (20) '2.0'\n+6F1C45 Created OS            00 (0) 'MS-DOS'\n+6F1C46 Extract Zip Spec      14 (20) '2.0'\n+6F1C47 Extract OS            00 (0) 'MS-DOS'\n+6F1C48 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1C4A Compression Method    0000 (0) 'Stored'\n+6F1C4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1C50 CRC                   14A7D3CC (346543052)\n+6F1C54 Compressed Size       000003BD (957)\n+6F1C58 Uncompressed Size     000003BD (957)\n+6F1C5C Filename Length       002D (45)\n+6F1C5E Extra Length          0009 (9)\n+6F1C60 Comment Length        0000 (0)\n+6F1C62 Disk Start            0000 (0)\n+6F1C64 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1C66 Ext File Attributes   00000000 (0)\n+6F1C6A Local Header Offset   0014C22E (1360430)\n+6F1C6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1C6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1C9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1C9D   Length              0005 (5)\n+6F1C9F   Flags               01 (1) 'Modification'\n+6F1CA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1CA4 CENTRAL HEADER #499   02014B50 (33639248)\n+6F1CA8 Created Zip Spec      14 (20) '2.0'\n+6F1CA9 Created OS            00 (0) 'MS-DOS'\n+6F1CAA Extract Zip Spec      14 (20) '2.0'\n+6F1CAB Extract OS            00 (0) 'MS-DOS'\n+6F1CAC General Purpose Flag  0000 (0)\n+6F1CAE Compression Method    0000 (0) 'Stored'\n+6F1CB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1CB4 CRC                   00000000 (0)\n+6F1CB8 Compressed Size       00000000 (0)\n+6F1CBC Uncompressed Size     00000000 (0)\n+6F1CC0 Filename Length       0022 (34)\n+6F1CC2 Extra Length          0009 (9)\n+6F1CC4 Comment Length        0000 (0)\n+6F1CC6 Disk Start            0000 (0)\n+6F1CC8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1CCA Ext File Attributes   00000000 (0)\n+6F1CCE Local Header Offset   0014C64F (1361487)\n+6F1CD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F1CC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F1CD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6F1CF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6F1CF6   Length              0005 (5)\n 6F1CF8   Flags               01 (1) 'Modification'\n 6F1CF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6F1CFD CENTRAL HEADER #1437  02014B50 (33639248)\n+6F1CFD CENTRAL HEADER #500   02014B50 (33639248)\n 6F1D01 Created Zip Spec      14 (20) '2.0'\n 6F1D02 Created OS            00 (0) 'MS-DOS'\n 6F1D03 Extract Zip Spec      14 (20) '2.0'\n 6F1D04 Extract OS            00 (0) 'MS-DOS'\n-6F1D05 General Purpose Flag  0000 (0)\n+6F1D05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n 6F1D07 Compression Method    0000 (0) 'Stored'\n 6F1D09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1D0D CRC                   00000000 (0)\n-6F1D11 Compressed Size       00000000 (0)\n-6F1D15 Uncompressed Size     00000000 (0)\n-6F1D19 Filename Length       0021 (33)\n+6F1D0D CRC                   1652AFBA (374517690)\n+6F1D11 Compressed Size       00000538 (1336)\n+6F1D15 Uncompressed Size     00000538 (1336)\n+6F1D19 Filename Length       0034 (52)\n 6F1D1B Extra Length          0009 (9)\n 6F1D1D Comment Length        0000 (0)\n 6F1D1F Disk Start            0000 (0)\n 6F1D21 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6F1D23 Ext File Attributes   00000000 (0)\n-6F1D27 Local Header Offset   004F3090 (5189776)\n-6F1D2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F1D27 Local Header Offset   0014C698 (1361560)\n+6F1D2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F1D2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F1D2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6F1D4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1D4E   Length              0005 (5)\n-6F1D50   Flags               01 (1) 'Modification'\n-6F1D51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1D55 CENTRAL HEADER #1438  02014B50 (33639248)\n-6F1D59 Created Zip Spec      14 (20) '2.0'\n-6F1D5A Created OS            00 (0) 'MS-DOS'\n-6F1D5B Extract Zip Spec      14 (20) '2.0'\n-6F1D5C Extract OS            00 (0) 'MS-DOS'\n-6F1D5D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1D5F Compression Method    0000 (0) 'Stored'\n-6F1D61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1D65 CRC                   68852581 (1753556353)\n-6F1D69 Compressed Size       00002404 (9220)\n-6F1D6D Uncompressed Size     00002404 (9220)\n-6F1D71 Filename Length       003B (59)\n-6F1D73 Extra Length          0009 (9)\n-6F1D75 Comment Length        0000 (0)\n-6F1D77 Disk Start            0000 (0)\n-6F1D79 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1D7B Ext File Attributes   00000000 (0)\n-6F1D7F Local Header Offset   004F30D8 (5189848)\n-6F1D83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1D83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1DC0   Length              0005 (5)\n-6F1DC2   Flags               01 (1) 'Modification'\n-6F1DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1DC7 CENTRAL HEADER #1439  02014B50 (33639248)\n-6F1DCB Created Zip Spec      14 (20) '2.0'\n-6F1DCC Created OS            00 (0) 'MS-DOS'\n-6F1DCD Extract Zip Spec      14 (20) '2.0'\n-6F1DCE Extract OS            00 (0) 'MS-DOS'\n-6F1DCF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1DD1 Compression Method    0000 (0) 'Stored'\n-6F1DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1DD7 CRC                   AD83DA8F (2911099535)\n-6F1DDB Compressed Size       00001EB2 (7858)\n-6F1DDF Uncompressed Size     00001EB2 (7858)\n-6F1DE3 Filename Length       0043 (67)\n-6F1DE5 Extra Length          0009 (9)\n-6F1DE7 Comment Length        0000 (0)\n-6F1DE9 Disk Start            0000 (0)\n-6F1DEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1DED Ext File Attributes   00000000 (0)\n-6F1DF1 Local Header Offset   004F554E (5199182)\n-6F1DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1E38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1E3A   Length              0005 (5)\n-6F1E3C   Flags               01 (1) 'Modification'\n-6F1E3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1E41 CENTRAL HEADER #1440  02014B50 (33639248)\n-6F1E45 Created Zip Spec      14 (20) '2.0'\n-6F1E46 Created OS            00 (0) 'MS-DOS'\n-6F1E47 Extract Zip Spec      14 (20) '2.0'\n-6F1E48 Extract OS            00 (0) 'MS-DOS'\n-6F1E49 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1E4B Compression Method    0000 (0) 'Stored'\n-6F1E4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1E51 CRC                   2E56D9DD (777443805)\n-6F1E55 Compressed Size       0000AA70 (43632)\n-6F1E59 Uncompressed Size     0000AA70 (43632)\n-6F1E5D Filename Length       0033 (51)\n-6F1E5F Extra Length          0009 (9)\n-6F1E61 Comment Length        0000 (0)\n-6F1E63 Disk Start            0000 (0)\n-6F1E65 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1E67 Ext File Attributes   00000000 (0)\n-6F1E6B Local Header Offset   004F747A (5207162)\n-6F1E6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1E6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1EA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1EA4   Length              0005 (5)\n-6F1EA6   Flags               01 (1) 'Modification'\n-6F1EA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1EAB CENTRAL HEADER #1441  02014B50 (33639248)\n-6F1EAF Created Zip Spec      14 (20) '2.0'\n-6F1EB0 Created OS            00 (0) 'MS-DOS'\n-6F1EB1 Extract Zip Spec      14 (20) '2.0'\n-6F1EB2 Extract OS            00 (0) 'MS-DOS'\n-6F1EB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1EB5 Compression Method    0000 (0) 'Stored'\n-6F1EB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1EBB CRC                   6A53E0FE (1783881982)\n-6F1EBF Compressed Size       00000456 (1110)\n-6F1EC3 Uncompressed Size     00000456 (1110)\n-6F1EC7 Filename Length       003A (58)\n-6F1EC9 Extra Length          0009 (9)\n-6F1ECB Comment Length        0000 (0)\n-6F1ECD Disk Start            0000 (0)\n-6F1ECF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1ED1 Ext File Attributes   00000000 (0)\n-6F1ED5 Local Header Offset   00501F54 (5250900)\n-6F1ED9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1ED9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1F13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1F15   Length              0005 (5)\n-6F1F17   Flags               01 (1) 'Modification'\n-6F1F18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1F1C CENTRAL HEADER #1442  02014B50 (33639248)\n-6F1F20 Created Zip Spec      14 (20) '2.0'\n-6F1F21 Created OS            00 (0) 'MS-DOS'\n-6F1F22 Extract Zip Spec      14 (20) '2.0'\n-6F1F23 Extract OS            00 (0) 'MS-DOS'\n-6F1F24 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1F26 Compression Method    0000 (0) 'Stored'\n-6F1F28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1F2C CRC                   4997E6D6 (1234691798)\n-6F1F30 Compressed Size       00000C53 (3155)\n-6F1F34 Uncompressed Size     00000C53 (3155)\n-6F1F38 Filename Length       003E (62)\n-6F1F3A Extra Length          0009 (9)\n-6F1F3C Comment Length        0000 (0)\n-6F1F3E Disk Start            0000 (0)\n-6F1F40 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1F42 Ext File Attributes   00000000 (0)\n-6F1F46 Local Header Offset   0050241B (5252123)\n-6F1F4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1F4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1F88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F1F8A   Length              0005 (5)\n-6F1F8C   Flags               01 (1) 'Modification'\n-6F1F8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F1F91 CENTRAL HEADER #1443  02014B50 (33639248)\n-6F1F95 Created Zip Spec      14 (20) '2.0'\n-6F1F96 Created OS            00 (0) 'MS-DOS'\n-6F1F97 Extract Zip Spec      14 (20) '2.0'\n-6F1F98 Extract OS            00 (0) 'MS-DOS'\n-6F1F99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F1F9B Compression Method    0000 (0) 'Stored'\n-6F1F9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F1FA1 CRC                   996F8C6F (2574224495)\n-6F1FA5 Compressed Size       00000765 (1893)\n-6F1FA9 Uncompressed Size     00000765 (1893)\n-6F1FAD Filename Length       003F (63)\n-6F1FAF Extra Length          0009 (9)\n-6F1FB1 Comment Length        0000 (0)\n-6F1FB3 Disk Start            0000 (0)\n-6F1FB5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F1FB7 Ext File Attributes   00000000 (0)\n-6F1FBB Local Header Offset   005030E3 (5255395)\n-6F1FBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F1FBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F1FFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2000   Length              0005 (5)\n-6F2002   Flags               01 (1) 'Modification'\n-6F2003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2007 CENTRAL HEADER #1444  02014B50 (33639248)\n-6F200B Created Zip Spec      14 (20) '2.0'\n-6F200C Created OS            00 (0) 'MS-DOS'\n-6F200D Extract Zip Spec      14 (20) '2.0'\n-6F200E Extract OS            00 (0) 'MS-DOS'\n-6F200F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2011 Compression Method    0000 (0) 'Stored'\n-6F2013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2017 CRC                   F6247952 (4129585490)\n-6F201B Compressed Size       000012A2 (4770)\n-6F201F Uncompressed Size     000012A2 (4770)\n-6F2023 Filename Length       0034 (52)\n-6F2025 Extra Length          0009 (9)\n-6F2027 Comment Length        0000 (0)\n-6F2029 Disk Start            0000 (0)\n-6F202B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F202D Ext File Attributes   00000000 (0)\n-6F2031 Local Header Offset   005038BE (5257406)\n-6F2035 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2035: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2069 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F206B   Length              0005 (5)\n-6F206D   Flags               01 (1) 'Modification'\n-6F206E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2072 CENTRAL HEADER #1445  02014B50 (33639248)\n-6F2076 Created Zip Spec      14 (20) '2.0'\n-6F2077 Created OS            00 (0) 'MS-DOS'\n-6F2078 Extract Zip Spec      14 (20) '2.0'\n-6F2079 Extract OS            00 (0) 'MS-DOS'\n-6F207A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F207C Compression Method    0000 (0) 'Stored'\n-6F207E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2082 CRC                   9D245ED3 (2636406483)\n-6F2086 Compressed Size       00000A45 (2629)\n-6F208A Uncompressed Size     00000A45 (2629)\n-6F208E Filename Length       0040 (64)\n-6F2090 Extra Length          0009 (9)\n-6F2092 Comment Length        0000 (0)\n-6F2094 Disk Start            0000 (0)\n-6F2096 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2098 Ext File Attributes   00000000 (0)\n-6F209C Local Header Offset   00504BCB (5262283)\n-6F20A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F20A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F20E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F20E2   Length              0005 (5)\n-6F20E4   Flags               01 (1) 'Modification'\n-6F20E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F20E9 CENTRAL HEADER #1446  02014B50 (33639248)\n-6F20ED Created Zip Spec      14 (20) '2.0'\n-6F20EE Created OS            00 (0) 'MS-DOS'\n-6F20EF Extract Zip Spec      14 (20) '2.0'\n-6F20F0 Extract OS            00 (0) 'MS-DOS'\n-6F20F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F20F3 Compression Method    0000 (0) 'Stored'\n-6F20F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F20F9 CRC                   5ED5B140 (1591062848)\n-6F20FD Compressed Size       000015E8 (5608)\n-6F2101 Uncompressed Size     000015E8 (5608)\n-6F2105 Filename Length       003A (58)\n-6F2107 Extra Length          0009 (9)\n-6F2109 Comment Length        0000 (0)\n-6F210B Disk Start            0000 (0)\n-6F210D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F210F Ext File Attributes   00000000 (0)\n-6F2113 Local Header Offset   00505687 (5265031)\n-6F2117 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2117: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2151 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2153   Length              0005 (5)\n-6F2155   Flags               01 (1) 'Modification'\n-6F2156   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F215A CENTRAL HEADER #1447  02014B50 (33639248)\n-6F215E Created Zip Spec      14 (20) '2.0'\n-6F215F Created OS            00 (0) 'MS-DOS'\n-6F2160 Extract Zip Spec      14 (20) '2.0'\n-6F2161 Extract OS            00 (0) 'MS-DOS'\n-6F2162 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2164 Compression Method    0000 (0) 'Stored'\n-6F2166 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F216A CRC                   CC038CDE (3422784734)\n-6F216E Compressed Size       000019AF (6575)\n-6F2172 Uncompressed Size     000019AF (6575)\n-6F2176 Filename Length       0037 (55)\n-6F2178 Extra Length          0009 (9)\n-6F217A Comment Length        0000 (0)\n-6F217C Disk Start            0000 (0)\n-6F217E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2180 Ext File Attributes   00000000 (0)\n-6F2184 Local Header Offset   00506CE0 (5270752)\n-6F2188 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2188: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F21BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F21C1   Length              0005 (5)\n-6F21C3   Flags               01 (1) 'Modification'\n-6F21C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F21C8 CENTRAL HEADER #1448  02014B50 (33639248)\n-6F21CC Created Zip Spec      14 (20) '2.0'\n-6F21CD Created OS            00 (0) 'MS-DOS'\n-6F21CE Extract Zip Spec      14 (20) '2.0'\n-6F21CF Extract OS            00 (0) 'MS-DOS'\n-6F21D0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F21D2 Compression Method    0000 (0) 'Stored'\n-6F21D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F21D8 CRC                   80349D10 (2150931728)\n-6F21DC Compressed Size       00000779 (1913)\n-6F21E0 Uncompressed Size     00000779 (1913)\n-6F21E4 Filename Length       003E (62)\n-6F21E6 Extra Length          0009 (9)\n-6F21E8 Comment Length        0000 (0)\n-6F21EA Disk Start            0000 (0)\n-6F21EC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F21EE Ext File Attributes   00000000 (0)\n-6F21F2 Local Header Offset   005086FD (5277437)\n-6F21F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F21F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2234 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2236   Length              0005 (5)\n-6F2238   Flags               01 (1) 'Modification'\n-6F2239   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F223D CENTRAL HEADER #1449  02014B50 (33639248)\n-6F2241 Created Zip Spec      14 (20) '2.0'\n-6F2242 Created OS            00 (0) 'MS-DOS'\n-6F2243 Extract Zip Spec      14 (20) '2.0'\n-6F2244 Extract OS            00 (0) 'MS-DOS'\n-6F2245 General Purpose Flag  0000 (0)\n-6F2247 Compression Method    0000 (0) 'Stored'\n-6F2249 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F224D CRC                   00000000 (0)\n-6F2251 Compressed Size       00000000 (0)\n-6F2255 Uncompressed Size     00000000 (0)\n-6F2259 Filename Length       001F (31)\n-6F225B Extra Length          0009 (9)\n-6F225D Comment Length        0000 (0)\n-6F225F Disk Start            0000 (0)\n-6F2261 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2263 Ext File Attributes   00000000 (0)\n-6F2267 Local Header Offset   00508EEB (5279467)\n-6F226B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F226B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F228A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F228C   Length              0005 (5)\n-6F228E   Flags               01 (1) 'Modification'\n-6F228F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2293 CENTRAL HEADER #1450  02014B50 (33639248)\n-6F2297 Created Zip Spec      14 (20) '2.0'\n-6F2298 Created OS            00 (0) 'MS-DOS'\n-6F2299 Extract Zip Spec      14 (20) '2.0'\n-6F229A Extract OS            00 (0) 'MS-DOS'\n-6F229B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F229D Compression Method    0000 (0) 'Stored'\n-6F229F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F22A3 CRC                   36F8F065 (922284133)\n-6F22A7 Compressed Size       0000062A (1578)\n-6F22AB Uncompressed Size     0000062A (1578)\n-6F22AF Filename Length       0037 (55)\n-6F22B1 Extra Length          0009 (9)\n-6F22B3 Comment Length        0000 (0)\n-6F22B5 Disk Start            0000 (0)\n-6F22B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F22B9 Ext File Attributes   00000000 (0)\n-6F22BD Local Header Offset   00508F31 (5279537)\n-6F22C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F22C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F22F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F22FA   Length              0005 (5)\n-6F22FC   Flags               01 (1) 'Modification'\n-6F22FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2301 CENTRAL HEADER #1451  02014B50 (33639248)\n-6F2305 Created Zip Spec      14 (20) '2.0'\n-6F2306 Created OS            00 (0) 'MS-DOS'\n-6F2307 Extract Zip Spec      14 (20) '2.0'\n-6F2308 Extract OS            00 (0) 'MS-DOS'\n-6F2309 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F230B Compression Method    0000 (0) 'Stored'\n-6F230D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2311 CRC                   CD8B51D1 (3448459729)\n-6F2315 Compressed Size       000003DC (988)\n-6F2319 Uncompressed Size     000003DC (988)\n-6F231D Filename Length       0031 (49)\n-6F231F Extra Length          0009 (9)\n-6F2321 Comment Length        0000 (0)\n-6F2323 Disk Start            0000 (0)\n-6F2325 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2327 Ext File Attributes   00000000 (0)\n-6F232B Local Header Offset   005095C9 (5281225)\n-6F232F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F232F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2360 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2362   Length              0005 (5)\n-6F2364   Flags               01 (1) 'Modification'\n-6F2365   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2369 CENTRAL HEADER #1452  02014B50 (33639248)\n-6F236D Created Zip Spec      14 (20) '2.0'\n-6F236E Created OS            00 (0) 'MS-DOS'\n-6F236F Extract Zip Spec      14 (20) '2.0'\n-6F2370 Extract OS            00 (0) 'MS-DOS'\n-6F2371 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2373 Compression Method    0000 (0) 'Stored'\n-6F2375 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2379 CRC                   123318DF (305338591)\n-6F237D Compressed Size       000006C9 (1737)\n-6F2381 Uncompressed Size     000006C9 (1737)\n-6F2385 Filename Length       002D (45)\n-6F2387 Extra Length          0009 (9)\n-6F2389 Comment Length        0000 (0)\n-6F238B Disk Start            0000 (0)\n-6F238D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F238F Ext File Attributes   00000000 (0)\n-6F2393 Local Header Offset   00509A0D (5282317)\n-6F2397 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2397: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F23C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F23C6   Length              0005 (5)\n-6F23C8   Flags               01 (1) 'Modification'\n-6F23C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F23CD CENTRAL HEADER #1453  02014B50 (33639248)\n-6F23D1 Created Zip Spec      14 (20) '2.0'\n-6F23D2 Created OS            00 (0) 'MS-DOS'\n-6F23D3 Extract Zip Spec      14 (20) '2.0'\n-6F23D4 Extract OS            00 (0) 'MS-DOS'\n-6F23D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F23D7 Compression Method    0000 (0) 'Stored'\n-6F23D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F23DD CRC                   6B994ABC (1805208252)\n-6F23E1 Compressed Size       000018EB (6379)\n-6F23E5 Uncompressed Size     000018EB (6379)\n-6F23E9 Filename Length       002E (46)\n-6F23EB Extra Length          0009 (9)\n-6F23ED Comment Length        0000 (0)\n-6F23EF Disk Start            0000 (0)\n-6F23F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F23F3 Ext File Attributes   00000000 (0)\n-6F23F7 Local Header Offset   0050A13A (5284154)\n-6F23FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F23FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2429 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F242B   Length              0005 (5)\n-6F242D   Flags               01 (1) 'Modification'\n-6F242E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2432 CENTRAL HEADER #1454  02014B50 (33639248)\n-6F2436 Created Zip Spec      14 (20) '2.0'\n-6F2437 Created OS            00 (0) 'MS-DOS'\n-6F2438 Extract Zip Spec      14 (20) '2.0'\n-6F2439 Extract OS            00 (0) 'MS-DOS'\n-6F243A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F243C Compression Method    0000 (0) 'Stored'\n-6F243E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2442 CRC                   387B0FF7 (947589111)\n-6F2446 Compressed Size       000007B7 (1975)\n-6F244A Uncompressed Size     000007B7 (1975)\n-6F244E Filename Length       0033 (51)\n-6F2450 Extra Length          0009 (9)\n-6F2452 Comment Length        0000 (0)\n-6F2454 Disk Start            0000 (0)\n-6F2456 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2458 Ext File Attributes   00000000 (0)\n-6F245C Local Header Offset   0050BA8A (5290634)\n-6F2460 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2460: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2493 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2495   Length              0005 (5)\n-6F2497   Flags               01 (1) 'Modification'\n-6F2498   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F249C CENTRAL HEADER #1455  02014B50 (33639248)\n-6F24A0 Created Zip Spec      14 (20) '2.0'\n-6F24A1 Created OS            00 (0) 'MS-DOS'\n-6F24A2 Extract Zip Spec      14 (20) '2.0'\n-6F24A3 Extract OS            00 (0) 'MS-DOS'\n-6F24A4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F24A6 Compression Method    0000 (0) 'Stored'\n-6F24A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F24AC CRC                   0F6205B4 (258082228)\n-6F24B0 Compressed Size       000004DB (1243)\n-6F24B4 Uncompressed Size     000004DB (1243)\n-6F24B8 Filename Length       002F (47)\n-6F24BA Extra Length          0009 (9)\n-6F24BC Comment Length        0000 (0)\n-6F24BE Disk Start            0000 (0)\n-6F24C0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F24C2 Ext File Attributes   00000000 (0)\n-6F24C6 Local Header Offset   0050C2AB (5292715)\n-6F24CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F24CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F24F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F24FB   Length              0005 (5)\n-6F24FD   Flags               01 (1) 'Modification'\n-6F24FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2502 CENTRAL HEADER #1456  02014B50 (33639248)\n-6F2506 Created Zip Spec      14 (20) '2.0'\n-6F2507 Created OS            00 (0) 'MS-DOS'\n-6F2508 Extract Zip Spec      14 (20) '2.0'\n-6F2509 Extract OS            00 (0) 'MS-DOS'\n-6F250A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F250C Compression Method    0000 (0) 'Stored'\n-6F250E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2512 CRC                   6ADC9301 (1792840449)\n-6F2516 Compressed Size       000003E4 (996)\n-6F251A Uncompressed Size     000003E4 (996)\n-6F251E Filename Length       0031 (49)\n-6F2520 Extra Length          0009 (9)\n-6F2522 Comment Length        0000 (0)\n-6F2524 Disk Start            0000 (0)\n-6F2526 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2528 Ext File Attributes   00000000 (0)\n-6F252C Local Header Offset   0050C7EC (5294060)\n-6F2530 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2530: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2561 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2563   Length              0005 (5)\n-6F2565   Flags               01 (1) 'Modification'\n-6F2566   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F256A CENTRAL HEADER #1457  02014B50 (33639248)\n-6F256E Created Zip Spec      14 (20) '2.0'\n-6F256F Created OS            00 (0) 'MS-DOS'\n-6F2570 Extract Zip Spec      14 (20) '2.0'\n-6F2571 Extract OS            00 (0) 'MS-DOS'\n-6F2572 General Purpose Flag  0000 (0)\n-6F2574 Compression Method    0000 (0) 'Stored'\n-6F2576 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F257A CRC                   00000000 (0)\n-6F257E Compressed Size       00000000 (0)\n-6F2582 Uncompressed Size     00000000 (0)\n-6F2586 Filename Length       0025 (37)\n-6F2588 Extra Length          0009 (9)\n-6F258A Comment Length        0000 (0)\n-6F258C Disk Start            0000 (0)\n-6F258E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2590 Ext File Attributes   00000000 (0)\n-6F2594 Local Header Offset   0050CC38 (5295160)\n-6F2598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F25BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F25BF   Length              0005 (5)\n-6F25C1   Flags               01 (1) 'Modification'\n-6F25C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F25C6 CENTRAL HEADER #1458  02014B50 (33639248)\n-6F25CA Created Zip Spec      14 (20) '2.0'\n-6F25CB Created OS            00 (0) 'MS-DOS'\n-6F25CC Extract Zip Spec      14 (20) '2.0'\n-6F25CD Extract OS            00 (0) 'MS-DOS'\n-6F25CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F25D0 Compression Method    0000 (0) 'Stored'\n-6F25D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F25D6 CRC                   3F422686 (1061299846)\n-6F25DA Compressed Size       0000046C (1132)\n-6F25DE Uncompressed Size     0000046C (1132)\n-6F25E2 Filename Length       0041 (65)\n-6F25E4 Extra Length          0009 (9)\n-6F25E6 Comment Length        0000 (0)\n-6F25E8 Disk Start            0000 (0)\n-6F25EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F25EC Ext File Attributes   00000000 (0)\n-6F25F0 Local Header Offset   0050CC84 (5295236)\n-6F25F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F25F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2635 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2637   Length              0005 (5)\n-6F2639   Flags               01 (1) 'Modification'\n-6F263A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F263E CENTRAL HEADER #1459  02014B50 (33639248)\n-6F2642 Created Zip Spec      14 (20) '2.0'\n-6F2643 Created OS            00 (0) 'MS-DOS'\n-6F2644 Extract Zip Spec      14 (20) '2.0'\n-6F2645 Extract OS            00 (0) 'MS-DOS'\n-6F2646 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2648 Compression Method    0000 (0) 'Stored'\n-6F264A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F264E CRC                   A75036DE (2807051998)\n-6F2652 Compressed Size       00004108 (16648)\n-6F2656 Uncompressed Size     00004108 (16648)\n-6F265A Filename Length       0035 (53)\n-6F265C Extra Length          0009 (9)\n-6F265E Comment Length        0000 (0)\n-6F2660 Disk Start            0000 (0)\n-6F2662 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2664 Ext File Attributes   00000000 (0)\n-6F2668 Local Header Offset   0050D168 (5296488)\n-6F266C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F266C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F26A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F26A3   Length              0005 (5)\n-6F26A5   Flags               01 (1) 'Modification'\n-6F26A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F26AA CENTRAL HEADER #1460  02014B50 (33639248)\n-6F26AE Created Zip Spec      14 (20) '2.0'\n-6F26AF Created OS            00 (0) 'MS-DOS'\n-6F26B0 Extract Zip Spec      14 (20) '2.0'\n-6F26B1 Extract OS            00 (0) 'MS-DOS'\n-6F26B2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F26B4 Compression Method    0000 (0) 'Stored'\n-6F26B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F26BA CRC                   F1F2D150 (4059222352)\n-6F26BE Compressed Size       00006EC8 (28360)\n-6F26C2 Uncompressed Size     00006EC8 (28360)\n-6F26C6 Filename Length       003C (60)\n-6F26C8 Extra Length          0009 (9)\n-6F26CA Comment Length        0000 (0)\n-6F26CC Disk Start            0000 (0)\n-6F26CE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F26D0 Ext File Attributes   00000000 (0)\n-6F26D4 Local Header Offset   005112DC (5313244)\n-6F26D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F26D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2714 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2716   Length              0005 (5)\n-6F2718   Flags               01 (1) 'Modification'\n-6F2719   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F271D CENTRAL HEADER #1461  02014B50 (33639248)\n-6F2721 Created Zip Spec      14 (20) '2.0'\n-6F2722 Created OS            00 (0) 'MS-DOS'\n-6F2723 Extract Zip Spec      14 (20) '2.0'\n-6F2724 Extract OS            00 (0) 'MS-DOS'\n-6F2725 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2727 Compression Method    0000 (0) 'Stored'\n-6F2729 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F272D CRC                   F823DAB1 (4163099313)\n-6F2731 Compressed Size       00000480 (1152)\n-6F2735 Uncompressed Size     00000480 (1152)\n-6F2739 Filename Length       003A (58)\n-6F273B Extra Length          0009 (9)\n-6F273D Comment Length        0000 (0)\n-6F273F Disk Start            0000 (0)\n-6F2741 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2743 Ext File Attributes   00000000 (0)\n-6F2747 Local Header Offset   00518217 (5341719)\n-6F274B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F274B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2785 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2787   Length              0005 (5)\n-6F2789   Flags               01 (1) 'Modification'\n-6F278A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F278E CENTRAL HEADER #1462  02014B50 (33639248)\n-6F2792 Created Zip Spec      14 (20) '2.0'\n-6F2793 Created OS            00 (0) 'MS-DOS'\n-6F2794 Extract Zip Spec      14 (20) '2.0'\n-6F2795 Extract OS            00 (0) 'MS-DOS'\n-6F2796 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2798 Compression Method    0000 (0) 'Stored'\n-6F279A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F279E CRC                   0B4932D9 (189346521)\n-6F27A2 Compressed Size       00000D69 (3433)\n-6F27A6 Uncompressed Size     00000D69 (3433)\n-6F27AA Filename Length       0034 (52)\n-6F27AC Extra Length          0009 (9)\n-6F27AE Comment Length        0000 (0)\n-6F27B0 Disk Start            0000 (0)\n-6F27B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F27B4 Ext File Attributes   00000000 (0)\n-6F27B8 Local Header Offset   00518708 (5342984)\n-6F27BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F27BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F27F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F27F2   Length              0005 (5)\n-6F27F4   Flags               01 (1) 'Modification'\n-6F27F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F27F9 CENTRAL HEADER #1463  02014B50 (33639248)\n-6F27FD Created Zip Spec      14 (20) '2.0'\n-6F27FE Created OS            00 (0) 'MS-DOS'\n-6F27FF Extract Zip Spec      14 (20) '2.0'\n-6F2800 Extract OS            00 (0) 'MS-DOS'\n-6F2801 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2803 Compression Method    0000 (0) 'Stored'\n-6F2805 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2809 CRC                   117709A7 (293013927)\n-6F280D Compressed Size       0000056A (1386)\n-6F2811 Uncompressed Size     0000056A (1386)\n-6F2815 Filename Length       0035 (53)\n-6F2817 Extra Length          0009 (9)\n-6F2819 Comment Length        0000 (0)\n-6F281B Disk Start            0000 (0)\n-6F281D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F281F Ext File Attributes   00000000 (0)\n-6F2823 Local Header Offset   005194DC (5346524)\n-6F2827 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2827: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F285C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F285E   Length              0005 (5)\n-6F2860   Flags               01 (1) 'Modification'\n-6F2861   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2865 CENTRAL HEADER #1464  02014B50 (33639248)\n-6F2869 Created Zip Spec      14 (20) '2.0'\n-6F286A Created OS            00 (0) 'MS-DOS'\n-6F286B Extract Zip Spec      14 (20) '2.0'\n-6F286C Extract OS            00 (0) 'MS-DOS'\n-6F286D General Purpose Flag  0000 (0)\n-6F286F Compression Method    0000 (0) 'Stored'\n-6F2871 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2875 CRC                   00000000 (0)\n-6F2879 Compressed Size       00000000 (0)\n-6F287D Uncompressed Size     00000000 (0)\n-6F2881 Filename Length       0026 (38)\n-6F2883 Extra Length          0009 (9)\n-6F2885 Comment Length        0000 (0)\n-6F2887 Disk Start            0000 (0)\n-6F2889 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F288B Ext File Attributes   00000000 (0)\n-6F288F Local Header Offset   00519AB2 (5348018)\n-6F2893 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2893: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F28B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F28BB   Length              0005 (5)\n-6F28BD   Flags               01 (1) 'Modification'\n-6F28BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F28C2 CENTRAL HEADER #1465  02014B50 (33639248)\n-6F28C6 Created Zip Spec      14 (20) '2.0'\n-6F28C7 Created OS            00 (0) 'MS-DOS'\n-6F28C8 Extract Zip Spec      14 (20) '2.0'\n-6F28C9 Extract OS            00 (0) 'MS-DOS'\n-6F28CA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F28CC Compression Method    0000 (0) 'Stored'\n-6F28CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F28D2 CRC                   35D495FB (903124475)\n-6F28D6 Compressed Size       00000B6B (2923)\n-6F28DA Uncompressed Size     00000B6B (2923)\n-6F28DE Filename Length       0035 (53)\n-6F28E0 Extra Length          0009 (9)\n-6F28E2 Comment Length        0000 (0)\n-6F28E4 Disk Start            0000 (0)\n-6F28E6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F28E8 Ext File Attributes   00000000 (0)\n-6F28EC Local Header Offset   00519AFF (5348095)\n-6F28F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F28F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2925 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2927   Length              0005 (5)\n-6F2929   Flags               01 (1) 'Modification'\n-6F292A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F292E CENTRAL HEADER #1466  02014B50 (33639248)\n-6F2932 Created Zip Spec      14 (20) '2.0'\n-6F2933 Created OS            00 (0) 'MS-DOS'\n-6F2934 Extract Zip Spec      14 (20) '2.0'\n-6F2935 Extract OS            00 (0) 'MS-DOS'\n-6F2936 General Purpose Flag  0000 (0)\n-6F2938 Compression Method    0000 (0) 'Stored'\n-6F293A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F293E CRC                   00000000 (0)\n-6F2942 Compressed Size       00000000 (0)\n-6F2946 Uncompressed Size     00000000 (0)\n-6F294A Filename Length       0027 (39)\n-6F294C Extra Length          0009 (9)\n-6F294E Comment Length        0000 (0)\n-6F2950 Disk Start            0000 (0)\n-6F2952 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2954 Ext File Attributes   00000000 (0)\n-6F2958 Local Header Offset   0051A6D6 (5351126)\n-6F295C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F295C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2983 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2985   Length              0005 (5)\n-6F2987   Flags               01 (1) 'Modification'\n-6F2988   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F298C CENTRAL HEADER #1467  02014B50 (33639248)\n-6F2990 Created Zip Spec      14 (20) '2.0'\n-6F2991 Created OS            00 (0) 'MS-DOS'\n-6F2992 Extract Zip Spec      14 (20) '2.0'\n-6F2993 Extract OS            00 (0) 'MS-DOS'\n-6F2994 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2996 Compression Method    0000 (0) 'Stored'\n-6F2998 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F299C CRC                   2FB39AE6 (800299750)\n-6F29A0 Compressed Size       00001C52 (7250)\n-6F29A4 Uncompressed Size     00001C52 (7250)\n-6F29A8 Filename Length       003E (62)\n-6F29AA Extra Length          0009 (9)\n-6F29AC Comment Length        0000 (0)\n-6F29AE Disk Start            0000 (0)\n-6F29B0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F29B2 Ext File Attributes   00000000 (0)\n-6F29B6 Local Header Offset   0051A724 (5351204)\n-6F29BA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F29BA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F29F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F29FA   Length              0005 (5)\n-6F29FC   Flags               01 (1) 'Modification'\n-6F29FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2A01 CENTRAL HEADER #1468  02014B50 (33639248)\n-6F2A05 Created Zip Spec      14 (20) '2.0'\n-6F2A06 Created OS            00 (0) 'MS-DOS'\n-6F2A07 Extract Zip Spec      14 (20) '2.0'\n-6F2A08 Extract OS            00 (0) 'MS-DOS'\n-6F2A09 General Purpose Flag  0000 (0)\n-6F2A0B Compression Method    0000 (0) 'Stored'\n-6F2A0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2A11 CRC                   00000000 (0)\n-6F2A15 Compressed Size       00000000 (0)\n-6F2A19 Uncompressed Size     00000000 (0)\n-6F2A1D Filename Length       0023 (35)\n-6F2A1F Extra Length          0009 (9)\n-6F2A21 Comment Length        0000 (0)\n-6F2A23 Disk Start            0000 (0)\n-6F2A25 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2A27 Ext File Attributes   00000000 (0)\n-6F2A2B Local Header Offset   0051C3EB (5358571)\n-6F2A2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2A2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2A52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2A54   Length              0005 (5)\n-6F2A56   Flags               01 (1) 'Modification'\n-6F2A57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2A5B CENTRAL HEADER #1469  02014B50 (33639248)\n-6F2A5F Created Zip Spec      14 (20) '2.0'\n-6F2A60 Created OS            00 (0) 'MS-DOS'\n-6F2A61 Extract Zip Spec      14 (20) '2.0'\n-6F2A62 Extract OS            00 (0) 'MS-DOS'\n-6F2A63 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2A65 Compression Method    0000 (0) 'Stored'\n-6F2A67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2A6B CRC                   D599DEAA (3583631018)\n-6F2A6F Compressed Size       000009A4 (2468)\n-6F2A73 Uncompressed Size     000009A4 (2468)\n-6F2A77 Filename Length       0037 (55)\n-6F2A79 Extra Length          0009 (9)\n-6F2A7B Comment Length        0000 (0)\n-6F2A7D Disk Start            0000 (0)\n-6F2A7F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2A81 Ext File Attributes   00000000 (0)\n-6F2A85 Local Header Offset   0051C435 (5358645)\n-6F2A89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2A89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2AC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2AC2   Length              0005 (5)\n-6F2AC4   Flags               01 (1) 'Modification'\n-6F2AC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2AC9 CENTRAL HEADER #1470  02014B50 (33639248)\n-6F2ACD Created Zip Spec      14 (20) '2.0'\n-6F2ACE Created OS            00 (0) 'MS-DOS'\n-6F2ACF Extract Zip Spec      14 (20) '2.0'\n-6F2AD0 Extract OS            00 (0) 'MS-DOS'\n-6F2AD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2AD3 Compression Method    0000 (0) 'Stored'\n-6F2AD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2AD9 CRC                   E165CDFB (3781545467)\n-6F2ADD Compressed Size       0000041A (1050)\n-6F2AE1 Uncompressed Size     0000041A (1050)\n-6F2AE5 Filename Length       0036 (54)\n-6F2AE7 Extra Length          0009 (9)\n-6F2AE9 Comment Length        0000 (0)\n-6F2AEB Disk Start            0000 (0)\n-6F2AED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2AEF Ext File Attributes   00000000 (0)\n-6F2AF3 Local Header Offset   0051CE47 (5361223)\n-6F2AF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2AF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2B2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2B2F   Length              0005 (5)\n-6F2B31   Flags               01 (1) 'Modification'\n-6F2B32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2B36 CENTRAL HEADER #1471  02014B50 (33639248)\n-6F2B3A Created Zip Spec      14 (20) '2.0'\n-6F2B3B Created OS            00 (0) 'MS-DOS'\n-6F2B3C Extract Zip Spec      14 (20) '2.0'\n-6F2B3D Extract OS            00 (0) 'MS-DOS'\n-6F2B3E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2B40 Compression Method    0000 (0) 'Stored'\n-6F2B42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2B46 CRC                   72699C54 (1919523924)\n-6F2B4A Compressed Size       000005B9 (1465)\n-6F2B4E Uncompressed Size     000005B9 (1465)\n-6F2B52 Filename Length       0037 (55)\n-6F2B54 Extra Length          0009 (9)\n-6F2B56 Comment Length        0000 (0)\n-6F2B58 Disk Start            0000 (0)\n-6F2B5A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2B5C Ext File Attributes   00000000 (0)\n-6F2B60 Local Header Offset   0051D2CE (5362382)\n-6F2B64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2B64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2B9B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2B9D   Length              0005 (5)\n-6F2B9F   Flags               01 (1) 'Modification'\n-6F2BA0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2BA4 CENTRAL HEADER #1472  02014B50 (33639248)\n-6F2BA8 Created Zip Spec      14 (20) '2.0'\n-6F2BA9 Created OS            00 (0) 'MS-DOS'\n-6F2BAA Extract Zip Spec      14 (20) '2.0'\n-6F2BAB Extract OS            00 (0) 'MS-DOS'\n-6F2BAC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2BAE Compression Method    0000 (0) 'Stored'\n-6F2BB0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2BB4 CRC                   330FACB0 (856665264)\n-6F2BB8 Compressed Size       00000588 (1416)\n-6F2BBC Uncompressed Size     00000588 (1416)\n-6F2BC0 Filename Length       0036 (54)\n-6F2BC2 Extra Length          0009 (9)\n-6F2BC4 Comment Length        0000 (0)\n-6F2BC6 Disk Start            0000 (0)\n-6F2BC8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2BCA Ext File Attributes   00000000 (0)\n-6F2BCE Local Header Offset   0051D8F5 (5363957)\n-6F2BD2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2BD2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2C08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2C0A   Length              0005 (5)\n-6F2C0C   Flags               01 (1) 'Modification'\n-6F2C0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2C11 CENTRAL HEADER #1473  02014B50 (33639248)\n-6F2C15 Created Zip Spec      14 (20) '2.0'\n-6F2C16 Created OS            00 (0) 'MS-DOS'\n-6F2C17 Extract Zip Spec      14 (20) '2.0'\n-6F2C18 Extract OS            00 (0) 'MS-DOS'\n-6F2C19 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2C1B Compression Method    0000 (0) 'Stored'\n-6F2C1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2C21 CRC                   D85DA328 (3630015272)\n-6F2C25 Compressed Size       000007B2 (1970)\n-6F2C29 Uncompressed Size     000007B2 (1970)\n-6F2C2D Filename Length       0031 (49)\n-6F2C2F Extra Length          0009 (9)\n-6F2C31 Comment Length        0000 (0)\n-6F2C33 Disk Start            0000 (0)\n-6F2C35 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2C37 Ext File Attributes   00000000 (0)\n-6F2C3B Local Header Offset   0051DEEA (5365482)\n-6F2C3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2C3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2C70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2C72   Length              0005 (5)\n-6F2C74   Flags               01 (1) 'Modification'\n-6F2C75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2C79 CENTRAL HEADER #1474  02014B50 (33639248)\n-6F2C7D Created Zip Spec      14 (20) '2.0'\n-6F2C7E Created OS            00 (0) 'MS-DOS'\n-6F2C7F Extract Zip Spec      14 (20) '2.0'\n-6F2C80 Extract OS            00 (0) 'MS-DOS'\n-6F2C81 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2C83 Compression Method    0000 (0) 'Stored'\n-6F2C85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2C89 CRC                   B04E2D51 (2957913425)\n-6F2C8D Compressed Size       0000135D (4957)\n-6F2C91 Uncompressed Size     0000135D (4957)\n-6F2C95 Filename Length       0032 (50)\n-6F2C97 Extra Length          0009 (9)\n-6F2C99 Comment Length        0000 (0)\n-6F2C9B Disk Start            0000 (0)\n-6F2C9D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2C9F Ext File Attributes   00000000 (0)\n-6F2CA3 Local Header Offset   0051E704 (5367556)\n-6F2CA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2CA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2CD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2CDB   Length              0005 (5)\n-6F2CDD   Flags               01 (1) 'Modification'\n-6F2CDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2CE2 CENTRAL HEADER #1475  02014B50 (33639248)\n-6F2CE6 Created Zip Spec      14 (20) '2.0'\n-6F2CE7 Created OS            00 (0) 'MS-DOS'\n-6F2CE8 Extract Zip Spec      14 (20) '2.0'\n-6F2CE9 Extract OS            00 (0) 'MS-DOS'\n-6F2CEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2CEC Compression Method    0000 (0) 'Stored'\n-6F2CEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2CF2 CRC                   8CC675B8 (2361816504)\n-6F2CF6 Compressed Size       00000E5B (3675)\n-6F2CFA Uncompressed Size     00000E5B (3675)\n-6F2CFE Filename Length       002F (47)\n-6F2D00 Extra Length          0009 (9)\n-6F2D02 Comment Length        0000 (0)\n-6F2D04 Disk Start            0000 (0)\n-6F2D06 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2D08 Ext File Attributes   00000000 (0)\n-6F2D0C Local Header Offset   0051FACA (5372618)\n-6F2D10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2D10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2D3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2D41   Length              0005 (5)\n-6F2D43   Flags               01 (1) 'Modification'\n-6F2D44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2D48 CENTRAL HEADER #1476  02014B50 (33639248)\n-6F2D4C Created Zip Spec      14 (20) '2.0'\n-6F2D4D Created OS            00 (0) 'MS-DOS'\n-6F2D4E Extract Zip Spec      14 (20) '2.0'\n-6F2D4F Extract OS            00 (0) 'MS-DOS'\n-6F2D50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2D52 Compression Method    0000 (0) 'Stored'\n-6F2D54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2D58 CRC                   FF46E79C (4282836892)\n-6F2D5C Compressed Size       00000FC4 (4036)\n-6F2D60 Uncompressed Size     00000FC4 (4036)\n-6F2D64 Filename Length       0030 (48)\n-6F2D66 Extra Length          0009 (9)\n-6F2D68 Comment Length        0000 (0)\n-6F2D6A Disk Start            0000 (0)\n-6F2D6C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2D6E Ext File Attributes   00000000 (0)\n-6F2D72 Local Header Offset   0052098B (5376395)\n-6F2D76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2D76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2DA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2DA8   Length              0005 (5)\n-6F2DAA   Flags               01 (1) 'Modification'\n-6F2DAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2DAF CENTRAL HEADER #1477  02014B50 (33639248)\n-6F2DB3 Created Zip Spec      14 (20) '2.0'\n-6F2DB4 Created OS            00 (0) 'MS-DOS'\n-6F2DB5 Extract Zip Spec      14 (20) '2.0'\n-6F2DB6 Extract OS            00 (0) 'MS-DOS'\n-6F2DB7 General Purpose Flag  0000 (0)\n-6F2DB9 Compression Method    0000 (0) 'Stored'\n-6F2DBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2DBF CRC                   00000000 (0)\n-6F2DC3 Compressed Size       00000000 (0)\n-6F2DC7 Uncompressed Size     00000000 (0)\n-6F2DCB Filename Length       0029 (41)\n-6F2DCD Extra Length          0009 (9)\n-6F2DCF Comment Length        0000 (0)\n-6F2DD1 Disk Start            0000 (0)\n-6F2DD3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2DD5 Ext File Attributes   00000000 (0)\n-6F2DD9 Local Header Offset   005219B6 (5380534)\n-6F2DDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2DDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2E06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2E08   Length              0005 (5)\n-6F2E0A   Flags               01 (1) 'Modification'\n-6F2E0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2E0F CENTRAL HEADER #1478  02014B50 (33639248)\n-6F2E13 Created Zip Spec      14 (20) '2.0'\n-6F2E14 Created OS            00 (0) 'MS-DOS'\n-6F2E15 Extract Zip Spec      14 (20) '2.0'\n-6F2E16 Extract OS            00 (0) 'MS-DOS'\n-6F2E17 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2E19 Compression Method    0000 (0) 'Stored'\n-6F2E1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2E1F CRC                   6E137A75 (1846770293)\n-6F2E23 Compressed Size       000050EF (20719)\n-6F2E27 Uncompressed Size     000050EF (20719)\n-6F2E2B Filename Length       003B (59)\n-6F2E2D Extra Length          0009 (9)\n-6F2E2F Comment Length        0000 (0)\n-6F2E31 Disk Start            0000 (0)\n-6F2E33 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2E35 Ext File Attributes   00000000 (0)\n-6F2E39 Local Header Offset   00521A06 (5380614)\n-6F2E3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2E3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2E78 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2E7A   Length              0005 (5)\n-6F2E7C   Flags               01 (1) 'Modification'\n-6F2E7D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2E81 CENTRAL HEADER #1479  02014B50 (33639248)\n-6F2E85 Created Zip Spec      14 (20) '2.0'\n-6F2E86 Created OS            00 (0) 'MS-DOS'\n-6F2E87 Extract Zip Spec      14 (20) '2.0'\n-6F2E88 Extract OS            00 (0) 'MS-DOS'\n-6F2E89 General Purpose Flag  0000 (0)\n-6F2E8B Compression Method    0000 (0) 'Stored'\n-6F2E8D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2E91 CRC                   00000000 (0)\n-6F2E95 Compressed Size       00000000 (0)\n-6F2E99 Uncompressed Size     00000000 (0)\n-6F2E9D Filename Length       002B (43)\n-6F2E9F Extra Length          0009 (9)\n-6F2EA1 Comment Length        0000 (0)\n-6F2EA3 Disk Start            0000 (0)\n-6F2EA5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2EA7 Ext File Attributes   00000000 (0)\n-6F2EAB Local Header Offset   00526B67 (5401447)\n-6F2EAF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2EAF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2EDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2EDC   Length              0005 (5)\n-6F2EDE   Flags               01 (1) 'Modification'\n-6F2EDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2EE3 CENTRAL HEADER #1480  02014B50 (33639248)\n-6F2EE7 Created Zip Spec      14 (20) '2.0'\n-6F2EE8 Created OS            00 (0) 'MS-DOS'\n-6F2EE9 Extract Zip Spec      14 (20) '2.0'\n-6F2EEA Extract OS            00 (0) 'MS-DOS'\n-6F2EEB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2EED Compression Method    0000 (0) 'Stored'\n-6F2EEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2EF3 CRC                   71D1D17D (1909576061)\n-6F2EF7 Compressed Size       00002CEB (11499)\n-6F2EFB Uncompressed Size     00002CEB (11499)\n-6F2EFF Filename Length       003D (61)\n-6F2F01 Extra Length          0009 (9)\n-6F2F03 Comment Length        0000 (0)\n-6F2F05 Disk Start            0000 (0)\n-6F2F07 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2F09 Ext File Attributes   00000000 (0)\n-6F2F0D Local Header Offset   00526BB9 (5401529)\n-6F2F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2F4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2F50   Length              0005 (5)\n-6F2F52   Flags               01 (1) 'Modification'\n-6F2F53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2F57 CENTRAL HEADER #1481  02014B50 (33639248)\n-6F2F5B Created Zip Spec      14 (20) '2.0'\n-6F2F5C Created OS            00 (0) 'MS-DOS'\n-6F2F5D Extract Zip Spec      14 (20) '2.0'\n-6F2F5E Extract OS            00 (0) 'MS-DOS'\n-6F2F5F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2F61 Compression Method    0000 (0) 'Stored'\n-6F2F63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2F67 CRC                   8AF6C6B7 (2331428535)\n-6F2F6B Compressed Size       000005BB (1467)\n-6F2F6F Uncompressed Size     000005BB (1467)\n-6F2F73 Filename Length       0046 (70)\n-6F2F75 Extra Length          0009 (9)\n-6F2F77 Comment Length        0000 (0)\n-6F2F79 Disk Start            0000 (0)\n-6F2F7B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2F7D Ext File Attributes   00000000 (0)\n-6F2F81 Local Header Offset   00529918 (5413144)\n-6F2F85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F2F85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F2FCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F2FCD   Length              0005 (5)\n-6F2FCF   Flags               01 (1) 'Modification'\n-6F2FD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F2FD4 CENTRAL HEADER #1482  02014B50 (33639248)\n-6F2FD8 Created Zip Spec      14 (20) '2.0'\n-6F2FD9 Created OS            00 (0) 'MS-DOS'\n-6F2FDA Extract Zip Spec      14 (20) '2.0'\n-6F2FDB Extract OS            00 (0) 'MS-DOS'\n-6F2FDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F2FDE Compression Method    0000 (0) 'Stored'\n-6F2FE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F2FE4 CRC                   2C68D340 (745067328)\n-6F2FE8 Compressed Size       00001165 (4453)\n-6F2FEC Uncompressed Size     00001165 (4453)\n-6F2FF0 Filename Length       0049 (73)\n-6F2FF2 Extra Length          0009 (9)\n-6F2FF4 Comment Length        0000 (0)\n-6F2FF6 Disk Start            0000 (0)\n-6F2FF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F2FFA Ext File Attributes   00000000 (0)\n-6F2FFE Local Header Offset   00529F50 (5414736)\n-6F3002 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3002: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F304B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F304D   Length              0005 (5)\n-6F304F   Flags               01 (1) 'Modification'\n-6F3050   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3054 CENTRAL HEADER #1483  02014B50 (33639248)\n-6F3058 Created Zip Spec      14 (20) '2.0'\n-6F3059 Created OS            00 (0) 'MS-DOS'\n-6F305A Extract Zip Spec      14 (20) '2.0'\n-6F305B Extract OS            00 (0) 'MS-DOS'\n-6F305C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F305E Compression Method    0000 (0) 'Stored'\n-6F3060 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3064 CRC                   C14E1F5D (3243122525)\n-6F3068 Compressed Size       00000DD5 (3541)\n-6F306C Uncompressed Size     00000DD5 (3541)\n-6F3070 Filename Length       0046 (70)\n-6F3072 Extra Length          0009 (9)\n-6F3074 Comment Length        0000 (0)\n-6F3076 Disk Start            0000 (0)\n-6F3078 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F307A Ext File Attributes   00000000 (0)\n-6F307E Local Header Offset   0052B135 (5419317)\n-6F3082 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3082: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F30C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F30CA   Length              0005 (5)\n-6F30CC   Flags               01 (1) 'Modification'\n-6F30CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F30D1 CENTRAL HEADER #1484  02014B50 (33639248)\n-6F30D5 Created Zip Spec      14 (20) '2.0'\n-6F30D6 Created OS            00 (0) 'MS-DOS'\n-6F30D7 Extract Zip Spec      14 (20) '2.0'\n-6F30D8 Extract OS            00 (0) 'MS-DOS'\n-6F30D9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F30DB Compression Method    0000 (0) 'Stored'\n-6F30DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F30E1 CRC                   0593378C (93534092)\n-6F30E5 Compressed Size       000009B6 (2486)\n-6F30E9 Uncompressed Size     000009B6 (2486)\n-6F30ED Filename Length       003C (60)\n-6F30EF Extra Length          0009 (9)\n-6F30F1 Comment Length        0000 (0)\n-6F30F3 Disk Start            0000 (0)\n-6F30F5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F30F7 Ext File Attributes   00000000 (0)\n-6F30FB Local Header Offset   0052BF87 (5422983)\n-6F30FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F30FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F313B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F313D   Length              0005 (5)\n-6F313F   Flags               01 (1) 'Modification'\n-6F3140   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3144 CENTRAL HEADER #1485  02014B50 (33639248)\n-6F3148 Created Zip Spec      14 (20) '2.0'\n-6F3149 Created OS            00 (0) 'MS-DOS'\n-6F314A Extract Zip Spec      14 (20) '2.0'\n-6F314B Extract OS            00 (0) 'MS-DOS'\n-6F314C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F314E Compression Method    0000 (0) 'Stored'\n-6F3150 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3154 CRC                   B40DC99A (3020802458)\n-6F3158 Compressed Size       00000516 (1302)\n-6F315C Uncompressed Size     00000516 (1302)\n-6F3160 Filename Length       0037 (55)\n-6F3162 Extra Length          0009 (9)\n-6F3164 Comment Length        0000 (0)\n-6F3166 Disk Start            0000 (0)\n-6F3168 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F316A Ext File Attributes   00000000 (0)\n-6F316E Local Header Offset   0052C9B0 (5425584)\n-6F3172 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3172: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F31A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F31AB   Length              0005 (5)\n-6F31AD   Flags               01 (1) 'Modification'\n-6F31AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F31B2 CENTRAL HEADER #1486  02014B50 (33639248)\n-6F31B6 Created Zip Spec      14 (20) '2.0'\n-6F31B7 Created OS            00 (0) 'MS-DOS'\n-6F31B8 Extract Zip Spec      14 (20) '2.0'\n-6F31B9 Extract OS            00 (0) 'MS-DOS'\n-6F31BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F31BC Compression Method    0000 (0) 'Stored'\n-6F31BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F31C2 CRC                   27689F2C (661167916)\n-6F31C6 Compressed Size       00000AAA (2730)\n-6F31CA Uncompressed Size     00000AAA (2730)\n-6F31CE Filename Length       0041 (65)\n-6F31D0 Extra Length          0009 (9)\n-6F31D2 Comment Length        0000 (0)\n-6F31D4 Disk Start            0000 (0)\n-6F31D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F31D8 Ext File Attributes   00000000 (0)\n-6F31DC Local Header Offset   0052CF34 (5426996)\n-6F31E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F31E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3221 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3223   Length              0005 (5)\n-6F3225   Flags               01 (1) 'Modification'\n-6F3226   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F322A CENTRAL HEADER #1487  02014B50 (33639248)\n-6F322E Created Zip Spec      14 (20) '2.0'\n-6F322F Created OS            00 (0) 'MS-DOS'\n-6F3230 Extract Zip Spec      14 (20) '2.0'\n-6F3231 Extract OS            00 (0) 'MS-DOS'\n-6F3232 General Purpose Flag  0000 (0)\n-6F3234 Compression Method    0000 (0) 'Stored'\n-6F3236 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F323A CRC                   00000000 (0)\n-6F323E Compressed Size       00000000 (0)\n-6F3242 Uncompressed Size     00000000 (0)\n-6F3246 Filename Length       0032 (50)\n-6F3248 Extra Length          0009 (9)\n-6F324A Comment Length        0000 (0)\n-6F324C Disk Start            0000 (0)\n-6F324E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3250 Ext File Attributes   00000000 (0)\n-6F3254 Local Header Offset   0052DA56 (5429846)\n-6F3258 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3258: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F328A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F328C   Length              0005 (5)\n-6F328E   Flags               01 (1) 'Modification'\n-6F328F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3293 CENTRAL HEADER #1488  02014B50 (33639248)\n-6F3297 Created Zip Spec      14 (20) '2.0'\n-6F3298 Created OS            00 (0) 'MS-DOS'\n-6F3299 Extract Zip Spec      14 (20) '2.0'\n-6F329A Extract OS            00 (0) 'MS-DOS'\n-6F329B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F329D Compression Method    0000 (0) 'Stored'\n-6F329F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F32A3 CRC                   3CE2D276 (1021497974)\n-6F32A7 Compressed Size       00000B3E (2878)\n-6F32AB Uncompressed Size     00000B3E (2878)\n-6F32AF Filename Length       0048 (72)\n-6F32B1 Extra Length          0009 (9)\n-6F32B3 Comment Length        0000 (0)\n-6F32B5 Disk Start            0000 (0)\n-6F32B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F32B9 Ext File Attributes   00000000 (0)\n-6F32BD Local Header Offset   0052DAAF (5429935)\n-6F32C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F32C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3309 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F330B   Length              0005 (5)\n-6F330D   Flags               01 (1) 'Modification'\n-6F330E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3312 CENTRAL HEADER #1489  02014B50 (33639248)\n-6F3316 Created Zip Spec      14 (20) '2.0'\n-6F3317 Created OS            00 (0) 'MS-DOS'\n-6F3318 Extract Zip Spec      14 (20) '2.0'\n-6F3319 Extract OS            00 (0) 'MS-DOS'\n-6F331A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F331C Compression Method    0000 (0) 'Stored'\n-6F331E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3322 CRC                   BC922CD8 (3163696344)\n-6F3326 Compressed Size       00000890 (2192)\n-6F332A Uncompressed Size     00000890 (2192)\n-6F332E Filename Length       0045 (69)\n-6F3330 Extra Length          0009 (9)\n-6F3332 Comment Length        0000 (0)\n-6F3334 Disk Start            0000 (0)\n-6F3336 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3338 Ext File Attributes   00000000 (0)\n-6F333C Local Header Offset   0052E66C (5432940)\n-6F3340 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3340: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3385 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3387   Length              0005 (5)\n-6F3389   Flags               01 (1) 'Modification'\n-6F338A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F338E CENTRAL HEADER #1490  02014B50 (33639248)\n-6F3392 Created Zip Spec      14 (20) '2.0'\n-6F3393 Created OS            00 (0) 'MS-DOS'\n-6F3394 Extract Zip Spec      14 (20) '2.0'\n-6F3395 Extract OS            00 (0) 'MS-DOS'\n-6F3396 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3398 Compression Method    0000 (0) 'Stored'\n-6F339A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F339E CRC                   B13FDACC (2973752012)\n-6F33A2 Compressed Size       0000217A (8570)\n-6F33A6 Uncompressed Size     0000217A (8570)\n-6F33AA Filename Length       004C (76)\n-6F33AC Extra Length          0009 (9)\n-6F33AE Comment Length        0000 (0)\n-6F33B0 Disk Start            0000 (0)\n-6F33B2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F33B4 Ext File Attributes   00000000 (0)\n-6F33B8 Local Header Offset   0052EF78 (5435256)\n-6F33BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F33BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3408 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F340A   Length              0005 (5)\n-6F340C   Flags               01 (1) 'Modification'\n-6F340D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3411 CENTRAL HEADER #1491  02014B50 (33639248)\n-6F3415 Created Zip Spec      14 (20) '2.0'\n-6F3416 Created OS            00 (0) 'MS-DOS'\n-6F3417 Extract Zip Spec      14 (20) '2.0'\n-6F3418 Extract OS            00 (0) 'MS-DOS'\n-6F3419 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F341B Compression Method    0000 (0) 'Stored'\n-6F341D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3421 CRC                   2FB42746 (800335686)\n-6F3425 Compressed Size       00001E7B (7803)\n-6F3429 Uncompressed Size     00001E7B (7803)\n-6F342D Filename Length       004B (75)\n-6F342F Extra Length          0009 (9)\n-6F3431 Comment Length        0000 (0)\n-6F3433 Disk Start            0000 (0)\n-6F3435 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3437 Ext File Attributes   00000000 (0)\n-6F343B Local Header Offset   00531175 (5443957)\n-6F343F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F343F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F348A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F348C   Length              0005 (5)\n-6F348E   Flags               01 (1) 'Modification'\n-6F348F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3493 CENTRAL HEADER #1492  02014B50 (33639248)\n-6F3497 Created Zip Spec      14 (20) '2.0'\n-6F3498 Created OS            00 (0) 'MS-DOS'\n-6F3499 Extract Zip Spec      14 (20) '2.0'\n-6F349A Extract OS            00 (0) 'MS-DOS'\n-6F349B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F349D Compression Method    0000 (0) 'Stored'\n-6F349F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F34A3 CRC                   C01CAB2E (3223104302)\n-6F34A7 Compressed Size       0000247E (9342)\n-6F34AB Uncompressed Size     0000247E (9342)\n-6F34AF Filename Length       004C (76)\n-6F34B1 Extra Length          0009 (9)\n-6F34B3 Comment Length        0000 (0)\n-6F34B5 Disk Start            0000 (0)\n-6F34B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F34B9 Ext File Attributes   00000000 (0)\n-6F34BD Local Header Offset   00533072 (5451890)\n-6F34C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F34C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F350D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F350F   Length              0005 (5)\n-6F3511   Flags               01 (1) 'Modification'\n-6F3512   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3516 CENTRAL HEADER #1493  02014B50 (33639248)\n-6F351A Created Zip Spec      14 (20) '2.0'\n-6F351B Created OS            00 (0) 'MS-DOS'\n-6F351C Extract Zip Spec      14 (20) '2.0'\n-6F351D Extract OS            00 (0) 'MS-DOS'\n-6F351E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3520 Compression Method    0000 (0) 'Stored'\n-6F3522 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3526 CRC                   6C372682 (1815553666)\n-6F352A Compressed Size       000024E2 (9442)\n-6F352E Uncompressed Size     000024E2 (9442)\n-6F3532 Filename Length       004B (75)\n-6F3534 Extra Length          0009 (9)\n-6F3536 Comment Length        0000 (0)\n-6F3538 Disk Start            0000 (0)\n-6F353A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F353C Ext File Attributes   00000000 (0)\n-6F3540 Local Header Offset   00535573 (5461363)\n-6F3544 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3544: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F358F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3591   Length              0005 (5)\n-6F3593   Flags               01 (1) 'Modification'\n-6F3594   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3598 CENTRAL HEADER #1494  02014B50 (33639248)\n-6F359C Created Zip Spec      14 (20) '2.0'\n-6F359D Created OS            00 (0) 'MS-DOS'\n-6F359E Extract Zip Spec      14 (20) '2.0'\n-6F359F Extract OS            00 (0) 'MS-DOS'\n-6F35A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F35A2 Compression Method    0000 (0) 'Stored'\n-6F35A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F35A8 CRC                   7F591FA6 (2136547238)\n-6F35AC Compressed Size       0000079B (1947)\n-6F35B0 Uncompressed Size     0000079B (1947)\n-6F35B4 Filename Length       0046 (70)\n-6F35B6 Extra Length          0009 (9)\n-6F35B8 Comment Length        0000 (0)\n-6F35BA Disk Start            0000 (0)\n-6F35BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F35BE Ext File Attributes   00000000 (0)\n-6F35C2 Local Header Offset   00537AD7 (5470935)\n-6F35C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F35C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F360C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F360E   Length              0005 (5)\n-6F3610   Flags               01 (1) 'Modification'\n-6F3611   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3615 CENTRAL HEADER #1495  02014B50 (33639248)\n-6F3619 Created Zip Spec      14 (20) '2.0'\n-6F361A Created OS            00 (0) 'MS-DOS'\n-6F361B Extract Zip Spec      14 (20) '2.0'\n-6F361C Extract OS            00 (0) 'MS-DOS'\n-6F361D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F361F Compression Method    0000 (0) 'Stored'\n-6F3621 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3625 CRC                   229A16D5 (580523733)\n-6F3629 Compressed Size       00001172 (4466)\n-6F362D Uncompressed Size     00001172 (4466)\n-6F3631 Filename Length       0047 (71)\n-6F3633 Extra Length          0009 (9)\n-6F3635 Comment Length        0000 (0)\n-6F3637 Disk Start            0000 (0)\n-6F3639 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F363B Ext File Attributes   00000000 (0)\n-6F363F Local Header Offset   005382EF (5473007)\n-6F3643 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3643: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F368A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F368C   Length              0005 (5)\n-6F368E   Flags               01 (1) 'Modification'\n-6F368F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3693 CENTRAL HEADER #1496  02014B50 (33639248)\n-6F3697 Created Zip Spec      14 (20) '2.0'\n-6F3698 Created OS            00 (0) 'MS-DOS'\n-6F3699 Extract Zip Spec      14 (20) '2.0'\n-6F369A Extract OS            00 (0) 'MS-DOS'\n-6F369B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F369D Compression Method    0000 (0) 'Stored'\n-6F369F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F36A3 CRC                   6C52AC25 (1817357349)\n-6F36A7 Compressed Size       00000A2F (2607)\n-6F36AB Uncompressed Size     00000A2F (2607)\n-6F36AF Filename Length       0049 (73)\n-6F36B1 Extra Length          0009 (9)\n-6F36B3 Comment Length        0000 (0)\n-6F36B5 Disk Start            0000 (0)\n-6F36B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F36B9 Ext File Attributes   00000000 (0)\n-6F36BD Local Header Offset   005394DF (5477599)\n-6F36C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F36C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F370A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F370C   Length              0005 (5)\n-6F370E   Flags               01 (1) 'Modification'\n-6F370F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3713 CENTRAL HEADER #1497  02014B50 (33639248)\n-6F3717 Created Zip Spec      14 (20) '2.0'\n-6F3718 Created OS            00 (0) 'MS-DOS'\n-6F3719 Extract Zip Spec      14 (20) '2.0'\n-6F371A Extract OS            00 (0) 'MS-DOS'\n-6F371B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F371D Compression Method    0000 (0) 'Stored'\n-6F371F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3723 CRC                   39DE0130 (970850608)\n-6F3727 Compressed Size       00000AD0 (2768)\n-6F372B Uncompressed Size     00000AD0 (2768)\n-6F372F Filename Length       0049 (73)\n-6F3731 Extra Length          0009 (9)\n-6F3733 Comment Length        0000 (0)\n-6F3735 Disk Start            0000 (0)\n-6F3737 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3739 Ext File Attributes   00000000 (0)\n-6F373D Local Header Offset   00539F8E (5480334)\n-6F3741 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3741: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F378A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F378C   Length              0005 (5)\n-6F378E   Flags               01 (1) 'Modification'\n-6F378F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3793 CENTRAL HEADER #1498  02014B50 (33639248)\n-6F3797 Created Zip Spec      14 (20) '2.0'\n-6F3798 Created OS            00 (0) 'MS-DOS'\n-6F3799 Extract Zip Spec      14 (20) '2.0'\n-6F379A Extract OS            00 (0) 'MS-DOS'\n-6F379B General Purpose Flag  0000 (0)\n-6F379D Compression Method    0000 (0) 'Stored'\n-6F379F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F37A3 CRC                   00000000 (0)\n-6F37A7 Compressed Size       00000000 (0)\n-6F37AB Uncompressed Size     00000000 (0)\n-6F37AF Filename Length       001F (31)\n-6F37B1 Extra Length          0009 (9)\n-6F37B3 Comment Length        0000 (0)\n-6F37B5 Disk Start            0000 (0)\n-6F37B7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F37B9 Ext File Attributes   00000000 (0)\n-6F37BD Local Header Offset   0053AADE (5483230)\n-6F37C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F37C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F37E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F37E2   Length              0005 (5)\n-6F37E4   Flags               01 (1) 'Modification'\n-6F37E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F37E9 CENTRAL HEADER #1499  02014B50 (33639248)\n-6F37ED Created Zip Spec      14 (20) '2.0'\n-6F37EE Created OS            00 (0) 'MS-DOS'\n-6F37EF Extract Zip Spec      14 (20) '2.0'\n-6F37F0 Extract OS            00 (0) 'MS-DOS'\n-6F37F1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F37F3 Compression Method    0000 (0) 'Stored'\n-6F37F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F37F9 CRC                   20838DDF (545492447)\n-6F37FD Compressed Size       00000527 (1319)\n-6F3801 Uncompressed Size     00000527 (1319)\n-6F3805 Filename Length       002E (46)\n-6F3807 Extra Length          0009 (9)\n-6F3809 Comment Length        0000 (0)\n-6F380B Disk Start            0000 (0)\n-6F380D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F380F Ext File Attributes   00000000 (0)\n-6F3813 Local Header Offset   0053AB24 (5483300)\n-6F3817 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3817: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3845 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3847   Length              0005 (5)\n-6F3849   Flags               01 (1) 'Modification'\n-6F384A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F384E CENTRAL HEADER #1500  02014B50 (33639248)\n-6F3852 Created Zip Spec      14 (20) '2.0'\n-6F3853 Created OS            00 (0) 'MS-DOS'\n-6F3854 Extract Zip Spec      14 (20) '2.0'\n-6F3855 Extract OS            00 (0) 'MS-DOS'\n-6F3856 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3858 Compression Method    0000 (0) 'Stored'\n-6F385A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F385E CRC                   736BD280 (1936446080)\n-6F3862 Compressed Size       0000056A (1386)\n-6F3866 Uncompressed Size     0000056A (1386)\n-6F386A Filename Length       002F (47)\n-6F386C Extra Length          0009 (9)\n-6F386E Comment Length        0000 (0)\n-6F3870 Disk Start            0000 (0)\n-6F3872 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3874 Ext File Attributes   00000000 (0)\n-6F3878 Local Header Offset   0053B0B0 (5484720)\n-6F387C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F387C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F38AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F38AD   Length              0005 (5)\n-6F38AF   Flags               01 (1) 'Modification'\n-6F38B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F38B4 CENTRAL HEADER #1501  02014B50 (33639248)\n-6F38B8 Created Zip Spec      14 (20) '2.0'\n-6F38B9 Created OS            00 (0) 'MS-DOS'\n-6F38BA Extract Zip Spec      14 (20) '2.0'\n-6F38BB Extract OS            00 (0) 'MS-DOS'\n-6F38BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F38BE Compression Method    0000 (0) 'Stored'\n-6F38C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F38C4 CRC                   C27E840C (3263071244)\n-6F38C8 Compressed Size       000006E9 (1769)\n-6F38CC Uncompressed Size     000006E9 (1769)\n-6F38D0 Filename Length       002E (46)\n-6F38D2 Extra Length          0009 (9)\n-6F38D4 Comment Length        0000 (0)\n-6F38D6 Disk Start            0000 (0)\n-6F38D8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F38DA Ext File Attributes   00000000 (0)\n-6F38DE Local Header Offset   0053B680 (5486208)\n-6F38E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F38E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3912   Length              0005 (5)\n-6F3914   Flags               01 (1) 'Modification'\n-6F3915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3919 CENTRAL HEADER #1502  02014B50 (33639248)\n-6F391D Created Zip Spec      14 (20) '2.0'\n-6F391E Created OS            00 (0) 'MS-DOS'\n-6F391F Extract Zip Spec      14 (20) '2.0'\n-6F3920 Extract OS            00 (0) 'MS-DOS'\n-6F3921 General Purpose Flag  0000 (0)\n-6F3923 Compression Method    0000 (0) 'Stored'\n-6F3925 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3929 CRC                   00000000 (0)\n-6F392D Compressed Size       00000000 (0)\n-6F3931 Uncompressed Size     00000000 (0)\n-6F3935 Filename Length       0025 (37)\n-6F3937 Extra Length          0009 (9)\n-6F3939 Comment Length        0000 (0)\n-6F393B Disk Start            0000 (0)\n-6F393D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F393F Ext File Attributes   00000000 (0)\n-6F3943 Local Header Offset   0053BDCE (5488078)\n-6F3947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F396C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F396E   Length              0005 (5)\n-6F3970   Flags               01 (1) 'Modification'\n-6F3971   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3975 CENTRAL HEADER #1503  02014B50 (33639248)\n-6F3979 Created Zip Spec      14 (20) '2.0'\n-6F397A Created OS            00 (0) 'MS-DOS'\n-6F397B Extract Zip Spec      14 (20) '2.0'\n-6F397C Extract OS            00 (0) 'MS-DOS'\n-6F397D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F397F Compression Method    0000 (0) 'Stored'\n-6F3981 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3985 CRC                   88BB48F4 (2293975284)\n-6F3989 Compressed Size       00000509 (1289)\n-6F398D Uncompressed Size     00000509 (1289)\n-6F3991 Filename Length       0039 (57)\n-6F3993 Extra Length          0009 (9)\n-6F3995 Comment Length        0000 (0)\n-6F3997 Disk Start            0000 (0)\n-6F3999 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F399B Ext File Attributes   00000000 (0)\n-6F399F Local Header Offset   0053BE1A (5488154)\n-6F39A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F39A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F39DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F39DE   Length              0005 (5)\n-6F39E0   Flags               01 (1) 'Modification'\n-6F39E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F39E5 CENTRAL HEADER #1504  02014B50 (33639248)\n-6F39E9 Created Zip Spec      14 (20) '2.0'\n-6F39EA Created OS            00 (0) 'MS-DOS'\n-6F39EB Extract Zip Spec      14 (20) '2.0'\n-6F39EC Extract OS            00 (0) 'MS-DOS'\n-6F39ED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F39EF Compression Method    0000 (0) 'Stored'\n-6F39F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F39F5 CRC                   690E10B4 (1762529460)\n-6F39F9 Compressed Size       0000128E (4750)\n-6F39FD Uncompressed Size     0000128E (4750)\n-6F3A01 Filename Length       0039 (57)\n-6F3A03 Extra Length          0009 (9)\n-6F3A05 Comment Length        0000 (0)\n-6F3A07 Disk Start            0000 (0)\n-6F3A09 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3A0B Ext File Attributes   00000000 (0)\n-6F3A0F Local Header Offset   0053C393 (5489555)\n-6F3A13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3A13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3A4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3A4E   Length              0005 (5)\n-6F3A50   Flags               01 (1) 'Modification'\n-6F3A51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3A55 CENTRAL HEADER #1505  02014B50 (33639248)\n-6F3A59 Created Zip Spec      14 (20) '2.0'\n-6F3A5A Created OS            00 (0) 'MS-DOS'\n-6F3A5B Extract Zip Spec      14 (20) '2.0'\n-6F3A5C Extract OS            00 (0) 'MS-DOS'\n-6F3A5D General Purpose Flag  0000 (0)\n-6F3A5F Compression Method    0000 (0) 'Stored'\n-6F3A61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3A65 CRC                   00000000 (0)\n-6F3A69 Compressed Size       00000000 (0)\n-6F3A6D Uncompressed Size     00000000 (0)\n-6F3A71 Filename Length       0027 (39)\n-6F3A73 Extra Length          0009 (9)\n-6F3A75 Comment Length        0000 (0)\n-6F3A77 Disk Start            0000 (0)\n-6F3A79 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3A7B Ext File Attributes   00000000 (0)\n-6F3A7F Local Header Offset   0053D691 (5494417)\n-6F3A83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3A83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3AAA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3AAC   Length              0005 (5)\n-6F3AAE   Flags               01 (1) 'Modification'\n-6F3AAF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3AB3 CENTRAL HEADER #1506  02014B50 (33639248)\n-6F3AB7 Created Zip Spec      14 (20) '2.0'\n-6F3AB8 Created OS            00 (0) 'MS-DOS'\n-6F3AB9 Extract Zip Spec      14 (20) '2.0'\n-6F3ABA Extract OS            00 (0) 'MS-DOS'\n-6F3ABB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3ABD Compression Method    0000 (0) 'Stored'\n-6F3ABF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3AC3 CRC                   099C0616 (161220118)\n-6F3AC7 Compressed Size       00000628 (1576)\n-6F3ACB Uncompressed Size     00000628 (1576)\n-6F3ACF Filename Length       003D (61)\n-6F3AD1 Extra Length          0009 (9)\n-6F3AD3 Comment Length        0000 (0)\n-6F3AD5 Disk Start            0000 (0)\n-6F3AD7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3AD9 Ext File Attributes   00000000 (0)\n-6F3ADD Local Header Offset   0053D6DF (5494495)\n-6F3AE1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3AE1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3B1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3B20   Length              0005 (5)\n-6F3B22   Flags               01 (1) 'Modification'\n-6F3B23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3B27 CENTRAL HEADER #1507  02014B50 (33639248)\n-6F3B2B Created Zip Spec      14 (20) '2.0'\n-6F3B2C Created OS            00 (0) 'MS-DOS'\n-6F3B2D Extract Zip Spec      14 (20) '2.0'\n-6F3B2E Extract OS            00 (0) 'MS-DOS'\n-6F3B2F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3B31 Compression Method    0000 (0) 'Stored'\n-6F3B33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3B37 CRC                   1EBD34EC (515716332)\n-6F3B3B Compressed Size       00000948 (2376)\n-6F3B3F Uncompressed Size     00000948 (2376)\n-6F3B43 Filename Length       003D (61)\n-6F3B45 Extra Length          0009 (9)\n-6F3B47 Comment Length        0000 (0)\n-6F3B49 Disk Start            0000 (0)\n-6F3B4B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3B4D Ext File Attributes   00000000 (0)\n-6F3B51 Local Header Offset   0053DD7B (5496187)\n-6F3B55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3B55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3B92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3B94   Length              0005 (5)\n-6F3B96   Flags               01 (1) 'Modification'\n-6F3B97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3B9B CENTRAL HEADER #1508  02014B50 (33639248)\n-6F3B9F Created Zip Spec      14 (20) '2.0'\n-6F3BA0 Created OS            00 (0) 'MS-DOS'\n-6F3BA1 Extract Zip Spec      14 (20) '2.0'\n-6F3BA2 Extract OS            00 (0) 'MS-DOS'\n-6F3BA3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3BA5 Compression Method    0000 (0) 'Stored'\n-6F3BA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3BAB CRC                   00C8CBDF (13159391)\n-6F3BAF Compressed Size       000004EF (1263)\n-6F3BB3 Uncompressed Size     000004EF (1263)\n-6F3BB7 Filename Length       003D (61)\n-6F3BB9 Extra Length          0009 (9)\n-6F3BBB Comment Length        0000 (0)\n-6F3BBD Disk Start            0000 (0)\n-6F3BBF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3BC1 Ext File Attributes   00000000 (0)\n-6F3BC5 Local Header Offset   0053E737 (5498679)\n-6F3BC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3BC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3C06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3C08   Length              0005 (5)\n-6F3C0A   Flags               01 (1) 'Modification'\n-6F3C0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3C0F CENTRAL HEADER #1509  02014B50 (33639248)\n-6F3C13 Created Zip Spec      14 (20) '2.0'\n-6F3C14 Created OS            00 (0) 'MS-DOS'\n-6F3C15 Extract Zip Spec      14 (20) '2.0'\n-6F3C16 Extract OS            00 (0) 'MS-DOS'\n-6F3C17 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3C19 Compression Method    0000 (0) 'Stored'\n-6F3C1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3C1F CRC                   9F24457D (2669954429)\n-6F3C23 Compressed Size       0000053C (1340)\n-6F3C27 Uncompressed Size     0000053C (1340)\n-6F3C2B Filename Length       003D (61)\n-6F3C2D Extra Length          0009 (9)\n-6F3C2F Comment Length        0000 (0)\n-6F3C31 Disk Start            0000 (0)\n-6F3C33 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3C35 Ext File Attributes   00000000 (0)\n-6F3C39 Local Header Offset   0053EC9A (5500058)\n-6F3C3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3C3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3C7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3C7C   Length              0005 (5)\n-6F3C7E   Flags               01 (1) 'Modification'\n-6F3C7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3C83 CENTRAL HEADER #1510  02014B50 (33639248)\n-6F3C87 Created Zip Spec      14 (20) '2.0'\n-6F3C88 Created OS            00 (0) 'MS-DOS'\n-6F3C89 Extract Zip Spec      14 (20) '2.0'\n-6F3C8A Extract OS            00 (0) 'MS-DOS'\n-6F3C8B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3C8D Compression Method    0000 (0) 'Stored'\n-6F3C8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3C93 CRC                   E226A571 (3794183537)\n-6F3C97 Compressed Size       000006A0 (1696)\n-6F3C9B Uncompressed Size     000006A0 (1696)\n-6F3C9F Filename Length       003A (58)\n-6F3CA1 Extra Length          0009 (9)\n-6F3CA3 Comment Length        0000 (0)\n-6F3CA5 Disk Start            0000 (0)\n-6F3CA7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3CA9 Ext File Attributes   00000000 (0)\n-6F3CAD Local Header Offset   0053F24A (5501514)\n-6F3CB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3CB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3CEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3CED   Length              0005 (5)\n-6F3CEF   Flags               01 (1) 'Modification'\n-6F3CF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3CF4 CENTRAL HEADER #1511  02014B50 (33639248)\n-6F3CF8 Created Zip Spec      14 (20) '2.0'\n-6F3CF9 Created OS            00 (0) 'MS-DOS'\n-6F3CFA Extract Zip Spec      14 (20) '2.0'\n-6F3CFB Extract OS            00 (0) 'MS-DOS'\n-6F3CFC General Purpose Flag  0000 (0)\n-6F3CFE Compression Method    0000 (0) 'Stored'\n-6F3D00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3D04 CRC                   00000000 (0)\n-6F3D08 Compressed Size       00000000 (0)\n-6F3D0C Uncompressed Size     00000000 (0)\n-6F3D10 Filename Length       0027 (39)\n-6F3D12 Extra Length          0009 (9)\n-6F3D14 Comment Length        0000 (0)\n-6F3D16 Disk Start            0000 (0)\n-6F3D18 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3D1A Ext File Attributes   00000000 (0)\n-6F3D1E Local Header Offset   0053F95B (5503323)\n-6F3D22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3D22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3D49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3D4B   Length              0005 (5)\n-6F3D4D   Flags               01 (1) 'Modification'\n-6F3D4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3D52 CENTRAL HEADER #1512  02014B50 (33639248)\n-6F3D56 Created Zip Spec      14 (20) '2.0'\n-6F3D57 Created OS            00 (0) 'MS-DOS'\n-6F3D58 Extract Zip Spec      14 (20) '2.0'\n-6F3D59 Extract OS            00 (0) 'MS-DOS'\n-6F3D5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3D5C Compression Method    0000 (0) 'Stored'\n-6F3D5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3D62 CRC                   AD23A7BE (2904795070)\n-6F3D66 Compressed Size       00000CE3 (3299)\n-6F3D6A Uncompressed Size     00000CE3 (3299)\n-6F3D6E Filename Length       003E (62)\n-6F3D70 Extra Length          0009 (9)\n-6F3D72 Comment Length        0000 (0)\n-6F3D74 Disk Start            0000 (0)\n-6F3D76 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3D78 Ext File Attributes   00000000 (0)\n-6F3D7C Local Header Offset   0053F9A9 (5503401)\n-6F3D80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3D80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3DC0   Length              0005 (5)\n-6F3DC2   Flags               01 (1) 'Modification'\n-6F3DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3DC7 CENTRAL HEADER #1513  02014B50 (33639248)\n-6F3DCB Created Zip Spec      14 (20) '2.0'\n-6F3DCC Created OS            00 (0) 'MS-DOS'\n-6F3DCD Extract Zip Spec      14 (20) '2.0'\n-6F3DCE Extract OS            00 (0) 'MS-DOS'\n-6F3DCF General Purpose Flag  0000 (0)\n-6F3DD1 Compression Method    0000 (0) 'Stored'\n-6F3DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3DD7 CRC                   00000000 (0)\n-6F3DDB Compressed Size       00000000 (0)\n-6F3DDF Uncompressed Size     00000000 (0)\n-6F3DE3 Filename Length       0026 (38)\n-6F3DE5 Extra Length          0009 (9)\n-6F3DE7 Comment Length        0000 (0)\n-6F3DE9 Disk Start            0000 (0)\n-6F3DEB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3DED Ext File Attributes   00000000 (0)\n-6F3DF1 Local Header Offset   00540701 (5506817)\n-6F3DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3E1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3E1D   Length              0005 (5)\n-6F3E1F   Flags               01 (1) 'Modification'\n-6F3E20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3E24 CENTRAL HEADER #1514  02014B50 (33639248)\n-6F3E28 Created Zip Spec      14 (20) '2.0'\n-6F3E29 Created OS            00 (0) 'MS-DOS'\n-6F3E2A Extract Zip Spec      14 (20) '2.0'\n-6F3E2B Extract OS            00 (0) 'MS-DOS'\n-6F3E2C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3E2E Compression Method    0000 (0) 'Stored'\n-6F3E30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3E34 CRC                   2A48966F (709400175)\n-6F3E38 Compressed Size       000004E9 (1257)\n-6F3E3C Uncompressed Size     000004E9 (1257)\n-6F3E40 Filename Length       003B (59)\n-6F3E42 Extra Length          0009 (9)\n-6F3E44 Comment Length        0000 (0)\n-6F3E46 Disk Start            0000 (0)\n-6F3E48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3E4A Ext File Attributes   00000000 (0)\n-6F3E4E Local Header Offset   0054074E (5506894)\n-6F3E52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3E52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3E8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3E8F   Length              0005 (5)\n-6F3E91   Flags               01 (1) 'Modification'\n-6F3E92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3E96 CENTRAL HEADER #1515  02014B50 (33639248)\n-6F3E9A Created Zip Spec      14 (20) '2.0'\n-6F3E9B Created OS            00 (0) 'MS-DOS'\n-6F3E9C Extract Zip Spec      14 (20) '2.0'\n-6F3E9D Extract OS            00 (0) 'MS-DOS'\n-6F3E9E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3EA0 Compression Method    0000 (0) 'Stored'\n-6F3EA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3EA6 CRC                   8AF1B8FB (2331097339)\n-6F3EAA Compressed Size       00000EF9 (3833)\n-6F3EAE Uncompressed Size     00000EF9 (3833)\n-6F3EB2 Filename Length       003B (59)\n-6F3EB4 Extra Length          0009 (9)\n-6F3EB6 Comment Length        0000 (0)\n-6F3EB8 Disk Start            0000 (0)\n-6F3EBA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3EBC Ext File Attributes   00000000 (0)\n-6F3EC0 Local Header Offset   00540CA9 (5508265)\n-6F3EC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3EC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3EFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3F01   Length              0005 (5)\n-6F3F03   Flags               01 (1) 'Modification'\n-6F3F04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3F08 CENTRAL HEADER #1516  02014B50 (33639248)\n-6F3F0C Created Zip Spec      14 (20) '2.0'\n-6F3F0D Created OS            00 (0) 'MS-DOS'\n-6F3F0E Extract Zip Spec      14 (20) '2.0'\n-6F3F0F Extract OS            00 (0) 'MS-DOS'\n-6F3F10 General Purpose Flag  0000 (0)\n-6F3F12 Compression Method    0000 (0) 'Stored'\n-6F3F14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3F18 CRC                   00000000 (0)\n-6F3F1C Compressed Size       00000000 (0)\n-6F3F20 Uncompressed Size     00000000 (0)\n-6F3F24 Filename Length       001E (30)\n-6F3F26 Extra Length          0009 (9)\n-6F3F28 Comment Length        0000 (0)\n-6F3F2A Disk Start            0000 (0)\n-6F3F2C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3F2E Ext File Attributes   00000000 (0)\n-6F3F32 Local Header Offset   00541C14 (5512212)\n-6F3F36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3F36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3F54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3F56   Length              0005 (5)\n-6F3F58   Flags               01 (1) 'Modification'\n-6F3F59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3F5D CENTRAL HEADER #1517  02014B50 (33639248)\n-6F3F61 Created Zip Spec      14 (20) '2.0'\n-6F3F62 Created OS            00 (0) 'MS-DOS'\n-6F3F63 Extract Zip Spec      14 (20) '2.0'\n-6F3F64 Extract OS            00 (0) 'MS-DOS'\n-6F3F65 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3F67 Compression Method    0000 (0) 'Stored'\n-6F3F69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3F6D CRC                   22156101 (571826433)\n-6F3F71 Compressed Size       00000645 (1605)\n-6F3F75 Uncompressed Size     00000645 (1605)\n-6F3F79 Filename Length       0028 (40)\n-6F3F7B Extra Length          0009 (9)\n-6F3F7D Comment Length        0000 (0)\n-6F3F7F Disk Start            0000 (0)\n-6F3F81 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3F83 Ext File Attributes   00000000 (0)\n-6F3F87 Local Header Offset   00541C59 (5512281)\n-6F3F8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3F8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F3FB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F3FB5   Length              0005 (5)\n-6F3FB7   Flags               01 (1) 'Modification'\n-6F3FB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F3FBC CENTRAL HEADER #1518  02014B50 (33639248)\n-6F3FC0 Created Zip Spec      14 (20) '2.0'\n-6F3FC1 Created OS            00 (0) 'MS-DOS'\n-6F3FC2 Extract Zip Spec      14 (20) '2.0'\n-6F3FC3 Extract OS            00 (0) 'MS-DOS'\n-6F3FC4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F3FC6 Compression Method    0000 (0) 'Stored'\n-6F3FC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F3FCC CRC                   5BDCE546 (1541203270)\n-6F3FD0 Compressed Size       00000530 (1328)\n-6F3FD4 Uncompressed Size     00000530 (1328)\n-6F3FD8 Filename Length       002C (44)\n-6F3FDA Extra Length          0009 (9)\n-6F3FDC Comment Length        0000 (0)\n-6F3FDE Disk Start            0000 (0)\n-6F3FE0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F3FE2 Ext File Attributes   00000000 (0)\n-6F3FE6 Local Header Offset   005422FD (5513981)\n-6F3FEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F3FEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4018   Length              0005 (5)\n-6F401A   Flags               01 (1) 'Modification'\n-6F401B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F401F CENTRAL HEADER #1519  02014B50 (33639248)\n-6F4023 Created Zip Spec      14 (20) '2.0'\n-6F4024 Created OS            00 (0) 'MS-DOS'\n-6F4025 Extract Zip Spec      14 (20) '2.0'\n-6F4026 Extract OS            00 (0) 'MS-DOS'\n-6F4027 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4029 Compression Method    0000 (0) 'Stored'\n-6F402B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F402F CRC                   86A6B236 (2259071542)\n-6F4033 Compressed Size       0000078D (1933)\n-6F4037 Uncompressed Size     0000078D (1933)\n-6F403B Filename Length       002D (45)\n-6F403D Extra Length          0009 (9)\n-6F403F Comment Length        0000 (0)\n-6F4041 Disk Start            0000 (0)\n-6F4043 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4045 Ext File Attributes   00000000 (0)\n-6F4049 Local Header Offset   00542890 (5515408)\n-6F404D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F404D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F407A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F407C   Length              0005 (5)\n-6F407E   Flags               01 (1) 'Modification'\n-6F407F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4083 CENTRAL HEADER #1520  02014B50 (33639248)\n-6F4087 Created Zip Spec      14 (20) '2.0'\n-6F4088 Created OS            00 (0) 'MS-DOS'\n-6F4089 Extract Zip Spec      14 (20) '2.0'\n-6F408A Extract OS            00 (0) 'MS-DOS'\n-6F408B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F408D Compression Method    0000 (0) 'Stored'\n-6F408F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4093 CRC                   1B4BCF89 (457953161)\n-6F4097 Compressed Size       000004F3 (1267)\n-6F409B Uncompressed Size     000004F3 (1267)\n-6F409F Filename Length       0027 (39)\n-6F40A1 Extra Length          0009 (9)\n-6F40A3 Comment Length        0000 (0)\n-6F40A5 Disk Start            0000 (0)\n-6F40A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F40A9 Ext File Attributes   00000000 (0)\n-6F40AD Local Header Offset   00543081 (5517441)\n-6F40B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F40B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F40D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F40DA   Length              0005 (5)\n-6F40DC   Flags               01 (1) 'Modification'\n-6F40DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F40E1 CENTRAL HEADER #1521  02014B50 (33639248)\n-6F40E5 Created Zip Spec      14 (20) '2.0'\n-6F40E6 Created OS            00 (0) 'MS-DOS'\n-6F40E7 Extract Zip Spec      14 (20) '2.0'\n-6F40E8 Extract OS            00 (0) 'MS-DOS'\n-6F40E9 General Purpose Flag  0000 (0)\n-6F40EB Compression Method    0000 (0) 'Stored'\n-6F40ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F40F1 CRC                   00000000 (0)\n-6F40F5 Compressed Size       00000000 (0)\n-6F40F9 Uncompressed Size     00000000 (0)\n-6F40FD Filename Length       0027 (39)\n-6F40FF Extra Length          0009 (9)\n-6F4101 Comment Length        0000 (0)\n-6F4103 Disk Start            0000 (0)\n-6F4105 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4107 Ext File Attributes   00000000 (0)\n-6F410B Local Header Offset   005435D2 (5518802)\n-6F410F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F410F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4138   Length              0005 (5)\n-6F413A   Flags               01 (1) 'Modification'\n-6F413B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F413F CENTRAL HEADER #1522  02014B50 (33639248)\n-6F4143 Created Zip Spec      14 (20) '2.0'\n-6F4144 Created OS            00 (0) 'MS-DOS'\n-6F4145 Extract Zip Spec      14 (20) '2.0'\n-6F4146 Extract OS            00 (0) 'MS-DOS'\n-6F4147 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4149 Compression Method    0000 (0) 'Stored'\n-6F414B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F414F CRC                   DDB2647D (3719455869)\n-6F4153 Compressed Size       00000501 (1281)\n-6F4157 Uncompressed Size     00000501 (1281)\n-6F415B Filename Length       0039 (57)\n-6F415D Extra Length          0009 (9)\n-6F415F Comment Length        0000 (0)\n-6F4161 Disk Start            0000 (0)\n-6F4163 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4165 Ext File Attributes   00000000 (0)\n-6F4169 Local Header Offset   00543620 (5518880)\n-6F416D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F416D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F41A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F41A8   Length              0005 (5)\n-6F41AA   Flags               01 (1) 'Modification'\n-6F41AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F41AF CENTRAL HEADER #1523  02014B50 (33639248)\n-6F41B3 Created Zip Spec      14 (20) '2.0'\n-6F41B4 Created OS            00 (0) 'MS-DOS'\n-6F41B5 Extract Zip Spec      14 (20) '2.0'\n-6F41B6 Extract OS            00 (0) 'MS-DOS'\n-6F41B7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F41B9 Compression Method    0000 (0) 'Stored'\n-6F41BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F41BF CRC                   5D9DDBCF (1570626511)\n-6F41C3 Compressed Size       000004A5 (1189)\n-6F41C7 Uncompressed Size     000004A5 (1189)\n-6F41CB Filename Length       003D (61)\n-6F41CD Extra Length          0009 (9)\n-6F41CF Comment Length        0000 (0)\n-6F41D1 Disk Start            0000 (0)\n-6F41D3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F41D5 Ext File Attributes   00000000 (0)\n-6F41D9 Local Header Offset   00543B91 (5520273)\n-6F41DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F41DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F421A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F421C   Length              0005 (5)\n-6F421E   Flags               01 (1) 'Modification'\n-6F421F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4223 CENTRAL HEADER #1524  02014B50 (33639248)\n-6F4227 Created Zip Spec      14 (20) '2.0'\n-6F4228 Created OS            00 (0) 'MS-DOS'\n-6F4229 Extract Zip Spec      14 (20) '2.0'\n-6F422A Extract OS            00 (0) 'MS-DOS'\n-6F422B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F422D Compression Method    0000 (0) 'Stored'\n-6F422F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4233 CRC                   4453948E (1146328206)\n-6F4237 Compressed Size       0000076E (1902)\n-6F423B Uncompressed Size     0000076E (1902)\n-6F423F Filename Length       003E (62)\n-6F4241 Extra Length          0009 (9)\n-6F4243 Comment Length        0000 (0)\n-6F4245 Disk Start            0000 (0)\n-6F4247 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4249 Ext File Attributes   00000000 (0)\n-6F424D Local Header Offset   005440AA (5521578)\n-6F4251 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4251: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F428F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4291   Length              0005 (5)\n-6F4293   Flags               01 (1) 'Modification'\n-6F4294   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4298 CENTRAL HEADER #1525  02014B50 (33639248)\n-6F429C Created Zip Spec      14 (20) '2.0'\n-6F429D Created OS            00 (0) 'MS-DOS'\n-6F429E Extract Zip Spec      14 (20) '2.0'\n-6F429F Extract OS            00 (0) 'MS-DOS'\n-6F42A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F42A2 Compression Method    0000 (0) 'Stored'\n-6F42A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F42A8 CRC                   E8A94DD9 (3903409625)\n-6F42AC Compressed Size       00000420 (1056)\n-6F42B0 Uncompressed Size     00000420 (1056)\n-6F42B4 Filename Length       0038 (56)\n-6F42B6 Extra Length          0009 (9)\n-6F42B8 Comment Length        0000 (0)\n-6F42BA Disk Start            0000 (0)\n-6F42BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F42BE Ext File Attributes   00000000 (0)\n-6F42C2 Local Header Offset   0054488D (5523597)\n-6F42C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F42C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F42FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4300   Length              0005 (5)\n-6F4302   Flags               01 (1) 'Modification'\n-6F4303   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4307 CENTRAL HEADER #1526  02014B50 (33639248)\n-6F430B Created Zip Spec      14 (20) '2.0'\n-6F430C Created OS            00 (0) 'MS-DOS'\n-6F430D Extract Zip Spec      14 (20) '2.0'\n-6F430E Extract OS            00 (0) 'MS-DOS'\n-6F430F General Purpose Flag  0000 (0)\n-6F4311 Compression Method    0000 (0) 'Stored'\n-6F4313 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4317 CRC                   00000000 (0)\n-6F431B Compressed Size       00000000 (0)\n-6F431F Uncompressed Size     00000000 (0)\n-6F4323 Filename Length       002F (47)\n-6F4325 Extra Length          0009 (9)\n-6F4327 Comment Length        0000 (0)\n-6F4329 Disk Start            0000 (0)\n-6F432B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F432D Ext File Attributes   00000000 (0)\n-6F4331 Local Header Offset   00544D1C (5524764)\n-6F4335 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4335: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4364 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4366   Length              0005 (5)\n-6F4368   Flags               01 (1) 'Modification'\n-6F4369   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F436D CENTRAL HEADER #1527  02014B50 (33639248)\n-6F4371 Created Zip Spec      14 (20) '2.0'\n-6F4372 Created OS            00 (0) 'MS-DOS'\n-6F4373 Extract Zip Spec      14 (20) '2.0'\n-6F4374 Extract OS            00 (0) 'MS-DOS'\n-6F4375 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4377 Compression Method    0000 (0) 'Stored'\n-6F4379 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F437D CRC                   C68A15C0 (3330938304)\n-6F4381 Compressed Size       000011A2 (4514)\n-6F4385 Uncompressed Size     000011A2 (4514)\n-6F4389 Filename Length       0049 (73)\n-6F438B Extra Length          0009 (9)\n-6F438D Comment Length        0000 (0)\n-6F438F Disk Start            0000 (0)\n-6F4391 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4393 Ext File Attributes   00000000 (0)\n-6F4397 Local Header Offset   00544D72 (5524850)\n-6F439B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F439B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F43E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F43E6   Length              0005 (5)\n-6F43E8   Flags               01 (1) 'Modification'\n-6F43E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F43ED CENTRAL HEADER #1528  02014B50 (33639248)\n-6F43F1 Created Zip Spec      14 (20) '2.0'\n-6F43F2 Created OS            00 (0) 'MS-DOS'\n-6F43F3 Extract Zip Spec      14 (20) '2.0'\n-6F43F4 Extract OS            00 (0) 'MS-DOS'\n-6F43F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F43F7 Compression Method    0000 (0) 'Stored'\n-6F43F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F43FD CRC                   27A7C8DD (665307357)\n-6F4401 Compressed Size       00001334 (4916)\n-6F4405 Uncompressed Size     00001334 (4916)\n-6F4409 Filename Length       0046 (70)\n-6F440B Extra Length          0009 (9)\n-6F440D Comment Length        0000 (0)\n-6F440F Disk Start            0000 (0)\n-6F4411 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4413 Ext File Attributes   00000000 (0)\n-6F4417 Local Header Offset   00545F94 (5529492)\n-6F441B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F441B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4461 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4463   Length              0005 (5)\n-6F4465   Flags               01 (1) 'Modification'\n-6F4466   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F446A CENTRAL HEADER #1529  02014B50 (33639248)\n-6F446E Created Zip Spec      14 (20) '2.0'\n-6F446F Created OS            00 (0) 'MS-DOS'\n-6F4470 Extract Zip Spec      14 (20) '2.0'\n-6F4471 Extract OS            00 (0) 'MS-DOS'\n-6F4472 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4474 Compression Method    0000 (0) 'Stored'\n-6F4476 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F447A CRC                   EC1A089B (3961129115)\n-6F447E Compressed Size       00001498 (5272)\n-6F4482 Uncompressed Size     00001498 (5272)\n-6F4486 Filename Length       0045 (69)\n-6F4488 Extra Length          0009 (9)\n-6F448A Comment Length        0000 (0)\n-6F448C Disk Start            0000 (0)\n-6F448E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4490 Ext File Attributes   00000000 (0)\n-6F4494 Local Header Offset   00547345 (5534533)\n-6F4498 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4498: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F44DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F44DF   Length              0005 (5)\n-6F44E1   Flags               01 (1) 'Modification'\n-6F44E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F44E6 CENTRAL HEADER #1530  02014B50 (33639248)\n-6F44EA Created Zip Spec      14 (20) '2.0'\n-6F44EB Created OS            00 (0) 'MS-DOS'\n-6F44EC Extract Zip Spec      14 (20) '2.0'\n-6F44ED Extract OS            00 (0) 'MS-DOS'\n-6F44EE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F44F0 Compression Method    0000 (0) 'Stored'\n-6F44F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F44F6 CRC                   D99CBCB4 (3650927796)\n-6F44FA Compressed Size       00000536 (1334)\n-6F44FE Uncompressed Size     00000536 (1334)\n-6F4502 Filename Length       0049 (73)\n-6F4504 Extra Length          0009 (9)\n-6F4506 Comment Length        0000 (0)\n-6F4508 Disk Start            0000 (0)\n-6F450A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F450C Ext File Attributes   00000000 (0)\n-6F4510 Local Header Offset   00548859 (5539929)\n-6F4514 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4514: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F455D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F455F   Length              0005 (5)\n-6F4561   Flags               01 (1) 'Modification'\n-6F4562   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4566 CENTRAL HEADER #1531  02014B50 (33639248)\n-6F456A Created Zip Spec      14 (20) '2.0'\n-6F456B Created OS            00 (0) 'MS-DOS'\n-6F456C Extract Zip Spec      14 (20) '2.0'\n-6F456D Extract OS            00 (0) 'MS-DOS'\n-6F456E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4570 Compression Method    0000 (0) 'Stored'\n-6F4572 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4576 CRC                   25CC04D5 (634127573)\n-6F457A Compressed Size       00001094 (4244)\n-6F457E Uncompressed Size     00001094 (4244)\n-6F4582 Filename Length       004A (74)\n-6F4584 Extra Length          0009 (9)\n-6F4586 Comment Length        0000 (0)\n-6F4588 Disk Start            0000 (0)\n-6F458A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F458C Ext File Attributes   00000000 (0)\n-6F4590 Local Header Offset   00548E0F (5541391)\n-6F4594 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4594: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F45DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F45E0   Length              0005 (5)\n-6F45E2   Flags               01 (1) 'Modification'\n-6F45E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F45E7 CENTRAL HEADER #1532  02014B50 (33639248)\n-6F45EB Created Zip Spec      14 (20) '2.0'\n-6F45EC Created OS            00 (0) 'MS-DOS'\n-6F45ED Extract Zip Spec      14 (20) '2.0'\n-6F45EE Extract OS            00 (0) 'MS-DOS'\n-6F45EF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F45F1 Compression Method    0000 (0) 'Stored'\n-6F45F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F45F7 CRC                   ECA8B7E4 (3970480100)\n-6F45FB Compressed Size       00000545 (1349)\n-6F45FF Uncompressed Size     00000545 (1349)\n-6F4603 Filename Length       004E (78)\n-6F4605 Extra Length          0009 (9)\n-6F4607 Comment Length        0000 (0)\n-6F4609 Disk Start            0000 (0)\n-6F460B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F460D Ext File Attributes   00000000 (0)\n-6F4611 Local Header Offset   00549F24 (5545764)\n-6F4615 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4615: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4663 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4665   Length              0005 (5)\n-6F4667   Flags               01 (1) 'Modification'\n-6F4668   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F466C CENTRAL HEADER #1533  02014B50 (33639248)\n-6F4670 Created Zip Spec      14 (20) '2.0'\n-6F4671 Created OS            00 (0) 'MS-DOS'\n-6F4672 Extract Zip Spec      14 (20) '2.0'\n-6F4673 Extract OS            00 (0) 'MS-DOS'\n-6F4674 General Purpose Flag  0000 (0)\n-6F4676 Compression Method    0000 (0) 'Stored'\n-6F4678 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F467C CRC                   00000000 (0)\n-6F4680 Compressed Size       00000000 (0)\n-6F4684 Uncompressed Size     00000000 (0)\n-6F4688 Filename Length       0026 (38)\n-6F468A Extra Length          0009 (9)\n-6F468C Comment Length        0000 (0)\n-6F468E Disk Start            0000 (0)\n-6F4690 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4692 Ext File Attributes   00000000 (0)\n-6F4696 Local Header Offset   0054A4EE (5547246)\n-6F469A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F469A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F46C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F46C2   Length              0005 (5)\n-6F46C4   Flags               01 (1) 'Modification'\n-6F46C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F46C9 CENTRAL HEADER #1534  02014B50 (33639248)\n-6F46CD Created Zip Spec      14 (20) '2.0'\n-6F46CE Created OS            00 (0) 'MS-DOS'\n-6F46CF Extract Zip Spec      14 (20) '2.0'\n-6F46D0 Extract OS            00 (0) 'MS-DOS'\n-6F46D1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F46D3 Compression Method    0000 (0) 'Stored'\n-6F46D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F46D9 CRC                   F154D7FB (4048869371)\n-6F46DD Compressed Size       00000FA2 (4002)\n-6F46E1 Uncompressed Size     00000FA2 (4002)\n-6F46E5 Filename Length       0038 (56)\n-6F46E7 Extra Length          0009 (9)\n-6F46E9 Comment Length        0000 (0)\n-6F46EB Disk Start            0000 (0)\n-6F46ED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F46EF Ext File Attributes   00000000 (0)\n-6F46F3 Local Header Offset   0054A53B (5547323)\n-6F46F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F46F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F472F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4731   Length              0005 (5)\n-6F4733   Flags               01 (1) 'Modification'\n-6F4734   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4738 CENTRAL HEADER #1535  02014B50 (33639248)\n-6F473C Created Zip Spec      14 (20) '2.0'\n-6F473D Created OS            00 (0) 'MS-DOS'\n-6F473E Extract Zip Spec      14 (20) '2.0'\n-6F473F Extract OS            00 (0) 'MS-DOS'\n-6F4740 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4742 Compression Method    0000 (0) 'Stored'\n-6F4744 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4748 CRC                   126F64B9 (309290169)\n-6F474C Compressed Size       000013C0 (5056)\n-6F4750 Uncompressed Size     000013C0 (5056)\n-6F4754 Filename Length       0034 (52)\n-6F4756 Extra Length          0009 (9)\n-6F4758 Comment Length        0000 (0)\n-6F475A Disk Start            0000 (0)\n-6F475C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F475E Ext File Attributes   00000000 (0)\n-6F4762 Local Header Offset   0054B54C (5551436)\n-6F4766 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4766: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F479A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F479C   Length              0005 (5)\n-6F479E   Flags               01 (1) 'Modification'\n-6F479F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F47A3 CENTRAL HEADER #1536  02014B50 (33639248)\n-6F47A7 Created Zip Spec      14 (20) '2.0'\n-6F47A8 Created OS            00 (0) 'MS-DOS'\n-6F47A9 Extract Zip Spec      14 (20) '2.0'\n-6F47AA Extract OS            00 (0) 'MS-DOS'\n-6F47AB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F47AD Compression Method    0000 (0) 'Stored'\n-6F47AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F47B3 CRC                   DE2F0B5D (3727625053)\n-6F47B7 Compressed Size       000004EB (1259)\n-6F47BB Uncompressed Size     000004EB (1259)\n-6F47BF Filename Length       0038 (56)\n-6F47C1 Extra Length          0009 (9)\n-6F47C3 Comment Length        0000 (0)\n-6F47C5 Disk Start            0000 (0)\n-6F47C7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F47C9 Ext File Attributes   00000000 (0)\n-6F47CD Local Header Offset   0054C977 (5556599)\n-6F47D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F47D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4809 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F480B   Length              0005 (5)\n-6F480D   Flags               01 (1) 'Modification'\n-6F480E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4812 CENTRAL HEADER #1537  02014B50 (33639248)\n-6F4816 Created Zip Spec      14 (20) '2.0'\n-6F4817 Created OS            00 (0) 'MS-DOS'\n-6F4818 Extract Zip Spec      14 (20) '2.0'\n-6F4819 Extract OS            00 (0) 'MS-DOS'\n-6F481A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F481C Compression Method    0000 (0) 'Stored'\n-6F481E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4822 CRC                   91721BC5 (2440174533)\n-6F4826 Compressed Size       0000103F (4159)\n-6F482A Uncompressed Size     0000103F (4159)\n-6F482E Filename Length       0039 (57)\n-6F4830 Extra Length          0009 (9)\n-6F4832 Comment Length        0000 (0)\n-6F4834 Disk Start            0000 (0)\n-6F4836 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4838 Ext File Attributes   00000000 (0)\n-6F483C Local Header Offset   0054CED1 (5557969)\n-6F4840 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4840: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4879 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F487B   Length              0005 (5)\n-6F487D   Flags               01 (1) 'Modification'\n-6F487E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4882 CENTRAL HEADER #1538  02014B50 (33639248)\n-6F4886 Created Zip Spec      14 (20) '2.0'\n-6F4887 Created OS            00 (0) 'MS-DOS'\n-6F4888 Extract Zip Spec      14 (20) '2.0'\n-6F4889 Extract OS            00 (0) 'MS-DOS'\n-6F488A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F488C Compression Method    0000 (0) 'Stored'\n-6F488E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4892 CRC                   6E31EAB9 (1848765113)\n-6F4896 Compressed Size       000004FA (1274)\n-6F489A Uncompressed Size     000004FA (1274)\n-6F489E Filename Length       003D (61)\n-6F48A0 Extra Length          0009 (9)\n-6F48A2 Comment Length        0000 (0)\n-6F48A4 Disk Start            0000 (0)\n-6F48A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F48A8 Ext File Attributes   00000000 (0)\n-6F48AC Local Header Offset   0054DF80 (5562240)\n-6F48B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F48B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F48ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F48EF   Length              0005 (5)\n-6F48F1   Flags               01 (1) 'Modification'\n-6F48F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F48F6 CENTRAL HEADER #1539  02014B50 (33639248)\n-6F48FA Created Zip Spec      14 (20) '2.0'\n-6F48FB Created OS            00 (0) 'MS-DOS'\n-6F48FC Extract Zip Spec      14 (20) '2.0'\n-6F48FD Extract OS            00 (0) 'MS-DOS'\n-6F48FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4900 Compression Method    0000 (0) 'Stored'\n-6F4902 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4906 CRC                   9A81C390 (2592195472)\n-6F490A Compressed Size       0000109F (4255)\n-6F490E Uncompressed Size     0000109F (4255)\n-6F4912 Filename Length       0035 (53)\n-6F4914 Extra Length          0009 (9)\n-6F4916 Comment Length        0000 (0)\n-6F4918 Disk Start            0000 (0)\n-6F491A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F491C Ext File Attributes   00000000 (0)\n-6F4920 Local Header Offset   0054E4EE (5563630)\n-6F4924 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4924: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4959 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F495B   Length              0005 (5)\n-6F495D   Flags               01 (1) 'Modification'\n-6F495E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4962 CENTRAL HEADER #1540  02014B50 (33639248)\n-6F4966 Created Zip Spec      14 (20) '2.0'\n-6F4967 Created OS            00 (0) 'MS-DOS'\n-6F4968 Extract Zip Spec      14 (20) '2.0'\n-6F4969 Extract OS            00 (0) 'MS-DOS'\n-6F496A General Purpose Flag  0000 (0)\n-6F496C Compression Method    0000 (0) 'Stored'\n-6F496E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4972 CRC                   00000000 (0)\n-6F4976 Compressed Size       00000000 (0)\n-6F497A Uncompressed Size     00000000 (0)\n-6F497E Filename Length       0021 (33)\n-6F4980 Extra Length          0009 (9)\n-6F4982 Comment Length        0000 (0)\n-6F4984 Disk Start            0000 (0)\n-6F4986 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4988 Ext File Attributes   00000000 (0)\n-6F498C Local Header Offset   0054F5F9 (5567993)\n-6F4990 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4990: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F49B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F49B3   Length              0005 (5)\n-6F49B5   Flags               01 (1) 'Modification'\n-6F49B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F49BA CENTRAL HEADER #1541  02014B50 (33639248)\n-6F49BE Created Zip Spec      14 (20) '2.0'\n-6F49BF Created OS            00 (0) 'MS-DOS'\n-6F49C0 Extract Zip Spec      14 (20) '2.0'\n-6F49C1 Extract OS            00 (0) 'MS-DOS'\n-6F49C2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F49C4 Compression Method    0000 (0) 'Stored'\n-6F49C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F49CA CRC                   1A03F22E (436466222)\n-6F49CE Compressed Size       000004DF (1247)\n-6F49D2 Uncompressed Size     000004DF (1247)\n-6F49D6 Filename Length       0033 (51)\n-6F49D8 Extra Length          0009 (9)\n-6F49DA Comment Length        0000 (0)\n-6F49DC Disk Start            0000 (0)\n-6F49DE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F49E0 Ext File Attributes   00000000 (0)\n-6F49E4 Local Header Offset   0054F641 (5568065)\n-6F49E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F49E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4A1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4A1D   Length              0005 (5)\n-6F4A1F   Flags               01 (1) 'Modification'\n-6F4A20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4A24 CENTRAL HEADER #1542  02014B50 (33639248)\n-6F4A28 Created Zip Spec      14 (20) '2.0'\n-6F4A29 Created OS            00 (0) 'MS-DOS'\n-6F4A2A Extract Zip Spec      14 (20) '2.0'\n-6F4A2B Extract OS            00 (0) 'MS-DOS'\n-6F4A2C General Purpose Flag  0000 (0)\n-6F4A2E Compression Method    0000 (0) 'Stored'\n-6F4A30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4A34 CRC                   00000000 (0)\n-6F4A38 Compressed Size       00000000 (0)\n-6F4A3C Uncompressed Size     00000000 (0)\n-6F4A40 Filename Length       0027 (39)\n-6F4A42 Extra Length          0009 (9)\n-6F4A44 Comment Length        0000 (0)\n-6F4A46 Disk Start            0000 (0)\n-6F4A48 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4A4A Ext File Attributes   00000000 (0)\n-6F4A4E Local Header Offset   0054FB8A (5569418)\n-6F4A52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4A52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4A79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4A7B   Length              0005 (5)\n-6F4A7D   Flags               01 (1) 'Modification'\n-6F4A7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4A82 CENTRAL HEADER #1543  02014B50 (33639248)\n-6F4A86 Created Zip Spec      14 (20) '2.0'\n-6F4A87 Created OS            00 (0) 'MS-DOS'\n-6F4A88 Extract Zip Spec      14 (20) '2.0'\n-6F4A89 Extract OS            00 (0) 'MS-DOS'\n-6F4A8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4A8C Compression Method    0000 (0) 'Stored'\n-6F4A8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4A92 CRC                   DBE899CA (3689454026)\n-6F4A96 Compressed Size       00002E6D (11885)\n-6F4A9A Uncompressed Size     00002E6D (11885)\n-6F4A9E Filename Length       0037 (55)\n-6F4AA0 Extra Length          0009 (9)\n-6F4AA2 Comment Length        0000 (0)\n-6F4AA4 Disk Start            0000 (0)\n-6F4AA6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4AA8 Ext File Attributes   00000000 (0)\n-6F4AAC Local Header Offset   0054FBD8 (5569496)\n-6F4AB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4AB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4AE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4AE9   Length              0005 (5)\n-6F4AEB   Flags               01 (1) 'Modification'\n-6F4AEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4AF0 CENTRAL HEADER #1544  02014B50 (33639248)\n-6F4AF4 Created Zip Spec      14 (20) '2.0'\n-6F4AF5 Created OS            00 (0) 'MS-DOS'\n-6F4AF6 Extract Zip Spec      14 (20) '2.0'\n-6F4AF7 Extract OS            00 (0) 'MS-DOS'\n-6F4AF8 General Purpose Flag  0000 (0)\n-6F4AFA Compression Method    0000 (0) 'Stored'\n-6F4AFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4B00 CRC                   00000000 (0)\n-6F4B04 Compressed Size       00000000 (0)\n-6F4B08 Uncompressed Size     00000000 (0)\n-6F4B0C Filename Length       0029 (41)\n-6F4B0E Extra Length          0009 (9)\n-6F4B10 Comment Length        0000 (0)\n-6F4B12 Disk Start            0000 (0)\n-6F4B14 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4B16 Ext File Attributes   00000000 (0)\n-6F4B1A Local Header Offset   00552AB3 (5581491)\n-6F4B1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4B1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4B47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4B49   Length              0005 (5)\n-6F4B4B   Flags               01 (1) 'Modification'\n-6F4B4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4B50 CENTRAL HEADER #1545  02014B50 (33639248)\n-6F4B54 Created Zip Spec      14 (20) '2.0'\n-6F4B55 Created OS            00 (0) 'MS-DOS'\n-6F4B56 Extract Zip Spec      14 (20) '2.0'\n-6F4B57 Extract OS            00 (0) 'MS-DOS'\n-6F4B58 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4B5A Compression Method    0000 (0) 'Stored'\n-6F4B5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4B60 CRC                   91FB3CEA (2449161450)\n-6F4B64 Compressed Size       00000518 (1304)\n-6F4B68 Uncompressed Size     00000518 (1304)\n-6F4B6C Filename Length       0032 (50)\n-6F4B6E Extra Length          0009 (9)\n-6F4B70 Comment Length        0000 (0)\n-6F4B72 Disk Start            0000 (0)\n-6F4B74 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4B76 Ext File Attributes   00000000 (0)\n-6F4B7A Local Header Offset   00552B03 (5581571)\n-6F4B7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4B7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4BB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4BB2   Length              0005 (5)\n-6F4BB4   Flags               01 (1) 'Modification'\n-6F4BB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4BB9 CENTRAL HEADER #1546  02014B50 (33639248)\n-6F4BBD Created Zip Spec      14 (20) '2.0'\n-6F4BBE Created OS            00 (0) 'MS-DOS'\n-6F4BBF Extract Zip Spec      14 (20) '2.0'\n-6F4BC0 Extract OS            00 (0) 'MS-DOS'\n-6F4BC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4BC3 Compression Method    0000 (0) 'Stored'\n-6F4BC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4BC9 CRC                   492B287D (1227565181)\n-6F4BCD Compressed Size       00000FCE (4046)\n-6F4BD1 Uncompressed Size     00000FCE (4046)\n-6F4BD5 Filename Length       0042 (66)\n-6F4BD7 Extra Length          0009 (9)\n-6F4BD9 Comment Length        0000 (0)\n-6F4BDB Disk Start            0000 (0)\n-6F4BDD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4BDF Ext File Attributes   00000000 (0)\n-6F4BE3 Local Header Offset   00553084 (5582980)\n-6F4BE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4BE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4C29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4C2B   Length              0005 (5)\n-6F4C2D   Flags               01 (1) 'Modification'\n-6F4C2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4C32 CENTRAL HEADER #1547  02014B50 (33639248)\n-6F4C36 Created Zip Spec      14 (20) '2.0'\n-6F4C37 Created OS            00 (0) 'MS-DOS'\n-6F4C38 Extract Zip Spec      14 (20) '2.0'\n-6F4C39 Extract OS            00 (0) 'MS-DOS'\n-6F4C3A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4C3C Compression Method    0000 (0) 'Stored'\n-6F4C3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4C42 CRC                   EB3BD2B9 (3946566329)\n-6F4C46 Compressed Size       0000169D (5789)\n-6F4C4A Uncompressed Size     0000169D (5789)\n-6F4C4E Filename Length       0039 (57)\n-6F4C50 Extra Length          0009 (9)\n-6F4C52 Comment Length        0000 (0)\n-6F4C54 Disk Start            0000 (0)\n-6F4C56 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4C58 Ext File Attributes   00000000 (0)\n-6F4C5C Local Header Offset   005540CB (5587147)\n-6F4C60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4C60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4C99 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4C9B   Length              0005 (5)\n-6F4C9D   Flags               01 (1) 'Modification'\n-6F4C9E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4CA2 CENTRAL HEADER #1548  02014B50 (33639248)\n-6F4CA6 Created Zip Spec      14 (20) '2.0'\n-6F4CA7 Created OS            00 (0) 'MS-DOS'\n-6F4CA8 Extract Zip Spec      14 (20) '2.0'\n-6F4CA9 Extract OS            00 (0) 'MS-DOS'\n-6F4CAA General Purpose Flag  0000 (0)\n-6F4CAC Compression Method    0000 (0) 'Stored'\n-6F4CAE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4CB2 CRC                   00000000 (0)\n-6F4CB6 Compressed Size       00000000 (0)\n-6F4CBA Uncompressed Size     00000000 (0)\n-6F4CBE Filename Length       0031 (49)\n-6F4CC0 Extra Length          0009 (9)\n-6F4CC2 Comment Length        0000 (0)\n-6F4CC4 Disk Start            0000 (0)\n-6F4CC6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4CC8 Ext File Attributes   00000000 (0)\n-6F4CCC Local Header Offset   005557D8 (5593048)\n-6F4CD0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4CD0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4D01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4D03   Length              0005 (5)\n-6F4D05   Flags               01 (1) 'Modification'\n-6F4D06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4D0A CENTRAL HEADER #1549  02014B50 (33639248)\n-6F4D0E Created Zip Spec      14 (20) '2.0'\n-6F4D0F Created OS            00 (0) 'MS-DOS'\n-6F4D10 Extract Zip Spec      14 (20) '2.0'\n-6F4D11 Extract OS            00 (0) 'MS-DOS'\n-6F4D12 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4D14 Compression Method    0000 (0) 'Stored'\n-6F4D16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4D1A CRC                   74498D23 (1950977315)\n-6F4D1E Compressed Size       00000738 (1848)\n-6F4D22 Uncompressed Size     00000738 (1848)\n-6F4D26 Filename Length       0048 (72)\n-6F4D28 Extra Length          0009 (9)\n-6F4D2A Comment Length        0000 (0)\n-6F4D2C Disk Start            0000 (0)\n-6F4D2E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4D30 Ext File Attributes   00000000 (0)\n-6F4D34 Local Header Offset   00555830 (5593136)\n-6F4D38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4D38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4D80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4D82   Length              0005 (5)\n-6F4D84   Flags               01 (1) 'Modification'\n-6F4D85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4D89 CENTRAL HEADER #1550  02014B50 (33639248)\n-6F4D8D Created Zip Spec      14 (20) '2.0'\n-6F4D8E Created OS            00 (0) 'MS-DOS'\n-6F4D8F Extract Zip Spec      14 (20) '2.0'\n-6F4D90 Extract OS            00 (0) 'MS-DOS'\n-6F4D91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4D93 Compression Method    0000 (0) 'Stored'\n-6F4D95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4D99 CRC                   C2DA4C0E (3269086222)\n-6F4D9D Compressed Size       00000581 (1409)\n-6F4DA1 Uncompressed Size     00000581 (1409)\n-6F4DA5 Filename Length       0047 (71)\n-6F4DA7 Extra Length          0009 (9)\n-6F4DA9 Comment Length        0000 (0)\n-6F4DAB Disk Start            0000 (0)\n-6F4DAD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4DAF Ext File Attributes   00000000 (0)\n-6F4DB3 Local Header Offset   00555FE7 (5595111)\n-6F4DB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4DB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4DFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4E00   Length              0005 (5)\n-6F4E02   Flags               01 (1) 'Modification'\n-6F4E03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4E07 CENTRAL HEADER #1551  02014B50 (33639248)\n-6F4E0B Created Zip Spec      14 (20) '2.0'\n-6F4E0C Created OS            00 (0) 'MS-DOS'\n-6F4E0D Extract Zip Spec      14 (20) '2.0'\n-6F4E0E Extract OS            00 (0) 'MS-DOS'\n-6F4E0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4E11 Compression Method    0000 (0) 'Stored'\n-6F4E13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4E17 CRC                   A166D974 (2707872116)\n-6F4E1B Compressed Size       00000E50 (3664)\n-6F4E1F Uncompressed Size     00000E50 (3664)\n-6F4E23 Filename Length       0047 (71)\n-6F4E25 Extra Length          0009 (9)\n-6F4E27 Comment Length        0000 (0)\n-6F4E29 Disk Start            0000 (0)\n-6F4E2B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4E2D Ext File Attributes   00000000 (0)\n-6F4E31 Local Header Offset   005565E6 (5596646)\n-6F4E35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4E35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4E7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4E7E   Length              0005 (5)\n-6F4E80   Flags               01 (1) 'Modification'\n-6F4E81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4E85 CENTRAL HEADER #1552  02014B50 (33639248)\n-6F4E89 Created Zip Spec      14 (20) '2.0'\n-6F4E8A Created OS            00 (0) 'MS-DOS'\n-6F4E8B Extract Zip Spec      14 (20) '2.0'\n-6F4E8C Extract OS            00 (0) 'MS-DOS'\n-6F4E8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4E8F Compression Method    0000 (0) 'Stored'\n-6F4E91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4E95 CRC                   F227F3D5 (4062704597)\n-6F4E99 Compressed Size       0000107D (4221)\n-6F4E9D Uncompressed Size     0000107D (4221)\n-6F4EA1 Filename Length       0046 (70)\n-6F4EA3 Extra Length          0009 (9)\n-6F4EA5 Comment Length        0000 (0)\n-6F4EA7 Disk Start            0000 (0)\n-6F4EA9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4EAB Ext File Attributes   00000000 (0)\n-6F4EAF Local Header Offset   005574B4 (5600436)\n-6F4EB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4EB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4EF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4EFB   Length              0005 (5)\n-6F4EFD   Flags               01 (1) 'Modification'\n-6F4EFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4F02 CENTRAL HEADER #1553  02014B50 (33639248)\n-6F4F06 Created Zip Spec      14 (20) '2.0'\n-6F4F07 Created OS            00 (0) 'MS-DOS'\n-6F4F08 Extract Zip Spec      14 (20) '2.0'\n-6F4F09 Extract OS            00 (0) 'MS-DOS'\n-6F4F0A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4F0C Compression Method    0000 (0) 'Stored'\n-6F4F0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4F12 CRC                   F5209683 (4112553603)\n-6F4F16 Compressed Size       00001210 (4624)\n-6F4F1A Uncompressed Size     00001210 (4624)\n-6F4F1E Filename Length       0049 (73)\n-6F4F20 Extra Length          0009 (9)\n-6F4F22 Comment Length        0000 (0)\n-6F4F24 Disk Start            0000 (0)\n-6F4F26 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4F28 Ext File Attributes   00000000 (0)\n-6F4F2C Local Header Offset   005585AE (5604782)\n-6F4F30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4F30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4F79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4F7B   Length              0005 (5)\n-6F4F7D   Flags               01 (1) 'Modification'\n-6F4F7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4F82 CENTRAL HEADER #1554  02014B50 (33639248)\n-6F4F86 Created Zip Spec      14 (20) '2.0'\n-6F4F87 Created OS            00 (0) 'MS-DOS'\n-6F4F88 Extract Zip Spec      14 (20) '2.0'\n-6F4F89 Extract OS            00 (0) 'MS-DOS'\n-6F4F8A General Purpose Flag  0000 (0)\n-6F4F8C Compression Method    0000 (0) 'Stored'\n-6F4F8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4F92 CRC                   00000000 (0)\n-6F4F96 Compressed Size       00000000 (0)\n-6F4F9A Uncompressed Size     00000000 (0)\n-6F4F9E Filename Length       0024 (36)\n-6F4FA0 Extra Length          0009 (9)\n-6F4FA2 Comment Length        0000 (0)\n-6F4FA4 Disk Start            0000 (0)\n-6F4FA6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F4FA8 Ext File Attributes   00000000 (0)\n-6F4FAC Local Header Offset   0055983E (5609534)\n-6F4FB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F4FB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F4FD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F4FD6   Length              0005 (5)\n-6F4FD8   Flags               01 (1) 'Modification'\n-6F4FD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F4FDD CENTRAL HEADER #1555  02014B50 (33639248)\n-6F4FE1 Created Zip Spec      14 (20) '2.0'\n-6F4FE2 Created OS            00 (0) 'MS-DOS'\n-6F4FE3 Extract Zip Spec      14 (20) '2.0'\n-6F4FE4 Extract OS            00 (0) 'MS-DOS'\n-6F4FE5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F4FE7 Compression Method    0000 (0) 'Stored'\n-6F4FE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F4FED CRC                   A7E27376 (2816635766)\n-6F4FF1 Compressed Size       0000076D (1901)\n-6F4FF5 Uncompressed Size     0000076D (1901)\n-6F4FF9 Filename Length       0038 (56)\n-6F4FFB Extra Length          0009 (9)\n-6F4FFD Comment Length        0000 (0)\n-6F4FFF Disk Start            0000 (0)\n-6F5001 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5003 Ext File Attributes   00000000 (0)\n-6F5007 Local Header Offset   00559889 (5609609)\n-6F500B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F500B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5043 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5045   Length              0005 (5)\n-6F5047   Flags               01 (1) 'Modification'\n-6F5048   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F504C CENTRAL HEADER #1556  02014B50 (33639248)\n-6F5050 Created Zip Spec      14 (20) '2.0'\n-6F5051 Created OS            00 (0) 'MS-DOS'\n-6F5052 Extract Zip Spec      14 (20) '2.0'\n-6F5053 Extract OS            00 (0) 'MS-DOS'\n-6F5054 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5056 Compression Method    0000 (0) 'Stored'\n-6F5058 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F505C CRC                   28520740 (676464448)\n-6F5060 Compressed Size       00000910 (2320)\n-6F5064 Uncompressed Size     00000910 (2320)\n-6F5068 Filename Length       0047 (71)\n-6F506A Extra Length          0009 (9)\n-6F506C Comment Length        0000 (0)\n-6F506E Disk Start            0000 (0)\n-6F5070 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5072 Ext File Attributes   00000000 (0)\n-6F5076 Local Header Offset   0055A065 (5611621)\n-6F507A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F507A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F50C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F50C3   Length              0005 (5)\n-6F50C5   Flags               01 (1) 'Modification'\n-6F50C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F50CA CENTRAL HEADER #1557  02014B50 (33639248)\n-6F50CE Created Zip Spec      14 (20) '2.0'\n-6F50CF Created OS            00 (0) 'MS-DOS'\n-6F50D0 Extract Zip Spec      14 (20) '2.0'\n-6F50D1 Extract OS            00 (0) 'MS-DOS'\n-6F50D2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F50D4 Compression Method    0000 (0) 'Stored'\n-6F50D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F50DA CRC                   C60919F1 (3322485233)\n-6F50DE Compressed Size       00002E58 (11864)\n-6F50E2 Uncompressed Size     00002E58 (11864)\n-6F50E6 Filename Length       0037 (55)\n-6F50E8 Extra Length          0009 (9)\n-6F50EA Comment Length        0000 (0)\n-6F50EC Disk Start            0000 (0)\n-6F50EE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F50F0 Ext File Attributes   00000000 (0)\n-6F50F4 Local Header Offset   0055A9F3 (5614067)\n-6F50F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F50F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F512F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5131   Length              0005 (5)\n-6F5133   Flags               01 (1) 'Modification'\n-6F5134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5138 CENTRAL HEADER #1558  02014B50 (33639248)\n-6F513C Created Zip Spec      14 (20) '2.0'\n-6F513D Created OS            00 (0) 'MS-DOS'\n-6F513E Extract Zip Spec      14 (20) '2.0'\n-6F513F Extract OS            00 (0) 'MS-DOS'\n-6F5140 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5142 Compression Method    0000 (0) 'Stored'\n-6F5144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5148 CRC                   C68A09E8 (3330935272)\n-6F514C Compressed Size       00000F96 (3990)\n-6F5150 Uncompressed Size     00000F96 (3990)\n-6F5154 Filename Length       0036 (54)\n-6F5156 Extra Length          0009 (9)\n-6F5158 Comment Length        0000 (0)\n-6F515A Disk Start            0000 (0)\n-6F515C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F515E Ext File Attributes   00000000 (0)\n-6F5162 Local Header Offset   0055D8B9 (5626041)\n-6F5166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F519C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F519E   Length              0005 (5)\n-6F51A0   Flags               01 (1) 'Modification'\n-6F51A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F51A5 CENTRAL HEADER #1559  02014B50 (33639248)\n-6F51A9 Created Zip Spec      14 (20) '2.0'\n-6F51AA Created OS            00 (0) 'MS-DOS'\n-6F51AB Extract Zip Spec      14 (20) '2.0'\n-6F51AC Extract OS            00 (0) 'MS-DOS'\n-6F51AD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F51AF Compression Method    0000 (0) 'Stored'\n-6F51B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F51B5 CRC                   AE59B827 (2925115431)\n-6F51B9 Compressed Size       00001018 (4120)\n-6F51BD Uncompressed Size     00001018 (4120)\n-6F51C1 Filename Length       0039 (57)\n-6F51C3 Extra Length          0009 (9)\n-6F51C5 Comment Length        0000 (0)\n-6F51C7 Disk Start            0000 (0)\n-6F51C9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F51CB Ext File Attributes   00000000 (0)\n-6F51CF Local Header Offset   0055E8BC (5630140)\n-6F51D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F51D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F520C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F520E   Length              0005 (5)\n-6F5210   Flags               01 (1) 'Modification'\n-6F5211   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5215 CENTRAL HEADER #1560  02014B50 (33639248)\n-6F5219 Created Zip Spec      14 (20) '2.0'\n-6F521A Created OS            00 (0) 'MS-DOS'\n-6F521B Extract Zip Spec      14 (20) '2.0'\n-6F521C Extract OS            00 (0) 'MS-DOS'\n-6F521D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F521F Compression Method    0000 (0) 'Stored'\n-6F5221 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5225 CRC                   C397571B (3281475355)\n-6F5229 Compressed Size       00001058 (4184)\n-6F522D Uncompressed Size     00001058 (4184)\n-6F5231 Filename Length       0035 (53)\n-6F5233 Extra Length          0009 (9)\n-6F5235 Comment Length        0000 (0)\n-6F5237 Disk Start            0000 (0)\n-6F5239 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F523B Ext File Attributes   00000000 (0)\n-6F523F Local Header Offset   0055F944 (5634372)\n-6F5243 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5243: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5278 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F527A   Length              0005 (5)\n-6F527C   Flags               01 (1) 'Modification'\n-6F527D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5281 CENTRAL HEADER #1561  02014B50 (33639248)\n-6F5285 Created Zip Spec      14 (20) '2.0'\n-6F5286 Created OS            00 (0) 'MS-DOS'\n-6F5287 Extract Zip Spec      14 (20) '2.0'\n-6F5288 Extract OS            00 (0) 'MS-DOS'\n-6F5289 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F528B Compression Method    0000 (0) 'Stored'\n-6F528D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5291 CRC                   F1D2C098 (4057120920)\n-6F5295 Compressed Size       00001C03 (7171)\n-6F5299 Uncompressed Size     00001C03 (7171)\n-6F529D Filename Length       0037 (55)\n-6F529F Extra Length          0009 (9)\n-6F52A1 Comment Length        0000 (0)\n-6F52A3 Disk Start            0000 (0)\n-6F52A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F52A7 Ext File Attributes   00000000 (0)\n-6F52AB Local Header Offset   00560A08 (5638664)\n-6F52AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F52AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F52E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F52E8   Length              0005 (5)\n-6F52EA   Flags               01 (1) 'Modification'\n-6F52EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F52EF CENTRAL HEADER #1562  02014B50 (33639248)\n-6F52F3 Created Zip Spec      14 (20) '2.0'\n-6F52F4 Created OS            00 (0) 'MS-DOS'\n-6F52F5 Extract Zip Spec      14 (20) '2.0'\n-6F52F6 Extract OS            00 (0) 'MS-DOS'\n-6F52F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F52F9 Compression Method    0000 (0) 'Stored'\n-6F52FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F52FF CRC                   8ED687AA (2396424106)\n-6F5303 Compressed Size       00000C9B (3227)\n-6F5307 Uncompressed Size     00000C9B (3227)\n-6F530B Filename Length       0038 (56)\n-6F530D Extra Length          0009 (9)\n-6F530F Comment Length        0000 (0)\n-6F5311 Disk Start            0000 (0)\n-6F5313 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5315 Ext File Attributes   00000000 (0)\n-6F5319 Local Header Offset   00562679 (5645945)\n-6F531D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F531D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5355 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5357   Length              0005 (5)\n-6F5359   Flags               01 (1) 'Modification'\n-6F535A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F535E CENTRAL HEADER #1563  02014B50 (33639248)\n-6F5362 Created Zip Spec      14 (20) '2.0'\n-6F5363 Created OS            00 (0) 'MS-DOS'\n-6F5364 Extract Zip Spec      14 (20) '2.0'\n-6F5365 Extract OS            00 (0) 'MS-DOS'\n-6F5366 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5368 Compression Method    0000 (0) 'Stored'\n-6F536A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F536E CRC                   3E4334ED (1044591853)\n-6F5372 Compressed Size       0000066A (1642)\n-6F5376 Uncompressed Size     0000066A (1642)\n-6F537A Filename Length       003E (62)\n-6F537C Extra Length          0009 (9)\n-6F537E Comment Length        0000 (0)\n-6F5380 Disk Start            0000 (0)\n-6F5382 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5384 Ext File Attributes   00000000 (0)\n-6F5388 Local Header Offset   00563383 (5649283)\n-6F538C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F538C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F53CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F53CC   Length              0005 (5)\n-6F53CE   Flags               01 (1) 'Modification'\n-6F53CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F53D3 CENTRAL HEADER #1564  02014B50 (33639248)\n-6F53D7 Created Zip Spec      14 (20) '2.0'\n-6F53D8 Created OS            00 (0) 'MS-DOS'\n-6F53D9 Extract Zip Spec      14 (20) '2.0'\n-6F53DA Extract OS            00 (0) 'MS-DOS'\n-6F53DB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F53DD Compression Method    0000 (0) 'Stored'\n-6F53DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F53E3 CRC                   1F076089 (520577161)\n-6F53E7 Compressed Size       000003FD (1021)\n-6F53EB Uncompressed Size     000003FD (1021)\n-6F53EF Filename Length       003F (63)\n-6F53F1 Extra Length          0009 (9)\n-6F53F3 Comment Length        0000 (0)\n-6F53F5 Disk Start            0000 (0)\n-6F53F7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F53F9 Ext File Attributes   00000000 (0)\n-6F53FD Local Header Offset   00563A62 (5651042)\n-6F5401 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5401: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5440 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5442   Length              0005 (5)\n-6F5444   Flags               01 (1) 'Modification'\n-6F5445   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5449 CENTRAL HEADER #1565  02014B50 (33639248)\n-6F544D Created Zip Spec      14 (20) '2.0'\n-6F544E Created OS            00 (0) 'MS-DOS'\n-6F544F Extract Zip Spec      14 (20) '2.0'\n-6F5450 Extract OS            00 (0) 'MS-DOS'\n-6F5451 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5453 Compression Method    0000 (0) 'Stored'\n-6F5455 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5459 CRC                   63B69239 (1672909369)\n-6F545D Compressed Size       00000F7F (3967)\n-6F5461 Uncompressed Size     00000F7F (3967)\n-6F5465 Filename Length       0041 (65)\n-6F5467 Extra Length          0009 (9)\n-6F5469 Comment Length        0000 (0)\n-6F546B Disk Start            0000 (0)\n-6F546D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F546F Ext File Attributes   00000000 (0)\n-6F5473 Local Header Offset   00563ED5 (5652181)\n-6F5477 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5477: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F54B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F54BA   Length              0005 (5)\n-6F54BC   Flags               01 (1) 'Modification'\n-6F54BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F54C1 CENTRAL HEADER #1566  02014B50 (33639248)\n-6F54C5 Created Zip Spec      14 (20) '2.0'\n-6F54C6 Created OS            00 (0) 'MS-DOS'\n-6F54C7 Extract Zip Spec      14 (20) '2.0'\n-6F54C8 Extract OS            00 (0) 'MS-DOS'\n-6F54C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F54CB Compression Method    0000 (0) 'Stored'\n-6F54CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F54D1 CRC                   DB6423CF (3680773071)\n-6F54D5 Compressed Size       00000DEE (3566)\n-6F54D9 Uncompressed Size     00000DEE (3566)\n-6F54DD Filename Length       0037 (55)\n-6F54DF Extra Length          0009 (9)\n-6F54E1 Comment Length        0000 (0)\n-6F54E3 Disk Start            0000 (0)\n-6F54E5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F54E7 Ext File Attributes   00000000 (0)\n-6F54EB Local Header Offset   00564ECC (5656268)\n-6F54EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F54EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5526 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5528   Length              0005 (5)\n-6F552A   Flags               01 (1) 'Modification'\n-6F552B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F552F CENTRAL HEADER #1567  02014B50 (33639248)\n-6F5533 Created Zip Spec      14 (20) '2.0'\n-6F5534 Created OS            00 (0) 'MS-DOS'\n-6F5535 Extract Zip Spec      14 (20) '2.0'\n-6F5536 Extract OS            00 (0) 'MS-DOS'\n-6F5537 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5539 Compression Method    0000 (0) 'Stored'\n-6F553B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F553F CRC                   B4E5D367 (3034960743)\n-6F5543 Compressed Size       00001DDA (7642)\n-6F5547 Uncompressed Size     00001DDA (7642)\n-6F554B Filename Length       0035 (53)\n-6F554D Extra Length          0009 (9)\n-6F554F Comment Length        0000 (0)\n-6F5551 Disk Start            0000 (0)\n-6F5553 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5555 Ext File Attributes   00000000 (0)\n-6F5559 Local Header Offset   00565D28 (5659944)\n-6F555D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F555D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5592 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5594   Length              0005 (5)\n-6F5596   Flags               01 (1) 'Modification'\n-6F5597   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F559B CENTRAL HEADER #1568  02014B50 (33639248)\n-6F559F Created Zip Spec      14 (20) '2.0'\n-6F55A0 Created OS            00 (0) 'MS-DOS'\n-6F55A1 Extract Zip Spec      14 (20) '2.0'\n-6F55A2 Extract OS            00 (0) 'MS-DOS'\n-6F55A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F55A5 Compression Method    0000 (0) 'Stored'\n-6F55A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F55AB CRC                   602945D5 (1613317589)\n-6F55AF Compressed Size       000009C9 (2505)\n-6F55B3 Uncompressed Size     000009C9 (2505)\n-6F55B7 Filename Length       0036 (54)\n-6F55B9 Extra Length          0009 (9)\n-6F55BB Comment Length        0000 (0)\n-6F55BD Disk Start            0000 (0)\n-6F55BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F55C1 Ext File Attributes   00000000 (0)\n-6F55C5 Local Header Offset   00567B6E (5667694)\n-6F55C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F55C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F55FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5601   Length              0005 (5)\n-6F5603   Flags               01 (1) 'Modification'\n-6F5604   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5608 CENTRAL HEADER #1569  02014B50 (33639248)\n-6F560C Created Zip Spec      14 (20) '2.0'\n-6F560D Created OS            00 (0) 'MS-DOS'\n-6F560E Extract Zip Spec      14 (20) '2.0'\n-6F560F Extract OS            00 (0) 'MS-DOS'\n-6F5610 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5612 Compression Method    0000 (0) 'Stored'\n-6F5614 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5618 CRC                   D9BD9D3A (3653082426)\n-6F561C Compressed Size       00000469 (1129)\n-6F5620 Uncompressed Size     00000469 (1129)\n-6F5624 Filename Length       0044 (68)\n-6F5626 Extra Length          0009 (9)\n-6F5628 Comment Length        0000 (0)\n-6F562A Disk Start            0000 (0)\n-6F562C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F562E Ext File Attributes   00000000 (0)\n-6F5632 Local Header Offset   005685A4 (5670308)\n-6F5636 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5636: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F567A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F567C   Length              0005 (5)\n-6F567E   Flags               01 (1) 'Modification'\n-6F567F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5683 CENTRAL HEADER #1570  02014B50 (33639248)\n-6F5687 Created Zip Spec      14 (20) '2.0'\n-6F5688 Created OS            00 (0) 'MS-DOS'\n-6F5689 Extract Zip Spec      14 (20) '2.0'\n-6F568A Extract OS            00 (0) 'MS-DOS'\n-6F568B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F568D Compression Method    0000 (0) 'Stored'\n-6F568F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5693 CRC                   78792D26 (2021207334)\n-6F5697 Compressed Size       000006B5 (1717)\n-6F569B Uncompressed Size     000006B5 (1717)\n-6F569F Filename Length       003C (60)\n-6F56A1 Extra Length          0009 (9)\n-6F56A3 Comment Length        0000 (0)\n-6F56A5 Disk Start            0000 (0)\n-6F56A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F56A9 Ext File Attributes   00000000 (0)\n-6F56AD Local Header Offset   00568A88 (5671560)\n-6F56B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F56B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F56ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F56EF   Length              0005 (5)\n-6F56F1   Flags               01 (1) 'Modification'\n-6F56F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F56F6 CENTRAL HEADER #1571  02014B50 (33639248)\n-6F56FA Created Zip Spec      14 (20) '2.0'\n-6F56FB Created OS            00 (0) 'MS-DOS'\n-6F56FC Extract Zip Spec      14 (20) '2.0'\n-6F56FD Extract OS            00 (0) 'MS-DOS'\n-6F56FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5700 Compression Method    0000 (0) 'Stored'\n-6F5702 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5706 CRC                   A9090E7C (2835943036)\n-6F570A Compressed Size       00000C45 (3141)\n-6F570E Uncompressed Size     00000C45 (3141)\n-6F5712 Filename Length       0037 (55)\n-6F5714 Extra Length          0009 (9)\n-6F5716 Comment Length        0000 (0)\n-6F5718 Disk Start            0000 (0)\n-6F571A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F571C Ext File Attributes   00000000 (0)\n-6F5720 Local Header Offset   005691B0 (5673392)\n-6F5724 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5724: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F575B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F575D   Length              0005 (5)\n-6F575F   Flags               01 (1) 'Modification'\n-6F5760   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5764 CENTRAL HEADER #1572  02014B50 (33639248)\n-6F5768 Created Zip Spec      14 (20) '2.0'\n-6F5769 Created OS            00 (0) 'MS-DOS'\n-6F576A Extract Zip Spec      14 (20) '2.0'\n-6F576B Extract OS            00 (0) 'MS-DOS'\n-6F576C General Purpose Flag  0000 (0)\n-6F576E Compression Method    0000 (0) 'Stored'\n-6F5770 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5774 CRC                   00000000 (0)\n-6F5778 Compressed Size       00000000 (0)\n-6F577C Uncompressed Size     00000000 (0)\n-6F5780 Filename Length       002A (42)\n-6F5782 Extra Length          0009 (9)\n-6F5784 Comment Length        0000 (0)\n-6F5786 Disk Start            0000 (0)\n-6F5788 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F578A Ext File Attributes   00000000 (0)\n-6F578E Local Header Offset   00569E63 (5676643)\n-6F5792 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5792: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F57BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F57BE   Length              0005 (5)\n-6F57C0   Flags               01 (1) 'Modification'\n-6F57C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F57C5 CENTRAL HEADER #1573  02014B50 (33639248)\n-6F57C9 Created Zip Spec      14 (20) '2.0'\n-6F57CA Created OS            00 (0) 'MS-DOS'\n-6F57CB Extract Zip Spec      14 (20) '2.0'\n-6F57CC Extract OS            00 (0) 'MS-DOS'\n-6F57CD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F57CF Compression Method    0000 (0) 'Stored'\n-6F57D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F57D5 CRC                   101D85B9 (270370233)\n-6F57D9 Compressed Size       0000094B (2379)\n-6F57DD Uncompressed Size     0000094B (2379)\n-6F57E1 Filename Length       003B (59)\n-6F57E3 Extra Length          0009 (9)\n-6F57E5 Comment Length        0000 (0)\n-6F57E7 Disk Start            0000 (0)\n-6F57E9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F57EB Ext File Attributes   00000000 (0)\n-6F57EF Local Header Offset   00569EB4 (5676724)\n-6F57F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F57F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F582E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5830   Length              0005 (5)\n-6F5832   Flags               01 (1) 'Modification'\n-6F5833   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5837 CENTRAL HEADER #1574  02014B50 (33639248)\n-6F583B Created Zip Spec      14 (20) '2.0'\n-6F583C Created OS            00 (0) 'MS-DOS'\n-6F583D Extract Zip Spec      14 (20) '2.0'\n-6F583E Extract OS            00 (0) 'MS-DOS'\n-6F583F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5841 Compression Method    0000 (0) 'Stored'\n-6F5843 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5847 CRC                   7EE6D15A (2129056090)\n-6F584B Compressed Size       00000D5E (3422)\n-6F584F Uncompressed Size     00000D5E (3422)\n-6F5853 Filename Length       003D (61)\n-6F5855 Extra Length          0009 (9)\n-6F5857 Comment Length        0000 (0)\n-6F5859 Disk Start            0000 (0)\n-6F585B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F585D Ext File Attributes   00000000 (0)\n-6F5861 Local Header Offset   0056A871 (5679217)\n-6F5865 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5865: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F58A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F58A4   Length              0005 (5)\n-6F58A6   Flags               01 (1) 'Modification'\n-6F58A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F58AB CENTRAL HEADER #1575  02014B50 (33639248)\n-6F58AF Created Zip Spec      14 (20) '2.0'\n-6F58B0 Created OS            00 (0) 'MS-DOS'\n-6F58B1 Extract Zip Spec      14 (20) '2.0'\n-6F58B2 Extract OS            00 (0) 'MS-DOS'\n-6F58B3 General Purpose Flag  0000 (0)\n-6F58B5 Compression Method    0000 (0) 'Stored'\n-6F58B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F58BB CRC                   00000000 (0)\n-6F58BF Compressed Size       00000000 (0)\n-6F58C3 Uncompressed Size     00000000 (0)\n-6F58C7 Filename Length       002F (47)\n-6F58C9 Extra Length          0009 (9)\n-6F58CB Comment Length        0000 (0)\n-6F58CD Disk Start            0000 (0)\n-6F58CF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F58D1 Ext File Attributes   00000000 (0)\n-6F58D5 Local Header Offset   0056B643 (5682755)\n-6F58D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F58D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5908 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F590A   Length              0005 (5)\n-6F590C   Flags               01 (1) 'Modification'\n-6F590D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5911 CENTRAL HEADER #1576  02014B50 (33639248)\n-6F5915 Created Zip Spec      14 (20) '2.0'\n-6F5916 Created OS            00 (0) 'MS-DOS'\n-6F5917 Extract Zip Spec      14 (20) '2.0'\n-6F5918 Extract OS            00 (0) 'MS-DOS'\n-6F5919 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F591B Compression Method    0000 (0) 'Stored'\n-6F591D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5921 CRC                   A053D891 (2689849489)\n-6F5925 Compressed Size       00001205 (4613)\n-6F5929 Uncompressed Size     00001205 (4613)\n-6F592D Filename Length       0048 (72)\n-6F592F Extra Length          0009 (9)\n-6F5931 Comment Length        0000 (0)\n-6F5933 Disk Start            0000 (0)\n-6F5935 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5937 Ext File Attributes   00000000 (0)\n-6F593B Local Header Offset   0056B699 (5682841)\n-6F593F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F593F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5987 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5989   Length              0005 (5)\n-6F598B   Flags               01 (1) 'Modification'\n-6F598C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5990 CENTRAL HEADER #1577  02014B50 (33639248)\n-6F5994 Created Zip Spec      14 (20) '2.0'\n-6F5995 Created OS            00 (0) 'MS-DOS'\n-6F5996 Extract Zip Spec      14 (20) '2.0'\n-6F5997 Extract OS            00 (0) 'MS-DOS'\n-6F5998 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F599A Compression Method    0000 (0) 'Stored'\n-6F599C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F59A0 CRC                   F077FE2F (4034395695)\n-6F59A4 Compressed Size       000007C3 (1987)\n-6F59A8 Uncompressed Size     000007C3 (1987)\n-6F59AC Filename Length       0043 (67)\n-6F59AE Extra Length          0009 (9)\n-6F59B0 Comment Length        0000 (0)\n-6F59B2 Disk Start            0000 (0)\n-6F59B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F59B6 Ext File Attributes   00000000 (0)\n-6F59BA Local Header Offset   0056C91D (5687581)\n-6F59BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F1D5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1D61   Length              0005 (5)\n+6F1D63   Flags               01 (1) 'Modification'\n+6F1D64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1D68 CENTRAL HEADER #501   02014B50 (33639248)\n+6F1D6C Created Zip Spec      14 (20) '2.0'\n+6F1D6D Created OS            00 (0) 'MS-DOS'\n+6F1D6E Extract Zip Spec      14 (20) '2.0'\n+6F1D6F Extract OS            00 (0) 'MS-DOS'\n+6F1D70 General Purpose Flag  0000 (0)\n+6F1D72 Compression Method    0000 (0) 'Stored'\n+6F1D74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1D78 CRC                   00000000 (0)\n+6F1D7C Compressed Size       00000000 (0)\n+6F1D80 Uncompressed Size     00000000 (0)\n+6F1D84 Filename Length       0025 (37)\n+6F1D86 Extra Length          0009 (9)\n+6F1D88 Comment Length        0000 (0)\n+6F1D8A Disk Start            0000 (0)\n+6F1D8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1D8E Ext File Attributes   00000000 (0)\n+6F1D92 Local Header Offset   0014CC3B (1363003)\n+6F1D96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1D96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1DBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1DBD   Length              0005 (5)\n+6F1DBF   Flags               01 (1) 'Modification'\n+6F1DC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1DC4 CENTRAL HEADER #502   02014B50 (33639248)\n+6F1DC8 Created Zip Spec      14 (20) '2.0'\n+6F1DC9 Created OS            00 (0) 'MS-DOS'\n+6F1DCA Extract Zip Spec      14 (20) '2.0'\n+6F1DCB Extract OS            00 (0) 'MS-DOS'\n+6F1DCC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1DCE Compression Method    0000 (0) 'Stored'\n+6F1DD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1DD4 CRC                   15451137 (356847927)\n+6F1DD8 Compressed Size       000003DF (991)\n+6F1DDC Uncompressed Size     000003DF (991)\n+6F1DE0 Filename Length       003E (62)\n+6F1DE2 Extra Length          0009 (9)\n+6F1DE4 Comment Length        0000 (0)\n+6F1DE6 Disk Start            0000 (0)\n+6F1DE8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1DEA Ext File Attributes   00000000 (0)\n+6F1DEE Local Header Offset   0014CC87 (1363079)\n+6F1DF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1DF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1E30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1E32   Length              0005 (5)\n+6F1E34   Flags               01 (1) 'Modification'\n+6F1E35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1E39 CENTRAL HEADER #503   02014B50 (33639248)\n+6F1E3D Created Zip Spec      14 (20) '2.0'\n+6F1E3E Created OS            00 (0) 'MS-DOS'\n+6F1E3F Extract Zip Spec      14 (20) '2.0'\n+6F1E40 Extract OS            00 (0) 'MS-DOS'\n+6F1E41 General Purpose Flag  0000 (0)\n+6F1E43 Compression Method    0000 (0) 'Stored'\n+6F1E45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1E49 CRC                   00000000 (0)\n+6F1E4D Compressed Size       00000000 (0)\n+6F1E51 Uncompressed Size     00000000 (0)\n+6F1E55 Filename Length       0016 (22)\n+6F1E57 Extra Length          0009 (9)\n+6F1E59 Comment Length        0000 (0)\n+6F1E5B Disk Start            0000 (0)\n+6F1E5D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1E5F Ext File Attributes   00000000 (0)\n+6F1E63 Local Header Offset   0014D0DB (1364187)\n+6F1E67 Filename              'XXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1E67: Filename 'XXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1E7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1E7F   Length              0005 (5)\n+6F1E81   Flags               01 (1) 'Modification'\n+6F1E82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1E86 CENTRAL HEADER #504   02014B50 (33639248)\n+6F1E8A Created Zip Spec      14 (20) '2.0'\n+6F1E8B Created OS            00 (0) 'MS-DOS'\n+6F1E8C Extract Zip Spec      14 (20) '2.0'\n+6F1E8D Extract OS            00 (0) 'MS-DOS'\n+6F1E8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1E90 Compression Method    0000 (0) 'Stored'\n+6F1E92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1E96 CRC                   5AF92E3B (1526279739)\n+6F1E9A Compressed Size       000005DD (1501)\n+6F1E9E Uncompressed Size     000005DD (1501)\n+6F1EA2 Filename Length       0023 (35)\n+6F1EA4 Extra Length          0009 (9)\n+6F1EA6 Comment Length        0000 (0)\n+6F1EA8 Disk Start            0000 (0)\n+6F1EAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1EAC Ext File Attributes   00000000 (0)\n+6F1EB0 Local Header Offset   0014D118 (1364248)\n+6F1EB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1EB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1ED7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1ED9   Length              0005 (5)\n+6F1EDB   Flags               01 (1) 'Modification'\n+6F1EDC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1EE0 CENTRAL HEADER #505   02014B50 (33639248)\n+6F1EE4 Created Zip Spec      14 (20) '2.0'\n+6F1EE5 Created OS            00 (0) 'MS-DOS'\n+6F1EE6 Extract Zip Spec      14 (20) '2.0'\n+6F1EE7 Extract OS            00 (0) 'MS-DOS'\n+6F1EE8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1EEA Compression Method    0000 (0) 'Stored'\n+6F1EEC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1EF0 CRC                   4813D623 (1209259555)\n+6F1EF4 Compressed Size       000005DD (1501)\n+6F1EF8 Uncompressed Size     000005DD (1501)\n+6F1EFC Filename Length       0021 (33)\n+6F1EFE Extra Length          0009 (9)\n+6F1F00 Comment Length        0000 (0)\n+6F1F02 Disk Start            0000 (0)\n+6F1F04 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1F06 Ext File Attributes   00000000 (0)\n+6F1F0A Local Header Offset   0014D74F (1365839)\n+6F1F0E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1F0E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1F2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1F31   Length              0005 (5)\n+6F1F33   Flags               01 (1) 'Modification'\n+6F1F34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1F38 CENTRAL HEADER #506   02014B50 (33639248)\n+6F1F3C Created Zip Spec      14 (20) '2.0'\n+6F1F3D Created OS            00 (0) 'MS-DOS'\n+6F1F3E Extract Zip Spec      14 (20) '2.0'\n+6F1F3F Extract OS            00 (0) 'MS-DOS'\n+6F1F40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1F42 Compression Method    0000 (0) 'Stored'\n+6F1F44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1F48 CRC                   57D1F11D (1473376541)\n+6F1F4C Compressed Size       000012A9 (4777)\n+6F1F50 Uncompressed Size     000012A9 (4777)\n+6F1F54 Filename Length       0025 (37)\n+6F1F56 Extra Length          0009 (9)\n+6F1F58 Comment Length        0000 (0)\n+6F1F5A Disk Start            0000 (0)\n+6F1F5C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1F5E Ext File Attributes   00000000 (0)\n+6F1F62 Local Header Offset   0014DD84 (1367428)\n+6F1F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1F8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1F8D   Length              0005 (5)\n+6F1F8F   Flags               01 (1) 'Modification'\n+6F1F90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1F94 CENTRAL HEADER #507   02014B50 (33639248)\n+6F1F98 Created Zip Spec      14 (20) '2.0'\n+6F1F99 Created OS            00 (0) 'MS-DOS'\n+6F1F9A Extract Zip Spec      14 (20) '2.0'\n+6F1F9B Extract OS            00 (0) 'MS-DOS'\n+6F1F9C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1F9E Compression Method    0000 (0) 'Stored'\n+6F1FA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1FA4 CRC                   3FF357FC (1072912380)\n+6F1FA8 Compressed Size       00000981 (2433)\n+6F1FAC Uncompressed Size     00000981 (2433)\n+6F1FB0 Filename Length       0022 (34)\n+6F1FB2 Extra Length          0009 (9)\n+6F1FB4 Comment Length        0000 (0)\n+6F1FB6 Disk Start            0000 (0)\n+6F1FB8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F1FBA Ext File Attributes   00000000 (0)\n+6F1FBE Local Header Offset   0014F089 (1372297)\n+6F1FC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F1FC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F1FE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F1FE6   Length              0005 (5)\n+6F1FE8   Flags               01 (1) 'Modification'\n+6F1FE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F1FED CENTRAL HEADER #508   02014B50 (33639248)\n+6F1FF1 Created Zip Spec      14 (20) '2.0'\n+6F1FF2 Created OS            00 (0) 'MS-DOS'\n+6F1FF3 Extract Zip Spec      14 (20) '2.0'\n+6F1FF4 Extract OS            00 (0) 'MS-DOS'\n+6F1FF5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F1FF7 Compression Method    0000 (0) 'Stored'\n+6F1FF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F1FFD CRC                   A7B8FF5F (2813919071)\n+6F2001 Compressed Size       0000060D (1549)\n+6F2005 Uncompressed Size     0000060D (1549)\n+6F2009 Filename Length       002A (42)\n+6F200B Extra Length          0009 (9)\n+6F200D Comment Length        0000 (0)\n+6F200F Disk Start            0000 (0)\n+6F2011 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2013 Ext File Attributes   00000000 (0)\n+6F2017 Local Header Offset   0014FA63 (1374819)\n+6F201B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F201B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2045 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2047   Length              0005 (5)\n+6F2049   Flags               01 (1) 'Modification'\n+6F204A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F204E CENTRAL HEADER #509   02014B50 (33639248)\n+6F2052 Created Zip Spec      14 (20) '2.0'\n+6F2053 Created OS            00 (0) 'MS-DOS'\n+6F2054 Extract Zip Spec      14 (20) '2.0'\n+6F2055 Extract OS            00 (0) 'MS-DOS'\n+6F2056 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2058 Compression Method    0000 (0) 'Stored'\n+6F205A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F205E CRC                   BE8E4754 (3196995412)\n+6F2062 Compressed Size       000006DD (1757)\n+6F2066 Uncompressed Size     000006DD (1757)\n+6F206A Filename Length       0023 (35)\n+6F206C Extra Length          0009 (9)\n+6F206E Comment Length        0000 (0)\n+6F2070 Disk Start            0000 (0)\n+6F2072 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2074 Ext File Attributes   00000000 (0)\n+6F2078 Local Header Offset   001500D1 (1376465)\n+6F207C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F207C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F209F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F20A1   Length              0005 (5)\n+6F20A3   Flags               01 (1) 'Modification'\n+6F20A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F20A8 CENTRAL HEADER #510   02014B50 (33639248)\n+6F20AC Created Zip Spec      14 (20) '2.0'\n+6F20AD Created OS            00 (0) 'MS-DOS'\n+6F20AE Extract Zip Spec      14 (20) '2.0'\n+6F20AF Extract OS            00 (0) 'MS-DOS'\n+6F20B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F20B2 Compression Method    0000 (0) 'Stored'\n+6F20B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F20B8 CRC                   F08690D4 (4035350740)\n+6F20BC Compressed Size       000007FC (2044)\n+6F20C0 Uncompressed Size     000007FC (2044)\n+6F20C4 Filename Length       0027 (39)\n+6F20C6 Extra Length          0009 (9)\n+6F20C8 Comment Length        0000 (0)\n+6F20CA Disk Start            0000 (0)\n+6F20CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F20CE Ext File Attributes   00000000 (0)\n+6F20D2 Local Header Offset   00150808 (1378312)\n+6F20D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F20D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F20FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F20FF   Length              0005 (5)\n+6F2101   Flags               01 (1) 'Modification'\n+6F2102   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2106 CENTRAL HEADER #511   02014B50 (33639248)\n+6F210A Created Zip Spec      14 (20) '2.0'\n+6F210B Created OS            00 (0) 'MS-DOS'\n+6F210C Extract Zip Spec      14 (20) '2.0'\n+6F210D Extract OS            00 (0) 'MS-DOS'\n+6F210E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2110 Compression Method    0000 (0) 'Stored'\n+6F2112 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2116 CRC                   EE092214 (3993575956)\n+6F211A Compressed Size       0000136E (4974)\n+6F211E Uncompressed Size     0000136E (4974)\n+6F2122 Filename Length       0021 (33)\n+6F2124 Extra Length          0009 (9)\n+6F2126 Comment Length        0000 (0)\n+6F2128 Disk Start            0000 (0)\n+6F212A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F212C Ext File Attributes   00000000 (0)\n+6F2130 Local Header Offset   00151062 (1380450)\n+6F2134 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2134: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2155 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2157   Length              0005 (5)\n+6F2159   Flags               01 (1) 'Modification'\n+6F215A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F215E CENTRAL HEADER #512   02014B50 (33639248)\n+6F2162 Created Zip Spec      14 (20) '2.0'\n+6F2163 Created OS            00 (0) 'MS-DOS'\n+6F2164 Extract Zip Spec      14 (20) '2.0'\n+6F2165 Extract OS            00 (0) 'MS-DOS'\n+6F2166 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2168 Compression Method    0000 (0) 'Stored'\n+6F216A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F216E CRC                   EBE35D6F (3957546351)\n+6F2172 Compressed Size       00002D81 (11649)\n+6F2176 Uncompressed Size     00002D81 (11649)\n+6F217A Filename Length       0025 (37)\n+6F217C Extra Length          0009 (9)\n+6F217E Comment Length        0000 (0)\n+6F2180 Disk Start            0000 (0)\n+6F2182 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2184 Ext File Attributes   00000000 (0)\n+6F2188 Local Header Offset   00152428 (1385512)\n+6F218C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F218C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F21B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F21B3   Length              0005 (5)\n+6F21B5   Flags               01 (1) 'Modification'\n+6F21B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F21BA CENTRAL HEADER #513   02014B50 (33639248)\n+6F21BE Created Zip Spec      14 (20) '2.0'\n+6F21BF Created OS            00 (0) 'MS-DOS'\n+6F21C0 Extract Zip Spec      14 (20) '2.0'\n+6F21C1 Extract OS            00 (0) 'MS-DOS'\n+6F21C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F21C4 Compression Method    0000 (0) 'Stored'\n+6F21C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F21CA CRC                   FF29698F (4280904079)\n+6F21CE Compressed Size       00000659 (1625)\n+6F21D2 Uncompressed Size     00000659 (1625)\n+6F21D6 Filename Length       0027 (39)\n+6F21D8 Extra Length          0009 (9)\n+6F21DA Comment Length        0000 (0)\n+6F21DC Disk Start            0000 (0)\n+6F21DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F21E0 Ext File Attributes   00000000 (0)\n+6F21E4 Local Header Offset   00155205 (1397253)\n+6F21E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F21E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F220F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2211   Length              0005 (5)\n+6F2213   Flags               01 (1) 'Modification'\n+6F2214   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2218 CENTRAL HEADER #514   02014B50 (33639248)\n+6F221C Created Zip Spec      14 (20) '2.0'\n+6F221D Created OS            00 (0) 'MS-DOS'\n+6F221E Extract Zip Spec      14 (20) '2.0'\n+6F221F Extract OS            00 (0) 'MS-DOS'\n+6F2220 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2222 Compression Method    0000 (0) 'Stored'\n+6F2224 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2228 CRC                   B185BD67 (2978332007)\n+6F222C Compressed Size       00001D1D (7453)\n+6F2230 Uncompressed Size     00001D1D (7453)\n+6F2234 Filename Length       0028 (40)\n+6F2236 Extra Length          0009 (9)\n+6F2238 Comment Length        0000 (0)\n+6F223A Disk Start            0000 (0)\n+6F223C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F223E Ext File Attributes   00000000 (0)\n+6F2242 Local Header Offset   001558BC (1398972)\n+6F2246 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2246: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F226E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2270   Length              0005 (5)\n+6F2272   Flags               01 (1) 'Modification'\n+6F2273   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2277 CENTRAL HEADER #515   02014B50 (33639248)\n+6F227B Created Zip Spec      14 (20) '2.0'\n+6F227C Created OS            00 (0) 'MS-DOS'\n+6F227D Extract Zip Spec      14 (20) '2.0'\n+6F227E Extract OS            00 (0) 'MS-DOS'\n+6F227F General Purpose Flag  0000 (0)\n+6F2281 Compression Method    0000 (0) 'Stored'\n+6F2283 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2287 CRC                   00000000 (0)\n+6F228B Compressed Size       00000000 (0)\n+6F228F Uncompressed Size     00000000 (0)\n+6F2293 Filename Length       001E (30)\n+6F2295 Extra Length          0009 (9)\n+6F2297 Comment Length        0000 (0)\n+6F2299 Disk Start            0000 (0)\n+6F229B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F229D Ext File Attributes   00000000 (0)\n+6F22A1 Local Header Offset   00157638 (1406520)\n+6F22A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F22A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F22C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F22C5   Length              0005 (5)\n+6F22C7   Flags               01 (1) 'Modification'\n+6F22C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F22CC CENTRAL HEADER #516   02014B50 (33639248)\n+6F22D0 Created Zip Spec      14 (20) '2.0'\n+6F22D1 Created OS            00 (0) 'MS-DOS'\n+6F22D2 Extract Zip Spec      14 (20) '2.0'\n+6F22D3 Extract OS            00 (0) 'MS-DOS'\n+6F22D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F22D6 Compression Method    0000 (0) 'Stored'\n+6F22D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F22DC CRC                   54F4EBB3 (1425337267)\n+6F22E0 Compressed Size       00000554 (1364)\n+6F22E4 Uncompressed Size     00000554 (1364)\n+6F22E8 Filename Length       002A (42)\n+6F22EA Extra Length          0009 (9)\n+6F22EC Comment Length        0000 (0)\n+6F22EE Disk Start            0000 (0)\n+6F22F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F22F2 Ext File Attributes   00000000 (0)\n+6F22F6 Local Header Offset   0015767D (1406589)\n+6F22FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F22FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2324 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2326   Length              0005 (5)\n+6F2328   Flags               01 (1) 'Modification'\n+6F2329   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F232D CENTRAL HEADER #517   02014B50 (33639248)\n+6F2331 Created Zip Spec      14 (20) '2.0'\n+6F2332 Created OS            00 (0) 'MS-DOS'\n+6F2333 Extract Zip Spec      14 (20) '2.0'\n+6F2334 Extract OS            00 (0) 'MS-DOS'\n+6F2335 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2337 Compression Method    0000 (0) 'Stored'\n+6F2339 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F233D CRC                   22C3EE20 (583265824)\n+6F2341 Compressed Size       000003CD (973)\n+6F2345 Uncompressed Size     000003CD (973)\n+6F2349 Filename Length       0036 (54)\n+6F234B Extra Length          0009 (9)\n+6F234D Comment Length        0000 (0)\n+6F234F Disk Start            0000 (0)\n+6F2351 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2353 Ext File Attributes   00000000 (0)\n+6F2357 Local Header Offset   00157C32 (1408050)\n+6F235B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F235B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2391 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2393   Length              0005 (5)\n+6F2395   Flags               01 (1) 'Modification'\n+6F2396   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F239A CENTRAL HEADER #518   02014B50 (33639248)\n+6F239E Created Zip Spec      14 (20) '2.0'\n+6F239F Created OS            00 (0) 'MS-DOS'\n+6F23A0 Extract Zip Spec      14 (20) '2.0'\n+6F23A1 Extract OS            00 (0) 'MS-DOS'\n+6F23A2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F23A4 Compression Method    0000 (0) 'Stored'\n+6F23A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F23AA CRC                   0569C6BD (90818237)\n+6F23AE Compressed Size       000006AE (1710)\n+6F23B2 Uncompressed Size     000006AE (1710)\n+6F23B6 Filename Length       002C (44)\n+6F23B8 Extra Length          0009 (9)\n+6F23BA Comment Length        0000 (0)\n+6F23BC Disk Start            0000 (0)\n+6F23BE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F23C0 Ext File Attributes   00000000 (0)\n+6F23C4 Local Header Offset   0015806C (1409132)\n+6F23C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F23C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F23F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F23F6   Length              0005 (5)\n+6F23F8   Flags               01 (1) 'Modification'\n+6F23F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F23FD CENTRAL HEADER #519   02014B50 (33639248)\n+6F2401 Created Zip Spec      14 (20) '2.0'\n+6F2402 Created OS            00 (0) 'MS-DOS'\n+6F2403 Extract Zip Spec      14 (20) '2.0'\n+6F2404 Extract OS            00 (0) 'MS-DOS'\n+6F2405 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2407 Compression Method    0000 (0) 'Stored'\n+6F2409 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F240D CRC                   E0114FF9 (3759230969)\n+6F2411 Compressed Size       000007CF (1999)\n+6F2415 Uncompressed Size     000007CF (1999)\n+6F2419 Filename Length       002E (46)\n+6F241B Extra Length          0009 (9)\n+6F241D Comment Length        0000 (0)\n+6F241F Disk Start            0000 (0)\n+6F2421 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2423 Ext File Attributes   00000000 (0)\n+6F2427 Local Header Offset   0015877D (1410941)\n+6F242B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F242B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2459 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F245B   Length              0005 (5)\n+6F245D   Flags               01 (1) 'Modification'\n+6F245E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2462 CENTRAL HEADER #520   02014B50 (33639248)\n+6F2466 Created Zip Spec      14 (20) '2.0'\n+6F2467 Created OS            00 (0) 'MS-DOS'\n+6F2468 Extract Zip Spec      14 (20) '2.0'\n+6F2469 Extract OS            00 (0) 'MS-DOS'\n+6F246A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F246C Compression Method    0000 (0) 'Stored'\n+6F246E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2472 CRC                   C476DBA7 (3296123815)\n+6F2476 Compressed Size       000003B5 (949)\n+6F247A Uncompressed Size     000003B5 (949)\n+6F247E Filename Length       0029 (41)\n+6F2480 Extra Length          0009 (9)\n+6F2482 Comment Length        0000 (0)\n+6F2484 Disk Start            0000 (0)\n+6F2486 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2488 Ext File Attributes   00000000 (0)\n+6F248C Local Header Offset   00158FB1 (1413041)\n+6F2490 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2490: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F24B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F24BB   Length              0005 (5)\n+6F24BD   Flags               01 (1) 'Modification'\n+6F24BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F24C2 CENTRAL HEADER #521   02014B50 (33639248)\n+6F24C6 Created Zip Spec      14 (20) '2.0'\n+6F24C7 Created OS            00 (0) 'MS-DOS'\n+6F24C8 Extract Zip Spec      14 (20) '2.0'\n+6F24C9 Extract OS            00 (0) 'MS-DOS'\n+6F24CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F24CC Compression Method    0000 (0) 'Stored'\n+6F24CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F24D2 CRC                   A69542CD (2794799821)\n+6F24D6 Compressed Size       00000A92 (2706)\n+6F24DA Uncompressed Size     00000A92 (2706)\n+6F24DE Filename Length       0029 (41)\n+6F24E0 Extra Length          0009 (9)\n+6F24E2 Comment Length        0000 (0)\n+6F24E4 Disk Start            0000 (0)\n+6F24E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F24E8 Ext File Attributes   00000000 (0)\n+6F24EC Local Header Offset   001593C6 (1414086)\n+6F24F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F24F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2519 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F251B   Length              0005 (5)\n+6F251D   Flags               01 (1) 'Modification'\n+6F251E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2522 CENTRAL HEADER #522   02014B50 (33639248)\n+6F2526 Created Zip Spec      14 (20) '2.0'\n+6F2527 Created OS            00 (0) 'MS-DOS'\n+6F2528 Extract Zip Spec      14 (20) '2.0'\n+6F2529 Extract OS            00 (0) 'MS-DOS'\n+6F252A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F252C Compression Method    0000 (0) 'Stored'\n+6F252E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2532 CRC                   A83F3E21 (2822716961)\n+6F2536 Compressed Size       000004DA (1242)\n+6F253A Uncompressed Size     000004DA (1242)\n+6F253E Filename Length       0030 (48)\n+6F2540 Extra Length          0009 (9)\n+6F2542 Comment Length        0000 (0)\n+6F2544 Disk Start            0000 (0)\n+6F2546 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2548 Ext File Attributes   00000000 (0)\n+6F254C Local Header Offset   00159EB8 (1416888)\n+6F2550 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2550: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2580 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2582   Length              0005 (5)\n+6F2584   Flags               01 (1) 'Modification'\n+6F2585   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2589 CENTRAL HEADER #523   02014B50 (33639248)\n+6F258D Created Zip Spec      14 (20) '2.0'\n+6F258E Created OS            00 (0) 'MS-DOS'\n+6F258F Extract Zip Spec      14 (20) '2.0'\n+6F2590 Extract OS            00 (0) 'MS-DOS'\n+6F2591 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2593 Compression Method    0000 (0) 'Stored'\n+6F2595 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2599 CRC                   75803CF4 (1971338484)\n+6F259D Compressed Size       0000059F (1439)\n+6F25A1 Uncompressed Size     0000059F (1439)\n+6F25A5 Filename Length       0030 (48)\n+6F25A7 Extra Length          0009 (9)\n+6F25A9 Comment Length        0000 (0)\n+6F25AB Disk Start            0000 (0)\n+6F25AD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F25AF Ext File Attributes   00000000 (0)\n+6F25B3 Local Header Offset   0015A3F9 (1418233)\n+6F25B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F25B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F25E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F25E9   Length              0005 (5)\n+6F25EB   Flags               01 (1) 'Modification'\n+6F25EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F25F0 CENTRAL HEADER #524   02014B50 (33639248)\n+6F25F4 Created Zip Spec      14 (20) '2.0'\n+6F25F5 Created OS            00 (0) 'MS-DOS'\n+6F25F6 Extract Zip Spec      14 (20) '2.0'\n+6F25F7 Extract OS            00 (0) 'MS-DOS'\n+6F25F8 General Purpose Flag  0000 (0)\n+6F25FA Compression Method    0000 (0) 'Stored'\n+6F25FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2600 CRC                   00000000 (0)\n+6F2604 Compressed Size       00000000 (0)\n+6F2608 Uncompressed Size     00000000 (0)\n+6F260C Filename Length       002A (42)\n+6F260E Extra Length          0009 (9)\n+6F2610 Comment Length        0000 (0)\n+6F2612 Disk Start            0000 (0)\n+6F2614 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2616 Ext File Attributes   00000000 (0)\n+6F261A Local Header Offset   0015A9FF (1419775)\n+6F261E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F261E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2648 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F264A   Length              0005 (5)\n+6F264C   Flags               01 (1) 'Modification'\n+6F264D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2651 CENTRAL HEADER #525   02014B50 (33639248)\n+6F2655 Created Zip Spec      14 (20) '2.0'\n+6F2656 Created OS            00 (0) 'MS-DOS'\n+6F2657 Extract Zip Spec      14 (20) '2.0'\n+6F2658 Extract OS            00 (0) 'MS-DOS'\n+6F2659 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F265B Compression Method    0000 (0) 'Stored'\n+6F265D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2661 CRC                   823F4C5B (2185186395)\n+6F2665 Compressed Size       000003EC (1004)\n+6F2669 Uncompressed Size     000003EC (1004)\n+6F266D Filename Length       0042 (66)\n+6F266F Extra Length          0009 (9)\n+6F2671 Comment Length        0000 (0)\n+6F2673 Disk Start            0000 (0)\n+6F2675 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2677 Ext File Attributes   00000000 (0)\n+6F267B Local Header Offset   0015AA50 (1419856)\n+6F267F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F267F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F26C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F26C3   Length              0005 (5)\n+6F26C5   Flags               01 (1) 'Modification'\n+6F26C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F26CA CENTRAL HEADER #526   02014B50 (33639248)\n+6F26CE Created Zip Spec      14 (20) '2.0'\n+6F26CF Created OS            00 (0) 'MS-DOS'\n+6F26D0 Extract Zip Spec      14 (20) '2.0'\n+6F26D1 Extract OS            00 (0) 'MS-DOS'\n+6F26D2 General Purpose Flag  0000 (0)\n+6F26D4 Compression Method    0000 (0) 'Stored'\n+6F26D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F26DA CRC                   00000000 (0)\n+6F26DE Compressed Size       00000000 (0)\n+6F26E2 Uncompressed Size     00000000 (0)\n+6F26E6 Filename Length       001F (31)\n+6F26E8 Extra Length          0009 (9)\n+6F26EA Comment Length        0000 (0)\n+6F26EC Disk Start            0000 (0)\n+6F26EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F26F0 Ext File Attributes   00000000 (0)\n+6F26F4 Local Header Offset   0015AEB5 (1420981)\n+6F26F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F26F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2717 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2719   Length              0005 (5)\n+6F271B   Flags               01 (1) 'Modification'\n+6F271C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2720 CENTRAL HEADER #527   02014B50 (33639248)\n+6F2724 Created Zip Spec      14 (20) '2.0'\n+6F2725 Created OS            00 (0) 'MS-DOS'\n+6F2726 Extract Zip Spec      14 (20) '2.0'\n+6F2727 Extract OS            00 (0) 'MS-DOS'\n+6F2728 General Purpose Flag  0000 (0)\n+6F272A Compression Method    0000 (0) 'Stored'\n+6F272C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2730 CRC                   00000000 (0)\n+6F2734 Compressed Size       00000000 (0)\n+6F2738 Uncompressed Size     00000000 (0)\n+6F273C Filename Length       0025 (37)\n+6F273E Extra Length          0009 (9)\n+6F2740 Comment Length        0000 (0)\n+6F2742 Disk Start            0000 (0)\n+6F2744 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2746 Ext File Attributes   00000000 (0)\n+6F274A Local Header Offset   0015AEFB (1421051)\n+6F274E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F274E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2773 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2775   Length              0005 (5)\n+6F2777   Flags               01 (1) 'Modification'\n+6F2778   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F277C CENTRAL HEADER #528   02014B50 (33639248)\n+6F2780 Created Zip Spec      14 (20) '2.0'\n+6F2781 Created OS            00 (0) 'MS-DOS'\n+6F2782 Extract Zip Spec      14 (20) '2.0'\n+6F2783 Extract OS            00 (0) 'MS-DOS'\n+6F2784 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2786 Compression Method    0000 (0) 'Stored'\n+6F2788 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F278C CRC                   6C151306 (1813320454)\n+6F2790 Compressed Size       00001493 (5267)\n+6F2794 Uncompressed Size     00001493 (5267)\n+6F2798 Filename Length       0037 (55)\n+6F279A Extra Length          0009 (9)\n+6F279C Comment Length        0000 (0)\n+6F279E Disk Start            0000 (0)\n+6F27A0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F27A2 Ext File Attributes   00000000 (0)\n+6F27A6 Local Header Offset   0015AF47 (1421127)\n+6F27AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F27AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F27E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F27E3   Length              0005 (5)\n+6F27E5   Flags               01 (1) 'Modification'\n+6F27E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F27EA CENTRAL HEADER #529   02014B50 (33639248)\n+6F27EE Created Zip Spec      14 (20) '2.0'\n+6F27EF Created OS            00 (0) 'MS-DOS'\n+6F27F0 Extract Zip Spec      14 (20) '2.0'\n+6F27F1 Extract OS            00 (0) 'MS-DOS'\n+6F27F2 General Purpose Flag  0000 (0)\n+6F27F4 Compression Method    0000 (0) 'Stored'\n+6F27F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F27FA CRC                   00000000 (0)\n+6F27FE Compressed Size       00000000 (0)\n+6F2802 Uncompressed Size     00000000 (0)\n+6F2806 Filename Length       0024 (36)\n+6F2808 Extra Length          0009 (9)\n+6F280A Comment Length        0000 (0)\n+6F280C Disk Start            0000 (0)\n+6F280E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2810 Ext File Attributes   00000000 (0)\n+6F2814 Local Header Offset   0015C448 (1426504)\n+6F2818 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2818: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F283C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F283E   Length              0005 (5)\n+6F2840   Flags               01 (1) 'Modification'\n+6F2841   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2845 CENTRAL HEADER #530   02014B50 (33639248)\n+6F2849 Created Zip Spec      14 (20) '2.0'\n+6F284A Created OS            00 (0) 'MS-DOS'\n+6F284B Extract Zip Spec      14 (20) '2.0'\n+6F284C Extract OS            00 (0) 'MS-DOS'\n+6F284D General Purpose Flag  0000 (0)\n+6F284F Compression Method    0000 (0) 'Stored'\n+6F2851 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2855 CRC                   00000000 (0)\n+6F2859 Compressed Size       00000000 (0)\n+6F285D Uncompressed Size     00000000 (0)\n+6F2861 Filename Length       002C (44)\n+6F2863 Extra Length          0009 (9)\n+6F2865 Comment Length        0000 (0)\n+6F2867 Disk Start            0000 (0)\n+6F2869 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F286B Ext File Attributes   00000000 (0)\n+6F286F Local Header Offset   0015C493 (1426579)\n+6F2873 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2873: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F289F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F28A1   Length              0005 (5)\n+6F28A3   Flags               01 (1) 'Modification'\n+6F28A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F28A8 CENTRAL HEADER #531   02014B50 (33639248)\n+6F28AC Created Zip Spec      14 (20) '2.0'\n+6F28AD Created OS            00 (0) 'MS-DOS'\n+6F28AE Extract Zip Spec      14 (20) '2.0'\n+6F28AF Extract OS            00 (0) 'MS-DOS'\n+6F28B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F28B2 Compression Method    0000 (0) 'Stored'\n+6F28B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F28B8 CRC                   CC53D052 (3428044882)\n+6F28BC Compressed Size       000003D7 (983)\n+6F28C0 Uncompressed Size     000003D7 (983)\n+6F28C4 Filename Length       003C (60)\n+6F28C6 Extra Length          0009 (9)\n+6F28C8 Comment Length        0000 (0)\n+6F28CA Disk Start            0000 (0)\n+6F28CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F28CE Ext File Attributes   00000000 (0)\n+6F28D2 Local Header Offset   0015C4E6 (1426662)\n+6F28D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F28D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2912 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2914   Length              0005 (5)\n+6F2916   Flags               01 (1) 'Modification'\n+6F2917   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F291B CENTRAL HEADER #532   02014B50 (33639248)\n+6F291F Created Zip Spec      14 (20) '2.0'\n+6F2920 Created OS            00 (0) 'MS-DOS'\n+6F2921 Extract Zip Spec      14 (20) '2.0'\n+6F2922 Extract OS            00 (0) 'MS-DOS'\n+6F2923 General Purpose Flag  0000 (0)\n+6F2925 Compression Method    0000 (0) 'Stored'\n+6F2927 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F292B CRC                   00000000 (0)\n+6F292F Compressed Size       00000000 (0)\n+6F2933 Uncompressed Size     00000000 (0)\n+6F2937 Filename Length       0023 (35)\n+6F2939 Extra Length          0009 (9)\n+6F293B Comment Length        0000 (0)\n+6F293D Disk Start            0000 (0)\n+6F293F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2941 Ext File Attributes   00000000 (0)\n+6F2945 Local Header Offset   0015C930 (1427760)\n+6F2949 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2949: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F296C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F296E   Length              0005 (5)\n+6F2970   Flags               01 (1) 'Modification'\n+6F2971   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2975 CENTRAL HEADER #533   02014B50 (33639248)\n+6F2979 Created Zip Spec      14 (20) '2.0'\n+6F297A Created OS            00 (0) 'MS-DOS'\n+6F297B Extract Zip Spec      14 (20) '2.0'\n+6F297C Extract OS            00 (0) 'MS-DOS'\n+6F297D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F297F Compression Method    0000 (0) 'Stored'\n+6F2981 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2985 CRC                   BAD7984F (3134691407)\n+6F2989 Compressed Size       000005A7 (1447)\n+6F298D Uncompressed Size     000005A7 (1447)\n+6F2991 Filename Length       003B (59)\n+6F2993 Extra Length          0009 (9)\n+6F2995 Comment Length        0000 (0)\n+6F2997 Disk Start            0000 (0)\n+6F2999 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F299B Ext File Attributes   00000000 (0)\n+6F299F Local Header Offset   0015C97A (1427834)\n+6F29A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F29A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F29DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F29E0   Length              0005 (5)\n+6F29E2   Flags               01 (1) 'Modification'\n+6F29E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F29E7 CENTRAL HEADER #534   02014B50 (33639248)\n+6F29EB Created Zip Spec      14 (20) '2.0'\n+6F29EC Created OS            00 (0) 'MS-DOS'\n+6F29ED Extract Zip Spec      14 (20) '2.0'\n+6F29EE Extract OS            00 (0) 'MS-DOS'\n+6F29EF General Purpose Flag  0000 (0)\n+6F29F1 Compression Method    0000 (0) 'Stored'\n+6F29F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F29F7 CRC                   00000000 (0)\n+6F29FB Compressed Size       00000000 (0)\n+6F29FF Uncompressed Size     00000000 (0)\n+6F2A03 Filename Length       0026 (38)\n+6F2A05 Extra Length          0009 (9)\n+6F2A07 Comment Length        0000 (0)\n+6F2A09 Disk Start            0000 (0)\n+6F2A0B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2A0D Ext File Attributes   00000000 (0)\n+6F2A11 Local Header Offset   0015CF93 (1429395)\n+6F2A15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2A15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2A3D   Length              0005 (5)\n+6F2A3F   Flags               01 (1) 'Modification'\n+6F2A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2A44 CENTRAL HEADER #535   02014B50 (33639248)\n+6F2A48 Created Zip Spec      14 (20) '2.0'\n+6F2A49 Created OS            00 (0) 'MS-DOS'\n+6F2A4A Extract Zip Spec      14 (20) '2.0'\n+6F2A4B Extract OS            00 (0) 'MS-DOS'\n+6F2A4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2A4E Compression Method    0000 (0) 'Stored'\n+6F2A50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2A54 CRC                   4A3ABC52 (1245363282)\n+6F2A58 Compressed Size       000003DD (989)\n+6F2A5C Uncompressed Size     000003DD (989)\n+6F2A60 Filename Length       003D (61)\n+6F2A62 Extra Length          0009 (9)\n+6F2A64 Comment Length        0000 (0)\n+6F2A66 Disk Start            0000 (0)\n+6F2A68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2A6A Ext File Attributes   00000000 (0)\n+6F2A6E Local Header Offset   0015CFE0 (1429472)\n+6F2A72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2A72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2AAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2AB1   Length              0005 (5)\n+6F2AB3   Flags               01 (1) 'Modification'\n+6F2AB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2AB8 CENTRAL HEADER #536   02014B50 (33639248)\n+6F2ABC Created Zip Spec      14 (20) '2.0'\n+6F2ABD Created OS            00 (0) 'MS-DOS'\n+6F2ABE Extract Zip Spec      14 (20) '2.0'\n+6F2ABF Extract OS            00 (0) 'MS-DOS'\n+6F2AC0 General Purpose Flag  0000 (0)\n+6F2AC2 Compression Method    0000 (0) 'Stored'\n+6F2AC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2AC8 CRC                   00000000 (0)\n+6F2ACC Compressed Size       00000000 (0)\n+6F2AD0 Uncompressed Size     00000000 (0)\n+6F2AD4 Filename Length       001E (30)\n+6F2AD6 Extra Length          0009 (9)\n+6F2AD8 Comment Length        0000 (0)\n+6F2ADA Disk Start            0000 (0)\n+6F2ADC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2ADE Ext File Attributes   00000000 (0)\n+6F2AE2 Local Header Offset   0015D431 (1430577)\n+6F2AE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2AE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2B04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2B06   Length              0005 (5)\n+6F2B08   Flags               01 (1) 'Modification'\n+6F2B09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2B0D CENTRAL HEADER #537   02014B50 (33639248)\n+6F2B11 Created Zip Spec      14 (20) '2.0'\n+6F2B12 Created OS            00 (0) 'MS-DOS'\n+6F2B13 Extract Zip Spec      14 (20) '2.0'\n+6F2B14 Extract OS            00 (0) 'MS-DOS'\n+6F2B15 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2B17 Compression Method    0000 (0) 'Stored'\n+6F2B19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2B1D CRC                   00900547 (9438535)\n+6F2B21 Compressed Size       000003BF (959)\n+6F2B25 Uncompressed Size     000003BF (959)\n+6F2B29 Filename Length       002E (46)\n+6F2B2B Extra Length          0009 (9)\n+6F2B2D Comment Length        0000 (0)\n+6F2B2F Disk Start            0000 (0)\n+6F2B31 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2B33 Ext File Attributes   00000000 (0)\n+6F2B37 Local Header Offset   0015D476 (1430646)\n+6F2B3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2B3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2B69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2B6B   Length              0005 (5)\n+6F2B6D   Flags               01 (1) 'Modification'\n+6F2B6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2B72 CENTRAL HEADER #538   02014B50 (33639248)\n+6F2B76 Created Zip Spec      14 (20) '2.0'\n+6F2B77 Created OS            00 (0) 'MS-DOS'\n+6F2B78 Extract Zip Spec      14 (20) '2.0'\n+6F2B79 Extract OS            00 (0) 'MS-DOS'\n+6F2B7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2B7C Compression Method    0000 (0) 'Stored'\n+6F2B7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2B82 CRC                   1D274B23 (489114403)\n+6F2B86 Compressed Size       000007EC (2028)\n+6F2B8A Uncompressed Size     000007EC (2028)\n+6F2B8E Filename Length       0033 (51)\n+6F2B90 Extra Length          0009 (9)\n+6F2B92 Comment Length        0000 (0)\n+6F2B94 Disk Start            0000 (0)\n+6F2B96 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2B98 Ext File Attributes   00000000 (0)\n+6F2B9C Local Header Offset   0015D89A (1431706)\n+6F2BA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2BA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2BD3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2BD5   Length              0005 (5)\n+6F2BD7   Flags               01 (1) 'Modification'\n+6F2BD8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2BDC CENTRAL HEADER #539   02014B50 (33639248)\n+6F2BE0 Created Zip Spec      14 (20) '2.0'\n+6F2BE1 Created OS            00 (0) 'MS-DOS'\n+6F2BE2 Extract Zip Spec      14 (20) '2.0'\n+6F2BE3 Extract OS            00 (0) 'MS-DOS'\n+6F2BE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2BE6 Compression Method    0000 (0) 'Stored'\n+6F2BE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2BEC CRC                   C514DA82 (3306478210)\n+6F2BF0 Compressed Size       00000465 (1125)\n+6F2BF4 Uncompressed Size     00000465 (1125)\n+6F2BF8 Filename Length       0031 (49)\n+6F2BFA Extra Length          0009 (9)\n+6F2BFC Comment Length        0000 (0)\n+6F2BFE Disk Start            0000 (0)\n+6F2C00 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2C02 Ext File Attributes   00000000 (0)\n+6F2C06 Local Header Offset   0015E0F0 (1433840)\n+6F2C0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2C0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2C3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2C3D   Length              0005 (5)\n+6F2C3F   Flags               01 (1) 'Modification'\n+6F2C40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2C44 CENTRAL HEADER #540   02014B50 (33639248)\n+6F2C48 Created Zip Spec      14 (20) '2.0'\n+6F2C49 Created OS            00 (0) 'MS-DOS'\n+6F2C4A Extract Zip Spec      14 (20) '2.0'\n+6F2C4B Extract OS            00 (0) 'MS-DOS'\n+6F2C4C General Purpose Flag  0000 (0)\n+6F2C4E Compression Method    0000 (0) 'Stored'\n+6F2C50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2C54 CRC                   00000000 (0)\n+6F2C58 Compressed Size       00000000 (0)\n+6F2C5C Uncompressed Size     00000000 (0)\n+6F2C60 Filename Length       001E (30)\n+6F2C62 Extra Length          0009 (9)\n+6F2C64 Comment Length        0000 (0)\n+6F2C66 Disk Start            0000 (0)\n+6F2C68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2C6A Ext File Attributes   00000000 (0)\n+6F2C6E Local Header Offset   0015E5BD (1435069)\n+6F2C72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2C72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2C90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2C92   Length              0005 (5)\n+6F2C94   Flags               01 (1) 'Modification'\n+6F2C95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2C99 CENTRAL HEADER #541   02014B50 (33639248)\n+6F2C9D Created Zip Spec      14 (20) '2.0'\n+6F2C9E Created OS            00 (0) 'MS-DOS'\n+6F2C9F Extract Zip Spec      14 (20) '2.0'\n+6F2CA0 Extract OS            00 (0) 'MS-DOS'\n+6F2CA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2CA3 Compression Method    0000 (0) 'Stored'\n+6F2CA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2CA9 CRC                   643DA964 (1681762660)\n+6F2CAD Compressed Size       00000B4F (2895)\n+6F2CB1 Uncompressed Size     00000B4F (2895)\n+6F2CB5 Filename Length       002B (43)\n+6F2CB7 Extra Length          0009 (9)\n+6F2CB9 Comment Length        0000 (0)\n+6F2CBB Disk Start            0000 (0)\n+6F2CBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2CBF Ext File Attributes   00000000 (0)\n+6F2CC3 Local Header Offset   0015E602 (1435138)\n+6F2CC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2CC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2CF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2CF4   Length              0005 (5)\n+6F2CF6   Flags               01 (1) 'Modification'\n+6F2CF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2CFB CENTRAL HEADER #542   02014B50 (33639248)\n+6F2CFF Created Zip Spec      14 (20) '2.0'\n+6F2D00 Created OS            00 (0) 'MS-DOS'\n+6F2D01 Extract Zip Spec      14 (20) '2.0'\n+6F2D02 Extract OS            00 (0) 'MS-DOS'\n+6F2D03 General Purpose Flag  0000 (0)\n+6F2D05 Compression Method    0000 (0) 'Stored'\n+6F2D07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2D0B CRC                   00000000 (0)\n+6F2D0F Compressed Size       00000000 (0)\n+6F2D13 Uncompressed Size     00000000 (0)\n+6F2D17 Filename Length       001D (29)\n+6F2D19 Extra Length          0009 (9)\n+6F2D1B Comment Length        0000 (0)\n+6F2D1D Disk Start            0000 (0)\n+6F2D1F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2D21 Ext File Attributes   00000000 (0)\n+6F2D25 Local Header Offset   0015F1B3 (1438131)\n+6F2D29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2D29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2D46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2D48   Length              0005 (5)\n+6F2D4A   Flags               01 (1) 'Modification'\n+6F2D4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2D4F CENTRAL HEADER #543   02014B50 (33639248)\n+6F2D53 Created Zip Spec      14 (20) '2.0'\n+6F2D54 Created OS            00 (0) 'MS-DOS'\n+6F2D55 Extract Zip Spec      14 (20) '2.0'\n+6F2D56 Extract OS            00 (0) 'MS-DOS'\n+6F2D57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2D59 Compression Method    0000 (0) 'Stored'\n+6F2D5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2D5F CRC                   1456EFA1 (341241761)\n+6F2D63 Compressed Size       000003BB (955)\n+6F2D67 Uncompressed Size     000003BB (955)\n+6F2D6B Filename Length       002C (44)\n+6F2D6D Extra Length          0009 (9)\n+6F2D6F Comment Length        0000 (0)\n+6F2D71 Disk Start            0000 (0)\n+6F2D73 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2D75 Ext File Attributes   00000000 (0)\n+6F2D79 Local Header Offset   0015F1F7 (1438199)\n+6F2D7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2D7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2DA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2DAB   Length              0005 (5)\n+6F2DAD   Flags               01 (1) 'Modification'\n+6F2DAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2DB2 CENTRAL HEADER #544   02014B50 (33639248)\n+6F2DB6 Created Zip Spec      14 (20) '2.0'\n+6F2DB7 Created OS            00 (0) 'MS-DOS'\n+6F2DB8 Extract Zip Spec      14 (20) '2.0'\n+6F2DB9 Extract OS            00 (0) 'MS-DOS'\n+6F2DBA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2DBC Compression Method    0000 (0) 'Stored'\n+6F2DBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2DC2 CRC                   E92C073F (3911976767)\n+6F2DC6 Compressed Size       000003B9 (953)\n+6F2DCA Uncompressed Size     000003B9 (953)\n+6F2DCE Filename Length       002B (43)\n+6F2DD0 Extra Length          0009 (9)\n+6F2DD2 Comment Length        0000 (0)\n+6F2DD4 Disk Start            0000 (0)\n+6F2DD6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2DD8 Ext File Attributes   00000000 (0)\n+6F2DDC Local Header Offset   0015F615 (1439253)\n+6F2DE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2DE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2E0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2E0D   Length              0005 (5)\n+6F2E0F   Flags               01 (1) 'Modification'\n+6F2E10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2E14 CENTRAL HEADER #545   02014B50 (33639248)\n+6F2E18 Created Zip Spec      14 (20) '2.0'\n+6F2E19 Created OS            00 (0) 'MS-DOS'\n+6F2E1A Extract Zip Spec      14 (20) '2.0'\n+6F2E1B Extract OS            00 (0) 'MS-DOS'\n+6F2E1C General Purpose Flag  0000 (0)\n+6F2E1E Compression Method    0000 (0) 'Stored'\n+6F2E20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2E24 CRC                   00000000 (0)\n+6F2E28 Compressed Size       00000000 (0)\n+6F2E2C Uncompressed Size     00000000 (0)\n+6F2E30 Filename Length       0004 (4)\n+6F2E32 Extra Length          0009 (9)\n+6F2E34 Comment Length        0000 (0)\n+6F2E36 Disk Start            0000 (0)\n+6F2E38 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2E3A Ext File Attributes   00000000 (0)\n+6F2E3E Local Header Offset   0015FA30 (1440304)\n+6F2E42 Filename              'XXXX'\n+#\n+# WARNING: Offset 0x6F2E42: Filename 'XXXX'\n+#          Zero length filename\n+#\n+6F2E46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2E48   Length              0005 (5)\n+6F2E4A   Flags               01 (1) 'Modification'\n+6F2E4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2E4F CENTRAL HEADER #546   02014B50 (33639248)\n+6F2E53 Created Zip Spec      14 (20) '2.0'\n+6F2E54 Created OS            00 (0) 'MS-DOS'\n+6F2E55 Extract Zip Spec      14 (20) '2.0'\n+6F2E56 Extract OS            00 (0) 'MS-DOS'\n+6F2E57 General Purpose Flag  0000 (0)\n+6F2E59 Compression Method    0000 (0) 'Stored'\n+6F2E5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2E5F CRC                   00000000 (0)\n+6F2E63 Compressed Size       00000000 (0)\n+6F2E67 Uncompressed Size     00000000 (0)\n+6F2E6B Filename Length       000B (11)\n+6F2E6D Extra Length          0009 (9)\n+6F2E6F Comment Length        0000 (0)\n+6F2E71 Disk Start            0000 (0)\n+6F2E73 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2E75 Ext File Attributes   00000000 (0)\n+6F2E79 Local Header Offset   0015FA5B (1440347)\n+6F2E7D Filename              'XXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2E7D: Filename 'XXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2E88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2E8A   Length              0005 (5)\n+6F2E8C   Flags               01 (1) 'Modification'\n+6F2E8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2E91 CENTRAL HEADER #547   02014B50 (33639248)\n+6F2E95 Created Zip Spec      14 (20) '2.0'\n+6F2E96 Created OS            00 (0) 'MS-DOS'\n+6F2E97 Extract Zip Spec      14 (20) '2.0'\n+6F2E98 Extract OS            00 (0) 'MS-DOS'\n+6F2E99 General Purpose Flag  0000 (0)\n+6F2E9B Compression Method    0000 (0) 'Stored'\n+6F2E9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2EA1 CRC                   00000000 (0)\n+6F2EA5 Compressed Size       00000000 (0)\n+6F2EA9 Uncompressed Size     00000000 (0)\n+6F2EAD Filename Length       0011 (17)\n+6F2EAF Extra Length          0009 (9)\n+6F2EB1 Comment Length        0000 (0)\n+6F2EB3 Disk Start            0000 (0)\n+6F2EB5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2EB7 Ext File Attributes   00000000 (0)\n+6F2EBB Local Header Offset   0015FA8D (1440397)\n+6F2EBF Filename              'XXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2EBF: Filename 'XXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2ED0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2ED2   Length              0005 (5)\n+6F2ED4   Flags               01 (1) 'Modification'\n+6F2ED5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2ED9 CENTRAL HEADER #548   02014B50 (33639248)\n+6F2EDD Created Zip Spec      14 (20) '2.0'\n+6F2EDE Created OS            00 (0) 'MS-DOS'\n+6F2EDF Extract Zip Spec      14 (20) '2.0'\n+6F2EE0 Extract OS            00 (0) 'MS-DOS'\n+6F2EE1 General Purpose Flag  0000 (0)\n+6F2EE3 Compression Method    0000 (0) 'Stored'\n+6F2EE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2EE9 CRC                   00000000 (0)\n+6F2EED Compressed Size       00000000 (0)\n+6F2EF1 Uncompressed Size     00000000 (0)\n+6F2EF5 Filename Length       0017 (23)\n+6F2EF7 Extra Length          0009 (9)\n+6F2EF9 Comment Length        0000 (0)\n+6F2EFB Disk Start            0000 (0)\n+6F2EFD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2EFF Ext File Attributes   00000000 (0)\n+6F2F03 Local Header Offset   0015FAC5 (1440453)\n+6F2F07 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2F07: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2F1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2F20   Length              0005 (5)\n+6F2F22   Flags               01 (1) 'Modification'\n+6F2F23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2F27 CENTRAL HEADER #549   02014B50 (33639248)\n+6F2F2B Created Zip Spec      14 (20) '2.0'\n+6F2F2C Created OS            00 (0) 'MS-DOS'\n+6F2F2D Extract Zip Spec      14 (20) '2.0'\n+6F2F2E Extract OS            00 (0) 'MS-DOS'\n+6F2F2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2F31 Compression Method    0000 (0) 'Stored'\n+6F2F33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2F37 CRC                   4E701AB1 (1315969713)\n+6F2F3B Compressed Size       000006EA (1770)\n+6F2F3F Uncompressed Size     000006EA (1770)\n+6F2F43 Filename Length       0021 (33)\n+6F2F45 Extra Length          0009 (9)\n+6F2F47 Comment Length        0000 (0)\n+6F2F49 Disk Start            0000 (0)\n+6F2F4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2F4D Ext File Attributes   00000000 (0)\n+6F2F51 Local Header Offset   0015FB03 (1440515)\n+6F2F55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2F55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2F76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2F78   Length              0005 (5)\n+6F2F7A   Flags               01 (1) 'Modification'\n+6F2F7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2F7F CENTRAL HEADER #550   02014B50 (33639248)\n+6F2F83 Created Zip Spec      14 (20) '2.0'\n+6F2F84 Created OS            00 (0) 'MS-DOS'\n+6F2F85 Extract Zip Spec      14 (20) '2.0'\n+6F2F86 Extract OS            00 (0) 'MS-DOS'\n+6F2F87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F2F89 Compression Method    0000 (0) 'Stored'\n+6F2F8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2F8F CRC                   95722913 (2507286803)\n+6F2F93 Compressed Size       000006C2 (1730)\n+6F2F97 Uncompressed Size     000006C2 (1730)\n+6F2F9B Filename Length       0028 (40)\n+6F2F9D Extra Length          0009 (9)\n+6F2F9F Comment Length        0000 (0)\n+6F2FA1 Disk Start            0000 (0)\n+6F2FA3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F2FA5 Ext File Attributes   00000000 (0)\n+6F2FA9 Local Header Offset   00160245 (1442373)\n+6F2FAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F2FAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F2FD5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F2FD7   Length              0005 (5)\n+6F2FD9   Flags               01 (1) 'Modification'\n+6F2FDA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F2FDE CENTRAL HEADER #551   02014B50 (33639248)\n+6F2FE2 Created Zip Spec      14 (20) '2.0'\n+6F2FE3 Created OS            00 (0) 'MS-DOS'\n+6F2FE4 Extract Zip Spec      14 (20) '2.0'\n+6F2FE5 Extract OS            00 (0) 'MS-DOS'\n+6F2FE6 General Purpose Flag  0000 (0)\n+6F2FE8 Compression Method    0000 (0) 'Stored'\n+6F2FEA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F2FEE CRC                   00000000 (0)\n+6F2FF2 Compressed Size       00000000 (0)\n+6F2FF6 Uncompressed Size     00000000 (0)\n+6F2FFA Filename Length       001E (30)\n+6F2FFC Extra Length          0009 (9)\n+6F2FFE Comment Length        0000 (0)\n+6F3000 Disk Start            0000 (0)\n+6F3002 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3004 Ext File Attributes   00000000 (0)\n+6F3008 Local Header Offset   00160966 (1444198)\n+6F300C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F300C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F302A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F302C   Length              0005 (5)\n+6F302E   Flags               01 (1) 'Modification'\n+6F302F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3033 CENTRAL HEADER #552   02014B50 (33639248)\n+6F3037 Created Zip Spec      14 (20) '2.0'\n+6F3038 Created OS            00 (0) 'MS-DOS'\n+6F3039 Extract Zip Spec      14 (20) '2.0'\n+6F303A Extract OS            00 (0) 'MS-DOS'\n+6F303B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F303D Compression Method    0000 (0) 'Stored'\n+6F303F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3043 CRC                   0E9E2711 (245245713)\n+6F3047 Compressed Size       000016CB (5835)\n+6F304B Uncompressed Size     000016CB (5835)\n+6F304F Filename Length       002E (46)\n+6F3051 Extra Length          0009 (9)\n+6F3053 Comment Length        0000 (0)\n+6F3055 Disk Start            0000 (0)\n+6F3057 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3059 Ext File Attributes   00000000 (0)\n+6F305D Local Header Offset   001609AB (1444267)\n+6F3061 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3061: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F308F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3091   Length              0005 (5)\n+6F3093   Flags               01 (1) 'Modification'\n+6F3094   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3098 CENTRAL HEADER #553   02014B50 (33639248)\n+6F309C Created Zip Spec      14 (20) '2.0'\n+6F309D Created OS            00 (0) 'MS-DOS'\n+6F309E Extract Zip Spec      14 (20) '2.0'\n+6F309F Extract OS            00 (0) 'MS-DOS'\n+6F30A0 General Purpose Flag  0000 (0)\n+6F30A2 Compression Method    0000 (0) 'Stored'\n+6F30A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F30A8 CRC                   00000000 (0)\n+6F30AC Compressed Size       00000000 (0)\n+6F30B0 Uncompressed Size     00000000 (0)\n+6F30B4 Filename Length       001F (31)\n+6F30B6 Extra Length          0009 (9)\n+6F30B8 Comment Length        0000 (0)\n+6F30BA Disk Start            0000 (0)\n+6F30BC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F30BE Ext File Attributes   00000000 (0)\n+6F30C2 Local Header Offset   001620DB (1450203)\n+6F30C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F30C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F30E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F30E7   Length              0005 (5)\n+6F30E9   Flags               01 (1) 'Modification'\n+6F30EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F30EE CENTRAL HEADER #554   02014B50 (33639248)\n+6F30F2 Created Zip Spec      14 (20) '2.0'\n+6F30F3 Created OS            00 (0) 'MS-DOS'\n+6F30F4 Extract Zip Spec      14 (20) '2.0'\n+6F30F5 Extract OS            00 (0) 'MS-DOS'\n+6F30F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F30F8 Compression Method    0000 (0) 'Stored'\n+6F30FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F30FE CRC                   048D5F10 (76373776)\n+6F3102 Compressed Size       00000C38 (3128)\n+6F3106 Uncompressed Size     00000C38 (3128)\n+6F310A Filename Length       0038 (56)\n+6F310C Extra Length          0009 (9)\n+6F310E Comment Length        0000 (0)\n+6F3110 Disk Start            0000 (0)\n+6F3112 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3114 Ext File Attributes   00000000 (0)\n+6F3118 Local Header Offset   00162121 (1450273)\n+6F311C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F311C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3154 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3156   Length              0005 (5)\n+6F3158   Flags               01 (1) 'Modification'\n+6F3159   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F315D CENTRAL HEADER #555   02014B50 (33639248)\n+6F3161 Created Zip Spec      14 (20) '2.0'\n+6F3162 Created OS            00 (0) 'MS-DOS'\n+6F3163 Extract Zip Spec      14 (20) '2.0'\n+6F3164 Extract OS            00 (0) 'MS-DOS'\n+6F3165 General Purpose Flag  0000 (0)\n+6F3167 Compression Method    0000 (0) 'Stored'\n+6F3169 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F316D CRC                   00000000 (0)\n+6F3171 Compressed Size       00000000 (0)\n+6F3175 Uncompressed Size     00000000 (0)\n+6F3179 Filename Length       0028 (40)\n+6F317B Extra Length          0009 (9)\n+6F317D Comment Length        0000 (0)\n+6F317F Disk Start            0000 (0)\n+6F3181 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3183 Ext File Attributes   00000000 (0)\n+6F3187 Local Header Offset   00162DC8 (1453512)\n+6F318B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F318B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F31B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F31B5   Length              0005 (5)\n+6F31B7   Flags               01 (1) 'Modification'\n+6F31B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F31BC CENTRAL HEADER #556   02014B50 (33639248)\n+6F31C0 Created Zip Spec      14 (20) '2.0'\n+6F31C1 Created OS            00 (0) 'MS-DOS'\n+6F31C2 Extract Zip Spec      14 (20) '2.0'\n+6F31C3 Extract OS            00 (0) 'MS-DOS'\n+6F31C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F31C6 Compression Method    0000 (0) 'Stored'\n+6F31C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F31CC CRC                   EF4D8024 (4014833700)\n+6F31D0 Compressed Size       00000C9F (3231)\n+6F31D4 Uncompressed Size     00000C9F (3231)\n+6F31D8 Filename Length       003A (58)\n+6F31DA Extra Length          0009 (9)\n+6F31DC Comment Length        0000 (0)\n+6F31DE Disk Start            0000 (0)\n+6F31E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F31E2 Ext File Attributes   00000000 (0)\n+6F31E6 Local Header Offset   00162E17 (1453591)\n+6F31EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F31EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3224 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3226   Length              0005 (5)\n+6F3228   Flags               01 (1) 'Modification'\n+6F3229   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F322D CENTRAL HEADER #557   02014B50 (33639248)\n+6F3231 Created Zip Spec      14 (20) '2.0'\n+6F3232 Created OS            00 (0) 'MS-DOS'\n+6F3233 Extract Zip Spec      14 (20) '2.0'\n+6F3234 Extract OS            00 (0) 'MS-DOS'\n+6F3235 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3237 Compression Method    0000 (0) 'Stored'\n+6F3239 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F323D CRC                   11FDDB06 (301849350)\n+6F3241 Compressed Size       0000065F (1631)\n+6F3245 Uncompressed Size     0000065F (1631)\n+6F3249 Filename Length       0041 (65)\n+6F324B Extra Length          0009 (9)\n+6F324D Comment Length        0000 (0)\n+6F324F Disk Start            0000 (0)\n+6F3251 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3253 Ext File Attributes   00000000 (0)\n+6F3257 Local Header Offset   00163B27 (1456935)\n+6F325B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F325B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F329C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F329E   Length              0005 (5)\n+6F32A0   Flags               01 (1) 'Modification'\n+6F32A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F32A5 CENTRAL HEADER #558   02014B50 (33639248)\n+6F32A9 Created Zip Spec      14 (20) '2.0'\n+6F32AA Created OS            00 (0) 'MS-DOS'\n+6F32AB Extract Zip Spec      14 (20) '2.0'\n+6F32AC Extract OS            00 (0) 'MS-DOS'\n+6F32AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F32AF Compression Method    0000 (0) 'Stored'\n+6F32B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F32B5 CRC                   901C84B7 (2417788087)\n+6F32B9 Compressed Size       00002AEB (10987)\n+6F32BD Uncompressed Size     00002AEB (10987)\n+6F32C1 Filename Length       0038 (56)\n+6F32C3 Extra Length          0009 (9)\n+6F32C5 Comment Length        0000 (0)\n+6F32C7 Disk Start            0000 (0)\n+6F32C9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F32CB Ext File Attributes   00000000 (0)\n+6F32CF Local Header Offset   001641FE (1458686)\n+6F32D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F32D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F330B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F330D   Length              0005 (5)\n+6F330F   Flags               01 (1) 'Modification'\n+6F3310   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3314 CENTRAL HEADER #559   02014B50 (33639248)\n+6F3318 Created Zip Spec      14 (20) '2.0'\n+6F3319 Created OS            00 (0) 'MS-DOS'\n+6F331A Extract Zip Spec      14 (20) '2.0'\n+6F331B Extract OS            00 (0) 'MS-DOS'\n+6F331C General Purpose Flag  0000 (0)\n+6F331E Compression Method    0000 (0) 'Stored'\n+6F3320 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3324 CRC                   00000000 (0)\n+6F3328 Compressed Size       00000000 (0)\n+6F332C Uncompressed Size     00000000 (0)\n+6F3330 Filename Length       0026 (38)\n+6F3332 Extra Length          0009 (9)\n+6F3334 Comment Length        0000 (0)\n+6F3336 Disk Start            0000 (0)\n+6F3338 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F333A Ext File Attributes   00000000 (0)\n+6F333E Local Header Offset   00166D58 (1469784)\n+6F3342 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3342: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3368 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F336A   Length              0005 (5)\n+6F336C   Flags               01 (1) 'Modification'\n+6F336D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3371 CENTRAL HEADER #560   02014B50 (33639248)\n+6F3375 Created Zip Spec      14 (20) '2.0'\n+6F3376 Created OS            00 (0) 'MS-DOS'\n+6F3377 Extract Zip Spec      14 (20) '2.0'\n+6F3378 Extract OS            00 (0) 'MS-DOS'\n+6F3379 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F337B Compression Method    0000 (0) 'Stored'\n+6F337D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3381 CRC                   5EA7953B (1588041019)\n+6F3385 Compressed Size       00000E48 (3656)\n+6F3389 Uncompressed Size     00000E48 (3656)\n+6F338D Filename Length       0031 (49)\n+6F338F Extra Length          0009 (9)\n+6F3391 Comment Length        0000 (0)\n+6F3393 Disk Start            0000 (0)\n+6F3395 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3397 Ext File Attributes   00000000 (0)\n+6F339B Local Header Offset   00166DA5 (1469861)\n+6F339F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F339F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F33D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F33D2   Length              0005 (5)\n+6F33D4   Flags               01 (1) 'Modification'\n+6F33D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F33D9 CENTRAL HEADER #561   02014B50 (33639248)\n+6F33DD Created Zip Spec      14 (20) '2.0'\n+6F33DE Created OS            00 (0) 'MS-DOS'\n+6F33DF Extract Zip Spec      14 (20) '2.0'\n+6F33E0 Extract OS            00 (0) 'MS-DOS'\n+6F33E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F33E3 Compression Method    0000 (0) 'Stored'\n+6F33E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F33E9 CRC                   05E875FD (99120637)\n+6F33ED Compressed Size       0000070E (1806)\n+6F33F1 Uncompressed Size     0000070E (1806)\n+6F33F5 Filename Length       0038 (56)\n+6F33F7 Extra Length          0009 (9)\n+6F33F9 Comment Length        0000 (0)\n+6F33FB Disk Start            0000 (0)\n+6F33FD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F33FF Ext File Attributes   00000000 (0)\n+6F3403 Local Header Offset   00167C55 (1473621)\n+6F3407 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3407: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F343F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3441   Length              0005 (5)\n+6F3443   Flags               01 (1) 'Modification'\n+6F3444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3448 CENTRAL HEADER #562   02014B50 (33639248)\n+6F344C Created Zip Spec      14 (20) '2.0'\n+6F344D Created OS            00 (0) 'MS-DOS'\n+6F344E Extract Zip Spec      14 (20) '2.0'\n+6F344F Extract OS            00 (0) 'MS-DOS'\n+6F3450 General Purpose Flag  0000 (0)\n+6F3452 Compression Method    0000 (0) 'Stored'\n+6F3454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3458 CRC                   00000000 (0)\n+6F345C Compressed Size       00000000 (0)\n+6F3460 Uncompressed Size     00000000 (0)\n+6F3464 Filename Length       0023 (35)\n+6F3466 Extra Length          0009 (9)\n+6F3468 Comment Length        0000 (0)\n+6F346A Disk Start            0000 (0)\n+6F346C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F346E Ext File Attributes   00000000 (0)\n+6F3472 Local Header Offset   001683D2 (1475538)\n+6F3476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3499 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F349B   Length              0005 (5)\n+6F349D   Flags               01 (1) 'Modification'\n+6F349E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F34A2 CENTRAL HEADER #563   02014B50 (33639248)\n+6F34A6 Created Zip Spec      14 (20) '2.0'\n+6F34A7 Created OS            00 (0) 'MS-DOS'\n+6F34A8 Extract Zip Spec      14 (20) '2.0'\n+6F34A9 Extract OS            00 (0) 'MS-DOS'\n+6F34AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F34AC Compression Method    0000 (0) 'Stored'\n+6F34AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F34B2 CRC                   21421505 (557978885)\n+6F34B6 Compressed Size       00000C9E (3230)\n+6F34BA Uncompressed Size     00000C9E (3230)\n+6F34BE Filename Length       0030 (48)\n+6F34C0 Extra Length          0009 (9)\n+6F34C2 Comment Length        0000 (0)\n+6F34C4 Disk Start            0000 (0)\n+6F34C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F34C8 Ext File Attributes   00000000 (0)\n+6F34CC Local Header Offset   0016841C (1475612)\n+6F34D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F34D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3500 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3502   Length              0005 (5)\n+6F3504   Flags               01 (1) 'Modification'\n+6F3505   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3509 CENTRAL HEADER #564   02014B50 (33639248)\n+6F350D Created Zip Spec      14 (20) '2.0'\n+6F350E Created OS            00 (0) 'MS-DOS'\n+6F350F Extract Zip Spec      14 (20) '2.0'\n+6F3510 Extract OS            00 (0) 'MS-DOS'\n+6F3511 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3513 Compression Method    0000 (0) 'Stored'\n+6F3515 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3519 CRC                   766BD114 (1986777364)\n+6F351D Compressed Size       00000649 (1609)\n+6F3521 Uncompressed Size     00000649 (1609)\n+6F3525 Filename Length       0037 (55)\n+6F3527 Extra Length          0009 (9)\n+6F3529 Comment Length        0000 (0)\n+6F352B Disk Start            0000 (0)\n+6F352D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F352F Ext File Attributes   00000000 (0)\n+6F3533 Local Header Offset   00169121 (1478945)\n+6F3537 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3537: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F356E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3570   Length              0005 (5)\n+6F3572   Flags               01 (1) 'Modification'\n+6F3573   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3577 CENTRAL HEADER #565   02014B50 (33639248)\n+6F357B Created Zip Spec      14 (20) '2.0'\n+6F357C Created OS            00 (0) 'MS-DOS'\n+6F357D Extract Zip Spec      14 (20) '2.0'\n+6F357E Extract OS            00 (0) 'MS-DOS'\n+6F357F General Purpose Flag  0000 (0)\n+6F3581 Compression Method    0000 (0) 'Stored'\n+6F3583 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3587 CRC                   00000000 (0)\n+6F358B Compressed Size       00000000 (0)\n+6F358F Uncompressed Size     00000000 (0)\n+6F3593 Filename Length       0023 (35)\n+6F3595 Extra Length          0009 (9)\n+6F3597 Comment Length        0000 (0)\n+6F3599 Disk Start            0000 (0)\n+6F359B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F359D Ext File Attributes   00000000 (0)\n+6F35A1 Local Header Offset   001697D8 (1480664)\n+6F35A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F35A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F35C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F35CA   Length              0005 (5)\n+6F35CC   Flags               01 (1) 'Modification'\n+6F35CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F35D1 CENTRAL HEADER #566   02014B50 (33639248)\n+6F35D5 Created Zip Spec      14 (20) '2.0'\n+6F35D6 Created OS            00 (0) 'MS-DOS'\n+6F35D7 Extract Zip Spec      14 (20) '2.0'\n+6F35D8 Extract OS            00 (0) 'MS-DOS'\n+6F35D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F35DB Compression Method    0000 (0) 'Stored'\n+6F35DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F35E1 CRC                   E901806B (3909189739)\n+6F35E5 Compressed Size       00000B75 (2933)\n+6F35E9 Uncompressed Size     00000B75 (2933)\n+6F35ED Filename Length       0030 (48)\n+6F35EF Extra Length          0009 (9)\n+6F35F1 Comment Length        0000 (0)\n+6F35F3 Disk Start            0000 (0)\n+6F35F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F35F7 Ext File Attributes   00000000 (0)\n+6F35FB Local Header Offset   00169822 (1480738)\n+6F35FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F35FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F362F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3631   Length              0005 (5)\n+6F3633   Flags               01 (1) 'Modification'\n+6F3634   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3638 CENTRAL HEADER #567   02014B50 (33639248)\n+6F363C Created Zip Spec      14 (20) '2.0'\n+6F363D Created OS            00 (0) 'MS-DOS'\n+6F363E Extract Zip Spec      14 (20) '2.0'\n+6F363F Extract OS            00 (0) 'MS-DOS'\n+6F3640 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3642 Compression Method    0000 (0) 'Stored'\n+6F3644 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3648 CRC                   45C1CEBF (1170329279)\n+6F364C Compressed Size       00000649 (1609)\n+6F3650 Uncompressed Size     00000649 (1609)\n+6F3654 Filename Length       0037 (55)\n+6F3656 Extra Length          0009 (9)\n+6F3658 Comment Length        0000 (0)\n+6F365A Disk Start            0000 (0)\n+6F365C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F365E Ext File Attributes   00000000 (0)\n+6F3662 Local Header Offset   0016A3FE (1483774)\n+6F3666 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3666: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F369D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F369F   Length              0005 (5)\n+6F36A1   Flags               01 (1) 'Modification'\n+6F36A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F36A6 CENTRAL HEADER #568   02014B50 (33639248)\n+6F36AA Created Zip Spec      14 (20) '2.0'\n+6F36AB Created OS            00 (0) 'MS-DOS'\n+6F36AC Extract Zip Spec      14 (20) '2.0'\n+6F36AD Extract OS            00 (0) 'MS-DOS'\n+6F36AE General Purpose Flag  0000 (0)\n+6F36B0 Compression Method    0000 (0) 'Stored'\n+6F36B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F36B6 CRC                   00000000 (0)\n+6F36BA Compressed Size       00000000 (0)\n+6F36BE Uncompressed Size     00000000 (0)\n+6F36C2 Filename Length       002B (43)\n+6F36C4 Extra Length          0009 (9)\n+6F36C6 Comment Length        0000 (0)\n+6F36C8 Disk Start            0000 (0)\n+6F36CA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F36CC Ext File Attributes   00000000 (0)\n+6F36D0 Local Header Offset   0016AAB5 (1485493)\n+6F36D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F36D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F36FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3701   Length              0005 (5)\n+6F3703   Flags               01 (1) 'Modification'\n+6F3704   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3708 CENTRAL HEADER #569   02014B50 (33639248)\n+6F370C Created Zip Spec      14 (20) '2.0'\n+6F370D Created OS            00 (0) 'MS-DOS'\n+6F370E Extract Zip Spec      14 (20) '2.0'\n+6F370F Extract OS            00 (0) 'MS-DOS'\n+6F3710 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3712 Compression Method    0000 (0) 'Stored'\n+6F3714 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3718 CRC                   27EFB86F (670021743)\n+6F371C Compressed Size       00000B71 (2929)\n+6F3720 Uncompressed Size     00000B71 (2929)\n+6F3724 Filename Length       0040 (64)\n+6F3726 Extra Length          0009 (9)\n+6F3728 Comment Length        0000 (0)\n+6F372A Disk Start            0000 (0)\n+6F372C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F372E Ext File Attributes   00000000 (0)\n+6F3732 Local Header Offset   0016AB07 (1485575)\n+6F3736 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3736: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3776 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3778   Length              0005 (5)\n+6F377A   Flags               01 (1) 'Modification'\n+6F377B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F377F CENTRAL HEADER #570   02014B50 (33639248)\n+6F3783 Created Zip Spec      14 (20) '2.0'\n+6F3784 Created OS            00 (0) 'MS-DOS'\n+6F3785 Extract Zip Spec      14 (20) '2.0'\n+6F3786 Extract OS            00 (0) 'MS-DOS'\n+6F3787 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3789 Compression Method    0000 (0) 'Stored'\n+6F378B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F378F CRC                   0D988858 (228100184)\n+6F3793 Compressed Size       000006C6 (1734)\n+6F3797 Uncompressed Size     000006C6 (1734)\n+6F379B Filename Length       0047 (71)\n+6F379D Extra Length          0009 (9)\n+6F379F Comment Length        0000 (0)\n+6F37A1 Disk Start            0000 (0)\n+6F37A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F37A5 Ext File Attributes   00000000 (0)\n+6F37A9 Local Header Offset   0016B6EF (1488623)\n+6F37AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F37AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F37F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F37F6   Length              0005 (5)\n+6F37F8   Flags               01 (1) 'Modification'\n+6F37F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F37FD CENTRAL HEADER #571   02014B50 (33639248)\n+6F3801 Created Zip Spec      14 (20) '2.0'\n+6F3802 Created OS            00 (0) 'MS-DOS'\n+6F3803 Extract Zip Spec      14 (20) '2.0'\n+6F3804 Extract OS            00 (0) 'MS-DOS'\n+6F3805 General Purpose Flag  0000 (0)\n+6F3807 Compression Method    0000 (0) 'Stored'\n+6F3809 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F380D CRC                   00000000 (0)\n+6F3811 Compressed Size       00000000 (0)\n+6F3815 Uncompressed Size     00000000 (0)\n+6F3819 Filename Length       0018 (24)\n+6F381B Extra Length          0009 (9)\n+6F381D Comment Length        0000 (0)\n+6F381F Disk Start            0000 (0)\n+6F3821 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3823 Ext File Attributes   00000000 (0)\n+6F3827 Local Header Offset   0016BE33 (1490483)\n+6F382B Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F382B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3843 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3845   Length              0005 (5)\n+6F3847   Flags               01 (1) 'Modification'\n+6F3848   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F384C CENTRAL HEADER #572   02014B50 (33639248)\n+6F3850 Created Zip Spec      14 (20) '2.0'\n+6F3851 Created OS            00 (0) 'MS-DOS'\n+6F3852 Extract Zip Spec      14 (20) '2.0'\n+6F3853 Extract OS            00 (0) 'MS-DOS'\n+6F3854 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3856 Compression Method    0000 (0) 'Stored'\n+6F3858 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F385C CRC                   7A6AA41E (2053809182)\n+6F3860 Compressed Size       00001180 (4480)\n+6F3864 Uncompressed Size     00001180 (4480)\n+6F3868 Filename Length       0030 (48)\n+6F386A Extra Length          0009 (9)\n+6F386C Comment Length        0000 (0)\n+6F386E Disk Start            0000 (0)\n+6F3870 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3872 Ext File Attributes   00000000 (0)\n+6F3876 Local Header Offset   0016BE72 (1490546)\n+6F387A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F387A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F38AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F38AC   Length              0005 (5)\n+6F38AE   Flags               01 (1) 'Modification'\n+6F38AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F38B3 CENTRAL HEADER #573   02014B50 (33639248)\n+6F38B7 Created Zip Spec      14 (20) '2.0'\n+6F38B8 Created OS            00 (0) 'MS-DOS'\n+6F38B9 Extract Zip Spec      14 (20) '2.0'\n+6F38BA Extract OS            00 (0) 'MS-DOS'\n+6F38BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F38BD Compression Method    0000 (0) 'Stored'\n+6F38BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F38C3 CRC                   00F537FE (16070654)\n+6F38C7 Compressed Size       00000577 (1399)\n+6F38CB Uncompressed Size     00000577 (1399)\n+6F38CF Filename Length       0029 (41)\n+6F38D1 Extra Length          0009 (9)\n+6F38D3 Comment Length        0000 (0)\n+6F38D5 Disk Start            0000 (0)\n+6F38D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F38D9 Ext File Attributes   00000000 (0)\n+6F38DD Local Header Offset   0016D059 (1495129)\n+6F38E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F38E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F390A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F390C   Length              0005 (5)\n+6F390E   Flags               01 (1) 'Modification'\n+6F390F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3913 CENTRAL HEADER #574   02014B50 (33639248)\n+6F3917 Created Zip Spec      14 (20) '2.0'\n+6F3918 Created OS            00 (0) 'MS-DOS'\n+6F3919 Extract Zip Spec      14 (20) '2.0'\n+6F391A Extract OS            00 (0) 'MS-DOS'\n+6F391B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F391D Compression Method    0000 (0) 'Stored'\n+6F391F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3923 CRC                   1CCCA507 (483173639)\n+6F3927 Compressed Size       000009AB (2475)\n+6F392B Uncompressed Size     000009AB (2475)\n+6F392F Filename Length       0026 (38)\n+6F3931 Extra Length          0009 (9)\n+6F3933 Comment Length        0000 (0)\n+6F3935 Disk Start            0000 (0)\n+6F3937 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3939 Ext File Attributes   00000000 (0)\n+6F393D Local Header Offset   0016D630 (1496624)\n+6F3941 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3941: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3967 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3969   Length              0005 (5)\n+6F396B   Flags               01 (1) 'Modification'\n+6F396C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3970 CENTRAL HEADER #575   02014B50 (33639248)\n+6F3974 Created Zip Spec      14 (20) '2.0'\n+6F3975 Created OS            00 (0) 'MS-DOS'\n+6F3976 Extract Zip Spec      14 (20) '2.0'\n+6F3977 Extract OS            00 (0) 'MS-DOS'\n+6F3978 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F397A Compression Method    0000 (0) 'Stored'\n+6F397C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3980 CRC                   0622E0A0 (102949024)\n+6F3984 Compressed Size       0000049F (1183)\n+6F3988 Uncompressed Size     0000049F (1183)\n+6F398C Filename Length       0021 (33)\n+6F398E Extra Length          0009 (9)\n+6F3990 Comment Length        0000 (0)\n+6F3992 Disk Start            0000 (0)\n+6F3994 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3996 Ext File Attributes   00000000 (0)\n+6F399A Local Header Offset   0016E038 (1499192)\n+6F399E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F399E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F39BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F39C1   Length              0005 (5)\n+6F39C3   Flags               01 (1) 'Modification'\n+6F39C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F39C8 CENTRAL HEADER #576   02014B50 (33639248)\n+6F39CC Created Zip Spec      14 (20) '2.0'\n+6F39CD Created OS            00 (0) 'MS-DOS'\n+6F39CE Extract Zip Spec      14 (20) '2.0'\n+6F39CF Extract OS            00 (0) 'MS-DOS'\n+6F39D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F39D2 Compression Method    0000 (0) 'Stored'\n+6F39D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F39D8 CRC                   3DF15F74 (1039228788)\n+6F39DC Compressed Size       0000229A (8858)\n+6F39E0 Uncompressed Size     0000229A (8858)\n+6F39E4 Filename Length       0027 (39)\n+6F39E6 Extra Length          0009 (9)\n+6F39E8 Comment Length        0000 (0)\n+6F39EA Disk Start            0000 (0)\n+6F39EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F39EE Ext File Attributes   00000000 (0)\n+6F39F2 Local Header Offset   0016E52F (1500463)\n+6F39F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F39F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3A1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3A1F   Length              0005 (5)\n+6F3A21   Flags               01 (1) 'Modification'\n+6F3A22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3A26 CENTRAL HEADER #577   02014B50 (33639248)\n+6F3A2A Created Zip Spec      14 (20) '2.0'\n+6F3A2B Created OS            00 (0) 'MS-DOS'\n+6F3A2C Extract Zip Spec      14 (20) '2.0'\n+6F3A2D Extract OS            00 (0) 'MS-DOS'\n+6F3A2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3A30 Compression Method    0000 (0) 'Stored'\n+6F3A32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3A36 CRC                   52712A03 (1383148035)\n+6F3A3A Compressed Size       000003E8 (1000)\n+6F3A3E Uncompressed Size     000003E8 (1000)\n+6F3A42 Filename Length       0026 (38)\n+6F3A44 Extra Length          0009 (9)\n+6F3A46 Comment Length        0000 (0)\n+6F3A48 Disk Start            0000 (0)\n+6F3A4A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3A4C Ext File Attributes   00000000 (0)\n+6F3A50 Local Header Offset   00170827 (1509415)\n+6F3A54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3A54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3A7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3A7C   Length              0005 (5)\n+6F3A7E   Flags               01 (1) 'Modification'\n+6F3A7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3A83 CENTRAL HEADER #578   02014B50 (33639248)\n+6F3A87 Created Zip Spec      14 (20) '2.0'\n+6F3A88 Created OS            00 (0) 'MS-DOS'\n+6F3A89 Extract Zip Spec      14 (20) '2.0'\n+6F3A8A Extract OS            00 (0) 'MS-DOS'\n+6F3A8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3A8D Compression Method    0000 (0) 'Stored'\n+6F3A8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3A93 CRC                   4B96BF4D (1268170573)\n+6F3A97 Compressed Size       00011389 (70537)\n+6F3A9B Uncompressed Size     00011389 (70537)\n+6F3A9F Filename Length       0020 (32)\n+6F3AA1 Extra Length          0009 (9)\n+6F3AA3 Comment Length        0000 (0)\n+6F3AA5 Disk Start            0000 (0)\n+6F3AA7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3AA9 Ext File Attributes   00000000 (0)\n+6F3AAD Local Header Offset   00170C6C (1510508)\n+6F3AB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3AB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3AD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3AD3   Length              0005 (5)\n+6F3AD5   Flags               01 (1) 'Modification'\n+6F3AD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3ADA CENTRAL HEADER #579   02014B50 (33639248)\n+6F3ADE Created Zip Spec      14 (20) '2.0'\n+6F3ADF Created OS            00 (0) 'MS-DOS'\n+6F3AE0 Extract Zip Spec      14 (20) '2.0'\n+6F3AE1 Extract OS            00 (0) 'MS-DOS'\n+6F3AE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3AE4 Compression Method    0000 (0) 'Stored'\n+6F3AE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3AEA CRC                   E6F6EE92 (3874942610)\n+6F3AEE Compressed Size       00003564 (13668)\n+6F3AF2 Uncompressed Size     00003564 (13668)\n+6F3AF6 Filename Length       0027 (39)\n+6F3AF8 Extra Length          0009 (9)\n+6F3AFA Comment Length        0000 (0)\n+6F3AFC Disk Start            0000 (0)\n+6F3AFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3B00 Ext File Attributes   00000000 (0)\n+6F3B04 Local Header Offset   0018204C (1581132)\n+6F3B08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3B08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3B2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3B31   Length              0005 (5)\n+6F3B33   Flags               01 (1) 'Modification'\n+6F3B34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3B38 CENTRAL HEADER #580   02014B50 (33639248)\n+6F3B3C Created Zip Spec      14 (20) '2.0'\n+6F3B3D Created OS            00 (0) 'MS-DOS'\n+6F3B3E Extract Zip Spec      14 (20) '2.0'\n+6F3B3F Extract OS            00 (0) 'MS-DOS'\n+6F3B40 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3B42 Compression Method    0000 (0) 'Stored'\n+6F3B44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3B48 CRC                   D525E52E (3576030510)\n+6F3B4C Compressed Size       00003610 (13840)\n+6F3B50 Uncompressed Size     00003610 (13840)\n+6F3B54 Filename Length       0029 (41)\n+6F3B56 Extra Length          0009 (9)\n+6F3B58 Comment Length        0000 (0)\n+6F3B5A Disk Start            0000 (0)\n+6F3B5C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3B5E Ext File Attributes   00000000 (0)\n+6F3B62 Local Header Offset   0018560E (1594894)\n+6F3B66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3B66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3B8F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3B91   Length              0005 (5)\n+6F3B93   Flags               01 (1) 'Modification'\n+6F3B94   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3B98 CENTRAL HEADER #581   02014B50 (33639248)\n+6F3B9C Created Zip Spec      14 (20) '2.0'\n+6F3B9D Created OS            00 (0) 'MS-DOS'\n+6F3B9E Extract Zip Spec      14 (20) '2.0'\n+6F3B9F Extract OS            00 (0) 'MS-DOS'\n+6F3BA0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3BA2 Compression Method    0000 (0) 'Stored'\n+6F3BA4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3BA8 CRC                   82E9AE97 (2196352663)\n+6F3BAC Compressed Size       0000273B (10043)\n+6F3BB0 Uncompressed Size     0000273B (10043)\n+6F3BB4 Filename Length       0024 (36)\n+6F3BB6 Extra Length          0009 (9)\n+6F3BB8 Comment Length        0000 (0)\n+6F3BBA Disk Start            0000 (0)\n+6F3BBC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3BBE Ext File Attributes   00000000 (0)\n+6F3BC2 Local Header Offset   00188C7E (1608830)\n+6F3BC6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3BC6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3BEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3BEC   Length              0005 (5)\n+6F3BEE   Flags               01 (1) 'Modification'\n+6F3BEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3BF3 CENTRAL HEADER #582   02014B50 (33639248)\n+6F3BF7 Created Zip Spec      14 (20) '2.0'\n+6F3BF8 Created OS            00 (0) 'MS-DOS'\n+6F3BF9 Extract Zip Spec      14 (20) '2.0'\n+6F3BFA Extract OS            00 (0) 'MS-DOS'\n+6F3BFB General Purpose Flag  0000 (0)\n+6F3BFD Compression Method    0000 (0) 'Stored'\n+6F3BFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3C03 CRC                   00000000 (0)\n+6F3C07 Compressed Size       00000000 (0)\n+6F3C0B Uncompressed Size     00000000 (0)\n+6F3C0F Filename Length       0021 (33)\n+6F3C11 Extra Length          0009 (9)\n+6F3C13 Comment Length        0000 (0)\n+6F3C15 Disk Start            0000 (0)\n+6F3C17 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3C19 Ext File Attributes   00000000 (0)\n+6F3C1D Local Header Offset   0018B414 (1618964)\n+6F3C21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3C21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3C42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3C44   Length              0005 (5)\n+6F3C46   Flags               01 (1) 'Modification'\n+6F3C47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3C4B CENTRAL HEADER #583   02014B50 (33639248)\n+6F3C4F Created Zip Spec      14 (20) '2.0'\n+6F3C50 Created OS            00 (0) 'MS-DOS'\n+6F3C51 Extract Zip Spec      14 (20) '2.0'\n+6F3C52 Extract OS            00 (0) 'MS-DOS'\n+6F3C53 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3C55 Compression Method    0000 (0) 'Stored'\n+6F3C57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3C5B CRC                   62810B39 (1652624185)\n+6F3C5F Compressed Size       00000554 (1364)\n+6F3C63 Uncompressed Size     00000554 (1364)\n+6F3C67 Filename Length       0036 (54)\n+6F3C69 Extra Length          0009 (9)\n+6F3C6B Comment Length        0000 (0)\n+6F3C6D Disk Start            0000 (0)\n+6F3C6F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3C71 Ext File Attributes   00000000 (0)\n+6F3C75 Local Header Offset   0018B45C (1619036)\n+6F3C79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3C79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3CAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3CB1   Length              0005 (5)\n+6F3CB3   Flags               01 (1) 'Modification'\n+6F3CB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3CB8 CENTRAL HEADER #584   02014B50 (33639248)\n+6F3CBC Created Zip Spec      14 (20) '2.0'\n+6F3CBD Created OS            00 (0) 'MS-DOS'\n+6F3CBE Extract Zip Spec      14 (20) '2.0'\n+6F3CBF Extract OS            00 (0) 'MS-DOS'\n+6F3CC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3CC2 Compression Method    0000 (0) 'Stored'\n+6F3CC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3CC8 CRC                   7918064D (2031617613)\n+6F3CCC Compressed Size       00001974 (6516)\n+6F3CD0 Uncompressed Size     00001974 (6516)\n+6F3CD4 Filename Length       0038 (56)\n+6F3CD6 Extra Length          0009 (9)\n+6F3CD8 Comment Length        0000 (0)\n+6F3CDA Disk Start            0000 (0)\n+6F3CDC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3CDE Ext File Attributes   00000000 (0)\n+6F3CE2 Local Header Offset   0018BA1D (1620509)\n+6F3CE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3CE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3D1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3D20   Length              0005 (5)\n+6F3D22   Flags               01 (1) 'Modification'\n+6F3D23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3D27 CENTRAL HEADER #585   02014B50 (33639248)\n+6F3D2B Created Zip Spec      14 (20) '2.0'\n+6F3D2C Created OS            00 (0) 'MS-DOS'\n+6F3D2D Extract Zip Spec      14 (20) '2.0'\n+6F3D2E Extract OS            00 (0) 'MS-DOS'\n+6F3D2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3D31 Compression Method    0000 (0) 'Stored'\n+6F3D33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3D37 CRC                   9C935B9B (2626902939)\n+6F3D3B Compressed Size       000050B4 (20660)\n+6F3D3F Uncompressed Size     000050B4 (20660)\n+6F3D43 Filename Length       003B (59)\n+6F3D45 Extra Length          0009 (9)\n+6F3D47 Comment Length        0000 (0)\n+6F3D49 Disk Start            0000 (0)\n+6F3D4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3D4D Ext File Attributes   00000000 (0)\n+6F3D51 Local Header Offset   0018D400 (1627136)\n+6F3D55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3D55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3D90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3D92   Length              0005 (5)\n+6F3D94   Flags               01 (1) 'Modification'\n+6F3D95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3D99 CENTRAL HEADER #586   02014B50 (33639248)\n+6F3D9D Created Zip Spec      14 (20) '2.0'\n+6F3D9E Created OS            00 (0) 'MS-DOS'\n+6F3D9F Extract Zip Spec      14 (20) '2.0'\n+6F3DA0 Extract OS            00 (0) 'MS-DOS'\n+6F3DA1 General Purpose Flag  0000 (0)\n+6F3DA3 Compression Method    0000 (0) 'Stored'\n+6F3DA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3DA9 CRC                   00000000 (0)\n+6F3DAD Compressed Size       00000000 (0)\n+6F3DB1 Uncompressed Size     00000000 (0)\n+6F3DB5 Filename Length       0021 (33)\n+6F3DB7 Extra Length          0009 (9)\n+6F3DB9 Comment Length        0000 (0)\n+6F3DBB Disk Start            0000 (0)\n+6F3DBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3DBF Ext File Attributes   00000000 (0)\n+6F3DC3 Local Header Offset   00192526 (1647910)\n+6F3DC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3DC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3DE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3DEA   Length              0005 (5)\n+6F3DEC   Flags               01 (1) 'Modification'\n+6F3DED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3DF1 CENTRAL HEADER #587   02014B50 (33639248)\n+6F3DF5 Created Zip Spec      14 (20) '2.0'\n+6F3DF6 Created OS            00 (0) 'MS-DOS'\n+6F3DF7 Extract Zip Spec      14 (20) '2.0'\n+6F3DF8 Extract OS            00 (0) 'MS-DOS'\n+6F3DF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3DFB Compression Method    0000 (0) 'Stored'\n+6F3DFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3E01 CRC                   2B1352F9 (722686713)\n+6F3E05 Compressed Size       00003462 (13410)\n+6F3E09 Uncompressed Size     00003462 (13410)\n+6F3E0D Filename Length       0034 (52)\n+6F3E0F Extra Length          0009 (9)\n+6F3E11 Comment Length        0000 (0)\n+6F3E13 Disk Start            0000 (0)\n+6F3E15 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3E17 Ext File Attributes   00000000 (0)\n+6F3E1B Local Header Offset   0019256E (1647982)\n+6F3E1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3E1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3E53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3E55   Length              0005 (5)\n+6F3E57   Flags               01 (1) 'Modification'\n+6F3E58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3E5C CENTRAL HEADER #588   02014B50 (33639248)\n+6F3E60 Created Zip Spec      14 (20) '2.0'\n+6F3E61 Created OS            00 (0) 'MS-DOS'\n+6F3E62 Extract Zip Spec      14 (20) '2.0'\n+6F3E63 Extract OS            00 (0) 'MS-DOS'\n+6F3E64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3E66 Compression Method    0000 (0) 'Stored'\n+6F3E68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3E6C CRC                   50C2BDD7 (1354939863)\n+6F3E70 Compressed Size       00000E1B (3611)\n+6F3E74 Uncompressed Size     00000E1B (3611)\n+6F3E78 Filename Length       003F (63)\n+6F3E7A Extra Length          0009 (9)\n+6F3E7C Comment Length        0000 (0)\n+6F3E7E Disk Start            0000 (0)\n+6F3E80 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3E82 Ext File Attributes   00000000 (0)\n+6F3E86 Local Header Offset   00195A3B (1661499)\n+6F3E8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3E8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3EC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3ECB   Length              0005 (5)\n+6F3ECD   Flags               01 (1) 'Modification'\n+6F3ECE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3ED2 CENTRAL HEADER #589   02014B50 (33639248)\n+6F3ED6 Created Zip Spec      14 (20) '2.0'\n+6F3ED7 Created OS            00 (0) 'MS-DOS'\n+6F3ED8 Extract Zip Spec      14 (20) '2.0'\n+6F3ED9 Extract OS            00 (0) 'MS-DOS'\n+6F3EDA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3EDC Compression Method    0000 (0) 'Stored'\n+6F3EDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3EE2 CRC                   4F0E9D5D (1326357853)\n+6F3EE6 Compressed Size       00002017 (8215)\n+6F3EEA Uncompressed Size     00002017 (8215)\n+6F3EEE Filename Length       002B (43)\n+6F3EF0 Extra Length          0009 (9)\n+6F3EF2 Comment Length        0000 (0)\n+6F3EF4 Disk Start            0000 (0)\n+6F3EF6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3EF8 Ext File Attributes   00000000 (0)\n+6F3EFC Local Header Offset   001968CC (1665228)\n+6F3F00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3F00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3F2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3F2D   Length              0005 (5)\n+6F3F2F   Flags               01 (1) 'Modification'\n+6F3F30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3F34 CENTRAL HEADER #590   02014B50 (33639248)\n+6F3F38 Created Zip Spec      14 (20) '2.0'\n+6F3F39 Created OS            00 (0) 'MS-DOS'\n+6F3F3A Extract Zip Spec      14 (20) '2.0'\n+6F3F3B Extract OS            00 (0) 'MS-DOS'\n+6F3F3C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3F3E Compression Method    0000 (0) 'Stored'\n+6F3F40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3F44 CRC                   35B34ECC (900943564)\n+6F3F48 Compressed Size       0000049E (1182)\n+6F3F4C Uncompressed Size     0000049E (1182)\n+6F3F50 Filename Length       003B (59)\n+6F3F52 Extra Length          0009 (9)\n+6F3F54 Comment Length        0000 (0)\n+6F3F56 Disk Start            0000 (0)\n+6F3F58 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3F5A Ext File Attributes   00000000 (0)\n+6F3F5E Local Header Offset   00198945 (1673541)\n+6F3F62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3F62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F3F9D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F3F9F   Length              0005 (5)\n+6F3FA1   Flags               01 (1) 'Modification'\n+6F3FA2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F3FA6 CENTRAL HEADER #591   02014B50 (33639248)\n+6F3FAA Created Zip Spec      14 (20) '2.0'\n+6F3FAB Created OS            00 (0) 'MS-DOS'\n+6F3FAC Extract Zip Spec      14 (20) '2.0'\n+6F3FAD Extract OS            00 (0) 'MS-DOS'\n+6F3FAE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F3FB0 Compression Method    0000 (0) 'Stored'\n+6F3FB2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F3FB6 CRC                   AE36D6DB (2922829531)\n+6F3FBA Compressed Size       000004A6 (1190)\n+6F3FBE Uncompressed Size     000004A6 (1190)\n+6F3FC2 Filename Length       003D (61)\n+6F3FC4 Extra Length          0009 (9)\n+6F3FC6 Comment Length        0000 (0)\n+6F3FC8 Disk Start            0000 (0)\n+6F3FCA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F3FCC Ext File Attributes   00000000 (0)\n+6F3FD0 Local Header Offset   00198E55 (1674837)\n+6F3FD4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F3FD4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4011 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4013   Length              0005 (5)\n+6F4015   Flags               01 (1) 'Modification'\n+6F4016   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F401A CENTRAL HEADER #592   02014B50 (33639248)\n+6F401E Created Zip Spec      14 (20) '2.0'\n+6F401F Created OS            00 (0) 'MS-DOS'\n+6F4020 Extract Zip Spec      14 (20) '2.0'\n+6F4021 Extract OS            00 (0) 'MS-DOS'\n+6F4022 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4024 Compression Method    0000 (0) 'Stored'\n+6F4026 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F402A CRC                   693DBCBA (1765653690)\n+6F402E Compressed Size       00002F4D (12109)\n+6F4032 Uncompressed Size     00002F4D (12109)\n+6F4036 Filename Length       002B (43)\n+6F4038 Extra Length          0009 (9)\n+6F403A Comment Length        0000 (0)\n+6F403C Disk Start            0000 (0)\n+6F403E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4040 Ext File Attributes   00000000 (0)\n+6F4044 Local Header Offset   0019936F (1676143)\n+6F4048 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4048: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4073 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4075   Length              0005 (5)\n+6F4077   Flags               01 (1) 'Modification'\n+6F4078   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F407C CENTRAL HEADER #593   02014B50 (33639248)\n+6F4080 Created Zip Spec      14 (20) '2.0'\n+6F4081 Created OS            00 (0) 'MS-DOS'\n+6F4082 Extract Zip Spec      14 (20) '2.0'\n+6F4083 Extract OS            00 (0) 'MS-DOS'\n+6F4084 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4086 Compression Method    0000 (0) 'Stored'\n+6F4088 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F408C CRC                   44BCC62B (1153222187)\n+6F4090 Compressed Size       00004608 (17928)\n+6F4094 Uncompressed Size     00004608 (17928)\n+6F4098 Filename Length       002D (45)\n+6F409A Extra Length          0009 (9)\n+6F409C Comment Length        0000 (0)\n+6F409E Disk Start            0000 (0)\n+6F40A0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F40A2 Ext File Attributes   00000000 (0)\n+6F40A6 Local Header Offset   0019C31E (1688350)\n+6F40AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F40AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F40D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F40D9   Length              0005 (5)\n+6F40DB   Flags               01 (1) 'Modification'\n+6F40DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F40E0 CENTRAL HEADER #594   02014B50 (33639248)\n+6F40E4 Created Zip Spec      14 (20) '2.0'\n+6F40E5 Created OS            00 (0) 'MS-DOS'\n+6F40E6 Extract Zip Spec      14 (20) '2.0'\n+6F40E7 Extract OS            00 (0) 'MS-DOS'\n+6F40E8 General Purpose Flag  0000 (0)\n+6F40EA Compression Method    0000 (0) 'Stored'\n+6F40EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F40F0 CRC                   00000000 (0)\n+6F40F4 Compressed Size       00000000 (0)\n+6F40F8 Uncompressed Size     00000000 (0)\n+6F40FC Filename Length       0021 (33)\n+6F40FE Extra Length          0009 (9)\n+6F4100 Comment Length        0000 (0)\n+6F4102 Disk Start            0000 (0)\n+6F4104 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4106 Ext File Attributes   00000000 (0)\n+6F410A Local Header Offset   001A098A (1706378)\n+6F410E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F410E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F412F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4131   Length              0005 (5)\n+6F4133   Flags               01 (1) 'Modification'\n+6F4134   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4138 CENTRAL HEADER #595   02014B50 (33639248)\n+6F413C Created Zip Spec      14 (20) '2.0'\n+6F413D Created OS            00 (0) 'MS-DOS'\n+6F413E Extract Zip Spec      14 (20) '2.0'\n+6F413F Extract OS            00 (0) 'MS-DOS'\n+6F4140 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4142 Compression Method    0000 (0) 'Stored'\n+6F4144 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4148 CRC                   01EEDE5E (32431710)\n+6F414C Compressed Size       000004E7 (1255)\n+6F4150 Uncompressed Size     000004E7 (1255)\n+6F4154 Filename Length       002E (46)\n+6F4156 Extra Length          0009 (9)\n+6F4158 Comment Length        0000 (0)\n+6F415A Disk Start            0000 (0)\n+6F415C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F415E Ext File Attributes   00000000 (0)\n+6F4162 Local Header Offset   001A09D2 (1706450)\n+6F4166 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4166: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4194 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4196   Length              0005 (5)\n+6F4198   Flags               01 (1) 'Modification'\n+6F4199   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F419D CENTRAL HEADER #596   02014B50 (33639248)\n+6F41A1 Created Zip Spec      14 (20) '2.0'\n+6F41A2 Created OS            00 (0) 'MS-DOS'\n+6F41A3 Extract Zip Spec      14 (20) '2.0'\n+6F41A4 Extract OS            00 (0) 'MS-DOS'\n+6F41A5 General Purpose Flag  0000 (0)\n+6F41A7 Compression Method    0000 (0) 'Stored'\n+6F41A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F41AD CRC                   00000000 (0)\n+6F41B1 Compressed Size       00000000 (0)\n+6F41B5 Uncompressed Size     00000000 (0)\n+6F41B9 Filename Length       0029 (41)\n+6F41BB Extra Length          0009 (9)\n+6F41BD Comment Length        0000 (0)\n+6F41BF Disk Start            0000 (0)\n+6F41C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F41C3 Ext File Attributes   00000000 (0)\n+6F41C7 Local Header Offset   001A0F1E (1707806)\n+6F41CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F41CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F41F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F41F6   Length              0005 (5)\n+6F41F8   Flags               01 (1) 'Modification'\n+6F41F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F41FD CENTRAL HEADER #597   02014B50 (33639248)\n+6F4201 Created Zip Spec      14 (20) '2.0'\n+6F4202 Created OS            00 (0) 'MS-DOS'\n+6F4203 Extract Zip Spec      14 (20) '2.0'\n+6F4204 Extract OS            00 (0) 'MS-DOS'\n+6F4205 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4207 Compression Method    0000 (0) 'Stored'\n+6F4209 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F420D CRC                   20854F04 (545607428)\n+6F4211 Compressed Size       00000B1B (2843)\n+6F4215 Uncompressed Size     00000B1B (2843)\n+6F4219 Filename Length       003E (62)\n+6F421B Extra Length          0009 (9)\n+6F421D Comment Length        0000 (0)\n+6F421F Disk Start            0000 (0)\n+6F4221 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4223 Ext File Attributes   00000000 (0)\n+6F4227 Local Header Offset   001A0F6E (1707886)\n+6F422B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F422B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4269 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F426B   Length              0005 (5)\n+6F426D   Flags               01 (1) 'Modification'\n+6F426E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4272 CENTRAL HEADER #598   02014B50 (33639248)\n+6F4276 Created Zip Spec      14 (20) '2.0'\n+6F4277 Created OS            00 (0) 'MS-DOS'\n+6F4278 Extract Zip Spec      14 (20) '2.0'\n+6F4279 Extract OS            00 (0) 'MS-DOS'\n+6F427A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F427C Compression Method    0000 (0) 'Stored'\n+6F427E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4282 CRC                   D19D012A (3516727594)\n+6F4286 Compressed Size       00000733 (1843)\n+6F428A Uncompressed Size     00000733 (1843)\n+6F428E Filename Length       003E (62)\n+6F4290 Extra Length          0009 (9)\n+6F4292 Comment Length        0000 (0)\n+6F4294 Disk Start            0000 (0)\n+6F4296 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4298 Ext File Attributes   00000000 (0)\n+6F429C Local Header Offset   001A1AFE (1710846)\n+6F42A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F42A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F42DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F42E0   Length              0005 (5)\n+6F42E2   Flags               01 (1) 'Modification'\n+6F42E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F42E7 CENTRAL HEADER #599   02014B50 (33639248)\n+6F42EB Created Zip Spec      14 (20) '2.0'\n+6F42EC Created OS            00 (0) 'MS-DOS'\n+6F42ED Extract Zip Spec      14 (20) '2.0'\n+6F42EE Extract OS            00 (0) 'MS-DOS'\n+6F42EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F42F1 Compression Method    0000 (0) 'Stored'\n+6F42F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F42F7 CRC                   489CA2B6 (1218224822)\n+6F42FB Compressed Size       00003CC4 (15556)\n+6F42FF Uncompressed Size     00003CC4 (15556)\n+6F4303 Filename Length       0038 (56)\n+6F4305 Extra Length          0009 (9)\n+6F4307 Comment Length        0000 (0)\n+6F4309 Disk Start            0000 (0)\n+6F430B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F430D Ext File Attributes   00000000 (0)\n+6F4311 Local Header Offset   001A22A6 (1712806)\n+6F4315 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4315: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F434D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F434F   Length              0005 (5)\n+6F4351   Flags               01 (1) 'Modification'\n+6F4352   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4356 CENTRAL HEADER #600   02014B50 (33639248)\n+6F435A Created Zip Spec      14 (20) '2.0'\n+6F435B Created OS            00 (0) 'MS-DOS'\n+6F435C Extract Zip Spec      14 (20) '2.0'\n+6F435D Extract OS            00 (0) 'MS-DOS'\n+6F435E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4360 Compression Method    0000 (0) 'Stored'\n+6F4362 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4366 CRC                   BD63F8B8 (3177445560)\n+6F436A Compressed Size       000013BA (5050)\n+6F436E Uncompressed Size     000013BA (5050)\n+6F4372 Filename Length       003C (60)\n+6F4374 Extra Length          0009 (9)\n+6F4376 Comment Length        0000 (0)\n+6F4378 Disk Start            0000 (0)\n+6F437A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F437C Ext File Attributes   00000000 (0)\n+6F4380 Local Header Offset   001A5FD9 (1728473)\n+6F4384 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4384: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F43C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F43C2   Length              0005 (5)\n+6F43C4   Flags               01 (1) 'Modification'\n+6F43C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F43C9 CENTRAL HEADER #601   02014B50 (33639248)\n+6F43CD Created Zip Spec      14 (20) '2.0'\n+6F43CE Created OS            00 (0) 'MS-DOS'\n+6F43CF Extract Zip Spec      14 (20) '2.0'\n+6F43D0 Extract OS            00 (0) 'MS-DOS'\n+6F43D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F43D3 Compression Method    0000 (0) 'Stored'\n+6F43D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F43D9 CRC                   C96B89A9 (3379268009)\n+6F43DD Compressed Size       00000DB0 (3504)\n+6F43E1 Uncompressed Size     00000DB0 (3504)\n+6F43E5 Filename Length       003F (63)\n+6F43E7 Extra Length          0009 (9)\n+6F43E9 Comment Length        0000 (0)\n+6F43EB Disk Start            0000 (0)\n+6F43ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F43EF Ext File Attributes   00000000 (0)\n+6F43F3 Local Header Offset   001A7406 (1733638)\n+6F43F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F43F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4436 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4438   Length              0005 (5)\n+6F443A   Flags               01 (1) 'Modification'\n+6F443B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F443F CENTRAL HEADER #602   02014B50 (33639248)\n+6F4443 Created Zip Spec      14 (20) '2.0'\n+6F4444 Created OS            00 (0) 'MS-DOS'\n+6F4445 Extract Zip Spec      14 (20) '2.0'\n+6F4446 Extract OS            00 (0) 'MS-DOS'\n+6F4447 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4449 Compression Method    0000 (0) 'Stored'\n+6F444B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F444F CRC                   3FE3ACCB (1071885515)\n+6F4453 Compressed Size       00002CC5 (11461)\n+6F4457 Uncompressed Size     00002CC5 (11461)\n+6F445B Filename Length       0039 (57)\n+6F445D Extra Length          0009 (9)\n+6F445F Comment Length        0000 (0)\n+6F4461 Disk Start            0000 (0)\n+6F4463 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4465 Ext File Attributes   00000000 (0)\n+6F4469 Local Header Offset   001A822C (1737260)\n+6F446D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F446D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F44A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F44A8   Length              0005 (5)\n+6F44AA   Flags               01 (1) 'Modification'\n+6F44AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F44AF CENTRAL HEADER #603   02014B50 (33639248)\n+6F44B3 Created Zip Spec      14 (20) '2.0'\n+6F44B4 Created OS            00 (0) 'MS-DOS'\n+6F44B5 Extract Zip Spec      14 (20) '2.0'\n+6F44B6 Extract OS            00 (0) 'MS-DOS'\n+6F44B7 General Purpose Flag  0000 (0)\n+6F44B9 Compression Method    0000 (0) 'Stored'\n+6F44BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F44BF CRC                   00000000 (0)\n+6F44C3 Compressed Size       00000000 (0)\n+6F44C7 Uncompressed Size     00000000 (0)\n+6F44CB Filename Length       001F (31)\n+6F44CD Extra Length          0009 (9)\n+6F44CF Comment Length        0000 (0)\n+6F44D1 Disk Start            0000 (0)\n+6F44D3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F44D5 Ext File Attributes   00000000 (0)\n+6F44D9 Local Header Offset   001AAF61 (1748833)\n+6F44DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F44DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F44FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F44FE   Length              0005 (5)\n+6F4500   Flags               01 (1) 'Modification'\n+6F4501   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4505 CENTRAL HEADER #604   02014B50 (33639248)\n+6F4509 Created Zip Spec      14 (20) '2.0'\n+6F450A Created OS            00 (0) 'MS-DOS'\n+6F450B Extract Zip Spec      14 (20) '2.0'\n+6F450C Extract OS            00 (0) 'MS-DOS'\n+6F450D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F450F Compression Method    0000 (0) 'Stored'\n+6F4511 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4515 CRC                   A81790A7 (2820116647)\n+6F4519 Compressed Size       0000117D (4477)\n+6F451D Uncompressed Size     0000117D (4477)\n+6F4521 Filename Length       003A (58)\n+6F4523 Extra Length          0009 (9)\n+6F4525 Comment Length        0000 (0)\n+6F4527 Disk Start            0000 (0)\n+6F4529 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F452B Ext File Attributes   00000000 (0)\n+6F452F Local Header Offset   001AAFA7 (1748903)\n+6F4533 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4533: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F456D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F456F   Length              0005 (5)\n+6F4571   Flags               01 (1) 'Modification'\n+6F4572   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4576 CENTRAL HEADER #605   02014B50 (33639248)\n+6F457A Created Zip Spec      14 (20) '2.0'\n+6F457B Created OS            00 (0) 'MS-DOS'\n+6F457C Extract Zip Spec      14 (20) '2.0'\n+6F457D Extract OS            00 (0) 'MS-DOS'\n+6F457E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4580 Compression Method    0000 (0) 'Stored'\n+6F4582 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4586 CRC                   AB15E1E2 (2870338018)\n+6F458A Compressed Size       00001B78 (7032)\n+6F458E Uncompressed Size     00001B78 (7032)\n+6F4592 Filename Length       0031 (49)\n+6F4594 Extra Length          0009 (9)\n+6F4596 Comment Length        0000 (0)\n+6F4598 Disk Start            0000 (0)\n+6F459A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F459C Ext File Attributes   00000000 (0)\n+6F45A0 Local Header Offset   001AC195 (1753493)\n+6F45A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F45A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F45D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F45D7   Length              0005 (5)\n+6F45D9   Flags               01 (1) 'Modification'\n+6F45DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F45DE CENTRAL HEADER #606   02014B50 (33639248)\n+6F45E2 Created Zip Spec      14 (20) '2.0'\n+6F45E3 Created OS            00 (0) 'MS-DOS'\n+6F45E4 Extract Zip Spec      14 (20) '2.0'\n+6F45E5 Extract OS            00 (0) 'MS-DOS'\n+6F45E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F45E8 Compression Method    0000 (0) 'Stored'\n+6F45EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F45EE CRC                   7B55AE57 (2069212759)\n+6F45F2 Compressed Size       00001330 (4912)\n+6F45F6 Uncompressed Size     00001330 (4912)\n+6F45FA Filename Length       0036 (54)\n+6F45FC Extra Length          0009 (9)\n+6F45FE Comment Length        0000 (0)\n+6F4600 Disk Start            0000 (0)\n+6F4602 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4604 Ext File Attributes   00000000 (0)\n+6F4608 Local Header Offset   001ADD75 (1760629)\n+6F460C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F460C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4642 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4644   Length              0005 (5)\n+6F4646   Flags               01 (1) 'Modification'\n+6F4647   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F464B CENTRAL HEADER #607   02014B50 (33639248)\n+6F464F Created Zip Spec      14 (20) '2.0'\n+6F4650 Created OS            00 (0) 'MS-DOS'\n+6F4651 Extract Zip Spec      14 (20) '2.0'\n+6F4652 Extract OS            00 (0) 'MS-DOS'\n+6F4653 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4655 Compression Method    0000 (0) 'Stored'\n+6F4657 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F465B CRC                   8F24621B (2401526299)\n+6F465F Compressed Size       000027FE (10238)\n+6F4663 Uncompressed Size     000027FE (10238)\n+6F4667 Filename Length       002F (47)\n+6F4669 Extra Length          0009 (9)\n+6F466B Comment Length        0000 (0)\n+6F466D Disk Start            0000 (0)\n+6F466F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4671 Ext File Attributes   00000000 (0)\n+6F4675 Local Header Offset   001AF112 (1765650)\n+6F4679 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4679: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F46A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F46AA   Length              0005 (5)\n+6F46AC   Flags               01 (1) 'Modification'\n+6F46AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F46B1 CENTRAL HEADER #608   02014B50 (33639248)\n+6F46B5 Created Zip Spec      14 (20) '2.0'\n+6F46B6 Created OS            00 (0) 'MS-DOS'\n+6F46B7 Extract Zip Spec      14 (20) '2.0'\n+6F46B8 Extract OS            00 (0) 'MS-DOS'\n+6F46B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F46BB Compression Method    0000 (0) 'Stored'\n+6F46BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F46C1 CRC                   2A9E8F07 (715034375)\n+6F46C5 Compressed Size       00000516 (1302)\n+6F46C9 Uncompressed Size     00000516 (1302)\n+6F46CD Filename Length       003C (60)\n+6F46CF Extra Length          0009 (9)\n+6F46D1 Comment Length        0000 (0)\n+6F46D3 Disk Start            0000 (0)\n+6F46D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F46D7 Ext File Attributes   00000000 (0)\n+6F46DB Local Header Offset   001B1976 (1775990)\n+6F46DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F46DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F471B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F471D   Length              0005 (5)\n+6F471F   Flags               01 (1) 'Modification'\n+6F4720   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4724 CENTRAL HEADER #609   02014B50 (33639248)\n+6F4728 Created Zip Spec      14 (20) '2.0'\n+6F4729 Created OS            00 (0) 'MS-DOS'\n+6F472A Extract Zip Spec      14 (20) '2.0'\n+6F472B Extract OS            00 (0) 'MS-DOS'\n+6F472C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F472E Compression Method    0000 (0) 'Stored'\n+6F4730 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4734 CRC                   C6D0F0BC (3335581884)\n+6F4738 Compressed Size       000007B0 (1968)\n+6F473C Uncompressed Size     000007B0 (1968)\n+6F4740 Filename Length       0039 (57)\n+6F4742 Extra Length          0009 (9)\n+6F4744 Comment Length        0000 (0)\n+6F4746 Disk Start            0000 (0)\n+6F4748 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F474A Ext File Attributes   00000000 (0)\n+6F474E Local Header Offset   001B1EFF (1777407)\n+6F4752 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4752: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F478B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F478D   Length              0005 (5)\n+6F478F   Flags               01 (1) 'Modification'\n+6F4790   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4794 CENTRAL HEADER #610   02014B50 (33639248)\n+6F4798 Created Zip Spec      14 (20) '2.0'\n+6F4799 Created OS            00 (0) 'MS-DOS'\n+6F479A Extract Zip Spec      14 (20) '2.0'\n+6F479B Extract OS            00 (0) 'MS-DOS'\n+6F479C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F479E Compression Method    0000 (0) 'Stored'\n+6F47A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F47A4 CRC                   A545EC4C (2772823116)\n+6F47A8 Compressed Size       000004DD (1245)\n+6F47AC Uncompressed Size     000004DD (1245)\n+6F47B0 Filename Length       003D (61)\n+6F47B2 Extra Length          0009 (9)\n+6F47B4 Comment Length        0000 (0)\n+6F47B6 Disk Start            0000 (0)\n+6F47B8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F47BA Ext File Attributes   00000000 (0)\n+6F47BE Local Header Offset   001B271F (1779487)\n+6F47C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F47C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F47FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4801   Length              0005 (5)\n+6F4803   Flags               01 (1) 'Modification'\n+6F4804   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4808 CENTRAL HEADER #611   02014B50 (33639248)\n+6F480C Created Zip Spec      14 (20) '2.0'\n+6F480D Created OS            00 (0) 'MS-DOS'\n+6F480E Extract Zip Spec      14 (20) '2.0'\n+6F480F Extract OS            00 (0) 'MS-DOS'\n+6F4810 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4812 Compression Method    0000 (0) 'Stored'\n+6F4814 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4818 CRC                   8BA4EDED (2342841837)\n+6F481C Compressed Size       00000A8C (2700)\n+6F4820 Uncompressed Size     00000A8C (2700)\n+6F4824 Filename Length       003B (59)\n+6F4826 Extra Length          0009 (9)\n+6F4828 Comment Length        0000 (0)\n+6F482A Disk Start            0000 (0)\n+6F482C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F482E Ext File Attributes   00000000 (0)\n+6F4832 Local Header Offset   001B2C70 (1780848)\n+6F4836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4871 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4873   Length              0005 (5)\n+6F4875   Flags               01 (1) 'Modification'\n+6F4876   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F487A CENTRAL HEADER #612   02014B50 (33639248)\n+6F487E Created Zip Spec      14 (20) '2.0'\n+6F487F Created OS            00 (0) 'MS-DOS'\n+6F4880 Extract Zip Spec      14 (20) '2.0'\n+6F4881 Extract OS            00 (0) 'MS-DOS'\n+6F4882 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4884 Compression Method    0000 (0) 'Stored'\n+6F4886 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F488A CRC                   C8BED78D (3367950221)\n+6F488E Compressed Size       000004CE (1230)\n+6F4892 Uncompressed Size     000004CE (1230)\n+6F4896 Filename Length       0037 (55)\n+6F4898 Extra Length          0009 (9)\n+6F489A Comment Length        0000 (0)\n+6F489C Disk Start            0000 (0)\n+6F489E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F48A0 Ext File Attributes   00000000 (0)\n+6F48A4 Local Header Offset   001B376E (1783662)\n+6F48A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F48A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F48DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F48E1   Length              0005 (5)\n+6F48E3   Flags               01 (1) 'Modification'\n+6F48E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F48E8 CENTRAL HEADER #613   02014B50 (33639248)\n+6F48EC Created Zip Spec      14 (20) '2.0'\n+6F48ED Created OS            00 (0) 'MS-DOS'\n+6F48EE Extract Zip Spec      14 (20) '2.0'\n+6F48EF Extract OS            00 (0) 'MS-DOS'\n+6F48F0 General Purpose Flag  0000 (0)\n+6F48F2 Compression Method    0000 (0) 'Stored'\n+6F48F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F48F8 CRC                   00000000 (0)\n+6F48FC Compressed Size       00000000 (0)\n+6F4900 Uncompressed Size     00000000 (0)\n+6F4904 Filename Length       002C (44)\n+6F4906 Extra Length          0009 (9)\n+6F4908 Comment Length        0000 (0)\n+6F490A Disk Start            0000 (0)\n+6F490C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F490E Ext File Attributes   00000000 (0)\n+6F4912 Local Header Offset   001B3CAA (1785002)\n+6F4916 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4916: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4942 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4944   Length              0005 (5)\n+6F4946   Flags               01 (1) 'Modification'\n+6F4947   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F494B CENTRAL HEADER #614   02014B50 (33639248)\n+6F494F Created Zip Spec      14 (20) '2.0'\n+6F4950 Created OS            00 (0) 'MS-DOS'\n+6F4951 Extract Zip Spec      14 (20) '2.0'\n+6F4952 Extract OS            00 (0) 'MS-DOS'\n+6F4953 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4955 Compression Method    0000 (0) 'Stored'\n+6F4957 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F495B CRC                   8153B7AF (2169747375)\n+6F495F Compressed Size       00002780 (10112)\n+6F4963 Uncompressed Size     00002780 (10112)\n+6F4967 Filename Length       004D (77)\n+6F4969 Extra Length          0009 (9)\n+6F496B Comment Length        0000 (0)\n+6F496D Disk Start            0000 (0)\n+6F496F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4971 Ext File Attributes   00000000 (0)\n+6F4975 Local Header Offset   001B3CFD (1785085)\n+6F4979 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4979: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F49C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F49C8   Length              0005 (5)\n+6F49CA   Flags               01 (1) 'Modification'\n+6F49CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F49CF CENTRAL HEADER #615   02014B50 (33639248)\n+6F49D3 Created Zip Spec      14 (20) '2.0'\n+6F49D4 Created OS            00 (0) 'MS-DOS'\n+6F49D5 Extract Zip Spec      14 (20) '2.0'\n+6F49D6 Extract OS            00 (0) 'MS-DOS'\n+6F49D7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F49D9 Compression Method    0000 (0) 'Stored'\n+6F49DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F49DF CRC                   B055C4D7 (2958410967)\n+6F49E3 Compressed Size       000006F6 (1782)\n+6F49E7 Uncompressed Size     000006F6 (1782)\n+6F49EB Filename Length       0054 (84)\n+6F49ED Extra Length          0009 (9)\n+6F49EF Comment Length        0000 (0)\n+6F49F1 Disk Start            0000 (0)\n+6F49F3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F49F5 Ext File Attributes   00000000 (0)\n+6F49F9 Local Header Offset   001B6501 (1795329)\n+6F49FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F49FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4A51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4A53   Length              0005 (5)\n+6F4A55   Flags               01 (1) 'Modification'\n+6F4A56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4A5A CENTRAL HEADER #616   02014B50 (33639248)\n+6F4A5E Created Zip Spec      14 (20) '2.0'\n+6F4A5F Created OS            00 (0) 'MS-DOS'\n+6F4A60 Extract Zip Spec      14 (20) '2.0'\n+6F4A61 Extract OS            00 (0) 'MS-DOS'\n+6F4A62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4A64 Compression Method    0000 (0) 'Stored'\n+6F4A66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4A6A CRC                   46172F4A (1175924554)\n+6F4A6E Compressed Size       0000046D (1133)\n+6F4A72 Uncompressed Size     0000046D (1133)\n+6F4A76 Filename Length       0041 (65)\n+6F4A78 Extra Length          0009 (9)\n+6F4A7A Comment Length        0000 (0)\n+6F4A7C Disk Start            0000 (0)\n+6F4A7E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4A80 Ext File Attributes   00000000 (0)\n+6F4A84 Local Header Offset   001B6C82 (1797250)\n+6F4A88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4A88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4AC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4ACB   Length              0005 (5)\n+6F4ACD   Flags               01 (1) 'Modification'\n+6F4ACE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4AD2 CENTRAL HEADER #617   02014B50 (33639248)\n+6F4AD6 Created Zip Spec      14 (20) '2.0'\n+6F4AD7 Created OS            00 (0) 'MS-DOS'\n+6F4AD8 Extract Zip Spec      14 (20) '2.0'\n+6F4AD9 Extract OS            00 (0) 'MS-DOS'\n+6F4ADA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4ADC Compression Method    0000 (0) 'Stored'\n+6F4ADE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4AE2 CRC                   D56D83FB (3580724219)\n+6F4AE6 Compressed Size       00000B69 (2921)\n+6F4AEA Uncompressed Size     00000B69 (2921)\n+6F4AEE Filename Length       0043 (67)\n+6F4AF0 Extra Length          0009 (9)\n+6F4AF2 Comment Length        0000 (0)\n+6F4AF4 Disk Start            0000 (0)\n+6F4AF6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4AF8 Ext File Attributes   00000000 (0)\n+6F4AFC Local Header Offset   001B7167 (1798503)\n+6F4B00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4B00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4B43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4B45   Length              0005 (5)\n+6F4B47   Flags               01 (1) 'Modification'\n+6F4B48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4B4C CENTRAL HEADER #618   02014B50 (33639248)\n+6F4B50 Created Zip Spec      14 (20) '2.0'\n+6F4B51 Created OS            00 (0) 'MS-DOS'\n+6F4B52 Extract Zip Spec      14 (20) '2.0'\n+6F4B53 Extract OS            00 (0) 'MS-DOS'\n+6F4B54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4B56 Compression Method    0000 (0) 'Stored'\n+6F4B58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4B5C CRC                   69A63658 (1772500568)\n+6F4B60 Compressed Size       00000532 (1330)\n+6F4B64 Uncompressed Size     00000532 (1330)\n+6F4B68 Filename Length       0046 (70)\n+6F4B6A Extra Length          0009 (9)\n+6F4B6C Comment Length        0000 (0)\n+6F4B6E Disk Start            0000 (0)\n+6F4B70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4B72 Ext File Attributes   00000000 (0)\n+6F4B76 Local Header Offset   001B7D4A (1801546)\n+6F4B7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4B7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4BC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4BC2   Length              0005 (5)\n+6F4BC4   Flags               01 (1) 'Modification'\n+6F4BC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4BC9 CENTRAL HEADER #619   02014B50 (33639248)\n+6F4BCD Created Zip Spec      14 (20) '2.0'\n+6F4BCE Created OS            00 (0) 'MS-DOS'\n+6F4BCF Extract Zip Spec      14 (20) '2.0'\n+6F4BD0 Extract OS            00 (0) 'MS-DOS'\n+6F4BD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4BD3 Compression Method    0000 (0) 'Stored'\n+6F4BD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4BD9 CRC                   01D091A7 (30445991)\n+6F4BDD Compressed Size       00000460 (1120)\n+6F4BE1 Uncompressed Size     00000460 (1120)\n+6F4BE5 Filename Length       003A (58)\n+6F4BE7 Extra Length          0009 (9)\n+6F4BE9 Comment Length        0000 (0)\n+6F4BEB Disk Start            0000 (0)\n+6F4BED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4BEF Ext File Attributes   00000000 (0)\n+6F4BF3 Local Header Offset   001B82F9 (1803001)\n+6F4BF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4BF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4C31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4C33   Length              0005 (5)\n+6F4C35   Flags               01 (1) 'Modification'\n+6F4C36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4C3A CENTRAL HEADER #620   02014B50 (33639248)\n+6F4C3E Created Zip Spec      14 (20) '2.0'\n+6F4C3F Created OS            00 (0) 'MS-DOS'\n+6F4C40 Extract Zip Spec      14 (20) '2.0'\n+6F4C41 Extract OS            00 (0) 'MS-DOS'\n+6F4C42 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4C44 Compression Method    0000 (0) 'Stored'\n+6F4C46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4C4A CRC                   FCBE727C (4240339580)\n+6F4C4E Compressed Size       000024E6 (9446)\n+6F4C52 Uncompressed Size     000024E6 (9446)\n+6F4C56 Filename Length       0045 (69)\n+6F4C58 Extra Length          0009 (9)\n+6F4C5A Comment Length        0000 (0)\n+6F4C5C Disk Start            0000 (0)\n+6F4C5E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4C60 Ext File Attributes   00000000 (0)\n+6F4C64 Local Header Offset   001B87CA (1804234)\n+6F4C68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4C68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4CAD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4CAF   Length              0005 (5)\n+6F4CB1   Flags               01 (1) 'Modification'\n+6F4CB2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4CB6 CENTRAL HEADER #621   02014B50 (33639248)\n+6F4CBA Created Zip Spec      14 (20) '2.0'\n+6F4CBB Created OS            00 (0) 'MS-DOS'\n+6F4CBC Extract Zip Spec      14 (20) '2.0'\n+6F4CBD Extract OS            00 (0) 'MS-DOS'\n+6F4CBE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4CC0 Compression Method    0000 (0) 'Stored'\n+6F4CC2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4CC6 CRC                   E7C23E33 (3888266803)\n+6F4CCA Compressed Size       000007F1 (2033)\n+6F4CCE Uncompressed Size     000007F1 (2033)\n+6F4CD2 Filename Length       004C (76)\n+6F4CD4 Extra Length          0009 (9)\n+6F4CD6 Comment Length        0000 (0)\n+6F4CD8 Disk Start            0000 (0)\n+6F4CDA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4CDC Ext File Attributes   00000000 (0)\n+6F4CE0 Local Header Offset   001BAD2C (1813804)\n+6F4CE4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4CE4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4D30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4D32   Length              0005 (5)\n+6F4D34   Flags               01 (1) 'Modification'\n+6F4D35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4D39 CENTRAL HEADER #622   02014B50 (33639248)\n+6F4D3D Created Zip Spec      14 (20) '2.0'\n+6F4D3E Created OS            00 (0) 'MS-DOS'\n+6F4D3F Extract Zip Spec      14 (20) '2.0'\n+6F4D40 Extract OS            00 (0) 'MS-DOS'\n+6F4D41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4D43 Compression Method    0000 (0) 'Stored'\n+6F4D45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4D49 CRC                   A4ED9691 (2767034001)\n+6F4D4D Compressed Size       00001C35 (7221)\n+6F4D51 Uncompressed Size     00001C35 (7221)\n+6F4D55 Filename Length       004D (77)\n+6F4D57 Extra Length          0009 (9)\n+6F4D59 Comment Length        0000 (0)\n+6F4D5B Disk Start            0000 (0)\n+6F4D5D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4D5F Ext File Attributes   00000000 (0)\n+6F4D63 Local Header Offset   001BB5A0 (1815968)\n+6F4D67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4D67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4DB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4DB6   Length              0005 (5)\n+6F4DB8   Flags               01 (1) 'Modification'\n+6F4DB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4DBD CENTRAL HEADER #623   02014B50 (33639248)\n+6F4DC1 Created Zip Spec      14 (20) '2.0'\n+6F4DC2 Created OS            00 (0) 'MS-DOS'\n+6F4DC3 Extract Zip Spec      14 (20) '2.0'\n+6F4DC4 Extract OS            00 (0) 'MS-DOS'\n+6F4DC5 General Purpose Flag  0000 (0)\n+6F4DC7 Compression Method    0000 (0) 'Stored'\n+6F4DC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4DCD CRC                   00000000 (0)\n+6F4DD1 Compressed Size       00000000 (0)\n+6F4DD5 Uncompressed Size     00000000 (0)\n+6F4DD9 Filename Length       0031 (49)\n+6F4DDB Extra Length          0009 (9)\n+6F4DDD Comment Length        0000 (0)\n+6F4DDF Disk Start            0000 (0)\n+6F4DE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4DE3 Ext File Attributes   00000000 (0)\n+6F4DE7 Local Header Offset   001BD259 (1823321)\n+6F4DEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4DEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4E1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4E1E   Length              0005 (5)\n+6F4E20   Flags               01 (1) 'Modification'\n+6F4E21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4E25 CENTRAL HEADER #624   02014B50 (33639248)\n+6F4E29 Created Zip Spec      14 (20) '2.0'\n+6F4E2A Created OS            00 (0) 'MS-DOS'\n+6F4E2B Extract Zip Spec      14 (20) '2.0'\n+6F4E2C Extract OS            00 (0) 'MS-DOS'\n+6F4E2D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4E2F Compression Method    0000 (0) 'Stored'\n+6F4E31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4E35 CRC                   BAE14165 (3135324517)\n+6F4E39 Compressed Size       00005A88 (23176)\n+6F4E3D Uncompressed Size     00005A88 (23176)\n+6F4E41 Filename Length       0054 (84)\n+6F4E43 Extra Length          0009 (9)\n+6F4E45 Comment Length        0000 (0)\n+6F4E47 Disk Start            0000 (0)\n+6F4E49 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4E4B Ext File Attributes   00000000 (0)\n+6F4E4F Local Header Offset   001BD2B1 (1823409)\n+6F4E53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4E53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4EA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4EA9   Length              0005 (5)\n+6F4EAB   Flags               01 (1) 'Modification'\n+6F4EAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4EB0 CENTRAL HEADER #625   02014B50 (33639248)\n+6F4EB4 Created Zip Spec      14 (20) '2.0'\n+6F4EB5 Created OS            00 (0) 'MS-DOS'\n+6F4EB6 Extract Zip Spec      14 (20) '2.0'\n+6F4EB7 Extract OS            00 (0) 'MS-DOS'\n+6F4EB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4EBA Compression Method    0000 (0) 'Stored'\n+6F4EBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4EC0 CRC                   BA62C70E (3127035662)\n+6F4EC4 Compressed Size       000005F2 (1522)\n+6F4EC8 Uncompressed Size     000005F2 (1522)\n+6F4ECC Filename Length       005B (91)\n+6F4ECE Extra Length          0009 (9)\n+6F4ED0 Comment Length        0000 (0)\n+6F4ED2 Disk Start            0000 (0)\n+6F4ED4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4ED6 Ext File Attributes   00000000 (0)\n+6F4EDA Local Header Offset   001C2DC4 (1846724)\n+6F4EDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4EDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4F39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4F3B   Length              0005 (5)\n+6F4F3D   Flags               01 (1) 'Modification'\n+6F4F3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4F42 CENTRAL HEADER #626   02014B50 (33639248)\n+6F4F46 Created Zip Spec      14 (20) '2.0'\n+6F4F47 Created OS            00 (0) 'MS-DOS'\n+6F4F48 Extract Zip Spec      14 (20) '2.0'\n+6F4F49 Extract OS            00 (0) 'MS-DOS'\n+6F4F4A General Purpose Flag  0000 (0)\n+6F4F4C Compression Method    0000 (0) 'Stored'\n+6F4F4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4F52 CRC                   00000000 (0)\n+6F4F56 Compressed Size       00000000 (0)\n+6F4F5A Uncompressed Size     00000000 (0)\n+6F4F5E Filename Length       0030 (48)\n+6F4F60 Extra Length          0009 (9)\n+6F4F62 Comment Length        0000 (0)\n+6F4F64 Disk Start            0000 (0)\n+6F4F66 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4F68 Ext File Attributes   00000000 (0)\n+6F4F6C Local Header Offset   001C3448 (1848392)\n+6F4F70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4F70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F4FA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F4FA2   Length              0005 (5)\n+6F4FA4   Flags               01 (1) 'Modification'\n+6F4FA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F4FA9 CENTRAL HEADER #627   02014B50 (33639248)\n+6F4FAD Created Zip Spec      14 (20) '2.0'\n+6F4FAE Created OS            00 (0) 'MS-DOS'\n+6F4FAF Extract Zip Spec      14 (20) '2.0'\n+6F4FB0 Extract OS            00 (0) 'MS-DOS'\n+6F4FB1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F4FB3 Compression Method    0000 (0) 'Stored'\n+6F4FB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F4FB9 CRC                   B653D686 (3058947718)\n+6F4FBD Compressed Size       000008EF (2287)\n+6F4FC1 Uncompressed Size     000008EF (2287)\n+6F4FC5 Filename Length       004C (76)\n+6F4FC7 Extra Length          0009 (9)\n+6F4FC9 Comment Length        0000 (0)\n+6F4FCB Disk Start            0000 (0)\n+6F4FCD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F4FCF Ext File Attributes   00000000 (0)\n+6F4FD3 Local Header Offset   001C349F (1848479)\n+6F4FD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F4FD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5023 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5025   Length              0005 (5)\n+6F5027   Flags               01 (1) 'Modification'\n+6F5028   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F502C CENTRAL HEADER #628   02014B50 (33639248)\n+6F5030 Created Zip Spec      14 (20) '2.0'\n+6F5031 Created OS            00 (0) 'MS-DOS'\n+6F5032 Extract Zip Spec      14 (20) '2.0'\n+6F5033 Extract OS            00 (0) 'MS-DOS'\n+6F5034 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5036 Compression Method    0000 (0) 'Stored'\n+6F5038 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F503C CRC                   0495D293 (76927635)\n+6F5040 Compressed Size       00000545 (1349)\n+6F5044 Uncompressed Size     00000545 (1349)\n+6F5048 Filename Length       0053 (83)\n+6F504A Extra Length          0009 (9)\n+6F504C Comment Length        0000 (0)\n+6F504E Disk Start            0000 (0)\n+6F5050 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5052 Ext File Attributes   00000000 (0)\n+6F5056 Local Header Offset   001C3E11 (1850897)\n+6F505A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F505A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F50AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F50AF   Length              0005 (5)\n+6F50B1   Flags               01 (1) 'Modification'\n+6F50B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F50B6 CENTRAL HEADER #629   02014B50 (33639248)\n+6F50BA Created Zip Spec      14 (20) '2.0'\n+6F50BB Created OS            00 (0) 'MS-DOS'\n+6F50BC Extract Zip Spec      14 (20) '2.0'\n+6F50BD Extract OS            00 (0) 'MS-DOS'\n+6F50BE General Purpose Flag  0000 (0)\n+6F50C0 Compression Method    0000 (0) 'Stored'\n+6F50C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F50C6 CRC                   00000000 (0)\n+6F50CA Compressed Size       00000000 (0)\n+6F50CE Uncompressed Size     00000000 (0)\n+6F50D2 Filename Length       0034 (52)\n+6F50D4 Extra Length          0009 (9)\n+6F50D6 Comment Length        0000 (0)\n+6F50D8 Disk Start            0000 (0)\n+6F50DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F50DC Ext File Attributes   00000000 (0)\n+6F50E0 Local Header Offset   001C43E0 (1852384)\n+6F50E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F50E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5118 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F511A   Length              0005 (5)\n+6F511C   Flags               01 (1) 'Modification'\n+6F511D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5121 CENTRAL HEADER #630   02014B50 (33639248)\n+6F5125 Created Zip Spec      14 (20) '2.0'\n+6F5126 Created OS            00 (0) 'MS-DOS'\n+6F5127 Extract Zip Spec      14 (20) '2.0'\n+6F5128 Extract OS            00 (0) 'MS-DOS'\n+6F5129 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F512B Compression Method    0000 (0) 'Stored'\n+6F512D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5131 CRC                   2171436F (561070959)\n+6F5135 Compressed Size       00000FAF (4015)\n+6F5139 Uncompressed Size     00000FAF (4015)\n+6F513D Filename Length       0056 (86)\n+6F513F Extra Length          0009 (9)\n+6F5141 Comment Length        0000 (0)\n+6F5143 Disk Start            0000 (0)\n+6F5145 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5147 Ext File Attributes   00000000 (0)\n+6F514B Local Header Offset   001C443B (1852475)\n+6F514F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F514F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F51A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F51A7   Length              0005 (5)\n+6F51A9   Flags               01 (1) 'Modification'\n+6F51AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F51AE CENTRAL HEADER #631   02014B50 (33639248)\n+6F51B2 Created Zip Spec      14 (20) '2.0'\n+6F51B3 Created OS            00 (0) 'MS-DOS'\n+6F51B4 Extract Zip Spec      14 (20) '2.0'\n+6F51B5 Extract OS            00 (0) 'MS-DOS'\n+6F51B6 General Purpose Flag  0000 (0)\n+6F51B8 Compression Method    0000 (0) 'Stored'\n+6F51BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F51BE CRC                   00000000 (0)\n+6F51C2 Compressed Size       00000000 (0)\n+6F51C6 Uncompressed Size     00000000 (0)\n+6F51CA Filename Length       0022 (34)\n+6F51CC Extra Length          0009 (9)\n+6F51CE Comment Length        0000 (0)\n+6F51D0 Disk Start            0000 (0)\n+6F51D2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F51D4 Ext File Attributes   00000000 (0)\n+6F51D8 Local Header Offset   001C5477 (1856631)\n+6F51DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F51DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F51FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5200   Length              0005 (5)\n+6F5202   Flags               01 (1) 'Modification'\n+6F5203   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5207 CENTRAL HEADER #632   02014B50 (33639248)\n+6F520B Created Zip Spec      14 (20) '2.0'\n+6F520C Created OS            00 (0) 'MS-DOS'\n+6F520D Extract Zip Spec      14 (20) '2.0'\n+6F520E Extract OS            00 (0) 'MS-DOS'\n+6F520F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5211 Compression Method    0000 (0) 'Stored'\n+6F5213 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5217 CRC                   2E0F2713 (772744979)\n+6F521B Compressed Size       00002999 (10649)\n+6F521F Uncompressed Size     00002999 (10649)\n+6F5223 Filename Length       0036 (54)\n+6F5225 Extra Length          0009 (9)\n+6F5227 Comment Length        0000 (0)\n+6F5229 Disk Start            0000 (0)\n+6F522B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F522D Ext File Attributes   00000000 (0)\n+6F5231 Local Header Offset   001C54C0 (1856704)\n+6F5235 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5235: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F526B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F526D   Length              0005 (5)\n+6F526F   Flags               01 (1) 'Modification'\n+6F5270   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5274 CENTRAL HEADER #633   02014B50 (33639248)\n+6F5278 Created Zip Spec      14 (20) '2.0'\n+6F5279 Created OS            00 (0) 'MS-DOS'\n+6F527A Extract Zip Spec      14 (20) '2.0'\n+6F527B Extract OS            00 (0) 'MS-DOS'\n+6F527C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F527E Compression Method    0000 (0) 'Stored'\n+6F5280 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5284 CRC                   B7E4B654 (3085219412)\n+6F5288 Compressed Size       000003D7 (983)\n+6F528C Uncompressed Size     000003D7 (983)\n+6F5290 Filename Length       0036 (54)\n+6F5292 Extra Length          0009 (9)\n+6F5294 Comment Length        0000 (0)\n+6F5296 Disk Start            0000 (0)\n+6F5298 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F529A Ext File Attributes   00000000 (0)\n+6F529E Local Header Offset   001C7EC6 (1867462)\n+6F52A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F52A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F52D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F52DA   Length              0005 (5)\n+6F52DC   Flags               01 (1) 'Modification'\n+6F52DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F52E1 CENTRAL HEADER #634   02014B50 (33639248)\n+6F52E5 Created Zip Spec      14 (20) '2.0'\n+6F52E6 Created OS            00 (0) 'MS-DOS'\n+6F52E7 Extract Zip Spec      14 (20) '2.0'\n+6F52E8 Extract OS            00 (0) 'MS-DOS'\n+6F52E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F52EB Compression Method    0000 (0) 'Stored'\n+6F52ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F52F1 CRC                   67723A29 (1735539241)\n+6F52F5 Compressed Size       0000044F (1103)\n+6F52F9 Uncompressed Size     0000044F (1103)\n+6F52FD Filename Length       0033 (51)\n+6F52FF Extra Length          0009 (9)\n+6F5301 Comment Length        0000 (0)\n+6F5303 Disk Start            0000 (0)\n+6F5305 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5307 Ext File Attributes   00000000 (0)\n+6F530B Local Header Offset   001C830A (1868554)\n+6F530F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F530F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5342 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5344   Length              0005 (5)\n+6F5346   Flags               01 (1) 'Modification'\n+6F5347   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F534B CENTRAL HEADER #635   02014B50 (33639248)\n+6F534F Created Zip Spec      14 (20) '2.0'\n+6F5350 Created OS            00 (0) 'MS-DOS'\n+6F5351 Extract Zip Spec      14 (20) '2.0'\n+6F5352 Extract OS            00 (0) 'MS-DOS'\n+6F5353 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5355 Compression Method    0000 (0) 'Stored'\n+6F5357 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F535B CRC                   EBE34920 (3957541152)\n+6F535F Compressed Size       00000E07 (3591)\n+6F5363 Uncompressed Size     00000E07 (3591)\n+6F5367 Filename Length       0038 (56)\n+6F5369 Extra Length          0009 (9)\n+6F536B Comment Length        0000 (0)\n+6F536D Disk Start            0000 (0)\n+6F536F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5371 Ext File Attributes   00000000 (0)\n+6F5375 Local Header Offset   001C87C3 (1869763)\n+6F5379 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5379: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F53B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F53B3   Length              0005 (5)\n+6F53B5   Flags               01 (1) 'Modification'\n+6F53B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F53BA CENTRAL HEADER #636   02014B50 (33639248)\n+6F53BE Created Zip Spec      14 (20) '2.0'\n+6F53BF Created OS            00 (0) 'MS-DOS'\n+6F53C0 Extract Zip Spec      14 (20) '2.0'\n+6F53C1 Extract OS            00 (0) 'MS-DOS'\n+6F53C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F53C4 Compression Method    0000 (0) 'Stored'\n+6F53C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F53CA CRC                   F01E112A (4028502314)\n+6F53CE Compressed Size       000003D0 (976)\n+6F53D2 Uncompressed Size     000003D0 (976)\n+6F53D6 Filename Length       0038 (56)\n+6F53D8 Extra Length          0009 (9)\n+6F53DA Comment Length        0000 (0)\n+6F53DC Disk Start            0000 (0)\n+6F53DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F53E0 Ext File Attributes   00000000 (0)\n+6F53E4 Local Header Offset   001C9639 (1873465)\n+6F53E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F53E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5420 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5422   Length              0005 (5)\n+6F5424   Flags               01 (1) 'Modification'\n+6F5425   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5429 CENTRAL HEADER #637   02014B50 (33639248)\n+6F542D Created Zip Spec      14 (20) '2.0'\n+6F542E Created OS            00 (0) 'MS-DOS'\n+6F542F Extract Zip Spec      14 (20) '2.0'\n+6F5430 Extract OS            00 (0) 'MS-DOS'\n+6F5431 General Purpose Flag  0000 (0)\n+6F5433 Compression Method    0000 (0) 'Stored'\n+6F5435 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5439 CRC                   00000000 (0)\n+6F543D Compressed Size       00000000 (0)\n+6F5441 Uncompressed Size     00000000 (0)\n+6F5445 Filename Length       0020 (32)\n+6F5447 Extra Length          0009 (9)\n+6F5449 Comment Length        0000 (0)\n+6F544B Disk Start            0000 (0)\n+6F544D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F544F Ext File Attributes   00000000 (0)\n+6F5453 Local Header Offset   001C9A78 (1874552)\n+6F5457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5477 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5479   Length              0005 (5)\n+6F547B   Flags               01 (1) 'Modification'\n+6F547C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5480 CENTRAL HEADER #638   02014B50 (33639248)\n+6F5484 Created Zip Spec      14 (20) '2.0'\n+6F5485 Created OS            00 (0) 'MS-DOS'\n+6F5486 Extract Zip Spec      14 (20) '2.0'\n+6F5487 Extract OS            00 (0) 'MS-DOS'\n+6F5488 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F548A Compression Method    0000 (0) 'Stored'\n+6F548C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5490 CRC                   16DF264E (383723086)\n+6F5494 Compressed Size       000003CD (973)\n+6F5498 Uncompressed Size     000003CD (973)\n+6F549C Filename Length       0031 (49)\n+6F549E Extra Length          0009 (9)\n+6F54A0 Comment Length        0000 (0)\n+6F54A2 Disk Start            0000 (0)\n+6F54A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F54A6 Ext File Attributes   00000000 (0)\n+6F54AA Local Header Offset   001C9ABF (1874623)\n+6F54AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F54AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F54DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F54E1   Length              0005 (5)\n+6F54E3   Flags               01 (1) 'Modification'\n+6F54E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F54E8 CENTRAL HEADER #639   02014B50 (33639248)\n+6F54EC Created Zip Spec      14 (20) '2.0'\n+6F54ED Created OS            00 (0) 'MS-DOS'\n+6F54EE Extract Zip Spec      14 (20) '2.0'\n+6F54EF Extract OS            00 (0) 'MS-DOS'\n+6F54F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F54F2 Compression Method    0000 (0) 'Stored'\n+6F54F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F54F8 CRC                   66454DE7 (1715817959)\n+6F54FC Compressed Size       000005ED (1517)\n+6F5500 Uncompressed Size     000005ED (1517)\n+6F5504 Filename Length       002E (46)\n+6F5506 Extra Length          0009 (9)\n+6F5508 Comment Length        0000 (0)\n+6F550A Disk Start            0000 (0)\n+6F550C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F550E Ext File Attributes   00000000 (0)\n+6F5512 Local Header Offset   001C9EF4 (1875700)\n+6F5516 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5516: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5544 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5546   Length              0005 (5)\n+6F5548   Flags               01 (1) 'Modification'\n+6F5549   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F554D CENTRAL HEADER #640   02014B50 (33639248)\n+6F5551 Created Zip Spec      14 (20) '2.0'\n+6F5552 Created OS            00 (0) 'MS-DOS'\n+6F5553 Extract Zip Spec      14 (20) '2.0'\n+6F5554 Extract OS            00 (0) 'MS-DOS'\n+6F5555 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5557 Compression Method    0000 (0) 'Stored'\n+6F5559 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F555D CRC                   F8009358 (4160787288)\n+6F5561 Compressed Size       0000049D (1181)\n+6F5565 Uncompressed Size     0000049D (1181)\n+6F5569 Filename Length       0035 (53)\n+6F556B Extra Length          0009 (9)\n+6F556D Comment Length        0000 (0)\n+6F556F Disk Start            0000 (0)\n+6F5571 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5573 Ext File Attributes   00000000 (0)\n+6F5577 Local Header Offset   001CA546 (1877318)\n+6F557B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F557B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F55B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F55B2   Length              0005 (5)\n+6F55B4   Flags               01 (1) 'Modification'\n+6F55B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F55B9 CENTRAL HEADER #641   02014B50 (33639248)\n+6F55BD Created Zip Spec      14 (20) '2.0'\n+6F55BE Created OS            00 (0) 'MS-DOS'\n+6F55BF Extract Zip Spec      14 (20) '2.0'\n+6F55C0 Extract OS            00 (0) 'MS-DOS'\n+6F55C1 General Purpose Flag  0000 (0)\n+6F55C3 Compression Method    0000 (0) 'Stored'\n+6F55C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F55C9 CRC                   00000000 (0)\n+6F55CD Compressed Size       00000000 (0)\n+6F55D1 Uncompressed Size     00000000 (0)\n+6F55D5 Filename Length       0020 (32)\n+6F55D7 Extra Length          0009 (9)\n+6F55D9 Comment Length        0000 (0)\n+6F55DB Disk Start            0000 (0)\n+6F55DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F55DF Ext File Attributes   00000000 (0)\n+6F55E3 Local Header Offset   001CAA4F (1878607)\n+6F55E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F55E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5607 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5609   Length              0005 (5)\n+6F560B   Flags               01 (1) 'Modification'\n+6F560C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5610 CENTRAL HEADER #642   02014B50 (33639248)\n+6F5614 Created Zip Spec      14 (20) '2.0'\n+6F5615 Created OS            00 (0) 'MS-DOS'\n+6F5616 Extract Zip Spec      14 (20) '2.0'\n+6F5617 Extract OS            00 (0) 'MS-DOS'\n+6F5618 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F561A Compression Method    0000 (0) 'Stored'\n+6F561C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5620 CRC                   C8C419A3 (3368294819)\n+6F5624 Compressed Size       00000ECC (3788)\n+6F5628 Uncompressed Size     00000ECC (3788)\n+6F562C Filename Length       002E (46)\n+6F562E Extra Length          0009 (9)\n+6F5630 Comment Length        0000 (0)\n+6F5632 Disk Start            0000 (0)\n+6F5634 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5636 Ext File Attributes   00000000 (0)\n+6F563A Local Header Offset   001CAA96 (1878678)\n+6F563E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F563E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F566C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F566E   Length              0005 (5)\n+6F5670   Flags               01 (1) 'Modification'\n+6F5671   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5675 CENTRAL HEADER #643   02014B50 (33639248)\n+6F5679 Created Zip Spec      14 (20) '2.0'\n+6F567A Created OS            00 (0) 'MS-DOS'\n+6F567B Extract Zip Spec      14 (20) '2.0'\n+6F567C Extract OS            00 (0) 'MS-DOS'\n+6F567D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F567F Compression Method    0000 (0) 'Stored'\n+6F5681 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5685 CRC                   C31C00DA (3273392346)\n+6F5689 Compressed Size       0000042C (1068)\n+6F568D Uncompressed Size     0000042C (1068)\n+6F5691 Filename Length       0034 (52)\n+6F5693 Extra Length          0009 (9)\n+6F5695 Comment Length        0000 (0)\n+6F5697 Disk Start            0000 (0)\n+6F5699 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F569B Ext File Attributes   00000000 (0)\n+6F569F Local Header Offset   001CB9C7 (1882567)\n+6F56A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F56A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F56D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F56D9   Length              0005 (5)\n+6F56DB   Flags               01 (1) 'Modification'\n+6F56DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F56E0 CENTRAL HEADER #644   02014B50 (33639248)\n+6F56E4 Created Zip Spec      14 (20) '2.0'\n+6F56E5 Created OS            00 (0) 'MS-DOS'\n+6F56E6 Extract Zip Spec      14 (20) '2.0'\n+6F56E7 Extract OS            00 (0) 'MS-DOS'\n+6F56E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F56EA Compression Method    0000 (0) 'Stored'\n+6F56EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F56F0 CRC                   C4FF04D7 (3305047255)\n+6F56F4 Compressed Size       00000558 (1368)\n+6F56F8 Uncompressed Size     00000558 (1368)\n+6F56FC Filename Length       003D (61)\n+6F56FE Extra Length          0009 (9)\n+6F5700 Comment Length        0000 (0)\n+6F5702 Disk Start            0000 (0)\n+6F5704 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5706 Ext File Attributes   00000000 (0)\n+6F570A Local Header Offset   001CBE5E (1883742)\n+6F570E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F570E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F574B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F574D   Length              0005 (5)\n+6F574F   Flags               01 (1) 'Modification'\n+6F5750   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5754 CENTRAL HEADER #645   02014B50 (33639248)\n+6F5758 Created Zip Spec      14 (20) '2.0'\n+6F5759 Created OS            00 (0) 'MS-DOS'\n+6F575A Extract Zip Spec      14 (20) '2.0'\n+6F575B Extract OS            00 (0) 'MS-DOS'\n+6F575C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F575E Compression Method    0000 (0) 'Stored'\n+6F5760 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5764 CRC                   B8E6EA58 (3102141016)\n+6F5768 Compressed Size       0000053B (1339)\n+6F576C Uncompressed Size     0000053B (1339)\n+6F5770 Filename Length       003F (63)\n+6F5772 Extra Length          0009 (9)\n+6F5774 Comment Length        0000 (0)\n+6F5776 Disk Start            0000 (0)\n+6F5778 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F577A Ext File Attributes   00000000 (0)\n+6F577E Local Header Offset   001CC42A (1885226)\n+6F5782 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5782: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F57C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F57C3   Length              0005 (5)\n+6F57C5   Flags               01 (1) 'Modification'\n+6F57C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F57CA CENTRAL HEADER #646   02014B50 (33639248)\n+6F57CE Created Zip Spec      14 (20) '2.0'\n+6F57CF Created OS            00 (0) 'MS-DOS'\n+6F57D0 Extract Zip Spec      14 (20) '2.0'\n+6F57D1 Extract OS            00 (0) 'MS-DOS'\n+6F57D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F57D4 Compression Method    0000 (0) 'Stored'\n+6F57D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F57DA CRC                   27EF74B8 (670004408)\n+6F57DE Compressed Size       00000606 (1542)\n+6F57E2 Uncompressed Size     00000606 (1542)\n+6F57E6 Filename Length       003F (63)\n+6F57E8 Extra Length          0009 (9)\n+6F57EA Comment Length        0000 (0)\n+6F57EC Disk Start            0000 (0)\n+6F57EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F57F0 Ext File Attributes   00000000 (0)\n+6F57F4 Local Header Offset   001CC9DB (1886683)\n+6F57F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F57F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5837 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5839   Length              0005 (5)\n+6F583B   Flags               01 (1) 'Modification'\n+6F583C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5840 CENTRAL HEADER #647   02014B50 (33639248)\n+6F5844 Created Zip Spec      14 (20) '2.0'\n+6F5845 Created OS            00 (0) 'MS-DOS'\n+6F5846 Extract Zip Spec      14 (20) '2.0'\n+6F5847 Extract OS            00 (0) 'MS-DOS'\n+6F5848 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F584A Compression Method    0000 (0) 'Stored'\n+6F584C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5850 CRC                   3F610BCB (1063324619)\n+6F5854 Compressed Size       00000555 (1365)\n+6F5858 Uncompressed Size     00000555 (1365)\n+6F585C Filename Length       003C (60)\n+6F585E Extra Length          0009 (9)\n+6F5860 Comment Length        0000 (0)\n+6F5862 Disk Start            0000 (0)\n+6F5864 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5866 Ext File Attributes   00000000 (0)\n+6F586A Local Header Offset   001CD057 (1888343)\n+6F586E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F586E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F58AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F58AC   Length              0005 (5)\n+6F58AE   Flags               01 (1) 'Modification'\n+6F58AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F58B3 CENTRAL HEADER #648   02014B50 (33639248)\n+6F58B7 Created Zip Spec      14 (20) '2.0'\n+6F58B8 Created OS            00 (0) 'MS-DOS'\n+6F58B9 Extract Zip Spec      14 (20) '2.0'\n+6F58BA Extract OS            00 (0) 'MS-DOS'\n+6F58BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F58BD Compression Method    0000 (0) 'Stored'\n+6F58BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F58C3 CRC                   15F2A538 (368223544)\n+6F58C7 Compressed Size       0000054E (1358)\n+6F58CB Uncompressed Size     0000054E (1358)\n+6F58CF Filename Length       003B (59)\n+6F58D1 Extra Length          0009 (9)\n+6F58D3 Comment Length        0000 (0)\n+6F58D5 Disk Start            0000 (0)\n+6F58D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F58D9 Ext File Attributes   00000000 (0)\n+6F58DD Local Header Offset   001CD61F (1889823)\n+6F58E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F58E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F591C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F591E   Length              0005 (5)\n+6F5920   Flags               01 (1) 'Modification'\n+6F5921   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5925 CENTRAL HEADER #649   02014B50 (33639248)\n+6F5929 Created Zip Spec      14 (20) '2.0'\n+6F592A Created OS            00 (0) 'MS-DOS'\n+6F592B Extract Zip Spec      14 (20) '2.0'\n+6F592C Extract OS            00 (0) 'MS-DOS'\n+6F592D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F592F Compression Method    0000 (0) 'Stored'\n+6F5931 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5935 CRC                   DB3985F1 (3677980145)\n+6F5939 Compressed Size       00000554 (1364)\n+6F593D Uncompressed Size     00000554 (1364)\n+6F5941 Filename Length       003D (61)\n+6F5943 Extra Length          0009 (9)\n+6F5945 Comment Length        0000 (0)\n+6F5947 Disk Start            0000 (0)\n+6F5949 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F594B Ext File Attributes   00000000 (0)\n+6F594F Local Header Offset   001CDBDF (1891295)\n+6F5953 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5953: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5990 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5992   Length              0005 (5)\n+6F5994   Flags               01 (1) 'Modification'\n+6F5995   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5999 CENTRAL HEADER #650   02014B50 (33639248)\n+6F599D Created Zip Spec      14 (20) '2.0'\n+6F599E Created OS            00 (0) 'MS-DOS'\n+6F599F Extract Zip Spec      14 (20) '2.0'\n+6F59A0 Extract OS            00 (0) 'MS-DOS'\n+6F59A1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F59A3 Compression Method    0000 (0) 'Stored'\n+6F59A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F59A9 CRC                   7AC3DE73 (2059656819)\n+6F59AD Compressed Size       0000054B (1355)\n+6F59B1 Uncompressed Size     0000054B (1355)\n+6F59B5 Filename Length       003A (58)\n+6F59B7 Extra Length          0009 (9)\n+6F59B9 Comment Length        0000 (0)\n+6F59BB Disk Start            0000 (0)\n+6F59BD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F59BF Ext File Attributes   00000000 (0)\n+6F59C3 Local Header Offset   001CE1A7 (1892775)\n+6F59C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F59BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F59C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6F5A01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6F5A03   Length              0005 (5)\n 6F5A05   Flags               01 (1) 'Modification'\n 6F5A06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6F5A0A CENTRAL HEADER #1578  02014B50 (33639248)\n+6F5A0A CENTRAL HEADER #651   02014B50 (33639248)\n 6F5A0E Created Zip Spec      14 (20) '2.0'\n 6F5A0F Created OS            00 (0) 'MS-DOS'\n 6F5A10 Extract Zip Spec      14 (20) '2.0'\n 6F5A11 Extract OS            00 (0) 'MS-DOS'\n 6F5A12 General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6F5A14 Compression Method    0000 (0) 'Stored'\n 6F5A16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5A1A CRC                   F135EAA5 (4046842533)\n-6F5A1E Compressed Size       000014BA (5306)\n-6F5A22 Uncompressed Size     000014BA (5306)\n-6F5A26 Filename Length       0049 (73)\n+6F5A1A CRC                   190CB88A (420264074)\n+6F5A1E Compressed Size       0000051B (1307)\n+6F5A22 Uncompressed Size     0000051B (1307)\n+6F5A26 Filename Length       003E (62)\n 6F5A28 Extra Length          0009 (9)\n 6F5A2A Comment Length        0000 (0)\n 6F5A2C Disk Start            0000 (0)\n 6F5A2E Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6F5A30 Ext File Attributes   00000000 (0)\n-6F5A34 Local Header Offset   0056D15A (5689690)\n-6F5A38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F5A34 Local Header Offset   001CE763 (1894243)\n+6F5A38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F5A38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F5A38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6F5A81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5A83   Length              0005 (5)\n-6F5A85   Flags               01 (1) 'Modification'\n-6F5A86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5A8A CENTRAL HEADER #1579  02014B50 (33639248)\n-6F5A8E Created Zip Spec      14 (20) '2.0'\n-6F5A8F Created OS            00 (0) 'MS-DOS'\n-6F5A90 Extract Zip Spec      14 (20) '2.0'\n-6F5A91 Extract OS            00 (0) 'MS-DOS'\n-6F5A92 General Purpose Flag  0000 (0)\n-6F5A94 Compression Method    0000 (0) 'Stored'\n-6F5A96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5A9A CRC                   00000000 (0)\n-6F5A9E Compressed Size       00000000 (0)\n-6F5AA2 Uncompressed Size     00000000 (0)\n-6F5AA6 Filename Length       0033 (51)\n-6F5AA8 Extra Length          0009 (9)\n-6F5AAA Comment Length        0000 (0)\n-6F5AAC Disk Start            0000 (0)\n-6F5AAE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5AB0 Ext File Attributes   00000000 (0)\n-6F5AB4 Local Header Offset   0056E694 (5695124)\n-6F5AB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5AB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5AEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5AED   Length              0005 (5)\n-6F5AEF   Flags               01 (1) 'Modification'\n-6F5AF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5AF4 CENTRAL HEADER #1580  02014B50 (33639248)\n-6F5AF8 Created Zip Spec      14 (20) '2.0'\n-6F5AF9 Created OS            00 (0) 'MS-DOS'\n-6F5AFA Extract Zip Spec      14 (20) '2.0'\n-6F5AFB Extract OS            00 (0) 'MS-DOS'\n-6F5AFC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5AFE Compression Method    0000 (0) 'Stored'\n-6F5B00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5B04 CRC                   32EFA1AA (854565290)\n-6F5B08 Compressed Size       00000E18 (3608)\n-6F5B0C Uncompressed Size     00000E18 (3608)\n-6F5B10 Filename Length       0049 (73)\n-6F5B12 Extra Length          0009 (9)\n-6F5B14 Comment Length        0000 (0)\n-6F5B16 Disk Start            0000 (0)\n-6F5B18 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5B1A Ext File Attributes   00000000 (0)\n-6F5B1E Local Header Offset   0056E6EE (5695214)\n-6F5B22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5B22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5B6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5B6D   Length              0005 (5)\n-6F5B6F   Flags               01 (1) 'Modification'\n-6F5B70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5B74 CENTRAL HEADER #1581  02014B50 (33639248)\n-6F5B78 Created Zip Spec      14 (20) '2.0'\n-6F5B79 Created OS            00 (0) 'MS-DOS'\n-6F5B7A Extract Zip Spec      14 (20) '2.0'\n-6F5B7B Extract OS            00 (0) 'MS-DOS'\n-6F5B7C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5B7E Compression Method    0000 (0) 'Stored'\n-6F5B80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5B84 CRC                   40313D69 (1076968809)\n-6F5B88 Compressed Size       00000521 (1313)\n-6F5B8C Uncompressed Size     00000521 (1313)\n-6F5B90 Filename Length       0045 (69)\n-6F5B92 Extra Length          0009 (9)\n-6F5B94 Comment Length        0000 (0)\n-6F5B96 Disk Start            0000 (0)\n-6F5B98 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5B9A Ext File Attributes   00000000 (0)\n-6F5B9E Local Header Offset   0056F586 (5698950)\n-6F5BA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5BA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5BE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5BE9   Length              0005 (5)\n-6F5BEB   Flags               01 (1) 'Modification'\n-6F5BEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5BF0 CENTRAL HEADER #1582  02014B50 (33639248)\n-6F5BF4 Created Zip Spec      14 (20) '2.0'\n-6F5BF5 Created OS            00 (0) 'MS-DOS'\n-6F5BF6 Extract Zip Spec      14 (20) '2.0'\n-6F5BF7 Extract OS            00 (0) 'MS-DOS'\n-6F5BF8 General Purpose Flag  0000 (0)\n-6F5BFA Compression Method    0000 (0) 'Stored'\n-6F5BFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5C00 CRC                   00000000 (0)\n-6F5C04 Compressed Size       00000000 (0)\n-6F5C08 Uncompressed Size     00000000 (0)\n-6F5C0C Filename Length       003A (58)\n-6F5C0E Extra Length          0009 (9)\n-6F5C10 Comment Length        0000 (0)\n-6F5C12 Disk Start            0000 (0)\n-6F5C14 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5C16 Ext File Attributes   00000000 (0)\n-6F5C1A Local Header Offset   0056FB23 (5700387)\n-6F5C1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5C1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5C58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5C5A   Length              0005 (5)\n-6F5C5C   Flags               01 (1) 'Modification'\n-6F5C5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5C61 CENTRAL HEADER #1583  02014B50 (33639248)\n-6F5C65 Created Zip Spec      14 (20) '2.0'\n-6F5C66 Created OS            00 (0) 'MS-DOS'\n-6F5C67 Extract Zip Spec      14 (20) '2.0'\n-6F5C68 Extract OS            00 (0) 'MS-DOS'\n-6F5C69 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5C6B Compression Method    0000 (0) 'Stored'\n-6F5C6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5C71 CRC                   956AD47E (2506806398)\n-6F5C75 Compressed Size       000014D1 (5329)\n-6F5C79 Uncompressed Size     000014D1 (5329)\n-6F5C7D Filename Length       005E (94)\n-6F5C7F Extra Length          0009 (9)\n-6F5C81 Comment Length        0000 (0)\n-6F5C83 Disk Start            0000 (0)\n-6F5C85 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5C87 Ext File Attributes   00000000 (0)\n-6F5C8B Local Header Offset   0056FB84 (5700484)\n-6F5C8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5C8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5CED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5CEF   Length              0005 (5)\n-6F5CF1   Flags               01 (1) 'Modification'\n-6F5CF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5CF6 CENTRAL HEADER #1584  02014B50 (33639248)\n-6F5CFA Created Zip Spec      14 (20) '2.0'\n-6F5CFB Created OS            00 (0) 'MS-DOS'\n-6F5CFC Extract Zip Spec      14 (20) '2.0'\n-6F5CFD Extract OS            00 (0) 'MS-DOS'\n-6F5CFE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5D00 Compression Method    0000 (0) 'Stored'\n-6F5D02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5D06 CRC                   5474BB92 (1416936338)\n-6F5D0A Compressed Size       00000551 (1361)\n-6F5D0E Uncompressed Size     00000551 (1361)\n-6F5D12 Filename Length       005A (90)\n-6F5D14 Extra Length          0009 (9)\n-6F5D16 Comment Length        0000 (0)\n-6F5D18 Disk Start            0000 (0)\n-6F5D1A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5D1C Ext File Attributes   00000000 (0)\n-6F5D20 Local Header Offset   005710EA (5705962)\n-6F5D24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5D24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5D7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5D80   Length              0005 (5)\n-6F5D82   Flags               01 (1) 'Modification'\n-6F5D83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5D87 CENTRAL HEADER #1585  02014B50 (33639248)\n-6F5D8B Created Zip Spec      14 (20) '2.0'\n-6F5D8C Created OS            00 (0) 'MS-DOS'\n-6F5D8D Extract Zip Spec      14 (20) '2.0'\n-6F5D8E Extract OS            00 (0) 'MS-DOS'\n-6F5D8F General Purpose Flag  0000 (0)\n-6F5D91 Compression Method    0000 (0) 'Stored'\n-6F5D93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5D97 CRC                   00000000 (0)\n-6F5D9B Compressed Size       00000000 (0)\n-6F5D9F Uncompressed Size     00000000 (0)\n-6F5DA3 Filename Length       0036 (54)\n-6F5DA5 Extra Length          0009 (9)\n-6F5DA7 Comment Length        0000 (0)\n-6F5DA9 Disk Start            0000 (0)\n-6F5DAB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5DAD Ext File Attributes   00000000 (0)\n-6F5DB1 Local Header Offset   005716CC (5707468)\n-6F5DB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5DB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5DEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5DED   Length              0005 (5)\n-6F5DEF   Flags               01 (1) 'Modification'\n-6F5DF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5DF4 CENTRAL HEADER #1586  02014B50 (33639248)\n-6F5DF8 Created Zip Spec      14 (20) '2.0'\n-6F5DF9 Created OS            00 (0) 'MS-DOS'\n-6F5DFA Extract Zip Spec      14 (20) '2.0'\n-6F5DFB Extract OS            00 (0) 'MS-DOS'\n-6F5DFC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5DFE Compression Method    0000 (0) 'Stored'\n-6F5E00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5E04 CRC                   F2C441AD (4072948141)\n-6F5E08 Compressed Size       000008B3 (2227)\n-6F5E0C Uncompressed Size     000008B3 (2227)\n-6F5E10 Filename Length       004F (79)\n-6F5E12 Extra Length          0009 (9)\n-6F5E14 Comment Length        0000 (0)\n-6F5E16 Disk Start            0000 (0)\n-6F5E18 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5E1A Ext File Attributes   00000000 (0)\n-6F5E1E Local Header Offset   00571729 (5707561)\n-6F5E22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5E22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5E71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5E73   Length              0005 (5)\n-6F5E75   Flags               01 (1) 'Modification'\n-6F5E76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5E7A CENTRAL HEADER #1587  02014B50 (33639248)\n-6F5E7E Created Zip Spec      14 (20) '2.0'\n-6F5E7F Created OS            00 (0) 'MS-DOS'\n-6F5E80 Extract Zip Spec      14 (20) '2.0'\n-6F5E81 Extract OS            00 (0) 'MS-DOS'\n-6F5E82 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5E84 Compression Method    0000 (0) 'Stored'\n-6F5E86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5E8A CRC                   E0C2D2A3 (3770864291)\n-6F5E8E Compressed Size       000004FE (1278)\n-6F5E92 Uncompressed Size     000004FE (1278)\n-6F5E96 Filename Length       004B (75)\n-6F5E98 Extra Length          0009 (9)\n-6F5E9A Comment Length        0000 (0)\n-6F5E9C Disk Start            0000 (0)\n-6F5E9E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5EA0 Ext File Attributes   00000000 (0)\n-6F5EA4 Local Header Offset   00572062 (5709922)\n-6F5EA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5EA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5EF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5EF5   Length              0005 (5)\n-6F5EF7   Flags               01 (1) 'Modification'\n-6F5EF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5EFC CENTRAL HEADER #1588  02014B50 (33639248)\n-6F5F00 Created Zip Spec      14 (20) '2.0'\n-6F5F01 Created OS            00 (0) 'MS-DOS'\n-6F5F02 Extract Zip Spec      14 (20) '2.0'\n-6F5F03 Extract OS            00 (0) 'MS-DOS'\n-6F5F04 General Purpose Flag  0000 (0)\n-6F5F06 Compression Method    0000 (0) 'Stored'\n-6F5F08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5F0C CRC                   00000000 (0)\n-6F5F10 Compressed Size       00000000 (0)\n-6F5F14 Uncompressed Size     00000000 (0)\n-6F5F18 Filename Length       0039 (57)\n-6F5F1A Extra Length          0009 (9)\n-6F5F1C Comment Length        0000 (0)\n-6F5F1E Disk Start            0000 (0)\n-6F5F20 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5F22 Ext File Attributes   00000000 (0)\n-6F5F26 Local Header Offset   005725E2 (5711330)\n-6F5F2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5F2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5F63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5F65   Length              0005 (5)\n-6F5F67   Flags               01 (1) 'Modification'\n-6F5F68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5F6C CENTRAL HEADER #1589  02014B50 (33639248)\n-6F5F70 Created Zip Spec      14 (20) '2.0'\n-6F5F71 Created OS            00 (0) 'MS-DOS'\n-6F5F72 Extract Zip Spec      14 (20) '2.0'\n-6F5F73 Extract OS            00 (0) 'MS-DOS'\n-6F5F74 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F5F76 Compression Method    0000 (0) 'Stored'\n-6F5F78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F5F7C CRC                   9D8FBCBD (2643442877)\n-6F5F80 Compressed Size       00000C4B (3147)\n-6F5F84 Uncompressed Size     00000C4B (3147)\n-6F5F88 Filename Length       0055 (85)\n-6F5F8A Extra Length          0009 (9)\n-6F5F8C Comment Length        0000 (0)\n-6F5F8E Disk Start            0000 (0)\n-6F5F90 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F5F92 Ext File Attributes   00000000 (0)\n-6F5F96 Local Header Offset   00572642 (5711426)\n-6F5F9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F5F9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F5FEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F5FF1   Length              0005 (5)\n-6F5FF3   Flags               01 (1) 'Modification'\n-6F5FF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F5FF8 CENTRAL HEADER #1590  02014B50 (33639248)\n-6F5FFC Created Zip Spec      14 (20) '2.0'\n-6F5FFD Created OS            00 (0) 'MS-DOS'\n-6F5FFE Extract Zip Spec      14 (20) '2.0'\n-6F5FFF Extract OS            00 (0) 'MS-DOS'\n-6F6000 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6002 Compression Method    0000 (0) 'Stored'\n-6F6004 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6008 CRC                   DF933BA4 (3750968228)\n-6F600C Compressed Size       00000555 (1365)\n-6F6010 Uncompressed Size     00000555 (1365)\n-6F6014 Filename Length       0051 (81)\n-6F6016 Extra Length          0009 (9)\n-6F6018 Comment Length        0000 (0)\n-6F601A Disk Start            0000 (0)\n-6F601C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F601E Ext File Attributes   00000000 (0)\n-6F6022 Local Header Offset   00573319 (5714713)\n-6F6026 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6026: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6077 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6079   Length              0005 (5)\n-6F607B   Flags               01 (1) 'Modification'\n-6F607C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6080 CENTRAL HEADER #1591  02014B50 (33639248)\n-6F6084 Created Zip Spec      14 (20) '2.0'\n-6F6085 Created OS            00 (0) 'MS-DOS'\n-6F6086 Extract Zip Spec      14 (20) '2.0'\n-6F6087 Extract OS            00 (0) 'MS-DOS'\n-6F6088 General Purpose Flag  0000 (0)\n-6F608A Compression Method    0000 (0) 'Stored'\n-6F608C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6090 CRC                   00000000 (0)\n-6F6094 Compressed Size       00000000 (0)\n-6F6098 Uncompressed Size     00000000 (0)\n-6F609C Filename Length       0037 (55)\n-6F609E Extra Length          0009 (9)\n-6F60A0 Comment Length        0000 (0)\n-6F60A2 Disk Start            0000 (0)\n-6F60A4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F60A6 Ext File Attributes   00000000 (0)\n-6F60AA Local Header Offset   005738F6 (5716214)\n-6F60AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F60AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F60E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F60E7   Length              0005 (5)\n-6F60E9   Flags               01 (1) 'Modification'\n-6F60EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F60EE CENTRAL HEADER #1592  02014B50 (33639248)\n-6F60F2 Created Zip Spec      14 (20) '2.0'\n-6F60F3 Created OS            00 (0) 'MS-DOS'\n-6F60F4 Extract Zip Spec      14 (20) '2.0'\n-6F60F5 Extract OS            00 (0) 'MS-DOS'\n-6F60F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F60F8 Compression Method    0000 (0) 'Stored'\n-6F60FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F60FE CRC                   5CADB8BA (1554888890)\n-6F6102 Compressed Size       00000910 (2320)\n-6F6106 Uncompressed Size     00000910 (2320)\n-6F610A Filename Length       0055 (85)\n-6F610C Extra Length          0009 (9)\n-6F610E Comment Length        0000 (0)\n-6F6110 Disk Start            0000 (0)\n-6F6112 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6114 Ext File Attributes   00000000 (0)\n-6F6118 Local Header Offset   00573954 (5716308)\n-6F611C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F611C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6171 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6173   Length              0005 (5)\n-6F6175   Flags               01 (1) 'Modification'\n-6F6176   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F617A CENTRAL HEADER #1593  02014B50 (33639248)\n-6F617E Created Zip Spec      14 (20) '2.0'\n-6F617F Created OS            00 (0) 'MS-DOS'\n-6F6180 Extract Zip Spec      14 (20) '2.0'\n-6F6181 Extract OS            00 (0) 'MS-DOS'\n-6F6182 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6184 Compression Method    0000 (0) 'Stored'\n-6F6186 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F618A CRC                   897FB906 (2306849030)\n-6F618E Compressed Size       00000546 (1350)\n-6F6192 Uncompressed Size     00000546 (1350)\n-6F6196 Filename Length       0051 (81)\n-6F6198 Extra Length          0009 (9)\n-6F619A Comment Length        0000 (0)\n-6F619C Disk Start            0000 (0)\n-6F619E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F61A0 Ext File Attributes   00000000 (0)\n-6F61A4 Local Header Offset   005742F0 (5718768)\n-6F61A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F61A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F61F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F61FB   Length              0005 (5)\n-6F61FD   Flags               01 (1) 'Modification'\n-6F61FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6202 CENTRAL HEADER #1594  02014B50 (33639248)\n-6F6206 Created Zip Spec      14 (20) '2.0'\n-6F6207 Created OS            00 (0) 'MS-DOS'\n-6F6208 Extract Zip Spec      14 (20) '2.0'\n-6F6209 Extract OS            00 (0) 'MS-DOS'\n-6F620A General Purpose Flag  0000 (0)\n-6F620C Compression Method    0000 (0) 'Stored'\n-6F620E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6212 CRC                   00000000 (0)\n-6F6216 Compressed Size       00000000 (0)\n-6F621A Uncompressed Size     00000000 (0)\n-6F621E Filename Length       002C (44)\n-6F6220 Extra Length          0009 (9)\n-6F6222 Comment Length        0000 (0)\n-6F6224 Disk Start            0000 (0)\n-6F6226 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6228 Ext File Attributes   00000000 (0)\n-6F622C Local Header Offset   005748BE (5720254)\n-6F6230 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6230: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F625C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F625E   Length              0005 (5)\n-6F6260   Flags               01 (1) 'Modification'\n-6F6261   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6265 CENTRAL HEADER #1595  02014B50 (33639248)\n-6F6269 Created Zip Spec      14 (20) '2.0'\n-6F626A Created OS            00 (0) 'MS-DOS'\n-6F626B Extract Zip Spec      14 (20) '2.0'\n-6F626C Extract OS            00 (0) 'MS-DOS'\n-6F626D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F626F Compression Method    0000 (0) 'Stored'\n-6F6271 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6275 CRC                   56951E3F (1452613183)\n-6F6279 Compressed Size       0000197F (6527)\n-6F627D Uncompressed Size     0000197F (6527)\n-6F6281 Filename Length       003F (63)\n-6F6283 Extra Length          0009 (9)\n-6F6285 Comment Length        0000 (0)\n-6F6287 Disk Start            0000 (0)\n-6F6289 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F628B Ext File Attributes   00000000 (0)\n-6F628F Local Header Offset   00574911 (5720337)\n-6F6293 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6293: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F62D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F62D4   Length              0005 (5)\n-6F62D6   Flags               01 (1) 'Modification'\n-6F62D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F62DB CENTRAL HEADER #1596  02014B50 (33639248)\n-6F62DF Created Zip Spec      14 (20) '2.0'\n-6F62E0 Created OS            00 (0) 'MS-DOS'\n-6F62E1 Extract Zip Spec      14 (20) '2.0'\n-6F62E2 Extract OS            00 (0) 'MS-DOS'\n-6F62E3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F62E5 Compression Method    0000 (0) 'Stored'\n-6F62E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F62EB CRC                   42023036 (1107439670)\n-6F62EF Compressed Size       000010C6 (4294)\n-6F62F3 Uncompressed Size     000010C6 (4294)\n-6F62F7 Filename Length       003E (62)\n-6F62F9 Extra Length          0009 (9)\n-6F62FB Comment Length        0000 (0)\n-6F62FD Disk Start            0000 (0)\n-6F62FF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6301 Ext File Attributes   00000000 (0)\n-6F6305 Local Header Offset   00576306 (5726982)\n-6F6309 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6309: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6347 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6349   Length              0005 (5)\n-6F634B   Flags               01 (1) 'Modification'\n-6F634C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6350 CENTRAL HEADER #1597  02014B50 (33639248)\n-6F6354 Created Zip Spec      14 (20) '2.0'\n-6F6355 Created OS            00 (0) 'MS-DOS'\n-6F6356 Extract Zip Spec      14 (20) '2.0'\n-6F6357 Extract OS            00 (0) 'MS-DOS'\n-6F6358 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F635A Compression Method    0000 (0) 'Stored'\n-6F635C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6360 CRC                   4DD0FDAC (1305542060)\n-6F6364 Compressed Size       00001750 (5968)\n-6F6368 Uncompressed Size     00001750 (5968)\n-6F636C Filename Length       0044 (68)\n-6F636E Extra Length          0009 (9)\n-6F6370 Comment Length        0000 (0)\n-6F6372 Disk Start            0000 (0)\n-6F6374 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6376 Ext File Attributes   00000000 (0)\n-6F637A Local Header Offset   00577441 (5731393)\n-6F637E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F637E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F63C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F63C4   Length              0005 (5)\n-6F63C6   Flags               01 (1) 'Modification'\n-6F63C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F63CB CENTRAL HEADER #1598  02014B50 (33639248)\n-6F63CF Created Zip Spec      14 (20) '2.0'\n-6F63D0 Created OS            00 (0) 'MS-DOS'\n-6F63D1 Extract Zip Spec      14 (20) '2.0'\n-6F63D2 Extract OS            00 (0) 'MS-DOS'\n-6F63D3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F63D5 Compression Method    0000 (0) 'Stored'\n-6F63D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F63DB CRC                   EC29A626 (3962152486)\n-6F63DF Compressed Size       000011CA (4554)\n-6F63E3 Uncompressed Size     000011CA (4554)\n-6F63E7 Filename Length       003F (63)\n-6F63E9 Extra Length          0009 (9)\n-6F63EB Comment Length        0000 (0)\n-6F63ED Disk Start            0000 (0)\n-6F63EF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F63F1 Ext File Attributes   00000000 (0)\n-6F63F5 Local Header Offset   00578C0C (5737484)\n-6F63F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F63F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6438 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F643A   Length              0005 (5)\n-6F643C   Flags               01 (1) 'Modification'\n-6F643D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6441 CENTRAL HEADER #1599  02014B50 (33639248)\n-6F6445 Created Zip Spec      14 (20) '2.0'\n-6F6446 Created OS            00 (0) 'MS-DOS'\n-6F6447 Extract Zip Spec      14 (20) '2.0'\n-6F6448 Extract OS            00 (0) 'MS-DOS'\n-6F6449 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F644B Compression Method    0000 (0) 'Stored'\n-6F644D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6451 CRC                   253B482C (624642092)\n-6F6455 Compressed Size       000014A3 (5283)\n-6F6459 Uncompressed Size     000014A3 (5283)\n-6F645D Filename Length       003E (62)\n-6F645F Extra Length          0009 (9)\n-6F6461 Comment Length        0000 (0)\n-6F6463 Disk Start            0000 (0)\n-6F6465 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6467 Ext File Attributes   00000000 (0)\n-6F646B Local Header Offset   00579E4C (5742156)\n-6F646F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F646F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F64AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F64AF   Length              0005 (5)\n-6F64B1   Flags               01 (1) 'Modification'\n-6F64B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F64B6 CENTRAL HEADER #1600  02014B50 (33639248)\n-6F64BA Created Zip Spec      14 (20) '2.0'\n-6F64BB Created OS            00 (0) 'MS-DOS'\n-6F64BC Extract Zip Spec      14 (20) '2.0'\n-6F64BD Extract OS            00 (0) 'MS-DOS'\n-6F64BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F64C0 Compression Method    0000 (0) 'Stored'\n-6F64C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F64C6 CRC                   117073F8 (292582392)\n-6F64CA Compressed Size       0000065C (1628)\n-6F64CE Uncompressed Size     0000065C (1628)\n-6F64D2 Filename Length       0043 (67)\n-6F64D4 Extra Length          0009 (9)\n-6F64D6 Comment Length        0000 (0)\n-6F64D8 Disk Start            0000 (0)\n-6F64DA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F64DC Ext File Attributes   00000000 (0)\n-6F64E0 Local Header Offset   0057B364 (5747556)\n-6F64E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F64E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6527 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6529   Length              0005 (5)\n-6F652B   Flags               01 (1) 'Modification'\n-6F652C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6530 CENTRAL HEADER #1601  02014B50 (33639248)\n-6F6534 Created Zip Spec      14 (20) '2.0'\n-6F6535 Created OS            00 (0) 'MS-DOS'\n-6F6536 Extract Zip Spec      14 (20) '2.0'\n-6F6537 Extract OS            00 (0) 'MS-DOS'\n-6F6538 General Purpose Flag  0000 (0)\n-6F653A Compression Method    0000 (0) 'Stored'\n-6F653C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6540 CRC                   00000000 (0)\n-6F6544 Compressed Size       00000000 (0)\n-6F6548 Uncompressed Size     00000000 (0)\n-6F654C Filename Length       0029 (41)\n-6F654E Extra Length          0009 (9)\n-6F6550 Comment Length        0000 (0)\n-6F6552 Disk Start            0000 (0)\n-6F6554 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6556 Ext File Attributes   00000000 (0)\n-6F655A Local Header Offset   0057BA3A (5749306)\n-6F655E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F655E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6587 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6589   Length              0005 (5)\n-6F658B   Flags               01 (1) 'Modification'\n-6F658C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6590 CENTRAL HEADER #1602  02014B50 (33639248)\n-6F6594 Created Zip Spec      14 (20) '2.0'\n-6F6595 Created OS            00 (0) 'MS-DOS'\n-6F6596 Extract Zip Spec      14 (20) '2.0'\n-6F6597 Extract OS            00 (0) 'MS-DOS'\n-6F6598 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F659A Compression Method    0000 (0) 'Stored'\n-6F659C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F65A0 CRC                   3D7F2712 (1031743250)\n-6F65A4 Compressed Size       000016F4 (5876)\n-6F65A8 Uncompressed Size     000016F4 (5876)\n-6F65AC Filename Length       0039 (57)\n-6F65AE Extra Length          0009 (9)\n-6F65B0 Comment Length        0000 (0)\n-6F65B2 Disk Start            0000 (0)\n-6F65B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F65B6 Ext File Attributes   00000000 (0)\n-6F65BA Local Header Offset   0057BA8A (5749386)\n-6F65BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F65BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F65F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F65F9   Length              0005 (5)\n-6F65FB   Flags               01 (1) 'Modification'\n-6F65FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6600 CENTRAL HEADER #1603  02014B50 (33639248)\n-6F6604 Created Zip Spec      14 (20) '2.0'\n-6F6605 Created OS            00 (0) 'MS-DOS'\n-6F6606 Extract Zip Spec      14 (20) '2.0'\n-6F6607 Extract OS            00 (0) 'MS-DOS'\n-6F6608 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F660A Compression Method    0000 (0) 'Stored'\n-6F660C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6610 CRC                   1A88D275 (445174389)\n-6F6614 Compressed Size       00001CEA (7402)\n-6F6618 Uncompressed Size     00001CEA (7402)\n-6F661C Filename Length       0038 (56)\n-6F661E Extra Length          0009 (9)\n-6F6620 Comment Length        0000 (0)\n-6F6622 Disk Start            0000 (0)\n-6F6624 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6626 Ext File Attributes   00000000 (0)\n-6F662A Local Header Offset   0057D1EE (5755374)\n-6F662E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F662E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6666 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6668   Length              0005 (5)\n-6F666A   Flags               01 (1) 'Modification'\n-6F666B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F666F CENTRAL HEADER #1604  02014B50 (33639248)\n-6F6673 Created Zip Spec      14 (20) '2.0'\n-6F6674 Created OS            00 (0) 'MS-DOS'\n-6F6675 Extract Zip Spec      14 (20) '2.0'\n-6F6676 Extract OS            00 (0) 'MS-DOS'\n-6F6677 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6679 Compression Method    0000 (0) 'Stored'\n-6F667B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F667F CRC                   72A94157 (1923694935)\n-6F6683 Compressed Size       000017D7 (6103)\n-6F6687 Uncompressed Size     000017D7 (6103)\n-6F668B Filename Length       003E (62)\n-6F668D Extra Length          0009 (9)\n-6F668F Comment Length        0000 (0)\n-6F6691 Disk Start            0000 (0)\n-6F6693 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6695 Ext File Attributes   00000000 (0)\n-6F6699 Local Header Offset   0057EF47 (5762887)\n-6F669D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F5A76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5A78   Length              0005 (5)\n+6F5A7A   Flags               01 (1) 'Modification'\n+6F5A7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5A7F CENTRAL HEADER #652   02014B50 (33639248)\n+6F5A83 Created Zip Spec      14 (20) '2.0'\n+6F5A84 Created OS            00 (0) 'MS-DOS'\n+6F5A85 Extract Zip Spec      14 (20) '2.0'\n+6F5A86 Extract OS            00 (0) 'MS-DOS'\n+6F5A87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5A89 Compression Method    0000 (0) 'Stored'\n+6F5A8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5A8F CRC                   94D0E691 (2496718481)\n+6F5A93 Compressed Size       00000550 (1360)\n+6F5A97 Uncompressed Size     00000550 (1360)\n+6F5A9B Filename Length       003B (59)\n+6F5A9D Extra Length          0009 (9)\n+6F5A9F Comment Length        0000 (0)\n+6F5AA1 Disk Start            0000 (0)\n+6F5AA3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5AA5 Ext File Attributes   00000000 (0)\n+6F5AA9 Local Header Offset   001CECF3 (1895667)\n+6F5AAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5AAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5AE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5AEA   Length              0005 (5)\n+6F5AEC   Flags               01 (1) 'Modification'\n+6F5AED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5AF1 CENTRAL HEADER #653   02014B50 (33639248)\n+6F5AF5 Created Zip Spec      14 (20) '2.0'\n+6F5AF6 Created OS            00 (0) 'MS-DOS'\n+6F5AF7 Extract Zip Spec      14 (20) '2.0'\n+6F5AF8 Extract OS            00 (0) 'MS-DOS'\n+6F5AF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5AFB Compression Method    0000 (0) 'Stored'\n+6F5AFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5B01 CRC                   E4FF1EF0 (3841924848)\n+6F5B05 Compressed Size       00000470 (1136)\n+6F5B09 Uncompressed Size     00000470 (1136)\n+6F5B0D Filename Length       003C (60)\n+6F5B0F Extra Length          0009 (9)\n+6F5B11 Comment Length        0000 (0)\n+6F5B13 Disk Start            0000 (0)\n+6F5B15 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5B17 Ext File Attributes   00000000 (0)\n+6F5B1B Local Header Offset   001CF2B5 (1897141)\n+6F5B1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5B1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5B5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5B5D   Length              0005 (5)\n+6F5B5F   Flags               01 (1) 'Modification'\n+6F5B60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5B64 CENTRAL HEADER #654   02014B50 (33639248)\n+6F5B68 Created Zip Spec      14 (20) '2.0'\n+6F5B69 Created OS            00 (0) 'MS-DOS'\n+6F5B6A Extract Zip Spec      14 (20) '2.0'\n+6F5B6B Extract OS            00 (0) 'MS-DOS'\n+6F5B6C General Purpose Flag  0000 (0)\n+6F5B6E Compression Method    0000 (0) 'Stored'\n+6F5B70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5B74 CRC                   00000000 (0)\n+6F5B78 Compressed Size       00000000 (0)\n+6F5B7C Uncompressed Size     00000000 (0)\n+6F5B80 Filename Length       0029 (41)\n+6F5B82 Extra Length          0009 (9)\n+6F5B84 Comment Length        0000 (0)\n+6F5B86 Disk Start            0000 (0)\n+6F5B88 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5B8A Ext File Attributes   00000000 (0)\n+6F5B8E Local Header Offset   001CF798 (1898392)\n+6F5B92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5B92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5BBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5BBD   Length              0005 (5)\n+6F5BBF   Flags               01 (1) 'Modification'\n+6F5BC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5BC4 CENTRAL HEADER #655   02014B50 (33639248)\n+6F5BC8 Created Zip Spec      14 (20) '2.0'\n+6F5BC9 Created OS            00 (0) 'MS-DOS'\n+6F5BCA Extract Zip Spec      14 (20) '2.0'\n+6F5BCB Extract OS            00 (0) 'MS-DOS'\n+6F5BCC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5BCE Compression Method    0000 (0) 'Stored'\n+6F5BD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5BD4 CRC                   54CD8A2A (1422756394)\n+6F5BD8 Compressed Size       00000D8D (3469)\n+6F5BDC Uncompressed Size     00000D8D (3469)\n+6F5BE0 Filename Length       0041 (65)\n+6F5BE2 Extra Length          0009 (9)\n+6F5BE4 Comment Length        0000 (0)\n+6F5BE6 Disk Start            0000 (0)\n+6F5BE8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5BEA Ext File Attributes   00000000 (0)\n+6F5BEE Local Header Offset   001CF7E8 (1898472)\n+6F5BF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5BF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5C33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5C35   Length              0005 (5)\n+6F5C37   Flags               01 (1) 'Modification'\n+6F5C38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5C3C CENTRAL HEADER #656   02014B50 (33639248)\n+6F5C40 Created Zip Spec      14 (20) '2.0'\n+6F5C41 Created OS            00 (0) 'MS-DOS'\n+6F5C42 Extract Zip Spec      14 (20) '2.0'\n+6F5C43 Extract OS            00 (0) 'MS-DOS'\n+6F5C44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5C46 Compression Method    0000 (0) 'Stored'\n+6F5C48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5C4C CRC                   6FAB873E (1873512254)\n+6F5C50 Compressed Size       000007B0 (1968)\n+6F5C54 Uncompressed Size     000007B0 (1968)\n+6F5C58 Filename Length       0044 (68)\n+6F5C5A Extra Length          0009 (9)\n+6F5C5C Comment Length        0000 (0)\n+6F5C5E Disk Start            0000 (0)\n+6F5C60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5C62 Ext File Attributes   00000000 (0)\n+6F5C66 Local Header Offset   001D05ED (1902061)\n+6F5C6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5C6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5CAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5CB0   Length              0005 (5)\n+6F5CB2   Flags               01 (1) 'Modification'\n+6F5CB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5CB7 CENTRAL HEADER #657   02014B50 (33639248)\n+6F5CBB Created Zip Spec      14 (20) '2.0'\n+6F5CBC Created OS            00 (0) 'MS-DOS'\n+6F5CBD Extract Zip Spec      14 (20) '2.0'\n+6F5CBE Extract OS            00 (0) 'MS-DOS'\n+6F5CBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5CC1 Compression Method    0000 (0) 'Stored'\n+6F5CC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5CC7 CRC                   0C78A9F4 (209234420)\n+6F5CCB Compressed Size       00000530 (1328)\n+6F5CCF Uncompressed Size     00000530 (1328)\n+6F5CD3 Filename Length       004C (76)\n+6F5CD5 Extra Length          0009 (9)\n+6F5CD7 Comment Length        0000 (0)\n+6F5CD9 Disk Start            0000 (0)\n+6F5CDB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5CDD Ext File Attributes   00000000 (0)\n+6F5CE1 Local Header Offset   001D0E18 (1904152)\n+6F5CE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5CE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5D31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5D33   Length              0005 (5)\n+6F5D35   Flags               01 (1) 'Modification'\n+6F5D36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5D3A CENTRAL HEADER #658   02014B50 (33639248)\n+6F5D3E Created Zip Spec      14 (20) '2.0'\n+6F5D3F Created OS            00 (0) 'MS-DOS'\n+6F5D40 Extract Zip Spec      14 (20) '2.0'\n+6F5D41 Extract OS            00 (0) 'MS-DOS'\n+6F5D42 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5D44 Compression Method    0000 (0) 'Stored'\n+6F5D46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5D4A CRC                   5D42735B (1564635995)\n+6F5D4E Compressed Size       0000055A (1370)\n+6F5D52 Uncompressed Size     0000055A (1370)\n+6F5D56 Filename Length       004C (76)\n+6F5D58 Extra Length          0009 (9)\n+6F5D5A Comment Length        0000 (0)\n+6F5D5C Disk Start            0000 (0)\n+6F5D5E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5D60 Ext File Attributes   00000000 (0)\n+6F5D64 Local Header Offset   001D13CB (1905611)\n+6F5D68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5D68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5DB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5DB6   Length              0005 (5)\n+6F5DB8   Flags               01 (1) 'Modification'\n+6F5DB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5DBD CENTRAL HEADER #659   02014B50 (33639248)\n+6F5DC1 Created Zip Spec      14 (20) '2.0'\n+6F5DC2 Created OS            00 (0) 'MS-DOS'\n+6F5DC3 Extract Zip Spec      14 (20) '2.0'\n+6F5DC4 Extract OS            00 (0) 'MS-DOS'\n+6F5DC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5DC7 Compression Method    0000 (0) 'Stored'\n+6F5DC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5DCD CRC                   FE374BB9 (4265036729)\n+6F5DD1 Compressed Size       000004F7 (1271)\n+6F5DD5 Uncompressed Size     000004F7 (1271)\n+6F5DD9 Filename Length       0049 (73)\n+6F5DDB Extra Length          0009 (9)\n+6F5DDD Comment Length        0000 (0)\n+6F5DDF Disk Start            0000 (0)\n+6F5DE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5DE3 Ext File Attributes   00000000 (0)\n+6F5DE7 Local Header Offset   001D19A8 (1907112)\n+6F5DEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5DEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5E34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5E36   Length              0005 (5)\n+6F5E38   Flags               01 (1) 'Modification'\n+6F5E39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5E3D CENTRAL HEADER #660   02014B50 (33639248)\n+6F5E41 Created Zip Spec      14 (20) '2.0'\n+6F5E42 Created OS            00 (0) 'MS-DOS'\n+6F5E43 Extract Zip Spec      14 (20) '2.0'\n+6F5E44 Extract OS            00 (0) 'MS-DOS'\n+6F5E45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5E47 Compression Method    0000 (0) 'Stored'\n+6F5E49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5E4D CRC                   EF9E0DDB (4020112859)\n+6F5E51 Compressed Size       000004E0 (1248)\n+6F5E55 Uncompressed Size     000004E0 (1248)\n+6F5E59 Filename Length       0044 (68)\n+6F5E5B Extra Length          0009 (9)\n+6F5E5D Comment Length        0000 (0)\n+6F5E5F Disk Start            0000 (0)\n+6F5E61 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5E63 Ext File Attributes   00000000 (0)\n+6F5E67 Local Header Offset   001D1F1F (1908511)\n+6F5E6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5E6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5EAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5EB1   Length              0005 (5)\n+6F5EB3   Flags               01 (1) 'Modification'\n+6F5EB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5EB8 CENTRAL HEADER #661   02014B50 (33639248)\n+6F5EBC Created Zip Spec      14 (20) '2.0'\n+6F5EBD Created OS            00 (0) 'MS-DOS'\n+6F5EBE Extract Zip Spec      14 (20) '2.0'\n+6F5EBF Extract OS            00 (0) 'MS-DOS'\n+6F5EC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5EC2 Compression Method    0000 (0) 'Stored'\n+6F5EC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5EC8 CRC                   65FB8949 (1710983497)\n+6F5ECC Compressed Size       00000C72 (3186)\n+6F5ED0 Uncompressed Size     00000C72 (3186)\n+6F5ED4 Filename Length       0047 (71)\n+6F5ED6 Extra Length          0009 (9)\n+6F5ED8 Comment Length        0000 (0)\n+6F5EDA Disk Start            0000 (0)\n+6F5EDC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5EDE Ext File Attributes   00000000 (0)\n+6F5EE2 Local Header Offset   001D247A (1909882)\n+6F5EE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5EE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5F2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5F2F   Length              0005 (5)\n+6F5F31   Flags               01 (1) 'Modification'\n+6F5F32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5F36 CENTRAL HEADER #662   02014B50 (33639248)\n+6F5F3A Created Zip Spec      14 (20) '2.0'\n+6F5F3B Created OS            00 (0) 'MS-DOS'\n+6F5F3C Extract Zip Spec      14 (20) '2.0'\n+6F5F3D Extract OS            00 (0) 'MS-DOS'\n+6F5F3E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5F40 Compression Method    0000 (0) 'Stored'\n+6F5F42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5F46 CRC                   CC224977 (3424799095)\n+6F5F4A Compressed Size       000004D9 (1241)\n+6F5F4E Uncompressed Size     000004D9 (1241)\n+6F5F52 Filename Length       0043 (67)\n+6F5F54 Extra Length          0009 (9)\n+6F5F56 Comment Length        0000 (0)\n+6F5F58 Disk Start            0000 (0)\n+6F5F5A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5F5C Ext File Attributes   00000000 (0)\n+6F5F60 Local Header Offset   001D316A (1913194)\n+6F5F64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5F64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F5FA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F5FA9   Length              0005 (5)\n+6F5FAB   Flags               01 (1) 'Modification'\n+6F5FAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F5FB0 CENTRAL HEADER #663   02014B50 (33639248)\n+6F5FB4 Created Zip Spec      14 (20) '2.0'\n+6F5FB5 Created OS            00 (0) 'MS-DOS'\n+6F5FB6 Extract Zip Spec      14 (20) '2.0'\n+6F5FB7 Extract OS            00 (0) 'MS-DOS'\n+6F5FB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F5FBA Compression Method    0000 (0) 'Stored'\n+6F5FBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F5FC0 CRC                   38CBB90F (952875279)\n+6F5FC4 Compressed Size       000008B0 (2224)\n+6F5FC8 Uncompressed Size     000008B0 (2224)\n+6F5FCC Filename Length       0049 (73)\n+6F5FCE Extra Length          0009 (9)\n+6F5FD0 Comment Length        0000 (0)\n+6F5FD2 Disk Start            0000 (0)\n+6F5FD4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F5FD6 Ext File Attributes   00000000 (0)\n+6F5FDA Local Header Offset   001D36BD (1914557)\n+6F5FDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F5FDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6027 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6029   Length              0005 (5)\n+6F602B   Flags               01 (1) 'Modification'\n+6F602C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6030 CENTRAL HEADER #664   02014B50 (33639248)\n+6F6034 Created Zip Spec      14 (20) '2.0'\n+6F6035 Created OS            00 (0) 'MS-DOS'\n+6F6036 Extract Zip Spec      14 (20) '2.0'\n+6F6037 Extract OS            00 (0) 'MS-DOS'\n+6F6038 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F603A Compression Method    0000 (0) 'Stored'\n+6F603C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6040 CRC                   F0075F17 (4027014935)\n+6F6044 Compressed Size       00000513 (1299)\n+6F6048 Uncompressed Size     00000513 (1299)\n+6F604C Filename Length       004B (75)\n+6F604E Extra Length          0009 (9)\n+6F6050 Comment Length        0000 (0)\n+6F6052 Disk Start            0000 (0)\n+6F6054 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6056 Ext File Attributes   00000000 (0)\n+6F605A Local Header Offset   001D3FED (1916909)\n+6F605E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F605E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F60A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F60AB   Length              0005 (5)\n+6F60AD   Flags               01 (1) 'Modification'\n+6F60AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F60B2 CENTRAL HEADER #665   02014B50 (33639248)\n+6F60B6 Created Zip Spec      14 (20) '2.0'\n+6F60B7 Created OS            00 (0) 'MS-DOS'\n+6F60B8 Extract Zip Spec      14 (20) '2.0'\n+6F60B9 Extract OS            00 (0) 'MS-DOS'\n+6F60BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F60BC Compression Method    0000 (0) 'Stored'\n+6F60BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F60C2 CRC                   42E91C9D (1122573469)\n+6F60C6 Compressed Size       000004F9 (1273)\n+6F60CA Uncompressed Size     000004F9 (1273)\n+6F60CE Filename Length       0044 (68)\n+6F60D0 Extra Length          0009 (9)\n+6F60D2 Comment Length        0000 (0)\n+6F60D4 Disk Start            0000 (0)\n+6F60D6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F60D8 Ext File Attributes   00000000 (0)\n+6F60DC Local Header Offset   001D4582 (1918338)\n+6F60E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F60E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6124 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6126   Length              0005 (5)\n+6F6128   Flags               01 (1) 'Modification'\n+6F6129   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F612D CENTRAL HEADER #666   02014B50 (33639248)\n+6F6131 Created Zip Spec      14 (20) '2.0'\n+6F6132 Created OS            00 (0) 'MS-DOS'\n+6F6133 Extract Zip Spec      14 (20) '2.0'\n+6F6134 Extract OS            00 (0) 'MS-DOS'\n+6F6135 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6137 Compression Method    0000 (0) 'Stored'\n+6F6139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F613D CRC                   85A11C0C (2241928204)\n+6F6141 Compressed Size       000004D0 (1232)\n+6F6145 Uncompressed Size     000004D0 (1232)\n+6F6149 Filename Length       0042 (66)\n+6F614B Extra Length          0009 (9)\n+6F614D Comment Length        0000 (0)\n+6F614F Disk Start            0000 (0)\n+6F6151 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6153 Ext File Attributes   00000000 (0)\n+6F6157 Local Header Offset   001D4AF6 (1919734)\n+6F615B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F615B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F619D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F619F   Length              0005 (5)\n+6F61A1   Flags               01 (1) 'Modification'\n+6F61A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F61A6 CENTRAL HEADER #667   02014B50 (33639248)\n+6F61AA Created Zip Spec      14 (20) '2.0'\n+6F61AB Created OS            00 (0) 'MS-DOS'\n+6F61AC Extract Zip Spec      14 (20) '2.0'\n+6F61AD Extract OS            00 (0) 'MS-DOS'\n+6F61AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F61B0 Compression Method    0000 (0) 'Stored'\n+6F61B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F61B6 CRC                   667CA259 (1719444057)\n+6F61BA Compressed Size       000004EA (1258)\n+6F61BE Uncompressed Size     000004EA (1258)\n+6F61C2 Filename Length       0048 (72)\n+6F61C4 Extra Length          0009 (9)\n+6F61C6 Comment Length        0000 (0)\n+6F61C8 Disk Start            0000 (0)\n+6F61CA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F61CC Ext File Attributes   00000000 (0)\n+6F61D0 Local Header Offset   001D503F (1921087)\n+6F61D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F61D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F621C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F621E   Length              0005 (5)\n+6F6220   Flags               01 (1) 'Modification'\n+6F6221   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6225 CENTRAL HEADER #668   02014B50 (33639248)\n+6F6229 Created Zip Spec      14 (20) '2.0'\n+6F622A Created OS            00 (0) 'MS-DOS'\n+6F622B Extract Zip Spec      14 (20) '2.0'\n+6F622C Extract OS            00 (0) 'MS-DOS'\n+6F622D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F622F Compression Method    0000 (0) 'Stored'\n+6F6231 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6235 CRC                   4E4FEF3B (1313861435)\n+6F6239 Compressed Size       0000052C (1324)\n+6F623D Uncompressed Size     0000052C (1324)\n+6F6241 Filename Length       004C (76)\n+6F6243 Extra Length          0009 (9)\n+6F6245 Comment Length        0000 (0)\n+6F6247 Disk Start            0000 (0)\n+6F6249 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F624B Ext File Attributes   00000000 (0)\n+6F624F Local Header Offset   001D55A8 (1922472)\n+6F6253 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6253: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F629F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F62A1   Length              0005 (5)\n+6F62A3   Flags               01 (1) 'Modification'\n+6F62A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F62A8 CENTRAL HEADER #669   02014B50 (33639248)\n+6F62AC Created Zip Spec      14 (20) '2.0'\n+6F62AD Created OS            00 (0) 'MS-DOS'\n+6F62AE Extract Zip Spec      14 (20) '2.0'\n+6F62AF Extract OS            00 (0) 'MS-DOS'\n+6F62B0 General Purpose Flag  0000 (0)\n+6F62B2 Compression Method    0000 (0) 'Stored'\n+6F62B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F62B8 CRC                   00000000 (0)\n+6F62BC Compressed Size       00000000 (0)\n+6F62C0 Uncompressed Size     00000000 (0)\n+6F62C4 Filename Length       0022 (34)\n+6F62C6 Extra Length          0009 (9)\n+6F62C8 Comment Length        0000 (0)\n+6F62CA Disk Start            0000 (0)\n+6F62CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F62CE Ext File Attributes   00000000 (0)\n+6F62D2 Local Header Offset   001D5B57 (1923927)\n+6F62D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F62D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F62F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F62FA   Length              0005 (5)\n+6F62FC   Flags               01 (1) 'Modification'\n+6F62FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6301 CENTRAL HEADER #670   02014B50 (33639248)\n+6F6305 Created Zip Spec      14 (20) '2.0'\n+6F6306 Created OS            00 (0) 'MS-DOS'\n+6F6307 Extract Zip Spec      14 (20) '2.0'\n+6F6308 Extract OS            00 (0) 'MS-DOS'\n+6F6309 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F630B Compression Method    0000 (0) 'Stored'\n+6F630D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6311 CRC                   9A2D2058 (2586648664)\n+6F6315 Compressed Size       00000D7A (3450)\n+6F6319 Uncompressed Size     00000D7A (3450)\n+6F631D Filename Length       002F (47)\n+6F631F Extra Length          0009 (9)\n+6F6321 Comment Length        0000 (0)\n+6F6323 Disk Start            0000 (0)\n+6F6325 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6327 Ext File Attributes   00000000 (0)\n+6F632B Local Header Offset   001D5BA0 (1924000)\n+6F632F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F632F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F635E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6360   Length              0005 (5)\n+6F6362   Flags               01 (1) 'Modification'\n+6F6363   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6367 CENTRAL HEADER #671   02014B50 (33639248)\n+6F636B Created Zip Spec      14 (20) '2.0'\n+6F636C Created OS            00 (0) 'MS-DOS'\n+6F636D Extract Zip Spec      14 (20) '2.0'\n+6F636E Extract OS            00 (0) 'MS-DOS'\n+6F636F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6371 Compression Method    0000 (0) 'Stored'\n+6F6373 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6377 CRC                   8FD49BC2 (2413075394)\n+6F637B Compressed Size       00000A82 (2690)\n+6F637F Uncompressed Size     00000A82 (2690)\n+6F6383 Filename Length       002F (47)\n+6F6385 Extra Length          0009 (9)\n+6F6387 Comment Length        0000 (0)\n+6F6389 Disk Start            0000 (0)\n+6F638B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F638D Ext File Attributes   00000000 (0)\n+6F6391 Local Header Offset   001D6980 (1927552)\n+6F6395 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6395: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F63C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F63C6   Length              0005 (5)\n+6F63C8   Flags               01 (1) 'Modification'\n+6F63C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F63CD CENTRAL HEADER #672   02014B50 (33639248)\n+6F63D1 Created Zip Spec      14 (20) '2.0'\n+6F63D2 Created OS            00 (0) 'MS-DOS'\n+6F63D3 Extract Zip Spec      14 (20) '2.0'\n+6F63D4 Extract OS            00 (0) 'MS-DOS'\n+6F63D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F63D7 Compression Method    0000 (0) 'Stored'\n+6F63D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F63DD CRC                   DFC97490 (3754521744)\n+6F63E1 Compressed Size       00003D93 (15763)\n+6F63E5 Uncompressed Size     00003D93 (15763)\n+6F63E9 Filename Length       0041 (65)\n+6F63EB Extra Length          0009 (9)\n+6F63ED Comment Length        0000 (0)\n+6F63EF Disk Start            0000 (0)\n+6F63F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F63F3 Ext File Attributes   00000000 (0)\n+6F63F7 Local Header Offset   001D7468 (1930344)\n+6F63FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F63FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F643C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F643E   Length              0005 (5)\n+6F6440   Flags               01 (1) 'Modification'\n+6F6441   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6445 CENTRAL HEADER #673   02014B50 (33639248)\n+6F6449 Created Zip Spec      14 (20) '2.0'\n+6F644A Created OS            00 (0) 'MS-DOS'\n+6F644B Extract Zip Spec      14 (20) '2.0'\n+6F644C Extract OS            00 (0) 'MS-DOS'\n+6F644D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F644F Compression Method    0000 (0) 'Stored'\n+6F6451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6455 CRC                   D1BB774A (3518723914)\n+6F6459 Compressed Size       000004B9 (1209)\n+6F645D Uncompressed Size     000004B9 (1209)\n+6F6461 Filename Length       0034 (52)\n+6F6463 Extra Length          0009 (9)\n+6F6465 Comment Length        0000 (0)\n+6F6467 Disk Start            0000 (0)\n+6F6469 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F646B Ext File Attributes   00000000 (0)\n+6F646F Local Header Offset   001DB273 (1946227)\n+6F6473 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6473: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F64A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F64A9   Length              0005 (5)\n+6F64AB   Flags               01 (1) 'Modification'\n+6F64AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F64B0 CENTRAL HEADER #674   02014B50 (33639248)\n+6F64B4 Created Zip Spec      14 (20) '2.0'\n+6F64B5 Created OS            00 (0) 'MS-DOS'\n+6F64B6 Extract Zip Spec      14 (20) '2.0'\n+6F64B7 Extract OS            00 (0) 'MS-DOS'\n+6F64B8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F64BA Compression Method    0000 (0) 'Stored'\n+6F64BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F64C0 CRC                   B3A8C3FA (3014181882)\n+6F64C4 Compressed Size       000004B0 (1200)\n+6F64C8 Uncompressed Size     000004B0 (1200)\n+6F64CC Filename Length       0043 (67)\n+6F64CE Extra Length          0009 (9)\n+6F64D0 Comment Length        0000 (0)\n+6F64D2 Disk Start            0000 (0)\n+6F64D4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F64D6 Ext File Attributes   00000000 (0)\n+6F64DA Local Header Offset   001DB797 (1947543)\n+6F64DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F64DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6521 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6523   Length              0005 (5)\n+6F6525   Flags               01 (1) 'Modification'\n+6F6526   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F652A CENTRAL HEADER #675   02014B50 (33639248)\n+6F652E Created Zip Spec      14 (20) '2.0'\n+6F652F Created OS            00 (0) 'MS-DOS'\n+6F6530 Extract Zip Spec      14 (20) '2.0'\n+6F6531 Extract OS            00 (0) 'MS-DOS'\n+6F6532 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6534 Compression Method    0000 (0) 'Stored'\n+6F6536 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F653A CRC                   663E77E4 (1715369956)\n+6F653E Compressed Size       000004EE (1262)\n+6F6542 Uncompressed Size     000004EE (1262)\n+6F6546 Filename Length       003B (59)\n+6F6548 Extra Length          0009 (9)\n+6F654A Comment Length        0000 (0)\n+6F654C Disk Start            0000 (0)\n+6F654E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6550 Ext File Attributes   00000000 (0)\n+6F6554 Local Header Offset   001DBCC1 (1948865)\n+6F6558 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6558: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6593 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6595   Length              0005 (5)\n+6F6597   Flags               01 (1) 'Modification'\n+6F6598   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F659C CENTRAL HEADER #676   02014B50 (33639248)\n+6F65A0 Created Zip Spec      14 (20) '2.0'\n+6F65A1 Created OS            00 (0) 'MS-DOS'\n+6F65A2 Extract Zip Spec      14 (20) '2.0'\n+6F65A3 Extract OS            00 (0) 'MS-DOS'\n+6F65A4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F65A6 Compression Method    0000 (0) 'Stored'\n+6F65A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F65AC CRC                   4C849D6C (1283759468)\n+6F65B0 Compressed Size       0000047A (1146)\n+6F65B4 Uncompressed Size     0000047A (1146)\n+6F65B8 Filename Length       0037 (55)\n+6F65BA Extra Length          0009 (9)\n+6F65BC Comment Length        0000 (0)\n+6F65BE Disk Start            0000 (0)\n+6F65C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F65C2 Ext File Attributes   00000000 (0)\n+6F65C6 Local Header Offset   001DC221 (1950241)\n+6F65CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F65CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6603   Length              0005 (5)\n+6F6605   Flags               01 (1) 'Modification'\n+6F6606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F660A CENTRAL HEADER #677   02014B50 (33639248)\n+6F660E Created Zip Spec      14 (20) '2.0'\n+6F660F Created OS            00 (0) 'MS-DOS'\n+6F6610 Extract Zip Spec      14 (20) '2.0'\n+6F6611 Extract OS            00 (0) 'MS-DOS'\n+6F6612 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6614 Compression Method    0000 (0) 'Stored'\n+6F6616 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F661A CRC                   1F091D5A (520691034)\n+6F661E Compressed Size       0000A106 (41222)\n+6F6622 Uncompressed Size     0000A106 (41222)\n+6F6626 Filename Length       0036 (54)\n+6F6628 Extra Length          0009 (9)\n+6F662A Comment Length        0000 (0)\n+6F662C Disk Start            0000 (0)\n+6F662E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6630 Ext File Attributes   00000000 (0)\n+6F6634 Local Header Offset   001DC709 (1951497)\n+6F6638 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6638: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F666E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6670   Length              0005 (5)\n+6F6672   Flags               01 (1) 'Modification'\n+6F6673   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6677 CENTRAL HEADER #678   02014B50 (33639248)\n+6F667B Created Zip Spec      14 (20) '2.0'\n+6F667C Created OS            00 (0) 'MS-DOS'\n+6F667D Extract Zip Spec      14 (20) '2.0'\n+6F667E Extract OS            00 (0) 'MS-DOS'\n+6F667F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6681 Compression Method    0000 (0) 'Stored'\n+6F6683 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6687 CRC                   BC70E4F4 (3161515252)\n+6F668B Compressed Size       000005B8 (1464)\n+6F668F Uncompressed Size     000005B8 (1464)\n+6F6693 Filename Length       0036 (54)\n+6F6695 Extra Length          0009 (9)\n+6F6697 Comment Length        0000 (0)\n+6F6699 Disk Start            0000 (0)\n+6F669B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F669D Ext File Attributes   00000000 (0)\n+6F66A1 Local Header Offset   001E687C (1992828)\n+6F66A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F669D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F66A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6F66DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6F66DD   Length              0005 (5)\n 6F66DF   Flags               01 (1) 'Modification'\n 6F66E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6F66E4 CENTRAL HEADER #1605  02014B50 (33639248)\n+6F66E4 CENTRAL HEADER #679   02014B50 (33639248)\n 6F66E8 Created Zip Spec      14 (20) '2.0'\n 6F66E9 Created OS            00 (0) 'MS-DOS'\n 6F66EA Extract Zip Spec      14 (20) '2.0'\n 6F66EB Extract OS            00 (0) 'MS-DOS'\n 6F66EC General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6F66EE Compression Method    0000 (0) 'Stored'\n 6F66F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F66F4 CRC                   B2448F97 (2990837655)\n-6F66F8 Compressed Size       00000CB7 (3255)\n-6F66FC Uncompressed Size     00000CB7 (3255)\n-6F6700 Filename Length       0039 (57)\n+6F66F4 CRC                   48D76DDD (1222077917)\n+6F66F8 Compressed Size       00000932 (2354)\n+6F66FC Uncompressed Size     00000932 (2354)\n+6F6700 Filename Length       002A (42)\n 6F6702 Extra Length          0009 (9)\n 6F6704 Comment Length        0000 (0)\n 6F6706 Disk Start            0000 (0)\n 6F6708 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6F670A Ext File Attributes   00000000 (0)\n-6F670E Local Header Offset   00580793 (5769107)\n-6F6712 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F670E Local Header Offset   001E6EA1 (1994401)\n+6F6712 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F6712: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F6712: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6F674B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F674D   Length              0005 (5)\n-6F674F   Flags               01 (1) 'Modification'\n-6F6750   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6754 CENTRAL HEADER #1606  02014B50 (33639248)\n-6F6758 Created Zip Spec      14 (20) '2.0'\n-6F6759 Created OS            00 (0) 'MS-DOS'\n-6F675A Extract Zip Spec      14 (20) '2.0'\n-6F675B Extract OS            00 (0) 'MS-DOS'\n-6F675C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F675E Compression Method    0000 (0) 'Stored'\n-6F6760 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6764 CRC                   3C17A7B5 (1008183221)\n-6F6768 Compressed Size       0000107D (4221)\n-6F676C Uncompressed Size     0000107D (4221)\n-6F6770 Filename Length       0038 (56)\n-6F6772 Extra Length          0009 (9)\n-6F6774 Comment Length        0000 (0)\n-6F6776 Disk Start            0000 (0)\n-6F6778 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F677A Ext File Attributes   00000000 (0)\n-6F677E Local Header Offset   005814BA (5772474)\n-6F6782 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6782: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F67BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F67BC   Length              0005 (5)\n-6F67BE   Flags               01 (1) 'Modification'\n-6F67BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F67C3 CENTRAL HEADER #1607  02014B50 (33639248)\n-6F67C7 Created Zip Spec      14 (20) '2.0'\n-6F67C8 Created OS            00 (0) 'MS-DOS'\n-6F67C9 Extract Zip Spec      14 (20) '2.0'\n-6F67CA Extract OS            00 (0) 'MS-DOS'\n-6F67CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F67CD Compression Method    0000 (0) 'Stored'\n-6F67CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F67D3 CRC                   242C94A2 (606901410)\n-6F67D7 Compressed Size       0000062C (1580)\n-6F67DB Uncompressed Size     0000062C (1580)\n-6F67DF Filename Length       003D (61)\n-6F67E1 Extra Length          0009 (9)\n-6F67E3 Comment Length        0000 (0)\n-6F67E5 Disk Start            0000 (0)\n-6F67E7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F67E9 Ext File Attributes   00000000 (0)\n-6F67ED Local Header Offset   005825A6 (5776806)\n-6F67F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F67F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F682E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6830   Length              0005 (5)\n-6F6832   Flags               01 (1) 'Modification'\n-6F6833   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6837 CENTRAL HEADER #1608  02014B50 (33639248)\n-6F683B Created Zip Spec      14 (20) '2.0'\n-6F683C Created OS            00 (0) 'MS-DOS'\n-6F683D Extract Zip Spec      14 (20) '2.0'\n-6F683E Extract OS            00 (0) 'MS-DOS'\n-6F683F General Purpose Flag  0000 (0)\n-6F6841 Compression Method    0000 (0) 'Stored'\n-6F6843 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6847 CRC                   00000000 (0)\n-6F684B Compressed Size       00000000 (0)\n-6F684F Uncompressed Size     00000000 (0)\n-6F6853 Filename Length       002A (42)\n-6F6855 Extra Length          0009 (9)\n-6F6857 Comment Length        0000 (0)\n-6F6859 Disk Start            0000 (0)\n-6F685B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F685D Ext File Attributes   00000000 (0)\n-6F6861 Local Header Offset   00582C46 (5778502)\n-6F6865 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6865: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F688F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6891   Length              0005 (5)\n-6F6893   Flags               01 (1) 'Modification'\n-6F6894   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6898 CENTRAL HEADER #1609  02014B50 (33639248)\n-6F689C Created Zip Spec      14 (20) '2.0'\n-6F689D Created OS            00 (0) 'MS-DOS'\n-6F689E Extract Zip Spec      14 (20) '2.0'\n-6F689F Extract OS            00 (0) 'MS-DOS'\n-6F68A0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F68A2 Compression Method    0000 (0) 'Stored'\n-6F68A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F68A8 CRC                   9FEC08A1 (2683046049)\n-6F68AC Compressed Size       0000287C (10364)\n-6F68B0 Uncompressed Size     0000287C (10364)\n-6F68B4 Filename Length       0047 (71)\n-6F68B6 Extra Length          0009 (9)\n-6F68B8 Comment Length        0000 (0)\n-6F68BA Disk Start            0000 (0)\n-6F68BC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F68BE Ext File Attributes   00000000 (0)\n-6F68C2 Local Header Offset   00582C97 (5778583)\n-6F68C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F68C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F690D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F690F   Length              0005 (5)\n-6F6911   Flags               01 (1) 'Modification'\n-6F6912   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6916 CENTRAL HEADER #1610  02014B50 (33639248)\n-6F691A Created Zip Spec      14 (20) '2.0'\n-6F691B Created OS            00 (0) 'MS-DOS'\n-6F691C Extract Zip Spec      14 (20) '2.0'\n-6F691D Extract OS            00 (0) 'MS-DOS'\n-6F691E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6920 Compression Method    0000 (0) 'Stored'\n-6F6922 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6926 CRC                   399B609C (966484124)\n-6F692A Compressed Size       000007FB (2043)\n-6F692E Uncompressed Size     000007FB (2043)\n-6F6932 Filename Length       004E (78)\n-6F6934 Extra Length          0009 (9)\n-6F6936 Comment Length        0000 (0)\n-6F6938 Disk Start            0000 (0)\n-6F693A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F693C Ext File Attributes   00000000 (0)\n-6F6940 Local Header Offset   00585591 (5789073)\n-6F6944 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6944: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6994   Length              0005 (5)\n-6F6996   Flags               01 (1) 'Modification'\n-6F6997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F699B CENTRAL HEADER #1611  02014B50 (33639248)\n-6F699F Created Zip Spec      14 (20) '2.0'\n-6F69A0 Created OS            00 (0) 'MS-DOS'\n-6F69A1 Extract Zip Spec      14 (20) '2.0'\n-6F69A2 Extract OS            00 (0) 'MS-DOS'\n-6F69A3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F69A5 Compression Method    0000 (0) 'Stored'\n-6F69A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F69AB CRC                   9ADB27A7 (2598053799)\n-6F69AF Compressed Size       00001AC6 (6854)\n-6F69B3 Uncompressed Size     00001AC6 (6854)\n-6F69B7 Filename Length       003B (59)\n-6F69B9 Extra Length          0009 (9)\n-6F69BB Comment Length        0000 (0)\n-6F69BD Disk Start            0000 (0)\n-6F69BF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F69C1 Ext File Attributes   00000000 (0)\n-6F69C5 Local Header Offset   00585E11 (5791249)\n-6F69C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F69C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6A04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6A06   Length              0005 (5)\n-6F6A08   Flags               01 (1) 'Modification'\n-6F6A09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6A0D CENTRAL HEADER #1612  02014B50 (33639248)\n-6F6A11 Created Zip Spec      14 (20) '2.0'\n-6F6A12 Created OS            00 (0) 'MS-DOS'\n-6F6A13 Extract Zip Spec      14 (20) '2.0'\n-6F6A14 Extract OS            00 (0) 'MS-DOS'\n-6F6A15 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6A17 Compression Method    0000 (0) 'Stored'\n-6F6A19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6A1D CRC                   79FA59C0 (2046450112)\n-6F6A21 Compressed Size       00001CDC (7388)\n-6F6A25 Uncompressed Size     00001CDC (7388)\n-6F6A29 Filename Length       003A (58)\n-6F6A2B Extra Length          0009 (9)\n-6F6A2D Comment Length        0000 (0)\n-6F6A2F Disk Start            0000 (0)\n-6F6A31 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6A33 Ext File Attributes   00000000 (0)\n-6F6A37 Local Header Offset   00587949 (5798217)\n-6F6A3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6A3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6A75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6A77   Length              0005 (5)\n-6F6A79   Flags               01 (1) 'Modification'\n-6F6A7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6A7E CENTRAL HEADER #1613  02014B50 (33639248)\n-6F6A82 Created Zip Spec      14 (20) '2.0'\n-6F6A83 Created OS            00 (0) 'MS-DOS'\n-6F6A84 Extract Zip Spec      14 (20) '2.0'\n-6F6A85 Extract OS            00 (0) 'MS-DOS'\n-6F6A86 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6A88 Compression Method    0000 (0) 'Stored'\n-6F6A8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6A8E CRC                   0C148F63 (202674019)\n-6F6A92 Compressed Size       00001A7A (6778)\n-6F6A96 Uncompressed Size     00001A7A (6778)\n-6F6A9A Filename Length       0040 (64)\n-6F6A9C Extra Length          0009 (9)\n-6F6A9E Comment Length        0000 (0)\n-6F6AA0 Disk Start            0000 (0)\n-6F6AA2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6AA4 Ext File Attributes   00000000 (0)\n-6F6AA8 Local Header Offset   00589696 (5805718)\n-6F6AAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6AAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6AEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6AEE   Length              0005 (5)\n-6F6AF0   Flags               01 (1) 'Modification'\n-6F6AF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6AF5 CENTRAL HEADER #1614  02014B50 (33639248)\n-6F6AF9 Created Zip Spec      14 (20) '2.0'\n-6F6AFA Created OS            00 (0) 'MS-DOS'\n-6F6AFB Extract Zip Spec      14 (20) '2.0'\n-6F6AFC Extract OS            00 (0) 'MS-DOS'\n-6F6AFD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6AFF Compression Method    0000 (0) 'Stored'\n-6F6B01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6B05 CRC                   C0DCFA8D (3235707533)\n-6F6B09 Compressed Size       00001319 (4889)\n-6F6B0D Uncompressed Size     00001319 (4889)\n-6F6B11 Filename Length       003B (59)\n-6F6B13 Extra Length          0009 (9)\n-6F6B15 Comment Length        0000 (0)\n-6F6B17 Disk Start            0000 (0)\n-6F6B19 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6B1B Ext File Attributes   00000000 (0)\n-6F6B1F Local Header Offset   0058B187 (5812615)\n-6F6B23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6B23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6B5E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6B60   Length              0005 (5)\n-6F6B62   Flags               01 (1) 'Modification'\n-6F6B63   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6B67 CENTRAL HEADER #1615  02014B50 (33639248)\n-6F6B6B Created Zip Spec      14 (20) '2.0'\n-6F6B6C Created OS            00 (0) 'MS-DOS'\n-6F6B6D Extract Zip Spec      14 (20) '2.0'\n-6F6B6E Extract OS            00 (0) 'MS-DOS'\n-6F6B6F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6B71 Compression Method    0000 (0) 'Stored'\n-6F6B73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6B77 CRC                   4C151237 (1276449335)\n-6F6B7B Compressed Size       00000CD1 (3281)\n-6F6B7F Uncompressed Size     00000CD1 (3281)\n-6F6B83 Filename Length       003A (58)\n-6F6B85 Extra Length          0009 (9)\n-6F6B87 Comment Length        0000 (0)\n-6F6B89 Disk Start            0000 (0)\n-6F6B8B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6B8D Ext File Attributes   00000000 (0)\n-6F6B91 Local Header Offset   0058C512 (5817618)\n-6F6B95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6B95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6BCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6BD1   Length              0005 (5)\n-6F6BD3   Flags               01 (1) 'Modification'\n-6F6BD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6BD8 CENTRAL HEADER #1616  02014B50 (33639248)\n-6F6BDC Created Zip Spec      14 (20) '2.0'\n-6F6BDD Created OS            00 (0) 'MS-DOS'\n-6F6BDE Extract Zip Spec      14 (20) '2.0'\n-6F6BDF Extract OS            00 (0) 'MS-DOS'\n-6F6BE0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6BE2 Compression Method    0000 (0) 'Stored'\n-6F6BE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6BE8 CRC                   E768197F (3882359167)\n-6F6BEC Compressed Size       00001A69 (6761)\n-6F6BF0 Uncompressed Size     00001A69 (6761)\n-6F6BF4 Filename Length       003A (58)\n-6F6BF6 Extra Length          0009 (9)\n-6F6BF8 Comment Length        0000 (0)\n-6F6BFA Disk Start            0000 (0)\n-6F6BFC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6BFE Ext File Attributes   00000000 (0)\n-6F6C02 Local Header Offset   0058D254 (5821012)\n-6F6C06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6C06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6C40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6C42   Length              0005 (5)\n-6F6C44   Flags               01 (1) 'Modification'\n-6F6C45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6C49 CENTRAL HEADER #1617  02014B50 (33639248)\n-6F6C4D Created Zip Spec      14 (20) '2.0'\n-6F6C4E Created OS            00 (0) 'MS-DOS'\n-6F6C4F Extract Zip Spec      14 (20) '2.0'\n-6F6C50 Extract OS            00 (0) 'MS-DOS'\n-6F6C51 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6C53 Compression Method    0000 (0) 'Stored'\n-6F6C55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6C59 CRC                   010536C2 (17118914)\n-6F6C5D Compressed Size       00000632 (1586)\n-6F6C61 Uncompressed Size     00000632 (1586)\n-6F6C65 Filename Length       003F (63)\n-6F6C67 Extra Length          0009 (9)\n-6F6C69 Comment Length        0000 (0)\n-6F6C6B Disk Start            0000 (0)\n-6F6C6D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6C6F Ext File Attributes   00000000 (0)\n-6F6C73 Local Header Offset   0058ED2E (5827886)\n-6F6C77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6C77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6CB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6CB8   Length              0005 (5)\n-6F6CBA   Flags               01 (1) 'Modification'\n-6F6CBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6CBF CENTRAL HEADER #1618  02014B50 (33639248)\n-6F6CC3 Created Zip Spec      14 (20) '2.0'\n-6F6CC4 Created OS            00 (0) 'MS-DOS'\n-6F6CC5 Extract Zip Spec      14 (20) '2.0'\n-6F6CC6 Extract OS            00 (0) 'MS-DOS'\n-6F6CC7 General Purpose Flag  0000 (0)\n-6F6CC9 Compression Method    0000 (0) 'Stored'\n-6F6CCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6CCF CRC                   00000000 (0)\n-6F6CD3 Compressed Size       00000000 (0)\n-6F6CD7 Uncompressed Size     00000000 (0)\n-6F6CDB Filename Length       002B (43)\n-6F6CDD Extra Length          0009 (9)\n-6F6CDF Comment Length        0000 (0)\n-6F6CE1 Disk Start            0000 (0)\n-6F6CE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6CE5 Ext File Attributes   00000000 (0)\n-6F6CE9 Local Header Offset   0058F3D6 (5829590)\n-6F6CED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6CED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6D18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6D1A   Length              0005 (5)\n-6F6D1C   Flags               01 (1) 'Modification'\n-6F6D1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6D21 CENTRAL HEADER #1619  02014B50 (33639248)\n-6F6D25 Created Zip Spec      14 (20) '2.0'\n-6F6D26 Created OS            00 (0) 'MS-DOS'\n-6F6D27 Extract Zip Spec      14 (20) '2.0'\n-6F6D28 Extract OS            00 (0) 'MS-DOS'\n-6F6D29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6D2B Compression Method    0000 (0) 'Stored'\n-6F6D2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6D31 CRC                   73E7CE8A (1944571530)\n-6F6D35 Compressed Size       000027E6 (10214)\n-6F6D39 Uncompressed Size     000027E6 (10214)\n-6F6D3D Filename Length       0048 (72)\n-6F6D3F Extra Length          0009 (9)\n-6F6D41 Comment Length        0000 (0)\n-6F6D43 Disk Start            0000 (0)\n-6F6D45 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6D47 Ext File Attributes   00000000 (0)\n-6F6D4B Local Header Offset   0058F428 (5829672)\n-6F6D4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6D4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6D97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6D99   Length              0005 (5)\n-6F6D9B   Flags               01 (1) 'Modification'\n-6F6D9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6DA0 CENTRAL HEADER #1620  02014B50 (33639248)\n-6F6DA4 Created Zip Spec      14 (20) '2.0'\n-6F6DA5 Created OS            00 (0) 'MS-DOS'\n-6F6DA6 Extract Zip Spec      14 (20) '2.0'\n-6F6DA7 Extract OS            00 (0) 'MS-DOS'\n-6F6DA8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6DAA Compression Method    0000 (0) 'Stored'\n-6F6DAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6DB0 CRC                   CD460ADB (3443919579)\n-6F6DB4 Compressed Size       00002241 (8769)\n-6F6DB8 Uncompressed Size     00002241 (8769)\n-6F6DBC Filename Length       003C (60)\n-6F6DBE Extra Length          0009 (9)\n-6F6DC0 Comment Length        0000 (0)\n-6F6DC2 Disk Start            0000 (0)\n-6F6DC4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6DC6 Ext File Attributes   00000000 (0)\n-6F6DCA Local Header Offset   00591C8D (5840013)\n-6F6DCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6DCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6E0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6E0C   Length              0005 (5)\n-6F6E0E   Flags               01 (1) 'Modification'\n-6F6E0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6E13 CENTRAL HEADER #1621  02014B50 (33639248)\n-6F6E17 Created Zip Spec      14 (20) '2.0'\n-6F6E18 Created OS            00 (0) 'MS-DOS'\n-6F6E19 Extract Zip Spec      14 (20) '2.0'\n-6F6E1A Extract OS            00 (0) 'MS-DOS'\n-6F6E1B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6E1D Compression Method    0000 (0) 'Stored'\n-6F6E1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6E23 CRC                   17148ACF (387222223)\n-6F6E27 Compressed Size       00002446 (9286)\n-6F6E2B Uncompressed Size     00002446 (9286)\n-6F6E2F Filename Length       003B (59)\n-6F6E31 Extra Length          0009 (9)\n-6F6E33 Comment Length        0000 (0)\n-6F6E35 Disk Start            0000 (0)\n-6F6E37 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6E39 Ext File Attributes   00000000 (0)\n-6F6E3D Local Header Offset   00593F41 (5848897)\n-6F6E41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6E41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6E7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6E7E   Length              0005 (5)\n-6F6E80   Flags               01 (1) 'Modification'\n-6F6E81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6E85 CENTRAL HEADER #1622  02014B50 (33639248)\n-6F6E89 Created Zip Spec      14 (20) '2.0'\n-6F6E8A Created OS            00 (0) 'MS-DOS'\n-6F6E8B Extract Zip Spec      14 (20) '2.0'\n-6F6E8C Extract OS            00 (0) 'MS-DOS'\n-6F6E8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6E8F Compression Method    0000 (0) 'Stored'\n-6F6E91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6E95 CRC                   15F2B7F5 (368228341)\n-6F6E99 Compressed Size       00001869 (6249)\n-6F6E9D Uncompressed Size     00001869 (6249)\n-6F6EA1 Filename Length       0042 (66)\n-6F6EA3 Extra Length          0009 (9)\n-6F6EA5 Comment Length        0000 (0)\n-6F6EA7 Disk Start            0000 (0)\n-6F6EA9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6EAB Ext File Attributes   00000000 (0)\n-6F6EAF Local Header Offset   005963F9 (5858297)\n-6F6EB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6EB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6EF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6EF7   Length              0005 (5)\n-6F6EF9   Flags               01 (1) 'Modification'\n-6F6EFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6EFE CENTRAL HEADER #1623  02014B50 (33639248)\n-6F6F02 Created Zip Spec      14 (20) '2.0'\n-6F6F03 Created OS            00 (0) 'MS-DOS'\n-6F6F04 Extract Zip Spec      14 (20) '2.0'\n-6F6F05 Extract OS            00 (0) 'MS-DOS'\n-6F6F06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6F08 Compression Method    0000 (0) 'Stored'\n-6F6F0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6F0E CRC                   BA9CD18D (3130839437)\n-6F6F12 Compressed Size       00000DDB (3547)\n-6F6F16 Uncompressed Size     00000DDB (3547)\n-6F6F1A Filename Length       0041 (65)\n-6F6F1C Extra Length          0009 (9)\n-6F6F1E Comment Length        0000 (0)\n-6F6F20 Disk Start            0000 (0)\n-6F6F22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6F24 Ext File Attributes   00000000 (0)\n-6F6F28 Local Header Offset   00597CDB (5864667)\n-6F6F2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6F2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6F6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6F6F   Length              0005 (5)\n-6F6F71   Flags               01 (1) 'Modification'\n-6F6F72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6F76 CENTRAL HEADER #1624  02014B50 (33639248)\n-6F6F7A Created Zip Spec      14 (20) '2.0'\n-6F6F7B Created OS            00 (0) 'MS-DOS'\n-6F6F7C Extract Zip Spec      14 (20) '2.0'\n-6F6F7D Extract OS            00 (0) 'MS-DOS'\n-6F6F7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6F80 Compression Method    0000 (0) 'Stored'\n-6F6F82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F6F86 CRC                   16F071B0 (384856496)\n-6F6F8A Compressed Size       00000A5E (2654)\n-6F6F8E Uncompressed Size     00000A5E (2654)\n-6F6F92 Filename Length       0045 (69)\n-6F6F94 Extra Length          0009 (9)\n-6F6F96 Comment Length        0000 (0)\n-6F6F98 Disk Start            0000 (0)\n-6F6F9A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F6F9C Ext File Attributes   00000000 (0)\n-6F6FA0 Local Header Offset   00598B2E (5868334)\n-6F6FA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F6FA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F6FE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F6FEB   Length              0005 (5)\n-6F6FED   Flags               01 (1) 'Modification'\n-6F6FEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F6FF2 CENTRAL HEADER #1625  02014B50 (33639248)\n-6F6FF6 Created Zip Spec      14 (20) '2.0'\n-6F6FF7 Created OS            00 (0) 'MS-DOS'\n-6F6FF8 Extract Zip Spec      14 (20) '2.0'\n-6F6FF9 Extract OS            00 (0) 'MS-DOS'\n-6F6FFA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F6FFC Compression Method    0000 (0) 'Stored'\n-6F6FFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7002 CRC                   99FF093E (2583628094)\n-6F7006 Compressed Size       00001F03 (7939)\n-6F700A Uncompressed Size     00001F03 (7939)\n-6F700E Filename Length       003B (59)\n-6F7010 Extra Length          0009 (9)\n-6F7012 Comment Length        0000 (0)\n-6F7014 Disk Start            0000 (0)\n-6F7016 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7018 Ext File Attributes   00000000 (0)\n-6F701C Local Header Offset   00599608 (5871112)\n-6F7020 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7020: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F705B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F705D   Length              0005 (5)\n-6F705F   Flags               01 (1) 'Modification'\n-6F7060   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7064 CENTRAL HEADER #1626  02014B50 (33639248)\n-6F7068 Created Zip Spec      14 (20) '2.0'\n-6F7069 Created OS            00 (0) 'MS-DOS'\n-6F706A Extract Zip Spec      14 (20) '2.0'\n-6F706B Extract OS            00 (0) 'MS-DOS'\n-6F706C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F706E Compression Method    0000 (0) 'Stored'\n-6F7070 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7074 CRC                   7ED127C7 (2127636423)\n-6F7078 Compressed Size       0000147B (5243)\n-6F707C Uncompressed Size     0000147B (5243)\n-6F7080 Filename Length       0042 (66)\n-6F7082 Extra Length          0009 (9)\n-6F7084 Comment Length        0000 (0)\n-6F7086 Disk Start            0000 (0)\n-6F7088 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F708A Ext File Attributes   00000000 (0)\n-6F708E Local Header Offset   0059B57D (5879165)\n-6F7092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F70D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F70D6   Length              0005 (5)\n-6F70D8   Flags               01 (1) 'Modification'\n-6F70D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F70DD CENTRAL HEADER #1627  02014B50 (33639248)\n-6F70E1 Created Zip Spec      14 (20) '2.0'\n-6F70E2 Created OS            00 (0) 'MS-DOS'\n-6F70E3 Extract Zip Spec      14 (20) '2.0'\n-6F70E4 Extract OS            00 (0) 'MS-DOS'\n-6F70E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F70E7 Compression Method    0000 (0) 'Stored'\n-6F70E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F70ED CRC                   4AAC1D37 (1252793655)\n-6F70F1 Compressed Size       0000064E (1614)\n-6F70F5 Uncompressed Size     0000064E (1614)\n-6F70F9 Filename Length       0040 (64)\n-6F70FB Extra Length          0009 (9)\n-6F70FD Comment Length        0000 (0)\n-6F70FF Disk Start            0000 (0)\n-6F7101 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7103 Ext File Attributes   00000000 (0)\n-6F7107 Local Header Offset   0059CA71 (5884529)\n-6F710B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F710B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F714B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F714D   Length              0005 (5)\n-6F714F   Flags               01 (1) 'Modification'\n-6F7150   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7154 CENTRAL HEADER #1628  02014B50 (33639248)\n-6F7158 Created Zip Spec      14 (20) '2.0'\n-6F7159 Created OS            00 (0) 'MS-DOS'\n-6F715A Extract Zip Spec      14 (20) '2.0'\n-6F715B Extract OS            00 (0) 'MS-DOS'\n-6F715C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F715E Compression Method    0000 (0) 'Stored'\n-6F7160 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7164 CRC                   155577E8 (357922792)\n-6F7168 Compressed Size       000015AE (5550)\n-6F716C Uncompressed Size     000015AE (5550)\n-6F7170 Filename Length       003B (59)\n-6F7172 Extra Length          0009 (9)\n-6F7174 Comment Length        0000 (0)\n-6F7176 Disk Start            0000 (0)\n-6F7178 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F717A Ext File Attributes   00000000 (0)\n-6F717E Local Header Offset   0059D136 (5886262)\n-6F7182 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7182: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F71BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F71BF   Length              0005 (5)\n-6F71C1   Flags               01 (1) 'Modification'\n-6F71C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F71C6 CENTRAL HEADER #1629  02014B50 (33639248)\n-6F71CA Created Zip Spec      14 (20) '2.0'\n-6F71CB Created OS            00 (0) 'MS-DOS'\n-6F71CC Extract Zip Spec      14 (20) '2.0'\n-6F71CD Extract OS            00 (0) 'MS-DOS'\n-6F71CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F71D0 Compression Method    0000 (0) 'Stored'\n-6F71D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F71D6 CRC                   FC50D2E5 (4233155301)\n-6F71DA Compressed Size       000016CB (5835)\n-6F71DE Uncompressed Size     000016CB (5835)\n-6F71E2 Filename Length       0045 (69)\n-6F71E4 Extra Length          0009 (9)\n-6F71E6 Comment Length        0000 (0)\n-6F71E8 Disk Start            0000 (0)\n-6F71EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F71EC Ext File Attributes   00000000 (0)\n-6F71F0 Local Header Offset   0059E756 (5891926)\n-6F71F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F71F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7239 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F723B   Length              0005 (5)\n-6F723D   Flags               01 (1) 'Modification'\n-6F723E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7242 CENTRAL HEADER #1630  02014B50 (33639248)\n-6F7246 Created Zip Spec      14 (20) '2.0'\n-6F7247 Created OS            00 (0) 'MS-DOS'\n-6F7248 Extract Zip Spec      14 (20) '2.0'\n-6F7249 Extract OS            00 (0) 'MS-DOS'\n-6F724A General Purpose Flag  0000 (0)\n-6F724C Compression Method    0000 (0) 'Stored'\n-6F724E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7252 CRC                   00000000 (0)\n-6F7256 Compressed Size       00000000 (0)\n-6F725A Uncompressed Size     00000000 (0)\n-6F725E Filename Length       0033 (51)\n-6F7260 Extra Length          0009 (9)\n-6F7262 Comment Length        0000 (0)\n-6F7264 Disk Start            0000 (0)\n-6F7266 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7268 Ext File Attributes   00000000 (0)\n-6F726C Local Header Offset   0059FE9D (5897885)\n-6F7270 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7270: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F72A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F72A5   Length              0005 (5)\n-6F72A7   Flags               01 (1) 'Modification'\n-6F72A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F72AC CENTRAL HEADER #1631  02014B50 (33639248)\n-6F72B0 Created Zip Spec      14 (20) '2.0'\n-6F72B1 Created OS            00 (0) 'MS-DOS'\n-6F72B2 Extract Zip Spec      14 (20) '2.0'\n-6F72B3 Extract OS            00 (0) 'MS-DOS'\n-6F72B4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F72B6 Compression Method    0000 (0) 'Stored'\n-6F72B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F72BC CRC                   58FEAB57 (1493085015)\n-6F72C0 Compressed Size       000008C3 (2243)\n-6F72C4 Uncompressed Size     000008C3 (2243)\n-6F72C8 Filename Length       0047 (71)\n-6F72CA Extra Length          0009 (9)\n-6F72CC Comment Length        0000 (0)\n-6F72CE Disk Start            0000 (0)\n-6F72D0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F72D2 Ext File Attributes   00000000 (0)\n-6F72D6 Local Header Offset   0059FEF7 (5897975)\n-6F72DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F72DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7321 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7323   Length              0005 (5)\n-6F7325   Flags               01 (1) 'Modification'\n-6F7326   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F732A CENTRAL HEADER #1632  02014B50 (33639248)\n-6F732E Created Zip Spec      14 (20) '2.0'\n-6F732F Created OS            00 (0) 'MS-DOS'\n-6F7330 Extract Zip Spec      14 (20) '2.0'\n-6F7331 Extract OS            00 (0) 'MS-DOS'\n-6F7332 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7334 Compression Method    0000 (0) 'Stored'\n-6F7336 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F733A CRC                   BC1F87C6 (3156182982)\n-6F733E Compressed Size       0000391E (14622)\n-6F7342 Uncompressed Size     0000391E (14622)\n-6F7346 Filename Length       0048 (72)\n-6F7348 Extra Length          0009 (9)\n-6F734A Comment Length        0000 (0)\n-6F734C Disk Start            0000 (0)\n-6F734E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7350 Ext File Attributes   00000000 (0)\n-6F7354 Local Header Offset   005A0838 (5900344)\n-6F7358 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7358: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F73A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F73A2   Length              0005 (5)\n-6F73A4   Flags               01 (1) 'Modification'\n-6F73A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F73A9 CENTRAL HEADER #1633  02014B50 (33639248)\n-6F73AD Created Zip Spec      14 (20) '2.0'\n-6F73AE Created OS            00 (0) 'MS-DOS'\n-6F73AF Extract Zip Spec      14 (20) '2.0'\n-6F73B0 Extract OS            00 (0) 'MS-DOS'\n-6F73B1 General Purpose Flag  0000 (0)\n-6F73B3 Compression Method    0000 (0) 'Stored'\n-6F73B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F73B9 CRC                   00000000 (0)\n-6F73BD Compressed Size       00000000 (0)\n-6F73C1 Uncompressed Size     00000000 (0)\n-6F73C5 Filename Length       0020 (32)\n-6F73C7 Extra Length          0009 (9)\n-6F73C9 Comment Length        0000 (0)\n-6F73CB Disk Start            0000 (0)\n-6F73CD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F73CF Ext File Attributes   00000000 (0)\n-6F73D3 Local Header Offset   005A41D5 (5915093)\n-6F73D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F73D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F73F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F73F9   Length              0005 (5)\n-6F73FB   Flags               01 (1) 'Modification'\n-6F73FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7400 CENTRAL HEADER #1634  02014B50 (33639248)\n-6F7404 Created Zip Spec      14 (20) '2.0'\n-6F7405 Created OS            00 (0) 'MS-DOS'\n-6F7406 Extract Zip Spec      14 (20) '2.0'\n-6F7407 Extract OS            00 (0) 'MS-DOS'\n-6F7408 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F740A Compression Method    0000 (0) 'Stored'\n-6F740C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7410 CRC                   6365E73A (1667622714)\n-6F7414 Compressed Size       00000708 (1800)\n-6F7418 Uncompressed Size     00000708 (1800)\n-6F741C Filename Length       0033 (51)\n-6F741E Extra Length          0009 (9)\n-6F7420 Comment Length        0000 (0)\n-6F7422 Disk Start            0000 (0)\n-6F7424 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7426 Ext File Attributes   00000000 (0)\n-6F742A Local Header Offset   005A421C (5915164)\n-6F742E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F742E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7461 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7463   Length              0005 (5)\n-6F7465   Flags               01 (1) 'Modification'\n-6F7466   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F746A CENTRAL HEADER #1635  02014B50 (33639248)\n-6F746E Created Zip Spec      14 (20) '2.0'\n-6F746F Created OS            00 (0) 'MS-DOS'\n-6F7470 Extract Zip Spec      14 (20) '2.0'\n-6F7471 Extract OS            00 (0) 'MS-DOS'\n-6F7472 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7474 Compression Method    0000 (0) 'Stored'\n-6F7476 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F747A CRC                   BFAE288D (3215861901)\n-6F747E Compressed Size       0000060E (1550)\n-6F7482 Uncompressed Size     0000060E (1550)\n-6F7486 Filename Length       002D (45)\n-6F7488 Extra Length          0009 (9)\n-6F748A Comment Length        0000 (0)\n-6F748C Disk Start            0000 (0)\n-6F748E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7490 Ext File Attributes   00000000 (0)\n-6F7494 Local Header Offset   005A498E (5917070)\n-6F7498 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7498: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F74C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F74C7   Length              0005 (5)\n-6F74C9   Flags               01 (1) 'Modification'\n-6F74CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F74CE CENTRAL HEADER #1636  02014B50 (33639248)\n-6F74D2 Created Zip Spec      14 (20) '2.0'\n-6F74D3 Created OS            00 (0) 'MS-DOS'\n-6F74D4 Extract Zip Spec      14 (20) '2.0'\n-6F74D5 Extract OS            00 (0) 'MS-DOS'\n-6F74D6 General Purpose Flag  0000 (0)\n-6F74D8 Compression Method    0000 (0) 'Stored'\n-6F74DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F74DE CRC                   00000000 (0)\n-6F74E2 Compressed Size       00000000 (0)\n-6F74E6 Uncompressed Size     00000000 (0)\n-6F74EA Filename Length       0024 (36)\n-6F74EC Extra Length          0009 (9)\n-6F74EE Comment Length        0000 (0)\n-6F74F0 Disk Start            0000 (0)\n-6F74F2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F74F4 Ext File Attributes   00000000 (0)\n-6F74F8 Local Header Offset   005A5000 (5918720)\n-6F74FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F74FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7520 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7522   Length              0005 (5)\n-6F7524   Flags               01 (1) 'Modification'\n-6F7525   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7529 CENTRAL HEADER #1637  02014B50 (33639248)\n-6F752D Created Zip Spec      14 (20) '2.0'\n-6F752E Created OS            00 (0) 'MS-DOS'\n-6F752F Extract Zip Spec      14 (20) '2.0'\n-6F7530 Extract OS            00 (0) 'MS-DOS'\n-6F7531 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7533 Compression Method    0000 (0) 'Stored'\n-6F7535 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7539 CRC                   CCE4DF99 (3437551513)\n-6F753D Compressed Size       000003E1 (993)\n-6F7541 Uncompressed Size     000003E1 (993)\n-6F7545 Filename Length       0036 (54)\n-6F7547 Extra Length          0009 (9)\n-6F7549 Comment Length        0000 (0)\n-6F754B Disk Start            0000 (0)\n-6F754D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F754F Ext File Attributes   00000000 (0)\n-6F7553 Local Header Offset   005A504B (5918795)\n-6F7557 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7557: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F758D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F758F   Length              0005 (5)\n-6F7591   Flags               01 (1) 'Modification'\n-6F7592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7596 CENTRAL HEADER #1638  02014B50 (33639248)\n-6F759A Created Zip Spec      14 (20) '2.0'\n-6F759B Created OS            00 (0) 'MS-DOS'\n-6F759C Extract Zip Spec      14 (20) '2.0'\n-6F759D Extract OS            00 (0) 'MS-DOS'\n-6F759E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F75A0 Compression Method    0000 (0) 'Stored'\n-6F75A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F75A6 CRC                   F48F4A7B (4103031419)\n-6F75AA Compressed Size       000003CF (975)\n-6F75AE Uncompressed Size     000003CF (975)\n-6F75B2 Filename Length       0035 (53)\n-6F75B4 Extra Length          0009 (9)\n-6F75B6 Comment Length        0000 (0)\n-6F75B8 Disk Start            0000 (0)\n-6F75BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F75BC Ext File Attributes   00000000 (0)\n-6F75C0 Local Header Offset   005A5499 (5919897)\n-6F75C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F75C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F75F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F75FB   Length              0005 (5)\n-6F75FD   Flags               01 (1) 'Modification'\n-6F75FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7602 CENTRAL HEADER #1639  02014B50 (33639248)\n-6F7606 Created Zip Spec      14 (20) '2.0'\n-6F7607 Created OS            00 (0) 'MS-DOS'\n-6F7608 Extract Zip Spec      14 (20) '2.0'\n-6F7609 Extract OS            00 (0) 'MS-DOS'\n-6F760A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F760C Compression Method    0000 (0) 'Stored'\n-6F760E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7612 CRC                   85A56629 (2242209321)\n-6F7616 Compressed Size       000007E5 (2021)\n-6F761A Uncompressed Size     000007E5 (2021)\n-6F761E Filename Length       0032 (50)\n-6F7620 Extra Length          0009 (9)\n-6F7622 Comment Length        0000 (0)\n-6F7624 Disk Start            0000 (0)\n-6F7626 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7628 Ext File Attributes   00000000 (0)\n-6F762C Local Header Offset   005A58D4 (5920980)\n-6F7630 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7630: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7662 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7664   Length              0005 (5)\n-6F7666   Flags               01 (1) 'Modification'\n-6F7667   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F766B CENTRAL HEADER #1640  02014B50 (33639248)\n-6F766F Created Zip Spec      14 (20) '2.0'\n-6F7670 Created OS            00 (0) 'MS-DOS'\n-6F7671 Extract Zip Spec      14 (20) '2.0'\n-6F7672 Extract OS            00 (0) 'MS-DOS'\n-6F7673 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7675 Compression Method    0000 (0) 'Stored'\n-6F7677 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F767B CRC                   CB7D1A2B (3413973547)\n-6F767F Compressed Size       00000422 (1058)\n-6F7683 Uncompressed Size     00000422 (1058)\n-6F7687 Filename Length       0036 (54)\n-6F7689 Extra Length          0009 (9)\n-6F768B Comment Length        0000 (0)\n-6F768D Disk Start            0000 (0)\n-6F768F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7691 Ext File Attributes   00000000 (0)\n-6F7695 Local Header Offset   005A6122 (5923106)\n-6F7699 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7699: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F76CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F76D1   Length              0005 (5)\n-6F76D3   Flags               01 (1) 'Modification'\n-6F76D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F76D8 CENTRAL HEADER #1641  02014B50 (33639248)\n-6F76DC Created Zip Spec      14 (20) '2.0'\n-6F76DD Created OS            00 (0) 'MS-DOS'\n-6F76DE Extract Zip Spec      14 (20) '2.0'\n-6F76DF Extract OS            00 (0) 'MS-DOS'\n-6F76E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F76E2 Compression Method    0000 (0) 'Stored'\n-6F76E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F76E8 CRC                   3C17796F (1008171375)\n-6F76EC Compressed Size       000007F7 (2039)\n-6F76F0 Uncompressed Size     000007F7 (2039)\n-6F76F4 Filename Length       0038 (56)\n-6F76F6 Extra Length          0009 (9)\n-6F76F8 Comment Length        0000 (0)\n-6F76FA Disk Start            0000 (0)\n-6F76FC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F76FE Ext File Attributes   00000000 (0)\n-6F7702 Local Header Offset   005A65B1 (5924273)\n-6F7706 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7706: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F773E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7740   Length              0005 (5)\n-6F7742   Flags               01 (1) 'Modification'\n-6F7743   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7747 CENTRAL HEADER #1642  02014B50 (33639248)\n-6F774B Created Zip Spec      14 (20) '2.0'\n-6F774C Created OS            00 (0) 'MS-DOS'\n-6F774D Extract Zip Spec      14 (20) '2.0'\n-6F774E Extract OS            00 (0) 'MS-DOS'\n-6F774F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7751 Compression Method    0000 (0) 'Stored'\n-6F7753 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7757 CRC                   18C4C330 (415548208)\n-6F775B Compressed Size       000004A5 (1189)\n-6F775F Uncompressed Size     000004A5 (1189)\n-6F7763 Filename Length       003D (61)\n-6F7765 Extra Length          0009 (9)\n-6F7767 Comment Length        0000 (0)\n-6F7769 Disk Start            0000 (0)\n-6F776B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F776D Ext File Attributes   00000000 (0)\n-6F7771 Local Header Offset   005A6E17 (5926423)\n-6F7775 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7775: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F77B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F77B4   Length              0005 (5)\n-6F77B6   Flags               01 (1) 'Modification'\n-6F77B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F77BB CENTRAL HEADER #1643  02014B50 (33639248)\n-6F77BF Created Zip Spec      14 (20) '2.0'\n-6F77C0 Created OS            00 (0) 'MS-DOS'\n-6F77C1 Extract Zip Spec      14 (20) '2.0'\n-6F77C2 Extract OS            00 (0) 'MS-DOS'\n-6F77C3 General Purpose Flag  0000 (0)\n-6F77C5 Compression Method    0000 (0) 'Stored'\n-6F77C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F77CB CRC                   00000000 (0)\n-6F77CF Compressed Size       00000000 (0)\n-6F77D3 Uncompressed Size     00000000 (0)\n-6F77D7 Filename Length       002C (44)\n-6F77D9 Extra Length          0009 (9)\n-6F77DB Comment Length        0000 (0)\n-6F77DD Disk Start            0000 (0)\n-6F77DF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F77E1 Ext File Attributes   00000000 (0)\n-6F77E5 Local Header Offset   005A7330 (5927728)\n-6F77E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F77E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7815 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7817   Length              0005 (5)\n-6F7819   Flags               01 (1) 'Modification'\n-6F781A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F781E CENTRAL HEADER #1644  02014B50 (33639248)\n-6F7822 Created Zip Spec      14 (20) '2.0'\n-6F7823 Created OS            00 (0) 'MS-DOS'\n-6F7824 Extract Zip Spec      14 (20) '2.0'\n-6F7825 Extract OS            00 (0) 'MS-DOS'\n-6F7826 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7828 Compression Method    0000 (0) 'Stored'\n-6F782A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F782E CRC                   C08A2F01 (3230281473)\n-6F7832 Compressed Size       000042B4 (17076)\n-6F7836 Uncompressed Size     000042B4 (17076)\n-6F783A Filename Length       0047 (71)\n-6F783C Extra Length          0009 (9)\n-6F783E Comment Length        0000 (0)\n-6F7840 Disk Start            0000 (0)\n-6F7842 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7844 Ext File Attributes   00000000 (0)\n-6F7848 Local Header Offset   005A7383 (5927811)\n-6F784C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F784C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7893 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7895   Length              0005 (5)\n-6F7897   Flags               01 (1) 'Modification'\n-6F7898   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F789C CENTRAL HEADER #1645  02014B50 (33639248)\n-6F78A0 Created Zip Spec      14 (20) '2.0'\n-6F78A1 Created OS            00 (0) 'MS-DOS'\n-6F78A2 Extract Zip Spec      14 (20) '2.0'\n-6F78A3 Extract OS            00 (0) 'MS-DOS'\n-6F78A4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F78A6 Compression Method    0000 (0) 'Stored'\n-6F78A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F78AC CRC                   7A12603D (2048024637)\n-6F78B0 Compressed Size       000004FC (1276)\n-6F78B4 Uncompressed Size     000004FC (1276)\n-6F78B8 Filename Length       004C (76)\n-6F78BA Extra Length          0009 (9)\n-6F78BC Comment Length        0000 (0)\n-6F78BE Disk Start            0000 (0)\n-6F78C0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F78C2 Ext File Attributes   00000000 (0)\n-6F78C6 Local Header Offset   005AB6B5 (5945013)\n-6F78CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F78CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7916 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7918   Length              0005 (5)\n-6F791A   Flags               01 (1) 'Modification'\n-6F791B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F791F CENTRAL HEADER #1646  02014B50 (33639248)\n-6F7923 Created Zip Spec      14 (20) '2.0'\n-6F7924 Created OS            00 (0) 'MS-DOS'\n-6F7925 Extract Zip Spec      14 (20) '2.0'\n-6F7926 Extract OS            00 (0) 'MS-DOS'\n-6F7927 General Purpose Flag  0000 (0)\n-6F7929 Compression Method    0000 (0) 'Stored'\n-6F792B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F792F CRC                   00000000 (0)\n-6F7933 Compressed Size       00000000 (0)\n-6F7937 Uncompressed Size     00000000 (0)\n-6F793B Filename Length       002C (44)\n-6F793D Extra Length          0009 (9)\n-6F793F Comment Length        0000 (0)\n-6F7941 Disk Start            0000 (0)\n-6F7943 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7945 Ext File Attributes   00000000 (0)\n-6F7949 Local Header Offset   005ABC34 (5946420)\n-6F794D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F794D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7979 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F797B   Length              0005 (5)\n-6F797D   Flags               01 (1) 'Modification'\n-6F797E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7982 CENTRAL HEADER #1647  02014B50 (33639248)\n-6F7986 Created Zip Spec      14 (20) '2.0'\n-6F7987 Created OS            00 (0) 'MS-DOS'\n-6F7988 Extract Zip Spec      14 (20) '2.0'\n-6F7989 Extract OS            00 (0) 'MS-DOS'\n-6F798A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F798C Compression Method    0000 (0) 'Stored'\n-6F798E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7992 CRC                   72360194 (1916141972)\n-6F7996 Compressed Size       00001FE6 (8166)\n-6F799A Uncompressed Size     00001FE6 (8166)\n-6F799E Filename Length       0048 (72)\n-6F79A0 Extra Length          0009 (9)\n-6F79A2 Comment Length        0000 (0)\n-6F79A4 Disk Start            0000 (0)\n-6F79A6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F79A8 Ext File Attributes   00000000 (0)\n-6F79AC Local Header Offset   005ABC87 (5946503)\n-6F79B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F79B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F79F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F79FA   Length              0005 (5)\n-6F79FC   Flags               01 (1) 'Modification'\n-6F79FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7A01 CENTRAL HEADER #1648  02014B50 (33639248)\n-6F7A05 Created Zip Spec      14 (20) '2.0'\n-6F7A06 Created OS            00 (0) 'MS-DOS'\n-6F7A07 Extract Zip Spec      14 (20) '2.0'\n-6F7A08 Extract OS            00 (0) 'MS-DOS'\n-6F7A09 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7A0B Compression Method    0000 (0) 'Stored'\n-6F7A0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7A11 CRC                   B6B21903 (3065125123)\n-6F7A15 Compressed Size       00001B80 (7040)\n-6F7A19 Uncompressed Size     00001B80 (7040)\n-6F7A1D Filename Length       004D (77)\n-6F7A1F Extra Length          0009 (9)\n-6F7A21 Comment Length        0000 (0)\n-6F7A23 Disk Start            0000 (0)\n-6F7A25 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7A27 Ext File Attributes   00000000 (0)\n-6F7A2B Local Header Offset   005ADCEC (5954796)\n-6F7A2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7A2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7A7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7A7E   Length              0005 (5)\n-6F7A80   Flags               01 (1) 'Modification'\n-6F7A81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7A85 CENTRAL HEADER #1649  02014B50 (33639248)\n-6F7A89 Created Zip Spec      14 (20) '2.0'\n-6F7A8A Created OS            00 (0) 'MS-DOS'\n-6F7A8B Extract Zip Spec      14 (20) '2.0'\n-6F7A8C Extract OS            00 (0) 'MS-DOS'\n-6F7A8D General Purpose Flag  0000 (0)\n-6F7A8F Compression Method    0000 (0) 'Stored'\n-6F7A91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7A95 CRC                   00000000 (0)\n-6F7A99 Compressed Size       00000000 (0)\n-6F7A9D Uncompressed Size     00000000 (0)\n-6F7AA1 Filename Length       0015 (21)\n-6F7AA3 Extra Length          0009 (9)\n-6F7AA5 Comment Length        0000 (0)\n-6F7AA7 Disk Start            0000 (0)\n-6F7AA9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7AAB Ext File Attributes   00000000 (0)\n-6F7AAF Local Header Offset   005AF8F0 (5961968)\n-6F7AB3 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7AB3: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7AC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7ACA   Length              0005 (5)\n-6F7ACC   Flags               01 (1) 'Modification'\n-6F7ACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7AD1 CENTRAL HEADER #1650  02014B50 (33639248)\n-6F7AD5 Created Zip Spec      14 (20) '2.0'\n-6F7AD6 Created OS            00 (0) 'MS-DOS'\n-6F7AD7 Extract Zip Spec      14 (20) '2.0'\n-6F7AD8 Extract OS            00 (0) 'MS-DOS'\n-6F7AD9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7ADB Compression Method    0000 (0) 'Stored'\n-6F7ADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7AE1 CRC                   3836550F (943084815)\n-6F7AE5 Compressed Size       00001E84 (7812)\n-6F7AE9 Uncompressed Size     00001E84 (7812)\n-6F7AED Filename Length       0025 (37)\n-6F7AEF Extra Length          0009 (9)\n-6F7AF1 Comment Length        0000 (0)\n-6F7AF3 Disk Start            0000 (0)\n-6F7AF5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7AF7 Ext File Attributes   00000000 (0)\n-6F7AFB Local Header Offset   005AF92C (5962028)\n-6F7AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7B24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7B26   Length              0005 (5)\n-6F7B28   Flags               01 (1) 'Modification'\n-6F7B29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7B2D CENTRAL HEADER #1651  02014B50 (33639248)\n-6F7B31 Created Zip Spec      14 (20) '2.0'\n-6F7B32 Created OS            00 (0) 'MS-DOS'\n-6F7B33 Extract Zip Spec      14 (20) '2.0'\n-6F7B34 Extract OS            00 (0) 'MS-DOS'\n-6F7B35 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7B37 Compression Method    0000 (0) 'Stored'\n-6F7B39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7B3D CRC                   16C36050 (381902928)\n-6F7B41 Compressed Size       00000A30 (2608)\n-6F7B45 Uncompressed Size     00000A30 (2608)\n-6F7B49 Filename Length       0026 (38)\n-6F7B4B Extra Length          0009 (9)\n-6F7B4D Comment Length        0000 (0)\n-6F7B4F Disk Start            0000 (0)\n-6F7B51 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7B53 Ext File Attributes   00000000 (0)\n-6F7B57 Local Header Offset   005B180C (5969932)\n-6F7B5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F673C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F673E   Length              0005 (5)\n+6F6740   Flags               01 (1) 'Modification'\n+6F6741   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6745 CENTRAL HEADER #680   02014B50 (33639248)\n+6F6749 Created Zip Spec      14 (20) '2.0'\n+6F674A Created OS            00 (0) 'MS-DOS'\n+6F674B Extract Zip Spec      14 (20) '2.0'\n+6F674C Extract OS            00 (0) 'MS-DOS'\n+6F674D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F674F Compression Method    0000 (0) 'Stored'\n+6F6751 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6755 CRC                   8DAF0532 (2377057586)\n+6F6759 Compressed Size       000004F2 (1266)\n+6F675D Uncompressed Size     000004F2 (1266)\n+6F6761 Filename Length       003E (62)\n+6F6763 Extra Length          0009 (9)\n+6F6765 Comment Length        0000 (0)\n+6F6767 Disk Start            0000 (0)\n+6F6769 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F676B Ext File Attributes   00000000 (0)\n+6F676F Local Header Offset   001E7834 (1996852)\n+6F6773 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6773: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F67B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F67B3   Length              0005 (5)\n+6F67B5   Flags               01 (1) 'Modification'\n+6F67B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F67BA CENTRAL HEADER #681   02014B50 (33639248)\n+6F67BE Created Zip Spec      14 (20) '2.0'\n+6F67BF Created OS            00 (0) 'MS-DOS'\n+6F67C0 Extract Zip Spec      14 (20) '2.0'\n+6F67C1 Extract OS            00 (0) 'MS-DOS'\n+6F67C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F67C4 Compression Method    0000 (0) 'Stored'\n+6F67C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F67CA CRC                   5CF3A6C0 (1559471808)\n+6F67CE Compressed Size       00000535 (1333)\n+6F67D2 Uncompressed Size     00000535 (1333)\n+6F67D6 Filename Length       002E (46)\n+6F67D8 Extra Length          0009 (9)\n+6F67DA Comment Length        0000 (0)\n+6F67DC Disk Start            0000 (0)\n+6F67DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F67E0 Ext File Attributes   00000000 (0)\n+6F67E4 Local Header Offset   001E7D9B (1998235)\n+6F67E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F67E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6816 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6818   Length              0005 (5)\n+6F681A   Flags               01 (1) 'Modification'\n+6F681B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F681F CENTRAL HEADER #682   02014B50 (33639248)\n+6F6823 Created Zip Spec      14 (20) '2.0'\n+6F6824 Created OS            00 (0) 'MS-DOS'\n+6F6825 Extract Zip Spec      14 (20) '2.0'\n+6F6826 Extract OS            00 (0) 'MS-DOS'\n+6F6827 General Purpose Flag  0000 (0)\n+6F6829 Compression Method    0000 (0) 'Stored'\n+6F682B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F682F CRC                   00000000 (0)\n+6F6833 Compressed Size       00000000 (0)\n+6F6837 Uncompressed Size     00000000 (0)\n+6F683B Filename Length       002A (42)\n+6F683D Extra Length          0009 (9)\n+6F683F Comment Length        0000 (0)\n+6F6841 Disk Start            0000 (0)\n+6F6843 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6845 Ext File Attributes   00000000 (0)\n+6F6849 Local Header Offset   001E8335 (1999669)\n+6F684D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F684D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6877 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6879   Length              0005 (5)\n+6F687B   Flags               01 (1) 'Modification'\n+6F687C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6880 CENTRAL HEADER #683   02014B50 (33639248)\n+6F6884 Created Zip Spec      14 (20) '2.0'\n+6F6885 Created OS            00 (0) 'MS-DOS'\n+6F6886 Extract Zip Spec      14 (20) '2.0'\n+6F6887 Extract OS            00 (0) 'MS-DOS'\n+6F6888 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F688A Compression Method    0000 (0) 'Stored'\n+6F688C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6890 CRC                   EA8B59C6 (3935001030)\n+6F6894 Compressed Size       00000800 (2048)\n+6F6898 Uncompressed Size     00000800 (2048)\n+6F689C Filename Length       0047 (71)\n+6F689E Extra Length          0009 (9)\n+6F68A0 Comment Length        0000 (0)\n+6F68A2 Disk Start            0000 (0)\n+6F68A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F68A6 Ext File Attributes   00000000 (0)\n+6F68AA Local Header Offset   001E8386 (1999750)\n+6F68AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F68AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F68F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F68F7   Length              0005 (5)\n+6F68F9   Flags               01 (1) 'Modification'\n+6F68FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F68FE CENTRAL HEADER #684   02014B50 (33639248)\n+6F6902 Created Zip Spec      14 (20) '2.0'\n+6F6903 Created OS            00 (0) 'MS-DOS'\n+6F6904 Extract Zip Spec      14 (20) '2.0'\n+6F6905 Extract OS            00 (0) 'MS-DOS'\n+6F6906 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6908 Compression Method    0000 (0) 'Stored'\n+6F690A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F690E CRC                   3280412A (847266090)\n+6F6912 Compressed Size       0000060F (1551)\n+6F6916 Uncompressed Size     0000060F (1551)\n+6F691A Filename Length       0042 (66)\n+6F691C Extra Length          0009 (9)\n+6F691E Comment Length        0000 (0)\n+6F6920 Disk Start            0000 (0)\n+6F6922 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6924 Ext File Attributes   00000000 (0)\n+6F6928 Local Header Offset   001E8C04 (2001924)\n+6F692C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F692C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F696E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6970   Length              0005 (5)\n+6F6972   Flags               01 (1) 'Modification'\n+6F6973   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6977 CENTRAL HEADER #685   02014B50 (33639248)\n+6F697B Created Zip Spec      14 (20) '2.0'\n+6F697C Created OS            00 (0) 'MS-DOS'\n+6F697D Extract Zip Spec      14 (20) '2.0'\n+6F697E Extract OS            00 (0) 'MS-DOS'\n+6F697F General Purpose Flag  0000 (0)\n+6F6981 Compression Method    0000 (0) 'Stored'\n+6F6983 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6987 CRC                   00000000 (0)\n+6F698B Compressed Size       00000000 (0)\n+6F698F Uncompressed Size     00000000 (0)\n+6F6993 Filename Length       002A (42)\n+6F6995 Extra Length          0009 (9)\n+6F6997 Comment Length        0000 (0)\n+6F6999 Disk Start            0000 (0)\n+6F699B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F699D Ext File Attributes   00000000 (0)\n+6F69A1 Local Header Offset   001E928C (2003596)\n+6F69A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F69A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F69CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F69D1   Length              0005 (5)\n+6F69D3   Flags               01 (1) 'Modification'\n+6F69D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F69D8 CENTRAL HEADER #686   02014B50 (33639248)\n+6F69DC Created Zip Spec      14 (20) '2.0'\n+6F69DD Created OS            00 (0) 'MS-DOS'\n+6F69DE Extract Zip Spec      14 (20) '2.0'\n+6F69DF Extract OS            00 (0) 'MS-DOS'\n+6F69E0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F69E2 Compression Method    0000 (0) 'Stored'\n+6F69E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F69E8 CRC                   B81BB8E1 (3088824545)\n+6F69EC Compressed Size       000011D4 (4564)\n+6F69F0 Uncompressed Size     000011D4 (4564)\n+6F69F4 Filename Length       0041 (65)\n+6F69F6 Extra Length          0009 (9)\n+6F69F8 Comment Length        0000 (0)\n+6F69FA Disk Start            0000 (0)\n+6F69FC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F69FE Ext File Attributes   00000000 (0)\n+6F6A02 Local Header Offset   001E92DD (2003677)\n+6F6A06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6A06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6A47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6A49   Length              0005 (5)\n+6F6A4B   Flags               01 (1) 'Modification'\n+6F6A4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6A50 CENTRAL HEADER #687   02014B50 (33639248)\n+6F6A54 Created Zip Spec      14 (20) '2.0'\n+6F6A55 Created OS            00 (0) 'MS-DOS'\n+6F6A56 Extract Zip Spec      14 (20) '2.0'\n+6F6A57 Extract OS            00 (0) 'MS-DOS'\n+6F6A58 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6A5A Compression Method    0000 (0) 'Stored'\n+6F6A5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6A60 CRC                   1FF4288F (536094863)\n+6F6A64 Compressed Size       00000C58 (3160)\n+6F6A68 Uncompressed Size     00000C58 (3160)\n+6F6A6C Filename Length       0040 (64)\n+6F6A6E Extra Length          0009 (9)\n+6F6A70 Comment Length        0000 (0)\n+6F6A72 Disk Start            0000 (0)\n+6F6A74 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6A76 Ext File Attributes   00000000 (0)\n+6F6A7A Local Header Offset   001EA529 (2008361)\n+6F6A7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6A7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6ABE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6AC0   Length              0005 (5)\n+6F6AC2   Flags               01 (1) 'Modification'\n+6F6AC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6AC7 CENTRAL HEADER #688   02014B50 (33639248)\n+6F6ACB Created Zip Spec      14 (20) '2.0'\n+6F6ACC Created OS            00 (0) 'MS-DOS'\n+6F6ACD Extract Zip Spec      14 (20) '2.0'\n+6F6ACE Extract OS            00 (0) 'MS-DOS'\n+6F6ACF General Purpose Flag  0000 (0)\n+6F6AD1 Compression Method    0000 (0) 'Stored'\n+6F6AD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6AD7 CRC                   00000000 (0)\n+6F6ADB Compressed Size       00000000 (0)\n+6F6ADF Uncompressed Size     00000000 (0)\n+6F6AE3 Filename Length       0021 (33)\n+6F6AE5 Extra Length          0009 (9)\n+6F6AE7 Comment Length        0000 (0)\n+6F6AE9 Disk Start            0000 (0)\n+6F6AEB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6AED Ext File Attributes   00000000 (0)\n+6F6AF1 Local Header Offset   001EB1F8 (2011640)\n+6F6AF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6AF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6B16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6B18   Length              0005 (5)\n+6F6B1A   Flags               01 (1) 'Modification'\n+6F6B1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6B1F CENTRAL HEADER #689   02014B50 (33639248)\n+6F6B23 Created Zip Spec      14 (20) '2.0'\n+6F6B24 Created OS            00 (0) 'MS-DOS'\n+6F6B25 Extract Zip Spec      14 (20) '2.0'\n+6F6B26 Extract OS            00 (0) 'MS-DOS'\n+6F6B27 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6B29 Compression Method    0000 (0) 'Stored'\n+6F6B2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6B2F CRC                   C191912C (3247542572)\n+6F6B33 Compressed Size       0000096F (2415)\n+6F6B37 Uncompressed Size     0000096F (2415)\n+6F6B3B Filename Length       0030 (48)\n+6F6B3D Extra Length          0009 (9)\n+6F6B3F Comment Length        0000 (0)\n+6F6B41 Disk Start            0000 (0)\n+6F6B43 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6B45 Ext File Attributes   00000000 (0)\n+6F6B49 Local Header Offset   001EB240 (2011712)\n+6F6B4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6B4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6B7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6B7F   Length              0005 (5)\n+6F6B81   Flags               01 (1) 'Modification'\n+6F6B82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6B86 CENTRAL HEADER #690   02014B50 (33639248)\n+6F6B8A Created Zip Spec      14 (20) '2.0'\n+6F6B8B Created OS            00 (0) 'MS-DOS'\n+6F6B8C Extract Zip Spec      14 (20) '2.0'\n+6F6B8D Extract OS            00 (0) 'MS-DOS'\n+6F6B8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6B90 Compression Method    0000 (0) 'Stored'\n+6F6B92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6B96 CRC                   B9F68231 (3119940145)\n+6F6B9A Compressed Size       00000AC2 (2754)\n+6F6B9E Uncompressed Size     00000AC2 (2754)\n+6F6BA2 Filename Length       002D (45)\n+6F6BA4 Extra Length          0009 (9)\n+6F6BA6 Comment Length        0000 (0)\n+6F6BA8 Disk Start            0000 (0)\n+6F6BAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6BAC Ext File Attributes   00000000 (0)\n+6F6BB0 Local Header Offset   001EBC16 (2014230)\n+6F6BB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6BB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6BE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6BE3   Length              0005 (5)\n+6F6BE5   Flags               01 (1) 'Modification'\n+6F6BE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6BEA CENTRAL HEADER #691   02014B50 (33639248)\n+6F6BEE Created Zip Spec      14 (20) '2.0'\n+6F6BEF Created OS            00 (0) 'MS-DOS'\n+6F6BF0 Extract Zip Spec      14 (20) '2.0'\n+6F6BF1 Extract OS            00 (0) 'MS-DOS'\n+6F6BF2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6BF4 Compression Method    0000 (0) 'Stored'\n+6F6BF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6BFA CRC                   9A0865B9 (2584241593)\n+6F6BFE Compressed Size       0000066B (1643)\n+6F6C02 Uncompressed Size     0000066B (1643)\n+6F6C06 Filename Length       0035 (53)\n+6F6C08 Extra Length          0009 (9)\n+6F6C0A Comment Length        0000 (0)\n+6F6C0C Disk Start            0000 (0)\n+6F6C0E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6C10 Ext File Attributes   00000000 (0)\n+6F6C14 Local Header Offset   001EC73C (2017084)\n+6F6C18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6C18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6C4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6C4F   Length              0005 (5)\n+6F6C51   Flags               01 (1) 'Modification'\n+6F6C52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6C56 CENTRAL HEADER #692   02014B50 (33639248)\n+6F6C5A Created Zip Spec      14 (20) '2.0'\n+6F6C5B Created OS            00 (0) 'MS-DOS'\n+6F6C5C Extract Zip Spec      14 (20) '2.0'\n+6F6C5D Extract OS            00 (0) 'MS-DOS'\n+6F6C5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6C60 Compression Method    0000 (0) 'Stored'\n+6F6C62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6C66 CRC                   5F2ADB9F (1596644255)\n+6F6C6A Compressed Size       00000832 (2098)\n+6F6C6E Uncompressed Size     00000832 (2098)\n+6F6C72 Filename Length       0037 (55)\n+6F6C74 Extra Length          0009 (9)\n+6F6C76 Comment Length        0000 (0)\n+6F6C78 Disk Start            0000 (0)\n+6F6C7A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6C7C Ext File Attributes   00000000 (0)\n+6F6C80 Local Header Offset   001ECE13 (2018835)\n+6F6C84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6C84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6CBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6CBD   Length              0005 (5)\n+6F6CBF   Flags               01 (1) 'Modification'\n+6F6CC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6CC4 CENTRAL HEADER #693   02014B50 (33639248)\n+6F6CC8 Created Zip Spec      14 (20) '2.0'\n+6F6CC9 Created OS            00 (0) 'MS-DOS'\n+6F6CCA Extract Zip Spec      14 (20) '2.0'\n+6F6CCB Extract OS            00 (0) 'MS-DOS'\n+6F6CCC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6CCE Compression Method    0000 (0) 'Stored'\n+6F6CD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6CD4 CRC                   4D1AEB96 (1293609878)\n+6F6CD8 Compressed Size       000008CC (2252)\n+6F6CDC Uncompressed Size     000008CC (2252)\n+6F6CE0 Filename Length       0037 (55)\n+6F6CE2 Extra Length          0009 (9)\n+6F6CE4 Comment Length        0000 (0)\n+6F6CE6 Disk Start            0000 (0)\n+6F6CE8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6CEA Ext File Attributes   00000000 (0)\n+6F6CEE Local Header Offset   001ED6B3 (2021043)\n+6F6CF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6CF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6D29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6D2B   Length              0005 (5)\n+6F6D2D   Flags               01 (1) 'Modification'\n+6F6D2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6D32 CENTRAL HEADER #694   02014B50 (33639248)\n+6F6D36 Created Zip Spec      14 (20) '2.0'\n+6F6D37 Created OS            00 (0) 'MS-DOS'\n+6F6D38 Extract Zip Spec      14 (20) '2.0'\n+6F6D39 Extract OS            00 (0) 'MS-DOS'\n+6F6D3A General Purpose Flag  0000 (0)\n+6F6D3C Compression Method    0000 (0) 'Stored'\n+6F6D3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6D42 CRC                   00000000 (0)\n+6F6D46 Compressed Size       00000000 (0)\n+6F6D4A Uncompressed Size     00000000 (0)\n+6F6D4E Filename Length       001E (30)\n+6F6D50 Extra Length          0009 (9)\n+6F6D52 Comment Length        0000 (0)\n+6F6D54 Disk Start            0000 (0)\n+6F6D56 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6D58 Ext File Attributes   00000000 (0)\n+6F6D5C Local Header Offset   001EDFED (2023405)\n+6F6D60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6D60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6D7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6D80   Length              0005 (5)\n+6F6D82   Flags               01 (1) 'Modification'\n+6F6D83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6D87 CENTRAL HEADER #695   02014B50 (33639248)\n+6F6D8B Created Zip Spec      14 (20) '2.0'\n+6F6D8C Created OS            00 (0) 'MS-DOS'\n+6F6D8D Extract Zip Spec      14 (20) '2.0'\n+6F6D8E Extract OS            00 (0) 'MS-DOS'\n+6F6D8F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6D91 Compression Method    0000 (0) 'Stored'\n+6F6D93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6D97 CRC                   D1400D79 (3510635897)\n+6F6D9B Compressed Size       00000647 (1607)\n+6F6D9F Uncompressed Size     00000647 (1607)\n+6F6DA3 Filename Length       002F (47)\n+6F6DA5 Extra Length          0009 (9)\n+6F6DA7 Comment Length        0000 (0)\n+6F6DA9 Disk Start            0000 (0)\n+6F6DAB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6DAD Ext File Attributes   00000000 (0)\n+6F6DB1 Local Header Offset   001EE032 (2023474)\n+6F6DB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6DB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6DE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6DE6   Length              0005 (5)\n+6F6DE8   Flags               01 (1) 'Modification'\n+6F6DE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6DED CENTRAL HEADER #696   02014B50 (33639248)\n+6F6DF1 Created Zip Spec      14 (20) '2.0'\n+6F6DF2 Created OS            00 (0) 'MS-DOS'\n+6F6DF3 Extract Zip Spec      14 (20) '2.0'\n+6F6DF4 Extract OS            00 (0) 'MS-DOS'\n+6F6DF5 General Purpose Flag  0000 (0)\n+6F6DF7 Compression Method    0000 (0) 'Stored'\n+6F6DF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6DFD CRC                   00000000 (0)\n+6F6E01 Compressed Size       00000000 (0)\n+6F6E05 Uncompressed Size     00000000 (0)\n+6F6E09 Filename Length       0026 (38)\n+6F6E0B Extra Length          0009 (9)\n+6F6E0D Comment Length        0000 (0)\n+6F6E0F Disk Start            0000 (0)\n+6F6E11 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6E13 Ext File Attributes   00000000 (0)\n+6F6E17 Local Header Offset   001EE6DF (2025183)\n+6F6E1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6E1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6E41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6E43   Length              0005 (5)\n+6F6E45   Flags               01 (1) 'Modification'\n+6F6E46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6E4A CENTRAL HEADER #697   02014B50 (33639248)\n+6F6E4E Created Zip Spec      14 (20) '2.0'\n+6F6E4F Created OS            00 (0) 'MS-DOS'\n+6F6E50 Extract Zip Spec      14 (20) '2.0'\n+6F6E51 Extract OS            00 (0) 'MS-DOS'\n+6F6E52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6E54 Compression Method    0000 (0) 'Stored'\n+6F6E56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6E5A CRC                   4A87D325 (1250415397)\n+6F6E5E Compressed Size       0000052B (1323)\n+6F6E62 Uncompressed Size     0000052B (1323)\n+6F6E66 Filename Length       0036 (54)\n+6F6E68 Extra Length          0009 (9)\n+6F6E6A Comment Length        0000 (0)\n+6F6E6C Disk Start            0000 (0)\n+6F6E6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6E70 Ext File Attributes   00000000 (0)\n+6F6E74 Local Header Offset   001EE72C (2025260)\n+6F6E78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6E78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6EAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6EB0   Length              0005 (5)\n+6F6EB2   Flags               01 (1) 'Modification'\n+6F6EB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6EB7 CENTRAL HEADER #698   02014B50 (33639248)\n+6F6EBB Created Zip Spec      14 (20) '2.0'\n+6F6EBC Created OS            00 (0) 'MS-DOS'\n+6F6EBD Extract Zip Spec      14 (20) '2.0'\n+6F6EBE Extract OS            00 (0) 'MS-DOS'\n+6F6EBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6EC1 Compression Method    0000 (0) 'Stored'\n+6F6EC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6EC7 CRC                   382251E3 (941773283)\n+6F6ECB Compressed Size       00000B9D (2973)\n+6F6ECF Uncompressed Size     00000B9D (2973)\n+6F6ED3 Filename Length       003D (61)\n+6F6ED5 Extra Length          0009 (9)\n+6F6ED7 Comment Length        0000 (0)\n+6F6ED9 Disk Start            0000 (0)\n+6F6EDB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6EDD Ext File Attributes   00000000 (0)\n+6F6EE1 Local Header Offset   001EECC4 (2026692)\n+6F6EE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6EE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6F22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6F24   Length              0005 (5)\n+6F6F26   Flags               01 (1) 'Modification'\n+6F6F27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6F2B CENTRAL HEADER #699   02014B50 (33639248)\n+6F6F2F Created Zip Spec      14 (20) '2.0'\n+6F6F30 Created OS            00 (0) 'MS-DOS'\n+6F6F31 Extract Zip Spec      14 (20) '2.0'\n+6F6F32 Extract OS            00 (0) 'MS-DOS'\n+6F6F33 General Purpose Flag  0000 (0)\n+6F6F35 Compression Method    0000 (0) 'Stored'\n+6F6F37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6F3B CRC                   00000000 (0)\n+6F6F3F Compressed Size       00000000 (0)\n+6F6F43 Uncompressed Size     00000000 (0)\n+6F6F47 Filename Length       001B (27)\n+6F6F49 Extra Length          0009 (9)\n+6F6F4B Comment Length        0000 (0)\n+6F6F4D Disk Start            0000 (0)\n+6F6F4F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6F51 Ext File Attributes   00000000 (0)\n+6F6F55 Local Header Offset   001EF8D5 (2029781)\n+6F6F59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6F59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6F74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6F76   Length              0005 (5)\n+6F6F78   Flags               01 (1) 'Modification'\n+6F6F79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6F7D CENTRAL HEADER #700   02014B50 (33639248)\n+6F6F81 Created Zip Spec      14 (20) '2.0'\n+6F6F82 Created OS            00 (0) 'MS-DOS'\n+6F6F83 Extract Zip Spec      14 (20) '2.0'\n+6F6F84 Extract OS            00 (0) 'MS-DOS'\n+6F6F85 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6F87 Compression Method    0000 (0) 'Stored'\n+6F6F89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6F8D CRC                   7D41B4B3 (2101458099)\n+6F6F91 Compressed Size       000068BF (26815)\n+6F6F95 Uncompressed Size     000068BF (26815)\n+6F6F99 Filename Length       0025 (37)\n+6F6F9B Extra Length          0009 (9)\n+6F6F9D Comment Length        0000 (0)\n+6F6F9F Disk Start            0000 (0)\n+6F6FA1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6FA3 Ext File Attributes   00000000 (0)\n+6F6FA7 Local Header Offset   001EF917 (2029847)\n+6F6FAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F6FAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F6FD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F6FD2   Length              0005 (5)\n+6F6FD4   Flags               01 (1) 'Modification'\n+6F6FD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F6FD9 CENTRAL HEADER #701   02014B50 (33639248)\n+6F6FDD Created Zip Spec      14 (20) '2.0'\n+6F6FDE Created OS            00 (0) 'MS-DOS'\n+6F6FDF Extract Zip Spec      14 (20) '2.0'\n+6F6FE0 Extract OS            00 (0) 'MS-DOS'\n+6F6FE1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F6FE3 Compression Method    0000 (0) 'Stored'\n+6F6FE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F6FE9 CRC                   D2FF4595 (3539944853)\n+6F6FED Compressed Size       00001BE9 (7145)\n+6F6FF1 Uncompressed Size     00001BE9 (7145)\n+6F6FF5 Filename Length       002B (43)\n+6F6FF7 Extra Length          0009 (9)\n+6F6FF9 Comment Length        0000 (0)\n+6F6FFB Disk Start            0000 (0)\n+6F6FFD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F6FFF Ext File Attributes   00000000 (0)\n+6F7003 Local Header Offset   001F6232 (2056754)\n+6F7007 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7007: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7032 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7034   Length              0005 (5)\n+6F7036   Flags               01 (1) 'Modification'\n+6F7037   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F703B CENTRAL HEADER #702   02014B50 (33639248)\n+6F703F Created Zip Spec      14 (20) '2.0'\n+6F7040 Created OS            00 (0) 'MS-DOS'\n+6F7041 Extract Zip Spec      14 (20) '2.0'\n+6F7042 Extract OS            00 (0) 'MS-DOS'\n+6F7043 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7045 Compression Method    0000 (0) 'Stored'\n+6F7047 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F704B CRC                   D8BBACF0 (3636178160)\n+6F704F Compressed Size       00000C61 (3169)\n+6F7053 Uncompressed Size     00000C61 (3169)\n+6F7057 Filename Length       003A (58)\n+6F7059 Extra Length          0009 (9)\n+6F705B Comment Length        0000 (0)\n+6F705D Disk Start            0000 (0)\n+6F705F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7061 Ext File Attributes   00000000 (0)\n+6F7065 Local Header Offset   001F7E7D (2063997)\n+6F7069 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7069: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F70A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F70A5   Length              0005 (5)\n+6F70A7   Flags               01 (1) 'Modification'\n+6F70A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F70AC CENTRAL HEADER #703   02014B50 (33639248)\n+6F70B0 Created Zip Spec      14 (20) '2.0'\n+6F70B1 Created OS            00 (0) 'MS-DOS'\n+6F70B2 Extract Zip Spec      14 (20) '2.0'\n+6F70B3 Extract OS            00 (0) 'MS-DOS'\n+6F70B4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F70B6 Compression Method    0000 (0) 'Stored'\n+6F70B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F70BC CRC                   DCFCECF5 (3707563253)\n+6F70C0 Compressed Size       00000BF3 (3059)\n+6F70C4 Uncompressed Size     00000BF3 (3059)\n+6F70C8 Filename Length       003B (59)\n+6F70CA Extra Length          0009 (9)\n+6F70CC Comment Length        0000 (0)\n+6F70CE Disk Start            0000 (0)\n+6F70D0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F70D2 Ext File Attributes   00000000 (0)\n+6F70D6 Local Header Offset   001F8B4F (2067279)\n+6F70DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F70DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7115 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7117   Length              0005 (5)\n+6F7119   Flags               01 (1) 'Modification'\n+6F711A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F711E CENTRAL HEADER #704   02014B50 (33639248)\n+6F7122 Created Zip Spec      14 (20) '2.0'\n+6F7123 Created OS            00 (0) 'MS-DOS'\n+6F7124 Extract Zip Spec      14 (20) '2.0'\n+6F7125 Extract OS            00 (0) 'MS-DOS'\n+6F7126 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7128 Compression Method    0000 (0) 'Stored'\n+6F712A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F712E CRC                   490F11E6 (1225724390)\n+6F7132 Compressed Size       00000C65 (3173)\n+6F7136 Uncompressed Size     00000C65 (3173)\n+6F713A Filename Length       0032 (50)\n+6F713C Extra Length          0009 (9)\n+6F713E Comment Length        0000 (0)\n+6F7140 Disk Start            0000 (0)\n+6F7142 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7144 Ext File Attributes   00000000 (0)\n+6F7148 Local Header Offset   001F97B4 (2070452)\n+6F714C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F714C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F717E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7180   Length              0005 (5)\n+6F7182   Flags               01 (1) 'Modification'\n+6F7183   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7187 CENTRAL HEADER #705   02014B50 (33639248)\n+6F718B Created Zip Spec      14 (20) '2.0'\n+6F718C Created OS            00 (0) 'MS-DOS'\n+6F718D Extract Zip Spec      14 (20) '2.0'\n+6F718E Extract OS            00 (0) 'MS-DOS'\n+6F718F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7191 Compression Method    0000 (0) 'Stored'\n+6F7193 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7197 CRC                   3A9B5BED (983260141)\n+6F719B Compressed Size       00000B3F (2879)\n+6F719F Uncompressed Size     00000B3F (2879)\n+6F71A3 Filename Length       0032 (50)\n+6F71A5 Extra Length          0009 (9)\n+6F71A7 Comment Length        0000 (0)\n+6F71A9 Disk Start            0000 (0)\n+6F71AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F71AD Ext File Attributes   00000000 (0)\n+6F71B1 Local Header Offset   001FA482 (2073730)\n+6F71B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F71B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F71E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F71E9   Length              0005 (5)\n+6F71EB   Flags               01 (1) 'Modification'\n+6F71EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F71F0 CENTRAL HEADER #706   02014B50 (33639248)\n+6F71F4 Created Zip Spec      14 (20) '2.0'\n+6F71F5 Created OS            00 (0) 'MS-DOS'\n+6F71F6 Extract Zip Spec      14 (20) '2.0'\n+6F71F7 Extract OS            00 (0) 'MS-DOS'\n+6F71F8 General Purpose Flag  0000 (0)\n+6F71FA Compression Method    0000 (0) 'Stored'\n+6F71FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7200 CRC                   00000000 (0)\n+6F7204 Compressed Size       00000000 (0)\n+6F7208 Uncompressed Size     00000000 (0)\n+6F720C Filename Length       001D (29)\n+6F720E Extra Length          0009 (9)\n+6F7210 Comment Length        0000 (0)\n+6F7212 Disk Start            0000 (0)\n+6F7214 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7216 Ext File Attributes   00000000 (0)\n+6F721A Local Header Offset   001FB02A (2076714)\n+6F721E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F721E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F723B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F723D   Length              0005 (5)\n+6F723F   Flags               01 (1) 'Modification'\n+6F7240   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7244 CENTRAL HEADER #707   02014B50 (33639248)\n+6F7248 Created Zip Spec      14 (20) '2.0'\n+6F7249 Created OS            00 (0) 'MS-DOS'\n+6F724A Extract Zip Spec      14 (20) '2.0'\n+6F724B Extract OS            00 (0) 'MS-DOS'\n+6F724C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F724E Compression Method    0000 (0) 'Stored'\n+6F7250 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7254 CRC                   30256F45 (807759685)\n+6F7258 Compressed Size       000046E5 (18149)\n+6F725C Uncompressed Size     000046E5 (18149)\n+6F7260 Filename Length       0036 (54)\n+6F7262 Extra Length          0009 (9)\n+6F7264 Comment Length        0000 (0)\n+6F7266 Disk Start            0000 (0)\n+6F7268 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F726A Ext File Attributes   00000000 (0)\n+6F726E Local Header Offset   001FB06E (2076782)\n+6F7272 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7272: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F72A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F72AA   Length              0005 (5)\n+6F72AC   Flags               01 (1) 'Modification'\n+6F72AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F72B1 CENTRAL HEADER #708   02014B50 (33639248)\n+6F72B5 Created Zip Spec      14 (20) '2.0'\n+6F72B6 Created OS            00 (0) 'MS-DOS'\n+6F72B7 Extract Zip Spec      14 (20) '2.0'\n+6F72B8 Extract OS            00 (0) 'MS-DOS'\n+6F72B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F72BB Compression Method    0000 (0) 'Stored'\n+6F72BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F72C1 CRC                   FA032BB6 (4194511798)\n+6F72C5 Compressed Size       00003385 (13189)\n+6F72C9 Uncompressed Size     00003385 (13189)\n+6F72CD Filename Length       002C (44)\n+6F72CF Extra Length          0009 (9)\n+6F72D1 Comment Length        0000 (0)\n+6F72D3 Disk Start            0000 (0)\n+6F72D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F72D7 Ext File Attributes   00000000 (0)\n+6F72DB Local Header Offset   001FF7C0 (2095040)\n+6F72DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F72DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F730B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F730D   Length              0005 (5)\n+6F730F   Flags               01 (1) 'Modification'\n+6F7310   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7314 CENTRAL HEADER #709   02014B50 (33639248)\n+6F7318 Created Zip Spec      14 (20) '2.0'\n+6F7319 Created OS            00 (0) 'MS-DOS'\n+6F731A Extract Zip Spec      14 (20) '2.0'\n+6F731B Extract OS            00 (0) 'MS-DOS'\n+6F731C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F731E Compression Method    0000 (0) 'Stored'\n+6F7320 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7324 CRC                   39C07894 (968915092)\n+6F7328 Compressed Size       00006AA4 (27300)\n+6F732C Uncompressed Size     00006AA4 (27300)\n+6F7330 Filename Length       0026 (38)\n+6F7332 Extra Length          0009 (9)\n+6F7334 Comment Length        0000 (0)\n+6F7336 Disk Start            0000 (0)\n+6F7338 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F733A Ext File Attributes   00000000 (0)\n+6F733E Local Header Offset   00202BA8 (2108328)\n+6F7342 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7342: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7368 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F736A   Length              0005 (5)\n+6F736C   Flags               01 (1) 'Modification'\n+6F736D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7371 CENTRAL HEADER #710   02014B50 (33639248)\n+6F7375 Created Zip Spec      14 (20) '2.0'\n+6F7376 Created OS            00 (0) 'MS-DOS'\n+6F7377 Extract Zip Spec      14 (20) '2.0'\n+6F7378 Extract OS            00 (0) 'MS-DOS'\n+6F7379 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F737B Compression Method    0000 (0) 'Stored'\n+6F737D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7381 CRC                   2313A478 (588489848)\n+6F7385 Compressed Size       00001330 (4912)\n+6F7389 Uncompressed Size     00001330 (4912)\n+6F738D Filename Length       002B (43)\n+6F738F Extra Length          0009 (9)\n+6F7391 Comment Length        0000 (0)\n+6F7393 Disk Start            0000 (0)\n+6F7395 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7397 Ext File Attributes   00000000 (0)\n+6F739B Local Header Offset   002096A9 (2135721)\n+6F739F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F739F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F73CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F73CC   Length              0005 (5)\n+6F73CE   Flags               01 (1) 'Modification'\n+6F73CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F73D3 CENTRAL HEADER #711   02014B50 (33639248)\n+6F73D7 Created Zip Spec      14 (20) '2.0'\n+6F73D8 Created OS            00 (0) 'MS-DOS'\n+6F73D9 Extract Zip Spec      14 (20) '2.0'\n+6F73DA Extract OS            00 (0) 'MS-DOS'\n+6F73DB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F73DD Compression Method    0000 (0) 'Stored'\n+6F73DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F73E3 CRC                   10BC97FD (280795133)\n+6F73E7 Compressed Size       000005B5 (1461)\n+6F73EB Uncompressed Size     000005B5 (1461)\n+6F73EF Filename Length       002F (47)\n+6F73F1 Extra Length          0009 (9)\n+6F73F3 Comment Length        0000 (0)\n+6F73F5 Disk Start            0000 (0)\n+6F73F7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F73F9 Ext File Attributes   00000000 (0)\n+6F73FD Local Header Offset   0020AA3B (2140731)\n+6F7401 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7401: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7430 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7432   Length              0005 (5)\n+6F7434   Flags               01 (1) 'Modification'\n+6F7435   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7439 CENTRAL HEADER #712   02014B50 (33639248)\n+6F743D Created Zip Spec      14 (20) '2.0'\n+6F743E Created OS            00 (0) 'MS-DOS'\n+6F743F Extract Zip Spec      14 (20) '2.0'\n+6F7440 Extract OS            00 (0) 'MS-DOS'\n+6F7441 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7443 Compression Method    0000 (0) 'Stored'\n+6F7445 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7449 CRC                   982A34CC (2552902860)\n+6F744D Compressed Size       000004AE (1198)\n+6F7451 Uncompressed Size     000004AE (1198)\n+6F7455 Filename Length       002A (42)\n+6F7457 Extra Length          0009 (9)\n+6F7459 Comment Length        0000 (0)\n+6F745B Disk Start            0000 (0)\n+6F745D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F745F Ext File Attributes   00000000 (0)\n+6F7463 Local Header Offset   0020B056 (2142294)\n+6F7467 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7467: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7491 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7493   Length              0005 (5)\n+6F7495   Flags               01 (1) 'Modification'\n+6F7496   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F749A CENTRAL HEADER #713   02014B50 (33639248)\n+6F749E Created Zip Spec      14 (20) '2.0'\n+6F749F Created OS            00 (0) 'MS-DOS'\n+6F74A0 Extract Zip Spec      14 (20) '2.0'\n+6F74A1 Extract OS            00 (0) 'MS-DOS'\n+6F74A2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F74A4 Compression Method    0000 (0) 'Stored'\n+6F74A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F74AA CRC                   7653CF57 (1985204055)\n+6F74AE Compressed Size       000015FB (5627)\n+6F74B2 Uncompressed Size     000015FB (5627)\n+6F74B6 Filename Length       002C (44)\n+6F74B8 Extra Length          0009 (9)\n+6F74BA Comment Length        0000 (0)\n+6F74BC Disk Start            0000 (0)\n+6F74BE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F74C0 Ext File Attributes   00000000 (0)\n+6F74C4 Local Header Offset   0020B565 (2143589)\n+6F74C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F74C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F74F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F74F6   Length              0005 (5)\n+6F74F8   Flags               01 (1) 'Modification'\n+6F74F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F74FD CENTRAL HEADER #714   02014B50 (33639248)\n+6F7501 Created Zip Spec      14 (20) '2.0'\n+6F7502 Created OS            00 (0) 'MS-DOS'\n+6F7503 Extract Zip Spec      14 (20) '2.0'\n+6F7504 Extract OS            00 (0) 'MS-DOS'\n+6F7505 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7507 Compression Method    0000 (0) 'Stored'\n+6F7509 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F750D CRC                   4D87180A (1300699146)\n+6F7511 Compressed Size       000008A6 (2214)\n+6F7515 Uncompressed Size     000008A6 (2214)\n+6F7519 Filename Length       002C (44)\n+6F751B Extra Length          0009 (9)\n+6F751D Comment Length        0000 (0)\n+6F751F Disk Start            0000 (0)\n+6F7521 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7523 Ext File Attributes   00000000 (0)\n+6F7527 Local Header Offset   0020CBC3 (2149315)\n+6F752B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F752B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7557 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7559   Length              0005 (5)\n+6F755B   Flags               01 (1) 'Modification'\n+6F755C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7560 CENTRAL HEADER #715   02014B50 (33639248)\n+6F7564 Created Zip Spec      14 (20) '2.0'\n+6F7565 Created OS            00 (0) 'MS-DOS'\n+6F7566 Extract Zip Spec      14 (20) '2.0'\n+6F7567 Extract OS            00 (0) 'MS-DOS'\n+6F7568 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F756A Compression Method    0000 (0) 'Stored'\n+6F756C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7570 CRC                   8F2D4992 (2402109842)\n+6F7574 Compressed Size       000008C7 (2247)\n+6F7578 Uncompressed Size     000008C7 (2247)\n+6F757C Filename Length       002B (43)\n+6F757E Extra Length          0009 (9)\n+6F7580 Comment Length        0000 (0)\n+6F7582 Disk Start            0000 (0)\n+6F7584 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7586 Ext File Attributes   00000000 (0)\n+6F758A Local Header Offset   0020D4CC (2151628)\n+6F758E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F758E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F75B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F75BB   Length              0005 (5)\n+6F75BD   Flags               01 (1) 'Modification'\n+6F75BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F75C2 CENTRAL HEADER #716   02014B50 (33639248)\n+6F75C6 Created Zip Spec      14 (20) '2.0'\n+6F75C7 Created OS            00 (0) 'MS-DOS'\n+6F75C8 Extract Zip Spec      14 (20) '2.0'\n+6F75C9 Extract OS            00 (0) 'MS-DOS'\n+6F75CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F75CC Compression Method    0000 (0) 'Stored'\n+6F75CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F75D2 CRC                   33828390 (864191376)\n+6F75D6 Compressed Size       00000AEC (2796)\n+6F75DA Uncompressed Size     00000AEC (2796)\n+6F75DE Filename Length       002D (45)\n+6F75E0 Extra Length          0009 (9)\n+6F75E2 Comment Length        0000 (0)\n+6F75E4 Disk Start            0000 (0)\n+6F75E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F75E8 Ext File Attributes   00000000 (0)\n+6F75EC Local Header Offset   0020DDF5 (2153973)\n+6F75F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F75F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F761D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F761F   Length              0005 (5)\n+6F7621   Flags               01 (1) 'Modification'\n+6F7622   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7626 CENTRAL HEADER #717   02014B50 (33639248)\n+6F762A Created Zip Spec      14 (20) '2.0'\n+6F762B Created OS            00 (0) 'MS-DOS'\n+6F762C Extract Zip Spec      14 (20) '2.0'\n+6F762D Extract OS            00 (0) 'MS-DOS'\n+6F762E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7630 Compression Method    0000 (0) 'Stored'\n+6F7632 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7636 CRC                   ECCF2EAF (3973000879)\n+6F763A Compressed Size       00001FDF (8159)\n+6F763E Uncompressed Size     00001FDF (8159)\n+6F7642 Filename Length       002C (44)\n+6F7644 Extra Length          0009 (9)\n+6F7646 Comment Length        0000 (0)\n+6F7648 Disk Start            0000 (0)\n+6F764A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F764C Ext File Attributes   00000000 (0)\n+6F7650 Local Header Offset   0020E945 (2156869)\n+6F7654 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7654: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7680 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7682   Length              0005 (5)\n+6F7684   Flags               01 (1) 'Modification'\n+6F7685   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7689 CENTRAL HEADER #718   02014B50 (33639248)\n+6F768D Created Zip Spec      14 (20) '2.0'\n+6F768E Created OS            00 (0) 'MS-DOS'\n+6F768F Extract Zip Spec      14 (20) '2.0'\n+6F7690 Extract OS            00 (0) 'MS-DOS'\n+6F7691 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7693 Compression Method    0000 (0) 'Stored'\n+6F7695 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7699 CRC                   4EF6CDD0 (1324797392)\n+6F769D Compressed Size       00000489 (1161)\n+6F76A1 Uncompressed Size     00000489 (1161)\n+6F76A5 Filename Length       0030 (48)\n+6F76A7 Extra Length          0009 (9)\n+6F76A9 Comment Length        0000 (0)\n+6F76AB Disk Start            0000 (0)\n+6F76AD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F76AF Ext File Attributes   00000000 (0)\n+6F76B3 Local Header Offset   00210987 (2165127)\n+6F76B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F76B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F76E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F76E9   Length              0005 (5)\n+6F76EB   Flags               01 (1) 'Modification'\n+6F76EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F76F0 CENTRAL HEADER #719   02014B50 (33639248)\n+6F76F4 Created Zip Spec      14 (20) '2.0'\n+6F76F5 Created OS            00 (0) 'MS-DOS'\n+6F76F6 Extract Zip Spec      14 (20) '2.0'\n+6F76F7 Extract OS            00 (0) 'MS-DOS'\n+6F76F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F76FA Compression Method    0000 (0) 'Stored'\n+6F76FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7700 CRC                   8192FABF (2173893311)\n+6F7704 Compressed Size       00007607 (30215)\n+6F7708 Uncompressed Size     00007607 (30215)\n+6F770C Filename Length       0027 (39)\n+6F770E Extra Length          0009 (9)\n+6F7710 Comment Length        0000 (0)\n+6F7712 Disk Start            0000 (0)\n+6F7714 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7716 Ext File Attributes   00000000 (0)\n+6F771A Local Header Offset   00210E77 (2166391)\n+6F771E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F771E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7745 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7747   Length              0005 (5)\n+6F7749   Flags               01 (1) 'Modification'\n+6F774A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F774E CENTRAL HEADER #720   02014B50 (33639248)\n+6F7752 Created Zip Spec      14 (20) '2.0'\n+6F7753 Created OS            00 (0) 'MS-DOS'\n+6F7754 Extract Zip Spec      14 (20) '2.0'\n+6F7755 Extract OS            00 (0) 'MS-DOS'\n+6F7756 General Purpose Flag  0000 (0)\n+6F7758 Compression Method    0000 (0) 'Stored'\n+6F775A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F775E CRC                   00000000 (0)\n+6F7762 Compressed Size       00000000 (0)\n+6F7766 Uncompressed Size     00000000 (0)\n+6F776A Filename Length       001D (29)\n+6F776C Extra Length          0009 (9)\n+6F776E Comment Length        0000 (0)\n+6F7770 Disk Start            0000 (0)\n+6F7772 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7774 Ext File Attributes   00000000 (0)\n+6F7778 Local Header Offset   002184DC (2196700)\n+6F777C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F777C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F779B   Length              0005 (5)\n+6F779D   Flags               01 (1) 'Modification'\n+6F779E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F77A2 CENTRAL HEADER #721   02014B50 (33639248)\n+6F77A6 Created Zip Spec      14 (20) '2.0'\n+6F77A7 Created OS            00 (0) 'MS-DOS'\n+6F77A8 Extract Zip Spec      14 (20) '2.0'\n+6F77A9 Extract OS            00 (0) 'MS-DOS'\n+6F77AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F77AC Compression Method    0000 (0) 'Stored'\n+6F77AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F77B2 CRC                   36088937 (906529079)\n+6F77B6 Compressed Size       0000094E (2382)\n+6F77BA Uncompressed Size     0000094E (2382)\n+6F77BE Filename Length       002D (45)\n+6F77C0 Extra Length          0009 (9)\n+6F77C2 Comment Length        0000 (0)\n+6F77C4 Disk Start            0000 (0)\n+6F77C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F77C8 Ext File Attributes   00000000 (0)\n+6F77CC Local Header Offset   00218520 (2196768)\n+6F77D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F77D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F77FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F77FF   Length              0005 (5)\n+6F7801   Flags               01 (1) 'Modification'\n+6F7802   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7806 CENTRAL HEADER #722   02014B50 (33639248)\n+6F780A Created Zip Spec      14 (20) '2.0'\n+6F780B Created OS            00 (0) 'MS-DOS'\n+6F780C Extract Zip Spec      14 (20) '2.0'\n+6F780D Extract OS            00 (0) 'MS-DOS'\n+6F780E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7810 Compression Method    0000 (0) 'Stored'\n+6F7812 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7816 CRC                   C67E8FBE (3330183102)\n+6F781A Compressed Size       000004AB (1195)\n+6F781E Uncompressed Size     000004AB (1195)\n+6F7822 Filename Length       0036 (54)\n+6F7824 Extra Length          0009 (9)\n+6F7826 Comment Length        0000 (0)\n+6F7828 Disk Start            0000 (0)\n+6F782A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F782C Ext File Attributes   00000000 (0)\n+6F7830 Local Header Offset   00218ED2 (2199250)\n+6F7834 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7834: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F786A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F786C   Length              0005 (5)\n+6F786E   Flags               01 (1) 'Modification'\n+6F786F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7873 CENTRAL HEADER #723   02014B50 (33639248)\n+6F7877 Created Zip Spec      14 (20) '2.0'\n+6F7878 Created OS            00 (0) 'MS-DOS'\n+6F7879 Extract Zip Spec      14 (20) '2.0'\n+6F787A Extract OS            00 (0) 'MS-DOS'\n+6F787B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F787D Compression Method    0000 (0) 'Stored'\n+6F787F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7883 CRC                   8F418EA5 (2403438245)\n+6F7887 Compressed Size       00000967 (2407)\n+6F788B Uncompressed Size     00000967 (2407)\n+6F788F Filename Length       0037 (55)\n+6F7891 Extra Length          0009 (9)\n+6F7893 Comment Length        0000 (0)\n+6F7895 Disk Start            0000 (0)\n+6F7897 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7899 Ext File Attributes   00000000 (0)\n+6F789D Local Header Offset   002193EA (2200554)\n+6F78A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F78A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F78D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F78DA   Length              0005 (5)\n+6F78DC   Flags               01 (1) 'Modification'\n+6F78DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F78E1 CENTRAL HEADER #724   02014B50 (33639248)\n+6F78E5 Created Zip Spec      14 (20) '2.0'\n+6F78E6 Created OS            00 (0) 'MS-DOS'\n+6F78E7 Extract Zip Spec      14 (20) '2.0'\n+6F78E8 Extract OS            00 (0) 'MS-DOS'\n+6F78E9 General Purpose Flag  0000 (0)\n+6F78EB Compression Method    0000 (0) 'Stored'\n+6F78ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F78F1 CRC                   00000000 (0)\n+6F78F5 Compressed Size       00000000 (0)\n+6F78F9 Uncompressed Size     00000000 (0)\n+6F78FD Filename Length       001F (31)\n+6F78FF Extra Length          0009 (9)\n+6F7901 Comment Length        0000 (0)\n+6F7903 Disk Start            0000 (0)\n+6F7905 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7907 Ext File Attributes   00000000 (0)\n+6F790B Local Header Offset   00219DBF (2203071)\n+6F790F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F790F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F792E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7930   Length              0005 (5)\n+6F7932   Flags               01 (1) 'Modification'\n+6F7933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7937 CENTRAL HEADER #725   02014B50 (33639248)\n+6F793B Created Zip Spec      14 (20) '2.0'\n+6F793C Created OS            00 (0) 'MS-DOS'\n+6F793D Extract Zip Spec      14 (20) '2.0'\n+6F793E Extract OS            00 (0) 'MS-DOS'\n+6F793F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7941 Compression Method    0000 (0) 'Stored'\n+6F7943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7947 CRC                   9D821087 (2642546823)\n+6F794B Compressed Size       000004BE (1214)\n+6F794F Uncompressed Size     000004BE (1214)\n+6F7953 Filename Length       0029 (41)\n+6F7955 Extra Length          0009 (9)\n+6F7957 Comment Length        0000 (0)\n+6F7959 Disk Start            0000 (0)\n+6F795B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F795D Ext File Attributes   00000000 (0)\n+6F7961 Local Header Offset   00219E05 (2203141)\n+6F7965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F798E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7990   Length              0005 (5)\n+6F7992   Flags               01 (1) 'Modification'\n+6F7993   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7997 CENTRAL HEADER #726   02014B50 (33639248)\n+6F799B Created Zip Spec      14 (20) '2.0'\n+6F799C Created OS            00 (0) 'MS-DOS'\n+6F799D Extract Zip Spec      14 (20) '2.0'\n+6F799E Extract OS            00 (0) 'MS-DOS'\n+6F799F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F79A1 Compression Method    0000 (0) 'Stored'\n+6F79A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F79A7 CRC                   0D8DFECE (227409614)\n+6F79AB Compressed Size       00000F82 (3970)\n+6F79AF Uncompressed Size     00000F82 (3970)\n+6F79B3 Filename Length       002A (42)\n+6F79B5 Extra Length          0009 (9)\n+6F79B7 Comment Length        0000 (0)\n+6F79B9 Disk Start            0000 (0)\n+6F79BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F79BD Ext File Attributes   00000000 (0)\n+6F79C1 Local Header Offset   0021A323 (2204451)\n+6F79C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F79C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F79EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F79F1   Length              0005 (5)\n+6F79F3   Flags               01 (1) 'Modification'\n+6F79F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F79F8 CENTRAL HEADER #727   02014B50 (33639248)\n+6F79FC Created Zip Spec      14 (20) '2.0'\n+6F79FD Created OS            00 (0) 'MS-DOS'\n+6F79FE Extract Zip Spec      14 (20) '2.0'\n+6F79FF Extract OS            00 (0) 'MS-DOS'\n+6F7A00 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7A02 Compression Method    0000 (0) 'Stored'\n+6F7A04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7A08 CRC                   A6EF1A57 (2800687703)\n+6F7A0C Compressed Size       00000745 (1861)\n+6F7A10 Uncompressed Size     00000745 (1861)\n+6F7A14 Filename Length       0031 (49)\n+6F7A16 Extra Length          0009 (9)\n+6F7A18 Comment Length        0000 (0)\n+6F7A1A Disk Start            0000 (0)\n+6F7A1C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7A1E Ext File Attributes   00000000 (0)\n+6F7A22 Local Header Offset   0021B306 (2208518)\n+6F7A26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7A26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7A57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7A59   Length              0005 (5)\n+6F7A5B   Flags               01 (1) 'Modification'\n+6F7A5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7A60 CENTRAL HEADER #728   02014B50 (33639248)\n+6F7A64 Created Zip Spec      14 (20) '2.0'\n+6F7A65 Created OS            00 (0) 'MS-DOS'\n+6F7A66 Extract Zip Spec      14 (20) '2.0'\n+6F7A67 Extract OS            00 (0) 'MS-DOS'\n+6F7A68 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7A6A Compression Method    0000 (0) 'Stored'\n+6F7A6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7A70 CRC                   626EDC3E (1651432510)\n+6F7A74 Compressed Size       00001485 (5253)\n+6F7A78 Uncompressed Size     00001485 (5253)\n+6F7A7C Filename Length       0031 (49)\n+6F7A7E Extra Length          0009 (9)\n+6F7A80 Comment Length        0000 (0)\n+6F7A82 Disk Start            0000 (0)\n+6F7A84 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7A86 Ext File Attributes   00000000 (0)\n+6F7A8A Local Header Offset   0021BAB3 (2210483)\n+6F7A8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7A8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7ABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7AC1   Length              0005 (5)\n+6F7AC3   Flags               01 (1) 'Modification'\n+6F7AC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7AC8 CENTRAL HEADER #729   02014B50 (33639248)\n+6F7ACC Created Zip Spec      14 (20) '2.0'\n+6F7ACD Created OS            00 (0) 'MS-DOS'\n+6F7ACE Extract Zip Spec      14 (20) '2.0'\n+6F7ACF Extract OS            00 (0) 'MS-DOS'\n+6F7AD0 General Purpose Flag  0000 (0)\n+6F7AD2 Compression Method    0000 (0) 'Stored'\n+6F7AD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7AD8 CRC                   00000000 (0)\n+6F7ADC Compressed Size       00000000 (0)\n+6F7AE0 Uncompressed Size     00000000 (0)\n+6F7AE4 Filename Length       0023 (35)\n+6F7AE6 Extra Length          0009 (9)\n+6F7AE8 Comment Length        0000 (0)\n+6F7AEA Disk Start            0000 (0)\n+6F7AEC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7AEE Ext File Attributes   00000000 (0)\n+6F7AF2 Local Header Offset   0021CFA0 (2215840)\n+6F7AF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7AF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7B19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7B1B   Length              0005 (5)\n+6F7B1D   Flags               01 (1) 'Modification'\n+6F7B1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7B22 CENTRAL HEADER #730   02014B50 (33639248)\n+6F7B26 Created Zip Spec      14 (20) '2.0'\n+6F7B27 Created OS            00 (0) 'MS-DOS'\n+6F7B28 Extract Zip Spec      14 (20) '2.0'\n+6F7B29 Extract OS            00 (0) 'MS-DOS'\n+6F7B2A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7B2C Compression Method    0000 (0) 'Stored'\n+6F7B2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7B32 CRC                   65EBC1EB (1709949419)\n+6F7B36 Compressed Size       00000D0E (3342)\n+6F7B3A Uncompressed Size     00000D0E (3342)\n+6F7B3E Filename Length       0031 (49)\n+6F7B40 Extra Length          0009 (9)\n+6F7B42 Comment Length        0000 (0)\n+6F7B44 Disk Start            0000 (0)\n+6F7B46 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7B48 Ext File Attributes   00000000 (0)\n+6F7B4C Local Header Offset   0021CFEA (2215914)\n+6F7B50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F7B5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F7B50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6F7B81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6F7B83   Length              0005 (5)\n 6F7B85   Flags               01 (1) 'Modification'\n 6F7B86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6F7B8A CENTRAL HEADER #1652  02014B50 (33639248)\n+6F7B8A CENTRAL HEADER #731   02014B50 (33639248)\n 6F7B8E Created Zip Spec      14 (20) '2.0'\n 6F7B8F Created OS            00 (0) 'MS-DOS'\n 6F7B90 Extract Zip Spec      14 (20) '2.0'\n 6F7B91 Extract OS            00 (0) 'MS-DOS'\n 6F7B92 General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6F7B94 Compression Method    0000 (0) 'Stored'\n 6F7B96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7B9A CRC                   5C1C5F40 (1545363264)\n-6F7B9E Compressed Size       00000A28 (2600)\n-6F7BA2 Uncompressed Size     00000A28 (2600)\n-6F7BA6 Filename Length       002A (42)\n+6F7B9A CRC                   006A5B46 (6970182)\n+6F7B9E Compressed Size       000006F8 (1784)\n+6F7BA2 Uncompressed Size     000006F8 (1784)\n+6F7BA6 Filename Length       0038 (56)\n 6F7BA8 Extra Length          0009 (9)\n 6F7BAA Comment Length        0000 (0)\n 6F7BAC Disk Start            0000 (0)\n 6F7BAE Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6F7BB0 Ext File Attributes   00000000 (0)\n-6F7BB4 Local Header Offset   005B2299 (5972633)\n-6F7BB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F7BB4 Local Header Offset   0021DD60 (2219360)\n+6F7BB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6F7BB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6F7BB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6F7BE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7BE4   Length              0005 (5)\n-6F7BE6   Flags               01 (1) 'Modification'\n-6F7BE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7BEB CENTRAL HEADER #1653  02014B50 (33639248)\n-6F7BEF Created Zip Spec      14 (20) '2.0'\n-6F7BF0 Created OS            00 (0) 'MS-DOS'\n-6F7BF1 Extract Zip Spec      14 (20) '2.0'\n-6F7BF2 Extract OS            00 (0) 'MS-DOS'\n-6F7BF3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7BF5 Compression Method    0000 (0) 'Stored'\n-6F7BF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7BFB CRC                   93FCD4E8 (2482820328)\n-6F7BFF Compressed Size       00003024 (12324)\n-6F7C03 Uncompressed Size     00003024 (12324)\n-6F7C07 Filename Length       0028 (40)\n-6F7C09 Extra Length          0009 (9)\n-6F7C0B Comment Length        0000 (0)\n-6F7C0D Disk Start            0000 (0)\n-6F7C0F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7C11 Ext File Attributes   00000000 (0)\n-6F7C15 Local Header Offset   005B2D22 (5975330)\n-6F7C19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7C19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7C41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7C43   Length              0005 (5)\n-6F7C45   Flags               01 (1) 'Modification'\n-6F7C46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7C4A CENTRAL HEADER #1654  02014B50 (33639248)\n-6F7C4E Created Zip Spec      14 (20) '2.0'\n-6F7C4F Created OS            00 (0) 'MS-DOS'\n-6F7C50 Extract Zip Spec      14 (20) '2.0'\n-6F7C51 Extract OS            00 (0) 'MS-DOS'\n-6F7C52 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7C54 Compression Method    0000 (0) 'Stored'\n-6F7C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7C5A CRC                   735FA0B6 (1935646902)\n-6F7C5E Compressed Size       00000968 (2408)\n-6F7C62 Uncompressed Size     00000968 (2408)\n-6F7C66 Filename Length       002C (44)\n-6F7C68 Extra Length          0009 (9)\n-6F7C6A Comment Length        0000 (0)\n-6F7C6C Disk Start            0000 (0)\n-6F7C6E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7C70 Ext File Attributes   00000000 (0)\n-6F7C74 Local Header Offset   005B5DA5 (5987749)\n-6F7C78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7C78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7CA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7CA6   Length              0005 (5)\n-6F7CA8   Flags               01 (1) 'Modification'\n-6F7CA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7CAD CENTRAL HEADER #1655  02014B50 (33639248)\n-6F7CB1 Created Zip Spec      14 (20) '2.0'\n-6F7CB2 Created OS            00 (0) 'MS-DOS'\n-6F7CB3 Extract Zip Spec      14 (20) '2.0'\n-6F7CB4 Extract OS            00 (0) 'MS-DOS'\n-6F7CB5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7CB7 Compression Method    0000 (0) 'Stored'\n-6F7CB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7CBD CRC                   2AE2442E (719471662)\n-6F7CC1 Compressed Size       00000A18 (2584)\n-6F7CC5 Uncompressed Size     00000A18 (2584)\n-6F7CC9 Filename Length       0023 (35)\n-6F7CCB Extra Length          0009 (9)\n-6F7CCD Comment Length        0000 (0)\n-6F7CCF Disk Start            0000 (0)\n-6F7CD1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7CD3 Ext File Attributes   00000000 (0)\n-6F7CD7 Local Header Offset   005B6770 (5990256)\n-6F7CDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7CDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7CFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7D00   Length              0005 (5)\n-6F7D02   Flags               01 (1) 'Modification'\n-6F7D03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7D07 CENTRAL HEADER #1656  02014B50 (33639248)\n-6F7D0B Created Zip Spec      14 (20) '2.0'\n-6F7D0C Created OS            00 (0) 'MS-DOS'\n-6F7D0D Extract Zip Spec      14 (20) '2.0'\n-6F7D0E Extract OS            00 (0) 'MS-DOS'\n-6F7D0F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7D11 Compression Method    0000 (0) 'Stored'\n-6F7D13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7D17 CRC                   525AF459 (1381692505)\n-6F7D1B Compressed Size       0000053F (1343)\n-6F7D1F Uncompressed Size     0000053F (1343)\n-6F7D23 Filename Length       0022 (34)\n-6F7D25 Extra Length          0009 (9)\n-6F7D27 Comment Length        0000 (0)\n-6F7D29 Disk Start            0000 (0)\n-6F7D2B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7D2D Ext File Attributes   00000000 (0)\n-6F7D31 Local Header Offset   005B71E2 (5992930)\n-6F7D35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7D35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7D57 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7D59   Length              0005 (5)\n-6F7D5B   Flags               01 (1) 'Modification'\n-6F7D5C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7D60 CENTRAL HEADER #1657  02014B50 (33639248)\n-6F7D64 Created Zip Spec      14 (20) '2.0'\n-6F7D65 Created OS            00 (0) 'MS-DOS'\n-6F7D66 Extract Zip Spec      14 (20) '2.0'\n-6F7D67 Extract OS            00 (0) 'MS-DOS'\n-6F7D68 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7D6A Compression Method    0000 (0) 'Stored'\n-6F7D6C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7D70 CRC                   FC32E707 (4231194375)\n-6F7D74 Compressed Size       000005AC (1452)\n-6F7D78 Uncompressed Size     000005AC (1452)\n-6F7D7C Filename Length       002A (42)\n-6F7D7E Extra Length          0009 (9)\n-6F7D80 Comment Length        0000 (0)\n-6F7D82 Disk Start            0000 (0)\n-6F7D84 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7D86 Ext File Attributes   00000000 (0)\n-6F7D8A Local Header Offset   005B777A (5994362)\n-6F7D8E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7D8E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7DB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7DBA   Length              0005 (5)\n-6F7DBC   Flags               01 (1) 'Modification'\n-6F7DBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7DC1 CENTRAL HEADER #1658  02014B50 (33639248)\n-6F7DC5 Created Zip Spec      14 (20) '2.0'\n-6F7DC6 Created OS            00 (0) 'MS-DOS'\n-6F7DC7 Extract Zip Spec      14 (20) '2.0'\n-6F7DC8 Extract OS            00 (0) 'MS-DOS'\n-6F7DC9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7DCB Compression Method    0000 (0) 'Stored'\n-6F7DCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7DD1 CRC                   2EDA0DE9 (786042345)\n-6F7DD5 Compressed Size       00000965 (2405)\n-6F7DD9 Uncompressed Size     00000965 (2405)\n-6F7DDD Filename Length       0020 (32)\n-6F7DDF Extra Length          0009 (9)\n-6F7DE1 Comment Length        0000 (0)\n-6F7DE3 Disk Start            0000 (0)\n-6F7DE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7DE7 Ext File Attributes   00000000 (0)\n-6F7DEB Local Header Offset   005B7D87 (5995911)\n-6F7DEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7DEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7E0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7E11   Length              0005 (5)\n-6F7E13   Flags               01 (1) 'Modification'\n-6F7E14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7E18 CENTRAL HEADER #1659  02014B50 (33639248)\n-6F7E1C Created Zip Spec      14 (20) '2.0'\n-6F7E1D Created OS            00 (0) 'MS-DOS'\n-6F7E1E Extract Zip Spec      14 (20) '2.0'\n-6F7E1F Extract OS            00 (0) 'MS-DOS'\n-6F7E20 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7E22 Compression Method    0000 (0) 'Stored'\n-6F7E24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7E28 CRC                   16263A19 (371603993)\n-6F7E2C Compressed Size       00000F7D (3965)\n-6F7E30 Uncompressed Size     00000F7D (3965)\n-6F7E34 Filename Length       0027 (39)\n-6F7E36 Extra Length          0009 (9)\n-6F7E38 Comment Length        0000 (0)\n-6F7E3A Disk Start            0000 (0)\n-6F7E3C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7E3E Ext File Attributes   00000000 (0)\n-6F7E42 Local Header Offset   005B8743 (5998403)\n-6F7E46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7E46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7E6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7E6F   Length              0005 (5)\n-6F7E71   Flags               01 (1) 'Modification'\n-6F7E72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7E76 CENTRAL HEADER #1660  02014B50 (33639248)\n-6F7E7A Created Zip Spec      14 (20) '2.0'\n-6F7E7B Created OS            00 (0) 'MS-DOS'\n-6F7E7C Extract Zip Spec      14 (20) '2.0'\n-6F7E7D Extract OS            00 (0) 'MS-DOS'\n-6F7E7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7E80 Compression Method    0000 (0) 'Stored'\n-6F7E82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7E86 CRC                   4A170C4C (1243024460)\n-6F7E8A Compressed Size       00000EA1 (3745)\n-6F7E8E Uncompressed Size     00000EA1 (3745)\n-6F7E92 Filename Length       0024 (36)\n-6F7E94 Extra Length          0009 (9)\n-6F7E96 Comment Length        0000 (0)\n-6F7E98 Disk Start            0000 (0)\n-6F7E9A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7E9C Ext File Attributes   00000000 (0)\n-6F7EA0 Local Header Offset   005B971E (6002462)\n-6F7EA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7EA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7EC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7ECA   Length              0005 (5)\n-6F7ECC   Flags               01 (1) 'Modification'\n-6F7ECD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7ED1 CENTRAL HEADER #1661  02014B50 (33639248)\n-6F7ED5 Created Zip Spec      14 (20) '2.0'\n-6F7ED6 Created OS            00 (0) 'MS-DOS'\n-6F7ED7 Extract Zip Spec      14 (20) '2.0'\n-6F7ED8 Extract OS            00 (0) 'MS-DOS'\n-6F7ED9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7EDB Compression Method    0000 (0) 'Stored'\n-6F7EDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7EE1 CRC                   D1AB43CA (3517662154)\n-6F7EE5 Compressed Size       00000377 (887)\n-6F7EE9 Uncompressed Size     00000377 (887)\n-6F7EED Filename Length       0024 (36)\n-6F7EEF Extra Length          0009 (9)\n-6F7EF1 Comment Length        0000 (0)\n-6F7EF3 Disk Start            0000 (0)\n-6F7EF5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7EF7 Ext File Attributes   00000000 (0)\n-6F7EFB Local Header Offset   005BA61A (6006298)\n-6F7EFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7EFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7F23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7F25   Length              0005 (5)\n-6F7F27   Flags               01 (1) 'Modification'\n-6F7F28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7F2C CENTRAL HEADER #1662  02014B50 (33639248)\n-6F7F30 Created Zip Spec      14 (20) '2.0'\n-6F7F31 Created OS            00 (0) 'MS-DOS'\n-6F7F32 Extract Zip Spec      14 (20) '2.0'\n-6F7F33 Extract OS            00 (0) 'MS-DOS'\n-6F7F34 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7F36 Compression Method    0000 (0) 'Stored'\n-6F7F38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7F3C CRC                   19B4DE27 (431283751)\n-6F7F40 Compressed Size       000005D1 (1489)\n-6F7F44 Uncompressed Size     000005D1 (1489)\n-6F7F48 Filename Length       0021 (33)\n-6F7F4A Extra Length          0009 (9)\n-6F7F4C Comment Length        0000 (0)\n-6F7F4E Disk Start            0000 (0)\n-6F7F50 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7F52 Ext File Attributes   00000000 (0)\n-6F7F56 Local Header Offset   005BA9EC (6007276)\n-6F7F5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7F5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7F7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7F7D   Length              0005 (5)\n-6F7F7F   Flags               01 (1) 'Modification'\n-6F7F80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7F84 CENTRAL HEADER #1663  02014B50 (33639248)\n-6F7F88 Created Zip Spec      14 (20) '2.0'\n-6F7F89 Created OS            00 (0) 'MS-DOS'\n-6F7F8A Extract Zip Spec      14 (20) '2.0'\n-6F7F8B Extract OS            00 (0) 'MS-DOS'\n-6F7F8C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7F8E Compression Method    0000 (0) 'Stored'\n-6F7F90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7F94 CRC                   D82F1E47 (3626966599)\n-6F7F98 Compressed Size       0000059A (1434)\n-6F7F9C Uncompressed Size     0000059A (1434)\n-6F7FA0 Filename Length       0029 (41)\n-6F7FA2 Extra Length          0009 (9)\n-6F7FA4 Comment Length        0000 (0)\n-6F7FA6 Disk Start            0000 (0)\n-6F7FA8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F7FAA Ext File Attributes   00000000 (0)\n-6F7FAE Local Header Offset   005BB015 (6008853)\n-6F7FB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F7FB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F7FDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F7FDD   Length              0005 (5)\n-6F7FDF   Flags               01 (1) 'Modification'\n-6F7FE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F7FE4 CENTRAL HEADER #1664  02014B50 (33639248)\n-6F7FE8 Created Zip Spec      14 (20) '2.0'\n-6F7FE9 Created OS            00 (0) 'MS-DOS'\n-6F7FEA Extract Zip Spec      14 (20) '2.0'\n-6F7FEB Extract OS            00 (0) 'MS-DOS'\n-6F7FEC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F7FEE Compression Method    0000 (0) 'Stored'\n-6F7FF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F7FF4 CRC                   2BFDB64A (738047562)\n-6F7FF8 Compressed Size       000007D0 (2000)\n-6F7FFC Uncompressed Size     000007D0 (2000)\n-6F8000 Filename Length       002A (42)\n-6F8002 Extra Length          0009 (9)\n-6F8004 Comment Length        0000 (0)\n-6F8006 Disk Start            0000 (0)\n-6F8008 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F800A Ext File Attributes   00000000 (0)\n-6F800E Local Header Offset   005BB60F (6010383)\n-6F8012 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8012: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F803C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F803E   Length              0005 (5)\n-6F8040   Flags               01 (1) 'Modification'\n-6F8041   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8045 CENTRAL HEADER #1665  02014B50 (33639248)\n-6F8049 Created Zip Spec      14 (20) '2.0'\n-6F804A Created OS            00 (0) 'MS-DOS'\n-6F804B Extract Zip Spec      14 (20) '2.0'\n-6F804C Extract OS            00 (0) 'MS-DOS'\n-6F804D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F804F Compression Method    0000 (0) 'Stored'\n-6F8051 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8055 CRC                   CCB43BAA (3434363818)\n-6F8059 Compressed Size       00000DF0 (3568)\n-6F805D Uncompressed Size     00000DF0 (3568)\n-6F8061 Filename Length       0022 (34)\n-6F8063 Extra Length          0009 (9)\n-6F8065 Comment Length        0000 (0)\n-6F8067 Disk Start            0000 (0)\n-6F8069 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F806B Ext File Attributes   00000000 (0)\n-6F806F Local Header Offset   005BBE40 (6012480)\n-6F8073 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8073: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8095 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8097   Length              0005 (5)\n-6F8099   Flags               01 (1) 'Modification'\n-6F809A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F809E CENTRAL HEADER #1666  02014B50 (33639248)\n-6F80A2 Created Zip Spec      14 (20) '2.0'\n-6F80A3 Created OS            00 (0) 'MS-DOS'\n-6F80A4 Extract Zip Spec      14 (20) '2.0'\n-6F80A5 Extract OS            00 (0) 'MS-DOS'\n-6F80A6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F80A8 Compression Method    0000 (0) 'Stored'\n-6F80AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F80AE CRC                   0D33E2B2 (221504178)\n-6F80B2 Compressed Size       000005CC (1484)\n-6F80B6 Uncompressed Size     000005CC (1484)\n-6F80BA Filename Length       0028 (40)\n-6F80BC Extra Length          0009 (9)\n-6F80BE Comment Length        0000 (0)\n-6F80C0 Disk Start            0000 (0)\n-6F80C2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F80C4 Ext File Attributes   00000000 (0)\n-6F80C8 Local Header Offset   005BCC89 (6016137)\n-6F80CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F80CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F80F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F80F6   Length              0005 (5)\n-6F80F8   Flags               01 (1) 'Modification'\n-6F80F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F80FD CENTRAL HEADER #1667  02014B50 (33639248)\n-6F8101 Created Zip Spec      14 (20) '2.0'\n-6F8102 Created OS            00 (0) 'MS-DOS'\n-6F8103 Extract Zip Spec      14 (20) '2.0'\n-6F8104 Extract OS            00 (0) 'MS-DOS'\n-6F8105 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8107 Compression Method    0000 (0) 'Stored'\n-6F8109 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F810D CRC                   319BF765 (832304997)\n-6F8111 Compressed Size       000006DD (1757)\n-6F8115 Uncompressed Size     000006DD (1757)\n-6F8119 Filename Length       0026 (38)\n-6F811B Extra Length          0009 (9)\n-6F811D Comment Length        0000 (0)\n-6F811F Disk Start            0000 (0)\n-6F8121 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8123 Ext File Attributes   00000000 (0)\n-6F8127 Local Header Offset   005BD2B4 (6017716)\n-6F812B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F812B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8151 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8153   Length              0005 (5)\n-6F8155   Flags               01 (1) 'Modification'\n-6F8156   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F815A CENTRAL HEADER #1668  02014B50 (33639248)\n-6F815E Created Zip Spec      14 (20) '2.0'\n-6F815F Created OS            00 (0) 'MS-DOS'\n-6F8160 Extract Zip Spec      14 (20) '2.0'\n-6F8161 Extract OS            00 (0) 'MS-DOS'\n-6F8162 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8164 Compression Method    0000 (0) 'Stored'\n-6F8166 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F816A CRC                   7799251E (2006525214)\n-6F816E Compressed Size       00001541 (5441)\n-6F8172 Uncompressed Size     00001541 (5441)\n-6F8176 Filename Length       0020 (32)\n-6F8178 Extra Length          0009 (9)\n-6F817A Comment Length        0000 (0)\n-6F817C Disk Start            0000 (0)\n-6F817E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8180 Ext File Attributes   00000000 (0)\n-6F8184 Local Header Offset   005BD9EE (6019566)\n-6F8188 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8188: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F81A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F81AA   Length              0005 (5)\n-6F81AC   Flags               01 (1) 'Modification'\n-6F81AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F81B1 CENTRAL HEADER #1669  02014B50 (33639248)\n-6F81B5 Created Zip Spec      14 (20) '2.0'\n-6F81B6 Created OS            00 (0) 'MS-DOS'\n-6F81B7 Extract Zip Spec      14 (20) '2.0'\n-6F81B8 Extract OS            00 (0) 'MS-DOS'\n-6F81B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F81BB Compression Method    0000 (0) 'Stored'\n-6F81BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F81C1 CRC                   3BFD1345 (1006441285)\n-6F81C5 Compressed Size       0000059E (1438)\n-6F81C9 Uncompressed Size     0000059E (1438)\n-6F81CD Filename Length       0026 (38)\n-6F81CF Extra Length          0009 (9)\n-6F81D1 Comment Length        0000 (0)\n-6F81D3 Disk Start            0000 (0)\n-6F81D5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F81D7 Ext File Attributes   00000000 (0)\n-6F81DB Local Header Offset   005BEF86 (6025094)\n-6F81DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F81DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8205 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8207   Length              0005 (5)\n-6F8209   Flags               01 (1) 'Modification'\n-6F820A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F820E CENTRAL HEADER #1670  02014B50 (33639248)\n-6F8212 Created Zip Spec      14 (20) '2.0'\n-6F8213 Created OS            00 (0) 'MS-DOS'\n-6F8214 Extract Zip Spec      14 (20) '2.0'\n-6F8215 Extract OS            00 (0) 'MS-DOS'\n-6F8216 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8218 Compression Method    0000 (0) 'Stored'\n-6F821A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F821E CRC                   8B2B5BC6 (2334874566)\n-6F8222 Compressed Size       00005703 (22275)\n-6F8226 Uncompressed Size     00005703 (22275)\n-6F822A Filename Length       0024 (36)\n-6F822C Extra Length          0009 (9)\n-6F822E Comment Length        0000 (0)\n-6F8230 Disk Start            0000 (0)\n-6F8232 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8234 Ext File Attributes   00000000 (0)\n-6F8238 Local Header Offset   005BF581 (6026625)\n-6F823C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F823C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8260 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8262   Length              0005 (5)\n-6F8264   Flags               01 (1) 'Modification'\n-6F8265   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8269 CENTRAL HEADER #1671  02014B50 (33639248)\n-6F826D Created Zip Spec      14 (20) '2.0'\n-6F826E Created OS            00 (0) 'MS-DOS'\n-6F826F Extract Zip Spec      14 (20) '2.0'\n-6F8270 Extract OS            00 (0) 'MS-DOS'\n-6F8271 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8273 Compression Method    0000 (0) 'Stored'\n-6F8275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8279 CRC                   D96AD9D5 (3647658453)\n-6F827D Compressed Size       00000D23 (3363)\n-6F8281 Uncompressed Size     00000D23 (3363)\n-6F8285 Filename Length       0026 (38)\n-6F8287 Extra Length          0009 (9)\n-6F8289 Comment Length        0000 (0)\n-6F828B Disk Start            0000 (0)\n-6F828D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F828F Ext File Attributes   00000000 (0)\n-6F8293 Local Header Offset   005C4CDF (6048991)\n-6F8297 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8297: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F82BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F82BF   Length              0005 (5)\n-6F82C1   Flags               01 (1) 'Modification'\n-6F82C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F82C6 CENTRAL HEADER #1672  02014B50 (33639248)\n-6F82CA Created Zip Spec      14 (20) '2.0'\n-6F82CB Created OS            00 (0) 'MS-DOS'\n-6F82CC Extract Zip Spec      14 (20) '2.0'\n-6F82CD Extract OS            00 (0) 'MS-DOS'\n-6F82CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F82D0 Compression Method    0000 (0) 'Stored'\n-6F82D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F82D6 CRC                   7D1A8DDF (2098892255)\n-6F82DA Compressed Size       00003A8A (14986)\n-6F82DE Uncompressed Size     00003A8A (14986)\n-6F82E2 Filename Length       0027 (39)\n-6F82E4 Extra Length          0009 (9)\n-6F82E6 Comment Length        0000 (0)\n-6F82E8 Disk Start            0000 (0)\n-6F82EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F82EC Ext File Attributes   00000000 (0)\n-6F82F0 Local Header Offset   005C5A5F (6052447)\n-6F82F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F82F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F831B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F831D   Length              0005 (5)\n-6F831F   Flags               01 (1) 'Modification'\n-6F8320   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8324 CENTRAL HEADER #1673  02014B50 (33639248)\n-6F8328 Created Zip Spec      14 (20) '2.0'\n-6F8329 Created OS            00 (0) 'MS-DOS'\n-6F832A Extract Zip Spec      14 (20) '2.0'\n-6F832B Extract OS            00 (0) 'MS-DOS'\n-6F832C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F832E Compression Method    0000 (0) 'Stored'\n-6F8330 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8334 CRC                   B577D739 (3044529977)\n-6F8338 Compressed Size       0000218E (8590)\n-6F833C Uncompressed Size     0000218E (8590)\n-6F8340 Filename Length       0023 (35)\n-6F8342 Extra Length          0009 (9)\n-6F8344 Comment Length        0000 (0)\n-6F8346 Disk Start            0000 (0)\n-6F8348 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F834A Ext File Attributes   00000000 (0)\n-6F834E Local Header Offset   005C9547 (6067527)\n-6F8352 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8352: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8375 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8377   Length              0005 (5)\n-6F8379   Flags               01 (1) 'Modification'\n-6F837A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F837E CENTRAL HEADER #1674  02014B50 (33639248)\n-6F8382 Created Zip Spec      14 (20) '2.0'\n-6F8383 Created OS            00 (0) 'MS-DOS'\n-6F8384 Extract Zip Spec      14 (20) '2.0'\n-6F8385 Extract OS            00 (0) 'MS-DOS'\n-6F8386 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8388 Compression Method    0000 (0) 'Stored'\n-6F838A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F838E CRC                   1894D2EA (412406506)\n-6F8392 Compressed Size       00000B60 (2912)\n-6F8396 Uncompressed Size     00000B60 (2912)\n-6F839A Filename Length       002A (42)\n-6F839C Extra Length          0009 (9)\n-6F839E Comment Length        0000 (0)\n-6F83A0 Disk Start            0000 (0)\n-6F83A2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F83A4 Ext File Attributes   00000000 (0)\n-6F83A8 Local Header Offset   005CB72F (6076207)\n-6F83AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F83AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F83D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F83D8   Length              0005 (5)\n-6F83DA   Flags               01 (1) 'Modification'\n-6F83DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F83DF CENTRAL HEADER #1675  02014B50 (33639248)\n-6F83E3 Created Zip Spec      14 (20) '2.0'\n-6F83E4 Created OS            00 (0) 'MS-DOS'\n-6F83E5 Extract Zip Spec      14 (20) '2.0'\n-6F83E6 Extract OS            00 (0) 'MS-DOS'\n-6F83E7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F83E9 Compression Method    0000 (0) 'Stored'\n-6F83EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F83EF CRC                   4977D9A5 (1232591269)\n-6F83F3 Compressed Size       000004A5 (1189)\n-6F83F7 Uncompressed Size     000004A5 (1189)\n-6F83FB Filename Length       0026 (38)\n-6F83FD Extra Length          0009 (9)\n-6F83FF Comment Length        0000 (0)\n-6F8401 Disk Start            0000 (0)\n-6F8403 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8405 Ext File Attributes   00000000 (0)\n-6F8409 Local Header Offset   005CC2F0 (6079216)\n-6F840D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F840D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8433 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8435   Length              0005 (5)\n-6F8437   Flags               01 (1) 'Modification'\n-6F8438   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F843C CENTRAL HEADER #1676  02014B50 (33639248)\n-6F8440 Created Zip Spec      14 (20) '2.0'\n-6F8441 Created OS            00 (0) 'MS-DOS'\n-6F8442 Extract Zip Spec      14 (20) '2.0'\n-6F8443 Extract OS            00 (0) 'MS-DOS'\n-6F8444 General Purpose Flag  0000 (0)\n-6F8446 Compression Method    0000 (0) 'Stored'\n-6F8448 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F844C CRC                   00000000 (0)\n-6F8450 Compressed Size       00000000 (0)\n-6F8454 Uncompressed Size     00000000 (0)\n-6F8458 Filename Length       001D (29)\n-6F845A Extra Length          0009 (9)\n-6F845C Comment Length        0000 (0)\n-6F845E Disk Start            0000 (0)\n-6F8460 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8462 Ext File Attributes   00000000 (0)\n-6F8466 Local Header Offset   005CC7F2 (6080498)\n-6F846A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F846A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8487 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8489   Length              0005 (5)\n-6F848B   Flags               01 (1) 'Modification'\n-6F848C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8490 CENTRAL HEADER #1677  02014B50 (33639248)\n-6F8494 Created Zip Spec      14 (20) '2.0'\n-6F8495 Created OS            00 (0) 'MS-DOS'\n-6F8496 Extract Zip Spec      14 (20) '2.0'\n-6F8497 Extract OS            00 (0) 'MS-DOS'\n-6F8498 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F849A Compression Method    0000 (0) 'Stored'\n-6F849C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F84A0 CRC                   8DDA999F (2379913631)\n-6F84A4 Compressed Size       000005F6 (1526)\n-6F84A8 Uncompressed Size     000005F6 (1526)\n-6F84AC Filename Length       0038 (56)\n-6F84AE Extra Length          0009 (9)\n-6F84B0 Comment Length        0000 (0)\n-6F84B2 Disk Start            0000 (0)\n-6F84B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F84B6 Ext File Attributes   00000000 (0)\n-6F84BA Local Header Offset   005CC836 (6080566)\n-6F84BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F84BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F84F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F84F8   Length              0005 (5)\n-6F84FA   Flags               01 (1) 'Modification'\n-6F84FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F84FF CENTRAL HEADER #1678  02014B50 (33639248)\n-6F8503 Created Zip Spec      14 (20) '2.0'\n-6F8504 Created OS            00 (0) 'MS-DOS'\n-6F8505 Extract Zip Spec      14 (20) '2.0'\n-6F8506 Extract OS            00 (0) 'MS-DOS'\n-6F8507 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8509 Compression Method    0000 (0) 'Stored'\n-6F850B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F850F CRC                   27965EEA (664166122)\n-6F8513 Compressed Size       00000824 (2084)\n-6F8517 Uncompressed Size     00000824 (2084)\n-6F851B Filename Length       0029 (41)\n-6F851D Extra Length          0009 (9)\n-6F851F Comment Length        0000 (0)\n-6F8521 Disk Start            0000 (0)\n-6F8523 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8525 Ext File Attributes   00000000 (0)\n-6F8529 Local Header Offset   005CCE9B (6082203)\n-6F852D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F852D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8556 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8558   Length              0005 (5)\n-6F855A   Flags               01 (1) 'Modification'\n-6F855B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F855F CENTRAL HEADER #1679  02014B50 (33639248)\n-6F8563 Created Zip Spec      14 (20) '2.0'\n-6F8564 Created OS            00 (0) 'MS-DOS'\n-6F8565 Extract Zip Spec      14 (20) '2.0'\n-6F8566 Extract OS            00 (0) 'MS-DOS'\n-6F8567 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8569 Compression Method    0000 (0) 'Stored'\n-6F856B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F856F CRC                   5E2260E1 (1579311329)\n-6F8573 Compressed Size       000006CA (1738)\n-6F8577 Uncompressed Size     000006CA (1738)\n-6F857B Filename Length       0030 (48)\n-6F857D Extra Length          0009 (9)\n-6F857F Comment Length        0000 (0)\n-6F8581 Disk Start            0000 (0)\n-6F8583 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8585 Ext File Attributes   00000000 (0)\n-6F8589 Local Header Offset   005CD71F (6084383)\n-6F858D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F858D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F85BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F85BF   Length              0005 (5)\n-6F85C1   Flags               01 (1) 'Modification'\n-6F85C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F85C6 CENTRAL HEADER #1680  02014B50 (33639248)\n-6F85CA Created Zip Spec      14 (20) '2.0'\n-6F85CB Created OS            00 (0) 'MS-DOS'\n-6F85CC Extract Zip Spec      14 (20) '2.0'\n-6F85CD Extract OS            00 (0) 'MS-DOS'\n-6F85CE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F85D0 Compression Method    0000 (0) 'Stored'\n-6F85D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F85D6 CRC                   665C4504 (1717323012)\n-6F85DA Compressed Size       00001123 (4387)\n-6F85DE Uncompressed Size     00001123 (4387)\n-6F85E2 Filename Length       002E (46)\n-6F85E4 Extra Length          0009 (9)\n-6F85E6 Comment Length        0000 (0)\n-6F85E8 Disk Start            0000 (0)\n-6F85EA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F85EC Ext File Attributes   00000000 (0)\n-6F85F0 Local Header Offset   005CDE50 (6086224)\n-6F85F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F85F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8622 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8624   Length              0005 (5)\n-6F8626   Flags               01 (1) 'Modification'\n-6F8627   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F862B CENTRAL HEADER #1681  02014B50 (33639248)\n-6F862F Created Zip Spec      14 (20) '2.0'\n-6F8630 Created OS            00 (0) 'MS-DOS'\n-6F8631 Extract Zip Spec      14 (20) '2.0'\n-6F8632 Extract OS            00 (0) 'MS-DOS'\n-6F8633 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8635 Compression Method    0000 (0) 'Stored'\n-6F8637 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F863B CRC                   7FA20103 (2141323523)\n-6F863F Compressed Size       00000534 (1332)\n-6F8643 Uncompressed Size     00000534 (1332)\n-6F8647 Filename Length       0035 (53)\n-6F8649 Extra Length          0009 (9)\n-6F864B Comment Length        0000 (0)\n-6F864D Disk Start            0000 (0)\n-6F864F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8651 Ext File Attributes   00000000 (0)\n-6F8655 Local Header Offset   005CEFD8 (6090712)\n-6F8659 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8659: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F868E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8690   Length              0005 (5)\n-6F8692   Flags               01 (1) 'Modification'\n-6F8693   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8697 CENTRAL HEADER #1682  02014B50 (33639248)\n-6F869B Created Zip Spec      14 (20) '2.0'\n-6F869C Created OS            00 (0) 'MS-DOS'\n-6F869D Extract Zip Spec      14 (20) '2.0'\n-6F869E Extract OS            00 (0) 'MS-DOS'\n-6F869F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F86A1 Compression Method    0000 (0) 'Stored'\n-6F86A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F86A7 CRC                   EE5647F1 (3998631921)\n-6F86AB Compressed Size       00000B10 (2832)\n-6F86AF Uncompressed Size     00000B10 (2832)\n-6F86B3 Filename Length       002B (43)\n-6F86B5 Extra Length          0009 (9)\n-6F86B7 Comment Length        0000 (0)\n-6F86B9 Disk Start            0000 (0)\n-6F86BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F86BD Ext File Attributes   00000000 (0)\n-6F86C1 Local Header Offset   005CF578 (6092152)\n-6F86C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F86C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F86F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F86F2   Length              0005 (5)\n-6F86F4   Flags               01 (1) 'Modification'\n-6F86F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F86F9 CENTRAL HEADER #1683  02014B50 (33639248)\n-6F86FD Created Zip Spec      14 (20) '2.0'\n-6F86FE Created OS            00 (0) 'MS-DOS'\n-6F86FF Extract Zip Spec      14 (20) '2.0'\n-6F8700 Extract OS            00 (0) 'MS-DOS'\n-6F8701 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8703 Compression Method    0000 (0) 'Stored'\n-6F8705 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8709 CRC                   2FCAE9BB (801827259)\n-6F870D Compressed Size       000006CA (1738)\n-6F8711 Uncompressed Size     000006CA (1738)\n-6F8715 Filename Length       002B (43)\n-6F8717 Extra Length          0009 (9)\n-6F8719 Comment Length        0000 (0)\n-6F871B Disk Start            0000 (0)\n-6F871D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F871F Ext File Attributes   00000000 (0)\n-6F8723 Local Header Offset   005D00EA (6095082)\n-6F8727 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8727: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8752 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8754   Length              0005 (5)\n-6F8756   Flags               01 (1) 'Modification'\n-6F8757   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F875B CENTRAL HEADER #1684  02014B50 (33639248)\n-6F875F Created Zip Spec      14 (20) '2.0'\n-6F8760 Created OS            00 (0) 'MS-DOS'\n-6F8761 Extract Zip Spec      14 (20) '2.0'\n-6F8762 Extract OS            00 (0) 'MS-DOS'\n-6F8763 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8765 Compression Method    0000 (0) 'Stored'\n-6F8767 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F876B CRC                   2EFAFE2D (788201005)\n-6F876F Compressed Size       00000732 (1842)\n-6F8773 Uncompressed Size     00000732 (1842)\n-6F8777 Filename Length       002D (45)\n-6F8779 Extra Length          0009 (9)\n-6F877B Comment Length        0000 (0)\n-6F877D Disk Start            0000 (0)\n-6F877F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8781 Ext File Attributes   00000000 (0)\n-6F8785 Local Header Offset   005D0816 (6096918)\n-6F8789 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8789: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F87B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F87B8   Length              0005 (5)\n-6F87BA   Flags               01 (1) 'Modification'\n-6F87BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F87BF CENTRAL HEADER #1685  02014B50 (33639248)\n-6F87C3 Created Zip Spec      14 (20) '2.0'\n-6F87C4 Created OS            00 (0) 'MS-DOS'\n-6F87C5 Extract Zip Spec      14 (20) '2.0'\n-6F87C6 Extract OS            00 (0) 'MS-DOS'\n-6F87C7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F87C9 Compression Method    0000 (0) 'Stored'\n-6F87CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F87CF CRC                   09ED5602 (166548994)\n-6F87D3 Compressed Size       000003D1 (977)\n-6F87D7 Uncompressed Size     000003D1 (977)\n-6F87DB Filename Length       0028 (40)\n-6F87DD Extra Length          0009 (9)\n-6F87DF Comment Length        0000 (0)\n-6F87E1 Disk Start            0000 (0)\n-6F87E3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F87E5 Ext File Attributes   00000000 (0)\n-6F87E9 Local Header Offset   005D0FAC (6098860)\n-6F87ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F87ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8815 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8817   Length              0005 (5)\n-6F8819   Flags               01 (1) 'Modification'\n-6F881A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F881E CENTRAL HEADER #1686  02014B50 (33639248)\n-6F8822 Created Zip Spec      14 (20) '2.0'\n-6F8823 Created OS            00 (0) 'MS-DOS'\n-6F8824 Extract Zip Spec      14 (20) '2.0'\n-6F8825 Extract OS            00 (0) 'MS-DOS'\n-6F8826 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8828 Compression Method    0000 (0) 'Stored'\n-6F882A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F882E CRC                   58C25CA8 (1489132712)\n-6F8832 Compressed Size       00000CF3 (3315)\n-6F8836 Uncompressed Size     00000CF3 (3315)\n-6F883A Filename Length       0028 (40)\n-6F883C Extra Length          0009 (9)\n-6F883E Comment Length        0000 (0)\n-6F8840 Disk Start            0000 (0)\n-6F8842 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8844 Ext File Attributes   00000000 (0)\n-6F8848 Local Header Offset   005D13DC (6099932)\n-6F884C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F884C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8874 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8876   Length              0005 (5)\n-6F8878   Flags               01 (1) 'Modification'\n-6F8879   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F887D CENTRAL HEADER #1687  02014B50 (33639248)\n-6F8881 Created Zip Spec      14 (20) '2.0'\n-6F8882 Created OS            00 (0) 'MS-DOS'\n-6F8883 Extract Zip Spec      14 (20) '2.0'\n-6F8884 Extract OS            00 (0) 'MS-DOS'\n-6F8885 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8887 Compression Method    0000 (0) 'Stored'\n-6F8889 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F888D CRC                   AC72FCB3 (2893216947)\n-6F8891 Compressed Size       00001018 (4120)\n-6F8895 Uncompressed Size     00001018 (4120)\n-6F8899 Filename Length       002D (45)\n-6F889B Extra Length          0009 (9)\n-6F889D Comment Length        0000 (0)\n-6F889F Disk Start            0000 (0)\n-6F88A1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F88A3 Ext File Attributes   00000000 (0)\n-6F88A7 Local Header Offset   005D212E (6103342)\n-6F88AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F88AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F88D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F88DA   Length              0005 (5)\n-6F88DC   Flags               01 (1) 'Modification'\n-6F88DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F88E1 CENTRAL HEADER #1688  02014B50 (33639248)\n-6F88E5 Created Zip Spec      14 (20) '2.0'\n-6F88E6 Created OS            00 (0) 'MS-DOS'\n-6F88E7 Extract Zip Spec      14 (20) '2.0'\n-6F88E8 Extract OS            00 (0) 'MS-DOS'\n-6F88E9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F88EB Compression Method    0000 (0) 'Stored'\n-6F88ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F88F1 CRC                   FDB2D35D (4256355165)\n-6F88F5 Compressed Size       00000759 (1881)\n-6F88F9 Uncompressed Size     00000759 (1881)\n-6F88FD Filename Length       002F (47)\n-6F88FF Extra Length          0009 (9)\n-6F8901 Comment Length        0000 (0)\n-6F8903 Disk Start            0000 (0)\n-6F8905 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8907 Ext File Attributes   00000000 (0)\n-6F890B Local Header Offset   005D31AA (6107562)\n-6F890F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F890F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F893E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8940   Length              0005 (5)\n-6F8942   Flags               01 (1) 'Modification'\n-6F8943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8947 CENTRAL HEADER #1689  02014B50 (33639248)\n-6F894B Created Zip Spec      14 (20) '2.0'\n-6F894C Created OS            00 (0) 'MS-DOS'\n-6F894D Extract Zip Spec      14 (20) '2.0'\n-6F894E Extract OS            00 (0) 'MS-DOS'\n-6F894F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8951 Compression Method    0000 (0) 'Stored'\n-6F8953 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8957 CRC                   BC987223 (3164107299)\n-6F895B Compressed Size       00000435 (1077)\n-6F895F Uncompressed Size     00000435 (1077)\n-6F8963 Filename Length       002F (47)\n-6F8965 Extra Length          0009 (9)\n-6F8967 Comment Length        0000 (0)\n-6F8969 Disk Start            0000 (0)\n-6F896B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F896D Ext File Attributes   00000000 (0)\n-6F8971 Local Header Offset   005D3969 (6109545)\n-6F8975 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8975: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F89A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F89A6   Length              0005 (5)\n-6F89A8   Flags               01 (1) 'Modification'\n-6F89A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F89AD CENTRAL HEADER #1690  02014B50 (33639248)\n-6F89B1 Created Zip Spec      14 (20) '2.0'\n-6F89B2 Created OS            00 (0) 'MS-DOS'\n-6F89B3 Extract Zip Spec      14 (20) '2.0'\n-6F89B4 Extract OS            00 (0) 'MS-DOS'\n-6F89B5 General Purpose Flag  0000 (0)\n-6F89B7 Compression Method    0000 (0) 'Stored'\n-6F89B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F89BD CRC                   00000000 (0)\n-6F89C1 Compressed Size       00000000 (0)\n-6F89C5 Uncompressed Size     00000000 (0)\n-6F89C9 Filename Length       002A (42)\n-6F89CB Extra Length          0009 (9)\n-6F89CD Comment Length        0000 (0)\n-6F89CF Disk Start            0000 (0)\n-6F89D1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F89D3 Ext File Attributes   00000000 (0)\n-6F89D7 Local Header Offset   005D3E04 (6110724)\n-6F89DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F89DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8A05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8A07   Length              0005 (5)\n-6F8A09   Flags               01 (1) 'Modification'\n-6F8A0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8A0E CENTRAL HEADER #1691  02014B50 (33639248)\n-6F8A12 Created Zip Spec      14 (20) '2.0'\n-6F8A13 Created OS            00 (0) 'MS-DOS'\n-6F8A14 Extract Zip Spec      14 (20) '2.0'\n-6F8A15 Extract OS            00 (0) 'MS-DOS'\n-6F8A16 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8A18 Compression Method    0000 (0) 'Stored'\n-6F8A1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8A1E CRC                   91868A4C (2441513548)\n-6F8A22 Compressed Size       00002146 (8518)\n-6F8A26 Uncompressed Size     00002146 (8518)\n-6F8A2A Filename Length       0043 (67)\n-6F8A2C Extra Length          0009 (9)\n-6F8A2E Comment Length        0000 (0)\n-6F8A30 Disk Start            0000 (0)\n-6F8A32 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8A34 Ext File Attributes   00000000 (0)\n-6F8A38 Local Header Offset   005D3E55 (6110805)\n-6F8A3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8A3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8A7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8A81   Length              0005 (5)\n-6F8A83   Flags               01 (1) 'Modification'\n-6F8A84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8A88 CENTRAL HEADER #1692  02014B50 (33639248)\n-6F8A8C Created Zip Spec      14 (20) '2.0'\n-6F8A8D Created OS            00 (0) 'MS-DOS'\n-6F8A8E Extract Zip Spec      14 (20) '2.0'\n-6F8A8F Extract OS            00 (0) 'MS-DOS'\n-6F8A90 General Purpose Flag  0000 (0)\n-6F8A92 Compression Method    0000 (0) 'Stored'\n-6F8A94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8A98 CRC                   00000000 (0)\n-6F8A9C Compressed Size       00000000 (0)\n-6F8AA0 Uncompressed Size     00000000 (0)\n-6F8AA4 Filename Length       0031 (49)\n-6F8AA6 Extra Length          0009 (9)\n-6F8AA8 Comment Length        0000 (0)\n-6F8AAA Disk Start            0000 (0)\n-6F8AAC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8AAE Ext File Attributes   00000000 (0)\n-6F8AB2 Local Header Offset   005D6015 (6119445)\n-6F8AB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8AB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8AE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8AE9   Length              0005 (5)\n-6F8AEB   Flags               01 (1) 'Modification'\n-6F8AEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8AF0 CENTRAL HEADER #1693  02014B50 (33639248)\n-6F8AF4 Created Zip Spec      14 (20) '2.0'\n-6F8AF5 Created OS            00 (0) 'MS-DOS'\n-6F8AF6 Extract Zip Spec      14 (20) '2.0'\n-6F8AF7 Extract OS            00 (0) 'MS-DOS'\n-6F8AF8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8AFA Compression Method    0000 (0) 'Stored'\n-6F8AFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8B00 CRC                   FB552F52 (4216663890)\n-6F8B04 Compressed Size       00000532 (1330)\n-6F8B08 Uncompressed Size     00000532 (1330)\n-6F8B0C Filename Length       0048 (72)\n-6F8B0E Extra Length          0009 (9)\n-6F8B10 Comment Length        0000 (0)\n-6F8B12 Disk Start            0000 (0)\n-6F8B14 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8B16 Ext File Attributes   00000000 (0)\n-6F8B1A Local Header Offset   005D606D (6119533)\n-6F8B1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8B1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8B66 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8B68   Length              0005 (5)\n-6F8B6A   Flags               01 (1) 'Modification'\n-6F8B6B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8B6F CENTRAL HEADER #1694  02014B50 (33639248)\n-6F8B73 Created Zip Spec      14 (20) '2.0'\n-6F8B74 Created OS            00 (0) 'MS-DOS'\n-6F8B75 Extract Zip Spec      14 (20) '2.0'\n-6F8B76 Extract OS            00 (0) 'MS-DOS'\n-6F8B77 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8B79 Compression Method    0000 (0) 'Stored'\n-6F8B7B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8B7F CRC                   87AAF61F (2276128287)\n-6F8B83 Compressed Size       000004F6 (1270)\n-6F8B87 Uncompressed Size     000004F6 (1270)\n-6F8B8B Filename Length       004F (79)\n-6F8B8D Extra Length          0009 (9)\n-6F8B8F Comment Length        0000 (0)\n-6F8B91 Disk Start            0000 (0)\n-6F8B93 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8B95 Ext File Attributes   00000000 (0)\n-6F8B99 Local Header Offset   005D661E (6120990)\n-6F8B9D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8B9D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8BEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8BEE   Length              0005 (5)\n-6F8BF0   Flags               01 (1) 'Modification'\n-6F8BF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8BF5 CENTRAL HEADER #1695  02014B50 (33639248)\n-6F8BF9 Created Zip Spec      14 (20) '2.0'\n-6F8BFA Created OS            00 (0) 'MS-DOS'\n-6F8BFB Extract Zip Spec      14 (20) '2.0'\n-6F8BFC Extract OS            00 (0) 'MS-DOS'\n-6F8BFD General Purpose Flag  0000 (0)\n-6F8BFF Compression Method    0000 (0) 'Stored'\n-6F8C01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8C05 CRC                   00000000 (0)\n-6F8C09 Compressed Size       00000000 (0)\n-6F8C0D Uncompressed Size     00000000 (0)\n-6F8C11 Filename Length       0033 (51)\n-6F8C13 Extra Length          0009 (9)\n-6F8C15 Comment Length        0000 (0)\n-6F8C17 Disk Start            0000 (0)\n-6F8C19 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8C1B Ext File Attributes   00000000 (0)\n-6F8C1F Local Header Offset   005D6B9A (6122394)\n-6F8C23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8C23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8C56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8C58   Length              0005 (5)\n-6F8C5A   Flags               01 (1) 'Modification'\n-6F8C5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8C5F CENTRAL HEADER #1696  02014B50 (33639248)\n-6F8C63 Created Zip Spec      14 (20) '2.0'\n-6F8C64 Created OS            00 (0) 'MS-DOS'\n-6F8C65 Extract Zip Spec      14 (20) '2.0'\n-6F8C66 Extract OS            00 (0) 'MS-DOS'\n-6F8C67 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8C69 Compression Method    0000 (0) 'Stored'\n-6F8C6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8C6F CRC                   267D653A (645752122)\n-6F8C73 Compressed Size       00000532 (1330)\n-6F8C77 Uncompressed Size     00000532 (1330)\n-6F8C7B Filename Length       004C (76)\n-6F8C7D Extra Length          0009 (9)\n-6F8C7F Comment Length        0000 (0)\n-6F8C81 Disk Start            0000 (0)\n-6F8C83 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8C85 Ext File Attributes   00000000 (0)\n-6F8C89 Local Header Offset   005D6BF4 (6122484)\n-6F8C8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8C8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8CD9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8CDB   Length              0005 (5)\n-6F8CDD   Flags               01 (1) 'Modification'\n-6F8CDE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8CE2 CENTRAL HEADER #1697  02014B50 (33639248)\n-6F8CE6 Created Zip Spec      14 (20) '2.0'\n-6F8CE7 Created OS            00 (0) 'MS-DOS'\n-6F8CE8 Extract Zip Spec      14 (20) '2.0'\n-6F8CE9 Extract OS            00 (0) 'MS-DOS'\n-6F8CEA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8CEC Compression Method    0000 (0) 'Stored'\n-6F8CEE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8CF2 CRC                   2179F10E (561639694)\n-6F8CF6 Compressed Size       000004FE (1278)\n-6F8CFA Uncompressed Size     000004FE (1278)\n-6F8CFE Filename Length       0053 (83)\n-6F8D00 Extra Length          0009 (9)\n-6F8D02 Comment Length        0000 (0)\n-6F8D04 Disk Start            0000 (0)\n-6F8D06 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8D08 Ext File Attributes   00000000 (0)\n-6F8D0C Local Header Offset   005D71A9 (6123945)\n-6F8D10 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8D10: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8D63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8D65   Length              0005 (5)\n-6F8D67   Flags               01 (1) 'Modification'\n-6F8D68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8D6C CENTRAL HEADER #1698  02014B50 (33639248)\n-6F8D70 Created Zip Spec      14 (20) '2.0'\n-6F8D71 Created OS            00 (0) 'MS-DOS'\n-6F8D72 Extract Zip Spec      14 (20) '2.0'\n-6F8D73 Extract OS            00 (0) 'MS-DOS'\n-6F8D74 General Purpose Flag  0000 (0)\n-6F8D76 Compression Method    0000 (0) 'Stored'\n-6F8D78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8D7C CRC                   00000000 (0)\n-6F8D80 Compressed Size       00000000 (0)\n-6F8D84 Uncompressed Size     00000000 (0)\n-6F8D88 Filename Length       0031 (49)\n-6F8D8A Extra Length          0009 (9)\n-6F8D8C Comment Length        0000 (0)\n-6F8D8E Disk Start            0000 (0)\n-6F8D90 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8D92 Ext File Attributes   00000000 (0)\n-6F8D96 Local Header Offset   005D7731 (6125361)\n-6F8D9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8D9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8DCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8DCD   Length              0005 (5)\n-6F8DCF   Flags               01 (1) 'Modification'\n-6F8DD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8DD4 CENTRAL HEADER #1699  02014B50 (33639248)\n-6F8DD8 Created Zip Spec      14 (20) '2.0'\n-6F8DD9 Created OS            00 (0) 'MS-DOS'\n-6F8DDA Extract Zip Spec      14 (20) '2.0'\n-6F8DDB Extract OS            00 (0) 'MS-DOS'\n-6F8DDC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8DDE Compression Method    0000 (0) 'Stored'\n-6F8DE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8DE4 CRC                   AF4730A5 (2940678309)\n-6F8DE8 Compressed Size       00002151 (8529)\n-6F8DEC Uncompressed Size     00002151 (8529)\n-6F8DF0 Filename Length       0042 (66)\n-6F8DF2 Extra Length          0009 (9)\n-6F8DF4 Comment Length        0000 (0)\n-6F8DF6 Disk Start            0000 (0)\n-6F8DF8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8DFA Ext File Attributes   00000000 (0)\n-6F8DFE Local Header Offset   005D7789 (6125449)\n-6F8E02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8E02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8E44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8E46   Length              0005 (5)\n-6F8E48   Flags               01 (1) 'Modification'\n-6F8E49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8E4D CENTRAL HEADER #1700  02014B50 (33639248)\n-6F8E51 Created Zip Spec      14 (20) '2.0'\n-6F8E52 Created OS            00 (0) 'MS-DOS'\n-6F8E53 Extract Zip Spec      14 (20) '2.0'\n-6F8E54 Extract OS            00 (0) 'MS-DOS'\n-6F8E55 General Purpose Flag  0000 (0)\n-6F8E57 Compression Method    0000 (0) 'Stored'\n-6F8E59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8E5D CRC                   00000000 (0)\n-6F8E61 Compressed Size       00000000 (0)\n-6F8E65 Uncompressed Size     00000000 (0)\n-6F8E69 Filename Length       0037 (55)\n-6F8E6B Extra Length          0009 (9)\n-6F8E6D Comment Length        0000 (0)\n-6F8E6F Disk Start            0000 (0)\n-6F8E71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8E73 Ext File Attributes   00000000 (0)\n-6F8E77 Local Header Offset   005D9953 (6134099)\n-6F8E7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8E7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8EB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8EB4   Length              0005 (5)\n-6F8EB6   Flags               01 (1) 'Modification'\n-6F8EB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8EBB CENTRAL HEADER #1701  02014B50 (33639248)\n-6F8EBF Created Zip Spec      14 (20) '2.0'\n-6F8EC0 Created OS            00 (0) 'MS-DOS'\n-6F8EC1 Extract Zip Spec      14 (20) '2.0'\n-6F8EC2 Extract OS            00 (0) 'MS-DOS'\n-6F8EC3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8EC5 Compression Method    0000 (0) 'Stored'\n-6F8EC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8ECB CRC                   036D4C42 (57494594)\n-6F8ECF Compressed Size       00000B63 (2915)\n-6F8ED3 Uncompressed Size     00000B63 (2915)\n-6F8ED7 Filename Length       0046 (70)\n-6F8ED9 Extra Length          0009 (9)\n-6F8EDB Comment Length        0000 (0)\n-6F8EDD Disk Start            0000 (0)\n-6F8EDF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8EE1 Ext File Attributes   00000000 (0)\n-6F8EE5 Local Header Offset   005D99B1 (6134193)\n-6F8EE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8EE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8F2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8F31   Length              0005 (5)\n-6F8F33   Flags               01 (1) 'Modification'\n-6F8F34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8F38 CENTRAL HEADER #1702  02014B50 (33639248)\n-6F8F3C Created Zip Spec      14 (20) '2.0'\n-6F8F3D Created OS            00 (0) 'MS-DOS'\n-6F8F3E Extract Zip Spec      14 (20) '2.0'\n-6F8F3F Extract OS            00 (0) 'MS-DOS'\n-6F8F40 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F8F42 Compression Method    0000 (0) 'Stored'\n-6F8F44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8F48 CRC                   27E35EC9 (669212361)\n-6F8F4C Compressed Size       0000080A (2058)\n-6F8F50 Uncompressed Size     0000080A (2058)\n-6F8F54 Filename Length       004E (78)\n-6F8F56 Extra Length          0009 (9)\n-6F8F58 Comment Length        0000 (0)\n-6F8F5A Disk Start            0000 (0)\n-6F8F5C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8F5E Ext File Attributes   00000000 (0)\n-6F8F62 Local Header Offset   005DA591 (6137233)\n-6F8F66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8F66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F8FB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F8FB6   Length              0005 (5)\n-6F8FB8   Flags               01 (1) 'Modification'\n-6F8FB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F8FBD CENTRAL HEADER #1703  02014B50 (33639248)\n-6F8FC1 Created Zip Spec      14 (20) '2.0'\n-6F8FC2 Created OS            00 (0) 'MS-DOS'\n-6F8FC3 Extract Zip Spec      14 (20) '2.0'\n-6F8FC4 Extract OS            00 (0) 'MS-DOS'\n-6F8FC5 General Purpose Flag  0000 (0)\n-6F8FC7 Compression Method    0000 (0) 'Stored'\n-6F8FC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F8FCD CRC                   00000000 (0)\n-6F8FD1 Compressed Size       00000000 (0)\n-6F8FD5 Uncompressed Size     00000000 (0)\n-6F8FD9 Filename Length       0027 (39)\n-6F8FDB Extra Length          0009 (9)\n-6F8FDD Comment Length        0000 (0)\n-6F8FDF Disk Start            0000 (0)\n-6F8FE1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F8FE3 Ext File Attributes   00000000 (0)\n-6F8FE7 Local Header Offset   005DAE20 (6139424)\n-6F8FEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F8FEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9012 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9014   Length              0005 (5)\n-6F9016   Flags               01 (1) 'Modification'\n-6F9017   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F901B CENTRAL HEADER #1704  02014B50 (33639248)\n-6F901F Created Zip Spec      14 (20) '2.0'\n-6F9020 Created OS            00 (0) 'MS-DOS'\n-6F9021 Extract Zip Spec      14 (20) '2.0'\n-6F9022 Extract OS            00 (0) 'MS-DOS'\n-6F9023 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9025 Compression Method    0000 (0) 'Stored'\n-6F9027 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F902B CRC                   469827B2 (1184376754)\n-6F902F Compressed Size       000012D4 (4820)\n-6F9033 Uncompressed Size     000012D4 (4820)\n-6F9037 Filename Length       003D (61)\n-6F9039 Extra Length          0009 (9)\n-6F903B Comment Length        0000 (0)\n-6F903D Disk Start            0000 (0)\n-6F903F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9041 Ext File Attributes   00000000 (0)\n-6F9045 Local Header Offset   005DAE6E (6139502)\n-6F9049 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9049: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9086 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9088   Length              0005 (5)\n-6F908A   Flags               01 (1) 'Modification'\n-6F908B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F908F CENTRAL HEADER #1705  02014B50 (33639248)\n-6F9093 Created Zip Spec      14 (20) '2.0'\n-6F9094 Created OS            00 (0) 'MS-DOS'\n-6F9095 Extract Zip Spec      14 (20) '2.0'\n-6F9096 Extract OS            00 (0) 'MS-DOS'\n-6F9097 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9099 Compression Method    0000 (0) 'Stored'\n-6F909B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F909F CRC                   FF9ED7FD (4288600061)\n-6F90A3 Compressed Size       00000ECB (3787)\n-6F90A7 Uncompressed Size     00000ECB (3787)\n-6F90AB Filename Length       003B (59)\n-6F90AD Extra Length          0009 (9)\n-6F90AF Comment Length        0000 (0)\n-6F90B1 Disk Start            0000 (0)\n-6F90B3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F90B5 Ext File Attributes   00000000 (0)\n-6F90B9 Local Header Offset   005DC1B6 (6144438)\n-6F90BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F90BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F90F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F90FA   Length              0005 (5)\n-6F90FC   Flags               01 (1) 'Modification'\n-6F90FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9101 CENTRAL HEADER #1706  02014B50 (33639248)\n-6F9105 Created Zip Spec      14 (20) '2.0'\n-6F9106 Created OS            00 (0) 'MS-DOS'\n-6F9107 Extract Zip Spec      14 (20) '2.0'\n-6F9108 Extract OS            00 (0) 'MS-DOS'\n-6F9109 General Purpose Flag  0000 (0)\n-6F910B Compression Method    0000 (0) 'Stored'\n-6F910D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9111 CRC                   00000000 (0)\n-6F9115 Compressed Size       00000000 (0)\n-6F9119 Uncompressed Size     00000000 (0)\n-6F911D Filename Length       0028 (40)\n-6F911F Extra Length          0009 (9)\n-6F9121 Comment Length        0000 (0)\n-6F9123 Disk Start            0000 (0)\n-6F9125 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9127 Ext File Attributes   00000000 (0)\n-6F912B Local Header Offset   005DD0F3 (6148339)\n-6F912F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F912F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9157 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9159   Length              0005 (5)\n-6F915B   Flags               01 (1) 'Modification'\n-6F915C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9160 CENTRAL HEADER #1707  02014B50 (33639248)\n-6F9164 Created Zip Spec      14 (20) '2.0'\n-6F9165 Created OS            00 (0) 'MS-DOS'\n-6F9166 Extract Zip Spec      14 (20) '2.0'\n-6F9167 Extract OS            00 (0) 'MS-DOS'\n-6F9168 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F916A Compression Method    0000 (0) 'Stored'\n-6F916C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9170 CRC                   5EE85BF3 (1592286195)\n-6F9174 Compressed Size       000006C4 (1732)\n-6F9178 Uncompressed Size     000006C4 (1732)\n-6F917C Filename Length       0050 (80)\n-6F917E Extra Length          0009 (9)\n-6F9180 Comment Length        0000 (0)\n-6F9182 Disk Start            0000 (0)\n-6F9184 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9186 Ext File Attributes   00000000 (0)\n-6F918A Local Header Offset   005DD142 (6148418)\n-6F918E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F918E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F91DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F91E0   Length              0005 (5)\n-6F91E2   Flags               01 (1) 'Modification'\n-6F91E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F91E7 CENTRAL HEADER #1708  02014B50 (33639248)\n-6F91EB Created Zip Spec      14 (20) '2.0'\n-6F91EC Created OS            00 (0) 'MS-DOS'\n-6F91ED Extract Zip Spec      14 (20) '2.0'\n-6F91EE Extract OS            00 (0) 'MS-DOS'\n-6F91EF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F91F1 Compression Method    0000 (0) 'Stored'\n-6F91F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F91F7 CRC                   4F276AEF (1327983343)\n-6F91FB Compressed Size       00000E87 (3719)\n-6F91FF Uncompressed Size     00000E87 (3719)\n-6F9203 Filename Length       0045 (69)\n-6F9205 Extra Length          0009 (9)\n-6F9207 Comment Length        0000 (0)\n-6F9209 Disk Start            0000 (0)\n-6F920B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F920D Ext File Attributes   00000000 (0)\n-6F9211 Local Header Offset   005DD88D (6150285)\n-6F9215 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9215: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F925A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F925C   Length              0005 (5)\n-6F925E   Flags               01 (1) 'Modification'\n-6F925F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9263 CENTRAL HEADER #1709  02014B50 (33639248)\n-6F9267 Created Zip Spec      14 (20) '2.0'\n-6F9268 Created OS            00 (0) 'MS-DOS'\n-6F9269 Extract Zip Spec      14 (20) '2.0'\n-6F926A Extract OS            00 (0) 'MS-DOS'\n-6F926B General Purpose Flag  0000 (0)\n-6F926D Compression Method    0000 (0) 'Stored'\n-6F926F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9273 CRC                   00000000 (0)\n-6F9277 Compressed Size       00000000 (0)\n-6F927B Uncompressed Size     00000000 (0)\n-6F927F Filename Length       0029 (41)\n-6F9281 Extra Length          0009 (9)\n-6F9283 Comment Length        0000 (0)\n-6F9285 Disk Start            0000 (0)\n-6F9287 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9289 Ext File Attributes   00000000 (0)\n-6F928D Local Header Offset   005DE790 (6154128)\n-6F9291 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9291: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F92BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F92BC   Length              0005 (5)\n-6F92BE   Flags               01 (1) 'Modification'\n-6F92BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F92C3 CENTRAL HEADER #1710  02014B50 (33639248)\n-6F92C7 Created Zip Spec      14 (20) '2.0'\n-6F92C8 Created OS            00 (0) 'MS-DOS'\n-6F92C9 Extract Zip Spec      14 (20) '2.0'\n-6F92CA Extract OS            00 (0) 'MS-DOS'\n-6F92CB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F92CD Compression Method    0000 (0) 'Stored'\n-6F92CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F92D3 CRC                   E239D68F (3795441295)\n-6F92D7 Compressed Size       000008D4 (2260)\n-6F92DB Uncompressed Size     000008D4 (2260)\n-6F92DF Filename Length       0040 (64)\n-6F92E1 Extra Length          0009 (9)\n-6F92E3 Comment Length        0000 (0)\n-6F92E5 Disk Start            0000 (0)\n-6F92E7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F92E9 Ext File Attributes   00000000 (0)\n-6F92ED Local Header Offset   005DE7E0 (6154208)\n-6F92F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F92F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9331 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9333   Length              0005 (5)\n-6F9335   Flags               01 (1) 'Modification'\n-6F9336   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F933A CENTRAL HEADER #1711  02014B50 (33639248)\n-6F933E Created Zip Spec      14 (20) '2.0'\n-6F933F Created OS            00 (0) 'MS-DOS'\n-6F9340 Extract Zip Spec      14 (20) '2.0'\n-6F9341 Extract OS            00 (0) 'MS-DOS'\n-6F9342 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9344 Compression Method    0000 (0) 'Stored'\n-6F9346 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F934A CRC                   5A7B56B1 (1518032561)\n-6F934E Compressed Size       00000899 (2201)\n-6F9352 Uncompressed Size     00000899 (2201)\n-6F9356 Filename Length       004F (79)\n-6F9358 Extra Length          0009 (9)\n-6F935A Comment Length        0000 (0)\n-6F935C Disk Start            0000 (0)\n-6F935E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9360 Ext File Attributes   00000000 (0)\n-6F9364 Local Header Offset   005DF12B (6156587)\n-6F9368 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9368: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F93B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F93B9   Length              0005 (5)\n-6F93BB   Flags               01 (1) 'Modification'\n-6F93BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F93C0 CENTRAL HEADER #1712  02014B50 (33639248)\n-6F93C4 Created Zip Spec      14 (20) '2.0'\n-6F93C5 Created OS            00 (0) 'MS-DOS'\n-6F93C6 Extract Zip Spec      14 (20) '2.0'\n-6F93C7 Extract OS            00 (0) 'MS-DOS'\n-6F93C8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F93CA Compression Method    0000 (0) 'Stored'\n-6F93CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F93D0 CRC                   C3191A72 (3273202290)\n-6F93D4 Compressed Size       00000A65 (2661)\n-6F93D8 Uncompressed Size     00000A65 (2661)\n-6F93DC Filename Length       0049 (73)\n-6F93DE Extra Length          0009 (9)\n-6F93E0 Comment Length        0000 (0)\n-6F93E2 Disk Start            0000 (0)\n-6F93E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F93E6 Ext File Attributes   00000000 (0)\n-6F93EA Local Header Offset   005DFA4A (6158922)\n-6F93EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F93EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9437 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9439   Length              0005 (5)\n-6F943B   Flags               01 (1) 'Modification'\n-6F943C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9440 CENTRAL HEADER #1713  02014B50 (33639248)\n-6F9444 Created Zip Spec      14 (20) '2.0'\n-6F9445 Created OS            00 (0) 'MS-DOS'\n-6F9446 Extract Zip Spec      14 (20) '2.0'\n-6F9447 Extract OS            00 (0) 'MS-DOS'\n-6F9448 General Purpose Flag  0000 (0)\n-6F944A Compression Method    0000 (0) 'Stored'\n-6F944C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9450 CRC                   00000000 (0)\n-6F9454 Compressed Size       00000000 (0)\n-6F9458 Uncompressed Size     00000000 (0)\n-6F945C Filename Length       0029 (41)\n-6F945E Extra Length          0009 (9)\n-6F9460 Comment Length        0000 (0)\n-6F9462 Disk Start            0000 (0)\n-6F9464 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9466 Ext File Attributes   00000000 (0)\n-6F946A Local Header Offset   005E052F (6161711)\n-6F946E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F946E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9497 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9499   Length              0005 (5)\n-6F949B   Flags               01 (1) 'Modification'\n-6F949C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F94A0 CENTRAL HEADER #1714  02014B50 (33639248)\n-6F94A4 Created Zip Spec      14 (20) '2.0'\n-6F94A5 Created OS            00 (0) 'MS-DOS'\n-6F94A6 Extract Zip Spec      14 (20) '2.0'\n-6F94A7 Extract OS            00 (0) 'MS-DOS'\n-6F94A8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F94AA Compression Method    0000 (0) 'Stored'\n-6F94AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F94B0 CRC                   BCC9CB9D (3167341469)\n-6F94B4 Compressed Size       000010C1 (4289)\n-6F94B8 Uncompressed Size     000010C1 (4289)\n-6F94BC Filename Length       0041 (65)\n-6F94BE Extra Length          0009 (9)\n-6F94C0 Comment Length        0000 (0)\n-6F94C2 Disk Start            0000 (0)\n-6F94C4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F94C6 Ext File Attributes   00000000 (0)\n-6F94CA Local Header Offset   005E057F (6161791)\n-6F94CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F94CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F950F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9511   Length              0005 (5)\n-6F9513   Flags               01 (1) 'Modification'\n-6F9514   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9518 CENTRAL HEADER #1715  02014B50 (33639248)\n-6F951C Created Zip Spec      14 (20) '2.0'\n-6F951D Created OS            00 (0) 'MS-DOS'\n-6F951E Extract Zip Spec      14 (20) '2.0'\n-6F951F Extract OS            00 (0) 'MS-DOS'\n-6F9520 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9522 Compression Method    0000 (0) 'Stored'\n-6F9524 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9528 CRC                   D501B98C (3573660044)\n-6F952C Compressed Size       000014EB (5355)\n-6F9530 Uncompressed Size     000014EB (5355)\n-6F9534 Filename Length       0047 (71)\n-6F9536 Extra Length          0009 (9)\n-6F9538 Comment Length        0000 (0)\n-6F953A Disk Start            0000 (0)\n-6F953C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F953E Ext File Attributes   00000000 (0)\n-6F9542 Local Header Offset   005E16B8 (6166200)\n-6F9546 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9546: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F958D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F958F   Length              0005 (5)\n-6F9591   Flags               01 (1) 'Modification'\n-6F9592   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9596 CENTRAL HEADER #1716  02014B50 (33639248)\n-6F959A Created Zip Spec      14 (20) '2.0'\n-6F959B Created OS            00 (0) 'MS-DOS'\n-6F959C Extract Zip Spec      14 (20) '2.0'\n-6F959D Extract OS            00 (0) 'MS-DOS'\n-6F959E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F95A0 Compression Method    0000 (0) 'Stored'\n-6F95A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F95A6 CRC                   5955E637 (1498801719)\n-6F95AA Compressed Size       000015EF (5615)\n-6F95AE Uncompressed Size     000015EF (5615)\n-6F95B2 Filename Length       0044 (68)\n-6F95B4 Extra Length          0009 (9)\n-6F95B6 Comment Length        0000 (0)\n-6F95B8 Disk Start            0000 (0)\n-6F95BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F95BC Ext File Attributes   00000000 (0)\n-6F95C0 Local Header Offset   005E2C21 (6171681)\n-6F95C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F95C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9608 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F960A   Length              0005 (5)\n-6F960C   Flags               01 (1) 'Modification'\n-6F960D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9611 CENTRAL HEADER #1717  02014B50 (33639248)\n-6F9615 Created Zip Spec      14 (20) '2.0'\n-6F9616 Created OS            00 (0) 'MS-DOS'\n-6F9617 Extract Zip Spec      14 (20) '2.0'\n-6F9618 Extract OS            00 (0) 'MS-DOS'\n-6F9619 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F961B Compression Method    0000 (0) 'Stored'\n-6F961D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9621 CRC                   0BF8995C (200841564)\n-6F9625 Compressed Size       00000D00 (3328)\n-6F9629 Uncompressed Size     00000D00 (3328)\n-6F962D Filename Length       003F (63)\n-6F962F Extra Length          0009 (9)\n-6F9631 Comment Length        0000 (0)\n-6F9633 Disk Start            0000 (0)\n-6F9635 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9637 Ext File Attributes   00000000 (0)\n-6F963B Local Header Offset   005E428B (6177419)\n-6F963F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F963F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F967E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9680   Length              0005 (5)\n-6F9682   Flags               01 (1) 'Modification'\n-6F9683   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9687 CENTRAL HEADER #1718  02014B50 (33639248)\n-6F968B Created Zip Spec      14 (20) '2.0'\n-6F968C Created OS            00 (0) 'MS-DOS'\n-6F968D Extract Zip Spec      14 (20) '2.0'\n-6F968E Extract OS            00 (0) 'MS-DOS'\n-6F968F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9691 Compression Method    0000 (0) 'Stored'\n-6F9693 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9697 CRC                   B03BDD5E (2956713310)\n-6F969B Compressed Size       000012CC (4812)\n-6F969F Uncompressed Size     000012CC (4812)\n-6F96A3 Filename Length       0043 (67)\n-6F96A5 Extra Length          0009 (9)\n-6F96A7 Comment Length        0000 (0)\n-6F96A9 Disk Start            0000 (0)\n-6F96AB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F96AD Ext File Attributes   00000000 (0)\n-6F96B1 Local Header Offset   005E5001 (6180865)\n-6F96B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F96B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F96F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F96FA   Length              0005 (5)\n-6F96FC   Flags               01 (1) 'Modification'\n-6F96FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9701 CENTRAL HEADER #1719  02014B50 (33639248)\n-6F9705 Created Zip Spec      14 (20) '2.0'\n-6F9706 Created OS            00 (0) 'MS-DOS'\n-6F9707 Extract Zip Spec      14 (20) '2.0'\n-6F9708 Extract OS            00 (0) 'MS-DOS'\n-6F9709 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F970B Compression Method    0000 (0) 'Stored'\n-6F970D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9711 CRC                   5F890A01 (1602816513)\n-6F9715 Compressed Size       000011D5 (4565)\n-6F9719 Uncompressed Size     000011D5 (4565)\n-6F971D Filename Length       0049 (73)\n-6F971F Extra Length          0009 (9)\n-6F9721 Comment Length        0000 (0)\n-6F9723 Disk Start            0000 (0)\n-6F9725 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9727 Ext File Attributes   00000000 (0)\n-6F972B Local Header Offset   005E6347 (6185799)\n-6F972F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F972F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9778 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F977A   Length              0005 (5)\n-6F977C   Flags               01 (1) 'Modification'\n-6F977D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9781 CENTRAL HEADER #1720  02014B50 (33639248)\n-6F9785 Created Zip Spec      14 (20) '2.0'\n-6F9786 Created OS            00 (0) 'MS-DOS'\n-6F9787 Extract Zip Spec      14 (20) '2.0'\n-6F9788 Extract OS            00 (0) 'MS-DOS'\n-6F9789 General Purpose Flag  0000 (0)\n-6F978B Compression Method    0000 (0) 'Stored'\n-6F978D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9791 CRC                   00000000 (0)\n-6F9795 Compressed Size       00000000 (0)\n-6F9799 Uncompressed Size     00000000 (0)\n-6F979D Filename Length       0024 (36)\n-6F979F Extra Length          0009 (9)\n-6F97A1 Comment Length        0000 (0)\n-6F97A3 Disk Start            0000 (0)\n-6F97A5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F97A7 Ext File Attributes   00000000 (0)\n-6F97AB Local Header Offset   005E759C (6190492)\n-6F97AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F97AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F97D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F97D5   Length              0005 (5)\n-6F97D7   Flags               01 (1) 'Modification'\n-6F97D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F97DC CENTRAL HEADER #1721  02014B50 (33639248)\n-6F97E0 Created Zip Spec      14 (20) '2.0'\n-6F97E1 Created OS            00 (0) 'MS-DOS'\n-6F97E2 Extract Zip Spec      14 (20) '2.0'\n-6F97E3 Extract OS            00 (0) 'MS-DOS'\n-6F97E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F97E6 Compression Method    0000 (0) 'Stored'\n-6F97E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F97EC CRC                   B70DC735 (3071133493)\n-6F97F0 Compressed Size       00000959 (2393)\n-6F97F4 Uncompressed Size     00000959 (2393)\n-6F97F8 Filename Length       0034 (52)\n-6F97FA Extra Length          0009 (9)\n-6F97FC Comment Length        0000 (0)\n-6F97FE Disk Start            0000 (0)\n-6F9800 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9802 Ext File Attributes   00000000 (0)\n-6F9806 Local Header Offset   005E75E7 (6190567)\n-6F980A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F980A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F983E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9840   Length              0005 (5)\n-6F9842   Flags               01 (1) 'Modification'\n-6F9843   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9847 CENTRAL HEADER #1722  02014B50 (33639248)\n-6F984B Created Zip Spec      14 (20) '2.0'\n-6F984C Created OS            00 (0) 'MS-DOS'\n-6F984D Extract Zip Spec      14 (20) '2.0'\n-6F984E Extract OS            00 (0) 'MS-DOS'\n-6F984F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9851 Compression Method    0000 (0) 'Stored'\n-6F9853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9857 CRC                   5ECBBD86 (1590410630)\n-6F985B Compressed Size       0000068E (1678)\n-6F985F Uncompressed Size     0000068E (1678)\n-6F9863 Filename Length       003B (59)\n-6F9865 Extra Length          0009 (9)\n-6F9867 Comment Length        0000 (0)\n-6F9869 Disk Start            0000 (0)\n-6F986B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F986D Ext File Attributes   00000000 (0)\n-6F9871 Local Header Offset   005E7FAB (6193067)\n-6F9875 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9875: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F98B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F98B2   Length              0005 (5)\n-6F98B4   Flags               01 (1) 'Modification'\n-6F98B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F98B9 CENTRAL HEADER #1723  02014B50 (33639248)\n-6F98BD Created Zip Spec      14 (20) '2.0'\n-6F98BE Created OS            00 (0) 'MS-DOS'\n-6F98BF Extract Zip Spec      14 (20) '2.0'\n-6F98C0 Extract OS            00 (0) 'MS-DOS'\n-6F98C1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F98C3 Compression Method    0000 (0) 'Stored'\n-6F98C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F98C9 CRC                   0CC7ECCD (214428877)\n-6F98CD Compressed Size       00000667 (1639)\n-6F98D1 Uncompressed Size     00000667 (1639)\n-6F98D5 Filename Length       0038 (56)\n-6F98D7 Extra Length          0009 (9)\n-6F98D9 Comment Length        0000 (0)\n-6F98DB Disk Start            0000 (0)\n-6F98DD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F98DF Ext File Attributes   00000000 (0)\n-6F98E3 Local Header Offset   005E86AB (6194859)\n-6F98E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F98E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F991F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9921   Length              0005 (5)\n-6F9923   Flags               01 (1) 'Modification'\n-6F9924   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9928 CENTRAL HEADER #1724  02014B50 (33639248)\n-6F992C Created Zip Spec      14 (20) '2.0'\n-6F992D Created OS            00 (0) 'MS-DOS'\n-6F992E Extract Zip Spec      14 (20) '2.0'\n-6F992F Extract OS            00 (0) 'MS-DOS'\n-6F9930 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9932 Compression Method    0000 (0) 'Stored'\n-6F9934 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9938 CRC                   091CC51B (152880411)\n-6F993C Compressed Size       00000665 (1637)\n-6F9940 Uncompressed Size     00000665 (1637)\n-6F9944 Filename Length       0038 (56)\n-6F9946 Extra Length          0009 (9)\n-6F9948 Comment Length        0000 (0)\n-6F994A Disk Start            0000 (0)\n-6F994C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F994E Ext File Attributes   00000000 (0)\n-6F9952 Local Header Offset   005E8D81 (6196609)\n-6F9956 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9956: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F998E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9990   Length              0005 (5)\n-6F9992   Flags               01 (1) 'Modification'\n-6F9993   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9997 CENTRAL HEADER #1725  02014B50 (33639248)\n-6F999B Created Zip Spec      14 (20) '2.0'\n-6F999C Created OS            00 (0) 'MS-DOS'\n-6F999D Extract Zip Spec      14 (20) '2.0'\n-6F999E Extract OS            00 (0) 'MS-DOS'\n-6F999F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F99A1 Compression Method    0000 (0) 'Stored'\n-6F99A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F99A7 CRC                   04E4C5B6 (82101686)\n-6F99AB Compressed Size       00000545 (1349)\n-6F99AF Uncompressed Size     00000545 (1349)\n-6F99B3 Filename Length       003A (58)\n-6F99B5 Extra Length          0009 (9)\n-6F99B7 Comment Length        0000 (0)\n-6F99B9 Disk Start            0000 (0)\n-6F99BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F99BD Ext File Attributes   00000000 (0)\n-6F99C1 Local Header Offset   005E9455 (6198357)\n-6F99C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F99C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F99FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9A01   Length              0005 (5)\n-6F9A03   Flags               01 (1) 'Modification'\n-6F9A04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9A08 CENTRAL HEADER #1726  02014B50 (33639248)\n-6F9A0C Created Zip Spec      14 (20) '2.0'\n-6F9A0D Created OS            00 (0) 'MS-DOS'\n-6F9A0E Extract Zip Spec      14 (20) '2.0'\n-6F9A0F Extract OS            00 (0) 'MS-DOS'\n-6F9A10 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9A12 Compression Method    0000 (0) 'Stored'\n-6F9A14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9A18 CRC                   DDA728F5 (3718719733)\n-6F9A1C Compressed Size       0000066F (1647)\n-6F9A20 Uncompressed Size     0000066F (1647)\n-6F9A24 Filename Length       0039 (57)\n-6F9A26 Extra Length          0009 (9)\n-6F9A28 Comment Length        0000 (0)\n-6F9A2A Disk Start            0000 (0)\n-6F9A2C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9A2E Ext File Attributes   00000000 (0)\n-6F9A32 Local Header Offset   005E9A0B (6199819)\n-6F9A36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9A36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9A6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9A71   Length              0005 (5)\n-6F9A73   Flags               01 (1) 'Modification'\n-6F9A74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9A78 CENTRAL HEADER #1727  02014B50 (33639248)\n-6F9A7C Created Zip Spec      14 (20) '2.0'\n-6F9A7D Created OS            00 (0) 'MS-DOS'\n-6F9A7E Extract Zip Spec      14 (20) '2.0'\n-6F9A7F Extract OS            00 (0) 'MS-DOS'\n-6F9A80 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9A82 Compression Method    0000 (0) 'Stored'\n-6F9A84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9A88 CRC                   443829ED (1144531437)\n-6F9A8C Compressed Size       00000534 (1332)\n-6F9A90 Uncompressed Size     00000534 (1332)\n-6F9A94 Filename Length       0037 (55)\n-6F9A96 Extra Length          0009 (9)\n-6F9A98 Comment Length        0000 (0)\n-6F9A9A Disk Start            0000 (0)\n-6F9A9C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9A9E Ext File Attributes   00000000 (0)\n-6F9AA2 Local Header Offset   005EA0EA (6201578)\n-6F9AA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9AA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9ADD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9ADF   Length              0005 (5)\n-6F9AE1   Flags               01 (1) 'Modification'\n-6F9AE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9AE6 CENTRAL HEADER #1728  02014B50 (33639248)\n-6F9AEA Created Zip Spec      14 (20) '2.0'\n-6F9AEB Created OS            00 (0) 'MS-DOS'\n-6F9AEC Extract Zip Spec      14 (20) '2.0'\n-6F9AED Extract OS            00 (0) 'MS-DOS'\n-6F9AEE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9AF0 Compression Method    0000 (0) 'Stored'\n-6F9AF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9AF6 CRC                   482DE9DF (1210968543)\n-6F9AFA Compressed Size       000005D4 (1492)\n-6F9AFE Uncompressed Size     000005D4 (1492)\n-6F9B02 Filename Length       0033 (51)\n-6F9B04 Extra Length          0009 (9)\n-6F9B06 Comment Length        0000 (0)\n-6F9B08 Disk Start            0000 (0)\n-6F9B0A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9B0C Ext File Attributes   00000000 (0)\n-6F9B10 Local Header Offset   005EA68C (6203020)\n-6F9B14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9B14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9B47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9B49   Length              0005 (5)\n-6F9B4B   Flags               01 (1) 'Modification'\n-6F9B4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9B50 CENTRAL HEADER #1729  02014B50 (33639248)\n-6F9B54 Created Zip Spec      14 (20) '2.0'\n-6F9B55 Created OS            00 (0) 'MS-DOS'\n-6F9B56 Extract Zip Spec      14 (20) '2.0'\n-6F9B57 Extract OS            00 (0) 'MS-DOS'\n-6F9B58 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9B5A Compression Method    0000 (0) 'Stored'\n-6F9B5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9B60 CRC                   D3DCC156 (3554459990)\n-6F9B64 Compressed Size       00000539 (1337)\n-6F9B68 Uncompressed Size     00000539 (1337)\n-6F9B6C Filename Length       0038 (56)\n-6F9B6E Extra Length          0009 (9)\n-6F9B70 Comment Length        0000 (0)\n-6F9B72 Disk Start            0000 (0)\n-6F9B74 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9B76 Ext File Attributes   00000000 (0)\n-6F9B7A Local Header Offset   005EACCA (6204618)\n-6F9B7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9B7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9BB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9BB8   Length              0005 (5)\n-6F9BBA   Flags               01 (1) 'Modification'\n-6F9BBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9BBF CENTRAL HEADER #1730  02014B50 (33639248)\n-6F9BC3 Created Zip Spec      14 (20) '2.0'\n-6F9BC4 Created OS            00 (0) 'MS-DOS'\n-6F9BC5 Extract Zip Spec      14 (20) '2.0'\n-6F9BC6 Extract OS            00 (0) 'MS-DOS'\n-6F9BC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9BC9 Compression Method    0000 (0) 'Stored'\n-6F9BCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9BCF CRC                   C4DD1C85 (3302825093)\n-6F9BD3 Compressed Size       000005BA (1466)\n-6F9BD7 Uncompressed Size     000005BA (1466)\n-6F9BDB Filename Length       0032 (50)\n-6F9BDD Extra Length          0009 (9)\n-6F9BDF Comment Length        0000 (0)\n-6F9BE1 Disk Start            0000 (0)\n-6F9BE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9BE5 Ext File Attributes   00000000 (0)\n-6F9BE9 Local Header Offset   005EB272 (6206066)\n-6F9BED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9BED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9C1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9C21   Length              0005 (5)\n-6F9C23   Flags               01 (1) 'Modification'\n-6F9C24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9C28 CENTRAL HEADER #1731  02014B50 (33639248)\n-6F9C2C Created Zip Spec      14 (20) '2.0'\n-6F9C2D Created OS            00 (0) 'MS-DOS'\n-6F9C2E Extract Zip Spec      14 (20) '2.0'\n-6F9C2F Extract OS            00 (0) 'MS-DOS'\n-6F9C30 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9C32 Compression Method    0000 (0) 'Stored'\n-6F9C34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9C38 CRC                   21EA98CC (569022668)\n-6F9C3C Compressed Size       00000B23 (2851)\n-6F9C40 Uncompressed Size     00000B23 (2851)\n-6F9C44 Filename Length       0036 (54)\n-6F9C46 Extra Length          0009 (9)\n-6F9C48 Comment Length        0000 (0)\n-6F9C4A Disk Start            0000 (0)\n-6F9C4C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9C4E Ext File Attributes   00000000 (0)\n-6F9C52 Local Header Offset   005EB895 (6207637)\n-6F9C56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9C56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9C8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9C8E   Length              0005 (5)\n-6F9C90   Flags               01 (1) 'Modification'\n-6F9C91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9C95 CENTRAL HEADER #1732  02014B50 (33639248)\n-6F9C99 Created Zip Spec      14 (20) '2.0'\n-6F9C9A Created OS            00 (0) 'MS-DOS'\n-6F9C9B Extract Zip Spec      14 (20) '2.0'\n-6F9C9C Extract OS            00 (0) 'MS-DOS'\n-6F9C9D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9C9F Compression Method    0000 (0) 'Stored'\n-6F9CA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9CA5 CRC                   96DC7168 (2531029352)\n-6F9CA9 Compressed Size       000005A5 (1445)\n-6F9CAD Uncompressed Size     000005A5 (1445)\n-6F9CB1 Filename Length       0032 (50)\n-6F9CB3 Extra Length          0009 (9)\n-6F9CB5 Comment Length        0000 (0)\n-6F9CB7 Disk Start            0000 (0)\n-6F9CB9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9CBB Ext File Attributes   00000000 (0)\n-6F9CBF Local Header Offset   005EC425 (6210597)\n-6F9CC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9CC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9CF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9CF7   Length              0005 (5)\n-6F9CF9   Flags               01 (1) 'Modification'\n-6F9CFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9CFE CENTRAL HEADER #1733  02014B50 (33639248)\n-6F9D02 Created Zip Spec      14 (20) '2.0'\n-6F9D03 Created OS            00 (0) 'MS-DOS'\n-6F9D04 Extract Zip Spec      14 (20) '2.0'\n-6F9D05 Extract OS            00 (0) 'MS-DOS'\n-6F9D06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9D08 Compression Method    0000 (0) 'Stored'\n-6F9D0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9D0E CRC                   F57D6E98 (4118638232)\n-6F9D12 Compressed Size       0000066F (1647)\n-6F9D16 Uncompressed Size     0000066F (1647)\n-6F9D1A Filename Length       0039 (57)\n-6F9D1C Extra Length          0009 (9)\n-6F9D1E Comment Length        0000 (0)\n-6F9D20 Disk Start            0000 (0)\n-6F9D22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9D24 Ext File Attributes   00000000 (0)\n-6F9D28 Local Header Offset   005ECA33 (6212147)\n-6F9D2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9D2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9D65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9D67   Length              0005 (5)\n-6F9D69   Flags               01 (1) 'Modification'\n-6F9D6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9D6E CENTRAL HEADER #1734  02014B50 (33639248)\n-6F9D72 Created Zip Spec      14 (20) '2.0'\n-6F9D73 Created OS            00 (0) 'MS-DOS'\n-6F9D74 Extract Zip Spec      14 (20) '2.0'\n-6F9D75 Extract OS            00 (0) 'MS-DOS'\n-6F9D76 General Purpose Flag  0000 (0)\n-6F9D78 Compression Method    0000 (0) 'Stored'\n-6F9D7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9D7E CRC                   00000000 (0)\n-6F9D82 Compressed Size       00000000 (0)\n-6F9D86 Uncompressed Size     00000000 (0)\n-6F9D8A Filename Length       0024 (36)\n-6F9D8C Extra Length          0009 (9)\n-6F9D8E Comment Length        0000 (0)\n-6F9D90 Disk Start            0000 (0)\n-6F9D92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9D94 Ext File Attributes   00000000 (0)\n-6F9D98 Local Header Offset   005ED112 (6213906)\n-6F9D9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9D9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9DC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9DC2   Length              0005 (5)\n-6F9DC4   Flags               01 (1) 'Modification'\n-6F9DC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9DC9 CENTRAL HEADER #1735  02014B50 (33639248)\n-6F9DCD Created Zip Spec      14 (20) '2.0'\n-6F9DCE Created OS            00 (0) 'MS-DOS'\n-6F9DCF Extract Zip Spec      14 (20) '2.0'\n-6F9DD0 Extract OS            00 (0) 'MS-DOS'\n-6F9DD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9DD3 Compression Method    0000 (0) 'Stored'\n-6F9DD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9DD9 CRC                   CD8D1CAF (3448577199)\n-6F9DDD Compressed Size       000007EC (2028)\n-6F9DE1 Uncompressed Size     000007EC (2028)\n-6F9DE5 Filename Length       0037 (55)\n-6F9DE7 Extra Length          0009 (9)\n-6F9DE9 Comment Length        0000 (0)\n-6F9DEB Disk Start            0000 (0)\n-6F9DED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9DEF Ext File Attributes   00000000 (0)\n-6F9DF3 Local Header Offset   005ED15D (6213981)\n-6F9DF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9DF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9E2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9E30   Length              0005 (5)\n-6F9E32   Flags               01 (1) 'Modification'\n-6F9E33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9E37 CENTRAL HEADER #1736  02014B50 (33639248)\n-6F9E3B Created Zip Spec      14 (20) '2.0'\n-6F9E3C Created OS            00 (0) 'MS-DOS'\n-6F9E3D Extract Zip Spec      14 (20) '2.0'\n-6F9E3E Extract OS            00 (0) 'MS-DOS'\n-6F9E3F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9E41 Compression Method    0000 (0) 'Stored'\n-6F9E43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9E47 CRC                   7A4C73B7 (2051830711)\n-6F9E4B Compressed Size       00000A32 (2610)\n-6F9E4F Uncompressed Size     00000A32 (2610)\n-6F9E53 Filename Length       003B (59)\n-6F9E55 Extra Length          0009 (9)\n-6F9E57 Comment Length        0000 (0)\n-6F9E59 Disk Start            0000 (0)\n-6F9E5B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9E5D Ext File Attributes   00000000 (0)\n-6F9E61 Local Header Offset   005ED9B7 (6216119)\n-6F9E65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9E65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9EA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9EA2   Length              0005 (5)\n-6F9EA4   Flags               01 (1) 'Modification'\n-6F9EA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9EA9 CENTRAL HEADER #1737  02014B50 (33639248)\n-6F9EAD Created Zip Spec      14 (20) '2.0'\n-6F9EAE Created OS            00 (0) 'MS-DOS'\n-6F9EAF Extract Zip Spec      14 (20) '2.0'\n-6F9EB0 Extract OS            00 (0) 'MS-DOS'\n-6F9EB1 General Purpose Flag  0000 (0)\n-6F9EB3 Compression Method    0000 (0) 'Stored'\n-6F9EB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9EB9 CRC                   00000000 (0)\n-6F9EBD Compressed Size       00000000 (0)\n-6F9EC1 Uncompressed Size     00000000 (0)\n-6F9EC5 Filename Length       002E (46)\n-6F9EC7 Extra Length          0009 (9)\n-6F9EC9 Comment Length        0000 (0)\n-6F9ECB Disk Start            0000 (0)\n-6F9ECD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9ECF Ext File Attributes   00000000 (0)\n-6F9ED3 Local Header Offset   005EE45B (6218843)\n-6F9ED7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9ED7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9F05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9F07   Length              0005 (5)\n-6F9F09   Flags               01 (1) 'Modification'\n-6F9F0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9F0E CENTRAL HEADER #1738  02014B50 (33639248)\n-6F9F12 Created Zip Spec      14 (20) '2.0'\n-6F9F13 Created OS            00 (0) 'MS-DOS'\n-6F9F14 Extract Zip Spec      14 (20) '2.0'\n-6F9F15 Extract OS            00 (0) 'MS-DOS'\n-6F9F16 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9F18 Compression Method    0000 (0) 'Stored'\n-6F9F1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9F1E CRC                   BCF898DF (3170408671)\n-6F9F22 Compressed Size       00003374 (13172)\n-6F9F26 Uncompressed Size     00003374 (13172)\n-6F9F2A Filename Length       0042 (66)\n-6F9F2C Extra Length          0009 (9)\n-6F9F2E Comment Length        0000 (0)\n-6F9F30 Disk Start            0000 (0)\n-6F9F32 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9F34 Ext File Attributes   00000000 (0)\n-6F9F38 Local Header Offset   005EE4B0 (6218928)\n-6F9F3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9F3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9F7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6F9F80   Length              0005 (5)\n-6F9F82   Flags               01 (1) 'Modification'\n-6F9F83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6F9F87 CENTRAL HEADER #1739  02014B50 (33639248)\n-6F9F8B Created Zip Spec      14 (20) '2.0'\n-6F9F8C Created OS            00 (0) 'MS-DOS'\n-6F9F8D Extract Zip Spec      14 (20) '2.0'\n-6F9F8E Extract OS            00 (0) 'MS-DOS'\n-6F9F8F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6F9F91 Compression Method    0000 (0) 'Stored'\n-6F9F93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6F9F97 CRC                   E35903B0 (3814261680)\n-6F9F9B Compressed Size       00000540 (1344)\n-6F9F9F Uncompressed Size     00000540 (1344)\n-6F9FA3 Filename Length       0049 (73)\n-6F9FA5 Extra Length          0009 (9)\n-6F9FA7 Comment Length        0000 (0)\n-6F9FA9 Disk Start            0000 (0)\n-6F9FAB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6F9FAD Ext File Attributes   00000000 (0)\n-6F9FB1 Local Header Offset   005F189D (6232221)\n-6F9FB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6F9FB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6F9FFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA000   Length              0005 (5)\n-6FA002   Flags               01 (1) 'Modification'\n-6FA003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA007 CENTRAL HEADER #1740  02014B50 (33639248)\n-6FA00B Created Zip Spec      14 (20) '2.0'\n-6FA00C Created OS            00 (0) 'MS-DOS'\n-6FA00D Extract Zip Spec      14 (20) '2.0'\n-6FA00E Extract OS            00 (0) 'MS-DOS'\n-6FA00F General Purpose Flag  0000 (0)\n-6FA011 Compression Method    0000 (0) 'Stored'\n-6FA013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA017 CRC                   00000000 (0)\n-6FA01B Compressed Size       00000000 (0)\n-6FA01F Uncompressed Size     00000000 (0)\n-6FA023 Filename Length       0035 (53)\n-6FA025 Extra Length          0009 (9)\n-6FA027 Comment Length        0000 (0)\n-6FA029 Disk Start            0000 (0)\n-6FA02B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA02D Ext File Attributes   00000000 (0)\n-6FA031 Local Header Offset   005F1E5D (6233693)\n-6FA035 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA035: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA06A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA06C   Length              0005 (5)\n-6FA06E   Flags               01 (1) 'Modification'\n-6FA06F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA073 CENTRAL HEADER #1741  02014B50 (33639248)\n-6FA077 Created Zip Spec      14 (20) '2.0'\n-6FA078 Created OS            00 (0) 'MS-DOS'\n-6FA079 Extract Zip Spec      14 (20) '2.0'\n-6FA07A Extract OS            00 (0) 'MS-DOS'\n-6FA07B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA07D Compression Method    0000 (0) 'Stored'\n-6FA07F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA083 CRC                   76BEB07B (1992208507)\n-6FA087 Compressed Size       0000058B (1419)\n-6FA08B Uncompressed Size     0000058B (1419)\n-6FA08F Filename Length       0043 (67)\n-6FA091 Extra Length          0009 (9)\n-6FA093 Comment Length        0000 (0)\n-6FA095 Disk Start            0000 (0)\n-6FA097 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA099 Ext File Attributes   00000000 (0)\n-6FA09D Local Header Offset   005F1EB9 (6233785)\n-6FA0A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA0A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA0E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA0E6   Length              0005 (5)\n-6FA0E8   Flags               01 (1) 'Modification'\n-6FA0E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA0ED CENTRAL HEADER #1742  02014B50 (33639248)\n-6FA0F1 Created Zip Spec      14 (20) '2.0'\n-6FA0F2 Created OS            00 (0) 'MS-DOS'\n-6FA0F3 Extract Zip Spec      14 (20) '2.0'\n-6FA0F4 Extract OS            00 (0) 'MS-DOS'\n-6FA0F5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA0F7 Compression Method    0000 (0) 'Stored'\n-6FA0F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA0FD CRC                   AFF80853 (2952267859)\n-6FA101 Compressed Size       00000657 (1623)\n-6FA105 Uncompressed Size     00000657 (1623)\n-6FA109 Filename Length       004A (74)\n-6FA10B Extra Length          0009 (9)\n-6FA10D Comment Length        0000 (0)\n-6FA10F Disk Start            0000 (0)\n-6FA111 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA113 Ext File Attributes   00000000 (0)\n-6FA117 Local Header Offset   005F24BE (6235326)\n-6FA11B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA11B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA165 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA167   Length              0005 (5)\n-6FA169   Flags               01 (1) 'Modification'\n-6FA16A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA16E CENTRAL HEADER #1743  02014B50 (33639248)\n-6FA172 Created Zip Spec      14 (20) '2.0'\n-6FA173 Created OS            00 (0) 'MS-DOS'\n-6FA174 Extract Zip Spec      14 (20) '2.0'\n-6FA175 Extract OS            00 (0) 'MS-DOS'\n-6FA176 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA178 Compression Method    0000 (0) 'Stored'\n-6FA17A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA17E CRC                   64878DEF (1686605295)\n-6FA182 Compressed Size       0000141B (5147)\n-6FA186 Uncompressed Size     0000141B (5147)\n-6FA18A Filename Length       004A (74)\n-6FA18C Extra Length          0009 (9)\n-6FA18E Comment Length        0000 (0)\n-6FA190 Disk Start            0000 (0)\n-6FA192 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA194 Ext File Attributes   00000000 (0)\n-6FA198 Local Header Offset   005F2B96 (6237078)\n-6FA19C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA19C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA1E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA1E8   Length              0005 (5)\n-6FA1EA   Flags               01 (1) 'Modification'\n-6FA1EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA1EF CENTRAL HEADER #1744  02014B50 (33639248)\n-6FA1F3 Created Zip Spec      14 (20) '2.0'\n-6FA1F4 Created OS            00 (0) 'MS-DOS'\n-6FA1F5 Extract Zip Spec      14 (20) '2.0'\n-6FA1F6 Extract OS            00 (0) 'MS-DOS'\n-6FA1F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA1F9 Compression Method    0000 (0) 'Stored'\n-6FA1FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA1FF CRC                   B919F4D5 (3105486037)\n-6FA203 Compressed Size       000005A5 (1445)\n-6FA207 Uncompressed Size     000005A5 (1445)\n-6FA20B Filename Length       0047 (71)\n-6FA20D Extra Length          0009 (9)\n-6FA20F Comment Length        0000 (0)\n-6FA211 Disk Start            0000 (0)\n-6FA213 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA215 Ext File Attributes   00000000 (0)\n-6FA219 Local Header Offset   005F4032 (6242354)\n-6FA21D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA21D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA264 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA266   Length              0005 (5)\n-6FA268   Flags               01 (1) 'Modification'\n-6FA269   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA26D CENTRAL HEADER #1745  02014B50 (33639248)\n-6FA271 Created Zip Spec      14 (20) '2.0'\n-6FA272 Created OS            00 (0) 'MS-DOS'\n-6FA273 Extract Zip Spec      14 (20) '2.0'\n-6FA274 Extract OS            00 (0) 'MS-DOS'\n-6FA275 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA277 Compression Method    0000 (0) 'Stored'\n-6FA279 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA27D CRC                   06325F9E (103964574)\n-6FA281 Compressed Size       00000541 (1345)\n-6FA285 Uncompressed Size     00000541 (1345)\n-6FA289 Filename Length       004E (78)\n-6FA28B Extra Length          0009 (9)\n-6FA28D Comment Length        0000 (0)\n-6FA28F Disk Start            0000 (0)\n-6FA291 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA293 Ext File Attributes   00000000 (0)\n-6FA297 Local Header Offset   005F4655 (6243925)\n-6FA29B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA29B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA2E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA2EB   Length              0005 (5)\n-6FA2ED   Flags               01 (1) 'Modification'\n-6FA2EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA2F2 CENTRAL HEADER #1746  02014B50 (33639248)\n-6FA2F6 Created Zip Spec      14 (20) '2.0'\n-6FA2F7 Created OS            00 (0) 'MS-DOS'\n-6FA2F8 Extract Zip Spec      14 (20) '2.0'\n-6FA2F9 Extract OS            00 (0) 'MS-DOS'\n-6FA2FA General Purpose Flag  0000 (0)\n-6FA2FC Compression Method    0000 (0) 'Stored'\n-6FA2FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA302 CRC                   00000000 (0)\n-6FA306 Compressed Size       00000000 (0)\n-6FA30A Uncompressed Size     00000000 (0)\n-6FA30E Filename Length       003B (59)\n-6FA310 Extra Length          0009 (9)\n-6FA312 Comment Length        0000 (0)\n-6FA314 Disk Start            0000 (0)\n-6FA316 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA318 Ext File Attributes   00000000 (0)\n-6FA31C Local Header Offset   005F4C1B (6245403)\n-6FA320 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA320: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA35B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA35D   Length              0005 (5)\n-6FA35F   Flags               01 (1) 'Modification'\n-6FA360   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA364 CENTRAL HEADER #1747  02014B50 (33639248)\n-6FA368 Created Zip Spec      14 (20) '2.0'\n-6FA369 Created OS            00 (0) 'MS-DOS'\n-6FA36A Extract Zip Spec      14 (20) '2.0'\n-6FA36B Extract OS            00 (0) 'MS-DOS'\n-6FA36C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA36E Compression Method    0000 (0) 'Stored'\n-6FA370 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA374 CRC                   1C57CB8B (475515787)\n-6FA378 Compressed Size       00000532 (1330)\n-6FA37C Uncompressed Size     00000532 (1330)\n-6FA380 Filename Length       0053 (83)\n-6FA382 Extra Length          0009 (9)\n-6FA384 Comment Length        0000 (0)\n-6FA386 Disk Start            0000 (0)\n-6FA388 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA38A Ext File Attributes   00000000 (0)\n-6FA38E Local Header Offset   005F4C7D (6245501)\n-6FA392 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA392: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA3E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA3E7   Length              0005 (5)\n-6FA3E9   Flags               01 (1) 'Modification'\n-6FA3EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA3EE CENTRAL HEADER #1748  02014B50 (33639248)\n-6FA3F2 Created Zip Spec      14 (20) '2.0'\n-6FA3F3 Created OS            00 (0) 'MS-DOS'\n-6FA3F4 Extract Zip Spec      14 (20) '2.0'\n-6FA3F5 Extract OS            00 (0) 'MS-DOS'\n-6FA3F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA3F8 Compression Method    0000 (0) 'Stored'\n-6FA3FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA3FE CRC                   9B53D29B (2605961883)\n-6FA402 Compressed Size       000006D4 (1748)\n-6FA406 Uncompressed Size     000006D4 (1748)\n-6FA40A Filename Length       0053 (83)\n-6FA40C Extra Length          0009 (9)\n-6FA40E Comment Length        0000 (0)\n-6FA410 Disk Start            0000 (0)\n-6FA412 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA414 Ext File Attributes   00000000 (0)\n-6FA418 Local Header Offset   005F5239 (6246969)\n-6FA41C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA41C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA46F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA471   Length              0005 (5)\n-6FA473   Flags               01 (1) 'Modification'\n-6FA474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA478 CENTRAL HEADER #1749  02014B50 (33639248)\n-6FA47C Created Zip Spec      14 (20) '2.0'\n-6FA47D Created OS            00 (0) 'MS-DOS'\n-6FA47E Extract Zip Spec      14 (20) '2.0'\n-6FA47F Extract OS            00 (0) 'MS-DOS'\n-6FA480 General Purpose Flag  0000 (0)\n-6FA482 Compression Method    0000 (0) 'Stored'\n-6FA484 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA488 CRC                   00000000 (0)\n-6FA48C Compressed Size       00000000 (0)\n-6FA490 Uncompressed Size     00000000 (0)\n-6FA494 Filename Length       0029 (41)\n-6FA496 Extra Length          0009 (9)\n-6FA498 Comment Length        0000 (0)\n-6FA49A Disk Start            0000 (0)\n-6FA49C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA49E Ext File Attributes   00000000 (0)\n-6FA4A2 Local Header Offset   005F5997 (6248855)\n-6FA4A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA4A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA4CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA4D1   Length              0005 (5)\n-6FA4D3   Flags               01 (1) 'Modification'\n-6FA4D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA4D8 CENTRAL HEADER #1750  02014B50 (33639248)\n-6FA4DC Created Zip Spec      14 (20) '2.0'\n-6FA4DD Created OS            00 (0) 'MS-DOS'\n-6FA4DE Extract Zip Spec      14 (20) '2.0'\n-6FA4DF Extract OS            00 (0) 'MS-DOS'\n-6FA4E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA4E2 Compression Method    0000 (0) 'Stored'\n-6FA4E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA4E8 CRC                   F601821B (4127293979)\n-6FA4EC Compressed Size       00000C34 (3124)\n-6FA4F0 Uncompressed Size     00000C34 (3124)\n-6FA4F4 Filename Length       003F (63)\n-6FA4F6 Extra Length          0009 (9)\n-6FA4F8 Comment Length        0000 (0)\n-6FA4FA Disk Start            0000 (0)\n-6FA4FC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA4FE Ext File Attributes   00000000 (0)\n-6FA502 Local Header Offset   005F59E7 (6248935)\n-6FA506 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA506: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA545 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA547   Length              0005 (5)\n-6FA549   Flags               01 (1) 'Modification'\n-6FA54A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA54E CENTRAL HEADER #1751  02014B50 (33639248)\n-6FA552 Created Zip Spec      14 (20) '2.0'\n-6FA553 Created OS            00 (0) 'MS-DOS'\n-6FA554 Extract Zip Spec      14 (20) '2.0'\n-6FA555 Extract OS            00 (0) 'MS-DOS'\n-6FA556 General Purpose Flag  0000 (0)\n-6FA558 Compression Method    0000 (0) 'Stored'\n-6FA55A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA55E CRC                   00000000 (0)\n-6FA562 Compressed Size       00000000 (0)\n-6FA566 Uncompressed Size     00000000 (0)\n-6FA56A Filename Length       0029 (41)\n-6FA56C Extra Length          0009 (9)\n-6FA56E Comment Length        0000 (0)\n-6FA570 Disk Start            0000 (0)\n-6FA572 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA574 Ext File Attributes   00000000 (0)\n-6FA578 Local Header Offset   005F6691 (6252177)\n-6FA57C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA57C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA5A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA5A7   Length              0005 (5)\n-6FA5A9   Flags               01 (1) 'Modification'\n-6FA5AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA5AE CENTRAL HEADER #1752  02014B50 (33639248)\n-6FA5B2 Created Zip Spec      14 (20) '2.0'\n-6FA5B3 Created OS            00 (0) 'MS-DOS'\n-6FA5B4 Extract Zip Spec      14 (20) '2.0'\n-6FA5B5 Extract OS            00 (0) 'MS-DOS'\n-6FA5B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA5B8 Compression Method    0000 (0) 'Stored'\n-6FA5BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA5BE CRC                   9E4A1FA8 (2655657896)\n-6FA5C2 Compressed Size       00000F53 (3923)\n-6FA5C6 Uncompressed Size     00000F53 (3923)\n-6FA5CA Filename Length       0042 (66)\n-6FA5CC Extra Length          0009 (9)\n-6FA5CE Comment Length        0000 (0)\n-6FA5D0 Disk Start            0000 (0)\n-6FA5D2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA5D4 Ext File Attributes   00000000 (0)\n-6FA5D8 Local Header Offset   005F66E1 (6252257)\n-6FA5DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA5DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA61E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA620   Length              0005 (5)\n-6FA622   Flags               01 (1) 'Modification'\n-6FA623   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA627 CENTRAL HEADER #1753  02014B50 (33639248)\n-6FA62B Created Zip Spec      14 (20) '2.0'\n-6FA62C Created OS            00 (0) 'MS-DOS'\n-6FA62D Extract Zip Spec      14 (20) '2.0'\n-6FA62E Extract OS            00 (0) 'MS-DOS'\n-6FA62F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA631 Compression Method    0000 (0) 'Stored'\n-6FA633 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA637 CRC                   0EB84276 (246956662)\n-6FA63B Compressed Size       00000517 (1303)\n-6FA63F Uncompressed Size     00000517 (1303)\n-6FA643 Filename Length       003F (63)\n-6FA645 Extra Length          0009 (9)\n-6FA647 Comment Length        0000 (0)\n-6FA649 Disk Start            0000 (0)\n-6FA64B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA64D Ext File Attributes   00000000 (0)\n-6FA651 Local Header Offset   005F76AD (6256301)\n-6FA655 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA655: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA694 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA696   Length              0005 (5)\n-6FA698   Flags               01 (1) 'Modification'\n-6FA699   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA69D CENTRAL HEADER #1754  02014B50 (33639248)\n-6FA6A1 Created Zip Spec      14 (20) '2.0'\n-6FA6A2 Created OS            00 (0) 'MS-DOS'\n-6FA6A3 Extract Zip Spec      14 (20) '2.0'\n-6FA6A4 Extract OS            00 (0) 'MS-DOS'\n-6FA6A5 General Purpose Flag  0000 (0)\n-6FA6A7 Compression Method    0000 (0) 'Stored'\n-6FA6A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA6AD CRC                   00000000 (0)\n-6FA6B1 Compressed Size       00000000 (0)\n-6FA6B5 Uncompressed Size     00000000 (0)\n-6FA6B9 Filename Length       002B (43)\n-6FA6BB Extra Length          0009 (9)\n-6FA6BD Comment Length        0000 (0)\n-6FA6BF Disk Start            0000 (0)\n-6FA6C1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA6C3 Ext File Attributes   00000000 (0)\n-6FA6C7 Local Header Offset   005F7C3A (6257722)\n-6FA6CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA6CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA6F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA6F8   Length              0005 (5)\n-6FA6FA   Flags               01 (1) 'Modification'\n-6FA6FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA6FF CENTRAL HEADER #1755  02014B50 (33639248)\n-6FA703 Created Zip Spec      14 (20) '2.0'\n-6FA704 Created OS            00 (0) 'MS-DOS'\n-6FA705 Extract Zip Spec      14 (20) '2.0'\n-6FA706 Extract OS            00 (0) 'MS-DOS'\n-6FA707 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA709 Compression Method    0000 (0) 'Stored'\n-6FA70B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA70F CRC                   64ACCB0D (1689045773)\n-6FA713 Compressed Size       00001B32 (6962)\n-6FA717 Uncompressed Size     00001B32 (6962)\n-6FA71B Filename Length       003C (60)\n-6FA71D Extra Length          0009 (9)\n-6FA71F Comment Length        0000 (0)\n-6FA721 Disk Start            0000 (0)\n-6FA723 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA725 Ext File Attributes   00000000 (0)\n-6FA729 Local Header Offset   005F7C8C (6257804)\n-6FA72D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA72D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA769 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA76B   Length              0005 (5)\n-6FA76D   Flags               01 (1) 'Modification'\n-6FA76E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA772 CENTRAL HEADER #1756  02014B50 (33639248)\n-6FA776 Created Zip Spec      14 (20) '2.0'\n-6FA777 Created OS            00 (0) 'MS-DOS'\n-6FA778 Extract Zip Spec      14 (20) '2.0'\n-6FA779 Extract OS            00 (0) 'MS-DOS'\n-6FA77A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA77C Compression Method    0000 (0) 'Stored'\n-6FA77E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA782 CRC                   72CD5ED3 (1926061779)\n-6FA786 Compressed Size       0000069B (1691)\n-6FA78A Uncompressed Size     0000069B (1691)\n-6FA78E Filename Length       0043 (67)\n-6FA790 Extra Length          0009 (9)\n-6FA792 Comment Length        0000 (0)\n-6FA794 Disk Start            0000 (0)\n-6FA796 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA798 Ext File Attributes   00000000 (0)\n-6FA79C Local Header Offset   005F9831 (6264881)\n-6FA7A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA7A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA7E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA7E5   Length              0005 (5)\n-6FA7E7   Flags               01 (1) 'Modification'\n-6FA7E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA7EC CENTRAL HEADER #1757  02014B50 (33639248)\n-6FA7F0 Created Zip Spec      14 (20) '2.0'\n-6FA7F1 Created OS            00 (0) 'MS-DOS'\n-6FA7F2 Extract Zip Spec      14 (20) '2.0'\n-6FA7F3 Extract OS            00 (0) 'MS-DOS'\n-6FA7F4 General Purpose Flag  0000 (0)\n-6FA7F6 Compression Method    0000 (0) 'Stored'\n-6FA7F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA7FC CRC                   00000000 (0)\n-6FA800 Compressed Size       00000000 (0)\n-6FA804 Uncompressed Size     00000000 (0)\n-6FA808 Filename Length       0028 (40)\n-6FA80A Extra Length          0009 (9)\n-6FA80C Comment Length        0000 (0)\n-6FA80E Disk Start            0000 (0)\n-6FA810 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA812 Ext File Attributes   00000000 (0)\n-6FA816 Local Header Offset   005F9F46 (6266694)\n-6FA81A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA81A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA842 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA844   Length              0005 (5)\n-6FA846   Flags               01 (1) 'Modification'\n-6FA847   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA84B CENTRAL HEADER #1758  02014B50 (33639248)\n-6FA84F Created Zip Spec      14 (20) '2.0'\n-6FA850 Created OS            00 (0) 'MS-DOS'\n-6FA851 Extract Zip Spec      14 (20) '2.0'\n-6FA852 Extract OS            00 (0) 'MS-DOS'\n-6FA853 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA855 Compression Method    0000 (0) 'Stored'\n-6FA857 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA85B CRC                   4CF04636 (1290815030)\n-6FA85F Compressed Size       00002D78 (11640)\n-6FA863 Uncompressed Size     00002D78 (11640)\n-6FA867 Filename Length       0036 (54)\n-6FA869 Extra Length          0009 (9)\n-6FA86B Comment Length        0000 (0)\n-6FA86D Disk Start            0000 (0)\n-6FA86F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA871 Ext File Attributes   00000000 (0)\n-6FA875 Local Header Offset   005F9F95 (6266773)\n-6FA879 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA879: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA8AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA8B1   Length              0005 (5)\n-6FA8B3   Flags               01 (1) 'Modification'\n-6FA8B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA8B8 CENTRAL HEADER #1759  02014B50 (33639248)\n-6FA8BC Created Zip Spec      14 (20) '2.0'\n-6FA8BD Created OS            00 (0) 'MS-DOS'\n-6FA8BE Extract Zip Spec      14 (20) '2.0'\n-6FA8BF Extract OS            00 (0) 'MS-DOS'\n-6FA8C0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA8C2 Compression Method    0000 (0) 'Stored'\n-6FA8C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA8C8 CRC                   FC35A4FC (4231374076)\n-6FA8CC Compressed Size       0000051D (1309)\n-6FA8D0 Uncompressed Size     0000051D (1309)\n-6FA8D4 Filename Length       003D (61)\n-6FA8D6 Extra Length          0009 (9)\n-6FA8D8 Comment Length        0000 (0)\n-6FA8DA Disk Start            0000 (0)\n-6FA8DC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA8DE Ext File Attributes   00000000 (0)\n-6FA8E2 Local Header Offset   005FCD7A (6278522)\n-6FA8E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA8E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA923 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA925   Length              0005 (5)\n-6FA927   Flags               01 (1) 'Modification'\n-6FA928   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA92C CENTRAL HEADER #1760  02014B50 (33639248)\n-6FA930 Created Zip Spec      14 (20) '2.0'\n-6FA931 Created OS            00 (0) 'MS-DOS'\n-6FA932 Extract Zip Spec      14 (20) '2.0'\n-6FA933 Extract OS            00 (0) 'MS-DOS'\n-6FA934 General Purpose Flag  0000 (0)\n-6FA936 Compression Method    0000 (0) 'Stored'\n-6FA938 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA93C CRC                   00000000 (0)\n-6FA940 Compressed Size       00000000 (0)\n-6FA944 Uncompressed Size     00000000 (0)\n-6FA948 Filename Length       002E (46)\n-6FA94A Extra Length          0009 (9)\n-6FA94C Comment Length        0000 (0)\n-6FA94E Disk Start            0000 (0)\n-6FA950 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA952 Ext File Attributes   00000000 (0)\n-6FA956 Local Header Offset   005FD30B (6279947)\n-6FA95A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA95A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA988 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA98A   Length              0005 (5)\n-6FA98C   Flags               01 (1) 'Modification'\n-6FA98D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA991 CENTRAL HEADER #1761  02014B50 (33639248)\n-6FA995 Created Zip Spec      14 (20) '2.0'\n-6FA996 Created OS            00 (0) 'MS-DOS'\n-6FA997 Extract Zip Spec      14 (20) '2.0'\n-6FA998 Extract OS            00 (0) 'MS-DOS'\n-6FA999 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FA99B Compression Method    0000 (0) 'Stored'\n-6FA99D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FA9A1 CRC                   20217A79 (539064953)\n-6FA9A5 Compressed Size       00000528 (1320)\n-6FA9A9 Uncompressed Size     00000528 (1320)\n-6FA9AD Filename Length       0036 (54)\n-6FA9AF Extra Length          0009 (9)\n-6FA9B1 Comment Length        0000 (0)\n-6FA9B3 Disk Start            0000 (0)\n-6FA9B5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FA9B7 Ext File Attributes   00000000 (0)\n-6FA9BB Local Header Offset   005FD360 (6280032)\n-6FA9BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FA9BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FA9F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FA9F7   Length              0005 (5)\n-6FA9F9   Flags               01 (1) 'Modification'\n-6FA9FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FA9FE CENTRAL HEADER #1762  02014B50 (33639248)\n-6FAA02 Created Zip Spec      14 (20) '2.0'\n-6FAA03 Created OS            00 (0) 'MS-DOS'\n-6FAA04 Extract Zip Spec      14 (20) '2.0'\n-6FAA05 Extract OS            00 (0) 'MS-DOS'\n-6FAA06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAA08 Compression Method    0000 (0) 'Stored'\n-6FAA0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAA0E CRC                   5D27A74D (1562879821)\n-6FAA12 Compressed Size       00000ADF (2783)\n-6FAA16 Uncompressed Size     00000ADF (2783)\n-6FAA1A Filename Length       0040 (64)\n-6FAA1C Extra Length          0009 (9)\n-6FAA1E Comment Length        0000 (0)\n-6FAA20 Disk Start            0000 (0)\n-6FAA22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAA24 Ext File Attributes   00000000 (0)\n-6FAA28 Local Header Offset   005FD8F5 (6281461)\n-6FAA2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAA2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAA6C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAA6E   Length              0005 (5)\n-6FAA70   Flags               01 (1) 'Modification'\n-6FAA71   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAA75 CENTRAL HEADER #1763  02014B50 (33639248)\n-6FAA79 Created Zip Spec      14 (20) '2.0'\n-6FAA7A Created OS            00 (0) 'MS-DOS'\n-6FAA7B Extract Zip Spec      14 (20) '2.0'\n-6FAA7C Extract OS            00 (0) 'MS-DOS'\n-6FAA7D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAA7F Compression Method    0000 (0) 'Stored'\n-6FAA81 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAA85 CRC                   6DBA7C3B (1840938043)\n-6FAA89 Compressed Size       00000611 (1553)\n-6FAA8D Uncompressed Size     00000611 (1553)\n-6FAA91 Filename Length       0040 (64)\n-6FAA93 Extra Length          0009 (9)\n-6FAA95 Comment Length        0000 (0)\n-6FAA97 Disk Start            0000 (0)\n-6FAA99 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAA9B Ext File Attributes   00000000 (0)\n-6FAA9F Local Header Offset   005FE44B (6284363)\n-6FAAA3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAAA3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAAE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAAE5   Length              0005 (5)\n-6FAAE7   Flags               01 (1) 'Modification'\n-6FAAE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAAEC CENTRAL HEADER #1764  02014B50 (33639248)\n-6FAAF0 Created Zip Spec      14 (20) '2.0'\n-6FAAF1 Created OS            00 (0) 'MS-DOS'\n-6FAAF2 Extract Zip Spec      14 (20) '2.0'\n-6FAAF3 Extract OS            00 (0) 'MS-DOS'\n-6FAAF4 General Purpose Flag  0000 (0)\n-6FAAF6 Compression Method    0000 (0) 'Stored'\n-6FAAF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAAFC CRC                   00000000 (0)\n-6FAB00 Compressed Size       00000000 (0)\n-6FAB04 Uncompressed Size     00000000 (0)\n-6FAB08 Filename Length       0025 (37)\n-6FAB0A Extra Length          0009 (9)\n-6FAB0C Comment Length        0000 (0)\n-6FAB0E Disk Start            0000 (0)\n-6FAB10 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAB12 Ext File Attributes   00000000 (0)\n-6FAB16 Local Header Offset   005FEAD3 (6286035)\n-6FAB1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAB1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAB3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAB41   Length              0005 (5)\n-6FAB43   Flags               01 (1) 'Modification'\n-6FAB44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAB48 CENTRAL HEADER #1765  02014B50 (33639248)\n-6FAB4C Created Zip Spec      14 (20) '2.0'\n-6FAB4D Created OS            00 (0) 'MS-DOS'\n-6FAB4E Extract Zip Spec      14 (20) '2.0'\n-6FAB4F Extract OS            00 (0) 'MS-DOS'\n-6FAB50 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAB52 Compression Method    0000 (0) 'Stored'\n-6FAB54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAB58 CRC                   92ECBDF0 (2464988656)\n-6FAB5C Compressed Size       00003237 (12855)\n-6FAB60 Uncompressed Size     00003237 (12855)\n-6FAB64 Filename Length       0040 (64)\n-6FAB66 Extra Length          0009 (9)\n-6FAB68 Comment Length        0000 (0)\n-6FAB6A Disk Start            0000 (0)\n-6FAB6C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAB6E Ext File Attributes   00000000 (0)\n-6FAB72 Local Header Offset   005FEB1F (6286111)\n-6FAB76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAB76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FABB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FABB8   Length              0005 (5)\n-6FABBA   Flags               01 (1) 'Modification'\n-6FABBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FABBF CENTRAL HEADER #1766  02014B50 (33639248)\n-6FABC3 Created Zip Spec      14 (20) '2.0'\n-6FABC4 Created OS            00 (0) 'MS-DOS'\n-6FABC5 Extract Zip Spec      14 (20) '2.0'\n-6FABC6 Extract OS            00 (0) 'MS-DOS'\n-6FABC7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FABC9 Compression Method    0000 (0) 'Stored'\n-6FABCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FABCF CRC                   8CA55593 (2359645587)\n-6FABD3 Compressed Size       00000546 (1350)\n-6FABD7 Uncompressed Size     00000546 (1350)\n-6FABDB Filename Length       003A (58)\n-6FABDD Extra Length          0009 (9)\n-6FABDF Comment Length        0000 (0)\n-6FABE1 Disk Start            0000 (0)\n-6FABE3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FABE5 Ext File Attributes   00000000 (0)\n-6FABE9 Local Header Offset   00601DCD (6299085)\n-6FABED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FABED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAC27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAC29   Length              0005 (5)\n-6FAC2B   Flags               01 (1) 'Modification'\n-6FAC2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAC30 CENTRAL HEADER #1767  02014B50 (33639248)\n-6FAC34 Created Zip Spec      14 (20) '2.0'\n-6FAC35 Created OS            00 (0) 'MS-DOS'\n-6FAC36 Extract Zip Spec      14 (20) '2.0'\n-6FAC37 Extract OS            00 (0) 'MS-DOS'\n-6FAC38 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAC3A Compression Method    0000 (0) 'Stored'\n-6FAC3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAC40 CRC                   BDD5C58A (3184903562)\n-6FAC44 Compressed Size       000006DC (1756)\n-6FAC48 Uncompressed Size     000006DC (1756)\n-6FAC4C Filename Length       0041 (65)\n-6FAC4E Extra Length          0009 (9)\n-6FAC50 Comment Length        0000 (0)\n-6FAC52 Disk Start            0000 (0)\n-6FAC54 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAC56 Ext File Attributes   00000000 (0)\n-6FAC5A Local Header Offset   00602384 (6300548)\n-6FAC5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAC5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAC9F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FACA1   Length              0005 (5)\n-6FACA3   Flags               01 (1) 'Modification'\n-6FACA4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FACA8 CENTRAL HEADER #1768  02014B50 (33639248)\n-6FACAC Created Zip Spec      14 (20) '2.0'\n-6FACAD Created OS            00 (0) 'MS-DOS'\n-6FACAE Extract Zip Spec      14 (20) '2.0'\n-6FACAF Extract OS            00 (0) 'MS-DOS'\n-6FACB0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FACB2 Compression Method    0000 (0) 'Stored'\n-6FACB4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FACB8 CRC                   DBE638BA (3689298106)\n-6FACBC Compressed Size       00000518 (1304)\n-6FACC0 Uncompressed Size     00000518 (1304)\n-6FACC4 Filename Length       003A (58)\n-6FACC6 Extra Length          0009 (9)\n-6FACC8 Comment Length        0000 (0)\n-6FACCA Disk Start            0000 (0)\n-6FACCC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FACCE Ext File Attributes   00000000 (0)\n-6FACD2 Local Header Offset   00602AD8 (6302424)\n-6FACD6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FACD6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAD10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAD12   Length              0005 (5)\n-6FAD14   Flags               01 (1) 'Modification'\n-6FAD15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAD19 CENTRAL HEADER #1769  02014B50 (33639248)\n-6FAD1D Created Zip Spec      14 (20) '2.0'\n-6FAD1E Created OS            00 (0) 'MS-DOS'\n-6FAD1F Extract Zip Spec      14 (20) '2.0'\n-6FAD20 Extract OS            00 (0) 'MS-DOS'\n-6FAD21 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAD23 Compression Method    0000 (0) 'Stored'\n-6FAD25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAD29 CRC                   4263898A (1113819530)\n-6FAD2D Compressed Size       00001420 (5152)\n-6FAD31 Uncompressed Size     00001420 (5152)\n-6FAD35 Filename Length       0041 (65)\n-6FAD37 Extra Length          0009 (9)\n-6FAD39 Comment Length        0000 (0)\n-6FAD3B Disk Start            0000 (0)\n-6FAD3D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAD3F Ext File Attributes   00000000 (0)\n-6FAD43 Local Header Offset   00603061 (6303841)\n-6FAD47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAD47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAD88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAD8A   Length              0005 (5)\n-6FAD8C   Flags               01 (1) 'Modification'\n-6FAD8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAD91 CENTRAL HEADER #1770  02014B50 (33639248)\n-6FAD95 Created Zip Spec      14 (20) '2.0'\n-6FAD96 Created OS            00 (0) 'MS-DOS'\n-6FAD97 Extract Zip Spec      14 (20) '2.0'\n-6FAD98 Extract OS            00 (0) 'MS-DOS'\n-6FAD99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAD9B Compression Method    0000 (0) 'Stored'\n-6FAD9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FADA1 CRC                   61647F39 (1633976121)\n-6FADA5 Compressed Size       0000187C (6268)\n-6FADA9 Uncompressed Size     0000187C (6268)\n-6FADAD Filename Length       0036 (54)\n-6FADAF Extra Length          0009 (9)\n-6FADB1 Comment Length        0000 (0)\n-6FADB3 Disk Start            0000 (0)\n-6FADB5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FADB7 Ext File Attributes   00000000 (0)\n-6FADBB Local Header Offset   006044F9 (6309113)\n-6FADBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FADBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FADF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FADF7   Length              0005 (5)\n-6FADF9   Flags               01 (1) 'Modification'\n-6FADFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FADFE CENTRAL HEADER #1771  02014B50 (33639248)\n-6FAE02 Created Zip Spec      14 (20) '2.0'\n-6FAE03 Created OS            00 (0) 'MS-DOS'\n-6FAE04 Extract Zip Spec      14 (20) '2.0'\n-6FAE05 Extract OS            00 (0) 'MS-DOS'\n-6FAE06 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAE08 Compression Method    0000 (0) 'Stored'\n-6FAE0A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAE0E CRC                   48FD2377 (1224549239)\n-6FAE12 Compressed Size       00000559 (1369)\n-6FAE16 Uncompressed Size     00000559 (1369)\n-6FAE1A Filename Length       0039 (57)\n-6FAE1C Extra Length          0009 (9)\n-6FAE1E Comment Length        0000 (0)\n-6FAE20 Disk Start            0000 (0)\n-6FAE22 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAE24 Ext File Attributes   00000000 (0)\n-6FAE28 Local Header Offset   00605DE2 (6315490)\n-6FAE2C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAE2C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAE65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAE67   Length              0005 (5)\n-6FAE69   Flags               01 (1) 'Modification'\n-6FAE6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAE6E CENTRAL HEADER #1772  02014B50 (33639248)\n-6FAE72 Created Zip Spec      14 (20) '2.0'\n-6FAE73 Created OS            00 (0) 'MS-DOS'\n-6FAE74 Extract Zip Spec      14 (20) '2.0'\n-6FAE75 Extract OS            00 (0) 'MS-DOS'\n-6FAE76 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAE78 Compression Method    0000 (0) 'Stored'\n-6FAE7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAE7E CRC                   DAA0DBC8 (3667975112)\n-6FAE82 Compressed Size       00001AD7 (6871)\n-6FAE86 Uncompressed Size     00001AD7 (6871)\n-6FAE8A Filename Length       0040 (64)\n-6FAE8C Extra Length          0009 (9)\n-6FAE8E Comment Length        0000 (0)\n-6FAE90 Disk Start            0000 (0)\n-6FAE92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAE94 Ext File Attributes   00000000 (0)\n-6FAE98 Local Header Offset   006063AB (6316971)\n-6FAE9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAE9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAEDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAEDE   Length              0005 (5)\n-6FAEE0   Flags               01 (1) 'Modification'\n-6FAEE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAEE5 CENTRAL HEADER #1773  02014B50 (33639248)\n-6FAEE9 Created Zip Spec      14 (20) '2.0'\n-6FAEEA Created OS            00 (0) 'MS-DOS'\n-6FAEEB Extract Zip Spec      14 (20) '2.0'\n-6FAEEC Extract OS            00 (0) 'MS-DOS'\n-6FAEED General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAEEF Compression Method    0000 (0) 'Stored'\n-6FAEF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAEF5 CRC                   887DA686 (2289936006)\n-6FAEF9 Compressed Size       00000559 (1369)\n-6FAEFD Uncompressed Size     00000559 (1369)\n-6FAF01 Filename Length       0039 (57)\n-6FAF03 Extra Length          0009 (9)\n-6FAF05 Comment Length        0000 (0)\n-6FAF07 Disk Start            0000 (0)\n-6FAF09 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAF0B Ext File Attributes   00000000 (0)\n-6FAF0F Local Header Offset   00607EF9 (6323961)\n-6FAF13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAF13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAF4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAF4E   Length              0005 (5)\n-6FAF50   Flags               01 (1) 'Modification'\n-6FAF51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAF55 CENTRAL HEADER #1774  02014B50 (33639248)\n-6FAF59 Created Zip Spec      14 (20) '2.0'\n-6FAF5A Created OS            00 (0) 'MS-DOS'\n-6FAF5B Extract Zip Spec      14 (20) '2.0'\n-6FAF5C Extract OS            00 (0) 'MS-DOS'\n-6FAF5D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAF5F Compression Method    0000 (0) 'Stored'\n-6FAF61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAF65 CRC                   A7345C3C (2805226556)\n-6FAF69 Compressed Size       00000B51 (2897)\n-6FAF6D Uncompressed Size     00000B51 (2897)\n-6FAF71 Filename Length       0040 (64)\n-6FAF73 Extra Length          0009 (9)\n-6FAF75 Comment Length        0000 (0)\n-6FAF77 Disk Start            0000 (0)\n-6FAF79 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAF7B Ext File Attributes   00000000 (0)\n-6FAF7F Local Header Offset   006084C2 (6325442)\n-6FAF83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAF83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FAFC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FAFC5   Length              0005 (5)\n-6FAFC7   Flags               01 (1) 'Modification'\n-6FAFC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FAFCC CENTRAL HEADER #1775  02014B50 (33639248)\n-6FAFD0 Created Zip Spec      14 (20) '2.0'\n-6FAFD1 Created OS            00 (0) 'MS-DOS'\n-6FAFD2 Extract Zip Spec      14 (20) '2.0'\n-6FAFD3 Extract OS            00 (0) 'MS-DOS'\n-6FAFD4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FAFD6 Compression Method    0000 (0) 'Stored'\n-6FAFD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FAFDC CRC                   C412C0D3 (3289563347)\n-6FAFE0 Compressed Size       00000559 (1369)\n-6FAFE4 Uncompressed Size     00000559 (1369)\n-6FAFE8 Filename Length       0039 (57)\n-6FAFEA Extra Length          0009 (9)\n-6FAFEC Comment Length        0000 (0)\n-6FAFEE Disk Start            0000 (0)\n-6FAFF0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FAFF2 Ext File Attributes   00000000 (0)\n-6FAFF6 Local Header Offset   0060908A (6328458)\n-6FAFFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FAFFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB033 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB035   Length              0005 (5)\n-6FB037   Flags               01 (1) 'Modification'\n-6FB038   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB03C CENTRAL HEADER #1776  02014B50 (33639248)\n-6FB040 Created Zip Spec      14 (20) '2.0'\n-6FB041 Created OS            00 (0) 'MS-DOS'\n-6FB042 Extract Zip Spec      14 (20) '2.0'\n-6FB043 Extract OS            00 (0) 'MS-DOS'\n-6FB044 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB046 Compression Method    0000 (0) 'Stored'\n-6FB048 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB04C CRC                   7A3E3AF6 (2050898678)\n-6FB050 Compressed Size       0000158D (5517)\n-6FB054 Uncompressed Size     0000158D (5517)\n-6FB058 Filename Length       0040 (64)\n-6FB05A Extra Length          0009 (9)\n-6FB05C Comment Length        0000 (0)\n-6FB05E Disk Start            0000 (0)\n-6FB060 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB062 Ext File Attributes   00000000 (0)\n-6FB066 Local Header Offset   00609653 (6329939)\n-6FB06A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB06A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB0AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB0AC   Length              0005 (5)\n-6FB0AE   Flags               01 (1) 'Modification'\n-6FB0AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB0B3 CENTRAL HEADER #1777  02014B50 (33639248)\n-6FB0B7 Created Zip Spec      14 (20) '2.0'\n-6FB0B8 Created OS            00 (0) 'MS-DOS'\n-6FB0B9 Extract Zip Spec      14 (20) '2.0'\n-6FB0BA Extract OS            00 (0) 'MS-DOS'\n-6FB0BB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB0BD Compression Method    0000 (0) 'Stored'\n-6FB0BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB0C3 CRC                   68A40EAC (1755582124)\n-6FB0C7 Compressed Size       00000559 (1369)\n-6FB0CB Uncompressed Size     00000559 (1369)\n-6FB0CF Filename Length       0039 (57)\n-6FB0D1 Extra Length          0009 (9)\n-6FB0D3 Comment Length        0000 (0)\n-6FB0D5 Disk Start            0000 (0)\n-6FB0D7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB0D9 Ext File Attributes   00000000 (0)\n-6FB0DD Local Header Offset   0060AC57 (6335575)\n-6FB0E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB0E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB11A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB11C   Length              0005 (5)\n-6FB11E   Flags               01 (1) 'Modification'\n-6FB11F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB123 CENTRAL HEADER #1778  02014B50 (33639248)\n-6FB127 Created Zip Spec      14 (20) '2.0'\n-6FB128 Created OS            00 (0) 'MS-DOS'\n-6FB129 Extract Zip Spec      14 (20) '2.0'\n-6FB12A Extract OS            00 (0) 'MS-DOS'\n-6FB12B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB12D Compression Method    0000 (0) 'Stored'\n-6FB12F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB133 CRC                   DEA6E3F0 (3735479280)\n-6FB137 Compressed Size       00000942 (2370)\n-6FB13B Uncompressed Size     00000942 (2370)\n-6FB13F Filename Length       0040 (64)\n-6FB141 Extra Length          0009 (9)\n-6FB143 Comment Length        0000 (0)\n-6FB145 Disk Start            0000 (0)\n-6FB147 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB149 Ext File Attributes   00000000 (0)\n-6FB14D Local Header Offset   0060B220 (6337056)\n-6FB151 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB151: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB191 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB193   Length              0005 (5)\n-6FB195   Flags               01 (1) 'Modification'\n-6FB196   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB19A CENTRAL HEADER #1779  02014B50 (33639248)\n-6FB19E Created Zip Spec      14 (20) '2.0'\n-6FB19F Created OS            00 (0) 'MS-DOS'\n-6FB1A0 Extract Zip Spec      14 (20) '2.0'\n-6FB1A1 Extract OS            00 (0) 'MS-DOS'\n-6FB1A2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB1A4 Compression Method    0000 (0) 'Stored'\n-6FB1A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB1AA CRC                   1E103695 (504379029)\n-6FB1AE Compressed Size       00000555 (1365)\n-6FB1B2 Uncompressed Size     00000555 (1365)\n-6FB1B6 Filename Length       0038 (56)\n-6FB1B8 Extra Length          0009 (9)\n-6FB1BA Comment Length        0000 (0)\n-6FB1BC Disk Start            0000 (0)\n-6FB1BE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB1C0 Ext File Attributes   00000000 (0)\n-6FB1C4 Local Header Offset   0060BBD9 (6339545)\n-6FB1C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB1C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB200 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB202   Length              0005 (5)\n-6FB204   Flags               01 (1) 'Modification'\n-6FB205   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB209 CENTRAL HEADER #1780  02014B50 (33639248)\n-6FB20D Created Zip Spec      14 (20) '2.0'\n-6FB20E Created OS            00 (0) 'MS-DOS'\n-6FB20F Extract Zip Spec      14 (20) '2.0'\n-6FB210 Extract OS            00 (0) 'MS-DOS'\n-6FB211 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB213 Compression Method    0000 (0) 'Stored'\n-6FB215 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB219 CRC                   27AC8562 (665617762)\n-6FB21D Compressed Size       000014CB (5323)\n-6FB221 Uncompressed Size     000014CB (5323)\n-6FB225 Filename Length       003F (63)\n-6FB227 Extra Length          0009 (9)\n-6FB229 Comment Length        0000 (0)\n-6FB22B Disk Start            0000 (0)\n-6FB22D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB22F Ext File Attributes   00000000 (0)\n-6FB233 Local Header Offset   0060C19D (6341021)\n-6FB237 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB237: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB276 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB278   Length              0005 (5)\n-6FB27A   Flags               01 (1) 'Modification'\n-6FB27B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB27F CENTRAL HEADER #1781  02014B50 (33639248)\n-6FB283 Created Zip Spec      14 (20) '2.0'\n-6FB284 Created OS            00 (0) 'MS-DOS'\n-6FB285 Extract Zip Spec      14 (20) '2.0'\n-6FB286 Extract OS            00 (0) 'MS-DOS'\n-6FB287 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB289 Compression Method    0000 (0) 'Stored'\n-6FB28B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB28F CRC                   D9486541 (3645400385)\n-6FB293 Compressed Size       0000050C (1292)\n-6FB297 Uncompressed Size     0000050C (1292)\n-6FB29B Filename Length       003A (58)\n-6FB29D Extra Length          0009 (9)\n-6FB29F Comment Length        0000 (0)\n-6FB2A1 Disk Start            0000 (0)\n-6FB2A3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB2A5 Ext File Attributes   00000000 (0)\n-6FB2A9 Local Header Offset   0060D6DE (6346462)\n-6FB2AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB2AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB2E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB2E9   Length              0005 (5)\n-6FB2EB   Flags               01 (1) 'Modification'\n-6FB2EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB2F0 CENTRAL HEADER #1782  02014B50 (33639248)\n-6FB2F4 Created Zip Spec      14 (20) '2.0'\n-6FB2F5 Created OS            00 (0) 'MS-DOS'\n-6FB2F6 Extract Zip Spec      14 (20) '2.0'\n-6FB2F7 Extract OS            00 (0) 'MS-DOS'\n-6FB2F8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB2FA Compression Method    0000 (0) 'Stored'\n-6FB2FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB300 CRC                   011CB6AA (18658986)\n-6FB304 Compressed Size       00001DE1 (7649)\n-6FB308 Uncompressed Size     00001DE1 (7649)\n-6FB30C Filename Length       0041 (65)\n-6FB30E Extra Length          0009 (9)\n-6FB310 Comment Length        0000 (0)\n-6FB312 Disk Start            0000 (0)\n-6FB314 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB316 Ext File Attributes   00000000 (0)\n-6FB31A Local Header Offset   0060DC5B (6347867)\n-6FB31E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB31E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB35F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB361   Length              0005 (5)\n-6FB363   Flags               01 (1) 'Modification'\n-6FB364   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB368 CENTRAL HEADER #1783  02014B50 (33639248)\n-6FB36C Created Zip Spec      14 (20) '2.0'\n-6FB36D Created OS            00 (0) 'MS-DOS'\n-6FB36E Extract Zip Spec      14 (20) '2.0'\n-6FB36F Extract OS            00 (0) 'MS-DOS'\n-6FB370 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB372 Compression Method    0000 (0) 'Stored'\n-6FB374 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB378 CRC                   6056B6FB (1616295675)\n-6FB37C Compressed Size       00000490 (1168)\n-6FB380 Uncompressed Size     00000490 (1168)\n-6FB384 Filename Length       0043 (67)\n-6FB386 Extra Length          0009 (9)\n-6FB388 Comment Length        0000 (0)\n-6FB38A Disk Start            0000 (0)\n-6FB38C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB38E Ext File Attributes   00000000 (0)\n-6FB392 Local Header Offset   0060FAB4 (6355636)\n-6FB396 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB396: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB3D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB3DB   Length              0005 (5)\n-6FB3DD   Flags               01 (1) 'Modification'\n-6FB3DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB3E2 CENTRAL HEADER #1784  02014B50 (33639248)\n-6FB3E6 Created Zip Spec      14 (20) '2.0'\n-6FB3E7 Created OS            00 (0) 'MS-DOS'\n-6FB3E8 Extract Zip Spec      14 (20) '2.0'\n-6FB3E9 Extract OS            00 (0) 'MS-DOS'\n-6FB3EA General Purpose Flag  0000 (0)\n-6FB3EC Compression Method    0000 (0) 'Stored'\n-6FB3EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB3F2 CRC                   00000000 (0)\n-6FB3F6 Compressed Size       00000000 (0)\n-6FB3FA Uncompressed Size     00000000 (0)\n-6FB3FE Filename Length       002F (47)\n-6FB400 Extra Length          0009 (9)\n-6FB402 Comment Length        0000 (0)\n-6FB404 Disk Start            0000 (0)\n-6FB406 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB408 Ext File Attributes   00000000 (0)\n-6FB40C Local Header Offset   0060FFBE (6356926)\n-6FB410 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB410: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB43F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB441   Length              0005 (5)\n-6FB443   Flags               01 (1) 'Modification'\n-6FB444   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB448 CENTRAL HEADER #1785  02014B50 (33639248)\n-6FB44C Created Zip Spec      14 (20) '2.0'\n-6FB44D Created OS            00 (0) 'MS-DOS'\n-6FB44E Extract Zip Spec      14 (20) '2.0'\n-6FB44F Extract OS            00 (0) 'MS-DOS'\n-6FB450 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB452 Compression Method    0000 (0) 'Stored'\n-6FB454 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB458 CRC                   3DFE1DA9 (1040063913)\n-6FB45C Compressed Size       00000463 (1123)\n-6FB460 Uncompressed Size     00000463 (1123)\n-6FB464 Filename Length       004E (78)\n-6FB466 Extra Length          0009 (9)\n-6FB468 Comment Length        0000 (0)\n-6FB46A Disk Start            0000 (0)\n-6FB46C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB46E Ext File Attributes   00000000 (0)\n-6FB472 Local Header Offset   00610014 (6357012)\n-6FB476 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB476: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB4C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB4C6   Length              0005 (5)\n-6FB4C8   Flags               01 (1) 'Modification'\n-6FB4C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB4CD CENTRAL HEADER #1786  02014B50 (33639248)\n-6FB4D1 Created Zip Spec      14 (20) '2.0'\n-6FB4D2 Created OS            00 (0) 'MS-DOS'\n-6FB4D3 Extract Zip Spec      14 (20) '2.0'\n-6FB4D4 Extract OS            00 (0) 'MS-DOS'\n-6FB4D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB4D7 Compression Method    0000 (0) 'Stored'\n-6FB4D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB4DD CRC                   026F661D (40855069)\n-6FB4E1 Compressed Size       000006F0 (1776)\n-6FB4E5 Uncompressed Size     000006F0 (1776)\n-6FB4E9 Filename Length       004B (75)\n-6FB4EB Extra Length          0009 (9)\n-6FB4ED Comment Length        0000 (0)\n-6FB4EF Disk Start            0000 (0)\n-6FB4F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB4F3 Ext File Attributes   00000000 (0)\n-6FB4F7 Local Header Offset   006104FC (6358268)\n-6FB4FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB4FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB546 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB548   Length              0005 (5)\n-6FB54A   Flags               01 (1) 'Modification'\n-6FB54B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB54F CENTRAL HEADER #1787  02014B50 (33639248)\n-6FB553 Created Zip Spec      14 (20) '2.0'\n-6FB554 Created OS            00 (0) 'MS-DOS'\n-6FB555 Extract Zip Spec      14 (20) '2.0'\n-6FB556 Extract OS            00 (0) 'MS-DOS'\n-6FB557 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB559 Compression Method    0000 (0) 'Stored'\n-6FB55B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB55F CRC                   8138F7C2 (2167994306)\n-6FB563 Compressed Size       00000CD0 (3280)\n-6FB567 Uncompressed Size     00000CD0 (3280)\n-6FB56B Filename Length       0041 (65)\n-6FB56D Extra Length          0009 (9)\n-6FB56F Comment Length        0000 (0)\n-6FB571 Disk Start            0000 (0)\n-6FB573 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB575 Ext File Attributes   00000000 (0)\n-6FB579 Local Header Offset   00610C6E (6360174)\n-6FB57D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB57D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB5BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB5C0   Length              0005 (5)\n-6FB5C2   Flags               01 (1) 'Modification'\n-6FB5C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB5C7 CENTRAL HEADER #1788  02014B50 (33639248)\n-6FB5CB Created Zip Spec      14 (20) '2.0'\n-6FB5CC Created OS            00 (0) 'MS-DOS'\n-6FB5CD Extract Zip Spec      14 (20) '2.0'\n-6FB5CE Extract OS            00 (0) 'MS-DOS'\n-6FB5CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB5D1 Compression Method    0000 (0) 'Stored'\n-6FB5D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB5D7 CRC                   1A8FEFCC (445640652)\n-6FB5DB Compressed Size       000003BA (954)\n-6FB5DF Uncompressed Size     000003BA (954)\n-6FB5E3 Filename Length       0041 (65)\n-6FB5E5 Extra Length          0009 (9)\n-6FB5E7 Comment Length        0000 (0)\n-6FB5E9 Disk Start            0000 (0)\n-6FB5EB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB5ED Ext File Attributes   00000000 (0)\n-6FB5F1 Local Header Offset   006119B6 (6363574)\n-6FB5F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB5F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB636 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB638   Length              0005 (5)\n-6FB63A   Flags               01 (1) 'Modification'\n-6FB63B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB63F CENTRAL HEADER #1789  02014B50 (33639248)\n-6FB643 Created Zip Spec      14 (20) '2.0'\n-6FB644 Created OS            00 (0) 'MS-DOS'\n-6FB645 Extract Zip Spec      14 (20) '2.0'\n-6FB646 Extract OS            00 (0) 'MS-DOS'\n-6FB647 General Purpose Flag  0000 (0)\n-6FB649 Compression Method    0000 (0) 'Stored'\n-6FB64B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB64F CRC                   00000000 (0)\n-6FB653 Compressed Size       00000000 (0)\n-6FB657 Uncompressed Size     00000000 (0)\n-6FB65B Filename Length       002E (46)\n-6FB65D Extra Length          0009 (9)\n-6FB65F Comment Length        0000 (0)\n-6FB661 Disk Start            0000 (0)\n-6FB663 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB665 Ext File Attributes   00000000 (0)\n-6FB669 Local Header Offset   00611DE8 (6364648)\n-6FB66D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB66D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB69B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB69D   Length              0005 (5)\n-6FB69F   Flags               01 (1) 'Modification'\n-6FB6A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB6A4 CENTRAL HEADER #1790  02014B50 (33639248)\n-6FB6A8 Created Zip Spec      14 (20) '2.0'\n-6FB6A9 Created OS            00 (0) 'MS-DOS'\n-6FB6AA Extract Zip Spec      14 (20) '2.0'\n-6FB6AB Extract OS            00 (0) 'MS-DOS'\n-6FB6AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB6AE Compression Method    0000 (0) 'Stored'\n-6FB6B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB6B4 CRC                   1071481B (275859483)\n-6FB6B8 Compressed Size       0000058B (1419)\n-6FB6BC Uncompressed Size     0000058B (1419)\n-6FB6C0 Filename Length       0043 (67)\n-6FB6C2 Extra Length          0009 (9)\n-6FB6C4 Comment Length        0000 (0)\n-6FB6C6 Disk Start            0000 (0)\n-6FB6C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB6CA Ext File Attributes   00000000 (0)\n-6FB6CE Local Header Offset   00611E3D (6364733)\n-6FB6D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB6D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB715 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB717   Length              0005 (5)\n-6FB719   Flags               01 (1) 'Modification'\n-6FB71A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB71E CENTRAL HEADER #1791  02014B50 (33639248)\n-6FB722 Created Zip Spec      14 (20) '2.0'\n-6FB723 Created OS            00 (0) 'MS-DOS'\n-6FB724 Extract Zip Spec      14 (20) '2.0'\n-6FB725 Extract OS            00 (0) 'MS-DOS'\n-6FB726 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB728 Compression Method    0000 (0) 'Stored'\n-6FB72A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB72E CRC                   E4476BF5 (3829885941)\n-6FB732 Compressed Size       00002BF8 (11256)\n-6FB736 Uncompressed Size     00002BF8 (11256)\n-6FB73A Filename Length       004A (74)\n-6FB73C Extra Length          0009 (9)\n-6FB73E Comment Length        0000 (0)\n-6FB740 Disk Start            0000 (0)\n-6FB742 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB744 Ext File Attributes   00000000 (0)\n-6FB748 Local Header Offset   00612442 (6366274)\n-6FB74C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB74C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB796 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB798   Length              0005 (5)\n-6FB79A   Flags               01 (1) 'Modification'\n-6FB79B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB79F CENTRAL HEADER #1792  02014B50 (33639248)\n-6FB7A3 Created Zip Spec      14 (20) '2.0'\n-6FB7A4 Created OS            00 (0) 'MS-DOS'\n-6FB7A5 Extract Zip Spec      14 (20) '2.0'\n-6FB7A6 Extract OS            00 (0) 'MS-DOS'\n-6FB7A7 General Purpose Flag  0000 (0)\n-6FB7A9 Compression Method    0000 (0) 'Stored'\n-6FB7AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB7AF CRC                   00000000 (0)\n-6FB7B3 Compressed Size       00000000 (0)\n-6FB7B7 Uncompressed Size     00000000 (0)\n-6FB7BB Filename Length       002D (45)\n-6FB7BD Extra Length          0009 (9)\n-6FB7BF Comment Length        0000 (0)\n-6FB7C1 Disk Start            0000 (0)\n-6FB7C3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB7C5 Ext File Attributes   00000000 (0)\n-6FB7C9 Local Header Offset   006150BB (6377659)\n-6FB7CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB7CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB7FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB7FC   Length              0005 (5)\n-6FB7FE   Flags               01 (1) 'Modification'\n-6FB7FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB803 CENTRAL HEADER #1793  02014B50 (33639248)\n-6FB807 Created Zip Spec      14 (20) '2.0'\n-6FB808 Created OS            00 (0) 'MS-DOS'\n-6FB809 Extract Zip Spec      14 (20) '2.0'\n-6FB80A Extract OS            00 (0) 'MS-DOS'\n-6FB80B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB80D Compression Method    0000 (0) 'Stored'\n-6FB80F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB813 CRC                   F23CFA2B (4064082475)\n-6FB817 Compressed Size       000014C8 (5320)\n-6FB81B Uncompressed Size     000014C8 (5320)\n-6FB81F Filename Length       0041 (65)\n-6FB821 Extra Length          0009 (9)\n-6FB823 Comment Length        0000 (0)\n-6FB825 Disk Start            0000 (0)\n-6FB827 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB829 Ext File Attributes   00000000 (0)\n-6FB82D Local Header Offset   0061510F (6377743)\n-6FB831 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB831: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB872 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB874   Length              0005 (5)\n-6FB876   Flags               01 (1) 'Modification'\n-6FB877   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB87B CENTRAL HEADER #1794  02014B50 (33639248)\n-6FB87F Created Zip Spec      14 (20) '2.0'\n-6FB880 Created OS            00 (0) 'MS-DOS'\n-6FB881 Extract Zip Spec      14 (20) '2.0'\n-6FB882 Extract OS            00 (0) 'MS-DOS'\n-6FB883 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB885 Compression Method    0000 (0) 'Stored'\n-6FB887 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB88B CRC                   A2C265E1 (2730649057)\n-6FB88F Compressed Size       00001D45 (7493)\n-6FB893 Uncompressed Size     00001D45 (7493)\n-6FB897 Filename Length       0044 (68)\n-6FB899 Extra Length          0009 (9)\n-6FB89B Comment Length        0000 (0)\n-6FB89D Disk Start            0000 (0)\n-6FB89F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB8A1 Ext File Attributes   00000000 (0)\n-6FB8A5 Local Header Offset   0061664F (6383183)\n-6FB8A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB8A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB8ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB8EF   Length              0005 (5)\n-6FB8F1   Flags               01 (1) 'Modification'\n-6FB8F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB8F6 CENTRAL HEADER #1795  02014B50 (33639248)\n-6FB8FA Created Zip Spec      14 (20) '2.0'\n-6FB8FB Created OS            00 (0) 'MS-DOS'\n-6FB8FC Extract Zip Spec      14 (20) '2.0'\n-6FB8FD Extract OS            00 (0) 'MS-DOS'\n-6FB8FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB900 Compression Method    0000 (0) 'Stored'\n-6FB902 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB906 CRC                   AEA9AD13 (2930355475)\n-6FB90A Compressed Size       000005BA (1466)\n-6FB90E Uncompressed Size     000005BA (1466)\n-6FB912 Filename Length       0044 (68)\n-6FB914 Extra Length          0009 (9)\n-6FB916 Comment Length        0000 (0)\n-6FB918 Disk Start            0000 (0)\n-6FB91A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB91C Ext File Attributes   00000000 (0)\n-6FB920 Local Header Offset   0061840F (6390799)\n-6FB924 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB924: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB968 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB96A   Length              0005 (5)\n-6FB96C   Flags               01 (1) 'Modification'\n-6FB96D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB971 CENTRAL HEADER #1796  02014B50 (33639248)\n-6FB975 Created Zip Spec      14 (20) '2.0'\n-6FB976 Created OS            00 (0) 'MS-DOS'\n-6FB977 Extract Zip Spec      14 (20) '2.0'\n-6FB978 Extract OS            00 (0) 'MS-DOS'\n-6FB979 General Purpose Flag  0000 (0)\n-6FB97B Compression Method    0000 (0) 'Stored'\n-6FB97D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB981 CRC                   00000000 (0)\n-6FB985 Compressed Size       00000000 (0)\n-6FB989 Uncompressed Size     00000000 (0)\n-6FB98D Filename Length       001C (28)\n-6FB98F Extra Length          0009 (9)\n-6FB991 Comment Length        0000 (0)\n-6FB993 Disk Start            0000 (0)\n-6FB995 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB997 Ext File Attributes   00000000 (0)\n-6FB99B Local Header Offset   00618A44 (6392388)\n-6FB99F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB99F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FB9BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FB9BD   Length              0005 (5)\n-6FB9BF   Flags               01 (1) 'Modification'\n-6FB9C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FB9C4 CENTRAL HEADER #1797  02014B50 (33639248)\n-6FB9C8 Created Zip Spec      14 (20) '2.0'\n-6FB9C9 Created OS            00 (0) 'MS-DOS'\n-6FB9CA Extract Zip Spec      14 (20) '2.0'\n-6FB9CB Extract OS            00 (0) 'MS-DOS'\n-6FB9CC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FB9CE Compression Method    0000 (0) 'Stored'\n-6FB9D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FB9D4 CRC                   300456E0 (805590752)\n-6FB9D8 Compressed Size       00001D9B (7579)\n-6FB9DC Uncompressed Size     00001D9B (7579)\n-6FB9E0 Filename Length       0030 (48)\n-6FB9E2 Extra Length          0009 (9)\n-6FB9E4 Comment Length        0000 (0)\n-6FB9E6 Disk Start            0000 (0)\n-6FB9E8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FB9EA Ext File Attributes   00000000 (0)\n-6FB9EE Local Header Offset   00618A87 (6392455)\n-6FB9F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FB9F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBA22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBA24   Length              0005 (5)\n-6FBA26   Flags               01 (1) 'Modification'\n-6FBA27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBA2B CENTRAL HEADER #1798  02014B50 (33639248)\n-6FBA2F Created Zip Spec      14 (20) '2.0'\n-6FBA30 Created OS            00 (0) 'MS-DOS'\n-6FBA31 Extract Zip Spec      14 (20) '2.0'\n-6FBA32 Extract OS            00 (0) 'MS-DOS'\n-6FBA33 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBA35 Compression Method    0000 (0) 'Stored'\n-6FBA37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBA3B CRC                   B52DE397 (3039683479)\n-6FBA3F Compressed Size       00001623 (5667)\n-6FBA43 Uncompressed Size     00001623 (5667)\n-6FBA47 Filename Length       0032 (50)\n-6FBA49 Extra Length          0009 (9)\n-6FBA4B Comment Length        0000 (0)\n-6FBA4D Disk Start            0000 (0)\n-6FBA4F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBA51 Ext File Attributes   00000000 (0)\n-6FBA55 Local Header Offset   0061A889 (6400137)\n-6FBA59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBA59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBA8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBA8D   Length              0005 (5)\n-6FBA8F   Flags               01 (1) 'Modification'\n-6FBA90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBA94 CENTRAL HEADER #1799  02014B50 (33639248)\n-6FBA98 Created Zip Spec      14 (20) '2.0'\n-6FBA99 Created OS            00 (0) 'MS-DOS'\n-6FBA9A Extract Zip Spec      14 (20) '2.0'\n-6FBA9B Extract OS            00 (0) 'MS-DOS'\n-6FBA9C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBA9E Compression Method    0000 (0) 'Stored'\n-6FBAA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBAA4 CRC                   851F3F00 (2233417472)\n-6FBAA8 Compressed Size       00000723 (1827)\n-6FBAAC Uncompressed Size     00000723 (1827)\n-6FBAB0 Filename Length       0032 (50)\n-6FBAB2 Extra Length          0009 (9)\n-6FBAB4 Comment Length        0000 (0)\n-6FBAB6 Disk Start            0000 (0)\n-6FBAB8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBABA Ext File Attributes   00000000 (0)\n-6FBABE Local Header Offset   0061BF15 (6405909)\n-6FBAC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBAC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBAF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBAF6   Length              0005 (5)\n-6FBAF8   Flags               01 (1) 'Modification'\n-6FBAF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBAFD CENTRAL HEADER #1800  02014B50 (33639248)\n-6FBB01 Created Zip Spec      14 (20) '2.0'\n-6FBB02 Created OS            00 (0) 'MS-DOS'\n-6FBB03 Extract Zip Spec      14 (20) '2.0'\n-6FBB04 Extract OS            00 (0) 'MS-DOS'\n-6FBB05 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBB07 Compression Method    0000 (0) 'Stored'\n-6FBB09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBB0D CRC                   86FDBE3E (2264776254)\n-6FBB11 Compressed Size       00000FB9 (4025)\n-6FBB15 Uncompressed Size     00000FB9 (4025)\n-6FBB19 Filename Length       0031 (49)\n-6FBB1B Extra Length          0009 (9)\n-6FBB1D Comment Length        0000 (0)\n-6FBB1F Disk Start            0000 (0)\n-6FBB21 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBB23 Ext File Attributes   00000000 (0)\n-6FBB27 Local Header Offset   0061C6A1 (6407841)\n-6FBB2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBB2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBB5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBB5E   Length              0005 (5)\n-6FBB60   Flags               01 (1) 'Modification'\n-6FBB61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBB65 CENTRAL HEADER #1801  02014B50 (33639248)\n-6FBB69 Created Zip Spec      14 (20) '2.0'\n-6FBB6A Created OS            00 (0) 'MS-DOS'\n-6FBB6B Extract Zip Spec      14 (20) '2.0'\n-6FBB6C Extract OS            00 (0) 'MS-DOS'\n-6FBB6D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBB6F Compression Method    0000 (0) 'Stored'\n-6FBB71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBB75 CRC                   A0F5CB6A (2700462954)\n-6FBB79 Compressed Size       00000D48 (3400)\n-6FBB7D Uncompressed Size     00000D48 (3400)\n-6FBB81 Filename Length       0036 (54)\n-6FBB83 Extra Length          0009 (9)\n-6FBB85 Comment Length        0000 (0)\n-6FBB87 Disk Start            0000 (0)\n-6FBB89 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBB8B Ext File Attributes   00000000 (0)\n-6FBB8F Local Header Offset   0061D6C2 (6411970)\n-6FBB93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBB93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBBC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBBCB   Length              0005 (5)\n-6FBBCD   Flags               01 (1) 'Modification'\n-6FBBCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBBD2 CENTRAL HEADER #1802  02014B50 (33639248)\n-6FBBD6 Created Zip Spec      14 (20) '2.0'\n-6FBBD7 Created OS            00 (0) 'MS-DOS'\n-6FBBD8 Extract Zip Spec      14 (20) '2.0'\n-6FBBD9 Extract OS            00 (0) 'MS-DOS'\n-6FBBDA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBBDC Compression Method    0000 (0) 'Stored'\n-6FBBDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBBE2 CRC                   38AEBD8D (950975885)\n-6FBBE6 Compressed Size       00001838 (6200)\n-6FBBEA Uncompressed Size     00001838 (6200)\n-6FBBEE Filename Length       002E (46)\n-6FBBF0 Extra Length          0009 (9)\n-6FBBF2 Comment Length        0000 (0)\n-6FBBF4 Disk Start            0000 (0)\n-6FBBF6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBBF8 Ext File Attributes   00000000 (0)\n-6FBBFC Local Header Offset   0061E477 (6415479)\n-6FBC00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBC00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBC2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBC30   Length              0005 (5)\n-6FBC32   Flags               01 (1) 'Modification'\n-6FBC33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBC37 CENTRAL HEADER #1803  02014B50 (33639248)\n-6FBC3B Created Zip Spec      14 (20) '2.0'\n-6FBC3C Created OS            00 (0) 'MS-DOS'\n-6FBC3D Extract Zip Spec      14 (20) '2.0'\n-6FBC3E Extract OS            00 (0) 'MS-DOS'\n-6FBC3F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBC41 Compression Method    0000 (0) 'Stored'\n-6FBC43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBC47 CRC                   5D6B9E17 (1567333911)\n-6FBC4B Compressed Size       00000CC3 (3267)\n-6FBC4F Uncompressed Size     00000CC3 (3267)\n-6FBC53 Filename Length       0031 (49)\n-6FBC55 Extra Length          0009 (9)\n-6FBC57 Comment Length        0000 (0)\n-6FBC59 Disk Start            0000 (0)\n-6FBC5B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBC5D Ext File Attributes   00000000 (0)\n-6FBC61 Local Header Offset   0061FD14 (6421780)\n-6FBC65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBC65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBC96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBC98   Length              0005 (5)\n-6FBC9A   Flags               01 (1) 'Modification'\n-6FBC9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBC9F CENTRAL HEADER #1804  02014B50 (33639248)\n-6FBCA3 Created Zip Spec      14 (20) '2.0'\n-6FBCA4 Created OS            00 (0) 'MS-DOS'\n-6FBCA5 Extract Zip Spec      14 (20) '2.0'\n-6FBCA6 Extract OS            00 (0) 'MS-DOS'\n-6FBCA7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBCA9 Compression Method    0000 (0) 'Stored'\n-6FBCAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBCAF CRC                   33E95645 (870929989)\n-6FBCB3 Compressed Size       0000073C (1852)\n-6FBCB7 Uncompressed Size     0000073C (1852)\n-6FBCBB Filename Length       002B (43)\n-6FBCBD Extra Length          0009 (9)\n-6FBCBF Comment Length        0000 (0)\n-6FBCC1 Disk Start            0000 (0)\n-6FBCC3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBCC5 Ext File Attributes   00000000 (0)\n-6FBCC9 Local Header Offset   00620A3F (6425151)\n-6FBCCD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBCCD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBCF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBCFA   Length              0005 (5)\n-6FBCFC   Flags               01 (1) 'Modification'\n-6FBCFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBD01 CENTRAL HEADER #1805  02014B50 (33639248)\n-6FBD05 Created Zip Spec      14 (20) '2.0'\n-6FBD06 Created OS            00 (0) 'MS-DOS'\n-6FBD07 Extract Zip Spec      14 (20) '2.0'\n-6FBD08 Extract OS            00 (0) 'MS-DOS'\n-6FBD09 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBD0B Compression Method    0000 (0) 'Stored'\n-6FBD0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBD11 CRC                   DF14BD96 (3742678422)\n-6FBD15 Compressed Size       000016A6 (5798)\n-6FBD19 Uncompressed Size     000016A6 (5798)\n-6FBD1D Filename Length       0030 (48)\n-6FBD1F Extra Length          0009 (9)\n-6FBD21 Comment Length        0000 (0)\n-6FBD23 Disk Start            0000 (0)\n-6FBD25 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBD27 Ext File Attributes   00000000 (0)\n-6FBD2B Local Header Offset   006211DD (6427101)\n-6FBD2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBD2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBD5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBD61   Length              0005 (5)\n-6FBD63   Flags               01 (1) 'Modification'\n-6FBD64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBD68 CENTRAL HEADER #1806  02014B50 (33639248)\n-6FBD6C Created Zip Spec      14 (20) '2.0'\n-6FBD6D Created OS            00 (0) 'MS-DOS'\n-6FBD6E Extract Zip Spec      14 (20) '2.0'\n-6FBD6F Extract OS            00 (0) 'MS-DOS'\n-6FBD70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBD72 Compression Method    0000 (0) 'Stored'\n-6FBD74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBD78 CRC                   FA17120C (4195815948)\n-6FBD7C Compressed Size       00000EE2 (3810)\n-6FBD80 Uncompressed Size     00000EE2 (3810)\n-6FBD84 Filename Length       0033 (51)\n-6FBD86 Extra Length          0009 (9)\n-6FBD88 Comment Length        0000 (0)\n-6FBD8A Disk Start            0000 (0)\n-6FBD8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBD8E Ext File Attributes   00000000 (0)\n-6FBD92 Local Header Offset   006228EA (6433002)\n-6FBD96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBD96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBDC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBDCB   Length              0005 (5)\n-6FBDCD   Flags               01 (1) 'Modification'\n-6FBDCE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBDD2 CENTRAL HEADER #1807  02014B50 (33639248)\n-6FBDD6 Created Zip Spec      14 (20) '2.0'\n-6FBDD7 Created OS            00 (0) 'MS-DOS'\n-6FBDD8 Extract Zip Spec      14 (20) '2.0'\n-6FBDD9 Extract OS            00 (0) 'MS-DOS'\n-6FBDDA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBDDC Compression Method    0000 (0) 'Stored'\n-6FBDDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBDE2 CRC                   BCD228F3 (3167889651)\n-6FBDE6 Compressed Size       0000334E (13134)\n-6FBDEA Uncompressed Size     0000334E (13134)\n-6FBDEE Filename Length       002E (46)\n-6FBDF0 Extra Length          0009 (9)\n-6FBDF2 Comment Length        0000 (0)\n-6FBDF4 Disk Start            0000 (0)\n-6FBDF6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBDF8 Ext File Attributes   00000000 (0)\n-6FBDFC Local Header Offset   00623836 (6436918)\n-6FBE00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBE00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBE2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBE30   Length              0005 (5)\n-6FBE32   Flags               01 (1) 'Modification'\n-6FBE33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBE37 CENTRAL HEADER #1808  02014B50 (33639248)\n-6FBE3B Created Zip Spec      14 (20) '2.0'\n-6FBE3C Created OS            00 (0) 'MS-DOS'\n-6FBE3D Extract Zip Spec      14 (20) '2.0'\n-6FBE3E Extract OS            00 (0) 'MS-DOS'\n-6FBE3F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBE41 Compression Method    0000 (0) 'Stored'\n-6FBE43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBE47 CRC                   BDC74FB9 (3183955897)\n-6FBE4B Compressed Size       00002C1E (11294)\n-6FBE4F Uncompressed Size     00002C1E (11294)\n-6FBE53 Filename Length       0032 (50)\n-6FBE55 Extra Length          0009 (9)\n-6FBE57 Comment Length        0000 (0)\n-6FBE59 Disk Start            0000 (0)\n-6FBE5B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBE5D Ext File Attributes   00000000 (0)\n-6FBE61 Local Header Offset   00626BE9 (6450153)\n-6FBE65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBE65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBE97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBE99   Length              0005 (5)\n-6FBE9B   Flags               01 (1) 'Modification'\n-6FBE9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBEA0 CENTRAL HEADER #1809  02014B50 (33639248)\n-6FBEA4 Created Zip Spec      14 (20) '2.0'\n-6FBEA5 Created OS            00 (0) 'MS-DOS'\n-6FBEA6 Extract Zip Spec      14 (20) '2.0'\n-6FBEA7 Extract OS            00 (0) 'MS-DOS'\n-6FBEA8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBEAA Compression Method    0000 (0) 'Stored'\n-6FBEAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBEB0 CRC                   4BE7E92F (1273489711)\n-6FBEB4 Compressed Size       00000B3B (2875)\n-6FBEB8 Uncompressed Size     00000B3B (2875)\n-6FBEBC Filename Length       002E (46)\n-6FBEBE Extra Length          0009 (9)\n-6FBEC0 Comment Length        0000 (0)\n-6FBEC2 Disk Start            0000 (0)\n-6FBEC4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBEC6 Ext File Attributes   00000000 (0)\n-6FBECA Local Header Offset   00629870 (6461552)\n-6FBECE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBECE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBEFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBEFE   Length              0005 (5)\n-6FBF00   Flags               01 (1) 'Modification'\n-6FBF01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBF05 CENTRAL HEADER #1810  02014B50 (33639248)\n-6FBF09 Created Zip Spec      14 (20) '2.0'\n-6FBF0A Created OS            00 (0) 'MS-DOS'\n-6FBF0B Extract Zip Spec      14 (20) '2.0'\n-6FBF0C Extract OS            00 (0) 'MS-DOS'\n-6FBF0D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBF0F Compression Method    0000 (0) 'Stored'\n-6FBF11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBF15 CRC                   EE9BE4CE (4003194062)\n-6FBF19 Compressed Size       00000A15 (2581)\n-6FBF1D Uncompressed Size     00000A15 (2581)\n-6FBF21 Filename Length       002C (44)\n-6FBF23 Extra Length          0009 (9)\n-6FBF25 Comment Length        0000 (0)\n-6FBF27 Disk Start            0000 (0)\n-6FBF29 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBF2B Ext File Attributes   00000000 (0)\n-6FBF2F Local Header Offset   0062A410 (6464528)\n-6FBF33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBF33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBF5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBF61   Length              0005 (5)\n-6FBF63   Flags               01 (1) 'Modification'\n-6FBF64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBF68 CENTRAL HEADER #1811  02014B50 (33639248)\n-6FBF6C Created Zip Spec      14 (20) '2.0'\n-6FBF6D Created OS            00 (0) 'MS-DOS'\n-6FBF6E Extract Zip Spec      14 (20) '2.0'\n-6FBF6F Extract OS            00 (0) 'MS-DOS'\n-6FBF70 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FBF72 Compression Method    0000 (0) 'Stored'\n-6FBF74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBF78 CRC                   24C74556 (617039190)\n-6FBF7C Compressed Size       00000A01 (2561)\n-6FBF80 Uncompressed Size     00000A01 (2561)\n-6FBF84 Filename Length       002F (47)\n-6FBF86 Extra Length          0009 (9)\n-6FBF88 Comment Length        0000 (0)\n-6FBF8A Disk Start            0000 (0)\n-6FBF8C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBF8E Ext File Attributes   00000000 (0)\n-6FBF92 Local Header Offset   0062AE88 (6467208)\n-6FBF96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBF96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FBFC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FBFC7   Length              0005 (5)\n-6FBFC9   Flags               01 (1) 'Modification'\n-6FBFCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FBFCE CENTRAL HEADER #1812  02014B50 (33639248)\n-6FBFD2 Created Zip Spec      14 (20) '2.0'\n-6FBFD3 Created OS            00 (0) 'MS-DOS'\n-6FBFD4 Extract Zip Spec      14 (20) '2.0'\n-6FBFD5 Extract OS            00 (0) 'MS-DOS'\n-6FBFD6 General Purpose Flag  0000 (0)\n-6FBFD8 Compression Method    0000 (0) 'Stored'\n-6FBFDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FBFDE CRC                   00000000 (0)\n-6FBFE2 Compressed Size       00000000 (0)\n-6FBFE6 Uncompressed Size     00000000 (0)\n-6FBFEA Filename Length       0020 (32)\n-6FBFEC Extra Length          0009 (9)\n-6FBFEE Comment Length        0000 (0)\n-6FBFF0 Disk Start            0000 (0)\n-6FBFF2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FBFF4 Ext File Attributes   00000000 (0)\n-6FBFF8 Local Header Offset   0062B8EF (6469871)\n-6FBFFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FBFFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC01C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC01E   Length              0005 (5)\n-6FC020   Flags               01 (1) 'Modification'\n-6FC021   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC025 CENTRAL HEADER #1813  02014B50 (33639248)\n-6FC029 Created Zip Spec      14 (20) '2.0'\n-6FC02A Created OS            00 (0) 'MS-DOS'\n-6FC02B Extract Zip Spec      14 (20) '2.0'\n-6FC02C Extract OS            00 (0) 'MS-DOS'\n-6FC02D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC02F Compression Method    0000 (0) 'Stored'\n-6FC031 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC035 CRC                   F1C552FF (4056240895)\n-6FC039 Compressed Size       00000A9C (2716)\n-6FC03D Uncompressed Size     00000A9C (2716)\n-6FC041 Filename Length       0036 (54)\n-6FC043 Extra Length          0009 (9)\n-6FC045 Comment Length        0000 (0)\n-6FC047 Disk Start            0000 (0)\n-6FC049 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC04B Ext File Attributes   00000000 (0)\n-6FC04F Local Header Offset   0062B936 (6469942)\n-6FC053 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC053: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC089 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC08B   Length              0005 (5)\n-6FC08D   Flags               01 (1) 'Modification'\n-6FC08E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC092 CENTRAL HEADER #1814  02014B50 (33639248)\n-6FC096 Created Zip Spec      14 (20) '2.0'\n-6FC097 Created OS            00 (0) 'MS-DOS'\n-6FC098 Extract Zip Spec      14 (20) '2.0'\n-6FC099 Extract OS            00 (0) 'MS-DOS'\n-6FC09A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC09C Compression Method    0000 (0) 'Stored'\n-6FC09E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC0A2 CRC                   0D540AED (223611629)\n-6FC0A6 Compressed Size       00000A14 (2580)\n-6FC0AA Uncompressed Size     00000A14 (2580)\n-6FC0AE Filename Length       002D (45)\n-6FC0B0 Extra Length          0009 (9)\n-6FC0B2 Comment Length        0000 (0)\n-6FC0B4 Disk Start            0000 (0)\n-6FC0B6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC0B8 Ext File Attributes   00000000 (0)\n-6FC0BC Local Header Offset   0062C43F (6472767)\n-6FC0C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC0C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC0ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC0EF   Length              0005 (5)\n-6FC0F1   Flags               01 (1) 'Modification'\n-6FC0F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC0F6 CENTRAL HEADER #1815  02014B50 (33639248)\n-6FC0FA Created Zip Spec      14 (20) '2.0'\n-6FC0FB Created OS            00 (0) 'MS-DOS'\n-6FC0FC Extract Zip Spec      14 (20) '2.0'\n-6FC0FD Extract OS            00 (0) 'MS-DOS'\n-6FC0FE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC100 Compression Method    0000 (0) 'Stored'\n-6FC102 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC106 CRC                   00E586BE (15042238)\n-6FC10A Compressed Size       00000678 (1656)\n-6FC10E Uncompressed Size     00000678 (1656)\n-6FC112 Filename Length       002F (47)\n-6FC114 Extra Length          0009 (9)\n-6FC116 Comment Length        0000 (0)\n-6FC118 Disk Start            0000 (0)\n-6FC11A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC11C Ext File Attributes   00000000 (0)\n-6FC120 Local Header Offset   0062CEB7 (6475447)\n-6FC124 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC124: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC153 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC155   Length              0005 (5)\n-6FC157   Flags               01 (1) 'Modification'\n-6FC158   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC15C CENTRAL HEADER #1816  02014B50 (33639248)\n-6FC160 Created Zip Spec      14 (20) '2.0'\n-6FC161 Created OS            00 (0) 'MS-DOS'\n-6FC162 Extract Zip Spec      14 (20) '2.0'\n-6FC163 Extract OS            00 (0) 'MS-DOS'\n-6FC164 General Purpose Flag  0000 (0)\n-6FC166 Compression Method    0000 (0) 'Stored'\n-6FC168 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC16C CRC                   00000000 (0)\n-6FC170 Compressed Size       00000000 (0)\n-6FC174 Uncompressed Size     00000000 (0)\n-6FC178 Filename Length       001E (30)\n-6FC17A Extra Length          0009 (9)\n-6FC17C Comment Length        0000 (0)\n-6FC17E Disk Start            0000 (0)\n-6FC180 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC182 Ext File Attributes   00000000 (0)\n-6FC186 Local Header Offset   0062D595 (6477205)\n-6FC18A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC18A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC1A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC1AA   Length              0005 (5)\n-6FC1AC   Flags               01 (1) 'Modification'\n-6FC1AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC1B1 CENTRAL HEADER #1817  02014B50 (33639248)\n-6FC1B5 Created Zip Spec      14 (20) '2.0'\n-6FC1B6 Created OS            00 (0) 'MS-DOS'\n-6FC1B7 Extract Zip Spec      14 (20) '2.0'\n-6FC1B8 Extract OS            00 (0) 'MS-DOS'\n-6FC1B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC1BB Compression Method    0000 (0) 'Stored'\n-6FC1BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC1C1 CRC                   E1C5881F (3787819039)\n-6FC1C5 Compressed Size       000006AD (1709)\n-6FC1C9 Uncompressed Size     000006AD (1709)\n-6FC1CD Filename Length       003C (60)\n-6FC1CF Extra Length          0009 (9)\n-6FC1D1 Comment Length        0000 (0)\n-6FC1D3 Disk Start            0000 (0)\n-6FC1D5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC1D7 Ext File Attributes   00000000 (0)\n-6FC1DB Local Header Offset   0062D5DA (6477274)\n-6FC1DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC1DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC21B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC21D   Length              0005 (5)\n-6FC21F   Flags               01 (1) 'Modification'\n-6FC220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC224 CENTRAL HEADER #1818  02014B50 (33639248)\n-6FC228 Created Zip Spec      14 (20) '2.0'\n-6FC229 Created OS            00 (0) 'MS-DOS'\n-6FC22A Extract Zip Spec      14 (20) '2.0'\n-6FC22B Extract OS            00 (0) 'MS-DOS'\n-6FC22C General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC22E Compression Method    0000 (0) 'Stored'\n-6FC230 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC234 CRC                   FE9FE6BA (4271892154)\n-6FC238 Compressed Size       00000515 (1301)\n-6FC23C Uncompressed Size     00000515 (1301)\n-6FC240 Filename Length       003A (58)\n-6FC242 Extra Length          0009 (9)\n-6FC244 Comment Length        0000 (0)\n-6FC246 Disk Start            0000 (0)\n-6FC248 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC24A Ext File Attributes   00000000 (0)\n-6FC24E Local Header Offset   0062DCFA (6479098)\n-6FC252 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC252: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC28C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC28E   Length              0005 (5)\n-6FC290   Flags               01 (1) 'Modification'\n-6FC291   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC295 CENTRAL HEADER #1819  02014B50 (33639248)\n-6FC299 Created Zip Spec      14 (20) '2.0'\n-6FC29A Created OS            00 (0) 'MS-DOS'\n-6FC29B Extract Zip Spec      14 (20) '2.0'\n-6FC29C Extract OS            00 (0) 'MS-DOS'\n-6FC29D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC29F Compression Method    0000 (0) 'Stored'\n-6FC2A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC2A5 CRC                   07F77085 (133656709)\n-6FC2A9 Compressed Size       000004F7 (1271)\n-6FC2AD Uncompressed Size     000004F7 (1271)\n-6FC2B1 Filename Length       0039 (57)\n-6FC2B3 Extra Length          0009 (9)\n-6FC2B5 Comment Length        0000 (0)\n-6FC2B7 Disk Start            0000 (0)\n-6FC2B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC2BB Ext File Attributes   00000000 (0)\n-6FC2BF Local Header Offset   0062E280 (6480512)\n-6FC2C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC2C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC2FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC2FE   Length              0005 (5)\n-6FC300   Flags               01 (1) 'Modification'\n-6FC301   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC305 CENTRAL HEADER #1820  02014B50 (33639248)\n-6FC309 Created Zip Spec      14 (20) '2.0'\n-6FC30A Created OS            00 (0) 'MS-DOS'\n-6FC30B Extract Zip Spec      14 (20) '2.0'\n-6FC30C Extract OS            00 (0) 'MS-DOS'\n-6FC30D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC30F Compression Method    0000 (0) 'Stored'\n-6FC311 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC315 CRC                   334FA791 (860858257)\n-6FC319 Compressed Size       00000C9A (3226)\n-6FC31D Uncompressed Size     00000C9A (3226)\n-6FC321 Filename Length       003A (58)\n-6FC323 Extra Length          0009 (9)\n-6FC325 Comment Length        0000 (0)\n-6FC327 Disk Start            0000 (0)\n-6FC329 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC32B Ext File Attributes   00000000 (0)\n-6FC32F Local Header Offset   0062E7E7 (6481895)\n-6FC333 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC333: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC36D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC36F   Length              0005 (5)\n-6FC371   Flags               01 (1) 'Modification'\n-6FC372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC376 CENTRAL HEADER #1821  02014B50 (33639248)\n-6FC37A Created Zip Spec      14 (20) '2.0'\n-6FC37B Created OS            00 (0) 'MS-DOS'\n-6FC37C Extract Zip Spec      14 (20) '2.0'\n-6FC37D Extract OS            00 (0) 'MS-DOS'\n-6FC37E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC380 Compression Method    0000 (0) 'Stored'\n-6FC382 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC386 CRC                   5C26FEE4 (1546059492)\n-6FC38A Compressed Size       00000D57 (3415)\n-6FC38E Uncompressed Size     00000D57 (3415)\n-6FC392 Filename Length       0039 (57)\n-6FC394 Extra Length          0009 (9)\n-6FC396 Comment Length        0000 (0)\n-6FC398 Disk Start            0000 (0)\n-6FC39A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC39C Ext File Attributes   00000000 (0)\n-6FC3A0 Local Header Offset   0062F4F2 (6485234)\n-6FC3A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC3A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC3DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC3DF   Length              0005 (5)\n-6FC3E1   Flags               01 (1) 'Modification'\n-6FC3E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC3E6 CENTRAL HEADER #1822  02014B50 (33639248)\n-6FC3EA Created Zip Spec      14 (20) '2.0'\n-6FC3EB Created OS            00 (0) 'MS-DOS'\n-6FC3EC Extract Zip Spec      14 (20) '2.0'\n-6FC3ED Extract OS            00 (0) 'MS-DOS'\n-6FC3EE General Purpose Flag  0000 (0)\n-6FC3F0 Compression Method    0000 (0) 'Stored'\n-6FC3F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC3F6 CRC                   00000000 (0)\n-6FC3FA Compressed Size       00000000 (0)\n-6FC3FE Uncompressed Size     00000000 (0)\n-6FC402 Filename Length       001B (27)\n-6FC404 Extra Length          0009 (9)\n-6FC406 Comment Length        0000 (0)\n-6FC408 Disk Start            0000 (0)\n-6FC40A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC40C Ext File Attributes   00000000 (0)\n-6FC410 Local Header Offset   006302B9 (6488761)\n-6FC414 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC414: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC42F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC431   Length              0005 (5)\n-6FC433   Flags               01 (1) 'Modification'\n-6FC434   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC438 CENTRAL HEADER #1823  02014B50 (33639248)\n-6FC43C Created Zip Spec      14 (20) '2.0'\n-6FC43D Created OS            00 (0) 'MS-DOS'\n-6FC43E Extract Zip Spec      14 (20) '2.0'\n-6FC43F Extract OS            00 (0) 'MS-DOS'\n-6FC440 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC442 Compression Method    0000 (0) 'Stored'\n-6FC444 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC448 CRC                   86E81518 (2263356696)\n-6FC44C Compressed Size       000003E4 (996)\n-6FC450 Uncompressed Size     000003E4 (996)\n-6FC454 Filename Length       0037 (55)\n-6FC456 Extra Length          0009 (9)\n-6FC458 Comment Length        0000 (0)\n-6FC45A Disk Start            0000 (0)\n-6FC45C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC45E Ext File Attributes   00000000 (0)\n-6FC462 Local Header Offset   006302FB (6488827)\n-6FC466 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC466: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC49D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC49F   Length              0005 (5)\n-6FC4A1   Flags               01 (1) 'Modification'\n-6FC4A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC4A6 CENTRAL HEADER #1824  02014B50 (33639248)\n-6FC4AA Created Zip Spec      14 (20) '2.0'\n-6FC4AB Created OS            00 (0) 'MS-DOS'\n-6FC4AC Extract Zip Spec      14 (20) '2.0'\n-6FC4AD Extract OS            00 (0) 'MS-DOS'\n-6FC4AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC4B0 Compression Method    0000 (0) 'Stored'\n-6FC4B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC4B6 CRC                   201D5BFC (538795004)\n-6FC4BA Compressed Size       000012A8 (4776)\n-6FC4BE Uncompressed Size     000012A8 (4776)\n-6FC4C2 Filename Length       0030 (48)\n-6FC4C4 Extra Length          0009 (9)\n-6FC4C6 Comment Length        0000 (0)\n-6FC4C8 Disk Start            0000 (0)\n-6FC4CA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC4CC Ext File Attributes   00000000 (0)\n-6FC4D0 Local Header Offset   0063074D (6489933)\n-6FC4D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC4D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC504 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC506   Length              0005 (5)\n-6FC508   Flags               01 (1) 'Modification'\n-6FC509   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC50D CENTRAL HEADER #1825  02014B50 (33639248)\n-6FC511 Created Zip Spec      14 (20) '2.0'\n-6FC512 Created OS            00 (0) 'MS-DOS'\n-6FC513 Extract Zip Spec      14 (20) '2.0'\n-6FC514 Extract OS            00 (0) 'MS-DOS'\n-6FC515 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC517 Compression Method    0000 (0) 'Stored'\n-6FC519 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC51D CRC                   E946A330 (3913720624)\n-6FC521 Compressed Size       00000A39 (2617)\n-6FC525 Uncompressed Size     00000A39 (2617)\n-6FC529 Filename Length       002F (47)\n-6FC52B Extra Length          0009 (9)\n-6FC52D Comment Length        0000 (0)\n-6FC52F Disk Start            0000 (0)\n-6FC531 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC533 Ext File Attributes   00000000 (0)\n-6FC537 Local Header Offset   00631A5C (6494812)\n-6FC53B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC53B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC56A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC56C   Length              0005 (5)\n-6FC56E   Flags               01 (1) 'Modification'\n-6FC56F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC573 CENTRAL HEADER #1826  02014B50 (33639248)\n-6FC577 Created Zip Spec      14 (20) '2.0'\n-6FC578 Created OS            00 (0) 'MS-DOS'\n-6FC579 Extract Zip Spec      14 (20) '2.0'\n-6FC57A Extract OS            00 (0) 'MS-DOS'\n-6FC57B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC57D Compression Method    0000 (0) 'Stored'\n-6FC57F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC583 CRC                   FBAECD89 (4222537097)\n-6FC587 Compressed Size       000003C4 (964)\n-6FC58B Uncompressed Size     000003C4 (964)\n-6FC58F Filename Length       0036 (54)\n-6FC591 Extra Length          0009 (9)\n-6FC593 Comment Length        0000 (0)\n-6FC595 Disk Start            0000 (0)\n-6FC597 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC599 Ext File Attributes   00000000 (0)\n-6FC59D Local Header Offset   006324FB (6497531)\n-6FC5A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC5A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC5D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC5D9   Length              0005 (5)\n-6FC5DB   Flags               01 (1) 'Modification'\n-6FC5DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC5E0 CENTRAL HEADER #1827  02014B50 (33639248)\n-6FC5E4 Created Zip Spec      14 (20) '2.0'\n-6FC5E5 Created OS            00 (0) 'MS-DOS'\n-6FC5E6 Extract Zip Spec      14 (20) '2.0'\n-6FC5E7 Extract OS            00 (0) 'MS-DOS'\n-6FC5E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC5EA Compression Method    0000 (0) 'Stored'\n-6FC5EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC5F0 CRC                   E22DB581 (3794646401)\n-6FC5F4 Compressed Size       00000BEE (3054)\n-6FC5F8 Uncompressed Size     00000BEE (3054)\n-6FC5FC Filename Length       0033 (51)\n-6FC5FE Extra Length          0009 (9)\n-6FC600 Comment Length        0000 (0)\n-6FC602 Disk Start            0000 (0)\n-6FC604 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC606 Ext File Attributes   00000000 (0)\n-6FC60A Local Header Offset   0063292C (6498604)\n-6FC60E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC60E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC641 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC643   Length              0005 (5)\n-6FC645   Flags               01 (1) 'Modification'\n-6FC646   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC64A CENTRAL HEADER #1828  02014B50 (33639248)\n-6FC64E Created Zip Spec      14 (20) '2.0'\n-6FC64F Created OS            00 (0) 'MS-DOS'\n-6FC650 Extract Zip Spec      14 (20) '2.0'\n-6FC651 Extract OS            00 (0) 'MS-DOS'\n-6FC652 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC654 Compression Method    0000 (0) 'Stored'\n-6FC656 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC65A CRC                   02426CD5 (37907669)\n-6FC65E Compressed Size       00001B9D (7069)\n-6FC662 Uncompressed Size     00001B9D (7069)\n-6FC666 Filename Length       002D (45)\n-6FC668 Extra Length          0009 (9)\n-6FC66A Comment Length        0000 (0)\n-6FC66C Disk Start            0000 (0)\n-6FC66E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC670 Ext File Attributes   00000000 (0)\n-6FC674 Local Header Offset   00633584 (6501764)\n-6FC678 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC678: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC6A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC6A7   Length              0005 (5)\n-6FC6A9   Flags               01 (1) 'Modification'\n-6FC6AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC6AE CENTRAL HEADER #1829  02014B50 (33639248)\n-6FC6B2 Created Zip Spec      14 (20) '2.0'\n-6FC6B3 Created OS            00 (0) 'MS-DOS'\n-6FC6B4 Extract Zip Spec      14 (20) '2.0'\n-6FC6B5 Extract OS            00 (0) 'MS-DOS'\n-6FC6B6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC6B8 Compression Method    0000 (0) 'Stored'\n-6FC6BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC6BE CRC                   641CBA7B (1679604347)\n-6FC6C2 Compressed Size       00000BB0 (2992)\n-6FC6C6 Uncompressed Size     00000BB0 (2992)\n-6FC6CA Filename Length       0030 (48)\n-6FC6CC Extra Length          0009 (9)\n-6FC6CE Comment Length        0000 (0)\n-6FC6D0 Disk Start            0000 (0)\n-6FC6D2 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC6D4 Ext File Attributes   00000000 (0)\n-6FC6D8 Local Header Offset   00635185 (6508933)\n-6FC6DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC6DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC70C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC70E   Length              0005 (5)\n-6FC710   Flags               01 (1) 'Modification'\n-6FC711   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC715 CENTRAL HEADER #1830  02014B50 (33639248)\n-6FC719 Created Zip Spec      14 (20) '2.0'\n-6FC71A Created OS            00 (0) 'MS-DOS'\n-6FC71B Extract Zip Spec      14 (20) '2.0'\n-6FC71C Extract OS            00 (0) 'MS-DOS'\n-6FC71D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC71F Compression Method    0000 (0) 'Stored'\n-6FC721 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC725 CRC                   C652D326 (3327316774)\n-6FC729 Compressed Size       00000A71 (2673)\n-6FC72D Uncompressed Size     00000A71 (2673)\n-6FC731 Filename Length       0033 (51)\n-6FC733 Extra Length          0009 (9)\n-6FC735 Comment Length        0000 (0)\n-6FC737 Disk Start            0000 (0)\n-6FC739 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC73B Ext File Attributes   00000000 (0)\n-6FC73F Local Header Offset   00635D9C (6512028)\n-6FC743 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC743: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC776 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC778   Length              0005 (5)\n-6FC77A   Flags               01 (1) 'Modification'\n-6FC77B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC77F CENTRAL HEADER #1831  02014B50 (33639248)\n-6FC783 Created Zip Spec      14 (20) '2.0'\n-6FC784 Created OS            00 (0) 'MS-DOS'\n-6FC785 Extract Zip Spec      14 (20) '2.0'\n-6FC786 Extract OS            00 (0) 'MS-DOS'\n-6FC787 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC789 Compression Method    0000 (0) 'Stored'\n-6FC78B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC78F CRC                   DE4FB79A (3729766298)\n-6FC793 Compressed Size       00001A0D (6669)\n-6FC797 Uncompressed Size     00001A0D (6669)\n-6FC79B Filename Length       002D (45)\n-6FC79D Extra Length          0009 (9)\n-6FC79F Comment Length        0000 (0)\n-6FC7A1 Disk Start            0000 (0)\n-6FC7A3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC7A5 Ext File Attributes   00000000 (0)\n-6FC7A9 Local Header Offset   00636877 (6514807)\n-6FC7AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC7AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC7DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC7DC   Length              0005 (5)\n-6FC7DE   Flags               01 (1) 'Modification'\n-6FC7DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC7E3 CENTRAL HEADER #1832  02014B50 (33639248)\n-6FC7E7 Created Zip Spec      14 (20) '2.0'\n-6FC7E8 Created OS            00 (0) 'MS-DOS'\n-6FC7E9 Extract Zip Spec      14 (20) '2.0'\n-6FC7EA Extract OS            00 (0) 'MS-DOS'\n-6FC7EB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC7ED Compression Method    0000 (0) 'Stored'\n-6FC7EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC7F3 CRC                   C6C2FD7D (3334667645)\n-6FC7F7 Compressed Size       0000110A (4362)\n-6FC7FB Uncompressed Size     0000110A (4362)\n-6FC7FF Filename Length       0031 (49)\n-6FC801 Extra Length          0009 (9)\n-6FC803 Comment Length        0000 (0)\n-6FC805 Disk Start            0000 (0)\n-6FC807 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC809 Ext File Attributes   00000000 (0)\n-6FC80D Local Header Offset   006382E8 (6521576)\n-6FC811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC842 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC844   Length              0005 (5)\n-6FC846   Flags               01 (1) 'Modification'\n-6FC847   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC84B CENTRAL HEADER #1833  02014B50 (33639248)\n-6FC84F Created Zip Spec      14 (20) '2.0'\n-6FC850 Created OS            00 (0) 'MS-DOS'\n-6FC851 Extract Zip Spec      14 (20) '2.0'\n-6FC852 Extract OS            00 (0) 'MS-DOS'\n-6FC853 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC855 Compression Method    0000 (0) 'Stored'\n-6FC857 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC85B CRC                   92839F02 (2458099458)\n-6FC85F Compressed Size       00000C1C (3100)\n-6FC863 Uncompressed Size     00000C1C (3100)\n-6FC867 Filename Length       002F (47)\n-6FC869 Extra Length          0009 (9)\n-6FC86B Comment Length        0000 (0)\n-6FC86D Disk Start            0000 (0)\n-6FC86F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC871 Ext File Attributes   00000000 (0)\n-6FC875 Local Header Offset   0063945A (6526042)\n-6FC879 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC879: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC8A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC8AA   Length              0005 (5)\n-6FC8AC   Flags               01 (1) 'Modification'\n-6FC8AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC8B1 CENTRAL HEADER #1834  02014B50 (33639248)\n-6FC8B5 Created Zip Spec      14 (20) '2.0'\n-6FC8B6 Created OS            00 (0) 'MS-DOS'\n-6FC8B7 Extract Zip Spec      14 (20) '2.0'\n-6FC8B8 Extract OS            00 (0) 'MS-DOS'\n-6FC8B9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC8BB Compression Method    0000 (0) 'Stored'\n-6FC8BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC8C1 CRC                   ED067114 (3976622356)\n-6FC8C5 Compressed Size       00001C7D (7293)\n-6FC8C9 Uncompressed Size     00001C7D (7293)\n-6FC8CD Filename Length       0031 (49)\n-6FC8CF Extra Length          0009 (9)\n-6FC8D1 Comment Length        0000 (0)\n-6FC8D3 Disk Start            0000 (0)\n-6FC8D5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC8D7 Ext File Attributes   00000000 (0)\n-6FC8DB Local Header Offset   0063A0DC (6529244)\n-6FC8DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC8DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC910 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC912   Length              0005 (5)\n-6FC914   Flags               01 (1) 'Modification'\n-6FC915   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC919 CENTRAL HEADER #1835  02014B50 (33639248)\n-6FC91D Created Zip Spec      14 (20) '2.0'\n-6FC91E Created OS            00 (0) 'MS-DOS'\n-6FC91F Extract Zip Spec      14 (20) '2.0'\n-6FC920 Extract OS            00 (0) 'MS-DOS'\n-6FC921 General Purpose Flag  0000 (0)\n-6FC923 Compression Method    0000 (0) 'Stored'\n-6FC925 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC929 CRC                   00000000 (0)\n-6FC92D Compressed Size       00000000 (0)\n-6FC931 Uncompressed Size     00000000 (0)\n-6FC935 Filename Length       001E (30)\n-6FC937 Extra Length          0009 (9)\n-6FC939 Comment Length        0000 (0)\n-6FC93B Disk Start            0000 (0)\n-6FC93D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC93F Ext File Attributes   00000000 (0)\n-6FC943 Local Header Offset   0063BDC1 (6536641)\n-6FC947 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC947: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC965 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC967   Length              0005 (5)\n-6FC969   Flags               01 (1) 'Modification'\n-6FC96A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC96E CENTRAL HEADER #1836  02014B50 (33639248)\n-6FC972 Created Zip Spec      14 (20) '2.0'\n-6FC973 Created OS            00 (0) 'MS-DOS'\n-6FC974 Extract Zip Spec      14 (20) '2.0'\n-6FC975 Extract OS            00 (0) 'MS-DOS'\n-6FC976 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC978 Compression Method    0000 (0) 'Stored'\n-6FC97A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC97E CRC                   EC8B751D (3968562461)\n-6FC982 Compressed Size       000008F6 (2294)\n-6FC986 Uncompressed Size     000008F6 (2294)\n-6FC98A Filename Length       0033 (51)\n-6FC98C Extra Length          0009 (9)\n-6FC98E Comment Length        0000 (0)\n-6FC990 Disk Start            0000 (0)\n-6FC992 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC994 Ext File Attributes   00000000 (0)\n-6FC998 Local Header Offset   0063BE06 (6536710)\n-6FC99C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FC99C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FC9CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FC9D1   Length              0005 (5)\n-6FC9D3   Flags               01 (1) 'Modification'\n-6FC9D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FC9D8 CENTRAL HEADER #1837  02014B50 (33639248)\n-6FC9DC Created Zip Spec      14 (20) '2.0'\n-6FC9DD Created OS            00 (0) 'MS-DOS'\n-6FC9DE Extract Zip Spec      14 (20) '2.0'\n-6FC9DF Extract OS            00 (0) 'MS-DOS'\n-6FC9E0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FC9E2 Compression Method    0000 (0) 'Stored'\n-6FC9E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FC9E8 CRC                   A5C33F03 (2781036291)\n-6FC9EC Compressed Size       00001F52 (8018)\n-6FC9F0 Uncompressed Size     00001F52 (8018)\n-6FC9F4 Filename Length       0032 (50)\n-6FC9F6 Extra Length          0009 (9)\n-6FC9F8 Comment Length        0000 (0)\n-6FC9FA Disk Start            0000 (0)\n-6FC9FC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FC9FE Ext File Attributes   00000000 (0)\n-6FCA02 Local Header Offset   0063C766 (6539110)\n-6FCA06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCA06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCA38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCA3A   Length              0005 (5)\n-6FCA3C   Flags               01 (1) 'Modification'\n-6FCA3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCA41 CENTRAL HEADER #1838  02014B50 (33639248)\n-6FCA45 Created Zip Spec      14 (20) '2.0'\n-6FCA46 Created OS            00 (0) 'MS-DOS'\n-6FCA47 Extract Zip Spec      14 (20) '2.0'\n-6FCA48 Extract OS            00 (0) 'MS-DOS'\n-6FCA49 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCA4B Compression Method    0000 (0) 'Stored'\n-6FCA4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCA51 CRC                   861CA040 (2250022976)\n-6FCA55 Compressed Size       000010FE (4350)\n-6FCA59 Uncompressed Size     000010FE (4350)\n-6FCA5D Filename Length       0033 (51)\n-6FCA5F Extra Length          0009 (9)\n-6FCA61 Comment Length        0000 (0)\n-6FCA63 Disk Start            0000 (0)\n-6FCA65 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCA67 Ext File Attributes   00000000 (0)\n-6FCA6B Local Header Offset   0063E721 (6547233)\n-6FCA6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCA6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCAA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCAA4   Length              0005 (5)\n-6FCAA6   Flags               01 (1) 'Modification'\n-6FCAA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCAAB CENTRAL HEADER #1839  02014B50 (33639248)\n-6FCAAF Created Zip Spec      14 (20) '2.0'\n-6FCAB0 Created OS            00 (0) 'MS-DOS'\n-6FCAB1 Extract Zip Spec      14 (20) '2.0'\n-6FCAB2 Extract OS            00 (0) 'MS-DOS'\n-6FCAB3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCAB5 Compression Method    0000 (0) 'Stored'\n-6FCAB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCABB CRC                   1140D3D7 (289461207)\n-6FCABF Compressed Size       000021E4 (8676)\n-6FCAC3 Uncompressed Size     000021E4 (8676)\n-6FCAC7 Filename Length       0038 (56)\n-6FCAC9 Extra Length          0009 (9)\n-6FCACB Comment Length        0000 (0)\n-6FCACD Disk Start            0000 (0)\n-6FCACF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCAD1 Ext File Attributes   00000000 (0)\n-6FCAD5 Local Header Offset   0063F889 (6551689)\n-6FCAD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCAD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCB11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCB13   Length              0005 (5)\n-6FCB15   Flags               01 (1) 'Modification'\n-6FCB16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCB1A CENTRAL HEADER #1840  02014B50 (33639248)\n-6FCB1E Created Zip Spec      14 (20) '2.0'\n-6FCB1F Created OS            00 (0) 'MS-DOS'\n-6FCB20 Extract Zip Spec      14 (20) '2.0'\n-6FCB21 Extract OS            00 (0) 'MS-DOS'\n-6FCB22 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCB24 Compression Method    0000 (0) 'Stored'\n-6FCB26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCB2A CRC                   90398B66 (2419690342)\n-6FCB2E Compressed Size       00000F56 (3926)\n-6FCB32 Uncompressed Size     00000F56 (3926)\n-6FCB36 Filename Length       0035 (53)\n-6FCB38 Extra Length          0009 (9)\n-6FCB3A Comment Length        0000 (0)\n-6FCB3C Disk Start            0000 (0)\n-6FCB3E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCB40 Ext File Attributes   00000000 (0)\n-6FCB44 Local Header Offset   00641ADC (6560476)\n-6FCB48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCB48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCB7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCB7F   Length              0005 (5)\n-6FCB81   Flags               01 (1) 'Modification'\n-6FCB82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCB86 CENTRAL HEADER #1841  02014B50 (33639248)\n-6FCB8A Created Zip Spec      14 (20) '2.0'\n-6FCB8B Created OS            00 (0) 'MS-DOS'\n-6FCB8C Extract Zip Spec      14 (20) '2.0'\n-6FCB8D Extract OS            00 (0) 'MS-DOS'\n-6FCB8E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCB90 Compression Method    0000 (0) 'Stored'\n-6FCB92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCB96 CRC                   8054E5B8 (2153047480)\n-6FCB9A Compressed Size       00000FA9 (4009)\n-6FCB9E Uncompressed Size     00000FA9 (4009)\n-6FCBA2 Filename Length       002D (45)\n-6FCBA4 Extra Length          0009 (9)\n-6FCBA6 Comment Length        0000 (0)\n-6FCBA8 Disk Start            0000 (0)\n-6FCBAA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCBAC Ext File Attributes   00000000 (0)\n-6FCBB0 Local Header Offset   00642A9E (6564510)\n-6FCBB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCBB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCBE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCBE3   Length              0005 (5)\n-6FCBE5   Flags               01 (1) 'Modification'\n-6FCBE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCBEA CENTRAL HEADER #1842  02014B50 (33639248)\n-6FCBEE Created Zip Spec      14 (20) '2.0'\n-6FCBEF Created OS            00 (0) 'MS-DOS'\n-6FCBF0 Extract Zip Spec      14 (20) '2.0'\n-6FCBF1 Extract OS            00 (0) 'MS-DOS'\n-6FCBF2 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCBF4 Compression Method    0000 (0) 'Stored'\n-6FCBF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCBFA CRC                   873A5673 (2268747379)\n-6FCBFE Compressed Size       0000072D (1837)\n-6FCC02 Uncompressed Size     0000072D (1837)\n-6FCC06 Filename Length       0031 (49)\n-6FCC08 Extra Length          0009 (9)\n-6FCC0A Comment Length        0000 (0)\n-6FCC0C Disk Start            0000 (0)\n-6FCC0E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCC10 Ext File Attributes   00000000 (0)\n-6FCC14 Local Header Offset   00643AAB (6568619)\n-6FCC18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCC18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCC49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCC4B   Length              0005 (5)\n-6FCC4D   Flags               01 (1) 'Modification'\n-6FCC4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCC52 CENTRAL HEADER #1843  02014B50 (33639248)\n-6FCC56 Created Zip Spec      14 (20) '2.0'\n-6FCC57 Created OS            00 (0) 'MS-DOS'\n-6FCC58 Extract Zip Spec      14 (20) '2.0'\n-6FCC59 Extract OS            00 (0) 'MS-DOS'\n-6FCC5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCC5C Compression Method    0000 (0) 'Stored'\n-6FCC5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCC62 CRC                   B63E72D7 (3057545943)\n-6FCC66 Compressed Size       00000D50 (3408)\n-6FCC6A Uncompressed Size     00000D50 (3408)\n-6FCC6E Filename Length       0038 (56)\n-6FCC70 Extra Length          0009 (9)\n-6FCC72 Comment Length        0000 (0)\n-6FCC74 Disk Start            0000 (0)\n-6FCC76 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCC78 Ext File Attributes   00000000 (0)\n-6FCC7C Local Header Offset   00644240 (6570560)\n-6FCC80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCC80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCCB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCCBA   Length              0005 (5)\n-6FCCBC   Flags               01 (1) 'Modification'\n-6FCCBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCCC1 CENTRAL HEADER #1844  02014B50 (33639248)\n-6FCCC5 Created Zip Spec      14 (20) '2.0'\n-6FCCC6 Created OS            00 (0) 'MS-DOS'\n-6FCCC7 Extract Zip Spec      14 (20) '2.0'\n-6FCCC8 Extract OS            00 (0) 'MS-DOS'\n-6FCCC9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCCCB Compression Method    0000 (0) 'Stored'\n-6FCCCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCCD1 CRC                   C40EC84E (3289303118)\n-6FCCD5 Compressed Size       00000D18 (3352)\n-6FCCD9 Uncompressed Size     00000D18 (3352)\n-6FCCDD Filename Length       003A (58)\n-6FCCDF Extra Length          0009 (9)\n-6FCCE1 Comment Length        0000 (0)\n-6FCCE3 Disk Start            0000 (0)\n-6FCCE5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCCE7 Ext File Attributes   00000000 (0)\n-6FCCEB Local Header Offset   00644FFF (6574079)\n-6FCCEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCCEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCD29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCD2B   Length              0005 (5)\n-6FCD2D   Flags               01 (1) 'Modification'\n-6FCD2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCD32 CENTRAL HEADER #1845  02014B50 (33639248)\n-6FCD36 Created Zip Spec      14 (20) '2.0'\n-6FCD37 Created OS            00 (0) 'MS-DOS'\n-6FCD38 Extract Zip Spec      14 (20) '2.0'\n-6FCD39 Extract OS            00 (0) 'MS-DOS'\n-6FCD3A General Purpose Flag  0000 (0)\n-6FCD3C Compression Method    0000 (0) 'Stored'\n-6FCD3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCD42 CRC                   00000000 (0)\n-6FCD46 Compressed Size       00000000 (0)\n-6FCD4A Uncompressed Size     00000000 (0)\n-6FCD4E Filename Length       0024 (36)\n-6FCD50 Extra Length          0009 (9)\n-6FCD52 Comment Length        0000 (0)\n-6FCD54 Disk Start            0000 (0)\n-6FCD56 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCD58 Ext File Attributes   00000000 (0)\n-6FCD5C Local Header Offset   00645D88 (6577544)\n-6FCD60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCD60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCD84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCD86   Length              0005 (5)\n-6FCD88   Flags               01 (1) 'Modification'\n-6FCD89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCD8D CENTRAL HEADER #1846  02014B50 (33639248)\n-6FCD91 Created Zip Spec      14 (20) '2.0'\n-6FCD92 Created OS            00 (0) 'MS-DOS'\n-6FCD93 Extract Zip Spec      14 (20) '2.0'\n-6FCD94 Extract OS            00 (0) 'MS-DOS'\n-6FCD95 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCD97 Compression Method    0000 (0) 'Stored'\n-6FCD99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCD9D CRC                   B7F8FDDA (3086548442)\n-6FCDA1 Compressed Size       00003E47 (15943)\n-6FCDA5 Uncompressed Size     00003E47 (15943)\n-6FCDA9 Filename Length       003D (61)\n-6FCDAB Extra Length          0009 (9)\n-6FCDAD Comment Length        0000 (0)\n-6FCDAF Disk Start            0000 (0)\n-6FCDB1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCDB3 Ext File Attributes   00000000 (0)\n-6FCDB7 Local Header Offset   00645DD3 (6577619)\n-6FCDBB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCDBB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCDF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCDFA   Length              0005 (5)\n-6FCDFC   Flags               01 (1) 'Modification'\n-6FCDFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCE01 CENTRAL HEADER #1847  02014B50 (33639248)\n-6FCE05 Created Zip Spec      14 (20) '2.0'\n-6FCE06 Created OS            00 (0) 'MS-DOS'\n-6FCE07 Extract Zip Spec      14 (20) '2.0'\n-6FCE08 Extract OS            00 (0) 'MS-DOS'\n-6FCE09 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCE0B Compression Method    0000 (0) 'Stored'\n-6FCE0D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCE11 CRC                   03D1B931 (64076081)\n-6FCE15 Compressed Size       000018E3 (6371)\n-6FCE19 Uncompressed Size     000018E3 (6371)\n-6FCE1D Filename Length       003E (62)\n-6FCE1F Extra Length          0009 (9)\n-6FCE21 Comment Length        0000 (0)\n-6FCE23 Disk Start            0000 (0)\n-6FCE25 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCE27 Ext File Attributes   00000000 (0)\n-6FCE2B Local Header Offset   00649C8E (6593678)\n-6FCE2F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCE2F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCE6D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCE6F   Length              0005 (5)\n-6FCE71   Flags               01 (1) 'Modification'\n-6FCE72   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCE76 CENTRAL HEADER #1848  02014B50 (33639248)\n-6FCE7A Created Zip Spec      14 (20) '2.0'\n-6FCE7B Created OS            00 (0) 'MS-DOS'\n-6FCE7C Extract Zip Spec      14 (20) '2.0'\n-6FCE7D Extract OS            00 (0) 'MS-DOS'\n-6FCE7E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCE80 Compression Method    0000 (0) 'Stored'\n-6FCE82 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCE86 CRC                   F93BB070 (4181438576)\n-6FCE8A Compressed Size       000008B8 (2232)\n-6FCE8E Uncompressed Size     000008B8 (2232)\n-6FCE92 Filename Length       0032 (50)\n-6FCE94 Extra Length          0009 (9)\n-6FCE96 Comment Length        0000 (0)\n-6FCE98 Disk Start            0000 (0)\n-6FCE9A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCE9C Ext File Attributes   00000000 (0)\n-6FCEA0 Local Header Offset   0064B5E6 (6600166)\n-6FCEA4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCEA4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCED6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCED8   Length              0005 (5)\n-6FCEDA   Flags               01 (1) 'Modification'\n-6FCEDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCEDF CENTRAL HEADER #1849  02014B50 (33639248)\n-6FCEE3 Created Zip Spec      14 (20) '2.0'\n-6FCEE4 Created OS            00 (0) 'MS-DOS'\n-6FCEE5 Extract Zip Spec      14 (20) '2.0'\n-6FCEE6 Extract OS            00 (0) 'MS-DOS'\n-6FCEE7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCEE9 Compression Method    0000 (0) 'Stored'\n-6FCEEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCEEF CRC                   C7D35A4B (3352517195)\n-6FCEF3 Compressed Size       00001F36 (7990)\n-6FCEF7 Uncompressed Size     00001F36 (7990)\n-6FCEFB Filename Length       0040 (64)\n-6FCEFD Extra Length          0009 (9)\n-6FCEFF Comment Length        0000 (0)\n-6FCF01 Disk Start            0000 (0)\n-6FCF03 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCF05 Ext File Attributes   00000000 (0)\n-6FCF09 Local Header Offset   0064BF07 (6602503)\n-6FCF0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCF0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCF4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCF4F   Length              0005 (5)\n-6FCF51   Flags               01 (1) 'Modification'\n-6FCF52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCF56 CENTRAL HEADER #1850  02014B50 (33639248)\n-6FCF5A Created Zip Spec      14 (20) '2.0'\n-6FCF5B Created OS            00 (0) 'MS-DOS'\n-6FCF5C Extract Zip Spec      14 (20) '2.0'\n-6FCF5D Extract OS            00 (0) 'MS-DOS'\n-6FCF5E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCF60 Compression Method    0000 (0) 'Stored'\n-6FCF62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCF66 CRC                   D012E5FC (3490899452)\n-6FCF6A Compressed Size       00001BA0 (7072)\n-6FCF6E Uncompressed Size     00001BA0 (7072)\n-6FCF72 Filename Length       003C (60)\n-6FCF74 Extra Length          0009 (9)\n-6FCF76 Comment Length        0000 (0)\n-6FCF78 Disk Start            0000 (0)\n-6FCF7A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCF7C Ext File Attributes   00000000 (0)\n-6FCF80 Local Header Offset   0064DEB4 (6610612)\n-6FCF84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCF84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FCFC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FCFC2   Length              0005 (5)\n-6FCFC4   Flags               01 (1) 'Modification'\n-6FCFC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FCFC9 CENTRAL HEADER #1851  02014B50 (33639248)\n-6FCFCD Created Zip Spec      14 (20) '2.0'\n-6FCFCE Created OS            00 (0) 'MS-DOS'\n-6FCFCF Extract Zip Spec      14 (20) '2.0'\n-6FCFD0 Extract OS            00 (0) 'MS-DOS'\n-6FCFD1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FCFD3 Compression Method    0000 (0) 'Stored'\n-6FCFD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FCFD9 CRC                   A6D38CE4 (2798882020)\n-6FCFDD Compressed Size       00002AE7 (10983)\n-6FCFE1 Uncompressed Size     00002AE7 (10983)\n-6FCFE5 Filename Length       0033 (51)\n-6FCFE7 Extra Length          0009 (9)\n-6FCFE9 Comment Length        0000 (0)\n-6FCFEB Disk Start            0000 (0)\n-6FCFED Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FCFEF Ext File Attributes   00000000 (0)\n-6FCFF3 Local Header Offset   0064FAC7 (6617799)\n-6FCFF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FCFF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD02A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD02C   Length              0005 (5)\n-6FD02E   Flags               01 (1) 'Modification'\n-6FD02F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD033 CENTRAL HEADER #1852  02014B50 (33639248)\n-6FD037 Created Zip Spec      14 (20) '2.0'\n-6FD038 Created OS            00 (0) 'MS-DOS'\n-6FD039 Extract Zip Spec      14 (20) '2.0'\n-6FD03A Extract OS            00 (0) 'MS-DOS'\n-6FD03B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD03D Compression Method    0000 (0) 'Stored'\n-6FD03F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD043 CRC                   982FC700 (2553267968)\n-6FD047 Compressed Size       00000A19 (2585)\n-6FD04B Uncompressed Size     00000A19 (2585)\n-6FD04F Filename Length       003A (58)\n-6FD051 Extra Length          0009 (9)\n-6FD053 Comment Length        0000 (0)\n-6FD055 Disk Start            0000 (0)\n-6FD057 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD059 Ext File Attributes   00000000 (0)\n-6FD05D Local Header Offset   00652618 (6628888)\n-6FD061 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD061: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD09B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD09D   Length              0005 (5)\n-6FD09F   Flags               01 (1) 'Modification'\n-6FD0A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD0A4 CENTRAL HEADER #1853  02014B50 (33639248)\n-6FD0A8 Created Zip Spec      14 (20) '2.0'\n-6FD0A9 Created OS            00 (0) 'MS-DOS'\n-6FD0AA Extract Zip Spec      14 (20) '2.0'\n-6FD0AB Extract OS            00 (0) 'MS-DOS'\n-6FD0AC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD0AE Compression Method    0000 (0) 'Stored'\n-6FD0B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD0B4 CRC                   C6A73CC6 (3332848838)\n-6FD0B8 Compressed Size       00000C1E (3102)\n-6FD0BC Uncompressed Size     00000C1E (3102)\n-6FD0C0 Filename Length       0038 (56)\n-6FD0C2 Extra Length          0009 (9)\n-6FD0C4 Comment Length        0000 (0)\n-6FD0C6 Disk Start            0000 (0)\n-6FD0C8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD0CA Ext File Attributes   00000000 (0)\n-6FD0CE Local Header Offset   006530A2 (6631586)\n-6FD0D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD0D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD10A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD10C   Length              0005 (5)\n-6FD10E   Flags               01 (1) 'Modification'\n-6FD10F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD113 CENTRAL HEADER #1854  02014B50 (33639248)\n-6FD117 Created Zip Spec      14 (20) '2.0'\n-6FD118 Created OS            00 (0) 'MS-DOS'\n-6FD119 Extract Zip Spec      14 (20) '2.0'\n-6FD11A Extract OS            00 (0) 'MS-DOS'\n-6FD11B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD11D Compression Method    0000 (0) 'Stored'\n-6FD11F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD123 CRC                   94899E78 (2492046968)\n-6FD127 Compressed Size       000005B1 (1457)\n-6FD12B Uncompressed Size     000005B1 (1457)\n-6FD12F Filename Length       0036 (54)\n-6FD131 Extra Length          0009 (9)\n-6FD133 Comment Length        0000 (0)\n-6FD135 Disk Start            0000 (0)\n-6FD137 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD139 Ext File Attributes   00000000 (0)\n-6FD13D Local Header Offset   00653D2F (6634799)\n-6FD141 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD141: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD177 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD179   Length              0005 (5)\n-6FD17B   Flags               01 (1) 'Modification'\n-6FD17C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD180 CENTRAL HEADER #1855  02014B50 (33639248)\n-6FD184 Created Zip Spec      14 (20) '2.0'\n-6FD185 Created OS            00 (0) 'MS-DOS'\n-6FD186 Extract Zip Spec      14 (20) '2.0'\n-6FD187 Extract OS            00 (0) 'MS-DOS'\n-6FD188 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD18A Compression Method    0000 (0) 'Stored'\n-6FD18C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD190 CRC                   4247D839 (1112004665)\n-6FD194 Compressed Size       00001FD9 (8153)\n-6FD198 Uncompressed Size     00001FD9 (8153)\n-6FD19C Filename Length       0035 (53)\n-6FD19E Extra Length          0009 (9)\n-6FD1A0 Comment Length        0000 (0)\n-6FD1A2 Disk Start            0000 (0)\n-6FD1A4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD1A6 Ext File Attributes   00000000 (0)\n-6FD1AA Local Header Offset   0065434D (6636365)\n-6FD1AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD1AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD1E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD1E5   Length              0005 (5)\n-6FD1E7   Flags               01 (1) 'Modification'\n-6FD1E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD1EC CENTRAL HEADER #1856  02014B50 (33639248)\n-6FD1F0 Created Zip Spec      14 (20) '2.0'\n-6FD1F1 Created OS            00 (0) 'MS-DOS'\n-6FD1F2 Extract Zip Spec      14 (20) '2.0'\n-6FD1F3 Extract OS            00 (0) 'MS-DOS'\n-6FD1F4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD1F6 Compression Method    0000 (0) 'Stored'\n-6FD1F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD1FC CRC                   C2B511E4 (3266646500)\n-6FD200 Compressed Size       00006B37 (27447)\n-6FD204 Uncompressed Size     00006B37 (27447)\n-6FD208 Filename Length       0036 (54)\n-6FD20A Extra Length          0009 (9)\n-6FD20C Comment Length        0000 (0)\n-6FD20E Disk Start            0000 (0)\n-6FD210 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD212 Ext File Attributes   00000000 (0)\n-6FD216 Local Header Offset   00656392 (6644626)\n-6FD21A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD21A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD250 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD252   Length              0005 (5)\n-6FD254   Flags               01 (1) 'Modification'\n-6FD255   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD259 CENTRAL HEADER #1857  02014B50 (33639248)\n-6FD25D Created Zip Spec      14 (20) '2.0'\n-6FD25E Created OS            00 (0) 'MS-DOS'\n-6FD25F Extract Zip Spec      14 (20) '2.0'\n-6FD260 Extract OS            00 (0) 'MS-DOS'\n-6FD261 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD263 Compression Method    0000 (0) 'Stored'\n-6FD265 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD269 CRC                   7317DB5C (1930943324)\n-6FD26D Compressed Size       00000714 (1812)\n-6FD271 Uncompressed Size     00000714 (1812)\n-6FD275 Filename Length       003C (60)\n-6FD277 Extra Length          0009 (9)\n-6FD279 Comment Length        0000 (0)\n-6FD27B Disk Start            0000 (0)\n-6FD27D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD27F Ext File Attributes   00000000 (0)\n-6FD283 Local Header Offset   0065CF36 (6672182)\n-6FD287 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD287: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD2C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD2C5   Length              0005 (5)\n-6FD2C7   Flags               01 (1) 'Modification'\n-6FD2C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD2CC CENTRAL HEADER #1858  02014B50 (33639248)\n-6FD2D0 Created Zip Spec      14 (20) '2.0'\n-6FD2D1 Created OS            00 (0) 'MS-DOS'\n-6FD2D2 Extract Zip Spec      14 (20) '2.0'\n-6FD2D3 Extract OS            00 (0) 'MS-DOS'\n-6FD2D4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD2D6 Compression Method    0000 (0) 'Stored'\n-6FD2D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD2DC CRC                   7D5510EE (2102726894)\n-6FD2E0 Compressed Size       00000DAE (3502)\n-6FD2E4 Uncompressed Size     00000DAE (3502)\n-6FD2E8 Filename Length       0036 (54)\n-6FD2EA Extra Length          0009 (9)\n-6FD2EC Comment Length        0000 (0)\n-6FD2EE Disk Start            0000 (0)\n-6FD2F0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD2F2 Ext File Attributes   00000000 (0)\n-6FD2F6 Local Header Offset   0065D6BD (6674109)\n-6FD2FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD2FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD330 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD332   Length              0005 (5)\n-6FD334   Flags               01 (1) 'Modification'\n-6FD335   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD339 CENTRAL HEADER #1859  02014B50 (33639248)\n-6FD33D Created Zip Spec      14 (20) '2.0'\n-6FD33E Created OS            00 (0) 'MS-DOS'\n-6FD33F Extract Zip Spec      14 (20) '2.0'\n-6FD340 Extract OS            00 (0) 'MS-DOS'\n-6FD341 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD343 Compression Method    0000 (0) 'Stored'\n-6FD345 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD349 CRC                   344C1E36 (877403702)\n-6FD34D Compressed Size       00001FCC (8140)\n-6FD351 Uncompressed Size     00001FCC (8140)\n-6FD355 Filename Length       0042 (66)\n-6FD357 Extra Length          0009 (9)\n-6FD359 Comment Length        0000 (0)\n-6FD35B Disk Start            0000 (0)\n-6FD35D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD35F Ext File Attributes   00000000 (0)\n-6FD363 Local Header Offset   0065E4D8 (6677720)\n-6FD367 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD367: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD3A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD3AB   Length              0005 (5)\n-6FD3AD   Flags               01 (1) 'Modification'\n-6FD3AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD3B2 CENTRAL HEADER #1860  02014B50 (33639248)\n-6FD3B6 Created Zip Spec      14 (20) '2.0'\n-6FD3B7 Created OS            00 (0) 'MS-DOS'\n-6FD3B8 Extract Zip Spec      14 (20) '2.0'\n-6FD3B9 Extract OS            00 (0) 'MS-DOS'\n-6FD3BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD3BC Compression Method    0000 (0) 'Stored'\n-6FD3BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD3C2 CRC                   3B14B127 (991211815)\n-6FD3C6 Compressed Size       000017C7 (6087)\n-6FD3CA Uncompressed Size     000017C7 (6087)\n-6FD3CE Filename Length       0045 (69)\n-6FD3D0 Extra Length          0009 (9)\n-6FD3D2 Comment Length        0000 (0)\n-6FD3D4 Disk Start            0000 (0)\n-6FD3D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD3D8 Ext File Attributes   00000000 (0)\n-6FD3DC Local Header Offset   0066051D (6685981)\n-6FD3E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD3E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD427   Length              0005 (5)\n-6FD429   Flags               01 (1) 'Modification'\n-6FD42A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD42E CENTRAL HEADER #1861  02014B50 (33639248)\n-6FD432 Created Zip Spec      14 (20) '2.0'\n-6FD433 Created OS            00 (0) 'MS-DOS'\n-6FD434 Extract Zip Spec      14 (20) '2.0'\n-6FD435 Extract OS            00 (0) 'MS-DOS'\n-6FD436 General Purpose Flag  0000 (0)\n-6FD438 Compression Method    0000 (0) 'Stored'\n-6FD43A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD43E CRC                   00000000 (0)\n-6FD442 Compressed Size       00000000 (0)\n-6FD446 Uncompressed Size     00000000 (0)\n-6FD44A Filename Length       002B (43)\n-6FD44C Extra Length          0009 (9)\n-6FD44E Comment Length        0000 (0)\n-6FD450 Disk Start            0000 (0)\n-6FD452 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD454 Ext File Attributes   00000000 (0)\n-6FD458 Local Header Offset   00661D60 (6692192)\n-6FD45C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD45C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD487 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD489   Length              0005 (5)\n-6FD48B   Flags               01 (1) 'Modification'\n-6FD48C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD490 CENTRAL HEADER #1862  02014B50 (33639248)\n-6FD494 Created Zip Spec      14 (20) '2.0'\n-6FD495 Created OS            00 (0) 'MS-DOS'\n-6FD496 Extract Zip Spec      14 (20) '2.0'\n-6FD497 Extract OS            00 (0) 'MS-DOS'\n-6FD498 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD49A Compression Method    0000 (0) 'Stored'\n-6FD49C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD4A0 CRC                   1915FFAE (420872110)\n-6FD4A4 Compressed Size       00002228 (8744)\n-6FD4A8 Uncompressed Size     00002228 (8744)\n-6FD4AC Filename Length       003C (60)\n-6FD4AE Extra Length          0009 (9)\n-6FD4B0 Comment Length        0000 (0)\n-6FD4B2 Disk Start            0000 (0)\n-6FD4B4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD4B6 Ext File Attributes   00000000 (0)\n-6FD4BA Local Header Offset   00661DB2 (6692274)\n-6FD4BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD4BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD4FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD4FC   Length              0005 (5)\n-6FD4FE   Flags               01 (1) 'Modification'\n-6FD4FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD503 CENTRAL HEADER #1863  02014B50 (33639248)\n-6FD507 Created Zip Spec      14 (20) '2.0'\n-6FD508 Created OS            00 (0) 'MS-DOS'\n-6FD509 Extract Zip Spec      14 (20) '2.0'\n-6FD50A Extract OS            00 (0) 'MS-DOS'\n-6FD50B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD50D Compression Method    0000 (0) 'Stored'\n-6FD50F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD513 CRC                   B4BC5053 (3032240211)\n-6FD517 Compressed Size       00001648 (5704)\n-6FD51B Uncompressed Size     00001648 (5704)\n-6FD51F Filename Length       003B (59)\n-6FD521 Extra Length          0009 (9)\n-6FD523 Comment Length        0000 (0)\n-6FD525 Disk Start            0000 (0)\n-6FD527 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD529 Ext File Attributes   00000000 (0)\n-6FD52D Local Header Offset   0066404D (6701133)\n-6FD531 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD531: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD56C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD56E   Length              0005 (5)\n-6FD570   Flags               01 (1) 'Modification'\n-6FD571   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD575 CENTRAL HEADER #1864  02014B50 (33639248)\n-6FD579 Created Zip Spec      14 (20) '2.0'\n-6FD57A Created OS            00 (0) 'MS-DOS'\n-6FD57B Extract Zip Spec      14 (20) '2.0'\n-6FD57C Extract OS            00 (0) 'MS-DOS'\n-6FD57D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD57F Compression Method    0000 (0) 'Stored'\n-6FD581 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD585 CRC                   FC4D9CC7 (4232944839)\n-6FD589 Compressed Size       00000409 (1033)\n-6FD58D Uncompressed Size     00000409 (1033)\n-6FD591 Filename Length       0035 (53)\n-6FD593 Extra Length          0009 (9)\n-6FD595 Comment Length        0000 (0)\n-6FD597 Disk Start            0000 (0)\n-6FD599 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD59B Ext File Attributes   00000000 (0)\n-6FD59F Local Header Offset   00665707 (6706951)\n-6FD5A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD5A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD5D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD5DA   Length              0005 (5)\n-6FD5DC   Flags               01 (1) 'Modification'\n-6FD5DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD5E1 CENTRAL HEADER #1865  02014B50 (33639248)\n-6FD5E5 Created Zip Spec      14 (20) '2.0'\n-6FD5E6 Created OS            00 (0) 'MS-DOS'\n-6FD5E7 Extract Zip Spec      14 (20) '2.0'\n-6FD5E8 Extract OS            00 (0) 'MS-DOS'\n-6FD5E9 General Purpose Flag  0000 (0)\n-6FD5EB Compression Method    0000 (0) 'Stored'\n-6FD5ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD5F1 CRC                   00000000 (0)\n-6FD5F5 Compressed Size       00000000 (0)\n-6FD5F9 Uncompressed Size     00000000 (0)\n-6FD5FD Filename Length       002B (43)\n-6FD5FF Extra Length          0009 (9)\n-6FD601 Comment Length        0000 (0)\n-6FD603 Disk Start            0000 (0)\n-6FD605 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD607 Ext File Attributes   00000000 (0)\n-6FD60B Local Header Offset   00665B7C (6708092)\n-6FD60F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD60F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD63A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD63C   Length              0005 (5)\n-6FD63E   Flags               01 (1) 'Modification'\n-6FD63F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD643 CENTRAL HEADER #1866  02014B50 (33639248)\n-6FD647 Created Zip Spec      14 (20) '2.0'\n-6FD648 Created OS            00 (0) 'MS-DOS'\n-6FD649 Extract Zip Spec      14 (20) '2.0'\n-6FD64A Extract OS            00 (0) 'MS-DOS'\n-6FD64B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD64D Compression Method    0000 (0) 'Stored'\n-6FD64F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD653 CRC                   C9453D78 (3376758136)\n-6FD657 Compressed Size       000008E4 (2276)\n-6FD65B Uncompressed Size     000008E4 (2276)\n-6FD65F Filename Length       0043 (67)\n-6FD661 Extra Length          0009 (9)\n-6FD663 Comment Length        0000 (0)\n-6FD665 Disk Start            0000 (0)\n-6FD667 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD669 Ext File Attributes   00000000 (0)\n-6FD66D Local Header Offset   00665BCE (6708174)\n-6FD671 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD671: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD6B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD6B6   Length              0005 (5)\n-6FD6B8   Flags               01 (1) 'Modification'\n-6FD6B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD6BD CENTRAL HEADER #1867  02014B50 (33639248)\n-6FD6C1 Created Zip Spec      14 (20) '2.0'\n-6FD6C2 Created OS            00 (0) 'MS-DOS'\n-6FD6C3 Extract Zip Spec      14 (20) '2.0'\n-6FD6C4 Extract OS            00 (0) 'MS-DOS'\n-6FD6C5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD6C7 Compression Method    0000 (0) 'Stored'\n-6FD6C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD6CD CRC                   5A226E99 (1512205977)\n-6FD6D1 Compressed Size       00000B86 (2950)\n-6FD6D5 Uncompressed Size     00000B86 (2950)\n-6FD6D9 Filename Length       0047 (71)\n-6FD6DB Extra Length          0009 (9)\n-6FD6DD Comment Length        0000 (0)\n-6FD6DF Disk Start            0000 (0)\n-6FD6E1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD6E3 Ext File Attributes   00000000 (0)\n-6FD6E7 Local Header Offset   0066652C (6710572)\n-6FD6EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD6EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD732 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD734   Length              0005 (5)\n-6FD736   Flags               01 (1) 'Modification'\n-6FD737   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD73B CENTRAL HEADER #1868  02014B50 (33639248)\n-6FD73F Created Zip Spec      14 (20) '2.0'\n-6FD740 Created OS            00 (0) 'MS-DOS'\n-6FD741 Extract Zip Spec      14 (20) '2.0'\n-6FD742 Extract OS            00 (0) 'MS-DOS'\n-6FD743 General Purpose Flag  0000 (0)\n-6FD745 Compression Method    0000 (0) 'Stored'\n-6FD747 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD74B CRC                   00000000 (0)\n-6FD74F Compressed Size       00000000 (0)\n-6FD753 Uncompressed Size     00000000 (0)\n-6FD757 Filename Length       0023 (35)\n-6FD759 Extra Length          0009 (9)\n-6FD75B Comment Length        0000 (0)\n-6FD75D Disk Start            0000 (0)\n-6FD75F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD761 Ext File Attributes   00000000 (0)\n-6FD765 Local Header Offset   00667130 (6713648)\n-6FD769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD78C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD78E   Length              0005 (5)\n-6FD790   Flags               01 (1) 'Modification'\n-6FD791   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD795 CENTRAL HEADER #1869  02014B50 (33639248)\n-6FD799 Created Zip Spec      14 (20) '2.0'\n-6FD79A Created OS            00 (0) 'MS-DOS'\n-6FD79B Extract Zip Spec      14 (20) '2.0'\n-6FD79C Extract OS            00 (0) 'MS-DOS'\n-6FD79D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD79F Compression Method    0000 (0) 'Stored'\n-6FD7A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD7A5 CRC                   210B2AE8 (554380008)\n-6FD7A9 Compressed Size       00000A59 (2649)\n-6FD7AD Uncompressed Size     00000A59 (2649)\n-6FD7B1 Filename Length       003C (60)\n-6FD7B3 Extra Length          0009 (9)\n-6FD7B5 Comment Length        0000 (0)\n-6FD7B7 Disk Start            0000 (0)\n-6FD7B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD7BB Ext File Attributes   00000000 (0)\n-6FD7BF Local Header Offset   0066717A (6713722)\n-6FD7C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD7C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD7FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD801   Length              0005 (5)\n-6FD803   Flags               01 (1) 'Modification'\n-6FD804   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD808 CENTRAL HEADER #1870  02014B50 (33639248)\n-6FD80C Created Zip Spec      14 (20) '2.0'\n-6FD80D Created OS            00 (0) 'MS-DOS'\n-6FD80E Extract Zip Spec      14 (20) '2.0'\n-6FD80F Extract OS            00 (0) 'MS-DOS'\n-6FD810 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD812 Compression Method    0000 (0) 'Stored'\n-6FD814 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD818 CRC                   C1CD2495 (3251446933)\n-6FD81C Compressed Size       0000036C (876)\n-6FD820 Uncompressed Size     0000036C (876)\n-6FD824 Filename Length       0032 (50)\n-6FD826 Extra Length          0009 (9)\n-6FD828 Comment Length        0000 (0)\n-6FD82A Disk Start            0000 (0)\n-6FD82C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD82E Ext File Attributes   00000000 (0)\n-6FD832 Local Header Offset   00667C46 (6716486)\n-6FD836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD868 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD86A   Length              0005 (5)\n-6FD86C   Flags               01 (1) 'Modification'\n-6FD86D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD871 CENTRAL HEADER #1871  02014B50 (33639248)\n-6FD875 Created Zip Spec      14 (20) '2.0'\n-6FD876 Created OS            00 (0) 'MS-DOS'\n-6FD877 Extract Zip Spec      14 (20) '2.0'\n-6FD878 Extract OS            00 (0) 'MS-DOS'\n-6FD879 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD87B Compression Method    0000 (0) 'Stored'\n-6FD87D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD881 CRC                   C06931B4 (3228119476)\n-6FD885 Compressed Size       0000079E (1950)\n-6FD889 Uncompressed Size     0000079E (1950)\n-6FD88D Filename Length       0035 (53)\n-6FD88F Extra Length          0009 (9)\n-6FD891 Comment Length        0000 (0)\n-6FD893 Disk Start            0000 (0)\n-6FD895 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD897 Ext File Attributes   00000000 (0)\n-6FD89B Local Header Offset   0066801B (6717467)\n-6FD89F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD89F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD8D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD8D6   Length              0005 (5)\n-6FD8D8   Flags               01 (1) 'Modification'\n-6FD8D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD8DD CENTRAL HEADER #1872  02014B50 (33639248)\n-6FD8E1 Created Zip Spec      14 (20) '2.0'\n-6FD8E2 Created OS            00 (0) 'MS-DOS'\n-6FD8E3 Extract Zip Spec      14 (20) '2.0'\n-6FD8E4 Extract OS            00 (0) 'MS-DOS'\n-6FD8E5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD8E7 Compression Method    0000 (0) 'Stored'\n-6FD8E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD8ED CRC                   89D2048F (2312242319)\n-6FD8F1 Compressed Size       00000FE5 (4069)\n-6FD8F5 Uncompressed Size     00000FE5 (4069)\n-6FD8F9 Filename Length       0033 (51)\n-6FD8FB Extra Length          0009 (9)\n-6FD8FD Comment Length        0000 (0)\n-6FD8FF Disk Start            0000 (0)\n-6FD901 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD903 Ext File Attributes   00000000 (0)\n-6FD907 Local Header Offset   00668825 (6719525)\n-6FD90B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD90B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD93E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD940   Length              0005 (5)\n-6FD942   Flags               01 (1) 'Modification'\n-6FD943   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD947 CENTRAL HEADER #1873  02014B50 (33639248)\n-6FD94B Created Zip Spec      14 (20) '2.0'\n-6FD94C Created OS            00 (0) 'MS-DOS'\n-6FD94D Extract Zip Spec      14 (20) '2.0'\n-6FD94E Extract OS            00 (0) 'MS-DOS'\n-6FD94F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD951 Compression Method    0000 (0) 'Stored'\n-6FD953 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD957 CRC                   8EC3CE19 (2395196953)\n-6FD95B Compressed Size       000028DB (10459)\n-6FD95F Uncompressed Size     000028DB (10459)\n-6FD963 Filename Length       0038 (56)\n-6FD965 Extra Length          0009 (9)\n-6FD967 Comment Length        0000 (0)\n-6FD969 Disk Start            0000 (0)\n-6FD96B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD96D Ext File Attributes   00000000 (0)\n-6FD971 Local Header Offset   00669874 (6723700)\n-6FD975 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD975: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FD9AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FD9AF   Length              0005 (5)\n-6FD9B1   Flags               01 (1) 'Modification'\n-6FD9B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FD9B6 CENTRAL HEADER #1874  02014B50 (33639248)\n-6FD9BA Created Zip Spec      14 (20) '2.0'\n-6FD9BB Created OS            00 (0) 'MS-DOS'\n-6FD9BC Extract Zip Spec      14 (20) '2.0'\n-6FD9BD Extract OS            00 (0) 'MS-DOS'\n-6FD9BE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FD9C0 Compression Method    0000 (0) 'Stored'\n-6FD9C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FD9C6 CRC                   672528B3 (1730488499)\n-6FD9CA Compressed Size       00002110 (8464)\n-6FD9CE Uncompressed Size     00002110 (8464)\n-6FD9D2 Filename Length       0034 (52)\n-6FD9D4 Extra Length          0009 (9)\n-6FD9D6 Comment Length        0000 (0)\n-6FD9D8 Disk Start            0000 (0)\n-6FD9DA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FD9DC Ext File Attributes   00000000 (0)\n-6FD9E0 Local Header Offset   0066C1BE (6734270)\n-6FD9E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FD9E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDA18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDA1A   Length              0005 (5)\n-6FDA1C   Flags               01 (1) 'Modification'\n-6FDA1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDA21 CENTRAL HEADER #1875  02014B50 (33639248)\n-6FDA25 Created Zip Spec      14 (20) '2.0'\n-6FDA26 Created OS            00 (0) 'MS-DOS'\n-6FDA27 Extract Zip Spec      14 (20) '2.0'\n-6FDA28 Extract OS            00 (0) 'MS-DOS'\n-6FDA29 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDA2B Compression Method    0000 (0) 'Stored'\n-6FDA2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDA31 CRC                   5C1106B9 (1544619705)\n-6FDA35 Compressed Size       00000A3E (2622)\n-6FDA39 Uncompressed Size     00000A3E (2622)\n-6FDA3D Filename Length       0044 (68)\n-6FDA3F Extra Length          0009 (9)\n-6FDA41 Comment Length        0000 (0)\n-6FDA43 Disk Start            0000 (0)\n-6FDA45 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDA47 Ext File Attributes   00000000 (0)\n-6FDA4B Local Header Offset   0066E339 (6742841)\n-6FDA4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDA4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDA93 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDA95   Length              0005 (5)\n-6FDA97   Flags               01 (1) 'Modification'\n-6FDA98   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDA9C CENTRAL HEADER #1876  02014B50 (33639248)\n-6FDAA0 Created Zip Spec      14 (20) '2.0'\n-6FDAA1 Created OS            00 (0) 'MS-DOS'\n-6FDAA2 Extract Zip Spec      14 (20) '2.0'\n-6FDAA3 Extract OS            00 (0) 'MS-DOS'\n-6FDAA4 General Purpose Flag  0000 (0)\n-6FDAA6 Compression Method    0000 (0) 'Stored'\n-6FDAA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDAAC CRC                   00000000 (0)\n-6FDAB0 Compressed Size       00000000 (0)\n-6FDAB4 Uncompressed Size     00000000 (0)\n-6FDAB8 Filename Length       0030 (48)\n-6FDABA Extra Length          0009 (9)\n-6FDABC Comment Length        0000 (0)\n-6FDABE Disk Start            0000 (0)\n-6FDAC0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDAC2 Ext File Attributes   00000000 (0)\n-6FDAC6 Local Header Offset   0066EDF2 (6745586)\n-6FDACA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDACA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDAFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDAFC   Length              0005 (5)\n-6FDAFE   Flags               01 (1) 'Modification'\n-6FDAFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDB03 CENTRAL HEADER #1877  02014B50 (33639248)\n-6FDB07 Created Zip Spec      14 (20) '2.0'\n-6FDB08 Created OS            00 (0) 'MS-DOS'\n-6FDB09 Extract Zip Spec      14 (20) '2.0'\n-6FDB0A Extract OS            00 (0) 'MS-DOS'\n-6FDB0B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDB0D Compression Method    0000 (0) 'Stored'\n-6FDB0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDB13 CRC                   1C86279A (478554010)\n-6FDB17 Compressed Size       00000446 (1094)\n-6FDB1B Uncompressed Size     00000446 (1094)\n-6FDB1F Filename Length       0046 (70)\n-6FDB21 Extra Length          0009 (9)\n-6FDB23 Comment Length        0000 (0)\n-6FDB25 Disk Start            0000 (0)\n-6FDB27 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDB29 Ext File Attributes   00000000 (0)\n-6FDB2D Local Header Offset   0066EE49 (6745673)\n-6FDB31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDB31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDB77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDB79   Length              0005 (5)\n-6FDB7B   Flags               01 (1) 'Modification'\n-6FDB7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDB80 CENTRAL HEADER #1878  02014B50 (33639248)\n-6FDB84 Created Zip Spec      14 (20) '2.0'\n-6FDB85 Created OS            00 (0) 'MS-DOS'\n-6FDB86 Extract Zip Spec      14 (20) '2.0'\n-6FDB87 Extract OS            00 (0) 'MS-DOS'\n-6FDB88 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDB8A Compression Method    0000 (0) 'Stored'\n-6FDB8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDB90 CRC                   E37CC454 (3816604756)\n-6FDB94 Compressed Size       000005B2 (1458)\n-6FDB98 Uncompressed Size     000005B2 (1458)\n-6FDB9C Filename Length       0045 (69)\n-6FDB9E Extra Length          0009 (9)\n-6FDBA0 Comment Length        0000 (0)\n-6FDBA2 Disk Start            0000 (0)\n-6FDBA4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDBA6 Ext File Attributes   00000000 (0)\n-6FDBAA Local Header Offset   0066F30C (6746892)\n-6FDBAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDBAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDBF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDBF5   Length              0005 (5)\n-6FDBF7   Flags               01 (1) 'Modification'\n-6FDBF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDBFC CENTRAL HEADER #1879  02014B50 (33639248)\n-6FDC00 Created Zip Spec      14 (20) '2.0'\n-6FDC01 Created OS            00 (0) 'MS-DOS'\n-6FDC02 Extract Zip Spec      14 (20) '2.0'\n-6FDC03 Extract OS            00 (0) 'MS-DOS'\n-6FDC04 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDC06 Compression Method    0000 (0) 'Stored'\n-6FDC08 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDC0C CRC                   2C4E86BA (743343802)\n-6FDC10 Compressed Size       00001120 (4384)\n-6FDC14 Uncompressed Size     00001120 (4384)\n-6FDC18 Filename Length       004A (74)\n-6FDC1A Extra Length          0009 (9)\n-6FDC1C Comment Length        0000 (0)\n-6FDC1E Disk Start            0000 (0)\n-6FDC20 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDC22 Ext File Attributes   00000000 (0)\n-6FDC26 Local Header Offset   0066F93A (6748474)\n-6FDC2A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDC2A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDC74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDC76   Length              0005 (5)\n-6FDC78   Flags               01 (1) 'Modification'\n-6FDC79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDC7D CENTRAL HEADER #1880  02014B50 (33639248)\n-6FDC81 Created Zip Spec      14 (20) '2.0'\n-6FDC82 Created OS            00 (0) 'MS-DOS'\n-6FDC83 Extract Zip Spec      14 (20) '2.0'\n-6FDC84 Extract OS            00 (0) 'MS-DOS'\n-6FDC85 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDC87 Compression Method    0000 (0) 'Stored'\n-6FDC89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDC8D CRC                   592F92C2 (1496289986)\n-6FDC91 Compressed Size       00000446 (1094)\n-6FDC95 Uncompressed Size     00000446 (1094)\n-6FDC99 Filename Length       0046 (70)\n-6FDC9B Extra Length          0009 (9)\n-6FDC9D Comment Length        0000 (0)\n-6FDC9F Disk Start            0000 (0)\n-6FDCA1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDCA3 Ext File Attributes   00000000 (0)\n-6FDCA7 Local Header Offset   00670ADB (6752987)\n-6FDCAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDCAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDCF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDCF3   Length              0005 (5)\n-6FDCF5   Flags               01 (1) 'Modification'\n-6FDCF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDCFA CENTRAL HEADER #1881  02014B50 (33639248)\n-6FDCFE Created Zip Spec      14 (20) '2.0'\n-6FDCFF Created OS            00 (0) 'MS-DOS'\n-6FDD00 Extract Zip Spec      14 (20) '2.0'\n-6FDD01 Extract OS            00 (0) 'MS-DOS'\n-6FDD02 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDD04 Compression Method    0000 (0) 'Stored'\n-6FDD06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDD0A CRC                   7BC2ED93 (2076372371)\n-6FDD0E Compressed Size       00000461 (1121)\n-6FDD12 Uncompressed Size     00000461 (1121)\n-6FDD16 Filename Length       004A (74)\n-6FDD18 Extra Length          0009 (9)\n-6FDD1A Comment Length        0000 (0)\n-6FDD1C Disk Start            0000 (0)\n-6FDD1E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDD20 Ext File Attributes   00000000 (0)\n-6FDD24 Local Header Offset   00670F9E (6754206)\n-6FDD28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDD28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDD72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDD74   Length              0005 (5)\n-6FDD76   Flags               01 (1) 'Modification'\n-6FDD77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDD7B CENTRAL HEADER #1882  02014B50 (33639248)\n-6FDD7F Created Zip Spec      14 (20) '2.0'\n-6FDD80 Created OS            00 (0) 'MS-DOS'\n-6FDD81 Extract Zip Spec      14 (20) '2.0'\n-6FDD82 Extract OS            00 (0) 'MS-DOS'\n-6FDD83 General Purpose Flag  0000 (0)\n-6FDD85 Compression Method    0000 (0) 'Stored'\n-6FDD87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDD8B CRC                   00000000 (0)\n-6FDD8F Compressed Size       00000000 (0)\n-6FDD93 Uncompressed Size     00000000 (0)\n-6FDD97 Filename Length       0026 (38)\n-6FDD99 Extra Length          0009 (9)\n-6FDD9B Comment Length        0000 (0)\n-6FDD9D Disk Start            0000 (0)\n-6FDD9F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDDA1 Ext File Attributes   00000000 (0)\n-6FDDA5 Local Header Offset   00671480 (6755456)\n-6FDDA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDDA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDDCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDDD1   Length              0005 (5)\n-6FDDD3   Flags               01 (1) 'Modification'\n-6FDDD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDDD8 CENTRAL HEADER #1883  02014B50 (33639248)\n-6FDDDC Created Zip Spec      14 (20) '2.0'\n-6FDDDD Created OS            00 (0) 'MS-DOS'\n-6FDDDE Extract Zip Spec      14 (20) '2.0'\n-6FDDDF Extract OS            00 (0) 'MS-DOS'\n-6FDDE0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDDE2 Compression Method    0000 (0) 'Stored'\n-6FDDE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDDE8 CRC                   0DF301D6 (234029526)\n-6FDDEC Compressed Size       00000488 (1160)\n-6FDDF0 Uncompressed Size     00000488 (1160)\n-6FDDF4 Filename Length       0034 (52)\n-6FDDF6 Extra Length          0009 (9)\n-6FDDF8 Comment Length        0000 (0)\n-6FDDFA Disk Start            0000 (0)\n-6FDDFC Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDDFE Ext File Attributes   00000000 (0)\n-6FDE02 Local Header Offset   006714CD (6755533)\n-6FDE06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDE06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDE3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDE3C   Length              0005 (5)\n-6FDE3E   Flags               01 (1) 'Modification'\n-6FDE3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDE43 CENTRAL HEADER #1884  02014B50 (33639248)\n-6FDE47 Created Zip Spec      14 (20) '2.0'\n-6FDE48 Created OS            00 (0) 'MS-DOS'\n-6FDE49 Extract Zip Spec      14 (20) '2.0'\n-6FDE4A Extract OS            00 (0) 'MS-DOS'\n-6FDE4B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDE4D Compression Method    0000 (0) 'Stored'\n-6FDE4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDE53 CRC                   280A6840 (671770688)\n-6FDE57 Compressed Size       00000632 (1586)\n-6FDE5B Uncompressed Size     00000632 (1586)\n-6FDE5F Filename Length       004B (75)\n-6FDE61 Extra Length          0009 (9)\n-6FDE63 Comment Length        0000 (0)\n-6FDE65 Disk Start            0000 (0)\n-6FDE67 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDE69 Ext File Attributes   00000000 (0)\n-6FDE6D Local Header Offset   006719C0 (6756800)\n-6FDE71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDE71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDEBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDEBE   Length              0005 (5)\n-6FDEC0   Flags               01 (1) 'Modification'\n-6FDEC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDEC5 CENTRAL HEADER #1885  02014B50 (33639248)\n-6FDEC9 Created Zip Spec      14 (20) '2.0'\n-6FDECA Created OS            00 (0) 'MS-DOS'\n-6FDECB Extract Zip Spec      14 (20) '2.0'\n-6FDECC Extract OS            00 (0) 'MS-DOS'\n-6FDECD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDECF Compression Method    0000 (0) 'Stored'\n-6FDED1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDED5 CRC                   ED0697F4 (3976632308)\n-6FDED9 Compressed Size       000022BD (8893)\n-6FDEDD Uncompressed Size     000022BD (8893)\n-6FDEE1 Filename Length       003A (58)\n-6FDEE3 Extra Length          0009 (9)\n-6FDEE5 Comment Length        0000 (0)\n-6FDEE7 Disk Start            0000 (0)\n-6FDEE9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDEEB Ext File Attributes   00000000 (0)\n-6FDEEF Local Header Offset   00672074 (6758516)\n-6FDEF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDEF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDF2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDF2F   Length              0005 (5)\n-6FDF31   Flags               01 (1) 'Modification'\n-6FDF32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDF36 CENTRAL HEADER #1886  02014B50 (33639248)\n-6FDF3A Created Zip Spec      14 (20) '2.0'\n-6FDF3B Created OS            00 (0) 'MS-DOS'\n-6FDF3C Extract Zip Spec      14 (20) '2.0'\n-6FDF3D Extract OS            00 (0) 'MS-DOS'\n-6FDF3E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDF40 Compression Method    0000 (0) 'Stored'\n-6FDF42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDF46 CRC                   D14D14C7 (3511489735)\n-6FDF4A Compressed Size       00000CF4 (3316)\n-6FDF4E Uncompressed Size     00000CF4 (3316)\n-6FDF52 Filename Length       003F (63)\n-6FDF54 Extra Length          0009 (9)\n-6FDF56 Comment Length        0000 (0)\n-6FDF58 Disk Start            0000 (0)\n-6FDF5A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDF5C Ext File Attributes   00000000 (0)\n-6FDF60 Local Header Offset   006743A2 (6767522)\n-6FDF64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDF64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FDFA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FDFA5   Length              0005 (5)\n-6FDFA7   Flags               01 (1) 'Modification'\n-6FDFA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FDFAC CENTRAL HEADER #1887  02014B50 (33639248)\n-6FDFB0 Created Zip Spec      14 (20) '2.0'\n-6FDFB1 Created OS            00 (0) 'MS-DOS'\n-6FDFB2 Extract Zip Spec      14 (20) '2.0'\n-6FDFB3 Extract OS            00 (0) 'MS-DOS'\n-6FDFB4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FDFB6 Compression Method    0000 (0) 'Stored'\n-6FDFB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FDFBC CRC                   EE95F899 (4002805913)\n-6FDFC0 Compressed Size       00000925 (2341)\n-6FDFC4 Uncompressed Size     00000925 (2341)\n-6FDFC8 Filename Length       0046 (70)\n-6FDFCA Extra Length          0009 (9)\n-6FDFCC Comment Length        0000 (0)\n-6FDFCE Disk Start            0000 (0)\n-6FDFD0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FDFD2 Ext File Attributes   00000000 (0)\n-6FDFD6 Local Header Offset   0067510C (6770956)\n-6FDFDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FDFDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE020 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE022   Length              0005 (5)\n-6FE024   Flags               01 (1) 'Modification'\n-6FE025   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE029 CENTRAL HEADER #1888  02014B50 (33639248)\n-6FE02D Created Zip Spec      14 (20) '2.0'\n-6FE02E Created OS            00 (0) 'MS-DOS'\n-6FE02F Extract Zip Spec      14 (20) '2.0'\n-6FE030 Extract OS            00 (0) 'MS-DOS'\n-6FE031 General Purpose Flag  0000 (0)\n-6FE033 Compression Method    0000 (0) 'Stored'\n-6FE035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE039 CRC                   00000000 (0)\n-6FE03D Compressed Size       00000000 (0)\n-6FE041 Uncompressed Size     00000000 (0)\n-6FE045 Filename Length       0023 (35)\n-6FE047 Extra Length          0009 (9)\n-6FE049 Comment Length        0000 (0)\n-6FE04B Disk Start            0000 (0)\n-6FE04D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE04F Ext File Attributes   00000000 (0)\n-6FE053 Local Header Offset   00675AAE (6773422)\n-6FE057 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE057: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE07A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE07C   Length              0005 (5)\n-6FE07E   Flags               01 (1) 'Modification'\n-6FE07F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE083 CENTRAL HEADER #1889  02014B50 (33639248)\n-6FE087 Created Zip Spec      14 (20) '2.0'\n-6FE088 Created OS            00 (0) 'MS-DOS'\n-6FE089 Extract Zip Spec      14 (20) '2.0'\n-6FE08A Extract OS            00 (0) 'MS-DOS'\n-6FE08B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE08D Compression Method    0000 (0) 'Stored'\n-6FE08F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE093 CRC                   67E99252 (1743360594)\n-6FE097 Compressed Size       00001D88 (7560)\n-6FE09B Uncompressed Size     00001D88 (7560)\n-6FE09F Filename Length       0034 (52)\n-6FE0A1 Extra Length          0009 (9)\n-6FE0A3 Comment Length        0000 (0)\n-6FE0A5 Disk Start            0000 (0)\n-6FE0A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE0A9 Ext File Attributes   00000000 (0)\n-6FE0AD Local Header Offset   00675AF8 (6773496)\n-6FE0B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE0B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE0E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE0E7   Length              0005 (5)\n-6FE0E9   Flags               01 (1) 'Modification'\n-6FE0EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE0EE CENTRAL HEADER #1890  02014B50 (33639248)\n-6FE0F2 Created Zip Spec      14 (20) '2.0'\n-6FE0F3 Created OS            00 (0) 'MS-DOS'\n-6FE0F4 Extract Zip Spec      14 (20) '2.0'\n-6FE0F5 Extract OS            00 (0) 'MS-DOS'\n-6FE0F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE0F8 Compression Method    0000 (0) 'Stored'\n-6FE0FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE0FE CRC                   B3BC74DF (3015472351)\n-6FE102 Compressed Size       00000429 (1065)\n-6FE106 Uncompressed Size     00000429 (1065)\n-6FE10A Filename Length       003D (61)\n-6FE10C Extra Length          0009 (9)\n-6FE10E Comment Length        0000 (0)\n-6FE110 Disk Start            0000 (0)\n-6FE112 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE114 Ext File Attributes   00000000 (0)\n-6FE118 Local Header Offset   006778EB (6781163)\n-6FE11C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE11C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE159 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE15B   Length              0005 (5)\n-6FE15D   Flags               01 (1) 'Modification'\n-6FE15E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE162 CENTRAL HEADER #1891  02014B50 (33639248)\n-6FE166 Created Zip Spec      14 (20) '2.0'\n-6FE167 Created OS            00 (0) 'MS-DOS'\n-6FE168 Extract Zip Spec      14 (20) '2.0'\n-6FE169 Extract OS            00 (0) 'MS-DOS'\n-6FE16A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE16C Compression Method    0000 (0) 'Stored'\n-6FE16E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE172 CRC                   29478F2B (692555563)\n-6FE176 Compressed Size       000008EB (2283)\n-6FE17A Uncompressed Size     000008EB (2283)\n-6FE17E Filename Length       003C (60)\n-6FE180 Extra Length          0009 (9)\n-6FE182 Comment Length        0000 (0)\n-6FE184 Disk Start            0000 (0)\n-6FE186 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE188 Ext File Attributes   00000000 (0)\n-6FE18C Local Header Offset   00677D88 (6782344)\n-6FE190 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE190: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE1CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE1CE   Length              0005 (5)\n-6FE1D0   Flags               01 (1) 'Modification'\n-6FE1D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE1D5 CENTRAL HEADER #1892  02014B50 (33639248)\n-6FE1D9 Created Zip Spec      14 (20) '2.0'\n-6FE1DA Created OS            00 (0) 'MS-DOS'\n-6FE1DB Extract Zip Spec      14 (20) '2.0'\n-6FE1DC Extract OS            00 (0) 'MS-DOS'\n-6FE1DD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE1DF Compression Method    0000 (0) 'Stored'\n-6FE1E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE1E5 CRC                   DBBDBD3B (3686645051)\n-6FE1E9 Compressed Size       00000B0C (2828)\n-6FE1ED Uncompressed Size     00000B0C (2828)\n-6FE1F1 Filename Length       003F (63)\n-6FE1F3 Extra Length          0009 (9)\n-6FE1F5 Comment Length        0000 (0)\n-6FE1F7 Disk Start            0000 (0)\n-6FE1F9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE1FB Ext File Attributes   00000000 (0)\n-6FE1FF Local Header Offset   006786E6 (6784742)\n-6FE203 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE203: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE242 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE244   Length              0005 (5)\n-6FE246   Flags               01 (1) 'Modification'\n-6FE247   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE24B CENTRAL HEADER #1893  02014B50 (33639248)\n-6FE24F Created Zip Spec      14 (20) '2.0'\n-6FE250 Created OS            00 (0) 'MS-DOS'\n-6FE251 Extract Zip Spec      14 (20) '2.0'\n-6FE252 Extract OS            00 (0) 'MS-DOS'\n-6FE253 General Purpose Flag  0000 (0)\n-6FE255 Compression Method    0000 (0) 'Stored'\n-6FE257 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE25B CRC                   00000000 (0)\n-6FE25F Compressed Size       00000000 (0)\n-6FE263 Uncompressed Size     00000000 (0)\n-6FE267 Filename Length       0024 (36)\n-6FE269 Extra Length          0009 (9)\n-6FE26B Comment Length        0000 (0)\n-6FE26D Disk Start            0000 (0)\n-6FE26F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE271 Ext File Attributes   00000000 (0)\n-6FE275 Local Header Offset   00679268 (6787688)\n-6FE279 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE279: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE29D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE29F   Length              0005 (5)\n-6FE2A1   Flags               01 (1) 'Modification'\n-6FE2A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE2A6 CENTRAL HEADER #1894  02014B50 (33639248)\n-6FE2AA Created Zip Spec      14 (20) '2.0'\n-6FE2AB Created OS            00 (0) 'MS-DOS'\n-6FE2AC Extract Zip Spec      14 (20) '2.0'\n-6FE2AD Extract OS            00 (0) 'MS-DOS'\n-6FE2AE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE2B0 Compression Method    0000 (0) 'Stored'\n-6FE2B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE2B6 CRC                   780A8F69 (2013957993)\n-6FE2BA Compressed Size       000005F6 (1526)\n-6FE2BE Uncompressed Size     000005F6 (1526)\n-6FE2C2 Filename Length       0036 (54)\n-6FE2C4 Extra Length          0009 (9)\n-6FE2C6 Comment Length        0000 (0)\n-6FE2C8 Disk Start            0000 (0)\n-6FE2CA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE2CC Ext File Attributes   00000000 (0)\n-6FE2D0 Local Header Offset   006792B3 (6787763)\n-6FE2D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE2D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE30A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE30C   Length              0005 (5)\n-6FE30E   Flags               01 (1) 'Modification'\n-6FE30F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE313 CENTRAL HEADER #1895  02014B50 (33639248)\n-6FE317 Created Zip Spec      14 (20) '2.0'\n-6FE318 Created OS            00 (0) 'MS-DOS'\n-6FE319 Extract Zip Spec      14 (20) '2.0'\n-6FE31A Extract OS            00 (0) 'MS-DOS'\n-6FE31B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE31D Compression Method    0000 (0) 'Stored'\n-6FE31F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE323 CRC                   0693959E (110335390)\n-6FE327 Compressed Size       00000AB6 (2742)\n-6FE32B Uncompressed Size     00000AB6 (2742)\n-6FE32F Filename Length       0035 (53)\n-6FE331 Extra Length          0009 (9)\n-6FE333 Comment Length        0000 (0)\n-6FE335 Disk Start            0000 (0)\n-6FE337 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE339 Ext File Attributes   00000000 (0)\n-6FE33D Local Header Offset   00679916 (6789398)\n-6FE341 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE341: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE376 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE378   Length              0005 (5)\n-6FE37A   Flags               01 (1) 'Modification'\n-6FE37B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE37F CENTRAL HEADER #1896  02014B50 (33639248)\n-6FE383 Created Zip Spec      14 (20) '2.0'\n-6FE384 Created OS            00 (0) 'MS-DOS'\n-6FE385 Extract Zip Spec      14 (20) '2.0'\n-6FE386 Extract OS            00 (0) 'MS-DOS'\n-6FE387 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE389 Compression Method    0000 (0) 'Stored'\n-6FE38B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE38F CRC                   F08334AC (4035130540)\n-6FE393 Compressed Size       00001172 (4466)\n-6FE397 Uncompressed Size     00001172 (4466)\n-6FE39B Filename Length       0036 (54)\n-6FE39D Extra Length          0009 (9)\n-6FE39F Comment Length        0000 (0)\n-6FE3A1 Disk Start            0000 (0)\n-6FE3A3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE3A5 Ext File Attributes   00000000 (0)\n-6FE3A9 Local Header Offset   0067A438 (6792248)\n-6FE3AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE3AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE3E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE3E5   Length              0005 (5)\n-6FE3E7   Flags               01 (1) 'Modification'\n-6FE3E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE3EC CENTRAL HEADER #1897  02014B50 (33639248)\n-6FE3F0 Created Zip Spec      14 (20) '2.0'\n-6FE3F1 Created OS            00 (0) 'MS-DOS'\n-6FE3F2 Extract Zip Spec      14 (20) '2.0'\n-6FE3F3 Extract OS            00 (0) 'MS-DOS'\n-6FE3F4 General Purpose Flag  0000 (0)\n-6FE3F6 Compression Method    0000 (0) 'Stored'\n-6FE3F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE3FC CRC                   00000000 (0)\n-6FE400 Compressed Size       00000000 (0)\n-6FE404 Uncompressed Size     00000000 (0)\n-6FE408 Filename Length       0028 (40)\n-6FE40A Extra Length          0009 (9)\n-6FE40C Comment Length        0000 (0)\n-6FE40E Disk Start            0000 (0)\n-6FE410 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE412 Ext File Attributes   00000000 (0)\n-6FE416 Local Header Offset   0067B617 (6796823)\n-6FE41A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE41A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE442 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE444   Length              0005 (5)\n-6FE446   Flags               01 (1) 'Modification'\n-6FE447   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE44B CENTRAL HEADER #1898  02014B50 (33639248)\n-6FE44F Created Zip Spec      14 (20) '2.0'\n-6FE450 Created OS            00 (0) 'MS-DOS'\n-6FE451 Extract Zip Spec      14 (20) '2.0'\n-6FE452 Extract OS            00 (0) 'MS-DOS'\n-6FE453 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE455 Compression Method    0000 (0) 'Stored'\n-6FE457 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE45B CRC                   E525BFD2 (3844456402)\n-6FE45F Compressed Size       00001958 (6488)\n-6FE463 Uncompressed Size     00001958 (6488)\n-6FE467 Filename Length       003E (62)\n-6FE469 Extra Length          0009 (9)\n-6FE46B Comment Length        0000 (0)\n-6FE46D Disk Start            0000 (0)\n-6FE46F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE471 Ext File Attributes   00000000 (0)\n-6FE475 Local Header Offset   0067B666 (6796902)\n-6FE479 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE479: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE4B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE4B9   Length              0005 (5)\n-6FE4BB   Flags               01 (1) 'Modification'\n-6FE4BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE4C0 CENTRAL HEADER #1899  02014B50 (33639248)\n-6FE4C4 Created Zip Spec      14 (20) '2.0'\n-6FE4C5 Created OS            00 (0) 'MS-DOS'\n-6FE4C6 Extract Zip Spec      14 (20) '2.0'\n-6FE4C7 Extract OS            00 (0) 'MS-DOS'\n-6FE4C8 General Purpose Flag  0000 (0)\n-6FE4CA Compression Method    0000 (0) 'Stored'\n-6FE4CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE4D0 CRC                   00000000 (0)\n-6FE4D4 Compressed Size       00000000 (0)\n-6FE4D8 Uncompressed Size     00000000 (0)\n-6FE4DC Filename Length       002B (43)\n-6FE4DE Extra Length          0009 (9)\n-6FE4E0 Comment Length        0000 (0)\n-6FE4E2 Disk Start            0000 (0)\n-6FE4E4 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE4E6 Ext File Attributes   00000000 (0)\n-6FE4EA Local Header Offset   0067D033 (6803507)\n-6FE4EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE4EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE519 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE51B   Length              0005 (5)\n-6FE51D   Flags               01 (1) 'Modification'\n-6FE51E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE522 CENTRAL HEADER #1900  02014B50 (33639248)\n-6FE526 Created Zip Spec      14 (20) '2.0'\n-6FE527 Created OS            00 (0) 'MS-DOS'\n-6FE528 Extract Zip Spec      14 (20) '2.0'\n-6FE529 Extract OS            00 (0) 'MS-DOS'\n-6FE52A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE52C Compression Method    0000 (0) 'Stored'\n-6FE52E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE532 CRC                   E8E97BAC (3907615660)\n-6FE536 Compressed Size       00001FC1 (8129)\n-6FE53A Uncompressed Size     00001FC1 (8129)\n-6FE53E Filename Length       003E (62)\n-6FE540 Extra Length          0009 (9)\n-6FE542 Comment Length        0000 (0)\n-6FE544 Disk Start            0000 (0)\n-6FE546 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE548 Ext File Attributes   00000000 (0)\n-6FE54C Local Header Offset   0067D085 (6803589)\n-6FE550 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE550: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE58E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE590   Length              0005 (5)\n-6FE592   Flags               01 (1) 'Modification'\n-6FE593   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE597 CENTRAL HEADER #1901  02014B50 (33639248)\n-6FE59B Created Zip Spec      14 (20) '2.0'\n-6FE59C Created OS            00 (0) 'MS-DOS'\n-6FE59D Extract Zip Spec      14 (20) '2.0'\n-6FE59E Extract OS            00 (0) 'MS-DOS'\n-6FE59F General Purpose Flag  0000 (0)\n-6FE5A1 Compression Method    0000 (0) 'Stored'\n-6FE5A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE5A7 CRC                   00000000 (0)\n-6FE5AB Compressed Size       00000000 (0)\n-6FE5AF Uncompressed Size     00000000 (0)\n-6FE5B3 Filename Length       0024 (36)\n-6FE5B5 Extra Length          0009 (9)\n-6FE5B7 Comment Length        0000 (0)\n-6FE5B9 Disk Start            0000 (0)\n-6FE5BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE5BD Ext File Attributes   00000000 (0)\n-6FE5C1 Local Header Offset   0067F0BB (6811835)\n-6FE5C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6F7BF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7BF2   Length              0005 (5)\n+6F7BF4   Flags               01 (1) 'Modification'\n+6F7BF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7BF9 CENTRAL HEADER #732   02014B50 (33639248)\n+6F7BFD Created Zip Spec      14 (20) '2.0'\n+6F7BFE Created OS            00 (0) 'MS-DOS'\n+6F7BFF Extract Zip Spec      14 (20) '2.0'\n+6F7C00 Extract OS            00 (0) 'MS-DOS'\n+6F7C01 General Purpose Flag  0000 (0)\n+6F7C03 Compression Method    0000 (0) 'Stored'\n+6F7C05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7C09 CRC                   00000000 (0)\n+6F7C0D Compressed Size       00000000 (0)\n+6F7C11 Uncompressed Size     00000000 (0)\n+6F7C15 Filename Length       0023 (35)\n+6F7C17 Extra Length          0009 (9)\n+6F7C19 Comment Length        0000 (0)\n+6F7C1B Disk Start            0000 (0)\n+6F7C1D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7C1F Ext File Attributes   00000000 (0)\n+6F7C23 Local Header Offset   0021E4C7 (2221255)\n+6F7C27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7C27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7C4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7C4C   Length              0005 (5)\n+6F7C4E   Flags               01 (1) 'Modification'\n+6F7C4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7C53 CENTRAL HEADER #733   02014B50 (33639248)\n+6F7C57 Created Zip Spec      14 (20) '2.0'\n+6F7C58 Created OS            00 (0) 'MS-DOS'\n+6F7C59 Extract Zip Spec      14 (20) '2.0'\n+6F7C5A Extract OS            00 (0) 'MS-DOS'\n+6F7C5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7C5D Compression Method    0000 (0) 'Stored'\n+6F7C5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7C63 CRC                   8FD172CF (2412868303)\n+6F7C67 Compressed Size       00000D1B (3355)\n+6F7C6B Uncompressed Size     00000D1B (3355)\n+6F7C6F Filename Length       0031 (49)\n+6F7C71 Extra Length          0009 (9)\n+6F7C73 Comment Length        0000 (0)\n+6F7C75 Disk Start            0000 (0)\n+6F7C77 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7C79 Ext File Attributes   00000000 (0)\n+6F7C7D Local Header Offset   0021E511 (2221329)\n+6F7C81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7C81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7CB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7CB4   Length              0005 (5)\n+6F7CB6   Flags               01 (1) 'Modification'\n+6F7CB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7CBB CENTRAL HEADER #734   02014B50 (33639248)\n+6F7CBF Created Zip Spec      14 (20) '2.0'\n+6F7CC0 Created OS            00 (0) 'MS-DOS'\n+6F7CC1 Extract Zip Spec      14 (20) '2.0'\n+6F7CC2 Extract OS            00 (0) 'MS-DOS'\n+6F7CC3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7CC5 Compression Method    0000 (0) 'Stored'\n+6F7CC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7CCB CRC                   7ADBDBE0 (2061229024)\n+6F7CCF Compressed Size       000012FC (4860)\n+6F7CD3 Uncompressed Size     000012FC (4860)\n+6F7CD7 Filename Length       0038 (56)\n+6F7CD9 Extra Length          0009 (9)\n+6F7CDB Comment Length        0000 (0)\n+6F7CDD Disk Start            0000 (0)\n+6F7CDF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7CE1 Ext File Attributes   00000000 (0)\n+6F7CE5 Local Header Offset   0021F294 (2224788)\n+6F7CE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7CE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7D21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7D23   Length              0005 (5)\n+6F7D25   Flags               01 (1) 'Modification'\n+6F7D26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7D2A CENTRAL HEADER #735   02014B50 (33639248)\n+6F7D2E Created Zip Spec      14 (20) '2.0'\n+6F7D2F Created OS            00 (0) 'MS-DOS'\n+6F7D30 Extract Zip Spec      14 (20) '2.0'\n+6F7D31 Extract OS            00 (0) 'MS-DOS'\n+6F7D32 General Purpose Flag  0000 (0)\n+6F7D34 Compression Method    0000 (0) 'Stored'\n+6F7D36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7D3A CRC                   00000000 (0)\n+6F7D3E Compressed Size       00000000 (0)\n+6F7D42 Uncompressed Size     00000000 (0)\n+6F7D46 Filename Length       0025 (37)\n+6F7D48 Extra Length          0009 (9)\n+6F7D4A Comment Length        0000 (0)\n+6F7D4C Disk Start            0000 (0)\n+6F7D4E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7D50 Ext File Attributes   00000000 (0)\n+6F7D54 Local Header Offset   002205FF (2229759)\n+6F7D58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7D58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7D7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7D7F   Length              0005 (5)\n+6F7D81   Flags               01 (1) 'Modification'\n+6F7D82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7D86 CENTRAL HEADER #736   02014B50 (33639248)\n+6F7D8A Created Zip Spec      14 (20) '2.0'\n+6F7D8B Created OS            00 (0) 'MS-DOS'\n+6F7D8C Extract Zip Spec      14 (20) '2.0'\n+6F7D8D Extract OS            00 (0) 'MS-DOS'\n+6F7D8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7D90 Compression Method    0000 (0) 'Stored'\n+6F7D92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7D96 CRC                   0237005F (37159007)\n+6F7D9A Compressed Size       00000E61 (3681)\n+6F7D9E Uncompressed Size     00000E61 (3681)\n+6F7DA2 Filename Length       0035 (53)\n+6F7DA4 Extra Length          0009 (9)\n+6F7DA6 Comment Length        0000 (0)\n+6F7DA8 Disk Start            0000 (0)\n+6F7DAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7DAC Ext File Attributes   00000000 (0)\n+6F7DB0 Local Header Offset   0022064B (2229835)\n+6F7DB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7DB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7DE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7DEB   Length              0005 (5)\n+6F7DED   Flags               01 (1) 'Modification'\n+6F7DEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7DF2 CENTRAL HEADER #737   02014B50 (33639248)\n+6F7DF6 Created Zip Spec      14 (20) '2.0'\n+6F7DF7 Created OS            00 (0) 'MS-DOS'\n+6F7DF8 Extract Zip Spec      14 (20) '2.0'\n+6F7DF9 Extract OS            00 (0) 'MS-DOS'\n+6F7DFA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7DFC Compression Method    0000 (0) 'Stored'\n+6F7DFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7E02 CRC                   CE737695 (3463673493)\n+6F7E06 Compressed Size       000010CC (4300)\n+6F7E0A Uncompressed Size     000010CC (4300)\n+6F7E0E Filename Length       003C (60)\n+6F7E10 Extra Length          0009 (9)\n+6F7E12 Comment Length        0000 (0)\n+6F7E14 Disk Start            0000 (0)\n+6F7E16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7E18 Ext File Attributes   00000000 (0)\n+6F7E1C Local Header Offset   00221518 (2233624)\n+6F7E20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7E20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7E5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7E5E   Length              0005 (5)\n+6F7E60   Flags               01 (1) 'Modification'\n+6F7E61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7E65 CENTRAL HEADER #738   02014B50 (33639248)\n+6F7E69 Created Zip Spec      14 (20) '2.0'\n+6F7E6A Created OS            00 (0) 'MS-DOS'\n+6F7E6B Extract Zip Spec      14 (20) '2.0'\n+6F7E6C Extract OS            00 (0) 'MS-DOS'\n+6F7E6D General Purpose Flag  0000 (0)\n+6F7E6F Compression Method    0000 (0) 'Stored'\n+6F7E71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7E75 CRC                   00000000 (0)\n+6F7E79 Compressed Size       00000000 (0)\n+6F7E7D Uncompressed Size     00000000 (0)\n+6F7E81 Filename Length       0026 (38)\n+6F7E83 Extra Length          0009 (9)\n+6F7E85 Comment Length        0000 (0)\n+6F7E87 Disk Start            0000 (0)\n+6F7E89 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7E8B Ext File Attributes   00000000 (0)\n+6F7E8F Local Header Offset   00222657 (2238039)\n+6F7E93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7E93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7EB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7EBB   Length              0005 (5)\n+6F7EBD   Flags               01 (1) 'Modification'\n+6F7EBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7EC2 CENTRAL HEADER #739   02014B50 (33639248)\n+6F7EC6 Created Zip Spec      14 (20) '2.0'\n+6F7EC7 Created OS            00 (0) 'MS-DOS'\n+6F7EC8 Extract Zip Spec      14 (20) '2.0'\n+6F7EC9 Extract OS            00 (0) 'MS-DOS'\n+6F7ECA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7ECC Compression Method    0000 (0) 'Stored'\n+6F7ECE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7ED2 CRC                   719AAFB0 (1905962928)\n+6F7ED6 Compressed Size       00000C98 (3224)\n+6F7EDA Uncompressed Size     00000C98 (3224)\n+6F7EDE Filename Length       0037 (55)\n+6F7EE0 Extra Length          0009 (9)\n+6F7EE2 Comment Length        0000 (0)\n+6F7EE4 Disk Start            0000 (0)\n+6F7EE6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7EE8 Ext File Attributes   00000000 (0)\n+6F7EEC Local Header Offset   002226A4 (2238116)\n+6F7EF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7EF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7F27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7F29   Length              0005 (5)\n+6F7F2B   Flags               01 (1) 'Modification'\n+6F7F2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7F30 CENTRAL HEADER #740   02014B50 (33639248)\n+6F7F34 Created Zip Spec      14 (20) '2.0'\n+6F7F35 Created OS            00 (0) 'MS-DOS'\n+6F7F36 Extract Zip Spec      14 (20) '2.0'\n+6F7F37 Extract OS            00 (0) 'MS-DOS'\n+6F7F38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F7F3A Compression Method    0000 (0) 'Stored'\n+6F7F3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7F40 CRC                   B7D93D08 (3084467464)\n+6F7F44 Compressed Size       00000CED (3309)\n+6F7F48 Uncompressed Size     00000CED (3309)\n+6F7F4C Filename Length       003E (62)\n+6F7F4E Extra Length          0009 (9)\n+6F7F50 Comment Length        0000 (0)\n+6F7F52 Disk Start            0000 (0)\n+6F7F54 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7F56 Ext File Attributes   00000000 (0)\n+6F7F5A Local Header Offset   002233AA (2241450)\n+6F7F5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7F5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7F9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7F9E   Length              0005 (5)\n+6F7FA0   Flags               01 (1) 'Modification'\n+6F7FA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F7FA5 CENTRAL HEADER #741   02014B50 (33639248)\n+6F7FA9 Created Zip Spec      14 (20) '2.0'\n+6F7FAA Created OS            00 (0) 'MS-DOS'\n+6F7FAB Extract Zip Spec      14 (20) '2.0'\n+6F7FAC Extract OS            00 (0) 'MS-DOS'\n+6F7FAD General Purpose Flag  0000 (0)\n+6F7FAF Compression Method    0000 (0) 'Stored'\n+6F7FB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F7FB5 CRC                   00000000 (0)\n+6F7FB9 Compressed Size       00000000 (0)\n+6F7FBD Uncompressed Size     00000000 (0)\n+6F7FC1 Filename Length       0025 (37)\n+6F7FC3 Extra Length          0009 (9)\n+6F7FC5 Comment Length        0000 (0)\n+6F7FC7 Disk Start            0000 (0)\n+6F7FC9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F7FCB Ext File Attributes   00000000 (0)\n+6F7FCF Local Header Offset   0022410C (2244876)\n+6F7FD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F7FD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F7FF8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F7FFA   Length              0005 (5)\n+6F7FFC   Flags               01 (1) 'Modification'\n+6F7FFD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8001 CENTRAL HEADER #742   02014B50 (33639248)\n+6F8005 Created Zip Spec      14 (20) '2.0'\n+6F8006 Created OS            00 (0) 'MS-DOS'\n+6F8007 Extract Zip Spec      14 (20) '2.0'\n+6F8008 Extract OS            00 (0) 'MS-DOS'\n+6F8009 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F800B Compression Method    0000 (0) 'Stored'\n+6F800D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8011 CRC                   FD6565BB (4251280827)\n+6F8015 Compressed Size       00001876 (6262)\n+6F8019 Uncompressed Size     00001876 (6262)\n+6F801D Filename Length       0035 (53)\n+6F801F Extra Length          0009 (9)\n+6F8021 Comment Length        0000 (0)\n+6F8023 Disk Start            0000 (0)\n+6F8025 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8027 Ext File Attributes   00000000 (0)\n+6F802B Local Header Offset   00224158 (2244952)\n+6F802F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F802F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8064 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8066   Length              0005 (5)\n+6F8068   Flags               01 (1) 'Modification'\n+6F8069   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F806D CENTRAL HEADER #743   02014B50 (33639248)\n+6F8071 Created Zip Spec      14 (20) '2.0'\n+6F8072 Created OS            00 (0) 'MS-DOS'\n+6F8073 Extract Zip Spec      14 (20) '2.0'\n+6F8074 Extract OS            00 (0) 'MS-DOS'\n+6F8075 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8077 Compression Method    0000 (0) 'Stored'\n+6F8079 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F807D CRC                   2D853131 (763703601)\n+6F8081 Compressed Size       000006EF (1775)\n+6F8085 Uncompressed Size     000006EF (1775)\n+6F8089 Filename Length       003C (60)\n+6F808B Extra Length          0009 (9)\n+6F808D Comment Length        0000 (0)\n+6F808F Disk Start            0000 (0)\n+6F8091 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8093 Ext File Attributes   00000000 (0)\n+6F8097 Local Header Offset   00225A3A (2251322)\n+6F809B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F809B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F80D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F80D9   Length              0005 (5)\n+6F80DB   Flags               01 (1) 'Modification'\n+6F80DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F80E0 CENTRAL HEADER #744   02014B50 (33639248)\n+6F80E4 Created Zip Spec      14 (20) '2.0'\n+6F80E5 Created OS            00 (0) 'MS-DOS'\n+6F80E6 Extract Zip Spec      14 (20) '2.0'\n+6F80E7 Extract OS            00 (0) 'MS-DOS'\n+6F80E8 General Purpose Flag  0000 (0)\n+6F80EA Compression Method    0000 (0) 'Stored'\n+6F80EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F80F0 CRC                   00000000 (0)\n+6F80F4 Compressed Size       00000000 (0)\n+6F80F8 Uncompressed Size     00000000 (0)\n+6F80FC Filename Length       0027 (39)\n+6F80FE Extra Length          0009 (9)\n+6F8100 Comment Length        0000 (0)\n+6F8102 Disk Start            0000 (0)\n+6F8104 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8106 Ext File Attributes   00000000 (0)\n+6F810A Local Header Offset   0022619C (2253212)\n+6F810E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F810E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8135 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8137   Length              0005 (5)\n+6F8139   Flags               01 (1) 'Modification'\n+6F813A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F813E CENTRAL HEADER #745   02014B50 (33639248)\n+6F8142 Created Zip Spec      14 (20) '2.0'\n+6F8143 Created OS            00 (0) 'MS-DOS'\n+6F8144 Extract Zip Spec      14 (20) '2.0'\n+6F8145 Extract OS            00 (0) 'MS-DOS'\n+6F8146 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8148 Compression Method    0000 (0) 'Stored'\n+6F814A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F814E CRC                   01B8CE5D (28888669)\n+6F8152 Compressed Size       000013B5 (5045)\n+6F8156 Uncompressed Size     000013B5 (5045)\n+6F815A Filename Length       003A (58)\n+6F815C Extra Length          0009 (9)\n+6F815E Comment Length        0000 (0)\n+6F8160 Disk Start            0000 (0)\n+6F8162 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8164 Ext File Attributes   00000000 (0)\n+6F8168 Local Header Offset   002261EA (2253290)\n+6F816C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F816C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F81A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F81A8   Length              0005 (5)\n+6F81AA   Flags               01 (1) 'Modification'\n+6F81AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F81AF CENTRAL HEADER #746   02014B50 (33639248)\n+6F81B3 Created Zip Spec      14 (20) '2.0'\n+6F81B4 Created OS            00 (0) 'MS-DOS'\n+6F81B5 Extract Zip Spec      14 (20) '2.0'\n+6F81B6 Extract OS            00 (0) 'MS-DOS'\n+6F81B7 General Purpose Flag  0000 (0)\n+6F81B9 Compression Method    0000 (0) 'Stored'\n+6F81BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F81BF CRC                   00000000 (0)\n+6F81C3 Compressed Size       00000000 (0)\n+6F81C7 Uncompressed Size     00000000 (0)\n+6F81CB Filename Length       0022 (34)\n+6F81CD Extra Length          0009 (9)\n+6F81CF Comment Length        0000 (0)\n+6F81D1 Disk Start            0000 (0)\n+6F81D3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F81D5 Ext File Attributes   00000000 (0)\n+6F81D9 Local Header Offset   00227610 (2258448)\n+6F81DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F81DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F81FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8201   Length              0005 (5)\n+6F8203   Flags               01 (1) 'Modification'\n+6F8204   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8208 CENTRAL HEADER #747   02014B50 (33639248)\n+6F820C Created Zip Spec      14 (20) '2.0'\n+6F820D Created OS            00 (0) 'MS-DOS'\n+6F820E Extract Zip Spec      14 (20) '2.0'\n+6F820F Extract OS            00 (0) 'MS-DOS'\n+6F8210 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8212 Compression Method    0000 (0) 'Stored'\n+6F8214 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8218 CRC                   072B28E1 (120269025)\n+6F821C Compressed Size       00000423 (1059)\n+6F8220 Uncompressed Size     00000423 (1059)\n+6F8224 Filename Length       0030 (48)\n+6F8226 Extra Length          0009 (9)\n+6F8228 Comment Length        0000 (0)\n+6F822A Disk Start            0000 (0)\n+6F822C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F822E Ext File Attributes   00000000 (0)\n+6F8232 Local Header Offset   00227659 (2258521)\n+6F8236 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8236: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8266 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8268   Length              0005 (5)\n+6F826A   Flags               01 (1) 'Modification'\n+6F826B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F826F CENTRAL HEADER #748   02014B50 (33639248)\n+6F8273 Created Zip Spec      14 (20) '2.0'\n+6F8274 Created OS            00 (0) 'MS-DOS'\n+6F8275 Extract Zip Spec      14 (20) '2.0'\n+6F8276 Extract OS            00 (0) 'MS-DOS'\n+6F8277 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8279 Compression Method    0000 (0) 'Stored'\n+6F827B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F827F CRC                   2705935A (654676826)\n+6F8283 Compressed Size       000005C8 (1480)\n+6F8287 Uncompressed Size     000005C8 (1480)\n+6F828B Filename Length       0030 (48)\n+6F828D Extra Length          0009 (9)\n+6F828F Comment Length        0000 (0)\n+6F8291 Disk Start            0000 (0)\n+6F8293 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8295 Ext File Attributes   00000000 (0)\n+6F8299 Local Header Offset   00227AE3 (2259683)\n+6F829D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F829D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F82CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F82CF   Length              0005 (5)\n+6F82D1   Flags               01 (1) 'Modification'\n+6F82D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F82D6 CENTRAL HEADER #749   02014B50 (33639248)\n+6F82DA Created Zip Spec      14 (20) '2.0'\n+6F82DB Created OS            00 (0) 'MS-DOS'\n+6F82DC Extract Zip Spec      14 (20) '2.0'\n+6F82DD Extract OS            00 (0) 'MS-DOS'\n+6F82DE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F82E0 Compression Method    0000 (0) 'Stored'\n+6F82E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F82E6 CRC                   9F97C867 (2677524583)\n+6F82EA Compressed Size       000008EC (2284)\n+6F82EE Uncompressed Size     000008EC (2284)\n+6F82F2 Filename Length       0030 (48)\n+6F82F4 Extra Length          0009 (9)\n+6F82F6 Comment Length        0000 (0)\n+6F82F8 Disk Start            0000 (0)\n+6F82FA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F82FC Ext File Attributes   00000000 (0)\n+6F8300 Local Header Offset   00228112 (2261266)\n+6F8304 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8304: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8334 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8336   Length              0005 (5)\n+6F8338   Flags               01 (1) 'Modification'\n+6F8339   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F833D CENTRAL HEADER #750   02014B50 (33639248)\n+6F8341 Created Zip Spec      14 (20) '2.0'\n+6F8342 Created OS            00 (0) 'MS-DOS'\n+6F8343 Extract Zip Spec      14 (20) '2.0'\n+6F8344 Extract OS            00 (0) 'MS-DOS'\n+6F8345 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8347 Compression Method    0000 (0) 'Stored'\n+6F8349 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F834D CRC                   BCDD8DC5 (3168636357)\n+6F8351 Compressed Size       00000AB5 (2741)\n+6F8355 Uncompressed Size     00000AB5 (2741)\n+6F8359 Filename Length       0031 (49)\n+6F835B Extra Length          0009 (9)\n+6F835D Comment Length        0000 (0)\n+6F835F Disk Start            0000 (0)\n+6F8361 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8363 Ext File Attributes   00000000 (0)\n+6F8367 Local Header Offset   00228A65 (2263653)\n+6F836B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F836B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F839C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F839E   Length              0005 (5)\n+6F83A0   Flags               01 (1) 'Modification'\n+6F83A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F83A5 CENTRAL HEADER #751   02014B50 (33639248)\n+6F83A9 Created Zip Spec      14 (20) '2.0'\n+6F83AA Created OS            00 (0) 'MS-DOS'\n+6F83AB Extract Zip Spec      14 (20) '2.0'\n+6F83AC Extract OS            00 (0) 'MS-DOS'\n+6F83AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F83AF Compression Method    0000 (0) 'Stored'\n+6F83B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F83B5 CRC                   27A2E85E (664987742)\n+6F83B9 Compressed Size       00000DAC (3500)\n+6F83BD Uncompressed Size     00000DAC (3500)\n+6F83C1 Filename Length       0032 (50)\n+6F83C3 Extra Length          0009 (9)\n+6F83C5 Comment Length        0000 (0)\n+6F83C7 Disk Start            0000 (0)\n+6F83C9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F83CB Ext File Attributes   00000000 (0)\n+6F83CF Local Header Offset   00229582 (2266498)\n+6F83D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F83D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8405 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8407   Length              0005 (5)\n+6F8409   Flags               01 (1) 'Modification'\n+6F840A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F840E CENTRAL HEADER #752   02014B50 (33639248)\n+6F8412 Created Zip Spec      14 (20) '2.0'\n+6F8413 Created OS            00 (0) 'MS-DOS'\n+6F8414 Extract Zip Spec      14 (20) '2.0'\n+6F8415 Extract OS            00 (0) 'MS-DOS'\n+6F8416 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8418 Compression Method    0000 (0) 'Stored'\n+6F841A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F841E CRC                   58C605A3 (1489372579)\n+6F8422 Compressed Size       00000924 (2340)\n+6F8426 Uncompressed Size     00000924 (2340)\n+6F842A Filename Length       0033 (51)\n+6F842C Extra Length          0009 (9)\n+6F842E Comment Length        0000 (0)\n+6F8430 Disk Start            0000 (0)\n+6F8432 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8434 Ext File Attributes   00000000 (0)\n+6F8438 Local Header Offset   0022A397 (2270103)\n+6F843C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F843C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F846F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8471   Length              0005 (5)\n+6F8473   Flags               01 (1) 'Modification'\n+6F8474   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8478 CENTRAL HEADER #753   02014B50 (33639248)\n+6F847C Created Zip Spec      14 (20) '2.0'\n+6F847D Created OS            00 (0) 'MS-DOS'\n+6F847E Extract Zip Spec      14 (20) '2.0'\n+6F847F Extract OS            00 (0) 'MS-DOS'\n+6F8480 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8482 Compression Method    0000 (0) 'Stored'\n+6F8484 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8488 CRC                   FF4A6A33 (4283066931)\n+6F848C Compressed Size       00000A23 (2595)\n+6F8490 Uncompressed Size     00000A23 (2595)\n+6F8494 Filename Length       0034 (52)\n+6F8496 Extra Length          0009 (9)\n+6F8498 Comment Length        0000 (0)\n+6F849A Disk Start            0000 (0)\n+6F849C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F849E Ext File Attributes   00000000 (0)\n+6F84A2 Local Header Offset   0022AD25 (2272549)\n+6F84A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F84A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F84DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F84DC   Length              0005 (5)\n+6F84DE   Flags               01 (1) 'Modification'\n+6F84DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F84E3 CENTRAL HEADER #754   02014B50 (33639248)\n+6F84E7 Created Zip Spec      14 (20) '2.0'\n+6F84E8 Created OS            00 (0) 'MS-DOS'\n+6F84E9 Extract Zip Spec      14 (20) '2.0'\n+6F84EA Extract OS            00 (0) 'MS-DOS'\n+6F84EB General Purpose Flag  0000 (0)\n+6F84ED Compression Method    0000 (0) 'Stored'\n+6F84EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F84F3 CRC                   00000000 (0)\n+6F84F7 Compressed Size       00000000 (0)\n+6F84FB Uncompressed Size     00000000 (0)\n+6F84FF Filename Length       0027 (39)\n+6F8501 Extra Length          0009 (9)\n+6F8503 Comment Length        0000 (0)\n+6F8505 Disk Start            0000 (0)\n+6F8507 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8509 Ext File Attributes   00000000 (0)\n+6F850D Local Header Offset   0022B7B3 (2275251)\n+6F8511 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8511: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8538 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F853A   Length              0005 (5)\n+6F853C   Flags               01 (1) 'Modification'\n+6F853D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8541 CENTRAL HEADER #755   02014B50 (33639248)\n+6F8545 Created Zip Spec      14 (20) '2.0'\n+6F8546 Created OS            00 (0) 'MS-DOS'\n+6F8547 Extract Zip Spec      14 (20) '2.0'\n+6F8548 Extract OS            00 (0) 'MS-DOS'\n+6F8549 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F854B Compression Method    0000 (0) 'Stored'\n+6F854D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8551 CRC                   3E0609F4 (1040583156)\n+6F8555 Compressed Size       00000E94 (3732)\n+6F8559 Uncompressed Size     00000E94 (3732)\n+6F855D Filename Length       003B (59)\n+6F855F Extra Length          0009 (9)\n+6F8561 Comment Length        0000 (0)\n+6F8563 Disk Start            0000 (0)\n+6F8565 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8567 Ext File Attributes   00000000 (0)\n+6F856B Local Header Offset   0022B801 (2275329)\n+6F856F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F856F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F85AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F85AC   Length              0005 (5)\n+6F85AE   Flags               01 (1) 'Modification'\n+6F85AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F85B3 CENTRAL HEADER #756   02014B50 (33639248)\n+6F85B7 Created Zip Spec      14 (20) '2.0'\n+6F85B8 Created OS            00 (0) 'MS-DOS'\n+6F85B9 Extract Zip Spec      14 (20) '2.0'\n+6F85BA Extract OS            00 (0) 'MS-DOS'\n+6F85BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F85BD Compression Method    0000 (0) 'Stored'\n+6F85BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F85C3 CRC                   99ADAD26 (2578296102)\n+6F85C7 Compressed Size       00000CCF (3279)\n+6F85CB Uncompressed Size     00000CCF (3279)\n+6F85CF Filename Length       003C (60)\n+6F85D1 Extra Length          0009 (9)\n+6F85D3 Comment Length        0000 (0)\n+6F85D5 Disk Start            0000 (0)\n+6F85D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F85D9 Ext File Attributes   00000000 (0)\n+6F85DD Local Header Offset   0022C707 (2279175)\n+6F85E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F85E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F861D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F861F   Length              0005 (5)\n+6F8621   Flags               01 (1) 'Modification'\n+6F8622   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8626 CENTRAL HEADER #757   02014B50 (33639248)\n+6F862A Created Zip Spec      14 (20) '2.0'\n+6F862B Created OS            00 (0) 'MS-DOS'\n+6F862C Extract Zip Spec      14 (20) '2.0'\n+6F862D Extract OS            00 (0) 'MS-DOS'\n+6F862E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8630 Compression Method    0000 (0) 'Stored'\n+6F8632 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8636 CRC                   61EF883C (1643087932)\n+6F863A Compressed Size       00000719 (1817)\n+6F863E Uncompressed Size     00000719 (1817)\n+6F8642 Filename Length       003D (61)\n+6F8644 Extra Length          0009 (9)\n+6F8646 Comment Length        0000 (0)\n+6F8648 Disk Start            0000 (0)\n+6F864A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F864C Ext File Attributes   00000000 (0)\n+6F8650 Local Header Offset   0022D449 (2282569)\n+6F8654 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8654: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8691 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8693   Length              0005 (5)\n+6F8695   Flags               01 (1) 'Modification'\n+6F8696   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F869A CENTRAL HEADER #758   02014B50 (33639248)\n+6F869E Created Zip Spec      14 (20) '2.0'\n+6F869F Created OS            00 (0) 'MS-DOS'\n+6F86A0 Extract Zip Spec      14 (20) '2.0'\n+6F86A1 Extract OS            00 (0) 'MS-DOS'\n+6F86A2 General Purpose Flag  0000 (0)\n+6F86A4 Compression Method    0000 (0) 'Stored'\n+6F86A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F86AA CRC                   00000000 (0)\n+6F86AE Compressed Size       00000000 (0)\n+6F86B2 Uncompressed Size     00000000 (0)\n+6F86B6 Filename Length       002B (43)\n+6F86B8 Extra Length          0009 (9)\n+6F86BA Comment Length        0000 (0)\n+6F86BC Disk Start            0000 (0)\n+6F86BE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F86C0 Ext File Attributes   00000000 (0)\n+6F86C4 Local Header Offset   0022DBD6 (2284502)\n+6F86C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F86C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F86F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F86F5   Length              0005 (5)\n+6F86F7   Flags               01 (1) 'Modification'\n+6F86F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F86FC CENTRAL HEADER #759   02014B50 (33639248)\n+6F8700 Created Zip Spec      14 (20) '2.0'\n+6F8701 Created OS            00 (0) 'MS-DOS'\n+6F8702 Extract Zip Spec      14 (20) '2.0'\n+6F8703 Extract OS            00 (0) 'MS-DOS'\n+6F8704 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8706 Compression Method    0000 (0) 'Stored'\n+6F8708 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F870C CRC                   42503EDC (1112555228)\n+6F8710 Compressed Size       00000D9C (3484)\n+6F8714 Uncompressed Size     00000D9C (3484)\n+6F8718 Filename Length       0043 (67)\n+6F871A Extra Length          0009 (9)\n+6F871C Comment Length        0000 (0)\n+6F871E Disk Start            0000 (0)\n+6F8720 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8722 Ext File Attributes   00000000 (0)\n+6F8726 Local Header Offset   0022DC28 (2284584)\n+6F872A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F872A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F876D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F876F   Length              0005 (5)\n+6F8771   Flags               01 (1) 'Modification'\n+6F8772   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8776 CENTRAL HEADER #760   02014B50 (33639248)\n+6F877A Created Zip Spec      14 (20) '2.0'\n+6F877B Created OS            00 (0) 'MS-DOS'\n+6F877C Extract Zip Spec      14 (20) '2.0'\n+6F877D Extract OS            00 (0) 'MS-DOS'\n+6F877E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8780 Compression Method    0000 (0) 'Stored'\n+6F8782 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8786 CRC                   86605046 (2254458950)\n+6F878A Compressed Size       00000CE3 (3299)\n+6F878E Uncompressed Size     00000CE3 (3299)\n+6F8792 Filename Length       0044 (68)\n+6F8794 Extra Length          0009 (9)\n+6F8796 Comment Length        0000 (0)\n+6F8798 Disk Start            0000 (0)\n+6F879A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F879C Ext File Attributes   00000000 (0)\n+6F87A0 Local Header Offset   0022EA3E (2288190)\n+6F87A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F87A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F87E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F87EA   Length              0005 (5)\n+6F87EC   Flags               01 (1) 'Modification'\n+6F87ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F87F1 CENTRAL HEADER #761   02014B50 (33639248)\n+6F87F5 Created Zip Spec      14 (20) '2.0'\n+6F87F6 Created OS            00 (0) 'MS-DOS'\n+6F87F7 Extract Zip Spec      14 (20) '2.0'\n+6F87F8 Extract OS            00 (0) 'MS-DOS'\n+6F87F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F87FB Compression Method    0000 (0) 'Stored'\n+6F87FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8801 CRC                   C83ECB39 (3359558457)\n+6F8805 Compressed Size       000007BB (1979)\n+6F8809 Uncompressed Size     000007BB (1979)\n+6F880D Filename Length       0045 (69)\n+6F880F Extra Length          0009 (9)\n+6F8811 Comment Length        0000 (0)\n+6F8813 Disk Start            0000 (0)\n+6F8815 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8817 Ext File Attributes   00000000 (0)\n+6F881B Local Header Offset   0022F79C (2291612)\n+6F881F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F881F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8864 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8866   Length              0005 (5)\n+6F8868   Flags               01 (1) 'Modification'\n+6F8869   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F886D CENTRAL HEADER #762   02014B50 (33639248)\n+6F8871 Created Zip Spec      14 (20) '2.0'\n+6F8872 Created OS            00 (0) 'MS-DOS'\n+6F8873 Extract Zip Spec      14 (20) '2.0'\n+6F8874 Extract OS            00 (0) 'MS-DOS'\n+6F8875 General Purpose Flag  0000 (0)\n+6F8877 Compression Method    0000 (0) 'Stored'\n+6F8879 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F887D CRC                   00000000 (0)\n+6F8881 Compressed Size       00000000 (0)\n+6F8885 Uncompressed Size     00000000 (0)\n+6F8889 Filename Length       0026 (38)\n+6F888B Extra Length          0009 (9)\n+6F888D Comment Length        0000 (0)\n+6F888F Disk Start            0000 (0)\n+6F8891 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8893 Ext File Attributes   00000000 (0)\n+6F8897 Local Header Offset   0022FFD3 (2293715)\n+6F889B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F889B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F88C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F88C3   Length              0005 (5)\n+6F88C5   Flags               01 (1) 'Modification'\n+6F88C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F88CA CENTRAL HEADER #763   02014B50 (33639248)\n+6F88CE Created Zip Spec      14 (20) '2.0'\n+6F88CF Created OS            00 (0) 'MS-DOS'\n+6F88D0 Extract Zip Spec      14 (20) '2.0'\n+6F88D1 Extract OS            00 (0) 'MS-DOS'\n+6F88D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F88D4 Compression Method    0000 (0) 'Stored'\n+6F88D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F88DA CRC                   4E53FCE8 (1314127080)\n+6F88DE Compressed Size       00000756 (1878)\n+6F88E2 Uncompressed Size     00000756 (1878)\n+6F88E6 Filename Length       0035 (53)\n+6F88E8 Extra Length          0009 (9)\n+6F88EA Comment Length        0000 (0)\n+6F88EC Disk Start            0000 (0)\n+6F88EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F88F0 Ext File Attributes   00000000 (0)\n+6F88F4 Local Header Offset   00230020 (2293792)\n+6F88F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F88F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F892D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F892F   Length              0005 (5)\n+6F8931   Flags               01 (1) 'Modification'\n+6F8932   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8936 CENTRAL HEADER #764   02014B50 (33639248)\n+6F893A Created Zip Spec      14 (20) '2.0'\n+6F893B Created OS            00 (0) 'MS-DOS'\n+6F893C Extract Zip Spec      14 (20) '2.0'\n+6F893D Extract OS            00 (0) 'MS-DOS'\n+6F893E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8940 Compression Method    0000 (0) 'Stored'\n+6F8942 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8946 CRC                   58015D22 (1476484386)\n+6F894A Compressed Size       00000CF3 (3315)\n+6F894E Uncompressed Size     00000CF3 (3315)\n+6F8952 Filename Length       0039 (57)\n+6F8954 Extra Length          0009 (9)\n+6F8956 Comment Length        0000 (0)\n+6F8958 Disk Start            0000 (0)\n+6F895A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F895C Ext File Attributes   00000000 (0)\n+6F8960 Local Header Offset   002307E2 (2295778)\n+6F8964 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8964: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F899D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F899F   Length              0005 (5)\n+6F89A1   Flags               01 (1) 'Modification'\n+6F89A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F89A6 CENTRAL HEADER #765   02014B50 (33639248)\n+6F89AA Created Zip Spec      14 (20) '2.0'\n+6F89AB Created OS            00 (0) 'MS-DOS'\n+6F89AC Extract Zip Spec      14 (20) '2.0'\n+6F89AD Extract OS            00 (0) 'MS-DOS'\n+6F89AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F89B0 Compression Method    0000 (0) 'Stored'\n+6F89B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F89B6 CRC                   5529CB85 (1428802437)\n+6F89BA Compressed Size       00000B6A (2922)\n+6F89BE Uncompressed Size     00000B6A (2922)\n+6F89C2 Filename Length       003A (58)\n+6F89C4 Extra Length          0009 (9)\n+6F89C6 Comment Length        0000 (0)\n+6F89C8 Disk Start            0000 (0)\n+6F89CA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F89CC Ext File Attributes   00000000 (0)\n+6F89D0 Local Header Offset   00231545 (2299205)\n+6F89D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F89D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8A0E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8A10   Length              0005 (5)\n+6F8A12   Flags               01 (1) 'Modification'\n+6F8A13   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8A17 CENTRAL HEADER #766   02014B50 (33639248)\n+6F8A1B Created Zip Spec      14 (20) '2.0'\n+6F8A1C Created OS            00 (0) 'MS-DOS'\n+6F8A1D Extract Zip Spec      14 (20) '2.0'\n+6F8A1E Extract OS            00 (0) 'MS-DOS'\n+6F8A1F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8A21 Compression Method    0000 (0) 'Stored'\n+6F8A23 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8A27 CRC                   78F3EAFE (2029251326)\n+6F8A2B Compressed Size       0000078D (1933)\n+6F8A2F Uncompressed Size     0000078D (1933)\n+6F8A33 Filename Length       003B (59)\n+6F8A35 Extra Length          0009 (9)\n+6F8A37 Comment Length        0000 (0)\n+6F8A39 Disk Start            0000 (0)\n+6F8A3B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8A3D Ext File Attributes   00000000 (0)\n+6F8A41 Local Header Offset   00232120 (2302240)\n+6F8A45 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8A45: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8A80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8A82   Length              0005 (5)\n+6F8A84   Flags               01 (1) 'Modification'\n+6F8A85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8A89 CENTRAL HEADER #767   02014B50 (33639248)\n+6F8A8D Created Zip Spec      14 (20) '2.0'\n+6F8A8E Created OS            00 (0) 'MS-DOS'\n+6F8A8F Extract Zip Spec      14 (20) '2.0'\n+6F8A90 Extract OS            00 (0) 'MS-DOS'\n+6F8A91 General Purpose Flag  0000 (0)\n+6F8A93 Compression Method    0000 (0) 'Stored'\n+6F8A95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8A99 CRC                   00000000 (0)\n+6F8A9D Compressed Size       00000000 (0)\n+6F8AA1 Uncompressed Size     00000000 (0)\n+6F8AA5 Filename Length       0027 (39)\n+6F8AA7 Extra Length          0009 (9)\n+6F8AA9 Comment Length        0000 (0)\n+6F8AAB Disk Start            0000 (0)\n+6F8AAD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8AAF Ext File Attributes   00000000 (0)\n+6F8AB3 Local Header Offset   0023291F (2304287)\n+6F8AB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8AB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8ADE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8AE0   Length              0005 (5)\n+6F8AE2   Flags               01 (1) 'Modification'\n+6F8AE3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8AE7 CENTRAL HEADER #768   02014B50 (33639248)\n+6F8AEB Created Zip Spec      14 (20) '2.0'\n+6F8AEC Created OS            00 (0) 'MS-DOS'\n+6F8AED Extract Zip Spec      14 (20) '2.0'\n+6F8AEE Extract OS            00 (0) 'MS-DOS'\n+6F8AEF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8AF1 Compression Method    0000 (0) 'Stored'\n+6F8AF3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8AF7 CRC                   7563AE4D (1969466957)\n+6F8AFB Compressed Size       00000DD2 (3538)\n+6F8AFF Uncompressed Size     00000DD2 (3538)\n+6F8B03 Filename Length       003F (63)\n+6F8B05 Extra Length          0009 (9)\n+6F8B07 Comment Length        0000 (0)\n+6F8B09 Disk Start            0000 (0)\n+6F8B0B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8B0D Ext File Attributes   00000000 (0)\n+6F8B11 Local Header Offset   0023296D (2304365)\n+6F8B15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8B15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8B54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8B56   Length              0005 (5)\n+6F8B58   Flags               01 (1) 'Modification'\n+6F8B59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8B5D CENTRAL HEADER #769   02014B50 (33639248)\n+6F8B61 Created Zip Spec      14 (20) '2.0'\n+6F8B62 Created OS            00 (0) 'MS-DOS'\n+6F8B63 Extract Zip Spec      14 (20) '2.0'\n+6F8B64 Extract OS            00 (0) 'MS-DOS'\n+6F8B65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8B67 Compression Method    0000 (0) 'Stored'\n+6F8B69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8B6D CRC                   470A630B (1191863051)\n+6F8B71 Compressed Size       00000BA4 (2980)\n+6F8B75 Uncompressed Size     00000BA4 (2980)\n+6F8B79 Filename Length       0040 (64)\n+6F8B7B Extra Length          0009 (9)\n+6F8B7D Comment Length        0000 (0)\n+6F8B7F Disk Start            0000 (0)\n+6F8B81 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8B83 Ext File Attributes   00000000 (0)\n+6F8B87 Local Header Offset   002337B5 (2308021)\n+6F8B8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8B8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8BCB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8BCD   Length              0005 (5)\n+6F8BCF   Flags               01 (1) 'Modification'\n+6F8BD0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8BD4 CENTRAL HEADER #770   02014B50 (33639248)\n+6F8BD8 Created Zip Spec      14 (20) '2.0'\n+6F8BD9 Created OS            00 (0) 'MS-DOS'\n+6F8BDA Extract Zip Spec      14 (20) '2.0'\n+6F8BDB Extract OS            00 (0) 'MS-DOS'\n+6F8BDC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8BDE Compression Method    0000 (0) 'Stored'\n+6F8BE0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8BE4 CRC                   5EE3566D (1591957101)\n+6F8BE8 Compressed Size       00000721 (1825)\n+6F8BEC Uncompressed Size     00000721 (1825)\n+6F8BF0 Filename Length       003D (61)\n+6F8BF2 Extra Length          0009 (9)\n+6F8BF4 Comment Length        0000 (0)\n+6F8BF6 Disk Start            0000 (0)\n+6F8BF8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8BFA Ext File Attributes   00000000 (0)\n+6F8BFE Local Header Offset   002343D0 (2311120)\n+6F8C02 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8C02: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8C3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8C41   Length              0005 (5)\n+6F8C43   Flags               01 (1) 'Modification'\n+6F8C44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8C48 CENTRAL HEADER #771   02014B50 (33639248)\n+6F8C4C Created Zip Spec      14 (20) '2.0'\n+6F8C4D Created OS            00 (0) 'MS-DOS'\n+6F8C4E Extract Zip Spec      14 (20) '2.0'\n+6F8C4F Extract OS            00 (0) 'MS-DOS'\n+6F8C50 General Purpose Flag  0000 (0)\n+6F8C52 Compression Method    0000 (0) 'Stored'\n+6F8C54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8C58 CRC                   00000000 (0)\n+6F8C5C Compressed Size       00000000 (0)\n+6F8C60 Uncompressed Size     00000000 (0)\n+6F8C64 Filename Length       002B (43)\n+6F8C66 Extra Length          0009 (9)\n+6F8C68 Comment Length        0000 (0)\n+6F8C6A Disk Start            0000 (0)\n+6F8C6C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8C6E Ext File Attributes   00000000 (0)\n+6F8C72 Local Header Offset   00234B65 (2313061)\n+6F8C76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8C76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8CA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8CA3   Length              0005 (5)\n+6F8CA5   Flags               01 (1) 'Modification'\n+6F8CA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8CAA CENTRAL HEADER #772   02014B50 (33639248)\n+6F8CAE Created Zip Spec      14 (20) '2.0'\n+6F8CAF Created OS            00 (0) 'MS-DOS'\n+6F8CB0 Extract Zip Spec      14 (20) '2.0'\n+6F8CB1 Extract OS            00 (0) 'MS-DOS'\n+6F8CB2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8CB4 Compression Method    0000 (0) 'Stored'\n+6F8CB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8CBA CRC                   D893DDBD (3633569213)\n+6F8CBE Compressed Size       00000DBC (3516)\n+6F8CC2 Uncompressed Size     00000DBC (3516)\n+6F8CC6 Filename Length       0043 (67)\n+6F8CC8 Extra Length          0009 (9)\n+6F8CCA Comment Length        0000 (0)\n+6F8CCC Disk Start            0000 (0)\n+6F8CCE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8CD0 Ext File Attributes   00000000 (0)\n+6F8CD4 Local Header Offset   00234BB7 (2313143)\n+6F8CD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8CD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8D1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8D1D   Length              0005 (5)\n+6F8D1F   Flags               01 (1) 'Modification'\n+6F8D20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8D24 CENTRAL HEADER #773   02014B50 (33639248)\n+6F8D28 Created Zip Spec      14 (20) '2.0'\n+6F8D29 Created OS            00 (0) 'MS-DOS'\n+6F8D2A Extract Zip Spec      14 (20) '2.0'\n+6F8D2B Extract OS            00 (0) 'MS-DOS'\n+6F8D2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8D2E Compression Method    0000 (0) 'Stored'\n+6F8D30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8D34 CRC                   C397AAA7 (3281496743)\n+6F8D38 Compressed Size       00000D3F (3391)\n+6F8D3C Uncompressed Size     00000D3F (3391)\n+6F8D40 Filename Length       0044 (68)\n+6F8D42 Extra Length          0009 (9)\n+6F8D44 Comment Length        0000 (0)\n+6F8D46 Disk Start            0000 (0)\n+6F8D48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8D4A Ext File Attributes   00000000 (0)\n+6F8D4E Local Header Offset   002359ED (2316781)\n+6F8D52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8D52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8D96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8D98   Length              0005 (5)\n+6F8D9A   Flags               01 (1) 'Modification'\n+6F8D9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8D9F CENTRAL HEADER #774   02014B50 (33639248)\n+6F8DA3 Created Zip Spec      14 (20) '2.0'\n+6F8DA4 Created OS            00 (0) 'MS-DOS'\n+6F8DA5 Extract Zip Spec      14 (20) '2.0'\n+6F8DA6 Extract OS            00 (0) 'MS-DOS'\n+6F8DA7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8DA9 Compression Method    0000 (0) 'Stored'\n+6F8DAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8DAF CRC                   33E433F6 (870593526)\n+6F8DB3 Compressed Size       000007F6 (2038)\n+6F8DB7 Uncompressed Size     000007F6 (2038)\n+6F8DBB Filename Length       0045 (69)\n+6F8DBD Extra Length          0009 (9)\n+6F8DBF Comment Length        0000 (0)\n+6F8DC1 Disk Start            0000 (0)\n+6F8DC3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8DC5 Ext File Attributes   00000000 (0)\n+6F8DC9 Local Header Offset   002367A7 (2320295)\n+6F8DCD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8DCD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8E12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8E14   Length              0005 (5)\n+6F8E16   Flags               01 (1) 'Modification'\n+6F8E17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8E1B CENTRAL HEADER #775   02014B50 (33639248)\n+6F8E1F Created Zip Spec      14 (20) '2.0'\n+6F8E20 Created OS            00 (0) 'MS-DOS'\n+6F8E21 Extract Zip Spec      14 (20) '2.0'\n+6F8E22 Extract OS            00 (0) 'MS-DOS'\n+6F8E23 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8E25 Compression Method    0000 (0) 'Stored'\n+6F8E27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8E2B CRC                   ED1EB0B7 (3978211511)\n+6F8E2F Compressed Size       000004A5 (1189)\n+6F8E33 Uncompressed Size     000004A5 (1189)\n+6F8E37 Filename Length       0049 (73)\n+6F8E39 Extra Length          0009 (9)\n+6F8E3B Comment Length        0000 (0)\n+6F8E3D Disk Start            0000 (0)\n+6F8E3F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8E41 Ext File Attributes   00000000 (0)\n+6F8E45 Local Header Offset   00237019 (2322457)\n+6F8E49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8E49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8E92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8E94   Length              0005 (5)\n+6F8E96   Flags               01 (1) 'Modification'\n+6F8E97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8E9B CENTRAL HEADER #776   02014B50 (33639248)\n+6F8E9F Created Zip Spec      14 (20) '2.0'\n+6F8EA0 Created OS            00 (0) 'MS-DOS'\n+6F8EA1 Extract Zip Spec      14 (20) '2.0'\n+6F8EA2 Extract OS            00 (0) 'MS-DOS'\n+6F8EA3 General Purpose Flag  0000 (0)\n+6F8EA5 Compression Method    0000 (0) 'Stored'\n+6F8EA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8EAB CRC                   00000000 (0)\n+6F8EAF Compressed Size       00000000 (0)\n+6F8EB3 Uncompressed Size     00000000 (0)\n+6F8EB7 Filename Length       0031 (49)\n+6F8EB9 Extra Length          0009 (9)\n+6F8EBB Comment Length        0000 (0)\n+6F8EBD Disk Start            0000 (0)\n+6F8EBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8EC1 Ext File Attributes   00000000 (0)\n+6F8EC5 Local Header Offset   0023753E (2323774)\n+6F8EC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8EC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8EFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8EFC   Length              0005 (5)\n+6F8EFE   Flags               01 (1) 'Modification'\n+6F8EFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8F03 CENTRAL HEADER #777   02014B50 (33639248)\n+6F8F07 Created Zip Spec      14 (20) '2.0'\n+6F8F08 Created OS            00 (0) 'MS-DOS'\n+6F8F09 Extract Zip Spec      14 (20) '2.0'\n+6F8F0A Extract OS            00 (0) 'MS-DOS'\n+6F8F0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8F0D Compression Method    0000 (0) 'Stored'\n+6F8F0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8F13 CRC                   589CDBF7 (1486674935)\n+6F8F17 Compressed Size       000005CC (1484)\n+6F8F1B Uncompressed Size     000005CC (1484)\n+6F8F1F Filename Length       0058 (88)\n+6F8F21 Extra Length          0009 (9)\n+6F8F23 Comment Length        0000 (0)\n+6F8F25 Disk Start            0000 (0)\n+6F8F27 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8F29 Ext File Attributes   00000000 (0)\n+6F8F2D Local Header Offset   00237596 (2323862)\n+6F8F31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8F31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F8F89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F8F8B   Length              0005 (5)\n+6F8F8D   Flags               01 (1) 'Modification'\n+6F8F8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F8F92 CENTRAL HEADER #778   02014B50 (33639248)\n+6F8F96 Created Zip Spec      14 (20) '2.0'\n+6F8F97 Created OS            00 (0) 'MS-DOS'\n+6F8F98 Extract Zip Spec      14 (20) '2.0'\n+6F8F99 Extract OS            00 (0) 'MS-DOS'\n+6F8F9A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F8F9C Compression Method    0000 (0) 'Stored'\n+6F8F9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F8FA2 CRC                   35094442 (889799746)\n+6F8FA6 Compressed Size       000004E2 (1250)\n+6F8FAA Uncompressed Size     000004E2 (1250)\n+6F8FAE Filename Length       0057 (87)\n+6F8FB0 Extra Length          0009 (9)\n+6F8FB2 Comment Length        0000 (0)\n+6F8FB4 Disk Start            0000 (0)\n+6F8FB6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F8FB8 Ext File Attributes   00000000 (0)\n+6F8FBC Local Header Offset   00237BF1 (2325489)\n+6F8FC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F8FC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9017 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9019   Length              0005 (5)\n+6F901B   Flags               01 (1) 'Modification'\n+6F901C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9020 CENTRAL HEADER #779   02014B50 (33639248)\n+6F9024 Created Zip Spec      14 (20) '2.0'\n+6F9025 Created OS            00 (0) 'MS-DOS'\n+6F9026 Extract Zip Spec      14 (20) '2.0'\n+6F9027 Extract OS            00 (0) 'MS-DOS'\n+6F9028 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F902A Compression Method    0000 (0) 'Stored'\n+6F902C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9030 CRC                   F8518504 (4166092036)\n+6F9034 Compressed Size       00000754 (1876)\n+6F9038 Uncompressed Size     00000754 (1876)\n+6F903C Filename Length       0050 (80)\n+6F903E Extra Length          0009 (9)\n+6F9040 Comment Length        0000 (0)\n+6F9042 Disk Start            0000 (0)\n+6F9044 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9046 Ext File Attributes   00000000 (0)\n+6F904A Local Header Offset   00238161 (2326881)\n+6F904E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F904E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F909E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F90A0   Length              0005 (5)\n+6F90A2   Flags               01 (1) 'Modification'\n+6F90A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F90A7 CENTRAL HEADER #780   02014B50 (33639248)\n+6F90AB Created Zip Spec      14 (20) '2.0'\n+6F90AC Created OS            00 (0) 'MS-DOS'\n+6F90AD Extract Zip Spec      14 (20) '2.0'\n+6F90AE Extract OS            00 (0) 'MS-DOS'\n+6F90AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F90B1 Compression Method    0000 (0) 'Stored'\n+6F90B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F90B7 CRC                   C6552311 (3327468305)\n+6F90BB Compressed Size       000008C4 (2244)\n+6F90BF Uncompressed Size     000008C4 (2244)\n+6F90C3 Filename Length       0059 (89)\n+6F90C5 Extra Length          0009 (9)\n+6F90C7 Comment Length        0000 (0)\n+6F90C9 Disk Start            0000 (0)\n+6F90CB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F90CD Ext File Attributes   00000000 (0)\n+6F90D1 Local Header Offset   0023893C (2328892)\n+6F90D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F90D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F912E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9130   Length              0005 (5)\n+6F9132   Flags               01 (1) 'Modification'\n+6F9133   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9137 CENTRAL HEADER #781   02014B50 (33639248)\n+6F913B Created Zip Spec      14 (20) '2.0'\n+6F913C Created OS            00 (0) 'MS-DOS'\n+6F913D Extract Zip Spec      14 (20) '2.0'\n+6F913E Extract OS            00 (0) 'MS-DOS'\n+6F913F General Purpose Flag  0000 (0)\n+6F9141 Compression Method    0000 (0) 'Stored'\n+6F9143 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9147 CRC                   00000000 (0)\n+6F914B Compressed Size       00000000 (0)\n+6F914F Uncompressed Size     00000000 (0)\n+6F9153 Filename Length       0027 (39)\n+6F9155 Extra Length          0009 (9)\n+6F9157 Comment Length        0000 (0)\n+6F9159 Disk Start            0000 (0)\n+6F915B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F915D Ext File Attributes   00000000 (0)\n+6F9161 Local Header Offset   00239290 (2331280)\n+6F9165 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9165: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F918C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F918E   Length              0005 (5)\n+6F9190   Flags               01 (1) 'Modification'\n+6F9191   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9195 CENTRAL HEADER #782   02014B50 (33639248)\n+6F9199 Created Zip Spec      14 (20) '2.0'\n+6F919A Created OS            00 (0) 'MS-DOS'\n+6F919B Extract Zip Spec      14 (20) '2.0'\n+6F919C Extract OS            00 (0) 'MS-DOS'\n+6F919D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F919F Compression Method    0000 (0) 'Stored'\n+6F91A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F91A5 CRC                   C9462C54 (3376819284)\n+6F91A9 Compressed Size       000007DD (2013)\n+6F91AD Uncompressed Size     000007DD (2013)\n+6F91B1 Filename Length       0046 (70)\n+6F91B3 Extra Length          0009 (9)\n+6F91B5 Comment Length        0000 (0)\n+6F91B7 Disk Start            0000 (0)\n+6F91B9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F91BB Ext File Attributes   00000000 (0)\n+6F91BF Local Header Offset   002392DE (2331358)\n+6F91C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F91C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9209 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F920B   Length              0005 (5)\n+6F920D   Flags               01 (1) 'Modification'\n+6F920E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9212 CENTRAL HEADER #783   02014B50 (33639248)\n+6F9216 Created Zip Spec      14 (20) '2.0'\n+6F9217 Created OS            00 (0) 'MS-DOS'\n+6F9218 Extract Zip Spec      14 (20) '2.0'\n+6F9219 Extract OS            00 (0) 'MS-DOS'\n+6F921A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F921C Compression Method    0000 (0) 'Stored'\n+6F921E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9222 CRC                   4C5ED1C3 (1281282499)\n+6F9226 Compressed Size       00000940 (2368)\n+6F922A Uncompressed Size     00000940 (2368)\n+6F922E Filename Length       0046 (70)\n+6F9230 Extra Length          0009 (9)\n+6F9232 Comment Length        0000 (0)\n+6F9234 Disk Start            0000 (0)\n+6F9236 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9238 Ext File Attributes   00000000 (0)\n+6F923C Local Header Offset   00239B38 (2333496)\n+6F9240 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9240: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9286 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9288   Length              0005 (5)\n+6F928A   Flags               01 (1) 'Modification'\n+6F928B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F928F CENTRAL HEADER #784   02014B50 (33639248)\n+6F9293 Created Zip Spec      14 (20) '2.0'\n+6F9294 Created OS            00 (0) 'MS-DOS'\n+6F9295 Extract Zip Spec      14 (20) '2.0'\n+6F9296 Extract OS            00 (0) 'MS-DOS'\n+6F9297 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9299 Compression Method    0000 (0) 'Stored'\n+6F929B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F929F CRC                   1A06EC84 (436661380)\n+6F92A3 Compressed Size       00000647 (1607)\n+6F92A7 Uncompressed Size     00000647 (1607)\n+6F92AB Filename Length       0047 (71)\n+6F92AD Extra Length          0009 (9)\n+6F92AF Comment Length        0000 (0)\n+6F92B1 Disk Start            0000 (0)\n+6F92B3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F92B5 Ext File Attributes   00000000 (0)\n+6F92B9 Local Header Offset   0023A4F5 (2335989)\n+6F92BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F92BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9304 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9306   Length              0005 (5)\n+6F9308   Flags               01 (1) 'Modification'\n+6F9309   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F930D CENTRAL HEADER #785   02014B50 (33639248)\n+6F9311 Created Zip Spec      14 (20) '2.0'\n+6F9312 Created OS            00 (0) 'MS-DOS'\n+6F9313 Extract Zip Spec      14 (20) '2.0'\n+6F9314 Extract OS            00 (0) 'MS-DOS'\n+6F9315 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9317 Compression Method    0000 (0) 'Stored'\n+6F9319 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F931D CRC                   EBC07089 (3955257481)\n+6F9321 Compressed Size       00000B84 (2948)\n+6F9325 Uncompressed Size     00000B84 (2948)\n+6F9329 Filename Length       003B (59)\n+6F932B Extra Length          0009 (9)\n+6F932D Comment Length        0000 (0)\n+6F932F Disk Start            0000 (0)\n+6F9331 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9333 Ext File Attributes   00000000 (0)\n+6F9337 Local Header Offset   0023ABBA (2337722)\n+6F933B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F933B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9376 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9378   Length              0005 (5)\n+6F937A   Flags               01 (1) 'Modification'\n+6F937B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F937F CENTRAL HEADER #786   02014B50 (33639248)\n+6F9383 Created Zip Spec      14 (20) '2.0'\n+6F9384 Created OS            00 (0) 'MS-DOS'\n+6F9385 Extract Zip Spec      14 (20) '2.0'\n+6F9386 Extract OS            00 (0) 'MS-DOS'\n+6F9387 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9389 Compression Method    0000 (0) 'Stored'\n+6F938B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F938F CRC                   BE6D297E (3194825086)\n+6F9393 Compressed Size       00000881 (2177)\n+6F9397 Uncompressed Size     00000881 (2177)\n+6F939B Filename Length       003C (60)\n+6F939D Extra Length          0009 (9)\n+6F939F Comment Length        0000 (0)\n+6F93A1 Disk Start            0000 (0)\n+6F93A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F93A5 Ext File Attributes   00000000 (0)\n+6F93A9 Local Header Offset   0023B7B0 (2340784)\n+6F93AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F93AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F93E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F93EB   Length              0005 (5)\n+6F93ED   Flags               01 (1) 'Modification'\n+6F93EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F93F2 CENTRAL HEADER #787   02014B50 (33639248)\n+6F93F6 Created Zip Spec      14 (20) '2.0'\n+6F93F7 Created OS            00 (0) 'MS-DOS'\n+6F93F8 Extract Zip Spec      14 (20) '2.0'\n+6F93F9 Extract OS            00 (0) 'MS-DOS'\n+6F93FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F93FC Compression Method    0000 (0) 'Stored'\n+6F93FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9402 CRC                   9ED05045 (2664452165)\n+6F9406 Compressed Size       00000798 (1944)\n+6F940A Uncompressed Size     00000798 (1944)\n+6F940E Filename Length       003D (61)\n+6F9410 Extra Length          0009 (9)\n+6F9412 Comment Length        0000 (0)\n+6F9414 Disk Start            0000 (0)\n+6F9416 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9418 Ext File Attributes   00000000 (0)\n+6F941C Local Header Offset   0023C0A4 (2343076)\n+6F9420 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9420: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F945D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F945F   Length              0005 (5)\n+6F9461   Flags               01 (1) 'Modification'\n+6F9462   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9466 CENTRAL HEADER #788   02014B50 (33639248)\n+6F946A Created Zip Spec      14 (20) '2.0'\n+6F946B Created OS            00 (0) 'MS-DOS'\n+6F946C Extract Zip Spec      14 (20) '2.0'\n+6F946D Extract OS            00 (0) 'MS-DOS'\n+6F946E General Purpose Flag  0000 (0)\n+6F9470 Compression Method    0000 (0) 'Stored'\n+6F9472 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9476 CRC                   00000000 (0)\n+6F947A Compressed Size       00000000 (0)\n+6F947E Uncompressed Size     00000000 (0)\n+6F9482 Filename Length       0027 (39)\n+6F9484 Extra Length          0009 (9)\n+6F9486 Comment Length        0000 (0)\n+6F9488 Disk Start            0000 (0)\n+6F948A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F948C Ext File Attributes   00000000 (0)\n+6F9490 Local Header Offset   0023C8B0 (2345136)\n+6F9494 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9494: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F94BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F94BD   Length              0005 (5)\n+6F94BF   Flags               01 (1) 'Modification'\n+6F94C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F94C4 CENTRAL HEADER #789   02014B50 (33639248)\n+6F94C8 Created Zip Spec      14 (20) '2.0'\n+6F94C9 Created OS            00 (0) 'MS-DOS'\n+6F94CA Extract Zip Spec      14 (20) '2.0'\n+6F94CB Extract OS            00 (0) 'MS-DOS'\n+6F94CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F94CE Compression Method    0000 (0) 'Stored'\n+6F94D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F94D4 CRC                   D8DFD1C9 (3638546889)\n+6F94D8 Compressed Size       00000A85 (2693)\n+6F94DC Uncompressed Size     00000A85 (2693)\n+6F94E0 Filename Length       003A (58)\n+6F94E2 Extra Length          0009 (9)\n+6F94E4 Comment Length        0000 (0)\n+6F94E6 Disk Start            0000 (0)\n+6F94E8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F94EA Ext File Attributes   00000000 (0)\n+6F94EE Local Header Offset   0023C8FE (2345214)\n+6F94F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F94F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F952C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F952E   Length              0005 (5)\n+6F9530   Flags               01 (1) 'Modification'\n+6F9531   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9535 CENTRAL HEADER #790   02014B50 (33639248)\n+6F9539 Created Zip Spec      14 (20) '2.0'\n+6F953A Created OS            00 (0) 'MS-DOS'\n+6F953B Extract Zip Spec      14 (20) '2.0'\n+6F953C Extract OS            00 (0) 'MS-DOS'\n+6F953D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F953F Compression Method    0000 (0) 'Stored'\n+6F9541 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9545 CRC                   70240B76 (1881410422)\n+6F9549 Compressed Size       000011F6 (4598)\n+6F954D Uncompressed Size     000011F6 (4598)\n+6F9551 Filename Length       003B (59)\n+6F9553 Extra Length          0009 (9)\n+6F9555 Comment Length        0000 (0)\n+6F9557 Disk Start            0000 (0)\n+6F9559 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F955B Ext File Attributes   00000000 (0)\n+6F955F Local Header Offset   0023D3F4 (2348020)\n+6F9563 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9563: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F959E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F95A0   Length              0005 (5)\n+6F95A2   Flags               01 (1) 'Modification'\n+6F95A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F95A7 CENTRAL HEADER #791   02014B50 (33639248)\n+6F95AB Created Zip Spec      14 (20) '2.0'\n+6F95AC Created OS            00 (0) 'MS-DOS'\n+6F95AD Extract Zip Spec      14 (20) '2.0'\n+6F95AE Extract OS            00 (0) 'MS-DOS'\n+6F95AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F95B1 Compression Method    0000 (0) 'Stored'\n+6F95B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F95B7 CRC                   8E4DF810 (2387474448)\n+6F95BB Compressed Size       00000CEA (3306)\n+6F95BF Uncompressed Size     00000CEA (3306)\n+6F95C3 Filename Length       003C (60)\n+6F95C5 Extra Length          0009 (9)\n+6F95C7 Comment Length        0000 (0)\n+6F95C9 Disk Start            0000 (0)\n+6F95CB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F95CD Ext File Attributes   00000000 (0)\n+6F95D1 Local Header Offset   0023E65C (2352732)\n+6F95D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F95D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9611 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9613   Length              0005 (5)\n+6F9615   Flags               01 (1) 'Modification'\n+6F9616   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F961A CENTRAL HEADER #792   02014B50 (33639248)\n+6F961E Created Zip Spec      14 (20) '2.0'\n+6F961F Created OS            00 (0) 'MS-DOS'\n+6F9620 Extract Zip Spec      14 (20) '2.0'\n+6F9621 Extract OS            00 (0) 'MS-DOS'\n+6F9622 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9624 Compression Method    0000 (0) 'Stored'\n+6F9626 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F962A CRC                   1A2117E1 (438376417)\n+6F962E Compressed Size       000007D9 (2009)\n+6F9632 Uncompressed Size     000007D9 (2009)\n+6F9636 Filename Length       003D (61)\n+6F9638 Extra Length          0009 (9)\n+6F963A Comment Length        0000 (0)\n+6F963C Disk Start            0000 (0)\n+6F963E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9640 Ext File Attributes   00000000 (0)\n+6F9644 Local Header Offset   0023F3B9 (2356153)\n+6F9648 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9648: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9685 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9687   Length              0005 (5)\n+6F9689   Flags               01 (1) 'Modification'\n+6F968A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F968E CENTRAL HEADER #793   02014B50 (33639248)\n+6F9692 Created Zip Spec      14 (20) '2.0'\n+6F9693 Created OS            00 (0) 'MS-DOS'\n+6F9694 Extract Zip Spec      14 (20) '2.0'\n+6F9695 Extract OS            00 (0) 'MS-DOS'\n+6F9696 General Purpose Flag  0000 (0)\n+6F9698 Compression Method    0000 (0) 'Stored'\n+6F969A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F969E CRC                   00000000 (0)\n+6F96A2 Compressed Size       00000000 (0)\n+6F96A6 Uncompressed Size     00000000 (0)\n+6F96AA Filename Length       0031 (49)\n+6F96AC Extra Length          0009 (9)\n+6F96AE Comment Length        0000 (0)\n+6F96B0 Disk Start            0000 (0)\n+6F96B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F96B4 Ext File Attributes   00000000 (0)\n+6F96B8 Local Header Offset   0023FC06 (2358278)\n+6F96BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F96BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F96ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F96EF   Length              0005 (5)\n+6F96F1   Flags               01 (1) 'Modification'\n+6F96F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F96F6 CENTRAL HEADER #794   02014B50 (33639248)\n+6F96FA Created Zip Spec      14 (20) '2.0'\n+6F96FB Created OS            00 (0) 'MS-DOS'\n+6F96FC Extract Zip Spec      14 (20) '2.0'\n+6F96FD Extract OS            00 (0) 'MS-DOS'\n+6F96FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9700 Compression Method    0000 (0) 'Stored'\n+6F9702 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9706 CRC                   9E944773 (2660517747)\n+6F970A Compressed Size       0000135F (4959)\n+6F970E Uncompressed Size     0000135F (4959)\n+6F9712 Filename Length       0046 (70)\n+6F9714 Extra Length          0009 (9)\n+6F9716 Comment Length        0000 (0)\n+6F9718 Disk Start            0000 (0)\n+6F971A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F971C Ext File Attributes   00000000 (0)\n+6F9720 Local Header Offset   0023FC5E (2358366)\n+6F9724 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9724: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F976A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F976C   Length              0005 (5)\n+6F976E   Flags               01 (1) 'Modification'\n+6F976F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9773 CENTRAL HEADER #795   02014B50 (33639248)\n+6F9777 Created Zip Spec      14 (20) '2.0'\n+6F9778 Created OS            00 (0) 'MS-DOS'\n+6F9779 Extract Zip Spec      14 (20) '2.0'\n+6F977A Extract OS            00 (0) 'MS-DOS'\n+6F977B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F977D Compression Method    0000 (0) 'Stored'\n+6F977F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9783 CRC                   75FA3855 (1979332693)\n+6F9787 Compressed Size       00000D57 (3415)\n+6F978B Uncompressed Size     00000D57 (3415)\n+6F978F Filename Length       0047 (71)\n+6F9791 Extra Length          0009 (9)\n+6F9793 Comment Length        0000 (0)\n+6F9795 Disk Start            0000 (0)\n+6F9797 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9799 Ext File Attributes   00000000 (0)\n+6F979D Local Header Offset   0024103A (2363450)\n+6F97A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F97A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F97E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F97EA   Length              0005 (5)\n+6F97EC   Flags               01 (1) 'Modification'\n+6F97ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F97F1 CENTRAL HEADER #796   02014B50 (33639248)\n+6F97F5 Created Zip Spec      14 (20) '2.0'\n+6F97F6 Created OS            00 (0) 'MS-DOS'\n+6F97F7 Extract Zip Spec      14 (20) '2.0'\n+6F97F8 Extract OS            00 (0) 'MS-DOS'\n+6F97F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F97FB Compression Method    0000 (0) 'Stored'\n+6F97FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9801 CRC                   90B7F551 (2427974993)\n+6F9805 Compressed Size       000007D2 (2002)\n+6F9809 Uncompressed Size     000007D2 (2002)\n+6F980D Filename Length       0048 (72)\n+6F980F Extra Length          0009 (9)\n+6F9811 Comment Length        0000 (0)\n+6F9813 Disk Start            0000 (0)\n+6F9815 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9817 Ext File Attributes   00000000 (0)\n+6F981B Local Header Offset   00241E0F (2366991)\n+6F981F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F981F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9869   Length              0005 (5)\n+6F986B   Flags               01 (1) 'Modification'\n+6F986C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9870 CENTRAL HEADER #797   02014B50 (33639248)\n+6F9874 Created Zip Spec      14 (20) '2.0'\n+6F9875 Created OS            00 (0) 'MS-DOS'\n+6F9876 Extract Zip Spec      14 (20) '2.0'\n+6F9877 Extract OS            00 (0) 'MS-DOS'\n+6F9878 General Purpose Flag  0000 (0)\n+6F987A Compression Method    0000 (0) 'Stored'\n+6F987C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9880 CRC                   00000000 (0)\n+6F9884 Compressed Size       00000000 (0)\n+6F9888 Uncompressed Size     00000000 (0)\n+6F988C Filename Length       002D (45)\n+6F988E Extra Length          0009 (9)\n+6F9890 Comment Length        0000 (0)\n+6F9892 Disk Start            0000 (0)\n+6F9894 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9896 Ext File Attributes   00000000 (0)\n+6F989A Local Header Offset   00242660 (2369120)\n+6F989E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F989E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F98CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F98CD   Length              0005 (5)\n+6F98CF   Flags               01 (1) 'Modification'\n+6F98D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F98D4 CENTRAL HEADER #798   02014B50 (33639248)\n+6F98D8 Created Zip Spec      14 (20) '2.0'\n+6F98D9 Created OS            00 (0) 'MS-DOS'\n+6F98DA Extract Zip Spec      14 (20) '2.0'\n+6F98DB Extract OS            00 (0) 'MS-DOS'\n+6F98DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F98DE Compression Method    0000 (0) 'Stored'\n+6F98E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F98E4 CRC                   B5FDD8AE (3053312174)\n+6F98E8 Compressed Size       00001750 (5968)\n+6F98EC Uncompressed Size     00001750 (5968)\n+6F98F0 Filename Length       0045 (69)\n+6F98F2 Extra Length          0009 (9)\n+6F98F4 Comment Length        0000 (0)\n+6F98F6 Disk Start            0000 (0)\n+6F98F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F98FA Ext File Attributes   00000000 (0)\n+6F98FE Local Header Offset   002426B4 (2369204)\n+6F9902 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9902: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9947 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9949   Length              0005 (5)\n+6F994B   Flags               01 (1) 'Modification'\n+6F994C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9950 CENTRAL HEADER #799   02014B50 (33639248)\n+6F9954 Created Zip Spec      14 (20) '2.0'\n+6F9955 Created OS            00 (0) 'MS-DOS'\n+6F9956 Extract Zip Spec      14 (20) '2.0'\n+6F9957 Extract OS            00 (0) 'MS-DOS'\n+6F9958 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F995A Compression Method    0000 (0) 'Stored'\n+6F995C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9960 CRC                   F7853FBB (4152704955)\n+6F9964 Compressed Size       000005F7 (1527)\n+6F9968 Uncompressed Size     000005F7 (1527)\n+6F996C Filename Length       003B (59)\n+6F996E Extra Length          0009 (9)\n+6F9970 Comment Length        0000 (0)\n+6F9972 Disk Start            0000 (0)\n+6F9974 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9976 Ext File Attributes   00000000 (0)\n+6F997A Local Header Offset   00243E80 (2375296)\n+6F997E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F997E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F99B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F99BB   Length              0005 (5)\n+6F99BD   Flags               01 (1) 'Modification'\n+6F99BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F99C2 CENTRAL HEADER #800   02014B50 (33639248)\n+6F99C6 Created Zip Spec      14 (20) '2.0'\n+6F99C7 Created OS            00 (0) 'MS-DOS'\n+6F99C8 Extract Zip Spec      14 (20) '2.0'\n+6F99C9 Extract OS            00 (0) 'MS-DOS'\n+6F99CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F99CC Compression Method    0000 (0) 'Stored'\n+6F99CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F99D2 CRC                   E7186373 (3877135219)\n+6F99D6 Compressed Size       00000585 (1413)\n+6F99DA Uncompressed Size     00000585 (1413)\n+6F99DE Filename Length       0043 (67)\n+6F99E0 Extra Length          0009 (9)\n+6F99E2 Comment Length        0000 (0)\n+6F99E4 Disk Start            0000 (0)\n+6F99E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F99E8 Ext File Attributes   00000000 (0)\n+6F99EC Local Header Offset   002444E9 (2376937)\n+6F99F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F99F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9A33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9A35   Length              0005 (5)\n+6F9A37   Flags               01 (1) 'Modification'\n+6F9A38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9A3C CENTRAL HEADER #801   02014B50 (33639248)\n+6F9A40 Created Zip Spec      14 (20) '2.0'\n+6F9A41 Created OS            00 (0) 'MS-DOS'\n+6F9A42 Extract Zip Spec      14 (20) '2.0'\n+6F9A43 Extract OS            00 (0) 'MS-DOS'\n+6F9A44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9A46 Compression Method    0000 (0) 'Stored'\n+6F9A48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9A4C CRC                   080350B9 (134435001)\n+6F9A50 Compressed Size       00000480 (1152)\n+6F9A54 Uncompressed Size     00000480 (1152)\n+6F9A58 Filename Length       0046 (70)\n+6F9A5A Extra Length          0009 (9)\n+6F9A5C Comment Length        0000 (0)\n+6F9A5E Disk Start            0000 (0)\n+6F9A60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9A62 Ext File Attributes   00000000 (0)\n+6F9A66 Local Header Offset   00244AE8 (2378472)\n+6F9A6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9A6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9AB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9AB2   Length              0005 (5)\n+6F9AB4   Flags               01 (1) 'Modification'\n+6F9AB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9AB9 CENTRAL HEADER #802   02014B50 (33639248)\n+6F9ABD Created Zip Spec      14 (20) '2.0'\n+6F9ABE Created OS            00 (0) 'MS-DOS'\n+6F9ABF Extract Zip Spec      14 (20) '2.0'\n+6F9AC0 Extract OS            00 (0) 'MS-DOS'\n+6F9AC1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9AC3 Compression Method    0000 (0) 'Stored'\n+6F9AC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9AC9 CRC                   39A8FB9C (967375772)\n+6F9ACD Compressed Size       0000053D (1341)\n+6F9AD1 Uncompressed Size     0000053D (1341)\n+6F9AD5 Filename Length       0048 (72)\n+6F9AD7 Extra Length          0009 (9)\n+6F9AD9 Comment Length        0000 (0)\n+6F9ADB Disk Start            0000 (0)\n+6F9ADD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9ADF Ext File Attributes   00000000 (0)\n+6F9AE3 Local Header Offset   00244FE5 (2379749)\n+6F9AE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9AE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9B2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9B31   Length              0005 (5)\n+6F9B33   Flags               01 (1) 'Modification'\n+6F9B34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9B38 CENTRAL HEADER #803   02014B50 (33639248)\n+6F9B3C Created Zip Spec      14 (20) '2.0'\n+6F9B3D Created OS            00 (0) 'MS-DOS'\n+6F9B3E Extract Zip Spec      14 (20) '2.0'\n+6F9B3F Extract OS            00 (0) 'MS-DOS'\n+6F9B40 General Purpose Flag  0000 (0)\n+6F9B42 Compression Method    0000 (0) 'Stored'\n+6F9B44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9B48 CRC                   00000000 (0)\n+6F9B4C Compressed Size       00000000 (0)\n+6F9B50 Uncompressed Size     00000000 (0)\n+6F9B54 Filename Length       002D (45)\n+6F9B56 Extra Length          0009 (9)\n+6F9B58 Comment Length        0000 (0)\n+6F9B5A Disk Start            0000 (0)\n+6F9B5C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9B5E Ext File Attributes   00000000 (0)\n+6F9B62 Local Header Offset   002455A1 (2381217)\n+6F9B66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9B66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9B93 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9B95   Length              0005 (5)\n+6F9B97   Flags               01 (1) 'Modification'\n+6F9B98   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9B9C CENTRAL HEADER #804   02014B50 (33639248)\n+6F9BA0 Created Zip Spec      14 (20) '2.0'\n+6F9BA1 Created OS            00 (0) 'MS-DOS'\n+6F9BA2 Extract Zip Spec      14 (20) '2.0'\n+6F9BA3 Extract OS            00 (0) 'MS-DOS'\n+6F9BA4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9BA6 Compression Method    0000 (0) 'Stored'\n+6F9BA8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9BAC CRC                   6029E0CC (1613357260)\n+6F9BB0 Compressed Size       00000D7E (3454)\n+6F9BB4 Uncompressed Size     00000D7E (3454)\n+6F9BB8 Filename Length       0047 (71)\n+6F9BBA Extra Length          0009 (9)\n+6F9BBC Comment Length        0000 (0)\n+6F9BBE Disk Start            0000 (0)\n+6F9BC0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9BC2 Ext File Attributes   00000000 (0)\n+6F9BC6 Local Header Offset   002455F5 (2381301)\n+6F9BCA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9BCA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9C11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9C13   Length              0005 (5)\n+6F9C15   Flags               01 (1) 'Modification'\n+6F9C16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9C1A CENTRAL HEADER #805   02014B50 (33639248)\n+6F9C1E Created Zip Spec      14 (20) '2.0'\n+6F9C1F Created OS            00 (0) 'MS-DOS'\n+6F9C20 Extract Zip Spec      14 (20) '2.0'\n+6F9C21 Extract OS            00 (0) 'MS-DOS'\n+6F9C22 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9C24 Compression Method    0000 (0) 'Stored'\n+6F9C26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9C2A CRC                   5EB75116 (1589072150)\n+6F9C2E Compressed Size       00000CEE (3310)\n+6F9C32 Uncompressed Size     00000CEE (3310)\n+6F9C36 Filename Length       0048 (72)\n+6F9C38 Extra Length          0009 (9)\n+6F9C3A Comment Length        0000 (0)\n+6F9C3C Disk Start            0000 (0)\n+6F9C3E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9C40 Ext File Attributes   00000000 (0)\n+6F9C44 Local Header Offset   002463F1 (2384881)\n+6F9C48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9C48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9C90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9C92   Length              0005 (5)\n+6F9C94   Flags               01 (1) 'Modification'\n+6F9C95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9C99 CENTRAL HEADER #806   02014B50 (33639248)\n+6F9C9D Created Zip Spec      14 (20) '2.0'\n+6F9C9E Created OS            00 (0) 'MS-DOS'\n+6F9C9F Extract Zip Spec      14 (20) '2.0'\n+6F9CA0 Extract OS            00 (0) 'MS-DOS'\n+6F9CA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9CA3 Compression Method    0000 (0) 'Stored'\n+6F9CA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9CA9 CRC                   20799CC3 (544840899)\n+6F9CAD Compressed Size       000007DF (2015)\n+6F9CB1 Uncompressed Size     000007DF (2015)\n+6F9CB5 Filename Length       0049 (73)\n+6F9CB7 Extra Length          0009 (9)\n+6F9CB9 Comment Length        0000 (0)\n+6F9CBB Disk Start            0000 (0)\n+6F9CBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9CBF Ext File Attributes   00000000 (0)\n+6F9CC3 Local Header Offset   0024715E (2388318)\n+6F9CC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9CC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9D10 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9D12   Length              0005 (5)\n+6F9D14   Flags               01 (1) 'Modification'\n+6F9D15   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9D19 CENTRAL HEADER #807   02014B50 (33639248)\n+6F9D1D Created Zip Spec      14 (20) '2.0'\n+6F9D1E Created OS            00 (0) 'MS-DOS'\n+6F9D1F Extract Zip Spec      14 (20) '2.0'\n+6F9D20 Extract OS            00 (0) 'MS-DOS'\n+6F9D21 General Purpose Flag  0000 (0)\n+6F9D23 Compression Method    0000 (0) 'Stored'\n+6F9D25 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9D29 CRC                   00000000 (0)\n+6F9D2D Compressed Size       00000000 (0)\n+6F9D31 Uncompressed Size     00000000 (0)\n+6F9D35 Filename Length       002B (43)\n+6F9D37 Extra Length          0009 (9)\n+6F9D39 Comment Length        0000 (0)\n+6F9D3B Disk Start            0000 (0)\n+6F9D3D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9D3F Ext File Attributes   00000000 (0)\n+6F9D43 Local Header Offset   002479BD (2390461)\n+6F9D47 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9D47: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9D72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9D74   Length              0005 (5)\n+6F9D76   Flags               01 (1) 'Modification'\n+6F9D77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9D7B CENTRAL HEADER #808   02014B50 (33639248)\n+6F9D7F Created Zip Spec      14 (20) '2.0'\n+6F9D80 Created OS            00 (0) 'MS-DOS'\n+6F9D81 Extract Zip Spec      14 (20) '2.0'\n+6F9D82 Extract OS            00 (0) 'MS-DOS'\n+6F9D83 General Purpose Flag  0000 (0)\n+6F9D85 Compression Method    0000 (0) 'Stored'\n+6F9D87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9D8B CRC                   00000000 (0)\n+6F9D8F Compressed Size       00000000 (0)\n+6F9D93 Uncompressed Size     00000000 (0)\n+6F9D97 Filename Length       0033 (51)\n+6F9D99 Extra Length          0009 (9)\n+6F9D9B Comment Length        0000 (0)\n+6F9D9D Disk Start            0000 (0)\n+6F9D9F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9DA1 Ext File Attributes   00000000 (0)\n+6F9DA5 Local Header Offset   00247A0F (2390543)\n+6F9DA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9DA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9DDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9DDE   Length              0005 (5)\n+6F9DE0   Flags               01 (1) 'Modification'\n+6F9DE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9DE5 CENTRAL HEADER #809   02014B50 (33639248)\n+6F9DE9 Created Zip Spec      14 (20) '2.0'\n+6F9DEA Created OS            00 (0) 'MS-DOS'\n+6F9DEB Extract Zip Spec      14 (20) '2.0'\n+6F9DEC Extract OS            00 (0) 'MS-DOS'\n+6F9DED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9DEF Compression Method    0000 (0) 'Stored'\n+6F9DF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9DF5 CRC                   770B2AC5 (1997220549)\n+6F9DF9 Compressed Size       0000159B (5531)\n+6F9DFD Uncompressed Size     0000159B (5531)\n+6F9E01 Filename Length       0056 (86)\n+6F9E03 Extra Length          0009 (9)\n+6F9E05 Comment Length        0000 (0)\n+6F9E07 Disk Start            0000 (0)\n+6F9E09 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9E0B Ext File Attributes   00000000 (0)\n+6F9E0F Local Header Offset   00247A69 (2390633)\n+6F9E13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9E13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9E69 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9E6B   Length              0005 (5)\n+6F9E6D   Flags               01 (1) 'Modification'\n+6F9E6E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9E72 CENTRAL HEADER #810   02014B50 (33639248)\n+6F9E76 Created Zip Spec      14 (20) '2.0'\n+6F9E77 Created OS            00 (0) 'MS-DOS'\n+6F9E78 Extract Zip Spec      14 (20) '2.0'\n+6F9E79 Extract OS            00 (0) 'MS-DOS'\n+6F9E7A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9E7C Compression Method    0000 (0) 'Stored'\n+6F9E7E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9E82 CRC                   680E4C03 (1745767427)\n+6F9E86 Compressed Size       00001580 (5504)\n+6F9E8A Uncompressed Size     00001580 (5504)\n+6F9E8E Filename Length       0057 (87)\n+6F9E90 Extra Length          0009 (9)\n+6F9E92 Comment Length        0000 (0)\n+6F9E94 Disk Start            0000 (0)\n+6F9E96 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9E98 Ext File Attributes   00000000 (0)\n+6F9E9C Local Header Offset   00249091 (2396305)\n+6F9EA0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9EA0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9EF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9EF9   Length              0005 (5)\n+6F9EFB   Flags               01 (1) 'Modification'\n+6F9EFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9F00 CENTRAL HEADER #811   02014B50 (33639248)\n+6F9F04 Created Zip Spec      14 (20) '2.0'\n+6F9F05 Created OS            00 (0) 'MS-DOS'\n+6F9F06 Extract Zip Spec      14 (20) '2.0'\n+6F9F07 Extract OS            00 (0) 'MS-DOS'\n+6F9F08 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9F0A Compression Method    0000 (0) 'Stored'\n+6F9F0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9F10 CRC                   CECB8E17 (3469446679)\n+6F9F14 Compressed Size       000007B4 (1972)\n+6F9F18 Uncompressed Size     000007B4 (1972)\n+6F9F1C Filename Length       0058 (88)\n+6F9F1E Extra Length          0009 (9)\n+6F9F20 Comment Length        0000 (0)\n+6F9F22 Disk Start            0000 (0)\n+6F9F24 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9F26 Ext File Attributes   00000000 (0)\n+6F9F2A Local Header Offset   0024A69F (2401951)\n+6F9F2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9F2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6F9F86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6F9F88   Length              0005 (5)\n+6F9F8A   Flags               01 (1) 'Modification'\n+6F9F8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6F9F8F CENTRAL HEADER #812   02014B50 (33639248)\n+6F9F93 Created Zip Spec      14 (20) '2.0'\n+6F9F94 Created OS            00 (0) 'MS-DOS'\n+6F9F95 Extract Zip Spec      14 (20) '2.0'\n+6F9F96 Extract OS            00 (0) 'MS-DOS'\n+6F9F97 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6F9F99 Compression Method    0000 (0) 'Stored'\n+6F9F9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6F9F9F CRC                   16AE2BE0 (380513248)\n+6F9FA3 Compressed Size       0000133A (4922)\n+6F9FA7 Uncompressed Size     0000133A (4922)\n+6F9FAB Filename Length       0052 (82)\n+6F9FAD Extra Length          0009 (9)\n+6F9FAF Comment Length        0000 (0)\n+6F9FB1 Disk Start            0000 (0)\n+6F9FB3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6F9FB5 Ext File Attributes   00000000 (0)\n+6F9FB9 Local Header Offset   0024AEE2 (2404066)\n+6F9FBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6F9FBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA00F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA011   Length              0005 (5)\n+6FA013   Flags               01 (1) 'Modification'\n+6FA014   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA018 CENTRAL HEADER #813   02014B50 (33639248)\n+6FA01C Created Zip Spec      14 (20) '2.0'\n+6FA01D Created OS            00 (0) 'MS-DOS'\n+6FA01E Extract Zip Spec      14 (20) '2.0'\n+6FA01F Extract OS            00 (0) 'MS-DOS'\n+6FA020 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA022 Compression Method    0000 (0) 'Stored'\n+6FA024 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA028 CRC                   71435F02 (1900240642)\n+6FA02C Compressed Size       0000159D (5533)\n+6FA030 Uncompressed Size     0000159D (5533)\n+6FA034 Filename Length       0053 (83)\n+6FA036 Extra Length          0009 (9)\n+6FA038 Comment Length        0000 (0)\n+6FA03A Disk Start            0000 (0)\n+6FA03C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA03E Ext File Attributes   00000000 (0)\n+6FA042 Local Header Offset   0024C2A5 (2409125)\n+6FA046 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA046: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA099 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA09B   Length              0005 (5)\n+6FA09D   Flags               01 (1) 'Modification'\n+6FA09E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA0A2 CENTRAL HEADER #814   02014B50 (33639248)\n+6FA0A6 Created Zip Spec      14 (20) '2.0'\n+6FA0A7 Created OS            00 (0) 'MS-DOS'\n+6FA0A8 Extract Zip Spec      14 (20) '2.0'\n+6FA0A9 Extract OS            00 (0) 'MS-DOS'\n+6FA0AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA0AC Compression Method    0000 (0) 'Stored'\n+6FA0AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA0B2 CRC                   A92A8781 (2838136705)\n+6FA0B6 Compressed Size       000009C6 (2502)\n+6FA0BA Uncompressed Size     000009C6 (2502)\n+6FA0BE Filename Length       0054 (84)\n+6FA0C0 Extra Length          0009 (9)\n+6FA0C2 Comment Length        0000 (0)\n+6FA0C4 Disk Start            0000 (0)\n+6FA0C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA0C8 Ext File Attributes   00000000 (0)\n+6FA0CC Local Header Offset   0024D8CC (2414796)\n+6FA0D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA0D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA124 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA126   Length              0005 (5)\n+6FA128   Flags               01 (1) 'Modification'\n+6FA129   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA12D CENTRAL HEADER #815   02014B50 (33639248)\n+6FA131 Created Zip Spec      14 (20) '2.0'\n+6FA132 Created OS            00 (0) 'MS-DOS'\n+6FA133 Extract Zip Spec      14 (20) '2.0'\n+6FA134 Extract OS            00 (0) 'MS-DOS'\n+6FA135 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA137 Compression Method    0000 (0) 'Stored'\n+6FA139 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA13D CRC                   7EEE431C (2129543964)\n+6FA141 Compressed Size       00002099 (8345)\n+6FA145 Uncompressed Size     00002099 (8345)\n+6FA149 Filename Length       0045 (69)\n+6FA14B Extra Length          0009 (9)\n+6FA14D Comment Length        0000 (0)\n+6FA14F Disk Start            0000 (0)\n+6FA151 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA153 Ext File Attributes   00000000 (0)\n+6FA157 Local Header Offset   0024E31D (2417437)\n+6FA15B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA15B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA1A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA1A2   Length              0005 (5)\n+6FA1A4   Flags               01 (1) 'Modification'\n+6FA1A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA1A9 CENTRAL HEADER #816   02014B50 (33639248)\n+6FA1AD Created Zip Spec      14 (20) '2.0'\n+6FA1AE Created OS            00 (0) 'MS-DOS'\n+6FA1AF Extract Zip Spec      14 (20) '2.0'\n+6FA1B0 Extract OS            00 (0) 'MS-DOS'\n+6FA1B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA1B3 Compression Method    0000 (0) 'Stored'\n+6FA1B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA1B9 CRC                   E46DD072 (3832402034)\n+6FA1BD Compressed Size       00000A55 (2645)\n+6FA1C1 Uncompressed Size     00000A55 (2645)\n+6FA1C5 Filename Length       0050 (80)\n+6FA1C7 Extra Length          0009 (9)\n+6FA1C9 Comment Length        0000 (0)\n+6FA1CB Disk Start            0000 (0)\n+6FA1CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA1CF Ext File Attributes   00000000 (0)\n+6FA1D3 Local Header Offset   00250432 (2425906)\n+6FA1D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA1D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA227 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA229   Length              0005 (5)\n+6FA22B   Flags               01 (1) 'Modification'\n+6FA22C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA230 CENTRAL HEADER #817   02014B50 (33639248)\n+6FA234 Created Zip Spec      14 (20) '2.0'\n+6FA235 Created OS            00 (0) 'MS-DOS'\n+6FA236 Extract Zip Spec      14 (20) '2.0'\n+6FA237 Extract OS            00 (0) 'MS-DOS'\n+6FA238 General Purpose Flag  0000 (0)\n+6FA23A Compression Method    0000 (0) 'Stored'\n+6FA23C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA240 CRC                   00000000 (0)\n+6FA244 Compressed Size       00000000 (0)\n+6FA248 Uncompressed Size     00000000 (0)\n+6FA24C Filename Length       003B (59)\n+6FA24E Extra Length          0009 (9)\n+6FA250 Comment Length        0000 (0)\n+6FA252 Disk Start            0000 (0)\n+6FA254 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA256 Ext File Attributes   00000000 (0)\n+6FA25A Local Header Offset   00250F0E (2428686)\n+6FA25E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA25E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA299 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA29B   Length              0005 (5)\n+6FA29D   Flags               01 (1) 'Modification'\n+6FA29E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA2A2 CENTRAL HEADER #818   02014B50 (33639248)\n+6FA2A6 Created Zip Spec      14 (20) '2.0'\n+6FA2A7 Created OS            00 (0) 'MS-DOS'\n+6FA2A8 Extract Zip Spec      14 (20) '2.0'\n+6FA2A9 Extract OS            00 (0) 'MS-DOS'\n+6FA2AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA2AC Compression Method    0000 (0) 'Stored'\n+6FA2AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA2B2 CRC                   3E2D4260 (1043153504)\n+6FA2B6 Compressed Size       00007BD0 (31696)\n+6FA2BA Uncompressed Size     00007BD0 (31696)\n+6FA2BE Filename Length       0048 (72)\n+6FA2C0 Extra Length          0009 (9)\n+6FA2C2 Comment Length        0000 (0)\n+6FA2C4 Disk Start            0000 (0)\n+6FA2C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA2C8 Ext File Attributes   00000000 (0)\n+6FA2CC Local Header Offset   00250F70 (2428784)\n+6FA2D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA2D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA318 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA31A   Length              0005 (5)\n+6FA31C   Flags               01 (1) 'Modification'\n+6FA31D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA321 CENTRAL HEADER #819   02014B50 (33639248)\n+6FA325 Created Zip Spec      14 (20) '2.0'\n+6FA326 Created OS            00 (0) 'MS-DOS'\n+6FA327 Extract Zip Spec      14 (20) '2.0'\n+6FA328 Extract OS            00 (0) 'MS-DOS'\n+6FA329 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA32B Compression Method    0000 (0) 'Stored'\n+6FA32D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA331 CRC                   C5D2D6A4 (3318929060)\n+6FA335 Compressed Size       00018FCD (102349)\n+6FA339 Uncompressed Size     00018FCD (102349)\n+6FA33D Filename Length       004B (75)\n+6FA33F Extra Length          0009 (9)\n+6FA341 Comment Length        0000 (0)\n+6FA343 Disk Start            0000 (0)\n+6FA345 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA347 Ext File Attributes   00000000 (0)\n+6FA34B Local Header Offset   00258BBF (2460607)\n+6FA34F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA34F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA39A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA39C   Length              0005 (5)\n+6FA39E   Flags               01 (1) 'Modification'\n+6FA39F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA3A3 CENTRAL HEADER #820   02014B50 (33639248)\n+6FA3A7 Created Zip Spec      14 (20) '2.0'\n+6FA3A8 Created OS            00 (0) 'MS-DOS'\n+6FA3A9 Extract Zip Spec      14 (20) '2.0'\n+6FA3AA Extract OS            00 (0) 'MS-DOS'\n+6FA3AB General Purpose Flag  0000 (0)\n+6FA3AD Compression Method    0000 (0) 'Stored'\n+6FA3AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA3B3 CRC                   00000000 (0)\n+6FA3B7 Compressed Size       00000000 (0)\n+6FA3BB Uncompressed Size     00000000 (0)\n+6FA3BF Filename Length       002D (45)\n+6FA3C1 Extra Length          0009 (9)\n+6FA3C3 Comment Length        0000 (0)\n+6FA3C5 Disk Start            0000 (0)\n+6FA3C7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA3C9 Ext File Attributes   00000000 (0)\n+6FA3CD Local Header Offset   00271C0E (2563086)\n+6FA3D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA3D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA3FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA400   Length              0005 (5)\n+6FA402   Flags               01 (1) 'Modification'\n+6FA403   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA407 CENTRAL HEADER #821   02014B50 (33639248)\n+6FA40B Created Zip Spec      14 (20) '2.0'\n+6FA40C Created OS            00 (0) 'MS-DOS'\n+6FA40D Extract Zip Spec      14 (20) '2.0'\n+6FA40E Extract OS            00 (0) 'MS-DOS'\n+6FA40F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA411 Compression Method    0000 (0) 'Stored'\n+6FA413 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA417 CRC                   8EE26A20 (2397202976)\n+6FA41B Compressed Size       0000108D (4237)\n+6FA41F Uncompressed Size     0000108D (4237)\n+6FA423 Filename Length       0047 (71)\n+6FA425 Extra Length          0009 (9)\n+6FA427 Comment Length        0000 (0)\n+6FA429 Disk Start            0000 (0)\n+6FA42B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA42D Ext File Attributes   00000000 (0)\n+6FA431 Local Header Offset   00271C62 (2563170)\n+6FA435 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA435: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA47C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA47E   Length              0005 (5)\n+6FA480   Flags               01 (1) 'Modification'\n+6FA481   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA485 CENTRAL HEADER #822   02014B50 (33639248)\n+6FA489 Created Zip Spec      14 (20) '2.0'\n+6FA48A Created OS            00 (0) 'MS-DOS'\n+6FA48B Extract Zip Spec      14 (20) '2.0'\n+6FA48C Extract OS            00 (0) 'MS-DOS'\n+6FA48D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA48F Compression Method    0000 (0) 'Stored'\n+6FA491 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA495 CRC                   9A974193 (2593603987)\n+6FA499 Compressed Size       00000FB4 (4020)\n+6FA49D Uncompressed Size     00000FB4 (4020)\n+6FA4A1 Filename Length       0048 (72)\n+6FA4A3 Extra Length          0009 (9)\n+6FA4A5 Comment Length        0000 (0)\n+6FA4A7 Disk Start            0000 (0)\n+6FA4A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA4AB Ext File Attributes   00000000 (0)\n+6FA4AF Local Header Offset   00272D6D (2567533)\n+6FA4B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA4B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA4FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA4FD   Length              0005 (5)\n+6FA4FF   Flags               01 (1) 'Modification'\n+6FA500   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA504 CENTRAL HEADER #823   02014B50 (33639248)\n+6FA508 Created Zip Spec      14 (20) '2.0'\n+6FA509 Created OS            00 (0) 'MS-DOS'\n+6FA50A Extract Zip Spec      14 (20) '2.0'\n+6FA50B Extract OS            00 (0) 'MS-DOS'\n+6FA50C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA50E Compression Method    0000 (0) 'Stored'\n+6FA510 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA514 CRC                   1224CDAB (304401835)\n+6FA518 Compressed Size       000007D8 (2008)\n+6FA51C Uncompressed Size     000007D8 (2008)\n+6FA520 Filename Length       0049 (73)\n+6FA522 Extra Length          0009 (9)\n+6FA524 Comment Length        0000 (0)\n+6FA526 Disk Start            0000 (0)\n+6FA528 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA52A Ext File Attributes   00000000 (0)\n+6FA52E Local Header Offset   00273DA0 (2571680)\n+6FA532 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA532: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA57B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA57D   Length              0005 (5)\n+6FA57F   Flags               01 (1) 'Modification'\n+6FA580   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA584 CENTRAL HEADER #824   02014B50 (33639248)\n+6FA588 Created Zip Spec      14 (20) '2.0'\n+6FA589 Created OS            00 (0) 'MS-DOS'\n+6FA58A Extract Zip Spec      14 (20) '2.0'\n+6FA58B Extract OS            00 (0) 'MS-DOS'\n+6FA58C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA58E Compression Method    0000 (0) 'Stored'\n+6FA590 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA594 CRC                   39DE609E (970875038)\n+6FA598 Compressed Size       00000481 (1153)\n+6FA59C Uncompressed Size     00000481 (1153)\n+6FA5A0 Filename Length       0039 (57)\n+6FA5A2 Extra Length          0009 (9)\n+6FA5A4 Comment Length        0000 (0)\n+6FA5A6 Disk Start            0000 (0)\n+6FA5A8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA5AA Ext File Attributes   00000000 (0)\n+6FA5AE Local Header Offset   002745F8 (2573816)\n+6FA5B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA5B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA5EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA5ED   Length              0005 (5)\n+6FA5EF   Flags               01 (1) 'Modification'\n+6FA5F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA5F4 CENTRAL HEADER #825   02014B50 (33639248)\n+6FA5F8 Created Zip Spec      14 (20) '2.0'\n+6FA5F9 Created OS            00 (0) 'MS-DOS'\n+6FA5FA Extract Zip Spec      14 (20) '2.0'\n+6FA5FB Extract OS            00 (0) 'MS-DOS'\n+6FA5FC General Purpose Flag  0000 (0)\n+6FA5FE Compression Method    0000 (0) 'Stored'\n+6FA600 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA604 CRC                   00000000 (0)\n+6FA608 Compressed Size       00000000 (0)\n+6FA60C Uncompressed Size     00000000 (0)\n+6FA610 Filename Length       0036 (54)\n+6FA612 Extra Length          0009 (9)\n+6FA614 Comment Length        0000 (0)\n+6FA616 Disk Start            0000 (0)\n+6FA618 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA61A Ext File Attributes   00000000 (0)\n+6FA61E Local Header Offset   00274AE9 (2575081)\n+6FA622 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA622: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA658 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA65A   Length              0005 (5)\n+6FA65C   Flags               01 (1) 'Modification'\n+6FA65D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA661 CENTRAL HEADER #826   02014B50 (33639248)\n+6FA665 Created Zip Spec      14 (20) '2.0'\n+6FA666 Created OS            00 (0) 'MS-DOS'\n+6FA667 Extract Zip Spec      14 (20) '2.0'\n+6FA668 Extract OS            00 (0) 'MS-DOS'\n+6FA669 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA66B Compression Method    0000 (0) 'Stored'\n+6FA66D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA671 CRC                   05778916 (91719958)\n+6FA675 Compressed Size       000007B5 (1973)\n+6FA679 Uncompressed Size     000007B5 (1973)\n+6FA67D Filename Length       004A (74)\n+6FA67F Extra Length          0009 (9)\n+6FA681 Comment Length        0000 (0)\n+6FA683 Disk Start            0000 (0)\n+6FA685 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA687 Ext File Attributes   00000000 (0)\n+6FA68B Local Header Offset   00274B46 (2575174)\n+6FA68F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA68F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA6D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA6DB   Length              0005 (5)\n+6FA6DD   Flags               01 (1) 'Modification'\n+6FA6DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA6E2 CENTRAL HEADER #827   02014B50 (33639248)\n+6FA6E6 Created Zip Spec      14 (20) '2.0'\n+6FA6E7 Created OS            00 (0) 'MS-DOS'\n+6FA6E8 Extract Zip Spec      14 (20) '2.0'\n+6FA6E9 Extract OS            00 (0) 'MS-DOS'\n+6FA6EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA6EC Compression Method    0000 (0) 'Stored'\n+6FA6EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA6F2 CRC                   1D3EA7BE (490645438)\n+6FA6F6 Compressed Size       00000793 (1939)\n+6FA6FA Uncompressed Size     00000793 (1939)\n+6FA6FE Filename Length       0047 (71)\n+6FA700 Extra Length          0009 (9)\n+6FA702 Comment Length        0000 (0)\n+6FA704 Disk Start            0000 (0)\n+6FA706 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA708 Ext File Attributes   00000000 (0)\n+6FA70C Local Header Offset   0027537C (2577276)\n+6FA710 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA710: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA757 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA759   Length              0005 (5)\n+6FA75B   Flags               01 (1) 'Modification'\n+6FA75C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA760 CENTRAL HEADER #828   02014B50 (33639248)\n+6FA764 Created Zip Spec      14 (20) '2.0'\n+6FA765 Created OS            00 (0) 'MS-DOS'\n+6FA766 Extract Zip Spec      14 (20) '2.0'\n+6FA767 Extract OS            00 (0) 'MS-DOS'\n+6FA768 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA76A Compression Method    0000 (0) 'Stored'\n+6FA76C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA770 CRC                   F831FECC (4164026060)\n+6FA774 Compressed Size       000007B1 (1969)\n+6FA778 Uncompressed Size     000007B1 (1969)\n+6FA77C Filename Length       004C (76)\n+6FA77E Extra Length          0009 (9)\n+6FA780 Comment Length        0000 (0)\n+6FA782 Disk Start            0000 (0)\n+6FA784 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA786 Ext File Attributes   00000000 (0)\n+6FA78A Local Header Offset   00275B8D (2579341)\n+6FA78E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA78E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA7DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA7DC   Length              0005 (5)\n+6FA7DE   Flags               01 (1) 'Modification'\n+6FA7DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA7E3 CENTRAL HEADER #829   02014B50 (33639248)\n+6FA7E7 Created Zip Spec      14 (20) '2.0'\n+6FA7E8 Created OS            00 (0) 'MS-DOS'\n+6FA7E9 Extract Zip Spec      14 (20) '2.0'\n+6FA7EA Extract OS            00 (0) 'MS-DOS'\n+6FA7EB General Purpose Flag  0000 (0)\n+6FA7ED Compression Method    0000 (0) 'Stored'\n+6FA7EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA7F3 CRC                   00000000 (0)\n+6FA7F7 Compressed Size       00000000 (0)\n+6FA7FB Uncompressed Size     00000000 (0)\n+6FA7FF Filename Length       0033 (51)\n+6FA801 Extra Length          0009 (9)\n+6FA803 Comment Length        0000 (0)\n+6FA805 Disk Start            0000 (0)\n+6FA807 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA809 Ext File Attributes   00000000 (0)\n+6FA80D Local Header Offset   002763C1 (2581441)\n+6FA811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA844 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA846   Length              0005 (5)\n+6FA848   Flags               01 (1) 'Modification'\n+6FA849   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA84D CENTRAL HEADER #830   02014B50 (33639248)\n+6FA851 Created Zip Spec      14 (20) '2.0'\n+6FA852 Created OS            00 (0) 'MS-DOS'\n+6FA853 Extract Zip Spec      14 (20) '2.0'\n+6FA854 Extract OS            00 (0) 'MS-DOS'\n+6FA855 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA857 Compression Method    0000 (0) 'Stored'\n+6FA859 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA85D CRC                   B38C8B84 (3012332420)\n+6FA861 Compressed Size       00000F71 (3953)\n+6FA865 Uncompressed Size     00000F71 (3953)\n+6FA869 Filename Length       0044 (68)\n+6FA86B Extra Length          0009 (9)\n+6FA86D Comment Length        0000 (0)\n+6FA86F Disk Start            0000 (0)\n+6FA871 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA873 Ext File Attributes   00000000 (0)\n+6FA877 Local Header Offset   0027641B (2581531)\n+6FA87B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA87B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA8BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA8C1   Length              0005 (5)\n+6FA8C3   Flags               01 (1) 'Modification'\n+6FA8C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA8C8 CENTRAL HEADER #831   02014B50 (33639248)\n+6FA8CC Created Zip Spec      14 (20) '2.0'\n+6FA8CD Created OS            00 (0) 'MS-DOS'\n+6FA8CE Extract Zip Spec      14 (20) '2.0'\n+6FA8CF Extract OS            00 (0) 'MS-DOS'\n+6FA8D0 General Purpose Flag  0000 (0)\n+6FA8D2 Compression Method    0000 (0) 'Stored'\n+6FA8D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA8D8 CRC                   00000000 (0)\n+6FA8DC Compressed Size       00000000 (0)\n+6FA8E0 Uncompressed Size     00000000 (0)\n+6FA8E4 Filename Length       002A (42)\n+6FA8E6 Extra Length          0009 (9)\n+6FA8E8 Comment Length        0000 (0)\n+6FA8EA Disk Start            0000 (0)\n+6FA8EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA8EE Ext File Attributes   00000000 (0)\n+6FA8F2 Local Header Offset   00277407 (2585607)\n+6FA8F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA8F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA920 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA922   Length              0005 (5)\n+6FA924   Flags               01 (1) 'Modification'\n+6FA925   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA929 CENTRAL HEADER #832   02014B50 (33639248)\n+6FA92D Created Zip Spec      14 (20) '2.0'\n+6FA92E Created OS            00 (0) 'MS-DOS'\n+6FA92F Extract Zip Spec      14 (20) '2.0'\n+6FA930 Extract OS            00 (0) 'MS-DOS'\n+6FA931 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA933 Compression Method    0000 (0) 'Stored'\n+6FA935 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA939 CRC                   BC3782BE (3157754558)\n+6FA93D Compressed Size       00000865 (2149)\n+6FA941 Uncompressed Size     00000865 (2149)\n+6FA945 Filename Length       0048 (72)\n+6FA947 Extra Length          0009 (9)\n+6FA949 Comment Length        0000 (0)\n+6FA94B Disk Start            0000 (0)\n+6FA94D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA94F Ext File Attributes   00000000 (0)\n+6FA953 Local Header Offset   00277458 (2585688)\n+6FA957 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA957: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FA99F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FA9A1   Length              0005 (5)\n+6FA9A3   Flags               01 (1) 'Modification'\n+6FA9A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FA9A8 CENTRAL HEADER #833   02014B50 (33639248)\n+6FA9AC Created Zip Spec      14 (20) '2.0'\n+6FA9AD Created OS            00 (0) 'MS-DOS'\n+6FA9AE Extract Zip Spec      14 (20) '2.0'\n+6FA9AF Extract OS            00 (0) 'MS-DOS'\n+6FA9B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FA9B2 Compression Method    0000 (0) 'Stored'\n+6FA9B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FA9B8 CRC                   50042D13 (1342450963)\n+6FA9BC Compressed Size       000004B3 (1203)\n+6FA9C0 Uncompressed Size     000004B3 (1203)\n+6FA9C4 Filename Length       0045 (69)\n+6FA9C6 Extra Length          0009 (9)\n+6FA9C8 Comment Length        0000 (0)\n+6FA9CA Disk Start            0000 (0)\n+6FA9CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FA9CE Ext File Attributes   00000000 (0)\n+6FA9D2 Local Header Offset   00277D3C (2587964)\n+6FA9D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FA9D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAA1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAA1D   Length              0005 (5)\n+6FAA1F   Flags               01 (1) 'Modification'\n+6FAA20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAA24 CENTRAL HEADER #834   02014B50 (33639248)\n+6FAA28 Created Zip Spec      14 (20) '2.0'\n+6FAA29 Created OS            00 (0) 'MS-DOS'\n+6FAA2A Extract Zip Spec      14 (20) '2.0'\n+6FAA2B Extract OS            00 (0) 'MS-DOS'\n+6FAA2C General Purpose Flag  0000 (0)\n+6FAA2E Compression Method    0000 (0) 'Stored'\n+6FAA30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAA34 CRC                   00000000 (0)\n+6FAA38 Compressed Size       00000000 (0)\n+6FAA3C Uncompressed Size     00000000 (0)\n+6FAA40 Filename Length       001F (31)\n+6FAA42 Extra Length          0009 (9)\n+6FAA44 Comment Length        0000 (0)\n+6FAA46 Disk Start            0000 (0)\n+6FAA48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAA4A Ext File Attributes   00000000 (0)\n+6FAA4E Local Header Offset   0027826B (2589291)\n+6FAA52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAA52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAA71 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAA73   Length              0005 (5)\n+6FAA75   Flags               01 (1) 'Modification'\n+6FAA76   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAA7A CENTRAL HEADER #835   02014B50 (33639248)\n+6FAA7E Created Zip Spec      14 (20) '2.0'\n+6FAA7F Created OS            00 (0) 'MS-DOS'\n+6FAA80 Extract Zip Spec      14 (20) '2.0'\n+6FAA81 Extract OS            00 (0) 'MS-DOS'\n+6FAA82 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAA84 Compression Method    0000 (0) 'Stored'\n+6FAA86 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAA8A CRC                   EE49CD50 (3997814096)\n+6FAA8E Compressed Size       0000075D (1885)\n+6FAA92 Uncompressed Size     0000075D (1885)\n+6FAA96 Filename Length       002A (42)\n+6FAA98 Extra Length          0009 (9)\n+6FAA9A Comment Length        0000 (0)\n+6FAA9C Disk Start            0000 (0)\n+6FAA9E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAAA0 Ext File Attributes   00000000 (0)\n+6FAAA4 Local Header Offset   002782B1 (2589361)\n+6FAAA8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAAA8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAAD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAAD4   Length              0005 (5)\n+6FAAD6   Flags               01 (1) 'Modification'\n+6FAAD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAADB CENTRAL HEADER #836   02014B50 (33639248)\n+6FAADF Created Zip Spec      14 (20) '2.0'\n+6FAAE0 Created OS            00 (0) 'MS-DOS'\n+6FAAE1 Extract Zip Spec      14 (20) '2.0'\n+6FAAE2 Extract OS            00 (0) 'MS-DOS'\n+6FAAE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAAE5 Compression Method    0000 (0) 'Stored'\n+6FAAE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAAEB CRC                   4C723E93 (1282555539)\n+6FAAEF Compressed Size       00000432 (1074)\n+6FAAF3 Uncompressed Size     00000432 (1074)\n+6FAAF7 Filename Length       0031 (49)\n+6FAAF9 Extra Length          0009 (9)\n+6FAAFB Comment Length        0000 (0)\n+6FAAFD Disk Start            0000 (0)\n+6FAAFF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAB01 Ext File Attributes   00000000 (0)\n+6FAB05 Local Header Offset   00278A6F (2591343)\n+6FAB09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAB09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAB3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAB3C   Length              0005 (5)\n+6FAB3E   Flags               01 (1) 'Modification'\n+6FAB3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAB43 CENTRAL HEADER #837   02014B50 (33639248)\n+6FAB47 Created Zip Spec      14 (20) '2.0'\n+6FAB48 Created OS            00 (0) 'MS-DOS'\n+6FAB49 Extract Zip Spec      14 (20) '2.0'\n+6FAB4A Extract OS            00 (0) 'MS-DOS'\n+6FAB4B General Purpose Flag  0000 (0)\n+6FAB4D Compression Method    0000 (0) 'Stored'\n+6FAB4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAB53 CRC                   00000000 (0)\n+6FAB57 Compressed Size       00000000 (0)\n+6FAB5B Uncompressed Size     00000000 (0)\n+6FAB5F Filename Length       0027 (39)\n+6FAB61 Extra Length          0009 (9)\n+6FAB63 Comment Length        0000 (0)\n+6FAB65 Disk Start            0000 (0)\n+6FAB67 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAB69 Ext File Attributes   00000000 (0)\n+6FAB6D Local Header Offset   00278F09 (2592521)\n+6FAB71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAB71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAB98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAB9A   Length              0005 (5)\n+6FAB9C   Flags               01 (1) 'Modification'\n+6FAB9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FABA1 CENTRAL HEADER #838   02014B50 (33639248)\n+6FABA5 Created Zip Spec      14 (20) '2.0'\n+6FABA6 Created OS            00 (0) 'MS-DOS'\n+6FABA7 Extract Zip Spec      14 (20) '2.0'\n+6FABA8 Extract OS            00 (0) 'MS-DOS'\n+6FABA9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FABAB Compression Method    0000 (0) 'Stored'\n+6FABAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FABB1 CRC                   CD3068DB (3442501851)\n+6FABB5 Compressed Size       000008A7 (2215)\n+6FABB9 Uncompressed Size     000008A7 (2215)\n+6FABBD Filename Length       003D (61)\n+6FABBF Extra Length          0009 (9)\n+6FABC1 Comment Length        0000 (0)\n+6FABC3 Disk Start            0000 (0)\n+6FABC5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FABC7 Ext File Attributes   00000000 (0)\n+6FABCB Local Header Offset   00278F57 (2592599)\n+6FABCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FABCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAC0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAC0E   Length              0005 (5)\n+6FAC10   Flags               01 (1) 'Modification'\n+6FAC11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAC15 CENTRAL HEADER #839   02014B50 (33639248)\n+6FAC19 Created Zip Spec      14 (20) '2.0'\n+6FAC1A Created OS            00 (0) 'MS-DOS'\n+6FAC1B Extract Zip Spec      14 (20) '2.0'\n+6FAC1C Extract OS            00 (0) 'MS-DOS'\n+6FAC1D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAC1F Compression Method    0000 (0) 'Stored'\n+6FAC21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAC25 CRC                   E601D6EE (3858880238)\n+6FAC29 Compressed Size       00000701 (1793)\n+6FAC2D Uncompressed Size     00000701 (1793)\n+6FAC31 Filename Length       003F (63)\n+6FAC33 Extra Length          0009 (9)\n+6FAC35 Comment Length        0000 (0)\n+6FAC37 Disk Start            0000 (0)\n+6FAC39 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAC3B Ext File Attributes   00000000 (0)\n+6FAC3F Local Header Offset   00279872 (2594930)\n+6FAC43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAC43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAC82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAC84   Length              0005 (5)\n+6FAC86   Flags               01 (1) 'Modification'\n+6FAC87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAC8B CENTRAL HEADER #840   02014B50 (33639248)\n+6FAC8F Created Zip Spec      14 (20) '2.0'\n+6FAC90 Created OS            00 (0) 'MS-DOS'\n+6FAC91 Extract Zip Spec      14 (20) '2.0'\n+6FAC92 Extract OS            00 (0) 'MS-DOS'\n+6FAC93 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAC95 Compression Method    0000 (0) 'Stored'\n+6FAC97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAC9B CRC                   577B6C79 (1467706489)\n+6FAC9F Compressed Size       000007D4 (2004)\n+6FACA3 Uncompressed Size     000007D4 (2004)\n+6FACA7 Filename Length       0037 (55)\n+6FACA9 Extra Length          0009 (9)\n+6FACAB Comment Length        0000 (0)\n+6FACAD Disk Start            0000 (0)\n+6FACAF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FACB1 Ext File Attributes   00000000 (0)\n+6FACB5 Local Header Offset   00279FE9 (2596841)\n+6FACB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FACB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FACF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FACF2   Length              0005 (5)\n+6FACF4   Flags               01 (1) 'Modification'\n+6FACF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FACF9 CENTRAL HEADER #841   02014B50 (33639248)\n+6FACFD Created Zip Spec      14 (20) '2.0'\n+6FACFE Created OS            00 (0) 'MS-DOS'\n+6FACFF Extract Zip Spec      14 (20) '2.0'\n+6FAD00 Extract OS            00 (0) 'MS-DOS'\n+6FAD01 General Purpose Flag  0000 (0)\n+6FAD03 Compression Method    0000 (0) 'Stored'\n+6FAD05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAD09 CRC                   00000000 (0)\n+6FAD0D Compressed Size       00000000 (0)\n+6FAD11 Uncompressed Size     00000000 (0)\n+6FAD15 Filename Length       001E (30)\n+6FAD17 Extra Length          0009 (9)\n+6FAD19 Comment Length        0000 (0)\n+6FAD1B Disk Start            0000 (0)\n+6FAD1D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAD1F Ext File Attributes   00000000 (0)\n+6FAD23 Local Header Offset   0027A82B (2598955)\n+6FAD27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAD27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAD45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAD47   Length              0005 (5)\n+6FAD49   Flags               01 (1) 'Modification'\n+6FAD4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAD4E CENTRAL HEADER #842   02014B50 (33639248)\n+6FAD52 Created Zip Spec      14 (20) '2.0'\n+6FAD53 Created OS            00 (0) 'MS-DOS'\n+6FAD54 Extract Zip Spec      14 (20) '2.0'\n+6FAD55 Extract OS            00 (0) 'MS-DOS'\n+6FAD56 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAD58 Compression Method    0000 (0) 'Stored'\n+6FAD5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAD5E CRC                   BF5F9C1E (3210714142)\n+6FAD62 Compressed Size       00000500 (1280)\n+6FAD66 Uncompressed Size     00000500 (1280)\n+6FAD6A Filename Length       002C (44)\n+6FAD6C Extra Length          0009 (9)\n+6FAD6E Comment Length        0000 (0)\n+6FAD70 Disk Start            0000 (0)\n+6FAD72 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAD74 Ext File Attributes   00000000 (0)\n+6FAD78 Local Header Offset   0027A870 (2599024)\n+6FAD7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAD7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FADA8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FADAA   Length              0005 (5)\n+6FADAC   Flags               01 (1) 'Modification'\n+6FADAD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FADB1 CENTRAL HEADER #843   02014B50 (33639248)\n+6FADB5 Created Zip Spec      14 (20) '2.0'\n+6FADB6 Created OS            00 (0) 'MS-DOS'\n+6FADB7 Extract Zip Spec      14 (20) '2.0'\n+6FADB8 Extract OS            00 (0) 'MS-DOS'\n+6FADB9 General Purpose Flag  0000 (0)\n+6FADBB Compression Method    0000 (0) 'Stored'\n+6FADBD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FADC1 CRC                   00000000 (0)\n+6FADC5 Compressed Size       00000000 (0)\n+6FADC9 Uncompressed Size     00000000 (0)\n+6FADCD Filename Length       0026 (38)\n+6FADCF Extra Length          0009 (9)\n+6FADD1 Comment Length        0000 (0)\n+6FADD3 Disk Start            0000 (0)\n+6FADD5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FADD7 Ext File Attributes   00000000 (0)\n+6FADDB Local Header Offset   0027ADD3 (2600403)\n+6FADDF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FADDF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAE05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAE07   Length              0005 (5)\n+6FAE09   Flags               01 (1) 'Modification'\n+6FAE0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAE0E CENTRAL HEADER #844   02014B50 (33639248)\n+6FAE12 Created Zip Spec      14 (20) '2.0'\n+6FAE13 Created OS            00 (0) 'MS-DOS'\n+6FAE14 Extract Zip Spec      14 (20) '2.0'\n+6FAE15 Extract OS            00 (0) 'MS-DOS'\n+6FAE16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAE18 Compression Method    0000 (0) 'Stored'\n+6FAE1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAE1E CRC                   6A2AB119 (1781182745)\n+6FAE22 Compressed Size       00000908 (2312)\n+6FAE26 Uncompressed Size     00000908 (2312)\n+6FAE2A Filename Length       003A (58)\n+6FAE2C Extra Length          0009 (9)\n+6FAE2E Comment Length        0000 (0)\n+6FAE30 Disk Start            0000 (0)\n+6FAE32 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAE34 Ext File Attributes   00000000 (0)\n+6FAE38 Local Header Offset   0027AE20 (2600480)\n+6FAE3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAE3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAE76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAE78   Length              0005 (5)\n+6FAE7A   Flags               01 (1) 'Modification'\n+6FAE7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAE7F CENTRAL HEADER #845   02014B50 (33639248)\n+6FAE83 Created Zip Spec      14 (20) '2.0'\n+6FAE84 Created OS            00 (0) 'MS-DOS'\n+6FAE85 Extract Zip Spec      14 (20) '2.0'\n+6FAE86 Extract OS            00 (0) 'MS-DOS'\n+6FAE87 General Purpose Flag  0000 (0)\n+6FAE89 Compression Method    0000 (0) 'Stored'\n+6FAE8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAE8F CRC                   00000000 (0)\n+6FAE93 Compressed Size       00000000 (0)\n+6FAE97 Uncompressed Size     00000000 (0)\n+6FAE9B Filename Length       0024 (36)\n+6FAE9D Extra Length          0009 (9)\n+6FAE9F Comment Length        0000 (0)\n+6FAEA1 Disk Start            0000 (0)\n+6FAEA3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAEA5 Ext File Attributes   00000000 (0)\n+6FAEA9 Local Header Offset   0027B799 (2602905)\n+6FAEAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAEAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAED1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAED3   Length              0005 (5)\n+6FAED5   Flags               01 (1) 'Modification'\n+6FAED6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAEDA CENTRAL HEADER #846   02014B50 (33639248)\n+6FAEDE Created Zip Spec      14 (20) '2.0'\n+6FAEDF Created OS            00 (0) 'MS-DOS'\n+6FAEE0 Extract Zip Spec      14 (20) '2.0'\n+6FAEE1 Extract OS            00 (0) 'MS-DOS'\n+6FAEE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAEE4 Compression Method    0000 (0) 'Stored'\n+6FAEE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAEEA CRC                   19AC3747 (430716743)\n+6FAEEE Compressed Size       0000076E (1902)\n+6FAEF2 Uncompressed Size     0000076E (1902)\n+6FAEF6 Filename Length       0039 (57)\n+6FAEF8 Extra Length          0009 (9)\n+6FAEFA Comment Length        0000 (0)\n+6FAEFC Disk Start            0000 (0)\n+6FAEFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAF00 Ext File Attributes   00000000 (0)\n+6FAF04 Local Header Offset   0027B7E4 (2602980)\n+6FAF08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAF08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAF41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAF43   Length              0005 (5)\n+6FAF45   Flags               01 (1) 'Modification'\n+6FAF46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAF4A CENTRAL HEADER #847   02014B50 (33639248)\n+6FAF4E Created Zip Spec      14 (20) '2.0'\n+6FAF4F Created OS            00 (0) 'MS-DOS'\n+6FAF50 Extract Zip Spec      14 (20) '2.0'\n+6FAF51 Extract OS            00 (0) 'MS-DOS'\n+6FAF52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAF54 Compression Method    0000 (0) 'Stored'\n+6FAF56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAF5A CRC                   DFEE0135 (3756917045)\n+6FAF5E Compressed Size       0000098D (2445)\n+6FAF62 Uncompressed Size     0000098D (2445)\n+6FAF66 Filename Length       0037 (55)\n+6FAF68 Extra Length          0009 (9)\n+6FAF6A Comment Length        0000 (0)\n+6FAF6C Disk Start            0000 (0)\n+6FAF6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAF70 Ext File Attributes   00000000 (0)\n+6FAF74 Local Header Offset   0027BFC2 (2604994)\n+6FAF78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAF78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FAFAF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FAFB1   Length              0005 (5)\n+6FAFB3   Flags               01 (1) 'Modification'\n+6FAFB4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FAFB8 CENTRAL HEADER #848   02014B50 (33639248)\n+6FAFBC Created Zip Spec      14 (20) '2.0'\n+6FAFBD Created OS            00 (0) 'MS-DOS'\n+6FAFBE Extract Zip Spec      14 (20) '2.0'\n+6FAFBF Extract OS            00 (0) 'MS-DOS'\n+6FAFC0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FAFC2 Compression Method    0000 (0) 'Stored'\n+6FAFC4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FAFC8 CRC                   E4E72DDD (3840355805)\n+6FAFCC Compressed Size       00001BBE (7102)\n+6FAFD0 Uncompressed Size     00001BBE (7102)\n+6FAFD4 Filename Length       003C (60)\n+6FAFD6 Extra Length          0009 (9)\n+6FAFD8 Comment Length        0000 (0)\n+6FAFDA Disk Start            0000 (0)\n+6FAFDC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FAFDE Ext File Attributes   00000000 (0)\n+6FAFE2 Local Header Offset   0027C9BD (2607549)\n+6FAFE6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FAFE6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB022 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB024   Length              0005 (5)\n+6FB026   Flags               01 (1) 'Modification'\n+6FB027   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB02B CENTRAL HEADER #849   02014B50 (33639248)\n+6FB02F Created Zip Spec      14 (20) '2.0'\n+6FB030 Created OS            00 (0) 'MS-DOS'\n+6FB031 Extract Zip Spec      14 (20) '2.0'\n+6FB032 Extract OS            00 (0) 'MS-DOS'\n+6FB033 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB035 Compression Method    0000 (0) 'Stored'\n+6FB037 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB03B CRC                   5E80C56B (1585497451)\n+6FB03F Compressed Size       000015FF (5631)\n+6FB043 Uncompressed Size     000015FF (5631)\n+6FB047 Filename Length       003F (63)\n+6FB049 Extra Length          0009 (9)\n+6FB04B Comment Length        0000 (0)\n+6FB04D Disk Start            0000 (0)\n+6FB04F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB051 Ext File Attributes   00000000 (0)\n+6FB055 Local Header Offset   0027E5EE (2614766)\n+6FB059 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB059: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB098 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB09A   Length              0005 (5)\n+6FB09C   Flags               01 (1) 'Modification'\n+6FB09D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB0A1 CENTRAL HEADER #850   02014B50 (33639248)\n+6FB0A5 Created Zip Spec      14 (20) '2.0'\n+6FB0A6 Created OS            00 (0) 'MS-DOS'\n+6FB0A7 Extract Zip Spec      14 (20) '2.0'\n+6FB0A8 Extract OS            00 (0) 'MS-DOS'\n+6FB0A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB0AB Compression Method    0000 (0) 'Stored'\n+6FB0AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB0B1 CRC                   D1666DFC (3513150972)\n+6FB0B5 Compressed Size       0000068D (1677)\n+6FB0B9 Uncompressed Size     0000068D (1677)\n+6FB0BD Filename Length       0043 (67)\n+6FB0BF Extra Length          0009 (9)\n+6FB0C1 Comment Length        0000 (0)\n+6FB0C3 Disk Start            0000 (0)\n+6FB0C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB0C7 Ext File Attributes   00000000 (0)\n+6FB0CB Local Header Offset   0027FC63 (2620515)\n+6FB0CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB0CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB112 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB114   Length              0005 (5)\n+6FB116   Flags               01 (1) 'Modification'\n+6FB117   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB11B CENTRAL HEADER #851   02014B50 (33639248)\n+6FB11F Created Zip Spec      14 (20) '2.0'\n+6FB120 Created OS            00 (0) 'MS-DOS'\n+6FB121 Extract Zip Spec      14 (20) '2.0'\n+6FB122 Extract OS            00 (0) 'MS-DOS'\n+6FB123 General Purpose Flag  0000 (0)\n+6FB125 Compression Method    0000 (0) 'Stored'\n+6FB127 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB12B CRC                   00000000 (0)\n+6FB12F Compressed Size       00000000 (0)\n+6FB133 Uncompressed Size     00000000 (0)\n+6FB137 Filename Length       0023 (35)\n+6FB139 Extra Length          0009 (9)\n+6FB13B Comment Length        0000 (0)\n+6FB13D Disk Start            0000 (0)\n+6FB13F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB141 Ext File Attributes   00000000 (0)\n+6FB145 Local Header Offset   0028036A (2622314)\n+6FB149 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB149: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB16C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB16E   Length              0005 (5)\n+6FB170   Flags               01 (1) 'Modification'\n+6FB171   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB175 CENTRAL HEADER #852   02014B50 (33639248)\n+6FB179 Created Zip Spec      14 (20) '2.0'\n+6FB17A Created OS            00 (0) 'MS-DOS'\n+6FB17B Extract Zip Spec      14 (20) '2.0'\n+6FB17C Extract OS            00 (0) 'MS-DOS'\n+6FB17D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB17F Compression Method    0000 (0) 'Stored'\n+6FB181 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB185 CRC                   25E239BD (635582909)\n+6FB189 Compressed Size       00000575 (1397)\n+6FB18D Uncompressed Size     00000575 (1397)\n+6FB191 Filename Length       0032 (50)\n+6FB193 Extra Length          0009 (9)\n+6FB195 Comment Length        0000 (0)\n+6FB197 Disk Start            0000 (0)\n+6FB199 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB19B Ext File Attributes   00000000 (0)\n+6FB19F Local Header Offset   002803B4 (2622388)\n+6FB1A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB1A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB1D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB1D7   Length              0005 (5)\n+6FB1D9   Flags               01 (1) 'Modification'\n+6FB1DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB1DE CENTRAL HEADER #853   02014B50 (33639248)\n+6FB1E2 Created Zip Spec      14 (20) '2.0'\n+6FB1E3 Created OS            00 (0) 'MS-DOS'\n+6FB1E4 Extract Zip Spec      14 (20) '2.0'\n+6FB1E5 Extract OS            00 (0) 'MS-DOS'\n+6FB1E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB1E8 Compression Method    0000 (0) 'Stored'\n+6FB1EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB1EE CRC                   6E8E196C (1854806380)\n+6FB1F2 Compressed Size       00001B5F (7007)\n+6FB1F6 Uncompressed Size     00001B5F (7007)\n+6FB1FA Filename Length       003A (58)\n+6FB1FC Extra Length          0009 (9)\n+6FB1FE Comment Length        0000 (0)\n+6FB200 Disk Start            0000 (0)\n+6FB202 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB204 Ext File Attributes   00000000 (0)\n+6FB208 Local Header Offset   00280992 (2623890)\n+6FB20C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB20C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB248   Length              0005 (5)\n+6FB24A   Flags               01 (1) 'Modification'\n+6FB24B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB24F CENTRAL HEADER #854   02014B50 (33639248)\n+6FB253 Created Zip Spec      14 (20) '2.0'\n+6FB254 Created OS            00 (0) 'MS-DOS'\n+6FB255 Extract Zip Spec      14 (20) '2.0'\n+6FB256 Extract OS            00 (0) 'MS-DOS'\n+6FB257 General Purpose Flag  0000 (0)\n+6FB259 Compression Method    0000 (0) 'Stored'\n+6FB25B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB25F CRC                   00000000 (0)\n+6FB263 Compressed Size       00000000 (0)\n+6FB267 Uncompressed Size     00000000 (0)\n+6FB26B Filename Length       002E (46)\n+6FB26D Extra Length          0009 (9)\n+6FB26F Comment Length        0000 (0)\n+6FB271 Disk Start            0000 (0)\n+6FB273 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB275 Ext File Attributes   00000000 (0)\n+6FB279 Local Header Offset   00282562 (2631010)\n+6FB27D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB27D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB2AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB2AD   Length              0005 (5)\n+6FB2AF   Flags               01 (1) 'Modification'\n+6FB2B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB2B4 CENTRAL HEADER #855   02014B50 (33639248)\n+6FB2B8 Created Zip Spec      14 (20) '2.0'\n+6FB2B9 Created OS            00 (0) 'MS-DOS'\n+6FB2BA Extract Zip Spec      14 (20) '2.0'\n+6FB2BB Extract OS            00 (0) 'MS-DOS'\n+6FB2BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB2BE Compression Method    0000 (0) 'Stored'\n+6FB2C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB2C4 CRC                   4F941D99 (1335106969)\n+6FB2C8 Compressed Size       0000094D (2381)\n+6FB2CC Uncompressed Size     0000094D (2381)\n+6FB2D0 Filename Length       004D (77)\n+6FB2D2 Extra Length          0009 (9)\n+6FB2D4 Comment Length        0000 (0)\n+6FB2D6 Disk Start            0000 (0)\n+6FB2D8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB2DA Ext File Attributes   00000000 (0)\n+6FB2DE Local Header Offset   002825B7 (2631095)\n+6FB2E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB2E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB32F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB331   Length              0005 (5)\n+6FB333   Flags               01 (1) 'Modification'\n+6FB334   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB338 CENTRAL HEADER #856   02014B50 (33639248)\n+6FB33C Created Zip Spec      14 (20) '2.0'\n+6FB33D Created OS            00 (0) 'MS-DOS'\n+6FB33E Extract Zip Spec      14 (20) '2.0'\n+6FB33F Extract OS            00 (0) 'MS-DOS'\n+6FB340 General Purpose Flag  0000 (0)\n+6FB342 Compression Method    0000 (0) 'Stored'\n+6FB344 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB348 CRC                   00000000 (0)\n+6FB34C Compressed Size       00000000 (0)\n+6FB350 Uncompressed Size     00000000 (0)\n+6FB354 Filename Length       0029 (41)\n+6FB356 Extra Length          0009 (9)\n+6FB358 Comment Length        0000 (0)\n+6FB35A Disk Start            0000 (0)\n+6FB35C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB35E Ext File Attributes   00000000 (0)\n+6FB362 Local Header Offset   00282F88 (2633608)\n+6FB366 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB366: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB38F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB391   Length              0005 (5)\n+6FB393   Flags               01 (1) 'Modification'\n+6FB394   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB398 CENTRAL HEADER #857   02014B50 (33639248)\n+6FB39C Created Zip Spec      14 (20) '2.0'\n+6FB39D Created OS            00 (0) 'MS-DOS'\n+6FB39E Extract Zip Spec      14 (20) '2.0'\n+6FB39F Extract OS            00 (0) 'MS-DOS'\n+6FB3A0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB3A2 Compression Method    0000 (0) 'Stored'\n+6FB3A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB3A8 CRC                   9F5D6B51 (2673699665)\n+6FB3AC Compressed Size       00000501 (1281)\n+6FB3B0 Uncompressed Size     00000501 (1281)\n+6FB3B4 Filename Length       0046 (70)\n+6FB3B6 Extra Length          0009 (9)\n+6FB3B8 Comment Length        0000 (0)\n+6FB3BA Disk Start            0000 (0)\n+6FB3BC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB3BE Ext File Attributes   00000000 (0)\n+6FB3C2 Local Header Offset   00282FD8 (2633688)\n+6FB3C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB3C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB40C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB40E   Length              0005 (5)\n+6FB410   Flags               01 (1) 'Modification'\n+6FB411   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB415 CENTRAL HEADER #858   02014B50 (33639248)\n+6FB419 Created Zip Spec      14 (20) '2.0'\n+6FB41A Created OS            00 (0) 'MS-DOS'\n+6FB41B Extract Zip Spec      14 (20) '2.0'\n+6FB41C Extract OS            00 (0) 'MS-DOS'\n+6FB41D General Purpose Flag  0000 (0)\n+6FB41F Compression Method    0000 (0) 'Stored'\n+6FB421 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB425 CRC                   00000000 (0)\n+6FB429 Compressed Size       00000000 (0)\n+6FB42D Uncompressed Size     00000000 (0)\n+6FB431 Filename Length       002B (43)\n+6FB433 Extra Length          0009 (9)\n+6FB435 Comment Length        0000 (0)\n+6FB437 Disk Start            0000 (0)\n+6FB439 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB43B Ext File Attributes   00000000 (0)\n+6FB43F Local Header Offset   00283556 (2635094)\n+6FB443 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB443: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB46E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB470   Length              0005 (5)\n+6FB472   Flags               01 (1) 'Modification'\n+6FB473   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB477 CENTRAL HEADER #859   02014B50 (33639248)\n+6FB47B Created Zip Spec      14 (20) '2.0'\n+6FB47C Created OS            00 (0) 'MS-DOS'\n+6FB47D Extract Zip Spec      14 (20) '2.0'\n+6FB47E Extract OS            00 (0) 'MS-DOS'\n+6FB47F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB481 Compression Method    0000 (0) 'Stored'\n+6FB483 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB487 CRC                   C15BEF93 (3244027795)\n+6FB48B Compressed Size       00001EDF (7903)\n+6FB48F Uncompressed Size     00001EDF (7903)\n+6FB493 Filename Length       0049 (73)\n+6FB495 Extra Length          0009 (9)\n+6FB497 Comment Length        0000 (0)\n+6FB499 Disk Start            0000 (0)\n+6FB49B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB49D Ext File Attributes   00000000 (0)\n+6FB4A1 Local Header Offset   002835A8 (2635176)\n+6FB4A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB4A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB4EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB4F0   Length              0005 (5)\n+6FB4F2   Flags               01 (1) 'Modification'\n+6FB4F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB4F7 CENTRAL HEADER #860   02014B50 (33639248)\n+6FB4FB Created Zip Spec      14 (20) '2.0'\n+6FB4FC Created OS            00 (0) 'MS-DOS'\n+6FB4FD Extract Zip Spec      14 (20) '2.0'\n+6FB4FE Extract OS            00 (0) 'MS-DOS'\n+6FB4FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB501 Compression Method    0000 (0) 'Stored'\n+6FB503 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB507 CRC                   EF70124F (4017099343)\n+6FB50B Compressed Size       00000960 (2400)\n+6FB50F Uncompressed Size     00000960 (2400)\n+6FB513 Filename Length       0042 (66)\n+6FB515 Extra Length          0009 (9)\n+6FB517 Comment Length        0000 (0)\n+6FB519 Disk Start            0000 (0)\n+6FB51B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB51D Ext File Attributes   00000000 (0)\n+6FB521 Local Header Offset   00285507 (2643207)\n+6FB525 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB525: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB567 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB569   Length              0005 (5)\n+6FB56B   Flags               01 (1) 'Modification'\n+6FB56C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB570 CENTRAL HEADER #861   02014B50 (33639248)\n+6FB574 Created Zip Spec      14 (20) '2.0'\n+6FB575 Created OS            00 (0) 'MS-DOS'\n+6FB576 Extract Zip Spec      14 (20) '2.0'\n+6FB577 Extract OS            00 (0) 'MS-DOS'\n+6FB578 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB57A Compression Method    0000 (0) 'Stored'\n+6FB57C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB580 CRC                   B2FA49D8 (3002747352)\n+6FB584 Compressed Size       0000083C (2108)\n+6FB588 Uncompressed Size     0000083C (2108)\n+6FB58C Filename Length       0034 (52)\n+6FB58E Extra Length          0009 (9)\n+6FB590 Comment Length        0000 (0)\n+6FB592 Disk Start            0000 (0)\n+6FB594 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB596 Ext File Attributes   00000000 (0)\n+6FB59A Local Header Offset   00285EE0 (2645728)\n+6FB59E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB59E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB5D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB5D4   Length              0005 (5)\n+6FB5D6   Flags               01 (1) 'Modification'\n+6FB5D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB5DB CENTRAL HEADER #862   02014B50 (33639248)\n+6FB5DF Created Zip Spec      14 (20) '2.0'\n+6FB5E0 Created OS            00 (0) 'MS-DOS'\n+6FB5E1 Extract Zip Spec      14 (20) '2.0'\n+6FB5E2 Extract OS            00 (0) 'MS-DOS'\n+6FB5E3 General Purpose Flag  0000 (0)\n+6FB5E5 Compression Method    0000 (0) 'Stored'\n+6FB5E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB5EB CRC                   00000000 (0)\n+6FB5EF Compressed Size       00000000 (0)\n+6FB5F3 Uncompressed Size     00000000 (0)\n+6FB5F7 Filename Length       002B (43)\n+6FB5F9 Extra Length          0009 (9)\n+6FB5FB Comment Length        0000 (0)\n+6FB5FD Disk Start            0000 (0)\n+6FB5FF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB601 Ext File Attributes   00000000 (0)\n+6FB605 Local Header Offset   00286787 (2647943)\n+6FB609 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB609: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB634 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB636   Length              0005 (5)\n+6FB638   Flags               01 (1) 'Modification'\n+6FB639   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB63D CENTRAL HEADER #863   02014B50 (33639248)\n+6FB641 Created Zip Spec      14 (20) '2.0'\n+6FB642 Created OS            00 (0) 'MS-DOS'\n+6FB643 Extract Zip Spec      14 (20) '2.0'\n+6FB644 Extract OS            00 (0) 'MS-DOS'\n+6FB645 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB647 Compression Method    0000 (0) 'Stored'\n+6FB649 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB64D CRC                   A9E4FF87 (2850357127)\n+6FB651 Compressed Size       00001767 (5991)\n+6FB655 Uncompressed Size     00001767 (5991)\n+6FB659 Filename Length       0045 (69)\n+6FB65B Extra Length          0009 (9)\n+6FB65D Comment Length        0000 (0)\n+6FB65F Disk Start            0000 (0)\n+6FB661 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB663 Ext File Attributes   00000000 (0)\n+6FB667 Local Header Offset   002867D9 (2648025)\n+6FB66B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB66B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB6B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB6B2   Length              0005 (5)\n+6FB6B4   Flags               01 (1) 'Modification'\n+6FB6B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB6B9 CENTRAL HEADER #864   02014B50 (33639248)\n+6FB6BD Created Zip Spec      14 (20) '2.0'\n+6FB6BE Created OS            00 (0) 'MS-DOS'\n+6FB6BF Extract Zip Spec      14 (20) '2.0'\n+6FB6C0 Extract OS            00 (0) 'MS-DOS'\n+6FB6C1 General Purpose Flag  0000 (0)\n+6FB6C3 Compression Method    0000 (0) 'Stored'\n+6FB6C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB6C9 CRC                   00000000 (0)\n+6FB6CD Compressed Size       00000000 (0)\n+6FB6D1 Uncompressed Size     00000000 (0)\n+6FB6D5 Filename Length       0032 (50)\n+6FB6D7 Extra Length          0009 (9)\n+6FB6D9 Comment Length        0000 (0)\n+6FB6DB Disk Start            0000 (0)\n+6FB6DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB6DF Ext File Attributes   00000000 (0)\n+6FB6E3 Local Header Offset   00287FBC (2654140)\n+6FB6E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB6E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB719 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB71B   Length              0005 (5)\n+6FB71D   Flags               01 (1) 'Modification'\n+6FB71E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB722 CENTRAL HEADER #865   02014B50 (33639248)\n+6FB726 Created Zip Spec      14 (20) '2.0'\n+6FB727 Created OS            00 (0) 'MS-DOS'\n+6FB728 Extract Zip Spec      14 (20) '2.0'\n+6FB729 Extract OS            00 (0) 'MS-DOS'\n+6FB72A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB72C Compression Method    0000 (0) 'Stored'\n+6FB72E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB732 CRC                   7C2CDC15 (2083314709)\n+6FB736 Compressed Size       00000C7D (3197)\n+6FB73A Uncompressed Size     00000C7D (3197)\n+6FB73E Filename Length       0047 (71)\n+6FB740 Extra Length          0009 (9)\n+6FB742 Comment Length        0000 (0)\n+6FB744 Disk Start            0000 (0)\n+6FB746 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB748 Ext File Attributes   00000000 (0)\n+6FB74C Local Header Offset   00288015 (2654229)\n+6FB750 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB750: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB797 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB799   Length              0005 (5)\n+6FB79B   Flags               01 (1) 'Modification'\n+6FB79C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB7A0 CENTRAL HEADER #866   02014B50 (33639248)\n+6FB7A4 Created Zip Spec      14 (20) '2.0'\n+6FB7A5 Created OS            00 (0) 'MS-DOS'\n+6FB7A6 Extract Zip Spec      14 (20) '2.0'\n+6FB7A7 Extract OS            00 (0) 'MS-DOS'\n+6FB7A8 General Purpose Flag  0000 (0)\n+6FB7AA Compression Method    0000 (0) 'Stored'\n+6FB7AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB7B0 CRC                   00000000 (0)\n+6FB7B4 Compressed Size       00000000 (0)\n+6FB7B8 Uncompressed Size     00000000 (0)\n+6FB7BC Filename Length       0031 (49)\n+6FB7BE Extra Length          0009 (9)\n+6FB7C0 Comment Length        0000 (0)\n+6FB7C2 Disk Start            0000 (0)\n+6FB7C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB7C6 Ext File Attributes   00000000 (0)\n+6FB7CA Local Header Offset   00288D10 (2657552)\n+6FB7CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB7CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB7FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB801   Length              0005 (5)\n+6FB803   Flags               01 (1) 'Modification'\n+6FB804   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB808 CENTRAL HEADER #867   02014B50 (33639248)\n+6FB80C Created Zip Spec      14 (20) '2.0'\n+6FB80D Created OS            00 (0) 'MS-DOS'\n+6FB80E Extract Zip Spec      14 (20) '2.0'\n+6FB80F Extract OS            00 (0) 'MS-DOS'\n+6FB810 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB812 Compression Method    0000 (0) 'Stored'\n+6FB814 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB818 CRC                   C7D99F04 (3352928004)\n+6FB81C Compressed Size       00000C02 (3074)\n+6FB820 Uncompressed Size     00000C02 (3074)\n+6FB824 Filename Length       0045 (69)\n+6FB826 Extra Length          0009 (9)\n+6FB828 Comment Length        0000 (0)\n+6FB82A Disk Start            0000 (0)\n+6FB82C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB82E Ext File Attributes   00000000 (0)\n+6FB832 Local Header Offset   00288D68 (2657640)\n+6FB836 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB836: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB87B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB87D   Length              0005 (5)\n+6FB87F   Flags               01 (1) 'Modification'\n+6FB880   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB884 CENTRAL HEADER #868   02014B50 (33639248)\n+6FB888 Created Zip Spec      14 (20) '2.0'\n+6FB889 Created OS            00 (0) 'MS-DOS'\n+6FB88A Extract Zip Spec      14 (20) '2.0'\n+6FB88B Extract OS            00 (0) 'MS-DOS'\n+6FB88C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB88E Compression Method    0000 (0) 'Stored'\n+6FB890 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB894 CRC                   B7E8049A (3085436058)\n+6FB898 Compressed Size       00000CBE (3262)\n+6FB89C Uncompressed Size     00000CBE (3262)\n+6FB8A0 Filename Length       004D (77)\n+6FB8A2 Extra Length          0009 (9)\n+6FB8A4 Comment Length        0000 (0)\n+6FB8A6 Disk Start            0000 (0)\n+6FB8A8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB8AA Ext File Attributes   00000000 (0)\n+6FB8AE Local Header Offset   002899E6 (2660838)\n+6FB8B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB8B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB8FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB901   Length              0005 (5)\n+6FB903   Flags               01 (1) 'Modification'\n+6FB904   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB908 CENTRAL HEADER #869   02014B50 (33639248)\n+6FB90C Created Zip Spec      14 (20) '2.0'\n+6FB90D Created OS            00 (0) 'MS-DOS'\n+6FB90E Extract Zip Spec      14 (20) '2.0'\n+6FB90F Extract OS            00 (0) 'MS-DOS'\n+6FB910 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB912 Compression Method    0000 (0) 'Stored'\n+6FB914 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB918 CRC                   365FEBC7 (912255943)\n+6FB91C Compressed Size       00000B87 (2951)\n+6FB920 Uncompressed Size     00000B87 (2951)\n+6FB924 Filename Length       003F (63)\n+6FB926 Extra Length          0009 (9)\n+6FB928 Comment Length        0000 (0)\n+6FB92A Disk Start            0000 (0)\n+6FB92C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB92E Ext File Attributes   00000000 (0)\n+6FB932 Local Header Offset   0028A728 (2664232)\n+6FB936 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB936: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB975 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB977   Length              0005 (5)\n+6FB979   Flags               01 (1) 'Modification'\n+6FB97A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB97E CENTRAL HEADER #870   02014B50 (33639248)\n+6FB982 Created Zip Spec      14 (20) '2.0'\n+6FB983 Created OS            00 (0) 'MS-DOS'\n+6FB984 Extract Zip Spec      14 (20) '2.0'\n+6FB985 Extract OS            00 (0) 'MS-DOS'\n+6FB986 General Purpose Flag  0000 (0)\n+6FB988 Compression Method    0000 (0) 'Stored'\n+6FB98A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB98E CRC                   00000000 (0)\n+6FB992 Compressed Size       00000000 (0)\n+6FB996 Uncompressed Size     00000000 (0)\n+6FB99A Filename Length       0031 (49)\n+6FB99C Extra Length          0009 (9)\n+6FB99E Comment Length        0000 (0)\n+6FB9A0 Disk Start            0000 (0)\n+6FB9A2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FB9A4 Ext File Attributes   00000000 (0)\n+6FB9A8 Local Header Offset   0028B325 (2667301)\n+6FB9AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FB9AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FB9DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FB9DF   Length              0005 (5)\n+6FB9E1   Flags               01 (1) 'Modification'\n+6FB9E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FB9E6 CENTRAL HEADER #871   02014B50 (33639248)\n+6FB9EA Created Zip Spec      14 (20) '2.0'\n+6FB9EB Created OS            00 (0) 'MS-DOS'\n+6FB9EC Extract Zip Spec      14 (20) '2.0'\n+6FB9ED Extract OS            00 (0) 'MS-DOS'\n+6FB9EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FB9F0 Compression Method    0000 (0) 'Stored'\n+6FB9F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FB9F6 CRC                   3EDDC0EF (1054720239)\n+6FB9FA Compressed Size       00000AA3 (2723)\n+6FB9FE Uncompressed Size     00000AA3 (2723)\n+6FBA02 Filename Length       0045 (69)\n+6FBA04 Extra Length          0009 (9)\n+6FBA06 Comment Length        0000 (0)\n+6FBA08 Disk Start            0000 (0)\n+6FBA0A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBA0C Ext File Attributes   00000000 (0)\n+6FBA10 Local Header Offset   0028B37D (2667389)\n+6FBA14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBA14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBA59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBA5B   Length              0005 (5)\n+6FBA5D   Flags               01 (1) 'Modification'\n+6FBA5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBA62 CENTRAL HEADER #872   02014B50 (33639248)\n+6FBA66 Created Zip Spec      14 (20) '2.0'\n+6FBA67 Created OS            00 (0) 'MS-DOS'\n+6FBA68 Extract Zip Spec      14 (20) '2.0'\n+6FBA69 Extract OS            00 (0) 'MS-DOS'\n+6FBA6A General Purpose Flag  0000 (0)\n+6FBA6C Compression Method    0000 (0) 'Stored'\n+6FBA6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBA72 CRC                   00000000 (0)\n+6FBA76 Compressed Size       00000000 (0)\n+6FBA7A Uncompressed Size     00000000 (0)\n+6FBA7E Filename Length       0033 (51)\n+6FBA80 Extra Length          0009 (9)\n+6FBA82 Comment Length        0000 (0)\n+6FBA84 Disk Start            0000 (0)\n+6FBA86 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBA88 Ext File Attributes   00000000 (0)\n+6FBA8C Local Header Offset   0028BE9C (2670236)\n+6FBA90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBA90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBAC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBAC5   Length              0005 (5)\n+6FBAC7   Flags               01 (1) 'Modification'\n+6FBAC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBACC CENTRAL HEADER #873   02014B50 (33639248)\n+6FBAD0 Created Zip Spec      14 (20) '2.0'\n+6FBAD1 Created OS            00 (0) 'MS-DOS'\n+6FBAD2 Extract Zip Spec      14 (20) '2.0'\n+6FBAD3 Extract OS            00 (0) 'MS-DOS'\n+6FBAD4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBAD6 Compression Method    0000 (0) 'Stored'\n+6FBAD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBADC CRC                   9B40567E (2604684926)\n+6FBAE0 Compressed Size       00000BB0 (2992)\n+6FBAE4 Uncompressed Size     00000BB0 (2992)\n+6FBAE8 Filename Length       0049 (73)\n+6FBAEA Extra Length          0009 (9)\n+6FBAEC Comment Length        0000 (0)\n+6FBAEE Disk Start            0000 (0)\n+6FBAF0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBAF2 Ext File Attributes   00000000 (0)\n+6FBAF6 Local Header Offset   0028BEF6 (2670326)\n+6FBAFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBAFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBB43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBB45   Length              0005 (5)\n+6FBB47   Flags               01 (1) 'Modification'\n+6FBB48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBB4C CENTRAL HEADER #874   02014B50 (33639248)\n+6FBB50 Created Zip Spec      14 (20) '2.0'\n+6FBB51 Created OS            00 (0) 'MS-DOS'\n+6FBB52 Extract Zip Spec      14 (20) '2.0'\n+6FBB53 Extract OS            00 (0) 'MS-DOS'\n+6FBB54 General Purpose Flag  0000 (0)\n+6FBB56 Compression Method    0000 (0) 'Stored'\n+6FBB58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBB5C CRC                   00000000 (0)\n+6FBB60 Compressed Size       00000000 (0)\n+6FBB64 Uncompressed Size     00000000 (0)\n+6FBB68 Filename Length       001E (30)\n+6FBB6A Extra Length          0009 (9)\n+6FBB6C Comment Length        0000 (0)\n+6FBB6E Disk Start            0000 (0)\n+6FBB70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBB72 Ext File Attributes   00000000 (0)\n+6FBB76 Local Header Offset   0028CB26 (2673446)\n+6FBB7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBB7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBB98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBB9A   Length              0005 (5)\n+6FBB9C   Flags               01 (1) 'Modification'\n+6FBB9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBBA1 CENTRAL HEADER #875   02014B50 (33639248)\n+6FBBA5 Created Zip Spec      14 (20) '2.0'\n+6FBBA6 Created OS            00 (0) 'MS-DOS'\n+6FBBA7 Extract Zip Spec      14 (20) '2.0'\n+6FBBA8 Extract OS            00 (0) 'MS-DOS'\n+6FBBA9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBBAB Compression Method    0000 (0) 'Stored'\n+6FBBAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBBB1 CRC                   6BA20F13 (1805782803)\n+6FBBB5 Compressed Size       00007CE7 (31975)\n+6FBBB9 Uncompressed Size     00007CE7 (31975)\n+6FBBBD Filename Length       0033 (51)\n+6FBBBF Extra Length          0009 (9)\n+6FBBC1 Comment Length        0000 (0)\n+6FBBC3 Disk Start            0000 (0)\n+6FBBC5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBBC7 Ext File Attributes   00000000 (0)\n+6FBBCB Local Header Offset   0028CB6B (2673515)\n+6FBBCF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBBCF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBC02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBC04   Length              0005 (5)\n+6FBC06   Flags               01 (1) 'Modification'\n+6FBC07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBC0B CENTRAL HEADER #876   02014B50 (33639248)\n+6FBC0F Created Zip Spec      14 (20) '2.0'\n+6FBC10 Created OS            00 (0) 'MS-DOS'\n+6FBC11 Extract Zip Spec      14 (20) '2.0'\n+6FBC12 Extract OS            00 (0) 'MS-DOS'\n+6FBC13 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBC15 Compression Method    0000 (0) 'Stored'\n+6FBC17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBC1B CRC                   896B8386 (2305524614)\n+6FBC1F Compressed Size       0000069C (1692)\n+6FBC23 Uncompressed Size     0000069C (1692)\n+6FBC27 Filename Length       002A (42)\n+6FBC29 Extra Length          0009 (9)\n+6FBC2B Comment Length        0000 (0)\n+6FBC2D Disk Start            0000 (0)\n+6FBC2F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBC31 Ext File Attributes   00000000 (0)\n+6FBC35 Local Header Offset   002948BC (2705596)\n+6FBC39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBC39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBC63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBC65   Length              0005 (5)\n+6FBC67   Flags               01 (1) 'Modification'\n+6FBC68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBC6C CENTRAL HEADER #877   02014B50 (33639248)\n+6FBC70 Created Zip Spec      14 (20) '2.0'\n+6FBC71 Created OS            00 (0) 'MS-DOS'\n+6FBC72 Extract Zip Spec      14 (20) '2.0'\n+6FBC73 Extract OS            00 (0) 'MS-DOS'\n+6FBC74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBC76 Compression Method    0000 (0) 'Stored'\n+6FBC78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBC7C CRC                   2D8D7FE9 (764248041)\n+6FBC80 Compressed Size       00000769 (1897)\n+6FBC84 Uncompressed Size     00000769 (1897)\n+6FBC88 Filename Length       0028 (40)\n+6FBC8A Extra Length          0009 (9)\n+6FBC8C Comment Length        0000 (0)\n+6FBC8E Disk Start            0000 (0)\n+6FBC90 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBC92 Ext File Attributes   00000000 (0)\n+6FBC96 Local Header Offset   00294FB9 (2707385)\n+6FBC9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBC9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBCC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBCC4   Length              0005 (5)\n+6FBCC6   Flags               01 (1) 'Modification'\n+6FBCC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBCCB CENTRAL HEADER #878   02014B50 (33639248)\n+6FBCCF Created Zip Spec      14 (20) '2.0'\n+6FBCD0 Created OS            00 (0) 'MS-DOS'\n+6FBCD1 Extract Zip Spec      14 (20) '2.0'\n+6FBCD2 Extract OS            00 (0) 'MS-DOS'\n+6FBCD3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBCD5 Compression Method    0000 (0) 'Stored'\n+6FBCD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBCDB CRC                   E9761FB8 (3916832696)\n+6FBCDF Compressed Size       00000497 (1175)\n+6FBCE3 Uncompressed Size     00000497 (1175)\n+6FBCE7 Filename Length       002C (44)\n+6FBCE9 Extra Length          0009 (9)\n+6FBCEB Comment Length        0000 (0)\n+6FBCED Disk Start            0000 (0)\n+6FBCEF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBCF1 Ext File Attributes   00000000 (0)\n+6FBCF5 Local Header Offset   00295781 (2709377)\n+6FBCF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBCF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBD25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBD27   Length              0005 (5)\n+6FBD29   Flags               01 (1) 'Modification'\n+6FBD2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBD2E CENTRAL HEADER #879   02014B50 (33639248)\n+6FBD32 Created Zip Spec      14 (20) '2.0'\n+6FBD33 Created OS            00 (0) 'MS-DOS'\n+6FBD34 Extract Zip Spec      14 (20) '2.0'\n+6FBD35 Extract OS            00 (0) 'MS-DOS'\n+6FBD36 General Purpose Flag  0000 (0)\n+6FBD38 Compression Method    0000 (0) 'Stored'\n+6FBD3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBD3E CRC                   00000000 (0)\n+6FBD42 Compressed Size       00000000 (0)\n+6FBD46 Uncompressed Size     00000000 (0)\n+6FBD4A Filename Length       001E (30)\n+6FBD4C Extra Length          0009 (9)\n+6FBD4E Comment Length        0000 (0)\n+6FBD50 Disk Start            0000 (0)\n+6FBD52 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBD54 Ext File Attributes   00000000 (0)\n+6FBD58 Local Header Offset   00295C7B (2710651)\n+6FBD5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBD5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBD7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBD7C   Length              0005 (5)\n+6FBD7E   Flags               01 (1) 'Modification'\n+6FBD7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBD83 CENTRAL HEADER #880   02014B50 (33639248)\n+6FBD87 Created Zip Spec      14 (20) '2.0'\n+6FBD88 Created OS            00 (0) 'MS-DOS'\n+6FBD89 Extract Zip Spec      14 (20) '2.0'\n+6FBD8A Extract OS            00 (0) 'MS-DOS'\n+6FBD8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBD8D Compression Method    0000 (0) 'Stored'\n+6FBD8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBD93 CRC                   7F03CBF8 (2130955256)\n+6FBD97 Compressed Size       000054E7 (21735)\n+6FBD9B Uncompressed Size     000054E7 (21735)\n+6FBD9F Filename Length       0032 (50)\n+6FBDA1 Extra Length          0009 (9)\n+6FBDA3 Comment Length        0000 (0)\n+6FBDA5 Disk Start            0000 (0)\n+6FBDA7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBDA9 Ext File Attributes   00000000 (0)\n+6FBDAD Local Header Offset   00295CC0 (2710720)\n+6FBDB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBDB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBDE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBDE5   Length              0005 (5)\n+6FBDE7   Flags               01 (1) 'Modification'\n+6FBDE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBDEC CENTRAL HEADER #881   02014B50 (33639248)\n+6FBDF0 Created Zip Spec      14 (20) '2.0'\n+6FBDF1 Created OS            00 (0) 'MS-DOS'\n+6FBDF2 Extract Zip Spec      14 (20) '2.0'\n+6FBDF3 Extract OS            00 (0) 'MS-DOS'\n+6FBDF4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBDF6 Compression Method    0000 (0) 'Stored'\n+6FBDF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBDFC CRC                   255BC4C2 (626771138)\n+6FBE00 Compressed Size       00000985 (2437)\n+6FBE04 Uncompressed Size     00000985 (2437)\n+6FBE08 Filename Length       002D (45)\n+6FBE0A Extra Length          0009 (9)\n+6FBE0C Comment Length        0000 (0)\n+6FBE0E Disk Start            0000 (0)\n+6FBE10 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBE12 Ext File Attributes   00000000 (0)\n+6FBE16 Local Header Offset   0029B210 (2732560)\n+6FBE1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBE1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBE47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBE49   Length              0005 (5)\n+6FBE4B   Flags               01 (1) 'Modification'\n+6FBE4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBE50 CENTRAL HEADER #882   02014B50 (33639248)\n+6FBE54 Created Zip Spec      14 (20) '2.0'\n+6FBE55 Created OS            00 (0) 'MS-DOS'\n+6FBE56 Extract Zip Spec      14 (20) '2.0'\n+6FBE57 Extract OS            00 (0) 'MS-DOS'\n+6FBE58 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBE5A Compression Method    0000 (0) 'Stored'\n+6FBE5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBE60 CRC                   40170699 (1075250841)\n+6FBE64 Compressed Size       0000059E (1438)\n+6FBE68 Uncompressed Size     0000059E (1438)\n+6FBE6C Filename Length       0029 (41)\n+6FBE6E Extra Length          0009 (9)\n+6FBE70 Comment Length        0000 (0)\n+6FBE72 Disk Start            0000 (0)\n+6FBE74 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBE76 Ext File Attributes   00000000 (0)\n+6FBE7A Local Header Offset   0029BBF9 (2735097)\n+6FBE7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBE7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBEA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBEA9   Length              0005 (5)\n+6FBEAB   Flags               01 (1) 'Modification'\n+6FBEAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBEB0 CENTRAL HEADER #883   02014B50 (33639248)\n+6FBEB4 Created Zip Spec      14 (20) '2.0'\n+6FBEB5 Created OS            00 (0) 'MS-DOS'\n+6FBEB6 Extract Zip Spec      14 (20) '2.0'\n+6FBEB7 Extract OS            00 (0) 'MS-DOS'\n+6FBEB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBEBA Compression Method    0000 (0) 'Stored'\n+6FBEBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBEC0 CRC                   A604EAF8 (2785340152)\n+6FBEC4 Compressed Size       00001249 (4681)\n+6FBEC8 Uncompressed Size     00001249 (4681)\n+6FBECC Filename Length       0038 (56)\n+6FBECE Extra Length          0009 (9)\n+6FBED0 Comment Length        0000 (0)\n+6FBED2 Disk Start            0000 (0)\n+6FBED4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBED6 Ext File Attributes   00000000 (0)\n+6FBEDA Local Header Offset   0029C1F7 (2736631)\n+6FBEDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBEDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBF16 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBF18   Length              0005 (5)\n+6FBF1A   Flags               01 (1) 'Modification'\n+6FBF1B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBF1F CENTRAL HEADER #884   02014B50 (33639248)\n+6FBF23 Created Zip Spec      14 (20) '2.0'\n+6FBF24 Created OS            00 (0) 'MS-DOS'\n+6FBF25 Extract Zip Spec      14 (20) '2.0'\n+6FBF26 Extract OS            00 (0) 'MS-DOS'\n+6FBF27 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBF29 Compression Method    0000 (0) 'Stored'\n+6FBF2B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBF2F CRC                   D7EB77B9 (3622533049)\n+6FBF33 Compressed Size       0000137A (4986)\n+6FBF37 Uncompressed Size     0000137A (4986)\n+6FBF3B Filename Length       002C (44)\n+6FBF3D Extra Length          0009 (9)\n+6FBF3F Comment Length        0000 (0)\n+6FBF41 Disk Start            0000 (0)\n+6FBF43 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBF45 Ext File Attributes   00000000 (0)\n+6FBF49 Local Header Offset   0029D4AF (2741423)\n+6FBF4D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBF4D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBF79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBF7B   Length              0005 (5)\n+6FBF7D   Flags               01 (1) 'Modification'\n+6FBF7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBF82 CENTRAL HEADER #885   02014B50 (33639248)\n+6FBF86 Created Zip Spec      14 (20) '2.0'\n+6FBF87 Created OS            00 (0) 'MS-DOS'\n+6FBF88 Extract Zip Spec      14 (20) '2.0'\n+6FBF89 Extract OS            00 (0) 'MS-DOS'\n+6FBF8A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBF8C Compression Method    0000 (0) 'Stored'\n+6FBF8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FBF92 CRC                   7518C2B8 (1964556984)\n+6FBF96 Compressed Size       00000535 (1333)\n+6FBF9A Uncompressed Size     00000535 (1333)\n+6FBF9E Filename Length       0039 (57)\n+6FBFA0 Extra Length          0009 (9)\n+6FBFA2 Comment Length        0000 (0)\n+6FBFA4 Disk Start            0000 (0)\n+6FBFA6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FBFA8 Ext File Attributes   00000000 (0)\n+6FBFAC Local Header Offset   0029E88C (2746508)\n+6FBFB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FBFB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FBFE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FBFEB   Length              0005 (5)\n+6FBFED   Flags               01 (1) 'Modification'\n+6FBFEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FBFF2 CENTRAL HEADER #886   02014B50 (33639248)\n+6FBFF6 Created Zip Spec      14 (20) '2.0'\n+6FBFF7 Created OS            00 (0) 'MS-DOS'\n+6FBFF8 Extract Zip Spec      14 (20) '2.0'\n+6FBFF9 Extract OS            00 (0) 'MS-DOS'\n+6FBFFA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FBFFC Compression Method    0000 (0) 'Stored'\n+6FBFFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC002 CRC                   FC613C2C (4234230828)\n+6FC006 Compressed Size       00001651 (5713)\n+6FC00A Uncompressed Size     00001651 (5713)\n+6FC00E Filename Length       002E (46)\n+6FC010 Extra Length          0009 (9)\n+6FC012 Comment Length        0000 (0)\n+6FC014 Disk Start            0000 (0)\n+6FC016 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC018 Ext File Attributes   00000000 (0)\n+6FC01C Local Header Offset   0029EE31 (2747953)\n+6FC020 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC020: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC04E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC050   Length              0005 (5)\n+6FC052   Flags               01 (1) 'Modification'\n+6FC053   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC057 CENTRAL HEADER #887   02014B50 (33639248)\n+6FC05B Created Zip Spec      14 (20) '2.0'\n+6FC05C Created OS            00 (0) 'MS-DOS'\n+6FC05D Extract Zip Spec      14 (20) '2.0'\n+6FC05E Extract OS            00 (0) 'MS-DOS'\n+6FC05F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC061 Compression Method    0000 (0) 'Stored'\n+6FC063 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC067 CRC                   75C25786 (1975670662)\n+6FC06B Compressed Size       00004813 (18451)\n+6FC06F Uncompressed Size     00004813 (18451)\n+6FC073 Filename Length       002D (45)\n+6FC075 Extra Length          0009 (9)\n+6FC077 Comment Length        0000 (0)\n+6FC079 Disk Start            0000 (0)\n+6FC07B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC07D Ext File Attributes   00000000 (0)\n+6FC081 Local Header Offset   002A04E7 (2753767)\n+6FC085 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC085: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC0B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC0B4   Length              0005 (5)\n+6FC0B6   Flags               01 (1) 'Modification'\n+6FC0B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC0BB CENTRAL HEADER #888   02014B50 (33639248)\n+6FC0BF Created Zip Spec      14 (20) '2.0'\n+6FC0C0 Created OS            00 (0) 'MS-DOS'\n+6FC0C1 Extract Zip Spec      14 (20) '2.0'\n+6FC0C2 Extract OS            00 (0) 'MS-DOS'\n+6FC0C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC0C5 Compression Method    0000 (0) 'Stored'\n+6FC0C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC0CB CRC                   49173B6A (1226259306)\n+6FC0CF Compressed Size       00002D62 (11618)\n+6FC0D3 Uncompressed Size     00002D62 (11618)\n+6FC0D7 Filename Length       0032 (50)\n+6FC0D9 Extra Length          0009 (9)\n+6FC0DB Comment Length        0000 (0)\n+6FC0DD Disk Start            0000 (0)\n+6FC0DF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC0E1 Ext File Attributes   00000000 (0)\n+6FC0E5 Local Header Offset   002A4D5E (2772318)\n+6FC0E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC0E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC11B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC11D   Length              0005 (5)\n+6FC11F   Flags               01 (1) 'Modification'\n+6FC120   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC124 CENTRAL HEADER #889   02014B50 (33639248)\n+6FC128 Created Zip Spec      14 (20) '2.0'\n+6FC129 Created OS            00 (0) 'MS-DOS'\n+6FC12A Extract Zip Spec      14 (20) '2.0'\n+6FC12B Extract OS            00 (0) 'MS-DOS'\n+6FC12C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC12E Compression Method    0000 (0) 'Stored'\n+6FC130 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC134 CRC                   8D8AC97C (2374683004)\n+6FC138 Compressed Size       00002443 (9283)\n+6FC13C Uncompressed Size     00002443 (9283)\n+6FC140 Filename Length       0036 (54)\n+6FC142 Extra Length          0009 (9)\n+6FC144 Comment Length        0000 (0)\n+6FC146 Disk Start            0000 (0)\n+6FC148 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC14A Ext File Attributes   00000000 (0)\n+6FC14E Local Header Offset   002A7B29 (2784041)\n+6FC152 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC152: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC188 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC18A   Length              0005 (5)\n+6FC18C   Flags               01 (1) 'Modification'\n+6FC18D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC191 CENTRAL HEADER #890   02014B50 (33639248)\n+6FC195 Created Zip Spec      14 (20) '2.0'\n+6FC196 Created OS            00 (0) 'MS-DOS'\n+6FC197 Extract Zip Spec      14 (20) '2.0'\n+6FC198 Extract OS            00 (0) 'MS-DOS'\n+6FC199 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC19B Compression Method    0000 (0) 'Stored'\n+6FC19D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC1A1 CRC                   0EFD7C48 (251493448)\n+6FC1A5 Compressed Size       000011C9 (4553)\n+6FC1A9 Uncompressed Size     000011C9 (4553)\n+6FC1AD Filename Length       0034 (52)\n+6FC1AF Extra Length          0009 (9)\n+6FC1B1 Comment Length        0000 (0)\n+6FC1B3 Disk Start            0000 (0)\n+6FC1B5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC1B7 Ext File Attributes   00000000 (0)\n+6FC1BB Local Header Offset   002A9FD9 (2793433)\n+6FC1BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC1BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC1F3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC1F5   Length              0005 (5)\n+6FC1F7   Flags               01 (1) 'Modification'\n+6FC1F8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC1FC CENTRAL HEADER #891   02014B50 (33639248)\n+6FC200 Created Zip Spec      14 (20) '2.0'\n+6FC201 Created OS            00 (0) 'MS-DOS'\n+6FC202 Extract Zip Spec      14 (20) '2.0'\n+6FC203 Extract OS            00 (0) 'MS-DOS'\n+6FC204 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC206 Compression Method    0000 (0) 'Stored'\n+6FC208 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC20C CRC                   8CFD4A70 (2365409904)\n+6FC210 Compressed Size       00002FB5 (12213)\n+6FC214 Uncompressed Size     00002FB5 (12213)\n+6FC218 Filename Length       002E (46)\n+6FC21A Extra Length          0009 (9)\n+6FC21C Comment Length        0000 (0)\n+6FC21E Disk Start            0000 (0)\n+6FC220 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC222 Ext File Attributes   00000000 (0)\n+6FC226 Local Header Offset   002AB20D (2798093)\n+6FC22A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC22A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC258 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC25A   Length              0005 (5)\n+6FC25C   Flags               01 (1) 'Modification'\n+6FC25D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC261 CENTRAL HEADER #892   02014B50 (33639248)\n+6FC265 Created Zip Spec      14 (20) '2.0'\n+6FC266 Created OS            00 (0) 'MS-DOS'\n+6FC267 Extract Zip Spec      14 (20) '2.0'\n+6FC268 Extract OS            00 (0) 'MS-DOS'\n+6FC269 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC26B Compression Method    0000 (0) 'Stored'\n+6FC26D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC271 CRC                   F982D49E (4186100894)\n+6FC275 Compressed Size       000008F6 (2294)\n+6FC279 Uncompressed Size     000008F6 (2294)\n+6FC27D Filename Length       002E (46)\n+6FC27F Extra Length          0009 (9)\n+6FC281 Comment Length        0000 (0)\n+6FC283 Disk Start            0000 (0)\n+6FC285 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC287 Ext File Attributes   00000000 (0)\n+6FC28B Local Header Offset   002AE227 (2810407)\n+6FC28F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC28F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC2BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC2BF   Length              0005 (5)\n+6FC2C1   Flags               01 (1) 'Modification'\n+6FC2C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC2C6 CENTRAL HEADER #893   02014B50 (33639248)\n+6FC2CA Created Zip Spec      14 (20) '2.0'\n+6FC2CB Created OS            00 (0) 'MS-DOS'\n+6FC2CC Extract Zip Spec      14 (20) '2.0'\n+6FC2CD Extract OS            00 (0) 'MS-DOS'\n+6FC2CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC2D0 Compression Method    0000 (0) 'Stored'\n+6FC2D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC2D6 CRC                   831A7179 (2199548281)\n+6FC2DA Compressed Size       0000080F (2063)\n+6FC2DE Uncompressed Size     0000080F (2063)\n+6FC2E2 Filename Length       0030 (48)\n+6FC2E4 Extra Length          0009 (9)\n+6FC2E6 Comment Length        0000 (0)\n+6FC2E8 Disk Start            0000 (0)\n+6FC2EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC2EC Ext File Attributes   00000000 (0)\n+6FC2F0 Local Header Offset   002AEB82 (2812802)\n+6FC2F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC2F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC324 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC326   Length              0005 (5)\n+6FC328   Flags               01 (1) 'Modification'\n+6FC329   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC32D CENTRAL HEADER #894   02014B50 (33639248)\n+6FC331 Created Zip Spec      14 (20) '2.0'\n+6FC332 Created OS            00 (0) 'MS-DOS'\n+6FC333 Extract Zip Spec      14 (20) '2.0'\n+6FC334 Extract OS            00 (0) 'MS-DOS'\n+6FC335 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC337 Compression Method    0000 (0) 'Stored'\n+6FC339 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC33D CRC                   239B6511 (597386513)\n+6FC341 Compressed Size       000014C9 (5321)\n+6FC345 Uncompressed Size     000014C9 (5321)\n+6FC349 Filename Length       002F (47)\n+6FC34B Extra Length          0009 (9)\n+6FC34D Comment Length        0000 (0)\n+6FC34F Disk Start            0000 (0)\n+6FC351 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC353 Ext File Attributes   00000000 (0)\n+6FC357 Local Header Offset   002AF3F8 (2814968)\n+6FC35B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC35B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC38A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC38C   Length              0005 (5)\n+6FC38E   Flags               01 (1) 'Modification'\n+6FC38F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC393 CENTRAL HEADER #895   02014B50 (33639248)\n+6FC397 Created Zip Spec      14 (20) '2.0'\n+6FC398 Created OS            00 (0) 'MS-DOS'\n+6FC399 Extract Zip Spec      14 (20) '2.0'\n+6FC39A Extract OS            00 (0) 'MS-DOS'\n+6FC39B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC39D Compression Method    0000 (0) 'Stored'\n+6FC39F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC3A3 CRC                   CB16D394 (3407270804)\n+6FC3A7 Compressed Size       000013CF (5071)\n+6FC3AB Uncompressed Size     000013CF (5071)\n+6FC3AF Filename Length       002D (45)\n+6FC3B1 Extra Length          0009 (9)\n+6FC3B3 Comment Length        0000 (0)\n+6FC3B5 Disk Start            0000 (0)\n+6FC3B7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC3B9 Ext File Attributes   00000000 (0)\n+6FC3BD Local Header Offset   002B0927 (2820391)\n+6FC3C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC3C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC3EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC3F0   Length              0005 (5)\n+6FC3F2   Flags               01 (1) 'Modification'\n+6FC3F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC3F7 CENTRAL HEADER #896   02014B50 (33639248)\n+6FC3FB Created Zip Spec      14 (20) '2.0'\n+6FC3FC Created OS            00 (0) 'MS-DOS'\n+6FC3FD Extract Zip Spec      14 (20) '2.0'\n+6FC3FE Extract OS            00 (0) 'MS-DOS'\n+6FC3FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC401 Compression Method    0000 (0) 'Stored'\n+6FC403 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC407 CRC                   4E3FC833 (1312802867)\n+6FC40B Compressed Size       00000443 (1091)\n+6FC40F Uncompressed Size     00000443 (1091)\n+6FC413 Filename Length       0029 (41)\n+6FC415 Extra Length          0009 (9)\n+6FC417 Comment Length        0000 (0)\n+6FC419 Disk Start            0000 (0)\n+6FC41B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC41D Ext File Attributes   00000000 (0)\n+6FC421 Local Header Offset   002B1D5A (2825562)\n+6FC425 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC425: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC44E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC450   Length              0005 (5)\n+6FC452   Flags               01 (1) 'Modification'\n+6FC453   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC457 CENTRAL HEADER #897   02014B50 (33639248)\n+6FC45B Created Zip Spec      14 (20) '2.0'\n+6FC45C Created OS            00 (0) 'MS-DOS'\n+6FC45D Extract Zip Spec      14 (20) '2.0'\n+6FC45E Extract OS            00 (0) 'MS-DOS'\n+6FC45F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC461 Compression Method    0000 (0) 'Stored'\n+6FC463 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC467 CRC                   7A9C058A (2057045386)\n+6FC46B Compressed Size       00002117 (8471)\n+6FC46F Uncompressed Size     00002117 (8471)\n+6FC473 Filename Length       002A (42)\n+6FC475 Extra Length          0009 (9)\n+6FC477 Comment Length        0000 (0)\n+6FC479 Disk Start            0000 (0)\n+6FC47B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC47D Ext File Attributes   00000000 (0)\n+6FC481 Local Header Offset   002B21FD (2826749)\n+6FC485 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC485: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC4AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC4B1   Length              0005 (5)\n+6FC4B3   Flags               01 (1) 'Modification'\n+6FC4B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC4B8 CENTRAL HEADER #898   02014B50 (33639248)\n+6FC4BC Created Zip Spec      14 (20) '2.0'\n+6FC4BD Created OS            00 (0) 'MS-DOS'\n+6FC4BE Extract Zip Spec      14 (20) '2.0'\n+6FC4BF Extract OS            00 (0) 'MS-DOS'\n+6FC4C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC4C2 Compression Method    0000 (0) 'Stored'\n+6FC4C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC4C8 CRC                   A4F19F22 (2767298338)\n+6FC4CC Compressed Size       0000104C (4172)\n+6FC4D0 Uncompressed Size     0000104C (4172)\n+6FC4D4 Filename Length       002A (42)\n+6FC4D6 Extra Length          0009 (9)\n+6FC4D8 Comment Length        0000 (0)\n+6FC4DA Disk Start            0000 (0)\n+6FC4DC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC4DE Ext File Attributes   00000000 (0)\n+6FC4E2 Local Header Offset   002B4375 (2835317)\n+6FC4E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC4E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC512   Length              0005 (5)\n+6FC514   Flags               01 (1) 'Modification'\n+6FC515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC519 CENTRAL HEADER #899   02014B50 (33639248)\n+6FC51D Created Zip Spec      14 (20) '2.0'\n+6FC51E Created OS            00 (0) 'MS-DOS'\n+6FC51F Extract Zip Spec      14 (20) '2.0'\n+6FC520 Extract OS            00 (0) 'MS-DOS'\n+6FC521 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC523 Compression Method    0000 (0) 'Stored'\n+6FC525 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC529 CRC                   CBBE6E80 (3418254976)\n+6FC52D Compressed Size       00002283 (8835)\n+6FC531 Uncompressed Size     00002283 (8835)\n+6FC535 Filename Length       002B (43)\n+6FC537 Extra Length          0009 (9)\n+6FC539 Comment Length        0000 (0)\n+6FC53B Disk Start            0000 (0)\n+6FC53D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC53F Ext File Attributes   00000000 (0)\n+6FC543 Local Header Offset   002B5422 (2839586)\n+6FC547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC572 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC574   Length              0005 (5)\n+6FC576   Flags               01 (1) 'Modification'\n+6FC577   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC57B CENTRAL HEADER #900   02014B50 (33639248)\n+6FC57F Created Zip Spec      14 (20) '2.0'\n+6FC580 Created OS            00 (0) 'MS-DOS'\n+6FC581 Extract Zip Spec      14 (20) '2.0'\n+6FC582 Extract OS            00 (0) 'MS-DOS'\n+6FC583 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC585 Compression Method    0000 (0) 'Stored'\n+6FC587 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC58B CRC                   139F375C (329201500)\n+6FC58F Compressed Size       00000BC2 (3010)\n+6FC593 Uncompressed Size     00000BC2 (3010)\n+6FC597 Filename Length       002B (43)\n+6FC599 Extra Length          0009 (9)\n+6FC59B Comment Length        0000 (0)\n+6FC59D Disk Start            0000 (0)\n+6FC59F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC5A1 Ext File Attributes   00000000 (0)\n+6FC5A5 Local Header Offset   002B7707 (2848519)\n+6FC5A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC5A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC5D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC5D6   Length              0005 (5)\n+6FC5D8   Flags               01 (1) 'Modification'\n+6FC5D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC5DD CENTRAL HEADER #901   02014B50 (33639248)\n+6FC5E1 Created Zip Spec      14 (20) '2.0'\n+6FC5E2 Created OS            00 (0) 'MS-DOS'\n+6FC5E3 Extract Zip Spec      14 (20) '2.0'\n+6FC5E4 Extract OS            00 (0) 'MS-DOS'\n+6FC5E5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC5E7 Compression Method    0000 (0) 'Stored'\n+6FC5E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC5ED CRC                   C39767CB (3281479627)\n+6FC5F1 Compressed Size       00000DAA (3498)\n+6FC5F5 Uncompressed Size     00000DAA (3498)\n+6FC5F9 Filename Length       0026 (38)\n+6FC5FB Extra Length          0009 (9)\n+6FC5FD Comment Length        0000 (0)\n+6FC5FF Disk Start            0000 (0)\n+6FC601 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC603 Ext File Attributes   00000000 (0)\n+6FC607 Local Header Offset   002B832B (2851627)\n+6FC60B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC60B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC631 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC633   Length              0005 (5)\n+6FC635   Flags               01 (1) 'Modification'\n+6FC636   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC63A CENTRAL HEADER #902   02014B50 (33639248)\n+6FC63E Created Zip Spec      14 (20) '2.0'\n+6FC63F Created OS            00 (0) 'MS-DOS'\n+6FC640 Extract Zip Spec      14 (20) '2.0'\n+6FC641 Extract OS            00 (0) 'MS-DOS'\n+6FC642 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC644 Compression Method    0000 (0) 'Stored'\n+6FC646 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC64A CRC                   0C719C80 (208772224)\n+6FC64E Compressed Size       000010C1 (4289)\n+6FC652 Uncompressed Size     000010C1 (4289)\n+6FC656 Filename Length       002C (44)\n+6FC658 Extra Length          0009 (9)\n+6FC65A Comment Length        0000 (0)\n+6FC65C Disk Start            0000 (0)\n+6FC65E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC660 Ext File Attributes   00000000 (0)\n+6FC664 Local Header Offset   002B9132 (2855218)\n+6FC668 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC668: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC694 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC696   Length              0005 (5)\n+6FC698   Flags               01 (1) 'Modification'\n+6FC699   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC69D CENTRAL HEADER #903   02014B50 (33639248)\n+6FC6A1 Created Zip Spec      14 (20) '2.0'\n+6FC6A2 Created OS            00 (0) 'MS-DOS'\n+6FC6A3 Extract Zip Spec      14 (20) '2.0'\n+6FC6A4 Extract OS            00 (0) 'MS-DOS'\n+6FC6A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC6A7 Compression Method    0000 (0) 'Stored'\n+6FC6A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC6AD CRC                   4A73FA6D (1249114733)\n+6FC6B1 Compressed Size       000010A2 (4258)\n+6FC6B5 Uncompressed Size     000010A2 (4258)\n+6FC6B9 Filename Length       002A (42)\n+6FC6BB Extra Length          0009 (9)\n+6FC6BD Comment Length        0000 (0)\n+6FC6BF Disk Start            0000 (0)\n+6FC6C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC6C3 Ext File Attributes   00000000 (0)\n+6FC6C7 Local Header Offset   002BA256 (2859606)\n+6FC6CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC6CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC6F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC6F7   Length              0005 (5)\n+6FC6F9   Flags               01 (1) 'Modification'\n+6FC6FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC6FE CENTRAL HEADER #904   02014B50 (33639248)\n+6FC702 Created Zip Spec      14 (20) '2.0'\n+6FC703 Created OS            00 (0) 'MS-DOS'\n+6FC704 Extract Zip Spec      14 (20) '2.0'\n+6FC705 Extract OS            00 (0) 'MS-DOS'\n+6FC706 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC708 Compression Method    0000 (0) 'Stored'\n+6FC70A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC70E CRC                   FE0FBB73 (4262443891)\n+6FC712 Compressed Size       0000099D (2461)\n+6FC716 Uncompressed Size     0000099D (2461)\n+6FC71A Filename Length       002E (46)\n+6FC71C Extra Length          0009 (9)\n+6FC71E Comment Length        0000 (0)\n+6FC720 Disk Start            0000 (0)\n+6FC722 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC724 Ext File Attributes   00000000 (0)\n+6FC728 Local Header Offset   002BB359 (2863961)\n+6FC72C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC72C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC75A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC75C   Length              0005 (5)\n+6FC75E   Flags               01 (1) 'Modification'\n+6FC75F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC763 CENTRAL HEADER #905   02014B50 (33639248)\n+6FC767 Created Zip Spec      14 (20) '2.0'\n+6FC768 Created OS            00 (0) 'MS-DOS'\n+6FC769 Extract Zip Spec      14 (20) '2.0'\n+6FC76A Extract OS            00 (0) 'MS-DOS'\n+6FC76B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC76D Compression Method    0000 (0) 'Stored'\n+6FC76F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC773 CRC                   F18EE811 (4052674577)\n+6FC777 Compressed Size       00000980 (2432)\n+6FC77B Uncompressed Size     00000980 (2432)\n+6FC77F Filename Length       0033 (51)\n+6FC781 Extra Length          0009 (9)\n+6FC783 Comment Length        0000 (0)\n+6FC785 Disk Start            0000 (0)\n+6FC787 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC789 Ext File Attributes   00000000 (0)\n+6FC78D Local Header Offset   002BBD5B (2866523)\n+6FC791 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC791: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC7C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC7C6   Length              0005 (5)\n+6FC7C8   Flags               01 (1) 'Modification'\n+6FC7C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC7CD CENTRAL HEADER #906   02014B50 (33639248)\n+6FC7D1 Created Zip Spec      14 (20) '2.0'\n+6FC7D2 Created OS            00 (0) 'MS-DOS'\n+6FC7D3 Extract Zip Spec      14 (20) '2.0'\n+6FC7D4 Extract OS            00 (0) 'MS-DOS'\n+6FC7D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC7D7 Compression Method    0000 (0) 'Stored'\n+6FC7D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC7DD CRC                   3744AF68 (927248232)\n+6FC7E1 Compressed Size       00003B50 (15184)\n+6FC7E5 Uncompressed Size     00003B50 (15184)\n+6FC7E9 Filename Length       002E (46)\n+6FC7EB Extra Length          0009 (9)\n+6FC7ED Comment Length        0000 (0)\n+6FC7EF Disk Start            0000 (0)\n+6FC7F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC7F3 Ext File Attributes   00000000 (0)\n+6FC7F7 Local Header Offset   002BC745 (2869061)\n+6FC7FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC7FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC829 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC82B   Length              0005 (5)\n+6FC82D   Flags               01 (1) 'Modification'\n+6FC82E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC832 CENTRAL HEADER #907   02014B50 (33639248)\n+6FC836 Created Zip Spec      14 (20) '2.0'\n+6FC837 Created OS            00 (0) 'MS-DOS'\n+6FC838 Extract Zip Spec      14 (20) '2.0'\n+6FC839 Extract OS            00 (0) 'MS-DOS'\n+6FC83A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC83C Compression Method    0000 (0) 'Stored'\n+6FC83E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC842 CRC                   A4EA9AD2 (2766838482)\n+6FC846 Compressed Size       0000085B (2139)\n+6FC84A Uncompressed Size     0000085B (2139)\n+6FC84E Filename Length       0035 (53)\n+6FC850 Extra Length          0009 (9)\n+6FC852 Comment Length        0000 (0)\n+6FC854 Disk Start            0000 (0)\n+6FC856 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC858 Ext File Attributes   00000000 (0)\n+6FC85C Local Header Offset   002C02FA (2884346)\n+6FC860 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC860: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC895 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC897   Length              0005 (5)\n+6FC899   Flags               01 (1) 'Modification'\n+6FC89A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC89E CENTRAL HEADER #908   02014B50 (33639248)\n+6FC8A2 Created Zip Spec      14 (20) '2.0'\n+6FC8A3 Created OS            00 (0) 'MS-DOS'\n+6FC8A4 Extract Zip Spec      14 (20) '2.0'\n+6FC8A5 Extract OS            00 (0) 'MS-DOS'\n+6FC8A6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC8A8 Compression Method    0000 (0) 'Stored'\n+6FC8AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC8AE CRC                   90514D51 (2421247313)\n+6FC8B2 Compressed Size       00005DC7 (24007)\n+6FC8B6 Uncompressed Size     00005DC7 (24007)\n+6FC8BA Filename Length       002B (43)\n+6FC8BC Extra Length          0009 (9)\n+6FC8BE Comment Length        0000 (0)\n+6FC8C0 Disk Start            0000 (0)\n+6FC8C2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC8C4 Ext File Attributes   00000000 (0)\n+6FC8C8 Local Header Offset   002C0BC1 (2886593)\n+6FC8CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC8CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC8F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC8F9   Length              0005 (5)\n+6FC8FB   Flags               01 (1) 'Modification'\n+6FC8FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC900 CENTRAL HEADER #909   02014B50 (33639248)\n+6FC904 Created Zip Spec      14 (20) '2.0'\n+6FC905 Created OS            00 (0) 'MS-DOS'\n+6FC906 Extract Zip Spec      14 (20) '2.0'\n+6FC907 Extract OS            00 (0) 'MS-DOS'\n+6FC908 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC90A Compression Method    0000 (0) 'Stored'\n+6FC90C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC910 CRC                   3422DF4F (874700623)\n+6FC914 Compressed Size       0000086A (2154)\n+6FC918 Uncompressed Size     0000086A (2154)\n+6FC91C Filename Length       0027 (39)\n+6FC91E Extra Length          0009 (9)\n+6FC920 Comment Length        0000 (0)\n+6FC922 Disk Start            0000 (0)\n+6FC924 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC926 Ext File Attributes   00000000 (0)\n+6FC92A Local Header Offset   002C69EA (2910698)\n+6FC92E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC92E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC955 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC957   Length              0005 (5)\n+6FC959   Flags               01 (1) 'Modification'\n+6FC95A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC95E CENTRAL HEADER #910   02014B50 (33639248)\n+6FC962 Created Zip Spec      14 (20) '2.0'\n+6FC963 Created OS            00 (0) 'MS-DOS'\n+6FC964 Extract Zip Spec      14 (20) '2.0'\n+6FC965 Extract OS            00 (0) 'MS-DOS'\n+6FC966 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC968 Compression Method    0000 (0) 'Stored'\n+6FC96A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC96E CRC                   5087E57A (1351083386)\n+6FC972 Compressed Size       000009A4 (2468)\n+6FC976 Uncompressed Size     000009A4 (2468)\n+6FC97A Filename Length       002C (44)\n+6FC97C Extra Length          0009 (9)\n+6FC97E Comment Length        0000 (0)\n+6FC980 Disk Start            0000 (0)\n+6FC982 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC984 Ext File Attributes   00000000 (0)\n+6FC988 Local Header Offset   002C72B2 (2912946)\n+6FC98C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC98C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FC9B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FC9BA   Length              0005 (5)\n+6FC9BC   Flags               01 (1) 'Modification'\n+6FC9BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FC9C1 CENTRAL HEADER #911   02014B50 (33639248)\n+6FC9C5 Created Zip Spec      14 (20) '2.0'\n+6FC9C6 Created OS            00 (0) 'MS-DOS'\n+6FC9C7 Extract Zip Spec      14 (20) '2.0'\n+6FC9C8 Extract OS            00 (0) 'MS-DOS'\n+6FC9C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FC9CB Compression Method    0000 (0) 'Stored'\n+6FC9CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FC9D1 CRC                   34D97477 (886666359)\n+6FC9D5 Compressed Size       00008320 (33568)\n+6FC9D9 Uncompressed Size     00008320 (33568)\n+6FC9DD Filename Length       002C (44)\n+6FC9DF Extra Length          0009 (9)\n+6FC9E1 Comment Length        0000 (0)\n+6FC9E3 Disk Start            0000 (0)\n+6FC9E5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FC9E7 Ext File Attributes   00000000 (0)\n+6FC9EB Local Header Offset   002C7CB9 (2915513)\n+6FC9EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FC9EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCA1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCA1D   Length              0005 (5)\n+6FCA1F   Flags               01 (1) 'Modification'\n+6FCA20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCA24 CENTRAL HEADER #912   02014B50 (33639248)\n+6FCA28 Created Zip Spec      14 (20) '2.0'\n+6FCA29 Created OS            00 (0) 'MS-DOS'\n+6FCA2A Extract Zip Spec      14 (20) '2.0'\n+6FCA2B Extract OS            00 (0) 'MS-DOS'\n+6FCA2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCA2E Compression Method    0000 (0) 'Stored'\n+6FCA30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCA34 CRC                   4414A4AD (1142203565)\n+6FCA38 Compressed Size       0000BE90 (48784)\n+6FCA3C Uncompressed Size     0000BE90 (48784)\n+6FCA40 Filename Length       002F (47)\n+6FCA42 Extra Length          0009 (9)\n+6FCA44 Comment Length        0000 (0)\n+6FCA46 Disk Start            0000 (0)\n+6FCA48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCA4A Ext File Attributes   00000000 (0)\n+6FCA4E Local Header Offset   002D003C (2949180)\n+6FCA52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCA52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCA81 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCA83   Length              0005 (5)\n+6FCA85   Flags               01 (1) 'Modification'\n+6FCA86   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCA8A CENTRAL HEADER #913   02014B50 (33639248)\n+6FCA8E Created Zip Spec      14 (20) '2.0'\n+6FCA8F Created OS            00 (0) 'MS-DOS'\n+6FCA90 Extract Zip Spec      14 (20) '2.0'\n+6FCA91 Extract OS            00 (0) 'MS-DOS'\n+6FCA92 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCA94 Compression Method    0000 (0) 'Stored'\n+6FCA96 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCA9A CRC                   20B97A60 (549026400)\n+6FCA9E Compressed Size       0000179D (6045)\n+6FCAA2 Uncompressed Size     0000179D (6045)\n+6FCAA6 Filename Length       0038 (56)\n+6FCAA8 Extra Length          0009 (9)\n+6FCAAA Comment Length        0000 (0)\n+6FCAAC Disk Start            0000 (0)\n+6FCAAE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCAB0 Ext File Attributes   00000000 (0)\n+6FCAB4 Local Header Offset   002DBF32 (2998066)\n+6FCAB8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCAB8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCAF0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCAF2   Length              0005 (5)\n+6FCAF4   Flags               01 (1) 'Modification'\n+6FCAF5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCAF9 CENTRAL HEADER #914   02014B50 (33639248)\n+6FCAFD Created Zip Spec      14 (20) '2.0'\n+6FCAFE Created OS            00 (0) 'MS-DOS'\n+6FCAFF Extract Zip Spec      14 (20) '2.0'\n+6FCB00 Extract OS            00 (0) 'MS-DOS'\n+6FCB01 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCB03 Compression Method    0000 (0) 'Stored'\n+6FCB05 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCB09 CRC                   0B75FDAE (192282030)\n+6FCB0D Compressed Size       0000124E (4686)\n+6FCB11 Uncompressed Size     0000124E (4686)\n+6FCB15 Filename Length       003C (60)\n+6FCB17 Extra Length          0009 (9)\n+6FCB19 Comment Length        0000 (0)\n+6FCB1B Disk Start            0000 (0)\n+6FCB1D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCB1F Ext File Attributes   00000000 (0)\n+6FCB23 Local Header Offset   002DD73E (3004222)\n+6FCB27 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCB27: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCB63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCB65   Length              0005 (5)\n+6FCB67   Flags               01 (1) 'Modification'\n+6FCB68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCB6C CENTRAL HEADER #915   02014B50 (33639248)\n+6FCB70 Created Zip Spec      14 (20) '2.0'\n+6FCB71 Created OS            00 (0) 'MS-DOS'\n+6FCB72 Extract Zip Spec      14 (20) '2.0'\n+6FCB73 Extract OS            00 (0) 'MS-DOS'\n+6FCB74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCB76 Compression Method    0000 (0) 'Stored'\n+6FCB78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCB7C CRC                   D09B55F9 (3499841017)\n+6FCB80 Compressed Size       00000D4B (3403)\n+6FCB84 Uncompressed Size     00000D4B (3403)\n+6FCB88 Filename Length       0028 (40)\n+6FCB8A Extra Length          0009 (9)\n+6FCB8C Comment Length        0000 (0)\n+6FCB8E Disk Start            0000 (0)\n+6FCB90 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCB92 Ext File Attributes   00000000 (0)\n+6FCB96 Local Header Offset   002DE9FF (3009023)\n+6FCB9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCB9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCBC2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCBC4   Length              0005 (5)\n+6FCBC6   Flags               01 (1) 'Modification'\n+6FCBC7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCBCB CENTRAL HEADER #916   02014B50 (33639248)\n+6FCBCF Created Zip Spec      14 (20) '2.0'\n+6FCBD0 Created OS            00 (0) 'MS-DOS'\n+6FCBD1 Extract Zip Spec      14 (20) '2.0'\n+6FCBD2 Extract OS            00 (0) 'MS-DOS'\n+6FCBD3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCBD5 Compression Method    0000 (0) 'Stored'\n+6FCBD7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCBDB CRC                   F3B0BA28 (4088445480)\n+6FCBDF Compressed Size       00000A5F (2655)\n+6FCBE3 Uncompressed Size     00000A5F (2655)\n+6FCBE7 Filename Length       0044 (68)\n+6FCBE9 Extra Length          0009 (9)\n+6FCBEB Comment Length        0000 (0)\n+6FCBED Disk Start            0000 (0)\n+6FCBEF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCBF1 Ext File Attributes   00000000 (0)\n+6FCBF5 Local Header Offset   002DF7A9 (3012521)\n+6FCBF9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCBF9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCC3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCC3F   Length              0005 (5)\n+6FCC41   Flags               01 (1) 'Modification'\n+6FCC42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCC46 CENTRAL HEADER #917   02014B50 (33639248)\n+6FCC4A Created Zip Spec      14 (20) '2.0'\n+6FCC4B Created OS            00 (0) 'MS-DOS'\n+6FCC4C Extract Zip Spec      14 (20) '2.0'\n+6FCC4D Extract OS            00 (0) 'MS-DOS'\n+6FCC4E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCC50 Compression Method    0000 (0) 'Stored'\n+6FCC52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCC56 CRC                   080CFD86 (135069062)\n+6FCC5A Compressed Size       00009370 (37744)\n+6FCC5E Uncompressed Size     00009370 (37744)\n+6FCC62 Filename Length       002E (46)\n+6FCC64 Extra Length          0009 (9)\n+6FCC66 Comment Length        0000 (0)\n+6FCC68 Disk Start            0000 (0)\n+6FCC6A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCC6C Ext File Attributes   00000000 (0)\n+6FCC70 Local Header Offset   002E0283 (3015299)\n+6FCC74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCC74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCCA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCCA4   Length              0005 (5)\n+6FCCA6   Flags               01 (1) 'Modification'\n+6FCCA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCCAB CENTRAL HEADER #918   02014B50 (33639248)\n+6FCCAF Created Zip Spec      14 (20) '2.0'\n+6FCCB0 Created OS            00 (0) 'MS-DOS'\n+6FCCB1 Extract Zip Spec      14 (20) '2.0'\n+6FCCB2 Extract OS            00 (0) 'MS-DOS'\n+6FCCB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCCB5 Compression Method    0000 (0) 'Stored'\n+6FCCB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCCBB CRC                   70A970FE (1890152702)\n+6FCCBF Compressed Size       000022D8 (8920)\n+6FCCC3 Uncompressed Size     000022D8 (8920)\n+6FCCC7 Filename Length       002C (44)\n+6FCCC9 Extra Length          0009 (9)\n+6FCCCB Comment Length        0000 (0)\n+6FCCCD Disk Start            0000 (0)\n+6FCCCF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCCD1 Ext File Attributes   00000000 (0)\n+6FCCD5 Local Header Offset   002E9658 (3053144)\n+6FCCD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCCD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCD05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCD07   Length              0005 (5)\n+6FCD09   Flags               01 (1) 'Modification'\n+6FCD0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCD0E CENTRAL HEADER #919   02014B50 (33639248)\n+6FCD12 Created Zip Spec      14 (20) '2.0'\n+6FCD13 Created OS            00 (0) 'MS-DOS'\n+6FCD14 Extract Zip Spec      14 (20) '2.0'\n+6FCD15 Extract OS            00 (0) 'MS-DOS'\n+6FCD16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCD18 Compression Method    0000 (0) 'Stored'\n+6FCD1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCD1E CRC                   BCEF5B37 (3169803063)\n+6FCD22 Compressed Size       0000634F (25423)\n+6FCD26 Uncompressed Size     0000634F (25423)\n+6FCD2A Filename Length       002B (43)\n+6FCD2C Extra Length          0009 (9)\n+6FCD2E Comment Length        0000 (0)\n+6FCD30 Disk Start            0000 (0)\n+6FCD32 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCD34 Ext File Attributes   00000000 (0)\n+6FCD38 Local Header Offset   002EB993 (3062163)\n+6FCD3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCD3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCD67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCD69   Length              0005 (5)\n+6FCD6B   Flags               01 (1) 'Modification'\n+6FCD6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCD70 CENTRAL HEADER #920   02014B50 (33639248)\n+6FCD74 Created Zip Spec      14 (20) '2.0'\n+6FCD75 Created OS            00 (0) 'MS-DOS'\n+6FCD76 Extract Zip Spec      14 (20) '2.0'\n+6FCD77 Extract OS            00 (0) 'MS-DOS'\n+6FCD78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCD7A Compression Method    0000 (0) 'Stored'\n+6FCD7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCD80 CRC                   DB02321D (3674354205)\n+6FCD84 Compressed Size       000027AB (10155)\n+6FCD88 Uncompressed Size     000027AB (10155)\n+6FCD8C Filename Length       002C (44)\n+6FCD8E Extra Length          0009 (9)\n+6FCD90 Comment Length        0000 (0)\n+6FCD92 Disk Start            0000 (0)\n+6FCD94 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCD96 Ext File Attributes   00000000 (0)\n+6FCD9A Local Header Offset   002F1D44 (3087684)\n+6FCD9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCD9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCDCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCDCC   Length              0005 (5)\n+6FCDCE   Flags               01 (1) 'Modification'\n+6FCDCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCDD3 CENTRAL HEADER #921   02014B50 (33639248)\n+6FCDD7 Created Zip Spec      14 (20) '2.0'\n+6FCDD8 Created OS            00 (0) 'MS-DOS'\n+6FCDD9 Extract Zip Spec      14 (20) '2.0'\n+6FCDDA Extract OS            00 (0) 'MS-DOS'\n+6FCDDB General Purpose Flag  0000 (0)\n+6FCDDD Compression Method    0000 (0) 'Stored'\n+6FCDDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCDE3 CRC                   00000000 (0)\n+6FCDE7 Compressed Size       00000000 (0)\n+6FCDEB Uncompressed Size     00000000 (0)\n+6FCDEF Filename Length       0018 (24)\n+6FCDF1 Extra Length          0009 (9)\n+6FCDF3 Comment Length        0000 (0)\n+6FCDF5 Disk Start            0000 (0)\n+6FCDF7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCDF9 Ext File Attributes   00000000 (0)\n+6FCDFD Local Header Offset   002F4552 (3097938)\n+6FCE01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCE01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCE19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCE1B   Length              0005 (5)\n+6FCE1D   Flags               01 (1) 'Modification'\n+6FCE1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCE22 CENTRAL HEADER #922   02014B50 (33639248)\n+6FCE26 Created Zip Spec      14 (20) '2.0'\n+6FCE27 Created OS            00 (0) 'MS-DOS'\n+6FCE28 Extract Zip Spec      14 (20) '2.0'\n+6FCE29 Extract OS            00 (0) 'MS-DOS'\n+6FCE2A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCE2C Compression Method    0000 (0) 'Stored'\n+6FCE2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCE32 CRC                   DCD69CAC (3705052332)\n+6FCE36 Compressed Size       00006690 (26256)\n+6FCE3A Uncompressed Size     00006690 (26256)\n+6FCE3E Filename Length       002B (43)\n+6FCE40 Extra Length          0009 (9)\n+6FCE42 Comment Length        0000 (0)\n+6FCE44 Disk Start            0000 (0)\n+6FCE46 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCE48 Ext File Attributes   00000000 (0)\n+6FCE4C Local Header Offset   002F4591 (3098001)\n+6FCE50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCE50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCE7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCE7D   Length              0005 (5)\n+6FCE7F   Flags               01 (1) 'Modification'\n+6FCE80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCE84 CENTRAL HEADER #923   02014B50 (33639248)\n+6FCE88 Created Zip Spec      14 (20) '2.0'\n+6FCE89 Created OS            00 (0) 'MS-DOS'\n+6FCE8A Extract Zip Spec      14 (20) '2.0'\n+6FCE8B Extract OS            00 (0) 'MS-DOS'\n+6FCE8C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCE8E Compression Method    0000 (0) 'Stored'\n+6FCE90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCE94 CRC                   E3FDA003 (3825049603)\n+6FCE98 Compressed Size       000061ED (25069)\n+6FCE9C Uncompressed Size     000061ED (25069)\n+6FCEA0 Filename Length       0034 (52)\n+6FCEA2 Extra Length          0009 (9)\n+6FCEA4 Comment Length        0000 (0)\n+6FCEA6 Disk Start            0000 (0)\n+6FCEA8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCEAA Ext File Attributes   00000000 (0)\n+6FCEAE Local Header Offset   002FAC83 (3124355)\n+6FCEB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCEB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCEE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCEE8   Length              0005 (5)\n+6FCEEA   Flags               01 (1) 'Modification'\n+6FCEEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCEEF CENTRAL HEADER #924   02014B50 (33639248)\n+6FCEF3 Created Zip Spec      14 (20) '2.0'\n+6FCEF4 Created OS            00 (0) 'MS-DOS'\n+6FCEF5 Extract Zip Spec      14 (20) '2.0'\n+6FCEF6 Extract OS            00 (0) 'MS-DOS'\n+6FCEF7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCEF9 Compression Method    0000 (0) 'Stored'\n+6FCEFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCEFF CRC                   9A747BAC (2591325100)\n+6FCF03 Compressed Size       00001305 (4869)\n+6FCF07 Uncompressed Size     00001305 (4869)\n+6FCF0B Filename Length       0031 (49)\n+6FCF0D Extra Length          0009 (9)\n+6FCF0F Comment Length        0000 (0)\n+6FCF11 Disk Start            0000 (0)\n+6FCF13 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCF15 Ext File Attributes   00000000 (0)\n+6FCF19 Local Header Offset   00300EDB (3149531)\n+6FCF1D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCF1D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCF4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCF50   Length              0005 (5)\n+6FCF52   Flags               01 (1) 'Modification'\n+6FCF53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCF57 CENTRAL HEADER #925   02014B50 (33639248)\n+6FCF5B Created Zip Spec      14 (20) '2.0'\n+6FCF5C Created OS            00 (0) 'MS-DOS'\n+6FCF5D Extract Zip Spec      14 (20) '2.0'\n+6FCF5E Extract OS            00 (0) 'MS-DOS'\n+6FCF5F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCF61 Compression Method    0000 (0) 'Stored'\n+6FCF63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCF67 CRC                   F1EB3E77 (4058726007)\n+6FCF6B Compressed Size       000016D7 (5847)\n+6FCF6F Uncompressed Size     000016D7 (5847)\n+6FCF73 Filename Length       0034 (52)\n+6FCF75 Extra Length          0009 (9)\n+6FCF77 Comment Length        0000 (0)\n+6FCF79 Disk Start            0000 (0)\n+6FCF7B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCF7D Ext File Attributes   00000000 (0)\n+6FCF81 Local Header Offset   00302248 (3154504)\n+6FCF85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCF85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FCFB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FCFBB   Length              0005 (5)\n+6FCFBD   Flags               01 (1) 'Modification'\n+6FCFBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FCFC2 CENTRAL HEADER #926   02014B50 (33639248)\n+6FCFC6 Created Zip Spec      14 (20) '2.0'\n+6FCFC7 Created OS            00 (0) 'MS-DOS'\n+6FCFC8 Extract Zip Spec      14 (20) '2.0'\n+6FCFC9 Extract OS            00 (0) 'MS-DOS'\n+6FCFCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FCFCC Compression Method    0000 (0) 'Stored'\n+6FCFCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FCFD2 CRC                   7F641F8A (2137268106)\n+6FCFD6 Compressed Size       00001B65 (7013)\n+6FCFDA Uncompressed Size     00001B65 (7013)\n+6FCFDE Filename Length       0032 (50)\n+6FCFE0 Extra Length          0009 (9)\n+6FCFE2 Comment Length        0000 (0)\n+6FCFE4 Disk Start            0000 (0)\n+6FCFE6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FCFE8 Ext File Attributes   00000000 (0)\n+6FCFEC Local Header Offset   0030398A (3160458)\n+6FCFF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FCFF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD022 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD024   Length              0005 (5)\n+6FD026   Flags               01 (1) 'Modification'\n+6FD027   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD02B CENTRAL HEADER #927   02014B50 (33639248)\n+6FD02F Created Zip Spec      14 (20) '2.0'\n+6FD030 Created OS            00 (0) 'MS-DOS'\n+6FD031 Extract Zip Spec      14 (20) '2.0'\n+6FD032 Extract OS            00 (0) 'MS-DOS'\n+6FD033 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD035 Compression Method    0000 (0) 'Stored'\n+6FD037 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD03B CRC                   6C21C4E0 (1814152416)\n+6FD03F Compressed Size       00003707 (14087)\n+6FD043 Uncompressed Size     00003707 (14087)\n+6FD047 Filename Length       002E (46)\n+6FD049 Extra Length          0009 (9)\n+6FD04B Comment Length        0000 (0)\n+6FD04D Disk Start            0000 (0)\n+6FD04F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD051 Ext File Attributes   00000000 (0)\n+6FD055 Local Header Offset   00305558 (3167576)\n+6FD059 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD059: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD087 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD089   Length              0005 (5)\n+6FD08B   Flags               01 (1) 'Modification'\n+6FD08C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD090 CENTRAL HEADER #928   02014B50 (33639248)\n+6FD094 Created Zip Spec      14 (20) '2.0'\n+6FD095 Created OS            00 (0) 'MS-DOS'\n+6FD096 Extract Zip Spec      14 (20) '2.0'\n+6FD097 Extract OS            00 (0) 'MS-DOS'\n+6FD098 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD09A Compression Method    0000 (0) 'Stored'\n+6FD09C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD0A0 CRC                   F3BD8170 (4089282928)\n+6FD0A4 Compressed Size       000008A1 (2209)\n+6FD0A8 Uncompressed Size     000008A1 (2209)\n+6FD0AC Filename Length       002B (43)\n+6FD0AE Extra Length          0009 (9)\n+6FD0B0 Comment Length        0000 (0)\n+6FD0B2 Disk Start            0000 (0)\n+6FD0B4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD0B6 Ext File Attributes   00000000 (0)\n+6FD0BA Local Header Offset   00308CC4 (3181764)\n+6FD0BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD0BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD0E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD0EB   Length              0005 (5)\n+6FD0ED   Flags               01 (1) 'Modification'\n+6FD0EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD0F2 CENTRAL HEADER #929   02014B50 (33639248)\n+6FD0F6 Created Zip Spec      14 (20) '2.0'\n+6FD0F7 Created OS            00 (0) 'MS-DOS'\n+6FD0F8 Extract Zip Spec      14 (20) '2.0'\n+6FD0F9 Extract OS            00 (0) 'MS-DOS'\n+6FD0FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD0FC Compression Method    0000 (0) 'Stored'\n+6FD0FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD102 CRC                   56A68FB6 (1453756342)\n+6FD106 Compressed Size       000023BC (9148)\n+6FD10A Uncompressed Size     000023BC (9148)\n+6FD10E Filename Length       002F (47)\n+6FD110 Extra Length          0009 (9)\n+6FD112 Comment Length        0000 (0)\n+6FD114 Disk Start            0000 (0)\n+6FD116 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD118 Ext File Attributes   00000000 (0)\n+6FD11C Local Header Offset   003095C7 (3184071)\n+6FD120 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD120: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD14F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD151   Length              0005 (5)\n+6FD153   Flags               01 (1) 'Modification'\n+6FD154   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD158 CENTRAL HEADER #930   02014B50 (33639248)\n+6FD15C Created Zip Spec      14 (20) '2.0'\n+6FD15D Created OS            00 (0) 'MS-DOS'\n+6FD15E Extract Zip Spec      14 (20) '2.0'\n+6FD15F Extract OS            00 (0) 'MS-DOS'\n+6FD160 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD162 Compression Method    0000 (0) 'Stored'\n+6FD164 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD168 CRC                   6C5A36DD (1817851613)\n+6FD16C Compressed Size       00000495 (1173)\n+6FD170 Uncompressed Size     00000495 (1173)\n+6FD174 Filename Length       002E (46)\n+6FD176 Extra Length          0009 (9)\n+6FD178 Comment Length        0000 (0)\n+6FD17A Disk Start            0000 (0)\n+6FD17C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD17E Ext File Attributes   00000000 (0)\n+6FD182 Local Header Offset   0030B9E9 (3193321)\n+6FD186 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD186: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD1B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD1B6   Length              0005 (5)\n+6FD1B8   Flags               01 (1) 'Modification'\n+6FD1B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD1BD CENTRAL HEADER #931   02014B50 (33639248)\n+6FD1C1 Created Zip Spec      14 (20) '2.0'\n+6FD1C2 Created OS            00 (0) 'MS-DOS'\n+6FD1C3 Extract Zip Spec      14 (20) '2.0'\n+6FD1C4 Extract OS            00 (0) 'MS-DOS'\n+6FD1C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD1C7 Compression Method    0000 (0) 'Stored'\n+6FD1C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD1CD CRC                   566E5E12 (1450073618)\n+6FD1D1 Compressed Size       0000047F (1151)\n+6FD1D5 Uncompressed Size     0000047F (1151)\n+6FD1D9 Filename Length       0030 (48)\n+6FD1DB Extra Length          0009 (9)\n+6FD1DD Comment Length        0000 (0)\n+6FD1DF Disk Start            0000 (0)\n+6FD1E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD1E3 Ext File Attributes   00000000 (0)\n+6FD1E7 Local Header Offset   0030BEE3 (3194595)\n+6FD1EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD1EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD21B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD21D   Length              0005 (5)\n+6FD21F   Flags               01 (1) 'Modification'\n+6FD220   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD224 CENTRAL HEADER #932   02014B50 (33639248)\n+6FD228 Created Zip Spec      14 (20) '2.0'\n+6FD229 Created OS            00 (0) 'MS-DOS'\n+6FD22A Extract Zip Spec      14 (20) '2.0'\n+6FD22B Extract OS            00 (0) 'MS-DOS'\n+6FD22C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD22E Compression Method    0000 (0) 'Stored'\n+6FD230 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD234 CRC                   111FF296 (287306390)\n+6FD238 Compressed Size       00000B99 (2969)\n+6FD23C Uncompressed Size     00000B99 (2969)\n+6FD240 Filename Length       0026 (38)\n+6FD242 Extra Length          0009 (9)\n+6FD244 Comment Length        0000 (0)\n+6FD246 Disk Start            0000 (0)\n+6FD248 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD24A Ext File Attributes   00000000 (0)\n+6FD24E Local Header Offset   0030C3C9 (3195849)\n+6FD252 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD252: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD278 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD27A   Length              0005 (5)\n+6FD27C   Flags               01 (1) 'Modification'\n+6FD27D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD281 CENTRAL HEADER #933   02014B50 (33639248)\n+6FD285 Created Zip Spec      14 (20) '2.0'\n+6FD286 Created OS            00 (0) 'MS-DOS'\n+6FD287 Extract Zip Spec      14 (20) '2.0'\n+6FD288 Extract OS            00 (0) 'MS-DOS'\n+6FD289 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD28B Compression Method    0000 (0) 'Stored'\n+6FD28D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD291 CRC                   44CDA5D9 (1154328025)\n+6FD295 Compressed Size       00000E77 (3703)\n+6FD299 Uncompressed Size     00000E77 (3703)\n+6FD29D Filename Length       002B (43)\n+6FD29F Extra Length          0009 (9)\n+6FD2A1 Comment Length        0000 (0)\n+6FD2A3 Disk Start            0000 (0)\n+6FD2A5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD2A7 Ext File Attributes   00000000 (0)\n+6FD2AB Local Header Offset   0030CFBF (3198911)\n+6FD2AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD2AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD2DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD2DC   Length              0005 (5)\n+6FD2DE   Flags               01 (1) 'Modification'\n+6FD2DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD2E3 CENTRAL HEADER #934   02014B50 (33639248)\n+6FD2E7 Created Zip Spec      14 (20) '2.0'\n+6FD2E8 Created OS            00 (0) 'MS-DOS'\n+6FD2E9 Extract Zip Spec      14 (20) '2.0'\n+6FD2EA Extract OS            00 (0) 'MS-DOS'\n+6FD2EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD2ED Compression Method    0000 (0) 'Stored'\n+6FD2EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD2F3 CRC                   8233D78E (2184435598)\n+6FD2F7 Compressed Size       000013B4 (5044)\n+6FD2FB Uncompressed Size     000013B4 (5044)\n+6FD2FF Filename Length       002E (46)\n+6FD301 Extra Length          0009 (9)\n+6FD303 Comment Length        0000 (0)\n+6FD305 Disk Start            0000 (0)\n+6FD307 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD309 Ext File Attributes   00000000 (0)\n+6FD30D Local Header Offset   0030DE98 (3202712)\n+6FD311 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD311: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD33F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD341   Length              0005 (5)\n+6FD343   Flags               01 (1) 'Modification'\n+6FD344   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD348 CENTRAL HEADER #935   02014B50 (33639248)\n+6FD34C Created Zip Spec      14 (20) '2.0'\n+6FD34D Created OS            00 (0) 'MS-DOS'\n+6FD34E Extract Zip Spec      14 (20) '2.0'\n+6FD34F Extract OS            00 (0) 'MS-DOS'\n+6FD350 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD352 Compression Method    0000 (0) 'Stored'\n+6FD354 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD358 CRC                   D584FEC4 (3582262980)\n+6FD35C Compressed Size       00001869 (6249)\n+6FD360 Uncompressed Size     00001869 (6249)\n+6FD364 Filename Length       0031 (49)\n+6FD366 Extra Length          0009 (9)\n+6FD368 Comment Length        0000 (0)\n+6FD36A Disk Start            0000 (0)\n+6FD36C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD36E Ext File Attributes   00000000 (0)\n+6FD372 Local Header Offset   0030F2B1 (3207857)\n+6FD376 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD376: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD3A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD3A9   Length              0005 (5)\n+6FD3AB   Flags               01 (1) 'Modification'\n+6FD3AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD3B0 CENTRAL HEADER #936   02014B50 (33639248)\n+6FD3B4 Created Zip Spec      14 (20) '2.0'\n+6FD3B5 Created OS            00 (0) 'MS-DOS'\n+6FD3B6 Extract Zip Spec      14 (20) '2.0'\n+6FD3B7 Extract OS            00 (0) 'MS-DOS'\n+6FD3B8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD3BA Compression Method    0000 (0) 'Stored'\n+6FD3BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD3C0 CRC                   6E2E32B0 (1848521392)\n+6FD3C4 Compressed Size       000022C0 (8896)\n+6FD3C8 Uncompressed Size     000022C0 (8896)\n+6FD3CC Filename Length       0029 (41)\n+6FD3CE Extra Length          0009 (9)\n+6FD3D0 Comment Length        0000 (0)\n+6FD3D2 Disk Start            0000 (0)\n+6FD3D4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD3D6 Ext File Attributes   00000000 (0)\n+6FD3DA Local Header Offset   00310B82 (3214210)\n+6FD3DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD3DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD409   Length              0005 (5)\n+6FD40B   Flags               01 (1) 'Modification'\n+6FD40C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD410 CENTRAL HEADER #937   02014B50 (33639248)\n+6FD414 Created Zip Spec      14 (20) '2.0'\n+6FD415 Created OS            00 (0) 'MS-DOS'\n+6FD416 Extract Zip Spec      14 (20) '2.0'\n+6FD417 Extract OS            00 (0) 'MS-DOS'\n+6FD418 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD41A Compression Method    0000 (0) 'Stored'\n+6FD41C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD420 CRC                   C17F4D7C (3246345596)\n+6FD424 Compressed Size       0000068F (1679)\n+6FD428 Uncompressed Size     0000068F (1679)\n+6FD42C Filename Length       002A (42)\n+6FD42E Extra Length          0009 (9)\n+6FD430 Comment Length        0000 (0)\n+6FD432 Disk Start            0000 (0)\n+6FD434 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD436 Ext File Attributes   00000000 (0)\n+6FD43A Local Header Offset   00312EA2 (3223202)\n+6FD43E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD43E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD468 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD46A   Length              0005 (5)\n+6FD46C   Flags               01 (1) 'Modification'\n+6FD46D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD471 CENTRAL HEADER #938   02014B50 (33639248)\n+6FD475 Created Zip Spec      14 (20) '2.0'\n+6FD476 Created OS            00 (0) 'MS-DOS'\n+6FD477 Extract Zip Spec      14 (20) '2.0'\n+6FD478 Extract OS            00 (0) 'MS-DOS'\n+6FD479 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD47B Compression Method    0000 (0) 'Stored'\n+6FD47D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD481 CRC                   0D00D936 (218159414)\n+6FD485 Compressed Size       00000E8E (3726)\n+6FD489 Uncompressed Size     00000E8E (3726)\n+6FD48D Filename Length       0029 (41)\n+6FD48F Extra Length          0009 (9)\n+6FD491 Comment Length        0000 (0)\n+6FD493 Disk Start            0000 (0)\n+6FD495 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD497 Ext File Attributes   00000000 (0)\n+6FD49B Local Header Offset   00313592 (3224978)\n+6FD49F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD49F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD4C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD4CA   Length              0005 (5)\n+6FD4CC   Flags               01 (1) 'Modification'\n+6FD4CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD4D1 CENTRAL HEADER #939   02014B50 (33639248)\n+6FD4D5 Created Zip Spec      14 (20) '2.0'\n+6FD4D6 Created OS            00 (0) 'MS-DOS'\n+6FD4D7 Extract Zip Spec      14 (20) '2.0'\n+6FD4D8 Extract OS            00 (0) 'MS-DOS'\n+6FD4D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD4DB Compression Method    0000 (0) 'Stored'\n+6FD4DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD4E1 CRC                   F4388FF8 (4097347576)\n+6FD4E5 Compressed Size       00000F20 (3872)\n+6FD4E9 Uncompressed Size     00000F20 (3872)\n+6FD4ED Filename Length       002A (42)\n+6FD4EF Extra Length          0009 (9)\n+6FD4F1 Comment Length        0000 (0)\n+6FD4F3 Disk Start            0000 (0)\n+6FD4F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD4F7 Ext File Attributes   00000000 (0)\n+6FD4FB Local Header Offset   00314480 (3228800)\n+6FD4FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD4FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD529 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD52B   Length              0005 (5)\n+6FD52D   Flags               01 (1) 'Modification'\n+6FD52E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD532 CENTRAL HEADER #940   02014B50 (33639248)\n+6FD536 Created Zip Spec      14 (20) '2.0'\n+6FD537 Created OS            00 (0) 'MS-DOS'\n+6FD538 Extract Zip Spec      14 (20) '2.0'\n+6FD539 Extract OS            00 (0) 'MS-DOS'\n+6FD53A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD53C Compression Method    0000 (0) 'Stored'\n+6FD53E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD542 CRC                   39FACF71 (972738417)\n+6FD546 Compressed Size       00003613 (13843)\n+6FD54A Uncompressed Size     00003613 (13843)\n+6FD54E Filename Length       002B (43)\n+6FD550 Extra Length          0009 (9)\n+6FD552 Comment Length        0000 (0)\n+6FD554 Disk Start            0000 (0)\n+6FD556 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD558 Ext File Attributes   00000000 (0)\n+6FD55C Local Header Offset   00315401 (3232769)\n+6FD560 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD560: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD58B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD58D   Length              0005 (5)\n+6FD58F   Flags               01 (1) 'Modification'\n+6FD590   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD594 CENTRAL HEADER #941   02014B50 (33639248)\n+6FD598 Created Zip Spec      14 (20) '2.0'\n+6FD599 Created OS            00 (0) 'MS-DOS'\n+6FD59A Extract Zip Spec      14 (20) '2.0'\n+6FD59B Extract OS            00 (0) 'MS-DOS'\n+6FD59C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD59E Compression Method    0000 (0) 'Stored'\n+6FD5A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD5A4 CRC                   2FD52EF2 (802500338)\n+6FD5A8 Compressed Size       00002A6C (10860)\n+6FD5AC Uncompressed Size     00002A6C (10860)\n+6FD5B0 Filename Length       002B (43)\n+6FD5B2 Extra Length          0009 (9)\n+6FD5B4 Comment Length        0000 (0)\n+6FD5B6 Disk Start            0000 (0)\n+6FD5B8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD5BA Ext File Attributes   00000000 (0)\n+6FD5BE Local Header Offset   00318A76 (3246710)\n+6FD5C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD5C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD5ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD5EF   Length              0005 (5)\n+6FD5F1   Flags               01 (1) 'Modification'\n+6FD5F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD5F6 CENTRAL HEADER #942   02014B50 (33639248)\n+6FD5FA Created Zip Spec      14 (20) '2.0'\n+6FD5FB Created OS            00 (0) 'MS-DOS'\n+6FD5FC Extract Zip Spec      14 (20) '2.0'\n+6FD5FD Extract OS            00 (0) 'MS-DOS'\n+6FD5FE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD600 Compression Method    0000 (0) 'Stored'\n+6FD602 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD606 CRC                   23EF92DF (602903263)\n+6FD60A Compressed Size       0000606B (24683)\n+6FD60E Uncompressed Size     0000606B (24683)\n+6FD612 Filename Length       002C (44)\n+6FD614 Extra Length          0009 (9)\n+6FD616 Comment Length        0000 (0)\n+6FD618 Disk Start            0000 (0)\n+6FD61A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD61C Ext File Attributes   00000000 (0)\n+6FD620 Local Header Offset   0031B544 (3257668)\n+6FD624 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD624: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD650 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD652   Length              0005 (5)\n+6FD654   Flags               01 (1) 'Modification'\n+6FD655   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD659 CENTRAL HEADER #943   02014B50 (33639248)\n+6FD65D Created Zip Spec      14 (20) '2.0'\n+6FD65E Created OS            00 (0) 'MS-DOS'\n+6FD65F Extract Zip Spec      14 (20) '2.0'\n+6FD660 Extract OS            00 (0) 'MS-DOS'\n+6FD661 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD663 Compression Method    0000 (0) 'Stored'\n+6FD665 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD669 CRC                   42C7E3CE (1120396238)\n+6FD66D Compressed Size       000021AF (8623)\n+6FD671 Uncompressed Size     000021AF (8623)\n+6FD675 Filename Length       0030 (48)\n+6FD677 Extra Length          0009 (9)\n+6FD679 Comment Length        0000 (0)\n+6FD67B Disk Start            0000 (0)\n+6FD67D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD67F Ext File Attributes   00000000 (0)\n+6FD683 Local Header Offset   00321612 (3282450)\n+6FD687 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD687: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD6B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD6B9   Length              0005 (5)\n+6FD6BB   Flags               01 (1) 'Modification'\n+6FD6BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD6C0 CENTRAL HEADER #944   02014B50 (33639248)\n+6FD6C4 Created Zip Spec      14 (20) '2.0'\n+6FD6C5 Created OS            00 (0) 'MS-DOS'\n+6FD6C6 Extract Zip Spec      14 (20) '2.0'\n+6FD6C7 Extract OS            00 (0) 'MS-DOS'\n+6FD6C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD6CA Compression Method    0000 (0) 'Stored'\n+6FD6CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD6D0 CRC                   9B8BDB69 (2609634153)\n+6FD6D4 Compressed Size       00003527 (13607)\n+6FD6D8 Uncompressed Size     00003527 (13607)\n+6FD6DC Filename Length       002B (43)\n+6FD6DE Extra Length          0009 (9)\n+6FD6E0 Comment Length        0000 (0)\n+6FD6E2 Disk Start            0000 (0)\n+6FD6E4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD6E6 Ext File Attributes   00000000 (0)\n+6FD6EA Local Header Offset   00323828 (3291176)\n+6FD6EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD6EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD719 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD71B   Length              0005 (5)\n+6FD71D   Flags               01 (1) 'Modification'\n+6FD71E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD722 CENTRAL HEADER #945   02014B50 (33639248)\n+6FD726 Created Zip Spec      14 (20) '2.0'\n+6FD727 Created OS            00 (0) 'MS-DOS'\n+6FD728 Extract Zip Spec      14 (20) '2.0'\n+6FD729 Extract OS            00 (0) 'MS-DOS'\n+6FD72A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD72C Compression Method    0000 (0) 'Stored'\n+6FD72E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD732 CRC                   8A9B11DB (2325418459)\n+6FD736 Compressed Size       000080AE (32942)\n+6FD73A Uncompressed Size     000080AE (32942)\n+6FD73E Filename Length       002A (42)\n+6FD740 Extra Length          0009 (9)\n+6FD742 Comment Length        0000 (0)\n+6FD744 Disk Start            0000 (0)\n+6FD746 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD748 Ext File Attributes   00000000 (0)\n+6FD74C Local Header Offset   00326DB1 (3304881)\n+6FD750 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD750: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD77A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD77C   Length              0005 (5)\n+6FD77E   Flags               01 (1) 'Modification'\n+6FD77F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD783 CENTRAL HEADER #946   02014B50 (33639248)\n+6FD787 Created Zip Spec      14 (20) '2.0'\n+6FD788 Created OS            00 (0) 'MS-DOS'\n+6FD789 Extract Zip Spec      14 (20) '2.0'\n+6FD78A Extract OS            00 (0) 'MS-DOS'\n+6FD78B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD78D Compression Method    0000 (0) 'Stored'\n+6FD78F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD793 CRC                   2A6335AE (711144878)\n+6FD797 Compressed Size       00003628 (13864)\n+6FD79B Uncompressed Size     00003628 (13864)\n+6FD79F Filename Length       002E (46)\n+6FD7A1 Extra Length          0009 (9)\n+6FD7A3 Comment Length        0000 (0)\n+6FD7A5 Disk Start            0000 (0)\n+6FD7A7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD7A9 Ext File Attributes   00000000 (0)\n+6FD7AD Local Header Offset   0032EEC0 (3337920)\n+6FD7B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD7B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD7DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD7E1   Length              0005 (5)\n+6FD7E3   Flags               01 (1) 'Modification'\n+6FD7E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD7E8 CENTRAL HEADER #947   02014B50 (33639248)\n+6FD7EC Created Zip Spec      14 (20) '2.0'\n+6FD7ED Created OS            00 (0) 'MS-DOS'\n+6FD7EE Extract Zip Spec      14 (20) '2.0'\n+6FD7EF Extract OS            00 (0) 'MS-DOS'\n+6FD7F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD7F2 Compression Method    0000 (0) 'Stored'\n+6FD7F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD7F8 CRC                   4DECBF7A (1307361146)\n+6FD7FC Compressed Size       00001CA2 (7330)\n+6FD800 Uncompressed Size     00001CA2 (7330)\n+6FD804 Filename Length       0026 (38)\n+6FD806 Extra Length          0009 (9)\n+6FD808 Comment Length        0000 (0)\n+6FD80A Disk Start            0000 (0)\n+6FD80C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD80E Ext File Attributes   00000000 (0)\n+6FD812 Local Header Offset   0033254D (3351885)\n+6FD816 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD816: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD83C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD83E   Length              0005 (5)\n+6FD840   Flags               01 (1) 'Modification'\n+6FD841   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD845 CENTRAL HEADER #948   02014B50 (33639248)\n+6FD849 Created Zip Spec      14 (20) '2.0'\n+6FD84A Created OS            00 (0) 'MS-DOS'\n+6FD84B Extract Zip Spec      14 (20) '2.0'\n+6FD84C Extract OS            00 (0) 'MS-DOS'\n+6FD84D General Purpose Flag  0000 (0)\n+6FD84F Compression Method    0000 (0) 'Stored'\n+6FD851 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD855 CRC                   00000000 (0)\n+6FD859 Compressed Size       00000000 (0)\n+6FD85D Uncompressed Size     00000000 (0)\n+6FD861 Filename Length       0023 (35)\n+6FD863 Extra Length          0009 (9)\n+6FD865 Comment Length        0000 (0)\n+6FD867 Disk Start            0000 (0)\n+6FD869 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD86B Ext File Attributes   00000000 (0)\n+6FD86F Local Header Offset   0033424C (3359308)\n+6FD873 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD873: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD896 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD898   Length              0005 (5)\n+6FD89A   Flags               01 (1) 'Modification'\n+6FD89B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD89F CENTRAL HEADER #949   02014B50 (33639248)\n+6FD8A3 Created Zip Spec      14 (20) '2.0'\n+6FD8A4 Created OS            00 (0) 'MS-DOS'\n+6FD8A5 Extract Zip Spec      14 (20) '2.0'\n+6FD8A6 Extract OS            00 (0) 'MS-DOS'\n+6FD8A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD8A9 Compression Method    0000 (0) 'Stored'\n+6FD8AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD8AF CRC                   DF16DFCA (3742818250)\n+6FD8B3 Compressed Size       000005D0 (1488)\n+6FD8B7 Uncompressed Size     000005D0 (1488)\n+6FD8BB Filename Length       0030 (48)\n+6FD8BD Extra Length          0009 (9)\n+6FD8BF Comment Length        0000 (0)\n+6FD8C1 Disk Start            0000 (0)\n+6FD8C3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD8C5 Ext File Attributes   00000000 (0)\n+6FD8C9 Local Header Offset   00334296 (3359382)\n+6FD8CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD8CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD8FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD8FF   Length              0005 (5)\n+6FD901   Flags               01 (1) 'Modification'\n+6FD902   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD906 CENTRAL HEADER #950   02014B50 (33639248)\n+6FD90A Created Zip Spec      14 (20) '2.0'\n+6FD90B Created OS            00 (0) 'MS-DOS'\n+6FD90C Extract Zip Spec      14 (20) '2.0'\n+6FD90D Extract OS            00 (0) 'MS-DOS'\n+6FD90E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD910 Compression Method    0000 (0) 'Stored'\n+6FD912 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD916 CRC                   14F52AE5 (351611621)\n+6FD91A Compressed Size       00001E9C (7836)\n+6FD91E Uncompressed Size     00001E9C (7836)\n+6FD922 Filename Length       0036 (54)\n+6FD924 Extra Length          0009 (9)\n+6FD926 Comment Length        0000 (0)\n+6FD928 Disk Start            0000 (0)\n+6FD92A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD92C Ext File Attributes   00000000 (0)\n+6FD930 Local Header Offset   003348CD (3360973)\n+6FD934 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD934: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD96A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD96C   Length              0005 (5)\n+6FD96E   Flags               01 (1) 'Modification'\n+6FD96F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD973 CENTRAL HEADER #951   02014B50 (33639248)\n+6FD977 Created Zip Spec      14 (20) '2.0'\n+6FD978 Created OS            00 (0) 'MS-DOS'\n+6FD979 Extract Zip Spec      14 (20) '2.0'\n+6FD97A Extract OS            00 (0) 'MS-DOS'\n+6FD97B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD97D Compression Method    0000 (0) 'Stored'\n+6FD97F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD983 CRC                   455A049E (1163527326)\n+6FD987 Compressed Size       00001BA0 (7072)\n+6FD98B Uncompressed Size     00001BA0 (7072)\n+6FD98F Filename Length       0034 (52)\n+6FD991 Extra Length          0009 (9)\n+6FD993 Comment Length        0000 (0)\n+6FD995 Disk Start            0000 (0)\n+6FD997 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FD999 Ext File Attributes   00000000 (0)\n+6FD99D Local Header Offset   003367D6 (3368918)\n+6FD9A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FD9A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FD9D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FD9D7   Length              0005 (5)\n+6FD9D9   Flags               01 (1) 'Modification'\n+6FD9DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FD9DE CENTRAL HEADER #952   02014B50 (33639248)\n+6FD9E2 Created Zip Spec      14 (20) '2.0'\n+6FD9E3 Created OS            00 (0) 'MS-DOS'\n+6FD9E4 Extract Zip Spec      14 (20) '2.0'\n+6FD9E5 Extract OS            00 (0) 'MS-DOS'\n+6FD9E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FD9E8 Compression Method    0000 (0) 'Stored'\n+6FD9EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FD9EE CRC                   C852179E (3360823198)\n+6FD9F2 Compressed Size       00000798 (1944)\n+6FD9F6 Uncompressed Size     00000798 (1944)\n+6FD9FA Filename Length       002E (46)\n+6FD9FC Extra Length          0009 (9)\n+6FD9FE Comment Length        0000 (0)\n+6FDA00 Disk Start            0000 (0)\n+6FDA02 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDA04 Ext File Attributes   00000000 (0)\n+6FDA08 Local Header Offset   003383E1 (3376097)\n+6FDA0C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDA0C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDA3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDA3C   Length              0005 (5)\n+6FDA3E   Flags               01 (1) 'Modification'\n+6FDA3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDA43 CENTRAL HEADER #953   02014B50 (33639248)\n+6FDA47 Created Zip Spec      14 (20) '2.0'\n+6FDA48 Created OS            00 (0) 'MS-DOS'\n+6FDA49 Extract Zip Spec      14 (20) '2.0'\n+6FDA4A Extract OS            00 (0) 'MS-DOS'\n+6FDA4B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDA4D Compression Method    0000 (0) 'Stored'\n+6FDA4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDA53 CRC                   BD46272F (3175491375)\n+6FDA57 Compressed Size       00001CB5 (7349)\n+6FDA5B Uncompressed Size     00001CB5 (7349)\n+6FDA5F Filename Length       0031 (49)\n+6FDA61 Extra Length          0009 (9)\n+6FDA63 Comment Length        0000 (0)\n+6FDA65 Disk Start            0000 (0)\n+6FDA67 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDA69 Ext File Attributes   00000000 (0)\n+6FDA6D Local Header Offset   00338BDE (3378142)\n+6FDA71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDA71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDAA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDAA4   Length              0005 (5)\n+6FDAA6   Flags               01 (1) 'Modification'\n+6FDAA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDAAB CENTRAL HEADER #954   02014B50 (33639248)\n+6FDAAF Created Zip Spec      14 (20) '2.0'\n+6FDAB0 Created OS            00 (0) 'MS-DOS'\n+6FDAB1 Extract Zip Spec      14 (20) '2.0'\n+6FDAB2 Extract OS            00 (0) 'MS-DOS'\n+6FDAB3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDAB5 Compression Method    0000 (0) 'Stored'\n+6FDAB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDABB CRC                   F51CAE43 (4112297539)\n+6FDABF Compressed Size       00001BD5 (7125)\n+6FDAC3 Uncompressed Size     00001BD5 (7125)\n+6FDAC7 Filename Length       002F (47)\n+6FDAC9 Extra Length          0009 (9)\n+6FDACB Comment Length        0000 (0)\n+6FDACD Disk Start            0000 (0)\n+6FDACF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDAD1 Ext File Attributes   00000000 (0)\n+6FDAD5 Local Header Offset   0033A8FB (3385595)\n+6FDAD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDAD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDB08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDB0A   Length              0005 (5)\n+6FDB0C   Flags               01 (1) 'Modification'\n+6FDB0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDB11 CENTRAL HEADER #955   02014B50 (33639248)\n+6FDB15 Created Zip Spec      14 (20) '2.0'\n+6FDB16 Created OS            00 (0) 'MS-DOS'\n+6FDB17 Extract Zip Spec      14 (20) '2.0'\n+6FDB18 Extract OS            00 (0) 'MS-DOS'\n+6FDB19 General Purpose Flag  0000 (0)\n+6FDB1B Compression Method    0000 (0) 'Stored'\n+6FDB1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDB21 CRC                   00000000 (0)\n+6FDB25 Compressed Size       00000000 (0)\n+6FDB29 Uncompressed Size     00000000 (0)\n+6FDB2D Filename Length       0022 (34)\n+6FDB2F Extra Length          0009 (9)\n+6FDB31 Comment Length        0000 (0)\n+6FDB33 Disk Start            0000 (0)\n+6FDB35 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDB37 Ext File Attributes   00000000 (0)\n+6FDB3B Local Header Offset   0033C536 (3392822)\n+6FDB3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDB3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDB61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDB63   Length              0005 (5)\n+6FDB65   Flags               01 (1) 'Modification'\n+6FDB66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDB6A CENTRAL HEADER #956   02014B50 (33639248)\n+6FDB6E Created Zip Spec      14 (20) '2.0'\n+6FDB6F Created OS            00 (0) 'MS-DOS'\n+6FDB70 Extract Zip Spec      14 (20) '2.0'\n+6FDB71 Extract OS            00 (0) 'MS-DOS'\n+6FDB72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDB74 Compression Method    0000 (0) 'Stored'\n+6FDB76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDB7A CRC                   D413AF69 (3558059881)\n+6FDB7E Compressed Size       0000D22D (53805)\n+6FDB82 Uncompressed Size     0000D22D (53805)\n+6FDB86 Filename Length       0035 (53)\n+6FDB88 Extra Length          0009 (9)\n+6FDB8A Comment Length        0000 (0)\n+6FDB8C Disk Start            0000 (0)\n+6FDB8E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDB90 Ext File Attributes   00000000 (0)\n+6FDB94 Local Header Offset   0033C57F (3392895)\n+6FDB98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDB98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDBCD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDBCF   Length              0005 (5)\n+6FDBD1   Flags               01 (1) 'Modification'\n+6FDBD2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDBD6 CENTRAL HEADER #957   02014B50 (33639248)\n+6FDBDA Created Zip Spec      14 (20) '2.0'\n+6FDBDB Created OS            00 (0) 'MS-DOS'\n+6FDBDC Extract Zip Spec      14 (20) '2.0'\n+6FDBDD Extract OS            00 (0) 'MS-DOS'\n+6FDBDE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDBE0 Compression Method    0000 (0) 'Stored'\n+6FDBE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDBE6 CRC                   E174331E (3782488862)\n+6FDBEA Compressed Size       0000048E (1166)\n+6FDBEE Uncompressed Size     0000048E (1166)\n+6FDBF2 Filename Length       0046 (70)\n+6FDBF4 Extra Length          0009 (9)\n+6FDBF6 Comment Length        0000 (0)\n+6FDBF8 Disk Start            0000 (0)\n+6FDBFA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDBFC Ext File Attributes   00000000 (0)\n+6FDC00 Local Header Offset   00349818 (3446808)\n+6FDC04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDC04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDC4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDC4C   Length              0005 (5)\n+6FDC4E   Flags               01 (1) 'Modification'\n+6FDC4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDC53 CENTRAL HEADER #958   02014B50 (33639248)\n+6FDC57 Created Zip Spec      14 (20) '2.0'\n+6FDC58 Created OS            00 (0) 'MS-DOS'\n+6FDC59 Extract Zip Spec      14 (20) '2.0'\n+6FDC5A Extract OS            00 (0) 'MS-DOS'\n+6FDC5B General Purpose Flag  0000 (0)\n+6FDC5D Compression Method    0000 (0) 'Stored'\n+6FDC5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDC63 CRC                   00000000 (0)\n+6FDC67 Compressed Size       00000000 (0)\n+6FDC6B Uncompressed Size     00000000 (0)\n+6FDC6F Filename Length       002B (43)\n+6FDC71 Extra Length          0009 (9)\n+6FDC73 Comment Length        0000 (0)\n+6FDC75 Disk Start            0000 (0)\n+6FDC77 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDC79 Ext File Attributes   00000000 (0)\n+6FDC7D Local Header Offset   00349D23 (3448099)\n+6FDC81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDC81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDCAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDCAE   Length              0005 (5)\n+6FDCB0   Flags               01 (1) 'Modification'\n+6FDCB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDCB5 CENTRAL HEADER #959   02014B50 (33639248)\n+6FDCB9 Created Zip Spec      14 (20) '2.0'\n+6FDCBA Created OS            00 (0) 'MS-DOS'\n+6FDCBB Extract Zip Spec      14 (20) '2.0'\n+6FDCBC Extract OS            00 (0) 'MS-DOS'\n+6FDCBD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDCBF Compression Method    0000 (0) 'Stored'\n+6FDCC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDCC5 CRC                   FC3CBC13 (4231838739)\n+6FDCC9 Compressed Size       00000A37 (2615)\n+6FDCCD Uncompressed Size     00000A37 (2615)\n+6FDCD1 Filename Length       003F (63)\n+6FDCD3 Extra Length          0009 (9)\n+6FDCD5 Comment Length        0000 (0)\n+6FDCD7 Disk Start            0000 (0)\n+6FDCD9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDCDB Ext File Attributes   00000000 (0)\n+6FDCDF Local Header Offset   00349D75 (3448181)\n+6FDCE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDCE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDD22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDD24   Length              0005 (5)\n+6FDD26   Flags               01 (1) 'Modification'\n+6FDD27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDD2B CENTRAL HEADER #960   02014B50 (33639248)\n+6FDD2F Created Zip Spec      14 (20) '2.0'\n+6FDD30 Created OS            00 (0) 'MS-DOS'\n+6FDD31 Extract Zip Spec      14 (20) '2.0'\n+6FDD32 Extract OS            00 (0) 'MS-DOS'\n+6FDD33 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDD35 Compression Method    0000 (0) 'Stored'\n+6FDD37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDD3B CRC                   A83ED6AA (2822690474)\n+6FDD3F Compressed Size       00002555 (9557)\n+6FDD43 Uncompressed Size     00002555 (9557)\n+6FDD47 Filename Length       0048 (72)\n+6FDD49 Extra Length          0009 (9)\n+6FDD4B Comment Length        0000 (0)\n+6FDD4D Disk Start            0000 (0)\n+6FDD4F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDD51 Ext File Attributes   00000000 (0)\n+6FDD55 Local Header Offset   0034A822 (3450914)\n+6FDD59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDD59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDDA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDDA3   Length              0005 (5)\n+6FDDA5   Flags               01 (1) 'Modification'\n+6FDDA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDDAA CENTRAL HEADER #961   02014B50 (33639248)\n+6FDDAE Created Zip Spec      14 (20) '2.0'\n+6FDDAF Created OS            00 (0) 'MS-DOS'\n+6FDDB0 Extract Zip Spec      14 (20) '2.0'\n+6FDDB1 Extract OS            00 (0) 'MS-DOS'\n+6FDDB2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDDB4 Compression Method    0000 (0) 'Stored'\n+6FDDB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDDBA CRC                   E160ED1C (3781225756)\n+6FDDBE Compressed Size       00001657 (5719)\n+6FDDC2 Uncompressed Size     00001657 (5719)\n+6FDDC6 Filename Length       0045 (69)\n+6FDDC8 Extra Length          0009 (9)\n+6FDDCA Comment Length        0000 (0)\n+6FDDCC Disk Start            0000 (0)\n+6FDDCE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDDD0 Ext File Attributes   00000000 (0)\n+6FDDD4 Local Header Offset   0034CDF6 (3460598)\n+6FDDD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDDD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDE1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDE1F   Length              0005 (5)\n+6FDE21   Flags               01 (1) 'Modification'\n+6FDE22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDE26 CENTRAL HEADER #962   02014B50 (33639248)\n+6FDE2A Created Zip Spec      14 (20) '2.0'\n+6FDE2B Created OS            00 (0) 'MS-DOS'\n+6FDE2C Extract Zip Spec      14 (20) '2.0'\n+6FDE2D Extract OS            00 (0) 'MS-DOS'\n+6FDE2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDE30 Compression Method    0000 (0) 'Stored'\n+6FDE32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDE36 CRC                   156605D7 (359007703)\n+6FDE3A Compressed Size       000010AA (4266)\n+6FDE3E Uncompressed Size     000010AA (4266)\n+6FDE42 Filename Length       0048 (72)\n+6FDE44 Extra Length          0009 (9)\n+6FDE46 Comment Length        0000 (0)\n+6FDE48 Disk Start            0000 (0)\n+6FDE4A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDE4C Ext File Attributes   00000000 (0)\n+6FDE50 Local Header Offset   0034E4C9 (3466441)\n+6FDE54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDE54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDE9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDE9E   Length              0005 (5)\n+6FDEA0   Flags               01 (1) 'Modification'\n+6FDEA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDEA5 CENTRAL HEADER #963   02014B50 (33639248)\n+6FDEA9 Created Zip Spec      14 (20) '2.0'\n+6FDEAA Created OS            00 (0) 'MS-DOS'\n+6FDEAB Extract Zip Spec      14 (20) '2.0'\n+6FDEAC Extract OS            00 (0) 'MS-DOS'\n+6FDEAD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDEAF Compression Method    0000 (0) 'Stored'\n+6FDEB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDEB5 CRC                   67C26956 (1740794198)\n+6FDEB9 Compressed Size       00001B93 (7059)\n+6FDEBD Uncompressed Size     00001B93 (7059)\n+6FDEC1 Filename Length       0046 (70)\n+6FDEC3 Extra Length          0009 (9)\n+6FDEC5 Comment Length        0000 (0)\n+6FDEC7 Disk Start            0000 (0)\n+6FDEC9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDECB Ext File Attributes   00000000 (0)\n+6FDECF Local Header Offset   0034F5F2 (3470834)\n+6FDED3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDED3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDF19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDF1B   Length              0005 (5)\n+6FDF1D   Flags               01 (1) 'Modification'\n+6FDF1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDF22 CENTRAL HEADER #964   02014B50 (33639248)\n+6FDF26 Created Zip Spec      14 (20) '2.0'\n+6FDF27 Created OS            00 (0) 'MS-DOS'\n+6FDF28 Extract Zip Spec      14 (20) '2.0'\n+6FDF29 Extract OS            00 (0) 'MS-DOS'\n+6FDF2A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDF2C Compression Method    0000 (0) 'Stored'\n+6FDF2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDF32 CRC                   46796056 (1182359638)\n+6FDF36 Compressed Size       00001B45 (6981)\n+6FDF3A Uncompressed Size     00001B45 (6981)\n+6FDF3E Filename Length       0042 (66)\n+6FDF40 Extra Length          0009 (9)\n+6FDF42 Comment Length        0000 (0)\n+6FDF44 Disk Start            0000 (0)\n+6FDF46 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDF48 Ext File Attributes   00000000 (0)\n+6FDF4C Local Header Offset   00351202 (3478018)\n+6FDF50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDF50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FDF92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FDF94   Length              0005 (5)\n+6FDF96   Flags               01 (1) 'Modification'\n+6FDF97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FDF9B CENTRAL HEADER #965   02014B50 (33639248)\n+6FDF9F Created Zip Spec      14 (20) '2.0'\n+6FDFA0 Created OS            00 (0) 'MS-DOS'\n+6FDFA1 Extract Zip Spec      14 (20) '2.0'\n+6FDFA2 Extract OS            00 (0) 'MS-DOS'\n+6FDFA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FDFA5 Compression Method    0000 (0) 'Stored'\n+6FDFA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FDFAB CRC                   C694724C (3331617356)\n+6FDFAF Compressed Size       00000788 (1928)\n+6FDFB3 Uncompressed Size     00000788 (1928)\n+6FDFB7 Filename Length       003F (63)\n+6FDFB9 Extra Length          0009 (9)\n+6FDFBB Comment Length        0000 (0)\n+6FDFBD Disk Start            0000 (0)\n+6FDFBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FDFC1 Ext File Attributes   00000000 (0)\n+6FDFC5 Local Header Offset   00352DC0 (3485120)\n+6FDFC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FDFC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE008 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE00A   Length              0005 (5)\n+6FE00C   Flags               01 (1) 'Modification'\n+6FE00D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE011 CENTRAL HEADER #966   02014B50 (33639248)\n+6FE015 Created Zip Spec      14 (20) '2.0'\n+6FE016 Created OS            00 (0) 'MS-DOS'\n+6FE017 Extract Zip Spec      14 (20) '2.0'\n+6FE018 Extract OS            00 (0) 'MS-DOS'\n+6FE019 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE01B Compression Method    0000 (0) 'Stored'\n+6FE01D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE021 CRC                   E2414032 (3795927090)\n+6FE025 Compressed Size       0000118B (4491)\n+6FE029 Uncompressed Size     0000118B (4491)\n+6FE02D Filename Length       0043 (67)\n+6FE02F Extra Length          0009 (9)\n+6FE031 Comment Length        0000 (0)\n+6FE033 Disk Start            0000 (0)\n+6FE035 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE037 Ext File Attributes   00000000 (0)\n+6FE03B Local Header Offset   003535BE (3487166)\n+6FE03F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE03F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE082 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE084   Length              0005 (5)\n+6FE086   Flags               01 (1) 'Modification'\n+6FE087   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE08B CENTRAL HEADER #967   02014B50 (33639248)\n+6FE08F Created Zip Spec      14 (20) '2.0'\n+6FE090 Created OS            00 (0) 'MS-DOS'\n+6FE091 Extract Zip Spec      14 (20) '2.0'\n+6FE092 Extract OS            00 (0) 'MS-DOS'\n+6FE093 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE095 Compression Method    0000 (0) 'Stored'\n+6FE097 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE09B CRC                   85CF6764 (2244962148)\n+6FE09F Compressed Size       00000DB3 (3507)\n+6FE0A3 Uncompressed Size     00000DB3 (3507)\n+6FE0A7 Filename Length       003F (63)\n+6FE0A9 Extra Length          0009 (9)\n+6FE0AB Comment Length        0000 (0)\n+6FE0AD Disk Start            0000 (0)\n+6FE0AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE0B1 Ext File Attributes   00000000 (0)\n+6FE0B5 Local Header Offset   003547C3 (3491779)\n+6FE0B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE0B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE0F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE0FA   Length              0005 (5)\n+6FE0FC   Flags               01 (1) 'Modification'\n+6FE0FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE101 CENTRAL HEADER #968   02014B50 (33639248)\n+6FE105 Created Zip Spec      14 (20) '2.0'\n+6FE106 Created OS            00 (0) 'MS-DOS'\n+6FE107 Extract Zip Spec      14 (20) '2.0'\n+6FE108 Extract OS            00 (0) 'MS-DOS'\n+6FE109 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE10B Compression Method    0000 (0) 'Stored'\n+6FE10D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE111 CRC                   D26D2315 (3530367765)\n+6FE115 Compressed Size       0000115F (4447)\n+6FE119 Uncompressed Size     0000115F (4447)\n+6FE11D Filename Length       0045 (69)\n+6FE11F Extra Length          0009 (9)\n+6FE121 Comment Length        0000 (0)\n+6FE123 Disk Start            0000 (0)\n+6FE125 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE127 Ext File Attributes   00000000 (0)\n+6FE12B Local Header Offset   003555EC (3495404)\n+6FE12F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE12F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE174 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE176   Length              0005 (5)\n+6FE178   Flags               01 (1) 'Modification'\n+6FE179   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE17D CENTRAL HEADER #969   02014B50 (33639248)\n+6FE181 Created Zip Spec      14 (20) '2.0'\n+6FE182 Created OS            00 (0) 'MS-DOS'\n+6FE183 Extract Zip Spec      14 (20) '2.0'\n+6FE184 Extract OS            00 (0) 'MS-DOS'\n+6FE185 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE187 Compression Method    0000 (0) 'Stored'\n+6FE189 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE18D CRC                   F796C627 (4153853479)\n+6FE191 Compressed Size       000018D0 (6352)\n+6FE195 Uncompressed Size     000018D0 (6352)\n+6FE199 Filename Length       003D (61)\n+6FE19B Extra Length          0009 (9)\n+6FE19D Comment Length        0000 (0)\n+6FE19F Disk Start            0000 (0)\n+6FE1A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE1A3 Ext File Attributes   00000000 (0)\n+6FE1A7 Local Header Offset   003567C7 (3499975)\n+6FE1AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE1AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE1E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE1EA   Length              0005 (5)\n+6FE1EC   Flags               01 (1) 'Modification'\n+6FE1ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE1F1 CENTRAL HEADER #970   02014B50 (33639248)\n+6FE1F5 Created Zip Spec      14 (20) '2.0'\n+6FE1F6 Created OS            00 (0) 'MS-DOS'\n+6FE1F7 Extract Zip Spec      14 (20) '2.0'\n+6FE1F8 Extract OS            00 (0) 'MS-DOS'\n+6FE1F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE1FB Compression Method    0000 (0) 'Stored'\n+6FE1FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE201 CRC                   EB12A7F1 (3943868401)\n+6FE205 Compressed Size       00000E08 (3592)\n+6FE209 Uncompressed Size     00000E08 (3592)\n+6FE20D Filename Length       003D (61)\n+6FE20F Extra Length          0009 (9)\n+6FE211 Comment Length        0000 (0)\n+6FE213 Disk Start            0000 (0)\n+6FE215 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE217 Ext File Attributes   00000000 (0)\n+6FE21B Local Header Offset   0035810B (3506443)\n+6FE21F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE21F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE25C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE25E   Length              0005 (5)\n+6FE260   Flags               01 (1) 'Modification'\n+6FE261   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE265 CENTRAL HEADER #971   02014B50 (33639248)\n+6FE269 Created Zip Spec      14 (20) '2.0'\n+6FE26A Created OS            00 (0) 'MS-DOS'\n+6FE26B Extract Zip Spec      14 (20) '2.0'\n+6FE26C Extract OS            00 (0) 'MS-DOS'\n+6FE26D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE26F Compression Method    0000 (0) 'Stored'\n+6FE271 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE275 CRC                   F5A79DAF (4121402799)\n+6FE279 Compressed Size       00000F2D (3885)\n+6FE27D Uncompressed Size     00000F2D (3885)\n+6FE281 Filename Length       003E (62)\n+6FE283 Extra Length          0009 (9)\n+6FE285 Comment Length        0000 (0)\n+6FE287 Disk Start            0000 (0)\n+6FE289 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE28B Ext File Attributes   00000000 (0)\n+6FE28F Local Header Offset   00358F87 (3510151)\n+6FE293 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE293: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE2D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE2D3   Length              0005 (5)\n+6FE2D5   Flags               01 (1) 'Modification'\n+6FE2D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE2DA CENTRAL HEADER #972   02014B50 (33639248)\n+6FE2DE Created Zip Spec      14 (20) '2.0'\n+6FE2DF Created OS            00 (0) 'MS-DOS'\n+6FE2E0 Extract Zip Spec      14 (20) '2.0'\n+6FE2E1 Extract OS            00 (0) 'MS-DOS'\n+6FE2E2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE2E4 Compression Method    0000 (0) 'Stored'\n+6FE2E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE2EA CRC                   24F4C726 (620021542)\n+6FE2EE Compressed Size       000028F1 (10481)\n+6FE2F2 Uncompressed Size     000028F1 (10481)\n+6FE2F6 Filename Length       003F (63)\n+6FE2F8 Extra Length          0009 (9)\n+6FE2FA Comment Length        0000 (0)\n+6FE2FC Disk Start            0000 (0)\n+6FE2FE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE300 Ext File Attributes   00000000 (0)\n+6FE304 Local Header Offset   00359F29 (3514153)\n+6FE308 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE308: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE347 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE349   Length              0005 (5)\n+6FE34B   Flags               01 (1) 'Modification'\n+6FE34C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE350 CENTRAL HEADER #973   02014B50 (33639248)\n+6FE354 Created Zip Spec      14 (20) '2.0'\n+6FE355 Created OS            00 (0) 'MS-DOS'\n+6FE356 Extract Zip Spec      14 (20) '2.0'\n+6FE357 Extract OS            00 (0) 'MS-DOS'\n+6FE358 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE35A Compression Method    0000 (0) 'Stored'\n+6FE35C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE360 CRC                   35C5DEAF (902160047)\n+6FE364 Compressed Size       00001BA7 (7079)\n+6FE368 Uncompressed Size     00001BA7 (7079)\n+6FE36C Filename Length       003F (63)\n+6FE36E Extra Length          0009 (9)\n+6FE370 Comment Length        0000 (0)\n+6FE372 Disk Start            0000 (0)\n+6FE374 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE376 Ext File Attributes   00000000 (0)\n+6FE37A Local Header Offset   0035C890 (3524752)\n+6FE37E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE37E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE3BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE3BF   Length              0005 (5)\n+6FE3C1   Flags               01 (1) 'Modification'\n+6FE3C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE3C6 CENTRAL HEADER #974   02014B50 (33639248)\n+6FE3CA Created Zip Spec      14 (20) '2.0'\n+6FE3CB Created OS            00 (0) 'MS-DOS'\n+6FE3CC Extract Zip Spec      14 (20) '2.0'\n+6FE3CD Extract OS            00 (0) 'MS-DOS'\n+6FE3CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE3D0 Compression Method    0000 (0) 'Stored'\n+6FE3D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE3D6 CRC                   4C4BC15C (1280033116)\n+6FE3DA Compressed Size       000012C9 (4809)\n+6FE3DE Uncompressed Size     000012C9 (4809)\n+6FE3E2 Filename Length       0040 (64)\n+6FE3E4 Extra Length          0009 (9)\n+6FE3E6 Comment Length        0000 (0)\n+6FE3E8 Disk Start            0000 (0)\n+6FE3EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE3EC Ext File Attributes   00000000 (0)\n+6FE3F0 Local Header Offset   0035E4AD (3531949)\n+6FE3F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE3F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE434 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE436   Length              0005 (5)\n+6FE438   Flags               01 (1) 'Modification'\n+6FE439   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE43D CENTRAL HEADER #975   02014B50 (33639248)\n+6FE441 Created Zip Spec      14 (20) '2.0'\n+6FE442 Created OS            00 (0) 'MS-DOS'\n+6FE443 Extract Zip Spec      14 (20) '2.0'\n+6FE444 Extract OS            00 (0) 'MS-DOS'\n+6FE445 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE447 Compression Method    0000 (0) 'Stored'\n+6FE449 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE44D CRC                   3875CC22 (947244066)\n+6FE451 Compressed Size       00002741 (10049)\n+6FE455 Uncompressed Size     00002741 (10049)\n+6FE459 Filename Length       003F (63)\n+6FE45B Extra Length          0009 (9)\n+6FE45D Comment Length        0000 (0)\n+6FE45F Disk Start            0000 (0)\n+6FE461 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE463 Ext File Attributes   00000000 (0)\n+6FE467 Local Header Offset   0035F7ED (3536877)\n+6FE46B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE46B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE4AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE4AC   Length              0005 (5)\n+6FE4AE   Flags               01 (1) 'Modification'\n+6FE4AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE4B3 CENTRAL HEADER #976   02014B50 (33639248)\n+6FE4B7 Created Zip Spec      14 (20) '2.0'\n+6FE4B8 Created OS            00 (0) 'MS-DOS'\n+6FE4B9 Extract Zip Spec      14 (20) '2.0'\n+6FE4BA Extract OS            00 (0) 'MS-DOS'\n+6FE4BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE4BD Compression Method    0000 (0) 'Stored'\n+6FE4BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE4C3 CRC                   5053B7A1 (1347663777)\n+6FE4C7 Compressed Size       000011F9 (4601)\n+6FE4CB Uncompressed Size     000011F9 (4601)\n+6FE4CF Filename Length       003E (62)\n+6FE4D1 Extra Length          0009 (9)\n+6FE4D3 Comment Length        0000 (0)\n+6FE4D5 Disk Start            0000 (0)\n+6FE4D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE4D9 Ext File Attributes   00000000 (0)\n+6FE4DD Local Header Offset   00361FA4 (3547044)\n+6FE4E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE4E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE51F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE521   Length              0005 (5)\n+6FE523   Flags               01 (1) 'Modification'\n+6FE524   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE528 CENTRAL HEADER #977   02014B50 (33639248)\n+6FE52C Created Zip Spec      14 (20) '2.0'\n+6FE52D Created OS            00 (0) 'MS-DOS'\n+6FE52E Extract Zip Spec      14 (20) '2.0'\n+6FE52F Extract OS            00 (0) 'MS-DOS'\n+6FE530 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE532 Compression Method    0000 (0) 'Stored'\n+6FE534 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE538 CRC                   AA9A314A (2862231882)\n+6FE53C Compressed Size       0000041E (1054)\n+6FE540 Uncompressed Size     0000041E (1054)\n+6FE544 Filename Length       003C (60)\n+6FE546 Extra Length          0009 (9)\n+6FE548 Comment Length        0000 (0)\n+6FE54A Disk Start            0000 (0)\n+6FE54C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE54E Ext File Attributes   00000000 (0)\n+6FE552 Local Header Offset   00363212 (3551762)\n+6FE556 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE556: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE592 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE594   Length              0005 (5)\n+6FE596   Flags               01 (1) 'Modification'\n+6FE597   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE59B CENTRAL HEADER #978   02014B50 (33639248)\n+6FE59F Created Zip Spec      14 (20) '2.0'\n+6FE5A0 Created OS            00 (0) 'MS-DOS'\n+6FE5A1 Extract Zip Spec      14 (20) '2.0'\n+6FE5A2 Extract OS            00 (0) 'MS-DOS'\n+6FE5A3 General Purpose Flag  0000 (0)\n+6FE5A5 Compression Method    0000 (0) 'Stored'\n+6FE5A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE5AB CRC                   00000000 (0)\n+6FE5AF Compressed Size       00000000 (0)\n+6FE5B3 Uncompressed Size     00000000 (0)\n+6FE5B7 Filename Length       0020 (32)\n+6FE5B9 Extra Length          0009 (9)\n+6FE5BB Comment Length        0000 (0)\n+6FE5BD Disk Start            0000 (0)\n+6FE5BF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE5C1 Ext File Attributes   00000000 (0)\n+6FE5C5 Local Header Offset   003636A3 (3552931)\n+6FE5C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6FE5C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6FE5C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6FE5E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6FE5EB   Length              0005 (5)\n 6FE5ED   Flags               01 (1) 'Modification'\n 6FE5EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6FE5F2 CENTRAL HEADER #1902  02014B50 (33639248)\n+6FE5F2 CENTRAL HEADER #979   02014B50 (33639248)\n 6FE5F6 Created Zip Spec      14 (20) '2.0'\n 6FE5F7 Created OS            00 (0) 'MS-DOS'\n 6FE5F8 Extract Zip Spec      14 (20) '2.0'\n 6FE5F9 Extract OS            00 (0) 'MS-DOS'\n 6FE5FA General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6FE5FC Compression Method    0000 (0) 'Stored'\n 6FE5FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE602 CRC                   2CD78AEC (752323308)\n-6FE606 Compressed Size       0000277A (10106)\n-6FE60A Uncompressed Size     0000277A (10106)\n-6FE60E Filename Length       0036 (54)\n+6FE602 CRC                   DB5A6031 (3680133169)\n+6FE606 Compressed Size       000007C1 (1985)\n+6FE60A Uncompressed Size     000007C1 (1985)\n+6FE60E Filename Length       003F (63)\n 6FE610 Extra Length          0009 (9)\n 6FE612 Comment Length        0000 (0)\n 6FE614 Disk Start            0000 (0)\n 6FE616 Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6FE618 Ext File Attributes   00000000 (0)\n-6FE61C Local Header Offset   0067F106 (6811910)\n-6FE620 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6FE61C Local Header Offset   003636EA (3553002)\n+6FE620 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6FE620: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6FE620: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6FE656 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE658   Length              0005 (5)\n-6FE65A   Flags               01 (1) 'Modification'\n-6FE65B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE65F CENTRAL HEADER #1903  02014B50 (33639248)\n-6FE663 Created Zip Spec      14 (20) '2.0'\n-6FE664 Created OS            00 (0) 'MS-DOS'\n-6FE665 Extract Zip Spec      14 (20) '2.0'\n-6FE666 Extract OS            00 (0) 'MS-DOS'\n-6FE667 General Purpose Flag  0000 (0)\n-6FE669 Compression Method    0000 (0) 'Stored'\n-6FE66B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE66F CRC                   00000000 (0)\n-6FE673 Compressed Size       00000000 (0)\n-6FE677 Uncompressed Size     00000000 (0)\n-6FE67B Filename Length       0023 (35)\n-6FE67D Extra Length          0009 (9)\n-6FE67F Comment Length        0000 (0)\n-6FE681 Disk Start            0000 (0)\n-6FE683 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE685 Ext File Attributes   00000000 (0)\n-6FE689 Local Header Offset   006818ED (6822125)\n-6FE68D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE68D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE6B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE6B2   Length              0005 (5)\n-6FE6B4   Flags               01 (1) 'Modification'\n-6FE6B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE6B9 CENTRAL HEADER #1904  02014B50 (33639248)\n-6FE6BD Created Zip Spec      14 (20) '2.0'\n-6FE6BE Created OS            00 (0) 'MS-DOS'\n-6FE6BF Extract Zip Spec      14 (20) '2.0'\n-6FE6C0 Extract OS            00 (0) 'MS-DOS'\n-6FE6C1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE6C3 Compression Method    0000 (0) 'Stored'\n-6FE6C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE6C9 CRC                   3DF79E03 (1039638019)\n-6FE6CD Compressed Size       00000BD6 (3030)\n-6FE6D1 Uncompressed Size     00000BD6 (3030)\n-6FE6D5 Filename Length       003E (62)\n-6FE6D7 Extra Length          0009 (9)\n-6FE6D9 Comment Length        0000 (0)\n-6FE6DB Disk Start            0000 (0)\n-6FE6DD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE6DF Ext File Attributes   00000000 (0)\n-6FE6E3 Local Header Offset   00681937 (6822199)\n-6FE6E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE6E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE725 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE727   Length              0005 (5)\n-6FE729   Flags               01 (1) 'Modification'\n-6FE72A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE72E CENTRAL HEADER #1905  02014B50 (33639248)\n-6FE732 Created Zip Spec      14 (20) '2.0'\n-6FE733 Created OS            00 (0) 'MS-DOS'\n-6FE734 Extract Zip Spec      14 (20) '2.0'\n-6FE735 Extract OS            00 (0) 'MS-DOS'\n-6FE736 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE738 Compression Method    0000 (0) 'Stored'\n-6FE73A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE73E CRC                   4DA1C2B1 (1302446769)\n-6FE742 Compressed Size       000003F4 (1012)\n-6FE746 Uncompressed Size     000003F4 (1012)\n-6FE74A Filename Length       0031 (49)\n-6FE74C Extra Length          0009 (9)\n-6FE74E Comment Length        0000 (0)\n-6FE750 Disk Start            0000 (0)\n-6FE752 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE754 Ext File Attributes   00000000 (0)\n-6FE758 Local Header Offset   00682582 (6825346)\n-6FE75C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE75C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE78D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE78F   Length              0005 (5)\n-6FE791   Flags               01 (1) 'Modification'\n-6FE792   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE796 CENTRAL HEADER #1906  02014B50 (33639248)\n-6FE79A Created Zip Spec      14 (20) '2.0'\n-6FE79B Created OS            00 (0) 'MS-DOS'\n-6FE79C Extract Zip Spec      14 (20) '2.0'\n-6FE79D Extract OS            00 (0) 'MS-DOS'\n-6FE79E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE7A0 Compression Method    0000 (0) 'Stored'\n-6FE7A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE7A6 CRC                   150F0CC2 (353307842)\n-6FE7AA Compressed Size       000011F7 (4599)\n-6FE7AE Uncompressed Size     000011F7 (4599)\n-6FE7B2 Filename Length       003F (63)\n-6FE7B4 Extra Length          0009 (9)\n-6FE7B6 Comment Length        0000 (0)\n-6FE7B8 Disk Start            0000 (0)\n-6FE7BA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE7BC Ext File Attributes   00000000 (0)\n-6FE7C0 Local Header Offset   006829DE (6826462)\n-6FE7C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE7C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE803 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE805   Length              0005 (5)\n-6FE807   Flags               01 (1) 'Modification'\n-6FE808   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE80C CENTRAL HEADER #1907  02014B50 (33639248)\n-6FE810 Created Zip Spec      14 (20) '2.0'\n-6FE811 Created OS            00 (0) 'MS-DOS'\n-6FE812 Extract Zip Spec      14 (20) '2.0'\n-6FE813 Extract OS            00 (0) 'MS-DOS'\n-6FE814 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE816 Compression Method    0000 (0) 'Stored'\n-6FE818 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE81C CRC                   74B3513E (1957908798)\n-6FE820 Compressed Size       00000A15 (2581)\n-6FE824 Uncompressed Size     00000A15 (2581)\n-6FE828 Filename Length       003C (60)\n-6FE82A Extra Length          0009 (9)\n-6FE82C Comment Length        0000 (0)\n-6FE82E Disk Start            0000 (0)\n-6FE830 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE832 Ext File Attributes   00000000 (0)\n-6FE836 Local Header Offset   00683C4B (6831179)\n-6FE83A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE83A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE876 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE878   Length              0005 (5)\n-6FE87A   Flags               01 (1) 'Modification'\n-6FE87B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE87F CENTRAL HEADER #1908  02014B50 (33639248)\n-6FE883 Created Zip Spec      14 (20) '2.0'\n-6FE884 Created OS            00 (0) 'MS-DOS'\n-6FE885 Extract Zip Spec      14 (20) '2.0'\n-6FE886 Extract OS            00 (0) 'MS-DOS'\n-6FE887 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE889 Compression Method    0000 (0) 'Stored'\n-6FE88B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE88F CRC                   59C6BCF2 (1506196722)\n-6FE893 Compressed Size       00000C48 (3144)\n-6FE897 Uncompressed Size     00000C48 (3144)\n-6FE89B Filename Length       003F (63)\n-6FE89D Extra Length          0009 (9)\n-6FE89F Comment Length        0000 (0)\n-6FE8A1 Disk Start            0000 (0)\n-6FE8A3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE8A5 Ext File Attributes   00000000 (0)\n-6FE8A9 Local Header Offset   006846D3 (6833875)\n-6FE8AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE8AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE8EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE8EE   Length              0005 (5)\n-6FE8F0   Flags               01 (1) 'Modification'\n-6FE8F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE8F5 CENTRAL HEADER #1909  02014B50 (33639248)\n-6FE8F9 Created Zip Spec      14 (20) '2.0'\n-6FE8FA Created OS            00 (0) 'MS-DOS'\n-6FE8FB Extract Zip Spec      14 (20) '2.0'\n-6FE8FC Extract OS            00 (0) 'MS-DOS'\n-6FE8FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE8FF Compression Method    0000 (0) 'Stored'\n-6FE901 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE905 CRC                   CB062A84 (3406178948)\n-6FE909 Compressed Size       000007E1 (2017)\n-6FE90D Uncompressed Size     000007E1 (2017)\n-6FE911 Filename Length       003F (63)\n-6FE913 Extra Length          0009 (9)\n-6FE915 Comment Length        0000 (0)\n-6FE917 Disk Start            0000 (0)\n-6FE919 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE91B Ext File Attributes   00000000 (0)\n-6FE91F Local Header Offset   00685391 (6837137)\n-6FE923 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE923: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE962 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE964   Length              0005 (5)\n-6FE966   Flags               01 (1) 'Modification'\n-6FE967   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE96B CENTRAL HEADER #1910  02014B50 (33639248)\n-6FE96F Created Zip Spec      14 (20) '2.0'\n-6FE970 Created OS            00 (0) 'MS-DOS'\n-6FE971 Extract Zip Spec      14 (20) '2.0'\n-6FE972 Extract OS            00 (0) 'MS-DOS'\n-6FE973 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE975 Compression Method    0000 (0) 'Stored'\n-6FE977 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE97B CRC                   8E964D75 (2392214901)\n-6FE97F Compressed Size       000031F2 (12786)\n-6FE983 Uncompressed Size     000031F2 (12786)\n-6FE987 Filename Length       0034 (52)\n-6FE989 Extra Length          0009 (9)\n-6FE98B Comment Length        0000 (0)\n-6FE98D Disk Start            0000 (0)\n-6FE98F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE991 Ext File Attributes   00000000 (0)\n-6FE995 Local Header Offset   00685BE8 (6839272)\n-6FE999 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FE999: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FE9CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FE9CF   Length              0005 (5)\n-6FE9D1   Flags               01 (1) 'Modification'\n-6FE9D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FE9D6 CENTRAL HEADER #1911  02014B50 (33639248)\n-6FE9DA Created Zip Spec      14 (20) '2.0'\n-6FE9DB Created OS            00 (0) 'MS-DOS'\n-6FE9DC Extract Zip Spec      14 (20) '2.0'\n-6FE9DD Extract OS            00 (0) 'MS-DOS'\n-6FE9DE General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FE9E0 Compression Method    0000 (0) 'Stored'\n-6FE9E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FE9E6 CRC                   2E39C29D (775537309)\n-6FE9EA Compressed Size       000004D4 (1236)\n-6FE9EE Uncompressed Size     000004D4 (1236)\n-6FE9F2 Filename Length       003A (58)\n-6FE9F4 Extra Length          0009 (9)\n-6FE9F6 Comment Length        0000 (0)\n-6FE9F8 Disk Start            0000 (0)\n-6FE9FA Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FE9FC Ext File Attributes   00000000 (0)\n-6FEA00 Local Header Offset   00688E45 (6852165)\n-6FEA04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEA04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEA3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEA40   Length              0005 (5)\n-6FEA42   Flags               01 (1) 'Modification'\n-6FEA43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEA47 CENTRAL HEADER #1912  02014B50 (33639248)\n-6FEA4B Created Zip Spec      14 (20) '2.0'\n-6FEA4C Created OS            00 (0) 'MS-DOS'\n-6FEA4D Extract Zip Spec      14 (20) '2.0'\n-6FEA4E Extract OS            00 (0) 'MS-DOS'\n-6FEA4F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEA51 Compression Method    0000 (0) 'Stored'\n-6FEA53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEA57 CRC                   8AE5D3FF (2330317823)\n-6FEA5B Compressed Size       000006A5 (1701)\n-6FEA5F Uncompressed Size     000006A5 (1701)\n-6FEA63 Filename Length       0039 (57)\n-6FEA65 Extra Length          0009 (9)\n-6FEA67 Comment Length        0000 (0)\n-6FEA69 Disk Start            0000 (0)\n-6FEA6B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEA6D Ext File Attributes   00000000 (0)\n-6FEA71 Local Header Offset   0068938A (6853514)\n-6FEA75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEA75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEAAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEAB0   Length              0005 (5)\n-6FEAB2   Flags               01 (1) 'Modification'\n-6FEAB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEAB7 CENTRAL HEADER #1913  02014B50 (33639248)\n-6FEABB Created Zip Spec      14 (20) '2.0'\n-6FEABC Created OS            00 (0) 'MS-DOS'\n-6FEABD Extract Zip Spec      14 (20) '2.0'\n-6FEABE Extract OS            00 (0) 'MS-DOS'\n-6FEABF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEAC1 Compression Method    0000 (0) 'Stored'\n-6FEAC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEAC7 CRC                   1149E8E6 (290056422)\n-6FEACB Compressed Size       00001196 (4502)\n-6FEACF Uncompressed Size     00001196 (4502)\n-6FEAD3 Filename Length       0038 (56)\n-6FEAD5 Extra Length          0009 (9)\n-6FEAD7 Comment Length        0000 (0)\n-6FEAD9 Disk Start            0000 (0)\n-6FEADB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEADD Ext File Attributes   00000000 (0)\n-6FEAE1 Local Header Offset   00689A9F (6855327)\n-6FEAE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEAE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEB1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEB1F   Length              0005 (5)\n-6FEB21   Flags               01 (1) 'Modification'\n-6FEB22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEB26 CENTRAL HEADER #1914  02014B50 (33639248)\n-6FEB2A Created Zip Spec      14 (20) '2.0'\n-6FEB2B Created OS            00 (0) 'MS-DOS'\n-6FEB2C Extract Zip Spec      14 (20) '2.0'\n-6FEB2D Extract OS            00 (0) 'MS-DOS'\n-6FEB2E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEB30 Compression Method    0000 (0) 'Stored'\n-6FEB32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEB36 CRC                   939A92A5 (2476380837)\n-6FEB3A Compressed Size       000009EA (2538)\n-6FEB3E Uncompressed Size     000009EA (2538)\n-6FEB42 Filename Length       003A (58)\n-6FEB44 Extra Length          0009 (9)\n-6FEB46 Comment Length        0000 (0)\n-6FEB48 Disk Start            0000 (0)\n-6FEB4A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEB4C Ext File Attributes   00000000 (0)\n-6FEB50 Local Header Offset   0068ACA4 (6859940)\n-6FEB54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEB54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEB8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEB90   Length              0005 (5)\n-6FEB92   Flags               01 (1) 'Modification'\n-6FEB93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEB97 CENTRAL HEADER #1915  02014B50 (33639248)\n-6FEB9B Created Zip Spec      14 (20) '2.0'\n-6FEB9C Created OS            00 (0) 'MS-DOS'\n-6FEB9D Extract Zip Spec      14 (20) '2.0'\n-6FEB9E Extract OS            00 (0) 'MS-DOS'\n-6FEB9F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEBA1 Compression Method    0000 (0) 'Stored'\n-6FEBA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEBA7 CRC                   4DDA4FAB (1306152875)\n-6FEBAB Compressed Size       00000793 (1939)\n-6FEBAF Uncompressed Size     00000793 (1939)\n-6FEBB3 Filename Length       0037 (55)\n-6FEBB5 Extra Length          0009 (9)\n-6FEBB7 Comment Length        0000 (0)\n-6FEBB9 Disk Start            0000 (0)\n-6FEBBB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEBBD Ext File Attributes   00000000 (0)\n-6FEBC1 Local Header Offset   0068B6FF (6862591)\n-6FEBC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEBC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEBFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEBFE   Length              0005 (5)\n-6FEC00   Flags               01 (1) 'Modification'\n-6FEC01   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEC05 CENTRAL HEADER #1916  02014B50 (33639248)\n-6FEC09 Created Zip Spec      14 (20) '2.0'\n-6FEC0A Created OS            00 (0) 'MS-DOS'\n-6FEC0B Extract Zip Spec      14 (20) '2.0'\n-6FEC0C Extract OS            00 (0) 'MS-DOS'\n-6FEC0D General Purpose Flag  0000 (0)\n-6FEC0F Compression Method    0000 (0) 'Stored'\n-6FEC11 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEC15 CRC                   00000000 (0)\n-6FEC19 Compressed Size       00000000 (0)\n-6FEC1D Uncompressed Size     00000000 (0)\n-6FEC21 Filename Length       002F (47)\n-6FEC23 Extra Length          0009 (9)\n-6FEC25 Comment Length        0000 (0)\n-6FEC27 Disk Start            0000 (0)\n-6FEC29 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEC2B Ext File Attributes   00000000 (0)\n-6FEC2F Local Header Offset   0068BF00 (6864640)\n-6FEC33 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEC33: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEC62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEC64   Length              0005 (5)\n-6FEC66   Flags               01 (1) 'Modification'\n-6FEC67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEC6B CENTRAL HEADER #1917  02014B50 (33639248)\n-6FEC6F Created Zip Spec      14 (20) '2.0'\n-6FEC70 Created OS            00 (0) 'MS-DOS'\n-6FEC71 Extract Zip Spec      14 (20) '2.0'\n-6FEC72 Extract OS            00 (0) 'MS-DOS'\n-6FEC73 General Purpose Flag  0000 (0)\n-6FEC75 Compression Method    0000 (0) 'Stored'\n-6FEC77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEC7B CRC                   00000000 (0)\n-6FEC7F Compressed Size       00000000 (0)\n-6FEC83 Uncompressed Size     00000000 (0)\n-6FEC87 Filename Length       0037 (55)\n-6FEC89 Extra Length          0009 (9)\n-6FEC8B Comment Length        0000 (0)\n-6FEC8D Disk Start            0000 (0)\n-6FEC8F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEC91 Ext File Attributes   00000000 (0)\n-6FEC95 Local Header Offset   0068BF56 (6864726)\n-6FEC99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEC99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FECD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FECD2   Length              0005 (5)\n-6FECD4   Flags               01 (1) 'Modification'\n-6FECD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FECD9 CENTRAL HEADER #1918  02014B50 (33639248)\n-6FECDD Created Zip Spec      14 (20) '2.0'\n-6FECDE Created OS            00 (0) 'MS-DOS'\n-6FECDF Extract Zip Spec      14 (20) '2.0'\n-6FECE0 Extract OS            00 (0) 'MS-DOS'\n-6FECE1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FECE3 Compression Method    0000 (0) 'Stored'\n-6FECE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FECE9 CRC                   E3F9F330 (3824808752)\n-6FECED Compressed Size       00000859 (2137)\n-6FECF1 Uncompressed Size     00000859 (2137)\n-6FECF5 Filename Length       005A (90)\n-6FECF7 Extra Length          0009 (9)\n-6FECF9 Comment Length        0000 (0)\n-6FECFB Disk Start            0000 (0)\n-6FECFD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FECFF Ext File Attributes   00000000 (0)\n-6FED03 Local Header Offset   0068BFB4 (6864820)\n-6FED07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FED07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FED61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FED63   Length              0005 (5)\n-6FED65   Flags               01 (1) 'Modification'\n-6FED66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FED6A CENTRAL HEADER #1919  02014B50 (33639248)\n-6FED6E Created Zip Spec      14 (20) '2.0'\n-6FED6F Created OS            00 (0) 'MS-DOS'\n-6FED70 Extract Zip Spec      14 (20) '2.0'\n-6FED71 Extract OS            00 (0) 'MS-DOS'\n-6FED72 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FED74 Compression Method    0000 (0) 'Stored'\n-6FED76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FED7A CRC                   FF2D0DF3 (4281142771)\n-6FED7E Compressed Size       000006C6 (1734)\n-6FED82 Uncompressed Size     000006C6 (1734)\n-6FED86 Filename Length       004F (79)\n-6FED88 Extra Length          0009 (9)\n-6FED8A Comment Length        0000 (0)\n-6FED8C Disk Start            0000 (0)\n-6FED8E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FED90 Ext File Attributes   00000000 (0)\n-6FED94 Local Header Offset   0068C89E (6867102)\n-6FED98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FED98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEDE7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEDE9   Length              0005 (5)\n-6FEDEB   Flags               01 (1) 'Modification'\n-6FEDEC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEDF0 CENTRAL HEADER #1920  02014B50 (33639248)\n-6FEDF4 Created Zip Spec      14 (20) '2.0'\n-6FEDF5 Created OS            00 (0) 'MS-DOS'\n-6FEDF6 Extract Zip Spec      14 (20) '2.0'\n-6FEDF7 Extract OS            00 (0) 'MS-DOS'\n-6FEDF8 General Purpose Flag  0000 (0)\n-6FEDFA Compression Method    0000 (0) 'Stored'\n-6FEDFC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEE00 CRC                   00000000 (0)\n-6FEE04 Compressed Size       00000000 (0)\n-6FEE08 Uncompressed Size     00000000 (0)\n-6FEE0C Filename Length       002B (43)\n-6FEE0E Extra Length          0009 (9)\n-6FEE10 Comment Length        0000 (0)\n-6FEE12 Disk Start            0000 (0)\n-6FEE14 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEE16 Ext File Attributes   00000000 (0)\n-6FEE1A Local Header Offset   0068CFEA (6868970)\n-6FEE1E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEE1E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEE49 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEE4B   Length              0005 (5)\n-6FEE4D   Flags               01 (1) 'Modification'\n-6FEE4E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEE52 CENTRAL HEADER #1921  02014B50 (33639248)\n-6FEE56 Created Zip Spec      14 (20) '2.0'\n-6FEE57 Created OS            00 (0) 'MS-DOS'\n-6FEE58 Extract Zip Spec      14 (20) '2.0'\n-6FEE59 Extract OS            00 (0) 'MS-DOS'\n-6FEE5A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEE5C Compression Method    0000 (0) 'Stored'\n-6FEE5E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEE62 CRC                   FC72AE7D (4235374205)\n-6FEE66 Compressed Size       00000523 (1315)\n-6FEE6A Uncompressed Size     00000523 (1315)\n-6FEE6E Filename Length       003B (59)\n-6FEE70 Extra Length          0009 (9)\n-6FEE72 Comment Length        0000 (0)\n-6FEE74 Disk Start            0000 (0)\n-6FEE76 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEE78 Ext File Attributes   00000000 (0)\n-6FEE7C Local Header Offset   0068D03C (6869052)\n-6FEE80 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEE80: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEEBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEEBD   Length              0005 (5)\n-6FEEBF   Flags               01 (1) 'Modification'\n-6FEEC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEEC4 CENTRAL HEADER #1922  02014B50 (33639248)\n-6FEEC8 Created Zip Spec      14 (20) '2.0'\n-6FEEC9 Created OS            00 (0) 'MS-DOS'\n-6FEECA Extract Zip Spec      14 (20) '2.0'\n-6FEECB Extract OS            00 (0) 'MS-DOS'\n-6FEECC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEECE Compression Method    0000 (0) 'Stored'\n-6FEED0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEED4 CRC                   DD3F3E44 (3711909444)\n-6FEED8 Compressed Size       00001567 (5479)\n-6FEEDC Uncompressed Size     00001567 (5479)\n-6FEEE0 Filename Length       003D (61)\n-6FEEE2 Extra Length          0009 (9)\n-6FEEE4 Comment Length        0000 (0)\n-6FEEE6 Disk Start            0000 (0)\n-6FEEE8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEEEA Ext File Attributes   00000000 (0)\n-6FEEEE Local Header Offset   0068D5D1 (6870481)\n-6FEEF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEEF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEF2F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEF31   Length              0005 (5)\n-6FEF33   Flags               01 (1) 'Modification'\n-6FEF34   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEF38 CENTRAL HEADER #1923  02014B50 (33639248)\n-6FEF3C Created Zip Spec      14 (20) '2.0'\n-6FEF3D Created OS            00 (0) 'MS-DOS'\n-6FEF3E Extract Zip Spec      14 (20) '2.0'\n-6FEF3F Extract OS            00 (0) 'MS-DOS'\n-6FEF40 General Purpose Flag  0000 (0)\n-6FEF42 Compression Method    0000 (0) 'Stored'\n-6FEF44 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEF48 CRC                   00000000 (0)\n-6FEF4C Compressed Size       00000000 (0)\n-6FEF50 Uncompressed Size     00000000 (0)\n-6FEF54 Filename Length       0022 (34)\n-6FEF56 Extra Length          0009 (9)\n-6FEF58 Comment Length        0000 (0)\n-6FEF5A Disk Start            0000 (0)\n-6FEF5C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEF5E Ext File Attributes   00000000 (0)\n-6FEF62 Local Header Offset   0068EBAC (6876076)\n-6FEF66 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEF66: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEF88 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEF8A   Length              0005 (5)\n-6FEF8C   Flags               01 (1) 'Modification'\n-6FEF8D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEF91 CENTRAL HEADER #1924  02014B50 (33639248)\n-6FEF95 Created Zip Spec      14 (20) '2.0'\n-6FEF96 Created OS            00 (0) 'MS-DOS'\n-6FEF97 Extract Zip Spec      14 (20) '2.0'\n-6FEF98 Extract OS            00 (0) 'MS-DOS'\n-6FEF99 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FEF9B Compression Method    0000 (0) 'Stored'\n-6FEF9D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FEFA1 CRC                   B748FF21 (3075014433)\n-6FEFA5 Compressed Size       00001AD2 (6866)\n-6FEFA9 Uncompressed Size     00001AD2 (6866)\n-6FEFAD Filename Length       0032 (50)\n-6FEFAF Extra Length          0009 (9)\n-6FEFB1 Comment Length        0000 (0)\n-6FEFB3 Disk Start            0000 (0)\n-6FEFB5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FEFB7 Ext File Attributes   00000000 (0)\n-6FEFBB Local Header Offset   0068EBF5 (6876149)\n-6FEFBF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FEFBF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FEFF1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FEFF3   Length              0005 (5)\n-6FEFF5   Flags               01 (1) 'Modification'\n-6FEFF6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FEFFA CENTRAL HEADER #1925  02014B50 (33639248)\n-6FEFFE Created Zip Spec      14 (20) '2.0'\n-6FEFFF Created OS            00 (0) 'MS-DOS'\n-6FF000 Extract Zip Spec      14 (20) '2.0'\n-6FF001 Extract OS            00 (0) 'MS-DOS'\n-6FF002 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF004 Compression Method    0000 (0) 'Stored'\n-6FF006 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF00A CRC                   BE2E03C3 (3190686659)\n-6FF00E Compressed Size       00000A63 (2659)\n-6FF012 Uncompressed Size     00000A63 (2659)\n-6FF016 Filename Length       003A (58)\n-6FF018 Extra Length          0009 (9)\n-6FF01A Comment Length        0000 (0)\n-6FF01C Disk Start            0000 (0)\n-6FF01E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF020 Ext File Attributes   00000000 (0)\n-6FF024 Local Header Offset   00690730 (6883120)\n-6FF028 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF028: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF062 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF064   Length              0005 (5)\n-6FF066   Flags               01 (1) 'Modification'\n-6FF067   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF06B CENTRAL HEADER #1926  02014B50 (33639248)\n-6FF06F Created Zip Spec      14 (20) '2.0'\n-6FF070 Created OS            00 (0) 'MS-DOS'\n-6FF071 Extract Zip Spec      14 (20) '2.0'\n-6FF072 Extract OS            00 (0) 'MS-DOS'\n-6FF073 General Purpose Flag  0000 (0)\n-6FF075 Compression Method    0000 (0) 'Stored'\n-6FF077 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF07B CRC                   00000000 (0)\n-6FF07F Compressed Size       00000000 (0)\n-6FF083 Uncompressed Size     00000000 (0)\n-6FF087 Filename Length       0025 (37)\n-6FF089 Extra Length          0009 (9)\n-6FF08B Comment Length        0000 (0)\n-6FF08D Disk Start            0000 (0)\n-6FF08F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF091 Ext File Attributes   00000000 (0)\n-6FF095 Local Header Offset   00691204 (6885892)\n-6FF099 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF099: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF0BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF0C0   Length              0005 (5)\n-6FF0C2   Flags               01 (1) 'Modification'\n-6FF0C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF0C7 CENTRAL HEADER #1927  02014B50 (33639248)\n-6FF0CB Created Zip Spec      14 (20) '2.0'\n-6FF0CC Created OS            00 (0) 'MS-DOS'\n-6FF0CD Extract Zip Spec      14 (20) '2.0'\n-6FF0CE Extract OS            00 (0) 'MS-DOS'\n-6FF0CF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF0D1 Compression Method    0000 (0) 'Stored'\n-6FF0D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF0D7 CRC                   338329BB (864233915)\n-6FF0DB Compressed Size       000004C3 (1219)\n-6FF0DF Uncompressed Size     000004C3 (1219)\n-6FF0E3 Filename Length       003C (60)\n-6FF0E5 Extra Length          0009 (9)\n-6FF0E7 Comment Length        0000 (0)\n-6FF0E9 Disk Start            0000 (0)\n-6FF0EB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF0ED Ext File Attributes   00000000 (0)\n-6FF0F1 Local Header Offset   00691250 (6885968)\n-6FF0F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF0F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF131 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF133   Length              0005 (5)\n-6FF135   Flags               01 (1) 'Modification'\n-6FF136   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF13A CENTRAL HEADER #1928  02014B50 (33639248)\n-6FF13E Created Zip Spec      14 (20) '2.0'\n-6FF13F Created OS            00 (0) 'MS-DOS'\n-6FF140 Extract Zip Spec      14 (20) '2.0'\n-6FF141 Extract OS            00 (0) 'MS-DOS'\n-6FF142 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF144 Compression Method    0000 (0) 'Stored'\n-6FF146 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF14A CRC                   3B13030C (991101708)\n-6FF14E Compressed Size       0000059C (1436)\n-6FF152 Uncompressed Size     0000059C (1436)\n-6FF156 Filename Length       0041 (65)\n-6FF158 Extra Length          0009 (9)\n-6FF15A Comment Length        0000 (0)\n-6FF15C Disk Start            0000 (0)\n-6FF15E Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF160 Ext File Attributes   00000000 (0)\n-6FF164 Local Header Offset   00691786 (6887302)\n-6FF168 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF168: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF1A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF1AB   Length              0005 (5)\n-6FF1AD   Flags               01 (1) 'Modification'\n-6FF1AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF1B2 CENTRAL HEADER #1929  02014B50 (33639248)\n-6FF1B6 Created Zip Spec      14 (20) '2.0'\n-6FF1B7 Created OS            00 (0) 'MS-DOS'\n-6FF1B8 Extract Zip Spec      14 (20) '2.0'\n-6FF1B9 Extract OS            00 (0) 'MS-DOS'\n-6FF1BA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF1BC Compression Method    0000 (0) 'Stored'\n-6FF1BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF1C2 CRC                   45D210E4 (1171394788)\n-6FF1C6 Compressed Size       000005CE (1486)\n-6FF1CA Uncompressed Size     000005CE (1486)\n-6FF1CE Filename Length       0042 (66)\n-6FF1D0 Extra Length          0009 (9)\n-6FF1D2 Comment Length        0000 (0)\n-6FF1D4 Disk Start            0000 (0)\n-6FF1D6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF1D8 Ext File Attributes   00000000 (0)\n-6FF1DC Local Header Offset   00691D9A (6888858)\n-6FF1E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF1E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF222 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF224   Length              0005 (5)\n-6FF226   Flags               01 (1) 'Modification'\n-6FF227   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF22B CENTRAL HEADER #1930  02014B50 (33639248)\n-6FF22F Created Zip Spec      14 (20) '2.0'\n-6FF230 Created OS            00 (0) 'MS-DOS'\n-6FF231 Extract Zip Spec      14 (20) '2.0'\n-6FF232 Extract OS            00 (0) 'MS-DOS'\n-6FF233 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF235 Compression Method    0000 (0) 'Stored'\n-6FF237 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF23B CRC                   FCFC2855 (4244383829)\n-6FF23F Compressed Size       00006050 (24656)\n-6FF243 Uncompressed Size     00006050 (24656)\n-6FF247 Filename Length       0035 (53)\n-6FF249 Extra Length          0009 (9)\n-6FF24B Comment Length        0000 (0)\n-6FF24D Disk Start            0000 (0)\n-6FF24F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF251 Ext File Attributes   00000000 (0)\n-6FF255 Local Header Offset   006923E1 (6890465)\n-6FF259 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF259: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF28E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF290   Length              0005 (5)\n-6FF292   Flags               01 (1) 'Modification'\n-6FF293   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF297 CENTRAL HEADER #1931  02014B50 (33639248)\n-6FF29B Created Zip Spec      14 (20) '2.0'\n-6FF29C Created OS            00 (0) 'MS-DOS'\n-6FF29D Extract Zip Spec      14 (20) '2.0'\n-6FF29E Extract OS            00 (0) 'MS-DOS'\n-6FF29F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF2A1 Compression Method    0000 (0) 'Stored'\n-6FF2A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF2A7 CRC                   F36E07A4 (4084074404)\n-6FF2AB Compressed Size       00000528 (1320)\n-6FF2AF Uncompressed Size     00000528 (1320)\n-6FF2B3 Filename Length       0039 (57)\n-6FF2B5 Extra Length          0009 (9)\n-6FF2B7 Comment Length        0000 (0)\n-6FF2B9 Disk Start            0000 (0)\n-6FF2BB Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF2BD Ext File Attributes   00000000 (0)\n-6FF2C1 Local Header Offset   0069849D (6915229)\n-6FF2C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF2C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF2FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF300   Length              0005 (5)\n-6FF302   Flags               01 (1) 'Modification'\n-6FF303   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF307 CENTRAL HEADER #1932  02014B50 (33639248)\n-6FF30B Created Zip Spec      14 (20) '2.0'\n-6FF30C Created OS            00 (0) 'MS-DOS'\n-6FF30D Extract Zip Spec      14 (20) '2.0'\n-6FF30E Extract OS            00 (0) 'MS-DOS'\n-6FF30F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF311 Compression Method    0000 (0) 'Stored'\n-6FF313 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF317 CRC                   4E01C35D (1308738397)\n-6FF31B Compressed Size       000017D8 (6104)\n-6FF31F Uncompressed Size     000017D8 (6104)\n-6FF323 Filename Length       0037 (55)\n-6FF325 Extra Length          0009 (9)\n-6FF327 Comment Length        0000 (0)\n-6FF329 Disk Start            0000 (0)\n-6FF32B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF32D Ext File Attributes   00000000 (0)\n-6FF331 Local Header Offset   00698A35 (6916661)\n-6FF335 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF335: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF36C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF36E   Length              0005 (5)\n-6FF370   Flags               01 (1) 'Modification'\n-6FF371   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF375 CENTRAL HEADER #1933  02014B50 (33639248)\n-6FF379 Created Zip Spec      14 (20) '2.0'\n-6FF37A Created OS            00 (0) 'MS-DOS'\n-6FF37B Extract Zip Spec      14 (20) '2.0'\n-6FF37C Extract OS            00 (0) 'MS-DOS'\n-6FF37D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF37F Compression Method    0000 (0) 'Stored'\n-6FF381 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF385 CRC                   CCF50709 (3438610185)\n-6FF389 Compressed Size       00000F33 (3891)\n-6FF38D Uncompressed Size     00000F33 (3891)\n-6FF391 Filename Length       003B (59)\n-6FF393 Extra Length          0009 (9)\n-6FF395 Comment Length        0000 (0)\n-6FF397 Disk Start            0000 (0)\n-6FF399 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF39B Ext File Attributes   00000000 (0)\n-6FF39F Local Header Offset   0069A27B (6922875)\n-6FF3A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF3A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF3DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF3E0   Length              0005 (5)\n-6FF3E2   Flags               01 (1) 'Modification'\n-6FF3E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF3E7 CENTRAL HEADER #1934  02014B50 (33639248)\n-6FF3EB Created Zip Spec      14 (20) '2.0'\n-6FF3EC Created OS            00 (0) 'MS-DOS'\n-6FF3ED Extract Zip Spec      14 (20) '2.0'\n-6FF3EE Extract OS            00 (0) 'MS-DOS'\n-6FF3EF General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF3F1 Compression Method    0000 (0) 'Stored'\n-6FF3F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF3F7 CRC                   8C523252 (2354197074)\n-6FF3FB Compressed Size       0000268F (9871)\n-6FF3FF Uncompressed Size     0000268F (9871)\n-6FF403 Filename Length       0038 (56)\n-6FF405 Extra Length          0009 (9)\n-6FF407 Comment Length        0000 (0)\n-6FF409 Disk Start            0000 (0)\n-6FF40B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF40D Ext File Attributes   00000000 (0)\n-6FF411 Local Header Offset   0069B220 (6926880)\n-6FF415 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF415: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF44D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF44F   Length              0005 (5)\n-6FF451   Flags               01 (1) 'Modification'\n-6FF452   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF456 CENTRAL HEADER #1935  02014B50 (33639248)\n-6FF45A Created Zip Spec      14 (20) '2.0'\n-6FF45B Created OS            00 (0) 'MS-DOS'\n-6FF45C Extract Zip Spec      14 (20) '2.0'\n-6FF45D Extract OS            00 (0) 'MS-DOS'\n-6FF45E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF460 Compression Method    0000 (0) 'Stored'\n-6FF462 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF466 CRC                   CBF7FEA9 (3422027433)\n-6FF46A Compressed Size       0000066C (1644)\n-6FF46E Uncompressed Size     0000066C (1644)\n-6FF472 Filename Length       0034 (52)\n-6FF474 Extra Length          0009 (9)\n-6FF476 Comment Length        0000 (0)\n-6FF478 Disk Start            0000 (0)\n-6FF47A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF47C Ext File Attributes   00000000 (0)\n-6FF480 Local Header Offset   0069D91E (6936862)\n-6FF484 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF484: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF4B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF4BA   Length              0005 (5)\n-6FF4BC   Flags               01 (1) 'Modification'\n-6FF4BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF4C1 CENTRAL HEADER #1936  02014B50 (33639248)\n-6FF4C5 Created Zip Spec      14 (20) '2.0'\n-6FF4C6 Created OS            00 (0) 'MS-DOS'\n-6FF4C7 Extract Zip Spec      14 (20) '2.0'\n-6FF4C8 Extract OS            00 (0) 'MS-DOS'\n-6FF4C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF4CB Compression Method    0000 (0) 'Stored'\n-6FF4CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF4D1 CRC                   FD7FF5E7 (4253021671)\n-6FF4D5 Compressed Size       0000107A (4218)\n-6FF4D9 Uncompressed Size     0000107A (4218)\n-6FF4DD Filename Length       0035 (53)\n-6FF4DF Extra Length          0009 (9)\n-6FF4E1 Comment Length        0000 (0)\n-6FF4E3 Disk Start            0000 (0)\n-6FF4E5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF4E7 Ext File Attributes   00000000 (0)\n-6FF4EB Local Header Offset   0069DFF5 (6938613)\n-6FF4EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF4EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF524 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF526   Length              0005 (5)\n-6FF528   Flags               01 (1) 'Modification'\n-6FF529   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF52D CENTRAL HEADER #1937  02014B50 (33639248)\n-6FF531 Created Zip Spec      14 (20) '2.0'\n-6FF532 Created OS            00 (0) 'MS-DOS'\n-6FF533 Extract Zip Spec      14 (20) '2.0'\n-6FF534 Extract OS            00 (0) 'MS-DOS'\n-6FF535 General Purpose Flag  0000 (0)\n-6FF537 Compression Method    0000 (0) 'Stored'\n-6FF539 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF53D CRC                   00000000 (0)\n-6FF541 Compressed Size       00000000 (0)\n-6FF545 Uncompressed Size     00000000 (0)\n-6FF549 Filename Length       0029 (41)\n-6FF54B Extra Length          0009 (9)\n-6FF54D Comment Length        0000 (0)\n-6FF54F Disk Start            0000 (0)\n-6FF551 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF553 Ext File Attributes   00000000 (0)\n-6FF557 Local Header Offset   0069F0DB (6942939)\n-6FF55B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF55B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF584 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF586   Length              0005 (5)\n-6FF588   Flags               01 (1) 'Modification'\n-6FF589   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF58D CENTRAL HEADER #1938  02014B50 (33639248)\n-6FF591 Created Zip Spec      14 (20) '2.0'\n-6FF592 Created OS            00 (0) 'MS-DOS'\n-6FF593 Extract Zip Spec      14 (20) '2.0'\n-6FF594 Extract OS            00 (0) 'MS-DOS'\n-6FF595 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF597 Compression Method    0000 (0) 'Stored'\n-6FF599 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF59D CRC                   6A1A9325 (1780126501)\n-6FF5A1 Compressed Size       0000103E (4158)\n-6FF5A5 Uncompressed Size     0000103E (4158)\n-6FF5A9 Filename Length       0043 (67)\n-6FF5AB Extra Length          0009 (9)\n-6FF5AD Comment Length        0000 (0)\n-6FF5AF Disk Start            0000 (0)\n-6FF5B1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF5B3 Ext File Attributes   00000000 (0)\n-6FF5B7 Local Header Offset   0069F12B (6943019)\n-6FF5BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF5BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF5FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF600   Length              0005 (5)\n-6FF602   Flags               01 (1) 'Modification'\n-6FF603   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF607 CENTRAL HEADER #1939  02014B50 (33639248)\n-6FF60B Created Zip Spec      14 (20) '2.0'\n-6FF60C Created OS            00 (0) 'MS-DOS'\n-6FF60D Extract Zip Spec      14 (20) '2.0'\n-6FF60E Extract OS            00 (0) 'MS-DOS'\n-6FF60F General Purpose Flag  0000 (0)\n-6FF611 Compression Method    0000 (0) 'Stored'\n-6FF613 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF617 CRC                   00000000 (0)\n-6FF61B Compressed Size       00000000 (0)\n-6FF61F Uncompressed Size     00000000 (0)\n-6FF623 Filename Length       0028 (40)\n-6FF625 Extra Length          0009 (9)\n-6FF627 Comment Length        0000 (0)\n-6FF629 Disk Start            0000 (0)\n-6FF62B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF62D Ext File Attributes   00000000 (0)\n-6FF631 Local Header Offset   006A01E3 (6947299)\n-6FF635 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF635: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF65D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF65F   Length              0005 (5)\n-6FF661   Flags               01 (1) 'Modification'\n-6FF662   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF666 CENTRAL HEADER #1940  02014B50 (33639248)\n-6FF66A Created Zip Spec      14 (20) '2.0'\n-6FF66B Created OS            00 (0) 'MS-DOS'\n-6FF66C Extract Zip Spec      14 (20) '2.0'\n-6FF66D Extract OS            00 (0) 'MS-DOS'\n-6FF66E General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF670 Compression Method    0000 (0) 'Stored'\n-6FF672 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF676 CRC                   021D9C13 (35494931)\n-6FF67A Compressed Size       00000951 (2385)\n-6FF67E Uncompressed Size     00000951 (2385)\n-6FF682 Filename Length       003F (63)\n-6FF684 Extra Length          0009 (9)\n-6FF686 Comment Length        0000 (0)\n-6FF688 Disk Start            0000 (0)\n-6FF68A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF68C Ext File Attributes   00000000 (0)\n-6FF690 Local Header Offset   006A0232 (6947378)\n-6FF694 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF694: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF6D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF6D5   Length              0005 (5)\n-6FF6D7   Flags               01 (1) 'Modification'\n-6FF6D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF6DC CENTRAL HEADER #1941  02014B50 (33639248)\n-6FF6E0 Created Zip Spec      14 (20) '2.0'\n-6FF6E1 Created OS            00 (0) 'MS-DOS'\n-6FF6E2 Extract Zip Spec      14 (20) '2.0'\n-6FF6E3 Extract OS            00 (0) 'MS-DOS'\n-6FF6E4 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF6E6 Compression Method    0000 (0) 'Stored'\n-6FF6E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF6EC CRC                   48F808F8 (1224214776)\n-6FF6F0 Compressed Size       00000BF1 (3057)\n-6FF6F4 Uncompressed Size     00000BF1 (3057)\n-6FF6F8 Filename Length       004E (78)\n-6FF6FA Extra Length          0009 (9)\n-6FF6FC Comment Length        0000 (0)\n-6FF6FE Disk Start            0000 (0)\n-6FF700 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF702 Ext File Attributes   00000000 (0)\n-6FF706 Local Header Offset   006A0BF9 (6949881)\n-6FF70A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF70A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF758 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF75A   Length              0005 (5)\n-6FF75C   Flags               01 (1) 'Modification'\n-6FF75D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF761 CENTRAL HEADER #1942  02014B50 (33639248)\n-6FF765 Created Zip Spec      14 (20) '2.0'\n-6FF766 Created OS            00 (0) 'MS-DOS'\n-6FF767 Extract Zip Spec      14 (20) '2.0'\n-6FF768 Extract OS            00 (0) 'MS-DOS'\n-6FF769 General Purpose Flag  0000 (0)\n-6FF76B Compression Method    0000 (0) 'Stored'\n-6FF76D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF771 CRC                   00000000 (0)\n-6FF775 Compressed Size       00000000 (0)\n-6FF779 Uncompressed Size     00000000 (0)\n-6FF77D Filename Length       0029 (41)\n-6FF77F Extra Length          0009 (9)\n-6FF781 Comment Length        0000 (0)\n-6FF783 Disk Start            0000 (0)\n-6FF785 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF787 Ext File Attributes   00000000 (0)\n-6FF78B Local Header Offset   006A186F (6953071)\n-6FF78F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF78F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF7B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF7BA   Length              0005 (5)\n-6FF7BC   Flags               01 (1) 'Modification'\n-6FF7BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF7C1 CENTRAL HEADER #1943  02014B50 (33639248)\n-6FF7C5 Created Zip Spec      14 (20) '2.0'\n-6FF7C6 Created OS            00 (0) 'MS-DOS'\n-6FF7C7 Extract Zip Spec      14 (20) '2.0'\n-6FF7C8 Extract OS            00 (0) 'MS-DOS'\n-6FF7C9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF7CB Compression Method    0000 (0) 'Stored'\n-6FF7CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF7D1 CRC                   BD5DBB91 (3177036689)\n-6FF7D5 Compressed Size       000022E9 (8937)\n-6FF7D9 Uncompressed Size     000022E9 (8937)\n-6FF7DD Filename Length       0040 (64)\n-6FF7DF Extra Length          0009 (9)\n-6FF7E1 Comment Length        0000 (0)\n-6FF7E3 Disk Start            0000 (0)\n-6FF7E5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF7E7 Ext File Attributes   00000000 (0)\n-6FF7EB Local Header Offset   006A18BF (6953151)\n-6FF7EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF7EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF82F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF831   Length              0005 (5)\n-6FF833   Flags               01 (1) 'Modification'\n-6FF834   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF838 CENTRAL HEADER #1944  02014B50 (33639248)\n-6FF83C Created Zip Spec      14 (20) '2.0'\n-6FF83D Created OS            00 (0) 'MS-DOS'\n-6FF83E Extract Zip Spec      14 (20) '2.0'\n-6FF83F Extract OS            00 (0) 'MS-DOS'\n-6FF840 General Purpose Flag  0000 (0)\n-6FF842 Compression Method    0000 (0) 'Stored'\n-6FF844 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF848 CRC                   00000000 (0)\n-6FF84C Compressed Size       00000000 (0)\n-6FF850 Uncompressed Size     00000000 (0)\n-6FF854 Filename Length       001B (27)\n-6FF856 Extra Length          0009 (9)\n-6FF858 Comment Length        0000 (0)\n-6FF85A Disk Start            0000 (0)\n-6FF85C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF85E Ext File Attributes   00000000 (0)\n-6FF862 Local Header Offset   006A3C1F (6962207)\n-6FF866 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF866: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF881 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF883   Length              0005 (5)\n-6FF885   Flags               01 (1) 'Modification'\n-6FF886   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF88A CENTRAL HEADER #1945  02014B50 (33639248)\n-6FF88E Created Zip Spec      14 (20) '2.0'\n-6FF88F Created OS            00 (0) 'MS-DOS'\n-6FF890 Extract Zip Spec      14 (20) '2.0'\n-6FF891 Extract OS            00 (0) 'MS-DOS'\n-6FF892 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF894 Compression Method    0000 (0) 'Stored'\n-6FF896 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF89A CRC                   E40DEA4B (3826117195)\n-6FF89E Compressed Size       00000CAE (3246)\n-6FF8A2 Uncompressed Size     00000CAE (3246)\n-6FF8A6 Filename Length       0034 (52)\n-6FF8A8 Extra Length          0009 (9)\n-6FF8AA Comment Length        0000 (0)\n-6FF8AC Disk Start            0000 (0)\n-6FF8AE Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF8B0 Ext File Attributes   00000000 (0)\n-6FF8B4 Local Header Offset   006A3C61 (6962273)\n-6FF8B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF8B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF8EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF8EE   Length              0005 (5)\n-6FF8F0   Flags               01 (1) 'Modification'\n-6FF8F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF8F5 CENTRAL HEADER #1946  02014B50 (33639248)\n-6FF8F9 Created Zip Spec      14 (20) '2.0'\n-6FF8FA Created OS            00 (0) 'MS-DOS'\n-6FF8FB Extract Zip Spec      14 (20) '2.0'\n-6FF8FC Extract OS            00 (0) 'MS-DOS'\n-6FF8FD General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF8FF Compression Method    0000 (0) 'Stored'\n-6FF901 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF905 CRC                   7B8AE3FF (2072699903)\n-6FF909 Compressed Size       000012F0 (4848)\n-6FF90D Uncompressed Size     000012F0 (4848)\n-6FF911 Filename Length       0034 (52)\n-6FF913 Extra Length          0009 (9)\n-6FF915 Comment Length        0000 (0)\n-6FF917 Disk Start            0000 (0)\n-6FF919 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF91B Ext File Attributes   00000000 (0)\n-6FF91F Local Header Offset   006A497A (6965626)\n-6FF923 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF923: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF957 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF959   Length              0005 (5)\n-6FF95B   Flags               01 (1) 'Modification'\n-6FF95C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF960 CENTRAL HEADER #1947  02014B50 (33639248)\n-6FF964 Created Zip Spec      14 (20) '2.0'\n-6FF965 Created OS            00 (0) 'MS-DOS'\n-6FF966 Extract Zip Spec      14 (20) '2.0'\n-6FF967 Extract OS            00 (0) 'MS-DOS'\n-6FF968 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FF96A Compression Method    0000 (0) 'Stored'\n-6FF96C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF970 CRC                   19702ABA (426781370)\n-6FF974 Compressed Size       00000F11 (3857)\n-6FF978 Uncompressed Size     00000F11 (3857)\n-6FF97C Filename Length       0038 (56)\n-6FF97E Extra Length          0009 (9)\n-6FF980 Comment Length        0000 (0)\n-6FF982 Disk Start            0000 (0)\n-6FF984 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF986 Ext File Attributes   00000000 (0)\n-6FF98A Local Header Offset   006A5CD5 (6970581)\n-6FF98E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF98E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FF9C6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FF9C8   Length              0005 (5)\n-6FF9CA   Flags               01 (1) 'Modification'\n-6FF9CB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FF9CF CENTRAL HEADER #1948  02014B50 (33639248)\n-6FF9D3 Created Zip Spec      14 (20) '2.0'\n-6FF9D4 Created OS            00 (0) 'MS-DOS'\n-6FF9D5 Extract Zip Spec      14 (20) '2.0'\n-6FF9D6 Extract OS            00 (0) 'MS-DOS'\n-6FF9D7 General Purpose Flag  0000 (0)\n-6FF9D9 Compression Method    0000 (0) 'Stored'\n-6FF9DB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FF9DF CRC                   00000000 (0)\n-6FF9E3 Compressed Size       00000000 (0)\n-6FF9E7 Uncompressed Size     00000000 (0)\n-6FF9EB Filename Length       0025 (37)\n-6FF9ED Extra Length          0009 (9)\n-6FF9EF Comment Length        0000 (0)\n-6FF9F1 Disk Start            0000 (0)\n-6FF9F3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FF9F5 Ext File Attributes   00000000 (0)\n-6FF9F9 Local Header Offset   006A6C55 (6974549)\n-6FF9FD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FF9FD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFA22 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFA24   Length              0005 (5)\n-6FFA26   Flags               01 (1) 'Modification'\n-6FFA27   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFA2B CENTRAL HEADER #1949  02014B50 (33639248)\n-6FFA2F Created Zip Spec      14 (20) '2.0'\n-6FFA30 Created OS            00 (0) 'MS-DOS'\n-6FFA31 Extract Zip Spec      14 (20) '2.0'\n-6FFA32 Extract OS            00 (0) 'MS-DOS'\n-6FFA33 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFA35 Compression Method    0000 (0) 'Stored'\n-6FFA37 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFA3B CRC                   763975AF (1983477167)\n-6FFA3F Compressed Size       000008BC (2236)\n-6FFA43 Uncompressed Size     000008BC (2236)\n-6FFA47 Filename Length       003F (63)\n-6FFA49 Extra Length          0009 (9)\n-6FFA4B Comment Length        0000 (0)\n-6FFA4D Disk Start            0000 (0)\n-6FFA4F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFA51 Ext File Attributes   00000000 (0)\n-6FFA55 Local Header Offset   006A6CA1 (6974625)\n-6FFA59 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFA59: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFA98 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFA9A   Length              0005 (5)\n-6FFA9C   Flags               01 (1) 'Modification'\n-6FFA9D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFAA1 CENTRAL HEADER #1950  02014B50 (33639248)\n-6FFAA5 Created Zip Spec      14 (20) '2.0'\n-6FFAA6 Created OS            00 (0) 'MS-DOS'\n-6FFAA7 Extract Zip Spec      14 (20) '2.0'\n-6FFAA8 Extract OS            00 (0) 'MS-DOS'\n-6FFAA9 General Purpose Flag  0000 (0)\n-6FFAAB Compression Method    0000 (0) 'Stored'\n-6FFAAD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFAB1 CRC                   00000000 (0)\n-6FFAB5 Compressed Size       00000000 (0)\n-6FFAB9 Uncompressed Size     00000000 (0)\n-6FFABD Filename Length       001F (31)\n-6FFABF Extra Length          0009 (9)\n-6FFAC1 Comment Length        0000 (0)\n-6FFAC3 Disk Start            0000 (0)\n-6FFAC5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFAC7 Ext File Attributes   00000000 (0)\n-6FFACB Local Header Offset   006A75D3 (6976979)\n-6FFACF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6FE65F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE661   Length              0005 (5)\n+6FE663   Flags               01 (1) 'Modification'\n+6FE664   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE668 CENTRAL HEADER #980   02014B50 (33639248)\n+6FE66C Created Zip Spec      14 (20) '2.0'\n+6FE66D Created OS            00 (0) 'MS-DOS'\n+6FE66E Extract Zip Spec      14 (20) '2.0'\n+6FE66F Extract OS            00 (0) 'MS-DOS'\n+6FE670 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE672 Compression Method    0000 (0) 'Stored'\n+6FE674 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE678 CRC                   695EFF74 (1767833460)\n+6FE67C Compressed Size       00004A07 (18951)\n+6FE680 Uncompressed Size     00004A07 (18951)\n+6FE684 Filename Length       0032 (50)\n+6FE686 Extra Length          0009 (9)\n+6FE688 Comment Length        0000 (0)\n+6FE68A Disk Start            0000 (0)\n+6FE68C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE68E Ext File Attributes   00000000 (0)\n+6FE692 Local Header Offset   00363F21 (3555105)\n+6FE696 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE696: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE6C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE6CA   Length              0005 (5)\n+6FE6CC   Flags               01 (1) 'Modification'\n+6FE6CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE6D1 CENTRAL HEADER #981   02014B50 (33639248)\n+6FE6D5 Created Zip Spec      14 (20) '2.0'\n+6FE6D6 Created OS            00 (0) 'MS-DOS'\n+6FE6D7 Extract Zip Spec      14 (20) '2.0'\n+6FE6D8 Extract OS            00 (0) 'MS-DOS'\n+6FE6D9 General Purpose Flag  0000 (0)\n+6FE6DB Compression Method    0000 (0) 'Stored'\n+6FE6DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE6E1 CRC                   00000000 (0)\n+6FE6E5 Compressed Size       00000000 (0)\n+6FE6E9 Uncompressed Size     00000000 (0)\n+6FE6ED Filename Length       001E (30)\n+6FE6EF Extra Length          0009 (9)\n+6FE6F1 Comment Length        0000 (0)\n+6FE6F3 Disk Start            0000 (0)\n+6FE6F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE6F7 Ext File Attributes   00000000 (0)\n+6FE6FB Local Header Offset   00368991 (3574161)\n+6FE6FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE6FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE71D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE71F   Length              0005 (5)\n+6FE721   Flags               01 (1) 'Modification'\n+6FE722   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE726 CENTRAL HEADER #982   02014B50 (33639248)\n+6FE72A Created Zip Spec      14 (20) '2.0'\n+6FE72B Created OS            00 (0) 'MS-DOS'\n+6FE72C Extract Zip Spec      14 (20) '2.0'\n+6FE72D Extract OS            00 (0) 'MS-DOS'\n+6FE72E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE730 Compression Method    0000 (0) 'Stored'\n+6FE732 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE736 CRC                   7C75425F (2088059487)\n+6FE73A Compressed Size       00000499 (1177)\n+6FE73E Uncompressed Size     00000499 (1177)\n+6FE742 Filename Length       003D (61)\n+6FE744 Extra Length          0009 (9)\n+6FE746 Comment Length        0000 (0)\n+6FE748 Disk Start            0000 (0)\n+6FE74A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE74C Ext File Attributes   00000000 (0)\n+6FE750 Local Header Offset   003689D6 (3574230)\n+6FE754 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE754: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE791 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE793   Length              0005 (5)\n+6FE795   Flags               01 (1) 'Modification'\n+6FE796   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE79A CENTRAL HEADER #983   02014B50 (33639248)\n+6FE79E Created Zip Spec      14 (20) '2.0'\n+6FE79F Created OS            00 (0) 'MS-DOS'\n+6FE7A0 Extract Zip Spec      14 (20) '2.0'\n+6FE7A1 Extract OS            00 (0) 'MS-DOS'\n+6FE7A2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE7A4 Compression Method    0000 (0) 'Stored'\n+6FE7A6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE7AA CRC                   A67D03FF (2793210879)\n+6FE7AE Compressed Size       000006BE (1726)\n+6FE7B2 Uncompressed Size     000006BE (1726)\n+6FE7B6 Filename Length       0043 (67)\n+6FE7B8 Extra Length          0009 (9)\n+6FE7BA Comment Length        0000 (0)\n+6FE7BC Disk Start            0000 (0)\n+6FE7BE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE7C0 Ext File Attributes   00000000 (0)\n+6FE7C4 Local Header Offset   00368EE3 (3575523)\n+6FE7C8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE7C8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE80B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE80D   Length              0005 (5)\n+6FE80F   Flags               01 (1) 'Modification'\n+6FE810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE814 CENTRAL HEADER #984   02014B50 (33639248)\n+6FE818 Created Zip Spec      14 (20) '2.0'\n+6FE819 Created OS            00 (0) 'MS-DOS'\n+6FE81A Extract Zip Spec      14 (20) '2.0'\n+6FE81B Extract OS            00 (0) 'MS-DOS'\n+6FE81C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE81E Compression Method    0000 (0) 'Stored'\n+6FE820 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE824 CRC                   F6F65296 (4143338134)\n+6FE828 Compressed Size       000006C5 (1733)\n+6FE82C Uncompressed Size     000006C5 (1733)\n+6FE830 Filename Length       0045 (69)\n+6FE832 Extra Length          0009 (9)\n+6FE834 Comment Length        0000 (0)\n+6FE836 Disk Start            0000 (0)\n+6FE838 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE83A Ext File Attributes   00000000 (0)\n+6FE83E Local Header Offset   0036961B (3577371)\n+6FE842 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE842: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE887 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE889   Length              0005 (5)\n+6FE88B   Flags               01 (1) 'Modification'\n+6FE88C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE890 CENTRAL HEADER #985   02014B50 (33639248)\n+6FE894 Created Zip Spec      14 (20) '2.0'\n+6FE895 Created OS            00 (0) 'MS-DOS'\n+6FE896 Extract Zip Spec      14 (20) '2.0'\n+6FE897 Extract OS            00 (0) 'MS-DOS'\n+6FE898 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE89A Compression Method    0000 (0) 'Stored'\n+6FE89C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE8A0 CRC                   D200547F (3523236991)\n+6FE8A4 Compressed Size       000005CC (1484)\n+6FE8A8 Uncompressed Size     000005CC (1484)\n+6FE8AC Filename Length       0040 (64)\n+6FE8AE Extra Length          0009 (9)\n+6FE8B0 Comment Length        0000 (0)\n+6FE8B2 Disk Start            0000 (0)\n+6FE8B4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE8B6 Ext File Attributes   00000000 (0)\n+6FE8BA Local Header Offset   00369D5C (3579228)\n+6FE8BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE8BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE8FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE900   Length              0005 (5)\n+6FE902   Flags               01 (1) 'Modification'\n+6FE903   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE907 CENTRAL HEADER #986   02014B50 (33639248)\n+6FE90B Created Zip Spec      14 (20) '2.0'\n+6FE90C Created OS            00 (0) 'MS-DOS'\n+6FE90D Extract Zip Spec      14 (20) '2.0'\n+6FE90E Extract OS            00 (0) 'MS-DOS'\n+6FE90F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE911 Compression Method    0000 (0) 'Stored'\n+6FE913 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE917 CRC                   ADCF7988 (2916055432)\n+6FE91B Compressed Size       0000069A (1690)\n+6FE91F Uncompressed Size     0000069A (1690)\n+6FE923 Filename Length       0042 (66)\n+6FE925 Extra Length          0009 (9)\n+6FE927 Comment Length        0000 (0)\n+6FE929 Disk Start            0000 (0)\n+6FE92B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE92D Ext File Attributes   00000000 (0)\n+6FE931 Local Header Offset   0036A39F (3580831)\n+6FE935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE977 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE979   Length              0005 (5)\n+6FE97B   Flags               01 (1) 'Modification'\n+6FE97C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE980 CENTRAL HEADER #987   02014B50 (33639248)\n+6FE984 Created Zip Spec      14 (20) '2.0'\n+6FE985 Created OS            00 (0) 'MS-DOS'\n+6FE986 Extract Zip Spec      14 (20) '2.0'\n+6FE987 Extract OS            00 (0) 'MS-DOS'\n+6FE988 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE98A Compression Method    0000 (0) 'Stored'\n+6FE98C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FE990 CRC                   A8CE0A81 (2832075393)\n+6FE994 Compressed Size       0000051E (1310)\n+6FE998 Uncompressed Size     0000051E (1310)\n+6FE99C Filename Length       003D (61)\n+6FE99E Extra Length          0009 (9)\n+6FE9A0 Comment Length        0000 (0)\n+6FE9A2 Disk Start            0000 (0)\n+6FE9A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FE9A6 Ext File Attributes   00000000 (0)\n+6FE9AA Local Header Offset   0036AAB2 (3582642)\n+6FE9AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FE9AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FE9EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FE9ED   Length              0005 (5)\n+6FE9EF   Flags               01 (1) 'Modification'\n+6FE9F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FE9F4 CENTRAL HEADER #988   02014B50 (33639248)\n+6FE9F8 Created Zip Spec      14 (20) '2.0'\n+6FE9F9 Created OS            00 (0) 'MS-DOS'\n+6FE9FA Extract Zip Spec      14 (20) '2.0'\n+6FE9FB Extract OS            00 (0) 'MS-DOS'\n+6FE9FC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FE9FE Compression Method    0000 (0) 'Stored'\n+6FEA00 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEA04 CRC                   5D6056E9 (1566594793)\n+6FEA08 Compressed Size       00000526 (1318)\n+6FEA0C Uncompressed Size     00000526 (1318)\n+6FEA10 Filename Length       003F (63)\n+6FEA12 Extra Length          0009 (9)\n+6FEA14 Comment Length        0000 (0)\n+6FEA16 Disk Start            0000 (0)\n+6FEA18 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEA1A Ext File Attributes   00000000 (0)\n+6FEA1E Local Header Offset   0036B044 (3584068)\n+6FEA22 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEA22: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEA61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEA63   Length              0005 (5)\n+6FEA65   Flags               01 (1) 'Modification'\n+6FEA66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEA6A CENTRAL HEADER #989   02014B50 (33639248)\n+6FEA6E Created Zip Spec      14 (20) '2.0'\n+6FEA6F Created OS            00 (0) 'MS-DOS'\n+6FEA70 Extract Zip Spec      14 (20) '2.0'\n+6FEA71 Extract OS            00 (0) 'MS-DOS'\n+6FEA72 General Purpose Flag  0000 (0)\n+6FEA74 Compression Method    0000 (0) 'Stored'\n+6FEA76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEA7A CRC                   00000000 (0)\n+6FEA7E Compressed Size       00000000 (0)\n+6FEA82 Uncompressed Size     00000000 (0)\n+6FEA86 Filename Length       0027 (39)\n+6FEA88 Extra Length          0009 (9)\n+6FEA8A Comment Length        0000 (0)\n+6FEA8C Disk Start            0000 (0)\n+6FEA8E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEA90 Ext File Attributes   00000000 (0)\n+6FEA94 Local Header Offset   0036B5E0 (3585504)\n+6FEA98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEA98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEABF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEAC1   Length              0005 (5)\n+6FEAC3   Flags               01 (1) 'Modification'\n+6FEAC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEAC8 CENTRAL HEADER #990   02014B50 (33639248)\n+6FEACC Created Zip Spec      14 (20) '2.0'\n+6FEACD Created OS            00 (0) 'MS-DOS'\n+6FEACE Extract Zip Spec      14 (20) '2.0'\n+6FEACF Extract OS            00 (0) 'MS-DOS'\n+6FEAD0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEAD2 Compression Method    0000 (0) 'Stored'\n+6FEAD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEAD8 CRC                   FFDB09C9 (4292544969)\n+6FEADC Compressed Size       00000774 (1908)\n+6FEAE0 Uncompressed Size     00000774 (1908)\n+6FEAE4 Filename Length       0040 (64)\n+6FEAE6 Extra Length          0009 (9)\n+6FEAE8 Comment Length        0000 (0)\n+6FEAEA Disk Start            0000 (0)\n+6FEAEC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEAEE Ext File Attributes   00000000 (0)\n+6FEAF2 Local Header Offset   0036B62E (3585582)\n+6FEAF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEAF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEB36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEB38   Length              0005 (5)\n+6FEB3A   Flags               01 (1) 'Modification'\n+6FEB3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEB3F CENTRAL HEADER #991   02014B50 (33639248)\n+6FEB43 Created Zip Spec      14 (20) '2.0'\n+6FEB44 Created OS            00 (0) 'MS-DOS'\n+6FEB45 Extract Zip Spec      14 (20) '2.0'\n+6FEB46 Extract OS            00 (0) 'MS-DOS'\n+6FEB47 General Purpose Flag  0000 (0)\n+6FEB49 Compression Method    0000 (0) 'Stored'\n+6FEB4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEB4F CRC                   00000000 (0)\n+6FEB53 Compressed Size       00000000 (0)\n+6FEB57 Uncompressed Size     00000000 (0)\n+6FEB5B Filename Length       0020 (32)\n+6FEB5D Extra Length          0009 (9)\n+6FEB5F Comment Length        0000 (0)\n+6FEB61 Disk Start            0000 (0)\n+6FEB63 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEB65 Ext File Attributes   00000000 (0)\n+6FEB69 Local Header Offset   0036BE19 (3587609)\n+6FEB6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEB6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEB8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEB8F   Length              0005 (5)\n+6FEB91   Flags               01 (1) 'Modification'\n+6FEB92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEB96 CENTRAL HEADER #992   02014B50 (33639248)\n+6FEB9A Created Zip Spec      14 (20) '2.0'\n+6FEB9B Created OS            00 (0) 'MS-DOS'\n+6FEB9C Extract Zip Spec      14 (20) '2.0'\n+6FEB9D Extract OS            00 (0) 'MS-DOS'\n+6FEB9E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEBA0 Compression Method    0000 (0) 'Stored'\n+6FEBA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEBA6 CRC                   A8777CA7 (2826402983)\n+6FEBAA Compressed Size       00000840 (2112)\n+6FEBAE Uncompressed Size     00000840 (2112)\n+6FEBB2 Filename Length       0044 (68)\n+6FEBB4 Extra Length          0009 (9)\n+6FEBB6 Comment Length        0000 (0)\n+6FEBB8 Disk Start            0000 (0)\n+6FEBBA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEBBC Ext File Attributes   00000000 (0)\n+6FEBC0 Local Header Offset   0036BE60 (3587680)\n+6FEBC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEBC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEC08 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEC0A   Length              0005 (5)\n+6FEC0C   Flags               01 (1) 'Modification'\n+6FEC0D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEC11 CENTRAL HEADER #993   02014B50 (33639248)\n+6FEC15 Created Zip Spec      14 (20) '2.0'\n+6FEC16 Created OS            00 (0) 'MS-DOS'\n+6FEC17 Extract Zip Spec      14 (20) '2.0'\n+6FEC18 Extract OS            00 (0) 'MS-DOS'\n+6FEC19 General Purpose Flag  0000 (0)\n+6FEC1B Compression Method    0000 (0) 'Stored'\n+6FEC1D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEC21 CRC                   00000000 (0)\n+6FEC25 Compressed Size       00000000 (0)\n+6FEC29 Uncompressed Size     00000000 (0)\n+6FEC2D Filename Length       0021 (33)\n+6FEC2F Extra Length          0009 (9)\n+6FEC31 Comment Length        0000 (0)\n+6FEC33 Disk Start            0000 (0)\n+6FEC35 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEC37 Ext File Attributes   00000000 (0)\n+6FEC3B Local Header Offset   0036C71B (3589915)\n+6FEC3F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEC3F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEC60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEC62   Length              0005 (5)\n+6FEC64   Flags               01 (1) 'Modification'\n+6FEC65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEC69 CENTRAL HEADER #994   02014B50 (33639248)\n+6FEC6D Created Zip Spec      14 (20) '2.0'\n+6FEC6E Created OS            00 (0) 'MS-DOS'\n+6FEC6F Extract Zip Spec      14 (20) '2.0'\n+6FEC70 Extract OS            00 (0) 'MS-DOS'\n+6FEC71 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEC73 Compression Method    0000 (0) 'Stored'\n+6FEC75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEC79 CRC                   E294E314 (3801408276)\n+6FEC7D Compressed Size       000012DA (4826)\n+6FEC81 Uncompressed Size     000012DA (4826)\n+6FEC85 Filename Length       0049 (73)\n+6FEC87 Extra Length          0009 (9)\n+6FEC89 Comment Length        0000 (0)\n+6FEC8B Disk Start            0000 (0)\n+6FEC8D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEC8F Ext File Attributes   00000000 (0)\n+6FEC93 Local Header Offset   0036C763 (3589987)\n+6FEC97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEC97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FECE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FECE2   Length              0005 (5)\n+6FECE4   Flags               01 (1) 'Modification'\n+6FECE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FECE9 CENTRAL HEADER #995   02014B50 (33639248)\n+6FECED Created Zip Spec      14 (20) '2.0'\n+6FECEE Created OS            00 (0) 'MS-DOS'\n+6FECEF Extract Zip Spec      14 (20) '2.0'\n+6FECF0 Extract OS            00 (0) 'MS-DOS'\n+6FECF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FECF3 Compression Method    0000 (0) 'Stored'\n+6FECF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FECF9 CRC                   484F34E6 (1213150438)\n+6FECFD Compressed Size       00000A53 (2643)\n+6FED01 Uncompressed Size     00000A53 (2643)\n+6FED05 Filename Length       0043 (67)\n+6FED07 Extra Length          0009 (9)\n+6FED09 Comment Length        0000 (0)\n+6FED0B Disk Start            0000 (0)\n+6FED0D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FED0F Ext File Attributes   00000000 (0)\n+6FED13 Local Header Offset   0036DABD (3594941)\n+6FED17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FED17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FED5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FED5C   Length              0005 (5)\n+6FED5E   Flags               01 (1) 'Modification'\n+6FED5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FED63 CENTRAL HEADER #996   02014B50 (33639248)\n+6FED67 Created Zip Spec      14 (20) '2.0'\n+6FED68 Created OS            00 (0) 'MS-DOS'\n+6FED69 Extract Zip Spec      14 (20) '2.0'\n+6FED6A Extract OS            00 (0) 'MS-DOS'\n+6FED6B General Purpose Flag  0000 (0)\n+6FED6D Compression Method    0000 (0) 'Stored'\n+6FED6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FED73 CRC                   00000000 (0)\n+6FED77 Compressed Size       00000000 (0)\n+6FED7B Uncompressed Size     00000000 (0)\n+6FED7F Filename Length       001F (31)\n+6FED81 Extra Length          0009 (9)\n+6FED83 Comment Length        0000 (0)\n+6FED85 Disk Start            0000 (0)\n+6FED87 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FED89 Ext File Attributes   00000000 (0)\n+6FED8D Local Header Offset   0036E58A (3597706)\n+6FED91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FED91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEDB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEDB2   Length              0005 (5)\n+6FEDB4   Flags               01 (1) 'Modification'\n+6FEDB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEDB9 CENTRAL HEADER #997   02014B50 (33639248)\n+6FEDBD Created Zip Spec      14 (20) '2.0'\n+6FEDBE Created OS            00 (0) 'MS-DOS'\n+6FEDBF Extract Zip Spec      14 (20) '2.0'\n+6FEDC0 Extract OS            00 (0) 'MS-DOS'\n+6FEDC1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEDC3 Compression Method    0000 (0) 'Stored'\n+6FEDC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEDC9 CRC                   F164B1B0 (4049908144)\n+6FEDCD Compressed Size       00001233 (4659)\n+6FEDD1 Uncompressed Size     00001233 (4659)\n+6FEDD5 Filename Length       0034 (52)\n+6FEDD7 Extra Length          0009 (9)\n+6FEDD9 Comment Length        0000 (0)\n+6FEDDB Disk Start            0000 (0)\n+6FEDDD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEDDF Ext File Attributes   00000000 (0)\n+6FEDE3 Local Header Offset   0036E5D0 (3597776)\n+6FEDE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEDE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEE1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEE1D   Length              0005 (5)\n+6FEE1F   Flags               01 (1) 'Modification'\n+6FEE20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEE24 CENTRAL HEADER #998   02014B50 (33639248)\n+6FEE28 Created Zip Spec      14 (20) '2.0'\n+6FEE29 Created OS            00 (0) 'MS-DOS'\n+6FEE2A Extract Zip Spec      14 (20) '2.0'\n+6FEE2B Extract OS            00 (0) 'MS-DOS'\n+6FEE2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEE2E Compression Method    0000 (0) 'Stored'\n+6FEE30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEE34 CRC                   D05CAEC0 (3495734976)\n+6FEE38 Compressed Size       000013D8 (5080)\n+6FEE3C Uncompressed Size     000013D8 (5080)\n+6FEE40 Filename Length       0031 (49)\n+6FEE42 Extra Length          0009 (9)\n+6FEE44 Comment Length        0000 (0)\n+6FEE46 Disk Start            0000 (0)\n+6FEE48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEE4A Ext File Attributes   00000000 (0)\n+6FEE4E Local Header Offset   0036F86E (3602542)\n+6FEE52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEE52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEE83 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEE85   Length              0005 (5)\n+6FEE87   Flags               01 (1) 'Modification'\n+6FEE88   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEE8C CENTRAL HEADER #999   02014B50 (33639248)\n+6FEE90 Created Zip Spec      14 (20) '2.0'\n+6FEE91 Created OS            00 (0) 'MS-DOS'\n+6FEE92 Extract Zip Spec      14 (20) '2.0'\n+6FEE93 Extract OS            00 (0) 'MS-DOS'\n+6FEE94 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FEE96 Compression Method    0000 (0) 'Stored'\n+6FEE98 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEE9C CRC                   6FBAC3DA (1874510810)\n+6FEEA0 Compressed Size       000011EC (4588)\n+6FEEA4 Uncompressed Size     000011EC (4588)\n+6FEEA8 Filename Length       002F (47)\n+6FEEAA Extra Length          0009 (9)\n+6FEEAC Comment Length        0000 (0)\n+6FEEAE Disk Start            0000 (0)\n+6FEEB0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEEB2 Ext File Attributes   00000000 (0)\n+6FEEB6 Local Header Offset   00370CAE (3607726)\n+6FEEBA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEEBA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEEE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEEEB   Length              0005 (5)\n+6FEEED   Flags               01 (1) 'Modification'\n+6FEEEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEEF2 CENTRAL HEADER #1000  02014B50 (33639248)\n+6FEEF6 Created Zip Spec      14 (20) '2.0'\n+6FEEF7 Created OS            00 (0) 'MS-DOS'\n+6FEEF8 Extract Zip Spec      14 (20) '2.0'\n+6FEEF9 Extract OS            00 (0) 'MS-DOS'\n+6FEEFA General Purpose Flag  0000 (0)\n+6FEEFC Compression Method    0000 (0) 'Stored'\n+6FEEFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEF02 CRC                   00000000 (0)\n+6FEF06 Compressed Size       00000000 (0)\n+6FEF0A Uncompressed Size     00000000 (0)\n+6FEF0E Filename Length       0025 (37)\n+6FEF10 Extra Length          0009 (9)\n+6FEF12 Comment Length        0000 (0)\n+6FEF14 Disk Start            0000 (0)\n+6FEF16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEF18 Ext File Attributes   00000000 (0)\n+6FEF1C Local Header Offset   00371F00 (3612416)\n+6FEF20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEF20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEF45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEF47   Length              0005 (5)\n+6FEF49   Flags               01 (1) 'Modification'\n+6FEF4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEF4E CENTRAL HEADER #1001  02014B50 (33639248)\n+6FEF52 Created Zip Spec      14 (20) '2.0'\n+6FEF53 Created OS            00 (0) 'MS-DOS'\n+6FEF54 Extract Zip Spec      14 (20) '2.0'\n+6FEF55 Extract OS            00 (0) 'MS-DOS'\n+6FEF56 General Purpose Flag  0000 (0)\n+6FEF58 Compression Method    0000 (0) 'Stored'\n+6FEF5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEF5E CRC                   00000000 (0)\n+6FEF62 Compressed Size       00000000 (0)\n+6FEF66 Uncompressed Size     00000000 (0)\n+6FEF6A Filename Length       002D (45)\n+6FEF6C Extra Length          0009 (9)\n+6FEF6E Comment Length        0000 (0)\n+6FEF70 Disk Start            0000 (0)\n+6FEF72 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEF74 Ext File Attributes   00000000 (0)\n+6FEF78 Local Header Offset   00371F4C (3612492)\n+6FEF7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEF7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FEFA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FEFAB   Length              0005 (5)\n+6FEFAD   Flags               01 (1) 'Modification'\n+6FEFAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FEFB2 CENTRAL HEADER #1002  02014B50 (33639248)\n+6FEFB6 Created Zip Spec      14 (20) '2.0'\n+6FEFB7 Created OS            00 (0) 'MS-DOS'\n+6FEFB8 Extract Zip Spec      14 (20) '2.0'\n+6FEFB9 Extract OS            00 (0) 'MS-DOS'\n+6FEFBA General Purpose Flag  0000 (0)\n+6FEFBC Compression Method    0000 (0) 'Stored'\n+6FEFBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FEFC2 CRC                   00000000 (0)\n+6FEFC6 Compressed Size       00000000 (0)\n+6FEFCA Uncompressed Size     00000000 (0)\n+6FEFCE Filename Length       0038 (56)\n+6FEFD0 Extra Length          0009 (9)\n+6FEFD2 Comment Length        0000 (0)\n+6FEFD4 Disk Start            0000 (0)\n+6FEFD6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FEFD8 Ext File Attributes   00000000 (0)\n+6FEFDC Local Header Offset   00371FA0 (3612576)\n+6FEFE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FEFE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF018 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF01A   Length              0005 (5)\n+6FF01C   Flags               01 (1) 'Modification'\n+6FF01D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF021 CENTRAL HEADER #1003  02014B50 (33639248)\n+6FF025 Created Zip Spec      14 (20) '2.0'\n+6FF026 Created OS            00 (0) 'MS-DOS'\n+6FF027 Extract Zip Spec      14 (20) '2.0'\n+6FF028 Extract OS            00 (0) 'MS-DOS'\n+6FF029 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF02B Compression Method    0000 (0) 'Stored'\n+6FF02D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF031 CRC                   EBC487FE (3955525630)\n+6FF035 Compressed Size       00001919 (6425)\n+6FF039 Uncompressed Size     00001919 (6425)\n+6FF03D Filename Length       0060 (96)\n+6FF03F Extra Length          0009 (9)\n+6FF041 Comment Length        0000 (0)\n+6FF043 Disk Start            0000 (0)\n+6FF045 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF047 Ext File Attributes   00000000 (0)\n+6FF04B Local Header Offset   00371FFF (3612671)\n+6FF04F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF04F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF0AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF0B1   Length              0005 (5)\n+6FF0B3   Flags               01 (1) 'Modification'\n+6FF0B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF0B8 CENTRAL HEADER #1004  02014B50 (33639248)\n+6FF0BC Created Zip Spec      14 (20) '2.0'\n+6FF0BD Created OS            00 (0) 'MS-DOS'\n+6FF0BE Extract Zip Spec      14 (20) '2.0'\n+6FF0BF Extract OS            00 (0) 'MS-DOS'\n+6FF0C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF0C2 Compression Method    0000 (0) 'Stored'\n+6FF0C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF0C8 CRC                   E36E4DBC (3815656892)\n+6FF0CC Compressed Size       00001B46 (6982)\n+6FF0D0 Uncompressed Size     00001B46 (6982)\n+6FF0D4 Filename Length       0060 (96)\n+6FF0D6 Extra Length          0009 (9)\n+6FF0D8 Comment Length        0000 (0)\n+6FF0DA Disk Start            0000 (0)\n+6FF0DC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF0DE Ext File Attributes   00000000 (0)\n+6FF0E2 Local Header Offset   003739AF (3619247)\n+6FF0E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF0E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF146 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF148   Length              0005 (5)\n+6FF14A   Flags               01 (1) 'Modification'\n+6FF14B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF14F CENTRAL HEADER #1005  02014B50 (33639248)\n+6FF153 Created Zip Spec      14 (20) '2.0'\n+6FF154 Created OS            00 (0) 'MS-DOS'\n+6FF155 Extract Zip Spec      14 (20) '2.0'\n+6FF156 Extract OS            00 (0) 'MS-DOS'\n+6FF157 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF159 Compression Method    0000 (0) 'Stored'\n+6FF15B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF15F CRC                   5E5D5B66 (1583176550)\n+6FF163 Compressed Size       00000C31 (3121)\n+6FF167 Uncompressed Size     00000C31 (3121)\n+6FF16B Filename Length       005C (92)\n+6FF16D Extra Length          0009 (9)\n+6FF16F Comment Length        0000 (0)\n+6FF171 Disk Start            0000 (0)\n+6FF173 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF175 Ext File Attributes   00000000 (0)\n+6FF179 Local Header Offset   0037558C (3626380)\n+6FF17D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF17D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF1D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF1DB   Length              0005 (5)\n+6FF1DD   Flags               01 (1) 'Modification'\n+6FF1DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF1E2 CENTRAL HEADER #1006  02014B50 (33639248)\n+6FF1E6 Created Zip Spec      14 (20) '2.0'\n+6FF1E7 Created OS            00 (0) 'MS-DOS'\n+6FF1E8 Extract Zip Spec      14 (20) '2.0'\n+6FF1E9 Extract OS            00 (0) 'MS-DOS'\n+6FF1EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF1EC Compression Method    0000 (0) 'Stored'\n+6FF1EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF1F2 CRC                   52E29042 (1390579778)\n+6FF1F6 Compressed Size       00000C7E (3198)\n+6FF1FA Uncompressed Size     00000C7E (3198)\n+6FF1FE Filename Length       005A (90)\n+6FF200 Extra Length          0009 (9)\n+6FF202 Comment Length        0000 (0)\n+6FF204 Disk Start            0000 (0)\n+6FF206 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF208 Ext File Attributes   00000000 (0)\n+6FF20C Local Header Offset   00376250 (3629648)\n+6FF210 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF210: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF26A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF26C   Length              0005 (5)\n+6FF26E   Flags               01 (1) 'Modification'\n+6FF26F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF273 CENTRAL HEADER #1007  02014B50 (33639248)\n+6FF277 Created Zip Spec      14 (20) '2.0'\n+6FF278 Created OS            00 (0) 'MS-DOS'\n+6FF279 Extract Zip Spec      14 (20) '2.0'\n+6FF27A Extract OS            00 (0) 'MS-DOS'\n+6FF27B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF27D Compression Method    0000 (0) 'Stored'\n+6FF27F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF283 CRC                   BB518EC4 (3142684356)\n+6FF287 Compressed Size       00004A66 (19046)\n+6FF28B Uncompressed Size     00004A66 (19046)\n+6FF28F Filename Length       0061 (97)\n+6FF291 Extra Length          0009 (9)\n+6FF293 Comment Length        0000 (0)\n+6FF295 Disk Start            0000 (0)\n+6FF297 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF299 Ext File Attributes   00000000 (0)\n+6FF29D Local Header Offset   00376F5F (3632991)\n+6FF2A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF2A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF302 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF304   Length              0005 (5)\n+6FF306   Flags               01 (1) 'Modification'\n+6FF307   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF30B CENTRAL HEADER #1008  02014B50 (33639248)\n+6FF30F Created Zip Spec      14 (20) '2.0'\n+6FF310 Created OS            00 (0) 'MS-DOS'\n+6FF311 Extract Zip Spec      14 (20) '2.0'\n+6FF312 Extract OS            00 (0) 'MS-DOS'\n+6FF313 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF315 Compression Method    0000 (0) 'Stored'\n+6FF317 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF31B CRC                   88DF9039 (2296352825)\n+6FF31F Compressed Size       00001D8D (7565)\n+6FF323 Uncompressed Size     00001D8D (7565)\n+6FF327 Filename Length       0051 (81)\n+6FF329 Extra Length          0009 (9)\n+6FF32B Comment Length        0000 (0)\n+6FF32D Disk Start            0000 (0)\n+6FF32F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF331 Ext File Attributes   00000000 (0)\n+6FF335 Local Header Offset   0037BA5D (3652189)\n+6FF339 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF339: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF38A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF38C   Length              0005 (5)\n+6FF38E   Flags               01 (1) 'Modification'\n+6FF38F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF393 CENTRAL HEADER #1009  02014B50 (33639248)\n+6FF397 Created Zip Spec      14 (20) '2.0'\n+6FF398 Created OS            00 (0) 'MS-DOS'\n+6FF399 Extract Zip Spec      14 (20) '2.0'\n+6FF39A Extract OS            00 (0) 'MS-DOS'\n+6FF39B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF39D Compression Method    0000 (0) 'Stored'\n+6FF39F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF3A3 CRC                   810B31C1 (2164994497)\n+6FF3A7 Compressed Size       00000747 (1863)\n+6FF3AB Uncompressed Size     00000747 (1863)\n+6FF3AF Filename Length       005F (95)\n+6FF3B1 Extra Length          0009 (9)\n+6FF3B3 Comment Length        0000 (0)\n+6FF3B5 Disk Start            0000 (0)\n+6FF3B7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF3B9 Ext File Attributes   00000000 (0)\n+6FF3BD Local Header Offset   0037D872 (3659890)\n+6FF3C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF3C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF420 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF422   Length              0005 (5)\n+6FF424   Flags               01 (1) 'Modification'\n+6FF425   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF429 CENTRAL HEADER #1010  02014B50 (33639248)\n+6FF42D Created Zip Spec      14 (20) '2.0'\n+6FF42E Created OS            00 (0) 'MS-DOS'\n+6FF42F Extract Zip Spec      14 (20) '2.0'\n+6FF430 Extract OS            00 (0) 'MS-DOS'\n+6FF431 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF433 Compression Method    0000 (0) 'Stored'\n+6FF435 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF439 CRC                   494954CD (1229542605)\n+6FF43D Compressed Size       000011EE (4590)\n+6FF441 Uncompressed Size     000011EE (4590)\n+6FF445 Filename Length       0053 (83)\n+6FF447 Extra Length          0009 (9)\n+6FF449 Comment Length        0000 (0)\n+6FF44B Disk Start            0000 (0)\n+6FF44D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF44F Ext File Attributes   00000000 (0)\n+6FF453 Local Header Offset   0037E04F (3661903)\n+6FF457 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF457: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF4AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF4AC   Length              0005 (5)\n+6FF4AE   Flags               01 (1) 'Modification'\n+6FF4AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF4B3 CENTRAL HEADER #1011  02014B50 (33639248)\n+6FF4B7 Created Zip Spec      14 (20) '2.0'\n+6FF4B8 Created OS            00 (0) 'MS-DOS'\n+6FF4B9 Extract Zip Spec      14 (20) '2.0'\n+6FF4BA Extract OS            00 (0) 'MS-DOS'\n+6FF4BB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF4BD Compression Method    0000 (0) 'Stored'\n+6FF4BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF4C3 CRC                   D398E281 (3550012033)\n+6FF4C7 Compressed Size       00005864 (22628)\n+6FF4CB Uncompressed Size     00005864 (22628)\n+6FF4CF Filename Length       0056 (86)\n+6FF4D1 Extra Length          0009 (9)\n+6FF4D3 Comment Length        0000 (0)\n+6FF4D5 Disk Start            0000 (0)\n+6FF4D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF4D9 Ext File Attributes   00000000 (0)\n+6FF4DD Local Header Offset   0037F2C7 (3666631)\n+6FF4E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF4E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF537 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF539   Length              0005 (5)\n+6FF53B   Flags               01 (1) 'Modification'\n+6FF53C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF540 CENTRAL HEADER #1012  02014B50 (33639248)\n+6FF544 Created Zip Spec      14 (20) '2.0'\n+6FF545 Created OS            00 (0) 'MS-DOS'\n+6FF546 Extract Zip Spec      14 (20) '2.0'\n+6FF547 Extract OS            00 (0) 'MS-DOS'\n+6FF548 General Purpose Flag  0000 (0)\n+6FF54A Compression Method    0000 (0) 'Stored'\n+6FF54C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF550 CRC                   00000000 (0)\n+6FF554 Compressed Size       00000000 (0)\n+6FF558 Uncompressed Size     00000000 (0)\n+6FF55C Filename Length       0034 (52)\n+6FF55E Extra Length          0009 (9)\n+6FF560 Comment Length        0000 (0)\n+6FF562 Disk Start            0000 (0)\n+6FF564 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF566 Ext File Attributes   00000000 (0)\n+6FF56A Local Header Offset   00384BB8 (3689400)\n+6FF56E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF56E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF5A2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF5A4   Length              0005 (5)\n+6FF5A6   Flags               01 (1) 'Modification'\n+6FF5A7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF5AB CENTRAL HEADER #1013  02014B50 (33639248)\n+6FF5AF Created Zip Spec      14 (20) '2.0'\n+6FF5B0 Created OS            00 (0) 'MS-DOS'\n+6FF5B1 Extract Zip Spec      14 (20) '2.0'\n+6FF5B2 Extract OS            00 (0) 'MS-DOS'\n+6FF5B3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF5B5 Compression Method    0000 (0) 'Stored'\n+6FF5B7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF5BB CRC                   4304EE7E (1124396670)\n+6FF5BF Compressed Size       00000668 (1640)\n+6FF5C3 Uncompressed Size     00000668 (1640)\n+6FF5C7 Filename Length       005E (94)\n+6FF5C9 Extra Length          0009 (9)\n+6FF5CB Comment Length        0000 (0)\n+6FF5CD Disk Start            0000 (0)\n+6FF5CF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF5D1 Ext File Attributes   00000000 (0)\n+6FF5D5 Local Header Offset   00384C13 (3689491)\n+6FF5D9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF5D9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF637 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF639   Length              0005 (5)\n+6FF63B   Flags               01 (1) 'Modification'\n+6FF63C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF640 CENTRAL HEADER #1014  02014B50 (33639248)\n+6FF644 Created Zip Spec      14 (20) '2.0'\n+6FF645 Created OS            00 (0) 'MS-DOS'\n+6FF646 Extract Zip Spec      14 (20) '2.0'\n+6FF647 Extract OS            00 (0) 'MS-DOS'\n+6FF648 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF64A Compression Method    0000 (0) 'Stored'\n+6FF64C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF650 CRC                   93006498 (2466276504)\n+6FF654 Compressed Size       000011BD (4541)\n+6FF658 Uncompressed Size     000011BD (4541)\n+6FF65C Filename Length       0069 (105)\n+6FF65E Extra Length          0009 (9)\n+6FF660 Comment Length        0000 (0)\n+6FF662 Disk Start            0000 (0)\n+6FF664 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF666 Ext File Attributes   00000000 (0)\n+6FF66A Local Header Offset   00385310 (3691280)\n+6FF66E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF66E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF6D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF6D9   Length              0005 (5)\n+6FF6DB   Flags               01 (1) 'Modification'\n+6FF6DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF6E0 CENTRAL HEADER #1015  02014B50 (33639248)\n+6FF6E4 Created Zip Spec      14 (20) '2.0'\n+6FF6E5 Created OS            00 (0) 'MS-DOS'\n+6FF6E6 Extract Zip Spec      14 (20) '2.0'\n+6FF6E7 Extract OS            00 (0) 'MS-DOS'\n+6FF6E8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF6EA Compression Method    0000 (0) 'Stored'\n+6FF6EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF6F0 CRC                   2F136214 (789799444)\n+6FF6F4 Compressed Size       0000162B (5675)\n+6FF6F8 Uncompressed Size     0000162B (5675)\n+6FF6FC Filename Length       0064 (100)\n+6FF6FE Extra Length          0009 (9)\n+6FF700 Comment Length        0000 (0)\n+6FF702 Disk Start            0000 (0)\n+6FF704 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF706 Ext File Attributes   00000000 (0)\n+6FF70A Local Header Offset   0038656D (3695981)\n+6FF70E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF70E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF772 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF774   Length              0005 (5)\n+6FF776   Flags               01 (1) 'Modification'\n+6FF777   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF77B CENTRAL HEADER #1016  02014B50 (33639248)\n+6FF77F Created Zip Spec      14 (20) '2.0'\n+6FF780 Created OS            00 (0) 'MS-DOS'\n+6FF781 Extract Zip Spec      14 (20) '2.0'\n+6FF782 Extract OS            00 (0) 'MS-DOS'\n+6FF783 General Purpose Flag  0000 (0)\n+6FF785 Compression Method    0000 (0) 'Stored'\n+6FF787 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF78B CRC                   00000000 (0)\n+6FF78F Compressed Size       00000000 (0)\n+6FF793 Uncompressed Size     00000000 (0)\n+6FF797 Filename Length       0027 (39)\n+6FF799 Extra Length          0009 (9)\n+6FF79B Comment Length        0000 (0)\n+6FF79D Disk Start            0000 (0)\n+6FF79F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF7A1 Ext File Attributes   00000000 (0)\n+6FF7A5 Local Header Offset   00387C33 (3701811)\n+6FF7A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF7A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF7D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF7D2   Length              0005 (5)\n+6FF7D4   Flags               01 (1) 'Modification'\n+6FF7D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF7D9 CENTRAL HEADER #1017  02014B50 (33639248)\n+6FF7DD Created Zip Spec      14 (20) '2.0'\n+6FF7DE Created OS            00 (0) 'MS-DOS'\n+6FF7DF Extract Zip Spec      14 (20) '2.0'\n+6FF7E0 Extract OS            00 (0) 'MS-DOS'\n+6FF7E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF7E3 Compression Method    0000 (0) 'Stored'\n+6FF7E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF7E9 CRC                   6308AEDE (1661513438)\n+6FF7ED Compressed Size       00000A9D (2717)\n+6FF7F1 Uncompressed Size     00000A9D (2717)\n+6FF7F5 Filename Length       004D (77)\n+6FF7F7 Extra Length          0009 (9)\n+6FF7F9 Comment Length        0000 (0)\n+6FF7FB Disk Start            0000 (0)\n+6FF7FD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF7FF Ext File Attributes   00000000 (0)\n+6FF803 Local Header Offset   00387C81 (3701889)\n+6FF807 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF807: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF854 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF856   Length              0005 (5)\n+6FF858   Flags               01 (1) 'Modification'\n+6FF859   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF85D CENTRAL HEADER #1018  02014B50 (33639248)\n+6FF861 Created Zip Spec      14 (20) '2.0'\n+6FF862 Created OS            00 (0) 'MS-DOS'\n+6FF863 Extract Zip Spec      14 (20) '2.0'\n+6FF864 Extract OS            00 (0) 'MS-DOS'\n+6FF865 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF867 Compression Method    0000 (0) 'Stored'\n+6FF869 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF86D CRC                   DD0D6020 (3708641312)\n+6FF871 Compressed Size       00000C75 (3189)\n+6FF875 Uncompressed Size     00000C75 (3189)\n+6FF879 Filename Length       004D (77)\n+6FF87B Extra Length          0009 (9)\n+6FF87D Comment Length        0000 (0)\n+6FF87F Disk Start            0000 (0)\n+6FF881 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF883 Ext File Attributes   00000000 (0)\n+6FF887 Local Header Offset   003887A2 (3704738)\n+6FF88B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF88B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF8D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF8DA   Length              0005 (5)\n+6FF8DC   Flags               01 (1) 'Modification'\n+6FF8DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF8E1 CENTRAL HEADER #1019  02014B50 (33639248)\n+6FF8E5 Created Zip Spec      14 (20) '2.0'\n+6FF8E6 Created OS            00 (0) 'MS-DOS'\n+6FF8E7 Extract Zip Spec      14 (20) '2.0'\n+6FF8E8 Extract OS            00 (0) 'MS-DOS'\n+6FF8E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF8EB Compression Method    0000 (0) 'Stored'\n+6FF8ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF8F1 CRC                   79D3C18A (2043920778)\n+6FF8F5 Compressed Size       00000773 (1907)\n+6FF8F9 Uncompressed Size     00000773 (1907)\n+6FF8FD Filename Length       0058 (88)\n+6FF8FF Extra Length          0009 (9)\n+6FF901 Comment Length        0000 (0)\n+6FF903 Disk Start            0000 (0)\n+6FF905 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF907 Ext File Attributes   00000000 (0)\n+6FF90B Local Header Offset   0038949B (3708059)\n+6FF90F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF90F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF967 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF969   Length              0005 (5)\n+6FF96B   Flags               01 (1) 'Modification'\n+6FF96C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF970 CENTRAL HEADER #1020  02014B50 (33639248)\n+6FF974 Created Zip Spec      14 (20) '2.0'\n+6FF975 Created OS            00 (0) 'MS-DOS'\n+6FF976 Extract Zip Spec      14 (20) '2.0'\n+6FF977 Extract OS            00 (0) 'MS-DOS'\n+6FF978 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FF97A Compression Method    0000 (0) 'Stored'\n+6FF97C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FF980 CRC                   D5036E1C (3573771804)\n+6FF984 Compressed Size       00000F0D (3853)\n+6FF988 Uncompressed Size     00000F0D (3853)\n+6FF98C Filename Length       0056 (86)\n+6FF98E Extra Length          0009 (9)\n+6FF990 Comment Length        0000 (0)\n+6FF992 Disk Start            0000 (0)\n+6FF994 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FF996 Ext File Attributes   00000000 (0)\n+6FF99A Local Header Offset   00389C9D (3710109)\n+6FF99E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FF99E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FF9F4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FF9F6   Length              0005 (5)\n+6FF9F8   Flags               01 (1) 'Modification'\n+6FF9F9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FF9FD CENTRAL HEADER #1021  02014B50 (33639248)\n+6FFA01 Created Zip Spec      14 (20) '2.0'\n+6FFA02 Created OS            00 (0) 'MS-DOS'\n+6FFA03 Extract Zip Spec      14 (20) '2.0'\n+6FFA04 Extract OS            00 (0) 'MS-DOS'\n+6FFA05 General Purpose Flag  0000 (0)\n+6FFA07 Compression Method    0000 (0) 'Stored'\n+6FFA09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFA0D CRC                   00000000 (0)\n+6FFA11 Compressed Size       00000000 (0)\n+6FFA15 Uncompressed Size     00000000 (0)\n+6FFA19 Filename Length       0032 (50)\n+6FFA1B Extra Length          0009 (9)\n+6FFA1D Comment Length        0000 (0)\n+6FFA1F Disk Start            0000 (0)\n+6FFA21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFA23 Ext File Attributes   00000000 (0)\n+6FFA27 Local Header Offset   0038AC37 (3714103)\n+6FFA2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFA2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFA5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFA5F   Length              0005 (5)\n+6FFA61   Flags               01 (1) 'Modification'\n+6FFA62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFA66 CENTRAL HEADER #1022  02014B50 (33639248)\n+6FFA6A Created Zip Spec      14 (20) '2.0'\n+6FFA6B Created OS            00 (0) 'MS-DOS'\n+6FFA6C Extract Zip Spec      14 (20) '2.0'\n+6FFA6D Extract OS            00 (0) 'MS-DOS'\n+6FFA6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFA70 Compression Method    0000 (0) 'Stored'\n+6FFA72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFA76 CRC                   E1ADA7E4 (3786254308)\n+6FFA7A Compressed Size       00000A96 (2710)\n+6FFA7E Uncompressed Size     00000A96 (2710)\n+6FFA82 Filename Length       005A (90)\n+6FFA84 Extra Length          0009 (9)\n+6FFA86 Comment Length        0000 (0)\n+6FFA88 Disk Start            0000 (0)\n+6FFA8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFA8C Ext File Attributes   00000000 (0)\n+6FFA90 Local Header Offset   0038AC90 (3714192)\n+6FFA94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6FFACF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6FFA94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n 6FFAEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n 6FFAF0   Length              0005 (5)\n 6FFAF2   Flags               01 (1) 'Modification'\n 6FFAF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n \n-6FFAF7 CENTRAL HEADER #1951  02014B50 (33639248)\n+6FFAF7 CENTRAL HEADER #1023  02014B50 (33639248)\n 6FFAFB Created Zip Spec      14 (20) '2.0'\n 6FFAFC Created OS            00 (0) 'MS-DOS'\n 6FFAFD Extract Zip Spec      14 (20) '2.0'\n 6FFAFE Extract OS            00 (0) 'MS-DOS'\n 6FFAFF General Purpose Flag  0008 (8)\n        [Bit  3]              1 'Streamed'\n 6FFB01 Compression Method    0000 (0) 'Stored'\n 6FFB03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFB07 CRC                   776F6B16 (2003790614)\n-6FFB0B Compressed Size       0000084C (2124)\n-6FFB0F Uncompressed Size     0000084C (2124)\n-6FFB13 Filename Length       0033 (51)\n+6FFB07 CRC                   041B9E71 (68918897)\n+6FFB0B Compressed Size       00000ACF (2767)\n+6FFB0F Uncompressed Size     00000ACF (2767)\n+6FFB13 Filename Length       0049 (73)\n 6FFB15 Extra Length          0009 (9)\n 6FFB17 Comment Length        0000 (0)\n 6FFB19 Disk Start            0000 (0)\n 6FFB1B Int File Attributes   0000 (0)\n        [Bit 0]               0 'Binary Data'\n 6FFB1D Ext File Attributes   00000000 (0)\n-6FFB21 Local Header Offset   006A7619 (6977049)\n-6FFB25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+6FFB21 Local Header Offset   0038B7B7 (3717047)\n+6FFB25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #\n-# WARNING: Offset 0x6FFB25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+# WARNING: Offset 0x6FFB25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n #          Zero length filename\n #\n-6FFB58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFB5A   Length              0005 (5)\n-6FFB5C   Flags               01 (1) 'Modification'\n-6FFB5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFB61 CENTRAL HEADER #1952  02014B50 (33639248)\n-6FFB65 Created Zip Spec      14 (20) '2.0'\n-6FFB66 Created OS            00 (0) 'MS-DOS'\n-6FFB67 Extract Zip Spec      14 (20) '2.0'\n-6FFB68 Extract OS            00 (0) 'MS-DOS'\n-6FFB69 General Purpose Flag  0000 (0)\n-6FFB6B Compression Method    0000 (0) 'Stored'\n-6FFB6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFB71 CRC                   00000000 (0)\n-6FFB75 Compressed Size       00000000 (0)\n-6FFB79 Uncompressed Size     00000000 (0)\n-6FFB7D Filename Length       0023 (35)\n-6FFB7F Extra Length          0009 (9)\n-6FFB81 Comment Length        0000 (0)\n-6FFB83 Disk Start            0000 (0)\n-6FFB85 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFB87 Ext File Attributes   00000000 (0)\n-6FFB8B Local Header Offset   006A7ECF (6979279)\n-6FFB8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFB8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFBB2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFBB4   Length              0005 (5)\n-6FFBB6   Flags               01 (1) 'Modification'\n-6FFBB7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFBBB CENTRAL HEADER #1953  02014B50 (33639248)\n-6FFBBF Created Zip Spec      14 (20) '2.0'\n-6FFBC0 Created OS            00 (0) 'MS-DOS'\n-6FFBC1 Extract Zip Spec      14 (20) '2.0'\n-6FFBC2 Extract OS            00 (0) 'MS-DOS'\n-6FFBC3 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFBC5 Compression Method    0000 (0) 'Stored'\n-6FFBC7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFBCB CRC                   A1EB5EED (2716557037)\n-6FFBCF Compressed Size       000016D2 (5842)\n-6FFBD3 Uncompressed Size     000016D2 (5842)\n-6FFBD7 Filename Length       003F (63)\n-6FFBD9 Extra Length          0009 (9)\n-6FFBDB Comment Length        0000 (0)\n-6FFBDD Disk Start            0000 (0)\n-6FFBDF Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFBE1 Ext File Attributes   00000000 (0)\n-6FFBE5 Local Header Offset   006A7F19 (6979353)\n-6FFBE9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFBE9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFC28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFC2A   Length              0005 (5)\n-6FFC2C   Flags               01 (1) 'Modification'\n-6FFC2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFC31 CENTRAL HEADER #1954  02014B50 (33639248)\n-6FFC35 Created Zip Spec      14 (20) '2.0'\n-6FFC36 Created OS            00 (0) 'MS-DOS'\n-6FFC37 Extract Zip Spec      14 (20) '2.0'\n-6FFC38 Extract OS            00 (0) 'MS-DOS'\n-6FFC39 General Purpose Flag  0000 (0)\n-6FFC3B Compression Method    0000 (0) 'Stored'\n-6FFC3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFC41 CRC                   00000000 (0)\n-6FFC45 Compressed Size       00000000 (0)\n-6FFC49 Uncompressed Size     00000000 (0)\n-6FFC4D Filename Length       001D (29)\n-6FFC4F Extra Length          0009 (9)\n-6FFC51 Comment Length        0000 (0)\n-6FFC53 Disk Start            0000 (0)\n-6FFC55 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFC57 Ext File Attributes   00000000 (0)\n-6FFC5B Local Header Offset   006A9661 (6985313)\n-6FFC5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFC5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFC7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFC7E   Length              0005 (5)\n-6FFC80   Flags               01 (1) 'Modification'\n-6FFC81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFC85 CENTRAL HEADER #1955  02014B50 (33639248)\n-6FFC89 Created Zip Spec      14 (20) '2.0'\n-6FFC8A Created OS            00 (0) 'MS-DOS'\n-6FFC8B Extract Zip Spec      14 (20) '2.0'\n-6FFC8C Extract OS            00 (0) 'MS-DOS'\n-6FFC8D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFC8F Compression Method    0000 (0) 'Stored'\n-6FFC91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFC95 CRC                   D7F884E9 (3623388393)\n-6FFC99 Compressed Size       00000381 (897)\n-6FFC9D Uncompressed Size     00000381 (897)\n-6FFCA1 Filename Length       002D (45)\n-6FFCA3 Extra Length          0009 (9)\n-6FFCA5 Comment Length        0000 (0)\n-6FFCA7 Disk Start            0000 (0)\n-6FFCA9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFCAB Ext File Attributes   00000000 (0)\n-6FFCAF Local Header Offset   006A96A5 (6985381)\n-6FFCB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFCB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFCE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFCE2   Length              0005 (5)\n-6FFCE4   Flags               01 (1) 'Modification'\n-6FFCE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFCE9 CENTRAL HEADER #1956  02014B50 (33639248)\n-6FFCED Created Zip Spec      14 (20) '2.0'\n-6FFCEE Created OS            00 (0) 'MS-DOS'\n-6FFCEF Extract Zip Spec      14 (20) '2.0'\n-6FFCF0 Extract OS            00 (0) 'MS-DOS'\n-6FFCF1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFCF3 Compression Method    0000 (0) 'Stored'\n-6FFCF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFCF9 CRC                   28AB9AE3 (682334947)\n-6FFCFD Compressed Size       00000411 (1041)\n-6FFD01 Uncompressed Size     00000411 (1041)\n-6FFD05 Filename Length       002D (45)\n-6FFD07 Extra Length          0009 (9)\n-6FFD09 Comment Length        0000 (0)\n-6FFD0B Disk Start            0000 (0)\n-6FFD0D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFD0F Ext File Attributes   00000000 (0)\n-6FFD13 Local Header Offset   006A9A8A (6986378)\n-6FFD17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFD17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFD44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFD46   Length              0005 (5)\n-6FFD48   Flags               01 (1) 'Modification'\n-6FFD49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFD4D CENTRAL HEADER #1957  02014B50 (33639248)\n-6FFD51 Created Zip Spec      14 (20) '2.0'\n-6FFD52 Created OS            00 (0) 'MS-DOS'\n-6FFD53 Extract Zip Spec      14 (20) '2.0'\n-6FFD54 Extract OS            00 (0) 'MS-DOS'\n-6FFD55 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFD57 Compression Method    0000 (0) 'Stored'\n-6FFD59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFD5D CRC                   9CAA7033 (2628415539)\n-6FFD61 Compressed Size       00000426 (1062)\n-6FFD65 Uncompressed Size     00000426 (1062)\n-6FFD69 Filename Length       0035 (53)\n-6FFD6B Extra Length          0009 (9)\n-6FFD6D Comment Length        0000 (0)\n-6FFD6F Disk Start            0000 (0)\n-6FFD71 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFD73 Ext File Attributes   00000000 (0)\n-6FFD77 Local Header Offset   006A9EFF (6987519)\n-6FFD7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFD7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFDB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFDB2   Length              0005 (5)\n-6FFDB4   Flags               01 (1) 'Modification'\n-6FFDB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFDB9 CENTRAL HEADER #1958  02014B50 (33639248)\n-6FFDBD Created Zip Spec      14 (20) '2.0'\n-6FFDBE Created OS            00 (0) 'MS-DOS'\n-6FFDBF Extract Zip Spec      14 (20) '2.0'\n-6FFDC0 Extract OS            00 (0) 'MS-DOS'\n-6FFDC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFDC3 Compression Method    0000 (0) 'Stored'\n-6FFDC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFDC9 CRC                   C2B7ABEC (3266817004)\n-6FFDCD Compressed Size       000007C9 (1993)\n-6FFDD1 Uncompressed Size     000007C9 (1993)\n-6FFDD5 Filename Length       0032 (50)\n-6FFDD7 Extra Length          0009 (9)\n-6FFDD9 Comment Length        0000 (0)\n-6FFDDB Disk Start            0000 (0)\n-6FFDDD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFDDF Ext File Attributes   00000000 (0)\n-6FFDE3 Local Header Offset   006AA391 (6988689)\n-6FFDE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFDE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFE19 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFE1B   Length              0005 (5)\n-6FFE1D   Flags               01 (1) 'Modification'\n-6FFE1E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFE22 CENTRAL HEADER #1959  02014B50 (33639248)\n-6FFE26 Created Zip Spec      14 (20) '2.0'\n-6FFE27 Created OS            00 (0) 'MS-DOS'\n-6FFE28 Extract Zip Spec      14 (20) '2.0'\n-6FFE29 Extract OS            00 (0) 'MS-DOS'\n-6FFE2A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFE2C Compression Method    0000 (0) 'Stored'\n-6FFE2E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFE32 CRC                   2C4FF5E6 (743437798)\n-6FFE36 Compressed Size       0000075E (1886)\n-6FFE3A Uncompressed Size     0000075E (1886)\n-6FFE3E Filename Length       0030 (48)\n-6FFE40 Extra Length          0009 (9)\n-6FFE42 Comment Length        0000 (0)\n-6FFE44 Disk Start            0000 (0)\n-6FFE46 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFE48 Ext File Attributes   00000000 (0)\n-6FFE4C Local Header Offset   006AABC3 (6990787)\n-6FFE50 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFE50: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFE80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFE82   Length              0005 (5)\n-6FFE84   Flags               01 (1) 'Modification'\n-6FFE85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFE89 CENTRAL HEADER #1960  02014B50 (33639248)\n-6FFE8D Created Zip Spec      14 (20) '2.0'\n-6FFE8E Created OS            00 (0) 'MS-DOS'\n-6FFE8F Extract Zip Spec      14 (20) '2.0'\n-6FFE90 Extract OS            00 (0) 'MS-DOS'\n-6FFE91 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFE93 Compression Method    0000 (0) 'Stored'\n-6FFE95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFE99 CRC                   420D2C18 (1108159512)\n-6FFE9D Compressed Size       0000042C (1068)\n-6FFEA1 Uncompressed Size     0000042C (1068)\n-6FFEA5 Filename Length       0038 (56)\n-6FFEA7 Extra Length          0009 (9)\n-6FFEA9 Comment Length        0000 (0)\n-6FFEAB Disk Start            0000 (0)\n-6FFEAD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFEAF Ext File Attributes   00000000 (0)\n-6FFEB3 Local Header Offset   006AB388 (6992776)\n-6FFEB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFEB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFEEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFEF1   Length              0005 (5)\n-6FFEF3   Flags               01 (1) 'Modification'\n-6FFEF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFEF8 CENTRAL HEADER #1961  02014B50 (33639248)\n-6FFEFC Created Zip Spec      14 (20) '2.0'\n-6FFEFD Created OS            00 (0) 'MS-DOS'\n-6FFEFE Extract Zip Spec      14 (20) '2.0'\n-6FFEFF Extract OS            00 (0) 'MS-DOS'\n-6FFF00 General Purpose Flag  0000 (0)\n-6FFF02 Compression Method    0000 (0) 'Stored'\n-6FFF04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFF08 CRC                   00000000 (0)\n-6FFF0C Compressed Size       00000000 (0)\n-6FFF10 Uncompressed Size     00000000 (0)\n-6FFF14 Filename Length       001D (29)\n-6FFF16 Extra Length          0009 (9)\n-6FFF18 Comment Length        0000 (0)\n-6FFF1A Disk Start            0000 (0)\n-6FFF1C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFF1E Ext File Attributes   00000000 (0)\n-6FFF22 Local Header Offset   006AB823 (6993955)\n-6FFF26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFF26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFF43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFF45   Length              0005 (5)\n-6FFF47   Flags               01 (1) 'Modification'\n-6FFF48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFF4C CENTRAL HEADER #1962  02014B50 (33639248)\n-6FFF50 Created Zip Spec      14 (20) '2.0'\n-6FFF51 Created OS            00 (0) 'MS-DOS'\n-6FFF52 Extract Zip Spec      14 (20) '2.0'\n-6FFF53 Extract OS            00 (0) 'MS-DOS'\n-6FFF54 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFF56 Compression Method    0000 (0) 'Stored'\n-6FFF58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFF5C CRC                   71347931 (1899264305)\n-6FFF60 Compressed Size       00001EE7 (7911)\n-6FFF64 Uncompressed Size     00001EE7 (7911)\n-6FFF68 Filename Length       002F (47)\n-6FFF6A Extra Length          0009 (9)\n-6FFF6C Comment Length        0000 (0)\n-6FFF6E Disk Start            0000 (0)\n-6FFF70 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFF72 Ext File Attributes   00000000 (0)\n-6FFF76 Local Header Offset   006AB867 (6994023)\n-6FFF7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFF7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-6FFFA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-6FFFAB   Length              0005 (5)\n-6FFFAD   Flags               01 (1) 'Modification'\n-6FFFAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-6FFFB2 CENTRAL HEADER #1963  02014B50 (33639248)\n-6FFFB6 Created Zip Spec      14 (20) '2.0'\n-6FFFB7 Created OS            00 (0) 'MS-DOS'\n-6FFFB8 Extract Zip Spec      14 (20) '2.0'\n-6FFFB9 Extract OS            00 (0) 'MS-DOS'\n-6FFFBA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-6FFFBC Compression Method    0000 (0) 'Stored'\n-6FFFBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-6FFFC2 CRC                   40BAC24E (1085981262)\n-6FFFC6 Compressed Size       00000B49 (2889)\n-6FFFCA Uncompressed Size     00000B49 (2889)\n-6FFFCE Filename Length       0036 (54)\n-6FFFD0 Extra Length          0009 (9)\n-6FFFD2 Comment Length        0000 (0)\n-6FFFD4 Disk Start            0000 (0)\n-6FFFD6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-6FFFD8 Ext File Attributes   00000000 (0)\n-6FFFDC Local Header Offset   006AD7B4 (7002036)\n-6FFFE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x6FFFE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700018   Length              0005 (5)\n-70001A   Flags               01 (1) 'Modification'\n-70001B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70001F CENTRAL HEADER #1964  02014B50 (33639248)\n-700023 Created Zip Spec      14 (20) '2.0'\n-700024 Created OS            00 (0) 'MS-DOS'\n-700025 Extract Zip Spec      14 (20) '2.0'\n-700026 Extract OS            00 (0) 'MS-DOS'\n-700027 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700029 Compression Method    0000 (0) 'Stored'\n-70002B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70002F CRC                   E459791A (3831068954)\n-700033 Compressed Size       00002B55 (11093)\n-700037 Uncompressed Size     00002B55 (11093)\n-70003B Filename Length       002D (45)\n-70003D Extra Length          0009 (9)\n-70003F Comment Length        0000 (0)\n-700041 Disk Start            0000 (0)\n-700043 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700045 Ext File Attributes   00000000 (0)\n-700049 Local Header Offset   006AE36A (7005034)\n-70004D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70004D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-70007A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70007C   Length              0005 (5)\n-70007E   Flags               01 (1) 'Modification'\n-70007F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700083 CENTRAL HEADER #1965  02014B50 (33639248)\n-700087 Created Zip Spec      14 (20) '2.0'\n-700088 Created OS            00 (0) 'MS-DOS'\n-700089 Extract Zip Spec      14 (20) '2.0'\n-70008A Extract OS            00 (0) 'MS-DOS'\n-70008B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70008D Compression Method    0000 (0) 'Stored'\n-70008F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700093 CRC                   80C30D3D (2160266557)\n-700097 Compressed Size       0000065E (1630)\n-70009B Uncompressed Size     0000065E (1630)\n-70009F Filename Length       002E (46)\n-7000A1 Extra Length          0009 (9)\n-7000A3 Comment Length        0000 (0)\n-7000A5 Disk Start            0000 (0)\n-7000A7 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7000A9 Ext File Attributes   00000000 (0)\n-7000AD Local Header Offset   006B0F23 (7016227)\n-7000B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7000B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7000DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7000E1   Length              0005 (5)\n-7000E3   Flags               01 (1) 'Modification'\n-7000E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7000E8 CENTRAL HEADER #1966  02014B50 (33639248)\n-7000EC Created Zip Spec      14 (20) '2.0'\n-7000ED Created OS            00 (0) 'MS-DOS'\n-7000EE Extract Zip Spec      14 (20) '2.0'\n-7000EF Extract OS            00 (0) 'MS-DOS'\n-7000F0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7000F2 Compression Method    0000 (0) 'Stored'\n-7000F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7000F8 CRC                   CC5CA724 (3428624164)\n-7000FC Compressed Size       0000105D (4189)\n-700100 Uncompressed Size     0000105D (4189)\n-700104 Filename Length       002F (47)\n-700106 Extra Length          0009 (9)\n-700108 Comment Length        0000 (0)\n-70010A Disk Start            0000 (0)\n-70010C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70010E Ext File Attributes   00000000 (0)\n-700112 Local Header Offset   006B15E6 (7017958)\n-700116 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700116: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700145 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700147   Length              0005 (5)\n-700149   Flags               01 (1) 'Modification'\n-70014A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70014E CENTRAL HEADER #1967  02014B50 (33639248)\n-700152 Created Zip Spec      14 (20) '2.0'\n-700153 Created OS            00 (0) 'MS-DOS'\n-700154 Extract Zip Spec      14 (20) '2.0'\n-700155 Extract OS            00 (0) 'MS-DOS'\n-700156 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700158 Compression Method    0000 (0) 'Stored'\n-70015A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70015E CRC                   613BF150 (1631318352)\n-700162 Compressed Size       00002B36 (11062)\n-700166 Uncompressed Size     00002B36 (11062)\n-70016A Filename Length       002A (42)\n-70016C Extra Length          0009 (9)\n-70016E Comment Length        0000 (0)\n-700170 Disk Start            0000 (0)\n-700172 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700174 Ext File Attributes   00000000 (0)\n-700178 Local Header Offset   006B26A9 (7022249)\n-70017C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70017C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7001A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7001A8   Length              0005 (5)\n-7001AA   Flags               01 (1) 'Modification'\n-7001AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7001AF CENTRAL HEADER #1968  02014B50 (33639248)\n-7001B3 Created Zip Spec      14 (20) '2.0'\n-7001B4 Created OS            00 (0) 'MS-DOS'\n-7001B5 Extract Zip Spec      14 (20) '2.0'\n-7001B6 Extract OS            00 (0) 'MS-DOS'\n-7001B7 General Purpose Flag  0000 (0)\n-7001B9 Compression Method    0000 (0) 'Stored'\n-7001BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7001BF CRC                   00000000 (0)\n-7001C3 Compressed Size       00000000 (0)\n-7001C7 Uncompressed Size     00000000 (0)\n-7001CB Filename Length       001B (27)\n-7001CD Extra Length          0009 (9)\n-7001CF Comment Length        0000 (0)\n-7001D1 Disk Start            0000 (0)\n-7001D3 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7001D5 Ext File Attributes   00000000 (0)\n-7001D9 Local Header Offset   006B5240 (7033408)\n-7001DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7001DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7001F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7001FA   Length              0005 (5)\n-7001FC   Flags               01 (1) 'Modification'\n-7001FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700201 CENTRAL HEADER #1969  02014B50 (33639248)\n-700205 Created Zip Spec      14 (20) '2.0'\n-700206 Created OS            00 (0) 'MS-DOS'\n-700207 Extract Zip Spec      14 (20) '2.0'\n-700208 Extract OS            00 (0) 'MS-DOS'\n-700209 General Purpose Flag  0000 (0)\n-70020B Compression Method    0000 (0) 'Stored'\n-70020D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700211 CRC                   00000000 (0)\n-700215 Compressed Size       00000000 (0)\n-700219 Uncompressed Size     00000000 (0)\n-70021D Filename Length       0023 (35)\n-70021F Extra Length          0009 (9)\n-700221 Comment Length        0000 (0)\n-700223 Disk Start            0000 (0)\n-700225 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700227 Ext File Attributes   00000000 (0)\n-70022B Local Header Offset   006B5282 (7033474)\n-70022F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70022F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700252 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700254   Length              0005 (5)\n-700256   Flags               01 (1) 'Modification'\n-700257   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70025B CENTRAL HEADER #1970  02014B50 (33639248)\n-70025F Created Zip Spec      14 (20) '2.0'\n-700260 Created OS            00 (0) 'MS-DOS'\n-700261 Extract Zip Spec      14 (20) '2.0'\n-700262 Extract OS            00 (0) 'MS-DOS'\n-700263 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700265 Compression Method    0000 (0) 'Stored'\n-700267 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70026B CRC                   852B452E (2234205486)\n-70026F Compressed Size       00000A84 (2692)\n-700273 Uncompressed Size     00000A84 (2692)\n-700277 Filename Length       003B (59)\n-700279 Extra Length          0009 (9)\n-70027B Comment Length        0000 (0)\n-70027D Disk Start            0000 (0)\n-70027F Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700281 Ext File Attributes   00000000 (0)\n-700285 Local Header Offset   006B52CC (7033548)\n-700289 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700289: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7002C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7002C6   Length              0005 (5)\n-7002C8   Flags               01 (1) 'Modification'\n-7002C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7002CD CENTRAL HEADER #1971  02014B50 (33639248)\n-7002D1 Created Zip Spec      14 (20) '2.0'\n-7002D2 Created OS            00 (0) 'MS-DOS'\n-7002D3 Extract Zip Spec      14 (20) '2.0'\n-7002D4 Extract OS            00 (0) 'MS-DOS'\n-7002D5 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7002D7 Compression Method    0000 (0) 'Stored'\n-7002D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7002DD CRC                   3D3ED0A6 (1027526822)\n-7002E1 Compressed Size       00000A4B (2635)\n-7002E5 Uncompressed Size     00000A4B (2635)\n-7002E9 Filename Length       003C (60)\n-7002EB Extra Length          0009 (9)\n-7002ED Comment Length        0000 (0)\n-7002EF Disk Start            0000 (0)\n-7002F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7002F3 Ext File Attributes   00000000 (0)\n-7002F7 Local Header Offset   006B5DC2 (7036354)\n-7002FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7002FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700337 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700339   Length              0005 (5)\n-70033B   Flags               01 (1) 'Modification'\n-70033C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700340 CENTRAL HEADER #1972  02014B50 (33639248)\n-700344 Created Zip Spec      14 (20) '2.0'\n-700345 Created OS            00 (0) 'MS-DOS'\n-700346 Extract Zip Spec      14 (20) '2.0'\n-700347 Extract OS            00 (0) 'MS-DOS'\n-700348 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70034A Compression Method    0000 (0) 'Stored'\n-70034C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700350 CRC                   0FA733C6 (262616006)\n-700354 Compressed Size       00000707 (1799)\n-700358 Uncompressed Size     00000707 (1799)\n-70035C Filename Length       003D (61)\n-70035E Extra Length          0009 (9)\n-700360 Comment Length        0000 (0)\n-700362 Disk Start            0000 (0)\n-700364 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700366 Ext File Attributes   00000000 (0)\n-70036A Local Header Offset   006B6880 (7039104)\n-70036E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70036E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7003AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7003AD   Length              0005 (5)\n-7003AF   Flags               01 (1) 'Modification'\n-7003B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7003B4 CENTRAL HEADER #1973  02014B50 (33639248)\n-7003B8 Created Zip Spec      14 (20) '2.0'\n-7003B9 Created OS            00 (0) 'MS-DOS'\n-7003BA Extract Zip Spec      14 (20) '2.0'\n-7003BB Extract OS            00 (0) 'MS-DOS'\n-7003BC General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7003BE Compression Method    0000 (0) 'Stored'\n-7003C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7003C4 CRC                   42BF763C (1119843900)\n-7003C8 Compressed Size       00000709 (1801)\n-7003CC Uncompressed Size     00000709 (1801)\n-7003D0 Filename Length       0041 (65)\n-7003D2 Extra Length          0009 (9)\n-7003D4 Comment Length        0000 (0)\n-7003D6 Disk Start            0000 (0)\n-7003D8 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7003DA Ext File Attributes   00000000 (0)\n-7003DE Local Header Offset   006B6FFB (7041019)\n-7003E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7003E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700423 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700425   Length              0005 (5)\n-700427   Flags               01 (1) 'Modification'\n-700428   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70042C CENTRAL HEADER #1974  02014B50 (33639248)\n-700430 Created Zip Spec      14 (20) '2.0'\n-700431 Created OS            00 (0) 'MS-DOS'\n-700432 Extract Zip Spec      14 (20) '2.0'\n-700433 Extract OS            00 (0) 'MS-DOS'\n-700434 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700436 Compression Method    0000 (0) 'Stored'\n-700438 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70043C CRC                   9A817459 (2592175193)\n-700440 Compressed Size       000011CF (4559)\n-700444 Uncompressed Size     000011CF (4559)\n-700448 Filename Length       003E (62)\n-70044A Extra Length          0009 (9)\n-70044C Comment Length        0000 (0)\n-70044E Disk Start            0000 (0)\n-700450 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700452 Ext File Attributes   00000000 (0)\n-700456 Local Header Offset   006B777C (7042940)\n-70045A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70045A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700498 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70049A   Length              0005 (5)\n-70049C   Flags               01 (1) 'Modification'\n-70049D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7004A1 CENTRAL HEADER #1975  02014B50 (33639248)\n-7004A5 Created Zip Spec      14 (20) '2.0'\n-7004A6 Created OS            00 (0) 'MS-DOS'\n-7004A7 Extract Zip Spec      14 (20) '2.0'\n-7004A8 Extract OS            00 (0) 'MS-DOS'\n-7004A9 General Purpose Flag  0000 (0)\n-7004AB Compression Method    0000 (0) 'Stored'\n-7004AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7004B1 CRC                   00000000 (0)\n-7004B5 Compressed Size       00000000 (0)\n-7004B9 Uncompressed Size     00000000 (0)\n-7004BD Filename Length       002E (46)\n-7004BF Extra Length          0009 (9)\n-7004C1 Comment Length        0000 (0)\n-7004C3 Disk Start            0000 (0)\n-7004C5 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7004C7 Ext File Attributes   00000000 (0)\n-7004CB Local Header Offset   006B89C0 (7047616)\n-7004CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7004CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7004FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7004FF   Length              0005 (5)\n-700501   Flags               01 (1) 'Modification'\n-700502   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700506 CENTRAL HEADER #1976  02014B50 (33639248)\n-70050A Created Zip Spec      14 (20) '2.0'\n-70050B Created OS            00 (0) 'MS-DOS'\n-70050C Extract Zip Spec      14 (20) '2.0'\n-70050D Extract OS            00 (0) 'MS-DOS'\n-70050E General Purpose Flag  0000 (0)\n-700510 Compression Method    0000 (0) 'Stored'\n-700512 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700516 CRC                   00000000 (0)\n-70051A Compressed Size       00000000 (0)\n-70051E Uncompressed Size     00000000 (0)\n-700522 Filename Length       0034 (52)\n-700524 Extra Length          0009 (9)\n-700526 Comment Length        0000 (0)\n-700528 Disk Start            0000 (0)\n-70052A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70052C Ext File Attributes   00000000 (0)\n-700530 Local Header Offset   006B8A15 (7047701)\n-700534 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700534: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700568 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70056A   Length              0005 (5)\n-70056C   Flags               01 (1) 'Modification'\n-70056D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700571 CENTRAL HEADER #1977  02014B50 (33639248)\n-700575 Created Zip Spec      14 (20) '2.0'\n-700576 Created OS            00 (0) 'MS-DOS'\n-700577 Extract Zip Spec      14 (20) '2.0'\n-700578 Extract OS            00 (0) 'MS-DOS'\n-700579 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70057B Compression Method    0000 (0) 'Stored'\n-70057D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700581 CRC                   526506A5 (1382352549)\n-700585 Compressed Size       0000067A (1658)\n-700589 Uncompressed Size     0000067A (1658)\n-70058D Filename Length       0047 (71)\n-70058F Extra Length          0009 (9)\n-700591 Comment Length        0000 (0)\n-700593 Disk Start            0000 (0)\n-700595 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700597 Ext File Attributes   00000000 (0)\n-70059B Local Header Offset   006B8A70 (7047792)\n-70059F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70059F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7005E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7005E8   Length              0005 (5)\n-7005EA   Flags               01 (1) 'Modification'\n-7005EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7005EF CENTRAL HEADER #1978  02014B50 (33639248)\n-7005F3 Created Zip Spec      14 (20) '2.0'\n-7005F4 Created OS            00 (0) 'MS-DOS'\n-7005F5 Extract Zip Spec      14 (20) '2.0'\n-7005F6 Extract OS            00 (0) 'MS-DOS'\n-7005F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7005F9 Compression Method    0000 (0) 'Stored'\n-7005FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7005FF CRC                   E4089255 (3825766997)\n-700603 Compressed Size       00000679 (1657)\n-700607 Uncompressed Size     00000679 (1657)\n-70060B Filename Length       0046 (70)\n-70060D Extra Length          0009 (9)\n-70060F Comment Length        0000 (0)\n-700611 Disk Start            0000 (0)\n-700613 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700615 Ext File Attributes   00000000 (0)\n-700619 Local Header Offset   006B9168 (7049576)\n-70061D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70061D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700663 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700665   Length              0005 (5)\n-700667   Flags               01 (1) 'Modification'\n-700668   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70066C CENTRAL HEADER #1979  02014B50 (33639248)\n-700670 Created Zip Spec      14 (20) '2.0'\n-700671 Created OS            00 (0) 'MS-DOS'\n-700672 Extract Zip Spec      14 (20) '2.0'\n-700673 Extract OS            00 (0) 'MS-DOS'\n-700674 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700676 Compression Method    0000 (0) 'Stored'\n-700678 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70067C CRC                   3FBD14BB (1069356219)\n-700680 Compressed Size       000007A8 (1960)\n-700684 Uncompressed Size     000007A8 (1960)\n-700688 Filename Length       004C (76)\n-70068A Extra Length          0009 (9)\n-70068C Comment Length        0000 (0)\n-70068E Disk Start            0000 (0)\n-700690 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700692 Ext File Attributes   00000000 (0)\n-700696 Local Header Offset   006B985E (7051358)\n-70069A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70069A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7006E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7006E8   Length              0005 (5)\n-7006EA   Flags               01 (1) 'Modification'\n-7006EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7006EF CENTRAL HEADER #1980  02014B50 (33639248)\n-7006F3 Created Zip Spec      14 (20) '2.0'\n-7006F4 Created OS            00 (0) 'MS-DOS'\n-7006F5 Extract Zip Spec      14 (20) '2.0'\n-7006F6 Extract OS            00 (0) 'MS-DOS'\n-7006F7 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7006F9 Compression Method    0000 (0) 'Stored'\n-7006FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7006FF CRC                   0BA6304B (195440715)\n-700703 Compressed Size       000006BF (1727)\n-700707 Uncompressed Size     000006BF (1727)\n-70070B Filename Length       0048 (72)\n-70070D Extra Length          0009 (9)\n-70070F Comment Length        0000 (0)\n-700711 Disk Start            0000 (0)\n-700713 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700715 Ext File Attributes   00000000 (0)\n-700719 Local Header Offset   006BA089 (7053449)\n-70071D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70071D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700765 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700767   Length              0005 (5)\n-700769   Flags               01 (1) 'Modification'\n-70076A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-70076E CENTRAL HEADER #1981  02014B50 (33639248)\n-700772 Created Zip Spec      14 (20) '2.0'\n-700773 Created OS            00 (0) 'MS-DOS'\n-700774 Extract Zip Spec      14 (20) '2.0'\n-700775 Extract OS            00 (0) 'MS-DOS'\n-700776 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700778 Compression Method    0000 (0) 'Stored'\n-70077A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-70077E CRC                   6F153BA7 (1863662503)\n-700782 Compressed Size       000006D6 (1750)\n-700786 Uncompressed Size     000006D6 (1750)\n-70078A Filename Length       004C (76)\n-70078C Extra Length          0009 (9)\n-70078E Comment Length        0000 (0)\n-700790 Disk Start            0000 (0)\n-700792 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700794 Ext File Attributes   00000000 (0)\n-700798 Local Header Offset   006BA7C7 (7055303)\n-70079C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70079C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7007E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7007EA   Length              0005 (5)\n-7007EC   Flags               01 (1) 'Modification'\n-7007ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7007F1 CENTRAL HEADER #1982  02014B50 (33639248)\n-7007F5 Created Zip Spec      14 (20) '2.0'\n-7007F6 Created OS            00 (0) 'MS-DOS'\n-7007F7 Extract Zip Spec      14 (20) '2.0'\n-7007F8 Extract OS            00 (0) 'MS-DOS'\n-7007F9 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7007FB Compression Method    0000 (0) 'Stored'\n-7007FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700801 CRC                   6E8EF8DF (1854863583)\n-700805 Compressed Size       0000070F (1807)\n-700809 Uncompressed Size     0000070F (1807)\n-70080D Filename Length       0048 (72)\n-70080F Extra Length          0009 (9)\n-700811 Comment Length        0000 (0)\n-700813 Disk Start            0000 (0)\n-700815 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700817 Ext File Attributes   00000000 (0)\n-70081B Local Header Offset   006BAF20 (7057184)\n-70081F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70081F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700867 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700869   Length              0005 (5)\n-70086B   Flags               01 (1) 'Modification'\n-70086C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700870 CENTRAL HEADER #1983  02014B50 (33639248)\n-700874 Created Zip Spec      14 (20) '2.0'\n-700875 Created OS            00 (0) 'MS-DOS'\n-700876 Extract Zip Spec      14 (20) '2.0'\n-700877 Extract OS            00 (0) 'MS-DOS'\n-700878 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70087A Compression Method    0000 (0) 'Stored'\n-70087C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700880 CRC                   1A07B667 (436713063)\n-700884 Compressed Size       0000066E (1646)\n-700888 Uncompressed Size     0000066E (1646)\n-70088C Filename Length       0047 (71)\n-70088E Extra Length          0009 (9)\n-700890 Comment Length        0000 (0)\n-700892 Disk Start            0000 (0)\n-700894 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700896 Ext File Attributes   00000000 (0)\n-70089A Local Header Offset   006BB6AE (7059118)\n-70089E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70089E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7008E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7008E7   Length              0005 (5)\n-7008E9   Flags               01 (1) 'Modification'\n-7008EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7008EE CENTRAL HEADER #1984  02014B50 (33639248)\n-7008F2 Created Zip Spec      14 (20) '2.0'\n-7008F3 Created OS            00 (0) 'MS-DOS'\n-7008F4 Extract Zip Spec      14 (20) '2.0'\n-7008F5 Extract OS            00 (0) 'MS-DOS'\n-7008F6 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7008F8 Compression Method    0000 (0) 'Stored'\n-7008FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7008FE CRC                   08DC2FC0 (148647872)\n-700902 Compressed Size       00000709 (1801)\n-700906 Uncompressed Size     00000709 (1801)\n-70090A Filename Length       004D (77)\n-70090C Extra Length          0009 (9)\n-70090E Comment Length        0000 (0)\n-700910 Disk Start            0000 (0)\n-700912 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700914 Ext File Attributes   00000000 (0)\n-700918 Local Header Offset   006BBD9A (7060890)\n-70091C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70091C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700969 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70096B   Length              0005 (5)\n-70096D   Flags               01 (1) 'Modification'\n-70096E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700972 CENTRAL HEADER #1985  02014B50 (33639248)\n-700976 Created Zip Spec      14 (20) '2.0'\n-700977 Created OS            00 (0) 'MS-DOS'\n-700978 Extract Zip Spec      14 (20) '2.0'\n-700979 Extract OS            00 (0) 'MS-DOS'\n-70097A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70097C Compression Method    0000 (0) 'Stored'\n-70097E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700982 CRC                   816C5FDD (2171363293)\n-700986 Compressed Size       000006E4 (1764)\n-70098A Uncompressed Size     000006E4 (1764)\n-70098E Filename Length       0049 (73)\n-700990 Extra Length          0009 (9)\n-700992 Comment Length        0000 (0)\n-700994 Disk Start            0000 (0)\n-700996 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700998 Ext File Attributes   00000000 (0)\n-70099C Local Header Offset   006BC527 (7062823)\n-7009A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7009A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7009E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7009EB   Length              0005 (5)\n-7009ED   Flags               01 (1) 'Modification'\n-7009EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7009F2 CENTRAL HEADER #1986  02014B50 (33639248)\n-7009F6 Created Zip Spec      14 (20) '2.0'\n-7009F7 Created OS            00 (0) 'MS-DOS'\n-7009F8 Extract Zip Spec      14 (20) '2.0'\n-7009F9 Extract OS            00 (0) 'MS-DOS'\n-7009FA General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7009FC Compression Method    0000 (0) 'Stored'\n-7009FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700A02 CRC                   8DA313D4 (2376274900)\n-700A06 Compressed Size       000006A1 (1697)\n-700A0A Uncompressed Size     000006A1 (1697)\n-700A0E Filename Length       0045 (69)\n-700A10 Extra Length          0009 (9)\n-700A12 Comment Length        0000 (0)\n-700A14 Disk Start            0000 (0)\n-700A16 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700A18 Ext File Attributes   00000000 (0)\n-700A1C Local Header Offset   006BCC8B (7064715)\n-700A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700A65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700A67   Length              0005 (5)\n-700A69   Flags               01 (1) 'Modification'\n-700A6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700A6E CENTRAL HEADER #1987  02014B50 (33639248)\n-700A72 Created Zip Spec      14 (20) '2.0'\n-700A73 Created OS            00 (0) 'MS-DOS'\n-700A74 Extract Zip Spec      14 (20) '2.0'\n-700A75 Extract OS            00 (0) 'MS-DOS'\n-700A76 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700A78 Compression Method    0000 (0) 'Stored'\n-700A7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700A7E CRC                   73C20F72 (1942097778)\n-700A82 Compressed Size       000005F3 (1523)\n-700A86 Uncompressed Size     000005F3 (1523)\n-700A8A Filename Length       0043 (67)\n-700A8C Extra Length          0009 (9)\n-700A8E Comment Length        0000 (0)\n-700A90 Disk Start            0000 (0)\n-700A92 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700A94 Ext File Attributes   00000000 (0)\n-700A98 Local Header Offset   006BD3A8 (7066536)\n-700A9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700A9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700ADF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700AE1   Length              0005 (5)\n-700AE3   Flags               01 (1) 'Modification'\n-700AE4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700AE8 CENTRAL HEADER #1988  02014B50 (33639248)\n-700AEC Created Zip Spec      14 (20) '2.0'\n-700AED Created OS            00 (0) 'MS-DOS'\n-700AEE Extract Zip Spec      14 (20) '2.0'\n-700AEF Extract OS            00 (0) 'MS-DOS'\n-700AF0 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700AF2 Compression Method    0000 (0) 'Stored'\n-700AF4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700AF8 CRC                   51EB89D1 (1374390737)\n-700AFC Compressed Size       00000676 (1654)\n-700B00 Uncompressed Size     00000676 (1654)\n-700B04 Filename Length       0048 (72)\n-700B06 Extra Length          0009 (9)\n-700B08 Comment Length        0000 (0)\n-700B0A Disk Start            0000 (0)\n-700B0C Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700B0E Ext File Attributes   00000000 (0)\n-700B12 Local Header Offset   006BDA15 (7068181)\n-700B16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700B16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700B5E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700B60   Length              0005 (5)\n-700B62   Flags               01 (1) 'Modification'\n-700B63   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700B67 CENTRAL HEADER #1989  02014B50 (33639248)\n-700B6B Created Zip Spec      14 (20) '2.0'\n-700B6C Created OS            00 (0) 'MS-DOS'\n-700B6D Extract Zip Spec      14 (20) '2.0'\n-700B6E Extract OS            00 (0) 'MS-DOS'\n-700B6F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700B71 Compression Method    0000 (0) 'Stored'\n-700B73 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700B77 CRC                   DBD89AB9 (3688405689)\n-700B7B Compressed Size       00000615 (1557)\n-700B7F Uncompressed Size     00000615 (1557)\n-700B83 Filename Length       0045 (69)\n-700B85 Extra Length          0009 (9)\n-700B87 Comment Length        0000 (0)\n-700B89 Disk Start            0000 (0)\n-700B8B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700B8D Ext File Attributes   00000000 (0)\n-700B91 Local Header Offset   006BE10A (7069962)\n-700B95 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700B95: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700BDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700BDC   Length              0005 (5)\n-700BDE   Flags               01 (1) 'Modification'\n-700BDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700BE3 CENTRAL HEADER #1990  02014B50 (33639248)\n-700BE7 Created Zip Spec      14 (20) '2.0'\n-700BE8 Created OS            00 (0) 'MS-DOS'\n-700BE9 Extract Zip Spec      14 (20) '2.0'\n-700BEA Extract OS            00 (0) 'MS-DOS'\n-700BEB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700BED Compression Method    0000 (0) 'Stored'\n-700BEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700BF3 CRC                   608B08E5 (1619724517)\n-700BF7 Compressed Size       000005BC (1468)\n-700BFB Uncompressed Size     000005BC (1468)\n-700BFF Filename Length       0049 (73)\n-700C01 Extra Length          0009 (9)\n-700C03 Comment Length        0000 (0)\n-700C05 Disk Start            0000 (0)\n-700C07 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700C09 Ext File Attributes   00000000 (0)\n-700C0D Local Header Offset   006BE79B (7071643)\n-700C11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700C11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700C5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700C5C   Length              0005 (5)\n-700C5E   Flags               01 (1) 'Modification'\n-700C5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700C63 CENTRAL HEADER #1991  02014B50 (33639248)\n-700C67 Created Zip Spec      14 (20) '2.0'\n-700C68 Created OS            00 (0) 'MS-DOS'\n-700C69 Extract Zip Spec      14 (20) '2.0'\n-700C6A Extract OS            00 (0) 'MS-DOS'\n-700C6B General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700C6D Compression Method    0000 (0) 'Stored'\n-700C6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700C73 CRC                   86844A74 (2256816756)\n-700C77 Compressed Size       00000649 (1609)\n-700C7B Uncompressed Size     00000649 (1609)\n-700C7F Filename Length       0049 (73)\n-700C81 Extra Length          0009 (9)\n-700C83 Comment Length        0000 (0)\n-700C85 Disk Start            0000 (0)\n-700C87 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700C89 Ext File Attributes   00000000 (0)\n-700C8D Local Header Offset   006BEDD7 (7073239)\n-700C91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700C91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700CDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700CDC   Length              0005 (5)\n-700CDE   Flags               01 (1) 'Modification'\n-700CDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700CE3 CENTRAL HEADER #1992  02014B50 (33639248)\n-700CE7 Created Zip Spec      14 (20) '2.0'\n-700CE8 Created OS            00 (0) 'MS-DOS'\n-700CE9 Extract Zip Spec      14 (20) '2.0'\n-700CEA Extract OS            00 (0) 'MS-DOS'\n-700CEB General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700CED Compression Method    0000 (0) 'Stored'\n-700CEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700CF3 CRC                   1702371E (386021150)\n-700CF7 Compressed Size       000007D9 (2009)\n-700CFB Uncompressed Size     000007D9 (2009)\n-700CFF Filename Length       004C (76)\n-700D01 Extra Length          0009 (9)\n-700D03 Comment Length        0000 (0)\n-700D05 Disk Start            0000 (0)\n-700D07 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700D09 Ext File Attributes   00000000 (0)\n-700D0D Local Header Offset   006BF4A0 (7074976)\n-700D11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700D11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700D5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700D5F   Length              0005 (5)\n-700D61   Flags               01 (1) 'Modification'\n-700D62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700D66 CENTRAL HEADER #1993  02014B50 (33639248)\n-700D6A Created Zip Spec      14 (20) '2.0'\n-700D6B Created OS            00 (0) 'MS-DOS'\n-700D6C Extract Zip Spec      14 (20) '2.0'\n-700D6D Extract OS            00 (0) 'MS-DOS'\n-700D6E General Purpose Flag  0000 (0)\n-700D70 Compression Method    0000 (0) 'Stored'\n-700D72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700D76 CRC                   00000000 (0)\n-700D7A Compressed Size       00000000 (0)\n-700D7E Uncompressed Size     00000000 (0)\n-700D82 Filename Length       001C (28)\n-700D84 Extra Length          0009 (9)\n-700D86 Comment Length        0000 (0)\n-700D88 Disk Start            0000 (0)\n-700D8A Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700D8C Ext File Attributes   00000000 (0)\n-700D90 Local Header Offset   006BFCFC (7077116)\n-700D94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700D94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700DB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700DB2   Length              0005 (5)\n-700DB4   Flags               01 (1) 'Modification'\n-700DB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700DB9 CENTRAL HEADER #1994  02014B50 (33639248)\n-700DBD Created Zip Spec      14 (20) '2.0'\n-700DBE Created OS            00 (0) 'MS-DOS'\n-700DBF Extract Zip Spec      14 (20) '2.0'\n-700DC0 Extract OS            00 (0) 'MS-DOS'\n-700DC1 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700DC3 Compression Method    0000 (0) 'Stored'\n-700DC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700DC9 CRC                   9FA19E67 (2678169191)\n-700DCD Compressed Size       00000668 (1640)\n-700DD1 Uncompressed Size     00000668 (1640)\n-700DD5 Filename Length       0030 (48)\n-700DD7 Extra Length          0009 (9)\n-700DD9 Comment Length        0000 (0)\n-700DDB Disk Start            0000 (0)\n-700DDD Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700DDF Ext File Attributes   00000000 (0)\n-700DE3 Local Header Offset   006BFD3F (7077183)\n-700DE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700DE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700E17 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700E19   Length              0005 (5)\n-700E1B   Flags               01 (1) 'Modification'\n-700E1C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700E20 CENTRAL HEADER #1995  02014B50 (33639248)\n-700E24 Created Zip Spec      14 (20) '2.0'\n-700E25 Created OS            00 (0) 'MS-DOS'\n-700E26 Extract Zip Spec      14 (20) '2.0'\n-700E27 Extract OS            00 (0) 'MS-DOS'\n-700E28 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700E2A Compression Method    0000 (0) 'Stored'\n-700E2C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700E30 CRC                   00116B33 (1141555)\n-700E34 Compressed Size       000005E3 (1507)\n-700E38 Uncompressed Size     000005E3 (1507)\n-700E3C Filename Length       002B (43)\n-700E3E Extra Length          0009 (9)\n-700E40 Comment Length        0000 (0)\n-700E42 Disk Start            0000 (0)\n-700E44 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700E46 Ext File Attributes   00000000 (0)\n-700E4A Local Header Offset   006C040E (7078926)\n-700E4E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700E4E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700E79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700E7B   Length              0005 (5)\n-700E7D   Flags               01 (1) 'Modification'\n-700E7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700E82 CENTRAL HEADER #1996  02014B50 (33639248)\n-700E86 Created Zip Spec      14 (20) '2.0'\n-700E87 Created OS            00 (0) 'MS-DOS'\n-700E88 Extract Zip Spec      14 (20) '2.0'\n-700E89 Extract OS            00 (0) 'MS-DOS'\n-700E8A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700E8C Compression Method    0000 (0) 'Stored'\n-700E8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700E92 CRC                   767F730D (1988064013)\n-700E96 Compressed Size       00000479 (1145)\n-700E9A Uncompressed Size     00000479 (1145)\n-700E9E Filename Length       002A (42)\n-700EA0 Extra Length          0009 (9)\n-700EA2 Comment Length        0000 (0)\n-700EA4 Disk Start            0000 (0)\n-700EA6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700EA8 Ext File Attributes   00000000 (0)\n-700EAC Local Header Offset   006C0A53 (7080531)\n-700EB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700EB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700EDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700EDC   Length              0005 (5)\n-700EDE   Flags               01 (1) 'Modification'\n-700EDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700EE3 CENTRAL HEADER #1997  02014B50 (33639248)\n-700EE7 Created Zip Spec      14 (20) '2.0'\n-700EE8 Created OS            00 (0) 'MS-DOS'\n-700EE9 Extract Zip Spec      14 (20) '2.0'\n-700EEA Extract OS            00 (0) 'MS-DOS'\n-700EEB General Purpose Flag  0000 (0)\n-700EED Compression Method    0000 (0) 'Stored'\n-700EEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700EF3 CRC                   00000000 (0)\n-700EF7 Compressed Size       00000000 (0)\n-700EFB Uncompressed Size     00000000 (0)\n-700EFF Filename Length       0023 (35)\n-700F01 Extra Length          0009 (9)\n-700F03 Comment Length        0000 (0)\n-700F05 Disk Start            0000 (0)\n-700F07 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700F09 Ext File Attributes   00000000 (0)\n-700F0D Local Header Offset   006C0F2D (7081773)\n-700F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700F34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700F36   Length              0005 (5)\n-700F38   Flags               01 (1) 'Modification'\n-700F39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700F3D CENTRAL HEADER #1998  02014B50 (33639248)\n-700F41 Created Zip Spec      14 (20) '2.0'\n-700F42 Created OS            00 (0) 'MS-DOS'\n-700F43 Extract Zip Spec      14 (20) '2.0'\n-700F44 Extract OS            00 (0) 'MS-DOS'\n-700F45 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-700F47 Compression Method    0000 (0) 'Stored'\n-700F49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700F4D CRC                   C93175C4 (3375461828)\n-700F51 Compressed Size       000012EA (4842)\n-700F55 Uncompressed Size     000012EA (4842)\n-700F59 Filename Length       0038 (56)\n-700F5B Extra Length          0009 (9)\n-700F5D Comment Length        0000 (0)\n-700F5F Disk Start            0000 (0)\n-700F61 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700F63 Ext File Attributes   00000000 (0)\n-700F67 Local Header Offset   006C0F77 (7081847)\n-700F6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700F6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700FA3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-700FA5   Length              0005 (5)\n-700FA7   Flags               01 (1) 'Modification'\n-700FA8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-700FAC CENTRAL HEADER #1999  02014B50 (33639248)\n-700FB0 Created Zip Spec      14 (20) '2.0'\n-700FB1 Created OS            00 (0) 'MS-DOS'\n-700FB2 Extract Zip Spec      14 (20) '2.0'\n-700FB3 Extract OS            00 (0) 'MS-DOS'\n-700FB4 General Purpose Flag  0000 (0)\n-700FB6 Compression Method    0000 (0) 'Stored'\n-700FB8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-700FBC CRC                   00000000 (0)\n-700FC0 Compressed Size       00000000 (0)\n-700FC4 Uncompressed Size     00000000 (0)\n-700FC8 Filename Length       0024 (36)\n-700FCA Extra Length          0009 (9)\n-700FCC Comment Length        0000 (0)\n-700FCE Disk Start            0000 (0)\n-700FD0 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-700FD2 Ext File Attributes   00000000 (0)\n-700FD6 Local Header Offset   006C22D0 (7086800)\n-700FDA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x700FDA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-700FFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701000   Length              0005 (5)\n-701002   Flags               01 (1) 'Modification'\n-701003   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701007 CENTRAL HEADER #2000  02014B50 (33639248)\n-70100B Created Zip Spec      14 (20) '2.0'\n-70100C Created OS            00 (0) 'MS-DOS'\n-70100D Extract Zip Spec      14 (20) '2.0'\n-70100E Extract OS            00 (0) 'MS-DOS'\n-70100F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-701011 Compression Method    0000 (0) 'Stored'\n-701013 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701017 CRC                   1D7B340C (494613516)\n-70101B Compressed Size       000007D6 (2006)\n-70101F Uncompressed Size     000007D6 (2006)\n-701023 Filename Length       003B (59)\n-701025 Extra Length          0009 (9)\n-701027 Comment Length        0000 (0)\n-701029 Disk Start            0000 (0)\n-70102B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70102D Ext File Attributes   00000000 (0)\n-701031 Local Header Offset   006C231B (7086875)\n-701035 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701035: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-701070 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701072   Length              0005 (5)\n-701074   Flags               01 (1) 'Modification'\n-701075   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701079 CENTRAL HEADER #2001  02014B50 (33639248)\n-70107D Created Zip Spec      14 (20) '2.0'\n-70107E Created OS            00 (0) 'MS-DOS'\n-70107F Extract Zip Spec      14 (20) '2.0'\n-701080 Extract OS            00 (0) 'MS-DOS'\n-701081 General Purpose Flag  0000 (0)\n-701083 Compression Method    0000 (0) 'Stored'\n-701085 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701089 CRC                   00000000 (0)\n-70108D Compressed Size       00000000 (0)\n-701091 Uncompressed Size     00000000 (0)\n-701095 Filename Length       0030 (48)\n-701097 Extra Length          0009 (9)\n-701099 Comment Length        0000 (0)\n-70109B Disk Start            0000 (0)\n-70109D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70109F Ext File Attributes   00000000 (0)\n-7010A3 Local Header Offset   006C2B63 (7088995)\n-7010A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7010A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7010D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7010D9   Length              0005 (5)\n-7010DB   Flags               01 (1) 'Modification'\n-7010DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7010E0 CENTRAL HEADER #2002  02014B50 (33639248)\n-7010E4 Created Zip Spec      14 (20) '2.0'\n-7010E5 Created OS            00 (0) 'MS-DOS'\n-7010E6 Extract Zip Spec      14 (20) '2.0'\n-7010E7 Extract OS            00 (0) 'MS-DOS'\n-7010E8 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-7010EA Compression Method    0000 (0) 'Stored'\n-7010EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7010F0 CRC                   5A6ECC92 (1517210770)\n-7010F4 Compressed Size       000005C3 (1475)\n-7010F8 Uncompressed Size     000005C3 (1475)\n-7010FC Filename Length       0040 (64)\n-7010FE Extra Length          0009 (9)\n-701100 Comment Length        0000 (0)\n-701102 Disk Start            0000 (0)\n-701104 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-701106 Ext File Attributes   00000000 (0)\n-70110A Local Header Offset   006C2BBA (7089082)\n-70110E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70110E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-70114E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701150   Length              0005 (5)\n-701152   Flags               01 (1) 'Modification'\n-701153   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701157 CENTRAL HEADER #2003  02014B50 (33639248)\n-70115B Created Zip Spec      14 (20) '2.0'\n-70115C Created OS            00 (0) 'MS-DOS'\n-70115D Extract Zip Spec      14 (20) '2.0'\n-70115E Extract OS            00 (0) 'MS-DOS'\n-70115F General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-701161 Compression Method    0000 (0) 'Stored'\n-701163 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701167 CRC                   B191ADCB (2979114443)\n-70116B Compressed Size       00003D3F (15679)\n-70116F Uncompressed Size     00003D3F (15679)\n-701173 Filename Length       003F (63)\n-701175 Extra Length          0009 (9)\n-701177 Comment Length        0000 (0)\n-701179 Disk Start            0000 (0)\n-70117B Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70117D Ext File Attributes   00000000 (0)\n-701181 Local Header Offset   006C31F4 (7090676)\n-701185 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701185: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7011C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7011C6   Length              0005 (5)\n-7011C8   Flags               01 (1) 'Modification'\n-7011C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7011CD CENTRAL HEADER #2004  02014B50 (33639248)\n-7011D1 Created Zip Spec      14 (20) '2.0'\n-7011D2 Created OS            00 (0) 'MS-DOS'\n-7011D3 Extract Zip Spec      14 (20) '2.0'\n-7011D4 Extract OS            00 (0) 'MS-DOS'\n-7011D5 General Purpose Flag  0000 (0)\n-7011D7 Compression Method    0000 (0) 'Stored'\n-7011D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7011DD CRC                   00000000 (0)\n-7011E1 Compressed Size       00000000 (0)\n-7011E5 Uncompressed Size     00000000 (0)\n-7011E9 Filename Length       0015 (21)\n-7011EB Extra Length          0009 (9)\n-7011ED Comment Length        0000 (0)\n-7011EF Disk Start            0000 (0)\n-7011F1 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7011F3 Ext File Attributes   00000000 (0)\n-7011F7 Local Header Offset   006C6FA9 (7106473)\n-7011FB Filename              'XXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7011FB: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-701210 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701212   Length              0005 (5)\n-701214   Flags               01 (1) 'Modification'\n-701215   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701219 CENTRAL HEADER #2005  02014B50 (33639248)\n-70121D Created Zip Spec      14 (20) '2.0'\n-70121E Created OS            00 (0) 'MS-DOS'\n-70121F Extract Zip Spec      14 (20) '2.0'\n-701220 Extract OS            00 (0) 'MS-DOS'\n-701221 General Purpose Flag  0000 (0)\n-701223 Compression Method    0000 (0) 'Stored'\n-701225 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701229 CRC                   00000000 (0)\n-70122D Compressed Size       00000000 (0)\n-701231 Uncompressed Size     00000000 (0)\n-701235 Filename Length       0019 (25)\n-701237 Extra Length          0009 (9)\n-701239 Comment Length        0000 (0)\n-70123B Disk Start            0000 (0)\n-70123D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70123F Ext File Attributes   00000000 (0)\n-701243 Local Header Offset   006C6FE5 (7106533)\n-701247 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701247: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-701260 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701262   Length              0005 (5)\n-701264   Flags               01 (1) 'Modification'\n-701265   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701269 CENTRAL HEADER #2006  02014B50 (33639248)\n-70126D Created Zip Spec      14 (20) '2.0'\n-70126E Created OS            00 (0) 'MS-DOS'\n-70126F Extract Zip Spec      14 (20) '2.0'\n-701270 Extract OS            00 (0) 'MS-DOS'\n-701271 General Purpose Flag  0000 (0)\n-701273 Compression Method    0000 (0) 'Stored'\n-701275 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701279 CRC                   00000000 (0)\n-70127D Compressed Size       00000000 (0)\n-701281 Uncompressed Size     00000000 (0)\n-701285 Filename Length       0022 (34)\n-701287 Extra Length          0009 (9)\n-701289 Comment Length        0000 (0)\n-70128B Disk Start            0000 (0)\n-70128D Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-70128F Ext File Attributes   00000000 (0)\n-701293 Local Header Offset   006C7025 (7106597)\n-701297 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701297: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-7012B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-7012BB   Length              0005 (5)\n-7012BD   Flags               01 (1) 'Modification'\n-7012BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7012C2 CENTRAL HEADER #2007  02014B50 (33639248)\n-7012C6 Created Zip Spec      14 (20) '2.0'\n-7012C7 Created OS            00 (0) 'MS-DOS'\n-7012C8 Extract Zip Spec      14 (20) '2.0'\n-7012C9 Extract OS            00 (0) 'MS-DOS'\n-7012CA General Purpose Flag  0000 (0)\n-7012CC Compression Method    0000 (0) 'Stored'\n-7012CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7012D2 CRC                   00000000 (0)\n-7012D6 Compressed Size       00000000 (0)\n-7012DA Uncompressed Size     00000000 (0)\n-7012DE Filename Length       0029 (41)\n-7012E0 Extra Length          0009 (9)\n-7012E2 Comment Length        0000 (0)\n-7012E4 Disk Start            0000 (0)\n-7012E6 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7012E8 Ext File Attributes   00000000 (0)\n-7012EC Local Header Offset   006C706E (7106670)\n-7012F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7012F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-701319 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70131B   Length              0005 (5)\n-70131D   Flags               01 (1) 'Modification'\n-70131E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701322 CENTRAL HEADER #2008  02014B50 (33639248)\n-701326 Created Zip Spec      14 (20) '2.0'\n-701327 Created OS            00 (0) 'MS-DOS'\n-701328 Extract Zip Spec      14 (20) '2.0'\n-701329 Extract OS            00 (0) 'MS-DOS'\n-70132A General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70132C Compression Method    0000 (0) 'Stored'\n-70132E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701332 CRC                   D1A0D101 (3516977409)\n-701336 Compressed Size       00001DEF (7663)\n-70133A Uncompressed Size     00001DEF (7663)\n-70133E Filename Length       003C (60)\n-701340 Extra Length          0009 (9)\n-701342 Comment Length        0000 (0)\n-701344 Disk Start            0000 (0)\n-701346 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-701348 Ext File Attributes   00000000 (0)\n-70134C Local Header Offset   006C70BE (7106750)\n-701350 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x701350: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-70138C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70138E   Length              0005 (5)\n-701390   Flags               01 (1) 'Modification'\n-701391   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701395 CENTRAL HEADER #2009  02014B50 (33639248)\n-701399 Created Zip Spec      14 (20) '2.0'\n-70139A Created OS            00 (0) 'MS-DOS'\n-70139B Extract Zip Spec      14 (20) '2.0'\n-70139C Extract OS            00 (0) 'MS-DOS'\n-70139D General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70139F Compression Method    0000 (0) 'Stored'\n-7013A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-7013A5 CRC                   DF3DF190 (3745378704)\n-7013A9 Compressed Size       000011B2 (4530)\n-7013AD Uncompressed Size     000011B2 (4530)\n-7013B1 Filename Length       0044 (68)\n-7013B3 Extra Length          0009 (9)\n-7013B5 Comment Length        0000 (0)\n-7013B7 Disk Start            0000 (0)\n-7013B9 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-7013BB Ext File Attributes   00000000 (0)\n-7013BF Local Header Offset   006C8F20 (7114528)\n-7013C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x7013C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-701407 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701409   Length              0005 (5)\n-70140B   Flags               01 (1) 'Modification'\n-70140C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701410 CENTRAL HEADER #2010  02014B50 (33639248)\n-701414 Created Zip Spec      14 (20) '2.0'\n-701415 Created OS            00 (0) 'MS-DOS'\n-701416 Extract Zip Spec      14 (20) '2.0'\n-701417 Extract OS            00 (0) 'MS-DOS'\n-701418 General Purpose Flag  0000 (0)\n-70141A Compression Method    0000 (0) 'Stored'\n-70141C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701420 CRC                   00000000 (0)\n-701424 Compressed Size       00000000 (0)\n-701428 Uncompressed Size     00000000 (0)\n-70142C Filename Length       0009 (9)\n-70142E Extra Length          0009 (9)\n-701430 Comment Length        0000 (0)\n-701432 Disk Start            0000 (0)\n-701434 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-701436 Ext File Attributes   00000000 (0)\n-70143A Local Header Offset   006CA14D (7119181)\n-70143E Filename              'XXXXXXXXX'\n-#\n-# WARNING: Offset 0x70143E: Filename 'XXXXXXXXX'\n-#          Zero length filename\n-#\n-701447 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-701449   Length              0005 (5)\n-70144B   Flags               01 (1) 'Modification'\n-70144C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-701450 CENTRAL HEADER #2011  02014B50 (33639248)\n-701454 Created Zip Spec      14 (20) '2.0'\n-701455 Created OS            00 (0) 'MS-DOS'\n-701456 Extract Zip Spec      14 (20) '2.0'\n-701457 Extract OS            00 (0) 'MS-DOS'\n-701458 General Purpose Flag  0008 (8)\n-       [Bit  3]              1 'Streamed'\n-70145A Compression Method    0000 (0) 'Stored'\n-70145C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n-701460 CRC                   94CE4031 (2496544817)\n-701464 Compressed Size       000011A8 (4520)\n-701468 Uncompressed Size     000011A8 (4520)\n-70146C Filename Length       001E (30)\n-70146E Extra Length          0009 (9)\n-701470 Comment Length        0000 (0)\n-701472 Disk Start            0000 (0)\n-701474 Int File Attributes   0000 (0)\n-       [Bit 0]               0 'Binary Data'\n-701476 Ext File Attributes   00000000 (0)\n-70147A Local Header Offset   006CA17D (7119229)\n-70147E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#\n-# WARNING: Offset 0x70147E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n-#          Zero length filename\n-#\n-70149C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n-70149E   Length              0005 (5)\n-7014A0   Flags               01 (1) 'Modification'\n-7014A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n-\n-7014A5 END CENTRAL HEADER    06054B50 (101010256)\n-7014A9 Number of this disk   0000 (0)\n-7014AB Central Dir Disk no   0000 (0)\n-7014AD Entries in this disk  07DB (2011)\n-7014AF Total Entries         07DB (2011)\n-7014B1 Size of Central Dir   0003612B (221483)\n-7014B5 Offset to Central Dir 006CB37A (7123834)\n-7014B9 Comment Length        0000 (0)\n+6FFB6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFB70   Length              0005 (5)\n+6FFB72   Flags               01 (1) 'Modification'\n+6FFB73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFB77 CENTRAL HEADER #1024  02014B50 (33639248)\n+6FFB7B Created Zip Spec      14 (20) '2.0'\n+6FFB7C Created OS            00 (0) 'MS-DOS'\n+6FFB7D Extract Zip Spec      14 (20) '2.0'\n+6FFB7E Extract OS            00 (0) 'MS-DOS'\n+6FFB7F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFB81 Compression Method    0000 (0) 'Stored'\n+6FFB83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFB87 CRC                   E7D9317D (3889770877)\n+6FFB8B Compressed Size       000011D4 (4564)\n+6FFB8F Uncompressed Size     000011D4 (4564)\n+6FFB93 Filename Length       0052 (82)\n+6FFB95 Extra Length          0009 (9)\n+6FFB97 Comment Length        0000 (0)\n+6FFB99 Disk Start            0000 (0)\n+6FFB9B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFB9D Ext File Attributes   00000000 (0)\n+6FFBA1 Local Header Offset   0038C306 (3719942)\n+6FFBA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFBA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFBF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFBF9   Length              0005 (5)\n+6FFBFB   Flags               01 (1) 'Modification'\n+6FFBFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFC00 CENTRAL HEADER #1025  02014B50 (33639248)\n+6FFC04 Created Zip Spec      14 (20) '2.0'\n+6FFC05 Created OS            00 (0) 'MS-DOS'\n+6FFC06 Extract Zip Spec      14 (20) '2.0'\n+6FFC07 Extract OS            00 (0) 'MS-DOS'\n+6FFC08 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFC0A Compression Method    0000 (0) 'Stored'\n+6FFC0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFC10 CRC                   7ED1451A (2127643930)\n+6FFC14 Compressed Size       00001312 (4882)\n+6FFC18 Uncompressed Size     00001312 (4882)\n+6FFC1C Filename Length       004F (79)\n+6FFC1E Extra Length          0009 (9)\n+6FFC20 Comment Length        0000 (0)\n+6FFC22 Disk Start            0000 (0)\n+6FFC24 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFC26 Ext File Attributes   00000000 (0)\n+6FFC2A Local Header Offset   0038D563 (3724643)\n+6FFC2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFC2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFC7D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFC7F   Length              0005 (5)\n+6FFC81   Flags               01 (1) 'Modification'\n+6FFC82   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFC86 CENTRAL HEADER #1026  02014B50 (33639248)\n+6FFC8A Created Zip Spec      14 (20) '2.0'\n+6FFC8B Created OS            00 (0) 'MS-DOS'\n+6FFC8C Extract Zip Spec      14 (20) '2.0'\n+6FFC8D Extract OS            00 (0) 'MS-DOS'\n+6FFC8E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFC90 Compression Method    0000 (0) 'Stored'\n+6FFC92 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFC96 CRC                   AD821A56 (2910984790)\n+6FFC9A Compressed Size       00000CAC (3244)\n+6FFC9E Uncompressed Size     00000CAC (3244)\n+6FFCA2 Filename Length       0058 (88)\n+6FFCA4 Extra Length          0009 (9)\n+6FFCA6 Comment Length        0000 (0)\n+6FFCA8 Disk Start            0000 (0)\n+6FFCAA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFCAC Ext File Attributes   00000000 (0)\n+6FFCB0 Local Header Offset   0038E8FB (3729659)\n+6FFCB4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFCB4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFD0C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFD0E   Length              0005 (5)\n+6FFD10   Flags               01 (1) 'Modification'\n+6FFD11   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFD15 CENTRAL HEADER #1027  02014B50 (33639248)\n+6FFD19 Created Zip Spec      14 (20) '2.0'\n+6FFD1A Created OS            00 (0) 'MS-DOS'\n+6FFD1B Extract Zip Spec      14 (20) '2.0'\n+6FFD1C Extract OS            00 (0) 'MS-DOS'\n+6FFD1D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFD1F Compression Method    0000 (0) 'Stored'\n+6FFD21 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFD25 CRC                   C24DDA18 (3259882008)\n+6FFD29 Compressed Size       00000833 (2099)\n+6FFD2D Uncompressed Size     00000833 (2099)\n+6FFD31 Filename Length       0057 (87)\n+6FFD33 Extra Length          0009 (9)\n+6FFD35 Comment Length        0000 (0)\n+6FFD37 Disk Start            0000 (0)\n+6FFD39 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFD3B Ext File Attributes   00000000 (0)\n+6FFD3F Local Header Offset   0038F636 (3733046)\n+6FFD43 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFD43: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFD9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFD9C   Length              0005 (5)\n+6FFD9E   Flags               01 (1) 'Modification'\n+6FFD9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFDA3 CENTRAL HEADER #1028  02014B50 (33639248)\n+6FFDA7 Created Zip Spec      14 (20) '2.0'\n+6FFDA8 Created OS            00 (0) 'MS-DOS'\n+6FFDA9 Extract Zip Spec      14 (20) '2.0'\n+6FFDAA Extract OS            00 (0) 'MS-DOS'\n+6FFDAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFDAD Compression Method    0000 (0) 'Stored'\n+6FFDAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFDB3 CRC                   FF2A19ED (4280949229)\n+6FFDB7 Compressed Size       00000B7A (2938)\n+6FFDBB Uncompressed Size     00000B7A (2938)\n+6FFDBF Filename Length       0042 (66)\n+6FFDC1 Extra Length          0009 (9)\n+6FFDC3 Comment Length        0000 (0)\n+6FFDC5 Disk Start            0000 (0)\n+6FFDC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFDC9 Ext File Attributes   00000000 (0)\n+6FFDCD Local Header Offset   0038FEF7 (3735287)\n+6FFDD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFDD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFE13 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFE15   Length              0005 (5)\n+6FFE17   Flags               01 (1) 'Modification'\n+6FFE18   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFE1C CENTRAL HEADER #1029  02014B50 (33639248)\n+6FFE20 Created Zip Spec      14 (20) '2.0'\n+6FFE21 Created OS            00 (0) 'MS-DOS'\n+6FFE22 Extract Zip Spec      14 (20) '2.0'\n+6FFE23 Extract OS            00 (0) 'MS-DOS'\n+6FFE24 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFE26 Compression Method    0000 (0) 'Stored'\n+6FFE28 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFE2C CRC                   5D54AEAF (1565830831)\n+6FFE30 Compressed Size       00000DDE (3550)\n+6FFE34 Uncompressed Size     00000DDE (3550)\n+6FFE38 Filename Length       0048 (72)\n+6FFE3A Extra Length          0009 (9)\n+6FFE3C Comment Length        0000 (0)\n+6FFE3E Disk Start            0000 (0)\n+6FFE40 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFE42 Ext File Attributes   00000000 (0)\n+6FFE46 Local Header Offset   00390AEA (3738346)\n+6FFE4A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFE4A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFE92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFE94   Length              0005 (5)\n+6FFE96   Flags               01 (1) 'Modification'\n+6FFE97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFE9B CENTRAL HEADER #1030  02014B50 (33639248)\n+6FFE9F Created Zip Spec      14 (20) '2.0'\n+6FFEA0 Created OS            00 (0) 'MS-DOS'\n+6FFEA1 Extract Zip Spec      14 (20) '2.0'\n+6FFEA2 Extract OS            00 (0) 'MS-DOS'\n+6FFEA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFEA5 Compression Method    0000 (0) 'Stored'\n+6FFEA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFEAB CRC                   0C9E7B88 (211712904)\n+6FFEAF Compressed Size       0000065F (1631)\n+6FFEB3 Uncompressed Size     0000065F (1631)\n+6FFEB7 Filename Length       004B (75)\n+6FFEB9 Extra Length          0009 (9)\n+6FFEBB Comment Length        0000 (0)\n+6FFEBD Disk Start            0000 (0)\n+6FFEBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFEC1 Ext File Attributes   00000000 (0)\n+6FFEC5 Local Header Offset   00391947 (3742023)\n+6FFEC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFEC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFF14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFF16   Length              0005 (5)\n+6FFF18   Flags               01 (1) 'Modification'\n+6FFF19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFF1D CENTRAL HEADER #1031  02014B50 (33639248)\n+6FFF21 Created Zip Spec      14 (20) '2.0'\n+6FFF22 Created OS            00 (0) 'MS-DOS'\n+6FFF23 Extract Zip Spec      14 (20) '2.0'\n+6FFF24 Extract OS            00 (0) 'MS-DOS'\n+6FFF25 General Purpose Flag  0000 (0)\n+6FFF27 Compression Method    0000 (0) 'Stored'\n+6FFF29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFF2D CRC                   00000000 (0)\n+6FFF31 Compressed Size       00000000 (0)\n+6FFF35 Uncompressed Size     00000000 (0)\n+6FFF39 Filename Length       002E (46)\n+6FFF3B Extra Length          0009 (9)\n+6FFF3D Comment Length        0000 (0)\n+6FFF3F Disk Start            0000 (0)\n+6FFF41 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFF43 Ext File Attributes   00000000 (0)\n+6FFF47 Local Header Offset   00392028 (3743784)\n+6FFF4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFF4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFF79 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFF7B   Length              0005 (5)\n+6FFF7D   Flags               01 (1) 'Modification'\n+6FFF7E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+6FFF82 CENTRAL HEADER #1032  02014B50 (33639248)\n+6FFF86 Created Zip Spec      14 (20) '2.0'\n+6FFF87 Created OS            00 (0) 'MS-DOS'\n+6FFF88 Extract Zip Spec      14 (20) '2.0'\n+6FFF89 Extract OS            00 (0) 'MS-DOS'\n+6FFF8A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+6FFF8C Compression Method    0000 (0) 'Stored'\n+6FFF8E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+6FFF92 CRC                   EB9A0122 (3952738594)\n+6FFF96 Compressed Size       000009AA (2474)\n+6FFF9A Uncompressed Size     000009AA (2474)\n+6FFF9E Filename Length       004C (76)\n+6FFFA0 Extra Length          0009 (9)\n+6FFFA2 Comment Length        0000 (0)\n+6FFFA4 Disk Start            0000 (0)\n+6FFFA6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+6FFFA8 Ext File Attributes   00000000 (0)\n+6FFFAC Local Header Offset   0039207D (3743869)\n+6FFFB0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x6FFFB0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+6FFFFC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+6FFFFE   Length              0005 (5)\n+700000   Flags               01 (1) 'Modification'\n+700001   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700005 CENTRAL HEADER #1033  02014B50 (33639248)\n+700009 Created Zip Spec      14 (20) '2.0'\n+70000A Created OS            00 (0) 'MS-DOS'\n+70000B Extract Zip Spec      14 (20) '2.0'\n+70000C Extract OS            00 (0) 'MS-DOS'\n+70000D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70000F Compression Method    0000 (0) 'Stored'\n+700011 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700015 CRC                   E5AFE84D (3853510733)\n+700019 Compressed Size       00000D29 (3369)\n+70001D Uncompressed Size     00000D29 (3369)\n+700021 Filename Length       0064 (100)\n+700023 Extra Length          0009 (9)\n+700025 Comment Length        0000 (0)\n+700027 Disk Start            0000 (0)\n+700029 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70002B Ext File Attributes   00000000 (0)\n+70002F Local Header Offset   00392AAA (3746474)\n+700033 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700033: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700097 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700099   Length              0005 (5)\n+70009B   Flags               01 (1) 'Modification'\n+70009C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7000A0 CENTRAL HEADER #1034  02014B50 (33639248)\n+7000A4 Created Zip Spec      14 (20) '2.0'\n+7000A5 Created OS            00 (0) 'MS-DOS'\n+7000A6 Extract Zip Spec      14 (20) '2.0'\n+7000A7 Extract OS            00 (0) 'MS-DOS'\n+7000A8 General Purpose Flag  0000 (0)\n+7000AA Compression Method    0000 (0) 'Stored'\n+7000AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7000B0 CRC                   00000000 (0)\n+7000B4 Compressed Size       00000000 (0)\n+7000B8 Uncompressed Size     00000000 (0)\n+7000BC Filename Length       002D (45)\n+7000BE Extra Length          0009 (9)\n+7000C0 Comment Length        0000 (0)\n+7000C2 Disk Start            0000 (0)\n+7000C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7000C6 Ext File Attributes   00000000 (0)\n+7000CA Local Header Offset   0039386E (3749998)\n+7000CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7000CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7000FB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7000FD   Length              0005 (5)\n+7000FF   Flags               01 (1) 'Modification'\n+700100   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700104 CENTRAL HEADER #1035  02014B50 (33639248)\n+700108 Created Zip Spec      14 (20) '2.0'\n+700109 Created OS            00 (0) 'MS-DOS'\n+70010A Extract Zip Spec      14 (20) '2.0'\n+70010B Extract OS            00 (0) 'MS-DOS'\n+70010C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70010E Compression Method    0000 (0) 'Stored'\n+700110 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700114 CRC                   77721950 (2003966288)\n+700118 Compressed Size       00000769 (1897)\n+70011C Uncompressed Size     00000769 (1897)\n+700120 Filename Length       004B (75)\n+700122 Extra Length          0009 (9)\n+700124 Comment Length        0000 (0)\n+700126 Disk Start            0000 (0)\n+700128 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70012A Ext File Attributes   00000000 (0)\n+70012E Local Header Offset   003938C2 (3750082)\n+700132 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700132: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70017D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70017F   Length              0005 (5)\n+700181   Flags               01 (1) 'Modification'\n+700182   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700186 CENTRAL HEADER #1036  02014B50 (33639248)\n+70018A Created Zip Spec      14 (20) '2.0'\n+70018B Created OS            00 (0) 'MS-DOS'\n+70018C Extract Zip Spec      14 (20) '2.0'\n+70018D Extract OS            00 (0) 'MS-DOS'\n+70018E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700190 Compression Method    0000 (0) 'Stored'\n+700192 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700196 CRC                   5603BE91 (1443085969)\n+70019A Compressed Size       00000768 (1896)\n+70019E Uncompressed Size     00000768 (1896)\n+7001A2 Filename Length       004B (75)\n+7001A4 Extra Length          0009 (9)\n+7001A6 Comment Length        0000 (0)\n+7001A8 Disk Start            0000 (0)\n+7001AA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7001AC Ext File Attributes   00000000 (0)\n+7001B0 Local Header Offset   003940AD (3752109)\n+7001B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7001B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7001FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700201   Length              0005 (5)\n+700203   Flags               01 (1) 'Modification'\n+700204   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700208 CENTRAL HEADER #1037  02014B50 (33639248)\n+70020C Created Zip Spec      14 (20) '2.0'\n+70020D Created OS            00 (0) 'MS-DOS'\n+70020E Extract Zip Spec      14 (20) '2.0'\n+70020F Extract OS            00 (0) 'MS-DOS'\n+700210 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700212 Compression Method    0000 (0) 'Stored'\n+700214 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700218 CRC                   BFF1DD26 (3220299046)\n+70021C Compressed Size       000006C6 (1734)\n+700220 Uncompressed Size     000006C6 (1734)\n+700224 Filename Length       004A (74)\n+700226 Extra Length          0009 (9)\n+700228 Comment Length        0000 (0)\n+70022A Disk Start            0000 (0)\n+70022C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70022E Ext File Attributes   00000000 (0)\n+700232 Local Header Offset   00394897 (3754135)\n+700236 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700236: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700280 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700282   Length              0005 (5)\n+700284   Flags               01 (1) 'Modification'\n+700285   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700289 CENTRAL HEADER #1038  02014B50 (33639248)\n+70028D Created Zip Spec      14 (20) '2.0'\n+70028E Created OS            00 (0) 'MS-DOS'\n+70028F Extract Zip Spec      14 (20) '2.0'\n+700290 Extract OS            00 (0) 'MS-DOS'\n+700291 General Purpose Flag  0000 (0)\n+700293 Compression Method    0000 (0) 'Stored'\n+700295 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700299 CRC                   00000000 (0)\n+70029D Compressed Size       00000000 (0)\n+7002A1 Uncompressed Size     00000000 (0)\n+7002A5 Filename Length       0032 (50)\n+7002A7 Extra Length          0009 (9)\n+7002A9 Comment Length        0000 (0)\n+7002AB Disk Start            0000 (0)\n+7002AD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7002AF Ext File Attributes   00000000 (0)\n+7002B3 Local Header Offset   00394FDE (3755998)\n+7002B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7002B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7002E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7002EB   Length              0005 (5)\n+7002ED   Flags               01 (1) 'Modification'\n+7002EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7002F2 CENTRAL HEADER #1039  02014B50 (33639248)\n+7002F6 Created Zip Spec      14 (20) '2.0'\n+7002F7 Created OS            00 (0) 'MS-DOS'\n+7002F8 Extract Zip Spec      14 (20) '2.0'\n+7002F9 Extract OS            00 (0) 'MS-DOS'\n+7002FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7002FC Compression Method    0000 (0) 'Stored'\n+7002FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700302 CRC                   D7398AF1 (3610872561)\n+700306 Compressed Size       00000940 (2368)\n+70030A Uncompressed Size     00000940 (2368)\n+70030E Filename Length       0050 (80)\n+700310 Extra Length          0009 (9)\n+700312 Comment Length        0000 (0)\n+700314 Disk Start            0000 (0)\n+700316 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700318 Ext File Attributes   00000000 (0)\n+70031C Local Header Offset   00395037 (3756087)\n+700320 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700320: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700370 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700372   Length              0005 (5)\n+700374   Flags               01 (1) 'Modification'\n+700375   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700379 CENTRAL HEADER #1040  02014B50 (33639248)\n+70037D Created Zip Spec      14 (20) '2.0'\n+70037E Created OS            00 (0) 'MS-DOS'\n+70037F Extract Zip Spec      14 (20) '2.0'\n+700380 Extract OS            00 (0) 'MS-DOS'\n+700381 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700383 Compression Method    0000 (0) 'Stored'\n+700385 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700389 CRC                   BB2451AF (3139719599)\n+70038D Compressed Size       000007DB (2011)\n+700391 Uncompressed Size     000007DB (2011)\n+700395 Filename Length       004F (79)\n+700397 Extra Length          0009 (9)\n+700399 Comment Length        0000 (0)\n+70039B Disk Start            0000 (0)\n+70039D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70039F Ext File Attributes   00000000 (0)\n+7003A3 Local Header Offset   003959FE (3758590)\n+7003A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7003A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7003F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7003F8   Length              0005 (5)\n+7003FA   Flags               01 (1) 'Modification'\n+7003FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7003FF CENTRAL HEADER #1041  02014B50 (33639248)\n+700403 Created Zip Spec      14 (20) '2.0'\n+700404 Created OS            00 (0) 'MS-DOS'\n+700405 Extract Zip Spec      14 (20) '2.0'\n+700406 Extract OS            00 (0) 'MS-DOS'\n+700407 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700409 Compression Method    0000 (0) 'Stored'\n+70040B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70040F CRC                   59514F7F (1498500991)\n+700413 Compressed Size       0000088D (2189)\n+700417 Uncompressed Size     0000088D (2189)\n+70041B Filename Length       0048 (72)\n+70041D Extra Length          0009 (9)\n+70041F Comment Length        0000 (0)\n+700421 Disk Start            0000 (0)\n+700423 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700425 Ext File Attributes   00000000 (0)\n+700429 Local Header Offset   0039625F (3760735)\n+70042D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70042D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700475 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700477   Length              0005 (5)\n+700479   Flags               01 (1) 'Modification'\n+70047A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70047E CENTRAL HEADER #1042  02014B50 (33639248)\n+700482 Created Zip Spec      14 (20) '2.0'\n+700483 Created OS            00 (0) 'MS-DOS'\n+700484 Extract Zip Spec      14 (20) '2.0'\n+700485 Extract OS            00 (0) 'MS-DOS'\n+700486 General Purpose Flag  0000 (0)\n+700488 Compression Method    0000 (0) 'Stored'\n+70048A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70048E CRC                   00000000 (0)\n+700492 Compressed Size       00000000 (0)\n+700496 Uncompressed Size     00000000 (0)\n+70049A Filename Length       0029 (41)\n+70049C Extra Length          0009 (9)\n+70049E Comment Length        0000 (0)\n+7004A0 Disk Start            0000 (0)\n+7004A2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7004A4 Ext File Attributes   00000000 (0)\n+7004A8 Local Header Offset   00396B6B (3763051)\n+7004AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7004AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7004D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7004D7   Length              0005 (5)\n+7004D9   Flags               01 (1) 'Modification'\n+7004DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7004DE CENTRAL HEADER #1043  02014B50 (33639248)\n+7004E2 Created Zip Spec      14 (20) '2.0'\n+7004E3 Created OS            00 (0) 'MS-DOS'\n+7004E4 Extract Zip Spec      14 (20) '2.0'\n+7004E5 Extract OS            00 (0) 'MS-DOS'\n+7004E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7004E8 Compression Method    0000 (0) 'Stored'\n+7004EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7004EE CRC                   A9F13587 (2851157383)\n+7004F2 Compressed Size       00000B7E (2942)\n+7004F6 Uncompressed Size     00000B7E (2942)\n+7004FA Filename Length       0044 (68)\n+7004FC Extra Length          0009 (9)\n+7004FE Comment Length        0000 (0)\n+700500 Disk Start            0000 (0)\n+700502 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700504 Ext File Attributes   00000000 (0)\n+700508 Local Header Offset   00396BBB (3763131)\n+70050C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70050C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700550 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700552   Length              0005 (5)\n+700554   Flags               01 (1) 'Modification'\n+700555   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700559 CENTRAL HEADER #1044  02014B50 (33639248)\n+70055D Created Zip Spec      14 (20) '2.0'\n+70055E Created OS            00 (0) 'MS-DOS'\n+70055F Extract Zip Spec      14 (20) '2.0'\n+700560 Extract OS            00 (0) 'MS-DOS'\n+700561 General Purpose Flag  0000 (0)\n+700563 Compression Method    0000 (0) 'Stored'\n+700565 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700569 CRC                   00000000 (0)\n+70056D Compressed Size       00000000 (0)\n+700571 Uncompressed Size     00000000 (0)\n+700575 Filename Length       0026 (38)\n+700577 Extra Length          0009 (9)\n+700579 Comment Length        0000 (0)\n+70057B Disk Start            0000 (0)\n+70057D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70057F Ext File Attributes   00000000 (0)\n+700583 Local Header Offset   003977B4 (3766196)\n+700587 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700587: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7005AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7005AF   Length              0005 (5)\n+7005B1   Flags               01 (1) 'Modification'\n+7005B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7005B6 CENTRAL HEADER #1045  02014B50 (33639248)\n+7005BA Created Zip Spec      14 (20) '2.0'\n+7005BB Created OS            00 (0) 'MS-DOS'\n+7005BC Extract Zip Spec      14 (20) '2.0'\n+7005BD Extract OS            00 (0) 'MS-DOS'\n+7005BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7005C0 Compression Method    0000 (0) 'Stored'\n+7005C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7005C6 CRC                   5AA87E5F (1520991839)\n+7005CA Compressed Size       00000BA1 (2977)\n+7005CE Uncompressed Size     00000BA1 (2977)\n+7005D2 Filename Length       0049 (73)\n+7005D4 Extra Length          0009 (9)\n+7005D6 Comment Length        0000 (0)\n+7005D8 Disk Start            0000 (0)\n+7005DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7005DC Ext File Attributes   00000000 (0)\n+7005E0 Local Header Offset   00397801 (3766273)\n+7005E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7005E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70062D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70062F   Length              0005 (5)\n+700631   Flags               01 (1) 'Modification'\n+700632   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700636 CENTRAL HEADER #1046  02014B50 (33639248)\n+70063A Created Zip Spec      14 (20) '2.0'\n+70063B Created OS            00 (0) 'MS-DOS'\n+70063C Extract Zip Spec      14 (20) '2.0'\n+70063D Extract OS            00 (0) 'MS-DOS'\n+70063E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700640 Compression Method    0000 (0) 'Stored'\n+700642 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700646 CRC                   9A04FF8D (2584018829)\n+70064A Compressed Size       000059B4 (22964)\n+70064E Uncompressed Size     000059B4 (22964)\n+700652 Filename Length       0044 (68)\n+700654 Extra Length          0009 (9)\n+700656 Comment Length        0000 (0)\n+700658 Disk Start            0000 (0)\n+70065A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70065C Ext File Attributes   00000000 (0)\n+700660 Local Header Offset   00398422 (3769378)\n+700664 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700664: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7006A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7006AA   Length              0005 (5)\n+7006AC   Flags               01 (1) 'Modification'\n+7006AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7006B1 CENTRAL HEADER #1047  02014B50 (33639248)\n+7006B5 Created Zip Spec      14 (20) '2.0'\n+7006B6 Created OS            00 (0) 'MS-DOS'\n+7006B7 Extract Zip Spec      14 (20) '2.0'\n+7006B8 Extract OS            00 (0) 'MS-DOS'\n+7006B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7006BB Compression Method    0000 (0) 'Stored'\n+7006BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7006C1 CRC                   7900D528 (2030097704)\n+7006C5 Compressed Size       000013F8 (5112)\n+7006C9 Uncompressed Size     000013F8 (5112)\n+7006CD Filename Length       0040 (64)\n+7006CF Extra Length          0009 (9)\n+7006D1 Comment Length        0000 (0)\n+7006D3 Disk Start            0000 (0)\n+7006D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7006D7 Ext File Attributes   00000000 (0)\n+7006DB Local Header Offset   0039DE51 (3792465)\n+7006DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7006DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70071F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700721   Length              0005 (5)\n+700723   Flags               01 (1) 'Modification'\n+700724   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700728 CENTRAL HEADER #1048  02014B50 (33639248)\n+70072C Created Zip Spec      14 (20) '2.0'\n+70072D Created OS            00 (0) 'MS-DOS'\n+70072E Extract Zip Spec      14 (20) '2.0'\n+70072F Extract OS            00 (0) 'MS-DOS'\n+700730 General Purpose Flag  0000 (0)\n+700732 Compression Method    0000 (0) 'Stored'\n+700734 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700738 CRC                   00000000 (0)\n+70073C Compressed Size       00000000 (0)\n+700740 Uncompressed Size     00000000 (0)\n+700744 Filename Length       0026 (38)\n+700746 Extra Length          0009 (9)\n+700748 Comment Length        0000 (0)\n+70074A Disk Start            0000 (0)\n+70074C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70074E Ext File Attributes   00000000 (0)\n+700752 Local Header Offset   0039F2C0 (3797696)\n+700756 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700756: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70077C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70077E   Length              0005 (5)\n+700780   Flags               01 (1) 'Modification'\n+700781   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700785 CENTRAL HEADER #1049  02014B50 (33639248)\n+700789 Created Zip Spec      14 (20) '2.0'\n+70078A Created OS            00 (0) 'MS-DOS'\n+70078B Extract Zip Spec      14 (20) '2.0'\n+70078C Extract OS            00 (0) 'MS-DOS'\n+70078D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70078F Compression Method    0000 (0) 'Stored'\n+700791 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700795 CRC                   52B569A3 (1387620771)\n+700799 Compressed Size       00000DAF (3503)\n+70079D Uncompressed Size     00000DAF (3503)\n+7007A1 Filename Length       0042 (66)\n+7007A3 Extra Length          0009 (9)\n+7007A5 Comment Length        0000 (0)\n+7007A7 Disk Start            0000 (0)\n+7007A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7007AB Ext File Attributes   00000000 (0)\n+7007AF Local Header Offset   0039F30D (3797773)\n+7007B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7007B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7007F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7007F7   Length              0005 (5)\n+7007F9   Flags               01 (1) 'Modification'\n+7007FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7007FE CENTRAL HEADER #1050  02014B50 (33639248)\n+700802 Created Zip Spec      14 (20) '2.0'\n+700803 Created OS            00 (0) 'MS-DOS'\n+700804 Extract Zip Spec      14 (20) '2.0'\n+700805 Extract OS            00 (0) 'MS-DOS'\n+700806 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700808 Compression Method    0000 (0) 'Stored'\n+70080A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70080E CRC                   37F5F927 (938866983)\n+700812 Compressed Size       00000ED0 (3792)\n+700816 Uncompressed Size     00000ED0 (3792)\n+70081A Filename Length       003E (62)\n+70081C Extra Length          0009 (9)\n+70081E Comment Length        0000 (0)\n+700820 Disk Start            0000 (0)\n+700822 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700824 Ext File Attributes   00000000 (0)\n+700828 Local Header Offset   003A0135 (3801397)\n+70082C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70082C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70086A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70086C   Length              0005 (5)\n+70086E   Flags               01 (1) 'Modification'\n+70086F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700873 CENTRAL HEADER #1051  02014B50 (33639248)\n+700877 Created Zip Spec      14 (20) '2.0'\n+700878 Created OS            00 (0) 'MS-DOS'\n+700879 Extract Zip Spec      14 (20) '2.0'\n+70087A Extract OS            00 (0) 'MS-DOS'\n+70087B General Purpose Flag  0000 (0)\n+70087D Compression Method    0000 (0) 'Stored'\n+70087F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700883 CRC                   00000000 (0)\n+700887 Compressed Size       00000000 (0)\n+70088B Uncompressed Size     00000000 (0)\n+70088F Filename Length       0024 (36)\n+700891 Extra Length          0009 (9)\n+700893 Comment Length        0000 (0)\n+700895 Disk Start            0000 (0)\n+700897 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700899 Ext File Attributes   00000000 (0)\n+70089D Local Header Offset   003A107A (3805306)\n+7008A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7008A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7008C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7008C7   Length              0005 (5)\n+7008C9   Flags               01 (1) 'Modification'\n+7008CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7008CE CENTRAL HEADER #1052  02014B50 (33639248)\n+7008D2 Created Zip Spec      14 (20) '2.0'\n+7008D3 Created OS            00 (0) 'MS-DOS'\n+7008D4 Extract Zip Spec      14 (20) '2.0'\n+7008D5 Extract OS            00 (0) 'MS-DOS'\n+7008D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7008D8 Compression Method    0000 (0) 'Stored'\n+7008DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7008DE CRC                   B0C01FD3 (2965381075)\n+7008E2 Compressed Size       00001958 (6488)\n+7008E6 Uncompressed Size     00001958 (6488)\n+7008EA Filename Length       003D (61)\n+7008EC Extra Length          0009 (9)\n+7008EE Comment Length        0000 (0)\n+7008F0 Disk Start            0000 (0)\n+7008F2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7008F4 Ext File Attributes   00000000 (0)\n+7008F8 Local Header Offset   003A10C5 (3805381)\n+7008FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7008FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700939 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70093B   Length              0005 (5)\n+70093D   Flags               01 (1) 'Modification'\n+70093E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700942 CENTRAL HEADER #1053  02014B50 (33639248)\n+700946 Created Zip Spec      14 (20) '2.0'\n+700947 Created OS            00 (0) 'MS-DOS'\n+700948 Extract Zip Spec      14 (20) '2.0'\n+700949 Extract OS            00 (0) 'MS-DOS'\n+70094A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70094C Compression Method    0000 (0) 'Stored'\n+70094E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700952 CRC                   BBC3A492 (3150161042)\n+700956 Compressed Size       00001D2A (7466)\n+70095A Uncompressed Size     00001D2A (7466)\n+70095E Filename Length       0037 (55)\n+700960 Extra Length          0009 (9)\n+700962 Comment Length        0000 (0)\n+700964 Disk Start            0000 (0)\n+700966 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700968 Ext File Attributes   00000000 (0)\n+70096C Local Header Offset   003A2A91 (3811985)\n+700970 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700970: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7009A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7009A9   Length              0005 (5)\n+7009AB   Flags               01 (1) 'Modification'\n+7009AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7009B0 CENTRAL HEADER #1054  02014B50 (33639248)\n+7009B4 Created Zip Spec      14 (20) '2.0'\n+7009B5 Created OS            00 (0) 'MS-DOS'\n+7009B6 Extract Zip Spec      14 (20) '2.0'\n+7009B7 Extract OS            00 (0) 'MS-DOS'\n+7009B8 General Purpose Flag  0000 (0)\n+7009BA Compression Method    0000 (0) 'Stored'\n+7009BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7009C0 CRC                   00000000 (0)\n+7009C4 Compressed Size       00000000 (0)\n+7009C8 Uncompressed Size     00000000 (0)\n+7009CC Filename Length       0020 (32)\n+7009CE Extra Length          0009 (9)\n+7009D0 Comment Length        0000 (0)\n+7009D2 Disk Start            0000 (0)\n+7009D4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7009D6 Ext File Attributes   00000000 (0)\n+7009DA Local Header Offset   003A4829 (3819561)\n+7009DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7009DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7009FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700A00   Length              0005 (5)\n+700A02   Flags               01 (1) 'Modification'\n+700A03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700A07 CENTRAL HEADER #1055  02014B50 (33639248)\n+700A0B Created Zip Spec      14 (20) '2.0'\n+700A0C Created OS            00 (0) 'MS-DOS'\n+700A0D Extract Zip Spec      14 (20) '2.0'\n+700A0E Extract OS            00 (0) 'MS-DOS'\n+700A0F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700A11 Compression Method    0000 (0) 'Stored'\n+700A13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700A17 CRC                   FB06EFC4 (4211535812)\n+700A1B Compressed Size       00000833 (2099)\n+700A1F Uncompressed Size     00000833 (2099)\n+700A23 Filename Length       002E (46)\n+700A25 Extra Length          0009 (9)\n+700A27 Comment Length        0000 (0)\n+700A29 Disk Start            0000 (0)\n+700A2B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700A2D Ext File Attributes   00000000 (0)\n+700A31 Local Header Offset   003A4870 (3819632)\n+700A35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700A35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700A63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700A65   Length              0005 (5)\n+700A67   Flags               01 (1) 'Modification'\n+700A68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700A6C CENTRAL HEADER #1056  02014B50 (33639248)\n+700A70 Created Zip Spec      14 (20) '2.0'\n+700A71 Created OS            00 (0) 'MS-DOS'\n+700A72 Extract Zip Spec      14 (20) '2.0'\n+700A73 Extract OS            00 (0) 'MS-DOS'\n+700A74 General Purpose Flag  0000 (0)\n+700A76 Compression Method    0000 (0) 'Stored'\n+700A78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700A7C CRC                   00000000 (0)\n+700A80 Compressed Size       00000000 (0)\n+700A84 Uncompressed Size     00000000 (0)\n+700A88 Filename Length       001E (30)\n+700A8A Extra Length          0009 (9)\n+700A8C Comment Length        0000 (0)\n+700A8E Disk Start            0000 (0)\n+700A90 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700A92 Ext File Attributes   00000000 (0)\n+700A96 Local Header Offset   003A5108 (3821832)\n+700A9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700A9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700AB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700ABA   Length              0005 (5)\n+700ABC   Flags               01 (1) 'Modification'\n+700ABD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700AC1 CENTRAL HEADER #1057  02014B50 (33639248)\n+700AC5 Created Zip Spec      14 (20) '2.0'\n+700AC6 Created OS            00 (0) 'MS-DOS'\n+700AC7 Extract Zip Spec      14 (20) '2.0'\n+700AC8 Extract OS            00 (0) 'MS-DOS'\n+700AC9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700ACB Compression Method    0000 (0) 'Stored'\n+700ACD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700AD1 CRC                   25A2615A (631398746)\n+700AD5 Compressed Size       000075E8 (30184)\n+700AD9 Uncompressed Size     000075E8 (30184)\n+700ADD Filename Length       0038 (56)\n+700ADF Extra Length          0009 (9)\n+700AE1 Comment Length        0000 (0)\n+700AE3 Disk Start            0000 (0)\n+700AE5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700AE7 Ext File Attributes   00000000 (0)\n+700AEB Local Header Offset   003A514D (3821901)\n+700AEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700AEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700B27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700B29   Length              0005 (5)\n+700B2B   Flags               01 (1) 'Modification'\n+700B2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700B30 CENTRAL HEADER #1058  02014B50 (33639248)\n+700B34 Created Zip Spec      14 (20) '2.0'\n+700B35 Created OS            00 (0) 'MS-DOS'\n+700B36 Extract Zip Spec      14 (20) '2.0'\n+700B37 Extract OS            00 (0) 'MS-DOS'\n+700B38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700B3A Compression Method    0000 (0) 'Stored'\n+700B3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700B40 CRC                   3773BB53 (930331475)\n+700B44 Compressed Size       00002379 (9081)\n+700B48 Uncompressed Size     00002379 (9081)\n+700B4C Filename Length       0037 (55)\n+700B4E Extra Length          0009 (9)\n+700B50 Comment Length        0000 (0)\n+700B52 Disk Start            0000 (0)\n+700B54 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700B56 Ext File Attributes   00000000 (0)\n+700B5A Local Header Offset   003AC7A4 (3852196)\n+700B5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700B5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700B95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700B97   Length              0005 (5)\n+700B99   Flags               01 (1) 'Modification'\n+700B9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700B9E CENTRAL HEADER #1059  02014B50 (33639248)\n+700BA2 Created Zip Spec      14 (20) '2.0'\n+700BA3 Created OS            00 (0) 'MS-DOS'\n+700BA4 Extract Zip Spec      14 (20) '2.0'\n+700BA5 Extract OS            00 (0) 'MS-DOS'\n+700BA6 General Purpose Flag  0000 (0)\n+700BA8 Compression Method    0000 (0) 'Stored'\n+700BAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700BAE CRC                   00000000 (0)\n+700BB2 Compressed Size       00000000 (0)\n+700BB6 Uncompressed Size     00000000 (0)\n+700BBA Filename Length       001E (30)\n+700BBC Extra Length          0009 (9)\n+700BBE Comment Length        0000 (0)\n+700BC0 Disk Start            0000 (0)\n+700BC2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700BC4 Ext File Attributes   00000000 (0)\n+700BC8 Local Header Offset   003AEB8B (3861387)\n+700BCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700BCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700BEA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700BEC   Length              0005 (5)\n+700BEE   Flags               01 (1) 'Modification'\n+700BEF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700BF3 CENTRAL HEADER #1060  02014B50 (33639248)\n+700BF7 Created Zip Spec      14 (20) '2.0'\n+700BF8 Created OS            00 (0) 'MS-DOS'\n+700BF9 Extract Zip Spec      14 (20) '2.0'\n+700BFA Extract OS            00 (0) 'MS-DOS'\n+700BFB General Purpose Flag  0000 (0)\n+700BFD Compression Method    0000 (0) 'Stored'\n+700BFF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700C03 CRC                   00000000 (0)\n+700C07 Compressed Size       00000000 (0)\n+700C0B Uncompressed Size     00000000 (0)\n+700C0F Filename Length       0025 (37)\n+700C11 Extra Length          0009 (9)\n+700C13 Comment Length        0000 (0)\n+700C15 Disk Start            0000 (0)\n+700C17 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700C19 Ext File Attributes   00000000 (0)\n+700C1D Local Header Offset   003AEBD0 (3861456)\n+700C21 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700C21: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700C46 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700C48   Length              0005 (5)\n+700C4A   Flags               01 (1) 'Modification'\n+700C4B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700C4F CENTRAL HEADER #1061  02014B50 (33639248)\n+700C53 Created Zip Spec      14 (20) '2.0'\n+700C54 Created OS            00 (0) 'MS-DOS'\n+700C55 Extract Zip Spec      14 (20) '2.0'\n+700C56 Extract OS            00 (0) 'MS-DOS'\n+700C57 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700C59 Compression Method    0000 (0) 'Stored'\n+700C5B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700C5F CRC                   A679ECEF (2793008367)\n+700C63 Compressed Size       00001B9C (7068)\n+700C67 Uncompressed Size     00001B9C (7068)\n+700C6B Filename Length       0044 (68)\n+700C6D Extra Length          0009 (9)\n+700C6F Comment Length        0000 (0)\n+700C71 Disk Start            0000 (0)\n+700C73 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700C75 Ext File Attributes   00000000 (0)\n+700C79 Local Header Offset   003AEC1C (3861532)\n+700C7D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700C7D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700CC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700CC3   Length              0005 (5)\n+700CC5   Flags               01 (1) 'Modification'\n+700CC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700CCA CENTRAL HEADER #1062  02014B50 (33639248)\n+700CCE Created Zip Spec      14 (20) '2.0'\n+700CCF Created OS            00 (0) 'MS-DOS'\n+700CD0 Extract Zip Spec      14 (20) '2.0'\n+700CD1 Extract OS            00 (0) 'MS-DOS'\n+700CD2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700CD4 Compression Method    0000 (0) 'Stored'\n+700CD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700CDA CRC                   8FA8BF90 (2410200976)\n+700CDE Compressed Size       00000554 (1364)\n+700CE2 Uncompressed Size     00000554 (1364)\n+700CE6 Filename Length       004B (75)\n+700CE8 Extra Length          0009 (9)\n+700CEA Comment Length        0000 (0)\n+700CEC Disk Start            0000 (0)\n+700CEE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700CF0 Ext File Attributes   00000000 (0)\n+700CF4 Local Header Offset   003B0833 (3868723)\n+700CF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700CF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700D43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700D45   Length              0005 (5)\n+700D47   Flags               01 (1) 'Modification'\n+700D48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700D4C CENTRAL HEADER #1063  02014B50 (33639248)\n+700D50 Created Zip Spec      14 (20) '2.0'\n+700D51 Created OS            00 (0) 'MS-DOS'\n+700D52 Extract Zip Spec      14 (20) '2.0'\n+700D53 Extract OS            00 (0) 'MS-DOS'\n+700D54 General Purpose Flag  0000 (0)\n+700D56 Compression Method    0000 (0) 'Stored'\n+700D58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700D5C CRC                   00000000 (0)\n+700D60 Compressed Size       00000000 (0)\n+700D64 Uncompressed Size     00000000 (0)\n+700D68 Filename Length       0026 (38)\n+700D6A Extra Length          0009 (9)\n+700D6C Comment Length        0000 (0)\n+700D6E Disk Start            0000 (0)\n+700D70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700D72 Ext File Attributes   00000000 (0)\n+700D76 Local Header Offset   003B0E09 (3870217)\n+700D7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700D7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700DA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700DA2   Length              0005 (5)\n+700DA4   Flags               01 (1) 'Modification'\n+700DA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700DA9 CENTRAL HEADER #1064  02014B50 (33639248)\n+700DAD Created Zip Spec      14 (20) '2.0'\n+700DAE Created OS            00 (0) 'MS-DOS'\n+700DAF Extract Zip Spec      14 (20) '2.0'\n+700DB0 Extract OS            00 (0) 'MS-DOS'\n+700DB1 General Purpose Flag  0000 (0)\n+700DB3 Compression Method    0000 (0) 'Stored'\n+700DB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700DB9 CRC                   00000000 (0)\n+700DBD Compressed Size       00000000 (0)\n+700DC1 Uncompressed Size     00000000 (0)\n+700DC5 Filename Length       002D (45)\n+700DC7 Extra Length          0009 (9)\n+700DC9 Comment Length        0000 (0)\n+700DCB Disk Start            0000 (0)\n+700DCD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700DCF Ext File Attributes   00000000 (0)\n+700DD3 Local Header Offset   003B0E56 (3870294)\n+700DD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700DD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700E04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700E06   Length              0005 (5)\n+700E08   Flags               01 (1) 'Modification'\n+700E09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700E0D CENTRAL HEADER #1065  02014B50 (33639248)\n+700E11 Created Zip Spec      14 (20) '2.0'\n+700E12 Created OS            00 (0) 'MS-DOS'\n+700E13 Extract Zip Spec      14 (20) '2.0'\n+700E14 Extract OS            00 (0) 'MS-DOS'\n+700E15 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700E17 Compression Method    0000 (0) 'Stored'\n+700E19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700E1D CRC                   86E4A798 (2263132056)\n+700E21 Compressed Size       00002F2C (12076)\n+700E25 Uncompressed Size     00002F2C (12076)\n+700E29 Filename Length       004C (76)\n+700E2B Extra Length          0009 (9)\n+700E2D Comment Length        0000 (0)\n+700E2F Disk Start            0000 (0)\n+700E31 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700E33 Ext File Attributes   00000000 (0)\n+700E37 Local Header Offset   003B0EAA (3870378)\n+700E3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700E3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700E87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700E89   Length              0005 (5)\n+700E8B   Flags               01 (1) 'Modification'\n+700E8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700E90 CENTRAL HEADER #1066  02014B50 (33639248)\n+700E94 Created Zip Spec      14 (20) '2.0'\n+700E95 Created OS            00 (0) 'MS-DOS'\n+700E96 Extract Zip Spec      14 (20) '2.0'\n+700E97 Extract OS            00 (0) 'MS-DOS'\n+700E98 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700E9A Compression Method    0000 (0) 'Stored'\n+700E9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700EA0 CRC                   4296B4B4 (1117172916)\n+700EA4 Compressed Size       00000539 (1337)\n+700EA8 Uncompressed Size     00000539 (1337)\n+700EAC Filename Length       0053 (83)\n+700EAE Extra Length          0009 (9)\n+700EB0 Comment Length        0000 (0)\n+700EB2 Disk Start            0000 (0)\n+700EB4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700EB6 Ext File Attributes   00000000 (0)\n+700EBA Local Header Offset   003B3E59 (3882585)\n+700EBE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700EBE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700F11 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700F13   Length              0005 (5)\n+700F15   Flags               01 (1) 'Modification'\n+700F16   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700F1A CENTRAL HEADER #1067  02014B50 (33639248)\n+700F1E Created Zip Spec      14 (20) '2.0'\n+700F1F Created OS            00 (0) 'MS-DOS'\n+700F20 Extract Zip Spec      14 (20) '2.0'\n+700F21 Extract OS            00 (0) 'MS-DOS'\n+700F22 General Purpose Flag  0000 (0)\n+700F24 Compression Method    0000 (0) 'Stored'\n+700F26 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700F2A CRC                   00000000 (0)\n+700F2E Compressed Size       00000000 (0)\n+700F32 Uncompressed Size     00000000 (0)\n+700F36 Filename Length       002B (43)\n+700F38 Extra Length          0009 (9)\n+700F3A Comment Length        0000 (0)\n+700F3C Disk Start            0000 (0)\n+700F3E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700F40 Ext File Attributes   00000000 (0)\n+700F44 Local Header Offset   003B441C (3884060)\n+700F48 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700F48: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700F73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700F75   Length              0005 (5)\n+700F77   Flags               01 (1) 'Modification'\n+700F78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700F7C CENTRAL HEADER #1068  02014B50 (33639248)\n+700F80 Created Zip Spec      14 (20) '2.0'\n+700F81 Created OS            00 (0) 'MS-DOS'\n+700F82 Extract Zip Spec      14 (20) '2.0'\n+700F83 Extract OS            00 (0) 'MS-DOS'\n+700F84 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+700F86 Compression Method    0000 (0) 'Stored'\n+700F88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+700F8C CRC                   B44A5E3E (3024772670)\n+700F90 Compressed Size       00001C54 (7252)\n+700F94 Uncompressed Size     00001C54 (7252)\n+700F98 Filename Length       0048 (72)\n+700F9A Extra Length          0009 (9)\n+700F9C Comment Length        0000 (0)\n+700F9E Disk Start            0000 (0)\n+700FA0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+700FA2 Ext File Attributes   00000000 (0)\n+700FA6 Local Header Offset   003B446E (3884142)\n+700FAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x700FAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+700FF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+700FF4   Length              0005 (5)\n+700FF6   Flags               01 (1) 'Modification'\n+700FF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+700FFB CENTRAL HEADER #1069  02014B50 (33639248)\n+700FFF Created Zip Spec      14 (20) '2.0'\n+701000 Created OS            00 (0) 'MS-DOS'\n+701001 Extract Zip Spec      14 (20) '2.0'\n+701002 Extract OS            00 (0) 'MS-DOS'\n+701003 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701005 Compression Method    0000 (0) 'Stored'\n+701007 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70100B CRC                   2C654259 (744833625)\n+70100F Compressed Size       0000057E (1406)\n+701013 Uncompressed Size     0000057E (1406)\n+701017 Filename Length       004F (79)\n+701019 Extra Length          0009 (9)\n+70101B Comment Length        0000 (0)\n+70101D Disk Start            0000 (0)\n+70101F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701021 Ext File Attributes   00000000 (0)\n+701025 Local Header Offset   003B6141 (3891521)\n+701029 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701029: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701078 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70107A   Length              0005 (5)\n+70107C   Flags               01 (1) 'Modification'\n+70107D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701081 CENTRAL HEADER #1070  02014B50 (33639248)\n+701085 Created Zip Spec      14 (20) '2.0'\n+701086 Created OS            00 (0) 'MS-DOS'\n+701087 Extract Zip Spec      14 (20) '2.0'\n+701088 Extract OS            00 (0) 'MS-DOS'\n+701089 General Purpose Flag  0000 (0)\n+70108B Compression Method    0000 (0) 'Stored'\n+70108D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701091 CRC                   00000000 (0)\n+701095 Compressed Size       00000000 (0)\n+701099 Uncompressed Size     00000000 (0)\n+70109D Filename Length       002C (44)\n+70109F Extra Length          0009 (9)\n+7010A1 Comment Length        0000 (0)\n+7010A3 Disk Start            0000 (0)\n+7010A5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7010A7 Ext File Attributes   00000000 (0)\n+7010AB Local Header Offset   003B6745 (3893061)\n+7010AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7010AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7010DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7010DD   Length              0005 (5)\n+7010DF   Flags               01 (1) 'Modification'\n+7010E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7010E4 CENTRAL HEADER #1071  02014B50 (33639248)\n+7010E8 Created Zip Spec      14 (20) '2.0'\n+7010E9 Created OS            00 (0) 'MS-DOS'\n+7010EA Extract Zip Spec      14 (20) '2.0'\n+7010EB Extract OS            00 (0) 'MS-DOS'\n+7010EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7010EE Compression Method    0000 (0) 'Stored'\n+7010F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7010F4 CRC                   F13A996B (4047149419)\n+7010F8 Compressed Size       00000A44 (2628)\n+7010FC Uncompressed Size     00000A44 (2628)\n+701100 Filename Length       004A (74)\n+701102 Extra Length          0009 (9)\n+701104 Comment Length        0000 (0)\n+701106 Disk Start            0000 (0)\n+701108 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70110A Ext File Attributes   00000000 (0)\n+70110E Local Header Offset   003B6798 (3893144)\n+701112 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701112: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70115C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70115E   Length              0005 (5)\n+701160   Flags               01 (1) 'Modification'\n+701161   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701165 CENTRAL HEADER #1072  02014B50 (33639248)\n+701169 Created Zip Spec      14 (20) '2.0'\n+70116A Created OS            00 (0) 'MS-DOS'\n+70116B Extract Zip Spec      14 (20) '2.0'\n+70116C Extract OS            00 (0) 'MS-DOS'\n+70116D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70116F Compression Method    0000 (0) 'Stored'\n+701171 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701175 CRC                   2B568850 (727091280)\n+701179 Compressed Size       00003698 (13976)\n+70117D Uncompressed Size     00003698 (13976)\n+701181 Filename Length       004A (74)\n+701183 Extra Length          0009 (9)\n+701185 Comment Length        0000 (0)\n+701187 Disk Start            0000 (0)\n+701189 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70118B Ext File Attributes   00000000 (0)\n+70118F Local Header Offset   003B725D (3895901)\n+701193 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701193: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7011DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7011DF   Length              0005 (5)\n+7011E1   Flags               01 (1) 'Modification'\n+7011E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7011E6 CENTRAL HEADER #1073  02014B50 (33639248)\n+7011EA Created Zip Spec      14 (20) '2.0'\n+7011EB Created OS            00 (0) 'MS-DOS'\n+7011EC Extract Zip Spec      14 (20) '2.0'\n+7011ED Extract OS            00 (0) 'MS-DOS'\n+7011EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7011F0 Compression Method    0000 (0) 'Stored'\n+7011F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7011F6 CRC                   78482BCF (2017995727)\n+7011FA Compressed Size       00000726 (1830)\n+7011FE Uncompressed Size     00000726 (1830)\n+701202 Filename Length       0051 (81)\n+701204 Extra Length          0009 (9)\n+701206 Comment Length        0000 (0)\n+701208 Disk Start            0000 (0)\n+70120A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70120C Ext File Attributes   00000000 (0)\n+701210 Local Header Offset   003BA976 (3910006)\n+701214 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701214: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701265 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701267   Length              0005 (5)\n+701269   Flags               01 (1) 'Modification'\n+70126A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70126E CENTRAL HEADER #1074  02014B50 (33639248)\n+701272 Created Zip Spec      14 (20) '2.0'\n+701273 Created OS            00 (0) 'MS-DOS'\n+701274 Extract Zip Spec      14 (20) '2.0'\n+701275 Extract OS            00 (0) 'MS-DOS'\n+701276 General Purpose Flag  0000 (0)\n+701278 Compression Method    0000 (0) 'Stored'\n+70127A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70127E CRC                   00000000 (0)\n+701282 Compressed Size       00000000 (0)\n+701286 Uncompressed Size     00000000 (0)\n+70128A Filename Length       0030 (48)\n+70128C Extra Length          0009 (9)\n+70128E Comment Length        0000 (0)\n+701290 Disk Start            0000 (0)\n+701292 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701294 Ext File Attributes   00000000 (0)\n+701298 Local Header Offset   003BB124 (3911972)\n+70129C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70129C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7012CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7012CE   Length              0005 (5)\n+7012D0   Flags               01 (1) 'Modification'\n+7012D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7012D5 CENTRAL HEADER #1075  02014B50 (33639248)\n+7012D9 Created Zip Spec      14 (20) '2.0'\n+7012DA Created OS            00 (0) 'MS-DOS'\n+7012DB Extract Zip Spec      14 (20) '2.0'\n+7012DC Extract OS            00 (0) 'MS-DOS'\n+7012DD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7012DF Compression Method    0000 (0) 'Stored'\n+7012E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7012E5 CRC                   BB1EE9E9 (3139365353)\n+7012E9 Compressed Size       00001480 (5248)\n+7012ED Uncompressed Size     00001480 (5248)\n+7012F1 Filename Length       0042 (66)\n+7012F3 Extra Length          0009 (9)\n+7012F5 Comment Length        0000 (0)\n+7012F7 Disk Start            0000 (0)\n+7012F9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7012FB Ext File Attributes   00000000 (0)\n+7012FF Local Header Offset   003BB17B (3912059)\n+701303 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701303: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701345 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701347   Length              0005 (5)\n+701349   Flags               01 (1) 'Modification'\n+70134A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70134E CENTRAL HEADER #1076  02014B50 (33639248)\n+701352 Created Zip Spec      14 (20) '2.0'\n+701353 Created OS            00 (0) 'MS-DOS'\n+701354 Extract Zip Spec      14 (20) '2.0'\n+701355 Extract OS            00 (0) 'MS-DOS'\n+701356 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701358 Compression Method    0000 (0) 'Stored'\n+70135A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70135E CRC                   E1D762AB (3788989099)\n+701362 Compressed Size       000010D1 (4305)\n+701366 Uncompressed Size     000010D1 (4305)\n+70136A Filename Length       0052 (82)\n+70136C Extra Length          0009 (9)\n+70136E Comment Length        0000 (0)\n+701370 Disk Start            0000 (0)\n+701372 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701374 Ext File Attributes   00000000 (0)\n+701378 Local Header Offset   003BC674 (3917428)\n+70137C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70137C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7013CE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7013D0   Length              0005 (5)\n+7013D2   Flags               01 (1) 'Modification'\n+7013D3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7013D7 CENTRAL HEADER #1077  02014B50 (33639248)\n+7013DB Created Zip Spec      14 (20) '2.0'\n+7013DC Created OS            00 (0) 'MS-DOS'\n+7013DD Extract Zip Spec      14 (20) '2.0'\n+7013DE Extract OS            00 (0) 'MS-DOS'\n+7013DF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7013E1 Compression Method    0000 (0) 'Stored'\n+7013E3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7013E7 CRC                   4843AF3D (1212395325)\n+7013EB Compressed Size       00000670 (1648)\n+7013EF Uncompressed Size     00000670 (1648)\n+7013F3 Filename Length       0059 (89)\n+7013F5 Extra Length          0009 (9)\n+7013F7 Comment Length        0000 (0)\n+7013F9 Disk Start            0000 (0)\n+7013FB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7013FD Ext File Attributes   00000000 (0)\n+701401 Local Header Offset   003BD7CE (3921870)\n+701405 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701405: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70145E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701460   Length              0005 (5)\n+701462   Flags               01 (1) 'Modification'\n+701463   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701467 CENTRAL HEADER #1078  02014B50 (33639248)\n+70146B Created Zip Spec      14 (20) '2.0'\n+70146C Created OS            00 (0) 'MS-DOS'\n+70146D Extract Zip Spec      14 (20) '2.0'\n+70146E Extract OS            00 (0) 'MS-DOS'\n+70146F General Purpose Flag  0000 (0)\n+701471 Compression Method    0000 (0) 'Stored'\n+701473 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701477 CRC                   00000000 (0)\n+70147B Compressed Size       00000000 (0)\n+70147F Uncompressed Size     00000000 (0)\n+701483 Filename Length       001B (27)\n+701485 Extra Length          0009 (9)\n+701487 Comment Length        0000 (0)\n+701489 Disk Start            0000 (0)\n+70148B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70148D Ext File Attributes   00000000 (0)\n+701491 Local Header Offset   003BDECE (3923662)\n+701495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7014B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7014B2   Length              0005 (5)\n+7014B4   Flags               01 (1) 'Modification'\n+7014B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7014B9 CENTRAL HEADER #1079  02014B50 (33639248)\n+7014BD Created Zip Spec      14 (20) '2.0'\n+7014BE Created OS            00 (0) 'MS-DOS'\n+7014BF Extract Zip Spec      14 (20) '2.0'\n+7014C0 Extract OS            00 (0) 'MS-DOS'\n+7014C1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7014C3 Compression Method    0000 (0) 'Stored'\n+7014C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7014C9 CRC                   14FCC408 (352109576)\n+7014CD Compressed Size       00000497 (1175)\n+7014D1 Uncompressed Size     00000497 (1175)\n+7014D5 Filename Length       0029 (41)\n+7014D7 Extra Length          0009 (9)\n+7014D9 Comment Length        0000 (0)\n+7014DB Disk Start            0000 (0)\n+7014DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7014DF Ext File Attributes   00000000 (0)\n+7014E3 Local Header Offset   003BDF10 (3923728)\n+7014E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7014E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701510 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701512   Length              0005 (5)\n+701514   Flags               01 (1) 'Modification'\n+701515   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701519 CENTRAL HEADER #1080  02014B50 (33639248)\n+70151D Created Zip Spec      14 (20) '2.0'\n+70151E Created OS            00 (0) 'MS-DOS'\n+70151F Extract Zip Spec      14 (20) '2.0'\n+701520 Extract OS            00 (0) 'MS-DOS'\n+701521 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701523 Compression Method    0000 (0) 'Stored'\n+701525 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701529 CRC                   6D55499F (1834305951)\n+70152D Compressed Size       00001115 (4373)\n+701531 Uncompressed Size     00001115 (4373)\n+701535 Filename Length       0024 (36)\n+701537 Extra Length          0009 (9)\n+701539 Comment Length        0000 (0)\n+70153B Disk Start            0000 (0)\n+70153D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70153F Ext File Attributes   00000000 (0)\n+701543 Local Header Offset   003BE407 (3924999)\n+701547 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701547: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70156B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70156D   Length              0005 (5)\n+70156F   Flags               01 (1) 'Modification'\n+701570   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701574 CENTRAL HEADER #1081  02014B50 (33639248)\n+701578 Created Zip Spec      14 (20) '2.0'\n+701579 Created OS            00 (0) 'MS-DOS'\n+70157A Extract Zip Spec      14 (20) '2.0'\n+70157B Extract OS            00 (0) 'MS-DOS'\n+70157C General Purpose Flag  0000 (0)\n+70157E Compression Method    0000 (0) 'Stored'\n+701580 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701584 CRC                   00000000 (0)\n+701588 Compressed Size       00000000 (0)\n+70158C Uncompressed Size     00000000 (0)\n+701590 Filename Length       0021 (33)\n+701592 Extra Length          0009 (9)\n+701594 Comment Length        0000 (0)\n+701596 Disk Start            0000 (0)\n+701598 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70159A Ext File Attributes   00000000 (0)\n+70159E Local Header Offset   003BF577 (3929463)\n+7015A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7015A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7015C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7015C5   Length              0005 (5)\n+7015C7   Flags               01 (1) 'Modification'\n+7015C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7015CC CENTRAL HEADER #1082  02014B50 (33639248)\n+7015D0 Created Zip Spec      14 (20) '2.0'\n+7015D1 Created OS            00 (0) 'MS-DOS'\n+7015D2 Extract Zip Spec      14 (20) '2.0'\n+7015D3 Extract OS            00 (0) 'MS-DOS'\n+7015D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7015D6 Compression Method    0000 (0) 'Stored'\n+7015D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7015DC CRC                   88CEDD40 (2295258432)\n+7015E0 Compressed Size       000011F6 (4598)\n+7015E4 Uncompressed Size     000011F6 (4598)\n+7015E8 Filename Length       0034 (52)\n+7015EA Extra Length          0009 (9)\n+7015EC Comment Length        0000 (0)\n+7015EE Disk Start            0000 (0)\n+7015F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7015F2 Ext File Attributes   00000000 (0)\n+7015F6 Local Header Offset   003BF5BF (3929535)\n+7015FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7015FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70162E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701630   Length              0005 (5)\n+701632   Flags               01 (1) 'Modification'\n+701633   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701637 CENTRAL HEADER #1083  02014B50 (33639248)\n+70163B Created Zip Spec      14 (20) '2.0'\n+70163C Created OS            00 (0) 'MS-DOS'\n+70163D Extract Zip Spec      14 (20) '2.0'\n+70163E Extract OS            00 (0) 'MS-DOS'\n+70163F General Purpose Flag  0000 (0)\n+701641 Compression Method    0000 (0) 'Stored'\n+701643 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701647 CRC                   00000000 (0)\n+70164B Compressed Size       00000000 (0)\n+70164F Uncompressed Size     00000000 (0)\n+701653 Filename Length       0023 (35)\n+701655 Extra Length          0009 (9)\n+701657 Comment Length        0000 (0)\n+701659 Disk Start            0000 (0)\n+70165B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70165D Ext File Attributes   00000000 (0)\n+701661 Local Header Offset   003C0820 (3934240)\n+701665 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701665: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701688 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70168A   Length              0005 (5)\n+70168C   Flags               01 (1) 'Modification'\n+70168D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701691 CENTRAL HEADER #1084  02014B50 (33639248)\n+701695 Created Zip Spec      14 (20) '2.0'\n+701696 Created OS            00 (0) 'MS-DOS'\n+701697 Extract Zip Spec      14 (20) '2.0'\n+701698 Extract OS            00 (0) 'MS-DOS'\n+701699 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70169B Compression Method    0000 (0) 'Stored'\n+70169D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7016A1 CRC                   75FBF59C (1979446684)\n+7016A5 Compressed Size       00000FCF (4047)\n+7016A9 Uncompressed Size     00000FCF (4047)\n+7016AD Filename Length       0038 (56)\n+7016AF Extra Length          0009 (9)\n+7016B1 Comment Length        0000 (0)\n+7016B3 Disk Start            0000 (0)\n+7016B5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7016B7 Ext File Attributes   00000000 (0)\n+7016BB Local Header Offset   003C086A (3934314)\n+7016BF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7016BF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7016F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7016F9   Length              0005 (5)\n+7016FB   Flags               01 (1) 'Modification'\n+7016FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701700 CENTRAL HEADER #1085  02014B50 (33639248)\n+701704 Created Zip Spec      14 (20) '2.0'\n+701705 Created OS            00 (0) 'MS-DOS'\n+701706 Extract Zip Spec      14 (20) '2.0'\n+701707 Extract OS            00 (0) 'MS-DOS'\n+701708 General Purpose Flag  0000 (0)\n+70170A Compression Method    0000 (0) 'Stored'\n+70170C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701710 CRC                   00000000 (0)\n+701714 Compressed Size       00000000 (0)\n+701718 Uncompressed Size     00000000 (0)\n+70171C Filename Length       0022 (34)\n+70171E Extra Length          0009 (9)\n+701720 Comment Length        0000 (0)\n+701722 Disk Start            0000 (0)\n+701724 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701726 Ext File Attributes   00000000 (0)\n+70172A Local Header Offset   003C18A8 (3938472)\n+70172E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70172E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701750 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701752   Length              0005 (5)\n+701754   Flags               01 (1) 'Modification'\n+701755   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701759 CENTRAL HEADER #1086  02014B50 (33639248)\n+70175D Created Zip Spec      14 (20) '2.0'\n+70175E Created OS            00 (0) 'MS-DOS'\n+70175F Extract Zip Spec      14 (20) '2.0'\n+701760 Extract OS            00 (0) 'MS-DOS'\n+701761 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701763 Compression Method    0000 (0) 'Stored'\n+701765 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701769 CRC                   2AFEDAAE (721345198)\n+70176D Compressed Size       00000992 (2450)\n+701771 Uncompressed Size     00000992 (2450)\n+701775 Filename Length       0036 (54)\n+701777 Extra Length          0009 (9)\n+701779 Comment Length        0000 (0)\n+70177B Disk Start            0000 (0)\n+70177D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70177F Ext File Attributes   00000000 (0)\n+701783 Local Header Offset   003C18F1 (3938545)\n+701787 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701787: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7017BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7017BF   Length              0005 (5)\n+7017C1   Flags               01 (1) 'Modification'\n+7017C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7017C6 CENTRAL HEADER #1087  02014B50 (33639248)\n+7017CA Created Zip Spec      14 (20) '2.0'\n+7017CB Created OS            00 (0) 'MS-DOS'\n+7017CC Extract Zip Spec      14 (20) '2.0'\n+7017CD Extract OS            00 (0) 'MS-DOS'\n+7017CE General Purpose Flag  0000 (0)\n+7017D0 Compression Method    0000 (0) 'Stored'\n+7017D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7017D6 CRC                   00000000 (0)\n+7017DA Compressed Size       00000000 (0)\n+7017DE Uncompressed Size     00000000 (0)\n+7017E2 Filename Length       0017 (23)\n+7017E4 Extra Length          0009 (9)\n+7017E6 Comment Length        0000 (0)\n+7017E8 Disk Start            0000 (0)\n+7017EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7017EC Ext File Attributes   00000000 (0)\n+7017F0 Local Header Offset   003C22F0 (3941104)\n+7017F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7017F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70180B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70180D   Length              0005 (5)\n+70180F   Flags               01 (1) 'Modification'\n+701810   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701814 CENTRAL HEADER #1088  02014B50 (33639248)\n+701818 Created Zip Spec      14 (20) '2.0'\n+701819 Created OS            00 (0) 'MS-DOS'\n+70181A Extract Zip Spec      14 (20) '2.0'\n+70181B Extract OS            00 (0) 'MS-DOS'\n+70181C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70181E Compression Method    0000 (0) 'Stored'\n+701820 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701824 CRC                   18AD9BF8 (414030840)\n+701828 Compressed Size       0000177E (6014)\n+70182C Uncompressed Size     0000177E (6014)\n+701830 Filename Length       0033 (51)\n+701832 Extra Length          0009 (9)\n+701834 Comment Length        0000 (0)\n+701836 Disk Start            0000 (0)\n+701838 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70183A Ext File Attributes   00000000 (0)\n+70183E Local Header Offset   003C232E (3941166)\n+701842 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701842: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701875 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701877   Length              0005 (5)\n+701879   Flags               01 (1) 'Modification'\n+70187A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70187E CENTRAL HEADER #1089  02014B50 (33639248)\n+701882 Created Zip Spec      14 (20) '2.0'\n+701883 Created OS            00 (0) 'MS-DOS'\n+701884 Extract Zip Spec      14 (20) '2.0'\n+701885 Extract OS            00 (0) 'MS-DOS'\n+701886 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701888 Compression Method    0000 (0) 'Stored'\n+70188A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70188E CRC                   1BB78BFC (465013756)\n+701892 Compressed Size       0000057E (1406)\n+701896 Uncompressed Size     0000057E (1406)\n+70189A Filename Length       0034 (52)\n+70189C Extra Length          0009 (9)\n+70189E Comment Length        0000 (0)\n+7018A0 Disk Start            0000 (0)\n+7018A2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7018A4 Ext File Attributes   00000000 (0)\n+7018A8 Local Header Offset   003C3B16 (3947286)\n+7018AC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7018AC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7018E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7018E2   Length              0005 (5)\n+7018E4   Flags               01 (1) 'Modification'\n+7018E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7018E9 CENTRAL HEADER #1090  02014B50 (33639248)\n+7018ED Created Zip Spec      14 (20) '2.0'\n+7018EE Created OS            00 (0) 'MS-DOS'\n+7018EF Extract Zip Spec      14 (20) '2.0'\n+7018F0 Extract OS            00 (0) 'MS-DOS'\n+7018F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7018F3 Compression Method    0000 (0) 'Stored'\n+7018F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7018F9 CRC                   163DDCF2 (373153010)\n+7018FD Compressed Size       00000482 (1154)\n+701901 Uncompressed Size     00000482 (1154)\n+701905 Filename Length       0031 (49)\n+701907 Extra Length          0009 (9)\n+701909 Comment Length        0000 (0)\n+70190B Disk Start            0000 (0)\n+70190D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70190F Ext File Attributes   00000000 (0)\n+701913 Local Header Offset   003C40FF (3948799)\n+701917 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701917: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70194A   Length              0005 (5)\n+70194C   Flags               01 (1) 'Modification'\n+70194D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701951 CENTRAL HEADER #1091  02014B50 (33639248)\n+701955 Created Zip Spec      14 (20) '2.0'\n+701956 Created OS            00 (0) 'MS-DOS'\n+701957 Extract Zip Spec      14 (20) '2.0'\n+701958 Extract OS            00 (0) 'MS-DOS'\n+701959 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70195B Compression Method    0000 (0) 'Stored'\n+70195D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701961 CRC                   6F7884D3 (1870169299)\n+701965 Compressed Size       0000064F (1615)\n+701969 Uncompressed Size     0000064F (1615)\n+70196D Filename Length       0021 (33)\n+70196F Extra Length          0009 (9)\n+701971 Comment Length        0000 (0)\n+701973 Disk Start            0000 (0)\n+701975 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701977 Ext File Attributes   00000000 (0)\n+70197B Local Header Offset   003C45E9 (3950057)\n+70197F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70197F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7019A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7019A2   Length              0005 (5)\n+7019A4   Flags               01 (1) 'Modification'\n+7019A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7019A9 CENTRAL HEADER #1092  02014B50 (33639248)\n+7019AD Created Zip Spec      14 (20) '2.0'\n+7019AE Created OS            00 (0) 'MS-DOS'\n+7019AF Extract Zip Spec      14 (20) '2.0'\n+7019B0 Extract OS            00 (0) 'MS-DOS'\n+7019B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7019B3 Compression Method    0000 (0) 'Stored'\n+7019B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7019B9 CRC                   7837B4D1 (2016916689)\n+7019BD Compressed Size       0000091E (2334)\n+7019C1 Uncompressed Size     0000091E (2334)\n+7019C5 Filename Length       002B (43)\n+7019C7 Extra Length          0009 (9)\n+7019C9 Comment Length        0000 (0)\n+7019CB Disk Start            0000 (0)\n+7019CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7019CF Ext File Attributes   00000000 (0)\n+7019D3 Local Header Offset   003C4C90 (3951760)\n+7019D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7019D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701A02 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701A04   Length              0005 (5)\n+701A06   Flags               01 (1) 'Modification'\n+701A07   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701A0B CENTRAL HEADER #1093  02014B50 (33639248)\n+701A0F Created Zip Spec      14 (20) '2.0'\n+701A10 Created OS            00 (0) 'MS-DOS'\n+701A11 Extract Zip Spec      14 (20) '2.0'\n+701A12 Extract OS            00 (0) 'MS-DOS'\n+701A13 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701A15 Compression Method    0000 (0) 'Stored'\n+701A17 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701A1B CRC                   1FC70E2E (533138990)\n+701A1F Compressed Size       000012E0 (4832)\n+701A23 Uncompressed Size     000012E0 (4832)\n+701A27 Filename Length       0029 (41)\n+701A29 Extra Length          0009 (9)\n+701A2B Comment Length        0000 (0)\n+701A2D Disk Start            0000 (0)\n+701A2F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701A31 Ext File Attributes   00000000 (0)\n+701A35 Local Header Offset   003C5610 (3954192)\n+701A39 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701A39: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701A62 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701A64   Length              0005 (5)\n+701A66   Flags               01 (1) 'Modification'\n+701A67   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701A6B CENTRAL HEADER #1094  02014B50 (33639248)\n+701A6F Created Zip Spec      14 (20) '2.0'\n+701A70 Created OS            00 (0) 'MS-DOS'\n+701A71 Extract Zip Spec      14 (20) '2.0'\n+701A72 Extract OS            00 (0) 'MS-DOS'\n+701A73 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701A75 Compression Method    0000 (0) 'Stored'\n+701A77 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701A7B CRC                   34F679E6 (888568294)\n+701A7F Compressed Size       00000485 (1157)\n+701A83 Uncompressed Size     00000485 (1157)\n+701A87 Filename Length       0028 (40)\n+701A89 Extra Length          0009 (9)\n+701A8B Comment Length        0000 (0)\n+701A8D Disk Start            0000 (0)\n+701A8F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701A91 Ext File Attributes   00000000 (0)\n+701A95 Local Header Offset   003C6950 (3959120)\n+701A99 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701A99: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701AC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701AC3   Length              0005 (5)\n+701AC5   Flags               01 (1) 'Modification'\n+701AC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701ACA CENTRAL HEADER #1095  02014B50 (33639248)\n+701ACE Created Zip Spec      14 (20) '2.0'\n+701ACF Created OS            00 (0) 'MS-DOS'\n+701AD0 Extract Zip Spec      14 (20) '2.0'\n+701AD1 Extract OS            00 (0) 'MS-DOS'\n+701AD2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701AD4 Compression Method    0000 (0) 'Stored'\n+701AD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701ADA CRC                   A2725211 (2725401105)\n+701ADE Compressed Size       0000128F (4751)\n+701AE2 Uncompressed Size     0000128F (4751)\n+701AE6 Filename Length       0030 (48)\n+701AE8 Extra Length          0009 (9)\n+701AEA Comment Length        0000 (0)\n+701AEC Disk Start            0000 (0)\n+701AEE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701AF0 Ext File Attributes   00000000 (0)\n+701AF4 Local Header Offset   003C6E34 (3960372)\n+701AF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701AF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701B28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701B2A   Length              0005 (5)\n+701B2C   Flags               01 (1) 'Modification'\n+701B2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701B31 CENTRAL HEADER #1096  02014B50 (33639248)\n+701B35 Created Zip Spec      14 (20) '2.0'\n+701B36 Created OS            00 (0) 'MS-DOS'\n+701B37 Extract Zip Spec      14 (20) '2.0'\n+701B38 Extract OS            00 (0) 'MS-DOS'\n+701B39 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701B3B Compression Method    0000 (0) 'Stored'\n+701B3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701B41 CRC                   646CD426 (1684853798)\n+701B45 Compressed Size       0000153D (5437)\n+701B49 Uncompressed Size     0000153D (5437)\n+701B4D Filename Length       0026 (38)\n+701B4F Extra Length          0009 (9)\n+701B51 Comment Length        0000 (0)\n+701B53 Disk Start            0000 (0)\n+701B55 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701B57 Ext File Attributes   00000000 (0)\n+701B5B Local Header Offset   003C812A (3965226)\n+701B5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701B5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701B85 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701B87   Length              0005 (5)\n+701B89   Flags               01 (1) 'Modification'\n+701B8A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701B8E CENTRAL HEADER #1097  02014B50 (33639248)\n+701B92 Created Zip Spec      14 (20) '2.0'\n+701B93 Created OS            00 (0) 'MS-DOS'\n+701B94 Extract Zip Spec      14 (20) '2.0'\n+701B95 Extract OS            00 (0) 'MS-DOS'\n+701B96 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701B98 Compression Method    0000 (0) 'Stored'\n+701B9A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701B9E CRC                   D4D0313F (3570413887)\n+701BA2 Compressed Size       000004DD (1245)\n+701BA6 Uncompressed Size     000004DD (1245)\n+701BAA Filename Length       0033 (51)\n+701BAC Extra Length          0009 (9)\n+701BAE Comment Length        0000 (0)\n+701BB0 Disk Start            0000 (0)\n+701BB2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701BB4 Ext File Attributes   00000000 (0)\n+701BB8 Local Header Offset   003C96C4 (3970756)\n+701BBC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701BBC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701BEF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701BF1   Length              0005 (5)\n+701BF3   Flags               01 (1) 'Modification'\n+701BF4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701BF8 CENTRAL HEADER #1098  02014B50 (33639248)\n+701BFC Created Zip Spec      14 (20) '2.0'\n+701BFD Created OS            00 (0) 'MS-DOS'\n+701BFE Extract Zip Spec      14 (20) '2.0'\n+701BFF Extract OS            00 (0) 'MS-DOS'\n+701C00 General Purpose Flag  0000 (0)\n+701C02 Compression Method    0000 (0) 'Stored'\n+701C04 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701C08 CRC                   00000000 (0)\n+701C0C Compressed Size       00000000 (0)\n+701C10 Uncompressed Size     00000000 (0)\n+701C14 Filename Length       001A (26)\n+701C16 Extra Length          0009 (9)\n+701C18 Comment Length        0000 (0)\n+701C1A Disk Start            0000 (0)\n+701C1C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701C1E Ext File Attributes   00000000 (0)\n+701C22 Local Header Offset   003C9C0B (3972107)\n+701C26 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701C26: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701C40 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701C42   Length              0005 (5)\n+701C44   Flags               01 (1) 'Modification'\n+701C45   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701C49 CENTRAL HEADER #1099  02014B50 (33639248)\n+701C4D Created Zip Spec      14 (20) '2.0'\n+701C4E Created OS            00 (0) 'MS-DOS'\n+701C4F Extract Zip Spec      14 (20) '2.0'\n+701C50 Extract OS            00 (0) 'MS-DOS'\n+701C51 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701C53 Compression Method    0000 (0) 'Stored'\n+701C55 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701C59 CRC                   42A6419F (1118192031)\n+701C5D Compressed Size       00000A8E (2702)\n+701C61 Uncompressed Size     00000A8E (2702)\n+701C65 Filename Length       003A (58)\n+701C67 Extra Length          0009 (9)\n+701C69 Comment Length        0000 (0)\n+701C6B Disk Start            0000 (0)\n+701C6D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701C6F Ext File Attributes   00000000 (0)\n+701C73 Local Header Offset   003C9C4C (3972172)\n+701C77 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701C77: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701CB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701CB3   Length              0005 (5)\n+701CB5   Flags               01 (1) 'Modification'\n+701CB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701CBA CENTRAL HEADER #1100  02014B50 (33639248)\n+701CBE Created Zip Spec      14 (20) '2.0'\n+701CBF Created OS            00 (0) 'MS-DOS'\n+701CC0 Extract Zip Spec      14 (20) '2.0'\n+701CC1 Extract OS            00 (0) 'MS-DOS'\n+701CC2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701CC4 Compression Method    0000 (0) 'Stored'\n+701CC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701CCA CRC                   3EF8A330 (1056482096)\n+701CCE Compressed Size       00001076 (4214)\n+701CD2 Uncompressed Size     00001076 (4214)\n+701CD6 Filename Length       0045 (69)\n+701CD8 Extra Length          0009 (9)\n+701CDA Comment Length        0000 (0)\n+701CDC Disk Start            0000 (0)\n+701CDE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701CE0 Ext File Attributes   00000000 (0)\n+701CE4 Local Header Offset   003CA74B (3974987)\n+701CE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701CE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701D2D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701D2F   Length              0005 (5)\n+701D31   Flags               01 (1) 'Modification'\n+701D32   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701D36 CENTRAL HEADER #1101  02014B50 (33639248)\n+701D3A Created Zip Spec      14 (20) '2.0'\n+701D3B Created OS            00 (0) 'MS-DOS'\n+701D3C Extract Zip Spec      14 (20) '2.0'\n+701D3D Extract OS            00 (0) 'MS-DOS'\n+701D3E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701D40 Compression Method    0000 (0) 'Stored'\n+701D42 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701D46 CRC                   EEF0F134 (4008767796)\n+701D4A Compressed Size       0000051B (1307)\n+701D4E Uncompressed Size     0000051B (1307)\n+701D52 Filename Length       0032 (50)\n+701D54 Extra Length          0009 (9)\n+701D56 Comment Length        0000 (0)\n+701D58 Disk Start            0000 (0)\n+701D5A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701D5C Ext File Attributes   00000000 (0)\n+701D60 Local Header Offset   003CB83D (3979325)\n+701D64 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701D64: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701D96 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701D98   Length              0005 (5)\n+701D9A   Flags               01 (1) 'Modification'\n+701D9B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701D9F CENTRAL HEADER #1102  02014B50 (33639248)\n+701DA3 Created Zip Spec      14 (20) '2.0'\n+701DA4 Created OS            00 (0) 'MS-DOS'\n+701DA5 Extract Zip Spec      14 (20) '2.0'\n+701DA6 Extract OS            00 (0) 'MS-DOS'\n+701DA7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701DA9 Compression Method    0000 (0) 'Stored'\n+701DAB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701DAF CRC                   1D5DF166 (492695910)\n+701DB3 Compressed Size       000003AD (941)\n+701DB7 Uncompressed Size     000003AD (941)\n+701DBB Filename Length       002E (46)\n+701DBD Extra Length          0009 (9)\n+701DBF Comment Length        0000 (0)\n+701DC1 Disk Start            0000 (0)\n+701DC3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701DC5 Ext File Attributes   00000000 (0)\n+701DC9 Local Header Offset   003CBDC1 (3980737)\n+701DCD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701DCD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701DFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701DFD   Length              0005 (5)\n+701DFF   Flags               01 (1) 'Modification'\n+701E00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701E04 CENTRAL HEADER #1103  02014B50 (33639248)\n+701E08 Created Zip Spec      14 (20) '2.0'\n+701E09 Created OS            00 (0) 'MS-DOS'\n+701E0A Extract Zip Spec      14 (20) '2.0'\n+701E0B Extract OS            00 (0) 'MS-DOS'\n+701E0C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701E0E Compression Method    0000 (0) 'Stored'\n+701E10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701E14 CRC                   FAB44FD1 (4206120913)\n+701E18 Compressed Size       000004FF (1279)\n+701E1C Uncompressed Size     000004FF (1279)\n+701E20 Filename Length       0035 (53)\n+701E22 Extra Length          0009 (9)\n+701E24 Comment Length        0000 (0)\n+701E26 Disk Start            0000 (0)\n+701E28 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701E2A Ext File Attributes   00000000 (0)\n+701E2E Local Header Offset   003CC1D3 (3981779)\n+701E32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701E32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701E67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701E69   Length              0005 (5)\n+701E6B   Flags               01 (1) 'Modification'\n+701E6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701E70 CENTRAL HEADER #1104  02014B50 (33639248)\n+701E74 Created Zip Spec      14 (20) '2.0'\n+701E75 Created OS            00 (0) 'MS-DOS'\n+701E76 Extract Zip Spec      14 (20) '2.0'\n+701E77 Extract OS            00 (0) 'MS-DOS'\n+701E78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701E7A Compression Method    0000 (0) 'Stored'\n+701E7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701E80 CRC                   0D3C7289 (222065289)\n+701E84 Compressed Size       0000064D (1613)\n+701E88 Uncompressed Size     0000064D (1613)\n+701E8C Filename Length       0030 (48)\n+701E8E Extra Length          0009 (9)\n+701E90 Comment Length        0000 (0)\n+701E92 Disk Start            0000 (0)\n+701E94 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701E96 Ext File Attributes   00000000 (0)\n+701E9A Local Header Offset   003CC73E (3983166)\n+701E9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701E9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701ECE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701ED0   Length              0005 (5)\n+701ED2   Flags               01 (1) 'Modification'\n+701ED3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701ED7 CENTRAL HEADER #1105  02014B50 (33639248)\n+701EDB Created Zip Spec      14 (20) '2.0'\n+701EDC Created OS            00 (0) 'MS-DOS'\n+701EDD Extract Zip Spec      14 (20) '2.0'\n+701EDE Extract OS            00 (0) 'MS-DOS'\n+701EDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701EE1 Compression Method    0000 (0) 'Stored'\n+701EE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701EE7 CRC                   9A0F8216 (2584707606)\n+701EEB Compressed Size       00003C3D (15421)\n+701EEF Uncompressed Size     00003C3D (15421)\n+701EF3 Filename Length       002B (43)\n+701EF5 Extra Length          0009 (9)\n+701EF7 Comment Length        0000 (0)\n+701EF9 Disk Start            0000 (0)\n+701EFB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701EFD Ext File Attributes   00000000 (0)\n+701F01 Local Header Offset   003CCDF2 (3984882)\n+701F05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701F05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701F30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701F32   Length              0005 (5)\n+701F34   Flags               01 (1) 'Modification'\n+701F35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701F39 CENTRAL HEADER #1106  02014B50 (33639248)\n+701F3D Created Zip Spec      14 (20) '2.0'\n+701F3E Created OS            00 (0) 'MS-DOS'\n+701F3F Extract Zip Spec      14 (20) '2.0'\n+701F40 Extract OS            00 (0) 'MS-DOS'\n+701F41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701F43 Compression Method    0000 (0) 'Stored'\n+701F45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701F49 CRC                   5D4E898D (1565428109)\n+701F4D Compressed Size       000004E2 (1250)\n+701F51 Uncompressed Size     000004E2 (1250)\n+701F55 Filename Length       0033 (51)\n+701F57 Extra Length          0009 (9)\n+701F59 Comment Length        0000 (0)\n+701F5B Disk Start            0000 (0)\n+701F5D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701F5F Ext File Attributes   00000000 (0)\n+701F63 Local Header Offset   003D0A91 (4000401)\n+701F67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701F67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701F9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+701F9C   Length              0005 (5)\n+701F9E   Flags               01 (1) 'Modification'\n+701F9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+701FA3 CENTRAL HEADER #1107  02014B50 (33639248)\n+701FA7 Created Zip Spec      14 (20) '2.0'\n+701FA8 Created OS            00 (0) 'MS-DOS'\n+701FA9 Extract Zip Spec      14 (20) '2.0'\n+701FAA Extract OS            00 (0) 'MS-DOS'\n+701FAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+701FAD Compression Method    0000 (0) 'Stored'\n+701FAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+701FB3 CRC                   2CED0C75 (753732725)\n+701FB7 Compressed Size       00002B2A (11050)\n+701FBB Uncompressed Size     00002B2A (11050)\n+701FBF Filename Length       002E (46)\n+701FC1 Extra Length          0009 (9)\n+701FC3 Comment Length        0000 (0)\n+701FC5 Disk Start            0000 (0)\n+701FC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+701FC9 Ext File Attributes   00000000 (0)\n+701FCD Local Header Offset   003D0FDD (4001757)\n+701FD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x701FD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+701FFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702001   Length              0005 (5)\n+702003   Flags               01 (1) 'Modification'\n+702004   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702008 CENTRAL HEADER #1108  02014B50 (33639248)\n+70200C Created Zip Spec      14 (20) '2.0'\n+70200D Created OS            00 (0) 'MS-DOS'\n+70200E Extract Zip Spec      14 (20) '2.0'\n+70200F Extract OS            00 (0) 'MS-DOS'\n+702010 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702012 Compression Method    0000 (0) 'Stored'\n+702014 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702018 CRC                   C38A081C (3280603164)\n+70201C Compressed Size       00000C70 (3184)\n+702020 Uncompressed Size     00000C70 (3184)\n+702024 Filename Length       0036 (54)\n+702026 Extra Length          0009 (9)\n+702028 Comment Length        0000 (0)\n+70202A Disk Start            0000 (0)\n+70202C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70202E Ext File Attributes   00000000 (0)\n+702032 Local Header Offset   003D3B6C (4012908)\n+702036 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702036: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70206C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70206E   Length              0005 (5)\n+702070   Flags               01 (1) 'Modification'\n+702071   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702075 CENTRAL HEADER #1109  02014B50 (33639248)\n+702079 Created Zip Spec      14 (20) '2.0'\n+70207A Created OS            00 (0) 'MS-DOS'\n+70207B Extract Zip Spec      14 (20) '2.0'\n+70207C Extract OS            00 (0) 'MS-DOS'\n+70207D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70207F Compression Method    0000 (0) 'Stored'\n+702081 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702085 CRC                   5D7F96AB (1568642731)\n+702089 Compressed Size       00000904 (2308)\n+70208D Uncompressed Size     00000904 (2308)\n+702091 Filename Length       0032 (50)\n+702093 Extra Length          0009 (9)\n+702095 Comment Length        0000 (0)\n+702097 Disk Start            0000 (0)\n+702099 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70209B Ext File Attributes   00000000 (0)\n+70209F Local Header Offset   003D4849 (4016201)\n+7020A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7020A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7020D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7020D7   Length              0005 (5)\n+7020D9   Flags               01 (1) 'Modification'\n+7020DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7020DE CENTRAL HEADER #1110  02014B50 (33639248)\n+7020E2 Created Zip Spec      14 (20) '2.0'\n+7020E3 Created OS            00 (0) 'MS-DOS'\n+7020E4 Extract Zip Spec      14 (20) '2.0'\n+7020E5 Extract OS            00 (0) 'MS-DOS'\n+7020E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7020E8 Compression Method    0000 (0) 'Stored'\n+7020EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7020EE CRC                   509BAB75 (1352379253)\n+7020F2 Compressed Size       0000083C (2108)\n+7020F6 Uncompressed Size     0000083C (2108)\n+7020FA Filename Length       002F (47)\n+7020FC Extra Length          0009 (9)\n+7020FE Comment Length        0000 (0)\n+702100 Disk Start            0000 (0)\n+702102 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702104 Ext File Attributes   00000000 (0)\n+702108 Local Header Offset   003D51B6 (4018614)\n+70210C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70210C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70213B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70213D   Length              0005 (5)\n+70213F   Flags               01 (1) 'Modification'\n+702140   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702144 CENTRAL HEADER #1111  02014B50 (33639248)\n+702148 Created Zip Spec      14 (20) '2.0'\n+702149 Created OS            00 (0) 'MS-DOS'\n+70214A Extract Zip Spec      14 (20) '2.0'\n+70214B Extract OS            00 (0) 'MS-DOS'\n+70214C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70214E Compression Method    0000 (0) 'Stored'\n+702150 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702154 CRC                   C02150D4 (3223408852)\n+702158 Compressed Size       00000BA1 (2977)\n+70215C Uncompressed Size     00000BA1 (2977)\n+702160 Filename Length       0031 (49)\n+702162 Extra Length          0009 (9)\n+702164 Comment Length        0000 (0)\n+702166 Disk Start            0000 (0)\n+702168 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70216A Ext File Attributes   00000000 (0)\n+70216E Local Header Offset   003D5A58 (4020824)\n+702172 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702172: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7021A3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7021A5   Length              0005 (5)\n+7021A7   Flags               01 (1) 'Modification'\n+7021A8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7021AC CENTRAL HEADER #1112  02014B50 (33639248)\n+7021B0 Created Zip Spec      14 (20) '2.0'\n+7021B1 Created OS            00 (0) 'MS-DOS'\n+7021B2 Extract Zip Spec      14 (20) '2.0'\n+7021B3 Extract OS            00 (0) 'MS-DOS'\n+7021B4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7021B6 Compression Method    0000 (0) 'Stored'\n+7021B8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7021BC CRC                   B34C7492 (3008132242)\n+7021C0 Compressed Size       00000AAE (2734)\n+7021C4 Uncompressed Size     00000AAE (2734)\n+7021C8 Filename Length       0036 (54)\n+7021CA Extra Length          0009 (9)\n+7021CC Comment Length        0000 (0)\n+7021CE Disk Start            0000 (0)\n+7021D0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7021D2 Ext File Attributes   00000000 (0)\n+7021D6 Local Header Offset   003D6661 (4023905)\n+7021DA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7021DA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702210 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702212   Length              0005 (5)\n+702214   Flags               01 (1) 'Modification'\n+702215   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702219 CENTRAL HEADER #1113  02014B50 (33639248)\n+70221D Created Zip Spec      14 (20) '2.0'\n+70221E Created OS            00 (0) 'MS-DOS'\n+70221F Extract Zip Spec      14 (20) '2.0'\n+702220 Extract OS            00 (0) 'MS-DOS'\n+702221 General Purpose Flag  0000 (0)\n+702223 Compression Method    0000 (0) 'Stored'\n+702225 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702229 CRC                   00000000 (0)\n+70222D Compressed Size       00000000 (0)\n+702231 Uncompressed Size     00000000 (0)\n+702235 Filename Length       0025 (37)\n+702237 Extra Length          0009 (9)\n+702239 Comment Length        0000 (0)\n+70223B Disk Start            0000 (0)\n+70223D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70223F Ext File Attributes   00000000 (0)\n+702243 Local Header Offset   003D717C (4026748)\n+702247 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702247: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70226C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70226E   Length              0005 (5)\n+702270   Flags               01 (1) 'Modification'\n+702271   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702275 CENTRAL HEADER #1114  02014B50 (33639248)\n+702279 Created Zip Spec      14 (20) '2.0'\n+70227A Created OS            00 (0) 'MS-DOS'\n+70227B Extract Zip Spec      14 (20) '2.0'\n+70227C Extract OS            00 (0) 'MS-DOS'\n+70227D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70227F Compression Method    0000 (0) 'Stored'\n+702281 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702285 CRC                   812905CA (2166949322)\n+702289 Compressed Size       00000A8E (2702)\n+70228D Uncompressed Size     00000A8E (2702)\n+702291 Filename Length       0041 (65)\n+702293 Extra Length          0009 (9)\n+702295 Comment Length        0000 (0)\n+702297 Disk Start            0000 (0)\n+702299 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70229B Ext File Attributes   00000000 (0)\n+70229F Local Header Offset   003D71C8 (4026824)\n+7022A3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7022A3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7022E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7022E6   Length              0005 (5)\n+7022E8   Flags               01 (1) 'Modification'\n+7022E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7022ED CENTRAL HEADER #1115  02014B50 (33639248)\n+7022F1 Created Zip Spec      14 (20) '2.0'\n+7022F2 Created OS            00 (0) 'MS-DOS'\n+7022F3 Extract Zip Spec      14 (20) '2.0'\n+7022F4 Extract OS            00 (0) 'MS-DOS'\n+7022F5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7022F7 Compression Method    0000 (0) 'Stored'\n+7022F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7022FD CRC                   D4CAE0D6 (3570065622)\n+702301 Compressed Size       00000F80 (3968)\n+702305 Uncompressed Size     00000F80 (3968)\n+702309 Filename Length       0042 (66)\n+70230B Extra Length          0009 (9)\n+70230D Comment Length        0000 (0)\n+70230F Disk Start            0000 (0)\n+702311 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702313 Ext File Attributes   00000000 (0)\n+702317 Local Header Offset   003D7CCE (4029646)\n+70231B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70231B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70235D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70235F   Length              0005 (5)\n+702361   Flags               01 (1) 'Modification'\n+702362   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702366 CENTRAL HEADER #1116  02014B50 (33639248)\n+70236A Created Zip Spec      14 (20) '2.0'\n+70236B Created OS            00 (0) 'MS-DOS'\n+70236C Extract Zip Spec      14 (20) '2.0'\n+70236D Extract OS            00 (0) 'MS-DOS'\n+70236E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702370 Compression Method    0000 (0) 'Stored'\n+702372 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702376 CRC                   9C44854A (2621736266)\n+70237A Compressed Size       00000D4A (3402)\n+70237E Uncompressed Size     00000D4A (3402)\n+702382 Filename Length       003F (63)\n+702384 Extra Length          0009 (9)\n+702386 Comment Length        0000 (0)\n+702388 Disk Start            0000 (0)\n+70238A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70238C Ext File Attributes   00000000 (0)\n+702390 Local Header Offset   003D8CC7 (4033735)\n+702394 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702394: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7023D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7023D5   Length              0005 (5)\n+7023D7   Flags               01 (1) 'Modification'\n+7023D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7023DC CENTRAL HEADER #1117  02014B50 (33639248)\n+7023E0 Created Zip Spec      14 (20) '2.0'\n+7023E1 Created OS            00 (0) 'MS-DOS'\n+7023E2 Extract Zip Spec      14 (20) '2.0'\n+7023E3 Extract OS            00 (0) 'MS-DOS'\n+7023E4 General Purpose Flag  0000 (0)\n+7023E6 Compression Method    0000 (0) 'Stored'\n+7023E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7023EC CRC                   00000000 (0)\n+7023F0 Compressed Size       00000000 (0)\n+7023F4 Uncompressed Size     00000000 (0)\n+7023F8 Filename Length       002D (45)\n+7023FA Extra Length          0009 (9)\n+7023FC Comment Length        0000 (0)\n+7023FE Disk Start            0000 (0)\n+702400 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702402 Ext File Attributes   00000000 (0)\n+702406 Local Header Offset   003D9A87 (4037255)\n+70240A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70240A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702437 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702439   Length              0005 (5)\n+70243B   Flags               01 (1) 'Modification'\n+70243C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702440 CENTRAL HEADER #1118  02014B50 (33639248)\n+702444 Created Zip Spec      14 (20) '2.0'\n+702445 Created OS            00 (0) 'MS-DOS'\n+702446 Extract Zip Spec      14 (20) '2.0'\n+702447 Extract OS            00 (0) 'MS-DOS'\n+702448 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70244A Compression Method    0000 (0) 'Stored'\n+70244C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702450 CRC                   F46C8898 (4100753560)\n+702454 Compressed Size       000006EB (1771)\n+702458 Uncompressed Size     000006EB (1771)\n+70245C Filename Length       0042 (66)\n+70245E Extra Length          0009 (9)\n+702460 Comment Length        0000 (0)\n+702462 Disk Start            0000 (0)\n+702464 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702466 Ext File Attributes   00000000 (0)\n+70246A Local Header Offset   003D9ADB (4037339)\n+70246E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70246E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7024B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7024B2   Length              0005 (5)\n+7024B4   Flags               01 (1) 'Modification'\n+7024B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7024B9 CENTRAL HEADER #1119  02014B50 (33639248)\n+7024BD Created Zip Spec      14 (20) '2.0'\n+7024BE Created OS            00 (0) 'MS-DOS'\n+7024BF Extract Zip Spec      14 (20) '2.0'\n+7024C0 Extract OS            00 (0) 'MS-DOS'\n+7024C1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7024C3 Compression Method    0000 (0) 'Stored'\n+7024C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7024C9 CRC                   82A5648F (2191877263)\n+7024CD Compressed Size       00000B13 (2835)\n+7024D1 Uncompressed Size     00000B13 (2835)\n+7024D5 Filename Length       0047 (71)\n+7024D7 Extra Length          0009 (9)\n+7024D9 Comment Length        0000 (0)\n+7024DB Disk Start            0000 (0)\n+7024DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7024DF Ext File Attributes   00000000 (0)\n+7024E3 Local Header Offset   003DA23F (4039231)\n+7024E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7024E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70252E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702530   Length              0005 (5)\n+702532   Flags               01 (1) 'Modification'\n+702533   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702537 CENTRAL HEADER #1120  02014B50 (33639248)\n+70253B Created Zip Spec      14 (20) '2.0'\n+70253C Created OS            00 (0) 'MS-DOS'\n+70253D Extract Zip Spec      14 (20) '2.0'\n+70253E Extract OS            00 (0) 'MS-DOS'\n+70253F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702541 Compression Method    0000 (0) 'Stored'\n+702543 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702547 CRC                   DA27253B (3659998523)\n+70254B Compressed Size       000009FE (2558)\n+70254F Uncompressed Size     000009FE (2558)\n+702553 Filename Length       0044 (68)\n+702555 Extra Length          0009 (9)\n+702557 Comment Length        0000 (0)\n+702559 Disk Start            0000 (0)\n+70255B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70255D Ext File Attributes   00000000 (0)\n+702561 Local Header Offset   003DADD0 (4042192)\n+702565 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702565: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7025A9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7025AB   Length              0005 (5)\n+7025AD   Flags               01 (1) 'Modification'\n+7025AE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7025B2 CENTRAL HEADER #1121  02014B50 (33639248)\n+7025B6 Created Zip Spec      14 (20) '2.0'\n+7025B7 Created OS            00 (0) 'MS-DOS'\n+7025B8 Extract Zip Spec      14 (20) '2.0'\n+7025B9 Extract OS            00 (0) 'MS-DOS'\n+7025BA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7025BC Compression Method    0000 (0) 'Stored'\n+7025BE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7025C2 CRC                   3AE3106C (987959404)\n+7025C6 Compressed Size       000007D5 (2005)\n+7025CA Uncompressed Size     000007D5 (2005)\n+7025CE Filename Length       0041 (65)\n+7025D0 Extra Length          0009 (9)\n+7025D2 Comment Length        0000 (0)\n+7025D4 Disk Start            0000 (0)\n+7025D6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7025D8 Ext File Attributes   00000000 (0)\n+7025DC Local Header Offset   003DB849 (4044873)\n+7025E0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7025E0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702621 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702623   Length              0005 (5)\n+702625   Flags               01 (1) 'Modification'\n+702626   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70262A CENTRAL HEADER #1122  02014B50 (33639248)\n+70262E Created Zip Spec      14 (20) '2.0'\n+70262F Created OS            00 (0) 'MS-DOS'\n+702630 Extract Zip Spec      14 (20) '2.0'\n+702631 Extract OS            00 (0) 'MS-DOS'\n+702632 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702634 Compression Method    0000 (0) 'Stored'\n+702636 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70263A CRC                   5241C10C (1380040972)\n+70263E Compressed Size       00000C91 (3217)\n+702642 Uncompressed Size     00000C91 (3217)\n+702646 Filename Length       0040 (64)\n+702648 Extra Length          0009 (9)\n+70264A Comment Length        0000 (0)\n+70264C Disk Start            0000 (0)\n+70264E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702650 Ext File Attributes   00000000 (0)\n+702654 Local Header Offset   003DC096 (4046998)\n+702658 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702658: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702698 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70269A   Length              0005 (5)\n+70269C   Flags               01 (1) 'Modification'\n+70269D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7026A1 CENTRAL HEADER #1123  02014B50 (33639248)\n+7026A5 Created Zip Spec      14 (20) '2.0'\n+7026A6 Created OS            00 (0) 'MS-DOS'\n+7026A7 Extract Zip Spec      14 (20) '2.0'\n+7026A8 Extract OS            00 (0) 'MS-DOS'\n+7026A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7026AB Compression Method    0000 (0) 'Stored'\n+7026AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7026B1 CRC                   30FBCCB4 (821808308)\n+7026B5 Compressed Size       000005CD (1485)\n+7026B9 Uncompressed Size     000005CD (1485)\n+7026BD Filename Length       003D (61)\n+7026BF Extra Length          0009 (9)\n+7026C1 Comment Length        0000 (0)\n+7026C3 Disk Start            0000 (0)\n+7026C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7026C7 Ext File Attributes   00000000 (0)\n+7026CB Local Header Offset   003DCD9E (4050334)\n+7026CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7026CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70270C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70270E   Length              0005 (5)\n+702710   Flags               01 (1) 'Modification'\n+702711   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702715 CENTRAL HEADER #1124  02014B50 (33639248)\n+702719 Created Zip Spec      14 (20) '2.0'\n+70271A Created OS            00 (0) 'MS-DOS'\n+70271B Extract Zip Spec      14 (20) '2.0'\n+70271C Extract OS            00 (0) 'MS-DOS'\n+70271D General Purpose Flag  0000 (0)\n+70271F Compression Method    0000 (0) 'Stored'\n+702721 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702725 CRC                   00000000 (0)\n+702729 Compressed Size       00000000 (0)\n+70272D Uncompressed Size     00000000 (0)\n+702731 Filename Length       002B (43)\n+702733 Extra Length          0009 (9)\n+702735 Comment Length        0000 (0)\n+702737 Disk Start            0000 (0)\n+702739 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70273B Ext File Attributes   00000000 (0)\n+70273F Local Header Offset   003DD3DF (4051935)\n+702743 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702743: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70276E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702770   Length              0005 (5)\n+702772   Flags               01 (1) 'Modification'\n+702773   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702777 CENTRAL HEADER #1125  02014B50 (33639248)\n+70277B Created Zip Spec      14 (20) '2.0'\n+70277C Created OS            00 (0) 'MS-DOS'\n+70277D Extract Zip Spec      14 (20) '2.0'\n+70277E Extract OS            00 (0) 'MS-DOS'\n+70277F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702781 Compression Method    0000 (0) 'Stored'\n+702783 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702787 CRC                   397FE7C7 (964683719)\n+70278B Compressed Size       00000592 (1426)\n+70278F Uncompressed Size     00000592 (1426)\n+702793 Filename Length       0045 (69)\n+702795 Extra Length          0009 (9)\n+702797 Comment Length        0000 (0)\n+702799 Disk Start            0000 (0)\n+70279B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70279D Ext File Attributes   00000000 (0)\n+7027A1 Local Header Offset   003DD431 (4052017)\n+7027A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7027A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7027EA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7027EC   Length              0005 (5)\n+7027EE   Flags               01 (1) 'Modification'\n+7027EF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7027F3 CENTRAL HEADER #1126  02014B50 (33639248)\n+7027F7 Created Zip Spec      14 (20) '2.0'\n+7027F8 Created OS            00 (0) 'MS-DOS'\n+7027F9 Extract Zip Spec      14 (20) '2.0'\n+7027FA Extract OS            00 (0) 'MS-DOS'\n+7027FB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7027FD Compression Method    0000 (0) 'Stored'\n+7027FF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702803 CRC                   6571F019 (1701965849)\n+702807 Compressed Size       00000CAD (3245)\n+70280B Uncompressed Size     00000CAD (3245)\n+70280F Filename Length       0040 (64)\n+702811 Extra Length          0009 (9)\n+702813 Comment Length        0000 (0)\n+702815 Disk Start            0000 (0)\n+702817 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702819 Ext File Attributes   00000000 (0)\n+70281D Local Header Offset   003DDA3F (4053567)\n+702821 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702821: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702861 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702863   Length              0005 (5)\n+702865   Flags               01 (1) 'Modification'\n+702866   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70286A CENTRAL HEADER #1127  02014B50 (33639248)\n+70286E Created Zip Spec      14 (20) '2.0'\n+70286F Created OS            00 (0) 'MS-DOS'\n+702870 Extract Zip Spec      14 (20) '2.0'\n+702871 Extract OS            00 (0) 'MS-DOS'\n+702872 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702874 Compression Method    0000 (0) 'Stored'\n+702876 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70287A CRC                   7A468FD9 (2051444697)\n+70287E Compressed Size       00000C2C (3116)\n+702882 Uncompressed Size     00000C2C (3116)\n+702886 Filename Length       0041 (65)\n+702888 Extra Length          0009 (9)\n+70288A Comment Length        0000 (0)\n+70288C Disk Start            0000 (0)\n+70288E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702890 Ext File Attributes   00000000 (0)\n+702894 Local Header Offset   003DE763 (4056931)\n+702898 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702898: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7028D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7028DB   Length              0005 (5)\n+7028DD   Flags               01 (1) 'Modification'\n+7028DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7028E2 CENTRAL HEADER #1128  02014B50 (33639248)\n+7028E6 Created Zip Spec      14 (20) '2.0'\n+7028E7 Created OS            00 (0) 'MS-DOS'\n+7028E8 Extract Zip Spec      14 (20) '2.0'\n+7028E9 Extract OS            00 (0) 'MS-DOS'\n+7028EA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7028EC Compression Method    0000 (0) 'Stored'\n+7028EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7028F2 CRC                   FDA6691C (4255541532)\n+7028F6 Compressed Size       00001578 (5496)\n+7028FA Uncompressed Size     00001578 (5496)\n+7028FE Filename Length       003E (62)\n+702900 Extra Length          0009 (9)\n+702902 Comment Length        0000 (0)\n+702904 Disk Start            0000 (0)\n+702906 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702908 Ext File Attributes   00000000 (0)\n+70290C Local Header Offset   003DF407 (4060167)\n+702910 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702910: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70294E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702950   Length              0005 (5)\n+702952   Flags               01 (1) 'Modification'\n+702953   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702957 CENTRAL HEADER #1129  02014B50 (33639248)\n+70295B Created Zip Spec      14 (20) '2.0'\n+70295C Created OS            00 (0) 'MS-DOS'\n+70295D Extract Zip Spec      14 (20) '2.0'\n+70295E Extract OS            00 (0) 'MS-DOS'\n+70295F General Purpose Flag  0000 (0)\n+702961 Compression Method    0000 (0) 'Stored'\n+702963 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702967 CRC                   00000000 (0)\n+70296B Compressed Size       00000000 (0)\n+70296F Uncompressed Size     00000000 (0)\n+702973 Filename Length       002A (42)\n+702975 Extra Length          0009 (9)\n+702977 Comment Length        0000 (0)\n+702979 Disk Start            0000 (0)\n+70297B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70297D Ext File Attributes   00000000 (0)\n+702981 Local Header Offset   003E09F4 (4065780)\n+702985 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702985: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7029AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7029B1   Length              0005 (5)\n+7029B3   Flags               01 (1) 'Modification'\n+7029B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7029B8 CENTRAL HEADER #1130  02014B50 (33639248)\n+7029BC Created Zip Spec      14 (20) '2.0'\n+7029BD Created OS            00 (0) 'MS-DOS'\n+7029BE Extract Zip Spec      14 (20) '2.0'\n+7029BF Extract OS            00 (0) 'MS-DOS'\n+7029C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7029C2 Compression Method    0000 (0) 'Stored'\n+7029C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7029C8 CRC                   AD8A2A72 (2911513202)\n+7029CC Compressed Size       00000E16 (3606)\n+7029D0 Uncompressed Size     00000E16 (3606)\n+7029D4 Filename Length       0039 (57)\n+7029D6 Extra Length          0009 (9)\n+7029D8 Comment Length        0000 (0)\n+7029DA Disk Start            0000 (0)\n+7029DC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7029DE Ext File Attributes   00000000 (0)\n+7029E2 Local Header Offset   003E0A45 (4065861)\n+7029E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7029E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702A1F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702A21   Length              0005 (5)\n+702A23   Flags               01 (1) 'Modification'\n+702A24   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702A28 CENTRAL HEADER #1131  02014B50 (33639248)\n+702A2C Created Zip Spec      14 (20) '2.0'\n+702A2D Created OS            00 (0) 'MS-DOS'\n+702A2E Extract Zip Spec      14 (20) '2.0'\n+702A2F Extract OS            00 (0) 'MS-DOS'\n+702A30 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702A32 Compression Method    0000 (0) 'Stored'\n+702A34 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702A38 CRC                   EEF3CE31 (4008955441)\n+702A3C Compressed Size       00000D4D (3405)\n+702A40 Uncompressed Size     00000D4D (3405)\n+702A44 Filename Length       0046 (70)\n+702A46 Extra Length          0009 (9)\n+702A48 Comment Length        0000 (0)\n+702A4A Disk Start            0000 (0)\n+702A4C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702A4E Ext File Attributes   00000000 (0)\n+702A52 Local Header Offset   003E18CB (4069579)\n+702A56 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702A56: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702A9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702A9E   Length              0005 (5)\n+702AA0   Flags               01 (1) 'Modification'\n+702AA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702AA5 CENTRAL HEADER #1132  02014B50 (33639248)\n+702AA9 Created Zip Spec      14 (20) '2.0'\n+702AAA Created OS            00 (0) 'MS-DOS'\n+702AAB Extract Zip Spec      14 (20) '2.0'\n+702AAC Extract OS            00 (0) 'MS-DOS'\n+702AAD General Purpose Flag  0000 (0)\n+702AAF Compression Method    0000 (0) 'Stored'\n+702AB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702AB5 CRC                   00000000 (0)\n+702AB9 Compressed Size       00000000 (0)\n+702ABD Uncompressed Size     00000000 (0)\n+702AC1 Filename Length       0021 (33)\n+702AC3 Extra Length          0009 (9)\n+702AC5 Comment Length        0000 (0)\n+702AC7 Disk Start            0000 (0)\n+702AC9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702ACB Ext File Attributes   00000000 (0)\n+702ACF Local Header Offset   003E2695 (4073109)\n+702AD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702AD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702AF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702AF6   Length              0005 (5)\n+702AF8   Flags               01 (1) 'Modification'\n+702AF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702AFD CENTRAL HEADER #1133  02014B50 (33639248)\n+702B01 Created Zip Spec      14 (20) '2.0'\n+702B02 Created OS            00 (0) 'MS-DOS'\n+702B03 Extract Zip Spec      14 (20) '2.0'\n+702B04 Extract OS            00 (0) 'MS-DOS'\n+702B05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702B07 Compression Method    0000 (0) 'Stored'\n+702B09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702B0D CRC                   B359713A (3008983354)\n+702B11 Compressed Size       00000BB3 (2995)\n+702B15 Uncompressed Size     00000BB3 (2995)\n+702B19 Filename Length       0034 (52)\n+702B1B Extra Length          0009 (9)\n+702B1D Comment Length        0000 (0)\n+702B1F Disk Start            0000 (0)\n+702B21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702B23 Ext File Attributes   00000000 (0)\n+702B27 Local Header Offset   003E26DD (4073181)\n+702B2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702B2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702B5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702B61   Length              0005 (5)\n+702B63   Flags               01 (1) 'Modification'\n+702B64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702B68 CENTRAL HEADER #1134  02014B50 (33639248)\n+702B6C Created Zip Spec      14 (20) '2.0'\n+702B6D Created OS            00 (0) 'MS-DOS'\n+702B6E Extract Zip Spec      14 (20) '2.0'\n+702B6F Extract OS            00 (0) 'MS-DOS'\n+702B70 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702B72 Compression Method    0000 (0) 'Stored'\n+702B74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702B78 CRC                   D1906BB3 (3515902899)\n+702B7C Compressed Size       0000047E (1150)\n+702B80 Uncompressed Size     0000047E (1150)\n+702B84 Filename Length       003B (59)\n+702B86 Extra Length          0009 (9)\n+702B88 Comment Length        0000 (0)\n+702B8A Disk Start            0000 (0)\n+702B8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702B8E Ext File Attributes   00000000 (0)\n+702B92 Local Header Offset   003E32FB (4076283)\n+702B96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702B96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702BD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702BD3   Length              0005 (5)\n+702BD5   Flags               01 (1) 'Modification'\n+702BD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702BDA CENTRAL HEADER #1135  02014B50 (33639248)\n+702BDE Created Zip Spec      14 (20) '2.0'\n+702BDF Created OS            00 (0) 'MS-DOS'\n+702BE0 Extract Zip Spec      14 (20) '2.0'\n+702BE1 Extract OS            00 (0) 'MS-DOS'\n+702BE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702BE4 Compression Method    0000 (0) 'Stored'\n+702BE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702BEA CRC                   0375CF6B (58052459)\n+702BEE Compressed Size       00000E60 (3680)\n+702BF2 Uncompressed Size     00000E60 (3680)\n+702BF6 Filename Length       003C (60)\n+702BF8 Extra Length          0009 (9)\n+702BFA Comment Length        0000 (0)\n+702BFC Disk Start            0000 (0)\n+702BFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702C00 Ext File Attributes   00000000 (0)\n+702C04 Local Header Offset   003E37EB (4077547)\n+702C08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702C08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702C44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702C46   Length              0005 (5)\n+702C48   Flags               01 (1) 'Modification'\n+702C49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702C4D CENTRAL HEADER #1136  02014B50 (33639248)\n+702C51 Created Zip Spec      14 (20) '2.0'\n+702C52 Created OS            00 (0) 'MS-DOS'\n+702C53 Extract Zip Spec      14 (20) '2.0'\n+702C54 Extract OS            00 (0) 'MS-DOS'\n+702C55 General Purpose Flag  0000 (0)\n+702C57 Compression Method    0000 (0) 'Stored'\n+702C59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702C5D CRC                   00000000 (0)\n+702C61 Compressed Size       00000000 (0)\n+702C65 Uncompressed Size     00000000 (0)\n+702C69 Filename Length       002C (44)\n+702C6B Extra Length          0009 (9)\n+702C6D Comment Length        0000 (0)\n+702C6F Disk Start            0000 (0)\n+702C71 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702C73 Ext File Attributes   00000000 (0)\n+702C77 Local Header Offset   003E46BE (4081342)\n+702C7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702C7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702CA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702CA9   Length              0005 (5)\n+702CAB   Flags               01 (1) 'Modification'\n+702CAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702CB0 CENTRAL HEADER #1137  02014B50 (33639248)\n+702CB4 Created Zip Spec      14 (20) '2.0'\n+702CB5 Created OS            00 (0) 'MS-DOS'\n+702CB6 Extract Zip Spec      14 (20) '2.0'\n+702CB7 Extract OS            00 (0) 'MS-DOS'\n+702CB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702CBA Compression Method    0000 (0) 'Stored'\n+702CBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702CC0 CRC                   D7F68AC0 (3623258816)\n+702CC4 Compressed Size       0000091C (2332)\n+702CC8 Uncompressed Size     0000091C (2332)\n+702CCC Filename Length       0052 (82)\n+702CCE Extra Length          0009 (9)\n+702CD0 Comment Length        0000 (0)\n+702CD2 Disk Start            0000 (0)\n+702CD4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702CD6 Ext File Attributes   00000000 (0)\n+702CDA Local Header Offset   003E4711 (4081425)\n+702CDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702CDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702D30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702D32   Length              0005 (5)\n+702D34   Flags               01 (1) 'Modification'\n+702D35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702D39 CENTRAL HEADER #1138  02014B50 (33639248)\n+702D3D Created Zip Spec      14 (20) '2.0'\n+702D3E Created OS            00 (0) 'MS-DOS'\n+702D3F Extract Zip Spec      14 (20) '2.0'\n+702D40 Extract OS            00 (0) 'MS-DOS'\n+702D41 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702D43 Compression Method    0000 (0) 'Stored'\n+702D45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702D49 CRC                   3D7B6838 (1031497784)\n+702D4D Compressed Size       000003ED (1005)\n+702D51 Uncompressed Size     000003ED (1005)\n+702D55 Filename Length       0047 (71)\n+702D57 Extra Length          0009 (9)\n+702D59 Comment Length        0000 (0)\n+702D5B Disk Start            0000 (0)\n+702D5D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702D5F Ext File Attributes   00000000 (0)\n+702D63 Local Header Offset   003E50B6 (4083894)\n+702D67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702D67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702DAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702DB0   Length              0005 (5)\n+702DB2   Flags               01 (1) 'Modification'\n+702DB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702DB7 CENTRAL HEADER #1139  02014B50 (33639248)\n+702DBB Created Zip Spec      14 (20) '2.0'\n+702DBC Created OS            00 (0) 'MS-DOS'\n+702DBD Extract Zip Spec      14 (20) '2.0'\n+702DBE Extract OS            00 (0) 'MS-DOS'\n+702DBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702DC1 Compression Method    0000 (0) 'Stored'\n+702DC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702DC7 CRC                   475F83BC (1197441980)\n+702DCB Compressed Size       00000CBA (3258)\n+702DCF Uncompressed Size     00000CBA (3258)\n+702DD3 Filename Length       004E (78)\n+702DD5 Extra Length          0009 (9)\n+702DD7 Comment Length        0000 (0)\n+702DD9 Disk Start            0000 (0)\n+702DDB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702DDD Ext File Attributes   00000000 (0)\n+702DE1 Local Header Offset   003E5521 (4085025)\n+702DE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702DE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702E35   Length              0005 (5)\n+702E37   Flags               01 (1) 'Modification'\n+702E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702E3C CENTRAL HEADER #1140  02014B50 (33639248)\n+702E40 Created Zip Spec      14 (20) '2.0'\n+702E41 Created OS            00 (0) 'MS-DOS'\n+702E42 Extract Zip Spec      14 (20) '2.0'\n+702E43 Extract OS            00 (0) 'MS-DOS'\n+702E44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702E46 Compression Method    0000 (0) 'Stored'\n+702E48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702E4C CRC                   97BCAA4D (2545723981)\n+702E50 Compressed Size       0000085B (2139)\n+702E54 Uncompressed Size     0000085B (2139)\n+702E58 Filename Length       003C (60)\n+702E5A Extra Length          0009 (9)\n+702E5C Comment Length        0000 (0)\n+702E5E Disk Start            0000 (0)\n+702E60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702E62 Ext File Attributes   00000000 (0)\n+702E66 Local Header Offset   003E6260 (4088416)\n+702E6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702E6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702EA6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702EA8   Length              0005 (5)\n+702EAA   Flags               01 (1) 'Modification'\n+702EAB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702EAF CENTRAL HEADER #1141  02014B50 (33639248)\n+702EB3 Created Zip Spec      14 (20) '2.0'\n+702EB4 Created OS            00 (0) 'MS-DOS'\n+702EB5 Extract Zip Spec      14 (20) '2.0'\n+702EB6 Extract OS            00 (0) 'MS-DOS'\n+702EB7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702EB9 Compression Method    0000 (0) 'Stored'\n+702EBB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702EBF CRC                   A0F529B3 (2700421555)\n+702EC3 Compressed Size       00000CE3 (3299)\n+702EC7 Uncompressed Size     00000CE3 (3299)\n+702ECB Filename Length       0043 (67)\n+702ECD Extra Length          0009 (9)\n+702ECF Comment Length        0000 (0)\n+702ED1 Disk Start            0000 (0)\n+702ED3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702ED5 Ext File Attributes   00000000 (0)\n+702ED9 Local Header Offset   003E6B2E (4090670)\n+702EDD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702EDD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702F20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702F22   Length              0005 (5)\n+702F24   Flags               01 (1) 'Modification'\n+702F25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702F29 CENTRAL HEADER #1142  02014B50 (33639248)\n+702F2D Created Zip Spec      14 (20) '2.0'\n+702F2E Created OS            00 (0) 'MS-DOS'\n+702F2F Extract Zip Spec      14 (20) '2.0'\n+702F30 Extract OS            00 (0) 'MS-DOS'\n+702F31 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702F33 Compression Method    0000 (0) 'Stored'\n+702F35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702F39 CRC                   0978E7E9 (158918633)\n+702F3D Compressed Size       00000C93 (3219)\n+702F41 Uncompressed Size     00000C93 (3219)\n+702F45 Filename Length       004A (74)\n+702F47 Extra Length          0009 (9)\n+702F49 Comment Length        0000 (0)\n+702F4B Disk Start            0000 (0)\n+702F4D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702F4F Ext File Attributes   00000000 (0)\n+702F53 Local Header Offset   003E788B (4094091)\n+702F57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702F57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+702FA1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+702FA3   Length              0005 (5)\n+702FA5   Flags               01 (1) 'Modification'\n+702FA6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+702FAA CENTRAL HEADER #1143  02014B50 (33639248)\n+702FAE Created Zip Spec      14 (20) '2.0'\n+702FAF Created OS            00 (0) 'MS-DOS'\n+702FB0 Extract Zip Spec      14 (20) '2.0'\n+702FB1 Extract OS            00 (0) 'MS-DOS'\n+702FB2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+702FB4 Compression Method    0000 (0) 'Stored'\n+702FB6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+702FBA CRC                   0929F211 (153743889)\n+702FBE Compressed Size       000008B7 (2231)\n+702FC2 Uncompressed Size     000008B7 (2231)\n+702FC6 Filename Length       004D (77)\n+702FC8 Extra Length          0009 (9)\n+702FCA Comment Length        0000 (0)\n+702FCC Disk Start            0000 (0)\n+702FCE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+702FD0 Ext File Attributes   00000000 (0)\n+702FD4 Local Header Offset   003E859F (4097439)\n+702FD8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x702FD8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703025 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703027   Length              0005 (5)\n+703029   Flags               01 (1) 'Modification'\n+70302A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70302E CENTRAL HEADER #1144  02014B50 (33639248)\n+703032 Created Zip Spec      14 (20) '2.0'\n+703033 Created OS            00 (0) 'MS-DOS'\n+703034 Extract Zip Spec      14 (20) '2.0'\n+703035 Extract OS            00 (0) 'MS-DOS'\n+703036 General Purpose Flag  0000 (0)\n+703038 Compression Method    0000 (0) 'Stored'\n+70303A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70303E CRC                   00000000 (0)\n+703042 Compressed Size       00000000 (0)\n+703046 Uncompressed Size     00000000 (0)\n+70304A Filename Length       0029 (41)\n+70304C Extra Length          0009 (9)\n+70304E Comment Length        0000 (0)\n+703050 Disk Start            0000 (0)\n+703052 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703054 Ext File Attributes   00000000 (0)\n+703058 Local Header Offset   003E8EDA (4099802)\n+70305C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70305C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703085 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703087   Length              0005 (5)\n+703089   Flags               01 (1) 'Modification'\n+70308A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70308E CENTRAL HEADER #1145  02014B50 (33639248)\n+703092 Created Zip Spec      14 (20) '2.0'\n+703093 Created OS            00 (0) 'MS-DOS'\n+703094 Extract Zip Spec      14 (20) '2.0'\n+703095 Extract OS            00 (0) 'MS-DOS'\n+703096 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703098 Compression Method    0000 (0) 'Stored'\n+70309A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70309E CRC                   26D63221 (651571745)\n+7030A2 Compressed Size       00005153 (20819)\n+7030A6 Uncompressed Size     00005153 (20819)\n+7030AA Filename Length       0044 (68)\n+7030AC Extra Length          0009 (9)\n+7030AE Comment Length        0000 (0)\n+7030B0 Disk Start            0000 (0)\n+7030B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7030B4 Ext File Attributes   00000000 (0)\n+7030B8 Local Header Offset   003E8F2A (4099882)\n+7030BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7030BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703100 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703102   Length              0005 (5)\n+703104   Flags               01 (1) 'Modification'\n+703105   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703109 CENTRAL HEADER #1146  02014B50 (33639248)\n+70310D Created Zip Spec      14 (20) '2.0'\n+70310E Created OS            00 (0) 'MS-DOS'\n+70310F Extract Zip Spec      14 (20) '2.0'\n+703110 Extract OS            00 (0) 'MS-DOS'\n+703111 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703113 Compression Method    0000 (0) 'Stored'\n+703115 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703119 CRC                   16EA47E7 (384452583)\n+70311D Compressed Size       00000A81 (2689)\n+703121 Uncompressed Size     00000A81 (2689)\n+703125 Filename Length       004B (75)\n+703127 Extra Length          0009 (9)\n+703129 Comment Length        0000 (0)\n+70312B Disk Start            0000 (0)\n+70312D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70312F Ext File Attributes   00000000 (0)\n+703133 Local Header Offset   003EE0F8 (4120824)\n+703137 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703137: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703182 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703184   Length              0005 (5)\n+703186   Flags               01 (1) 'Modification'\n+703187   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70318B CENTRAL HEADER #1147  02014B50 (33639248)\n+70318F Created Zip Spec      14 (20) '2.0'\n+703190 Created OS            00 (0) 'MS-DOS'\n+703191 Extract Zip Spec      14 (20) '2.0'\n+703192 Extract OS            00 (0) 'MS-DOS'\n+703193 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703195 Compression Method    0000 (0) 'Stored'\n+703197 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70319B CRC                   82826623 (2189583907)\n+70319F Compressed Size       0000052A (1322)\n+7031A3 Uncompressed Size     0000052A (1322)\n+7031A7 Filename Length       0037 (55)\n+7031A9 Extra Length          0009 (9)\n+7031AB Comment Length        0000 (0)\n+7031AD Disk Start            0000 (0)\n+7031AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7031B1 Ext File Attributes   00000000 (0)\n+7031B5 Local Header Offset   003EEBFB (4123643)\n+7031B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7031B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7031F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7031F2   Length              0005 (5)\n+7031F4   Flags               01 (1) 'Modification'\n+7031F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7031F9 CENTRAL HEADER #1148  02014B50 (33639248)\n+7031FD Created Zip Spec      14 (20) '2.0'\n+7031FE Created OS            00 (0) 'MS-DOS'\n+7031FF Extract Zip Spec      14 (20) '2.0'\n+703200 Extract OS            00 (0) 'MS-DOS'\n+703201 General Purpose Flag  0000 (0)\n+703203 Compression Method    0000 (0) 'Stored'\n+703205 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703209 CRC                   00000000 (0)\n+70320D Compressed Size       00000000 (0)\n+703211 Uncompressed Size     00000000 (0)\n+703215 Filename Length       001F (31)\n+703217 Extra Length          0009 (9)\n+703219 Comment Length        0000 (0)\n+70321B Disk Start            0000 (0)\n+70321D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70321F Ext File Attributes   00000000 (0)\n+703223 Local Header Offset   003EF193 (4125075)\n+703227 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703227: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703248   Length              0005 (5)\n+70324A   Flags               01 (1) 'Modification'\n+70324B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70324F CENTRAL HEADER #1149  02014B50 (33639248)\n+703253 Created Zip Spec      14 (20) '2.0'\n+703254 Created OS            00 (0) 'MS-DOS'\n+703255 Extract Zip Spec      14 (20) '2.0'\n+703256 Extract OS            00 (0) 'MS-DOS'\n+703257 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703259 Compression Method    0000 (0) 'Stored'\n+70325B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70325F CRC                   25BB24C3 (633021635)\n+703263 Compressed Size       000009A2 (2466)\n+703267 Uncompressed Size     000009A2 (2466)\n+70326B Filename Length       004D (77)\n+70326D Extra Length          0009 (9)\n+70326F Comment Length        0000 (0)\n+703271 Disk Start            0000 (0)\n+703273 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703275 Ext File Attributes   00000000 (0)\n+703279 Local Header Offset   003EF1D9 (4125145)\n+70327D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70327D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7032CA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7032CC   Length              0005 (5)\n+7032CE   Flags               01 (1) 'Modification'\n+7032CF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7032D3 CENTRAL HEADER #1150  02014B50 (33639248)\n+7032D7 Created Zip Spec      14 (20) '2.0'\n+7032D8 Created OS            00 (0) 'MS-DOS'\n+7032D9 Extract Zip Spec      14 (20) '2.0'\n+7032DA Extract OS            00 (0) 'MS-DOS'\n+7032DB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7032DD Compression Method    0000 (0) 'Stored'\n+7032DF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7032E3 CRC                   9322DFB2 (2468536242)\n+7032E7 Compressed Size       00003EDE (16094)\n+7032EB Uncompressed Size     00003EDE (16094)\n+7032EF Filename Length       0047 (71)\n+7032F1 Extra Length          0009 (9)\n+7032F3 Comment Length        0000 (0)\n+7032F5 Disk Start            0000 (0)\n+7032F7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7032F9 Ext File Attributes   00000000 (0)\n+7032FD Local Header Offset   003EFBFF (4127743)\n+703301 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703301: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703348 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70334A   Length              0005 (5)\n+70334C   Flags               01 (1) 'Modification'\n+70334D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703351 CENTRAL HEADER #1151  02014B50 (33639248)\n+703355 Created Zip Spec      14 (20) '2.0'\n+703356 Created OS            00 (0) 'MS-DOS'\n+703357 Extract Zip Spec      14 (20) '2.0'\n+703358 Extract OS            00 (0) 'MS-DOS'\n+703359 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70335B Compression Method    0000 (0) 'Stored'\n+70335D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703361 CRC                   EE2E13F4 (3995997172)\n+703365 Compressed Size       00000A07 (2567)\n+703369 Uncompressed Size     00000A07 (2567)\n+70336D Filename Length       0045 (69)\n+70336F Extra Length          0009 (9)\n+703371 Comment Length        0000 (0)\n+703373 Disk Start            0000 (0)\n+703375 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703377 Ext File Attributes   00000000 (0)\n+70337B Local Header Offset   003F3B5B (4143963)\n+70337F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70337F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7033C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7033C6   Length              0005 (5)\n+7033C8   Flags               01 (1) 'Modification'\n+7033C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7033CD CENTRAL HEADER #1152  02014B50 (33639248)\n+7033D1 Created Zip Spec      14 (20) '2.0'\n+7033D2 Created OS            00 (0) 'MS-DOS'\n+7033D3 Extract Zip Spec      14 (20) '2.0'\n+7033D4 Extract OS            00 (0) 'MS-DOS'\n+7033D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7033D7 Compression Method    0000 (0) 'Stored'\n+7033D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7033DD CRC                   9044A5F3 (2420418035)\n+7033E1 Compressed Size       00000D59 (3417)\n+7033E5 Uncompressed Size     00000D59 (3417)\n+7033E9 Filename Length       0046 (70)\n+7033EB Extra Length          0009 (9)\n+7033ED Comment Length        0000 (0)\n+7033EF Disk Start            0000 (0)\n+7033F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7033F3 Ext File Attributes   00000000 (0)\n+7033F7 Local Header Offset   003F45DE (4146654)\n+7033FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7033FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703441 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703443   Length              0005 (5)\n+703445   Flags               01 (1) 'Modification'\n+703446   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70344A CENTRAL HEADER #1153  02014B50 (33639248)\n+70344E Created Zip Spec      14 (20) '2.0'\n+70344F Created OS            00 (0) 'MS-DOS'\n+703450 Extract Zip Spec      14 (20) '2.0'\n+703451 Extract OS            00 (0) 'MS-DOS'\n+703452 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703454 Compression Method    0000 (0) 'Stored'\n+703456 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70345A CRC                   15CC2E88 (365702792)\n+70345E Compressed Size       000007FE (2046)\n+703462 Uncompressed Size     000007FE (2046)\n+703466 Filename Length       0046 (70)\n+703468 Extra Length          0009 (9)\n+70346A Comment Length        0000 (0)\n+70346C Disk Start            0000 (0)\n+70346E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703470 Ext File Attributes   00000000 (0)\n+703474 Local Header Offset   003F53B4 (4150196)\n+703478 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703478: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7034BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7034C0   Length              0005 (5)\n+7034C2   Flags               01 (1) 'Modification'\n+7034C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7034C7 CENTRAL HEADER #1154  02014B50 (33639248)\n+7034CB Created Zip Spec      14 (20) '2.0'\n+7034CC Created OS            00 (0) 'MS-DOS'\n+7034CD Extract Zip Spec      14 (20) '2.0'\n+7034CE Extract OS            00 (0) 'MS-DOS'\n+7034CF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7034D1 Compression Method    0000 (0) 'Stored'\n+7034D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7034D7 CRC                   A00D3EBD (2685222589)\n+7034DB Compressed Size       00001C52 (7250)\n+7034DF Uncompressed Size     00001C52 (7250)\n+7034E3 Filename Length       0033 (51)\n+7034E5 Extra Length          0009 (9)\n+7034E7 Comment Length        0000 (0)\n+7034E9 Disk Start            0000 (0)\n+7034EB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7034ED Ext File Attributes   00000000 (0)\n+7034F1 Local Header Offset   003F5C2F (4152367)\n+7034F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7034F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703528 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70352A   Length              0005 (5)\n+70352C   Flags               01 (1) 'Modification'\n+70352D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703531 CENTRAL HEADER #1155  02014B50 (33639248)\n+703535 Created Zip Spec      14 (20) '2.0'\n+703536 Created OS            00 (0) 'MS-DOS'\n+703537 Extract Zip Spec      14 (20) '2.0'\n+703538 Extract OS            00 (0) 'MS-DOS'\n+703539 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70353B Compression Method    0000 (0) 'Stored'\n+70353D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703541 CRC                   69F2CD2A (1777519914)\n+703545 Compressed Size       0000129C (4764)\n+703549 Uncompressed Size     0000129C (4764)\n+70354D Filename Length       0039 (57)\n+70354F Extra Length          0009 (9)\n+703551 Comment Length        0000 (0)\n+703553 Disk Start            0000 (0)\n+703555 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703557 Ext File Attributes   00000000 (0)\n+70355B Local Header Offset   003F78EB (4159723)\n+70355F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70355F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703598 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70359A   Length              0005 (5)\n+70359C   Flags               01 (1) 'Modification'\n+70359D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7035A1 CENTRAL HEADER #1156  02014B50 (33639248)\n+7035A5 Created Zip Spec      14 (20) '2.0'\n+7035A6 Created OS            00 (0) 'MS-DOS'\n+7035A7 Extract Zip Spec      14 (20) '2.0'\n+7035A8 Extract OS            00 (0) 'MS-DOS'\n+7035A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7035AB Compression Method    0000 (0) 'Stored'\n+7035AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7035B1 CRC                   3A871853 (981932115)\n+7035B5 Compressed Size       000018D5 (6357)\n+7035B9 Uncompressed Size     000018D5 (6357)\n+7035BD Filename Length       0036 (54)\n+7035BF Extra Length          0009 (9)\n+7035C1 Comment Length        0000 (0)\n+7035C3 Disk Start            0000 (0)\n+7035C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7035C7 Ext File Attributes   00000000 (0)\n+7035CB Local Header Offset   003F8BF7 (4164599)\n+7035CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7035CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703605 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703607   Length              0005 (5)\n+703609   Flags               01 (1) 'Modification'\n+70360A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70360E CENTRAL HEADER #1157  02014B50 (33639248)\n+703612 Created Zip Spec      14 (20) '2.0'\n+703613 Created OS            00 (0) 'MS-DOS'\n+703614 Extract Zip Spec      14 (20) '2.0'\n+703615 Extract OS            00 (0) 'MS-DOS'\n+703616 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703618 Compression Method    0000 (0) 'Stored'\n+70361A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70361E CRC                   7BC9467A (2076788346)\n+703622 Compressed Size       00000CE6 (3302)\n+703626 Uncompressed Size     00000CE6 (3302)\n+70362A Filename Length       0037 (55)\n+70362C Extra Length          0009 (9)\n+70362E Comment Length        0000 (0)\n+703630 Disk Start            0000 (0)\n+703632 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703634 Ext File Attributes   00000000 (0)\n+703638 Local Header Offset   003FA539 (4171065)\n+70363C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70363C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703675   Length              0005 (5)\n+703677   Flags               01 (1) 'Modification'\n+703678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70367C CENTRAL HEADER #1158  02014B50 (33639248)\n+703680 Created Zip Spec      14 (20) '2.0'\n+703681 Created OS            00 (0) 'MS-DOS'\n+703682 Extract Zip Spec      14 (20) '2.0'\n+703683 Extract OS            00 (0) 'MS-DOS'\n+703684 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703686 Compression Method    0000 (0) 'Stored'\n+703688 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70368C CRC                   8442F5C1 (2218980801)\n+703690 Compressed Size       000004E8 (1256)\n+703694 Uncompressed Size     000004E8 (1256)\n+703698 Filename Length       003D (61)\n+70369A Extra Length          0009 (9)\n+70369C Comment Length        0000 (0)\n+70369E Disk Start            0000 (0)\n+7036A0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7036A2 Ext File Attributes   00000000 (0)\n+7036A6 Local Header Offset   003FB28D (4174477)\n+7036AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7036AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7036E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7036E9   Length              0005 (5)\n+7036EB   Flags               01 (1) 'Modification'\n+7036EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7036F0 CENTRAL HEADER #1159  02014B50 (33639248)\n+7036F4 Created Zip Spec      14 (20) '2.0'\n+7036F5 Created OS            00 (0) 'MS-DOS'\n+7036F6 Extract Zip Spec      14 (20) '2.0'\n+7036F7 Extract OS            00 (0) 'MS-DOS'\n+7036F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7036FA Compression Method    0000 (0) 'Stored'\n+7036FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703700 CRC                   1B483D0F (457719055)\n+703704 Compressed Size       00000667 (1639)\n+703708 Uncompressed Size     00000667 (1639)\n+70370C Filename Length       003F (63)\n+70370E Extra Length          0009 (9)\n+703710 Comment Length        0000 (0)\n+703712 Disk Start            0000 (0)\n+703714 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703716 Ext File Attributes   00000000 (0)\n+70371A Local Header Offset   003FB7E9 (4175849)\n+70371E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70371E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70375D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70375F   Length              0005 (5)\n+703761   Flags               01 (1) 'Modification'\n+703762   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703766 CENTRAL HEADER #1160  02014B50 (33639248)\n+70376A Created Zip Spec      14 (20) '2.0'\n+70376B Created OS            00 (0) 'MS-DOS'\n+70376C Extract Zip Spec      14 (20) '2.0'\n+70376D Extract OS            00 (0) 'MS-DOS'\n+70376E General Purpose Flag  0000 (0)\n+703770 Compression Method    0000 (0) 'Stored'\n+703772 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703776 CRC                   00000000 (0)\n+70377A Compressed Size       00000000 (0)\n+70377E Uncompressed Size     00000000 (0)\n+703782 Filename Length       0025 (37)\n+703784 Extra Length          0009 (9)\n+703786 Comment Length        0000 (0)\n+703788 Disk Start            0000 (0)\n+70378A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70378C Ext File Attributes   00000000 (0)\n+703790 Local Header Offset   003FBEC6 (4177606)\n+703794 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703794: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7037B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7037BB   Length              0005 (5)\n+7037BD   Flags               01 (1) 'Modification'\n+7037BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7037C2 CENTRAL HEADER #1161  02014B50 (33639248)\n+7037C6 Created Zip Spec      14 (20) '2.0'\n+7037C7 Created OS            00 (0) 'MS-DOS'\n+7037C8 Extract Zip Spec      14 (20) '2.0'\n+7037C9 Extract OS            00 (0) 'MS-DOS'\n+7037CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7037CC Compression Method    0000 (0) 'Stored'\n+7037CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7037D2 CRC                   B81EA5D5 (3089016277)\n+7037D6 Compressed Size       00000B91 (2961)\n+7037DA Uncompressed Size     00000B91 (2961)\n+7037DE Filename Length       0048 (72)\n+7037E0 Extra Length          0009 (9)\n+7037E2 Comment Length        0000 (0)\n+7037E4 Disk Start            0000 (0)\n+7037E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7037E8 Ext File Attributes   00000000 (0)\n+7037EC Local Header Offset   003FBF12 (4177682)\n+7037F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7037F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703838 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70383A   Length              0005 (5)\n+70383C   Flags               01 (1) 'Modification'\n+70383D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703841 CENTRAL HEADER #1162  02014B50 (33639248)\n+703845 Created Zip Spec      14 (20) '2.0'\n+703846 Created OS            00 (0) 'MS-DOS'\n+703847 Extract Zip Spec      14 (20) '2.0'\n+703848 Extract OS            00 (0) 'MS-DOS'\n+703849 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70384B Compression Method    0000 (0) 'Stored'\n+70384D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703851 CRC                   EF780E16 (4017622550)\n+703855 Compressed Size       00000562 (1378)\n+703859 Uncompressed Size     00000562 (1378)\n+70385D Filename Length       0045 (69)\n+70385F Extra Length          0009 (9)\n+703861 Comment Length        0000 (0)\n+703863 Disk Start            0000 (0)\n+703865 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703867 Ext File Attributes   00000000 (0)\n+70386B Local Header Offset   003FCB22 (4180770)\n+70386F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70386F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7038B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7038B6   Length              0005 (5)\n+7038B8   Flags               01 (1) 'Modification'\n+7038B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7038BD CENTRAL HEADER #1163  02014B50 (33639248)\n+7038C1 Created Zip Spec      14 (20) '2.0'\n+7038C2 Created OS            00 (0) 'MS-DOS'\n+7038C3 Extract Zip Spec      14 (20) '2.0'\n+7038C4 Extract OS            00 (0) 'MS-DOS'\n+7038C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7038C7 Compression Method    0000 (0) 'Stored'\n+7038C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7038CD CRC                   CC678E8E (3429338766)\n+7038D1 Compressed Size       000008A3 (2211)\n+7038D5 Uncompressed Size     000008A3 (2211)\n+7038D9 Filename Length       0047 (71)\n+7038DB Extra Length          0009 (9)\n+7038DD Comment Length        0000 (0)\n+7038DF Disk Start            0000 (0)\n+7038E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7038E3 Ext File Attributes   00000000 (0)\n+7038E7 Local Header Offset   003FD100 (4182272)\n+7038EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7038EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703932 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703934   Length              0005 (5)\n+703936   Flags               01 (1) 'Modification'\n+703937   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70393B CENTRAL HEADER #1164  02014B50 (33639248)\n+70393F Created Zip Spec      14 (20) '2.0'\n+703940 Created OS            00 (0) 'MS-DOS'\n+703941 Extract Zip Spec      14 (20) '2.0'\n+703942 Extract OS            00 (0) 'MS-DOS'\n+703943 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703945 Compression Method    0000 (0) 'Stored'\n+703947 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70394B CRC                   5E735CAA (1584618666)\n+70394F Compressed Size       00001249 (4681)\n+703953 Uncompressed Size     00001249 (4681)\n+703957 Filename Length       004A (74)\n+703959 Extra Length          0009 (9)\n+70395B Comment Length        0000 (0)\n+70395D Disk Start            0000 (0)\n+70395F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703961 Ext File Attributes   00000000 (0)\n+703965 Local Header Offset   003FDA21 (4184609)\n+703969 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703969: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7039B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7039B5   Length              0005 (5)\n+7039B7   Flags               01 (1) 'Modification'\n+7039B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7039BC CENTRAL HEADER #1165  02014B50 (33639248)\n+7039C0 Created Zip Spec      14 (20) '2.0'\n+7039C1 Created OS            00 (0) 'MS-DOS'\n+7039C2 Extract Zip Spec      14 (20) '2.0'\n+7039C3 Extract OS            00 (0) 'MS-DOS'\n+7039C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7039C6 Compression Method    0000 (0) 'Stored'\n+7039C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7039CC CRC                   F08C4805 (4035725317)\n+7039D0 Compressed Size       0000056A (1386)\n+7039D4 Uncompressed Size     0000056A (1386)\n+7039D8 Filename Length       0047 (71)\n+7039DA Extra Length          0009 (9)\n+7039DC Comment Length        0000 (0)\n+7039DE Disk Start            0000 (0)\n+7039E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7039E2 Ext File Attributes   00000000 (0)\n+7039E6 Local Header Offset   003FECEB (4189419)\n+7039EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7039EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703A31 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703A33   Length              0005 (5)\n+703A35   Flags               01 (1) 'Modification'\n+703A36   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703A3A CENTRAL HEADER #1166  02014B50 (33639248)\n+703A3E Created Zip Spec      14 (20) '2.0'\n+703A3F Created OS            00 (0) 'MS-DOS'\n+703A40 Extract Zip Spec      14 (20) '2.0'\n+703A41 Extract OS            00 (0) 'MS-DOS'\n+703A42 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703A44 Compression Method    0000 (0) 'Stored'\n+703A46 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703A4A CRC                   EACCF2B1 (3939300017)\n+703A4E Compressed Size       00000704 (1796)\n+703A52 Uncompressed Size     00000704 (1796)\n+703A56 Filename Length       004B (75)\n+703A58 Extra Length          0009 (9)\n+703A5A Comment Length        0000 (0)\n+703A5C Disk Start            0000 (0)\n+703A5E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703A60 Ext File Attributes   00000000 (0)\n+703A64 Local Header Offset   003FF2D3 (4190931)\n+703A68 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703A68: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703AB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703AB5   Length              0005 (5)\n+703AB7   Flags               01 (1) 'Modification'\n+703AB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703ABC CENTRAL HEADER #1167  02014B50 (33639248)\n+703AC0 Created Zip Spec      14 (20) '2.0'\n+703AC1 Created OS            00 (0) 'MS-DOS'\n+703AC2 Extract Zip Spec      14 (20) '2.0'\n+703AC3 Extract OS            00 (0) 'MS-DOS'\n+703AC4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703AC6 Compression Method    0000 (0) 'Stored'\n+703AC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703ACC CRC                   69ADD8AE (1773000878)\n+703AD0 Compressed Size       00000566 (1382)\n+703AD4 Uncompressed Size     00000566 (1382)\n+703AD8 Filename Length       0046 (70)\n+703ADA Extra Length          0009 (9)\n+703ADC Comment Length        0000 (0)\n+703ADE Disk Start            0000 (0)\n+703AE0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703AE2 Ext File Attributes   00000000 (0)\n+703AE6 Local Header Offset   003FFA59 (4192857)\n+703AEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703AEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703B30 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703B32   Length              0005 (5)\n+703B34   Flags               01 (1) 'Modification'\n+703B35   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703B39 CENTRAL HEADER #1168  02014B50 (33639248)\n+703B3D Created Zip Spec      14 (20) '2.0'\n+703B3E Created OS            00 (0) 'MS-DOS'\n+703B3F Extract Zip Spec      14 (20) '2.0'\n+703B40 Extract OS            00 (0) 'MS-DOS'\n+703B41 General Purpose Flag  0000 (0)\n+703B43 Compression Method    0000 (0) 'Stored'\n+703B45 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703B49 CRC                   00000000 (0)\n+703B4D Compressed Size       00000000 (0)\n+703B51 Uncompressed Size     00000000 (0)\n+703B55 Filename Length       0029 (41)\n+703B57 Extra Length          0009 (9)\n+703B59 Comment Length        0000 (0)\n+703B5B Disk Start            0000 (0)\n+703B5D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703B5F Ext File Attributes   00000000 (0)\n+703B63 Local Header Offset   0040003C (4194364)\n+703B67 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703B67: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703B90 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703B92   Length              0005 (5)\n+703B94   Flags               01 (1) 'Modification'\n+703B95   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703B99 CENTRAL HEADER #1169  02014B50 (33639248)\n+703B9D Created Zip Spec      14 (20) '2.0'\n+703B9E Created OS            00 (0) 'MS-DOS'\n+703B9F Extract Zip Spec      14 (20) '2.0'\n+703BA0 Extract OS            00 (0) 'MS-DOS'\n+703BA1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703BA3 Compression Method    0000 (0) 'Stored'\n+703BA5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703BA9 CRC                   2470BA0F (611367439)\n+703BAD Compressed Size       00000B77 (2935)\n+703BB1 Uncompressed Size     00000B77 (2935)\n+703BB5 Filename Length       0059 (89)\n+703BB7 Extra Length          0009 (9)\n+703BB9 Comment Length        0000 (0)\n+703BBB Disk Start            0000 (0)\n+703BBD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703BBF Ext File Attributes   00000000 (0)\n+703BC3 Local Header Offset   0040008C (4194444)\n+703BC7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703BC7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703C20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703C22   Length              0005 (5)\n+703C24   Flags               01 (1) 'Modification'\n+703C25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703C29 CENTRAL HEADER #1170  02014B50 (33639248)\n+703C2D Created Zip Spec      14 (20) '2.0'\n+703C2E Created OS            00 (0) 'MS-DOS'\n+703C2F Extract Zip Spec      14 (20) '2.0'\n+703C30 Extract OS            00 (0) 'MS-DOS'\n+703C31 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703C33 Compression Method    0000 (0) 'Stored'\n+703C35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703C39 CRC                   F02EA49E (4029588638)\n+703C3D Compressed Size       00000730 (1840)\n+703C41 Uncompressed Size     00000730 (1840)\n+703C45 Filename Length       004D (77)\n+703C47 Extra Length          0009 (9)\n+703C49 Comment Length        0000 (0)\n+703C4B Disk Start            0000 (0)\n+703C4D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703C4F Ext File Attributes   00000000 (0)\n+703C53 Local Header Offset   00400C93 (4197523)\n+703C57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703C57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703CA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703CA6   Length              0005 (5)\n+703CA8   Flags               01 (1) 'Modification'\n+703CA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703CAD CENTRAL HEADER #1171  02014B50 (33639248)\n+703CB1 Created Zip Spec      14 (20) '2.0'\n+703CB2 Created OS            00 (0) 'MS-DOS'\n+703CB3 Extract Zip Spec      14 (20) '2.0'\n+703CB4 Extract OS            00 (0) 'MS-DOS'\n+703CB5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703CB7 Compression Method    0000 (0) 'Stored'\n+703CB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703CBD CRC                   91BA4E47 (2444906055)\n+703CC1 Compressed Size       0000072B (1835)\n+703CC5 Uncompressed Size     0000072B (1835)\n+703CC9 Filename Length       004C (76)\n+703CCB Extra Length          0009 (9)\n+703CCD Comment Length        0000 (0)\n+703CCF Disk Start            0000 (0)\n+703CD1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703CD3 Ext File Attributes   00000000 (0)\n+703CD7 Local Header Offset   00401447 (4199495)\n+703CDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703CDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703D27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703D29   Length              0005 (5)\n+703D2B   Flags               01 (1) 'Modification'\n+703D2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703D30 CENTRAL HEADER #1172  02014B50 (33639248)\n+703D34 Created Zip Spec      14 (20) '2.0'\n+703D35 Created OS            00 (0) 'MS-DOS'\n+703D36 Extract Zip Spec      14 (20) '2.0'\n+703D37 Extract OS            00 (0) 'MS-DOS'\n+703D38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703D3A Compression Method    0000 (0) 'Stored'\n+703D3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703D40 CRC                   594A4504 (1498039556)\n+703D44 Compressed Size       000018FD (6397)\n+703D48 Uncompressed Size     000018FD (6397)\n+703D4C Filename Length       0052 (82)\n+703D4E Extra Length          0009 (9)\n+703D50 Comment Length        0000 (0)\n+703D52 Disk Start            0000 (0)\n+703D54 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703D56 Ext File Attributes   00000000 (0)\n+703D5A Local Header Offset   00401BF5 (4201461)\n+703D5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703D5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703DB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703DB2   Length              0005 (5)\n+703DB4   Flags               01 (1) 'Modification'\n+703DB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703DB9 CENTRAL HEADER #1173  02014B50 (33639248)\n+703DBD Created Zip Spec      14 (20) '2.0'\n+703DBE Created OS            00 (0) 'MS-DOS'\n+703DBF Extract Zip Spec      14 (20) '2.0'\n+703DC0 Extract OS            00 (0) 'MS-DOS'\n+703DC1 General Purpose Flag  0000 (0)\n+703DC3 Compression Method    0000 (0) 'Stored'\n+703DC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703DC9 CRC                   00000000 (0)\n+703DCD Compressed Size       00000000 (0)\n+703DD1 Uncompressed Size     00000000 (0)\n+703DD5 Filename Length       0020 (32)\n+703DD7 Extra Length          0009 (9)\n+703DD9 Comment Length        0000 (0)\n+703DDB Disk Start            0000 (0)\n+703DDD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703DDF Ext File Attributes   00000000 (0)\n+703DE3 Local Header Offset   0040357B (4207995)\n+703DE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703DE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703E07 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703E09   Length              0005 (5)\n+703E0B   Flags               01 (1) 'Modification'\n+703E0C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703E10 CENTRAL HEADER #1174  02014B50 (33639248)\n+703E14 Created Zip Spec      14 (20) '2.0'\n+703E15 Created OS            00 (0) 'MS-DOS'\n+703E16 Extract Zip Spec      14 (20) '2.0'\n+703E17 Extract OS            00 (0) 'MS-DOS'\n+703E18 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703E1A Compression Method    0000 (0) 'Stored'\n+703E1C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703E20 CRC                   FF3DB830 (4282234928)\n+703E24 Compressed Size       000010CE (4302)\n+703E28 Uncompressed Size     000010CE (4302)\n+703E2C Filename Length       004C (76)\n+703E2E Extra Length          0009 (9)\n+703E30 Comment Length        0000 (0)\n+703E32 Disk Start            0000 (0)\n+703E34 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703E36 Ext File Attributes   00000000 (0)\n+703E3A Local Header Offset   004035C2 (4208066)\n+703E3E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703E3E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703E8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703E8C   Length              0005 (5)\n+703E8E   Flags               01 (1) 'Modification'\n+703E8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703E93 CENTRAL HEADER #1175  02014B50 (33639248)\n+703E97 Created Zip Spec      14 (20) '2.0'\n+703E98 Created OS            00 (0) 'MS-DOS'\n+703E99 Extract Zip Spec      14 (20) '2.0'\n+703E9A Extract OS            00 (0) 'MS-DOS'\n+703E9B General Purpose Flag  0000 (0)\n+703E9D Compression Method    0000 (0) 'Stored'\n+703E9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703EA3 CRC                   00000000 (0)\n+703EA7 Compressed Size       00000000 (0)\n+703EAB Uncompressed Size     00000000 (0)\n+703EAF Filename Length       0027 (39)\n+703EB1 Extra Length          0009 (9)\n+703EB3 Comment Length        0000 (0)\n+703EB5 Disk Start            0000 (0)\n+703EB7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703EB9 Ext File Attributes   00000000 (0)\n+703EBD Local Header Offset   00404713 (4212499)\n+703EC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703EC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703EE8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703EEA   Length              0005 (5)\n+703EEC   Flags               01 (1) 'Modification'\n+703EED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703EF1 CENTRAL HEADER #1176  02014B50 (33639248)\n+703EF5 Created Zip Spec      14 (20) '2.0'\n+703EF6 Created OS            00 (0) 'MS-DOS'\n+703EF7 Extract Zip Spec      14 (20) '2.0'\n+703EF8 Extract OS            00 (0) 'MS-DOS'\n+703EF9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703EFB Compression Method    0000 (0) 'Stored'\n+703EFD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703F01 CRC                   18469088 (407277704)\n+703F05 Compressed Size       00001573 (5491)\n+703F09 Uncompressed Size     00001573 (5491)\n+703F0D Filename Length       0040 (64)\n+703F0F Extra Length          0009 (9)\n+703F11 Comment Length        0000 (0)\n+703F13 Disk Start            0000 (0)\n+703F15 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703F17 Ext File Attributes   00000000 (0)\n+703F1B Local Header Offset   00404761 (4212577)\n+703F1F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703F1F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703F5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703F61   Length              0005 (5)\n+703F63   Flags               01 (1) 'Modification'\n+703F64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703F68 CENTRAL HEADER #1177  02014B50 (33639248)\n+703F6C Created Zip Spec      14 (20) '2.0'\n+703F6D Created OS            00 (0) 'MS-DOS'\n+703F6E Extract Zip Spec      14 (20) '2.0'\n+703F6F Extract OS            00 (0) 'MS-DOS'\n+703F70 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+703F72 Compression Method    0000 (0) 'Stored'\n+703F74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703F78 CRC                   E09F9D87 (3768556935)\n+703F7C Compressed Size       00000525 (1317)\n+703F80 Uncompressed Size     00000525 (1317)\n+703F84 Filename Length       0047 (71)\n+703F86 Extra Length          0009 (9)\n+703F88 Comment Length        0000 (0)\n+703F8A Disk Start            0000 (0)\n+703F8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+703F8E Ext File Attributes   00000000 (0)\n+703F92 Local Header Offset   00405D4B (4218187)\n+703F96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x703F96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+703FDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+703FDF   Length              0005 (5)\n+703FE1   Flags               01 (1) 'Modification'\n+703FE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+703FE6 CENTRAL HEADER #1178  02014B50 (33639248)\n+703FEA Created Zip Spec      14 (20) '2.0'\n+703FEB Created OS            00 (0) 'MS-DOS'\n+703FEC Extract Zip Spec      14 (20) '2.0'\n+703FED Extract OS            00 (0) 'MS-DOS'\n+703FEE General Purpose Flag  0000 (0)\n+703FF0 Compression Method    0000 (0) 'Stored'\n+703FF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+703FF6 CRC                   00000000 (0)\n+703FFA Compressed Size       00000000 (0)\n+703FFE Uncompressed Size     00000000 (0)\n+704002 Filename Length       0025 (37)\n+704004 Extra Length          0009 (9)\n+704006 Comment Length        0000 (0)\n+704008 Disk Start            0000 (0)\n+70400A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70400C Ext File Attributes   00000000 (0)\n+704010 Local Header Offset   004062EE (4219630)\n+704014 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704014: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704039 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70403B   Length              0005 (5)\n+70403D   Flags               01 (1) 'Modification'\n+70403E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704042 CENTRAL HEADER #1179  02014B50 (33639248)\n+704046 Created Zip Spec      14 (20) '2.0'\n+704047 Created OS            00 (0) 'MS-DOS'\n+704048 Extract Zip Spec      14 (20) '2.0'\n+704049 Extract OS            00 (0) 'MS-DOS'\n+70404A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70404C Compression Method    0000 (0) 'Stored'\n+70404E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704052 CRC                   963A2E3A (2520395322)\n+704056 Compressed Size       000016EE (5870)\n+70405A Uncompressed Size     000016EE (5870)\n+70405E Filename Length       003C (60)\n+704060 Extra Length          0009 (9)\n+704062 Comment Length        0000 (0)\n+704064 Disk Start            0000 (0)\n+704066 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704068 Ext File Attributes   00000000 (0)\n+70406C Local Header Offset   0040633A (4219706)\n+704070 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704070: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7040AC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7040AE   Length              0005 (5)\n+7040B0   Flags               01 (1) 'Modification'\n+7040B1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7040B5 CENTRAL HEADER #1180  02014B50 (33639248)\n+7040B9 Created Zip Spec      14 (20) '2.0'\n+7040BA Created OS            00 (0) 'MS-DOS'\n+7040BB Extract Zip Spec      14 (20) '2.0'\n+7040BC Extract OS            00 (0) 'MS-DOS'\n+7040BD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7040BF Compression Method    0000 (0) 'Stored'\n+7040C1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7040C5 CRC                   1612BDB3 (370326963)\n+7040C9 Compressed Size       00000870 (2160)\n+7040CD Uncompressed Size     00000870 (2160)\n+7040D1 Filename Length       0043 (67)\n+7040D3 Extra Length          0009 (9)\n+7040D5 Comment Length        0000 (0)\n+7040D7 Disk Start            0000 (0)\n+7040D9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7040DB Ext File Attributes   00000000 (0)\n+7040DF Local Header Offset   00407A9B (4225691)\n+7040E3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7040E3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704126 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704128   Length              0005 (5)\n+70412A   Flags               01 (1) 'Modification'\n+70412B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70412F CENTRAL HEADER #1181  02014B50 (33639248)\n+704133 Created Zip Spec      14 (20) '2.0'\n+704134 Created OS            00 (0) 'MS-DOS'\n+704135 Extract Zip Spec      14 (20) '2.0'\n+704136 Extract OS            00 (0) 'MS-DOS'\n+704137 General Purpose Flag  0000 (0)\n+704139 Compression Method    0000 (0) 'Stored'\n+70413B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70413F CRC                   00000000 (0)\n+704143 Compressed Size       00000000 (0)\n+704147 Uncompressed Size     00000000 (0)\n+70414B Filename Length       0029 (41)\n+70414D Extra Length          0009 (9)\n+70414F Comment Length        0000 (0)\n+704151 Disk Start            0000 (0)\n+704153 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704155 Ext File Attributes   00000000 (0)\n+704159 Local Header Offset   00408385 (4227973)\n+70415D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70415D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704186 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704188   Length              0005 (5)\n+70418A   Flags               01 (1) 'Modification'\n+70418B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70418F CENTRAL HEADER #1182  02014B50 (33639248)\n+704193 Created Zip Spec      14 (20) '2.0'\n+704194 Created OS            00 (0) 'MS-DOS'\n+704195 Extract Zip Spec      14 (20) '2.0'\n+704196 Extract OS            00 (0) 'MS-DOS'\n+704197 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704199 Compression Method    0000 (0) 'Stored'\n+70419B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70419F CRC                   C5E6E015 (3320242197)\n+7041A3 Compressed Size       000006C9 (1737)\n+7041A7 Uncompressed Size     000006C9 (1737)\n+7041AB Filename Length       003F (63)\n+7041AD Extra Length          0009 (9)\n+7041AF Comment Length        0000 (0)\n+7041B1 Disk Start            0000 (0)\n+7041B3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7041B5 Ext File Attributes   00000000 (0)\n+7041B9 Local Header Offset   004083D5 (4228053)\n+7041BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7041BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7041FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7041FE   Length              0005 (5)\n+704200   Flags               01 (1) 'Modification'\n+704201   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704205 CENTRAL HEADER #1183  02014B50 (33639248)\n+704209 Created Zip Spec      14 (20) '2.0'\n+70420A Created OS            00 (0) 'MS-DOS'\n+70420B Extract Zip Spec      14 (20) '2.0'\n+70420C Extract OS            00 (0) 'MS-DOS'\n+70420D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70420F Compression Method    0000 (0) 'Stored'\n+704211 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704215 CRC                   95EACAEA (2515192554)\n+704219 Compressed Size       00005E4E (24142)\n+70421D Uncompressed Size     00005E4E (24142)\n+704221 Filename Length       0044 (68)\n+704223 Extra Length          0009 (9)\n+704225 Comment Length        0000 (0)\n+704227 Disk Start            0000 (0)\n+704229 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70422B Ext File Attributes   00000000 (0)\n+70422F Local Header Offset   00408B14 (4229908)\n+704233 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704233: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704277 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704279   Length              0005 (5)\n+70427B   Flags               01 (1) 'Modification'\n+70427C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704280 CENTRAL HEADER #1184  02014B50 (33639248)\n+704284 Created Zip Spec      14 (20) '2.0'\n+704285 Created OS            00 (0) 'MS-DOS'\n+704286 Extract Zip Spec      14 (20) '2.0'\n+704287 Extract OS            00 (0) 'MS-DOS'\n+704288 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70428A Compression Method    0000 (0) 'Stored'\n+70428C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704290 CRC                   880754E1 (2282181857)\n+704294 Compressed Size       000004F3 (1267)\n+704298 Uncompressed Size     000004F3 (1267)\n+70429C Filename Length       004B (75)\n+70429E Extra Length          0009 (9)\n+7042A0 Comment Length        0000 (0)\n+7042A2 Disk Start            0000 (0)\n+7042A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7042A6 Ext File Attributes   00000000 (0)\n+7042AA Local Header Offset   0040E9DD (4254173)\n+7042AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7042AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7042F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7042FB   Length              0005 (5)\n+7042FD   Flags               01 (1) 'Modification'\n+7042FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704302 CENTRAL HEADER #1185  02014B50 (33639248)\n+704306 Created Zip Spec      14 (20) '2.0'\n+704307 Created OS            00 (0) 'MS-DOS'\n+704308 Extract Zip Spec      14 (20) '2.0'\n+704309 Extract OS            00 (0) 'MS-DOS'\n+70430A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70430C Compression Method    0000 (0) 'Stored'\n+70430E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704312 CRC                   3DD6411C (1037451548)\n+704316 Compressed Size       00000CAC (3244)\n+70431A Uncompressed Size     00000CAC (3244)\n+70431E Filename Length       0044 (68)\n+704320 Extra Length          0009 (9)\n+704322 Comment Length        0000 (0)\n+704324 Disk Start            0000 (0)\n+704326 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704328 Ext File Attributes   00000000 (0)\n+70432C Local Header Offset   0040EF52 (4255570)\n+704330 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704330: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704374 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704376   Length              0005 (5)\n+704378   Flags               01 (1) 'Modification'\n+704379   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70437D CENTRAL HEADER #1186  02014B50 (33639248)\n+704381 Created Zip Spec      14 (20) '2.0'\n+704382 Created OS            00 (0) 'MS-DOS'\n+704383 Extract Zip Spec      14 (20) '2.0'\n+704384 Extract OS            00 (0) 'MS-DOS'\n+704385 General Purpose Flag  0000 (0)\n+704387 Compression Method    0000 (0) 'Stored'\n+704389 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70438D CRC                   00000000 (0)\n+704391 Compressed Size       00000000 (0)\n+704395 Uncompressed Size     00000000 (0)\n+704399 Filename Length       0026 (38)\n+70439B Extra Length          0009 (9)\n+70439D Comment Length        0000 (0)\n+70439F Disk Start            0000 (0)\n+7043A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7043A3 Ext File Attributes   00000000 (0)\n+7043A7 Local Header Offset   0040FC79 (4258937)\n+7043AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7043AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7043D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7043D3   Length              0005 (5)\n+7043D5   Flags               01 (1) 'Modification'\n+7043D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7043DA CENTRAL HEADER #1187  02014B50 (33639248)\n+7043DE Created Zip Spec      14 (20) '2.0'\n+7043DF Created OS            00 (0) 'MS-DOS'\n+7043E0 Extract Zip Spec      14 (20) '2.0'\n+7043E1 Extract OS            00 (0) 'MS-DOS'\n+7043E2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7043E4 Compression Method    0000 (0) 'Stored'\n+7043E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7043EA CRC                   2BBAD075 (733663349)\n+7043EE Compressed Size       000008DC (2268)\n+7043F2 Uncompressed Size     000008DC (2268)\n+7043F6 Filename Length       0044 (68)\n+7043F8 Extra Length          0009 (9)\n+7043FA Comment Length        0000 (0)\n+7043FC Disk Start            0000 (0)\n+7043FE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704400 Ext File Attributes   00000000 (0)\n+704404 Local Header Offset   0040FCC6 (4259014)\n+704408 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704408: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70444C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70444E   Length              0005 (5)\n+704450   Flags               01 (1) 'Modification'\n+704451   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704455 CENTRAL HEADER #1188  02014B50 (33639248)\n+704459 Created Zip Spec      14 (20) '2.0'\n+70445A Created OS            00 (0) 'MS-DOS'\n+70445B Extract Zip Spec      14 (20) '2.0'\n+70445C Extract OS            00 (0) 'MS-DOS'\n+70445D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70445F Compression Method    0000 (0) 'Stored'\n+704461 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704465 CRC                   7A7368DC (2054383836)\n+704469 Compressed Size       0000294D (10573)\n+70446D Uncompressed Size     0000294D (10573)\n+704471 Filename Length       003E (62)\n+704473 Extra Length          0009 (9)\n+704475 Comment Length        0000 (0)\n+704477 Disk Start            0000 (0)\n+704479 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70447B Ext File Attributes   00000000 (0)\n+70447F Local Header Offset   0041061D (4261405)\n+704483 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704483: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7044C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7044C3   Length              0005 (5)\n+7044C5   Flags               01 (1) 'Modification'\n+7044C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7044CA CENTRAL HEADER #1189  02014B50 (33639248)\n+7044CE Created Zip Spec      14 (20) '2.0'\n+7044CF Created OS            00 (0) 'MS-DOS'\n+7044D0 Extract Zip Spec      14 (20) '2.0'\n+7044D1 Extract OS            00 (0) 'MS-DOS'\n+7044D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7044D4 Compression Method    0000 (0) 'Stored'\n+7044D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7044DA CRC                   46F5866F (1190495855)\n+7044DE Compressed Size       00000521 (1313)\n+7044E2 Uncompressed Size     00000521 (1313)\n+7044E6 Filename Length       0045 (69)\n+7044E8 Extra Length          0009 (9)\n+7044EA Comment Length        0000 (0)\n+7044EC Disk Start            0000 (0)\n+7044EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7044F0 Ext File Attributes   00000000 (0)\n+7044F4 Local Header Offset   00412FDF (4272095)\n+7044F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7044F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70453D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70453F   Length              0005 (5)\n+704541   Flags               01 (1) 'Modification'\n+704542   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704546 CENTRAL HEADER #1190  02014B50 (33639248)\n+70454A Created Zip Spec      14 (20) '2.0'\n+70454B Created OS            00 (0) 'MS-DOS'\n+70454C Extract Zip Spec      14 (20) '2.0'\n+70454D Extract OS            00 (0) 'MS-DOS'\n+70454E General Purpose Flag  0000 (0)\n+704550 Compression Method    0000 (0) 'Stored'\n+704552 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704556 CRC                   00000000 (0)\n+70455A Compressed Size       00000000 (0)\n+70455E Uncompressed Size     00000000 (0)\n+704562 Filename Length       0026 (38)\n+704564 Extra Length          0009 (9)\n+704566 Comment Length        0000 (0)\n+704568 Disk Start            0000 (0)\n+70456A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70456C Ext File Attributes   00000000 (0)\n+704570 Local Header Offset   0041357C (4273532)\n+704574 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704574: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70459A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70459C   Length              0005 (5)\n+70459E   Flags               01 (1) 'Modification'\n+70459F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7045A3 CENTRAL HEADER #1191  02014B50 (33639248)\n+7045A7 Created Zip Spec      14 (20) '2.0'\n+7045A8 Created OS            00 (0) 'MS-DOS'\n+7045A9 Extract Zip Spec      14 (20) '2.0'\n+7045AA Extract OS            00 (0) 'MS-DOS'\n+7045AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7045AD Compression Method    0000 (0) 'Stored'\n+7045AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7045B3 CRC                   7E3D8E6C (2117963372)\n+7045B7 Compressed Size       0000253B (9531)\n+7045BB Uncompressed Size     0000253B (9531)\n+7045BF Filename Length       003E (62)\n+7045C1 Extra Length          0009 (9)\n+7045C3 Comment Length        0000 (0)\n+7045C5 Disk Start            0000 (0)\n+7045C7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7045C9 Ext File Attributes   00000000 (0)\n+7045CD Local Header Offset   004135C9 (4273609)\n+7045D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7045D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70460F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704611   Length              0005 (5)\n+704613   Flags               01 (1) 'Modification'\n+704614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704618 CENTRAL HEADER #1192  02014B50 (33639248)\n+70461C Created Zip Spec      14 (20) '2.0'\n+70461D Created OS            00 (0) 'MS-DOS'\n+70461E Extract Zip Spec      14 (20) '2.0'\n+70461F Extract OS            00 (0) 'MS-DOS'\n+704620 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704622 Compression Method    0000 (0) 'Stored'\n+704624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704628 CRC                   70A19A06 (1889638918)\n+70462C Compressed Size       00000517 (1303)\n+704630 Uncompressed Size     00000517 (1303)\n+704634 Filename Length       0045 (69)\n+704636 Extra Length          0009 (9)\n+704638 Comment Length        0000 (0)\n+70463A Disk Start            0000 (0)\n+70463C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70463E Ext File Attributes   00000000 (0)\n+704642 Local Header Offset   00415B79 (4283257)\n+704646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70468B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70468D   Length              0005 (5)\n+70468F   Flags               01 (1) 'Modification'\n+704690   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704694 CENTRAL HEADER #1193  02014B50 (33639248)\n+704698 Created Zip Spec      14 (20) '2.0'\n+704699 Created OS            00 (0) 'MS-DOS'\n+70469A Extract Zip Spec      14 (20) '2.0'\n+70469B Extract OS            00 (0) 'MS-DOS'\n+70469C General Purpose Flag  0000 (0)\n+70469E Compression Method    0000 (0) 'Stored'\n+7046A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7046A4 CRC                   00000000 (0)\n+7046A8 Compressed Size       00000000 (0)\n+7046AC Uncompressed Size     00000000 (0)\n+7046B0 Filename Length       002A (42)\n+7046B2 Extra Length          0009 (9)\n+7046B4 Comment Length        0000 (0)\n+7046B6 Disk Start            0000 (0)\n+7046B8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7046BA Ext File Attributes   00000000 (0)\n+7046BE Local Header Offset   0041610C (4284684)\n+7046C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7046C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7046EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7046EE   Length              0005 (5)\n+7046F0   Flags               01 (1) 'Modification'\n+7046F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7046F5 CENTRAL HEADER #1194  02014B50 (33639248)\n+7046F9 Created Zip Spec      14 (20) '2.0'\n+7046FA Created OS            00 (0) 'MS-DOS'\n+7046FB Extract Zip Spec      14 (20) '2.0'\n+7046FC Extract OS            00 (0) 'MS-DOS'\n+7046FD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7046FF Compression Method    0000 (0) 'Stored'\n+704701 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704705 CRC                   4C9B97DB (1285265371)\n+704709 Compressed Size       00001DB7 (7607)\n+70470D Uncompressed Size     00001DB7 (7607)\n+704711 Filename Length       0046 (70)\n+704713 Extra Length          0009 (9)\n+704715 Comment Length        0000 (0)\n+704717 Disk Start            0000 (0)\n+704719 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70471B Ext File Attributes   00000000 (0)\n+70471F Local Header Offset   0041615D (4284765)\n+704723 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704723: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704769 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70476B   Length              0005 (5)\n+70476D   Flags               01 (1) 'Modification'\n+70476E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704772 CENTRAL HEADER #1195  02014B50 (33639248)\n+704776 Created Zip Spec      14 (20) '2.0'\n+704777 Created OS            00 (0) 'MS-DOS'\n+704778 Extract Zip Spec      14 (20) '2.0'\n+704779 Extract OS            00 (0) 'MS-DOS'\n+70477A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70477C Compression Method    0000 (0) 'Stored'\n+70477E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704782 CRC                   17A4831B (396657435)\n+704786 Compressed Size       0000064B (1611)\n+70478A Uncompressed Size     0000064B (1611)\n+70478E Filename Length       004D (77)\n+704790 Extra Length          0009 (9)\n+704792 Comment Length        0000 (0)\n+704794 Disk Start            0000 (0)\n+704796 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704798 Ext File Attributes   00000000 (0)\n+70479C Local Header Offset   00417F91 (4292497)\n+7047A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7047A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7047ED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7047EF   Length              0005 (5)\n+7047F1   Flags               01 (1) 'Modification'\n+7047F2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7047F6 CENTRAL HEADER #1196  02014B50 (33639248)\n+7047FA Created Zip Spec      14 (20) '2.0'\n+7047FB Created OS            00 (0) 'MS-DOS'\n+7047FC Extract Zip Spec      14 (20) '2.0'\n+7047FD Extract OS            00 (0) 'MS-DOS'\n+7047FE General Purpose Flag  0000 (0)\n+704800 Compression Method    0000 (0) 'Stored'\n+704802 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704806 CRC                   00000000 (0)\n+70480A Compressed Size       00000000 (0)\n+70480E Uncompressed Size     00000000 (0)\n+704812 Filename Length       0019 (25)\n+704814 Extra Length          0009 (9)\n+704816 Comment Length        0000 (0)\n+704818 Disk Start            0000 (0)\n+70481A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70481C Ext File Attributes   00000000 (0)\n+704820 Local Header Offset   00418660 (4294240)\n+704824 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704824: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70483D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70483F   Length              0005 (5)\n+704841   Flags               01 (1) 'Modification'\n+704842   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704846 CENTRAL HEADER #1197  02014B50 (33639248)\n+70484A Created Zip Spec      14 (20) '2.0'\n+70484B Created OS            00 (0) 'MS-DOS'\n+70484C Extract Zip Spec      14 (20) '2.0'\n+70484D Extract OS            00 (0) 'MS-DOS'\n+70484E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704850 Compression Method    0000 (0) 'Stored'\n+704852 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704856 CRC                   4E27066E (1311180398)\n+70485A Compressed Size       00000528 (1320)\n+70485E Uncompressed Size     00000528 (1320)\n+704862 Filename Length       0027 (39)\n+704864 Extra Length          0009 (9)\n+704866 Comment Length        0000 (0)\n+704868 Disk Start            0000 (0)\n+70486A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70486C Ext File Attributes   00000000 (0)\n+704870 Local Header Offset   004186A0 (4294304)\n+704874 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704874: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70489B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70489D   Length              0005 (5)\n+70489F   Flags               01 (1) 'Modification'\n+7048A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7048A4 CENTRAL HEADER #1198  02014B50 (33639248)\n+7048A8 Created Zip Spec      14 (20) '2.0'\n+7048A9 Created OS            00 (0) 'MS-DOS'\n+7048AA Extract Zip Spec      14 (20) '2.0'\n+7048AB Extract OS            00 (0) 'MS-DOS'\n+7048AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7048AE Compression Method    0000 (0) 'Stored'\n+7048B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7048B4 CRC                   3E4BD5A8 (1045157288)\n+7048B8 Compressed Size       000003AC (940)\n+7048BC Uncompressed Size     000003AC (940)\n+7048C0 Filename Length       002C (44)\n+7048C2 Extra Length          0009 (9)\n+7048C4 Comment Length        0000 (0)\n+7048C6 Disk Start            0000 (0)\n+7048C8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7048CA Ext File Attributes   00000000 (0)\n+7048CE Local Header Offset   00418C26 (4295718)\n+7048D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7048D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7048FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704900   Length              0005 (5)\n+704902   Flags               01 (1) 'Modification'\n+704903   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704907 CENTRAL HEADER #1199  02014B50 (33639248)\n+70490B Created Zip Spec      14 (20) '2.0'\n+70490C Created OS            00 (0) 'MS-DOS'\n+70490D Extract Zip Spec      14 (20) '2.0'\n+70490E Extract OS            00 (0) 'MS-DOS'\n+70490F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704911 Compression Method    0000 (0) 'Stored'\n+704913 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704917 CRC                   51FB7003 (1375432707)\n+70491B Compressed Size       0000044C (1100)\n+70491F Uncompressed Size     0000044C (1100)\n+704923 Filename Length       0025 (37)\n+704925 Extra Length          0009 (9)\n+704927 Comment Length        0000 (0)\n+704929 Disk Start            0000 (0)\n+70492B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70492D Ext File Attributes   00000000 (0)\n+704931 Local Header Offset   00419035 (4296757)\n+704935 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704935: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70495A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70495C   Length              0005 (5)\n+70495E   Flags               01 (1) 'Modification'\n+70495F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704963 CENTRAL HEADER #1200  02014B50 (33639248)\n+704967 Created Zip Spec      14 (20) '2.0'\n+704968 Created OS            00 (0) 'MS-DOS'\n+704969 Extract Zip Spec      14 (20) '2.0'\n+70496A Extract OS            00 (0) 'MS-DOS'\n+70496B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70496D Compression Method    0000 (0) 'Stored'\n+70496F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704973 CRC                   9DE5257E (2649040254)\n+704977 Compressed Size       000004ED (1261)\n+70497B Uncompressed Size     000004ED (1261)\n+70497F Filename Length       002C (44)\n+704981 Extra Length          0009 (9)\n+704983 Comment Length        0000 (0)\n+704985 Disk Start            0000 (0)\n+704987 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704989 Ext File Attributes   00000000 (0)\n+70498D Local Header Offset   004194DD (4297949)\n+704991 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704991: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7049BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7049BF   Length              0005 (5)\n+7049C1   Flags               01 (1) 'Modification'\n+7049C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7049C6 CENTRAL HEADER #1201  02014B50 (33639248)\n+7049CA Created Zip Spec      14 (20) '2.0'\n+7049CB Created OS            00 (0) 'MS-DOS'\n+7049CC Extract Zip Spec      14 (20) '2.0'\n+7049CD Extract OS            00 (0) 'MS-DOS'\n+7049CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7049D0 Compression Method    0000 (0) 'Stored'\n+7049D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7049D6 CRC                   78905E9C (2022727324)\n+7049DA Compressed Size       00000D44 (3396)\n+7049DE Uncompressed Size     00000D44 (3396)\n+7049E2 Filename Length       002C (44)\n+7049E4 Extra Length          0009 (9)\n+7049E6 Comment Length        0000 (0)\n+7049E8 Disk Start            0000 (0)\n+7049EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7049EC Ext File Attributes   00000000 (0)\n+7049F0 Local Header Offset   00419A2D (4299309)\n+7049F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7049F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704A20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704A22   Length              0005 (5)\n+704A24   Flags               01 (1) 'Modification'\n+704A25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704A29 CENTRAL HEADER #1202  02014B50 (33639248)\n+704A2D Created Zip Spec      14 (20) '2.0'\n+704A2E Created OS            00 (0) 'MS-DOS'\n+704A2F Extract Zip Spec      14 (20) '2.0'\n+704A30 Extract OS            00 (0) 'MS-DOS'\n+704A31 General Purpose Flag  0000 (0)\n+704A33 Compression Method    0000 (0) 'Stored'\n+704A35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704A39 CRC                   00000000 (0)\n+704A3D Compressed Size       00000000 (0)\n+704A41 Uncompressed Size     00000000 (0)\n+704A45 Filename Length       001F (31)\n+704A47 Extra Length          0009 (9)\n+704A49 Comment Length        0000 (0)\n+704A4B Disk Start            0000 (0)\n+704A4D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704A4F Ext File Attributes   00000000 (0)\n+704A53 Local Header Offset   0041A7D4 (4302804)\n+704A57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704A57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704A76 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704A78   Length              0005 (5)\n+704A7A   Flags               01 (1) 'Modification'\n+704A7B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704A7F CENTRAL HEADER #1203  02014B50 (33639248)\n+704A83 Created Zip Spec      14 (20) '2.0'\n+704A84 Created OS            00 (0) 'MS-DOS'\n+704A85 Extract Zip Spec      14 (20) '2.0'\n+704A86 Extract OS            00 (0) 'MS-DOS'\n+704A87 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704A89 Compression Method    0000 (0) 'Stored'\n+704A8B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704A8F CRC                   EA5FE743 (3932153667)\n+704A93 Compressed Size       00002351 (9041)\n+704A97 Uncompressed Size     00002351 (9041)\n+704A9B Filename Length       0030 (48)\n+704A9D Extra Length          0009 (9)\n+704A9F Comment Length        0000 (0)\n+704AA1 Disk Start            0000 (0)\n+704AA3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704AA5 Ext File Attributes   00000000 (0)\n+704AA9 Local Header Offset   0041A81A (4302874)\n+704AAD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704AAD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704ADD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704ADF   Length              0005 (5)\n+704AE1   Flags               01 (1) 'Modification'\n+704AE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704AE6 CENTRAL HEADER #1204  02014B50 (33639248)\n+704AEA Created Zip Spec      14 (20) '2.0'\n+704AEB Created OS            00 (0) 'MS-DOS'\n+704AEC Extract Zip Spec      14 (20) '2.0'\n+704AED Extract OS            00 (0) 'MS-DOS'\n+704AEE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704AF0 Compression Method    0000 (0) 'Stored'\n+704AF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704AF6 CRC                   4C68B52A (1281930538)\n+704AFA Compressed Size       00000B4C (2892)\n+704AFE Uncompressed Size     00000B4C (2892)\n+704B02 Filename Length       0037 (55)\n+704B04 Extra Length          0009 (9)\n+704B06 Comment Length        0000 (0)\n+704B08 Disk Start            0000 (0)\n+704B0A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704B0C Ext File Attributes   00000000 (0)\n+704B10 Local Header Offset   0041CBD2 (4312018)\n+704B14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704B14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704B4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704B4D   Length              0005 (5)\n+704B4F   Flags               01 (1) 'Modification'\n+704B50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704B54 CENTRAL HEADER #1205  02014B50 (33639248)\n+704B58 Created Zip Spec      14 (20) '2.0'\n+704B59 Created OS            00 (0) 'MS-DOS'\n+704B5A Extract Zip Spec      14 (20) '2.0'\n+704B5B Extract OS            00 (0) 'MS-DOS'\n+704B5C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704B5E Compression Method    0000 (0) 'Stored'\n+704B60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704B64 CRC                   23426219 (591553049)\n+704B68 Compressed Size       00002C53 (11347)\n+704B6C Uncompressed Size     00002C53 (11347)\n+704B70 Filename Length       0031 (49)\n+704B72 Extra Length          0009 (9)\n+704B74 Comment Length        0000 (0)\n+704B76 Disk Start            0000 (0)\n+704B78 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704B7A Ext File Attributes   00000000 (0)\n+704B7E Local Header Offset   0041D78C (4315020)\n+704B82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704B82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704BB3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704BB5   Length              0005 (5)\n+704BB7   Flags               01 (1) 'Modification'\n+704BB8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704BBC CENTRAL HEADER #1206  02014B50 (33639248)\n+704BC0 Created Zip Spec      14 (20) '2.0'\n+704BC1 Created OS            00 (0) 'MS-DOS'\n+704BC2 Extract Zip Spec      14 (20) '2.0'\n+704BC3 Extract OS            00 (0) 'MS-DOS'\n+704BC4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704BC6 Compression Method    0000 (0) 'Stored'\n+704BC8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704BCC CRC                   DAB7FE63 (3669491299)\n+704BD0 Compressed Size       00001734 (5940)\n+704BD4 Uncompressed Size     00001734 (5940)\n+704BD8 Filename Length       002E (46)\n+704BDA Extra Length          0009 (9)\n+704BDC Comment Length        0000 (0)\n+704BDE Disk Start            0000 (0)\n+704BE0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704BE2 Ext File Attributes   00000000 (0)\n+704BE6 Local Header Offset   00420447 (4326471)\n+704BEA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704BEA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704C18 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704C1A   Length              0005 (5)\n+704C1C   Flags               01 (1) 'Modification'\n+704C1D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704C21 CENTRAL HEADER #1207  02014B50 (33639248)\n+704C25 Created Zip Spec      14 (20) '2.0'\n+704C26 Created OS            00 (0) 'MS-DOS'\n+704C27 Extract Zip Spec      14 (20) '2.0'\n+704C28 Extract OS            00 (0) 'MS-DOS'\n+704C29 General Purpose Flag  0000 (0)\n+704C2B Compression Method    0000 (0) 'Stored'\n+704C2D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704C31 CRC                   00000000 (0)\n+704C35 Compressed Size       00000000 (0)\n+704C39 Uncompressed Size     00000000 (0)\n+704C3D Filename Length       0021 (33)\n+704C3F Extra Length          0009 (9)\n+704C41 Comment Length        0000 (0)\n+704C43 Disk Start            0000 (0)\n+704C45 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704C47 Ext File Attributes   00000000 (0)\n+704C4B Local Header Offset   00421BE0 (4332512)\n+704C4F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704C4F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704C70 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704C72   Length              0005 (5)\n+704C74   Flags               01 (1) 'Modification'\n+704C75   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704C79 CENTRAL HEADER #1208  02014B50 (33639248)\n+704C7D Created Zip Spec      14 (20) '2.0'\n+704C7E Created OS            00 (0) 'MS-DOS'\n+704C7F Extract Zip Spec      14 (20) '2.0'\n+704C80 Extract OS            00 (0) 'MS-DOS'\n+704C81 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704C83 Compression Method    0000 (0) 'Stored'\n+704C85 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704C89 CRC                   FA4C7A14 (4199315988)\n+704C8D Compressed Size       00001336 (4918)\n+704C91 Uncompressed Size     00001336 (4918)\n+704C95 Filename Length       003C (60)\n+704C97 Extra Length          0009 (9)\n+704C99 Comment Length        0000 (0)\n+704C9B Disk Start            0000 (0)\n+704C9D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704C9F Ext File Attributes   00000000 (0)\n+704CA3 Local Header Offset   00421C28 (4332584)\n+704CA7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704CA7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704CE3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704CE5   Length              0005 (5)\n+704CE7   Flags               01 (1) 'Modification'\n+704CE8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704CEC CENTRAL HEADER #1209  02014B50 (33639248)\n+704CF0 Created Zip Spec      14 (20) '2.0'\n+704CF1 Created OS            00 (0) 'MS-DOS'\n+704CF2 Extract Zip Spec      14 (20) '2.0'\n+704CF3 Extract OS            00 (0) 'MS-DOS'\n+704CF4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704CF6 Compression Method    0000 (0) 'Stored'\n+704CF8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704CFC CRC                   0F745EE4 (259284708)\n+704D00 Compressed Size       0000047D (1149)\n+704D04 Uncompressed Size     0000047D (1149)\n+704D08 Filename Length       003C (60)\n+704D0A Extra Length          0009 (9)\n+704D0C Comment Length        0000 (0)\n+704D0E Disk Start            0000 (0)\n+704D10 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704D12 Ext File Attributes   00000000 (0)\n+704D16 Local Header Offset   00422FD1 (4337617)\n+704D1A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704D1A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704D56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704D58   Length              0005 (5)\n+704D5A   Flags               01 (1) 'Modification'\n+704D5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704D5F CENTRAL HEADER #1210  02014B50 (33639248)\n+704D63 Created Zip Spec      14 (20) '2.0'\n+704D64 Created OS            00 (0) 'MS-DOS'\n+704D65 Extract Zip Spec      14 (20) '2.0'\n+704D66 Extract OS            00 (0) 'MS-DOS'\n+704D67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704D69 Compression Method    0000 (0) 'Stored'\n+704D6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704D6F CRC                   10FA9E81 (284860033)\n+704D73 Compressed Size       000021D4 (8660)\n+704D77 Uncompressed Size     000021D4 (8660)\n+704D7B Filename Length       0033 (51)\n+704D7D Extra Length          0009 (9)\n+704D7F Comment Length        0000 (0)\n+704D81 Disk Start            0000 (0)\n+704D83 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704D85 Ext File Attributes   00000000 (0)\n+704D89 Local Header Offset   004234C1 (4338881)\n+704D8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704D8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704DC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704DC2   Length              0005 (5)\n+704DC4   Flags               01 (1) 'Modification'\n+704DC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704DC9 CENTRAL HEADER #1211  02014B50 (33639248)\n+704DCD Created Zip Spec      14 (20) '2.0'\n+704DCE Created OS            00 (0) 'MS-DOS'\n+704DCF Extract Zip Spec      14 (20) '2.0'\n+704DD0 Extract OS            00 (0) 'MS-DOS'\n+704DD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704DD3 Compression Method    0000 (0) 'Stored'\n+704DD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704DD9 CRC                   9E6062D0 (2657116880)\n+704DDD Compressed Size       0000047D (1149)\n+704DE1 Uncompressed Size     0000047D (1149)\n+704DE5 Filename Length       003C (60)\n+704DE7 Extra Length          0009 (9)\n+704DE9 Comment Length        0000 (0)\n+704DEB Disk Start            0000 (0)\n+704DED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704DEF Ext File Attributes   00000000 (0)\n+704DF3 Local Header Offset   004256FF (4347647)\n+704DF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704DF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704E33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704E35   Length              0005 (5)\n+704E37   Flags               01 (1) 'Modification'\n+704E38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704E3C CENTRAL HEADER #1212  02014B50 (33639248)\n+704E40 Created Zip Spec      14 (20) '2.0'\n+704E41 Created OS            00 (0) 'MS-DOS'\n+704E42 Extract Zip Spec      14 (20) '2.0'\n+704E43 Extract OS            00 (0) 'MS-DOS'\n+704E44 General Purpose Flag  0000 (0)\n+704E46 Compression Method    0000 (0) 'Stored'\n+704E48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704E4C CRC                   00000000 (0)\n+704E50 Compressed Size       00000000 (0)\n+704E54 Uncompressed Size     00000000 (0)\n+704E58 Filename Length       0015 (21)\n+704E5A Extra Length          0009 (9)\n+704E5C Comment Length        0000 (0)\n+704E5E Disk Start            0000 (0)\n+704E60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704E62 Ext File Attributes   00000000 (0)\n+704E66 Local Header Offset   00425BEF (4348911)\n+704E6A Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704E6A: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704E7F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704E81   Length              0005 (5)\n+704E83   Flags               01 (1) 'Modification'\n+704E84   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704E88 CENTRAL HEADER #1213  02014B50 (33639248)\n+704E8C Created Zip Spec      14 (20) '2.0'\n+704E8D Created OS            00 (0) 'MS-DOS'\n+704E8E Extract Zip Spec      14 (20) '2.0'\n+704E8F Extract OS            00 (0) 'MS-DOS'\n+704E90 General Purpose Flag  0000 (0)\n+704E92 Compression Method    0000 (0) 'Stored'\n+704E94 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704E98 CRC                   00000000 (0)\n+704E9C Compressed Size       00000000 (0)\n+704EA0 Uncompressed Size     00000000 (0)\n+704EA4 Filename Length       001D (29)\n+704EA6 Extra Length          0009 (9)\n+704EA8 Comment Length        0000 (0)\n+704EAA Disk Start            0000 (0)\n+704EAC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704EAE Ext File Attributes   00000000 (0)\n+704EB2 Local Header Offset   00425C2B (4348971)\n+704EB6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704EB6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704ED3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704ED5   Length              0005 (5)\n+704ED7   Flags               01 (1) 'Modification'\n+704ED8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704EDC CENTRAL HEADER #1214  02014B50 (33639248)\n+704EE0 Created Zip Spec      14 (20) '2.0'\n+704EE1 Created OS            00 (0) 'MS-DOS'\n+704EE2 Extract Zip Spec      14 (20) '2.0'\n+704EE3 Extract OS            00 (0) 'MS-DOS'\n+704EE4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704EE6 Compression Method    0000 (0) 'Stored'\n+704EE8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704EEC CRC                   FE44AB9A (4265913242)\n+704EF0 Compressed Size       000003F7 (1015)\n+704EF4 Uncompressed Size     000003F7 (1015)\n+704EF8 Filename Length       002D (45)\n+704EFA Extra Length          0009 (9)\n+704EFC Comment Length        0000 (0)\n+704EFE Disk Start            0000 (0)\n+704F00 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704F02 Ext File Attributes   00000000 (0)\n+704F06 Local Header Offset   00425C6F (4349039)\n+704F0A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704F0A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704F37 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704F39   Length              0005 (5)\n+704F3B   Flags               01 (1) 'Modification'\n+704F3C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704F40 CENTRAL HEADER #1215  02014B50 (33639248)\n+704F44 Created Zip Spec      14 (20) '2.0'\n+704F45 Created OS            00 (0) 'MS-DOS'\n+704F46 Extract Zip Spec      14 (20) '2.0'\n+704F47 Extract OS            00 (0) 'MS-DOS'\n+704F48 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704F4A Compression Method    0000 (0) 'Stored'\n+704F4C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704F50 CRC                   C783A617 (3347293719)\n+704F54 Compressed Size       00000880 (2176)\n+704F58 Uncompressed Size     00000880 (2176)\n+704F5C Filename Length       0030 (48)\n+704F5E Extra Length          0009 (9)\n+704F60 Comment Length        0000 (0)\n+704F62 Disk Start            0000 (0)\n+704F64 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704F66 Ext File Attributes   00000000 (0)\n+704F6A Local Header Offset   004260CA (4350154)\n+704F6E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704F6E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+704F9E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+704FA0   Length              0005 (5)\n+704FA2   Flags               01 (1) 'Modification'\n+704FA3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+704FA7 CENTRAL HEADER #1216  02014B50 (33639248)\n+704FAB Created Zip Spec      14 (20) '2.0'\n+704FAC Created OS            00 (0) 'MS-DOS'\n+704FAD Extract Zip Spec      14 (20) '2.0'\n+704FAE Extract OS            00 (0) 'MS-DOS'\n+704FAF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+704FB1 Compression Method    0000 (0) 'Stored'\n+704FB3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+704FB7 CRC                   F2C44151 (4072948049)\n+704FBB Compressed Size       000004A6 (1190)\n+704FBF Uncompressed Size     000004A6 (1190)\n+704FC3 Filename Length       0037 (55)\n+704FC5 Extra Length          0009 (9)\n+704FC7 Comment Length        0000 (0)\n+704FC9 Disk Start            0000 (0)\n+704FCB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+704FCD Ext File Attributes   00000000 (0)\n+704FD1 Local Header Offset   004269B1 (4352433)\n+704FD5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x704FD5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70500C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70500E   Length              0005 (5)\n+705010   Flags               01 (1) 'Modification'\n+705011   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705015 CENTRAL HEADER #1217  02014B50 (33639248)\n+705019 Created Zip Spec      14 (20) '2.0'\n+70501A Created OS            00 (0) 'MS-DOS'\n+70501B Extract Zip Spec      14 (20) '2.0'\n+70501C Extract OS            00 (0) 'MS-DOS'\n+70501D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70501F Compression Method    0000 (0) 'Stored'\n+705021 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705025 CRC                   D40E78F4 (3557718260)\n+705029 Compressed Size       000004A8 (1192)\n+70502D Uncompressed Size     000004A8 (1192)\n+705031 Filename Length       0031 (49)\n+705033 Extra Length          0009 (9)\n+705035 Comment Length        0000 (0)\n+705037 Disk Start            0000 (0)\n+705039 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70503B Ext File Attributes   00000000 (0)\n+70503F Local Header Offset   00426EC5 (4353733)\n+705043 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705043: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705074 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705076   Length              0005 (5)\n+705078   Flags               01 (1) 'Modification'\n+705079   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70507D CENTRAL HEADER #1218  02014B50 (33639248)\n+705081 Created Zip Spec      14 (20) '2.0'\n+705082 Created OS            00 (0) 'MS-DOS'\n+705083 Extract Zip Spec      14 (20) '2.0'\n+705084 Extract OS            00 (0) 'MS-DOS'\n+705085 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705087 Compression Method    0000 (0) 'Stored'\n+705089 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70508D CRC                   2A63E263 (711189091)\n+705091 Compressed Size       0000061D (1565)\n+705095 Uncompressed Size     0000061D (1565)\n+705099 Filename Length       0038 (56)\n+70509B Extra Length          0009 (9)\n+70509D Comment Length        0000 (0)\n+70509F Disk Start            0000 (0)\n+7050A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7050A3 Ext File Attributes   00000000 (0)\n+7050A7 Local Header Offset   004273D5 (4355029)\n+7050AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7050AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7050E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7050E5   Length              0005 (5)\n+7050E7   Flags               01 (1) 'Modification'\n+7050E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7050EC CENTRAL HEADER #1219  02014B50 (33639248)\n+7050F0 Created Zip Spec      14 (20) '2.0'\n+7050F1 Created OS            00 (0) 'MS-DOS'\n+7050F2 Extract Zip Spec      14 (20) '2.0'\n+7050F3 Extract OS            00 (0) 'MS-DOS'\n+7050F4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7050F6 Compression Method    0000 (0) 'Stored'\n+7050F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7050FC CRC                   D473D979 (3564362105)\n+705100 Compressed Size       00000400 (1024)\n+705104 Uncompressed Size     00000400 (1024)\n+705108 Filename Length       0038 (56)\n+70510A Extra Length          0009 (9)\n+70510C Comment Length        0000 (0)\n+70510E Disk Start            0000 (0)\n+705110 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705112 Ext File Attributes   00000000 (0)\n+705116 Local Header Offset   00427A61 (4356705)\n+70511A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70511A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705152 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705154   Length              0005 (5)\n+705156   Flags               01 (1) 'Modification'\n+705157   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70515B CENTRAL HEADER #1220  02014B50 (33639248)\n+70515F Created Zip Spec      14 (20) '2.0'\n+705160 Created OS            00 (0) 'MS-DOS'\n+705161 Extract Zip Spec      14 (20) '2.0'\n+705162 Extract OS            00 (0) 'MS-DOS'\n+705163 General Purpose Flag  0000 (0)\n+705165 Compression Method    0000 (0) 'Stored'\n+705167 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70516B CRC                   00000000 (0)\n+70516F Compressed Size       00000000 (0)\n+705173 Uncompressed Size     00000000 (0)\n+705177 Filename Length       0028 (40)\n+705179 Extra Length          0009 (9)\n+70517B Comment Length        0000 (0)\n+70517D Disk Start            0000 (0)\n+70517F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705181 Ext File Attributes   00000000 (0)\n+705185 Local Header Offset   00427ED0 (4357840)\n+705189 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705189: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7051B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7051B3   Length              0005 (5)\n+7051B5   Flags               01 (1) 'Modification'\n+7051B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7051BA CENTRAL HEADER #1221  02014B50 (33639248)\n+7051BE Created Zip Spec      14 (20) '2.0'\n+7051BF Created OS            00 (0) 'MS-DOS'\n+7051C0 Extract Zip Spec      14 (20) '2.0'\n+7051C1 Extract OS            00 (0) 'MS-DOS'\n+7051C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7051C4 Compression Method    0000 (0) 'Stored'\n+7051C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7051CA CRC                   45D6532E (1171673902)\n+7051CE Compressed Size       00000647 (1607)\n+7051D2 Uncompressed Size     00000647 (1607)\n+7051D6 Filename Length       0030 (48)\n+7051D8 Extra Length          0009 (9)\n+7051DA Comment Length        0000 (0)\n+7051DC Disk Start            0000 (0)\n+7051DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7051E0 Ext File Attributes   00000000 (0)\n+7051E4 Local Header Offset   00427F1F (4357919)\n+7051E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7051E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705218 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70521A   Length              0005 (5)\n+70521C   Flags               01 (1) 'Modification'\n+70521D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705221 CENTRAL HEADER #1222  02014B50 (33639248)\n+705225 Created Zip Spec      14 (20) '2.0'\n+705226 Created OS            00 (0) 'MS-DOS'\n+705227 Extract Zip Spec      14 (20) '2.0'\n+705228 Extract OS            00 (0) 'MS-DOS'\n+705229 General Purpose Flag  0000 (0)\n+70522B Compression Method    0000 (0) 'Stored'\n+70522D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705231 CRC                   00000000 (0)\n+705235 Compressed Size       00000000 (0)\n+705239 Uncompressed Size     00000000 (0)\n+70523D Filename Length       0025 (37)\n+70523F Extra Length          0009 (9)\n+705241 Comment Length        0000 (0)\n+705243 Disk Start            0000 (0)\n+705245 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705247 Ext File Attributes   00000000 (0)\n+70524B Local Header Offset   004285CD (4359629)\n+70524F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70524F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705274 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705276   Length              0005 (5)\n+705278   Flags               01 (1) 'Modification'\n+705279   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70527D CENTRAL HEADER #1223  02014B50 (33639248)\n+705281 Created Zip Spec      14 (20) '2.0'\n+705282 Created OS            00 (0) 'MS-DOS'\n+705283 Extract Zip Spec      14 (20) '2.0'\n+705284 Extract OS            00 (0) 'MS-DOS'\n+705285 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705287 Compression Method    0000 (0) 'Stored'\n+705289 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70528D CRC                   D812ECFA (3625118970)\n+705291 Compressed Size       00000F93 (3987)\n+705295 Uncompressed Size     00000F93 (3987)\n+705299 Filename Length       003C (60)\n+70529B Extra Length          0009 (9)\n+70529D Comment Length        0000 (0)\n+70529F Disk Start            0000 (0)\n+7052A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7052A3 Ext File Attributes   00000000 (0)\n+7052A7 Local Header Offset   00428619 (4359705)\n+7052AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7052AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7052E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7052E9   Length              0005 (5)\n+7052EB   Flags               01 (1) 'Modification'\n+7052EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7052F0 CENTRAL HEADER #1224  02014B50 (33639248)\n+7052F4 Created Zip Spec      14 (20) '2.0'\n+7052F5 Created OS            00 (0) 'MS-DOS'\n+7052F6 Extract Zip Spec      14 (20) '2.0'\n+7052F7 Extract OS            00 (0) 'MS-DOS'\n+7052F8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7052FA Compression Method    0000 (0) 'Stored'\n+7052FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705300 CRC                   E1096065 (3775488101)\n+705304 Compressed Size       000006BD (1725)\n+705308 Uncompressed Size     000006BD (1725)\n+70530C Filename Length       003E (62)\n+70530E Extra Length          0009 (9)\n+705310 Comment Length        0000 (0)\n+705312 Disk Start            0000 (0)\n+705314 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705316 Ext File Attributes   00000000 (0)\n+70531A Local Header Offset   0042961F (4363807)\n+70531E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70531E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70535C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70535E   Length              0005 (5)\n+705360   Flags               01 (1) 'Modification'\n+705361   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705365 CENTRAL HEADER #1225  02014B50 (33639248)\n+705369 Created Zip Spec      14 (20) '2.0'\n+70536A Created OS            00 (0) 'MS-DOS'\n+70536B Extract Zip Spec      14 (20) '2.0'\n+70536C Extract OS            00 (0) 'MS-DOS'\n+70536D General Purpose Flag  0000 (0)\n+70536F Compression Method    0000 (0) 'Stored'\n+705371 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705375 CRC                   00000000 (0)\n+705379 Compressed Size       00000000 (0)\n+70537D Uncompressed Size     00000000 (0)\n+705381 Filename Length       0022 (34)\n+705383 Extra Length          0009 (9)\n+705385 Comment Length        0000 (0)\n+705387 Disk Start            0000 (0)\n+705389 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70538B Ext File Attributes   00000000 (0)\n+70538F Local Header Offset   00429D51 (4365649)\n+705393 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705393: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7053B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7053B7   Length              0005 (5)\n+7053B9   Flags               01 (1) 'Modification'\n+7053BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7053BE CENTRAL HEADER #1226  02014B50 (33639248)\n+7053C2 Created Zip Spec      14 (20) '2.0'\n+7053C3 Created OS            00 (0) 'MS-DOS'\n+7053C4 Extract Zip Spec      14 (20) '2.0'\n+7053C5 Extract OS            00 (0) 'MS-DOS'\n+7053C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7053C8 Compression Method    0000 (0) 'Stored'\n+7053CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7053CE CRC                   86EEED41 (2263805249)\n+7053D2 Compressed Size       00000E84 (3716)\n+7053D6 Uncompressed Size     00000E84 (3716)\n+7053DA Filename Length       002B (43)\n+7053DC Extra Length          0009 (9)\n+7053DE Comment Length        0000 (0)\n+7053E0 Disk Start            0000 (0)\n+7053E2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7053E4 Ext File Attributes   00000000 (0)\n+7053E8 Local Header Offset   00429D9A (4365722)\n+7053EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7053EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705417 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705419   Length              0005 (5)\n+70541B   Flags               01 (1) 'Modification'\n+70541C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705420 CENTRAL HEADER #1227  02014B50 (33639248)\n+705424 Created Zip Spec      14 (20) '2.0'\n+705425 Created OS            00 (0) 'MS-DOS'\n+705426 Extract Zip Spec      14 (20) '2.0'\n+705427 Extract OS            00 (0) 'MS-DOS'\n+705428 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70542A Compression Method    0000 (0) 'Stored'\n+70542C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705430 CRC                   E32E7BA0 (3811474336)\n+705434 Compressed Size       00000D90 (3472)\n+705438 Uncompressed Size     00000D90 (3472)\n+70543C Filename Length       0029 (41)\n+70543E Extra Length          0009 (9)\n+705440 Comment Length        0000 (0)\n+705442 Disk Start            0000 (0)\n+705444 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705446 Ext File Attributes   00000000 (0)\n+70544A Local Header Offset   0042AC80 (4369536)\n+70544E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70544E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705477 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705479   Length              0005 (5)\n+70547B   Flags               01 (1) 'Modification'\n+70547C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705480 CENTRAL HEADER #1228  02014B50 (33639248)\n+705484 Created Zip Spec      14 (20) '2.0'\n+705485 Created OS            00 (0) 'MS-DOS'\n+705486 Extract Zip Spec      14 (20) '2.0'\n+705487 Extract OS            00 (0) 'MS-DOS'\n+705488 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70548A Compression Method    0000 (0) 'Stored'\n+70548C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705490 CRC                   C56E8E67 (3312356967)\n+705494 Compressed Size       00000D52 (3410)\n+705498 Uncompressed Size     00000D52 (3410)\n+70549C Filename Length       002E (46)\n+70549E Extra Length          0009 (9)\n+7054A0 Comment Length        0000 (0)\n+7054A2 Disk Start            0000 (0)\n+7054A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7054A6 Ext File Attributes   00000000 (0)\n+7054AA Local Header Offset   0042BA70 (4373104)\n+7054AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7054AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7054DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7054DE   Length              0005 (5)\n+7054E0   Flags               01 (1) 'Modification'\n+7054E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7054E5 CENTRAL HEADER #1229  02014B50 (33639248)\n+7054E9 Created Zip Spec      14 (20) '2.0'\n+7054EA Created OS            00 (0) 'MS-DOS'\n+7054EB Extract Zip Spec      14 (20) '2.0'\n+7054EC Extract OS            00 (0) 'MS-DOS'\n+7054ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7054EF Compression Method    0000 (0) 'Stored'\n+7054F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7054F5 CRC                   A95B3402 (2841326594)\n+7054F9 Compressed Size       00000D85 (3461)\n+7054FD Uncompressed Size     00000D85 (3461)\n+705501 Filename Length       002D (45)\n+705503 Extra Length          0009 (9)\n+705505 Comment Length        0000 (0)\n+705507 Disk Start            0000 (0)\n+705509 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70550B Ext File Attributes   00000000 (0)\n+70550F Local Header Offset   0042C827 (4376615)\n+705513 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705513: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705540 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705542   Length              0005 (5)\n+705544   Flags               01 (1) 'Modification'\n+705545   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705549 CENTRAL HEADER #1230  02014B50 (33639248)\n+70554D Created Zip Spec      14 (20) '2.0'\n+70554E Created OS            00 (0) 'MS-DOS'\n+70554F Extract Zip Spec      14 (20) '2.0'\n+705550 Extract OS            00 (0) 'MS-DOS'\n+705551 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705553 Compression Method    0000 (0) 'Stored'\n+705555 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705559 CRC                   E56C2CA8 (3849071784)\n+70555D Compressed Size       00000B6F (2927)\n+705561 Uncompressed Size     00000B6F (2927)\n+705565 Filename Length       0036 (54)\n+705567 Extra Length          0009 (9)\n+705569 Comment Length        0000 (0)\n+70556B Disk Start            0000 (0)\n+70556D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70556F Ext File Attributes   00000000 (0)\n+705573 Local Header Offset   0042D610 (4380176)\n+705577 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705577: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7055AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7055AF   Length              0005 (5)\n+7055B1   Flags               01 (1) 'Modification'\n+7055B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7055B6 CENTRAL HEADER #1231  02014B50 (33639248)\n+7055BA Created Zip Spec      14 (20) '2.0'\n+7055BB Created OS            00 (0) 'MS-DOS'\n+7055BC Extract Zip Spec      14 (20) '2.0'\n+7055BD Extract OS            00 (0) 'MS-DOS'\n+7055BE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7055C0 Compression Method    0000 (0) 'Stored'\n+7055C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7055C6 CRC                   AADA64B2 (2866439346)\n+7055CA Compressed Size       00000519 (1305)\n+7055CE Uncompressed Size     00000519 (1305)\n+7055D2 Filename Length       002B (43)\n+7055D4 Extra Length          0009 (9)\n+7055D6 Comment Length        0000 (0)\n+7055D8 Disk Start            0000 (0)\n+7055DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7055DC Ext File Attributes   00000000 (0)\n+7055E0 Local Header Offset   0042E1EC (4383212)\n+7055E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7055E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70560F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705611   Length              0005 (5)\n+705613   Flags               01 (1) 'Modification'\n+705614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705618 CENTRAL HEADER #1232  02014B50 (33639248)\n+70561C Created Zip Spec      14 (20) '2.0'\n+70561D Created OS            00 (0) 'MS-DOS'\n+70561E Extract Zip Spec      14 (20) '2.0'\n+70561F Extract OS            00 (0) 'MS-DOS'\n+705620 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705622 Compression Method    0000 (0) 'Stored'\n+705624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705628 CRC                   DC712B5A (3698404186)\n+70562C Compressed Size       000010E3 (4323)\n+705630 Uncompressed Size     000010E3 (4323)\n+705634 Filename Length       002C (44)\n+705636 Extra Length          0009 (9)\n+705638 Comment Length        0000 (0)\n+70563A Disk Start            0000 (0)\n+70563C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70563E Ext File Attributes   00000000 (0)\n+705642 Local Header Offset   0042E767 (4384615)\n+705646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705672 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705674   Length              0005 (5)\n+705676   Flags               01 (1) 'Modification'\n+705677   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70567B CENTRAL HEADER #1233  02014B50 (33639248)\n+70567F Created Zip Spec      14 (20) '2.0'\n+705680 Created OS            00 (0) 'MS-DOS'\n+705681 Extract Zip Spec      14 (20) '2.0'\n+705682 Extract OS            00 (0) 'MS-DOS'\n+705683 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705685 Compression Method    0000 (0) 'Stored'\n+705687 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70568B CRC                   1F2281E7 (522355175)\n+70568F Compressed Size       00000625 (1573)\n+705693 Uncompressed Size     00000625 (1573)\n+705697 Filename Length       002E (46)\n+705699 Extra Length          0009 (9)\n+70569B Comment Length        0000 (0)\n+70569D Disk Start            0000 (0)\n+70569F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7056A1 Ext File Attributes   00000000 (0)\n+7056A5 Local Header Offset   0042F8AD (4389037)\n+7056A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7056A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7056D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7056D9   Length              0005 (5)\n+7056DB   Flags               01 (1) 'Modification'\n+7056DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7056E0 CENTRAL HEADER #1234  02014B50 (33639248)\n+7056E4 Created Zip Spec      14 (20) '2.0'\n+7056E5 Created OS            00 (0) 'MS-DOS'\n+7056E6 Extract Zip Spec      14 (20) '2.0'\n+7056E7 Extract OS            00 (0) 'MS-DOS'\n+7056E8 General Purpose Flag  0000 (0)\n+7056EA Compression Method    0000 (0) 'Stored'\n+7056EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7056F0 CRC                   00000000 (0)\n+7056F4 Compressed Size       00000000 (0)\n+7056F8 Uncompressed Size     00000000 (0)\n+7056FC Filename Length       0022 (34)\n+7056FE Extra Length          0009 (9)\n+705700 Comment Length        0000 (0)\n+705702 Disk Start            0000 (0)\n+705704 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705706 Ext File Attributes   00000000 (0)\n+70570A Local Header Offset   0042FF37 (4390711)\n+70570E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70570E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705730 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705732   Length              0005 (5)\n+705734   Flags               01 (1) 'Modification'\n+705735   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705739 CENTRAL HEADER #1235  02014B50 (33639248)\n+70573D Created Zip Spec      14 (20) '2.0'\n+70573E Created OS            00 (0) 'MS-DOS'\n+70573F Extract Zip Spec      14 (20) '2.0'\n+705740 Extract OS            00 (0) 'MS-DOS'\n+705741 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705743 Compression Method    0000 (0) 'Stored'\n+705745 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705749 CRC                   0E9B786A (245069930)\n+70574D Compressed Size       000008D3 (2259)\n+705751 Uncompressed Size     000008D3 (2259)\n+705755 Filename Length       0034 (52)\n+705757 Extra Length          0009 (9)\n+705759 Comment Length        0000 (0)\n+70575B Disk Start            0000 (0)\n+70575D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70575F Ext File Attributes   00000000 (0)\n+705763 Local Header Offset   0042FF80 (4390784)\n+705767 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705767: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70579B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70579D   Length              0005 (5)\n+70579F   Flags               01 (1) 'Modification'\n+7057A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7057A4 CENTRAL HEADER #1236  02014B50 (33639248)\n+7057A8 Created Zip Spec      14 (20) '2.0'\n+7057A9 Created OS            00 (0) 'MS-DOS'\n+7057AA Extract Zip Spec      14 (20) '2.0'\n+7057AB Extract OS            00 (0) 'MS-DOS'\n+7057AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7057AE Compression Method    0000 (0) 'Stored'\n+7057B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7057B4 CRC                   966E868C (2523825804)\n+7057B8 Compressed Size       00000ADB (2779)\n+7057BC Uncompressed Size     00000ADB (2779)\n+7057C0 Filename Length       0038 (56)\n+7057C2 Extra Length          0009 (9)\n+7057C4 Comment Length        0000 (0)\n+7057C6 Disk Start            0000 (0)\n+7057C8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7057CA Ext File Attributes   00000000 (0)\n+7057CE Local Header Offset   004308BE (4393150)\n+7057D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7057D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70580A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70580C   Length              0005 (5)\n+70580E   Flags               01 (1) 'Modification'\n+70580F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705813 CENTRAL HEADER #1237  02014B50 (33639248)\n+705817 Created Zip Spec      14 (20) '2.0'\n+705818 Created OS            00 (0) 'MS-DOS'\n+705819 Extract Zip Spec      14 (20) '2.0'\n+70581A Extract OS            00 (0) 'MS-DOS'\n+70581B General Purpose Flag  0000 (0)\n+70581D Compression Method    0000 (0) 'Stored'\n+70581F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705823 CRC                   00000000 (0)\n+705827 Compressed Size       00000000 (0)\n+70582B Uncompressed Size     00000000 (0)\n+70582F Filename Length       001C (28)\n+705831 Extra Length          0009 (9)\n+705833 Comment Length        0000 (0)\n+705835 Disk Start            0000 (0)\n+705837 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705839 Ext File Attributes   00000000 (0)\n+70583D Local Header Offset   00431408 (4396040)\n+705841 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705841: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70585D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70585F   Length              0005 (5)\n+705861   Flags               01 (1) 'Modification'\n+705862   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705866 CENTRAL HEADER #1238  02014B50 (33639248)\n+70586A Created Zip Spec      14 (20) '2.0'\n+70586B Created OS            00 (0) 'MS-DOS'\n+70586C Extract Zip Spec      14 (20) '2.0'\n+70586D Extract OS            00 (0) 'MS-DOS'\n+70586E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705870 Compression Method    0000 (0) 'Stored'\n+705872 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705876 CRC                   93C23403 (2478978051)\n+70587A Compressed Size       000003DE (990)\n+70587E Uncompressed Size     000003DE (990)\n+705882 Filename Length       002D (45)\n+705884 Extra Length          0009 (9)\n+705886 Comment Length        0000 (0)\n+705888 Disk Start            0000 (0)\n+70588A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70588C Ext File Attributes   00000000 (0)\n+705890 Local Header Offset   0043144B (4396107)\n+705894 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705894: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7058C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7058C3   Length              0005 (5)\n+7058C5   Flags               01 (1) 'Modification'\n+7058C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7058CA CENTRAL HEADER #1239  02014B50 (33639248)\n+7058CE Created Zip Spec      14 (20) '2.0'\n+7058CF Created OS            00 (0) 'MS-DOS'\n+7058D0 Extract Zip Spec      14 (20) '2.0'\n+7058D1 Extract OS            00 (0) 'MS-DOS'\n+7058D2 General Purpose Flag  0000 (0)\n+7058D4 Compression Method    0000 (0) 'Stored'\n+7058D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7058DA CRC                   00000000 (0)\n+7058DE Compressed Size       00000000 (0)\n+7058E2 Uncompressed Size     00000000 (0)\n+7058E6 Filename Length       001C (28)\n+7058E8 Extra Length          0009 (9)\n+7058EA Comment Length        0000 (0)\n+7058EC Disk Start            0000 (0)\n+7058EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7058F0 Ext File Attributes   00000000 (0)\n+7058F4 Local Header Offset   0043188D (4397197)\n+7058F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7058F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705914 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705916   Length              0005 (5)\n+705918   Flags               01 (1) 'Modification'\n+705919   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70591D CENTRAL HEADER #1240  02014B50 (33639248)\n+705921 Created Zip Spec      14 (20) '2.0'\n+705922 Created OS            00 (0) 'MS-DOS'\n+705923 Extract Zip Spec      14 (20) '2.0'\n+705924 Extract OS            00 (0) 'MS-DOS'\n+705925 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705927 Compression Method    0000 (0) 'Stored'\n+705929 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70592D CRC                   4EEFA113 (1324327187)\n+705931 Compressed Size       00000B51 (2897)\n+705935 Uncompressed Size     00000B51 (2897)\n+705939 Filename Length       0034 (52)\n+70593B Extra Length          0009 (9)\n+70593D Comment Length        0000 (0)\n+70593F Disk Start            0000 (0)\n+705941 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705943 Ext File Attributes   00000000 (0)\n+705947 Local Header Offset   004318D0 (4397264)\n+70594B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70594B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70597F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705981   Length              0005 (5)\n+705983   Flags               01 (1) 'Modification'\n+705984   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705988 CENTRAL HEADER #1241  02014B50 (33639248)\n+70598C Created Zip Spec      14 (20) '2.0'\n+70598D Created OS            00 (0) 'MS-DOS'\n+70598E Extract Zip Spec      14 (20) '2.0'\n+70598F Extract OS            00 (0) 'MS-DOS'\n+705990 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705992 Compression Method    0000 (0) 'Stored'\n+705994 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705998 CRC                   9CF5D1EF (2633355759)\n+70599C Compressed Size       00001B08 (6920)\n+7059A0 Uncompressed Size     00001B08 (6920)\n+7059A4 Filename Length       0033 (51)\n+7059A6 Extra Length          0009 (9)\n+7059A8 Comment Length        0000 (0)\n+7059AA Disk Start            0000 (0)\n+7059AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7059AE Ext File Attributes   00000000 (0)\n+7059B2 Local Header Offset   0043248C (4400268)\n+7059B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7059B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7059E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7059EB   Length              0005 (5)\n+7059ED   Flags               01 (1) 'Modification'\n+7059EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7059F2 CENTRAL HEADER #1242  02014B50 (33639248)\n+7059F6 Created Zip Spec      14 (20) '2.0'\n+7059F7 Created OS            00 (0) 'MS-DOS'\n+7059F8 Extract Zip Spec      14 (20) '2.0'\n+7059F9 Extract OS            00 (0) 'MS-DOS'\n+7059FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7059FC Compression Method    0000 (0) 'Stored'\n+7059FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705A02 CRC                   60B50DD7 (1622478295)\n+705A06 Compressed Size       0000071D (1821)\n+705A0A Uncompressed Size     0000071D (1821)\n+705A0E Filename Length       0035 (53)\n+705A10 Extra Length          0009 (9)\n+705A12 Comment Length        0000 (0)\n+705A14 Disk Start            0000 (0)\n+705A16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705A18 Ext File Attributes   00000000 (0)\n+705A1C Local Header Offset   00433FFE (4407294)\n+705A20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705A20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705A55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705A57   Length              0005 (5)\n+705A59   Flags               01 (1) 'Modification'\n+705A5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705A5E CENTRAL HEADER #1243  02014B50 (33639248)\n+705A62 Created Zip Spec      14 (20) '2.0'\n+705A63 Created OS            00 (0) 'MS-DOS'\n+705A64 Extract Zip Spec      14 (20) '2.0'\n+705A65 Extract OS            00 (0) 'MS-DOS'\n+705A66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705A68 Compression Method    0000 (0) 'Stored'\n+705A6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705A6E CRC                   78614F57 (2019643223)\n+705A72 Compressed Size       00002BDA (11226)\n+705A76 Uncompressed Size     00002BDA (11226)\n+705A7A Filename Length       0034 (52)\n+705A7C Extra Length          0009 (9)\n+705A7E Comment Length        0000 (0)\n+705A80 Disk Start            0000 (0)\n+705A82 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705A84 Ext File Attributes   00000000 (0)\n+705A88 Local Header Offset   00434787 (4409223)\n+705A8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705A8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705AC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705AC2   Length              0005 (5)\n+705AC4   Flags               01 (1) 'Modification'\n+705AC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705AC9 CENTRAL HEADER #1244  02014B50 (33639248)\n+705ACD Created Zip Spec      14 (20) '2.0'\n+705ACE Created OS            00 (0) 'MS-DOS'\n+705ACF Extract Zip Spec      14 (20) '2.0'\n+705AD0 Extract OS            00 (0) 'MS-DOS'\n+705AD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705AD3 Compression Method    0000 (0) 'Stored'\n+705AD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705AD9 CRC                   17A6F6D0 (396818128)\n+705ADD Compressed Size       00001AC2 (6850)\n+705AE1 Uncompressed Size     00001AC2 (6850)\n+705AE5 Filename Length       0032 (50)\n+705AE7 Extra Length          0009 (9)\n+705AE9 Comment Length        0000 (0)\n+705AEB Disk Start            0000 (0)\n+705AED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705AEF Ext File Attributes   00000000 (0)\n+705AF3 Local Header Offset   004373CC (4420556)\n+705AF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705AF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705B29 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705B2B   Length              0005 (5)\n+705B2D   Flags               01 (1) 'Modification'\n+705B2E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705B32 CENTRAL HEADER #1245  02014B50 (33639248)\n+705B36 Created Zip Spec      14 (20) '2.0'\n+705B37 Created OS            00 (0) 'MS-DOS'\n+705B38 Extract Zip Spec      14 (20) '2.0'\n+705B39 Extract OS            00 (0) 'MS-DOS'\n+705B3A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705B3C Compression Method    0000 (0) 'Stored'\n+705B3E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705B42 CRC                   65289261 (1697157729)\n+705B46 Compressed Size       00000FD7 (4055)\n+705B4A Uncompressed Size     00000FD7 (4055)\n+705B4E Filename Length       0031 (49)\n+705B50 Extra Length          0009 (9)\n+705B52 Comment Length        0000 (0)\n+705B54 Disk Start            0000 (0)\n+705B56 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705B58 Ext File Attributes   00000000 (0)\n+705B5C Local Header Offset   00438EF7 (4427511)\n+705B60 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705B60: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705B91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705B93   Length              0005 (5)\n+705B95   Flags               01 (1) 'Modification'\n+705B96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705B9A CENTRAL HEADER #1246  02014B50 (33639248)\n+705B9E Created Zip Spec      14 (20) '2.0'\n+705B9F Created OS            00 (0) 'MS-DOS'\n+705BA0 Extract Zip Spec      14 (20) '2.0'\n+705BA1 Extract OS            00 (0) 'MS-DOS'\n+705BA2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705BA4 Compression Method    0000 (0) 'Stored'\n+705BA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705BAA CRC                   59C732CA (1506226890)\n+705BAE Compressed Size       00000F65 (3941)\n+705BB2 Uncompressed Size     00000F65 (3941)\n+705BB6 Filename Length       0032 (50)\n+705BB8 Extra Length          0009 (9)\n+705BBA Comment Length        0000 (0)\n+705BBC Disk Start            0000 (0)\n+705BBE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705BC0 Ext File Attributes   00000000 (0)\n+705BC4 Local Header Offset   00439F36 (4431670)\n+705BC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705BC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705BFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705BFC   Length              0005 (5)\n+705BFE   Flags               01 (1) 'Modification'\n+705BFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705C03 CENTRAL HEADER #1247  02014B50 (33639248)\n+705C07 Created Zip Spec      14 (20) '2.0'\n+705C08 Created OS            00 (0) 'MS-DOS'\n+705C09 Extract Zip Spec      14 (20) '2.0'\n+705C0A Extract OS            00 (0) 'MS-DOS'\n+705C0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705C0D Compression Method    0000 (0) 'Stored'\n+705C0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705C13 CRC                   62C17732 (1656846130)\n+705C17 Compressed Size       00000B13 (2835)\n+705C1B Uncompressed Size     00000B13 (2835)\n+705C1F Filename Length       0034 (52)\n+705C21 Extra Length          0009 (9)\n+705C23 Comment Length        0000 (0)\n+705C25 Disk Start            0000 (0)\n+705C27 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705C29 Ext File Attributes   00000000 (0)\n+705C2D Local Header Offset   0043AF04 (4435716)\n+705C31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705C31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705C65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705C67   Length              0005 (5)\n+705C69   Flags               01 (1) 'Modification'\n+705C6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705C6E CENTRAL HEADER #1248  02014B50 (33639248)\n+705C72 Created Zip Spec      14 (20) '2.0'\n+705C73 Created OS            00 (0) 'MS-DOS'\n+705C74 Extract Zip Spec      14 (20) '2.0'\n+705C75 Extract OS            00 (0) 'MS-DOS'\n+705C76 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705C78 Compression Method    0000 (0) 'Stored'\n+705C7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705C7E CRC                   BD59212E (3176735022)\n+705C82 Compressed Size       00000AC7 (2759)\n+705C86 Uncompressed Size     00000AC7 (2759)\n+705C8A Filename Length       0036 (54)\n+705C8C Extra Length          0009 (9)\n+705C8E Comment Length        0000 (0)\n+705C90 Disk Start            0000 (0)\n+705C92 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705C94 Ext File Attributes   00000000 (0)\n+705C98 Local Header Offset   0043BA82 (4438658)\n+705C9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705C9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705CD2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705CD4   Length              0005 (5)\n+705CD6   Flags               01 (1) 'Modification'\n+705CD7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705CDB CENTRAL HEADER #1249  02014B50 (33639248)\n+705CDF Created Zip Spec      14 (20) '2.0'\n+705CE0 Created OS            00 (0) 'MS-DOS'\n+705CE1 Extract Zip Spec      14 (20) '2.0'\n+705CE2 Extract OS            00 (0) 'MS-DOS'\n+705CE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705CE5 Compression Method    0000 (0) 'Stored'\n+705CE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705CEB CRC                   6E324421 (1848788001)\n+705CEF Compressed Size       00001018 (4120)\n+705CF3 Uncompressed Size     00001018 (4120)\n+705CF7 Filename Length       0033 (51)\n+705CF9 Extra Length          0009 (9)\n+705CFB Comment Length        0000 (0)\n+705CFD Disk Start            0000 (0)\n+705CFF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705D01 Ext File Attributes   00000000 (0)\n+705D05 Local Header Offset   0043C5B6 (4441526)\n+705D09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705D09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705D3C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705D3E   Length              0005 (5)\n+705D40   Flags               01 (1) 'Modification'\n+705D41   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705D45 CENTRAL HEADER #1250  02014B50 (33639248)\n+705D49 Created Zip Spec      14 (20) '2.0'\n+705D4A Created OS            00 (0) 'MS-DOS'\n+705D4B Extract Zip Spec      14 (20) '2.0'\n+705D4C Extract OS            00 (0) 'MS-DOS'\n+705D4D General Purpose Flag  0000 (0)\n+705D4F Compression Method    0000 (0) 'Stored'\n+705D51 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705D55 CRC                   00000000 (0)\n+705D59 Compressed Size       00000000 (0)\n+705D5D Uncompressed Size     00000000 (0)\n+705D61 Filename Length       001E (30)\n+705D63 Extra Length          0009 (9)\n+705D65 Comment Length        0000 (0)\n+705D67 Disk Start            0000 (0)\n+705D69 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705D6B Ext File Attributes   00000000 (0)\n+705D6F Local Header Offset   0043D638 (4445752)\n+705D73 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705D73: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705D91 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705D93   Length              0005 (5)\n+705D95   Flags               01 (1) 'Modification'\n+705D96   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705D9A CENTRAL HEADER #1251  02014B50 (33639248)\n+705D9E Created Zip Spec      14 (20) '2.0'\n+705D9F Created OS            00 (0) 'MS-DOS'\n+705DA0 Extract Zip Spec      14 (20) '2.0'\n+705DA1 Extract OS            00 (0) 'MS-DOS'\n+705DA2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705DA4 Compression Method    0000 (0) 'Stored'\n+705DA6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705DAA CRC                   5829DD8D (1479138701)\n+705DAE Compressed Size       0000114E (4430)\n+705DB2 Uncompressed Size     0000114E (4430)\n+705DB6 Filename Length       0035 (53)\n+705DB8 Extra Length          0009 (9)\n+705DBA Comment Length        0000 (0)\n+705DBC Disk Start            0000 (0)\n+705DBE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705DC0 Ext File Attributes   00000000 (0)\n+705DC4 Local Header Offset   0043D67D (4445821)\n+705DC8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705DC8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705DFD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705DFF   Length              0005 (5)\n+705E01   Flags               01 (1) 'Modification'\n+705E02   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705E06 CENTRAL HEADER #1252  02014B50 (33639248)\n+705E0A Created Zip Spec      14 (20) '2.0'\n+705E0B Created OS            00 (0) 'MS-DOS'\n+705E0C Extract Zip Spec      14 (20) '2.0'\n+705E0D Extract OS            00 (0) 'MS-DOS'\n+705E0E General Purpose Flag  0000 (0)\n+705E10 Compression Method    0000 (0) 'Stored'\n+705E12 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705E16 CRC                   00000000 (0)\n+705E1A Compressed Size       00000000 (0)\n+705E1E Uncompressed Size     00000000 (0)\n+705E22 Filename Length       001C (28)\n+705E24 Extra Length          0009 (9)\n+705E26 Comment Length        0000 (0)\n+705E28 Disk Start            0000 (0)\n+705E2A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705E2C Ext File Attributes   00000000 (0)\n+705E30 Local Header Offset   0043E837 (4450359)\n+705E34 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705E34: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705E50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705E52   Length              0005 (5)\n+705E54   Flags               01 (1) 'Modification'\n+705E55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705E59 CENTRAL HEADER #1253  02014B50 (33639248)\n+705E5D Created Zip Spec      14 (20) '2.0'\n+705E5E Created OS            00 (0) 'MS-DOS'\n+705E5F Extract Zip Spec      14 (20) '2.0'\n+705E60 Extract OS            00 (0) 'MS-DOS'\n+705E61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705E63 Compression Method    0000 (0) 'Stored'\n+705E65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705E69 CRC                   AF68925C (2942866012)\n+705E6D Compressed Size       000004FE (1278)\n+705E71 Uncompressed Size     000004FE (1278)\n+705E75 Filename Length       002A (42)\n+705E77 Extra Length          0009 (9)\n+705E79 Comment Length        0000 (0)\n+705E7B Disk Start            0000 (0)\n+705E7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705E7F Ext File Attributes   00000000 (0)\n+705E83 Local Header Offset   0043E87A (4450426)\n+705E87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705E87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705EB1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705EB3   Length              0005 (5)\n+705EB5   Flags               01 (1) 'Modification'\n+705EB6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705EBA CENTRAL HEADER #1254  02014B50 (33639248)\n+705EBE Created Zip Spec      14 (20) '2.0'\n+705EBF Created OS            00 (0) 'MS-DOS'\n+705EC0 Extract Zip Spec      14 (20) '2.0'\n+705EC1 Extract OS            00 (0) 'MS-DOS'\n+705EC2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705EC4 Compression Method    0000 (0) 'Stored'\n+705EC6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705ECA CRC                   97DFDDD6 (2548030934)\n+705ECE Compressed Size       00001266 (4710)\n+705ED2 Uncompressed Size     00001266 (4710)\n+705ED6 Filename Length       0027 (39)\n+705ED8 Extra Length          0009 (9)\n+705EDA Comment Length        0000 (0)\n+705EDC Disk Start            0000 (0)\n+705EDE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705EE0 Ext File Attributes   00000000 (0)\n+705EE4 Local Header Offset   0043EDD9 (4451801)\n+705EE8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705EE8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705F0F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705F11   Length              0005 (5)\n+705F13   Flags               01 (1) 'Modification'\n+705F14   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705F18 CENTRAL HEADER #1255  02014B50 (33639248)\n+705F1C Created Zip Spec      14 (20) '2.0'\n+705F1D Created OS            00 (0) 'MS-DOS'\n+705F1E Extract Zip Spec      14 (20) '2.0'\n+705F1F Extract OS            00 (0) 'MS-DOS'\n+705F20 General Purpose Flag  0000 (0)\n+705F22 Compression Method    0000 (0) 'Stored'\n+705F24 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705F28 CRC                   00000000 (0)\n+705F2C Compressed Size       00000000 (0)\n+705F30 Uncompressed Size     00000000 (0)\n+705F34 Filename Length       0024 (36)\n+705F36 Extra Length          0009 (9)\n+705F38 Comment Length        0000 (0)\n+705F3A Disk Start            0000 (0)\n+705F3C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705F3E Ext File Attributes   00000000 (0)\n+705F42 Local Header Offset   0044009D (4456605)\n+705F46 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705F46: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705F6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705F6C   Length              0005 (5)\n+705F6E   Flags               01 (1) 'Modification'\n+705F6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705F73 CENTRAL HEADER #1256  02014B50 (33639248)\n+705F77 Created Zip Spec      14 (20) '2.0'\n+705F78 Created OS            00 (0) 'MS-DOS'\n+705F79 Extract Zip Spec      14 (20) '2.0'\n+705F7A Extract OS            00 (0) 'MS-DOS'\n+705F7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705F7D Compression Method    0000 (0) 'Stored'\n+705F7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705F83 CRC                   5688E99A (1451813274)\n+705F87 Compressed Size       00001436 (5174)\n+705F8B Uncompressed Size     00001436 (5174)\n+705F8F Filename Length       003B (59)\n+705F91 Extra Length          0009 (9)\n+705F93 Comment Length        0000 (0)\n+705F95 Disk Start            0000 (0)\n+705F97 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+705F99 Ext File Attributes   00000000 (0)\n+705F9D Local Header Offset   004400E8 (4456680)\n+705FA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x705FA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+705FDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+705FDE   Length              0005 (5)\n+705FE0   Flags               01 (1) 'Modification'\n+705FE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+705FE5 CENTRAL HEADER #1257  02014B50 (33639248)\n+705FE9 Created Zip Spec      14 (20) '2.0'\n+705FEA Created OS            00 (0) 'MS-DOS'\n+705FEB Extract Zip Spec      14 (20) '2.0'\n+705FEC Extract OS            00 (0) 'MS-DOS'\n+705FED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+705FEF Compression Method    0000 (0) 'Stored'\n+705FF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+705FF5 CRC                   DA916F8A (3666964362)\n+705FF9 Compressed Size       000007A1 (1953)\n+705FFD Uncompressed Size     000007A1 (1953)\n+706001 Filename Length       003F (63)\n+706003 Extra Length          0009 (9)\n+706005 Comment Length        0000 (0)\n+706007 Disk Start            0000 (0)\n+706009 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70600B Ext File Attributes   00000000 (0)\n+70600F Local Header Offset   00441590 (4461968)\n+706013 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706013: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706052 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706054   Length              0005 (5)\n+706056   Flags               01 (1) 'Modification'\n+706057   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70605B CENTRAL HEADER #1258  02014B50 (33639248)\n+70605F Created Zip Spec      14 (20) '2.0'\n+706060 Created OS            00 (0) 'MS-DOS'\n+706061 Extract Zip Spec      14 (20) '2.0'\n+706062 Extract OS            00 (0) 'MS-DOS'\n+706063 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706065 Compression Method    0000 (0) 'Stored'\n+706067 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70606B CRC                   5C0FF18B (1544548747)\n+70606F Compressed Size       0000107E (4222)\n+706073 Uncompressed Size     0000107E (4222)\n+706077 Filename Length       003A (58)\n+706079 Extra Length          0009 (9)\n+70607B Comment Length        0000 (0)\n+70607D Disk Start            0000 (0)\n+70607F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706081 Ext File Attributes   00000000 (0)\n+706085 Local Header Offset   00441DA7 (4464039)\n+706089 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706089: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7060C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7060C5   Length              0005 (5)\n+7060C7   Flags               01 (1) 'Modification'\n+7060C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7060CC CENTRAL HEADER #1259  02014B50 (33639248)\n+7060D0 Created Zip Spec      14 (20) '2.0'\n+7060D1 Created OS            00 (0) 'MS-DOS'\n+7060D2 Extract Zip Spec      14 (20) '2.0'\n+7060D3 Extract OS            00 (0) 'MS-DOS'\n+7060D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7060D6 Compression Method    0000 (0) 'Stored'\n+7060D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7060DC CRC                   F592DA8D (4120042125)\n+7060E0 Compressed Size       00000713 (1811)\n+7060E4 Uncompressed Size     00000713 (1811)\n+7060E8 Filename Length       003F (63)\n+7060EA Extra Length          0009 (9)\n+7060EC Comment Length        0000 (0)\n+7060EE Disk Start            0000 (0)\n+7060F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7060F2 Ext File Attributes   00000000 (0)\n+7060F6 Local Header Offset   00442E96 (4468374)\n+7060FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7060FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706139 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70613B   Length              0005 (5)\n+70613D   Flags               01 (1) 'Modification'\n+70613E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706142 CENTRAL HEADER #1260  02014B50 (33639248)\n+706146 Created Zip Spec      14 (20) '2.0'\n+706147 Created OS            00 (0) 'MS-DOS'\n+706148 Extract Zip Spec      14 (20) '2.0'\n+706149 Extract OS            00 (0) 'MS-DOS'\n+70614A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70614C Compression Method    0000 (0) 'Stored'\n+70614E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706152 CRC                   D705EF34 (3607490356)\n+706156 Compressed Size       00000CCA (3274)\n+70615A Uncompressed Size     00000CCA (3274)\n+70615E Filename Length       003D (61)\n+706160 Extra Length          0009 (9)\n+706162 Comment Length        0000 (0)\n+706164 Disk Start            0000 (0)\n+706166 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706168 Ext File Attributes   00000000 (0)\n+70616C Local Header Offset   0044361F (4470303)\n+706170 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706170: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7061AD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7061AF   Length              0005 (5)\n+7061B1   Flags               01 (1) 'Modification'\n+7061B2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7061B6 CENTRAL HEADER #1261  02014B50 (33639248)\n+7061BA Created Zip Spec      14 (20) '2.0'\n+7061BB Created OS            00 (0) 'MS-DOS'\n+7061BC Extract Zip Spec      14 (20) '2.0'\n+7061BD Extract OS            00 (0) 'MS-DOS'\n+7061BE General Purpose Flag  0000 (0)\n+7061C0 Compression Method    0000 (0) 'Stored'\n+7061C2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7061C6 CRC                   00000000 (0)\n+7061CA Compressed Size       00000000 (0)\n+7061CE Uncompressed Size     00000000 (0)\n+7061D2 Filename Length       001C (28)\n+7061D4 Extra Length          0009 (9)\n+7061D6 Comment Length        0000 (0)\n+7061D8 Disk Start            0000 (0)\n+7061DA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7061DC Ext File Attributes   00000000 (0)\n+7061E0 Local Header Offset   0044435D (4473693)\n+7061E4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7061E4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706200 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706202   Length              0005 (5)\n+706204   Flags               01 (1) 'Modification'\n+706205   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706209 CENTRAL HEADER #1262  02014B50 (33639248)\n+70620D Created Zip Spec      14 (20) '2.0'\n+70620E Created OS            00 (0) 'MS-DOS'\n+70620F Extract Zip Spec      14 (20) '2.0'\n+706210 Extract OS            00 (0) 'MS-DOS'\n+706211 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706213 Compression Method    0000 (0) 'Stored'\n+706215 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706219 CRC                   2AA01116 (715133206)\n+70621D Compressed Size       000003D7 (983)\n+706221 Uncompressed Size     000003D7 (983)\n+706225 Filename Length       002B (43)\n+706227 Extra Length          0009 (9)\n+706229 Comment Length        0000 (0)\n+70622B Disk Start            0000 (0)\n+70622D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70622F Ext File Attributes   00000000 (0)\n+706233 Local Header Offset   004443A0 (4473760)\n+706237 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706237: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706262 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706264   Length              0005 (5)\n+706266   Flags               01 (1) 'Modification'\n+706267   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70626B CENTRAL HEADER #1263  02014B50 (33639248)\n+70626F Created Zip Spec      14 (20) '2.0'\n+706270 Created OS            00 (0) 'MS-DOS'\n+706271 Extract Zip Spec      14 (20) '2.0'\n+706272 Extract OS            00 (0) 'MS-DOS'\n+706273 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706275 Compression Method    0000 (0) 'Stored'\n+706277 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70627B CRC                   70DD7BE1 (1893563361)\n+70627F Compressed Size       00000AAE (2734)\n+706283 Uncompressed Size     00000AAE (2734)\n+706287 Filename Length       0024 (36)\n+706289 Extra Length          0009 (9)\n+70628B Comment Length        0000 (0)\n+70628D Disk Start            0000 (0)\n+70628F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706291 Ext File Attributes   00000000 (0)\n+706295 Local Header Offset   004447D9 (4474841)\n+706299 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706299: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7062BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7062BF   Length              0005 (5)\n+7062C1   Flags               01 (1) 'Modification'\n+7062C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7062C6 CENTRAL HEADER #1264  02014B50 (33639248)\n+7062CA Created Zip Spec      14 (20) '2.0'\n+7062CB Created OS            00 (0) 'MS-DOS'\n+7062CC Extract Zip Spec      14 (20) '2.0'\n+7062CD Extract OS            00 (0) 'MS-DOS'\n+7062CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7062D0 Compression Method    0000 (0) 'Stored'\n+7062D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7062D6 CRC                   725BA0A7 (1918607527)\n+7062DA Compressed Size       000008DD (2269)\n+7062DE Uncompressed Size     000008DD (2269)\n+7062E2 Filename Length       0028 (40)\n+7062E4 Extra Length          0009 (9)\n+7062E6 Comment Length        0000 (0)\n+7062E8 Disk Start            0000 (0)\n+7062EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7062EC Ext File Attributes   00000000 (0)\n+7062F0 Local Header Offset   004452E2 (4477666)\n+7062F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7062F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70631C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70631E   Length              0005 (5)\n+706320   Flags               01 (1) 'Modification'\n+706321   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706325 CENTRAL HEADER #1265  02014B50 (33639248)\n+706329 Created Zip Spec      14 (20) '2.0'\n+70632A Created OS            00 (0) 'MS-DOS'\n+70632B Extract Zip Spec      14 (20) '2.0'\n+70632C Extract OS            00 (0) 'MS-DOS'\n+70632D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70632F Compression Method    0000 (0) 'Stored'\n+706331 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706335 CRC                   7076ABE9 (1886825449)\n+706339 Compressed Size       00003F37 (16183)\n+70633D Uncompressed Size     00003F37 (16183)\n+706341 Filename Length       0027 (39)\n+706343 Extra Length          0009 (9)\n+706345 Comment Length        0000 (0)\n+706347 Disk Start            0000 (0)\n+706349 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70634B Ext File Attributes   00000000 (0)\n+70634F Local Header Offset   00445C1E (4480030)\n+706353 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706353: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70637A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70637C   Length              0005 (5)\n+70637E   Flags               01 (1) 'Modification'\n+70637F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706383 CENTRAL HEADER #1266  02014B50 (33639248)\n+706387 Created Zip Spec      14 (20) '2.0'\n+706388 Created OS            00 (0) 'MS-DOS'\n+706389 Extract Zip Spec      14 (20) '2.0'\n+70638A Extract OS            00 (0) 'MS-DOS'\n+70638B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70638D Compression Method    0000 (0) 'Stored'\n+70638F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706393 CRC                   E7722336 (3883017014)\n+706397 Compressed Size       00001DD8 (7640)\n+70639B Uncompressed Size     00001DD8 (7640)\n+70639F Filename Length       0026 (38)\n+7063A1 Extra Length          0009 (9)\n+7063A3 Comment Length        0000 (0)\n+7063A5 Disk Start            0000 (0)\n+7063A7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7063A9 Ext File Attributes   00000000 (0)\n+7063AD Local Header Offset   00449BB3 (4496307)\n+7063B1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7063B1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7063D7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7063D9   Length              0005 (5)\n+7063DB   Flags               01 (1) 'Modification'\n+7063DC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7063E0 CENTRAL HEADER #1267  02014B50 (33639248)\n+7063E4 Created Zip Spec      14 (20) '2.0'\n+7063E5 Created OS            00 (0) 'MS-DOS'\n+7063E6 Extract Zip Spec      14 (20) '2.0'\n+7063E7 Extract OS            00 (0) 'MS-DOS'\n+7063E8 General Purpose Flag  0000 (0)\n+7063EA Compression Method    0000 (0) 'Stored'\n+7063EC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7063F0 CRC                   00000000 (0)\n+7063F4 Compressed Size       00000000 (0)\n+7063F8 Uncompressed Size     00000000 (0)\n+7063FC Filename Length       001A (26)\n+7063FE Extra Length          0009 (9)\n+706400 Comment Length        0000 (0)\n+706402 Disk Start            0000 (0)\n+706404 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706406 Ext File Attributes   00000000 (0)\n+70640A Local Header Offset   0044B9E8 (4504040)\n+70640E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70640E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706428 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70642A   Length              0005 (5)\n+70642C   Flags               01 (1) 'Modification'\n+70642D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706431 CENTRAL HEADER #1268  02014B50 (33639248)\n+706435 Created Zip Spec      14 (20) '2.0'\n+706436 Created OS            00 (0) 'MS-DOS'\n+706437 Extract Zip Spec      14 (20) '2.0'\n+706438 Extract OS            00 (0) 'MS-DOS'\n+706439 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70643B Compression Method    0000 (0) 'Stored'\n+70643D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706441 CRC                   D8E4F331 (3638883121)\n+706445 Compressed Size       00000544 (1348)\n+706449 Uncompressed Size     00000544 (1348)\n+70644D Filename Length       002E (46)\n+70644F Extra Length          0009 (9)\n+706451 Comment Length        0000 (0)\n+706453 Disk Start            0000 (0)\n+706455 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706457 Ext File Attributes   00000000 (0)\n+70645B Local Header Offset   0044BA29 (4504105)\n+70645F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70645F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70648D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70648F   Length              0005 (5)\n+706491   Flags               01 (1) 'Modification'\n+706492   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706496 CENTRAL HEADER #1269  02014B50 (33639248)\n+70649A Created Zip Spec      14 (20) '2.0'\n+70649B Created OS            00 (0) 'MS-DOS'\n+70649C Extract Zip Spec      14 (20) '2.0'\n+70649D Extract OS            00 (0) 'MS-DOS'\n+70649E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7064A0 Compression Method    0000 (0) 'Stored'\n+7064A2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7064A6 CRC                   C7E99B2E (3353975598)\n+7064AA Compressed Size       00000ACD (2765)\n+7064AE Uncompressed Size     00000ACD (2765)\n+7064B2 Filename Length       0028 (40)\n+7064B4 Extra Length          0009 (9)\n+7064B6 Comment Length        0000 (0)\n+7064B8 Disk Start            0000 (0)\n+7064BA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7064BC Ext File Attributes   00000000 (0)\n+7064C0 Local Header Offset   0044BFD2 (4505554)\n+7064C4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7064C4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7064EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7064EE   Length              0005 (5)\n+7064F0   Flags               01 (1) 'Modification'\n+7064F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7064F5 CENTRAL HEADER #1270  02014B50 (33639248)\n+7064F9 Created Zip Spec      14 (20) '2.0'\n+7064FA Created OS            00 (0) 'MS-DOS'\n+7064FB Extract Zip Spec      14 (20) '2.0'\n+7064FC Extract OS            00 (0) 'MS-DOS'\n+7064FD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7064FF Compression Method    0000 (0) 'Stored'\n+706501 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706505 CRC                   A4BC4964 (2763802980)\n+706509 Compressed Size       000014B7 (5303)\n+70650D Uncompressed Size     000014B7 (5303)\n+706511 Filename Length       0036 (54)\n+706513 Extra Length          0009 (9)\n+706515 Comment Length        0000 (0)\n+706517 Disk Start            0000 (0)\n+706519 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70651B Ext File Attributes   00000000 (0)\n+70651F Local Header Offset   0044CAFE (4508414)\n+706523 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706523: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706559 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70655B   Length              0005 (5)\n+70655D   Flags               01 (1) 'Modification'\n+70655E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706562 CENTRAL HEADER #1271  02014B50 (33639248)\n+706566 Created Zip Spec      14 (20) '2.0'\n+706567 Created OS            00 (0) 'MS-DOS'\n+706568 Extract Zip Spec      14 (20) '2.0'\n+706569 Extract OS            00 (0) 'MS-DOS'\n+70656A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70656C Compression Method    0000 (0) 'Stored'\n+70656E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706572 CRC                   4C19B653 (1276753491)\n+706576 Compressed Size       00000A34 (2612)\n+70657A Uncompressed Size     00000A34 (2612)\n+70657E Filename Length       002D (45)\n+706580 Extra Length          0009 (9)\n+706582 Comment Length        0000 (0)\n+706584 Disk Start            0000 (0)\n+706586 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706588 Ext File Attributes   00000000 (0)\n+70658C Local Header Offset   0044E022 (4513826)\n+706590 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706590: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7065BD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7065BF   Length              0005 (5)\n+7065C1   Flags               01 (1) 'Modification'\n+7065C2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7065C6 CENTRAL HEADER #1272  02014B50 (33639248)\n+7065CA Created Zip Spec      14 (20) '2.0'\n+7065CB Created OS            00 (0) 'MS-DOS'\n+7065CC Extract Zip Spec      14 (20) '2.0'\n+7065CD Extract OS            00 (0) 'MS-DOS'\n+7065CE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7065D0 Compression Method    0000 (0) 'Stored'\n+7065D2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7065D6 CRC                   92D33C56 (2463317078)\n+7065DA Compressed Size       0000053A (1338)\n+7065DE Uncompressed Size     0000053A (1338)\n+7065E2 Filename Length       0027 (39)\n+7065E4 Extra Length          0009 (9)\n+7065E6 Comment Length        0000 (0)\n+7065E8 Disk Start            0000 (0)\n+7065EA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7065EC Ext File Attributes   00000000 (0)\n+7065F0 Local Header Offset   0044EABA (4516538)\n+7065F4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7065F4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70661B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70661D   Length              0005 (5)\n+70661F   Flags               01 (1) 'Modification'\n+706620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706624 CENTRAL HEADER #1273  02014B50 (33639248)\n+706628 Created Zip Spec      14 (20) '2.0'\n+706629 Created OS            00 (0) 'MS-DOS'\n+70662A Extract Zip Spec      14 (20) '2.0'\n+70662B Extract OS            00 (0) 'MS-DOS'\n+70662C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70662E Compression Method    0000 (0) 'Stored'\n+706630 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706634 CRC                   8AC6D7E1 (2328287201)\n+706638 Compressed Size       000007D3 (2003)\n+70663C Uncompressed Size     000007D3 (2003)\n+706640 Filename Length       002E (46)\n+706642 Extra Length          0009 (9)\n+706644 Comment Length        0000 (0)\n+706646 Disk Start            0000 (0)\n+706648 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70664A Ext File Attributes   00000000 (0)\n+70664E Local Header Offset   0044F052 (4517970)\n+706652 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706652: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706680 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706682   Length              0005 (5)\n+706684   Flags               01 (1) 'Modification'\n+706685   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706689 CENTRAL HEADER #1274  02014B50 (33639248)\n+70668D Created Zip Spec      14 (20) '2.0'\n+70668E Created OS            00 (0) 'MS-DOS'\n+70668F Extract Zip Spec      14 (20) '2.0'\n+706690 Extract OS            00 (0) 'MS-DOS'\n+706691 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706693 Compression Method    0000 (0) 'Stored'\n+706695 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706699 CRC                   12C409E5 (314837477)\n+70669D Compressed Size       0000061F (1567)\n+7066A1 Uncompressed Size     0000061F (1567)\n+7066A5 Filename Length       0035 (53)\n+7066A7 Extra Length          0009 (9)\n+7066A9 Comment Length        0000 (0)\n+7066AB Disk Start            0000 (0)\n+7066AD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7066AF Ext File Attributes   00000000 (0)\n+7066B3 Local Header Offset   0044F88A (4520074)\n+7066B7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7066B7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7066EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7066EE   Length              0005 (5)\n+7066F0   Flags               01 (1) 'Modification'\n+7066F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7066F5 CENTRAL HEADER #1275  02014B50 (33639248)\n+7066F9 Created Zip Spec      14 (20) '2.0'\n+7066FA Created OS            00 (0) 'MS-DOS'\n+7066FB Extract Zip Spec      14 (20) '2.0'\n+7066FC Extract OS            00 (0) 'MS-DOS'\n+7066FD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7066FF Compression Method    0000 (0) 'Stored'\n+706701 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706705 CRC                   6C2E2D81 (1814965633)\n+706709 Compressed Size       00001602 (5634)\n+70670D Uncompressed Size     00001602 (5634)\n+706711 Filename Length       002E (46)\n+706713 Extra Length          0009 (9)\n+706715 Comment Length        0000 (0)\n+706717 Disk Start            0000 (0)\n+706719 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70671B Ext File Attributes   00000000 (0)\n+70671F Local Header Offset   0044FF15 (4521749)\n+706723 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706723: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706751 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706753   Length              0005 (5)\n+706755   Flags               01 (1) 'Modification'\n+706756   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70675A CENTRAL HEADER #1276  02014B50 (33639248)\n+70675E Created Zip Spec      14 (20) '2.0'\n+70675F Created OS            00 (0) 'MS-DOS'\n+706760 Extract Zip Spec      14 (20) '2.0'\n+706761 Extract OS            00 (0) 'MS-DOS'\n+706762 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706764 Compression Method    0000 (0) 'Stored'\n+706766 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70676A CRC                   ED9B9E6B (3986398827)\n+70676E Compressed Size       000004B7 (1207)\n+706772 Uncompressed Size     000004B7 (1207)\n+706776 Filename Length       0036 (54)\n+706778 Extra Length          0009 (9)\n+70677A Comment Length        0000 (0)\n+70677C Disk Start            0000 (0)\n+70677E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706780 Ext File Attributes   00000000 (0)\n+706784 Local Header Offset   0045157C (4527484)\n+706788 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706788: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7067BE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7067C0   Length              0005 (5)\n+7067C2   Flags               01 (1) 'Modification'\n+7067C3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7067C7 CENTRAL HEADER #1277  02014B50 (33639248)\n+7067CB Created Zip Spec      14 (20) '2.0'\n+7067CC Created OS            00 (0) 'MS-DOS'\n+7067CD Extract Zip Spec      14 (20) '2.0'\n+7067CE Extract OS            00 (0) 'MS-DOS'\n+7067CF General Purpose Flag  0000 (0)\n+7067D1 Compression Method    0000 (0) 'Stored'\n+7067D3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7067D7 CRC                   00000000 (0)\n+7067DB Compressed Size       00000000 (0)\n+7067DF Uncompressed Size     00000000 (0)\n+7067E3 Filename Length       0021 (33)\n+7067E5 Extra Length          0009 (9)\n+7067E7 Comment Length        0000 (0)\n+7067E9 Disk Start            0000 (0)\n+7067EB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7067ED Ext File Attributes   00000000 (0)\n+7067F1 Local Header Offset   00451AA0 (4528800)\n+7067F5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7067F5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706816 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706818   Length              0005 (5)\n+70681A   Flags               01 (1) 'Modification'\n+70681B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70681F CENTRAL HEADER #1278  02014B50 (33639248)\n+706823 Created Zip Spec      14 (20) '2.0'\n+706824 Created OS            00 (0) 'MS-DOS'\n+706825 Extract Zip Spec      14 (20) '2.0'\n+706826 Extract OS            00 (0) 'MS-DOS'\n+706827 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706829 Compression Method    0000 (0) 'Stored'\n+70682B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70682F CRC                   3799B565 (932820325)\n+706833 Compressed Size       0000086B (2155)\n+706837 Uncompressed Size     0000086B (2155)\n+70683B Filename Length       003E (62)\n+70683D Extra Length          0009 (9)\n+70683F Comment Length        0000 (0)\n+706841 Disk Start            0000 (0)\n+706843 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706845 Ext File Attributes   00000000 (0)\n+706849 Local Header Offset   00451AE8 (4528872)\n+70684D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70684D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70688B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70688D   Length              0005 (5)\n+70688F   Flags               01 (1) 'Modification'\n+706890   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706894 CENTRAL HEADER #1279  02014B50 (33639248)\n+706898 Created Zip Spec      14 (20) '2.0'\n+706899 Created OS            00 (0) 'MS-DOS'\n+70689A Extract Zip Spec      14 (20) '2.0'\n+70689B Extract OS            00 (0) 'MS-DOS'\n+70689C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70689E Compression Method    0000 (0) 'Stored'\n+7068A0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7068A4 CRC                   0B335580 (187913600)\n+7068A8 Compressed Size       000006ED (1773)\n+7068AC Uncompressed Size     000006ED (1773)\n+7068B0 Filename Length       0045 (69)\n+7068B2 Extra Length          0009 (9)\n+7068B4 Comment Length        0000 (0)\n+7068B6 Disk Start            0000 (0)\n+7068B8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7068BA Ext File Attributes   00000000 (0)\n+7068BE Local Header Offset   004523C8 (4531144)\n+7068C2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7068C2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706907 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706909   Length              0005 (5)\n+70690B   Flags               01 (1) 'Modification'\n+70690C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706910 CENTRAL HEADER #1280  02014B50 (33639248)\n+706914 Created Zip Spec      14 (20) '2.0'\n+706915 Created OS            00 (0) 'MS-DOS'\n+706916 Extract Zip Spec      14 (20) '2.0'\n+706917 Extract OS            00 (0) 'MS-DOS'\n+706918 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70691A Compression Method    0000 (0) 'Stored'\n+70691C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706920 CRC                   4E9CD747 (1318901575)\n+706924 Compressed Size       00000587 (1415)\n+706928 Uncompressed Size     00000587 (1415)\n+70692C Filename Length       0046 (70)\n+70692E Extra Length          0009 (9)\n+706930 Comment Length        0000 (0)\n+706932 Disk Start            0000 (0)\n+706934 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706936 Ext File Attributes   00000000 (0)\n+70693A Local Header Offset   00452B31 (4533041)\n+70693E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70693E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706984 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706986   Length              0005 (5)\n+706988   Flags               01 (1) 'Modification'\n+706989   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70698D CENTRAL HEADER #1281  02014B50 (33639248)\n+706991 Created Zip Spec      14 (20) '2.0'\n+706992 Created OS            00 (0) 'MS-DOS'\n+706993 Extract Zip Spec      14 (20) '2.0'\n+706994 Extract OS            00 (0) 'MS-DOS'\n+706995 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706997 Compression Method    0000 (0) 'Stored'\n+706999 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70699D CRC                   A92DE3D2 (2838356946)\n+7069A1 Compressed Size       000008A1 (2209)\n+7069A5 Uncompressed Size     000008A1 (2209)\n+7069A9 Filename Length       0044 (68)\n+7069AB Extra Length          0009 (9)\n+7069AD Comment Length        0000 (0)\n+7069AF Disk Start            0000 (0)\n+7069B1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7069B3 Ext File Attributes   00000000 (0)\n+7069B7 Local Header Offset   00453135 (4534581)\n+7069BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7069BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7069FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706A01   Length              0005 (5)\n+706A03   Flags               01 (1) 'Modification'\n+706A04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706A08 CENTRAL HEADER #1282  02014B50 (33639248)\n+706A0C Created Zip Spec      14 (20) '2.0'\n+706A0D Created OS            00 (0) 'MS-DOS'\n+706A0E Extract Zip Spec      14 (20) '2.0'\n+706A0F Extract OS            00 (0) 'MS-DOS'\n+706A10 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706A12 Compression Method    0000 (0) 'Stored'\n+706A14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706A18 CRC                   B19E4EA6 (2979942054)\n+706A1C Compressed Size       0000188D (6285)\n+706A20 Uncompressed Size     0000188D (6285)\n+706A24 Filename Length       003C (60)\n+706A26 Extra Length          0009 (9)\n+706A28 Comment Length        0000 (0)\n+706A2A Disk Start            0000 (0)\n+706A2C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706A2E Ext File Attributes   00000000 (0)\n+706A32 Local Header Offset   00453A51 (4536913)\n+706A36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706A36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706A72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706A74   Length              0005 (5)\n+706A76   Flags               01 (1) 'Modification'\n+706A77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706A7B CENTRAL HEADER #1283  02014B50 (33639248)\n+706A7F Created Zip Spec      14 (20) '2.0'\n+706A80 Created OS            00 (0) 'MS-DOS'\n+706A81 Extract Zip Spec      14 (20) '2.0'\n+706A82 Extract OS            00 (0) 'MS-DOS'\n+706A83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706A85 Compression Method    0000 (0) 'Stored'\n+706A87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706A8B CRC                   25CCFC5A (634190938)\n+706A8F Compressed Size       00002B62 (11106)\n+706A93 Uncompressed Size     00002B62 (11106)\n+706A97 Filename Length       0045 (69)\n+706A99 Extra Length          0009 (9)\n+706A9B Comment Length        0000 (0)\n+706A9D Disk Start            0000 (0)\n+706A9F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706AA1 Ext File Attributes   00000000 (0)\n+706AA5 Local Header Offset   00455351 (4543313)\n+706AA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706AA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706AEE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706AF0   Length              0005 (5)\n+706AF2   Flags               01 (1) 'Modification'\n+706AF3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706AF7 CENTRAL HEADER #1284  02014B50 (33639248)\n+706AFB Created Zip Spec      14 (20) '2.0'\n+706AFC Created OS            00 (0) 'MS-DOS'\n+706AFD Extract Zip Spec      14 (20) '2.0'\n+706AFE Extract OS            00 (0) 'MS-DOS'\n+706AFF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706B01 Compression Method    0000 (0) 'Stored'\n+706B03 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706B07 CRC                   DEC94C5D (3737734237)\n+706B0B Compressed Size       000020CD (8397)\n+706B0F Uncompressed Size     000020CD (8397)\n+706B13 Filename Length       0040 (64)\n+706B15 Extra Length          0009 (9)\n+706B17 Comment Length        0000 (0)\n+706B19 Disk Start            0000 (0)\n+706B1B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706B1D Ext File Attributes   00000000 (0)\n+706B21 Local Header Offset   00457F2F (4554543)\n+706B25 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706B25: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706B65 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706B67   Length              0005 (5)\n+706B69   Flags               01 (1) 'Modification'\n+706B6A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706B6E CENTRAL HEADER #1285  02014B50 (33639248)\n+706B72 Created Zip Spec      14 (20) '2.0'\n+706B73 Created OS            00 (0) 'MS-DOS'\n+706B74 Extract Zip Spec      14 (20) '2.0'\n+706B75 Extract OS            00 (0) 'MS-DOS'\n+706B76 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706B78 Compression Method    0000 (0) 'Stored'\n+706B7A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706B7E CRC                   71025D3E (1895980350)\n+706B82 Compressed Size       0000309E (12446)\n+706B86 Uncompressed Size     0000309E (12446)\n+706B8A Filename Length       0038 (56)\n+706B8C Extra Length          0009 (9)\n+706B8E Comment Length        0000 (0)\n+706B90 Disk Start            0000 (0)\n+706B92 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706B94 Ext File Attributes   00000000 (0)\n+706B98 Local Header Offset   0045A073 (4563059)\n+706B9C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706B9C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706BD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706BD6   Length              0005 (5)\n+706BD8   Flags               01 (1) 'Modification'\n+706BD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706BDD CENTRAL HEADER #1286  02014B50 (33639248)\n+706BE1 Created Zip Spec      14 (20) '2.0'\n+706BE2 Created OS            00 (0) 'MS-DOS'\n+706BE3 Extract Zip Spec      14 (20) '2.0'\n+706BE4 Extract OS            00 (0) 'MS-DOS'\n+706BE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706BE7 Compression Method    0000 (0) 'Stored'\n+706BE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706BED CRC                   BE5FB3B5 (3193942965)\n+706BF1 Compressed Size       00000604 (1540)\n+706BF5 Uncompressed Size     00000604 (1540)\n+706BF9 Filename Length       003F (63)\n+706BFB Extra Length          0009 (9)\n+706BFD Comment Length        0000 (0)\n+706BFF Disk Start            0000 (0)\n+706C01 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706C03 Ext File Attributes   00000000 (0)\n+706C07 Local Header Offset   0045D180 (4575616)\n+706C0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706C0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706C4A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706C4C   Length              0005 (5)\n+706C4E   Flags               01 (1) 'Modification'\n+706C4F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706C53 CENTRAL HEADER #1287  02014B50 (33639248)\n+706C57 Created Zip Spec      14 (20) '2.0'\n+706C58 Created OS            00 (0) 'MS-DOS'\n+706C59 Extract Zip Spec      14 (20) '2.0'\n+706C5A Extract OS            00 (0) 'MS-DOS'\n+706C5B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706C5D Compression Method    0000 (0) 'Stored'\n+706C5F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706C63 CRC                   ED1E1920 (3978172704)\n+706C67 Compressed Size       00002FC8 (12232)\n+706C6B Uncompressed Size     00002FC8 (12232)\n+706C6F Filename Length       0036 (54)\n+706C71 Extra Length          0009 (9)\n+706C73 Comment Length        0000 (0)\n+706C75 Disk Start            0000 (0)\n+706C77 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706C79 Ext File Attributes   00000000 (0)\n+706C7D Local Header Offset   0045D7FA (4577274)\n+706C81 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706C81: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706CB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706CB9   Length              0005 (5)\n+706CBB   Flags               01 (1) 'Modification'\n+706CBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706CC0 CENTRAL HEADER #1288  02014B50 (33639248)\n+706CC4 Created Zip Spec      14 (20) '2.0'\n+706CC5 Created OS            00 (0) 'MS-DOS'\n+706CC6 Extract Zip Spec      14 (20) '2.0'\n+706CC7 Extract OS            00 (0) 'MS-DOS'\n+706CC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706CCA Compression Method    0000 (0) 'Stored'\n+706CCC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706CD0 CRC                   9286ACC7 (2458299591)\n+706CD4 Compressed Size       000007EB (2027)\n+706CD8 Uncompressed Size     000007EB (2027)\n+706CDC Filename Length       003D (61)\n+706CDE Extra Length          0009 (9)\n+706CE0 Comment Length        0000 (0)\n+706CE2 Disk Start            0000 (0)\n+706CE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706CE6 Ext File Attributes   00000000 (0)\n+706CEA Local Header Offset   0046082F (4589615)\n+706CEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706CEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706D2B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706D2D   Length              0005 (5)\n+706D2F   Flags               01 (1) 'Modification'\n+706D30   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706D34 CENTRAL HEADER #1289  02014B50 (33639248)\n+706D38 Created Zip Spec      14 (20) '2.0'\n+706D39 Created OS            00 (0) 'MS-DOS'\n+706D3A Extract Zip Spec      14 (20) '2.0'\n+706D3B Extract OS            00 (0) 'MS-DOS'\n+706D3C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706D3E Compression Method    0000 (0) 'Stored'\n+706D40 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706D44 CRC                   8EF20CD3 (2398227667)\n+706D48 Compressed Size       00005410 (21520)\n+706D4C Uncompressed Size     00005410 (21520)\n+706D50 Filename Length       003E (62)\n+706D52 Extra Length          0009 (9)\n+706D54 Comment Length        0000 (0)\n+706D56 Disk Start            0000 (0)\n+706D58 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706D5A Ext File Attributes   00000000 (0)\n+706D5E Local Header Offset   0046108E (4591758)\n+706D62 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706D62: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706DA0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706DA2   Length              0005 (5)\n+706DA4   Flags               01 (1) 'Modification'\n+706DA5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706DA9 CENTRAL HEADER #1290  02014B50 (33639248)\n+706DAD Created Zip Spec      14 (20) '2.0'\n+706DAE Created OS            00 (0) 'MS-DOS'\n+706DAF Extract Zip Spec      14 (20) '2.0'\n+706DB0 Extract OS            00 (0) 'MS-DOS'\n+706DB1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706DB3 Compression Method    0000 (0) 'Stored'\n+706DB5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706DB9 CRC                   82D7146C (2195133548)\n+706DBD Compressed Size       00002DE5 (11749)\n+706DC1 Uncompressed Size     00002DE5 (11749)\n+706DC5 Filename Length       0047 (71)\n+706DC7 Extra Length          0009 (9)\n+706DC9 Comment Length        0000 (0)\n+706DCB Disk Start            0000 (0)\n+706DCD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706DCF Ext File Attributes   00000000 (0)\n+706DD3 Local Header Offset   00466513 (4613395)\n+706DD7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706DD7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706E1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706E20   Length              0005 (5)\n+706E22   Flags               01 (1) 'Modification'\n+706E23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706E27 CENTRAL HEADER #1291  02014B50 (33639248)\n+706E2B Created Zip Spec      14 (20) '2.0'\n+706E2C Created OS            00 (0) 'MS-DOS'\n+706E2D Extract Zip Spec      14 (20) '2.0'\n+706E2E Extract OS            00 (0) 'MS-DOS'\n+706E2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706E31 Compression Method    0000 (0) 'Stored'\n+706E33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706E37 CRC                   988327A2 (2558732194)\n+706E3B Compressed Size       000006B3 (1715)\n+706E3F Uncompressed Size     000006B3 (1715)\n+706E43 Filename Length       0045 (69)\n+706E45 Extra Length          0009 (9)\n+706E47 Comment Length        0000 (0)\n+706E49 Disk Start            0000 (0)\n+706E4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706E4D Ext File Attributes   00000000 (0)\n+706E51 Local Header Offset   00469376 (4625270)\n+706E55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706E55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706E9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706E9C   Length              0005 (5)\n+706E9E   Flags               01 (1) 'Modification'\n+706E9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706EA3 CENTRAL HEADER #1292  02014B50 (33639248)\n+706EA7 Created Zip Spec      14 (20) '2.0'\n+706EA8 Created OS            00 (0) 'MS-DOS'\n+706EA9 Extract Zip Spec      14 (20) '2.0'\n+706EAA Extract OS            00 (0) 'MS-DOS'\n+706EAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706EAD Compression Method    0000 (0) 'Stored'\n+706EAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706EB3 CRC                   756EE014 (1970200596)\n+706EB7 Compressed Size       00000E28 (3624)\n+706EBB Uncompressed Size     00000E28 (3624)\n+706EBF Filename Length       0035 (53)\n+706EC1 Extra Length          0009 (9)\n+706EC3 Comment Length        0000 (0)\n+706EC5 Disk Start            0000 (0)\n+706EC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706EC9 Ext File Attributes   00000000 (0)\n+706ECD Local Header Offset   00469AA5 (4627109)\n+706ED1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706ED1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706F06 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706F08   Length              0005 (5)\n+706F0A   Flags               01 (1) 'Modification'\n+706F0B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706F0F CENTRAL HEADER #1293  02014B50 (33639248)\n+706F13 Created Zip Spec      14 (20) '2.0'\n+706F14 Created OS            00 (0) 'MS-DOS'\n+706F15 Extract Zip Spec      14 (20) '2.0'\n+706F16 Extract OS            00 (0) 'MS-DOS'\n+706F17 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706F19 Compression Method    0000 (0) 'Stored'\n+706F1B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706F1F CRC                   3557220F (894902799)\n+706F23 Compressed Size       000005FC (1532)\n+706F27 Uncompressed Size     000005FC (1532)\n+706F2B Filename Length       003F (63)\n+706F2D Extra Length          0009 (9)\n+706F2F Comment Length        0000 (0)\n+706F31 Disk Start            0000 (0)\n+706F33 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706F35 Ext File Attributes   00000000 (0)\n+706F39 Local Header Offset   0046A939 (4630841)\n+706F3D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706F3D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706F7C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706F7E   Length              0005 (5)\n+706F80   Flags               01 (1) 'Modification'\n+706F81   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706F85 CENTRAL HEADER #1294  02014B50 (33639248)\n+706F89 Created Zip Spec      14 (20) '2.0'\n+706F8A Created OS            00 (0) 'MS-DOS'\n+706F8B Extract Zip Spec      14 (20) '2.0'\n+706F8C Extract OS            00 (0) 'MS-DOS'\n+706F8D General Purpose Flag  0000 (0)\n+706F8F Compression Method    0000 (0) 'Stored'\n+706F91 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706F95 CRC                   00000000 (0)\n+706F99 Compressed Size       00000000 (0)\n+706F9D Uncompressed Size     00000000 (0)\n+706FA1 Filename Length       0027 (39)\n+706FA3 Extra Length          0009 (9)\n+706FA5 Comment Length        0000 (0)\n+706FA7 Disk Start            0000 (0)\n+706FA9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+706FAB Ext File Attributes   00000000 (0)\n+706FAF Local Header Offset   0046AFAB (4632491)\n+706FB3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x706FB3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+706FDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+706FDC   Length              0005 (5)\n+706FDE   Flags               01 (1) 'Modification'\n+706FDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+706FE3 CENTRAL HEADER #1295  02014B50 (33639248)\n+706FE7 Created Zip Spec      14 (20) '2.0'\n+706FE8 Created OS            00 (0) 'MS-DOS'\n+706FE9 Extract Zip Spec      14 (20) '2.0'\n+706FEA Extract OS            00 (0) 'MS-DOS'\n+706FEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+706FED Compression Method    0000 (0) 'Stored'\n+706FEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+706FF3 CRC                   B96C1EAA (3110870698)\n+706FF7 Compressed Size       00000517 (1303)\n+706FFB Uncompressed Size     00000517 (1303)\n+706FFF Filename Length       004A (74)\n+707001 Extra Length          0009 (9)\n+707003 Comment Length        0000 (0)\n+707005 Disk Start            0000 (0)\n+707007 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707009 Ext File Attributes   00000000 (0)\n+70700D Local Header Offset   0046AFF9 (4632569)\n+707011 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707011: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70705B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70705D   Length              0005 (5)\n+70705F   Flags               01 (1) 'Modification'\n+707060   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707064 CENTRAL HEADER #1296  02014B50 (33639248)\n+707068 Created Zip Spec      14 (20) '2.0'\n+707069 Created OS            00 (0) 'MS-DOS'\n+70706A Extract Zip Spec      14 (20) '2.0'\n+70706B Extract OS            00 (0) 'MS-DOS'\n+70706C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70706E Compression Method    0000 (0) 'Stored'\n+707070 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707074 CRC                   7934C791 (2033502097)\n+707078 Compressed Size       0000051C (1308)\n+70707C Uncompressed Size     0000051C (1308)\n+707080 Filename Length       004B (75)\n+707082 Extra Length          0009 (9)\n+707084 Comment Length        0000 (0)\n+707086 Disk Start            0000 (0)\n+707088 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70708A Ext File Attributes   00000000 (0)\n+70708E Local Header Offset   0046B591 (4634001)\n+707092 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707092: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7070DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7070DF   Length              0005 (5)\n+7070E1   Flags               01 (1) 'Modification'\n+7070E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7070E6 CENTRAL HEADER #1297  02014B50 (33639248)\n+7070EA Created Zip Spec      14 (20) '2.0'\n+7070EB Created OS            00 (0) 'MS-DOS'\n+7070EC Extract Zip Spec      14 (20) '2.0'\n+7070ED Extract OS            00 (0) 'MS-DOS'\n+7070EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7070F0 Compression Method    0000 (0) 'Stored'\n+7070F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7070F6 CRC                   BF357544 (3207951684)\n+7070FA Compressed Size       000008B2 (2226)\n+7070FE Uncompressed Size     000008B2 (2226)\n+707102 Filename Length       0041 (65)\n+707104 Extra Length          0009 (9)\n+707106 Comment Length        0000 (0)\n+707108 Disk Start            0000 (0)\n+70710A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70710C Ext File Attributes   00000000 (0)\n+707110 Local Header Offset   0046BB2F (4635439)\n+707114 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707114: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707155 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707157   Length              0005 (5)\n+707159   Flags               01 (1) 'Modification'\n+70715A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70715E CENTRAL HEADER #1298  02014B50 (33639248)\n+707162 Created Zip Spec      14 (20) '2.0'\n+707163 Created OS            00 (0) 'MS-DOS'\n+707164 Extract Zip Spec      14 (20) '2.0'\n+707165 Extract OS            00 (0) 'MS-DOS'\n+707166 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707168 Compression Method    0000 (0) 'Stored'\n+70716A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70716E CRC                   59957DEF (1502969327)\n+707172 Compressed Size       000006AB (1707)\n+707176 Uncompressed Size     000006AB (1707)\n+70717A Filename Length       004A (74)\n+70717C Extra Length          0009 (9)\n+70717E Comment Length        0000 (0)\n+707180 Disk Start            0000 (0)\n+707182 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707184 Ext File Attributes   00000000 (0)\n+707188 Local Header Offset   0046C459 (4637785)\n+70718C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70718C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7071D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7071D8   Length              0005 (5)\n+7071DA   Flags               01 (1) 'Modification'\n+7071DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7071DF CENTRAL HEADER #1299  02014B50 (33639248)\n+7071E3 Created Zip Spec      14 (20) '2.0'\n+7071E4 Created OS            00 (0) 'MS-DOS'\n+7071E5 Extract Zip Spec      14 (20) '2.0'\n+7071E6 Extract OS            00 (0) 'MS-DOS'\n+7071E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7071E9 Compression Method    0000 (0) 'Stored'\n+7071EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7071EF CRC                   30CE65FD (818832893)\n+7071F3 Compressed Size       00000545 (1349)\n+7071F7 Uncompressed Size     00000545 (1349)\n+7071FB Filename Length       004C (76)\n+7071FD Extra Length          0009 (9)\n+7071FF Comment Length        0000 (0)\n+707201 Disk Start            0000 (0)\n+707203 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707205 Ext File Attributes   00000000 (0)\n+707209 Local Header Offset   0046CB85 (4639621)\n+70720D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70720D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707259 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70725B   Length              0005 (5)\n+70725D   Flags               01 (1) 'Modification'\n+70725E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707262 CENTRAL HEADER #1300  02014B50 (33639248)\n+707266 Created Zip Spec      14 (20) '2.0'\n+707267 Created OS            00 (0) 'MS-DOS'\n+707268 Extract Zip Spec      14 (20) '2.0'\n+707269 Extract OS            00 (0) 'MS-DOS'\n+70726A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70726C Compression Method    0000 (0) 'Stored'\n+70726E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707272 CRC                   C145F19E (3242586526)\n+707276 Compressed Size       0000054B (1355)\n+70727A Uncompressed Size     0000054B (1355)\n+70727E Filename Length       004D (77)\n+707280 Extra Length          0009 (9)\n+707282 Comment Length        0000 (0)\n+707284 Disk Start            0000 (0)\n+707286 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707288 Ext File Attributes   00000000 (0)\n+70728C Local Header Offset   0046D14D (4641101)\n+707290 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707290: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7072DD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7072DF   Length              0005 (5)\n+7072E1   Flags               01 (1) 'Modification'\n+7072E2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7072E6 CENTRAL HEADER #1301  02014B50 (33639248)\n+7072EA Created Zip Spec      14 (20) '2.0'\n+7072EB Created OS            00 (0) 'MS-DOS'\n+7072EC Extract Zip Spec      14 (20) '2.0'\n+7072ED Extract OS            00 (0) 'MS-DOS'\n+7072EE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7072F0 Compression Method    0000 (0) 'Stored'\n+7072F2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7072F6 CRC                   511C2CC7 (1360800967)\n+7072FA Compressed Size       000006A4 (1700)\n+7072FE Uncompressed Size     000006A4 (1700)\n+707302 Filename Length       0040 (64)\n+707304 Extra Length          0009 (9)\n+707306 Comment Length        0000 (0)\n+707308 Disk Start            0000 (0)\n+70730A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70730C Ext File Attributes   00000000 (0)\n+707310 Local Header Offset   0046D71C (4642588)\n+707314 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707314: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707354 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707356   Length              0005 (5)\n+707358   Flags               01 (1) 'Modification'\n+707359   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70735D CENTRAL HEADER #1302  02014B50 (33639248)\n+707361 Created Zip Spec      14 (20) '2.0'\n+707362 Created OS            00 (0) 'MS-DOS'\n+707363 Extract Zip Spec      14 (20) '2.0'\n+707364 Extract OS            00 (0) 'MS-DOS'\n+707365 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707367 Compression Method    0000 (0) 'Stored'\n+707369 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70736D CRC                   B5EBBEE9 (3052125929)\n+707371 Compressed Size       00000569 (1385)\n+707375 Uncompressed Size     00000569 (1385)\n+707379 Filename Length       004D (77)\n+70737B Extra Length          0009 (9)\n+70737D Comment Length        0000 (0)\n+70737F Disk Start            0000 (0)\n+707381 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707383 Ext File Attributes   00000000 (0)\n+707387 Local Header Offset   0046DE37 (4644407)\n+70738B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70738B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7073D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7073DA   Length              0005 (5)\n+7073DC   Flags               01 (1) 'Modification'\n+7073DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7073E1 CENTRAL HEADER #1303  02014B50 (33639248)\n+7073E5 Created Zip Spec      14 (20) '2.0'\n+7073E6 Created OS            00 (0) 'MS-DOS'\n+7073E7 Extract Zip Spec      14 (20) '2.0'\n+7073E8 Extract OS            00 (0) 'MS-DOS'\n+7073E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7073EB Compression Method    0000 (0) 'Stored'\n+7073ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7073F1 CRC                   31557B6E (827685742)\n+7073F5 Compressed Size       00000571 (1393)\n+7073F9 Uncompressed Size     00000571 (1393)\n+7073FD Filename Length       004F (79)\n+7073FF Extra Length          0009 (9)\n+707401 Comment Length        0000 (0)\n+707403 Disk Start            0000 (0)\n+707405 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707407 Ext File Attributes   00000000 (0)\n+70740B Local Header Offset   0046E424 (4645924)\n+70740F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70740F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70745E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707460   Length              0005 (5)\n+707462   Flags               01 (1) 'Modification'\n+707463   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707467 CENTRAL HEADER #1304  02014B50 (33639248)\n+70746B Created Zip Spec      14 (20) '2.0'\n+70746C Created OS            00 (0) 'MS-DOS'\n+70746D Extract Zip Spec      14 (20) '2.0'\n+70746E Extract OS            00 (0) 'MS-DOS'\n+70746F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707471 Compression Method    0000 (0) 'Stored'\n+707473 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707477 CRC                   9E00A28D (2650841741)\n+70747B Compressed Size       00000562 (1378)\n+70747F Uncompressed Size     00000562 (1378)\n+707483 Filename Length       004A (74)\n+707485 Extra Length          0009 (9)\n+707487 Comment Length        0000 (0)\n+707489 Disk Start            0000 (0)\n+70748B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70748D Ext File Attributes   00000000 (0)\n+707491 Local Header Offset   0046EA1B (4647451)\n+707495 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707495: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7074DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7074E1   Length              0005 (5)\n+7074E3   Flags               01 (1) 'Modification'\n+7074E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7074E8 CENTRAL HEADER #1305  02014B50 (33639248)\n+7074EC Created Zip Spec      14 (20) '2.0'\n+7074ED Created OS            00 (0) 'MS-DOS'\n+7074EE Extract Zip Spec      14 (20) '2.0'\n+7074EF Extract OS            00 (0) 'MS-DOS'\n+7074F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7074F2 Compression Method    0000 (0) 'Stored'\n+7074F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7074F8 CRC                   B8F3B221 (3102978593)\n+7074FC Compressed Size       00000588 (1416)\n+707500 Uncompressed Size     00000588 (1416)\n+707504 Filename Length       004C (76)\n+707506 Extra Length          0009 (9)\n+707508 Comment Length        0000 (0)\n+70750A Disk Start            0000 (0)\n+70750C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70750E Ext File Attributes   00000000 (0)\n+707512 Local Header Offset   0046EFFE (4648958)\n+707516 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707516: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707562 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707564   Length              0005 (5)\n+707566   Flags               01 (1) 'Modification'\n+707567   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70756B CENTRAL HEADER #1306  02014B50 (33639248)\n+70756F Created Zip Spec      14 (20) '2.0'\n+707570 Created OS            00 (0) 'MS-DOS'\n+707571 Extract Zip Spec      14 (20) '2.0'\n+707572 Extract OS            00 (0) 'MS-DOS'\n+707573 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707575 Compression Method    0000 (0) 'Stored'\n+707577 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70757B CRC                   A03840DB (2688041179)\n+70757F Compressed Size       000008E6 (2278)\n+707583 Uncompressed Size     000008E6 (2278)\n+707587 Filename Length       0048 (72)\n+707589 Extra Length          0009 (9)\n+70758B Comment Length        0000 (0)\n+70758D Disk Start            0000 (0)\n+70758F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707591 Ext File Attributes   00000000 (0)\n+707595 Local Header Offset   0046F609 (4650505)\n+707599 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707599: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7075E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7075E3   Length              0005 (5)\n+7075E5   Flags               01 (1) 'Modification'\n+7075E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7075EA CENTRAL HEADER #1307  02014B50 (33639248)\n+7075EE Created Zip Spec      14 (20) '2.0'\n+7075EF Created OS            00 (0) 'MS-DOS'\n+7075F0 Extract Zip Spec      14 (20) '2.0'\n+7075F1 Extract OS            00 (0) 'MS-DOS'\n+7075F2 General Purpose Flag  0000 (0)\n+7075F4 Compression Method    0000 (0) 'Stored'\n+7075F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7075FA CRC                   00000000 (0)\n+7075FE Compressed Size       00000000 (0)\n+707602 Uncompressed Size     00000000 (0)\n+707606 Filename Length       0030 (48)\n+707608 Extra Length          0009 (9)\n+70760A Comment Length        0000 (0)\n+70760C Disk Start            0000 (0)\n+70760E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707610 Ext File Attributes   00000000 (0)\n+707614 Local Header Offset   0046FF6E (4652910)\n+707618 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707618: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707648 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70764A   Length              0005 (5)\n+70764C   Flags               01 (1) 'Modification'\n+70764D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707651 CENTRAL HEADER #1308  02014B50 (33639248)\n+707655 Created Zip Spec      14 (20) '2.0'\n+707656 Created OS            00 (0) 'MS-DOS'\n+707657 Extract Zip Spec      14 (20) '2.0'\n+707658 Extract OS            00 (0) 'MS-DOS'\n+707659 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70765B Compression Method    0000 (0) 'Stored'\n+70765D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707661 CRC                   80296188 (2150195592)\n+707665 Compressed Size       00000E77 (3703)\n+707669 Uncompressed Size     00000E77 (3703)\n+70766D Filename Length       0049 (73)\n+70766F Extra Length          0009 (9)\n+707671 Comment Length        0000 (0)\n+707673 Disk Start            0000 (0)\n+707675 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707677 Ext File Attributes   00000000 (0)\n+70767B Local Header Offset   0046FFC5 (4652997)\n+70767F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70767F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7076C8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7076CA   Length              0005 (5)\n+7076CC   Flags               01 (1) 'Modification'\n+7076CD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7076D1 CENTRAL HEADER #1309  02014B50 (33639248)\n+7076D5 Created Zip Spec      14 (20) '2.0'\n+7076D6 Created OS            00 (0) 'MS-DOS'\n+7076D7 Extract Zip Spec      14 (20) '2.0'\n+7076D8 Extract OS            00 (0) 'MS-DOS'\n+7076D9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7076DB Compression Method    0000 (0) 'Stored'\n+7076DD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7076E1 CRC                   179D40B4 (396181684)\n+7076E5 Compressed Size       00002D41 (11585)\n+7076E9 Uncompressed Size     00002D41 (11585)\n+7076ED Filename Length       0054 (84)\n+7076EF Extra Length          0009 (9)\n+7076F1 Comment Length        0000 (0)\n+7076F3 Disk Start            0000 (0)\n+7076F5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7076F7 Ext File Attributes   00000000 (0)\n+7076FB Local Header Offset   00470EBC (4656828)\n+7076FF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7076FF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707753 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707755   Length              0005 (5)\n+707757   Flags               01 (1) 'Modification'\n+707758   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70775C CENTRAL HEADER #1310  02014B50 (33639248)\n+707760 Created Zip Spec      14 (20) '2.0'\n+707761 Created OS            00 (0) 'MS-DOS'\n+707762 Extract Zip Spec      14 (20) '2.0'\n+707763 Extract OS            00 (0) 'MS-DOS'\n+707764 General Purpose Flag  0000 (0)\n+707766 Compression Method    0000 (0) 'Stored'\n+707768 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70776C CRC                   00000000 (0)\n+707770 Compressed Size       00000000 (0)\n+707774 Uncompressed Size     00000000 (0)\n+707778 Filename Length       002A (42)\n+70777A Extra Length          0009 (9)\n+70777C Comment Length        0000 (0)\n+70777E Disk Start            0000 (0)\n+707780 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707782 Ext File Attributes   00000000 (0)\n+707786 Local Header Offset   00473C88 (4668552)\n+70778A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70778A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7077B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7077B6   Length              0005 (5)\n+7077B8   Flags               01 (1) 'Modification'\n+7077B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7077BD CENTRAL HEADER #1311  02014B50 (33639248)\n+7077C1 Created Zip Spec      14 (20) '2.0'\n+7077C2 Created OS            00 (0) 'MS-DOS'\n+7077C3 Extract Zip Spec      14 (20) '2.0'\n+7077C4 Extract OS            00 (0) 'MS-DOS'\n+7077C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7077C7 Compression Method    0000 (0) 'Stored'\n+7077C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7077CD CRC                   D8B03CE3 (3635428579)\n+7077D1 Compressed Size       00000ECC (3788)\n+7077D5 Uncompressed Size     00000ECC (3788)\n+7077D9 Filename Length       0049 (73)\n+7077DB Extra Length          0009 (9)\n+7077DD Comment Length        0000 (0)\n+7077DF Disk Start            0000 (0)\n+7077E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7077E3 Ext File Attributes   00000000 (0)\n+7077E7 Local Header Offset   00473CD9 (4668633)\n+7077EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7077EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707834 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707836   Length              0005 (5)\n+707838   Flags               01 (1) 'Modification'\n+707839   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70783D CENTRAL HEADER #1312  02014B50 (33639248)\n+707841 Created Zip Spec      14 (20) '2.0'\n+707842 Created OS            00 (0) 'MS-DOS'\n+707843 Extract Zip Spec      14 (20) '2.0'\n+707844 Extract OS            00 (0) 'MS-DOS'\n+707845 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707847 Compression Method    0000 (0) 'Stored'\n+707849 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70784D CRC                   EEBAB417 (4005213207)\n+707851 Compressed Size       000005FF (1535)\n+707855 Uncompressed Size     000005FF (1535)\n+707859 Filename Length       0048 (72)\n+70785B Extra Length          0009 (9)\n+70785D Comment Length        0000 (0)\n+70785F Disk Start            0000 (0)\n+707861 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707863 Ext File Attributes   00000000 (0)\n+707867 Local Header Offset   00474C25 (4672549)\n+70786B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70786B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7078B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7078B5   Length              0005 (5)\n+7078B7   Flags               01 (1) 'Modification'\n+7078B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7078BC CENTRAL HEADER #1313  02014B50 (33639248)\n+7078C0 Created Zip Spec      14 (20) '2.0'\n+7078C1 Created OS            00 (0) 'MS-DOS'\n+7078C2 Extract Zip Spec      14 (20) '2.0'\n+7078C3 Extract OS            00 (0) 'MS-DOS'\n+7078C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7078C6 Compression Method    0000 (0) 'Stored'\n+7078C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7078CC CRC                   75D2ADE7 (1976741351)\n+7078D0 Compressed Size       00000B2B (2859)\n+7078D4 Uncompressed Size     00000B2B (2859)\n+7078D8 Filename Length       0059 (89)\n+7078DA Extra Length          0009 (9)\n+7078DC Comment Length        0000 (0)\n+7078DE Disk Start            0000 (0)\n+7078E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7078E2 Ext File Attributes   00000000 (0)\n+7078E6 Local Header Offset   004752A3 (4674211)\n+7078EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7078EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707943 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707945   Length              0005 (5)\n+707947   Flags               01 (1) 'Modification'\n+707948   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70794C CENTRAL HEADER #1314  02014B50 (33639248)\n+707950 Created Zip Spec      14 (20) '2.0'\n+707951 Created OS            00 (0) 'MS-DOS'\n+707952 Extract Zip Spec      14 (20) '2.0'\n+707953 Extract OS            00 (0) 'MS-DOS'\n+707954 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707956 Compression Method    0000 (0) 'Stored'\n+707958 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70795C CRC                   755A196E (1968839022)\n+707960 Compressed Size       00001309 (4873)\n+707964 Uncompressed Size     00001309 (4873)\n+707968 Filename Length       003C (60)\n+70796A Extra Length          0009 (9)\n+70796C Comment Length        0000 (0)\n+70796E Disk Start            0000 (0)\n+707970 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707972 Ext File Attributes   00000000 (0)\n+707976 Local Header Offset   00475E5E (4677214)\n+70797A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70797A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7079B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7079B8   Length              0005 (5)\n+7079BA   Flags               01 (1) 'Modification'\n+7079BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7079BF CENTRAL HEADER #1315  02014B50 (33639248)\n+7079C3 Created Zip Spec      14 (20) '2.0'\n+7079C4 Created OS            00 (0) 'MS-DOS'\n+7079C5 Extract Zip Spec      14 (20) '2.0'\n+7079C6 Extract OS            00 (0) 'MS-DOS'\n+7079C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7079C9 Compression Method    0000 (0) 'Stored'\n+7079CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7079CF CRC                   59E1F72D (1507981101)\n+7079D3 Compressed Size       0000092F (2351)\n+7079D7 Uncompressed Size     0000092F (2351)\n+7079DB Filename Length       004E (78)\n+7079DD Extra Length          0009 (9)\n+7079DF Comment Length        0000 (0)\n+7079E1 Disk Start            0000 (0)\n+7079E3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7079E5 Ext File Attributes   00000000 (0)\n+7079E9 Local Header Offset   004771DA (4682202)\n+7079ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7079ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707A3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707A3D   Length              0005 (5)\n+707A3F   Flags               01 (1) 'Modification'\n+707A40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707A44 CENTRAL HEADER #1316  02014B50 (33639248)\n+707A48 Created Zip Spec      14 (20) '2.0'\n+707A49 Created OS            00 (0) 'MS-DOS'\n+707A4A Extract Zip Spec      14 (20) '2.0'\n+707A4B Extract OS            00 (0) 'MS-DOS'\n+707A4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707A4E Compression Method    0000 (0) 'Stored'\n+707A50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707A54 CRC                   FB40FD46 (4215340358)\n+707A58 Compressed Size       00000B06 (2822)\n+707A5C Uncompressed Size     00000B06 (2822)\n+707A60 Filename Length       0054 (84)\n+707A62 Extra Length          0009 (9)\n+707A64 Comment Length        0000 (0)\n+707A66 Disk Start            0000 (0)\n+707A68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707A6A Ext File Attributes   00000000 (0)\n+707A6E Local Header Offset   00477B8E (4684686)\n+707A72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707A72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707AC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707AC8   Length              0005 (5)\n+707ACA   Flags               01 (1) 'Modification'\n+707ACB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707ACF CENTRAL HEADER #1317  02014B50 (33639248)\n+707AD3 Created Zip Spec      14 (20) '2.0'\n+707AD4 Created OS            00 (0) 'MS-DOS'\n+707AD5 Extract Zip Spec      14 (20) '2.0'\n+707AD6 Extract OS            00 (0) 'MS-DOS'\n+707AD7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707AD9 Compression Method    0000 (0) 'Stored'\n+707ADB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707ADF CRC                   53F9F17D (1408889213)\n+707AE3 Compressed Size       0000100D (4109)\n+707AE7 Uncompressed Size     0000100D (4109)\n+707AEB Filename Length       0050 (80)\n+707AED Extra Length          0009 (9)\n+707AEF Comment Length        0000 (0)\n+707AF1 Disk Start            0000 (0)\n+707AF3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707AF5 Ext File Attributes   00000000 (0)\n+707AF9 Local Header Offset   0047871F (4687647)\n+707AFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707AFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707B4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707B4F   Length              0005 (5)\n+707B51   Flags               01 (1) 'Modification'\n+707B52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707B56 CENTRAL HEADER #1318  02014B50 (33639248)\n+707B5A Created Zip Spec      14 (20) '2.0'\n+707B5B Created OS            00 (0) 'MS-DOS'\n+707B5C Extract Zip Spec      14 (20) '2.0'\n+707B5D Extract OS            00 (0) 'MS-DOS'\n+707B5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707B60 Compression Method    0000 (0) 'Stored'\n+707B62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707B66 CRC                   D85C97E6 (3629946854)\n+707B6A Compressed Size       000035CB (13771)\n+707B6E Uncompressed Size     000035CB (13771)\n+707B72 Filename Length       004B (75)\n+707B74 Extra Length          0009 (9)\n+707B76 Comment Length        0000 (0)\n+707B78 Disk Start            0000 (0)\n+707B7A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707B7C Ext File Attributes   00000000 (0)\n+707B80 Local Header Offset   004797B3 (4691891)\n+707B84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707B84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707BCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707BD1   Length              0005 (5)\n+707BD3   Flags               01 (1) 'Modification'\n+707BD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707BD8 CENTRAL HEADER #1319  02014B50 (33639248)\n+707BDC Created Zip Spec      14 (20) '2.0'\n+707BDD Created OS            00 (0) 'MS-DOS'\n+707BDE Extract Zip Spec      14 (20) '2.0'\n+707BDF Extract OS            00 (0) 'MS-DOS'\n+707BE0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707BE2 Compression Method    0000 (0) 'Stored'\n+707BE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707BE8 CRC                   790FD089 (2031079561)\n+707BEC Compressed Size       000008A2 (2210)\n+707BF0 Uncompressed Size     000008A2 (2210)\n+707BF4 Filename Length       0053 (83)\n+707BF6 Extra Length          0009 (9)\n+707BF8 Comment Length        0000 (0)\n+707BFA Disk Start            0000 (0)\n+707BFC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707BFE Ext File Attributes   00000000 (0)\n+707C02 Local Header Offset   0047CE00 (4705792)\n+707C06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707C06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707C59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707C5B   Length              0005 (5)\n+707C5D   Flags               01 (1) 'Modification'\n+707C5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707C62 CENTRAL HEADER #1320  02014B50 (33639248)\n+707C66 Created Zip Spec      14 (20) '2.0'\n+707C67 Created OS            00 (0) 'MS-DOS'\n+707C68 Extract Zip Spec      14 (20) '2.0'\n+707C69 Extract OS            00 (0) 'MS-DOS'\n+707C6A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707C6C Compression Method    0000 (0) 'Stored'\n+707C6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707C72 CRC                   85FEC00A (2248065034)\n+707C76 Compressed Size       00000ED7 (3799)\n+707C7A Uncompressed Size     00000ED7 (3799)\n+707C7E Filename Length       0050 (80)\n+707C80 Extra Length          0009 (9)\n+707C82 Comment Length        0000 (0)\n+707C84 Disk Start            0000 (0)\n+707C86 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707C88 Ext File Attributes   00000000 (0)\n+707C8C Local Header Offset   0047D72C (4708140)\n+707C90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707C90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707CE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707CE2   Length              0005 (5)\n+707CE4   Flags               01 (1) 'Modification'\n+707CE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707CE9 CENTRAL HEADER #1321  02014B50 (33639248)\n+707CED Created Zip Spec      14 (20) '2.0'\n+707CEE Created OS            00 (0) 'MS-DOS'\n+707CEF Extract Zip Spec      14 (20) '2.0'\n+707CF0 Extract OS            00 (0) 'MS-DOS'\n+707CF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707CF3 Compression Method    0000 (0) 'Stored'\n+707CF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707CF9 CRC                   ACB394E1 (2897450209)\n+707CFD Compressed Size       0000087F (2175)\n+707D01 Uncompressed Size     0000087F (2175)\n+707D05 Filename Length       0048 (72)\n+707D07 Extra Length          0009 (9)\n+707D09 Comment Length        0000 (0)\n+707D0B Disk Start            0000 (0)\n+707D0D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707D0F Ext File Attributes   00000000 (0)\n+707D13 Local Header Offset   0047E68A (4712074)\n+707D17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707D17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707D5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707D61   Length              0005 (5)\n+707D63   Flags               01 (1) 'Modification'\n+707D64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707D68 CENTRAL HEADER #1322  02014B50 (33639248)\n+707D6C Created Zip Spec      14 (20) '2.0'\n+707D6D Created OS            00 (0) 'MS-DOS'\n+707D6E Extract Zip Spec      14 (20) '2.0'\n+707D6F Extract OS            00 (0) 'MS-DOS'\n+707D70 General Purpose Flag  0000 (0)\n+707D72 Compression Method    0000 (0) 'Stored'\n+707D74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707D78 CRC                   00000000 (0)\n+707D7C Compressed Size       00000000 (0)\n+707D80 Uncompressed Size     00000000 (0)\n+707D84 Filename Length       0030 (48)\n+707D86 Extra Length          0009 (9)\n+707D88 Comment Length        0000 (0)\n+707D8A Disk Start            0000 (0)\n+707D8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707D8E Ext File Attributes   00000000 (0)\n+707D92 Local Header Offset   0047EF88 (4714376)\n+707D96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707D96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707DC6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707DC8   Length              0005 (5)\n+707DCA   Flags               01 (1) 'Modification'\n+707DCB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707DCF CENTRAL HEADER #1323  02014B50 (33639248)\n+707DD3 Created Zip Spec      14 (20) '2.0'\n+707DD4 Created OS            00 (0) 'MS-DOS'\n+707DD5 Extract Zip Spec      14 (20) '2.0'\n+707DD6 Extract OS            00 (0) 'MS-DOS'\n+707DD7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707DD9 Compression Method    0000 (0) 'Stored'\n+707DDB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707DDF CRC                   AF38F813 (2939746323)\n+707DE3 Compressed Size       00002F8F (12175)\n+707DE7 Uncompressed Size     00002F8F (12175)\n+707DEB Filename Length       0054 (84)\n+707DED Extra Length          0009 (9)\n+707DEF Comment Length        0000 (0)\n+707DF1 Disk Start            0000 (0)\n+707DF3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707DF5 Ext File Attributes   00000000 (0)\n+707DF9 Local Header Offset   0047EFDF (4714463)\n+707DFD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707DFD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707E51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707E53   Length              0005 (5)\n+707E55   Flags               01 (1) 'Modification'\n+707E56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707E5A CENTRAL HEADER #1324  02014B50 (33639248)\n+707E5E Created Zip Spec      14 (20) '2.0'\n+707E5F Created OS            00 (0) 'MS-DOS'\n+707E60 Extract Zip Spec      14 (20) '2.0'\n+707E61 Extract OS            00 (0) 'MS-DOS'\n+707E62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707E64 Compression Method    0000 (0) 'Stored'\n+707E66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707E6A CRC                   6659263F (1717118527)\n+707E6E Compressed Size       00001E19 (7705)\n+707E72 Uncompressed Size     00001E19 (7705)\n+707E76 Filename Length       004E (78)\n+707E78 Extra Length          0009 (9)\n+707E7A Comment Length        0000 (0)\n+707E7C Disk Start            0000 (0)\n+707E7E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707E80 Ext File Attributes   00000000 (0)\n+707E84 Local Header Offset   00481FF9 (4726777)\n+707E88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707E88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707ED6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707ED8   Length              0005 (5)\n+707EDA   Flags               01 (1) 'Modification'\n+707EDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707EDF CENTRAL HEADER #1325  02014B50 (33639248)\n+707EE3 Created Zip Spec      14 (20) '2.0'\n+707EE4 Created OS            00 (0) 'MS-DOS'\n+707EE5 Extract Zip Spec      14 (20) '2.0'\n+707EE6 Extract OS            00 (0) 'MS-DOS'\n+707EE7 General Purpose Flag  0000 (0)\n+707EE9 Compression Method    0000 (0) 'Stored'\n+707EEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707EEF CRC                   00000000 (0)\n+707EF3 Compressed Size       00000000 (0)\n+707EF7 Uncompressed Size     00000000 (0)\n+707EFB Filename Length       002B (43)\n+707EFD Extra Length          0009 (9)\n+707EFF Comment Length        0000 (0)\n+707F01 Disk Start            0000 (0)\n+707F03 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707F05 Ext File Attributes   00000000 (0)\n+707F09 Local Header Offset   00483E97 (4734615)\n+707F0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707F0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707F38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707F3A   Length              0005 (5)\n+707F3C   Flags               01 (1) 'Modification'\n+707F3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707F41 CENTRAL HEADER #1326  02014B50 (33639248)\n+707F45 Created Zip Spec      14 (20) '2.0'\n+707F46 Created OS            00 (0) 'MS-DOS'\n+707F47 Extract Zip Spec      14 (20) '2.0'\n+707F48 Extract OS            00 (0) 'MS-DOS'\n+707F49 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707F4B Compression Method    0000 (0) 'Stored'\n+707F4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707F51 CRC                   1E182794 (504899476)\n+707F55 Compressed Size       00000CDF (3295)\n+707F59 Uncompressed Size     00000CDF (3295)\n+707F5D Filename Length       0051 (81)\n+707F5F Extra Length          0009 (9)\n+707F61 Comment Length        0000 (0)\n+707F63 Disk Start            0000 (0)\n+707F65 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707F67 Ext File Attributes   00000000 (0)\n+707F6B Local Header Offset   00483EE9 (4734697)\n+707F6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707F6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+707FC0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+707FC2   Length              0005 (5)\n+707FC4   Flags               01 (1) 'Modification'\n+707FC5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+707FC9 CENTRAL HEADER #1327  02014B50 (33639248)\n+707FCD Created Zip Spec      14 (20) '2.0'\n+707FCE Created OS            00 (0) 'MS-DOS'\n+707FCF Extract Zip Spec      14 (20) '2.0'\n+707FD0 Extract OS            00 (0) 'MS-DOS'\n+707FD1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+707FD3 Compression Method    0000 (0) 'Stored'\n+707FD5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+707FD9 CRC                   6D847AE7 (1837398759)\n+707FDD Compressed Size       000003AC (940)\n+707FE1 Uncompressed Size     000003AC (940)\n+707FE5 Filename Length       0047 (71)\n+707FE7 Extra Length          0009 (9)\n+707FE9 Comment Length        0000 (0)\n+707FEB Disk Start            0000 (0)\n+707FED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+707FEF Ext File Attributes   00000000 (0)\n+707FF3 Local Header Offset   00484C50 (4738128)\n+707FF7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x707FF7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70803E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708040   Length              0005 (5)\n+708042   Flags               01 (1) 'Modification'\n+708043   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708047 CENTRAL HEADER #1328  02014B50 (33639248)\n+70804B Created Zip Spec      14 (20) '2.0'\n+70804C Created OS            00 (0) 'MS-DOS'\n+70804D Extract Zip Spec      14 (20) '2.0'\n+70804E Extract OS            00 (0) 'MS-DOS'\n+70804F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708051 Compression Method    0000 (0) 'Stored'\n+708053 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708057 CRC                   21E16F63 (568422243)\n+70805B Compressed Size       0000046D (1133)\n+70805F Uncompressed Size     0000046D (1133)\n+708063 Filename Length       004A (74)\n+708065 Extra Length          0009 (9)\n+708067 Comment Length        0000 (0)\n+708069 Disk Start            0000 (0)\n+70806B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70806D Ext File Attributes   00000000 (0)\n+708071 Local Header Offset   0048507A (4739194)\n+708075 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708075: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7080BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7080C1   Length              0005 (5)\n+7080C3   Flags               01 (1) 'Modification'\n+7080C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7080C8 CENTRAL HEADER #1329  02014B50 (33639248)\n+7080CC Created Zip Spec      14 (20) '2.0'\n+7080CD Created OS            00 (0) 'MS-DOS'\n+7080CE Extract Zip Spec      14 (20) '2.0'\n+7080CF Extract OS            00 (0) 'MS-DOS'\n+7080D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7080D2 Compression Method    0000 (0) 'Stored'\n+7080D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7080D8 CRC                   0709B18C (118075788)\n+7080DC Compressed Size       00003B49 (15177)\n+7080E0 Uncompressed Size     00003B49 (15177)\n+7080E4 Filename Length       0040 (64)\n+7080E6 Extra Length          0009 (9)\n+7080E8 Comment Length        0000 (0)\n+7080EA Disk Start            0000 (0)\n+7080EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7080EE Ext File Attributes   00000000 (0)\n+7080F2 Local Header Offset   00485568 (4740456)\n+7080F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7080F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708136 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708138   Length              0005 (5)\n+70813A   Flags               01 (1) 'Modification'\n+70813B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70813F CENTRAL HEADER #1330  02014B50 (33639248)\n+708143 Created Zip Spec      14 (20) '2.0'\n+708144 Created OS            00 (0) 'MS-DOS'\n+708145 Extract Zip Spec      14 (20) '2.0'\n+708146 Extract OS            00 (0) 'MS-DOS'\n+708147 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708149 Compression Method    0000 (0) 'Stored'\n+70814B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70814F CRC                   E2477A52 (3796335186)\n+708153 Compressed Size       00000B00 (2816)\n+708157 Uncompressed Size     00000B00 (2816)\n+70815B Filename Length       0044 (68)\n+70815D Extra Length          0009 (9)\n+70815F Comment Length        0000 (0)\n+708161 Disk Start            0000 (0)\n+708163 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708165 Ext File Attributes   00000000 (0)\n+708169 Local Header Offset   00489128 (4755752)\n+70816D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70816D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7081B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7081B3   Length              0005 (5)\n+7081B5   Flags               01 (1) 'Modification'\n+7081B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7081BA CENTRAL HEADER #1331  02014B50 (33639248)\n+7081BE Created Zip Spec      14 (20) '2.0'\n+7081BF Created OS            00 (0) 'MS-DOS'\n+7081C0 Extract Zip Spec      14 (20) '2.0'\n+7081C1 Extract OS            00 (0) 'MS-DOS'\n+7081C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7081C4 Compression Method    0000 (0) 'Stored'\n+7081C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7081CA CRC                   00160E4A (1445450)\n+7081CE Compressed Size       00001208 (4616)\n+7081D2 Uncompressed Size     00001208 (4616)\n+7081D6 Filename Length       0045 (69)\n+7081D8 Extra Length          0009 (9)\n+7081DA Comment Length        0000 (0)\n+7081DC Disk Start            0000 (0)\n+7081DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7081E0 Ext File Attributes   00000000 (0)\n+7081E4 Local Header Offset   00489CA3 (4758691)\n+7081E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7081E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70822D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70822F   Length              0005 (5)\n+708231   Flags               01 (1) 'Modification'\n+708232   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708236 CENTRAL HEADER #1332  02014B50 (33639248)\n+70823A Created Zip Spec      14 (20) '2.0'\n+70823B Created OS            00 (0) 'MS-DOS'\n+70823C Extract Zip Spec      14 (20) '2.0'\n+70823D Extract OS            00 (0) 'MS-DOS'\n+70823E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708240 Compression Method    0000 (0) 'Stored'\n+708242 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708246 CRC                   6EF68498 (1861649560)\n+70824A Compressed Size       00000A70 (2672)\n+70824E Uncompressed Size     00000A70 (2672)\n+708252 Filename Length       0050 (80)\n+708254 Extra Length          0009 (9)\n+708256 Comment Length        0000 (0)\n+708258 Disk Start            0000 (0)\n+70825A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70825C Ext File Attributes   00000000 (0)\n+708260 Local Header Offset   0048AF27 (4763431)\n+708264 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708264: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7082B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7082B6   Length              0005 (5)\n+7082B8   Flags               01 (1) 'Modification'\n+7082B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7082BD CENTRAL HEADER #1333  02014B50 (33639248)\n+7082C1 Created Zip Spec      14 (20) '2.0'\n+7082C2 Created OS            00 (0) 'MS-DOS'\n+7082C3 Extract Zip Spec      14 (20) '2.0'\n+7082C4 Extract OS            00 (0) 'MS-DOS'\n+7082C5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7082C7 Compression Method    0000 (0) 'Stored'\n+7082C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7082CD CRC                   0DCE7BD6 (231635926)\n+7082D1 Compressed Size       00000419 (1049)\n+7082D5 Uncompressed Size     00000419 (1049)\n+7082D9 Filename Length       0032 (50)\n+7082DB Extra Length          0009 (9)\n+7082DD Comment Length        0000 (0)\n+7082DF Disk Start            0000 (0)\n+7082E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7082E3 Ext File Attributes   00000000 (0)\n+7082E7 Local Header Offset   0048BA1E (4766238)\n+7082EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7082EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70831D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70831F   Length              0005 (5)\n+708321   Flags               01 (1) 'Modification'\n+708322   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708326 CENTRAL HEADER #1334  02014B50 (33639248)\n+70832A Created Zip Spec      14 (20) '2.0'\n+70832B Created OS            00 (0) 'MS-DOS'\n+70832C Extract Zip Spec      14 (20) '2.0'\n+70832D Extract OS            00 (0) 'MS-DOS'\n+70832E General Purpose Flag  0000 (0)\n+708330 Compression Method    0000 (0) 'Stored'\n+708332 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708336 CRC                   00000000 (0)\n+70833A Compressed Size       00000000 (0)\n+70833E Uncompressed Size     00000000 (0)\n+708342 Filename Length       002A (42)\n+708344 Extra Length          0009 (9)\n+708346 Comment Length        0000 (0)\n+708348 Disk Start            0000 (0)\n+70834A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70834C Ext File Attributes   00000000 (0)\n+708350 Local Header Offset   0048BEA0 (4767392)\n+708354 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708354: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70837E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708380   Length              0005 (5)\n+708382   Flags               01 (1) 'Modification'\n+708383   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708387 CENTRAL HEADER #1335  02014B50 (33639248)\n+70838B Created Zip Spec      14 (20) '2.0'\n+70838C Created OS            00 (0) 'MS-DOS'\n+70838D Extract Zip Spec      14 (20) '2.0'\n+70838E Extract OS            00 (0) 'MS-DOS'\n+70838F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708391 Compression Method    0000 (0) 'Stored'\n+708393 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708397 CRC                   3EC7C431 (1053279281)\n+70839B Compressed Size       000006D8 (1752)\n+70839F Uncompressed Size     000006D8 (1752)\n+7083A3 Filename Length       004C (76)\n+7083A5 Extra Length          0009 (9)\n+7083A7 Comment Length        0000 (0)\n+7083A9 Disk Start            0000 (0)\n+7083AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7083AD Ext File Attributes   00000000 (0)\n+7083B1 Local Header Offset   0048BEF1 (4767473)\n+7083B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7083B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708401 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708403   Length              0005 (5)\n+708405   Flags               01 (1) 'Modification'\n+708406   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70840A CENTRAL HEADER #1336  02014B50 (33639248)\n+70840E Created Zip Spec      14 (20) '2.0'\n+70840F Created OS            00 (0) 'MS-DOS'\n+708410 Extract Zip Spec      14 (20) '2.0'\n+708411 Extract OS            00 (0) 'MS-DOS'\n+708412 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708414 Compression Method    0000 (0) 'Stored'\n+708416 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70841A CRC                   0AF6711C (183922972)\n+70841E Compressed Size       000006CE (1742)\n+708422 Uncompressed Size     000006CE (1742)\n+708426 Filename Length       0046 (70)\n+708428 Extra Length          0009 (9)\n+70842A Comment Length        0000 (0)\n+70842C Disk Start            0000 (0)\n+70842E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708430 Ext File Attributes   00000000 (0)\n+708434 Local Header Offset   0048C64C (4769356)\n+708438 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708438: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70847E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708480   Length              0005 (5)\n+708482   Flags               01 (1) 'Modification'\n+708483   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708487 CENTRAL HEADER #1337  02014B50 (33639248)\n+70848B Created Zip Spec      14 (20) '2.0'\n+70848C Created OS            00 (0) 'MS-DOS'\n+70848D Extract Zip Spec      14 (20) '2.0'\n+70848E Extract OS            00 (0) 'MS-DOS'\n+70848F General Purpose Flag  0000 (0)\n+708491 Compression Method    0000 (0) 'Stored'\n+708493 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708497 CRC                   00000000 (0)\n+70849B Compressed Size       00000000 (0)\n+70849F Uncompressed Size     00000000 (0)\n+7084A3 Filename Length       0021 (33)\n+7084A5 Extra Length          0009 (9)\n+7084A7 Comment Length        0000 (0)\n+7084A9 Disk Start            0000 (0)\n+7084AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7084AD Ext File Attributes   00000000 (0)\n+7084B1 Local Header Offset   0048CD97 (4771223)\n+7084B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7084B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7084D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7084D8   Length              0005 (5)\n+7084DA   Flags               01 (1) 'Modification'\n+7084DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7084DF CENTRAL HEADER #1338  02014B50 (33639248)\n+7084E3 Created Zip Spec      14 (20) '2.0'\n+7084E4 Created OS            00 (0) 'MS-DOS'\n+7084E5 Extract Zip Spec      14 (20) '2.0'\n+7084E6 Extract OS            00 (0) 'MS-DOS'\n+7084E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7084E9 Compression Method    0000 (0) 'Stored'\n+7084EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7084EF CRC                   5B9C99AA (1536989610)\n+7084F3 Compressed Size       00000668 (1640)\n+7084F7 Uncompressed Size     00000668 (1640)\n+7084FB Filename Length       003C (60)\n+7084FD Extra Length          0009 (9)\n+7084FF Comment Length        0000 (0)\n+708501 Disk Start            0000 (0)\n+708503 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708505 Ext File Attributes   00000000 (0)\n+708509 Local Header Offset   0048CDDF (4771295)\n+70850D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70850D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708549 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70854B   Length              0005 (5)\n+70854D   Flags               01 (1) 'Modification'\n+70854E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708552 CENTRAL HEADER #1339  02014B50 (33639248)\n+708556 Created Zip Spec      14 (20) '2.0'\n+708557 Created OS            00 (0) 'MS-DOS'\n+708558 Extract Zip Spec      14 (20) '2.0'\n+708559 Extract OS            00 (0) 'MS-DOS'\n+70855A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70855C Compression Method    0000 (0) 'Stored'\n+70855E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708562 CRC                   050B43B2 (84624306)\n+708566 Compressed Size       00000A2A (2602)\n+70856A Uncompressed Size     00000A2A (2602)\n+70856E Filename Length       0035 (53)\n+708570 Extra Length          0009 (9)\n+708572 Comment Length        0000 (0)\n+708574 Disk Start            0000 (0)\n+708576 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708578 Ext File Attributes   00000000 (0)\n+70857C Local Header Offset   0048D4BA (4773050)\n+708580 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708580: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7085B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7085B7   Length              0005 (5)\n+7085B9   Flags               01 (1) 'Modification'\n+7085BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7085BE CENTRAL HEADER #1340  02014B50 (33639248)\n+7085C2 Created Zip Spec      14 (20) '2.0'\n+7085C3 Created OS            00 (0) 'MS-DOS'\n+7085C4 Extract Zip Spec      14 (20) '2.0'\n+7085C5 Extract OS            00 (0) 'MS-DOS'\n+7085C6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7085C8 Compression Method    0000 (0) 'Stored'\n+7085CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7085CE CRC                   C548D865 (3309885541)\n+7085D2 Compressed Size       000039FF (14847)\n+7085D6 Uncompressed Size     000039FF (14847)\n+7085DA Filename Length       0034 (52)\n+7085DC Extra Length          0009 (9)\n+7085DE Comment Length        0000 (0)\n+7085E0 Disk Start            0000 (0)\n+7085E2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7085E4 Ext File Attributes   00000000 (0)\n+7085E8 Local Header Offset   0048DF50 (4775760)\n+7085EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7085EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708620 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708622   Length              0005 (5)\n+708624   Flags               01 (1) 'Modification'\n+708625   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708629 CENTRAL HEADER #1341  02014B50 (33639248)\n+70862D Created Zip Spec      14 (20) '2.0'\n+70862E Created OS            00 (0) 'MS-DOS'\n+70862F Extract Zip Spec      14 (20) '2.0'\n+708630 Extract OS            00 (0) 'MS-DOS'\n+708631 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708633 Compression Method    0000 (0) 'Stored'\n+708635 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708639 CRC                   F93C1E65 (4181466725)\n+70863D Compressed Size       000004F1 (1265)\n+708641 Uncompressed Size     000004F1 (1265)\n+708645 Filename Length       003B (59)\n+708647 Extra Length          0009 (9)\n+708649 Comment Length        0000 (0)\n+70864B Disk Start            0000 (0)\n+70864D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70864F Ext File Attributes   00000000 (0)\n+708653 Local Header Offset   004919BA (4790714)\n+708657 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708657: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708692 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708694   Length              0005 (5)\n+708696   Flags               01 (1) 'Modification'\n+708697   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70869B CENTRAL HEADER #1342  02014B50 (33639248)\n+70869F Created Zip Spec      14 (20) '2.0'\n+7086A0 Created OS            00 (0) 'MS-DOS'\n+7086A1 Extract Zip Spec      14 (20) '2.0'\n+7086A2 Extract OS            00 (0) 'MS-DOS'\n+7086A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7086A5 Compression Method    0000 (0) 'Stored'\n+7086A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7086AB CRC                   1758261F (391652895)\n+7086AF Compressed Size       0000495E (18782)\n+7086B3 Uncompressed Size     0000495E (18782)\n+7086B7 Filename Length       003C (60)\n+7086B9 Extra Length          0009 (9)\n+7086BB Comment Length        0000 (0)\n+7086BD Disk Start            0000 (0)\n+7086BF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7086C1 Ext File Attributes   00000000 (0)\n+7086C5 Local Header Offset   00491F1D (4792093)\n+7086C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7086C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708705 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708707   Length              0005 (5)\n+708709   Flags               01 (1) 'Modification'\n+70870A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70870E CENTRAL HEADER #1343  02014B50 (33639248)\n+708712 Created Zip Spec      14 (20) '2.0'\n+708713 Created OS            00 (0) 'MS-DOS'\n+708714 Extract Zip Spec      14 (20) '2.0'\n+708715 Extract OS            00 (0) 'MS-DOS'\n+708716 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708718 Compression Method    0000 (0) 'Stored'\n+70871A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70871E CRC                   09B44E50 (162811472)\n+708722 Compressed Size       000004EF (1263)\n+708726 Uncompressed Size     000004EF (1263)\n+70872A Filename Length       0043 (67)\n+70872C Extra Length          0009 (9)\n+70872E Comment Length        0000 (0)\n+708730 Disk Start            0000 (0)\n+708732 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708734 Ext File Attributes   00000000 (0)\n+708738 Local Header Offset   004968EE (4810990)\n+70873C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70873C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70877F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708781   Length              0005 (5)\n+708783   Flags               01 (1) 'Modification'\n+708784   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708788 CENTRAL HEADER #1344  02014B50 (33639248)\n+70878C Created Zip Spec      14 (20) '2.0'\n+70878D Created OS            00 (0) 'MS-DOS'\n+70878E Extract Zip Spec      14 (20) '2.0'\n+70878F Extract OS            00 (0) 'MS-DOS'\n+708790 General Purpose Flag  0808 (2056)\n+       [Bit  3]              1 'Streamed'\n+       [Bit 11]              1 'Language Encoding'\n+708792 Compression Method    0000 (0) 'Stored'\n+708794 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708798 CRC                   09B44E50 (162811472)\n+70879C Compressed Size       000004EF (1263)\n+7087A0 Uncompressed Size     000004EF (1263)\n+7087A4 Filename Length       0048 (72)\n+7087A6 Extra Length          0009 (9)\n+7087A8 Comment Length        0000 (0)\n+7087AA Disk Start            0000 (0)\n+7087AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7087AE Ext File Attributes   00000000 (0)\n+7087B2 Local Header Offset   00496E57 (4812375)\n+7087B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7087B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7087FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708800   Length              0005 (5)\n+708802   Flags               01 (1) 'Modification'\n+708803   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708807 CENTRAL HEADER #1345  02014B50 (33639248)\n+70880B Created Zip Spec      14 (20) '2.0'\n+70880C Created OS            00 (0) 'MS-DOS'\n+70880D Extract Zip Spec      14 (20) '2.0'\n+70880E Extract OS            00 (0) 'MS-DOS'\n+70880F General Purpose Flag  0808 (2056)\n+       [Bit  3]              1 'Streamed'\n+       [Bit 11]              1 'Language Encoding'\n+708811 Compression Method    0000 (0) 'Stored'\n+708813 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708817 CRC                   09B44E50 (162811472)\n+70881B Compressed Size       000004EF (1263)\n+70881F Uncompressed Size     000004EF (1263)\n+708823 Filename Length       0050 (80)\n+708825 Extra Length          0009 (9)\n+708827 Comment Length        0000 (0)\n+708829 Disk Start            0000 (0)\n+70882B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70882D Ext File Attributes   00000000 (0)\n+708831 Local Header Offset   004973C5 (4813765)\n+708835 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708835: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708885 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708887   Length              0005 (5)\n+708889   Flags               01 (1) 'Modification'\n+70888A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70888E CENTRAL HEADER #1346  02014B50 (33639248)\n+708892 Created Zip Spec      14 (20) '2.0'\n+708893 Created OS            00 (0) 'MS-DOS'\n+708894 Extract Zip Spec      14 (20) '2.0'\n+708895 Extract OS            00 (0) 'MS-DOS'\n+708896 General Purpose Flag  0000 (0)\n+708898 Compression Method    0000 (0) 'Stored'\n+70889A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70889E CRC                   00000000 (0)\n+7088A2 Compressed Size       00000000 (0)\n+7088A6 Uncompressed Size     00000000 (0)\n+7088AA Filename Length       0020 (32)\n+7088AC Extra Length          0009 (9)\n+7088AE Comment Length        0000 (0)\n+7088B0 Disk Start            0000 (0)\n+7088B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7088B4 Ext File Attributes   00000000 (0)\n+7088B8 Local Header Offset   0049793B (4815163)\n+7088BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7088BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7088DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7088DE   Length              0005 (5)\n+7088E0   Flags               01 (1) 'Modification'\n+7088E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7088E5 CENTRAL HEADER #1347  02014B50 (33639248)\n+7088E9 Created Zip Spec      14 (20) '2.0'\n+7088EA Created OS            00 (0) 'MS-DOS'\n+7088EB Extract Zip Spec      14 (20) '2.0'\n+7088EC Extract OS            00 (0) 'MS-DOS'\n+7088ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7088EF Compression Method    0000 (0) 'Stored'\n+7088F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7088F5 CRC                   AE92FDCB (2928868811)\n+7088F9 Compressed Size       00001744 (5956)\n+7088FD Uncompressed Size     00001744 (5956)\n+708901 Filename Length       0032 (50)\n+708903 Extra Length          0009 (9)\n+708905 Comment Length        0000 (0)\n+708907 Disk Start            0000 (0)\n+708909 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70890B Ext File Attributes   00000000 (0)\n+70890F Local Header Offset   00497982 (4815234)\n+708913 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708913: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708945 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708947   Length              0005 (5)\n+708949   Flags               01 (1) 'Modification'\n+70894A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70894E CENTRAL HEADER #1348  02014B50 (33639248)\n+708952 Created Zip Spec      14 (20) '2.0'\n+708953 Created OS            00 (0) 'MS-DOS'\n+708954 Extract Zip Spec      14 (20) '2.0'\n+708955 Extract OS            00 (0) 'MS-DOS'\n+708956 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708958 Compression Method    0000 (0) 'Stored'\n+70895A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70895E CRC                   1162A7F0 (291678192)\n+708962 Compressed Size       00001680 (5760)\n+708966 Uncompressed Size     00001680 (5760)\n+70896A Filename Length       0039 (57)\n+70896C Extra Length          0009 (9)\n+70896E Comment Length        0000 (0)\n+708970 Disk Start            0000 (0)\n+708972 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708974 Ext File Attributes   00000000 (0)\n+708978 Local Header Offset   0049912F (4821295)\n+70897C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70897C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7089B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7089B7   Length              0005 (5)\n+7089B9   Flags               01 (1) 'Modification'\n+7089BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7089BE CENTRAL HEADER #1349  02014B50 (33639248)\n+7089C2 Created Zip Spec      14 (20) '2.0'\n+7089C3 Created OS            00 (0) 'MS-DOS'\n+7089C4 Extract Zip Spec      14 (20) '2.0'\n+7089C5 Extract OS            00 (0) 'MS-DOS'\n+7089C6 General Purpose Flag  0000 (0)\n+7089C8 Compression Method    0000 (0) 'Stored'\n+7089CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7089CE CRC                   00000000 (0)\n+7089D2 Compressed Size       00000000 (0)\n+7089D6 Uncompressed Size     00000000 (0)\n+7089DA Filename Length       001F (31)\n+7089DC Extra Length          0009 (9)\n+7089DE Comment Length        0000 (0)\n+7089E0 Disk Start            0000 (0)\n+7089E2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7089E4 Ext File Attributes   00000000 (0)\n+7089E8 Local Header Offset   0049A81F (4827167)\n+7089EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7089EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708A0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708A0D   Length              0005 (5)\n+708A0F   Flags               01 (1) 'Modification'\n+708A10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708A14 CENTRAL HEADER #1350  02014B50 (33639248)\n+708A18 Created Zip Spec      14 (20) '2.0'\n+708A19 Created OS            00 (0) 'MS-DOS'\n+708A1A Extract Zip Spec      14 (20) '2.0'\n+708A1B Extract OS            00 (0) 'MS-DOS'\n+708A1C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708A1E Compression Method    0000 (0) 'Stored'\n+708A20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708A24 CRC                   775C02B8 (2002518712)\n+708A28 Compressed Size       00003F5B (16219)\n+708A2C Uncompressed Size     00003F5B (16219)\n+708A30 Filename Length       0030 (48)\n+708A32 Extra Length          0009 (9)\n+708A34 Comment Length        0000 (0)\n+708A36 Disk Start            0000 (0)\n+708A38 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708A3A Ext File Attributes   00000000 (0)\n+708A3E Local Header Offset   0049A865 (4827237)\n+708A42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708A42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708A72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708A74   Length              0005 (5)\n+708A76   Flags               01 (1) 'Modification'\n+708A77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708A7B CENTRAL HEADER #1351  02014B50 (33639248)\n+708A7F Created Zip Spec      14 (20) '2.0'\n+708A80 Created OS            00 (0) 'MS-DOS'\n+708A81 Extract Zip Spec      14 (20) '2.0'\n+708A82 Extract OS            00 (0) 'MS-DOS'\n+708A83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708A85 Compression Method    0000 (0) 'Stored'\n+708A87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708A8B CRC                   C7AB4B17 (3349891863)\n+708A8F Compressed Size       000005A5 (1445)\n+708A93 Uncompressed Size     000005A5 (1445)\n+708A97 Filename Length       0037 (55)\n+708A99 Extra Length          0009 (9)\n+708A9B Comment Length        0000 (0)\n+708A9D Disk Start            0000 (0)\n+708A9F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708AA1 Ext File Attributes   00000000 (0)\n+708AA5 Local Header Offset   0049E827 (4843559)\n+708AA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708AA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708AE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708AE2   Length              0005 (5)\n+708AE4   Flags               01 (1) 'Modification'\n+708AE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708AE9 CENTRAL HEADER #1352  02014B50 (33639248)\n+708AED Created Zip Spec      14 (20) '2.0'\n+708AEE Created OS            00 (0) 'MS-DOS'\n+708AEF Extract Zip Spec      14 (20) '2.0'\n+708AF0 Extract OS            00 (0) 'MS-DOS'\n+708AF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708AF3 Compression Method    0000 (0) 'Stored'\n+708AF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708AF9 CRC                   935B5779 (2472236921)\n+708AFD Compressed Size       000020C2 (8386)\n+708B01 Uncompressed Size     000020C2 (8386)\n+708B05 Filename Length       0038 (56)\n+708B07 Extra Length          0009 (9)\n+708B09 Comment Length        0000 (0)\n+708B0B Disk Start            0000 (0)\n+708B0D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708B0F Ext File Attributes   00000000 (0)\n+708B13 Local Header Offset   0049EE3A (4845114)\n+708B17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708B17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708B4F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708B51   Length              0005 (5)\n+708B53   Flags               01 (1) 'Modification'\n+708B54   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708B58 CENTRAL HEADER #1353  02014B50 (33639248)\n+708B5C Created Zip Spec      14 (20) '2.0'\n+708B5D Created OS            00 (0) 'MS-DOS'\n+708B5E Extract Zip Spec      14 (20) '2.0'\n+708B5F Extract OS            00 (0) 'MS-DOS'\n+708B60 General Purpose Flag  0000 (0)\n+708B62 Compression Method    0000 (0) 'Stored'\n+708B64 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708B68 CRC                   00000000 (0)\n+708B6C Compressed Size       00000000 (0)\n+708B70 Uncompressed Size     00000000 (0)\n+708B74 Filename Length       0021 (33)\n+708B76 Extra Length          0009 (9)\n+708B78 Comment Length        0000 (0)\n+708B7A Disk Start            0000 (0)\n+708B7C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708B7E Ext File Attributes   00000000 (0)\n+708B82 Local Header Offset   004A0F6B (4853611)\n+708B86 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708B86: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708BA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708BA9   Length              0005 (5)\n+708BAB   Flags               01 (1) 'Modification'\n+708BAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708BB0 CENTRAL HEADER #1354  02014B50 (33639248)\n+708BB4 Created Zip Spec      14 (20) '2.0'\n+708BB5 Created OS            00 (0) 'MS-DOS'\n+708BB6 Extract Zip Spec      14 (20) '2.0'\n+708BB7 Extract OS            00 (0) 'MS-DOS'\n+708BB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708BBA Compression Method    0000 (0) 'Stored'\n+708BBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708BC0 CRC                   74817B02 (1954642690)\n+708BC4 Compressed Size       0000281A (10266)\n+708BC8 Uncompressed Size     0000281A (10266)\n+708BCC Filename Length       0046 (70)\n+708BCE Extra Length          0009 (9)\n+708BD0 Comment Length        0000 (0)\n+708BD2 Disk Start            0000 (0)\n+708BD4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708BD6 Ext File Attributes   00000000 (0)\n+708BDA Local Header Offset   004A0FB3 (4853683)\n+708BDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708BDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708C24 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708C26   Length              0005 (5)\n+708C28   Flags               01 (1) 'Modification'\n+708C29   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708C2D CENTRAL HEADER #1355  02014B50 (33639248)\n+708C31 Created Zip Spec      14 (20) '2.0'\n+708C32 Created OS            00 (0) 'MS-DOS'\n+708C33 Extract Zip Spec      14 (20) '2.0'\n+708C34 Extract OS            00 (0) 'MS-DOS'\n+708C35 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708C37 Compression Method    0000 (0) 'Stored'\n+708C39 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708C3D CRC                   8BDBBEA7 (2346434215)\n+708C41 Compressed Size       00002C91 (11409)\n+708C45 Uncompressed Size     00002C91 (11409)\n+708C49 Filename Length       003C (60)\n+708C4B Extra Length          0009 (9)\n+708C4D Comment Length        0000 (0)\n+708C4F Disk Start            0000 (0)\n+708C51 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708C53 Ext File Attributes   00000000 (0)\n+708C57 Local Header Offset   004A384A (4864074)\n+708C5B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708C5B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708C97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708C99   Length              0005 (5)\n+708C9B   Flags               01 (1) 'Modification'\n+708C9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708CA0 CENTRAL HEADER #1356  02014B50 (33639248)\n+708CA4 Created Zip Spec      14 (20) '2.0'\n+708CA5 Created OS            00 (0) 'MS-DOS'\n+708CA6 Extract Zip Spec      14 (20) '2.0'\n+708CA7 Extract OS            00 (0) 'MS-DOS'\n+708CA8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708CAA Compression Method    0000 (0) 'Stored'\n+708CAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708CB0 CRC                   B1C6B8A4 (2982590628)\n+708CB4 Compressed Size       000003C5 (965)\n+708CB8 Uncompressed Size     000003C5 (965)\n+708CBC Filename Length       0032 (50)\n+708CBE Extra Length          0009 (9)\n+708CC0 Comment Length        0000 (0)\n+708CC2 Disk Start            0000 (0)\n+708CC4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708CC6 Ext File Attributes   00000000 (0)\n+708CCA Local Header Offset   004A654E (4875598)\n+708CCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708CCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708D00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708D02   Length              0005 (5)\n+708D04   Flags               01 (1) 'Modification'\n+708D05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708D09 CENTRAL HEADER #1357  02014B50 (33639248)\n+708D0D Created Zip Spec      14 (20) '2.0'\n+708D0E Created OS            00 (0) 'MS-DOS'\n+708D0F Extract Zip Spec      14 (20) '2.0'\n+708D10 Extract OS            00 (0) 'MS-DOS'\n+708D11 General Purpose Flag  0000 (0)\n+708D13 Compression Method    0000 (0) 'Stored'\n+708D15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708D19 CRC                   00000000 (0)\n+708D1D Compressed Size       00000000 (0)\n+708D21 Uncompressed Size     00000000 (0)\n+708D25 Filename Length       0026 (38)\n+708D27 Extra Length          0009 (9)\n+708D29 Comment Length        0000 (0)\n+708D2B Disk Start            0000 (0)\n+708D2D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708D2F Ext File Attributes   00000000 (0)\n+708D33 Local Header Offset   004A697C (4876668)\n+708D37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708D37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708D5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708D5F   Length              0005 (5)\n+708D61   Flags               01 (1) 'Modification'\n+708D62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708D66 CENTRAL HEADER #1358  02014B50 (33639248)\n+708D6A Created Zip Spec      14 (20) '2.0'\n+708D6B Created OS            00 (0) 'MS-DOS'\n+708D6C Extract Zip Spec      14 (20) '2.0'\n+708D6D Extract OS            00 (0) 'MS-DOS'\n+708D6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708D70 Compression Method    0000 (0) 'Stored'\n+708D72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708D76 CRC                   AA7692A4 (2859897508)\n+708D7A Compressed Size       00000F95 (3989)\n+708D7E Uncompressed Size     00000F95 (3989)\n+708D82 Filename Length       0047 (71)\n+708D84 Extra Length          0009 (9)\n+708D86 Comment Length        0000 (0)\n+708D88 Disk Start            0000 (0)\n+708D8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708D8C Ext File Attributes   00000000 (0)\n+708D90 Local Header Offset   004A69C9 (4876745)\n+708D94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708D94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708DDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708DDD   Length              0005 (5)\n+708DDF   Flags               01 (1) 'Modification'\n+708DE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708DE4 CENTRAL HEADER #1359  02014B50 (33639248)\n+708DE8 Created Zip Spec      14 (20) '2.0'\n+708DE9 Created OS            00 (0) 'MS-DOS'\n+708DEA Extract Zip Spec      14 (20) '2.0'\n+708DEB Extract OS            00 (0) 'MS-DOS'\n+708DEC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708DEE Compression Method    0000 (0) 'Stored'\n+708DF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708DF4 CRC                   B7357AFB (3073735419)\n+708DF8 Compressed Size       00002D19 (11545)\n+708DFC Uncompressed Size     00002D19 (11545)\n+708E00 Filename Length       003B (59)\n+708E02 Extra Length          0009 (9)\n+708E04 Comment Length        0000 (0)\n+708E06 Disk Start            0000 (0)\n+708E08 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708E0A Ext File Attributes   00000000 (0)\n+708E0E Local Header Offset   004A79DC (4880860)\n+708E12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708E12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708E4D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708E4F   Length              0005 (5)\n+708E51   Flags               01 (1) 'Modification'\n+708E52   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708E56 CENTRAL HEADER #1360  02014B50 (33639248)\n+708E5A Created Zip Spec      14 (20) '2.0'\n+708E5B Created OS            00 (0) 'MS-DOS'\n+708E5C Extract Zip Spec      14 (20) '2.0'\n+708E5D Extract OS            00 (0) 'MS-DOS'\n+708E5E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708E60 Compression Method    0000 (0) 'Stored'\n+708E62 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708E66 CRC                   C79AC1A5 (3348808101)\n+708E6A Compressed Size       00000D0C (3340)\n+708E6E Uncompressed Size     00000D0C (3340)\n+708E72 Filename Length       004E (78)\n+708E74 Extra Length          0009 (9)\n+708E76 Comment Length        0000 (0)\n+708E78 Disk Start            0000 (0)\n+708E7A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708E7C Ext File Attributes   00000000 (0)\n+708E80 Local Header Offset   004AA767 (4892519)\n+708E84 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708E84: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708ED2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708ED4   Length              0005 (5)\n+708ED6   Flags               01 (1) 'Modification'\n+708ED7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708EDB CENTRAL HEADER #1361  02014B50 (33639248)\n+708EDF Created Zip Spec      14 (20) '2.0'\n+708EE0 Created OS            00 (0) 'MS-DOS'\n+708EE1 Extract Zip Spec      14 (20) '2.0'\n+708EE2 Extract OS            00 (0) 'MS-DOS'\n+708EE3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708EE5 Compression Method    0000 (0) 'Stored'\n+708EE7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708EEB CRC                   09C52AF8 (163916536)\n+708EEF Compressed Size       000003A9 (937)\n+708EF3 Uncompressed Size     000003A9 (937)\n+708EF7 Filename Length       0042 (66)\n+708EF9 Extra Length          0009 (9)\n+708EFB Comment Length        0000 (0)\n+708EFD Disk Start            0000 (0)\n+708EFF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708F01 Ext File Attributes   00000000 (0)\n+708F05 Local Header Offset   004AB4F8 (4895992)\n+708F09 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708F09: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708F4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708F4D   Length              0005 (5)\n+708F4F   Flags               01 (1) 'Modification'\n+708F50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708F54 CENTRAL HEADER #1362  02014B50 (33639248)\n+708F58 Created Zip Spec      14 (20) '2.0'\n+708F59 Created OS            00 (0) 'MS-DOS'\n+708F5A Extract Zip Spec      14 (20) '2.0'\n+708F5B Extract OS            00 (0) 'MS-DOS'\n+708F5C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708F5E Compression Method    0000 (0) 'Stored'\n+708F60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708F64 CRC                   963EDCDB (2520702171)\n+708F68 Compressed Size       0000723A (29242)\n+708F6C Uncompressed Size     0000723A (29242)\n+708F70 Filename Length       003C (60)\n+708F72 Extra Length          0009 (9)\n+708F74 Comment Length        0000 (0)\n+708F76 Disk Start            0000 (0)\n+708F78 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708F7A Ext File Attributes   00000000 (0)\n+708F7E Local Header Offset   004AB91A (4897050)\n+708F82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708F82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+708FBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+708FC0   Length              0005 (5)\n+708FC2   Flags               01 (1) 'Modification'\n+708FC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+708FC7 CENTRAL HEADER #1363  02014B50 (33639248)\n+708FCB Created Zip Spec      14 (20) '2.0'\n+708FCC Created OS            00 (0) 'MS-DOS'\n+708FCD Extract Zip Spec      14 (20) '2.0'\n+708FCE Extract OS            00 (0) 'MS-DOS'\n+708FCF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+708FD1 Compression Method    0000 (0) 'Stored'\n+708FD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+708FD7 CRC                   180ADDBE (403365310)\n+708FDB Compressed Size       000095B9 (38329)\n+708FDF Uncompressed Size     000095B9 (38329)\n+708FE3 Filename Length       003B (59)\n+708FE5 Extra Length          0009 (9)\n+708FE7 Comment Length        0000 (0)\n+708FE9 Disk Start            0000 (0)\n+708FEB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+708FED Ext File Attributes   00000000 (0)\n+708FF1 Local Header Offset   004B2BC7 (4926407)\n+708FF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x708FF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709030 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709032   Length              0005 (5)\n+709034   Flags               01 (1) 'Modification'\n+709035   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709039 CENTRAL HEADER #1364  02014B50 (33639248)\n+70903D Created Zip Spec      14 (20) '2.0'\n+70903E Created OS            00 (0) 'MS-DOS'\n+70903F Extract Zip Spec      14 (20) '2.0'\n+709040 Extract OS            00 (0) 'MS-DOS'\n+709041 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709043 Compression Method    0000 (0) 'Stored'\n+709045 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709049 CRC                   7701B7FD (1996601341)\n+70904D Compressed Size       00000864 (2148)\n+709051 Uncompressed Size     00000864 (2148)\n+709055 Filename Length       0043 (67)\n+709057 Extra Length          0009 (9)\n+709059 Comment Length        0000 (0)\n+70905B Disk Start            0000 (0)\n+70905D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70905F Ext File Attributes   00000000 (0)\n+709063 Local Header Offset   004BC1F2 (4964850)\n+709067 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709067: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7090AA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7090AC   Length              0005 (5)\n+7090AE   Flags               01 (1) 'Modification'\n+7090AF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7090B3 CENTRAL HEADER #1365  02014B50 (33639248)\n+7090B7 Created Zip Spec      14 (20) '2.0'\n+7090B8 Created OS            00 (0) 'MS-DOS'\n+7090B9 Extract Zip Spec      14 (20) '2.0'\n+7090BA Extract OS            00 (0) 'MS-DOS'\n+7090BB General Purpose Flag  0000 (0)\n+7090BD Compression Method    0000 (0) 'Stored'\n+7090BF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7090C3 CRC                   00000000 (0)\n+7090C7 Compressed Size       00000000 (0)\n+7090CB Uncompressed Size     00000000 (0)\n+7090CF Filename Length       0024 (36)\n+7090D1 Extra Length          0009 (9)\n+7090D3 Comment Length        0000 (0)\n+7090D5 Disk Start            0000 (0)\n+7090D7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7090D9 Ext File Attributes   00000000 (0)\n+7090DD Local Header Offset   004BCAD0 (4967120)\n+7090E1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7090E1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709105 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709107   Length              0005 (5)\n+709109   Flags               01 (1) 'Modification'\n+70910A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70910E CENTRAL HEADER #1366  02014B50 (33639248)\n+709112 Created Zip Spec      14 (20) '2.0'\n+709113 Created OS            00 (0) 'MS-DOS'\n+709114 Extract Zip Spec      14 (20) '2.0'\n+709115 Extract OS            00 (0) 'MS-DOS'\n+709116 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709118 Compression Method    0000 (0) 'Stored'\n+70911A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70911E CRC                   E0604599 (3764405657)\n+709122 Compressed Size       00004154 (16724)\n+709126 Uncompressed Size     00004154 (16724)\n+70912A Filename Length       003A (58)\n+70912C Extra Length          0009 (9)\n+70912E Comment Length        0000 (0)\n+709130 Disk Start            0000 (0)\n+709132 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709134 Ext File Attributes   00000000 (0)\n+709138 Local Header Offset   004BCB1B (4967195)\n+70913C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70913C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709176 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709178   Length              0005 (5)\n+70917A   Flags               01 (1) 'Modification'\n+70917B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70917F CENTRAL HEADER #1367  02014B50 (33639248)\n+709183 Created Zip Spec      14 (20) '2.0'\n+709184 Created OS            00 (0) 'MS-DOS'\n+709185 Extract Zip Spec      14 (20) '2.0'\n+709186 Extract OS            00 (0) 'MS-DOS'\n+709187 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709189 Compression Method    0000 (0) 'Stored'\n+70918B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70918F CRC                   20C4D90B (549771531)\n+709193 Compressed Size       000004E4 (1252)\n+709197 Uncompressed Size     000004E4 (1252)\n+70919B Filename Length       0041 (65)\n+70919D Extra Length          0009 (9)\n+70919F Comment Length        0000 (0)\n+7091A1 Disk Start            0000 (0)\n+7091A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7091A5 Ext File Attributes   00000000 (0)\n+7091A9 Local Header Offset   004C0CE0 (4984032)\n+7091AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7091AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7091EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7091F0   Length              0005 (5)\n+7091F2   Flags               01 (1) 'Modification'\n+7091F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7091F7 CENTRAL HEADER #1368  02014B50 (33639248)\n+7091FB Created Zip Spec      14 (20) '2.0'\n+7091FC Created OS            00 (0) 'MS-DOS'\n+7091FD Extract Zip Spec      14 (20) '2.0'\n+7091FE Extract OS            00 (0) 'MS-DOS'\n+7091FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709201 Compression Method    0000 (0) 'Stored'\n+709203 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709207 CRC                   BE10FD6D (3188784493)\n+70920B Compressed Size       000007CE (1998)\n+70920F Uncompressed Size     000007CE (1998)\n+709213 Filename Length       0042 (66)\n+709215 Extra Length          0009 (9)\n+709217 Comment Length        0000 (0)\n+709219 Disk Start            0000 (0)\n+70921B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70921D Ext File Attributes   00000000 (0)\n+709221 Local Header Offset   004C123C (4985404)\n+709225 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709225: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709267 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709269   Length              0005 (5)\n+70926B   Flags               01 (1) 'Modification'\n+70926C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709270 CENTRAL HEADER #1369  02014B50 (33639248)\n+709274 Created Zip Spec      14 (20) '2.0'\n+709275 Created OS            00 (0) 'MS-DOS'\n+709276 Extract Zip Spec      14 (20) '2.0'\n+709277 Extract OS            00 (0) 'MS-DOS'\n+709278 General Purpose Flag  0000 (0)\n+70927A Compression Method    0000 (0) 'Stored'\n+70927C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709280 CRC                   00000000 (0)\n+709284 Compressed Size       00000000 (0)\n+709288 Uncompressed Size     00000000 (0)\n+70928C Filename Length       0023 (35)\n+70928E Extra Length          0009 (9)\n+709290 Comment Length        0000 (0)\n+709292 Disk Start            0000 (0)\n+709294 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709296 Ext File Attributes   00000000 (0)\n+70929A Local Header Offset   004C1A83 (4987523)\n+70929E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70929E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7092C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7092C3   Length              0005 (5)\n+7092C5   Flags               01 (1) 'Modification'\n+7092C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7092CA CENTRAL HEADER #1370  02014B50 (33639248)\n+7092CE Created Zip Spec      14 (20) '2.0'\n+7092CF Created OS            00 (0) 'MS-DOS'\n+7092D0 Extract Zip Spec      14 (20) '2.0'\n+7092D1 Extract OS            00 (0) 'MS-DOS'\n+7092D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7092D4 Compression Method    0000 (0) 'Stored'\n+7092D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7092DA CRC                   BDA5F435 (3181769781)\n+7092DE Compressed Size       000031C7 (12743)\n+7092E2 Uncompressed Size     000031C7 (12743)\n+7092E6 Filename Length       0038 (56)\n+7092E8 Extra Length          0009 (9)\n+7092EA Comment Length        0000 (0)\n+7092EC Disk Start            0000 (0)\n+7092EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7092F0 Ext File Attributes   00000000 (0)\n+7092F4 Local Header Offset   004C1ACD (4987597)\n+7092F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7092F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709330 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709332   Length              0005 (5)\n+709334   Flags               01 (1) 'Modification'\n+709335   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709339 CENTRAL HEADER #1371  02014B50 (33639248)\n+70933D Created Zip Spec      14 (20) '2.0'\n+70933E Created OS            00 (0) 'MS-DOS'\n+70933F Extract Zip Spec      14 (20) '2.0'\n+709340 Extract OS            00 (0) 'MS-DOS'\n+709341 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709343 Compression Method    0000 (0) 'Stored'\n+709345 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709349 CRC                   BA9C4A25 (3130804773)\n+70934D Compressed Size       000004DF (1247)\n+709351 Uncompressed Size     000004DF (1247)\n+709355 Filename Length       003F (63)\n+709357 Extra Length          0009 (9)\n+709359 Comment Length        0000 (0)\n+70935B Disk Start            0000 (0)\n+70935D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70935F Ext File Attributes   00000000 (0)\n+709363 Local Header Offset   004C4D03 (5000451)\n+709367 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709367: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7093A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7093A8   Length              0005 (5)\n+7093AA   Flags               01 (1) 'Modification'\n+7093AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7093AF CENTRAL HEADER #1372  02014B50 (33639248)\n+7093B3 Created Zip Spec      14 (20) '2.0'\n+7093B4 Created OS            00 (0) 'MS-DOS'\n+7093B5 Extract Zip Spec      14 (20) '2.0'\n+7093B6 Extract OS            00 (0) 'MS-DOS'\n+7093B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7093B9 Compression Method    0000 (0) 'Stored'\n+7093BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7093BF CRC                   23EFD54C (602920268)\n+7093C3 Compressed Size       00001F2E (7982)\n+7093C7 Uncompressed Size     00001F2E (7982)\n+7093CB Filename Length       0048 (72)\n+7093CD Extra Length          0009 (9)\n+7093CF Comment Length        0000 (0)\n+7093D1 Disk Start            0000 (0)\n+7093D3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7093D5 Ext File Attributes   00000000 (0)\n+7093D9 Local Header Offset   004C5258 (5001816)\n+7093DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7093DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709425 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709427   Length              0005 (5)\n+709429   Flags               01 (1) 'Modification'\n+70942A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70942E CENTRAL HEADER #1373  02014B50 (33639248)\n+709432 Created Zip Spec      14 (20) '2.0'\n+709433 Created OS            00 (0) 'MS-DOS'\n+709434 Extract Zip Spec      14 (20) '2.0'\n+709435 Extract OS            00 (0) 'MS-DOS'\n+709436 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709438 Compression Method    0000 (0) 'Stored'\n+70943A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70943E CRC                   CC2EC0C4 (3425616068)\n+709442 Compressed Size       00000502 (1282)\n+709446 Uncompressed Size     00000502 (1282)\n+70944A Filename Length       004F (79)\n+70944C Extra Length          0009 (9)\n+70944E Comment Length        0000 (0)\n+709450 Disk Start            0000 (0)\n+709452 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709454 Ext File Attributes   00000000 (0)\n+709458 Local Header Offset   004C7205 (5009925)\n+70945C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70945C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7094AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7094AD   Length              0005 (5)\n+7094AF   Flags               01 (1) 'Modification'\n+7094B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7094B4 CENTRAL HEADER #1374  02014B50 (33639248)\n+7094B8 Created Zip Spec      14 (20) '2.0'\n+7094B9 Created OS            00 (0) 'MS-DOS'\n+7094BA Extract Zip Spec      14 (20) '2.0'\n+7094BB Extract OS            00 (0) 'MS-DOS'\n+7094BC General Purpose Flag  0000 (0)\n+7094BE Compression Method    0000 (0) 'Stored'\n+7094C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7094C4 CRC                   00000000 (0)\n+7094C8 Compressed Size       00000000 (0)\n+7094CC Uncompressed Size     00000000 (0)\n+7094D0 Filename Length       0020 (32)\n+7094D2 Extra Length          0009 (9)\n+7094D4 Comment Length        0000 (0)\n+7094D6 Disk Start            0000 (0)\n+7094D8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7094DA Ext File Attributes   00000000 (0)\n+7094DE Local Header Offset   004C778D (5011341)\n+7094E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7094E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709502 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709504   Length              0005 (5)\n+709506   Flags               01 (1) 'Modification'\n+709507   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70950B CENTRAL HEADER #1375  02014B50 (33639248)\n+70950F Created Zip Spec      14 (20) '2.0'\n+709510 Created OS            00 (0) 'MS-DOS'\n+709511 Extract Zip Spec      14 (20) '2.0'\n+709512 Extract OS            00 (0) 'MS-DOS'\n+709513 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709515 Compression Method    0000 (0) 'Stored'\n+709517 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70951B CRC                   EDC5D490 (3989165200)\n+70951F Compressed Size       00000E50 (3664)\n+709523 Uncompressed Size     00000E50 (3664)\n+709527 Filename Length       003E (62)\n+709529 Extra Length          0009 (9)\n+70952B Comment Length        0000 (0)\n+70952D Disk Start            0000 (0)\n+70952F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709531 Ext File Attributes   00000000 (0)\n+709535 Local Header Offset   004C77D4 (5011412)\n+709539 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709539: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709577 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709579   Length              0005 (5)\n+70957B   Flags               01 (1) 'Modification'\n+70957C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709580 CENTRAL HEADER #1376  02014B50 (33639248)\n+709584 Created Zip Spec      14 (20) '2.0'\n+709585 Created OS            00 (0) 'MS-DOS'\n+709586 Extract Zip Spec      14 (20) '2.0'\n+709587 Extract OS            00 (0) 'MS-DOS'\n+709588 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70958A Compression Method    0000 (0) 'Stored'\n+70958C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709590 CRC                   F6A25F0D (4137836301)\n+709594 Compressed Size       00005EAB (24235)\n+709598 Uncompressed Size     00005EAB (24235)\n+70959C Filename Length       0032 (50)\n+70959E Extra Length          0009 (9)\n+7095A0 Comment Length        0000 (0)\n+7095A2 Disk Start            0000 (0)\n+7095A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7095A6 Ext File Attributes   00000000 (0)\n+7095AA Local Header Offset   004C8699 (5015193)\n+7095AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7095AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7095E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7095E2   Length              0005 (5)\n+7095E4   Flags               01 (1) 'Modification'\n+7095E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7095E9 CENTRAL HEADER #1377  02014B50 (33639248)\n+7095ED Created Zip Spec      14 (20) '2.0'\n+7095EE Created OS            00 (0) 'MS-DOS'\n+7095EF Extract Zip Spec      14 (20) '2.0'\n+7095F0 Extract OS            00 (0) 'MS-DOS'\n+7095F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7095F3 Compression Method    0000 (0) 'Stored'\n+7095F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7095F9 CRC                   8E75DF39 (2390089529)\n+7095FD Compressed Size       000007A7 (1959)\n+709601 Uncompressed Size     000007A7 (1959)\n+709605 Filename Length       0039 (57)\n+709607 Extra Length          0009 (9)\n+709609 Comment Length        0000 (0)\n+70960B Disk Start            0000 (0)\n+70960D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70960F Ext File Attributes   00000000 (0)\n+709613 Local Header Offset   004CE5AD (5039533)\n+709617 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709617: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709650 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709652   Length              0005 (5)\n+709654   Flags               01 (1) 'Modification'\n+709655   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709659 CENTRAL HEADER #1378  02014B50 (33639248)\n+70965D Created Zip Spec      14 (20) '2.0'\n+70965E Created OS            00 (0) 'MS-DOS'\n+70965F Extract Zip Spec      14 (20) '2.0'\n+709660 Extract OS            00 (0) 'MS-DOS'\n+709661 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709663 Compression Method    0000 (0) 'Stored'\n+709665 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709669 CRC                   6AA8E21B (1789452827)\n+70966D Compressed Size       0000175E (5982)\n+709671 Uncompressed Size     0000175E (5982)\n+709675 Filename Length       003A (58)\n+709677 Extra Length          0009 (9)\n+709679 Comment Length        0000 (0)\n+70967B Disk Start            0000 (0)\n+70967D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70967F Ext File Attributes   00000000 (0)\n+709683 Local Header Offset   004CEDC4 (5041604)\n+709687 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709687: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7096C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7096C3   Length              0005 (5)\n+7096C5   Flags               01 (1) 'Modification'\n+7096C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7096CA CENTRAL HEADER #1379  02014B50 (33639248)\n+7096CE Created Zip Spec      14 (20) '2.0'\n+7096CF Created OS            00 (0) 'MS-DOS'\n+7096D0 Extract Zip Spec      14 (20) '2.0'\n+7096D1 Extract OS            00 (0) 'MS-DOS'\n+7096D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7096D4 Compression Method    0000 (0) 'Stored'\n+7096D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7096DA CRC                   22BB3DD7 (582696407)\n+7096DE Compressed Size       000004FA (1274)\n+7096E2 Uncompressed Size     000004FA (1274)\n+7096E6 Filename Length       0041 (65)\n+7096E8 Extra Length          0009 (9)\n+7096EA Comment Length        0000 (0)\n+7096EC Disk Start            0000 (0)\n+7096EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7096F0 Ext File Attributes   00000000 (0)\n+7096F4 Local Header Offset   004D0593 (5047699)\n+7096F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7096F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709739 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70973B   Length              0005 (5)\n+70973D   Flags               01 (1) 'Modification'\n+70973E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709742 CENTRAL HEADER #1380  02014B50 (33639248)\n+709746 Created Zip Spec      14 (20) '2.0'\n+709747 Created OS            00 (0) 'MS-DOS'\n+709748 Extract Zip Spec      14 (20) '2.0'\n+709749 Extract OS            00 (0) 'MS-DOS'\n+70974A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70974C Compression Method    0000 (0) 'Stored'\n+70974E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709752 CRC                   B2C3D88B (2999179403)\n+709756 Compressed Size       00001B65 (7013)\n+70975A Uncompressed Size     00001B65 (7013)\n+70975E Filename Length       0035 (53)\n+709760 Extra Length          0009 (9)\n+709762 Comment Length        0000 (0)\n+709764 Disk Start            0000 (0)\n+709766 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709768 Ext File Attributes   00000000 (0)\n+70976C Local Header Offset   004D0B05 (5049093)\n+709770 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709770: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7097A5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7097A7   Length              0005 (5)\n+7097A9   Flags               01 (1) 'Modification'\n+7097AA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7097AE CENTRAL HEADER #1381  02014B50 (33639248)\n+7097B2 Created Zip Spec      14 (20) '2.0'\n+7097B3 Created OS            00 (0) 'MS-DOS'\n+7097B4 Extract Zip Spec      14 (20) '2.0'\n+7097B5 Extract OS            00 (0) 'MS-DOS'\n+7097B6 General Purpose Flag  0000 (0)\n+7097B8 Compression Method    0000 (0) 'Stored'\n+7097BA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7097BE CRC                   00000000 (0)\n+7097C2 Compressed Size       00000000 (0)\n+7097C6 Uncompressed Size     00000000 (0)\n+7097CA Filename Length       0025 (37)\n+7097CC Extra Length          0009 (9)\n+7097CE Comment Length        0000 (0)\n+7097D0 Disk Start            0000 (0)\n+7097D2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7097D4 Ext File Attributes   00000000 (0)\n+7097D8 Local Header Offset   004D26D6 (5056214)\n+7097DC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7097DC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709801 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709803   Length              0005 (5)\n+709805   Flags               01 (1) 'Modification'\n+709806   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70980A CENTRAL HEADER #1382  02014B50 (33639248)\n+70980E Created Zip Spec      14 (20) '2.0'\n+70980F Created OS            00 (0) 'MS-DOS'\n+709810 Extract Zip Spec      14 (20) '2.0'\n+709811 Extract OS            00 (0) 'MS-DOS'\n+709812 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709814 Compression Method    0000 (0) 'Stored'\n+709816 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70981A CRC                   E8B12001 (3903922177)\n+70981E Compressed Size       00000AFB (2811)\n+709822 Uncompressed Size     00000AFB (2811)\n+709826 Filename Length       0041 (65)\n+709828 Extra Length          0009 (9)\n+70982A Comment Length        0000 (0)\n+70982C Disk Start            0000 (0)\n+70982E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709830 Ext File Attributes   00000000 (0)\n+709834 Local Header Offset   004D2722 (5056290)\n+709838 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709838: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709879 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70987B   Length              0005 (5)\n+70987D   Flags               01 (1) 'Modification'\n+70987E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709882 CENTRAL HEADER #1383  02014B50 (33639248)\n+709886 Created Zip Spec      14 (20) '2.0'\n+709887 Created OS            00 (0) 'MS-DOS'\n+709888 Extract Zip Spec      14 (20) '2.0'\n+709889 Extract OS            00 (0) 'MS-DOS'\n+70988A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70988C Compression Method    0000 (0) 'Stored'\n+70988E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709892 CRC                   0823E298 (136569496)\n+709896 Compressed Size       00001FFE (8190)\n+70989A Uncompressed Size     00001FFE (8190)\n+70989E Filename Length       0041 (65)\n+7098A0 Extra Length          0009 (9)\n+7098A2 Comment Length        0000 (0)\n+7098A4 Disk Start            0000 (0)\n+7098A6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7098A8 Ext File Attributes   00000000 (0)\n+7098AC Local Header Offset   004D3295 (5059221)\n+7098B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7098B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7098F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7098F3   Length              0005 (5)\n+7098F5   Flags               01 (1) 'Modification'\n+7098F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7098FA CENTRAL HEADER #1384  02014B50 (33639248)\n+7098FE Created Zip Spec      14 (20) '2.0'\n+7098FF Created OS            00 (0) 'MS-DOS'\n+709900 Extract Zip Spec      14 (20) '2.0'\n+709901 Extract OS            00 (0) 'MS-DOS'\n+709902 General Purpose Flag  0000 (0)\n+709904 Compression Method    0000 (0) 'Stored'\n+709906 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70990A CRC                   00000000 (0)\n+70990E Compressed Size       00000000 (0)\n+709912 Uncompressed Size     00000000 (0)\n+709916 Filename Length       0020 (32)\n+709918 Extra Length          0009 (9)\n+70991A Comment Length        0000 (0)\n+70991C Disk Start            0000 (0)\n+70991E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709920 Ext File Attributes   00000000 (0)\n+709924 Local Header Offset   004D530B (5067531)\n+709928 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709928: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709948 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70994A   Length              0005 (5)\n+70994C   Flags               01 (1) 'Modification'\n+70994D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709951 CENTRAL HEADER #1385  02014B50 (33639248)\n+709955 Created Zip Spec      14 (20) '2.0'\n+709956 Created OS            00 (0) 'MS-DOS'\n+709957 Extract Zip Spec      14 (20) '2.0'\n+709958 Extract OS            00 (0) 'MS-DOS'\n+709959 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70995B Compression Method    0000 (0) 'Stored'\n+70995D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709961 CRC                   3CD43B28 (1020541736)\n+709965 Compressed Size       00004EA7 (20135)\n+709969 Uncompressed Size     00004EA7 (20135)\n+70996D Filename Length       0032 (50)\n+70996F Extra Length          0009 (9)\n+709971 Comment Length        0000 (0)\n+709973 Disk Start            0000 (0)\n+709975 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709977 Ext File Attributes   00000000 (0)\n+70997B Local Header Offset   004D5352 (5067602)\n+70997F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70997F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7099B1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7099B3   Length              0005 (5)\n+7099B5   Flags               01 (1) 'Modification'\n+7099B6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7099BA CENTRAL HEADER #1386  02014B50 (33639248)\n+7099BE Created Zip Spec      14 (20) '2.0'\n+7099BF Created OS            00 (0) 'MS-DOS'\n+7099C0 Extract Zip Spec      14 (20) '2.0'\n+7099C1 Extract OS            00 (0) 'MS-DOS'\n+7099C2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7099C4 Compression Method    0000 (0) 'Stored'\n+7099C6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7099CA CRC                   DA82F0B1 (3666014385)\n+7099CE Compressed Size       000004D7 (1239)\n+7099D2 Uncompressed Size     000004D7 (1239)\n+7099D6 Filename Length       0039 (57)\n+7099D8 Extra Length          0009 (9)\n+7099DA Comment Length        0000 (0)\n+7099DC Disk Start            0000 (0)\n+7099DE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7099E0 Ext File Attributes   00000000 (0)\n+7099E4 Local Header Offset   004DA262 (5087842)\n+7099E8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7099E8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709A21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709A23   Length              0005 (5)\n+709A25   Flags               01 (1) 'Modification'\n+709A26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709A2A CENTRAL HEADER #1387  02014B50 (33639248)\n+709A2E Created Zip Spec      14 (20) '2.0'\n+709A2F Created OS            00 (0) 'MS-DOS'\n+709A30 Extract Zip Spec      14 (20) '2.0'\n+709A31 Extract OS            00 (0) 'MS-DOS'\n+709A32 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709A34 Compression Method    0000 (0) 'Stored'\n+709A36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709A3A CRC                   C8E9661F (3370739231)\n+709A3E Compressed Size       00000782 (1922)\n+709A42 Uncompressed Size     00000782 (1922)\n+709A46 Filename Length       003A (58)\n+709A48 Extra Length          0009 (9)\n+709A4A Comment Length        0000 (0)\n+709A4C Disk Start            0000 (0)\n+709A4E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709A50 Ext File Attributes   00000000 (0)\n+709A54 Local Header Offset   004DA7A9 (5089193)\n+709A58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709A58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709A92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709A94   Length              0005 (5)\n+709A96   Flags               01 (1) 'Modification'\n+709A97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709A9B CENTRAL HEADER #1388  02014B50 (33639248)\n+709A9F Created Zip Spec      14 (20) '2.0'\n+709AA0 Created OS            00 (0) 'MS-DOS'\n+709AA1 Extract Zip Spec      14 (20) '2.0'\n+709AA2 Extract OS            00 (0) 'MS-DOS'\n+709AA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709AA5 Compression Method    0000 (0) 'Stored'\n+709AA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709AAB CRC                   80DBFA57 (2161900119)\n+709AAF Compressed Size       000004EC (1260)\n+709AB3 Uncompressed Size     000004EC (1260)\n+709AB7 Filename Length       0041 (65)\n+709AB9 Extra Length          0009 (9)\n+709ABB Comment Length        0000 (0)\n+709ABD Disk Start            0000 (0)\n+709ABF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709AC1 Ext File Attributes   00000000 (0)\n+709AC5 Local Header Offset   004DAF9C (5091228)\n+709AC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709AC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709B0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709B0C   Length              0005 (5)\n+709B0E   Flags               01 (1) 'Modification'\n+709B0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709B13 CENTRAL HEADER #1389  02014B50 (33639248)\n+709B17 Created Zip Spec      14 (20) '2.0'\n+709B18 Created OS            00 (0) 'MS-DOS'\n+709B19 Extract Zip Spec      14 (20) '2.0'\n+709B1A Extract OS            00 (0) 'MS-DOS'\n+709B1B General Purpose Flag  0000 (0)\n+709B1D Compression Method    0000 (0) 'Stored'\n+709B1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709B23 CRC                   00000000 (0)\n+709B27 Compressed Size       00000000 (0)\n+709B2B Uncompressed Size     00000000 (0)\n+709B2F Filename Length       0020 (32)\n+709B31 Extra Length          0009 (9)\n+709B33 Comment Length        0000 (0)\n+709B35 Disk Start            0000 (0)\n+709B37 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709B39 Ext File Attributes   00000000 (0)\n+709B3D Local Header Offset   004DB500 (5092608)\n+709B41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709B41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709B61 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709B63   Length              0005 (5)\n+709B65   Flags               01 (1) 'Modification'\n+709B66   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709B6A CENTRAL HEADER #1390  02014B50 (33639248)\n+709B6E Created Zip Spec      14 (20) '2.0'\n+709B6F Created OS            00 (0) 'MS-DOS'\n+709B70 Extract Zip Spec      14 (20) '2.0'\n+709B71 Extract OS            00 (0) 'MS-DOS'\n+709B72 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709B74 Compression Method    0000 (0) 'Stored'\n+709B76 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709B7A CRC                   B5B90B55 (3048803157)\n+709B7E Compressed Size       000011CD (4557)\n+709B82 Uncompressed Size     000011CD (4557)\n+709B86 Filename Length       0036 (54)\n+709B88 Extra Length          0009 (9)\n+709B8A Comment Length        0000 (0)\n+709B8C Disk Start            0000 (0)\n+709B8E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709B90 Ext File Attributes   00000000 (0)\n+709B94 Local Header Offset   004DB547 (5092679)\n+709B98 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709B98: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709BCE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709BD0   Length              0005 (5)\n+709BD2   Flags               01 (1) 'Modification'\n+709BD3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709BD7 CENTRAL HEADER #1391  02014B50 (33639248)\n+709BDB Created Zip Spec      14 (20) '2.0'\n+709BDC Created OS            00 (0) 'MS-DOS'\n+709BDD Extract Zip Spec      14 (20) '2.0'\n+709BDE Extract OS            00 (0) 'MS-DOS'\n+709BDF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709BE1 Compression Method    0000 (0) 'Stored'\n+709BE3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709BE7 CRC                   5117C509 (1360512265)\n+709BEB Compressed Size       000005CF (1487)\n+709BEF Uncompressed Size     000005CF (1487)\n+709BF3 Filename Length       0039 (57)\n+709BF5 Extra Length          0009 (9)\n+709BF7 Comment Length        0000 (0)\n+709BF9 Disk Start            0000 (0)\n+709BFB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709BFD Ext File Attributes   00000000 (0)\n+709C01 Local Header Offset   004DC781 (5097345)\n+709C05 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709C05: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709C3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709C40   Length              0005 (5)\n+709C42   Flags               01 (1) 'Modification'\n+709C43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709C47 CENTRAL HEADER #1392  02014B50 (33639248)\n+709C4B Created Zip Spec      14 (20) '2.0'\n+709C4C Created OS            00 (0) 'MS-DOS'\n+709C4D Extract Zip Spec      14 (20) '2.0'\n+709C4E Extract OS            00 (0) 'MS-DOS'\n+709C4F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709C51 Compression Method    0000 (0) 'Stored'\n+709C53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709C57 CRC                   FCC4145B (4240708699)\n+709C5B Compressed Size       000006E0 (1760)\n+709C5F Uncompressed Size     000006E0 (1760)\n+709C63 Filename Length       0039 (57)\n+709C65 Extra Length          0009 (9)\n+709C67 Comment Length        0000 (0)\n+709C69 Disk Start            0000 (0)\n+709C6B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709C6D Ext File Attributes   00000000 (0)\n+709C71 Local Header Offset   004DCDC0 (5098944)\n+709C75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709C75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709CAE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709CB0   Length              0005 (5)\n+709CB2   Flags               01 (1) 'Modification'\n+709CB3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709CB7 CENTRAL HEADER #1393  02014B50 (33639248)\n+709CBB Created Zip Spec      14 (20) '2.0'\n+709CBC Created OS            00 (0) 'MS-DOS'\n+709CBD Extract Zip Spec      14 (20) '2.0'\n+709CBE Extract OS            00 (0) 'MS-DOS'\n+709CBF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709CC1 Compression Method    0000 (0) 'Stored'\n+709CC3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709CC7 CRC                   A6BC7A6B (2797369963)\n+709CCB Compressed Size       000005DB (1499)\n+709CCF Uncompressed Size     000005DB (1499)\n+709CD3 Filename Length       003B (59)\n+709CD5 Extra Length          0009 (9)\n+709CD7 Comment Length        0000 (0)\n+709CD9 Disk Start            0000 (0)\n+709CDB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709CDD Ext File Attributes   00000000 (0)\n+709CE1 Local Header Offset   004DD510 (5100816)\n+709CE5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709CE5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709D20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709D22   Length              0005 (5)\n+709D24   Flags               01 (1) 'Modification'\n+709D25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709D29 CENTRAL HEADER #1394  02014B50 (33639248)\n+709D2D Created Zip Spec      14 (20) '2.0'\n+709D2E Created OS            00 (0) 'MS-DOS'\n+709D2F Extract Zip Spec      14 (20) '2.0'\n+709D30 Extract OS            00 (0) 'MS-DOS'\n+709D31 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709D33 Compression Method    0000 (0) 'Stored'\n+709D35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709D39 CRC                   CDD77CC5 (3453451461)\n+709D3D Compressed Size       000006EA (1770)\n+709D41 Uncompressed Size     000006EA (1770)\n+709D45 Filename Length       003B (59)\n+709D47 Extra Length          0009 (9)\n+709D49 Comment Length        0000 (0)\n+709D4B Disk Start            0000 (0)\n+709D4D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709D4F Ext File Attributes   00000000 (0)\n+709D53 Local Header Offset   004DDB5D (5102429)\n+709D57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709D57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709D92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709D94   Length              0005 (5)\n+709D96   Flags               01 (1) 'Modification'\n+709D97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709D9B CENTRAL HEADER #1395  02014B50 (33639248)\n+709D9F Created Zip Spec      14 (20) '2.0'\n+709DA0 Created OS            00 (0) 'MS-DOS'\n+709DA1 Extract Zip Spec      14 (20) '2.0'\n+709DA2 Extract OS            00 (0) 'MS-DOS'\n+709DA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709DA5 Compression Method    0000 (0) 'Stored'\n+709DA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709DAB CRC                   5112EBCA (1360194506)\n+709DAF Compressed Size       000005C7 (1479)\n+709DB3 Uncompressed Size     000005C7 (1479)\n+709DB7 Filename Length       0031 (49)\n+709DB9 Extra Length          0009 (9)\n+709DBB Comment Length        0000 (0)\n+709DBD Disk Start            0000 (0)\n+709DBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709DC1 Ext File Attributes   00000000 (0)\n+709DC5 Local Header Offset   004DE2B9 (5104313)\n+709DC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709DC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709DFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709DFC   Length              0005 (5)\n+709DFE   Flags               01 (1) 'Modification'\n+709DFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709E03 CENTRAL HEADER #1396  02014B50 (33639248)\n+709E07 Created Zip Spec      14 (20) '2.0'\n+709E08 Created OS            00 (0) 'MS-DOS'\n+709E09 Extract Zip Spec      14 (20) '2.0'\n+709E0A Extract OS            00 (0) 'MS-DOS'\n+709E0B General Purpose Flag  0000 (0)\n+709E0D Compression Method    0000 (0) 'Stored'\n+709E0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709E13 CRC                   00000000 (0)\n+709E17 Compressed Size       00000000 (0)\n+709E1B Uncompressed Size     00000000 (0)\n+709E1F Filename Length       001F (31)\n+709E21 Extra Length          0009 (9)\n+709E23 Comment Length        0000 (0)\n+709E25 Disk Start            0000 (0)\n+709E27 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709E29 Ext File Attributes   00000000 (0)\n+709E2D Local Header Offset   004DE8E8 (5105896)\n+709E31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709E31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709E50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709E52   Length              0005 (5)\n+709E54   Flags               01 (1) 'Modification'\n+709E55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709E59 CENTRAL HEADER #1397  02014B50 (33639248)\n+709E5D Created Zip Spec      14 (20) '2.0'\n+709E5E Created OS            00 (0) 'MS-DOS'\n+709E5F Extract Zip Spec      14 (20) '2.0'\n+709E60 Extract OS            00 (0) 'MS-DOS'\n+709E61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709E63 Compression Method    0000 (0) 'Stored'\n+709E65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709E69 CRC                   5CAA5BA4 (1554668452)\n+709E6D Compressed Size       00002A93 (10899)\n+709E71 Uncompressed Size     00002A93 (10899)\n+709E75 Filename Length       0030 (48)\n+709E77 Extra Length          0009 (9)\n+709E79 Comment Length        0000 (0)\n+709E7B Disk Start            0000 (0)\n+709E7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709E7F Ext File Attributes   00000000 (0)\n+709E83 Local Header Offset   004DE92E (5105966)\n+709E87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709E87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709EB7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709EB9   Length              0005 (5)\n+709EBB   Flags               01 (1) 'Modification'\n+709EBC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709EC0 CENTRAL HEADER #1398  02014B50 (33639248)\n+709EC4 Created Zip Spec      14 (20) '2.0'\n+709EC5 Created OS            00 (0) 'MS-DOS'\n+709EC6 Extract Zip Spec      14 (20) '2.0'\n+709EC7 Extract OS            00 (0) 'MS-DOS'\n+709EC8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709ECA Compression Method    0000 (0) 'Stored'\n+709ECC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709ED0 CRC                   55DBCEB5 (1440468661)\n+709ED4 Compressed Size       0000058E (1422)\n+709ED8 Uncompressed Size     0000058E (1422)\n+709EDC Filename Length       0039 (57)\n+709EDE Extra Length          0009 (9)\n+709EE0 Comment Length        0000 (0)\n+709EE2 Disk Start            0000 (0)\n+709EE4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709EE6 Ext File Attributes   00000000 (0)\n+709EEA Local Header Offset   004E1428 (5116968)\n+709EEE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709EEE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709F27 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709F29   Length              0005 (5)\n+709F2B   Flags               01 (1) 'Modification'\n+709F2C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709F30 CENTRAL HEADER #1399  02014B50 (33639248)\n+709F34 Created Zip Spec      14 (20) '2.0'\n+709F35 Created OS            00 (0) 'MS-DOS'\n+709F36 Extract Zip Spec      14 (20) '2.0'\n+709F37 Extract OS            00 (0) 'MS-DOS'\n+709F38 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709F3A Compression Method    0000 (0) 'Stored'\n+709F3C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709F40 CRC                   74ECF448 (1961686088)\n+709F44 Compressed Size       00000590 (1424)\n+709F48 Uncompressed Size     00000590 (1424)\n+709F4C Filename Length       0037 (55)\n+709F4E Extra Length          0009 (9)\n+709F50 Comment Length        0000 (0)\n+709F52 Disk Start            0000 (0)\n+709F54 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709F56 Ext File Attributes   00000000 (0)\n+709F5A Local Header Offset   004E1A26 (5118502)\n+709F5E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709F5E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+709F95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+709F97   Length              0005 (5)\n+709F99   Flags               01 (1) 'Modification'\n+709F9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+709F9E CENTRAL HEADER #1400  02014B50 (33639248)\n+709FA2 Created Zip Spec      14 (20) '2.0'\n+709FA3 Created OS            00 (0) 'MS-DOS'\n+709FA4 Extract Zip Spec      14 (20) '2.0'\n+709FA5 Extract OS            00 (0) 'MS-DOS'\n+709FA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+709FA8 Compression Method    0000 (0) 'Stored'\n+709FAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+709FAE CRC                   5119DCCD (1360649421)\n+709FB2 Compressed Size       0000097E (2430)\n+709FB6 Uncompressed Size     0000097E (2430)\n+709FBA Filename Length       0038 (56)\n+709FBC Extra Length          0009 (9)\n+709FBE Comment Length        0000 (0)\n+709FC0 Disk Start            0000 (0)\n+709FC2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+709FC4 Ext File Attributes   00000000 (0)\n+709FC8 Local Header Offset   004E2024 (5120036)\n+709FCC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x709FCC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A004 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A006   Length              0005 (5)\n+70A008   Flags               01 (1) 'Modification'\n+70A009   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A00D CENTRAL HEADER #1401  02014B50 (33639248)\n+70A011 Created Zip Spec      14 (20) '2.0'\n+70A012 Created OS            00 (0) 'MS-DOS'\n+70A013 Extract Zip Spec      14 (20) '2.0'\n+70A014 Extract OS            00 (0) 'MS-DOS'\n+70A015 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A017 Compression Method    0000 (0) 'Stored'\n+70A019 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A01D CRC                   A9FB32A5 (2851812005)\n+70A021 Compressed Size       000027AF (10159)\n+70A025 Uncompressed Size     000027AF (10159)\n+70A029 Filename Length       0040 (64)\n+70A02B Extra Length          0009 (9)\n+70A02D Comment Length        0000 (0)\n+70A02F Disk Start            0000 (0)\n+70A031 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A033 Ext File Attributes   00000000 (0)\n+70A037 Local Header Offset   004E2A11 (5122577)\n+70A03B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A03B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A07B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A07D   Length              0005 (5)\n+70A07F   Flags               01 (1) 'Modification'\n+70A080   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A084 CENTRAL HEADER #1402  02014B50 (33639248)\n+70A088 Created Zip Spec      14 (20) '2.0'\n+70A089 Created OS            00 (0) 'MS-DOS'\n+70A08A Extract Zip Spec      14 (20) '2.0'\n+70A08B Extract OS            00 (0) 'MS-DOS'\n+70A08C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A08E Compression Method    0000 (0) 'Stored'\n+70A090 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A094 CRC                   1848A62B (407414315)\n+70A098 Compressed Size       000004F5 (1269)\n+70A09C Uncompressed Size     000004F5 (1269)\n+70A0A0 Filename Length       0047 (71)\n+70A0A2 Extra Length          0009 (9)\n+70A0A4 Comment Length        0000 (0)\n+70A0A6 Disk Start            0000 (0)\n+70A0A8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A0AA Ext File Attributes   00000000 (0)\n+70A0AE Local Header Offset   004E5237 (5132855)\n+70A0B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A0B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A0F9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A0FB   Length              0005 (5)\n+70A0FD   Flags               01 (1) 'Modification'\n+70A0FE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A102 CENTRAL HEADER #1403  02014B50 (33639248)\n+70A106 Created Zip Spec      14 (20) '2.0'\n+70A107 Created OS            00 (0) 'MS-DOS'\n+70A108 Extract Zip Spec      14 (20) '2.0'\n+70A109 Extract OS            00 (0) 'MS-DOS'\n+70A10A General Purpose Flag  0000 (0)\n+70A10C Compression Method    0000 (0) 'Stored'\n+70A10E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A112 CRC                   00000000 (0)\n+70A116 Compressed Size       00000000 (0)\n+70A11A Uncompressed Size     00000000 (0)\n+70A11E Filename Length       0021 (33)\n+70A120 Extra Length          0009 (9)\n+70A122 Comment Length        0000 (0)\n+70A124 Disk Start            0000 (0)\n+70A126 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A128 Ext File Attributes   00000000 (0)\n+70A12C Local Header Offset   004E57AA (5134250)\n+70A130 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A130: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A151 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A153   Length              0005 (5)\n+70A155   Flags               01 (1) 'Modification'\n+70A156   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A15A CENTRAL HEADER #1404  02014B50 (33639248)\n+70A15E Created Zip Spec      14 (20) '2.0'\n+70A15F Created OS            00 (0) 'MS-DOS'\n+70A160 Extract Zip Spec      14 (20) '2.0'\n+70A161 Extract OS            00 (0) 'MS-DOS'\n+70A162 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A164 Compression Method    0000 (0) 'Stored'\n+70A166 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A16A CRC                   F2E8FAB9 (4075354809)\n+70A16E Compressed Size       00000826 (2086)\n+70A172 Uncompressed Size     00000826 (2086)\n+70A176 Filename Length       003B (59)\n+70A178 Extra Length          0009 (9)\n+70A17A Comment Length        0000 (0)\n+70A17C Disk Start            0000 (0)\n+70A17E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A180 Ext File Attributes   00000000 (0)\n+70A184 Local Header Offset   004E57F2 (5134322)\n+70A188 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A188: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A1C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A1C5   Length              0005 (5)\n+70A1C7   Flags               01 (1) 'Modification'\n+70A1C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A1CC CENTRAL HEADER #1405  02014B50 (33639248)\n+70A1D0 Created Zip Spec      14 (20) '2.0'\n+70A1D1 Created OS            00 (0) 'MS-DOS'\n+70A1D2 Extract Zip Spec      14 (20) '2.0'\n+70A1D3 Extract OS            00 (0) 'MS-DOS'\n+70A1D4 General Purpose Flag  0000 (0)\n+70A1D6 Compression Method    0000 (0) 'Stored'\n+70A1D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A1DC CRC                   00000000 (0)\n+70A1E0 Compressed Size       00000000 (0)\n+70A1E4 Uncompressed Size     00000000 (0)\n+70A1E8 Filename Length       0022 (34)\n+70A1EA Extra Length          0009 (9)\n+70A1EC Comment Length        0000 (0)\n+70A1EE Disk Start            0000 (0)\n+70A1F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A1F2 Ext File Attributes   00000000 (0)\n+70A1F6 Local Header Offset   004E608A (5136522)\n+70A1FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A1FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A21C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A21E   Length              0005 (5)\n+70A220   Flags               01 (1) 'Modification'\n+70A221   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A225 CENTRAL HEADER #1406  02014B50 (33639248)\n+70A229 Created Zip Spec      14 (20) '2.0'\n+70A22A Created OS            00 (0) 'MS-DOS'\n+70A22B Extract Zip Spec      14 (20) '2.0'\n+70A22C Extract OS            00 (0) 'MS-DOS'\n+70A22D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A22F Compression Method    0000 (0) 'Stored'\n+70A231 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A235 CRC                   5DDCD4C5 (1574753477)\n+70A239 Compressed Size       0000537F (21375)\n+70A23D Uncompressed Size     0000537F (21375)\n+70A241 Filename Length       0037 (55)\n+70A243 Extra Length          0009 (9)\n+70A245 Comment Length        0000 (0)\n+70A247 Disk Start            0000 (0)\n+70A249 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A24B Ext File Attributes   00000000 (0)\n+70A24F Local Header Offset   004E60D3 (5136595)\n+70A253 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A253: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A28A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A28C   Length              0005 (5)\n+70A28E   Flags               01 (1) 'Modification'\n+70A28F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A293 CENTRAL HEADER #1407  02014B50 (33639248)\n+70A297 Created Zip Spec      14 (20) '2.0'\n+70A298 Created OS            00 (0) 'MS-DOS'\n+70A299 Extract Zip Spec      14 (20) '2.0'\n+70A29A Extract OS            00 (0) 'MS-DOS'\n+70A29B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A29D Compression Method    0000 (0) 'Stored'\n+70A29F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A2A3 CRC                   5BC81E29 (1539841577)\n+70A2A7 Compressed Size       00001D8A (7562)\n+70A2AB Uncompressed Size     00001D8A (7562)\n+70A2AF Filename Length       003E (62)\n+70A2B1 Extra Length          0009 (9)\n+70A2B3 Comment Length        0000 (0)\n+70A2B5 Disk Start            0000 (0)\n+70A2B7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A2B9 Ext File Attributes   00000000 (0)\n+70A2BD Local Header Offset   004EB4C0 (5158080)\n+70A2C1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A2C1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A2FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A301   Length              0005 (5)\n+70A303   Flags               01 (1) 'Modification'\n+70A304   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A308 CENTRAL HEADER #1408  02014B50 (33639248)\n+70A30C Created Zip Spec      14 (20) '2.0'\n+70A30D Created OS            00 (0) 'MS-DOS'\n+70A30E Extract Zip Spec      14 (20) '2.0'\n+70A30F Extract OS            00 (0) 'MS-DOS'\n+70A310 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A312 Compression Method    0000 (0) 'Stored'\n+70A314 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A318 CRC                   A266F3B2 (2724656050)\n+70A31C Compressed Size       0000462E (17966)\n+70A320 Uncompressed Size     0000462E (17966)\n+70A324 Filename Length       0037 (55)\n+70A326 Extra Length          0009 (9)\n+70A328 Comment Length        0000 (0)\n+70A32A Disk Start            0000 (0)\n+70A32C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A32E Ext File Attributes   00000000 (0)\n+70A332 Local Header Offset   004ED2BF (5165759)\n+70A336 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A336: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A36D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A36F   Length              0005 (5)\n+70A371   Flags               01 (1) 'Modification'\n+70A372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A376 CENTRAL HEADER #1409  02014B50 (33639248)\n+70A37A Created Zip Spec      14 (20) '2.0'\n+70A37B Created OS            00 (0) 'MS-DOS'\n+70A37C Extract Zip Spec      14 (20) '2.0'\n+70A37D Extract OS            00 (0) 'MS-DOS'\n+70A37E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A380 Compression Method    0000 (0) 'Stored'\n+70A382 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A386 CRC                   952E3CF5 (2502835445)\n+70A38A Compressed Size       00000552 (1362)\n+70A38E Uncompressed Size     00000552 (1362)\n+70A392 Filename Length       0043 (67)\n+70A394 Extra Length          0009 (9)\n+70A396 Comment Length        0000 (0)\n+70A398 Disk Start            0000 (0)\n+70A39A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A39C Ext File Attributes   00000000 (0)\n+70A3A0 Local Header Offset   004F195B (5183835)\n+70A3A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A3A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A3E7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A3E9   Length              0005 (5)\n+70A3EB   Flags               01 (1) 'Modification'\n+70A3EC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A3F0 CENTRAL HEADER #1410  02014B50 (33639248)\n+70A3F4 Created Zip Spec      14 (20) '2.0'\n+70A3F5 Created OS            00 (0) 'MS-DOS'\n+70A3F6 Extract Zip Spec      14 (20) '2.0'\n+70A3F7 Extract OS            00 (0) 'MS-DOS'\n+70A3F8 General Purpose Flag  0000 (0)\n+70A3FA Compression Method    0000 (0) 'Stored'\n+70A3FC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A400 CRC                   00000000 (0)\n+70A404 Compressed Size       00000000 (0)\n+70A408 Uncompressed Size     00000000 (0)\n+70A40C Filename Length       0024 (36)\n+70A40E Extra Length          0009 (9)\n+70A410 Comment Length        0000 (0)\n+70A412 Disk Start            0000 (0)\n+70A414 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A416 Ext File Attributes   00000000 (0)\n+70A41A Local Header Offset   004F1F27 (5185319)\n+70A41E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A41E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A442 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A444   Length              0005 (5)\n+70A446   Flags               01 (1) 'Modification'\n+70A447   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A44B CENTRAL HEADER #1411  02014B50 (33639248)\n+70A44F Created Zip Spec      14 (20) '2.0'\n+70A450 Created OS            00 (0) 'MS-DOS'\n+70A451 Extract Zip Spec      14 (20) '2.0'\n+70A452 Extract OS            00 (0) 'MS-DOS'\n+70A453 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A455 Compression Method    0000 (0) 'Stored'\n+70A457 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A45B CRC                   7F603610 (2137011728)\n+70A45F Compressed Size       0000086B (2155)\n+70A463 Uncompressed Size     0000086B (2155)\n+70A467 Filename Length       003A (58)\n+70A469 Extra Length          0009 (9)\n+70A46B Comment Length        0000 (0)\n+70A46D Disk Start            0000 (0)\n+70A46F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A471 Ext File Attributes   00000000 (0)\n+70A475 Local Header Offset   004F1F72 (5185394)\n+70A479 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A479: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A4B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A4B5   Length              0005 (5)\n+70A4B7   Flags               01 (1) 'Modification'\n+70A4B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A4BC CENTRAL HEADER #1412  02014B50 (33639248)\n+70A4C0 Created Zip Spec      14 (20) '2.0'\n+70A4C1 Created OS            00 (0) 'MS-DOS'\n+70A4C2 Extract Zip Spec      14 (20) '2.0'\n+70A4C3 Extract OS            00 (0) 'MS-DOS'\n+70A4C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A4C6 Compression Method    0000 (0) 'Stored'\n+70A4C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A4CC CRC                   57271651 (1462179409)\n+70A4D0 Compressed Size       00003A1F (14879)\n+70A4D4 Uncompressed Size     00003A1F (14879)\n+70A4D8 Filename Length       003A (58)\n+70A4DA Extra Length          0009 (9)\n+70A4DC Comment Length        0000 (0)\n+70A4DE Disk Start            0000 (0)\n+70A4E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A4E2 Ext File Attributes   00000000 (0)\n+70A4E6 Local Header Offset   004F284E (5187662)\n+70A4EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A4EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A524 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A526   Length              0005 (5)\n+70A528   Flags               01 (1) 'Modification'\n+70A529   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A52D CENTRAL HEADER #1413  02014B50 (33639248)\n+70A531 Created Zip Spec      14 (20) '2.0'\n+70A532 Created OS            00 (0) 'MS-DOS'\n+70A533 Extract Zip Spec      14 (20) '2.0'\n+70A534 Extract OS            00 (0) 'MS-DOS'\n+70A535 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A537 Compression Method    0000 (0) 'Stored'\n+70A539 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A53D CRC                   E96DE12E (3916292398)\n+70A541 Compressed Size       00000683 (1667)\n+70A545 Uncompressed Size     00000683 (1667)\n+70A549 Filename Length       0041 (65)\n+70A54B Extra Length          0009 (9)\n+70A54D Comment Length        0000 (0)\n+70A54F Disk Start            0000 (0)\n+70A551 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A553 Ext File Attributes   00000000 (0)\n+70A557 Local Header Offset   004F62DE (5202654)\n+70A55B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A55B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A59C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A59E   Length              0005 (5)\n+70A5A0   Flags               01 (1) 'Modification'\n+70A5A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A5A5 CENTRAL HEADER #1414  02014B50 (33639248)\n+70A5A9 Created Zip Spec      14 (20) '2.0'\n+70A5AA Created OS            00 (0) 'MS-DOS'\n+70A5AB Extract Zip Spec      14 (20) '2.0'\n+70A5AC Extract OS            00 (0) 'MS-DOS'\n+70A5AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A5AF Compression Method    0000 (0) 'Stored'\n+70A5B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A5B5 CRC                   30ABB121 (816558369)\n+70A5B9 Compressed Size       0000212F (8495)\n+70A5BD Uncompressed Size     0000212F (8495)\n+70A5C1 Filename Length       0042 (66)\n+70A5C3 Extra Length          0009 (9)\n+70A5C5 Comment Length        0000 (0)\n+70A5C7 Disk Start            0000 (0)\n+70A5C9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A5CB Ext File Attributes   00000000 (0)\n+70A5CF Local Header Offset   004F69D9 (5204441)\n+70A5D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A5D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A615 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A617   Length              0005 (5)\n+70A619   Flags               01 (1) 'Modification'\n+70A61A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A61E CENTRAL HEADER #1415  02014B50 (33639248)\n+70A622 Created Zip Spec      14 (20) '2.0'\n+70A623 Created OS            00 (0) 'MS-DOS'\n+70A624 Extract Zip Spec      14 (20) '2.0'\n+70A625 Extract OS            00 (0) 'MS-DOS'\n+70A626 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A628 Compression Method    0000 (0) 'Stored'\n+70A62A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A62E CRC                   9A6BCF9D (2590756765)\n+70A632 Compressed Size       00000CBA (3258)\n+70A636 Uncompressed Size     00000CBA (3258)\n+70A63A Filename Length       004F (79)\n+70A63C Extra Length          0009 (9)\n+70A63E Comment Length        0000 (0)\n+70A640 Disk Start            0000 (0)\n+70A642 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A644 Ext File Attributes   00000000 (0)\n+70A648 Local Header Offset   004F8B81 (5213057)\n+70A64C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A64C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A69B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A69D   Length              0005 (5)\n+70A69F   Flags               01 (1) 'Modification'\n+70A6A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A6A4 CENTRAL HEADER #1416  02014B50 (33639248)\n+70A6A8 Created Zip Spec      14 (20) '2.0'\n+70A6A9 Created OS            00 (0) 'MS-DOS'\n+70A6AA Extract Zip Spec      14 (20) '2.0'\n+70A6AB Extract OS            00 (0) 'MS-DOS'\n+70A6AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A6AE Compression Method    0000 (0) 'Stored'\n+70A6B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A6B4 CRC                   3AB6ADA6 (985050534)\n+70A6B8 Compressed Size       000004F6 (1270)\n+70A6BC Uncompressed Size     000004F6 (1270)\n+70A6C0 Filename Length       0049 (73)\n+70A6C2 Extra Length          0009 (9)\n+70A6C4 Comment Length        0000 (0)\n+70A6C6 Disk Start            0000 (0)\n+70A6C8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A6CA Ext File Attributes   00000000 (0)\n+70A6CE Local Header Offset   004F98C1 (5216449)\n+70A6D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A6D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A71B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A71D   Length              0005 (5)\n+70A71F   Flags               01 (1) 'Modification'\n+70A720   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A724 CENTRAL HEADER #1417  02014B50 (33639248)\n+70A728 Created Zip Spec      14 (20) '2.0'\n+70A729 Created OS            00 (0) 'MS-DOS'\n+70A72A Extract Zip Spec      14 (20) '2.0'\n+70A72B Extract OS            00 (0) 'MS-DOS'\n+70A72C General Purpose Flag  0000 (0)\n+70A72E Compression Method    0000 (0) 'Stored'\n+70A730 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A734 CRC                   00000000 (0)\n+70A738 Compressed Size       00000000 (0)\n+70A73C Uncompressed Size     00000000 (0)\n+70A740 Filename Length       0029 (41)\n+70A742 Extra Length          0009 (9)\n+70A744 Comment Length        0000 (0)\n+70A746 Disk Start            0000 (0)\n+70A748 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A74A Ext File Attributes   00000000 (0)\n+70A74E Local Header Offset   004F9E37 (5217847)\n+70A752 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A752: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A77B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A77D   Length              0005 (5)\n+70A77F   Flags               01 (1) 'Modification'\n+70A780   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A784 CENTRAL HEADER #1418  02014B50 (33639248)\n+70A788 Created Zip Spec      14 (20) '2.0'\n+70A789 Created OS            00 (0) 'MS-DOS'\n+70A78A Extract Zip Spec      14 (20) '2.0'\n+70A78B Extract OS            00 (0) 'MS-DOS'\n+70A78C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A78E Compression Method    0000 (0) 'Stored'\n+70A790 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A794 CRC                   2502C8DF (620939487)\n+70A798 Compressed Size       00000CD7 (3287)\n+70A79C Uncompressed Size     00000CD7 (3287)\n+70A7A0 Filename Length       0044 (68)\n+70A7A2 Extra Length          0009 (9)\n+70A7A4 Comment Length        0000 (0)\n+70A7A6 Disk Start            0000 (0)\n+70A7A8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A7AA Ext File Attributes   00000000 (0)\n+70A7AE Local Header Offset   004F9E87 (5217927)\n+70A7B2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A7B2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A7F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A7F8   Length              0005 (5)\n+70A7FA   Flags               01 (1) 'Modification'\n+70A7FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A7FF CENTRAL HEADER #1419  02014B50 (33639248)\n+70A803 Created Zip Spec      14 (20) '2.0'\n+70A804 Created OS            00 (0) 'MS-DOS'\n+70A805 Extract Zip Spec      14 (20) '2.0'\n+70A806 Extract OS            00 (0) 'MS-DOS'\n+70A807 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A809 Compression Method    0000 (0) 'Stored'\n+70A80B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A80F CRC                   B9A91D04 (3114867972)\n+70A813 Compressed Size       000015CB (5579)\n+70A817 Uncompressed Size     000015CB (5579)\n+70A81B Filename Length       0043 (67)\n+70A81D Extra Length          0009 (9)\n+70A81F Comment Length        0000 (0)\n+70A821 Disk Start            0000 (0)\n+70A823 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A825 Ext File Attributes   00000000 (0)\n+70A829 Local Header Offset   004FABD9 (5221337)\n+70A82D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A82D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A870 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A872   Length              0005 (5)\n+70A874   Flags               01 (1) 'Modification'\n+70A875   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A879 CENTRAL HEADER #1420  02014B50 (33639248)\n+70A87D Created Zip Spec      14 (20) '2.0'\n+70A87E Created OS            00 (0) 'MS-DOS'\n+70A87F Extract Zip Spec      14 (20) '2.0'\n+70A880 Extract OS            00 (0) 'MS-DOS'\n+70A881 General Purpose Flag  0000 (0)\n+70A883 Compression Method    0000 (0) 'Stored'\n+70A885 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A889 CRC                   00000000 (0)\n+70A88D Compressed Size       00000000 (0)\n+70A891 Uncompressed Size     00000000 (0)\n+70A895 Filename Length       001A (26)\n+70A897 Extra Length          0009 (9)\n+70A899 Comment Length        0000 (0)\n+70A89B Disk Start            0000 (0)\n+70A89D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A89F Ext File Attributes   00000000 (0)\n+70A8A3 Local Header Offset   004FC21E (5227038)\n+70A8A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A8A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A8C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A8C3   Length              0005 (5)\n+70A8C5   Flags               01 (1) 'Modification'\n+70A8C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A8CA CENTRAL HEADER #1421  02014B50 (33639248)\n+70A8CE Created Zip Spec      14 (20) '2.0'\n+70A8CF Created OS            00 (0) 'MS-DOS'\n+70A8D0 Extract Zip Spec      14 (20) '2.0'\n+70A8D1 Extract OS            00 (0) 'MS-DOS'\n+70A8D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A8D4 Compression Method    0000 (0) 'Stored'\n+70A8D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A8DA CRC                   040E3AFC (68041468)\n+70A8DE Compressed Size       00000783 (1923)\n+70A8E2 Uncompressed Size     00000783 (1923)\n+70A8E6 Filename Length       0026 (38)\n+70A8E8 Extra Length          0009 (9)\n+70A8EA Comment Length        0000 (0)\n+70A8EC Disk Start            0000 (0)\n+70A8EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A8F0 Ext File Attributes   00000000 (0)\n+70A8F4 Local Header Offset   004FC25F (5227103)\n+70A8F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A8F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A91E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A920   Length              0005 (5)\n+70A922   Flags               01 (1) 'Modification'\n+70A923   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A927 CENTRAL HEADER #1422  02014B50 (33639248)\n+70A92B Created Zip Spec      14 (20) '2.0'\n+70A92C Created OS            00 (0) 'MS-DOS'\n+70A92D Extract Zip Spec      14 (20) '2.0'\n+70A92E Extract OS            00 (0) 'MS-DOS'\n+70A92F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A931 Compression Method    0000 (0) 'Stored'\n+70A933 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A937 CRC                   1A6C5333 (443306803)\n+70A93B Compressed Size       00000849 (2121)\n+70A93F Uncompressed Size     00000849 (2121)\n+70A943 Filename Length       002D (45)\n+70A945 Extra Length          0009 (9)\n+70A947 Comment Length        0000 (0)\n+70A949 Disk Start            0000 (0)\n+70A94B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A94D Ext File Attributes   00000000 (0)\n+70A951 Local Header Offset   004FCA3F (5229119)\n+70A955 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A955: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A982 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A984   Length              0005 (5)\n+70A986   Flags               01 (1) 'Modification'\n+70A987   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A98B CENTRAL HEADER #1423  02014B50 (33639248)\n+70A98F Created Zip Spec      14 (20) '2.0'\n+70A990 Created OS            00 (0) 'MS-DOS'\n+70A991 Extract Zip Spec      14 (20) '2.0'\n+70A992 Extract OS            00 (0) 'MS-DOS'\n+70A993 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A995 Compression Method    0000 (0) 'Stored'\n+70A997 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A99B CRC                   107C6EE6 (276590310)\n+70A99F Compressed Size       0000058B (1419)\n+70A9A3 Uncompressed Size     0000058B (1419)\n+70A9A7 Filename Length       0025 (37)\n+70A9A9 Extra Length          0009 (9)\n+70A9AB Comment Length        0000 (0)\n+70A9AD Disk Start            0000 (0)\n+70A9AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70A9B1 Ext File Attributes   00000000 (0)\n+70A9B5 Local Header Offset   004FD2EC (5231340)\n+70A9B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70A9B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70A9DE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70A9E0   Length              0005 (5)\n+70A9E2   Flags               01 (1) 'Modification'\n+70A9E3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70A9E7 CENTRAL HEADER #1424  02014B50 (33639248)\n+70A9EB Created Zip Spec      14 (20) '2.0'\n+70A9EC Created OS            00 (0) 'MS-DOS'\n+70A9ED Extract Zip Spec      14 (20) '2.0'\n+70A9EE Extract OS            00 (0) 'MS-DOS'\n+70A9EF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70A9F1 Compression Method    0000 (0) 'Stored'\n+70A9F3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70A9F7 CRC                   9EA8C701 (2661861121)\n+70A9FB Compressed Size       00000771 (1905)\n+70A9FF Uncompressed Size     00000771 (1905)\n+70AA03 Filename Length       0024 (36)\n+70AA05 Extra Length          0009 (9)\n+70AA07 Comment Length        0000 (0)\n+70AA09 Disk Start            0000 (0)\n+70AA0B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AA0D Ext File Attributes   00000000 (0)\n+70AA11 Local Header Offset   004FD8D3 (5232851)\n+70AA15 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AA15: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AA39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AA3B   Length              0005 (5)\n+70AA3D   Flags               01 (1) 'Modification'\n+70AA3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AA42 CENTRAL HEADER #1425  02014B50 (33639248)\n+70AA46 Created Zip Spec      14 (20) '2.0'\n+70AA47 Created OS            00 (0) 'MS-DOS'\n+70AA48 Extract Zip Spec      14 (20) '2.0'\n+70AA49 Extract OS            00 (0) 'MS-DOS'\n+70AA4A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AA4C Compression Method    0000 (0) 'Stored'\n+70AA4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AA52 CRC                   2D139396 (756257686)\n+70AA56 Compressed Size       00000584 (1412)\n+70AA5A Uncompressed Size     00000584 (1412)\n+70AA5E Filename Length       0025 (37)\n+70AA60 Extra Length          0009 (9)\n+70AA62 Comment Length        0000 (0)\n+70AA64 Disk Start            0000 (0)\n+70AA66 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AA68 Ext File Attributes   00000000 (0)\n+70AA6C Local Header Offset   004FE09F (5234847)\n+70AA70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AA70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AA95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AA97   Length              0005 (5)\n+70AA99   Flags               01 (1) 'Modification'\n+70AA9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AA9E CENTRAL HEADER #1426  02014B50 (33639248)\n+70AAA2 Created Zip Spec      14 (20) '2.0'\n+70AAA3 Created OS            00 (0) 'MS-DOS'\n+70AAA4 Extract Zip Spec      14 (20) '2.0'\n+70AAA5 Extract OS            00 (0) 'MS-DOS'\n+70AAA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AAA8 Compression Method    0000 (0) 'Stored'\n+70AAAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AAAE CRC                   CEFC9AFA (3472661242)\n+70AAB2 Compressed Size       00000F04 (3844)\n+70AAB6 Uncompressed Size     00000F04 (3844)\n+70AABA Filename Length       0028 (40)\n+70AABC Extra Length          0009 (9)\n+70AABE Comment Length        0000 (0)\n+70AAC0 Disk Start            0000 (0)\n+70AAC2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AAC4 Ext File Attributes   00000000 (0)\n+70AAC8 Local Header Offset   004FE67F (5236351)\n+70AACC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AACC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AAF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AAF6   Length              0005 (5)\n+70AAF8   Flags               01 (1) 'Modification'\n+70AAF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AAFD CENTRAL HEADER #1427  02014B50 (33639248)\n+70AB01 Created Zip Spec      14 (20) '2.0'\n+70AB02 Created OS            00 (0) 'MS-DOS'\n+70AB03 Extract Zip Spec      14 (20) '2.0'\n+70AB04 Extract OS            00 (0) 'MS-DOS'\n+70AB05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AB07 Compression Method    0000 (0) 'Stored'\n+70AB09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AB0D CRC                   D7F89917 (3623393559)\n+70AB11 Compressed Size       000003AC (940)\n+70AB15 Uncompressed Size     000003AC (940)\n+70AB19 Filename Length       0029 (41)\n+70AB1B Extra Length          0009 (9)\n+70AB1D Comment Length        0000 (0)\n+70AB1F Disk Start            0000 (0)\n+70AB21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AB23 Ext File Attributes   00000000 (0)\n+70AB27 Local Header Offset   004FF5E2 (5240290)\n+70AB2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AB2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AB54 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AB56   Length              0005 (5)\n+70AB58   Flags               01 (1) 'Modification'\n+70AB59   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AB5D CENTRAL HEADER #1428  02014B50 (33639248)\n+70AB61 Created Zip Spec      14 (20) '2.0'\n+70AB62 Created OS            00 (0) 'MS-DOS'\n+70AB63 Extract Zip Spec      14 (20) '2.0'\n+70AB64 Extract OS            00 (0) 'MS-DOS'\n+70AB65 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AB67 Compression Method    0000 (0) 'Stored'\n+70AB69 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AB6D CRC                   4A25E4BC (1243997372)\n+70AB71 Compressed Size       00000621 (1569)\n+70AB75 Uncompressed Size     00000621 (1569)\n+70AB79 Filename Length       0029 (41)\n+70AB7B Extra Length          0009 (9)\n+70AB7D Comment Length        0000 (0)\n+70AB7F Disk Start            0000 (0)\n+70AB81 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AB83 Ext File Attributes   00000000 (0)\n+70AB87 Local Header Offset   004FF9EE (5241326)\n+70AB8B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AB8B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70ABB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70ABB6   Length              0005 (5)\n+70ABB8   Flags               01 (1) 'Modification'\n+70ABB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70ABBD CENTRAL HEADER #1429  02014B50 (33639248)\n+70ABC1 Created Zip Spec      14 (20) '2.0'\n+70ABC2 Created OS            00 (0) 'MS-DOS'\n+70ABC3 Extract Zip Spec      14 (20) '2.0'\n+70ABC4 Extract OS            00 (0) 'MS-DOS'\n+70ABC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70ABC7 Compression Method    0000 (0) 'Stored'\n+70ABC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70ABCD CRC                   D97FD102 (3649032450)\n+70ABD1 Compressed Size       0000083D (2109)\n+70ABD5 Uncompressed Size     0000083D (2109)\n+70ABD9 Filename Length       0027 (39)\n+70ABDB Extra Length          0009 (9)\n+70ABDD Comment Length        0000 (0)\n+70ABDF Disk Start            0000 (0)\n+70ABE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70ABE3 Ext File Attributes   00000000 (0)\n+70ABE7 Local Header Offset   0050006F (5242991)\n+70ABEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70ABEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AC12 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AC14   Length              0005 (5)\n+70AC16   Flags               01 (1) 'Modification'\n+70AC17   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AC1B CENTRAL HEADER #1430  02014B50 (33639248)\n+70AC1F Created Zip Spec      14 (20) '2.0'\n+70AC20 Created OS            00 (0) 'MS-DOS'\n+70AC21 Extract Zip Spec      14 (20) '2.0'\n+70AC22 Extract OS            00 (0) 'MS-DOS'\n+70AC23 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AC25 Compression Method    0000 (0) 'Stored'\n+70AC27 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AC2B CRC                   6CA638E1 (1822832865)\n+70AC2F Compressed Size       00000968 (2408)\n+70AC33 Uncompressed Size     00000968 (2408)\n+70AC37 Filename Length       0031 (49)\n+70AC39 Extra Length          0009 (9)\n+70AC3B Comment Length        0000 (0)\n+70AC3D Disk Start            0000 (0)\n+70AC3F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AC41 Ext File Attributes   00000000 (0)\n+70AC45 Local Header Offset   0050090A (5245194)\n+70AC49 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AC49: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AC7A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AC7C   Length              0005 (5)\n+70AC7E   Flags               01 (1) 'Modification'\n+70AC7F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AC83 CENTRAL HEADER #1431  02014B50 (33639248)\n+70AC87 Created Zip Spec      14 (20) '2.0'\n+70AC88 Created OS            00 (0) 'MS-DOS'\n+70AC89 Extract Zip Spec      14 (20) '2.0'\n+70AC8A Extract OS            00 (0) 'MS-DOS'\n+70AC8B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AC8D Compression Method    0000 (0) 'Stored'\n+70AC8F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AC93 CRC                   31AD4BD9 (833440729)\n+70AC97 Compressed Size       00000635 (1589)\n+70AC9B Uncompressed Size     00000635 (1589)\n+70AC9F Filename Length       002B (43)\n+70ACA1 Extra Length          0009 (9)\n+70ACA3 Comment Length        0000 (0)\n+70ACA5 Disk Start            0000 (0)\n+70ACA7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70ACA9 Ext File Attributes   00000000 (0)\n+70ACAD Local Header Offset   005012DA (5247706)\n+70ACB1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70ACB1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70ACDC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70ACDE   Length              0005 (5)\n+70ACE0   Flags               01 (1) 'Modification'\n+70ACE1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70ACE5 CENTRAL HEADER #1432  02014B50 (33639248)\n+70ACE9 Created Zip Spec      14 (20) '2.0'\n+70ACEA Created OS            00 (0) 'MS-DOS'\n+70ACEB Extract Zip Spec      14 (20) '2.0'\n+70ACEC Extract OS            00 (0) 'MS-DOS'\n+70ACED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70ACEF Compression Method    0000 (0) 'Stored'\n+70ACF1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70ACF5 CRC                   8BF38561 (2347992417)\n+70ACF9 Compressed Size       00000CE9 (3305)\n+70ACFD Uncompressed Size     00000CE9 (3305)\n+70AD01 Filename Length       0030 (48)\n+70AD03 Extra Length          0009 (9)\n+70AD05 Comment Length        0000 (0)\n+70AD07 Disk Start            0000 (0)\n+70AD09 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AD0B Ext File Attributes   00000000 (0)\n+70AD0F Local Header Offset   00501971 (5249393)\n+70AD13 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AD13: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AD43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AD45   Length              0005 (5)\n+70AD47   Flags               01 (1) 'Modification'\n+70AD48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AD4C CENTRAL HEADER #1433  02014B50 (33639248)\n+70AD50 Created Zip Spec      14 (20) '2.0'\n+70AD51 Created OS            00 (0) 'MS-DOS'\n+70AD52 Extract Zip Spec      14 (20) '2.0'\n+70AD53 Extract OS            00 (0) 'MS-DOS'\n+70AD54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AD56 Compression Method    0000 (0) 'Stored'\n+70AD58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AD5C CRC                   38EB0C43 (954928195)\n+70AD60 Compressed Size       000006E3 (1763)\n+70AD64 Uncompressed Size     000006E3 (1763)\n+70AD68 Filename Length       002D (45)\n+70AD6A Extra Length          0009 (9)\n+70AD6C Comment Length        0000 (0)\n+70AD6E Disk Start            0000 (0)\n+70AD70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AD72 Ext File Attributes   00000000 (0)\n+70AD76 Local Header Offset   005026C1 (5252801)\n+70AD7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AD7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70ADA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70ADA9   Length              0005 (5)\n+70ADAB   Flags               01 (1) 'Modification'\n+70ADAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70ADB0 CENTRAL HEADER #1434  02014B50 (33639248)\n+70ADB4 Created Zip Spec      14 (20) '2.0'\n+70ADB5 Created OS            00 (0) 'MS-DOS'\n+70ADB6 Extract Zip Spec      14 (20) '2.0'\n+70ADB7 Extract OS            00 (0) 'MS-DOS'\n+70ADB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70ADBA Compression Method    0000 (0) 'Stored'\n+70ADBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70ADC0 CRC                   D0646959 (3496241497)\n+70ADC4 Compressed Size       000007C1 (1985)\n+70ADC8 Uncompressed Size     000007C1 (1985)\n+70ADCC Filename Length       002F (47)\n+70ADCE Extra Length          0009 (9)\n+70ADD0 Comment Length        0000 (0)\n+70ADD2 Disk Start            0000 (0)\n+70ADD4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70ADD6 Ext File Attributes   00000000 (0)\n+70ADDA Local Header Offset   00502E08 (5254664)\n+70ADDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70ADDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AE0D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AE0F   Length              0005 (5)\n+70AE11   Flags               01 (1) 'Modification'\n+70AE12   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AE16 CENTRAL HEADER #1435  02014B50 (33639248)\n+70AE1A Created Zip Spec      14 (20) '2.0'\n+70AE1B Created OS            00 (0) 'MS-DOS'\n+70AE1C Extract Zip Spec      14 (20) '2.0'\n+70AE1D Extract OS            00 (0) 'MS-DOS'\n+70AE1E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AE20 Compression Method    0000 (0) 'Stored'\n+70AE22 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AE26 CRC                   4475FC12 (1148582930)\n+70AE2A Compressed Size       0000084E (2126)\n+70AE2E Uncompressed Size     0000084E (2126)\n+70AE32 Filename Length       002A (42)\n+70AE34 Extra Length          0009 (9)\n+70AE36 Comment Length        0000 (0)\n+70AE38 Disk Start            0000 (0)\n+70AE3A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AE3C Ext File Attributes   00000000 (0)\n+70AE40 Local Header Offset   0050362F (5256751)\n+70AE44 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AE44: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AE6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AE70   Length              0005 (5)\n+70AE72   Flags               01 (1) 'Modification'\n+70AE73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AE77 CENTRAL HEADER #1436  02014B50 (33639248)\n+70AE7B Created Zip Spec      14 (20) '2.0'\n+70AE7C Created OS            00 (0) 'MS-DOS'\n+70AE7D Extract Zip Spec      14 (20) '2.0'\n+70AE7E Extract OS            00 (0) 'MS-DOS'\n+70AE7F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AE81 Compression Method    0000 (0) 'Stored'\n+70AE83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AE87 CRC                   65BE8BD8 (1706986456)\n+70AE8B Compressed Size       00000C19 (3097)\n+70AE8F Uncompressed Size     00000C19 (3097)\n+70AE93 Filename Length       002B (43)\n+70AE95 Extra Length          0009 (9)\n+70AE97 Comment Length        0000 (0)\n+70AE99 Disk Start            0000 (0)\n+70AE9B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AE9D Ext File Attributes   00000000 (0)\n+70AEA1 Local Header Offset   00503EDE (5258974)\n+70AEA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AEA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AED0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AED2   Length              0005 (5)\n+70AED4   Flags               01 (1) 'Modification'\n+70AED5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AED9 CENTRAL HEADER #1437  02014B50 (33639248)\n+70AEDD Created Zip Spec      14 (20) '2.0'\n+70AEDE Created OS            00 (0) 'MS-DOS'\n+70AEDF Extract Zip Spec      14 (20) '2.0'\n+70AEE0 Extract OS            00 (0) 'MS-DOS'\n+70AEE1 General Purpose Flag  0000 (0)\n+70AEE3 Compression Method    0000 (0) 'Stored'\n+70AEE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AEE9 CRC                   00000000 (0)\n+70AEED Compressed Size       00000000 (0)\n+70AEF1 Uncompressed Size     00000000 (0)\n+70AEF5 Filename Length       0021 (33)\n+70AEF7 Extra Length          0009 (9)\n+70AEF9 Comment Length        0000 (0)\n+70AEFB Disk Start            0000 (0)\n+70AEFD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AEFF Ext File Attributes   00000000 (0)\n+70AF03 Local Header Offset   00504B59 (5262169)\n+70AF07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AF07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AF28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AF2A   Length              0005 (5)\n+70AF2C   Flags               01 (1) 'Modification'\n+70AF2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AF31 CENTRAL HEADER #1438  02014B50 (33639248)\n+70AF35 Created Zip Spec      14 (20) '2.0'\n+70AF36 Created OS            00 (0) 'MS-DOS'\n+70AF37 Extract Zip Spec      14 (20) '2.0'\n+70AF38 Extract OS            00 (0) 'MS-DOS'\n+70AF39 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AF3B Compression Method    0000 (0) 'Stored'\n+70AF3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AF41 CRC                   33E8796E (870873454)\n+70AF45 Compressed Size       00002559 (9561)\n+70AF49 Uncompressed Size     00002559 (9561)\n+70AF4D Filename Length       003B (59)\n+70AF4F Extra Length          0009 (9)\n+70AF51 Comment Length        0000 (0)\n+70AF53 Disk Start            0000 (0)\n+70AF55 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AF57 Ext File Attributes   00000000 (0)\n+70AF5B Local Header Offset   00504BA1 (5262241)\n+70AF5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AF5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70AF9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70AF9C   Length              0005 (5)\n+70AF9E   Flags               01 (1) 'Modification'\n+70AF9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70AFA3 CENTRAL HEADER #1439  02014B50 (33639248)\n+70AFA7 Created Zip Spec      14 (20) '2.0'\n+70AFA8 Created OS            00 (0) 'MS-DOS'\n+70AFA9 Extract Zip Spec      14 (20) '2.0'\n+70AFAA Extract OS            00 (0) 'MS-DOS'\n+70AFAB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70AFAD Compression Method    0000 (0) 'Stored'\n+70AFAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70AFB3 CRC                   AD83DA8F (2911099535)\n+70AFB7 Compressed Size       00001EB2 (7858)\n+70AFBB Uncompressed Size     00001EB2 (7858)\n+70AFBF Filename Length       0043 (67)\n+70AFC1 Extra Length          0009 (9)\n+70AFC3 Comment Length        0000 (0)\n+70AFC5 Disk Start            0000 (0)\n+70AFC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70AFC9 Ext File Attributes   00000000 (0)\n+70AFCD Local Header Offset   0050716C (5271916)\n+70AFD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70AFD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B014 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B016   Length              0005 (5)\n+70B018   Flags               01 (1) 'Modification'\n+70B019   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B01D CENTRAL HEADER #1440  02014B50 (33639248)\n+70B021 Created Zip Spec      14 (20) '2.0'\n+70B022 Created OS            00 (0) 'MS-DOS'\n+70B023 Extract Zip Spec      14 (20) '2.0'\n+70B024 Extract OS            00 (0) 'MS-DOS'\n+70B025 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B027 Compression Method    0000 (0) 'Stored'\n+70B029 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B02D CRC                   14F45D67 (351559015)\n+70B031 Compressed Size       0000AE27 (44583)\n+70B035 Uncompressed Size     0000AE27 (44583)\n+70B039 Filename Length       0033 (51)\n+70B03B Extra Length          0009 (9)\n+70B03D Comment Length        0000 (0)\n+70B03F Disk Start            0000 (0)\n+70B041 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B043 Ext File Attributes   00000000 (0)\n+70B047 Local Header Offset   00509098 (5279896)\n+70B04B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B04B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B07E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B080   Length              0005 (5)\n+70B082   Flags               01 (1) 'Modification'\n+70B083   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B087 CENTRAL HEADER #1441  02014B50 (33639248)\n+70B08B Created Zip Spec      14 (20) '2.0'\n+70B08C Created OS            00 (0) 'MS-DOS'\n+70B08D Extract Zip Spec      14 (20) '2.0'\n+70B08E Extract OS            00 (0) 'MS-DOS'\n+70B08F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B091 Compression Method    0000 (0) 'Stored'\n+70B093 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B097 CRC                   6A53E0FE (1783881982)\n+70B09B Compressed Size       00000456 (1110)\n+70B09F Uncompressed Size     00000456 (1110)\n+70B0A3 Filename Length       003A (58)\n+70B0A5 Extra Length          0009 (9)\n+70B0A7 Comment Length        0000 (0)\n+70B0A9 Disk Start            0000 (0)\n+70B0AB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B0AD Ext File Attributes   00000000 (0)\n+70B0B1 Local Header Offset   00513F29 (5324585)\n+70B0B5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B0B5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B0EF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B0F1   Length              0005 (5)\n+70B0F3   Flags               01 (1) 'Modification'\n+70B0F4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B0F8 CENTRAL HEADER #1442  02014B50 (33639248)\n+70B0FC Created Zip Spec      14 (20) '2.0'\n+70B0FD Created OS            00 (0) 'MS-DOS'\n+70B0FE Extract Zip Spec      14 (20) '2.0'\n+70B0FF Extract OS            00 (0) 'MS-DOS'\n+70B100 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B102 Compression Method    0000 (0) 'Stored'\n+70B104 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B108 CRC                   4997E6D6 (1234691798)\n+70B10C Compressed Size       00000C53 (3155)\n+70B110 Uncompressed Size     00000C53 (3155)\n+70B114 Filename Length       003E (62)\n+70B116 Extra Length          0009 (9)\n+70B118 Comment Length        0000 (0)\n+70B11A Disk Start            0000 (0)\n+70B11C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B11E Ext File Attributes   00000000 (0)\n+70B122 Local Header Offset   005143F0 (5325808)\n+70B126 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B126: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B164 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B166   Length              0005 (5)\n+70B168   Flags               01 (1) 'Modification'\n+70B169   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B16D CENTRAL HEADER #1443  02014B50 (33639248)\n+70B171 Created Zip Spec      14 (20) '2.0'\n+70B172 Created OS            00 (0) 'MS-DOS'\n+70B173 Extract Zip Spec      14 (20) '2.0'\n+70B174 Extract OS            00 (0) 'MS-DOS'\n+70B175 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B177 Compression Method    0000 (0) 'Stored'\n+70B179 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B17D CRC                   996F8C6F (2574224495)\n+70B181 Compressed Size       00000765 (1893)\n+70B185 Uncompressed Size     00000765 (1893)\n+70B189 Filename Length       003F (63)\n+70B18B Extra Length          0009 (9)\n+70B18D Comment Length        0000 (0)\n+70B18F Disk Start            0000 (0)\n+70B191 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B193 Ext File Attributes   00000000 (0)\n+70B197 Local Header Offset   005150B8 (5329080)\n+70B19B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B19B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B1DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B1DC   Length              0005 (5)\n+70B1DE   Flags               01 (1) 'Modification'\n+70B1DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B1E3 CENTRAL HEADER #1444  02014B50 (33639248)\n+70B1E7 Created Zip Spec      14 (20) '2.0'\n+70B1E8 Created OS            00 (0) 'MS-DOS'\n+70B1E9 Extract Zip Spec      14 (20) '2.0'\n+70B1EA Extract OS            00 (0) 'MS-DOS'\n+70B1EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B1ED Compression Method    0000 (0) 'Stored'\n+70B1EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B1F3 CRC                   C2B309D7 (3266513367)\n+70B1F7 Compressed Size       0000133E (4926)\n+70B1FB Uncompressed Size     0000133E (4926)\n+70B1FF Filename Length       0034 (52)\n+70B201 Extra Length          0009 (9)\n+70B203 Comment Length        0000 (0)\n+70B205 Disk Start            0000 (0)\n+70B207 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B209 Ext File Attributes   00000000 (0)\n+70B20D Local Header Offset   00515893 (5331091)\n+70B211 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B211: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B245 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B247   Length              0005 (5)\n+70B249   Flags               01 (1) 'Modification'\n+70B24A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B24E CENTRAL HEADER #1445  02014B50 (33639248)\n+70B252 Created Zip Spec      14 (20) '2.0'\n+70B253 Created OS            00 (0) 'MS-DOS'\n+70B254 Extract Zip Spec      14 (20) '2.0'\n+70B255 Extract OS            00 (0) 'MS-DOS'\n+70B256 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B258 Compression Method    0000 (0) 'Stored'\n+70B25A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B25E CRC                   9D245ED3 (2636406483)\n+70B262 Compressed Size       00000A45 (2629)\n+70B266 Uncompressed Size     00000A45 (2629)\n+70B26A Filename Length       0040 (64)\n+70B26C Extra Length          0009 (9)\n+70B26E Comment Length        0000 (0)\n+70B270 Disk Start            0000 (0)\n+70B272 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B274 Ext File Attributes   00000000 (0)\n+70B278 Local Header Offset   00516C3C (5336124)\n+70B27C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B27C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B2BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B2BE   Length              0005 (5)\n+70B2C0   Flags               01 (1) 'Modification'\n+70B2C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B2C5 CENTRAL HEADER #1446  02014B50 (33639248)\n+70B2C9 Created Zip Spec      14 (20) '2.0'\n+70B2CA Created OS            00 (0) 'MS-DOS'\n+70B2CB Extract Zip Spec      14 (20) '2.0'\n+70B2CC Extract OS            00 (0) 'MS-DOS'\n+70B2CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B2CF Compression Method    0000 (0) 'Stored'\n+70B2D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B2D5 CRC                   5ED5B140 (1591062848)\n+70B2D9 Compressed Size       000015E8 (5608)\n+70B2DD Uncompressed Size     000015E8 (5608)\n+70B2E1 Filename Length       003A (58)\n+70B2E3 Extra Length          0009 (9)\n+70B2E5 Comment Length        0000 (0)\n+70B2E7 Disk Start            0000 (0)\n+70B2E9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B2EB Ext File Attributes   00000000 (0)\n+70B2EF Local Header Offset   005176F8 (5338872)\n+70B2F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B2F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B32D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B32F   Length              0005 (5)\n+70B331   Flags               01 (1) 'Modification'\n+70B332   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B336 CENTRAL HEADER #1447  02014B50 (33639248)\n+70B33A Created Zip Spec      14 (20) '2.0'\n+70B33B Created OS            00 (0) 'MS-DOS'\n+70B33C Extract Zip Spec      14 (20) '2.0'\n+70B33D Extract OS            00 (0) 'MS-DOS'\n+70B33E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B340 Compression Method    0000 (0) 'Stored'\n+70B342 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B346 CRC                   CC038CDE (3422784734)\n+70B34A Compressed Size       000019AF (6575)\n+70B34E Uncompressed Size     000019AF (6575)\n+70B352 Filename Length       0037 (55)\n+70B354 Extra Length          0009 (9)\n+70B356 Comment Length        0000 (0)\n+70B358 Disk Start            0000 (0)\n+70B35A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B35C Ext File Attributes   00000000 (0)\n+70B360 Local Header Offset   00518D51 (5344593)\n+70B364 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B364: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B39B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B39D   Length              0005 (5)\n+70B39F   Flags               01 (1) 'Modification'\n+70B3A0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B3A4 CENTRAL HEADER #1448  02014B50 (33639248)\n+70B3A8 Created Zip Spec      14 (20) '2.0'\n+70B3A9 Created OS            00 (0) 'MS-DOS'\n+70B3AA Extract Zip Spec      14 (20) '2.0'\n+70B3AB Extract OS            00 (0) 'MS-DOS'\n+70B3AC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B3AE Compression Method    0000 (0) 'Stored'\n+70B3B0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B3B4 CRC                   80349D10 (2150931728)\n+70B3B8 Compressed Size       00000779 (1913)\n+70B3BC Uncompressed Size     00000779 (1913)\n+70B3C0 Filename Length       003E (62)\n+70B3C2 Extra Length          0009 (9)\n+70B3C4 Comment Length        0000 (0)\n+70B3C6 Disk Start            0000 (0)\n+70B3C8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B3CA Ext File Attributes   00000000 (0)\n+70B3CE Local Header Offset   0051A76E (5351278)\n+70B3D2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B3D2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B410 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B412   Length              0005 (5)\n+70B414   Flags               01 (1) 'Modification'\n+70B415   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B419 CENTRAL HEADER #1449  02014B50 (33639248)\n+70B41D Created Zip Spec      14 (20) '2.0'\n+70B41E Created OS            00 (0) 'MS-DOS'\n+70B41F Extract Zip Spec      14 (20) '2.0'\n+70B420 Extract OS            00 (0) 'MS-DOS'\n+70B421 General Purpose Flag  0000 (0)\n+70B423 Compression Method    0000 (0) 'Stored'\n+70B425 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B429 CRC                   00000000 (0)\n+70B42D Compressed Size       00000000 (0)\n+70B431 Uncompressed Size     00000000 (0)\n+70B435 Filename Length       001F (31)\n+70B437 Extra Length          0009 (9)\n+70B439 Comment Length        0000 (0)\n+70B43B Disk Start            0000 (0)\n+70B43D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B43F Ext File Attributes   00000000 (0)\n+70B443 Local Header Offset   0051AF5C (5353308)\n+70B447 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B447: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B466 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B468   Length              0005 (5)\n+70B46A   Flags               01 (1) 'Modification'\n+70B46B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B46F CENTRAL HEADER #1450  02014B50 (33639248)\n+70B473 Created Zip Spec      14 (20) '2.0'\n+70B474 Created OS            00 (0) 'MS-DOS'\n+70B475 Extract Zip Spec      14 (20) '2.0'\n+70B476 Extract OS            00 (0) 'MS-DOS'\n+70B477 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B479 Compression Method    0000 (0) 'Stored'\n+70B47B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B47F CRC                   2526A8CF (623290575)\n+70B483 Compressed Size       00000657 (1623)\n+70B487 Uncompressed Size     00000657 (1623)\n+70B48B Filename Length       0037 (55)\n+70B48D Extra Length          0009 (9)\n+70B48F Comment Length        0000 (0)\n+70B491 Disk Start            0000 (0)\n+70B493 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B495 Ext File Attributes   00000000 (0)\n+70B499 Local Header Offset   0051AFA2 (5353378)\n+70B49D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B49D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B4D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B4D6   Length              0005 (5)\n+70B4D8   Flags               01 (1) 'Modification'\n+70B4D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B4DD CENTRAL HEADER #1451  02014B50 (33639248)\n+70B4E1 Created Zip Spec      14 (20) '2.0'\n+70B4E2 Created OS            00 (0) 'MS-DOS'\n+70B4E3 Extract Zip Spec      14 (20) '2.0'\n+70B4E4 Extract OS            00 (0) 'MS-DOS'\n+70B4E5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B4E7 Compression Method    0000 (0) 'Stored'\n+70B4E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B4ED CRC                   CD8B51D1 (3448459729)\n+70B4F1 Compressed Size       000003DC (988)\n+70B4F5 Uncompressed Size     000003DC (988)\n+70B4F9 Filename Length       0031 (49)\n+70B4FB Extra Length          0009 (9)\n+70B4FD Comment Length        0000 (0)\n+70B4FF Disk Start            0000 (0)\n+70B501 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B503 Ext File Attributes   00000000 (0)\n+70B507 Local Header Offset   0051B667 (5355111)\n+70B50B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B50B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B53C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B53E   Length              0005 (5)\n+70B540   Flags               01 (1) 'Modification'\n+70B541   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B545 CENTRAL HEADER #1452  02014B50 (33639248)\n+70B549 Created Zip Spec      14 (20) '2.0'\n+70B54A Created OS            00 (0) 'MS-DOS'\n+70B54B Extract Zip Spec      14 (20) '2.0'\n+70B54C Extract OS            00 (0) 'MS-DOS'\n+70B54D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B54F Compression Method    0000 (0) 'Stored'\n+70B551 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B555 CRC                   322BAD20 (841723168)\n+70B559 Compressed Size       00000700 (1792)\n+70B55D Uncompressed Size     00000700 (1792)\n+70B561 Filename Length       002D (45)\n+70B563 Extra Length          0009 (9)\n+70B565 Comment Length        0000 (0)\n+70B567 Disk Start            0000 (0)\n+70B569 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B56B Ext File Attributes   00000000 (0)\n+70B56F Local Header Offset   0051BAAB (5356203)\n+70B573 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B573: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B5A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B5A2   Length              0005 (5)\n+70B5A4   Flags               01 (1) 'Modification'\n+70B5A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B5A9 CENTRAL HEADER #1453  02014B50 (33639248)\n+70B5AD Created Zip Spec      14 (20) '2.0'\n+70B5AE Created OS            00 (0) 'MS-DOS'\n+70B5AF Extract Zip Spec      14 (20) '2.0'\n+70B5B0 Extract OS            00 (0) 'MS-DOS'\n+70B5B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B5B3 Compression Method    0000 (0) 'Stored'\n+70B5B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B5B9 CRC                   9A56CC71 (2589379697)\n+70B5BD Compressed Size       000019AA (6570)\n+70B5C1 Uncompressed Size     000019AA (6570)\n+70B5C5 Filename Length       002E (46)\n+70B5C7 Extra Length          0009 (9)\n+70B5C9 Comment Length        0000 (0)\n+70B5CB Disk Start            0000 (0)\n+70B5CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B5CF Ext File Attributes   00000000 (0)\n+70B5D3 Local Header Offset   0051C20F (5358095)\n+70B5D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B5D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B605 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B607   Length              0005 (5)\n+70B609   Flags               01 (1) 'Modification'\n+70B60A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B60E CENTRAL HEADER #1454  02014B50 (33639248)\n+70B612 Created Zip Spec      14 (20) '2.0'\n+70B613 Created OS            00 (0) 'MS-DOS'\n+70B614 Extract Zip Spec      14 (20) '2.0'\n+70B615 Extract OS            00 (0) 'MS-DOS'\n+70B616 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B618 Compression Method    0000 (0) 'Stored'\n+70B61A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B61E CRC                   BBB4B4AC (3149182124)\n+70B622 Compressed Size       000007E6 (2022)\n+70B626 Uncompressed Size     000007E6 (2022)\n+70B62A Filename Length       0033 (51)\n+70B62C Extra Length          0009 (9)\n+70B62E Comment Length        0000 (0)\n+70B630 Disk Start            0000 (0)\n+70B632 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B634 Ext File Attributes   00000000 (0)\n+70B638 Local Header Offset   0051DC1E (5364766)\n+70B63C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B63C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B66F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B671   Length              0005 (5)\n+70B673   Flags               01 (1) 'Modification'\n+70B674   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B678 CENTRAL HEADER #1455  02014B50 (33639248)\n+70B67C Created Zip Spec      14 (20) '2.0'\n+70B67D Created OS            00 (0) 'MS-DOS'\n+70B67E Extract Zip Spec      14 (20) '2.0'\n+70B67F Extract OS            00 (0) 'MS-DOS'\n+70B680 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B682 Compression Method    0000 (0) 'Stored'\n+70B684 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B688 CRC                   302E6CD8 (808348888)\n+70B68C Compressed Size       000004FA (1274)\n+70B690 Uncompressed Size     000004FA (1274)\n+70B694 Filename Length       002F (47)\n+70B696 Extra Length          0009 (9)\n+70B698 Comment Length        0000 (0)\n+70B69A Disk Start            0000 (0)\n+70B69C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B69E Ext File Attributes   00000000 (0)\n+70B6A2 Local Header Offset   0051E46E (5366894)\n+70B6A6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B6A6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B6D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B6D7   Length              0005 (5)\n+70B6D9   Flags               01 (1) 'Modification'\n+70B6DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B6DE CENTRAL HEADER #1456  02014B50 (33639248)\n+70B6E2 Created Zip Spec      14 (20) '2.0'\n+70B6E3 Created OS            00 (0) 'MS-DOS'\n+70B6E4 Extract Zip Spec      14 (20) '2.0'\n+70B6E5 Extract OS            00 (0) 'MS-DOS'\n+70B6E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B6E8 Compression Method    0000 (0) 'Stored'\n+70B6EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B6EE CRC                   6ADC9301 (1792840449)\n+70B6F2 Compressed Size       000003E4 (996)\n+70B6F6 Uncompressed Size     000003E4 (996)\n+70B6FA Filename Length       0031 (49)\n+70B6FC Extra Length          0009 (9)\n+70B6FE Comment Length        0000 (0)\n+70B700 Disk Start            0000 (0)\n+70B702 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B704 Ext File Attributes   00000000 (0)\n+70B708 Local Header Offset   0051E9CE (5368270)\n+70B70C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B70C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B73D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B73F   Length              0005 (5)\n+70B741   Flags               01 (1) 'Modification'\n+70B742   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B746 CENTRAL HEADER #1457  02014B50 (33639248)\n+70B74A Created Zip Spec      14 (20) '2.0'\n+70B74B Created OS            00 (0) 'MS-DOS'\n+70B74C Extract Zip Spec      14 (20) '2.0'\n+70B74D Extract OS            00 (0) 'MS-DOS'\n+70B74E General Purpose Flag  0000 (0)\n+70B750 Compression Method    0000 (0) 'Stored'\n+70B752 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B756 CRC                   00000000 (0)\n+70B75A Compressed Size       00000000 (0)\n+70B75E Uncompressed Size     00000000 (0)\n+70B762 Filename Length       0025 (37)\n+70B764 Extra Length          0009 (9)\n+70B766 Comment Length        0000 (0)\n+70B768 Disk Start            0000 (0)\n+70B76A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B76C Ext File Attributes   00000000 (0)\n+70B770 Local Header Offset   0051EE1A (5369370)\n+70B774 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B774: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B79B   Length              0005 (5)\n+70B79D   Flags               01 (1) 'Modification'\n+70B79E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B7A2 CENTRAL HEADER #1458  02014B50 (33639248)\n+70B7A6 Created Zip Spec      14 (20) '2.0'\n+70B7A7 Created OS            00 (0) 'MS-DOS'\n+70B7A8 Extract Zip Spec      14 (20) '2.0'\n+70B7A9 Extract OS            00 (0) 'MS-DOS'\n+70B7AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B7AC Compression Method    0000 (0) 'Stored'\n+70B7AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B7B2 CRC                   F69577E7 (4136990695)\n+70B7B6 Compressed Size       0000048A (1162)\n+70B7BA Uncompressed Size     0000048A (1162)\n+70B7BE Filename Length       0041 (65)\n+70B7C0 Extra Length          0009 (9)\n+70B7C2 Comment Length        0000 (0)\n+70B7C4 Disk Start            0000 (0)\n+70B7C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B7C8 Ext File Attributes   00000000 (0)\n+70B7CC Local Header Offset   0051EE66 (5369446)\n+70B7D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B7D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B811 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B813   Length              0005 (5)\n+70B815   Flags               01 (1) 'Modification'\n+70B816   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B81A CENTRAL HEADER #1459  02014B50 (33639248)\n+70B81E Created Zip Spec      14 (20) '2.0'\n+70B81F Created OS            00 (0) 'MS-DOS'\n+70B820 Extract Zip Spec      14 (20) '2.0'\n+70B821 Extract OS            00 (0) 'MS-DOS'\n+70B822 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B824 Compression Method    0000 (0) 'Stored'\n+70B826 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B82A CRC                   93092688 (2466850440)\n+70B82E Compressed Size       000042E1 (17121)\n+70B832 Uncompressed Size     000042E1 (17121)\n+70B836 Filename Length       0035 (53)\n+70B838 Extra Length          0009 (9)\n+70B83A Comment Length        0000 (0)\n+70B83C Disk Start            0000 (0)\n+70B83E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B840 Ext File Attributes   00000000 (0)\n+70B844 Local Header Offset   0051F368 (5370728)\n+70B848 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B848: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B87D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B87F   Length              0005 (5)\n+70B881   Flags               01 (1) 'Modification'\n+70B882   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B886 CENTRAL HEADER #1460  02014B50 (33639248)\n+70B88A Created Zip Spec      14 (20) '2.0'\n+70B88B Created OS            00 (0) 'MS-DOS'\n+70B88C Extract Zip Spec      14 (20) '2.0'\n+70B88D Extract OS            00 (0) 'MS-DOS'\n+70B88E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B890 Compression Method    0000 (0) 'Stored'\n+70B892 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B896 CRC                   29CC663D (701261373)\n+70B89A Compressed Size       000071B8 (29112)\n+70B89E Uncompressed Size     000071B8 (29112)\n+70B8A2 Filename Length       003C (60)\n+70B8A4 Extra Length          0009 (9)\n+70B8A6 Comment Length        0000 (0)\n+70B8A8 Disk Start            0000 (0)\n+70B8AA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B8AC Ext File Attributes   00000000 (0)\n+70B8B0 Local Header Offset   005236B5 (5387957)\n+70B8B4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B8B4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B8F0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B8F2   Length              0005 (5)\n+70B8F4   Flags               01 (1) 'Modification'\n+70B8F5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B8F9 CENTRAL HEADER #1461  02014B50 (33639248)\n+70B8FD Created Zip Spec      14 (20) '2.0'\n+70B8FE Created OS            00 (0) 'MS-DOS'\n+70B8FF Extract Zip Spec      14 (20) '2.0'\n+70B900 Extract OS            00 (0) 'MS-DOS'\n+70B901 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B903 Compression Method    0000 (0) 'Stored'\n+70B905 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B909 CRC                   11BF3CA1 (297745569)\n+70B90D Compressed Size       0000049E (1182)\n+70B911 Uncompressed Size     0000049E (1182)\n+70B915 Filename Length       003A (58)\n+70B917 Extra Length          0009 (9)\n+70B919 Comment Length        0000 (0)\n+70B91B Disk Start            0000 (0)\n+70B91D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B91F Ext File Attributes   00000000 (0)\n+70B923 Local Header Offset   0052A8E0 (5417184)\n+70B927 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B927: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B961 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B963   Length              0005 (5)\n+70B965   Flags               01 (1) 'Modification'\n+70B966   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B96A CENTRAL HEADER #1462  02014B50 (33639248)\n+70B96E Created Zip Spec      14 (20) '2.0'\n+70B96F Created OS            00 (0) 'MS-DOS'\n+70B970 Extract Zip Spec      14 (20) '2.0'\n+70B971 Extract OS            00 (0) 'MS-DOS'\n+70B972 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B974 Compression Method    0000 (0) 'Stored'\n+70B976 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B97A CRC                   8B7AC527 (2340078887)\n+70B97E Compressed Size       00000DCC (3532)\n+70B982 Uncompressed Size     00000DCC (3532)\n+70B986 Filename Length       0034 (52)\n+70B988 Extra Length          0009 (9)\n+70B98A Comment Length        0000 (0)\n+70B98C Disk Start            0000 (0)\n+70B98E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B990 Ext File Attributes   00000000 (0)\n+70B994 Local Header Offset   0052ADEF (5418479)\n+70B998 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70B998: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70B9CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70B9CE   Length              0005 (5)\n+70B9D0   Flags               01 (1) 'Modification'\n+70B9D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70B9D5 CENTRAL HEADER #1463  02014B50 (33639248)\n+70B9D9 Created Zip Spec      14 (20) '2.0'\n+70B9DA Created OS            00 (0) 'MS-DOS'\n+70B9DB Extract Zip Spec      14 (20) '2.0'\n+70B9DC Extract OS            00 (0) 'MS-DOS'\n+70B9DD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70B9DF Compression Method    0000 (0) 'Stored'\n+70B9E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70B9E5 CRC                   117709A7 (293013927)\n+70B9E9 Compressed Size       0000056A (1386)\n+70B9ED Uncompressed Size     0000056A (1386)\n+70B9F1 Filename Length       0035 (53)\n+70B9F3 Extra Length          0009 (9)\n+70B9F5 Comment Length        0000 (0)\n+70B9F7 Disk Start            0000 (0)\n+70B9F9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70B9FB Ext File Attributes   00000000 (0)\n+70B9FF Local Header Offset   0052BC26 (5422118)\n+70BA03 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BA03: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BA38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BA3A   Length              0005 (5)\n+70BA3C   Flags               01 (1) 'Modification'\n+70BA3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BA41 CENTRAL HEADER #1464  02014B50 (33639248)\n+70BA45 Created Zip Spec      14 (20) '2.0'\n+70BA46 Created OS            00 (0) 'MS-DOS'\n+70BA47 Extract Zip Spec      14 (20) '2.0'\n+70BA48 Extract OS            00 (0) 'MS-DOS'\n+70BA49 General Purpose Flag  0000 (0)\n+70BA4B Compression Method    0000 (0) 'Stored'\n+70BA4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BA51 CRC                   00000000 (0)\n+70BA55 Compressed Size       00000000 (0)\n+70BA59 Uncompressed Size     00000000 (0)\n+70BA5D Filename Length       0026 (38)\n+70BA5F Extra Length          0009 (9)\n+70BA61 Comment Length        0000 (0)\n+70BA63 Disk Start            0000 (0)\n+70BA65 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BA67 Ext File Attributes   00000000 (0)\n+70BA6B Local Header Offset   0052C1FC (5423612)\n+70BA6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BA6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BA95 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BA97   Length              0005 (5)\n+70BA99   Flags               01 (1) 'Modification'\n+70BA9A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BA9E CENTRAL HEADER #1465  02014B50 (33639248)\n+70BAA2 Created Zip Spec      14 (20) '2.0'\n+70BAA3 Created OS            00 (0) 'MS-DOS'\n+70BAA4 Extract Zip Spec      14 (20) '2.0'\n+70BAA5 Extract OS            00 (0) 'MS-DOS'\n+70BAA6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BAA8 Compression Method    0000 (0) 'Stored'\n+70BAAA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BAAE CRC                   A1B16DDC (2712759772)\n+70BAB2 Compressed Size       00000BB9 (3001)\n+70BAB6 Uncompressed Size     00000BB9 (3001)\n+70BABA Filename Length       0035 (53)\n+70BABC Extra Length          0009 (9)\n+70BABE Comment Length        0000 (0)\n+70BAC0 Disk Start            0000 (0)\n+70BAC2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BAC4 Ext File Attributes   00000000 (0)\n+70BAC8 Local Header Offset   0052C249 (5423689)\n+70BACC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BACC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BB01 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BB03   Length              0005 (5)\n+70BB05   Flags               01 (1) 'Modification'\n+70BB06   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BB0A CENTRAL HEADER #1466  02014B50 (33639248)\n+70BB0E Created Zip Spec      14 (20) '2.0'\n+70BB0F Created OS            00 (0) 'MS-DOS'\n+70BB10 Extract Zip Spec      14 (20) '2.0'\n+70BB11 Extract OS            00 (0) 'MS-DOS'\n+70BB12 General Purpose Flag  0000 (0)\n+70BB14 Compression Method    0000 (0) 'Stored'\n+70BB16 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BB1A CRC                   00000000 (0)\n+70BB1E Compressed Size       00000000 (0)\n+70BB22 Uncompressed Size     00000000 (0)\n+70BB26 Filename Length       0027 (39)\n+70BB28 Extra Length          0009 (9)\n+70BB2A Comment Length        0000 (0)\n+70BB2C Disk Start            0000 (0)\n+70BB2E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BB30 Ext File Attributes   00000000 (0)\n+70BB34 Local Header Offset   0052CE6E (5426798)\n+70BB38 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BB38: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BB5F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BB61   Length              0005 (5)\n+70BB63   Flags               01 (1) 'Modification'\n+70BB64   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BB68 CENTRAL HEADER #1467  02014B50 (33639248)\n+70BB6C Created Zip Spec      14 (20) '2.0'\n+70BB6D Created OS            00 (0) 'MS-DOS'\n+70BB6E Extract Zip Spec      14 (20) '2.0'\n+70BB6F Extract OS            00 (0) 'MS-DOS'\n+70BB70 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BB72 Compression Method    0000 (0) 'Stored'\n+70BB74 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BB78 CRC                   43B8CAA4 (1136183972)\n+70BB7C Compressed Size       00001D14 (7444)\n+70BB80 Uncompressed Size     00001D14 (7444)\n+70BB84 Filename Length       003E (62)\n+70BB86 Extra Length          0009 (9)\n+70BB88 Comment Length        0000 (0)\n+70BB8A Disk Start            0000 (0)\n+70BB8C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BB8E Ext File Attributes   00000000 (0)\n+70BB92 Local Header Offset   0052CEBC (5426876)\n+70BB96 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BB96: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BBD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BBD6   Length              0005 (5)\n+70BBD8   Flags               01 (1) 'Modification'\n+70BBD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BBDD CENTRAL HEADER #1468  02014B50 (33639248)\n+70BBE1 Created Zip Spec      14 (20) '2.0'\n+70BBE2 Created OS            00 (0) 'MS-DOS'\n+70BBE3 Extract Zip Spec      14 (20) '2.0'\n+70BBE4 Extract OS            00 (0) 'MS-DOS'\n+70BBE5 General Purpose Flag  0000 (0)\n+70BBE7 Compression Method    0000 (0) 'Stored'\n+70BBE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BBED CRC                   00000000 (0)\n+70BBF1 Compressed Size       00000000 (0)\n+70BBF5 Uncompressed Size     00000000 (0)\n+70BBF9 Filename Length       0023 (35)\n+70BBFB Extra Length          0009 (9)\n+70BBFD Comment Length        0000 (0)\n+70BBFF Disk Start            0000 (0)\n+70BC01 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BC03 Ext File Attributes   00000000 (0)\n+70BC07 Local Header Offset   0052EC45 (5434437)\n+70BC0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BC0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BC2E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BC30   Length              0005 (5)\n+70BC32   Flags               01 (1) 'Modification'\n+70BC33   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BC37 CENTRAL HEADER #1469  02014B50 (33639248)\n+70BC3B Created Zip Spec      14 (20) '2.0'\n+70BC3C Created OS            00 (0) 'MS-DOS'\n+70BC3D Extract Zip Spec      14 (20) '2.0'\n+70BC3E Extract OS            00 (0) 'MS-DOS'\n+70BC3F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BC41 Compression Method    0000 (0) 'Stored'\n+70BC43 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BC47 CRC                   D599DEAA (3583631018)\n+70BC4B Compressed Size       000009A4 (2468)\n+70BC4F Uncompressed Size     000009A4 (2468)\n+70BC53 Filename Length       0037 (55)\n+70BC55 Extra Length          0009 (9)\n+70BC57 Comment Length        0000 (0)\n+70BC59 Disk Start            0000 (0)\n+70BC5B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BC5D Ext File Attributes   00000000 (0)\n+70BC61 Local Header Offset   0052EC8F (5434511)\n+70BC65 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BC65: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BC9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BC9E   Length              0005 (5)\n+70BCA0   Flags               01 (1) 'Modification'\n+70BCA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BCA5 CENTRAL HEADER #1470  02014B50 (33639248)\n+70BCA9 Created Zip Spec      14 (20) '2.0'\n+70BCAA Created OS            00 (0) 'MS-DOS'\n+70BCAB Extract Zip Spec      14 (20) '2.0'\n+70BCAC Extract OS            00 (0) 'MS-DOS'\n+70BCAD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BCAF Compression Method    0000 (0) 'Stored'\n+70BCB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BCB5 CRC                   E165CDFB (3781545467)\n+70BCB9 Compressed Size       0000041A (1050)\n+70BCBD Uncompressed Size     0000041A (1050)\n+70BCC1 Filename Length       0036 (54)\n+70BCC3 Extra Length          0009 (9)\n+70BCC5 Comment Length        0000 (0)\n+70BCC7 Disk Start            0000 (0)\n+70BCC9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BCCB Ext File Attributes   00000000 (0)\n+70BCCF Local Header Offset   0052F6A1 (5437089)\n+70BCD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BCD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BD09 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BD0B   Length              0005 (5)\n+70BD0D   Flags               01 (1) 'Modification'\n+70BD0E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BD12 CENTRAL HEADER #1471  02014B50 (33639248)\n+70BD16 Created Zip Spec      14 (20) '2.0'\n+70BD17 Created OS            00 (0) 'MS-DOS'\n+70BD18 Extract Zip Spec      14 (20) '2.0'\n+70BD19 Extract OS            00 (0) 'MS-DOS'\n+70BD1A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BD1C Compression Method    0000 (0) 'Stored'\n+70BD1E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BD22 CRC                   72699C54 (1919523924)\n+70BD26 Compressed Size       000005B9 (1465)\n+70BD2A Uncompressed Size     000005B9 (1465)\n+70BD2E Filename Length       0037 (55)\n+70BD30 Extra Length          0009 (9)\n+70BD32 Comment Length        0000 (0)\n+70BD34 Disk Start            0000 (0)\n+70BD36 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BD38 Ext File Attributes   00000000 (0)\n+70BD3C Local Header Offset   0052FB28 (5438248)\n+70BD40 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BD40: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BD77 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BD79   Length              0005 (5)\n+70BD7B   Flags               01 (1) 'Modification'\n+70BD7C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BD80 CENTRAL HEADER #1472  02014B50 (33639248)\n+70BD84 Created Zip Spec      14 (20) '2.0'\n+70BD85 Created OS            00 (0) 'MS-DOS'\n+70BD86 Extract Zip Spec      14 (20) '2.0'\n+70BD87 Extract OS            00 (0) 'MS-DOS'\n+70BD88 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BD8A Compression Method    0000 (0) 'Stored'\n+70BD8C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BD90 CRC                   330FACB0 (856665264)\n+70BD94 Compressed Size       00000588 (1416)\n+70BD98 Uncompressed Size     00000588 (1416)\n+70BD9C Filename Length       0036 (54)\n+70BD9E Extra Length          0009 (9)\n+70BDA0 Comment Length        0000 (0)\n+70BDA2 Disk Start            0000 (0)\n+70BDA4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BDA6 Ext File Attributes   00000000 (0)\n+70BDAA Local Header Offset   0053014F (5439823)\n+70BDAE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BDAE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BDE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BDE6   Length              0005 (5)\n+70BDE8   Flags               01 (1) 'Modification'\n+70BDE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BDED CENTRAL HEADER #1473  02014B50 (33639248)\n+70BDF1 Created Zip Spec      14 (20) '2.0'\n+70BDF2 Created OS            00 (0) 'MS-DOS'\n+70BDF3 Extract Zip Spec      14 (20) '2.0'\n+70BDF4 Extract OS            00 (0) 'MS-DOS'\n+70BDF5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BDF7 Compression Method    0000 (0) 'Stored'\n+70BDF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BDFD CRC                   D85DA328 (3630015272)\n+70BE01 Compressed Size       000007B2 (1970)\n+70BE05 Uncompressed Size     000007B2 (1970)\n+70BE09 Filename Length       0031 (49)\n+70BE0B Extra Length          0009 (9)\n+70BE0D Comment Length        0000 (0)\n+70BE0F Disk Start            0000 (0)\n+70BE11 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BE13 Ext File Attributes   00000000 (0)\n+70BE17 Local Header Offset   00530744 (5441348)\n+70BE1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BE1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BE4C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BE4E   Length              0005 (5)\n+70BE50   Flags               01 (1) 'Modification'\n+70BE51   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BE55 CENTRAL HEADER #1474  02014B50 (33639248)\n+70BE59 Created Zip Spec      14 (20) '2.0'\n+70BE5A Created OS            00 (0) 'MS-DOS'\n+70BE5B Extract Zip Spec      14 (20) '2.0'\n+70BE5C Extract OS            00 (0) 'MS-DOS'\n+70BE5D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BE5F Compression Method    0000 (0) 'Stored'\n+70BE61 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BE65 CRC                   B04E2D51 (2957913425)\n+70BE69 Compressed Size       0000135D (4957)\n+70BE6D Uncompressed Size     0000135D (4957)\n+70BE71 Filename Length       0032 (50)\n+70BE73 Extra Length          0009 (9)\n+70BE75 Comment Length        0000 (0)\n+70BE77 Disk Start            0000 (0)\n+70BE79 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BE7B Ext File Attributes   00000000 (0)\n+70BE7F Local Header Offset   00530F5E (5443422)\n+70BE83 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BE83: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BEB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BEB7   Length              0005 (5)\n+70BEB9   Flags               01 (1) 'Modification'\n+70BEBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BEBE CENTRAL HEADER #1475  02014B50 (33639248)\n+70BEC2 Created Zip Spec      14 (20) '2.0'\n+70BEC3 Created OS            00 (0) 'MS-DOS'\n+70BEC4 Extract Zip Spec      14 (20) '2.0'\n+70BEC5 Extract OS            00 (0) 'MS-DOS'\n+70BEC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BEC8 Compression Method    0000 (0) 'Stored'\n+70BECA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BECE CRC                   D366AAB0 (3546720944)\n+70BED2 Compressed Size       00000EEC (3820)\n+70BED6 Uncompressed Size     00000EEC (3820)\n+70BEDA Filename Length       002F (47)\n+70BEDC Extra Length          0009 (9)\n+70BEDE Comment Length        0000 (0)\n+70BEE0 Disk Start            0000 (0)\n+70BEE2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BEE4 Ext File Attributes   00000000 (0)\n+70BEE8 Local Header Offset   00532324 (5448484)\n+70BEEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BEEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BF1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BF1D   Length              0005 (5)\n+70BF1F   Flags               01 (1) 'Modification'\n+70BF20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BF24 CENTRAL HEADER #1476  02014B50 (33639248)\n+70BF28 Created Zip Spec      14 (20) '2.0'\n+70BF29 Created OS            00 (0) 'MS-DOS'\n+70BF2A Extract Zip Spec      14 (20) '2.0'\n+70BF2B Extract OS            00 (0) 'MS-DOS'\n+70BF2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BF2E Compression Method    0000 (0) 'Stored'\n+70BF30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BF34 CRC                   FF46E79C (4282836892)\n+70BF38 Compressed Size       00000FC4 (4036)\n+70BF3C Uncompressed Size     00000FC4 (4036)\n+70BF40 Filename Length       0030 (48)\n+70BF42 Extra Length          0009 (9)\n+70BF44 Comment Length        0000 (0)\n+70BF46 Disk Start            0000 (0)\n+70BF48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BF4A Ext File Attributes   00000000 (0)\n+70BF4E Local Header Offset   00533276 (5452406)\n+70BF52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BF52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BF82 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BF84   Length              0005 (5)\n+70BF86   Flags               01 (1) 'Modification'\n+70BF87   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BF8B CENTRAL HEADER #1477  02014B50 (33639248)\n+70BF8F Created Zip Spec      14 (20) '2.0'\n+70BF90 Created OS            00 (0) 'MS-DOS'\n+70BF91 Extract Zip Spec      14 (20) '2.0'\n+70BF92 Extract OS            00 (0) 'MS-DOS'\n+70BF93 General Purpose Flag  0000 (0)\n+70BF95 Compression Method    0000 (0) 'Stored'\n+70BF97 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BF9B CRC                   00000000 (0)\n+70BF9F Compressed Size       00000000 (0)\n+70BFA3 Uncompressed Size     00000000 (0)\n+70BFA7 Filename Length       0029 (41)\n+70BFA9 Extra Length          0009 (9)\n+70BFAB Comment Length        0000 (0)\n+70BFAD Disk Start            0000 (0)\n+70BFAF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70BFB1 Ext File Attributes   00000000 (0)\n+70BFB5 Local Header Offset   005342A1 (5456545)\n+70BFB9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70BFB9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70BFE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70BFE4   Length              0005 (5)\n+70BFE6   Flags               01 (1) 'Modification'\n+70BFE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70BFEB CENTRAL HEADER #1478  02014B50 (33639248)\n+70BFEF Created Zip Spec      14 (20) '2.0'\n+70BFF0 Created OS            00 (0) 'MS-DOS'\n+70BFF1 Extract Zip Spec      14 (20) '2.0'\n+70BFF2 Extract OS            00 (0) 'MS-DOS'\n+70BFF3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70BFF5 Compression Method    0000 (0) 'Stored'\n+70BFF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70BFFB CRC                   6E137A75 (1846770293)\n+70BFFF Compressed Size       000050EF (20719)\n+70C003 Uncompressed Size     000050EF (20719)\n+70C007 Filename Length       003B (59)\n+70C009 Extra Length          0009 (9)\n+70C00B Comment Length        0000 (0)\n+70C00D Disk Start            0000 (0)\n+70C00F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C011 Ext File Attributes   00000000 (0)\n+70C015 Local Header Offset   005342F1 (5456625)\n+70C019 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C019: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C054 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C056   Length              0005 (5)\n+70C058   Flags               01 (1) 'Modification'\n+70C059   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C05D CENTRAL HEADER #1479  02014B50 (33639248)\n+70C061 Created Zip Spec      14 (20) '2.0'\n+70C062 Created OS            00 (0) 'MS-DOS'\n+70C063 Extract Zip Spec      14 (20) '2.0'\n+70C064 Extract OS            00 (0) 'MS-DOS'\n+70C065 General Purpose Flag  0000 (0)\n+70C067 Compression Method    0000 (0) 'Stored'\n+70C069 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C06D CRC                   00000000 (0)\n+70C071 Compressed Size       00000000 (0)\n+70C075 Uncompressed Size     00000000 (0)\n+70C079 Filename Length       002B (43)\n+70C07B Extra Length          0009 (9)\n+70C07D Comment Length        0000 (0)\n+70C07F Disk Start            0000 (0)\n+70C081 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C083 Ext File Attributes   00000000 (0)\n+70C087 Local Header Offset   00539452 (5477458)\n+70C08B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C08B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C0B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C0B8   Length              0005 (5)\n+70C0BA   Flags               01 (1) 'Modification'\n+70C0BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C0BF CENTRAL HEADER #1480  02014B50 (33639248)\n+70C0C3 Created Zip Spec      14 (20) '2.0'\n+70C0C4 Created OS            00 (0) 'MS-DOS'\n+70C0C5 Extract Zip Spec      14 (20) '2.0'\n+70C0C6 Extract OS            00 (0) 'MS-DOS'\n+70C0C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C0C9 Compression Method    0000 (0) 'Stored'\n+70C0CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C0CF CRC                   38A27EA4 (950173348)\n+70C0D3 Compressed Size       00002E18 (11800)\n+70C0D7 Uncompressed Size     00002E18 (11800)\n+70C0DB Filename Length       003D (61)\n+70C0DD Extra Length          0009 (9)\n+70C0DF Comment Length        0000 (0)\n+70C0E1 Disk Start            0000 (0)\n+70C0E3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C0E5 Ext File Attributes   00000000 (0)\n+70C0E9 Local Header Offset   005394A4 (5477540)\n+70C0ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C0ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C12A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C12C   Length              0005 (5)\n+70C12E   Flags               01 (1) 'Modification'\n+70C12F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C133 CENTRAL HEADER #1481  02014B50 (33639248)\n+70C137 Created Zip Spec      14 (20) '2.0'\n+70C138 Created OS            00 (0) 'MS-DOS'\n+70C139 Extract Zip Spec      14 (20) '2.0'\n+70C13A Extract OS            00 (0) 'MS-DOS'\n+70C13B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C13D Compression Method    0000 (0) 'Stored'\n+70C13F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C143 CRC                   8AF6C6B7 (2331428535)\n+70C147 Compressed Size       000005BB (1467)\n+70C14B Uncompressed Size     000005BB (1467)\n+70C14F Filename Length       0046 (70)\n+70C151 Extra Length          0009 (9)\n+70C153 Comment Length        0000 (0)\n+70C155 Disk Start            0000 (0)\n+70C157 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C159 Ext File Attributes   00000000 (0)\n+70C15D Local Header Offset   0053C330 (5489456)\n+70C161 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C161: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C1A7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C1A9   Length              0005 (5)\n+70C1AB   Flags               01 (1) 'Modification'\n+70C1AC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C1B0 CENTRAL HEADER #1482  02014B50 (33639248)\n+70C1B4 Created Zip Spec      14 (20) '2.0'\n+70C1B5 Created OS            00 (0) 'MS-DOS'\n+70C1B6 Extract Zip Spec      14 (20) '2.0'\n+70C1B7 Extract OS            00 (0) 'MS-DOS'\n+70C1B8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C1BA Compression Method    0000 (0) 'Stored'\n+70C1BC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C1C0 CRC                   2C68D340 (745067328)\n+70C1C4 Compressed Size       00001165 (4453)\n+70C1C8 Uncompressed Size     00001165 (4453)\n+70C1CC Filename Length       0049 (73)\n+70C1CE Extra Length          0009 (9)\n+70C1D0 Comment Length        0000 (0)\n+70C1D2 Disk Start            0000 (0)\n+70C1D4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C1D6 Ext File Attributes   00000000 (0)\n+70C1DA Local Header Offset   0053C968 (5491048)\n+70C1DE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C1DE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C227 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C229   Length              0005 (5)\n+70C22B   Flags               01 (1) 'Modification'\n+70C22C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C230 CENTRAL HEADER #1483  02014B50 (33639248)\n+70C234 Created Zip Spec      14 (20) '2.0'\n+70C235 Created OS            00 (0) 'MS-DOS'\n+70C236 Extract Zip Spec      14 (20) '2.0'\n+70C237 Extract OS            00 (0) 'MS-DOS'\n+70C238 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C23A Compression Method    0000 (0) 'Stored'\n+70C23C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C240 CRC                   C14E1F5D (3243122525)\n+70C244 Compressed Size       00000DD5 (3541)\n+70C248 Uncompressed Size     00000DD5 (3541)\n+70C24C Filename Length       0046 (70)\n+70C24E Extra Length          0009 (9)\n+70C250 Comment Length        0000 (0)\n+70C252 Disk Start            0000 (0)\n+70C254 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C256 Ext File Attributes   00000000 (0)\n+70C25A Local Header Offset   0053DB4D (5495629)\n+70C25E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C25E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C2A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C2A6   Length              0005 (5)\n+70C2A8   Flags               01 (1) 'Modification'\n+70C2A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C2AD CENTRAL HEADER #1484  02014B50 (33639248)\n+70C2B1 Created Zip Spec      14 (20) '2.0'\n+70C2B2 Created OS            00 (0) 'MS-DOS'\n+70C2B3 Extract Zip Spec      14 (20) '2.0'\n+70C2B4 Extract OS            00 (0) 'MS-DOS'\n+70C2B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C2B7 Compression Method    0000 (0) 'Stored'\n+70C2B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C2BD CRC                   0593378C (93534092)\n+70C2C1 Compressed Size       000009B6 (2486)\n+70C2C5 Uncompressed Size     000009B6 (2486)\n+70C2C9 Filename Length       003C (60)\n+70C2CB Extra Length          0009 (9)\n+70C2CD Comment Length        0000 (0)\n+70C2CF Disk Start            0000 (0)\n+70C2D1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C2D3 Ext File Attributes   00000000 (0)\n+70C2D7 Local Header Offset   0053E99F (5499295)\n+70C2DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C2DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C317 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C319   Length              0005 (5)\n+70C31B   Flags               01 (1) 'Modification'\n+70C31C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C320 CENTRAL HEADER #1485  02014B50 (33639248)\n+70C324 Created Zip Spec      14 (20) '2.0'\n+70C325 Created OS            00 (0) 'MS-DOS'\n+70C326 Extract Zip Spec      14 (20) '2.0'\n+70C327 Extract OS            00 (0) 'MS-DOS'\n+70C328 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C32A Compression Method    0000 (0) 'Stored'\n+70C32C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C330 CRC                   B40DC99A (3020802458)\n+70C334 Compressed Size       00000516 (1302)\n+70C338 Uncompressed Size     00000516 (1302)\n+70C33C Filename Length       0037 (55)\n+70C33E Extra Length          0009 (9)\n+70C340 Comment Length        0000 (0)\n+70C342 Disk Start            0000 (0)\n+70C344 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C346 Ext File Attributes   00000000 (0)\n+70C34A Local Header Offset   0053F3C8 (5501896)\n+70C34E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C34E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C385 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C387   Length              0005 (5)\n+70C389   Flags               01 (1) 'Modification'\n+70C38A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C38E CENTRAL HEADER #1486  02014B50 (33639248)\n+70C392 Created Zip Spec      14 (20) '2.0'\n+70C393 Created OS            00 (0) 'MS-DOS'\n+70C394 Extract Zip Spec      14 (20) '2.0'\n+70C395 Extract OS            00 (0) 'MS-DOS'\n+70C396 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C398 Compression Method    0000 (0) 'Stored'\n+70C39A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C39E CRC                   27689F2C (661167916)\n+70C3A2 Compressed Size       00000AAA (2730)\n+70C3A6 Uncompressed Size     00000AAA (2730)\n+70C3AA Filename Length       0041 (65)\n+70C3AC Extra Length          0009 (9)\n+70C3AE Comment Length        0000 (0)\n+70C3B0 Disk Start            0000 (0)\n+70C3B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C3B4 Ext File Attributes   00000000 (0)\n+70C3B8 Local Header Offset   0053F94C (5503308)\n+70C3BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C3BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C3FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C3FF   Length              0005 (5)\n+70C401   Flags               01 (1) 'Modification'\n+70C402   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C406 CENTRAL HEADER #1487  02014B50 (33639248)\n+70C40A Created Zip Spec      14 (20) '2.0'\n+70C40B Created OS            00 (0) 'MS-DOS'\n+70C40C Extract Zip Spec      14 (20) '2.0'\n+70C40D Extract OS            00 (0) 'MS-DOS'\n+70C40E General Purpose Flag  0000 (0)\n+70C410 Compression Method    0000 (0) 'Stored'\n+70C412 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C416 CRC                   00000000 (0)\n+70C41A Compressed Size       00000000 (0)\n+70C41E Uncompressed Size     00000000 (0)\n+70C422 Filename Length       0032 (50)\n+70C424 Extra Length          0009 (9)\n+70C426 Comment Length        0000 (0)\n+70C428 Disk Start            0000 (0)\n+70C42A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C42C Ext File Attributes   00000000 (0)\n+70C430 Local Header Offset   0054046E (5506158)\n+70C434 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C434: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C466 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C468   Length              0005 (5)\n+70C46A   Flags               01 (1) 'Modification'\n+70C46B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C46F CENTRAL HEADER #1488  02014B50 (33639248)\n+70C473 Created Zip Spec      14 (20) '2.0'\n+70C474 Created OS            00 (0) 'MS-DOS'\n+70C475 Extract Zip Spec      14 (20) '2.0'\n+70C476 Extract OS            00 (0) 'MS-DOS'\n+70C477 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C479 Compression Method    0000 (0) 'Stored'\n+70C47B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C47F CRC                   E73F3737 (3879679799)\n+70C483 Compressed Size       00000B9F (2975)\n+70C487 Uncompressed Size     00000B9F (2975)\n+70C48B Filename Length       0048 (72)\n+70C48D Extra Length          0009 (9)\n+70C48F Comment Length        0000 (0)\n+70C491 Disk Start            0000 (0)\n+70C493 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C495 Ext File Attributes   00000000 (0)\n+70C499 Local Header Offset   005404C7 (5506247)\n+70C49D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C49D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C4E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C4E7   Length              0005 (5)\n+70C4E9   Flags               01 (1) 'Modification'\n+70C4EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C4EE CENTRAL HEADER #1489  02014B50 (33639248)\n+70C4F2 Created Zip Spec      14 (20) '2.0'\n+70C4F3 Created OS            00 (0) 'MS-DOS'\n+70C4F4 Extract Zip Spec      14 (20) '2.0'\n+70C4F5 Extract OS            00 (0) 'MS-DOS'\n+70C4F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C4F8 Compression Method    0000 (0) 'Stored'\n+70C4FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C4FE CRC                   BC922CD8 (3163696344)\n+70C502 Compressed Size       00000890 (2192)\n+70C506 Uncompressed Size     00000890 (2192)\n+70C50A Filename Length       0045 (69)\n+70C50C Extra Length          0009 (9)\n+70C50E Comment Length        0000 (0)\n+70C510 Disk Start            0000 (0)\n+70C512 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C514 Ext File Attributes   00000000 (0)\n+70C518 Local Header Offset   005410E5 (5509349)\n+70C51C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C51C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C561 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C563   Length              0005 (5)\n+70C565   Flags               01 (1) 'Modification'\n+70C566   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C56A CENTRAL HEADER #1490  02014B50 (33639248)\n+70C56E Created Zip Spec      14 (20) '2.0'\n+70C56F Created OS            00 (0) 'MS-DOS'\n+70C570 Extract Zip Spec      14 (20) '2.0'\n+70C571 Extract OS            00 (0) 'MS-DOS'\n+70C572 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C574 Compression Method    0000 (0) 'Stored'\n+70C576 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C57A CRC                   B13FDACC (2973752012)\n+70C57E Compressed Size       0000217A (8570)\n+70C582 Uncompressed Size     0000217A (8570)\n+70C586 Filename Length       004C (76)\n+70C588 Extra Length          0009 (9)\n+70C58A Comment Length        0000 (0)\n+70C58C Disk Start            0000 (0)\n+70C58E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C590 Ext File Attributes   00000000 (0)\n+70C594 Local Header Offset   005419F1 (5511665)\n+70C598 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C598: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C5E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C5E6   Length              0005 (5)\n+70C5E8   Flags               01 (1) 'Modification'\n+70C5E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C5ED CENTRAL HEADER #1491  02014B50 (33639248)\n+70C5F1 Created Zip Spec      14 (20) '2.0'\n+70C5F2 Created OS            00 (0) 'MS-DOS'\n+70C5F3 Extract Zip Spec      14 (20) '2.0'\n+70C5F4 Extract OS            00 (0) 'MS-DOS'\n+70C5F5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C5F7 Compression Method    0000 (0) 'Stored'\n+70C5F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C5FD CRC                   2FB42746 (800335686)\n+70C601 Compressed Size       00001E7B (7803)\n+70C605 Uncompressed Size     00001E7B (7803)\n+70C609 Filename Length       004B (75)\n+70C60B Extra Length          0009 (9)\n+70C60D Comment Length        0000 (0)\n+70C60F Disk Start            0000 (0)\n+70C611 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C613 Ext File Attributes   00000000 (0)\n+70C617 Local Header Offset   00543BEE (5520366)\n+70C61B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C61B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C666 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C668   Length              0005 (5)\n+70C66A   Flags               01 (1) 'Modification'\n+70C66B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C66F CENTRAL HEADER #1492  02014B50 (33639248)\n+70C673 Created Zip Spec      14 (20) '2.0'\n+70C674 Created OS            00 (0) 'MS-DOS'\n+70C675 Extract Zip Spec      14 (20) '2.0'\n+70C676 Extract OS            00 (0) 'MS-DOS'\n+70C677 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C679 Compression Method    0000 (0) 'Stored'\n+70C67B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C67F CRC                   C01CAB2E (3223104302)\n+70C683 Compressed Size       0000247E (9342)\n+70C687 Uncompressed Size     0000247E (9342)\n+70C68B Filename Length       004C (76)\n+70C68D Extra Length          0009 (9)\n+70C68F Comment Length        0000 (0)\n+70C691 Disk Start            0000 (0)\n+70C693 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C695 Ext File Attributes   00000000 (0)\n+70C699 Local Header Offset   00545AEB (5528299)\n+70C69D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C69D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C6E9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C6EB   Length              0005 (5)\n+70C6ED   Flags               01 (1) 'Modification'\n+70C6EE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C6F2 CENTRAL HEADER #1493  02014B50 (33639248)\n+70C6F6 Created Zip Spec      14 (20) '2.0'\n+70C6F7 Created OS            00 (0) 'MS-DOS'\n+70C6F8 Extract Zip Spec      14 (20) '2.0'\n+70C6F9 Extract OS            00 (0) 'MS-DOS'\n+70C6FA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C6FC Compression Method    0000 (0) 'Stored'\n+70C6FE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C702 CRC                   6C372682 (1815553666)\n+70C706 Compressed Size       000024E2 (9442)\n+70C70A Uncompressed Size     000024E2 (9442)\n+70C70E Filename Length       004B (75)\n+70C710 Extra Length          0009 (9)\n+70C712 Comment Length        0000 (0)\n+70C714 Disk Start            0000 (0)\n+70C716 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C718 Ext File Attributes   00000000 (0)\n+70C71C Local Header Offset   00547FEC (5537772)\n+70C720 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C720: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C76B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C76D   Length              0005 (5)\n+70C76F   Flags               01 (1) 'Modification'\n+70C770   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C774 CENTRAL HEADER #1494  02014B50 (33639248)\n+70C778 Created Zip Spec      14 (20) '2.0'\n+70C779 Created OS            00 (0) 'MS-DOS'\n+70C77A Extract Zip Spec      14 (20) '2.0'\n+70C77B Extract OS            00 (0) 'MS-DOS'\n+70C77C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C77E Compression Method    0000 (0) 'Stored'\n+70C780 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C784 CRC                   7F591FA6 (2136547238)\n+70C788 Compressed Size       0000079B (1947)\n+70C78C Uncompressed Size     0000079B (1947)\n+70C790 Filename Length       0046 (70)\n+70C792 Extra Length          0009 (9)\n+70C794 Comment Length        0000 (0)\n+70C796 Disk Start            0000 (0)\n+70C798 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C79A Ext File Attributes   00000000 (0)\n+70C79E Local Header Offset   0054A550 (5547344)\n+70C7A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C7A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C7E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C7EA   Length              0005 (5)\n+70C7EC   Flags               01 (1) 'Modification'\n+70C7ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C7F1 CENTRAL HEADER #1495  02014B50 (33639248)\n+70C7F5 Created Zip Spec      14 (20) '2.0'\n+70C7F6 Created OS            00 (0) 'MS-DOS'\n+70C7F7 Extract Zip Spec      14 (20) '2.0'\n+70C7F8 Extract OS            00 (0) 'MS-DOS'\n+70C7F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C7FB Compression Method    0000 (0) 'Stored'\n+70C7FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C801 CRC                   BBC269CA (3150080458)\n+70C805 Compressed Size       000011E6 (4582)\n+70C809 Uncompressed Size     000011E6 (4582)\n+70C80D Filename Length       0047 (71)\n+70C80F Extra Length          0009 (9)\n+70C811 Comment Length        0000 (0)\n+70C813 Disk Start            0000 (0)\n+70C815 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C817 Ext File Attributes   00000000 (0)\n+70C81B Local Header Offset   0054AD68 (5549416)\n+70C81F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C81F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C866 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C868   Length              0005 (5)\n+70C86A   Flags               01 (1) 'Modification'\n+70C86B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C86F CENTRAL HEADER #1496  02014B50 (33639248)\n+70C873 Created Zip Spec      14 (20) '2.0'\n+70C874 Created OS            00 (0) 'MS-DOS'\n+70C875 Extract Zip Spec      14 (20) '2.0'\n+70C876 Extract OS            00 (0) 'MS-DOS'\n+70C877 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C879 Compression Method    0000 (0) 'Stored'\n+70C87B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C87F CRC                   CCFFACEF (3439308015)\n+70C883 Compressed Size       00000A6F (2671)\n+70C887 Uncompressed Size     00000A6F (2671)\n+70C88B Filename Length       0049 (73)\n+70C88D Extra Length          0009 (9)\n+70C88F Comment Length        0000 (0)\n+70C891 Disk Start            0000 (0)\n+70C893 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C895 Ext File Attributes   00000000 (0)\n+70C899 Local Header Offset   0054BFCC (5554124)\n+70C89D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C89D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C8E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C8E8   Length              0005 (5)\n+70C8EA   Flags               01 (1) 'Modification'\n+70C8EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C8EF CENTRAL HEADER #1497  02014B50 (33639248)\n+70C8F3 Created Zip Spec      14 (20) '2.0'\n+70C8F4 Created OS            00 (0) 'MS-DOS'\n+70C8F5 Extract Zip Spec      14 (20) '2.0'\n+70C8F6 Extract OS            00 (0) 'MS-DOS'\n+70C8F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C8F9 Compression Method    0000 (0) 'Stored'\n+70C8FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C8FF CRC                   39DE0130 (970850608)\n+70C903 Compressed Size       00000AD0 (2768)\n+70C907 Uncompressed Size     00000AD0 (2768)\n+70C90B Filename Length       0049 (73)\n+70C90D Extra Length          0009 (9)\n+70C90F Comment Length        0000 (0)\n+70C911 Disk Start            0000 (0)\n+70C913 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C915 Ext File Attributes   00000000 (0)\n+70C919 Local Header Offset   0054CABB (5556923)\n+70C91D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C91D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C966 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C968   Length              0005 (5)\n+70C96A   Flags               01 (1) 'Modification'\n+70C96B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C96F CENTRAL HEADER #1498  02014B50 (33639248)\n+70C973 Created Zip Spec      14 (20) '2.0'\n+70C974 Created OS            00 (0) 'MS-DOS'\n+70C975 Extract Zip Spec      14 (20) '2.0'\n+70C976 Extract OS            00 (0) 'MS-DOS'\n+70C977 General Purpose Flag  0000 (0)\n+70C979 Compression Method    0000 (0) 'Stored'\n+70C97B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C97F CRC                   00000000 (0)\n+70C983 Compressed Size       00000000 (0)\n+70C987 Uncompressed Size     00000000 (0)\n+70C98B Filename Length       001F (31)\n+70C98D Extra Length          0009 (9)\n+70C98F Comment Length        0000 (0)\n+70C991 Disk Start            0000 (0)\n+70C993 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C995 Ext File Attributes   00000000 (0)\n+70C999 Local Header Offset   0054D60B (5559819)\n+70C99D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C99D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70C9BC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70C9BE   Length              0005 (5)\n+70C9C0   Flags               01 (1) 'Modification'\n+70C9C1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70C9C5 CENTRAL HEADER #1499  02014B50 (33639248)\n+70C9C9 Created Zip Spec      14 (20) '2.0'\n+70C9CA Created OS            00 (0) 'MS-DOS'\n+70C9CB Extract Zip Spec      14 (20) '2.0'\n+70C9CC Extract OS            00 (0) 'MS-DOS'\n+70C9CD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70C9CF Compression Method    0000 (0) 'Stored'\n+70C9D1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70C9D5 CRC                   20838DDF (545492447)\n+70C9D9 Compressed Size       00000527 (1319)\n+70C9DD Uncompressed Size     00000527 (1319)\n+70C9E1 Filename Length       002E (46)\n+70C9E3 Extra Length          0009 (9)\n+70C9E5 Comment Length        0000 (0)\n+70C9E7 Disk Start            0000 (0)\n+70C9E9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70C9EB Ext File Attributes   00000000 (0)\n+70C9EF Local Header Offset   0054D651 (5559889)\n+70C9F3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70C9F3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CA21 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CA23   Length              0005 (5)\n+70CA25   Flags               01 (1) 'Modification'\n+70CA26   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CA2A CENTRAL HEADER #1500  02014B50 (33639248)\n+70CA2E Created Zip Spec      14 (20) '2.0'\n+70CA2F Created OS            00 (0) 'MS-DOS'\n+70CA30 Extract Zip Spec      14 (20) '2.0'\n+70CA31 Extract OS            00 (0) 'MS-DOS'\n+70CA32 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CA34 Compression Method    0000 (0) 'Stored'\n+70CA36 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CA3A CRC                   736BD280 (1936446080)\n+70CA3E Compressed Size       0000056A (1386)\n+70CA42 Uncompressed Size     0000056A (1386)\n+70CA46 Filename Length       002F (47)\n+70CA48 Extra Length          0009 (9)\n+70CA4A Comment Length        0000 (0)\n+70CA4C Disk Start            0000 (0)\n+70CA4E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CA50 Ext File Attributes   00000000 (0)\n+70CA54 Local Header Offset   0054DBDD (5561309)\n+70CA58 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CA58: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CA87 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CA89   Length              0005 (5)\n+70CA8B   Flags               01 (1) 'Modification'\n+70CA8C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CA90 CENTRAL HEADER #1501  02014B50 (33639248)\n+70CA94 Created Zip Spec      14 (20) '2.0'\n+70CA95 Created OS            00 (0) 'MS-DOS'\n+70CA96 Extract Zip Spec      14 (20) '2.0'\n+70CA97 Extract OS            00 (0) 'MS-DOS'\n+70CA98 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CA9A Compression Method    0000 (0) 'Stored'\n+70CA9C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CAA0 CRC                   C27E840C (3263071244)\n+70CAA4 Compressed Size       000006E9 (1769)\n+70CAA8 Uncompressed Size     000006E9 (1769)\n+70CAAC Filename Length       002E (46)\n+70CAAE Extra Length          0009 (9)\n+70CAB0 Comment Length        0000 (0)\n+70CAB2 Disk Start            0000 (0)\n+70CAB4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CAB6 Ext File Attributes   00000000 (0)\n+70CABA Local Header Offset   0054E1AD (5562797)\n+70CABE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CABE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CAEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CAEE   Length              0005 (5)\n+70CAF0   Flags               01 (1) 'Modification'\n+70CAF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CAF5 CENTRAL HEADER #1502  02014B50 (33639248)\n+70CAF9 Created Zip Spec      14 (20) '2.0'\n+70CAFA Created OS            00 (0) 'MS-DOS'\n+70CAFB Extract Zip Spec      14 (20) '2.0'\n+70CAFC Extract OS            00 (0) 'MS-DOS'\n+70CAFD General Purpose Flag  0000 (0)\n+70CAFF Compression Method    0000 (0) 'Stored'\n+70CB01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CB05 CRC                   00000000 (0)\n+70CB09 Compressed Size       00000000 (0)\n+70CB0D Uncompressed Size     00000000 (0)\n+70CB11 Filename Length       0025 (37)\n+70CB13 Extra Length          0009 (9)\n+70CB15 Comment Length        0000 (0)\n+70CB17 Disk Start            0000 (0)\n+70CB19 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CB1B Ext File Attributes   00000000 (0)\n+70CB1F Local Header Offset   0054E8FB (5564667)\n+70CB23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CB23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CB48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CB4A   Length              0005 (5)\n+70CB4C   Flags               01 (1) 'Modification'\n+70CB4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CB51 CENTRAL HEADER #1503  02014B50 (33639248)\n+70CB55 Created Zip Spec      14 (20) '2.0'\n+70CB56 Created OS            00 (0) 'MS-DOS'\n+70CB57 Extract Zip Spec      14 (20) '2.0'\n+70CB58 Extract OS            00 (0) 'MS-DOS'\n+70CB59 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CB5B Compression Method    0000 (0) 'Stored'\n+70CB5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CB61 CRC                   88BB48F4 (2293975284)\n+70CB65 Compressed Size       00000509 (1289)\n+70CB69 Uncompressed Size     00000509 (1289)\n+70CB6D Filename Length       0039 (57)\n+70CB6F Extra Length          0009 (9)\n+70CB71 Comment Length        0000 (0)\n+70CB73 Disk Start            0000 (0)\n+70CB75 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CB77 Ext File Attributes   00000000 (0)\n+70CB7B Local Header Offset   0054E947 (5564743)\n+70CB7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CB7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CBB8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CBBA   Length              0005 (5)\n+70CBBC   Flags               01 (1) 'Modification'\n+70CBBD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CBC1 CENTRAL HEADER #1504  02014B50 (33639248)\n+70CBC5 Created Zip Spec      14 (20) '2.0'\n+70CBC6 Created OS            00 (0) 'MS-DOS'\n+70CBC7 Extract Zip Spec      14 (20) '2.0'\n+70CBC8 Extract OS            00 (0) 'MS-DOS'\n+70CBC9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CBCB Compression Method    0000 (0) 'Stored'\n+70CBCD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CBD1 CRC                   690E10B4 (1762529460)\n+70CBD5 Compressed Size       0000128E (4750)\n+70CBD9 Uncompressed Size     0000128E (4750)\n+70CBDD Filename Length       0039 (57)\n+70CBDF Extra Length          0009 (9)\n+70CBE1 Comment Length        0000 (0)\n+70CBE3 Disk Start            0000 (0)\n+70CBE5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CBE7 Ext File Attributes   00000000 (0)\n+70CBEB Local Header Offset   0054EEC0 (5566144)\n+70CBEF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CBEF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CC28 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CC2A   Length              0005 (5)\n+70CC2C   Flags               01 (1) 'Modification'\n+70CC2D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CC31 CENTRAL HEADER #1505  02014B50 (33639248)\n+70CC35 Created Zip Spec      14 (20) '2.0'\n+70CC36 Created OS            00 (0) 'MS-DOS'\n+70CC37 Extract Zip Spec      14 (20) '2.0'\n+70CC38 Extract OS            00 (0) 'MS-DOS'\n+70CC39 General Purpose Flag  0000 (0)\n+70CC3B Compression Method    0000 (0) 'Stored'\n+70CC3D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CC41 CRC                   00000000 (0)\n+70CC45 Compressed Size       00000000 (0)\n+70CC49 Uncompressed Size     00000000 (0)\n+70CC4D Filename Length       0027 (39)\n+70CC4F Extra Length          0009 (9)\n+70CC51 Comment Length        0000 (0)\n+70CC53 Disk Start            0000 (0)\n+70CC55 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CC57 Ext File Attributes   00000000 (0)\n+70CC5B Local Header Offset   005501BE (5571006)\n+70CC5F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CC5F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CC86 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CC88   Length              0005 (5)\n+70CC8A   Flags               01 (1) 'Modification'\n+70CC8B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CC8F CENTRAL HEADER #1506  02014B50 (33639248)\n+70CC93 Created Zip Spec      14 (20) '2.0'\n+70CC94 Created OS            00 (0) 'MS-DOS'\n+70CC95 Extract Zip Spec      14 (20) '2.0'\n+70CC96 Extract OS            00 (0) 'MS-DOS'\n+70CC97 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CC99 Compression Method    0000 (0) 'Stored'\n+70CC9B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CC9F CRC                   099C0616 (161220118)\n+70CCA3 Compressed Size       00000628 (1576)\n+70CCA7 Uncompressed Size     00000628 (1576)\n+70CCAB Filename Length       003D (61)\n+70CCAD Extra Length          0009 (9)\n+70CCAF Comment Length        0000 (0)\n+70CCB1 Disk Start            0000 (0)\n+70CCB3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CCB5 Ext File Attributes   00000000 (0)\n+70CCB9 Local Header Offset   0055020C (5571084)\n+70CCBD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CCBD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CCFA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CCFC   Length              0005 (5)\n+70CCFE   Flags               01 (1) 'Modification'\n+70CCFF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CD03 CENTRAL HEADER #1507  02014B50 (33639248)\n+70CD07 Created Zip Spec      14 (20) '2.0'\n+70CD08 Created OS            00 (0) 'MS-DOS'\n+70CD09 Extract Zip Spec      14 (20) '2.0'\n+70CD0A Extract OS            00 (0) 'MS-DOS'\n+70CD0B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CD0D Compression Method    0000 (0) 'Stored'\n+70CD0F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CD13 CRC                   1EBD34EC (515716332)\n+70CD17 Compressed Size       00000948 (2376)\n+70CD1B Uncompressed Size     00000948 (2376)\n+70CD1F Filename Length       003D (61)\n+70CD21 Extra Length          0009 (9)\n+70CD23 Comment Length        0000 (0)\n+70CD25 Disk Start            0000 (0)\n+70CD27 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CD29 Ext File Attributes   00000000 (0)\n+70CD2D Local Header Offset   005508A8 (5572776)\n+70CD31 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CD31: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CD6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CD70   Length              0005 (5)\n+70CD72   Flags               01 (1) 'Modification'\n+70CD73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CD77 CENTRAL HEADER #1508  02014B50 (33639248)\n+70CD7B Created Zip Spec      14 (20) '2.0'\n+70CD7C Created OS            00 (0) 'MS-DOS'\n+70CD7D Extract Zip Spec      14 (20) '2.0'\n+70CD7E Extract OS            00 (0) 'MS-DOS'\n+70CD7F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CD81 Compression Method    0000 (0) 'Stored'\n+70CD83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CD87 CRC                   129B84CC (312181964)\n+70CD8B Compressed Size       00000511 (1297)\n+70CD8F Uncompressed Size     00000511 (1297)\n+70CD93 Filename Length       003D (61)\n+70CD95 Extra Length          0009 (9)\n+70CD97 Comment Length        0000 (0)\n+70CD99 Disk Start            0000 (0)\n+70CD9B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CD9D Ext File Attributes   00000000 (0)\n+70CDA1 Local Header Offset   00551264 (5575268)\n+70CDA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CDA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CDE2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CDE4   Length              0005 (5)\n+70CDE6   Flags               01 (1) 'Modification'\n+70CDE7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CDEB CENTRAL HEADER #1509  02014B50 (33639248)\n+70CDEF Created Zip Spec      14 (20) '2.0'\n+70CDF0 Created OS            00 (0) 'MS-DOS'\n+70CDF1 Extract Zip Spec      14 (20) '2.0'\n+70CDF2 Extract OS            00 (0) 'MS-DOS'\n+70CDF3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CDF5 Compression Method    0000 (0) 'Stored'\n+70CDF7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CDFB CRC                   9F24457D (2669954429)\n+70CDFF Compressed Size       0000053C (1340)\n+70CE03 Uncompressed Size     0000053C (1340)\n+70CE07 Filename Length       003D (61)\n+70CE09 Extra Length          0009 (9)\n+70CE0B Comment Length        0000 (0)\n+70CE0D Disk Start            0000 (0)\n+70CE0F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CE11 Ext File Attributes   00000000 (0)\n+70CE15 Local Header Offset   005517E9 (5576681)\n+70CE19 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CE19: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CE56 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CE58   Length              0005 (5)\n+70CE5A   Flags               01 (1) 'Modification'\n+70CE5B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CE5F CENTRAL HEADER #1510  02014B50 (33639248)\n+70CE63 Created Zip Spec      14 (20) '2.0'\n+70CE64 Created OS            00 (0) 'MS-DOS'\n+70CE65 Extract Zip Spec      14 (20) '2.0'\n+70CE66 Extract OS            00 (0) 'MS-DOS'\n+70CE67 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CE69 Compression Method    0000 (0) 'Stored'\n+70CE6B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CE6F CRC                   F1DDFBFB (4057857019)\n+70CE73 Compressed Size       000006D2 (1746)\n+70CE77 Uncompressed Size     000006D2 (1746)\n+70CE7B Filename Length       003A (58)\n+70CE7D Extra Length          0009 (9)\n+70CE7F Comment Length        0000 (0)\n+70CE81 Disk Start            0000 (0)\n+70CE83 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CE85 Ext File Attributes   00000000 (0)\n+70CE89 Local Header Offset   00551D99 (5578137)\n+70CE8D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CE8D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CEC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CEC9   Length              0005 (5)\n+70CECB   Flags               01 (1) 'Modification'\n+70CECC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CED0 CENTRAL HEADER #1511  02014B50 (33639248)\n+70CED4 Created Zip Spec      14 (20) '2.0'\n+70CED5 Created OS            00 (0) 'MS-DOS'\n+70CED6 Extract Zip Spec      14 (20) '2.0'\n+70CED7 Extract OS            00 (0) 'MS-DOS'\n+70CED8 General Purpose Flag  0000 (0)\n+70CEDA Compression Method    0000 (0) 'Stored'\n+70CEDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CEE0 CRC                   00000000 (0)\n+70CEE4 Compressed Size       00000000 (0)\n+70CEE8 Uncompressed Size     00000000 (0)\n+70CEEC Filename Length       0027 (39)\n+70CEEE Extra Length          0009 (9)\n+70CEF0 Comment Length        0000 (0)\n+70CEF2 Disk Start            0000 (0)\n+70CEF4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CEF6 Ext File Attributes   00000000 (0)\n+70CEFA Local Header Offset   005524DC (5579996)\n+70CEFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CEFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CF25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CF27   Length              0005 (5)\n+70CF29   Flags               01 (1) 'Modification'\n+70CF2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CF2E CENTRAL HEADER #1512  02014B50 (33639248)\n+70CF32 Created Zip Spec      14 (20) '2.0'\n+70CF33 Created OS            00 (0) 'MS-DOS'\n+70CF34 Extract Zip Spec      14 (20) '2.0'\n+70CF35 Extract OS            00 (0) 'MS-DOS'\n+70CF36 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70CF38 Compression Method    0000 (0) 'Stored'\n+70CF3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CF3E CRC                   AD23A7BE (2904795070)\n+70CF42 Compressed Size       00000CE3 (3299)\n+70CF46 Uncompressed Size     00000CE3 (3299)\n+70CF4A Filename Length       003E (62)\n+70CF4C Extra Length          0009 (9)\n+70CF4E Comment Length        0000 (0)\n+70CF50 Disk Start            0000 (0)\n+70CF52 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CF54 Ext File Attributes   00000000 (0)\n+70CF58 Local Header Offset   0055252A (5580074)\n+70CF5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CF5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CF9A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CF9C   Length              0005 (5)\n+70CF9E   Flags               01 (1) 'Modification'\n+70CF9F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70CFA3 CENTRAL HEADER #1513  02014B50 (33639248)\n+70CFA7 Created Zip Spec      14 (20) '2.0'\n+70CFA8 Created OS            00 (0) 'MS-DOS'\n+70CFA9 Extract Zip Spec      14 (20) '2.0'\n+70CFAA Extract OS            00 (0) 'MS-DOS'\n+70CFAB General Purpose Flag  0000 (0)\n+70CFAD Compression Method    0000 (0) 'Stored'\n+70CFAF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70CFB3 CRC                   00000000 (0)\n+70CFB7 Compressed Size       00000000 (0)\n+70CFBB Uncompressed Size     00000000 (0)\n+70CFBF Filename Length       0026 (38)\n+70CFC1 Extra Length          0009 (9)\n+70CFC3 Comment Length        0000 (0)\n+70CFC5 Disk Start            0000 (0)\n+70CFC7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70CFC9 Ext File Attributes   00000000 (0)\n+70CFCD Local Header Offset   00553282 (5583490)\n+70CFD1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70CFD1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70CFF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70CFF9   Length              0005 (5)\n+70CFFB   Flags               01 (1) 'Modification'\n+70CFFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D000 CENTRAL HEADER #1514  02014B50 (33639248)\n+70D004 Created Zip Spec      14 (20) '2.0'\n+70D005 Created OS            00 (0) 'MS-DOS'\n+70D006 Extract Zip Spec      14 (20) '2.0'\n+70D007 Extract OS            00 (0) 'MS-DOS'\n+70D008 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D00A Compression Method    0000 (0) 'Stored'\n+70D00C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D010 CRC                   2A48966F (709400175)\n+70D014 Compressed Size       000004E9 (1257)\n+70D018 Uncompressed Size     000004E9 (1257)\n+70D01C Filename Length       003B (59)\n+70D01E Extra Length          0009 (9)\n+70D020 Comment Length        0000 (0)\n+70D022 Disk Start            0000 (0)\n+70D024 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D026 Ext File Attributes   00000000 (0)\n+70D02A Local Header Offset   005532CF (5583567)\n+70D02E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D02E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D069 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D06B   Length              0005 (5)\n+70D06D   Flags               01 (1) 'Modification'\n+70D06E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D072 CENTRAL HEADER #1515  02014B50 (33639248)\n+70D076 Created Zip Spec      14 (20) '2.0'\n+70D077 Created OS            00 (0) 'MS-DOS'\n+70D078 Extract Zip Spec      14 (20) '2.0'\n+70D079 Extract OS            00 (0) 'MS-DOS'\n+70D07A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D07C Compression Method    0000 (0) 'Stored'\n+70D07E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D082 CRC                   150E80EA (353272042)\n+70D086 Compressed Size       00000F58 (3928)\n+70D08A Uncompressed Size     00000F58 (3928)\n+70D08E Filename Length       003B (59)\n+70D090 Extra Length          0009 (9)\n+70D092 Comment Length        0000 (0)\n+70D094 Disk Start            0000 (0)\n+70D096 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D098 Ext File Attributes   00000000 (0)\n+70D09C Local Header Offset   0055382A (5584938)\n+70D0A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D0A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D0DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D0DD   Length              0005 (5)\n+70D0DF   Flags               01 (1) 'Modification'\n+70D0E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D0E4 CENTRAL HEADER #1516  02014B50 (33639248)\n+70D0E8 Created Zip Spec      14 (20) '2.0'\n+70D0E9 Created OS            00 (0) 'MS-DOS'\n+70D0EA Extract Zip Spec      14 (20) '2.0'\n+70D0EB Extract OS            00 (0) 'MS-DOS'\n+70D0EC General Purpose Flag  0000 (0)\n+70D0EE Compression Method    0000 (0) 'Stored'\n+70D0F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D0F4 CRC                   00000000 (0)\n+70D0F8 Compressed Size       00000000 (0)\n+70D0FC Uncompressed Size     00000000 (0)\n+70D100 Filename Length       001E (30)\n+70D102 Extra Length          0009 (9)\n+70D104 Comment Length        0000 (0)\n+70D106 Disk Start            0000 (0)\n+70D108 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D10A Ext File Attributes   00000000 (0)\n+70D10E Local Header Offset   005547F4 (5588980)\n+70D112 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D112: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D130 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D132   Length              0005 (5)\n+70D134   Flags               01 (1) 'Modification'\n+70D135   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D139 CENTRAL HEADER #1517  02014B50 (33639248)\n+70D13D Created Zip Spec      14 (20) '2.0'\n+70D13E Created OS            00 (0) 'MS-DOS'\n+70D13F Extract Zip Spec      14 (20) '2.0'\n+70D140 Extract OS            00 (0) 'MS-DOS'\n+70D141 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D143 Compression Method    0000 (0) 'Stored'\n+70D145 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D149 CRC                   22156101 (571826433)\n+70D14D Compressed Size       00000645 (1605)\n+70D151 Uncompressed Size     00000645 (1605)\n+70D155 Filename Length       0028 (40)\n+70D157 Extra Length          0009 (9)\n+70D159 Comment Length        0000 (0)\n+70D15B Disk Start            0000 (0)\n+70D15D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D15F Ext File Attributes   00000000 (0)\n+70D163 Local Header Offset   00554839 (5589049)\n+70D167 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D167: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D18F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D191   Length              0005 (5)\n+70D193   Flags               01 (1) 'Modification'\n+70D194   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D198 CENTRAL HEADER #1518  02014B50 (33639248)\n+70D19C Created Zip Spec      14 (20) '2.0'\n+70D19D Created OS            00 (0) 'MS-DOS'\n+70D19E Extract Zip Spec      14 (20) '2.0'\n+70D19F Extract OS            00 (0) 'MS-DOS'\n+70D1A0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D1A2 Compression Method    0000 (0) 'Stored'\n+70D1A4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D1A8 CRC                   5BDCE546 (1541203270)\n+70D1AC Compressed Size       00000530 (1328)\n+70D1B0 Uncompressed Size     00000530 (1328)\n+70D1B4 Filename Length       002C (44)\n+70D1B6 Extra Length          0009 (9)\n+70D1B8 Comment Length        0000 (0)\n+70D1BA Disk Start            0000 (0)\n+70D1BC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D1BE Ext File Attributes   00000000 (0)\n+70D1C2 Local Header Offset   00554EDD (5590749)\n+70D1C6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D1C6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D1F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D1F4   Length              0005 (5)\n+70D1F6   Flags               01 (1) 'Modification'\n+70D1F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D1FB CENTRAL HEADER #1519  02014B50 (33639248)\n+70D1FF Created Zip Spec      14 (20) '2.0'\n+70D200 Created OS            00 (0) 'MS-DOS'\n+70D201 Extract Zip Spec      14 (20) '2.0'\n+70D202 Extract OS            00 (0) 'MS-DOS'\n+70D203 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D205 Compression Method    0000 (0) 'Stored'\n+70D207 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D20B CRC                   86A6B236 (2259071542)\n+70D20F Compressed Size       0000078D (1933)\n+70D213 Uncompressed Size     0000078D (1933)\n+70D217 Filename Length       002D (45)\n+70D219 Extra Length          0009 (9)\n+70D21B Comment Length        0000 (0)\n+70D21D Disk Start            0000 (0)\n+70D21F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D221 Ext File Attributes   00000000 (0)\n+70D225 Local Header Offset   00555470 (5592176)\n+70D229 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D229: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D256 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D258   Length              0005 (5)\n+70D25A   Flags               01 (1) 'Modification'\n+70D25B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D25F CENTRAL HEADER #1520  02014B50 (33639248)\n+70D263 Created Zip Spec      14 (20) '2.0'\n+70D264 Created OS            00 (0) 'MS-DOS'\n+70D265 Extract Zip Spec      14 (20) '2.0'\n+70D266 Extract OS            00 (0) 'MS-DOS'\n+70D267 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D269 Compression Method    0000 (0) 'Stored'\n+70D26B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D26F CRC                   1B4BCF89 (457953161)\n+70D273 Compressed Size       000004F3 (1267)\n+70D277 Uncompressed Size     000004F3 (1267)\n+70D27B Filename Length       0027 (39)\n+70D27D Extra Length          0009 (9)\n+70D27F Comment Length        0000 (0)\n+70D281 Disk Start            0000 (0)\n+70D283 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D285 Ext File Attributes   00000000 (0)\n+70D289 Local Header Offset   00555C61 (5594209)\n+70D28D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D28D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D2B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D2B6   Length              0005 (5)\n+70D2B8   Flags               01 (1) 'Modification'\n+70D2B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D2BD CENTRAL HEADER #1521  02014B50 (33639248)\n+70D2C1 Created Zip Spec      14 (20) '2.0'\n+70D2C2 Created OS            00 (0) 'MS-DOS'\n+70D2C3 Extract Zip Spec      14 (20) '2.0'\n+70D2C4 Extract OS            00 (0) 'MS-DOS'\n+70D2C5 General Purpose Flag  0000 (0)\n+70D2C7 Compression Method    0000 (0) 'Stored'\n+70D2C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D2CD CRC                   00000000 (0)\n+70D2D1 Compressed Size       00000000 (0)\n+70D2D5 Uncompressed Size     00000000 (0)\n+70D2D9 Filename Length       0027 (39)\n+70D2DB Extra Length          0009 (9)\n+70D2DD Comment Length        0000 (0)\n+70D2DF Disk Start            0000 (0)\n+70D2E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D2E3 Ext File Attributes   00000000 (0)\n+70D2E7 Local Header Offset   005561B2 (5595570)\n+70D2EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D2EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D312 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D314   Length              0005 (5)\n+70D316   Flags               01 (1) 'Modification'\n+70D317   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D31B CENTRAL HEADER #1522  02014B50 (33639248)\n+70D31F Created Zip Spec      14 (20) '2.0'\n+70D320 Created OS            00 (0) 'MS-DOS'\n+70D321 Extract Zip Spec      14 (20) '2.0'\n+70D322 Extract OS            00 (0) 'MS-DOS'\n+70D323 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D325 Compression Method    0000 (0) 'Stored'\n+70D327 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D32B CRC                   DDB2647D (3719455869)\n+70D32F Compressed Size       00000501 (1281)\n+70D333 Uncompressed Size     00000501 (1281)\n+70D337 Filename Length       0039 (57)\n+70D339 Extra Length          0009 (9)\n+70D33B Comment Length        0000 (0)\n+70D33D Disk Start            0000 (0)\n+70D33F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D341 Ext File Attributes   00000000 (0)\n+70D345 Local Header Offset   00556200 (5595648)\n+70D349 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D349: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D382 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D384   Length              0005 (5)\n+70D386   Flags               01 (1) 'Modification'\n+70D387   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D38B CENTRAL HEADER #1523  02014B50 (33639248)\n+70D38F Created Zip Spec      14 (20) '2.0'\n+70D390 Created OS            00 (0) 'MS-DOS'\n+70D391 Extract Zip Spec      14 (20) '2.0'\n+70D392 Extract OS            00 (0) 'MS-DOS'\n+70D393 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D395 Compression Method    0000 (0) 'Stored'\n+70D397 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D39B CRC                   5D9DDBCF (1570626511)\n+70D39F Compressed Size       000004A5 (1189)\n+70D3A3 Uncompressed Size     000004A5 (1189)\n+70D3A7 Filename Length       003D (61)\n+70D3A9 Extra Length          0009 (9)\n+70D3AB Comment Length        0000 (0)\n+70D3AD Disk Start            0000 (0)\n+70D3AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D3B1 Ext File Attributes   00000000 (0)\n+70D3B5 Local Header Offset   00556771 (5597041)\n+70D3B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D3B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D3F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D3F8   Length              0005 (5)\n+70D3FA   Flags               01 (1) 'Modification'\n+70D3FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D3FF CENTRAL HEADER #1524  02014B50 (33639248)\n+70D403 Created Zip Spec      14 (20) '2.0'\n+70D404 Created OS            00 (0) 'MS-DOS'\n+70D405 Extract Zip Spec      14 (20) '2.0'\n+70D406 Extract OS            00 (0) 'MS-DOS'\n+70D407 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D409 Compression Method    0000 (0) 'Stored'\n+70D40B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D40F CRC                   4453948E (1146328206)\n+70D413 Compressed Size       0000076E (1902)\n+70D417 Uncompressed Size     0000076E (1902)\n+70D41B Filename Length       003E (62)\n+70D41D Extra Length          0009 (9)\n+70D41F Comment Length        0000 (0)\n+70D421 Disk Start            0000 (0)\n+70D423 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D425 Ext File Attributes   00000000 (0)\n+70D429 Local Header Offset   00556C8A (5598346)\n+70D42D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D42D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D46B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D46D   Length              0005 (5)\n+70D46F   Flags               01 (1) 'Modification'\n+70D470   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D474 CENTRAL HEADER #1525  02014B50 (33639248)\n+70D478 Created Zip Spec      14 (20) '2.0'\n+70D479 Created OS            00 (0) 'MS-DOS'\n+70D47A Extract Zip Spec      14 (20) '2.0'\n+70D47B Extract OS            00 (0) 'MS-DOS'\n+70D47C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D47E Compression Method    0000 (0) 'Stored'\n+70D480 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D484 CRC                   E8A94DD9 (3903409625)\n+70D488 Compressed Size       00000420 (1056)\n+70D48C Uncompressed Size     00000420 (1056)\n+70D490 Filename Length       0038 (56)\n+70D492 Extra Length          0009 (9)\n+70D494 Comment Length        0000 (0)\n+70D496 Disk Start            0000 (0)\n+70D498 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D49A Ext File Attributes   00000000 (0)\n+70D49E Local Header Offset   0055746D (5600365)\n+70D4A2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D4A2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D4DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D4DC   Length              0005 (5)\n+70D4DE   Flags               01 (1) 'Modification'\n+70D4DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D4E3 CENTRAL HEADER #1526  02014B50 (33639248)\n+70D4E7 Created Zip Spec      14 (20) '2.0'\n+70D4E8 Created OS            00 (0) 'MS-DOS'\n+70D4E9 Extract Zip Spec      14 (20) '2.0'\n+70D4EA Extract OS            00 (0) 'MS-DOS'\n+70D4EB General Purpose Flag  0000 (0)\n+70D4ED Compression Method    0000 (0) 'Stored'\n+70D4EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D4F3 CRC                   00000000 (0)\n+70D4F7 Compressed Size       00000000 (0)\n+70D4FB Uncompressed Size     00000000 (0)\n+70D4FF Filename Length       002F (47)\n+70D501 Extra Length          0009 (9)\n+70D503 Comment Length        0000 (0)\n+70D505 Disk Start            0000 (0)\n+70D507 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D509 Ext File Attributes   00000000 (0)\n+70D50D Local Header Offset   005578FC (5601532)\n+70D511 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D511: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D540 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D542   Length              0005 (5)\n+70D544   Flags               01 (1) 'Modification'\n+70D545   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D549 CENTRAL HEADER #1527  02014B50 (33639248)\n+70D54D Created Zip Spec      14 (20) '2.0'\n+70D54E Created OS            00 (0) 'MS-DOS'\n+70D54F Extract Zip Spec      14 (20) '2.0'\n+70D550 Extract OS            00 (0) 'MS-DOS'\n+70D551 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D553 Compression Method    0000 (0) 'Stored'\n+70D555 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D559 CRC                   C68A15C0 (3330938304)\n+70D55D Compressed Size       000011A2 (4514)\n+70D561 Uncompressed Size     000011A2 (4514)\n+70D565 Filename Length       0049 (73)\n+70D567 Extra Length          0009 (9)\n+70D569 Comment Length        0000 (0)\n+70D56B Disk Start            0000 (0)\n+70D56D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D56F Ext File Attributes   00000000 (0)\n+70D573 Local Header Offset   00557952 (5601618)\n+70D577 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D577: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D5C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D5C2   Length              0005 (5)\n+70D5C4   Flags               01 (1) 'Modification'\n+70D5C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D5C9 CENTRAL HEADER #1528  02014B50 (33639248)\n+70D5CD Created Zip Spec      14 (20) '2.0'\n+70D5CE Created OS            00 (0) 'MS-DOS'\n+70D5CF Extract Zip Spec      14 (20) '2.0'\n+70D5D0 Extract OS            00 (0) 'MS-DOS'\n+70D5D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D5D3 Compression Method    0000 (0) 'Stored'\n+70D5D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D5D9 CRC                   27A7C8DD (665307357)\n+70D5DD Compressed Size       00001334 (4916)\n+70D5E1 Uncompressed Size     00001334 (4916)\n+70D5E5 Filename Length       0046 (70)\n+70D5E7 Extra Length          0009 (9)\n+70D5E9 Comment Length        0000 (0)\n+70D5EB Disk Start            0000 (0)\n+70D5ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D5EF Ext File Attributes   00000000 (0)\n+70D5F3 Local Header Offset   00558B74 (5606260)\n+70D5F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D5F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D63D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D63F   Length              0005 (5)\n+70D641   Flags               01 (1) 'Modification'\n+70D642   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D646 CENTRAL HEADER #1529  02014B50 (33639248)\n+70D64A Created Zip Spec      14 (20) '2.0'\n+70D64B Created OS            00 (0) 'MS-DOS'\n+70D64C Extract Zip Spec      14 (20) '2.0'\n+70D64D Extract OS            00 (0) 'MS-DOS'\n+70D64E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D650 Compression Method    0000 (0) 'Stored'\n+70D652 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D656 CRC                   EC1A089B (3961129115)\n+70D65A Compressed Size       00001498 (5272)\n+70D65E Uncompressed Size     00001498 (5272)\n+70D662 Filename Length       0045 (69)\n+70D664 Extra Length          0009 (9)\n+70D666 Comment Length        0000 (0)\n+70D668 Disk Start            0000 (0)\n+70D66A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D66C Ext File Attributes   00000000 (0)\n+70D670 Local Header Offset   00559F25 (5611301)\n+70D674 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D674: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D6B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D6BB   Length              0005 (5)\n+70D6BD   Flags               01 (1) 'Modification'\n+70D6BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D6C2 CENTRAL HEADER #1530  02014B50 (33639248)\n+70D6C6 Created Zip Spec      14 (20) '2.0'\n+70D6C7 Created OS            00 (0) 'MS-DOS'\n+70D6C8 Extract Zip Spec      14 (20) '2.0'\n+70D6C9 Extract OS            00 (0) 'MS-DOS'\n+70D6CA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D6CC Compression Method    0000 (0) 'Stored'\n+70D6CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D6D2 CRC                   D99CBCB4 (3650927796)\n+70D6D6 Compressed Size       00000536 (1334)\n+70D6DA Uncompressed Size     00000536 (1334)\n+70D6DE Filename Length       0049 (73)\n+70D6E0 Extra Length          0009 (9)\n+70D6E2 Comment Length        0000 (0)\n+70D6E4 Disk Start            0000 (0)\n+70D6E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D6E8 Ext File Attributes   00000000 (0)\n+70D6EC Local Header Offset   0055B439 (5616697)\n+70D6F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D6F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D739 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D73B   Length              0005 (5)\n+70D73D   Flags               01 (1) 'Modification'\n+70D73E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D742 CENTRAL HEADER #1531  02014B50 (33639248)\n+70D746 Created Zip Spec      14 (20) '2.0'\n+70D747 Created OS            00 (0) 'MS-DOS'\n+70D748 Extract Zip Spec      14 (20) '2.0'\n+70D749 Extract OS            00 (0) 'MS-DOS'\n+70D74A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D74C Compression Method    0000 (0) 'Stored'\n+70D74E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D752 CRC                   25CC04D5 (634127573)\n+70D756 Compressed Size       00001094 (4244)\n+70D75A Uncompressed Size     00001094 (4244)\n+70D75E Filename Length       004A (74)\n+70D760 Extra Length          0009 (9)\n+70D762 Comment Length        0000 (0)\n+70D764 Disk Start            0000 (0)\n+70D766 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D768 Ext File Attributes   00000000 (0)\n+70D76C Local Header Offset   0055B9EF (5618159)\n+70D770 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D770: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D7BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D7BC   Length              0005 (5)\n+70D7BE   Flags               01 (1) 'Modification'\n+70D7BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D7C3 CENTRAL HEADER #1532  02014B50 (33639248)\n+70D7C7 Created Zip Spec      14 (20) '2.0'\n+70D7C8 Created OS            00 (0) 'MS-DOS'\n+70D7C9 Extract Zip Spec      14 (20) '2.0'\n+70D7CA Extract OS            00 (0) 'MS-DOS'\n+70D7CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D7CD Compression Method    0000 (0) 'Stored'\n+70D7CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D7D3 CRC                   ECA8B7E4 (3970480100)\n+70D7D7 Compressed Size       00000545 (1349)\n+70D7DB Uncompressed Size     00000545 (1349)\n+70D7DF Filename Length       004E (78)\n+70D7E1 Extra Length          0009 (9)\n+70D7E3 Comment Length        0000 (0)\n+70D7E5 Disk Start            0000 (0)\n+70D7E7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D7E9 Ext File Attributes   00000000 (0)\n+70D7ED Local Header Offset   0055CB04 (5622532)\n+70D7F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D7F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D83F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D841   Length              0005 (5)\n+70D843   Flags               01 (1) 'Modification'\n+70D844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D848 CENTRAL HEADER #1533  02014B50 (33639248)\n+70D84C Created Zip Spec      14 (20) '2.0'\n+70D84D Created OS            00 (0) 'MS-DOS'\n+70D84E Extract Zip Spec      14 (20) '2.0'\n+70D84F Extract OS            00 (0) 'MS-DOS'\n+70D850 General Purpose Flag  0000 (0)\n+70D852 Compression Method    0000 (0) 'Stored'\n+70D854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D858 CRC                   00000000 (0)\n+70D85C Compressed Size       00000000 (0)\n+70D860 Uncompressed Size     00000000 (0)\n+70D864 Filename Length       0026 (38)\n+70D866 Extra Length          0009 (9)\n+70D868 Comment Length        0000 (0)\n+70D86A Disk Start            0000 (0)\n+70D86C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D86E Ext File Attributes   00000000 (0)\n+70D872 Local Header Offset   0055D0CE (5624014)\n+70D876 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D876: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D89C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D89E   Length              0005 (5)\n+70D8A0   Flags               01 (1) 'Modification'\n+70D8A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D8A5 CENTRAL HEADER #1534  02014B50 (33639248)\n+70D8A9 Created Zip Spec      14 (20) '2.0'\n+70D8AA Created OS            00 (0) 'MS-DOS'\n+70D8AB Extract Zip Spec      14 (20) '2.0'\n+70D8AC Extract OS            00 (0) 'MS-DOS'\n+70D8AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D8AF Compression Method    0000 (0) 'Stored'\n+70D8B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D8B5 CRC                   F154D7FB (4048869371)\n+70D8B9 Compressed Size       00000FA2 (4002)\n+70D8BD Uncompressed Size     00000FA2 (4002)\n+70D8C1 Filename Length       0038 (56)\n+70D8C3 Extra Length          0009 (9)\n+70D8C5 Comment Length        0000 (0)\n+70D8C7 Disk Start            0000 (0)\n+70D8C9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D8CB Ext File Attributes   00000000 (0)\n+70D8CF Local Header Offset   0055D11B (5624091)\n+70D8D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D8D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D90B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D90D   Length              0005 (5)\n+70D90F   Flags               01 (1) 'Modification'\n+70D910   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D914 CENTRAL HEADER #1535  02014B50 (33639248)\n+70D918 Created Zip Spec      14 (20) '2.0'\n+70D919 Created OS            00 (0) 'MS-DOS'\n+70D91A Extract Zip Spec      14 (20) '2.0'\n+70D91B Extract OS            00 (0) 'MS-DOS'\n+70D91C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D91E Compression Method    0000 (0) 'Stored'\n+70D920 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D924 CRC                   126F64B9 (309290169)\n+70D928 Compressed Size       000013C0 (5056)\n+70D92C Uncompressed Size     000013C0 (5056)\n+70D930 Filename Length       0034 (52)\n+70D932 Extra Length          0009 (9)\n+70D934 Comment Length        0000 (0)\n+70D936 Disk Start            0000 (0)\n+70D938 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D93A Ext File Attributes   00000000 (0)\n+70D93E Local Header Offset   0055E12C (5628204)\n+70D942 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D942: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D976 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D978   Length              0005 (5)\n+70D97A   Flags               01 (1) 'Modification'\n+70D97B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D97F CENTRAL HEADER #1536  02014B50 (33639248)\n+70D983 Created Zip Spec      14 (20) '2.0'\n+70D984 Created OS            00 (0) 'MS-DOS'\n+70D985 Extract Zip Spec      14 (20) '2.0'\n+70D986 Extract OS            00 (0) 'MS-DOS'\n+70D987 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D989 Compression Method    0000 (0) 'Stored'\n+70D98B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D98F CRC                   DE2F0B5D (3727625053)\n+70D993 Compressed Size       000004EB (1259)\n+70D997 Uncompressed Size     000004EB (1259)\n+70D99B Filename Length       0038 (56)\n+70D99D Extra Length          0009 (9)\n+70D99F Comment Length        0000 (0)\n+70D9A1 Disk Start            0000 (0)\n+70D9A3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70D9A5 Ext File Attributes   00000000 (0)\n+70D9A9 Local Header Offset   0055F557 (5633367)\n+70D9AD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70D9AD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70D9E5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70D9E7   Length              0005 (5)\n+70D9E9   Flags               01 (1) 'Modification'\n+70D9EA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70D9EE CENTRAL HEADER #1537  02014B50 (33639248)\n+70D9F2 Created Zip Spec      14 (20) '2.0'\n+70D9F3 Created OS            00 (0) 'MS-DOS'\n+70D9F4 Extract Zip Spec      14 (20) '2.0'\n+70D9F5 Extract OS            00 (0) 'MS-DOS'\n+70D9F6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70D9F8 Compression Method    0000 (0) 'Stored'\n+70D9FA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70D9FE CRC                   91721BC5 (2440174533)\n+70DA02 Compressed Size       0000103F (4159)\n+70DA06 Uncompressed Size     0000103F (4159)\n+70DA0A Filename Length       0039 (57)\n+70DA0C Extra Length          0009 (9)\n+70DA0E Comment Length        0000 (0)\n+70DA10 Disk Start            0000 (0)\n+70DA12 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DA14 Ext File Attributes   00000000 (0)\n+70DA18 Local Header Offset   0055FAB1 (5634737)\n+70DA1C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DA1C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DA55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DA57   Length              0005 (5)\n+70DA59   Flags               01 (1) 'Modification'\n+70DA5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DA5E CENTRAL HEADER #1538  02014B50 (33639248)\n+70DA62 Created Zip Spec      14 (20) '2.0'\n+70DA63 Created OS            00 (0) 'MS-DOS'\n+70DA64 Extract Zip Spec      14 (20) '2.0'\n+70DA65 Extract OS            00 (0) 'MS-DOS'\n+70DA66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DA68 Compression Method    0000 (0) 'Stored'\n+70DA6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DA6E CRC                   6E31EAB9 (1848765113)\n+70DA72 Compressed Size       000004FA (1274)\n+70DA76 Uncompressed Size     000004FA (1274)\n+70DA7A Filename Length       003D (61)\n+70DA7C Extra Length          0009 (9)\n+70DA7E Comment Length        0000 (0)\n+70DA80 Disk Start            0000 (0)\n+70DA82 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DA84 Ext File Attributes   00000000 (0)\n+70DA88 Local Header Offset   00560B60 (5639008)\n+70DA8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DA8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DAC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DACB   Length              0005 (5)\n+70DACD   Flags               01 (1) 'Modification'\n+70DACE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DAD2 CENTRAL HEADER #1539  02014B50 (33639248)\n+70DAD6 Created Zip Spec      14 (20) '2.0'\n+70DAD7 Created OS            00 (0) 'MS-DOS'\n+70DAD8 Extract Zip Spec      14 (20) '2.0'\n+70DAD9 Extract OS            00 (0) 'MS-DOS'\n+70DADA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DADC Compression Method    0000 (0) 'Stored'\n+70DADE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DAE2 CRC                   9A81C390 (2592195472)\n+70DAE6 Compressed Size       0000109F (4255)\n+70DAEA Uncompressed Size     0000109F (4255)\n+70DAEE Filename Length       0035 (53)\n+70DAF0 Extra Length          0009 (9)\n+70DAF2 Comment Length        0000 (0)\n+70DAF4 Disk Start            0000 (0)\n+70DAF6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DAF8 Ext File Attributes   00000000 (0)\n+70DAFC Local Header Offset   005610CE (5640398)\n+70DB00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DB00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DB35 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DB37   Length              0005 (5)\n+70DB39   Flags               01 (1) 'Modification'\n+70DB3A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DB3E CENTRAL HEADER #1540  02014B50 (33639248)\n+70DB42 Created Zip Spec      14 (20) '2.0'\n+70DB43 Created OS            00 (0) 'MS-DOS'\n+70DB44 Extract Zip Spec      14 (20) '2.0'\n+70DB45 Extract OS            00 (0) 'MS-DOS'\n+70DB46 General Purpose Flag  0000 (0)\n+70DB48 Compression Method    0000 (0) 'Stored'\n+70DB4A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DB4E CRC                   00000000 (0)\n+70DB52 Compressed Size       00000000 (0)\n+70DB56 Uncompressed Size     00000000 (0)\n+70DB5A Filename Length       0021 (33)\n+70DB5C Extra Length          0009 (9)\n+70DB5E Comment Length        0000 (0)\n+70DB60 Disk Start            0000 (0)\n+70DB62 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DB64 Ext File Attributes   00000000 (0)\n+70DB68 Local Header Offset   005621D9 (5644761)\n+70DB6C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DB6C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DB8D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DB8F   Length              0005 (5)\n+70DB91   Flags               01 (1) 'Modification'\n+70DB92   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DB96 CENTRAL HEADER #1541  02014B50 (33639248)\n+70DB9A Created Zip Spec      14 (20) '2.0'\n+70DB9B Created OS            00 (0) 'MS-DOS'\n+70DB9C Extract Zip Spec      14 (20) '2.0'\n+70DB9D Extract OS            00 (0) 'MS-DOS'\n+70DB9E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DBA0 Compression Method    0000 (0) 'Stored'\n+70DBA2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DBA6 CRC                   1A03F22E (436466222)\n+70DBAA Compressed Size       000004DF (1247)\n+70DBAE Uncompressed Size     000004DF (1247)\n+70DBB2 Filename Length       0033 (51)\n+70DBB4 Extra Length          0009 (9)\n+70DBB6 Comment Length        0000 (0)\n+70DBB8 Disk Start            0000 (0)\n+70DBBA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DBBC Ext File Attributes   00000000 (0)\n+70DBC0 Local Header Offset   00562221 (5644833)\n+70DBC4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DBC4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DBF7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DBF9   Length              0005 (5)\n+70DBFB   Flags               01 (1) 'Modification'\n+70DBFC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DC00 CENTRAL HEADER #1542  02014B50 (33639248)\n+70DC04 Created Zip Spec      14 (20) '2.0'\n+70DC05 Created OS            00 (0) 'MS-DOS'\n+70DC06 Extract Zip Spec      14 (20) '2.0'\n+70DC07 Extract OS            00 (0) 'MS-DOS'\n+70DC08 General Purpose Flag  0000 (0)\n+70DC0A Compression Method    0000 (0) 'Stored'\n+70DC0C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DC10 CRC                   00000000 (0)\n+70DC14 Compressed Size       00000000 (0)\n+70DC18 Uncompressed Size     00000000 (0)\n+70DC1C Filename Length       0027 (39)\n+70DC1E Extra Length          0009 (9)\n+70DC20 Comment Length        0000 (0)\n+70DC22 Disk Start            0000 (0)\n+70DC24 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DC26 Ext File Attributes   00000000 (0)\n+70DC2A Local Header Offset   0056276A (5646186)\n+70DC2E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DC2E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DC55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DC57   Length              0005 (5)\n+70DC59   Flags               01 (1) 'Modification'\n+70DC5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DC5E CENTRAL HEADER #1543  02014B50 (33639248)\n+70DC62 Created Zip Spec      14 (20) '2.0'\n+70DC63 Created OS            00 (0) 'MS-DOS'\n+70DC64 Extract Zip Spec      14 (20) '2.0'\n+70DC65 Extract OS            00 (0) 'MS-DOS'\n+70DC66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DC68 Compression Method    0000 (0) 'Stored'\n+70DC6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DC6E CRC                   DBE899CA (3689454026)\n+70DC72 Compressed Size       00002E6D (11885)\n+70DC76 Uncompressed Size     00002E6D (11885)\n+70DC7A Filename Length       0037 (55)\n+70DC7C Extra Length          0009 (9)\n+70DC7E Comment Length        0000 (0)\n+70DC80 Disk Start            0000 (0)\n+70DC82 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DC84 Ext File Attributes   00000000 (0)\n+70DC88 Local Header Offset   005627B8 (5646264)\n+70DC8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DC8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DCC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DCC5   Length              0005 (5)\n+70DCC7   Flags               01 (1) 'Modification'\n+70DCC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DCCC CENTRAL HEADER #1544  02014B50 (33639248)\n+70DCD0 Created Zip Spec      14 (20) '2.0'\n+70DCD1 Created OS            00 (0) 'MS-DOS'\n+70DCD2 Extract Zip Spec      14 (20) '2.0'\n+70DCD3 Extract OS            00 (0) 'MS-DOS'\n+70DCD4 General Purpose Flag  0000 (0)\n+70DCD6 Compression Method    0000 (0) 'Stored'\n+70DCD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DCDC CRC                   00000000 (0)\n+70DCE0 Compressed Size       00000000 (0)\n+70DCE4 Uncompressed Size     00000000 (0)\n+70DCE8 Filename Length       0029 (41)\n+70DCEA Extra Length          0009 (9)\n+70DCEC Comment Length        0000 (0)\n+70DCEE Disk Start            0000 (0)\n+70DCF0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DCF2 Ext File Attributes   00000000 (0)\n+70DCF6 Local Header Offset   00565693 (5658259)\n+70DCFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DCFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DD23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DD25   Length              0005 (5)\n+70DD27   Flags               01 (1) 'Modification'\n+70DD28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DD2C CENTRAL HEADER #1545  02014B50 (33639248)\n+70DD30 Created Zip Spec      14 (20) '2.0'\n+70DD31 Created OS            00 (0) 'MS-DOS'\n+70DD32 Extract Zip Spec      14 (20) '2.0'\n+70DD33 Extract OS            00 (0) 'MS-DOS'\n+70DD34 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DD36 Compression Method    0000 (0) 'Stored'\n+70DD38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DD3C CRC                   91FB3CEA (2449161450)\n+70DD40 Compressed Size       00000518 (1304)\n+70DD44 Uncompressed Size     00000518 (1304)\n+70DD48 Filename Length       0032 (50)\n+70DD4A Extra Length          0009 (9)\n+70DD4C Comment Length        0000 (0)\n+70DD4E Disk Start            0000 (0)\n+70DD50 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DD52 Ext File Attributes   00000000 (0)\n+70DD56 Local Header Offset   005656E3 (5658339)\n+70DD5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DD5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DD8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DD8E   Length              0005 (5)\n+70DD90   Flags               01 (1) 'Modification'\n+70DD91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DD95 CENTRAL HEADER #1546  02014B50 (33639248)\n+70DD99 Created Zip Spec      14 (20) '2.0'\n+70DD9A Created OS            00 (0) 'MS-DOS'\n+70DD9B Extract Zip Spec      14 (20) '2.0'\n+70DD9C Extract OS            00 (0) 'MS-DOS'\n+70DD9D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DD9F Compression Method    0000 (0) 'Stored'\n+70DDA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DDA5 CRC                   492B287D (1227565181)\n+70DDA9 Compressed Size       00000FCE (4046)\n+70DDAD Uncompressed Size     00000FCE (4046)\n+70DDB1 Filename Length       0042 (66)\n+70DDB3 Extra Length          0009 (9)\n+70DDB5 Comment Length        0000 (0)\n+70DDB7 Disk Start            0000 (0)\n+70DDB9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DDBB Ext File Attributes   00000000 (0)\n+70DDBF Local Header Offset   00565C64 (5659748)\n+70DDC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DDC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DE05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DE07   Length              0005 (5)\n+70DE09   Flags               01 (1) 'Modification'\n+70DE0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DE0E CENTRAL HEADER #1547  02014B50 (33639248)\n+70DE12 Created Zip Spec      14 (20) '2.0'\n+70DE13 Created OS            00 (0) 'MS-DOS'\n+70DE14 Extract Zip Spec      14 (20) '2.0'\n+70DE15 Extract OS            00 (0) 'MS-DOS'\n+70DE16 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DE18 Compression Method    0000 (0) 'Stored'\n+70DE1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DE1E CRC                   EB3BD2B9 (3946566329)\n+70DE22 Compressed Size       0000169D (5789)\n+70DE26 Uncompressed Size     0000169D (5789)\n+70DE2A Filename Length       0039 (57)\n+70DE2C Extra Length          0009 (9)\n+70DE2E Comment Length        0000 (0)\n+70DE30 Disk Start            0000 (0)\n+70DE32 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DE34 Ext File Attributes   00000000 (0)\n+70DE38 Local Header Offset   00566CAB (5663915)\n+70DE3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DE3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DE75 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DE77   Length              0005 (5)\n+70DE79   Flags               01 (1) 'Modification'\n+70DE7A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DE7E CENTRAL HEADER #1548  02014B50 (33639248)\n+70DE82 Created Zip Spec      14 (20) '2.0'\n+70DE83 Created OS            00 (0) 'MS-DOS'\n+70DE84 Extract Zip Spec      14 (20) '2.0'\n+70DE85 Extract OS            00 (0) 'MS-DOS'\n+70DE86 General Purpose Flag  0000 (0)\n+70DE88 Compression Method    0000 (0) 'Stored'\n+70DE8A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DE8E CRC                   00000000 (0)\n+70DE92 Compressed Size       00000000 (0)\n+70DE96 Uncompressed Size     00000000 (0)\n+70DE9A Filename Length       0031 (49)\n+70DE9C Extra Length          0009 (9)\n+70DE9E Comment Length        0000 (0)\n+70DEA0 Disk Start            0000 (0)\n+70DEA2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DEA4 Ext File Attributes   00000000 (0)\n+70DEA8 Local Header Offset   005683B8 (5669816)\n+70DEAC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DEAC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DEDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DEDF   Length              0005 (5)\n+70DEE1   Flags               01 (1) 'Modification'\n+70DEE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DEE6 CENTRAL HEADER #1549  02014B50 (33639248)\n+70DEEA Created Zip Spec      14 (20) '2.0'\n+70DEEB Created OS            00 (0) 'MS-DOS'\n+70DEEC Extract Zip Spec      14 (20) '2.0'\n+70DEED Extract OS            00 (0) 'MS-DOS'\n+70DEEE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DEF0 Compression Method    0000 (0) 'Stored'\n+70DEF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DEF6 CRC                   74498D23 (1950977315)\n+70DEFA Compressed Size       00000738 (1848)\n+70DEFE Uncompressed Size     00000738 (1848)\n+70DF02 Filename Length       0048 (72)\n+70DF04 Extra Length          0009 (9)\n+70DF06 Comment Length        0000 (0)\n+70DF08 Disk Start            0000 (0)\n+70DF0A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DF0C Ext File Attributes   00000000 (0)\n+70DF10 Local Header Offset   00568410 (5669904)\n+70DF14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DF14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DF5C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DF5E   Length              0005 (5)\n+70DF60   Flags               01 (1) 'Modification'\n+70DF61   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DF65 CENTRAL HEADER #1550  02014B50 (33639248)\n+70DF69 Created Zip Spec      14 (20) '2.0'\n+70DF6A Created OS            00 (0) 'MS-DOS'\n+70DF6B Extract Zip Spec      14 (20) '2.0'\n+70DF6C Extract OS            00 (0) 'MS-DOS'\n+70DF6D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DF6F Compression Method    0000 (0) 'Stored'\n+70DF71 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DF75 CRC                   C2DA4C0E (3269086222)\n+70DF79 Compressed Size       00000581 (1409)\n+70DF7D Uncompressed Size     00000581 (1409)\n+70DF81 Filename Length       0047 (71)\n+70DF83 Extra Length          0009 (9)\n+70DF85 Comment Length        0000 (0)\n+70DF87 Disk Start            0000 (0)\n+70DF89 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70DF8B Ext File Attributes   00000000 (0)\n+70DF8F Local Header Offset   00568BC7 (5671879)\n+70DF93 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70DF93: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70DFDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70DFDC   Length              0005 (5)\n+70DFDE   Flags               01 (1) 'Modification'\n+70DFDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70DFE3 CENTRAL HEADER #1551  02014B50 (33639248)\n+70DFE7 Created Zip Spec      14 (20) '2.0'\n+70DFE8 Created OS            00 (0) 'MS-DOS'\n+70DFE9 Extract Zip Spec      14 (20) '2.0'\n+70DFEA Extract OS            00 (0) 'MS-DOS'\n+70DFEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70DFED Compression Method    0000 (0) 'Stored'\n+70DFEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70DFF3 CRC                   A166D974 (2707872116)\n+70DFF7 Compressed Size       00000E50 (3664)\n+70DFFB Uncompressed Size     00000E50 (3664)\n+70DFFF Filename Length       0047 (71)\n+70E001 Extra Length          0009 (9)\n+70E003 Comment Length        0000 (0)\n+70E005 Disk Start            0000 (0)\n+70E007 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E009 Ext File Attributes   00000000 (0)\n+70E00D Local Header Offset   005691C6 (5673414)\n+70E011 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E011: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E058 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E05A   Length              0005 (5)\n+70E05C   Flags               01 (1) 'Modification'\n+70E05D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E061 CENTRAL HEADER #1552  02014B50 (33639248)\n+70E065 Created Zip Spec      14 (20) '2.0'\n+70E066 Created OS            00 (0) 'MS-DOS'\n+70E067 Extract Zip Spec      14 (20) '2.0'\n+70E068 Extract OS            00 (0) 'MS-DOS'\n+70E069 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E06B Compression Method    0000 (0) 'Stored'\n+70E06D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E071 CRC                   07F19A54 (133274196)\n+70E075 Compressed Size       000010DC (4316)\n+70E079 Uncompressed Size     000010DC (4316)\n+70E07D Filename Length       0046 (70)\n+70E07F Extra Length          0009 (9)\n+70E081 Comment Length        0000 (0)\n+70E083 Disk Start            0000 (0)\n+70E085 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E087 Ext File Attributes   00000000 (0)\n+70E08B Local Header Offset   0056A094 (5677204)\n+70E08F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E08F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E0D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E0D7   Length              0005 (5)\n+70E0D9   Flags               01 (1) 'Modification'\n+70E0DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E0DE CENTRAL HEADER #1553  02014B50 (33639248)\n+70E0E2 Created Zip Spec      14 (20) '2.0'\n+70E0E3 Created OS            00 (0) 'MS-DOS'\n+70E0E4 Extract Zip Spec      14 (20) '2.0'\n+70E0E5 Extract OS            00 (0) 'MS-DOS'\n+70E0E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E0E8 Compression Method    0000 (0) 'Stored'\n+70E0EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E0EE CRC                   F5209683 (4112553603)\n+70E0F2 Compressed Size       00001210 (4624)\n+70E0F6 Uncompressed Size     00001210 (4624)\n+70E0FA Filename Length       0049 (73)\n+70E0FC Extra Length          0009 (9)\n+70E0FE Comment Length        0000 (0)\n+70E100 Disk Start            0000 (0)\n+70E102 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E104 Ext File Attributes   00000000 (0)\n+70E108 Local Header Offset   0056B1ED (5681645)\n+70E10C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E10C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E155 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E157   Length              0005 (5)\n+70E159   Flags               01 (1) 'Modification'\n+70E15A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E15E CENTRAL HEADER #1554  02014B50 (33639248)\n+70E162 Created Zip Spec      14 (20) '2.0'\n+70E163 Created OS            00 (0) 'MS-DOS'\n+70E164 Extract Zip Spec      14 (20) '2.0'\n+70E165 Extract OS            00 (0) 'MS-DOS'\n+70E166 General Purpose Flag  0000 (0)\n+70E168 Compression Method    0000 (0) 'Stored'\n+70E16A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E16E CRC                   00000000 (0)\n+70E172 Compressed Size       00000000 (0)\n+70E176 Uncompressed Size     00000000 (0)\n+70E17A Filename Length       0024 (36)\n+70E17C Extra Length          0009 (9)\n+70E17E Comment Length        0000 (0)\n+70E180 Disk Start            0000 (0)\n+70E182 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E184 Ext File Attributes   00000000 (0)\n+70E188 Local Header Offset   0056C47D (5686397)\n+70E18C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E18C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E1B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E1B2   Length              0005 (5)\n+70E1B4   Flags               01 (1) 'Modification'\n+70E1B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E1B9 CENTRAL HEADER #1555  02014B50 (33639248)\n+70E1BD Created Zip Spec      14 (20) '2.0'\n+70E1BE Created OS            00 (0) 'MS-DOS'\n+70E1BF Extract Zip Spec      14 (20) '2.0'\n+70E1C0 Extract OS            00 (0) 'MS-DOS'\n+70E1C1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E1C3 Compression Method    0000 (0) 'Stored'\n+70E1C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E1C9 CRC                   A7E27376 (2816635766)\n+70E1CD Compressed Size       0000076D (1901)\n+70E1D1 Uncompressed Size     0000076D (1901)\n+70E1D5 Filename Length       0038 (56)\n+70E1D7 Extra Length          0009 (9)\n+70E1D9 Comment Length        0000 (0)\n+70E1DB Disk Start            0000 (0)\n+70E1DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E1DF Ext File Attributes   00000000 (0)\n+70E1E3 Local Header Offset   0056C4C8 (5686472)\n+70E1E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E1E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E21F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E221   Length              0005 (5)\n+70E223   Flags               01 (1) 'Modification'\n+70E224   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E228 CENTRAL HEADER #1556  02014B50 (33639248)\n+70E22C Created Zip Spec      14 (20) '2.0'\n+70E22D Created OS            00 (0) 'MS-DOS'\n+70E22E Extract Zip Spec      14 (20) '2.0'\n+70E22F Extract OS            00 (0) 'MS-DOS'\n+70E230 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E232 Compression Method    0000 (0) 'Stored'\n+70E234 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E238 CRC                   28520740 (676464448)\n+70E23C Compressed Size       00000910 (2320)\n+70E240 Uncompressed Size     00000910 (2320)\n+70E244 Filename Length       0047 (71)\n+70E246 Extra Length          0009 (9)\n+70E248 Comment Length        0000 (0)\n+70E24A Disk Start            0000 (0)\n+70E24C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E24E Ext File Attributes   00000000 (0)\n+70E252 Local Header Offset   0056CCA4 (5688484)\n+70E256 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E256: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E29D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E29F   Length              0005 (5)\n+70E2A1   Flags               01 (1) 'Modification'\n+70E2A2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E2A6 CENTRAL HEADER #1557  02014B50 (33639248)\n+70E2AA Created Zip Spec      14 (20) '2.0'\n+70E2AB Created OS            00 (0) 'MS-DOS'\n+70E2AC Extract Zip Spec      14 (20) '2.0'\n+70E2AD Extract OS            00 (0) 'MS-DOS'\n+70E2AE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E2B0 Compression Method    0000 (0) 'Stored'\n+70E2B2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E2B6 CRC                   B8E0F8E9 (3101751529)\n+70E2BA Compressed Size       00002FAF (12207)\n+70E2BE Uncompressed Size     00002FAF (12207)\n+70E2C2 Filename Length       0037 (55)\n+70E2C4 Extra Length          0009 (9)\n+70E2C6 Comment Length        0000 (0)\n+70E2C8 Disk Start            0000 (0)\n+70E2CA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E2CC Ext File Attributes   00000000 (0)\n+70E2D0 Local Header Offset   0056D632 (5690930)\n+70E2D4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E2D4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E30B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E30D   Length              0005 (5)\n+70E30F   Flags               01 (1) 'Modification'\n+70E310   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E314 CENTRAL HEADER #1558  02014B50 (33639248)\n+70E318 Created Zip Spec      14 (20) '2.0'\n+70E319 Created OS            00 (0) 'MS-DOS'\n+70E31A Extract Zip Spec      14 (20) '2.0'\n+70E31B Extract OS            00 (0) 'MS-DOS'\n+70E31C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E31E Compression Method    0000 (0) 'Stored'\n+70E320 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E324 CRC                   191CDF67 (421322599)\n+70E328 Compressed Size       00001001 (4097)\n+70E32C Uncompressed Size     00001001 (4097)\n+70E330 Filename Length       0036 (54)\n+70E332 Extra Length          0009 (9)\n+70E334 Comment Length        0000 (0)\n+70E336 Disk Start            0000 (0)\n+70E338 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E33A Ext File Attributes   00000000 (0)\n+70E33E Local Header Offset   0057064F (5703247)\n+70E342 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E342: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E378 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E37A   Length              0005 (5)\n+70E37C   Flags               01 (1) 'Modification'\n+70E37D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E381 CENTRAL HEADER #1559  02014B50 (33639248)\n+70E385 Created Zip Spec      14 (20) '2.0'\n+70E386 Created OS            00 (0) 'MS-DOS'\n+70E387 Extract Zip Spec      14 (20) '2.0'\n+70E388 Extract OS            00 (0) 'MS-DOS'\n+70E389 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E38B Compression Method    0000 (0) 'Stored'\n+70E38D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E391 CRC                   D94EDD2B (3645824299)\n+70E395 Compressed Size       0000108B (4235)\n+70E399 Uncompressed Size     0000108B (4235)\n+70E39D Filename Length       0039 (57)\n+70E39F Extra Length          0009 (9)\n+70E3A1 Comment Length        0000 (0)\n+70E3A3 Disk Start            0000 (0)\n+70E3A5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E3A7 Ext File Attributes   00000000 (0)\n+70E3AB Local Header Offset   005716BD (5707453)\n+70E3AF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E3AF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E3E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E3EA   Length              0005 (5)\n+70E3EC   Flags               01 (1) 'Modification'\n+70E3ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E3F1 CENTRAL HEADER #1560  02014B50 (33639248)\n+70E3F5 Created Zip Spec      14 (20) '2.0'\n+70E3F6 Created OS            00 (0) 'MS-DOS'\n+70E3F7 Extract Zip Spec      14 (20) '2.0'\n+70E3F8 Extract OS            00 (0) 'MS-DOS'\n+70E3F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E3FB Compression Method    0000 (0) 'Stored'\n+70E3FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E401 CRC                   C397571B (3281475355)\n+70E405 Compressed Size       00001058 (4184)\n+70E409 Uncompressed Size     00001058 (4184)\n+70E40D Filename Length       0035 (53)\n+70E40F Extra Length          0009 (9)\n+70E411 Comment Length        0000 (0)\n+70E413 Disk Start            0000 (0)\n+70E415 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E417 Ext File Attributes   00000000 (0)\n+70E41B Local Header Offset   005727B8 (5711800)\n+70E41F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E41F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E454 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E456   Length              0005 (5)\n+70E458   Flags               01 (1) 'Modification'\n+70E459   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E45D CENTRAL HEADER #1561  02014B50 (33639248)\n+70E461 Created Zip Spec      14 (20) '2.0'\n+70E462 Created OS            00 (0) 'MS-DOS'\n+70E463 Extract Zip Spec      14 (20) '2.0'\n+70E464 Extract OS            00 (0) 'MS-DOS'\n+70E465 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E467 Compression Method    0000 (0) 'Stored'\n+70E469 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E46D CRC                   9B1DD286 (2602422918)\n+70E471 Compressed Size       00001CC3 (7363)\n+70E475 Uncompressed Size     00001CC3 (7363)\n+70E479 Filename Length       0037 (55)\n+70E47B Extra Length          0009 (9)\n+70E47D Comment Length        0000 (0)\n+70E47F Disk Start            0000 (0)\n+70E481 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E483 Ext File Attributes   00000000 (0)\n+70E487 Local Header Offset   0057387C (5716092)\n+70E48B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E48B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E4C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E4C4   Length              0005 (5)\n+70E4C6   Flags               01 (1) 'Modification'\n+70E4C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E4CB CENTRAL HEADER #1562  02014B50 (33639248)\n+70E4CF Created Zip Spec      14 (20) '2.0'\n+70E4D0 Created OS            00 (0) 'MS-DOS'\n+70E4D1 Extract Zip Spec      14 (20) '2.0'\n+70E4D2 Extract OS            00 (0) 'MS-DOS'\n+70E4D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E4D5 Compression Method    0000 (0) 'Stored'\n+70E4D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E4DB CRC                   8ED687AA (2396424106)\n+70E4DF Compressed Size       00000C9B (3227)\n+70E4E3 Uncompressed Size     00000C9B (3227)\n+70E4E7 Filename Length       0038 (56)\n+70E4E9 Extra Length          0009 (9)\n+70E4EB Comment Length        0000 (0)\n+70E4ED Disk Start            0000 (0)\n+70E4EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E4F1 Ext File Attributes   00000000 (0)\n+70E4F5 Local Header Offset   005755AD (5723565)\n+70E4F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E4F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E531 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E533   Length              0005 (5)\n+70E535   Flags               01 (1) 'Modification'\n+70E536   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E53A CENTRAL HEADER #1563  02014B50 (33639248)\n+70E53E Created Zip Spec      14 (20) '2.0'\n+70E53F Created OS            00 (0) 'MS-DOS'\n+70E540 Extract Zip Spec      14 (20) '2.0'\n+70E541 Extract OS            00 (0) 'MS-DOS'\n+70E542 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E544 Compression Method    0000 (0) 'Stored'\n+70E546 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E54A CRC                   3E4334ED (1044591853)\n+70E54E Compressed Size       0000066A (1642)\n+70E552 Uncompressed Size     0000066A (1642)\n+70E556 Filename Length       003E (62)\n+70E558 Extra Length          0009 (9)\n+70E55A Comment Length        0000 (0)\n+70E55C Disk Start            0000 (0)\n+70E55E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E560 Ext File Attributes   00000000 (0)\n+70E564 Local Header Offset   005762B7 (5726903)\n+70E568 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E568: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E5A6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E5A8   Length              0005 (5)\n+70E5AA   Flags               01 (1) 'Modification'\n+70E5AB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E5AF CENTRAL HEADER #1564  02014B50 (33639248)\n+70E5B3 Created Zip Spec      14 (20) '2.0'\n+70E5B4 Created OS            00 (0) 'MS-DOS'\n+70E5B5 Extract Zip Spec      14 (20) '2.0'\n+70E5B6 Extract OS            00 (0) 'MS-DOS'\n+70E5B7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E5B9 Compression Method    0000 (0) 'Stored'\n+70E5BB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E5BF CRC                   1F076089 (520577161)\n+70E5C3 Compressed Size       000003FD (1021)\n+70E5C7 Uncompressed Size     000003FD (1021)\n+70E5CB Filename Length       003F (63)\n+70E5CD Extra Length          0009 (9)\n+70E5CF Comment Length        0000 (0)\n+70E5D1 Disk Start            0000 (0)\n+70E5D3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E5D5 Ext File Attributes   00000000 (0)\n+70E5D9 Local Header Offset   00576996 (5728662)\n+70E5DD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E5DD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E61C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E61E   Length              0005 (5)\n+70E620   Flags               01 (1) 'Modification'\n+70E621   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E625 CENTRAL HEADER #1565  02014B50 (33639248)\n+70E629 Created Zip Spec      14 (20) '2.0'\n+70E62A Created OS            00 (0) 'MS-DOS'\n+70E62B Extract Zip Spec      14 (20) '2.0'\n+70E62C Extract OS            00 (0) 'MS-DOS'\n+70E62D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E62F Compression Method    0000 (0) 'Stored'\n+70E631 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E635 CRC                   63B69239 (1672909369)\n+70E639 Compressed Size       00000F7F (3967)\n+70E63D Uncompressed Size     00000F7F (3967)\n+70E641 Filename Length       0041 (65)\n+70E643 Extra Length          0009 (9)\n+70E645 Comment Length        0000 (0)\n+70E647 Disk Start            0000 (0)\n+70E649 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E64B Ext File Attributes   00000000 (0)\n+70E64F Local Header Offset   00576E09 (5729801)\n+70E653 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E653: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E694 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E696   Length              0005 (5)\n+70E698   Flags               01 (1) 'Modification'\n+70E699   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E69D CENTRAL HEADER #1566  02014B50 (33639248)\n+70E6A1 Created Zip Spec      14 (20) '2.0'\n+70E6A2 Created OS            00 (0) 'MS-DOS'\n+70E6A3 Extract Zip Spec      14 (20) '2.0'\n+70E6A4 Extract OS            00 (0) 'MS-DOS'\n+70E6A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E6A7 Compression Method    0000 (0) 'Stored'\n+70E6A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E6AD CRC                   DB6423CF (3680773071)\n+70E6B1 Compressed Size       00000DEE (3566)\n+70E6B5 Uncompressed Size     00000DEE (3566)\n+70E6B9 Filename Length       0037 (55)\n+70E6BB Extra Length          0009 (9)\n+70E6BD Comment Length        0000 (0)\n+70E6BF Disk Start            0000 (0)\n+70E6C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E6C3 Ext File Attributes   00000000 (0)\n+70E6C7 Local Header Offset   00577E00 (5733888)\n+70E6CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E6CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E702 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E704   Length              0005 (5)\n+70E706   Flags               01 (1) 'Modification'\n+70E707   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E70B CENTRAL HEADER #1567  02014B50 (33639248)\n+70E70F Created Zip Spec      14 (20) '2.0'\n+70E710 Created OS            00 (0) 'MS-DOS'\n+70E711 Extract Zip Spec      14 (20) '2.0'\n+70E712 Extract OS            00 (0) 'MS-DOS'\n+70E713 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E715 Compression Method    0000 (0) 'Stored'\n+70E717 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E71B CRC                   79B32E36 (2041785910)\n+70E71F Compressed Size       00001E8F (7823)\n+70E723 Uncompressed Size     00001E8F (7823)\n+70E727 Filename Length       0035 (53)\n+70E729 Extra Length          0009 (9)\n+70E72B Comment Length        0000 (0)\n+70E72D Disk Start            0000 (0)\n+70E72F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E731 Ext File Attributes   00000000 (0)\n+70E735 Local Header Offset   00578C5C (5737564)\n+70E739 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E739: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E76E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E770   Length              0005 (5)\n+70E772   Flags               01 (1) 'Modification'\n+70E773   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E777 CENTRAL HEADER #1568  02014B50 (33639248)\n+70E77B Created Zip Spec      14 (20) '2.0'\n+70E77C Created OS            00 (0) 'MS-DOS'\n+70E77D Extract Zip Spec      14 (20) '2.0'\n+70E77E Extract OS            00 (0) 'MS-DOS'\n+70E77F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E781 Compression Method    0000 (0) 'Stored'\n+70E783 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E787 CRC                   5F8B1DE8 (1602952680)\n+70E78B Compressed Size       00000A0E (2574)\n+70E78F Uncompressed Size     00000A0E (2574)\n+70E793 Filename Length       0036 (54)\n+70E795 Extra Length          0009 (9)\n+70E797 Comment Length        0000 (0)\n+70E799 Disk Start            0000 (0)\n+70E79B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E79D Ext File Attributes   00000000 (0)\n+70E7A1 Local Header Offset   0057AB57 (5745495)\n+70E7A5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E7A5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E7DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E7DD   Length              0005 (5)\n+70E7DF   Flags               01 (1) 'Modification'\n+70E7E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E7E4 CENTRAL HEADER #1569  02014B50 (33639248)\n+70E7E8 Created Zip Spec      14 (20) '2.0'\n+70E7E9 Created OS            00 (0) 'MS-DOS'\n+70E7EA Extract Zip Spec      14 (20) '2.0'\n+70E7EB Extract OS            00 (0) 'MS-DOS'\n+70E7EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E7EE Compression Method    0000 (0) 'Stored'\n+70E7F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E7F4 CRC                   D9BD9D3A (3653082426)\n+70E7F8 Compressed Size       00000469 (1129)\n+70E7FC Uncompressed Size     00000469 (1129)\n+70E800 Filename Length       0044 (68)\n+70E802 Extra Length          0009 (9)\n+70E804 Comment Length        0000 (0)\n+70E806 Disk Start            0000 (0)\n+70E808 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E80A Ext File Attributes   00000000 (0)\n+70E80E Local Header Offset   0057B5D2 (5748178)\n+70E812 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E812: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E856 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E858   Length              0005 (5)\n+70E85A   Flags               01 (1) 'Modification'\n+70E85B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E85F CENTRAL HEADER #1570  02014B50 (33639248)\n+70E863 Created Zip Spec      14 (20) '2.0'\n+70E864 Created OS            00 (0) 'MS-DOS'\n+70E865 Extract Zip Spec      14 (20) '2.0'\n+70E866 Extract OS            00 (0) 'MS-DOS'\n+70E867 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E869 Compression Method    0000 (0) 'Stored'\n+70E86B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E86F CRC                   78792D26 (2021207334)\n+70E873 Compressed Size       000006B5 (1717)\n+70E877 Uncompressed Size     000006B5 (1717)\n+70E87B Filename Length       003C (60)\n+70E87D Extra Length          0009 (9)\n+70E87F Comment Length        0000 (0)\n+70E881 Disk Start            0000 (0)\n+70E883 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E885 Ext File Attributes   00000000 (0)\n+70E889 Local Header Offset   0057BAB6 (5749430)\n+70E88D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E88D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E8C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E8CB   Length              0005 (5)\n+70E8CD   Flags               01 (1) 'Modification'\n+70E8CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E8D2 CENTRAL HEADER #1571  02014B50 (33639248)\n+70E8D6 Created Zip Spec      14 (20) '2.0'\n+70E8D7 Created OS            00 (0) 'MS-DOS'\n+70E8D8 Extract Zip Spec      14 (20) '2.0'\n+70E8D9 Extract OS            00 (0) 'MS-DOS'\n+70E8DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E8DC Compression Method    0000 (0) 'Stored'\n+70E8DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E8E2 CRC                   A9090E7C (2835943036)\n+70E8E6 Compressed Size       00000C45 (3141)\n+70E8EA Uncompressed Size     00000C45 (3141)\n+70E8EE Filename Length       0037 (55)\n+70E8F0 Extra Length          0009 (9)\n+70E8F2 Comment Length        0000 (0)\n+70E8F4 Disk Start            0000 (0)\n+70E8F6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E8F8 Ext File Attributes   00000000 (0)\n+70E8FC Local Header Offset   0057C1DE (5751262)\n+70E900 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E900: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E937 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E939   Length              0005 (5)\n+70E93B   Flags               01 (1) 'Modification'\n+70E93C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E940 CENTRAL HEADER #1572  02014B50 (33639248)\n+70E944 Created Zip Spec      14 (20) '2.0'\n+70E945 Created OS            00 (0) 'MS-DOS'\n+70E946 Extract Zip Spec      14 (20) '2.0'\n+70E947 Extract OS            00 (0) 'MS-DOS'\n+70E948 General Purpose Flag  0000 (0)\n+70E94A Compression Method    0000 (0) 'Stored'\n+70E94C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E950 CRC                   00000000 (0)\n+70E954 Compressed Size       00000000 (0)\n+70E958 Uncompressed Size     00000000 (0)\n+70E95C Filename Length       002A (42)\n+70E95E Extra Length          0009 (9)\n+70E960 Comment Length        0000 (0)\n+70E962 Disk Start            0000 (0)\n+70E964 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E966 Ext File Attributes   00000000 (0)\n+70E96A Local Header Offset   0057CE91 (5754513)\n+70E96E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E96E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70E998 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70E99A   Length              0005 (5)\n+70E99C   Flags               01 (1) 'Modification'\n+70E99D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70E9A1 CENTRAL HEADER #1573  02014B50 (33639248)\n+70E9A5 Created Zip Spec      14 (20) '2.0'\n+70E9A6 Created OS            00 (0) 'MS-DOS'\n+70E9A7 Extract Zip Spec      14 (20) '2.0'\n+70E9A8 Extract OS            00 (0) 'MS-DOS'\n+70E9A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70E9AB Compression Method    0000 (0) 'Stored'\n+70E9AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70E9B1 CRC                   101D85B9 (270370233)\n+70E9B5 Compressed Size       0000094B (2379)\n+70E9B9 Uncompressed Size     0000094B (2379)\n+70E9BD Filename Length       003B (59)\n+70E9BF Extra Length          0009 (9)\n+70E9C1 Comment Length        0000 (0)\n+70E9C3 Disk Start            0000 (0)\n+70E9C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70E9C7 Ext File Attributes   00000000 (0)\n+70E9CB Local Header Offset   0057CEE2 (5754594)\n+70E9CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70E9CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EA0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EA0C   Length              0005 (5)\n+70EA0E   Flags               01 (1) 'Modification'\n+70EA0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EA13 CENTRAL HEADER #1574  02014B50 (33639248)\n+70EA17 Created Zip Spec      14 (20) '2.0'\n+70EA18 Created OS            00 (0) 'MS-DOS'\n+70EA19 Extract Zip Spec      14 (20) '2.0'\n+70EA1A Extract OS            00 (0) 'MS-DOS'\n+70EA1B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EA1D Compression Method    0000 (0) 'Stored'\n+70EA1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EA23 CRC                   7EE6D15A (2129056090)\n+70EA27 Compressed Size       00000D5E (3422)\n+70EA2B Uncompressed Size     00000D5E (3422)\n+70EA2F Filename Length       003D (61)\n+70EA31 Extra Length          0009 (9)\n+70EA33 Comment Length        0000 (0)\n+70EA35 Disk Start            0000 (0)\n+70EA37 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EA39 Ext File Attributes   00000000 (0)\n+70EA3D Local Header Offset   0057D89F (5757087)\n+70EA41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EA41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EA7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EA80   Length              0005 (5)\n+70EA82   Flags               01 (1) 'Modification'\n+70EA83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EA87 CENTRAL HEADER #1575  02014B50 (33639248)\n+70EA8B Created Zip Spec      14 (20) '2.0'\n+70EA8C Created OS            00 (0) 'MS-DOS'\n+70EA8D Extract Zip Spec      14 (20) '2.0'\n+70EA8E Extract OS            00 (0) 'MS-DOS'\n+70EA8F General Purpose Flag  0000 (0)\n+70EA91 Compression Method    0000 (0) 'Stored'\n+70EA93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EA97 CRC                   00000000 (0)\n+70EA9B Compressed Size       00000000 (0)\n+70EA9F Uncompressed Size     00000000 (0)\n+70EAA3 Filename Length       002F (47)\n+70EAA5 Extra Length          0009 (9)\n+70EAA7 Comment Length        0000 (0)\n+70EAA9 Disk Start            0000 (0)\n+70EAAB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EAAD Ext File Attributes   00000000 (0)\n+70EAB1 Local Header Offset   0057E671 (5760625)\n+70EAB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EAB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EAE4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EAE6   Length              0005 (5)\n+70EAE8   Flags               01 (1) 'Modification'\n+70EAE9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EAED CENTRAL HEADER #1576  02014B50 (33639248)\n+70EAF1 Created Zip Spec      14 (20) '2.0'\n+70EAF2 Created OS            00 (0) 'MS-DOS'\n+70EAF3 Extract Zip Spec      14 (20) '2.0'\n+70EAF4 Extract OS            00 (0) 'MS-DOS'\n+70EAF5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EAF7 Compression Method    0000 (0) 'Stored'\n+70EAF9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EAFD CRC                   A053D891 (2689849489)\n+70EB01 Compressed Size       00001205 (4613)\n+70EB05 Uncompressed Size     00001205 (4613)\n+70EB09 Filename Length       0048 (72)\n+70EB0B Extra Length          0009 (9)\n+70EB0D Comment Length        0000 (0)\n+70EB0F Disk Start            0000 (0)\n+70EB11 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EB13 Ext File Attributes   00000000 (0)\n+70EB17 Local Header Offset   0057E6C7 (5760711)\n+70EB1B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EB1B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EB63 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EB65   Length              0005 (5)\n+70EB67   Flags               01 (1) 'Modification'\n+70EB68   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EB6C CENTRAL HEADER #1577  02014B50 (33639248)\n+70EB70 Created Zip Spec      14 (20) '2.0'\n+70EB71 Created OS            00 (0) 'MS-DOS'\n+70EB72 Extract Zip Spec      14 (20) '2.0'\n+70EB73 Extract OS            00 (0) 'MS-DOS'\n+70EB74 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EB76 Compression Method    0000 (0) 'Stored'\n+70EB78 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EB7C CRC                   F077FE2F (4034395695)\n+70EB80 Compressed Size       000007C3 (1987)\n+70EB84 Uncompressed Size     000007C3 (1987)\n+70EB88 Filename Length       0043 (67)\n+70EB8A Extra Length          0009 (9)\n+70EB8C Comment Length        0000 (0)\n+70EB8E Disk Start            0000 (0)\n+70EB90 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EB92 Ext File Attributes   00000000 (0)\n+70EB96 Local Header Offset   0057F94B (5765451)\n+70EB9A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EB9A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EBDD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EBDF   Length              0005 (5)\n+70EBE1   Flags               01 (1) 'Modification'\n+70EBE2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EBE6 CENTRAL HEADER #1578  02014B50 (33639248)\n+70EBEA Created Zip Spec      14 (20) '2.0'\n+70EBEB Created OS            00 (0) 'MS-DOS'\n+70EBEC Extract Zip Spec      14 (20) '2.0'\n+70EBED Extract OS            00 (0) 'MS-DOS'\n+70EBEE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EBF0 Compression Method    0000 (0) 'Stored'\n+70EBF2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EBF6 CRC                   1DD7EFDF (500690911)\n+70EBFA Compressed Size       0000154F (5455)\n+70EBFE Uncompressed Size     0000154F (5455)\n+70EC02 Filename Length       0049 (73)\n+70EC04 Extra Length          0009 (9)\n+70EC06 Comment Length        0000 (0)\n+70EC08 Disk Start            0000 (0)\n+70EC0A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EC0C Ext File Attributes   00000000 (0)\n+70EC10 Local Header Offset   00580188 (5767560)\n+70EC14 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EC14: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EC5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EC5F   Length              0005 (5)\n+70EC61   Flags               01 (1) 'Modification'\n+70EC62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EC66 CENTRAL HEADER #1579  02014B50 (33639248)\n+70EC6A Created Zip Spec      14 (20) '2.0'\n+70EC6B Created OS            00 (0) 'MS-DOS'\n+70EC6C Extract Zip Spec      14 (20) '2.0'\n+70EC6D Extract OS            00 (0) 'MS-DOS'\n+70EC6E General Purpose Flag  0000 (0)\n+70EC70 Compression Method    0000 (0) 'Stored'\n+70EC72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EC76 CRC                   00000000 (0)\n+70EC7A Compressed Size       00000000 (0)\n+70EC7E Uncompressed Size     00000000 (0)\n+70EC82 Filename Length       0033 (51)\n+70EC84 Extra Length          0009 (9)\n+70EC86 Comment Length        0000 (0)\n+70EC88 Disk Start            0000 (0)\n+70EC8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EC8C Ext File Attributes   00000000 (0)\n+70EC90 Local Header Offset   00581757 (5773143)\n+70EC94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EC94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70ECC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70ECC9   Length              0005 (5)\n+70ECCB   Flags               01 (1) 'Modification'\n+70ECCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70ECD0 CENTRAL HEADER #1580  02014B50 (33639248)\n+70ECD4 Created Zip Spec      14 (20) '2.0'\n+70ECD5 Created OS            00 (0) 'MS-DOS'\n+70ECD6 Extract Zip Spec      14 (20) '2.0'\n+70ECD7 Extract OS            00 (0) 'MS-DOS'\n+70ECD8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70ECDA Compression Method    0000 (0) 'Stored'\n+70ECDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70ECE0 CRC                   1909E1F3 (420078067)\n+70ECE4 Compressed Size       00000E69 (3689)\n+70ECE8 Uncompressed Size     00000E69 (3689)\n+70ECEC Filename Length       0049 (73)\n+70ECEE Extra Length          0009 (9)\n+70ECF0 Comment Length        0000 (0)\n+70ECF2 Disk Start            0000 (0)\n+70ECF4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70ECF6 Ext File Attributes   00000000 (0)\n+70ECFA Local Header Offset   005817B1 (5773233)\n+70ECFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70ECFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70ED47 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70ED49   Length              0005 (5)\n+70ED4B   Flags               01 (1) 'Modification'\n+70ED4C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70ED50 CENTRAL HEADER #1581  02014B50 (33639248)\n+70ED54 Created Zip Spec      14 (20) '2.0'\n+70ED55 Created OS            00 (0) 'MS-DOS'\n+70ED56 Extract Zip Spec      14 (20) '2.0'\n+70ED57 Extract OS            00 (0) 'MS-DOS'\n+70ED58 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70ED5A Compression Method    0000 (0) 'Stored'\n+70ED5C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70ED60 CRC                   40313D69 (1076968809)\n+70ED64 Compressed Size       00000521 (1313)\n+70ED68 Uncompressed Size     00000521 (1313)\n+70ED6C Filename Length       0045 (69)\n+70ED6E Extra Length          0009 (9)\n+70ED70 Comment Length        0000 (0)\n+70ED72 Disk Start            0000 (0)\n+70ED74 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70ED76 Ext File Attributes   00000000 (0)\n+70ED7A Local Header Offset   0058269A (5777050)\n+70ED7E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70ED7E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EDC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EDC5   Length              0005 (5)\n+70EDC7   Flags               01 (1) 'Modification'\n+70EDC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EDCC CENTRAL HEADER #1582  02014B50 (33639248)\n+70EDD0 Created Zip Spec      14 (20) '2.0'\n+70EDD1 Created OS            00 (0) 'MS-DOS'\n+70EDD2 Extract Zip Spec      14 (20) '2.0'\n+70EDD3 Extract OS            00 (0) 'MS-DOS'\n+70EDD4 General Purpose Flag  0000 (0)\n+70EDD6 Compression Method    0000 (0) 'Stored'\n+70EDD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EDDC CRC                   00000000 (0)\n+70EDE0 Compressed Size       00000000 (0)\n+70EDE4 Uncompressed Size     00000000 (0)\n+70EDE8 Filename Length       003A (58)\n+70EDEA Extra Length          0009 (9)\n+70EDEC Comment Length        0000 (0)\n+70EDEE Disk Start            0000 (0)\n+70EDF0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EDF2 Ext File Attributes   00000000 (0)\n+70EDF6 Local Header Offset   00582C37 (5778487)\n+70EDFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EDFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EE34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EE36   Length              0005 (5)\n+70EE38   Flags               01 (1) 'Modification'\n+70EE39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EE3D CENTRAL HEADER #1583  02014B50 (33639248)\n+70EE41 Created Zip Spec      14 (20) '2.0'\n+70EE42 Created OS            00 (0) 'MS-DOS'\n+70EE43 Extract Zip Spec      14 (20) '2.0'\n+70EE44 Extract OS            00 (0) 'MS-DOS'\n+70EE45 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EE47 Compression Method    0000 (0) 'Stored'\n+70EE49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EE4D CRC                   7D6D8264 (2104328804)\n+70EE51 Compressed Size       0000153E (5438)\n+70EE55 Uncompressed Size     0000153E (5438)\n+70EE59 Filename Length       005E (94)\n+70EE5B Extra Length          0009 (9)\n+70EE5D Comment Length        0000 (0)\n+70EE5F Disk Start            0000 (0)\n+70EE61 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EE63 Ext File Attributes   00000000 (0)\n+70EE67 Local Header Offset   00582C98 (5778584)\n+70EE6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EE6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EEC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EECB   Length              0005 (5)\n+70EECD   Flags               01 (1) 'Modification'\n+70EECE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EED2 CENTRAL HEADER #1584  02014B50 (33639248)\n+70EED6 Created Zip Spec      14 (20) '2.0'\n+70EED7 Created OS            00 (0) 'MS-DOS'\n+70EED8 Extract Zip Spec      14 (20) '2.0'\n+70EED9 Extract OS            00 (0) 'MS-DOS'\n+70EEDA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EEDC Compression Method    0000 (0) 'Stored'\n+70EEDE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EEE2 CRC                   5474BB92 (1416936338)\n+70EEE6 Compressed Size       00000551 (1361)\n+70EEEA Uncompressed Size     00000551 (1361)\n+70EEEE Filename Length       005A (90)\n+70EEF0 Extra Length          0009 (9)\n+70EEF2 Comment Length        0000 (0)\n+70EEF4 Disk Start            0000 (0)\n+70EEF6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EEF8 Ext File Attributes   00000000 (0)\n+70EEFC Local Header Offset   0058426B (5784171)\n+70EF00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EF00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EF5A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EF5C   Length              0005 (5)\n+70EF5E   Flags               01 (1) 'Modification'\n+70EF5F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EF63 CENTRAL HEADER #1585  02014B50 (33639248)\n+70EF67 Created Zip Spec      14 (20) '2.0'\n+70EF68 Created OS            00 (0) 'MS-DOS'\n+70EF69 Extract Zip Spec      14 (20) '2.0'\n+70EF6A Extract OS            00 (0) 'MS-DOS'\n+70EF6B General Purpose Flag  0000 (0)\n+70EF6D Compression Method    0000 (0) 'Stored'\n+70EF6F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EF73 CRC                   00000000 (0)\n+70EF77 Compressed Size       00000000 (0)\n+70EF7B Uncompressed Size     00000000 (0)\n+70EF7F Filename Length       0036 (54)\n+70EF81 Extra Length          0009 (9)\n+70EF83 Comment Length        0000 (0)\n+70EF85 Disk Start            0000 (0)\n+70EF87 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EF89 Ext File Attributes   00000000 (0)\n+70EF8D Local Header Offset   0058484D (5785677)\n+70EF91 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EF91: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70EFC7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70EFC9   Length              0005 (5)\n+70EFCB   Flags               01 (1) 'Modification'\n+70EFCC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70EFD0 CENTRAL HEADER #1586  02014B50 (33639248)\n+70EFD4 Created Zip Spec      14 (20) '2.0'\n+70EFD5 Created OS            00 (0) 'MS-DOS'\n+70EFD6 Extract Zip Spec      14 (20) '2.0'\n+70EFD7 Extract OS            00 (0) 'MS-DOS'\n+70EFD8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70EFDA Compression Method    0000 (0) 'Stored'\n+70EFDC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70EFE0 CRC                   F9C89211 (4190671377)\n+70EFE4 Compressed Size       000008E6 (2278)\n+70EFE8 Uncompressed Size     000008E6 (2278)\n+70EFEC Filename Length       004F (79)\n+70EFEE Extra Length          0009 (9)\n+70EFF0 Comment Length        0000 (0)\n+70EFF2 Disk Start            0000 (0)\n+70EFF4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70EFF6 Ext File Attributes   00000000 (0)\n+70EFFA Local Header Offset   005848AA (5785770)\n+70EFFE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70EFFE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F04D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F04F   Length              0005 (5)\n+70F051   Flags               01 (1) 'Modification'\n+70F052   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F056 CENTRAL HEADER #1587  02014B50 (33639248)\n+70F05A Created Zip Spec      14 (20) '2.0'\n+70F05B Created OS            00 (0) 'MS-DOS'\n+70F05C Extract Zip Spec      14 (20) '2.0'\n+70F05D Extract OS            00 (0) 'MS-DOS'\n+70F05E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F060 Compression Method    0000 (0) 'Stored'\n+70F062 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F066 CRC                   66FEA41B (1727964187)\n+70F06A Compressed Size       00000521 (1313)\n+70F06E Uncompressed Size     00000521 (1313)\n+70F072 Filename Length       004B (75)\n+70F074 Extra Length          0009 (9)\n+70F076 Comment Length        0000 (0)\n+70F078 Disk Start            0000 (0)\n+70F07A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F07C Ext File Attributes   00000000 (0)\n+70F080 Local Header Offset   00585216 (5788182)\n+70F084 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F084: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F0CF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F0D1   Length              0005 (5)\n+70F0D3   Flags               01 (1) 'Modification'\n+70F0D4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F0D8 CENTRAL HEADER #1588  02014B50 (33639248)\n+70F0DC Created Zip Spec      14 (20) '2.0'\n+70F0DD Created OS            00 (0) 'MS-DOS'\n+70F0DE Extract Zip Spec      14 (20) '2.0'\n+70F0DF Extract OS            00 (0) 'MS-DOS'\n+70F0E0 General Purpose Flag  0000 (0)\n+70F0E2 Compression Method    0000 (0) 'Stored'\n+70F0E4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F0E8 CRC                   00000000 (0)\n+70F0EC Compressed Size       00000000 (0)\n+70F0F0 Uncompressed Size     00000000 (0)\n+70F0F4 Filename Length       0039 (57)\n+70F0F6 Extra Length          0009 (9)\n+70F0F8 Comment Length        0000 (0)\n+70F0FA Disk Start            0000 (0)\n+70F0FC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F0FE Ext File Attributes   00000000 (0)\n+70F102 Local Header Offset   005857B9 (5789625)\n+70F106 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F106: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F13F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F141   Length              0005 (5)\n+70F143   Flags               01 (1) 'Modification'\n+70F144   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F148 CENTRAL HEADER #1589  02014B50 (33639248)\n+70F14C Created Zip Spec      14 (20) '2.0'\n+70F14D Created OS            00 (0) 'MS-DOS'\n+70F14E Extract Zip Spec      14 (20) '2.0'\n+70F14F Extract OS            00 (0) 'MS-DOS'\n+70F150 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F152 Compression Method    0000 (0) 'Stored'\n+70F154 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F158 CRC                   E83FE9D5 (3896502741)\n+70F15C Compressed Size       00000C8C (3212)\n+70F160 Uncompressed Size     00000C8C (3212)\n+70F164 Filename Length       0055 (85)\n+70F166 Extra Length          0009 (9)\n+70F168 Comment Length        0000 (0)\n+70F16A Disk Start            0000 (0)\n+70F16C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F16E Ext File Attributes   00000000 (0)\n+70F172 Local Header Offset   00585819 (5789721)\n+70F176 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F176: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F1CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F1CD   Length              0005 (5)\n+70F1CF   Flags               01 (1) 'Modification'\n+70F1D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F1D4 CENTRAL HEADER #1590  02014B50 (33639248)\n+70F1D8 Created Zip Spec      14 (20) '2.0'\n+70F1D9 Created OS            00 (0) 'MS-DOS'\n+70F1DA Extract Zip Spec      14 (20) '2.0'\n+70F1DB Extract OS            00 (0) 'MS-DOS'\n+70F1DC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F1DE Compression Method    0000 (0) 'Stored'\n+70F1E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F1E4 CRC                   DF933BA4 (3750968228)\n+70F1E8 Compressed Size       00000555 (1365)\n+70F1EC Uncompressed Size     00000555 (1365)\n+70F1F0 Filename Length       0051 (81)\n+70F1F2 Extra Length          0009 (9)\n+70F1F4 Comment Length        0000 (0)\n+70F1F6 Disk Start            0000 (0)\n+70F1F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F1FA Ext File Attributes   00000000 (0)\n+70F1FE Local Header Offset   00586531 (5793073)\n+70F202 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F202: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F253 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F255   Length              0005 (5)\n+70F257   Flags               01 (1) 'Modification'\n+70F258   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F25C CENTRAL HEADER #1591  02014B50 (33639248)\n+70F260 Created Zip Spec      14 (20) '2.0'\n+70F261 Created OS            00 (0) 'MS-DOS'\n+70F262 Extract Zip Spec      14 (20) '2.0'\n+70F263 Extract OS            00 (0) 'MS-DOS'\n+70F264 General Purpose Flag  0000 (0)\n+70F266 Compression Method    0000 (0) 'Stored'\n+70F268 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F26C CRC                   00000000 (0)\n+70F270 Compressed Size       00000000 (0)\n+70F274 Uncompressed Size     00000000 (0)\n+70F278 Filename Length       0037 (55)\n+70F27A Extra Length          0009 (9)\n+70F27C Comment Length        0000 (0)\n+70F27E Disk Start            0000 (0)\n+70F280 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F282 Ext File Attributes   00000000 (0)\n+70F286 Local Header Offset   00586B0E (5794574)\n+70F28A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F28A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F2C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F2C3   Length              0005 (5)\n+70F2C5   Flags               01 (1) 'Modification'\n+70F2C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F2CA CENTRAL HEADER #1592  02014B50 (33639248)\n+70F2CE Created Zip Spec      14 (20) '2.0'\n+70F2CF Created OS            00 (0) 'MS-DOS'\n+70F2D0 Extract Zip Spec      14 (20) '2.0'\n+70F2D1 Extract OS            00 (0) 'MS-DOS'\n+70F2D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F2D4 Compression Method    0000 (0) 'Stored'\n+70F2D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F2DA CRC                   9032EA6A (2419255914)\n+70F2DE Compressed Size       00000944 (2372)\n+70F2E2 Uncompressed Size     00000944 (2372)\n+70F2E6 Filename Length       0055 (85)\n+70F2E8 Extra Length          0009 (9)\n+70F2EA Comment Length        0000 (0)\n+70F2EC Disk Start            0000 (0)\n+70F2EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F2F0 Ext File Attributes   00000000 (0)\n+70F2F4 Local Header Offset   00586B6C (5794668)\n+70F2F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F2F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F34D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F34F   Length              0005 (5)\n+70F351   Flags               01 (1) 'Modification'\n+70F352   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F356 CENTRAL HEADER #1593  02014B50 (33639248)\n+70F35A Created Zip Spec      14 (20) '2.0'\n+70F35B Created OS            00 (0) 'MS-DOS'\n+70F35C Extract Zip Spec      14 (20) '2.0'\n+70F35D Extract OS            00 (0) 'MS-DOS'\n+70F35E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F360 Compression Method    0000 (0) 'Stored'\n+70F362 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F366 CRC                   897FB906 (2306849030)\n+70F36A Compressed Size       00000546 (1350)\n+70F36E Uncompressed Size     00000546 (1350)\n+70F372 Filename Length       0051 (81)\n+70F374 Extra Length          0009 (9)\n+70F376 Comment Length        0000 (0)\n+70F378 Disk Start            0000 (0)\n+70F37A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F37C Ext File Attributes   00000000 (0)\n+70F380 Local Header Offset   0058753C (5797180)\n+70F384 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F384: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F3D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F3D7   Length              0005 (5)\n+70F3D9   Flags               01 (1) 'Modification'\n+70F3DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F3DE CENTRAL HEADER #1594  02014B50 (33639248)\n+70F3E2 Created Zip Spec      14 (20) '2.0'\n+70F3E3 Created OS            00 (0) 'MS-DOS'\n+70F3E4 Extract Zip Spec      14 (20) '2.0'\n+70F3E5 Extract OS            00 (0) 'MS-DOS'\n+70F3E6 General Purpose Flag  0000 (0)\n+70F3E8 Compression Method    0000 (0) 'Stored'\n+70F3EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F3EE CRC                   00000000 (0)\n+70F3F2 Compressed Size       00000000 (0)\n+70F3F6 Uncompressed Size     00000000 (0)\n+70F3FA Filename Length       002C (44)\n+70F3FC Extra Length          0009 (9)\n+70F3FE Comment Length        0000 (0)\n+70F400 Disk Start            0000 (0)\n+70F402 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F404 Ext File Attributes   00000000 (0)\n+70F408 Local Header Offset   00587B0A (5798666)\n+70F40C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F40C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F438 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F43A   Length              0005 (5)\n+70F43C   Flags               01 (1) 'Modification'\n+70F43D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F441 CENTRAL HEADER #1595  02014B50 (33639248)\n+70F445 Created Zip Spec      14 (20) '2.0'\n+70F446 Created OS            00 (0) 'MS-DOS'\n+70F447 Extract Zip Spec      14 (20) '2.0'\n+70F448 Extract OS            00 (0) 'MS-DOS'\n+70F449 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F44B Compression Method    0000 (0) 'Stored'\n+70F44D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F451 CRC                   56951E3F (1452613183)\n+70F455 Compressed Size       0000197F (6527)\n+70F459 Uncompressed Size     0000197F (6527)\n+70F45D Filename Length       003F (63)\n+70F45F Extra Length          0009 (9)\n+70F461 Comment Length        0000 (0)\n+70F463 Disk Start            0000 (0)\n+70F465 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F467 Ext File Attributes   00000000 (0)\n+70F46B Local Header Offset   00587B5D (5798749)\n+70F46F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F46F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F4AE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F4B0   Length              0005 (5)\n+70F4B2   Flags               01 (1) 'Modification'\n+70F4B3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F4B7 CENTRAL HEADER #1596  02014B50 (33639248)\n+70F4BB Created Zip Spec      14 (20) '2.0'\n+70F4BC Created OS            00 (0) 'MS-DOS'\n+70F4BD Extract Zip Spec      14 (20) '2.0'\n+70F4BE Extract OS            00 (0) 'MS-DOS'\n+70F4BF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F4C1 Compression Method    0000 (0) 'Stored'\n+70F4C3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F4C7 CRC                   42023036 (1107439670)\n+70F4CB Compressed Size       000010C6 (4294)\n+70F4CF Uncompressed Size     000010C6 (4294)\n+70F4D3 Filename Length       003E (62)\n+70F4D5 Extra Length          0009 (9)\n+70F4D7 Comment Length        0000 (0)\n+70F4D9 Disk Start            0000 (0)\n+70F4DB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F4DD Ext File Attributes   00000000 (0)\n+70F4E1 Local Header Offset   00589552 (5805394)\n+70F4E5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F4E5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F523 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F525   Length              0005 (5)\n+70F527   Flags               01 (1) 'Modification'\n+70F528   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F52C CENTRAL HEADER #1597  02014B50 (33639248)\n+70F530 Created Zip Spec      14 (20) '2.0'\n+70F531 Created OS            00 (0) 'MS-DOS'\n+70F532 Extract Zip Spec      14 (20) '2.0'\n+70F533 Extract OS            00 (0) 'MS-DOS'\n+70F534 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F536 Compression Method    0000 (0) 'Stored'\n+70F538 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F53C CRC                   52180500 (1377305856)\n+70F540 Compressed Size       000017DE (6110)\n+70F544 Uncompressed Size     000017DE (6110)\n+70F548 Filename Length       0044 (68)\n+70F54A Extra Length          0009 (9)\n+70F54C Comment Length        0000 (0)\n+70F54E Disk Start            0000 (0)\n+70F550 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F552 Ext File Attributes   00000000 (0)\n+70F556 Local Header Offset   0058A68D (5809805)\n+70F55A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F55A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F59E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F5A0   Length              0005 (5)\n+70F5A2   Flags               01 (1) 'Modification'\n+70F5A3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F5A7 CENTRAL HEADER #1598  02014B50 (33639248)\n+70F5AB Created Zip Spec      14 (20) '2.0'\n+70F5AC Created OS            00 (0) 'MS-DOS'\n+70F5AD Extract Zip Spec      14 (20) '2.0'\n+70F5AE Extract OS            00 (0) 'MS-DOS'\n+70F5AF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F5B1 Compression Method    0000 (0) 'Stored'\n+70F5B3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F5B7 CRC                   EC29A626 (3962152486)\n+70F5BB Compressed Size       000011CA (4554)\n+70F5BF Uncompressed Size     000011CA (4554)\n+70F5C3 Filename Length       003F (63)\n+70F5C5 Extra Length          0009 (9)\n+70F5C7 Comment Length        0000 (0)\n+70F5C9 Disk Start            0000 (0)\n+70F5CB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F5CD Ext File Attributes   00000000 (0)\n+70F5D1 Local Header Offset   0058BEE6 (5816038)\n+70F5D5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F5D5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F614 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F616   Length              0005 (5)\n+70F618   Flags               01 (1) 'Modification'\n+70F619   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F61D CENTRAL HEADER #1599  02014B50 (33639248)\n+70F621 Created Zip Spec      14 (20) '2.0'\n+70F622 Created OS            00 (0) 'MS-DOS'\n+70F623 Extract Zip Spec      14 (20) '2.0'\n+70F624 Extract OS            00 (0) 'MS-DOS'\n+70F625 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F627 Compression Method    0000 (0) 'Stored'\n+70F629 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F62D CRC                   253B482C (624642092)\n+70F631 Compressed Size       000014A3 (5283)\n+70F635 Uncompressed Size     000014A3 (5283)\n+70F639 Filename Length       003E (62)\n+70F63B Extra Length          0009 (9)\n+70F63D Comment Length        0000 (0)\n+70F63F Disk Start            0000 (0)\n+70F641 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F643 Ext File Attributes   00000000 (0)\n+70F647 Local Header Offset   0058D126 (5820710)\n+70F64B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F64B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F689 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F68B   Length              0005 (5)\n+70F68D   Flags               01 (1) 'Modification'\n+70F68E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F692 CENTRAL HEADER #1600  02014B50 (33639248)\n+70F696 Created Zip Spec      14 (20) '2.0'\n+70F697 Created OS            00 (0) 'MS-DOS'\n+70F698 Extract Zip Spec      14 (20) '2.0'\n+70F699 Extract OS            00 (0) 'MS-DOS'\n+70F69A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F69C Compression Method    0000 (0) 'Stored'\n+70F69E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F6A2 CRC                   117073F8 (292582392)\n+70F6A6 Compressed Size       0000065C (1628)\n+70F6AA Uncompressed Size     0000065C (1628)\n+70F6AE Filename Length       0043 (67)\n+70F6B0 Extra Length          0009 (9)\n+70F6B2 Comment Length        0000 (0)\n+70F6B4 Disk Start            0000 (0)\n+70F6B6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F6B8 Ext File Attributes   00000000 (0)\n+70F6BC Local Header Offset   0058E63E (5826110)\n+70F6C0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F6C0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F703 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F705   Length              0005 (5)\n+70F707   Flags               01 (1) 'Modification'\n+70F708   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F70C CENTRAL HEADER #1601  02014B50 (33639248)\n+70F710 Created Zip Spec      14 (20) '2.0'\n+70F711 Created OS            00 (0) 'MS-DOS'\n+70F712 Extract Zip Spec      14 (20) '2.0'\n+70F713 Extract OS            00 (0) 'MS-DOS'\n+70F714 General Purpose Flag  0000 (0)\n+70F716 Compression Method    0000 (0) 'Stored'\n+70F718 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F71C CRC                   00000000 (0)\n+70F720 Compressed Size       00000000 (0)\n+70F724 Uncompressed Size     00000000 (0)\n+70F728 Filename Length       0029 (41)\n+70F72A Extra Length          0009 (9)\n+70F72C Comment Length        0000 (0)\n+70F72E Disk Start            0000 (0)\n+70F730 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F732 Ext File Attributes   00000000 (0)\n+70F736 Local Header Offset   0058ED14 (5827860)\n+70F73A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F73A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F763 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F765   Length              0005 (5)\n+70F767   Flags               01 (1) 'Modification'\n+70F768   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F76C CENTRAL HEADER #1602  02014B50 (33639248)\n+70F770 Created Zip Spec      14 (20) '2.0'\n+70F771 Created OS            00 (0) 'MS-DOS'\n+70F772 Extract Zip Spec      14 (20) '2.0'\n+70F773 Extract OS            00 (0) 'MS-DOS'\n+70F774 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F776 Compression Method    0000 (0) 'Stored'\n+70F778 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F77C CRC                   0EB2B1F5 (246591989)\n+70F780 Compressed Size       000017B3 (6067)\n+70F784 Uncompressed Size     000017B3 (6067)\n+70F788 Filename Length       0039 (57)\n+70F78A Extra Length          0009 (9)\n+70F78C Comment Length        0000 (0)\n+70F78E Disk Start            0000 (0)\n+70F790 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F792 Ext File Attributes   00000000 (0)\n+70F796 Local Header Offset   0058ED64 (5827940)\n+70F79A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F79A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F7D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F7D5   Length              0005 (5)\n+70F7D7   Flags               01 (1) 'Modification'\n+70F7D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F7DC CENTRAL HEADER #1603  02014B50 (33639248)\n+70F7E0 Created Zip Spec      14 (20) '2.0'\n+70F7E1 Created OS            00 (0) 'MS-DOS'\n+70F7E2 Extract Zip Spec      14 (20) '2.0'\n+70F7E3 Extract OS            00 (0) 'MS-DOS'\n+70F7E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F7E6 Compression Method    0000 (0) 'Stored'\n+70F7E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F7EC CRC                   B6BACA35 (3065694773)\n+70F7F0 Compressed Size       00001D98 (7576)\n+70F7F4 Uncompressed Size     00001D98 (7576)\n+70F7F8 Filename Length       0038 (56)\n+70F7FA Extra Length          0009 (9)\n+70F7FC Comment Length        0000 (0)\n+70F7FE Disk Start            0000 (0)\n+70F800 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F802 Ext File Attributes   00000000 (0)\n+70F806 Local Header Offset   00590587 (5834119)\n+70F80A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F80A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F842 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F844   Length              0005 (5)\n+70F846   Flags               01 (1) 'Modification'\n+70F847   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F84B CENTRAL HEADER #1604  02014B50 (33639248)\n+70F84F Created Zip Spec      14 (20) '2.0'\n+70F850 Created OS            00 (0) 'MS-DOS'\n+70F851 Extract Zip Spec      14 (20) '2.0'\n+70F852 Extract OS            00 (0) 'MS-DOS'\n+70F853 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F855 Compression Method    0000 (0) 'Stored'\n+70F857 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F85B CRC                   E154BEF4 (3780427508)\n+70F85F Compressed Size       0000187E (6270)\n+70F863 Uncompressed Size     0000187E (6270)\n+70F867 Filename Length       003E (62)\n+70F869 Extra Length          0009 (9)\n+70F86B Comment Length        0000 (0)\n+70F86D Disk Start            0000 (0)\n+70F86F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F871 Ext File Attributes   00000000 (0)\n+70F875 Local Header Offset   0059238E (5841806)\n+70F879 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F879: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F8B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F8B9   Length              0005 (5)\n+70F8BB   Flags               01 (1) 'Modification'\n+70F8BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F8C0 CENTRAL HEADER #1605  02014B50 (33639248)\n+70F8C4 Created Zip Spec      14 (20) '2.0'\n+70F8C5 Created OS            00 (0) 'MS-DOS'\n+70F8C6 Extract Zip Spec      14 (20) '2.0'\n+70F8C7 Extract OS            00 (0) 'MS-DOS'\n+70F8C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F8CA Compression Method    0000 (0) 'Stored'\n+70F8CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F8D0 CRC                   B2448F97 (2990837655)\n+70F8D4 Compressed Size       00000CB7 (3255)\n+70F8D8 Uncompressed Size     00000CB7 (3255)\n+70F8DC Filename Length       0039 (57)\n+70F8DE Extra Length          0009 (9)\n+70F8E0 Comment Length        0000 (0)\n+70F8E2 Disk Start            0000 (0)\n+70F8E4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F8E6 Ext File Attributes   00000000 (0)\n+70F8EA Local Header Offset   00593C81 (5848193)\n+70F8EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F8EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F927 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F929   Length              0005 (5)\n+70F92B   Flags               01 (1) 'Modification'\n+70F92C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F930 CENTRAL HEADER #1606  02014B50 (33639248)\n+70F934 Created Zip Spec      14 (20) '2.0'\n+70F935 Created OS            00 (0) 'MS-DOS'\n+70F936 Extract Zip Spec      14 (20) '2.0'\n+70F937 Extract OS            00 (0) 'MS-DOS'\n+70F938 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F93A Compression Method    0000 (0) 'Stored'\n+70F93C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F940 CRC                   A33A370C (2738501388)\n+70F944 Compressed Size       000010ED (4333)\n+70F948 Uncompressed Size     000010ED (4333)\n+70F94C Filename Length       0038 (56)\n+70F94E Extra Length          0009 (9)\n+70F950 Comment Length        0000 (0)\n+70F952 Disk Start            0000 (0)\n+70F954 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F956 Ext File Attributes   00000000 (0)\n+70F95A Local Header Offset   005949A8 (5851560)\n+70F95E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F95E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70F996 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70F998   Length              0005 (5)\n+70F99A   Flags               01 (1) 'Modification'\n+70F99B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70F99F CENTRAL HEADER #1607  02014B50 (33639248)\n+70F9A3 Created Zip Spec      14 (20) '2.0'\n+70F9A4 Created OS            00 (0) 'MS-DOS'\n+70F9A5 Extract Zip Spec      14 (20) '2.0'\n+70F9A6 Extract OS            00 (0) 'MS-DOS'\n+70F9A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70F9A9 Compression Method    0000 (0) 'Stored'\n+70F9AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70F9AF CRC                   242C94A2 (606901410)\n+70F9B3 Compressed Size       0000062C (1580)\n+70F9B7 Uncompressed Size     0000062C (1580)\n+70F9BB Filename Length       003D (61)\n+70F9BD Extra Length          0009 (9)\n+70F9BF Comment Length        0000 (0)\n+70F9C1 Disk Start            0000 (0)\n+70F9C3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70F9C5 Ext File Attributes   00000000 (0)\n+70F9C9 Local Header Offset   00595B04 (5856004)\n+70F9CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70F9CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FA0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FA0C   Length              0005 (5)\n+70FA0E   Flags               01 (1) 'Modification'\n+70FA0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FA13 CENTRAL HEADER #1608  02014B50 (33639248)\n+70FA17 Created Zip Spec      14 (20) '2.0'\n+70FA18 Created OS            00 (0) 'MS-DOS'\n+70FA19 Extract Zip Spec      14 (20) '2.0'\n+70FA1A Extract OS            00 (0) 'MS-DOS'\n+70FA1B General Purpose Flag  0000 (0)\n+70FA1D Compression Method    0000 (0) 'Stored'\n+70FA1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FA23 CRC                   00000000 (0)\n+70FA27 Compressed Size       00000000 (0)\n+70FA2B Uncompressed Size     00000000 (0)\n+70FA2F Filename Length       002A (42)\n+70FA31 Extra Length          0009 (9)\n+70FA33 Comment Length        0000 (0)\n+70FA35 Disk Start            0000 (0)\n+70FA37 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FA39 Ext File Attributes   00000000 (0)\n+70FA3D Local Header Offset   005961A4 (5857700)\n+70FA41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FA41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FA6B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FA6D   Length              0005 (5)\n+70FA6F   Flags               01 (1) 'Modification'\n+70FA70   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FA74 CENTRAL HEADER #1609  02014B50 (33639248)\n+70FA78 Created Zip Spec      14 (20) '2.0'\n+70FA79 Created OS            00 (0) 'MS-DOS'\n+70FA7A Extract Zip Spec      14 (20) '2.0'\n+70FA7B Extract OS            00 (0) 'MS-DOS'\n+70FA7C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FA7E Compression Method    0000 (0) 'Stored'\n+70FA80 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FA84 CRC                   9FEC08A1 (2683046049)\n+70FA88 Compressed Size       0000287C (10364)\n+70FA8C Uncompressed Size     0000287C (10364)\n+70FA90 Filename Length       0047 (71)\n+70FA92 Extra Length          0009 (9)\n+70FA94 Comment Length        0000 (0)\n+70FA96 Disk Start            0000 (0)\n+70FA98 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FA9A Ext File Attributes   00000000 (0)\n+70FA9E Local Header Offset   005961F5 (5857781)\n+70FAA2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FAA2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FAE9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FAEB   Length              0005 (5)\n+70FAED   Flags               01 (1) 'Modification'\n+70FAEE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FAF2 CENTRAL HEADER #1610  02014B50 (33639248)\n+70FAF6 Created Zip Spec      14 (20) '2.0'\n+70FAF7 Created OS            00 (0) 'MS-DOS'\n+70FAF8 Extract Zip Spec      14 (20) '2.0'\n+70FAF9 Extract OS            00 (0) 'MS-DOS'\n+70FAFA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FAFC Compression Method    0000 (0) 'Stored'\n+70FAFE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FB02 CRC                   399B609C (966484124)\n+70FB06 Compressed Size       000007FB (2043)\n+70FB0A Uncompressed Size     000007FB (2043)\n+70FB0E Filename Length       004E (78)\n+70FB10 Extra Length          0009 (9)\n+70FB12 Comment Length        0000 (0)\n+70FB14 Disk Start            0000 (0)\n+70FB16 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FB18 Ext File Attributes   00000000 (0)\n+70FB1C Local Header Offset   00598AEF (5868271)\n+70FB20 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FB20: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FB6E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FB70   Length              0005 (5)\n+70FB72   Flags               01 (1) 'Modification'\n+70FB73   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FB77 CENTRAL HEADER #1611  02014B50 (33639248)\n+70FB7B Created Zip Spec      14 (20) '2.0'\n+70FB7C Created OS            00 (0) 'MS-DOS'\n+70FB7D Extract Zip Spec      14 (20) '2.0'\n+70FB7E Extract OS            00 (0) 'MS-DOS'\n+70FB7F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FB81 Compression Method    0000 (0) 'Stored'\n+70FB83 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FB87 CRC                   9371F11F (2473718047)\n+70FB8B Compressed Size       00001B9D (7069)\n+70FB8F Uncompressed Size     00001B9D (7069)\n+70FB93 Filename Length       003B (59)\n+70FB95 Extra Length          0009 (9)\n+70FB97 Comment Length        0000 (0)\n+70FB99 Disk Start            0000 (0)\n+70FB9B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FB9D Ext File Attributes   00000000 (0)\n+70FBA1 Local Header Offset   0059936F (5870447)\n+70FBA5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FBA5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FBE0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FBE2   Length              0005 (5)\n+70FBE4   Flags               01 (1) 'Modification'\n+70FBE5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FBE9 CENTRAL HEADER #1612  02014B50 (33639248)\n+70FBED Created Zip Spec      14 (20) '2.0'\n+70FBEE Created OS            00 (0) 'MS-DOS'\n+70FBEF Extract Zip Spec      14 (20) '2.0'\n+70FBF0 Extract OS            00 (0) 'MS-DOS'\n+70FBF1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FBF3 Compression Method    0000 (0) 'Stored'\n+70FBF5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FBF9 CRC                   79FA59C0 (2046450112)\n+70FBFD Compressed Size       00001CDC (7388)\n+70FC01 Uncompressed Size     00001CDC (7388)\n+70FC05 Filename Length       003A (58)\n+70FC07 Extra Length          0009 (9)\n+70FC09 Comment Length        0000 (0)\n+70FC0B Disk Start            0000 (0)\n+70FC0D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FC0F Ext File Attributes   00000000 (0)\n+70FC13 Local Header Offset   0059AF7E (5877630)\n+70FC17 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FC17: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FC51 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FC53   Length              0005 (5)\n+70FC55   Flags               01 (1) 'Modification'\n+70FC56   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FC5A CENTRAL HEADER #1613  02014B50 (33639248)\n+70FC5E Created Zip Spec      14 (20) '2.0'\n+70FC5F Created OS            00 (0) 'MS-DOS'\n+70FC60 Extract Zip Spec      14 (20) '2.0'\n+70FC61 Extract OS            00 (0) 'MS-DOS'\n+70FC62 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FC64 Compression Method    0000 (0) 'Stored'\n+70FC66 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FC6A CRC                   EF9DBA26 (4020091430)\n+70FC6E Compressed Size       00001B24 (6948)\n+70FC72 Uncompressed Size     00001B24 (6948)\n+70FC76 Filename Length       0040 (64)\n+70FC78 Extra Length          0009 (9)\n+70FC7A Comment Length        0000 (0)\n+70FC7C Disk Start            0000 (0)\n+70FC7E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FC80 Ext File Attributes   00000000 (0)\n+70FC84 Local Header Offset   0059CCCB (5885131)\n+70FC88 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FC88: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FCC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FCCA   Length              0005 (5)\n+70FCCC   Flags               01 (1) 'Modification'\n+70FCCD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FCD1 CENTRAL HEADER #1614  02014B50 (33639248)\n+70FCD5 Created Zip Spec      14 (20) '2.0'\n+70FCD6 Created OS            00 (0) 'MS-DOS'\n+70FCD7 Extract Zip Spec      14 (20) '2.0'\n+70FCD8 Extract OS            00 (0) 'MS-DOS'\n+70FCD9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FCDB Compression Method    0000 (0) 'Stored'\n+70FCDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FCE1 CRC                   A0D2AF4F (2698161999)\n+70FCE5 Compressed Size       00001399 (5017)\n+70FCE9 Uncompressed Size     00001399 (5017)\n+70FCED Filename Length       003B (59)\n+70FCEF Extra Length          0009 (9)\n+70FCF1 Comment Length        0000 (0)\n+70FCF3 Disk Start            0000 (0)\n+70FCF5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FCF7 Ext File Attributes   00000000 (0)\n+70FCFB Local Header Offset   0059E866 (5892198)\n+70FCFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FCFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FD3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FD3C   Length              0005 (5)\n+70FD3E   Flags               01 (1) 'Modification'\n+70FD3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FD43 CENTRAL HEADER #1615  02014B50 (33639248)\n+70FD47 Created Zip Spec      14 (20) '2.0'\n+70FD48 Created OS            00 (0) 'MS-DOS'\n+70FD49 Extract Zip Spec      14 (20) '2.0'\n+70FD4A Extract OS            00 (0) 'MS-DOS'\n+70FD4B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FD4D Compression Method    0000 (0) 'Stored'\n+70FD4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FD53 CRC                   79ACCC49 (2041367625)\n+70FD57 Compressed Size       00000D46 (3398)\n+70FD5B Uncompressed Size     00000D46 (3398)\n+70FD5F Filename Length       003A (58)\n+70FD61 Extra Length          0009 (9)\n+70FD63 Comment Length        0000 (0)\n+70FD65 Disk Start            0000 (0)\n+70FD67 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FD69 Ext File Attributes   00000000 (0)\n+70FD6D Local Header Offset   0059FC71 (5897329)\n+70FD71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FD71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FDAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FDAD   Length              0005 (5)\n+70FDAF   Flags               01 (1) 'Modification'\n+70FDB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FDB4 CENTRAL HEADER #1616  02014B50 (33639248)\n+70FDB8 Created Zip Spec      14 (20) '2.0'\n+70FDB9 Created OS            00 (0) 'MS-DOS'\n+70FDBA Extract Zip Spec      14 (20) '2.0'\n+70FDBB Extract OS            00 (0) 'MS-DOS'\n+70FDBC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FDBE Compression Method    0000 (0) 'Stored'\n+70FDC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FDC4 CRC                   E768197F (3882359167)\n+70FDC8 Compressed Size       00001A69 (6761)\n+70FDCC Uncompressed Size     00001A69 (6761)\n+70FDD0 Filename Length       003A (58)\n+70FDD2 Extra Length          0009 (9)\n+70FDD4 Comment Length        0000 (0)\n+70FDD6 Disk Start            0000 (0)\n+70FDD8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FDDA Ext File Attributes   00000000 (0)\n+70FDDE Local Header Offset   005A0A28 (5900840)\n+70FDE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FDE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FE1C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FE1E   Length              0005 (5)\n+70FE20   Flags               01 (1) 'Modification'\n+70FE21   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FE25 CENTRAL HEADER #1617  02014B50 (33639248)\n+70FE29 Created Zip Spec      14 (20) '2.0'\n+70FE2A Created OS            00 (0) 'MS-DOS'\n+70FE2B Extract Zip Spec      14 (20) '2.0'\n+70FE2C Extract OS            00 (0) 'MS-DOS'\n+70FE2D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FE2F Compression Method    0000 (0) 'Stored'\n+70FE31 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FE35 CRC                   010536C2 (17118914)\n+70FE39 Compressed Size       00000632 (1586)\n+70FE3D Uncompressed Size     00000632 (1586)\n+70FE41 Filename Length       003F (63)\n+70FE43 Extra Length          0009 (9)\n+70FE45 Comment Length        0000 (0)\n+70FE47 Disk Start            0000 (0)\n+70FE49 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FE4B Ext File Attributes   00000000 (0)\n+70FE4F Local Header Offset   005A2502 (5907714)\n+70FE53 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FE53: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FE92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FE94   Length              0005 (5)\n+70FE96   Flags               01 (1) 'Modification'\n+70FE97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FE9B CENTRAL HEADER #1618  02014B50 (33639248)\n+70FE9F Created Zip Spec      14 (20) '2.0'\n+70FEA0 Created OS            00 (0) 'MS-DOS'\n+70FEA1 Extract Zip Spec      14 (20) '2.0'\n+70FEA2 Extract OS            00 (0) 'MS-DOS'\n+70FEA3 General Purpose Flag  0000 (0)\n+70FEA5 Compression Method    0000 (0) 'Stored'\n+70FEA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FEAB CRC                   00000000 (0)\n+70FEAF Compressed Size       00000000 (0)\n+70FEB3 Uncompressed Size     00000000 (0)\n+70FEB7 Filename Length       002B (43)\n+70FEB9 Extra Length          0009 (9)\n+70FEBB Comment Length        0000 (0)\n+70FEBD Disk Start            0000 (0)\n+70FEBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FEC1 Ext File Attributes   00000000 (0)\n+70FEC5 Local Header Offset   005A2BAA (5909418)\n+70FEC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FEC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FEF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FEF6   Length              0005 (5)\n+70FEF8   Flags               01 (1) 'Modification'\n+70FEF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FEFD CENTRAL HEADER #1619  02014B50 (33639248)\n+70FF01 Created Zip Spec      14 (20) '2.0'\n+70FF02 Created OS            00 (0) 'MS-DOS'\n+70FF03 Extract Zip Spec      14 (20) '2.0'\n+70FF04 Extract OS            00 (0) 'MS-DOS'\n+70FF05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FF07 Compression Method    0000 (0) 'Stored'\n+70FF09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FF0D CRC                   73E7CE8A (1944571530)\n+70FF11 Compressed Size       000027E6 (10214)\n+70FF15 Uncompressed Size     000027E6 (10214)\n+70FF19 Filename Length       0048 (72)\n+70FF1B Extra Length          0009 (9)\n+70FF1D Comment Length        0000 (0)\n+70FF1F Disk Start            0000 (0)\n+70FF21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FF23 Ext File Attributes   00000000 (0)\n+70FF27 Local Header Offset   005A2BFC (5909500)\n+70FF2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FF2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FF73 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FF75   Length              0005 (5)\n+70FF77   Flags               01 (1) 'Modification'\n+70FF78   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FF7C CENTRAL HEADER #1620  02014B50 (33639248)\n+70FF80 Created Zip Spec      14 (20) '2.0'\n+70FF81 Created OS            00 (0) 'MS-DOS'\n+70FF82 Extract Zip Spec      14 (20) '2.0'\n+70FF83 Extract OS            00 (0) 'MS-DOS'\n+70FF84 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FF86 Compression Method    0000 (0) 'Stored'\n+70FF88 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FF8C CRC                   EADF50E0 (3940503776)\n+70FF90 Compressed Size       00002355 (9045)\n+70FF94 Uncompressed Size     00002355 (9045)\n+70FF98 Filename Length       003C (60)\n+70FF9A Extra Length          0009 (9)\n+70FF9C Comment Length        0000 (0)\n+70FF9E Disk Start            0000 (0)\n+70FFA0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+70FFA2 Ext File Attributes   00000000 (0)\n+70FFA6 Local Header Offset   005A5461 (5919841)\n+70FFAA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x70FFAA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+70FFE6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+70FFE8   Length              0005 (5)\n+70FFEA   Flags               01 (1) 'Modification'\n+70FFEB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+70FFEF CENTRAL HEADER #1621  02014B50 (33639248)\n+70FFF3 Created Zip Spec      14 (20) '2.0'\n+70FFF4 Created OS            00 (0) 'MS-DOS'\n+70FFF5 Extract Zip Spec      14 (20) '2.0'\n+70FFF6 Extract OS            00 (0) 'MS-DOS'\n+70FFF7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+70FFF9 Compression Method    0000 (0) 'Stored'\n+70FFFB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+70FFFF CRC                   1CB2BCAF (481475759)\n+710003 Compressed Size       0000251F (9503)\n+710007 Uncompressed Size     0000251F (9503)\n+71000B Filename Length       003B (59)\n+71000D Extra Length          0009 (9)\n+71000F Comment Length        0000 (0)\n+710011 Disk Start            0000 (0)\n+710013 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710015 Ext File Attributes   00000000 (0)\n+710019 Local Header Offset   005A7829 (5929001)\n+71001D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71001D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710058 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71005A   Length              0005 (5)\n+71005C   Flags               01 (1) 'Modification'\n+71005D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710061 CENTRAL HEADER #1622  02014B50 (33639248)\n+710065 Created Zip Spec      14 (20) '2.0'\n+710066 Created OS            00 (0) 'MS-DOS'\n+710067 Extract Zip Spec      14 (20) '2.0'\n+710068 Extract OS            00 (0) 'MS-DOS'\n+710069 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71006B Compression Method    0000 (0) 'Stored'\n+71006D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710071 CRC                   7DE2A421 (2112005153)\n+710075 Compressed Size       0000190A (6410)\n+710079 Uncompressed Size     0000190A (6410)\n+71007D Filename Length       0042 (66)\n+71007F Extra Length          0009 (9)\n+710081 Comment Length        0000 (0)\n+710083 Disk Start            0000 (0)\n+710085 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710087 Ext File Attributes   00000000 (0)\n+71008B Local Header Offset   005A9DBA (5938618)\n+71008F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71008F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7100D1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7100D3   Length              0005 (5)\n+7100D5   Flags               01 (1) 'Modification'\n+7100D6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7100DA CENTRAL HEADER #1623  02014B50 (33639248)\n+7100DE Created Zip Spec      14 (20) '2.0'\n+7100DF Created OS            00 (0) 'MS-DOS'\n+7100E0 Extract Zip Spec      14 (20) '2.0'\n+7100E1 Extract OS            00 (0) 'MS-DOS'\n+7100E2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7100E4 Compression Method    0000 (0) 'Stored'\n+7100E6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7100EA CRC                   3BA2E25A (1000530522)\n+7100EE Compressed Size       00000E40 (3648)\n+7100F2 Uncompressed Size     00000E40 (3648)\n+7100F6 Filename Length       0041 (65)\n+7100F8 Extra Length          0009 (9)\n+7100FA Comment Length        0000 (0)\n+7100FC Disk Start            0000 (0)\n+7100FE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710100 Ext File Attributes   00000000 (0)\n+710104 Local Header Offset   005AB73D (5945149)\n+710108 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710108: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710149 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71014B   Length              0005 (5)\n+71014D   Flags               01 (1) 'Modification'\n+71014E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710152 CENTRAL HEADER #1624  02014B50 (33639248)\n+710156 Created Zip Spec      14 (20) '2.0'\n+710157 Created OS            00 (0) 'MS-DOS'\n+710158 Extract Zip Spec      14 (20) '2.0'\n+710159 Extract OS            00 (0) 'MS-DOS'\n+71015A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71015C Compression Method    0000 (0) 'Stored'\n+71015E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710162 CRC                   1E5B2A86 (509291142)\n+710166 Compressed Size       00000A9A (2714)\n+71016A Uncompressed Size     00000A9A (2714)\n+71016E Filename Length       0045 (69)\n+710170 Extra Length          0009 (9)\n+710172 Comment Length        0000 (0)\n+710174 Disk Start            0000 (0)\n+710176 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710178 Ext File Attributes   00000000 (0)\n+71017C Local Header Offset   005AC5F5 (5948917)\n+710180 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710180: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7101C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7101C7   Length              0005 (5)\n+7101C9   Flags               01 (1) 'Modification'\n+7101CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7101CE CENTRAL HEADER #1625  02014B50 (33639248)\n+7101D2 Created Zip Spec      14 (20) '2.0'\n+7101D3 Created OS            00 (0) 'MS-DOS'\n+7101D4 Extract Zip Spec      14 (20) '2.0'\n+7101D5 Extract OS            00 (0) 'MS-DOS'\n+7101D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7101D8 Compression Method    0000 (0) 'Stored'\n+7101DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7101DE CRC                   1CDD10AA (484249770)\n+7101E2 Compressed Size       00001FCD (8141)\n+7101E6 Uncompressed Size     00001FCD (8141)\n+7101EA Filename Length       003B (59)\n+7101EC Extra Length          0009 (9)\n+7101EE Comment Length        0000 (0)\n+7101F0 Disk Start            0000 (0)\n+7101F2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7101F4 Ext File Attributes   00000000 (0)\n+7101F8 Local Header Offset   005AD10B (5951755)\n+7101FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7101FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710237 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710239   Length              0005 (5)\n+71023B   Flags               01 (1) 'Modification'\n+71023C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710240 CENTRAL HEADER #1626  02014B50 (33639248)\n+710244 Created Zip Spec      14 (20) '2.0'\n+710245 Created OS            00 (0) 'MS-DOS'\n+710246 Extract Zip Spec      14 (20) '2.0'\n+710247 Extract OS            00 (0) 'MS-DOS'\n+710248 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71024A Compression Method    0000 (0) 'Stored'\n+71024C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710250 CRC                   52A8EAC6 (1386801862)\n+710254 Compressed Size       00001505 (5381)\n+710258 Uncompressed Size     00001505 (5381)\n+71025C Filename Length       0042 (66)\n+71025E Extra Length          0009 (9)\n+710260 Comment Length        0000 (0)\n+710262 Disk Start            0000 (0)\n+710264 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710266 Ext File Attributes   00000000 (0)\n+71026A Local Header Offset   005AF14A (5960010)\n+71026E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71026E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7102B0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7102B2   Length              0005 (5)\n+7102B4   Flags               01 (1) 'Modification'\n+7102B5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7102B9 CENTRAL HEADER #1627  02014B50 (33639248)\n+7102BD Created Zip Spec      14 (20) '2.0'\n+7102BE Created OS            00 (0) 'MS-DOS'\n+7102BF Extract Zip Spec      14 (20) '2.0'\n+7102C0 Extract OS            00 (0) 'MS-DOS'\n+7102C1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7102C3 Compression Method    0000 (0) 'Stored'\n+7102C5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7102C9 CRC                   1AC58108 (449151240)\n+7102CD Compressed Size       00000679 (1657)\n+7102D1 Uncompressed Size     00000679 (1657)\n+7102D5 Filename Length       0040 (64)\n+7102D7 Extra Length          0009 (9)\n+7102D9 Comment Length        0000 (0)\n+7102DB Disk Start            0000 (0)\n+7102DD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7102DF Ext File Attributes   00000000 (0)\n+7102E3 Local Header Offset   005B06C8 (5965512)\n+7102E7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7102E7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710327 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710329   Length              0005 (5)\n+71032B   Flags               01 (1) 'Modification'\n+71032C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710330 CENTRAL HEADER #1628  02014B50 (33639248)\n+710334 Created Zip Spec      14 (20) '2.0'\n+710335 Created OS            00 (0) 'MS-DOS'\n+710336 Extract Zip Spec      14 (20) '2.0'\n+710337 Extract OS            00 (0) 'MS-DOS'\n+710338 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71033A Compression Method    0000 (0) 'Stored'\n+71033C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710340 CRC                   377C624A (930898506)\n+710344 Compressed Size       00001627 (5671)\n+710348 Uncompressed Size     00001627 (5671)\n+71034C Filename Length       003B (59)\n+71034E Extra Length          0009 (9)\n+710350 Comment Length        0000 (0)\n+710352 Disk Start            0000 (0)\n+710354 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710356 Ext File Attributes   00000000 (0)\n+71035A Local Header Offset   005B0DB8 (5967288)\n+71035E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71035E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710399 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71039B   Length              0005 (5)\n+71039D   Flags               01 (1) 'Modification'\n+71039E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7103A2 CENTRAL HEADER #1629  02014B50 (33639248)\n+7103A6 Created Zip Spec      14 (20) '2.0'\n+7103A7 Created OS            00 (0) 'MS-DOS'\n+7103A8 Extract Zip Spec      14 (20) '2.0'\n+7103A9 Extract OS            00 (0) 'MS-DOS'\n+7103AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7103AC Compression Method    0000 (0) 'Stored'\n+7103AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7103B2 CRC                   37334079 (926105721)\n+7103B6 Compressed Size       00001758 (5976)\n+7103BA Uncompressed Size     00001758 (5976)\n+7103BE Filename Length       0045 (69)\n+7103C0 Extra Length          0009 (9)\n+7103C2 Comment Length        0000 (0)\n+7103C4 Disk Start            0000 (0)\n+7103C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7103C8 Ext File Attributes   00000000 (0)\n+7103CC Local Header Offset   005B2451 (5973073)\n+7103D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7103D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710415 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710417   Length              0005 (5)\n+710419   Flags               01 (1) 'Modification'\n+71041A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71041E CENTRAL HEADER #1630  02014B50 (33639248)\n+710422 Created Zip Spec      14 (20) '2.0'\n+710423 Created OS            00 (0) 'MS-DOS'\n+710424 Extract Zip Spec      14 (20) '2.0'\n+710425 Extract OS            00 (0) 'MS-DOS'\n+710426 General Purpose Flag  0000 (0)\n+710428 Compression Method    0000 (0) 'Stored'\n+71042A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71042E CRC                   00000000 (0)\n+710432 Compressed Size       00000000 (0)\n+710436 Uncompressed Size     00000000 (0)\n+71043A Filename Length       0033 (51)\n+71043C Extra Length          0009 (9)\n+71043E Comment Length        0000 (0)\n+710440 Disk Start            0000 (0)\n+710442 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710444 Ext File Attributes   00000000 (0)\n+710448 Local Header Offset   005B3C25 (5979173)\n+71044C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71044C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71047F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710481   Length              0005 (5)\n+710483   Flags               01 (1) 'Modification'\n+710484   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710488 CENTRAL HEADER #1631  02014B50 (33639248)\n+71048C Created Zip Spec      14 (20) '2.0'\n+71048D Created OS            00 (0) 'MS-DOS'\n+71048E Extract Zip Spec      14 (20) '2.0'\n+71048F Extract OS            00 (0) 'MS-DOS'\n+710490 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710492 Compression Method    0000 (0) 'Stored'\n+710494 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710498 CRC                   58FEAB57 (1493085015)\n+71049C Compressed Size       000008C3 (2243)\n+7104A0 Uncompressed Size     000008C3 (2243)\n+7104A4 Filename Length       0047 (71)\n+7104A6 Extra Length          0009 (9)\n+7104A8 Comment Length        0000 (0)\n+7104AA Disk Start            0000 (0)\n+7104AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7104AE Ext File Attributes   00000000 (0)\n+7104B2 Local Header Offset   005B3C7F (5979263)\n+7104B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7104B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7104FD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7104FF   Length              0005 (5)\n+710501   Flags               01 (1) 'Modification'\n+710502   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710506 CENTRAL HEADER #1632  02014B50 (33639248)\n+71050A Created Zip Spec      14 (20) '2.0'\n+71050B Created OS            00 (0) 'MS-DOS'\n+71050C Extract Zip Spec      14 (20) '2.0'\n+71050D Extract OS            00 (0) 'MS-DOS'\n+71050E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710510 Compression Method    0000 (0) 'Stored'\n+710512 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710516 CRC                   A355BCB4 (2740305076)\n+71051A Compressed Size       00003AB8 (15032)\n+71051E Uncompressed Size     00003AB8 (15032)\n+710522 Filename Length       0048 (72)\n+710524 Extra Length          0009 (9)\n+710526 Comment Length        0000 (0)\n+710528 Disk Start            0000 (0)\n+71052A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71052C Ext File Attributes   00000000 (0)\n+710530 Local Header Offset   005B45C0 (5981632)\n+710534 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710534: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71057C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71057E   Length              0005 (5)\n+710580   Flags               01 (1) 'Modification'\n+710581   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710585 CENTRAL HEADER #1633  02014B50 (33639248)\n+710589 Created Zip Spec      14 (20) '2.0'\n+71058A Created OS            00 (0) 'MS-DOS'\n+71058B Extract Zip Spec      14 (20) '2.0'\n+71058C Extract OS            00 (0) 'MS-DOS'\n+71058D General Purpose Flag  0000 (0)\n+71058F Compression Method    0000 (0) 'Stored'\n+710591 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710595 CRC                   00000000 (0)\n+710599 Compressed Size       00000000 (0)\n+71059D Uncompressed Size     00000000 (0)\n+7105A1 Filename Length       0020 (32)\n+7105A3 Extra Length          0009 (9)\n+7105A5 Comment Length        0000 (0)\n+7105A7 Disk Start            0000 (0)\n+7105A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7105AB Ext File Attributes   00000000 (0)\n+7105AF Local Header Offset   005B80F7 (5996791)\n+7105B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7105B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7105D3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7105D5   Length              0005 (5)\n+7105D7   Flags               01 (1) 'Modification'\n+7105D8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7105DC CENTRAL HEADER #1634  02014B50 (33639248)\n+7105E0 Created Zip Spec      14 (20) '2.0'\n+7105E1 Created OS            00 (0) 'MS-DOS'\n+7105E2 Extract Zip Spec      14 (20) '2.0'\n+7105E3 Extract OS            00 (0) 'MS-DOS'\n+7105E4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7105E6 Compression Method    0000 (0) 'Stored'\n+7105E8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7105EC CRC                   C50A75E6 (3305797094)\n+7105F0 Compressed Size       00000738 (1848)\n+7105F4 Uncompressed Size     00000738 (1848)\n+7105F8 Filename Length       0033 (51)\n+7105FA Extra Length          0009 (9)\n+7105FC Comment Length        0000 (0)\n+7105FE Disk Start            0000 (0)\n+710600 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710602 Ext File Attributes   00000000 (0)\n+710606 Local Header Offset   005B813E (5996862)\n+71060A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71060A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71063D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71063F   Length              0005 (5)\n+710641   Flags               01 (1) 'Modification'\n+710642   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710646 CENTRAL HEADER #1635  02014B50 (33639248)\n+71064A Created Zip Spec      14 (20) '2.0'\n+71064B Created OS            00 (0) 'MS-DOS'\n+71064C Extract Zip Spec      14 (20) '2.0'\n+71064D Extract OS            00 (0) 'MS-DOS'\n+71064E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710650 Compression Method    0000 (0) 'Stored'\n+710652 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710656 CRC                   7B898F0A (2072612618)\n+71065A Compressed Size       00000633 (1587)\n+71065E Uncompressed Size     00000633 (1587)\n+710662 Filename Length       002D (45)\n+710664 Extra Length          0009 (9)\n+710666 Comment Length        0000 (0)\n+710668 Disk Start            0000 (0)\n+71066A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71066C Ext File Attributes   00000000 (0)\n+710670 Local Header Offset   005B88E0 (5998816)\n+710674 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710674: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7106A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7106A3   Length              0005 (5)\n+7106A5   Flags               01 (1) 'Modification'\n+7106A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7106AA CENTRAL HEADER #1636  02014B50 (33639248)\n+7106AE Created Zip Spec      14 (20) '2.0'\n+7106AF Created OS            00 (0) 'MS-DOS'\n+7106B0 Extract Zip Spec      14 (20) '2.0'\n+7106B1 Extract OS            00 (0) 'MS-DOS'\n+7106B2 General Purpose Flag  0000 (0)\n+7106B4 Compression Method    0000 (0) 'Stored'\n+7106B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7106BA CRC                   00000000 (0)\n+7106BE Compressed Size       00000000 (0)\n+7106C2 Uncompressed Size     00000000 (0)\n+7106C6 Filename Length       0024 (36)\n+7106C8 Extra Length          0009 (9)\n+7106CA Comment Length        0000 (0)\n+7106CC Disk Start            0000 (0)\n+7106CE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7106D0 Ext File Attributes   00000000 (0)\n+7106D4 Local Header Offset   005B8F77 (6000503)\n+7106D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7106D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7106FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7106FE   Length              0005 (5)\n+710700   Flags               01 (1) 'Modification'\n+710701   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710705 CENTRAL HEADER #1637  02014B50 (33639248)\n+710709 Created Zip Spec      14 (20) '2.0'\n+71070A Created OS            00 (0) 'MS-DOS'\n+71070B Extract Zip Spec      14 (20) '2.0'\n+71070C Extract OS            00 (0) 'MS-DOS'\n+71070D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71070F Compression Method    0000 (0) 'Stored'\n+710711 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710715 CRC                   CCE4DF99 (3437551513)\n+710719 Compressed Size       000003E1 (993)\n+71071D Uncompressed Size     000003E1 (993)\n+710721 Filename Length       0036 (54)\n+710723 Extra Length          0009 (9)\n+710725 Comment Length        0000 (0)\n+710727 Disk Start            0000 (0)\n+710729 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71072B Ext File Attributes   00000000 (0)\n+71072F Local Header Offset   005B8FC2 (6000578)\n+710733 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710733: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710769 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71076B   Length              0005 (5)\n+71076D   Flags               01 (1) 'Modification'\n+71076E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710772 CENTRAL HEADER #1638  02014B50 (33639248)\n+710776 Created Zip Spec      14 (20) '2.0'\n+710777 Created OS            00 (0) 'MS-DOS'\n+710778 Extract Zip Spec      14 (20) '2.0'\n+710779 Extract OS            00 (0) 'MS-DOS'\n+71077A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71077C Compression Method    0000 (0) 'Stored'\n+71077E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710782 CRC                   E6F1CD7B (3874606459)\n+710786 Compressed Size       000003E8 (1000)\n+71078A Uncompressed Size     000003E8 (1000)\n+71078E Filename Length       0035 (53)\n+710790 Extra Length          0009 (9)\n+710792 Comment Length        0000 (0)\n+710794 Disk Start            0000 (0)\n+710796 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710798 Ext File Attributes   00000000 (0)\n+71079C Local Header Offset   005B9410 (6001680)\n+7107A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7107A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7107D5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7107D7   Length              0005 (5)\n+7107D9   Flags               01 (1) 'Modification'\n+7107DA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7107DE CENTRAL HEADER #1639  02014B50 (33639248)\n+7107E2 Created Zip Spec      14 (20) '2.0'\n+7107E3 Created OS            00 (0) 'MS-DOS'\n+7107E4 Extract Zip Spec      14 (20) '2.0'\n+7107E5 Extract OS            00 (0) 'MS-DOS'\n+7107E6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7107E8 Compression Method    0000 (0) 'Stored'\n+7107EA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7107EE CRC                   7BBE25FE (2076059134)\n+7107F2 Compressed Size       00000826 (2086)\n+7107F6 Uncompressed Size     00000826 (2086)\n+7107FA Filename Length       0032 (50)\n+7107FC Extra Length          0009 (9)\n+7107FE Comment Length        0000 (0)\n+710800 Disk Start            0000 (0)\n+710802 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710804 Ext File Attributes   00000000 (0)\n+710808 Local Header Offset   005B9864 (6002788)\n+71080C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71080C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71083E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710840   Length              0005 (5)\n+710842   Flags               01 (1) 'Modification'\n+710843   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710847 CENTRAL HEADER #1640  02014B50 (33639248)\n+71084B Created Zip Spec      14 (20) '2.0'\n+71084C Created OS            00 (0) 'MS-DOS'\n+71084D Extract Zip Spec      14 (20) '2.0'\n+71084E Extract OS            00 (0) 'MS-DOS'\n+71084F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710851 Compression Method    0000 (0) 'Stored'\n+710853 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710857 CRC                   3E36C27D (1043776125)\n+71085B Compressed Size       00000443 (1091)\n+71085F Uncompressed Size     00000443 (1091)\n+710863 Filename Length       0036 (54)\n+710865 Extra Length          0009 (9)\n+710867 Comment Length        0000 (0)\n+710869 Disk Start            0000 (0)\n+71086B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71086D Ext File Attributes   00000000 (0)\n+710871 Local Header Offset   005BA0F3 (6004979)\n+710875 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710875: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7108AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7108AD   Length              0005 (5)\n+7108AF   Flags               01 (1) 'Modification'\n+7108B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7108B4 CENTRAL HEADER #1641  02014B50 (33639248)\n+7108B8 Created Zip Spec      14 (20) '2.0'\n+7108B9 Created OS            00 (0) 'MS-DOS'\n+7108BA Extract Zip Spec      14 (20) '2.0'\n+7108BB Extract OS            00 (0) 'MS-DOS'\n+7108BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7108BE Compression Method    0000 (0) 'Stored'\n+7108C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7108C4 CRC                   9FD06EC6 (2681237190)\n+7108C8 Compressed Size       0000083A (2106)\n+7108CC Uncompressed Size     0000083A (2106)\n+7108D0 Filename Length       0038 (56)\n+7108D2 Extra Length          0009 (9)\n+7108D4 Comment Length        0000 (0)\n+7108D6 Disk Start            0000 (0)\n+7108D8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7108DA Ext File Attributes   00000000 (0)\n+7108DE Local Header Offset   005BA5A3 (6006179)\n+7108E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7108E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71091A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71091C   Length              0005 (5)\n+71091E   Flags               01 (1) 'Modification'\n+71091F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710923 CENTRAL HEADER #1642  02014B50 (33639248)\n+710927 Created Zip Spec      14 (20) '2.0'\n+710928 Created OS            00 (0) 'MS-DOS'\n+710929 Extract Zip Spec      14 (20) '2.0'\n+71092A Extract OS            00 (0) 'MS-DOS'\n+71092B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71092D Compression Method    0000 (0) 'Stored'\n+71092F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710933 CRC                   AA83E634 (2860770868)\n+710937 Compressed Size       000004C3 (1219)\n+71093B Uncompressed Size     000004C3 (1219)\n+71093F Filename Length       003D (61)\n+710941 Extra Length          0009 (9)\n+710943 Comment Length        0000 (0)\n+710945 Disk Start            0000 (0)\n+710947 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710949 Ext File Attributes   00000000 (0)\n+71094D Local Header Offset   005BAE4C (6008396)\n+710951 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710951: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71098E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710990   Length              0005 (5)\n+710992   Flags               01 (1) 'Modification'\n+710993   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710997 CENTRAL HEADER #1643  02014B50 (33639248)\n+71099B Created Zip Spec      14 (20) '2.0'\n+71099C Created OS            00 (0) 'MS-DOS'\n+71099D Extract Zip Spec      14 (20) '2.0'\n+71099E Extract OS            00 (0) 'MS-DOS'\n+71099F General Purpose Flag  0000 (0)\n+7109A1 Compression Method    0000 (0) 'Stored'\n+7109A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7109A7 CRC                   00000000 (0)\n+7109AB Compressed Size       00000000 (0)\n+7109AF Uncompressed Size     00000000 (0)\n+7109B3 Filename Length       002C (44)\n+7109B5 Extra Length          0009 (9)\n+7109B7 Comment Length        0000 (0)\n+7109B9 Disk Start            0000 (0)\n+7109BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7109BD Ext File Attributes   00000000 (0)\n+7109C1 Local Header Offset   005BB383 (6009731)\n+7109C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7109C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7109F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7109F3   Length              0005 (5)\n+7109F5   Flags               01 (1) 'Modification'\n+7109F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7109FA CENTRAL HEADER #1644  02014B50 (33639248)\n+7109FE Created Zip Spec      14 (20) '2.0'\n+7109FF Created OS            00 (0) 'MS-DOS'\n+710A00 Extract Zip Spec      14 (20) '2.0'\n+710A01 Extract OS            00 (0) 'MS-DOS'\n+710A02 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710A04 Compression Method    0000 (0) 'Stored'\n+710A06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710A0A CRC                   C08A2F01 (3230281473)\n+710A0E Compressed Size       000042B4 (17076)\n+710A12 Uncompressed Size     000042B4 (17076)\n+710A16 Filename Length       0047 (71)\n+710A18 Extra Length          0009 (9)\n+710A1A Comment Length        0000 (0)\n+710A1C Disk Start            0000 (0)\n+710A1E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710A20 Ext File Attributes   00000000 (0)\n+710A24 Local Header Offset   005BB3D6 (6009814)\n+710A28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710A28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710A6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710A71   Length              0005 (5)\n+710A73   Flags               01 (1) 'Modification'\n+710A74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710A78 CENTRAL HEADER #1645  02014B50 (33639248)\n+710A7C Created Zip Spec      14 (20) '2.0'\n+710A7D Created OS            00 (0) 'MS-DOS'\n+710A7E Extract Zip Spec      14 (20) '2.0'\n+710A7F Extract OS            00 (0) 'MS-DOS'\n+710A80 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710A82 Compression Method    0000 (0) 'Stored'\n+710A84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710A88 CRC                   7A12603D (2048024637)\n+710A8C Compressed Size       000004FC (1276)\n+710A90 Uncompressed Size     000004FC (1276)\n+710A94 Filename Length       004C (76)\n+710A96 Extra Length          0009 (9)\n+710A98 Comment Length        0000 (0)\n+710A9A Disk Start            0000 (0)\n+710A9C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710A9E Ext File Attributes   00000000 (0)\n+710AA2 Local Header Offset   005BF708 (6027016)\n+710AA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710AA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710AF2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710AF4   Length              0005 (5)\n+710AF6   Flags               01 (1) 'Modification'\n+710AF7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710AFB CENTRAL HEADER #1646  02014B50 (33639248)\n+710AFF Created Zip Spec      14 (20) '2.0'\n+710B00 Created OS            00 (0) 'MS-DOS'\n+710B01 Extract Zip Spec      14 (20) '2.0'\n+710B02 Extract OS            00 (0) 'MS-DOS'\n+710B03 General Purpose Flag  0000 (0)\n+710B05 Compression Method    0000 (0) 'Stored'\n+710B07 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710B0B CRC                   00000000 (0)\n+710B0F Compressed Size       00000000 (0)\n+710B13 Uncompressed Size     00000000 (0)\n+710B17 Filename Length       002C (44)\n+710B19 Extra Length          0009 (9)\n+710B1B Comment Length        0000 (0)\n+710B1D Disk Start            0000 (0)\n+710B1F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710B21 Ext File Attributes   00000000 (0)\n+710B25 Local Header Offset   005BFC87 (6028423)\n+710B29 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710B29: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710B55 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710B57   Length              0005 (5)\n+710B59   Flags               01 (1) 'Modification'\n+710B5A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710B5E CENTRAL HEADER #1647  02014B50 (33639248)\n+710B62 Created Zip Spec      14 (20) '2.0'\n+710B63 Created OS            00 (0) 'MS-DOS'\n+710B64 Extract Zip Spec      14 (20) '2.0'\n+710B65 Extract OS            00 (0) 'MS-DOS'\n+710B66 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710B68 Compression Method    0000 (0) 'Stored'\n+710B6A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710B6E CRC                   72360194 (1916141972)\n+710B72 Compressed Size       00001FE6 (8166)\n+710B76 Uncompressed Size     00001FE6 (8166)\n+710B7A Filename Length       0048 (72)\n+710B7C Extra Length          0009 (9)\n+710B7E Comment Length        0000 (0)\n+710B80 Disk Start            0000 (0)\n+710B82 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710B84 Ext File Attributes   00000000 (0)\n+710B88 Local Header Offset   005BFCDA (6028506)\n+710B8C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710B8C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710BD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710BD6   Length              0005 (5)\n+710BD8   Flags               01 (1) 'Modification'\n+710BD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710BDD CENTRAL HEADER #1648  02014B50 (33639248)\n+710BE1 Created Zip Spec      14 (20) '2.0'\n+710BE2 Created OS            00 (0) 'MS-DOS'\n+710BE3 Extract Zip Spec      14 (20) '2.0'\n+710BE4 Extract OS            00 (0) 'MS-DOS'\n+710BE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710BE7 Compression Method    0000 (0) 'Stored'\n+710BE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710BED CRC                   9AC76181 (2596757889)\n+710BF1 Compressed Size       00001C36 (7222)\n+710BF5 Uncompressed Size     00001C36 (7222)\n+710BF9 Filename Length       004D (77)\n+710BFB Extra Length          0009 (9)\n+710BFD Comment Length        0000 (0)\n+710BFF Disk Start            0000 (0)\n+710C01 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710C03 Ext File Attributes   00000000 (0)\n+710C07 Local Header Offset   005C1D3F (6036799)\n+710C0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710C0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710C58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710C5A   Length              0005 (5)\n+710C5C   Flags               01 (1) 'Modification'\n+710C5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710C61 CENTRAL HEADER #1649  02014B50 (33639248)\n+710C65 Created Zip Spec      14 (20) '2.0'\n+710C66 Created OS            00 (0) 'MS-DOS'\n+710C67 Extract Zip Spec      14 (20) '2.0'\n+710C68 Extract OS            00 (0) 'MS-DOS'\n+710C69 General Purpose Flag  0000 (0)\n+710C6B Compression Method    0000 (0) 'Stored'\n+710C6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710C71 CRC                   00000000 (0)\n+710C75 Compressed Size       00000000 (0)\n+710C79 Uncompressed Size     00000000 (0)\n+710C7D Filename Length       0015 (21)\n+710C7F Extra Length          0009 (9)\n+710C81 Comment Length        0000 (0)\n+710C83 Disk Start            0000 (0)\n+710C85 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710C87 Ext File Attributes   00000000 (0)\n+710C8B Local Header Offset   005C39F9 (6044153)\n+710C8F Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710C8F: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710CA4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710CA6   Length              0005 (5)\n+710CA8   Flags               01 (1) 'Modification'\n+710CA9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710CAD CENTRAL HEADER #1650  02014B50 (33639248)\n+710CB1 Created Zip Spec      14 (20) '2.0'\n+710CB2 Created OS            00 (0) 'MS-DOS'\n+710CB3 Extract Zip Spec      14 (20) '2.0'\n+710CB4 Extract OS            00 (0) 'MS-DOS'\n+710CB5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710CB7 Compression Method    0000 (0) 'Stored'\n+710CB9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710CBD CRC                   58855C59 (1485134937)\n+710CC1 Compressed Size       00001F83 (8067)\n+710CC5 Uncompressed Size     00001F83 (8067)\n+710CC9 Filename Length       0025 (37)\n+710CCB Extra Length          0009 (9)\n+710CCD Comment Length        0000 (0)\n+710CCF Disk Start            0000 (0)\n+710CD1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710CD3 Ext File Attributes   00000000 (0)\n+710CD7 Local Header Offset   005C3A35 (6044213)\n+710CDB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710CDB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710D00 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710D02   Length              0005 (5)\n+710D04   Flags               01 (1) 'Modification'\n+710D05   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710D09 CENTRAL HEADER #1651  02014B50 (33639248)\n+710D0D Created Zip Spec      14 (20) '2.0'\n+710D0E Created OS            00 (0) 'MS-DOS'\n+710D0F Extract Zip Spec      14 (20) '2.0'\n+710D10 Extract OS            00 (0) 'MS-DOS'\n+710D11 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710D13 Compression Method    0000 (0) 'Stored'\n+710D15 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710D19 CRC                   16C36050 (381902928)\n+710D1D Compressed Size       00000A30 (2608)\n+710D21 Uncompressed Size     00000A30 (2608)\n+710D25 Filename Length       0026 (38)\n+710D27 Extra Length          0009 (9)\n+710D29 Comment Length        0000 (0)\n+710D2B Disk Start            0000 (0)\n+710D2D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710D2F Ext File Attributes   00000000 (0)\n+710D33 Local Header Offset   005C5A14 (6052372)\n+710D37 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710D37: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710D5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710D5F   Length              0005 (5)\n+710D61   Flags               01 (1) 'Modification'\n+710D62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710D66 CENTRAL HEADER #1652  02014B50 (33639248)\n+710D6A Created Zip Spec      14 (20) '2.0'\n+710D6B Created OS            00 (0) 'MS-DOS'\n+710D6C Extract Zip Spec      14 (20) '2.0'\n+710D6D Extract OS            00 (0) 'MS-DOS'\n+710D6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710D70 Compression Method    0000 (0) 'Stored'\n+710D72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710D76 CRC                   28FBE016 (687595542)\n+710D7A Compressed Size       00000A76 (2678)\n+710D7E Uncompressed Size     00000A76 (2678)\n+710D82 Filename Length       002A (42)\n+710D84 Extra Length          0009 (9)\n+710D86 Comment Length        0000 (0)\n+710D88 Disk Start            0000 (0)\n+710D8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710D8C Ext File Attributes   00000000 (0)\n+710D90 Local Header Offset   005C64A1 (6055073)\n+710D94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710D94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710DBE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710DC0   Length              0005 (5)\n+710DC2   Flags               01 (1) 'Modification'\n+710DC3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710DC7 CENTRAL HEADER #1653  02014B50 (33639248)\n+710DCB Created Zip Spec      14 (20) '2.0'\n+710DCC Created OS            00 (0) 'MS-DOS'\n+710DCD Extract Zip Spec      14 (20) '2.0'\n+710DCE Extract OS            00 (0) 'MS-DOS'\n+710DCF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710DD1 Compression Method    0000 (0) 'Stored'\n+710DD3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710DD7 CRC                   18D15EB0 (416374448)\n+710DDB Compressed Size       00003175 (12661)\n+710DDF Uncompressed Size     00003175 (12661)\n+710DE3 Filename Length       0028 (40)\n+710DE5 Extra Length          0009 (9)\n+710DE7 Comment Length        0000 (0)\n+710DE9 Disk Start            0000 (0)\n+710DEB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710DED Ext File Attributes   00000000 (0)\n+710DF1 Local Header Offset   005C6F78 (6057848)\n+710DF5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710DF5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710E1D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710E1F   Length              0005 (5)\n+710E21   Flags               01 (1) 'Modification'\n+710E22   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710E26 CENTRAL HEADER #1654  02014B50 (33639248)\n+710E2A Created Zip Spec      14 (20) '2.0'\n+710E2B Created OS            00 (0) 'MS-DOS'\n+710E2C Extract Zip Spec      14 (20) '2.0'\n+710E2D Extract OS            00 (0) 'MS-DOS'\n+710E2E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710E30 Compression Method    0000 (0) 'Stored'\n+710E32 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710E36 CRC                   C1E775CF (3253171663)\n+710E3A Compressed Size       000009AF (2479)\n+710E3E Uncompressed Size     000009AF (2479)\n+710E42 Filename Length       002C (44)\n+710E44 Extra Length          0009 (9)\n+710E46 Comment Length        0000 (0)\n+710E48 Disk Start            0000 (0)\n+710E4A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710E4C Ext File Attributes   00000000 (0)\n+710E50 Local Header Offset   005CA14C (6070604)\n+710E54 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710E54: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710E80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710E82   Length              0005 (5)\n+710E84   Flags               01 (1) 'Modification'\n+710E85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710E89 CENTRAL HEADER #1655  02014B50 (33639248)\n+710E8D Created Zip Spec      14 (20) '2.0'\n+710E8E Created OS            00 (0) 'MS-DOS'\n+710E8F Extract Zip Spec      14 (20) '2.0'\n+710E90 Extract OS            00 (0) 'MS-DOS'\n+710E91 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710E93 Compression Method    0000 (0) 'Stored'\n+710E95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710E99 CRC                   7E97C5F2 (2123875826)\n+710E9D Compressed Size       00000A79 (2681)\n+710EA1 Uncompressed Size     00000A79 (2681)\n+710EA5 Filename Length       0023 (35)\n+710EA7 Extra Length          0009 (9)\n+710EA9 Comment Length        0000 (0)\n+710EAB Disk Start            0000 (0)\n+710EAD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710EAF Ext File Attributes   00000000 (0)\n+710EB3 Local Header Offset   005CAB5E (6073182)\n+710EB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710EB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710EDA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710EDC   Length              0005 (5)\n+710EDE   Flags               01 (1) 'Modification'\n+710EDF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710EE3 CENTRAL HEADER #1656  02014B50 (33639248)\n+710EE7 Created Zip Spec      14 (20) '2.0'\n+710EE8 Created OS            00 (0) 'MS-DOS'\n+710EE9 Extract Zip Spec      14 (20) '2.0'\n+710EEA Extract OS            00 (0) 'MS-DOS'\n+710EEB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710EED Compression Method    0000 (0) 'Stored'\n+710EEF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710EF3 CRC                   525AF459 (1381692505)\n+710EF7 Compressed Size       0000053F (1343)\n+710EFB Uncompressed Size     0000053F (1343)\n+710EFF Filename Length       0022 (34)\n+710F01 Extra Length          0009 (9)\n+710F03 Comment Length        0000 (0)\n+710F05 Disk Start            0000 (0)\n+710F07 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710F09 Ext File Attributes   00000000 (0)\n+710F0D Local Header Offset   005CB631 (6075953)\n+710F11 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710F11: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710F33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710F35   Length              0005 (5)\n+710F37   Flags               01 (1) 'Modification'\n+710F38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710F3C CENTRAL HEADER #1657  02014B50 (33639248)\n+710F40 Created Zip Spec      14 (20) '2.0'\n+710F41 Created OS            00 (0) 'MS-DOS'\n+710F42 Extract Zip Spec      14 (20) '2.0'\n+710F43 Extract OS            00 (0) 'MS-DOS'\n+710F44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710F46 Compression Method    0000 (0) 'Stored'\n+710F48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710F4C CRC                   FC32E707 (4231194375)\n+710F50 Compressed Size       000005AC (1452)\n+710F54 Uncompressed Size     000005AC (1452)\n+710F58 Filename Length       002A (42)\n+710F5A Extra Length          0009 (9)\n+710F5C Comment Length        0000 (0)\n+710F5E Disk Start            0000 (0)\n+710F60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710F62 Ext File Attributes   00000000 (0)\n+710F66 Local Header Offset   005CBBC9 (6077385)\n+710F6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710F6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710F94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710F96   Length              0005 (5)\n+710F98   Flags               01 (1) 'Modification'\n+710F99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710F9D CENTRAL HEADER #1658  02014B50 (33639248)\n+710FA1 Created Zip Spec      14 (20) '2.0'\n+710FA2 Created OS            00 (0) 'MS-DOS'\n+710FA3 Extract Zip Spec      14 (20) '2.0'\n+710FA4 Extract OS            00 (0) 'MS-DOS'\n+710FA5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710FA7 Compression Method    0000 (0) 'Stored'\n+710FA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+710FAD CRC                   2EDA0DE9 (786042345)\n+710FB1 Compressed Size       00000965 (2405)\n+710FB5 Uncompressed Size     00000965 (2405)\n+710FB9 Filename Length       0020 (32)\n+710FBB Extra Length          0009 (9)\n+710FBD Comment Length        0000 (0)\n+710FBF Disk Start            0000 (0)\n+710FC1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+710FC3 Ext File Attributes   00000000 (0)\n+710FC7 Local Header Offset   005CC1D6 (6078934)\n+710FCB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x710FCB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+710FEB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+710FED   Length              0005 (5)\n+710FEF   Flags               01 (1) 'Modification'\n+710FF0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+710FF4 CENTRAL HEADER #1659  02014B50 (33639248)\n+710FF8 Created Zip Spec      14 (20) '2.0'\n+710FF9 Created OS            00 (0) 'MS-DOS'\n+710FFA Extract Zip Spec      14 (20) '2.0'\n+710FFB Extract OS            00 (0) 'MS-DOS'\n+710FFC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+710FFE Compression Method    0000 (0) 'Stored'\n+711000 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711004 CRC                   F67FCDE8 (4135570920)\n+711008 Compressed Size       00000FE9 (4073)\n+71100C Uncompressed Size     00000FE9 (4073)\n+711010 Filename Length       0027 (39)\n+711012 Extra Length          0009 (9)\n+711014 Comment Length        0000 (0)\n+711016 Disk Start            0000 (0)\n+711018 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71101A Ext File Attributes   00000000 (0)\n+71101E Local Header Offset   005CCB92 (6081426)\n+711022 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711022: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711049 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71104B   Length              0005 (5)\n+71104D   Flags               01 (1) 'Modification'\n+71104E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711052 CENTRAL HEADER #1660  02014B50 (33639248)\n+711056 Created Zip Spec      14 (20) '2.0'\n+711057 Created OS            00 (0) 'MS-DOS'\n+711058 Extract Zip Spec      14 (20) '2.0'\n+711059 Extract OS            00 (0) 'MS-DOS'\n+71105A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71105C Compression Method    0000 (0) 'Stored'\n+71105E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711062 CRC                   E5052367 (3842319207)\n+711066 Compressed Size       00000F2D (3885)\n+71106A Uncompressed Size     00000F2D (3885)\n+71106E Filename Length       0024 (36)\n+711070 Extra Length          0009 (9)\n+711072 Comment Length        0000 (0)\n+711074 Disk Start            0000 (0)\n+711076 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711078 Ext File Attributes   00000000 (0)\n+71107C Local Header Offset   005CDBD9 (6085593)\n+711080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7110A4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7110A6   Length              0005 (5)\n+7110A8   Flags               01 (1) 'Modification'\n+7110A9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7110AD CENTRAL HEADER #1661  02014B50 (33639248)\n+7110B1 Created Zip Spec      14 (20) '2.0'\n+7110B2 Created OS            00 (0) 'MS-DOS'\n+7110B3 Extract Zip Spec      14 (20) '2.0'\n+7110B4 Extract OS            00 (0) 'MS-DOS'\n+7110B5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7110B7 Compression Method    0000 (0) 'Stored'\n+7110B9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7110BD CRC                   1A821C29 (444734505)\n+7110C1 Compressed Size       0000038E (910)\n+7110C5 Uncompressed Size     0000038E (910)\n+7110C9 Filename Length       0024 (36)\n+7110CB Extra Length          0009 (9)\n+7110CD Comment Length        0000 (0)\n+7110CF Disk Start            0000 (0)\n+7110D1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7110D3 Ext File Attributes   00000000 (0)\n+7110D7 Local Header Offset   005CEB61 (6089569)\n+7110DB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7110DB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7110FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711101   Length              0005 (5)\n+711103   Flags               01 (1) 'Modification'\n+711104   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711108 CENTRAL HEADER #1662  02014B50 (33639248)\n+71110C Created Zip Spec      14 (20) '2.0'\n+71110D Created OS            00 (0) 'MS-DOS'\n+71110E Extract Zip Spec      14 (20) '2.0'\n+71110F Extract OS            00 (0) 'MS-DOS'\n+711110 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711112 Compression Method    0000 (0) 'Stored'\n+711114 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711118 CRC                   19B4DE27 (431283751)\n+71111C Compressed Size       000005D1 (1489)\n+711120 Uncompressed Size     000005D1 (1489)\n+711124 Filename Length       0021 (33)\n+711126 Extra Length          0009 (9)\n+711128 Comment Length        0000 (0)\n+71112A Disk Start            0000 (0)\n+71112C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71112E Ext File Attributes   00000000 (0)\n+711132 Local Header Offset   005CEF4A (6090570)\n+711136 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711136: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711157 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711159   Length              0005 (5)\n+71115B   Flags               01 (1) 'Modification'\n+71115C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711160 CENTRAL HEADER #1663  02014B50 (33639248)\n+711164 Created Zip Spec      14 (20) '2.0'\n+711165 Created OS            00 (0) 'MS-DOS'\n+711166 Extract Zip Spec      14 (20) '2.0'\n+711167 Extract OS            00 (0) 'MS-DOS'\n+711168 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71116A Compression Method    0000 (0) 'Stored'\n+71116C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711170 CRC                   D82F1E47 (3626966599)\n+711174 Compressed Size       0000059A (1434)\n+711178 Uncompressed Size     0000059A (1434)\n+71117C Filename Length       0029 (41)\n+71117E Extra Length          0009 (9)\n+711180 Comment Length        0000 (0)\n+711182 Disk Start            0000 (0)\n+711184 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711186 Ext File Attributes   00000000 (0)\n+71118A Local Header Offset   005CF573 (6092147)\n+71118E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71118E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7111B7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7111B9   Length              0005 (5)\n+7111BB   Flags               01 (1) 'Modification'\n+7111BC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7111C0 CENTRAL HEADER #1664  02014B50 (33639248)\n+7111C4 Created Zip Spec      14 (20) '2.0'\n+7111C5 Created OS            00 (0) 'MS-DOS'\n+7111C6 Extract Zip Spec      14 (20) '2.0'\n+7111C7 Extract OS            00 (0) 'MS-DOS'\n+7111C8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7111CA Compression Method    0000 (0) 'Stored'\n+7111CC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7111D0 CRC                   16B7BD77 (381140343)\n+7111D4 Compressed Size       00000805 (2053)\n+7111D8 Uncompressed Size     00000805 (2053)\n+7111DC Filename Length       002A (42)\n+7111DE Extra Length          0009 (9)\n+7111E0 Comment Length        0000 (0)\n+7111E2 Disk Start            0000 (0)\n+7111E4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7111E6 Ext File Attributes   00000000 (0)\n+7111EA Local Header Offset   005CFB6D (6093677)\n+7111EE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7111EE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711218 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71121A   Length              0005 (5)\n+71121C   Flags               01 (1) 'Modification'\n+71121D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711221 CENTRAL HEADER #1665  02014B50 (33639248)\n+711225 Created Zip Spec      14 (20) '2.0'\n+711226 Created OS            00 (0) 'MS-DOS'\n+711227 Extract Zip Spec      14 (20) '2.0'\n+711228 Extract OS            00 (0) 'MS-DOS'\n+711229 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71122B Compression Method    0000 (0) 'Stored'\n+71122D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711231 CRC                   CCB43BAA (3434363818)\n+711235 Compressed Size       00000DF0 (3568)\n+711239 Uncompressed Size     00000DF0 (3568)\n+71123D Filename Length       0022 (34)\n+71123F Extra Length          0009 (9)\n+711241 Comment Length        0000 (0)\n+711243 Disk Start            0000 (0)\n+711245 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711247 Ext File Attributes   00000000 (0)\n+71124B Local Header Offset   005D03D3 (6095827)\n+71124F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71124F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711271 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711273   Length              0005 (5)\n+711275   Flags               01 (1) 'Modification'\n+711276   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71127A CENTRAL HEADER #1666  02014B50 (33639248)\n+71127E Created Zip Spec      14 (20) '2.0'\n+71127F Created OS            00 (0) 'MS-DOS'\n+711280 Extract Zip Spec      14 (20) '2.0'\n+711281 Extract OS            00 (0) 'MS-DOS'\n+711282 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711284 Compression Method    0000 (0) 'Stored'\n+711286 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71128A CRC                   6D231835 (1831016501)\n+71128E Compressed Size       000005FB (1531)\n+711292 Uncompressed Size     000005FB (1531)\n+711296 Filename Length       0028 (40)\n+711298 Extra Length          0009 (9)\n+71129A Comment Length        0000 (0)\n+71129C Disk Start            0000 (0)\n+71129E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7112A0 Ext File Attributes   00000000 (0)\n+7112A4 Local Header Offset   005D121C (6099484)\n+7112A8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7112A8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7112D0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7112D2   Length              0005 (5)\n+7112D4   Flags               01 (1) 'Modification'\n+7112D5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7112D9 CENTRAL HEADER #1667  02014B50 (33639248)\n+7112DD Created Zip Spec      14 (20) '2.0'\n+7112DE Created OS            00 (0) 'MS-DOS'\n+7112DF Extract Zip Spec      14 (20) '2.0'\n+7112E0 Extract OS            00 (0) 'MS-DOS'\n+7112E1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7112E3 Compression Method    0000 (0) 'Stored'\n+7112E5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7112E9 CRC                   2A77FFA2 (712507298)\n+7112ED Compressed Size       00000719 (1817)\n+7112F1 Uncompressed Size     00000719 (1817)\n+7112F5 Filename Length       0026 (38)\n+7112F7 Extra Length          0009 (9)\n+7112F9 Comment Length        0000 (0)\n+7112FB Disk Start            0000 (0)\n+7112FD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7112FF Ext File Attributes   00000000 (0)\n+711303 Local Header Offset   005D1876 (6101110)\n+711307 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711307: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71132D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71132F   Length              0005 (5)\n+711331   Flags               01 (1) 'Modification'\n+711332   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711336 CENTRAL HEADER #1668  02014B50 (33639248)\n+71133A Created Zip Spec      14 (20) '2.0'\n+71133B Created OS            00 (0) 'MS-DOS'\n+71133C Extract Zip Spec      14 (20) '2.0'\n+71133D Extract OS            00 (0) 'MS-DOS'\n+71133E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711340 Compression Method    0000 (0) 'Stored'\n+711342 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711346 CRC                   1DB16B63 (498166627)\n+71134A Compressed Size       000015FD (5629)\n+71134E Uncompressed Size     000015FD (5629)\n+711352 Filename Length       0020 (32)\n+711354 Extra Length          0009 (9)\n+711356 Comment Length        0000 (0)\n+711358 Disk Start            0000 (0)\n+71135A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71135C Ext File Attributes   00000000 (0)\n+711360 Local Header Offset   005D1FEC (6103020)\n+711364 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711364: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711384 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711386   Length              0005 (5)\n+711388   Flags               01 (1) 'Modification'\n+711389   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71138D CENTRAL HEADER #1669  02014B50 (33639248)\n+711391 Created Zip Spec      14 (20) '2.0'\n+711392 Created OS            00 (0) 'MS-DOS'\n+711393 Extract Zip Spec      14 (20) '2.0'\n+711394 Extract OS            00 (0) 'MS-DOS'\n+711395 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711397 Compression Method    0000 (0) 'Stored'\n+711399 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71139D CRC                   3BFD1345 (1006441285)\n+7113A1 Compressed Size       0000059E (1438)\n+7113A5 Uncompressed Size     0000059E (1438)\n+7113A9 Filename Length       0026 (38)\n+7113AB Extra Length          0009 (9)\n+7113AD Comment Length        0000 (0)\n+7113AF Disk Start            0000 (0)\n+7113B1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7113B3 Ext File Attributes   00000000 (0)\n+7113B7 Local Header Offset   005D3640 (6108736)\n+7113BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7113BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7113E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7113E3   Length              0005 (5)\n+7113E5   Flags               01 (1) 'Modification'\n+7113E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7113EA CENTRAL HEADER #1670  02014B50 (33639248)\n+7113EE Created Zip Spec      14 (20) '2.0'\n+7113EF Created OS            00 (0) 'MS-DOS'\n+7113F0 Extract Zip Spec      14 (20) '2.0'\n+7113F1 Extract OS            00 (0) 'MS-DOS'\n+7113F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7113F4 Compression Method    0000 (0) 'Stored'\n+7113F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7113FA CRC                   C3E7F091 (3286757521)\n+7113FE Compressed Size       00005A5D (23133)\n+711402 Uncompressed Size     00005A5D (23133)\n+711406 Filename Length       0024 (36)\n+711408 Extra Length          0009 (9)\n+71140A Comment Length        0000 (0)\n+71140C Disk Start            0000 (0)\n+71140E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711410 Ext File Attributes   00000000 (0)\n+711414 Local Header Offset   005D3C3B (6110267)\n+711418 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711418: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71143C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71143E   Length              0005 (5)\n+711440   Flags               01 (1) 'Modification'\n+711441   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711445 CENTRAL HEADER #1671  02014B50 (33639248)\n+711449 Created Zip Spec      14 (20) '2.0'\n+71144A Created OS            00 (0) 'MS-DOS'\n+71144B Extract Zip Spec      14 (20) '2.0'\n+71144C Extract OS            00 (0) 'MS-DOS'\n+71144D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71144F Compression Method    0000 (0) 'Stored'\n+711451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711455 CRC                   CCECA2E4 (3438060260)\n+711459 Compressed Size       00000D97 (3479)\n+71145D Uncompressed Size     00000D97 (3479)\n+711461 Filename Length       0026 (38)\n+711463 Extra Length          0009 (9)\n+711465 Comment Length        0000 (0)\n+711467 Disk Start            0000 (0)\n+711469 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71146B Ext File Attributes   00000000 (0)\n+71146F Local Header Offset   005D96F3 (6133491)\n+711473 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711473: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711499 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71149B   Length              0005 (5)\n+71149D   Flags               01 (1) 'Modification'\n+71149E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7114A2 CENTRAL HEADER #1672  02014B50 (33639248)\n+7114A6 Created Zip Spec      14 (20) '2.0'\n+7114A7 Created OS            00 (0) 'MS-DOS'\n+7114A8 Extract Zip Spec      14 (20) '2.0'\n+7114A9 Extract OS            00 (0) 'MS-DOS'\n+7114AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7114AC Compression Method    0000 (0) 'Stored'\n+7114AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7114B2 CRC                   8DF2CD69 (2381499753)\n+7114B6 Compressed Size       00003C43 (15427)\n+7114BA Uncompressed Size     00003C43 (15427)\n+7114BE Filename Length       0027 (39)\n+7114C0 Extra Length          0009 (9)\n+7114C2 Comment Length        0000 (0)\n+7114C4 Disk Start            0000 (0)\n+7114C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7114C8 Ext File Attributes   00000000 (0)\n+7114CC Local Header Offset   005DA4E7 (6137063)\n+7114D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7114D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7114F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7114F9   Length              0005 (5)\n+7114FB   Flags               01 (1) 'Modification'\n+7114FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711500 CENTRAL HEADER #1673  02014B50 (33639248)\n+711504 Created Zip Spec      14 (20) '2.0'\n+711505 Created OS            00 (0) 'MS-DOS'\n+711506 Extract Zip Spec      14 (20) '2.0'\n+711507 Extract OS            00 (0) 'MS-DOS'\n+711508 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71150A Compression Method    0000 (0) 'Stored'\n+71150C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711510 CRC                   B577D739 (3044529977)\n+711514 Compressed Size       0000218E (8590)\n+711518 Uncompressed Size     0000218E (8590)\n+71151C Filename Length       0023 (35)\n+71151E Extra Length          0009 (9)\n+711520 Comment Length        0000 (0)\n+711522 Disk Start            0000 (0)\n+711524 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711526 Ext File Attributes   00000000 (0)\n+71152A Local Header Offset   005DE188 (6152584)\n+71152E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71152E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711551 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711553   Length              0005 (5)\n+711555   Flags               01 (1) 'Modification'\n+711556   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71155A CENTRAL HEADER #1674  02014B50 (33639248)\n+71155E Created Zip Spec      14 (20) '2.0'\n+71155F Created OS            00 (0) 'MS-DOS'\n+711560 Extract Zip Spec      14 (20) '2.0'\n+711561 Extract OS            00 (0) 'MS-DOS'\n+711562 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711564 Compression Method    0000 (0) 'Stored'\n+711566 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71156A CRC                   CDFD7CF6 (3455941878)\n+71156E Compressed Size       00000BBA (3002)\n+711572 Uncompressed Size     00000BBA (3002)\n+711576 Filename Length       002A (42)\n+711578 Extra Length          0009 (9)\n+71157A Comment Length        0000 (0)\n+71157C Disk Start            0000 (0)\n+71157E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711580 Ext File Attributes   00000000 (0)\n+711584 Local Header Offset   005E0370 (6161264)\n+711588 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711588: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7115B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7115B4   Length              0005 (5)\n+7115B6   Flags               01 (1) 'Modification'\n+7115B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7115BB CENTRAL HEADER #1675  02014B50 (33639248)\n+7115BF Created Zip Spec      14 (20) '2.0'\n+7115C0 Created OS            00 (0) 'MS-DOS'\n+7115C1 Extract Zip Spec      14 (20) '2.0'\n+7115C2 Extract OS            00 (0) 'MS-DOS'\n+7115C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7115C5 Compression Method    0000 (0) 'Stored'\n+7115C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7115CB CRC                   32C986CB (852068043)\n+7115CF Compressed Size       000004C5 (1221)\n+7115D3 Uncompressed Size     000004C5 (1221)\n+7115D7 Filename Length       0026 (38)\n+7115D9 Extra Length          0009 (9)\n+7115DB Comment Length        0000 (0)\n+7115DD Disk Start            0000 (0)\n+7115DF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7115E1 Ext File Attributes   00000000 (0)\n+7115E5 Local Header Offset   005E0F8B (6164363)\n+7115E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7115E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71160F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711611   Length              0005 (5)\n+711613   Flags               01 (1) 'Modification'\n+711614   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711618 CENTRAL HEADER #1676  02014B50 (33639248)\n+71161C Created Zip Spec      14 (20) '2.0'\n+71161D Created OS            00 (0) 'MS-DOS'\n+71161E Extract Zip Spec      14 (20) '2.0'\n+71161F Extract OS            00 (0) 'MS-DOS'\n+711620 General Purpose Flag  0000 (0)\n+711622 Compression Method    0000 (0) 'Stored'\n+711624 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711628 CRC                   00000000 (0)\n+71162C Compressed Size       00000000 (0)\n+711630 Uncompressed Size     00000000 (0)\n+711634 Filename Length       001D (29)\n+711636 Extra Length          0009 (9)\n+711638 Comment Length        0000 (0)\n+71163A Disk Start            0000 (0)\n+71163C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71163E Ext File Attributes   00000000 (0)\n+711642 Local Header Offset   005E14AD (6165677)\n+711646 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711646: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711663 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711665   Length              0005 (5)\n+711667   Flags               01 (1) 'Modification'\n+711668   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71166C CENTRAL HEADER #1677  02014B50 (33639248)\n+711670 Created Zip Spec      14 (20) '2.0'\n+711671 Created OS            00 (0) 'MS-DOS'\n+711672 Extract Zip Spec      14 (20) '2.0'\n+711673 Extract OS            00 (0) 'MS-DOS'\n+711674 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711676 Compression Method    0000 (0) 'Stored'\n+711678 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71167C CRC                   C25375A4 (3260249508)\n+711680 Compressed Size       0000061B (1563)\n+711684 Uncompressed Size     0000061B (1563)\n+711688 Filename Length       0038 (56)\n+71168A Extra Length          0009 (9)\n+71168C Comment Length        0000 (0)\n+71168E Disk Start            0000 (0)\n+711690 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711692 Ext File Attributes   00000000 (0)\n+711696 Local Header Offset   005E14F1 (6165745)\n+71169A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71169A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7116D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7116D4   Length              0005 (5)\n+7116D6   Flags               01 (1) 'Modification'\n+7116D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7116DB CENTRAL HEADER #1678  02014B50 (33639248)\n+7116DF Created Zip Spec      14 (20) '2.0'\n+7116E0 Created OS            00 (0) 'MS-DOS'\n+7116E1 Extract Zip Spec      14 (20) '2.0'\n+7116E2 Extract OS            00 (0) 'MS-DOS'\n+7116E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7116E5 Compression Method    0000 (0) 'Stored'\n+7116E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7116EB CRC                   27965EEA (664166122)\n+7116EF Compressed Size       00000824 (2084)\n+7116F3 Uncompressed Size     00000824 (2084)\n+7116F7 Filename Length       0029 (41)\n+7116F9 Extra Length          0009 (9)\n+7116FB Comment Length        0000 (0)\n+7116FD Disk Start            0000 (0)\n+7116FF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711701 Ext File Attributes   00000000 (0)\n+711705 Local Header Offset   005E1B7B (6167419)\n+711709 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711709: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711732 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711734   Length              0005 (5)\n+711736   Flags               01 (1) 'Modification'\n+711737   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71173B CENTRAL HEADER #1679  02014B50 (33639248)\n+71173F Created Zip Spec      14 (20) '2.0'\n+711740 Created OS            00 (0) 'MS-DOS'\n+711741 Extract Zip Spec      14 (20) '2.0'\n+711742 Extract OS            00 (0) 'MS-DOS'\n+711743 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711745 Compression Method    0000 (0) 'Stored'\n+711747 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71174B CRC                   5EECCC48 (1592577096)\n+71174F Compressed Size       000006F2 (1778)\n+711753 Uncompressed Size     000006F2 (1778)\n+711757 Filename Length       0030 (48)\n+711759 Extra Length          0009 (9)\n+71175B Comment Length        0000 (0)\n+71175D Disk Start            0000 (0)\n+71175F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711761 Ext File Attributes   00000000 (0)\n+711765 Local Header Offset   005E23FF (6169599)\n+711769 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711769: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711799 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71179B   Length              0005 (5)\n+71179D   Flags               01 (1) 'Modification'\n+71179E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7117A2 CENTRAL HEADER #1680  02014B50 (33639248)\n+7117A6 Created Zip Spec      14 (20) '2.0'\n+7117A7 Created OS            00 (0) 'MS-DOS'\n+7117A8 Extract Zip Spec      14 (20) '2.0'\n+7117A9 Extract OS            00 (0) 'MS-DOS'\n+7117AA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7117AC Compression Method    0000 (0) 'Stored'\n+7117AE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7117B2 CRC                   665C4504 (1717323012)\n+7117B6 Compressed Size       00001123 (4387)\n+7117BA Uncompressed Size     00001123 (4387)\n+7117BE Filename Length       002E (46)\n+7117C0 Extra Length          0009 (9)\n+7117C2 Comment Length        0000 (0)\n+7117C4 Disk Start            0000 (0)\n+7117C6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7117C8 Ext File Attributes   00000000 (0)\n+7117CC Local Header Offset   005E2B58 (6171480)\n+7117D0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7117D0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7117FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711800   Length              0005 (5)\n+711802   Flags               01 (1) 'Modification'\n+711803   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711807 CENTRAL HEADER #1681  02014B50 (33639248)\n+71180B Created Zip Spec      14 (20) '2.0'\n+71180C Created OS            00 (0) 'MS-DOS'\n+71180D Extract Zip Spec      14 (20) '2.0'\n+71180E Extract OS            00 (0) 'MS-DOS'\n+71180F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711811 Compression Method    0000 (0) 'Stored'\n+711813 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711817 CRC                   7FA20103 (2141323523)\n+71181B Compressed Size       00000534 (1332)\n+71181F Uncompressed Size     00000534 (1332)\n+711823 Filename Length       0035 (53)\n+711825 Extra Length          0009 (9)\n+711827 Comment Length        0000 (0)\n+711829 Disk Start            0000 (0)\n+71182B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71182D Ext File Attributes   00000000 (0)\n+711831 Local Header Offset   005E3CE0 (6175968)\n+711835 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711835: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71186A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71186C   Length              0005 (5)\n+71186E   Flags               01 (1) 'Modification'\n+71186F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711873 CENTRAL HEADER #1682  02014B50 (33639248)\n+711877 Created Zip Spec      14 (20) '2.0'\n+711878 Created OS            00 (0) 'MS-DOS'\n+711879 Extract Zip Spec      14 (20) '2.0'\n+71187A Extract OS            00 (0) 'MS-DOS'\n+71187B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71187D Compression Method    0000 (0) 'Stored'\n+71187F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711883 CRC                   D4481329 (3561493289)\n+711887 Compressed Size       00000B76 (2934)\n+71188B Uncompressed Size     00000B76 (2934)\n+71188F Filename Length       002B (43)\n+711891 Extra Length          0009 (9)\n+711893 Comment Length        0000 (0)\n+711895 Disk Start            0000 (0)\n+711897 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711899 Ext File Attributes   00000000 (0)\n+71189D Local Header Offset   005E4280 (6177408)\n+7118A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7118A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7118CC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7118CE   Length              0005 (5)\n+7118D0   Flags               01 (1) 'Modification'\n+7118D1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7118D5 CENTRAL HEADER #1683  02014B50 (33639248)\n+7118D9 Created Zip Spec      14 (20) '2.0'\n+7118DA Created OS            00 (0) 'MS-DOS'\n+7118DB Extract Zip Spec      14 (20) '2.0'\n+7118DC Extract OS            00 (0) 'MS-DOS'\n+7118DD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7118DF Compression Method    0000 (0) 'Stored'\n+7118E1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7118E5 CRC                   2FCAE9BB (801827259)\n+7118E9 Compressed Size       000006CA (1738)\n+7118ED Uncompressed Size     000006CA (1738)\n+7118F1 Filename Length       002B (43)\n+7118F3 Extra Length          0009 (9)\n+7118F5 Comment Length        0000 (0)\n+7118F7 Disk Start            0000 (0)\n+7118F9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7118FB Ext File Attributes   00000000 (0)\n+7118FF Local Header Offset   005E4E58 (6180440)\n+711903 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711903: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71192E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711930   Length              0005 (5)\n+711932   Flags               01 (1) 'Modification'\n+711933   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711937 CENTRAL HEADER #1684  02014B50 (33639248)\n+71193B Created Zip Spec      14 (20) '2.0'\n+71193C Created OS            00 (0) 'MS-DOS'\n+71193D Extract Zip Spec      14 (20) '2.0'\n+71193E Extract OS            00 (0) 'MS-DOS'\n+71193F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711941 Compression Method    0000 (0) 'Stored'\n+711943 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711947 CRC                   2EFAFE2D (788201005)\n+71194B Compressed Size       00000732 (1842)\n+71194F Uncompressed Size     00000732 (1842)\n+711953 Filename Length       002D (45)\n+711955 Extra Length          0009 (9)\n+711957 Comment Length        0000 (0)\n+711959 Disk Start            0000 (0)\n+71195B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71195D Ext File Attributes   00000000 (0)\n+711961 Local Header Offset   005E5584 (6182276)\n+711965 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711965: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711992 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711994   Length              0005 (5)\n+711996   Flags               01 (1) 'Modification'\n+711997   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71199B CENTRAL HEADER #1685  02014B50 (33639248)\n+71199F Created Zip Spec      14 (20) '2.0'\n+7119A0 Created OS            00 (0) 'MS-DOS'\n+7119A1 Extract Zip Spec      14 (20) '2.0'\n+7119A2 Extract OS            00 (0) 'MS-DOS'\n+7119A3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7119A5 Compression Method    0000 (0) 'Stored'\n+7119A7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7119AB CRC                   09ED5602 (166548994)\n+7119AF Compressed Size       000003D1 (977)\n+7119B3 Uncompressed Size     000003D1 (977)\n+7119B7 Filename Length       0028 (40)\n+7119B9 Extra Length          0009 (9)\n+7119BB Comment Length        0000 (0)\n+7119BD Disk Start            0000 (0)\n+7119BF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7119C1 Ext File Attributes   00000000 (0)\n+7119C5 Local Header Offset   005E5D1A (6184218)\n+7119C9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7119C9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7119F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7119F3   Length              0005 (5)\n+7119F5   Flags               01 (1) 'Modification'\n+7119F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7119FA CENTRAL HEADER #1686  02014B50 (33639248)\n+7119FE Created Zip Spec      14 (20) '2.0'\n+7119FF Created OS            00 (0) 'MS-DOS'\n+711A00 Extract Zip Spec      14 (20) '2.0'\n+711A01 Extract OS            00 (0) 'MS-DOS'\n+711A02 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711A04 Compression Method    0000 (0) 'Stored'\n+711A06 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711A0A CRC                   58C25CA8 (1489132712)\n+711A0E Compressed Size       00000CF3 (3315)\n+711A12 Uncompressed Size     00000CF3 (3315)\n+711A16 Filename Length       0028 (40)\n+711A18 Extra Length          0009 (9)\n+711A1A Comment Length        0000 (0)\n+711A1C Disk Start            0000 (0)\n+711A1E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711A20 Ext File Attributes   00000000 (0)\n+711A24 Local Header Offset   005E614A (6185290)\n+711A28 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711A28: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711A50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711A52   Length              0005 (5)\n+711A54   Flags               01 (1) 'Modification'\n+711A55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711A59 CENTRAL HEADER #1687  02014B50 (33639248)\n+711A5D Created Zip Spec      14 (20) '2.0'\n+711A5E Created OS            00 (0) 'MS-DOS'\n+711A5F Extract Zip Spec      14 (20) '2.0'\n+711A60 Extract OS            00 (0) 'MS-DOS'\n+711A61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711A63 Compression Method    0000 (0) 'Stored'\n+711A65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711A69 CRC                   234C96D0 (592221904)\n+711A6D Compressed Size       00001088 (4232)\n+711A71 Uncompressed Size     00001088 (4232)\n+711A75 Filename Length       002D (45)\n+711A77 Extra Length          0009 (9)\n+711A79 Comment Length        0000 (0)\n+711A7B Disk Start            0000 (0)\n+711A7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711A7F Ext File Attributes   00000000 (0)\n+711A83 Local Header Offset   005E6E9C (6188700)\n+711A87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711A87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711AB4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711AB6   Length              0005 (5)\n+711AB8   Flags               01 (1) 'Modification'\n+711AB9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711ABD CENTRAL HEADER #1688  02014B50 (33639248)\n+711AC1 Created Zip Spec      14 (20) '2.0'\n+711AC2 Created OS            00 (0) 'MS-DOS'\n+711AC3 Extract Zip Spec      14 (20) '2.0'\n+711AC4 Extract OS            00 (0) 'MS-DOS'\n+711AC5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711AC7 Compression Method    0000 (0) 'Stored'\n+711AC9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711ACD CRC                   FDB2D35D (4256355165)\n+711AD1 Compressed Size       00000759 (1881)\n+711AD5 Uncompressed Size     00000759 (1881)\n+711AD9 Filename Length       002F (47)\n+711ADB Extra Length          0009 (9)\n+711ADD Comment Length        0000 (0)\n+711ADF Disk Start            0000 (0)\n+711AE1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711AE3 Ext File Attributes   00000000 (0)\n+711AE7 Local Header Offset   005E7F88 (6193032)\n+711AEB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711AEB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711B1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711B1C   Length              0005 (5)\n+711B1E   Flags               01 (1) 'Modification'\n+711B1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711B23 CENTRAL HEADER #1689  02014B50 (33639248)\n+711B27 Created Zip Spec      14 (20) '2.0'\n+711B28 Created OS            00 (0) 'MS-DOS'\n+711B29 Extract Zip Spec      14 (20) '2.0'\n+711B2A Extract OS            00 (0) 'MS-DOS'\n+711B2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711B2D Compression Method    0000 (0) 'Stored'\n+711B2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711B33 CRC                   BC987223 (3164107299)\n+711B37 Compressed Size       00000435 (1077)\n+711B3B Uncompressed Size     00000435 (1077)\n+711B3F Filename Length       002F (47)\n+711B41 Extra Length          0009 (9)\n+711B43 Comment Length        0000 (0)\n+711B45 Disk Start            0000 (0)\n+711B47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711B49 Ext File Attributes   00000000 (0)\n+711B4D Local Header Offset   005E8747 (6195015)\n+711B51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711B51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711B80 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711B82   Length              0005 (5)\n+711B84   Flags               01 (1) 'Modification'\n+711B85   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711B89 CENTRAL HEADER #1690  02014B50 (33639248)\n+711B8D Created Zip Spec      14 (20) '2.0'\n+711B8E Created OS            00 (0) 'MS-DOS'\n+711B8F Extract Zip Spec      14 (20) '2.0'\n+711B90 Extract OS            00 (0) 'MS-DOS'\n+711B91 General Purpose Flag  0000 (0)\n+711B93 Compression Method    0000 (0) 'Stored'\n+711B95 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711B99 CRC                   00000000 (0)\n+711B9D Compressed Size       00000000 (0)\n+711BA1 Uncompressed Size     00000000 (0)\n+711BA5 Filename Length       002A (42)\n+711BA7 Extra Length          0009 (9)\n+711BA9 Comment Length        0000 (0)\n+711BAB Disk Start            0000 (0)\n+711BAD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711BAF Ext File Attributes   00000000 (0)\n+711BB3 Local Header Offset   005E8BE2 (6196194)\n+711BB7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711BB7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711BE1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711BE3   Length              0005 (5)\n+711BE5   Flags               01 (1) 'Modification'\n+711BE6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711BEA CENTRAL HEADER #1691  02014B50 (33639248)\n+711BEE Created Zip Spec      14 (20) '2.0'\n+711BEF Created OS            00 (0) 'MS-DOS'\n+711BF0 Extract Zip Spec      14 (20) '2.0'\n+711BF1 Extract OS            00 (0) 'MS-DOS'\n+711BF2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711BF4 Compression Method    0000 (0) 'Stored'\n+711BF6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711BFA CRC                   91868A4C (2441513548)\n+711BFE Compressed Size       00002146 (8518)\n+711C02 Uncompressed Size     00002146 (8518)\n+711C06 Filename Length       0043 (67)\n+711C08 Extra Length          0009 (9)\n+711C0A Comment Length        0000 (0)\n+711C0C Disk Start            0000 (0)\n+711C0E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711C10 Ext File Attributes   00000000 (0)\n+711C14 Local Header Offset   005E8C33 (6196275)\n+711C18 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711C18: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711C5B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711C5D   Length              0005 (5)\n+711C5F   Flags               01 (1) 'Modification'\n+711C60   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711C64 CENTRAL HEADER #1692  02014B50 (33639248)\n+711C68 Created Zip Spec      14 (20) '2.0'\n+711C69 Created OS            00 (0) 'MS-DOS'\n+711C6A Extract Zip Spec      14 (20) '2.0'\n+711C6B Extract OS            00 (0) 'MS-DOS'\n+711C6C General Purpose Flag  0000 (0)\n+711C6E Compression Method    0000 (0) 'Stored'\n+711C70 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711C74 CRC                   00000000 (0)\n+711C78 Compressed Size       00000000 (0)\n+711C7C Uncompressed Size     00000000 (0)\n+711C80 Filename Length       0031 (49)\n+711C82 Extra Length          0009 (9)\n+711C84 Comment Length        0000 (0)\n+711C86 Disk Start            0000 (0)\n+711C88 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711C8A Ext File Attributes   00000000 (0)\n+711C8E Local Header Offset   005EADF3 (6204915)\n+711C92 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711C92: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711CC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711CC5   Length              0005 (5)\n+711CC7   Flags               01 (1) 'Modification'\n+711CC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711CCC CENTRAL HEADER #1693  02014B50 (33639248)\n+711CD0 Created Zip Spec      14 (20) '2.0'\n+711CD1 Created OS            00 (0) 'MS-DOS'\n+711CD2 Extract Zip Spec      14 (20) '2.0'\n+711CD3 Extract OS            00 (0) 'MS-DOS'\n+711CD4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711CD6 Compression Method    0000 (0) 'Stored'\n+711CD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711CDC CRC                   FB552F52 (4216663890)\n+711CE0 Compressed Size       00000532 (1330)\n+711CE4 Uncompressed Size     00000532 (1330)\n+711CE8 Filename Length       0048 (72)\n+711CEA Extra Length          0009 (9)\n+711CEC Comment Length        0000 (0)\n+711CEE Disk Start            0000 (0)\n+711CF0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711CF2 Ext File Attributes   00000000 (0)\n+711CF6 Local Header Offset   005EAE4B (6205003)\n+711CFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711CFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711D42 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711D44   Length              0005 (5)\n+711D46   Flags               01 (1) 'Modification'\n+711D47   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711D4B CENTRAL HEADER #1694  02014B50 (33639248)\n+711D4F Created Zip Spec      14 (20) '2.0'\n+711D50 Created OS            00 (0) 'MS-DOS'\n+711D51 Extract Zip Spec      14 (20) '2.0'\n+711D52 Extract OS            00 (0) 'MS-DOS'\n+711D53 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711D55 Compression Method    0000 (0) 'Stored'\n+711D57 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711D5B CRC                   87AAF61F (2276128287)\n+711D5F Compressed Size       000004F6 (1270)\n+711D63 Uncompressed Size     000004F6 (1270)\n+711D67 Filename Length       004F (79)\n+711D69 Extra Length          0009 (9)\n+711D6B Comment Length        0000 (0)\n+711D6D Disk Start            0000 (0)\n+711D6F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711D71 Ext File Attributes   00000000 (0)\n+711D75 Local Header Offset   005EB3FC (6206460)\n+711D79 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711D79: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711DC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711DCA   Length              0005 (5)\n+711DCC   Flags               01 (1) 'Modification'\n+711DCD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711DD1 CENTRAL HEADER #1695  02014B50 (33639248)\n+711DD5 Created Zip Spec      14 (20) '2.0'\n+711DD6 Created OS            00 (0) 'MS-DOS'\n+711DD7 Extract Zip Spec      14 (20) '2.0'\n+711DD8 Extract OS            00 (0) 'MS-DOS'\n+711DD9 General Purpose Flag  0000 (0)\n+711DDB Compression Method    0000 (0) 'Stored'\n+711DDD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711DE1 CRC                   00000000 (0)\n+711DE5 Compressed Size       00000000 (0)\n+711DE9 Uncompressed Size     00000000 (0)\n+711DED Filename Length       0033 (51)\n+711DEF Extra Length          0009 (9)\n+711DF1 Comment Length        0000 (0)\n+711DF3 Disk Start            0000 (0)\n+711DF5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711DF7 Ext File Attributes   00000000 (0)\n+711DFB Local Header Offset   005EB978 (6207864)\n+711DFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711DFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711E32 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711E34   Length              0005 (5)\n+711E36   Flags               01 (1) 'Modification'\n+711E37   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711E3B CENTRAL HEADER #1696  02014B50 (33639248)\n+711E3F Created Zip Spec      14 (20) '2.0'\n+711E40 Created OS            00 (0) 'MS-DOS'\n+711E41 Extract Zip Spec      14 (20) '2.0'\n+711E42 Extract OS            00 (0) 'MS-DOS'\n+711E43 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711E45 Compression Method    0000 (0) 'Stored'\n+711E47 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711E4B CRC                   267D653A (645752122)\n+711E4F Compressed Size       00000532 (1330)\n+711E53 Uncompressed Size     00000532 (1330)\n+711E57 Filename Length       004C (76)\n+711E59 Extra Length          0009 (9)\n+711E5B Comment Length        0000 (0)\n+711E5D Disk Start            0000 (0)\n+711E5F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711E61 Ext File Attributes   00000000 (0)\n+711E65 Local Header Offset   005EB9D2 (6207954)\n+711E69 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711E69: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711EB5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711EB7   Length              0005 (5)\n+711EB9   Flags               01 (1) 'Modification'\n+711EBA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711EBE CENTRAL HEADER #1697  02014B50 (33639248)\n+711EC2 Created Zip Spec      14 (20) '2.0'\n+711EC3 Created OS            00 (0) 'MS-DOS'\n+711EC4 Extract Zip Spec      14 (20) '2.0'\n+711EC5 Extract OS            00 (0) 'MS-DOS'\n+711EC6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711EC8 Compression Method    0000 (0) 'Stored'\n+711ECA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711ECE CRC                   2179F10E (561639694)\n+711ED2 Compressed Size       000004FE (1278)\n+711ED6 Uncompressed Size     000004FE (1278)\n+711EDA Filename Length       0053 (83)\n+711EDC Extra Length          0009 (9)\n+711EDE Comment Length        0000 (0)\n+711EE0 Disk Start            0000 (0)\n+711EE2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711EE4 Ext File Attributes   00000000 (0)\n+711EE8 Local Header Offset   005EBF87 (6209415)\n+711EEC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711EEC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711F3F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711F41   Length              0005 (5)\n+711F43   Flags               01 (1) 'Modification'\n+711F44   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711F48 CENTRAL HEADER #1698  02014B50 (33639248)\n+711F4C Created Zip Spec      14 (20) '2.0'\n+711F4D Created OS            00 (0) 'MS-DOS'\n+711F4E Extract Zip Spec      14 (20) '2.0'\n+711F4F Extract OS            00 (0) 'MS-DOS'\n+711F50 General Purpose Flag  0000 (0)\n+711F52 Compression Method    0000 (0) 'Stored'\n+711F54 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711F58 CRC                   00000000 (0)\n+711F5C Compressed Size       00000000 (0)\n+711F60 Uncompressed Size     00000000 (0)\n+711F64 Filename Length       0031 (49)\n+711F66 Extra Length          0009 (9)\n+711F68 Comment Length        0000 (0)\n+711F6A Disk Start            0000 (0)\n+711F6C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711F6E Ext File Attributes   00000000 (0)\n+711F72 Local Header Offset   005EC50F (6210831)\n+711F76 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711F76: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+711FA7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+711FA9   Length              0005 (5)\n+711FAB   Flags               01 (1) 'Modification'\n+711FAC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+711FB0 CENTRAL HEADER #1699  02014B50 (33639248)\n+711FB4 Created Zip Spec      14 (20) '2.0'\n+711FB5 Created OS            00 (0) 'MS-DOS'\n+711FB6 Extract Zip Spec      14 (20) '2.0'\n+711FB7 Extract OS            00 (0) 'MS-DOS'\n+711FB8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+711FBA Compression Method    0000 (0) 'Stored'\n+711FBC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+711FC0 CRC                   DEAE7474 (3735975028)\n+711FC4 Compressed Size       00002232 (8754)\n+711FC8 Uncompressed Size     00002232 (8754)\n+711FCC Filename Length       0042 (66)\n+711FCE Extra Length          0009 (9)\n+711FD0 Comment Length        0000 (0)\n+711FD2 Disk Start            0000 (0)\n+711FD4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+711FD6 Ext File Attributes   00000000 (0)\n+711FDA Local Header Offset   005EC567 (6210919)\n+711FDE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x711FDE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712020 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712022   Length              0005 (5)\n+712024   Flags               01 (1) 'Modification'\n+712025   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712029 CENTRAL HEADER #1700  02014B50 (33639248)\n+71202D Created Zip Spec      14 (20) '2.0'\n+71202E Created OS            00 (0) 'MS-DOS'\n+71202F Extract Zip Spec      14 (20) '2.0'\n+712030 Extract OS            00 (0) 'MS-DOS'\n+712031 General Purpose Flag  0000 (0)\n+712033 Compression Method    0000 (0) 'Stored'\n+712035 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712039 CRC                   00000000 (0)\n+71203D Compressed Size       00000000 (0)\n+712041 Uncompressed Size     00000000 (0)\n+712045 Filename Length       0037 (55)\n+712047 Extra Length          0009 (9)\n+712049 Comment Length        0000 (0)\n+71204B Disk Start            0000 (0)\n+71204D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71204F Ext File Attributes   00000000 (0)\n+712053 Local Header Offset   005EE812 (6219794)\n+712057 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712057: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71208E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712090   Length              0005 (5)\n+712092   Flags               01 (1) 'Modification'\n+712093   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712097 CENTRAL HEADER #1701  02014B50 (33639248)\n+71209B Created Zip Spec      14 (20) '2.0'\n+71209C Created OS            00 (0) 'MS-DOS'\n+71209D Extract Zip Spec      14 (20) '2.0'\n+71209E Extract OS            00 (0) 'MS-DOS'\n+71209F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7120A1 Compression Method    0000 (0) 'Stored'\n+7120A3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7120A7 CRC                   036D4C42 (57494594)\n+7120AB Compressed Size       00000B63 (2915)\n+7120AF Uncompressed Size     00000B63 (2915)\n+7120B3 Filename Length       0046 (70)\n+7120B5 Extra Length          0009 (9)\n+7120B7 Comment Length        0000 (0)\n+7120B9 Disk Start            0000 (0)\n+7120BB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7120BD Ext File Attributes   00000000 (0)\n+7120C1 Local Header Offset   005EE870 (6219888)\n+7120C5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7120C5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71210B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71210D   Length              0005 (5)\n+71210F   Flags               01 (1) 'Modification'\n+712110   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712114 CENTRAL HEADER #1702  02014B50 (33639248)\n+712118 Created Zip Spec      14 (20) '2.0'\n+712119 Created OS            00 (0) 'MS-DOS'\n+71211A Extract Zip Spec      14 (20) '2.0'\n+71211B Extract OS            00 (0) 'MS-DOS'\n+71211C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71211E Compression Method    0000 (0) 'Stored'\n+712120 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712124 CRC                   27E35EC9 (669212361)\n+712128 Compressed Size       0000080A (2058)\n+71212C Uncompressed Size     0000080A (2058)\n+712130 Filename Length       004E (78)\n+712132 Extra Length          0009 (9)\n+712134 Comment Length        0000 (0)\n+712136 Disk Start            0000 (0)\n+712138 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71213A Ext File Attributes   00000000 (0)\n+71213E Local Header Offset   005EF450 (6222928)\n+712142 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712142: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712190 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712192   Length              0005 (5)\n+712194   Flags               01 (1) 'Modification'\n+712195   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712199 CENTRAL HEADER #1703  02014B50 (33639248)\n+71219D Created Zip Spec      14 (20) '2.0'\n+71219E Created OS            00 (0) 'MS-DOS'\n+71219F Extract Zip Spec      14 (20) '2.0'\n+7121A0 Extract OS            00 (0) 'MS-DOS'\n+7121A1 General Purpose Flag  0000 (0)\n+7121A3 Compression Method    0000 (0) 'Stored'\n+7121A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7121A9 CRC                   00000000 (0)\n+7121AD Compressed Size       00000000 (0)\n+7121B1 Uncompressed Size     00000000 (0)\n+7121B5 Filename Length       0027 (39)\n+7121B7 Extra Length          0009 (9)\n+7121B9 Comment Length        0000 (0)\n+7121BB Disk Start            0000 (0)\n+7121BD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7121BF Ext File Attributes   00000000 (0)\n+7121C3 Local Header Offset   005EFCDF (6225119)\n+7121C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7121C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7121EE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7121F0   Length              0005 (5)\n+7121F2   Flags               01 (1) 'Modification'\n+7121F3   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7121F7 CENTRAL HEADER #1704  02014B50 (33639248)\n+7121FB Created Zip Spec      14 (20) '2.0'\n+7121FC Created OS            00 (0) 'MS-DOS'\n+7121FD Extract Zip Spec      14 (20) '2.0'\n+7121FE Extract OS            00 (0) 'MS-DOS'\n+7121FF General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712201 Compression Method    0000 (0) 'Stored'\n+712203 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712207 CRC                   A6C08F00 (2797637376)\n+71220B Compressed Size       00001361 (4961)\n+71220F Uncompressed Size     00001361 (4961)\n+712213 Filename Length       003D (61)\n+712215 Extra Length          0009 (9)\n+712217 Comment Length        0000 (0)\n+712219 Disk Start            0000 (0)\n+71221B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71221D Ext File Attributes   00000000 (0)\n+712221 Local Header Offset   005EFD2D (6225197)\n+712225 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712225: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712262 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712264   Length              0005 (5)\n+712266   Flags               01 (1) 'Modification'\n+712267   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71226B CENTRAL HEADER #1705  02014B50 (33639248)\n+71226F Created Zip Spec      14 (20) '2.0'\n+712270 Created OS            00 (0) 'MS-DOS'\n+712271 Extract Zip Spec      14 (20) '2.0'\n+712272 Extract OS            00 (0) 'MS-DOS'\n+712273 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712275 Compression Method    0000 (0) 'Stored'\n+712277 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71227B CRC                   FF9ED7FD (4288600061)\n+71227F Compressed Size       00000ECB (3787)\n+712283 Uncompressed Size     00000ECB (3787)\n+712287 Filename Length       003B (59)\n+712289 Extra Length          0009 (9)\n+71228B Comment Length        0000 (0)\n+71228D Disk Start            0000 (0)\n+71228F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712291 Ext File Attributes   00000000 (0)\n+712295 Local Header Offset   005F1102 (6230274)\n+712299 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712299: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7122D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7122D6   Length              0005 (5)\n+7122D8   Flags               01 (1) 'Modification'\n+7122D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7122DD CENTRAL HEADER #1706  02014B50 (33639248)\n+7122E1 Created Zip Spec      14 (20) '2.0'\n+7122E2 Created OS            00 (0) 'MS-DOS'\n+7122E3 Extract Zip Spec      14 (20) '2.0'\n+7122E4 Extract OS            00 (0) 'MS-DOS'\n+7122E5 General Purpose Flag  0000 (0)\n+7122E7 Compression Method    0000 (0) 'Stored'\n+7122E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7122ED CRC                   00000000 (0)\n+7122F1 Compressed Size       00000000 (0)\n+7122F5 Uncompressed Size     00000000 (0)\n+7122F9 Filename Length       0028 (40)\n+7122FB Extra Length          0009 (9)\n+7122FD Comment Length        0000 (0)\n+7122FF Disk Start            0000 (0)\n+712301 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712303 Ext File Attributes   00000000 (0)\n+712307 Local Header Offset   005F203F (6234175)\n+71230B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71230B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712333 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712335   Length              0005 (5)\n+712337   Flags               01 (1) 'Modification'\n+712338   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71233C CENTRAL HEADER #1707  02014B50 (33639248)\n+712340 Created Zip Spec      14 (20) '2.0'\n+712341 Created OS            00 (0) 'MS-DOS'\n+712342 Extract Zip Spec      14 (20) '2.0'\n+712343 Extract OS            00 (0) 'MS-DOS'\n+712344 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712346 Compression Method    0000 (0) 'Stored'\n+712348 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71234C CRC                   33C069B6 (868247990)\n+712350 Compressed Size       000006EC (1772)\n+712354 Uncompressed Size     000006EC (1772)\n+712358 Filename Length       0050 (80)\n+71235A Extra Length          0009 (9)\n+71235C Comment Length        0000 (0)\n+71235E Disk Start            0000 (0)\n+712360 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712362 Ext File Attributes   00000000 (0)\n+712366 Local Header Offset   005F208E (6234254)\n+71236A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71236A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7123BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7123BC   Length              0005 (5)\n+7123BE   Flags               01 (1) 'Modification'\n+7123BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7123C3 CENTRAL HEADER #1708  02014B50 (33639248)\n+7123C7 Created Zip Spec      14 (20) '2.0'\n+7123C8 Created OS            00 (0) 'MS-DOS'\n+7123C9 Extract Zip Spec      14 (20) '2.0'\n+7123CA Extract OS            00 (0) 'MS-DOS'\n+7123CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7123CD Compression Method    0000 (0) 'Stored'\n+7123CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7123D3 CRC                   1A3A8FC1 (440045505)\n+7123D7 Compressed Size       00000EE2 (3810)\n+7123DB Uncompressed Size     00000EE2 (3810)\n+7123DF Filename Length       0045 (69)\n+7123E1 Extra Length          0009 (9)\n+7123E3 Comment Length        0000 (0)\n+7123E5 Disk Start            0000 (0)\n+7123E7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7123E9 Ext File Attributes   00000000 (0)\n+7123ED Local Header Offset   005F2801 (6236161)\n+7123F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7123F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712436 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712438   Length              0005 (5)\n+71243A   Flags               01 (1) 'Modification'\n+71243B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71243F CENTRAL HEADER #1709  02014B50 (33639248)\n+712443 Created Zip Spec      14 (20) '2.0'\n+712444 Created OS            00 (0) 'MS-DOS'\n+712445 Extract Zip Spec      14 (20) '2.0'\n+712446 Extract OS            00 (0) 'MS-DOS'\n+712447 General Purpose Flag  0000 (0)\n+712449 Compression Method    0000 (0) 'Stored'\n+71244B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71244F CRC                   00000000 (0)\n+712453 Compressed Size       00000000 (0)\n+712457 Uncompressed Size     00000000 (0)\n+71245B Filename Length       0029 (41)\n+71245D Extra Length          0009 (9)\n+71245F Comment Length        0000 (0)\n+712461 Disk Start            0000 (0)\n+712463 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712465 Ext File Attributes   00000000 (0)\n+712469 Local Header Offset   005F375F (6240095)\n+71246D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71246D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712496 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712498   Length              0005 (5)\n+71249A   Flags               01 (1) 'Modification'\n+71249B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71249F CENTRAL HEADER #1710  02014B50 (33639248)\n+7124A3 Created Zip Spec      14 (20) '2.0'\n+7124A4 Created OS            00 (0) 'MS-DOS'\n+7124A5 Extract Zip Spec      14 (20) '2.0'\n+7124A6 Extract OS            00 (0) 'MS-DOS'\n+7124A7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7124A9 Compression Method    0000 (0) 'Stored'\n+7124AB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7124AF CRC                   B2FCFE3E (3002924606)\n+7124B3 Compressed Size       0000090C (2316)\n+7124B7 Uncompressed Size     0000090C (2316)\n+7124BB Filename Length       0040 (64)\n+7124BD Extra Length          0009 (9)\n+7124BF Comment Length        0000 (0)\n+7124C1 Disk Start            0000 (0)\n+7124C3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7124C5 Ext File Attributes   00000000 (0)\n+7124C9 Local Header Offset   005F37AF (6240175)\n+7124CD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7124CD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71250D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71250F   Length              0005 (5)\n+712511   Flags               01 (1) 'Modification'\n+712512   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712516 CENTRAL HEADER #1711  02014B50 (33639248)\n+71251A Created Zip Spec      14 (20) '2.0'\n+71251B Created OS            00 (0) 'MS-DOS'\n+71251C Extract Zip Spec      14 (20) '2.0'\n+71251D Extract OS            00 (0) 'MS-DOS'\n+71251E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712520 Compression Method    0000 (0) 'Stored'\n+712522 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712526 CRC                   8FEFC776 (2414856054)\n+71252A Compressed Size       000008CF (2255)\n+71252E Uncompressed Size     000008CF (2255)\n+712532 Filename Length       004F (79)\n+712534 Extra Length          0009 (9)\n+712536 Comment Length        0000 (0)\n+712538 Disk Start            0000 (0)\n+71253A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71253C Ext File Attributes   00000000 (0)\n+712540 Local Header Offset   005F4132 (6242610)\n+712544 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712544: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712593 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712595   Length              0005 (5)\n+712597   Flags               01 (1) 'Modification'\n+712598   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71259C CENTRAL HEADER #1712  02014B50 (33639248)\n+7125A0 Created Zip Spec      14 (20) '2.0'\n+7125A1 Created OS            00 (0) 'MS-DOS'\n+7125A2 Extract Zip Spec      14 (20) '2.0'\n+7125A3 Extract OS            00 (0) 'MS-DOS'\n+7125A4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7125A6 Compression Method    0000 (0) 'Stored'\n+7125A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7125AC CRC                   33BD82F4 (868057844)\n+7125B0 Compressed Size       00000AA3 (2723)\n+7125B4 Uncompressed Size     00000AA3 (2723)\n+7125B8 Filename Length       0049 (73)\n+7125BA Extra Length          0009 (9)\n+7125BC Comment Length        0000 (0)\n+7125BE Disk Start            0000 (0)\n+7125C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7125C2 Ext File Attributes   00000000 (0)\n+7125C6 Local Header Offset   005F4A87 (6244999)\n+7125CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7125CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712613 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712615   Length              0005 (5)\n+712617   Flags               01 (1) 'Modification'\n+712618   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71261C CENTRAL HEADER #1713  02014B50 (33639248)\n+712620 Created Zip Spec      14 (20) '2.0'\n+712621 Created OS            00 (0) 'MS-DOS'\n+712622 Extract Zip Spec      14 (20) '2.0'\n+712623 Extract OS            00 (0) 'MS-DOS'\n+712624 General Purpose Flag  0000 (0)\n+712626 Compression Method    0000 (0) 'Stored'\n+712628 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71262C CRC                   00000000 (0)\n+712630 Compressed Size       00000000 (0)\n+712634 Uncompressed Size     00000000 (0)\n+712638 Filename Length       0029 (41)\n+71263A Extra Length          0009 (9)\n+71263C Comment Length        0000 (0)\n+71263E Disk Start            0000 (0)\n+712640 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712642 Ext File Attributes   00000000 (0)\n+712646 Local Header Offset   005F55AA (6247850)\n+71264A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71264A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712673 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712675   Length              0005 (5)\n+712677   Flags               01 (1) 'Modification'\n+712678   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71267C CENTRAL HEADER #1714  02014B50 (33639248)\n+712680 Created Zip Spec      14 (20) '2.0'\n+712681 Created OS            00 (0) 'MS-DOS'\n+712682 Extract Zip Spec      14 (20) '2.0'\n+712683 Extract OS            00 (0) 'MS-DOS'\n+712684 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712686 Compression Method    0000 (0) 'Stored'\n+712688 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71268C CRC                   BCC9CB9D (3167341469)\n+712690 Compressed Size       000010C1 (4289)\n+712694 Uncompressed Size     000010C1 (4289)\n+712698 Filename Length       0041 (65)\n+71269A Extra Length          0009 (9)\n+71269C Comment Length        0000 (0)\n+71269E Disk Start            0000 (0)\n+7126A0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7126A2 Ext File Attributes   00000000 (0)\n+7126A6 Local Header Offset   005F55FA (6247930)\n+7126AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7126AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7126EB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7126ED   Length              0005 (5)\n+7126EF   Flags               01 (1) 'Modification'\n+7126F0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7126F4 CENTRAL HEADER #1715  02014B50 (33639248)\n+7126F8 Created Zip Spec      14 (20) '2.0'\n+7126F9 Created OS            00 (0) 'MS-DOS'\n+7126FA Extract Zip Spec      14 (20) '2.0'\n+7126FB Extract OS            00 (0) 'MS-DOS'\n+7126FC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7126FE Compression Method    0000 (0) 'Stored'\n+712700 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712704 CRC                   D501B98C (3573660044)\n+712708 Compressed Size       000014EB (5355)\n+71270C Uncompressed Size     000014EB (5355)\n+712710 Filename Length       0047 (71)\n+712712 Extra Length          0009 (9)\n+712714 Comment Length        0000 (0)\n+712716 Disk Start            0000 (0)\n+712718 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71271A Ext File Attributes   00000000 (0)\n+71271E Local Header Offset   005F6733 (6252339)\n+712722 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712722: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712769 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71276B   Length              0005 (5)\n+71276D   Flags               01 (1) 'Modification'\n+71276E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712772 CENTRAL HEADER #1716  02014B50 (33639248)\n+712776 Created Zip Spec      14 (20) '2.0'\n+712777 Created OS            00 (0) 'MS-DOS'\n+712778 Extract Zip Spec      14 (20) '2.0'\n+712779 Extract OS            00 (0) 'MS-DOS'\n+71277A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71277C Compression Method    0000 (0) 'Stored'\n+71277E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712782 CRC                   5955E637 (1498801719)\n+712786 Compressed Size       000015EF (5615)\n+71278A Uncompressed Size     000015EF (5615)\n+71278E Filename Length       0044 (68)\n+712790 Extra Length          0009 (9)\n+712792 Comment Length        0000 (0)\n+712794 Disk Start            0000 (0)\n+712796 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712798 Ext File Attributes   00000000 (0)\n+71279C Local Header Offset   005F7C9C (6257820)\n+7127A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7127A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7127E4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7127E6   Length              0005 (5)\n+7127E8   Flags               01 (1) 'Modification'\n+7127E9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7127ED CENTRAL HEADER #1717  02014B50 (33639248)\n+7127F1 Created Zip Spec      14 (20) '2.0'\n+7127F2 Created OS            00 (0) 'MS-DOS'\n+7127F3 Extract Zip Spec      14 (20) '2.0'\n+7127F4 Extract OS            00 (0) 'MS-DOS'\n+7127F5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7127F7 Compression Method    0000 (0) 'Stored'\n+7127F9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7127FD CRC                   E9DD16E0 (3923580640)\n+712801 Compressed Size       00000D50 (3408)\n+712805 Uncompressed Size     00000D50 (3408)\n+712809 Filename Length       003F (63)\n+71280B Extra Length          0009 (9)\n+71280D Comment Length        0000 (0)\n+71280F Disk Start            0000 (0)\n+712811 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712813 Ext File Attributes   00000000 (0)\n+712817 Local Header Offset   005F9306 (6263558)\n+71281B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71281B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71285A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71285C   Length              0005 (5)\n+71285E   Flags               01 (1) 'Modification'\n+71285F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712863 CENTRAL HEADER #1718  02014B50 (33639248)\n+712867 Created Zip Spec      14 (20) '2.0'\n+712868 Created OS            00 (0) 'MS-DOS'\n+712869 Extract Zip Spec      14 (20) '2.0'\n+71286A Extract OS            00 (0) 'MS-DOS'\n+71286B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71286D Compression Method    0000 (0) 'Stored'\n+71286F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712873 CRC                   B03BDD5E (2956713310)\n+712877 Compressed Size       000012CC (4812)\n+71287B Uncompressed Size     000012CC (4812)\n+71287F Filename Length       0043 (67)\n+712881 Extra Length          0009 (9)\n+712883 Comment Length        0000 (0)\n+712885 Disk Start            0000 (0)\n+712887 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712889 Ext File Attributes   00000000 (0)\n+71288D Local Header Offset   005FA0CC (6267084)\n+712891 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712891: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7128D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7128D6   Length              0005 (5)\n+7128D8   Flags               01 (1) 'Modification'\n+7128D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7128DD CENTRAL HEADER #1719  02014B50 (33639248)\n+7128E1 Created Zip Spec      14 (20) '2.0'\n+7128E2 Created OS            00 (0) 'MS-DOS'\n+7128E3 Extract Zip Spec      14 (20) '2.0'\n+7128E4 Extract OS            00 (0) 'MS-DOS'\n+7128E5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7128E7 Compression Method    0000 (0) 'Stored'\n+7128E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7128ED CRC                   0139FCC5 (20577477)\n+7128F1 Compressed Size       00001239 (4665)\n+7128F5 Uncompressed Size     00001239 (4665)\n+7128F9 Filename Length       0049 (73)\n+7128FB Extra Length          0009 (9)\n+7128FD Comment Length        0000 (0)\n+7128FF Disk Start            0000 (0)\n+712901 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712903 Ext File Attributes   00000000 (0)\n+712907 Local Header Offset   005FB412 (6272018)\n+71290B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71290B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712954 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712956   Length              0005 (5)\n+712958   Flags               01 (1) 'Modification'\n+712959   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71295D CENTRAL HEADER #1720  02014B50 (33639248)\n+712961 Created Zip Spec      14 (20) '2.0'\n+712962 Created OS            00 (0) 'MS-DOS'\n+712963 Extract Zip Spec      14 (20) '2.0'\n+712964 Extract OS            00 (0) 'MS-DOS'\n+712965 General Purpose Flag  0000 (0)\n+712967 Compression Method    0000 (0) 'Stored'\n+712969 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71296D CRC                   00000000 (0)\n+712971 Compressed Size       00000000 (0)\n+712975 Uncompressed Size     00000000 (0)\n+712979 Filename Length       0024 (36)\n+71297B Extra Length          0009 (9)\n+71297D Comment Length        0000 (0)\n+71297F Disk Start            0000 (0)\n+712981 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712983 Ext File Attributes   00000000 (0)\n+712987 Local Header Offset   005FC6CB (6276811)\n+71298B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71298B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7129AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7129B1   Length              0005 (5)\n+7129B3   Flags               01 (1) 'Modification'\n+7129B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7129B8 CENTRAL HEADER #1721  02014B50 (33639248)\n+7129BC Created Zip Spec      14 (20) '2.0'\n+7129BD Created OS            00 (0) 'MS-DOS'\n+7129BE Extract Zip Spec      14 (20) '2.0'\n+7129BF Extract OS            00 (0) 'MS-DOS'\n+7129C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7129C2 Compression Method    0000 (0) 'Stored'\n+7129C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7129C8 CRC                   B70DC735 (3071133493)\n+7129CC Compressed Size       00000959 (2393)\n+7129D0 Uncompressed Size     00000959 (2393)\n+7129D4 Filename Length       0034 (52)\n+7129D6 Extra Length          0009 (9)\n+7129D8 Comment Length        0000 (0)\n+7129DA Disk Start            0000 (0)\n+7129DC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7129DE Ext File Attributes   00000000 (0)\n+7129E2 Local Header Offset   005FC716 (6276886)\n+7129E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7129E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712A1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712A1C   Length              0005 (5)\n+712A1E   Flags               01 (1) 'Modification'\n+712A1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712A23 CENTRAL HEADER #1722  02014B50 (33639248)\n+712A27 Created Zip Spec      14 (20) '2.0'\n+712A28 Created OS            00 (0) 'MS-DOS'\n+712A29 Extract Zip Spec      14 (20) '2.0'\n+712A2A Extract OS            00 (0) 'MS-DOS'\n+712A2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712A2D Compression Method    0000 (0) 'Stored'\n+712A2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712A33 CRC                   5ECBBD86 (1590410630)\n+712A37 Compressed Size       0000068E (1678)\n+712A3B Uncompressed Size     0000068E (1678)\n+712A3F Filename Length       003B (59)\n+712A41 Extra Length          0009 (9)\n+712A43 Comment Length        0000 (0)\n+712A45 Disk Start            0000 (0)\n+712A47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712A49 Ext File Attributes   00000000 (0)\n+712A4D Local Header Offset   005FD0DA (6279386)\n+712A51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712A51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712A8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712A8E   Length              0005 (5)\n+712A90   Flags               01 (1) 'Modification'\n+712A91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712A95 CENTRAL HEADER #1723  02014B50 (33639248)\n+712A99 Created Zip Spec      14 (20) '2.0'\n+712A9A Created OS            00 (0) 'MS-DOS'\n+712A9B Extract Zip Spec      14 (20) '2.0'\n+712A9C Extract OS            00 (0) 'MS-DOS'\n+712A9D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712A9F Compression Method    0000 (0) 'Stored'\n+712AA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712AA5 CRC                   0CC7ECCD (214428877)\n+712AA9 Compressed Size       00000667 (1639)\n+712AAD Uncompressed Size     00000667 (1639)\n+712AB1 Filename Length       0038 (56)\n+712AB3 Extra Length          0009 (9)\n+712AB5 Comment Length        0000 (0)\n+712AB7 Disk Start            0000 (0)\n+712AB9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712ABB Ext File Attributes   00000000 (0)\n+712ABF Local Header Offset   005FD7DA (6281178)\n+712AC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712AC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712AFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712AFD   Length              0005 (5)\n+712AFF   Flags               01 (1) 'Modification'\n+712B00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712B04 CENTRAL HEADER #1724  02014B50 (33639248)\n+712B08 Created Zip Spec      14 (20) '2.0'\n+712B09 Created OS            00 (0) 'MS-DOS'\n+712B0A Extract Zip Spec      14 (20) '2.0'\n+712B0B Extract OS            00 (0) 'MS-DOS'\n+712B0C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712B0E Compression Method    0000 (0) 'Stored'\n+712B10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712B14 CRC                   091CC51B (152880411)\n+712B18 Compressed Size       00000665 (1637)\n+712B1C Uncompressed Size     00000665 (1637)\n+712B20 Filename Length       0038 (56)\n+712B22 Extra Length          0009 (9)\n+712B24 Comment Length        0000 (0)\n+712B26 Disk Start            0000 (0)\n+712B28 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712B2A Ext File Attributes   00000000 (0)\n+712B2E Local Header Offset   005FDEB0 (6282928)\n+712B32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712B32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712B6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712B6C   Length              0005 (5)\n+712B6E   Flags               01 (1) 'Modification'\n+712B6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712B73 CENTRAL HEADER #1725  02014B50 (33639248)\n+712B77 Created Zip Spec      14 (20) '2.0'\n+712B78 Created OS            00 (0) 'MS-DOS'\n+712B79 Extract Zip Spec      14 (20) '2.0'\n+712B7A Extract OS            00 (0) 'MS-DOS'\n+712B7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712B7D Compression Method    0000 (0) 'Stored'\n+712B7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712B83 CRC                   43B612AE (1136005806)\n+712B87 Compressed Size       0000056A (1386)\n+712B8B Uncompressed Size     0000056A (1386)\n+712B8F Filename Length       003A (58)\n+712B91 Extra Length          0009 (9)\n+712B93 Comment Length        0000 (0)\n+712B95 Disk Start            0000 (0)\n+712B97 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712B99 Ext File Attributes   00000000 (0)\n+712B9D Local Header Offset   005FE584 (6284676)\n+712BA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712BA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712BDB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712BDD   Length              0005 (5)\n+712BDF   Flags               01 (1) 'Modification'\n+712BE0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712BE4 CENTRAL HEADER #1726  02014B50 (33639248)\n+712BE8 Created Zip Spec      14 (20) '2.0'\n+712BE9 Created OS            00 (0) 'MS-DOS'\n+712BEA Extract Zip Spec      14 (20) '2.0'\n+712BEB Extract OS            00 (0) 'MS-DOS'\n+712BEC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712BEE Compression Method    0000 (0) 'Stored'\n+712BF0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712BF4 CRC                   DDA728F5 (3718719733)\n+712BF8 Compressed Size       0000066F (1647)\n+712BFC Uncompressed Size     0000066F (1647)\n+712C00 Filename Length       0039 (57)\n+712C02 Extra Length          0009 (9)\n+712C04 Comment Length        0000 (0)\n+712C06 Disk Start            0000 (0)\n+712C08 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712C0A Ext File Attributes   00000000 (0)\n+712C0E Local Header Offset   005FEB5F (6286175)\n+712C12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712C12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712C4B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712C4D   Length              0005 (5)\n+712C4F   Flags               01 (1) 'Modification'\n+712C50   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712C54 CENTRAL HEADER #1727  02014B50 (33639248)\n+712C58 Created Zip Spec      14 (20) '2.0'\n+712C59 Created OS            00 (0) 'MS-DOS'\n+712C5A Extract Zip Spec      14 (20) '2.0'\n+712C5B Extract OS            00 (0) 'MS-DOS'\n+712C5C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712C5E Compression Method    0000 (0) 'Stored'\n+712C60 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712C64 CRC                   389B0984 (949684612)\n+712C68 Compressed Size       0000055A (1370)\n+712C6C Uncompressed Size     0000055A (1370)\n+712C70 Filename Length       0037 (55)\n+712C72 Extra Length          0009 (9)\n+712C74 Comment Length        0000 (0)\n+712C76 Disk Start            0000 (0)\n+712C78 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712C7A Ext File Attributes   00000000 (0)\n+712C7E Local Header Offset   005FF23E (6287934)\n+712C82 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712C82: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712CB9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712CBB   Length              0005 (5)\n+712CBD   Flags               01 (1) 'Modification'\n+712CBE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712CC2 CENTRAL HEADER #1728  02014B50 (33639248)\n+712CC6 Created Zip Spec      14 (20) '2.0'\n+712CC7 Created OS            00 (0) 'MS-DOS'\n+712CC8 Extract Zip Spec      14 (20) '2.0'\n+712CC9 Extract OS            00 (0) 'MS-DOS'\n+712CCA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712CCC Compression Method    0000 (0) 'Stored'\n+712CCE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712CD2 CRC                   792EF15D (2033119581)\n+712CD6 Compressed Size       000005FF (1535)\n+712CDA Uncompressed Size     000005FF (1535)\n+712CDE Filename Length       0033 (51)\n+712CE0 Extra Length          0009 (9)\n+712CE2 Comment Length        0000 (0)\n+712CE4 Disk Start            0000 (0)\n+712CE6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712CE8 Ext File Attributes   00000000 (0)\n+712CEC Local Header Offset   005FF806 (6289414)\n+712CF0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712CF0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712D23 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712D25   Length              0005 (5)\n+712D27   Flags               01 (1) 'Modification'\n+712D28   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712D2C CENTRAL HEADER #1729  02014B50 (33639248)\n+712D30 Created Zip Spec      14 (20) '2.0'\n+712D31 Created OS            00 (0) 'MS-DOS'\n+712D32 Extract Zip Spec      14 (20) '2.0'\n+712D33 Extract OS            00 (0) 'MS-DOS'\n+712D34 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712D36 Compression Method    0000 (0) 'Stored'\n+712D38 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712D3C CRC                   C7E5A422 (3353715746)\n+712D40 Compressed Size       0000055E (1374)\n+712D44 Uncompressed Size     0000055E (1374)\n+712D48 Filename Length       0038 (56)\n+712D4A Extra Length          0009 (9)\n+712D4C Comment Length        0000 (0)\n+712D4E Disk Start            0000 (0)\n+712D50 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712D52 Ext File Attributes   00000000 (0)\n+712D56 Local Header Offset   005FFE6F (6291055)\n+712D5A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712D5A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712D92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712D94   Length              0005 (5)\n+712D96   Flags               01 (1) 'Modification'\n+712D97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712D9B CENTRAL HEADER #1730  02014B50 (33639248)\n+712D9F Created Zip Spec      14 (20) '2.0'\n+712DA0 Created OS            00 (0) 'MS-DOS'\n+712DA1 Extract Zip Spec      14 (20) '2.0'\n+712DA2 Extract OS            00 (0) 'MS-DOS'\n+712DA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712DA5 Compression Method    0000 (0) 'Stored'\n+712DA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712DAB CRC                   2C8707FF (747046911)\n+712DAF Compressed Size       000005E2 (1506)\n+712DB3 Uncompressed Size     000005E2 (1506)\n+712DB7 Filename Length       0032 (50)\n+712DB9 Extra Length          0009 (9)\n+712DBB Comment Length        0000 (0)\n+712DBD Disk Start            0000 (0)\n+712DBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712DC1 Ext File Attributes   00000000 (0)\n+712DC5 Local Header Offset   0060043C (6292540)\n+712DC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712DC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712DFB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712DFD   Length              0005 (5)\n+712DFF   Flags               01 (1) 'Modification'\n+712E00   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712E04 CENTRAL HEADER #1731  02014B50 (33639248)\n+712E08 Created Zip Spec      14 (20) '2.0'\n+712E09 Created OS            00 (0) 'MS-DOS'\n+712E0A Extract Zip Spec      14 (20) '2.0'\n+712E0B Extract OS            00 (0) 'MS-DOS'\n+712E0C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712E0E Compression Method    0000 (0) 'Stored'\n+712E10 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712E14 CRC                   B5B9A154 (3048841556)\n+712E18 Compressed Size       00000B6F (2927)\n+712E1C Uncompressed Size     00000B6F (2927)\n+712E20 Filename Length       0036 (54)\n+712E22 Extra Length          0009 (9)\n+712E24 Comment Length        0000 (0)\n+712E26 Disk Start            0000 (0)\n+712E28 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712E2A Ext File Attributes   00000000 (0)\n+712E2E Local Header Offset   00600A87 (6294151)\n+712E32 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712E32: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712E68 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712E6A   Length              0005 (5)\n+712E6C   Flags               01 (1) 'Modification'\n+712E6D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712E71 CENTRAL HEADER #1732  02014B50 (33639248)\n+712E75 Created Zip Spec      14 (20) '2.0'\n+712E76 Created OS            00 (0) 'MS-DOS'\n+712E77 Extract Zip Spec      14 (20) '2.0'\n+712E78 Extract OS            00 (0) 'MS-DOS'\n+712E79 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712E7B Compression Method    0000 (0) 'Stored'\n+712E7D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712E81 CRC                   B82C3560 (3089904992)\n+712E85 Compressed Size       000005CC (1484)\n+712E89 Uncompressed Size     000005CC (1484)\n+712E8D Filename Length       0032 (50)\n+712E8F Extra Length          0009 (9)\n+712E91 Comment Length        0000 (0)\n+712E93 Disk Start            0000 (0)\n+712E95 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712E97 Ext File Attributes   00000000 (0)\n+712E9B Local Header Offset   00601663 (6297187)\n+712E9F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712E9F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712ED1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712ED3   Length              0005 (5)\n+712ED5   Flags               01 (1) 'Modification'\n+712ED6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712EDA CENTRAL HEADER #1733  02014B50 (33639248)\n+712EDE Created Zip Spec      14 (20) '2.0'\n+712EDF Created OS            00 (0) 'MS-DOS'\n+712EE0 Extract Zip Spec      14 (20) '2.0'\n+712EE1 Extract OS            00 (0) 'MS-DOS'\n+712EE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712EE4 Compression Method    0000 (0) 'Stored'\n+712EE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712EEA CRC                   F57D6E98 (4118638232)\n+712EEE Compressed Size       0000066F (1647)\n+712EF2 Uncompressed Size     0000066F (1647)\n+712EF6 Filename Length       0039 (57)\n+712EF8 Extra Length          0009 (9)\n+712EFA Comment Length        0000 (0)\n+712EFC Disk Start            0000 (0)\n+712EFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712F00 Ext File Attributes   00000000 (0)\n+712F04 Local Header Offset   00601C98 (6298776)\n+712F08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712F08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712F41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712F43   Length              0005 (5)\n+712F45   Flags               01 (1) 'Modification'\n+712F46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712F4A CENTRAL HEADER #1734  02014B50 (33639248)\n+712F4E Created Zip Spec      14 (20) '2.0'\n+712F4F Created OS            00 (0) 'MS-DOS'\n+712F50 Extract Zip Spec      14 (20) '2.0'\n+712F51 Extract OS            00 (0) 'MS-DOS'\n+712F52 General Purpose Flag  0000 (0)\n+712F54 Compression Method    0000 (0) 'Stored'\n+712F56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712F5A CRC                   00000000 (0)\n+712F5E Compressed Size       00000000 (0)\n+712F62 Uncompressed Size     00000000 (0)\n+712F66 Filename Length       0024 (36)\n+712F68 Extra Length          0009 (9)\n+712F6A Comment Length        0000 (0)\n+712F6C Disk Start            0000 (0)\n+712F6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712F70 Ext File Attributes   00000000 (0)\n+712F74 Local Header Offset   00602377 (6300535)\n+712F78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712F78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+712F9C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+712F9E   Length              0005 (5)\n+712FA0   Flags               01 (1) 'Modification'\n+712FA1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+712FA5 CENTRAL HEADER #1735  02014B50 (33639248)\n+712FA9 Created Zip Spec      14 (20) '2.0'\n+712FAA Created OS            00 (0) 'MS-DOS'\n+712FAB Extract Zip Spec      14 (20) '2.0'\n+712FAC Extract OS            00 (0) 'MS-DOS'\n+712FAD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+712FAF Compression Method    0000 (0) 'Stored'\n+712FB1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+712FB5 CRC                   C962C74B (3378693963)\n+712FB9 Compressed Size       00000833 (2099)\n+712FBD Uncompressed Size     00000833 (2099)\n+712FC1 Filename Length       0037 (55)\n+712FC3 Extra Length          0009 (9)\n+712FC5 Comment Length        0000 (0)\n+712FC7 Disk Start            0000 (0)\n+712FC9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+712FCB Ext File Attributes   00000000 (0)\n+712FCF Local Header Offset   006023C2 (6300610)\n+712FD3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x712FD3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71300A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71300C   Length              0005 (5)\n+71300E   Flags               01 (1) 'Modification'\n+71300F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713013 CENTRAL HEADER #1736  02014B50 (33639248)\n+713017 Created Zip Spec      14 (20) '2.0'\n+713018 Created OS            00 (0) 'MS-DOS'\n+713019 Extract Zip Spec      14 (20) '2.0'\n+71301A Extract OS            00 (0) 'MS-DOS'\n+71301B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71301D Compression Method    0000 (0) 'Stored'\n+71301F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713023 CRC                   7A4C73B7 (2051830711)\n+713027 Compressed Size       00000A32 (2610)\n+71302B Uncompressed Size     00000A32 (2610)\n+71302F Filename Length       003B (59)\n+713031 Extra Length          0009 (9)\n+713033 Comment Length        0000 (0)\n+713035 Disk Start            0000 (0)\n+713037 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713039 Ext File Attributes   00000000 (0)\n+71303D Local Header Offset   00602C63 (6302819)\n+713041 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713041: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71307C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71307E   Length              0005 (5)\n+713080   Flags               01 (1) 'Modification'\n+713081   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713085 CENTRAL HEADER #1737  02014B50 (33639248)\n+713089 Created Zip Spec      14 (20) '2.0'\n+71308A Created OS            00 (0) 'MS-DOS'\n+71308B Extract Zip Spec      14 (20) '2.0'\n+71308C Extract OS            00 (0) 'MS-DOS'\n+71308D General Purpose Flag  0000 (0)\n+71308F Compression Method    0000 (0) 'Stored'\n+713091 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713095 CRC                   00000000 (0)\n+713099 Compressed Size       00000000 (0)\n+71309D Uncompressed Size     00000000 (0)\n+7130A1 Filename Length       002E (46)\n+7130A3 Extra Length          0009 (9)\n+7130A5 Comment Length        0000 (0)\n+7130A7 Disk Start            0000 (0)\n+7130A9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7130AB Ext File Attributes   00000000 (0)\n+7130AF Local Header Offset   00603707 (6305543)\n+7130B3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7130B3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7130E1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7130E3   Length              0005 (5)\n+7130E5   Flags               01 (1) 'Modification'\n+7130E6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7130EA CENTRAL HEADER #1738  02014B50 (33639248)\n+7130EE Created Zip Spec      14 (20) '2.0'\n+7130EF Created OS            00 (0) 'MS-DOS'\n+7130F0 Extract Zip Spec      14 (20) '2.0'\n+7130F1 Extract OS            00 (0) 'MS-DOS'\n+7130F2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7130F4 Compression Method    0000 (0) 'Stored'\n+7130F6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7130FA CRC                   BCF898DF (3170408671)\n+7130FE Compressed Size       00003374 (13172)\n+713102 Uncompressed Size     00003374 (13172)\n+713106 Filename Length       0042 (66)\n+713108 Extra Length          0009 (9)\n+71310A Comment Length        0000 (0)\n+71310C Disk Start            0000 (0)\n+71310E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713110 Ext File Attributes   00000000 (0)\n+713114 Local Header Offset   0060375C (6305628)\n+713118 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713118: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71315A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71315C   Length              0005 (5)\n+71315E   Flags               01 (1) 'Modification'\n+71315F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713163 CENTRAL HEADER #1739  02014B50 (33639248)\n+713167 Created Zip Spec      14 (20) '2.0'\n+713168 Created OS            00 (0) 'MS-DOS'\n+713169 Extract Zip Spec      14 (20) '2.0'\n+71316A Extract OS            00 (0) 'MS-DOS'\n+71316B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71316D Compression Method    0000 (0) 'Stored'\n+71316F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713173 CRC                   E35903B0 (3814261680)\n+713177 Compressed Size       00000540 (1344)\n+71317B Uncompressed Size     00000540 (1344)\n+71317F Filename Length       0049 (73)\n+713181 Extra Length          0009 (9)\n+713183 Comment Length        0000 (0)\n+713185 Disk Start            0000 (0)\n+713187 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713189 Ext File Attributes   00000000 (0)\n+71318D Local Header Offset   00606B49 (6318921)\n+713191 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713191: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7131DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7131DC   Length              0005 (5)\n+7131DE   Flags               01 (1) 'Modification'\n+7131DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7131E3 CENTRAL HEADER #1740  02014B50 (33639248)\n+7131E7 Created Zip Spec      14 (20) '2.0'\n+7131E8 Created OS            00 (0) 'MS-DOS'\n+7131E9 Extract Zip Spec      14 (20) '2.0'\n+7131EA Extract OS            00 (0) 'MS-DOS'\n+7131EB General Purpose Flag  0000 (0)\n+7131ED Compression Method    0000 (0) 'Stored'\n+7131EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7131F3 CRC                   00000000 (0)\n+7131F7 Compressed Size       00000000 (0)\n+7131FB Uncompressed Size     00000000 (0)\n+7131FF Filename Length       0035 (53)\n+713201 Extra Length          0009 (9)\n+713203 Comment Length        0000 (0)\n+713205 Disk Start            0000 (0)\n+713207 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713209 Ext File Attributes   00000000 (0)\n+71320D Local Header Offset   00607109 (6320393)\n+713211 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713211: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713246 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713248   Length              0005 (5)\n+71324A   Flags               01 (1) 'Modification'\n+71324B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71324F CENTRAL HEADER #1741  02014B50 (33639248)\n+713253 Created Zip Spec      14 (20) '2.0'\n+713254 Created OS            00 (0) 'MS-DOS'\n+713255 Extract Zip Spec      14 (20) '2.0'\n+713256 Extract OS            00 (0) 'MS-DOS'\n+713257 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713259 Compression Method    0000 (0) 'Stored'\n+71325B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71325F CRC                   9ADBEDAC (2598104492)\n+713263 Compressed Size       000005AF (1455)\n+713267 Uncompressed Size     000005AF (1455)\n+71326B Filename Length       0043 (67)\n+71326D Extra Length          0009 (9)\n+71326F Comment Length        0000 (0)\n+713271 Disk Start            0000 (0)\n+713273 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713275 Ext File Attributes   00000000 (0)\n+713279 Local Header Offset   00607165 (6320485)\n+71327D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71327D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7132C0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7132C2   Length              0005 (5)\n+7132C4   Flags               01 (1) 'Modification'\n+7132C5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7132C9 CENTRAL HEADER #1742  02014B50 (33639248)\n+7132CD Created Zip Spec      14 (20) '2.0'\n+7132CE Created OS            00 (0) 'MS-DOS'\n+7132CF Extract Zip Spec      14 (20) '2.0'\n+7132D0 Extract OS            00 (0) 'MS-DOS'\n+7132D1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7132D3 Compression Method    0000 (0) 'Stored'\n+7132D5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7132D9 CRC                   0E6EFC60 (242154592)\n+7132DD Compressed Size       00000688 (1672)\n+7132E1 Uncompressed Size     00000688 (1672)\n+7132E5 Filename Length       004A (74)\n+7132E7 Extra Length          0009 (9)\n+7132E9 Comment Length        0000 (0)\n+7132EB Disk Start            0000 (0)\n+7132ED Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7132EF Ext File Attributes   00000000 (0)\n+7132F3 Local Header Offset   0060778E (6322062)\n+7132F7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7132F7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713341 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713343   Length              0005 (5)\n+713345   Flags               01 (1) 'Modification'\n+713346   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71334A CENTRAL HEADER #1743  02014B50 (33639248)\n+71334E Created Zip Spec      14 (20) '2.0'\n+71334F Created OS            00 (0) 'MS-DOS'\n+713350 Extract Zip Spec      14 (20) '2.0'\n+713351 Extract OS            00 (0) 'MS-DOS'\n+713352 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713354 Compression Method    0000 (0) 'Stored'\n+713356 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71335A CRC                   44A1E13F (1151459647)\n+71335E Compressed Size       0000149A (5274)\n+713362 Uncompressed Size     0000149A (5274)\n+713366 Filename Length       004A (74)\n+713368 Extra Length          0009 (9)\n+71336A Comment Length        0000 (0)\n+71336C Disk Start            0000 (0)\n+71336E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713370 Ext File Attributes   00000000 (0)\n+713374 Local Header Offset   00607E97 (6323863)\n+713378 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713378: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7133C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7133C4   Length              0005 (5)\n+7133C6   Flags               01 (1) 'Modification'\n+7133C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7133CB CENTRAL HEADER #1744  02014B50 (33639248)\n+7133CF Created Zip Spec      14 (20) '2.0'\n+7133D0 Created OS            00 (0) 'MS-DOS'\n+7133D1 Extract Zip Spec      14 (20) '2.0'\n+7133D2 Extract OS            00 (0) 'MS-DOS'\n+7133D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7133D5 Compression Method    0000 (0) 'Stored'\n+7133D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7133DB CRC                   F0BD77BE (4038948798)\n+7133DF Compressed Size       000005C9 (1481)\n+7133E3 Uncompressed Size     000005C9 (1481)\n+7133E7 Filename Length       0047 (71)\n+7133E9 Extra Length          0009 (9)\n+7133EB Comment Length        0000 (0)\n+7133ED Disk Start            0000 (0)\n+7133EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7133F1 Ext File Attributes   00000000 (0)\n+7133F5 Local Header Offset   006093B2 (6329266)\n+7133F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7133F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713440 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713442   Length              0005 (5)\n+713444   Flags               01 (1) 'Modification'\n+713445   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713449 CENTRAL HEADER #1745  02014B50 (33639248)\n+71344D Created Zip Spec      14 (20) '2.0'\n+71344E Created OS            00 (0) 'MS-DOS'\n+71344F Extract Zip Spec      14 (20) '2.0'\n+713450 Extract OS            00 (0) 'MS-DOS'\n+713451 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713453 Compression Method    0000 (0) 'Stored'\n+713455 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713459 CRC                   6CA6E955 (1822878037)\n+71345D Compressed Size       00000566 (1382)\n+713461 Uncompressed Size     00000566 (1382)\n+713465 Filename Length       004E (78)\n+713467 Extra Length          0009 (9)\n+713469 Comment Length        0000 (0)\n+71346B Disk Start            0000 (0)\n+71346D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71346F Ext File Attributes   00000000 (0)\n+713473 Local Header Offset   006099F9 (6330873)\n+713477 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713477: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7134C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7134C7   Length              0005 (5)\n+7134C9   Flags               01 (1) 'Modification'\n+7134CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7134CE CENTRAL HEADER #1746  02014B50 (33639248)\n+7134D2 Created Zip Spec      14 (20) '2.0'\n+7134D3 Created OS            00 (0) 'MS-DOS'\n+7134D4 Extract Zip Spec      14 (20) '2.0'\n+7134D5 Extract OS            00 (0) 'MS-DOS'\n+7134D6 General Purpose Flag  0000 (0)\n+7134D8 Compression Method    0000 (0) 'Stored'\n+7134DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7134DE CRC                   00000000 (0)\n+7134E2 Compressed Size       00000000 (0)\n+7134E6 Uncompressed Size     00000000 (0)\n+7134EA Filename Length       003B (59)\n+7134EC Extra Length          0009 (9)\n+7134EE Comment Length        0000 (0)\n+7134F0 Disk Start            0000 (0)\n+7134F2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7134F4 Ext File Attributes   00000000 (0)\n+7134F8 Local Header Offset   00609FE4 (6332388)\n+7134FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7134FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713537 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713539   Length              0005 (5)\n+71353B   Flags               01 (1) 'Modification'\n+71353C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713540 CENTRAL HEADER #1747  02014B50 (33639248)\n+713544 Created Zip Spec      14 (20) '2.0'\n+713545 Created OS            00 (0) 'MS-DOS'\n+713546 Extract Zip Spec      14 (20) '2.0'\n+713547 Extract OS            00 (0) 'MS-DOS'\n+713548 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71354A Compression Method    0000 (0) 'Stored'\n+71354C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713550 CRC                   1C57CB8B (475515787)\n+713554 Compressed Size       00000532 (1330)\n+713558 Uncompressed Size     00000532 (1330)\n+71355C Filename Length       0053 (83)\n+71355E Extra Length          0009 (9)\n+713560 Comment Length        0000 (0)\n+713562 Disk Start            0000 (0)\n+713564 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713566 Ext File Attributes   00000000 (0)\n+71356A Local Header Offset   0060A046 (6332486)\n+71356E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71356E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7135C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7135C3   Length              0005 (5)\n+7135C5   Flags               01 (1) 'Modification'\n+7135C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7135CA CENTRAL HEADER #1748  02014B50 (33639248)\n+7135CE Created Zip Spec      14 (20) '2.0'\n+7135CF Created OS            00 (0) 'MS-DOS'\n+7135D0 Extract Zip Spec      14 (20) '2.0'\n+7135D1 Extract OS            00 (0) 'MS-DOS'\n+7135D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7135D4 Compression Method    0000 (0) 'Stored'\n+7135D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7135DA CRC                   CDABD9DC (3450591708)\n+7135DE Compressed Size       0000070B (1803)\n+7135E2 Uncompressed Size     0000070B (1803)\n+7135E6 Filename Length       0053 (83)\n+7135E8 Extra Length          0009 (9)\n+7135EA Comment Length        0000 (0)\n+7135EC Disk Start            0000 (0)\n+7135EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7135F0 Ext File Attributes   00000000 (0)\n+7135F4 Local Header Offset   0060A602 (6333954)\n+7135F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7135F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71364B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71364D   Length              0005 (5)\n+71364F   Flags               01 (1) 'Modification'\n+713650   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713654 CENTRAL HEADER #1749  02014B50 (33639248)\n+713658 Created Zip Spec      14 (20) '2.0'\n+713659 Created OS            00 (0) 'MS-DOS'\n+71365A Extract Zip Spec      14 (20) '2.0'\n+71365B Extract OS            00 (0) 'MS-DOS'\n+71365C General Purpose Flag  0000 (0)\n+71365E Compression Method    0000 (0) 'Stored'\n+713660 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713664 CRC                   00000000 (0)\n+713668 Compressed Size       00000000 (0)\n+71366C Uncompressed Size     00000000 (0)\n+713670 Filename Length       0029 (41)\n+713672 Extra Length          0009 (9)\n+713674 Comment Length        0000 (0)\n+713676 Disk Start            0000 (0)\n+713678 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71367A Ext File Attributes   00000000 (0)\n+71367E Local Header Offset   0060AD97 (6335895)\n+713682 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713682: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7136AB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7136AD   Length              0005 (5)\n+7136AF   Flags               01 (1) 'Modification'\n+7136B0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7136B4 CENTRAL HEADER #1750  02014B50 (33639248)\n+7136B8 Created Zip Spec      14 (20) '2.0'\n+7136B9 Created OS            00 (0) 'MS-DOS'\n+7136BA Extract Zip Spec      14 (20) '2.0'\n+7136BB Extract OS            00 (0) 'MS-DOS'\n+7136BC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7136BE Compression Method    0000 (0) 'Stored'\n+7136C0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7136C4 CRC                   EF9BEB14 (4019972884)\n+7136C8 Compressed Size       00000C80 (3200)\n+7136CC Uncompressed Size     00000C80 (3200)\n+7136D0 Filename Length       003F (63)\n+7136D2 Extra Length          0009 (9)\n+7136D4 Comment Length        0000 (0)\n+7136D6 Disk Start            0000 (0)\n+7136D8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7136DA Ext File Attributes   00000000 (0)\n+7136DE Local Header Offset   0060ADE7 (6335975)\n+7136E2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7136E2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713721 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713723   Length              0005 (5)\n+713725   Flags               01 (1) 'Modification'\n+713726   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71372A CENTRAL HEADER #1751  02014B50 (33639248)\n+71372E Created Zip Spec      14 (20) '2.0'\n+71372F Created OS            00 (0) 'MS-DOS'\n+713730 Extract Zip Spec      14 (20) '2.0'\n+713731 Extract OS            00 (0) 'MS-DOS'\n+713732 General Purpose Flag  0000 (0)\n+713734 Compression Method    0000 (0) 'Stored'\n+713736 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71373A CRC                   00000000 (0)\n+71373E Compressed Size       00000000 (0)\n+713742 Uncompressed Size     00000000 (0)\n+713746 Filename Length       0029 (41)\n+713748 Extra Length          0009 (9)\n+71374A Comment Length        0000 (0)\n+71374C Disk Start            0000 (0)\n+71374E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713750 Ext File Attributes   00000000 (0)\n+713754 Local Header Offset   0060BADD (6339293)\n+713758 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713758: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713781 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713783   Length              0005 (5)\n+713785   Flags               01 (1) 'Modification'\n+713786   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71378A CENTRAL HEADER #1752  02014B50 (33639248)\n+71378E Created Zip Spec      14 (20) '2.0'\n+71378F Created OS            00 (0) 'MS-DOS'\n+713790 Extract Zip Spec      14 (20) '2.0'\n+713791 Extract OS            00 (0) 'MS-DOS'\n+713792 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713794 Compression Method    0000 (0) 'Stored'\n+713796 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71379A CRC                   720B0082 (1913323650)\n+71379E Compressed Size       00000FBA (4026)\n+7137A2 Uncompressed Size     00000FBA (4026)\n+7137A6 Filename Length       0042 (66)\n+7137A8 Extra Length          0009 (9)\n+7137AA Comment Length        0000 (0)\n+7137AC Disk Start            0000 (0)\n+7137AE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7137B0 Ext File Attributes   00000000 (0)\n+7137B4 Local Header Offset   0060BB2D (6339373)\n+7137B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7137B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7137FA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7137FC   Length              0005 (5)\n+7137FE   Flags               01 (1) 'Modification'\n+7137FF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713803 CENTRAL HEADER #1753  02014B50 (33639248)\n+713807 Created Zip Spec      14 (20) '2.0'\n+713808 Created OS            00 (0) 'MS-DOS'\n+713809 Extract Zip Spec      14 (20) '2.0'\n+71380A Extract OS            00 (0) 'MS-DOS'\n+71380B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71380D Compression Method    0000 (0) 'Stored'\n+71380F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713813 CRC                   0EB84276 (246956662)\n+713817 Compressed Size       00000517 (1303)\n+71381B Uncompressed Size     00000517 (1303)\n+71381F Filename Length       003F (63)\n+713821 Extra Length          0009 (9)\n+713823 Comment Length        0000 (0)\n+713825 Disk Start            0000 (0)\n+713827 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713829 Ext File Attributes   00000000 (0)\n+71382D Local Header Offset   0060CB60 (6343520)\n+713831 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713831: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713870 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713872   Length              0005 (5)\n+713874   Flags               01 (1) 'Modification'\n+713875   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713879 CENTRAL HEADER #1754  02014B50 (33639248)\n+71387D Created Zip Spec      14 (20) '2.0'\n+71387E Created OS            00 (0) 'MS-DOS'\n+71387F Extract Zip Spec      14 (20) '2.0'\n+713880 Extract OS            00 (0) 'MS-DOS'\n+713881 General Purpose Flag  0000 (0)\n+713883 Compression Method    0000 (0) 'Stored'\n+713885 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713889 CRC                   00000000 (0)\n+71388D Compressed Size       00000000 (0)\n+713891 Uncompressed Size     00000000 (0)\n+713895 Filename Length       002B (43)\n+713897 Extra Length          0009 (9)\n+713899 Comment Length        0000 (0)\n+71389B Disk Start            0000 (0)\n+71389D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71389F Ext File Attributes   00000000 (0)\n+7138A3 Local Header Offset   0060D0ED (6344941)\n+7138A7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7138A7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7138D2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7138D4   Length              0005 (5)\n+7138D6   Flags               01 (1) 'Modification'\n+7138D7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7138DB CENTRAL HEADER #1755  02014B50 (33639248)\n+7138DF Created Zip Spec      14 (20) '2.0'\n+7138E0 Created OS            00 (0) 'MS-DOS'\n+7138E1 Extract Zip Spec      14 (20) '2.0'\n+7138E2 Extract OS            00 (0) 'MS-DOS'\n+7138E3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7138E5 Compression Method    0000 (0) 'Stored'\n+7138E7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7138EB CRC                   64ACCB0D (1689045773)\n+7138EF Compressed Size       00001B32 (6962)\n+7138F3 Uncompressed Size     00001B32 (6962)\n+7138F7 Filename Length       003C (60)\n+7138F9 Extra Length          0009 (9)\n+7138FB Comment Length        0000 (0)\n+7138FD Disk Start            0000 (0)\n+7138FF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713901 Ext File Attributes   00000000 (0)\n+713905 Local Header Offset   0060D13F (6345023)\n+713909 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713909: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713945 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713947   Length              0005 (5)\n+713949   Flags               01 (1) 'Modification'\n+71394A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71394E CENTRAL HEADER #1756  02014B50 (33639248)\n+713952 Created Zip Spec      14 (20) '2.0'\n+713953 Created OS            00 (0) 'MS-DOS'\n+713954 Extract Zip Spec      14 (20) '2.0'\n+713955 Extract OS            00 (0) 'MS-DOS'\n+713956 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713958 Compression Method    0000 (0) 'Stored'\n+71395A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71395E CRC                   72CD5ED3 (1926061779)\n+713962 Compressed Size       0000069B (1691)\n+713966 Uncompressed Size     0000069B (1691)\n+71396A Filename Length       0043 (67)\n+71396C Extra Length          0009 (9)\n+71396E Comment Length        0000 (0)\n+713970 Disk Start            0000 (0)\n+713972 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713974 Ext File Attributes   00000000 (0)\n+713978 Local Header Offset   0060ECE4 (6352100)\n+71397C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71397C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7139BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7139C1   Length              0005 (5)\n+7139C3   Flags               01 (1) 'Modification'\n+7139C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7139C8 CENTRAL HEADER #1757  02014B50 (33639248)\n+7139CC Created Zip Spec      14 (20) '2.0'\n+7139CD Created OS            00 (0) 'MS-DOS'\n+7139CE Extract Zip Spec      14 (20) '2.0'\n+7139CF Extract OS            00 (0) 'MS-DOS'\n+7139D0 General Purpose Flag  0000 (0)\n+7139D2 Compression Method    0000 (0) 'Stored'\n+7139D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7139D8 CRC                   00000000 (0)\n+7139DC Compressed Size       00000000 (0)\n+7139E0 Uncompressed Size     00000000 (0)\n+7139E4 Filename Length       0028 (40)\n+7139E6 Extra Length          0009 (9)\n+7139E8 Comment Length        0000 (0)\n+7139EA Disk Start            0000 (0)\n+7139EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7139EE Ext File Attributes   00000000 (0)\n+7139F2 Local Header Offset   0060F3F9 (6353913)\n+7139F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7139F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713A1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713A20   Length              0005 (5)\n+713A22   Flags               01 (1) 'Modification'\n+713A23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713A27 CENTRAL HEADER #1758  02014B50 (33639248)\n+713A2B Created Zip Spec      14 (20) '2.0'\n+713A2C Created OS            00 (0) 'MS-DOS'\n+713A2D Extract Zip Spec      14 (20) '2.0'\n+713A2E Extract OS            00 (0) 'MS-DOS'\n+713A2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713A31 Compression Method    0000 (0) 'Stored'\n+713A33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713A37 CRC                   20710777 (544278391)\n+713A3B Compressed Size       00002E80 (11904)\n+713A3F Uncompressed Size     00002E80 (11904)\n+713A43 Filename Length       0036 (54)\n+713A45 Extra Length          0009 (9)\n+713A47 Comment Length        0000 (0)\n+713A49 Disk Start            0000 (0)\n+713A4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713A4D Ext File Attributes   00000000 (0)\n+713A51 Local Header Offset   0060F448 (6353992)\n+713A55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713A55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713A8B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713A8D   Length              0005 (5)\n+713A8F   Flags               01 (1) 'Modification'\n+713A90   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713A94 CENTRAL HEADER #1759  02014B50 (33639248)\n+713A98 Created Zip Spec      14 (20) '2.0'\n+713A99 Created OS            00 (0) 'MS-DOS'\n+713A9A Extract Zip Spec      14 (20) '2.0'\n+713A9B Extract OS            00 (0) 'MS-DOS'\n+713A9C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713A9E Compression Method    0000 (0) 'Stored'\n+713AA0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713AA4 CRC                   1A0DB37D (437105533)\n+713AA8 Compressed Size       00000541 (1345)\n+713AAC Uncompressed Size     00000541 (1345)\n+713AB0 Filename Length       003D (61)\n+713AB2 Extra Length          0009 (9)\n+713AB4 Comment Length        0000 (0)\n+713AB6 Disk Start            0000 (0)\n+713AB8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713ABA Ext File Attributes   00000000 (0)\n+713ABE Local Header Offset   00612335 (6366005)\n+713AC2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713AC2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713AFF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713B01   Length              0005 (5)\n+713B03   Flags               01 (1) 'Modification'\n+713B04   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713B08 CENTRAL HEADER #1760  02014B50 (33639248)\n+713B0C Created Zip Spec      14 (20) '2.0'\n+713B0D Created OS            00 (0) 'MS-DOS'\n+713B0E Extract Zip Spec      14 (20) '2.0'\n+713B0F Extract OS            00 (0) 'MS-DOS'\n+713B10 General Purpose Flag  0000 (0)\n+713B12 Compression Method    0000 (0) 'Stored'\n+713B14 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713B18 CRC                   00000000 (0)\n+713B1C Compressed Size       00000000 (0)\n+713B20 Uncompressed Size     00000000 (0)\n+713B24 Filename Length       002E (46)\n+713B26 Extra Length          0009 (9)\n+713B28 Comment Length        0000 (0)\n+713B2A Disk Start            0000 (0)\n+713B2C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713B2E Ext File Attributes   00000000 (0)\n+713B32 Local Header Offset   006128EA (6367466)\n+713B36 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713B36: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713B64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713B66   Length              0005 (5)\n+713B68   Flags               01 (1) 'Modification'\n+713B69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713B6D CENTRAL HEADER #1761  02014B50 (33639248)\n+713B71 Created Zip Spec      14 (20) '2.0'\n+713B72 Created OS            00 (0) 'MS-DOS'\n+713B73 Extract Zip Spec      14 (20) '2.0'\n+713B74 Extract OS            00 (0) 'MS-DOS'\n+713B75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713B77 Compression Method    0000 (0) 'Stored'\n+713B79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713B7D CRC                   20217A79 (539064953)\n+713B81 Compressed Size       00000528 (1320)\n+713B85 Uncompressed Size     00000528 (1320)\n+713B89 Filename Length       0036 (54)\n+713B8B Extra Length          0009 (9)\n+713B8D Comment Length        0000 (0)\n+713B8F Disk Start            0000 (0)\n+713B91 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713B93 Ext File Attributes   00000000 (0)\n+713B97 Local Header Offset   0061293F (6367551)\n+713B9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713B9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713BD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713BD3   Length              0005 (5)\n+713BD5   Flags               01 (1) 'Modification'\n+713BD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713BDA CENTRAL HEADER #1762  02014B50 (33639248)\n+713BDE Created Zip Spec      14 (20) '2.0'\n+713BDF Created OS            00 (0) 'MS-DOS'\n+713BE0 Extract Zip Spec      14 (20) '2.0'\n+713BE1 Extract OS            00 (0) 'MS-DOS'\n+713BE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713BE4 Compression Method    0000 (0) 'Stored'\n+713BE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713BEA CRC                   EFB59934 (4021655860)\n+713BEE Compressed Size       00000B39 (2873)\n+713BF2 Uncompressed Size     00000B39 (2873)\n+713BF6 Filename Length       0040 (64)\n+713BF8 Extra Length          0009 (9)\n+713BFA Comment Length        0000 (0)\n+713BFC Disk Start            0000 (0)\n+713BFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713C00 Ext File Attributes   00000000 (0)\n+713C04 Local Header Offset   00612ED4 (6368980)\n+713C08 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713C08: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713C48 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713C4A   Length              0005 (5)\n+713C4C   Flags               01 (1) 'Modification'\n+713C4D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713C51 CENTRAL HEADER #1763  02014B50 (33639248)\n+713C55 Created Zip Spec      14 (20) '2.0'\n+713C56 Created OS            00 (0) 'MS-DOS'\n+713C57 Extract Zip Spec      14 (20) '2.0'\n+713C58 Extract OS            00 (0) 'MS-DOS'\n+713C59 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713C5B Compression Method    0000 (0) 'Stored'\n+713C5D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713C61 CRC                   B7F4FBDF (3086285791)\n+713C65 Compressed Size       0000063D (1597)\n+713C69 Uncompressed Size     0000063D (1597)\n+713C6D Filename Length       0040 (64)\n+713C6F Extra Length          0009 (9)\n+713C71 Comment Length        0000 (0)\n+713C73 Disk Start            0000 (0)\n+713C75 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713C77 Ext File Attributes   00000000 (0)\n+713C7B Local Header Offset   00613A84 (6371972)\n+713C7F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713C7F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713CBF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713CC1   Length              0005 (5)\n+713CC3   Flags               01 (1) 'Modification'\n+713CC4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713CC8 CENTRAL HEADER #1764  02014B50 (33639248)\n+713CCC Created Zip Spec      14 (20) '2.0'\n+713CCD Created OS            00 (0) 'MS-DOS'\n+713CCE Extract Zip Spec      14 (20) '2.0'\n+713CCF Extract OS            00 (0) 'MS-DOS'\n+713CD0 General Purpose Flag  0000 (0)\n+713CD2 Compression Method    0000 (0) 'Stored'\n+713CD4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713CD8 CRC                   00000000 (0)\n+713CDC Compressed Size       00000000 (0)\n+713CE0 Uncompressed Size     00000000 (0)\n+713CE4 Filename Length       0025 (37)\n+713CE6 Extra Length          0009 (9)\n+713CE8 Comment Length        0000 (0)\n+713CEA Disk Start            0000 (0)\n+713CEC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713CEE Ext File Attributes   00000000 (0)\n+713CF2 Local Header Offset   00614138 (6373688)\n+713CF6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713CF6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713D1B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713D1D   Length              0005 (5)\n+713D1F   Flags               01 (1) 'Modification'\n+713D20   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713D24 CENTRAL HEADER #1765  02014B50 (33639248)\n+713D28 Created Zip Spec      14 (20) '2.0'\n+713D29 Created OS            00 (0) 'MS-DOS'\n+713D2A Extract Zip Spec      14 (20) '2.0'\n+713D2B Extract OS            00 (0) 'MS-DOS'\n+713D2C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713D2E Compression Method    0000 (0) 'Stored'\n+713D30 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713D34 CRC                   11C1AD74 (297905524)\n+713D38 Compressed Size       00003376 (13174)\n+713D3C Uncompressed Size     00003376 (13174)\n+713D40 Filename Length       0040 (64)\n+713D42 Extra Length          0009 (9)\n+713D44 Comment Length        0000 (0)\n+713D46 Disk Start            0000 (0)\n+713D48 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713D4A Ext File Attributes   00000000 (0)\n+713D4E Local Header Offset   00614184 (6373764)\n+713D52 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713D52: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713D92 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713D94   Length              0005 (5)\n+713D96   Flags               01 (1) 'Modification'\n+713D97   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713D9B CENTRAL HEADER #1766  02014B50 (33639248)\n+713D9F Created Zip Spec      14 (20) '2.0'\n+713DA0 Created OS            00 (0) 'MS-DOS'\n+713DA1 Extract Zip Spec      14 (20) '2.0'\n+713DA2 Extract OS            00 (0) 'MS-DOS'\n+713DA3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713DA5 Compression Method    0000 (0) 'Stored'\n+713DA7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713DAB CRC                   8CA55593 (2359645587)\n+713DAF Compressed Size       00000546 (1350)\n+713DB3 Uncompressed Size     00000546 (1350)\n+713DB7 Filename Length       003A (58)\n+713DB9 Extra Length          0009 (9)\n+713DBB Comment Length        0000 (0)\n+713DBD Disk Start            0000 (0)\n+713DBF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713DC1 Ext File Attributes   00000000 (0)\n+713DC5 Local Header Offset   00617571 (6387057)\n+713DC9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713DC9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713E03 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713E05   Length              0005 (5)\n+713E07   Flags               01 (1) 'Modification'\n+713E08   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713E0C CENTRAL HEADER #1767  02014B50 (33639248)\n+713E10 Created Zip Spec      14 (20) '2.0'\n+713E11 Created OS            00 (0) 'MS-DOS'\n+713E12 Extract Zip Spec      14 (20) '2.0'\n+713E13 Extract OS            00 (0) 'MS-DOS'\n+713E14 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713E16 Compression Method    0000 (0) 'Stored'\n+713E18 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713E1C CRC                   BDD5C58A (3184903562)\n+713E20 Compressed Size       000006DC (1756)\n+713E24 Uncompressed Size     000006DC (1756)\n+713E28 Filename Length       0041 (65)\n+713E2A Extra Length          0009 (9)\n+713E2C Comment Length        0000 (0)\n+713E2E Disk Start            0000 (0)\n+713E30 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713E32 Ext File Attributes   00000000 (0)\n+713E36 Local Header Offset   00617B28 (6388520)\n+713E3A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713E3A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713E7B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713E7D   Length              0005 (5)\n+713E7F   Flags               01 (1) 'Modification'\n+713E80   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713E84 CENTRAL HEADER #1768  02014B50 (33639248)\n+713E88 Created Zip Spec      14 (20) '2.0'\n+713E89 Created OS            00 (0) 'MS-DOS'\n+713E8A Extract Zip Spec      14 (20) '2.0'\n+713E8B Extract OS            00 (0) 'MS-DOS'\n+713E8C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713E8E Compression Method    0000 (0) 'Stored'\n+713E90 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713E94 CRC                   DBE638BA (3689298106)\n+713E98 Compressed Size       00000518 (1304)\n+713E9C Uncompressed Size     00000518 (1304)\n+713EA0 Filename Length       003A (58)\n+713EA2 Extra Length          0009 (9)\n+713EA4 Comment Length        0000 (0)\n+713EA6 Disk Start            0000 (0)\n+713EA8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713EAA Ext File Attributes   00000000 (0)\n+713EAE Local Header Offset   0061827C (6390396)\n+713EB2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713EB2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713EEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713EEE   Length              0005 (5)\n+713EF0   Flags               01 (1) 'Modification'\n+713EF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713EF5 CENTRAL HEADER #1769  02014B50 (33639248)\n+713EF9 Created Zip Spec      14 (20) '2.0'\n+713EFA Created OS            00 (0) 'MS-DOS'\n+713EFB Extract Zip Spec      14 (20) '2.0'\n+713EFC Extract OS            00 (0) 'MS-DOS'\n+713EFD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713EFF Compression Method    0000 (0) 'Stored'\n+713F01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713F05 CRC                   4263898A (1113819530)\n+713F09 Compressed Size       00001420 (5152)\n+713F0D Uncompressed Size     00001420 (5152)\n+713F11 Filename Length       0041 (65)\n+713F13 Extra Length          0009 (9)\n+713F15 Comment Length        0000 (0)\n+713F17 Disk Start            0000 (0)\n+713F19 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713F1B Ext File Attributes   00000000 (0)\n+713F1F Local Header Offset   00618805 (6391813)\n+713F23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713F23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713F64 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713F66   Length              0005 (5)\n+713F68   Flags               01 (1) 'Modification'\n+713F69   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713F6D CENTRAL HEADER #1770  02014B50 (33639248)\n+713F71 Created Zip Spec      14 (20) '2.0'\n+713F72 Created OS            00 (0) 'MS-DOS'\n+713F73 Extract Zip Spec      14 (20) '2.0'\n+713F74 Extract OS            00 (0) 'MS-DOS'\n+713F75 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713F77 Compression Method    0000 (0) 'Stored'\n+713F79 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713F7D CRC                   61647F39 (1633976121)\n+713F81 Compressed Size       0000187C (6268)\n+713F85 Uncompressed Size     0000187C (6268)\n+713F89 Filename Length       0036 (54)\n+713F8B Extra Length          0009 (9)\n+713F8D Comment Length        0000 (0)\n+713F8F Disk Start            0000 (0)\n+713F91 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+713F93 Ext File Attributes   00000000 (0)\n+713F97 Local Header Offset   00619C9D (6397085)\n+713F9B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x713F9B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+713FD1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+713FD3   Length              0005 (5)\n+713FD5   Flags               01 (1) 'Modification'\n+713FD6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+713FDA CENTRAL HEADER #1771  02014B50 (33639248)\n+713FDE Created Zip Spec      14 (20) '2.0'\n+713FDF Created OS            00 (0) 'MS-DOS'\n+713FE0 Extract Zip Spec      14 (20) '2.0'\n+713FE1 Extract OS            00 (0) 'MS-DOS'\n+713FE2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+713FE4 Compression Method    0000 (0) 'Stored'\n+713FE6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+713FEA CRC                   48FD2377 (1224549239)\n+713FEE Compressed Size       00000559 (1369)\n+713FF2 Uncompressed Size     00000559 (1369)\n+713FF6 Filename Length       0039 (57)\n+713FF8 Extra Length          0009 (9)\n+713FFA Comment Length        0000 (0)\n+713FFC Disk Start            0000 (0)\n+713FFE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714000 Ext File Attributes   00000000 (0)\n+714004 Local Header Offset   0061B586 (6403462)\n+714008 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714008: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714041 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714043   Length              0005 (5)\n+714045   Flags               01 (1) 'Modification'\n+714046   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71404A CENTRAL HEADER #1772  02014B50 (33639248)\n+71404E Created Zip Spec      14 (20) '2.0'\n+71404F Created OS            00 (0) 'MS-DOS'\n+714050 Extract Zip Spec      14 (20) '2.0'\n+714051 Extract OS            00 (0) 'MS-DOS'\n+714052 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714054 Compression Method    0000 (0) 'Stored'\n+714056 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71405A CRC                   DAA0DBC8 (3667975112)\n+71405E Compressed Size       00001AD7 (6871)\n+714062 Uncompressed Size     00001AD7 (6871)\n+714066 Filename Length       0040 (64)\n+714068 Extra Length          0009 (9)\n+71406A Comment Length        0000 (0)\n+71406C Disk Start            0000 (0)\n+71406E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714070 Ext File Attributes   00000000 (0)\n+714074 Local Header Offset   0061BB4F (6404943)\n+714078 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714078: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7140B8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7140BA   Length              0005 (5)\n+7140BC   Flags               01 (1) 'Modification'\n+7140BD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7140C1 CENTRAL HEADER #1773  02014B50 (33639248)\n+7140C5 Created Zip Spec      14 (20) '2.0'\n+7140C6 Created OS            00 (0) 'MS-DOS'\n+7140C7 Extract Zip Spec      14 (20) '2.0'\n+7140C8 Extract OS            00 (0) 'MS-DOS'\n+7140C9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7140CB Compression Method    0000 (0) 'Stored'\n+7140CD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7140D1 CRC                   887DA686 (2289936006)\n+7140D5 Compressed Size       00000559 (1369)\n+7140D9 Uncompressed Size     00000559 (1369)\n+7140DD Filename Length       0039 (57)\n+7140DF Extra Length          0009 (9)\n+7140E1 Comment Length        0000 (0)\n+7140E3 Disk Start            0000 (0)\n+7140E5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7140E7 Ext File Attributes   00000000 (0)\n+7140EB Local Header Offset   0061D69D (6411933)\n+7140EF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7140EF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714128 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71412A   Length              0005 (5)\n+71412C   Flags               01 (1) 'Modification'\n+71412D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714131 CENTRAL HEADER #1774  02014B50 (33639248)\n+714135 Created Zip Spec      14 (20) '2.0'\n+714136 Created OS            00 (0) 'MS-DOS'\n+714137 Extract Zip Spec      14 (20) '2.0'\n+714138 Extract OS            00 (0) 'MS-DOS'\n+714139 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71413B Compression Method    0000 (0) 'Stored'\n+71413D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714141 CRC                   A7345C3C (2805226556)\n+714145 Compressed Size       00000B51 (2897)\n+714149 Uncompressed Size     00000B51 (2897)\n+71414D Filename Length       0040 (64)\n+71414F Extra Length          0009 (9)\n+714151 Comment Length        0000 (0)\n+714153 Disk Start            0000 (0)\n+714155 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714157 Ext File Attributes   00000000 (0)\n+71415B Local Header Offset   0061DC66 (6413414)\n+71415F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71415F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71419F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7141A1   Length              0005 (5)\n+7141A3   Flags               01 (1) 'Modification'\n+7141A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7141A8 CENTRAL HEADER #1775  02014B50 (33639248)\n+7141AC Created Zip Spec      14 (20) '2.0'\n+7141AD Created OS            00 (0) 'MS-DOS'\n+7141AE Extract Zip Spec      14 (20) '2.0'\n+7141AF Extract OS            00 (0) 'MS-DOS'\n+7141B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7141B2 Compression Method    0000 (0) 'Stored'\n+7141B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7141B8 CRC                   C412C0D3 (3289563347)\n+7141BC Compressed Size       00000559 (1369)\n+7141C0 Uncompressed Size     00000559 (1369)\n+7141C4 Filename Length       0039 (57)\n+7141C6 Extra Length          0009 (9)\n+7141C8 Comment Length        0000 (0)\n+7141CA Disk Start            0000 (0)\n+7141CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7141CE Ext File Attributes   00000000 (0)\n+7141D2 Local Header Offset   0061E82E (6416430)\n+7141D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7141D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71420F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714211   Length              0005 (5)\n+714213   Flags               01 (1) 'Modification'\n+714214   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714218 CENTRAL HEADER #1776  02014B50 (33639248)\n+71421C Created Zip Spec      14 (20) '2.0'\n+71421D Created OS            00 (0) 'MS-DOS'\n+71421E Extract Zip Spec      14 (20) '2.0'\n+71421F Extract OS            00 (0) 'MS-DOS'\n+714220 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714222 Compression Method    0000 (0) 'Stored'\n+714224 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714228 CRC                   7A3E3AF6 (2050898678)\n+71422C Compressed Size       0000158D (5517)\n+714230 Uncompressed Size     0000158D (5517)\n+714234 Filename Length       0040 (64)\n+714236 Extra Length          0009 (9)\n+714238 Comment Length        0000 (0)\n+71423A Disk Start            0000 (0)\n+71423C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71423E Ext File Attributes   00000000 (0)\n+714242 Local Header Offset   0061EDF7 (6417911)\n+714246 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714246: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714286 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714288   Length              0005 (5)\n+71428A   Flags               01 (1) 'Modification'\n+71428B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71428F CENTRAL HEADER #1777  02014B50 (33639248)\n+714293 Created Zip Spec      14 (20) '2.0'\n+714294 Created OS            00 (0) 'MS-DOS'\n+714295 Extract Zip Spec      14 (20) '2.0'\n+714296 Extract OS            00 (0) 'MS-DOS'\n+714297 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714299 Compression Method    0000 (0) 'Stored'\n+71429B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71429F CRC                   68A40EAC (1755582124)\n+7142A3 Compressed Size       00000559 (1369)\n+7142A7 Uncompressed Size     00000559 (1369)\n+7142AB Filename Length       0039 (57)\n+7142AD Extra Length          0009 (9)\n+7142AF Comment Length        0000 (0)\n+7142B1 Disk Start            0000 (0)\n+7142B3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7142B5 Ext File Attributes   00000000 (0)\n+7142B9 Local Header Offset   006203FB (6423547)\n+7142BD Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7142BD: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7142F6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7142F8   Length              0005 (5)\n+7142FA   Flags               01 (1) 'Modification'\n+7142FB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7142FF CENTRAL HEADER #1778  02014B50 (33639248)\n+714303 Created Zip Spec      14 (20) '2.0'\n+714304 Created OS            00 (0) 'MS-DOS'\n+714305 Extract Zip Spec      14 (20) '2.0'\n+714306 Extract OS            00 (0) 'MS-DOS'\n+714307 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714309 Compression Method    0000 (0) 'Stored'\n+71430B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71430F CRC                   DEA6E3F0 (3735479280)\n+714313 Compressed Size       00000942 (2370)\n+714317 Uncompressed Size     00000942 (2370)\n+71431B Filename Length       0040 (64)\n+71431D Extra Length          0009 (9)\n+71431F Comment Length        0000 (0)\n+714321 Disk Start            0000 (0)\n+714323 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714325 Ext File Attributes   00000000 (0)\n+714329 Local Header Offset   006209C4 (6425028)\n+71432D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71432D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71436D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71436F   Length              0005 (5)\n+714371   Flags               01 (1) 'Modification'\n+714372   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714376 CENTRAL HEADER #1779  02014B50 (33639248)\n+71437A Created Zip Spec      14 (20) '2.0'\n+71437B Created OS            00 (0) 'MS-DOS'\n+71437C Extract Zip Spec      14 (20) '2.0'\n+71437D Extract OS            00 (0) 'MS-DOS'\n+71437E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714380 Compression Method    0000 (0) 'Stored'\n+714382 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714386 CRC                   1E103695 (504379029)\n+71438A Compressed Size       00000555 (1365)\n+71438E Uncompressed Size     00000555 (1365)\n+714392 Filename Length       0038 (56)\n+714394 Extra Length          0009 (9)\n+714396 Comment Length        0000 (0)\n+714398 Disk Start            0000 (0)\n+71439A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71439C Ext File Attributes   00000000 (0)\n+7143A0 Local Header Offset   0062137D (6427517)\n+7143A4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7143A4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7143DC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7143DE   Length              0005 (5)\n+7143E0   Flags               01 (1) 'Modification'\n+7143E1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7143E5 CENTRAL HEADER #1780  02014B50 (33639248)\n+7143E9 Created Zip Spec      14 (20) '2.0'\n+7143EA Created OS            00 (0) 'MS-DOS'\n+7143EB Extract Zip Spec      14 (20) '2.0'\n+7143EC Extract OS            00 (0) 'MS-DOS'\n+7143ED General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7143EF Compression Method    0000 (0) 'Stored'\n+7143F1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7143F5 CRC                   0384CEE3 (59035363)\n+7143F9 Compressed Size       0000153C (5436)\n+7143FD Uncompressed Size     0000153C (5436)\n+714401 Filename Length       003F (63)\n+714403 Extra Length          0009 (9)\n+714405 Comment Length        0000 (0)\n+714407 Disk Start            0000 (0)\n+714409 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71440B Ext File Attributes   00000000 (0)\n+71440F Local Header Offset   00621941 (6428993)\n+714413 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714413: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714452 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714454   Length              0005 (5)\n+714456   Flags               01 (1) 'Modification'\n+714457   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71445B CENTRAL HEADER #1781  02014B50 (33639248)\n+71445F Created Zip Spec      14 (20) '2.0'\n+714460 Created OS            00 (0) 'MS-DOS'\n+714461 Extract Zip Spec      14 (20) '2.0'\n+714462 Extract OS            00 (0) 'MS-DOS'\n+714463 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714465 Compression Method    0000 (0) 'Stored'\n+714467 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71446B CRC                   A4DAB8AE (2765797550)\n+71446F Compressed Size       0000052C (1324)\n+714473 Uncompressed Size     0000052C (1324)\n+714477 Filename Length       003A (58)\n+714479 Extra Length          0009 (9)\n+71447B Comment Length        0000 (0)\n+71447D Disk Start            0000 (0)\n+71447F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714481 Ext File Attributes   00000000 (0)\n+714485 Local Header Offset   00622EF3 (6434547)\n+714489 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714489: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7144C3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7144C5   Length              0005 (5)\n+7144C7   Flags               01 (1) 'Modification'\n+7144C8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7144CC CENTRAL HEADER #1782  02014B50 (33639248)\n+7144D0 Created Zip Spec      14 (20) '2.0'\n+7144D1 Created OS            00 (0) 'MS-DOS'\n+7144D2 Extract Zip Spec      14 (20) '2.0'\n+7144D3 Extract OS            00 (0) 'MS-DOS'\n+7144D4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7144D6 Compression Method    0000 (0) 'Stored'\n+7144D8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7144DC CRC                   FAE0CB59 (4209036121)\n+7144E0 Compressed Size       00001EA2 (7842)\n+7144E4 Uncompressed Size     00001EA2 (7842)\n+7144E8 Filename Length       0041 (65)\n+7144EA Extra Length          0009 (9)\n+7144EC Comment Length        0000 (0)\n+7144EE Disk Start            0000 (0)\n+7144F0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7144F2 Ext File Attributes   00000000 (0)\n+7144F6 Local Header Offset   00623490 (6435984)\n+7144FA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7144FA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71453B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71453D   Length              0005 (5)\n+71453F   Flags               01 (1) 'Modification'\n+714540   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714544 CENTRAL HEADER #1783  02014B50 (33639248)\n+714548 Created Zip Spec      14 (20) '2.0'\n+714549 Created OS            00 (0) 'MS-DOS'\n+71454A Extract Zip Spec      14 (20) '2.0'\n+71454B Extract OS            00 (0) 'MS-DOS'\n+71454C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71454E Compression Method    0000 (0) 'Stored'\n+714550 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714554 CRC                   B9BB0148 (3116040520)\n+714558 Compressed Size       000004AD (1197)\n+71455C Uncompressed Size     000004AD (1197)\n+714560 Filename Length       0043 (67)\n+714562 Extra Length          0009 (9)\n+714564 Comment Length        0000 (0)\n+714566 Disk Start            0000 (0)\n+714568 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71456A Ext File Attributes   00000000 (0)\n+71456E Local Header Offset   006253AA (6443946)\n+714572 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714572: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7145B5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7145B7   Length              0005 (5)\n+7145B9   Flags               01 (1) 'Modification'\n+7145BA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7145BE CENTRAL HEADER #1784  02014B50 (33639248)\n+7145C2 Created Zip Spec      14 (20) '2.0'\n+7145C3 Created OS            00 (0) 'MS-DOS'\n+7145C4 Extract Zip Spec      14 (20) '2.0'\n+7145C5 Extract OS            00 (0) 'MS-DOS'\n+7145C6 General Purpose Flag  0000 (0)\n+7145C8 Compression Method    0000 (0) 'Stored'\n+7145CA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7145CE CRC                   00000000 (0)\n+7145D2 Compressed Size       00000000 (0)\n+7145D6 Uncompressed Size     00000000 (0)\n+7145DA Filename Length       002F (47)\n+7145DC Extra Length          0009 (9)\n+7145DE Comment Length        0000 (0)\n+7145E0 Disk Start            0000 (0)\n+7145E2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7145E4 Ext File Attributes   00000000 (0)\n+7145E8 Local Header Offset   006258D1 (6445265)\n+7145EC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7145EC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71461B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71461D   Length              0005 (5)\n+71461F   Flags               01 (1) 'Modification'\n+714620   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714624 CENTRAL HEADER #1785  02014B50 (33639248)\n+714628 Created Zip Spec      14 (20) '2.0'\n+714629 Created OS            00 (0) 'MS-DOS'\n+71462A Extract Zip Spec      14 (20) '2.0'\n+71462B Extract OS            00 (0) 'MS-DOS'\n+71462C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71462E Compression Method    0000 (0) 'Stored'\n+714630 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714634 CRC                   381C2681 (941368961)\n+714638 Compressed Size       0000047E (1150)\n+71463C Uncompressed Size     0000047E (1150)\n+714640 Filename Length       004E (78)\n+714642 Extra Length          0009 (9)\n+714644 Comment Length        0000 (0)\n+714646 Disk Start            0000 (0)\n+714648 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71464A Ext File Attributes   00000000 (0)\n+71464E Local Header Offset   00625927 (6445351)\n+714652 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714652: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7146A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7146A2   Length              0005 (5)\n+7146A4   Flags               01 (1) 'Modification'\n+7146A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7146A9 CENTRAL HEADER #1786  02014B50 (33639248)\n+7146AD Created Zip Spec      14 (20) '2.0'\n+7146AE Created OS            00 (0) 'MS-DOS'\n+7146AF Extract Zip Spec      14 (20) '2.0'\n+7146B0 Extract OS            00 (0) 'MS-DOS'\n+7146B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7146B3 Compression Method    0000 (0) 'Stored'\n+7146B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7146B9 CRC                   21012AB4 (553724596)\n+7146BD Compressed Size       00000726 (1830)\n+7146C1 Uncompressed Size     00000726 (1830)\n+7146C5 Filename Length       004B (75)\n+7146C7 Extra Length          0009 (9)\n+7146C9 Comment Length        0000 (0)\n+7146CB Disk Start            0000 (0)\n+7146CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7146CF Ext File Attributes   00000000 (0)\n+7146D3 Local Header Offset   00625E2A (6446634)\n+7146D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7146D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714722 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714724   Length              0005 (5)\n+714726   Flags               01 (1) 'Modification'\n+714727   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71472B CENTRAL HEADER #1787  02014B50 (33639248)\n+71472F Created Zip Spec      14 (20) '2.0'\n+714730 Created OS            00 (0) 'MS-DOS'\n+714731 Extract Zip Spec      14 (20) '2.0'\n+714732 Extract OS            00 (0) 'MS-DOS'\n+714733 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714735 Compression Method    0000 (0) 'Stored'\n+714737 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71473B CRC                   06F39E69 (116629097)\n+71473F Compressed Size       00000D2A (3370)\n+714743 Uncompressed Size     00000D2A (3370)\n+714747 Filename Length       0041 (65)\n+714749 Extra Length          0009 (9)\n+71474B Comment Length        0000 (0)\n+71474D Disk Start            0000 (0)\n+71474F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714751 Ext File Attributes   00000000 (0)\n+714755 Local Header Offset   006265D2 (6448594)\n+714759 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714759: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71479A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71479C   Length              0005 (5)\n+71479E   Flags               01 (1) 'Modification'\n+71479F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7147A3 CENTRAL HEADER #1788  02014B50 (33639248)\n+7147A7 Created Zip Spec      14 (20) '2.0'\n+7147A8 Created OS            00 (0) 'MS-DOS'\n+7147A9 Extract Zip Spec      14 (20) '2.0'\n+7147AA Extract OS            00 (0) 'MS-DOS'\n+7147AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7147AD Compression Method    0000 (0) 'Stored'\n+7147AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7147B3 CRC                   34F1D732 (888264498)\n+7147B7 Compressed Size       000003D0 (976)\n+7147BB Uncompressed Size     000003D0 (976)\n+7147BF Filename Length       0041 (65)\n+7147C1 Extra Length          0009 (9)\n+7147C3 Comment Length        0000 (0)\n+7147C5 Disk Start            0000 (0)\n+7147C7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7147C9 Ext File Attributes   00000000 (0)\n+7147CD Local Header Offset   00627374 (6452084)\n+7147D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7147D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714812 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714814   Length              0005 (5)\n+714816   Flags               01 (1) 'Modification'\n+714817   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71481B CENTRAL HEADER #1789  02014B50 (33639248)\n+71481F Created Zip Spec      14 (20) '2.0'\n+714820 Created OS            00 (0) 'MS-DOS'\n+714821 Extract Zip Spec      14 (20) '2.0'\n+714822 Extract OS            00 (0) 'MS-DOS'\n+714823 General Purpose Flag  0000 (0)\n+714825 Compression Method    0000 (0) 'Stored'\n+714827 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71482B CRC                   00000000 (0)\n+71482F Compressed Size       00000000 (0)\n+714833 Uncompressed Size     00000000 (0)\n+714837 Filename Length       002E (46)\n+714839 Extra Length          0009 (9)\n+71483B Comment Length        0000 (0)\n+71483D Disk Start            0000 (0)\n+71483F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714841 Ext File Attributes   00000000 (0)\n+714845 Local Header Offset   006277BC (6453180)\n+714849 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714849: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714877 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714879   Length              0005 (5)\n+71487B   Flags               01 (1) 'Modification'\n+71487C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714880 CENTRAL HEADER #1790  02014B50 (33639248)\n+714884 Created Zip Spec      14 (20) '2.0'\n+714885 Created OS            00 (0) 'MS-DOS'\n+714886 Extract Zip Spec      14 (20) '2.0'\n+714887 Extract OS            00 (0) 'MS-DOS'\n+714888 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71488A Compression Method    0000 (0) 'Stored'\n+71488C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714890 CRC                   5C6630BB (1550201019)\n+714894 Compressed Size       000005AE (1454)\n+714898 Uncompressed Size     000005AE (1454)\n+71489C Filename Length       0043 (67)\n+71489E Extra Length          0009 (9)\n+7148A0 Comment Length        0000 (0)\n+7148A2 Disk Start            0000 (0)\n+7148A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7148A6 Ext File Attributes   00000000 (0)\n+7148AA Local Header Offset   00627811 (6453265)\n+7148AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7148AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7148F1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7148F3   Length              0005 (5)\n+7148F5   Flags               01 (1) 'Modification'\n+7148F6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7148FA CENTRAL HEADER #1791  02014B50 (33639248)\n+7148FE Created Zip Spec      14 (20) '2.0'\n+7148FF Created OS            00 (0) 'MS-DOS'\n+714900 Extract Zip Spec      14 (20) '2.0'\n+714901 Extract OS            00 (0) 'MS-DOS'\n+714902 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714904 Compression Method    0000 (0) 'Stored'\n+714906 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71490A CRC                   CAF28C51 (3404893265)\n+71490E Compressed Size       00002CF4 (11508)\n+714912 Uncompressed Size     00002CF4 (11508)\n+714916 Filename Length       004A (74)\n+714918 Extra Length          0009 (9)\n+71491A Comment Length        0000 (0)\n+71491C Disk Start            0000 (0)\n+71491E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714920 Ext File Attributes   00000000 (0)\n+714924 Local Header Offset   00627E39 (6454841)\n+714928 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714928: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714972 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714974   Length              0005 (5)\n+714976   Flags               01 (1) 'Modification'\n+714977   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71497B CENTRAL HEADER #1792  02014B50 (33639248)\n+71497F Created Zip Spec      14 (20) '2.0'\n+714980 Created OS            00 (0) 'MS-DOS'\n+714981 Extract Zip Spec      14 (20) '2.0'\n+714982 Extract OS            00 (0) 'MS-DOS'\n+714983 General Purpose Flag  0000 (0)\n+714985 Compression Method    0000 (0) 'Stored'\n+714987 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71498B CRC                   00000000 (0)\n+71498F Compressed Size       00000000 (0)\n+714993 Uncompressed Size     00000000 (0)\n+714997 Filename Length       002D (45)\n+714999 Extra Length          0009 (9)\n+71499B Comment Length        0000 (0)\n+71499D Disk Start            0000 (0)\n+71499F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7149A1 Ext File Attributes   00000000 (0)\n+7149A5 Local Header Offset   0062ABAE (6466478)\n+7149A9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7149A9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7149D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7149D8   Length              0005 (5)\n+7149DA   Flags               01 (1) 'Modification'\n+7149DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7149DF CENTRAL HEADER #1793  02014B50 (33639248)\n+7149E3 Created Zip Spec      14 (20) '2.0'\n+7149E4 Created OS            00 (0) 'MS-DOS'\n+7149E5 Extract Zip Spec      14 (20) '2.0'\n+7149E6 Extract OS            00 (0) 'MS-DOS'\n+7149E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7149E9 Compression Method    0000 (0) 'Stored'\n+7149EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7149EF CRC                   36D0D661 (919656033)\n+7149F3 Compressed Size       0000154C (5452)\n+7149F7 Uncompressed Size     0000154C (5452)\n+7149FB Filename Length       0041 (65)\n+7149FD Extra Length          0009 (9)\n+7149FF Comment Length        0000 (0)\n+714A01 Disk Start            0000 (0)\n+714A03 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714A05 Ext File Attributes   00000000 (0)\n+714A09 Local Header Offset   0062AC02 (6466562)\n+714A0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714A0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714A4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714A50   Length              0005 (5)\n+714A52   Flags               01 (1) 'Modification'\n+714A53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714A57 CENTRAL HEADER #1794  02014B50 (33639248)\n+714A5B Created Zip Spec      14 (20) '2.0'\n+714A5C Created OS            00 (0) 'MS-DOS'\n+714A5D Extract Zip Spec      14 (20) '2.0'\n+714A5E Extract OS            00 (0) 'MS-DOS'\n+714A5F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714A61 Compression Method    0000 (0) 'Stored'\n+714A63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714A67 CRC                   A2C265E1 (2730649057)\n+714A6B Compressed Size       00001D45 (7493)\n+714A6F Uncompressed Size     00001D45 (7493)\n+714A73 Filename Length       0044 (68)\n+714A75 Extra Length          0009 (9)\n+714A77 Comment Length        0000 (0)\n+714A79 Disk Start            0000 (0)\n+714A7B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714A7D Ext File Attributes   00000000 (0)\n+714A81 Local Header Offset   0062C1C6 (6472134)\n+714A85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714A85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714AC9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714ACB   Length              0005 (5)\n+714ACD   Flags               01 (1) 'Modification'\n+714ACE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714AD2 CENTRAL HEADER #1795  02014B50 (33639248)\n+714AD6 Created Zip Spec      14 (20) '2.0'\n+714AD7 Created OS            00 (0) 'MS-DOS'\n+714AD8 Extract Zip Spec      14 (20) '2.0'\n+714AD9 Extract OS            00 (0) 'MS-DOS'\n+714ADA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714ADC Compression Method    0000 (0) 'Stored'\n+714ADE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714AE2 CRC                   AEA9AD13 (2930355475)\n+714AE6 Compressed Size       000005BA (1466)\n+714AEA Uncompressed Size     000005BA (1466)\n+714AEE Filename Length       0044 (68)\n+714AF0 Extra Length          0009 (9)\n+714AF2 Comment Length        0000 (0)\n+714AF4 Disk Start            0000 (0)\n+714AF6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714AF8 Ext File Attributes   00000000 (0)\n+714AFC Local Header Offset   0062DF86 (6479750)\n+714B00 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714B00: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714B44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714B46   Length              0005 (5)\n+714B48   Flags               01 (1) 'Modification'\n+714B49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714B4D CENTRAL HEADER #1796  02014B50 (33639248)\n+714B51 Created Zip Spec      14 (20) '2.0'\n+714B52 Created OS            00 (0) 'MS-DOS'\n+714B53 Extract Zip Spec      14 (20) '2.0'\n+714B54 Extract OS            00 (0) 'MS-DOS'\n+714B55 General Purpose Flag  0000 (0)\n+714B57 Compression Method    0000 (0) 'Stored'\n+714B59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714B5D CRC                   00000000 (0)\n+714B61 Compressed Size       00000000 (0)\n+714B65 Uncompressed Size     00000000 (0)\n+714B69 Filename Length       001C (28)\n+714B6B Extra Length          0009 (9)\n+714B6D Comment Length        0000 (0)\n+714B6F Disk Start            0000 (0)\n+714B71 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714B73 Ext File Attributes   00000000 (0)\n+714B77 Local Header Offset   0062E5BB (6481339)\n+714B7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714B7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714B97 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714B99   Length              0005 (5)\n+714B9B   Flags               01 (1) 'Modification'\n+714B9C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714BA0 CENTRAL HEADER #1797  02014B50 (33639248)\n+714BA4 Created Zip Spec      14 (20) '2.0'\n+714BA5 Created OS            00 (0) 'MS-DOS'\n+714BA6 Extract Zip Spec      14 (20) '2.0'\n+714BA7 Extract OS            00 (0) 'MS-DOS'\n+714BA8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714BAA Compression Method    0000 (0) 'Stored'\n+714BAC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714BB0 CRC                   9594ED56 (2509565270)\n+714BB4 Compressed Size       00001E5D (7773)\n+714BB8 Uncompressed Size     00001E5D (7773)\n+714BBC Filename Length       0030 (48)\n+714BBE Extra Length          0009 (9)\n+714BC0 Comment Length        0000 (0)\n+714BC2 Disk Start            0000 (0)\n+714BC4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714BC6 Ext File Attributes   00000000 (0)\n+714BCA Local Header Offset   0062E5FE (6481406)\n+714BCE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714BCE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714BFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714C00   Length              0005 (5)\n+714C02   Flags               01 (1) 'Modification'\n+714C03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714C07 CENTRAL HEADER #1798  02014B50 (33639248)\n+714C0B Created Zip Spec      14 (20) '2.0'\n+714C0C Created OS            00 (0) 'MS-DOS'\n+714C0D Extract Zip Spec      14 (20) '2.0'\n+714C0E Extract OS            00 (0) 'MS-DOS'\n+714C0F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714C11 Compression Method    0000 (0) 'Stored'\n+714C13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714C17 CRC                   B52DE397 (3039683479)\n+714C1B Compressed Size       00001623 (5667)\n+714C1F Uncompressed Size     00001623 (5667)\n+714C23 Filename Length       0032 (50)\n+714C25 Extra Length          0009 (9)\n+714C27 Comment Length        0000 (0)\n+714C29 Disk Start            0000 (0)\n+714C2B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714C2D Ext File Attributes   00000000 (0)\n+714C31 Local Header Offset   006304C2 (6489282)\n+714C35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714C35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714C67 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714C69   Length              0005 (5)\n+714C6B   Flags               01 (1) 'Modification'\n+714C6C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714C70 CENTRAL HEADER #1799  02014B50 (33639248)\n+714C74 Created Zip Spec      14 (20) '2.0'\n+714C75 Created OS            00 (0) 'MS-DOS'\n+714C76 Extract Zip Spec      14 (20) '2.0'\n+714C77 Extract OS            00 (0) 'MS-DOS'\n+714C78 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714C7A Compression Method    0000 (0) 'Stored'\n+714C7C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714C80 CRC                   851F3F00 (2233417472)\n+714C84 Compressed Size       00000723 (1827)\n+714C88 Uncompressed Size     00000723 (1827)\n+714C8C Filename Length       0032 (50)\n+714C8E Extra Length          0009 (9)\n+714C90 Comment Length        0000 (0)\n+714C92 Disk Start            0000 (0)\n+714C94 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714C96 Ext File Attributes   00000000 (0)\n+714C9A Local Header Offset   00631B4E (6495054)\n+714C9E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714C9E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714CD0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714CD2   Length              0005 (5)\n+714CD4   Flags               01 (1) 'Modification'\n+714CD5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714CD9 CENTRAL HEADER #1800  02014B50 (33639248)\n+714CDD Created Zip Spec      14 (20) '2.0'\n+714CDE Created OS            00 (0) 'MS-DOS'\n+714CDF Extract Zip Spec      14 (20) '2.0'\n+714CE0 Extract OS            00 (0) 'MS-DOS'\n+714CE1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714CE3 Compression Method    0000 (0) 'Stored'\n+714CE5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714CE9 CRC                   86FDBE3E (2264776254)\n+714CED Compressed Size       00000FB9 (4025)\n+714CF1 Uncompressed Size     00000FB9 (4025)\n+714CF5 Filename Length       0031 (49)\n+714CF7 Extra Length          0009 (9)\n+714CF9 Comment Length        0000 (0)\n+714CFB Disk Start            0000 (0)\n+714CFD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714CFF Ext File Attributes   00000000 (0)\n+714D03 Local Header Offset   006322DA (6496986)\n+714D07 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714D07: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714D38 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714D3A   Length              0005 (5)\n+714D3C   Flags               01 (1) 'Modification'\n+714D3D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714D41 CENTRAL HEADER #1801  02014B50 (33639248)\n+714D45 Created Zip Spec      14 (20) '2.0'\n+714D46 Created OS            00 (0) 'MS-DOS'\n+714D47 Extract Zip Spec      14 (20) '2.0'\n+714D48 Extract OS            00 (0) 'MS-DOS'\n+714D49 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714D4B Compression Method    0000 (0) 'Stored'\n+714D4D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714D51 CRC                   CA71D506 (3396457734)\n+714D55 Compressed Size       00000D90 (3472)\n+714D59 Uncompressed Size     00000D90 (3472)\n+714D5D Filename Length       0036 (54)\n+714D5F Extra Length          0009 (9)\n+714D61 Comment Length        0000 (0)\n+714D63 Disk Start            0000 (0)\n+714D65 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714D67 Ext File Attributes   00000000 (0)\n+714D6B Local Header Offset   006332FB (6501115)\n+714D6F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714D6F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714DA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714DA7   Length              0005 (5)\n+714DA9   Flags               01 (1) 'Modification'\n+714DAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714DAE CENTRAL HEADER #1802  02014B50 (33639248)\n+714DB2 Created Zip Spec      14 (20) '2.0'\n+714DB3 Created OS            00 (0) 'MS-DOS'\n+714DB4 Extract Zip Spec      14 (20) '2.0'\n+714DB5 Extract OS            00 (0) 'MS-DOS'\n+714DB6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714DB8 Compression Method    0000 (0) 'Stored'\n+714DBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714DBE CRC                   B42DC810 (3022899216)\n+714DC2 Compressed Size       000018CC (6348)\n+714DC6 Uncompressed Size     000018CC (6348)\n+714DCA Filename Length       002E (46)\n+714DCC Extra Length          0009 (9)\n+714DCE Comment Length        0000 (0)\n+714DD0 Disk Start            0000 (0)\n+714DD2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714DD4 Ext File Attributes   00000000 (0)\n+714DD8 Local Header Offset   006340F8 (6504696)\n+714DDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714DDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714E0A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714E0C   Length              0005 (5)\n+714E0E   Flags               01 (1) 'Modification'\n+714E0F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714E13 CENTRAL HEADER #1803  02014B50 (33639248)\n+714E17 Created Zip Spec      14 (20) '2.0'\n+714E18 Created OS            00 (0) 'MS-DOS'\n+714E19 Extract Zip Spec      14 (20) '2.0'\n+714E1A Extract OS            00 (0) 'MS-DOS'\n+714E1B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714E1D Compression Method    0000 (0) 'Stored'\n+714E1F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714E23 CRC                   5D6B9E17 (1567333911)\n+714E27 Compressed Size       00000CC3 (3267)\n+714E2B Uncompressed Size     00000CC3 (3267)\n+714E2F Filename Length       0031 (49)\n+714E31 Extra Length          0009 (9)\n+714E33 Comment Length        0000 (0)\n+714E35 Disk Start            0000 (0)\n+714E37 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714E39 Ext File Attributes   00000000 (0)\n+714E3D Local Header Offset   00635A29 (6511145)\n+714E41 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714E41: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714E72 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714E74   Length              0005 (5)\n+714E76   Flags               01 (1) 'Modification'\n+714E77   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714E7B CENTRAL HEADER #1804  02014B50 (33639248)\n+714E7F Created Zip Spec      14 (20) '2.0'\n+714E80 Created OS            00 (0) 'MS-DOS'\n+714E81 Extract Zip Spec      14 (20) '2.0'\n+714E82 Extract OS            00 (0) 'MS-DOS'\n+714E83 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714E85 Compression Method    0000 (0) 'Stored'\n+714E87 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714E8B CRC                   33E95645 (870929989)\n+714E8F Compressed Size       0000073C (1852)\n+714E93 Uncompressed Size     0000073C (1852)\n+714E97 Filename Length       002B (43)\n+714E99 Extra Length          0009 (9)\n+714E9B Comment Length        0000 (0)\n+714E9D Disk Start            0000 (0)\n+714E9F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714EA1 Ext File Attributes   00000000 (0)\n+714EA5 Local Header Offset   00636754 (6514516)\n+714EA9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714EA9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714ED4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714ED6   Length              0005 (5)\n+714ED8   Flags               01 (1) 'Modification'\n+714ED9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714EDD CENTRAL HEADER #1805  02014B50 (33639248)\n+714EE1 Created Zip Spec      14 (20) '2.0'\n+714EE2 Created OS            00 (0) 'MS-DOS'\n+714EE3 Extract Zip Spec      14 (20) '2.0'\n+714EE4 Extract OS            00 (0) 'MS-DOS'\n+714EE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714EE7 Compression Method    0000 (0) 'Stored'\n+714EE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714EED CRC                   DF14BD96 (3742678422)\n+714EF1 Compressed Size       000016A6 (5798)\n+714EF5 Uncompressed Size     000016A6 (5798)\n+714EF9 Filename Length       0030 (48)\n+714EFB Extra Length          0009 (9)\n+714EFD Comment Length        0000 (0)\n+714EFF Disk Start            0000 (0)\n+714F01 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714F03 Ext File Attributes   00000000 (0)\n+714F07 Local Header Offset   00636EF2 (6516466)\n+714F0B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714F0B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714F3B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714F3D   Length              0005 (5)\n+714F3F   Flags               01 (1) 'Modification'\n+714F40   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714F44 CENTRAL HEADER #1806  02014B50 (33639248)\n+714F48 Created Zip Spec      14 (20) '2.0'\n+714F49 Created OS            00 (0) 'MS-DOS'\n+714F4A Extract Zip Spec      14 (20) '2.0'\n+714F4B Extract OS            00 (0) 'MS-DOS'\n+714F4C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714F4E Compression Method    0000 (0) 'Stored'\n+714F50 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714F54 CRC                   FA17120C (4195815948)\n+714F58 Compressed Size       00000EE2 (3810)\n+714F5C Uncompressed Size     00000EE2 (3810)\n+714F60 Filename Length       0033 (51)\n+714F62 Extra Length          0009 (9)\n+714F64 Comment Length        0000 (0)\n+714F66 Disk Start            0000 (0)\n+714F68 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714F6A Ext File Attributes   00000000 (0)\n+714F6E Local Header Offset   006385FF (6522367)\n+714F72 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714F72: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+714FA5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+714FA7   Length              0005 (5)\n+714FA9   Flags               01 (1) 'Modification'\n+714FAA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+714FAE CENTRAL HEADER #1807  02014B50 (33639248)\n+714FB2 Created Zip Spec      14 (20) '2.0'\n+714FB3 Created OS            00 (0) 'MS-DOS'\n+714FB4 Extract Zip Spec      14 (20) '2.0'\n+714FB5 Extract OS            00 (0) 'MS-DOS'\n+714FB6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+714FB8 Compression Method    0000 (0) 'Stored'\n+714FBA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+714FBE CRC                   8B21CC44 (2334248004)\n+714FC2 Compressed Size       0000343B (13371)\n+714FC6 Uncompressed Size     0000343B (13371)\n+714FCA Filename Length       002E (46)\n+714FCC Extra Length          0009 (9)\n+714FCE Comment Length        0000 (0)\n+714FD0 Disk Start            0000 (0)\n+714FD2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+714FD4 Ext File Attributes   00000000 (0)\n+714FD8 Local Header Offset   0063954B (6526283)\n+714FDC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x714FDC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71500A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71500C   Length              0005 (5)\n+71500E   Flags               01 (1) 'Modification'\n+71500F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715013 CENTRAL HEADER #1808  02014B50 (33639248)\n+715017 Created Zip Spec      14 (20) '2.0'\n+715018 Created OS            00 (0) 'MS-DOS'\n+715019 Extract Zip Spec      14 (20) '2.0'\n+71501A Extract OS            00 (0) 'MS-DOS'\n+71501B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71501D Compression Method    0000 (0) 'Stored'\n+71501F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715023 CRC                   BDC74FB9 (3183955897)\n+715027 Compressed Size       00002C1E (11294)\n+71502B Uncompressed Size     00002C1E (11294)\n+71502F Filename Length       0032 (50)\n+715031 Extra Length          0009 (9)\n+715033 Comment Length        0000 (0)\n+715035 Disk Start            0000 (0)\n+715037 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715039 Ext File Attributes   00000000 (0)\n+71503D Local Header Offset   0063C9EB (6539755)\n+715041 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715041: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715073 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715075   Length              0005 (5)\n+715077   Flags               01 (1) 'Modification'\n+715078   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71507C CENTRAL HEADER #1809  02014B50 (33639248)\n+715080 Created Zip Spec      14 (20) '2.0'\n+715081 Created OS            00 (0) 'MS-DOS'\n+715082 Extract Zip Spec      14 (20) '2.0'\n+715083 Extract OS            00 (0) 'MS-DOS'\n+715084 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715086 Compression Method    0000 (0) 'Stored'\n+715088 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71508C CRC                   4BE7E92F (1273489711)\n+715090 Compressed Size       00000B3B (2875)\n+715094 Uncompressed Size     00000B3B (2875)\n+715098 Filename Length       002E (46)\n+71509A Extra Length          0009 (9)\n+71509C Comment Length        0000 (0)\n+71509E Disk Start            0000 (0)\n+7150A0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7150A2 Ext File Attributes   00000000 (0)\n+7150A6 Local Header Offset   0063F672 (6551154)\n+7150AA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7150AA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7150D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7150DA   Length              0005 (5)\n+7150DC   Flags               01 (1) 'Modification'\n+7150DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7150E1 CENTRAL HEADER #1810  02014B50 (33639248)\n+7150E5 Created Zip Spec      14 (20) '2.0'\n+7150E6 Created OS            00 (0) 'MS-DOS'\n+7150E7 Extract Zip Spec      14 (20) '2.0'\n+7150E8 Extract OS            00 (0) 'MS-DOS'\n+7150E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7150EB Compression Method    0000 (0) 'Stored'\n+7150ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7150F1 CRC                   EE9BE4CE (4003194062)\n+7150F5 Compressed Size       00000A15 (2581)\n+7150F9 Uncompressed Size     00000A15 (2581)\n+7150FD Filename Length       002C (44)\n+7150FF Extra Length          0009 (9)\n+715101 Comment Length        0000 (0)\n+715103 Disk Start            0000 (0)\n+715105 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715107 Ext File Attributes   00000000 (0)\n+71510B Local Header Offset   00640212 (6554130)\n+71510F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71510F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71513B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71513D   Length              0005 (5)\n+71513F   Flags               01 (1) 'Modification'\n+715140   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715144 CENTRAL HEADER #1811  02014B50 (33639248)\n+715148 Created Zip Spec      14 (20) '2.0'\n+715149 Created OS            00 (0) 'MS-DOS'\n+71514A Extract Zip Spec      14 (20) '2.0'\n+71514B Extract OS            00 (0) 'MS-DOS'\n+71514C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71514E Compression Method    0000 (0) 'Stored'\n+715150 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715154 CRC                   930DE3AE (2467161006)\n+715158 Compressed Size       00000A3C (2620)\n+71515C Uncompressed Size     00000A3C (2620)\n+715160 Filename Length       002F (47)\n+715162 Extra Length          0009 (9)\n+715164 Comment Length        0000 (0)\n+715166 Disk Start            0000 (0)\n+715168 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71516A Ext File Attributes   00000000 (0)\n+71516E Local Header Offset   00640C8A (6556810)\n+715172 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715172: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7151A1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7151A3   Length              0005 (5)\n+7151A5   Flags               01 (1) 'Modification'\n+7151A6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7151AA CENTRAL HEADER #1812  02014B50 (33639248)\n+7151AE Created Zip Spec      14 (20) '2.0'\n+7151AF Created OS            00 (0) 'MS-DOS'\n+7151B0 Extract Zip Spec      14 (20) '2.0'\n+7151B1 Extract OS            00 (0) 'MS-DOS'\n+7151B2 General Purpose Flag  0000 (0)\n+7151B4 Compression Method    0000 (0) 'Stored'\n+7151B6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7151BA CRC                   00000000 (0)\n+7151BE Compressed Size       00000000 (0)\n+7151C2 Uncompressed Size     00000000 (0)\n+7151C6 Filename Length       0020 (32)\n+7151C8 Extra Length          0009 (9)\n+7151CA Comment Length        0000 (0)\n+7151CC Disk Start            0000 (0)\n+7151CE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7151D0 Ext File Attributes   00000000 (0)\n+7151D4 Local Header Offset   0064172C (6559532)\n+7151D8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7151D8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7151F8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7151FA   Length              0005 (5)\n+7151FC   Flags               01 (1) 'Modification'\n+7151FD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715201 CENTRAL HEADER #1813  02014B50 (33639248)\n+715205 Created Zip Spec      14 (20) '2.0'\n+715206 Created OS            00 (0) 'MS-DOS'\n+715207 Extract Zip Spec      14 (20) '2.0'\n+715208 Extract OS            00 (0) 'MS-DOS'\n+715209 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71520B Compression Method    0000 (0) 'Stored'\n+71520D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715211 CRC                   184AAEF9 (407547641)\n+715215 Compressed Size       00000ADF (2783)\n+715219 Uncompressed Size     00000ADF (2783)\n+71521D Filename Length       0036 (54)\n+71521F Extra Length          0009 (9)\n+715221 Comment Length        0000 (0)\n+715223 Disk Start            0000 (0)\n+715225 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715227 Ext File Attributes   00000000 (0)\n+71522B Local Header Offset   00641773 (6559603)\n+71522F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71522F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715265 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715267   Length              0005 (5)\n+715269   Flags               01 (1) 'Modification'\n+71526A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71526E CENTRAL HEADER #1814  02014B50 (33639248)\n+715272 Created Zip Spec      14 (20) '2.0'\n+715273 Created OS            00 (0) 'MS-DOS'\n+715274 Extract Zip Spec      14 (20) '2.0'\n+715275 Extract OS            00 (0) 'MS-DOS'\n+715276 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715278 Compression Method    0000 (0) 'Stored'\n+71527A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71527E CRC                   3867D7AC (946329516)\n+715282 Compressed Size       00000A70 (2672)\n+715286 Uncompressed Size     00000A70 (2672)\n+71528A Filename Length       002D (45)\n+71528C Extra Length          0009 (9)\n+71528E Comment Length        0000 (0)\n+715290 Disk Start            0000 (0)\n+715292 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715294 Ext File Attributes   00000000 (0)\n+715298 Local Header Offset   006422BF (6562495)\n+71529C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71529C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7152C9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7152CB   Length              0005 (5)\n+7152CD   Flags               01 (1) 'Modification'\n+7152CE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7152D2 CENTRAL HEADER #1815  02014B50 (33639248)\n+7152D6 Created Zip Spec      14 (20) '2.0'\n+7152D7 Created OS            00 (0) 'MS-DOS'\n+7152D8 Extract Zip Spec      14 (20) '2.0'\n+7152D9 Extract OS            00 (0) 'MS-DOS'\n+7152DA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7152DC Compression Method    0000 (0) 'Stored'\n+7152DE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7152E2 CRC                   00E586BE (15042238)\n+7152E6 Compressed Size       00000678 (1656)\n+7152EA Uncompressed Size     00000678 (1656)\n+7152EE Filename Length       002F (47)\n+7152F0 Extra Length          0009 (9)\n+7152F2 Comment Length        0000 (0)\n+7152F4 Disk Start            0000 (0)\n+7152F6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7152F8 Ext File Attributes   00000000 (0)\n+7152FC Local Header Offset   00642D93 (6565267)\n+715300 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715300: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71532F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715331   Length              0005 (5)\n+715333   Flags               01 (1) 'Modification'\n+715334   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715338 CENTRAL HEADER #1816  02014B50 (33639248)\n+71533C Created Zip Spec      14 (20) '2.0'\n+71533D Created OS            00 (0) 'MS-DOS'\n+71533E Extract Zip Spec      14 (20) '2.0'\n+71533F Extract OS            00 (0) 'MS-DOS'\n+715340 General Purpose Flag  0000 (0)\n+715342 Compression Method    0000 (0) 'Stored'\n+715344 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715348 CRC                   00000000 (0)\n+71534C Compressed Size       00000000 (0)\n+715350 Uncompressed Size     00000000 (0)\n+715354 Filename Length       001E (30)\n+715356 Extra Length          0009 (9)\n+715358 Comment Length        0000 (0)\n+71535A Disk Start            0000 (0)\n+71535C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71535E Ext File Attributes   00000000 (0)\n+715362 Local Header Offset   00643471 (6567025)\n+715366 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715366: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715384 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715386   Length              0005 (5)\n+715388   Flags               01 (1) 'Modification'\n+715389   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71538D CENTRAL HEADER #1817  02014B50 (33639248)\n+715391 Created Zip Spec      14 (20) '2.0'\n+715392 Created OS            00 (0) 'MS-DOS'\n+715393 Extract Zip Spec      14 (20) '2.0'\n+715394 Extract OS            00 (0) 'MS-DOS'\n+715395 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715397 Compression Method    0000 (0) 'Stored'\n+715399 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71539D CRC                   E1C5881F (3787819039)\n+7153A1 Compressed Size       000006AD (1709)\n+7153A5 Uncompressed Size     000006AD (1709)\n+7153A9 Filename Length       003C (60)\n+7153AB Extra Length          0009 (9)\n+7153AD Comment Length        0000 (0)\n+7153AF Disk Start            0000 (0)\n+7153B1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7153B3 Ext File Attributes   00000000 (0)\n+7153B7 Local Header Offset   006434B6 (6567094)\n+7153BB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7153BB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7153F7 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7153F9   Length              0005 (5)\n+7153FB   Flags               01 (1) 'Modification'\n+7153FC   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715400 CENTRAL HEADER #1818  02014B50 (33639248)\n+715404 Created Zip Spec      14 (20) '2.0'\n+715405 Created OS            00 (0) 'MS-DOS'\n+715406 Extract Zip Spec      14 (20) '2.0'\n+715407 Extract OS            00 (0) 'MS-DOS'\n+715408 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71540A Compression Method    0000 (0) 'Stored'\n+71540C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715410 CRC                   FE9FE6BA (4271892154)\n+715414 Compressed Size       00000515 (1301)\n+715418 Uncompressed Size     00000515 (1301)\n+71541C Filename Length       003A (58)\n+71541E Extra Length          0009 (9)\n+715420 Comment Length        0000 (0)\n+715422 Disk Start            0000 (0)\n+715424 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715426 Ext File Attributes   00000000 (0)\n+71542A Local Header Offset   00643BD6 (6568918)\n+71542E Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71542E: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715468 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71546A   Length              0005 (5)\n+71546C   Flags               01 (1) 'Modification'\n+71546D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715471 CENTRAL HEADER #1819  02014B50 (33639248)\n+715475 Created Zip Spec      14 (20) '2.0'\n+715476 Created OS            00 (0) 'MS-DOS'\n+715477 Extract Zip Spec      14 (20) '2.0'\n+715478 Extract OS            00 (0) 'MS-DOS'\n+715479 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71547B Compression Method    0000 (0) 'Stored'\n+71547D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715481 CRC                   07F77085 (133656709)\n+715485 Compressed Size       000004F7 (1271)\n+715489 Uncompressed Size     000004F7 (1271)\n+71548D Filename Length       0039 (57)\n+71548F Extra Length          0009 (9)\n+715491 Comment Length        0000 (0)\n+715493 Disk Start            0000 (0)\n+715495 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715497 Ext File Attributes   00000000 (0)\n+71549B Local Header Offset   0064415C (6570332)\n+71549F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71549F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7154D8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7154DA   Length              0005 (5)\n+7154DC   Flags               01 (1) 'Modification'\n+7154DD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7154E1 CENTRAL HEADER #1820  02014B50 (33639248)\n+7154E5 Created Zip Spec      14 (20) '2.0'\n+7154E6 Created OS            00 (0) 'MS-DOS'\n+7154E7 Extract Zip Spec      14 (20) '2.0'\n+7154E8 Extract OS            00 (0) 'MS-DOS'\n+7154E9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7154EB Compression Method    0000 (0) 'Stored'\n+7154ED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7154F1 CRC                   334FA791 (860858257)\n+7154F5 Compressed Size       00000C9A (3226)\n+7154F9 Uncompressed Size     00000C9A (3226)\n+7154FD Filename Length       003A (58)\n+7154FF Extra Length          0009 (9)\n+715501 Comment Length        0000 (0)\n+715503 Disk Start            0000 (0)\n+715505 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715507 Ext File Attributes   00000000 (0)\n+71550B Local Header Offset   006446C3 (6571715)\n+71550F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71550F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715549 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71554B   Length              0005 (5)\n+71554D   Flags               01 (1) 'Modification'\n+71554E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715552 CENTRAL HEADER #1821  02014B50 (33639248)\n+715556 Created Zip Spec      14 (20) '2.0'\n+715557 Created OS            00 (0) 'MS-DOS'\n+715558 Extract Zip Spec      14 (20) '2.0'\n+715559 Extract OS            00 (0) 'MS-DOS'\n+71555A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71555C Compression Method    0000 (0) 'Stored'\n+71555E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715562 CRC                   5C26FEE4 (1546059492)\n+715566 Compressed Size       00000D57 (3415)\n+71556A Uncompressed Size     00000D57 (3415)\n+71556E Filename Length       0039 (57)\n+715570 Extra Length          0009 (9)\n+715572 Comment Length        0000 (0)\n+715574 Disk Start            0000 (0)\n+715576 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715578 Ext File Attributes   00000000 (0)\n+71557C Local Header Offset   006453CE (6575054)\n+715580 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715580: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7155B9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7155BB   Length              0005 (5)\n+7155BD   Flags               01 (1) 'Modification'\n+7155BE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7155C2 CENTRAL HEADER #1822  02014B50 (33639248)\n+7155C6 Created Zip Spec      14 (20) '2.0'\n+7155C7 Created OS            00 (0) 'MS-DOS'\n+7155C8 Extract Zip Spec      14 (20) '2.0'\n+7155C9 Extract OS            00 (0) 'MS-DOS'\n+7155CA General Purpose Flag  0000 (0)\n+7155CC Compression Method    0000 (0) 'Stored'\n+7155CE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7155D2 CRC                   00000000 (0)\n+7155D6 Compressed Size       00000000 (0)\n+7155DA Uncompressed Size     00000000 (0)\n+7155DE Filename Length       001B (27)\n+7155E0 Extra Length          0009 (9)\n+7155E2 Comment Length        0000 (0)\n+7155E4 Disk Start            0000 (0)\n+7155E6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7155E8 Ext File Attributes   00000000 (0)\n+7155EC Local Header Offset   00646195 (6578581)\n+7155F0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7155F0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71560B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71560D   Length              0005 (5)\n+71560F   Flags               01 (1) 'Modification'\n+715610   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715614 CENTRAL HEADER #1823  02014B50 (33639248)\n+715618 Created Zip Spec      14 (20) '2.0'\n+715619 Created OS            00 (0) 'MS-DOS'\n+71561A Extract Zip Spec      14 (20) '2.0'\n+71561B Extract OS            00 (0) 'MS-DOS'\n+71561C General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71561E Compression Method    0000 (0) 'Stored'\n+715620 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715624 CRC                   63368ED1 (1664519889)\n+715628 Compressed Size       000003FE (1022)\n+71562C Uncompressed Size     000003FE (1022)\n+715630 Filename Length       0037 (55)\n+715632 Extra Length          0009 (9)\n+715634 Comment Length        0000 (0)\n+715636 Disk Start            0000 (0)\n+715638 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71563A Ext File Attributes   00000000 (0)\n+71563E Local Header Offset   006461D7 (6578647)\n+715642 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715642: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715679 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71567B   Length              0005 (5)\n+71567D   Flags               01 (1) 'Modification'\n+71567E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715682 CENTRAL HEADER #1824  02014B50 (33639248)\n+715686 Created Zip Spec      14 (20) '2.0'\n+715687 Created OS            00 (0) 'MS-DOS'\n+715688 Extract Zip Spec      14 (20) '2.0'\n+715689 Extract OS            00 (0) 'MS-DOS'\n+71568A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71568C Compression Method    0000 (0) 'Stored'\n+71568E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715692 CRC                   876E0335 (2272133941)\n+715696 Compressed Size       00001328 (4904)\n+71569A Uncompressed Size     00001328 (4904)\n+71569E Filename Length       0030 (48)\n+7156A0 Extra Length          0009 (9)\n+7156A2 Comment Length        0000 (0)\n+7156A4 Disk Start            0000 (0)\n+7156A6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7156A8 Ext File Attributes   00000000 (0)\n+7156AC Local Header Offset   00646643 (6579779)\n+7156B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7156B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7156E0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7156E2   Length              0005 (5)\n+7156E4   Flags               01 (1) 'Modification'\n+7156E5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7156E9 CENTRAL HEADER #1825  02014B50 (33639248)\n+7156ED Created Zip Spec      14 (20) '2.0'\n+7156EE Created OS            00 (0) 'MS-DOS'\n+7156EF Extract Zip Spec      14 (20) '2.0'\n+7156F0 Extract OS            00 (0) 'MS-DOS'\n+7156F1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7156F3 Compression Method    0000 (0) 'Stored'\n+7156F5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7156F9 CRC                   1E67CB82 (510118786)\n+7156FD Compressed Size       00000A90 (2704)\n+715701 Uncompressed Size     00000A90 (2704)\n+715705 Filename Length       002F (47)\n+715707 Extra Length          0009 (9)\n+715709 Comment Length        0000 (0)\n+71570B Disk Start            0000 (0)\n+71570D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71570F Ext File Attributes   00000000 (0)\n+715713 Local Header Offset   006479D2 (6584786)\n+715717 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715717: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715746 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715748   Length              0005 (5)\n+71574A   Flags               01 (1) 'Modification'\n+71574B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71574F CENTRAL HEADER #1826  02014B50 (33639248)\n+715753 Created Zip Spec      14 (20) '2.0'\n+715754 Created OS            00 (0) 'MS-DOS'\n+715755 Extract Zip Spec      14 (20) '2.0'\n+715756 Extract OS            00 (0) 'MS-DOS'\n+715757 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715759 Compression Method    0000 (0) 'Stored'\n+71575B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71575F CRC                   61CAA47B (1640670331)\n+715763 Compressed Size       000003DE (990)\n+715767 Uncompressed Size     000003DE (990)\n+71576B Filename Length       0036 (54)\n+71576D Extra Length          0009 (9)\n+71576F Comment Length        0000 (0)\n+715771 Disk Start            0000 (0)\n+715773 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715775 Ext File Attributes   00000000 (0)\n+715779 Local Header Offset   006484C8 (6587592)\n+71577D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71577D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7157B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7157B5   Length              0005 (5)\n+7157B7   Flags               01 (1) 'Modification'\n+7157B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7157BC CENTRAL HEADER #1827  02014B50 (33639248)\n+7157C0 Created Zip Spec      14 (20) '2.0'\n+7157C1 Created OS            00 (0) 'MS-DOS'\n+7157C2 Extract Zip Spec      14 (20) '2.0'\n+7157C3 Extract OS            00 (0) 'MS-DOS'\n+7157C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7157C6 Compression Method    0000 (0) 'Stored'\n+7157C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7157CC CRC                   607FF27E (1618997886)\n+7157D0 Compressed Size       00000C53 (3155)\n+7157D4 Uncompressed Size     00000C53 (3155)\n+7157D8 Filename Length       0033 (51)\n+7157DA Extra Length          0009 (9)\n+7157DC Comment Length        0000 (0)\n+7157DE Disk Start            0000 (0)\n+7157E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7157E2 Ext File Attributes   00000000 (0)\n+7157E6 Local Header Offset   00648913 (6588691)\n+7157EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7157EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71581D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71581F   Length              0005 (5)\n+715821   Flags               01 (1) 'Modification'\n+715822   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715826 CENTRAL HEADER #1828  02014B50 (33639248)\n+71582A Created Zip Spec      14 (20) '2.0'\n+71582B Created OS            00 (0) 'MS-DOS'\n+71582C Extract Zip Spec      14 (20) '2.0'\n+71582D Extract OS            00 (0) 'MS-DOS'\n+71582E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715830 Compression Method    0000 (0) 'Stored'\n+715832 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715836 CRC                   7B7924E9 (2071536873)\n+71583A Compressed Size       00001C78 (7288)\n+71583E Uncompressed Size     00001C78 (7288)\n+715842 Filename Length       002D (45)\n+715844 Extra Length          0009 (9)\n+715846 Comment Length        0000 (0)\n+715848 Disk Start            0000 (0)\n+71584A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71584C Ext File Attributes   00000000 (0)\n+715850 Local Header Offset   006495D0 (6591952)\n+715854 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715854: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715881 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715883   Length              0005 (5)\n+715885   Flags               01 (1) 'Modification'\n+715886   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71588A CENTRAL HEADER #1829  02014B50 (33639248)\n+71588E Created Zip Spec      14 (20) '2.0'\n+71588F Created OS            00 (0) 'MS-DOS'\n+715890 Extract Zip Spec      14 (20) '2.0'\n+715891 Extract OS            00 (0) 'MS-DOS'\n+715892 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715894 Compression Method    0000 (0) 'Stored'\n+715896 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71589A CRC                   707F9167 (1887408487)\n+71589E Compressed Size       00000C0D (3085)\n+7158A2 Uncompressed Size     00000C0D (3085)\n+7158A6 Filename Length       0030 (48)\n+7158A8 Extra Length          0009 (9)\n+7158AA Comment Length        0000 (0)\n+7158AC Disk Start            0000 (0)\n+7158AE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7158B0 Ext File Attributes   00000000 (0)\n+7158B4 Local Header Offset   0064B2AC (6599340)\n+7158B8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7158B8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7158E8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7158EA   Length              0005 (5)\n+7158EC   Flags               01 (1) 'Modification'\n+7158ED   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7158F1 CENTRAL HEADER #1830  02014B50 (33639248)\n+7158F5 Created Zip Spec      14 (20) '2.0'\n+7158F6 Created OS            00 (0) 'MS-DOS'\n+7158F7 Extract Zip Spec      14 (20) '2.0'\n+7158F8 Extract OS            00 (0) 'MS-DOS'\n+7158F9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7158FB Compression Method    0000 (0) 'Stored'\n+7158FD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715901 CRC                   FDA638C9 (4255529161)\n+715905 Compressed Size       00000AC1 (2753)\n+715909 Uncompressed Size     00000AC1 (2753)\n+71590D Filename Length       0033 (51)\n+71590F Extra Length          0009 (9)\n+715911 Comment Length        0000 (0)\n+715913 Disk Start            0000 (0)\n+715915 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715917 Ext File Attributes   00000000 (0)\n+71591B Local Header Offset   0064BF20 (6602528)\n+71591F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71591F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715952 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715954   Length              0005 (5)\n+715956   Flags               01 (1) 'Modification'\n+715957   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71595B CENTRAL HEADER #1831  02014B50 (33639248)\n+71595F Created Zip Spec      14 (20) '2.0'\n+715960 Created OS            00 (0) 'MS-DOS'\n+715961 Extract Zip Spec      14 (20) '2.0'\n+715962 Extract OS            00 (0) 'MS-DOS'\n+715963 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715965 Compression Method    0000 (0) 'Stored'\n+715967 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71596B CRC                   5FA42AEE (1604594414)\n+71596F Compressed Size       00001ADA (6874)\n+715973 Uncompressed Size     00001ADA (6874)\n+715977 Filename Length       002D (45)\n+715979 Extra Length          0009 (9)\n+71597B Comment Length        0000 (0)\n+71597D Disk Start            0000 (0)\n+71597F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715981 Ext File Attributes   00000000 (0)\n+715985 Local Header Offset   0064CA4B (6605387)\n+715989 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715989: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7159B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7159B8   Length              0005 (5)\n+7159BA   Flags               01 (1) 'Modification'\n+7159BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7159BF CENTRAL HEADER #1832  02014B50 (33639248)\n+7159C3 Created Zip Spec      14 (20) '2.0'\n+7159C4 Created OS            00 (0) 'MS-DOS'\n+7159C5 Extract Zip Spec      14 (20) '2.0'\n+7159C6 Extract OS            00 (0) 'MS-DOS'\n+7159C7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7159C9 Compression Method    0000 (0) 'Stored'\n+7159CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7159CF CRC                   619FED81 (1637870977)\n+7159D3 Compressed Size       00001181 (4481)\n+7159D7 Uncompressed Size     00001181 (4481)\n+7159DB Filename Length       0031 (49)\n+7159DD Extra Length          0009 (9)\n+7159DF Comment Length        0000 (0)\n+7159E1 Disk Start            0000 (0)\n+7159E3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7159E5 Ext File Attributes   00000000 (0)\n+7159E9 Local Header Offset   0064E589 (6612361)\n+7159ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7159ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715A1E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715A20   Length              0005 (5)\n+715A22   Flags               01 (1) 'Modification'\n+715A23   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715A27 CENTRAL HEADER #1833  02014B50 (33639248)\n+715A2B Created Zip Spec      14 (20) '2.0'\n+715A2C Created OS            00 (0) 'MS-DOS'\n+715A2D Extract Zip Spec      14 (20) '2.0'\n+715A2E Extract OS            00 (0) 'MS-DOS'\n+715A2F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715A31 Compression Method    0000 (0) 'Stored'\n+715A33 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715A37 CRC                   E8166721 (3893782305)\n+715A3B Compressed Size       00000C82 (3202)\n+715A3F Uncompressed Size     00000C82 (3202)\n+715A43 Filename Length       002F (47)\n+715A45 Extra Length          0009 (9)\n+715A47 Comment Length        0000 (0)\n+715A49 Disk Start            0000 (0)\n+715A4B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715A4D Ext File Attributes   00000000 (0)\n+715A51 Local Header Offset   0064F772 (6616946)\n+715A55 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715A55: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715A84 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715A86   Length              0005 (5)\n+715A88   Flags               01 (1) 'Modification'\n+715A89   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715A8D CENTRAL HEADER #1834  02014B50 (33639248)\n+715A91 Created Zip Spec      14 (20) '2.0'\n+715A92 Created OS            00 (0) 'MS-DOS'\n+715A93 Extract Zip Spec      14 (20) '2.0'\n+715A94 Extract OS            00 (0) 'MS-DOS'\n+715A95 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715A97 Compression Method    0000 (0) 'Stored'\n+715A99 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715A9D CRC                   363316B0 (909317808)\n+715AA1 Compressed Size       00001D36 (7478)\n+715AA5 Uncompressed Size     00001D36 (7478)\n+715AA9 Filename Length       0031 (49)\n+715AAB Extra Length          0009 (9)\n+715AAD Comment Length        0000 (0)\n+715AAF Disk Start            0000 (0)\n+715AB1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715AB3 Ext File Attributes   00000000 (0)\n+715AB7 Local Header Offset   0065045A (6620250)\n+715ABB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715ABB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715AEC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715AEE   Length              0005 (5)\n+715AF0   Flags               01 (1) 'Modification'\n+715AF1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715AF5 CENTRAL HEADER #1835  02014B50 (33639248)\n+715AF9 Created Zip Spec      14 (20) '2.0'\n+715AFA Created OS            00 (0) 'MS-DOS'\n+715AFB Extract Zip Spec      14 (20) '2.0'\n+715AFC Extract OS            00 (0) 'MS-DOS'\n+715AFD General Purpose Flag  0000 (0)\n+715AFF Compression Method    0000 (0) 'Stored'\n+715B01 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715B05 CRC                   00000000 (0)\n+715B09 Compressed Size       00000000 (0)\n+715B0D Uncompressed Size     00000000 (0)\n+715B11 Filename Length       001E (30)\n+715B13 Extra Length          0009 (9)\n+715B15 Comment Length        0000 (0)\n+715B17 Disk Start            0000 (0)\n+715B19 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715B1B Ext File Attributes   00000000 (0)\n+715B1F Local Header Offset   006521F8 (6627832)\n+715B23 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715B23: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715B41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715B43   Length              0005 (5)\n+715B45   Flags               01 (1) 'Modification'\n+715B46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715B4A CENTRAL HEADER #1836  02014B50 (33639248)\n+715B4E Created Zip Spec      14 (20) '2.0'\n+715B4F Created OS            00 (0) 'MS-DOS'\n+715B50 Extract Zip Spec      14 (20) '2.0'\n+715B51 Extract OS            00 (0) 'MS-DOS'\n+715B52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715B54 Compression Method    0000 (0) 'Stored'\n+715B56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715B5A CRC                   EC8B751D (3968562461)\n+715B5E Compressed Size       000008F6 (2294)\n+715B62 Uncompressed Size     000008F6 (2294)\n+715B66 Filename Length       0033 (51)\n+715B68 Extra Length          0009 (9)\n+715B6A Comment Length        0000 (0)\n+715B6C Disk Start            0000 (0)\n+715B6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715B70 Ext File Attributes   00000000 (0)\n+715B74 Local Header Offset   0065223D (6627901)\n+715B78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715B78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715BAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715BAD   Length              0005 (5)\n+715BAF   Flags               01 (1) 'Modification'\n+715BB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715BB4 CENTRAL HEADER #1837  02014B50 (33639248)\n+715BB8 Created Zip Spec      14 (20) '2.0'\n+715BB9 Created OS            00 (0) 'MS-DOS'\n+715BBA Extract Zip Spec      14 (20) '2.0'\n+715BBB Extract OS            00 (0) 'MS-DOS'\n+715BBC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715BBE Compression Method    0000 (0) 'Stored'\n+715BC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715BC4 CRC                   62F535FA (1660237306)\n+715BC8 Compressed Size       00002022 (8226)\n+715BCC Uncompressed Size     00002022 (8226)\n+715BD0 Filename Length       0032 (50)\n+715BD2 Extra Length          0009 (9)\n+715BD4 Comment Length        0000 (0)\n+715BD6 Disk Start            0000 (0)\n+715BD8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715BDA Ext File Attributes   00000000 (0)\n+715BDE Local Header Offset   00652B9D (6630301)\n+715BE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715BE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715C14 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715C16   Length              0005 (5)\n+715C18   Flags               01 (1) 'Modification'\n+715C19   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715C1D CENTRAL HEADER #1838  02014B50 (33639248)\n+715C21 Created Zip Spec      14 (20) '2.0'\n+715C22 Created OS            00 (0) 'MS-DOS'\n+715C23 Extract Zip Spec      14 (20) '2.0'\n+715C24 Extract OS            00 (0) 'MS-DOS'\n+715C25 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715C27 Compression Method    0000 (0) 'Stored'\n+715C29 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715C2D CRC                   56578DF7 (1448578551)\n+715C31 Compressed Size       00001172 (4466)\n+715C35 Uncompressed Size     00001172 (4466)\n+715C39 Filename Length       0033 (51)\n+715C3B Extra Length          0009 (9)\n+715C3D Comment Length        0000 (0)\n+715C3F Disk Start            0000 (0)\n+715C41 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715C43 Ext File Attributes   00000000 (0)\n+715C47 Local Header Offset   00654C28 (6638632)\n+715C4B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715C4B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715C7E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715C80   Length              0005 (5)\n+715C82   Flags               01 (1) 'Modification'\n+715C83   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715C87 CENTRAL HEADER #1839  02014B50 (33639248)\n+715C8B Created Zip Spec      14 (20) '2.0'\n+715C8C Created OS            00 (0) 'MS-DOS'\n+715C8D Extract Zip Spec      14 (20) '2.0'\n+715C8E Extract OS            00 (0) 'MS-DOS'\n+715C8F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715C91 Compression Method    0000 (0) 'Stored'\n+715C93 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715C97 CRC                   1140D3D7 (289461207)\n+715C9B Compressed Size       000021E4 (8676)\n+715C9F Uncompressed Size     000021E4 (8676)\n+715CA3 Filename Length       0038 (56)\n+715CA5 Extra Length          0009 (9)\n+715CA7 Comment Length        0000 (0)\n+715CA9 Disk Start            0000 (0)\n+715CAB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715CAD Ext File Attributes   00000000 (0)\n+715CB1 Local Header Offset   00655E04 (6643204)\n+715CB5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715CB5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715CED Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715CEF   Length              0005 (5)\n+715CF1   Flags               01 (1) 'Modification'\n+715CF2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715CF6 CENTRAL HEADER #1840  02014B50 (33639248)\n+715CFA Created Zip Spec      14 (20) '2.0'\n+715CFB Created OS            00 (0) 'MS-DOS'\n+715CFC Extract Zip Spec      14 (20) '2.0'\n+715CFD Extract OS            00 (0) 'MS-DOS'\n+715CFE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715D00 Compression Method    0000 (0) 'Stored'\n+715D02 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715D06 CRC                   B6A13567 (3064018279)\n+715D0A Compressed Size       00000FBC (4028)\n+715D0E Uncompressed Size     00000FBC (4028)\n+715D12 Filename Length       0035 (53)\n+715D14 Extra Length          0009 (9)\n+715D16 Comment Length        0000 (0)\n+715D18 Disk Start            0000 (0)\n+715D1A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715D1C Ext File Attributes   00000000 (0)\n+715D20 Local Header Offset   00658057 (6651991)\n+715D24 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715D24: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715D59 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715D5B   Length              0005 (5)\n+715D5D   Flags               01 (1) 'Modification'\n+715D5E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715D62 CENTRAL HEADER #1841  02014B50 (33639248)\n+715D66 Created Zip Spec      14 (20) '2.0'\n+715D67 Created OS            00 (0) 'MS-DOS'\n+715D68 Extract Zip Spec      14 (20) '2.0'\n+715D69 Extract OS            00 (0) 'MS-DOS'\n+715D6A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715D6C Compression Method    0000 (0) 'Stored'\n+715D6E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715D72 CRC                   0A163D1E (169229598)\n+715D76 Compressed Size       0000101E (4126)\n+715D7A Uncompressed Size     0000101E (4126)\n+715D7E Filename Length       002D (45)\n+715D80 Extra Length          0009 (9)\n+715D82 Comment Length        0000 (0)\n+715D84 Disk Start            0000 (0)\n+715D86 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715D88 Ext File Attributes   00000000 (0)\n+715D8C Local Header Offset   0065907F (6656127)\n+715D90 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715D90: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715DBD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715DBF   Length              0005 (5)\n+715DC1   Flags               01 (1) 'Modification'\n+715DC2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715DC6 CENTRAL HEADER #1842  02014B50 (33639248)\n+715DCA Created Zip Spec      14 (20) '2.0'\n+715DCB Created OS            00 (0) 'MS-DOS'\n+715DCC Extract Zip Spec      14 (20) '2.0'\n+715DCD Extract OS            00 (0) 'MS-DOS'\n+715DCE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715DD0 Compression Method    0000 (0) 'Stored'\n+715DD2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715DD6 CRC                   873A5673 (2268747379)\n+715DDA Compressed Size       0000072D (1837)\n+715DDE Uncompressed Size     0000072D (1837)\n+715DE2 Filename Length       0031 (49)\n+715DE4 Extra Length          0009 (9)\n+715DE6 Comment Length        0000 (0)\n+715DE8 Disk Start            0000 (0)\n+715DEA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715DEC Ext File Attributes   00000000 (0)\n+715DF0 Local Header Offset   0065A101 (6660353)\n+715DF4 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715DF4: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715E25 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715E27   Length              0005 (5)\n+715E29   Flags               01 (1) 'Modification'\n+715E2A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715E2E CENTRAL HEADER #1843  02014B50 (33639248)\n+715E32 Created Zip Spec      14 (20) '2.0'\n+715E33 Created OS            00 (0) 'MS-DOS'\n+715E34 Extract Zip Spec      14 (20) '2.0'\n+715E35 Extract OS            00 (0) 'MS-DOS'\n+715E36 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715E38 Compression Method    0000 (0) 'Stored'\n+715E3A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715E3E CRC                   B63E72D7 (3057545943)\n+715E42 Compressed Size       00000D50 (3408)\n+715E46 Uncompressed Size     00000D50 (3408)\n+715E4A Filename Length       0038 (56)\n+715E4C Extra Length          0009 (9)\n+715E4E Comment Length        0000 (0)\n+715E50 Disk Start            0000 (0)\n+715E52 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715E54 Ext File Attributes   00000000 (0)\n+715E58 Local Header Offset   0065A896 (6662294)\n+715E5C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715E5C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715E94 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715E96   Length              0005 (5)\n+715E98   Flags               01 (1) 'Modification'\n+715E99   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715E9D CENTRAL HEADER #1844  02014B50 (33639248)\n+715EA1 Created Zip Spec      14 (20) '2.0'\n+715EA2 Created OS            00 (0) 'MS-DOS'\n+715EA3 Extract Zip Spec      14 (20) '2.0'\n+715EA4 Extract OS            00 (0) 'MS-DOS'\n+715EA5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715EA7 Compression Method    0000 (0) 'Stored'\n+715EA9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715EAD CRC                   C40EC84E (3289303118)\n+715EB1 Compressed Size       00000D18 (3352)\n+715EB5 Uncompressed Size     00000D18 (3352)\n+715EB9 Filename Length       003A (58)\n+715EBB Extra Length          0009 (9)\n+715EBD Comment Length        0000 (0)\n+715EBF Disk Start            0000 (0)\n+715EC1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715EC3 Ext File Attributes   00000000 (0)\n+715EC7 Local Header Offset   0065B655 (6665813)\n+715ECB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715ECB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715F05 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715F07   Length              0005 (5)\n+715F09   Flags               01 (1) 'Modification'\n+715F0A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715F0E CENTRAL HEADER #1845  02014B50 (33639248)\n+715F12 Created Zip Spec      14 (20) '2.0'\n+715F13 Created OS            00 (0) 'MS-DOS'\n+715F14 Extract Zip Spec      14 (20) '2.0'\n+715F15 Extract OS            00 (0) 'MS-DOS'\n+715F16 General Purpose Flag  0000 (0)\n+715F18 Compression Method    0000 (0) 'Stored'\n+715F1A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715F1E CRC                   00000000 (0)\n+715F22 Compressed Size       00000000 (0)\n+715F26 Uncompressed Size     00000000 (0)\n+715F2A Filename Length       0024 (36)\n+715F2C Extra Length          0009 (9)\n+715F2E Comment Length        0000 (0)\n+715F30 Disk Start            0000 (0)\n+715F32 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715F34 Ext File Attributes   00000000 (0)\n+715F38 Local Header Offset   0065C3DE (6669278)\n+715F3C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715F3C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715F60 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715F62   Length              0005 (5)\n+715F64   Flags               01 (1) 'Modification'\n+715F65   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715F69 CENTRAL HEADER #1846  02014B50 (33639248)\n+715F6D Created Zip Spec      14 (20) '2.0'\n+715F6E Created OS            00 (0) 'MS-DOS'\n+715F6F Extract Zip Spec      14 (20) '2.0'\n+715F70 Extract OS            00 (0) 'MS-DOS'\n+715F71 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715F73 Compression Method    0000 (0) 'Stored'\n+715F75 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715F79 CRC                   5F5E6ACD (1600023245)\n+715F7D Compressed Size       00003F85 (16261)\n+715F81 Uncompressed Size     00003F85 (16261)\n+715F85 Filename Length       003D (61)\n+715F87 Extra Length          0009 (9)\n+715F89 Comment Length        0000 (0)\n+715F8B Disk Start            0000 (0)\n+715F8D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+715F8F Ext File Attributes   00000000 (0)\n+715F93 Local Header Offset   0065C429 (6669353)\n+715F97 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x715F97: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+715FD4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+715FD6   Length              0005 (5)\n+715FD8   Flags               01 (1) 'Modification'\n+715FD9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+715FDD CENTRAL HEADER #1847  02014B50 (33639248)\n+715FE1 Created Zip Spec      14 (20) '2.0'\n+715FE2 Created OS            00 (0) 'MS-DOS'\n+715FE3 Extract Zip Spec      14 (20) '2.0'\n+715FE4 Extract OS            00 (0) 'MS-DOS'\n+715FE5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+715FE7 Compression Method    0000 (0) 'Stored'\n+715FE9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+715FED CRC                   980C94D0 (2550961360)\n+715FF1 Compressed Size       0000199A (6554)\n+715FF5 Uncompressed Size     0000199A (6554)\n+715FF9 Filename Length       003E (62)\n+715FFB Extra Length          0009 (9)\n+715FFD Comment Length        0000 (0)\n+715FFF Disk Start            0000 (0)\n+716001 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716003 Ext File Attributes   00000000 (0)\n+716007 Local Header Offset   00660422 (6685730)\n+71600B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71600B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716049 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71604B   Length              0005 (5)\n+71604D   Flags               01 (1) 'Modification'\n+71604E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716052 CENTRAL HEADER #1848  02014B50 (33639248)\n+716056 Created Zip Spec      14 (20) '2.0'\n+716057 Created OS            00 (0) 'MS-DOS'\n+716058 Extract Zip Spec      14 (20) '2.0'\n+716059 Extract OS            00 (0) 'MS-DOS'\n+71605A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71605C Compression Method    0000 (0) 'Stored'\n+71605E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716062 CRC                   4C7D08FC (1283262716)\n+716066 Compressed Size       000008FF (2303)\n+71606A Uncompressed Size     000008FF (2303)\n+71606E Filename Length       0032 (50)\n+716070 Extra Length          0009 (9)\n+716072 Comment Length        0000 (0)\n+716074 Disk Start            0000 (0)\n+716076 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716078 Ext File Attributes   00000000 (0)\n+71607C Local Header Offset   00661E31 (6692401)\n+716080 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716080: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7160B2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7160B4   Length              0005 (5)\n+7160B6   Flags               01 (1) 'Modification'\n+7160B7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7160BB CENTRAL HEADER #1849  02014B50 (33639248)\n+7160BF Created Zip Spec      14 (20) '2.0'\n+7160C0 Created OS            00 (0) 'MS-DOS'\n+7160C1 Extract Zip Spec      14 (20) '2.0'\n+7160C2 Extract OS            00 (0) 'MS-DOS'\n+7160C3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7160C5 Compression Method    0000 (0) 'Stored'\n+7160C7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7160CB CRC                   EAE8515F (3941093727)\n+7160CF Compressed Size       00001FF9 (8185)\n+7160D3 Uncompressed Size     00001FF9 (8185)\n+7160D7 Filename Length       0040 (64)\n+7160D9 Extra Length          0009 (9)\n+7160DB Comment Length        0000 (0)\n+7160DD Disk Start            0000 (0)\n+7160DF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7160E1 Ext File Attributes   00000000 (0)\n+7160E5 Local Header Offset   00662799 (6694809)\n+7160E9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7160E9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716129 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71612B   Length              0005 (5)\n+71612D   Flags               01 (1) 'Modification'\n+71612E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716132 CENTRAL HEADER #1850  02014B50 (33639248)\n+716136 Created Zip Spec      14 (20) '2.0'\n+716137 Created OS            00 (0) 'MS-DOS'\n+716138 Extract Zip Spec      14 (20) '2.0'\n+716139 Extract OS            00 (0) 'MS-DOS'\n+71613A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71613C Compression Method    0000 (0) 'Stored'\n+71613E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716142 CRC                   E202F321 (3791844129)\n+716146 Compressed Size       00001C58 (7256)\n+71614A Uncompressed Size     00001C58 (7256)\n+71614E Filename Length       003C (60)\n+716150 Extra Length          0009 (9)\n+716152 Comment Length        0000 (0)\n+716154 Disk Start            0000 (0)\n+716156 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716158 Ext File Attributes   00000000 (0)\n+71615C Local Header Offset   00664809 (6703113)\n+716160 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716160: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71619C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71619E   Length              0005 (5)\n+7161A0   Flags               01 (1) 'Modification'\n+7161A1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7161A5 CENTRAL HEADER #1851  02014B50 (33639248)\n+7161A9 Created Zip Spec      14 (20) '2.0'\n+7161AA Created OS            00 (0) 'MS-DOS'\n+7161AB Extract Zip Spec      14 (20) '2.0'\n+7161AC Extract OS            00 (0) 'MS-DOS'\n+7161AD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7161AF Compression Method    0000 (0) 'Stored'\n+7161B1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7161B5 CRC                   DBBCD787 (3686586247)\n+7161B9 Compressed Size       00002BDF (11231)\n+7161BD Uncompressed Size     00002BDF (11231)\n+7161C1 Filename Length       0033 (51)\n+7161C3 Extra Length          0009 (9)\n+7161C5 Comment Length        0000 (0)\n+7161C7 Disk Start            0000 (0)\n+7161C9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7161CB Ext File Attributes   00000000 (0)\n+7161CF Local Header Offset   006664D4 (6710484)\n+7161D3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7161D3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716206 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716208   Length              0005 (5)\n+71620A   Flags               01 (1) 'Modification'\n+71620B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71620F CENTRAL HEADER #1852  02014B50 (33639248)\n+716213 Created Zip Spec      14 (20) '2.0'\n+716214 Created OS            00 (0) 'MS-DOS'\n+716215 Extract Zip Spec      14 (20) '2.0'\n+716216 Extract OS            00 (0) 'MS-DOS'\n+716217 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716219 Compression Method    0000 (0) 'Stored'\n+71621B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71621F CRC                   E1297FD5 (3777593301)\n+716223 Compressed Size       00000A4E (2638)\n+716227 Uncompressed Size     00000A4E (2638)\n+71622B Filename Length       003A (58)\n+71622D Extra Length          0009 (9)\n+71622F Comment Length        0000 (0)\n+716231 Disk Start            0000 (0)\n+716233 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716235 Ext File Attributes   00000000 (0)\n+716239 Local Header Offset   0066911D (6721821)\n+71623D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71623D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716277 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716279   Length              0005 (5)\n+71627B   Flags               01 (1) 'Modification'\n+71627C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716280 CENTRAL HEADER #1853  02014B50 (33639248)\n+716284 Created Zip Spec      14 (20) '2.0'\n+716285 Created OS            00 (0) 'MS-DOS'\n+716286 Extract Zip Spec      14 (20) '2.0'\n+716287 Extract OS            00 (0) 'MS-DOS'\n+716288 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71628A Compression Method    0000 (0) 'Stored'\n+71628C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716290 CRC                   CDBF443E (3451864126)\n+716294 Compressed Size       00000C74 (3188)\n+716298 Uncompressed Size     00000C74 (3188)\n+71629C Filename Length       0038 (56)\n+71629E Extra Length          0009 (9)\n+7162A0 Comment Length        0000 (0)\n+7162A2 Disk Start            0000 (0)\n+7162A4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7162A6 Ext File Attributes   00000000 (0)\n+7162AA Local Header Offset   00669BDC (6724572)\n+7162AE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7162AE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7162E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7162E8   Length              0005 (5)\n+7162EA   Flags               01 (1) 'Modification'\n+7162EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7162EF CENTRAL HEADER #1854  02014B50 (33639248)\n+7162F3 Created Zip Spec      14 (20) '2.0'\n+7162F4 Created OS            00 (0) 'MS-DOS'\n+7162F5 Extract Zip Spec      14 (20) '2.0'\n+7162F6 Extract OS            00 (0) 'MS-DOS'\n+7162F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7162F9 Compression Method    0000 (0) 'Stored'\n+7162FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7162FF CRC                   151E182C (354293804)\n+716303 Compressed Size       000005DD (1501)\n+716307 Uncompressed Size     000005DD (1501)\n+71630B Filename Length       0036 (54)\n+71630D Extra Length          0009 (9)\n+71630F Comment Length        0000 (0)\n+716311 Disk Start            0000 (0)\n+716313 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716315 Ext File Attributes   00000000 (0)\n+716319 Local Header Offset   0066A8BF (6727871)\n+71631D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71631D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716353 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716355   Length              0005 (5)\n+716357   Flags               01 (1) 'Modification'\n+716358   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71635C CENTRAL HEADER #1855  02014B50 (33639248)\n+716360 Created Zip Spec      14 (20) '2.0'\n+716361 Created OS            00 (0) 'MS-DOS'\n+716362 Extract Zip Spec      14 (20) '2.0'\n+716363 Extract OS            00 (0) 'MS-DOS'\n+716364 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716366 Compression Method    0000 (0) 'Stored'\n+716368 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71636C CRC                   39CBA339 (969646905)\n+716370 Compressed Size       00002090 (8336)\n+716374 Uncompressed Size     00002090 (8336)\n+716378 Filename Length       0035 (53)\n+71637A Extra Length          0009 (9)\n+71637C Comment Length        0000 (0)\n+71637E Disk Start            0000 (0)\n+716380 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716382 Ext File Attributes   00000000 (0)\n+716386 Local Header Offset   0066AF09 (6729481)\n+71638A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71638A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7163BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7163C1   Length              0005 (5)\n+7163C3   Flags               01 (1) 'Modification'\n+7163C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7163C8 CENTRAL HEADER #1856  02014B50 (33639248)\n+7163CC Created Zip Spec      14 (20) '2.0'\n+7163CD Created OS            00 (0) 'MS-DOS'\n+7163CE Extract Zip Spec      14 (20) '2.0'\n+7163CF Extract OS            00 (0) 'MS-DOS'\n+7163D0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7163D2 Compression Method    0000 (0) 'Stored'\n+7163D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7163D8 CRC                   07C16F02 (130117378)\n+7163DC Compressed Size       00006DE5 (28133)\n+7163E0 Uncompressed Size     00006DE5 (28133)\n+7163E4 Filename Length       0036 (54)\n+7163E6 Extra Length          0009 (9)\n+7163E8 Comment Length        0000 (0)\n+7163EA Disk Start            0000 (0)\n+7163EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7163EE Ext File Attributes   00000000 (0)\n+7163F2 Local Header Offset   0066D005 (6737925)\n+7163F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7163F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71642C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71642E   Length              0005 (5)\n+716430   Flags               01 (1) 'Modification'\n+716431   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716435 CENTRAL HEADER #1857  02014B50 (33639248)\n+716439 Created Zip Spec      14 (20) '2.0'\n+71643A Created OS            00 (0) 'MS-DOS'\n+71643B Extract Zip Spec      14 (20) '2.0'\n+71643C Extract OS            00 (0) 'MS-DOS'\n+71643D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71643F Compression Method    0000 (0) 'Stored'\n+716441 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716445 CRC                   DA119291 (3658584721)\n+716449 Compressed Size       00000752 (1874)\n+71644D Uncompressed Size     00000752 (1874)\n+716451 Filename Length       003C (60)\n+716453 Extra Length          0009 (9)\n+716455 Comment Length        0000 (0)\n+716457 Disk Start            0000 (0)\n+716459 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71645B Ext File Attributes   00000000 (0)\n+71645F Local Header Offset   00673E57 (6766167)\n+716463 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716463: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71649F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7164A1   Length              0005 (5)\n+7164A3   Flags               01 (1) 'Modification'\n+7164A4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7164A8 CENTRAL HEADER #1858  02014B50 (33639248)\n+7164AC Created Zip Spec      14 (20) '2.0'\n+7164AD Created OS            00 (0) 'MS-DOS'\n+7164AE Extract Zip Spec      14 (20) '2.0'\n+7164AF Extract OS            00 (0) 'MS-DOS'\n+7164B0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7164B2 Compression Method    0000 (0) 'Stored'\n+7164B4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7164B8 CRC                   3F21380C (1059141644)\n+7164BC Compressed Size       00000E11 (3601)\n+7164C0 Uncompressed Size     00000E11 (3601)\n+7164C4 Filename Length       0036 (54)\n+7164C6 Extra Length          0009 (9)\n+7164C8 Comment Length        0000 (0)\n+7164CA Disk Start            0000 (0)\n+7164CC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7164CE Ext File Attributes   00000000 (0)\n+7164D2 Local Header Offset   0067461C (6768156)\n+7164D6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7164D6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71650C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71650E   Length              0005 (5)\n+716510   Flags               01 (1) 'Modification'\n+716511   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716515 CENTRAL HEADER #1859  02014B50 (33639248)\n+716519 Created Zip Spec      14 (20) '2.0'\n+71651A Created OS            00 (0) 'MS-DOS'\n+71651B Extract Zip Spec      14 (20) '2.0'\n+71651C Extract OS            00 (0) 'MS-DOS'\n+71651D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71651F Compression Method    0000 (0) 'Stored'\n+716521 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716525 CRC                   0574FE58 (91553368)\n+716529 Compressed Size       000020D9 (8409)\n+71652D Uncompressed Size     000020D9 (8409)\n+716531 Filename Length       0042 (66)\n+716533 Extra Length          0009 (9)\n+716535 Comment Length        0000 (0)\n+716537 Disk Start            0000 (0)\n+716539 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71653B Ext File Attributes   00000000 (0)\n+71653F Local Header Offset   0067549A (6771866)\n+716543 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716543: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716585 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716587   Length              0005 (5)\n+716589   Flags               01 (1) 'Modification'\n+71658A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71658E CENTRAL HEADER #1860  02014B50 (33639248)\n+716592 Created Zip Spec      14 (20) '2.0'\n+716593 Created OS            00 (0) 'MS-DOS'\n+716594 Extract Zip Spec      14 (20) '2.0'\n+716595 Extract OS            00 (0) 'MS-DOS'\n+716596 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716598 Compression Method    0000 (0) 'Stored'\n+71659A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71659E CRC                   B5644E62 (3043249762)\n+7165A2 Compressed Size       0000189A (6298)\n+7165A6 Uncompressed Size     0000189A (6298)\n+7165AA Filename Length       0045 (69)\n+7165AC Extra Length          0009 (9)\n+7165AE Comment Length        0000 (0)\n+7165B0 Disk Start            0000 (0)\n+7165B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7165B4 Ext File Attributes   00000000 (0)\n+7165B8 Local Header Offset   006775EC (6780396)\n+7165BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7165BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716601 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716603   Length              0005 (5)\n+716605   Flags               01 (1) 'Modification'\n+716606   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71660A CENTRAL HEADER #1861  02014B50 (33639248)\n+71660E Created Zip Spec      14 (20) '2.0'\n+71660F Created OS            00 (0) 'MS-DOS'\n+716610 Extract Zip Spec      14 (20) '2.0'\n+716611 Extract OS            00 (0) 'MS-DOS'\n+716612 General Purpose Flag  0000 (0)\n+716614 Compression Method    0000 (0) 'Stored'\n+716616 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71661A CRC                   00000000 (0)\n+71661E Compressed Size       00000000 (0)\n+716622 Uncompressed Size     00000000 (0)\n+716626 Filename Length       002B (43)\n+716628 Extra Length          0009 (9)\n+71662A Comment Length        0000 (0)\n+71662C Disk Start            0000 (0)\n+71662E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716630 Ext File Attributes   00000000 (0)\n+716634 Local Header Offset   00678F02 (6786818)\n+716638 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716638: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716663 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716665   Length              0005 (5)\n+716667   Flags               01 (1) 'Modification'\n+716668   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71666C CENTRAL HEADER #1862  02014B50 (33639248)\n+716670 Created Zip Spec      14 (20) '2.0'\n+716671 Created OS            00 (0) 'MS-DOS'\n+716672 Extract Zip Spec      14 (20) '2.0'\n+716673 Extract OS            00 (0) 'MS-DOS'\n+716674 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716676 Compression Method    0000 (0) 'Stored'\n+716678 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71667C CRC                   45086F19 (1158180633)\n+716680 Compressed Size       000022F3 (8947)\n+716684 Uncompressed Size     000022F3 (8947)\n+716688 Filename Length       003C (60)\n+71668A Extra Length          0009 (9)\n+71668C Comment Length        0000 (0)\n+71668E Disk Start            0000 (0)\n+716690 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716692 Ext File Attributes   00000000 (0)\n+716696 Local Header Offset   00678F54 (6786900)\n+71669A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71669A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7166D6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7166D8   Length              0005 (5)\n+7166DA   Flags               01 (1) 'Modification'\n+7166DB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7166DF CENTRAL HEADER #1863  02014B50 (33639248)\n+7166E3 Created Zip Spec      14 (20) '2.0'\n+7166E4 Created OS            00 (0) 'MS-DOS'\n+7166E5 Extract Zip Spec      14 (20) '2.0'\n+7166E6 Extract OS            00 (0) 'MS-DOS'\n+7166E7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7166E9 Compression Method    0000 (0) 'Stored'\n+7166EB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7166EF CRC                   57E4B8CF (1474607311)\n+7166F3 Compressed Size       000016C7 (5831)\n+7166F7 Uncompressed Size     000016C7 (5831)\n+7166FB Filename Length       003B (59)\n+7166FD Extra Length          0009 (9)\n+7166FF Comment Length        0000 (0)\n+716701 Disk Start            0000 (0)\n+716703 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716705 Ext File Attributes   00000000 (0)\n+716709 Local Header Offset   0067B2BA (6795962)\n+71670D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71670D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716748 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71674A   Length              0005 (5)\n+71674C   Flags               01 (1) 'Modification'\n+71674D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716751 CENTRAL HEADER #1864  02014B50 (33639248)\n+716755 Created Zip Spec      14 (20) '2.0'\n+716756 Created OS            00 (0) 'MS-DOS'\n+716757 Extract Zip Spec      14 (20) '2.0'\n+716758 Extract OS            00 (0) 'MS-DOS'\n+716759 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71675B Compression Method    0000 (0) 'Stored'\n+71675D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716761 CRC                   49F89DC8 (1241030088)\n+716765 Compressed Size       0000041E (1054)\n+716769 Uncompressed Size     0000041E (1054)\n+71676D Filename Length       0035 (53)\n+71676F Extra Length          0009 (9)\n+716771 Comment Length        0000 (0)\n+716773 Disk Start            0000 (0)\n+716775 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716777 Ext File Attributes   00000000 (0)\n+71677B Local Header Offset   0067C9F3 (6801907)\n+71677F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71677F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7167B4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7167B6   Length              0005 (5)\n+7167B8   Flags               01 (1) 'Modification'\n+7167B9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7167BD CENTRAL HEADER #1865  02014B50 (33639248)\n+7167C1 Created Zip Spec      14 (20) '2.0'\n+7167C2 Created OS            00 (0) 'MS-DOS'\n+7167C3 Extract Zip Spec      14 (20) '2.0'\n+7167C4 Extract OS            00 (0) 'MS-DOS'\n+7167C5 General Purpose Flag  0000 (0)\n+7167C7 Compression Method    0000 (0) 'Stored'\n+7167C9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7167CD CRC                   00000000 (0)\n+7167D1 Compressed Size       00000000 (0)\n+7167D5 Uncompressed Size     00000000 (0)\n+7167D9 Filename Length       002B (43)\n+7167DB Extra Length          0009 (9)\n+7167DD Comment Length        0000 (0)\n+7167DF Disk Start            0000 (0)\n+7167E1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7167E3 Ext File Attributes   00000000 (0)\n+7167E7 Local Header Offset   0067CE7D (6803069)\n+7167EB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7167EB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716816 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716818   Length              0005 (5)\n+71681A   Flags               01 (1) 'Modification'\n+71681B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71681F CENTRAL HEADER #1866  02014B50 (33639248)\n+716823 Created Zip Spec      14 (20) '2.0'\n+716824 Created OS            00 (0) 'MS-DOS'\n+716825 Extract Zip Spec      14 (20) '2.0'\n+716826 Extract OS            00 (0) 'MS-DOS'\n+716827 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716829 Compression Method    0000 (0) 'Stored'\n+71682B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71682F CRC                   A77D588D (2810009741)\n+716833 Compressed Size       00000921 (2337)\n+716837 Uncompressed Size     00000921 (2337)\n+71683B Filename Length       0043 (67)\n+71683D Extra Length          0009 (9)\n+71683F Comment Length        0000 (0)\n+716841 Disk Start            0000 (0)\n+716843 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716845 Ext File Attributes   00000000 (0)\n+716849 Local Header Offset   0067CECF (6803151)\n+71684D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71684D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716890 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716892   Length              0005 (5)\n+716894   Flags               01 (1) 'Modification'\n+716895   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716899 CENTRAL HEADER #1867  02014B50 (33639248)\n+71689D Created Zip Spec      14 (20) '2.0'\n+71689E Created OS            00 (0) 'MS-DOS'\n+71689F Extract Zip Spec      14 (20) '2.0'\n+7168A0 Extract OS            00 (0) 'MS-DOS'\n+7168A1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7168A3 Compression Method    0000 (0) 'Stored'\n+7168A5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7168A9 CRC                   DF443A2F (3745790511)\n+7168AD Compressed Size       00000BC9 (3017)\n+7168B1 Uncompressed Size     00000BC9 (3017)\n+7168B5 Filename Length       0047 (71)\n+7168B7 Extra Length          0009 (9)\n+7168B9 Comment Length        0000 (0)\n+7168BB Disk Start            0000 (0)\n+7168BD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7168BF Ext File Attributes   00000000 (0)\n+7168C3 Local Header Offset   0067D86A (6805610)\n+7168C7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7168C7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71690E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716910   Length              0005 (5)\n+716912   Flags               01 (1) 'Modification'\n+716913   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716917 CENTRAL HEADER #1868  02014B50 (33639248)\n+71691B Created Zip Spec      14 (20) '2.0'\n+71691C Created OS            00 (0) 'MS-DOS'\n+71691D Extract Zip Spec      14 (20) '2.0'\n+71691E Extract OS            00 (0) 'MS-DOS'\n+71691F General Purpose Flag  0000 (0)\n+716921 Compression Method    0000 (0) 'Stored'\n+716923 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716927 CRC                   00000000 (0)\n+71692B Compressed Size       00000000 (0)\n+71692F Uncompressed Size     00000000 (0)\n+716933 Filename Length       0023 (35)\n+716935 Extra Length          0009 (9)\n+716937 Comment Length        0000 (0)\n+716939 Disk Start            0000 (0)\n+71693B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71693D Ext File Attributes   00000000 (0)\n+716941 Local Header Offset   0067E4B1 (6808753)\n+716945 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716945: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716968 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71696A   Length              0005 (5)\n+71696C   Flags               01 (1) 'Modification'\n+71696D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716971 CENTRAL HEADER #1869  02014B50 (33639248)\n+716975 Created Zip Spec      14 (20) '2.0'\n+716976 Created OS            00 (0) 'MS-DOS'\n+716977 Extract Zip Spec      14 (20) '2.0'\n+716978 Extract OS            00 (0) 'MS-DOS'\n+716979 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71697B Compression Method    0000 (0) 'Stored'\n+71697D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716981 CRC                   01526E5B (22179419)\n+716985 Compressed Size       00000AA2 (2722)\n+716989 Uncompressed Size     00000AA2 (2722)\n+71698D Filename Length       003C (60)\n+71698F Extra Length          0009 (9)\n+716991 Comment Length        0000 (0)\n+716993 Disk Start            0000 (0)\n+716995 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716997 Ext File Attributes   00000000 (0)\n+71699B Local Header Offset   0067E4FB (6808827)\n+71699F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71699F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7169DB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7169DD   Length              0005 (5)\n+7169DF   Flags               01 (1) 'Modification'\n+7169E0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7169E4 CENTRAL HEADER #1870  02014B50 (33639248)\n+7169E8 Created Zip Spec      14 (20) '2.0'\n+7169E9 Created OS            00 (0) 'MS-DOS'\n+7169EA Extract Zip Spec      14 (20) '2.0'\n+7169EB Extract OS            00 (0) 'MS-DOS'\n+7169EC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7169EE Compression Method    0000 (0) 'Stored'\n+7169F0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7169F4 CRC                   D457458D (3562489229)\n+7169F8 Compressed Size       00000381 (897)\n+7169FC Uncompressed Size     00000381 (897)\n+716A00 Filename Length       0032 (50)\n+716A02 Extra Length          0009 (9)\n+716A04 Comment Length        0000 (0)\n+716A06 Disk Start            0000 (0)\n+716A08 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716A0A Ext File Attributes   00000000 (0)\n+716A0E Local Header Offset   0067F010 (6811664)\n+716A12 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716A12: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716A44 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716A46   Length              0005 (5)\n+716A48   Flags               01 (1) 'Modification'\n+716A49   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716A4D CENTRAL HEADER #1871  02014B50 (33639248)\n+716A51 Created Zip Spec      14 (20) '2.0'\n+716A52 Created OS            00 (0) 'MS-DOS'\n+716A53 Extract Zip Spec      14 (20) '2.0'\n+716A54 Extract OS            00 (0) 'MS-DOS'\n+716A55 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716A57 Compression Method    0000 (0) 'Stored'\n+716A59 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716A5D CRC                   73B49906 (1941215494)\n+716A61 Compressed Size       000007C7 (1991)\n+716A65 Uncompressed Size     000007C7 (1991)\n+716A69 Filename Length       0035 (53)\n+716A6B Extra Length          0009 (9)\n+716A6D Comment Length        0000 (0)\n+716A6F Disk Start            0000 (0)\n+716A71 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716A73 Ext File Attributes   00000000 (0)\n+716A77 Local Header Offset   0067F3FA (6812666)\n+716A7B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716A7B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716AB0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716AB2   Length              0005 (5)\n+716AB4   Flags               01 (1) 'Modification'\n+716AB5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716AB9 CENTRAL HEADER #1872  02014B50 (33639248)\n+716ABD Created Zip Spec      14 (20) '2.0'\n+716ABE Created OS            00 (0) 'MS-DOS'\n+716ABF Extract Zip Spec      14 (20) '2.0'\n+716AC0 Extract OS            00 (0) 'MS-DOS'\n+716AC1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716AC3 Compression Method    0000 (0) 'Stored'\n+716AC5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716AC9 CRC                   7E6F88F1 (2121238769)\n+716ACD Compressed Size       0000105B (4187)\n+716AD1 Uncompressed Size     0000105B (4187)\n+716AD5 Filename Length       0033 (51)\n+716AD7 Extra Length          0009 (9)\n+716AD9 Comment Length        0000 (0)\n+716ADB Disk Start            0000 (0)\n+716ADD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716ADF Ext File Attributes   00000000 (0)\n+716AE3 Local Header Offset   0067FC2D (6814765)\n+716AE7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716AE7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716B1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716B1C   Length              0005 (5)\n+716B1E   Flags               01 (1) 'Modification'\n+716B1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716B23 CENTRAL HEADER #1873  02014B50 (33639248)\n+716B27 Created Zip Spec      14 (20) '2.0'\n+716B28 Created OS            00 (0) 'MS-DOS'\n+716B29 Extract Zip Spec      14 (20) '2.0'\n+716B2A Extract OS            00 (0) 'MS-DOS'\n+716B2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716B2D Compression Method    0000 (0) 'Stored'\n+716B2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716B33 CRC                   65B11F2E (1706106670)\n+716B37 Compressed Size       000029BC (10684)\n+716B3B Uncompressed Size     000029BC (10684)\n+716B3F Filename Length       0038 (56)\n+716B41 Extra Length          0009 (9)\n+716B43 Comment Length        0000 (0)\n+716B45 Disk Start            0000 (0)\n+716B47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716B49 Ext File Attributes   00000000 (0)\n+716B4D Local Header Offset   00680CF2 (6819058)\n+716B51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716B51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716B89 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716B8B   Length              0005 (5)\n+716B8D   Flags               01 (1) 'Modification'\n+716B8E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716B92 CENTRAL HEADER #1874  02014B50 (33639248)\n+716B96 Created Zip Spec      14 (20) '2.0'\n+716B97 Created OS            00 (0) 'MS-DOS'\n+716B98 Extract Zip Spec      14 (20) '2.0'\n+716B99 Extract OS            00 (0) 'MS-DOS'\n+716B9A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716B9C Compression Method    0000 (0) 'Stored'\n+716B9E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716BA2 CRC                   ECC477BE (3972298686)\n+716BA6 Compressed Size       000021FB (8699)\n+716BAA Uncompressed Size     000021FB (8699)\n+716BAE Filename Length       0034 (52)\n+716BB0 Extra Length          0009 (9)\n+716BB2 Comment Length        0000 (0)\n+716BB4 Disk Start            0000 (0)\n+716BB6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716BB8 Ext File Attributes   00000000 (0)\n+716BBC Local Header Offset   0068371D (6829853)\n+716BC0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716BC0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716BF4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716BF6   Length              0005 (5)\n+716BF8   Flags               01 (1) 'Modification'\n+716BF9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716BFD CENTRAL HEADER #1875  02014B50 (33639248)\n+716C01 Created Zip Spec      14 (20) '2.0'\n+716C02 Created OS            00 (0) 'MS-DOS'\n+716C03 Extract Zip Spec      14 (20) '2.0'\n+716C04 Extract OS            00 (0) 'MS-DOS'\n+716C05 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716C07 Compression Method    0000 (0) 'Stored'\n+716C09 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716C0D CRC                   67A5A923 (1738909987)\n+716C11 Compressed Size       00000A93 (2707)\n+716C15 Uncompressed Size     00000A93 (2707)\n+716C19 Filename Length       0044 (68)\n+716C1B Extra Length          0009 (9)\n+716C1D Comment Length        0000 (0)\n+716C1F Disk Start            0000 (0)\n+716C21 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716C23 Ext File Attributes   00000000 (0)\n+716C27 Local Header Offset   00685983 (6838659)\n+716C2B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716C2B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716C6F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716C71   Length              0005 (5)\n+716C73   Flags               01 (1) 'Modification'\n+716C74   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716C78 CENTRAL HEADER #1876  02014B50 (33639248)\n+716C7C Created Zip Spec      14 (20) '2.0'\n+716C7D Created OS            00 (0) 'MS-DOS'\n+716C7E Extract Zip Spec      14 (20) '2.0'\n+716C7F Extract OS            00 (0) 'MS-DOS'\n+716C80 General Purpose Flag  0000 (0)\n+716C82 Compression Method    0000 (0) 'Stored'\n+716C84 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716C88 CRC                   00000000 (0)\n+716C8C Compressed Size       00000000 (0)\n+716C90 Uncompressed Size     00000000 (0)\n+716C94 Filename Length       0030 (48)\n+716C96 Extra Length          0009 (9)\n+716C98 Comment Length        0000 (0)\n+716C9A Disk Start            0000 (0)\n+716C9C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716C9E Ext File Attributes   00000000 (0)\n+716CA2 Local Header Offset   00686491 (6841489)\n+716CA6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716CA6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716CD6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716CD8   Length              0005 (5)\n+716CDA   Flags               01 (1) 'Modification'\n+716CDB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716CDF CENTRAL HEADER #1877  02014B50 (33639248)\n+716CE3 Created Zip Spec      14 (20) '2.0'\n+716CE4 Created OS            00 (0) 'MS-DOS'\n+716CE5 Extract Zip Spec      14 (20) '2.0'\n+716CE6 Extract OS            00 (0) 'MS-DOS'\n+716CE7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716CE9 Compression Method    0000 (0) 'Stored'\n+716CEB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716CEF CRC                   63B2617E (1672634750)\n+716CF3 Compressed Size       00000460 (1120)\n+716CF7 Uncompressed Size     00000460 (1120)\n+716CFB Filename Length       0046 (70)\n+716CFD Extra Length          0009 (9)\n+716CFF Comment Length        0000 (0)\n+716D01 Disk Start            0000 (0)\n+716D03 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716D05 Ext File Attributes   00000000 (0)\n+716D09 Local Header Offset   006864E8 (6841576)\n+716D0D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716D0D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716D53 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716D55   Length              0005 (5)\n+716D57   Flags               01 (1) 'Modification'\n+716D58   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716D5C CENTRAL HEADER #1878  02014B50 (33639248)\n+716D60 Created Zip Spec      14 (20) '2.0'\n+716D61 Created OS            00 (0) 'MS-DOS'\n+716D62 Extract Zip Spec      14 (20) '2.0'\n+716D63 Extract OS            00 (0) 'MS-DOS'\n+716D64 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716D66 Compression Method    0000 (0) 'Stored'\n+716D68 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716D6C CRC                   1AFA4B4D (452610893)\n+716D70 Compressed Size       000005DB (1499)\n+716D74 Uncompressed Size     000005DB (1499)\n+716D78 Filename Length       0045 (69)\n+716D7A Extra Length          0009 (9)\n+716D7C Comment Length        0000 (0)\n+716D7E Disk Start            0000 (0)\n+716D80 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716D82 Ext File Attributes   00000000 (0)\n+716D86 Local Header Offset   006869C5 (6842821)\n+716D8A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716D8A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716DCF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716DD1   Length              0005 (5)\n+716DD3   Flags               01 (1) 'Modification'\n+716DD4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716DD8 CENTRAL HEADER #1879  02014B50 (33639248)\n+716DDC Created Zip Spec      14 (20) '2.0'\n+716DDD Created OS            00 (0) 'MS-DOS'\n+716DDE Extract Zip Spec      14 (20) '2.0'\n+716DDF Extract OS            00 (0) 'MS-DOS'\n+716DE0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716DE2 Compression Method    0000 (0) 'Stored'\n+716DE4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716DE8 CRC                   25DC5E62 (635199074)\n+716DEC Compressed Size       00001184 (4484)\n+716DF0 Uncompressed Size     00001184 (4484)\n+716DF4 Filename Length       004A (74)\n+716DF6 Extra Length          0009 (9)\n+716DF8 Comment Length        0000 (0)\n+716DFA Disk Start            0000 (0)\n+716DFC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716DFE Ext File Attributes   00000000 (0)\n+716E02 Local Header Offset   0068701C (6844444)\n+716E06 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716E06: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716E50 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716E52   Length              0005 (5)\n+716E54   Flags               01 (1) 'Modification'\n+716E55   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716E59 CENTRAL HEADER #1880  02014B50 (33639248)\n+716E5D Created Zip Spec      14 (20) '2.0'\n+716E5E Created OS            00 (0) 'MS-DOS'\n+716E5F Extract Zip Spec      14 (20) '2.0'\n+716E60 Extract OS            00 (0) 'MS-DOS'\n+716E61 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716E63 Compression Method    0000 (0) 'Stored'\n+716E65 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716E69 CRC                   AADBB488 (2866525320)\n+716E6D Compressed Size       00000460 (1120)\n+716E71 Uncompressed Size     00000460 (1120)\n+716E75 Filename Length       0046 (70)\n+716E77 Extra Length          0009 (9)\n+716E79 Comment Length        0000 (0)\n+716E7B Disk Start            0000 (0)\n+716E7D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716E7F Ext File Attributes   00000000 (0)\n+716E83 Local Header Offset   00688221 (6849057)\n+716E87 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716E87: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716ECD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716ECF   Length              0005 (5)\n+716ED1   Flags               01 (1) 'Modification'\n+716ED2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716ED6 CENTRAL HEADER #1881  02014B50 (33639248)\n+716EDA Created Zip Spec      14 (20) '2.0'\n+716EDB Created OS            00 (0) 'MS-DOS'\n+716EDC Extract Zip Spec      14 (20) '2.0'\n+716EDD Extract OS            00 (0) 'MS-DOS'\n+716EDE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716EE0 Compression Method    0000 (0) 'Stored'\n+716EE2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716EE6 CRC                   BEF6AA62 (3203836514)\n+716EEA Compressed Size       0000047C (1148)\n+716EEE Uncompressed Size     0000047C (1148)\n+716EF2 Filename Length       004A (74)\n+716EF4 Extra Length          0009 (9)\n+716EF6 Comment Length        0000 (0)\n+716EF8 Disk Start            0000 (0)\n+716EFA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716EFC Ext File Attributes   00000000 (0)\n+716F00 Local Header Offset   006886FE (6850302)\n+716F04 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716F04: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716F4E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716F50   Length              0005 (5)\n+716F52   Flags               01 (1) 'Modification'\n+716F53   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716F57 CENTRAL HEADER #1882  02014B50 (33639248)\n+716F5B Created Zip Spec      14 (20) '2.0'\n+716F5C Created OS            00 (0) 'MS-DOS'\n+716F5D Extract Zip Spec      14 (20) '2.0'\n+716F5E Extract OS            00 (0) 'MS-DOS'\n+716F5F General Purpose Flag  0000 (0)\n+716F61 Compression Method    0000 (0) 'Stored'\n+716F63 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716F67 CRC                   00000000 (0)\n+716F6B Compressed Size       00000000 (0)\n+716F6F Uncompressed Size     00000000 (0)\n+716F73 Filename Length       0026 (38)\n+716F75 Extra Length          0009 (9)\n+716F77 Comment Length        0000 (0)\n+716F79 Disk Start            0000 (0)\n+716F7B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716F7D Ext File Attributes   00000000 (0)\n+716F81 Local Header Offset   00688BFB (6851579)\n+716F85 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716F85: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+716FAB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+716FAD   Length              0005 (5)\n+716FAF   Flags               01 (1) 'Modification'\n+716FB0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+716FB4 CENTRAL HEADER #1883  02014B50 (33639248)\n+716FB8 Created Zip Spec      14 (20) '2.0'\n+716FB9 Created OS            00 (0) 'MS-DOS'\n+716FBA Extract Zip Spec      14 (20) '2.0'\n+716FBB Extract OS            00 (0) 'MS-DOS'\n+716FBC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+716FBE Compression Method    0000 (0) 'Stored'\n+716FC0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+716FC4 CRC                   626BA0DE (1651220702)\n+716FC8 Compressed Size       000004AB (1195)\n+716FCC Uncompressed Size     000004AB (1195)\n+716FD0 Filename Length       0034 (52)\n+716FD2 Extra Length          0009 (9)\n+716FD4 Comment Length        0000 (0)\n+716FD6 Disk Start            0000 (0)\n+716FD8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+716FDA Ext File Attributes   00000000 (0)\n+716FDE Local Header Offset   00688C48 (6851656)\n+716FE2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x716FE2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717016 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717018   Length              0005 (5)\n+71701A   Flags               01 (1) 'Modification'\n+71701B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71701F CENTRAL HEADER #1884  02014B50 (33639248)\n+717023 Created Zip Spec      14 (20) '2.0'\n+717024 Created OS            00 (0) 'MS-DOS'\n+717025 Extract Zip Spec      14 (20) '2.0'\n+717026 Extract OS            00 (0) 'MS-DOS'\n+717027 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717029 Compression Method    0000 (0) 'Stored'\n+71702B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71702F CRC                   BA6404A6 (3127116966)\n+717033 Compressed Size       0000065B (1627)\n+717037 Uncompressed Size     0000065B (1627)\n+71703B Filename Length       004B (75)\n+71703D Extra Length          0009 (9)\n+71703F Comment Length        0000 (0)\n+717041 Disk Start            0000 (0)\n+717043 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717045 Ext File Attributes   00000000 (0)\n+717049 Local Header Offset   0068915E (6852958)\n+71704D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71704D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717098 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71709A   Length              0005 (5)\n+71709C   Flags               01 (1) 'Modification'\n+71709D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7170A1 CENTRAL HEADER #1885  02014B50 (33639248)\n+7170A5 Created Zip Spec      14 (20) '2.0'\n+7170A6 Created OS            00 (0) 'MS-DOS'\n+7170A7 Extract Zip Spec      14 (20) '2.0'\n+7170A8 Extract OS            00 (0) 'MS-DOS'\n+7170A9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7170AB Compression Method    0000 (0) 'Stored'\n+7170AD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7170B1 CRC                   ED0697F4 (3976632308)\n+7170B5 Compressed Size       000022BD (8893)\n+7170B9 Uncompressed Size     000022BD (8893)\n+7170BD Filename Length       003A (58)\n+7170BF Extra Length          0009 (9)\n+7170C1 Comment Length        0000 (0)\n+7170C3 Disk Start            0000 (0)\n+7170C5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7170C7 Ext File Attributes   00000000 (0)\n+7170CB Local Header Offset   0068983B (6854715)\n+7170CF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7170CF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717109 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71710B   Length              0005 (5)\n+71710D   Flags               01 (1) 'Modification'\n+71710E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717112 CENTRAL HEADER #1886  02014B50 (33639248)\n+717116 Created Zip Spec      14 (20) '2.0'\n+717117 Created OS            00 (0) 'MS-DOS'\n+717118 Extract Zip Spec      14 (20) '2.0'\n+717119 Extract OS            00 (0) 'MS-DOS'\n+71711A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71711C Compression Method    0000 (0) 'Stored'\n+71711E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717122 CRC                   D14D14C7 (3511489735)\n+717126 Compressed Size       00000CF4 (3316)\n+71712A Uncompressed Size     00000CF4 (3316)\n+71712E Filename Length       003F (63)\n+717130 Extra Length          0009 (9)\n+717132 Comment Length        0000 (0)\n+717134 Disk Start            0000 (0)\n+717136 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717138 Ext File Attributes   00000000 (0)\n+71713C Local Header Offset   0068BB69 (6863721)\n+717140 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717140: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71717F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717181   Length              0005 (5)\n+717183   Flags               01 (1) 'Modification'\n+717184   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717188 CENTRAL HEADER #1887  02014B50 (33639248)\n+71718C Created Zip Spec      14 (20) '2.0'\n+71718D Created OS            00 (0) 'MS-DOS'\n+71718E Extract Zip Spec      14 (20) '2.0'\n+71718F Extract OS            00 (0) 'MS-DOS'\n+717190 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717192 Compression Method    0000 (0) 'Stored'\n+717194 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717198 CRC                   5C6A1FAA (1550458794)\n+71719C Compressed Size       0000095F (2399)\n+7171A0 Uncompressed Size     0000095F (2399)\n+7171A4 Filename Length       0046 (70)\n+7171A6 Extra Length          0009 (9)\n+7171A8 Comment Length        0000 (0)\n+7171AA Disk Start            0000 (0)\n+7171AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7171AE Ext File Attributes   00000000 (0)\n+7171B2 Local Header Offset   0068C8D3 (6867155)\n+7171B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7171B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7171FC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7171FE   Length              0005 (5)\n+717200   Flags               01 (1) 'Modification'\n+717201   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717205 CENTRAL HEADER #1888  02014B50 (33639248)\n+717209 Created Zip Spec      14 (20) '2.0'\n+71720A Created OS            00 (0) 'MS-DOS'\n+71720B Extract Zip Spec      14 (20) '2.0'\n+71720C Extract OS            00 (0) 'MS-DOS'\n+71720D General Purpose Flag  0000 (0)\n+71720F Compression Method    0000 (0) 'Stored'\n+717211 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717215 CRC                   00000000 (0)\n+717219 Compressed Size       00000000 (0)\n+71721D Uncompressed Size     00000000 (0)\n+717221 Filename Length       0023 (35)\n+717223 Extra Length          0009 (9)\n+717225 Comment Length        0000 (0)\n+717227 Disk Start            0000 (0)\n+717229 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71722B Ext File Attributes   00000000 (0)\n+71722F Local Header Offset   0068D2AF (6869679)\n+717233 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717233: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717256 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717258   Length              0005 (5)\n+71725A   Flags               01 (1) 'Modification'\n+71725B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71725F CENTRAL HEADER #1889  02014B50 (33639248)\n+717263 Created Zip Spec      14 (20) '2.0'\n+717264 Created OS            00 (0) 'MS-DOS'\n+717265 Extract Zip Spec      14 (20) '2.0'\n+717266 Extract OS            00 (0) 'MS-DOS'\n+717267 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717269 Compression Method    0000 (0) 'Stored'\n+71726B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71726F CRC                   928E5A20 (2458802720)\n+717273 Compressed Size       00001E46 (7750)\n+717277 Uncompressed Size     00001E46 (7750)\n+71727B Filename Length       0034 (52)\n+71727D Extra Length          0009 (9)\n+71727F Comment Length        0000 (0)\n+717281 Disk Start            0000 (0)\n+717283 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717285 Ext File Attributes   00000000 (0)\n+717289 Local Header Offset   0068D2F9 (6869753)\n+71728D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71728D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7172C1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7172C3   Length              0005 (5)\n+7172C5   Flags               01 (1) 'Modification'\n+7172C6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7172CA CENTRAL HEADER #1890  02014B50 (33639248)\n+7172CE Created Zip Spec      14 (20) '2.0'\n+7172CF Created OS            00 (0) 'MS-DOS'\n+7172D0 Extract Zip Spec      14 (20) '2.0'\n+7172D1 Extract OS            00 (0) 'MS-DOS'\n+7172D2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7172D4 Compression Method    0000 (0) 'Stored'\n+7172D6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7172DA CRC                   B3BC74DF (3015472351)\n+7172DE Compressed Size       00000429 (1065)\n+7172E2 Uncompressed Size     00000429 (1065)\n+7172E6 Filename Length       003D (61)\n+7172E8 Extra Length          0009 (9)\n+7172EA Comment Length        0000 (0)\n+7172EC Disk Start            0000 (0)\n+7172EE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7172F0 Ext File Attributes   00000000 (0)\n+7172F4 Local Header Offset   0068F1AA (6877610)\n+7172F8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7172F8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717335 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717337   Length              0005 (5)\n+717339   Flags               01 (1) 'Modification'\n+71733A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71733E CENTRAL HEADER #1891  02014B50 (33639248)\n+717342 Created Zip Spec      14 (20) '2.0'\n+717343 Created OS            00 (0) 'MS-DOS'\n+717344 Extract Zip Spec      14 (20) '2.0'\n+717345 Extract OS            00 (0) 'MS-DOS'\n+717346 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717348 Compression Method    0000 (0) 'Stored'\n+71734A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71734E CRC                   F065E593 (4033209747)\n+717352 Compressed Size       00000928 (2344)\n+717356 Uncompressed Size     00000928 (2344)\n+71735A Filename Length       003C (60)\n+71735C Extra Length          0009 (9)\n+71735E Comment Length        0000 (0)\n+717360 Disk Start            0000 (0)\n+717362 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717364 Ext File Attributes   00000000 (0)\n+717368 Local Header Offset   0068F647 (6878791)\n+71736C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71736C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7173A8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7173AA   Length              0005 (5)\n+7173AC   Flags               01 (1) 'Modification'\n+7173AD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7173B1 CENTRAL HEADER #1892  02014B50 (33639248)\n+7173B5 Created Zip Spec      14 (20) '2.0'\n+7173B6 Created OS            00 (0) 'MS-DOS'\n+7173B7 Extract Zip Spec      14 (20) '2.0'\n+7173B8 Extract OS            00 (0) 'MS-DOS'\n+7173B9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7173BB Compression Method    0000 (0) 'Stored'\n+7173BD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7173C1 CRC                   C56F8EA2 (3312422562)\n+7173C5 Compressed Size       00000B62 (2914)\n+7173C9 Uncompressed Size     00000B62 (2914)\n+7173CD Filename Length       003F (63)\n+7173CF Extra Length          0009 (9)\n+7173D1 Comment Length        0000 (0)\n+7173D3 Disk Start            0000 (0)\n+7173D5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7173D7 Ext File Attributes   00000000 (0)\n+7173DB Local Header Offset   0068FFE2 (6881250)\n+7173DF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7173DF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71741E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717420   Length              0005 (5)\n+717422   Flags               01 (1) 'Modification'\n+717423   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717427 CENTRAL HEADER #1893  02014B50 (33639248)\n+71742B Created Zip Spec      14 (20) '2.0'\n+71742C Created OS            00 (0) 'MS-DOS'\n+71742D Extract Zip Spec      14 (20) '2.0'\n+71742E Extract OS            00 (0) 'MS-DOS'\n+71742F General Purpose Flag  0000 (0)\n+717431 Compression Method    0000 (0) 'Stored'\n+717433 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717437 CRC                   00000000 (0)\n+71743B Compressed Size       00000000 (0)\n+71743F Uncompressed Size     00000000 (0)\n+717443 Filename Length       0024 (36)\n+717445 Extra Length          0009 (9)\n+717447 Comment Length        0000 (0)\n+717449 Disk Start            0000 (0)\n+71744B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71744D Ext File Attributes   00000000 (0)\n+717451 Local Header Offset   00690BBA (6884282)\n+717455 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717455: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717479 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71747B   Length              0005 (5)\n+71747D   Flags               01 (1) 'Modification'\n+71747E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717482 CENTRAL HEADER #1894  02014B50 (33639248)\n+717486 Created Zip Spec      14 (20) '2.0'\n+717487 Created OS            00 (0) 'MS-DOS'\n+717488 Extract Zip Spec      14 (20) '2.0'\n+717489 Extract OS            00 (0) 'MS-DOS'\n+71748A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71748C Compression Method    0000 (0) 'Stored'\n+71748E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717492 CRC                   780A8F69 (2013957993)\n+717496 Compressed Size       000005F6 (1526)\n+71749A Uncompressed Size     000005F6 (1526)\n+71749E Filename Length       0036 (54)\n+7174A0 Extra Length          0009 (9)\n+7174A2 Comment Length        0000 (0)\n+7174A4 Disk Start            0000 (0)\n+7174A6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7174A8 Ext File Attributes   00000000 (0)\n+7174AC Local Header Offset   00690C05 (6884357)\n+7174B0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7174B0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7174E6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7174E8   Length              0005 (5)\n+7174EA   Flags               01 (1) 'Modification'\n+7174EB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7174EF CENTRAL HEADER #1895  02014B50 (33639248)\n+7174F3 Created Zip Spec      14 (20) '2.0'\n+7174F4 Created OS            00 (0) 'MS-DOS'\n+7174F5 Extract Zip Spec      14 (20) '2.0'\n+7174F6 Extract OS            00 (0) 'MS-DOS'\n+7174F7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7174F9 Compression Method    0000 (0) 'Stored'\n+7174FB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7174FF CRC                   0693959E (110335390)\n+717503 Compressed Size       00000AB6 (2742)\n+717507 Uncompressed Size     00000AB6 (2742)\n+71750B Filename Length       0035 (53)\n+71750D Extra Length          0009 (9)\n+71750F Comment Length        0000 (0)\n+717511 Disk Start            0000 (0)\n+717513 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717515 Ext File Attributes   00000000 (0)\n+717519 Local Header Offset   00691268 (6885992)\n+71751D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71751D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717552 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717554   Length              0005 (5)\n+717556   Flags               01 (1) 'Modification'\n+717557   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71755B CENTRAL HEADER #1896  02014B50 (33639248)\n+71755F Created Zip Spec      14 (20) '2.0'\n+717560 Created OS            00 (0) 'MS-DOS'\n+717561 Extract Zip Spec      14 (20) '2.0'\n+717562 Extract OS            00 (0) 'MS-DOS'\n+717563 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717565 Compression Method    0000 (0) 'Stored'\n+717567 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71756B CRC                   EACFC8D2 (3939485906)\n+71756F Compressed Size       000011EA (4586)\n+717573 Uncompressed Size     000011EA (4586)\n+717577 Filename Length       0036 (54)\n+717579 Extra Length          0009 (9)\n+71757B Comment Length        0000 (0)\n+71757D Disk Start            0000 (0)\n+71757F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717581 Ext File Attributes   00000000 (0)\n+717585 Local Header Offset   00691D8A (6888842)\n+717589 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717589: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7175BF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7175C1   Length              0005 (5)\n+7175C3   Flags               01 (1) 'Modification'\n+7175C4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7175C8 CENTRAL HEADER #1897  02014B50 (33639248)\n+7175CC Created Zip Spec      14 (20) '2.0'\n+7175CD Created OS            00 (0) 'MS-DOS'\n+7175CE Extract Zip Spec      14 (20) '2.0'\n+7175CF Extract OS            00 (0) 'MS-DOS'\n+7175D0 General Purpose Flag  0000 (0)\n+7175D2 Compression Method    0000 (0) 'Stored'\n+7175D4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7175D8 CRC                   00000000 (0)\n+7175DC Compressed Size       00000000 (0)\n+7175E0 Uncompressed Size     00000000 (0)\n+7175E4 Filename Length       0028 (40)\n+7175E6 Extra Length          0009 (9)\n+7175E8 Comment Length        0000 (0)\n+7175EA Disk Start            0000 (0)\n+7175EC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7175EE Ext File Attributes   00000000 (0)\n+7175F2 Local Header Offset   00692FE1 (6893537)\n+7175F6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7175F6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71761E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717620   Length              0005 (5)\n+717622   Flags               01 (1) 'Modification'\n+717623   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717627 CENTRAL HEADER #1898  02014B50 (33639248)\n+71762B Created Zip Spec      14 (20) '2.0'\n+71762C Created OS            00 (0) 'MS-DOS'\n+71762D Extract Zip Spec      14 (20) '2.0'\n+71762E Extract OS            00 (0) 'MS-DOS'\n+71762F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717631 Compression Method    0000 (0) 'Stored'\n+717633 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717637 CRC                   E525BFD2 (3844456402)\n+71763B Compressed Size       00001958 (6488)\n+71763F Uncompressed Size     00001958 (6488)\n+717643 Filename Length       003E (62)\n+717645 Extra Length          0009 (9)\n+717647 Comment Length        0000 (0)\n+717649 Disk Start            0000 (0)\n+71764B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71764D Ext File Attributes   00000000 (0)\n+717651 Local Header Offset   00693030 (6893616)\n+717655 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717655: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717693 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717695   Length              0005 (5)\n+717697   Flags               01 (1) 'Modification'\n+717698   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71769C CENTRAL HEADER #1899  02014B50 (33639248)\n+7176A0 Created Zip Spec      14 (20) '2.0'\n+7176A1 Created OS            00 (0) 'MS-DOS'\n+7176A2 Extract Zip Spec      14 (20) '2.0'\n+7176A3 Extract OS            00 (0) 'MS-DOS'\n+7176A4 General Purpose Flag  0000 (0)\n+7176A6 Compression Method    0000 (0) 'Stored'\n+7176A8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7176AC CRC                   00000000 (0)\n+7176B0 Compressed Size       00000000 (0)\n+7176B4 Uncompressed Size     00000000 (0)\n+7176B8 Filename Length       002B (43)\n+7176BA Extra Length          0009 (9)\n+7176BC Comment Length        0000 (0)\n+7176BE Disk Start            0000 (0)\n+7176C0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7176C2 Ext File Attributes   00000000 (0)\n+7176C6 Local Header Offset   006949FD (6900221)\n+7176CA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7176CA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7176F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7176F7   Length              0005 (5)\n+7176F9   Flags               01 (1) 'Modification'\n+7176FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7176FE CENTRAL HEADER #1900  02014B50 (33639248)\n+717702 Created Zip Spec      14 (20) '2.0'\n+717703 Created OS            00 (0) 'MS-DOS'\n+717704 Extract Zip Spec      14 (20) '2.0'\n+717705 Extract OS            00 (0) 'MS-DOS'\n+717706 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717708 Compression Method    0000 (0) 'Stored'\n+71770A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71770E CRC                   C2851F80 (3263504256)\n+717712 Compressed Size       0000207E (8318)\n+717716 Uncompressed Size     0000207E (8318)\n+71771A Filename Length       003E (62)\n+71771C Extra Length          0009 (9)\n+71771E Comment Length        0000 (0)\n+717720 Disk Start            0000 (0)\n+717722 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717724 Ext File Attributes   00000000 (0)\n+717728 Local Header Offset   00694A4F (6900303)\n+71772C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71772C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71776A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71776C   Length              0005 (5)\n+71776E   Flags               01 (1) 'Modification'\n+71776F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717773 CENTRAL HEADER #1901  02014B50 (33639248)\n+717777 Created Zip Spec      14 (20) '2.0'\n+717778 Created OS            00 (0) 'MS-DOS'\n+717779 Extract Zip Spec      14 (20) '2.0'\n+71777A Extract OS            00 (0) 'MS-DOS'\n+71777B General Purpose Flag  0000 (0)\n+71777D Compression Method    0000 (0) 'Stored'\n+71777F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717783 CRC                   00000000 (0)\n+717787 Compressed Size       00000000 (0)\n+71778B Uncompressed Size     00000000 (0)\n+71778F Filename Length       0024 (36)\n+717791 Extra Length          0009 (9)\n+717793 Comment Length        0000 (0)\n+717795 Disk Start            0000 (0)\n+717797 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717799 Ext File Attributes   00000000 (0)\n+71779D Local Header Offset   00696B42 (6908738)\n+7177A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7177A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7177C5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7177C7   Length              0005 (5)\n+7177C9   Flags               01 (1) 'Modification'\n+7177CA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7177CE CENTRAL HEADER #1902  02014B50 (33639248)\n+7177D2 Created Zip Spec      14 (20) '2.0'\n+7177D3 Created OS            00 (0) 'MS-DOS'\n+7177D4 Extract Zip Spec      14 (20) '2.0'\n+7177D5 Extract OS            00 (0) 'MS-DOS'\n+7177D6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7177D8 Compression Method    0000 (0) 'Stored'\n+7177DA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7177DE CRC                   2CD78AEC (752323308)\n+7177E2 Compressed Size       0000277A (10106)\n+7177E6 Uncompressed Size     0000277A (10106)\n+7177EA Filename Length       0036 (54)\n+7177EC Extra Length          0009 (9)\n+7177EE Comment Length        0000 (0)\n+7177F0 Disk Start            0000 (0)\n+7177F2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7177F4 Ext File Attributes   00000000 (0)\n+7177F8 Local Header Offset   00696B8D (6908813)\n+7177FC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7177FC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717832 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717834   Length              0005 (5)\n+717836   Flags               01 (1) 'Modification'\n+717837   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71783B CENTRAL HEADER #1903  02014B50 (33639248)\n+71783F Created Zip Spec      14 (20) '2.0'\n+717840 Created OS            00 (0) 'MS-DOS'\n+717841 Extract Zip Spec      14 (20) '2.0'\n+717842 Extract OS            00 (0) 'MS-DOS'\n+717843 General Purpose Flag  0000 (0)\n+717845 Compression Method    0000 (0) 'Stored'\n+717847 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71784B CRC                   00000000 (0)\n+71784F Compressed Size       00000000 (0)\n+717853 Uncompressed Size     00000000 (0)\n+717857 Filename Length       0023 (35)\n+717859 Extra Length          0009 (9)\n+71785B Comment Length        0000 (0)\n+71785D Disk Start            0000 (0)\n+71785F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717861 Ext File Attributes   00000000 (0)\n+717865 Local Header Offset   00699374 (6919028)\n+717869 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717869: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71788C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71788E   Length              0005 (5)\n+717890   Flags               01 (1) 'Modification'\n+717891   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717895 CENTRAL HEADER #1904  02014B50 (33639248)\n+717899 Created Zip Spec      14 (20) '2.0'\n+71789A Created OS            00 (0) 'MS-DOS'\n+71789B Extract Zip Spec      14 (20) '2.0'\n+71789C Extract OS            00 (0) 'MS-DOS'\n+71789D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71789F Compression Method    0000 (0) 'Stored'\n+7178A1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7178A5 CRC                   E49ADE4B (3835354699)\n+7178A9 Compressed Size       00000C26 (3110)\n+7178AD Uncompressed Size     00000C26 (3110)\n+7178B1 Filename Length       003E (62)\n+7178B3 Extra Length          0009 (9)\n+7178B5 Comment Length        0000 (0)\n+7178B7 Disk Start            0000 (0)\n+7178B9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7178BB Ext File Attributes   00000000 (0)\n+7178BF Local Header Offset   006993BE (6919102)\n+7178C3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7178C3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717901 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717903   Length              0005 (5)\n+717905   Flags               01 (1) 'Modification'\n+717906   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71790A CENTRAL HEADER #1905  02014B50 (33639248)\n+71790E Created Zip Spec      14 (20) '2.0'\n+71790F Created OS            00 (0) 'MS-DOS'\n+717910 Extract Zip Spec      14 (20) '2.0'\n+717911 Extract OS            00 (0) 'MS-DOS'\n+717912 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717914 Compression Method    0000 (0) 'Stored'\n+717916 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71791A CRC                   CAFD8C87 (3405614215)\n+71791E Compressed Size       00000411 (1041)\n+717922 Uncompressed Size     00000411 (1041)\n+717926 Filename Length       0031 (49)\n+717928 Extra Length          0009 (9)\n+71792A Comment Length        0000 (0)\n+71792C Disk Start            0000 (0)\n+71792E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717930 Ext File Attributes   00000000 (0)\n+717934 Local Header Offset   0069A059 (6922329)\n+717938 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717938: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717969 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71796B   Length              0005 (5)\n+71796D   Flags               01 (1) 'Modification'\n+71796E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717972 CENTRAL HEADER #1906  02014B50 (33639248)\n+717976 Created Zip Spec      14 (20) '2.0'\n+717977 Created OS            00 (0) 'MS-DOS'\n+717978 Extract Zip Spec      14 (20) '2.0'\n+717979 Extract OS            00 (0) 'MS-DOS'\n+71797A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71797C Compression Method    0000 (0) 'Stored'\n+71797E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717982 CRC                   3D20A35F (1025549151)\n+717986 Compressed Size       0000127A (4730)\n+71798A Uncompressed Size     0000127A (4730)\n+71798E Filename Length       003F (63)\n+717990 Extra Length          0009 (9)\n+717992 Comment Length        0000 (0)\n+717994 Disk Start            0000 (0)\n+717996 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717998 Ext File Attributes   00000000 (0)\n+71799C Local Header Offset   0069A4D2 (6923474)\n+7179A0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7179A0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7179DF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7179E1   Length              0005 (5)\n+7179E3   Flags               01 (1) 'Modification'\n+7179E4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7179E8 CENTRAL HEADER #1907  02014B50 (33639248)\n+7179EC Created Zip Spec      14 (20) '2.0'\n+7179ED Created OS            00 (0) 'MS-DOS'\n+7179EE Extract Zip Spec      14 (20) '2.0'\n+7179EF Extract OS            00 (0) 'MS-DOS'\n+7179F0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7179F2 Compression Method    0000 (0) 'Stored'\n+7179F4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7179F8 CRC                   74B3513E (1957908798)\n+7179FC Compressed Size       00000A15 (2581)\n+717A00 Uncompressed Size     00000A15 (2581)\n+717A04 Filename Length       003C (60)\n+717A06 Extra Length          0009 (9)\n+717A08 Comment Length        0000 (0)\n+717A0A Disk Start            0000 (0)\n+717A0C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717A0E Ext File Attributes   00000000 (0)\n+717A12 Local Header Offset   0069B7C2 (6928322)\n+717A16 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717A16: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717A52 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717A54   Length              0005 (5)\n+717A56   Flags               01 (1) 'Modification'\n+717A57   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717A5B CENTRAL HEADER #1908  02014B50 (33639248)\n+717A5F Created Zip Spec      14 (20) '2.0'\n+717A60 Created OS            00 (0) 'MS-DOS'\n+717A61 Extract Zip Spec      14 (20) '2.0'\n+717A62 Extract OS            00 (0) 'MS-DOS'\n+717A63 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717A65 Compression Method    0000 (0) 'Stored'\n+717A67 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717A6B CRC                   755A7982 (1968863618)\n+717A6F Compressed Size       00000C91 (3217)\n+717A73 Uncompressed Size     00000C91 (3217)\n+717A77 Filename Length       003F (63)\n+717A79 Extra Length          0009 (9)\n+717A7B Comment Length        0000 (0)\n+717A7D Disk Start            0000 (0)\n+717A7F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717A81 Ext File Attributes   00000000 (0)\n+717A85 Local Header Offset   0069C24A (6931018)\n+717A89 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717A89: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717AC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717ACA   Length              0005 (5)\n+717ACC   Flags               01 (1) 'Modification'\n+717ACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717AD1 CENTRAL HEADER #1909  02014B50 (33639248)\n+717AD5 Created Zip Spec      14 (20) '2.0'\n+717AD6 Created OS            00 (0) 'MS-DOS'\n+717AD7 Extract Zip Spec      14 (20) '2.0'\n+717AD8 Extract OS            00 (0) 'MS-DOS'\n+717AD9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717ADB Compression Method    0000 (0) 'Stored'\n+717ADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717AE1 CRC                   CB062A84 (3406178948)\n+717AE5 Compressed Size       000007E1 (2017)\n+717AE9 Uncompressed Size     000007E1 (2017)\n+717AED Filename Length       003F (63)\n+717AEF Extra Length          0009 (9)\n+717AF1 Comment Length        0000 (0)\n+717AF3 Disk Start            0000 (0)\n+717AF5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717AF7 Ext File Attributes   00000000 (0)\n+717AFB Local Header Offset   0069CF51 (6934353)\n+717AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717B3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717B40   Length              0005 (5)\n+717B42   Flags               01 (1) 'Modification'\n+717B43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717B47 CENTRAL HEADER #1910  02014B50 (33639248)\n+717B4B Created Zip Spec      14 (20) '2.0'\n+717B4C Created OS            00 (0) 'MS-DOS'\n+717B4D Extract Zip Spec      14 (20) '2.0'\n+717B4E Extract OS            00 (0) 'MS-DOS'\n+717B4F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717B51 Compression Method    0000 (0) 'Stored'\n+717B53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717B57 CRC                   D7522A4D (3612486221)\n+717B5B Compressed Size       00003319 (13081)\n+717B5F Uncompressed Size     00003319 (13081)\n+717B63 Filename Length       0034 (52)\n+717B65 Extra Length          0009 (9)\n+717B67 Comment Length        0000 (0)\n+717B69 Disk Start            0000 (0)\n+717B6B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717B6D Ext File Attributes   00000000 (0)\n+717B71 Local Header Offset   0069D7A8 (6936488)\n+717B75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717B75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717BA9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717BAB   Length              0005 (5)\n+717BAD   Flags               01 (1) 'Modification'\n+717BAE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717BB2 CENTRAL HEADER #1911  02014B50 (33639248)\n+717BB6 Created Zip Spec      14 (20) '2.0'\n+717BB7 Created OS            00 (0) 'MS-DOS'\n+717BB8 Extract Zip Spec      14 (20) '2.0'\n+717BB9 Extract OS            00 (0) 'MS-DOS'\n+717BBA General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717BBC Compression Method    0000 (0) 'Stored'\n+717BBE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717BC2 CRC                   6BBB41BD (1807434173)\n+717BC6 Compressed Size       000004F5 (1269)\n+717BCA Uncompressed Size     000004F5 (1269)\n+717BCE Filename Length       003A (58)\n+717BD0 Extra Length          0009 (9)\n+717BD2 Comment Length        0000 (0)\n+717BD4 Disk Start            0000 (0)\n+717BD6 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717BD8 Ext File Attributes   00000000 (0)\n+717BDC Local Header Offset   006A0B2C (6949676)\n+717BE0 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717BE0: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717C1A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717C1C   Length              0005 (5)\n+717C1E   Flags               01 (1) 'Modification'\n+717C1F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717C23 CENTRAL HEADER #1912  02014B50 (33639248)\n+717C27 Created Zip Spec      14 (20) '2.0'\n+717C28 Created OS            00 (0) 'MS-DOS'\n+717C29 Extract Zip Spec      14 (20) '2.0'\n+717C2A Extract OS            00 (0) 'MS-DOS'\n+717C2B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717C2D Compression Method    0000 (0) 'Stored'\n+717C2F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717C33 CRC                   086F2C9C (141503644)\n+717C37 Compressed Size       000006D1 (1745)\n+717C3B Uncompressed Size     000006D1 (1745)\n+717C3F Filename Length       0039 (57)\n+717C41 Extra Length          0009 (9)\n+717C43 Comment Length        0000 (0)\n+717C45 Disk Start            0000 (0)\n+717C47 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717C49 Ext File Attributes   00000000 (0)\n+717C4D Local Header Offset   006A1092 (6951058)\n+717C51 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717C51: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717C8A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717C8C   Length              0005 (5)\n+717C8E   Flags               01 (1) 'Modification'\n+717C8F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717C93 CENTRAL HEADER #1913  02014B50 (33639248)\n+717C97 Created Zip Spec      14 (20) '2.0'\n+717C98 Created OS            00 (0) 'MS-DOS'\n+717C99 Extract Zip Spec      14 (20) '2.0'\n+717C9A Extract OS            00 (0) 'MS-DOS'\n+717C9B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717C9D Compression Method    0000 (0) 'Stored'\n+717C9F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717CA3 CRC                   A0E895BE (2699597246)\n+717CA7 Compressed Size       00001200 (4608)\n+717CAB Uncompressed Size     00001200 (4608)\n+717CAF Filename Length       0038 (56)\n+717CB1 Extra Length          0009 (9)\n+717CB3 Comment Length        0000 (0)\n+717CB5 Disk Start            0000 (0)\n+717CB7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717CB9 Ext File Attributes   00000000 (0)\n+717CBD Local Header Offset   006A17D3 (6952915)\n+717CC1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717CC1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717CF9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717CFB   Length              0005 (5)\n+717CFD   Flags               01 (1) 'Modification'\n+717CFE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717D02 CENTRAL HEADER #1914  02014B50 (33639248)\n+717D06 Created Zip Spec      14 (20) '2.0'\n+717D07 Created OS            00 (0) 'MS-DOS'\n+717D08 Extract Zip Spec      14 (20) '2.0'\n+717D09 Extract OS            00 (0) 'MS-DOS'\n+717D0A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717D0C Compression Method    0000 (0) 'Stored'\n+717D0E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717D12 CRC                   939A92A5 (2476380837)\n+717D16 Compressed Size       000009EA (2538)\n+717D1A Uncompressed Size     000009EA (2538)\n+717D1E Filename Length       003A (58)\n+717D20 Extra Length          0009 (9)\n+717D22 Comment Length        0000 (0)\n+717D24 Disk Start            0000 (0)\n+717D26 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717D28 Ext File Attributes   00000000 (0)\n+717D2C Local Header Offset   006A2A42 (6957634)\n+717D30 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717D30: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717D6A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717D6C   Length              0005 (5)\n+717D6E   Flags               01 (1) 'Modification'\n+717D6F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717D73 CENTRAL HEADER #1915  02014B50 (33639248)\n+717D77 Created Zip Spec      14 (20) '2.0'\n+717D78 Created OS            00 (0) 'MS-DOS'\n+717D79 Extract Zip Spec      14 (20) '2.0'\n+717D7A Extract OS            00 (0) 'MS-DOS'\n+717D7B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717D7D Compression Method    0000 (0) 'Stored'\n+717D7F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717D83 CRC                   4DDA4FAB (1306152875)\n+717D87 Compressed Size       00000793 (1939)\n+717D8B Uncompressed Size     00000793 (1939)\n+717D8F Filename Length       0037 (55)\n+717D91 Extra Length          0009 (9)\n+717D93 Comment Length        0000 (0)\n+717D95 Disk Start            0000 (0)\n+717D97 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717D99 Ext File Attributes   00000000 (0)\n+717D9D Local Header Offset   006A349D (6960285)\n+717DA1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717DA1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717DD8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717DDA   Length              0005 (5)\n+717DDC   Flags               01 (1) 'Modification'\n+717DDD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717DE1 CENTRAL HEADER #1916  02014B50 (33639248)\n+717DE5 Created Zip Spec      14 (20) '2.0'\n+717DE6 Created OS            00 (0) 'MS-DOS'\n+717DE7 Extract Zip Spec      14 (20) '2.0'\n+717DE8 Extract OS            00 (0) 'MS-DOS'\n+717DE9 General Purpose Flag  0000 (0)\n+717DEB Compression Method    0000 (0) 'Stored'\n+717DED Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717DF1 CRC                   00000000 (0)\n+717DF5 Compressed Size       00000000 (0)\n+717DF9 Uncompressed Size     00000000 (0)\n+717DFD Filename Length       002F (47)\n+717DFF Extra Length          0009 (9)\n+717E01 Comment Length        0000 (0)\n+717E03 Disk Start            0000 (0)\n+717E05 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717E07 Ext File Attributes   00000000 (0)\n+717E0B Local Header Offset   006A3C9E (6962334)\n+717E0F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717E0F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717E3E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717E40   Length              0005 (5)\n+717E42   Flags               01 (1) 'Modification'\n+717E43   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717E47 CENTRAL HEADER #1917  02014B50 (33639248)\n+717E4B Created Zip Spec      14 (20) '2.0'\n+717E4C Created OS            00 (0) 'MS-DOS'\n+717E4D Extract Zip Spec      14 (20) '2.0'\n+717E4E Extract OS            00 (0) 'MS-DOS'\n+717E4F General Purpose Flag  0000 (0)\n+717E51 Compression Method    0000 (0) 'Stored'\n+717E53 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717E57 CRC                   00000000 (0)\n+717E5B Compressed Size       00000000 (0)\n+717E5F Uncompressed Size     00000000 (0)\n+717E63 Filename Length       0037 (55)\n+717E65 Extra Length          0009 (9)\n+717E67 Comment Length        0000 (0)\n+717E69 Disk Start            0000 (0)\n+717E6B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717E6D Ext File Attributes   00000000 (0)\n+717E71 Local Header Offset   006A3CF4 (6962420)\n+717E75 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717E75: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717EAC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717EAE   Length              0005 (5)\n+717EB0   Flags               01 (1) 'Modification'\n+717EB1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717EB5 CENTRAL HEADER #1918  02014B50 (33639248)\n+717EB9 Created Zip Spec      14 (20) '2.0'\n+717EBA Created OS            00 (0) 'MS-DOS'\n+717EBB Extract Zip Spec      14 (20) '2.0'\n+717EBC Extract OS            00 (0) 'MS-DOS'\n+717EBD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717EBF Compression Method    0000 (0) 'Stored'\n+717EC1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717EC5 CRC                   E3F9F330 (3824808752)\n+717EC9 Compressed Size       00000859 (2137)\n+717ECD Uncompressed Size     00000859 (2137)\n+717ED1 Filename Length       005A (90)\n+717ED3 Extra Length          0009 (9)\n+717ED5 Comment Length        0000 (0)\n+717ED7 Disk Start            0000 (0)\n+717ED9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717EDB Ext File Attributes   00000000 (0)\n+717EDF Local Header Offset   006A3D52 (6962514)\n+717EE3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717EE3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717F3D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717F3F   Length              0005 (5)\n+717F41   Flags               01 (1) 'Modification'\n+717F42   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717F46 CENTRAL HEADER #1919  02014B50 (33639248)\n+717F4A Created Zip Spec      14 (20) '2.0'\n+717F4B Created OS            00 (0) 'MS-DOS'\n+717F4C Extract Zip Spec      14 (20) '2.0'\n+717F4D Extract OS            00 (0) 'MS-DOS'\n+717F4E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+717F50 Compression Method    0000 (0) 'Stored'\n+717F52 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717F56 CRC                   879AD63A (2275071546)\n+717F5A Compressed Size       000006F0 (1776)\n+717F5E Uncompressed Size     000006F0 (1776)\n+717F62 Filename Length       004F (79)\n+717F64 Extra Length          0009 (9)\n+717F66 Comment Length        0000 (0)\n+717F68 Disk Start            0000 (0)\n+717F6A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717F6C Ext File Attributes   00000000 (0)\n+717F70 Local Header Offset   006A463C (6964796)\n+717F74 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717F74: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+717FC3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+717FC5   Length              0005 (5)\n+717FC7   Flags               01 (1) 'Modification'\n+717FC8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+717FCC CENTRAL HEADER #1920  02014B50 (33639248)\n+717FD0 Created Zip Spec      14 (20) '2.0'\n+717FD1 Created OS            00 (0) 'MS-DOS'\n+717FD2 Extract Zip Spec      14 (20) '2.0'\n+717FD3 Extract OS            00 (0) 'MS-DOS'\n+717FD4 General Purpose Flag  0000 (0)\n+717FD6 Compression Method    0000 (0) 'Stored'\n+717FD8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+717FDC CRC                   00000000 (0)\n+717FE0 Compressed Size       00000000 (0)\n+717FE4 Uncompressed Size     00000000 (0)\n+717FE8 Filename Length       002B (43)\n+717FEA Extra Length          0009 (9)\n+717FEC Comment Length        0000 (0)\n+717FEE Disk Start            0000 (0)\n+717FF0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+717FF2 Ext File Attributes   00000000 (0)\n+717FF6 Local Header Offset   006A4DB2 (6966706)\n+717FFA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x717FFA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718025 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718027   Length              0005 (5)\n+718029   Flags               01 (1) 'Modification'\n+71802A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71802E CENTRAL HEADER #1921  02014B50 (33639248)\n+718032 Created Zip Spec      14 (20) '2.0'\n+718033 Created OS            00 (0) 'MS-DOS'\n+718034 Extract Zip Spec      14 (20) '2.0'\n+718035 Extract OS            00 (0) 'MS-DOS'\n+718036 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718038 Compression Method    0000 (0) 'Stored'\n+71803A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71803E CRC                   FC72AE7D (4235374205)\n+718042 Compressed Size       00000523 (1315)\n+718046 Uncompressed Size     00000523 (1315)\n+71804A Filename Length       003B (59)\n+71804C Extra Length          0009 (9)\n+71804E Comment Length        0000 (0)\n+718050 Disk Start            0000 (0)\n+718052 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718054 Ext File Attributes   00000000 (0)\n+718058 Local Header Offset   006A4E04 (6966788)\n+71805C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71805C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718097 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718099   Length              0005 (5)\n+71809B   Flags               01 (1) 'Modification'\n+71809C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7180A0 CENTRAL HEADER #1922  02014B50 (33639248)\n+7180A4 Created Zip Spec      14 (20) '2.0'\n+7180A5 Created OS            00 (0) 'MS-DOS'\n+7180A6 Extract Zip Spec      14 (20) '2.0'\n+7180A7 Extract OS            00 (0) 'MS-DOS'\n+7180A8 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7180AA Compression Method    0000 (0) 'Stored'\n+7180AC Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7180B0 CRC                   98665538 (2556843320)\n+7180B4 Compressed Size       000015FB (5627)\n+7180B8 Uncompressed Size     000015FB (5627)\n+7180BC Filename Length       003D (61)\n+7180BE Extra Length          0009 (9)\n+7180C0 Comment Length        0000 (0)\n+7180C2 Disk Start            0000 (0)\n+7180C4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7180C6 Ext File Attributes   00000000 (0)\n+7180CA Local Header Offset   006A5399 (6968217)\n+7180CE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7180CE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71810B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71810D   Length              0005 (5)\n+71810F   Flags               01 (1) 'Modification'\n+718110   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718114 CENTRAL HEADER #1923  02014B50 (33639248)\n+718118 Created Zip Spec      14 (20) '2.0'\n+718119 Created OS            00 (0) 'MS-DOS'\n+71811A Extract Zip Spec      14 (20) '2.0'\n+71811B Extract OS            00 (0) 'MS-DOS'\n+71811C General Purpose Flag  0000 (0)\n+71811E Compression Method    0000 (0) 'Stored'\n+718120 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718124 CRC                   00000000 (0)\n+718128 Compressed Size       00000000 (0)\n+71812C Uncompressed Size     00000000 (0)\n+718130 Filename Length       0022 (34)\n+718132 Extra Length          0009 (9)\n+718134 Comment Length        0000 (0)\n+718136 Disk Start            0000 (0)\n+718138 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71813A Ext File Attributes   00000000 (0)\n+71813E Local Header Offset   006A6A08 (6973960)\n+718142 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718142: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718164 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718166   Length              0005 (5)\n+718168   Flags               01 (1) 'Modification'\n+718169   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71816D CENTRAL HEADER #1924  02014B50 (33639248)\n+718171 Created Zip Spec      14 (20) '2.0'\n+718172 Created OS            00 (0) 'MS-DOS'\n+718173 Extract Zip Spec      14 (20) '2.0'\n+718174 Extract OS            00 (0) 'MS-DOS'\n+718175 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718177 Compression Method    0000 (0) 'Stored'\n+718179 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71817D CRC                   B748FF21 (3075014433)\n+718181 Compressed Size       00001AD2 (6866)\n+718185 Uncompressed Size     00001AD2 (6866)\n+718189 Filename Length       0032 (50)\n+71818B Extra Length          0009 (9)\n+71818D Comment Length        0000 (0)\n+71818F Disk Start            0000 (0)\n+718191 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718193 Ext File Attributes   00000000 (0)\n+718197 Local Header Offset   006A6A51 (6974033)\n+71819B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71819B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7181CD Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7181CF   Length              0005 (5)\n+7181D1   Flags               01 (1) 'Modification'\n+7181D2   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7181D6 CENTRAL HEADER #1925  02014B50 (33639248)\n+7181DA Created Zip Spec      14 (20) '2.0'\n+7181DB Created OS            00 (0) 'MS-DOS'\n+7181DC Extract Zip Spec      14 (20) '2.0'\n+7181DD Extract OS            00 (0) 'MS-DOS'\n+7181DE General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7181E0 Compression Method    0000 (0) 'Stored'\n+7181E2 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7181E6 CRC                   E36AF793 (3815438227)\n+7181EA Compressed Size       00000AA2 (2722)\n+7181EE Uncompressed Size     00000AA2 (2722)\n+7181F2 Filename Length       003A (58)\n+7181F4 Extra Length          0009 (9)\n+7181F6 Comment Length        0000 (0)\n+7181F8 Disk Start            0000 (0)\n+7181FA Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7181FC Ext File Attributes   00000000 (0)\n+718200 Local Header Offset   006A858C (6981004)\n+718204 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718204: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71823E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718240   Length              0005 (5)\n+718242   Flags               01 (1) 'Modification'\n+718243   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718247 CENTRAL HEADER #1926  02014B50 (33639248)\n+71824B Created Zip Spec      14 (20) '2.0'\n+71824C Created OS            00 (0) 'MS-DOS'\n+71824D Extract Zip Spec      14 (20) '2.0'\n+71824E Extract OS            00 (0) 'MS-DOS'\n+71824F General Purpose Flag  0000 (0)\n+718251 Compression Method    0000 (0) 'Stored'\n+718253 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718257 CRC                   00000000 (0)\n+71825B Compressed Size       00000000 (0)\n+71825F Uncompressed Size     00000000 (0)\n+718263 Filename Length       0025 (37)\n+718265 Extra Length          0009 (9)\n+718267 Comment Length        0000 (0)\n+718269 Disk Start            0000 (0)\n+71826B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71826D Ext File Attributes   00000000 (0)\n+718271 Local Header Offset   006A909F (6983839)\n+718275 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718275: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71829A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71829C   Length              0005 (5)\n+71829E   Flags               01 (1) 'Modification'\n+71829F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7182A3 CENTRAL HEADER #1927  02014B50 (33639248)\n+7182A7 Created Zip Spec      14 (20) '2.0'\n+7182A8 Created OS            00 (0) 'MS-DOS'\n+7182A9 Extract Zip Spec      14 (20) '2.0'\n+7182AA Extract OS            00 (0) 'MS-DOS'\n+7182AB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7182AD Compression Method    0000 (0) 'Stored'\n+7182AF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7182B3 CRC                   63A56C0E (1671785486)\n+7182B7 Compressed Size       000004E2 (1250)\n+7182BB Uncompressed Size     000004E2 (1250)\n+7182BF Filename Length       003C (60)\n+7182C1 Extra Length          0009 (9)\n+7182C3 Comment Length        0000 (0)\n+7182C5 Disk Start            0000 (0)\n+7182C7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7182C9 Ext File Attributes   00000000 (0)\n+7182CD Local Header Offset   006A90EB (6983915)\n+7182D1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7182D1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71830D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71830F   Length              0005 (5)\n+718311   Flags               01 (1) 'Modification'\n+718312   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718316 CENTRAL HEADER #1928  02014B50 (33639248)\n+71831A Created Zip Spec      14 (20) '2.0'\n+71831B Created OS            00 (0) 'MS-DOS'\n+71831C Extract Zip Spec      14 (20) '2.0'\n+71831D Extract OS            00 (0) 'MS-DOS'\n+71831E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718320 Compression Method    0000 (0) 'Stored'\n+718322 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718326 CRC                   E0FB0689 (3774547593)\n+71832A Compressed Size       000005C0 (1472)\n+71832E Uncompressed Size     000005C0 (1472)\n+718332 Filename Length       0041 (65)\n+718334 Extra Length          0009 (9)\n+718336 Comment Length        0000 (0)\n+718338 Disk Start            0000 (0)\n+71833A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71833C Ext File Attributes   00000000 (0)\n+718340 Local Header Offset   006A9640 (6985280)\n+718344 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718344: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718385 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718387   Length              0005 (5)\n+718389   Flags               01 (1) 'Modification'\n+71838A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71838E CENTRAL HEADER #1929  02014B50 (33639248)\n+718392 Created Zip Spec      14 (20) '2.0'\n+718393 Created OS            00 (0) 'MS-DOS'\n+718394 Extract Zip Spec      14 (20) '2.0'\n+718395 Extract OS            00 (0) 'MS-DOS'\n+718396 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718398 Compression Method    0000 (0) 'Stored'\n+71839A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71839E CRC                   45D210E4 (1171394788)\n+7183A2 Compressed Size       000005CE (1486)\n+7183A6 Uncompressed Size     000005CE (1486)\n+7183AA Filename Length       0042 (66)\n+7183AC Extra Length          0009 (9)\n+7183AE Comment Length        0000 (0)\n+7183B0 Disk Start            0000 (0)\n+7183B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7183B4 Ext File Attributes   00000000 (0)\n+7183B8 Local Header Offset   006A9C78 (6986872)\n+7183BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7183BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7183FE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718400   Length              0005 (5)\n+718402   Flags               01 (1) 'Modification'\n+718403   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718407 CENTRAL HEADER #1930  02014B50 (33639248)\n+71840B Created Zip Spec      14 (20) '2.0'\n+71840C Created OS            00 (0) 'MS-DOS'\n+71840D Extract Zip Spec      14 (20) '2.0'\n+71840E Extract OS            00 (0) 'MS-DOS'\n+71840F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718411 Compression Method    0000 (0) 'Stored'\n+718413 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718417 CRC                   F30965C2 (4077479362)\n+71841B Compressed Size       0000630A (25354)\n+71841F Uncompressed Size     0000630A (25354)\n+718423 Filename Length       0035 (53)\n+718425 Extra Length          0009 (9)\n+718427 Comment Length        0000 (0)\n+718429 Disk Start            0000 (0)\n+71842B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71842D Ext File Attributes   00000000 (0)\n+718431 Local Header Offset   006AA2BF (6988479)\n+718435 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718435: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71846A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71846C   Length              0005 (5)\n+71846E   Flags               01 (1) 'Modification'\n+71846F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718473 CENTRAL HEADER #1931  02014B50 (33639248)\n+718477 Created Zip Spec      14 (20) '2.0'\n+718478 Created OS            00 (0) 'MS-DOS'\n+718479 Extract Zip Spec      14 (20) '2.0'\n+71847A Extract OS            00 (0) 'MS-DOS'\n+71847B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71847D Compression Method    0000 (0) 'Stored'\n+71847F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718483 CRC                   046733D7 (73872343)\n+718487 Compressed Size       00000548 (1352)\n+71848B Uncompressed Size     00000548 (1352)\n+71848F Filename Length       0039 (57)\n+718491 Extra Length          0009 (9)\n+718493 Comment Length        0000 (0)\n+718495 Disk Start            0000 (0)\n+718497 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718499 Ext File Attributes   00000000 (0)\n+71849D Local Header Offset   006B0635 (7013941)\n+7184A1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7184A1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7184DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7184DC   Length              0005 (5)\n+7184DE   Flags               01 (1) 'Modification'\n+7184DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7184E3 CENTRAL HEADER #1932  02014B50 (33639248)\n+7184E7 Created Zip Spec      14 (20) '2.0'\n+7184E8 Created OS            00 (0) 'MS-DOS'\n+7184E9 Extract Zip Spec      14 (20) '2.0'\n+7184EA Extract OS            00 (0) 'MS-DOS'\n+7184EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7184ED Compression Method    0000 (0) 'Stored'\n+7184EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7184F3 CRC                   0C743F4B (208944971)\n+7184F7 Compressed Size       00001883 (6275)\n+7184FB Uncompressed Size     00001883 (6275)\n+7184FF Filename Length       0037 (55)\n+718501 Extra Length          0009 (9)\n+718503 Comment Length        0000 (0)\n+718505 Disk Start            0000 (0)\n+718507 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718509 Ext File Attributes   00000000 (0)\n+71850D Local Header Offset   006B0BED (7015405)\n+718511 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718511: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718548 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71854A   Length              0005 (5)\n+71854C   Flags               01 (1) 'Modification'\n+71854D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718551 CENTRAL HEADER #1933  02014B50 (33639248)\n+718555 Created Zip Spec      14 (20) '2.0'\n+718556 Created OS            00 (0) 'MS-DOS'\n+718557 Extract Zip Spec      14 (20) '2.0'\n+718558 Extract OS            00 (0) 'MS-DOS'\n+718559 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71855B Compression Method    0000 (0) 'Stored'\n+71855D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718561 CRC                   ADE79375 (2917634933)\n+718565 Compressed Size       00000F93 (3987)\n+718569 Uncompressed Size     00000F93 (3987)\n+71856D Filename Length       003B (59)\n+71856F Extra Length          0009 (9)\n+718571 Comment Length        0000 (0)\n+718573 Disk Start            0000 (0)\n+718575 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718577 Ext File Attributes   00000000 (0)\n+71857B Local Header Offset   006B24DE (7021790)\n+71857F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71857F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7185BA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7185BC   Length              0005 (5)\n+7185BE   Flags               01 (1) 'Modification'\n+7185BF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7185C3 CENTRAL HEADER #1934  02014B50 (33639248)\n+7185C7 Created Zip Spec      14 (20) '2.0'\n+7185C8 Created OS            00 (0) 'MS-DOS'\n+7185C9 Extract Zip Spec      14 (20) '2.0'\n+7185CA Extract OS            00 (0) 'MS-DOS'\n+7185CB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7185CD Compression Method    0000 (0) 'Stored'\n+7185CF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7185D3 CRC                   95A966C5 (2510907077)\n+7185D7 Compressed Size       0000279F (10143)\n+7185DB Uncompressed Size     0000279F (10143)\n+7185DF Filename Length       0038 (56)\n+7185E1 Extra Length          0009 (9)\n+7185E3 Comment Length        0000 (0)\n+7185E5 Disk Start            0000 (0)\n+7185E7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7185E9 Ext File Attributes   00000000 (0)\n+7185ED Local Header Offset   006B34E3 (7025891)\n+7185F1 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7185F1: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718629 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71862B   Length              0005 (5)\n+71862D   Flags               01 (1) 'Modification'\n+71862E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718632 CENTRAL HEADER #1935  02014B50 (33639248)\n+718636 Created Zip Spec      14 (20) '2.0'\n+718637 Created OS            00 (0) 'MS-DOS'\n+718638 Extract Zip Spec      14 (20) '2.0'\n+718639 Extract OS            00 (0) 'MS-DOS'\n+71863A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71863C Compression Method    0000 (0) 'Stored'\n+71863E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718642 CRC                   FBA20F3E (4221701950)\n+718646 Compressed Size       0000069F (1695)\n+71864A Uncompressed Size     0000069F (1695)\n+71864E Filename Length       0034 (52)\n+718650 Extra Length          0009 (9)\n+718652 Comment Length        0000 (0)\n+718654 Disk Start            0000 (0)\n+718656 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718658 Ext File Attributes   00000000 (0)\n+71865C Local Header Offset   006B5CF1 (7036145)\n+718660 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718660: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718694 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718696   Length              0005 (5)\n+718698   Flags               01 (1) 'Modification'\n+718699   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71869D CENTRAL HEADER #1936  02014B50 (33639248)\n+7186A1 Created Zip Spec      14 (20) '2.0'\n+7186A2 Created OS            00 (0) 'MS-DOS'\n+7186A3 Extract Zip Spec      14 (20) '2.0'\n+7186A4 Extract OS            00 (0) 'MS-DOS'\n+7186A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7186A7 Compression Method    0000 (0) 'Stored'\n+7186A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7186AD CRC                   6BB5A87E (1807067262)\n+7186B1 Compressed Size       00001101 (4353)\n+7186B5 Uncompressed Size     00001101 (4353)\n+7186B9 Filename Length       0035 (53)\n+7186BB Extra Length          0009 (9)\n+7186BD Comment Length        0000 (0)\n+7186BF Disk Start            0000 (0)\n+7186C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7186C3 Ext File Attributes   00000000 (0)\n+7186C7 Local Header Offset   006B63FB (7037947)\n+7186CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7186CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718700 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718702   Length              0005 (5)\n+718704   Flags               01 (1) 'Modification'\n+718705   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718709 CENTRAL HEADER #1937  02014B50 (33639248)\n+71870D Created Zip Spec      14 (20) '2.0'\n+71870E Created OS            00 (0) 'MS-DOS'\n+71870F Extract Zip Spec      14 (20) '2.0'\n+718710 Extract OS            00 (0) 'MS-DOS'\n+718711 General Purpose Flag  0000 (0)\n+718713 Compression Method    0000 (0) 'Stored'\n+718715 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718719 CRC                   00000000 (0)\n+71871D Compressed Size       00000000 (0)\n+718721 Uncompressed Size     00000000 (0)\n+718725 Filename Length       0029 (41)\n+718727 Extra Length          0009 (9)\n+718729 Comment Length        0000 (0)\n+71872B Disk Start            0000 (0)\n+71872D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71872F Ext File Attributes   00000000 (0)\n+718733 Local Header Offset   006B7568 (7042408)\n+718737 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718737: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718760 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718762   Length              0005 (5)\n+718764   Flags               01 (1) 'Modification'\n+718765   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718769 CENTRAL HEADER #1938  02014B50 (33639248)\n+71876D Created Zip Spec      14 (20) '2.0'\n+71876E Created OS            00 (0) 'MS-DOS'\n+71876F Extract Zip Spec      14 (20) '2.0'\n+718770 Extract OS            00 (0) 'MS-DOS'\n+718771 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718773 Compression Method    0000 (0) 'Stored'\n+718775 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718779 CRC                   B641845C (3057747036)\n+71877D Compressed Size       000010B7 (4279)\n+718781 Uncompressed Size     000010B7 (4279)\n+718785 Filename Length       0043 (67)\n+718787 Extra Length          0009 (9)\n+718789 Comment Length        0000 (0)\n+71878B Disk Start            0000 (0)\n+71878D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71878F Ext File Attributes   00000000 (0)\n+718793 Local Header Offset   006B75B8 (7042488)\n+718797 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718797: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7187DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7187DC   Length              0005 (5)\n+7187DE   Flags               01 (1) 'Modification'\n+7187DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7187E3 CENTRAL HEADER #1939  02014B50 (33639248)\n+7187E7 Created Zip Spec      14 (20) '2.0'\n+7187E8 Created OS            00 (0) 'MS-DOS'\n+7187E9 Extract Zip Spec      14 (20) '2.0'\n+7187EA Extract OS            00 (0) 'MS-DOS'\n+7187EB General Purpose Flag  0000 (0)\n+7187ED Compression Method    0000 (0) 'Stored'\n+7187EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7187F3 CRC                   00000000 (0)\n+7187F7 Compressed Size       00000000 (0)\n+7187FB Uncompressed Size     00000000 (0)\n+7187FF Filename Length       0028 (40)\n+718801 Extra Length          0009 (9)\n+718803 Comment Length        0000 (0)\n+718805 Disk Start            0000 (0)\n+718807 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718809 Ext File Attributes   00000000 (0)\n+71880D Local Header Offset   006B86E9 (7046889)\n+718811 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718811: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718839 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71883B   Length              0005 (5)\n+71883D   Flags               01 (1) 'Modification'\n+71883E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718842 CENTRAL HEADER #1940  02014B50 (33639248)\n+718846 Created Zip Spec      14 (20) '2.0'\n+718847 Created OS            00 (0) 'MS-DOS'\n+718848 Extract Zip Spec      14 (20) '2.0'\n+718849 Extract OS            00 (0) 'MS-DOS'\n+71884A General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71884C Compression Method    0000 (0) 'Stored'\n+71884E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718852 CRC                   021D9C13 (35494931)\n+718856 Compressed Size       00000951 (2385)\n+71885A Uncompressed Size     00000951 (2385)\n+71885E Filename Length       003F (63)\n+718860 Extra Length          0009 (9)\n+718862 Comment Length        0000 (0)\n+718864 Disk Start            0000 (0)\n+718866 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718868 Ext File Attributes   00000000 (0)\n+71886C Local Header Offset   006B8738 (7046968)\n+718870 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718870: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7188AF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7188B1   Length              0005 (5)\n+7188B3   Flags               01 (1) 'Modification'\n+7188B4   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7188B8 CENTRAL HEADER #1941  02014B50 (33639248)\n+7188BC Created Zip Spec      14 (20) '2.0'\n+7188BD Created OS            00 (0) 'MS-DOS'\n+7188BE Extract Zip Spec      14 (20) '2.0'\n+7188BF Extract OS            00 (0) 'MS-DOS'\n+7188C0 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7188C2 Compression Method    0000 (0) 'Stored'\n+7188C4 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7188C8 CRC                   C419897B (3290007931)\n+7188CC Compressed Size       00000C66 (3174)\n+7188D0 Uncompressed Size     00000C66 (3174)\n+7188D4 Filename Length       004E (78)\n+7188D6 Extra Length          0009 (9)\n+7188D8 Comment Length        0000 (0)\n+7188DA Disk Start            0000 (0)\n+7188DC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7188DE Ext File Attributes   00000000 (0)\n+7188E2 Local Header Offset   006B90FF (7049471)\n+7188E6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7188E6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718934 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718936   Length              0005 (5)\n+718938   Flags               01 (1) 'Modification'\n+718939   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71893D CENTRAL HEADER #1942  02014B50 (33639248)\n+718941 Created Zip Spec      14 (20) '2.0'\n+718942 Created OS            00 (0) 'MS-DOS'\n+718943 Extract Zip Spec      14 (20) '2.0'\n+718944 Extract OS            00 (0) 'MS-DOS'\n+718945 General Purpose Flag  0000 (0)\n+718947 Compression Method    0000 (0) 'Stored'\n+718949 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71894D CRC                   00000000 (0)\n+718951 Compressed Size       00000000 (0)\n+718955 Uncompressed Size     00000000 (0)\n+718959 Filename Length       0029 (41)\n+71895B Extra Length          0009 (9)\n+71895D Comment Length        0000 (0)\n+71895F Disk Start            0000 (0)\n+718961 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718963 Ext File Attributes   00000000 (0)\n+718967 Local Header Offset   006B9DEA (7052778)\n+71896B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71896B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718994 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718996   Length              0005 (5)\n+718998   Flags               01 (1) 'Modification'\n+718999   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71899D CENTRAL HEADER #1943  02014B50 (33639248)\n+7189A1 Created Zip Spec      14 (20) '2.0'\n+7189A2 Created OS            00 (0) 'MS-DOS'\n+7189A3 Extract Zip Spec      14 (20) '2.0'\n+7189A4 Extract OS            00 (0) 'MS-DOS'\n+7189A5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7189A7 Compression Method    0000 (0) 'Stored'\n+7189A9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7189AD CRC                   263D0E7B (641535611)\n+7189B1 Compressed Size       000023BC (9148)\n+7189B5 Uncompressed Size     000023BC (9148)\n+7189B9 Filename Length       0040 (64)\n+7189BB Extra Length          0009 (9)\n+7189BD Comment Length        0000 (0)\n+7189BF Disk Start            0000 (0)\n+7189C1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7189C3 Ext File Attributes   00000000 (0)\n+7189C7 Local Header Offset   006B9E3A (7052858)\n+7189CB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7189CB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718A0B Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718A0D   Length              0005 (5)\n+718A0F   Flags               01 (1) 'Modification'\n+718A10   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718A14 CENTRAL HEADER #1944  02014B50 (33639248)\n+718A18 Created Zip Spec      14 (20) '2.0'\n+718A19 Created OS            00 (0) 'MS-DOS'\n+718A1A Extract Zip Spec      14 (20) '2.0'\n+718A1B Extract OS            00 (0) 'MS-DOS'\n+718A1C General Purpose Flag  0000 (0)\n+718A1E Compression Method    0000 (0) 'Stored'\n+718A20 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718A24 CRC                   00000000 (0)\n+718A28 Compressed Size       00000000 (0)\n+718A2C Uncompressed Size     00000000 (0)\n+718A30 Filename Length       001B (27)\n+718A32 Extra Length          0009 (9)\n+718A34 Comment Length        0000 (0)\n+718A36 Disk Start            0000 (0)\n+718A38 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718A3A Ext File Attributes   00000000 (0)\n+718A3E Local Header Offset   006BC26D (7062125)\n+718A42 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718A42: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718A5D Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718A5F   Length              0005 (5)\n+718A61   Flags               01 (1) 'Modification'\n+718A62   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718A66 CENTRAL HEADER #1945  02014B50 (33639248)\n+718A6A Created Zip Spec      14 (20) '2.0'\n+718A6B Created OS            00 (0) 'MS-DOS'\n+718A6C Extract Zip Spec      14 (20) '2.0'\n+718A6D Extract OS            00 (0) 'MS-DOS'\n+718A6E General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718A70 Compression Method    0000 (0) 'Stored'\n+718A72 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718A76 CRC                   E40DEA4B (3826117195)\n+718A7A Compressed Size       00000CAE (3246)\n+718A7E Uncompressed Size     00000CAE (3246)\n+718A82 Filename Length       0034 (52)\n+718A84 Extra Length          0009 (9)\n+718A86 Comment Length        0000 (0)\n+718A88 Disk Start            0000 (0)\n+718A8A Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718A8C Ext File Attributes   00000000 (0)\n+718A90 Local Header Offset   006BC2AF (7062191)\n+718A94 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718A94: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718AC8 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718ACA   Length              0005 (5)\n+718ACC   Flags               01 (1) 'Modification'\n+718ACD   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718AD1 CENTRAL HEADER #1946  02014B50 (33639248)\n+718AD5 Created Zip Spec      14 (20) '2.0'\n+718AD6 Created OS            00 (0) 'MS-DOS'\n+718AD7 Extract Zip Spec      14 (20) '2.0'\n+718AD8 Extract OS            00 (0) 'MS-DOS'\n+718AD9 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718ADB Compression Method    0000 (0) 'Stored'\n+718ADD Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718AE1 CRC                   09E32673 (165881459)\n+718AE5 Compressed Size       0000136F (4975)\n+718AE9 Uncompressed Size     0000136F (4975)\n+718AED Filename Length       0034 (52)\n+718AEF Extra Length          0009 (9)\n+718AF1 Comment Length        0000 (0)\n+718AF3 Disk Start            0000 (0)\n+718AF5 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718AF7 Ext File Attributes   00000000 (0)\n+718AFB Local Header Offset   006BCFC8 (7065544)\n+718AFF Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718AFF: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718B33 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718B35   Length              0005 (5)\n+718B37   Flags               01 (1) 'Modification'\n+718B38   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718B3C CENTRAL HEADER #1947  02014B50 (33639248)\n+718B40 Created Zip Spec      14 (20) '2.0'\n+718B41 Created OS            00 (0) 'MS-DOS'\n+718B42 Extract Zip Spec      14 (20) '2.0'\n+718B43 Extract OS            00 (0) 'MS-DOS'\n+718B44 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718B46 Compression Method    0000 (0) 'Stored'\n+718B48 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718B4C CRC                   BE828C08 (3196226568)\n+718B50 Compressed Size       00000F73 (3955)\n+718B54 Uncompressed Size     00000F73 (3955)\n+718B58 Filename Length       0038 (56)\n+718B5A Extra Length          0009 (9)\n+718B5C Comment Length        0000 (0)\n+718B5E Disk Start            0000 (0)\n+718B60 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718B62 Ext File Attributes   00000000 (0)\n+718B66 Local Header Offset   006BE3A2 (7070626)\n+718B6A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718B6A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718BA2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718BA4   Length              0005 (5)\n+718BA6   Flags               01 (1) 'Modification'\n+718BA7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718BAB CENTRAL HEADER #1948  02014B50 (33639248)\n+718BAF Created Zip Spec      14 (20) '2.0'\n+718BB0 Created OS            00 (0) 'MS-DOS'\n+718BB1 Extract Zip Spec      14 (20) '2.0'\n+718BB2 Extract OS            00 (0) 'MS-DOS'\n+718BB3 General Purpose Flag  0000 (0)\n+718BB5 Compression Method    0000 (0) 'Stored'\n+718BB7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718BBB CRC                   00000000 (0)\n+718BBF Compressed Size       00000000 (0)\n+718BC3 Uncompressed Size     00000000 (0)\n+718BC7 Filename Length       0025 (37)\n+718BC9 Extra Length          0009 (9)\n+718BCB Comment Length        0000 (0)\n+718BCD Disk Start            0000 (0)\n+718BCF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718BD1 Ext File Attributes   00000000 (0)\n+718BD5 Local Header Offset   006BF384 (7074692)\n+718BD9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718BD9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718BFE Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718C00   Length              0005 (5)\n+718C02   Flags               01 (1) 'Modification'\n+718C03   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718C07 CENTRAL HEADER #1949  02014B50 (33639248)\n+718C0B Created Zip Spec      14 (20) '2.0'\n+718C0C Created OS            00 (0) 'MS-DOS'\n+718C0D Extract Zip Spec      14 (20) '2.0'\n+718C0E Extract OS            00 (0) 'MS-DOS'\n+718C0F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718C11 Compression Method    0000 (0) 'Stored'\n+718C13 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718C17 CRC                   33B08A9A (867207834)\n+718C1B Compressed Size       000008F0 (2288)\n+718C1F Uncompressed Size     000008F0 (2288)\n+718C23 Filename Length       003F (63)\n+718C25 Extra Length          0009 (9)\n+718C27 Comment Length        0000 (0)\n+718C29 Disk Start            0000 (0)\n+718C2B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718C2D Ext File Attributes   00000000 (0)\n+718C31 Local Header Offset   006BF3D0 (7074768)\n+718C35 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718C35: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718C74 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718C76   Length              0005 (5)\n+718C78   Flags               01 (1) 'Modification'\n+718C79   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718C7D CENTRAL HEADER #1950  02014B50 (33639248)\n+718C81 Created Zip Spec      14 (20) '2.0'\n+718C82 Created OS            00 (0) 'MS-DOS'\n+718C83 Extract Zip Spec      14 (20) '2.0'\n+718C84 Extract OS            00 (0) 'MS-DOS'\n+718C85 General Purpose Flag  0000 (0)\n+718C87 Compression Method    0000 (0) 'Stored'\n+718C89 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718C8D CRC                   00000000 (0)\n+718C91 Compressed Size       00000000 (0)\n+718C95 Uncompressed Size     00000000 (0)\n+718C99 Filename Length       001F (31)\n+718C9B Extra Length          0009 (9)\n+718C9D Comment Length        0000 (0)\n+718C9F Disk Start            0000 (0)\n+718CA1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718CA3 Ext File Attributes   00000000 (0)\n+718CA7 Local Header Offset   006BFD36 (7077174)\n+718CAB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718CAB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718CCA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718CCC   Length              0005 (5)\n+718CCE   Flags               01 (1) 'Modification'\n+718CCF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718CD3 CENTRAL HEADER #1951  02014B50 (33639248)\n+718CD7 Created Zip Spec      14 (20) '2.0'\n+718CD8 Created OS            00 (0) 'MS-DOS'\n+718CD9 Extract Zip Spec      14 (20) '2.0'\n+718CDA Extract OS            00 (0) 'MS-DOS'\n+718CDB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718CDD Compression Method    0000 (0) 'Stored'\n+718CDF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718CE3 CRC                   776F6B16 (2003790614)\n+718CE7 Compressed Size       0000084C (2124)\n+718CEB Uncompressed Size     0000084C (2124)\n+718CEF Filename Length       0033 (51)\n+718CF1 Extra Length          0009 (9)\n+718CF3 Comment Length        0000 (0)\n+718CF5 Disk Start            0000 (0)\n+718CF7 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718CF9 Ext File Attributes   00000000 (0)\n+718CFD Local Header Offset   006BFD7C (7077244)\n+718D01 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718D01: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718D34 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718D36   Length              0005 (5)\n+718D38   Flags               01 (1) 'Modification'\n+718D39   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718D3D CENTRAL HEADER #1952  02014B50 (33639248)\n+718D41 Created Zip Spec      14 (20) '2.0'\n+718D42 Created OS            00 (0) 'MS-DOS'\n+718D43 Extract Zip Spec      14 (20) '2.0'\n+718D44 Extract OS            00 (0) 'MS-DOS'\n+718D45 General Purpose Flag  0000 (0)\n+718D47 Compression Method    0000 (0) 'Stored'\n+718D49 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718D4D CRC                   00000000 (0)\n+718D51 Compressed Size       00000000 (0)\n+718D55 Uncompressed Size     00000000 (0)\n+718D59 Filename Length       0023 (35)\n+718D5B Extra Length          0009 (9)\n+718D5D Comment Length        0000 (0)\n+718D5F Disk Start            0000 (0)\n+718D61 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718D63 Ext File Attributes   00000000 (0)\n+718D67 Local Header Offset   006C0632 (7079474)\n+718D6B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718D6B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718D8E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718D90   Length              0005 (5)\n+718D92   Flags               01 (1) 'Modification'\n+718D93   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718D97 CENTRAL HEADER #1953  02014B50 (33639248)\n+718D9B Created Zip Spec      14 (20) '2.0'\n+718D9C Created OS            00 (0) 'MS-DOS'\n+718D9D Extract Zip Spec      14 (20) '2.0'\n+718D9E Extract OS            00 (0) 'MS-DOS'\n+718D9F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718DA1 Compression Method    0000 (0) 'Stored'\n+718DA3 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718DA7 CRC                   A1EB5EED (2716557037)\n+718DAB Compressed Size       000016D2 (5842)\n+718DAF Uncompressed Size     000016D2 (5842)\n+718DB3 Filename Length       003F (63)\n+718DB5 Extra Length          0009 (9)\n+718DB7 Comment Length        0000 (0)\n+718DB9 Disk Start            0000 (0)\n+718DBB Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718DBD Ext File Attributes   00000000 (0)\n+718DC1 Local Header Offset   006C067C (7079548)\n+718DC5 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718DC5: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718E04 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718E06   Length              0005 (5)\n+718E08   Flags               01 (1) 'Modification'\n+718E09   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718E0D CENTRAL HEADER #1954  02014B50 (33639248)\n+718E11 Created Zip Spec      14 (20) '2.0'\n+718E12 Created OS            00 (0) 'MS-DOS'\n+718E13 Extract Zip Spec      14 (20) '2.0'\n+718E14 Extract OS            00 (0) 'MS-DOS'\n+718E15 General Purpose Flag  0000 (0)\n+718E17 Compression Method    0000 (0) 'Stored'\n+718E19 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718E1D CRC                   00000000 (0)\n+718E21 Compressed Size       00000000 (0)\n+718E25 Uncompressed Size     00000000 (0)\n+718E29 Filename Length       001D (29)\n+718E2B Extra Length          0009 (9)\n+718E2D Comment Length        0000 (0)\n+718E2F Disk Start            0000 (0)\n+718E31 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718E33 Ext File Attributes   00000000 (0)\n+718E37 Local Header Offset   006C1DC4 (7085508)\n+718E3B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718E3B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718E58 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718E5A   Length              0005 (5)\n+718E5C   Flags               01 (1) 'Modification'\n+718E5D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718E61 CENTRAL HEADER #1955  02014B50 (33639248)\n+718E65 Created Zip Spec      14 (20) '2.0'\n+718E66 Created OS            00 (0) 'MS-DOS'\n+718E67 Extract Zip Spec      14 (20) '2.0'\n+718E68 Extract OS            00 (0) 'MS-DOS'\n+718E69 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718E6B Compression Method    0000 (0) 'Stored'\n+718E6D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718E71 CRC                   8C6F354A (2356098378)\n+718E75 Compressed Size       00000398 (920)\n+718E79 Uncompressed Size     00000398 (920)\n+718E7D Filename Length       002D (45)\n+718E7F Extra Length          0009 (9)\n+718E81 Comment Length        0000 (0)\n+718E83 Disk Start            0000 (0)\n+718E85 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718E87 Ext File Attributes   00000000 (0)\n+718E8B Local Header Offset   006C1E08 (7085576)\n+718E8F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718E8F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718EBC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718EBE   Length              0005 (5)\n+718EC0   Flags               01 (1) 'Modification'\n+718EC1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718EC5 CENTRAL HEADER #1956  02014B50 (33639248)\n+718EC9 Created Zip Spec      14 (20) '2.0'\n+718ECA Created OS            00 (0) 'MS-DOS'\n+718ECB Extract Zip Spec      14 (20) '2.0'\n+718ECC Extract OS            00 (0) 'MS-DOS'\n+718ECD General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718ECF Compression Method    0000 (0) 'Stored'\n+718ED1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718ED5 CRC                   4B31CC84 (1261554820)\n+718ED9 Compressed Size       00000431 (1073)\n+718EDD Uncompressed Size     00000431 (1073)\n+718EE1 Filename Length       002D (45)\n+718EE3 Extra Length          0009 (9)\n+718EE5 Comment Length        0000 (0)\n+718EE7 Disk Start            0000 (0)\n+718EE9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718EEB Ext File Attributes   00000000 (0)\n+718EEF Local Header Offset   006C2204 (7086596)\n+718EF3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718EF3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718F20 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718F22   Length              0005 (5)\n+718F24   Flags               01 (1) 'Modification'\n+718F25   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718F29 CENTRAL HEADER #1957  02014B50 (33639248)\n+718F2D Created Zip Spec      14 (20) '2.0'\n+718F2E Created OS            00 (0) 'MS-DOS'\n+718F2F Extract Zip Spec      14 (20) '2.0'\n+718F30 Extract OS            00 (0) 'MS-DOS'\n+718F31 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718F33 Compression Method    0000 (0) 'Stored'\n+718F35 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718F39 CRC                   66AD4132 (1722630450)\n+718F3D Compressed Size       00000442 (1090)\n+718F41 Uncompressed Size     00000442 (1090)\n+718F45 Filename Length       0035 (53)\n+718F47 Extra Length          0009 (9)\n+718F49 Comment Length        0000 (0)\n+718F4B Disk Start            0000 (0)\n+718F4D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718F4F Ext File Attributes   00000000 (0)\n+718F53 Local Header Offset   006C2699 (7087769)\n+718F57 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718F57: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718F8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718F8E   Length              0005 (5)\n+718F90   Flags               01 (1) 'Modification'\n+718F91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718F95 CENTRAL HEADER #1958  02014B50 (33639248)\n+718F99 Created Zip Spec      14 (20) '2.0'\n+718F9A Created OS            00 (0) 'MS-DOS'\n+718F9B Extract Zip Spec      14 (20) '2.0'\n+718F9C Extract OS            00 (0) 'MS-DOS'\n+718F9D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+718F9F Compression Method    0000 (0) 'Stored'\n+718FA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+718FA5 CRC                   49B9FF79 (1236926329)\n+718FA9 Compressed Size       00000809 (2057)\n+718FAD Uncompressed Size     00000809 (2057)\n+718FB1 Filename Length       0032 (50)\n+718FB3 Extra Length          0009 (9)\n+718FB5 Comment Length        0000 (0)\n+718FB7 Disk Start            0000 (0)\n+718FB9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+718FBB Ext File Attributes   00000000 (0)\n+718FBF Local Header Offset   006C2B47 (7088967)\n+718FC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x718FC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+718FF5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+718FF7   Length              0005 (5)\n+718FF9   Flags               01 (1) 'Modification'\n+718FFA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+718FFE CENTRAL HEADER #1959  02014B50 (33639248)\n+719002 Created Zip Spec      14 (20) '2.0'\n+719003 Created OS            00 (0) 'MS-DOS'\n+719004 Extract Zip Spec      14 (20) '2.0'\n+719005 Extract OS            00 (0) 'MS-DOS'\n+719006 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719008 Compression Method    0000 (0) 'Stored'\n+71900A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71900E CRC                   D07DEF14 (3497914132)\n+719012 Compressed Size       0000078D (1933)\n+719016 Uncompressed Size     0000078D (1933)\n+71901A Filename Length       0030 (48)\n+71901C Extra Length          0009 (9)\n+71901E Comment Length        0000 (0)\n+719020 Disk Start            0000 (0)\n+719022 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719024 Ext File Attributes   00000000 (0)\n+719028 Local Header Offset   006C33B9 (7091129)\n+71902C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71902C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71905C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71905E   Length              0005 (5)\n+719060   Flags               01 (1) 'Modification'\n+719061   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719065 CENTRAL HEADER #1960  02014B50 (33639248)\n+719069 Created Zip Spec      14 (20) '2.0'\n+71906A Created OS            00 (0) 'MS-DOS'\n+71906B Extract Zip Spec      14 (20) '2.0'\n+71906C Extract OS            00 (0) 'MS-DOS'\n+71906D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71906F Compression Method    0000 (0) 'Stored'\n+719071 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719075 CRC                   4AFAB67E (1257944702)\n+719079 Compressed Size       00000448 (1096)\n+71907D Uncompressed Size     00000448 (1096)\n+719081 Filename Length       0038 (56)\n+719083 Extra Length          0009 (9)\n+719085 Comment Length        0000 (0)\n+719087 Disk Start            0000 (0)\n+719089 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71908B Ext File Attributes   00000000 (0)\n+71908F Local Header Offset   006C3BAD (7093165)\n+719093 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719093: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7190CB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7190CD   Length              0005 (5)\n+7190CF   Flags               01 (1) 'Modification'\n+7190D0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7190D4 CENTRAL HEADER #1961  02014B50 (33639248)\n+7190D8 Created Zip Spec      14 (20) '2.0'\n+7190D9 Created OS            00 (0) 'MS-DOS'\n+7190DA Extract Zip Spec      14 (20) '2.0'\n+7190DB Extract OS            00 (0) 'MS-DOS'\n+7190DC General Purpose Flag  0000 (0)\n+7190DE Compression Method    0000 (0) 'Stored'\n+7190E0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7190E4 CRC                   00000000 (0)\n+7190E8 Compressed Size       00000000 (0)\n+7190EC Uncompressed Size     00000000 (0)\n+7190F0 Filename Length       001D (29)\n+7190F2 Extra Length          0009 (9)\n+7190F4 Comment Length        0000 (0)\n+7190F6 Disk Start            0000 (0)\n+7190F8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7190FA Ext File Attributes   00000000 (0)\n+7190FE Local Header Offset   006C4064 (7094372)\n+719102 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719102: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71911F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719121   Length              0005 (5)\n+719123   Flags               01 (1) 'Modification'\n+719124   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719128 CENTRAL HEADER #1962  02014B50 (33639248)\n+71912C Created Zip Spec      14 (20) '2.0'\n+71912D Created OS            00 (0) 'MS-DOS'\n+71912E Extract Zip Spec      14 (20) '2.0'\n+71912F Extract OS            00 (0) 'MS-DOS'\n+719130 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719132 Compression Method    0000 (0) 'Stored'\n+719134 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719138 CRC                   93BDDA62 (2478692962)\n+71913C Compressed Size       00002000 (8192)\n+719140 Uncompressed Size     00002000 (8192)\n+719144 Filename Length       002F (47)\n+719146 Extra Length          0009 (9)\n+719148 Comment Length        0000 (0)\n+71914A Disk Start            0000 (0)\n+71914C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71914E Ext File Attributes   00000000 (0)\n+719152 Local Header Offset   006C40A8 (7094440)\n+719156 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719156: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719185 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719187   Length              0005 (5)\n+719189   Flags               01 (1) 'Modification'\n+71918A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71918E CENTRAL HEADER #1963  02014B50 (33639248)\n+719192 Created Zip Spec      14 (20) '2.0'\n+719193 Created OS            00 (0) 'MS-DOS'\n+719194 Extract Zip Spec      14 (20) '2.0'\n+719195 Extract OS            00 (0) 'MS-DOS'\n+719196 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719198 Compression Method    0000 (0) 'Stored'\n+71919A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71919E CRC                   C563319A (3311612314)\n+7191A2 Compressed Size       00000B90 (2960)\n+7191A6 Uncompressed Size     00000B90 (2960)\n+7191AA Filename Length       0036 (54)\n+7191AC Extra Length          0009 (9)\n+7191AE Comment Length        0000 (0)\n+7191B0 Disk Start            0000 (0)\n+7191B2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7191B4 Ext File Attributes   00000000 (0)\n+7191B8 Local Header Offset   006C610E (7102734)\n+7191BC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7191BC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7191F2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7191F4   Length              0005 (5)\n+7191F6   Flags               01 (1) 'Modification'\n+7191F7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7191FB CENTRAL HEADER #1964  02014B50 (33639248)\n+7191FF Created Zip Spec      14 (20) '2.0'\n+719200 Created OS            00 (0) 'MS-DOS'\n+719201 Extract Zip Spec      14 (20) '2.0'\n+719202 Extract OS            00 (0) 'MS-DOS'\n+719203 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719205 Compression Method    0000 (0) 'Stored'\n+719207 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71920B CRC                   E459791A (3831068954)\n+71920F Compressed Size       00002B55 (11093)\n+719213 Uncompressed Size     00002B55 (11093)\n+719217 Filename Length       002D (45)\n+719219 Extra Length          0009 (9)\n+71921B Comment Length        0000 (0)\n+71921D Disk Start            0000 (0)\n+71921F Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719221 Ext File Attributes   00000000 (0)\n+719225 Local Header Offset   006C6D0B (7105803)\n+719229 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719229: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719256 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719258   Length              0005 (5)\n+71925A   Flags               01 (1) 'Modification'\n+71925B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71925F CENTRAL HEADER #1965  02014B50 (33639248)\n+719263 Created Zip Spec      14 (20) '2.0'\n+719264 Created OS            00 (0) 'MS-DOS'\n+719265 Extract Zip Spec      14 (20) '2.0'\n+719266 Extract OS            00 (0) 'MS-DOS'\n+719267 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719269 Compression Method    0000 (0) 'Stored'\n+71926B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71926F CRC                   80C30D3D (2160266557)\n+719273 Compressed Size       0000065E (1630)\n+719277 Uncompressed Size     0000065E (1630)\n+71927B Filename Length       002E (46)\n+71927D Extra Length          0009 (9)\n+71927F Comment Length        0000 (0)\n+719281 Disk Start            0000 (0)\n+719283 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719285 Ext File Attributes   00000000 (0)\n+719289 Local Header Offset   006C98C4 (7116996)\n+71928D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71928D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7192BB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7192BD   Length              0005 (5)\n+7192BF   Flags               01 (1) 'Modification'\n+7192C0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7192C4 CENTRAL HEADER #1966  02014B50 (33639248)\n+7192C8 Created Zip Spec      14 (20) '2.0'\n+7192C9 Created OS            00 (0) 'MS-DOS'\n+7192CA Extract Zip Spec      14 (20) '2.0'\n+7192CB Extract OS            00 (0) 'MS-DOS'\n+7192CC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7192CE Compression Method    0000 (0) 'Stored'\n+7192D0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7192D4 CRC                   1187A07F (294101119)\n+7192D8 Compressed Size       000010B8 (4280)\n+7192DC Uncompressed Size     000010B8 (4280)\n+7192E0 Filename Length       002F (47)\n+7192E2 Extra Length          0009 (9)\n+7192E4 Comment Length        0000 (0)\n+7192E6 Disk Start            0000 (0)\n+7192E8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7192EA Ext File Attributes   00000000 (0)\n+7192EE Local Header Offset   006C9F87 (7118727)\n+7192F2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7192F2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719321 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719323   Length              0005 (5)\n+719325   Flags               01 (1) 'Modification'\n+719326   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71932A CENTRAL HEADER #1967  02014B50 (33639248)\n+71932E Created Zip Spec      14 (20) '2.0'\n+71932F Created OS            00 (0) 'MS-DOS'\n+719330 Extract Zip Spec      14 (20) '2.0'\n+719331 Extract OS            00 (0) 'MS-DOS'\n+719332 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719334 Compression Method    0000 (0) 'Stored'\n+719336 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71933A CRC                   8E103737 (2383427383)\n+71933E Compressed Size       00002C47 (11335)\n+719342 Uncompressed Size     00002C47 (11335)\n+719346 Filename Length       002A (42)\n+719348 Extra Length          0009 (9)\n+71934A Comment Length        0000 (0)\n+71934C Disk Start            0000 (0)\n+71934E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719350 Ext File Attributes   00000000 (0)\n+719354 Local Header Offset   006CB0A5 (7123109)\n+719358 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719358: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719382 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719384   Length              0005 (5)\n+719386   Flags               01 (1) 'Modification'\n+719387   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71938B CENTRAL HEADER #1968  02014B50 (33639248)\n+71938F Created Zip Spec      14 (20) '2.0'\n+719390 Created OS            00 (0) 'MS-DOS'\n+719391 Extract Zip Spec      14 (20) '2.0'\n+719392 Extract OS            00 (0) 'MS-DOS'\n+719393 General Purpose Flag  0000 (0)\n+719395 Compression Method    0000 (0) 'Stored'\n+719397 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71939B CRC                   00000000 (0)\n+71939F Compressed Size       00000000 (0)\n+7193A3 Uncompressed Size     00000000 (0)\n+7193A7 Filename Length       001B (27)\n+7193A9 Extra Length          0009 (9)\n+7193AB Comment Length        0000 (0)\n+7193AD Disk Start            0000 (0)\n+7193AF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7193B1 Ext File Attributes   00000000 (0)\n+7193B5 Local Header Offset   006CDD4D (7134541)\n+7193B9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7193B9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7193D4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7193D6   Length              0005 (5)\n+7193D8   Flags               01 (1) 'Modification'\n+7193D9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7193DD CENTRAL HEADER #1969  02014B50 (33639248)\n+7193E1 Created Zip Spec      14 (20) '2.0'\n+7193E2 Created OS            00 (0) 'MS-DOS'\n+7193E3 Extract Zip Spec      14 (20) '2.0'\n+7193E4 Extract OS            00 (0) 'MS-DOS'\n+7193E5 General Purpose Flag  0000 (0)\n+7193E7 Compression Method    0000 (0) 'Stored'\n+7193E9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7193ED CRC                   00000000 (0)\n+7193F1 Compressed Size       00000000 (0)\n+7193F5 Uncompressed Size     00000000 (0)\n+7193F9 Filename Length       0023 (35)\n+7193FB Extra Length          0009 (9)\n+7193FD Comment Length        0000 (0)\n+7193FF Disk Start            0000 (0)\n+719401 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719403 Ext File Attributes   00000000 (0)\n+719407 Local Header Offset   006CDD8F (7134607)\n+71940B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71940B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71942E Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719430   Length              0005 (5)\n+719432   Flags               01 (1) 'Modification'\n+719433   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719437 CENTRAL HEADER #1970  02014B50 (33639248)\n+71943B Created Zip Spec      14 (20) '2.0'\n+71943C Created OS            00 (0) 'MS-DOS'\n+71943D Extract Zip Spec      14 (20) '2.0'\n+71943E Extract OS            00 (0) 'MS-DOS'\n+71943F General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719441 Compression Method    0000 (0) 'Stored'\n+719443 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719447 CRC                   ED7C06AB (3984328363)\n+71944B Compressed Size       00000AE6 (2790)\n+71944F Uncompressed Size     00000AE6 (2790)\n+719453 Filename Length       003B (59)\n+719455 Extra Length          0009 (9)\n+719457 Comment Length        0000 (0)\n+719459 Disk Start            0000 (0)\n+71945B Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71945D Ext File Attributes   00000000 (0)\n+719461 Local Header Offset   006CDDD9 (7134681)\n+719465 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719465: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7194A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7194A2   Length              0005 (5)\n+7194A4   Flags               01 (1) 'Modification'\n+7194A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7194A9 CENTRAL HEADER #1971  02014B50 (33639248)\n+7194AD Created Zip Spec      14 (20) '2.0'\n+7194AE Created OS            00 (0) 'MS-DOS'\n+7194AF Extract Zip Spec      14 (20) '2.0'\n+7194B0 Extract OS            00 (0) 'MS-DOS'\n+7194B1 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7194B3 Compression Method    0000 (0) 'Stored'\n+7194B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7194B9 CRC                   86102534 (2249205044)\n+7194BD Compressed Size       00000AAA (2730)\n+7194C1 Uncompressed Size     00000AAA (2730)\n+7194C5 Filename Length       003C (60)\n+7194C7 Extra Length          0009 (9)\n+7194C9 Comment Length        0000 (0)\n+7194CB Disk Start            0000 (0)\n+7194CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7194CF Ext File Attributes   00000000 (0)\n+7194D3 Local Header Offset   006CE931 (7137585)\n+7194D7 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7194D7: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719513 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719515   Length              0005 (5)\n+719517   Flags               01 (1) 'Modification'\n+719518   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71951C CENTRAL HEADER #1972  02014B50 (33639248)\n+719520 Created Zip Spec      14 (20) '2.0'\n+719521 Created OS            00 (0) 'MS-DOS'\n+719522 Extract Zip Spec      14 (20) '2.0'\n+719523 Extract OS            00 (0) 'MS-DOS'\n+719524 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719526 Compression Method    0000 (0) 'Stored'\n+719528 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71952C CRC                   D9C4B6B2 (3653547698)\n+719530 Compressed Size       0000073C (1852)\n+719534 Uncompressed Size     0000073C (1852)\n+719538 Filename Length       003D (61)\n+71953A Extra Length          0009 (9)\n+71953C Comment Length        0000 (0)\n+71953E Disk Start            0000 (0)\n+719540 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719542 Ext File Attributes   00000000 (0)\n+719546 Local Header Offset   006CF44E (7140430)\n+71954A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71954A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719587 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719589   Length              0005 (5)\n+71958B   Flags               01 (1) 'Modification'\n+71958C   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719590 CENTRAL HEADER #1973  02014B50 (33639248)\n+719594 Created Zip Spec      14 (20) '2.0'\n+719595 Created OS            00 (0) 'MS-DOS'\n+719596 Extract Zip Spec      14 (20) '2.0'\n+719597 Extract OS            00 (0) 'MS-DOS'\n+719598 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71959A Compression Method    0000 (0) 'Stored'\n+71959C Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7195A0 CRC                   5DF61F16 (1576410902)\n+7195A4 Compressed Size       00000733 (1843)\n+7195A8 Uncompressed Size     00000733 (1843)\n+7195AC Filename Length       0041 (65)\n+7195AE Extra Length          0009 (9)\n+7195B0 Comment Length        0000 (0)\n+7195B2 Disk Start            0000 (0)\n+7195B4 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7195B6 Ext File Attributes   00000000 (0)\n+7195BA Local Header Offset   006CFBFE (7142398)\n+7195BE Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7195BE: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7195FF Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719601   Length              0005 (5)\n+719603   Flags               01 (1) 'Modification'\n+719604   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719608 CENTRAL HEADER #1974  02014B50 (33639248)\n+71960C Created Zip Spec      14 (20) '2.0'\n+71960D Created OS            00 (0) 'MS-DOS'\n+71960E Extract Zip Spec      14 (20) '2.0'\n+71960F Extract OS            00 (0) 'MS-DOS'\n+719610 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719612 Compression Method    0000 (0) 'Stored'\n+719614 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719618 CRC                   B4FAC75F (3036333919)\n+71961C Compressed Size       00001227 (4647)\n+719620 Uncompressed Size     00001227 (4647)\n+719624 Filename Length       003E (62)\n+719626 Extra Length          0009 (9)\n+719628 Comment Length        0000 (0)\n+71962A Disk Start            0000 (0)\n+71962C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71962E Ext File Attributes   00000000 (0)\n+719632 Local Header Offset   006D03A9 (7144361)\n+719636 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719636: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719674 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719676   Length              0005 (5)\n+719678   Flags               01 (1) 'Modification'\n+719679   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71967D CENTRAL HEADER #1975  02014B50 (33639248)\n+719681 Created Zip Spec      14 (20) '2.0'\n+719682 Created OS            00 (0) 'MS-DOS'\n+719683 Extract Zip Spec      14 (20) '2.0'\n+719684 Extract OS            00 (0) 'MS-DOS'\n+719685 General Purpose Flag  0000 (0)\n+719687 Compression Method    0000 (0) 'Stored'\n+719689 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71968D CRC                   00000000 (0)\n+719691 Compressed Size       00000000 (0)\n+719695 Uncompressed Size     00000000 (0)\n+719699 Filename Length       002E (46)\n+71969B Extra Length          0009 (9)\n+71969D Comment Length        0000 (0)\n+71969F Disk Start            0000 (0)\n+7196A1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7196A3 Ext File Attributes   00000000 (0)\n+7196A7 Local Header Offset   006D1645 (7149125)\n+7196AB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7196AB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7196D9 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7196DB   Length              0005 (5)\n+7196DD   Flags               01 (1) 'Modification'\n+7196DE   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7196E2 CENTRAL HEADER #1976  02014B50 (33639248)\n+7196E6 Created Zip Spec      14 (20) '2.0'\n+7196E7 Created OS            00 (0) 'MS-DOS'\n+7196E8 Extract Zip Spec      14 (20) '2.0'\n+7196E9 Extract OS            00 (0) 'MS-DOS'\n+7196EA General Purpose Flag  0000 (0)\n+7196EC Compression Method    0000 (0) 'Stored'\n+7196EE Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7196F2 CRC                   00000000 (0)\n+7196F6 Compressed Size       00000000 (0)\n+7196FA Uncompressed Size     00000000 (0)\n+7196FE Filename Length       0034 (52)\n+719700 Extra Length          0009 (9)\n+719702 Comment Length        0000 (0)\n+719704 Disk Start            0000 (0)\n+719706 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719708 Ext File Attributes   00000000 (0)\n+71970C Local Header Offset   006D169A (7149210)\n+719710 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719710: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719744 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719746   Length              0005 (5)\n+719748   Flags               01 (1) 'Modification'\n+719749   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71974D CENTRAL HEADER #1977  02014B50 (33639248)\n+719751 Created Zip Spec      14 (20) '2.0'\n+719752 Created OS            00 (0) 'MS-DOS'\n+719753 Extract Zip Spec      14 (20) '2.0'\n+719754 Extract OS            00 (0) 'MS-DOS'\n+719755 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719757 Compression Method    0000 (0) 'Stored'\n+719759 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71975D CRC                   B981B5EA (3112285674)\n+719761 Compressed Size       000006AF (1711)\n+719765 Uncompressed Size     000006AF (1711)\n+719769 Filename Length       0047 (71)\n+71976B Extra Length          0009 (9)\n+71976D Comment Length        0000 (0)\n+71976F Disk Start            0000 (0)\n+719771 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719773 Ext File Attributes   00000000 (0)\n+719777 Local Header Offset   006D16F5 (7149301)\n+71977B Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71977B: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7197C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7197C4   Length              0005 (5)\n+7197C6   Flags               01 (1) 'Modification'\n+7197C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7197CB CENTRAL HEADER #1978  02014B50 (33639248)\n+7197CF Created Zip Spec      14 (20) '2.0'\n+7197D0 Created OS            00 (0) 'MS-DOS'\n+7197D1 Extract Zip Spec      14 (20) '2.0'\n+7197D2 Extract OS            00 (0) 'MS-DOS'\n+7197D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7197D5 Compression Method    0000 (0) 'Stored'\n+7197D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7197DB CRC                   D04429D3 (3494128083)\n+7197DF Compressed Size       000006AF (1711)\n+7197E3 Uncompressed Size     000006AF (1711)\n+7197E7 Filename Length       0046 (70)\n+7197E9 Extra Length          0009 (9)\n+7197EB Comment Length        0000 (0)\n+7197ED Disk Start            0000 (0)\n+7197EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7197F1 Ext File Attributes   00000000 (0)\n+7197F5 Local Header Offset   006D1E22 (7151138)\n+7197F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7197F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71983F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719841   Length              0005 (5)\n+719843   Flags               01 (1) 'Modification'\n+719844   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719848 CENTRAL HEADER #1979  02014B50 (33639248)\n+71984C Created Zip Spec      14 (20) '2.0'\n+71984D Created OS            00 (0) 'MS-DOS'\n+71984E Extract Zip Spec      14 (20) '2.0'\n+71984F Extract OS            00 (0) 'MS-DOS'\n+719850 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719852 Compression Method    0000 (0) 'Stored'\n+719854 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719858 CRC                   473D2A13 (1195190803)\n+71985C Compressed Size       000007E1 (2017)\n+719860 Uncompressed Size     000007E1 (2017)\n+719864 Filename Length       004C (76)\n+719866 Extra Length          0009 (9)\n+719868 Comment Length        0000 (0)\n+71986A Disk Start            0000 (0)\n+71986C Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71986E Ext File Attributes   00000000 (0)\n+719872 Local Header Offset   006D254E (7152974)\n+719876 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719876: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7198C2 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7198C4   Length              0005 (5)\n+7198C6   Flags               01 (1) 'Modification'\n+7198C7   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7198CB CENTRAL HEADER #1980  02014B50 (33639248)\n+7198CF Created Zip Spec      14 (20) '2.0'\n+7198D0 Created OS            00 (0) 'MS-DOS'\n+7198D1 Extract Zip Spec      14 (20) '2.0'\n+7198D2 Extract OS            00 (0) 'MS-DOS'\n+7198D3 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7198D5 Compression Method    0000 (0) 'Stored'\n+7198D7 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7198DB CRC                   5EDE06FE (1591609086)\n+7198DF Compressed Size       000006F6 (1782)\n+7198E3 Uncompressed Size     000006F6 (1782)\n+7198E7 Filename Length       0048 (72)\n+7198E9 Extra Length          0009 (9)\n+7198EB Comment Length        0000 (0)\n+7198ED Disk Start            0000 (0)\n+7198EF Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7198F1 Ext File Attributes   00000000 (0)\n+7198F5 Local Header Offset   006D2DB2 (7155122)\n+7198F9 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7198F9: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719941 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719943   Length              0005 (5)\n+719945   Flags               01 (1) 'Modification'\n+719946   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71994A CENTRAL HEADER #1981  02014B50 (33639248)\n+71994E Created Zip Spec      14 (20) '2.0'\n+71994F Created OS            00 (0) 'MS-DOS'\n+719950 Extract Zip Spec      14 (20) '2.0'\n+719951 Extract OS            00 (0) 'MS-DOS'\n+719952 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719954 Compression Method    0000 (0) 'Stored'\n+719956 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71995A CRC                   C24A81AD (3259662765)\n+71995E Compressed Size       0000070D (1805)\n+719962 Uncompressed Size     0000070D (1805)\n+719966 Filename Length       004C (76)\n+719968 Extra Length          0009 (9)\n+71996A Comment Length        0000 (0)\n+71996C Disk Start            0000 (0)\n+71996E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719970 Ext File Attributes   00000000 (0)\n+719974 Local Header Offset   006D3527 (7157031)\n+719978 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719978: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+7199C4 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+7199C6   Length              0005 (5)\n+7199C8   Flags               01 (1) 'Modification'\n+7199C9   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+7199CD CENTRAL HEADER #1982  02014B50 (33639248)\n+7199D1 Created Zip Spec      14 (20) '2.0'\n+7199D2 Created OS            00 (0) 'MS-DOS'\n+7199D3 Extract Zip Spec      14 (20) '2.0'\n+7199D4 Extract OS            00 (0) 'MS-DOS'\n+7199D5 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+7199D7 Compression Method    0000 (0) 'Stored'\n+7199D9 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+7199DD CRC                   5F5E8EB8 (1600032440)\n+7199E1 Compressed Size       00000748 (1864)\n+7199E5 Uncompressed Size     00000748 (1864)\n+7199E9 Filename Length       0048 (72)\n+7199EB Extra Length          0009 (9)\n+7199ED Comment Length        0000 (0)\n+7199EF Disk Start            0000 (0)\n+7199F1 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+7199F3 Ext File Attributes   00000000 (0)\n+7199F7 Local Header Offset   006D3CB7 (7158967)\n+7199FB Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x7199FB: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719A43 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719A45   Length              0005 (5)\n+719A47   Flags               01 (1) 'Modification'\n+719A48   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719A4C CENTRAL HEADER #1983  02014B50 (33639248)\n+719A50 Created Zip Spec      14 (20) '2.0'\n+719A51 Created OS            00 (0) 'MS-DOS'\n+719A52 Extract Zip Spec      14 (20) '2.0'\n+719A53 Extract OS            00 (0) 'MS-DOS'\n+719A54 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719A56 Compression Method    0000 (0) 'Stored'\n+719A58 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719A5C CRC                   058FA161 (93299041)\n+719A60 Compressed Size       000006A3 (1699)\n+719A64 Uncompressed Size     000006A3 (1699)\n+719A68 Filename Length       0047 (71)\n+719A6A Extra Length          0009 (9)\n+719A6C Comment Length        0000 (0)\n+719A6E Disk Start            0000 (0)\n+719A70 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719A72 Ext File Attributes   00000000 (0)\n+719A76 Local Header Offset   006D447E (7160958)\n+719A7A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719A7A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719AC1 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719AC3   Length              0005 (5)\n+719AC5   Flags               01 (1) 'Modification'\n+719AC6   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719ACA CENTRAL HEADER #1984  02014B50 (33639248)\n+719ACE Created Zip Spec      14 (20) '2.0'\n+719ACF Created OS            00 (0) 'MS-DOS'\n+719AD0 Extract Zip Spec      14 (20) '2.0'\n+719AD1 Extract OS            00 (0) 'MS-DOS'\n+719AD2 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719AD4 Compression Method    0000 (0) 'Stored'\n+719AD6 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719ADA CRC                   E27B7C96 (3799743638)\n+719ADE Compressed Size       00000740 (1856)\n+719AE2 Uncompressed Size     00000740 (1856)\n+719AE6 Filename Length       004D (77)\n+719AE8 Extra Length          0009 (9)\n+719AEA Comment Length        0000 (0)\n+719AEC Disk Start            0000 (0)\n+719AEE Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719AF0 Ext File Attributes   00000000 (0)\n+719AF4 Local Header Offset   006D4B9F (7162783)\n+719AF8 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719AF8: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719B45 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719B47   Length              0005 (5)\n+719B49   Flags               01 (1) 'Modification'\n+719B4A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719B4E CENTRAL HEADER #1985  02014B50 (33639248)\n+719B52 Created Zip Spec      14 (20) '2.0'\n+719B53 Created OS            00 (0) 'MS-DOS'\n+719B54 Extract Zip Spec      14 (20) '2.0'\n+719B55 Extract OS            00 (0) 'MS-DOS'\n+719B56 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719B58 Compression Method    0000 (0) 'Stored'\n+719B5A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719B5E CRC                   9F3D415D (2671591773)\n+719B62 Compressed Size       0000071B (1819)\n+719B66 Uncompressed Size     0000071B (1819)\n+719B6A Filename Length       0049 (73)\n+719B6C Extra Length          0009 (9)\n+719B6E Comment Length        0000 (0)\n+719B70 Disk Start            0000 (0)\n+719B72 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719B74 Ext File Attributes   00000000 (0)\n+719B78 Local Header Offset   006D5363 (7164771)\n+719B7C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719B7C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719BC5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719BC7   Length              0005 (5)\n+719BC9   Flags               01 (1) 'Modification'\n+719BCA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719BCE CENTRAL HEADER #1986  02014B50 (33639248)\n+719BD2 Created Zip Spec      14 (20) '2.0'\n+719BD3 Created OS            00 (0) 'MS-DOS'\n+719BD4 Extract Zip Spec      14 (20) '2.0'\n+719BD5 Extract OS            00 (0) 'MS-DOS'\n+719BD6 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719BD8 Compression Method    0000 (0) 'Stored'\n+719BDA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719BDE CRC                   51BCB93C (1371322684)\n+719BE2 Compressed Size       000006D9 (1753)\n+719BE6 Uncompressed Size     000006D9 (1753)\n+719BEA Filename Length       0045 (69)\n+719BEC Extra Length          0009 (9)\n+719BEE Comment Length        0000 (0)\n+719BF0 Disk Start            0000 (0)\n+719BF2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719BF4 Ext File Attributes   00000000 (0)\n+719BF8 Local Header Offset   006D5AFE (7166718)\n+719BFC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719BFC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719C41 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719C43   Length              0005 (5)\n+719C45   Flags               01 (1) 'Modification'\n+719C46   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719C4A CENTRAL HEADER #1987  02014B50 (33639248)\n+719C4E Created Zip Spec      14 (20) '2.0'\n+719C4F Created OS            00 (0) 'MS-DOS'\n+719C50 Extract Zip Spec      14 (20) '2.0'\n+719C51 Extract OS            00 (0) 'MS-DOS'\n+719C52 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719C54 Compression Method    0000 (0) 'Stored'\n+719C56 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719C5A CRC                   A6FC3818 (2801547288)\n+719C5E Compressed Size       00000627 (1575)\n+719C62 Uncompressed Size     00000627 (1575)\n+719C66 Filename Length       0043 (67)\n+719C68 Extra Length          0009 (9)\n+719C6A Comment Length        0000 (0)\n+719C6C Disk Start            0000 (0)\n+719C6E Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719C70 Ext File Attributes   00000000 (0)\n+719C74 Local Header Offset   006D6253 (7168595)\n+719C78 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719C78: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719CBB Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719CBD   Length              0005 (5)\n+719CBF   Flags               01 (1) 'Modification'\n+719CC0   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719CC4 CENTRAL HEADER #1988  02014B50 (33639248)\n+719CC8 Created Zip Spec      14 (20) '2.0'\n+719CC9 Created OS            00 (0) 'MS-DOS'\n+719CCA Extract Zip Spec      14 (20) '2.0'\n+719CCB Extract OS            00 (0) 'MS-DOS'\n+719CCC General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719CCE Compression Method    0000 (0) 'Stored'\n+719CD0 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719CD4 CRC                   2D3E4959 (759056729)\n+719CD8 Compressed Size       000006AB (1707)\n+719CDC Uncompressed Size     000006AB (1707)\n+719CE0 Filename Length       0048 (72)\n+719CE2 Extra Length          0009 (9)\n+719CE4 Comment Length        0000 (0)\n+719CE6 Disk Start            0000 (0)\n+719CE8 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719CEA Ext File Attributes   00000000 (0)\n+719CEE Local Header Offset   006D68F4 (7170292)\n+719CF2 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719CF2: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719D3A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719D3C   Length              0005 (5)\n+719D3E   Flags               01 (1) 'Modification'\n+719D3F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719D43 CENTRAL HEADER #1989  02014B50 (33639248)\n+719D47 Created Zip Spec      14 (20) '2.0'\n+719D48 Created OS            00 (0) 'MS-DOS'\n+719D49 Extract Zip Spec      14 (20) '2.0'\n+719D4A Extract OS            00 (0) 'MS-DOS'\n+719D4B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719D4D Compression Method    0000 (0) 'Stored'\n+719D4F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719D53 CRC                   34807571 (880833905)\n+719D57 Compressed Size       00000649 (1609)\n+719D5B Uncompressed Size     00000649 (1609)\n+719D5F Filename Length       0045 (69)\n+719D61 Extra Length          0009 (9)\n+719D63 Comment Length        0000 (0)\n+719D65 Disk Start            0000 (0)\n+719D67 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719D69 Ext File Attributes   00000000 (0)\n+719D6D Local Header Offset   006D701E (7172126)\n+719D71 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719D71: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719DB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719DB8   Length              0005 (5)\n+719DBA   Flags               01 (1) 'Modification'\n+719DBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719DBF CENTRAL HEADER #1990  02014B50 (33639248)\n+719DC3 Created Zip Spec      14 (20) '2.0'\n+719DC4 Created OS            00 (0) 'MS-DOS'\n+719DC5 Extract Zip Spec      14 (20) '2.0'\n+719DC6 Extract OS            00 (0) 'MS-DOS'\n+719DC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719DC9 Compression Method    0000 (0) 'Stored'\n+719DCB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719DCF CRC                   823F34AF (2185180335)\n+719DD3 Compressed Size       000005E7 (1511)\n+719DD7 Uncompressed Size     000005E7 (1511)\n+719DDB Filename Length       0049 (73)\n+719DDD Extra Length          0009 (9)\n+719DDF Comment Length        0000 (0)\n+719DE1 Disk Start            0000 (0)\n+719DE3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719DE5 Ext File Attributes   00000000 (0)\n+719DE9 Local Header Offset   006D76E3 (7173859)\n+719DED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719DED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719E36 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719E38   Length              0005 (5)\n+719E3A   Flags               01 (1) 'Modification'\n+719E3B   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719E3F CENTRAL HEADER #1991  02014B50 (33639248)\n+719E43 Created Zip Spec      14 (20) '2.0'\n+719E44 Created OS            00 (0) 'MS-DOS'\n+719E45 Extract Zip Spec      14 (20) '2.0'\n+719E46 Extract OS            00 (0) 'MS-DOS'\n+719E47 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719E49 Compression Method    0000 (0) 'Stored'\n+719E4B Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719E4F CRC                   F89085BF (4170220991)\n+719E53 Compressed Size       0000067C (1660)\n+719E57 Uncompressed Size     0000067C (1660)\n+719E5B Filename Length       0049 (73)\n+719E5D Extra Length          0009 (9)\n+719E5F Comment Length        0000 (0)\n+719E61 Disk Start            0000 (0)\n+719E63 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719E65 Ext File Attributes   00000000 (0)\n+719E69 Local Header Offset   006D7D4A (7175498)\n+719E6D Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719E6D: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719EB6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719EB8   Length              0005 (5)\n+719EBA   Flags               01 (1) 'Modification'\n+719EBB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719EBF CENTRAL HEADER #1992  02014B50 (33639248)\n+719EC3 Created Zip Spec      14 (20) '2.0'\n+719EC4 Created OS            00 (0) 'MS-DOS'\n+719EC5 Extract Zip Spec      14 (20) '2.0'\n+719EC6 Extract OS            00 (0) 'MS-DOS'\n+719EC7 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719EC9 Compression Method    0000 (0) 'Stored'\n+719ECB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719ECF CRC                   A0A0B3FD (2694886397)\n+719ED3 Compressed Size       00000817 (2071)\n+719ED7 Uncompressed Size     00000817 (2071)\n+719EDB Filename Length       004C (76)\n+719EDD Extra Length          0009 (9)\n+719EDF Comment Length        0000 (0)\n+719EE1 Disk Start            0000 (0)\n+719EE3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719EE5 Ext File Attributes   00000000 (0)\n+719EE9 Local Header Offset   006D8446 (7177286)\n+719EED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719EED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719F39 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719F3B   Length              0005 (5)\n+719F3D   Flags               01 (1) 'Modification'\n+719F3E   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719F42 CENTRAL HEADER #1993  02014B50 (33639248)\n+719F46 Created Zip Spec      14 (20) '2.0'\n+719F47 Created OS            00 (0) 'MS-DOS'\n+719F48 Extract Zip Spec      14 (20) '2.0'\n+719F49 Extract OS            00 (0) 'MS-DOS'\n+719F4A General Purpose Flag  0000 (0)\n+719F4C Compression Method    0000 (0) 'Stored'\n+719F4E Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719F52 CRC                   00000000 (0)\n+719F56 Compressed Size       00000000 (0)\n+719F5A Uncompressed Size     00000000 (0)\n+719F5E Filename Length       001C (28)\n+719F60 Extra Length          0009 (9)\n+719F62 Comment Length        0000 (0)\n+719F64 Disk Start            0000 (0)\n+719F66 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719F68 Ext File Attributes   00000000 (0)\n+719F6C Local Header Offset   006D8CE0 (7179488)\n+719F70 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719F70: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719F8C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719F8E   Length              0005 (5)\n+719F90   Flags               01 (1) 'Modification'\n+719F91   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719F95 CENTRAL HEADER #1994  02014B50 (33639248)\n+719F99 Created Zip Spec      14 (20) '2.0'\n+719F9A Created OS            00 (0) 'MS-DOS'\n+719F9B Extract Zip Spec      14 (20) '2.0'\n+719F9C Extract OS            00 (0) 'MS-DOS'\n+719F9D General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+719F9F Compression Method    0000 (0) 'Stored'\n+719FA1 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+719FA5 CRC                   9FA19E67 (2678169191)\n+719FA9 Compressed Size       00000668 (1640)\n+719FAD Uncompressed Size     00000668 (1640)\n+719FB1 Filename Length       0030 (48)\n+719FB3 Extra Length          0009 (9)\n+719FB5 Comment Length        0000 (0)\n+719FB7 Disk Start            0000 (0)\n+719FB9 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+719FBB Ext File Attributes   00000000 (0)\n+719FBF Local Header Offset   006D8D23 (7179555)\n+719FC3 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x719FC3: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+719FF3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+719FF5   Length              0005 (5)\n+719FF7   Flags               01 (1) 'Modification'\n+719FF8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+719FFC CENTRAL HEADER #1995  02014B50 (33639248)\n+71A000 Created Zip Spec      14 (20) '2.0'\n+71A001 Created OS            00 (0) 'MS-DOS'\n+71A002 Extract Zip Spec      14 (20) '2.0'\n+71A003 Extract OS            00 (0) 'MS-DOS'\n+71A004 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A006 Compression Method    0000 (0) 'Stored'\n+71A008 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A00C CRC                   00116B33 (1141555)\n+71A010 Compressed Size       000005E3 (1507)\n+71A014 Uncompressed Size     000005E3 (1507)\n+71A018 Filename Length       002B (43)\n+71A01A Extra Length          0009 (9)\n+71A01C Comment Length        0000 (0)\n+71A01E Disk Start            0000 (0)\n+71A020 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A022 Ext File Attributes   00000000 (0)\n+71A026 Local Header Offset   006D93F2 (7181298)\n+71A02A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A02A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A055 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A057   Length              0005 (5)\n+71A059   Flags               01 (1) 'Modification'\n+71A05A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A05E CENTRAL HEADER #1996  02014B50 (33639248)\n+71A062 Created Zip Spec      14 (20) '2.0'\n+71A063 Created OS            00 (0) 'MS-DOS'\n+71A064 Extract Zip Spec      14 (20) '2.0'\n+71A065 Extract OS            00 (0) 'MS-DOS'\n+71A066 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A068 Compression Method    0000 (0) 'Stored'\n+71A06A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A06E CRC                   767F730D (1988064013)\n+71A072 Compressed Size       00000479 (1145)\n+71A076 Uncompressed Size     00000479 (1145)\n+71A07A Filename Length       002A (42)\n+71A07C Extra Length          0009 (9)\n+71A07E Comment Length        0000 (0)\n+71A080 Disk Start            0000 (0)\n+71A082 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A084 Ext File Attributes   00000000 (0)\n+71A088 Local Header Offset   006D9A37 (7182903)\n+71A08C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A08C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A0B6 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A0B8   Length              0005 (5)\n+71A0BA   Flags               01 (1) 'Modification'\n+71A0BB   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A0BF CENTRAL HEADER #1997  02014B50 (33639248)\n+71A0C3 Created Zip Spec      14 (20) '2.0'\n+71A0C4 Created OS            00 (0) 'MS-DOS'\n+71A0C5 Extract Zip Spec      14 (20) '2.0'\n+71A0C6 Extract OS            00 (0) 'MS-DOS'\n+71A0C7 General Purpose Flag  0000 (0)\n+71A0C9 Compression Method    0000 (0) 'Stored'\n+71A0CB Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A0CF CRC                   00000000 (0)\n+71A0D3 Compressed Size       00000000 (0)\n+71A0D7 Uncompressed Size     00000000 (0)\n+71A0DB Filename Length       0023 (35)\n+71A0DD Extra Length          0009 (9)\n+71A0DF Comment Length        0000 (0)\n+71A0E1 Disk Start            0000 (0)\n+71A0E3 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A0E5 Ext File Attributes   00000000 (0)\n+71A0E9 Local Header Offset   006D9F11 (7184145)\n+71A0ED Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A0ED: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A110 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A112   Length              0005 (5)\n+71A114   Flags               01 (1) 'Modification'\n+71A115   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A119 CENTRAL HEADER #1998  02014B50 (33639248)\n+71A11D Created Zip Spec      14 (20) '2.0'\n+71A11E Created OS            00 (0) 'MS-DOS'\n+71A11F Extract Zip Spec      14 (20) '2.0'\n+71A120 Extract OS            00 (0) 'MS-DOS'\n+71A121 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A123 Compression Method    0000 (0) 'Stored'\n+71A125 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A129 CRC                   C93175C4 (3375461828)\n+71A12D Compressed Size       000012EA (4842)\n+71A131 Uncompressed Size     000012EA (4842)\n+71A135 Filename Length       0038 (56)\n+71A137 Extra Length          0009 (9)\n+71A139 Comment Length        0000 (0)\n+71A13B Disk Start            0000 (0)\n+71A13D Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A13F Ext File Attributes   00000000 (0)\n+71A143 Local Header Offset   006D9F5B (7184219)\n+71A147 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A147: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A17F Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A181   Length              0005 (5)\n+71A183   Flags               01 (1) 'Modification'\n+71A184   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A188 CENTRAL HEADER #1999  02014B50 (33639248)\n+71A18C Created Zip Spec      14 (20) '2.0'\n+71A18D Created OS            00 (0) 'MS-DOS'\n+71A18E Extract Zip Spec      14 (20) '2.0'\n+71A18F Extract OS            00 (0) 'MS-DOS'\n+71A190 General Purpose Flag  0000 (0)\n+71A192 Compression Method    0000 (0) 'Stored'\n+71A194 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A198 CRC                   00000000 (0)\n+71A19C Compressed Size       00000000 (0)\n+71A1A0 Uncompressed Size     00000000 (0)\n+71A1A4 Filename Length       0024 (36)\n+71A1A6 Extra Length          0009 (9)\n+71A1A8 Comment Length        0000 (0)\n+71A1AA Disk Start            0000 (0)\n+71A1AC Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A1AE Ext File Attributes   00000000 (0)\n+71A1B2 Local Header Offset   006DB2B4 (7189172)\n+71A1B6 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A1B6: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A1DA Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A1DC   Length              0005 (5)\n+71A1DE   Flags               01 (1) 'Modification'\n+71A1DF   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A1E3 CENTRAL HEADER #2000  02014B50 (33639248)\n+71A1E7 Created Zip Spec      14 (20) '2.0'\n+71A1E8 Created OS            00 (0) 'MS-DOS'\n+71A1E9 Extract Zip Spec      14 (20) '2.0'\n+71A1EA Extract OS            00 (0) 'MS-DOS'\n+71A1EB General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A1ED Compression Method    0000 (0) 'Stored'\n+71A1EF Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A1F3 CRC                   1D7B340C (494613516)\n+71A1F7 Compressed Size       000007D6 (2006)\n+71A1FB Uncompressed Size     000007D6 (2006)\n+71A1FF Filename Length       003B (59)\n+71A201 Extra Length          0009 (9)\n+71A203 Comment Length        0000 (0)\n+71A205 Disk Start            0000 (0)\n+71A207 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A209 Ext File Attributes   00000000 (0)\n+71A20D Local Header Offset   006DB2FF (7189247)\n+71A211 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A211: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A24C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A24E   Length              0005 (5)\n+71A250   Flags               01 (1) 'Modification'\n+71A251   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A255 CENTRAL HEADER #2001  02014B50 (33639248)\n+71A259 Created Zip Spec      14 (20) '2.0'\n+71A25A Created OS            00 (0) 'MS-DOS'\n+71A25B Extract Zip Spec      14 (20) '2.0'\n+71A25C Extract OS            00 (0) 'MS-DOS'\n+71A25D General Purpose Flag  0000 (0)\n+71A25F Compression Method    0000 (0) 'Stored'\n+71A261 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A265 CRC                   00000000 (0)\n+71A269 Compressed Size       00000000 (0)\n+71A26D Uncompressed Size     00000000 (0)\n+71A271 Filename Length       0030 (48)\n+71A273 Extra Length          0009 (9)\n+71A275 Comment Length        0000 (0)\n+71A277 Disk Start            0000 (0)\n+71A279 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A27B Ext File Attributes   00000000 (0)\n+71A27F Local Header Offset   006DBB47 (7191367)\n+71A283 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A283: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A2B3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A2B5   Length              0005 (5)\n+71A2B7   Flags               01 (1) 'Modification'\n+71A2B8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A2BC CENTRAL HEADER #2002  02014B50 (33639248)\n+71A2C0 Created Zip Spec      14 (20) '2.0'\n+71A2C1 Created OS            00 (0) 'MS-DOS'\n+71A2C2 Extract Zip Spec      14 (20) '2.0'\n+71A2C3 Extract OS            00 (0) 'MS-DOS'\n+71A2C4 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A2C6 Compression Method    0000 (0) 'Stored'\n+71A2C8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A2CC CRC                   5A6ECC92 (1517210770)\n+71A2D0 Compressed Size       000005C3 (1475)\n+71A2D4 Uncompressed Size     000005C3 (1475)\n+71A2D8 Filename Length       0040 (64)\n+71A2DA Extra Length          0009 (9)\n+71A2DC Comment Length        0000 (0)\n+71A2DE Disk Start            0000 (0)\n+71A2E0 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A2E2 Ext File Attributes   00000000 (0)\n+71A2E6 Local Header Offset   006DBB9E (7191454)\n+71A2EA Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A2EA: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A32A Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A32C   Length              0005 (5)\n+71A32E   Flags               01 (1) 'Modification'\n+71A32F   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A333 CENTRAL HEADER #2003  02014B50 (33639248)\n+71A337 Created Zip Spec      14 (20) '2.0'\n+71A338 Created OS            00 (0) 'MS-DOS'\n+71A339 Extract Zip Spec      14 (20) '2.0'\n+71A33A Extract OS            00 (0) 'MS-DOS'\n+71A33B General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A33D Compression Method    0000 (0) 'Stored'\n+71A33F Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A343 CRC                   B191ADCB (2979114443)\n+71A347 Compressed Size       00003D3F (15679)\n+71A34B Uncompressed Size     00003D3F (15679)\n+71A34F Filename Length       003F (63)\n+71A351 Extra Length          0009 (9)\n+71A353 Comment Length        0000 (0)\n+71A355 Disk Start            0000 (0)\n+71A357 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A359 Ext File Attributes   00000000 (0)\n+71A35D Local Header Offset   006DC1D8 (7193048)\n+71A361 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A361: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A3A0 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A3A2   Length              0005 (5)\n+71A3A4   Flags               01 (1) 'Modification'\n+71A3A5   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A3A9 CENTRAL HEADER #2004  02014B50 (33639248)\n+71A3AD Created Zip Spec      14 (20) '2.0'\n+71A3AE Created OS            00 (0) 'MS-DOS'\n+71A3AF Extract Zip Spec      14 (20) '2.0'\n+71A3B0 Extract OS            00 (0) 'MS-DOS'\n+71A3B1 General Purpose Flag  0000 (0)\n+71A3B3 Compression Method    0000 (0) 'Stored'\n+71A3B5 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A3B9 CRC                   00000000 (0)\n+71A3BD Compressed Size       00000000 (0)\n+71A3C1 Uncompressed Size     00000000 (0)\n+71A3C5 Filename Length       0015 (21)\n+71A3C7 Extra Length          0009 (9)\n+71A3C9 Comment Length        0000 (0)\n+71A3CB Disk Start            0000 (0)\n+71A3CD Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A3CF Ext File Attributes   00000000 (0)\n+71A3D3 Local Header Offset   006DFF8D (7208845)\n+71A3D7 Filename              'XXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A3D7: Filename 'XXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A3EC Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A3EE   Length              0005 (5)\n+71A3F0   Flags               01 (1) 'Modification'\n+71A3F1   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A3F5 CENTRAL HEADER #2005  02014B50 (33639248)\n+71A3F9 Created Zip Spec      14 (20) '2.0'\n+71A3FA Created OS            00 (0) 'MS-DOS'\n+71A3FB Extract Zip Spec      14 (20) '2.0'\n+71A3FC Extract OS            00 (0) 'MS-DOS'\n+71A3FD General Purpose Flag  0000 (0)\n+71A3FF Compression Method    0000 (0) 'Stored'\n+71A401 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A405 CRC                   00000000 (0)\n+71A409 Compressed Size       00000000 (0)\n+71A40D Uncompressed Size     00000000 (0)\n+71A411 Filename Length       0019 (25)\n+71A413 Extra Length          0009 (9)\n+71A415 Comment Length        0000 (0)\n+71A417 Disk Start            0000 (0)\n+71A419 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A41B Ext File Attributes   00000000 (0)\n+71A41F Local Header Offset   006DFFC9 (7208905)\n+71A423 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A423: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A43C Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A43E   Length              0005 (5)\n+71A440   Flags               01 (1) 'Modification'\n+71A441   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A445 CENTRAL HEADER #2006  02014B50 (33639248)\n+71A449 Created Zip Spec      14 (20) '2.0'\n+71A44A Created OS            00 (0) 'MS-DOS'\n+71A44B Extract Zip Spec      14 (20) '2.0'\n+71A44C Extract OS            00 (0) 'MS-DOS'\n+71A44D General Purpose Flag  0000 (0)\n+71A44F Compression Method    0000 (0) 'Stored'\n+71A451 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A455 CRC                   00000000 (0)\n+71A459 Compressed Size       00000000 (0)\n+71A45D Uncompressed Size     00000000 (0)\n+71A461 Filename Length       0022 (34)\n+71A463 Extra Length          0009 (9)\n+71A465 Comment Length        0000 (0)\n+71A467 Disk Start            0000 (0)\n+71A469 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A46B Ext File Attributes   00000000 (0)\n+71A46F Local Header Offset   006E0009 (7208969)\n+71A473 Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A473: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A495 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A497   Length              0005 (5)\n+71A499   Flags               01 (1) 'Modification'\n+71A49A   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A49E CENTRAL HEADER #2007  02014B50 (33639248)\n+71A4A2 Created Zip Spec      14 (20) '2.0'\n+71A4A3 Created OS            00 (0) 'MS-DOS'\n+71A4A4 Extract Zip Spec      14 (20) '2.0'\n+71A4A5 Extract OS            00 (0) 'MS-DOS'\n+71A4A6 General Purpose Flag  0000 (0)\n+71A4A8 Compression Method    0000 (0) 'Stored'\n+71A4AA Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A4AE CRC                   00000000 (0)\n+71A4B2 Compressed Size       00000000 (0)\n+71A4B6 Uncompressed Size     00000000 (0)\n+71A4BA Filename Length       0029 (41)\n+71A4BC Extra Length          0009 (9)\n+71A4BE Comment Length        0000 (0)\n+71A4C0 Disk Start            0000 (0)\n+71A4C2 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A4C4 Ext File Attributes   00000000 (0)\n+71A4C8 Local Header Offset   006E0052 (7209042)\n+71A4CC Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A4CC: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A4F5 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A4F7   Length              0005 (5)\n+71A4F9   Flags               01 (1) 'Modification'\n+71A4FA   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A4FE CENTRAL HEADER #2008  02014B50 (33639248)\n+71A502 Created Zip Spec      14 (20) '2.0'\n+71A503 Created OS            00 (0) 'MS-DOS'\n+71A504 Extract Zip Spec      14 (20) '2.0'\n+71A505 Extract OS            00 (0) 'MS-DOS'\n+71A506 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A508 Compression Method    0000 (0) 'Stored'\n+71A50A Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A50E CRC                   E5707DAD (3849354669)\n+71A512 Compressed Size       00001EB3 (7859)\n+71A516 Uncompressed Size     00001EB3 (7859)\n+71A51A Filename Length       003C (60)\n+71A51C Extra Length          0009 (9)\n+71A51E Comment Length        0000 (0)\n+71A520 Disk Start            0000 (0)\n+71A522 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A524 Ext File Attributes   00000000 (0)\n+71A528 Local Header Offset   006E00A2 (7209122)\n+71A52C Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A52C: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A568 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A56A   Length              0005 (5)\n+71A56C   Flags               01 (1) 'Modification'\n+71A56D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A571 CENTRAL HEADER #2009  02014B50 (33639248)\n+71A575 Created Zip Spec      14 (20) '2.0'\n+71A576 Created OS            00 (0) 'MS-DOS'\n+71A577 Extract Zip Spec      14 (20) '2.0'\n+71A578 Extract OS            00 (0) 'MS-DOS'\n+71A579 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A57B Compression Method    0000 (0) 'Stored'\n+71A57D Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A581 CRC                   6680C3C2 (1719714754)\n+71A585 Compressed Size       00001240 (4672)\n+71A589 Uncompressed Size     00001240 (4672)\n+71A58D Filename Length       0044 (68)\n+71A58F Extra Length          0009 (9)\n+71A591 Comment Length        0000 (0)\n+71A593 Disk Start            0000 (0)\n+71A595 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A597 Ext File Attributes   00000000 (0)\n+71A59B Local Header Offset   006E1FC8 (7217096)\n+71A59F Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A59F: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A5E3 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A5E5   Length              0005 (5)\n+71A5E7   Flags               01 (1) 'Modification'\n+71A5E8   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A5EC CENTRAL HEADER #2010  02014B50 (33639248)\n+71A5F0 Created Zip Spec      14 (20) '2.0'\n+71A5F1 Created OS            00 (0) 'MS-DOS'\n+71A5F2 Extract Zip Spec      14 (20) '2.0'\n+71A5F3 Extract OS            00 (0) 'MS-DOS'\n+71A5F4 General Purpose Flag  0000 (0)\n+71A5F6 Compression Method    0000 (0) 'Stored'\n+71A5F8 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A5FC CRC                   00000000 (0)\n+71A600 Compressed Size       00000000 (0)\n+71A604 Uncompressed Size     00000000 (0)\n+71A608 Filename Length       0009 (9)\n+71A60A Extra Length          0009 (9)\n+71A60C Comment Length        0000 (0)\n+71A60E Disk Start            0000 (0)\n+71A610 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A612 Ext File Attributes   00000000 (0)\n+71A616 Local Header Offset   006E3283 (7221891)\n+71A61A Filename              'XXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A61A: Filename 'XXXXXXXXX'\n+#          Zero length filename\n+#\n+71A623 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A625   Length              0005 (5)\n+71A627   Flags               01 (1) 'Modification'\n+71A628   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A62C CENTRAL HEADER #2011  02014B50 (33639248)\n+71A630 Created Zip Spec      14 (20) '2.0'\n+71A631 Created OS            00 (0) 'MS-DOS'\n+71A632 Extract Zip Spec      14 (20) '2.0'\n+71A633 Extract OS            00 (0) 'MS-DOS'\n+71A634 General Purpose Flag  0008 (8)\n+       [Bit  3]              1 'Streamed'\n+71A636 Compression Method    0000 (0) 'Stored'\n+71A638 Modification Time     EC210000 (3961585664) 'Wed Jan  1 00:00:00 2098'\n+71A63C CRC                   1096B4BF (278312127)\n+71A640 Compressed Size       0000124E (4686)\n+71A644 Uncompressed Size     0000124E (4686)\n+71A648 Filename Length       001E (30)\n+71A64A Extra Length          0009 (9)\n+71A64C Comment Length        0000 (0)\n+71A64E Disk Start            0000 (0)\n+71A650 Int File Attributes   0000 (0)\n+       [Bit 0]               0 'Binary Data'\n+71A652 Ext File Attributes   00000000 (0)\n+71A656 Local Header Offset   006E32B3 (7221939)\n+71A65A Filename              'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#\n+# WARNING: Offset 0x71A65A: Filename 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXX'\n+#          Zero length filename\n+#\n+71A678 Extra ID #1           5455 (21589) 'Extended Timestamp [UT]'\n+71A67A   Length              0005 (5)\n+71A67C   Flags               01 (1) 'Modification'\n+71A67D   Modification Time   00000000 (0) 'Thu Jan  1 00:00:00 1970'\n+\n+71A681 END CENTRAL HEADER    06054B50 (101010256)\n+71A685 Number of this disk   0000 (0)\n+71A687 Central Dir Disk no   0000 (0)\n+71A689 Entries in this disk  07DB (2011)\n+71A68B Total Entries         07DB (2011)\n+71A68D Size of Central Dir   0003612B (221483)\n+71A691 Offset to Central Dir 006E4556 (7226710)\n+71A695 Comment Length        0000 (0)\n #\n # Warning Count: 4022\n #\n # Done\n"}, {"source1": "META-INF/assembly/bin/dump.sh", "source2": "META-INF/assembly/bin/dump.sh", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,108 +1,108 @@\n-#!/bin/bash\n-\n-# Licensed to the Apache Software Foundation (ASF) under one or more\n-# contributor license agreements.  See the NOTICE file distributed with\n-# this work for additional information regarding copyright ownership.\n-# The ASF licenses this file to You under the Apache License, Version 2.0\n-# (the \"License\"); you may not use this file except in compliance with\n-# the License.  You may obtain a copy of the License at\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-cd `dirname $0`\n-BIN_DIR=`pwd`\n-cd ..\n-DEPLOY_DIR=`pwd`\n-CONF_DIR=$DEPLOY_DIR/conf\n-\n-SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-LOGS_FILE=`sed '/dubbo.log4j.file/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-\n-if [ -z \"$SERVER_NAME\" ]; then\n-\tSERVER_NAME=`hostname`\n-fi\n-\n-PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\n-if [ -z \"$PIDS\" ]; then\n-    echo \"ERROR: The $SERVER_NAME does not started!\"\n-    exit 1\n-fi\n-\n-LOGS_DIR=\"\"\n-if [ -n \"$LOGS_FILE\" ]; then\n-\tLOGS_DIR=`dirname $LOGS_FILE`\n-else\n-\tLOGS_DIR=$DEPLOY_DIR/logs\n-fi\n-if [ ! -d $LOGS_DIR ]; then\n-\tmkdir $LOGS_DIR\n-fi\n-DUMP_DIR=$LOGS_DIR/dump\n-if [ ! -d $DUMP_DIR ]; then\n-\tmkdir $DUMP_DIR\n-fi\n-DUMP_DATE=`date +%Y%m%d%H%M%S`\n-DATE_DIR=$DUMP_DIR/$DUMP_DATE\n-if [ ! -d $DATE_DIR ]; then\n-\tmkdir $DATE_DIR\n-fi\n-\n-echo -e \"Dumping the $SERVER_NAME ...\\c\"\n-for PID in $PIDS ; do\n-\tjstack $PID > $DATE_DIR/jstack-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjinfo $PID > $DATE_DIR/jinfo-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjstat -gcutil $PID > $DATE_DIR/jstat-gcutil-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjstat -gccapacity $PID > $DATE_DIR/jstat-gccapacity-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjmap $PID > $DATE_DIR/jmap-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjmap -heap $PID > $DATE_DIR/jmap-heap-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tjmap -histo $PID > $DATE_DIR/jmap-histo-$PID.dump 2>&1\n-\techo -e \".\\c\"\n-\tif [ -r /usr/sbin/lsof ]; then\n-\t/usr/sbin/lsof -p $PID > $DATE_DIR/lsof-$PID.dump\n-\techo -e \".\\c\"\n-\tfi\n-done\n-\n-if [ -r /bin/netstat ]; then\n-/bin/netstat -an > $DATE_DIR/netstat.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/iostat ]; then\n-/usr/bin/iostat > $DATE_DIR/iostat.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/mpstat ]; then\n-/usr/bin/mpstat > $DATE_DIR/mpstat.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/vmstat ]; then\n-/usr/bin/vmstat > $DATE_DIR/vmstat.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/free ]; then\n-/usr/bin/free -t > $DATE_DIR/free.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/sar ]; then\n-/usr/bin/sar > $DATE_DIR/sar.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-if [ -r /usr/bin/uptime ]; then\n-/usr/bin/uptime > $DATE_DIR/uptime.dump 2>&1\n-echo -e \".\\c\"\n-fi\n-\n-echo \"OK!\"\n-echo \"DUMP: $DATE_DIR\"\n+#!/bin/bash\r\n+\r\n+# Licensed to the Apache Software Foundation (ASF) under one or more\r\n+# contributor license agreements.  See the NOTICE file distributed with\r\n+# this work for additional information regarding copyright ownership.\r\n+# The ASF licenses this file to You under the Apache License, Version 2.0\r\n+# (the \"License\"); you may not use this file except in compliance with\r\n+# the License.  You may obtain a copy of the License at\r\n+#\r\n+#     http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+# Unless required by applicable law or agreed to in writing, software\r\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+# See the License for the specific language governing permissions and\r\n+# limitations under the License.\r\n+\r\n+cd `dirname $0`\r\n+BIN_DIR=`pwd`\r\n+cd ..\r\n+DEPLOY_DIR=`pwd`\r\n+CONF_DIR=$DEPLOY_DIR/conf\r\n+\r\n+SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+LOGS_FILE=`sed '/dubbo.log4j.file/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+\r\n+if [ -z \"$SERVER_NAME\" ]; then\r\n+\tSERVER_NAME=`hostname`\r\n+fi\r\n+\r\n+PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\r\n+if [ -z \"$PIDS\" ]; then\r\n+    echo \"ERROR: The $SERVER_NAME does not started!\"\r\n+    exit 1\r\n+fi\r\n+\r\n+LOGS_DIR=\"\"\r\n+if [ -n \"$LOGS_FILE\" ]; then\r\n+\tLOGS_DIR=`dirname $LOGS_FILE`\r\n+else\r\n+\tLOGS_DIR=$DEPLOY_DIR/logs\r\n+fi\r\n+if [ ! -d $LOGS_DIR ]; then\r\n+\tmkdir $LOGS_DIR\r\n+fi\r\n+DUMP_DIR=$LOGS_DIR/dump\r\n+if [ ! -d $DUMP_DIR ]; then\r\n+\tmkdir $DUMP_DIR\r\n+fi\r\n+DUMP_DATE=`date +%Y%m%d%H%M%S`\r\n+DATE_DIR=$DUMP_DIR/$DUMP_DATE\r\n+if [ ! -d $DATE_DIR ]; then\r\n+\tmkdir $DATE_DIR\r\n+fi\r\n+\r\n+echo -e \"Dumping the $SERVER_NAME ...\\c\"\r\n+for PID in $PIDS ; do\r\n+\tjstack $PID > $DATE_DIR/jstack-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjinfo $PID > $DATE_DIR/jinfo-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjstat -gcutil $PID > $DATE_DIR/jstat-gcutil-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjstat -gccapacity $PID > $DATE_DIR/jstat-gccapacity-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjmap $PID > $DATE_DIR/jmap-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjmap -heap $PID > $DATE_DIR/jmap-heap-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tjmap -histo $PID > $DATE_DIR/jmap-histo-$PID.dump 2>&1\r\n+\techo -e \".\\c\"\r\n+\tif [ -r /usr/sbin/lsof ]; then\r\n+\t/usr/sbin/lsof -p $PID > $DATE_DIR/lsof-$PID.dump\r\n+\techo -e \".\\c\"\r\n+\tfi\r\n+done\r\n+\r\n+if [ -r /bin/netstat ]; then\r\n+/bin/netstat -an > $DATE_DIR/netstat.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/iostat ]; then\r\n+/usr/bin/iostat > $DATE_DIR/iostat.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/mpstat ]; then\r\n+/usr/bin/mpstat > $DATE_DIR/mpstat.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/vmstat ]; then\r\n+/usr/bin/vmstat > $DATE_DIR/vmstat.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/free ]; then\r\n+/usr/bin/free -t > $DATE_DIR/free.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/sar ]; then\r\n+/usr/bin/sar > $DATE_DIR/sar.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+if [ -r /usr/bin/uptime ]; then\r\n+/usr/bin/uptime > $DATE_DIR/uptime.dump 2>&1\r\n+echo -e \".\\c\"\r\n+fi\r\n+\r\n+echo \"OK!\"\r\n+echo \"DUMP: $DATE_DIR\"\r\n"}, {"source1": "META-INF/assembly/bin/restart.sh", "source2": "META-INF/assembly/bin/restart.sh", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,20 +1,20 @@\n-#!/bin/bash\n-\n-# Licensed to the Apache Software Foundation (ASF) under one or more\n-# contributor license agreements.  See the NOTICE file distributed with\n-# this work for additional information regarding copyright ownership.\n-# The ASF licenses this file to You under the Apache License, Version 2.0\n-# (the \"License\"); you may not use this file except in compliance with\n-# the License.  You may obtain a copy of the License at\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-cd `dirname $0`\n-./stop.sh\n-./start.sh\n+#!/bin/bash\r\n+\r\n+# Licensed to the Apache Software Foundation (ASF) under one or more\r\n+# contributor license agreements.  See the NOTICE file distributed with\r\n+# this work for additional information regarding copyright ownership.\r\n+# The ASF licenses this file to You under the Apache License, Version 2.0\r\n+# (the \"License\"); you may not use this file except in compliance with\r\n+# the License.  You may obtain a copy of the License at\r\n+#\r\n+#     http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+# Unless required by applicable law or agreed to in writing, software\r\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+# See the License for the specific language governing permissions and\r\n+# limitations under the License.\r\n+\r\n+cd `dirname $0`\r\n+./stop.sh\r\n+./start.sh\r\n"}, {"source1": "META-INF/assembly/bin/server.sh", "source2": "META-INF/assembly/bin/server.sh", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-#!/bin/bash\n-\n-# Licensed to the Apache Software Foundation (ASF) under one or more\n-# contributor license agreements.  See the NOTICE file distributed with\n-# this work for additional information regarding copyright ownership.\n-# The ASF licenses this file to You under the Apache License, Version 2.0\n-# (the \"License\"); you may not use this file except in compliance with\n-# the License.  You may obtain a copy of the License at\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-cd `dirname $0`\n-if [ \"$1\" = \"start\" ]; then\n-\t./start.sh\n-else\n-\tif [ \"$1\" = \"stop\" ]; then\n-\t\t./stop.sh\n-\telse\n-\t\tif [ \"$1\" = \"debug\" ]; then\n-\t\t\t./start.sh debug\n-\t\telse\n-\t\t\tif [ \"$1\" = \"restart\" ]; then\n-\t\t\t\t./restart.sh\n-\t\t\telse\n-\t\t\t\tif [ \"$1\" = \"dump\" ]; then\n-\t\t\t\t\t./dump.sh\n-\t\t\t\telse\n-\t\t\t\t\techo \"ERROR: Please input argument: start or stop or debug or restart or dump\"\n-\t\t\t\t    exit 1\n-\t\t\t\tfi\n-\t\t\tfi\n-\t\tfi\n-\tfi\n-fi\n+#!/bin/bash\r\n+\r\n+# Licensed to the Apache Software Foundation (ASF) under one or more\r\n+# contributor license agreements.  See the NOTICE file distributed with\r\n+# this work for additional information regarding copyright ownership.\r\n+# The ASF licenses this file to You under the Apache License, Version 2.0\r\n+# (the \"License\"); you may not use this file except in compliance with\r\n+# the License.  You may obtain a copy of the License at\r\n+#\r\n+#     http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+# Unless required by applicable law or agreed to in writing, software\r\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+# See the License for the specific language governing permissions and\r\n+# limitations under the License.\r\n+\r\n+cd `dirname $0`\r\n+if [ \"$1\" = \"start\" ]; then\r\n+\t./start.sh\r\n+else\r\n+\tif [ \"$1\" = \"stop\" ]; then\r\n+\t\t./stop.sh\r\n+\telse\r\n+\t\tif [ \"$1\" = \"debug\" ]; then\r\n+\t\t\t./start.sh debug\r\n+\t\telse\r\n+\t\t\tif [ \"$1\" = \"restart\" ]; then\r\n+\t\t\t\t./restart.sh\r\n+\t\t\telse\r\n+\t\t\t\tif [ \"$1\" = \"dump\" ]; then\r\n+\t\t\t\t\t./dump.sh\r\n+\t\t\t\telse\r\n+\t\t\t\t\techo \"ERROR: Please input argument: start or stop or debug or restart or dump\"\r\n+\t\t\t\t    exit 1\r\n+\t\t\t\tfi\r\n+\t\t\tfi\r\n+\t\tfi\r\n+\tfi\r\n+fi\r\n"}, {"source1": "META-INF/assembly/bin/start.sh", "source2": "META-INF/assembly/bin/start.sh", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,132 +1,132 @@\n-#!/bin/bash\n-\n-# Licensed to the Apache Software Foundation (ASF) under one or more\n-# contributor license agreements.  See the NOTICE file distributed with\n-# this work for additional information regarding copyright ownership.\n-# The ASF licenses this file to You under the Apache License, Version 2.0\n-# (the \"License\"); you may not use this file except in compliance with\n-# the License.  You may obtain a copy of the License at\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-cd `dirname $0`\n-BIN_DIR=`pwd`\n-cd ..\n-DEPLOY_DIR=`pwd`\n-CONF_DIR=$DEPLOY_DIR/conf\n-\n-SERVER_NAME=`sed '/^dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-SERVER_PROTOCOL=`sed '/^dubbo.protocol.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-SERVER_HOST=`sed '/^dubbo.protocol.host/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-SERVER_PORT=`sed '/^dubbo.protocol.port/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-LOGS_FILE=`sed '/^dubbo.log4j.file/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-VM_ARGS_PERM_SIZE='PermSize'\n-VM_ARGS_METASPACE_SIZE='MetaspaceSize'\n-JAVA_8_VERSION=\"180\"\n-\n-if [ -z \"$SERVER_HOST\" ]; then\n-    SERVER_HOST='127.0.0.1'\n-fi\n-\n-if [ -z \"$SERVER_NAME\" ]; then\n-    SERVER_NAME=`hostname`\n-fi\n-\n-PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\n-if [ -n \"$PIDS\" ]; then\n-    echo \"ERROR: The $SERVER_NAME already started!\"\n-    echo \"PID: $PIDS\"\n-    exit 1\n-fi\n-\n-if [ -n \"$SERVER_PORT\" ]; then\n-    SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`\n-    if [ $SERVER_PORT_COUNT -gt 0 ]; then\n-        echo \"ERROR: The $SERVER_NAME port $SERVER_PORT already used!\"\n-        exit 1\n-    fi\n-fi\n-\n-LOGS_DIR=\"\"\n-if [ -n \"$LOGS_FILE\" ]; then\n-    LOGS_DIR=`dirname $LOGS_FILE`\n-else\n-    LOGS_DIR=$DEPLOY_DIR/logs\n-fi\n-if [ ! -d $LOGS_DIR ]; then\n-    mkdir $LOGS_DIR\n-fi\n-STDOUT_FILE=$LOGS_DIR/stdout.log\n-\n-LIB_DIR=$DEPLOY_DIR/lib\n-LIB_JARS=`ls $LIB_DIR|grep .jar|awk '{print \"'$LIB_DIR'/\"$0}'|tr \"\\n\" \":\"`\n-\n-JAVA_OPTS=\" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true \"\n-JAVA_DEBUG_OPTS=\"\"\n-if [ \"$1\" = \"debug\" ]; then\n-    JAVA_DEBUG_OPTS=\" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n \"\n-fi\n-JAVA_JMX_OPTS=\"\"\n-if [ \"$1\" = \"jmx\" ]; then\n-    JAVA_JMX_OPTS=\" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false \"\n-fi\n-JAVA_MEM_OPTS=\"\"\n-# set jvm args by different java version\n-JAVA_VERSION=`java -fullversion 2>&1 | awk -F[\\\"\\.] '{print $2$3$4}' |awk -F\"_\" '{print $1}'`\n-echo $JAVA_VERSION\n-VM_ARGS=${VM_ARGS_PERM_SIZE}\n-# if you use dubbo in java 9\n-TEMP_VERSION=$(echo ${JAVA_VERSION} | grep \"+\")\n-if [[ \"$TEMP_VERSION\" != \"\" ]]; then\n-        JAVA_VERSION=$(echo ${JAVA_VERSION} | awk -F\"+\" '{print $1}')\n-fi\n-# compare java version\n-if [ \"${JAVA_VERSION}\" -ge ${JAVA_8_VERSION} ]; then\n-    VM_ARGS=${VM_ARGS_METASPACE_SIZE}\n-fi\n-\n-# MaxInlineLevel=15 is the default since JDK 14 and can be removed once older JDKs are no longer supported\n-BITS=`java -version 2>&1 | grep -i 64-bit`\n-JAVA_MEM_OPTS=\" -server -Xmx2g -Xms2g -Xmn256m -XX:${VM_ARGS}=128m -Xss512k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \"\n-\n-if [ -n \"$BITS\" ]; then\n-    JAVA_MAJOR_VERSION=${JAVA_VERSION%%[.|-]*}\n-    JAVA_MINOR_VERSION=$(echo $JAVA_VERSION | awk -F\\. '{ print $2 }')\n-    if [ $JAVA_MAJOR_VERSION -ge 9 ] || ([ $JAVA_MAJOR_VERSION -ge 1 ] && [ $JAVA_MINOR_VERSION -ge 8 ]); then\n-      JAVA_MEM_OPTS=\" -server -Xmx2g -Xms2g -Xmn256m -XX:${VM_ARGS}=128m -Xss512k -XX:LargePageSizeInBytes=128m -XX:+DisableExplicitGC -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:G1ReservePercent=15 \"\n-    fi\n-else\n-    JAVA_MEM_OPTS=\" -server -Xms1g -Xmx1g -XX:${VM_ARGS}=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC \"\n-fi\n-\n-echo -e \"Starting the $SERVER_NAME ...\\c\"\n-nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS org.apache.dubbo.container.Main > $STDOUT_FILE 2>&1 &\n-\n-COUNT=0\n-while [ $COUNT -lt 1 ]; do    \n-    echo -e \".\\c\"\n-    sleep 1 \n-    if [ -n \"$SERVER_PORT\" ]; then\n-        if [ \"$SERVER_PROTOCOL\" == \"dubbo\" ]; then\n-    \t    COUNT=`(sleep 1; echo -e '\\n'; sleep 1; echo status; sleep 1)| telnet $SERVER_HOST $SERVER_PORT | grep -c OK`\n-        else\n-            COUNT=`netstat -an | grep $SERVER_PORT | wc -l`\n-        fi\n-    else\n-    \tCOUNT=`ps -ef | grep java | grep -v grep | grep \"$DEPLOY_DIR\" | awk '{print $2}' | wc -l`\n-    fi\n-    if [ $COUNT -gt 0 ]; then\n-        break\n-    fi\n-done\n-\n-echo \"OK!\"\n-PIDS=`ps -ef | grep java | grep -v grep | grep \"$DEPLOY_DIR\" | awk '{print $2}'`\n-echo \"PID: $PIDS\"\n-echo \"STDOUT: $STDOUT_FILE\"\n+#!/bin/bash\r\n+\r\n+# Licensed to the Apache Software Foundation (ASF) under one or more\r\n+# contributor license agreements.  See the NOTICE file distributed with\r\n+# this work for additional information regarding copyright ownership.\r\n+# The ASF licenses this file to You under the Apache License, Version 2.0\r\n+# (the \"License\"); you may not use this file except in compliance with\r\n+# the License.  You may obtain a copy of the License at\r\n+#\r\n+#     http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+# Unless required by applicable law or agreed to in writing, software\r\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+# See the License for the specific language governing permissions and\r\n+# limitations under the License.\r\n+\r\n+cd `dirname $0`\r\n+BIN_DIR=`pwd`\r\n+cd ..\r\n+DEPLOY_DIR=`pwd`\r\n+CONF_DIR=$DEPLOY_DIR/conf\r\n+\r\n+SERVER_NAME=`sed '/^dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+SERVER_PROTOCOL=`sed '/^dubbo.protocol.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+SERVER_HOST=`sed '/^dubbo.protocol.host/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+SERVER_PORT=`sed '/^dubbo.protocol.port/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+LOGS_FILE=`sed '/^dubbo.log4j.file/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+VM_ARGS_PERM_SIZE='PermSize'\r\n+VM_ARGS_METASPACE_SIZE='MetaspaceSize'\r\n+JAVA_8_VERSION=\"180\"\r\n+\r\n+if [ -z \"$SERVER_HOST\" ]; then\r\n+    SERVER_HOST='127.0.0.1'\r\n+fi\r\n+\r\n+if [ -z \"$SERVER_NAME\" ]; then\r\n+    SERVER_NAME=`hostname`\r\n+fi\r\n+\r\n+PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\r\n+if [ -n \"$PIDS\" ]; then\r\n+    echo \"ERROR: The $SERVER_NAME already started!\"\r\n+    echo \"PID: $PIDS\"\r\n+    exit 1\r\n+fi\r\n+\r\n+if [ -n \"$SERVER_PORT\" ]; then\r\n+    SERVER_PORT_COUNT=`netstat -tln | grep $SERVER_PORT | wc -l`\r\n+    if [ $SERVER_PORT_COUNT -gt 0 ]; then\r\n+        echo \"ERROR: The $SERVER_NAME port $SERVER_PORT already used!\"\r\n+        exit 1\r\n+    fi\r\n+fi\r\n+\r\n+LOGS_DIR=\"\"\r\n+if [ -n \"$LOGS_FILE\" ]; then\r\n+    LOGS_DIR=`dirname $LOGS_FILE`\r\n+else\r\n+    LOGS_DIR=$DEPLOY_DIR/logs\r\n+fi\r\n+if [ ! -d $LOGS_DIR ]; then\r\n+    mkdir $LOGS_DIR\r\n+fi\r\n+STDOUT_FILE=$LOGS_DIR/stdout.log\r\n+\r\n+LIB_DIR=$DEPLOY_DIR/lib\r\n+LIB_JARS=`ls $LIB_DIR|grep .jar|awk '{print \"'$LIB_DIR'/\"$0}'|tr \"\\n\" \":\"`\r\n+\r\n+JAVA_OPTS=\" -Djava.awt.headless=true -Djava.net.preferIPv4Stack=true \"\r\n+JAVA_DEBUG_OPTS=\"\"\r\n+if [ \"$1\" = \"debug\" ]; then\r\n+    JAVA_DEBUG_OPTS=\" -Xdebug -Xnoagent -Djava.compiler=NONE -Xrunjdwp:transport=dt_socket,address=8000,server=y,suspend=n \"\r\n+fi\r\n+JAVA_JMX_OPTS=\"\"\r\n+if [ \"$1\" = \"jmx\" ]; then\r\n+    JAVA_JMX_OPTS=\" -Dcom.sun.management.jmxremote.port=1099 -Dcom.sun.management.jmxremote.ssl=false -Dcom.sun.management.jmxremote.authenticate=false \"\r\n+fi\r\n+JAVA_MEM_OPTS=\"\"\r\n+# set jvm args by different java version\r\n+JAVA_VERSION=`java -fullversion 2>&1 | awk -F[\\\"\\.] '{print $2$3$4}' |awk -F\"_\" '{print $1}'`\r\n+echo $JAVA_VERSION\r\n+VM_ARGS=${VM_ARGS_PERM_SIZE}\r\n+# if you use dubbo in java 9\r\n+TEMP_VERSION=$(echo ${JAVA_VERSION} | grep \"+\")\r\n+if [[ \"$TEMP_VERSION\" != \"\" ]]; then\r\n+        JAVA_VERSION=$(echo ${JAVA_VERSION} | awk -F\"+\" '{print $1}')\r\n+fi\r\n+# compare java version\r\n+if [ \"${JAVA_VERSION}\" -ge ${JAVA_8_VERSION} ]; then\r\n+    VM_ARGS=${VM_ARGS_METASPACE_SIZE}\r\n+fi\r\n+\r\n+# MaxInlineLevel=15 is the default since JDK 14 and can be removed once older JDKs are no longer supported\r\n+BITS=`java -version 2>&1 | grep -i 64-bit`\r\n+JAVA_MEM_OPTS=\" -server -Xmx2g -Xms2g -Xmn256m -XX:${VM_ARGS}=128m -Xss512k -XX:+DisableExplicitGC -XX:+UseConcMarkSweepGC -XX:+CMSParallelRemarkEnabled -XX:+UseCMSCompactAtFullCollection -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+UseCMSInitiatingOccupancyOnly -XX:CMSInitiatingOccupancyFraction=70 \"\r\n+\r\n+if [ -n \"$BITS\" ]; then\r\n+    JAVA_MAJOR_VERSION=${JAVA_VERSION%%[.|-]*}\r\n+    JAVA_MINOR_VERSION=$(echo $JAVA_VERSION | awk -F\\. '{ print $2 }')\r\n+    if [ $JAVA_MAJOR_VERSION -ge 9 ] || ([ $JAVA_MAJOR_VERSION -ge 1 ] && [ $JAVA_MINOR_VERSION -ge 8 ]); then\r\n+      JAVA_MEM_OPTS=\" -server -Xmx2g -Xms2g -Xmn256m -XX:${VM_ARGS}=128m -Xss512k -XX:LargePageSizeInBytes=128m -XX:+DisableExplicitGC -XX:+UseG1GC -XX:MaxGCPauseMillis=200 -XX:G1HeapRegionSize=16m -XX:G1ReservePercent=25 -XX:InitiatingHeapOccupancyPercent=30 -XX:SoftRefLRUPolicyMSPerMB=0 -XX:SurvivorRatio=8 -XX:G1ReservePercent=15 \"\r\n+    fi\r\n+else\r\n+    JAVA_MEM_OPTS=\" -server -Xms1g -Xmx1g -XX:${VM_ARGS}=128m -XX:SurvivorRatio=2 -XX:+UseParallelGC \"\r\n+fi\r\n+\r\n+echo -e \"Starting the $SERVER_NAME ...\\c\"\r\n+nohup java $JAVA_OPTS $JAVA_MEM_OPTS $JAVA_DEBUG_OPTS $JAVA_JMX_OPTS -classpath $CONF_DIR:$LIB_JARS org.apache.dubbo.container.Main > $STDOUT_FILE 2>&1 &\r\n+\r\n+COUNT=0\r\n+while [ $COUNT -lt 1 ]; do    \r\n+    echo -e \".\\c\"\r\n+    sleep 1 \r\n+    if [ -n \"$SERVER_PORT\" ]; then\r\n+        if [ \"$SERVER_PROTOCOL\" == \"dubbo\" ]; then\r\n+    \t    COUNT=`(sleep 1; echo -e '\\n'; sleep 1; echo status; sleep 1)| telnet $SERVER_HOST $SERVER_PORT | grep -c OK`\r\n+        else\r\n+            COUNT=`netstat -an | grep $SERVER_PORT | wc -l`\r\n+        fi\r\n+    else\r\n+    \tCOUNT=`ps -ef | grep java | grep -v grep | grep \"$DEPLOY_DIR\" | awk '{print $2}' | wc -l`\r\n+    fi\r\n+    if [ $COUNT -gt 0 ]; then\r\n+        break\r\n+    fi\r\n+done\r\n+\r\n+echo \"OK!\"\r\n+PIDS=`ps -ef | grep java | grep -v grep | grep \"$DEPLOY_DIR\" | awk '{print $2}'`\r\n+echo \"PID: $PIDS\"\r\n+echo \"STDOUT: $STDOUT_FILE\"\r\n"}, {"source1": "META-INF/assembly/bin/stop.sh", "source2": "META-INF/assembly/bin/stop.sh", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-#!/bin/bash\n-\n-# Licensed to the Apache Software Foundation (ASF) under one or more\n-# contributor license agreements.  See the NOTICE file distributed with\n-# this work for additional information regarding copyright ownership.\n-# The ASF licenses this file to You under the Apache License, Version 2.0\n-# (the \"License\"); you may not use this file except in compliance with\n-# the License.  You may obtain a copy of the License at\n-#\n-#     http://www.apache.org/licenses/LICENSE-2.0\n-#\n-# Unless required by applicable law or agreed to in writing, software\n-# distributed under the License is distributed on an \"AS IS\" BASIS,\n-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-# See the License for the specific language governing permissions and\n-# limitations under the License.\n-\n-cd `dirname $0`\n-BIN_DIR=`pwd`\n-cd ..\n-DEPLOY_DIR=`pwd`\n-CONF_DIR=$DEPLOY_DIR/conf\n-\n-SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\n-\n-if [ -z \"$SERVER_NAME\" ]; then\n-    SERVER_NAME=`hostname`\n-fi\n-\n-PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\n-if [ -z \"$PIDS\" ]; then\n-    echo \"ERROR: The $SERVER_NAME does not started!\"\n-    exit 1\n-fi\n-\n-if [ \"$1\" != \"skip\" ]; then\n-    $BIN_DIR/dump.sh\n-fi\n-\n-echo -e \"Stopping the $SERVER_NAME ...\\c\"\n-for PID in $PIDS ; do\n-    kill $PID > /dev/null 2>&1\n-done\n-\n-COUNT=0\n-while [ $COUNT -lt 1 ]; do    \n-    echo -e \".\\c\"\n-    sleep 1\n-    COUNT=1\n-    for PID in $PIDS ; do\n-        PID_EXIST=`ps -f -p $PID | grep java`\n-        if [ -n \"$PID_EXIST\" ]; then\n-            COUNT=0\n-            break\n-        fi\n-    done\n-done\n-\n-echo \"OK!\"\n-echo \"PID: $PIDS\"\n+#!/bin/bash\r\n+\r\n+# Licensed to the Apache Software Foundation (ASF) under one or more\r\n+# contributor license agreements.  See the NOTICE file distributed with\r\n+# this work for additional information regarding copyright ownership.\r\n+# The ASF licenses this file to You under the Apache License, Version 2.0\r\n+# (the \"License\"); you may not use this file except in compliance with\r\n+# the License.  You may obtain a copy of the License at\r\n+#\r\n+#     http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+# Unless required by applicable law or agreed to in writing, software\r\n+# distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+# See the License for the specific language governing permissions and\r\n+# limitations under the License.\r\n+\r\n+cd `dirname $0`\r\n+BIN_DIR=`pwd`\r\n+cd ..\r\n+DEPLOY_DIR=`pwd`\r\n+CONF_DIR=$DEPLOY_DIR/conf\r\n+\r\n+SERVER_NAME=`sed '/dubbo.application.name/!d;s/.*=//' conf/dubbo.properties | tr -d '\\r'`\r\n+\r\n+if [ -z \"$SERVER_NAME\" ]; then\r\n+    SERVER_NAME=`hostname`\r\n+fi\r\n+\r\n+PIDS=`ps -ef | grep java | grep -v grep | grep \"$CONF_DIR\" |awk '{print $2}'`\r\n+if [ -z \"$PIDS\" ]; then\r\n+    echo \"ERROR: The $SERVER_NAME does not started!\"\r\n+    exit 1\r\n+fi\r\n+\r\n+if [ \"$1\" != \"skip\" ]; then\r\n+    $BIN_DIR/dump.sh\r\n+fi\r\n+\r\n+echo -e \"Stopping the $SERVER_NAME ...\\c\"\r\n+for PID in $PIDS ; do\r\n+    kill $PID > /dev/null 2>&1\r\n+done\r\n+\r\n+COUNT=0\r\n+while [ $COUNT -lt 1 ]; do    \r\n+    echo -e \".\\c\"\r\n+    sleep 1\r\n+    COUNT=1\r\n+    for PID in $PIDS ; do\r\n+        PID_EXIST=`ps -f -p $PID | grep java`\r\n+        if [ -n \"$PID_EXIST\" ]; then\r\n+            COUNT=0\r\n+            break\r\n+        fi\r\n+    done\r\n+done\r\n+\r\n+echo \"OK!\"\r\n+echo \"PID: $PIDS\"\r\n"}, {"source1": "META-INF/compat/dubbo.xsd", "source2": "META-INF/compat/dubbo.xsd", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, Unicode text, UTF-8 text"], "has_internal_linenos": true, "unified_diff": "@@ -1,4983 +1,5086 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n 00000020: 462d 3822 2073 7461 6e64 616c 6f6e 653d  F-8\" standalone=\n-00000030: 226e 6f22 3f3e 0a3c 7873 643a 7363 6865  \"no\"?>.<xsd:sche\n-00000040: 6d61 2078 6d6c 6e73 3a78 7364 3d22 6874  ma xmlns:xsd=\"ht\n-00000050: 7470 3a2f 2f77 7777 2e77 332e 6f72 672f  tp://www.w3.org/\n-00000060: 3230 3031 2f58 4d4c 5363 6865 6d61 220a  2001/XMLSchema\".\n-00000070: 2020 2020 2020 2020 2020 2020 786d 6c6e              xmln\n-00000080: 733a 6265 616e 733d 2268 7474 703a 2f2f  s:beans=\"http://\n-00000090: 7777 772e 7370 7269 6e67 6672 616d 6577  www.springframew\n-000000a0: 6f72 6b2e 6f72 672f 7363 6865 6d61 2f62  ork.org/schema/b\n-000000b0: 6561 6e73 220a 2020 2020 2020 2020 2020  eans\".          \n-000000c0: 2020 786d 6c6e 733a 746f 6f6c 3d22 6874    xmlns:tool=\"ht\n-000000d0: 7470 3a2f 2f77 7777 2e73 7072 696e 6766  tp://www.springf\n-000000e0: 7261 6d65 776f 726b 2e6f 7267 2f73 6368  ramework.org/sch\n-000000f0: 656d 612f 746f 6f6c 220a 2020 2020 2020  ema/tool\".      \n-00000100: 2020 2020 2020 786d 6c6e 733d 2268 7474        xmlns=\"htt\n-00000110: 703a 2f2f 636f 6465 2e61 6c69 6261 6261  p://code.alibaba\n-00000120: 7465 6368 2e63 6f6d 2f73 6368 656d 612f  tech.com/schema/\n-00000130: 6475 6262 6f22 0a20 2020 2020 2020 2020  dubbo\".         \n-00000140: 2020 2074 6172 6765 744e 616d 6573 7061     targetNamespa\n-00000150: 6365 3d22 6874 7470 3a2f 2f63 6f64 652e  ce=\"http://code.\n-00000160: 616c 6962 6162 6174 6563 682e 636f 6d2f  alibabatech.com/\n-00000170: 7363 6865 6d61 2f64 7562 626f 223e 0a0a  schema/dubbo\">..\n-00000180: 2020 2020 3c78 7364 3a69 6d70 6f72 7420      <xsd:import \n-00000190: 6e61 6d65 7370 6163 653d 2268 7474 703a  namespace=\"http:\n-000001a0: 2f2f 7777 772e 7733 2e6f 7267 2f58 4d4c  //www.w3.org/XML\n-000001b0: 2f31 3939 382f 6e61 6d65 7370 6163 6522  /1998/namespace\"\n-000001c0: 2f3e 0a20 2020 203c 7873 643a 696d 706f  />.    <xsd:impo\n-000001d0: 7274 206e 616d 6573 7061 6365 3d22 6874  rt namespace=\"ht\n-000001e0: 7470 3a2f 2f77 7777 2e73 7072 696e 6766  tp://www.springf\n-000001f0: 7261 6d65 776f 726b 2e6f 7267 2f73 6368  ramework.org/sch\n-00000200: 656d 612f 6265 616e 7322 2073 6368 656d  ema/beans\" schem\n-00000210: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000220: 2f2f 7777 772e 7370 7269 6e67 6672 616d  //www.springfram\n-00000230: 6577 6f72 6b2e 6f72 672f 7363 6865 6d61  ework.org/schema\n-00000240: 2f62 6561 6e73 2f73 7072 696e 672d 6265  /beans/spring-be\n-00000250: 616e 732e 7873 6422 2f3e 0a20 2020 203c  ans.xsd\"/>.    <\n-00000260: 7873 643a 696d 706f 7274 206e 616d 6573  xsd:import names\n-00000270: 7061 6365 3d22 6874 7470 3a2f 2f77 7777  pace=\"http://www\n-00000280: 2e73 7072 696e 6766 7261 6d65 776f 726b  .springframework\n-00000290: 2e6f 7267 2f73 6368 656d 612f 746f 6f6c  .org/schema/tool\n-000002a0: 222f 3e0a 0a20 2020 203c 7873 643a 616e  \"/>..    <xsd:an\n-000002b0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000002c0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000002d0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000002e0: 2020 3c21 5b43 4441 5441 5b20 4e61 6d65    <![CDATA[ Name\n-000002f0: 7370 6163 6520 7375 7070 6f72 7420 666f  space support fo\n-00000300: 7220 7468 6520 6475 6262 6f20 7365 7276  r the dubbo serv\n-00000310: 6963 6573 2070 726f 7669 6465 6420 6279  ices provided by\n-00000320: 2064 7562 626f 2066 7261 6d65 776f 726b   dubbo framework\n-00000330: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00000340: 656e 7461 7469 6f6e 3e0a 2020 2020 3c2f  entation>.    </\n-00000350: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00000360: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n-00000370: 7854 7970 6520 6e61 6d65 3d22 6162 7374  xType name=\"abst\n-00000380: 7261 6374 4d65 7468 6f64 5479 7065 223e  ractMethodType\">\n-00000390: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-000003a0: 7472 6962 7574 6520 6e61 6d65 3d22 7469  tribute name=\"ti\n-000003b0: 6d65 6f75 7422 2074 7970 653d 2278 7364  meout\" type=\"xsd\n-000003c0: 3a73 7472 696e 6722 2064 6566 6175 6c74  :string\" default\n-000003d0: 3d22 3022 3e0a 2020 2020 2020 2020 2020  =\"0\">.          \n-000003e0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000003f0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00000400: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00000410: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00000420: 5468 6520 6d65 7468 6f64 2069 6e76 6f6b  The method invok\n-00000430: 6520 7469 6d65 6f75 742e 205d 5d3e 3c2f  e timeout. ]]></\n-00000440: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00000450: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00000460: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00000470: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00000480: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00000490: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-000004a0: 206e 616d 653d 2272 6574 7269 6573 2220   name=\"retries\" \n-000004b0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-000004c0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-000004d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000004e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000004f0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00000500: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00000510: 206d 6574 686f 6420 7265 7472 7920 7469   method retry ti\n-00000520: 6d65 732e 205d 5d3e 3c2f 7873 643a 646f  mes. ]]></xsd:do\n-00000530: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00000540: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00000550: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00000560: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00000570: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00000580: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00000590: 2266 6169 6c62 6163 6b74 6173 6b73 2220  \"failbacktasks\" \n-000005a0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-000005b0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-000005c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000005d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000005e0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-000005f0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00000600: 206d 6178 2066 6169 6c62 6163 6b20 7461   max failback ta\n-00000610: 736b 7320 6361 7061 6369 7479 2073 697a  sks capacity siz\n-00000620: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-00000630: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00000640: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00000650: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00000660: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00000670: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00000680: 7474 7269 6275 7465 206e 616d 653d 2261  ttribute name=\"a\n-00000690: 6374 6976 6573 2220 7479 7065 3d22 7873  ctives\" type=\"xs\n-000006a0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-000006b0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-000006c0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000006d0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-000006e0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-000006f0: 4154 415b 2054 6865 206d 6178 2061 6374  ATA[ The max act\n-00000700: 6976 6520 7265 7175 6573 7473 2e20 5d5d  ive requests. ]]\n-00000710: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00000720: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00000730: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00000740: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00000750: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00000760: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00000770: 7574 6520 6e61 6d65 3d22 636f 6e6e 6563  ute name=\"connec\n-00000780: 7469 6f6e 7322 2074 7970 653d 2278 7364  tions\" type=\"xsd\n-00000790: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-000007a0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000007b0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000007c0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-000007d0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000007e0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000007f0: 215b 4344 4154 415b 2054 6865 2065 7863  ![CDATA[ The exc\n-00000800: 6c75 7369 7665 2063 6f6e 6e65 6374 696f  lusive connectio\n-00000810: 6e73 2e20 6465 6661 756c 7420 7368 6172  ns. default shar\n-00000820: 6520 6f6e 6520 636f 6e6e 6563 7469 6f6e  e one connection\n-00000830: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00000840: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00000850: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00000860: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00000870: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00000880: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00000890: 7472 6962 7574 6520 6e61 6d65 3d22 6c6f  tribute name=\"lo\n-000008a0: 6164 6261 6c61 6e63 6522 2074 7970 653d  adbalance\" type=\n-000008b0: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-000008c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-000008d0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000008e0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000008f0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00000900: 5b43 4441 5441 5b20 5468 6520 6d65 7468  [CDATA[ The meth\n-00000910: 6f64 206c 6f61 6420 6261 6c61 6e63 652e  od load balance.\n-00000920: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00000930: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00000940: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00000950: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00000960: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00000970: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00000980: 7269 6275 7465 206e 616d 653d 2261 7379  ribute name=\"asy\n-00000990: 6e63 2220 7479 7065 3d22 7873 643a 7374  nc\" type=\"xsd:st\n-000009a0: 7269 6e67 2220 6465 6661 756c 743d 2266  ring\" default=\"f\n-000009b0: 616c 7365 223e 0a20 2020 2020 2020 2020  alse\">.         \n-000009c0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000009d0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000009e0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000009f0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00000a00: 2054 6865 206d 6574 686f 6420 646f 6573   The method does\n-00000a10: 2061 7379 6e63 2e20 5d5d 3e3c 2f78 7364   async. ]]></xsd\n-00000a20: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00000a30: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00000a40: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00000a50: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00000a60: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00000a70: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00000a80: 6d65 3d22 7365 6e74 2220 7479 7065 3d22  me=\"sent\" type=\"\n-00000a90: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00000aa0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00000ab0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00000ac0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00000ad0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00000ae0: 4344 4154 415b 2054 6865 2061 7379 6e63  CDATA[ The async\n-00000af0: 206d 6574 686f 6420 7265 7475 726e 2061   method return a\n-00000b00: 7761 6974 206d 6573 7361 6765 2073 656e  wait message sen\n-00000b10: 7420 5d5d 3e3c 2f78 7364 3a64 6f63 756d  t ]]></xsd:docum\n-00000b20: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00000b30: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00000b40: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00000b50: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00000b60: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00000b70: 7472 6962 7574 6520 6e61 6d65 3d22 6d6f  tribute name=\"mo\n-00000b80: 636b 2220 7479 7065 3d22 7873 643a 7374  ck\" type=\"xsd:st\n-00000b90: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00000ba0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00000bb0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00000bc0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00000bd0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00000be0: 2055 7365 2073 6572 7669 6365 206d 6f63   Use service moc\n-00000bf0: 6b20 696d 706c 656d 656e 7461 7469 6f6e  k implementation\n-00000c00: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00000c10: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00000c20: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00000c30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00000c40: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00000c50: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00000c60: 7472 6962 7574 6520 6e61 6d65 3d22 6d65  tribute name=\"me\n-00000c70: 7267 6572 2220 7479 7065 3d22 7873 643a  rger\" type=\"xsd:\n-00000c80: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00000c90: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00000ca0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00000cb0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00000cc0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00000cd0: 415b 2054 6865 206d 756c 7469 2d67 726f  A[ The multi-gro\n-00000ce0: 7570 2072 6573 756c 7420 6d65 7267 6572  up result merger\n-00000cf0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00000d00: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00000d10: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00000d20: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00000d30: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00000d40: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00000d50: 7269 6275 7465 206e 616d 653d 2276 616c  ribute name=\"val\n-00000d60: 6964 6174 696f 6e22 2074 7970 653d 2278  idation\" type=\"x\n-00000d70: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00000d80: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00000d90: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00000da0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00000db0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00000dc0: 4441 5441 5b20 5573 6520 7365 7276 6963  DATA[ Use servic\n-00000dd0: 6520 6a73 7233 3033 2076 616c 6964 6174  e jsr303 validat\n-00000de0: 696f 6e2c 2074 7275 652f 6661 6c73 652e  ion, true/false.\n-00000df0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00000e00: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00000e10: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00000e20: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00000e30: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00000e40: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00000e50: 7269 6275 7465 206e 616d 653d 2263 6163  ribute name=\"cac\n-00000e60: 6865 2220 7479 7065 3d22 7873 643a 7374  he\" type=\"xsd:st\n-00000e70: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00000e80: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00000e90: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00000ea0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00000eb0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00000ec0: 2055 7365 2073 6572 7669 6365 2063 6163   Use service cac\n-00000ed0: 6865 2c20 6c72 752f 7468 7265 6164 6c6f  he, lru/threadlo\n-00000ee0: 6361 6c2f 6a63 6163 6865 2e20 5d5d 3e3c  cal/jcache. ]]><\n-00000ef0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00000f00: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00000f10: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00000f20: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00000f30: 6174 7472 6962 7574 653e 0a20 2020 203c  attribute>.    <\n-00000f40: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n-00000f50: 3e0a 0a20 2020 203c 7873 643a 636f 6d70  >..    <xsd:comp\n-00000f60: 6c65 7854 7970 6520 6e61 6d65 3d22 6162  lexType name=\"ab\n-00000f70: 7374 7261 6374 496e 7465 7266 6163 6554  stractInterfaceT\n-00000f80: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00000f90: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-00000fa0: 743e 0a20 2020 2020 2020 2020 2020 203c  t>.            <\n-00000fb0: 7873 643a 6578 7465 6e73 696f 6e20 6261  xsd:extension ba\n-00000fc0: 7365 3d22 6162 7374 7261 6374 4d65 7468  se=\"abstractMeth\n-00000fd0: 6f64 5479 7065 223e 0a20 2020 2020 2020  odType\">.       \n-00000fe0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00000ff0: 7472 6962 7574 6520 6e61 6d65 3d22 6964  tribute name=\"id\n-00001000: 2220 7479 7065 3d22 7873 643a 4944 223e  \" type=\"xsd:ID\">\n-00001010: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001020: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00001030: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00001040: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00001050: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00001060: 3e3c 215b 4344 4154 415b 2054 6865 2075  ><![CDATA[ The u\n-00001070: 6e69 7175 6520 6964 656e 7469 6669 6572  nique identifier\n-00001080: 2066 6f72 2061 2062 6561 6e2e 205d 5d3e   for a bean. ]]>\n-00001090: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-000010a0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000010b0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-000010c0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000010d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-000010e0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-000010f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00001100: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00001110: 226c 6f63 616c 2220 7479 7065 3d22 7873  \"local\" type=\"xs\n-00001120: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00001130: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001140: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001150: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001160: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00001170: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00001180: 4154 415b 2055 7365 2073 6572 7669 6365  ATA[ Use service\n-00001190: 206c 6f63 616c 2069 6d70 6c65 6d65 6e74   local implement\n-000011a0: 6174 696f 6e2e 205d 5d3e 3c2f 7873 643a  ation. ]]></xsd:\n-000011b0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-000011c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000011d0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-000011e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000011f0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00001200: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00001210: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00001220: 6275 7465 206e 616d 653d 2273 7475 6222  bute name=\"stub\"\n-00001230: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00001240: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00001250: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00001260: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001270: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001280: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00001290: 696f 6e3e 3c21 5b43 4441 5441 5b20 5573  ion><![CDATA[ Us\n-000012a0: 6520 7365 7276 6963 6520 6c6f 6361 6c20  e service local \n-000012b0: 696d 706c 656d 656e 7461 7469 6f6e 2e20  implementation. \n-000012c0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-000012d0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000012e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000012f0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00001300: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00001310: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00001320: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001330: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00001340: 6d65 3d22 7072 6f78 7922 2074 7970 653d  me=\"proxy\" type=\n-00001350: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00001360: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001370: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00001380: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00001390: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000013a0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-000013b0: 5b43 4441 5441 5b20 5573 6520 7072 6f78  [CDATA[ Use prox\n-000013c0: 7920 6661 6374 6f72 792e 205d 5d3e 3c2f  y factory. ]]></\n-000013d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000013e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000013f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00001400: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001410: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00001420: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00001430: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00001440: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-00001450: 6c75 7374 6572 2220 7479 7065 3d22 7873  luster\" type=\"xs\n-00001460: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n+00000030: 226e 6f22 3f3e 0d0a 3c78 7364 3a73 6368  \"no\"?>..<xsd:sch\n+00000040: 656d 6120 786d 6c6e 733a 7873 643d 2268  ema xmlns:xsd=\"h\n+00000050: 7474 703a 2f2f 7777 772e 7733 2e6f 7267  ttp://www.w3.org\n+00000060: 2f32 3030 312f 584d 4c53 6368 656d 6122  /2001/XMLSchema\"\n+00000070: 0d0a 2020 2020 2020 2020 2020 2020 786d  ..            xm\n+00000080: 6c6e 733a 6265 616e 733d 2268 7474 703a  lns:beans=\"http:\n+00000090: 2f2f 7777 772e 7370 7269 6e67 6672 616d  //www.springfram\n+000000a0: 6577 6f72 6b2e 6f72 672f 7363 6865 6d61  ework.org/schema\n+000000b0: 2f62 6561 6e73 220d 0a20 2020 2020 2020  /beans\"..       \n+000000c0: 2020 2020 2078 6d6c 6e73 3a74 6f6f 6c3d       xmlns:tool=\n+000000d0: 2268 7474 703a 2f2f 7777 772e 7370 7269  \"http://www.spri\n+000000e0: 6e67 6672 616d 6577 6f72 6b2e 6f72 672f  ngframework.org/\n+000000f0: 7363 6865 6d61 2f74 6f6f 6c22 0d0a 2020  schema/tool\"..  \n+00000100: 2020 2020 2020 2020 2020 786d 6c6e 733d            xmlns=\n+00000110: 2268 7474 703a 2f2f 636f 6465 2e61 6c69  \"http://code.ali\n+00000120: 6261 6261 7465 6368 2e63 6f6d 2f73 6368  babatech.com/sch\n+00000130: 656d 612f 6475 6262 6f22 0d0a 2020 2020  ema/dubbo\"..    \n+00000140: 2020 2020 2020 2020 7461 7267 6574 4e61          targetNa\n+00000150: 6d65 7370 6163 653d 2268 7474 703a 2f2f  mespace=\"http://\n+00000160: 636f 6465 2e61 6c69 6261 6261 7465 6368  code.alibabatech\n+00000170: 2e63 6f6d 2f73 6368 656d 612f 6475 6262  .com/schema/dubb\n+00000180: 6f22 3e0d 0a0d 0a20 2020 203c 7873 643a  o\">....    <xsd:\n+00000190: 696d 706f 7274 206e 616d 6573 7061 6365  import namespace\n+000001a0: 3d22 6874 7470 3a2f 2f77 7777 2e77 332e  =\"http://www.w3.\n+000001b0: 6f72 672f 584d 4c2f 3139 3938 2f6e 616d  org/XML/1998/nam\n+000001c0: 6573 7061 6365 222f 3e0d 0a20 2020 203c  espace\"/>..    <\n+000001d0: 7873 643a 696d 706f 7274 206e 616d 6573  xsd:import names\n+000001e0: 7061 6365 3d22 6874 7470 3a2f 2f77 7777  pace=\"http://www\n+000001f0: 2e73 7072 696e 6766 7261 6d65 776f 726b  .springframework\n+00000200: 2e6f 7267 2f73 6368 656d 612f 6265 616e  .org/schema/bean\n+00000210: 7322 2073 6368 656d 614c 6f63 6174 696f  s\" schemaLocatio\n+00000220: 6e3d 2268 7474 703a 2f2f 7777 772e 7370  n=\"http://www.sp\n+00000230: 7269 6e67 6672 616d 6577 6f72 6b2e 6f72  ringframework.or\n+00000240: 672f 7363 6865 6d61 2f62 6561 6e73 2f73  g/schema/beans/s\n+00000250: 7072 696e 672d 6265 616e 732e 7873 6422  pring-beans.xsd\"\n+00000260: 2f3e 0d0a 2020 2020 3c78 7364 3a69 6d70  />..    <xsd:imp\n+00000270: 6f72 7420 6e61 6d65 7370 6163 653d 2268  ort namespace=\"h\n+00000280: 7474 703a 2f2f 7777 772e 7370 7269 6e67  ttp://www.spring\n+00000290: 6672 616d 6577 6f72 6b2e 6f72 672f 7363  framework.org/sc\n+000002a0: 6865 6d61 2f74 6f6f 6c22 2f3e 0d0a 0d0a  hema/tool\"/>....\n+000002b0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000002c0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c78  ion>..        <x\n+000002d0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000002e0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000002f0: 215b 4344 4154 415b 204e 616d 6573 7061  ![CDATA[ Namespa\n+00000300: 6365 2073 7570 706f 7274 2066 6f72 2074  ce support for t\n+00000310: 6865 2064 7562 626f 2073 6572 7669 6365  he dubbo service\n+00000320: 7320 7072 6f76 6964 6564 2062 7920 6475  s provided by du\n+00000330: 6262 6f20 6672 616d 6577 6f72 6b2e 205d  bbo framework. ]\n+00000340: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00000350: 6174 696f 6e3e 0d0a 2020 2020 3c2f 7873  ation>..    </xs\n+00000360: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a0d  d:annotation>...\n+00000370: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n+00000380: 7854 7970 6520 6e61 6d65 3d22 6162 7374  xType name=\"abst\n+00000390: 7261 6374 4d65 7468 6f64 5479 7065 223e  ractMethodType\">\n+000003a0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000003b0: 7474 7269 6275 7465 206e 616d 653d 2274  ttribute name=\"t\n+000003c0: 696d 656f 7574 2220 7479 7065 3d22 7873  imeout\" type=\"xs\n+000003d0: 643a 7374 7269 6e67 2220 6465 6661 756c  d:string\" defaul\n+000003e0: 743d 2230 223e 0d0a 2020 2020 2020 2020  t=\"0\">..        \n+000003f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00000400: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00000410: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00000420: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00000430: 415b 2054 6865 206d 6574 686f 6420 696e  A[ The method in\n+00000440: 766f 6b65 2074 696d 656f 7574 2e20 5d5d  voke timeout. ]]\n+00000450: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00000460: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00000470: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00000480: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00000490: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000004a0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000004b0: 7269 6275 7465 206e 616d 653d 2272 6574  ribute name=\"ret\n+000004c0: 7269 6573 2220 7479 7065 3d22 7873 643a  ries\" type=\"xsd:\n+000004d0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+000004e0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+000004f0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000500: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00000510: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00000520: 4154 415b 2054 6865 206d 6574 686f 6420  ATA[ The method \n+00000530: 7265 7472 7920 7469 6d65 732e 205d 5d3e  retry times. ]]>\n+00000540: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00000550: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00000560: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00000570: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00000580: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00000590: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000005a0: 6962 7574 6520 6e61 6d65 3d22 6661 696c  ibute name=\"fail\n+000005b0: 6261 636b 7461 736b 7322 2074 7970 653d  backtasks\" type=\n+000005c0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+000005d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000005e0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000005f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00000600: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00000610: 3c21 5b43 4441 5441 5b20 5468 6520 6d61  <![CDATA[ The ma\n+00000620: 7820 6661 696c 6261 636b 2074 6173 6b73  x failback tasks\n+00000630: 2063 6170 6163 6974 7920 7369 7a65 2e20   capacity size. \n+00000640: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00000650: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00000660: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00000670: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000680: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00000690: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000006a0: 7474 7269 6275 7465 206e 616d 653d 2261  ttribute name=\"a\n+000006b0: 6374 6976 6573 2220 7479 7065 3d22 7873  ctives\" type=\"xs\n+000006c0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+000006d0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000006e0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000006f0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00000700: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00000710: 4344 4154 415b 2054 6865 206d 6178 2061  CDATA[ The max a\n+00000720: 6374 6976 6520 7265 7175 6573 7473 2e20  ctive requests. \n+00000730: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00000740: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00000750: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00000760: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000770: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00000780: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00000790: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n+000007a0: 6f6e 6e65 6374 696f 6e73 2220 7479 7065  onnections\" type\n+000007b0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+000007c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000007d0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000007e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000007f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00000800: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00000810: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n+00000820: 2054 6865 2065 7863 6c75 7369 7665 2063   The exclusive c\n+00000830: 6f6e 6e65 6374 696f 6e73 2e20 6465 6661  onnections. defa\n+00000840: 756c 7420 7368 6172 6520 6f6e 6520 636f  ult share one co\n+00000850: 6e6e 6563 7469 6f6e 2e20 5d5d 3e3c 2f78  nnection. ]]></x\n+00000860: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00000870: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00000880: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00000890: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+000008a0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+000008b0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000008c0: 7465 206e 616d 653d 226c 6f61 6462 616c  te name=\"loadbal\n+000008d0: 616e 6365 2220 7479 7065 3d22 7873 643a  ance\" type=\"xsd:\n+000008e0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+000008f0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00000900: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000910: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00000920: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00000930: 4154 415b 2054 6865 206d 6574 686f 6420  ATA[ The method \n+00000940: 6c6f 6164 2062 616c 616e 6365 2e20 5d5d  load balance. ]]\n+00000950: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00000960: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00000970: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00000980: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00000990: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000009a0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000009b0: 7269 6275 7465 206e 616d 653d 2261 7379  ribute name=\"asy\n+000009c0: 6e63 2220 7479 7065 3d22 7873 643a 7374  nc\" type=\"xsd:st\n+000009d0: 7269 6e67 2220 6465 6661 756c 743d 2266  ring\" default=\"f\n+000009e0: 616c 7365 223e 0d0a 2020 2020 2020 2020  alse\">..        \n+000009f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00000a00: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00000a10: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00000a20: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00000a30: 415b 2054 6865 206d 6574 686f 6420 646f  A[ The method do\n+00000a40: 6573 2061 7379 6e63 2e20 5d5d 3e3c 2f78  es async. ]]></x\n+00000a50: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00000a60: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00000a70: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00000a80: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00000a90: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00000aa0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00000ab0: 7465 206e 616d 653d 2273 656e 7422 2074  te name=\"sent\" t\n+00000ac0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00000ad0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00000ae0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000af0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00000b00: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00000b10: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00000b20: 6520 6173 796e 6320 6d65 7468 6f64 2072  e async method r\n+00000b30: 6574 7572 6e20 6177 6169 7420 6d65 7373  eturn await mess\n+00000b40: 6167 6520 7365 6e74 205d 5d3e 3c2f 7873  age sent ]]></xs\n+00000b50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00000b60: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00000b70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000b80: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00000b90: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00000ba0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00000bb0: 6520 6e61 6d65 3d22 6d6f 636b 2220 7479  e name=\"mock\" ty\n+00000bc0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00000bd0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00000be0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00000bf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00000c00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00000c10: 6f6e 3e3c 215b 4344 4154 415b 2055 7365  on><![CDATA[ Use\n+00000c20: 2073 6572 7669 6365 206d 6f63 6b20 696d   service mock im\n+00000c30: 706c 656d 656e 7461 7469 6f6e 2e20 5d5d  plementation. ]]\n+00000c40: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00000c50: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00000c60: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00000c70: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00000c80: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00000c90: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00000ca0: 7269 6275 7465 206e 616d 653d 226d 6572  ribute name=\"mer\n+00000cb0: 6765 7222 2074 7970 653d 2278 7364 3a73  ger\" type=\"xsd:s\n+00000cc0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00000cd0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00000ce0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00000cf0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00000d00: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00000d10: 5441 5b20 5468 6520 6d75 6c74 692d 6772  TA[ The multi-gr\n+00000d20: 6f75 7020 7265 7375 6c74 206d 6572 6765  oup result merge\n+00000d30: 7220 5d5d 3e3c 2f78 7364 3a64 6f63 756d  r ]]></xsd:docum\n+00000d40: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00000d50: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00000d60: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00000d70: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00000d80: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00000d90: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00000da0: 2276 616c 6964 6174 696f 6e22 2074 7970  \"validation\" typ\n+00000db0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00000dc0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00000dd0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000de0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00000df0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00000e00: 6e3e 3c21 5b43 4441 5441 5b20 5573 6520  n><![CDATA[ Use \n+00000e10: 7365 7276 6963 6520 6a73 7233 3033 2076  service jsr303 v\n+00000e20: 616c 6964 6174 696f 6e2c 2074 7275 652f  alidation, true/\n+00000e30: 6661 6c73 652e 205d 5d3e 3c2f 7873 643a  false. ]]></xsd:\n+00000e40: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00000e50: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00000e60: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000e70: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00000e80: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00000e90: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00000ea0: 6e61 6d65 3d22 6361 6368 6522 2074 7970  name=\"cache\" typ\n+00000eb0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00000ec0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00000ed0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000ee0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00000ef0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00000f00: 6e3e 3c21 5b43 4441 5441 5b20 5573 6520  n><![CDATA[ Use \n+00000f10: 7365 7276 6963 6520 6361 6368 652c 206c  service cache, l\n+00000f20: 7275 2f74 6872 6561 646c 6f63 616c 2f6a  ru/threadlocal/j\n+00000f30: 6361 6368 652e 205d 5d3e 3c2f 7873 643a  cache. ]]></xsd:\n+00000f40: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00000f50: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00000f60: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000f70: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00000f80: 7269 6275 7465 3e0d 0a20 2020 203c 2f78  ribute>..    </x\n+00000f90: 7364 3a63 6f6d 706c 6578 5479 7065 3e0d  sd:complexType>.\n+00000fa0: 0a0d 0a20 2020 203c 7873 643a 636f 6d70  ...    <xsd:comp\n+00000fb0: 6c65 7854 7970 6520 6e61 6d65 3d22 6162  lexType name=\"ab\n+00000fc0: 7374 7261 6374 496e 7465 7266 6163 6554  stractInterfaceT\n+00000fd0: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+00000fe0: 7873 643a 636f 6d70 6c65 7843 6f6e 7465  xsd:complexConte\n+00000ff0: 6e74 3e0d 0a20 2020 2020 2020 2020 2020  nt>..           \n+00001000: 203c 7873 643a 6578 7465 6e73 696f 6e20   <xsd:extension \n+00001010: 6261 7365 3d22 6162 7374 7261 6374 4d65  base=\"abstractMe\n+00001020: 7468 6f64 5479 7065 223e 0d0a 2020 2020  thodType\">..    \n+00001030: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001040: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00001050: 2269 6422 2074 7970 653d 2278 7364 3a49  \"id\" type=\"xsd:I\n+00001060: 4422 3e0d 0a20 2020 2020 2020 2020 2020  D\">..           \n+00001070: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00001080: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00001090: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000010a0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+000010b0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+000010c0: 5468 6520 756e 6971 7565 2069 6465 6e74  The unique ident\n+000010d0: 6966 6965 7220 666f 7220 6120 6265 616e  ifier for a bean\n+000010e0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+000010f0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00001100: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001110: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00001120: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001130: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00001140: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00001150: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00001160: 7465 206e 616d 653d 226c 6f63 616c 2220  te name=\"local\" \n+00001170: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00001180: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00001190: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000011a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000011b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000011c0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+000011d0: 7469 6f6e 3e3c 215b 4344 4154 415b 2055  tion><![CDATA[ U\n+000011e0: 7365 2073 6572 7669 6365 206c 6f63 616c  se service local\n+000011f0: 2069 6d70 6c65 6d65 6e74 6174 696f 6e2e   implementation.\n+00001200: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00001210: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00001220: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00001230: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00001240: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001250: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00001260: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001270: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00001280: 6520 6e61 6d65 3d22 7374 7562 2220 7479  e name=\"stub\" ty\n+00001290: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+000012a0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000012b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+000012c0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000012d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000012e0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000012f0: 6f6e 3e3c 215b 4344 4154 415b 2055 7365  on><![CDATA[ Use\n+00001300: 2073 6572 7669 6365 206c 6f63 616c 2069   service local i\n+00001310: 6d70 6c65 6d65 6e74 6174 696f 6e2e 205d  mplementation. ]\n+00001320: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00001330: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001340: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00001350: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00001360: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001370: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00001380: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001390: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000013a0: 6e61 6d65 3d22 7072 6f78 7922 2074 7970  name=\"proxy\" typ\n+000013b0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+000013c0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000013d0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000013e0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000013f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001400: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00001410: 6e3e 3c21 5b43 4441 5441 5b20 5573 6520  n><![CDATA[ Use \n+00001420: 7072 6f78 7920 6661 6374 6f72 792e 205d  proxy factory. ]\n+00001430: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00001440: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001450: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00001460: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n 00001470: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001480: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001490: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000014a0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-000014b0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-000014c0: 4154 415b 2055 7365 2063 6c75 7374 6572  ATA[ Use cluster\n-000014d0: 2073 7472 6174 6567 792e 205d 5d3e 3c2f   strategy. ]]></\n-000014e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000014f0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00001500: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00001510: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001520: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00001530: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00001540: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00001550: 7474 7269 6275 7465 206e 616d 653d 2266  ttribute name=\"f\n-00001560: 6f72 6b73 2220 7479 7065 3d22 7873 643a  orks\" type=\"xsd:\n-00001570: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00001580: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00001590: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000015a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000015b0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000015c0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000015d0: 415b 2046 6f72 6b69 6e67 436c 7573 7465  A[ ForkingCluste\n-000015e0: 7220 666f 726b 732e 205d 5d3e 3c2f 7873  r forks. ]]></xs\n-000015f0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00001600: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001610: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00001620: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00001630: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00001640: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00001650: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00001660: 7269 6275 7465 206e 616d 653d 2266 696c  ribute name=\"fil\n-00001670: 7465 7222 2074 7970 653d 2278 7364 3a73  ter\" type=\"xsd:s\n-00001680: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00001690: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000016a0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000016b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000016c0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000016d0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000016e0: 5b20 5468 6520 6669 6c74 6572 2e20 5d5d  [ The filter. ]]\n-000016f0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00001700: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00001710: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00001720: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00001730: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00001740: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00001750: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00001760: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00001770: 3d22 6c69 7374 656e 6572 2220 7479 7065  =\"listener\" type\n-00001780: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00001790: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000017a0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000017b0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000017c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000017d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000017e0: 215b 4344 4154 415b 2054 6865 206c 6973  ![CDATA[ The lis\n-000017f0: 7465 6e65 722e 205d 5d3e 3c2f 7873 643a  tener. ]]></xsd:\n-00001800: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00001810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001820: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00001830: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00001840: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00001850: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00001860: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00001870: 6275 7465 206e 616d 653d 226f 776e 6572  bute name=\"owner\n-00001880: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00001890: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-000018a0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000018b0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000018c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000018d0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000018e0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-000018f0: 6865 206f 776e 6572 2e20 5d5d 3e3c 2f78  he owner. ]]></x\n-00001900: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00001910: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001920: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00001930: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001940: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00001950: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00001960: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00001970: 7472 6962 7574 6520 6e61 6d65 3d22 6c61  tribute name=\"la\n-00001980: 7965 7222 2074 7970 653d 2278 7364 3a73  yer\" type=\"xsd:s\n-00001990: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000019a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000019b0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000019c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000019d0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000019e0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000019f0: 5b20 6c61 7965 7220 696e 666f 2e20 5d5d  [ layer info. ]]\n-00001a00: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00001a10: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00001a20: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00001a30: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00001a40: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00001a50: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00001a60: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00001a70: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00001a80: 3d22 6170 706c 6963 6174 696f 6e22 2074  =\"application\" t\n-00001a90: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00001aa0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001ab0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00001ac0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00001ad0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001ae0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00001af0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00001b00: 7365 7276 6963 6520 6170 706c 6963 6174  service applicat\n-00001b10: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n-00001b20: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00001b30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001b40: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00001b50: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00001b60: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00001b70: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-00001b80: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00001b90: 7465 206e 616d 653d 226d 6f64 756c 6522  te name=\"module\"\n-00001ba0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00001bb0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00001bc0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00001bd0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001be0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001bf0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00001c00: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00001c10: 6520 7365 7276 6963 6520 6d6f 6475 6c65  e service module\n-00001c20: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00001c30: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00001c40: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00001c50: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001c60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001c70: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00001c80: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001c90: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00001ca0: 6e61 6d65 3d22 7265 6769 7374 7279 2220  name=\"registry\" \n-00001cb0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00001cc0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00001cd0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00001ce0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001cf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001d00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00001d10: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00001d20: 2073 6572 7669 6365 2072 6567 6973 7472   service registr\n-00001d30: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n-00001d40: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00001d50: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001d60: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00001d70: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001d80: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00001d90: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001da0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00001db0: 206e 616d 653d 226d 6f6e 6974 6f72 2220   name=\"monitor\" \n-00001dc0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00001dd0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00001de0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00001df0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001e00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001e10: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00001e20: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00001e30: 2073 6572 7669 6365 206d 6f6e 6974 6f72   service monitor\n-00001e40: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00001e50: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00001e60: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00001e70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001e80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001e90: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00001ea0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001eb0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00001ec0: 6e61 6d65 3d22 6361 6c6c 6261 636b 7322  name=\"callbacks\"\n-00001ed0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00001ee0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00001ef0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00001f00: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001f10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001f20: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00001f30: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00001f40: 6520 6361 6c6c 6261 636b 2069 6e73 7461  e callback insta\n-00001f50: 6e63 6520 6c69 6d69 7420 7065 6572 2063  nce limit peer c\n-00001f60: 6f6e 6e65 6374 696f 6e2e 5d5d 3e3c 2f78  onnection.]]></x\n-00001f70: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00001f80: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001f90: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00001fa0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001fb0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00001fc0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00001fd0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00001fe0: 7472 6962 7574 6520 6e61 6d65 3d22 6f6e  tribute name=\"on\n-00001ff0: 636f 6e6e 6563 7422 2074 7970 653d 2278  connect\" type=\"x\n-00002000: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00002010: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002020: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00002030: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002040: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00002050: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00002060: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n-00002070: 6520 636c 6965 6e74 2063 6f6e 6e65 6374  e client connect\n-00002080: 6564 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ed. ]]></xsd:doc\n-00002090: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-000020a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000020b0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-000020c0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000020d0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-000020e0: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-000020f0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00002100: 6520 6e61 6d65 3d22 6f6e 6469 7363 6f6e  e name=\"ondiscon\n-00002110: 6e65 6374 2220 7479 7065 3d22 7873 643a  nect\" type=\"xsd:\n-00002120: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00002130: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002140: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00002150: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002160: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00002170: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00002180: 415b 2054 6865 2073 6572 7669 6365 2063  A[ The service c\n-00002190: 6c69 656e 7420 6469 7363 6f6e 6e65 6374  lient disconnect\n-000021a0: 6564 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ed. ]]></xsd:doc\n-000021b0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-000021c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000021d0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-000021e0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000021f0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00002200: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-00002210: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00002220: 6520 6e61 6d65 3d22 7363 6f70 6522 2074  e name=\"scope\" t\n-00002230: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00002240: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002250: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00002260: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00002270: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00002280: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002290: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000022a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000022b0: 215b 4344 4154 415b 2044 6566 696e 6573  ![CDATA[ Defines\n-000022c0: 2074 6865 2073 6572 7669 6365 2076 6973   the service vis\n-000022d0: 6962 696c 6974 792c 2063 686f 6973 653a  ibility, choise:\n-000022e0: 5b6c 6f63 616c 2072 656d 6f74 655d 2e20  [local remote]. \n-000022f0: 6465 6661 756c 7420 6973 2072 656d 6f74  default is remot\n-00002300: 652c 2077 6869 6368 2063 616e 2062 6520  e, which can be \n-00002310: 696e 766f 6b65 6420 6279 206e 6574 776f  invoked by netwo\n-00002320: 726b e380 8220 205d 5d3e 3c2f 7873 643a  rk...  ]]></xsd:\n-00002330: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n+00001480: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00001490: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000014a0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000014b0: 6e61 6d65 3d22 636c 7573 7465 7222 2074  name=\"cluster\" t\n+000014c0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000014d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000014e0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+000014f0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001500: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001510: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00001520: 696f 6e3e 3c21 5b43 4441 5441 5b20 5573  ion><![CDATA[ Us\n+00001530: 6520 636c 7573 7465 7220 7374 7261 7465  e cluster strate\n+00001540: 6779 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  gy. ]]></xsd:doc\n+00001550: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00001560: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001570: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00001580: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00001590: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+000015a0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+000015b0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000015c0: 6275 7465 206e 616d 653d 2266 6f72 6b73  bute name=\"forks\n+000015d0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+000015e0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+000015f0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00001600: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00001610: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001620: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00001630: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00001640: 2046 6f72 6b69 6e67 436c 7573 7465 7220   ForkingCluster \n+00001650: 666f 726b 732e 205d 5d3e 3c2f 7873 643a  forks. ]]></xsd:\n+00001660: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00001670: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001680: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00001690: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000016a0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000016b0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000016c0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+000016d0: 7472 6962 7574 6520 6e61 6d65 3d22 6669  tribute name=\"fi\n+000016e0: 6c74 6572 2220 7479 7065 3d22 7873 643a  lter\" type=\"xsd:\n+000016f0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00001700: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00001710: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00001720: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001730: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00001740: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00001750: 4154 415b 2054 6865 2066 696c 7465 722e  ATA[ The filter.\n+00001760: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00001770: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00001780: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00001790: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000017a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000017b0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+000017c0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000017d0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000017e0: 6520 6e61 6d65 3d22 6c69 7374 656e 6572  e name=\"listener\n+000017f0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00001800: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00001810: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00001820: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00001830: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001840: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00001850: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00001860: 2054 6865 206c 6973 7465 6e65 722e 205d   The listener. ]\n+00001870: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00001880: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001890: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000018a0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000018b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000018c0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+000018d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000018e0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000018f0: 6e61 6d65 3d22 6f77 6e65 7222 2074 7970  name=\"owner\" typ\n+00001900: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00001910: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001920: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00001930: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00001940: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001950: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00001960: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00001970: 6f77 6e65 722e 205d 5d3e 3c2f 7873 643a  owner. ]]></xsd:\n+00001980: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00001990: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000019a0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000019b0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000019c0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000019d0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000019e0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+000019f0: 7472 6962 7574 6520 6e61 6d65 3d22 6c61  tribute name=\"la\n+00001a00: 7965 7222 2074 7970 653d 2278 7364 3a73  yer\" type=\"xsd:s\n+00001a10: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00001a20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00001a30: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00001a40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001a50: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00001a60: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00001a70: 5441 5b20 6c61 7965 7220 696e 666f 2e20  TA[ layer info. \n+00001a80: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00001a90: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001aa0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00001ab0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00001ac0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001ad0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00001ae0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001af0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00001b00: 206e 616d 653d 2261 7070 6c69 6361 7469   name=\"applicati\n+00001b10: 6f6e 2220 7479 7065 3d22 7873 643a 7374  on\" type=\"xsd:st\n+00001b20: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00001b30: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001b40: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00001b50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001b60: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00001b70: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00001b80: 415b 2054 6865 2073 6572 7669 6365 2061  A[ The service a\n+00001b90: 7070 6c69 6361 7469 6f6e 2e20 5d5d 3e3c  pplication. ]]><\n+00001ba0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00001bb0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00001bc0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00001bd0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00001be0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00001bf0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00001c00: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00001c10: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00001c20: 653d 226d 6f64 756c 6522 2074 7970 653d  e=\"module\" type=\n+00001c30: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00001c40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001c50: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00001c60: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00001c70: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00001c80: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00001c90: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n+00001ca0: 7276 6963 6520 6d6f 6475 6c65 2e20 5d5d  rvice module. ]]\n+00001cb0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00001cc0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00001cd0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00001ce0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00001cf0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00001d00: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00001d10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001d20: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00001d30: 616d 653d 2272 6567 6973 7472 7922 2074  ame=\"registry\" t\n+00001d40: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00001d50: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001d60: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00001d70: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001d80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001d90: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00001da0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00001db0: 6520 7365 7276 6963 6520 7265 6769 7374  e service regist\n+00001dc0: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n+00001dd0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00001de0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001df0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00001e00: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00001e10: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00001e20: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00001e30: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00001e40: 6275 7465 206e 616d 653d 226d 6f6e 6974  bute name=\"monit\n+00001e50: 6f72 2220 7479 7065 3d22 7873 643a 7374  or\" type=\"xsd:st\n+00001e60: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00001e70: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001e80: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00001e90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001ea0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00001eb0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00001ec0: 415b 2054 6865 2073 6572 7669 6365 206d  A[ The service m\n+00001ed0: 6f6e 6974 6f72 2e20 5d5d 3e3c 2f78 7364  onitor. ]]></xsd\n+00001ee0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00001ef0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001f00: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00001f10: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001f20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00001f30: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00001f40: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00001f50: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n+00001f60: 616c 6c62 6163 6b73 2220 7479 7065 3d22  allbacks\" type=\"\n+00001f70: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00001f80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001f90: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00001fa0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00001fb0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001fc0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00001fd0: 215b 4344 4154 415b 2054 6865 2063 616c  ![CDATA[ The cal\n+00001fe0: 6c62 6163 6b20 696e 7374 616e 6365 206c  lback instance l\n+00001ff0: 696d 6974 2070 6565 7220 636f 6e6e 6563  imit peer connec\n+00002000: 7469 6f6e 2e5d 5d3e 3c2f 7873 643a 646f  tion.]]></xsd:do\n+00002010: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00002020: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002030: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00002040: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00002050: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00002060: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+00002070: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00002080: 6962 7574 6520 6e61 6d65 3d22 6f6e 636f  ibute name=\"onco\n+00002090: 6e6e 6563 7422 2074 7970 653d 2278 7364  nnect\" type=\"xsd\n+000020a0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000020b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000020c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000020d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000020e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000020f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00002100: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+00002110: 6520 636c 6965 6e74 2063 6f6e 6e65 6374  e client connect\n+00002120: 6564 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ed. ]]></xsd:doc\n+00002130: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00002140: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002150: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00002160: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002170: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00002180: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00002190: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000021a0: 6275 7465 206e 616d 653d 226f 6e64 6973  bute name=\"ondis\n+000021b0: 636f 6e6e 6563 7422 2074 7970 653d 2278  connect\" type=\"x\n+000021c0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+000021d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000021e0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+000021f0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00002200: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00002210: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00002220: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00002230: 6963 6520 636c 6965 6e74 2064 6973 636f  ice client disco\n+00002240: 6e6e 6563 7465 642e 205d 5d3e 3c2f 7873  nnected. ]]></xs\n+00002250: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00002260: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002270: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00002280: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002290: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000022a0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+000022b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000022c0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000022d0: 7363 6f70 6522 2074 7970 653d 2278 7364  scope\" type=\"xsd\n+000022e0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000022f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002300: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00002310: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002320: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00002330: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n 00002340: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002350: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00002360: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00002370: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00002380: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00002390: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-000023a0: 6275 7465 206e 616d 653d 2274 6167 2220  bute name=\"tag\" \n-000023b0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-000023c0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-000023d0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-000023e0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000023f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002400: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00002410: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00002420: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002430: 3c21 5b43 4441 5441 5b20 4465 6669 6e65  <![CDATA[ Define\n-00002440: 7320 7468 6520 7365 7276 6963 6520 7461  s the service ta\n-00002450: 675d 5d3e 3c2f 7873 643a 646f 6375 6d65  g]]></xsd:docume\n-00002460: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00002470: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00002480: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00002490: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000024a0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-000024b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000024c0: 643a 6578 7465 6e73 696f 6e3e 0a20 2020  d:extension>.   \n-000024d0: 2020 2020 203c 2f78 7364 3a63 6f6d 706c       </xsd:compl\n-000024e0: 6578 436f 6e74 656e 743e 0a20 2020 203c  exContent>.    <\n-000024f0: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n-00002500: 3e0a 0a20 2020 203c 7873 643a 636f 6d70  >..    <xsd:comp\n-00002510: 6c65 7854 7970 6520 6e61 6d65 3d22 6162  lexType name=\"ab\n-00002520: 7374 7261 6374 5265 6665 7265 6e63 6554  stractReferenceT\n-00002530: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00002540: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-00002550: 743e 0a20 2020 2020 2020 2020 2020 203c  t>.            <\n-00002560: 7873 643a 6578 7465 6e73 696f 6e20 6261  xsd:extension ba\n-00002570: 7365 3d22 6162 7374 7261 6374 496e 7465  se=\"abstractInte\n-00002580: 7266 6163 6554 7970 6522 3e0a 2020 2020  rfaceType\">.    \n-00002590: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000025a0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-000025b0: 2276 6572 7369 6f6e 2220 7479 7065 3d22  \"version\" type=\"\n-000025c0: 7873 643a 7374 7269 6e67 2220 6465 6661  xsd:string\" defa\n-000025d0: 756c 743d 2230 2e30 2e30 223e 0a20 2020  ult=\"0.0.0\">.   \n-000025e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000025f0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00002600: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002610: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00002620: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00002630: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n-00002640: 6365 2076 6572 7369 6f6e 2e20 5d5d 3e3c  ce version. ]]><\n-00002650: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00002660: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00002670: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00002680: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00002690: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000026a0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-000026b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000026c0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-000026d0: 6772 6f75 7022 2074 7970 653d 2278 7364  group\" type=\"xsd\n-000026e0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-000026f0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002700: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00002710: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002720: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00002730: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00002740: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n-00002750: 6772 6f75 702e 205d 5d3e 3c2f 7873 643a  group. ]]></xsd:\n-00002760: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00002770: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002780: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00002790: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000027a0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-000027b0: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-000027c0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-000027d0: 6275 7465 206e 616d 653d 2263 6865 636b  bute name=\"check\n-000027e0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-000027f0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00002800: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00002810: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00002820: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002830: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00002840: 7469 6f6e 3e3c 215b 4344 4154 415b 2043  tion><![CDATA[ C\n-00002850: 6865 636b 2064 6570 656e 6465 6e63 7920  heck dependency \n-00002860: 7072 6f76 6964 6572 732e 205d 5d3e 3c2f  providers. ]]></\n-00002870: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002880: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00002890: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-000028a0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000028b0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-000028c0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-000028d0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-000028e0: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n-000028f0: 6e69 7422 2074 7970 653d 2278 7364 3a73  nit\" type=\"xsd:s\n-00002900: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00002910: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00002920: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00002930: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002940: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00002950: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00002960: 5b20 4561 6765 7220 696e 6974 2072 6566  [ Eager init ref\n-00002970: 6572 656e 6365 2e20 5d5d 3e3c 2f78 7364  erence. ]]></xsd\n-00002980: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00002990: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000029a0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-000029b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000029c0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-000029d0: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-000029e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000029f0: 6962 7574 6520 6e61 6d65 3d22 6765 6e65  ibute name=\"gene\n-00002a00: 7269 6322 2074 7970 653d 2278 7364 3a73  ric\" type=\"xsd:s\n-00002a10: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00002a20: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00002a30: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00002a40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002a50: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00002a60: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00002a70: 5b20 4765 6e65 7269 6320 7365 7276 6963  [ Generic servic\n-00002a80: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-00002a90: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00002aa0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00002ab0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00002ac0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002ad0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00002ae0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002af0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00002b00: 206e 616d 653d 2269 6e6a 766d 2220 7479   name=\"injvm\" ty\n-00002b10: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00002b20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002b30: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00002b40: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00002b50: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002b60: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00002b70: 3e3c 215b 4344 4154 415b 4465 7072 6563  ><![CDATA[Deprec\n-00002b80: 6174 6564 2e20 5265 706c 6163 6520 746f  ated. Replace to\n-00002b90: 2020 7365 7420 7363 6f70 653d 6c6f 6361    set scope=loca\n-00002ba0: 6c20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  l ]]></xsd:docum\n-00002bb0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00002bc0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00002bd0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00002be0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002bf0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00002c00: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002c10: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00002c20: 6e61 6d65 3d22 7374 6963 6b79 2220 7479  name=\"sticky\" ty\n-00002c30: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00002c40: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002c50: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00002c60: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00002c70: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002c80: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00002c90: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002ca0: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n-00002cb0: 5b43 4441 5441 5b20 456e 6162 6c65 2f44  [CDATA[ Enable/D\n-00002cc0: 6973 6162 6c65 2063 6c75 7374 6572 2073  isable cluster s\n-00002cd0: 7469 636b 7920 706f 6c69 6379 2e44 6566  ticky policy.Def\n-00002ce0: 6175 6c74 2066 616c 7365 205d 5d3e 3c2f  ault false ]]></\n-00002cf0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002d00: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00002d10: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00002d20: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00002d30: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00002d40: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00002d50: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00002d60: 7474 7269 6275 7465 206e 616d 653d 2272  ttribute name=\"r\n-00002d70: 6563 6f6e 6e65 6374 2220 7479 7065 3d22  econnect\" type=\"\n-00002d80: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00002d90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002da0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00002db0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002dc0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00002dd0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n+00002350: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+00002360: 5441 5b20 4465 6669 6e65 7320 7468 6520  TA[ Defines the \n+00002370: 7365 7276 6963 6520 7669 7369 6269 6c69  service visibili\n+00002380: 7479 2c20 6368 6f69 7365 3a5b 6c6f 6361  ty, choise:[loca\n+00002390: 6c20 7265 6d6f 7465 5d2e 2064 6566 6175  l remote]. defau\n+000023a0: 6c74 2069 7320 7265 6d6f 7465 2c20 7768  lt is remote, wh\n+000023b0: 6963 6820 6361 6e20 6265 2069 6e76 6f6b  ich can be invok\n+000023c0: 6564 2062 7920 6e65 7477 6f72 6be3 8082  ed by network...\n+000023d0: 2020 5d5d 3e3c 2f78 7364 3a64 6f63 756d    ]]></xsd:docum\n+000023e0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+000023f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002400: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002410: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002420: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00002430: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00002440: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00002450: 7465 206e 616d 653d 2274 6167 2220 7479  te name=\"tag\" ty\n+00002460: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00002470: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002480: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00002490: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000024a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000024b0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000024c0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000024d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000024e0: 203c 215b 4344 4154 415b 2044 6566 696e   <![CDATA[ Defin\n+000024f0: 6573 2074 6865 2073 6572 7669 6365 2074  es the service t\n+00002500: 6167 5d5d 3e3c 2f78 7364 3a64 6f63 756d  ag]]></xsd:docum\n+00002510: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00002520: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002530: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002540: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002550: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00002560: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00002570: 3c2f 7873 643a 6578 7465 6e73 696f 6e3e  </xsd:extension>\n+00002580: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00002590: 636f 6d70 6c65 7843 6f6e 7465 6e74 3e0d  complexContent>.\n+000025a0: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n+000025b0: 6578 5479 7065 3e0d 0a0d 0a20 2020 203c  exType>....    <\n+000025c0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n+000025d0: 6e61 6d65 3d22 6162 7374 7261 6374 5265  name=\"abstractRe\n+000025e0: 6665 7265 6e63 6554 7970 6522 3e0d 0a20  ferenceType\">.. \n+000025f0: 2020 2020 2020 203c 7873 643a 636f 6d70         <xsd:comp\n+00002600: 6c65 7843 6f6e 7465 6e74 3e0d 0a20 2020  lexContent>..   \n+00002610: 2020 2020 2020 2020 203c 7873 643a 6578           <xsd:ex\n+00002620: 7465 6e73 696f 6e20 6261 7365 3d22 6162  tension base=\"ab\n+00002630: 7374 7261 6374 496e 7465 7266 6163 6554  stractInterfaceT\n+00002640: 7970 6522 3e0d 0a20 2020 2020 2020 2020  ype\">..         \n+00002650: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00002660: 6962 7574 6520 6e61 6d65 3d22 7665 7273  ibute name=\"vers\n+00002670: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n+00002680: 7472 696e 6722 2064 6566 6175 6c74 3d22  tring\" default=\"\n+00002690: 302e 302e 3022 3e0d 0a20 2020 2020 2020  0.0.0\">..       \n+000026a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000026b0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000026c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000026d0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000026e0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+000026f0: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n+00002700: 7665 7273 696f 6e2e 205d 5d3e 3c2f 7873  version. ]]></xs\n+00002710: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00002720: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002730: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00002740: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002750: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00002760: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00002770: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00002780: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00002790: 6772 6f75 7022 2074 7970 653d 2278 7364  group\" type=\"xsd\n+000027a0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000027b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000027c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000027d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000027e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000027f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00002800: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+00002810: 6520 6772 6f75 702e 205d 5d3e 3c2f 7873  e group. ]]></xs\n+00002820: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00002830: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002840: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00002850: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002860: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00002870: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00002880: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00002890: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000028a0: 6368 6563 6b22 2074 7970 653d 2278 7364  check\" type=\"xsd\n+000028b0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000028c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000028d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000028e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000028f0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00002900: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00002910: 4441 5441 5b20 4368 6563 6b20 6465 7065  DATA[ Check depe\n+00002920: 6e64 656e 6379 2070 726f 7669 6465 7273  ndency providers\n+00002930: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00002940: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00002950: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002960: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002970: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002980: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00002990: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+000029a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000029b0: 7465 206e 616d 653d 2269 6e69 7422 2074  te name=\"init\" t\n+000029c0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000029d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000029e0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+000029f0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002a00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002a10: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00002a20: 696f 6e3e 3c21 5b43 4441 5441 5b20 4561  ion><![CDATA[ Ea\n+00002a30: 6765 7220 696e 6974 2072 6566 6572 656e  ger init referen\n+00002a40: 6365 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ce. ]]></xsd:doc\n+00002a50: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00002a60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002a70: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00002a80: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002a90: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00002aa0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00002ab0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00002ac0: 6275 7465 206e 616d 653d 2267 656e 6572  bute name=\"gener\n+00002ad0: 6963 2220 7479 7065 3d22 7873 643a 7374  ic\" type=\"xsd:st\n+00002ae0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00002af0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00002b00: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00002b10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002b20: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00002b30: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00002b40: 415b 2047 656e 6572 6963 2073 6572 7669  A[ Generic servi\n+00002b50: 6365 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ce. ]]></xsd:doc\n+00002b60: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00002b70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002b80: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00002b90: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002ba0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00002bb0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00002bc0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00002bd0: 6275 7465 206e 616d 653d 2269 6e6a 766d  bute name=\"injvm\n+00002be0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00002bf0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00002c00: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00002c10: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00002c20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002c30: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00002c40: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00002c50: 4465 7072 6563 6174 6564 2e20 5265 706c  Deprecated. Repl\n+00002c60: 6163 6520 746f 2020 7365 7420 7363 6f70  ace to  set scop\n+00002c70: 653d 6c6f 6361 6c20 5d5d 3e3c 2f78 7364  e=local ]]></xsd\n+00002c80: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00002c90: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002ca0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00002cb0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00002cc0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00002cd0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00002ce0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00002cf0: 7474 7269 6275 7465 206e 616d 653d 2273  ttribute name=\"s\n+00002d00: 7469 636b 7922 2074 7970 653d 2278 7364  ticky\" type=\"xsd\n+00002d10: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00002d20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002d30: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00002d40: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002d50: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00002d60: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00002d70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002d80: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+00002d90: 5441 5b20 456e 6162 6c65 2f44 6973 6162  TA[ Enable/Disab\n+00002da0: 6c65 2063 6c75 7374 6572 2073 7469 636b  le cluster stick\n+00002db0: 7920 706f 6c69 6379 2e44 6566 6175 6c74  y policy.Default\n+00002dc0: 2066 616c 7365 205d 5d3e 3c2f 7873 643a   false ]]></xsd:\n+00002dd0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n 00002de0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002df0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n-00002e00: 5441 5b20 7265 6d6f 7469 6e67 2072 6563  TA[ remoting rec\n-00002e10: 6f6e 6e65 6374 2074 696d 6572 2e20 6661  onnect timer. fa\n-00002e20: 6c73 6520 7265 7072 6573 656e 7420 636c  lse represent cl\n-00002e30: 6f73 6520 7265 636f 6e6e 6563 742e 2069  ose reconnect. i\n-00002e40: 6e74 6567 6572 2072 6570 7265 7365 6e74  nteger represent\n-00002e50: 2069 6e74 6572 7661 6c28 6d73 2920 2e64   interval(ms) .d\n-00002e60: 6566 6175 6c74 2074 7275 6528 3230 3030  efault true(2000\n-00002e70: 6d73 292e 5d5d 3e3c 2f78 7364 3a64 6f63  ms).]]></xsd:doc\n-00002e80: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00002e90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002ea0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00002eb0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002ec0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00002ed0: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-00002ee0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00002ef0: 6520 6e61 6d65 3d22 6c61 7a79 2220 7479  e name=\"lazy\" ty\n-00002f00: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00002f10: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002f20: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00002f30: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00002f40: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002f50: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00002f60: 3e3c 215b 4344 4154 415b 206c 617a 7920  ><![CDATA[ lazy \n-00002f70: 6372 6561 7465 2063 6f6e 6e65 6374 696f  create connectio\n-00002f80: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n-00002f90: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00002fa0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00002fb0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00002fc0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002fd0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00002fe0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002ff0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00003000: 206e 616d 653d 2270 726f 7669 6465 642d   name=\"provided-\n-00003010: 6279 2220 7479 7065 3d22 7873 643a 7374  by\" type=\"xsd:st\n-00003020: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00003030: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00003040: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00003050: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003060: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00003070: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003080: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003090: 2020 2020 3c21 5b43 4441 5441 5b20 6465      <![CDATA[ de\n-000030a0: 636c 6172 6573 2077 6869 6368 2061 7070  clares which app\n-000030b0: 206f 7220 7365 7276 6963 6520 7468 6973   or service this\n-000030c0: 2069 6e74 6572 6661 6365 2062 656c 6f6e   interface belon\n-000030d0: 6773 2074 6f2e 205d 5d3e 3c2f 7873 643a  gs to. ]]></xsd:\n-000030e0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-000030f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003100: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00003110: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00003120: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00003130: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00003140: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00003150: 6275 7465 206e 616d 653d 2272 6f75 7465  bute name=\"route\n-00003160: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n-00003170: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00003180: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00003190: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000031a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000031b0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-000031c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000031d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000031e0: 2020 203c 215b 4344 4154 415b 2054 6865     <![CDATA[ The\n-000031f0: 2072 6f75 7465 7273 205d 5d3e 3c2f 7873   routers ]]></xs\n-00003200: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003210: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003220: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00003230: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003240: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00003250: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00003260: 2020 2020 3c2f 7873 643a 6578 7465 6e73      </xsd:extens\n-00003270: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00003280: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-00003290: 743e 0a20 2020 203c 2f78 7364 3a63 6f6d  t>.    </xsd:com\n-000032a0: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-000032b0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-000032c0: 6e61 6d65 3d22 6162 7374 7261 6374 5365  name=\"abstractSe\n-000032d0: 7276 6963 6554 7970 6522 3e0a 2020 2020  rviceType\">.    \n-000032e0: 2020 2020 3c78 7364 3a63 6f6d 706c 6578      <xsd:complex\n-000032f0: 436f 6e74 656e 743e 0a20 2020 2020 2020  Content>.       \n-00003300: 2020 2020 203c 7873 643a 6578 7465 6e73       <xsd:extens\n-00003310: 696f 6e20 6261 7365 3d22 6162 7374 7261  ion base=\"abstra\n-00003320: 6374 496e 7465 7266 6163 6554 7970 6522  ctInterfaceType\"\n-00003330: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00003340: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00003350: 206e 616d 653d 2272 6567 6973 7465 7222   name=\"register\"\n-00003360: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00003370: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00003380: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00003390: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000033a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000033b0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000033c0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000033d0: 6520 7365 7276 6963 6520 6361 6e20 6265  e service can be\n-000033e0: 2072 6567 6973 7465 7220 746f 2072 6567   register to reg\n-000033f0: 6973 7472 792e 205d 5d3e 3c2f 7873 643a  istry. ]]></xsd:\n-00003400: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00003410: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003420: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00003430: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00003440: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00003450: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00003460: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00003470: 6275 7465 206e 616d 653d 2276 6572 7369  bute name=\"versi\n-00003480: 6f6e 2220 7479 7065 3d22 7873 643a 7374  on\" type=\"xsd:st\n-00003490: 7269 6e67 2220 6465 6661 756c 743d 2230  ring\" default=\"0\n-000034a0: 2e30 2e30 223e 0a20 2020 2020 2020 2020  .0.0\">.         \n-000034b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000034c0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000034d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000034e0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000034f0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00003500: 2054 6865 2073 6572 7669 6365 2076 6572   The service ver\n-00003510: 7369 6f6e 2e20 5d5d 3e3c 2f78 7364 3a64  sion. ]]></xsd:d\n-00003520: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00003530: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003540: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00003550: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00003560: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00003570: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-00003580: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00003590: 7574 6520 6e61 6d65 3d22 6772 6f75 7022  ute name=\"group\"\n-000035a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-000035b0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-000035c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000035d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000035e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000035f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00003600: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00003610: 6520 7365 7276 6963 6520 6772 6f75 702e  e service group.\n-00003620: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00003630: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00003640: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003650: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00003660: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003670: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00003680: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003690: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-000036a0: 616d 653d 2264 6570 7265 6361 7465 6422  ame=\"deprecated\"\n-000036b0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-000036c0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-000036d0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000036e0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000036f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003700: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00003710: 696f 6e3e 3c21 5b43 4441 5441 5b20 7768  ion><![CDATA[ wh\n-00003720: 6574 6865 7220 7468 6520 7365 7276 6963  ether the servic\n-00003730: 6520 6973 2064 6570 7265 6361 7465 642e  e is deprecated.\n-00003740: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00003750: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00003760: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003770: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00003780: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003790: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-000037a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000037b0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-000037c0: 616d 653d 2264 656c 6179 2220 7479 7065  ame=\"delay\" type\n-000037d0: 3d22 7873 643a 7374 7269 6e67 2220 6465  =\"xsd:string\" de\n-000037e0: 6661 756c 743d 2230 223e 0a20 2020 2020  fault=\"0\">.     \n-000037f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003800: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00003810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003820: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00003830: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00003840: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003850: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-00003860: 5b20 5468 6520 7365 7276 6963 6520 6578  [ The service ex\n-00003870: 706f 7274 2064 656c 6179 206d 696c 6c69  port delay milli\n-00003880: 7365 636f 6e64 2e20 5d5d 3e0a 2020 2020  second. ]]>.    \n-00003890: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000038a0: 2020 2020 3c2f 7873 643a 646f 6375 6d65      </xsd:docume\n-000038b0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000038c0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-000038d0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000038e0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000038f0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n+00002df0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00002e00: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00002e10: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00002e20: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00002e30: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+00002e40: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n+00002e50: 636f 6e6e 6563 7422 2074 7970 653d 2278  connect\" type=\"x\n+00002e60: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00002e70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002e80: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00002e90: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00002ea0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00002eb0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00002ec0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002ed0: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n+00002ee0: 4441 5441 5b20 7265 6d6f 7469 6e67 2072  DATA[ remoting r\n+00002ef0: 6563 6f6e 6e65 6374 2074 696d 6572 2e20  econnect timer. \n+00002f00: 6661 6c73 6520 7265 7072 6573 656e 7420  false represent \n+00002f10: 636c 6f73 6520 7265 636f 6e6e 6563 742e  close reconnect.\n+00002f20: 2069 6e74 6567 6572 2072 6570 7265 7365   integer represe\n+00002f30: 6e74 2069 6e74 6572 7661 6c28 6d73 2920  nt interval(ms) \n+00002f40: 2e64 6566 6175 6c74 2074 7275 6528 3230  .default true(20\n+00002f50: 3030 6d73 292e 5d5d 3e3c 2f78 7364 3a64  00ms).]]></xsd:d\n+00002f60: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00002f70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002f80: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00002f90: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00002fa0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00002fb0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00002fc0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00002fd0: 7269 6275 7465 206e 616d 653d 226c 617a  ribute name=\"laz\n+00002fe0: 7922 2074 7970 653d 2278 7364 3a73 7472  y\" type=\"xsd:str\n+00002ff0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00003000: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00003010: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00003020: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003030: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00003040: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00003050: 5b20 6c61 7a79 2063 7265 6174 6520 636f  [ lazy create co\n+00003060: 6e6e 6563 7469 6f6e 2e20 5d5d 3e3c 2f78  nnection. ]]></x\n+00003070: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00003080: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003090: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+000030a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000030b0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000030c0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+000030d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000030e0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000030f0: 2270 726f 7669 6465 642d 6279 2220 7479  \"provided-by\" ty\n+00003100: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00003110: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003120: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00003130: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00003140: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003150: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00003160: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003170: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003180: 203c 215b 4344 4154 415b 2064 6563 6c61   <![CDATA[ decla\n+00003190: 7265 7320 7768 6963 6820 6170 7020 6f72  res which app or\n+000031a0: 2073 6572 7669 6365 2074 6869 7320 696e   service this in\n+000031b0: 7465 7266 6163 6520 6265 6c6f 6e67 7320  terface belongs \n+000031c0: 746f 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  to. ]]></xsd:doc\n+000031d0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000031e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000031f0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00003200: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00003210: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00003220: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00003230: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00003240: 6275 7465 206e 616d 653d 2272 6f75 7465  bute name=\"route\n+00003250: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+00003260: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00003270: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00003280: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00003290: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000032a0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+000032b0: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+000032c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000032d0: 2020 2020 2020 3c21 5b43 4441 5441 5b20        <![CDATA[ \n+000032e0: 5468 6520 726f 7574 6572 7320 5d5d 3e3c  The routers ]]><\n+000032f0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00003300: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003310: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00003320: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00003330: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00003340: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00003350: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00003360: 6578 7465 6e73 696f 6e3e 0d0a 2020 2020  extension>..    \n+00003370: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n+00003380: 7843 6f6e 7465 6e74 3e0d 0a20 2020 203c  xContent>..    <\n+00003390: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n+000033a0: 3e0d 0a0d 0a20 2020 203c 7873 643a 636f  >....    <xsd:co\n+000033b0: 6d70 6c65 7854 7970 6520 6e61 6d65 3d22  mplexType name=\"\n+000033c0: 6162 7374 7261 6374 5365 7276 6963 6554  abstractServiceT\n+000033d0: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+000033e0: 7873 643a 636f 6d70 6c65 7843 6f6e 7465  xsd:complexConte\n+000033f0: 6e74 3e0d 0a20 2020 2020 2020 2020 2020  nt>..           \n+00003400: 203c 7873 643a 6578 7465 6e73 696f 6e20   <xsd:extension \n+00003410: 6261 7365 3d22 6162 7374 7261 6374 496e  base=\"abstractIn\n+00003420: 7465 7266 6163 6554 7970 6522 3e0d 0a20  terfaceType\">.. \n+00003430: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003440: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00003450: 6d65 3d22 7265 6769 7374 6572 2220 7479  me=\"register\" ty\n+00003460: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00003470: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003480: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00003490: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000034a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000034b0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000034c0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+000034d0: 2073 6572 7669 6365 2063 616e 2062 6520   service can be \n+000034e0: 7265 6769 7374 6572 2074 6f20 7265 6769  register to regi\n+000034f0: 7374 7279 2e20 5d5d 3e3c 2f78 7364 3a64  stry. ]]></xsd:d\n+00003500: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00003510: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003520: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00003530: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00003540: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00003550: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00003560: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00003570: 7269 6275 7465 206e 616d 653d 2276 6572  ribute name=\"ver\n+00003580: 7369 6f6e 2220 7479 7065 3d22 7873 643a  sion\" type=\"xsd:\n+00003590: 7374 7269 6e67 2220 6465 6661 756c 743d  string\" default=\n+000035a0: 2230 2e30 2e30 223e 0d0a 2020 2020 2020  \"0.0.0\">..      \n+000035b0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000035c0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000035d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000035e0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+000035f0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00003600: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n+00003610: 2076 6572 7369 6f6e 2e20 5d5d 3e3c 2f78   version. ]]></x\n+00003620: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00003630: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003640: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00003650: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00003660: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00003670: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00003680: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00003690: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000036a0: 2267 726f 7570 2220 7479 7065 3d22 7873  \"group\" type=\"xs\n+000036b0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+000036c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000036d0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+000036e0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000036f0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00003700: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00003710: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n+00003720: 6365 2067 726f 7570 2e20 5d5d 3e3c 2f78  ce group. ]]></x\n+00003730: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00003740: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003750: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00003760: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00003770: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00003780: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00003790: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000037a0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000037b0: 2264 6570 7265 6361 7465 6422 2074 7970  \"deprecated\" typ\n+000037c0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+000037d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000037e0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000037f0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00003800: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003810: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00003820: 6e3e 3c21 5b43 4441 5441 5b20 7768 6574  n><![CDATA[ whet\n+00003830: 6865 7220 7468 6520 7365 7276 6963 6520  her the service \n+00003840: 6973 2064 6570 7265 6361 7465 642e 205d  is deprecated. ]\n+00003850: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00003860: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00003870: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00003880: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00003890: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000038a0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+000038b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000038c0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000038d0: 6e61 6d65 3d22 6465 6c61 7922 2074 7970  name=\"delay\" typ\n+000038e0: 653d 2278 7364 3a73 7472 696e 6722 2064  e=\"xsd:string\" d\n+000038f0: 6566 6175 6c74 3d22 3022 3e0d 0a20 2020  efault=\"0\">..   \n 00003900: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003910: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00003920: 616d 653d 2265 7870 6f72 7422 2074 7970  ame=\"export\" typ\n-00003930: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00003940: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003950: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00003960: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00003970: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00003980: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003990: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000039a0: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n-000039b0: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n-000039c0: 6365 2069 7320 6578 706f 7274 2e20 5d5d  ce is export. ]]\n-000039d0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000039e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000039f0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00003a00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003a10: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00003a20: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00003a30: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00003a40: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00003a50: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00003a60: 6275 7465 206e 616d 653d 2277 6569 6768  bute name=\"weigh\n-00003a70: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-00003a80: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00003a90: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00003aa0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n+00003910: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00003920: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003930: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00003940: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00003950: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003960: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n+00003970: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+00003980: 6520 6578 706f 7274 2064 656c 6179 206d  e export delay m\n+00003990: 696c 6c69 7365 636f 6e64 2e20 5d5d 3e0d  illisecond. ]]>.\n+000039a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000039b0: 2020 2020 2020 2020 203c 2f78 7364 3a64           </xsd:d\n+000039c0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+000039d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000039e0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+000039f0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00003a00: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00003a10: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00003a20: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00003a30: 7269 6275 7465 206e 616d 653d 2265 7870  ribute name=\"exp\n+00003a40: 6f72 7422 2074 7970 653d 2278 7364 3a73  ort\" type=\"xsd:s\n+00003a50: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00003a60: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00003a70: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00003a80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003a90: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00003aa0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n 00003ab0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003ac0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00003ad0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003ae0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003af0: 2020 203c 215b 4344 4154 415b 2054 6865     <![CDATA[ The\n-00003b00: 2073 6572 7669 6365 2077 6569 6768 742e   service weight.\n-00003b10: 205d 5d3e 0a20 2020 2020 2020 2020 2020   ]]>.           \n-00003b20: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003b30: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00003b40: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00003b50: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00003b60: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003b70: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00003b80: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00003b90: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00003ba0: 7472 6962 7574 6520 6e61 6d65 3d22 646f  tribute name=\"do\n-00003bb0: 6375 6d65 6e74 2220 7479 7065 3d22 7873  cument\" type=\"xs\n-00003bc0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00003bd0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003be0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00003bf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003c00: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00003c10: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00003c20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003c30: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-00003c40: 5b20 5468 6520 7365 7276 6963 6520 646f  [ The service do\n-00003c50: 6375 6d65 6e74 2e20 5d5d 3e0a 2020 2020  cument. ]]>.    \n-00003c60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003c70: 2020 2020 3c2f 7873 643a 646f 6375 6d65      </xsd:docume\n-00003c80: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n+00003ac0: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00003ad0: 5b20 5468 6520 7365 7276 6963 6520 6973  [ The service is\n+00003ae0: 2065 7870 6f72 742e 205d 5d3e 0d0a 2020   export. ]]>..  \n+00003af0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003b00: 2020 2020 2020 3c2f 7873 643a 646f 6375        </xsd:docu\n+00003b10: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00003b20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003b30: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00003b40: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003b50: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00003b60: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00003b70: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00003b80: 7574 6520 6e61 6d65 3d22 7765 6967 6874  ute name=\"weight\n+00003b90: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00003ba0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00003bb0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00003bc0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00003bd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003be0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00003bf0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00003c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003c10: 2020 2020 203c 215b 4344 4154 415b 2054       <![CDATA[ T\n+00003c20: 6865 2073 6572 7669 6365 2077 6569 6768  he service weigh\n+00003c30: 742e 205d 5d3e 0d0a 2020 2020 2020 2020  t. ]]>..        \n+00003c40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003c50: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00003c60: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00003c70: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00003c80: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n 00003c90: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003ca0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n+00003ca0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n 00003cb0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003cc0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00003cd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003ce0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00003cf0: 616d 653d 2264 796e 616d 6963 2220 7479  ame=\"dynamic\" ty\n-00003d00: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00003d10: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003d20: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00003d30: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00003d40: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00003d50: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00003d60: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00003d70: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n-00003d80: 5b43 4441 5441 5b20 7468 6520 7365 7276  [CDATA[ the serv\n-00003d90: 6963 6520 7265 6769 7374 6572 6564 2074  ice registered t\n-00003da0: 6f20 7468 6520 7265 6769 7374 7279 2069  o the registry i\n-00003db0: 7320 6479 6e61 6d69 6328 7472 7565 2920  s dynamic(true) \n-00003dc0: 6f72 2073 7461 7469 6328 6661 6c73 6529  or static(false)\n-00003dd0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00003de0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00003df0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00003e00: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00003e10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003e20: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00003e30: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003e40: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00003e50: 6e61 6d65 3d22 746f 6b65 6e22 2074 7970  name=\"token\" typ\n-00003e60: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00003e70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003e80: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00003e90: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00003ea0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00003eb0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003ec0: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00003ed0: 7276 6963 6520 7573 6520 746f 6b65 6e2e  rvice use token.\n-00003ee0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00003ef0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00003f00: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003f10: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n+00003cc0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00003cd0: 6d65 3d22 646f 6375 6d65 6e74 2220 7479  me=\"document\" ty\n+00003ce0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00003cf0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003d00: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00003d10: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00003d20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003d30: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00003d40: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003d50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003d60: 203c 215b 4344 4154 415b 2054 6865 2073   <![CDATA[ The s\n+00003d70: 6572 7669 6365 2064 6f63 756d 656e 742e  ervice document.\n+00003d80: 205d 5d3e 0d0a 2020 2020 2020 2020 2020   ]]>..          \n+00003d90: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00003da0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00003db0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00003dc0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00003dd0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00003de0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00003df0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00003e00: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00003e10: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00003e20: 3d22 6479 6e61 6d69 6322 2074 7970 653d  =\"dynamic\" type=\n+00003e30: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00003e40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003e50: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00003e60: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003e70: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00003e80: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00003e90: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003ea0: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n+00003eb0: 5b43 4441 5441 5b20 7468 6520 7365 7276  [CDATA[ the serv\n+00003ec0: 6963 6520 7265 6769 7374 6572 6564 2074  ice registered t\n+00003ed0: 6f20 7468 6520 7265 6769 7374 7279 2069  o the registry i\n+00003ee0: 7320 6479 6e61 6d69 6328 7472 7565 2920  s dynamic(true) \n+00003ef0: 6f72 2073 7461 7469 6328 6661 6c73 6529  or static(false)\n+00003f00: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00003f10: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n 00003f20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003f30: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00003f40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003f50: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00003f60: 616d 653d 2261 6363 6573 736c 6f67 2220  ame=\"accesslog\" \n-00003f70: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00003f80: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00003f90: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00003fa0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003fb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003fc0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00003fd0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00003fe0: 2073 6572 7669 6365 2075 7365 2061 6363   service use acc\n-00003ff0: 6573 736c 6f67 2e20 5d5d 3e3c 2f78 7364  esslog. ]]></xsd\n-00004000: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00004010: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004020: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00004030: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00004040: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00004050: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-00004060: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00004070: 6962 7574 6520 6e61 6d65 3d22 6578 6563  ibute name=\"exec\n-00004080: 7574 6573 2220 7479 7065 3d22 7873 643a  utes\" type=\"xsd:\n-00004090: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000040a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000040b0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n+00003f30: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00003f40: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003f50: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00003f60: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00003f70: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00003f80: 7465 206e 616d 653d 2274 6f6b 656e 2220  te name=\"token\" \n+00003f90: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00003fa0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00003fb0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00003fc0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00003fd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003fe0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00003ff0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00004000: 6865 2073 6572 7669 6365 2075 7365 2074  he service use t\n+00004010: 6f6b 656e 2e20 5d5d 3e3c 2f78 7364 3a64  oken. ]]></xsd:d\n+00004020: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00004030: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004040: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00004050: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00004060: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00004070: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00004080: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00004090: 7269 6275 7465 206e 616d 653d 2261 6363  ribute name=\"acc\n+000040a0: 6573 736c 6f67 2220 7479 7065 3d22 7873  esslog\" type=\"xs\n+000040b0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n 000040c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000040d0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000040e0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000040f0: 415b 2054 6865 2073 6572 7669 6365 2061  A[ The service a\n-00004100: 6c6c 6f77 2065 7865 6375 7465 2072 6571  llow execute req\n-00004110: 7565 7374 732e 205d 5d3e 3c2f 7873 643a  uests. ]]></xsd:\n-00004120: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00004130: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004140: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00004150: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004160: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00004170: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00004180: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00004190: 6275 7465 206e 616d 653d 2270 726f 746f  bute name=\"proto\n-000041a0: 636f 6c22 2074 7970 653d 2278 7364 3a73  col\" type=\"xsd:s\n-000041b0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000041c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000041d0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000041e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000041f0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00004200: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00004210: 5b20 5468 6520 7365 7276 6963 6520 7072  [ The service pr\n-00004220: 6f74 6f63 6f6c 2e20 5d5d 3e3c 2f78 7364  otocol. ]]></xsd\n-00004230: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00004240: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004250: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00004260: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00004270: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00004280: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-00004290: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000042a0: 6962 7574 6520 6e61 6d65 3d22 7761 726d  ibute name=\"warm\n-000042b0: 7570 2220 7479 7065 3d22 7873 643a 7374  up\" type=\"xsd:st\n-000042c0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-000042d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000042e0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000042f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004300: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00004310: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00004320: 2054 6865 2077 6172 6d75 7020 7469 6d65   The warmup time\n-00004330: 2069 6e20 4d69 6c6c 6973 6563 6f6e 6473   in Milliseconds\n-00004340: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00004350: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00004360: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00004370: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00004380: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004390: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-000043a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000043b0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-000043c0: 6e61 6d65 3d22 7365 7269 616c 697a 6174  name=\"serializat\n-000043d0: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n-000043e0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000043f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00004400: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n+000040d0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+000040e0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000040f0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00004100: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00004110: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n+00004120: 6365 2075 7365 2061 6363 6573 736c 6f67  ce use accesslog\n+00004130: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00004140: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00004150: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00004160: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00004170: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00004180: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00004190: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+000041a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000041b0: 7465 206e 616d 653d 2265 7865 6375 7465  te name=\"execute\n+000041c0: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n+000041d0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+000041e0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000041f0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00004200: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004210: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00004220: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00004230: 5b20 5468 6520 7365 7276 6963 6520 616c  [ The service al\n+00004240: 6c6f 7720 6578 6563 7574 6520 7265 7175  low execute requ\n+00004250: 6573 7473 2e20 5d5d 3e3c 2f78 7364 3a64  ests. ]]></xsd:d\n+00004260: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00004270: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004280: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00004290: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000042a0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+000042b0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+000042c0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000042d0: 7269 6275 7465 206e 616d 653d 2270 726f  ribute name=\"pro\n+000042e0: 746f 636f 6c22 2074 7970 653d 2278 7364  tocol\" type=\"xsd\n+000042f0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00004300: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00004310: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004320: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00004330: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00004340: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00004350: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+00004360: 6520 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c  e protocol. ]]><\n+00004370: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00004380: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004390: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000043a0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000043b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000043c0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000043d0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000043e0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+000043f0: 653d 2277 6172 6d75 7022 2074 7970 653d  e=\"warmup\" type=\n+00004400: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n 00004410: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004420: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00004430: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00004440: 5b20 5468 6520 7365 7269 616c 697a 6174  [ The serializat\n-00004450: 696f 6e20 7072 6f74 6f63 6f6c 206f 6620  ion protocol of \n-00004460: 7365 7276 6963 652e 205d 5d3e 3c2f 7873  service. ]]></xs\n-00004470: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00004480: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00004490: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-000044a0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000044b0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000044c0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000044d0: 2020 2020 2020 2020 3c78 7364 3a61 6e79          <xsd:any\n-000044e0: 4174 7472 6962 7574 6520 6e61 6d65 7370  Attribute namesp\n-000044f0: 6163 653d 2223 236f 7468 6572 2220 7072  ace=\"##other\" pr\n-00004500: 6f63 6573 7343 6f6e 7465 6e74 733d 226c  ocessContents=\"l\n-00004510: 6178 222f 3e0a 2020 2020 2020 2020 2020  ax\"/>.          \n-00004520: 2020 3c2f 7873 643a 6578 7465 6e73 696f    </xsd:extensio\n-00004530: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00004540: 3a63 6f6d 706c 6578 436f 6e74 656e 743e  :complexContent>\n-00004550: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n-00004560: 6578 5479 7065 3e0a 0a20 2020 203c 7873  exType>..    <xs\n-00004570: 643a 636f 6d70 6c65 7854 7970 6520 6e61  d:complexType na\n-00004580: 6d65 3d22 6170 706c 6963 6174 696f 6e54  me=\"applicationT\n-00004590: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-000045a0: 7364 3a73 6571 7565 6e63 6520 6d69 6e4f  sd:sequence minO\n-000045b0: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n-000045c0: 7572 733d 2275 6e62 6f75 6e64 6564 223e  urs=\"unbounded\">\n-000045d0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-000045e0: 643a 656c 656d 656e 7420 7265 663d 2270  d:element ref=\"p\n-000045f0: 6172 616d 6574 6572 2220 6d69 6e4f 6363  arameter\" minOcc\n-00004600: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n-00004610: 733d 2275 6e62 6f75 6e64 6564 222f 3e0a  s=\"unbounded\"/>.\n-00004620: 2020 2020 2020 2020 3c2f 7873 643a 7365          </xsd:se\n-00004630: 7175 656e 6365 3e0a 2020 2020 2020 2020  quence>.        \n-00004640: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00004650: 616d 653d 2269 6422 2074 7970 653d 2278  ame=\"id\" type=\"x\n-00004660: 7364 3a49 4422 3e0a 2020 2020 2020 2020  sd:ID\">.        \n-00004670: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00004680: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004690: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000046a0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000046b0: 5b20 5468 6520 756e 6971 7565 2069 6465  [ The unique ide\n-000046c0: 6e74 6966 6965 7220 666f 7220 6120 6265  ntifier for a be\n-000046d0: 616e 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  an. ]]></xsd:doc\n-000046e0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-000046f0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00004700: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00004710: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00004720: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00004730: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00004740: 6e61 6d65 2220 7479 7065 3d22 7873 643a  name\" type=\"xsd:\n-00004750: 7374 7269 6e67 2220 7573 653d 2272 6571  string\" use=\"req\n-00004760: 7569 7265 6422 3e0a 2020 2020 2020 2020  uired\">.        \n-00004770: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00004780: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004790: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000047a0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000047b0: 5b20 5468 6520 6170 706c 6963 6174 696f  [ The applicatio\n-000047c0: 6e20 6e61 6d65 2e20 5d5d 3e3c 2f78 7364  n name. ]]></xsd\n-000047d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-000047e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000047f0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004800: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00004810: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00004820: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00004830: 6d65 3d22 7665 7273 696f 6e22 2074 7970  me=\"version\" typ\n-00004840: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00004850: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00004860: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00004870: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00004880: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00004890: 3c21 5b43 4441 5441 5b20 5468 6520 6170  <![CDATA[ The ap\n-000048a0: 706c 6963 6174 696f 6e20 7665 7273 696f  plication versio\n-000048b0: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n-000048c0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000048d0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-000048e0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000048f0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00004900: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00004910: 7474 7269 6275 7465 206e 616d 653d 226f  ttribute name=\"o\n-00004920: 776e 6572 2220 7479 7065 3d22 7873 643a  wner\" type=\"xsd:\n-00004930: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00004940: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00004950: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00004960: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00004970: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00004980: 415b 2054 6865 2061 7070 6c69 6361 7469  A[ The applicati\n-00004990: 6f6e 206f 776e 6572 206e 616d 6520 2865  on owner name (e\n-000049a0: 6d61 696c 2070 7265 6669 7829 2e20 5d5d  mail prefix). ]]\n-000049b0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-000049c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000049d0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-000049e0: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-000049f0: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00004a00: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00004a10: 7574 6520 6e61 6d65 3d22 6f72 6761 6e69  ute name=\"organi\n-00004a20: 7a61 7469 6f6e 2220 7479 7065 3d22 7873  zation\" type=\"xs\n-00004a30: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00004a40: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00004a50: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004a60: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00004a70: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00004a80: 4154 415b 2054 6865 206f 7267 616e 697a  ATA[ The organiz\n-00004a90: 6174 696f 6e20 6e61 6d65 2e20 5d5d 3e3c  ation name. ]]><\n-00004aa0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00004ab0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00004ac0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00004ad0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00004ae0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00004af0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00004b00: 6520 6e61 6d65 3d22 6172 6368 6974 6563  e name=\"architec\n-00004b10: 7475 7265 2220 7479 7065 3d22 7873 643a  ture\" type=\"xsd:\n-00004b20: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00004b30: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00004b40: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00004b50: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00004b60: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00004b70: 415b 2054 6865 2061 7263 6869 7465 6374  A[ The architect\n-00004b80: 7572 652e 205d 5d3e 3c2f 7873 643a 646f  ure. ]]></xsd:do\n-00004b90: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00004ba0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00004bb0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00004bc0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00004bd0: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00004be0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00004bf0: 2265 6e76 6972 6f6e 6d65 6e74 2220 7479  \"environment\" ty\n-00004c00: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00004c10: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00004c20: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004c30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00004c40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00004c50: 3e3c 215b 4344 4154 415b 2054 6865 2061  ><![CDATA[ The a\n-00004c60: 7070 6c69 6361 7469 6f6e 2065 6e76 6972  pplication envir\n-00004c70: 6f6e 6d65 6e74 2c20 6567 3a20 6465 762f  onment, eg: dev/\n-00004c80: 7465 7374 2f72 756e 205d 5d3e 3c2f 7873  test/run ]]></xs\n-00004c90: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00004ca0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00004cb0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00004cc0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00004cd0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00004ce0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00004cf0: 616d 653d 2263 6f6d 7069 6c65 7222 2074  ame=\"compiler\" t\n-00004d00: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00004d10: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00004d20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00004d30: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00004d40: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00004d50: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00004d60: 6a61 7661 2063 6f64 6520 636f 6d70 696c  java code compil\n-00004d70: 6572 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  er. ]]></xsd:doc\n-00004d80: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00004d90: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00004da0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00004db0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00004dc0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00004dd0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00004de0: 6c6f 6767 6572 2220 7479 7065 3d22 7873  logger\" type=\"xs\n-00004df0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00004e00: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00004e10: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004e20: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00004e30: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00004e40: 4154 415b 2054 6865 2061 7070 6c69 6361  ATA[ The applica\n-00004e50: 7469 6f6e 206c 6f67 6765 722e 205d 5d3e  tion logger. ]]>\n-00004e60: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00004e70: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004e80: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00004e90: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00004ea0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00004eb0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00004ec0: 7465 206e 616d 653d 2272 6567 6973 7472  te name=\"registr\n-00004ed0: 7922 2074 7970 653d 2278 7364 3a73 7472  y\" type=\"xsd:str\n-00004ee0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00004ef0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00004f00: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00004f10: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00004f20: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00004f30: 5468 6520 6170 706c 6963 6174 696f 6e20  The application \n-00004f40: 7265 6769 7374 7279 2e20 5d5d 3e3c 2f78  registry. ]]></x\n-00004f50: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00004f60: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00004f70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00004f80: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00004f90: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00004fa0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00004fb0: 6e61 6d65 3d22 6d6f 6e69 746f 7222 2074  name=\"monitor\" t\n-00004fc0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00004fd0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00004fe0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00004ff0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00005000: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005010: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00005020: 6170 706c 6963 6174 696f 6e20 6d6f 6e69  application moni\n-00005030: 746f 722e 205d 5d3e 3c2f 7873 643a 646f  tor. ]]></xsd:do\n-00005040: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00005050: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00005060: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00005070: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00005080: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00005090: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-000050a0: 2273 6875 7477 6169 7422 2074 7970 653d  \"shutwait\" type=\n-000050b0: 2278 7364 3a73 7472 696e 6722 203e 0a20  \"xsd:string\" >. \n-000050c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000050d0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000050e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000050f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00005100: 215b 4344 4154 415b 2054 6865 2061 7070  ![CDATA[ The app\n-00005110: 6c69 6361 7469 6f6e 2073 6875 7444 6f77  lication shutDow\n-00005120: 6e2d 7761 6974 2074 696d 652e 205d 5d3e  n-wait time. ]]>\n-00005130: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00005140: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00005150: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00005160: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00005170: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00005180: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00005190: 7465 206e 616d 653d 2264 6566 6175 6c74  te name=\"default\n-000051a0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-000051b0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-000051c0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000051d0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000051e0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000051f0: 7469 6f6e 3e3c 215b 4344 4154 415b 2049  tion><![CDATA[ I\n-00005200: 7320 6465 6661 756c 742e 205d 5d3e 3c2f  s default. ]]></\n-00005210: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005220: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00005230: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00005240: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00005250: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00005260: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00005270: 206e 616d 653d 226d 6574 6164 6174 612d   name=\"metadata-\n-00005280: 7479 7065 2220 7479 7065 3d22 7873 643a  type\" type=\"xsd:\n-00005290: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000052a0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000052b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000052c0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000052d0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000052e0: 415b 2054 6865 206d 6574 6164 7461 2074  A[ The metadta t\n-000052f0: 7970 653a 206c 6f63 616c 206f 7220 7265  ype: local or re\n-00005300: 6d6f 7465 2e20 5d5d 3e3c 2f78 7364 3a64  mote. ]]></xsd:d\n-00005310: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00005320: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00005330: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00005340: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00005350: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00005360: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00005370: 3d22 7265 6769 7374 6572 2d63 6f6e 7375  =\"register-consu\n-00005380: 6d65 7222 2074 7970 653d 2278 7364 3a62  mer\" type=\"xsd:b\n-00005390: 6f6f 6c65 616e 223e 0a20 2020 2020 2020  oolean\">.       \n-000053a0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000053b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000053c0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000053d0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000053e0: 415b 2052 6567 6973 7465 7220 636f 6e73  A[ Register cons\n-000053f0: 756d 6572 2069 6e73 7461 6e63 6520 6f72  umer instance or\n-00005400: 206e 6f74 2c20 6465 6661 756c 7420 6661   not, default fa\n-00005410: 6c73 652e 205d 5d3e 3c2f 7873 643a 646f  lse. ]]></xsd:do\n-00005420: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00005430: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00005440: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00005450: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00005460: 7465 3e0a 0a20 2020 203c 2f78 7364 3a63  te>..    </xsd:c\n-00005470: 6f6d 706c 6578 5479 7065 3e0a 0a20 2020  omplexType>..   \n-00005480: 203c 7873 643a 636f 6d70 6c65 7854 7970   <xsd:complexTyp\n-00005490: 6520 6e61 6d65 3d22 6d6f 6475 6c65 5479  e name=\"moduleTy\n-000054a0: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-000054b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000054c0: 3d22 6964 2220 7479 7065 3d22 7873 643a  =\"id\" type=\"xsd:\n-000054d0: 4944 223e 0a20 2020 2020 2020 2020 2020  ID\">.           \n-000054e0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000054f0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00005500: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00005510: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00005520: 6865 2075 6e69 7175 6520 6964 656e 7469  he unique identi\n-00005530: 6669 6572 2066 6f72 2061 2062 6561 6e2e  fier for a bean.\n-00005540: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00005550: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00005560: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00005570: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00005580: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00005590: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000055a0: 7269 6275 7465 206e 616d 653d 226e 616d  ribute name=\"nam\n-000055b0: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-000055c0: 696e 6722 2075 7365 3d22 7265 7175 6972  ing\" use=\"requir\n-000055d0: 6564 223e 0a20 2020 2020 2020 2020 2020  ed\">.           \n-000055e0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000055f0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00005600: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00005610: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00005620: 6865 206d 6f64 756c 6520 6e61 6d65 2e20  he module name. \n-00005630: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00005640: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00005650: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00005660: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00005670: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00005680: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00005690: 6962 7574 6520 6e61 6d65 3d22 7665 7273  ibute name=\"vers\n-000056a0: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n-000056b0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000056c0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000056d0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000056e0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000056f0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00005700: 5b20 5468 6520 6d6f 6475 6c65 2076 6572  [ The module ver\n-00005710: 7369 6f6e 2e20 5d5d 3e3c 2f78 7364 3a64  sion. ]]></xsd:d\n-00005720: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00005730: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00005740: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00005750: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00005760: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00005770: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00005780: 3d22 6f77 6e65 7222 2074 7970 653d 2278  =\"owner\" type=\"x\n-00005790: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000057a0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000057b0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000057c0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000057d0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000057e0: 4441 5441 5b20 5468 6520 6d6f 6475 6c65  DATA[ The module\n-000057f0: 206f 776e 6572 206e 616d 6520 2865 6d61   owner name (ema\n-00005800: 696c 2070 7265 6669 7829 2e20 5d5d 3e3c  il prefix). ]]><\n-00005810: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00005820: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00005830: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00005840: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00005850: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00005860: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00005870: 6520 6e61 6d65 3d22 6f72 6761 6e69 7a61  e name=\"organiza\n-00005880: 7469 6f6e 2220 7479 7065 3d22 7873 643a  tion\" type=\"xsd:\n-00005890: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000058a0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000058b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000058c0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000058d0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000058e0: 415b 2054 6865 206d 6f64 756c 6520 6f72  A[ The module or\n-000058f0: 6761 6e69 7a61 7469 6f6e 2e20 5d5d 3e3c  ganization. ]]><\n-00005900: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00005910: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00005920: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00005930: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00005940: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00005950: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00005960: 6520 6e61 6d65 3d22 7265 6769 7374 7279  e name=\"registry\n-00005970: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00005980: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00005990: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000059a0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000059b0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000059c0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-000059d0: 6865 206d 6f64 756c 6520 7265 6769 7374  he module regist\n-000059e0: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n-000059f0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00005a00: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00005a10: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00005a20: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00005a30: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00005a40: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00005a50: 6d6f 6e69 746f 7222 2074 7970 653d 2278  monitor\" type=\"x\n-00005a60: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00005a70: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00005a80: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00005a90: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00005aa0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00005ab0: 4441 5441 5b20 5468 6520 6d6f 6475 6c65  DATA[ The module\n-00005ac0: 206d 6f6e 6974 6f72 2e20 5d5d 3e3c 2f78   monitor. ]]></x\n-00005ad0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00005ae0: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00005af0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00005b00: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00005b10: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00005b20: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00005b30: 6e61 6d65 3d22 6465 6661 756c 7422 2074  name=\"default\" t\n-00005b40: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00005b50: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00005b60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00005b70: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00005b80: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005b90: 6e3e 3c21 5b43 4441 5441 5b20 4973 2064  n><![CDATA[ Is d\n-00005ba0: 6566 6175 6c74 2e20 5d5d 3e3c 2f78 7364  efault. ]]></xsd\n-00005bb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00005bc0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00005bd0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00005be0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00005bf0: 6962 7574 653e 0a20 2020 203c 2f78 7364  ibute>.    </xsd\n-00005c00: 3a63 6f6d 706c 6578 5479 7065 3e0a 0a20  :complexType>.. \n-00005c10: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n-00005c20: 7970 6520 6e61 6d65 3d22 7265 6769 7374  ype name=\"regist\n-00005c30: 7279 5479 7065 223e 0a20 2020 2020 2020  ryType\">.       \n-00005c40: 203c 7873 643a 7365 7175 656e 6365 206d   <xsd:sequence m\n-00005c50: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n-00005c60: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n-00005c70: 6422 3e0a 2020 2020 2020 2020 2020 2020  d\">.            \n-00005c80: 3c78 7364 3a65 6c65 6d65 6e74 2072 6566  <xsd:element ref\n-00005c90: 3d22 7061 7261 6d65 7465 7222 206d 696e  =\"parameter\" min\n-00005ca0: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n-00005cb0: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n-00005cc0: 2f3e 0a20 2020 2020 2020 203c 2f78 7364  />.        </xsd\n-00005cd0: 3a73 6571 7565 6e63 653e 0a20 2020 2020  :sequence>.     \n-00005ce0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00005cf0: 6520 6e61 6d65 3d22 6964 2220 7479 7065  e name=\"id\" type\n-00005d00: 3d22 7873 643a 4944 223e 0a20 2020 2020  =\"xsd:ID\">.     \n-00005d10: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00005d20: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00005d30: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00005d40: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00005d50: 4154 415b 2054 6865 2075 6e69 7175 6520  ATA[ The unique \n-00005d60: 6964 656e 7469 6669 6572 2066 6f72 2061  identifier for a\n-00005d70: 2062 6561 6e2e 205d 5d3e 3c2f 7873 643a   bean. ]]></xsd:\n-00005d80: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n+00004420: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00004430: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004440: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00004450: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00004460: 3c21 5b43 4441 5441 5b20 5468 6520 7761  <![CDATA[ The wa\n+00004470: 726d 7570 2074 696d 6520 696e 204d 696c  rmup time in Mil\n+00004480: 6c69 7365 636f 6e64 732e 205d 5d3e 3c2f  liseconds. ]]></\n+00004490: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000044a0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000044b0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000044c0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000044d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+000044e0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+000044f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00004500: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00004510: 3d22 7365 7269 616c 697a 6174 696f 6e22  =\"serialization\"\n+00004520: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00004530: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00004540: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00004550: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004560: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004570: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00004580: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00004590: 5468 6520 7365 7269 616c 697a 6174 696f  The serializatio\n+000045a0: 6e20 7072 6f74 6f63 6f6c 206f 6620 7365  n protocol of se\n+000045b0: 7276 6963 652e 205d 5d3e 3c2f 7873 643a  rvice. ]]></xsd:\n+000045c0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+000045d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000045e0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000045f0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00004600: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00004610: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00004620: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00004630: 7941 7474 7269 6275 7465 206e 616d 6573  yAttribute names\n+00004640: 7061 6365 3d22 2323 6f74 6865 7222 2070  pace=\"##other\" p\n+00004650: 726f 6365 7373 436f 6e74 656e 7473 3d22  rocessContents=\"\n+00004660: 6c61 7822 2f3e 0d0a 2020 2020 2020 2020  lax\"/>..        \n+00004670: 2020 2020 3c2f 7873 643a 6578 7465 6e73      </xsd:extens\n+00004680: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00004690: 7873 643a 636f 6d70 6c65 7843 6f6e 7465  xsd:complexConte\n+000046a0: 6e74 3e0d 0a20 2020 203c 2f78 7364 3a63  nt>..    </xsd:c\n+000046b0: 6f6d 706c 6578 5479 7065 3e0d 0a0d 0a20  omplexType>.... \n+000046c0: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n+000046d0: 7970 6520 6e61 6d65 3d22 6170 706c 6963  ype name=\"applic\n+000046e0: 6174 696f 6e54 7970 6522 3e0d 0a20 2020  ationType\">..   \n+000046f0: 2020 2020 203c 7873 643a 7365 7175 656e       <xsd:sequen\n+00004700: 6365 206d 696e 4f63 6375 7273 3d22 3022  ce minOccurs=\"0\"\n+00004710: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+00004720: 756e 6465 6422 3e0d 0a20 2020 2020 2020  unded\">..       \n+00004730: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n+00004740: 7420 7265 663d 2270 6172 616d 6574 6572  t ref=\"parameter\n+00004750: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n+00004760: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n+00004770: 6e64 6564 222f 3e0d 0a20 2020 2020 2020  nded\"/>..       \n+00004780: 203c 2f78 7364 3a73 6571 7565 6e63 653e   </xsd:sequence>\n+00004790: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000047a0: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n+000047b0: 6422 2074 7970 653d 2278 7364 3a49 4422  d\" type=\"xsd:ID\"\n+000047c0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000047d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000047e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000047f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00004800: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00004810: 6520 756e 6971 7565 2069 6465 6e74 6966  e unique identif\n+00004820: 6965 7220 666f 7220 6120 6265 616e 2e20  ier for a bean. \n+00004830: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00004840: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00004850: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00004860: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00004870: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00004880: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00004890: 7474 7269 6275 7465 206e 616d 653d 226e  ttribute name=\"n\n+000048a0: 616d 6522 2074 7970 653d 2278 7364 3a73  ame\" type=\"xsd:s\n+000048b0: 7472 696e 6722 2075 7365 3d22 7265 7175  tring\" use=\"requ\n+000048c0: 6972 6564 223e 0d0a 2020 2020 2020 2020  ired\">..        \n+000048d0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000048e0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000048f0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00004900: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00004910: 415b 2054 6865 2061 7070 6c69 6361 7469  A[ The applicati\n+00004920: 6f6e 206e 616d 652e 205d 5d3e 3c2f 7873  on name. ]]></xs\n+00004930: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00004940: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00004950: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004960: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00004970: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00004980: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00004990: 6520 6e61 6d65 3d22 7665 7273 696f 6e22  e name=\"version\"\n+000049a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000049b0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+000049c0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+000049d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000049e0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+000049f0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00004a00: 5468 6520 6170 706c 6963 6174 696f 6e20  The application \n+00004a10: 7665 7273 696f 6e2e 205d 5d3e 3c2f 7873  version. ]]></xs\n+00004a20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00004a30: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00004a40: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004a50: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00004a60: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00004a70: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00004a80: 6520 6e61 6d65 3d22 6f77 6e65 7222 2074  e name=\"owner\" t\n+00004a90: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00004aa0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00004ab0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004ac0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00004ad0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00004ae0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00004af0: 6520 6170 706c 6963 6174 696f 6e20 6f77  e application ow\n+00004b00: 6e65 7220 6e61 6d65 2028 656d 6169 6c20  ner name (email \n+00004b10: 7072 6566 6978 292e 205d 5d3e 3c2f 7873  prefix). ]]></xs\n+00004b20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00004b30: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00004b40: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004b50: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00004b60: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00004b70: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00004b80: 6520 6e61 6d65 3d22 6f72 6761 6e69 7a61  e name=\"organiza\n+00004b90: 7469 6f6e 2220 7479 7065 3d22 7873 643a  tion\" type=\"xsd:\n+00004ba0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00004bb0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00004bc0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00004bd0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00004be0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00004bf0: 4154 415b 2054 6865 206f 7267 616e 697a  ATA[ The organiz\n+00004c00: 6174 696f 6e20 6e61 6d65 2e20 5d5d 3e3c  ation name. ]]><\n+00004c10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00004c20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004c30: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00004c40: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00004c50: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00004c60: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00004c70: 6275 7465 206e 616d 653d 2261 7263 6869  bute name=\"archi\n+00004c80: 7465 6374 7572 6522 2074 7970 653d 2278  tecture\" type=\"x\n+00004c90: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00004ca0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00004cb0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004cc0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00004cd0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00004ce0: 5b43 4441 5441 5b20 5468 6520 6172 6368  [CDATA[ The arch\n+00004cf0: 6974 6563 7475 7265 2e20 5d5d 3e3c 2f78  itecture. ]]></x\n+00004d00: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00004d10: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00004d20: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00004d30: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00004d40: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00004d50: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00004d60: 7465 206e 616d 653d 2265 6e76 6972 6f6e  te name=\"environ\n+00004d70: 6d65 6e74 2220 7479 7065 3d22 7873 643a  ment\" type=\"xsd:\n+00004d80: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00004d90: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00004da0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00004db0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00004dc0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00004dd0: 4154 415b 2054 6865 2061 7070 6c69 6361  ATA[ The applica\n+00004de0: 7469 6f6e 2065 6e76 6972 6f6e 6d65 6e74  tion environment\n+00004df0: 2c20 6567 3a20 6465 762f 7465 7374 2f72  , eg: dev/test/r\n+00004e00: 756e 205d 5d3e 3c2f 7873 643a 646f 6375  un ]]></xsd:docu\n+00004e10: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00004e20: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00004e30: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004e40: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00004e50: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00004e60: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00004e70: 3d22 636f 6d70 696c 6572 2220 7479 7065  =\"compiler\" type\n+00004e80: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00004e90: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00004ea0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00004eb0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00004ec0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00004ed0: 3e3c 215b 4344 4154 415b 2054 6865 206a  ><![CDATA[ The j\n+00004ee0: 6176 6120 636f 6465 2063 6f6d 7069 6c65  ava code compile\n+00004ef0: 722e 205d 5d3e 3c2f 7873 643a 646f 6375  r. ]]></xsd:docu\n+00004f00: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00004f10: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00004f20: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004f30: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00004f40: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00004f50: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00004f60: 3d22 6c6f 6767 6572 2220 7479 7065 3d22  =\"logger\" type=\"\n+00004f70: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00004f80: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00004f90: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00004fa0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00004fb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00004fc0: 215b 4344 4154 415b 2054 6865 2061 7070  ![CDATA[ The app\n+00004fd0: 6c69 6361 7469 6f6e 206c 6f67 6765 722e  lication logger.\n+00004fe0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00004ff0: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00005000: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00005010: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00005020: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00005030: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00005040: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00005050: 7265 6769 7374 7279 2220 7479 7065 3d22  registry\" type=\"\n+00005060: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00005070: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00005080: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00005090: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000050a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000050b0: 215b 4344 4154 415b 2054 6865 2061 7070  ![CDATA[ The app\n+000050c0: 6c69 6361 7469 6f6e 2072 6567 6973 7472  lication registr\n+000050d0: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n+000050e0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000050f0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00005100: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00005110: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00005120: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00005130: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00005140: 3d22 6d6f 6e69 746f 7222 2074 7970 653d  =\"monitor\" type=\n+00005150: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00005160: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00005170: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00005180: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00005190: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000051a0: 3c21 5b43 4441 5441 5b20 5468 6520 6170  <![CDATA[ The ap\n+000051b0: 706c 6963 6174 696f 6e20 6d6f 6e69 746f  plication monito\n+000051c0: 722e 205d 5d3e 3c2f 7873 643a 646f 6375  r. ]]></xsd:docu\n+000051d0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000051e0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000051f0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00005200: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00005210: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00005220: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00005230: 3d22 7368 7574 7761 6974 2220 7479 7065  =\"shutwait\" type\n+00005240: 3d22 7873 643a 7374 7269 6e67 2220 3e0d  =\"xsd:string\" >.\n+00005250: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00005260: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00005270: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00005280: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00005290: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+000052a0: 6170 706c 6963 6174 696f 6e20 7368 7574  application shut\n+000052b0: 446f 776e 2d77 6169 7420 7469 6d65 2e20  Down-wait time. \n+000052c0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+000052d0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000052e0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+000052f0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005300: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00005310: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00005320: 7474 7269 6275 7465 206e 616d 653d 2264  ttribute name=\"d\n+00005330: 6566 6175 6c74 2220 7479 7065 3d22 7873  efault\" type=\"xs\n+00005340: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00005350: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00005360: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00005370: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00005380: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00005390: 4344 4154 415b 2049 7320 6465 6661 756c  CDATA[ Is defaul\n+000053a0: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n+000053b0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000053c0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000053d0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000053e0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000053f0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00005400: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00005410: 3d22 6d65 7461 6461 7461 2d74 7970 6522  =\"metadata-type\"\n+00005420: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00005430: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00005440: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00005450: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00005460: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00005470: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00005480: 5468 6520 6d65 7461 6474 6120 7479 7065  The metadta type\n+00005490: 3a20 6c6f 6361 6c20 6f72 2072 656d 6f74  : local or remot\n+000054a0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+000054b0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000054c0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000054d0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000054e0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000054f0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00005500: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00005510: 3d22 7265 6769 7374 6572 2d63 6f6e 7375  =\"register-consu\n+00005520: 6d65 7222 2074 7970 653d 2278 7364 3a62  mer\" type=\"xsd:b\n+00005530: 6f6f 6c65 616e 223e 0d0a 2020 2020 2020  oolean\">..      \n+00005540: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00005550: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005560: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00005570: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00005580: 4154 415b 2052 6567 6973 7465 7220 636f  ATA[ Register co\n+00005590: 6e73 756d 6572 2069 6e73 7461 6e63 6520  nsumer instance \n+000055a0: 6f72 206e 6f74 2c20 6465 6661 756c 7420  or not, default \n+000055b0: 6661 6c73 652e 205d 5d3e 3c2f 7873 643a  false. ]]></xsd:\n+000055c0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+000055d0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000055e0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000055f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00005600: 7269 6275 7465 3e0d 0a0d 0a20 2020 203c  ribute>....    <\n+00005610: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n+00005620: 3e0d 0a0d 0a20 2020 203c 7873 643a 636f  >....    <xsd:co\n+00005630: 6d70 6c65 7854 7970 6520 6e61 6d65 3d22  mplexType name=\"\n+00005640: 6d6f 6475 6c65 5479 7065 223e 0d0a 2020  moduleType\">..  \n+00005650: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00005660: 6275 7465 206e 616d 653d 2269 6422 2074  bute name=\"id\" t\n+00005670: 7970 653d 2278 7364 3a49 4422 3e0d 0a20  ype=\"xsd:ID\">.. \n+00005680: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00005690: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000056a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000056b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000056c0: 3c21 5b43 4441 5441 5b20 5468 6520 756e  <![CDATA[ The un\n+000056d0: 6971 7565 2069 6465 6e74 6966 6965 7220  ique identifier \n+000056e0: 666f 7220 6120 6265 616e 2e20 5d5d 3e3c  for a bean. ]]><\n+000056f0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00005700: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00005710: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00005720: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00005730: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00005740: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00005750: 6275 7465 206e 616d 653d 226e 616d 6522  bute name=\"name\"\n+00005760: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00005770: 6722 2075 7365 3d22 7265 7175 6972 6564  g\" use=\"required\n+00005780: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00005790: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+000057a0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000057b0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+000057c0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+000057d0: 6865 206d 6f64 756c 6520 6e61 6d65 2e20  he module name. \n+000057e0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+000057f0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00005800: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00005810: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005820: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00005830: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00005840: 7474 7269 6275 7465 206e 616d 653d 2276  ttribute name=\"v\n+00005850: 6572 7369 6f6e 2220 7479 7065 3d22 7873  ersion\" type=\"xs\n+00005860: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00005870: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00005880: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00005890: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+000058a0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+000058b0: 4344 4154 415b 2054 6865 206d 6f64 756c  CDATA[ The modul\n+000058c0: 6520 7665 7273 696f 6e2e 205d 5d3e 3c2f  e version. ]]></\n+000058d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000058e0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000058f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00005900: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00005910: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00005920: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00005930: 7574 6520 6e61 6d65 3d22 6f77 6e65 7222  ute name=\"owner\"\n+00005940: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00005950: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00005960: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00005970: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00005980: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00005990: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+000059a0: 5468 6520 6d6f 6475 6c65 206f 776e 6572  The module owner\n+000059b0: 206e 616d 6520 2865 6d61 696c 2070 7265   name (email pre\n+000059c0: 6669 7829 2e20 5d5d 3e3c 2f78 7364 3a64  fix). ]]></xsd:d\n+000059d0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+000059e0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+000059f0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00005a00: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00005a10: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00005a20: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00005a30: 616d 653d 226f 7267 616e 697a 6174 696f  ame=\"organizatio\n+00005a40: 6e22 2074 7970 653d 2278 7364 3a73 7472  n\" type=\"xsd:str\n+00005a50: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00005a60: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00005a70: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00005a80: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00005a90: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00005aa0: 5b20 5468 6520 6d6f 6475 6c65 206f 7267  [ The module org\n+00005ab0: 616e 697a 6174 696f 6e2e 205d 5d3e 3c2f  anization. ]]></\n+00005ac0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00005ad0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00005ae0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00005af0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00005b00: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00005b10: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00005b20: 7574 6520 6e61 6d65 3d22 7265 6769 7374  ute name=\"regist\n+00005b30: 7279 2220 7479 7065 3d22 7873 643a 7374  ry\" type=\"xsd:st\n+00005b40: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00005b50: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00005b60: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00005b70: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00005b80: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00005b90: 415b 2054 6865 206d 6f64 756c 6520 7265  A[ The module re\n+00005ba0: 6769 7374 7279 2e20 5d5d 3e3c 2f78 7364  gistry. ]]></xsd\n+00005bb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00005bc0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00005bd0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00005be0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00005bf0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00005c00: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00005c10: 206e 616d 653d 226d 6f6e 6974 6f72 2220   name=\"monitor\" \n+00005c20: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00005c30: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00005c40: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00005c50: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00005c60: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00005c70: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00005c80: 6865 206d 6f64 756c 6520 6d6f 6e69 746f  he module monito\n+00005c90: 722e 205d 5d3e 3c2f 7873 643a 646f 6375  r. ]]></xsd:docu\n+00005ca0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00005cb0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00005cc0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00005cd0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00005ce0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00005cf0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00005d00: 3d22 6465 6661 756c 7422 2074 7970 653d  =\"default\" type=\n+00005d10: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00005d20: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00005d30: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00005d40: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00005d50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00005d60: 3c21 5b43 4441 5441 5b20 4973 2064 6566  <![CDATA[ Is def\n+00005d70: 6175 6c74 2e20 5d5d 3e3c 2f78 7364 3a64  ault. ]]></xsd:d\n+00005d80: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n 00005d90: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00005da0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00005db0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00005dc0: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00005dd0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00005de0: 653d 2261 6464 7265 7373 2220 7479 7065  e=\"address\" type\n-00005df0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00005e00: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00005e10: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00005e20: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00005e30: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00005e40: 215b 4344 4154 415b 2054 6865 2072 6567  ![CDATA[ The reg\n-00005e50: 6973 7472 7920 6164 6472 6573 732e 205d  istry address. ]\n-00005e60: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00005e70: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00005e80: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00005e90: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00005ea0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00005eb0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00005ec0: 6275 7465 206e 616d 653d 2270 6f72 7422  bute name=\"port\"\n-00005ed0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00005ee0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00005ef0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00005da0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00005db0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00005dc0: 6962 7574 653e 0d0a 2020 2020 3c2f 7873  ibute>..    </xs\n+00005dd0: 643a 636f 6d70 6c65 7854 7970 653e 0d0a  d:complexType>..\n+00005de0: 0d0a 2020 2020 3c78 7364 3a63 6f6d 706c  ..    <xsd:compl\n+00005df0: 6578 5479 7065 206e 616d 653d 2272 6567  exType name=\"reg\n+00005e00: 6973 7472 7954 7970 6522 3e0d 0a20 2020  istryType\">..   \n+00005e10: 2020 2020 203c 7873 643a 7365 7175 656e       <xsd:sequen\n+00005e20: 6365 206d 696e 4f63 6375 7273 3d22 3022  ce minOccurs=\"0\"\n+00005e30: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+00005e40: 756e 6465 6422 3e0d 0a20 2020 2020 2020  unded\">..       \n+00005e50: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n+00005e60: 7420 7265 663d 2270 6172 616d 6574 6572  t ref=\"parameter\n+00005e70: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n+00005e80: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n+00005e90: 6e64 6564 222f 3e0d 0a20 2020 2020 2020  nded\"/>..       \n+00005ea0: 203c 2f78 7364 3a73 6571 7565 6e63 653e   </xsd:sequence>\n+00005eb0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00005ec0: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n+00005ed0: 6422 2074 7970 653d 2278 7364 3a49 4422  d\" type=\"xsd:ID\"\n+00005ee0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00005ef0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n 00005f00: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n 00005f10: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n 00005f20: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00005f30: 6520 7265 6769 7374 7279 2064 6566 6175  e registry defau\n-00005f40: 6c74 2070 6f72 742e 205d 5d3e 3c2f 7873  lt port. ]]></xs\n-00005f50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00005f60: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00005f70: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00005f80: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00005f90: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00005fa0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00005fb0: 616d 653d 2270 726f 746f 636f 6c22 2074  ame=\"protocol\" t\n-00005fc0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00005fd0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00005fe0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00005ff0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00006000: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00006010: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00006020: 7265 6769 7374 7279 206c 6f6f 6b75 7020  registry lookup \n-00006030: 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c 2f78  protocol. ]]></x\n-00006040: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00006050: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00006060: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00006070: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00006080: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00006090: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-000060a0: 6e61 6d65 3d22 7573 6572 6e61 6d65 2220  name=\"username\" \n-000060b0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-000060c0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-000060d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000060e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000060f0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00006100: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00006110: 2072 6567 6973 7472 7920 7573 6572 6e61   registry userna\n-00006120: 6d65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  me. ]]></xsd:doc\n-00006130: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00006140: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00006150: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00006160: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00006170: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00006180: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00006190: 7061 7373 776f 7264 2220 7479 7065 3d22  password\" type=\"\n-000061a0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-000061b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000061c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000061d0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000061e0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000061f0: 4344 4154 415b 2054 6865 2072 6567 6973  CDATA[ The regis\n-00006200: 7472 7920 7061 7373 776f 7264 2e20 5d5d  try password. ]]\n-00006210: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00006220: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00006230: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00006240: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00006250: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00006260: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00006270: 7574 6520 6e61 6d65 3d22 7472 616e 7370  ute name=\"transp\n-00006280: 6f72 7422 2074 7970 653d 2278 7364 3a73  ort\" type=\"xsd:s\n-00006290: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000062a0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000062b0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000062c0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000062d0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000062e0: 5b20 5468 6520 7072 6f74 6f63 6f6c 2074  [ The protocol t\n-000062f0: 7261 6e73 706f 7274 6572 2074 7970 652e  ransporter type.\n-00006300: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00006310: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00006320: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00006330: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00006340: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00006350: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00006360: 7269 6275 7465 206e 616d 653d 2274 7261  ribute name=\"tra\n-00006370: 6e73 706f 7274 6572 2220 7479 7065 3d22  nsporter\" type=\"\n-00006380: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00006390: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000063a0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000063b0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000063c0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000063d0: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-000063e0: 636f 6c20 7472 616e 7370 6f72 7465 7220  col transporter \n-000063f0: 7479 7065 2e20 5d5d 3e3c 2f78 7364 3a64  type. ]]></xsd:d\n-00006400: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00006410: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00006420: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00006430: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00006440: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00006450: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00006460: 3d22 7365 7276 6572 2220 7479 7065 3d22  =\"server\" type=\"\n-00006470: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00006480: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00006490: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000064a0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000064b0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000064c0: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-000064d0: 636f 6c20 7365 7276 6572 2074 7970 652e  col server type.\n-000064e0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000064f0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00006500: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00006510: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00006520: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00006530: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00006540: 7269 6275 7465 206e 616d 653d 2263 6c69  ribute name=\"cli\n-00006550: 656e 7422 2074 7970 653d 2278 7364 3a73  ent\" type=\"xsd:s\n-00006560: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00006570: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00006580: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00006590: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000065a0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000065b0: 5b20 5468 6520 7072 6f74 6f63 6f6c 2063  [ The protocol c\n-000065c0: 6c69 656e 7420 7479 7065 2e20 5d5d 3e3c  lient type. ]]><\n-000065d0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000065e0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000065f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00006600: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00006610: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00006620: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00006630: 6520 6e61 6d65 3d22 636c 7573 7465 7222  e name=\"cluster\"\n-00006640: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00006650: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00006660: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00006670: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00006680: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00006690: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000066a0: 6520 7265 6769 7374 7279 2063 6c75 7374  e registry clust\n-000066b0: 6572 2074 7970 652e 205d 5d3e 3c2f 7873  er type. ]]></xs\n-000066c0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000066d0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-000066e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000066f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00006700: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00006710: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00006720: 616d 653d 227a 6f6e 6522 2074 7970 653d  ame=\"zone\" type=\n-00006730: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00006740: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00006750: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00006760: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00006770: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00006780: 5b43 4441 5441 5b20 5468 6520 7265 6769  [CDATA[ The regi\n-00006790: 7374 7279 207a 6f6e 6520 7479 7065 2e20  stry zone type. \n-000067a0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-000067b0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000067c0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-000067d0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-000067e0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000067f0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00006800: 6962 7574 6520 6e61 6d65 3d22 666f 726b  ibute name=\"fork\n-00006810: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n-00006820: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00006830: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00006840: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00006850: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00006860: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00006870: 466f 726b 696e 6743 6c75 7374 6572 2066  ForkingCluster f\n-00006880: 6f72 6b73 2e20 5d5d 3e3c 2f78 7364 3a64  orks. ]]></xsd:d\n-00006890: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000068a0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000068b0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000068c0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-000068d0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-000068e0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000068f0: 3d22 6772 6f75 7022 2074 7970 653d 2278  =\"group\" type=\"x\n-00006900: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00006910: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00006920: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00006930: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00006940: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00006950: 4441 5441 5b20 5468 6520 7265 6769 7374  DATA[ The regist\n-00006960: 7279 2067 726f 7570 2e20 5d5d 3e3c 2f78  ry group. ]]></x\n-00006970: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00006980: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00006990: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000069a0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-000069b0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-000069c0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-000069d0: 6e61 6d65 3d22 7665 7273 696f 6e22 2074  name=\"version\" t\n-000069e0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-000069f0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00006a00: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00006a10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00006a20: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00006a30: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00006a40: 7265 6769 7374 7279 2076 6572 7369 6f6e  registry version\n-00006a50: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00006a60: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00006a70: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00006a80: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006a90: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00006aa0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00006ab0: 7472 6962 7574 6520 6e61 6d65 3d22 7469  tribute name=\"ti\n-00006ac0: 6d65 6f75 7422 2074 7970 653d 2278 7364  meout\" type=\"xsd\n-00006ad0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00006ae0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00006af0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00006b00: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00006b10: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00006b20: 5441 5b20 5468 6520 7265 7175 6573 7420  TA[ The request \n-00006b30: 7469 6d65 6f75 742e 205d 5d3e 3c2f 7873  timeout. ]]></xs\n-00006b40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00006b50: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00006b60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00006b70: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00006b80: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00006b90: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00006ba0: 616d 653d 2273 6573 7369 6f6e 2220 7479  ame=\"session\" ty\n-00006bb0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00006bc0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00006bd0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00006be0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00006bf0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00006c00: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n-00006c10: 6573 7369 6f6e 2074 696d 656f 7574 2e20  ession timeout. \n-00006c20: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00006c30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006c40: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00006c50: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00006c60: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00006c70: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00006c80: 6962 7574 6520 6e61 6d65 3d22 6669 6c65  ibute name=\"file\n-00006c90: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00006ca0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00006cb0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00006cc0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00006cd0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00006ce0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00006cf0: 6865 2072 6567 6973 7472 7920 6164 6464  he registry addd\n-00006d00: 7265 7373 2066 696c 6520 7374 6f72 652e  ress file store.\n-00006d10: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00006d20: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00006d30: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00006d40: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00006d50: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00006d60: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00006d70: 7269 6275 7465 206e 616d 653d 2277 6169  ribute name=\"wai\n-00006d80: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-00006d90: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00006da0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00006db0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00006dc0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00006dd0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00006de0: 5468 6520 7761 6974 2074 696d 6520 666f  The wait time fo\n-00006df0: 7220 7368 7574 646f 776e 2e20 5d5d 3e3c  r shutdown. ]]><\n-00006e00: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00006e10: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00006e20: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00006e30: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00006e40: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00006e50: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00006e60: 6520 6e61 6d65 3d22 6368 6563 6b22 2074  e name=\"check\" t\n-00006e70: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00006e80: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00006e90: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00006ea0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00006eb0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00006ec0: 6e3e 3c21 5b43 4441 5441 5b20 4368 6563  n><![CDATA[ Chec\n-00006ed0: 6b20 7265 6769 7374 7279 2073 7461 7475  k registry statu\n-00006ee0: 7320 6f6e 2073 7472 6174 7570 2e20 5d5d  s on stratup. ]]\n-00006ef0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00006f00: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00006f10: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00006f20: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00006f30: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00006f40: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00006f50: 7574 6520 6e61 6d65 3d22 6479 6e61 6d69  ute name=\"dynami\n-00006f60: 6322 2074 7970 653d 2278 7364 3a73 7472  c\" type=\"xsd:str\n-00006f70: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00006f80: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00006f90: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00006fa0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00006fb0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00006fc0: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n-00006fd0: 4154 415b 2074 6865 2073 6572 7669 6365  ATA[ the service\n-00006fe0: 2072 6567 6973 7465 7265 6420 746f 2074   registered to t\n-00006ff0: 6869 7320 7265 6769 7374 7279 2069 7320  his registry is \n-00007000: 6479 6e61 6d69 6328 7472 7565 2920 6f72  dynamic(true) or\n-00007010: 2073 7461 7469 6328 6661 6c73 6529 2e20   static(false). \n-00007020: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00007030: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00007040: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00007050: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00007060: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00007070: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00007080: 6962 7574 6520 6e61 6d65 3d22 7265 6769  ibute name=\"regi\n-00007090: 7374 6572 2220 7479 7065 3d22 7873 643a  ster\" type=\"xsd:\n-000070a0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000070b0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000070c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000070d0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000070e0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-000070f0: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n-00007100: 5b43 4441 5441 5b20 7265 6769 7374 6572  [CDATA[ register\n-00007110: 2073 6572 7669 6365 2074 6f20 7468 6973   service to this\n-00007120: 2072 6567 6973 7472 7928 7472 7565 2920   registry(true) \n-00007130: 6f72 206e 6f74 2866 616c 7365 292e 205d  or not(false). ]\n-00007140: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00007150: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00007160: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00007170: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00007180: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00007190: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-000071a0: 6275 7465 206e 616d 653d 2273 7562 7363  bute name=\"subsc\n-000071b0: 7269 6265 2220 7479 7065 3d22 7873 643a  ribe\" type=\"xsd:\n-000071c0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000071d0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000071e0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000071f0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00007200: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00007210: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n-00007220: 5b43 4441 5441 5b20 7375 6273 6372 6962  [CDATA[ subscrib\n-00007230: 6520 7365 7276 6963 6520 746f 2074 6869  e service to thi\n-00007240: 7320 7265 6769 7374 7279 2874 7275 6529  s registry(true)\n-00007250: 206f 7220 6e6f 7428 6661 6c73 6529 2e20   or not(false). \n-00007260: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00007270: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00007280: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00007290: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-000072a0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000072b0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000072c0: 6962 7574 6520 6e61 6d65 3d22 6465 6661  ibute name=\"defa\n-000072d0: 756c 7422 2074 7970 653d 2278 7364 3a73  ult\" type=\"xsd:s\n-000072e0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000072f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00007300: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00007310: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00007320: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00007330: 5b20 4973 2064 6566 6175 6c74 2e20 5d5d  [ Is default. ]]\n-00007340: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00007350: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00007360: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00007370: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00007380: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00007390: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-000073a0: 7574 6520 6e61 6d65 3d22 7369 6d70 6c69  ute name=\"simpli\n-000073b0: 6669 6564 2220 7479 7065 3d22 7873 643a  fied\" type=\"xsd:\n-000073c0: 626f 6f6c 6561 6e22 3e0a 2020 2020 2020  boolean\">.      \n-000073d0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000073e0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000073f0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00007400: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00007410: 5441 5b20 4973 2073 696d 706c 652e 205d  TA[ Is simple. ]\n-00007420: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00007430: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00007440: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00007450: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00007460: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00007470: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00007480: 6275 7465 206e 616d 653d 2265 7874 7261  bute name=\"extra\n-00007490: 2d6b 6579 7322 2074 7970 653d 2278 7364  -keys\" type=\"xsd\n-000074a0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-000074b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000074c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000074d0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-000074e0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-000074f0: 5441 5b20 4578 7472 6120 5061 7261 6d65  TA[ Extra Parame\n-00007500: 7465 7220 4b65 7973 2e20 5d5d 3e3c 2f78  ter Keys. ]]></x\n-00007510: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007520: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00007530: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00007540: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00007550: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00007560: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00007570: 6e61 6d65 3d22 7573 652d 6173 2d63 6f6e  name=\"use-as-con\n-00007580: 6669 672d 6365 6e74 6572 2220 7479 7065  fig-center\" type\n-00007590: 3d22 7873 643a 626f 6f6c 6561 6e22 3e0a  =\"xsd:boolean\">.\n-000075a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000075b0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000075c0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000075d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000075e0: 3c21 5b43 4441 5441 5b20 776f 726b 2061  <![CDATA[ work a\n-000075f0: 7320 636f 6e66 6967 2063 656e 7465 7220  s config center \n-00007600: 6f72 206e 6f74 2e20 5d5d 3e3c 2f78 7364  or not. ]]></xsd\n-00007610: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00007620: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00007630: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00007640: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00007650: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00007660: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00007670: 6d65 3d22 7573 652d 6173 2d6d 6574 6164  me=\"use-as-metad\n-00007680: 6174 612d 6365 6e74 6572 2220 7479 7065  ata-center\" type\n-00007690: 3d22 7873 643a 626f 6f6c 6561 6e22 3e0a  =\"xsd:boolean\">.\n-000076a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000076b0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000076c0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000076d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000076e0: 3c21 5b43 4441 5441 5b20 776f 726b 2061  <![CDATA[ work a\n-000076f0: 7320 6d65 7461 6461 7461 2063 656e 7465  s metadata cente\n-00007700: 7220 6f72 206e 6f74 2e20 5d5d 3e3c 2f78  r or not. ]]></x\n-00007710: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007720: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00007730: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00007740: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00007750: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00007760: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00007770: 6e61 6d65 3d22 6163 6365 7074 7322 2074  name=\"accepts\" t\n-00007780: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00007790: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-000077a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000077b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000077c0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000077d0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000077e0: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n-000077f0: 206c 6973 7420 6f66 2072 7063 2070 726f   list of rpc pro\n-00007800: 746f 636f 6c73 2061 6363 6570 7465 6420  tocols accepted \n-00007810: 6279 2074 6869 7320 7265 6769 7374 7279  by this registry\n-00007820: 2c20 7365 7061 7261 7465 6420 7769 7468  , separated with\n-00007830: 2022 2c22 2e20 5d5d 3e3c 2f78 7364 3a64   \",\". ]]></xsd:d\n-00007840: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00007850: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00007860: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00007870: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00007880: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00007890: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000078a0: 3d22 7072 6566 6572 7265 6422 2074 7970  =\"preferred\" typ\n-000078b0: 653d 2278 7364 3a62 6f6f 6c65 616e 223e  e=\"xsd:boolean\">\n-000078c0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-000078d0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000078e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000078f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007900: 3e3c 215b 4344 4154 415b 2049 7320 7468  ><![CDATA[ Is th\n-00007910: 6973 2072 6567 6973 7472 7920 7468 6520  is registry the \n-00007920: 7072 6566 6572 7265 6420 6f6e 652e 205d  preferred one. ]\n-00007930: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00007940: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00007950: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00007960: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00007970: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00007980: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00007990: 6275 7465 206e 616d 653d 2277 6569 6768  bute name=\"weigh\n-000079a0: 7422 2074 7970 653d 2278 7364 3a69 6e74  t\" type=\"xsd:int\n-000079b0: 6567 6572 223e 0a20 2020 2020 2020 2020  eger\">.         \n-000079c0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000079d0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000079e0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000079f0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00007a00: 2077 6569 6768 7420 6f66 2072 6567 6973   weight of regis\n-00007a10: 7472 792e 205d 5d3e 3c2f 7873 643a 646f  try. ]]></xsd:do\n-00007a20: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00007a30: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00007a40: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007a50: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00007a60: 7465 3e0a 2020 2020 3c2f 7873 643a 636f  te>.    </xsd:co\n-00007a70: 6d70 6c65 7854 7970 653e 0a0a 2020 2020  mplexType>..    \n-00007a80: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n-00007a90: 206e 616d 653d 226d 6574 6164 6174 6152   name=\"metadataR\n-00007aa0: 6570 6f72 7454 7970 6522 3e0a 2020 2020  eportType\">.    \n-00007ab0: 2020 2020 3c78 7364 3a73 6571 7565 6e63      <xsd:sequenc\n-00007ac0: 6520 6d69 6e4f 6363 7572 733d 2230 2220  e minOccurs=\"0\" \n-00007ad0: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n-00007ae0: 6e64 6564 223e 0a20 2020 2020 2020 2020  nded\">.         \n-00007af0: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n-00007b00: 7265 663d 2270 6172 616d 6574 6572 2220  ref=\"parameter\" \n-00007b10: 6d69 6e4f 6363 7572 733d 2230 2220 6d61  minOccurs=\"0\" ma\n-00007b20: 784f 6363 7572 733d 2275 6e62 6f75 6e64  xOccurs=\"unbound\n-00007b30: 6564 222f 3e0a 2020 2020 2020 2020 3c2f  ed\"/>.        </\n-00007b40: 7873 643a 7365 7175 656e 6365 3e0a 2020  xsd:sequence>.  \n-00007b50: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00007b60: 6275 7465 206e 616d 653d 2269 6422 2074  bute name=\"id\" t\n-00007b70: 7970 653d 2278 7364 3a49 4422 3e0a 2020  ype=\"xsd:ID\">.  \n-00007b80: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00007b90: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007ba0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00007bb0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00007bc0: 5b43 4441 5441 5b20 5468 6520 756e 6971  [CDATA[ The uniq\n-00007bd0: 7565 2069 6465 6e74 6966 6965 7220 666f  ue identifier fo\n-00007be0: 7220 6120 6265 616e 2e20 5d5d 3e3c 2f78  r a bean. ]]></x\n-00007bf0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007c00: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00007c10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00007c20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00007c30: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00007c40: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00007c50: 6e61 6d65 3d22 6164 6472 6573 7322 2074  name=\"address\" t\n-00007c60: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00007c70: 2075 7365 3d22 6f70 7469 6f6e 616c 223e   use=\"optional\">\n-00007c80: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00007c90: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00007ca0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00007cb0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007cc0: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n-00007cd0: 6574 6164 6174 6152 6570 6f72 7420 6164  etadataReport ad\n-00007ce0: 6472 6573 732e 205d 5d3e 3c2f 7873 643a  dress. ]]></xsd:\n-00007cf0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00007d00: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00007d10: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00007d20: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00007d30: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00007d40: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00007d50: 653d 2275 7365 726e 616d 6522 2074 7970  e=\"username\" typ\n-00007d60: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-00007d70: 7365 3d22 6f70 7469 6f6e 616c 223e 0a20  se=\"optional\">. \n-00007d80: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00007d90: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00007da0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00007db0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00007dc0: 215b 4344 4154 415b 2054 6865 206d 6574  ![CDATA[ The met\n-00007dd0: 6164 6174 6152 6570 6f72 7420 7573 6572  adataReport user\n-00007de0: 6e61 6d65 2e20 5d5d 3e3c 2f78 7364 3a64  name. ]]></xsd:d\n-00007df0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00007e00: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00007e10: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00007e20: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00007e30: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00007e40: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00007e50: 3d22 7061 7373 776f 7264 2220 7479 7065  =\"password\" type\n-00007e60: 3d22 7873 643a 7374 7269 6e67 2220 7573  =\"xsd:string\" us\n-00007e70: 653d 226f 7074 696f 6e61 6c22 3e0a 2020  e=\"optional\">.  \n-00007e80: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00007e90: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007ea0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00007eb0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00007ec0: 5b43 4441 5441 5b20 5468 6520 6d65 7461  [CDATA[ The meta\n-00007ed0: 6461 7461 5265 706f 7274 2070 6173 7377  dataReport passw\n-00007ee0: 6f72 642e 205d 5d3e 3c2f 7873 643a 646f  ord. ]]></xsd:do\n-00007ef0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00007f00: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00007f10: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007f20: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00007f30: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00007f40: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00007f50: 2274 696d 656f 7574 2220 7479 7065 3d22  \"timeout\" type=\"\n-00007f60: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n-00007f70: 226f 7074 696f 6e61 6c22 3e0a 2020 2020  \"optional\">.    \n-00007f80: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00007f90: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00007fa0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00007fb0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00007fc0: 4441 5441 5b20 5468 6520 7265 7175 6573  DATA[ The reques\n-00007fd0: 7420 7469 6d65 6f75 742e 205d 5d3e 3c2f  t timeout. ]]></\n-00007fe0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00007ff0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00008000: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00008010: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00008020: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00008030: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00008040: 206e 616d 653d 2267 726f 7570 2220 7479   name=\"group\" ty\n-00008050: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00008060: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-00008070: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00008080: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008090: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000080a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000080b0: 3c21 5b43 4441 5441 5b20 5468 6520 6772  <![CDATA[ The gr\n-000080c0: 6f75 7020 6f66 206d 6574 6164 6174 612d  oup of metadata-\n-000080d0: 7265 706f 7274 2e20 5d5d 3e3c 2f78 7364  report. ]]></xsd\n-000080e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-000080f0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00008100: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00008110: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00008120: 6962 7574 653e 0a0a 2020 2020 2020 2020  ibute>..        \n-00008130: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00008140: 616d 653d 2272 6574 7279 2d74 696d 6573  ame=\"retry-times\n-00008150: 2220 7479 7065 3d22 7873 643a 696e 7465  \" type=\"xsd:inte\n-00008160: 6765 7222 2075 7365 3d22 6f70 7469 6f6e  ger\" use=\"option\n-00008170: 616c 223e 0a20 2020 2020 2020 2020 2020  al\">.           \n-00008180: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00008190: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000081a0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000081b0: 7469 6f6e 3e3c 215b 4344 4154 415b 2069  tion><![CDATA[ i\n-000081c0: 6620 6661 696c 2c20 7265 7472 7920 7469  f fail, retry ti\n-000081d0: 6d65 732e 205d 5d3e 3c2f 7873 643a 646f  mes. ]]></xsd:do\n-000081e0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-000081f0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00008200: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00008210: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00008220: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00008230: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00008240: 2272 6574 7279 2d70 6572 696f 6422 2074  \"retry-period\" t\n-00008250: 7970 653d 2278 7364 3a69 6e74 6567 6572  ype=\"xsd:integer\n-00008260: 2220 7573 653d 226f 7074 696f 6e61 6c22  \" use=\"optional\"\n-00008270: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00008280: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00008290: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000082a0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000082b0: 6e3e 3c21 5b43 4441 5441 5b20 6966 2066  n><![CDATA[ if f\n-000082c0: 6169 6c2c 2072 6574 7279 2070 6572 696f  ail, retry perio\n-000082d0: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n-000082e0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000082f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00008300: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00008310: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00008320: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00008330: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-00008340: 7963 6c65 2d72 6570 6f72 7422 2074 7970  ycle-report\" typ\n-00008350: 653d 2278 7364 3a62 6f6f 6c65 616e 2220  e=\"xsd:boolean\" \n-00008360: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-00008370: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00008380: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008390: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000083a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000083b0: 3c21 5b43 4441 5441 5b20 7265 706f 7274  <![CDATA[ report\n-000083c0: 2063 7963 6c65 6c79 2e20 5d5d 3e3c 2f78   cyclely. ]]></x\n-000083d0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000083e0: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-000083f0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00008400: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00008410: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00008420: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00008430: 6e61 6d65 3d22 7379 6e63 2d72 6570 6f72  name=\"sync-repor\n-00008440: 7422 2074 7970 653d 2278 7364 3a62 6f6f  t\" type=\"xsd:boo\n-00008450: 6c65 616e 2220 7573 653d 226f 7074 696f  lean\" use=\"optio\n-00008460: 6e61 6c22 3e0a 2020 2020 2020 2020 2020  nal\">.          \n-00008470: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00008480: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00008490: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-000084a0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-000084b0: 5379 6e63 206f 7220 4173 796e 6320 7265  Sync or Async re\n-000084c0: 706f 7274 2e20 5d5d 3e3c 2f78 7364 3a64  port. ]]></xsd:d\n-000084d0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000084e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000084f0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00008500: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00008510: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00008520: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00008530: 3d22 636c 7573 7465 7222 2074 7970 653d  =\"cluster\" type=\n-00008540: 2278 7364 3a62 6f6f 6c65 616e 2220 7573  \"xsd:boolean\" us\n-00008550: 653d 226f 7074 696f 6e61 6c22 3e0a 2020  e=\"optional\">.  \n-00008560: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00008570: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00008580: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00008590: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-000085a0: 5b43 4441 5441 5b20 4e65 6564 2063 6c75  [CDATA[ Need clu\n-000085b0: 7374 6572 2073 7570 706f 7274 2c20 6465  ster support, de\n-000085c0: 6661 756c 7420 6661 6c73 652e 205d 5d3e  fault false. ]]>\n-000085d0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-000085e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000085f0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00008600: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00008610: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00008620: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00008630: 7465 206e 616d 653d 2272 6567 6973 7472  te name=\"registr\n-00008640: 7922 2074 7970 653d 2278 7364 3a73 7472  y\" type=\"xsd:str\n-00008650: 696e 6722 2075 7365 3d22 6f70 7469 6f6e  ing\" use=\"option\n-00008660: 616c 223e 0a20 2020 2020 2020 2020 2020  al\">.           \n-00008670: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00008680: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00008690: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000086a0: 7469 6f6e 3e3c 215b 4344 4154 415b 2072  tion><![CDATA[ r\n-000086b0: 6567 6973 7472 7920 636f 6e66 6967 2069  egistry config i\n-000086c0: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n-000086d0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000086e0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-000086f0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00008700: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00008710: 3e0a 2020 2020 3c2f 7873 643a 636f 6d70  >.    </xsd:comp\n-00008720: 6c65 7854 7970 653e 0a0a 2020 2020 3c78  lexType>..    <x\n-00008730: 7364 3a63 6f6d 706c 6578 5479 7065 206e  sd:complexType n\n-00008740: 616d 653d 2263 6f6e 6669 6743 656e 7465  ame=\"configCente\n-00008750: 7254 7970 6522 3e0a 2020 2020 2020 2020  rType\">.        \n-00008760: 3c78 7364 3a73 6571 7565 6e63 6520 6d69  <xsd:sequence mi\n-00008770: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n-00008780: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n-00008790: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-000087a0: 7873 643a 656c 656d 656e 7420 7265 663d  xsd:element ref=\n-000087b0: 2270 6172 616d 6574 6572 2220 6d69 6e4f  \"parameter\" minO\n-000087c0: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n-000087d0: 7572 733d 2275 6e62 6f75 6e64 6564 222f  urs=\"unbounded\"/\n-000087e0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-000087f0: 7365 7175 656e 6365 3e0a 2020 2020 2020  sequence>.      \n-00008800: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00008810: 206e 616d 653d 2270 726f 746f 636f 6c22   name=\"protocol\"\n-00008820: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00008830: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00008840: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00008850: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00008860: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00008870: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00008880: 6520 636f 6e66 6967 2063 656e 7465 7220  e config center \n-00008890: 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c 2f78  protocol. ]]></x\n-000088a0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000088b0: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-000088c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000088d0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-000088e0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-000088f0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00008900: 6e61 6d65 3d22 6164 6472 6573 7322 2074  name=\"address\" t\n-00008910: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00008920: 2075 7365 3d22 6f70 7469 6f6e 616c 223e   use=\"optional\">\n-00008930: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00008940: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00008950: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00008960: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00008970: 3e3c 215b 4344 4154 415b 2054 6865 2063  ><![CDATA[ The c\n-00008980: 6f6e 6669 6720 6365 6e74 6572 2061 6464  onfig center add\n-00008990: 7265 7373 2e20 5d5d 3e3c 2f78 7364 3a64  ress. ]]></xsd:d\n-000089a0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000089b0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000089c0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000089d0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-000089e0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-000089f0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00008a00: 3d22 636c 7573 7465 7222 2074 7970 653d  =\"cluster\" type=\n-00008a10: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n-00008a20: 3d22 6f70 7469 6f6e 616c 223e 0a20 2020  =\"optional\">.   \n-00008a30: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00008a40: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00008a50: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00008a60: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00008a70: 4344 4154 415b 2054 6865 2063 6f6e 6669  CDATA[ The confi\n-00008a80: 6720 6365 6e74 6572 2063 6c75 7374 6572  g center cluster\n-00008a90: 2c20 6974 2773 2072 6561 6c20 6d65 616e  , it's real mean\n-00008aa0: 696e 6720 6d61 7920 7665 7279 206f 6e20  ing may very on \n-00008ab0: 6469 6666 6572 656e 7420 436f 6e66 6967  different Config\n-00008ac0: 2043 656e 7465 7220 7072 6f64 7563 7473   Center products\n-00008ad0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00008ae0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00008af0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00008b00: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00008b10: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00008b20: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00008b30: 7472 6962 7574 6520 6e61 6d65 3d22 6e61  tribute name=\"na\n-00008b40: 6d65 7370 6163 6522 2074 7970 653d 2278  mespace\" type=\"x\n-00008b50: 7364 3a73 7472 696e 6722 2075 7365 3d22  sd:string\" use=\"\n-00008b60: 6f70 7469 6f6e 616c 223e 0a20 2020 2020  optional\">.     \n-00008b70: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00008b80: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00008b90: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00008ba0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00008bb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00008bc0: 3c21 5b43 4441 5441 5b20 5468 6520 6e61  <![CDATA[ The na\n-00008bd0: 6d65 7370 6163 6520 6f66 2074 6865 2063  mespace of the c\n-00008be0: 6f6e 6669 6720 6365 6e74 6572 2c20 6765  onfig center, ge\n-00008bf0: 6e65 7261 6c6c 7920 6974 2773 2075 7365  nerally it's use\n-00008c00: 6420 666f 7220 6d75 6c74 692d 7465 6e61  d for multi-tena\n-00008c10: 6e74 2c20 6275 7420 6974 2773 2072 6561  nt, but it's rea\n-00008c20: 6c20 6d65 616e 696e 6720 6465 7065 6e64  l meaning depend\n-00008c30: 7320 6f6e 2074 6865 2061 6374 7561 6c20  s on the actual \n-00008c40: 436f 6e66 6967 2043 656e 7465 7220 796f  Config Center yo\n-00008c50: 7520 7573 652e 205d 5d3e 3c2f 7873 643a  u use. ]]></xsd:\n-00008c60: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00008c70: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00008c80: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008c90: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00008ca0: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00008cb0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00008cc0: 653d 2267 726f 7570 2220 7479 7065 3d22  e=\"group\" type=\"\n-00008cd0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n-00008ce0: 226f 7074 696f 6e61 6c22 3e0a 2020 2020  \"optional\">.    \n-00008cf0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00008d00: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00008d10: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00008d20: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00008d30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00008d40: 203c 215b 4344 4154 415b 2054 6865 2067   <![CDATA[ The g\n-00008d50: 726f 7570 206f 6620 7468 6520 636f 6e66  roup of the conf\n-00008d60: 6967 2063 656e 7465 722c 2067 656e 6572  ig center, gener\n-00008d70: 616c 6c79 2069 7427 7320 7573 6564 2074  ally it's used t\n-00008d80: 6f20 6964 656e 7469 6679 2061 6e20 6973  o identify an is\n-00008d90: 6f6c 6174 6564 2073 7061 6365 2066 6f72  olated space for\n-00008da0: 2061 2062 6174 6368 206f 6620 636f 6e66   a batch of conf\n-00008db0: 6967 2069 7465 6d73 2c20 6275 7420 6974  ig items, but it\n-00008dc0: 2773 2072 6561 6c20 6d65 616e 696e 6720  's real meaning \n-00008dd0: 6465 7065 6e64 7320 6f6e 2074 6865 2061  depends on the a\n-00008de0: 6374 7561 6c20 436f 6e66 6967 2043 656e  ctual Config Cen\n-00008df0: 7465 7220 796f 7520 7573 652e 2e20 5d5d  ter you use.. ]]\n-00008e00: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00008e10: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00008e20: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00008e30: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00008e40: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00008e50: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00008e60: 7574 6520 6e61 6d65 3d22 636f 6e66 6967  ute name=\"config\n-00008e70: 2d66 696c 6522 2074 7970 653d 2278 7364  -file\" type=\"xsd\n-00008e80: 3a73 7472 696e 6722 2075 7365 3d22 6f70  :string\" use=\"op\n-00008e90: 7469 6f6e 616c 223e 0a20 2020 2020 2020  tional\">.       \n-00008ea0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00008eb0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00008ec0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00008ed0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00008ee0: 415b 2054 6865 206b 6579 2075 7365 6420  A[ The key used \n-00008ef0: 746f 2067 6574 2074 6865 2063 6f6e 6669  to get the confi\n-00008f00: 6773 2061 7420 7374 6172 7475 702e 205d  gs at startup. ]\n-00008f10: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00008f20: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00008f30: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00008f40: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00008f50: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00008f60: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00008f70: 6275 7465 206e 616d 653d 2261 7070 2d63  bute name=\"app-c\n-00008f80: 6f6e 6669 672d 6669 6c65 2220 7479 7065  onfig-file\" type\n-00008f90: 3d22 7873 643a 7374 7269 6e67 2220 7573  =\"xsd:string\" us\n-00008fa0: 653d 226f 7074 696f 6e61 6c22 3e0a 2020  e=\"optional\">.  \n-00008fb0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00008fc0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00008fd0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00008fe0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00008ff0: 5b43 4441 5441 5b20 5468 6520 6b65 7920  [CDATA[ The key \n-00009000: 7573 6564 2074 6f20 6765 7420 7468 6520  used to get the \n-00009010: 636f 6e66 6967 7320 6174 2073 7461 7274  configs at start\n-00009020: 7570 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  up. ]]></xsd:doc\n-00009030: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00009040: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00009050: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00009060: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00009070: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00009080: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00009090: 7573 6572 6e61 6d65 2220 7479 7065 3d22  username\" type=\"\n-000090a0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n-000090b0: 226f 7074 696f 6e61 6c22 3e0a 2020 2020  \"optional\">.    \n-000090c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000090d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000090e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000090f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00009100: 4441 5441 5b20 5468 6520 7573 6572 6e61  DATA[ The userna\n-00009110: 6d65 2066 6f72 2041 5554 482e 205d 5d3e  me for AUTH. ]]>\n-00009120: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00009130: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00009140: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00009150: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00009160: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00009170: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00009180: 7465 206e 616d 653d 2270 6173 7377 6f72  te name=\"passwor\n-00009190: 6422 2074 7970 653d 2278 7364 3a73 7472  d\" type=\"xsd:str\n-000091a0: 696e 6722 2075 7365 3d22 6f70 7469 6f6e  ing\" use=\"option\n-000091b0: 616c 223e 0a20 2020 2020 2020 2020 2020  al\">.           \n-000091c0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000091d0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000091e0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000091f0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00009200: 6865 2070 6173 7377 6f72 6420 666f 7220  he password for \n-00009210: 4155 5448 2e20 5d5d 3e3c 2f78 7364 3a64  AUTH. ]]></xsd:d\n-00009220: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00009230: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00009240: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00009250: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00009260: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00009270: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00009280: 3d22 7469 6d65 6f75 7422 2074 7970 653d  =\"timeout\" type=\n-00009290: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n-000092a0: 3d22 6f70 7469 6f6e 616c 223e 0a20 2020  =\"optional\">.   \n-000092b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000092c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000092d0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000092e0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000092f0: 4344 4154 415b 2054 6865 2072 6571 7565  CDATA[ The reque\n-00009300: 7374 2074 696d 656f 7574 2e20 5d5d 3e3c  st timeout. ]]><\n-00009310: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00009320: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00009330: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00009340: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00009350: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00009360: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00009370: 6520 6e61 6d65 3d22 6869 6768 6573 742d  e name=\"highest-\n-00009380: 7072 696f 7269 7479 2220 7479 7065 3d22  priority\" type=\"\n-00009390: 7873 643a 626f 6f6c 6561 6e22 2075 7365  xsd:boolean\" use\n-000093a0: 3d22 6f70 7469 6f6e 616c 223e 0a20 2020  =\"optional\">.   \n-000093b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000093c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000093d0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000093e0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000093f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00009400: 2020 3c21 5b43 4441 5441 5b20 5768 6574    <![CDATA[ Whet\n-00009410: 6865 7220 7468 6520 636f 6e66 6967 7320  her the configs \n-00009420: 6672 6f6d 2063 6f6e 6669 6720 6365 6e74  from config cent\n-00009430: 6572 2068 6173 2074 6865 2068 6967 6865  er has the highe\n-00009440: 7374 2070 7269 6f72 6974 792e 205d 5d3e  st priority. ]]>\n-00009450: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00009460: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00009470: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00009480: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00009490: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-000094a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-000094b0: 7465 206e 616d 653d 2269 6e63 6c75 6465  te name=\"include\n-000094c0: 2d73 7072 696e 672d 656e 7622 2074 7970  -spring-env\" typ\n-000094d0: 653d 2278 7364 3a62 6f6f 6c65 616e 2220  e=\"xsd:boolean\" \n-000094e0: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-000094f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009500: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00009510: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00009520: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009530: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00009540: 2020 2020 203c 215b 4344 4154 415b 204c       <![CDATA[ L\n-00009550: 6f61 6420 7468 6520 636f 6e66 6967 2069  oad the config i\n-00009560: 7465 6d73 2062 7920 4475 6262 6f20 6974  tems by Dubbo it\n-00009570: 7365 6c66 206f 7220 5370 7269 6e67 2e20  self or Spring. \n-00009580: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00009590: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000095a0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-000095b0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-000095c0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000095d0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000095e0: 6962 7574 6520 6e61 6d65 3d22 6368 6563  ibute name=\"chec\n-000095f0: 6b22 2074 7970 653d 2278 7364 3a62 6f6f  k\" type=\"xsd:boo\n-00009600: 6c65 616e 2220 7573 653d 226f 7074 696f  lean\" use=\"optio\n-00009610: 6e61 6c22 3e0a 2020 2020 2020 2020 2020  nal\">.          \n-00009620: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00009630: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00009640: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00009650: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00009660: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n-00009670: 4154 415b 2054 6865 2070 6f6c 6963 7920  ATA[ The policy \n-00009680: 746f 2061 7070 6c79 2077 6865 6e20 636f  to apply when co\n-00009690: 6e6e 6563 7469 6e67 2074 6f20 636f 6e66  nnecting to conf\n-000096a0: 6967 2063 656e 7465 7220 6661 696c 732e  ig center fails.\n-000096b0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000096c0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000096d0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-000096e0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-000096f0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00009700: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n-00009710: 7854 7970 653e 0a0a 2020 2020 3c78 7364  xType>..    <xsd\n-00009720: 3a63 6f6d 706c 6578 5479 7065 206e 616d  :complexType nam\n-00009730: 653d 226d 6f6e 6974 6f72 5479 7065 223e  e=\"monitorType\">\n-00009740: 0a20 2020 2020 2020 203c 7873 643a 7365  .        <xsd:se\n-00009750: 7175 656e 6365 206d 696e 4f63 6375 7273  quence minOccurs\n-00009760: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n-00009770: 756e 626f 756e 6465 6422 3e0a 2020 2020  unbounded\">.    \n-00009780: 2020 2020 2020 2020 3c78 7364 3a65 6c65          <xsd:ele\n-00009790: 6d65 6e74 2072 6566 3d22 7061 7261 6d65  ment ref=\"parame\n-000097a0: 7465 7222 206d 696e 4f63 6375 7273 3d22  ter\" minOccurs=\"\n-000097b0: 3022 206d 6178 4f63 6375 7273 3d22 756e  0\" maxOccurs=\"un\n-000097c0: 626f 756e 6465 6422 2f3e 0a20 2020 2020  bounded\"/>.     \n-000097d0: 2020 203c 2f78 7364 3a73 6571 7565 6e63     </xsd:sequenc\n-000097e0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-000097f0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00009800: 6164 6472 6573 7322 2074 7970 653d 2278  address\" type=\"x\n-00009810: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00009820: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00009830: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00009840: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00009850: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00009860: 4441 5441 5b20 5468 6520 6d6f 6e69 746f  DATA[ The monito\n-00009870: 7220 6164 6472 6573 732e 205d 5d3e 3c2f  r address. ]]></\n-00009880: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00009890: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-000098a0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-000098b0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-000098c0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-000098d0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-000098e0: 206e 616d 653d 2270 726f 746f 636f 6c22   name=\"protocol\"\n-000098f0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00009900: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00009910: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00009920: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00009930: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00009940: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00009950: 6520 6d6f 6e69 746f 7220 7072 6f74 6f63  e monitor protoc\n-00009960: 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ol. ]]></xsd:doc\n-00009970: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00009980: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00009990: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000099a0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-000099b0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-000099c0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-000099d0: 7573 6572 6e61 6d65 2220 7479 7065 3d22  username\" type=\"\n-000099e0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-000099f0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00009a00: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00009a10: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00009a20: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00009a30: 4344 4154 415b 2054 6865 206d 6f6e 6974  CDATA[ The monit\n-00009a40: 6f72 2075 7365 726e 616d 652e 205d 5d3e  or username. ]]>\n-00009a50: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00009a60: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00009a70: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00009a80: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00009a90: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00009aa0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00009ab0: 7465 206e 616d 653d 2270 6173 7377 6f72  te name=\"passwor\n-00009ac0: 6422 2074 7970 653d 2278 7364 3a73 7472  d\" type=\"xsd:str\n-00009ad0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00009ae0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00009af0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00009b00: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00009b10: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00009b20: 5468 6520 6d6f 6e69 746f 7220 7061 7373  The monitor pass\n-00009b30: 776f 7264 2e20 5d5d 3e3c 2f78 7364 3a64  word. ]]></xsd:d\n-00009b40: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00009b50: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00009b60: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00009b70: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00009b80: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00009b90: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00009ba0: 3d22 6772 6f75 7022 2074 7970 653d 2278  =\"group\" type=\"x\n-00009bb0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00009bc0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00009bd0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00009be0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00009bf0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00009c00: 4441 5441 5b20 5468 6520 6d6f 6e69 746f  DATA[ The monito\n-00009c10: 7220 6772 6f75 702e 205d 5d3e 3c2f 7873  r group. ]]></xs\n-00009c20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009c30: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00009c40: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00009c50: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00009c60: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00009c70: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00009c80: 616d 653d 2276 6572 7369 6f6e 2220 7479  ame=\"version\" ty\n-00009c90: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00009ca0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00009cb0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00009cc0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00009cd0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00009ce0: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n-00009cf0: 6f6e 6974 6f72 2076 6572 7369 6f6e 2e20  onitor version. \n-00009d00: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00009d10: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00009d20: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00009d30: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00009d40: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00009d50: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00009d60: 6962 7574 6520 6e61 6d65 3d22 696e 7465  ibute name=\"inte\n-00009d70: 7276 616c 2220 7479 7065 3d22 7873 643a  rval\" type=\"xsd:\n-00009d80: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00009d90: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00009da0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00009db0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00009dc0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00009dd0: 415b 2054 6865 206d 6f6e 6974 6f72 2069  A[ The monitor i\n-00009de0: 6e74 6572 7661 6c2e 205d 5d3e 3c2f 7873  nterval. ]]></xs\n-00009df0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009e00: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00009e10: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00009e20: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00009e30: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00009e40: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00009e50: 616d 653d 2264 6566 6175 6c74 2220 7479  ame=\"default\" ty\n-00009e60: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00009e70: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00009e80: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00009e90: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00009ea0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00009eb0: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n-00009ec0: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n-00009ed0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00009ee0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00009ef0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00009f00: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00009f10: 6275 7465 3e0a 2020 2020 3c2f 7873 643a  bute>.    </xsd:\n-00009f20: 636f 6d70 6c65 7854 7970 653e 0a0a 2020  complexType>..  \n-00009f30: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n-00009f40: 7065 206e 616d 653d 2270 6172 616d 6574  pe name=\"paramet\n-00009f50: 6572 5479 7065 223e 0a20 2020 2020 2020  erType\">.       \n-00009f60: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00009f70: 6e61 6d65 3d22 6b65 7922 2074 7970 653d  name=\"key\" type=\n-00009f80: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n-00009f90: 3d22 7265 7175 6972 6564 223e 0a20 2020  =\"required\">.   \n-00009fa0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00009fb0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00009fc0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00009fd0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00009fe0: 4344 4154 415b 2054 6865 2070 6172 616d  CDATA[ The param\n-00009ff0: 6574 6572 206b 6579 2e20 5d5d 3e3c 2f78  eter key. ]]></x\n-0000a000: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000a010: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-0000a020: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000a030: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000a040: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-0000a050: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000a060: 6e61 6d65 3d22 7661 6c75 6522 2074 7970  name=\"value\" typ\n-0000a070: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-0000a080: 7365 3d22 7265 7175 6972 6564 223e 0a20  se=\"required\">. \n-0000a090: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000a0a0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000a0b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000a0c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000a0d0: 215b 4344 4154 415b 2054 6865 2070 6172  ![CDATA[ The par\n-0000a0e0: 616d 6574 6572 2076 616c 7565 2e20 5d5d  ameter value. ]]\n-0000a0f0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000a100: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000a110: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000a120: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-0000a130: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000a140: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000a150: 7574 6520 6e61 6d65 3d22 6869 6465 2220  ute name=\"hide\" \n-0000a160: 7479 7065 3d22 7873 643a 626f 6f6c 6561  type=\"xsd:boolea\n-0000a170: 6e22 3e0a 2020 2020 2020 2020 2020 2020  n\">.            \n-0000a180: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000a190: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000a1a0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000a1b0: 696f 6e3e 3c21 5b43 4441 5441 5b20 4869  ion><![CDATA[ Hi\n-0000a1c0: 6465 2070 6172 616d 6574 6572 2e20 5d5d  de parameter. ]]\n-0000a1d0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000a1e0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000a1f0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000a200: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-0000a210: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000a220: 203c 2f78 7364 3a63 6f6d 706c 6578 5479   </xsd:complexTy\n-0000a230: 7065 3e0a 0a20 2020 203c 7873 643a 636f  pe>..    <xsd:co\n-0000a240: 6d70 6c65 7854 7970 6520 6e61 6d65 3d22  mplexType name=\"\n-0000a250: 6d65 7472 6963 7354 7970 6522 3e0a 2020  metricsType\">.  \n-0000a260: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000a270: 6275 7465 206e 616d 653d 2270 6f72 7422  bute name=\"port\"\n-0000a280: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000a290: 6722 2075 7365 3d22 7265 7175 6972 6564  g\" use=\"required\n-0000a2a0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-0000a2b0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000a2c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a2d0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000a2e0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000a2f0: 206d 6574 7269 6373 2073 6572 7669 6365   metrics service\n-0000a300: 2070 6f72 742e 205d 5d3e 3c2f 7873 643a   port. ]]></xsd:\n-0000a310: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000a320: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000a330: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000a340: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000a350: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000a360: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000a370: 653d 2270 726f 746f 636f 6c22 2074 7970  e=\"protocol\" typ\n-0000a380: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-0000a390: 7365 3d22 7265 7175 6972 6564 223e 0a20  se=\"required\">. \n-0000a3a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000a3b0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000a3c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000a3d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000a3e0: 215b 4344 4154 415b 2054 6865 206d 6574  ![CDATA[ The met\n-0000a3f0: 7269 6373 2073 6572 7669 6365 2070 726f  rics service pro\n-0000a400: 746f 636f 6c2e 205d 5d3e 3c2f 7873 643a  tocol. ]]></xsd:\n-0000a410: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000a420: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000a430: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000a440: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000a450: 6275 7465 3e0a 2020 2020 3c2f 7873 643a  bute>.    </xsd:\n-0000a460: 636f 6d70 6c65 7854 7970 653e 0a0a 2020  complexType>..  \n-0000a470: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n-0000a480: 7065 206e 616d 653d 226d 6574 686f 6454  pe name=\"methodT\n-0000a490: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-0000a4a0: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-0000a4b0: 743e 0a20 2020 2020 2020 2020 2020 203c  t>.            <\n-0000a4c0: 7873 643a 6578 7465 6e73 696f 6e20 6261  xsd:extension ba\n-0000a4d0: 7365 3d22 6162 7374 7261 6374 4d65 7468  se=\"abstractMeth\n-0000a4e0: 6f64 5479 7065 223e 0a20 2020 2020 2020  odType\">.       \n-0000a4f0: 2020 2020 2020 2020 203c 7873 643a 6368           <xsd:ch\n-0000a500: 6f69 6365 206d 696e 4f63 6375 7273 3d22  oice minOccurs=\"\n-0000a510: 3022 206d 6178 4f63 6375 7273 3d22 756e  0\" maxOccurs=\"un\n-0000a520: 626f 756e 6465 6422 3e0a 2020 2020 2020  bounded\">.      \n-0000a530: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000a540: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n-0000a550: 6172 6775 6d65 6e74 2220 6d69 6e4f 6363  argument\" minOcc\n-0000a560: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n-0000a570: 733d 2275 6e62 6f75 6e64 6564 222f 3e0a  s=\"unbounded\"/>.\n-0000a580: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a590: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n-0000a5a0: 2072 6566 3d22 7061 7261 6d65 7465 7222   ref=\"parameter\"\n-0000a5b0: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n-0000a5c0: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n-0000a5d0: 6465 6422 2f3e 0a20 2020 2020 2020 2020  ded\"/>.         \n-0000a5e0: 2020 2020 2020 203c 2f78 7364 3a63 686f         </xsd:cho\n-0000a5f0: 6963 653e 0a20 2020 2020 2020 2020 2020  ice>.           \n-0000a600: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000a610: 7574 6520 6e61 6d65 3d22 6e61 6d65 2220  ute name=\"name\" \n-0000a620: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000a630: 2220 7573 653d 2272 6571 7569 7265 6422  \" use=\"required\"\n-0000a640: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a650: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000a660: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000a670: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a680: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000a690: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000a6a0: 6d65 7468 6f64 206e 616d 6520 286d 6574  method name (met\n-0000a6b0: 686f 642e 746f 5374 7269 6e67 2829 292e  hod.toString()).\n-0000a6c0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000a6d0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000a6e0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000a6f0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000a700: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a710: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000a720: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a730: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000a740: 616d 653d 2265 7865 6375 7465 7322 2074  ame=\"executes\" t\n-0000a750: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000a760: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a770: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000a780: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000a790: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a7a0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000a7b0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000a7c0: 6d61 7820 6163 7469 7665 2072 6571 7565  max active reque\n-0000a7d0: 7374 732e 205d 5d3e 3c2f 7873 643a 646f  sts. ]]></xsd:do\n-0000a7e0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-0000a7f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a800: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000a810: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000a820: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-0000a830: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-0000a840: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000a850: 7465 206e 616d 653d 2273 7461 7422 2074  te name=\"stat\" t\n-0000a860: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000a870: 2064 6566 6175 6c74 3d22 2d31 223e 0a20   default=\"-1\">. \n-0000a880: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a890: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000a8a0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000a8b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000a8c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000a8d0: 215b 4344 4154 415b 2054 6865 206d 6574  ![CDATA[ The met\n-0000a8e0: 686f 6420 7061 7261 6d65 7465 7220 696e  hod parameter in\n-0000a8f0: 6465 7820 666f 7220 7374 6174 6973 7469  dex for statisti\n-0000a900: 6373 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  cs. ]]></xsd:doc\n-0000a910: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000a920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a930: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000a940: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a950: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000a960: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000a970: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000a980: 6520 6e61 6d65 3d22 7265 7472 7922 2074  e name=\"retry\" t\n-0000a990: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000a9a0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a9b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000a9c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000a9d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a9e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000a9f0: 6e3e 3c21 5b43 4441 5441 5b20 4465 7072  n><![CDATA[ Depr\n-0000aa00: 6563 6174 6564 2e20 5265 706c 6163 6520  ecated. Replace \n-0000aa10: 746f 2072 6574 7269 6573 2e20 5d5d 3e3c  to retries. ]]><\n-0000aa20: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000aa30: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000aa40: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000aa50: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000aa60: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000aa70: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000aa80: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000aa90: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000aaa0: 7265 6c69 6162 6c65 2220 7479 7065 3d22  reliable\" type=\"\n-0000aab0: 7873 643a 7374 7269 6e67 2220 6465 6661  xsd:string\" defa\n-0000aac0: 756c 743d 2266 616c 7365 223e 0a20 2020  ult=\"false\">.   \n-0000aad0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000aae0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000aaf0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000ab00: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000ab10: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000ab20: 4344 4154 415b 2044 6570 7265 6361 7465  CDATA[ Deprecate\n-0000ab30: 642e 2052 6570 6c61 6365 2074 6f20 6e61  d. Replace to na\n-0000ab40: 706f 6c69 2070 726f 746f 636f 6c2e 205d  poli protocol. ]\n-0000ab50: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000ab60: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000ab70: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000ab80: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000ab90: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000aba0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000abb0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000abc0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000abd0: 653d 2264 6570 7265 6361 7465 6422 2074  e=\"deprecated\" t\n-0000abe0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000abf0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000ac00: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000ac10: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000ac20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ac30: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000ac40: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000ac50: 6d65 7468 6f64 2064 6570 7265 6361 7465  method deprecate\n-0000ac60: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n-0000ac70: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000ac80: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ac90: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000aca0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000acb0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000acc0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000acd0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000ace0: 206e 616d 653d 2273 7469 636b 7922 2074   name=\"sticky\" t\n-0000acf0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000ad00: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000ad10: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000ad20: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000ad30: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ad40: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000ad50: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000ad60: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ad70: 215b 4344 4154 415b 2045 6e61 626c 652f  ![CDATA[ Enable/\n-0000ad80: 4469 7361 626c 6520 636c 7573 7465 7220  Disable cluster \n-0000ad90: 7374 6963 6b79 2070 6f6c 6963 792e 4465  sticky policy.De\n-0000ada0: 6661 756c 7420 6661 6c73 6520 5d5d 3e3c  fault false ]]><\n-0000adb0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000adc0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000add0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000ade0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000adf0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000ae00: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000ae10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000ae20: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000ae30: 7265 7475 726e 2220 7479 7065 3d22 7873  return\" type=\"xs\n-0000ae40: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000ae50: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ae60: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000ae70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ae80: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000ae90: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000aea0: 4154 415b 204d 6574 686f 6420 7265 7375  ATA[ Method resu\n-0000aeb0: 6c74 2069 7320 7265 7475 726e 2e20 6465  lt is return. de\n-0000aec0: 6661 756c 7420 6973 2074 7275 652e 5d5d  fault is true.]]\n-0000aed0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000aee0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000aef0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000af00: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000af10: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000af20: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000af30: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000af40: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000af50: 3d22 6f6e 696e 766f 6b65 2220 7479 7065  =\"oninvoke\" type\n-0000af60: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000af70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000af80: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000af90: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000afa0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000afb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000afc0: 215b 4344 4154 415b 204d 6574 686f 6420  ![CDATA[ Method \n-0000afd0: 696e 766f 6b65 2074 7269 6767 6572 2e5d  invoke trigger.]\n-0000afe0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000aff0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000b000: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000b010: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000b020: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000b030: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000b040: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000b050: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000b060: 653d 226f 6e72 6574 7572 6e22 2074 7970  e=\"onreturn\" typ\n-0000b070: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n+00005f30: 6520 756e 6971 7565 2069 6465 6e74 6966  e unique identif\n+00005f40: 6965 7220 666f 7220 6120 6265 616e 2e20  ier for a bean. \n+00005f50: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00005f60: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00005f70: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00005f80: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005f90: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00005fa0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00005fb0: 7474 7269 6275 7465 206e 616d 653d 2261  ttribute name=\"a\n+00005fc0: 6464 7265 7373 2220 7479 7065 3d22 7873  ddress\" type=\"xs\n+00005fd0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00005fe0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00005ff0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006000: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00006010: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00006020: 4344 4154 415b 2054 6865 2072 6567 6973  CDATA[ The regis\n+00006030: 7472 7920 6164 6472 6573 732e 205d 5d3e  try address. ]]>\n+00006040: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00006050: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00006060: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00006070: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00006080: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00006090: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000060a0: 6962 7574 6520 6e61 6d65 3d22 706f 7274  ibute name=\"port\n+000060b0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+000060c0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+000060d0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+000060e0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000060f0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00006100: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00006110: 2054 6865 2072 6567 6973 7472 7920 6465   The registry de\n+00006120: 6661 756c 7420 706f 7274 2e20 5d5d 3e3c  fault port. ]]><\n+00006130: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00006140: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006150: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00006160: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00006170: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00006180: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00006190: 6275 7465 206e 616d 653d 2270 726f 746f  bute name=\"proto\n+000061a0: 636f 6c22 2074 7970 653d 2278 7364 3a73  col\" type=\"xsd:s\n+000061b0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+000061c0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000061d0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000061e0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000061f0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00006200: 5441 5b20 5468 6520 7265 6769 7374 7279  TA[ The registry\n+00006210: 206c 6f6f 6b75 7020 7072 6f74 6f63 6f6c   lookup protocol\n+00006220: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00006230: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00006240: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00006250: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006260: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00006270: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00006280: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00006290: 2275 7365 726e 616d 6522 2074 7970 653d  \"username\" type=\n+000062a0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+000062b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000062c0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000062d0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000062e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000062f0: 3c21 5b43 4441 5441 5b20 5468 6520 7265  <![CDATA[ The re\n+00006300: 6769 7374 7279 2075 7365 726e 616d 652e  gistry username.\n+00006310: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00006320: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00006330: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00006340: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00006350: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00006360: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00006370: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00006380: 7061 7373 776f 7264 2220 7479 7065 3d22  password\" type=\"\n+00006390: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+000063a0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000063b0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000063c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000063d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000063e0: 215b 4344 4154 415b 2054 6865 2072 6567  ![CDATA[ The reg\n+000063f0: 6973 7472 7920 7061 7373 776f 7264 2e20  istry password. \n+00006400: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00006410: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00006420: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00006430: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00006440: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00006450: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00006460: 7474 7269 6275 7465 206e 616d 653d 2274  ttribute name=\"t\n+00006470: 7261 6e73 706f 7274 2220 7479 7065 3d22  ransport\" type=\"\n+00006480: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00006490: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000064a0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000064b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000064c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000064d0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+000064e0: 746f 636f 6c20 7472 616e 7370 6f72 7465  tocol transporte\n+000064f0: 7220 7479 7065 2e20 5d5d 3e3c 2f78 7364  r type. ]]></xsd\n+00006500: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00006510: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00006520: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00006530: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00006540: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00006550: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00006560: 206e 616d 653d 2274 7261 6e73 706f 7274   name=\"transport\n+00006570: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n+00006580: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00006590: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000065a0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000065b0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000065c0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000065d0: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+000065e0: 7472 616e 7370 6f72 7465 7220 7479 7065  transporter type\n+000065f0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00006600: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00006610: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00006620: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006630: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00006640: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00006650: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00006660: 2273 6572 7665 7222 2074 7970 653d 2278  \"server\" type=\"x\n+00006670: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00006680: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00006690: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000066a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000066b0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+000066c0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+000066d0: 6f63 6f6c 2073 6572 7665 7220 7479 7065  ocol server type\n+000066e0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+000066f0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00006700: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00006710: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006720: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00006730: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00006740: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00006750: 2263 6c69 656e 7422 2074 7970 653d 2278  \"client\" type=\"x\n+00006760: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00006770: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00006780: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00006790: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000067a0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+000067b0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+000067c0: 6f63 6f6c 2063 6c69 656e 7420 7479 7065  ocol client type\n+000067d0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+000067e0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+000067f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00006800: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006810: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00006820: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00006830: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00006840: 2263 6c75 7374 6572 2220 7479 7065 3d22  \"cluster\" type=\"\n+00006850: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00006860: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00006870: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00006880: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00006890: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000068a0: 215b 4344 4154 415b 2054 6865 2072 6567  ![CDATA[ The reg\n+000068b0: 6973 7472 7920 636c 7573 7465 7220 7479  istry cluster ty\n+000068c0: 7065 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  pe. ]]></xsd:doc\n+000068d0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000068e0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000068f0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00006900: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00006910: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00006920: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00006930: 653d 227a 6f6e 6522 2074 7970 653d 2278  e=\"zone\" type=\"x\n+00006940: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00006950: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00006960: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00006970: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00006980: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00006990: 5b43 4441 5441 5b20 5468 6520 7265 6769  [CDATA[ The regi\n+000069a0: 7374 7279 207a 6f6e 6520 7479 7065 2e20  stry zone type. \n+000069b0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+000069c0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000069d0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+000069e0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000069f0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00006a00: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00006a10: 7474 7269 6275 7465 206e 616d 653d 2266  ttribute name=\"f\n+00006a20: 6f72 6b73 2220 7479 7065 3d22 7873 643a  orks\" type=\"xsd:\n+00006a30: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00006a40: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00006a50: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00006a60: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00006a70: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00006a80: 4154 415b 2046 6f72 6b69 6e67 436c 7573  ATA[ ForkingClus\n+00006a90: 7465 7220 666f 726b 732e 205d 5d3e 3c2f  ter forks. ]]></\n+00006aa0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00006ab0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00006ac0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00006ad0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00006ae0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00006af0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00006b00: 7574 6520 6e61 6d65 3d22 6772 6f75 7022  ute name=\"group\"\n+00006b10: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00006b20: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00006b30: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00006b40: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00006b50: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00006b60: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00006b70: 5468 6520 7265 6769 7374 7279 2067 726f  The registry gro\n+00006b80: 7570 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  up. ]]></xsd:doc\n+00006b90: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00006ba0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00006bb0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00006bc0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00006bd0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00006be0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00006bf0: 653d 2276 6572 7369 6f6e 2220 7479 7065  e=\"version\" type\n+00006c00: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00006c10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00006c20: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00006c30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00006c40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00006c50: 3e3c 215b 4344 4154 415b 2054 6865 2072  ><![CDATA[ The r\n+00006c60: 6567 6973 7472 7920 7665 7273 696f 6e2e  egistry version.\n+00006c70: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00006c80: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00006c90: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00006ca0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00006cb0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00006cc0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00006cd0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00006ce0: 7469 6d65 6f75 7422 2074 7970 653d 2278  timeout\" type=\"x\n+00006cf0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00006d00: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00006d10: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00006d20: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00006d30: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00006d40: 5b43 4441 5441 5b20 5468 6520 7265 7175  [CDATA[ The requ\n+00006d50: 6573 7420 7469 6d65 6f75 742e 205d 5d3e  est timeout. ]]>\n+00006d60: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00006d70: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00006d80: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00006d90: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00006da0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00006db0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00006dc0: 6962 7574 6520 6e61 6d65 3d22 7365 7373  ibute name=\"sess\n+00006dd0: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n+00006de0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00006df0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00006e00: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00006e10: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00006e20: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00006e30: 5441 5b20 5468 6520 7365 7373 696f 6e20  TA[ The session \n+00006e40: 7469 6d65 6f75 742e 205d 5d3e 3c2f 7873  timeout. ]]></xs\n+00006e50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00006e60: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00006e70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00006e80: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00006e90: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00006ea0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00006eb0: 6520 6e61 6d65 3d22 6669 6c65 2220 7479  e name=\"file\" ty\n+00006ec0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00006ed0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00006ee0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00006ef0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00006f00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00006f10: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00006f20: 2072 6567 6973 7472 7920 6164 6464 7265   registry adddre\n+00006f30: 7373 2066 696c 6520 7374 6f72 652e 205d  ss file store. ]\n+00006f40: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00006f50: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00006f60: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00006f70: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+00006f80: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00006f90: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00006fa0: 7472 6962 7574 6520 6e61 6d65 3d22 7761  tribute name=\"wa\n+00006fb0: 6974 2220 7479 7065 3d22 7873 643a 7374  it\" type=\"xsd:st\n+00006fc0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00006fd0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00006fe0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00006ff0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00007000: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00007010: 415b 2054 6865 2077 6169 7420 7469 6d65  A[ The wait time\n+00007020: 2066 6f72 2073 6875 7464 6f77 6e2e 205d   for shutdown. ]\n+00007030: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00007040: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00007050: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00007060: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+00007070: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00007080: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00007090: 7472 6962 7574 6520 6e61 6d65 3d22 6368  tribute name=\"ch\n+000070a0: 6563 6b22 2074 7970 653d 2278 7364 3a73  eck\" type=\"xsd:s\n+000070b0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+000070c0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000070d0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000070e0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000070f0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00007100: 5441 5b20 4368 6563 6b20 7265 6769 7374  TA[ Check regist\n+00007110: 7279 2073 7461 7475 7320 6f6e 2073 7472  ry status on str\n+00007120: 6174 7570 2e20 5d5d 3e3c 2f78 7364 3a64  atup. ]]></xsd:d\n+00007130: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00007140: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00007150: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00007160: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00007170: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00007180: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00007190: 616d 653d 2264 796e 616d 6963 2220 7479  ame=\"dynamic\" ty\n+000071a0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+000071b0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+000071c0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000071d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000071e0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000071f0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00007200: 2020 2020 2020 2020 203c 215b 4344 4154           <![CDAT\n+00007210: 415b 2074 6865 2073 6572 7669 6365 2072  A[ the service r\n+00007220: 6567 6973 7465 7265 6420 746f 2074 6869  egistered to thi\n+00007230: 7320 7265 6769 7374 7279 2069 7320 6479  s registry is dy\n+00007240: 6e61 6d69 6328 7472 7565 2920 6f72 2073  namic(true) or s\n+00007250: 7461 7469 6328 6661 6c73 6529 2e20 5d5d  tatic(false). ]]\n+00007260: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00007270: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00007280: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00007290: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+000072a0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000072b0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000072c0: 7269 6275 7465 206e 616d 653d 2272 6567  ribute name=\"reg\n+000072d0: 6973 7465 7222 2074 7970 653d 2278 7364  ister\" type=\"xsd\n+000072e0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000072f0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00007300: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00007310: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00007320: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00007330: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007340: 2020 3c21 5b43 4441 5441 5b20 7265 6769    <![CDATA[ regi\n+00007350: 7374 6572 2073 6572 7669 6365 2074 6f20  ster service to \n+00007360: 7468 6973 2072 6567 6973 7472 7928 7472  this registry(tr\n+00007370: 7565 2920 6f72 206e 6f74 2866 616c 7365  ue) or not(false\n+00007380: 292e 205d 5d3e 3c2f 7873 643a 646f 6375  ). ]]></xsd:docu\n+00007390: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000073a0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000073b0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000073c0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000073d0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000073e0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000073f0: 3d22 7375 6273 6372 6962 6522 2074 7970  =\"subscribe\" typ\n+00007400: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00007410: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00007420: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00007430: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00007440: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00007450: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00007460: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00007470: 5b20 7375 6273 6372 6962 6520 7365 7276  [ subscribe serv\n+00007480: 6963 6520 746f 2074 6869 7320 7265 6769  ice to this regi\n+00007490: 7374 7279 2874 7275 6529 206f 7220 6e6f  stry(true) or no\n+000074a0: 7428 6661 6c73 6529 2e20 5d5d 3e3c 2f78  t(false). ]]></x\n+000074b0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000074c0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000074d0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+000074e0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+000074f0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00007500: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00007510: 7465 206e 616d 653d 2264 6566 6175 6c74  te name=\"default\n+00007520: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00007530: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00007540: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00007550: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00007560: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00007570: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00007580: 2049 7320 6465 6661 756c 742e 205d 5d3e   Is default. ]]>\n+00007590: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+000075a0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000075b0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000075c0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000075d0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000075e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000075f0: 6962 7574 6520 6e61 6d65 3d22 7369 6d70  ibute name=\"simp\n+00007600: 6c69 6669 6564 2220 7479 7065 3d22 7873  lified\" type=\"xs\n+00007610: 643a 626f 6f6c 6561 6e22 3e0d 0a20 2020  d:boolean\">..   \n+00007620: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00007630: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00007640: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00007650: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00007660: 5b43 4441 5441 5b20 4973 2073 696d 706c  [CDATA[ Is simpl\n+00007670: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+00007680: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00007690: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000076a0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000076b0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000076c0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000076d0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000076e0: 3d22 6578 7472 612d 6b65 7973 2220 7479  =\"extra-keys\" ty\n+000076f0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00007700: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00007710: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00007720: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007730: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00007740: 6f6e 3e3c 215b 4344 4154 415b 2045 7874  on><![CDATA[ Ext\n+00007750: 7261 2050 6172 616d 6574 6572 204b 6579  ra Parameter Key\n+00007760: 732e 205d 5d3e 3c2f 7873 643a 646f 6375  s. ]]></xsd:docu\n+00007770: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00007780: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00007790: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000077a0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000077b0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000077c0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000077d0: 3d22 7573 652d 6173 2d63 6f6e 6669 672d  =\"use-as-config-\n+000077e0: 6365 6e74 6572 2220 7479 7065 3d22 7873  center\" type=\"xs\n+000077f0: 643a 626f 6f6c 6561 6e22 3e0d 0a20 2020  d:boolean\">..   \n+00007800: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00007810: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00007820: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00007830: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00007840: 5b43 4441 5441 5b20 776f 726b 2061 7320  [CDATA[ work as \n+00007850: 636f 6e66 6967 2063 656e 7465 7220 6f72  config center or\n+00007860: 206e 6f74 2e20 5d5d 3e3c 2f78 7364 3a64   not. ]]></xsd:d\n+00007870: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00007880: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00007890: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000078a0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+000078b0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+000078c0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+000078d0: 616d 653d 2275 7365 2d61 732d 6d65 7461  ame=\"use-as-meta\n+000078e0: 6461 7461 2d63 656e 7465 7222 2074 7970  data-center\" typ\n+000078f0: 653d 2278 7364 3a62 6f6f 6c65 616e 223e  e=\"xsd:boolean\">\n+00007900: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00007910: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00007920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007930: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00007940: 6f6e 3e3c 215b 4344 4154 415b 2077 6f72  on><![CDATA[ wor\n+00007950: 6b20 6173 206d 6574 6164 6174 6120 6365  k as metadata ce\n+00007960: 6e74 6572 206f 7220 6e6f 742e 205d 5d3e  nter or not. ]]>\n+00007970: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00007980: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00007990: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000079a0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000079b0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000079c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000079d0: 6962 7574 6520 6e61 6d65 3d22 6163 6365  ibute name=\"acce\n+000079e0: 7074 7322 2074 7970 653d 2278 7364 3a73  pts\" type=\"xsd:s\n+000079f0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00007a00: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00007a10: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00007a20: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00007a30: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00007a40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007a50: 3c21 5b43 4441 5441 5b20 6c69 7374 206f  <![CDATA[ list o\n+00007a60: 6620 7270 6320 7072 6f74 6f63 6f6c 7320  f rpc protocols \n+00007a70: 6163 6365 7074 6564 2062 7920 7468 6973  accepted by this\n+00007a80: 2072 6567 6973 7472 792c 2073 6570 6172   registry, separ\n+00007a90: 6174 6564 2077 6974 6820 222c 222e 205d  ated with \",\". ]\n+00007aa0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00007ab0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00007ac0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00007ad0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+00007ae0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00007af0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00007b00: 7472 6962 7574 6520 6e61 6d65 3d22 7072  tribute name=\"pr\n+00007b10: 6566 6572 7265 6422 2074 7970 653d 2278  eferred\" type=\"x\n+00007b20: 7364 3a62 6f6f 6c65 616e 223e 0d0a 2020  sd:boolean\">..  \n+00007b30: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00007b40: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00007b50: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00007b60: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00007b70: 215b 4344 4154 415b 2049 7320 7468 6973  ![CDATA[ Is this\n+00007b80: 2072 6567 6973 7472 7920 7468 6520 7072   registry the pr\n+00007b90: 6566 6572 7265 6420 6f6e 652e 205d 5d3e  eferred one. ]]>\n+00007ba0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00007bb0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00007bc0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00007bd0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00007be0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00007bf0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00007c00: 6962 7574 6520 6e61 6d65 3d22 7765 6967  ibute name=\"weig\n+00007c10: 6874 2220 7479 7065 3d22 7873 643a 696e  ht\" type=\"xsd:in\n+00007c20: 7465 6765 7222 3e0d 0a20 2020 2020 2020  teger\">..       \n+00007c30: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00007c40: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00007c50: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00007c60: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00007c70: 5441 5b20 7765 6967 6874 206f 6620 7265  TA[ weight of re\n+00007c80: 6769 7374 7279 2e20 5d5d 3e3c 2f78 7364  gistry. ]]></xsd\n+00007c90: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00007ca0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00007cb0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00007cc0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00007cd0: 7472 6962 7574 653e 0d0a 2020 2020 3c2f  tribute>..    </\n+00007ce0: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n+00007cf0: 0d0a 0d0a 2020 2020 3c78 7364 3a63 6f6d  ....    <xsd:com\n+00007d00: 706c 6578 5479 7065 206e 616d 653d 226d  plexType name=\"m\n+00007d10: 6574 6164 6174 6152 6570 6f72 7454 7970  etadataReportTyp\n+00007d20: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00007d30: 643a 7365 7175 656e 6365 206d 696e 4f63  d:sequence minOc\n+00007d40: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+00007d50: 7273 3d22 756e 626f 756e 6465 6422 3e0d  rs=\"unbounded\">.\n+00007d60: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00007d70: 643a 656c 656d 656e 7420 7265 663d 2270  d:element ref=\"p\n+00007d80: 6172 616d 6574 6572 2220 6d69 6e4f 6363  arameter\" minOcc\n+00007d90: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n+00007da0: 733d 2275 6e62 6f75 6e64 6564 222f 3e0d  s=\"unbounded\"/>.\n+00007db0: 0a20 2020 2020 2020 203c 2f78 7364 3a73  .        </xsd:s\n+00007dc0: 6571 7565 6e63 653e 0d0a 2020 2020 2020  equence>..      \n+00007dd0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00007de0: 206e 616d 653d 2269 6422 2074 7970 653d   name=\"id\" type=\n+00007df0: 2278 7364 3a49 4422 3e0d 0a20 2020 2020  \"xsd:ID\">..     \n+00007e00: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00007e10: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00007e20: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00007e30: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00007e40: 4441 5441 5b20 5468 6520 756e 6971 7565  DATA[ The unique\n+00007e50: 2069 6465 6e74 6966 6965 7220 666f 7220   identifier for \n+00007e60: 6120 6265 616e 2e20 5d5d 3e3c 2f78 7364  a bean. ]]></xsd\n+00007e70: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00007e80: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00007e90: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00007ea0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00007eb0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00007ec0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00007ed0: 206e 616d 653d 2261 6464 7265 7373 2220   name=\"address\" \n+00007ee0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00007ef0: 2220 7573 653d 226f 7074 696f 6e61 6c22  \" use=\"optional\"\n+00007f00: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00007f10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00007f20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00007f30: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00007f40: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00007f50: 6520 6d65 7461 6461 7461 5265 706f 7274  e metadataReport\n+00007f60: 2061 6464 7265 7373 2e20 5d5d 3e3c 2f78   address. ]]></x\n+00007f70: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00007f80: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00007f90: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00007fa0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00007fb0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00007fc0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00007fd0: 7465 206e 616d 653d 2275 7365 726e 616d  te name=\"usernam\n+00007fe0: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n+00007ff0: 696e 6722 2075 7365 3d22 6f70 7469 6f6e  ing\" use=\"option\n+00008000: 616c 223e 0d0a 2020 2020 2020 2020 2020  al\">..          \n+00008010: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00008020: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008030: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00008040: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00008050: 2054 6865 206d 6574 6164 6174 6152 6570   The metadataRep\n+00008060: 6f72 7420 7573 6572 6e61 6d65 2e20 5d5d  ort username. ]]\n+00008070: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00008080: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00008090: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+000080a0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+000080b0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000080c0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000080d0: 7269 6275 7465 206e 616d 653d 2270 6173  ribute name=\"pas\n+000080e0: 7377 6f72 6422 2074 7970 653d 2278 7364  sword\" type=\"xsd\n+000080f0: 3a73 7472 696e 6722 2075 7365 3d22 6f70  :string\" use=\"op\n+00008100: 7469 6f6e 616c 223e 0d0a 2020 2020 2020  tional\">..      \n+00008110: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00008120: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00008130: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00008140: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00008150: 4154 415b 2054 6865 206d 6574 6164 6174  ATA[ The metadat\n+00008160: 6152 6570 6f72 7420 7061 7373 776f 7264  aReport password\n+00008170: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00008180: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00008190: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+000081a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000081b0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000081c0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+000081d0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000081e0: 2274 696d 656f 7574 2220 7479 7065 3d22  \"timeout\" type=\"\n+000081f0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n+00008200: 226f 7074 696f 6e61 6c22 3e0d 0a20 2020  \"optional\">..   \n+00008210: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00008220: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00008230: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00008240: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00008250: 5b43 4441 5441 5b20 5468 6520 7265 7175  [CDATA[ The requ\n+00008260: 6573 7420 7469 6d65 6f75 742e 205d 5d3e  est timeout. ]]>\n+00008270: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00008280: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00008290: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000082a0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000082b0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000082c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000082d0: 6962 7574 6520 6e61 6d65 3d22 6772 6f75  ibute name=\"grou\n+000082e0: 7022 2074 7970 653d 2278 7364 3a73 7472  p\" type=\"xsd:str\n+000082f0: 696e 6722 2075 7365 3d22 6f70 7469 6f6e  ing\" use=\"option\n+00008300: 616c 223e 0d0a 2020 2020 2020 2020 2020  al\">..          \n+00008310: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00008320: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008330: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00008340: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00008350: 2054 6865 2067 726f 7570 206f 6620 6d65   The group of me\n+00008360: 7461 6461 7461 2d72 6570 6f72 742e 205d  tadata-report. ]\n+00008370: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00008380: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00008390: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000083a0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+000083b0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+000083c0: 0a0d 0a20 2020 2020 2020 203c 7873 643a  ...        <xsd:\n+000083d0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000083e0: 7265 7472 792d 7469 6d65 7322 2074 7970  retry-times\" typ\n+000083f0: 653d 2278 7364 3a69 6e74 6567 6572 2220  e=\"xsd:integer\" \n+00008400: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+00008410: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00008420: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00008430: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00008440: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008450: 6e3e 3c21 5b43 4441 5441 5b20 6966 2066  n><![CDATA[ if f\n+00008460: 6169 6c2c 2072 6574 7279 2074 696d 6573  ail, retry times\n+00008470: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00008480: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00008490: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+000084a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000084b0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000084c0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+000084d0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000084e0: 2272 6574 7279 2d70 6572 696f 6422 2074  \"retry-period\" t\n+000084f0: 7970 653d 2278 7364 3a69 6e74 6567 6572  ype=\"xsd:integer\n+00008500: 2220 7573 653d 226f 7074 696f 6e61 6c22  \" use=\"optional\"\n+00008510: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00008520: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00008530: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00008540: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00008550: 696f 6e3e 3c21 5b43 4441 5441 5b20 6966  ion><![CDATA[ if\n+00008560: 2066 6169 6c2c 2072 6574 7279 2070 6572   fail, retry per\n+00008570: 696f 642e 205d 5d3e 3c2f 7873 643a 646f  iod. ]]></xsd:do\n+00008580: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00008590: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000085a0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000085b0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+000085c0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+000085d0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+000085e0: 6d65 3d22 6379 636c 652d 7265 706f 7274  me=\"cycle-report\n+000085f0: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n+00008600: 6561 6e22 2075 7365 3d22 6f70 7469 6f6e  ean\" use=\"option\n+00008610: 616c 223e 0d0a 2020 2020 2020 2020 2020  al\">..          \n+00008620: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00008630: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008640: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00008650: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00008660: 2072 6570 6f72 7420 6379 636c 656c 792e   report cyclely.\n+00008670: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00008680: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00008690: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+000086a0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000086b0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+000086c0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+000086d0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000086e0: 7379 6e63 2d72 6570 6f72 7422 2074 7970  sync-report\" typ\n+000086f0: 653d 2278 7364 3a62 6f6f 6c65 616e 2220  e=\"xsd:boolean\" \n+00008700: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+00008710: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00008720: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00008730: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00008740: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008750: 6e3e 3c21 5b43 4441 5441 5b20 5379 6e63  n><![CDATA[ Sync\n+00008760: 206f 7220 4173 796e 6320 7265 706f 7274   or Async report\n+00008770: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00008780: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00008790: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+000087a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000087b0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000087c0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+000087d0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000087e0: 2263 6c75 7374 6572 2220 7479 7065 3d22  \"cluster\" type=\"\n+000087f0: 7873 643a 626f 6f6c 6561 6e22 2075 7365  xsd:boolean\" use\n+00008800: 3d22 6f70 7469 6f6e 616c 223e 0d0a 2020  =\"optional\">..  \n+00008810: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00008820: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00008830: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008840: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00008850: 215b 4344 4154 415b 204e 6565 6420 636c  ![CDATA[ Need cl\n+00008860: 7573 7465 7220 7375 7070 6f72 742c 2064  uster support, d\n+00008870: 6566 6175 6c74 2066 616c 7365 2e20 5d5d  efault false. ]]\n+00008880: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00008890: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000088a0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+000088b0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+000088c0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000088d0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+000088e0: 7269 6275 7465 206e 616d 653d 2272 6567  ribute name=\"reg\n+000088f0: 6973 7472 7922 2074 7970 653d 2278 7364  istry\" type=\"xsd\n+00008900: 3a73 7472 696e 6722 2075 7365 3d22 6f70  :string\" use=\"op\n+00008910: 7469 6f6e 616c 223e 0d0a 2020 2020 2020  tional\">..      \n+00008920: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00008930: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00008940: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00008950: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00008960: 4154 415b 2072 6567 6973 7472 7920 636f  ATA[ registry co\n+00008970: 6e66 6967 2069 642e 205d 5d3e 3c2f 7873  nfig id. ]]></xs\n+00008980: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00008990: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+000089a0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000089b0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+000089c0: 7474 7269 6275 7465 3e0d 0a20 2020 203c  ttribute>..    <\n+000089d0: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n+000089e0: 3e0d 0a0d 0a20 2020 203c 7873 643a 636f  >....    <xsd:co\n+000089f0: 6d70 6c65 7854 7970 6520 6e61 6d65 3d22  mplexType name=\"\n+00008a00: 636f 6e66 6967 4365 6e74 6572 5479 7065  configCenterType\n+00008a10: 223e 0d0a 2020 2020 2020 2020 3c78 7364  \">..        <xsd\n+00008a20: 3a73 6571 7565 6e63 6520 6d69 6e4f 6363  :sequence minOcc\n+00008a30: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n+00008a40: 733d 2275 6e62 6f75 6e64 6564 223e 0d0a  s=\"unbounded\">..\n+00008a50: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008a60: 3a65 6c65 6d65 6e74 2072 6566 3d22 7061  :element ref=\"pa\n+00008a70: 7261 6d65 7465 7222 206d 696e 4f63 6375  rameter\" minOccu\n+00008a80: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n+00008a90: 3d22 756e 626f 756e 6465 6422 2f3e 0d0a  =\"unbounded\"/>..\n+00008aa0: 2020 2020 2020 2020 3c2f 7873 643a 7365          </xsd:se\n+00008ab0: 7175 656e 6365 3e0d 0a20 2020 2020 2020  quence>..       \n+00008ac0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00008ad0: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n+00008ae0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00008af0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00008b00: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00008b10: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00008b20: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00008b30: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00008b40: 6865 2063 6f6e 6669 6720 6365 6e74 6572  he config center\n+00008b50: 2070 726f 746f 636f 6c2e 205d 5d3e 3c2f   protocol. ]]></\n+00008b60: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008b70: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008b80: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00008b90: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00008ba0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00008bb0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00008bc0: 7574 6520 6e61 6d65 3d22 6164 6472 6573  ute name=\"addres\n+00008bd0: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n+00008be0: 696e 6722 2075 7365 3d22 6f70 7469 6f6e  ing\" use=\"option\n+00008bf0: 616c 223e 0d0a 2020 2020 2020 2020 2020  al\">..          \n+00008c00: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00008c10: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008c20: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00008c30: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00008c40: 2054 6865 2063 6f6e 6669 6720 6365 6e74   The config cent\n+00008c50: 6572 2061 6464 7265 7373 2e20 5d5d 3e3c  er address. ]]><\n+00008c60: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00008c70: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00008c80: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00008c90: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00008ca0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00008cb0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00008cc0: 6275 7465 206e 616d 653d 2263 6c75 7374  bute name=\"clust\n+00008cd0: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n+00008ce0: 7269 6e67 2220 7573 653d 226f 7074 696f  ring\" use=\"optio\n+00008cf0: 6e61 6c22 3e0d 0a20 2020 2020 2020 2020  nal\">..         \n+00008d00: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00008d10: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00008d20: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00008d30: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00008d40: 5b20 5468 6520 636f 6e66 6967 2063 656e  [ The config cen\n+00008d50: 7465 7220 636c 7573 7465 722c 2069 7427  ter cluster, it'\n+00008d60: 7320 7265 616c 206d 6561 6e69 6e67 206d  s real meaning m\n+00008d70: 6179 2076 6572 7920 6f6e 2064 6966 6665  ay very on diffe\n+00008d80: 7265 6e74 2043 6f6e 6669 6720 4365 6e74  rent Config Cent\n+00008d90: 6572 2070 726f 6475 6374 732e 205d 5d3e  er products. ]]>\n+00008da0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00008db0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00008dc0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00008dd0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00008de0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00008df0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00008e00: 6962 7574 6520 6e61 6d65 3d22 6e61 6d65  ibute name=\"name\n+00008e10: 7370 6163 6522 2074 7970 653d 2278 7364  space\" type=\"xsd\n+00008e20: 3a73 7472 696e 6722 2075 7365 3d22 6f70  :string\" use=\"op\n+00008e30: 7469 6f6e 616c 223e 0d0a 2020 2020 2020  tional\">..      \n+00008e40: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00008e50: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00008e60: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00008e70: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00008e80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00008e90: 203c 215b 4344 4154 415b 2054 6865 206e   <![CDATA[ The n\n+00008ea0: 616d 6573 7061 6365 206f 6620 7468 6520  amespace of the \n+00008eb0: 636f 6e66 6967 2063 656e 7465 722c 2067  config center, g\n+00008ec0: 656e 6572 616c 6c79 2069 7427 7320 7573  enerally it's us\n+00008ed0: 6564 2066 6f72 206d 756c 7469 2d74 656e  ed for multi-ten\n+00008ee0: 616e 742c 2062 7574 2069 7427 7320 7265  ant, but it's re\n+00008ef0: 616c 206d 6561 6e69 6e67 2064 6570 656e  al meaning depen\n+00008f00: 6473 206f 6e20 7468 6520 6163 7475 616c  ds on the actual\n+00008f10: 2043 6f6e 6669 6720 4365 6e74 6572 2079   Config Center y\n+00008f20: 6f75 2075 7365 2e20 5d5d 3e3c 2f78 7364  ou use. ]]></xsd\n+00008f30: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00008f40: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00008f50: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00008f60: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00008f70: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00008f80: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00008f90: 206e 616d 653d 2267 726f 7570 2220 7479   name=\"group\" ty\n+00008fa0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+00008fb0: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+00008fc0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00008fd0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00008fe0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00008ff0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00009000: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00009010: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00009020: 5b20 5468 6520 6772 6f75 7020 6f66 2074  [ The group of t\n+00009030: 6865 2063 6f6e 6669 6720 6365 6e74 6572  he config center\n+00009040: 2c20 6765 6e65 7261 6c6c 7920 6974 2773  , generally it's\n+00009050: 2075 7365 6420 746f 2069 6465 6e74 6966   used to identif\n+00009060: 7920 616e 2069 736f 6c61 7465 6420 7370  y an isolated sp\n+00009070: 6163 6520 666f 7220 6120 6261 7463 6820  ace for a batch \n+00009080: 6f66 2063 6f6e 6669 6720 6974 656d 732c  of config items,\n+00009090: 2062 7574 2069 7427 7320 7265 616c 206d   but it's real m\n+000090a0: 6561 6e69 6e67 2064 6570 656e 6473 206f  eaning depends o\n+000090b0: 6e20 7468 6520 6163 7475 616c 2043 6f6e  n the actual Con\n+000090c0: 6669 6720 4365 6e74 6572 2079 6f75 2075  fig Center you u\n+000090d0: 7365 2e2e 205d 5d3e 3c2f 7873 643a 646f  se.. ]]></xsd:do\n+000090e0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+000090f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00009100: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00009110: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00009120: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00009130: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00009140: 6d65 3d22 636f 6e66 6967 2d66 696c 6522  me=\"config-file\"\n+00009150: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00009160: 6722 2075 7365 3d22 6f70 7469 6f6e 616c  g\" use=\"optional\n+00009170: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00009180: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00009190: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000091a0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+000091b0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+000091c0: 6865 206b 6579 2075 7365 6420 746f 2067  he key used to g\n+000091d0: 6574 2074 6865 2063 6f6e 6669 6773 2061  et the configs a\n+000091e0: 7420 7374 6172 7475 702e 205d 5d3e 3c2f  t startup. ]]></\n+000091f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00009200: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00009210: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00009220: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00009230: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00009240: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00009250: 7574 6520 6e61 6d65 3d22 6170 702d 636f  ute name=\"app-co\n+00009260: 6e66 6967 2d66 696c 6522 2074 7970 653d  nfig-file\" type=\n+00009270: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n+00009280: 3d22 6f70 7469 6f6e 616c 223e 0d0a 2020  =\"optional\">..  \n+00009290: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000092a0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000092b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000092c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000092d0: 215b 4344 4154 415b 2054 6865 206b 6579  ![CDATA[ The key\n+000092e0: 2075 7365 6420 746f 2067 6574 2074 6865   used to get the\n+000092f0: 2063 6f6e 6669 6773 2061 7420 7374 6172   configs at star\n+00009300: 7475 702e 205d 5d3e 3c2f 7873 643a 646f  tup. ]]></xsd:do\n+00009310: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00009320: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00009330: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00009340: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00009350: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00009360: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00009370: 6d65 3d22 7573 6572 6e61 6d65 2220 7479  me=\"username\" ty\n+00009380: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+00009390: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+000093a0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+000093b0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000093c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000093d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000093e0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+000093f0: 7573 6572 6e61 6d65 2066 6f72 2041 5554  username for AUT\n+00009400: 482e 205d 5d3e 3c2f 7873 643a 646f 6375  H. ]]></xsd:docu\n+00009410: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00009420: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00009430: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00009440: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00009450: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00009460: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00009470: 3d22 7061 7373 776f 7264 2220 7479 7065  =\"password\" type\n+00009480: 3d22 7873 643a 7374 7269 6e67 2220 7573  =\"xsd:string\" us\n+00009490: 653d 226f 7074 696f 6e61 6c22 3e0d 0a20  e=\"optional\">.. \n+000094a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000094b0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000094c0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000094d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000094e0: 3c21 5b43 4441 5441 5b20 5468 6520 7061  <![CDATA[ The pa\n+000094f0: 7373 776f 7264 2066 6f72 2041 5554 482e  ssword for AUTH.\n+00009500: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00009510: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00009520: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00009530: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00009540: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00009550: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00009560: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00009570: 7469 6d65 6f75 7422 2074 7970 653d 2278  timeout\" type=\"x\n+00009580: 7364 3a73 7472 696e 6722 2075 7365 3d22  sd:string\" use=\"\n+00009590: 6f70 7469 6f6e 616c 223e 0d0a 2020 2020  optional\">..    \n+000095a0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000095b0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000095c0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+000095d0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+000095e0: 4344 4154 415b 2054 6865 2072 6571 7565  CDATA[ The reque\n+000095f0: 7374 2074 696d 656f 7574 2e20 5d5d 3e3c  st timeout. ]]><\n+00009600: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00009610: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00009620: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00009630: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00009640: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00009650: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00009660: 6275 7465 206e 616d 653d 2268 6967 6865  bute name=\"highe\n+00009670: 7374 2d70 7269 6f72 6974 7922 2074 7970  st-priority\" typ\n+00009680: 653d 2278 7364 3a62 6f6f 6c65 616e 2220  e=\"xsd:boolean\" \n+00009690: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+000096a0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+000096b0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000096c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000096d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000096e0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000096f0: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00009700: 5b20 5768 6574 6865 7220 7468 6520 636f  [ Whether the co\n+00009710: 6e66 6967 7320 6672 6f6d 2063 6f6e 6669  nfigs from confi\n+00009720: 6720 6365 6e74 6572 2068 6173 2074 6865  g center has the\n+00009730: 2068 6967 6865 7374 2070 7269 6f72 6974   highest priorit\n+00009740: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n+00009750: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00009760: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00009770: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00009780: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00009790: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000097a0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000097b0: 3d22 696e 636c 7564 652d 7370 7269 6e67  =\"include-spring\n+000097c0: 2d65 6e76 2220 7479 7065 3d22 7873 643a  -env\" type=\"xsd:\n+000097d0: 626f 6f6c 6561 6e22 2075 7365 3d22 6f70  boolean\" use=\"op\n+000097e0: 7469 6f6e 616c 223e 0d0a 2020 2020 2020  tional\">..      \n+000097f0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00009800: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00009810: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00009820: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00009830: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00009840: 203c 215b 4344 4154 415b 204c 6f61 6420   <![CDATA[ Load \n+00009850: 7468 6520 636f 6e66 6967 2069 7465 6d73  the config items\n+00009860: 2062 7920 4475 6262 6f20 6974 7365 6c66   by Dubbo itself\n+00009870: 206f 7220 5370 7269 6e67 2e20 5d5d 3e3c   or Spring. ]]><\n+00009880: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00009890: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000098a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000098b0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+000098c0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000098d0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000098e0: 6275 7465 206e 616d 653d 2263 6865 636b  bute name=\"check\n+000098f0: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n+00009900: 6561 6e22 2075 7365 3d22 6f70 7469 6f6e  ean\" use=\"option\n+00009910: 616c 223e 0d0a 2020 2020 2020 2020 2020  al\">..          \n+00009920: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00009930: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00009940: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00009950: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00009960: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n+00009970: 4344 4154 415b 2054 6865 2070 6f6c 6963  CDATA[ The polic\n+00009980: 7920 746f 2061 7070 6c79 2077 6865 6e20  y to apply when \n+00009990: 636f 6e6e 6563 7469 6e67 2074 6f20 636f  connecting to co\n+000099a0: 6e66 6967 2063 656e 7465 7220 6661 696c  nfig center fail\n+000099b0: 732e 205d 5d3e 3c2f 7873 643a 646f 6375  s. ]]></xsd:docu\n+000099c0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000099d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000099e0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000099f0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00009a00: 7465 3e0d 0a20 2020 203c 2f78 7364 3a63  te>..    </xsd:c\n+00009a10: 6f6d 706c 6578 5479 7065 3e0d 0a0d 0a20  omplexType>.... \n+00009a20: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n+00009a30: 7970 6520 6e61 6d65 3d22 6d6f 6e69 746f  ype name=\"monito\n+00009a40: 7254 7970 6522 3e0d 0a20 2020 2020 2020  rType\">..       \n+00009a50: 203c 7873 643a 7365 7175 656e 6365 206d   <xsd:sequence m\n+00009a60: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n+00009a70: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n+00009a80: 6422 3e0d 0a20 2020 2020 2020 2020 2020  d\">..           \n+00009a90: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n+00009aa0: 663d 2270 6172 616d 6574 6572 2220 6d69  f=\"parameter\" mi\n+00009ab0: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n+00009ac0: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n+00009ad0: 222f 3e0d 0a20 2020 2020 2020 203c 2f78  \"/>..        </x\n+00009ae0: 7364 3a73 6571 7565 6e63 653e 0d0a 2020  sd:sequence>..  \n+00009af0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00009b00: 6275 7465 206e 616d 653d 2261 6464 7265  bute name=\"addre\n+00009b10: 7373 2220 7479 7065 3d22 7873 643a 7374  ss\" type=\"xsd:st\n+00009b20: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00009b30: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00009b40: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00009b50: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00009b60: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00009b70: 415b 2054 6865 206d 6f6e 6974 6f72 2061  A[ The monitor a\n+00009b80: 6464 7265 7373 2e20 5d5d 3e3c 2f78 7364  ddress. ]]></xsd\n+00009b90: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00009ba0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00009bb0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00009bc0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00009bd0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00009be0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00009bf0: 206e 616d 653d 2270 726f 746f 636f 6c22   name=\"protocol\"\n+00009c00: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00009c10: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00009c20: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00009c30: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00009c40: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00009c50: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00009c60: 5468 6520 6d6f 6e69 746f 7220 7072 6f74  The monitor prot\n+00009c70: 6f63 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64  ocol. ]]></xsd:d\n+00009c80: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00009c90: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00009ca0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00009cb0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00009cc0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00009cd0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00009ce0: 616d 653d 2275 7365 726e 616d 6522 2074  ame=\"username\" t\n+00009cf0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00009d00: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00009d10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00009d20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00009d30: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00009d40: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00009d50: 6520 6d6f 6e69 746f 7220 7573 6572 6e61  e monitor userna\n+00009d60: 6d65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  me. ]]></xsd:doc\n+00009d70: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00009d80: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00009d90: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00009da0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00009db0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00009dc0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00009dd0: 653d 2270 6173 7377 6f72 6422 2074 7970  e=\"password\" typ\n+00009de0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00009df0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00009e00: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00009e10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00009e20: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00009e30: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00009e40: 6d6f 6e69 746f 7220 7061 7373 776f 7264  monitor password\n+00009e50: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00009e60: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00009e70: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00009e80: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00009e90: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00009ea0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00009eb0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00009ec0: 2267 726f 7570 2220 7479 7065 3d22 7873  \"group\" type=\"xs\n+00009ed0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00009ee0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00009ef0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00009f00: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00009f10: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00009f20: 4344 4154 415b 2054 6865 206d 6f6e 6974  CDATA[ The monit\n+00009f30: 6f72 2067 726f 7570 2e20 5d5d 3e3c 2f78  or group. ]]></x\n+00009f40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00009f50: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00009f60: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00009f70: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00009f80: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00009f90: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00009fa0: 7465 206e 616d 653d 2276 6572 7369 6f6e  te name=\"version\n+00009fb0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00009fc0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00009fd0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00009fe0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00009ff0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000a000: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000a010: 2054 6865 206d 6f6e 6974 6f72 2076 6572   The monitor ver\n+0000a020: 7369 6f6e 2e20 5d5d 3e3c 2f78 7364 3a64  sion. ]]></xsd:d\n+0000a030: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000a040: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000a050: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000a060: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000a070: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000a080: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000a090: 616d 653d 2269 6e74 6572 7661 6c22 2074  ame=\"interval\" t\n+0000a0a0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000a0b0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000a0c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000a0d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000a0e0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000a0f0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000a100: 6520 6d6f 6e69 746f 7220 696e 7465 7276  e monitor interv\n+0000a110: 616c 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  al. ]]></xsd:doc\n+0000a120: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000a130: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000a140: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000a150: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000a160: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000a170: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000a180: 653d 2264 6566 6175 6c74 2220 7479 7065  e=\"default\" type\n+0000a190: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+0000a1a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000a1b0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000a1c0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000a1d0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000a1e0: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n+0000a1f0: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n+0000a200: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000a210: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000a220: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000a230: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000a240: 7269 6275 7465 3e0d 0a20 2020 203c 2f78  ribute>..    </x\n+0000a250: 7364 3a63 6f6d 706c 6578 5479 7065 3e0d  sd:complexType>.\n+0000a260: 0a0d 0a20 2020 203c 7873 643a 636f 6d70  ...    <xsd:comp\n+0000a270: 6c65 7854 7970 6520 6e61 6d65 3d22 7061  lexType name=\"pa\n+0000a280: 7261 6d65 7465 7254 7970 6522 3e0d 0a20  rameterType\">.. \n+0000a290: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000a2a0: 6962 7574 6520 6e61 6d65 3d22 6b65 7922  ibute name=\"key\"\n+0000a2b0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000a2c0: 6722 2075 7365 3d22 7265 7175 6972 6564  g\" use=\"required\n+0000a2d0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000a2e0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000a2f0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000a300: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000a310: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000a320: 6865 2070 6172 616d 6574 6572 206b 6579  he parameter key\n+0000a330: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000a340: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000a350: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000a360: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000a370: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000a380: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+0000a390: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000a3a0: 2276 616c 7565 2220 7479 7065 3d22 7873  \"value\" type=\"xs\n+0000a3b0: 643a 7374 7269 6e67 2220 7573 653d 2272  d:string\" use=\"r\n+0000a3c0: 6571 7569 7265 6422 3e0d 0a20 2020 2020  equired\">..     \n+0000a3d0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000a3e0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a3f0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000a400: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000a410: 4441 5441 5b20 5468 6520 7061 7261 6d65  DATA[ The parame\n+0000a420: 7465 7220 7661 6c75 652e 205d 5d3e 3c2f  ter value. ]]></\n+0000a430: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000a440: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000a450: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+0000a460: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+0000a470: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000a480: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+0000a490: 7574 6520 6e61 6d65 3d22 6869 6465 2220  ute name=\"hide\" \n+0000a4a0: 7479 7065 3d22 7873 643a 626f 6f6c 6561  type=\"xsd:boolea\n+0000a4b0: 6e22 3e0d 0a20 2020 2020 2020 2020 2020  n\">..           \n+0000a4c0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000a4d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000a4e0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000a4f0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000a500: 4869 6465 2070 6172 616d 6574 6572 2e20  Hide parameter. \n+0000a510: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000a520: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a530: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000a540: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000a550: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000a560: 0d0a 2020 2020 3c2f 7873 643a 636f 6d70  ..    </xsd:comp\n+0000a570: 6c65 7854 7970 653e 0d0a 0d0a 2020 2020  lexType>....    \n+0000a580: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n+0000a590: 206e 616d 653d 226d 6574 7269 6373 5479   name=\"metricsTy\n+0000a5a0: 7065 223e 0d0a 2020 2020 2020 2020 3c78  pe\">..        <x\n+0000a5b0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000a5c0: 653d 2270 6f72 7422 2074 7970 653d 2278  e=\"port\" type=\"x\n+0000a5d0: 7364 3a73 7472 696e 6722 2075 7365 3d22  sd:string\" use=\"\n+0000a5e0: 7265 7175 6972 6564 223e 0d0a 2020 2020  required\">..    \n+0000a5f0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000a600: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000a610: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000a620: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000a630: 4344 4154 415b 2054 6865 206d 6574 7269  CDATA[ The metri\n+0000a640: 6373 2073 6572 7669 6365 2070 6f72 742e  cs service port.\n+0000a650: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000a660: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000a670: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+0000a680: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a690: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000a6a0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000a6b0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+0000a6c0: 7072 6f74 6f63 6f6c 2220 7479 7065 3d22  protocol\" type=\"\n+0000a6d0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n+0000a6e0: 2272 6571 7569 7265 6422 3e0d 0a20 2020  \"required\">..   \n+0000a6f0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000a700: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000a710: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000a720: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000a730: 5b43 4441 5441 5b20 5468 6520 6d65 7472  [CDATA[ The metr\n+0000a740: 6963 7320 7365 7276 6963 6520 7072 6f74  ics service prot\n+0000a750: 6f63 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64  ocol. ]]></xsd:d\n+0000a760: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000a770: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000a780: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000a790: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000a7a0: 6962 7574 653e 0d0a 2020 2020 3c2f 7873  ibute>..    </xs\n+0000a7b0: 643a 636f 6d70 6c65 7854 7970 653e 0d0a  d:complexType>..\n+0000a7c0: 0d0a 2020 2020 3c78 7364 3a63 6f6d 706c  ..    <xsd:compl\n+0000a7d0: 6578 5479 7065 206e 616d 653d 226d 6574  exType name=\"met\n+0000a7e0: 686f 6454 7970 6522 3e0d 0a20 2020 2020  hodType\">..     \n+0000a7f0: 2020 203c 7873 643a 636f 6d70 6c65 7843     <xsd:complexC\n+0000a800: 6f6e 7465 6e74 3e0d 0a20 2020 2020 2020  ontent>..       \n+0000a810: 2020 2020 203c 7873 643a 6578 7465 6e73       <xsd:extens\n+0000a820: 696f 6e20 6261 7365 3d22 6162 7374 7261  ion base=\"abstra\n+0000a830: 6374 4d65 7468 6f64 5479 7065 223e 0d0a  ctMethodType\">..\n+0000a840: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a850: 3c78 7364 3a63 686f 6963 6520 6d69 6e4f  <xsd:choice minO\n+0000a860: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n+0000a870: 7572 733d 2275 6e62 6f75 6e64 6564 223e  urs=\"unbounded\">\n+0000a880: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000a890: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+0000a8a0: 6e74 2072 6566 3d22 6172 6775 6d65 6e74  nt ref=\"argument\n+0000a8b0: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n+0000a8c0: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n+0000a8d0: 6e64 6564 222f 3e0d 0a20 2020 2020 2020  nded\"/>..       \n+0000a8e0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000a8f0: 643a 656c 656d 656e 7420 7265 663d 2270  d:element ref=\"p\n+0000a900: 6172 616d 6574 6572 2220 6d69 6e4f 6363  arameter\" minOcc\n+0000a910: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n+0000a920: 733d 2275 6e62 6f75 6e64 6564 222f 3e0d  s=\"unbounded\"/>.\n+0000a930: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000a940: 203c 2f78 7364 3a63 686f 6963 653e 0d0a   </xsd:choice>..\n+0000a950: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a960: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000a970: 616d 653d 226e 616d 6522 2074 7970 653d  ame=\"name\" type=\n+0000a980: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n+0000a990: 3d22 7265 7175 6972 6564 223e 0d0a 2020  =\"required\">..  \n+0000a9a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a9b0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000a9c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000a9d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000a9e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000a9f0: 215b 4344 4154 415b 2054 6865 206d 6574  ![CDATA[ The met\n+0000aa00: 686f 6420 6e61 6d65 2028 6d65 7468 6f64  hod name (method\n+0000aa10: 2e74 6f53 7472 696e 6728 2929 2e20 5d5d  .toString()). ]]\n+0000aa20: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000aa30: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000aa40: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000aa50: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000aa60: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+0000aa70: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000aa80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000aa90: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000aaa0: 616d 653d 2265 7865 6375 7465 7322 2074  ame=\"executes\" t\n+0000aab0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000aac0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000aad0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000aae0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000aaf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ab00: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000ab10: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000ab20: 6520 6d61 7820 6163 7469 7665 2072 6571  e max active req\n+0000ab30: 7565 7374 732e 205d 5d3e 3c2f 7873 643a  uests. ]]></xsd:\n+0000ab40: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000ab50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ab60: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000ab70: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000ab80: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000ab90: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000aba0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000abb0: 7472 6962 7574 6520 6e61 6d65 3d22 7374  tribute name=\"st\n+0000abc0: 6174 2220 7479 7065 3d22 7873 643a 7374  at\" type=\"xsd:st\n+0000abd0: 7269 6e67 2220 6465 6661 756c 743d 222d  ring\" default=\"-\n+0000abe0: 3122 3e0d 0a20 2020 2020 2020 2020 2020  1\">..           \n+0000abf0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000ac00: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000ac10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ac20: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000ac30: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000ac40: 5468 6520 6d65 7468 6f64 2070 6172 616d  The method param\n+0000ac50: 6574 6572 2069 6e64 6578 2066 6f72 2073  eter index for s\n+0000ac60: 7461 7469 7374 6963 732e 205d 5d3e 3c2f  tatistics. ]]></\n+0000ac70: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000ac80: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000ac90: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000aca0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000acb0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000acc0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000acd0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000ace0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000acf0: 3d22 7265 7472 7922 2074 7970 653d 2278  =\"retry\" type=\"x\n+0000ad00: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000ad10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ad20: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000ad30: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000ad40: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000ad50: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000ad60: 5b43 4441 5441 5b20 4465 7072 6563 6174  [CDATA[ Deprecat\n+0000ad70: 6564 2e20 5265 706c 6163 6520 746f 2072  ed. Replace to r\n+0000ad80: 6574 7269 6573 2e20 5d5d 3e3c 2f78 7364  etries. ]]></xsd\n+0000ad90: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000ada0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000adb0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000adc0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000add0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000ade0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000adf0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000ae00: 7474 7269 6275 7465 206e 616d 653d 2272  ttribute name=\"r\n+0000ae10: 656c 6961 626c 6522 2074 7970 653d 2278  eliable\" type=\"x\n+0000ae20: 7364 3a73 7472 696e 6722 2064 6566 6175  sd:string\" defau\n+0000ae30: 6c74 3d22 6661 6c73 6522 3e0d 0a20 2020  lt=\"false\">..   \n+0000ae40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ae50: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000ae60: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000ae70: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000ae80: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000ae90: 5b43 4441 5441 5b20 4465 7072 6563 6174  [CDATA[ Deprecat\n+0000aea0: 6564 2e20 5265 706c 6163 6520 746f 206e  ed. Replace to n\n+0000aeb0: 6170 6f6c 6920 7072 6f74 6f63 6f6c 2e20  apoli protocol. \n+0000aec0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000aed0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000aee0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000aef0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000af00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000af10: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000af20: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000af30: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000af40: 206e 616d 653d 2264 6570 7265 6361 7465   name=\"deprecate\n+0000af50: 6422 2074 7970 653d 2278 7364 3a73 7472  d\" type=\"xsd:str\n+0000af60: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000af70: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000af80: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000af90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000afa0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000afb0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000afc0: 5b20 5468 6520 6d65 7468 6f64 2064 6570  [ The method dep\n+0000afd0: 7265 6361 7465 642e 205d 5d3e 3c2f 7873  recated. ]]></xs\n+0000afe0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000aff0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000b000: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+0000b010: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000b020: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000b030: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000b040: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000b050: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+0000b060: 7374 6963 6b79 2220 7479 7065 3d22 7873  sticky\" type=\"xs\n+0000b070: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n 0000b080: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b090: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000b0a0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000b0b0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000b0c0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000b0d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000b0e0: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n-0000b0f0: 4344 4154 415b 204d 6574 686f 6420 7265  CDATA[ Method re\n-0000b100: 7475 726e 2074 7269 6767 6572 2e20 7265  turn trigger. re\n-0000b110: 7475 726e 2061 7474 7269 6275 7465 206d  turn attribute m\n-0000b120: 7573 7420 6265 2074 7275 652e 5d5d 3e3c  ust be true.]]><\n-0000b130: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000b140: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b150: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000b160: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000b170: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000b180: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000b190: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000b1a0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000b1b0: 6f6e 7468 726f 7722 2074 7970 653d 2278  onthrow\" type=\"x\n-0000b1c0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000b1d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b1e0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000b090: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000b0a0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000b0b0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000b0c0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000b0d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b0e0: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n+0000b0f0: 4154 415b 2045 6e61 626c 652f 4469 7361  ATA[ Enable/Disa\n+0000b100: 626c 6520 636c 7573 7465 7220 7374 6963  ble cluster stic\n+0000b110: 6b79 2070 6f6c 6963 792e 4465 6661 756c  ky policy.Defaul\n+0000b120: 7420 6661 6c73 6520 5d5d 3e3c 2f78 7364  t false ]]></xsd\n+0000b130: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000b140: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000b150: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000b160: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000b170: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000b180: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000b190: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000b1a0: 7474 7269 6275 7465 206e 616d 653d 2272  ttribute name=\"r\n+0000b1b0: 6574 7572 6e22 2074 7970 653d 2278 7364  eturn\" type=\"xsd\n+0000b1c0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000b1d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000b1e0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n 0000b1f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n 0000b200: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000b210: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-0000b220: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b230: 2020 2020 2020 2020 203c 215b 4344 4154           <![CDAT\n-0000b240: 415b 204d 6574 686f 6420 6f6e 2065 7272  A[ Method on err\n-0000b250: 6f72 2074 7269 6767 6572 2e72 6574 7572  or trigger.retur\n-0000b260: 6e20 6174 7472 6962 7574 6520 6d75 7374  n attribute must\n-0000b270: 2062 6520 7472 7565 2e5d 5d3e 3c2f 7873   be true.]]></xs\n-0000b280: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000b290: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000b2a0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000b2b0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000b2c0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000b2d0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000b2e0: 2020 2020 3c2f 7873 643a 6578 7465 6e73      </xsd:extens\n-0000b2f0: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000b300: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-0000b310: 743e 0a20 2020 203c 2f78 7364 3a63 6f6d  t>.    </xsd:com\n-0000b320: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-0000b330: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-0000b340: 6e61 6d65 3d22 6172 6775 6d65 6e74 5479  name=\"argumentTy\n-0000b350: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-0000b360: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000b370: 3d22 696e 6465 7822 2074 7970 653d 2278  =\"index\" type=\"x\n-0000b380: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000b390: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000b3a0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000b3b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000b3c0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000b3d0: 4441 5441 5b20 5468 6520 6172 6775 6d65  DATA[ The argume\n-0000b3e0: 6e74 2069 6e64 6578 2e20 5d5d 3e3c 2f78  nt index. ]]></x\n-0000b3f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000b400: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-0000b410: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000b420: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000b430: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-0000b440: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000b450: 6e61 6d65 3d22 7479 7065 2220 7479 7065  name=\"type\" type\n-0000b460: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000b470: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000b480: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000b490: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000b4a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000b4b0: 215b 4344 4154 415b 2054 6865 2061 7267  ![CDATA[ The arg\n-0000b4c0: 756d 656e 7420 7479 7065 2e20 5d5d 3e3c  ument type. ]]><\n-0000b4d0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000b4e0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b4f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000b500: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000b510: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000b520: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000b530: 6520 6e61 6d65 3d22 6361 6c6c 6261 636b  e name=\"callback\n-0000b540: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000b550: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000b560: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000b570: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000b580: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000b590: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000b5a0: 6865 2061 7267 756d 656e 7420 6973 2063  he argument is c\n-0000b5b0: 616c 6c62 6163 6b2e 205d 5d3e 3c2f 7873  allback. ]]></xs\n-0000b5c0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000b5d0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000b5e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000b5f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000b600: 7269 6275 7465 3e0a 2020 2020 3c2f 7873  ribute>.    </xs\n-0000b610: 643a 636f 6d70 6c65 7854 7970 653e 0a0a  d:complexType>..\n-0000b620: 2020 2020 3c78 7364 3a63 6f6d 706c 6578      <xsd:complex\n-0000b630: 5479 7065 206e 616d 653d 2263 6f6e 7375  Type name=\"consu\n-0000b640: 6d65 7254 7970 6522 3e0a 2020 2020 2020  merType\">.      \n-0000b650: 2020 3c78 7364 3a63 6f6d 706c 6578 436f    <xsd:complexCo\n-0000b660: 6e74 656e 743e 0a20 2020 2020 2020 2020  ntent>.         \n-0000b670: 2020 203c 7873 643a 6578 7465 6e73 696f     <xsd:extensio\n-0000b680: 6e20 6261 7365 3d22 6162 7374 7261 6374  n base=\"abstract\n-0000b690: 5265 6665 7265 6e63 6554 7970 6522 3e0a  ReferenceType\">.\n-0000b6a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b6b0: 3c78 7364 3a73 6571 7565 6e63 6520 6d69  <xsd:sequence mi\n-0000b6c0: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n-0000b6d0: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n-0000b6e0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000b6f0: 2020 2020 2020 203c 7873 643a 656c 656d         <xsd:elem\n-0000b700: 656e 7420 7265 663d 2272 6566 6572 656e  ent ref=\"referen\n-0000b710: 6365 2220 6d69 6e4f 6363 7572 733d 2230  ce\" minOccurs=\"0\n-0000b720: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n-0000b730: 6f75 6e64 6564 222f 3e0a 2020 2020 2020  ounded\"/>.      \n-0000b740: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000b750: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n-0000b760: 7061 7261 6d65 7465 7222 206d 696e 4f63  parameter\" minOc\n-0000b770: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n-0000b780: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n-0000b790: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000b7a0: 203c 2f78 7364 3a73 6571 7565 6e63 653e   </xsd:sequence>\n-0000b7b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000b7c0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000b7d0: 6e61 6d65 3d22 6465 6661 756c 7422 2074  name=\"default\" t\n-0000b7e0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000b7f0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000b800: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000b810: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000b820: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000b830: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000b840: 6e3e 3c21 5b43 4441 5441 5b20 4973 2064  n><![CDATA[ Is d\n-0000b850: 6566 6175 6c74 2e20 5d5d 3e3c 2f78 7364  efault. ]]></xsd\n-0000b860: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000b870: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b880: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000b890: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000b8a0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000b8b0: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n+0000b210: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000b220: 4441 5441 5b20 4d65 7468 6f64 2072 6573  DATA[ Method res\n+0000b230: 756c 7420 6973 2072 6574 7572 6e2e 2064  ult is return. d\n+0000b240: 6566 6175 6c74 2069 7320 7472 7565 2e5d  efault is true.]\n+0000b250: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000b260: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000b270: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000b280: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000b290: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000b2a0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000b2b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000b2c0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+0000b2d0: 6e61 6d65 3d22 6f6e 696e 766f 6b65 2220  name=\"oninvoke\" \n+0000b2e0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000b2f0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000b300: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000b310: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000b320: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b330: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000b340: 7469 6f6e 3e3c 215b 4344 4154 415b 204d  tion><![CDATA[ M\n+0000b350: 6574 686f 6420 696e 766f 6b65 2074 7269  ethod invoke tri\n+0000b360: 6767 6572 2e5d 5d3e 3c2f 7873 643a 646f  gger.]]></xsd:do\n+0000b370: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000b380: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b390: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000b3a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000b3b0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000b3c0: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000b3d0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000b3e0: 6962 7574 6520 6e61 6d65 3d22 6f6e 7265  ibute name=\"onre\n+0000b3f0: 7475 726e 2220 7479 7065 3d22 7873 643a  turn\" type=\"xsd:\n+0000b400: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000b410: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000b420: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000b430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b440: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000b450: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000b460: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b470: 2020 2020 2020 2020 203c 215b 4344 4154           <![CDAT\n+0000b480: 415b 204d 6574 686f 6420 7265 7475 726e  A[ Method return\n+0000b490: 2074 7269 6767 6572 2e20 7265 7475 726e   trigger. return\n+0000b4a0: 2061 7474 7269 6275 7465 206d 7573 7420   attribute must \n+0000b4b0: 6265 2074 7275 652e 5d5d 3e3c 2f78 7364  be true.]]></xsd\n+0000b4c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000b4d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000b4e0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000b4f0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000b500: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000b510: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000b520: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000b530: 7474 7269 6275 7465 206e 616d 653d 226f  ttribute name=\"o\n+0000b540: 6e74 6872 6f77 2220 7479 7065 3d22 7873  nthrow\" type=\"xs\n+0000b550: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000b560: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b570: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000b580: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000b590: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000b5a0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000b5b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b5c0: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n+0000b5d0: 4154 415b 204d 6574 686f 6420 6f6e 2065  ATA[ Method on e\n+0000b5e0: 7272 6f72 2074 7269 6767 6572 2e72 6574  rror trigger.ret\n+0000b5f0: 7572 6e20 6174 7472 6962 7574 6520 6d75  urn attribute mu\n+0000b600: 7374 2062 6520 7472 7565 2e5d 5d3e 3c2f  st be true.]]></\n+0000b610: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000b620: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000b630: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000b640: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000b650: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000b660: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000b670: 2020 2020 2020 2020 203c 2f78 7364 3a65           </xsd:e\n+0000b680: 7874 656e 7369 6f6e 3e0d 0a20 2020 2020  xtension>..     \n+0000b690: 2020 203c 2f78 7364 3a63 6f6d 706c 6578     </xsd:complex\n+0000b6a0: 436f 6e74 656e 743e 0d0a 2020 2020 3c2f  Content>..    </\n+0000b6b0: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n+0000b6c0: 0d0a 0d0a 2020 2020 3c78 7364 3a63 6f6d  ....    <xsd:com\n+0000b6d0: 706c 6578 5479 7065 206e 616d 653d 2261  plexType name=\"a\n+0000b6e0: 7267 756d 656e 7454 7970 6522 3e0d 0a20  rgumentType\">.. \n+0000b6f0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000b700: 6962 7574 6520 6e61 6d65 3d22 696e 6465  ibute name=\"inde\n+0000b710: 7822 2074 7970 653d 2278 7364 3a73 7472  x\" type=\"xsd:str\n+0000b720: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000b730: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000b740: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000b750: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000b760: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000b770: 5b20 5468 6520 6172 6775 6d65 6e74 2069  [ The argument i\n+0000b780: 6e64 6578 2e20 5d5d 3e3c 2f78 7364 3a64  ndex. ]]></xsd:d\n+0000b790: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000b7a0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000b7b0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000b7c0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000b7d0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000b7e0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000b7f0: 616d 653d 2274 7970 6522 2074 7970 653d  ame=\"type\" type=\n+0000b800: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000b810: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000b820: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000b830: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000b840: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000b850: 3c21 5b43 4441 5441 5b20 5468 6520 6172  <![CDATA[ The ar\n+0000b860: 6775 6d65 6e74 2074 7970 652e 205d 5d3e  gument type. ]]>\n+0000b870: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000b880: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000b890: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000b8a0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000b8b0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n 0000b8c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000b8d0: 6962 7574 6520 6e61 6d65 3d22 636c 6965  ibute name=\"clie\n-0000b8e0: 6e74 2220 7479 7065 3d22 7873 643a 7374  nt\" type=\"xsd:st\n-0000b8f0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-0000b900: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000b910: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000b920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b930: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-0000b940: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-0000b950: 2054 7261 6e73 706f 7274 6572 206c 6179   Transporter lay\n-0000b960: 6572 2066 7261 6d65 776f 726b 3a20 6e65  er framework: ne\n-0000b970: 7474 7920 6d69 6e61 2e2e 2e2e 205d 5d3e  tty mina.... ]]>\n-0000b980: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000b990: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000b9a0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000b9b0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000b9c0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000b9d0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000b9e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000b9f0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000ba00: 2274 6872 6561 6470 6f6f 6c22 2074 7970  \"threadpool\" typ\n-0000ba10: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000ba20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ba30: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000ba40: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000ba50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000ba60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000ba70: 3c21 5b43 4441 5441 5b20 436f 6e73 756d  <![CDATA[ Consum\n-0000ba80: 6572 2074 6872 6561 6470 6f6f 6c3a 2063  er threadpool: c\n-0000ba90: 6163 6865 642c 2066 6978 6564 2c20 6c69  ached, fixed, li\n-0000baa0: 6d69 7465 642c 2065 6167 6572 5d5d 3e3c  mited, eager]]><\n-0000bab0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000bac0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000bad0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000bae0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000baf0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000bb00: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000bb10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000bb20: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000bb30: 636f 7265 7468 7265 6164 7322 2074 7970  corethreads\" typ\n-0000bb40: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000bb50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bb60: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000bb70: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bb80: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000bb90: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000bba0: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n-0000bbb0: 7265 6164 2070 6f6f 6c20 636f 7265 2074  read pool core t\n-0000bbc0: 6872 6561 6473 2073 697a 652e 205d 5d3e  hreads size. ]]>\n-0000bbd0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000bbe0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bbf0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000bc00: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000bc10: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000bc20: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000bc30: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000bc40: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000bc50: 2274 6872 6561 6473 2220 7479 7065 3d22  \"threads\" type=\"\n-0000bc60: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000bc70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bc80: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000bc90: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000bca0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000bcb0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000bcc0: 4344 4154 415b 2054 6865 2074 6872 6561  CDATA[ The threa\n-0000bcd0: 6420 706f 6f6c 2073 697a 652e 205d 5d3e  d pool size. ]]>\n-0000bce0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000bcf0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bd00: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000bd10: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000bd20: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000bd30: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000bd40: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000bd50: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000bd60: 2271 7565 7565 7322 2074 7970 653d 2278  \"queues\" type=\"x\n-0000bd70: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000bd80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bd90: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000bda0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000bdb0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000bdc0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000bdd0: 4441 5441 5b20 5468 6520 7468 7265 6164  DATA[ The thread\n-0000bde0: 2070 6f6f 6c20 7175 6575 6520 7369 7a65   pool queue size\n-0000bdf0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000be00: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000be10: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000be20: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000be30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000be40: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000be50: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000be60: 203c 7873 643a 616e 7941 7474 7269 6275   <xsd:anyAttribu\n-0000be70: 7465 206e 616d 6573 7061 6365 3d22 2323  te namespace=\"##\n-0000be80: 6f74 6865 7222 2070 726f 6365 7373 436f  other\" processCo\n-0000be90: 6e74 656e 7473 3d22 6c61 7822 2f3e 0a20  ntents=\"lax\"/>. \n-0000bea0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000beb0: 3a65 7874 656e 7369 6f6e 3e0a 2020 2020  :extension>.    \n-0000bec0: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n-0000bed0: 7843 6f6e 7465 6e74 3e0a 2020 2020 3c2f  xContent>.    </\n-0000bee0: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n-0000bef0: 0a0a 2020 2020 3c78 7364 3a63 6f6d 706c  ..    <xsd:compl\n-0000bf00: 6578 5479 7065 206e 616d 653d 2272 6566  exType name=\"ref\n-0000bf10: 6572 656e 6365 5479 7065 223e 0a20 2020  erenceType\">.   \n-0000bf20: 2020 2020 203c 7873 643a 636f 6d70 6c65       <xsd:comple\n-0000bf30: 7843 6f6e 7465 6e74 3e0a 2020 2020 2020  xContent>.      \n-0000bf40: 2020 2020 2020 3c78 7364 3a65 7874 656e        <xsd:exten\n-0000bf50: 7369 6f6e 2062 6173 653d 2261 6273 7472  sion base=\"abstr\n-0000bf60: 6163 7452 6566 6572 656e 6365 5479 7065  actReferenceType\n-0000bf70: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000bf80: 2020 203c 7873 643a 6368 6f69 6365 206d     <xsd:choice m\n-0000bf90: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n-0000bfa0: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n-0000bfb0: 6422 3e0a 2020 2020 2020 2020 2020 2020  d\">.            \n-0000bfc0: 2020 2020 2020 2020 3c78 7364 3a65 6c65          <xsd:ele\n-0000bfd0: 6d65 6e74 2072 6566 3d22 6d65 7468 6f64  ment ref=\"method\n-0000bfe0: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n-0000bff0: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n-0000c000: 6e64 6564 222f 3e0a 2020 2020 2020 2020  nded\"/>.        \n-0000c010: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000c020: 3a65 6c65 6d65 6e74 2072 6566 3d22 7061  :element ref=\"pa\n-0000c030: 7261 6d65 7465 7222 206d 696e 4f63 6375  rameter\" minOccu\n-0000c040: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n-0000c050: 3d22 756e 626f 756e 6465 6422 2f3e 0a20  =\"unbounded\"/>. \n-0000c060: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c070: 2f78 7364 3a63 686f 6963 653e 0a20 2020  /xsd:choice>.   \n-0000c080: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000c090: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000c0a0: 3d22 696e 7465 7266 6163 6522 2074 7970  =\"interface\" typ\n-0000c0b0: 653d 2278 7364 3a74 6f6b 656e 2220 7573  e=\"xsd:token\" us\n-0000c0c0: 653d 2272 6571 7569 7265 6422 3e0a 2020  e=\"required\">.  \n-0000c0d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c0e0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000c0f0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000c100: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000c110: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000c120: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n-0000c130: 6963 6520 696e 7465 7266 6163 6520 636c  ice interface cl\n-0000c140: 6173 7320 6e61 6d65 2e20 5d5d 3e3c 2f78  ass name. ]]></x\n-0000c150: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000c160: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c170: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000c180: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-0000c190: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c1a0: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n-0000c1b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000c1c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c1d0: 2020 2020 2020 3c74 6f6f 6c3a 6578 7065        <tool:expe\n-0000c1e0: 6374 6564 2d74 7970 6520 7479 7065 3d22  cted-type type=\"\n-0000c1f0: 6a61 7661 2e6c 616e 672e 436c 6173 7322  java.lang.Class\"\n-0000c200: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-0000c210: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c220: 2f74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  /tool:annotation\n-0000c230: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c240: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000c250: 6170 7069 6e66 6f3e 0a20 2020 2020 2020  appinfo>.       \n-0000c260: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000c270: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000c280: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c290: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000c2a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c2b0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000c2c0: 616d 653d 2275 726c 2220 7479 7065 3d22  ame=\"url\" type=\"\n-0000c2d0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000c2e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c2f0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000c300: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c310: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000c320: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000c330: 4344 4154 415b 2050 726f 7669 6465 7220  CDATA[ Provider \n-0000c340: 6c69 7374 2075 726c 2e20 5d5d 3e3c 2f78  list url. ]]></x\n-0000c350: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000c360: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c370: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000c380: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000c390: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000c3a0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-0000c3b0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-0000c3c0: 7472 6962 7574 6520 6e61 6d65 3d22 636c  tribute name=\"cl\n-0000c3d0: 6965 6e74 2220 7479 7065 3d22 7873 643a  ient\" type=\"xsd:\n-0000c3e0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000c3f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000c400: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000c410: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c420: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000c430: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000c440: 415b 2050 726f 746f 636f 6c20 7472 616e  A[ Protocol tran\n-0000c450: 7370 6f72 7420 636c 6965 6e74 2074 7970  sport client typ\n-0000c460: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000c470: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000c480: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c490: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000c4a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000c4b0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000c4c0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c4d0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000c4e0: 206e 616d 653d 2263 6f6e 7375 6d65 7222   name=\"consumer\"\n-0000c4f0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000c500: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000c510: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000c520: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000c530: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c540: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000c550: 696f 6e3e 3c21 5b43 4441 5441 5b20 4465  ion><![CDATA[ De\n-0000c560: 7072 6563 6174 6564 2e20 5265 706c 6163  precated. Replac\n-0000c570: 6520 746f 2072 6566 6572 656e 6365 2d64  e to reference-d\n-0000c580: 6566 6175 6c74 2e20 5d5d 3e3c 2f78 7364  efault. ]]></xsd\n-0000c590: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n+0000b8d0: 6962 7574 6520 6e61 6d65 3d22 6361 6c6c  ibute name=\"call\n+0000b8e0: 6261 636b 2220 7479 7065 3d22 7873 643a  back\" type=\"xsd:\n+0000b8f0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000b900: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000b910: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000b920: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000b930: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000b940: 4154 415b 2054 6865 2061 7267 756d 656e  ATA[ The argumen\n+0000b950: 7420 6973 2063 616c 6c62 6163 6b2e 205d  t is callback. ]\n+0000b960: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000b970: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000b980: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000b990: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000b9a0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000b9b0: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n+0000b9c0: 6578 5479 7065 3e0d 0a0d 0a20 2020 203c  exType>....    <\n+0000b9d0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n+0000b9e0: 6e61 6d65 3d22 636f 6e73 756d 6572 5479  name=\"consumerTy\n+0000b9f0: 7065 223e 0d0a 2020 2020 2020 2020 3c78  pe\">..        <x\n+0000ba00: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n+0000ba10: 743e 0d0a 2020 2020 2020 2020 2020 2020  t>..            \n+0000ba20: 3c78 7364 3a65 7874 656e 7369 6f6e 2062  <xsd:extension b\n+0000ba30: 6173 653d 2261 6273 7472 6163 7452 6566  ase=\"abstractRef\n+0000ba40: 6572 656e 6365 5479 7065 223e 0d0a 2020  erenceType\">..  \n+0000ba50: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000ba60: 7364 3a73 6571 7565 6e63 6520 6d69 6e4f  sd:sequence minO\n+0000ba70: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n+0000ba80: 7572 733d 2275 6e62 6f75 6e64 6564 223e  urs=\"unbounded\">\n+0000ba90: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000baa0: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+0000bab0: 6e74 2072 6566 3d22 7265 6665 7265 6e63  nt ref=\"referenc\n+0000bac0: 6522 206d 696e 4f63 6375 7273 3d22 3022  e\" minOccurs=\"0\"\n+0000bad0: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+0000bae0: 756e 6465 6422 2f3e 0d0a 2020 2020 2020  unded\"/>..      \n+0000baf0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000bb00: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n+0000bb10: 7061 7261 6d65 7465 7222 206d 696e 4f63  parameter\" minOc\n+0000bb20: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+0000bb30: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n+0000bb40: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000bb50: 2020 3c2f 7873 643a 7365 7175 656e 6365    </xsd:sequence\n+0000bb60: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000bb70: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000bb80: 6520 6e61 6d65 3d22 6465 6661 756c 7422  e name=\"default\"\n+0000bb90: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000bba0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000bbb0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000bbc0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000bbd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bbe0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000bbf0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000bc00: 4973 2064 6566 6175 6c74 2e20 5d5d 3e3c  Is default. ]]><\n+0000bc10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000bc20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000bc30: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000bc40: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000bc50: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000bc60: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000bc70: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000bc80: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000bc90: 653d 2263 6c69 656e 7422 2074 7970 653d  e=\"client\" type=\n+0000bca0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000bcb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bcc0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000bcd0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000bce0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000bcf0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000bd00: 3c21 5b43 4441 5441 5b20 5472 616e 7370  <![CDATA[ Transp\n+0000bd10: 6f72 7465 7220 6c61 7965 7220 6672 616d  orter layer fram\n+0000bd20: 6577 6f72 6b3a 206e 6574 7479 206d 696e  ework: netty min\n+0000bd30: 612e 2e2e 2e20 5d5d 3e3c 2f78 7364 3a64  a.... ]]></xsd:d\n+0000bd40: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000bd50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bd60: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000bd70: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000bd80: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000bd90: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000bda0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000bdb0: 7269 6275 7465 206e 616d 653d 2274 6872  ribute name=\"thr\n+0000bdc0: 6561 6470 6f6f 6c22 2074 7970 653d 2278  eadpool\" type=\"x\n+0000bdd0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000bde0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bdf0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000be00: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000be10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000be20: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000be30: 5b43 4441 5441 5b20 436f 6e73 756d 6572  [CDATA[ Consumer\n+0000be40: 2074 6872 6561 6470 6f6f 6c3a 2063 6163   threadpool: cac\n+0000be50: 6865 642c 2066 6978 6564 2c20 6c69 6d69  hed, fixed, limi\n+0000be60: 7465 642c 2065 6167 6572 5d5d 3e3c 2f78  ted, eager]]></x\n+0000be70: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000be80: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000be90: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000bea0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000beb0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000bec0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000bed0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000bee0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000bef0: 2263 6f72 6574 6872 6561 6473 2220 7479  \"corethreads\" ty\n+0000bf00: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000bf10: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000bf20: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000bf30: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000bf40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bf50: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000bf60: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000bf70: 2074 6872 6561 6420 706f 6f6c 2063 6f72   thread pool cor\n+0000bf80: 6520 7468 7265 6164 7320 7369 7a65 2e20  e threads size. \n+0000bf90: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000bfa0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000bfb0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000bfc0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000bfd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bfe0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000bff0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c000: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000c010: 206e 616d 653d 2274 6872 6561 6473 2220   name=\"threads\" \n+0000c020: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000c030: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000c040: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000c050: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000c060: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c070: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000c080: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000c090: 6865 2074 6872 6561 6420 706f 6f6c 2073  he thread pool s\n+0000c0a0: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000c0b0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000c0c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c0d0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000c0e0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000c0f0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000c100: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000c110: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000c120: 6962 7574 6520 6e61 6d65 3d22 7175 6575  ibute name=\"queu\n+0000c130: 6573 2220 7479 7065 3d22 7873 643a 7374  es\" type=\"xsd:st\n+0000c140: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000c150: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000c160: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000c170: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c180: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000c190: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000c1a0: 415b 2054 6865 2074 6872 6561 6420 706f  A[ The thread po\n+0000c1b0: 6f6c 2071 7565 7565 2073 697a 652e 205d  ol queue size. ]\n+0000c1c0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000c1d0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000c1e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000c1f0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000c200: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c210: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000c220: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c230: 203c 7873 643a 616e 7941 7474 7269 6275   <xsd:anyAttribu\n+0000c240: 7465 206e 616d 6573 7061 6365 3d22 2323  te namespace=\"##\n+0000c250: 6f74 6865 7222 2070 726f 6365 7373 436f  other\" processCo\n+0000c260: 6e74 656e 7473 3d22 6c61 7822 2f3e 0d0a  ntents=\"lax\"/>..\n+0000c270: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000c280: 643a 6578 7465 6e73 696f 6e3e 0d0a 2020  d:extension>..  \n+0000c290: 2020 2020 2020 3c2f 7873 643a 636f 6d70        </xsd:comp\n+0000c2a0: 6c65 7843 6f6e 7465 6e74 3e0d 0a20 2020  lexContent>..   \n+0000c2b0: 203c 2f78 7364 3a63 6f6d 706c 6578 5479   </xsd:complexTy\n+0000c2c0: 7065 3e0d 0a0d 0a20 2020 203c 7873 643a  pe>....    <xsd:\n+0000c2d0: 636f 6d70 6c65 7854 7970 6520 6e61 6d65  complexType name\n+0000c2e0: 3d22 7265 6665 7265 6e63 6554 7970 6522  =\"referenceType\"\n+0000c2f0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000c300: 636f 6d70 6c65 7843 6f6e 7465 6e74 3e0d  complexContent>.\n+0000c310: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+0000c320: 643a 6578 7465 6e73 696f 6e20 6261 7365  d:extension base\n+0000c330: 3d22 6162 7374 7261 6374 5265 6665 7265  =\"abstractRefere\n+0000c340: 6e63 6554 7970 6522 3e0d 0a20 2020 2020  nceType\">..     \n+0000c350: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000c360: 6368 6f69 6365 206d 696e 4f63 6375 7273  choice minOccurs\n+0000c370: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n+0000c380: 756e 626f 756e 6465 6422 3e0d 0a20 2020  unbounded\">..   \n+0000c390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c3a0: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n+0000c3b0: 663d 226d 6574 686f 6422 206d 696e 4f63  f=\"method\" minOc\n+0000c3c0: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+0000c3d0: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n+0000c3e0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c3f0: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+0000c400: 6e74 2072 6566 3d22 7061 7261 6d65 7465  nt ref=\"paramete\n+0000c410: 7222 206d 696e 4f63 6375 7273 3d22 3022  r\" minOccurs=\"0\"\n+0000c420: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+0000c430: 756e 6465 6422 2f3e 0d0a 2020 2020 2020  unded\"/>..      \n+0000c440: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000c450: 6368 6f69 6365 3e0d 0a20 2020 2020 2020  choice>..       \n+0000c460: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000c470: 7472 6962 7574 6520 6e61 6d65 3d22 696e  tribute name=\"in\n+0000c480: 7465 7266 6163 6522 2074 7970 653d 2278  terface\" type=\"x\n+0000c490: 7364 3a74 6f6b 656e 2220 7573 653d 2272  sd:token\" use=\"r\n+0000c4a0: 6571 7569 7265 6422 3e0d 0a20 2020 2020  equired\">..     \n+0000c4b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c4c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000c4d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c4e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000c4f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000c500: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+0000c510: 6520 696e 7465 7266 6163 6520 636c 6173  e interface clas\n+0000c520: 7320 6e61 6d65 2e20 5d5d 3e3c 2f78 7364  s name. ]]></xsd\n+0000c530: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000c540: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c550: 2020 2020 2020 2020 203c 7873 643a 6170           <xsd:ap\n+0000c560: 7069 6e66 6f3e 0d0a 2020 2020 2020 2020  pinfo>..        \n+0000c570: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c580: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n+0000c590: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n 0000c5a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c5b0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000c5c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000c5d0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000c5e0: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000c5f0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000c600: 6962 7574 6520 6e61 6d65 3d22 7072 6f74  ibute name=\"prot\n-0000c610: 6f63 6f6c 2220 7479 7065 3d22 7873 643a  ocol\" type=\"xsd:\n-0000c620: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000c630: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000c640: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000c650: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c660: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000c670: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000c680: 415b 2054 6865 2073 6572 7669 6365 2070  A[ The service p\n-0000c690: 726f 746f 636f 6c2e 205d 5d3e 3c2f 7873  rotocol. ]]></xs\n-0000c6a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000c6b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000c6c0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000c6d0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000c6e0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000c6f0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000c700: 2020 2020 2020 2020 3c78 7364 3a61 6e79          <xsd:any\n-0000c710: 4174 7472 6962 7574 6520 6e61 6d65 7370  Attribute namesp\n-0000c720: 6163 653d 2223 236f 7468 6572 2220 7072  ace=\"##other\" pr\n-0000c730: 6f63 6573 7343 6f6e 7465 6e74 733d 226c  ocessContents=\"l\n-0000c740: 6178 222f 3e0a 2020 2020 2020 2020 2020  ax\"/>.          \n-0000c750: 2020 3c2f 7873 643a 6578 7465 6e73 696f    </xsd:extensio\n-0000c760: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000c770: 3a63 6f6d 706c 6578 436f 6e74 656e 743e  :complexContent>\n-0000c780: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n-0000c790: 6578 5479 7065 3e0a 0a20 2020 203c 7873  exType>..    <xs\n-0000c7a0: 643a 636f 6d70 6c65 7854 7970 6520 6e61  d:complexType na\n-0000c7b0: 6d65 3d22 7072 6f74 6f63 6f6c 5479 7065  me=\"protocolType\n-0000c7c0: 223e 0a20 2020 2020 2020 203c 7873 643a  \">.        <xsd:\n-0000c7d0: 7365 7175 656e 6365 206d 696e 4f63 6375  sequence minOccu\n-0000c7e0: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n-0000c7f0: 3d22 756e 626f 756e 6465 6422 3e0a 2020  =\"unbounded\">.  \n-0000c800: 2020 2020 2020 2020 2020 3c78 7364 3a65            <xsd:e\n-0000c810: 6c65 6d65 6e74 2072 6566 3d22 7061 7261  lement ref=\"para\n-0000c820: 6d65 7465 7222 206d 696e 4f63 6375 7273  meter\" minOccurs\n-0000c830: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n-0000c840: 756e 626f 756e 6465 6422 2f3e 0a20 2020  unbounded\"/>.   \n-0000c850: 2020 2020 203c 2f78 7364 3a73 6571 7565       </xsd:seque\n-0000c860: 6e63 653e 0a20 2020 2020 2020 203c 7873  nce>.        <xs\n-0000c870: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000c880: 3d22 6964 2220 7479 7065 3d22 7873 643a  =\"id\" type=\"xsd:\n-0000c890: 4944 223e 0a20 2020 2020 2020 2020 2020  ID\">.           \n-0000c8a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000c8b0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c8c0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000c8d0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000c8e0: 6865 2075 6e69 7175 6520 6964 656e 7469  he unique identi\n-0000c8f0: 6669 6572 2066 6f72 2061 2062 6561 6e2e  fier for a bean.\n-0000c900: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000c910: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000c920: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000c930: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000c940: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000c950: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000c960: 7269 6275 7465 206e 616d 653d 226e 616d  ribute name=\"nam\n-0000c970: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-0000c980: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000c990: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000c9a0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000c9b0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000c9c0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000c9d0: 5468 6520 7072 6f74 6f63 6f6c 206e 616d  The protocol nam\n-0000c9e0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000c9f0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000ca00: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000ca10: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000ca20: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000ca30: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000ca40: 7474 7269 6275 7465 206e 616d 653d 2268  ttribute name=\"h\n-0000ca50: 6f73 7422 2074 7970 653d 2278 7364 3a73  ost\" type=\"xsd:s\n-0000ca60: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000ca70: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000ca80: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000ca90: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000caa0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000cab0: 5b20 5468 6520 7365 7276 6963 6520 686f  [ The service ho\n-0000cac0: 7374 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  st. ]]></xsd:doc\n-0000cad0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000cae0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000caf0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000cb00: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000cb10: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000cb20: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000cb30: 706f 7274 2220 7479 7065 3d22 7873 643a  port\" type=\"xsd:\n-0000cb40: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000cb50: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000cb60: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000cb70: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000cb80: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000cb90: 415b 2054 6865 2073 6572 7669 6365 2070  A[ The service p\n-0000cba0: 6f72 742e 205d 5d3e 3c2f 7873 643a 646f  ort. ]]></xsd:do\n-0000cbb0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-0000cbc0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000cbd0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000cbe0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-0000cbf0: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-0000cc00: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000cc10: 2274 6872 6561 6470 6f6f 6c22 2074 7970  \"threadpool\" typ\n-0000cc20: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000cc30: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000cc40: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000cc50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000cc60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000cc70: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n-0000cc80: 7265 6164 2070 6f6f 6c20 7479 7065 2e20  read pool type. \n-0000cc90: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000cca0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000ccb0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000ccc0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-0000ccd0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000cce0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000ccf0: 6962 7574 6520 6e61 6d65 3d22 7468 7265  ibute name=\"thre\n-0000cd00: 6164 6e61 6d65 2220 7479 7065 3d22 7873  adname\" type=\"xs\n-0000cd10: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000cd20: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000cd30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000cd40: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000cd50: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000cd60: 4154 415b 2054 6865 2074 6872 6561 6420  ATA[ The thread \n-0000cd70: 706f 6f6c 206e 616d 652e 205d 5d3e 3c2f  pool name. ]]></\n-0000cd80: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000cd90: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-0000cda0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000cdb0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-0000cdc0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000cdd0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000cde0: 206e 616d 653d 2274 6872 6561 6473 2220   name=\"threads\" \n-0000cdf0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000ce00: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-0000ce10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000ce20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ce30: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000ce40: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000ce50: 2074 6872 6561 6420 706f 6f6c 2073 697a   thread pool siz\n-0000ce60: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000ce70: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000ce80: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000ce90: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000cea0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000ceb0: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000cec0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-0000ced0: 6f72 6574 6872 6561 6473 2220 7479 7065  orethreads\" type\n-0000cee0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000cef0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000cf00: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000cf10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000cf20: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000cf30: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n-0000cf40: 6561 6420 706f 6f6c 2063 6f72 6520 7468  ead pool core th\n-0000cf50: 7265 6164 7320 7369 7a65 2e20 5d5d 3e3c  reads size. ]]><\n-0000cf60: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000cf70: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000cf80: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000cf90: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000cfa0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000cfb0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000cfc0: 6520 6e61 6d65 3d22 696f 7468 7265 6164  e name=\"iothread\n-0000cfd0: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n-0000cfe0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000cff0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000d000: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000d010: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000d020: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000d030: 5468 6520 494f 2074 6872 6561 6420 706f  The IO thread po\n-0000d040: 6f6c 2073 697a 652e 205d 5d3e 3c2f 7873  ol size. ]]></xs\n-0000d050: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000d060: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000d070: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000d080: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000d090: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000d0a0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000d0b0: 616d 653d 2261 6c69 7665 2220 7479 7065  ame=\"alive\" type\n-0000d0c0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000d0d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000d0e0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000d0f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000d100: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000d110: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n-0000d120: 6561 6420 706f 6f6c 206b 6565 7041 6c69  ead pool keepAli\n-0000d130: 7665 5469 6d65 2e20 5d5d 3e3c 2f78 7364  veTime. ]]></xsd\n-0000d140: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000d150: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000d160: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000d170: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000d180: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-0000d190: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000d1a0: 6d65 3d22 7175 6575 6573 2220 7479 7065  me=\"queues\" type\n-0000d1b0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000d1c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000d1d0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000d1e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000d1f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000d200: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n-0000d210: 6561 6420 706f 6f6c 2071 7565 7565 2073  ead pool queue s\n-0000d220: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n-0000d230: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-0000d240: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000d250: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000d260: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-0000d270: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-0000d280: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000d290: 2261 6363 6570 7473 2220 7479 7065 3d22  \"accepts\" type=\"\n-0000d2a0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000d2b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000d2c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000d2d0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000d2e0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000d2f0: 4344 4154 415b 2054 6865 2061 6363 6570  CDATA[ The accep\n-0000d300: 7420 636f 6e6e 6563 7469 6f6e 2073 697a  t connection siz\n-0000d310: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000d320: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000d330: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000d340: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000d350: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000d360: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000d370: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-0000d380: 6f64 6563 2220 7479 7065 3d22 7873 643a  odec\" type=\"xsd:\n-0000d390: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000d3a0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000d3b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000d3c0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000d3d0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000d3e0: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n-0000d3f0: 636f 6465 632e 205d 5d3e 3c2f 7873 643a  codec. ]]></xsd:\n-0000d400: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000d410: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000d420: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000d430: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000d440: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000d450: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000d460: 653d 2273 6572 6961 6c69 7a61 7469 6f6e  e=\"serialization\n-0000d470: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000d480: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000d490: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000d4a0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000d4b0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000d4c0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000d4d0: 6865 2070 726f 746f 636f 6c20 7365 7269  he protocol seri\n-0000d4e0: 616c 697a 6174 696f 6e2e 205d 5d3e 3c2f  alization. ]]></\n-0000d4f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000d500: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-0000d510: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000d520: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-0000d530: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000d540: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000d550: 206e 616d 653d 226b 6565 7061 6c69 7665   name=\"keepalive\n-0000d560: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n-0000d570: 6561 6e22 3e0a 2020 2020 2020 2020 2020  ean\">.          \n-0000d580: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000d590: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000d5a0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000d5b0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000d5c0: 5468 6520 7072 6f74 6f63 6f6c 206b 6565  The protocol kee\n-0000d5d0: 7041 6c69 7665 2e20 5d5d 3e3c 2f78 7364  pAlive. ]]></xsd\n-0000d5e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000d5f0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000d600: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000d610: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000d620: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-0000d630: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000d640: 6d65 3d22 6f70 7469 6d69 7a65 7222 2074  me=\"optimizer\" t\n-0000d650: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000d660: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000d670: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000d680: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000d690: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000d6a0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000d6b0: 7365 7269 616c 697a 6174 696f 6e20 6f70  serialization op\n-0000d6c0: 7469 6d69 7a65 722e 205d 5d3e 3c2f 7873  timizer. ]]></xs\n-0000d6d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000d6e0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000d6f0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000d700: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000d710: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000d720: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000d730: 616d 653d 2265 7874 656e 7369 6f6e 2220  ame=\"extension\" \n-0000d740: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000d750: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-0000d760: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000d770: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000d780: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000d790: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000d7a0: 2065 7874 656e 7369 6f6e 2066 6f72 2070   extension for p\n-0000d7b0: 726f 746f 636f 6c2e 205d 5d3e 3c2f 7873  rotocol. ]]></xs\n-0000d7c0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000d7d0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000d7e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000d7f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000d800: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000d810: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000d820: 616d 653d 2263 6861 7273 6574 2220 7479  ame=\"charset\" ty\n-0000d830: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000d840: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-0000d850: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000d860: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000d870: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000d880: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n-0000d890: 726f 746f 636f 6c20 6368 6172 7365 742e  rotocol charset.\n-0000d8a0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000d8b0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000d8c0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000d8d0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000d8e0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000d8f0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000d900: 7269 6275 7465 206e 616d 653d 2270 6179  ribute name=\"pay\n-0000d910: 6c6f 6164 2220 7479 7065 3d22 7873 643a  load\" type=\"xsd:\n-0000d920: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000d930: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000d940: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000d950: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000d960: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000d970: 415b 2054 6865 206d 6178 2070 6179 6c6f  A[ The max paylo\n-0000d980: 6164 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ad. ]]></xsd:doc\n-0000d990: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000d9a0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000d9b0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000d9c0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000d9d0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000d9e0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000d9f0: 6275 6666 6572 2220 7479 7065 3d22 7873  buffer\" type=\"xs\n-0000da00: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000da10: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000da20: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000da30: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000da40: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000da50: 4154 415b 2054 6865 2062 7566 6665 7220  ATA[ The buffer \n-0000da60: 7369 7a65 2e20 5d5d 3e3c 2f78 7364 3a64  size. ]]></xsd:d\n-0000da70: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000da80: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000da90: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000daa0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000dab0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000dac0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000dad0: 3d22 6865 6172 7462 6561 7422 2074 7970  =\"heartbeat\" typ\n-0000dae0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000daf0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000db00: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000db10: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000c5b0: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n+0000c5c0: 6563 7465 642d 7479 7065 2074 7970 653d  ected-type type=\n+0000c5d0: 226a 6176 612e 6c61 6e67 2e43 6c61 7373  \"java.lang.Class\n+0000c5e0: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+0000c5f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c600: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+0000c610: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000c620: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000c630: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+0000c640: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c650: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000c660: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000c670: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000c680: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+0000c690: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000c6a0: 6275 7465 206e 616d 653d 2275 726c 2220  bute name=\"url\" \n+0000c6b0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000c6c0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000c6d0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000c6e0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000c6f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c700: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000c710: 7469 6f6e 3e3c 215b 4344 4154 415b 2050  tion><![CDATA[ P\n+0000c720: 726f 7669 6465 7220 6c69 7374 2075 726c  rovider list url\n+0000c730: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000c740: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000c750: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c760: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000c770: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c780: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000c790: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+0000c7a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000c7b0: 7465 206e 616d 653d 2263 6c69 656e 7422  te name=\"client\"\n+0000c7c0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000c7d0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000c7e0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000c7f0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000c800: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c810: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000c820: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000c830: 5072 6f74 6f63 6f6c 2074 7261 6e73 706f  Protocol transpo\n+0000c840: 7274 2063 6c69 656e 7420 7479 7065 2e20  rt client type. \n+0000c850: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000c860: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000c870: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000c880: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000c890: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c8a0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000c8b0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c8c0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000c8d0: 206e 616d 653d 2263 6f6e 7375 6d65 7222   name=\"consumer\"\n+0000c8e0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000c8f0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000c900: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000c910: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000c920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c930: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000c940: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000c950: 4465 7072 6563 6174 6564 2e20 5265 706c  Deprecated. Repl\n+0000c960: 6163 6520 746f 2072 6566 6572 656e 6365  ace to reference\n+0000c970: 2d64 6566 6175 6c74 2e20 5d5d 3e3c 2f78  -default. ]]></x\n+0000c980: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000c990: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000c9a0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000c9b0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000c9c0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000c9d0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000c9e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000c9f0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000ca00: 2270 726f 746f 636f 6c22 2074 7970 653d  \"protocol\" type=\n+0000ca10: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000ca20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ca30: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000ca40: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000ca50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000ca60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000ca70: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n+0000ca80: 7276 6963 6520 7072 6f74 6f63 6f6c 2e20  rvice protocol. \n+0000ca90: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000caa0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000cab0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000cac0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000cad0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cae0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000caf0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000cb00: 2020 3c78 7364 3a61 6e79 4174 7472 6962    <xsd:anyAttrib\n+0000cb10: 7574 6520 6e61 6d65 7370 6163 653d 2223  ute namespace=\"#\n+0000cb20: 236f 7468 6572 2220 7072 6f63 6573 7343  #other\" processC\n+0000cb30: 6f6e 7465 6e74 733d 226c 6178 222f 3e0d  ontents=\"lax\"/>.\n+0000cb40: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+0000cb50: 7364 3a65 7874 656e 7369 6f6e 3e0d 0a20  sd:extension>.. \n+0000cb60: 2020 2020 2020 203c 2f78 7364 3a63 6f6d         </xsd:com\n+0000cb70: 706c 6578 436f 6e74 656e 743e 0d0a 2020  plexContent>..  \n+0000cb80: 2020 3c2f 7873 643a 636f 6d70 6c65 7854    </xsd:complexT\n+0000cb90: 7970 653e 0d0a 0d0a 2020 2020 3c78 7364  ype>....    <xsd\n+0000cba0: 3a63 6f6d 706c 6578 5479 7065 206e 616d  :complexType nam\n+0000cbb0: 653d 2270 726f 746f 636f 6c54 7970 6522  e=\"protocolType\"\n+0000cbc0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000cbd0: 7365 7175 656e 6365 206d 696e 4f63 6375  sequence minOccu\n+0000cbe0: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n+0000cbf0: 3d22 756e 626f 756e 6465 6422 3e0d 0a20  =\"unbounded\">.. \n+0000cc00: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000cc10: 656c 656d 656e 7420 7265 663d 2270 6172  element ref=\"par\n+0000cc20: 616d 6574 6572 2220 6d69 6e4f 6363 7572  ameter\" minOccur\n+0000cc30: 733d 2230 2220 6d61 784f 6363 7572 733d  s=\"0\" maxOccurs=\n+0000cc40: 2275 6e62 6f75 6e64 6564 222f 3e0d 0a20  \"unbounded\"/>.. \n+0000cc50: 2020 2020 2020 203c 2f78 7364 3a73 6571         </xsd:seq\n+0000cc60: 7565 6e63 653e 0d0a 2020 2020 2020 2020  uence>..        \n+0000cc70: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000cc80: 616d 653d 2269 6422 2074 7970 653d 2278  ame=\"id\" type=\"x\n+0000cc90: 7364 3a49 4422 3e0d 0a20 2020 2020 2020  sd:ID\">..       \n+0000cca0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000ccb0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000ccc0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000ccd0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000cce0: 5441 5b20 5468 6520 756e 6971 7565 2069  TA[ The unique i\n+0000ccf0: 6465 6e74 6966 6965 7220 666f 7220 6120  dentifier for a \n+0000cd00: 6265 616e 2e20 5d5d 3e3c 2f78 7364 3a64  bean. ]]></xsd:d\n+0000cd10: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000cd20: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000cd30: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000cd40: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000cd50: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000cd60: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000cd70: 616d 653d 226e 616d 6522 2074 7970 653d  ame=\"name\" type=\n+0000cd80: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000cd90: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000cda0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000cdb0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000cdc0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000cdd0: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000cde0: 6f74 6f63 6f6c 206e 616d 652e 205d 5d3e  otocol name. ]]>\n+0000cdf0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000ce00: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000ce10: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000ce20: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000ce30: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000ce40: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000ce50: 6962 7574 6520 6e61 6d65 3d22 686f 7374  ibute name=\"host\n+0000ce60: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000ce70: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000ce80: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000ce90: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000cea0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000ceb0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000cec0: 2054 6865 2073 6572 7669 6365 2068 6f73   The service hos\n+0000ced0: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n+0000cee0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000cef0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000cf00: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000cf10: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000cf20: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000cf30: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000cf40: 3d22 706f 7274 2220 7479 7065 3d22 7873  =\"port\" type=\"xs\n+0000cf50: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000cf60: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000cf70: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000cf80: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000cf90: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000cfa0: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n+0000cfb0: 6365 2070 6f72 742e 205d 5d3e 3c2f 7873  ce port. ]]></xs\n+0000cfc0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000cfd0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000cfe0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000cff0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000d000: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000d010: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000d020: 6520 6e61 6d65 3d22 7468 7265 6164 706f  e name=\"threadpo\n+0000d030: 6f6c 2220 7479 7065 3d22 7873 643a 7374  ol\" type=\"xsd:st\n+0000d040: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000d050: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000d060: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000d070: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000d080: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000d090: 415b 2054 6865 2074 6872 6561 6420 706f  A[ The thread po\n+0000d0a0: 6f6c 2074 7970 652e 205d 5d3e 3c2f 7873  ol type. ]]></xs\n+0000d0b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000d0c0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000d0d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000d0e0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000d0f0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000d100: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000d110: 6520 6e61 6d65 3d22 7468 7265 6164 6e61  e name=\"threadna\n+0000d120: 6d65 2220 7479 7065 3d22 7873 643a 7374  me\" type=\"xsd:st\n+0000d130: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000d140: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000d150: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000d160: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000d170: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000d180: 415b 2054 6865 2074 6872 6561 6420 706f  A[ The thread po\n+0000d190: 6f6c 206e 616d 652e 205d 5d3e 3c2f 7873  ol name. ]]></xs\n+0000d1a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000d1b0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000d1c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000d1d0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000d1e0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000d1f0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000d200: 6520 6e61 6d65 3d22 7468 7265 6164 7322  e name=\"threads\"\n+0000d210: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000d220: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000d230: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000d240: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000d250: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000d260: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000d270: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n+0000d280: 7369 7a65 2e20 5d5d 3e3c 2f78 7364 3a64  size. ]]></xsd:d\n+0000d290: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000d2a0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000d2b0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000d2c0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000d2d0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000d2e0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000d2f0: 616d 653d 2263 6f72 6574 6872 6561 6473  ame=\"corethreads\n+0000d300: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000d310: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000d320: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000d330: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000d340: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000d350: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000d360: 2054 6865 2074 6872 6561 6420 706f 6f6c   The thread pool\n+0000d370: 2063 6f72 6520 7468 7265 6164 7320 7369   core threads si\n+0000d380: 7a65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ze. ]]></xsd:doc\n+0000d390: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000d3a0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000d3b0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000d3c0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000d3d0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000d3e0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000d3f0: 653d 2269 6f74 6872 6561 6473 2220 7479  e=\"iothreads\" ty\n+0000d400: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000d410: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+0000d420: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000d430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000d440: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000d450: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000d460: 2049 4f20 7468 7265 6164 2070 6f6f 6c20   IO thread pool \n+0000d470: 7369 7a65 2e20 5d5d 3e3c 2f78 7364 3a64  size. ]]></xsd:d\n+0000d480: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000d490: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000d4a0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000d4b0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000d4c0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000d4d0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000d4e0: 616d 653d 2261 6c69 7665 2220 7479 7065  ame=\"alive\" type\n+0000d4f0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+0000d500: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000d510: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000d520: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000d530: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000d540: 3e3c 215b 4344 4154 415b 2054 6865 2074  ><![CDATA[ The t\n+0000d550: 6872 6561 6420 706f 6f6c 206b 6565 7041  hread pool keepA\n+0000d560: 6c69 7665 5469 6d65 2e20 5d5d 3e3c 2f78  liveTime. ]]></x\n+0000d570: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000d580: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000d590: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000d5a0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000d5b0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000d5c0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000d5d0: 7465 206e 616d 653d 2271 7565 7565 7322  te name=\"queues\"\n+0000d5e0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000d5f0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000d600: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000d610: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000d620: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000d630: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000d640: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n+0000d650: 7175 6575 6520 7369 7a65 2e20 5d5d 3e3c  queue size. ]]><\n+0000d660: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000d670: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000d680: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000d690: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000d6a0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000d6b0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000d6c0: 6275 7465 206e 616d 653d 2261 6363 6570  bute name=\"accep\n+0000d6d0: 7473 2220 7479 7065 3d22 7873 643a 7374  ts\" type=\"xsd:st\n+0000d6e0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000d6f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000d700: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000d710: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000d720: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000d730: 415b 2054 6865 2061 6363 6570 7420 636f  A[ The accept co\n+0000d740: 6e6e 6563 7469 6f6e 2073 697a 652e 205d  nnection size. ]\n+0000d750: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000d760: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d770: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000d780: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000d790: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000d7a0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000d7b0: 7472 6962 7574 6520 6e61 6d65 3d22 636f  tribute name=\"co\n+0000d7c0: 6465 6322 2074 7970 653d 2278 7364 3a73  dec\" type=\"xsd:s\n+0000d7d0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000d7e0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000d7f0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000d800: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000d810: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000d820: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n+0000d830: 2063 6f64 6563 2e20 5d5d 3e3c 2f78 7364   codec. ]]></xsd\n+0000d840: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000d850: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+0000d860: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000d870: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000d880: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000d890: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000d8a0: 206e 616d 653d 2273 6572 6961 6c69 7a61   name=\"serializa\n+0000d8b0: 7469 6f6e 2220 7479 7065 3d22 7873 643a  tion\" type=\"xsd:\n+0000d8c0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000d8d0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000d8e0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d8f0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000d900: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000d910: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n+0000d920: 6c20 7365 7269 616c 697a 6174 696f 6e2e  l serialization.\n+0000d930: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000d940: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000d950: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+0000d960: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000d970: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000d980: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000d990: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+0000d9a0: 6b65 6570 616c 6976 6522 2074 7970 653d  keepalive\" type=\n+0000d9b0: 2278 7364 3a62 6f6f 6c65 616e 223e 0d0a  \"xsd:boolean\">..\n+0000d9c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000d9d0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000d9e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000d9f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000da00: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n+0000da10: 726f 746f 636f 6c20 6b65 6570 416c 6976  rotocol keepAliv\n+0000da20: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+0000da30: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000da40: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000da50: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000da60: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000da70: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000da80: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000da90: 3d22 6f70 7469 6d69 7a65 7222 2074 7970  =\"optimizer\" typ\n+0000daa0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+0000dab0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+0000dac0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000dad0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000dae0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000daf0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+0000db00: 7365 7269 616c 697a 6174 696f 6e20 6f70  serialization op\n+0000db10: 7469 6d69 7a65 722e 205d 5d3e 3c2f 7873  timizer. ]]></xs\n 0000db20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000db30: 3c21 5b43 4441 5441 5b20 5468 6520 6865  <![CDATA[ The he\n-0000db40: 6172 7462 6561 7420 696e 7465 7276 616c  artbeat interval\n-0000db50: 2e28 6d73 2920 5d5d 3e3c 2f78 7364 3a64  .(ms) ]]></xsd:d\n-0000db60: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000db70: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000db80: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000db90: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000dba0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000dbb0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000dbc0: 3d22 6163 6365 7373 6c6f 6722 2074 7970  =\"accesslog\" typ\n-0000dbd0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000dbe0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000dbf0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000dc00: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000dc10: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000dc20: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n-0000dc30: 6f74 6f63 6f6c 2075 7365 2061 6363 6573  otocol use acces\n-0000dc40: 736c 6f67 2e20 5d5d 3e3c 2f78 7364 3a64  slog. ]]></xsd:d\n-0000dc50: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000dc60: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000dc70: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000dc80: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000dc90: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000dca0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000dcb0: 3d22 7465 6c6e 6574 2220 7479 7065 3d22  =\"telnet\" type=\"\n-0000dcc0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000dcd0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000dce0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000dcf0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000dd00: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000dd10: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-0000dd20: 636f 6c20 7573 6520 7465 6c6e 6574 2063  col use telnet c\n-0000dd30: 6f6d 6d61 6e64 732e 205d 5d3e 3c2f 7873  ommands. ]]></xs\n-0000dd40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000dd50: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000dd60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000dd70: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000dd80: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000dd90: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000dda0: 616d 653d 2270 726f 6d70 7422 2074 7970  ame=\"prompt\" typ\n-0000ddb0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000ddc0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000ddd0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000dde0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000ddf0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000de00: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n-0000de10: 6f74 6f63 6f6c 2074 656c 6e65 7420 7072  otocol telnet pr\n-0000de20: 6f6d 7074 2e20 5d5d 3e3c 2f78 7364 3a64  ompt. ]]></xsd:d\n-0000de30: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000de40: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000de50: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000de60: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000de70: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000de80: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000de90: 3d22 7374 6174 7573 2220 7479 7065 3d22  =\"status\" type=\"\n-0000dea0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000deb0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000dec0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ded0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000dee0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000def0: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-0000df00: 636f 6c20 6368 6563 6b20 7374 6174 7573  col check status\n-0000df10: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000df20: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000df30: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000df40: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000df50: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000df60: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000df70: 7472 6962 7574 6520 6e61 6d65 3d22 7472  tribute name=\"tr\n-0000df80: 616e 7370 6f72 7465 7222 2074 7970 653d  ansporter\" type=\n-0000df90: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000dfa0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000dfb0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000dfc0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000dfd0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000dfe0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n-0000dff0: 6f63 6f6c 2074 7261 6e73 706f 7274 6572  ocol transporter\n-0000e000: 2074 7970 652e 205d 5d3e 3c2f 7873 643a   type. ]]></xsd:\n-0000e010: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000e020: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000e030: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000e040: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000e050: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000e060: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000e070: 653d 2265 7863 6861 6e67 6572 2220 7479  e=\"exchanger\" ty\n-0000e080: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000e090: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-0000e0a0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000e0b0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000e0c0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000e0d0: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n-0000e0e0: 726f 746f 636f 6c20 6578 6368 616e 6765  rotocol exchange\n-0000e0f0: 7220 7479 7065 2e20 5d5d 3e3c 2f78 7364  r type. ]]></xsd\n-0000e100: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000e110: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000e120: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000e130: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000e140: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-0000e150: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000e160: 6d65 3d22 6469 7370 6174 6865 7222 2074  me=\"dispather\" t\n-0000e170: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000e180: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000e190: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000e1a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000e1b0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000e1c0: 6e3e 3c21 5b43 4441 5441 5b20 4465 7072  n><![CDATA[ Depr\n-0000e1d0: 6563 6174 6564 2e20 7265 706c 6163 6520  ecated. replace \n-0000e1e0: 746f 2022 6469 7370 6174 6368 6572 222e  to \"dispatcher\".\n-0000e1f0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000e200: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000e210: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000e220: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000e230: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000e240: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000e250: 7269 6275 7465 206e 616d 653d 2264 6973  ribute name=\"dis\n-0000e260: 7061 7463 6865 7222 2074 7970 653d 2278  patcher\" type=\"x\n-0000e270: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000e280: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000e290: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000e2a0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000e2b0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000e2c0: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-0000e2d0: 6f6c 2064 6973 7061 7463 6865 7220 7479  ol dispatcher ty\n-0000e2e0: 7065 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  pe. ]]></xsd:doc\n-0000e2f0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000e300: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000e310: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000e320: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000e330: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000e340: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000e350: 6e65 7477 6f72 6b65 7222 2074 7970 653d  networker\" type=\n-0000e360: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000e370: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000e380: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000e390: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000e3a0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000e3b0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n-0000e3c0: 6f63 6f6c 2022 6e65 7477 6f72 6b65 7222  ocol \"networker\"\n-0000e3d0: 2074 7970 652e 205d 5d3e 3c2f 7873 643a   type. ]]></xsd:\n-0000e3e0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000e3f0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000e400: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000e410: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000e420: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000e430: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000e440: 653d 2273 6572 7665 7222 2074 7970 653d  e=\"server\" type=\n-0000e450: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000e460: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000e470: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000e480: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000e490: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000e4a0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n-0000e4b0: 6f63 6f6c 2073 6572 7665 7220 7479 7065  ocol server type\n-0000e4c0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000e4d0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000e4e0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000e4f0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000e500: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000e510: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000e520: 7472 6962 7574 6520 6e61 6d65 3d22 636c  tribute name=\"cl\n-0000e530: 6965 6e74 2220 7479 7065 3d22 7873 643a  ient\" type=\"xsd:\n-0000e540: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000e550: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000e560: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000e570: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000e580: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000e590: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n-0000e5a0: 636c 6965 6e74 2074 7970 652e 205d 5d3e  client type. ]]>\n-0000e5b0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000e5c0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000e5d0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000e5e0: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000e5f0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000e600: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000e610: 7465 206e 616d 653d 2270 6174 6822 2074  te name=\"path\" t\n-0000e620: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000e630: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000e640: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000e650: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000e660: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000e670: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000e680: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n-0000e690: 2054 6865 2070 726f 746f 636f 6c20 636f   The protocol co\n-0000e6a0: 6e74 6578 7420 7061 7468 2e20 7265 706c  ntext path. repl\n-0000e6b0: 6163 6520 746f 2022 636f 6e74 6578 7470  ace to \"contextp\n-0000e6c0: 6174 6822 2e20 5d5d 3e3c 2f78 7364 3a64  ath\". ]]></xsd:d\n-0000e6d0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000e6e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000e6f0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000e700: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000e710: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000e720: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000e730: 3d22 636f 6e74 6578 7470 6174 6822 2074  =\"contextpath\" t\n-0000e740: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000e750: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000e760: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000e770: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000e780: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000e790: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000e7a0: 7072 6f74 6f63 6f6c 2063 6f6e 7465 7874  protocol context\n-0000e7b0: 2070 6174 682e 205d 5d3e 3c2f 7873 643a   path. ]]></xsd:\n-0000e7c0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000e7d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000e7e0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000e7f0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000e800: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000e810: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000e820: 653d 2272 6567 6973 7465 7222 2074 7970  e=\"register\" typ\n-0000e830: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000e840: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000e850: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000e860: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000e870: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000e880: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n-0000e890: 6f74 6f63 6f6c 2063 616e 2062 6520 7265  otocol can be re\n-0000e8a0: 6769 7374 6572 2074 6f20 7265 6769 7374  gister to regist\n-0000e8b0: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n-0000e8c0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000e8d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000e8e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000e8f0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000e900: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000e910: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000e920: 6465 6661 756c 7422 2074 7970 653d 2278  default\" type=\"x\n-0000e930: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000e940: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000e950: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000e960: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000e970: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000e980: 4441 5441 5b20 4973 2064 6566 6175 6c74  DATA[ Is default\n-0000e990: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000e9a0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000e9b0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000e9c0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000e9d0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000e9e0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000e9f0: 7472 6962 7574 6520 6e61 6d65 3d22 7373  tribute name=\"ss\n-0000ea00: 6c2d 656e 6162 6c65 6422 2074 7970 653d  l-enabled\" type=\n-0000ea10: 2278 7364 3a62 6f6f 6c65 616e 223e 0a20  \"xsd:boolean\">. \n-0000ea20: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000ea30: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000ea40: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000ea50: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000ea60: 215b 4344 4154 415b 2049 7320 5353 4c20  ![CDATA[ Is SSL \n-0000ea70: 656e 6162 6c65 642e 205d 5d3e 3c2f 7873  enabled. ]]></xs\n-0000ea80: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000ea90: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000eaa0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000eab0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000eac0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000ead0: 3c78 7364 3a61 6e79 4174 7472 6962 7574  <xsd:anyAttribut\n-0000eae0: 6520 6e61 6d65 7370 6163 653d 2223 236f  e namespace=\"##o\n-0000eaf0: 7468 6572 2220 7072 6f63 6573 7343 6f6e  ther\" processCon\n-0000eb00: 7465 6e74 733d 226c 6178 222f 3e0a 2020  tents=\"lax\"/>.  \n-0000eb10: 2020 3c2f 7873 643a 636f 6d70 6c65 7854    </xsd:complexT\n-0000eb20: 7970 653e 0a0a 2020 2020 3c78 7364 3a63  ype>..    <xsd:c\n-0000eb30: 6f6d 706c 6578 5479 7065 206e 616d 653d  omplexType name=\n-0000eb40: 2270 726f 7669 6465 7254 7970 6522 3e0a  \"providerType\">.\n-0000eb50: 2020 2020 2020 2020 3c78 7364 3a63 6f6d          <xsd:com\n-0000eb60: 706c 6578 436f 6e74 656e 743e 0a20 2020  plexContent>.   \n-0000eb70: 2020 2020 2020 2020 203c 7873 643a 6578           <xsd:ex\n-0000eb80: 7465 6e73 696f 6e20 6261 7365 3d22 6162  tension base=\"ab\n-0000eb90: 7374 7261 6374 5365 7276 6963 6554 7970  stractServiceTyp\n-0000eba0: 6522 3e0a 2020 2020 2020 2020 2020 2020  e\">.            \n-0000ebb0: 2020 2020 3c78 7364 3a63 686f 6963 6520      <xsd:choice \n-0000ebc0: 6d69 6e4f 6363 7572 733d 2230 2220 6d61  minOccurs=\"0\" ma\n-0000ebd0: 784f 6363 7572 733d 2275 6e62 6f75 6e64  xOccurs=\"unbound\n-0000ebe0: 6564 223e 0a20 2020 2020 2020 2020 2020  ed\">.           \n-0000ebf0: 2020 2020 2020 2020 203c 7873 643a 656c           <xsd:el\n-0000ec00: 656d 656e 7420 7265 663d 2273 6572 7669  ement ref=\"servi\n-0000ec10: 6365 2220 6d69 6e4f 6363 7572 733d 2230  ce\" minOccurs=\"0\n-0000ec20: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n-0000ec30: 6f75 6e64 6564 222f 3e0a 2020 2020 2020  ounded\"/>.      \n-0000ec40: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000ec50: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n-0000ec60: 7061 7261 6d65 7465 7222 206d 696e 4f63  parameter\" minOc\n-0000ec70: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n-0000ec80: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n-0000ec90: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000eca0: 203c 2f78 7364 3a63 686f 6963 653e 0a20   </xsd:choice>. \n-0000ecb0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ecc0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000ecd0: 6d65 3d22 686f 7374 2220 7479 7065 3d22  me=\"host\" type=\"\n-0000ece0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000ecf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ed00: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000ed10: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000ed20: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000ed30: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000ed40: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n-0000ed50: 6365 2068 6f73 742e 205d 5d3e 3c2f 7873  ce host. ]]></xs\n-0000ed60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000ed70: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000ed80: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000ed90: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000eda0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000edb0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000edc0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000edd0: 7269 6275 7465 206e 616d 653d 2270 6f72  ribute name=\"por\n-0000ede0: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-0000edf0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000ee00: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000ee10: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000ee20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ee30: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000ee40: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000ee50: 5468 6520 7365 7276 6963 6520 706f 7274  The service port\n-0000ee60: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000ee70: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000ee80: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000ee90: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000eea0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000eeb0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000eec0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000eed0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000eee0: 6e61 6d65 3d22 7468 7265 6164 706f 6f6c  name=\"threadpool\n-0000eef0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000ef00: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000ef10: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000ef20: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ef30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ef40: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000ef50: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000ef60: 6865 2074 6872 6561 6420 706f 6f6c 2074  he thread pool t\n-0000ef70: 7970 652e 205d 5d3e 3c2f 7873 643a 646f  ype. ]]></xsd:do\n-0000ef80: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-0000ef90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000efa0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000efb0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000efc0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-0000efd0: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-0000efe0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000eff0: 7465 206e 616d 653d 2274 6872 6561 646e  te name=\"threadn\n-0000f000: 616d 6522 2074 7970 653d 2278 7364 3a73  ame\" type=\"xsd:s\n-0000f010: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000f020: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000f030: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000f040: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f050: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000f060: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000f070: 5b20 5468 6520 7468 7265 6164 2070 6f6f  [ The thread poo\n-0000f080: 6c20 6e61 6d65 2e20 5d5d 3e3c 2f78 7364  l name. ]]></xsd\n-0000f090: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000f0a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f0b0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000f0c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000f0d0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000f0e0: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000f0f0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000f100: 6962 7574 6520 6e61 6d65 3d22 7468 7265  ibute name=\"thre\n-0000f110: 6164 7322 2074 7970 653d 2278 7364 3a73  ads\" type=\"xsd:s\n-0000f120: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000f130: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000f140: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000f150: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f160: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000f170: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000f180: 5b20 5468 6520 7468 7265 6164 2070 6f6f  [ The thread poo\n-0000f190: 6c20 7369 7a65 2e20 5d5d 3e3c 2f78 7364  l size. ]]></xsd\n-0000f1a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000f1b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f1c0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000f1d0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000f1e0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000f1f0: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000f200: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000f210: 6962 7574 6520 6e61 6d65 3d22 696f 7468  ibute name=\"ioth\n-0000f220: 7265 6164 7322 2074 7970 653d 2278 7364  reads\" type=\"xsd\n-0000f230: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000f240: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000f250: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000f260: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f270: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000f280: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000f290: 5441 5b20 5468 6520 494f 2074 6872 6561  TA[ The IO threa\n-0000f2a0: 6420 706f 6f6c 2073 697a 652e 205d 5d3e  d pool size. ]]>\n-0000f2b0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000f2c0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000f2d0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000f2e0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000f2f0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000f300: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000f310: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000f320: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000f330: 2261 6c69 7665 2220 7479 7065 3d22 7873  \"alive\" type=\"xs\n-0000f340: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000f350: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f360: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n+0000db30: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000db40: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000db50: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000db60: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000db70: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000db80: 6520 6e61 6d65 3d22 6578 7465 6e73 696f  e name=\"extensio\n+0000db90: 6e22 2074 7970 653d 2278 7364 3a73 7472  n\" type=\"xsd:str\n+0000dba0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000dbb0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000dbc0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000dbd0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000dbe0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000dbf0: 5b20 5468 6520 6578 7465 6e73 696f 6e20  [ The extension \n+0000dc00: 666f 7220 7072 6f74 6f63 6f6c 2e20 5d5d  for protocol. ]]\n+0000dc10: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000dc20: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000dc30: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000dc40: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+0000dc50: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000dc60: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000dc70: 7269 6275 7465 206e 616d 653d 2263 6861  ribute name=\"cha\n+0000dc80: 7273 6574 2220 7479 7065 3d22 7873 643a  rset\" type=\"xsd:\n+0000dc90: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000dca0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000dcb0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000dcc0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000dcd0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000dce0: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n+0000dcf0: 6c20 6368 6172 7365 742e 205d 5d3e 3c2f  l charset. ]]></\n+0000dd00: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000dd10: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000dd20: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+0000dd30: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+0000dd40: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000dd50: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+0000dd60: 7574 6520 6e61 6d65 3d22 7061 796c 6f61  ute name=\"payloa\n+0000dd70: 6422 2074 7970 653d 2278 7364 3a73 7472  d\" type=\"xsd:str\n+0000dd80: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000dd90: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000dda0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000ddb0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000ddc0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000ddd0: 5b20 5468 6520 6d61 7820 7061 796c 6f61  [ The max payloa\n+0000dde0: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n+0000ddf0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000de00: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000de10: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000de20: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000de30: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000de40: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000de50: 3d22 6275 6666 6572 2220 7479 7065 3d22  =\"buffer\" type=\"\n+0000de60: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000de70: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000de80: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000de90: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000dea0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000deb0: 215b 4344 4154 415b 2054 6865 2062 7566  ![CDATA[ The buf\n+0000dec0: 6665 7220 7369 7a65 2e20 5d5d 3e3c 2f78  fer size. ]]></x\n+0000ded0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000dee0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000def0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000df00: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000df10: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000df20: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000df30: 7465 206e 616d 653d 2268 6561 7274 6265  te name=\"heartbe\n+0000df40: 6174 2220 7479 7065 3d22 7873 643a 7374  at\" type=\"xsd:st\n+0000df50: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000df60: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000df70: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000df80: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000df90: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000dfa0: 415b 2054 6865 2068 6561 7274 6265 6174  A[ The heartbeat\n+0000dfb0: 2069 6e74 6572 7661 6c2e 286d 7329 205d   interval.(ms) ]\n+0000dfc0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000dfd0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000dfe0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000dff0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000e000: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000e010: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000e020: 7472 6962 7574 6520 6e61 6d65 3d22 6163  tribute name=\"ac\n+0000e030: 6365 7373 6c6f 6722 2074 7970 653d 2278  cesslog\" type=\"x\n+0000e040: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000e050: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000e060: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e070: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e080: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000e090: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+0000e0a0: 6f63 6f6c 2075 7365 2061 6363 6573 736c  ocol use accessl\n+0000e0b0: 6f67 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  og. ]]></xsd:doc\n+0000e0c0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000e0d0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000e0e0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000e0f0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000e100: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000e110: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000e120: 653d 2274 656c 6e65 7422 2074 7970 653d  e=\"telnet\" type=\n+0000e130: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000e140: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e150: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e160: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000e170: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000e180: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000e190: 6f74 6f63 6f6c 2075 7365 2074 656c 6e65  otocol use telne\n+0000e1a0: 7420 636f 6d6d 616e 6473 2e20 5d5d 3e3c  t commands. ]]><\n+0000e1b0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000e1c0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000e1d0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000e1e0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000e1f0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000e200: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000e210: 6275 7465 206e 616d 653d 2270 726f 6d70  bute name=\"promp\n+0000e220: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n+0000e230: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000e240: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000e250: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000e260: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000e270: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000e280: 5b20 5468 6520 7072 6f74 6f63 6f6c 2074  [ The protocol t\n+0000e290: 656c 6e65 7420 7072 6f6d 7074 2e20 5d5d  elnet prompt. ]]\n+0000e2a0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000e2b0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000e2c0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000e2d0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+0000e2e0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000e2f0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000e300: 7269 6275 7465 206e 616d 653d 2273 7461  ribute name=\"sta\n+0000e310: 7475 7322 2074 7970 653d 2278 7364 3a73  tus\" type=\"xsd:s\n+0000e320: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000e330: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000e340: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000e350: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000e360: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000e370: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n+0000e380: 2063 6865 636b 2073 7461 7475 732e 205d   check status. ]\n+0000e390: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000e3a0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000e3b0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000e3c0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000e3d0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000e3e0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000e3f0: 7472 6962 7574 6520 6e61 6d65 3d22 7472  tribute name=\"tr\n+0000e400: 616e 7370 6f72 7465 7222 2074 7970 653d  ansporter\" type=\n+0000e410: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000e420: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e430: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e440: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000e450: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000e460: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000e470: 6f74 6f63 6f6c 2074 7261 6e73 706f 7274  otocol transport\n+0000e480: 6572 2074 7970 652e 205d 5d3e 3c2f 7873  er type. ]]></xs\n+0000e490: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000e4a0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000e4b0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000e4c0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000e4d0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000e4e0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000e4f0: 6520 6e61 6d65 3d22 6578 6368 616e 6765  e name=\"exchange\n+0000e500: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+0000e510: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000e520: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000e530: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000e540: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000e550: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000e560: 5b20 5468 6520 7072 6f74 6f63 6f6c 2065  [ The protocol e\n+0000e570: 7863 6861 6e67 6572 2074 7970 652e 205d  xchanger type. ]\n+0000e580: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000e590: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000e5a0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000e5b0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000e5c0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000e5d0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000e5e0: 7472 6962 7574 6520 6e61 6d65 3d22 6469  tribute name=\"di\n+0000e5f0: 7370 6174 6865 7222 2074 7970 653d 2278  spather\" type=\"x\n+0000e600: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000e610: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000e620: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e630: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e640: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000e650: 5b43 4441 5441 5b20 4465 7072 6563 6174  [CDATA[ Deprecat\n+0000e660: 6564 2e20 7265 706c 6163 6520 746f 2022  ed. replace to \"\n+0000e670: 6469 7370 6174 6368 6572 222e 205d 5d3e  dispatcher\". ]]>\n+0000e680: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000e690: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000e6a0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000e6b0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000e6c0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000e6d0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000e6e0: 6962 7574 6520 6e61 6d65 3d22 6469 7370  ibute name=\"disp\n+0000e6f0: 6174 6368 6572 2220 7479 7065 3d22 7873  atcher\" type=\"xs\n+0000e700: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000e710: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000e720: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000e730: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000e740: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000e750: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n+0000e760: 636f 6c20 6469 7370 6174 6368 6572 2074  col dispatcher t\n+0000e770: 7970 652e 205d 5d3e 3c2f 7873 643a 646f  ype. ]]></xsd:do\n+0000e780: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000e790: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000e7a0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e7b0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000e7c0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000e7d0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000e7e0: 6d65 3d22 6e65 7477 6f72 6b65 7222 2074  me=\"networker\" t\n+0000e7f0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000e800: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000e810: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000e820: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000e830: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000e840: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000e850: 6520 7072 6f74 6f63 6f6c 2022 6e65 7477  e protocol \"netw\n+0000e860: 6f72 6b65 7222 2074 7970 652e 205d 5d3e  orker\" type. ]]>\n+0000e870: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000e880: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000e890: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000e8a0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000e8b0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000e8c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000e8d0: 6962 7574 6520 6e61 6d65 3d22 7365 7276  ibute name=\"serv\n+0000e8e0: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n+0000e8f0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000e900: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000e910: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000e920: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000e930: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000e940: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+0000e950: 7365 7276 6572 2074 7970 652e 205d 5d3e  server type. ]]>\n+0000e960: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000e970: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000e980: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000e990: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000e9a0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000e9b0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000e9c0: 6962 7574 6520 6e61 6d65 3d22 636c 6965  ibute name=\"clie\n+0000e9d0: 6e74 2220 7479 7065 3d22 7873 643a 7374  nt\" type=\"xsd:st\n+0000e9e0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000e9f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000ea00: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000ea10: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000ea20: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000ea30: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+0000ea40: 636c 6965 6e74 2074 7970 652e 205d 5d3e  client type. ]]>\n+0000ea50: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000ea60: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000ea70: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000ea80: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000ea90: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000eaa0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000eab0: 6962 7574 6520 6e61 6d65 3d22 7061 7468  ibute name=\"path\n+0000eac0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000ead0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000eae0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000eaf0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000eb00: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000eb10: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000eb20: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n+0000eb30: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n+0000eb40: 636f 6c20 636f 6e74 6578 7420 7061 7468  col context path\n+0000eb50: 2e20 7265 706c 6163 6520 746f 2022 636f  . replace to \"co\n+0000eb60: 6e74 6578 7470 6174 6822 2e20 5d5d 3e3c  ntextpath\". ]]><\n+0000eb70: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000eb80: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000eb90: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000eba0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000ebb0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000ebc0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000ebd0: 6275 7465 206e 616d 653d 2263 6f6e 7465  bute name=\"conte\n+0000ebe0: 7874 7061 7468 2220 7479 7065 3d22 7873  xtpath\" type=\"xs\n+0000ebf0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000ec00: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000ec10: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000ec20: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000ec30: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000ec40: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n+0000ec50: 636f 6c20 636f 6e74 6578 7420 7061 7468  col context path\n+0000ec60: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000ec70: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000ec80: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000ec90: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000eca0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000ecb0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+0000ecc0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000ecd0: 2272 6567 6973 7465 7222 2074 7970 653d  \"register\" type=\n+0000ece0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000ecf0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000ed00: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000ed10: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000ed20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000ed30: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000ed40: 6f74 6f63 6f6c 2063 616e 2062 6520 7265  otocol can be re\n+0000ed50: 6769 7374 6572 2074 6f20 7265 6769 7374  gister to regist\n+0000ed60: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n+0000ed70: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000ed80: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000ed90: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000eda0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000edb0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000edc0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000edd0: 653d 2264 6566 6175 6c74 2220 7479 7065  e=\"default\" type\n+0000ede0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+0000edf0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000ee00: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000ee10: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000ee20: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000ee30: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n+0000ee40: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n+0000ee50: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000ee60: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000ee70: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000ee80: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000ee90: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000eea0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+0000eeb0: 6e61 6d65 3d22 7373 6c2d 656e 6162 6c65  name=\"ssl-enable\n+0000eec0: 6422 2074 7970 653d 2278 7364 3a62 6f6f  d\" type=\"xsd:boo\n+0000eed0: 6c65 616e 223e 0d0a 2020 2020 2020 2020  lean\">..        \n+0000eee0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000eef0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000ef00: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000ef10: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000ef20: 415b 2049 7320 5353 4c20 656e 6162 6c65  A[ Is SSL enable\n+0000ef30: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n+0000ef40: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000ef50: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000ef60: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000ef70: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000ef80: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000ef90: 643a 616e 7941 7474 7269 6275 7465 206e  d:anyAttribute n\n+0000efa0: 616d 6573 7061 6365 3d22 2323 6f74 6865  amespace=\"##othe\n+0000efb0: 7222 2070 726f 6365 7373 436f 6e74 656e  r\" processConten\n+0000efc0: 7473 3d22 6c61 7822 2f3e 0d0a 2020 2020  ts=\"lax\"/>..    \n+0000efd0: 3c2f 7873 643a 636f 6d70 6c65 7854 7970  </xsd:complexTyp\n+0000efe0: 653e 0d0a 0d0a 2020 2020 3c78 7364 3a63  e>....    <xsd:c\n+0000eff0: 6f6d 706c 6578 5479 7065 206e 616d 653d  omplexType name=\n+0000f000: 2270 726f 7669 6465 7254 7970 6522 3e0d  \"providerType\">.\n+0000f010: 0a20 2020 2020 2020 203c 7873 643a 636f  .        <xsd:co\n+0000f020: 6d70 6c65 7843 6f6e 7465 6e74 3e0d 0a20  mplexContent>.. \n+0000f030: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000f040: 6578 7465 6e73 696f 6e20 6261 7365 3d22  extension base=\"\n+0000f050: 6162 7374 7261 6374 5365 7276 6963 6554  abstractServiceT\n+0000f060: 7970 6522 3e0d 0a20 2020 2020 2020 2020  ype\">..         \n+0000f070: 2020 2020 2020 203c 7873 643a 6368 6f69         <xsd:choi\n+0000f080: 6365 206d 696e 4f63 6375 7273 3d22 3022  ce minOccurs=\"0\"\n+0000f090: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+0000f0a0: 756e 6465 6422 3e0d 0a20 2020 2020 2020  unded\">..       \n+0000f0b0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f0c0: 643a 656c 656d 656e 7420 7265 663d 2273  d:element ref=\"s\n+0000f0d0: 6572 7669 6365 2220 6d69 6e4f 6363 7572  ervice\" minOccur\n+0000f0e0: 733d 2230 2220 6d61 784f 6363 7572 733d  s=\"0\" maxOccurs=\n+0000f0f0: 2275 6e62 6f75 6e64 6564 222f 3e0d 0a20  \"unbounded\"/>.. \n+0000f100: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f110: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n+0000f120: 7265 663d 2270 6172 616d 6574 6572 2220  ref=\"parameter\" \n+0000f130: 6d69 6e4f 6363 7572 733d 2230 2220 6d61  minOccurs=\"0\" ma\n+0000f140: 784f 6363 7572 733d 2275 6e62 6f75 6e64  xOccurs=\"unbound\n+0000f150: 6564 222f 3e0d 0a20 2020 2020 2020 2020  ed\"/>..         \n+0000f160: 2020 2020 2020 203c 2f78 7364 3a63 686f         </xsd:cho\n+0000f170: 6963 653e 0d0a 2020 2020 2020 2020 2020  ice>..          \n+0000f180: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000f190: 6275 7465 206e 616d 653d 2268 6f73 7422  bute name=\"host\"\n+0000f1a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000f1b0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000f1c0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000f1d0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000f1e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f1f0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000f200: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000f210: 5468 6520 7365 7276 6963 6520 686f 7374  The service host\n+0000f220: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000f230: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000f240: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f250: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000f260: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000f270: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000f280: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+0000f290: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000f2a0: 7465 206e 616d 653d 2270 6f72 7422 2074  te name=\"port\" t\n+0000f2b0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000f2c0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000f2d0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000f2e0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000f2f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f300: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000f310: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000f320: 6520 7365 7276 6963 6520 706f 7274 2e20  e service port. \n+0000f330: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000f340: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000f350: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000f360: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n 0000f370: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f380: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000f390: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000f3a0: 4154 415b 2054 6865 2074 6872 6561 6420  ATA[ The thread \n-0000f3b0: 706f 6f6c 206b 6565 7041 6c69 7665 5469  pool keepAliveTi\n-0000f3c0: 6d65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  me. ]]></xsd:doc\n-0000f3d0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000f3e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f3f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000f400: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f410: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000f420: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000f430: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000f440: 6520 6e61 6d65 3d22 7175 6575 6573 2220  e name=\"queues\" \n-0000f450: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000f460: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000f470: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000f480: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000f490: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f4a0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000f4b0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000f4c0: 2074 6872 6561 6420 706f 6f6c 2071 7565   thread pool que\n-0000f4d0: 7565 2073 697a 652e 205d 5d3e 3c2f 7873  ue size. ]]></xs\n-0000f4e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000f4f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000f500: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000f510: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000f520: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-0000f530: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-0000f540: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000f550: 7269 6275 7465 206e 616d 653d 2261 6363  ribute name=\"acc\n-0000f560: 6570 7473 2220 7479 7065 3d22 7873 643a  epts\" type=\"xsd:\n-0000f570: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000f580: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000f590: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n+0000f380: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000f390: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000f3a0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000f3b0: 206e 616d 653d 2274 6872 6561 6470 6f6f   name=\"threadpoo\n+0000f3c0: 6c22 2074 7970 653d 2278 7364 3a73 7472  l\" type=\"xsd:str\n+0000f3d0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000f3e0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000f3f0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000f400: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f410: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000f420: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000f430: 5b20 5468 6520 7468 7265 6164 2070 6f6f  [ The thread poo\n+0000f440: 6c20 7479 7065 2e20 5d5d 3e3c 2f78 7364  l type. ]]></xsd\n+0000f450: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000f460: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f470: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000f480: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000f490: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000f4a0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000f4b0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000f4c0: 7474 7269 6275 7465 206e 616d 653d 2274  ttribute name=\"t\n+0000f4d0: 6872 6561 646e 616d 6522 2074 7970 653d  hreadname\" type=\n+0000f4e0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000f4f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f500: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000f510: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000f520: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f530: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000f540: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n+0000f550: 7265 6164 2070 6f6f 6c20 6e61 6d65 2e20  read pool name. \n+0000f560: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000f570: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000f580: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000f590: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n 0000f5a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f5b0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000f5c0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000f5d0: 415b 2054 6865 2061 6363 6570 7420 636f  A[ The accept co\n-0000f5e0: 6e6e 6563 7469 6f6e 2073 697a 652e 205d  nnection size. ]\n-0000f5f0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000f600: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000f610: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000f620: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000f630: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000f640: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000f650: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000f660: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000f670: 653d 2263 6f64 6563 2220 7479 7065 3d22  e=\"codec\" type=\"\n-0000f680: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n+0000f5b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000f5c0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000f5d0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000f5e0: 206e 616d 653d 2274 6872 6561 6473 2220   name=\"threads\" \n+0000f5f0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000f600: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000f610: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000f620: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000f630: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f640: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000f650: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000f660: 6865 2074 6872 6561 6420 706f 6f6c 2073  he thread pool s\n+0000f670: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000f680: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n 0000f690: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f6a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000f6b0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f6c0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000f6d0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000f6e0: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-0000f6f0: 636f 6c20 636f 6465 632e 205d 5d3e 3c2f  col codec. ]]></\n-0000f700: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000f710: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000f720: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000f730: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000f740: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000f750: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000f760: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000f770: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-0000f780: 6861 7273 6574 2220 7479 7065 3d22 7873  harset\" type=\"xs\n-0000f790: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000f7a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f7b0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000f7c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f7d0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000f7e0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000f7f0: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n-0000f800: 6c20 6368 6172 7365 742e 205d 5d3e 3c2f  l charset. ]]></\n-0000f810: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000f820: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000f830: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000f840: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000f850: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000f860: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000f870: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000f880: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n-0000f890: 6179 6c6f 6164 2220 7479 7065 3d22 7873  ayload\" type=\"xs\n-0000f8a0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000f8b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f8c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000f8d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f8e0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000f8f0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000f900: 4154 415b 2054 6865 206d 6178 2070 6179  ATA[ The max pay\n-0000f910: 6c6f 6164 2e20 5d5d 3e3c 2f78 7364 3a64  load. ]]></xsd:d\n-0000f920: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000f930: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f940: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000f950: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000f960: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000f970: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000f980: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000f990: 7574 6520 6e61 6d65 3d22 6275 6666 6572  ute name=\"buffer\n-0000f9a0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000f9b0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000f9c0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000f9d0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n+0000f6a0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000f6b0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000f6c0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000f6d0: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000f6e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000f6f0: 6962 7574 6520 6e61 6d65 3d22 696f 7468  ibute name=\"ioth\n+0000f700: 7265 6164 7322 2074 7970 653d 2278 7364  reads\" type=\"xsd\n+0000f710: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000f720: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f730: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000f740: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f750: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000f760: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000f770: 4441 5441 5b20 5468 6520 494f 2074 6872  DATA[ The IO thr\n+0000f780: 6561 6420 706f 6f6c 2073 697a 652e 205d  ead pool size. ]\n+0000f790: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000f7a0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000f7b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000f7c0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000f7d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f7e0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000f7f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f800: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+0000f810: 6e61 6d65 3d22 616c 6976 6522 2074 7970  name=\"alive\" typ\n+0000f820: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+0000f830: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f840: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000f850: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000f860: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f870: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000f880: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+0000f890: 7468 7265 6164 2070 6f6f 6c20 6b65 6570  thread pool keep\n+0000f8a0: 416c 6976 6554 696d 652e 205d 5d3e 3c2f  AliveTime. ]]></\n+0000f8b0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000f8c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000f8d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000f8e0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000f8f0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000f900: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000f910: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f920: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000f930: 3d22 7175 6575 6573 2220 7479 7065 3d22  =\"queues\" type=\"\n+0000f940: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000f950: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f960: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000f970: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000f980: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000f990: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000f9a0: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n+0000f9b0: 6561 6420 706f 6f6c 2071 7565 7565 2073  ead pool queue s\n+0000f9c0: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000f9d0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n 0000f9e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f9f0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000fa00: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000fa10: 6865 2062 7566 6665 7220 7369 7a65 2e20  he buffer size. \n-0000fa20: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000fa30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000fa40: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000fa50: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000fa60: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000fa70: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000fa80: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000fa90: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000faa0: 6d65 3d22 7472 616e 7370 6f72 7465 7222  me=\"transporter\"\n-0000fab0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000fac0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000fad0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000fae0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000faf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fb00: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000fb10: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000fb20: 6520 7072 6f74 6f63 6f6c 2074 7261 6e73  e protocol trans\n-0000fb30: 706f 7274 6572 2074 7970 652e 205d 5d3e  porter type. ]]>\n-0000fb40: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000fb50: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000fb60: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000fb70: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000fb80: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000fb90: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000fba0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000fbb0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000fbc0: 2265 7863 6861 6e67 6572 2220 7479 7065  \"exchanger\" type\n-0000fbd0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000fbe0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fbf0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000fc00: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000fc10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000fc20: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000fc30: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n-0000fc40: 746f 636f 6c20 6578 6368 616e 6765 7220  tocol exchanger \n-0000fc50: 7479 7065 2e20 5d5d 3e3c 2f78 7364 3a64  type. ]]></xsd:d\n-0000fc60: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000fc70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fc80: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000fc90: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000fca0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000fcb0: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000fcc0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000fcd0: 7574 6520 6e61 6d65 3d22 6469 7370 6174  ute name=\"dispat\n-0000fce0: 6865 7222 2074 7970 653d 2278 7364 3a73  her\" type=\"xsd:s\n-0000fcf0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000fd00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000fd10: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n+0000f9f0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000fa00: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000fa10: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000fa20: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000fa30: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000fa40: 6962 7574 6520 6e61 6d65 3d22 6163 6365  ibute name=\"acce\n+0000fa50: 7074 7322 2074 7970 653d 2278 7364 3a73  pts\" type=\"xsd:s\n+0000fa60: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000fa70: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000fa80: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000fa90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000faa0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000fab0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000fac0: 5441 5b20 5468 6520 6163 6365 7074 2063  TA[ The accept c\n+0000fad0: 6f6e 6e65 6374 696f 6e20 7369 7a65 2e20  onnection size. \n+0000fae0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000faf0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000fb00: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000fb10: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000fb20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fb30: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000fb40: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000fb50: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000fb60: 206e 616d 653d 2263 6f64 6563 2220 7479   name=\"codec\" ty\n+0000fb70: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000fb80: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000fb90: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000fba0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000fbb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fbc0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000fbd0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000fbe0: 2070 726f 746f 636f 6c20 636f 6465 632e   protocol codec.\n+0000fbf0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000fc00: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000fc10: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+0000fc20: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000fc30: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000fc40: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000fc50: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000fc60: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000fc70: 6520 6e61 6d65 3d22 6368 6172 7365 7422  e name=\"charset\"\n+0000fc80: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000fc90: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000fca0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000fcb0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000fcc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fcd0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000fce0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000fcf0: 5468 6520 7072 6f74 6f63 6f6c 2063 6861  The protocol cha\n+0000fd00: 7273 6574 2e20 5d5d 3e3c 2f78 7364 3a64  rset. ]]></xsd:d\n+0000fd10: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n 0000fd20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fd30: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000fd40: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000fd50: 5b20 4465 7072 6563 6174 6564 2e20 7265  [ Deprecated. re\n-0000fd60: 706c 6163 6520 746f 2022 6469 7370 6174  place to \"dispat\n-0000fd70: 6368 6572 222e 205d 5d3e 3c2f 7873 643a  cher\". ]]></xsd:\n-0000fd80: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000fd90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fda0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000fdb0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000fdc0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000fdd0: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-0000fde0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000fdf0: 6275 7465 206e 616d 653d 2264 6973 7061  bute name=\"dispa\n-0000fe00: 7463 6865 7222 2074 7970 653d 2278 7364  tcher\" type=\"xsd\n-0000fe10: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000fe20: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000fe30: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000fe40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fe50: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000fe60: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000fe70: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n-0000fe80: 2064 6973 7061 7463 6865 7220 7479 7065   dispatcher type\n-0000fe90: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000fea0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000feb0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000fec0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000fed0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fee0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000fef0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000ff00: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000ff10: 6e61 6d65 3d22 6e65 7477 6f72 6b65 7222  name=\"networker\"\n-0000ff20: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000ff30: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000ff40: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000ff50: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000ff60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ff70: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000ff80: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000ff90: 6520 7072 6f74 6f63 6f6c 2022 6e65 7477  e protocol \"netw\n-0000ffa0: 6f72 6b65 7222 2074 7970 652e 205d 5d3e  orker\" type. ]]>\n-0000ffb0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000ffc0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000ffd0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000ffe0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000fff0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00010000: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00010010: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00010020: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00010030: 2273 6572 7665 7222 2074 7970 653d 2278  \"server\" type=\"x\n-00010040: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00010050: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010060: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00010070: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010080: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00010090: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000100a0: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-000100b0: 6f6c 2073 6572 7665 7220 7479 7065 2e20  ol server type. \n-000100c0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-000100d0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000100e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000100f0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00010100: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00010110: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00010120: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010130: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00010140: 6d65 3d22 636c 6965 6e74 2220 7479 7065  me=\"client\" type\n-00010150: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00010160: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010170: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00010180: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00010190: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000101a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000101b0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n-000101c0: 746f 636f 6c20 636c 6965 6e74 2074 7970  tocol client typ\n-000101d0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-000101e0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000101f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010200: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00010210: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010220: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00010230: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010240: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00010250: 206e 616d 653d 2274 656c 6e65 7422 2074   name=\"telnet\" t\n-00010260: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00010270: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010280: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00010290: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000102a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000102b0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000102c0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-000102d0: 7072 6f74 6f63 6f6c 2075 7365 2074 656c  protocol use tel\n-000102e0: 6e65 7420 636f 6d6d 616e 6473 2e20 5d5d  net commands. ]]\n-000102f0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00010300: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010310: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00010320: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00010330: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00010340: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00010350: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00010360: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00010370: 3d22 7072 6f6d 7074 2220 7479 7065 3d22  =\"prompt\" type=\"\n-00010380: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00010390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000103a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000103b0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000103c0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000103d0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000103e0: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-000103f0: 636f 6c20 7465 6c6e 6574 2070 726f 6d70  col telnet promp\n-00010400: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n-00010410: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00010420: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010430: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00010440: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010450: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00010460: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010470: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00010480: 206e 616d 653d 2273 7461 7475 7322 2074   name=\"status\" t\n-00010490: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-000104a0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000104b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000104c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000104d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000104e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000104f0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00010500: 7072 6f74 6f63 6f6c 2063 6865 636b 2073  protocol check s\n-00010510: 7461 7475 732e 205d 5d3e 3c2f 7873 643a  tatus. ]]></xsd:\n-00010520: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00010530: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010540: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00010550: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00010560: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00010570: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00010580: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00010590: 6275 7465 206e 616d 653d 2270 6174 6822  bute name=\"path\"\n-000105a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-000105b0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-000105c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000105d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000105e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000105f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00010600: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00010610: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010620: 203c 215b 4344 4154 415b 2054 6865 2070   <![CDATA[ The p\n-00010630: 726f 746f 636f 6c20 636f 6e74 6578 7420  rotocol context \n-00010640: 7061 7468 2e20 7265 706c 6163 6520 746f  path. replace to\n-00010650: 2022 636f 6e74 6578 7470 6174 6822 2e20   \"contextpath\". \n-00010660: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00010670: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00010680: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00010690: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000106a0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-000106b0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000106c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000106d0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-000106e0: 6d65 3d22 636f 6e74 6578 7470 6174 6822  me=\"contextpath\"\n-000106f0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00010700: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00010710: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00010720: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00010730: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010740: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00010750: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00010760: 6520 7072 6f74 6f63 6f6c 2063 6f6e 7465  e protocol conte\n-00010770: 7874 2070 6174 682e 205d 5d3e 3c2f 7873  xt path. ]]></xs\n-00010780: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00010790: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000107a0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-000107b0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000107c0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000107d0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000107e0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000107f0: 7269 6275 7465 206e 616d 653d 2277 6169  ribute name=\"wai\n-00010800: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-00010810: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00010820: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00010830: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00010840: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010850: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00010860: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00010870: 5468 6520 7072 6f76 6964 6572 2073 6875  The provider shu\n-00010880: 7464 6f77 6e20 7761 6974 2074 696d 652e  tdown wait time.\n-00010890: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000108a0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000108b0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-000108c0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000108d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000108e0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-000108f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010900: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00010910: 616d 653d 2264 6566 6175 6c74 2220 7479  ame=\"default\" ty\n-00010920: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00010930: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010940: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00010950: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010960: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00010970: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00010980: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n-00010990: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n-000109a0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-000109b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000109c0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-000109d0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000109e0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-000109f0: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-00010a00: 2020 2020 2020 3c78 7364 3a61 6e79 4174        <xsd:anyAt\n-00010a10: 7472 6962 7574 6520 6e61 6d65 7370 6163  tribute namespac\n-00010a20: 653d 2223 236f 7468 6572 2220 7072 6f63  e=\"##other\" proc\n-00010a30: 6573 7343 6f6e 7465 6e74 733d 226c 6178  essContents=\"lax\n-00010a40: 222f 3e0a 2020 2020 2020 2020 2020 2020  \"/>.            \n-00010a50: 3c2f 7873 643a 6578 7465 6e73 696f 6e3e  </xsd:extension>\n-00010a60: 0a20 2020 2020 2020 203c 2f78 7364 3a63  .        </xsd:c\n-00010a70: 6f6d 706c 6578 436f 6e74 656e 743e 0a20  omplexContent>. \n-00010a80: 2020 203c 2f78 7364 3a63 6f6d 706c 6578     </xsd:complex\n-00010a90: 5479 7065 3e0a 0a20 2020 203c 7873 643a  Type>..    <xsd:\n-00010aa0: 636f 6d70 6c65 7854 7970 6520 6e61 6d65  complexType name\n-00010ab0: 3d22 7365 7276 6963 6554 7970 6522 3e0a  =\"serviceType\">.\n-00010ac0: 2020 2020 2020 2020 3c78 7364 3a63 6f6d          <xsd:com\n-00010ad0: 706c 6578 436f 6e74 656e 743e 0a20 2020  plexContent>.   \n-00010ae0: 2020 2020 2020 2020 203c 7873 643a 6578           <xsd:ex\n-00010af0: 7465 6e73 696f 6e20 6261 7365 3d22 6162  tension base=\"ab\n-00010b00: 7374 7261 6374 5365 7276 6963 6554 7970  stractServiceTyp\n-00010b10: 6522 3e0a 2020 2020 2020 2020 2020 2020  e\">.            \n-00010b20: 2020 2020 3c78 7364 3a63 686f 6963 6520      <xsd:choice \n-00010b30: 6d69 6e4f 6363 7572 733d 2230 2220 6d61  minOccurs=\"0\" ma\n-00010b40: 784f 6363 7572 733d 2275 6e62 6f75 6e64  xOccurs=\"unbound\n-00010b50: 6564 223e 0a20 2020 2020 2020 2020 2020  ed\">.           \n-00010b60: 2020 2020 2020 2020 203c 7873 643a 656c           <xsd:el\n-00010b70: 656d 656e 7420 7265 663d 226d 6574 686f  ement ref=\"metho\n-00010b80: 6422 206d 696e 4f63 6375 7273 3d22 3022  d\" minOccurs=\"0\"\n-00010b90: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n-00010ba0: 756e 6465 6422 2f3e 0a20 2020 2020 2020  unded\"/>.       \n-00010bb0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00010bc0: 643a 656c 656d 656e 7420 7265 663d 2270  d:element ref=\"p\n-00010bd0: 6172 616d 6574 6572 2220 6d69 6e4f 6363  arameter\" minOcc\n-00010be0: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n-00010bf0: 733d 2275 6e62 6f75 6e64 6564 222f 3e0a  s=\"unbounded\"/>.\n-00010c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010c10: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n-00010c20: 2072 6566 3d22 6265 616e 733a 7072 6f70   ref=\"beans:prop\n-00010c30: 6572 7479 2220 6d69 6e4f 6363 7572 733d  erty\" minOccurs=\n-00010c40: 2230 2220 6d61 784f 6363 7572 733d 2275  \"0\" maxOccurs=\"u\n-00010c50: 6e62 6f75 6e64 6564 222f 3e0a 2020 2020  nbounded\"/>.    \n-00010c60: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00010c70: 643a 6368 6f69 6365 3e0a 2020 2020 2020  d:choice>.      \n-00010c80: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00010c90: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n-00010ca0: 6e74 6572 6661 6365 2220 7479 7065 3d22  nterface\" type=\"\n-00010cb0: 7873 643a 746f 6b65 6e22 2075 7365 3d22  xsd:token\" use=\"\n-00010cc0: 7265 7175 6972 6564 223e 0a20 2020 2020  required\">.     \n-00010cd0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010ce0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00010cf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010d00: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00010d10: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00010d20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010d30: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-00010d40: 5b20 4465 6669 6e65 7320 7468 6520 696e  [ Defines the in\n-00010d50: 7465 7266 6163 6520 746f 2061 6476 6572  terface to adver\n-00010d60: 7469 7365 2066 6f72 2074 6869 7320 7365  tise for this se\n-00010d70: 7276 6963 6520 696e 2074 6865 2073 6572  rvice in the ser\n-00010d80: 7669 6365 2072 6567 6973 7472 792e 205d  vice registry. ]\n-00010d90: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00010da0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00010db0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010dc0: 7873 643a 6170 7069 6e66 6f3e 0a20 2020  xsd:appinfo>.   \n-00010dd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010de0: 2020 2020 2020 2020 203c 746f 6f6c 3a61           <tool:a\n-00010df0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00010e00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010e10: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n-00010e20: 3a65 7870 6563 7465 642d 7479 7065 2074  :expected-type t\n-00010e30: 7970 653d 226a 6176 612e 6c61 6e67 2e43  ype=\"java.lang.C\n-00010e40: 6c61 7373 222f 3e0a 2020 2020 2020 2020  lass\"/>.        \n-00010e50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010e60: 2020 2020 3c2f 746f 6f6c 3a61 6e6e 6f74      </tool:annot\n-00010e70: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00010e80: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010e90: 2f78 7364 3a61 7070 696e 666f 3e0a 2020  /xsd:appinfo>.  \n-00010ea0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010eb0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00010ec0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00010ed0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00010ee0: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-00010ef0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00010f00: 7574 6520 6e61 6d65 3d22 7265 6622 2074  ute name=\"ref\" t\n-00010f10: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00010f20: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010f30: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00010f40: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00010f50: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010f60: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00010f70: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00010f80: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010f90: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n-00010fa0: 7669 6365 2069 6d70 6c65 6d65 6e74 6174  vice implementat\n-00010fb0: 696f 6e20 696e 7374 616e 6365 2062 6561  ion instance bea\n-00010fc0: 6e20 6964 2e20 5d5d 3e3c 2f78 7364 3a64  n id. ]]></xsd:d\n-00010fd0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00010fe0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010ff0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00011000: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00011010: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00011020: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-00011030: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00011040: 7574 6520 6e61 6d65 3d22 636c 6173 7322  ute name=\"class\"\n-00011050: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00011060: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00011070: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00011080: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00011090: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000110a0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000110b0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000110c0: 6520 7365 7276 6963 6520 696d 706c 656d  e service implem\n-000110d0: 656e 7461 7469 6f6e 2063 6c61 7373 206e  entation class n\n-000110e0: 616d 652e 205d 5d3e 3c2f 7873 643a 646f  ame. ]]></xsd:do\n-000110f0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00011100: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011110: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00011120: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00011130: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00011140: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-00011150: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00011160: 7465 206e 616d 653d 2270 6174 6822 2074  te name=\"path\" t\n-00011170: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00011180: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00011190: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000111a0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000111b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000111c0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000111d0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-000111e0: 7365 7276 6963 6520 7061 7468 2e20 5d5d  service path. ]]\n-000111f0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00011200: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00011210: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00011220: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00011230: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00011240: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00011250: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00011260: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00011270: 3d22 7072 6f76 6964 6572 2220 7479 7065  =\"provider\" type\n-00011280: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00011290: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000112a0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000112b0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000112c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000112d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000112e0: 215b 4344 4154 415b 2044 6570 7265 6361  ![CDATA[ Depreca\n-000112f0: 7465 642e 2052 6570 6c61 6365 2074 6f20  ted. Replace to \n-00011300: 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c 2f78  protocol. ]]></x\n-00011310: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00011320: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00011330: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00011340: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011350: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00011360: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00011370: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00011380: 7472 6962 7574 6520 6e61 6d65 3d22 6765  tribute name=\"ge\n-00011390: 6e65 7269 6322 2074 7970 653d 2278 7364  neric\" type=\"xsd\n-000113a0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-000113b0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000113c0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000113d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000113e0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-000113f0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00011400: 5441 5b20 4765 6e65 7269 6320 7365 7276  TA[ Generic serv\n-00011410: 6963 652e 205d 5d3e 3c2f 7873 643a 646f  ice. ]]></xsd:do\n-00011420: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00011430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011440: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00011450: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00011460: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00011470: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-00011480: 2020 2020 3c78 7364 3a61 6e79 4174 7472      <xsd:anyAttr\n-00011490: 6962 7574 6520 6e61 6d65 7370 6163 653d  ibute namespace=\n-000114a0: 2223 236f 7468 6572 2220 7072 6f63 6573  \"##other\" proces\n-000114b0: 7343 6f6e 7465 6e74 733d 226c 6178 222f  sContents=\"lax\"/\n-000114c0: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-000114d0: 7873 643a 6578 7465 6e73 696f 6e3e 0a20  xsd:extension>. \n-000114e0: 2020 2020 2020 203c 2f78 7364 3a63 6f6d         </xsd:com\n-000114f0: 706c 6578 436f 6e74 656e 743e 0a20 2020  plexContent>.   \n-00011500: 203c 2f78 7364 3a63 6f6d 706c 6578 5479   </xsd:complexTy\n-00011510: 7065 3e0a 0a20 2020 203c 7873 643a 636f  pe>..    <xsd:co\n-00011520: 6d70 6c65 7854 7970 6520 6e61 6d65 3d22  mplexType name=\"\n-00011530: 7373 6c54 7970 6522 3e0a 2020 2020 2020  sslType\">.      \n-00011540: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00011550: 206e 616d 653d 2269 6422 2074 7970 653d   name=\"id\" type=\n-00011560: 2278 7364 3a49 4422 3e0a 2020 2020 2020  \"xsd:ID\">.      \n-00011570: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00011580: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00011590: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-000115a0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-000115b0: 5441 5b20 5468 6520 756e 6971 7565 2069  TA[ The unique i\n-000115c0: 6465 6e74 6966 6965 7220 666f 7220 6120  dentifier for a \n-000115d0: 6265 616e 2e20 5d5d 3e3c 2f78 7364 3a64  bean. ]]></xsd:d\n-000115e0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000115f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00011600: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00011610: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00011620: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00011630: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00011640: 3d22 7365 7276 6572 2d6b 6579 2d63 6572  =\"server-key-cer\n-00011650: 742d 6368 6169 6e2d 7061 7468 2220 7479  t-chain-path\" ty\n-00011660: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00011670: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00011680: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00011690: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000116a0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000116b0: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n-000116c0: 6572 7665 7220 6365 7274 2e20 5d5d 3e3c  erver cert. ]]><\n-000116d0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000116e0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000116f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00011700: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00011710: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00011720: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00011730: 6520 6e61 6d65 3d22 7365 7276 6572 2d70  e name=\"server-p\n-00011740: 7269 7661 7465 2d6b 6579 2d70 6174 6822  rivate-key-path\"\n-00011750: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00011760: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00011770: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00011780: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00011790: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000117a0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000117b0: 6520 7365 7276 6572 206b 6579 2e20 5d5d  e server key. ]]\n-000117c0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-000117d0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000117e0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-000117f0: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00011800: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00011810: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00011820: 7574 6520 6e61 6d65 3d22 7365 7276 6572  ute name=\"server\n-00011830: 2d6b 6579 2d70 6173 7377 6f72 6422 2074  -key-password\" t\n-00011840: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00011850: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00011860: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011870: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00011880: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00011890: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-000118a0: 7365 7276 6572 206b 6579 2e20 5d5d 3e3c  server key. ]]><\n-000118b0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000118c0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000118d0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-000118e0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-000118f0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00011900: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00011910: 6520 6e61 6d65 3d22 7365 7276 6572 2d74  e name=\"server-t\n-00011920: 7275 7374 2d63 6572 742d 636f 6c6c 6563  rust-cert-collec\n-00011930: 7469 6f6e 2d70 6174 6822 2074 7970 653d  tion-path\" type=\n-00011940: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00011950: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00011960: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00011970: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00011980: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00011990: 5b43 4441 5441 5b20 5468 6520 7472 7573  [CDATA[ The trus\n-000119a0: 7465 6420 7365 7276 6572 2063 6572 742e  ted server cert.\n-000119b0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000119c0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000119d0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-000119e0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-000119f0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00011a00: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00011a10: 7269 6275 7465 206e 616d 653d 2263 6c69  ribute name=\"cli\n-00011a20: 656e 742d 6b65 792d 6365 7274 2d63 6861  ent-key-cert-cha\n-00011a30: 696e 2d70 6174 6822 2074 7970 653d 2278  in-path\" type=\"x\n-00011a40: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00011a50: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00011a60: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00011a70: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00011a80: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00011a90: 4441 5441 5b20 5468 6520 636c 6965 6e74  DATA[ The client\n-00011aa0: 2063 6572 742e 205d 5d3e 3c2f 7873 643a   cert. ]]></xsd:\n-00011ab0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00011ac0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00011ad0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00011ae0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00011af0: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00011b00: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00011b10: 653d 2263 6c69 656e 742d 7072 6976 6174  e=\"client-privat\n-00011b20: 652d 6b65 792d 7061 7468 2220 7479 7065  e-key-path\" type\n-00011b30: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00011b40: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00011b50: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00011b60: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00011b70: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00011b80: 215b 4344 4154 415b 2054 6865 2063 6c69  ![CDATA[ The cli\n-00011b90: 656e 7420 6b65 792e 205d 5d3e 3c2f 7873  ent key. ]]></xs\n-00011ba0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00011bb0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00011bc0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011bd0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00011be0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00011bf0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00011c00: 616d 653d 2263 6c69 656e 742d 6b65 792d  ame=\"client-key-\n-00011c10: 7061 7373 776f 7264 2220 7479 7065 3d22  password\" type=\"\n-00011c20: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00011c30: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00011c40: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00011c50: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00011c60: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00011c70: 4344 4154 415b 2054 6865 2063 6c69 656e  CDATA[ The clien\n-00011c80: 7420 6b65 7920 7077 642e 205d 5d3e 3c2f  t key pwd. ]]></\n-00011c90: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00011ca0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00011cb0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00011cc0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00011cd0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00011ce0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00011cf0: 206e 616d 653d 2263 6c69 656e 742d 7472   name=\"client-tr\n-00011d00: 7573 742d 6365 7274 2d63 6f6c 6c65 6374  ust-cert-collect\n-00011d10: 696f 6e2d 7061 7468 2220 7479 7065 3d22  ion-path\" type=\"\n-00011d20: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00011d30: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00011d40: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00011d50: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00011d60: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00011d70: 4344 4154 415b 2054 6865 2074 7275 7374  CDATA[ The trust\n-00011d80: 6564 2063 6c69 656e 7420 6365 7274 2e20  ed client cert. \n-00011d90: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00011da0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011db0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00011dc0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00011dd0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00011de0: 2020 203c 2f78 7364 3a63 6f6d 706c 6578     </xsd:complex\n-00011df0: 5479 7065 3e0a 0a20 2020 203c 7873 643a  Type>..    <xsd:\n-00011e00: 656c 656d 656e 7420 6e61 6d65 3d22 7373  element name=\"ss\n-00011e10: 6c22 2074 7970 653d 2273 736c 5479 7065  l\" type=\"sslType\n-00011e20: 223e 0a20 2020 2020 2020 203c 7873 643a  \">.        <xsd:\n-00011e30: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00011e40: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00011e50: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00011e60: 4154 415b 2054 6865 2073 736c 2063 6f6e  ATA[ The ssl con\n-00011e70: 6669 6720 5d5d 3e3c 2f78 7364 3a64 6f63  fig ]]></xsd:doc\n-00011e80: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00011e90: 2020 2020 2020 2020 3c78 7364 3a61 7070          <xsd:app\n-00011ea0: 696e 666f 3e0a 2020 2020 2020 2020 2020  info>.          \n-00011eb0: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n-00011ec0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011ed0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n-00011ee0: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n-00011ef0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00011f00: 2e63 6f6e 6669 672e 5373 6c43 6f6e 6669  .config.SslConfi\n-00011f10: 6722 2f3e 0a20 2020 2020 2020 2020 2020  g\"/>.           \n-00011f20: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n-00011f30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011f40: 2020 2020 3c2f 7873 643a 6170 7069 6e66      </xsd:appinf\n-00011f50: 6f3e 0a20 2020 2020 2020 203c 2f78 7364  o>.        </xsd\n-00011f60: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00011f70: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0a   </xsd:element>.\n-00011f80: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n-00011f90: 7420 6e61 6d65 3d22 6170 706c 6963 6174  t name=\"applicat\n-00011fa0: 696f 6e22 2074 7970 653d 2261 7070 6c69  ion\" type=\"appli\n-00011fb0: 6361 7469 6f6e 5479 7065 223e 0a20 2020  cationType\">.   \n-00011fc0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00011fd0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00011fe0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00011ff0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00012000: 6865 2061 7070 6c69 6361 7469 6f6e 2063  he application c\n-00012010: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n-00012020: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00012030: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00012040: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-00012050: 2020 2020 2020 2020 3c74 6f6f 6c3a 616e          <tool:an\n-00012060: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00012070: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n-00012080: 6f6f 6c3a 6578 706f 7274 7320 7479 7065  ool:exports type\n-00012090: 3d22 6f72 672e 6170 6163 6865 2e64 7562  =\"org.apache.dub\n-000120a0: 626f 2e63 6f6e 6669 672e 4170 706c 6963  bo.config.Applic\n-000120b0: 6174 696f 6e43 6f6e 6669 6722 2f3e 0a20  ationConfig\"/>. \n-000120c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000120d0: 2f74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  /tool:annotation\n-000120e0: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-000120f0: 7873 643a 6170 7069 6e66 6f3e 0a20 2020  xsd:appinfo>.   \n-00012100: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00012110: 6174 696f 6e3e 0a20 2020 203c 2f78 7364  ation>.    </xsd\n-00012120: 3a65 6c65 6d65 6e74 3e0a 0a20 2020 203c  :element>..    <\n-00012130: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n-00012140: 3d22 6d6f 6475 6c65 2220 7479 7065 3d22  =\"module\" type=\"\n-00012150: 6d6f 6475 6c65 5479 7065 223e 0a20 2020  moduleType\">.   \n-00012160: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00012170: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012180: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00012190: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-000121a0: 6865 206d 6f64 756c 6520 636f 6e66 6967  he module config\n-000121b0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000121c0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000121d0: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n-000121e0: 6f3e 0a20 2020 2020 2020 2020 2020 2020  o>.             \n-000121f0: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n-00012200: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00012210: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n-00012220: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n-00012230: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n-00012240: 6e66 6967 2e4d 6f64 756c 6543 6f6e 6669  nfig.ModuleConfi\n-00012250: 6722 2f3e 0a20 2020 2020 2020 2020 2020  g\"/>.           \n-00012260: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n-00012270: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00012280: 2020 2020 3c2f 7873 643a 6170 7069 6e66      </xsd:appinf\n-00012290: 6f3e 0a20 2020 2020 2020 203c 2f78 7364  o>.        </xsd\n-000122a0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000122b0: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0a   </xsd:element>.\n-000122c0: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n-000122d0: 7420 6e61 6d65 3d22 7265 6769 7374 7279  t name=\"registry\n-000122e0: 2220 7479 7065 3d22 7265 6769 7374 7279  \" type=\"registry\n-000122f0: 5479 7065 223e 0a20 2020 2020 2020 203c  Type\">.        <\n-00012300: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00012310: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00012320: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00012330: 215b 4344 4154 415b 2054 6865 2072 6567  ![CDATA[ The reg\n-00012340: 6973 7472 7920 636f 6e66 6967 205d 5d3e  istry config ]]>\n-00012350: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00012360: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00012370: 203c 7873 643a 6170 7069 6e66 6f3e 0a20   <xsd:appinfo>. \n-00012380: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00012390: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n-000123a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000123b0: 2020 2020 203c 746f 6f6c 3a65 7870 6f72       <tool:expor\n-000123c0: 7473 2074 7970 653d 226f 7267 2e61 7061  ts type=\"org.apa\n-000123d0: 6368 652e 6475 6262 6f2e 636f 6e66 6967  che.dubbo.config\n-000123e0: 2e52 6567 6973 7472 7943 6f6e 6669 6722  .RegistryConfig\"\n-000123f0: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-00012400: 2020 203c 2f74 6f6f 6c3a 616e 6e6f 7461     </tool:annota\n-00012410: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012420: 2020 3c2f 7873 643a 6170 7069 6e66 6f3e    </xsd:appinfo>\n-00012430: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00012440: 6e6e 6f74 6174 696f 6e3e 0a20 2020 203c  nnotation>.    <\n-00012450: 2f78 7364 3a65 6c65 6d65 6e74 3e0a 0a20  /xsd:element>.. \n-00012460: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n-00012470: 6e61 6d65 3d22 6d65 7461 6461 7461 2d72  name=\"metadata-r\n-00012480: 6570 6f72 7422 2074 7970 653d 226d 6574  eport\" type=\"met\n-00012490: 6164 6174 6152 6570 6f72 7454 7970 6522  adataReportType\"\n-000124a0: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-000124b0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000124c0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-000124d0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-000124e0: 5441 5b20 5468 6520 6d65 7461 6461 7461  TA[ The metadata\n-000124f0: 5265 706f 7274 2063 6f6e 6669 6720 5d5d  Report config ]]\n-00012500: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00012510: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012520: 2020 3c78 7364 3a61 7070 696e 666f 3e0a    <xsd:appinfo>.\n-00012530: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012540: 3c74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  <tool:annotation\n-00012550: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00012560: 2020 2020 2020 3c74 6f6f 6c3a 6578 706f        <tool:expo\n-00012570: 7274 7320 7479 7065 3d22 6f72 672e 6170  rts type=\"org.ap\n-00012580: 6163 6865 2e64 7562 626f 2e63 6f6e 6669  ache.dubbo.confi\n-00012590: 672e 4d65 7461 6461 7461 5265 706f 7274  g.MetadataReport\n-000125a0: 436f 6e66 6967 222f 3e0a 2020 2020 2020  Config\"/>.      \n-000125b0: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n-000125c0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000125d0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-000125e0: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-000125f0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00012600: 3e0a 2020 2020 3c2f 7873 643a 656c 656d  >.    </xsd:elem\n-00012610: 656e 743e 0a0a 2020 2020 3c78 7364 3a65  ent>..    <xsd:e\n-00012620: 6c65 6d65 6e74 206e 616d 653d 2263 6f6e  lement name=\"con\n-00012630: 6669 672d 6365 6e74 6572 2220 7479 7065  fig-center\" type\n-00012640: 3d22 636f 6e66 6967 4365 6e74 6572 5479  =\"configCenterTy\n-00012650: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-00012660: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00012670: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00012680: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00012690: 4344 4154 415b 2054 6865 2063 6f6e 6669  CDATA[ The confi\n-000126a0: 6720 6365 6e74 6572 2063 6f6e 6669 6720  g center config \n-000126b0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-000126c0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000126d0: 2020 2020 3c78 7364 3a61 7070 696e 666f      <xsd:appinfo\n-000126e0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000126f0: 2020 3c74 6f6f 6c3a 616e 6e6f 7461 7469    <tool:annotati\n-00012700: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00012710: 2020 2020 2020 2020 3c74 6f6f 6c3a 6578          <tool:ex\n-00012720: 706f 7274 7320 7479 7065 3d22 6f72 672e  ports type=\"org.\n-00012730: 6170 6163 6865 2e64 7562 626f 2e63 6f6e  apache.dubbo.con\n-00012740: 6669 672e 436f 6e66 6967 4365 6e74 6572  fig.ConfigCenter\n-00012750: 436f 6e66 6967 222f 3e0a 2020 2020 2020  Config\"/>.      \n-00012760: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n-00012770: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00012780: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00012790: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-000127a0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-000127b0: 3e0a 2020 2020 3c2f 7873 643a 656c 656d  >.    </xsd:elem\n-000127c0: 656e 743e 0a0a 2020 2020 3c78 7364 3a65  ent>..    <xsd:e\n-000127d0: 6c65 6d65 6e74 206e 616d 653d 226d 6f6e  lement name=\"mon\n-000127e0: 6974 6f72 2220 7479 7065 3d22 6d6f 6e69  itor\" type=\"moni\n-000127f0: 746f 7254 7970 6522 3e0a 2020 2020 2020  torType\">.      \n-00012800: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00012810: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00012820: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00012830: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00012840: 6c6f 6773 7461 7420 6d6f 6e69 746f 7220  logstat monitor \n-00012850: 636f 6e66 6967 205d 5d3e 3c2f 7873 643a  config ]]></xsd:\n-00012860: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00012870: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00012880: 6170 7069 6e66 6f3e 0a20 2020 2020 2020  appinfo>.       \n-00012890: 2020 2020 2020 2020 203c 746f 6f6c 3a61           <tool:a\n-000128a0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000128b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000128c0: 746f 6f6c 3a65 7870 6f72 7473 2074 7970  tool:exports typ\n-000128d0: 653d 226f 7267 2e61 7061 6368 652e 6475  e=\"org.apache.du\n-000128e0: 6262 6f2e 636f 6e66 6967 2e4d 6f6e 6974  bbo.config.Monit\n-000128f0: 6f72 436f 6e66 6967 222f 3e0a 2020 2020  orConfig\"/>.    \n-00012900: 2020 2020 2020 2020 2020 2020 3c2f 746f              </to\n-00012910: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-00012920: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00012930: 3a61 7070 696e 666f 3e0a 2020 2020 2020  :appinfo>.      \n-00012940: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00012950: 6f6e 3e0a 2020 2020 3c2f 7873 643a 656c  on>.    </xsd:el\n-00012960: 656d 656e 743e 0a0a 2020 2020 3c78 7364  ement>..    <xsd\n-00012970: 3a65 6c65 6d65 6e74 206e 616d 653d 2270  :element name=\"p\n-00012980: 726f 7669 6465 7222 2074 7970 653d 2270  rovider\" type=\"p\n-00012990: 726f 7669 6465 7254 7970 6522 3e0a 2020  roviderType\">.  \n-000129a0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000129b0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000129c0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-000129d0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-000129e0: 4578 706f 7274 2073 6572 7669 6365 2064  Export service d\n-000129f0: 6566 6175 6c74 2063 6f6e 6669 6720 5d5d  efault config ]]\n-00012a00: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00012a10: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012a20: 2020 3c78 7364 3a61 7070 696e 666f 3e0a    <xsd:appinfo>.\n-00012a30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012a40: 3c74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  <tool:annotation\n-00012a50: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00012a60: 2020 2020 2020 3c74 6f6f 6c3a 6578 706f        <tool:expo\n-00012a70: 7274 7320 7479 7065 3d22 6f72 672e 6170  rts type=\"org.ap\n-00012a80: 6163 6865 2e64 7562 626f 2e63 6f6e 6669  ache.dubbo.confi\n-00012a90: 672e 5072 6f76 6964 6572 436f 6e66 6967  g.ProviderConfig\n-00012aa0: 222f 3e0a 2020 2020 2020 2020 2020 2020  \"/>.            \n-00012ab0: 2020 2020 3c2f 746f 6f6c 3a61 6e6e 6f74      </tool:annot\n-00012ac0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00012ad0: 2020 203c 2f78 7364 3a61 7070 696e 666f     </xsd:appinfo\n-00012ae0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00012af0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00012b00: 3c2f 7873 643a 656c 656d 656e 743e 0a0a  </xsd:element>..\n-00012b10: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n-00012b20: 206e 616d 653d 2263 6f6e 7375 6d65 7222   name=\"consumer\"\n-00012b30: 2074 7970 653d 2263 6f6e 7375 6d65 7254   type=\"consumerT\n-00012b40: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00012b50: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00012b60: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00012b70: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00012b80: 5b43 4441 5441 5b20 5365 7276 6963 6520  [CDATA[ Service \n-00012b90: 7265 6665 7265 6e63 6520 6465 6661 756c  reference defaul\n-00012ba0: 7420 636f 6e66 6967 205d 5d3e 3c2f 7873  t config ]]></xs\n-00012bb0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00012bc0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00012bd0: 643a 6170 7069 6e66 6f3e 0a20 2020 2020  d:appinfo>.     \n-00012be0: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n-00012bf0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00012c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012c10: 203c 746f 6f6c 3a65 7870 6f72 7473 2074   <tool:exports t\n-00012c20: 7970 653d 226f 7267 2e61 7061 6368 652e  ype=\"org.apache.\n-00012c30: 6475 6262 6f2e 636f 6e66 6967 2e43 6f6e  dubbo.config.Con\n-00012c40: 7375 6d65 7243 6f6e 6669 6722 2f3e 0a20  sumerConfig\"/>. \n-00012c50: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00012c60: 2f74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  /tool:annotation\n-00012c70: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00012c80: 7873 643a 6170 7069 6e66 6f3e 0a20 2020  xsd:appinfo>.   \n-00012c90: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00012ca0: 6174 696f 6e3e 0a20 2020 203c 2f78 7364  ation>.    </xsd\n-00012cb0: 3a65 6c65 6d65 6e74 3e0a 0a20 2020 203c  :element>..    <\n-00012cc0: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n-00012cd0: 3d22 7072 6f74 6f63 6f6c 2220 7479 7065  =\"protocol\" type\n-00012ce0: 3d22 7072 6f74 6f63 6f6c 5479 7065 223e  =\"protocolType\">\n-00012cf0: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n-00012d00: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00012d10: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00012d20: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00012d30: 415b 2053 6572 7669 6365 2070 726f 7669  A[ Service provi\n-00012d40: 6465 7220 636f 6e66 6967 205d 5d3e 3c2f  der config ]]></\n-00012d50: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00012d60: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00012d70: 7873 643a 6170 7069 6e66 6f3e 0a20 2020  xsd:appinfo>.   \n-00012d80: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n-00012d90: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-00012da0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012db0: 2020 203c 746f 6f6c 3a65 7870 6f72 7473     <tool:exports\n-00012dc0: 2074 7970 653d 226f 7267 2e61 7061 6368   type=\"org.apach\n-00012dd0: 652e 6475 6262 6f2e 636f 6e66 6967 2e50  e.dubbo.config.P\n-00012de0: 726f 746f 636f 6c43 6f6e 6669 6722 2f3e  rotocolConfig\"/>\n-00012df0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00012e00: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n-00012e10: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00012e20: 3c2f 7873 643a 6170 7069 6e66 6f3e 0a20  </xsd:appinfo>. \n-00012e30: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00012e40: 6f74 6174 696f 6e3e 0a20 2020 203c 2f78  otation>.    </x\n-00012e50: 7364 3a65 6c65 6d65 6e74 3e0a 0a20 2020  sd:element>..   \n-00012e60: 203c 7873 643a 656c 656d 656e 7420 6e61   <xsd:element na\n-00012e70: 6d65 3d22 7365 7276 6963 6522 2074 7970  me=\"service\" typ\n-00012e80: 653d 2273 6572 7669 6365 5479 7065 223e  e=\"serviceType\">\n-00012e90: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n-00012ea0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00012eb0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00012ec0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00012ed0: 415b 2045 7870 6f72 7420 7365 7276 6963  A[ Export servic\n-00012ee0: 6520 636f 6e66 6967 205d 5d3e 3c2f 7873  e config ]]></xs\n-00012ef0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00012f00: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00012f10: 643a 6170 7069 6e66 6f3e 0a20 2020 2020  d:appinfo>.     \n-00012f20: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n-00012f30: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00012f40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012f50: 203c 746f 6f6c 3a65 7870 6f72 7473 2074   <tool:exports t\n-00012f60: 7970 653d 226f 7267 2e61 7061 6368 652e  ype=\"org.apache.\n-00012f70: 6475 6262 6f2e 636f 6e66 6967 2e53 6572  dubbo.config.Ser\n-00012f80: 7669 6365 436f 6e66 6967 4261 7365 222f  viceConfigBase\"/\n-00012f90: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00012fa0: 2020 3c2f 746f 6f6c 3a61 6e6e 6f74 6174    </tool:annotat\n-00012fb0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00012fc0: 203c 2f78 7364 3a61 7070 696e 666f 3e0a   </xsd:appinfo>.\n-00012fd0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00012fe0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 3c2f  notation>.    </\n-00012ff0: 7873 643a 656c 656d 656e 743e 0a0a 2020  xsd:element>..  \n-00013000: 2020 3c78 7364 3a65 6c65 6d65 6e74 206e    <xsd:element n\n-00013010: 616d 653d 2272 6566 6572 656e 6365 2220  ame=\"reference\" \n-00013020: 7479 7065 3d22 7265 6665 7265 6e63 6554  type=\"referenceT\n-00013030: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00013040: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00013050: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00013060: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00013070: 5b43 4441 5441 5b20 5265 6665 7265 6e63  [CDATA[ Referenc\n-00013080: 6520 7365 7276 6963 6520 636f 6e66 6967  e service config\n-00013090: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000130a0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000130b0: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n-000130c0: 6f3e 0a20 2020 2020 2020 2020 2020 2020  o>.             \n-000130d0: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n-000130e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000130f0: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n-00013100: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n-00013110: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n-00013120: 6e66 6967 2e52 6566 6572 656e 6365 436f  nfig.ReferenceCo\n-00013130: 6e66 6967 4261 7365 222f 3e0a 2020 2020  nfigBase\"/>.    \n-00013140: 2020 2020 2020 2020 2020 2020 3c2f 746f              </to\n-00013150: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-00013160: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00013170: 3a61 7070 696e 666f 3e0a 2020 2020 2020  :appinfo>.      \n-00013180: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00013190: 6f6e 3e0a 2020 2020 3c2f 7873 643a 656c  on>.    </xsd:el\n-000131a0: 656d 656e 743e 0a0a 2020 2020 3c78 7364  ement>..    <xsd\n-000131b0: 3a65 6c65 6d65 6e74 206e 616d 653d 226d  :element name=\"m\n-000131c0: 6574 686f 6422 2074 7970 653d 226d 6574  ethod\" type=\"met\n-000131d0: 686f 6454 7970 6522 3e0a 2020 2020 2020  hodType\">.      \n-000131e0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000131f0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00013200: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00013210: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00013220: 7365 7276 6963 6520 6d65 7468 6f64 2063  service method c\n-00013230: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n-00013240: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00013250: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00013260: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-00013270: 2020 2020 2020 2020 3c74 6f6f 6c3a 616e          <tool:an\n-00013280: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00013290: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n-000132a0: 6f6f 6c3a 6578 706f 7274 7320 7479 7065  ool:exports type\n-000132b0: 3d22 6f72 672e 6170 6163 6865 2e64 7562  =\"org.apache.dub\n-000132c0: 626f 2e63 6f6e 6669 672e 4d65 7468 6f64  bo.config.Method\n-000132d0: 436f 6e66 6967 222f 3e0a 2020 2020 2020  Config\"/>.      \n-000132e0: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n-000132f0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00013300: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00013310: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-00013320: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00013330: 3e0a 2020 2020 3c2f 7873 643a 656c 656d  >.    </xsd:elem\n-00013340: 656e 743e 0a0a 2020 2020 3c78 7364 3a65  ent>..    <xsd:e\n-00013350: 6c65 6d65 6e74 206e 616d 653d 2261 7267  lement name=\"arg\n-00013360: 756d 656e 7422 2074 7970 653d 2261 7267  ument\" type=\"arg\n-00013370: 756d 656e 7454 7970 6522 3e0a 2020 2020  umentType\">.    \n-00013380: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00013390: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000133a0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000133b0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000133c0: 6520 7365 7276 6963 6520 6172 6775 6d65  e service argume\n-000133d0: 6e74 2063 6f6e 6669 6720 5d5d 3e3c 2f78  nt config ]]></x\n-000133e0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000133f0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00013400: 7364 3a61 7070 696e 666f 3e0a 2020 2020  sd:appinfo>.    \n-00013410: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n-00013420: 6c3a 616e 6e6f 7461 7469 6f6e 3e0a 2020  l:annotation>.  \n-00013430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00013440: 2020 3c74 6f6f 6c3a 6578 706f 7274 7320    <tool:exports \n-00013450: 7479 7065 3d22 6f72 672e 6170 6163 6865  type=\"org.apache\n-00013460: 2e64 7562 626f 2e63 6f6e 6669 672e 4172  .dubbo.config.Ar\n-00013470: 6775 6d65 6e74 436f 6e66 6967 222f 3e0a  gumentConfig\"/>.\n-00013480: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00013490: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n-000134a0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-000134b0: 2f78 7364 3a61 7070 696e 666f 3e0a 2020  /xsd:appinfo>.  \n-000134c0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-000134d0: 7461 7469 6f6e 3e0a 2020 2020 3c2f 7873  tation>.    </xs\n-000134e0: 643a 656c 656d 656e 743e 0a0a 2020 2020  d:element>..    \n-000134f0: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n-00013500: 653d 2270 6172 616d 6574 6572 2220 7479  e=\"parameter\" ty\n-00013510: 7065 3d22 7061 7261 6d65 7465 7254 7970  pe=\"parameterTyp\n-00013520: 6522 3e0a 2020 2020 2020 2020 3c78 7364  e\">.        <xsd\n-00013530: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00013540: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00013550: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00013560: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n-00013570: 6520 7572 6c20 7061 7261 6d65 7465 7220  e url parameter \n-00013580: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00013590: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000135a0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-000135b0: 3e0a 2020 2020 3c2f 7873 643a 656c 656d  >.    </xsd:elem\n-000135c0: 656e 743e 0a0a 2020 2020 3c78 7364 3a65  ent>..    <xsd:e\n-000135d0: 6c65 6d65 6e74 206e 616d 653d 226d 6574  lement name=\"met\n-000135e0: 7269 6373 2220 7479 7065 3d22 6d65 7472  rics\" type=\"metr\n-000135f0: 6963 7354 7970 6522 3e0a 2020 2020 2020  icsType\">.      \n-00013600: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00013610: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00013620: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00013630: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00013640: 6d65 7472 6963 7320 7365 7276 6963 6520  metrics service \n-00013650: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00013660: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00013670: 2020 2020 3c78 7364 3a61 7070 696e 666f      <xsd:appinfo\n-00013680: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00013690: 2020 3c74 6f6f 6c3a 616e 6e6f 7461 7469    <tool:annotati\n-000136a0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000136b0: 2020 2020 2020 2020 3c74 6f6f 6c3a 6578          <tool:ex\n-000136c0: 706f 7274 7320 7479 7065 3d22 6f72 672e  ports type=\"org.\n-000136d0: 6170 6163 6865 2e64 7562 626f 2e63 6f6e  apache.dubbo.con\n-000136e0: 6669 672e 4d65 7472 6963 7343 6f6e 6669  fig.MetricsConfi\n-000136f0: 6722 2f3e 0a20 2020 2020 2020 2020 2020  g\"/>.           \n-00013700: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n-00013710: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00013720: 2020 2020 3c2f 7873 643a 6170 7069 6e66      </xsd:appinf\n-00013730: 6f3e 0a20 2020 2020 2020 203c 2f78 7364  o>.        </xsd\n-00013740: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00013750: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0a   </xsd:element>.\n-00013760: 0a3c 2f78 7364 3a73 6368 656d 613e 0a    .</xsd:schema>.\n+0000fd30: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000fd40: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000fd50: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000fd60: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000fd70: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000fd80: 7269 6275 7465 206e 616d 653d 2270 6179  ribute name=\"pay\n+0000fd90: 6c6f 6164 2220 7479 7065 3d22 7873 643a  load\" type=\"xsd:\n+0000fda0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000fdb0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000fdc0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000fdd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fde0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000fdf0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000fe00: 4154 415b 2054 6865 206d 6178 2070 6179  ATA[ The max pay\n+0000fe10: 6c6f 6164 2e20 5d5d 3e3c 2f78 7364 3a64  load. ]]></xsd:d\n+0000fe20: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000fe30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fe40: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000fe50: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000fe60: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000fe70: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000fe80: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000fe90: 7269 6275 7465 206e 616d 653d 2262 7566  ribute name=\"buf\n+0000fea0: 6665 7222 2074 7970 653d 2278 7364 3a73  fer\" type=\"xsd:s\n+0000feb0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000fec0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000fed0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000fee0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fef0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000ff00: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000ff10: 5441 5b20 5468 6520 6275 6666 6572 2073  TA[ The buffer s\n+0000ff20: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000ff30: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000ff40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ff50: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000ff60: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000ff70: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000ff80: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000ff90: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000ffa0: 6962 7574 6520 6e61 6d65 3d22 7472 616e  ibute name=\"tran\n+0000ffb0: 7370 6f72 7465 7222 2074 7970 653d 2278  sporter\" type=\"x\n+0000ffc0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000ffd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ffe0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000fff0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010000: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00010010: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00010020: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+00010030: 6f63 6f6c 2074 7261 6e73 706f 7274 6572  ocol transporter\n+00010040: 2074 7970 652e 205d 5d3e 3c2f 7873 643a   type. ]]></xsd:\n+00010050: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00010060: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010070: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00010080: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00010090: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000100a0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000100b0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+000100c0: 7472 6962 7574 6520 6e61 6d65 3d22 6578  tribute name=\"ex\n+000100d0: 6368 616e 6765 7222 2074 7970 653d 2278  changer\" type=\"x\n+000100e0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+000100f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010100: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00010110: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010120: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00010130: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00010140: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+00010150: 6f63 6f6c 2065 7863 6861 6e67 6572 2074  ocol exchanger t\n+00010160: 7970 652e 205d 5d3e 3c2f 7873 643a 646f  ype. ]]></xsd:do\n+00010170: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00010180: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010190: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000101a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000101b0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+000101c0: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+000101d0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000101e0: 6962 7574 6520 6e61 6d65 3d22 6469 7370  ibute name=\"disp\n+000101f0: 6174 6865 7222 2074 7970 653d 2278 7364  ather\" type=\"xsd\n+00010200: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00010210: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00010220: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010230: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010240: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00010250: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00010260: 4441 5441 5b20 4465 7072 6563 6174 6564  DATA[ Deprecated\n+00010270: 2e20 7265 706c 6163 6520 746f 2022 6469  . replace to \"di\n+00010280: 7370 6174 6368 6572 222e 205d 5d3e 3c2f  spatcher\". ]]></\n+00010290: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000102a0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000102b0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000102c0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000102d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+000102e0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+000102f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010300: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010310: 3d22 6469 7370 6174 6368 6572 2220 7479  =\"dispatcher\" ty\n+00010320: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00010330: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010340: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00010350: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00010360: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010370: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00010380: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00010390: 2070 726f 746f 636f 6c20 6469 7370 6174   protocol dispat\n+000103a0: 6368 6572 2074 7970 652e 205d 5d3e 3c2f  cher type. ]]></\n+000103b0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000103c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000103d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000103e0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000103f0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010400: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010410: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010420: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010430: 3d22 6e65 7477 6f72 6b65 7222 2074 7970  =\"networker\" typ\n+00010440: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00010450: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010460: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00010470: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00010480: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00010490: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000104a0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+000104b0: 7072 6f74 6f63 6f6c 2022 6e65 7477 6f72  protocol \"networ\n+000104c0: 6b65 7222 2074 7970 652e 205d 5d3e 3c2f  ker\" type. ]]></\n+000104d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000104e0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000104f0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010500: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010510: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010520: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010530: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010540: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010550: 3d22 7365 7276 6572 2220 7479 7065 3d22  =\"server\" type=\"\n+00010560: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00010570: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010580: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00010590: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000105a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000105b0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000105c0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+000105d0: 746f 636f 6c20 7365 7276 6572 2074 7970  tocol server typ\n+000105e0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+000105f0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00010600: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010610: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00010620: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010630: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00010640: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00010650: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00010660: 7574 6520 6e61 6d65 3d22 636c 6965 6e74  ute name=\"client\n+00010670: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00010680: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00010690: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000106a0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000106b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000106c0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+000106d0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+000106e0: 2054 6865 2070 726f 746f 636f 6c20 636c   The protocol cl\n+000106f0: 6965 6e74 2074 7970 652e 205d 5d3e 3c2f  ient type. ]]></\n+00010700: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00010710: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010720: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010730: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010740: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010750: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010760: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010770: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010780: 3d22 7465 6c6e 6574 2220 7479 7065 3d22  =\"telnet\" type=\"\n+00010790: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+000107a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000107b0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+000107c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000107d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000107e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000107f0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+00010800: 746f 636f 6c20 7573 6520 7465 6c6e 6574  tocol use telnet\n+00010810: 2063 6f6d 6d61 6e64 732e 205d 5d3e 3c2f   commands. ]]></\n+00010820: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00010830: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010840: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010850: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010860: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010870: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010880: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010890: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000108a0: 3d22 7072 6f6d 7074 2220 7479 7065 3d22  =\"prompt\" type=\"\n+000108b0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+000108c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000108d0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+000108e0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000108f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00010900: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00010910: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+00010920: 746f 636f 6c20 7465 6c6e 6574 2070 726f  tocol telnet pro\n+00010930: 6d70 742e 205d 5d3e 3c2f 7873 643a 646f  mpt. ]]></xsd:do\n+00010940: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00010950: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010960: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00010970: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00010980: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00010990: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+000109a0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000109b0: 6962 7574 6520 6e61 6d65 3d22 7374 6174  ibute name=\"stat\n+000109c0: 7573 2220 7479 7065 3d22 7873 643a 7374  us\" type=\"xsd:st\n+000109d0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000109e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000109f0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00010a00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010a10: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00010a20: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00010a30: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+00010a40: 6368 6563 6b20 7374 6174 7573 2e20 5d5d  check status. ]]\n+00010a50: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00010a60: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00010a70: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010a80: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00010a90: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010aa0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00010ab0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010ac0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00010ad0: 616d 653d 2270 6174 6822 2074 7970 653d  ame=\"path\" type=\n+00010ae0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00010af0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010b00: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00010b10: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00010b20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010b30: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00010b40: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010b50: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n+00010b60: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+00010b70: 6f63 6f6c 2063 6f6e 7465 7874 2070 6174  ocol context pat\n+00010b80: 682e 2072 6570 6c61 6365 2074 6f20 2263  h. replace to \"c\n+00010b90: 6f6e 7465 7874 7061 7468 222e 205d 5d3e  ontextpath\". ]]>\n+00010ba0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00010bb0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00010bc0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00010bd0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00010be0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00010bf0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00010c00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00010c10: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00010c20: 6d65 3d22 636f 6e74 6578 7470 6174 6822  me=\"contextpath\"\n+00010c30: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00010c40: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00010c50: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00010c60: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010c70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010c80: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00010c90: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00010ca0: 5468 6520 7072 6f74 6f63 6f6c 2063 6f6e  The protocol con\n+00010cb0: 7465 7874 2070 6174 682e 205d 5d3e 3c2f  text path. ]]></\n+00010cc0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00010cd0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010ce0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010cf0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010d00: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010d10: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010d20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010d30: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010d40: 3d22 7761 6974 2220 7479 7065 3d22 7873  =\"wait\" type=\"xs\n+00010d50: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00010d60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010d70: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00010d80: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010d90: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00010da0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00010db0: 4344 4154 415b 2054 6865 2070 726f 7669  CDATA[ The provi\n+00010dc0: 6465 7220 7368 7574 646f 776e 2077 6169  der shutdown wai\n+00010dd0: 7420 7469 6d65 2e20 5d5d 3e3c 2f78 7364  t time. ]]></xsd\n+00010de0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00010df0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010e00: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00010e10: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00010e20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00010e30: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00010e40: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00010e50: 7474 7269 6275 7465 206e 616d 653d 2264  ttribute name=\"d\n+00010e60: 6566 6175 6c74 2220 7479 7065 3d22 7873  efault\" type=\"xs\n+00010e70: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00010e80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010e90: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00010ea0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010eb0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00010ec0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00010ed0: 4344 4154 415b 2049 7320 6465 6661 756c  CDATA[ Is defaul\n+00010ee0: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n+00010ef0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00010f00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010f10: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00010f20: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010f30: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00010f40: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00010f50: 2020 2020 203c 7873 643a 616e 7941 7474       <xsd:anyAtt\n+00010f60: 7269 6275 7465 206e 616d 6573 7061 6365  ribute namespace\n+00010f70: 3d22 2323 6f74 6865 7222 2070 726f 6365  =\"##other\" proce\n+00010f80: 7373 436f 6e74 656e 7473 3d22 6c61 7822  ssContents=\"lax\"\n+00010f90: 2f3e 0d0a 2020 2020 2020 2020 2020 2020  />..            \n+00010fa0: 3c2f 7873 643a 6578 7465 6e73 696f 6e3e  </xsd:extension>\n+00010fb0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00010fc0: 636f 6d70 6c65 7843 6f6e 7465 6e74 3e0d  complexContent>.\n+00010fd0: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n+00010fe0: 6578 5479 7065 3e0d 0a0d 0a20 2020 203c  exType>....    <\n+00010ff0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n+00011000: 6e61 6d65 3d22 7365 7276 6963 6554 7970  name=\"serviceTyp\n+00011010: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00011020: 643a 636f 6d70 6c65 7843 6f6e 7465 6e74  d:complexContent\n+00011030: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00011040: 7873 643a 6578 7465 6e73 696f 6e20 6261  xsd:extension ba\n+00011050: 7365 3d22 6162 7374 7261 6374 5365 7276  se=\"abstractServ\n+00011060: 6963 6554 7970 6522 3e0d 0a20 2020 2020  iceType\">..     \n+00011070: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011080: 6368 6f69 6365 206d 696e 4f63 6375 7273  choice minOccurs\n+00011090: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n+000110a0: 756e 626f 756e 6465 6422 3e0d 0a20 2020  unbounded\">..   \n+000110b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000110c0: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n+000110d0: 663d 226d 6574 686f 6422 206d 696e 4f63  f=\"method\" minOc\n+000110e0: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+000110f0: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n+00011100: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011110: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+00011120: 6e74 2072 6566 3d22 7061 7261 6d65 7465  nt ref=\"paramete\n+00011130: 7222 206d 696e 4f63 6375 7273 3d22 3022  r\" minOccurs=\"0\"\n+00011140: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+00011150: 756e 6465 6422 2f3e 0d0a 2020 2020 2020  unded\"/>..      \n+00011160: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00011170: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n+00011180: 6265 616e 733a 7072 6f70 6572 7479 2220  beans:property\" \n+00011190: 6d69 6e4f 6363 7572 733d 2230 2220 6d61  minOccurs=\"0\" ma\n+000111a0: 784f 6363 7572 733d 2275 6e62 6f75 6e64  xOccurs=\"unbound\n+000111b0: 6564 222f 3e0d 0a20 2020 2020 2020 2020  ed\"/>..         \n+000111c0: 2020 2020 2020 203c 2f78 7364 3a63 686f         </xsd:cho\n+000111d0: 6963 653e 0d0a 2020 2020 2020 2020 2020  ice>..          \n+000111e0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000111f0: 6275 7465 206e 616d 653d 2269 6e74 6572  bute name=\"inter\n+00011200: 6661 6365 2220 7479 7065 3d22 7873 643a  face\" type=\"xsd:\n+00011210: 746f 6b65 6e22 2075 7365 3d22 7265 7175  token\" use=\"requ\n+00011220: 6972 6564 223e 0d0a 2020 2020 2020 2020  ired\">..        \n+00011230: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011240: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00011250: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011260: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00011270: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00011280: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011290: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n+000112a0: 2044 6566 696e 6573 2074 6865 2069 6e74   Defines the int\n+000112b0: 6572 6661 6365 2074 6f20 6164 7665 7274  erface to advert\n+000112c0: 6973 6520 666f 7220 7468 6973 2073 6572  ise for this ser\n+000112d0: 7669 6365 2069 6e20 7468 6520 7365 7276  vice in the serv\n+000112e0: 6963 6520 7265 6769 7374 7279 2e20 5d5d  ice registry. ]]\n+000112f0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00011300: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00011310: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00011320: 7873 643a 6170 7069 6e66 6f3e 0d0a 2020  xsd:appinfo>..  \n+00011330: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011340: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+00011350: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00011360: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011370: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00011380: 6f6c 3a65 7870 6563 7465 642d 7479 7065  ol:expected-type\n+00011390: 2074 7970 653d 226a 6176 612e 6c61 6e67   type=\"java.lang\n+000113a0: 2e43 6c61 7373 222f 3e0d 0a20 2020 2020  .Class\"/>..     \n+000113b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000113c0: 2020 2020 2020 203c 2f74 6f6f 6c3a 616e         </tool:an\n+000113d0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000113e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000113f0: 2020 203c 2f78 7364 3a61 7070 696e 666f     </xsd:appinfo\n+00011400: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00011410: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00011420: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00011430: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00011440: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00011450: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011460: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00011470: 2272 6566 2220 7479 7065 3d22 7873 643a  \"ref\" type=\"xsd:\n+00011480: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00011490: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000114a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000114b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000114c0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+000114d0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000114e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000114f0: 2020 2020 2020 2020 203c 215b 4344 4154           <![CDAT\n+00011500: 415b 2054 6865 2073 6572 7669 6365 2069  A[ The service i\n+00011510: 6d70 6c65 6d65 6e74 6174 696f 6e20 696e  mplementation in\n+00011520: 7374 616e 6365 2062 6561 6e20 6964 2e20  stance bean id. \n+00011530: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00011540: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00011550: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00011560: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00011570: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011580: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00011590: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000115a0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+000115b0: 206e 616d 653d 2263 6c61 7373 2220 7479   name=\"class\" ty\n+000115c0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+000115d0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000115e0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+000115f0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011600: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011610: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00011620: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00011630: 2073 6572 7669 6365 2069 6d70 6c65 6d65   service impleme\n+00011640: 6e74 6174 696f 6e20 636c 6173 7320 6e61  ntation class na\n+00011650: 6d65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  me. ]]></xsd:doc\n+00011660: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00011670: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011680: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00011690: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000116a0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+000116b0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+000116c0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000116d0: 6275 7465 206e 616d 653d 2270 6174 6822  bute name=\"path\"\n+000116e0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000116f0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00011700: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00011710: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00011720: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011730: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00011740: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00011750: 5468 6520 7365 7276 6963 6520 7061 7468  The service path\n+00011760: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00011770: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00011780: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00011790: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+000117a0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000117b0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000117c0: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+000117d0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000117e0: 7465 206e 616d 653d 2270 726f 7669 6465  te name=\"provide\n+000117f0: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+00011800: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00011810: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011820: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00011830: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011840: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00011850: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00011860: 5b20 4465 7072 6563 6174 6564 2e20 5265  [ Deprecated. Re\n+00011870: 706c 6163 6520 746f 2070 726f 746f 636f  place to protoco\n+00011880: 6c2e 205d 5d3e 3c2f 7873 643a 646f 6375  l. ]]></xsd:docu\n+00011890: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000118a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000118b0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000118c0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000118d0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000118e0: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+000118f0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00011900: 7574 6520 6e61 6d65 3d22 6765 6e65 7269  ute name=\"generi\n+00011910: 6322 2074 7970 653d 2278 7364 3a73 7472  c\" type=\"xsd:str\n+00011920: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00011930: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011940: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00011950: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011960: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00011970: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00011980: 5b20 4765 6e65 7269 6320 7365 7276 6963  [ Generic servic\n+00011990: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+000119a0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000119b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000119c0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000119d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000119e0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000119f0: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00011a00: 2020 2020 203c 7873 643a 616e 7941 7474       <xsd:anyAtt\n+00011a10: 7269 6275 7465 206e 616d 6573 7061 6365  ribute namespace\n+00011a20: 3d22 2323 6f74 6865 7222 2070 726f 6365  =\"##other\" proce\n+00011a30: 7373 436f 6e74 656e 7473 3d22 6c61 7822  ssContents=\"lax\"\n+00011a40: 2f3e 0d0a 2020 2020 2020 2020 2020 2020  />..            \n+00011a50: 3c2f 7873 643a 6578 7465 6e73 696f 6e3e  </xsd:extension>\n+00011a60: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00011a70: 636f 6d70 6c65 7843 6f6e 7465 6e74 3e0d  complexContent>.\n+00011a80: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n+00011a90: 6578 5479 7065 3e0d 0a0d 0a20 2020 203c  exType>....    <\n+00011aa0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n+00011ab0: 6e61 6d65 3d22 7373 6c54 7970 6522 3e0d  name=\"sslType\">.\n+00011ac0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00011ad0: 7472 6962 7574 6520 6e61 6d65 3d22 6964  tribute name=\"id\n+00011ae0: 2220 7479 7065 3d22 7873 643a 4944 223e  \" type=\"xsd:ID\">\n+00011af0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00011b00: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00011b10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011b20: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00011b30: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00011b40: 2075 6e69 7175 6520 6964 656e 7469 6669   unique identifi\n+00011b50: 6572 2066 6f72 2061 2062 6561 6e2e 205d  er for a bean. ]\n+00011b60: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00011b70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011b80: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00011b90: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+00011ba0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00011bb0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00011bc0: 7472 6962 7574 6520 6e61 6d65 3d22 7365  tribute name=\"se\n+00011bd0: 7276 6572 2d6b 6579 2d63 6572 742d 6368  rver-key-cert-ch\n+00011be0: 6169 6e2d 7061 7468 2220 7479 7065 3d22  ain-path\" type=\"\n+00011bf0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00011c00: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00011c10: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00011c20: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011c30: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00011c40: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n+00011c50: 7665 7220 6365 7274 2e20 5d5d 3e3c 2f78  ver cert. ]]></x\n+00011c60: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00011c70: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00011c80: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00011c90: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00011ca0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00011cb0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00011cc0: 7465 206e 616d 653d 2273 6572 7665 722d  te name=\"server-\n+00011cd0: 7072 6976 6174 652d 6b65 792d 7061 7468  private-key-path\n+00011ce0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00011cf0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00011d00: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00011d10: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00011d20: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00011d30: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00011d40: 2054 6865 2073 6572 7665 7220 6b65 792e   The server key.\n+00011d50: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00011d60: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00011d70: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00011d80: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00011d90: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00011da0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00011db0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00011dc0: 7365 7276 6572 2d6b 6579 2d70 6173 7377  server-key-passw\n+00011dd0: 6f72 6422 2074 7970 653d 2278 7364 3a73  ord\" type=\"xsd:s\n+00011de0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00011df0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00011e00: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00011e10: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00011e20: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00011e30: 5441 5b20 5468 6520 7365 7276 6572 206b  TA[ The server k\n+00011e40: 6579 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ey. ]]></xsd:doc\n+00011e50: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00011e60: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00011e70: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00011e80: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00011e90: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00011ea0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00011eb0: 653d 2273 6572 7665 722d 7472 7573 742d  e=\"server-trust-\n+00011ec0: 6365 7274 2d63 6f6c 6c65 6374 696f 6e2d  cert-collection-\n+00011ed0: 7061 7468 2220 7479 7065 3d22 7873 643a  path\" type=\"xsd:\n+00011ee0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00011ef0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00011f00: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011f10: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00011f20: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00011f30: 4154 415b 2054 6865 2074 7275 7374 6564  ATA[ The trusted\n+00011f40: 2073 6572 7665 7220 6365 7274 2e20 5d5d   server cert. ]]\n+00011f50: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00011f60: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00011f70: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00011f80: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00011f90: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00011fa0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00011fb0: 7269 6275 7465 206e 616d 653d 2263 6c69  ribute name=\"cli\n+00011fc0: 656e 742d 6b65 792d 6365 7274 2d63 6861  ent-key-cert-cha\n+00011fd0: 696e 2d70 6174 6822 2074 7970 653d 2278  in-path\" type=\"x\n+00011fe0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00011ff0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00012000: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00012010: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012020: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00012030: 5b43 4441 5441 5b20 5468 6520 636c 6965  [CDATA[ The clie\n+00012040: 6e74 2063 6572 742e 205d 5d3e 3c2f 7873  nt cert. ]]></xs\n+00012050: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00012060: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00012070: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00012080: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00012090: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+000120a0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000120b0: 6520 6e61 6d65 3d22 636c 6965 6e74 2d70  e name=\"client-p\n+000120c0: 7269 7661 7465 2d6b 6579 2d70 6174 6822  rivate-key-path\"\n+000120d0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000120e0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+000120f0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00012100: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00012110: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00012120: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00012130: 5468 6520 636c 6965 6e74 206b 6579 2e20  The client key. \n+00012140: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00012150: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00012160: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00012170: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00012180: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00012190: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000121a0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n+000121b0: 6c69 656e 742d 6b65 792d 7061 7373 776f  lient-key-passwo\n+000121c0: 7264 2220 7479 7065 3d22 7873 643a 7374  rd\" type=\"xsd:st\n+000121d0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000121e0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000121f0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00012200: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00012210: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00012220: 415b 2054 6865 2063 6c69 656e 7420 6b65  A[ The client ke\n+00012230: 7920 7077 642e 205d 5d3e 3c2f 7873 643a  y pwd. ]]></xsd:\n+00012240: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00012250: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00012260: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00012270: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00012280: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00012290: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000122a0: 6e61 6d65 3d22 636c 6965 6e74 2d74 7275  name=\"client-tru\n+000122b0: 7374 2d63 6572 742d 636f 6c6c 6563 7469  st-cert-collecti\n+000122c0: 6f6e 2d70 6174 6822 2074 7970 653d 2278  on-path\" type=\"x\n+000122d0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+000122e0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+000122f0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00012300: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012310: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00012320: 5b43 4441 5441 5b20 5468 6520 7472 7573  [CDATA[ The trus\n+00012330: 7465 6420 636c 6965 6e74 2063 6572 742e  ted client cert.\n+00012340: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00012350: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00012360: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00012370: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00012380: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00012390: 3e0d 0a20 2020 203c 2f78 7364 3a63 6f6d  >..    </xsd:com\n+000123a0: 706c 6578 5479 7065 3e0d 0a0d 0a20 2020  plexType>....   \n+000123b0: 203c 7873 643a 656c 656d 656e 7420 6e61   <xsd:element na\n+000123c0: 6d65 3d22 7373 6c22 2074 7970 653d 2273  me=\"ssl\" type=\"s\n+000123d0: 736c 5479 7065 223e 0d0a 2020 2020 2020  slType\">..      \n+000123e0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+000123f0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00012400: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00012410: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00012420: 2073 736c 2063 6f6e 6669 6720 5d5d 3e3c   ssl config ]]><\n+00012430: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00012440: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00012450: 203c 7873 643a 6170 7069 6e66 6f3e 0d0a   <xsd:appinfo>..\n+00012460: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00012470: 3c74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  <tool:annotation\n+00012480: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00012490: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n+000124a0: 6f72 7473 2074 7970 653d 226f 7267 2e61  orts type=\"org.a\n+000124b0: 7061 6368 652e 6475 6262 6f2e 636f 6e66  pache.dubbo.conf\n+000124c0: 6967 2e53 736c 436f 6e66 6967 222f 3e0d  ig.SslConfig\"/>.\n+000124d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000124e0: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+000124f0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00012500: 203c 2f78 7364 3a61 7070 696e 666f 3e0d   </xsd:appinfo>.\n+00012510: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00012520: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00012530: 3c2f 7873 643a 656c 656d 656e 743e 0d0a  </xsd:element>..\n+00012540: 0d0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n+00012550: 6e74 206e 616d 653d 2261 7070 6c69 6361  nt name=\"applica\n+00012560: 7469 6f6e 2220 7479 7065 3d22 6170 706c  tion\" type=\"appl\n+00012570: 6963 6174 696f 6e54 7970 6522 3e0d 0a20  icationType\">.. \n+00012580: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00012590: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000125a0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+000125b0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+000125c0: 5b20 5468 6520 6170 706c 6963 6174 696f  [ The applicatio\n+000125d0: 6e20 636f 6e66 6967 205d 5d3e 3c2f 7873  n config ]]></xs\n+000125e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000125f0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00012600: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+00012610: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00012620: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  ol:annotation>..\n+00012630: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00012640: 2020 2020 3c74 6f6f 6c3a 6578 706f 7274      <tool:export\n+00012650: 7320 7479 7065 3d22 6f72 672e 6170 6163  s type=\"org.apac\n+00012660: 6865 2e64 7562 626f 2e63 6f6e 6669 672e  he.dubbo.config.\n+00012670: 4170 706c 6963 6174 696f 6e43 6f6e 6669  ApplicationConfi\n+00012680: 6722 2f3e 0d0a 2020 2020 2020 2020 2020  g\"/>..          \n+00012690: 2020 2020 2020 3c2f 746f 6f6c 3a61 6e6e        </tool:ann\n+000126a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000126b0: 2020 2020 2020 3c2f 7873 643a 6170 7069        </xsd:appi\n+000126c0: 6e66 6f3e 0d0a 2020 2020 2020 2020 3c2f  nfo>..        </\n+000126d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000126e0: 0a20 2020 203c 2f78 7364 3a65 6c65 6d65  .    </xsd:eleme\n+000126f0: 6e74 3e0d 0a0d 0a20 2020 203c 7873 643a  nt>....    <xsd:\n+00012700: 656c 656d 656e 7420 6e61 6d65 3d22 6d6f  element name=\"mo\n+00012710: 6475 6c65 2220 7479 7065 3d22 6d6f 6475  dule\" type=\"modu\n+00012720: 6c65 5479 7065 223e 0d0a 2020 2020 2020  leType\">..      \n+00012730: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00012740: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00012750: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00012760: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00012770: 206d 6f64 756c 6520 636f 6e66 6967 205d   module config ]\n+00012780: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00012790: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000127a0: 2020 2020 3c78 7364 3a61 7070 696e 666f      <xsd:appinfo\n+000127b0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000127c0: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n+000127d0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000127e0: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+000127f0: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n+00012800: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n+00012810: 6f6e 6669 672e 4d6f 6475 6c65 436f 6e66  onfig.ModuleConf\n+00012820: 6967 222f 3e0d 0a20 2020 2020 2020 2020  ig\"/>..         \n+00012830: 2020 2020 2020 203c 2f74 6f6f 6c3a 616e         </tool:an\n+00012840: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00012850: 2020 2020 2020 203c 2f78 7364 3a61 7070         </xsd:app\n+00012860: 696e 666f 3e0d 0a20 2020 2020 2020 203c  info>..        <\n+00012870: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00012880: 0d0a 2020 2020 3c2f 7873 643a 656c 656d  ..    </xsd:elem\n+00012890: 656e 743e 0d0a 0d0a 2020 2020 3c78 7364  ent>....    <xsd\n+000128a0: 3a65 6c65 6d65 6e74 206e 616d 653d 2272  :element name=\"r\n+000128b0: 6567 6973 7472 7922 2074 7970 653d 2272  egistry\" type=\"r\n+000128c0: 6567 6973 7472 7954 7970 6522 3e0d 0a20  egistryType\">.. \n+000128d0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+000128e0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000128f0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00012900: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00012910: 5b20 5468 6520 7265 6769 7374 7279 2063  [ The registry c\n+00012920: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n+00012930: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00012940: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012950: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00012960: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+00012970: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012980: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00012990: 203c 746f 6f6c 3a65 7870 6f72 7473 2074   <tool:exports t\n+000129a0: 7970 653d 226f 7267 2e61 7061 6368 652e  ype=\"org.apache.\n+000129b0: 6475 6262 6f2e 636f 6e66 6967 2e52 6567  dubbo.config.Reg\n+000129c0: 6973 7472 7943 6f6e 6669 6722 2f3e 0d0a  istryConfig\"/>..\n+000129d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000129e0: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n+000129f0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00012a00: 3c2f 7873 643a 6170 7069 6e66 6f3e 0d0a  </xsd:appinfo>..\n+00012a10: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00012a20: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 203c  notation>..    <\n+00012a30: 2f78 7364 3a65 6c65 6d65 6e74 3e0d 0a0d  /xsd:element>...\n+00012a40: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n+00012a50: 7420 6e61 6d65 3d22 6d65 7461 6461 7461  t name=\"metadata\n+00012a60: 2d72 6570 6f72 7422 2074 7970 653d 226d  -report\" type=\"m\n+00012a70: 6574 6164 6174 6152 6570 6f72 7454 7970  etadataReportTyp\n+00012a80: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00012a90: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00012aa0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012ab0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00012ac0: 5b43 4441 5441 5b20 5468 6520 6d65 7461  [CDATA[ The meta\n+00012ad0: 6461 7461 5265 706f 7274 2063 6f6e 6669  dataReport confi\n+00012ae0: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n+00012af0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00012b00: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n+00012b10: 6e66 6f3e 0d0a 2020 2020 2020 2020 2020  nfo>..          \n+00012b20: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n+00012b30: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00012b40: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00012b50: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n+00012b60: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n+00012b70: 6f2e 636f 6e66 6967 2e4d 6574 6164 6174  o.config.Metadat\n+00012b80: 6152 6570 6f72 7443 6f6e 6669 6722 2f3e  aReportConfig\"/>\n+00012b90: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00012ba0: 2020 3c2f 746f 6f6c 3a61 6e6e 6f74 6174    </tool:annotat\n+00012bb0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00012bc0: 2020 3c2f 7873 643a 6170 7069 6e66 6f3e    </xsd:appinfo>\n+00012bd0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00012be0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012bf0: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0d   </xsd:element>.\n+00012c00: 0a0d 0a20 2020 203c 7873 643a 656c 656d  ...    <xsd:elem\n+00012c10: 656e 7420 6e61 6d65 3d22 636f 6e66 6967  ent name=\"config\n+00012c20: 2d63 656e 7465 7222 2074 7970 653d 2263  -center\" type=\"c\n+00012c30: 6f6e 6669 6743 656e 7465 7254 7970 6522  onfigCenterType\"\n+00012c40: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00012c50: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012c60: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00012c70: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00012c80: 4441 5441 5b20 5468 6520 636f 6e66 6967  DATA[ The config\n+00012c90: 2063 656e 7465 7220 636f 6e66 6967 205d   center config ]\n+00012ca0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00012cb0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00012cc0: 2020 2020 3c78 7364 3a61 7070 696e 666f      <xsd:appinfo\n+00012cd0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00012ce0: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n+00012cf0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00012d00: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+00012d10: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n+00012d20: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n+00012d30: 6f6e 6669 672e 436f 6e66 6967 4365 6e74  onfig.ConfigCent\n+00012d40: 6572 436f 6e66 6967 222f 3e0d 0a20 2020  erConfig\"/>..   \n+00012d50: 2020 2020 2020 2020 2020 2020 203c 2f74               </t\n+00012d60: 6f6f 6c3a 616e 6e6f 7461 7469 6f6e 3e0d  ool:annotation>.\n+00012d70: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00012d80: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+00012d90: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00012da0: 6174 696f 6e3e 0d0a 2020 2020 3c2f 7873  ation>..    </xs\n+00012db0: 643a 656c 656d 656e 743e 0d0a 0d0a 2020  d:element>....  \n+00012dc0: 2020 3c78 7364 3a65 6c65 6d65 6e74 206e    <xsd:element n\n+00012dd0: 616d 653d 226d 6f6e 6974 6f72 2220 7479  ame=\"monitor\" ty\n+00012de0: 7065 3d22 6d6f 6e69 746f 7254 7970 6522  pe=\"monitorType\"\n+00012df0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00012e00: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012e10: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00012e20: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00012e30: 4441 5441 5b20 5468 6520 6c6f 6773 7461  DATA[ The logsta\n+00012e40: 7420 6d6f 6e69 746f 7220 636f 6e66 6967  t monitor config\n+00012e50: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00012e60: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00012e70: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n+00012e80: 666f 3e0d 0a20 2020 2020 2020 2020 2020  fo>..           \n+00012e90: 2020 2020 203c 746f 6f6c 3a61 6e6e 6f74       <tool:annot\n+00012ea0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00012eb0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00012ec0: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n+00012ed0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00012ee0: 2e63 6f6e 6669 672e 4d6f 6e69 746f 7243  .config.MonitorC\n+00012ef0: 6f6e 6669 6722 2f3e 0d0a 2020 2020 2020  onfig\"/>..      \n+00012f00: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n+00012f10: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00012f20: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00012f30: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00012f40: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00012f50: 6f6e 3e0d 0a20 2020 203c 2f78 7364 3a65  on>..    </xsd:e\n+00012f60: 6c65 6d65 6e74 3e0d 0a0d 0a20 2020 203c  lement>....    <\n+00012f70: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n+00012f80: 3d22 7072 6f76 6964 6572 2220 7479 7065  =\"provider\" type\n+00012f90: 3d22 7072 6f76 6964 6572 5479 7065 223e  =\"providerType\">\n+00012fa0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00012fb0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00012fc0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00012fd0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00012fe0: 4154 415b 2045 7870 6f72 7420 7365 7276  ATA[ Export serv\n+00012ff0: 6963 6520 6465 6661 756c 7420 636f 6e66  ice default conf\n+00013000: 6967 205d 5d3e 3c2f 7873 643a 646f 6375  ig ]]></xsd:docu\n+00013010: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00013020: 2020 2020 2020 2020 3c78 7364 3a61 7070          <xsd:app\n+00013030: 696e 666f 3e0d 0a20 2020 2020 2020 2020  info>..         \n+00013040: 2020 2020 2020 203c 746f 6f6c 3a61 6e6e         <tool:ann\n+00013050: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00013060: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n+00013070: 6f6f 6c3a 6578 706f 7274 7320 7479 7065  ool:exports type\n+00013080: 3d22 6f72 672e 6170 6163 6865 2e64 7562  =\"org.apache.dub\n+00013090: 626f 2e63 6f6e 6669 672e 5072 6f76 6964  bo.config.Provid\n+000130a0: 6572 436f 6e66 6967 222f 3e0d 0a20 2020  erConfig\"/>..   \n+000130b0: 2020 2020 2020 2020 2020 2020 203c 2f74               </t\n+000130c0: 6f6f 6c3a 616e 6e6f 7461 7469 6f6e 3e0d  ool:annotation>.\n+000130d0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+000130e0: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+000130f0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00013100: 6174 696f 6e3e 0d0a 2020 2020 3c2f 7873  ation>..    </xs\n+00013110: 643a 656c 656d 656e 743e 0d0a 0d0a 2020  d:element>....  \n+00013120: 2020 3c78 7364 3a65 6c65 6d65 6e74 206e    <xsd:element n\n+00013130: 616d 653d 2263 6f6e 7375 6d65 7222 2074  ame=\"consumer\" t\n+00013140: 7970 653d 2263 6f6e 7375 6d65 7254 7970  ype=\"consumerTyp\n+00013150: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00013160: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00013170: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013180: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00013190: 5b43 4441 5441 5b20 5365 7276 6963 6520  [CDATA[ Service \n+000131a0: 7265 6665 7265 6e63 6520 6465 6661 756c  reference defaul\n+000131b0: 7420 636f 6e66 6967 205d 5d3e 3c2f 7873  t config ]]></xs\n+000131c0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000131d0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+000131e0: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+000131f0: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00013200: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  ol:annotation>..\n+00013210: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013220: 2020 2020 3c74 6f6f 6c3a 6578 706f 7274      <tool:export\n+00013230: 7320 7479 7065 3d22 6f72 672e 6170 6163  s type=\"org.apac\n+00013240: 6865 2e64 7562 626f 2e63 6f6e 6669 672e  he.dubbo.config.\n+00013250: 436f 6e73 756d 6572 436f 6e66 6967 222f  ConsumerConfig\"/\n+00013260: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00013270: 2020 203c 2f74 6f6f 6c3a 616e 6e6f 7461     </tool:annota\n+00013280: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00013290: 2020 203c 2f78 7364 3a61 7070 696e 666f     </xsd:appinfo\n+000132a0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+000132b0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000132c0: 2020 3c2f 7873 643a 656c 656d 656e 743e    </xsd:element>\n+000132d0: 0d0a 0d0a 2020 2020 3c78 7364 3a65 6c65  ....    <xsd:ele\n+000132e0: 6d65 6e74 206e 616d 653d 2270 726f 746f  ment name=\"proto\n+000132f0: 636f 6c22 2074 7970 653d 2270 726f 746f  col\" type=\"proto\n+00013300: 636f 6c54 7970 6522 3e0d 0a20 2020 2020  colType\">..     \n+00013310: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00013320: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013330: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00013340: 696f 6e3e 3c21 5b43 4441 5441 5b20 5365  ion><![CDATA[ Se\n+00013350: 7276 6963 6520 7072 6f76 6964 6572 2063  rvice provider c\n+00013360: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n+00013370: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00013380: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013390: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+000133a0: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+000133b0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000133c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000133d0: 203c 746f 6f6c 3a65 7870 6f72 7473 2074   <tool:exports t\n+000133e0: 7970 653d 226f 7267 2e61 7061 6368 652e  ype=\"org.apache.\n+000133f0: 6475 6262 6f2e 636f 6e66 6967 2e50 726f  dubbo.config.Pro\n+00013400: 746f 636f 6c43 6f6e 6669 6722 2f3e 0d0a  tocolConfig\"/>..\n+00013410: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013420: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n+00013430: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00013440: 3c2f 7873 643a 6170 7069 6e66 6f3e 0d0a  </xsd:appinfo>..\n+00013450: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00013460: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 203c  notation>..    <\n+00013470: 2f78 7364 3a65 6c65 6d65 6e74 3e0d 0a0d  /xsd:element>...\n+00013480: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n+00013490: 7420 6e61 6d65 3d22 7365 7276 6963 6522  t name=\"service\"\n+000134a0: 2074 7970 653d 2273 6572 7669 6365 5479   type=\"serviceTy\n+000134b0: 7065 223e 0d0a 2020 2020 2020 2020 3c78  pe\">..        <x\n+000134c0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000134d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000134e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000134f0: 215b 4344 4154 415b 2045 7870 6f72 7420  ![CDATA[ Export \n+00013500: 7365 7276 6963 6520 636f 6e66 6967 205d  service config ]\n+00013510: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00013520: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00013530: 2020 2020 3c78 7364 3a61 7070 696e 666f      <xsd:appinfo\n+00013540: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00013550: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n+00013560: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00013570: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+00013580: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n+00013590: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n+000135a0: 6f6e 6669 672e 5365 7276 6963 6543 6f6e  onfig.ServiceCon\n+000135b0: 6669 6742 6173 6522 2f3e 0d0a 2020 2020  figBase\"/>..    \n+000135c0: 2020 2020 2020 2020 2020 2020 3c2f 746f              </to\n+000135d0: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  ol:annotation>..\n+000135e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000135f0: 643a 6170 7069 6e66 6f3e 0d0a 2020 2020  d:appinfo>..    \n+00013600: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00013610: 7469 6f6e 3e0d 0a20 2020 203c 2f78 7364  tion>..    </xsd\n+00013620: 3a65 6c65 6d65 6e74 3e0d 0a0d 0a20 2020  :element>....   \n+00013630: 203c 7873 643a 656c 656d 656e 7420 6e61   <xsd:element na\n+00013640: 6d65 3d22 7265 6665 7265 6e63 6522 2074  me=\"reference\" t\n+00013650: 7970 653d 2272 6566 6572 656e 6365 5479  ype=\"referenceTy\n+00013660: 7065 223e 0d0a 2020 2020 2020 2020 3c78  pe\">..        <x\n+00013670: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00013680: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00013690: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000136a0: 215b 4344 4154 415b 2052 6566 6572 656e  ![CDATA[ Referen\n+000136b0: 6365 2073 6572 7669 6365 2063 6f6e 6669  ce service confi\n+000136c0: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n+000136d0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+000136e0: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n+000136f0: 6e66 6f3e 0d0a 2020 2020 2020 2020 2020  nfo>..          \n+00013700: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n+00013710: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00013720: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00013730: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n+00013740: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n+00013750: 6f2e 636f 6e66 6967 2e52 6566 6572 656e  o.config.Referen\n+00013760: 6365 436f 6e66 6967 4261 7365 222f 3e0d  ceConfigBase\"/>.\n+00013770: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00013780: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+00013790: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000137a0: 203c 2f78 7364 3a61 7070 696e 666f 3e0d   </xsd:appinfo>.\n+000137b0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+000137c0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000137d0: 3c2f 7873 643a 656c 656d 656e 743e 0d0a  </xsd:element>..\n+000137e0: 0d0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n+000137f0: 6e74 206e 616d 653d 226d 6574 686f 6422  nt name=\"method\"\n+00013800: 2074 7970 653d 226d 6574 686f 6454 7970   type=\"methodTyp\n+00013810: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00013820: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00013830: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013840: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00013850: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00013860: 6963 6520 6d65 7468 6f64 2063 6f6e 6669  ice method confi\n+00013870: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n+00013880: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00013890: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n+000138a0: 6e66 6f3e 0d0a 2020 2020 2020 2020 2020  nfo>..          \n+000138b0: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n+000138c0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000138d0: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+000138e0: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n+000138f0: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n+00013900: 6f2e 636f 6e66 6967 2e4d 6574 686f 6443  o.config.MethodC\n+00013910: 6f6e 6669 6722 2f3e 0d0a 2020 2020 2020  onfig\"/>..      \n+00013920: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n+00013930: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00013940: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00013950: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00013960: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00013970: 6f6e 3e0d 0a20 2020 203c 2f78 7364 3a65  on>..    </xsd:e\n+00013980: 6c65 6d65 6e74 3e0d 0a0d 0a20 2020 203c  lement>....    <\n+00013990: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n+000139a0: 3d22 6172 6775 6d65 6e74 2220 7479 7065  =\"argument\" type\n+000139b0: 3d22 6172 6775 6d65 6e74 5479 7065 223e  =\"argumentType\">\n+000139c0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000139d0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000139e0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+000139f0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00013a00: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n+00013a10: 2061 7267 756d 656e 7420 636f 6e66 6967   argument config\n+00013a20: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00013a30: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00013a40: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n+00013a50: 666f 3e0d 0a20 2020 2020 2020 2020 2020  fo>..           \n+00013a60: 2020 2020 203c 746f 6f6c 3a61 6e6e 6f74       <tool:annot\n+00013a70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00013a80: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00013a90: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n+00013aa0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00013ab0: 2e63 6f6e 6669 672e 4172 6775 6d65 6e74  .config.Argument\n+00013ac0: 436f 6e66 6967 222f 3e0d 0a20 2020 2020  Config\"/>..     \n+00013ad0: 2020 2020 2020 2020 2020 203c 2f74 6f6f             </too\n+00013ae0: 6c3a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  l:annotation>.. \n+00013af0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00013b00: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+00013b10: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00013b20: 696f 6e3e 0d0a 2020 2020 3c2f 7873 643a  ion>..    </xsd:\n+00013b30: 656c 656d 656e 743e 0d0a 0d0a 2020 2020  element>....    \n+00013b40: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n+00013b50: 653d 2270 6172 616d 6574 6572 2220 7479  e=\"parameter\" ty\n+00013b60: 7065 3d22 7061 7261 6d65 7465 7254 7970  pe=\"parameterTyp\n+00013b70: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00013b80: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00013b90: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013ba0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00013bb0: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00013bc0: 6963 6520 7572 6c20 7061 7261 6d65 7465  ice url paramete\n+00013bd0: 7220 5d5d 3e3c 2f78 7364 3a64 6f63 756d  r ]]></xsd:docum\n+00013be0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00013bf0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00013c00: 696f 6e3e 0d0a 2020 2020 3c2f 7873 643a  ion>..    </xsd:\n+00013c10: 656c 656d 656e 743e 0d0a 0d0a 2020 2020  element>....    \n+00013c20: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n+00013c30: 653d 226d 6574 7269 6373 2220 7479 7065  e=\"metrics\" type\n+00013c40: 3d22 6d65 7472 6963 7354 7970 6522 3e0d  =\"metricsType\">.\n+00013c50: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n+00013c60: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00013c70: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00013c80: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00013c90: 5441 5b20 5468 6520 6d65 7472 6963 7320  TA[ The metrics \n+00013ca0: 7365 7276 6963 6520 5d5d 3e3c 2f78 7364  service ]]></xsd\n+00013cb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00013cc0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00013cd0: 643a 6170 7069 6e66 6f3e 0d0a 2020 2020  d:appinfo>..    \n+00013ce0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00013cf0: 6c3a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  l:annotation>.. \n+00013d00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013d10: 2020 203c 746f 6f6c 3a65 7870 6f72 7473     <tool:exports\n+00013d20: 2074 7970 653d 226f 7267 2e61 7061 6368   type=\"org.apach\n+00013d30: 652e 6475 6262 6f2e 636f 6e66 6967 2e4d  e.dubbo.config.M\n+00013d40: 6574 7269 6373 436f 6e66 6967 222f 3e0d  etricsConfig\"/>.\n+00013d50: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00013d60: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+00013d70: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013d80: 203c 2f78 7364 3a61 7070 696e 666f 3e0d   </xsd:appinfo>.\n+00013d90: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00013da0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00013db0: 3c2f 7873 643a 656c 656d 656e 743e 0d0a  </xsd:element>..\n+00013dc0: 0d0a 3c2f 7873 643a 7363 6865 6d61 3e0d  ..</xsd:schema>.\n+00013dd0: 0a                                       .\n"}, {"source1": "META-INF/dubbo.xsd", "source2": "META-INF/dubbo.xsd", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, Unicode text, UTF-8 text"], "has_internal_linenos": true, "unified_diff": "@@ -1,5086 +1,5191 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n 00000020: 462d 3822 2073 7461 6e64 616c 6f6e 653d  F-8\" standalone=\n-00000030: 226e 6f22 3f3e 0a3c 7873 643a 7363 6865  \"no\"?>.<xsd:sche\n-00000040: 6d61 2078 6d6c 6e73 3a78 7364 3d22 6874  ma xmlns:xsd=\"ht\n-00000050: 7470 3a2f 2f77 7777 2e77 332e 6f72 672f  tp://www.w3.org/\n-00000060: 3230 3031 2f58 4d4c 5363 6865 6d61 220a  2001/XMLSchema\".\n-00000070: 2020 2020 2020 2020 2020 2020 786d 6c6e              xmln\n-00000080: 733a 6265 616e 733d 2268 7474 703a 2f2f  s:beans=\"http://\n-00000090: 7777 772e 7370 7269 6e67 6672 616d 6577  www.springframew\n-000000a0: 6f72 6b2e 6f72 672f 7363 6865 6d61 2f62  ork.org/schema/b\n-000000b0: 6561 6e73 220a 2020 2020 2020 2020 2020  eans\".          \n-000000c0: 2020 786d 6c6e 733a 746f 6f6c 3d22 6874    xmlns:tool=\"ht\n-000000d0: 7470 3a2f 2f77 7777 2e73 7072 696e 6766  tp://www.springf\n-000000e0: 7261 6d65 776f 726b 2e6f 7267 2f73 6368  ramework.org/sch\n-000000f0: 656d 612f 746f 6f6c 220a 2020 2020 2020  ema/tool\".      \n-00000100: 2020 2020 2020 786d 6c6e 733d 2268 7474        xmlns=\"htt\n-00000110: 703a 2f2f 6475 6262 6f2e 6170 6163 6865  p://dubbo.apache\n-00000120: 2e6f 7267 2f73 6368 656d 612f 6475 6262  .org/schema/dubb\n-00000130: 6f22 0a20 2020 2020 2020 2020 2020 2074  o\".            t\n-00000140: 6172 6765 744e 616d 6573 7061 6365 3d22  argetNamespace=\"\n-00000150: 6874 7470 3a2f 2f64 7562 626f 2e61 7061  http://dubbo.apa\n-00000160: 6368 652e 6f72 672f 7363 6865 6d61 2f64  che.org/schema/d\n-00000170: 7562 626f 223e 0a0a 2020 2020 3c78 7364  ubbo\">..    <xsd\n-00000180: 3a69 6d70 6f72 7420 6e61 6d65 7370 6163  :import namespac\n-00000190: 653d 2268 7474 703a 2f2f 7777 772e 7733  e=\"http://www.w3\n-000001a0: 2e6f 7267 2f58 4d4c 2f31 3939 382f 6e61  .org/XML/1998/na\n-000001b0: 6d65 7370 6163 6522 2f3e 0a20 2020 203c  mespace\"/>.    <\n-000001c0: 7873 643a 696d 706f 7274 206e 616d 6573  xsd:import names\n-000001d0: 7061 6365 3d22 6874 7470 3a2f 2f77 7777  pace=\"http://www\n-000001e0: 2e73 7072 696e 6766 7261 6d65 776f 726b  .springframework\n-000001f0: 2e6f 7267 2f73 6368 656d 612f 6265 616e  .org/schema/bean\n-00000200: 7322 0a20 2020 2020 2020 2020 2020 2020  s\".             \n-00000210: 2020 2073 6368 656d 614c 6f63 6174 696f     schemaLocatio\n-00000220: 6e3d 2268 7474 703a 2f2f 7777 772e 7370  n=\"http://www.sp\n-00000230: 7269 6e67 6672 616d 6577 6f72 6b2e 6f72  ringframework.or\n-00000240: 672f 7363 6865 6d61 2f62 6561 6e73 2f73  g/schema/beans/s\n-00000250: 7072 696e 672d 6265 616e 732e 7873 6422  pring-beans.xsd\"\n-00000260: 2f3e 0a20 2020 203c 7873 643a 696d 706f  />.    <xsd:impo\n-00000270: 7274 206e 616d 6573 7061 6365 3d22 6874  rt namespace=\"ht\n-00000280: 7470 3a2f 2f77 7777 2e73 7072 696e 6766  tp://www.springf\n-00000290: 7261 6d65 776f 726b 2e6f 7267 2f73 6368  ramework.org/sch\n-000002a0: 656d 612f 746f 6f6c 222f 3e0a 0a20 2020  ema/tool\"/>..   \n-000002b0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000002c0: 3e0a 2020 2020 2020 2020 3c78 7364 3a64  >.        <xsd:d\n-000002d0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000002e0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n-000002f0: 5441 5b20 4e61 6d65 7370 6163 6520 7375  TA[ Namespace su\n-00000300: 7070 6f72 7420 666f 7220 7468 6520 6475  pport for the du\n-00000310: 6262 6f20 7365 7276 6963 6573 2070 726f  bbo services pro\n-00000320: 7669 6465 6420 6279 2064 7562 626f 2066  vided by dubbo f\n-00000330: 7261 6d65 776f 726b 2e20 5d5d 3e3c 2f78  ramework. ]]></x\n-00000340: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00000350: 3e0a 2020 2020 3c2f 7873 643a 616e 6e6f  >.    </xsd:anno\n-00000360: 7461 7469 6f6e 3e0a 0a20 2020 203c 7873  tation>..    <xs\n-00000370: 643a 636f 6d70 6c65 7854 7970 6520 6e61  d:complexType na\n-00000380: 6d65 3d22 6162 7374 7261 6374 4d65 7468  me=\"abstractMeth\n-00000390: 6f64 5479 7065 223e 0a20 2020 2020 2020  odType\">.       \n-000003a0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-000003b0: 6e61 6d65 3d22 7469 6d65 6f75 7422 2074  name=\"timeout\" t\n-000003c0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-000003d0: 2064 6566 6175 6c74 3d22 3022 3e0a 2020   default=\"0\">.  \n-000003e0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-000003f0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00000400: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00000410: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00000420: 5b43 4441 5441 5b20 5468 6520 6d65 7468  [CDATA[ The meth\n-00000430: 6f64 2069 6e76 6f6b 6520 7469 6d65 6f75  od invoke timeou\n-00000440: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n-00000450: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00000460: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00000470: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00000480: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00000490: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-000004a0: 7474 7269 6275 7465 206e 616d 653d 2272  ttribute name=\"r\n-000004b0: 6574 7269 6573 2220 7479 7065 3d22 7873  etries\" type=\"xs\n-000004c0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-000004d0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-000004e0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000004f0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00000500: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00000510: 4154 415b 2054 6865 206d 6574 686f 6420  ATA[ The method \n-00000520: 7265 7472 7920 7469 6d65 732e 205d 5d3e  retry times. ]]>\n-00000530: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00000540: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00000550: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00000560: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00000570: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00000580: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00000590: 7465 206e 616d 653d 2266 6169 6c62 6163  te name=\"failbac\n-000005a0: 6b74 6173 6b73 2220 7479 7065 3d22 7873  ktasks\" type=\"xs\n-000005b0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-000005c0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-000005d0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000005e0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-000005f0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00000600: 4154 415b 2054 6865 206d 6178 2066 6169  ATA[ The max fai\n-00000610: 6c62 6163 6b20 7461 736b 7320 6361 7061  lback tasks capa\n-00000620: 6369 7479 2073 697a 652e 205d 5d3e 3c2f  city size. ]]></\n-00000630: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00000640: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00000650: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00000660: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00000670: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00000680: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00000690: 206e 616d 653d 2261 6374 6976 6573 2220   name=\"actives\" \n-000006a0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-000006b0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-000006c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000006d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000006e0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-000006f0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00000700: 206d 6178 2061 6374 6976 6520 7265 7175   max active requ\n-00000710: 6573 7473 2e20 5d5d 3e3c 2f78 7364 3a64  ests. ]]></xsd:d\n-00000720: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00000730: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00000740: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00000750: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00000760: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00000770: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00000780: 3d22 636f 6e6e 6563 7469 6f6e 7322 2074  =\"connections\" t\n-00000790: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-000007a0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-000007b0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000007c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000007d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000007e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000007f0: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n-00000800: 2054 6865 2065 7863 6c75 7369 7665 2063   The exclusive c\n-00000810: 6f6e 6e65 6374 696f 6e73 2e20 6465 6661  onnections. defa\n-00000820: 756c 7420 7368 6172 6520 6f6e 6520 636f  ult share one co\n-00000830: 6e6e 6563 7469 6f6e 2e20 5d5d 3e3c 2f78  nnection. ]]></x\n-00000840: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00000850: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00000860: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00000870: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00000880: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00000890: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-000008a0: 6e61 6d65 3d22 6c6f 6164 6261 6c61 6e63  name=\"loadbalanc\n-000008b0: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-000008c0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-000008d0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000008e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000008f0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00000900: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00000910: 5468 6520 6d65 7468 6f64 206c 6f61 6420  The method load \n-00000920: 6261 6c61 6e63 652e 205d 5d3e 3c2f 7873  balance. ]]></xs\n-00000930: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00000940: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00000950: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00000960: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00000970: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00000980: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00000990: 616d 653d 2261 7379 6e63 2220 7479 7065  ame=\"async\" type\n-000009a0: 3d22 7873 643a 7374 7269 6e67 2220 6465  =\"xsd:string\" de\n-000009b0: 6661 756c 743d 2266 616c 7365 223e 0a20  fault=\"false\">. \n-000009c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000009d0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000009e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000009f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00000a00: 215b 4344 4154 415b 2054 6865 206d 6574  ![CDATA[ The met\n-00000a10: 686f 6420 646f 6573 2061 7379 6e63 2e20  hod does async. \n-00000a20: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00000a30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00000a40: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00000a50: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00000a60: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00000a70: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00000a80: 6962 7574 6520 6e61 6d65 3d22 7365 6e74  ibute name=\"sent\n-00000a90: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00000aa0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00000ab0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00000ac0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00000ad0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00000ae0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00000af0: 6865 2061 7379 6e63 206d 6574 686f 6420  he async method \n-00000b00: 7265 7475 726e 2061 7761 6974 206d 6573  return await mes\n-00000b10: 7361 6765 2073 656e 7420 5d5d 3e3c 2f78  sage sent ]]></x\n-00000b20: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00000b30: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00000b40: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00000b50: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00000b60: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00000b70: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00000b80: 6e61 6d65 3d22 6d6f 636b 2220 7479 7065  name=\"mock\" type\n-00000b90: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00000ba0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00000bb0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00000bc0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00000bd0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00000be0: 215b 4344 4154 415b 2055 7365 2073 6572  ![CDATA[ Use ser\n-00000bf0: 7669 6365 206d 6f63 6b20 696d 706c 656d  vice mock implem\n-00000c00: 656e 7461 7469 6f6e 2e20 5d5d 3e3c 2f78  entation. ]]></x\n-00000c10: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00000c20: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00000c30: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00000c40: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00000c50: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00000c60: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00000c70: 6e61 6d65 3d22 6d65 7267 6572 2220 7479  name=\"merger\" ty\n-00000c80: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00000c90: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00000ca0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00000cb0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00000cc0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00000cd0: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n-00000ce0: 756c 7469 2d67 726f 7570 2072 6573 756c  ulti-group resul\n-00000cf0: 7420 6d65 7267 6572 205d 5d3e 3c2f 7873  t merger ]]></xs\n-00000d00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00000d10: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00000d20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00000d30: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00000d40: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00000d50: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00000d60: 616d 653d 2276 616c 6964 6174 696f 6e22  ame=\"validation\"\n-00000d70: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00000d80: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00000d90: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00000da0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00000db0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00000dc0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5573  ion><![CDATA[ Us\n-00000dd0: 6520 7365 7276 6963 6520 6a73 7233 3033  e service jsr303\n-00000de0: 2076 616c 6964 6174 696f 6e2c 2074 7275   validation, tru\n-00000df0: 652f 6661 6c73 652e 205d 5d3e 3c2f 7873  e/false. ]]></xs\n-00000e00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00000e10: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00000e20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00000e30: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00000e40: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00000e50: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00000e60: 616d 653d 2263 6163 6865 2220 7479 7065  ame=\"cache\" type\n-00000e70: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00000e80: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00000e90: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00000ea0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00000eb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00000ec0: 215b 4344 4154 415b 2055 7365 2073 6572  ![CDATA[ Use ser\n-00000ed0: 7669 6365 2063 6163 6865 2c20 6c72 752f  vice cache, lru/\n-00000ee0: 7468 7265 6164 6c6f 6361 6c2f 6a63 6163  threadlocal/jcac\n-00000ef0: 6865 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  he. ]]></xsd:doc\n-00000f00: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00000f10: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00000f20: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00000f30: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00000f40: 653e 0a20 2020 203c 2f78 7364 3a63 6f6d  e>.    </xsd:com\n-00000f50: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-00000f60: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-00000f70: 6e61 6d65 3d22 6162 7374 7261 6374 496e  name=\"abstractIn\n-00000f80: 7465 7266 6163 6554 7970 6522 3e0a 2020  terfaceType\">.  \n-00000f90: 2020 2020 2020 3c78 7364 3a63 6f6d 706c        <xsd:compl\n-00000fa0: 6578 436f 6e74 656e 743e 0a20 2020 2020  exContent>.     \n-00000fb0: 2020 2020 2020 203c 7873 643a 6578 7465         <xsd:exte\n-00000fc0: 6e73 696f 6e20 6261 7365 3d22 6162 7374  nsion base=\"abst\n-00000fd0: 7261 6374 4d65 7468 6f64 5479 7065 223e  ractMethodType\">\n-00000fe0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00000ff0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00001000: 6e61 6d65 3d22 6964 2220 7479 7065 3d22  name=\"id\" type=\"\n-00001010: 7873 643a 4944 223e 0a20 2020 2020 2020  xsd:ID\">.       \n-00001020: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00001030: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00001040: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001050: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00001060: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00001070: 415b 2054 6865 2075 6e69 7175 6520 6964  A[ The unique id\n-00001080: 656e 7469 6669 6572 2066 6f72 2061 2062  entifier for a b\n-00001090: 6561 6e2e 205d 5d3e 3c2f 7873 643a 646f  ean. ]]></xsd:do\n-000010a0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-000010b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000010c0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-000010d0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000010e0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-000010f0: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-00001100: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00001110: 7465 206e 616d 653d 226c 6f63 616c 2220  te name=\"local\" \n-00001120: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00001130: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00001140: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00001150: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001160: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001170: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00001180: 6f6e 3e3c 215b 4344 4154 415b 2055 7365  on><![CDATA[ Use\n-00001190: 2073 6572 7669 6365 206c 6f63 616c 2069   service local i\n-000011a0: 6d70 6c65 6d65 6e74 6174 696f 6e2e 205d  mplementation. ]\n-000011b0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-000011c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000011d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-000011e0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000011f0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00001200: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00001210: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00001220: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00001230: 653d 2273 7475 6222 2074 7970 653d 2278  e=\"stub\" type=\"x\n-00001240: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00001250: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001260: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00001270: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001280: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00001290: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000012a0: 4441 5441 5b20 5573 6520 7365 7276 6963  DATA[ Use servic\n-000012b0: 6520 6c6f 6361 6c20 696d 706c 656d 656e  e local implemen\n-000012c0: 7461 7469 6f6e 2e20 5d5d 3e3c 2f78 7364  tation. ]]></xsd\n-000012d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-000012e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000012f0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00001300: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00001310: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00001320: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-00001330: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00001340: 6962 7574 6520 6e61 6d65 3d22 7072 6f78  ibute name=\"prox\n-00001350: 7922 2074 7970 653d 2278 7364 3a73 7472  y\" type=\"xsd:str\n-00001360: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-00001370: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00001380: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00001390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000013a0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-000013b0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-000013c0: 5573 6520 7072 6f78 7920 6661 6374 6f72  Use proxy factor\n-000013d0: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n-000013e0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000013f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001400: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00001410: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001420: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00001430: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001440: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00001450: 206e 616d 653d 2263 6c75 7374 6572 2220   name=\"cluster\" \n-00001460: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00001470: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00001480: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00001490: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000014a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000014b0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-000014c0: 6f6e 3e3c 215b 4344 4154 415b 2055 7365  on><![CDATA[ Use\n-000014d0: 2063 6c75 7374 6572 2073 7472 6174 6567   cluster strateg\n-000014e0: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n-000014f0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00001500: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001510: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00001520: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001530: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00001540: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001550: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00001560: 206e 616d 653d 2266 6f72 6b73 2220 7479   name=\"forks\" ty\n-00001570: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00001580: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001590: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000015a0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000015b0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000015c0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000015d0: 3e3c 215b 4344 4154 415b 2046 6f72 6b69  ><![CDATA[ Forki\n-000015e0: 6e67 436c 7573 7465 7220 666f 726b 732e  ngCluster forks.\n-000015f0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00001600: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00001610: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00001620: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00001630: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001640: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00001650: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001660: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00001670: 616d 653d 2266 696c 7465 7222 2074 7970  ame=\"filter\" typ\n-00001680: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00001690: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000016a0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000016b0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000016c0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000016d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000016e0: 3c21 5b43 4441 5441 5b20 5468 6520 6669  <![CDATA[ The fi\n-000016f0: 6c74 6572 2e20 5d5d 3e3c 2f78 7364 3a64  lter. ]]></xsd:d\n-00001700: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00001710: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001720: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00001730: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00001740: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00001750: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-00001760: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00001770: 7574 6520 6e61 6d65 3d22 6c69 7374 656e  ute name=\"listen\n-00001780: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n-00001790: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-000017a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000017b0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000017c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000017d0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000017e0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-000017f0: 2054 6865 206c 6973 7465 6e65 722e 205d   The listener. ]\n-00001800: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00001810: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00001820: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00001830: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00001840: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00001850: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00001860: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00001870: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00001880: 653d 226f 776e 6572 2220 7479 7065 3d22  e=\"owner\" type=\"\n-00001890: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-000018a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000018b0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000018c0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000018d0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000018e0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000018f0: 4344 4154 415b 2054 6865 206f 776e 6572  CDATA[ The owner\n-00001900: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00001910: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00001920: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00001930: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n+00000030: 226e 6f22 3f3e 0d0a 3c78 7364 3a73 6368  \"no\"?>..<xsd:sch\n+00000040: 656d 6120 786d 6c6e 733a 7873 643d 2268  ema xmlns:xsd=\"h\n+00000050: 7474 703a 2f2f 7777 772e 7733 2e6f 7267  ttp://www.w3.org\n+00000060: 2f32 3030 312f 584d 4c53 6368 656d 6122  /2001/XMLSchema\"\n+00000070: 0d0a 2020 2020 2020 2020 2020 2020 786d  ..            xm\n+00000080: 6c6e 733a 6265 616e 733d 2268 7474 703a  lns:beans=\"http:\n+00000090: 2f2f 7777 772e 7370 7269 6e67 6672 616d  //www.springfram\n+000000a0: 6577 6f72 6b2e 6f72 672f 7363 6865 6d61  ework.org/schema\n+000000b0: 2f62 6561 6e73 220d 0a20 2020 2020 2020  /beans\"..       \n+000000c0: 2020 2020 2078 6d6c 6e73 3a74 6f6f 6c3d       xmlns:tool=\n+000000d0: 2268 7474 703a 2f2f 7777 772e 7370 7269  \"http://www.spri\n+000000e0: 6e67 6672 616d 6577 6f72 6b2e 6f72 672f  ngframework.org/\n+000000f0: 7363 6865 6d61 2f74 6f6f 6c22 0d0a 2020  schema/tool\"..  \n+00000100: 2020 2020 2020 2020 2020 786d 6c6e 733d            xmlns=\n+00000110: 2268 7474 703a 2f2f 6475 6262 6f2e 6170  \"http://dubbo.ap\n+00000120: 6163 6865 2e6f 7267 2f73 6368 656d 612f  ache.org/schema/\n+00000130: 6475 6262 6f22 0d0a 2020 2020 2020 2020  dubbo\"..        \n+00000140: 2020 2020 7461 7267 6574 4e61 6d65 7370      targetNamesp\n+00000150: 6163 653d 2268 7474 703a 2f2f 6475 6262  ace=\"http://dubb\n+00000160: 6f2e 6170 6163 6865 2e6f 7267 2f73 6368  o.apache.org/sch\n+00000170: 656d 612f 6475 6262 6f22 3e0d 0a0d 0a20  ema/dubbo\">.... \n+00000180: 2020 203c 7873 643a 696d 706f 7274 206e     <xsd:import n\n+00000190: 616d 6573 7061 6365 3d22 6874 7470 3a2f  amespace=\"http:/\n+000001a0: 2f77 7777 2e77 332e 6f72 672f 584d 4c2f  /www.w3.org/XML/\n+000001b0: 3139 3938 2f6e 616d 6573 7061 6365 222f  1998/namespace\"/\n+000001c0: 3e0d 0a20 2020 203c 7873 643a 696d 706f  >..    <xsd:impo\n+000001d0: 7274 206e 616d 6573 7061 6365 3d22 6874  rt namespace=\"ht\n+000001e0: 7470 3a2f 2f77 7777 2e73 7072 696e 6766  tp://www.springf\n+000001f0: 7261 6d65 776f 726b 2e6f 7267 2f73 6368  ramework.org/sch\n+00000200: 656d 612f 6265 616e 7322 0d0a 2020 2020  ema/beans\"..    \n+00000210: 2020 2020 2020 2020 2020 2020 7363 6865              sche\n+00000220: 6d61 4c6f 6361 7469 6f6e 3d22 6874 7470  maLocation=\"http\n+00000230: 3a2f 2f77 7777 2e73 7072 696e 6766 7261  ://www.springfra\n+00000240: 6d65 776f 726b 2e6f 7267 2f73 6368 656d  mework.org/schem\n+00000250: 612f 6265 616e 732f 7370 7269 6e67 2d62  a/beans/spring-b\n+00000260: 6561 6e73 2e78 7364 222f 3e0d 0a20 2020  eans.xsd\"/>..   \n+00000270: 203c 7873 643a 696d 706f 7274 206e 616d   <xsd:import nam\n+00000280: 6573 7061 6365 3d22 6874 7470 3a2f 2f77  espace=\"http://w\n+00000290: 7777 2e73 7072 696e 6766 7261 6d65 776f  ww.springframewo\n+000002a0: 726b 2e6f 7267 2f73 6368 656d 612f 746f  rk.org/schema/to\n+000002b0: 6f6c 222f 3e0d 0a0d 0a20 2020 203c 7873  ol\"/>....    <xs\n+000002c0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000002d0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000002e0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000002f0: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00000300: 5b20 4e61 6d65 7370 6163 6520 7375 7070  [ Namespace supp\n+00000310: 6f72 7420 666f 7220 7468 6520 6475 6262  ort for the dubb\n+00000320: 6f20 7365 7276 6963 6573 2070 726f 7669  o services provi\n+00000330: 6465 6420 6279 2064 7562 626f 2066 7261  ded by dubbo fra\n+00000340: 6d65 776f 726b 2e20 5d5d 3e3c 2f78 7364  mework. ]]></xsd\n+00000350: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00000360: 0a20 2020 203c 2f78 7364 3a61 6e6e 6f74  .    </xsd:annot\n+00000370: 6174 696f 6e3e 0d0a 0d0a 2020 2020 3c78  ation>....    <x\n+00000380: 7364 3a63 6f6d 706c 6578 5479 7065 206e  sd:complexType n\n+00000390: 616d 653d 2261 6273 7472 6163 744d 6574  ame=\"abstractMet\n+000003a0: 686f 6454 7970 6522 3e0d 0a20 2020 2020  hodType\">..     \n+000003b0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000003c0: 6520 6e61 6d65 3d22 7469 6d65 6f75 7422  e name=\"timeout\"\n+000003d0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000003e0: 6722 2064 6566 6175 6c74 3d22 3022 3e0d  g\" default=\"0\">.\n+000003f0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00000400: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000410: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00000420: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00000430: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00000440: 6d65 7468 6f64 2069 6e76 6f6b 6520 7469  method invoke ti\n+00000450: 6d65 6f75 742e 205d 5d3e 3c2f 7873 643a  meout. ]]></xsd:\n+00000460: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00000470: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00000480: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000490: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000004a0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000004b0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000004c0: 6e61 6d65 3d22 7265 7472 6965 7322 2074  name=\"retries\" t\n+000004d0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000004e0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000004f0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000500: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00000510: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00000520: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00000530: 6520 6d65 7468 6f64 2072 6574 7279 2074  e method retry t\n+00000540: 696d 6573 2e20 5d5d 3e3c 2f78 7364 3a64  imes. ]]></xsd:d\n+00000550: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00000560: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00000570: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00000580: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00000590: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+000005a0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+000005b0: 616d 653d 2266 6169 6c62 6163 6b74 6173  ame=\"failbacktas\n+000005c0: 6b73 2220 7479 7065 3d22 7873 643a 7374  ks\" type=\"xsd:st\n+000005d0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000005e0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000005f0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00000600: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00000610: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00000620: 415b 2054 6865 206d 6178 2066 6169 6c62  A[ The max failb\n+00000630: 6163 6b20 7461 736b 7320 6361 7061 6369  ack tasks capaci\n+00000640: 7479 2073 697a 652e 205d 5d3e 3c2f 7873  ty size. ]]></xs\n+00000650: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00000660: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00000670: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000680: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00000690: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+000006a0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000006b0: 6520 6e61 6d65 3d22 6163 7469 7665 7322  e name=\"actives\"\n+000006c0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000006d0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+000006e0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+000006f0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00000700: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00000710: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00000720: 5468 6520 6d61 7820 6163 7469 7665 2072  The max active r\n+00000730: 6571 7565 7374 732e 205d 5d3e 3c2f 7873  equests. ]]></xs\n+00000740: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00000750: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00000760: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000770: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00000780: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00000790: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000007a0: 6520 6e61 6d65 3d22 636f 6e6e 6563 7469  e name=\"connecti\n+000007b0: 6f6e 7322 2074 7970 653d 2278 7364 3a73  ons\" type=\"xsd:s\n+000007c0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+000007d0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000007e0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000007f0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00000800: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00000810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00000820: 3c21 5b43 4441 5441 5b20 5468 6520 6578  <![CDATA[ The ex\n+00000830: 636c 7573 6976 6520 636f 6e6e 6563 7469  clusive connecti\n+00000840: 6f6e 732e 2064 6566 6175 6c74 2073 6861  ons. default sha\n+00000850: 7265 206f 6e65 2063 6f6e 6e65 6374 696f  re one connectio\n+00000860: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n+00000870: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00000880: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00000890: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000008a0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000008b0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000008c0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000008d0: 3d22 6c6f 6164 6261 6c61 6e63 6522 2074  =\"loadbalance\" t\n+000008e0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000008f0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00000900: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00000910: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00000920: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00000930: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00000940: 6520 6d65 7468 6f64 206c 6f61 6420 6261  e method load ba\n+00000950: 6c61 6e63 652e 205d 5d3e 3c2f 7873 643a  lance. ]]></xsd:\n+00000960: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00000970: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00000980: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000990: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000009a0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000009b0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000009c0: 6e61 6d65 3d22 6173 796e 6322 2074 7970  name=\"async\" typ\n+000009d0: 653d 2278 7364 3a73 7472 696e 6722 2064  e=\"xsd:string\" d\n+000009e0: 6566 6175 6c74 3d22 6661 6c73 6522 3e0d  efault=\"false\">.\n+000009f0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00000a00: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000a10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00000a20: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00000a30: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00000a40: 6d65 7468 6f64 2064 6f65 7320 6173 796e  method does asyn\n+00000a50: 632e 205d 5d3e 3c2f 7873 643a 646f 6375  c. ]]></xsd:docu\n+00000a60: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00000a70: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00000a80: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00000a90: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00000aa0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00000ab0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00000ac0: 3d22 7365 6e74 2220 7479 7065 3d22 7873  =\"sent\" type=\"xs\n+00000ad0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00000ae0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00000af0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00000b00: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00000b10: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00000b20: 4344 4154 415b 2054 6865 2061 7379 6e63  CDATA[ The async\n+00000b30: 206d 6574 686f 6420 7265 7475 726e 2061   method return a\n+00000b40: 7761 6974 206d 6573 7361 6765 2073 656e  wait message sen\n+00000b50: 7420 5d5d 3e3c 2f78 7364 3a64 6f63 756d  t ]]></xsd:docum\n+00000b60: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00000b70: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00000b80: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00000b90: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00000ba0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00000bb0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00000bc0: 226d 6f63 6b22 2074 7970 653d 2278 7364  \"mock\" type=\"xsd\n+00000bd0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00000be0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00000bf0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00000c00: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00000c10: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00000c20: 4441 5441 5b20 5573 6520 7365 7276 6963  DATA[ Use servic\n+00000c30: 6520 6d6f 636b 2069 6d70 6c65 6d65 6e74  e mock implement\n+00000c40: 6174 696f 6e2e 205d 5d3e 3c2f 7873 643a  ation. ]]></xsd:\n+00000c50: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00000c60: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00000c70: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00000c80: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00000c90: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00000ca0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00000cb0: 6e61 6d65 3d22 6d65 7267 6572 2220 7479  name=\"merger\" ty\n+00000cc0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00000cd0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00000ce0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00000cf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00000d00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00000d10: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00000d20: 206d 756c 7469 2d67 726f 7570 2072 6573   multi-group res\n+00000d30: 756c 7420 6d65 7267 6572 205d 5d3e 3c2f  ult merger ]]></\n+00000d40: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00000d50: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00000d60: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00000d70: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00000d80: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00000d90: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00000da0: 7574 6520 6e61 6d65 3d22 7661 6c69 6461  ute name=\"valida\n+00000db0: 7469 6f6e 2220 7479 7065 3d22 7873 643a  tion\" type=\"xsd:\n+00000dc0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00000dd0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00000de0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000df0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00000e00: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00000e10: 4154 415b 2055 7365 2073 6572 7669 6365  ATA[ Use service\n+00000e20: 206a 7372 3330 3320 7661 6c69 6461 7469   jsr303 validati\n+00000e30: 6f6e 2c20 7472 7565 2f66 616c 7365 2e20  on, true/false. \n+00000e40: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00000e50: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00000e60: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00000e70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000e80: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00000e90: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00000ea0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n+00000eb0: 6163 6865 2220 7479 7065 3d22 7873 643a  ache\" type=\"xsd:\n+00000ec0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00000ed0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00000ee0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000ef0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00000f00: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00000f10: 4154 415b 2055 7365 2073 6572 7669 6365  ATA[ Use service\n+00000f20: 2063 6163 6865 2c20 6c72 752f 7468 7265   cache, lru/thre\n+00000f30: 6164 6c6f 6361 6c2f 6a63 6163 6865 2e20  adlocal/jcache. \n+00000f40: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00000f50: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00000f60: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00000f70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00000f80: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00000f90: 0d0a 2020 2020 3c2f 7873 643a 636f 6d70  ..    </xsd:comp\n+00000fa0: 6c65 7854 7970 653e 0d0a 0d0a 2020 2020  lexType>....    \n+00000fb0: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n+00000fc0: 206e 616d 653d 2261 6273 7472 6163 7449   name=\"abstractI\n+00000fd0: 6e74 6572 6661 6365 5479 7065 223e 0d0a  nterfaceType\">..\n+00000fe0: 2020 2020 2020 2020 3c78 7364 3a63 6f6d          <xsd:com\n+00000ff0: 706c 6578 436f 6e74 656e 743e 0d0a 2020  plexContent>..  \n+00001000: 2020 2020 2020 2020 2020 3c78 7364 3a65            <xsd:e\n+00001010: 7874 656e 7369 6f6e 2062 6173 653d 2261  xtension base=\"a\n+00001020: 6273 7472 6163 744d 6574 686f 6454 7970  bstractMethodTyp\n+00001030: 6522 3e0d 0a20 2020 2020 2020 2020 2020  e\">..           \n+00001040: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00001050: 7574 6520 6e61 6d65 3d22 6964 2220 7479  ute name=\"id\" ty\n+00001060: 7065 3d22 7873 643a 4944 223e 0d0a 2020  pe=\"xsd:ID\">..  \n+00001070: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001080: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00001090: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000010a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000010b0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000010c0: 215b 4344 4154 415b 2054 6865 2075 6e69  ![CDATA[ The uni\n+000010d0: 7175 6520 6964 656e 7469 6669 6572 2066  que identifier f\n+000010e0: 6f72 2061 2062 6561 6e2e 205d 5d3e 3c2f  or a bean. ]]></\n+000010f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00001100: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00001110: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00001120: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00001130: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00001140: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00001150: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00001160: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00001170: 3d22 6c6f 6361 6c22 2074 7970 653d 2278  =\"local\" type=\"x\n+00001180: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00001190: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000011a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+000011b0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000011c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000011d0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+000011e0: 5b43 4441 5441 5b20 5573 6520 7365 7276  [CDATA[ Use serv\n+000011f0: 6963 6520 6c6f 6361 6c20 696d 706c 656d  ice local implem\n+00001200: 656e 7461 7469 6f6e 2e20 5d5d 3e3c 2f78  entation. ]]></x\n+00001210: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00001220: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001230: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00001240: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00001250: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00001260: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00001270: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001280: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00001290: 2273 7475 6222 2074 7970 653d 2278 7364  \"stub\" type=\"xsd\n+000012a0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+000012b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000012c0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000012d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000012e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000012f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00001300: 4441 5441 5b20 5573 6520 7365 7276 6963  DATA[ Use servic\n+00001310: 6520 6c6f 6361 6c20 696d 706c 656d 656e  e local implemen\n+00001320: 7461 7469 6f6e 2e20 5d5d 3e3c 2f78 7364  tation. ]]></xsd\n+00001330: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00001340: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001350: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00001360: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001370: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00001380: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00001390: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000013a0: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n+000013b0: 726f 7879 2220 7479 7065 3d22 7873 643a  roxy\" type=\"xsd:\n+000013c0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+000013d0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000013e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000013f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001400: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00001410: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00001420: 4154 415b 2055 7365 2070 726f 7879 2066  ATA[ Use proxy f\n+00001430: 6163 746f 7279 2e20 5d5d 3e3c 2f78 7364  actory. ]]></xsd\n+00001440: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00001450: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001460: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00001470: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001480: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00001490: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+000014a0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000014b0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n+000014c0: 6c75 7374 6572 2220 7479 7065 3d22 7873  luster\" type=\"xs\n+000014d0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+000014e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000014f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00001500: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001510: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00001520: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00001530: 4344 4154 415b 2055 7365 2063 6c75 7374  CDATA[ Use clust\n+00001540: 6572 2073 7472 6174 6567 792e 205d 5d3e  er strategy. ]]>\n+00001550: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00001560: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00001570: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00001580: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00001590: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+000015a0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000015b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000015c0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+000015d0: 6d65 3d22 666f 726b 7322 2074 7970 653d  me=\"forks\" type=\n+000015e0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+000015f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001600: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00001610: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00001620: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00001630: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00001640: 3c21 5b43 4441 5441 5b20 466f 726b 696e  <![CDATA[ Forkin\n+00001650: 6743 6c75 7374 6572 2066 6f72 6b73 2e20  gCluster forks. \n+00001660: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00001670: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001680: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00001690: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000016a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000016b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+000016c0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000016d0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+000016e0: 206e 616d 653d 2266 696c 7465 7222 2074   name=\"filter\" t\n+000016f0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00001700: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001710: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00001720: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001730: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001740: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00001750: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00001760: 6520 6669 6c74 6572 2e20 5d5d 3e3c 2f78  e filter. ]]></x\n+00001770: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00001780: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001790: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+000017a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000017b0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000017c0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+000017d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000017e0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000017f0: 226c 6973 7465 6e65 7222 2074 7970 653d  \"listener\" type=\n+00001800: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00001810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001820: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00001830: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00001840: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00001850: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00001860: 3c21 5b43 4441 5441 5b20 5468 6520 6c69  <![CDATA[ The li\n+00001870: 7374 656e 6572 2e20 5d5d 3e3c 2f78 7364  stener. ]]></xsd\n+00001880: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00001890: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000018a0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+000018b0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000018c0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+000018d0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+000018e0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000018f0: 7474 7269 6275 7465 206e 616d 653d 226f  ttribute name=\"o\n+00001900: 776e 6572 2220 7479 7065 3d22 7873 643a  wner\" type=\"xsd:\n+00001910: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00001920: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00001930: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n 00001940: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001950: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00001960: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001970: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00001980: 6e61 6d65 3d22 6c61 7965 7222 2074 7970  name=\"layer\" typ\n-00001990: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-000019a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000019b0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000019c0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000019d0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000019e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000019f0: 3c21 5b43 4441 5441 5b20 6c61 7965 7220  <![CDATA[ layer \n-00001a00: 696e 666f 2e20 5d5d 3e3c 2f78 7364 3a64  info. ]]></xsd:d\n-00001a10: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00001a20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001a30: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00001a40: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00001a50: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00001a60: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-00001a70: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00001a80: 7574 6520 6e61 6d65 3d22 6170 706c 6963  ute name=\"applic\n-00001a90: 6174 696f 6e22 2074 7970 653d 2278 7364  ation\" type=\"xsd\n-00001aa0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00001ab0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00001ac0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00001ad0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001ae0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00001af0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00001b00: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n-00001b10: 6170 706c 6963 6174 696f 6e2e 205d 5d3e  application. ]]>\n-00001b20: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00001b30: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00001b40: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00001b50: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00001b60: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00001b70: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00001b80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00001b90: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00001ba0: 226d 6f64 756c 6522 2074 7970 653d 2278  \"module\" type=\"x\n-00001bb0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n+00001950: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00001960: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00001970: 4154 415b 2054 6865 206f 776e 6572 2e20  ATA[ The owner. \n+00001980: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00001990: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000019a0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+000019b0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000019c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000019d0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+000019e0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000019f0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00001a00: 206e 616d 653d 226c 6179 6572 2220 7479   name=\"layer\" ty\n+00001a10: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00001a20: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001a30: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00001a40: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00001a50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001a60: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00001a70: 6f6e 3e3c 215b 4344 4154 415b 206c 6179  on><![CDATA[ lay\n+00001a80: 6572 2069 6e66 6f2e 205d 5d3e 3c2f 7873  er info. ]]></xs\n+00001a90: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00001aa0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001ab0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00001ac0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00001ad0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00001ae0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00001af0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00001b00: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00001b10: 6170 706c 6963 6174 696f 6e22 2074 7970  application\" typ\n+00001b20: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00001b30: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001b40: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00001b50: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00001b60: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001b70: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00001b80: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00001b90: 7365 7276 6963 6520 6170 706c 6963 6174  service applicat\n+00001ba0: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n+00001bb0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n 00001bc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001bd0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00001be0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001bf0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00001c00: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00001c10: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n-00001c20: 6520 6d6f 6475 6c65 2e20 5d5d 3e3c 2f78  e module. ]]></x\n-00001c30: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00001c40: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001c50: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00001c60: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001c70: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00001c80: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00001c90: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00001ca0: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n-00001cb0: 6769 7374 7279 2220 7479 7065 3d22 7873  gistry\" type=\"xs\n-00001cc0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00001cd0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001ce0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001cf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001d00: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00001d10: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00001d20: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n-00001d30: 2072 6567 6973 7472 792e 205d 5d3e 3c2f   registry. ]]></\n-00001d40: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00001d50: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00001d60: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00001d70: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00001d80: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00001d90: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00001da0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00001db0: 7474 7269 6275 7465 206e 616d 653d 226d  ttribute name=\"m\n-00001dc0: 6f6e 6974 6f72 2220 7479 7065 3d22 7873  onitor\" type=\"xs\n-00001dd0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00001de0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00001df0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00001e00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001e10: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00001e20: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00001e30: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n-00001e40: 206d 6f6e 6974 6f72 2e20 5d5d 3e3c 2f78   monitor. ]]></x\n-00001e50: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00001e60: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00001e70: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00001e80: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00001e90: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00001ea0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00001eb0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00001ec0: 7472 6962 7574 6520 6e61 6d65 3d22 6361  tribute name=\"ca\n-00001ed0: 6c6c 6261 636b 7322 2074 7970 653d 2278  llbacks\" type=\"x\n-00001ee0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00001ef0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001f00: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00001f10: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001f20: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00001f30: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00001f40: 4441 5441 5b20 5468 6520 6361 6c6c 6261  DATA[ The callba\n-00001f50: 636b 2069 6e73 7461 6e63 6520 6c69 6d69  ck instance limi\n-00001f60: 7420 7065 6572 2063 6f6e 6e65 6374 696f  t peer connectio\n-00001f70: 6e2e 5d5d 3e3c 2f78 7364 3a64 6f63 756d  n.]]></xsd:docum\n-00001f80: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00001f90: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00001fa0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n+00001bd0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00001be0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00001bf0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00001c00: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+00001c10: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00001c20: 6962 7574 6520 6e61 6d65 3d22 6d6f 6475  ibute name=\"modu\n+00001c30: 6c65 2220 7479 7065 3d22 7873 643a 7374  le\" type=\"xsd:st\n+00001c40: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00001c50: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00001c60: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00001c70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001c80: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00001c90: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00001ca0: 415b 2054 6865 2073 6572 7669 6365 206d  A[ The service m\n+00001cb0: 6f64 756c 652e 205d 5d3e 3c2f 7873 643a  odule. ]]></xsd:\n+00001cc0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00001cd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001ce0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+00001cf0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00001d00: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00001d10: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00001d20: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+00001d30: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n+00001d40: 6769 7374 7279 2220 7479 7065 3d22 7873  gistry\" type=\"xs\n+00001d50: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00001d60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00001d70: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00001d80: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00001d90: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00001da0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00001db0: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n+00001dc0: 6365 2072 6567 6973 7472 792e 205d 5d3e  ce registry. ]]>\n+00001dd0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00001de0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00001df0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00001e00: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00001e10: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00001e20: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00001e30: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001e40: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00001e50: 6d65 3d22 6d6f 6e69 746f 7222 2074 7970  me=\"monitor\" typ\n+00001e60: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00001e70: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001e80: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00001e90: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00001ea0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00001eb0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00001ec0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00001ed0: 7365 7276 6963 6520 6d6f 6e69 746f 722e  service monitor.\n+00001ee0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00001ef0: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00001f00: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00001f10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00001f20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00001f30: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00001f40: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00001f50: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00001f60: 6520 6e61 6d65 3d22 6361 6c6c 6261 636b  e name=\"callback\n+00001f70: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n+00001f80: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00001f90: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00001fa0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n 00001fb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00001fc0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00001fd0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00001fe0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00001ff0: 6e61 6d65 3d22 6f6e 636f 6e6e 6563 7422  name=\"onconnect\"\n-00002000: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00002010: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00002020: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00002030: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00002040: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002050: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00002060: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00002070: 6520 7365 7276 6963 6520 636c 6965 6e74  e service client\n-00002080: 2063 6f6e 6e65 6374 6564 2e20 5d5d 3e3c   connected. ]]><\n-00002090: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000020a0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000020b0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-000020c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000020d0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000020e0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-000020f0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00002100: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00002110: 6f6e 6469 7363 6f6e 6e65 6374 2220 7479  ondisconnect\" ty\n-00002120: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00002130: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002140: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00002150: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00002160: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002170: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00002180: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n-00002190: 6572 7669 6365 2063 6c69 656e 7420 6469  ervice client di\n-000021a0: 7363 6f6e 6e65 6374 6564 2e20 5d5d 3e3c  sconnected. ]]><\n-000021b0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000021c0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000021d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-000021e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000021f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00002200: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00002210: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00002220: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00002230: 7363 6f70 6522 2074 7970 653d 2278 7364  scope\" type=\"xsd\n-00002240: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00002250: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00002260: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00002270: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002280: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00002290: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000022a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000022b0: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n-000022c0: 2044 6566 696e 6573 2074 6865 2073 6572   Defines the ser\n-000022d0: 7669 6365 2076 6973 6962 696c 6974 792c  vice visibility,\n-000022e0: 2063 686f 6973 653a 5b6c 6f63 616c 2072   choise:[local r\n-000022f0: 656d 6f74 655d 2e20 6465 6661 756c 7420  emote]. default \n-00002300: 6973 2072 656d 6f74 652c 2077 6869 6368  is remote, which\n-00002310: 2063 616e 2062 6520 696e 766f 6b65 6420   can be invoked \n-00002320: 6279 206e 6574 776f 726b e380 8220 205d  by network...  ]\n-00002330: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00002340: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00002350: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00002360: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00002370: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00002380: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00002390: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000023a0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-000023b0: 653d 2274 6167 2220 7479 7065 3d22 7873  e=\"tag\" type=\"xs\n-000023c0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-000023d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000023e0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000023f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002400: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00002410: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00002420: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002430: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-00002440: 5b20 4465 6669 6e65 7320 7468 6520 7365  [ Defines the se\n-00002450: 7276 6963 6520 7461 675d 5d3e 3c2f 7873  rvice tag]]></xs\n-00002460: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00002470: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002480: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00002490: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000024a0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000024b0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000024c0: 2020 2020 3c2f 7873 643a 6578 7465 6e73      </xsd:extens\n-000024d0: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-000024e0: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n-000024f0: 743e 0a20 2020 203c 2f78 7364 3a63 6f6d  t>.    </xsd:com\n-00002500: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-00002510: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-00002520: 6e61 6d65 3d22 6162 7374 7261 6374 5265  name=\"abstractRe\n-00002530: 6665 7265 6e63 6554 7970 6522 3e0a 2020  ferenceType\">.  \n-00002540: 2020 2020 2020 3c78 7364 3a63 6f6d 706c        <xsd:compl\n-00002550: 6578 436f 6e74 656e 743e 0a20 2020 2020  exContent>.     \n-00002560: 2020 2020 2020 203c 7873 643a 6578 7465         <xsd:exte\n-00002570: 6e73 696f 6e20 6261 7365 3d22 6162 7374  nsion base=\"abst\n-00002580: 7261 6374 496e 7465 7266 6163 6554 7970  ractInterfaceTyp\n-00002590: 6522 3e0a 2020 2020 2020 2020 2020 2020  e\">.            \n-000025a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-000025b0: 7465 206e 616d 653d 2276 6572 7369 6f6e  te name=\"version\n-000025c0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-000025d0: 6e67 2220 6465 6661 756c 743d 2230 2e30  ng\" default=\"0.0\n-000025e0: 2e30 223e 0a20 2020 2020 2020 2020 2020  .0\">.           \n-000025f0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00002600: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00002610: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002620: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00002630: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00002640: 6865 2073 6572 7669 6365 2076 6572 7369  he service versi\n-00002650: 6f6e 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  on. ]]></xsd:doc\n-00002660: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00002670: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002680: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00002690: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000026a0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-000026b0: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-000026c0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-000026d0: 6520 6e61 6d65 3d22 6772 6f75 7022 2074  e name=\"group\" t\n-000026e0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-000026f0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002700: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00002710: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00002720: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00002730: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002740: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00002750: 7365 7276 6963 6520 6772 6f75 702e 205d  service group. ]\n-00002760: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00002770: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00002780: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00002790: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000027a0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-000027b0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-000027c0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000027d0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-000027e0: 653d 2263 6865 636b 2220 7479 7065 3d22  e=\"check\" type=\"\n-000027f0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00002800: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002810: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00002820: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002830: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00002840: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00002850: 4344 4154 415b 2043 6865 636b 2064 6570  CDATA[ Check dep\n-00002860: 656e 6465 6e63 7920 7072 6f76 6964 6572  endency provider\n-00002870: 732e 205d 5d3e 3c2f 7873 643a 646f 6375  s. ]]></xsd:docu\n-00002880: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00002890: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000028a0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-000028b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000028c0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-000028d0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000028e0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-000028f0: 206e 616d 653d 2269 6e69 7422 2074 7970   name=\"init\" typ\n-00002900: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00002910: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002920: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00002930: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00002940: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002950: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00002960: 3c21 5b43 4441 5441 5b20 4561 6765 7220  <![CDATA[ Eager \n-00002970: 696e 6974 2072 6566 6572 656e 6365 2e20  init reference. \n-00002980: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00002990: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000029a0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000029b0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000029c0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-000029d0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000029e0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000029f0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00002a00: 6d65 3d22 6765 6e65 7269 6322 2074 7970  me=\"generic\" typ\n-00002a10: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00002a20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002a30: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00002a40: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00002a50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002a60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00002a70: 3c21 5b43 4441 5441 5b20 4765 6e65 7269  <![CDATA[ Generi\n-00002a80: 6320 7365 7276 6963 652e 205d 5d3e 3c2f  c service. ]]></\n-00002a90: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002aa0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00002ab0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00002ac0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00002ad0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00002ae0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00002af0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00002b00: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n-00002b10: 6e6a 766d 2220 7479 7065 3d22 7873 643a  njvm\" type=\"xsd:\n-00002b20: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00002b30: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002b40: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00002b50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002b60: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00002b70: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00002b80: 415b 4465 7072 6563 6174 6564 2e20 5265  A[Deprecated. Re\n-00002b90: 706c 6163 6520 746f 2020 7365 7420 7363  place to  set sc\n-00002ba0: 6f70 653d 6c6f 6361 6c20 5d5d 3e3c 2f78  ope=local ]]></x\n-00002bb0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00002bc0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002bd0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00002be0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00002bf0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00002c00: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00002c10: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00002c20: 7472 6962 7574 6520 6e61 6d65 3d22 7374  tribute name=\"st\n-00002c30: 6963 6b79 2220 7479 7065 3d22 7873 643a  icky\" type=\"xsd:\n-00002c40: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00002c50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002c60: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00002c70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002c80: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00002c90: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00002ca0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002cb0: 2020 2020 2020 3c21 5b43 4441 5441 5b20        <![CDATA[ \n-00002cc0: 456e 6162 6c65 2f44 6973 6162 6c65 2063  Enable/Disable c\n-00002cd0: 6c75 7374 6572 2073 7469 636b 7920 706f  luster sticky po\n-00002ce0: 6c69 6379 2e44 6566 6175 6c74 2066 616c  licy.Default fal\n-00002cf0: 7365 205d 5d3e 3c2f 7873 643a 646f 6375  se ]]></xsd:docu\n-00002d00: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00002d10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00002d20: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00002d30: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00002d40: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00002d50: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00002d60: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00002d70: 206e 616d 653d 2272 6563 6f6e 6e65 6374   name=\"reconnect\n-00002d80: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00002d90: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00002da0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00002db0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00002dc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002dd0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00002de0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00002df0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002e00: 2020 3c21 5b43 4441 5441 5b20 7265 6d6f    <![CDATA[ remo\n-00002e10: 7469 6e67 2072 6563 6f6e 6e65 6374 2074  ting reconnect t\n-00002e20: 696d 6572 2e20 6661 6c73 6520 7265 7072  imer. false repr\n-00002e30: 6573 656e 7420 636c 6f73 6520 7265 636f  esent close reco\n-00002e40: 6e6e 6563 742e 2069 6e74 6567 6572 2072  nnect. integer r\n-00002e50: 6570 7265 7365 6e74 2069 6e74 6572 7661  epresent interva\n-00002e60: 6c28 6d73 2920 2e64 6566 6175 6c74 2074  l(ms) .default t\n-00002e70: 7275 6528 3230 3030 6d73 292e 5d5d 3e3c  rue(2000ms).]]><\n-00002e80: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00002e90: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00002ea0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00002eb0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00002ec0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00002ed0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00002ee0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00002ef0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00002f00: 6c61 7a79 2220 7479 7065 3d22 7873 643a  lazy\" type=\"xsd:\n-00002f10: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00002f20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00002f30: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00002f40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00002f50: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00002f60: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00002f70: 415b 206c 617a 7920 6372 6561 7465 2063  A[ lazy create c\n-00002f80: 6f6e 6e65 6374 696f 6e2e 205d 5d3e 3c2f  onnection. ]]></\n-00002f90: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00002fa0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00002fb0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00002fc0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00002fd0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00002fe0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00002ff0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00003000: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n-00003010: 726f 7669 6465 642d 6279 2220 7479 7065  rovided-by\" type\n-00003020: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00003030: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003040: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00003050: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00003060: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00003070: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00003080: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003090: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n-000030a0: 4441 5441 5b20 6465 636c 6172 6573 2077  DATA[ declares w\n-000030b0: 6869 6368 2061 7070 206f 7220 7365 7276  hich app or serv\n-000030c0: 6963 6520 7468 6973 2069 6e74 6572 6661  ice this interfa\n-000030d0: 6365 2062 656c 6f6e 6773 2074 6f2e 205d  ce belongs to. ]\n-000030e0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-000030f0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003100: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00003110: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00003120: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003130: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00003140: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00003150: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00003160: 653d 2272 6f75 7465 7222 2074 7970 653d  e=\"router\" type=\n-00003170: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00003180: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003190: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000031a0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000031b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000031c0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-000031d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000031e0: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n-000031f0: 4154 415b 2054 6865 2072 6f75 7465 7273  ATA[ The routers\n-00003200: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00003210: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00003220: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003230: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00003240: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003250: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00003260: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00003270: 643a 6578 7465 6e73 696f 6e3e 0a20 2020  d:extension>.   \n-00003280: 2020 2020 203c 2f78 7364 3a63 6f6d 706c       </xsd:compl\n-00003290: 6578 436f 6e74 656e 743e 0a20 2020 203c  exContent>.    <\n-000032a0: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n-000032b0: 3e0a 0a20 2020 203c 7873 643a 636f 6d70  >..    <xsd:comp\n-000032c0: 6c65 7854 7970 6520 6e61 6d65 3d22 6162  lexType name=\"ab\n-000032d0: 7374 7261 6374 5365 7276 6963 6554 7970  stractServiceTyp\n-000032e0: 6522 3e0a 2020 2020 2020 2020 3c78 7364  e\">.        <xsd\n-000032f0: 3a63 6f6d 706c 6578 436f 6e74 656e 743e  :complexContent>\n-00003300: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00003310: 643a 6578 7465 6e73 696f 6e20 6261 7365  d:extension base\n-00003320: 3d22 6162 7374 7261 6374 496e 7465 7266  =\"abstractInterf\n-00003330: 6163 6554 7970 6522 3e0a 2020 2020 2020  aceType\">.      \n-00003340: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00003350: 7474 7269 6275 7465 206e 616d 653d 2272  ttribute name=\"r\n-00003360: 6567 6973 7465 7222 2074 7970 653d 2278  egister\" type=\"x\n-00003370: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00003380: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003390: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-000033a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000033b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000033c0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000033d0: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n-000033e0: 6520 6361 6e20 6265 2072 6567 6973 7465  e can be registe\n-000033f0: 7220 746f 2072 6567 6973 7472 792e 205d  r to registry. ]\n-00003400: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00003410: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003420: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00003430: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00003440: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003450: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00003460: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00003470: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00003480: 653d 2276 6572 7369 6f6e 2220 7479 7065  e=\"version\" type\n-00003490: 3d22 7873 643a 7374 7269 6e67 2220 6465  =\"xsd:string\" de\n-000034a0: 6661 756c 743d 2230 2e30 2e30 223e 0a20  fault=\"0.0.0\">. \n-000034b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000034c0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000034d0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000034e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000034f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00003500: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n-00003510: 7669 6365 2076 6572 7369 6f6e 2e20 5d5d  vice version. ]]\n-00003520: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00003530: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00003540: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00003550: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00003560: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00003570: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00003580: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00003590: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000035a0: 3d22 6772 6f75 7022 2074 7970 653d 2278  =\"group\" type=\"x\n-000035b0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000035c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000035d0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-000035e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000035f0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00003600: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00003610: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n-00003620: 6520 6772 6f75 702e 205d 5d3e 3c2f 7873  e group. ]]></xs\n-00003630: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003640: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003650: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00003660: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003670: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00003680: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00003690: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000036a0: 7269 6275 7465 206e 616d 653d 2264 6570  ribute name=\"dep\n-000036b0: 7265 6361 7465 6422 2074 7970 653d 2278  recated\" type=\"x\n-000036c0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000036d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000036e0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-000036f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003700: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00003710: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00003720: 4441 5441 5b20 7768 6574 6865 7220 7468  DATA[ whether th\n-00003730: 6520 7365 7276 6963 6520 6973 2064 6570  e service is dep\n-00003740: 7265 6361 7465 642e 205d 5d3e 3c2f 7873  recated. ]]></xs\n-00003750: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003760: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003770: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00003780: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003790: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000037a0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000037b0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000037c0: 7269 6275 7465 206e 616d 653d 2264 656c  ribute name=\"del\n-000037d0: 6179 2220 7479 7065 3d22 7873 643a 7374  ay\" type=\"xsd:st\n-000037e0: 7269 6e67 2220 6465 6661 756c 743d 2230  ring\" default=\"0\n-000037f0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00003800: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00003810: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003820: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003830: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00003840: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00003850: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003860: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00003870: 7276 6963 6520 6578 706f 7274 2064 656c  rvice export del\n-00003880: 6179 206d 696c 6c69 7365 636f 6e64 2e20  ay millisecond. \n-00003890: 5d5d 3e0a 2020 2020 2020 2020 2020 2020  ]]>.            \n-000038a0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000038b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000038c0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000038d0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-000038e0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000038f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00003900: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00003910: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00003920: 7269 6275 7465 206e 616d 653d 2265 7870  ribute name=\"exp\n-00003930: 6f72 7422 2074 7970 653d 2278 7364 3a73  ort\" type=\"xsd:s\n-00003940: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00003950: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00003960: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00003970: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003980: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00003990: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000039a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000039b0: 2020 2020 203c 215b 4344 4154 415b 2054       <![CDATA[ T\n-000039c0: 6865 2073 6572 7669 6365 2069 7320 6578  he service is ex\n-000039d0: 706f 7274 2e20 5d5d 3e0a 2020 2020 2020  port. ]]>.      \n-000039e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000039f0: 2020 3c2f 7873 643a 646f 6375 6d65 6e74    </xsd:document\n-00003a00: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003a10: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00003a20: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00003a30: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00003a40: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00003a50: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00003a60: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00003a70: 653d 2277 6569 6768 7422 2074 7970 653d  e=\"weight\" type=\n-00003a80: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n+00001fc0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00001fd0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00001fe0: 5b20 5468 6520 6361 6c6c 6261 636b 2069  [ The callback i\n+00001ff0: 6e73 7461 6e63 6520 6c69 6d69 7420 7065  nstance limit pe\n+00002000: 6572 2063 6f6e 6e65 6374 696f 6e2e 5d5d  er connection.]]\n+00002010: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00002020: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00002030: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00002040: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00002050: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00002060: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00002070: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002080: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00002090: 616d 653d 226f 6e63 6f6e 6e65 6374 2220  ame=\"onconnect\" \n+000020a0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+000020b0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+000020c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000020d0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000020e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000020f0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00002100: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00002110: 6865 2073 6572 7669 6365 2063 6c69 656e  he service clien\n+00002120: 7420 636f 6e6e 6563 7465 642e 205d 5d3e  t connected. ]]>\n+00002130: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00002140: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00002150: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00002160: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00002170: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00002180: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00002190: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000021a0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+000021b0: 6d65 3d22 6f6e 6469 7363 6f6e 6e65 6374  me=\"ondisconnect\n+000021c0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+000021d0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+000021e0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000021f0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00002200: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002210: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00002220: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00002230: 2054 6865 2073 6572 7669 6365 2063 6c69   The service cli\n+00002240: 656e 7420 6469 7363 6f6e 6e65 6374 6564  ent disconnected\n+00002250: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00002260: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00002270: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002280: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002290: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000022a0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000022b0: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+000022c0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000022d0: 7465 206e 616d 653d 2273 636f 7065 2220  te name=\"scope\" \n+000022e0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+000022f0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00002300: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00002310: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00002320: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002330: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00002340: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00002350: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002360: 2020 203c 215b 4344 4154 415b 2044 6566     <![CDATA[ Def\n+00002370: 696e 6573 2074 6865 2073 6572 7669 6365  ines the service\n+00002380: 2076 6973 6962 696c 6974 792c 2063 686f   visibility, cho\n+00002390: 6973 653a 5b6c 6f63 616c 2072 656d 6f74  ise:[local remot\n+000023a0: 655d 2e20 6465 6661 756c 7420 6973 2072  e]. default is r\n+000023b0: 656d 6f74 652c 2077 6869 6368 2063 616e  emote, which can\n+000023c0: 2062 6520 696e 766f 6b65 6420 6279 206e   be invoked by n\n+000023d0: 6574 776f 726b e380 8220 205d 5d3e 3c2f  etwork...  ]]></\n+000023e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000023f0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002400: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00002410: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00002420: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00002430: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00002440: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00002450: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00002460: 3d22 7461 6722 2074 7970 653d 2278 7364  =\"tag\" type=\"xsd\n+00002470: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00002480: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002490: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000024a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000024b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000024c0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+000024d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000024e0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+000024f0: 5441 5b20 4465 6669 6e65 7320 7468 6520  TA[ Defines the \n+00002500: 7365 7276 6963 6520 7461 675d 5d3e 3c2f  service tag]]></\n+00002510: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00002520: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002530: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00002540: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00002550: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00002560: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00002570: 2020 2020 2020 2020 203c 2f78 7364 3a65           </xsd:e\n+00002580: 7874 656e 7369 6f6e 3e0d 0a20 2020 2020  xtension>..     \n+00002590: 2020 203c 2f78 7364 3a63 6f6d 706c 6578     </xsd:complex\n+000025a0: 436f 6e74 656e 743e 0d0a 2020 2020 3c2f  Content>..    </\n+000025b0: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n+000025c0: 0d0a 0d0a 2020 2020 3c78 7364 3a63 6f6d  ....    <xsd:com\n+000025d0: 706c 6578 5479 7065 206e 616d 653d 2261  plexType name=\"a\n+000025e0: 6273 7472 6163 7452 6566 6572 656e 6365  bstractReference\n+000025f0: 5479 7065 223e 0d0a 2020 2020 2020 2020  Type\">..        \n+00002600: 3c78 7364 3a63 6f6d 706c 6578 436f 6e74  <xsd:complexCont\n+00002610: 656e 743e 0d0a 2020 2020 2020 2020 2020  ent>..          \n+00002620: 2020 3c78 7364 3a65 7874 656e 7369 6f6e    <xsd:extension\n+00002630: 2062 6173 653d 2261 6273 7472 6163 7449   base=\"abstractI\n+00002640: 6e74 6572 6661 6365 5479 7065 223e 0d0a  nterfaceType\">..\n+00002650: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002660: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00002670: 616d 653d 2276 6572 7369 6f6e 2220 7479  ame=\"version\" ty\n+00002680: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+00002690: 6465 6661 756c 743d 2230 2e30 2e30 223e  default=\"0.0.0\">\n+000026a0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000026b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+000026c0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000026d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000026e0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000026f0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00002700: 2073 6572 7669 6365 2076 6572 7369 6f6e   service version\n+00002710: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00002720: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00002730: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002740: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002750: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002760: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00002770: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00002780: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00002790: 7465 206e 616d 653d 2267 726f 7570 2220  te name=\"group\" \n+000027a0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+000027b0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+000027c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000027d0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000027e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000027f0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00002800: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00002810: 6865 2073 6572 7669 6365 2067 726f 7570  he service group\n+00002820: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00002830: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00002840: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002850: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00002860: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002870: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00002880: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+00002890: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+000028a0: 7465 206e 616d 653d 2263 6865 636b 2220  te name=\"check\" \n+000028b0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+000028c0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+000028d0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000028e0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000028f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002900: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00002910: 7469 6f6e 3e3c 215b 4344 4154 415b 2043  tion><![CDATA[ C\n+00002920: 6865 636b 2064 6570 656e 6465 6e63 7920  heck dependency \n+00002930: 7072 6f76 6964 6572 732e 205d 5d3e 3c2f  providers. ]]></\n+00002940: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00002950: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00002960: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00002970: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00002980: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00002990: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+000029a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000029b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000029c0: 3d22 696e 6974 2220 7479 7065 3d22 7873  =\"init\" type=\"xs\n+000029d0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+000029e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000029f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00002a00: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002a10: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00002a20: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00002a30: 4344 4154 415b 2045 6167 6572 2069 6e69  CDATA[ Eager ini\n+00002a40: 7420 7265 6665 7265 6e63 652e 205d 5d3e  t reference. ]]>\n+00002a50: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00002a60: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00002a70: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00002a80: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00002a90: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00002aa0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00002ab0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002ac0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00002ad0: 6d65 3d22 6765 6e65 7269 6322 2074 7970  me=\"generic\" typ\n+00002ae0: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00002af0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002b00: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00002b10: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00002b20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002b30: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00002b40: 6e3e 3c21 5b43 4441 5441 5b20 4765 6e65  n><![CDATA[ Gene\n+00002b50: 7269 6320 7365 7276 6963 652e 205d 5d3e  ric service. ]]>\n+00002b60: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00002b70: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00002b80: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00002b90: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00002ba0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00002bb0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00002bc0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002bd0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00002be0: 6d65 3d22 696e 6a76 6d22 2074 7970 653d  me=\"injvm\" type=\n+00002bf0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00002c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002c10: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00002c20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00002c30: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00002c40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00002c50: 3c21 5b43 4441 5441 5b44 6570 7265 6361  <![CDATA[Depreca\n+00002c60: 7465 642e 2052 6570 6c61 6365 2074 6f20  ted. Replace to \n+00002c70: 2073 6574 2073 636f 7065 3d6c 6f63 616c   set scope=local\n+00002c80: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00002c90: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00002ca0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00002cb0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00002cc0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002cd0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00002ce0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00002cf0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00002d00: 6520 6e61 6d65 3d22 7374 6963 6b79 2220  e name=\"sticky\" \n+00002d10: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00002d20: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00002d30: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00002d40: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00002d50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002d60: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00002d70: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00002d80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002d90: 2020 203c 215b 4344 4154 415b 2045 6e61     <![CDATA[ Ena\n+00002da0: 626c 652f 4469 7361 626c 6520 636c 7573  ble/Disable clus\n+00002db0: 7465 7220 7374 6963 6b79 2070 6f6c 6963  ter sticky polic\n+00002dc0: 792e 4465 6661 756c 7420 6661 6c73 6520  y.Default false \n+00002dd0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00002de0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002df0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00002e00: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00002e10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002e20: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00002e30: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00002e40: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00002e50: 206e 616d 653d 2272 6563 6f6e 6e65 6374   name=\"reconnect\n+00002e60: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00002e70: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00002e80: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00002e90: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00002ea0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002eb0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00002ec0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00002ed0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00002ee0: 2020 2020 203c 215b 4344 4154 415b 2072       <![CDATA[ r\n+00002ef0: 656d 6f74 696e 6720 7265 636f 6e6e 6563  emoting reconnec\n+00002f00: 7420 7469 6d65 722e 2066 616c 7365 2072  t timer. false r\n+00002f10: 6570 7265 7365 6e74 2063 6c6f 7365 2072  epresent close r\n+00002f20: 6563 6f6e 6e65 6374 2e20 696e 7465 6765  econnect. intege\n+00002f30: 7220 7265 7072 6573 656e 7420 696e 7465  r represent inte\n+00002f40: 7276 616c 286d 7329 202e 6465 6661 756c  rval(ms) .defaul\n+00002f50: 7420 7472 7565 2832 3030 306d 7329 2e5d  t true(2000ms).]\n+00002f60: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00002f70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00002f80: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00002f90: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00002fa0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00002fb0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00002fc0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00002fd0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00002fe0: 6e61 6d65 3d22 6c61 7a79 2220 7479 7065  name=\"lazy\" type\n+00002ff0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00003000: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003010: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00003020: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00003030: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00003040: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00003050: 3e3c 215b 4344 4154 415b 206c 617a 7920  ><![CDATA[ lazy \n+00003060: 6372 6561 7465 2063 6f6e 6e65 6374 696f  create connectio\n+00003070: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n+00003080: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00003090: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000030a0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000030b0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000030c0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000030d0: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+000030e0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+000030f0: 7574 6520 6e61 6d65 3d22 7072 6f76 6964  ute name=\"provid\n+00003100: 6564 2d62 7922 2074 7970 653d 2278 7364  ed-by\" type=\"xsd\n+00003110: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00003120: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003130: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00003140: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003150: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00003160: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00003170: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003180: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+00003190: 5441 5b20 6465 636c 6172 6573 2077 6869  TA[ declares whi\n+000031a0: 6368 2061 7070 206f 7220 7365 7276 6963  ch app or servic\n+000031b0: 6520 7468 6973 2069 6e74 6572 6661 6365  e this interface\n+000031c0: 2062 656c 6f6e 6773 2074 6f2e 205d 5d3e   belongs to. ]]>\n+000031d0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+000031e0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000031f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00003200: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00003210: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00003220: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00003230: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003240: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00003250: 6d65 3d22 726f 7574 6572 2220 7479 7065  me=\"router\" type\n+00003260: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00003270: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003280: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00003290: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000032a0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000032b0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000032c0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000032d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000032e0: 215b 4344 4154 415b 2054 6865 2072 6f75  ![CDATA[ The rou\n+000032f0: 7465 7273 205d 5d3e 3c2f 7873 643a 646f  ters ]]></xsd:do\n+00003300: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00003310: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003320: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00003330: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003340: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00003350: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+00003360: 2020 203c 2f78 7364 3a65 7874 656e 7369     </xsd:extensi\n+00003370: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00003380: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n+00003390: 743e 0d0a 2020 2020 3c2f 7873 643a 636f  t>..    </xsd:co\n+000033a0: 6d70 6c65 7854 7970 653e 0d0a 0d0a 2020  mplexType>....  \n+000033b0: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n+000033c0: 7065 206e 616d 653d 2261 6273 7472 6163  pe name=\"abstrac\n+000033d0: 7453 6572 7669 6365 5479 7065 223e 0d0a  tServiceType\">..\n+000033e0: 2020 2020 2020 2020 3c78 7364 3a63 6f6d          <xsd:com\n+000033f0: 706c 6578 436f 6e74 656e 743e 0d0a 2020  plexContent>..  \n+00003400: 2020 2020 2020 2020 2020 3c78 7364 3a65            <xsd:e\n+00003410: 7874 656e 7369 6f6e 2062 6173 653d 2261  xtension base=\"a\n+00003420: 6273 7472 6163 7449 6e74 6572 6661 6365  bstractInterface\n+00003430: 5479 7065 223e 0d0a 2020 2020 2020 2020  Type\">..        \n+00003440: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00003450: 7269 6275 7465 206e 616d 653d 2272 6567  ribute name=\"reg\n+00003460: 6973 7465 7222 2074 7970 653d 2278 7364  ister\" type=\"xsd\n+00003470: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00003480: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003490: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000034a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000034b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000034c0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+000034d0: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+000034e0: 6520 6361 6e20 6265 2072 6567 6973 7465  e can be registe\n+000034f0: 7220 746f 2072 6567 6973 7472 792e 205d  r to registry. ]\n+00003500: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00003510: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00003520: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00003530: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00003540: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003550: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00003560: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003570: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00003580: 6e61 6d65 3d22 7665 7273 696f 6e22 2074  name=\"version\" t\n+00003590: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000035a0: 2064 6566 6175 6c74 3d22 302e 302e 3022   default=\"0.0.0\"\n+000035b0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000035c0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+000035d0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000035e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000035f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00003600: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00003610: 6520 7365 7276 6963 6520 7665 7273 696f  e service versio\n+00003620: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n+00003630: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00003640: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003650: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00003660: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003670: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00003680: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00003690: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+000036a0: 7574 6520 6e61 6d65 3d22 6772 6f75 7022  ute name=\"group\"\n+000036b0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000036c0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+000036d0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+000036e0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000036f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003700: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00003710: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00003720: 5468 6520 7365 7276 6963 6520 6772 6f75  The service grou\n+00003730: 702e 205d 5d3e 3c2f 7873 643a 646f 6375  p. ]]></xsd:docu\n+00003740: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00003750: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003760: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00003770: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003780: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00003790: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+000037a0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+000037b0: 7574 6520 6e61 6d65 3d22 6465 7072 6563  ute name=\"deprec\n+000037c0: 6174 6564 2220 7479 7065 3d22 7873 643a  ated\" type=\"xsd:\n+000037d0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+000037e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000037f0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00003800: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003810: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00003820: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00003830: 4154 415b 2077 6865 7468 6572 2074 6865  ATA[ whether the\n+00003840: 2073 6572 7669 6365 2069 7320 6465 7072   service is depr\n+00003850: 6563 6174 6564 2e20 5d5d 3e3c 2f78 7364  ecated. ]]></xsd\n+00003860: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00003870: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003880: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00003890: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000038a0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+000038b0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+000038c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000038d0: 7474 7269 6275 7465 206e 616d 653d 2264  ttribute name=\"d\n+000038e0: 656c 6179 2220 7479 7065 3d22 7873 643a  elay\" type=\"xsd:\n+000038f0: 7374 7269 6e67 2220 6465 6661 756c 743d  string\" default=\n+00003900: 2230 223e 0d0a 2020 2020 2020 2020 2020  \"0\">..          \n+00003910: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00003920: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00003930: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003940: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00003950: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00003960: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003970: 2020 2020 203c 215b 4344 4154 415b 2054       <![CDATA[ T\n+00003980: 6865 2073 6572 7669 6365 2065 7870 6f72  he service expor\n+00003990: 7420 6465 6c61 7920 6d69 6c6c 6973 6563  t delay millisec\n+000039a0: 6f6e 642e 205d 5d3e 0d0a 2020 2020 2020  ond. ]]>..      \n+000039b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000039c0: 2020 3c2f 7873 643a 646f 6375 6d65 6e74    </xsd:document\n+000039d0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000039e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000039f0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00003a00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003a10: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00003a20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003a30: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00003a40: 6e61 6d65 3d22 6578 706f 7274 2220 7479  name=\"export\" ty\n+00003a50: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00003a60: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003a70: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00003a80: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n 00003a90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003aa0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-00003ab0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00003ac0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00003ad0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00003ae0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003af0: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n-00003b00: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n-00003b10: 2077 6569 6768 742e 205d 5d3e 0a20 2020   weight. ]]>.   \n-00003b20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003b30: 2020 2020 203c 2f78 7364 3a64 6f63 756d       </xsd:docum\n-00003b40: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00003b50: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00003b60: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00003b70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003b80: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00003b90: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003ba0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00003bb0: 6e61 6d65 3d22 646f 6375 6d65 6e74 2220  name=\"document\" \n-00003bc0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00003bd0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-00003be0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00003bf0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003c10: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00003c20: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00003c30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003c40: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00003c50: 7276 6963 6520 646f 6375 6d65 6e74 2e20  rvice document. \n-00003c60: 5d5d 3e0a 2020 2020 2020 2020 2020 2020  ]]>.            \n-00003c70: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00003c80: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003c90: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003ca0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00003cb0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003cc0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00003cd0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00003ce0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00003cf0: 7269 6275 7465 206e 616d 653d 2264 796e  ribute name=\"dyn\n-00003d00: 616d 6963 2220 7479 7065 3d22 7873 643a  amic\" type=\"xsd:\n-00003d10: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00003d20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00003d30: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00003d40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003d50: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00003d60: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00003d70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003d80: 2020 2020 2020 3c21 5b43 4441 5441 5b20        <![CDATA[ \n-00003d90: 7468 6520 7365 7276 6963 6520 7265 6769  the service regi\n-00003da0: 7374 6572 6564 2074 6f20 7468 6520 7265  stered to the re\n-00003db0: 6769 7374 7279 2069 7320 6479 6e61 6d69  gistry is dynami\n-00003dc0: 6328 7472 7565 2920 6f72 2073 7461 7469  c(true) or stati\n-00003dd0: 6328 6661 6c73 6529 2e20 5d5d 3e3c 2f78  c(false). ]]></x\n-00003de0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00003df0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00003e00: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00003e10: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00003e20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00003e30: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00003e40: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-00003e50: 7472 6962 7574 6520 6e61 6d65 3d22 746f  tribute name=\"to\n-00003e60: 6b65 6e22 2074 7970 653d 2278 7364 3a73  ken\" type=\"xsd:s\n-00003e70: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00003e80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00003e90: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n+00003aa0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00003ab0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003ac0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003ad0: 203c 215b 4344 4154 415b 2054 6865 2073   <![CDATA[ The s\n+00003ae0: 6572 7669 6365 2069 7320 6578 706f 7274  ervice is export\n+00003af0: 2e20 5d5d 3e0d 0a20 2020 2020 2020 2020  . ]]>..         \n+00003b00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003b10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00003b20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003b30: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00003b40: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00003b50: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00003b60: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00003b70: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00003b80: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00003b90: 653d 2277 6569 6768 7422 2074 7970 653d  e=\"weight\" type=\n+00003ba0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00003bb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003bc0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00003bd0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00003be0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00003bf0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00003c00: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00003c10: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n+00003c20: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00003c30: 6963 6520 7765 6967 6874 2e20 5d5d 3e0d  ice weight. ]]>.\n+00003c40: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003c50: 2020 2020 2020 2020 203c 2f78 7364 3a64           </xsd:d\n+00003c60: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00003c70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003c80: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00003c90: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00003ca0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00003cb0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00003cc0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00003cd0: 7269 6275 7465 206e 616d 653d 2264 6f63  ribute name=\"doc\n+00003ce0: 756d 656e 7422 2074 7970 653d 2278 7364  ument\" type=\"xsd\n+00003cf0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00003d00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00003d10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00003d20: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00003d30: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00003d40: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00003d50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003d60: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+00003d70: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n+00003d80: 646f 6375 6d65 6e74 2e20 5d5d 3e0d 0a20  document. ]]>.. \n+00003d90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003da0: 2020 2020 2020 203c 2f78 7364 3a64 6f63         </xsd:doc\n+00003db0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00003dc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003dd0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00003de0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00003df0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00003e00: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00003e10: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00003e20: 6275 7465 206e 616d 653d 2264 796e 616d  bute name=\"dynam\n+00003e30: 6963 2220 7479 7065 3d22 7873 643a 7374  ic\" type=\"xsd:st\n+00003e40: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00003e50: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00003e60: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00003e70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00003e80: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00003e90: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n 00003ea0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003eb0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00003ec0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00003ed0: 5b20 5468 6520 7365 7276 6963 6520 7573  [ The service us\n-00003ee0: 6520 746f 6b65 6e2e 205d 5d3e 3c2f 7873  e token. ]]></xs\n-00003ef0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00003f00: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00003f10: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00003f20: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00003f30: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00003f40: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00003f50: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00003f60: 7269 6275 7465 206e 616d 653d 2261 6363  ribute name=\"acc\n-00003f70: 6573 736c 6f67 2220 7479 7065 3d22 7873  esslog\" type=\"xs\n-00003f80: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00003f90: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00003fa0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n+00003eb0: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n+00003ec0: 2074 6865 2073 6572 7669 6365 2072 6567   the service reg\n+00003ed0: 6973 7465 7265 6420 746f 2074 6865 2072  istered to the r\n+00003ee0: 6567 6973 7472 7920 6973 2064 796e 616d  egistry is dynam\n+00003ef0: 6963 2874 7275 6529 206f 7220 7374 6174  ic(true) or stat\n+00003f00: 6963 2866 616c 7365 292e 205d 5d3e 3c2f  ic(false). ]]></\n+00003f10: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00003f20: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00003f30: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00003f40: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00003f50: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00003f60: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00003f70: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00003f80: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00003f90: 3d22 746f 6b65 6e22 2074 7970 653d 2278  =\"token\" type=\"x\n+00003fa0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n 00003fb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00003fc0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00003fd0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00003fe0: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n-00003ff0: 2075 7365 2061 6363 6573 736c 6f67 2e20   use accesslog. \n-00004000: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00004010: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004020: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00004030: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004040: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00004050: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n+00003fc0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00003fd0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00003fe0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00003ff0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00004000: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00004010: 6963 6520 7573 6520 746f 6b65 6e2e 205d  ice use token. ]\n+00004020: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00004030: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00004040: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00004050: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n 00004060: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00004070: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00004080: 6d65 3d22 6578 6563 7574 6573 2220 7479  me=\"executes\" ty\n-00004090: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-000040a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000040b0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000040c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000040d0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000040e0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000040f0: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n-00004100: 6572 7669 6365 2061 6c6c 6f77 2065 7865  ervice allow exe\n-00004110: 6375 7465 2072 6571 7565 7374 732e 205d  cute requests. ]\n-00004120: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00004130: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00004140: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00004150: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00004160: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00004170: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00004180: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00004190: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-000041a0: 653d 2270 726f 746f 636f 6c22 2074 7970  e=\"protocol\" typ\n-000041b0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-000041c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000041d0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000041e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000041f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00004200: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00004210: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00004220: 7276 6963 6520 7072 6f74 6f63 6f6c 2e20  rvice protocol. \n-00004230: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00004240: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004250: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00004260: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004270: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00004280: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00004290: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000042a0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-000042b0: 6d65 3d22 7761 726d 7570 2220 7479 7065  me=\"warmup\" type\n-000042c0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-000042d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000042e0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000042f0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00004300: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00004310: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00004320: 215b 4344 4154 415b 2054 6865 2077 6172  ![CDATA[ The war\n-00004330: 6d75 7020 7469 6d65 2069 6e20 4d69 6c6c  mup time in Mill\n-00004340: 6973 6563 6f6e 6473 2e20 5d5d 3e3c 2f78  iseconds. ]]></x\n-00004350: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00004360: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00004370: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00004380: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004390: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-000043a0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-000043b0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-000043c0: 7472 6962 7574 6520 6e61 6d65 3d22 7365  tribute name=\"se\n-000043d0: 7269 616c 697a 6174 696f 6e22 2074 7970  rialization\" typ\n-000043e0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-000043f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004400: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00004410: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004420: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00004430: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00004440: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00004450: 7269 616c 697a 6174 696f 6e20 7072 6f74  rialization prot\n-00004460: 6f63 6f6c 206f 6620 7365 7276 6963 652e  ocol of service.\n-00004470: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00004480: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00004490: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-000044a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000044b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000044c0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-000044d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000044e0: 3c78 7364 3a61 6e79 4174 7472 6962 7574  <xsd:anyAttribut\n-000044f0: 6520 6e61 6d65 7370 6163 653d 2223 236f  e namespace=\"##o\n-00004500: 7468 6572 2220 7072 6f63 6573 7343 6f6e  ther\" processCon\n-00004510: 7465 6e74 733d 226c 6178 222f 3e0a 2020  tents=\"lax\"/>.  \n-00004520: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00004530: 6578 7465 6e73 696f 6e3e 0a20 2020 2020  extension>.     \n-00004540: 2020 203c 2f78 7364 3a63 6f6d 706c 6578     </xsd:complex\n-00004550: 436f 6e74 656e 743e 0a20 2020 203c 2f78  Content>.    </x\n-00004560: 7364 3a63 6f6d 706c 6578 5479 7065 3e0a  sd:complexType>.\n-00004570: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n-00004580: 7854 7970 6520 6e61 6d65 3d22 6170 706c  xType name=\"appl\n-00004590: 6963 6174 696f 6e54 7970 6522 3e0a 2020  icationType\">.  \n-000045a0: 2020 2020 2020 3c78 7364 3a73 6571 7565        <xsd:seque\n-000045b0: 6e63 6520 6d69 6e4f 6363 7572 733d 2230  nce minOccurs=\"0\n-000045c0: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n-000045d0: 6f75 6e64 6564 223e 0a20 2020 2020 2020  ounded\">.       \n-000045e0: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n-000045f0: 7420 7265 663d 2270 6172 616d 6574 6572  t ref=\"parameter\n-00004600: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n-00004610: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n-00004620: 6e64 6564 222f 3e0a 2020 2020 2020 2020  nded\"/>.        \n-00004630: 3c2f 7873 643a 7365 7175 656e 6365 3e0a  </xsd:sequence>.\n-00004640: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00004650: 7269 6275 7465 206e 616d 653d 2269 6422  ribute name=\"id\"\n-00004660: 2074 7970 653d 2278 7364 3a49 4422 3e0a   type=\"xsd:ID\">.\n-00004670: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00004680: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00004690: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000046a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000046b0: 3c21 5b43 4441 5441 5b20 5468 6520 756e  <![CDATA[ The un\n-000046c0: 6971 7565 2069 6465 6e74 6966 6965 7220  ique identifier \n-000046d0: 666f 7220 6120 6265 616e 2e20 5d5d 3e3c  for a bean. ]]><\n-000046e0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000046f0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00004700: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00004710: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00004720: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00004730: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00004740: 6520 6e61 6d65 3d22 6e61 6d65 2220 7479  e name=\"name\" ty\n-00004750: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00004760: 7573 653d 2272 6571 7569 7265 6422 3e0a  use=\"required\">.\n-00004770: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00004780: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00004790: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000047a0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000047b0: 3c21 5b43 4441 5441 5b20 5468 6520 6170  <![CDATA[ The ap\n-000047c0: 706c 6963 6174 696f 6e20 6e61 6d65 2e20  plication name. \n-000047d0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-000047e0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000047f0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00004800: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00004810: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00004820: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00004830: 6962 7574 6520 6e61 6d65 3d22 7665 7273  ibute name=\"vers\n-00004840: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n-00004850: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00004860: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00004870: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004880: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00004890: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000048a0: 5b20 5468 6520 6170 706c 6963 6174 696f  [ The applicatio\n-000048b0: 6e20 7665 7273 696f 6e2e 205d 5d3e 3c2f  n version. ]]></\n-000048c0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000048d0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-000048e0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-000048f0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00004900: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00004910: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00004920: 206e 616d 653d 226f 776e 6572 2220 7479   name=\"owner\" ty\n-00004930: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00004940: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00004950: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004960: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00004970: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00004980: 3e3c 215b 4344 4154 415b 2054 6865 2061  ><![CDATA[ The a\n-00004990: 7070 6c69 6361 7469 6f6e 206f 776e 6572  pplication owner\n-000049a0: 206e 616d 6520 2865 6d61 696c 2070 7265   name (email pre\n-000049b0: 6669 7829 2e20 5d5d 3e3c 2f78 7364 3a64  fix). ]]></xsd:d\n-000049c0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000049d0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000049e0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000049f0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00004a00: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00004a10: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00004a20: 3d22 6f72 6761 6e69 7a61 7469 6f6e 2220  =\"organization\" \n-00004a30: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00004a40: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00004a50: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00004a60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004a70: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00004a80: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00004a90: 206f 7267 616e 697a 6174 696f 6e20 6e61   organization na\n-00004aa0: 6d65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  me. ]]></xsd:doc\n-00004ab0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00004ac0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00004ad0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00004ae0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00004af0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00004b00: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00004b10: 6172 6368 6974 6563 7475 7265 2220 7479  architecture\" ty\n-00004b20: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00004b30: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00004b40: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00004b50: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00004b60: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00004b70: 3e3c 215b 4344 4154 415b 2054 6865 2061  ><![CDATA[ The a\n-00004b80: 7263 6869 7465 6374 7572 652e 205d 5d3e  rchitecture. ]]>\n-00004b90: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00004ba0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00004bb0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00004bc0: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00004bd0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00004be0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00004bf0: 7465 206e 616d 653d 2265 6e76 6972 6f6e  te name=\"environ\n-00004c00: 6d65 6e74 2220 7479 7065 3d22 7873 643a  ment\" type=\"xsd:\n-00004c10: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00004c20: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00004c30: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00004c40: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00004c50: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00004c60: 415b 2054 6865 2061 7070 6c69 6361 7469  A[ The applicati\n-00004c70: 6f6e 2065 6e76 6972 6f6e 6d65 6e74 2c20  on environment, \n-00004c80: 6567 3a20 6465 762f 7465 7374 2f72 756e  eg: dev/test/run\n-00004c90: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00004ca0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00004cb0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00004cc0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00004cd0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00004ce0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00004cf0: 7269 6275 7465 206e 616d 653d 2263 6f6d  ribute name=\"com\n-00004d00: 7069 6c65 7222 2074 7970 653d 2278 7364  piler\" type=\"xsd\n-00004d10: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00004d20: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00004d30: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00004d40: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00004d50: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00004d60: 5441 5b20 5468 6520 6a61 7661 2063 6f64  TA[ The java cod\n-00004d70: 6520 636f 6d70 696c 6572 2e20 5d5d 3e3c  e compiler. ]]><\n-00004d80: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00004d90: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00004da0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00004db0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00004dc0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00004dd0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00004de0: 6520 6e61 6d65 3d22 6c6f 6767 6572 2220  e name=\"logger\" \n-00004df0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00004e00: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00004e10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00004e20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00004e30: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00004e40: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00004e50: 2061 7070 6c69 6361 7469 6f6e 206c 6f67   application log\n-00004e60: 6765 722e 205d 5d3e 3c2f 7873 643a 646f  ger. ]]></xsd:do\n-00004e70: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00004e80: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00004e90: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00004ea0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00004eb0: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00004ec0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00004ed0: 2272 6567 6973 7472 7922 2074 7970 653d  \"registry\" type=\n-00004ee0: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00004ef0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00004f00: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00004f10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00004f20: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00004f30: 5b43 4441 5441 5b20 5468 6520 6170 706c  [CDATA[ The appl\n-00004f40: 6963 6174 696f 6e20 7265 6769 7374 7279  ication registry\n-00004f50: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00004f60: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00004f70: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00004f80: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00004f90: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00004fa0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00004fb0: 7472 6962 7574 6520 6e61 6d65 3d22 6d6f  tribute name=\"mo\n-00004fc0: 6e69 746f 7222 2074 7970 653d 2278 7364  nitor\" type=\"xsd\n-00004fd0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00004fe0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00004ff0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00005000: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00005010: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00005020: 5441 5b20 5468 6520 6170 706c 6963 6174  TA[ The applicat\n-00005030: 696f 6e20 6d6f 6e69 746f 722e 205d 5d3e  ion monitor. ]]>\n-00005040: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00005050: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00005060: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00005070: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00005080: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00005090: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-000050a0: 7465 206e 616d 653d 2264 6566 6175 6c74  te name=\"default\n-000050b0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-000050c0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-000050d0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000050e0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000050f0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00005100: 7469 6f6e 3e3c 215b 4344 4154 415b 2049  tion><![CDATA[ I\n-00005110: 7320 6465 6661 756c 742e 205d 5d3e 3c2f  s default. ]]></\n-00005120: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005130: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00005140: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00005150: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00005160: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00005170: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00005180: 206e 616d 653d 226d 6574 6164 6174 612d   name=\"metadata-\n-00005190: 7479 7065 2220 7479 7065 3d22 7873 643a  type\" type=\"xsd:\n-000051a0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000051b0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000051c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000051d0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000051e0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000051f0: 415b 2054 6865 206d 6574 6164 7461 2074  A[ The metadta t\n-00005200: 7970 653a 206c 6f63 616c 206f 7220 7265  ype: local or re\n-00005210: 6d6f 7465 2e20 5d5d 3e3c 2f78 7364 3a64  mote. ]]></xsd:d\n-00005220: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00005230: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00005240: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00005250: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00005260: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00005270: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00005280: 3d22 7265 6769 7374 6572 2d63 6f6e 7375  =\"register-consu\n-00005290: 6d65 7222 2074 7970 653d 2278 7364 3a62  mer\" type=\"xsd:b\n-000052a0: 6f6f 6c65 616e 223e 0a20 2020 2020 2020  oolean\">.       \n-000052b0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000052c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000052d0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000052e0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-000052f0: 415b 2052 6567 6973 7465 7220 636f 6e73  A[ Register cons\n-00005300: 756d 6572 2069 6e73 7461 6e63 6520 6f72  umer instance or\n-00005310: 206e 6f74 2c20 6465 6661 756c 7420 6661   not, default fa\n-00005320: 6c73 652e 205d 5d3e 3c2f 7873 643a 646f  lse. ]]></xsd:do\n-00005330: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00005340: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00005350: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00005360: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00005370: 7465 3e0a 2020 2020 3c2f 7873 643a 636f  te>.    </xsd:co\n-00005380: 6d70 6c65 7854 7970 653e 0a0a 2020 2020  mplexType>..    \n-00005390: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n-000053a0: 206e 616d 653d 226d 6f64 756c 6554 7970   name=\"moduleTyp\n-000053b0: 6522 3e0a 2020 2020 2020 2020 3c78 7364  e\">.        <xsd\n-000053c0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-000053d0: 2269 6422 2074 7970 653d 2278 7364 3a49  \"id\" type=\"xsd:I\n-000053e0: 4422 3e0a 2020 2020 2020 2020 2020 2020  D\">.            \n-000053f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00005400: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00005410: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00005420: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00005430: 6520 756e 6971 7565 2069 6465 6e74 6966  e unique identif\n-00005440: 6965 7220 666f 7220 6120 6265 616e 2e20  ier for a bean. \n-00005450: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00005460: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00005470: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00005480: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00005490: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000054a0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000054b0: 6962 7574 6520 6e61 6d65 3d22 6e61 6d65  ibute name=\"name\n-000054c0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-000054d0: 6e67 2220 7573 653d 2272 6571 7569 7265  ng\" use=\"require\n-000054e0: 6422 3e0a 2020 2020 2020 2020 2020 2020  d\">.            \n-000054f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00005500: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00005510: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00005520: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00005530: 6520 6d6f 6475 6c65 206e 616d 652e 205d  e module name. ]\n-00005540: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00005550: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00005560: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00005570: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00005580: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00005590: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-000055a0: 6275 7465 206e 616d 653d 2276 6572 7369  bute name=\"versi\n-000055b0: 6f6e 2220 7479 7065 3d22 7873 643a 7374  on\" type=\"xsd:st\n-000055c0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-000055d0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000055e0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000055f0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00005600: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00005610: 2054 6865 206d 6f64 756c 6520 7665 7273   The module vers\n-00005620: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n-00005630: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00005640: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00005650: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00005660: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00005670: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00005680: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00005690: 226f 776e 6572 2220 7479 7065 3d22 7873  \"owner\" type=\"xs\n-000056a0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-000056b0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-000056c0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000056d0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-000056e0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-000056f0: 4154 415b 2054 6865 206d 6f64 756c 6520  ATA[ The module \n-00005700: 6f77 6e65 7220 6e61 6d65 2028 656d 6169  owner name (emai\n-00005710: 6c20 7072 6566 6978 292e 205d 5d3e 3c2f  l prefix). ]]></\n-00005720: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005730: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00005740: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00005750: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00005760: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00005770: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00005780: 206e 616d 653d 226f 7267 616e 697a 6174   name=\"organizat\n-00005790: 696f 6e22 2074 7970 653d 2278 7364 3a73  ion\" type=\"xsd:s\n-000057a0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000057b0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000057c0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000057d0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-000057e0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-000057f0: 5b20 5468 6520 6d6f 6475 6c65 206f 7267  [ The module org\n-00005800: 616e 697a 6174 696f 6e2e 205d 5d3e 3c2f  anization. ]]></\n-00005810: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00005820: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00005830: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00005840: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00005850: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00005860: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00005870: 206e 616d 653d 2272 6567 6973 7472 7922   name=\"registry\"\n-00005880: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00005890: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-000058a0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-000058b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000058c0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000058d0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-000058e0: 6520 6d6f 6475 6c65 2072 6567 6973 7472  e module registr\n-000058f0: 792e 205d 5d3e 3c2f 7873 643a 646f 6375  y. ]]></xsd:docu\n-00005900: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00005910: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00005920: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00005930: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00005940: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00005950: 7474 7269 6275 7465 206e 616d 653d 226d  ttribute name=\"m\n-00005960: 6f6e 6974 6f72 2220 7479 7065 3d22 7873  onitor\" type=\"xs\n-00005970: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00005980: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00005990: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000059a0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-000059b0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-000059c0: 4154 415b 2054 6865 206d 6f64 756c 6520  ATA[ The module \n-000059d0: 6d6f 6e69 746f 722e 205d 5d3e 3c2f 7873  monitor. ]]></xs\n-000059e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000059f0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00005a00: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00005a10: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00005a20: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00005a30: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00005a40: 616d 653d 2264 6566 6175 6c74 2220 7479  ame=\"default\" ty\n-00005a50: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00005a60: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00005a70: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00005a80: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00005a90: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00005aa0: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n-00005ab0: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n-00005ac0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00005ad0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00005ae0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00005af0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00005b00: 6275 7465 3e0a 2020 2020 3c2f 7873 643a  bute>.    </xsd:\n-00005b10: 636f 6d70 6c65 7854 7970 653e 0a0a 2020  complexType>..  \n-00005b20: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n-00005b30: 7065 206e 616d 653d 2272 6567 6973 7472  pe name=\"registr\n-00005b40: 7954 7970 6522 3e0a 2020 2020 2020 2020  yType\">.        \n-00005b50: 3c78 7364 3a73 6571 7565 6e63 6520 6d69  <xsd:sequence mi\n-00005b60: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n-00005b70: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n-00005b80: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00005b90: 7873 643a 656c 656d 656e 7420 7265 663d  xsd:element ref=\n-00005ba0: 2270 6172 616d 6574 6572 2220 6d69 6e4f  \"parameter\" minO\n-00005bb0: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n-00005bc0: 7572 733d 2275 6e62 6f75 6e64 6564 222f  urs=\"unbounded\"/\n-00005bd0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00005be0: 7365 7175 656e 6365 3e0a 2020 2020 2020  sequence>.      \n-00005bf0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00005c00: 206e 616d 653d 2269 6422 2074 7970 653d   name=\"id\" type=\n-00005c10: 2278 7364 3a49 4422 3e0a 2020 2020 2020  \"xsd:ID\">.      \n-00005c20: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00005c30: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00005c40: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00005c50: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00005c60: 5441 5b20 5468 6520 756e 6971 7565 2069  TA[ The unique i\n-00005c70: 6465 6e74 6966 6965 7220 666f 7220 6120  dentifier for a \n-00005c80: 6265 616e 2e20 5d5d 3e3c 2f78 7364 3a64  bean. ]]></xsd:d\n-00005c90: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00005ca0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00005cb0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00005cc0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00005cd0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00005ce0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00005cf0: 3d22 6164 6472 6573 7322 2074 7970 653d  =\"address\" type=\n-00005d00: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-00005d10: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00005d20: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00005d30: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00005d40: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00005d50: 5b43 4441 5441 5b20 5468 6520 7265 6769  [CDATA[ The regi\n-00005d60: 7374 7279 2061 6464 7265 7373 2e20 5d5d  stry address. ]]\n-00005d70: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00005d80: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00005d90: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00005da0: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00005db0: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00005dc0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00005dd0: 7574 6520 6e61 6d65 3d22 706f 7274 2220  ute name=\"port\" \n-00005de0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00005df0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00005e00: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00005e10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00005e20: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00005e30: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00005e40: 2072 6567 6973 7472 7920 6465 6661 756c   registry defaul\n-00005e50: 7420 706f 7274 2e20 5d5d 3e3c 2f78 7364  t port. ]]></xsd\n-00005e60: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00005e70: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00005e80: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00005e90: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00005ea0: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00005eb0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00005ec0: 6d65 3d22 7072 6f74 6f63 6f6c 2220 7479  me=\"protocol\" ty\n-00005ed0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00005ee0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00005ef0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00005f00: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00005f10: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00005f20: 3e3c 215b 4344 4154 415b 2054 6865 2072  ><![CDATA[ The r\n-00005f30: 6567 6973 7472 7920 6c6f 6f6b 7570 2070  egistry lookup p\n-00005f40: 726f 746f 636f 6c2e 205d 5d3e 3c2f 7873  rotocol. ]]></xs\n-00005f50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00005f60: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00005f70: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n+00004070: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00004080: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00004090: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000040a0: 6e61 6d65 3d22 6163 6365 7373 6c6f 6722  name=\"accesslog\"\n+000040b0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000040c0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+000040d0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+000040e0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000040f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004100: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00004110: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00004120: 5468 6520 7365 7276 6963 6520 7573 6520  The service use \n+00004130: 6163 6365 7373 6c6f 672e 205d 5d3e 3c2f  accesslog. ]]></\n+00004140: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00004150: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00004160: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00004170: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004180: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00004190: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+000041a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+000041b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000041c0: 3d22 6578 6563 7574 6573 2220 7479 7065  =\"executes\" type\n+000041d0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+000041e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000041f0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00004200: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00004210: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00004220: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00004230: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n+00004240: 6572 7669 6365 2061 6c6c 6f77 2065 7865  ervice allow exe\n+00004250: 6375 7465 2072 6571 7565 7374 732e 205d  cute requests. ]\n+00004260: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00004270: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00004280: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00004290: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000042a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000042b0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+000042c0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000042d0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000042e0: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n+000042f0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00004300: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00004310: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00004320: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00004330: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004340: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00004350: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00004360: 6865 2073 6572 7669 6365 2070 726f 746f  he service proto\n+00004370: 636f 6c2e 205d 5d3e 3c2f 7873 643a 646f  col. ]]></xsd:do\n+00004380: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00004390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000043a0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000043b0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000043c0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+000043d0: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+000043e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000043f0: 6962 7574 6520 6e61 6d65 3d22 7761 726d  ibute name=\"warm\n+00004400: 7570 2220 7479 7065 3d22 7873 643a 7374  up\" type=\"xsd:st\n+00004410: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00004420: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00004430: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00004440: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004450: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00004460: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00004470: 415b 2054 6865 2077 6172 6d75 7020 7469  A[ The warmup ti\n+00004480: 6d65 2069 6e20 4d69 6c6c 6973 6563 6f6e  me in Millisecon\n+00004490: 6473 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ds. ]]></xsd:doc\n+000044a0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000044b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000044c0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000044d0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000044e0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+000044f0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00004500: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00004510: 6275 7465 206e 616d 653d 2273 6572 6961  bute name=\"seria\n+00004520: 6c69 7a61 7469 6f6e 2220 7479 7065 3d22  lization\" type=\"\n+00004530: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00004540: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004550: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00004560: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00004570: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00004580: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00004590: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n+000045a0: 6961 6c69 7a61 7469 6f6e 2070 726f 746f  ialization proto\n+000045b0: 636f 6c20 6f66 2073 6572 7669 6365 2e20  col of service. \n+000045c0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+000045d0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000045e0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+000045f0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00004600: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00004610: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00004620: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00004630: 2020 3c78 7364 3a61 6e79 4174 7472 6962    <xsd:anyAttrib\n+00004640: 7574 6520 6e61 6d65 7370 6163 653d 2223  ute namespace=\"#\n+00004650: 236f 7468 6572 2220 7072 6f63 6573 7343  #other\" processC\n+00004660: 6f6e 7465 6e74 733d 226c 6178 222f 3e0d  ontents=\"lax\"/>.\n+00004670: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00004680: 7364 3a65 7874 656e 7369 6f6e 3e0d 0a20  sd:extension>.. \n+00004690: 2020 2020 2020 203c 2f78 7364 3a63 6f6d         </xsd:com\n+000046a0: 706c 6578 436f 6e74 656e 743e 0d0a 2020  plexContent>..  \n+000046b0: 2020 3c2f 7873 643a 636f 6d70 6c65 7854    </xsd:complexT\n+000046c0: 7970 653e 0d0a 0d0a 2020 2020 3c78 7364  ype>....    <xsd\n+000046d0: 3a63 6f6d 706c 6578 5479 7065 206e 616d  :complexType nam\n+000046e0: 653d 2261 7070 6c69 6361 7469 6f6e 5479  e=\"applicationTy\n+000046f0: 7065 223e 0d0a 2020 2020 2020 2020 3c78  pe\">..        <x\n+00004700: 7364 3a73 6571 7565 6e63 6520 6d69 6e4f  sd:sequence minO\n+00004710: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n+00004720: 7572 733d 2275 6e62 6f75 6e64 6564 223e  urs=\"unbounded\">\n+00004730: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00004740: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n+00004750: 7061 7261 6d65 7465 7222 206d 696e 4f63  parameter\" minOc\n+00004760: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+00004770: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n+00004780: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00004790: 7365 7175 656e 6365 3e0d 0a20 2020 2020  sequence>..     \n+000047a0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000047b0: 6520 6e61 6d65 3d22 6964 2220 7479 7065  e name=\"id\" type\n+000047c0: 3d22 7873 643a 4944 223e 0d0a 2020 2020  =\"xsd:ID\">..    \n+000047d0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000047e0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000047f0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00004800: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00004810: 4344 4154 415b 2054 6865 2075 6e69 7175  CDATA[ The uniqu\n+00004820: 6520 6964 656e 7469 6669 6572 2066 6f72  e identifier for\n+00004830: 2061 2062 6561 6e2e 205d 5d3e 3c2f 7873   a bean. ]]></xs\n+00004840: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00004850: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00004860: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004870: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00004880: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00004890: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000048a0: 6520 6e61 6d65 3d22 6e61 6d65 2220 7479  e name=\"name\" ty\n+000048b0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+000048c0: 7573 653d 2272 6571 7569 7265 6422 3e0d  use=\"required\">.\n+000048d0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+000048e0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000048f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00004900: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00004910: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00004920: 6170 706c 6963 6174 696f 6e20 6e61 6d65  application name\n+00004930: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00004940: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00004950: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00004960: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00004970: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00004980: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00004990: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000049a0: 2276 6572 7369 6f6e 2220 7479 7065 3d22  \"version\" type=\"\n+000049b0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+000049c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000049d0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000049e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000049f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00004a00: 215b 4344 4154 415b 2054 6865 2061 7070  ![CDATA[ The app\n+00004a10: 6c69 6361 7469 6f6e 2076 6572 7369 6f6e  lication version\n+00004a20: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00004a30: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00004a40: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00004a50: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00004a60: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00004a70: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00004a80: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00004a90: 226f 776e 6572 2220 7479 7065 3d22 7873  \"owner\" type=\"xs\n+00004aa0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00004ab0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00004ac0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00004ad0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00004ae0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00004af0: 4344 4154 415b 2054 6865 2061 7070 6c69  CDATA[ The appli\n+00004b00: 6361 7469 6f6e 206f 776e 6572 206e 616d  cation owner nam\n+00004b10: 6520 2865 6d61 696c 2070 7265 6669 7829  e (email prefix)\n+00004b20: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00004b30: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00004b40: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00004b50: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00004b60: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00004b70: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00004b80: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00004b90: 226f 7267 616e 697a 6174 696f 6e22 2074  \"organization\" t\n+00004ba0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00004bb0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00004bc0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004bd0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00004be0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00004bf0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00004c00: 6520 6f72 6761 6e69 7a61 7469 6f6e 206e  e organization n\n+00004c10: 616d 652e 205d 5d3e 3c2f 7873 643a 646f  ame. ]]></xsd:do\n+00004c20: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00004c30: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00004c40: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00004c50: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00004c60: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00004c70: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00004c80: 6d65 3d22 6172 6368 6974 6563 7475 7265  me=\"architecture\n+00004c90: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00004ca0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00004cb0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00004cc0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00004cd0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00004ce0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00004cf0: 2054 6865 2061 7263 6869 7465 6374 7572   The architectur\n+00004d00: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+00004d10: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00004d20: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00004d30: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00004d40: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00004d50: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00004d60: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00004d70: 3d22 656e 7669 726f 6e6d 656e 7422 2074  =\"environment\" t\n+00004d80: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00004d90: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00004da0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00004db0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00004dc0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00004dd0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00004de0: 6520 6170 706c 6963 6174 696f 6e20 656e  e application en\n+00004df0: 7669 726f 6e6d 656e 742c 2065 673a 2064  vironment, eg: d\n+00004e00: 6576 2f74 6573 742f 7275 6e20 5d5d 3e3c  ev/test/run ]]><\n+00004e10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00004e20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004e30: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00004e40: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00004e50: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00004e60: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00004e70: 6275 7465 206e 616d 653d 2263 6f6d 7069  bute name=\"compi\n+00004e80: 6c65 7222 2074 7970 653d 2278 7364 3a73  ler\" type=\"xsd:s\n+00004e90: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00004ea0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00004eb0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00004ec0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00004ed0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00004ee0: 5441 5b20 5468 6520 6a61 7661 2063 6f64  TA[ The java cod\n+00004ef0: 6520 636f 6d70 696c 6572 2e20 5d5d 3e3c  e compiler. ]]><\n+00004f00: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00004f10: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004f20: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00004f30: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00004f40: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00004f50: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00004f60: 6275 7465 206e 616d 653d 226c 6f67 6765  bute name=\"logge\n+00004f70: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+00004f80: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00004f90: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00004fa0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00004fb0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00004fc0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00004fd0: 5b20 5468 6520 6170 706c 6963 6174 696f  [ The applicatio\n+00004fe0: 6e20 6c6f 6767 6572 2e20 5d5d 3e3c 2f78  n logger. ]]></x\n+00004ff0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00005000: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00005010: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00005020: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00005030: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00005040: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00005050: 7465 206e 616d 653d 2272 6567 6973 7472  te name=\"registr\n+00005060: 7922 2074 7970 653d 2278 7364 3a73 7472  y\" type=\"xsd:str\n+00005070: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00005080: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00005090: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000050a0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+000050b0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+000050c0: 5b20 5468 6520 6170 706c 6963 6174 696f  [ The applicatio\n+000050d0: 6e20 7265 6769 7374 7279 2e20 5d5d 3e3c  n registry. ]]><\n+000050e0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+000050f0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00005100: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00005110: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00005120: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00005130: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00005140: 6275 7465 206e 616d 653d 226d 6f6e 6974  bute name=\"monit\n+00005150: 6f72 2220 7479 7065 3d22 7873 643a 7374  or\" type=\"xsd:st\n+00005160: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00005170: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00005180: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00005190: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000051a0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000051b0: 415b 2054 6865 2061 7070 6c69 6361 7469  A[ The applicati\n+000051c0: 6f6e 206d 6f6e 6974 6f72 2e20 5d5d 3e3c  on monitor. ]]><\n+000051d0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+000051e0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000051f0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00005200: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00005210: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00005220: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00005230: 6275 7465 206e 616d 653d 2264 6566 6175  bute name=\"defau\n+00005240: 6c74 2220 7479 7065 3d22 7873 643a 7374  lt\" type=\"xsd:st\n+00005250: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00005260: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00005270: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00005280: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00005290: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000052a0: 415b 2049 7320 6465 6661 756c 742e 205d  A[ Is default. ]\n+000052b0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+000052c0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000052d0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000052e0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+000052f0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00005300: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00005310: 7472 6962 7574 6520 6e61 6d65 3d22 6d65  tribute name=\"me\n+00005320: 7461 6461 7461 2d74 7970 6522 2074 7970  tadata-type\" typ\n+00005330: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00005340: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00005350: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00005360: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00005370: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00005380: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+00005390: 6d65 7461 6474 6120 7479 7065 3a20 6c6f  metadta type: lo\n+000053a0: 6361 6c20 6f72 2072 656d 6f74 652e 205d  cal or remote. ]\n+000053b0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+000053c0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000053d0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000053e0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+000053f0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00005400: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00005410: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n+00005420: 6769 7374 6572 2d63 6f6e 7375 6d65 7222  gister-consumer\"\n+00005430: 2074 7970 653d 2278 7364 3a62 6f6f 6c65   type=\"xsd:boole\n+00005440: 616e 223e 0d0a 2020 2020 2020 2020 2020  an\">..          \n+00005450: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00005460: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00005470: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00005480: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00005490: 2052 6567 6973 7465 7220 636f 6e73 756d   Register consum\n+000054a0: 6572 2069 6e73 7461 6e63 6520 6f72 206e  er instance or n\n+000054b0: 6f74 2c20 6465 6661 756c 7420 6661 6c73  ot, default fals\n+000054c0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+000054d0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000054e0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000054f0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00005500: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00005510: 7465 3e0d 0a20 2020 203c 2f78 7364 3a63  te>..    </xsd:c\n+00005520: 6f6d 706c 6578 5479 7065 3e0d 0a0d 0a20  omplexType>.... \n+00005530: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n+00005540: 7970 6520 6e61 6d65 3d22 6d6f 6475 6c65  ype name=\"module\n+00005550: 5479 7065 223e 0d0a 2020 2020 2020 2020  Type\">..        \n+00005560: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00005570: 616d 653d 2269 6422 2074 7970 653d 2278  ame=\"id\" type=\"x\n+00005580: 7364 3a49 4422 3e0d 0a20 2020 2020 2020  sd:ID\">..       \n+00005590: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000055a0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000055b0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000055c0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+000055d0: 5441 5b20 5468 6520 756e 6971 7565 2069  TA[ The unique i\n+000055e0: 6465 6e74 6966 6965 7220 666f 7220 6120  dentifier for a \n+000055f0: 6265 616e 2e20 5d5d 3e3c 2f78 7364 3a64  bean. ]]></xsd:d\n+00005600: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00005610: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00005620: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00005630: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00005640: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00005650: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00005660: 616d 653d 226e 616d 6522 2074 7970 653d  ame=\"name\" type=\n+00005670: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n+00005680: 3d22 7265 7175 6972 6564 223e 0d0a 2020  =\"required\">..  \n+00005690: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000056a0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000056b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000056c0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+000056d0: 215b 4344 4154 415b 2054 6865 206d 6f64  ![CDATA[ The mod\n+000056e0: 756c 6520 6e61 6d65 2e20 5d5d 3e3c 2f78  ule name. ]]></x\n+000056f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00005700: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00005710: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00005720: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00005730: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00005740: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00005750: 7465 206e 616d 653d 2276 6572 7369 6f6e  te name=\"version\n+00005760: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00005770: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00005780: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00005790: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000057a0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+000057b0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+000057c0: 2054 6865 206d 6f64 756c 6520 7665 7273   The module vers\n+000057d0: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n+000057e0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+000057f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00005800: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00005810: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00005820: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00005830: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00005840: 6d65 3d22 6f77 6e65 7222 2074 7970 653d  me=\"owner\" type=\n+00005850: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00005860: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00005870: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00005880: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00005890: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000058a0: 3c21 5b43 4441 5441 5b20 5468 6520 6d6f  <![CDATA[ The mo\n+000058b0: 6475 6c65 206f 776e 6572 206e 616d 6520  dule owner name \n+000058c0: 2865 6d61 696c 2070 7265 6669 7829 2e20  (email prefix). \n+000058d0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+000058e0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000058f0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00005900: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005910: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00005920: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00005930: 7474 7269 6275 7465 206e 616d 653d 226f  ttribute name=\"o\n+00005940: 7267 616e 697a 6174 696f 6e22 2074 7970  rganization\" typ\n+00005950: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00005960: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00005970: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00005980: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00005990: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000059a0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+000059b0: 6d6f 6475 6c65 206f 7267 616e 697a 6174  module organizat\n+000059c0: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n+000059d0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+000059e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000059f0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00005a00: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00005a10: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00005a20: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00005a30: 6d65 3d22 7265 6769 7374 7279 2220 7479  me=\"registry\" ty\n+00005a40: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00005a50: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00005a60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00005a70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00005a80: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00005a90: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00005aa0: 206d 6f64 756c 6520 7265 6769 7374 7279   module registry\n+00005ab0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00005ac0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00005ad0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00005ae0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00005af0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00005b00: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00005b10: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00005b20: 226d 6f6e 6974 6f72 2220 7479 7065 3d22  \"monitor\" type=\"\n+00005b30: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00005b40: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00005b50: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00005b60: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00005b70: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00005b80: 215b 4344 4154 415b 2054 6865 206d 6f64  ![CDATA[ The mod\n+00005b90: 756c 6520 6d6f 6e69 746f 722e 205d 5d3e  ule monitor. ]]>\n+00005ba0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00005bb0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00005bc0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00005bd0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00005be0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00005bf0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00005c00: 6962 7574 6520 6e61 6d65 3d22 6465 6661  ibute name=\"defa\n+00005c10: 756c 7422 2074 7970 653d 2278 7364 3a73  ult\" type=\"xsd:s\n+00005c20: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+00005c30: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00005c40: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00005c50: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00005c60: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00005c70: 5441 5b20 4973 2064 6566 6175 6c74 2e20  TA[ Is default. \n+00005c80: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00005c90: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00005ca0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00005cb0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00005cc0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00005cd0: 0d0a 2020 2020 3c2f 7873 643a 636f 6d70  ..    </xsd:comp\n+00005ce0: 6c65 7854 7970 653e 0d0a 0d0a 2020 2020  lexType>....    \n+00005cf0: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n+00005d00: 206e 616d 653d 2272 6567 6973 7472 7954   name=\"registryT\n+00005d10: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+00005d20: 7873 643a 7365 7175 656e 6365 206d 696e  xsd:sequence min\n+00005d30: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n+00005d40: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n+00005d50: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00005d60: 7873 643a 656c 656d 656e 7420 7265 663d  xsd:element ref=\n+00005d70: 2270 6172 616d 6574 6572 2220 6d69 6e4f  \"parameter\" minO\n+00005d80: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n+00005d90: 7572 733d 2275 6e62 6f75 6e64 6564 222f  urs=\"unbounded\"/\n+00005da0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00005db0: 3a73 6571 7565 6e63 653e 0d0a 2020 2020  :sequence>..    \n+00005dc0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00005dd0: 7465 206e 616d 653d 2269 6422 2074 7970  te name=\"id\" typ\n+00005de0: 653d 2278 7364 3a49 4422 3e0d 0a20 2020  e=\"xsd:ID\">..   \n+00005df0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00005e00: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00005e10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00005e20: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00005e30: 5b43 4441 5441 5b20 5468 6520 756e 6971  [CDATA[ The uniq\n+00005e40: 7565 2069 6465 6e74 6966 6965 7220 666f  ue identifier fo\n+00005e50: 7220 6120 6265 616e 2e20 5d5d 3e3c 2f78  r a bean. ]]></x\n+00005e60: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00005e70: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00005e80: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00005e90: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00005ea0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00005eb0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00005ec0: 7465 206e 616d 653d 2261 6464 7265 7373  te name=\"address\n+00005ed0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+00005ee0: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+00005ef0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00005f00: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00005f10: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00005f20: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00005f30: 2054 6865 2072 6567 6973 7472 7920 6164   The registry ad\n+00005f40: 6472 6573 732e 205d 5d3e 3c2f 7873 643a  dress. ]]></xsd:\n+00005f50: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00005f60: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00005f70: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n 00005f80: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00005f90: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00005fa0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00005fb0: 616d 653d 2275 7365 726e 616d 6522 2074  ame=\"username\" t\n-00005fc0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00005fd0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00005fe0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00005ff0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00006000: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00006010: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-00006020: 7265 6769 7374 7279 2075 7365 726e 616d  registry usernam\n-00006030: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-00006040: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00006050: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00006060: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00006070: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00006080: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00006090: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n-000060a0: 6173 7377 6f72 6422 2074 7970 653d 2278  assword\" type=\"x\n-000060b0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000060c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000060d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000060e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000060f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00006100: 4441 5441 5b20 5468 6520 7265 6769 7374  DATA[ The regist\n-00006110: 7279 2070 6173 7377 6f72 642e 205d 5d3e  ry password. ]]>\n-00006120: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00006130: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00006140: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00006150: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00006160: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00006170: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00006180: 7465 206e 616d 653d 2274 7261 6e73 706f  te name=\"transpo\n-00006190: 7274 2220 7479 7065 3d22 7873 643a 7374  rt\" type=\"xsd:st\n-000061a0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-000061b0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000061c0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000061d0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000061e0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-000061f0: 2054 6865 2070 726f 746f 636f 6c20 7472   The protocol tr\n-00006200: 616e 7370 6f72 7465 7220 7479 7065 2e20  ansporter type. \n-00006210: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00006220: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006230: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00006240: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00006250: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00006260: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00006270: 6962 7574 6520 6e61 6d65 3d22 7472 616e  ibute name=\"tran\n-00006280: 7370 6f72 7465 7222 2074 7970 653d 2278  sporter\" type=\"x\n-00006290: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000062a0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000062b0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000062c0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000062d0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000062e0: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-000062f0: 6f6c 2074 7261 6e73 706f 7274 6572 2074  ol transporter t\n-00006300: 7970 652e 205d 5d3e 3c2f 7873 643a 646f  ype. ]]></xsd:do\n-00006310: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00006320: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00006330: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00006340: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00006350: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00006360: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00006370: 2273 6572 7665 7222 2074 7970 653d 2278  \"server\" type=\"x\n-00006380: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00006390: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000063a0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000063b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-000063c0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-000063d0: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-000063e0: 6f6c 2073 6572 7665 7220 7479 7065 2e20  ol server type. \n-000063f0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00006400: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006410: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00006420: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00006430: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00006440: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00006450: 6962 7574 6520 6e61 6d65 3d22 636c 6965  ibute name=\"clie\n-00006460: 6e74 2220 7479 7065 3d22 7873 643a 7374  nt\" type=\"xsd:st\n-00006470: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00006480: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00006490: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000064a0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-000064b0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-000064c0: 2054 6865 2070 726f 746f 636f 6c20 636c   The protocol cl\n-000064d0: 6965 6e74 2074 7970 652e 205d 5d3e 3c2f  ient type. ]]></\n-000064e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000064f0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00006500: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00006510: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00006520: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00006530: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00006540: 206e 616d 653d 2263 6c75 7374 6572 2220   name=\"cluster\" \n-00006550: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00006560: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00006570: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00006580: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00006590: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-000065a0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-000065b0: 2072 6567 6973 7472 7920 636c 7573 7465   registry cluste\n-000065c0: 7220 7479 7065 2e20 5d5d 3e3c 2f78 7364  r type. ]]></xsd\n-000065d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-000065e0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000065f0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00006600: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00006610: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00006620: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00006630: 6d65 3d22 7a6f 6e65 2220 7479 7065 3d22  me=\"zone\" type=\"\n-00006640: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00006650: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00006660: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00006670: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00006680: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00006690: 4344 4154 415b 2054 6865 2072 6567 6973  CDATA[ The regis\n-000066a0: 7472 7920 7a6f 6e65 2074 7970 652e 205d  try zone type. ]\n-000066b0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-000066c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000066d0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-000066e0: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-000066f0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00006700: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00006710: 6275 7465 206e 616d 653d 2266 6f72 6b73  bute name=\"forks\n-00006720: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00006730: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00006740: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00006750: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00006760: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00006770: 7469 6f6e 3e3c 215b 4344 4154 415b 2046  tion><![CDATA[ F\n-00006780: 6f72 6b69 6e67 436c 7573 7465 7220 666f  orkingCluster fo\n-00006790: 726b 732e 205d 5d3e 3c2f 7873 643a 646f  rks. ]]></xsd:do\n-000067a0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-000067b0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-000067c0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000067d0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-000067e0: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-000067f0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00006800: 2267 726f 7570 2220 7479 7065 3d22 7873  \"group\" type=\"xs\n-00006810: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-00006820: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00006830: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006840: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00006850: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00006860: 4154 415b 2054 6865 2072 6567 6973 7472  ATA[ The registr\n-00006870: 7920 6772 6f75 702e 205d 5d3e 3c2f 7873  y group. ]]></xs\n-00006880: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00006890: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-000068a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000068b0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000068c0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000068d0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-000068e0: 616d 653d 2276 6572 7369 6f6e 2220 7479  ame=\"version\" ty\n-000068f0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00006900: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00006910: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00006920: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00006930: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00006940: 3e3c 215b 4344 4154 415b 2054 6865 2072  ><![CDATA[ The r\n-00006950: 6567 6973 7472 7920 7665 7273 696f 6e2e  egistry version.\n-00006960: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00006970: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00006980: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00006990: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-000069a0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-000069b0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000069c0: 7269 6275 7465 206e 616d 653d 2274 696d  ribute name=\"tim\n-000069d0: 656f 7574 2220 7479 7065 3d22 7873 643a  eout\" type=\"xsd:\n-000069e0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000069f0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00006a00: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00006a10: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00006a20: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00006a30: 415b 2054 6865 2072 6571 7565 7374 2074  A[ The request t\n-00006a40: 696d 656f 7574 2e20 5d5d 3e3c 2f78 7364  imeout. ]]></xsd\n-00006a50: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00006a60: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00006a70: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00006a80: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00006a90: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-00006aa0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00006ab0: 6d65 3d22 7365 7373 696f 6e22 2074 7970  me=\"session\" typ\n-00006ac0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00006ad0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00006ae0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00006af0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00006b00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00006b10: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00006b20: 7373 696f 6e20 7469 6d65 6f75 742e 205d  ssion timeout. ]\n-00006b30: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00006b40: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00006b50: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00006b60: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00006b70: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00006b80: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00006b90: 6275 7465 206e 616d 653d 2266 696c 6522  bute name=\"file\"\n-00006ba0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00006bb0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00006bc0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00006bd0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00006be0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00006bf0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00006c00: 6520 7265 6769 7374 7279 2061 6464 6472  e registry adddr\n-00006c10: 6573 7320 6669 6c65 2073 746f 7265 2e20  ess file store. \n-00006c20: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00006c30: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00006c40: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00006c50: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00006c60: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00006c70: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00006c80: 6962 7574 6520 6e61 6d65 3d22 7761 6974  ibute name=\"wait\n-00006c90: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00006ca0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00006cb0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00006cc0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00006cd0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00006ce0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00006cf0: 6865 2077 6169 7420 7469 6d65 2066 6f72  he wait time for\n-00006d00: 2073 6875 7464 6f77 6e2e 205d 5d3e 3c2f   shutdown. ]]></\n-00006d10: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00006d20: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00006d30: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00006d40: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00006d50: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00006d60: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00006d70: 206e 616d 653d 2263 6865 636b 2220 7479   name=\"check\" ty\n-00006d80: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00006d90: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00006da0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00006db0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00006dc0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00006dd0: 3e3c 215b 4344 4154 415b 2043 6865 636b  ><![CDATA[ Check\n-00006de0: 2072 6567 6973 7472 7920 7374 6174 7573   registry status\n-00006df0: 206f 6e20 7374 7261 7475 702e 205d 5d3e   on stratup. ]]>\n-00006e00: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00006e10: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00006e20: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00006e30: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00006e40: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00006e50: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00006e60: 7465 206e 616d 653d 2264 796e 616d 6963  te name=\"dynamic\n-00006e70: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00006e80: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00006e90: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00006ea0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00006eb0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00006ec0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00006ed0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n-00006ee0: 5441 5b20 7468 6520 7365 7276 6963 6520  TA[ the service \n-00006ef0: 7265 6769 7374 6572 6564 2074 6f20 7468  registered to th\n-00006f00: 6973 2072 6567 6973 7472 7920 6973 2064  is registry is d\n-00006f10: 796e 616d 6963 2874 7275 6529 206f 7220  ynamic(true) or \n-00006f20: 7374 6174 6963 2866 616c 7365 292e 205d  static(false). ]\n-00006f30: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00006f40: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00006f50: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00006f60: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00006f70: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00006f80: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00006f90: 6275 7465 206e 616d 653d 2272 6567 6973  bute name=\"regis\n-00006fa0: 7465 7222 2074 7970 653d 2278 7364 3a73  ter\" type=\"xsd:s\n-00006fb0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00006fc0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00006fd0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00006fe0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00006ff0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00007000: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n-00007010: 4344 4154 415b 2072 6567 6973 7465 7220  CDATA[ register \n-00007020: 7365 7276 6963 6520 746f 2074 6869 7320  service to this \n-00007030: 7265 6769 7374 7279 2874 7275 6529 206f  registry(true) o\n-00007040: 7220 6e6f 7428 6661 6c73 6529 2e20 5d5d  r not(false). ]]\n-00007050: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00007060: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00007070: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00007080: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00007090: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-000070a0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-000070b0: 7574 6520 6e61 6d65 3d22 7375 6273 6372  ute name=\"subscr\n-000070c0: 6962 6522 2074 7970 653d 2278 7364 3a73  ibe\" type=\"xsd:s\n-000070d0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-000070e0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000070f0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00007100: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00007110: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00007120: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n-00007130: 4344 4154 415b 2073 7562 7363 7269 6265  CDATA[ subscribe\n-00007140: 2073 6572 7669 6365 2074 6f20 7468 6973   service to this\n-00007150: 2072 6567 6973 7472 7928 7472 7565 2920   registry(true) \n-00007160: 6f72 206e 6f74 2866 616c 7365 292e 205d  or not(false). ]\n-00007170: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00007180: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00007190: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-000071a0: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-000071b0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-000071c0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-000071d0: 6275 7465 206e 616d 653d 2264 6566 6175  bute name=\"defau\n-000071e0: 6c74 2220 7479 7065 3d22 7873 643a 7374  lt\" type=\"xsd:st\n-000071f0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00007200: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00007210: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00007220: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00007230: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00007240: 2049 7320 6465 6661 756c 742e 205d 5d3e   Is default. ]]>\n-00007250: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00007260: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00007270: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00007280: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00007290: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-000072a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-000072b0: 7465 206e 616d 653d 2273 696d 706c 6966  te name=\"simplif\n-000072c0: 6965 6422 2074 7970 653d 2278 7364 3a62  ied\" type=\"xsd:b\n-000072d0: 6f6f 6c65 616e 223e 0a20 2020 2020 2020  oolean\">.       \n-000072e0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000072f0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00007300: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00007310: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00007320: 415b 2049 7320 7369 6d70 6c65 2e20 5d5d  A[ Is simple. ]]\n-00007330: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00007340: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00007350: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00007360: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00007370: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00007380: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00007390: 7574 6520 6e61 6d65 3d22 6578 7472 612d  ute name=\"extra-\n-000073a0: 6b65 7973 2220 7479 7065 3d22 7873 643a  keys\" type=\"xsd:\n-000073b0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-000073c0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-000073d0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000073e0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-000073f0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00007400: 415b 2045 7874 7261 2050 6172 616d 6574  A[ Extra Paramet\n-00007410: 6572 204b 6579 732e 205d 5d3e 3c2f 7873  er Keys. ]]></xs\n-00007420: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00007430: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00007440: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00007450: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00007460: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00007470: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00007480: 616d 653d 2275 7365 2d61 732d 636f 6e66  ame=\"use-as-conf\n-00007490: 6967 2d63 656e 7465 7222 2074 7970 653d  ig-center\" type=\n-000074a0: 2278 7364 3a62 6f6f 6c65 616e 223e 0a20  \"xsd:boolean\">. \n-000074b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000074c0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000074d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000074e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000074f0: 215b 4344 4154 415b 2077 6f72 6b20 6173  ![CDATA[ work as\n-00007500: 2063 6f6e 6669 6720 6365 6e74 6572 206f   config center o\n-00007510: 7220 6e6f 742e 205d 5d3e 3c2f 7873 643a  r not. ]]></xsd:\n-00007520: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00007530: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00007540: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00007550: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00007560: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00007570: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00007580: 653d 2275 7365 2d61 732d 6d65 7461 6461  e=\"use-as-metada\n-00007590: 7461 2d63 656e 7465 7222 2074 7970 653d  ta-center\" type=\n-000075a0: 2278 7364 3a62 6f6f 6c65 616e 223e 0a20  \"xsd:boolean\">. \n-000075b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000075c0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000075d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000075e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000075f0: 215b 4344 4154 415b 2077 6f72 6b20 6173  ![CDATA[ work as\n-00007600: 206d 6574 6164 6174 6120 6365 6e74 6572   metadata center\n-00007610: 206f 7220 6e6f 742e 205d 5d3e 3c2f 7873   or not. ]]></xs\n-00007620: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00007630: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00007640: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00007650: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00007660: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00007670: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00007680: 616d 653d 2261 6363 6570 7473 2220 7479  ame=\"accepts\" ty\n-00007690: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-000076a0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-000076b0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000076c0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000076d0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000076e0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000076f0: 2020 2020 2020 3c21 5b43 4441 5441 5b20        <![CDATA[ \n-00007700: 6c69 7374 206f 6620 7270 6320 7072 6f74  list of rpc prot\n-00007710: 6f63 6f6c 7320 6163 6365 7074 6564 2062  ocols accepted b\n-00007720: 7920 7468 6973 2072 6567 6973 7472 792c  y this registry,\n-00007730: 2073 6570 6172 6174 6564 2077 6974 6820   separated with \n-00007740: 222c 222e 205d 5d3e 3c2f 7873 643a 646f  \",\". ]]></xsd:do\n-00007750: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00007760: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00007770: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007780: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00007790: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-000077a0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-000077b0: 2270 7265 6665 7272 6564 2220 7479 7065  \"preferred\" type\n-000077c0: 3d22 7873 643a 626f 6f6c 6561 6e22 3e0a  =\"xsd:boolean\">.\n-000077d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000077e0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000077f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00007800: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00007810: 3c21 5b43 4441 5441 5b20 4973 2074 6869  <![CDATA[ Is thi\n-00007820: 7320 7265 6769 7374 7279 2074 6865 2070  s registry the p\n-00007830: 7265 6665 7272 6564 206f 6e65 2e20 5d5d  referred one. ]]\n-00007840: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00007850: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00007860: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00007870: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00007880: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-00007890: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-000078a0: 7574 6520 6e61 6d65 3d22 7765 6967 6874  ute name=\"weight\n-000078b0: 2220 7479 7065 3d22 7873 643a 696e 7465  \" type=\"xsd:inte\n-000078c0: 6765 7222 3e0a 2020 2020 2020 2020 2020  ger\">.          \n-000078d0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000078e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000078f0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00007900: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00007910: 7765 6967 6874 206f 6620 7265 6769 7374  weight of regist\n-00007920: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n-00007930: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00007940: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00007950: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00007960: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00007970: 653e 0a20 2020 203c 2f78 7364 3a63 6f6d  e>.    </xsd:com\n-00007980: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-00007990: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-000079a0: 6e61 6d65 3d22 6d65 7461 6461 7461 5265  name=\"metadataRe\n-000079b0: 706f 7274 5479 7065 223e 0a20 2020 2020  portType\">.     \n-000079c0: 2020 203c 7873 643a 7365 7175 656e 6365     <xsd:sequence\n-000079d0: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n-000079e0: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n-000079f0: 6465 6422 3e0a 2020 2020 2020 2020 2020  ded\">.          \n-00007a00: 2020 3c78 7364 3a65 6c65 6d65 6e74 2072    <xsd:element r\n-00007a10: 6566 3d22 7061 7261 6d65 7465 7222 206d  ef=\"parameter\" m\n-00007a20: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n-00007a30: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n-00007a40: 6422 2f3e 0a20 2020 2020 2020 203c 2f78  d\"/>.        </x\n-00007a50: 7364 3a73 6571 7565 6e63 653e 0a20 2020  sd:sequence>.   \n-00007a60: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00007a70: 7574 6520 6e61 6d65 3d22 6964 2220 7479  ute name=\"id\" ty\n-00007a80: 7065 3d22 7873 643a 4944 223e 0a20 2020  pe=\"xsd:ID\">.   \n-00007a90: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00007aa0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00007ab0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00007ac0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00007ad0: 4344 4154 415b 2054 6865 2075 6e69 7175  CDATA[ The uniqu\n-00007ae0: 6520 6964 656e 7469 6669 6572 2066 6f72  e identifier for\n-00007af0: 2061 2062 6561 6e2e 205d 5d3e 3c2f 7873   a bean. ]]></xs\n-00007b00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00007b10: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00007b20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00007b30: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00007b40: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00007b50: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00007b60: 616d 653d 2261 6464 7265 7373 2220 7479  ame=\"address\" ty\n-00007b70: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00007b80: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-00007b90: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00007ba0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00007bb0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00007bc0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00007bd0: 3c21 5b43 4441 5441 5b20 5468 6520 6d65  <![CDATA[ The me\n-00007be0: 7461 6461 7461 5265 706f 7274 2061 6464  tadataReport add\n-00007bf0: 7265 7373 2e20 5d5d 3e3c 2f78 7364 3a64  ress. ]]></xsd:d\n-00007c00: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00007c10: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00007c20: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00007c30: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00007c40: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00007c50: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00007c60: 3d22 7573 6572 6e61 6d65 2220 7479 7065  =\"username\" type\n-00007c70: 3d22 7873 643a 7374 7269 6e67 2220 7573  =\"xsd:string\" us\n-00007c80: 653d 226f 7074 696f 6e61 6c22 3e0a 2020  e=\"optional\">.  \n-00007c90: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00007ca0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007cb0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00007cc0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00007cd0: 5b43 4441 5441 5b20 5468 6520 6d65 7461  [CDATA[ The meta\n-00007ce0: 6461 7461 5265 706f 7274 2075 7365 726e  dataReport usern\n-00007cf0: 616d 652e 205d 5d3e 3c2f 7873 643a 646f  ame. ]]></xsd:do\n-00007d00: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00007d10: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00007d20: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00007d30: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00007d40: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00007d50: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00007d60: 2270 6173 7377 6f72 6422 2074 7970 653d  \"password\" type=\n-00007d70: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n-00007d80: 3d22 6f70 7469 6f6e 616c 223e 0a20 2020  =\"optional\">.   \n-00007d90: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00007da0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00007db0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00007dc0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00007dd0: 4344 4154 415b 2054 6865 206d 6574 6164  CDATA[ The metad\n-00007de0: 6174 6152 6570 6f72 7420 7061 7373 776f  ataReport passwo\n-00007df0: 7264 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  rd. ]]></xsd:doc\n-00007e00: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00007e10: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00007e20: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00007e30: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00007e40: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00007e50: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00007e60: 7469 6d65 6f75 7422 2074 7970 653d 2278  timeout\" type=\"x\n-00007e70: 7364 3a73 7472 696e 6722 2075 7365 3d22  sd:string\" use=\"\n-00007e80: 6f70 7469 6f6e 616c 223e 0a20 2020 2020  optional\">.     \n-00007e90: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-00007ea0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00007eb0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-00007ec0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-00007ed0: 4154 415b 2054 6865 2072 6571 7565 7374  ATA[ The request\n-00007ee0: 2074 696d 656f 7574 2e20 5d5d 3e3c 2f78   timeout. ]]></x\n-00007ef0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00007f00: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00007f10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00007f20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00007f30: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-00007f40: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00007f50: 6e61 6d65 3d22 6772 6f75 7022 2074 7970  name=\"group\" typ\n-00007f60: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-00007f70: 7365 3d22 6f70 7469 6f6e 616c 223e 0a20  se=\"optional\">. \n-00007f80: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00007f90: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00007fa0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00007fb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00007fc0: 215b 4344 4154 415b 2054 6865 2067 726f  ![CDATA[ The gro\n-00007fd0: 7570 206f 6620 6d65 7461 6461 7461 2d72  up of metadata-r\n-00007fe0: 6570 6f72 742e 205d 5d3e 3c2f 7873 643a  eport. ]]></xsd:\n-00007ff0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00008000: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00008010: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008020: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00008030: 6275 7465 3e0a 0a20 2020 2020 2020 203c  bute>..        <\n-00008040: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-00008050: 6d65 3d22 7265 7472 792d 7469 6d65 7322  me=\"retry-times\"\n-00008060: 2074 7970 653d 2278 7364 3a69 6e74 6567   type=\"xsd:integ\n-00008070: 6572 2220 7573 653d 226f 7074 696f 6e61  er\" use=\"optiona\n-00008080: 6c22 3e0a 2020 2020 2020 2020 2020 2020  l\">.            \n-00008090: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-000080a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000080b0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000080c0: 696f 6e3e 3c21 5b43 4441 5441 5b20 6966  ion><![CDATA[ if\n-000080d0: 2066 6169 6c2c 2072 6574 7279 2074 696d   fail, retry tim\n-000080e0: 6573 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  es. ]]></xsd:doc\n-000080f0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00008100: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00008110: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00008120: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00008130: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00008140: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00008150: 7265 7472 792d 7065 7269 6f64 2220 7479  retry-period\" ty\n-00008160: 7065 3d22 7873 643a 696e 7465 6765 7222  pe=\"xsd:integer\"\n-00008170: 2075 7365 3d22 6f70 7469 6f6e 616c 223e   use=\"optional\">\n-00008180: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00008190: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000081a0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000081b0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000081c0: 3e3c 215b 4344 4154 415b 2069 6620 6661  ><![CDATA[ if fa\n-000081d0: 696c 2c20 7265 7472 7920 7065 7269 6f64  il, retry period\n-000081e0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-000081f0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00008200: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00008210: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00008220: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00008230: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00008240: 7472 6962 7574 6520 6e61 6d65 3d22 6379  tribute name=\"cy\n-00008250: 636c 652d 7265 706f 7274 2220 7479 7065  cle-report\" type\n-00008260: 3d22 7873 643a 626f 6f6c 6561 6e22 2075  =\"xsd:boolean\" u\n-00008270: 7365 3d22 6f70 7469 6f6e 616c 223e 0a20  se=\"optional\">. \n-00008280: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00008290: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000082a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000082b0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000082c0: 215b 4344 4154 415b 2072 6570 6f72 7420  ![CDATA[ report \n-000082d0: 6379 636c 656c 792e 205d 5d3e 3c2f 7873  cyclely. ]]></xs\n-000082e0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000082f0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00008300: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00008310: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00008320: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00008330: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00008340: 616d 653d 2273 796e 632d 7265 706f 7274  ame=\"sync-report\n-00008350: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n-00008360: 6561 6e22 2075 7365 3d22 6f70 7469 6f6e  ean\" use=\"option\n-00008370: 616c 223e 0a20 2020 2020 2020 2020 2020  al\">.           \n-00008380: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00008390: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000083a0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000083b0: 7469 6f6e 3e3c 215b 4344 4154 415b 2053  tion><![CDATA[ S\n-000083c0: 796e 6320 6f72 2041 7379 6e63 2072 6570  ync or Async rep\n-000083d0: 6f72 742e 205d 5d3e 3c2f 7873 643a 646f  ort. ]]></xsd:do\n-000083e0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-000083f0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00008400: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00008410: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-00008420: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00008430: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00008440: 2263 6c75 7374 6572 2220 7479 7065 3d22  \"cluster\" type=\"\n-00008450: 7873 643a 626f 6f6c 6561 6e22 2075 7365  xsd:boolean\" use\n-00008460: 3d22 6f70 7469 6f6e 616c 223e 0a20 2020  =\"optional\">.   \n-00008470: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00008480: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00008490: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000084a0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000084b0: 4344 4154 415b 204e 6565 6420 636c 7573  CDATA[ Need clus\n-000084c0: 7465 7220 7375 7070 6f72 742c 2064 6566  ter support, def\n-000084d0: 6175 6c74 2066 616c 7365 2e20 5d5d 3e3c  ault false. ]]><\n-000084e0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-000084f0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00008500: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00008510: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00008520: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00008530: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00008540: 6520 6e61 6d65 3d22 7265 6769 7374 7279  e name=\"registry\n-00008550: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00008560: 6e67 2220 7573 653d 226f 7074 696f 6e61  ng\" use=\"optiona\n-00008570: 6c22 3e0a 2020 2020 2020 2020 2020 2020  l\">.            \n-00008580: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00008590: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000085a0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-000085b0: 696f 6e3e 3c21 5b43 4441 5441 5b20 7265  ion><![CDATA[ re\n-000085c0: 6769 7374 7279 2063 6f6e 6669 6720 6964  gistry config id\n-000085d0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-000085e0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-000085f0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00008600: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00008610: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00008620: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n-00008630: 6578 5479 7065 3e0a 0a20 2020 203c 7873  exType>..    <xs\n-00008640: 643a 636f 6d70 6c65 7854 7970 6520 6e61  d:complexType na\n-00008650: 6d65 3d22 636f 6e66 6967 4365 6e74 6572  me=\"configCenter\n-00008660: 5479 7065 223e 0a20 2020 2020 2020 203c  Type\">.        <\n-00008670: 7873 643a 7365 7175 656e 6365 206d 696e  xsd:sequence min\n-00008680: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n-00008690: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n-000086a0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-000086b0: 7364 3a65 6c65 6d65 6e74 2072 6566 3d22  sd:element ref=\"\n-000086c0: 7061 7261 6d65 7465 7222 206d 696e 4f63  parameter\" minOc\n-000086d0: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n-000086e0: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n-000086f0: 0a20 2020 2020 2020 203c 2f78 7364 3a73  .        </xsd:s\n-00008700: 6571 7565 6e63 653e 0a20 2020 2020 2020  equence>.       \n-00008710: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00008720: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n-00008730: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00008740: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00008750: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00008760: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00008770: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00008780: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-00008790: 2063 6f6e 6669 6720 6365 6e74 6572 2070   config center p\n-000087a0: 726f 746f 636f 6c2e 205d 5d3e 3c2f 7873  rotocol. ]]></xs\n-000087b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-000087c0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-000087d0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000087e0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000087f0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00008800: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00008810: 616d 653d 2261 6464 7265 7373 2220 7479  ame=\"address\" ty\n-00008820: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00008830: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-00008840: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00008850: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008860: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00008870: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00008880: 3c21 5b43 4441 5441 5b20 5468 6520 636f  <![CDATA[ The co\n-00008890: 6e66 6967 2063 656e 7465 7220 6164 6472  nfig center addr\n-000088a0: 6573 732e 205d 5d3e 3c2f 7873 643a 646f  ess. ]]></xsd:do\n-000088b0: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-000088c0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-000088d0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000088e0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-000088f0: 7465 3e0a 2020 2020 2020 2020 3c78 7364  te>.        <xsd\n-00008900: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00008910: 2263 6c75 7374 6572 2220 7479 7065 3d22  \"cluster\" type=\"\n-00008920: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n-00008930: 226f 7074 696f 6e61 6c22 3e0a 2020 2020  \"optional\">.    \n-00008940: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00008950: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00008960: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00008970: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00008980: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00008990: 203c 215b 4344 4154 415b 2054 6865 2063   <![CDATA[ The c\n-000089a0: 6f6e 6669 6720 6365 6e74 6572 2063 6c75  onfig center clu\n-000089b0: 7374 6572 2c20 6974 2773 2072 6561 6c20  ster, it's real \n-000089c0: 6d65 616e 696e 6720 6d61 7920 7665 7279  meaning may very\n-000089d0: 206f 6e20 6469 6666 6572 656e 7420 436f   on different Co\n-000089e0: 6e66 6967 2043 656e 7465 7220 7072 6f64  nfig Center prod\n-000089f0: 7563 7473 2e20 5d5d 3e3c 2f78 7364 3a64  ucts. ]]></xsd:d\n-00008a00: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00008a10: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00008a20: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00008a30: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00008a40: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00008a50: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00008a60: 3d22 6e61 6d65 7370 6163 6522 2074 7970  =\"namespace\" typ\n-00008a70: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-00008a80: 7365 3d22 6f70 7469 6f6e 616c 223e 0a20  se=\"optional\">. \n-00008a90: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00008aa0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00008ab0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00008ac0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00008ad0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00008ae0: 2020 2020 3c21 5b43 4441 5441 5b20 5468      <![CDATA[ Th\n-00008af0: 6520 6e61 6d65 7370 6163 6520 6f66 2074  e namespace of t\n-00008b00: 6865 2063 6f6e 6669 6720 6365 6e74 6572  he config center\n-00008b10: 2c20 6765 6e65 7261 6c6c 7920 6974 2773  , generally it's\n-00008b20: 2075 7365 6420 666f 7220 6d75 6c74 692d   used for multi-\n-00008b30: 7465 6e61 6e74 2c20 6275 7420 6974 2773  tenant, but it's\n-00008b40: 2072 6561 6c20 6d65 616e 696e 6720 6465   real meaning de\n-00008b50: 7065 6e64 7320 6f6e 2074 6865 2061 6374  pends on the act\n-00008b60: 7561 6c20 436f 6e66 6967 2043 656e 7465  ual Config Cente\n-00008b70: 7220 796f 7520 7573 652e 205d 5d3e 3c2f  r you use. ]]></\n-00008b80: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00008b90: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00008ba0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00008bb0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00008bc0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00008bd0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-00008be0: 206e 616d 653d 2267 726f 7570 2220 7479   name=\"group\" ty\n-00008bf0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00008c00: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-00008c10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00008c20: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008c30: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00008c40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00008c50: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00008c60: 2020 2020 203c 215b 4344 4154 415b 2054       <![CDATA[ T\n-00008c70: 6865 2067 726f 7570 206f 6620 7468 6520  he group of the \n-00008c80: 636f 6e66 6967 2063 656e 7465 722c 2067  config center, g\n-00008c90: 656e 6572 616c 6c79 2069 7427 7320 7573  enerally it's us\n-00008ca0: 6564 2074 6f20 6964 656e 7469 6679 2061  ed to identify a\n-00008cb0: 6e20 6973 6f6c 6174 6564 2073 7061 6365  n isolated space\n-00008cc0: 2066 6f72 2061 2062 6174 6368 206f 6620   for a batch of \n-00008cd0: 636f 6e66 6967 2069 7465 6d73 2c20 6275  config items, bu\n-00008ce0: 7420 6974 2773 2072 6561 6c20 6d65 616e  t it's real mean\n-00008cf0: 696e 6720 6465 7065 6e64 7320 6f6e 2074  ing depends on t\n-00008d00: 6865 2061 6374 7561 6c20 436f 6e66 6967  he actual Config\n-00008d10: 2043 656e 7465 7220 796f 7520 7573 652e   Center you use.\n-00008d20: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00008d30: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00008d40: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00008d50: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00008d60: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00008d70: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-00008d80: 7269 6275 7465 206e 616d 653d 2263 6f6e  ribute name=\"con\n-00008d90: 6669 672d 6669 6c65 2220 7479 7065 3d22  fig-file\" type=\"\n-00008da0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n-00008db0: 226f 7074 696f 6e61 6c22 3e0a 2020 2020  \"optional\">.    \n-00008dc0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00008dd0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00008de0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00008df0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00008e00: 4441 5441 5b20 5468 6520 6b65 7920 7573  DATA[ The key us\n-00008e10: 6564 2074 6f20 6765 7420 7468 6520 636f  ed to get the co\n-00008e20: 6e66 6967 7320 6174 2073 7461 7274 7570  nfigs at startup\n-00008e30: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00008e40: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00008e50: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00008e60: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00008e70: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00008e80: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00008e90: 7472 6962 7574 6520 6e61 6d65 3d22 6170  tribute name=\"ap\n-00008ea0: 702d 636f 6e66 6967 2d66 696c 6522 2074  p-config-file\" t\n-00008eb0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-00008ec0: 2075 7365 3d22 6f70 7469 6f6e 616c 223e   use=\"optional\">\n-00008ed0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00008ee0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00008ef0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00008f00: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00008f10: 3e3c 215b 4344 4154 415b 2054 6865 206b  ><![CDATA[ The k\n-00008f20: 6579 2075 7365 6420 746f 2067 6574 2074  ey used to get t\n-00008f30: 6865 2063 6f6e 6669 6773 2061 7420 7374  he configs at st\n-00008f40: 6172 7475 702e 205d 5d3e 3c2f 7873 643a  artup. ]]></xsd:\n-00008f50: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00008f60: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00008f70: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00008f80: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00008f90: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00008fa0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00008fb0: 653d 2275 7365 726e 616d 6522 2074 7970  e=\"username\" typ\n-00008fc0: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n-00008fd0: 7365 3d22 6f70 7469 6f6e 616c 223e 0a20  se=\"optional\">. \n-00008fe0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00008ff0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00009000: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009010: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00009020: 215b 4344 4154 415b 2054 6865 2075 7365  ![CDATA[ The use\n-00009030: 726e 616d 6520 666f 7220 4155 5448 2e20  rname for AUTH. \n-00009040: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00009050: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00009060: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00009070: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-00009080: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-00009090: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000090a0: 6962 7574 6520 6e61 6d65 3d22 7061 7373  ibute name=\"pass\n-000090b0: 776f 7264 2220 7479 7065 3d22 7873 643a  word\" type=\"xsd:\n-000090c0: 7374 7269 6e67 2220 7573 653d 226f 7074  string\" use=\"opt\n-000090d0: 696f 6e61 6c22 3e0a 2020 2020 2020 2020  ional\">.        \n-000090e0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-000090f0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00009100: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00009110: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00009120: 5b20 5468 6520 7061 7373 776f 7264 2066  [ The password f\n-00009130: 6f72 2041 5554 482e 205d 5d3e 3c2f 7873  or AUTH. ]]></xs\n-00009140: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009150: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00009160: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00009170: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00009180: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00009190: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-000091a0: 616d 653d 2274 696d 656f 7574 2220 7479  ame=\"timeout\" ty\n-000091b0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-000091c0: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-000091d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000091e0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000091f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00009200: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009210: 3c21 5b43 4441 5441 5b20 5468 6520 7265  <![CDATA[ The re\n-00009220: 7175 6573 7420 7469 6d65 6f75 742e 205d  quest timeout. ]\n-00009230: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-00009240: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00009250: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-00009260: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-00009270: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-00009280: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-00009290: 6275 7465 206e 616d 653d 2268 6967 6865  bute name=\"highe\n-000092a0: 7374 2d70 7269 6f72 6974 7922 2074 7970  st-priority\" typ\n-000092b0: 653d 2278 7364 3a62 6f6f 6c65 616e 2220  e=\"xsd:boolean\" \n-000092c0: 7573 653d 226f 7074 696f 6e61 6c22 3e0a  use=\"optional\">.\n-000092d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000092e0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000092f0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00009300: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009310: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00009320: 2020 2020 203c 215b 4344 4154 415b 2057       <![CDATA[ W\n-00009330: 6865 7468 6572 2074 6865 2063 6f6e 6669  hether the confi\n-00009340: 6773 2066 726f 6d20 636f 6e66 6967 2063  gs from config c\n-00009350: 656e 7465 7220 6861 7320 7468 6520 6869  enter has the hi\n-00009360: 6768 6573 7420 7072 696f 7269 7479 2e20  ghest priority. \n-00009370: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00009380: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00009390: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-000093a0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-000093b0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000093c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000093d0: 6962 7574 6520 6e61 6d65 3d22 696e 636c  ibute name=\"incl\n-000093e0: 7564 652d 7370 7269 6e67 2d65 6e76 2220  ude-spring-env\" \n-000093f0: 7479 7065 3d22 7873 643a 626f 6f6c 6561  type=\"xsd:boolea\n-00009400: 6e22 2075 7365 3d22 6f70 7469 6f6e 616c  n\" use=\"optional\n-00009410: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-00009420: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00009430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00009440: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-00009450: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00009460: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-00009470: 5b20 4c6f 6164 2074 6865 2063 6f6e 6669  [ Load the confi\n-00009480: 6720 6974 656d 7320 6279 2044 7562 626f  g items by Dubbo\n-00009490: 2069 7473 656c 6620 6f72 2053 7072 696e   itself or Sprin\n-000094a0: 672e 205d 5d3e 3c2f 7873 643a 646f 6375  g. ]]></xsd:docu\n-000094b0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-000094c0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-000094d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-000094e0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-000094f0: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00009500: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-00009510: 6865 636b 2220 7479 7065 3d22 7873 643a  heck\" type=\"xsd:\n-00009520: 626f 6f6c 6561 6e22 2075 7365 3d22 6f70  boolean\" use=\"op\n-00009530: 7469 6f6e 616c 223e 0a20 2020 2020 2020  tional\">.       \n-00009540: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00009550: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00009560: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00009570: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00009580: 2020 2020 2020 2020 2020 2020 2020 3c21                <!\n-00009590: 5b43 4441 5441 5b20 5468 6520 706f 6c69  [CDATA[ The poli\n-000095a0: 6379 2074 6f20 6170 706c 7920 7768 656e  cy to apply when\n-000095b0: 2063 6f6e 6e65 6374 696e 6720 746f 2063   connecting to c\n-000095c0: 6f6e 6669 6720 6365 6e74 6572 2066 6169  onfig center fai\n-000095d0: 6c73 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ls. ]]></xsd:doc\n-000095e0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-000095f0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00009600: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00009610: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00009620: 653e 0a20 2020 203c 2f78 7364 3a63 6f6d  e>.    </xsd:com\n-00009630: 706c 6578 5479 7065 3e0a 0a20 2020 203c  plexType>..    <\n-00009640: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n-00009650: 6e61 6d65 3d22 6d6f 6e69 746f 7254 7970  name=\"monitorTyp\n-00009660: 6522 3e0a 2020 2020 2020 2020 3c78 7364  e\">.        <xsd\n-00009670: 3a73 6571 7565 6e63 6520 6d69 6e4f 6363  :sequence minOcc\n-00009680: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n-00009690: 733d 2275 6e62 6f75 6e64 6564 223e 0a20  s=\"unbounded\">. \n-000096a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000096b0: 656c 656d 656e 7420 7265 663d 2270 6172  element ref=\"par\n-000096c0: 616d 6574 6572 2220 6d69 6e4f 6363 7572  ameter\" minOccur\n-000096d0: 733d 2230 2220 6d61 784f 6363 7572 733d  s=\"0\" maxOccurs=\n-000096e0: 2275 6e62 6f75 6e64 6564 222f 3e0a 2020  \"unbounded\"/>.  \n-000096f0: 2020 2020 2020 3c2f 7873 643a 7365 7175        </xsd:sequ\n-00009700: 656e 6365 3e0a 2020 2020 2020 2020 3c78  ence>.        <x\n-00009710: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00009720: 653d 2261 6464 7265 7373 2220 7479 7065  e=\"address\" type\n-00009730: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00009740: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00009750: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00009760: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009770: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00009780: 215b 4344 4154 415b 2054 6865 206d 6f6e  ![CDATA[ The mon\n-00009790: 6974 6f72 2061 6464 7265 7373 2e20 5d5d  itor address. ]]\n-000097a0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-000097b0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000097c0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-000097d0: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-000097e0: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n+00005f90: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00005fa0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00005fb0: 6e61 6d65 3d22 706f 7274 2220 7479 7065  name=\"port\" type\n+00005fc0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00005fd0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00005fe0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00005ff0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00006000: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00006010: 3e3c 215b 4344 4154 415b 2054 6865 2072  ><![CDATA[ The r\n+00006020: 6567 6973 7472 7920 6465 6661 756c 7420  egistry default \n+00006030: 706f 7274 2e20 5d5d 3e3c 2f78 7364 3a64  port. ]]></xsd:d\n+00006040: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00006050: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00006060: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00006070: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00006080: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00006090: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+000060a0: 616d 653d 2270 726f 746f 636f 6c22 2074  ame=\"protocol\" t\n+000060b0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+000060c0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000060d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000060e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000060f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00006100: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00006110: 6520 7265 6769 7374 7279 206c 6f6f 6b75  e registry looku\n+00006120: 7020 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c  p protocol. ]]><\n+00006130: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00006140: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006150: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00006160: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00006170: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00006180: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00006190: 6275 7465 206e 616d 653d 2275 7365 726e  bute name=\"usern\n+000061a0: 616d 6522 2074 7970 653d 2278 7364 3a73  ame\" type=\"xsd:s\n+000061b0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+000061c0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000061d0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000061e0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+000061f0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00006200: 5441 5b20 5468 6520 7265 6769 7374 7279  TA[ The registry\n+00006210: 2075 7365 726e 616d 652e 205d 5d3e 3c2f   username. ]]></\n+00006220: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00006230: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00006240: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00006250: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00006260: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00006270: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00006280: 7574 6520 6e61 6d65 3d22 7061 7373 776f  ute name=\"passwo\n+00006290: 7264 2220 7479 7065 3d22 7873 643a 7374  rd\" type=\"xsd:st\n+000062a0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000062b0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000062c0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000062d0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000062e0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000062f0: 415b 2054 6865 2072 6567 6973 7472 7920  A[ The registry \n+00006300: 7061 7373 776f 7264 2e20 5d5d 3e3c 2f78  password. ]]></x\n+00006310: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00006320: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00006330: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00006340: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00006350: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00006360: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00006370: 7465 206e 616d 653d 2274 7261 6e73 706f  te name=\"transpo\n+00006380: 7274 2220 7479 7065 3d22 7873 643a 7374  rt\" type=\"xsd:st\n+00006390: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000063a0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+000063b0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000063c0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000063d0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000063e0: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+000063f0: 7472 616e 7370 6f72 7465 7220 7479 7065  transporter type\n+00006400: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00006410: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00006420: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00006430: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006440: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00006450: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00006460: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00006470: 2274 7261 6e73 706f 7274 6572 2220 7479  \"transporter\" ty\n+00006480: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00006490: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+000064a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000064b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000064c0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+000064d0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+000064e0: 2070 726f 746f 636f 6c20 7472 616e 7370   protocol transp\n+000064f0: 6f72 7465 7220 7479 7065 2e20 5d5d 3e3c  orter type. ]]><\n+00006500: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00006510: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006520: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00006530: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00006540: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00006550: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00006560: 6275 7465 206e 616d 653d 2273 6572 7665  bute name=\"serve\n+00006570: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+00006580: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00006590: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+000065a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000065b0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+000065c0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+000065d0: 5b20 5468 6520 7072 6f74 6f63 6f6c 2073  [ The protocol s\n+000065e0: 6572 7665 7220 7479 7065 2e20 5d5d 3e3c  erver type. ]]><\n+000065f0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00006600: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006610: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00006620: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00006630: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00006640: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00006650: 6275 7465 206e 616d 653d 2263 6c69 656e  bute name=\"clien\n+00006660: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n+00006670: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00006680: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00006690: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000066a0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+000066b0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+000066c0: 5b20 5468 6520 7072 6f74 6f63 6f6c 2063  [ The protocol c\n+000066d0: 6c69 656e 7420 7479 7065 2e20 5d5d 3e3c  lient type. ]]><\n+000066e0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+000066f0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006700: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00006710: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+00006720: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+00006730: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00006740: 6275 7465 206e 616d 653d 2263 6c75 7374  bute name=\"clust\n+00006750: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n+00006760: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00006770: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00006780: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00006790: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000067a0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000067b0: 415b 2054 6865 2072 6567 6973 7472 7920  A[ The registry \n+000067c0: 636c 7573 7465 7220 7479 7065 2e20 5d5d  cluster type. ]]\n+000067d0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+000067e0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000067f0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00006800: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00006810: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00006820: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00006830: 7269 6275 7465 206e 616d 653d 227a 6f6e  ribute name=\"zon\n+00006840: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n+00006850: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00006860: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00006870: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006880: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00006890: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+000068a0: 5b20 5468 6520 7265 6769 7374 7279 207a  [ The registry z\n+000068b0: 6f6e 6520 7479 7065 2e20 5d5d 3e3c 2f78  one type. ]]></x\n+000068c0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000068d0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000068e0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+000068f0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00006900: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00006910: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00006920: 7465 206e 616d 653d 2266 6f72 6b73 2220  te name=\"forks\" \n+00006930: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00006940: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00006950: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00006960: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00006970: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00006980: 7469 6f6e 3e3c 215b 4344 4154 415b 2046  tion><![CDATA[ F\n+00006990: 6f72 6b69 6e67 436c 7573 7465 7220 666f  orkingCluster fo\n+000069a0: 726b 732e 205d 5d3e 3c2f 7873 643a 646f  rks. ]]></xsd:do\n+000069b0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+000069c0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000069d0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000069e0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+000069f0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00006a00: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00006a10: 6d65 3d22 6772 6f75 7022 2074 7970 653d  me=\"group\" type=\n+00006a20: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00006a30: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00006a40: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00006a50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00006a60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00006a70: 3c21 5b43 4441 5441 5b20 5468 6520 7265  <![CDATA[ The re\n+00006a80: 6769 7374 7279 2067 726f 7570 2e20 5d5d  gistry group. ]]\n+00006a90: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00006aa0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00006ab0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00006ac0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+00006ad0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+00006ae0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00006af0: 7269 6275 7465 206e 616d 653d 2276 6572  ribute name=\"ver\n+00006b00: 7369 6f6e 2220 7479 7065 3d22 7873 643a  sion\" type=\"xsd:\n+00006b10: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+00006b20: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00006b30: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00006b40: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00006b50: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00006b60: 4154 415b 2054 6865 2072 6567 6973 7472  ATA[ The registr\n+00006b70: 7920 7665 7273 696f 6e2e 205d 5d3e 3c2f  y version. ]]></\n+00006b80: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00006b90: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00006ba0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00006bb0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00006bc0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00006bd0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00006be0: 7574 6520 6e61 6d65 3d22 7469 6d65 6f75  ute name=\"timeou\n+00006bf0: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n+00006c00: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00006c10: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00006c20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00006c30: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00006c40: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00006c50: 5b20 5468 6520 7265 7175 6573 7420 7469  [ The request ti\n+00006c60: 6d65 6f75 742e 205d 5d3e 3c2f 7873 643a  meout. ]]></xsd:\n+00006c70: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00006c80: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00006c90: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00006ca0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00006cb0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00006cc0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00006cd0: 6e61 6d65 3d22 7365 7373 696f 6e22 2074  name=\"session\" t\n+00006ce0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00006cf0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00006d00: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00006d10: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00006d20: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00006d30: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00006d40: 6520 7365 7373 696f 6e20 7469 6d65 6f75  e session timeou\n+00006d50: 742e 205d 5d3e 3c2f 7873 643a 646f 6375  t. ]]></xsd:docu\n+00006d60: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00006d70: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00006d80: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00006d90: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00006da0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00006db0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00006dc0: 3d22 6669 6c65 2220 7479 7065 3d22 7873  =\"file\" type=\"xs\n+00006dd0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00006de0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00006df0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00006e00: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00006e10: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00006e20: 4344 4154 415b 2054 6865 2072 6567 6973  CDATA[ The regis\n+00006e30: 7472 7920 6164 6464 7265 7373 2066 696c  try adddress fil\n+00006e40: 6520 7374 6f72 652e 205d 5d3e 3c2f 7873  e store. ]]></xs\n+00006e50: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00006e60: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00006e70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00006e80: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00006e90: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00006ea0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00006eb0: 6520 6e61 6d65 3d22 7761 6974 2220 7479  e name=\"wait\" ty\n+00006ec0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00006ed0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00006ee0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00006ef0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00006f00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00006f10: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00006f20: 2077 6169 7420 7469 6d65 2066 6f72 2073   wait time for s\n+00006f30: 6875 7464 6f77 6e2e 205d 5d3e 3c2f 7873  hutdown. ]]></xs\n+00006f40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00006f50: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00006f60: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00006f70: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00006f80: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00006f90: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00006fa0: 6520 6e61 6d65 3d22 6368 6563 6b22 2074  e name=\"check\" t\n+00006fb0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00006fc0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00006fd0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00006fe0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00006ff0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00007000: 696f 6e3e 3c21 5b43 4441 5441 5b20 4368  ion><![CDATA[ Ch\n+00007010: 6563 6b20 7265 6769 7374 7279 2073 7461  eck registry sta\n+00007020: 7475 7320 6f6e 2073 7472 6174 7570 2e20  tus on stratup. \n+00007030: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00007040: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00007050: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00007060: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00007070: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00007080: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00007090: 7474 7269 6275 7465 206e 616d 653d 2264  ttribute name=\"d\n+000070a0: 796e 616d 6963 2220 7479 7065 3d22 7873  ynamic\" type=\"xs\n+000070b0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+000070c0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+000070d0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000070e0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+000070f0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00007100: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007110: 2020 203c 215b 4344 4154 415b 2074 6865     <![CDATA[ the\n+00007120: 2073 6572 7669 6365 2072 6567 6973 7465   service registe\n+00007130: 7265 6420 746f 2074 6869 7320 7265 6769  red to this regi\n+00007140: 7374 7279 2069 7320 6479 6e61 6d69 6328  stry is dynamic(\n+00007150: 7472 7565 2920 6f72 2073 7461 7469 6328  true) or static(\n+00007160: 6661 6c73 6529 2e20 5d5d 3e3c 2f78 7364  false). ]]></xsd\n+00007170: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00007180: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00007190: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000071a0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+000071b0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+000071c0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+000071d0: 206e 616d 653d 2272 6567 6973 7465 7222   name=\"register\"\n+000071e0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+000071f0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00007200: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00007210: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00007220: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00007230: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00007240: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n+00007250: 4441 5441 5b20 7265 6769 7374 6572 2073  DATA[ register s\n+00007260: 6572 7669 6365 2074 6f20 7468 6973 2072  ervice to this r\n+00007270: 6567 6973 7472 7928 7472 7565 2920 6f72  egistry(true) or\n+00007280: 206e 6f74 2866 616c 7365 292e 205d 5d3e   not(false). ]]>\n+00007290: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+000072a0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000072b0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000072c0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000072d0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000072e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000072f0: 6962 7574 6520 6e61 6d65 3d22 7375 6273  ibute name=\"subs\n+00007300: 6372 6962 6522 2074 7970 653d 2278 7364  cribe\" type=\"xsd\n+00007310: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00007320: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00007330: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00007340: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00007350: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00007360: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00007370: 2020 3c21 5b43 4441 5441 5b20 7375 6273    <![CDATA[ subs\n+00007380: 6372 6962 6520 7365 7276 6963 6520 746f  cribe service to\n+00007390: 2074 6869 7320 7265 6769 7374 7279 2874   this registry(t\n+000073a0: 7275 6529 206f 7220 6e6f 7428 6661 6c73  rue) or not(fals\n+000073b0: 6529 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  e). ]]></xsd:doc\n+000073c0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000073d0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000073e0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000073f0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00007400: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00007410: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00007420: 653d 2264 6566 6175 6c74 2220 7479 7065  e=\"default\" type\n+00007430: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00007440: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00007450: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00007460: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00007470: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00007480: 3e3c 215b 4344 4154 415b 2049 7320 6465  ><![CDATA[ Is de\n+00007490: 6661 756c 742e 205d 5d3e 3c2f 7873 643a  fault. ]]></xsd:\n+000074a0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+000074b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000074c0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000074d0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000074e0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000074f0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00007500: 6e61 6d65 3d22 7369 6d70 6c69 6669 6564  name=\"simplified\n+00007510: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n+00007520: 6561 6e22 3e0d 0a20 2020 2020 2020 2020  ean\">..         \n+00007530: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00007540: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00007550: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00007560: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00007570: 5b20 4973 2073 696d 706c 652e 205d 5d3e  [ Is simple. ]]>\n+00007580: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00007590: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000075a0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000075b0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000075c0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000075d0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000075e0: 6962 7574 6520 6e61 6d65 3d22 6578 7472  ibute name=\"extr\n+000075f0: 612d 6b65 7973 2220 7479 7065 3d22 7873  a-keys\" type=\"xs\n+00007600: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00007610: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00007620: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00007630: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00007640: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00007650: 4344 4154 415b 2045 7874 7261 2050 6172  CDATA[ Extra Par\n+00007660: 616d 6574 6572 204b 6579 732e 205d 5d3e  ameter Keys. ]]>\n+00007670: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00007680: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00007690: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000076a0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000076b0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+000076c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+000076d0: 6962 7574 6520 6e61 6d65 3d22 7573 652d  ibute name=\"use-\n+000076e0: 6173 2d63 6f6e 6669 672d 6365 6e74 6572  as-config-center\n+000076f0: 2220 7479 7065 3d22 7873 643a 626f 6f6c  \" type=\"xsd:bool\n+00007700: 6561 6e22 3e0d 0a20 2020 2020 2020 2020  ean\">..         \n+00007710: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00007720: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00007730: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00007740: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00007750: 5b20 776f 726b 2061 7320 636f 6e66 6967  [ work as config\n+00007760: 2063 656e 7465 7220 6f72 206e 6f74 2e20   center or not. \n+00007770: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00007780: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00007790: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+000077a0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000077b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+000077c0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+000077d0: 7474 7269 6275 7465 206e 616d 653d 2275  ttribute name=\"u\n+000077e0: 7365 2d61 732d 6d65 7461 6461 7461 2d63  se-as-metadata-c\n+000077f0: 656e 7465 7222 2074 7970 653d 2278 7364  enter\" type=\"xsd\n+00007800: 3a62 6f6f 6c65 616e 223e 0d0a 2020 2020  :boolean\">..    \n+00007810: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00007820: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00007830: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00007840: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00007850: 4344 4154 415b 2077 6f72 6b20 6173 206d  CDATA[ work as m\n+00007860: 6574 6164 6174 6120 6365 6e74 6572 206f  etadata center o\n+00007870: 7220 6e6f 742e 205d 5d3e 3c2f 7873 643a  r not. ]]></xsd:\n+00007880: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00007890: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000078a0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000078b0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000078c0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000078d0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000078e0: 6e61 6d65 3d22 6163 6365 7074 7322 2074  name=\"accepts\" t\n+000078f0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00007900: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00007910: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00007920: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00007930: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00007940: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00007950: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+00007960: 5441 5b20 6c69 7374 206f 6620 7270 6320  TA[ list of rpc \n+00007970: 7072 6f74 6f63 6f6c 7320 6163 6365 7074  protocols accept\n+00007980: 6564 2062 7920 7468 6973 2072 6567 6973  ed by this regis\n+00007990: 7472 792c 2073 6570 6172 6174 6564 2077  try, separated w\n+000079a0: 6974 6820 222c 222e 205d 5d3e 3c2f 7873  ith \",\". ]]></xs\n+000079b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000079c0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+000079d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000079e0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+000079f0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00007a00: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00007a10: 6520 6e61 6d65 3d22 7072 6566 6572 7265  e name=\"preferre\n+00007a20: 6422 2074 7970 653d 2278 7364 3a62 6f6f  d\" type=\"xsd:boo\n+00007a30: 6c65 616e 223e 0d0a 2020 2020 2020 2020  lean\">..        \n+00007a40: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00007a50: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00007a60: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00007a70: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00007a80: 415b 2049 7320 7468 6973 2072 6567 6973  A[ Is this regis\n+00007a90: 7472 7920 7468 6520 7072 6566 6572 7265  try the preferre\n+00007aa0: 6420 6f6e 652e 205d 5d3e 3c2f 7873 643a  d one. ]]></xsd:\n+00007ab0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00007ac0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00007ad0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00007ae0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00007af0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00007b00: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00007b10: 6e61 6d65 3d22 7765 6967 6874 2220 7479  name=\"weight\" ty\n+00007b20: 7065 3d22 7873 643a 696e 7465 6765 7222  pe=\"xsd:integer\"\n+00007b30: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00007b40: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00007b50: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00007b60: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00007b70: 696f 6e3e 3c21 5b43 4441 5441 5b20 7765  ion><![CDATA[ we\n+00007b80: 6967 6874 206f 6620 7265 6769 7374 7279  ight of registry\n+00007b90: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00007ba0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00007bb0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00007bc0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00007bd0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00007be0: 653e 0d0a 2020 2020 3c2f 7873 643a 636f  e>..    </xsd:co\n+00007bf0: 6d70 6c65 7854 7970 653e 0d0a 0d0a 2020  mplexType>....  \n+00007c00: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n+00007c10: 7065 206e 616d 653d 226d 6574 6164 6174  pe name=\"metadat\n+00007c20: 6152 6570 6f72 7454 7970 6522 3e0d 0a20  aReportType\">.. \n+00007c30: 2020 2020 2020 203c 7873 643a 7365 7175         <xsd:sequ\n+00007c40: 656e 6365 206d 696e 4f63 6375 7273 3d22  ence minOccurs=\"\n+00007c50: 3022 206d 6178 4f63 6375 7273 3d22 756e  0\" maxOccurs=\"un\n+00007c60: 626f 756e 6465 6422 3e0d 0a20 2020 2020  bounded\">..     \n+00007c70: 2020 2020 2020 203c 7873 643a 656c 656d         <xsd:elem\n+00007c80: 656e 7420 7265 663d 2270 6172 616d 6574  ent ref=\"paramet\n+00007c90: 6572 2220 6d69 6e4f 6363 7572 733d 2230  er\" minOccurs=\"0\n+00007ca0: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n+00007cb0: 6f75 6e64 6564 222f 3e0d 0a20 2020 2020  ounded\"/>..     \n+00007cc0: 2020 203c 2f78 7364 3a73 6571 7565 6e63     </xsd:sequenc\n+00007cd0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00007ce0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00007cf0: 2269 6422 2074 7970 653d 2278 7364 3a49  \"id\" type=\"xsd:I\n+00007d00: 4422 3e0d 0a20 2020 2020 2020 2020 2020  D\">..           \n+00007d10: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00007d20: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00007d30: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00007d40: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00007d50: 5468 6520 756e 6971 7565 2069 6465 6e74  The unique ident\n+00007d60: 6966 6965 7220 666f 7220 6120 6265 616e  ifier for a bean\n+00007d70: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00007d80: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00007d90: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00007da0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00007db0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00007dc0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00007dd0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00007de0: 2261 6464 7265 7373 2220 7479 7065 3d22  \"address\" type=\"\n+00007df0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n+00007e00: 226f 7074 696f 6e61 6c22 3e0d 0a20 2020  \"optional\">..   \n+00007e10: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00007e20: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00007e30: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00007e40: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00007e50: 5b43 4441 5441 5b20 5468 6520 6d65 7461  [CDATA[ The meta\n+00007e60: 6461 7461 5265 706f 7274 2061 6464 7265  dataReport addre\n+00007e70: 7373 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ss. ]]></xsd:doc\n+00007e80: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00007e90: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00007ea0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00007eb0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00007ec0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00007ed0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00007ee0: 653d 2275 7365 726e 616d 6522 2074 7970  e=\"username\" typ\n+00007ef0: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n+00007f00: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+00007f10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00007f20: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00007f30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00007f40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00007f50: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n+00007f60: 6574 6164 6174 6152 6570 6f72 7420 7573  etadataReport us\n+00007f70: 6572 6e61 6d65 2e20 5d5d 3e3c 2f78 7364  ername. ]]></xsd\n+00007f80: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00007f90: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00007fa0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00007fb0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00007fc0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00007fd0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00007fe0: 206e 616d 653d 2270 6173 7377 6f72 6422   name=\"password\"\n+00007ff0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00008000: 6722 2075 7365 3d22 6f70 7469 6f6e 616c  g\" use=\"optional\n+00008010: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00008020: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00008030: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00008040: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00008050: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00008060: 6865 206d 6574 6164 6174 6152 6570 6f72  he metadataRepor\n+00008070: 7420 7061 7373 776f 7264 2e20 5d5d 3e3c  t password. ]]><\n+00008080: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00008090: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000080a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000080b0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+000080c0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000080d0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000080e0: 6275 7465 206e 616d 653d 2274 696d 656f  bute name=\"timeo\n+000080f0: 7574 2220 7479 7065 3d22 7873 643a 7374  ut\" type=\"xsd:st\n+00008100: 7269 6e67 2220 7573 653d 226f 7074 696f  ring\" use=\"optio\n+00008110: 6e61 6c22 3e0d 0a20 2020 2020 2020 2020  nal\">..         \n+00008120: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00008130: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00008140: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00008150: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00008160: 5b20 5468 6520 7265 7175 6573 7420 7469  [ The request ti\n+00008170: 6d65 6f75 742e 205d 5d3e 3c2f 7873 643a  meout. ]]></xsd:\n+00008180: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00008190: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000081a0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000081b0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+000081c0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+000081d0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+000081e0: 6e61 6d65 3d22 6772 6f75 7022 2074 7970  name=\"group\" typ\n+000081f0: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n+00008200: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+00008210: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008220: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00008230: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00008240: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00008250: 3e3c 215b 4344 4154 415b 2054 6865 2067  ><![CDATA[ The g\n+00008260: 726f 7570 206f 6620 6d65 7461 6461 7461  roup of metadata\n+00008270: 2d72 6570 6f72 742e 205d 5d3e 3c2f 7873  -report. ]]></xs\n+00008280: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00008290: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+000082a0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000082b0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+000082c0: 7474 7269 6275 7465 3e0d 0a0d 0a20 2020  ttribute>....   \n+000082d0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+000082e0: 7574 6520 6e61 6d65 3d22 7265 7472 792d  ute name=\"retry-\n+000082f0: 7469 6d65 7322 2074 7970 653d 2278 7364  times\" type=\"xsd\n+00008300: 3a69 6e74 6567 6572 2220 7573 653d 226f  :integer\" use=\"o\n+00008310: 7074 696f 6e61 6c22 3e0d 0a20 2020 2020  ptional\">..     \n+00008320: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00008330: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00008340: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00008350: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00008360: 4441 5441 5b20 6966 2066 6169 6c2c 2072  DATA[ if fail, r\n+00008370: 6574 7279 2074 696d 6573 2e20 5d5d 3e3c  etry times. ]]><\n+00008380: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00008390: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000083a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000083b0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+000083c0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000083d0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000083e0: 6275 7465 206e 616d 653d 2272 6574 7279  bute name=\"retry\n+000083f0: 2d70 6572 696f 6422 2074 7970 653d 2278  -period\" type=\"x\n+00008400: 7364 3a69 6e74 6567 6572 2220 7573 653d  sd:integer\" use=\n+00008410: 226f 7074 696f 6e61 6c22 3e0d 0a20 2020  \"optional\">..   \n+00008420: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00008430: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00008440: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00008450: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00008460: 5b43 4441 5441 5b20 6966 2066 6169 6c2c  [CDATA[ if fail,\n+00008470: 2072 6574 7279 2070 6572 696f 642e 205d   retry period. ]\n+00008480: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+00008490: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000084a0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000084b0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+000084c0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+000084d0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+000084e0: 7472 6962 7574 6520 6e61 6d65 3d22 6379  tribute name=\"cy\n+000084f0: 636c 652d 7265 706f 7274 2220 7479 7065  cle-report\" type\n+00008500: 3d22 7873 643a 626f 6f6c 6561 6e22 2075  =\"xsd:boolean\" u\n+00008510: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+00008520: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008530: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00008540: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00008550: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00008560: 3e3c 215b 4344 4154 415b 2072 6570 6f72  ><![CDATA[ repor\n+00008570: 7420 6379 636c 656c 792e 205d 5d3e 3c2f  t cyclely. ]]></\n+00008580: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008590: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000085a0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000085b0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+000085c0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+000085d0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+000085e0: 7574 6520 6e61 6d65 3d22 7379 6e63 2d72  ute name=\"sync-r\n+000085f0: 6570 6f72 7422 2074 7970 653d 2278 7364  eport\" type=\"xsd\n+00008600: 3a62 6f6f 6c65 616e 2220 7573 653d 226f  :boolean\" use=\"o\n+00008610: 7074 696f 6e61 6c22 3e0d 0a20 2020 2020  ptional\">..     \n+00008620: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00008630: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00008640: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00008650: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00008660: 4441 5441 5b20 5379 6e63 206f 7220 4173  DATA[ Sync or As\n+00008670: 796e 6320 7265 706f 7274 2e20 5d5d 3e3c  ync report. ]]><\n+00008680: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00008690: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000086a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000086b0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+000086c0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000086d0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+000086e0: 6275 7465 206e 616d 653d 2263 6c75 7374  bute name=\"clust\n+000086f0: 6572 2220 7479 7065 3d22 7873 643a 626f  er\" type=\"xsd:bo\n+00008700: 6f6c 6561 6e22 2075 7365 3d22 6f70 7469  olean\" use=\"opti\n+00008710: 6f6e 616c 223e 0d0a 2020 2020 2020 2020  onal\">..        \n+00008720: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00008730: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00008740: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00008750: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00008760: 415b 204e 6565 6420 636c 7573 7465 7220  A[ Need cluster \n+00008770: 7375 7070 6f72 742c 2064 6566 6175 6c74  support, default\n+00008780: 2066 616c 7365 2e20 5d5d 3e3c 2f78 7364   false. ]]></xsd\n+00008790: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+000087a0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+000087b0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000087c0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+000087d0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+000087e0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+000087f0: 206e 616d 653d 2272 6567 6973 7472 7922   name=\"registry\"\n+00008800: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00008810: 6722 2075 7365 3d22 6f70 7469 6f6e 616c  g\" use=\"optional\n+00008820: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00008830: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00008840: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00008850: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00008860: 7469 6f6e 3e3c 215b 4344 4154 415b 2072  tion><![CDATA[ r\n+00008870: 6567 6973 7472 7920 636f 6e66 6967 2069  egistry config i\n+00008880: 642e 205d 5d3e 3c2f 7873 643a 646f 6375  d. ]]></xsd:docu\n+00008890: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000088a0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000088b0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000088c0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000088d0: 7465 3e0d 0a20 2020 203c 2f78 7364 3a63  te>..    </xsd:c\n+000088e0: 6f6d 706c 6578 5479 7065 3e0d 0a0d 0a20  omplexType>.... \n+000088f0: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n+00008900: 7970 6520 6e61 6d65 3d22 636f 6e66 6967  ype name=\"config\n+00008910: 4365 6e74 6572 5479 7065 223e 0d0a 2020  CenterType\">..  \n+00008920: 2020 2020 2020 3c78 7364 3a73 6571 7565        <xsd:seque\n+00008930: 6e63 6520 6d69 6e4f 6363 7572 733d 2230  nce minOccurs=\"0\n+00008940: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n+00008950: 6f75 6e64 6564 223e 0d0a 2020 2020 2020  ounded\">..      \n+00008960: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+00008970: 6e74 2072 6566 3d22 7061 7261 6d65 7465  nt ref=\"paramete\n+00008980: 7222 206d 696e 4f63 6375 7273 3d22 3022  r\" minOccurs=\"0\"\n+00008990: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+000089a0: 756e 6465 6422 2f3e 0d0a 2020 2020 2020  unded\"/>..      \n+000089b0: 2020 3c2f 7873 643a 7365 7175 656e 6365    </xsd:sequence\n+000089c0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+000089d0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000089e0: 7072 6f74 6f63 6f6c 2220 7479 7065 3d22  protocol\" type=\"\n+000089f0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00008a00: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00008a10: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00008a20: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008a30: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00008a40: 215b 4344 4154 415b 2054 6865 2063 6f6e  ![CDATA[ The con\n+00008a50: 6669 6720 6365 6e74 6572 2070 726f 746f  fig center proto\n+00008a60: 636f 6c2e 205d 5d3e 3c2f 7873 643a 646f  col. ]]></xsd:do\n+00008a70: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00008a80: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00008a90: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00008aa0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00008ab0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00008ac0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00008ad0: 6d65 3d22 6164 6472 6573 7322 2074 7970  me=\"address\" typ\n+00008ae0: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n+00008af0: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+00008b00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00008b10: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00008b20: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00008b30: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00008b40: 3e3c 215b 4344 4154 415b 2054 6865 2063  ><![CDATA[ The c\n+00008b50: 6f6e 6669 6720 6365 6e74 6572 2061 6464  onfig center add\n+00008b60: 7265 7373 2e20 5d5d 3e3c 2f78 7364 3a64  ress. ]]></xsd:d\n+00008b70: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00008b80: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00008b90: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00008ba0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00008bb0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00008bc0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00008bd0: 616d 653d 2263 6c75 7374 6572 2220 7479  ame=\"cluster\" ty\n+00008be0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+00008bf0: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+00008c00: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00008c10: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00008c20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00008c30: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008c40: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008c50: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00008c60: 5b20 5468 6520 636f 6e66 6967 2063 656e  [ The config cen\n+00008c70: 7465 7220 636c 7573 7465 722c 2069 7427  ter cluster, it'\n+00008c80: 7320 7265 616c 206d 6561 6e69 6e67 206d  s real meaning m\n+00008c90: 6179 2076 6572 7920 6f6e 2064 6966 6665  ay very on diffe\n+00008ca0: 7265 6e74 2043 6f6e 6669 6720 4365 6e74  rent Config Cent\n+00008cb0: 6572 2070 726f 6475 6374 732e 205d 5d3e  er products. ]]>\n+00008cc0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+00008cd0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00008ce0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00008cf0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+00008d00: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00008d10: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00008d20: 6962 7574 6520 6e61 6d65 3d22 6e61 6d65  ibute name=\"name\n+00008d30: 7370 6163 6522 2074 7970 653d 2278 7364  space\" type=\"xsd\n+00008d40: 3a73 7472 696e 6722 2075 7365 3d22 6f70  :string\" use=\"op\n+00008d50: 7469 6f6e 616c 223e 0d0a 2020 2020 2020  tional\">..      \n+00008d60: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00008d70: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00008d80: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00008d90: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00008da0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00008db0: 203c 215b 4344 4154 415b 2054 6865 206e   <![CDATA[ The n\n+00008dc0: 616d 6573 7061 6365 206f 6620 7468 6520  amespace of the \n+00008dd0: 636f 6e66 6967 2063 656e 7465 722c 2067  config center, g\n+00008de0: 656e 6572 616c 6c79 2069 7427 7320 7573  enerally it's us\n+00008df0: 6564 2066 6f72 206d 756c 7469 2d74 656e  ed for multi-ten\n+00008e00: 616e 742c 2062 7574 2069 7427 7320 7265  ant, but it's re\n+00008e10: 616c 206d 6561 6e69 6e67 2064 6570 656e  al meaning depen\n+00008e20: 6473 206f 6e20 7468 6520 6163 7475 616c  ds on the actual\n+00008e30: 2043 6f6e 6669 6720 4365 6e74 6572 2079   Config Center y\n+00008e40: 6f75 2075 7365 2e20 5d5d 3e3c 2f78 7364  ou use. ]]></xsd\n+00008e50: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00008e60: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+00008e70: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00008e80: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00008e90: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00008ea0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+00008eb0: 206e 616d 653d 2267 726f 7570 2220 7479   name=\"group\" ty\n+00008ec0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n+00008ed0: 7573 653d 226f 7074 696f 6e61 6c22 3e0d  use=\"optional\">.\n+00008ee0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00008ef0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00008f00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00008f10: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00008f20: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00008f30: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+00008f40: 5b20 5468 6520 6772 6f75 7020 6f66 2074  [ The group of t\n+00008f50: 6865 2063 6f6e 6669 6720 6365 6e74 6572  he config center\n+00008f60: 2c20 6765 6e65 7261 6c6c 7920 6974 2773  , generally it's\n+00008f70: 2075 7365 6420 746f 2069 6465 6e74 6966   used to identif\n+00008f80: 7920 616e 2069 736f 6c61 7465 6420 7370  y an isolated sp\n+00008f90: 6163 6520 666f 7220 6120 6261 7463 6820  ace for a batch \n+00008fa0: 6f66 2063 6f6e 6669 6720 6974 656d 732c  of config items,\n+00008fb0: 2062 7574 2069 7427 7320 7265 616c 206d   but it's real m\n+00008fc0: 6561 6e69 6e67 2064 6570 656e 6473 206f  eaning depends o\n+00008fd0: 6e20 7468 6520 6163 7475 616c 2043 6f6e  n the actual Con\n+00008fe0: 6669 6720 4365 6e74 6572 2079 6f75 2075  fig Center you u\n+00008ff0: 7365 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  se. ]]></xsd:doc\n+00009000: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00009010: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00009020: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00009030: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00009040: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00009050: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00009060: 653d 2263 6f6e 6669 672d 6669 6c65 2220  e=\"config-file\" \n+00009070: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00009080: 2220 7573 653d 226f 7074 696f 6e61 6c22  \" use=\"optional\"\n+00009090: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000090a0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000090b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000090c0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+000090d0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000090e0: 6520 6b65 7920 7573 6564 2074 6f20 6765  e key used to ge\n+000090f0: 7420 7468 6520 636f 6e66 6967 7320 6174  t the configs at\n+00009100: 2073 7461 7274 7570 2e20 5d5d 3e3c 2f78   startup. ]]></x\n+00009110: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00009120: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00009130: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+00009140: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00009150: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00009160: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00009170: 7465 206e 616d 653d 2261 7070 2d63 6f6e  te name=\"app-con\n+00009180: 6669 672d 6669 6c65 2220 7479 7065 3d22  fig-file\" type=\"\n+00009190: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n+000091a0: 226f 7074 696f 6e61 6c22 3e0d 0a20 2020  \"optional\">..   \n+000091b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+000091c0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000091d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000091e0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+000091f0: 5b43 4441 5441 5b20 5468 6520 6b65 7920  [CDATA[ The key \n+00009200: 7573 6564 2074 6f20 6765 7420 7468 6520  used to get the \n+00009210: 636f 6e66 6967 7320 6174 2073 7461 7274  configs at start\n+00009220: 7570 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  up. ]]></xsd:doc\n+00009230: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00009240: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00009250: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00009260: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00009270: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00009280: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00009290: 653d 2275 7365 726e 616d 6522 2074 7970  e=\"username\" typ\n+000092a0: 653d 2278 7364 3a73 7472 696e 6722 2075  e=\"xsd:string\" u\n+000092b0: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+000092c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000092d0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000092e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000092f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00009300: 3e3c 215b 4344 4154 415b 2054 6865 2075  ><![CDATA[ The u\n+00009310: 7365 726e 616d 6520 666f 7220 4155 5448  sername for AUTH\n+00009320: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00009330: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00009340: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00009350: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00009360: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00009370: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+00009380: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00009390: 2270 6173 7377 6f72 6422 2074 7970 653d  \"password\" type=\n+000093a0: 2278 7364 3a73 7472 696e 6722 2075 7365  \"xsd:string\" use\n+000093b0: 3d22 6f70 7469 6f6e 616c 223e 0d0a 2020  =\"optional\">..  \n+000093c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+000093d0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000093e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000093f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00009400: 215b 4344 4154 415b 2054 6865 2070 6173  ![CDATA[ The pas\n+00009410: 7377 6f72 6420 666f 7220 4155 5448 2e20  sword for AUTH. \n+00009420: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00009430: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00009440: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00009450: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00009460: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00009470: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00009480: 7474 7269 6275 7465 206e 616d 653d 2274  ttribute name=\"t\n+00009490: 696d 656f 7574 2220 7479 7065 3d22 7873  imeout\" type=\"xs\n+000094a0: 643a 7374 7269 6e67 2220 7573 653d 226f  d:string\" use=\"o\n+000094b0: 7074 696f 6e61 6c22 3e0d 0a20 2020 2020  ptional\">..     \n+000094c0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+000094d0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000094e0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000094f0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00009500: 4441 5441 5b20 5468 6520 7265 7175 6573  DATA[ The reques\n+00009510: 7420 7469 6d65 6f75 742e 205d 5d3e 3c2f  t timeout. ]]></\n+00009520: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00009530: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00009540: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00009550: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+00009560: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00009570: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00009580: 7574 6520 6e61 6d65 3d22 6869 6768 6573  ute name=\"highes\n+00009590: 742d 7072 696f 7269 7479 2220 7479 7065  t-priority\" type\n+000095a0: 3d22 7873 643a 626f 6f6c 6561 6e22 2075  =\"xsd:boolean\" u\n+000095b0: 7365 3d22 6f70 7469 6f6e 616c 223e 0d0a  se=\"optional\">..\n+000095c0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000095d0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000095e0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+000095f0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00009600: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00009610: 2020 2020 2020 203c 215b 4344 4154 415b         <![CDATA[\n+00009620: 2057 6865 7468 6572 2074 6865 2063 6f6e   Whether the con\n+00009630: 6669 6773 2066 726f 6d20 636f 6e66 6967  figs from config\n+00009640: 2063 656e 7465 7220 6861 7320 7468 6520   center has the \n+00009650: 6869 6768 6573 7420 7072 696f 7269 7479  highest priority\n+00009660: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+00009670: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00009680: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00009690: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+000096a0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+000096b0: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+000096c0: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+000096d0: 2269 6e63 6c75 6465 2d73 7072 696e 672d  \"include-spring-\n+000096e0: 656e 7622 2074 7970 653d 2278 7364 3a62  env\" type=\"xsd:b\n+000096f0: 6f6f 6c65 616e 2220 7573 653d 226f 7074  oolean\" use=\"opt\n+00009700: 696f 6e61 6c22 3e0d 0a20 2020 2020 2020  ional\">..       \n+00009710: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00009720: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00009730: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00009740: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00009750: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00009760: 3c21 5b43 4441 5441 5b20 4c6f 6164 2074  <![CDATA[ Load t\n+00009770: 6865 2063 6f6e 6669 6720 6974 656d 7320  he config items \n+00009780: 6279 2044 7562 626f 2069 7473 656c 6620  by Dubbo itself \n+00009790: 6f72 2053 7072 696e 672e 205d 5d3e 3c2f  or Spring. ]]></\n+000097a0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000097b0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000097c0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000097d0: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+000097e0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n 000097f0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00009800: 7574 6520 6e61 6d65 3d22 7072 6f74 6f63  ute name=\"protoc\n-00009810: 6f6c 2220 7479 7065 3d22 7873 643a 7374  ol\" type=\"xsd:st\n-00009820: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00009830: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00009840: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00009850: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00009860: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00009870: 2054 6865 206d 6f6e 6974 6f72 2070 726f   The monitor pro\n-00009880: 746f 636f 6c2e 205d 5d3e 3c2f 7873 643a  tocol. ]]></xsd:\n-00009890: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-000098a0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-000098b0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000098c0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-000098d0: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-000098e0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-000098f0: 653d 2275 7365 726e 616d 6522 2074 7970  e=\"username\" typ\n-00009900: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-00009910: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009920: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00009930: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00009940: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009950: 3c21 5b43 4441 5441 5b20 5468 6520 6d6f  <![CDATA[ The mo\n-00009960: 6e69 746f 7220 7573 6572 6e61 6d65 2e20  nitor username. \n-00009970: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00009980: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00009990: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-000099a0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-000099b0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000099c0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-000099d0: 6962 7574 6520 6e61 6d65 3d22 7061 7373  ibute name=\"pass\n-000099e0: 776f 7264 2220 7479 7065 3d22 7873 643a  word\" type=\"xsd:\n-000099f0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00009a00: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00009a10: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00009a20: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00009a30: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00009a40: 415b 2054 6865 206d 6f6e 6974 6f72 2070  A[ The monitor p\n-00009a50: 6173 7377 6f72 642e 205d 5d3e 3c2f 7873  assword. ]]></xs\n-00009a60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009a70: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00009a80: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00009a90: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00009aa0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00009ab0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00009ac0: 616d 653d 2267 726f 7570 2220 7479 7065  ame=\"group\" type\n-00009ad0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00009ae0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00009af0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00009b00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009b10: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00009b20: 215b 4344 4154 415b 2054 6865 206d 6f6e  ![CDATA[ The mon\n-00009b30: 6974 6f72 2067 726f 7570 2e20 5d5d 3e3c  itor group. ]]><\n-00009b40: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00009b50: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00009b60: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00009b70: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00009b80: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00009b90: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00009ba0: 6520 6e61 6d65 3d22 7665 7273 696f 6e22  e name=\"version\"\n-00009bb0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00009bc0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00009bd0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00009be0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00009bf0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00009c00: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-00009c10: 6520 6d6f 6e69 746f 7220 7665 7273 696f  e monitor versio\n-00009c20: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n-00009c30: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-00009c40: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00009c50: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00009c60: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-00009c70: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00009c80: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n-00009c90: 6e74 6572 7661 6c22 2074 7970 653d 2278  nterval\" type=\"x\n-00009ca0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00009cb0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00009cc0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00009cd0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00009ce0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00009cf0: 4441 5441 5b20 5468 6520 6d6f 6e69 746f  DATA[ The monito\n-00009d00: 7220 696e 7465 7276 616c 2e20 5d5d 3e3c  r interval. ]]><\n-00009d10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00009d20: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00009d30: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00009d40: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00009d50: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00009d60: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00009d70: 6520 6e61 6d65 3d22 6465 6661 756c 7422  e name=\"default\"\n-00009d80: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-00009d90: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-00009da0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00009db0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00009dc0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-00009dd0: 696f 6e3e 3c21 5b43 4441 5441 5b20 4973  ion><![CDATA[ Is\n-00009de0: 2064 6566 6175 6c74 2e20 5d5d 3e3c 2f78   default. ]]></x\n-00009df0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00009e00: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-00009e10: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00009e20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-00009e30: 7472 6962 7574 653e 0a20 2020 203c 2f78  tribute>.    </x\n-00009e40: 7364 3a63 6f6d 706c 6578 5479 7065 3e0a  sd:complexType>.\n-00009e50: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n-00009e60: 7854 7970 6520 6e61 6d65 3d22 7061 7261  xType name=\"para\n-00009e70: 6d65 7465 7254 7970 6522 3e0a 2020 2020  meterType\">.    \n-00009e80: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00009e90: 7465 206e 616d 653d 226b 6579 2220 7479  te name=\"key\" ty\n-00009ea0: 7065 3d22 7873 643a 7374 7269 6e67 2220  pe=\"xsd:string\" \n-00009eb0: 7573 653d 2272 6571 7569 7265 6422 3e0a  use=\"required\">.\n-00009ec0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00009ed0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00009ee0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-00009ef0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00009f00: 3c21 5b43 4441 5441 5b20 5468 6520 7061  <![CDATA[ The pa\n-00009f10: 7261 6d65 7465 7220 6b65 792e 205d 5d3e  rameter key. ]]>\n-00009f20: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00009f30: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00009f40: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-00009f50: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-00009f60: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00009f70: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-00009f80: 7465 206e 616d 653d 2276 616c 7565 2220  te name=\"value\" \n-00009f90: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-00009fa0: 2220 7573 653d 2272 6571 7569 7265 6422  \" use=\"required\"\n-00009fb0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00009fc0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00009fd0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00009fe0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00009ff0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000a000: 7061 7261 6d65 7465 7220 7661 6c75 652e  parameter value.\n-0000a010: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000a020: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000a030: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000a040: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000a050: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000a060: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000a070: 7269 6275 7465 206e 616d 653d 2268 6964  ribute name=\"hid\n-0000a080: 6522 2074 7970 653d 2278 7364 3a62 6f6f  e\" type=\"xsd:boo\n-0000a090: 6c65 616e 223e 0a20 2020 2020 2020 2020  lean\">.         \n-0000a0a0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000a0b0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000a0c0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-0000a0d0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-0000a0e0: 2048 6964 6520 7061 7261 6d65 7465 722e   Hide parameter.\n-0000a0f0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000a100: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000a110: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000a120: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000a130: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000a140: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n-0000a150: 7854 7970 653e 0a0a 2020 2020 3c78 7364  xType>..    <xsd\n-0000a160: 3a63 6f6d 706c 6578 5479 7065 206e 616d  :complexType nam\n-0000a170: 653d 226d 6574 7269 6373 5479 7065 223e  e=\"metricsType\">\n-0000a180: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000a190: 7472 6962 7574 6520 6e61 6d65 3d22 706f  tribute name=\"po\n-0000a1a0: 7274 2220 7479 7065 3d22 7873 643a 7374  rt\" type=\"xsd:st\n-0000a1b0: 7269 6e67 2220 7573 653d 2272 6571 7569  ring\" use=\"requi\n-0000a1c0: 7265 6422 3e0a 2020 2020 2020 2020 2020  red\">.          \n-0000a1d0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000a1e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000a1f0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000a200: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000a210: 5468 6520 6d65 7472 6963 7320 7365 7276  The metrics serv\n-0000a220: 6963 6520 706f 7274 2e20 5d5d 3e3c 2f78  ice port. ]]></x\n-0000a230: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000a240: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-0000a250: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000a260: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000a270: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-0000a280: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000a290: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n-0000a2a0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000a2b0: 2220 7573 653d 2272 6571 7569 7265 6422  \" use=\"required\"\n-0000a2c0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000a2d0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000a2e0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a2f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000a300: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000a310: 6d65 7472 6963 7320 7365 7276 6963 6520  metrics service \n-0000a320: 7072 6f74 6f63 6f6c 2e20 5d5d 3e3c 2f78  protocol. ]]></x\n-0000a330: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000a340: 3e0a 2020 2020 2020 2020 2020 2020 3c2f  >.            </\n-0000a350: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000a360: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000a370: 7472 6962 7574 653e 0a20 2020 203c 2f78  tribute>.    </x\n-0000a380: 7364 3a63 6f6d 706c 6578 5479 7065 3e0a  sd:complexType>.\n-0000a390: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n-0000a3a0: 7854 7970 6520 6e61 6d65 3d22 6d65 7468  xType name=\"meth\n-0000a3b0: 6f64 5479 7065 223e 0a20 2020 2020 2020  odType\">.       \n-0000a3c0: 203c 7873 643a 636f 6d70 6c65 7843 6f6e   <xsd:complexCon\n-0000a3d0: 7465 6e74 3e0a 2020 2020 2020 2020 2020  tent>.          \n-0000a3e0: 2020 3c78 7364 3a65 7874 656e 7369 6f6e    <xsd:extension\n-0000a3f0: 2062 6173 653d 2261 6273 7472 6163 744d   base=\"abstractM\n-0000a400: 6574 686f 6454 7970 6522 3e0a 2020 2020  ethodType\">.    \n-0000a410: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000a420: 3a63 686f 6963 6520 6d69 6e4f 6363 7572  :choice minOccur\n-0000a430: 733d 2230 2220 6d61 784f 6363 7572 733d  s=\"0\" maxOccurs=\n-0000a440: 2275 6e62 6f75 6e64 6564 223e 0a20 2020  \"unbounded\">.   \n-0000a450: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a460: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n-0000a470: 663d 2261 7267 756d 656e 7422 206d 696e  f=\"argument\" min\n-0000a480: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n-0000a490: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n-0000a4a0: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-0000a4b0: 2020 2020 2020 203c 7873 643a 656c 656d         <xsd:elem\n-0000a4c0: 656e 7420 7265 663d 2270 6172 616d 6574  ent ref=\"paramet\n-0000a4d0: 6572 2220 6d69 6e4f 6363 7572 733d 2230  er\" minOccurs=\"0\n-0000a4e0: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n-0000a4f0: 6f75 6e64 6564 222f 3e0a 2020 2020 2020  ounded\"/>.      \n-0000a500: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000a510: 6368 6f69 6365 3e0a 2020 2020 2020 2020  choice>.        \n-0000a520: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000a530: 7269 6275 7465 206e 616d 653d 226e 616d  ribute name=\"nam\n-0000a540: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-0000a550: 696e 6722 2075 7365 3d22 7265 7175 6972  ing\" use=\"requir\n-0000a560: 6564 223e 0a20 2020 2020 2020 2020 2020  ed\">.           \n-0000a570: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000a580: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000a590: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a5a0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000a5b0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000a5c0: 6865 206d 6574 686f 6420 6e61 6d65 2028  he method name (\n-0000a5d0: 6d65 7468 6f64 2e74 6f53 7472 696e 6728  method.toString(\n-0000a5e0: 2929 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  )). ]]></xsd:doc\n-0000a5f0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000a600: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a610: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000a620: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a630: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000a640: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000a650: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000a660: 6520 6e61 6d65 3d22 6578 6563 7574 6573  e name=\"executes\n-0000a670: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000a680: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000a690: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000a6a0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000a6b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a6c0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000a6d0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000a6e0: 6865 206d 6178 2061 6374 6976 6520 7265  he max active re\n-0000a6f0: 7175 6573 7473 2e20 5d5d 3e3c 2f78 7364  quests. ]]></xsd\n-0000a700: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000a710: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a720: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000a730: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000a740: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000a750: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000a760: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000a770: 6962 7574 6520 6e61 6d65 3d22 7374 6174  ibute name=\"stat\n-0000a780: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000a790: 6e67 2220 6465 6661 756c 743d 222d 3122  ng\" default=\"-1\"\n-0000a7a0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000a7b0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000a7c0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000a7d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000a7e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000a7f0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000a800: 6d65 7468 6f64 2070 6172 616d 6574 6572  method parameter\n-0000a810: 2069 6e64 6578 2066 6f72 2073 7461 7469   index for stati\n-0000a820: 7374 6963 732e 205d 5d3e 3c2f 7873 643a  stics. ]]></xsd:\n-0000a830: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000a840: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a850: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000a860: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000a870: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000a880: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-0000a890: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000a8a0: 6275 7465 206e 616d 653d 2272 6574 7279  bute name=\"retry\n-0000a8b0: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000a8c0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000a8d0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000a8e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000a8f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000a900: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000a910: 7469 6f6e 3e3c 215b 4344 4154 415b 2044  tion><![CDATA[ D\n-0000a920: 6570 7265 6361 7465 642e 2052 6570 6c61  eprecated. Repla\n-0000a930: 6365 2074 6f20 7265 7472 6965 732e 205d  ce to retries. ]\n-0000a940: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000a950: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000a960: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000a970: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n+00009800: 7574 6520 6e61 6d65 3d22 6368 6563 6b22  ute name=\"check\"\n+00009810: 2074 7970 653d 2278 7364 3a62 6f6f 6c65   type=\"xsd:boole\n+00009820: 616e 2220 7573 653d 226f 7074 696f 6e61  an\" use=\"optiona\n+00009830: 6c22 3e0d 0a20 2020 2020 2020 2020 2020  l\">..           \n+00009840: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00009850: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00009860: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00009870: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00009880: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n+00009890: 4441 5441 5b20 5468 6520 706f 6c69 6379  DATA[ The policy\n+000098a0: 2074 6f20 6170 706c 7920 7768 656e 2063   to apply when c\n+000098b0: 6f6e 6e65 6374 696e 6720 746f 2063 6f6e  onnecting to con\n+000098c0: 6669 6720 6365 6e74 6572 2066 6169 6c73  fig center fails\n+000098d0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+000098e0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+000098f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00009900: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00009910: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+00009920: 653e 0d0a 2020 2020 3c2f 7873 643a 636f  e>..    </xsd:co\n+00009930: 6d70 6c65 7854 7970 653e 0d0a 0d0a 2020  mplexType>....  \n+00009940: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n+00009950: 7065 206e 616d 653d 226d 6f6e 6974 6f72  pe name=\"monitor\n+00009960: 5479 7065 223e 0d0a 2020 2020 2020 2020  Type\">..        \n+00009970: 3c78 7364 3a73 6571 7565 6e63 6520 6d69  <xsd:sequence mi\n+00009980: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n+00009990: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n+000099a0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+000099b0: 3c78 7364 3a65 6c65 6d65 6e74 2072 6566  <xsd:element ref\n+000099c0: 3d22 7061 7261 6d65 7465 7222 206d 696e  =\"parameter\" min\n+000099d0: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n+000099e0: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n+000099f0: 2f3e 0d0a 2020 2020 2020 2020 3c2f 7873  />..        </xs\n+00009a00: 643a 7365 7175 656e 6365 3e0d 0a20 2020  d:sequence>..   \n+00009a10: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00009a20: 7574 6520 6e61 6d65 3d22 6164 6472 6573  ute name=\"addres\n+00009a30: 7322 2074 7970 653d 2278 7364 3a73 7472  s\" type=\"xsd:str\n+00009a40: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+00009a50: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00009a60: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00009a70: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00009a80: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00009a90: 5b20 5468 6520 6d6f 6e69 746f 7220 6164  [ The monitor ad\n+00009aa0: 6472 6573 732e 205d 5d3e 3c2f 7873 643a  dress. ]]></xsd:\n+00009ab0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00009ac0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00009ad0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00009ae0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00009af0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00009b00: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00009b10: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n+00009b20: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00009b30: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00009b40: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00009b50: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00009b60: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00009b70: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00009b80: 6865 206d 6f6e 6974 6f72 2070 726f 746f  he monitor proto\n+00009b90: 636f 6c2e 205d 5d3e 3c2f 7873 643a 646f  col. ]]></xsd:do\n+00009ba0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00009bb0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00009bc0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00009bd0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00009be0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00009bf0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00009c00: 6d65 3d22 7573 6572 6e61 6d65 2220 7479  me=\"username\" ty\n+00009c10: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00009c20: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00009c30: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00009c40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00009c50: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00009c60: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00009c70: 206d 6f6e 6974 6f72 2075 7365 726e 616d   monitor usernam\n+00009c80: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+00009c90: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00009ca0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00009cb0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00009cc0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00009cd0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+00009ce0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00009cf0: 3d22 7061 7373 776f 7264 2220 7479 7065  =\"password\" type\n+00009d00: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00009d10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00009d20: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00009d30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00009d40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00009d50: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n+00009d60: 6f6e 6974 6f72 2070 6173 7377 6f72 642e  onitor password.\n+00009d70: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00009d80: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00009d90: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00009da0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00009db0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00009dc0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00009dd0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00009de0: 6772 6f75 7022 2074 7970 653d 2278 7364  group\" type=\"xsd\n+00009df0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00009e00: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00009e10: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00009e20: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00009e30: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00009e40: 4441 5441 5b20 5468 6520 6d6f 6e69 746f  DATA[ The monito\n+00009e50: 7220 6772 6f75 702e 205d 5d3e 3c2f 7873  r group. ]]></xs\n+00009e60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00009e70: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00009e80: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00009e90: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00009ea0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00009eb0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00009ec0: 6520 6e61 6d65 3d22 7665 7273 696f 6e22  e name=\"version\"\n+00009ed0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00009ee0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00009ef0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00009f00: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00009f10: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00009f20: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00009f30: 5468 6520 6d6f 6e69 746f 7220 7665 7273  The monitor vers\n+00009f40: 696f 6e2e 205d 5d3e 3c2f 7873 643a 646f  ion. ]]></xsd:do\n+00009f50: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00009f60: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00009f70: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00009f80: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00009f90: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00009fa0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00009fb0: 6d65 3d22 696e 7465 7276 616c 2220 7479  me=\"interval\" ty\n+00009fc0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00009fd0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00009fe0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00009ff0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a000: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000a010: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000a020: 206d 6f6e 6974 6f72 2069 6e74 6572 7661   monitor interva\n+0000a030: 6c2e 205d 5d3e 3c2f 7873 643a 646f 6375  l. ]]></xsd:docu\n+0000a040: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000a050: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000a060: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000a070: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000a080: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000a090: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000a0a0: 3d22 6465 6661 756c 7422 2074 7970 653d  =\"default\" type=\n+0000a0b0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000a0c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000a0d0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000a0e0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000a0f0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000a100: 3c21 5b43 4441 5441 5b20 4973 2064 6566  <![CDATA[ Is def\n+0000a110: 6175 6c74 2e20 5d5d 3e3c 2f78 7364 3a64  ault. ]]></xsd:d\n+0000a120: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000a130: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000a140: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000a150: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000a160: 6962 7574 653e 0d0a 2020 2020 3c2f 7873  ibute>..    </xs\n+0000a170: 643a 636f 6d70 6c65 7854 7970 653e 0d0a  d:complexType>..\n+0000a180: 0d0a 2020 2020 3c78 7364 3a63 6f6d 706c  ..    <xsd:compl\n+0000a190: 6578 5479 7065 206e 616d 653d 2270 6172  exType name=\"par\n+0000a1a0: 616d 6574 6572 5479 7065 223e 0d0a 2020  ameterType\">..  \n+0000a1b0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000a1c0: 6275 7465 206e 616d 653d 226b 6579 2220  bute name=\"key\" \n+0000a1d0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000a1e0: 2220 7573 653d 2272 6571 7569 7265 6422  \" use=\"required\"\n+0000a1f0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000a200: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000a210: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000a220: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000a230: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000a240: 6520 7061 7261 6d65 7465 7220 6b65 792e  e parameter key.\n+0000a250: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000a260: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000a270: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+0000a280: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a290: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000a2a0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000a2b0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+0000a2c0: 7661 6c75 6522 2074 7970 653d 2278 7364  value\" type=\"xsd\n+0000a2d0: 3a73 7472 696e 6722 2075 7365 3d22 7265  :string\" use=\"re\n+0000a2e0: 7175 6972 6564 223e 0d0a 2020 2020 2020  quired\">..      \n+0000a2f0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000a300: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000a310: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000a320: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000a330: 4154 415b 2054 6865 2070 6172 616d 6574  ATA[ The paramet\n+0000a340: 6572 2076 616c 7565 2e20 5d5d 3e3c 2f78  er value. ]]></x\n+0000a350: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000a360: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000a370: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000a380: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000a390: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000a3a0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000a3b0: 7465 206e 616d 653d 2268 6964 6522 2074  te name=\"hide\" t\n+0000a3c0: 7970 653d 2278 7364 3a62 6f6f 6c65 616e  ype=\"xsd:boolean\n+0000a3d0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000a3e0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000a3f0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000a400: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000a410: 7469 6f6e 3e3c 215b 4344 4154 415b 2048  tion><![CDATA[ H\n+0000a420: 6964 6520 7061 7261 6d65 7465 722e 205d  ide parameter. ]\n+0000a430: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000a440: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000a450: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000a460: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000a470: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000a480: 0a20 2020 203c 2f78 7364 3a63 6f6d 706c  .    </xsd:compl\n+0000a490: 6578 5479 7065 3e0d 0a0d 0a20 2020 203c  exType>....    <\n+0000a4a0: 7873 643a 636f 6d70 6c65 7854 7970 6520  xsd:complexType \n+0000a4b0: 6e61 6d65 3d22 6d65 7472 6963 7354 7970  name=\"metricsTyp\n+0000a4c0: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+0000a4d0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000a4e0: 3d22 706f 7274 2220 7479 7065 3d22 7873  =\"port\" type=\"xs\n+0000a4f0: 643a 7374 7269 6e67 2220 7573 653d 2272  d:string\" use=\"r\n+0000a500: 6571 7569 7265 6422 3e0d 0a20 2020 2020  equired\">..     \n+0000a510: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000a520: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a530: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000a540: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000a550: 4441 5441 5b20 5468 6520 6d65 7472 6963  DATA[ The metric\n+0000a560: 7320 7365 7276 6963 6520 706f 7274 2e20  s service port. \n+0000a570: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000a580: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000a590: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000a5a0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000a5b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000a5c0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+0000a5d0: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n+0000a5e0: 726f 746f 636f 6c22 2074 7970 653d 2278  rotocol\" type=\"x\n+0000a5f0: 7364 3a73 7472 696e 6722 2075 7365 3d22  sd:string\" use=\"\n+0000a600: 7265 7175 6972 6564 223e 0d0a 2020 2020  required\">..    \n+0000a610: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000a620: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000a630: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000a640: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000a650: 4344 4154 415b 2054 6865 206d 6574 7269  CDATA[ The metri\n+0000a660: 6373 2073 6572 7669 6365 2070 726f 746f  cs service proto\n+0000a670: 636f 6c2e 205d 5d3e 3c2f 7873 643a 646f  col. ]]></xsd:do\n+0000a680: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000a690: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000a6a0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000a6b0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000a6c0: 6275 7465 3e0d 0a20 2020 203c 2f78 7364  bute>..    </xsd\n+0000a6d0: 3a63 6f6d 706c 6578 5479 7065 3e0d 0a0d  :complexType>...\n+0000a6e0: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n+0000a6f0: 7854 7970 6520 6e61 6d65 3d22 6d65 7468  xType name=\"meth\n+0000a700: 6f64 5479 7065 223e 0d0a 2020 2020 2020  odType\">..      \n+0000a710: 2020 3c78 7364 3a63 6f6d 706c 6578 436f    <xsd:complexCo\n+0000a720: 6e74 656e 743e 0d0a 2020 2020 2020 2020  ntent>..        \n+0000a730: 2020 2020 3c78 7364 3a65 7874 656e 7369      <xsd:extensi\n+0000a740: 6f6e 2062 6173 653d 2261 6273 7472 6163  on base=\"abstrac\n+0000a750: 744d 6574 686f 6454 7970 6522 3e0d 0a20  tMethodType\">.. \n+0000a760: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000a770: 7873 643a 6368 6f69 6365 206d 696e 4f63  xsd:choice minOc\n+0000a780: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+0000a790: 7273 3d22 756e 626f 756e 6465 6422 3e0d  rs=\"unbounded\">.\n+0000a7a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000a7b0: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n+0000a7c0: 7420 7265 663d 2261 7267 756d 656e 7422  t ref=\"argument\"\n+0000a7d0: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n+0000a7e0: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n+0000a7f0: 6465 6422 2f3e 0d0a 2020 2020 2020 2020  ded\"/>..        \n+0000a800: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000a810: 3a65 6c65 6d65 6e74 2072 6566 3d22 7061  :element ref=\"pa\n+0000a820: 7261 6d65 7465 7222 206d 696e 4f63 6375  rameter\" minOccu\n+0000a830: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n+0000a840: 3d22 756e 626f 756e 6465 6422 2f3e 0d0a  =\"unbounded\"/>..\n+0000a850: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a860: 3c2f 7873 643a 6368 6f69 6365 3e0d 0a20  </xsd:choice>.. \n+0000a870: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000a880: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000a890: 6d65 3d22 6e61 6d65 2220 7479 7065 3d22  me=\"name\" type=\"\n+0000a8a0: 7873 643a 7374 7269 6e67 2220 7573 653d  xsd:string\" use=\n+0000a8b0: 2272 6571 7569 7265 6422 3e0d 0a20 2020  \"required\">..   \n+0000a8c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000a8d0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000a8e0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000a8f0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000a900: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000a910: 5b43 4441 5441 5b20 5468 6520 6d65 7468  [CDATA[ The meth\n+0000a920: 6f64 206e 616d 6520 286d 6574 686f 642e  od name (method.\n+0000a930: 746f 5374 7269 6e67 2829 292e 205d 5d3e  toString()). ]]>\n+0000a940: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000a950: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000a960: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000a970: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n 0000a980: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000a990: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000a9a0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000a9b0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000a9c0: 653d 2272 656c 6961 626c 6522 2074 7970  e=\"reliable\" typ\n-0000a9d0: 653d 2278 7364 3a73 7472 696e 6722 2064  e=\"xsd:string\" d\n-0000a9e0: 6566 6175 6c74 3d22 6661 6c73 6522 3e0a  efault=\"false\">.\n-0000a9f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000aa00: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000aa10: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000aa20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000aa30: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000aa40: 3c21 5b43 4441 5441 5b20 4465 7072 6563  <![CDATA[ Deprec\n-0000aa50: 6174 6564 2e20 5265 706c 6163 6520 746f  ated. Replace to\n-0000aa60: 206e 6170 6f6c 6920 7072 6f74 6f63 6f6c   napoli protocol\n-0000aa70: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000aa80: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000aa90: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000aaa0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000aab0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000aac0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000aad0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000aae0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000aaf0: 6e61 6d65 3d22 6465 7072 6563 6174 6564  name=\"deprecated\n-0000ab00: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000ab10: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000ab20: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000ab30: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ab40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ab50: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000ab60: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000ab70: 6865 206d 6574 686f 6420 6465 7072 6563  he method deprec\n-0000ab80: 6174 6564 2e20 5d5d 3e3c 2f78 7364 3a64  ated. ]]></xsd:d\n-0000ab90: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000aba0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000abb0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000abc0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000abd0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000abe0: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000abf0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000ac00: 7574 6520 6e61 6d65 3d22 7374 6963 6b79  ute name=\"sticky\n-0000ac10: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000ac20: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000ac30: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000ac40: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ac50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ac60: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000ac70: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000ac80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ac90: 2020 3c21 5b43 4441 5441 5b20 456e 6162    <![CDATA[ Enab\n-0000aca0: 6c65 2f44 6973 6162 6c65 2063 6c75 7374  le/Disable clust\n-0000acb0: 6572 2073 7469 636b 7920 706f 6c69 6379  er sticky policy\n-0000acc0: 2e44 6566 6175 6c74 2066 616c 7365 205d  .Default false ]\n-0000acd0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000ace0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000acf0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000ad00: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000ad10: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000ad20: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000ad30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000ad40: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000ad50: 653d 2272 6574 7572 6e22 2074 7970 653d  e=\"return\" type=\n-0000ad60: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000ad70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ad80: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000ad90: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000ada0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000adb0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000adc0: 5b43 4441 5441 5b20 4d65 7468 6f64 2072  [CDATA[ Method r\n-0000add0: 6573 756c 7420 6973 2072 6574 7572 6e2e  esult is return.\n-0000ade0: 2064 6566 6175 6c74 2069 7320 7472 7565   default is true\n-0000adf0: 2e5d 5d3e 3c2f 7873 643a 646f 6375 6d65  .]]></xsd:docume\n-0000ae00: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000ae10: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000ae20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000ae30: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ae40: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000ae50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ae60: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000ae70: 616d 653d 226f 6e69 6e76 6f6b 6522 2074  ame=\"oninvoke\" t\n-0000ae80: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000ae90: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000aea0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000aeb0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000aec0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000aed0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000aee0: 6e3e 3c21 5b43 4441 5441 5b20 4d65 7468  n><![CDATA[ Meth\n-0000aef0: 6f64 2069 6e76 6f6b 6520 7472 6967 6765  od invoke trigge\n-0000af00: 722e 5d5d 3e3c 2f78 7364 3a64 6f63 756d  r.]]></xsd:docum\n-0000af10: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000af20: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000af30: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000af40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000af50: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000af60: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000af70: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000af80: 6e61 6d65 3d22 6f6e 7265 7475 726e 2220  name=\"onreturn\" \n-0000af90: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000afa0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000afb0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000afc0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000afd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000afe0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000aff0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b000: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b010: 3c21 5b43 4441 5441 5b20 4d65 7468 6f64  <![CDATA[ Method\n-0000b020: 2072 6574 7572 6e20 7472 6967 6765 722e   return trigger.\n-0000b030: 2072 6574 7572 6e20 6174 7472 6962 7574   return attribut\n-0000b040: 6520 6d75 7374 2062 6520 7472 7565 2e5d  e must be true.]\n-0000b050: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000b060: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000b070: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000b080: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000b090: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000b0a0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000b0b0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000b0c0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000b0d0: 653d 226f 6e74 6872 6f77 2220 7479 7065  e=\"onthrow\" type\n-0000b0e0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000b0f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b100: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000b110: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b120: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000b130: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000b140: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b150: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n-0000b160: 4441 5441 5b20 4d65 7468 6f64 206f 6e20  DATA[ Method on \n-0000b170: 6572 726f 7220 7472 6967 6765 722e 7265  error trigger.re\n-0000b180: 7475 726e 2061 7474 7269 6275 7465 206d  turn attribute m\n-0000b190: 7573 7420 6265 2074 7275 652e 5d5d 3e3c  ust be true.]]><\n-0000b1a0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000b1b0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b1c0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000b1d0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000b1e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000b1f0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000b200: 2020 2020 2020 203c 2f78 7364 3a65 7874         </xsd:ext\n-0000b210: 656e 7369 6f6e 3e0a 2020 2020 2020 2020  ension>.        \n-0000b220: 3c2f 7873 643a 636f 6d70 6c65 7843 6f6e  </xsd:complexCon\n-0000b230: 7465 6e74 3e0a 2020 2020 3c2f 7873 643a  tent>.    </xsd:\n-0000b240: 636f 6d70 6c65 7854 7970 653e 0a0a 2020  complexType>..  \n-0000b250: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n-0000b260: 7065 206e 616d 653d 2261 7267 756d 656e  pe name=\"argumen\n-0000b270: 7454 7970 6522 3e0a 2020 2020 2020 2020  tType\">.        \n-0000b280: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000b290: 616d 653d 2269 6e64 6578 2220 7479 7065  ame=\"index\" type\n-0000b2a0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000b2b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000b2c0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000b2d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000b2e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000b2f0: 215b 4344 4154 415b 2054 6865 2061 7267  ![CDATA[ The arg\n-0000b300: 756d 656e 7420 696e 6465 782e 205d 5d3e  ument index. ]]>\n-0000b310: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000b320: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000b330: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000b340: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000b350: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000b360: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000b370: 7465 206e 616d 653d 2274 7970 6522 2074  te name=\"type\" t\n-0000b380: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n-0000b390: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-0000b3a0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000b3b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000b3c0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000b3d0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n-0000b3e0: 6172 6775 6d65 6e74 2074 7970 652e 205d  argument type. ]\n-0000b3f0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000b400: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000b410: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000b420: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000b430: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000b440: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000b450: 6275 7465 206e 616d 653d 2263 616c 6c62  bute name=\"callb\n-0000b460: 6163 6b22 2074 7970 653d 2278 7364 3a73  ack\" type=\"xsd:s\n-0000b470: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000b480: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000b490: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000b4a0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000b4b0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000b4c0: 5b20 5468 6520 6172 6775 6d65 6e74 2069  [ The argument i\n-0000b4d0: 7320 6361 6c6c 6261 636b 2e20 5d5d 3e3c  s callback. ]]><\n-0000b4e0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000b4f0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b500: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000b510: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000b520: 6174 7472 6962 7574 653e 0a20 2020 203c  attribute>.    <\n-0000b530: 2f78 7364 3a63 6f6d 706c 6578 5479 7065  /xsd:complexType\n-0000b540: 3e0a 0a20 2020 203c 7873 643a 636f 6d70  >..    <xsd:comp\n-0000b550: 6c65 7854 7970 6520 6e61 6d65 3d22 636f  lexType name=\"co\n-0000b560: 6e73 756d 6572 5479 7065 223e 0a20 2020  nsumerType\">.   \n-0000b570: 2020 2020 203c 7873 643a 636f 6d70 6c65       <xsd:comple\n-0000b580: 7843 6f6e 7465 6e74 3e0a 2020 2020 2020  xContent>.      \n-0000b590: 2020 2020 2020 3c78 7364 3a65 7874 656e        <xsd:exten\n-0000b5a0: 7369 6f6e 2062 6173 653d 2261 6273 7472  sion base=\"abstr\n-0000b5b0: 6163 7452 6566 6572 656e 6365 5479 7065  actReferenceType\n-0000b5c0: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000b5d0: 2020 203c 7873 643a 7365 7175 656e 6365     <xsd:sequence\n-0000b5e0: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n-0000b5f0: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n-0000b600: 6465 6422 3e0a 2020 2020 2020 2020 2020  ded\">.          \n-0000b610: 2020 2020 2020 2020 2020 3c78 7364 3a65            <xsd:e\n-0000b620: 6c65 6d65 6e74 2072 6566 3d22 7265 6665  lement ref=\"refe\n-0000b630: 7265 6e63 6522 206d 696e 4f63 6375 7273  rence\" minOccurs\n-0000b640: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n-0000b650: 756e 626f 756e 6465 6422 2f3e 0a20 2020  unbounded\"/>.   \n-0000b660: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b670: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n-0000b680: 663d 2270 6172 616d 6574 6572 2220 6d69  f=\"parameter\" mi\n-0000b690: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n-0000b6a0: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n-0000b6b0: 222f 3e0a 2020 2020 2020 2020 2020 2020  \"/>.            \n-0000b6c0: 2020 2020 3c2f 7873 643a 7365 7175 656e      </xsd:sequen\n-0000b6d0: 6365 3e0a 2020 2020 2020 2020 2020 2020  ce>.            \n-0000b6e0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000b6f0: 7465 206e 616d 653d 2264 6566 6175 6c74  te name=\"default\n-0000b700: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000b710: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000b720: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000b730: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000b740: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b750: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000b760: 7469 6f6e 3e3c 215b 4344 4154 415b 2049  tion><![CDATA[ I\n-0000b770: 7320 6465 6661 756c 742e 205d 5d3e 3c2f  s default. ]]></\n-0000b780: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000b790: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000b7a0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000b7b0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000b7c0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000b7d0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000b7e0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000b7f0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-0000b800: 6c69 656e 7422 2074 7970 653d 2278 7364  lient\" type=\"xsd\n-0000b810: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000b820: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000b830: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000b840: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b850: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000b860: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000b870: 5441 5b20 5472 616e 7370 6f72 7465 7220  TA[ Transporter \n-0000b880: 6c61 7965 7220 6672 616d 6577 6f72 6b3a  layer framework:\n-0000b890: 206e 6574 7479 206d 696e 612e 2e2e 2e20   netty mina.... \n-0000b8a0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000b8b0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000b8c0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000b8d0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000b8e0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000b8f0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000b900: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000b910: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000b920: 6d65 3d22 7468 7265 6164 706f 6f6c 2220  me=\"threadpool\" \n-0000b930: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000b940: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000b950: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000b960: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000b970: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b980: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000b990: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000b9a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000b9b0: 3c21 5b43 4441 5441 5b20 436f 6e73 756d  <![CDATA[ Consum\n-0000b9c0: 6572 2074 6872 6561 6470 6f6f 6c3a 2063  er threadpool: c\n-0000b9d0: 6163 6865 642c 2066 6978 6564 2c20 6c69  ached, fixed, li\n-0000b9e0: 6d69 7465 642c 2065 6167 6572 5d5d 3e3c  mited, eager]]><\n-0000b9f0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000ba00: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000ba10: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000ba20: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ba30: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000ba40: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000ba50: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000ba60: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000ba70: 636f 7265 7468 7265 6164 7322 2074 7970  corethreads\" typ\n-0000ba80: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000ba90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000baa0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000bab0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bac0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000bad0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000bae0: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n-0000baf0: 7265 6164 2070 6f6f 6c20 636f 7265 2074  read pool core t\n-0000bb00: 6872 6561 6473 2073 697a 652e 205d 5d3e  hreads size. ]]>\n-0000bb10: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000bb20: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bb30: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000bb40: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000bb50: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000bb60: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000bb70: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000bb80: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000bb90: 2274 6872 6561 6473 2220 7479 7065 3d22  \"threads\" type=\"\n-0000bba0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000bbb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bbc0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-0000bbd0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000bbe0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000bbf0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000bc00: 4344 4154 415b 2054 6865 2074 6872 6561  CDATA[ The threa\n-0000bc10: 6420 706f 6f6c 2073 697a 652e 205d 5d3e  d pool size. ]]>\n-0000bc20: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000bc30: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000bc40: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000bc50: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000bc60: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000bc70: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000bc80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000bc90: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000bca0: 2271 7565 7565 7322 2074 7970 653d 2278  \"queues\" type=\"x\n-0000bcb0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000bcc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bcd0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000bce0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000bcf0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000bd00: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000bd10: 4441 5441 5b20 5468 6520 7468 7265 6164  DATA[ The thread\n-0000bd20: 2070 6f6f 6c20 7175 6575 6520 7369 7a65   pool queue size\n-0000bd30: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000bd40: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000bd50: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000bd60: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000bd70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000bd80: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000bd90: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000bda0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-0000bdb0: 6e61 6d65 3d22 7368 6172 6563 6f6e 6e65  name=\"shareconne\n-0000bdc0: 6374 696f 6e73 2220 7479 7065 3d22 7873  ctions\" type=\"xs\n-0000bdd0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000bde0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000bdf0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000be00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000be10: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000be20: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000be30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000be40: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n-0000be50: 5b20 5468 6520 6465 6661 756c 7420 7368  [ The default sh\n-0000be60: 6172 6520 636f 6e6e 6563 7469 6f6e 732e  are connections.\n-0000be70: 2064 6566 6175 6c74 2073 6861 7265 206f   default share o\n-0000be80: 6e65 2063 6f6e 6e65 6374 696f 6e2e 205d  ne connection. ]\n-0000be90: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000bea0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000beb0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000bec0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000bed0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000bee0: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000bef0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000bf00: 7364 3a61 6e79 4174 7472 6962 7574 6520  sd:anyAttribute \n-0000bf10: 6e61 6d65 7370 6163 653d 2223 236f 7468  namespace=\"##oth\n-0000bf20: 6572 2220 7072 6f63 6573 7343 6f6e 7465  er\" processConte\n-0000bf30: 6e74 733d 226c 6178 222f 3e0a 2020 2020  nts=\"lax\"/>.    \n-0000bf40: 2020 2020 2020 2020 3c2f 7873 643a 6578          </xsd:ex\n-0000bf50: 7465 6e73 696f 6e3e 0a20 2020 2020 2020  tension>.       \n-0000bf60: 203c 2f78 7364 3a63 6f6d 706c 6578 436f   </xsd:complexCo\n-0000bf70: 6e74 656e 743e 0a20 2020 203c 2f78 7364  ntent>.    </xsd\n-0000bf80: 3a63 6f6d 706c 6578 5479 7065 3e0a 0a20  :complexType>.. \n-0000bf90: 2020 203c 7873 643a 636f 6d70 6c65 7854     <xsd:complexT\n-0000bfa0: 7970 6520 6e61 6d65 3d22 7265 6665 7265  ype name=\"refere\n-0000bfb0: 6e63 6554 7970 6522 3e0a 2020 2020 2020  nceType\">.      \n-0000bfc0: 2020 3c78 7364 3a63 6f6d 706c 6578 436f    <xsd:complexCo\n-0000bfd0: 6e74 656e 743e 0a20 2020 2020 2020 2020  ntent>.         \n-0000bfe0: 2020 203c 7873 643a 6578 7465 6e73 696f     <xsd:extensio\n-0000bff0: 6e20 6261 7365 3d22 6162 7374 7261 6374  n base=\"abstract\n-0000c000: 5265 6665 7265 6e63 6554 7970 6522 3e0a  ReferenceType\">.\n-0000c010: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c020: 3c78 7364 3a63 686f 6963 6520 6d69 6e4f  <xsd:choice minO\n-0000c030: 6363 7572 733d 2230 2220 6d61 784f 6363  ccurs=\"0\" maxOcc\n-0000c040: 7572 733d 2275 6e62 6f75 6e64 6564 223e  urs=\"unbounded\">\n-0000c050: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000c060: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n-0000c070: 7420 7265 663d 226d 6574 686f 6422 206d  t ref=\"method\" m\n-0000c080: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n-0000c090: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n-0000c0a0: 6422 2f3e 0a20 2020 2020 2020 2020 2020  d\"/>.           \n-0000c0b0: 2020 2020 2020 2020 203c 7873 643a 656c           <xsd:el\n-0000c0c0: 656d 656e 7420 7265 663d 2270 6172 616d  ement ref=\"param\n-0000c0d0: 6574 6572 2220 6d69 6e4f 6363 7572 733d  eter\" minOccurs=\n-0000c0e0: 2230 2220 6d61 784f 6363 7572 733d 2275  \"0\" maxOccurs=\"u\n-0000c0f0: 6e62 6f75 6e64 6564 222f 3e0a 2020 2020  nbounded\"/>.    \n-0000c100: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000c110: 643a 6368 6f69 6365 3e0a 2020 2020 2020  d:choice>.      \n-0000c120: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000c130: 7474 7269 6275 7465 206e 616d 653d 2269  ttribute name=\"i\n-0000c140: 6e74 6572 6661 6365 2220 7479 7065 3d22  nterface\" type=\"\n-0000c150: 7873 643a 746f 6b65 6e22 2075 7365 3d22  xsd:token\" use=\"\n-0000c160: 7265 7175 6972 6564 223e 0a20 2020 2020  required\">.     \n-0000c170: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c180: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000c190: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c1a0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000c1b0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000c1c0: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n-0000c1d0: 2069 6e74 6572 6661 6365 2063 6c61 7373   interface class\n-0000c1e0: 206e 616d 652e 205d 5d3e 3c2f 7873 643a   name. ]]></xsd:\n-0000c1f0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n+0000a990: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000a9a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000a9b0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000a9c0: 6d65 3d22 6578 6563 7574 6573 2220 7479  me=\"executes\" ty\n+0000a9d0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000a9e0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000a9f0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+0000aa00: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000aa10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000aa20: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000aa30: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000aa40: 206d 6178 2061 6374 6976 6520 7265 7175   max active requ\n+0000aa50: 6573 7473 2e20 5d5d 3e3c 2f78 7364 3a64  ests. ]]></xsd:d\n+0000aa60: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000aa70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000aa80: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000aa90: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000aaa0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000aab0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000aac0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000aad0: 7269 6275 7465 206e 616d 653d 2273 7461  ribute name=\"sta\n+0000aae0: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n+0000aaf0: 696e 6722 2064 6566 6175 6c74 3d22 2d31  ing\" default=\"-1\n+0000ab00: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000ab10: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000ab20: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000ab30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ab40: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000ab50: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000ab60: 6865 206d 6574 686f 6420 7061 7261 6d65  he method parame\n+0000ab70: 7465 7220 696e 6465 7820 666f 7220 7374  ter index for st\n+0000ab80: 6174 6973 7469 6373 2e20 5d5d 3e3c 2f78  atistics. ]]></x\n+0000ab90: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000aba0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000abb0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000abc0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000abd0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000abe0: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000abf0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000ac00: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000ac10: 2272 6574 7279 2220 7479 7065 3d22 7873  \"retry\" type=\"xs\n+0000ac20: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000ac30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ac40: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000ac50: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000ac60: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000ac70: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000ac80: 4344 4154 415b 2044 6570 7265 6361 7465  CDATA[ Deprecate\n+0000ac90: 642e 2052 6570 6c61 6365 2074 6f20 7265  d. Replace to re\n+0000aca0: 7472 6965 732e 205d 5d3e 3c2f 7873 643a  tries. ]]></xsd:\n+0000acb0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000acc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000acd0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000ace0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000acf0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000ad00: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000ad10: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000ad20: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n+0000ad30: 6c69 6162 6c65 2220 7479 7065 3d22 7873  liable\" type=\"xs\n+0000ad40: 643a 7374 7269 6e67 2220 6465 6661 756c  d:string\" defaul\n+0000ad50: 743d 2266 616c 7365 223e 0d0a 2020 2020  t=\"false\">..    \n+0000ad60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000ad70: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000ad80: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000ad90: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000ada0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000adb0: 4344 4154 415b 2044 6570 7265 6361 7465  CDATA[ Deprecate\n+0000adc0: 642e 2052 6570 6c61 6365 2074 6f20 6e61  d. Replace to na\n+0000add0: 706f 6c69 2070 726f 746f 636f 6c2e 205d  poli protocol. ]\n+0000ade0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000adf0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000ae00: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000ae10: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000ae20: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000ae30: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000ae40: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000ae50: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+0000ae60: 6e61 6d65 3d22 6465 7072 6563 6174 6564  name=\"deprecated\n+0000ae70: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000ae80: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000ae90: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000aea0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000aeb0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000aec0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000aed0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000aee0: 2054 6865 206d 6574 686f 6420 6465 7072   The method depr\n+0000aef0: 6563 6174 6564 2e20 5d5d 3e3c 2f78 7364  ecated. ]]></xsd\n+0000af00: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000af10: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000af20: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000af30: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000af40: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000af50: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000af60: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000af70: 7474 7269 6275 7465 206e 616d 653d 2273  ttribute name=\"s\n+0000af80: 7469 636b 7922 2074 7970 653d 2278 7364  ticky\" type=\"xsd\n+0000af90: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000afa0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000afb0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000afc0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000afd0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000afe0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000aff0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b000: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+0000b010: 5441 5b20 456e 6162 6c65 2f44 6973 6162  TA[ Enable/Disab\n+0000b020: 6c65 2063 6c75 7374 6572 2073 7469 636b  le cluster stick\n+0000b030: 7920 706f 6c69 6379 2e44 6566 6175 6c74  y policy.Default\n+0000b040: 2066 616c 7365 205d 5d3e 3c2f 7873 643a   false ]]></xsd:\n+0000b050: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000b060: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b070: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000b080: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000b090: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000b0a0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000b0b0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000b0c0: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n+0000b0d0: 7475 726e 2220 7479 7065 3d22 7873 643a  turn\" type=\"xsd:\n+0000b0e0: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000b0f0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000b100: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000b110: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b120: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000b130: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000b140: 4154 415b 204d 6574 686f 6420 7265 7375  ATA[ Method resu\n+0000b150: 6c74 2069 7320 7265 7475 726e 2e20 6465  lt is return. de\n+0000b160: 6661 756c 7420 6973 2074 7275 652e 5d5d  fault is true.]]\n+0000b170: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000b180: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000b190: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000b1a0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000b1b0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+0000b1c0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000b1d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b1e0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000b1f0: 616d 653d 226f 6e69 6e76 6f6b 6522 2074  ame=\"oninvoke\" t\n+0000b200: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000b210: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000b220: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000b230: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000b240: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b250: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000b260: 696f 6e3e 3c21 5b43 4441 5441 5b20 4d65  ion><![CDATA[ Me\n+0000b270: 7468 6f64 2069 6e76 6f6b 6520 7472 6967  thod invoke trig\n+0000b280: 6765 722e 5d5d 3e3c 2f78 7364 3a64 6f63  ger.]]></xsd:doc\n+0000b290: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000b2a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b2b0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000b2c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000b2d0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000b2e0: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+0000b2f0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000b300: 6275 7465 206e 616d 653d 226f 6e72 6574  bute name=\"onret\n+0000b310: 7572 6e22 2074 7970 653d 2278 7364 3a73  urn\" type=\"xsd:s\n+0000b320: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000b330: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000b340: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000b350: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b360: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000b370: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000b380: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b390: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+0000b3a0: 5b20 4d65 7468 6f64 2072 6574 7572 6e20  [ Method return \n+0000b3b0: 7472 6967 6765 722e 2072 6574 7572 6e20  trigger. return \n+0000b3c0: 6174 7472 6962 7574 6520 6d75 7374 2062  attribute must b\n+0000b3d0: 6520 7472 7565 2e5d 5d3e 3c2f 7873 643a  e true.]]></xsd:\n+0000b3e0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000b3f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b400: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000b410: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000b420: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000b430: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000b440: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000b450: 7472 6962 7574 6520 6e61 6d65 3d22 6f6e  tribute name=\"on\n+0000b460: 7468 726f 7722 2074 7970 653d 2278 7364  throw\" type=\"xsd\n+0000b470: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000b480: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000b490: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000b4a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000b4b0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000b4c0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000b4d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000b4e0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n+0000b4f0: 5441 5b20 4d65 7468 6f64 206f 6e20 6572  TA[ Method on er\n+0000b500: 726f 7220 7472 6967 6765 722e 7265 7475  ror trigger.retu\n+0000b510: 726e 2061 7474 7269 6275 7465 206d 7573  rn attribute mus\n+0000b520: 7420 6265 2074 7275 652e 5d5d 3e3c 2f78  t be true.]]></x\n+0000b530: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000b540: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000b550: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000b560: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000b570: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000b580: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000b590: 2020 2020 2020 2020 3c2f 7873 643a 6578          </xsd:ex\n+0000b5a0: 7465 6e73 696f 6e3e 0d0a 2020 2020 2020  tension>..      \n+0000b5b0: 2020 3c2f 7873 643a 636f 6d70 6c65 7843    </xsd:complexC\n+0000b5c0: 6f6e 7465 6e74 3e0d 0a20 2020 203c 2f78  ontent>..    </x\n+0000b5d0: 7364 3a63 6f6d 706c 6578 5479 7065 3e0d  sd:complexType>.\n+0000b5e0: 0a0d 0a20 2020 203c 7873 643a 636f 6d70  ...    <xsd:comp\n+0000b5f0: 6c65 7854 7970 6520 6e61 6d65 3d22 6172  lexType name=\"ar\n+0000b600: 6775 6d65 6e74 5479 7065 223e 0d0a 2020  gumentType\">..  \n+0000b610: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000b620: 6275 7465 206e 616d 653d 2269 6e64 6578  bute name=\"index\n+0000b630: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000b640: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000b650: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000b660: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000b670: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000b680: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000b690: 2054 6865 2061 7267 756d 656e 7420 696e   The argument in\n+0000b6a0: 6465 782e 205d 5d3e 3c2f 7873 643a 646f  dex. ]]></xsd:do\n+0000b6b0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000b6c0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000b6d0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000b6e0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000b6f0: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000b700: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000b710: 6d65 3d22 7479 7065 2220 7479 7065 3d22  me=\"type\" type=\"\n+0000b720: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000b730: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000b740: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000b750: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000b760: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000b770: 215b 4344 4154 415b 2054 6865 2061 7267  ![CDATA[ The arg\n+0000b780: 756d 656e 7420 7479 7065 2e20 5d5d 3e3c  ument type. ]]><\n+0000b790: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000b7a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000b7b0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000b7c0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000b7d0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000b7e0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000b7f0: 6275 7465 206e 616d 653d 2263 616c 6c62  bute name=\"callb\n+0000b800: 6163 6b22 2074 7970 653d 2278 7364 3a73  ack\" type=\"xsd:s\n+0000b810: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000b820: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000b830: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000b840: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000b850: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000b860: 5441 5b20 5468 6520 6172 6775 6d65 6e74  TA[ The argument\n+0000b870: 2069 7320 6361 6c6c 6261 636b 2e20 5d5d   is callback. ]]\n+0000b880: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000b890: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000b8a0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000b8b0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+0000b8c0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000b8d0: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n+0000b8e0: 7854 7970 653e 0d0a 0d0a 2020 2020 3c78  xType>....    <x\n+0000b8f0: 7364 3a63 6f6d 706c 6578 5479 7065 206e  sd:complexType n\n+0000b900: 616d 653d 2263 6f6e 7375 6d65 7254 7970  ame=\"consumerTyp\n+0000b910: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+0000b920: 643a 636f 6d70 6c65 7843 6f6e 7465 6e74  d:complexContent\n+0000b930: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000b940: 7873 643a 6578 7465 6e73 696f 6e20 6261  xsd:extension ba\n+0000b950: 7365 3d22 6162 7374 7261 6374 5265 6665  se=\"abstractRefe\n+0000b960: 7265 6e63 6554 7970 6522 3e0d 0a20 2020  renceType\">..   \n+0000b970: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000b980: 643a 7365 7175 656e 6365 206d 696e 4f63  d:sequence minOc\n+0000b990: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+0000b9a0: 7273 3d22 756e 626f 756e 6465 6422 3e0d  rs=\"unbounded\">.\n+0000b9b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000b9c0: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n+0000b9d0: 7420 7265 663d 2272 6566 6572 656e 6365  t ref=\"reference\n+0000b9e0: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n+0000b9f0: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n+0000ba00: 6e64 6564 222f 3e0d 0a20 2020 2020 2020  nded\"/>..       \n+0000ba10: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000ba20: 643a 656c 656d 656e 7420 7265 663d 2270  d:element ref=\"p\n+0000ba30: 6172 616d 6574 6572 2220 6d69 6e4f 6363  arameter\" minOcc\n+0000ba40: 7572 733d 2230 2220 6d61 784f 6363 7572  urs=\"0\" maxOccur\n+0000ba50: 733d 2275 6e62 6f75 6e64 6564 222f 3e0d  s=\"unbounded\"/>.\n+0000ba60: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000ba70: 203c 2f78 7364 3a73 6571 7565 6e63 653e   </xsd:sequence>\n+0000ba80: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000ba90: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000baa0: 206e 616d 653d 2264 6566 6175 6c74 2220   name=\"default\" \n+0000bab0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000bac0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000bad0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000bae0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000baf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bb00: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000bb10: 7469 6f6e 3e3c 215b 4344 4154 415b 2049  tion><![CDATA[ I\n+0000bb20: 7320 6465 6661 756c 742e 205d 5d3e 3c2f  s default. ]]></\n+0000bb30: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000bb40: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000bb50: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000bb60: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000bb70: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000bb80: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000bb90: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000bba0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000bbb0: 3d22 636c 6965 6e74 2220 7479 7065 3d22  =\"client\" type=\"\n+0000bbc0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000bbd0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bbe0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000bbf0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000bc00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000bc10: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000bc20: 215b 4344 4154 415b 2054 7261 6e73 706f  ![CDATA[ Transpo\n+0000bc30: 7274 6572 206c 6179 6572 2066 7261 6d65  rter layer frame\n+0000bc40: 776f 726b 3a20 6e65 7474 7920 6d69 6e61  work: netty mina\n+0000bc50: 2e2e 2e2e 205d 5d3e 3c2f 7873 643a 646f  .... ]]></xsd:do\n+0000bc60: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000bc70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bc80: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000bc90: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000bca0: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000bcb0: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000bcc0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000bcd0: 6962 7574 6520 6e61 6d65 3d22 7468 7265  ibute name=\"thre\n+0000bce0: 6164 706f 6f6c 2220 7479 7065 3d22 7873  adpool\" type=\"xs\n+0000bcf0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000bd00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bd10: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000bd20: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000bd30: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000bd40: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000bd50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bd60: 2020 2020 2020 2020 2020 203c 215b 4344             <![CD\n+0000bd70: 4154 415b 2043 6f6e 7375 6d65 7220 7468  ATA[ Consumer th\n+0000bd80: 7265 6164 706f 6f6c 3a20 6361 6368 6564  readpool: cached\n+0000bd90: 2c20 6669 7865 642c 206c 696d 6974 6564  , fixed, limited\n+0000bda0: 2c20 6561 6765 725d 5d3e 3c2f 7873 643a  , eager]]></xsd:\n+0000bdb0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000bdc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000bdd0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000bde0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000bdf0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000be00: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000be10: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000be20: 7472 6962 7574 6520 6e61 6d65 3d22 636f  tribute name=\"co\n+0000be30: 7265 7468 7265 6164 7322 2074 7970 653d  rethreads\" type=\n+0000be40: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000be50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000be60: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000be70: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000be80: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000be90: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000bea0: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n+0000beb0: 7265 6164 2070 6f6f 6c20 636f 7265 2074  read pool core t\n+0000bec0: 6872 6561 6473 2073 697a 652e 205d 5d3e  hreads size. ]]>\n+0000bed0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000bee0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000bef0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000bf00: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000bf10: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000bf20: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000bf30: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000bf40: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000bf50: 6d65 3d22 7468 7265 6164 7322 2074 7970  me=\"threads\" typ\n+0000bf60: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+0000bf70: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000bf80: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000bf90: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000bfa0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000bfb0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000bfc0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+0000bfd0: 7468 7265 6164 2070 6f6f 6c20 7369 7a65  thread pool size\n+0000bfe0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000bff0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000c000: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c010: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000c020: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c030: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000c040: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+0000c050: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000c060: 7465 206e 616d 653d 2271 7565 7565 7322  te name=\"queues\"\n+0000c070: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000c080: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000c090: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000c0a0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000c0b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c0c0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000c0d0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000c0e0: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n+0000c0f0: 7175 6575 6520 7369 7a65 2e20 5d5d 3e3c  queue size. ]]><\n+0000c100: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000c110: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000c120: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000c130: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000c140: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000c150: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000c160: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000c170: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000c180: 653d 2273 6861 7265 636f 6e6e 6563 7469  e=\"shareconnecti\n+0000c190: 6f6e 7322 2074 7970 653d 2278 7364 3a73  ons\" type=\"xsd:s\n+0000c1a0: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000c1b0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000c1c0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000c1d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c1e0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000c1f0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n 0000c200: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c210: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n-0000c220: 6e66 6f3e 0a20 2020 2020 2020 2020 2020  nfo>.           \n-0000c230: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c240: 203c 746f 6f6c 3a61 6e6e 6f74 6174 696f   <tool:annotatio\n-0000c250: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000c260: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c270: 2020 203c 746f 6f6c 3a65 7870 6563 7465     <tool:expecte\n-0000c280: 642d 7479 7065 2074 7970 653d 226a 6176  d-type type=\"jav\n-0000c290: 612e 6c61 6e67 2e43 6c61 7373 222f 3e0a  a.lang.Class\"/>.\n-0000c2a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c2b0: 2020 2020 2020 2020 2020 2020 3c2f 746f              </to\n-0000c2c0: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-0000c2d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c2e0: 2020 2020 2020 203c 2f78 7364 3a61 7070         </xsd:app\n-0000c2f0: 696e 666f 3e0a 2020 2020 2020 2020 2020  info>.          \n-0000c300: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000c310: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000c320: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000c330: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000c340: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000c350: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000c360: 3d22 7572 6c22 2074 7970 653d 2278 7364  =\"url\" type=\"xsd\n-0000c370: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000c380: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000c390: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000c3a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c3b0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000c3c0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000c3d0: 5441 5b20 5072 6f76 6964 6572 206c 6973  TA[ Provider lis\n-0000c3e0: 7420 7572 6c2e 205d 5d3e 3c2f 7873 643a  t url. ]]></xsd:\n-0000c3f0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000c400: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c410: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000c420: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000c430: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000c440: 6275 7465 3e0a 2020 2020 2020 2020 2020  bute>.          \n-0000c450: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000c460: 6275 7465 206e 616d 653d 2263 6c69 656e  bute name=\"clien\n-0000c470: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-0000c480: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000c490: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000c4a0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000c4b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c4c0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000c4d0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000c4e0: 5072 6f74 6f63 6f6c 2074 7261 6e73 706f  Protocol transpo\n-0000c4f0: 7274 2063 6c69 656e 7420 7479 7065 2e20  rt client type. \n-0000c500: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000c510: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000c520: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000c530: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000c540: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000c550: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000c560: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000c570: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000c580: 6d65 3d22 636f 6e73 756d 6572 2220 7479  me=\"consumer\" ty\n-0000c590: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000c5a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000c5b0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000c5c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000c5d0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000c5e0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000c5f0: 3e3c 215b 4344 4154 415b 2044 6570 7265  ><![CDATA[ Depre\n-0000c600: 6361 7465 642e 2052 6570 6c61 6365 2074  cated. Replace t\n-0000c610: 6f20 7265 6665 7265 6e63 652d 6465 6661  o reference-defa\n-0000c620: 756c 742e 205d 5d3e 3c2f 7873 643a 646f  ult. ]]></xsd:do\n-0000c630: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n+0000c210: 2020 2020 2020 2020 3c21 5b43 4441 5441          <![CDATA\n+0000c220: 5b20 5468 6520 6465 6661 756c 7420 7368  [ The default sh\n+0000c230: 6172 6520 636f 6e6e 6563 7469 6f6e 732e  are connections.\n+0000c240: 2064 6566 6175 6c74 2073 6861 7265 206f   default share o\n+0000c250: 6e65 2063 6f6e 6e65 6374 696f 6e2e 205d  ne connection. ]\n+0000c260: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000c270: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000c280: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000c290: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000c2a0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c2b0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000c2c0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c2d0: 203c 7873 643a 616e 7941 7474 7269 6275   <xsd:anyAttribu\n+0000c2e0: 7465 206e 616d 6573 7061 6365 3d22 2323  te namespace=\"##\n+0000c2f0: 6f74 6865 7222 2070 726f 6365 7373 436f  other\" processCo\n+0000c300: 6e74 656e 7473 3d22 6c61 7822 2f3e 0d0a  ntents=\"lax\"/>..\n+0000c310: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000c320: 643a 6578 7465 6e73 696f 6e3e 0d0a 2020  d:extension>..  \n+0000c330: 2020 2020 2020 3c2f 7873 643a 636f 6d70        </xsd:comp\n+0000c340: 6c65 7843 6f6e 7465 6e74 3e0d 0a20 2020  lexContent>..   \n+0000c350: 203c 2f78 7364 3a63 6f6d 706c 6578 5479   </xsd:complexTy\n+0000c360: 7065 3e0d 0a0d 0a20 2020 203c 7873 643a  pe>....    <xsd:\n+0000c370: 636f 6d70 6c65 7854 7970 6520 6e61 6d65  complexType name\n+0000c380: 3d22 7265 6665 7265 6e63 6554 7970 6522  =\"referenceType\"\n+0000c390: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000c3a0: 636f 6d70 6c65 7843 6f6e 7465 6e74 3e0d  complexContent>.\n+0000c3b0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+0000c3c0: 643a 6578 7465 6e73 696f 6e20 6261 7365  d:extension base\n+0000c3d0: 3d22 6162 7374 7261 6374 5265 6665 7265  =\"abstractRefere\n+0000c3e0: 6e63 6554 7970 6522 3e0d 0a20 2020 2020  nceType\">..     \n+0000c3f0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000c400: 6368 6f69 6365 206d 696e 4f63 6375 7273  choice minOccurs\n+0000c410: 3d22 3022 206d 6178 4f63 6375 7273 3d22  =\"0\" maxOccurs=\"\n+0000c420: 756e 626f 756e 6465 6422 3e0d 0a20 2020  unbounded\">..   \n+0000c430: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c440: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n+0000c450: 663d 226d 6574 686f 6422 206d 696e 4f63  f=\"method\" minOc\n+0000c460: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n+0000c470: 7273 3d22 756e 626f 756e 6465 6422 2f3e  rs=\"unbounded\"/>\n+0000c480: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c490: 2020 2020 2020 3c78 7364 3a65 6c65 6d65        <xsd:eleme\n+0000c4a0: 6e74 2072 6566 3d22 7061 7261 6d65 7465  nt ref=\"paramete\n+0000c4b0: 7222 206d 696e 4f63 6375 7273 3d22 3022  r\" minOccurs=\"0\"\n+0000c4c0: 206d 6178 4f63 6375 7273 3d22 756e 626f   maxOccurs=\"unbo\n+0000c4d0: 756e 6465 6422 2f3e 0d0a 2020 2020 2020  unded\"/>..      \n+0000c4e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000c4f0: 6368 6f69 6365 3e0d 0a20 2020 2020 2020  choice>..       \n+0000c500: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000c510: 7472 6962 7574 6520 6e61 6d65 3d22 696e  tribute name=\"in\n+0000c520: 7465 7266 6163 6522 2074 7970 653d 2278  terface\" type=\"x\n+0000c530: 7364 3a74 6f6b 656e 2220 7573 653d 2272  sd:token\" use=\"r\n+0000c540: 6571 7569 7265 6422 3e0d 0a20 2020 2020  equired\">..     \n+0000c550: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c560: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000c570: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c580: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000c590: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000c5a0: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+0000c5b0: 6520 696e 7465 7266 6163 6520 636c 6173  e interface clas\n+0000c5c0: 7320 6e61 6d65 2e20 5d5d 3e3c 2f78 7364  s name. ]]></xsd\n+0000c5d0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000c5e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000c5f0: 2020 2020 2020 2020 203c 7873 643a 6170           <xsd:ap\n+0000c600: 7069 6e66 6f3e 0d0a 2020 2020 2020 2020  pinfo>..        \n+0000c610: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c620: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n+0000c630: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n 0000c640: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c650: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000c660: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000c670: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-0000c680: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-0000c690: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000c6a0: 7465 206e 616d 653d 2270 726f 746f 636f  te name=\"protoco\n-0000c6b0: 6c22 2074 7970 653d 2278 7364 3a73 7472  l\" type=\"xsd:str\n-0000c6c0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000c6d0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000c6e0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000c6f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c700: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000c710: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000c720: 5468 6520 7365 7276 6963 6520 7072 6f74  The service prot\n-0000c730: 6f63 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64  ocol. ]]></xsd:d\n-0000c740: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000c750: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c760: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000c770: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000c780: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000c790: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000c7a0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000c7b0: 7574 6520 6e61 6d65 3d22 7365 7276 6963  ute name=\"servic\n-0000c7c0: 6573 2220 7479 7065 3d22 7873 643a 7374  es\" type=\"xsd:st\n-0000c7d0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-0000c7e0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000c7f0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000c800: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c810: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-0000c820: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000c830: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c840: 2020 2020 3c21 5b43 4441 5441 5b20 5468      <![CDATA[ Th\n-0000c850: 6520 7365 7276 6963 6520 6e61 6d65 7320  e service names \n-0000c860: 7468 6174 2074 6865 2044 7562 626f 2069  that the Dubbo i\n-0000c870: 6e74 6572 6661 6365 2073 7562 7363 7269  nterface subscri\n-0000c880: 6265 642e 0a20 2020 2020 2020 2020 2020  bed..           \n-0000c890: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c8a0: 2049 6620 6974 2069 7320 6120 6d75 6c74   If it is a mult\n-0000c8b0: 6970 6c65 2d76 616c 7565 732c 2074 6865  iple-values, the\n-0000c8c0: 2063 6f6e 7465 6e74 2077 696c 6c20 6265   content will be\n-0000c8d0: 2061 2063 6f6d 6d61 2d64 656c 696d 6974   a comma-delimit\n-0000c8e0: 6564 2053 7472 696e 672e 205d 5d3e 0a20  ed String. ]]>. \n-0000c8f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c900: 2020 2020 2020 203c 2f78 7364 3a64 6f63         </xsd:doc\n-0000c910: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000c920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000c930: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000c940: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000c950: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000c960: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000c970: 2020 203c 7873 643a 616e 7941 7474 7269     <xsd:anyAttri\n-0000c980: 6275 7465 206e 616d 6573 7061 6365 3d22  bute namespace=\"\n-0000c990: 2323 6f74 6865 7222 2070 726f 6365 7373  ##other\" process\n-0000c9a0: 436f 6e74 656e 7473 3d22 6c61 7822 2f3e  Contents=\"lax\"/>\n-0000c9b0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-0000c9c0: 7364 3a65 7874 656e 7369 6f6e 3e0a 2020  sd:extension>.  \n-0000c9d0: 2020 2020 2020 3c2f 7873 643a 636f 6d70        </xsd:comp\n-0000c9e0: 6c65 7843 6f6e 7465 6e74 3e0a 2020 2020  lexContent>.    \n-0000c9f0: 3c2f 7873 643a 636f 6d70 6c65 7854 7970  </xsd:complexTyp\n-0000ca00: 653e 0a0a 2020 2020 3c78 7364 3a63 6f6d  e>..    <xsd:com\n-0000ca10: 706c 6578 5479 7065 206e 616d 653d 2270  plexType name=\"p\n-0000ca20: 726f 746f 636f 6c54 7970 6522 3e0a 2020  rotocolType\">.  \n-0000ca30: 2020 2020 2020 3c78 7364 3a73 6571 7565        <xsd:seque\n-0000ca40: 6e63 6520 6d69 6e4f 6363 7572 733d 2230  nce minOccurs=\"0\n-0000ca50: 2220 6d61 784f 6363 7572 733d 2275 6e62  \" maxOccurs=\"unb\n-0000ca60: 6f75 6e64 6564 223e 0a20 2020 2020 2020  ounded\">.       \n-0000ca70: 2020 2020 203c 7873 643a 656c 656d 656e       <xsd:elemen\n-0000ca80: 7420 7265 663d 2270 6172 616d 6574 6572  t ref=\"parameter\n-0000ca90: 2220 6d69 6e4f 6363 7572 733d 2230 2220  \" minOccurs=\"0\" \n-0000caa0: 6d61 784f 6363 7572 733d 2275 6e62 6f75  maxOccurs=\"unbou\n-0000cab0: 6e64 6564 222f 3e0a 2020 2020 2020 2020  nded\"/>.        \n-0000cac0: 3c2f 7873 643a 7365 7175 656e 6365 3e0a  </xsd:sequence>.\n-0000cad0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000cae0: 7269 6275 7465 206e 616d 653d 2269 6422  ribute name=\"id\"\n-0000caf0: 2074 7970 653d 2278 7364 3a49 4422 3e0a   type=\"xsd:ID\">.\n-0000cb00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000cb10: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000cb20: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000cb30: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000cb40: 3c21 5b43 4441 5441 5b20 5468 6520 756e  <![CDATA[ The un\n-0000cb50: 6971 7565 2069 6465 6e74 6966 6965 7220  ique identifier \n-0000cb60: 666f 7220 6120 6265 616e 2e20 5d5d 3e3c  for a bean. ]]><\n-0000cb70: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000cb80: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000cb90: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000cba0: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000cbb0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000cbc0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000cbd0: 6520 6e61 6d65 3d22 6e61 6d65 2220 7479  e name=\"name\" ty\n-0000cbe0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000cbf0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-0000cc00: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000cc10: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000cc20: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000cc30: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n-0000cc40: 726f 746f 636f 6c20 6e61 6d65 2e20 5d5d  rotocol name. ]]\n-0000cc50: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000cc60: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000cc70: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000cc80: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-0000cc90: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000cca0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000ccb0: 7574 6520 6e61 6d65 3d22 686f 7374 2220  ute name=\"host\" \n-0000ccc0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000ccd0: 223e 0a20 2020 2020 2020 2020 2020 203c  \">.            <\n-0000cce0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-0000ccf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000cd00: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000cd10: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000cd20: 2073 6572 7669 6365 2068 6f73 742e 205d   service host. ]\n-0000cd30: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000cd40: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000cd50: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000cd60: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000cd70: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000cd80: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000cd90: 6275 7465 206e 616d 653d 2270 6f72 7422  bute name=\"port\"\n-0000cda0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000cdb0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000cdc0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000cdd0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000cde0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000cdf0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000ce00: 6520 7365 7276 6963 6520 706f 7274 2e20  e service port. \n-0000ce10: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000ce20: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000ce30: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000ce40: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-0000ce50: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000ce60: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000ce70: 6962 7574 6520 6e61 6d65 3d22 7468 7265  ibute name=\"thre\n-0000ce80: 6164 706f 6f6c 2220 7479 7065 3d22 7873  adpool\" type=\"xs\n-0000ce90: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000cea0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000ceb0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000cec0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000ced0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000cee0: 4154 415b 2054 6865 2074 6872 6561 6420  ATA[ The thread \n-0000cef0: 706f 6f6c 2074 7970 652e 205d 5d3e 3c2f  pool type. ]]></\n-0000cf00: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000cf10: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-0000cf20: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000cf30: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-0000cf40: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000cf50: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000cf60: 206e 616d 653d 2274 6872 6561 646e 616d   name=\"threadnam\n-0000cf70: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-0000cf80: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000cf90: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000cfa0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000cfb0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000cfc0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000cfd0: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n-0000cfe0: 6e61 6d65 2e20 5d5d 3e3c 2f78 7364 3a64  name. ]]></xsd:d\n-0000cff0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000d000: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000d010: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000d020: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000d030: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000d040: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000d050: 3d22 7468 7265 6164 7322 2074 7970 653d  =\"threads\" type=\n-0000d060: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000d070: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000d080: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000d090: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000d0a0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000d0b0: 5b43 4441 5441 5b20 5468 6520 7468 7265  [CDATA[ The thre\n-0000d0c0: 6164 2070 6f6f 6c20 7369 7a65 2e20 5d5d  ad pool size. ]]\n-0000d0d0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000d0e0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000d0f0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000d100: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-0000d110: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000d120: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000d130: 7574 6520 6e61 6d65 3d22 636f 7265 7468  ute name=\"coreth\n-0000d140: 7265 6164 7322 2074 7970 653d 2278 7364  reads\" type=\"xsd\n-0000d150: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000d160: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000d170: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000d180: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000d190: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000d1a0: 5441 5b20 5468 6520 7468 7265 6164 2070  TA[ The thread p\n-0000d1b0: 6f6f 6c20 636f 7265 2074 6872 6561 6473  ool core threads\n-0000d1c0: 2073 697a 652e 205d 5d3e 3c2f 7873 643a   size. ]]></xsd:\n-0000d1d0: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-0000d1e0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000d1f0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000d200: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-0000d210: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-0000d220: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000d230: 653d 2269 6f74 6872 6561 6473 2220 7479  e=\"iothreads\" ty\n-0000d240: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000d250: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-0000d260: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000d270: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000d280: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000d290: 3e3c 215b 4344 4154 415b 2054 6865 2049  ><![CDATA[ The I\n-0000d2a0: 4f20 7468 7265 6164 2070 6f6f 6c20 7369  O thread pool si\n-0000d2b0: 7a65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ze. ]]></xsd:doc\n-0000d2c0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000d2d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000d2e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000d2f0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000d300: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000d310: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000d320: 616c 6976 6522 2074 7970 653d 2278 7364  alive\" type=\"xsd\n-0000d330: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000d340: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000d350: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000d360: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000d370: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000d380: 5441 5b20 5468 6520 7468 7265 6164 2070  TA[ The thread p\n-0000d390: 6f6f 6c20 6b65 6570 416c 6976 6554 696d  ool keepAliveTim\n-0000d3a0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000d3b0: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000d3c0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000d3d0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000d3e0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000d3f0: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000d400: 7474 7269 6275 7465 206e 616d 653d 2271  ttribute name=\"q\n-0000d410: 7565 7565 7322 2074 7970 653d 2278 7364  ueues\" type=\"xsd\n-0000d420: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000d430: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000d440: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000d450: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000d460: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000d470: 5441 5b20 5468 6520 7468 7265 6164 2070  TA[ The thread p\n-0000d480: 6f6f 6c20 7175 6575 6520 7369 7a65 2e20  ool queue size. \n-0000d490: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000d4a0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000d4b0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000d4c0: 7469 6f6e 3e0a 2020 2020 2020 2020 3c2f  tion>.        </\n-0000d4d0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000d4e0: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000d4f0: 6962 7574 6520 6e61 6d65 3d22 6163 6365  ibute name=\"acce\n-0000d500: 7074 7322 2074 7970 653d 2278 7364 3a73  pts\" type=\"xsd:s\n-0000d510: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000d520: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000d530: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000d540: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000d550: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000d560: 5b20 5468 6520 6163 6365 7074 2063 6f6e  [ The accept con\n-0000d570: 6e65 6374 696f 6e20 7369 7a65 2e20 5d5d  nection size. ]]\n-0000d580: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-0000d590: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000d5a0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000d5b0: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-0000d5c0: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-0000d5d0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000d5e0: 7574 6520 6e61 6d65 3d22 636f 6465 6322  ute name=\"codec\"\n-0000d5f0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000d600: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000d610: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000d620: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000d630: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000d640: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000d650: 6520 7072 6f74 6f63 6f6c 2063 6f64 6563  e protocol codec\n-0000d660: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000d670: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000d680: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000d690: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000d6a0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000d6b0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000d6c0: 7472 6962 7574 6520 6e61 6d65 3d22 7365  tribute name=\"se\n-0000d6d0: 7269 616c 697a 6174 696f 6e22 2074 7970  rialization\" typ\n-0000d6e0: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000d6f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000d700: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000d710: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000d720: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000d730: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n-0000d740: 6f74 6f63 6f6c 2073 6572 6961 6c69 7a61  otocol serializa\n-0000d750: 7469 6f6e 2e20 5d5d 3e3c 2f78 7364 3a64  tion. ]]></xsd:d\n-0000d760: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000d770: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-0000d780: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-0000d790: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000d7a0: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-0000d7b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-0000d7c0: 3d22 6b65 6570 616c 6976 6522 2074 7970  =\"keepalive\" typ\n-0000d7d0: 653d 2278 7364 3a62 6f6f 6c65 616e 223e  e=\"xsd:boolean\">\n-0000d7e0: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-0000d7f0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000d800: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000d810: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000d820: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n-0000d830: 726f 746f 636f 6c20 6b65 6570 416c 6976  rotocol keepAliv\n-0000d840: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000d850: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000d860: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000d870: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000d880: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000d890: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000d8a0: 7474 7269 6275 7465 206e 616d 653d 226f  ttribute name=\"o\n-0000d8b0: 7074 696d 697a 6572 2220 7479 7065 3d22  ptimizer\" type=\"\n-0000d8c0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000d8d0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000d8e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000d8f0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000d900: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000d910: 4344 4154 415b 2054 6865 2073 6572 6961  CDATA[ The seria\n-0000d920: 6c69 7a61 7469 6f6e 206f 7074 696d 697a  lization optimiz\n-0000d930: 6572 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  er. ]]></xsd:doc\n-0000d940: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000d950: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000d960: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000d970: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000d980: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000d990: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000d9a0: 6578 7465 6e73 696f 6e22 2074 7970 653d  extension\" type=\n-0000d9b0: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000d9c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000d9d0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000d9e0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000d9f0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000da00: 5b43 4441 5441 5b20 5468 6520 6578 7465  [CDATA[ The exte\n-0000da10: 6e73 696f 6e20 666f 7220 7072 6f74 6f63  nsion for protoc\n-0000da20: 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ol. ]]></xsd:doc\n-0000da30: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000da40: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000da50: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000da60: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000da70: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000da80: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000da90: 6368 6172 7365 7422 2074 7970 653d 2278  charset\" type=\"x\n-0000daa0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000dab0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000dac0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000dad0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000dae0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000daf0: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-0000db00: 6f6c 2063 6861 7273 6574 2e20 5d5d 3e3c  ol charset. ]]><\n-0000db10: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000db20: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000db30: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000db40: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000db50: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000db60: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000db70: 6520 6e61 6d65 3d22 7061 796c 6f61 6422  e name=\"payload\"\n-0000db80: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000db90: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000dba0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000dbb0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000dbc0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000dbd0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000dbe0: 6520 6d61 7820 7061 796c 6f61 642e 205d  e max payload. ]\n-0000dbf0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000dc00: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000dc10: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000dc20: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000dc30: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000dc40: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000dc50: 6275 7465 206e 616d 653d 2262 7566 6665  bute name=\"buffe\n-0000dc60: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n-0000dc70: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000dc80: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000dc90: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000dca0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000dcb0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000dcc0: 5468 6520 6275 6666 6572 2073 697a 652e  The buffer size.\n-0000dcd0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000dce0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000dcf0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000dd00: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000dd10: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000dd20: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000dd30: 7269 6275 7465 206e 616d 653d 2268 6561  ribute name=\"hea\n-0000dd40: 7274 6265 6174 2220 7479 7065 3d22 7873  rtbeat\" type=\"xs\n-0000dd50: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000dd60: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000dd70: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000dd80: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000dd90: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000dda0: 4154 415b 2054 6865 2068 6561 7274 6265  ATA[ The heartbe\n-0000ddb0: 6174 2069 6e74 6572 7661 6c2e 286d 7329  at interval.(ms)\n-0000ddc0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000ddd0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000dde0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000ddf0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000de00: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000de10: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000de20: 7269 6275 7465 206e 616d 653d 2261 6363  ribute name=\"acc\n-0000de30: 6573 736c 6f67 2220 7479 7065 3d22 7873  esslog\" type=\"xs\n-0000de40: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000de50: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000de60: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000de70: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000de80: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000de90: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n-0000dea0: 6c20 7573 6520 6163 6365 7373 6c6f 672e  l use accesslog.\n-0000deb0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000dec0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000ded0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000dee0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000def0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000df00: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000df10: 7269 6275 7465 206e 616d 653d 2274 656c  ribute name=\"tel\n-0000df20: 6e65 7422 2074 7970 653d 2278 7364 3a73  net\" type=\"xsd:s\n-0000df30: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000df40: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000df50: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000df60: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000df70: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000df80: 5b20 5468 6520 7072 6f74 6f63 6f6c 2075  [ The protocol u\n-0000df90: 7365 2074 656c 6e65 7420 636f 6d6d 616e  se telnet comman\n-0000dfa0: 6473 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ds. ]]></xsd:doc\n-0000dfb0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000dfc0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000dfd0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000dfe0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000dff0: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000e000: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-0000e010: 7072 6f6d 7074 2220 7479 7065 3d22 7873  prompt\" type=\"xs\n-0000e020: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000e030: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000e040: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000e050: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000e060: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000e070: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n-0000e080: 6c20 7465 6c6e 6574 2070 726f 6d70 742e  l telnet prompt.\n-0000e090: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000e0a0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000e0b0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000e0c0: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000e0d0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000e0e0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000e0f0: 7269 6275 7465 206e 616d 653d 2273 7461  ribute name=\"sta\n-0000e100: 7475 7322 2074 7970 653d 2278 7364 3a73  tus\" type=\"xsd:s\n-0000e110: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000e120: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000e130: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000e140: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000e150: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000e160: 5b20 5468 6520 7072 6f74 6f63 6f6c 2063  [ The protocol c\n-0000e170: 6865 636b 2073 7461 7475 732e 205d 5d3e  heck status. ]]>\n-0000e180: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000e190: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000e1a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000e1b0: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000e1c0: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000e1d0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000e1e0: 7465 206e 616d 653d 2274 7261 6e73 706f  te name=\"transpo\n-0000e1f0: 7274 6572 2220 7479 7065 3d22 7873 643a  rter\" type=\"xsd:\n-0000e200: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000e210: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000e220: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000e230: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000e240: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000e250: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n-0000e260: 7472 616e 7370 6f72 7465 7220 7479 7065  transporter type\n-0000e270: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000e280: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000e290: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000e2a0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000e2b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000e2c0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000e2d0: 7472 6962 7574 6520 6e61 6d65 3d22 6578  tribute name=\"ex\n-0000e2e0: 6368 616e 6765 7222 2074 7970 653d 2278  changer\" type=\"x\n-0000e2f0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-0000e300: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000e310: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000e320: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-0000e330: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-0000e340: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-0000e350: 6f6c 2065 7863 6861 6e67 6572 2074 7970  ol exchanger typ\n-0000e360: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000e370: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000e380: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000e390: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000e3a0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000e3b0: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-0000e3c0: 7474 7269 6275 7465 206e 616d 653d 2264  ttribute name=\"d\n-0000e3d0: 6973 7061 7468 6572 2220 7479 7065 3d22  ispather\" type=\"\n-0000e3e0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000e3f0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000e400: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000e410: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000e420: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000e430: 4344 4154 415b 2044 6570 7265 6361 7465  CDATA[ Deprecate\n-0000e440: 642e 2072 6570 6c61 6365 2074 6f20 2264  d. replace to \"d\n-0000e450: 6973 7061 7463 6865 7222 2e20 5d5d 3e3c  ispatcher\". ]]><\n-0000e460: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-0000e470: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000e480: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000e490: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-0000e4a0: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-0000e4b0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000e4c0: 6520 6e61 6d65 3d22 6469 7370 6174 6368  e name=\"dispatch\n-0000e4d0: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n-0000e4e0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-0000e4f0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000e500: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000e510: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-0000e520: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-0000e530: 2054 6865 2070 726f 746f 636f 6c20 6469   The protocol di\n-0000e540: 7370 6174 6368 6572 2074 7970 652e 205d  spatcher type. ]\n-0000e550: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000e560: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000e570: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000e580: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000e590: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000e5a0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000e5b0: 6275 7465 206e 616d 653d 226e 6574 776f  bute name=\"netwo\n-0000e5c0: 726b 6572 2220 7479 7065 3d22 7873 643a  rker\" type=\"xsd:\n-0000e5d0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000e5e0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000e5f0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000e600: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000e610: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000e620: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n-0000e630: 226e 6574 776f 726b 6572 2220 7479 7065  \"networker\" type\n-0000e640: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000e650: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000e660: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000e670: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000e680: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000e690: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000e6a0: 7472 6962 7574 6520 6e61 6d65 3d22 7365  tribute name=\"se\n-0000e6b0: 7276 6572 2220 7479 7065 3d22 7873 643a  rver\" type=\"xsd:\n-0000e6c0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-0000e6d0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000e6e0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000e6f0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-0000e700: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-0000e710: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n-0000e720: 7365 7276 6572 2074 7970 652e 205d 5d3e  server type. ]]>\n-0000e730: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000e740: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000e750: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000e760: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000e770: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000e780: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000e790: 7465 206e 616d 653d 2263 6c69 656e 7422  te name=\"client\"\n-0000e7a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000e7b0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000e7c0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-0000e7d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000e7e0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000e7f0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000e800: 6520 7072 6f74 6f63 6f6c 2063 6c69 656e  e protocol clien\n-0000e810: 7420 7479 7065 2e20 5d5d 3e3c 2f78 7364  t type. ]]></xsd\n-0000e820: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000e830: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000e840: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000e850: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000e860: 6962 7574 653e 0a20 2020 2020 2020 203c  ibute>.        <\n-0000e870: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000e880: 6d65 3d22 7061 7468 2220 7479 7065 3d22  me=\"path\" type=\"\n-0000e890: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000e8a0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000e8b0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000e8c0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000e8d0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000e8e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000e8f0: 2020 3c21 5b43 4441 5441 5b20 5468 6520    <![CDATA[ The \n-0000e900: 7072 6f74 6f63 6f6c 2063 6f6e 7465 7874  protocol context\n-0000e910: 2070 6174 682e 2072 6570 6c61 6365 2074   path. replace t\n-0000e920: 6f20 2263 6f6e 7465 7874 7061 7468 222e  o \"contextpath\".\n-0000e930: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000e940: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000e950: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-0000e960: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-0000e970: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000e980: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-0000e990: 7269 6275 7465 206e 616d 653d 2263 6f6e  ribute name=\"con\n-0000e9a0: 7465 7874 7061 7468 2220 7479 7065 3d22  textpath\" type=\"\n-0000e9b0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-0000e9c0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000e9d0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000e9e0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-0000e9f0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-0000ea00: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-0000ea10: 636f 6c20 636f 6e74 6578 7420 7061 7468  col context path\n-0000ea20: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000ea30: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-0000ea40: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000ea50: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000ea60: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-0000ea70: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-0000ea80: 7472 6962 7574 6520 6e61 6d65 3d22 7265  tribute name=\"re\n-0000ea90: 6769 7374 6572 2220 7479 7065 3d22 7873  gister\" type=\"xs\n-0000eaa0: 643a 7374 7269 6e67 223e 0a20 2020 2020  d:string\">.     \n-0000eab0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000eac0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000ead0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n-0000eae0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n-0000eaf0: 4154 415b 2054 6865 2070 726f 746f 636f  ATA[ The protoco\n-0000eb00: 6c20 6361 6e20 6265 2072 6567 6973 7465  l can be registe\n-0000eb10: 7220 746f 2072 6567 6973 7472 792e 205d  r to registry. ]\n-0000eb20: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000eb30: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000eb40: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n-0000eb50: 696f 6e3e 0a20 2020 2020 2020 203c 2f78  ion>.        </x\n-0000eb60: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000eb70: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n-0000eb80: 6275 7465 206e 616d 653d 2264 6566 6175  bute name=\"defau\n-0000eb90: 6c74 2220 7479 7065 3d22 7873 643a 7374  lt\" type=\"xsd:st\n-0000eba0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-0000ebb0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000ebc0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000ebd0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-0000ebe0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-0000ebf0: 2049 7320 6465 6661 756c 742e 205d 5d3e   Is default. ]]>\n-0000ec00: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000ec10: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000ec20: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-0000ec30: 6e3e 0a20 2020 2020 2020 203c 2f78 7364  n>.        </xsd\n-0000ec40: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000ec50: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-0000ec60: 7465 206e 616d 653d 2273 736c 2d65 6e61  te name=\"ssl-ena\n-0000ec70: 626c 6564 2220 7479 7065 3d22 7873 643a  bled\" type=\"xsd:\n-0000ec80: 626f 6f6c 6561 6e22 3e0a 2020 2020 2020  boolean\">.      \n-0000ec90: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-0000eca0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000ecb0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000ecc0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000ecd0: 5441 5b20 4973 2053 534c 2065 6e61 626c  TA[ Is SSL enabl\n-0000ece0: 6564 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ed. ]]></xsd:doc\n-0000ecf0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000ed00: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-0000ed10: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000ed20: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000ed30: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-0000ed40: 616e 7941 7474 7269 6275 7465 206e 616d  anyAttribute nam\n-0000ed50: 6573 7061 6365 3d22 2323 6f74 6865 7222  espace=\"##other\"\n-0000ed60: 2070 726f 6365 7373 436f 6e74 656e 7473   processContents\n-0000ed70: 3d22 6c61 7822 2f3e 0a20 2020 203c 2f78  =\"lax\"/>.    </x\n-0000ed80: 7364 3a63 6f6d 706c 6578 5479 7065 3e0a  sd:complexType>.\n-0000ed90: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n-0000eda0: 7854 7970 6520 6e61 6d65 3d22 7072 6f76  xType name=\"prov\n-0000edb0: 6964 6572 5479 7065 223e 0a20 2020 2020  iderType\">.     \n-0000edc0: 2020 203c 7873 643a 636f 6d70 6c65 7843     <xsd:complexC\n-0000edd0: 6f6e 7465 6e74 3e0a 2020 2020 2020 2020  ontent>.        \n-0000ede0: 2020 2020 3c78 7364 3a65 7874 656e 7369      <xsd:extensi\n-0000edf0: 6f6e 2062 6173 653d 2261 6273 7472 6163  on base=\"abstrac\n-0000ee00: 7453 6572 7669 6365 5479 7065 223e 0a20  tServiceType\">. \n-0000ee10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ee20: 7873 643a 6368 6f69 6365 206d 696e 4f63  xsd:choice minOc\n-0000ee30: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n-0000ee40: 7273 3d22 756e 626f 756e 6465 6422 3e0a  rs=\"unbounded\">.\n-0000ee50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ee60: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n-0000ee70: 2072 6566 3d22 7365 7276 6963 6522 206d   ref=\"service\" m\n-0000ee80: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n-0000ee90: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n-0000eea0: 6422 2f3e 0a20 2020 2020 2020 2020 2020  d\"/>.           \n-0000eeb0: 2020 2020 2020 2020 203c 7873 643a 656c           <xsd:el\n-0000eec0: 656d 656e 7420 7265 663d 2270 6172 616d  ement ref=\"param\n-0000eed0: 6574 6572 2220 6d69 6e4f 6363 7572 733d  eter\" minOccurs=\n-0000eee0: 2230 2220 6d61 784f 6363 7572 733d 2275  \"0\" maxOccurs=\"u\n-0000eef0: 6e62 6f75 6e64 6564 222f 3e0a 2020 2020  nbounded\"/>.    \n-0000ef00: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000ef10: 643a 6368 6f69 6365 3e0a 2020 2020 2020  d:choice>.      \n-0000ef20: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000ef30: 7474 7269 6275 7465 206e 616d 653d 2268  ttribute name=\"h\n-0000ef40: 6f73 7422 2074 7970 653d 2278 7364 3a73  ost\" type=\"xsd:s\n-0000ef50: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000ef60: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000ef70: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000ef80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ef90: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000efa0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000efb0: 5b20 5468 6520 7365 7276 6963 6520 686f  [ The service ho\n-0000efc0: 7374 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  st. ]]></xsd:doc\n-0000efd0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000efe0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000eff0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000f000: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f010: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000f020: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000f030: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000f040: 6520 6e61 6d65 3d22 706f 7274 2220 7479  e name=\"port\" ty\n-0000f050: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-0000f060: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000f070: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-0000f080: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000f090: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000f0a0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000f0b0: 3e3c 215b 4344 4154 415b 2054 6865 2073  ><![CDATA[ The s\n-0000f0c0: 6572 7669 6365 2070 6f72 742e 205d 5d3e  ervice port. ]]>\n-0000f0d0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-0000f0e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000f0f0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000f100: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000f110: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000f120: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-0000f130: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000f140: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-0000f150: 2274 6872 6561 6470 6f6f 6c22 2074 7970  \"threadpool\" typ\n-0000f160: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000f170: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f180: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000f190: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000f1a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000c650: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n+0000c660: 6563 7465 642d 7479 7065 2074 7970 653d  ected-type type=\n+0000c670: 226a 6176 612e 6c61 6e67 2e43 6c61 7373  \"java.lang.Class\n+0000c680: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+0000c690: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c6a0: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+0000c6b0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000c6c0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000c6d0: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+0000c6e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c6f0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000c700: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000c710: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000c720: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+0000c730: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000c740: 6275 7465 206e 616d 653d 2275 726c 2220  bute name=\"url\" \n+0000c750: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000c760: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000c770: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000c780: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000c790: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c7a0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000c7b0: 7469 6f6e 3e3c 215b 4344 4154 415b 2050  tion><![CDATA[ P\n+0000c7c0: 726f 7669 6465 7220 6c69 7374 2075 726c  rovider list url\n+0000c7d0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000c7e0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000c7f0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000c800: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000c810: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c820: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000c830: 653e 0d0a 2020 2020 2020 2020 2020 2020  e>..            \n+0000c840: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000c850: 7465 206e 616d 653d 2263 6c69 656e 7422  te name=\"client\"\n+0000c860: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000c870: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000c880: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000c890: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000c8a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c8b0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000c8c0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000c8d0: 5072 6f74 6f63 6f6c 2074 7261 6e73 706f  Protocol transpo\n+0000c8e0: 7274 2063 6c69 656e 7420 7479 7065 2e20  rt client type. \n+0000c8f0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000c900: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000c910: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000c920: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000c930: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c940: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000c950: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000c960: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000c970: 206e 616d 653d 2263 6f6e 7375 6d65 7222   name=\"consumer\"\n+0000c980: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000c990: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000c9a0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000c9b0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000c9c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000c9d0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000c9e0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000c9f0: 4465 7072 6563 6174 6564 2e20 5265 706c  Deprecated. Repl\n+0000ca00: 6163 6520 746f 2072 6566 6572 656e 6365  ace to reference\n+0000ca10: 2d64 6566 6175 6c74 2e20 5d5d 3e3c 2f78  -default. ]]></x\n+0000ca20: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000ca30: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000ca40: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000ca50: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000ca60: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000ca70: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000ca80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000ca90: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000caa0: 2270 726f 746f 636f 6c22 2074 7970 653d  \"protocol\" type=\n+0000cab0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000cac0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cad0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000cae0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000caf0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000cb00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000cb10: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n+0000cb20: 7276 6963 6520 7072 6f74 6f63 6f6c 2e20  rvice protocol. \n+0000cb30: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000cb40: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000cb50: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000cb60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000cb70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cb80: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000cb90: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000cba0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000cbb0: 206e 616d 653d 2273 6572 7669 6365 7322   name=\"services\"\n+0000cbc0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000cbd0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000cbe0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000cbf0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000cc00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cc10: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000cc20: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000cc30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cc40: 2020 2020 3c21 5b43 4441 5441 5b20 5468      <![CDATA[ Th\n+0000cc50: 6520 7365 7276 6963 6520 6e61 6d65 7320  e service names \n+0000cc60: 7468 6174 2074 6865 2044 7562 626f 2069  that the Dubbo i\n+0000cc70: 6e74 6572 6661 6365 2073 7562 7363 7269  nterface subscri\n+0000cc80: 6265 642e 0d0a 2020 2020 2020 2020 2020  bed...          \n+0000cc90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cca0: 2020 4966 2069 7420 6973 2061 206d 756c    If it is a mul\n+0000ccb0: 7469 706c 652d 7661 6c75 6573 2c20 7468  tiple-values, th\n+0000ccc0: 6520 636f 6e74 656e 7420 7769 6c6c 2062  e content will b\n+0000ccd0: 6520 6120 636f 6d6d 612d 6465 6c69 6d69  e a comma-delimi\n+0000cce0: 7465 6420 5374 7269 6e67 2e20 5d5d 3e0d  ted String. ]]>.\n+0000ccf0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000cd00: 2020 2020 2020 2020 203c 2f78 7364 3a64           </xsd:d\n+0000cd10: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000cd20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000cd30: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000cd40: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000cd50: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000cd60: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000cd70: 2020 2020 2020 2020 3c78 7364 3a61 6e79          <xsd:any\n+0000cd80: 4174 7472 6962 7574 6520 6e61 6d65 7370  Attribute namesp\n+0000cd90: 6163 653d 2223 236f 7468 6572 2220 7072  ace=\"##other\" pr\n+0000cda0: 6f63 6573 7343 6f6e 7465 6e74 733d 226c  ocessContents=\"l\n+0000cdb0: 6178 222f 3e0d 0a20 2020 2020 2020 2020  ax\"/>..         \n+0000cdc0: 2020 203c 2f78 7364 3a65 7874 656e 7369     </xsd:extensi\n+0000cdd0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000cde0: 7364 3a63 6f6d 706c 6578 436f 6e74 656e  sd:complexConten\n+0000cdf0: 743e 0d0a 2020 2020 3c2f 7873 643a 636f  t>..    </xsd:co\n+0000ce00: 6d70 6c65 7854 7970 653e 0d0a 0d0a 2020  mplexType>....  \n+0000ce10: 2020 3c78 7364 3a63 6f6d 706c 6578 5479    <xsd:complexTy\n+0000ce20: 7065 206e 616d 653d 2270 726f 746f 636f  pe name=\"protoco\n+0000ce30: 6c54 7970 6522 3e0d 0a20 2020 2020 2020  lType\">..       \n+0000ce40: 203c 7873 643a 7365 7175 656e 6365 206d   <xsd:sequence m\n+0000ce50: 696e 4f63 6375 7273 3d22 3022 206d 6178  inOccurs=\"0\" max\n+0000ce60: 4f63 6375 7273 3d22 756e 626f 756e 6465  Occurs=\"unbounde\n+0000ce70: 6422 3e0d 0a20 2020 2020 2020 2020 2020  d\">..           \n+0000ce80: 203c 7873 643a 656c 656d 656e 7420 7265   <xsd:element re\n+0000ce90: 663d 2270 6172 616d 6574 6572 2220 6d69  f=\"parameter\" mi\n+0000cea0: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n+0000ceb0: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n+0000cec0: 222f 3e0d 0a20 2020 2020 2020 203c 2f78  \"/>..        </x\n+0000ced0: 7364 3a73 6571 7565 6e63 653e 0d0a 2020  sd:sequence>..  \n+0000cee0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000cef0: 6275 7465 206e 616d 653d 2269 6422 2074  bute name=\"id\" t\n+0000cf00: 7970 653d 2278 7364 3a49 4422 3e0d 0a20  ype=\"xsd:ID\">.. \n+0000cf10: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000cf20: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000cf30: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000cf40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000cf50: 3c21 5b43 4441 5441 5b20 5468 6520 756e  <![CDATA[ The un\n+0000cf60: 6971 7565 2069 6465 6e74 6966 6965 7220  ique identifier \n+0000cf70: 666f 7220 6120 6265 616e 2e20 5d5d 3e3c  for a bean. ]]><\n+0000cf80: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000cf90: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000cfa0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000cfb0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000cfc0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000cfd0: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000cfe0: 6275 7465 206e 616d 653d 226e 616d 6522  bute name=\"name\"\n+0000cff0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000d000: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000d010: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000d020: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000d030: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000d040: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000d050: 5468 6520 7072 6f74 6f63 6f6c 206e 616d  The protocol nam\n+0000d060: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+0000d070: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000d080: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000d090: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000d0a0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000d0b0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000d0c0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000d0d0: 3d22 686f 7374 2220 7479 7065 3d22 7873  =\"host\" type=\"xs\n+0000d0e0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000d0f0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000d100: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000d110: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000d120: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000d130: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n+0000d140: 6365 2068 6f73 742e 205d 5d3e 3c2f 7873  ce host. ]]></xs\n+0000d150: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000d160: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000d170: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000d180: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000d190: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000d1a0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000d1b0: 6520 6e61 6d65 3d22 706f 7274 2220 7479  e name=\"port\" ty\n+0000d1c0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000d1d0: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+0000d1e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000d1f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000d200: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000d210: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000d220: 2073 6572 7669 6365 2070 6f72 742e 205d   service port. ]\n+0000d230: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000d240: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d250: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000d260: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000d270: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000d280: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000d290: 7472 6962 7574 6520 6e61 6d65 3d22 7468  tribute name=\"th\n+0000d2a0: 7265 6164 706f 6f6c 2220 7479 7065 3d22  readpool\" type=\"\n+0000d2b0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000d2c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000d2d0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000d2e0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000d2f0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000d300: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n+0000d310: 6561 6420 706f 6f6c 2074 7970 652e 205d  ead pool type. ]\n+0000d320: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000d330: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d340: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000d350: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000d360: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000d370: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000d380: 7472 6962 7574 6520 6e61 6d65 3d22 7468  tribute name=\"th\n+0000d390: 7265 6164 6e61 6d65 2220 7479 7065 3d22  readname\" type=\"\n+0000d3a0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000d3b0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000d3c0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000d3d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000d3e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000d3f0: 215b 4344 4154 415b 2054 6865 2074 6872  ![CDATA[ The thr\n+0000d400: 6561 6420 706f 6f6c 206e 616d 652e 205d  ead pool name. ]\n+0000d410: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000d420: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d430: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000d440: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000d450: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000d460: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000d470: 7472 6962 7574 6520 6e61 6d65 3d22 7468  tribute name=\"th\n+0000d480: 7265 6164 7322 2074 7970 653d 2278 7364  reads\" type=\"xsd\n+0000d490: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000d4a0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000d4b0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000d4c0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000d4d0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000d4e0: 4441 5441 5b20 5468 6520 7468 7265 6164  DATA[ The thread\n+0000d4f0: 2070 6f6f 6c20 7369 7a65 2e20 5d5d 3e3c   pool size. ]]><\n+0000d500: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000d510: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000d520: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000d530: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000d540: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000d550: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000d560: 6275 7465 206e 616d 653d 2263 6f72 6574  bute name=\"coret\n+0000d570: 6872 6561 6473 2220 7479 7065 3d22 7873  hreads\" type=\"xs\n+0000d580: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000d590: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000d5a0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000d5b0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000d5c0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+0000d5d0: 4344 4154 415b 2054 6865 2074 6872 6561  CDATA[ The threa\n+0000d5e0: 6420 706f 6f6c 2063 6f72 6520 7468 7265  d pool core thre\n+0000d5f0: 6164 7320 7369 7a65 2e20 5d5d 3e3c 2f78  ads size. ]]></x\n+0000d600: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000d610: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000d620: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000d630: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000d640: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000d650: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000d660: 7465 206e 616d 653d 2269 6f74 6872 6561  te name=\"iothrea\n+0000d670: 6473 2220 7479 7065 3d22 7873 643a 7374  ds\" type=\"xsd:st\n+0000d680: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000d690: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+0000d6a0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000d6b0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000d6c0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000d6d0: 415b 2054 6865 2049 4f20 7468 7265 6164  A[ The IO thread\n+0000d6e0: 2070 6f6f 6c20 7369 7a65 2e20 5d5d 3e3c   pool size. ]]><\n+0000d6f0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000d700: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000d710: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+0000d720: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+0000d730: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000d740: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+0000d750: 6275 7465 206e 616d 653d 2261 6c69 7665  bute name=\"alive\n+0000d760: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000d770: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000d780: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000d790: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000d7a0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000d7b0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000d7c0: 2054 6865 2074 6872 6561 6420 706f 6f6c   The thread pool\n+0000d7d0: 206b 6565 7041 6c69 7665 5469 6d65 2e20   keepAliveTime. \n+0000d7e0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000d7f0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000d800: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000d810: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000d820: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000d830: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+0000d840: 7474 7269 6275 7465 206e 616d 653d 2271  ttribute name=\"q\n+0000d850: 7565 7565 7322 2074 7970 653d 2278 7364  ueues\" type=\"xsd\n+0000d860: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000d870: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+0000d880: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000d890: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000d8a0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000d8b0: 4441 5441 5b20 5468 6520 7468 7265 6164  DATA[ The thread\n+0000d8c0: 2070 6f6f 6c20 7175 6575 6520 7369 7a65   pool queue size\n+0000d8d0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000d8e0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000d8f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000d900: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000d910: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000d920: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+0000d930: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000d940: 2261 6363 6570 7473 2220 7479 7065 3d22  \"accepts\" type=\"\n+0000d950: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000d960: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000d970: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000d980: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000d990: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000d9a0: 215b 4344 4154 415b 2054 6865 2061 6363  ![CDATA[ The acc\n+0000d9b0: 6570 7420 636f 6e6e 6563 7469 6f6e 2073  ept connection s\n+0000d9c0: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000d9d0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000d9e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000d9f0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000da00: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000da10: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000da20: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000da30: 6d65 3d22 636f 6465 6322 2074 7970 653d  me=\"codec\" type=\n+0000da40: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000da50: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000da60: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000da70: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000da80: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000da90: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000daa0: 6f74 6f63 6f6c 2063 6f64 6563 2e20 5d5d  otocol codec. ]]\n+0000dab0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000dac0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000dad0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000dae0: 696f 6e3e 0d0a 2020 2020 2020 2020 3c2f  ion>..        </\n+0000daf0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000db00: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000db10: 7269 6275 7465 206e 616d 653d 2273 6572  ribute name=\"ser\n+0000db20: 6961 6c69 7a61 7469 6f6e 2220 7479 7065  ialization\" type\n+0000db30: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+0000db40: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000db50: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000db60: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000db70: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000db80: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n+0000db90: 726f 746f 636f 6c20 7365 7269 616c 697a  rotocol serializ\n+0000dba0: 6174 696f 6e2e 205d 5d3e 3c2f 7873 643a  ation. ]]></xsd:\n+0000dbb0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000dbc0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000dbd0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000dbe0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000dbf0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000dc00: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+0000dc10: 6e61 6d65 3d22 6b65 6570 616c 6976 6522  name=\"keepalive\"\n+0000dc20: 2074 7970 653d 2278 7364 3a62 6f6f 6c65   type=\"xsd:boole\n+0000dc30: 616e 223e 0d0a 2020 2020 2020 2020 2020  an\">..          \n+0000dc40: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000dc50: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000dc60: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000dc70: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000dc80: 2054 6865 2070 726f 746f 636f 6c20 6b65   The protocol ke\n+0000dc90: 6570 416c 6976 652e 205d 5d3e 3c2f 7873  epAlive. ]]></xs\n+0000dca0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000dcb0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000dcc0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000dcd0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000dce0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000dcf0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000dd00: 6520 6e61 6d65 3d22 6f70 7469 6d69 7a65  e name=\"optimize\n+0000dd10: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+0000dd20: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000dd30: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000dd40: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000dd50: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000dd60: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000dd70: 5b20 5468 6520 7365 7269 616c 697a 6174  [ The serializat\n+0000dd80: 696f 6e20 6f70 7469 6d69 7a65 722e 205d  ion optimizer. ]\n+0000dd90: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000dda0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000ddb0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000ddc0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000ddd0: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000dde0: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000ddf0: 7472 6962 7574 6520 6e61 6d65 3d22 6578  tribute name=\"ex\n+0000de00: 7465 6e73 696f 6e22 2074 7970 653d 2278  tension\" type=\"x\n+0000de10: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000de20: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000de30: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000de40: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000de50: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000de60: 5b43 4441 5441 5b20 5468 6520 6578 7465  [CDATA[ The exte\n+0000de70: 6e73 696f 6e20 666f 7220 7072 6f74 6f63  nsion for protoc\n+0000de80: 6f6c 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ol. ]]></xsd:doc\n+0000de90: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000dea0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000deb0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000dec0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000ded0: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000dee0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000def0: 653d 2263 6861 7273 6574 2220 7479 7065  e=\"charset\" type\n+0000df00: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+0000df10: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000df20: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000df30: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000df40: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000df50: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n+0000df60: 726f 746f 636f 6c20 6368 6172 7365 742e  rotocol charset.\n+0000df70: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000df80: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000df90: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+0000dfa0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000dfb0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000dfc0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+0000dfd0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+0000dfe0: 7061 796c 6f61 6422 2074 7970 653d 2278  payload\" type=\"x\n+0000dff0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000e000: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000e010: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e020: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e030: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000e040: 5b43 4441 5441 5b20 5468 6520 6d61 7820  [CDATA[ The max \n+0000e050: 7061 796c 6f61 642e 205d 5d3e 3c2f 7873  payload. ]]></xs\n+0000e060: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000e070: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000e080: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000e090: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000e0a0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000e0b0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000e0c0: 6520 6e61 6d65 3d22 6275 6666 6572 2220  e name=\"buffer\" \n+0000e0d0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000e0e0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000e0f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+0000e100: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+0000e110: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000e120: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000e130: 6865 2062 7566 6665 7220 7369 7a65 2e20  he buffer size. \n+0000e140: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+0000e150: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+0000e160: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000e170: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000e180: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+0000e190: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+0000e1a0: 7474 7269 6275 7465 206e 616d 653d 2268  ttribute name=\"h\n+0000e1b0: 6561 7274 6265 6174 2220 7479 7065 3d22  eartbeat\" type=\"\n+0000e1c0: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000e1d0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000e1e0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000e1f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000e200: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000e210: 215b 4344 4154 415b 2054 6865 2068 6561  ![CDATA[ The hea\n+0000e220: 7274 6265 6174 2069 6e74 6572 7661 6c2e  rtbeat interval.\n+0000e230: 286d 7329 205d 5d3e 3c2f 7873 643a 646f  (ms) ]]></xsd:do\n+0000e240: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000e250: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000e260: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e270: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000e280: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000e290: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000e2a0: 6d65 3d22 6163 6365 7373 6c6f 6722 2074  me=\"accesslog\" t\n+0000e2b0: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000e2c0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000e2d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000e2e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000e2f0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000e300: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+0000e310: 6520 7072 6f74 6f63 6f6c 2075 7365 2061  e protocol use a\n+0000e320: 6363 6573 736c 6f67 2e20 5d5d 3e3c 2f78  ccesslog. ]]></x\n+0000e330: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000e340: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000e350: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000e360: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000e370: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000e380: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000e390: 7465 206e 616d 653d 2274 656c 6e65 7422  te name=\"telnet\"\n+0000e3a0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000e3b0: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000e3c0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000e3d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000e3e0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000e3f0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000e400: 5468 6520 7072 6f74 6f63 6f6c 2075 7365  The protocol use\n+0000e410: 2074 656c 6e65 7420 636f 6d6d 616e 6473   telnet commands\n+0000e420: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000e430: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000e440: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000e450: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000e460: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000e470: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+0000e480: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000e490: 2270 726f 6d70 7422 2074 7970 653d 2278  \"prompt\" type=\"x\n+0000e4a0: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000e4b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000e4c0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e4d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e4e0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000e4f0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+0000e500: 6f63 6f6c 2074 656c 6e65 7420 7072 6f6d  ocol telnet prom\n+0000e510: 7074 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  pt. ]]></xsd:doc\n+0000e520: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+0000e530: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000e540: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000e550: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+0000e560: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+0000e570: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+0000e580: 653d 2273 7461 7475 7322 2074 7970 653d  e=\"status\" type=\n+0000e590: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000e5a0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e5b0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e5c0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000e5d0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000e5e0: 3c21 5b43 4441 5441 5b20 5468 6520 7072  <![CDATA[ The pr\n+0000e5f0: 6f74 6f63 6f6c 2063 6865 636b 2073 7461  otocol check sta\n+0000e600: 7475 732e 205d 5d3e 3c2f 7873 643a 646f  tus. ]]></xsd:do\n+0000e610: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000e620: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000e630: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e640: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000e650: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000e660: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000e670: 6d65 3d22 7472 616e 7370 6f72 7465 7222  me=\"transporter\"\n+0000e680: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000e690: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000e6a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000e6b0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000e6c0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000e6d0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000e6e0: 5468 6520 7072 6f74 6f63 6f6c 2074 7261  The protocol tra\n+0000e6f0: 6e73 706f 7274 6572 2074 7970 652e 205d  nsporter type. ]\n+0000e700: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+0000e710: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000e720: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000e730: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+0000e740: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+0000e750: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+0000e760: 7472 6962 7574 6520 6e61 6d65 3d22 6578  tribute name=\"ex\n+0000e770: 6368 616e 6765 7222 2074 7970 653d 2278  changer\" type=\"x\n+0000e780: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000e790: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000e7a0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e7b0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000e7c0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000e7d0: 5b43 4441 5441 5b20 5468 6520 7072 6f74  [CDATA[ The prot\n+0000e7e0: 6f63 6f6c 2065 7863 6861 6e67 6572 2074  ocol exchanger t\n+0000e7f0: 7970 652e 205d 5d3e 3c2f 7873 643a 646f  ype. ]]></xsd:do\n+0000e800: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000e810: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+0000e820: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000e830: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000e840: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+0000e850: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+0000e860: 6d65 3d22 6469 7370 6174 6865 7222 2074  me=\"dispather\" t\n+0000e870: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+0000e880: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000e890: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000e8a0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000e8b0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+0000e8c0: 696f 6e3e 3c21 5b43 4441 5441 5b20 4465  ion><![CDATA[ De\n+0000e8d0: 7072 6563 6174 6564 2e20 7265 706c 6163  precated. replac\n+0000e8e0: 6520 746f 2022 6469 7370 6174 6368 6572  e to \"dispatcher\n+0000e8f0: 222e 205d 5d3e 3c2f 7873 643a 646f 6375  \". ]]></xsd:docu\n+0000e900: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000e910: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000e920: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000e930: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000e940: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000e950: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000e960: 3d22 6469 7370 6174 6368 6572 2220 7479  =\"dispatcher\" ty\n+0000e970: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000e980: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+0000e990: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000e9a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000e9b0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000e9c0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000e9d0: 2070 726f 746f 636f 6c20 6469 7370 6174   protocol dispat\n+0000e9e0: 6368 6572 2074 7970 652e 205d 5d3e 3c2f  cher type. ]]></\n+0000e9f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000ea00: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000ea10: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+0000ea20: 3e0d 0a20 2020 2020 2020 203c 2f78 7364  >..        </xsd\n+0000ea30: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000ea40: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+0000ea50: 7574 6520 6e61 6d65 3d22 6e65 7477 6f72  ute name=\"networ\n+0000ea60: 6b65 7222 2074 7970 653d 2278 7364 3a73  ker\" type=\"xsd:s\n+0000ea70: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000ea80: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000ea90: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000eaa0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000eab0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000eac0: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n+0000ead0: 2022 6e65 7477 6f72 6b65 7222 2074 7970   \"networker\" typ\n+0000eae0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+0000eaf0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000eb00: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000eb10: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000eb20: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000eb30: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000eb40: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000eb50: 3d22 7365 7276 6572 2220 7479 7065 3d22  =\"server\" type=\"\n+0000eb60: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000eb70: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000eb80: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000eb90: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000eba0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000ebb0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+0000ebc0: 746f 636f 6c20 7365 7276 6572 2074 7970  tocol server typ\n+0000ebd0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+0000ebe0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000ebf0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000ec00: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000ec10: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000ec20: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000ec30: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000ec40: 3d22 636c 6965 6e74 2220 7479 7065 3d22  =\"client\" type=\"\n+0000ec50: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+0000ec60: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000ec70: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000ec80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000ec90: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000eca0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+0000ecb0: 746f 636f 6c20 636c 6965 6e74 2074 7970  tocol client typ\n+0000ecc0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n+0000ecd0: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+0000ece0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000ecf0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000ed00: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+0000ed10: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+0000ed20: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000ed30: 3d22 7061 7468 2220 7479 7065 3d22 7873  =\"path\" type=\"xs\n+0000ed40: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+0000ed50: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000ed60: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000ed70: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+0000ed80: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000ed90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000eda0: 2020 203c 215b 4344 4154 415b 2054 6865     <![CDATA[ The\n+0000edb0: 2070 726f 746f 636f 6c20 636f 6e74 6578   protocol contex\n+0000edc0: 7420 7061 7468 2e20 7265 706c 6163 6520  t path. replace \n+0000edd0: 746f 2022 636f 6e74 6578 7470 6174 6822  to \"contextpath\"\n+0000ede0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n+0000edf0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+0000ee00: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+0000ee10: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000ee20: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n+0000ee30: 653e 0d0a 2020 2020 2020 2020 3c78 7364  e>..        <xsd\n+0000ee40: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000ee50: 2263 6f6e 7465 7874 7061 7468 2220 7479  \"contextpath\" ty\n+0000ee60: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+0000ee70: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+0000ee80: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000ee90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000eea0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+0000eeb0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+0000eec0: 2070 726f 746f 636f 6c20 636f 6e74 6578   protocol contex\n+0000eed0: 7420 7061 7468 2e20 5d5d 3e3c 2f78 7364  t path. ]]></xsd\n+0000eee0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000eef0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n+0000ef00: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000ef10: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000ef20: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000ef30: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+0000ef40: 206e 616d 653d 2272 6567 6973 7465 7222   name=\"register\"\n+0000ef50: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000ef60: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000ef70: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000ef80: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000ef90: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000efa0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000efb0: 5468 6520 7072 6f74 6f63 6f6c 2063 616e  The protocol can\n+0000efc0: 2062 6520 7265 6769 7374 6572 2074 6f20   be register to \n+0000efd0: 7265 6769 7374 7279 2e20 5d5d 3e3c 2f78  registry. ]]></x\n+0000efe0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+0000eff0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+0000f000: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+0000f010: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+0000f020: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+0000f030: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+0000f040: 7465 206e 616d 653d 2264 6566 6175 6c74  te name=\"default\n+0000f050: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n+0000f060: 6e67 223e 0d0a 2020 2020 2020 2020 2020  ng\">..          \n+0000f070: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+0000f080: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000f090: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+0000f0a0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+0000f0b0: 2049 7320 6465 6661 756c 742e 205d 5d3e   Is default. ]]>\n+0000f0c0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+0000f0d0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000f0e0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000f0f0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+0000f100: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+0000f110: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000f120: 6962 7574 6520 6e61 6d65 3d22 7373 6c2d  ibute name=\"ssl-\n+0000f130: 656e 6162 6c65 6422 2074 7970 653d 2278  enabled\" type=\"x\n+0000f140: 7364 3a62 6f6f 6c65 616e 223e 0d0a 2020  sd:boolean\">..  \n+0000f150: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000f160: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000f170: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000f180: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+0000f190: 215b 4344 4154 415b 2049 7320 5353 4c20  ![CDATA[ Is SSL \n+0000f1a0: 656e 6162 6c65 642e 205d 5d3e 3c2f 7873  enabled. ]]></xs\n 0000f1b0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000f1c0: 3c21 5b43 4441 5441 5b20 5468 6520 7468  <![CDATA[ The th\n-0000f1d0: 7265 6164 2070 6f6f 6c20 7479 7065 2e20  read pool type. \n-0000f1e0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-0000f1f0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000f200: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-0000f210: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-0000f220: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-0000f230: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-0000f240: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f250: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-0000f260: 6d65 3d22 7468 7265 6164 6e61 6d65 2220  me=\"threadname\" \n-0000f270: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000f280: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000f290: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000f2a0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000f2b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f2c0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000f2d0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000f2e0: 2074 6872 6561 6420 706f 6f6c 206e 616d   thread pool nam\n-0000f2f0: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000f300: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000f310: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f320: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000f330: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000f340: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000f350: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f360: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000f370: 206e 616d 653d 2274 6872 6561 6473 2220   name=\"threads\" \n-0000f380: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000f390: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000f3a0: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000f3b0: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000f3c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f3d0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000f3e0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-0000f3f0: 2074 6872 6561 6420 706f 6f6c 2073 697a   thread pool siz\n-0000f400: 652e 205d 5d3e 3c2f 7873 643a 646f 6375  e. ]]></xsd:docu\n-0000f410: 6d65 6e74 6174 696f 6e3e 0a20 2020 2020  mentation>.     \n-0000f420: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000f430: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-0000f440: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-0000f450: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n-0000f460: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f470: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n-0000f480: 206e 616d 653d 2269 6f74 6872 6561 6473   name=\"iothreads\n-0000f490: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-0000f4a0: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-0000f4b0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-0000f4c0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-0000f4d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f4e0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-0000f4f0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-0000f500: 6865 2049 4f20 7468 7265 6164 2070 6f6f  he IO thread poo\n-0000f510: 6c20 7369 7a65 2e20 5d5d 3e3c 2f78 7364  l size. ]]></xsd\n-0000f520: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000f530: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f540: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000f550: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000f560: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000f570: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000f580: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000f590: 6962 7574 6520 6e61 6d65 3d22 616c 6976  ibute name=\"aliv\n-0000f5a0: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n-0000f5b0: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000f5c0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000f5d0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000f5e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f5f0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000f600: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000f610: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n-0000f620: 6b65 6570 416c 6976 6554 696d 652e 205d  keepAliveTime. ]\n-0000f630: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-0000f640: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-0000f650: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-0000f660: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000f670: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000f680: 7364 3a61 7474 7269 6275 7465 3e0a 2020  sd:attribute>.  \n-0000f690: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000f6a0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-0000f6b0: 653d 2271 7565 7565 7322 2074 7970 653d  e=\"queues\" type=\n-0000f6c0: 2278 7364 3a73 7472 696e 6722 3e0a 2020  \"xsd:string\">.  \n-0000f6d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f6e0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-0000f6f0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000f700: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-0000f710: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-0000f720: 5b43 4441 5441 5b20 5468 6520 7468 7265  [CDATA[ The thre\n-0000f730: 6164 2070 6f6f 6c20 7175 6575 6520 7369  ad pool queue si\n-0000f740: 7a65 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ze. ]]></xsd:doc\n-0000f750: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-0000f760: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f770: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-0000f780: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f790: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-0000f7a0: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-0000f7b0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-0000f7c0: 6520 6e61 6d65 3d22 6163 6365 7074 7322  e name=\"accepts\"\n-0000f7d0: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n-0000f7e0: 6722 3e0a 2020 2020 2020 2020 2020 2020  g\">.            \n-0000f7f0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-0000f800: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000f810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f820: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n-0000f830: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n-0000f840: 6520 6163 6365 7074 2063 6f6e 6e65 6374  e accept connect\n-0000f850: 696f 6e20 7369 7a65 2e20 5d5d 3e3c 2f78  ion size. ]]></x\n-0000f860: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-0000f870: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-0000f880: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-0000f890: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000f8a0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n-0000f8b0: 7472 6962 7574 653e 0a20 2020 2020 2020  tribute>.       \n-0000f8c0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n-0000f8d0: 7472 6962 7574 6520 6e61 6d65 3d22 636f  tribute name=\"co\n-0000f8e0: 6465 6322 2074 7970 653d 2278 7364 3a73  dec\" type=\"xsd:s\n-0000f8f0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-0000f900: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000f910: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-0000f920: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f930: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-0000f940: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-0000f950: 5b20 5468 6520 7072 6f74 6f63 6f6c 2063  [ The protocol c\n-0000f960: 6f64 6563 2e20 5d5d 3e3c 2f78 7364 3a64  odec. ]]></xsd:d\n-0000f970: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000f980: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000f990: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000f9a0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000f9b0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000f9c0: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000f9d0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000f9e0: 7574 6520 6e61 6d65 3d22 6368 6172 7365  ute name=\"charse\n-0000f9f0: 7422 2074 7970 653d 2278 7364 3a73 7472  t\" type=\"xsd:str\n-0000fa00: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000fa10: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000fa20: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000fa30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fa40: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000fa50: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000fa60: 5468 6520 7072 6f74 6f63 6f6c 2063 6861  The protocol cha\n-0000fa70: 7273 6574 2e20 5d5d 3e3c 2f78 7364 3a64  rset. ]]></xsd:d\n-0000fa80: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-0000fa90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000faa0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-0000fab0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000fac0: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-0000fad0: 7574 653e 0a20 2020 2020 2020 2020 2020  ute>.           \n-0000fae0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-0000faf0: 7574 6520 6e61 6d65 3d22 7061 796c 6f61  ute name=\"payloa\n-0000fb00: 6422 2074 7970 653d 2278 7364 3a73 7472  d\" type=\"xsd:str\n-0000fb10: 696e 6722 3e0a 2020 2020 2020 2020 2020  ing\">.          \n-0000fb20: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000fb30: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-0000fb40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fb50: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-0000fb60: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-0000fb70: 5468 6520 6d61 7820 7061 796c 6f61 642e  The max payload.\n-0000fb80: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000fb90: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000fba0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000fbb0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000fbc0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000fbd0: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000fbe0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fbf0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000fc00: 616d 653d 2262 7566 6665 7222 2074 7970  ame=\"buffer\" typ\n-0000fc10: 653d 2278 7364 3a73 7472 696e 6722 3e0a  e=\"xsd:string\">.\n-0000fc20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fc30: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-0000fc40: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-0000fc50: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-0000fc60: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-0000fc70: 3c21 5b43 4441 5441 5b20 5468 6520 6275  <![CDATA[ The bu\n-0000fc80: 6666 6572 2073 697a 652e 205d 5d3e 3c2f  ffer size. ]]></\n-0000fc90: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-0000fca0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-0000fcb0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-0000fcc0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-0000fcd0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-0000fce0: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-0000fcf0: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-0000fd00: 7474 7269 6275 7465 206e 616d 653d 2274  ttribute name=\"t\n-0000fd10: 7261 6e73 706f 7274 6572 2220 7479 7065  ransporter\" type\n-0000fd20: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-0000fd30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fd40: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-0000fd50: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-0000fd60: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-0000fd70: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-0000fd80: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n-0000fd90: 746f 636f 6c20 7472 616e 7370 6f72 7465  tocol transporte\n-0000fda0: 7220 7479 7065 2e20 5d5d 3e3c 2f78 7364  r type. ]]></xsd\n-0000fdb0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-0000fdc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fdd0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-0000fde0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-0000fdf0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-0000fe00: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-0000fe10: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-0000fe20: 6962 7574 6520 6e61 6d65 3d22 6578 6368  ibute name=\"exch\n-0000fe30: 616e 6765 7222 2074 7970 653d 2278 7364  anger\" type=\"xsd\n-0000fe40: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-0000fe50: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-0000fe60: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000fe70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000fe80: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-0000fe90: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-0000fea0: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n-0000feb0: 2065 7863 6861 6e67 6572 2074 7970 652e   exchanger type.\n-0000fec0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-0000fed0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-0000fee0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-0000fef0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-0000ff00: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-0000ff10: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-0000ff20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ff30: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-0000ff40: 616d 653d 2264 6973 7061 7468 6572 2220  ame=\"dispather\" \n-0000ff50: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n-0000ff60: 223e 0a20 2020 2020 2020 2020 2020 2020  \">.             \n-0000ff70: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n-0000ff80: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-0000ff90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-0000ffa0: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-0000ffb0: 6f6e 3e3c 215b 4344 4154 415b 2044 6570  on><![CDATA[ Dep\n-0000ffc0: 7265 6361 7465 642e 2072 6570 6c61 6365  recated. replace\n-0000ffd0: 2074 6f20 2264 6973 7061 7463 6865 7222   to \"dispatcher\"\n-0000ffe0: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-0000fff0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00010000: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00010010: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n+0000f1c0: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+0000f1d0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000f1e0: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+0000f1f0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+0000f200: 2020 203c 7873 643a 616e 7941 7474 7269     <xsd:anyAttri\n+0000f210: 6275 7465 206e 616d 6573 7061 6365 3d22  bute namespace=\"\n+0000f220: 2323 6f74 6865 7222 2070 726f 6365 7373  ##other\" process\n+0000f230: 436f 6e74 656e 7473 3d22 6c61 7822 2f3e  Contents=\"lax\"/>\n+0000f240: 0d0a 2020 2020 3c2f 7873 643a 636f 6d70  ..    </xsd:comp\n+0000f250: 6c65 7854 7970 653e 0d0a 0d0a 2020 2020  lexType>....    \n+0000f260: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n+0000f270: 206e 616d 653d 2270 726f 7669 6465 7254   name=\"providerT\n+0000f280: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+0000f290: 7873 643a 636f 6d70 6c65 7843 6f6e 7465  xsd:complexConte\n+0000f2a0: 6e74 3e0d 0a20 2020 2020 2020 2020 2020  nt>..           \n+0000f2b0: 203c 7873 643a 6578 7465 6e73 696f 6e20   <xsd:extension \n+0000f2c0: 6261 7365 3d22 6162 7374 7261 6374 5365  base=\"abstractSe\n+0000f2d0: 7276 6963 6554 7970 6522 3e0d 0a20 2020  rviceType\">..   \n+0000f2e0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f2f0: 643a 6368 6f69 6365 206d 696e 4f63 6375  d:choice minOccu\n+0000f300: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n+0000f310: 3d22 756e 626f 756e 6465 6422 3e0d 0a20  =\"unbounded\">.. \n+0000f320: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f330: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n+0000f340: 7265 663d 2273 6572 7669 6365 2220 6d69  ref=\"service\" mi\n+0000f350: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n+0000f360: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n+0000f370: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+0000f380: 2020 2020 2020 2020 203c 7873 643a 656c           <xsd:el\n+0000f390: 656d 656e 7420 7265 663d 2270 6172 616d  ement ref=\"param\n+0000f3a0: 6574 6572 2220 6d69 6e4f 6363 7572 733d  eter\" minOccurs=\n+0000f3b0: 2230 2220 6d61 784f 6363 7572 733d 2275  \"0\" maxOccurs=\"u\n+0000f3c0: 6e62 6f75 6e64 6564 222f 3e0d 0a20 2020  nbounded\"/>..   \n+0000f3d0: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+0000f3e0: 7364 3a63 686f 6963 653e 0d0a 2020 2020  sd:choice>..    \n+0000f3f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000f400: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+0000f410: 2268 6f73 7422 2074 7970 653d 2278 7364  \"host\" type=\"xsd\n+0000f420: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000f430: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f440: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000f450: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f460: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000f470: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000f480: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+0000f490: 6520 686f 7374 2e20 5d5d 3e3c 2f78 7364  e host. ]]></xsd\n+0000f4a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+0000f4b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f4c0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+0000f4d0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+0000f4e0: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+0000f4f0: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+0000f500: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+0000f510: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n+0000f520: 6f72 7422 2074 7970 653d 2278 7364 3a73  ort\" type=\"xsd:s\n+0000f530: 7472 696e 6722 3e0d 0a20 2020 2020 2020  tring\">..       \n+0000f540: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f550: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+0000f560: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f570: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+0000f580: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+0000f590: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n+0000f5a0: 706f 7274 2e20 5d5d 3e3c 2f78 7364 3a64  port. ]]></xsd:d\n+0000f5b0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000f5c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f5d0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000f5e0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000f5f0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000f600: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000f610: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000f620: 7269 6275 7465 206e 616d 653d 2274 6872  ribute name=\"thr\n+0000f630: 6561 6470 6f6f 6c22 2074 7970 653d 2278  eadpool\" type=\"x\n+0000f640: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+0000f650: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f660: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+0000f670: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000f680: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000f690: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+0000f6a0: 5b43 4441 5441 5b20 5468 6520 7468 7265  [CDATA[ The thre\n+0000f6b0: 6164 2070 6f6f 6c20 7479 7065 2e20 5d5d  ad pool type. ]]\n+0000f6c0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+0000f6d0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000f6e0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000f6f0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000f700: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+0000f710: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+0000f720: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f730: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+0000f740: 616d 653d 2274 6872 6561 646e 616d 6522  ame=\"threadname\"\n+0000f750: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+0000f760: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+0000f770: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+0000f780: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000f790: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f7a0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+0000f7b0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+0000f7c0: 5468 6520 7468 7265 6164 2070 6f6f 6c20  The thread pool \n+0000f7d0: 6e61 6d65 2e20 5d5d 3e3c 2f78 7364 3a64  name. ]]></xsd:d\n+0000f7e0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000f7f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f800: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000f810: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000f820: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000f830: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000f840: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000f850: 7269 6275 7465 206e 616d 653d 2274 6872  ribute name=\"thr\n+0000f860: 6561 6473 2220 7479 7065 3d22 7873 643a  eads\" type=\"xsd:\n+0000f870: 7374 7269 6e67 223e 0d0a 2020 2020 2020  string\">..      \n+0000f880: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000f890: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+0000f8a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000f8b0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+0000f8c0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+0000f8d0: 4154 415b 2054 6865 2074 6872 6561 6420  ATA[ The thread \n+0000f8e0: 706f 6f6c 2073 697a 652e 205d 5d3e 3c2f  pool size. ]]></\n+0000f8f0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000f900: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000f910: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000f920: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000f930: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000f940: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000f950: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000f960: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000f970: 3d22 696f 7468 7265 6164 7322 2074 7970  =\"iothreads\" typ\n+0000f980: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+0000f990: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000f9a0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+0000f9b0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000f9c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000f9d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000f9e0: 6e3e 3c21 5b43 4441 5441 5b20 5468 6520  n><![CDATA[ The \n+0000f9f0: 494f 2074 6872 6561 6420 706f 6f6c 2073  IO thread pool s\n+0000fa00: 697a 652e 205d 5d3e 3c2f 7873 643a 646f  ize. ]]></xsd:do\n+0000fa10: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+0000fa20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fa30: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+0000fa40: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000fa50: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+0000fa60: 6275 7465 3e0d 0a20 2020 2020 2020 2020  bute>..         \n+0000fa70: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+0000fa80: 6962 7574 6520 6e61 6d65 3d22 616c 6976  ibute name=\"aliv\n+0000fa90: 6522 2074 7970 653d 2278 7364 3a73 7472  e\" type=\"xsd:str\n+0000faa0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+0000fab0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+0000fac0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+0000fad0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fae0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+0000faf0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+0000fb00: 5b20 5468 6520 7468 7265 6164 2070 6f6f  [ The thread poo\n+0000fb10: 6c20 6b65 6570 416c 6976 6554 696d 652e  l keepAliveTime.\n+0000fb20: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+0000fb30: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+0000fb40: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+0000fb50: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000fb60: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000fb70: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+0000fb80: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+0000fb90: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+0000fba0: 6520 6e61 6d65 3d22 7175 6575 6573 2220  e name=\"queues\" \n+0000fbb0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+0000fbc0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+0000fbd0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+0000fbe0: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+0000fbf0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fc00: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+0000fc10: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+0000fc20: 6865 2074 6872 6561 6420 706f 6f6c 2071  he thread pool q\n+0000fc30: 7565 7565 2073 697a 652e 205d 5d3e 3c2f  ueue size. ]]></\n+0000fc40: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+0000fc50: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+0000fc60: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+0000fc70: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+0000fc80: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+0000fc90: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+0000fca0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000fcb0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+0000fcc0: 3d22 6163 6365 7074 7322 2074 7970 653d  =\"accepts\" type=\n+0000fcd0: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+0000fce0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fcf0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+0000fd00: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000fd10: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+0000fd20: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+0000fd30: 3c21 5b43 4441 5441 5b20 5468 6520 6163  <![CDATA[ The ac\n+0000fd40: 6365 7074 2063 6f6e 6e65 6374 696f 6e20  cept connection \n+0000fd50: 7369 7a65 2e20 5d5d 3e3c 2f78 7364 3a64  size. ]]></xsd:d\n+0000fd60: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+0000fd70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fd80: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+0000fd90: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+0000fda0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+0000fdb0: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+0000fdc0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+0000fdd0: 7269 6275 7465 206e 616d 653d 2263 6f64  ribute name=\"cod\n+0000fde0: 6563 2220 7479 7065 3d22 7873 643a 7374  ec\" type=\"xsd:st\n+0000fdf0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+0000fe00: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+0000fe10: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+0000fe20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fe30: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+0000fe40: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+0000fe50: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+0000fe60: 636f 6465 632e 205d 5d3e 3c2f 7873 643a  codec. ]]></xsd:\n+0000fe70: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+0000fe80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+0000fe90: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+0000fea0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+0000feb0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+0000fec0: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+0000fed0: 2020 2020 2020 2020 203c 7873 643a 6174           <xsd:at\n+0000fee0: 7472 6962 7574 6520 6e61 6d65 3d22 6368  tribute name=\"ch\n+0000fef0: 6172 7365 7422 2074 7970 653d 2278 7364  arset\" type=\"xsd\n+0000ff00: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+0000ff10: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+0000ff20: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+0000ff30: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+0000ff40: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+0000ff50: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+0000ff60: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n+0000ff70: 6f6c 2063 6861 7273 6574 2e20 5d5d 3e3c  ol charset. ]]><\n+0000ff80: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+0000ff90: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+0000ffa0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+0000ffb0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+0000ffc0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+0000ffd0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+0000ffe0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+0000fff0: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00010000: 653d 2270 6179 6c6f 6164 2220 7479 7065  e=\"payload\" type\n+00010010: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n 00010020: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010030: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00010040: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010050: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00010060: 6e61 6d65 3d22 6469 7370 6174 6368 6572  name=\"dispatcher\n-00010070: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00010080: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00010090: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-000100a0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000100b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000100c0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-000100d0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-000100e0: 6865 2070 726f 746f 636f 6c20 6469 7370  he protocol disp\n-000100f0: 6174 6368 6572 2074 7970 652e 205d 5d3e  atcher type. ]]>\n-00010100: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00010110: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00010120: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00010130: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00010140: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00010150: 3a61 7474 7269 6275 7465 3e0a 2020 2020  :attribute>.    \n-00010160: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00010170: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n-00010180: 226e 6574 776f 726b 6572 2220 7479 7065  \"networker\" type\n-00010190: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-000101a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000101b0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000101c0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000101d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000101e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000101f0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n-00010200: 746f 636f 6c20 226e 6574 776f 726b 6572  tocol \"networker\n-00010210: 2220 7479 7065 2e20 5d5d 3e3c 2f78 7364  \" type. ]]></xsd\n-00010220: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00010230: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010240: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00010250: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010260: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-00010270: 6962 7574 653e 0a20 2020 2020 2020 2020  ibute>.         \n-00010280: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n-00010290: 6962 7574 6520 6e61 6d65 3d22 7365 7276  ibute name=\"serv\n-000102a0: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n-000102b0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-000102c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000102d0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000102e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000102f0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00010300: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00010310: 2054 6865 2070 726f 746f 636f 6c20 7365   The protocol se\n-00010320: 7276 6572 2074 7970 652e 205d 5d3e 3c2f  rver type. ]]></\n-00010330: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00010340: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00010350: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00010360: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00010370: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00010380: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00010390: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-000103a0: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-000103b0: 6c69 656e 7422 2074 7970 653d 2278 7364  lient\" type=\"xsd\n-000103c0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-000103d0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-000103e0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000103f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010400: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00010410: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00010420: 5441 5b20 5468 6520 7072 6f74 6f63 6f6c  TA[ The protocol\n-00010430: 2063 6c69 656e 7420 7479 7065 2e20 5d5d   client type. ]]\n-00010440: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00010450: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010460: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00010470: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00010480: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00010490: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-000104a0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000104b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000104c0: 3d22 7465 6c6e 6574 2220 7479 7065 3d22  =\"telnet\" type=\"\n-000104d0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-000104e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000104f0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00010500: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010510: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00010520: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00010530: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-00010540: 636f 6c20 7573 6520 7465 6c6e 6574 2063  col use telnet c\n-00010550: 6f6d 6d61 6e64 732e 205d 5d3e 3c2f 7873  ommands. ]]></xs\n-00010560: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00010570: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010580: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00010590: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000105a0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000105b0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000105c0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000105d0: 7269 6275 7465 206e 616d 653d 2270 726f  ribute name=\"pro\n-000105e0: 6d70 7422 2074 7970 653d 2278 7364 3a73  mpt\" type=\"xsd:s\n-000105f0: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00010600: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00010610: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00010620: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010630: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00010640: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00010650: 5b20 5468 6520 7072 6f74 6f63 6f6c 2074  [ The protocol t\n-00010660: 656c 6e65 7420 7072 6f6d 7074 2e20 5d5d  elnet prompt. ]]\n-00010670: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n-00010680: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010690: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-000106a0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000106b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000106c0: 643a 6174 7472 6962 7574 653e 0a20 2020  d:attribute>.   \n-000106d0: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n-000106e0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000106f0: 3d22 7374 6174 7573 2220 7479 7065 3d22  =\"status\" type=\"\n-00010700: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00010710: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010720: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00010730: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010740: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00010750: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00010760: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n-00010770: 636f 6c20 6368 6563 6b20 7374 6174 7573  col check status\n-00010780: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00010790: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-000107a0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-000107b0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-000107c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000107d0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-000107e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000107f0: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n-00010800: 6e61 6d65 3d22 7061 7468 2220 7479 7065  name=\"path\" type\n-00010810: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00010820: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010830: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00010840: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00010850: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00010860: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-00010870: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010880: 2020 2020 2020 2020 2020 2020 3c21 5b43              <![C\n-00010890: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n-000108a0: 6f6c 2063 6f6e 7465 7874 2070 6174 682e  ol context path.\n-000108b0: 2072 6570 6c61 6365 2074 6f20 2263 6f6e   replace to \"con\n-000108c0: 7465 7874 7061 7468 222e 205d 5d3e 3c2f  textpath\". ]]></\n-000108d0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000108e0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000108f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00010900: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00010910: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n-00010920: 7474 7269 6275 7465 3e0a 2020 2020 2020  ttribute>.      \n-00010930: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00010940: 7474 7269 6275 7465 206e 616d 653d 2263  ttribute name=\"c\n-00010950: 6f6e 7465 7874 7061 7468 2220 7479 7065  ontextpath\" type\n-00010960: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-00010970: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010980: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00010990: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-000109a0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-000109b0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-000109c0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n-000109d0: 746f 636f 6c20 636f 6e74 6578 7420 7061  tocol context pa\n-000109e0: 7468 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  th. ]]></xsd:doc\n-000109f0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00010a00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010a10: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00010a20: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00010a30: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00010a40: 653e 0a20 2020 2020 2020 2020 2020 2020  e>.             \n-00010a50: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00010a60: 6520 6e61 6d65 3d22 7761 6974 2220 7479  e name=\"wait\" ty\n-00010a70: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n-00010a80: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010a90: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00010aa0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00010ab0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00010ac0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00010ad0: 3e3c 215b 4344 4154 415b 2054 6865 2070  ><![CDATA[ The p\n-00010ae0: 726f 7669 6465 7220 7368 7574 646f 776e  rovider shutdown\n-00010af0: 2077 6169 7420 7469 6d65 2e20 5d5d 3e3c   wait time. ]]><\n-00010b00: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00010b10: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00010b20: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00010b30: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00010b40: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00010b50: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00010b60: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00010b70: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00010b80: 6465 6661 756c 7422 2074 7970 653d 2278  default\" type=\"x\n-00010b90: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00010ba0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010bb0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00010bc0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010bd0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00010be0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00010bf0: 4441 5441 5b20 4973 2064 6566 6175 6c74  DATA[ Is default\n-00010c00: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00010c10: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00010c20: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00010c30: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00010c40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010c50: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00010c60: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00010c70: 203c 7873 643a 616e 7941 7474 7269 6275   <xsd:anyAttribu\n-00010c80: 7465 206e 616d 6573 7061 6365 3d22 2323  te namespace=\"##\n-00010c90: 6f74 6865 7222 2070 726f 6365 7373 436f  other\" processCo\n-00010ca0: 6e74 656e 7473 3d22 6c61 7822 2f3e 0a20  ntents=\"lax\"/>. \n-00010cb0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00010cc0: 3a65 7874 656e 7369 6f6e 3e0a 2020 2020  :extension>.    \n-00010cd0: 2020 2020 3c2f 7873 643a 636f 6d70 6c65      </xsd:comple\n-00010ce0: 7843 6f6e 7465 6e74 3e0a 2020 2020 3c2f  xContent>.    </\n-00010cf0: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n-00010d00: 0a0a 2020 2020 3c78 7364 3a63 6f6d 706c  ..    <xsd:compl\n-00010d10: 6578 5479 7065 206e 616d 653d 2273 6572  exType name=\"ser\n-00010d20: 7669 6365 5479 7065 223e 0a20 2020 2020  viceType\">.     \n-00010d30: 2020 203c 7873 643a 636f 6d70 6c65 7843     <xsd:complexC\n-00010d40: 6f6e 7465 6e74 3e0a 2020 2020 2020 2020  ontent>.        \n-00010d50: 2020 2020 3c78 7364 3a65 7874 656e 7369      <xsd:extensi\n-00010d60: 6f6e 2062 6173 653d 2261 6273 7472 6163  on base=\"abstrac\n-00010d70: 7453 6572 7669 6365 5479 7065 223e 0a20  tServiceType\">. \n-00010d80: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010d90: 7873 643a 6368 6f69 6365 206d 696e 4f63  xsd:choice minOc\n-00010da0: 6375 7273 3d22 3022 206d 6178 4f63 6375  curs=\"0\" maxOccu\n-00010db0: 7273 3d22 756e 626f 756e 6465 6422 3e0a  rs=\"unbounded\">.\n+00010030: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00010040: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00010050: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00010060: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00010070: 3e3c 215b 4344 4154 415b 2054 6865 206d  ><![CDATA[ The m\n+00010080: 6178 2070 6179 6c6f 6164 2e20 5d5d 3e3c  ax payload. ]]><\n+00010090: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+000100a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000100b0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000100c0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+000100d0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000100e0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000100f0: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00010100: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00010110: 653d 2262 7566 6665 7222 2074 7970 653d  e=\"buffer\" type=\n+00010120: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00010130: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010140: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+00010150: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00010160: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010170: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00010180: 3c21 5b43 4441 5441 5b20 5468 6520 6275  <![CDATA[ The bu\n+00010190: 6666 6572 2073 697a 652e 205d 5d3e 3c2f  ffer size. ]]></\n+000101a0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000101b0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000101c0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000101d0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000101e0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+000101f0: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010200: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010210: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010220: 3d22 7472 616e 7370 6f72 7465 7222 2074  =\"transporter\" t\n+00010230: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00010240: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010250: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00010260: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00010270: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010280: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00010290: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000102a0: 6520 7072 6f74 6f63 6f6c 2074 7261 6e73  e protocol trans\n+000102b0: 706f 7274 6572 2074 7970 652e 205d 5d3e  porter type. ]]>\n+000102c0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+000102d0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000102e0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+000102f0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00010300: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00010310: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00010320: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00010330: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00010340: 6d65 3d22 6578 6368 616e 6765 7222 2074  me=\"exchanger\" t\n+00010350: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00010360: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010370: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00010380: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00010390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000103a0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+000103b0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000103c0: 6520 7072 6f74 6f63 6f6c 2065 7863 6861  e protocol excha\n+000103d0: 6e67 6572 2074 7970 652e 205d 5d3e 3c2f  nger type. ]]></\n+000103e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000103f0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010400: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010410: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010420: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010430: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010440: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010450: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010460: 3d22 6469 7370 6174 6865 7222 2074 7970  =\"dispather\" typ\n+00010470: 653d 2278 7364 3a73 7472 696e 6722 3e0d  e=\"xsd:string\">.\n+00010480: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010490: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+000104a0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+000104b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000104c0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000104d0: 6e3e 3c21 5b43 4441 5441 5b20 4465 7072  n><![CDATA[ Depr\n+000104e0: 6563 6174 6564 2e20 7265 706c 6163 6520  ecated. replace \n+000104f0: 746f 2022 6469 7370 6174 6368 6572 222e  to \"dispatcher\".\n+00010500: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010510: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010520: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010530: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010540: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010550: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00010560: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010570: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00010580: 6520 6e61 6d65 3d22 6469 7370 6174 6368  e name=\"dispatch\n+00010590: 6572 2220 7479 7065 3d22 7873 643a 7374  er\" type=\"xsd:st\n+000105a0: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+000105b0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000105c0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000105d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000105e0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+000105f0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00010600: 415b 2054 6865 2070 726f 746f 636f 6c20  A[ The protocol \n+00010610: 6469 7370 6174 6368 6572 2074 7970 652e  dispatcher type.\n+00010620: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010630: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010640: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010650: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010660: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010670: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00010680: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010690: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000106a0: 6520 6e61 6d65 3d22 6e65 7477 6f72 6b65  e name=\"networke\n+000106b0: 7222 2074 7970 653d 2278 7364 3a73 7472  r\" type=\"xsd:str\n+000106c0: 696e 6722 3e0d 0a20 2020 2020 2020 2020  ing\">..         \n+000106d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000106e0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000106f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010700: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n+00010710: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n+00010720: 5b20 5468 6520 7072 6f74 6f63 6f6c 2022  [ The protocol \"\n+00010730: 6e65 7477 6f72 6b65 7222 2074 7970 652e  networker\" type.\n+00010740: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010750: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010760: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010770: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010780: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010790: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+000107a0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000107b0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000107c0: 6520 6e61 6d65 3d22 7365 7276 6572 2220  e name=\"server\" \n+000107d0: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+000107e0: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+000107f0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00010800: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00010810: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010820: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00010830: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00010840: 6865 2070 726f 746f 636f 6c20 7365 7276  he protocol serv\n+00010850: 6572 2074 7970 652e 205d 5d3e 3c2f 7873  er type. ]]></xs\n+00010860: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00010870: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010880: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00010890: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000108a0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000108b0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+000108c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000108d0: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+000108e0: 636c 6965 6e74 2220 7479 7065 3d22 7873  client\" type=\"xs\n+000108f0: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00010900: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010910: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00010920: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010930: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00010940: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00010950: 4344 4154 415b 2054 6865 2070 726f 746f  CDATA[ The proto\n+00010960: 636f 6c20 636c 6965 6e74 2074 7970 652e  col client type.\n+00010970: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010980: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010990: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+000109a0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+000109b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000109c0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+000109d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000109e0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+000109f0: 6520 6e61 6d65 3d22 7465 6c6e 6574 2220  e name=\"telnet\" \n+00010a00: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00010a10: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00010a20: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00010a30: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00010a40: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010a50: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00010a60: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00010a70: 6865 2070 726f 746f 636f 6c20 7573 6520  he protocol use \n+00010a80: 7465 6c6e 6574 2063 6f6d 6d61 6e64 732e  telnet commands.\n+00010a90: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010aa0: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010ab0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010ac0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010ad0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010ae0: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00010af0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010b00: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00010b10: 6520 6e61 6d65 3d22 7072 6f6d 7074 2220  e name=\"prompt\" \n+00010b20: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00010b30: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00010b40: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00010b50: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00010b60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010b70: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00010b80: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00010b90: 6865 2070 726f 746f 636f 6c20 7465 6c6e  he protocol teln\n+00010ba0: 6574 2070 726f 6d70 742e 205d 5d3e 3c2f  et prompt. ]]></\n+00010bb0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+00010bc0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010bd0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00010be0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010bf0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00010c00: 3a61 7474 7269 6275 7465 3e0d 0a20 2020  :attribute>..   \n+00010c10: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00010c20: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00010c30: 3d22 7374 6174 7573 2220 7479 7065 3d22  =\"status\" type=\"\n+00010c40: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00010c50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010c60: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00010c70: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010c80: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00010c90: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00010ca0: 215b 4344 4154 415b 2054 6865 2070 726f  ![CDATA[ The pro\n+00010cb0: 746f 636f 6c20 6368 6563 6b20 7374 6174  tocol check stat\n+00010cc0: 7573 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  us. ]]></xsd:doc\n+00010cd0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00010ce0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010cf0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00010d00: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00010d10: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00010d20: 7574 653e 0d0a 2020 2020 2020 2020 2020  ute>..          \n+00010d30: 2020 2020 2020 3c78 7364 3a61 7474 7269        <xsd:attri\n+00010d40: 6275 7465 206e 616d 653d 2270 6174 6822  bute name=\"path\"\n+00010d50: 2074 7970 653d 2278 7364 3a73 7472 696e   type=\"xsd:strin\n+00010d60: 6722 3e0d 0a20 2020 2020 2020 2020 2020  g\">..           \n+00010d70: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n+00010d80: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00010d90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010da0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00010db0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n 00010dc0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010dd0: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n-00010de0: 2072 6566 3d22 6d65 7468 6f64 2220 6d69   ref=\"method\" mi\n-00010df0: 6e4f 6363 7572 733d 2230 2220 6d61 784f  nOccurs=\"0\" maxO\n-00010e00: 6363 7572 733d 2275 6e62 6f75 6e64 6564  ccurs=\"unbounded\n-00010e10: 222f 3e0a 2020 2020 2020 2020 2020 2020  \"/>.            \n-00010e20: 2020 2020 2020 2020 3c78 7364 3a65 6c65          <xsd:ele\n-00010e30: 6d65 6e74 2072 6566 3d22 7061 7261 6d65  ment ref=\"parame\n-00010e40: 7465 7222 206d 696e 4f63 6375 7273 3d22  ter\" minOccurs=\"\n-00010e50: 3022 206d 6178 4f63 6375 7273 3d22 756e  0\" maxOccurs=\"un\n-00010e60: 626f 756e 6465 6422 2f3e 0a20 2020 2020  bounded\"/>.     \n-00010e70: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00010e80: 7873 643a 656c 656d 656e 7420 7265 663d  xsd:element ref=\n-00010e90: 2262 6561 6e73 3a70 726f 7065 7274 7922  \"beans:property\"\n-00010ea0: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n-00010eb0: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n-00010ec0: 6465 6422 2f3e 0a20 2020 2020 2020 2020  ded\"/>.         \n-00010ed0: 2020 2020 2020 203c 2f78 7364 3a63 686f         </xsd:cho\n-00010ee0: 6963 653e 0a20 2020 2020 2020 2020 2020  ice>.           \n-00010ef0: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n-00010f00: 7574 6520 6e61 6d65 3d22 696e 7465 7266  ute name=\"interf\n-00010f10: 6163 6522 2074 7970 653d 2278 7364 3a74  ace\" type=\"xsd:t\n-00010f20: 6f6b 656e 2220 7573 653d 2272 6571 7569  oken\" use=\"requi\n-00010f30: 7265 6422 3e0a 2020 2020 2020 2020 2020  red\">.          \n-00010f40: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00010f50: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00010f60: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010f70: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00010f80: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00010f90: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00010fa0: 2020 203c 215b 4344 4154 415b 2044 6566     <![CDATA[ Def\n-00010fb0: 696e 6573 2074 6865 2069 6e74 6572 6661  ines the interfa\n-00010fc0: 6365 2074 6f20 6164 7665 7274 6973 6520  ce to advertise \n-00010fd0: 666f 7220 7468 6973 2073 6572 7669 6365  for this service\n-00010fe0: 2069 6e20 7468 6520 7365 7276 6963 6520   in the service \n-00010ff0: 7265 6769 7374 7279 2e20 5d5d 3e3c 2f78  registry. ]]></x\n-00011000: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00011010: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00011020: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00011030: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-00011040: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011050: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n-00011060: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00011070: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011080: 2020 2020 2020 3c74 6f6f 6c3a 6578 7065        <tool:expe\n-00011090: 6374 6564 2d74 7970 6520 7479 7065 3d22  cted-type type=\"\n-000110a0: 6a61 7661 2e6c 616e 672e 436c 6173 7322  java.lang.Class\"\n-000110b0: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-000110c0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000110d0: 2f74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  /tool:annotation\n-000110e0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000110f0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00011100: 6170 7069 6e66 6f3e 0a20 2020 2020 2020  appinfo>.       \n-00011110: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00011120: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011130: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00011140: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00011150: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011160: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00011170: 616d 653d 2272 6566 2220 7479 7065 3d22  ame=\"ref\" type=\"\n-00011180: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00011190: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000111a0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000111b0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-000111c0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-000111d0: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-000111e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000111f0: 2020 2020 2020 2020 2020 3c21 5b43 4441            <![CDA\n-00011200: 5441 5b20 5468 6520 7365 7276 6963 6520  TA[ The service \n-00011210: 696d 706c 656d 656e 7461 7469 6f6e 2069  implementation i\n-00011220: 6e73 7461 6e63 6520 6265 616e 2069 642e  nstance bean id.\n-00011230: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00011240: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00011250: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n-00011260: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011270: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00011280: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00011290: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000112a0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-000112b0: 616d 653d 2263 6c61 7373 2220 7479 7065  ame=\"class\" type\n-000112c0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-000112d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000112e0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-000112f0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00011300: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00011310: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00011320: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n-00011330: 7669 6365 2069 6d70 6c65 6d65 6e74 6174  vice implementat\n-00011340: 696f 6e20 636c 6173 7320 6e61 6d65 2e20  ion class name. \n-00011350: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00011360: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011370: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-00011380: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00011390: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-000113a0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000113b0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000113c0: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n-000113d0: 6d65 3d22 7061 7468 2220 7479 7065 3d22  me=\"path\" type=\"\n-000113e0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-000113f0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011400: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00011410: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00011420: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00011430: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00011440: 4344 4154 415b 2054 6865 2073 6572 7669  CDATA[ The servi\n-00011450: 6365 2070 6174 682e 205d 5d3e 3c2f 7873  ce path. ]]></xs\n-00011460: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00011470: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00011480: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00011490: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000114a0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-000114b0: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-000114c0: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000114d0: 7269 6275 7465 206e 616d 653d 2270 726f  ribute name=\"pro\n-000114e0: 7669 6465 7222 2074 7970 653d 2278 7364  vider\" type=\"xsd\n-000114f0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00011500: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n-00011510: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011520: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011530: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00011540: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00011550: 5441 5b20 4465 7072 6563 6174 6564 2e20  TA[ Deprecated. \n-00011560: 5265 706c 6163 6520 746f 2070 726f 746f  Replace to proto\n-00011570: 636f 6c2e 205d 5d3e 3c2f 7873 643a 646f  col. ]]></xsd:do\n-00011580: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00011590: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000115a0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n-000115b0: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-000115c0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n-000115d0: 7465 3e0a 2020 2020 2020 2020 2020 2020  te>.            \n-000115e0: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n-000115f0: 7465 206e 616d 653d 2267 656e 6572 6963  te name=\"generic\n-00011600: 2220 7479 7065 3d22 7873 643a 7374 7269  \" type=\"xsd:stri\n-00011610: 6e67 223e 0a20 2020 2020 2020 2020 2020  ng\">.           \n-00011620: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00011630: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00011640: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00011650: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00011660: 7469 6f6e 3e3c 215b 4344 4154 415b 2047  tion><![CDATA[ G\n-00011670: 656e 6572 6963 2073 6572 7669 6365 2e20  eneric service. \n-00011680: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n-00011690: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-000116a0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000116b0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000116c0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-000116d0: 7873 643a 6174 7472 6962 7574 653e 0a20  xsd:attribute>. \n-000116e0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000116f0: 7873 643a 616e 7941 7474 7269 6275 7465  xsd:anyAttribute\n-00011700: 206e 616d 6573 7061 6365 3d22 2323 6f74   namespace=\"##ot\n-00011710: 6865 7222 2070 726f 6365 7373 436f 6e74  her\" processCont\n-00011720: 656e 7473 3d22 6c61 7822 2f3e 0a20 2020  ents=\"lax\"/>.   \n-00011730: 2020 2020 2020 2020 203c 2f78 7364 3a65           </xsd:e\n-00011740: 7874 656e 7369 6f6e 3e0a 2020 2020 2020  xtension>.      \n-00011750: 2020 3c2f 7873 643a 636f 6d70 6c65 7843    </xsd:complexC\n-00011760: 6f6e 7465 6e74 3e0a 2020 2020 3c2f 7873  ontent>.    </xs\n-00011770: 643a 636f 6d70 6c65 7854 7970 653e 0a0a  d:complexType>..\n-00011780: 2020 2020 3c78 7364 3a63 6f6d 706c 6578      <xsd:complex\n-00011790: 5479 7065 206e 616d 653d 2273 736c 5479  Type name=\"sslTy\n-000117a0: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-000117b0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-000117c0: 3d22 6964 2220 7479 7065 3d22 7873 643a  =\"id\" type=\"xsd:\n-000117d0: 4944 223e 0a20 2020 2020 2020 2020 2020  ID\">.           \n-000117e0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-000117f0: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00011800: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n-00011810: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n-00011820: 6865 2075 6e69 7175 6520 6964 656e 7469  he unique identi\n-00011830: 6669 6572 2066 6f72 2061 2062 6561 6e2e  fier for a bean.\n-00011840: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00011850: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00011860: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n-00011870: 6174 696f 6e3e 0a20 2020 2020 2020 203c  ation>.        <\n-00011880: 2f78 7364 3a61 7474 7269 6275 7465 3e0a  /xsd:attribute>.\n-00011890: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n-000118a0: 7269 6275 7465 206e 616d 653d 2273 6572  ribute name=\"ser\n-000118b0: 7665 722d 6b65 792d 6365 7274 2d63 6861  ver-key-cert-cha\n-000118c0: 696e 2d70 6174 6822 2074 7970 653d 2278  in-path\" type=\"x\n-000118d0: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-000118e0: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-000118f0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00011900: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00011910: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00011920: 4441 5441 5b20 5468 6520 7365 7276 6572  DATA[ The server\n-00011930: 2063 6572 742e 205d 5d3e 3c2f 7873 643a   cert. ]]></xsd:\n-00011940: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00011950: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00011960: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00011970: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00011980: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00011990: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-000119a0: 653d 2273 6572 7665 722d 7072 6976 6174  e=\"server-privat\n-000119b0: 652d 6b65 792d 7061 7468 2220 7479 7065  e-key-path\" type\n-000119c0: 3d22 7873 643a 7374 7269 6e67 223e 0a20  =\"xsd:string\">. \n-000119d0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000119e0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000119f0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n-00011a00: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n-00011a10: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n-00011a20: 7665 7220 6b65 792e 205d 5d3e 3c2f 7873  ver key. ]]></xs\n-00011a30: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00011a40: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00011a50: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00011a60: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n-00011a70: 7269 6275 7465 3e0a 2020 2020 2020 2020  ribute>.        \n-00011a80: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00011a90: 616d 653d 2273 6572 7665 722d 6b65 792d  ame=\"server-key-\n-00011aa0: 7061 7373 776f 7264 2220 7479 7065 3d22  password\" type=\"\n-00011ab0: 7873 643a 7374 7269 6e67 223e 0a20 2020  xsd:string\">.   \n-00011ac0: 2020 2020 2020 2020 203c 7873 643a 616e           <xsd:an\n-00011ad0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00011ae0: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00011af0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00011b00: 4344 4154 415b 2054 6865 2073 6572 7665  CDATA[ The serve\n-00011b10: 7220 6b65 792e 205d 5d3e 3c2f 7873 643a  r key. ]]></xsd:\n-00011b20: 646f 6375 6d65 6e74 6174 696f 6e3e 0a20  documentation>. \n-00011b30: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00011b40: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-00011b50: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n-00011b60: 6275 7465 3e0a 2020 2020 2020 2020 3c78  bute>.        <x\n-00011b70: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n-00011b80: 653d 2273 6572 7665 722d 7472 7573 742d  e=\"server-trust-\n-00011b90: 6365 7274 2d63 6f6c 6c65 6374 696f 6e2d  cert-collection-\n-00011ba0: 7061 7468 2220 7479 7065 3d22 7873 643a  path\" type=\"xsd:\n-00011bb0: 7374 7269 6e67 223e 0a20 2020 2020 2020  string\">.       \n-00011bc0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n-00011bd0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00011be0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00011bf0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00011c00: 415b 2054 6865 2074 7275 7374 6564 2073  A[ The trusted s\n-00011c10: 6572 7665 7220 6365 7274 2e20 5d5d 3e3c  erver cert. ]]><\n-00011c20: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00011c30: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00011c40: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n-00011c50: 3e0a 2020 2020 2020 2020 3c2f 7873 643a  >.        </xsd:\n-00011c60: 6174 7472 6962 7574 653e 0a20 2020 2020  attribute>.     \n-00011c70: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n-00011c80: 6520 6e61 6d65 3d22 636c 6965 6e74 2d6b  e name=\"client-k\n-00011c90: 6579 2d63 6572 742d 6368 6169 6e2d 7061  ey-cert-chain-pa\n-00011ca0: 7468 2220 7479 7065 3d22 7873 643a 7374  th\" type=\"xsd:st\n-00011cb0: 7269 6e67 223e 0a20 2020 2020 2020 2020  ring\">.         \n-00011cc0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00011cd0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00011ce0: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n-00011cf0: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n-00011d00: 2054 6865 2063 6c69 656e 7420 6365 7274   The client cert\n-00011d10: 2e20 5d5d 3e3c 2f78 7364 3a64 6f63 756d  . ]]></xsd:docum\n-00011d20: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00011d30: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00011d40: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00011d50: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n-00011d60: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n-00011d70: 7472 6962 7574 6520 6e61 6d65 3d22 636c  tribute name=\"cl\n-00011d80: 6965 6e74 2d70 7269 7661 7465 2d6b 6579  ient-private-key\n-00011d90: 2d70 6174 6822 2074 7970 653d 2278 7364  -path\" type=\"xsd\n-00011da0: 3a73 7472 696e 6722 3e0a 2020 2020 2020  :string\">.      \n-00011db0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00011dc0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00011dd0: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00011de0: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00011df0: 5441 5b20 5468 6520 636c 6965 6e74 206b  TA[ The client k\n-00011e00: 6579 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ey. ]]></xsd:doc\n-00011e10: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00011e20: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00011e30: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00011e40: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00011e50: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00011e60: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00011e70: 636c 6965 6e74 2d6b 6579 2d70 6173 7377  client-key-passw\n-00011e80: 6f72 6422 2074 7970 653d 2278 7364 3a73  ord\" type=\"xsd:s\n-00011e90: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00011ea0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00011eb0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00011ec0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00011ed0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00011ee0: 5b20 5468 6520 636c 6965 6e74 206b 6579  [ The client key\n-00011ef0: 2070 7764 2e20 5d5d 3e3c 2f78 7364 3a64   pwd. ]]></xsd:d\n-00011f00: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00011f10: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n-00011f20: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-00011f30: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n-00011f40: 7574 653e 0a20 2020 2020 2020 203c 7873  ute>.        <xs\n-00011f50: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n-00011f60: 3d22 636c 6965 6e74 2d74 7275 7374 2d63  =\"client-trust-c\n-00011f70: 6572 742d 636f 6c6c 6563 7469 6f6e 2d70  ert-collection-p\n-00011f80: 6174 6822 2074 7970 653d 2278 7364 3a73  ath\" type=\"xsd:s\n-00011f90: 7472 696e 6722 3e0a 2020 2020 2020 2020  tring\">.        \n-00011fa0: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00011fb0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00011fc0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00011fd0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00011fe0: 5b20 5468 6520 7472 7573 7465 6420 636c  [ The trusted cl\n-00011ff0: 6965 6e74 2063 6572 742e 205d 5d3e 3c2f  ient cert. ]]></\n-00012000: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00012010: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00012020: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00012030: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00012040: 7474 7269 6275 7465 3e0a 2020 2020 3c2f  ttribute>.    </\n-00012050: 7873 643a 636f 6d70 6c65 7854 7970 653e  xsd:complexType>\n-00012060: 0a0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n-00012070: 6e74 206e 616d 653d 2273 736c 2220 7479  nt name=\"ssl\" ty\n-00012080: 7065 3d22 7373 6c54 7970 6522 3e0a 2020  pe=\"sslType\">.  \n-00012090: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-000120a0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000120b0: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-000120c0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-000120d0: 5468 6520 7373 6c20 636f 6e66 6967 205d  The ssl config ]\n-000120e0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-000120f0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00012100: 2020 203c 7873 643a 6170 7069 6e66 6f3e     <xsd:appinfo>\n-00012110: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00012120: 203c 746f 6f6c 3a61 6e6e 6f74 6174 696f   <tool:annotatio\n-00012130: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00012140: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n-00012150: 6f72 7473 2074 7970 653d 226f 7267 2e61  orts type=\"org.a\n-00012160: 7061 6368 652e 6475 6262 6f2e 636f 6e66  pache.dubbo.conf\n-00012170: 6967 2e53 736c 436f 6e66 6967 222f 3e0a  ig.SslConfig\"/>.\n-00012180: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012190: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n-000121a0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-000121b0: 2f78 7364 3a61 7070 696e 666f 3e0a 2020  /xsd:appinfo>.  \n-000121c0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-000121d0: 7461 7469 6f6e 3e0a 2020 2020 3c2f 7873  tation>.    </xs\n-000121e0: 643a 656c 656d 656e 743e 0a0a 2020 2020  d:element>..    \n-000121f0: 3c78 7364 3a63 6f6d 706c 6578 5479 7065  <xsd:complexType\n-00012200: 206e 616d 653d 2261 6e6e 6f74 6174 696f   name=\"annotatio\n-00012210: 6e54 7970 6522 3e0a 2020 2020 2020 2020  nType\">.        \n-00012220: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n-00012230: 616d 653d 2269 6422 2074 7970 653d 2278  ame=\"id\" type=\"x\n-00012240: 7364 3a49 4422 3e0a 2020 2020 2020 2020  sd:ID\">.        \n-00012250: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n-00012260: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00012270: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00012280: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00012290: 5b20 5468 6520 756e 6971 7565 2069 6465  [ The unique ide\n-000122a0: 6e74 6966 6965 7220 666f 7220 6120 6265  ntifier for a be\n-000122b0: 616e 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  an. ]]></xsd:doc\n-000122c0: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-000122d0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-000122e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000122f0: 2020 3c2f 7873 643a 6174 7472 6962 7574    </xsd:attribut\n-00012300: 653e 0a20 2020 2020 2020 203c 7873 643a  e>.        <xsd:\n-00012310: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n-00012320: 7061 636b 6167 6522 2074 7970 653d 2278  package\" type=\"x\n-00012330: 7364 3a73 7472 696e 6722 3e0a 2020 2020  sd:string\">.    \n-00012340: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00012350: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00012360: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n-00012370: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n-00012380: 4441 5441 5b20 5468 6520 7363 616e 2070  DATA[ The scan p\n-00012390: 6163 6b61 6765 2e20 5d5d 3e3c 2f78 7364  ackage. ]]></xsd\n-000123a0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0a  :documentation>.\n-000123b0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n-000123c0: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000123d0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n-000123e0: 6962 7574 653e 0a20 2020 203c 2f78 7364  ibute>.    </xsd\n-000123f0: 3a63 6f6d 706c 6578 5479 7065 3e0a 0a20  :complexType>.. \n-00012400: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n-00012410: 6e61 6d65 3d22 616e 6e6f 7461 7469 6f6e  name=\"annotation\n-00012420: 2220 7479 7065 3d22 616e 6e6f 7461 7469  \" type=\"annotati\n-00012430: 6f6e 5479 7065 223e 0a20 2020 2020 2020  onType\">.       \n-00012440: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00012450: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00012460: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00012470: 3e3c 215b 4344 4154 415b 2054 6865 2061  ><![CDATA[ The a\n-00012480: 6e6e 6f74 6174 696f 6e20 636f 6e66 6967  nnotation config\n-00012490: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000124a0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000124b0: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n-000124c0: 6f3e 0a20 2020 2020 2020 2020 2020 2020  o>.             \n-000124d0: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n-000124e0: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-000124f0: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n-00012500: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n-00012510: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n-00012520: 6e66 6967 2e53 6572 7669 6365 436f 6e66  nfig.ServiceConf\n-00012530: 6967 222f 3e0a 2020 2020 2020 2020 2020  ig\"/>.          \n-00012540: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n-00012550: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n-00012560: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n-00012570: 6f6e 6669 672e 5265 6665 7265 6e63 6543  onfig.ReferenceC\n-00012580: 6f6e 6669 6722 2f3e 0a20 2020 2020 2020  onfig\"/>.       \n-00012590: 2020 2020 2020 2020 203c 2f74 6f6f 6c3a           </tool:\n-000125a0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000125b0: 2020 2020 2020 2020 3c2f 7873 643a 6170          </xsd:ap\n-000125c0: 7069 6e66 6f3e 0a20 2020 2020 2020 203c  pinfo>.        <\n-000125d0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-000125e0: 0a20 2020 203c 2f78 7364 3a65 6c65 6d65  .    </xsd:eleme\n-000125f0: 6e74 3e0a 0a20 2020 203c 7873 643a 656c  nt>..    <xsd:el\n-00012600: 656d 656e 7420 6e61 6d65 3d22 6170 706c  ement name=\"appl\n-00012610: 6963 6174 696f 6e22 2074 7970 653d 2261  ication\" type=\"a\n-00012620: 7070 6c69 6361 7469 6f6e 5479 7065 223e  pplicationType\">\n-00012630: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n-00012640: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00012650: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00012660: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00012670: 415b 2054 6865 2061 7070 6c69 6361 7469  A[ The applicati\n-00012680: 6f6e 2063 6f6e 6669 6720 5d5d 3e3c 2f78  on config ]]></x\n-00012690: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-000126a0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-000126b0: 7364 3a61 7070 696e 666f 3e0a 2020 2020  sd:appinfo>.    \n-000126c0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n-000126d0: 6c3a 616e 6e6f 7461 7469 6f6e 3e0a 2020  l:annotation>.  \n-000126e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-000126f0: 2020 3c74 6f6f 6c3a 6578 706f 7274 7320    <tool:exports \n-00012700: 7479 7065 3d22 6f72 672e 6170 6163 6865  type=\"org.apache\n-00012710: 2e64 7562 626f 2e63 6f6e 6669 672e 4170  .dubbo.config.Ap\n-00012720: 706c 6963 6174 696f 6e43 6f6e 6669 6722  plicationConfig\"\n-00012730: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-00012740: 2020 203c 2f74 6f6f 6c3a 616e 6e6f 7461     </tool:annota\n-00012750: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012760: 2020 3c2f 7873 643a 6170 7069 6e66 6f3e    </xsd:appinfo>\n-00012770: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00012780: 6e6e 6f74 6174 696f 6e3e 0a20 2020 203c  nnotation>.    <\n-00012790: 2f78 7364 3a65 6c65 6d65 6e74 3e0a 0a20  /xsd:element>.. \n-000127a0: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n-000127b0: 6e61 6d65 3d22 6d6f 6475 6c65 2220 7479  name=\"module\" ty\n-000127c0: 7065 3d22 6d6f 6475 6c65 5479 7065 223e  pe=\"moduleType\">\n-000127d0: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n-000127e0: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-000127f0: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n-00012800: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n-00012810: 415b 2054 6865 206d 6f64 756c 6520 636f  A[ The module co\n-00012820: 6e66 6967 205d 5d3e 3c2f 7873 643a 646f  nfig ]]></xsd:do\n-00012830: 6375 6d65 6e74 6174 696f 6e3e 0a20 2020  cumentation>.   \n-00012840: 2020 2020 2020 2020 203c 7873 643a 6170           <xsd:ap\n-00012850: 7069 6e66 6f3e 0a20 2020 2020 2020 2020  pinfo>.         \n-00012860: 2020 2020 2020 203c 746f 6f6c 3a61 6e6e         <tool:ann\n-00012870: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00012880: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n-00012890: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n-000128a0: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n-000128b0: 6f2e 636f 6e66 6967 2e4d 6f64 756c 6543  o.config.ModuleC\n-000128c0: 6f6e 6669 6722 2f3e 0a20 2020 2020 2020  onfig\"/>.       \n-000128d0: 2020 2020 2020 2020 203c 2f74 6f6f 6c3a           </tool:\n-000128e0: 616e 6e6f 7461 7469 6f6e 3e0a 2020 2020  annotation>.    \n-000128f0: 2020 2020 2020 2020 3c2f 7873 643a 6170          </xsd:ap\n-00012900: 7069 6e66 6f3e 0a20 2020 2020 2020 203c  pinfo>.        <\n-00012910: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n-00012920: 0a20 2020 203c 2f78 7364 3a65 6c65 6d65  .    </xsd:eleme\n-00012930: 6e74 3e0a 0a20 2020 203c 7873 643a 656c  nt>..    <xsd:el\n-00012940: 656d 656e 7420 6e61 6d65 3d22 7265 6769  ement name=\"regi\n-00012950: 7374 7279 2220 7479 7065 3d22 7265 6769  stry\" type=\"regi\n-00012960: 7374 7279 5479 7065 223e 0a20 2020 2020  stryType\">.     \n-00012970: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n-00012980: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00012990: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n-000129a0: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n-000129b0: 2072 6567 6973 7472 7920 636f 6e66 6967   registry config\n-000129c0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-000129d0: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-000129e0: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n-000129f0: 6f3e 0a20 2020 2020 2020 2020 2020 2020  o>.             \n-00012a00: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n-00012a10: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00012a20: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n-00012a30: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n-00012a40: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n-00012a50: 6e66 6967 2e52 6567 6973 7472 7943 6f6e  nfig.RegistryCon\n-00012a60: 6669 6722 2f3e 0a20 2020 2020 2020 2020  fig\"/>.         \n-00012a70: 2020 2020 2020 203c 2f74 6f6f 6c3a 616e         </tool:an\n-00012a80: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00012a90: 2020 2020 2020 3c2f 7873 643a 6170 7069        </xsd:appi\n-00012aa0: 6e66 6f3e 0a20 2020 2020 2020 203c 2f78  nfo>.        </x\n-00012ab0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00012ac0: 2020 203c 2f78 7364 3a65 6c65 6d65 6e74     </xsd:element\n-00012ad0: 3e0a 0a20 2020 203c 7873 643a 656c 656d  >..    <xsd:elem\n-00012ae0: 656e 7420 6e61 6d65 3d22 6d65 7461 6461  ent name=\"metada\n-00012af0: 7461 2d72 6570 6f72 7422 2074 7970 653d  ta-report\" type=\n-00012b00: 226d 6574 6164 6174 6152 6570 6f72 7454  \"metadataReportT\n-00012b10: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00012b20: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00012b30: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00012b40: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00012b50: 5b43 4441 5441 5b20 5468 6520 6d65 7461  [CDATA[ The meta\n-00012b60: 6461 7461 5265 706f 7274 2063 6f6e 6669  dataReport confi\n-00012b70: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n-00012b80: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00012b90: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n-00012ba0: 666f 3e0a 2020 2020 2020 2020 2020 2020  fo>.            \n-00012bb0: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n-00012bc0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00012bd0: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n-00012be0: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n-00012bf0: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n-00012c00: 6f6e 6669 672e 4d65 7461 6461 7461 5265  onfig.MetadataRe\n-00012c10: 706f 7274 436f 6e66 6967 222f 3e0a 2020  portConfig\"/>.  \n-00012c20: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00012c30: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n-00012c40: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00012c50: 7364 3a61 7070 696e 666f 3e0a 2020 2020  sd:appinfo>.    \n-00012c60: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00012c70: 7469 6f6e 3e0a 2020 2020 3c2f 7873 643a  tion>.    </xsd:\n-00012c80: 656c 656d 656e 743e 0a0a 2020 2020 3c78  element>..    <x\n-00012c90: 7364 3a65 6c65 6d65 6e74 206e 616d 653d  sd:element name=\n-00012ca0: 2263 6f6e 6669 672d 6365 6e74 6572 2220  \"config-center\" \n-00012cb0: 7479 7065 3d22 636f 6e66 6967 4365 6e74  type=\"configCent\n-00012cc0: 6572 5479 7065 223e 0a20 2020 2020 2020  erType\">.       \n-00012cd0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n-00012ce0: 3e0a 2020 2020 2020 2020 2020 2020 3c78  >.            <x\n-00012cf0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n-00012d00: 3e3c 215b 4344 4154 415b 2054 6865 2063  ><![CDATA[ The c\n-00012d10: 6f6e 6669 6720 6365 6e74 6572 2063 6f6e  onfig center con\n-00012d20: 6669 6720 5d5d 3e3c 2f78 7364 3a64 6f63  fig ]]></xsd:doc\n-00012d30: 756d 656e 7461 7469 6f6e 3e0a 2020 2020  umentation>.    \n-00012d40: 2020 2020 2020 2020 3c78 7364 3a61 7070          <xsd:app\n-00012d50: 696e 666f 3e0a 2020 2020 2020 2020 2020  info>.          \n-00012d60: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n-00012d70: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00012d80: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n-00012d90: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n-00012da0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00012db0: 2e63 6f6e 6669 672e 436f 6e66 6967 4365  .config.ConfigCe\n-00012dc0: 6e74 6572 436f 6e66 6967 222f 3e0a 2020  nterConfig\"/>.  \n-00012dd0: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n-00012de0: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n-00012df0: 0a20 2020 2020 2020 2020 2020 203c 2f78  .            </x\n-00012e00: 7364 3a61 7070 696e 666f 3e0a 2020 2020  sd:appinfo>.    \n-00012e10: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n-00012e20: 7469 6f6e 3e0a 2020 2020 3c2f 7873 643a  tion>.    </xsd:\n-00012e30: 656c 656d 656e 743e 0a0a 2020 2020 3c78  element>..    <x\n-00012e40: 7364 3a65 6c65 6d65 6e74 206e 616d 653d  sd:element name=\n-00012e50: 226d 6f6e 6974 6f72 2220 7479 7065 3d22  \"monitor\" type=\"\n-00012e60: 6d6f 6e69 746f 7254 7970 6522 3e0a 2020  monitorType\">.  \n-00012e70: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n-00012e80: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-00012e90: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n-00012ea0: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n-00012eb0: 5468 6520 6c6f 6773 7461 7420 6d6f 6e69  The logstat moni\n-00012ec0: 746f 7220 636f 6e66 6967 205d 5d3e 3c2f  tor config ]]></\n-00012ed0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-00012ee0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00012ef0: 7873 643a 6170 7069 6e66 6f3e 0a20 2020  xsd:appinfo>.   \n-00012f00: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n-00012f10: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-00012f20: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012f30: 2020 203c 746f 6f6c 3a65 7870 6f72 7473     <tool:exports\n-00012f40: 2074 7970 653d 226f 7267 2e61 7061 6368   type=\"org.apach\n-00012f50: 652e 6475 6262 6f2e 636f 6e66 6967 2e4d  e.dubbo.config.M\n-00012f60: 6f6e 6974 6f72 436f 6e66 6967 222f 3e0a  onitorConfig\"/>.\n-00012f70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00012f80: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n-00012f90: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-00012fa0: 2f78 7364 3a61 7070 696e 666f 3e0a 2020  /xsd:appinfo>.  \n-00012fb0: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n-00012fc0: 7461 7469 6f6e 3e0a 2020 2020 3c2f 7873  tation>.    </xs\n-00012fd0: 643a 656c 656d 656e 743e 0a0a 2020 2020  d:element>..    \n-00012fe0: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n-00012ff0: 653d 2270 726f 7669 6465 7222 2074 7970  e=\"provider\" typ\n-00013000: 653d 2270 726f 7669 6465 7254 7970 6522  e=\"providerType\"\n-00013010: 3e0a 2020 2020 2020 2020 3c78 7364 3a61  >.        <xsd:a\n-00013020: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00013030: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n-00013040: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n-00013050: 5441 5b20 4578 706f 7274 2073 6572 7669  TA[ Export servi\n-00013060: 6365 2064 6566 6175 6c74 2063 6f6e 6669  ce default confi\n-00013070: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n-00013080: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-00013090: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n-000130a0: 666f 3e0a 2020 2020 2020 2020 2020 2020  fo>.            \n-000130b0: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n-000130c0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000130d0: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n-000130e0: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n-000130f0: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n-00013100: 6f6e 6669 672e 5072 6f76 6964 6572 436f  onfig.ProviderCo\n-00013110: 6e66 6967 222f 3e0a 2020 2020 2020 2020  nfig\"/>.        \n-00013120: 2020 2020 2020 2020 3c2f 746f 6f6c 3a61          </tool:a\n-00013130: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-00013140: 2020 2020 2020 203c 2f78 7364 3a61 7070         </xsd:app\n-00013150: 696e 666f 3e0a 2020 2020 2020 2020 3c2f  info>.        </\n-00013160: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00013170: 2020 2020 3c2f 7873 643a 656c 656d 656e      </xsd:elemen\n-00013180: 743e 0a0a 2020 2020 3c78 7364 3a65 6c65  t>..    <xsd:ele\n-00013190: 6d65 6e74 206e 616d 653d 2263 6f6e 7375  ment name=\"consu\n-000131a0: 6d65 7222 2074 7970 653d 2263 6f6e 7375  mer\" type=\"consu\n-000131b0: 6d65 7254 7970 6522 3e0a 2020 2020 2020  merType\">.      \n-000131c0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n-000131d0: 6e3e 0a20 2020 2020 2020 2020 2020 203c  n>.            <\n-000131e0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n-000131f0: 6e3e 3c21 5b43 4441 5441 5b20 5365 7276  n><![CDATA[ Serv\n-00013200: 6963 6520 7265 6665 7265 6e63 6520 6465  ice reference de\n-00013210: 6661 756c 7420 636f 6e66 6967 205d 5d3e  fault config ]]>\n-00013220: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00013230: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00013240: 203c 7873 643a 6170 7069 6e66 6f3e 0a20   <xsd:appinfo>. \n-00013250: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-00013260: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n-00013270: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00013280: 2020 2020 203c 746f 6f6c 3a65 7870 6f72       <tool:expor\n-00013290: 7473 2074 7970 653d 226f 7267 2e61 7061  ts type=\"org.apa\n-000132a0: 6368 652e 6475 6262 6f2e 636f 6e66 6967  che.dubbo.config\n-000132b0: 2e43 6f6e 7375 6d65 7243 6f6e 6669 6722  .ConsumerConfig\"\n-000132c0: 2f3e 0a20 2020 2020 2020 2020 2020 2020  />.             \n-000132d0: 2020 203c 2f74 6f6f 6c3a 616e 6e6f 7461     </tool:annota\n-000132e0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-000132f0: 2020 3c2f 7873 643a 6170 7069 6e66 6f3e    </xsd:appinfo>\n-00013300: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n-00013310: 6e6e 6f74 6174 696f 6e3e 0a20 2020 203c  nnotation>.    <\n-00013320: 2f78 7364 3a65 6c65 6d65 6e74 3e0a 0a20  /xsd:element>.. \n-00013330: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n-00013340: 6e61 6d65 3d22 7072 6f74 6f63 6f6c 2220  name=\"protocol\" \n-00013350: 7479 7065 3d22 7072 6f74 6f63 6f6c 5479  type=\"protocolTy\n-00013360: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-00013370: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00013380: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00013390: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-000133a0: 4344 4154 415b 2053 6572 7669 6365 2070  CDATA[ Service p\n-000133b0: 726f 7669 6465 7220 636f 6e66 6967 205d  rovider config ]\n-000133c0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n-000133d0: 6174 696f 6e3e 0a20 2020 2020 2020 2020  ation>.         \n-000133e0: 2020 203c 7873 643a 6170 7069 6e66 6f3e     <xsd:appinfo>\n-000133f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00013400: 203c 746f 6f6c 3a61 6e6e 6f74 6174 696f   <tool:annotatio\n-00013410: 6e3e 0a20 2020 2020 2020 2020 2020 2020  n>.             \n-00013420: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n-00013430: 6f72 7473 2074 7970 653d 226f 7267 2e61  orts type=\"org.a\n-00013440: 7061 6368 652e 6475 6262 6f2e 636f 6e66  pache.dubbo.conf\n-00013450: 6967 2e50 726f 746f 636f 6c43 6f6e 6669  ig.ProtocolConfi\n-00013460: 6722 2f3e 0a20 2020 2020 2020 2020 2020  g\"/>.           \n-00013470: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n-00013480: 7461 7469 6f6e 3e0a 2020 2020 2020 2020  tation>.        \n-00013490: 2020 2020 3c2f 7873 643a 6170 7069 6e66      </xsd:appinf\n-000134a0: 6f3e 0a20 2020 2020 2020 203c 2f78 7364  o>.        </xsd\n-000134b0: 3a61 6e6e 6f74 6174 696f 6e3e 0a20 2020  :annotation>.   \n-000134c0: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0a   </xsd:element>.\n-000134d0: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n-000134e0: 7420 6e61 6d65 3d22 7365 7276 6963 6522  t name=\"service\"\n-000134f0: 2074 7970 653d 2273 6572 7669 6365 5479   type=\"serviceTy\n-00013500: 7065 223e 0a20 2020 2020 2020 203c 7873  pe\">.        <xs\n-00013510: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00013520: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n-00013530: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n-00013540: 4344 4154 415b 2045 7870 6f72 7420 7365  CDATA[ Export se\n-00013550: 7276 6963 6520 636f 6e66 6967 205d 5d3e  rvice config ]]>\n-00013560: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n-00013570: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00013580: 203c 7873 643a 6170 7069 6e66 6f3e 0a20   <xsd:appinfo>. \n-00013590: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n-000135a0: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n-000135b0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-000135c0: 2020 2020 203c 746f 6f6c 3a65 7870 6f72       <tool:expor\n-000135d0: 7473 2074 7970 653d 226f 7267 2e61 7061  ts type=\"org.apa\n-000135e0: 6368 652e 6475 6262 6f2e 636f 6e66 6967  che.dubbo.config\n-000135f0: 2e53 6572 7669 6365 436f 6e66 6967 222f  .ServiceConfig\"/\n-00013600: 3e0a 2020 2020 2020 2020 2020 2020 2020  >.              \n-00013610: 2020 3c2f 746f 6f6c 3a61 6e6e 6f74 6174    </tool:annotat\n-00013620: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00013630: 203c 2f78 7364 3a61 7070 696e 666f 3e0a   </xsd:appinfo>.\n-00013640: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n-00013650: 6e6f 7461 7469 6f6e 3e0a 2020 2020 3c2f  notation>.    </\n-00013660: 7873 643a 656c 656d 656e 743e 0a0a 2020  xsd:element>..  \n-00013670: 2020 3c78 7364 3a65 6c65 6d65 6e74 206e    <xsd:element n\n-00013680: 616d 653d 2272 6566 6572 656e 6365 2220  ame=\"reference\" \n-00013690: 7479 7065 3d22 7265 6665 7265 6e63 6554  type=\"referenceT\n-000136a0: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-000136b0: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-000136c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-000136d0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-000136e0: 5b43 4441 5441 5b20 5265 6665 7265 6e63  [CDATA[ Referenc\n-000136f0: 6520 7365 7276 6963 6520 636f 6e66 6967  e service config\n-00013700: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n-00013710: 6e74 6174 696f 6e3e 0a20 2020 2020 2020  ntation>.       \n-00013720: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n-00013730: 6f3e 0a20 2020 2020 2020 2020 2020 2020  o>.             \n-00013740: 2020 203c 746f 6f6c 3a61 6e6e 6f74 6174     <tool:annotat\n-00013750: 696f 6e3e 0a20 2020 2020 2020 2020 2020  ion>.           \n-00013760: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n-00013770: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n-00013780: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n-00013790: 6e66 6967 2e52 6566 6572 656e 6365 436f  nfig.ReferenceCo\n-000137a0: 6e66 6967 222f 3e0a 2020 2020 2020 2020  nfig\"/>.        \n-000137b0: 2020 2020 2020 2020 3c2f 746f 6f6c 3a61          </tool:a\n-000137c0: 6e6e 6f74 6174 696f 6e3e 0a20 2020 2020  nnotation>.     \n-000137d0: 2020 2020 2020 203c 2f78 7364 3a61 7070         </xsd:app\n-000137e0: 696e 666f 3e0a 2020 2020 2020 2020 3c2f  info>.        </\n-000137f0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0a  xsd:annotation>.\n-00013800: 2020 2020 3c2f 7873 643a 656c 656d 656e      </xsd:elemen\n-00013810: 743e 0a0a 2020 2020 3c78 7364 3a65 6c65  t>..    <xsd:ele\n-00013820: 6d65 6e74 206e 616d 653d 226d 6574 686f  ment name=\"metho\n-00013830: 6422 2074 7970 653d 226d 6574 686f 6454  d\" type=\"methodT\n-00013840: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00013850: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00013860: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00013870: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00013880: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n-00013890: 6963 6520 6d65 7468 6f64 2063 6f6e 6669  ice method confi\n-000138a0: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n-000138b0: 656e 7461 7469 6f6e 3e0a 2020 2020 2020  entation>.      \n-000138c0: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n-000138d0: 666f 3e0a 2020 2020 2020 2020 2020 2020  fo>.            \n-000138e0: 2020 2020 3c74 6f6f 6c3a 616e 6e6f 7461      <tool:annota\n-000138f0: 7469 6f6e 3e0a 2020 2020 2020 2020 2020  tion>.          \n-00013900: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n-00013910: 6578 706f 7274 7320 7479 7065 3d22 6f72  exports type=\"or\n-00013920: 672e 6170 6163 6865 2e64 7562 626f 2e63  g.apache.dubbo.c\n-00013930: 6f6e 6669 672e 4d65 7468 6f64 436f 6e66  onfig.MethodConf\n-00013940: 6967 222f 3e0a 2020 2020 2020 2020 2020  ig\"/>.          \n-00013950: 2020 2020 2020 3c2f 746f 6f6c 3a61 6e6e        </tool:ann\n-00013960: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00013970: 2020 2020 203c 2f78 7364 3a61 7070 696e       </xsd:appin\n-00013980: 666f 3e0a 2020 2020 2020 2020 3c2f 7873  fo>.        </xs\n-00013990: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-000139a0: 2020 3c2f 7873 643a 656c 656d 656e 743e    </xsd:element>\n-000139b0: 0a0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n-000139c0: 6e74 206e 616d 653d 2261 7267 756d 656e  nt name=\"argumen\n-000139d0: 7422 2074 7970 653d 2261 7267 756d 656e  t\" type=\"argumen\n-000139e0: 7454 7970 6522 3e0a 2020 2020 2020 2020  tType\">.        \n-000139f0: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n-00013a00: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n-00013a10: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n-00013a20: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n-00013a30: 7276 6963 6520 6172 6775 6d65 6e74 2063  rvice argument c\n-00013a40: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n-00013a50: 6f63 756d 656e 7461 7469 6f6e 3e0a 2020  ocumentation>.  \n-00013a60: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n-00013a70: 7070 696e 666f 3e0a 2020 2020 2020 2020  ppinfo>.        \n-00013a80: 2020 2020 2020 2020 3c74 6f6f 6c3a 616e          <tool:an\n-00013a90: 6e6f 7461 7469 6f6e 3e0a 2020 2020 2020  notation>.      \n-00013aa0: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n-00013ab0: 6f6f 6c3a 6578 706f 7274 7320 7479 7065  ool:exports type\n-00013ac0: 3d22 6f72 672e 6170 6163 6865 2e64 7562  =\"org.apache.dub\n-00013ad0: 626f 2e63 6f6e 6669 672e 4172 6775 6d65  bo.config.Argume\n-00013ae0: 6e74 436f 6e66 6967 222f 3e0a 2020 2020  ntConfig\"/>.    \n-00013af0: 2020 2020 2020 2020 2020 2020 3c2f 746f              </to\n-00013b00: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0a20  ol:annotation>. \n-00013b10: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n-00013b20: 3a61 7070 696e 666f 3e0a 2020 2020 2020  :appinfo>.      \n-00013b30: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n-00013b40: 6f6e 3e0a 2020 2020 3c2f 7873 643a 656c  on>.    </xsd:el\n-00013b50: 656d 656e 743e 0a0a 2020 2020 3c78 7364  ement>..    <xsd\n-00013b60: 3a65 6c65 6d65 6e74 206e 616d 653d 2270  :element name=\"p\n-00013b70: 6172 616d 6574 6572 2220 7479 7065 3d22  arameter\" type=\"\n-00013b80: 7061 7261 6d65 7465 7254 7970 6522 3e0a  parameterType\">.\n-00013b90: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n-00013ba0: 6f74 6174 696f 6e3e 0a20 2020 2020 2020  otation>.       \n-00013bb0: 2020 2020 203c 7873 643a 646f 6375 6d65       <xsd:docume\n-00013bc0: 6e74 6174 696f 6e3e 3c21 5b43 4441 5441  ntation><![CDATA\n-00013bd0: 5b20 5468 6520 7365 7276 6963 6520 7572  [ The service ur\n-00013be0: 6c20 7061 7261 6d65 7465 7220 5d5d 3e3c  l parameter ]]><\n-00013bf0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00013c00: 6f6e 3e0a 2020 2020 2020 2020 3c2f 7873  on>.        </xs\n-00013c10: 643a 616e 6e6f 7461 7469 6f6e 3e0a 2020  d:annotation>.  \n-00013c20: 2020 3c2f 7873 643a 656c 656d 656e 743e    </xsd:element>\n-00013c30: 0a0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n-00013c40: 6e74 206e 616d 653d 226d 6574 7269 6373  nt name=\"metrics\n-00013c50: 2220 7479 7065 3d22 6d65 7472 6963 7354  \" type=\"metricsT\n-00013c60: 7970 6522 3e0a 2020 2020 2020 2020 3c78  ype\">.        <x\n-00013c70: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0a20  sd:annotation>. \n-00013c80: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n-00013c90: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n-00013ca0: 5b43 4441 5441 5b20 5468 6520 6d65 7472  [CDATA[ The metr\n-00013cb0: 6963 7320 7365 7276 6963 6520 5d5d 3e3c  ics service ]]><\n-00013cc0: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n-00013cd0: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00013ce0: 3c78 7364 3a61 7070 696e 666f 3e0a 2020  <xsd:appinfo>.  \n-00013cf0: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n-00013d00: 6f6f 6c3a 616e 6e6f 7461 7469 6f6e 3e0a  ool:annotation>.\n-00013d10: 2020 2020 2020 2020 2020 2020 2020 2020                  \n-00013d20: 2020 2020 3c74 6f6f 6c3a 6578 706f 7274      <tool:export\n-00013d30: 7320 7479 7065 3d22 6f72 672e 6170 6163  s type=\"org.apac\n-00013d40: 6865 2e64 7562 626f 2e63 6f6e 6669 672e  he.dubbo.config.\n-00013d50: 4d65 7472 6963 7343 6f6e 6669 6722 2f3e  MetricsConfig\"/>\n-00013d60: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n-00013d70: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n-00013d80: 6f6e 3e0a 2020 2020 2020 2020 2020 2020  on>.            \n-00013d90: 3c2f 7873 643a 6170 7069 6e66 6f3e 0a20  </xsd:appinfo>. \n-00013da0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n-00013db0: 6f74 6174 696f 6e3e 0a20 2020 203c 2f78  otation>.    </x\n-00013dc0: 7364 3a65 6c65 6d65 6e74 3e0a 0a3c 2f78  sd:element>..</x\n-00013dd0: 7364 3a73 6368 656d 613e 0a              sd:schema>.\n+00010dd0: 2020 2020 3c21 5b43 4441 5441 5b20 5468      <![CDATA[ Th\n+00010de0: 6520 7072 6f74 6f63 6f6c 2063 6f6e 7465  e protocol conte\n+00010df0: 7874 2070 6174 682e 2072 6570 6c61 6365  xt path. replace\n+00010e00: 2074 6f20 2263 6f6e 7465 7874 7061 7468   to \"contextpath\n+00010e10: 222e 205d 5d3e 3c2f 7873 643a 646f 6375  \". ]]></xsd:docu\n+00010e20: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+00010e30: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00010e40: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00010e50: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010e60: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+00010e70: 7465 3e0d 0a20 2020 2020 2020 2020 2020  te>..           \n+00010e80: 2020 2020 203c 7873 643a 6174 7472 6962       <xsd:attrib\n+00010e90: 7574 6520 6e61 6d65 3d22 636f 6e74 6578  ute name=\"contex\n+00010ea0: 7470 6174 6822 2074 7970 653d 2278 7364  tpath\" type=\"xsd\n+00010eb0: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00010ec0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00010ed0: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010ee0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010ef0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00010f00: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00010f10: 4441 5441 5b20 5468 6520 7072 6f74 6f63  DATA[ The protoc\n+00010f20: 6f6c 2063 6f6e 7465 7874 2070 6174 682e  ol context path.\n+00010f30: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00010f40: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00010f50: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00010f60: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00010f70: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00010f80: 203c 2f78 7364 3a61 7474 7269 6275 7465   </xsd:attribute\n+00010f90: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00010fa0: 2020 203c 7873 643a 6174 7472 6962 7574     <xsd:attribut\n+00010fb0: 6520 6e61 6d65 3d22 7761 6974 2220 7479  e name=\"wait\" ty\n+00010fc0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+00010fd0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00010fe0: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00010ff0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011000: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011010: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00011020: 6f6e 3e3c 215b 4344 4154 415b 2054 6865  on><![CDATA[ The\n+00011030: 2070 726f 7669 6465 7220 7368 7574 646f   provider shutdo\n+00011040: 776e 2077 6169 7420 7469 6d65 2e20 5d5d  wn wait time. ]]\n+00011050: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00011060: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00011070: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00011080: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00011090: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+000110a0: 7873 643a 6174 7472 6962 7574 653e 0d0a  xsd:attribute>..\n+000110b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000110c0: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+000110d0: 616d 653d 2264 6566 6175 6c74 2220 7479  ame=\"default\" ty\n+000110e0: 7065 3d22 7873 643a 7374 7269 6e67 223e  pe=\"xsd:string\">\n+000110f0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011100: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00011110: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011120: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011130: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00011140: 6f6e 3e3c 215b 4344 4154 415b 2049 7320  on><![CDATA[ Is \n+00011150: 6465 6661 756c 742e 205d 5d3e 3c2f 7873  default. ]]></xs\n+00011160: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00011170: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011180: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00011190: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+000111a0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000111b0: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+000111c0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+000111d0: 616e 7941 7474 7269 6275 7465 206e 616d  anyAttribute nam\n+000111e0: 6573 7061 6365 3d22 2323 6f74 6865 7222  espace=\"##other\"\n+000111f0: 2070 726f 6365 7373 436f 6e74 656e 7473   processContents\n+00011200: 3d22 6c61 7822 2f3e 0d0a 2020 2020 2020  =\"lax\"/>..      \n+00011210: 2020 2020 2020 3c2f 7873 643a 6578 7465        </xsd:exte\n+00011220: 6e73 696f 6e3e 0d0a 2020 2020 2020 2020  nsion>..        \n+00011230: 3c2f 7873 643a 636f 6d70 6c65 7843 6f6e  </xsd:complexCon\n+00011240: 7465 6e74 3e0d 0a20 2020 203c 2f78 7364  tent>..    </xsd\n+00011250: 3a63 6f6d 706c 6578 5479 7065 3e0d 0a0d  :complexType>...\n+00011260: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n+00011270: 7854 7970 6520 6e61 6d65 3d22 7365 7276  xType name=\"serv\n+00011280: 6963 6554 7970 6522 3e0d 0a20 2020 2020  iceType\">..     \n+00011290: 2020 203c 7873 643a 636f 6d70 6c65 7843     <xsd:complexC\n+000112a0: 6f6e 7465 6e74 3e0d 0a20 2020 2020 2020  ontent>..       \n+000112b0: 2020 2020 203c 7873 643a 6578 7465 6e73       <xsd:extens\n+000112c0: 696f 6e20 6261 7365 3d22 6162 7374 7261  ion base=\"abstra\n+000112d0: 6374 5365 7276 6963 6554 7970 6522 3e0d  ctServiceType\">.\n+000112e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000112f0: 203c 7873 643a 6368 6f69 6365 206d 696e   <xsd:choice min\n+00011300: 4f63 6375 7273 3d22 3022 206d 6178 4f63  Occurs=\"0\" maxOc\n+00011310: 6375 7273 3d22 756e 626f 756e 6465 6422  curs=\"unbounded\"\n+00011320: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00011330: 2020 2020 2020 203c 7873 643a 656c 656d         <xsd:elem\n+00011340: 656e 7420 7265 663d 226d 6574 686f 6422  ent ref=\"method\"\n+00011350: 206d 696e 4f63 6375 7273 3d22 3022 206d   minOccurs=\"0\" m\n+00011360: 6178 4f63 6375 7273 3d22 756e 626f 756e  axOccurs=\"unboun\n+00011370: 6465 6422 2f3e 0d0a 2020 2020 2020 2020  ded\"/>..        \n+00011380: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011390: 3a65 6c65 6d65 6e74 2072 6566 3d22 7061  :element ref=\"pa\n+000113a0: 7261 6d65 7465 7222 206d 696e 4f63 6375  rameter\" minOccu\n+000113b0: 7273 3d22 3022 206d 6178 4f63 6375 7273  rs=\"0\" maxOccurs\n+000113c0: 3d22 756e 626f 756e 6465 6422 2f3e 0d0a  =\"unbounded\"/>..\n+000113d0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000113e0: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n+000113f0: 2072 6566 3d22 6265 616e 733a 7072 6f70   ref=\"beans:prop\n+00011400: 6572 7479 2220 6d69 6e4f 6363 7572 733d  erty\" minOccurs=\n+00011410: 2230 2220 6d61 784f 6363 7572 733d 2275  \"0\" maxOccurs=\"u\n+00011420: 6e62 6f75 6e64 6564 222f 3e0d 0a20 2020  nbounded\"/>..   \n+00011430: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00011440: 7364 3a63 686f 6963 653e 0d0a 2020 2020  sd:choice>..    \n+00011450: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011460: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00011470: 2269 6e74 6572 6661 6365 2220 7479 7065  \"interface\" type\n+00011480: 3d22 7873 643a 746f 6b65 6e22 2075 7365  =\"xsd:token\" use\n+00011490: 3d22 7265 7175 6972 6564 223e 0d0a 2020  =\"required\">..  \n+000114a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000114b0: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+000114c0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000114d0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+000114e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+000114f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00011500: 2020 2020 2020 2020 2020 2020 203c 215b               <![\n+00011510: 4344 4154 415b 2044 6566 696e 6573 2074  CDATA[ Defines t\n+00011520: 6865 2069 6e74 6572 6661 6365 2074 6f20  he interface to \n+00011530: 6164 7665 7274 6973 6520 666f 7220 7468  advertise for th\n+00011540: 6973 2073 6572 7669 6365 2069 6e20 7468  is service in th\n+00011550: 6520 7365 7276 6963 6520 7265 6769 7374  e service regist\n+00011560: 7279 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  ry. ]]></xsd:doc\n+00011570: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+00011580: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011590: 2020 2020 203c 7873 643a 6170 7069 6e66       <xsd:appinf\n+000115a0: 6f3e 0d0a 2020 2020 2020 2020 2020 2020  o>..            \n+000115b0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000115c0: 3c74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  <tool:annotation\n+000115d0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000115e0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000115f0: 2020 203c 746f 6f6c 3a65 7870 6563 7465     <tool:expecte\n+00011600: 642d 7479 7065 2074 7970 653d 226a 6176  d-type type=\"jav\n+00011610: 612e 6c61 6e67 2e43 6c61 7373 222f 3e0d  a.lang.Class\"/>.\n+00011620: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00011630: 2020 2020 2020 2020 2020 2020 203c 2f74               </t\n+00011640: 6f6f 6c3a 616e 6e6f 7461 7469 6f6e 3e0d  ool:annotation>.\n+00011650: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00011660: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00011670: 7070 696e 666f 3e0d 0a20 2020 2020 2020  ppinfo>..       \n+00011680: 2020 2020 2020 2020 2020 2020 203c 2f78               </x\n+00011690: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000116a0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000116b0: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+000116c0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000116d0: 2020 3c78 7364 3a61 7474 7269 6275 7465    <xsd:attribute\n+000116e0: 206e 616d 653d 2272 6566 2220 7479 7065   name=\"ref\" type\n+000116f0: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00011700: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011710: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00011720: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00011730: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00011740: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00011750: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00011760: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00011770: 215b 4344 4154 415b 2054 6865 2073 6572  ![CDATA[ The ser\n+00011780: 7669 6365 2069 6d70 6c65 6d65 6e74 6174  vice implementat\n+00011790: 696f 6e20 696e 7374 616e 6365 2062 6561  ion instance bea\n+000117a0: 6e20 6964 2e20 5d5d 3e3c 2f78 7364 3a64  n id. ]]></xsd:d\n+000117b0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+000117c0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000117d0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+000117e0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000117f0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00011800: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00011810: 2020 2020 2020 2020 3c78 7364 3a61 7474          <xsd:att\n+00011820: 7269 6275 7465 206e 616d 653d 2263 6c61  ribute name=\"cla\n+00011830: 7373 2220 7479 7065 3d22 7873 643a 7374  ss\" type=\"xsd:st\n+00011840: 7269 6e67 223e 0d0a 2020 2020 2020 2020  ring\">..        \n+00011850: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011860: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00011870: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011880: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00011890: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+000118a0: 415b 2054 6865 2073 6572 7669 6365 2069  A[ The service i\n+000118b0: 6d70 6c65 6d65 6e74 6174 696f 6e20 636c  mplementation cl\n+000118c0: 6173 7320 6e61 6d65 2e20 5d5d 3e3c 2f78  ass name. ]]></x\n+000118d0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000118e0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+000118f0: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00011900: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00011910: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00011920: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00011930: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00011940: 3a61 7474 7269 6275 7465 206e 616d 653d  :attribute name=\n+00011950: 2270 6174 6822 2074 7970 653d 2278 7364  \"path\" type=\"xsd\n+00011960: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00011970: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00011980: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00011990: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000119a0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000119b0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+000119c0: 4441 5441 5b20 5468 6520 7365 7276 6963  DATA[ The servic\n+000119d0: 6520 7061 7468 2e20 5d5d 3e3c 2f78 7364  e path. ]]></xsd\n+000119e0: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+000119f0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00011a00: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00011a10: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011a20: 2020 2020 2020 2020 3c2f 7873 643a 6174          </xsd:at\n+00011a30: 7472 6962 7574 653e 0d0a 2020 2020 2020  tribute>..      \n+00011a40: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00011a50: 7474 7269 6275 7465 206e 616d 653d 2270  ttribute name=\"p\n+00011a60: 726f 7669 6465 7222 2074 7970 653d 2278  rovider\" type=\"x\n+00011a70: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00011a80: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011a90: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00011aa0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00011ab0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011ac0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00011ad0: 5b43 4441 5441 5b20 4465 7072 6563 6174  [CDATA[ Deprecat\n+00011ae0: 6564 2e20 5265 706c 6163 6520 746f 2070  ed. Replace to p\n+00011af0: 726f 746f 636f 6c2e 205d 5d3e 3c2f 7873  rotocol. ]]></xs\n+00011b00: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00011b10: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011b20: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00011b30: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00011b40: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00011b50: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00011b60: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011b70: 6174 7472 6962 7574 6520 6e61 6d65 3d22  attribute name=\"\n+00011b80: 6765 6e65 7269 6322 2074 7970 653d 2278  generic\" type=\"x\n+00011b90: 7364 3a73 7472 696e 6722 3e0d 0a20 2020  sd:string\">..   \n+00011ba0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00011bb0: 203c 7873 643a 616e 6e6f 7461 7469 6f6e   <xsd:annotation\n+00011bc0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00011bd0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011be0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00011bf0: 5b43 4441 5441 5b20 4765 6e65 7269 6320  [CDATA[ Generic \n+00011c00: 7365 7276 6963 652e 205d 5d3e 3c2f 7873  service. ]]></xs\n+00011c10: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00011c20: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011c30: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00011c40: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00011c50: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00011c60: 7474 7269 6275 7465 3e0d 0a20 2020 2020  ttribute>..     \n+00011c70: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00011c80: 616e 7941 7474 7269 6275 7465 206e 616d  anyAttribute nam\n+00011c90: 6573 7061 6365 3d22 2323 6f74 6865 7222  espace=\"##other\"\n+00011ca0: 2070 726f 6365 7373 436f 6e74 656e 7473   processContents\n+00011cb0: 3d22 6c61 7822 2f3e 0d0a 2020 2020 2020  =\"lax\"/>..      \n+00011cc0: 2020 2020 2020 3c2f 7873 643a 6578 7465        </xsd:exte\n+00011cd0: 6e73 696f 6e3e 0d0a 2020 2020 2020 2020  nsion>..        \n+00011ce0: 3c2f 7873 643a 636f 6d70 6c65 7843 6f6e  </xsd:complexCon\n+00011cf0: 7465 6e74 3e0d 0a20 2020 203c 2f78 7364  tent>..    </xsd\n+00011d00: 3a63 6f6d 706c 6578 5479 7065 3e0d 0a0d  :complexType>...\n+00011d10: 0a20 2020 203c 7873 643a 636f 6d70 6c65  .    <xsd:comple\n+00011d20: 7854 7970 6520 6e61 6d65 3d22 7373 6c54  xType name=\"sslT\n+00011d30: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+00011d40: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00011d50: 6d65 3d22 6964 2220 7479 7065 3d22 7873  me=\"id\" type=\"xs\n+00011d60: 643a 4944 223e 0d0a 2020 2020 2020 2020  d:ID\">..        \n+00011d70: 2020 2020 3c78 7364 3a61 6e6e 6f74 6174      <xsd:annotat\n+00011d80: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+00011d90: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00011da0: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00011db0: 415b 2054 6865 2075 6e69 7175 6520 6964  A[ The unique id\n+00011dc0: 656e 7469 6669 6572 2066 6f72 2061 2062  entifier for a b\n+00011dd0: 6561 6e2e 205d 5d3e 3c2f 7873 643a 646f  ean. ]]></xsd:do\n+00011de0: 6375 6d65 6e74 6174 696f 6e3e 0d0a 2020  cumentation>..  \n+00011df0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00011e00: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00011e10: 2020 2020 203c 2f78 7364 3a61 7474 7269       </xsd:attri\n+00011e20: 6275 7465 3e0d 0a20 2020 2020 2020 203c  bute>..        <\n+00011e30: 7873 643a 6174 7472 6962 7574 6520 6e61  xsd:attribute na\n+00011e40: 6d65 3d22 7365 7276 6572 2d6b 6579 2d63  me=\"server-key-c\n+00011e50: 6572 742d 6368 6169 6e2d 7061 7468 2220  ert-chain-path\" \n+00011e60: 7479 7065 3d22 7873 643a 7374 7269 6e67  type=\"xsd:string\n+00011e70: 223e 0d0a 2020 2020 2020 2020 2020 2020  \">..            \n+00011e80: 3c78 7364 3a61 6e6e 6f74 6174 696f 6e3e  <xsd:annotation>\n+00011e90: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00011ea0: 2020 3c78 7364 3a64 6f63 756d 656e 7461    <xsd:documenta\n+00011eb0: 7469 6f6e 3e3c 215b 4344 4154 415b 2054  tion><![CDATA[ T\n+00011ec0: 6865 2073 6572 7665 7220 6365 7274 2e20  he server cert. \n+00011ed0: 5d5d 3e3c 2f78 7364 3a64 6f63 756d 656e  ]]></xsd:documen\n+00011ee0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00011ef0: 2020 2020 203c 2f78 7364 3a61 6e6e 6f74       </xsd:annot\n+00011f00: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00011f10: 3c2f 7873 643a 6174 7472 6962 7574 653e  </xsd:attribute>\n+00011f20: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00011f30: 7474 7269 6275 7465 206e 616d 653d 2273  ttribute name=\"s\n+00011f40: 6572 7665 722d 7072 6976 6174 652d 6b65  erver-private-ke\n+00011f50: 792d 7061 7468 2220 7479 7065 3d22 7873  y-path\" type=\"xs\n+00011f60: 643a 7374 7269 6e67 223e 0d0a 2020 2020  d:string\">..    \n+00011f70: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00011f80: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00011f90: 2020 2020 2020 2020 2020 3c78 7364 3a64            <xsd:d\n+00011fa0: 6f63 756d 656e 7461 7469 6f6e 3e3c 215b  ocumentation><![\n+00011fb0: 4344 4154 415b 2054 6865 2073 6572 7665  CDATA[ The serve\n+00011fc0: 7220 6b65 792e 205d 5d3e 3c2f 7873 643a  r key. ]]></xsd:\n+00011fd0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00011fe0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+00011ff0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00012000: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00012010: 7269 6275 7465 3e0d 0a20 2020 2020 2020  ribute>..       \n+00012020: 203c 7873 643a 6174 7472 6962 7574 6520   <xsd:attribute \n+00012030: 6e61 6d65 3d22 7365 7276 6572 2d6b 6579  name=\"server-key\n+00012040: 2d70 6173 7377 6f72 6422 2074 7970 653d  -password\" type=\n+00012050: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00012060: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012070: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012080: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00012090: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+000120a0: 3c21 5b43 4441 5441 5b20 5468 6520 7365  <![CDATA[ The se\n+000120b0: 7276 6572 206b 6579 2e20 5d5d 3e3c 2f78  rver key. ]]></x\n+000120c0: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000120d0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000120e0: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+000120f0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+00012100: 6174 7472 6962 7574 653e 0d0a 2020 2020  attribute>..    \n+00012110: 2020 2020 3c78 7364 3a61 7474 7269 6275      <xsd:attribu\n+00012120: 7465 206e 616d 653d 2273 6572 7665 722d  te name=\"server-\n+00012130: 7472 7573 742d 6365 7274 2d63 6f6c 6c65  trust-cert-colle\n+00012140: 6374 696f 6e2d 7061 7468 2220 7479 7065  ction-path\" type\n+00012150: 3d22 7873 643a 7374 7269 6e67 223e 0d0a  =\"xsd:string\">..\n+00012160: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00012170: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00012180: 2020 2020 2020 2020 2020 2020 2020 3c78                <x\n+00012190: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+000121a0: 3e3c 215b 4344 4154 415b 2054 6865 2074  ><![CDATA[ The t\n+000121b0: 7275 7374 6564 2073 6572 7665 7220 6365  rusted server ce\n+000121c0: 7274 2e20 5d5d 3e3c 2f78 7364 3a64 6f63  rt. ]]></xsd:doc\n+000121d0: 756d 656e 7461 7469 6f6e 3e0d 0a20 2020  umentation>..   \n+000121e0: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+000121f0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00012200: 2020 2020 3c2f 7873 643a 6174 7472 6962      </xsd:attrib\n+00012210: 7574 653e 0d0a 2020 2020 2020 2020 3c78  ute>..        <x\n+00012220: 7364 3a61 7474 7269 6275 7465 206e 616d  sd:attribute nam\n+00012230: 653d 2263 6c69 656e 742d 6b65 792d 6365  e=\"client-key-ce\n+00012240: 7274 2d63 6861 696e 2d70 6174 6822 2074  rt-chain-path\" t\n+00012250: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00012260: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00012270: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00012280: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00012290: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+000122a0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000122b0: 6520 636c 6965 6e74 2063 6572 742e 205d  e client cert. ]\n+000122c0: 5d3e 3c2f 7873 643a 646f 6375 6d65 6e74  ]></xsd:document\n+000122d0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000122e0: 2020 2020 3c2f 7873 643a 616e 6e6f 7461      </xsd:annota\n+000122f0: 7469 6f6e 3e0d 0a20 2020 2020 2020 203c  tion>..        <\n+00012300: 2f78 7364 3a61 7474 7269 6275 7465 3e0d  /xsd:attribute>.\n+00012310: 0a20 2020 2020 2020 203c 7873 643a 6174  .        <xsd:at\n+00012320: 7472 6962 7574 6520 6e61 6d65 3d22 636c  tribute name=\"cl\n+00012330: 6965 6e74 2d70 7269 7661 7465 2d6b 6579  ient-private-key\n+00012340: 2d70 6174 6822 2074 7970 653d 2278 7364  -path\" type=\"xsd\n+00012350: 3a73 7472 696e 6722 3e0d 0a20 2020 2020  :string\">..     \n+00012360: 2020 2020 2020 203c 7873 643a 616e 6e6f         <xsd:anno\n+00012370: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00012380: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00012390: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+000123a0: 4441 5441 5b20 5468 6520 636c 6965 6e74  DATA[ The client\n+000123b0: 206b 6579 2e20 5d5d 3e3c 2f78 7364 3a64   key. ]]></xsd:d\n+000123c0: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+000123d0: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+000123e0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+000123f0: 2020 2020 2020 3c2f 7873 643a 6174 7472        </xsd:attr\n+00012400: 6962 7574 653e 0d0a 2020 2020 2020 2020  ibute>..        \n+00012410: 3c78 7364 3a61 7474 7269 6275 7465 206e  <xsd:attribute n\n+00012420: 616d 653d 2263 6c69 656e 742d 6b65 792d  ame=\"client-key-\n+00012430: 7061 7373 776f 7264 2220 7479 7065 3d22  password\" type=\"\n+00012440: 7873 643a 7374 7269 6e67 223e 0d0a 2020  xsd:string\">..  \n+00012450: 2020 2020 2020 2020 2020 3c78 7364 3a61            <xsd:a\n+00012460: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00012470: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00012480: 3a64 6f63 756d 656e 7461 7469 6f6e 3e3c  :documentation><\n+00012490: 215b 4344 4154 415b 2054 6865 2063 6c69  ![CDATA[ The cli\n+000124a0: 656e 7420 6b65 7920 7077 642e 205d 5d3e  ent key pwd. ]]>\n+000124b0: 3c2f 7873 643a 646f 6375 6d65 6e74 6174  </xsd:documentat\n+000124c0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000124d0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+000124e0: 6f6e 3e0d 0a20 2020 2020 2020 203c 2f78  on>..        </x\n+000124f0: 7364 3a61 7474 7269 6275 7465 3e0d 0a20  sd:attribute>.. \n+00012500: 2020 2020 2020 203c 7873 643a 6174 7472         <xsd:attr\n+00012510: 6962 7574 6520 6e61 6d65 3d22 636c 6965  ibute name=\"clie\n+00012520: 6e74 2d74 7275 7374 2d63 6572 742d 636f  nt-trust-cert-co\n+00012530: 6c6c 6563 7469 6f6e 2d70 6174 6822 2074  llection-path\" t\n+00012540: 7970 653d 2278 7364 3a73 7472 696e 6722  ype=\"xsd:string\"\n+00012550: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00012560: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00012570: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00012580: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00012590: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000125a0: 6520 7472 7573 7465 6420 636c 6965 6e74  e trusted client\n+000125b0: 2063 6572 742e 205d 5d3e 3c2f 7873 643a   cert. ]]></xsd:\n+000125c0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+000125d0: 2020 2020 2020 2020 2020 2020 3c2f 7873              </xs\n+000125e0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+000125f0: 2020 2020 2020 203c 2f78 7364 3a61 7474         </xsd:att\n+00012600: 7269 6275 7465 3e0d 0a20 2020 203c 2f78  ribute>..    </x\n+00012610: 7364 3a63 6f6d 706c 6578 5479 7065 3e0d  sd:complexType>.\n+00012620: 0a0d 0a20 2020 203c 7873 643a 656c 656d  ...    <xsd:elem\n+00012630: 656e 7420 6e61 6d65 3d22 7373 6c22 2074  ent name=\"ssl\" t\n+00012640: 7970 653d 2273 736c 5479 7065 223e 0d0a  ype=\"sslType\">..\n+00012650: 2020 2020 2020 2020 3c78 7364 3a61 6e6e          <xsd:ann\n+00012660: 6f74 6174 696f 6e3e 0d0a 2020 2020 2020  otation>..      \n+00012670: 2020 2020 2020 3c78 7364 3a64 6f63 756d        <xsd:docum\n+00012680: 656e 7461 7469 6f6e 3e3c 215b 4344 4154  entation><![CDAT\n+00012690: 415b 2054 6865 2073 736c 2063 6f6e 6669  A[ The ssl confi\n+000126a0: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n+000126b0: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+000126c0: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n+000126d0: 6e66 6f3e 0d0a 2020 2020 2020 2020 2020  nfo>..          \n+000126e0: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n+000126f0: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00012700: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00012710: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n+00012720: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n+00012730: 6f2e 636f 6e66 6967 2e53 736c 436f 6e66  o.config.SslConf\n+00012740: 6967 222f 3e0d 0a20 2020 2020 2020 2020  ig\"/>..         \n+00012750: 2020 2020 2020 203c 2f74 6f6f 6c3a 616e         </tool:an\n+00012760: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00012770: 2020 2020 2020 203c 2f78 7364 3a61 7070         </xsd:app\n+00012780: 696e 666f 3e0d 0a20 2020 2020 2020 203c  info>..        <\n+00012790: 2f78 7364 3a61 6e6e 6f74 6174 696f 6e3e  /xsd:annotation>\n+000127a0: 0d0a 2020 2020 3c2f 7873 643a 656c 656d  ..    </xsd:elem\n+000127b0: 656e 743e 0d0a 0d0a 2020 2020 3c78 7364  ent>....    <xsd\n+000127c0: 3a63 6f6d 706c 6578 5479 7065 206e 616d  :complexType nam\n+000127d0: 653d 2261 6e6e 6f74 6174 696f 6e54 7970  e=\"annotationTyp\n+000127e0: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+000127f0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+00012800: 3d22 6964 2220 7479 7065 3d22 7873 643a  =\"id\" type=\"xsd:\n+00012810: 4944 223e 0d0a 2020 2020 2020 2020 2020  ID\">..          \n+00012820: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00012830: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00012840: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00012850: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00012860: 2054 6865 2075 6e69 7175 6520 6964 656e   The unique iden\n+00012870: 7469 6669 6572 2066 6f72 2061 2062 6561  tifier for a bea\n+00012880: 6e2e 205d 5d3e 3c2f 7873 643a 646f 6375  n. ]]></xsd:docu\n+00012890: 6d65 6e74 6174 696f 6e3e 0d0a 2020 2020  mentation>..    \n+000128a0: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+000128b0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+000128c0: 2020 203c 2f78 7364 3a61 7474 7269 6275     </xsd:attribu\n+000128d0: 7465 3e0d 0a20 2020 2020 2020 203c 7873  te>..        <xs\n+000128e0: 643a 6174 7472 6962 7574 6520 6e61 6d65  d:attribute name\n+000128f0: 3d22 7061 636b 6167 6522 2074 7970 653d  =\"package\" type=\n+00012900: 2278 7364 3a73 7472 696e 6722 3e0d 0a20  \"xsd:string\">.. \n+00012910: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00012920: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012930: 2020 2020 2020 2020 2020 2020 203c 7873               <xs\n+00012940: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00012950: 3c21 5b43 4441 5441 5b20 5468 6520 7363  <![CDATA[ The sc\n+00012960: 616e 2070 6163 6b61 6765 2e20 5d5d 3e3c  an package. ]]><\n+00012970: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00012980: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00012990: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+000129a0: 6e3e 0d0a 2020 2020 2020 2020 3c2f 7873  n>..        </xs\n+000129b0: 643a 6174 7472 6962 7574 653e 0d0a 2020  d:attribute>..  \n+000129c0: 2020 3c2f 7873 643a 636f 6d70 6c65 7854    </xsd:complexT\n+000129d0: 7970 653e 0d0a 0d0a 2020 2020 3c78 7364  ype>....    <xsd\n+000129e0: 3a65 6c65 6d65 6e74 206e 616d 653d 2261  :element name=\"a\n+000129f0: 6e6e 6f74 6174 696f 6e22 2074 7970 653d  nnotation\" type=\n+00012a00: 2261 6e6e 6f74 6174 696f 6e54 7970 6522  \"annotationType\"\n+00012a10: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+00012a20: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012a30: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+00012a40: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+00012a50: 4441 5441 5b20 5468 6520 616e 6e6f 7461  DATA[ The annota\n+00012a60: 7469 6f6e 2063 6f6e 6669 6720 5d5d 3e3c  tion config ]]><\n+00012a70: 2f78 7364 3a64 6f63 756d 656e 7461 7469  /xsd:documentati\n+00012a80: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00012a90: 203c 7873 643a 6170 7069 6e66 6f3e 0d0a   <xsd:appinfo>..\n+00012aa0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00012ab0: 3c74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  <tool:annotation\n+00012ac0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n+00012ad0: 2020 2020 2020 203c 746f 6f6c 3a65 7870         <tool:exp\n+00012ae0: 6f72 7473 2074 7970 653d 226f 7267 2e61  orts type=\"org.a\n+00012af0: 7061 6368 652e 6475 6262 6f2e 636f 6e66  pache.dubbo.conf\n+00012b00: 6967 2e53 6572 7669 6365 436f 6e66 6967  ig.ServiceConfig\n+00012b10: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+00012b20: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n+00012b30: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n+00012b40: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n+00012b50: 6e66 6967 2e52 6566 6572 656e 6365 436f  nfig.ReferenceCo\n+00012b60: 6e66 6967 222f 3e0d 0a20 2020 2020 2020  nfig\"/>..       \n+00012b70: 2020 2020 2020 2020 203c 2f74 6f6f 6c3a           </tool:\n+00012b80: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00012b90: 2020 2020 2020 2020 203c 2f78 7364 3a61           </xsd:a\n+00012ba0: 7070 696e 666f 3e0d 0a20 2020 2020 2020  ppinfo>..       \n+00012bb0: 203c 2f78 7364 3a61 6e6e 6f74 6174 696f   </xsd:annotatio\n+00012bc0: 6e3e 0d0a 2020 2020 3c2f 7873 643a 656c  n>..    </xsd:el\n+00012bd0: 656d 656e 743e 0d0a 0d0a 2020 2020 3c78  ement>....    <x\n+00012be0: 7364 3a65 6c65 6d65 6e74 206e 616d 653d  sd:element name=\n+00012bf0: 2261 7070 6c69 6361 7469 6f6e 2220 7479  \"application\" ty\n+00012c00: 7065 3d22 6170 706c 6963 6174 696f 6e54  pe=\"applicationT\n+00012c10: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+00012c20: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00012c30: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00012c40: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00012c50: 3c21 5b43 4441 5441 5b20 5468 6520 6170  <![CDATA[ The ap\n+00012c60: 706c 6963 6174 696f 6e20 636f 6e66 6967  plication config\n+00012c70: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00012c80: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00012c90: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n+00012ca0: 666f 3e0d 0a20 2020 2020 2020 2020 2020  fo>..           \n+00012cb0: 2020 2020 203c 746f 6f6c 3a61 6e6e 6f74       <tool:annot\n+00012cc0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00012cd0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00012ce0: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n+00012cf0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00012d00: 2e63 6f6e 6669 672e 4170 706c 6963 6174  .config.Applicat\n+00012d10: 696f 6e43 6f6e 6669 6722 2f3e 0d0a 2020  ionConfig\"/>..  \n+00012d20: 2020 2020 2020 2020 2020 2020 2020 3c2f                </\n+00012d30: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n+00012d40: 0d0a 2020 2020 2020 2020 2020 2020 3c2f  ..            </\n+00012d50: 7873 643a 6170 7069 6e66 6f3e 0d0a 2020  xsd:appinfo>..  \n+00012d60: 2020 2020 2020 3c2f 7873 643a 616e 6e6f        </xsd:anno\n+00012d70: 7461 7469 6f6e 3e0d 0a20 2020 203c 2f78  tation>..    </x\n+00012d80: 7364 3a65 6c65 6d65 6e74 3e0d 0a0d 0a20  sd:element>.... \n+00012d90: 2020 203c 7873 643a 656c 656d 656e 7420     <xsd:element \n+00012da0: 6e61 6d65 3d22 6d6f 6475 6c65 2220 7479  name=\"module\" ty\n+00012db0: 7065 3d22 6d6f 6475 6c65 5479 7065 223e  pe=\"moduleType\">\n+00012dc0: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00012dd0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00012de0: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00012df0: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00012e00: 4154 415b 2054 6865 206d 6f64 756c 6520  ATA[ The module \n+00012e10: 636f 6e66 6967 205d 5d3e 3c2f 7873 643a  config ]]></xsd:\n+00012e20: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00012e30: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00012e40: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+00012e50: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n+00012e60: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00012e70: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00012e80: 2020 3c74 6f6f 6c3a 6578 706f 7274 7320    <tool:exports \n+00012e90: 7479 7065 3d22 6f72 672e 6170 6163 6865  type=\"org.apache\n+00012ea0: 2e64 7562 626f 2e63 6f6e 6669 672e 4d6f  .dubbo.config.Mo\n+00012eb0: 6475 6c65 436f 6e66 6967 222f 3e0d 0a20  duleConfig\"/>.. \n+00012ec0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+00012ed0: 2f74 6f6f 6c3a 616e 6e6f 7461 7469 6f6e  /tool:annotation\n+00012ee0: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+00012ef0: 2f78 7364 3a61 7070 696e 666f 3e0d 0a20  /xsd:appinfo>.. \n+00012f00: 2020 2020 2020 203c 2f78 7364 3a61 6e6e         </xsd:ann\n+00012f10: 6f74 6174 696f 6e3e 0d0a 2020 2020 3c2f  otation>..    </\n+00012f20: 7873 643a 656c 656d 656e 743e 0d0a 0d0a  xsd:element>....\n+00012f30: 2020 2020 3c78 7364 3a65 6c65 6d65 6e74      <xsd:element\n+00012f40: 206e 616d 653d 2272 6567 6973 7472 7922   name=\"registry\"\n+00012f50: 2074 7970 653d 2272 6567 6973 7472 7954   type=\"registryT\n+00012f60: 7970 6522 3e0d 0a20 2020 2020 2020 203c  ype\">..        <\n+00012f70: 7873 643a 616e 6e6f 7461 7469 6f6e 3e0d  xsd:annotation>.\n+00012f80: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00012f90: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00012fa0: 3c21 5b43 4441 5441 5b20 5468 6520 7265  <![CDATA[ The re\n+00012fb0: 6769 7374 7279 2063 6f6e 6669 6720 5d5d  gistry config ]]\n+00012fc0: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00012fd0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00012fe0: 2020 203c 7873 643a 6170 7069 6e66 6f3e     <xsd:appinfo>\n+00012ff0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00013000: 2020 3c74 6f6f 6c3a 616e 6e6f 7461 7469    <tool:annotati\n+00013010: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013020: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n+00013030: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n+00013040: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n+00013050: 6e66 6967 2e52 6567 6973 7472 7943 6f6e  nfig.RegistryCon\n+00013060: 6669 6722 2f3e 0d0a 2020 2020 2020 2020  fig\"/>..        \n+00013070: 2020 2020 2020 2020 3c2f 746f 6f6c 3a61          </tool:a\n+00013080: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00013090: 2020 2020 2020 2020 3c2f 7873 643a 6170          </xsd:ap\n+000130a0: 7069 6e66 6f3e 0d0a 2020 2020 2020 2020  pinfo>..        \n+000130b0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+000130c0: 3e0d 0a20 2020 203c 2f78 7364 3a65 6c65  >..    </xsd:ele\n+000130d0: 6d65 6e74 3e0d 0a0d 0a20 2020 203c 7873  ment>....    <xs\n+000130e0: 643a 656c 656d 656e 7420 6e61 6d65 3d22  d:element name=\"\n+000130f0: 6d65 7461 6461 7461 2d72 6570 6f72 7422  metadata-report\"\n+00013100: 2074 7970 653d 226d 6574 6164 6174 6152   type=\"metadataR\n+00013110: 6570 6f72 7454 7970 6522 3e0d 0a20 2020  eportType\">..   \n+00013120: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00013130: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00013140: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00013150: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00013160: 5468 6520 6d65 7461 6461 7461 5265 706f  The metadataRepo\n+00013170: 7274 2063 6f6e 6669 6720 5d5d 3e3c 2f78  rt config ]]></x\n+00013180: 7364 3a64 6f63 756d 656e 7461 7469 6f6e  sd:documentation\n+00013190: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n+000131a0: 7873 643a 6170 7069 6e66 6f3e 0d0a 2020  xsd:appinfo>..  \n+000131b0: 2020 2020 2020 2020 2020 2020 2020 3c74                <t\n+000131c0: 6f6f 6c3a 616e 6e6f 7461 7469 6f6e 3e0d  ool:annotation>.\n+000131d0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000131e0: 2020 2020 203c 746f 6f6c 3a65 7870 6f72       <tool:expor\n+000131f0: 7473 2074 7970 653d 226f 7267 2e61 7061  ts type=\"org.apa\n+00013200: 6368 652e 6475 6262 6f2e 636f 6e66 6967  che.dubbo.config\n+00013210: 2e4d 6574 6164 6174 6152 6570 6f72 7443  .MetadataReportC\n+00013220: 6f6e 6669 6722 2f3e 0d0a 2020 2020 2020  onfig\"/>..      \n+00013230: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n+00013240: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00013250: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00013260: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00013270: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00013280: 6f6e 3e0d 0a20 2020 203c 2f78 7364 3a65  on>..    </xsd:e\n+00013290: 6c65 6d65 6e74 3e0d 0a0d 0a20 2020 203c  lement>....    <\n+000132a0: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n+000132b0: 3d22 636f 6e66 6967 2d63 656e 7465 7222  =\"config-center\"\n+000132c0: 2074 7970 653d 2263 6f6e 6669 6743 656e   type=\"configCen\n+000132d0: 7465 7254 7970 6522 3e0d 0a20 2020 2020  terType\">..     \n+000132e0: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+000132f0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013300: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+00013310: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+00013320: 6520 636f 6e66 6967 2063 656e 7465 7220  e config center \n+00013330: 636f 6e66 6967 205d 5d3e 3c2f 7873 643a  config ]]></xsd:\n+00013340: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00013350: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00013360: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+00013370: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n+00013380: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00013390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000133a0: 2020 3c74 6f6f 6c3a 6578 706f 7274 7320    <tool:exports \n+000133b0: 7479 7065 3d22 6f72 672e 6170 6163 6865  type=\"org.apache\n+000133c0: 2e64 7562 626f 2e63 6f6e 6669 672e 436f  .dubbo.config.Co\n+000133d0: 6e66 6967 4365 6e74 6572 436f 6e66 6967  nfigCenterConfig\n+000133e0: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+000133f0: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n+00013400: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00013410: 2020 2020 203c 2f78 7364 3a61 7070 696e       </xsd:appin\n+00013420: 666f 3e0d 0a20 2020 2020 2020 203c 2f78  fo>..        </x\n+00013430: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+00013440: 2020 2020 3c2f 7873 643a 656c 656d 656e      </xsd:elemen\n+00013450: 743e 0d0a 0d0a 2020 2020 3c78 7364 3a65  t>....    <xsd:e\n+00013460: 6c65 6d65 6e74 206e 616d 653d 226d 6f6e  lement name=\"mon\n+00013470: 6974 6f72 2220 7479 7065 3d22 6d6f 6e69  itor\" type=\"moni\n+00013480: 746f 7254 7970 6522 3e0d 0a20 2020 2020  torType\">..     \n+00013490: 2020 203c 7873 643a 616e 6e6f 7461 7469     <xsd:annotati\n+000134a0: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+000134b0: 203c 7873 643a 646f 6375 6d65 6e74 6174   <xsd:documentat\n+000134c0: 696f 6e3e 3c21 5b43 4441 5441 5b20 5468  ion><![CDATA[ Th\n+000134d0: 6520 6c6f 6773 7461 7420 6d6f 6e69 746f  e logstat monito\n+000134e0: 7220 636f 6e66 6967 205d 5d3e 3c2f 7873  r config ]]></xs\n+000134f0: 643a 646f 6375 6d65 6e74 6174 696f 6e3e  d:documentation>\n+00013500: 0d0a 2020 2020 2020 2020 2020 2020 3c78  ..            <x\n+00013510: 7364 3a61 7070 696e 666f 3e0d 0a20 2020  sd:appinfo>..   \n+00013520: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00013530: 6f6c 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  ol:annotation>..\n+00013540: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013550: 2020 2020 3c74 6f6f 6c3a 6578 706f 7274      <tool:export\n+00013560: 7320 7479 7065 3d22 6f72 672e 6170 6163  s type=\"org.apac\n+00013570: 6865 2e64 7562 626f 2e63 6f6e 6669 672e  he.dubbo.config.\n+00013580: 4d6f 6e69 746f 7243 6f6e 6669 6722 2f3e  MonitorConfig\"/>\n+00013590: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+000135a0: 2020 3c2f 746f 6f6c 3a61 6e6e 6f74 6174    </tool:annotat\n+000135b0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n+000135c0: 2020 3c2f 7873 643a 6170 7069 6e66 6f3e    </xsd:appinfo>\n+000135d0: 0d0a 2020 2020 2020 2020 3c2f 7873 643a  ..        </xsd:\n+000135e0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000135f0: 203c 2f78 7364 3a65 6c65 6d65 6e74 3e0d   </xsd:element>.\n+00013600: 0a0d 0a20 2020 203c 7873 643a 656c 656d  ...    <xsd:elem\n+00013610: 656e 7420 6e61 6d65 3d22 7072 6f76 6964  ent name=\"provid\n+00013620: 6572 2220 7479 7065 3d22 7072 6f76 6964  er\" type=\"provid\n+00013630: 6572 5479 7065 223e 0d0a 2020 2020 2020  erType\">..      \n+00013640: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00013650: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00013660: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00013670: 6f6e 3e3c 215b 4344 4154 415b 2045 7870  on><![CDATA[ Exp\n+00013680: 6f72 7420 7365 7276 6963 6520 6465 6661  ort service defa\n+00013690: 756c 7420 636f 6e66 6967 205d 5d3e 3c2f  ult config ]]></\n+000136a0: 7873 643a 646f 6375 6d65 6e74 6174 696f  xsd:documentatio\n+000136b0: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+000136c0: 3c78 7364 3a61 7070 696e 666f 3e0d 0a20  <xsd:appinfo>.. \n+000136d0: 2020 2020 2020 2020 2020 2020 2020 203c                 <\n+000136e0: 746f 6f6c 3a61 6e6e 6f74 6174 696f 6e3e  tool:annotation>\n+000136f0: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00013700: 2020 2020 2020 3c74 6f6f 6c3a 6578 706f        <tool:expo\n+00013710: 7274 7320 7479 7065 3d22 6f72 672e 6170  rts type=\"org.ap\n+00013720: 6163 6865 2e64 7562 626f 2e63 6f6e 6669  ache.dubbo.confi\n+00013730: 672e 5072 6f76 6964 6572 436f 6e66 6967  g.ProviderConfig\n+00013740: 222f 3e0d 0a20 2020 2020 2020 2020 2020  \"/>..           \n+00013750: 2020 2020 203c 2f74 6f6f 6c3a 616e 6e6f       </tool:anno\n+00013760: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00013770: 2020 2020 203c 2f78 7364 3a61 7070 696e       </xsd:appin\n+00013780: 666f 3e0d 0a20 2020 2020 2020 203c 2f78  fo>..        </x\n+00013790: 7364 3a61 6e6e 6f74 6174 696f 6e3e 0d0a  sd:annotation>..\n+000137a0: 2020 2020 3c2f 7873 643a 656c 656d 656e      </xsd:elemen\n+000137b0: 743e 0d0a 0d0a 2020 2020 3c78 7364 3a65  t>....    <xsd:e\n+000137c0: 6c65 6d65 6e74 206e 616d 653d 2263 6f6e  lement name=\"con\n+000137d0: 7375 6d65 7222 2074 7970 653d 2263 6f6e  sumer\" type=\"con\n+000137e0: 7375 6d65 7254 7970 6522 3e0d 0a20 2020  sumerType\">..   \n+000137f0: 2020 2020 203c 7873 643a 616e 6e6f 7461       <xsd:annota\n+00013800: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00013810: 2020 203c 7873 643a 646f 6375 6d65 6e74     <xsd:document\n+00013820: 6174 696f 6e3e 3c21 5b43 4441 5441 5b20  ation><![CDATA[ \n+00013830: 5365 7276 6963 6520 7265 6665 7265 6e63  Service referenc\n+00013840: 6520 6465 6661 756c 7420 636f 6e66 6967  e default config\n+00013850: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+00013860: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+00013870: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n+00013880: 666f 3e0d 0a20 2020 2020 2020 2020 2020  fo>..           \n+00013890: 2020 2020 203c 746f 6f6c 3a61 6e6e 6f74       <tool:annot\n+000138a0: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+000138b0: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+000138c0: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n+000138d0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000138e0: 2e63 6f6e 6669 672e 436f 6e73 756d 6572  .config.Consumer\n+000138f0: 436f 6e66 6967 222f 3e0d 0a20 2020 2020  Config\"/>..     \n+00013900: 2020 2020 2020 2020 2020 203c 2f74 6f6f             </too\n+00013910: 6c3a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  l:annotation>.. \n+00013920: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00013930: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+00013940: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00013950: 696f 6e3e 0d0a 2020 2020 3c2f 7873 643a  ion>..    </xsd:\n+00013960: 656c 656d 656e 743e 0d0a 0d0a 2020 2020  element>....    \n+00013970: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n+00013980: 653d 2270 726f 746f 636f 6c22 2074 7970  e=\"protocol\" typ\n+00013990: 653d 2270 726f 746f 636f 6c54 7970 6522  e=\"protocolType\"\n+000139a0: 3e0d 0a20 2020 2020 2020 203c 7873 643a  >..        <xsd:\n+000139b0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+000139c0: 2020 2020 2020 2020 203c 7873 643a 646f           <xsd:do\n+000139d0: 6375 6d65 6e74 6174 696f 6e3e 3c21 5b43  cumentation><![C\n+000139e0: 4441 5441 5b20 5365 7276 6963 6520 7072  DATA[ Service pr\n+000139f0: 6f76 6964 6572 2063 6f6e 6669 6720 5d5d  ovider config ]]\n+00013a00: 3e3c 2f78 7364 3a64 6f63 756d 656e 7461  ></xsd:documenta\n+00013a10: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n+00013a20: 2020 203c 7873 643a 6170 7069 6e66 6f3e     <xsd:appinfo>\n+00013a30: 0d0a 2020 2020 2020 2020 2020 2020 2020  ..              \n+00013a40: 2020 3c74 6f6f 6c3a 616e 6e6f 7461 7469    <tool:annotati\n+00013a50: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013a60: 2020 2020 2020 2020 203c 746f 6f6c 3a65           <tool:e\n+00013a70: 7870 6f72 7473 2074 7970 653d 226f 7267  xports type=\"org\n+00013a80: 2e61 7061 6368 652e 6475 6262 6f2e 636f  .apache.dubbo.co\n+00013a90: 6e66 6967 2e50 726f 746f 636f 6c43 6f6e  nfig.ProtocolCon\n+00013aa0: 6669 6722 2f3e 0d0a 2020 2020 2020 2020  fig\"/>..        \n+00013ab0: 2020 2020 2020 2020 3c2f 746f 6f6c 3a61          </tool:a\n+00013ac0: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00013ad0: 2020 2020 2020 2020 3c2f 7873 643a 6170          </xsd:ap\n+00013ae0: 7069 6e66 6f3e 0d0a 2020 2020 2020 2020  pinfo>..        \n+00013af0: 3c2f 7873 643a 616e 6e6f 7461 7469 6f6e  </xsd:annotation\n+00013b00: 3e0d 0a20 2020 203c 2f78 7364 3a65 6c65  >..    </xsd:ele\n+00013b10: 6d65 6e74 3e0d 0a0d 0a20 2020 203c 7873  ment>....    <xs\n+00013b20: 643a 656c 656d 656e 7420 6e61 6d65 3d22  d:element name=\"\n+00013b30: 7365 7276 6963 6522 2074 7970 653d 2273  service\" type=\"s\n+00013b40: 6572 7669 6365 5479 7065 223e 0d0a 2020  erviceType\">..  \n+00013b50: 2020 2020 2020 3c78 7364 3a61 6e6e 6f74        <xsd:annot\n+00013b60: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00013b70: 2020 2020 3c78 7364 3a64 6f63 756d 656e      <xsd:documen\n+00013b80: 7461 7469 6f6e 3e3c 215b 4344 4154 415b  tation><![CDATA[\n+00013b90: 2045 7870 6f72 7420 7365 7276 6963 6520   Export service \n+00013ba0: 636f 6e66 6967 205d 5d3e 3c2f 7873 643a  config ]]></xsd:\n+00013bb0: 646f 6375 6d65 6e74 6174 696f 6e3e 0d0a  documentation>..\n+00013bc0: 2020 2020 2020 2020 2020 2020 3c78 7364              <xsd\n+00013bd0: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+00013be0: 2020 2020 2020 2020 2020 203c 746f 6f6c             <tool\n+00013bf0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00013c00: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013c10: 2020 3c74 6f6f 6c3a 6578 706f 7274 7320    <tool:exports \n+00013c20: 7479 7065 3d22 6f72 672e 6170 6163 6865  type=\"org.apache\n+00013c30: 2e64 7562 626f 2e63 6f6e 6669 672e 5365  .dubbo.config.Se\n+00013c40: 7276 6963 6543 6f6e 6669 6722 2f3e 0d0a  rviceConfig\"/>..\n+00013c50: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013c60: 3c2f 746f 6f6c 3a61 6e6e 6f74 6174 696f  </tool:annotatio\n+00013c70: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00013c80: 3c2f 7873 643a 6170 7069 6e66 6f3e 0d0a  </xsd:appinfo>..\n+00013c90: 2020 2020 2020 2020 3c2f 7873 643a 616e          </xsd:an\n+00013ca0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 203c  notation>..    <\n+00013cb0: 2f78 7364 3a65 6c65 6d65 6e74 3e0d 0a0d  /xsd:element>...\n+00013cc0: 0a20 2020 203c 7873 643a 656c 656d 656e  .    <xsd:elemen\n+00013cd0: 7420 6e61 6d65 3d22 7265 6665 7265 6e63  t name=\"referenc\n+00013ce0: 6522 2074 7970 653d 2272 6566 6572 656e  e\" type=\"referen\n+00013cf0: 6365 5479 7065 223e 0d0a 2020 2020 2020  ceType\">..      \n+00013d00: 2020 3c78 7364 3a61 6e6e 6f74 6174 696f    <xsd:annotatio\n+00013d10: 6e3e 0d0a 2020 2020 2020 2020 2020 2020  n>..            \n+00013d20: 3c78 7364 3a64 6f63 756d 656e 7461 7469  <xsd:documentati\n+00013d30: 6f6e 3e3c 215b 4344 4154 415b 2052 6566  on><![CDATA[ Ref\n+00013d40: 6572 656e 6365 2073 6572 7669 6365 2063  erence service c\n+00013d50: 6f6e 6669 6720 5d5d 3e3c 2f78 7364 3a64  onfig ]]></xsd:d\n+00013d60: 6f63 756d 656e 7461 7469 6f6e 3e0d 0a20  ocumentation>.. \n+00013d70: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013d80: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00013d90: 2020 2020 2020 2020 2020 3c74 6f6f 6c3a            <tool:\n+00013da0: 616e 6e6f 7461 7469 6f6e 3e0d 0a20 2020  annotation>..   \n+00013db0: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+00013dc0: 203c 746f 6f6c 3a65 7870 6f72 7473 2074   <tool:exports t\n+00013dd0: 7970 653d 226f 7267 2e61 7061 6368 652e  ype=\"org.apache.\n+00013de0: 6475 6262 6f2e 636f 6e66 6967 2e52 6566  dubbo.config.Ref\n+00013df0: 6572 656e 6365 436f 6e66 6967 222f 3e0d  erenceConfig\"/>.\n+00013e00: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+00013e10: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+00013e20: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00013e30: 203c 2f78 7364 3a61 7070 696e 666f 3e0d   </xsd:appinfo>.\n+00013e40: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00013e50: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00013e60: 3c2f 7873 643a 656c 656d 656e 743e 0d0a  </xsd:element>..\n+00013e70: 0d0a 2020 2020 3c78 7364 3a65 6c65 6d65  ..    <xsd:eleme\n+00013e80: 6e74 206e 616d 653d 226d 6574 686f 6422  nt name=\"method\"\n+00013e90: 2074 7970 653d 226d 6574 686f 6454 7970   type=\"methodTyp\n+00013ea0: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00013eb0: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00013ec0: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00013ed0: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00013ee0: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00013ef0: 6963 6520 6d65 7468 6f64 2063 6f6e 6669  ice method confi\n+00013f00: 6720 5d5d 3e3c 2f78 7364 3a64 6f63 756d  g ]]></xsd:docum\n+00013f10: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00013f20: 2020 2020 2020 203c 7873 643a 6170 7069         <xsd:appi\n+00013f30: 6e66 6f3e 0d0a 2020 2020 2020 2020 2020  nfo>..          \n+00013f40: 2020 2020 2020 3c74 6f6f 6c3a 616e 6e6f        <tool:anno\n+00013f50: 7461 7469 6f6e 3e0d 0a20 2020 2020 2020  tation>..       \n+00013f60: 2020 2020 2020 2020 2020 2020 203c 746f               <to\n+00013f70: 6f6c 3a65 7870 6f72 7473 2074 7970 653d  ol:exports type=\n+00013f80: 226f 7267 2e61 7061 6368 652e 6475 6262  \"org.apache.dubb\n+00013f90: 6f2e 636f 6e66 6967 2e4d 6574 686f 6443  o.config.MethodC\n+00013fa0: 6f6e 6669 6722 2f3e 0d0a 2020 2020 2020  onfig\"/>..      \n+00013fb0: 2020 2020 2020 2020 2020 3c2f 746f 6f6c            </tool\n+00013fc0: 3a61 6e6e 6f74 6174 696f 6e3e 0d0a 2020  :annotation>..  \n+00013fd0: 2020 2020 2020 2020 2020 3c2f 7873 643a            </xsd:\n+00013fe0: 6170 7069 6e66 6f3e 0d0a 2020 2020 2020  appinfo>..      \n+00013ff0: 2020 3c2f 7873 643a 616e 6e6f 7461 7469    </xsd:annotati\n+00014000: 6f6e 3e0d 0a20 2020 203c 2f78 7364 3a65  on>..    </xsd:e\n+00014010: 6c65 6d65 6e74 3e0d 0a0d 0a20 2020 203c  lement>....    <\n+00014020: 7873 643a 656c 656d 656e 7420 6e61 6d65  xsd:element name\n+00014030: 3d22 6172 6775 6d65 6e74 2220 7479 7065  =\"argument\" type\n+00014040: 3d22 6172 6775 6d65 6e74 5479 7065 223e  =\"argumentType\">\n+00014050: 0d0a 2020 2020 2020 2020 3c78 7364 3a61  ..        <xsd:a\n+00014060: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00014070: 2020 2020 2020 2020 3c78 7364 3a64 6f63          <xsd:doc\n+00014080: 756d 656e 7461 7469 6f6e 3e3c 215b 4344  umentation><![CD\n+00014090: 4154 415b 2054 6865 2073 6572 7669 6365  ATA[ The service\n+000140a0: 2061 7267 756d 656e 7420 636f 6e66 6967   argument config\n+000140b0: 205d 5d3e 3c2f 7873 643a 646f 6375 6d65   ]]></xsd:docume\n+000140c0: 6e74 6174 696f 6e3e 0d0a 2020 2020 2020  ntation>..      \n+000140d0: 2020 2020 2020 3c78 7364 3a61 7070 696e        <xsd:appin\n+000140e0: 666f 3e0d 0a20 2020 2020 2020 2020 2020  fo>..           \n+000140f0: 2020 2020 203c 746f 6f6c 3a61 6e6e 6f74       <tool:annot\n+00014100: 6174 696f 6e3e 0d0a 2020 2020 2020 2020  ation>..        \n+00014110: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00014120: 6c3a 6578 706f 7274 7320 7479 7065 3d22  l:exports type=\"\n+00014130: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00014140: 2e63 6f6e 6669 672e 4172 6775 6d65 6e74  .config.Argument\n+00014150: 436f 6e66 6967 222f 3e0d 0a20 2020 2020  Config\"/>..     \n+00014160: 2020 2020 2020 2020 2020 203c 2f74 6f6f             </too\n+00014170: 6c3a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  l:annotation>.. \n+00014180: 2020 2020 2020 2020 2020 203c 2f78 7364             </xsd\n+00014190: 3a61 7070 696e 666f 3e0d 0a20 2020 2020  :appinfo>..     \n+000141a0: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+000141b0: 696f 6e3e 0d0a 2020 2020 3c2f 7873 643a  ion>..    </xsd:\n+000141c0: 656c 656d 656e 743e 0d0a 0d0a 2020 2020  element>....    \n+000141d0: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n+000141e0: 653d 2270 6172 616d 6574 6572 2220 7479  e=\"parameter\" ty\n+000141f0: 7065 3d22 7061 7261 6d65 7465 7254 7970  pe=\"parameterTyp\n+00014200: 6522 3e0d 0a20 2020 2020 2020 203c 7873  e\">..        <xs\n+00014210: 643a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  d:annotation>.. \n+00014220: 2020 2020 2020 2020 2020 203c 7873 643a             <xsd:\n+00014230: 646f 6375 6d65 6e74 6174 696f 6e3e 3c21  documentation><!\n+00014240: 5b43 4441 5441 5b20 5468 6520 7365 7276  [CDATA[ The serv\n+00014250: 6963 6520 7572 6c20 7061 7261 6d65 7465  ice url paramete\n+00014260: 7220 5d5d 3e3c 2f78 7364 3a64 6f63 756d  r ]]></xsd:docum\n+00014270: 656e 7461 7469 6f6e 3e0d 0a20 2020 2020  entation>..     \n+00014280: 2020 203c 2f78 7364 3a61 6e6e 6f74 6174     </xsd:annotat\n+00014290: 696f 6e3e 0d0a 2020 2020 3c2f 7873 643a  ion>..    </xsd:\n+000142a0: 656c 656d 656e 743e 0d0a 0d0a 2020 2020  element>....    \n+000142b0: 3c78 7364 3a65 6c65 6d65 6e74 206e 616d  <xsd:element nam\n+000142c0: 653d 226d 6574 7269 6373 2220 7479 7065  e=\"metrics\" type\n+000142d0: 3d22 6d65 7472 6963 7354 7970 6522 3e0d  =\"metricsType\">.\n+000142e0: 0a20 2020 2020 2020 203c 7873 643a 616e  .        <xsd:an\n+000142f0: 6e6f 7461 7469 6f6e 3e0d 0a20 2020 2020  notation>..     \n+00014300: 2020 2020 2020 203c 7873 643a 646f 6375         <xsd:docu\n+00014310: 6d65 6e74 6174 696f 6e3e 3c21 5b43 4441  mentation><![CDA\n+00014320: 5441 5b20 5468 6520 6d65 7472 6963 7320  TA[ The metrics \n+00014330: 7365 7276 6963 6520 5d5d 3e3c 2f78 7364  service ]]></xsd\n+00014340: 3a64 6f63 756d 656e 7461 7469 6f6e 3e0d  :documentation>.\n+00014350: 0a20 2020 2020 2020 2020 2020 203c 7873  .            <xs\n+00014360: 643a 6170 7069 6e66 6f3e 0d0a 2020 2020  d:appinfo>..    \n+00014370: 2020 2020 2020 2020 2020 2020 3c74 6f6f              <too\n+00014380: 6c3a 616e 6e6f 7461 7469 6f6e 3e0d 0a20  l:annotation>.. \n+00014390: 2020 2020 2020 2020 2020 2020 2020 2020                  \n+000143a0: 2020 203c 746f 6f6c 3a65 7870 6f72 7473     <tool:exports\n+000143b0: 2074 7970 653d 226f 7267 2e61 7061 6368   type=\"org.apach\n+000143c0: 652e 6475 6262 6f2e 636f 6e66 6967 2e4d  e.dubbo.config.M\n+000143d0: 6574 7269 6373 436f 6e66 6967 222f 3e0d  etricsConfig\"/>.\n+000143e0: 0a20 2020 2020 2020 2020 2020 2020 2020  .               \n+000143f0: 203c 2f74 6f6f 6c3a 616e 6e6f 7461 7469   </tool:annotati\n+00014400: 6f6e 3e0d 0a20 2020 2020 2020 2020 2020  on>..           \n+00014410: 203c 2f78 7364 3a61 7070 696e 666f 3e0d   </xsd:appinfo>.\n+00014420: 0a20 2020 2020 2020 203c 2f78 7364 3a61  .        </xsd:a\n+00014430: 6e6e 6f74 6174 696f 6e3e 0d0a 2020 2020  nnotation>..    \n+00014440: 3c2f 7873 643a 656c 656d 656e 743e 0d0a  </xsd:element>..\n+00014450: 0d0a 3c2f 7873 643a 7363 6865 6d61 3e0d  ..</xsd:schema>.\n+00014460: 0a                                       .\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,8 +1,8 @@\n-nop=org.apache.dubbo.common.config.configcenter.nop.NopDynamicConfigurationFactory\n+nop=org.apache.dubbo.common.config.configcenter.nop.NopDynamicConfigurationFactory\r\n file=org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfigurationFactory\n zookeeper=org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfigurationFactory\n apollo=org.apache.dubbo.configcenter.support.apollo.ApolloDynamicConfigurationFactory\n nacos=org.apache.dubbo.configcenter.support.nacos.NacosDynamicConfigurationFactory\n-consul=org.apache.dubbo.configcenter.consul.ConsulDynamicConfigurationFactory\n+consul=org.apache.dubbo.configcenter.consul.ConsulDynamicConfigurationFactory\r\n \n etcd=org.apache.dubbo.configcenter.support.etcd.EtcdDynamicConfigurationFactory\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.context.FrameworkExt", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.context.FrameworkExt", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,3 +1,3 @@\n-config=org.apache.dubbo.config.context.ConfigManager\n-environment=org.apache.dubbo.common.config.Environment\n+config=org.apache.dubbo.config.context.ConfigManager\r\n+environment=org.apache.dubbo.common.config.Environment\r\n repository=org.apache.dubbo.rpc.model.ServiceRepository\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.convert.Converter", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.convert.Converter", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,11 +1,11 @@\n-# org.apache.dubbo.common.convert.Converter\n-string-to-boolean=org.apache.dubbo.common.convert.StringToBooleanConverter\n-string-to-character=org.apache.dubbo.common.convert.StringToCharacterConverter\n-string-to-char-array=org.apache.dubbo.common.convert.StringToCharArrayConverter\n-string-to-double=org.apache.dubbo.common.convert.StringToDoubleConverter\n-string-to-float=org.apache.dubbo.common.convert.StringToFloatConverter\n-string-to-integer=org.apache.dubbo.common.convert.StringToIntegerConverter\n-string-to-long=org.apache.dubbo.common.convert.StringToLongConverter\n-string-to-optional=org.apache.dubbo.common.convert.StringToOptionalConverter\n-string-to-short=org.apache.dubbo.common.convert.StringToShortConverter\n+# org.apache.dubbo.common.convert.Converter\r\n+string-to-boolean=org.apache.dubbo.common.convert.StringToBooleanConverter\r\n+string-to-character=org.apache.dubbo.common.convert.StringToCharacterConverter\r\n+string-to-char-array=org.apache.dubbo.common.convert.StringToCharArrayConverter\r\n+string-to-double=org.apache.dubbo.common.convert.StringToDoubleConverter\r\n+string-to-float=org.apache.dubbo.common.convert.StringToFloatConverter\r\n+string-to-integer=org.apache.dubbo.common.convert.StringToIntegerConverter\r\n+string-to-long=org.apache.dubbo.common.convert.StringToLongConverter\r\n+string-to-optional=org.apache.dubbo.common.convert.StringToOptionalConverter\r\n+string-to-short=org.apache.dubbo.common.convert.StringToShortConverter\r\n string-to-string=org.apache.dubbo.common.convert.StringToStringConverter\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.convert.multiple.MultiValueConverter", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.convert.multiple.MultiValueConverter", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,13 +1,13 @@\n-# org.apache.dubbo.common.convert.multiple.MultiValueConverter\n-string-to-array=org.apache.dubbo.common.convert.multiple.StringToArrayConverter\n-string-to-blocking-deque=org.apache.dubbo.common.convert.multiple.StringToBlockingDequeConverter\n-string-to-blocking-queue=org.apache.dubbo.common.convert.multiple.StringToBlockingQueueConverter\n-string-to-collection=org.apache.dubbo.common.convert.multiple.StringToCollectionConverter\n-string-to-deque=org.apache.dubbo.common.convert.multiple.StringToDequeConverter\n-string-to-list=org.apache.dubbo.common.convert.multiple.StringToListConverter\n-string-to-navigable-set=org.apache.dubbo.common.convert.multiple.StringToNavigableSetConverter\n-string-to-queue=org.apache.dubbo.common.convert.multiple.StringToQueueConverter\n-string-to-set=org.apache.dubbo.common.convert.multiple.StringToSetConverter\n-string-to-sorted-set=org.apache.dubbo.common.convert.multiple.StringToSortedSetConverter\n-string-to-transfer-queue=org.apache.dubbo.common.convert.multiple.StringToTransferQueueConverter\n+# org.apache.dubbo.common.convert.multiple.MultiValueConverter\r\n+string-to-array=org.apache.dubbo.common.convert.multiple.StringToArrayConverter\r\n+string-to-blocking-deque=org.apache.dubbo.common.convert.multiple.StringToBlockingDequeConverter\r\n+string-to-blocking-queue=org.apache.dubbo.common.convert.multiple.StringToBlockingQueueConverter\r\n+string-to-collection=org.apache.dubbo.common.convert.multiple.StringToCollectionConverter\r\n+string-to-deque=org.apache.dubbo.common.convert.multiple.StringToDequeConverter\r\n+string-to-list=org.apache.dubbo.common.convert.multiple.StringToListConverter\r\n+string-to-navigable-set=org.apache.dubbo.common.convert.multiple.StringToNavigableSetConverter\r\n+string-to-queue=org.apache.dubbo.common.convert.multiple.StringToQueueConverter\r\n+string-to-set=org.apache.dubbo.common.convert.multiple.StringToSetConverter\r\n+string-to-sorted-set=org.apache.dubbo.common.convert.multiple.StringToSortedSetConverter\r\n+string-to-transfer-queue=org.apache.dubbo.common.convert.multiple.StringToTransferQueueConverter\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.Serialization", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,16 +1,16 @@\n fastjson=org.apache.dubbo.common.serialize.fastjson.FastJsonSerialization\n fst=org.apache.dubbo.common.serialize.fst.FstSerialization\n hessian2=org.apache.dubbo.common.serialize.hessian2.Hessian2Serialization\n native-hessian=org.apache.dubbo.serialize.hessian.Hessian2Serialization\n java=org.apache.dubbo.common.serialize.java.JavaSerialization\r\n compactedjava=org.apache.dubbo.common.serialize.java.CompactedJavaSerialization\r\n nativejava=org.apache.dubbo.common.serialize.nativejava.NativeJavaSerialization\n-kryo=org.apache.dubbo.common.serialize.kryo.KryoSerialization\n+kryo=org.apache.dubbo.common.serialize.kryo.KryoSerialization\r\n kryo2=org.apache.dubbo.common.serialize.kryo.optimized.KryoSerialization2\n avro=org.apache.dubbo.common.serialize.avro.AvroSerialization\n protostuff=org.apache.dubbo.common.serialize.protostuff.ProtostuffSerialization\r\n \n-gson=org.apache.dubbo.common.serialize.gson.GsonSerialization\n+gson=org.apache.dubbo.common.serialize.gson.GsonSerialization\r\n \n-protobuf-json=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufJsonSerialization\n+protobuf-json=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufJsonSerialization\r\n protobuf=org.apache.dubbo.common.serialize.protobuf.support.GenericProtobufSerialization\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-default=org.apache.dubbo.common.serialize.hessian2.dubbo.DefaultHessian2FactoryInitializer\n+default=org.apache.dubbo.common.serialize.hessian2.dubbo.DefaultHessian2FactoryInitializer\r\n whitelist=org.apache.dubbo.common.serialize.hessian2.dubbo.WhitelistHessian2FactoryInitializer\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.common.status.StatusChecker", "source2": "META-INF/dubbo/internal/org.apache.dubbo.common.status.StatusChecker", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,7 +1,7 @@\n-spring=org.apache.dubbo.config.spring.status.SpringStatusChecker\n+spring=org.apache.dubbo.config.spring.status.SpringStatusChecker\r\n datasource=org.apache.dubbo.config.spring.status.DataSourceStatusChecker\n memory=org.apache.dubbo.common.status.support.MemoryStatusChecker\r\n load=org.apache.dubbo.common.status.support.LoadStatusChecker\n server=org.apache.dubbo.rpc.protocol.dubbo.status.ServerStatusChecker\r\n threadpool=org.apache.dubbo.rpc.protocol.dubbo.status.ThreadPoolStatusChecker\n registry=org.apache.dubbo.registry.status.RegistryStatusChecker\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.event.EventDispatcher", "source2": "META-INF/dubbo/internal/org.apache.dubbo.event.EventDispatcher", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,3 +1,3 @@\n-direct=org.apache.dubbo.event.DirectEventDispatcher\n-parallel=org.apache.dubbo.event.ParallelEventDispatcher\n+direct=org.apache.dubbo.event.DirectEventDispatcher\r\n+parallel=org.apache.dubbo.event.ParallelEventDispatcher\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.event.EventListener", "source2": "META-INF/dubbo/internal/org.apache.dubbo.event.EventListener", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,3 +1,3 @@\n-config-logging=org.apache.dubbo.config.event.listener.LoggingEventListener\n+config-logging=org.apache.dubbo.config.event.listener.LoggingEventListener\r\n \n registry-logging=org.apache.dubbo.registry.client.event.listener.LoggingEventListener\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.MetadataServiceExporter", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,3 +1,3 @@\n-# since 2.7.8\n-local = org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter\n+# since 2.7.8\r\n+local = org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.definition.builder.TypeBuilder", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,4 +1,4 @@\n-array=org.apache.dubbo.metadata.definition.builder.ArrayTypeBuilder\n-collection=org.apache.dubbo.metadata.definition.builder.CollectionTypeBuilder\n-map=org.apache.dubbo.metadata.definition.builder.MapTypeBuilder\n+array=org.apache.dubbo.metadata.definition.builder.ArrayTypeBuilder\r\n+collection=org.apache.dubbo.metadata.definition.builder.CollectionTypeBuilder\r\n+map=org.apache.dubbo.metadata.definition.builder.MapTypeBuilder\r\n enum=org.apache.dubbo.metadata.definition.builder.EnumTypeBuilder\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.report.MetadataReportFactory", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,12 +1,12 @@\n-zookeeper=org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReportFactory\n+zookeeper=org.apache.dubbo.metadata.store.zookeeper.ZookeeperMetadataReportFactory\r\n \n-redis=org.apache.dubbo.metadata.store.redis.RedisMetadataReportFactory\n+redis=org.apache.dubbo.metadata.store.redis.RedisMetadataReportFactory\r\n \n-consul=org.apache.dubbo.metadata.store.consul.ConsulMetadataReportFactory\n+consul=org.apache.dubbo.metadata.store.consul.ConsulMetadataReportFactory\r\n \n-etcd=org.apache.dubbo.metadata.store.etcd.EtcdMetadataReportFactory\n+etcd=org.apache.dubbo.metadata.store.etcd.EtcdMetadataReportFactory\r\n \n-nacos=org.apache.dubbo.metadata.store.nacos.NacosMetadataReportFactory\n+nacos=org.apache.dubbo.metadata.store.nacos.NacosMetadataReportFactory\r\n \n-failover=org.apache.dubbo.metadata.store.failover.FailoverMetadataReportFactory\n+failover=org.apache.dubbo.metadata.store.failover.FailoverMetadataReportFactory\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,10 +1,10 @@\n-# JAX-RS's implementations\n-jax-rs.query-param = org.apache.dubbo.metadata.rest.jaxrs.QueryParamParameterProcessor\n-jax-rs.form-param = org.apache.dubbo.metadata.rest.jaxrs.FormParamParameterProcessor\n-jax-rs.matrix-param = org.apache.dubbo.metadata.rest.jaxrs.MatrixParamParameterProcessor\n-jax-rs.header-param = org.apache.dubbo.metadata.rest.jaxrs.HeaderParamParameterProcessor\n-jax-rs.default-value-param = org.apache.dubbo.metadata.rest.jaxrs.DefaultValueParameterProcessor\n-\n-# Spring Web MVC's implementations\n-spring-webmvc.request-param = org.apache.dubbo.metadata.rest.springmvc.RequestParamParameterProcessor\n+# JAX-RS's implementations\r\n+jax-rs.query-param = org.apache.dubbo.metadata.rest.jaxrs.QueryParamParameterProcessor\r\n+jax-rs.form-param = org.apache.dubbo.metadata.rest.jaxrs.FormParamParameterProcessor\r\n+jax-rs.matrix-param = org.apache.dubbo.metadata.rest.jaxrs.MatrixParamParameterProcessor\r\n+jax-rs.header-param = org.apache.dubbo.metadata.rest.jaxrs.HeaderParamParameterProcessor\r\n+jax-rs.default-value-param = org.apache.dubbo.metadata.rest.jaxrs.DefaultValueParameterProcessor\r\n+\r\n+# Spring Web MVC's implementations\r\n+spring-webmvc.request-param = org.apache.dubbo.metadata.rest.springmvc.RequestParamParameterProcessor\r\n spring-webmvc.request-header = org.apache.dubbo.metadata.rest.springmvc.RequestHeaderParameterProcessor\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver", "source2": "META-INF/dubbo/internal/org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,3 +1,3 @@\n-default =\n-jax-rs = org.apache.dubbo.metadata.rest.jaxrs.JAXRSServiceRestMetadataResolver\n+default =\r\n+jax-rs = org.apache.dubbo.metadata.rest.jaxrs.JAXRSServiceRestMetadataResolver\r\n spring-webmvc = org.apache.dubbo.metadata.rest.springmvc.SpringMvcServiceRestMetadataResolver\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand", "source2": "META-INF/dubbo/internal/org.apache.dubbo.qos.command.BaseCommand", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,9 +1,9 @@\n-online=org.apache.dubbo.qos.command.impl.Online\n-help=org.apache.dubbo.qos.command.impl.Help\n-quit=org.apache.dubbo.qos.command.impl.Quit\n-ls=org.apache.dubbo.qos.command.impl.Ls\n-offline=org.apache.dubbo.qos.command.impl.Offline\n-ready=org.apache.dubbo.qos.command.impl.Ready\n-version=org.apache.dubbo.qos.command.impl.Version\n-publish-metadata=org.apache.dubbo.qos.command.impl.PublishMetadata\n+online=org.apache.dubbo.qos.command.impl.Online\r\n+help=org.apache.dubbo.qos.command.impl.Help\r\n+quit=org.apache.dubbo.qos.command.impl.Quit\r\n+ls=org.apache.dubbo.qos.command.impl.Ls\r\n+offline=org.apache.dubbo.qos.command.impl.Offline\r\n+ready=org.apache.dubbo.qos.command.impl.Ready\r\n+version=org.apache.dubbo.qos.command.impl.Version\r\n+publish-metadata=org.apache.dubbo.qos.command.impl.PublishMetadata\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.registry.RegistryFactory", "source2": "META-INF/dubbo/internal/org.apache.dubbo.registry.RegistryFactory", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,13 +1,13 @@\n-service-discovery-registry=org.apache.dubbo.registry.client.ServiceDiscoveryRegistryFactory\n+service-discovery-registry=org.apache.dubbo.registry.client.ServiceDiscoveryRegistryFactory\r\n wrapper=org.apache.dubbo.registry.RegistryFactoryWrapper\n dubbo=org.apache.dubbo.registry.dubbo.DubboRegistryFactory\n multicast=org.apache.dubbo.registry.multicast.MulticastRegistryFactory\n zookeeper=org.apache.dubbo.registry.zookeeper.ZookeeperRegistryFactory\n redis=org.apache.dubbo.registry.redis.RedisRegistryFactory\n consul=org.apache.dubbo.registry.consul.ConsulRegistryFactory\r\n \n etcd3=org.apache.dubbo.registry.etcd.EtcdRegistryFactory\n nacos=org.apache.dubbo.registry.nacos.NacosRegistryFactory\n sofa=org.apache.dubbo.registry.sofa.SofaRegistryFactory\n-multiple=org.apache.dubbo.registry.multiple.MultipleRegistryFactory\n+multiple=org.apache.dubbo.registry.multiple.MultipleRegistryFactory\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscovery", "source2": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceDiscovery", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,10 +1,10 @@\n file=org.apache.dubbo.registry.client.FileSystemServiceDiscovery\n multicast=org.apache.dubbo.registry.multicast.MulticastServiceDiscovery\n zookeeper=org.apache.dubbo.registry.zookeeper.ZookeeperServiceDiscovery\n redis=org.apache.dubbo.registry.redis.RedisServiceDiscovery\n-etcd3=org.apache.dubbo.registry.etcd.EtcdServiceDiscovery\n+etcd3=org.apache.dubbo.registry.etcd.EtcdServiceDiscovery\r\n \n eureka=org.apache.dubbo.registry.eureka.EurekaServiceDiscovery\n nacos=org.apache.dubbo.registry.nacos.NacosServiceDiscovery\n sofa=org.apache.dubbo.registry.sofa.SofaRegistryServiceDiscovery\n multiple=org.apache.dubbo.registry.multiple.MultipleRegistryServiceDiscovery\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer", "source2": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.ServiceInstanceCustomizer", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,8 +1,8 @@\n port=org.apache.dubbo.config.metadata.ServiceInstancePortCustomizer\n-metadata-url=org.apache.dubbo.registry.client.metadata.MetadataServiceURLParamsMetadataCustomizer\n-exported-revision=org.apache.dubbo.registry.client.metadata.ExportedServicesRevisionMetadataCustomizer\n-subscribed-revision=org.apache.dubbo.registry.client.metadata.SubscribedServicesRevisionMetadataCustomizer\n-protocol-ports=org.apache.dubbo.registry.client.metadata.ProtocolPortsMetadataCustomizer\n-instance-port=org.apache.dubbo.config.metadata.ServiceInstancePortCustomizer\n-instance-metadata=org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataCustomizer\n+metadata-url=org.apache.dubbo.registry.client.metadata.MetadataServiceURLParamsMetadataCustomizer\r\n+exported-revision=org.apache.dubbo.registry.client.metadata.ExportedServicesRevisionMetadataCustomizer\r\n+subscribed-revision=org.apache.dubbo.registry.client.metadata.SubscribedServicesRevisionMetadataCustomizer\r\n+protocol-ports=org.apache.dubbo.registry.client.metadata.ProtocolPortsMetadataCustomizer\r\n+instance-port=org.apache.dubbo.config.metadata.ServiceInstancePortCustomizer\r\n+instance-metadata=org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataCustomizer\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.MetadataServiceURLBuilder", "source2": "META-INF/dubbo/internal/org.apache.dubbo.registry.client.metadata.MetadataServiceURLBuilder", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-standard=org.apache.dubbo.registry.client.metadata.StandardMetadataServiceURLBuilder\n+standard=org.apache.dubbo.registry.client.metadata.StandardMetadataServiceURLBuilder\r\n spring-cloud=org.apache.dubbo.registry.client.metadata.SpringCloudMetadataServiceURLBuilder\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler", "source2": "META-INF/dubbo/internal/org.apache.dubbo.remoting.telnet.TelnetHandler", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,14 +1,14 @@\n clear=org.apache.dubbo.remoting.telnet.support.command.ClearTelnetHandler\r\n exit=org.apache.dubbo.remoting.telnet.support.command.ExitTelnetHandler\r\n help=org.apache.dubbo.remoting.telnet.support.command.HelpTelnetHandler\r\n status=org.apache.dubbo.remoting.telnet.support.command.StatusTelnetHandler\r\n log=org.apache.dubbo.remoting.telnet.support.command.LogTelnetHandler\n-ls=org.apache.dubbo.qos.legacy.ListTelnetHandler\n-ps=org.apache.dubbo.qos.legacy.PortTelnetHandler\n-cd=org.apache.dubbo.qos.legacy.ChangeTelnetHandler\n-pwd=org.apache.dubbo.qos.legacy.CurrentTelnetHandler\n-invoke=org.apache.dubbo.qos.legacy.InvokeTelnetHandler\n-trace=org.apache.dubbo.qos.legacy.TraceTelnetHandler\n-count=org.apache.dubbo.qos.legacy.CountTelnetHandler\n-select=org.apache.dubbo.qos.legacy.SelectTelnetHandler\n+ls=org.apache.dubbo.qos.legacy.ListTelnetHandler\r\n+ps=org.apache.dubbo.qos.legacy.PortTelnetHandler\r\n+cd=org.apache.dubbo.qos.legacy.ChangeTelnetHandler\r\n+pwd=org.apache.dubbo.qos.legacy.CurrentTelnetHandler\r\n+invoke=org.apache.dubbo.qos.legacy.InvokeTelnetHandler\r\n+trace=org.apache.dubbo.qos.legacy.TraceTelnetHandler\r\n+count=org.apache.dubbo.qos.legacy.CountTelnetHandler\r\n+select=org.apache.dubbo.qos.legacy.SelectTelnetHandler\r\n shutdown=org.apache.dubbo.qos.legacy.ShutdownTelnetHandler\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter", "source2": "META-INF/dubbo/internal/org.apache.dubbo.rpc.Filter", "comments": ["Line-ending differences only"], "unified_diff": "@@ -13,11 +13,11 @@\n executelimit=org.apache.dubbo.rpc.filter.ExecuteLimitFilter\r\n deprecated=org.apache.dubbo.rpc.filter.DeprecatedFilter\r\n compatible=org.apache.dubbo.rpc.filter.CompatibleFilter\r\n timeout=org.apache.dubbo.rpc.filter.TimeoutFilter\r\n tps=org.apache.dubbo.rpc.filter.TpsLimitFilter\n trace=org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter\r\n future=org.apache.dubbo.rpc.protocol.dubbo.filter.FutureFilter\n-monitor=org.apache.dubbo.monitor.support.MonitorFilter\n+monitor=org.apache.dubbo.monitor.support.MonitorFilter\r\n \n-metrics=org.apache.dubbo.monitor.dubbo.MetricsFilter\n+metrics=org.apache.dubbo.monitor.dubbo.MetricsFilter\r\n \n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol", "source2": "META-INF/dubbo/internal/org.apache.dubbo.rpc.Protocol", "comments": ["Line-ending differences only"], "unified_diff": "@@ -10,10 +10,10 @@\n thrift=org.apache.dubbo.rpc.protocol.thrift.ThriftProtocol\n native-thrift=org.apache.dubbo.rpc.protocol.nativethrift.ThriftProtocol\n memcached=org.apache.dubbo.rpc.protocol.memcached.MemcachedProtocol\n redis=org.apache.dubbo.rpc.protocol.redis.RedisProtocol\n rest=org.apache.dubbo.rpc.protocol.rest.RestProtocol\n xmlrpc=org.apache.dubbo.xml.rpc.protocol.xmlrpc.XmlRpcProtocol\n grpc=org.apache.dubbo.rpc.protocol.grpc.GrpcProtocol\n-registry=org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol\n+registry=org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol\r\n service-discovery-registry=org.apache.dubbo.registry.integration.RegistryProtocol\n qos=org.apache.dubbo.qos.protocol.QosProtocolWrapper\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor", "source2": "META-INF/dubbo/internal/org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-context=org.apache.dubbo.rpc.cluster.interceptor.ConsumerContextClusterInterceptor\n+context=org.apache.dubbo.rpc.cluster.interceptor.ConsumerContextClusterInterceptor\r\n zone-aware=org.apache.dubbo.rpc.cluster.interceptor.ZoneAwareClusterInterceptor\n"}, {"source1": "META-INF/dubbo/internal/org.apache.dubbo.rpc.model.BuiltinServiceDetector", "source2": "META-INF/dubbo/internal/org.apache.dubbo.rpc.model.BuiltinServiceDetector", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,2 +1,2 @@\n-echo=org.apache.dubbo.rpc.service.EchoServiceDetector\n+echo=org.apache.dubbo.rpc.service.EchoServiceDetector\r\n generic=org.apache.dubbo.rpc.service.GenericServiceDetector\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-cluster/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,164 +1,160 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d70 6172 656e 743c 2f61 7274 6966  bo-parent</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n-00000510: 6c75 7374 6572 3c2f 6172 7469 6661 6374  luster</artifact\n-00000520: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000530: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000540: 0d0a 2020 3c6e 616d 653e 247b 7072 6f6a  ..  <name>${proj\n-00000550: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n-00000560: 2f6e 616d 653e 0d0a 2020 3c64 6573 6372  /name>..  <descr\n-00000570: 6970 7469 6f6e 3e54 6865 2063 6c75 7374  iption>The clust\n-00000580: 6572 206d 6f64 756c 6520 6f66 2064 7562  er module of dub\n-00000590: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005a0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005b0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005c0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005d0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005e0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-000005f0: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000600: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000610: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000620: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000630: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000640: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000650: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000660: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000670: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000680: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-00000690: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006a0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006b0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006c0: 3c2f 7072 6f70 6572 7469 6573 3e0d 0a20  </properties>.. \n-000006d0: 203c 6465 7065 6e64 656e 6369 6573 3e0d   <dependencies>.\n-000006e0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000006f0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000700: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000710: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000720: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000730: 6475 6262 6f2d 7270 632d 6170 693c 2f61  dubbo-rpc-api</a\n-00000740: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000750: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000760: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000770: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000780: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000790: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-000007a0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-000007b0: 7049 643e 6f72 672e 7961 6d6c 3c2f 6772  pId>org.yaml</gr\n-000007c0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000007d0: 7274 6966 6163 7449 643e 736e 616b 6579  rtifactId>snakey\n-000007e0: 616d 6c3c 2f61 7274 6966 6163 7449 643e  aml</artifactId>\n-000007f0: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000800: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-00000810: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000820: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000830: 2e63 7572 6174 6f72 3c2f 6772 6f75 7049  .curator</groupI\n-00000840: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000850: 6163 7449 643e 6375 7261 746f 722d 6672  actId>curator-fr\n-00000860: 616d 6577 6f72 6b3c 2f61 7274 6966 6163  amework</artifac\n-00000870: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-00000880: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000890: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000008a0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000008b0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000008c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000008d0: 7a6f 6f6b 6565 7065 723c 2f67 726f 7570  zookeeper</group\n-000008e0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008f0: 6661 6374 4964 3e7a 6f6f 6b65 6570 6572  factId>zookeeper\n-00000900: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000910: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000920: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000930: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000940: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000950: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000960: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000970: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000980: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000990: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n-000009a0: 6865 7373 6961 6e32 3c2f 6172 7469 6661  hessian2</artifa\n-000009b0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-000009c0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-000009d0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-000009e0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 2020  /version>..     \n-000009f0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-00000a00: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-00000a10: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-00000a20: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-00000a30: 6f6a 6563 743e 0d0a                      oject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d70 6172  factId>dubbo-par\n+00000480: 656e 743c 2f61 7274 6966 6163 7449 643e  ent</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d63 6c75 7374 6572 3c2f 6172  ubbo-cluster</ar\n+00000500: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000510: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000520: 7369 6f6e 3e0a 2020 3c6e 616d 653e 247b  sion>.  <name>${\n+00000530: 7072 6f6a 6563 742e 6172 7469 6661 6374  project.artifact\n+00000540: 4964 7d3c 2f6e 616d 653e 0a20 203c 6465  Id}</name>.  <de\n+00000550: 7363 7269 7074 696f 6e3e 5468 6520 636c  scription>The cl\n+00000560: 7573 7465 7220 6d6f 6475 6c65 206f 6620  uster module of \n+00000570: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000580: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+00000590: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005a0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005b0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005c0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005d0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005e0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+000005f0: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000600: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000610: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000620: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000630: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000640: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000650: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000660: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000670: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+00000680: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+00000690: 6570 6c6f 793e 0a20 203c 2f70 726f 7065  eploy>.  </prope\n+000006a0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+000006b0: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+000006c0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000006d0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000006e0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000006f0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000700: 6374 4964 3e64 7562 626f 2d72 7063 2d61  ctId>dubbo-rpc-a\n+00000710: 7069 3c2f 6172 7469 6661 6374 4964 3e0a  pi</artifactId>.\n+00000720: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000730: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n+00000740: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n+00000750: 6e3e 0a20 2020 203c 2f64 6570 656e 6465  n>.    </depende\n+00000760: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+00000770: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+00000780: 7570 4964 3e6f 7267 2e79 616d 6c3c 2f67  upId>org.yaml</g\n+00000790: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000007a0: 7274 6966 6163 7449 643e 736e 616b 6579  rtifactId>snakey\n+000007b0: 616d 6c3c 2f61 7274 6966 6163 7449 643e  aml</artifactId>\n+000007c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000007d0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000007e0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000007f0: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n+00000800: 7261 746f 723c 2f67 726f 7570 4964 3e0a  rator</groupId>.\n+00000810: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000820: 643e 6375 7261 746f 722d 6672 616d 6577  d>curator-framew\n+00000830: 6f72 6b3c 2f61 7274 6966 6163 7449 643e  ork</artifactId>\n+00000840: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n+00000850: 7374 3c2f 7363 6f70 653e 0a20 2020 203c  st</scope>.    <\n+00000860: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000870: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000880: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000890: 2e61 7061 6368 652e 7a6f 6f6b 6565 7065  .apache.zookeepe\n+000008a0: 723c 2f67 726f 7570 4964 3e0a 2020 2020  r</groupId>.    \n+000008b0: 2020 3c61 7274 6966 6163 7449 643e 7a6f    <artifactId>zo\n+000008c0: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n+000008d0: 7449 643e 0a20 2020 2020 203c 7363 6f70  tId>.      <scop\n+000008e0: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+000008f0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000900: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000910: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000920: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000930: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000940: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000950: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000960: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n+00000970: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000980: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000990: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+000009a0: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+000009b0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+000009c0: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+000009d0: 6465 6e63 793e 0a20 203c 2f64 6570 656e  dency>.  </depen\n+000009e0: 6465 6e63 6965 733e 0a3c 2f70 726f 6a65  dencies>.</proje\n+000009f0: 6374 3e0a                                ct>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-common/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-common/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,187 +1,181 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d70 6172 656e 743c 2f61 7274 6966  bo-parent</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n-00000510: 6f6d 6d6f 6e3c 2f61 7274 6966 6163 7449  ommon</artifactI\n-00000520: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000530: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000540: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000550: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000560: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-00000570: 7074 696f 6e3e 5468 6520 636f 6d6d 6f6e  ption>The common\n-00000580: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-00000590: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005a0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005b0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005c0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005d0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005e0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-000005f0: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000600: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000610: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000620: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000630: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000640: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000650: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000660: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000670: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000680: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-00000690: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006a0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006b0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006c0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006d0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006e0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-000006f0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000700: 6f72 672e 736c 6634 6a3c 2f67 726f 7570  org.slf4j</group\n-00000710: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000720: 6661 6374 4964 3e73 6c66 346a 2d61 7069  factId>slf4j-api\n-00000730: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000740: 2020 2020 203c 7363 6f70 653e 7072 6f76       <scope>prov\n-00000750: 6964 6564 3c2f 7363 6f70 653e 0d0a 2020  ided</scope>..  \n-00000760: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000770: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000780: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000790: 643e 636f 6d6d 6f6e 732d 6c6f 6767 696e  d>commons-loggin\n-000007a0: 673c 2f67 726f 7570 4964 3e0d 0a20 2020  g</groupId>..   \n-000007b0: 2020 203c 6172 7469 6661 6374 4964 3e63     <artifactId>c\n-000007c0: 6f6d 6d6f 6e73 2d6c 6f67 6769 6e67 3c2f  ommons-logging</\n-000007d0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000007e0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007f0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000800: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000810: 3e6c 6f67 346a 3c2f 6772 6f75 7049 643e  >log4j</groupId>\n-00000820: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000830: 7449 643e 6c6f 6734 6a3c 2f61 7274 6966  tId>log4j</artif\n-00000840: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000850: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000860: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000870: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000880: 6170 6163 6865 2e6c 6f67 6769 6e67 2e6c  apache.logging.l\n-00000890: 6f67 346a 3c2f 6772 6f75 7049 643e 0d0a  og4j</groupId>..\n-000008a0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-000008b0: 643e 6c6f 6734 6a2d 6170 693c 2f61 7274  d>log4j-api</art\n-000008c0: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-000008d0: 3c73 636f 7065 3e70 726f 7669 6465 643c  <scope>provided<\n-000008e0: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-000008f0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000900: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000910: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000920: 2e61 7061 6368 652e 6c6f 6767 696e 672e  .apache.logging.\n-00000930: 6c6f 6734 6a3c 2f67 726f 7570 4964 3e0d  log4j</groupId>.\n-00000940: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000950: 4964 3e6c 6f67 346a 2d63 6f72 653c 2f61  Id>log4j-core</a\n-00000960: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000970: 2020 3c73 636f 7065 3e70 726f 7669 6465    <scope>provide\n-00000980: 643c 2f73 636f 7065 3e0d 0a20 2020 203c  d</scope>..    <\n-00000990: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000009a0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000009b0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000009c0: 7267 2e6a 6176 6173 7369 7374 3c2f 6772  rg.javassist</gr\n-000009d0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000009e0: 7274 6966 6163 7449 643e 6a61 7661 7373  rtifactId>javass\n-000009f0: 6973 743c 2f61 7274 6966 6163 7449 643e  ist</artifactId>\n-00000a00: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000a10: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-00000a20: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000a30: 6f75 7049 643e 636f 6d2e 616c 6962 6162  oupId>com.alibab\n-00000a40: 613c 2f67 726f 7570 4964 3e0d 0a20 2020  a</groupId>..   \n-00000a50: 2020 203c 6172 7469 6661 6374 4964 3e66     <artifactId>f\n-00000a60: 6173 746a 736f 6e3c 2f61 7274 6966 6163  astjson</artifac\n-00000a70: 7449 643e 0d0a 2020 2020 3c2f 6465 7065  tId>..    </depe\n-00000a80: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000a90: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000aa0: 203c 6772 6f75 7049 643e 636f 6d6d 6f6e   <groupId>common\n-00000ab0: 732d 696f 3c2f 6772 6f75 7049 643e 0d0a  s-io</groupId>..\n-00000ac0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000ad0: 643e 636f 6d6d 6f6e 732d 696f 3c2f 6172  d>commons-io</ar\n-00000ae0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000af0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000b00: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000b10: 2020 2020 2020 3c67 726f 7570 4964 3e6a        <groupId>j\n-00000b20: 6176 6178 2e61 6e6e 6f74 6174 696f 6e3c  avax.annotation<\n-00000b30: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000b40: 203c 6172 7469 6661 6374 4964 3e6a 6176   <artifactId>jav\n-00000b50: 6178 2e61 6e6e 6f74 6174 696f 6e2d 6170  ax.annotation-ap\n-00000b60: 693c 2f61 7274 6966 6163 7449 643e 0d0a  i</artifactId>..\n-00000b70: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000b80: 3e0d 0a20 203c 2f64 6570 656e 6465 6e63  >..  </dependenc\n-00000b90: 6965 733e 0d0a 3c2f 7072 6f6a 6563 743e  ies>..</project>\n-00000ba0: 0d0a                                     ..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d70 6172  factId>dubbo-par\n+00000480: 656e 743c 2f61 7274 6966 6163 7449 643e  ent</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d63 6f6d 6d6f 6e3c 2f61 7274  ubbo-common</art\n+00000500: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000510: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000520: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000530: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000540: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000550: 6372 6970 7469 6f6e 3e54 6865 2063 6f6d  cription>The com\n+00000560: 6d6f 6e20 6d6f 6475 6c65 206f 6620 6475  mon module of du\n+00000570: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000580: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+00000590: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005a0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005b0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005c0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005d0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005e0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000005f0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000600: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000610: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000620: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000630: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000640: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000650: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000660: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000670: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000680: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+00000690: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006a0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006b0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006c0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006d0: 6f75 7049 643e 6f72 672e 736c 6634 6a3c  oupId>org.slf4j<\n+000006e0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000006f0: 3c61 7274 6966 6163 7449 643e 736c 6634  <artifactId>slf4\n+00000700: 6a2d 6170 693c 2f61 7274 6966 6163 7449  j-api</artifactI\n+00000710: 643e 0a20 2020 2020 203c 7363 6f70 653e  d>.      <scope>\n+00000720: 7072 6f76 6964 6564 3c2f 7363 6f70 653e  provided</scope>\n+00000730: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000740: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000750: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000760: 4964 3e63 6f6d 6d6f 6e73 2d6c 6f67 6769  Id>commons-loggi\n+00000770: 6e67 3c2f 6772 6f75 7049 643e 0a20 2020  ng</groupId>.   \n+00000780: 2020 203c 6172 7469 6661 6374 4964 3e63     <artifactId>c\n+00000790: 6f6d 6d6f 6e73 2d6c 6f67 6769 6e67 3c2f  ommons-logging</\n+000007a0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000007b0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000007c0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000007d0: 2020 2020 203c 6772 6f75 7049 643e 6c6f       <groupId>lo\n+000007e0: 6734 6a3c 2f67 726f 7570 4964 3e0a 2020  g4j</groupId>.  \n+000007f0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000800: 6c6f 6734 6a3c 2f61 7274 6966 6163 7449  log4j</artifactI\n+00000810: 643e 0a20 2020 203c 2f64 6570 656e 6465  d>.    </depende\n+00000820: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+00000830: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+00000840: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+00000850: 6c6f 6767 696e 672e 6c6f 6734 6a3c 2f67  logging.log4j</g\n+00000860: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000870: 7274 6966 6163 7449 643e 6c6f 6734 6a2d  rtifactId>log4j-\n+00000880: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000890: 0a20 2020 2020 203c 7363 6f70 653e 7072  .      <scope>pr\n+000008a0: 6f76 6964 6564 3c2f 7363 6f70 653e 0a20  ovided</scope>. \n+000008b0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000008c0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000008d0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000008e0: 3e6f 7267 2e61 7061 6368 652e 6c6f 6767  >org.apache.logg\n+000008f0: 696e 672e 6c6f 6734 6a3c 2f67 726f 7570  ing.log4j</group\n+00000900: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000910: 6163 7449 643e 6c6f 6734 6a2d 636f 7265  actId>log4j-core\n+00000920: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000930: 2020 2020 3c73 636f 7065 3e70 726f 7669      <scope>provi\n+00000940: 6465 643c 2f73 636f 7065 3e0a 2020 2020  ded</scope>.    \n+00000950: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000960: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000970: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000980: 672e 6a61 7661 7373 6973 743c 2f67 726f  g.javassist</gro\n+00000990: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+000009a0: 6966 6163 7449 643e 6a61 7661 7373 6973  ifactId>javassis\n+000009b0: 743c 2f61 7274 6966 6163 7449 643e 0a20  t</artifactId>. \n+000009c0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000009d0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000009e0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000009f0: 3e63 6f6d 2e61 6c69 6261 6261 3c2f 6772  >com.alibaba</gr\n+00000a00: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000a10: 7469 6661 6374 4964 3e66 6173 746a 736f  tifactId>fastjso\n+00000a20: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000a30: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000a40: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000a50: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000a60: 3e63 6f6d 6d6f 6e73 2d69 6f3c 2f67 726f  >commons-io</gro\n+00000a70: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000a80: 6966 6163 7449 643e 636f 6d6d 6f6e 732d  ifactId>commons-\n+00000a90: 696f 3c2f 6172 7469 6661 6374 4964 3e0a  io</artifactId>.\n+00000aa0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000ab0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000ac0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000ad0: 643e 6a61 7661 782e 616e 6e6f 7461 7469  d>javax.annotati\n+00000ae0: 6f6e 3c2f 6772 6f75 7049 643e 0a20 2020  on</groupId>.   \n+00000af0: 2020 203c 6172 7469 6661 6374 4964 3e6a     <artifactId>j\n+00000b00: 6176 6178 2e61 6e6e 6f74 6174 696f 6e2d  avax.annotation-\n+00000b10: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000b20: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000b30: 793e 0a20 203c 2f64 6570 656e 6465 6e63  y>.  </dependenc\n+00000b40: 6965 733e 0a3c 2f70 726f 6a65 6374 3e0a  ies>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-compatible/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-compatible/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,276 +1,269 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d70 6172 656e 743c 2f61 7274 6966  bo-parent</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n-00000510: 6f6d 7061 7469 626c 653c 2f61 7274 6966  ompatible</artif\n-00000520: 6163 7449 643e 0d0a 2020 3c76 6572 7369  actId>..  <versi\n-00000530: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-00000540: 6f6e 3e0d 0a20 203c 6e61 6d65 3e24 7b70  on>..  <name>${p\n-00000550: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n-00000560: 647d 3c2f 6e61 6d65 3e0d 0a20 203c 6465  d}</name>..  <de\n-00000570: 7363 7269 7074 696f 6e3e 5468 6520 636f  scription>The co\n-00000580: 6d70 6174 6962 6c65 206d 6f64 756c 6520  mpatible module \n-00000590: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n-000005a0: 3c2f 6465 7363 7269 7074 696f 6e3e 0d0a  </description>..\n-000005b0: 2020 3c6c 6963 656e 7365 733e 0d0a 2020    <licenses>..  \n-000005c0: 2020 3c6c 6963 656e 7365 3e0d 0a20 2020    <license>..   \n-000005d0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n-000005e0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n-000005f0: 2032 2e30 3c2f 6e61 6d65 3e0d 0a20 2020   2.0</name>..   \n-00000600: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n-00000610: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-00000620: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000630: 2e30 3c2f 7572 6c3e 0d0a 2020 2020 2020  .0</url>..      \n-00000640: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n-00000650: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n-00000660: 3e0d 0a20 2020 203c 2f6c 6963 656e 7365  >..    </license\n-00000670: 3e0d 0a20 203c 2f6c 6963 656e 7365 733e  >..  </licenses>\n-00000680: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-00000690: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-000006a0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000006b0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000006c0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-000006d0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000006e0: 4964 3e64 7562 626f 2d66 696c 7465 722d  Id>dubbo-filter-\n-000006f0: 6361 6368 653c 2f61 7274 6966 6163 7449  cache</artifactI\n-00000700: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-00000710: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-00000720: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-00000730: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-00000740: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000750: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000760: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000770: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000780: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000790: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-000007a0: 636f 6e66 6967 2d73 7072 696e 673c 2f61  config-spring</a\n-000007b0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000007c0: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-000007d0: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-000007e0: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-000007f0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000800: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000810: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000820: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-00000830: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-00000840: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000850: 643e 6475 6262 6f2d 716f 733c 2f61 7274  d>dubbo-qos</art\n-00000860: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000870: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000880: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000890: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-000008a0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000008b0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000008c0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000008d0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000008e0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-000008f0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000900: 6475 6262 6f2d 7265 6d6f 7469 6e67 2d68  dubbo-remoting-h\n-00000910: 7474 703c 2f61 7274 6966 6163 7449 643e  ttp</artifactId>\n-00000920: 0d0a 2020 2020 2020 3c76 6572 7369 6f6e  ..      <version\n-00000930: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n-00000940: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000950: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-00000960: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000970: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000980: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000990: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-000009a0: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-000009b0: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-000009c0: 6d6f 7469 6e67 2d70 3270 3c2f 6172 7469  moting-p2p</arti\n-000009d0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000009e0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-000009f0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000a00: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000a10: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000a20: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000a30: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000a40: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000a50: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000a60: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000a70: 7562 626f 2d72 656d 6f74 696e 672d 7a6f  ubbo-remoting-zo\n-00000a80: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n-00000a90: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000aa0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000ab0: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000ac0: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000ad0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000ae0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000af0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000b00: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000b10: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000b20: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000b30: 6f2d 7270 632d 7265 7374 3c2f 6172 7469  o-rpc-rest</arti\n-00000b40: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000b50: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000b60: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000b70: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000b80: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000b90: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000ba0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000bb0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000bc0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000bd0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000be0: 7562 626f 2d72 7063 2d74 6872 6966 743c  ubbo-rpc-thrift<\n-00000bf0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000c00: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-00000c10: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n-00000c20: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000c30: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000c40: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-00000c50: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000c60: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000c70: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000c80: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000c90: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000ca0: 697a 6174 696f 6e2d 6865 7373 6961 6e32  ization-hessian2\n-00000cb0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000cc0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000cd0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000ce0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000cf0: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-00000d00: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-00000d10: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000d20: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000d30: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000d40: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000d50: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000d60: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000d70: 6475 6262 6f2d 7265 6769 7374 7279 2d6d  dubbo-registry-m\n-00000d80: 756c 7469 6361 7374 3c2f 6172 7469 6661  ulticast</artifa\n-00000d90: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000da0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000db0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000dc0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 2020  /version>..     \n-00000dd0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-00000de0: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-00000df0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000e00: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000e10: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000e20: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000e30: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000e40: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-00000e50: 6769 7374 7279 2d7a 6f6f 6b65 6570 6572  gistry-zookeeper\n-00000e60: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000e70: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000e80: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000e90: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000ea0: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-00000eb0: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-00000ec0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000ed0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000ee0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000ef0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000f00: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000f10: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000f20: 6475 6262 6f2d 636f 6e66 6967 6365 6e74  dubbo-configcent\n-00000f30: 6572 2d7a 6f6f 6b65 6570 6572 3c2f 6172  er-zookeeper</ar\n-00000f40: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000f50: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-00000f60: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-00000f70: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000f80: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000f90: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000fa0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000fb0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000fc0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000fd0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000fe0: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000ff0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00001000: 6f2d 6d65 7461 6461 7461 2d72 6570 6f72  o-metadata-repor\n-00001010: 742d 7a6f 6f6b 6565 7065 723c 2f61 7274  t-zookeeper</art\n-00001020: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00001030: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00001040: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00001050: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00001060: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-00001070: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-00001080: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00001090: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000010a0: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n-000010b0: 2e61 6c69 6261 6261 3c2f 6772 6f75 7049  .alibaba</groupI\n-000010c0: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-000010d0: 6163 7449 643e 6661 7374 6a73 6f6e 3c2f  actId>fastjson</\n-000010e0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000010f0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00001100: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00001110: 7065 6e64 656e 6379 3e0d 0a20 203c 2f64  pendency>..  </d\n-00001120: 6570 656e 6465 6e63 6965 733e 0d0a 3c2f  ependencies>..</\n-00001130: 7072 6f6a 6563 743e 0d0a                 project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d70 6172  factId>dubbo-par\n+00000480: 656e 743c 2f61 7274 6966 6163 7449 643e  ent</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d63 6f6d 7061 7469 626c 653c  ubbo-compatible<\n+00000500: 2f61 7274 6966 6163 7449 643e 0a20 203c  /artifactId>.  <\n+00000510: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n+00000520: 7665 7273 696f 6e3e 0a20 203c 6e61 6d65  version>.  <name\n+00000530: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n+00000540: 6163 7449 647d 3c2f 6e61 6d65 3e0a 2020  actId}</name>.  \n+00000550: 3c64 6573 6372 6970 7469 6f6e 3e54 6865  <description>The\n+00000560: 2063 6f6d 7061 7469 626c 6520 6d6f 6475   compatible modu\n+00000570: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n+00000580: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n+00000590: 3e0a 2020 3c6c 6963 656e 7365 733e 0a20  >.  <licenses>. \n+000005a0: 2020 203c 6c69 6365 6e73 653e 0a20 2020     <license>.   \n+000005b0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n+000005c0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n+000005d0: 2032 2e30 3c2f 6e61 6d65 3e0a 2020 2020   2.0</name>.    \n+000005e0: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n+000005f0: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n+00000600: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n+00000610: 303c 2f75 726c 3e0a 2020 2020 2020 3c64  0</url>.      <d\n+00000620: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n+00000630: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0a  </distribution>.\n+00000640: 2020 2020 3c2f 6c69 6365 6e73 653e 0a20      </license>. \n+00000650: 203c 2f6c 6963 656e 7365 733e 0a20 203c   </licenses>.  <\n+00000660: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+00000670: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000680: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000690: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+000006a0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000006b0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+000006c0: 2d66 696c 7465 722d 6361 6368 653c 2f61  -filter-cache</a\n+000006d0: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+000006e0: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+000006f0: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000700: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000710: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000720: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000730: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000740: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000750: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000760: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000770: 626f 2d63 6f6e 6669 672d 7370 7269 6e67  bo-config-spring\n+00000780: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000790: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000007a0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+000007b0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+000007c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000007d0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000007e0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000007f0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000800: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000810: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000820: 6475 6262 6f2d 716f 733c 2f61 7274 6966  dubbo-qos</artif\n+00000830: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000840: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000850: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000860: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000870: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000880: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000890: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000008a0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000008b0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000008c0: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n+000008d0: 656d 6f74 696e 672d 6874 7470 3c2f 6172  emoting-http</ar\n+000008e0: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+000008f0: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000900: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+00000910: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000920: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000930: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000940: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000950: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000960: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000970: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000980: 6f2d 7265 6d6f 7469 6e67 2d70 3270 3c2f  o-remoting-p2p</\n+00000990: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000009a0: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+000009b0: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+000009c0: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+000009d0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000009e0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000009f0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000a00: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000a10: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000a20: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000a30: 6262 6f2d 7265 6d6f 7469 6e67 2d7a 6f6f  bbo-remoting-zoo\n+00000a40: 6b65 6570 6572 3c2f 6172 7469 6661 6374  keeper</artifact\n+00000a50: 4964 3e0a 2020 2020 2020 3c76 6572 7369  Id>.      <versi\n+00000a60: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n+00000a70: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n+00000a80: 7273 696f 6e3e 0a20 2020 203c 2f64 6570  rsion>.    </dep\n+00000a90: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+00000aa0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000ab0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+00000ac0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+00000ad0: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000ae0: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n+00000af0: 7265 7374 3c2f 6172 7469 6661 6374 4964  rest</artifactId\n+00000b00: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000b10: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+00000b20: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000b30: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+00000b40: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000b50: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000b60: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000b70: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000b80: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000b90: 7449 643e 6475 6262 6f2d 7270 632d 7468  tId>dubbo-rpc-th\n+00000ba0: 7269 6674 3c2f 6172 7469 6661 6374 4964  rift</artifactId\n+00000bb0: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000bc0: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+00000bd0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000be0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+00000bf0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000c00: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000c10: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000c20: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000c30: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000c40: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n+00000c50: 697a 6174 696f 6e2d 6865 7373 6961 6e32  ization-hessian2\n+00000c60: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000c70: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+00000c80: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+00000c90: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000ca0: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n+00000cb0: 7374 3c2f 7363 6f70 653e 0a20 2020 203c  st</scope>.    <\n+00000cc0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000cd0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000ce0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000cf0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000d00: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000d10: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+00000d20: 7265 6769 7374 7279 2d6d 756c 7469 6361  registry-multica\n+00000d30: 7374 3c2f 6172 7469 6661 6374 4964 3e0a  st</artifactId>.\n+00000d40: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000d50: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n+00000d60: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n+00000d70: 6e3e 0a20 2020 2020 203c 7363 6f70 653e  n>.      <scope>\n+00000d80: 7465 7374 3c2f 7363 6f70 653e 0a20 2020  test</scope>.   \n+00000d90: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000da0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000db0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000dc0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000dd0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000de0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000df0: 6f2d 7265 6769 7374 7279 2d7a 6f6f 6b65  o-registry-zooke\n+00000e00: 6570 6572 3c2f 6172 7469 6661 6374 4964  eper</artifactId\n+00000e10: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000e20: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+00000e30: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000e40: 696f 6e3e 0a20 2020 2020 203c 7363 6f70  ion>.      <scop\n+00000e50: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000e60: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000e70: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000e80: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000e90: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000ea0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000eb0: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000ec0: 6262 6f2d 636f 6e66 6967 6365 6e74 6572  bbo-configcenter\n+00000ed0: 2d7a 6f6f 6b65 6570 6572 3c2f 6172 7469  -zookeeper</arti\n+00000ee0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000ef0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000f00: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000f10: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+00000f20: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+00000f30: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+00000f40: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000f50: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000f60: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000f70: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000f80: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000f90: 7449 643e 6475 6262 6f2d 6d65 7461 6461  tId>dubbo-metada\n+00000fa0: 7461 2d72 6570 6f72 742d 7a6f 6f6b 6565  ta-report-zookee\n+00000fb0: 7065 723c 2f61 7274 6966 6163 7449 643e  per</artifactId>\n+00000fc0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000fd0: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000fe0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000ff0: 6f6e 3e0a 2020 2020 2020 3c73 636f 7065  on>.      <scope\n+00001000: 3e74 6573 743c 2f73 636f 7065 3e0a 2020  >test</scope>.  \n+00001010: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00001020: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00001030: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00001040: 636f 6d2e 616c 6962 6162 613c 2f67 726f  com.alibaba</gro\n+00001050: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00001060: 6966 6163 7449 643e 6661 7374 6a73 6f6e  ifactId>fastjson\n+00001070: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00001080: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n+00001090: 2f73 636f 7065 3e0a 2020 2020 3c2f 6465  /scope>.    </de\n+000010a0: 7065 6e64 656e 6379 3e0a 2020 3c2f 6465  pendency>.  </de\n+000010b0: 7065 6e64 656e 6369 6573 3e0a 3c2f 7072  pendencies>.</pr\n+000010c0: 6f6a 6563 743e 0a                        oject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-config-api/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -130,16 +130,16 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-registry-eureka</artifactId>\n       <version>${project.parent.version}</version>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>guava</artifactId>\n           <groupId>com.google.guava</groupId>\n+          <artifactId>guava</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-registry-etcd3</artifactId>\n       <version>${project.parent.version}</version>\n@@ -154,16 +154,16 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-zookeeper</artifactId>\n       <version>${project.parent.version}</version>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>guava</artifactId>\n           <groupId>com.google.guava</groupId>\n+          <artifactId>guava</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-etcd</artifactId>\n       <version>${project.parent.version}</version>\n@@ -172,16 +172,16 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-nacos</artifactId>\n       <version>${project.parent.version}</version>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>guava</artifactId>\n           <groupId>com.google.guava</groupId>\n+          <artifactId>guava</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-consul</artifactId>\n       <version>${project.parent.version}</version>\n@@ -202,16 +202,16 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-configcenter-nacos</artifactId>\n       <version>${project.parent.version}</version>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>guava</artifactId>\n           <groupId>com.google.guava</groupId>\n+          <artifactId>guava</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-configcenter-consul</artifactId>\n       <version>${project.parent.version}</version>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-config-spring/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -150,16 +150,16 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-zookeeper</artifactId>\n       <version>${project.parent.version}</version>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>guava</artifactId>\n           <groupId>com.google.guava</groupId>\n+          <artifactId>guava</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-registry-nacos</artifactId>\n       <version>${project.parent.version}</version>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-apollo/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,152 +1,149 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 6669 6763 656e 7465 723c  bo-configcenter<\n-000004a0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000004b0: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-000004c0: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-000004d0: 2f70 6172 656e 743e 0d0a 2020 3c67 726f  /parent>..  <gro\n-000004e0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000004f0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n-00000510: 7562 626f 2d63 6f6e 6669 6763 656e 7465  ubbo-configcente\n-00000520: 722d 6170 6f6c 6c6f 3c2f 6172 7469 6661  r-apollo</artifa\n-00000530: 6374 4964 3e0d 0a20 203c 7665 7273 696f  ctId>..  <versio\n-00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-00000550: 6e3e 0d0a 2020 3c6e 616d 653e 247b 7072  n>..  <name>${pr\n-00000560: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n-00000570: 7d3c 2f6e 616d 653e 0d0a 2020 3c64 6573  }</name>..  <des\n-00000580: 6372 6970 7469 6f6e 3e54 6865 2041 706f  cription>The Apo\n-00000590: 6c6c 6f20 696d 706c 656d 656e 7461 7469  llo implementati\n-000005a0: 6f6e 206f 6620 7468 6520 636f 6e66 6967  on of the config\n-000005b0: 6365 6e74 6572 2061 7069 3c2f 6465 7363  center api</desc\n-000005c0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005d0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005e0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005f0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-00000600: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000610: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000620: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000630: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000640: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000650: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000660: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000670: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000680: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000690: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-000006a0: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006b0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006c0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006d0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006e0: 2020 3c61 706f 6c6c 6f5f 6d6f 636b 5f73    <apollo_mock_s\n-000006f0: 6572 7665 725f 7665 7273 696f 6e3e 312e  erver_version>1.\n-00000700: 312e 313c 2f61 706f 6c6c 6f5f 6d6f 636b  1.1</apollo_mock\n-00000710: 5f73 6572 7665 725f 7665 7273 696f 6e3e  _server_version>\n-00000720: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-00000730: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-00000740: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000750: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000760: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000770: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000780: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000790: 7449 643e 6475 6262 6f2d 636f 6d6d 6f6e  tId>dubbo-common\n-000007a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000007b0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-000007c0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-000007d0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-000007e0: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007f0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000800: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000810: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n-00000820: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n-00000830: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000840: 2020 203c 6172 7469 6661 6374 4964 3e61     <artifactId>a\n-00000850: 706f 6c6c 6f2d 636c 6965 6e74 3c2f 6172  pollo-client</ar\n-00000860: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000870: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000880: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000890: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-000008a0: 6f6d 2e63 7472 6970 2e66 7261 6d65 776f  om.ctrip.framewo\n-000008b0: 726b 2e61 706f 6c6c 6f3c 2f67 726f 7570  rk.apollo</group\n-000008c0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008d0: 6661 6374 4964 3e61 706f 6c6c 6f2d 6d6f  factId>apollo-mo\n-000008e0: 636b 7365 7276 6572 3c2f 6172 7469 6661  ckserver</artifa\n-000008f0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000900: 7273 696f 6e3e 247b 6170 6f6c 6c6f 5f6d  rsion>${apollo_m\n-00000910: 6f63 6b5f 7365 7276 6572 5f76 6572 7369  ock_server_versi\n-00000920: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000930: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000940: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000950: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000960: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-00000970: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 6669 6763 656e 7465 723c 2f61 7274 6966  figcenter</artif\n+00000490: 6163 7449 643e 0a20 2020 203c 7665 7273  actId>.    <vers\n+000004a0: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+000004b0: 696f 6e3e 0a20 203c 2f70 6172 656e 743e  ion>.  </parent>\n+000004c0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n+000004d0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000004e0: 6f75 7049 643e 0a20 203c 6172 7469 6661  oupId>.  <artifa\n+000004f0: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+00000500: 6763 656e 7465 722d 6170 6f6c 6c6f 3c2f  gcenter-apollo</\n+00000510: 6172 7469 6661 6374 4964 3e0a 2020 3c76  artifactId>.  <v\n+00000520: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n+00000530: 6572 7369 6f6e 3e0a 2020 3c6e 616d 653e  ersion>.  <name>\n+00000540: 247b 7072 6f6a 6563 742e 6172 7469 6661  ${project.artifa\n+00000550: 6374 4964 7d3c 2f6e 616d 653e 0a20 203c  ctId}</name>.  <\n+00000560: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n+00000570: 4170 6f6c 6c6f 2069 6d70 6c65 6d65 6e74  Apollo implement\n+00000580: 6174 696f 6e20 6f66 2074 6865 2063 6f6e  ation of the con\n+00000590: 6669 6763 656e 7465 7220 6170 693c 2f64  figcenter api</d\n+000005a0: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005b0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005c0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005d0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005e0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005f0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+00000600: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000610: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000620: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000630: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000640: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000650: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000660: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000670: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000680: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000690: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+000006a0: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006b0: 6570 6c6f 793e 0a20 2020 203c 6170 6f6c  eploy>.    <apol\n+000006c0: 6c6f 5f6d 6f63 6b5f 7365 7276 6572 5f76  lo_mock_server_v\n+000006d0: 6572 7369 6f6e 3e31 2e31 2e31 3c2f 6170  ersion>1.1.1</ap\n+000006e0: 6f6c 6c6f 5f6d 6f63 6b5f 7365 7276 6572  ollo_mock_server\n+000006f0: 5f76 6572 7369 6f6e 3e0a 2020 3c2f 7072  _version>.  </pr\n+00000700: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+00000710: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+00000720: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000730: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000740: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000750: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000760: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n+00000770: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n+00000780: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000790: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000007a0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000007b0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000007c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000007d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000007e0: 726f 7570 4964 3e63 6f6d 2e63 7472 6970  roupId>com.ctrip\n+000007f0: 2e66 7261 6d65 776f 726b 2e61 706f 6c6c  .framework.apoll\n+00000800: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000810: 2020 3c61 7274 6966 6163 7449 643e 6170    <artifactId>ap\n+00000820: 6f6c 6c6f 2d63 6c69 656e 743c 2f61 7274  ollo-client</art\n+00000830: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000840: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 2020 3c67 726f 7570 4964 3e63 6f6d 2e63    <groupId>com.c\n+00000870: 7472 6970 2e66 7261 6d65 776f 726b 2e61  trip.framework.a\n+00000880: 706f 6c6c 6f3c 2f67 726f 7570 4964 3e0a  pollo</groupId>.\n+00000890: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000008a0: 643e 6170 6f6c 6c6f 2d6d 6f63 6b73 6572  d>apollo-mockser\n+000008b0: 7665 723c 2f61 7274 6966 6163 7449 643e  ver</artifactId>\n+000008c0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+000008d0: 247b 6170 6f6c 6c6f 5f6d 6f63 6b5f 7365  ${apollo_mock_se\n+000008e0: 7276 6572 5f76 6572 7369 6f6e 7d3c 2f76  rver_version}</v\n+000008f0: 6572 7369 6f6e 3e0a 2020 2020 2020 3c73  ersion>.      <s\n+00000900: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000910: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000920: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000930: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000940: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-consul/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,131 +1,128 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d63 6f6e 6669 6763 656e 7465 723c 2f61  -configcenter</a\n-000004c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000004d0: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-000004e0: 2f76 6572 7369 6f6e 3e0d 0a20 203c 2f70  /version>..  </p\n-000004f0: 6172 656e 743e 0d0a 2020 3c67 726f 7570  arent>..  <group\n-00000500: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000510: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000520: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000530: 626f 2d63 6f6e 6669 6763 656e 7465 722d  bo-configcenter-\n-00000540: 636f 6e73 756c 3c2f 6172 7469 6661 6374  consul</artifact\n-00000550: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000560: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000570: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-00000580: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-00000590: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005a0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-000005b0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-000005c0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-000005d0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-000005e0: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-000005f0: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000600: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000610: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000620: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000630: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000640: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-00000650: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-00000660: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000670: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000680: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000690: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000006a0: 6374 4964 3e64 7562 626f 2d63 6f6d 6d6f  ctId>dubbo-commo\n-000006b0: 6e3c 2f61 7274 6966 6163 7449 643e 0d0a  n</artifactId>..\n-000006c0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-000006d0: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n-000006e0: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n-000006f0: 6e3e 0d0a 2020 2020 3c2f 6465 7065 6e64  n>..    </depend\n-00000700: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000710: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000720: 6772 6f75 7049 643e 636f 6d2e 6f72 6269  groupId>com.orbi\n-00000730: 747a 2e63 6f6e 7375 6c3c 2f67 726f 7570  tz.consul</group\n-00000740: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000750: 6661 6374 4964 3e63 6f6e 7375 6c2d 636c  factId>consul-cl\n-00000760: 6965 6e74 3c2f 6172 7469 6661 6374 4964  ient</artifactId\n-00000770: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000780: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000790: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007a0: 726f 7570 4964 3e63 6f6d 2e70 737a 796d  roupId>com.pszym\n-000007b0: 637a 796b 2e63 6f6e 7375 6c3c 2f67 726f  czyk.consul</gro\n-000007c0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-000007d0: 7469 6661 6374 4964 3e65 6d62 6564 6465  tifactId>embedde\n-000007e0: 642d 636f 6e73 756c 3c2f 6172 7469 6661  d-consul</artifa\n-000007f0: 6374 4964 3e0d 0a20 2020 203c 2f64 6570  ctId>..    </dep\n-00000800: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-00000810: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-00000820: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+000004a0: 6763 656e 7465 723c 2f61 7274 6966 6163  gcenter</artifac\n+000004b0: 7449 643e 0a20 2020 203c 7665 7273 696f  tId>.    <versio\n+000004c0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+000004d0: 6e3e 0a20 203c 2f70 6172 656e 743e 0a20  n>.  </parent>. \n+000004e0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000004f0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000500: 7049 643e 0a20 203c 6172 7469 6661 6374  pId>.  <artifact\n+00000510: 4964 3e64 7562 626f 2d63 6f6e 6669 6763  Id>dubbo-configc\n+00000520: 656e 7465 722d 636f 6e73 756c 3c2f 6172  enter-consul</ar\n+00000530: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000540: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000550: 7369 6f6e 3e0a 2020 3c6c 6963 656e 7365  sion>.  <license\n+00000560: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+00000570: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+00000580: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000590: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+000005a0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+000005b0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+000005c0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+000005d0: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+000005e0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+000005f0: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+00000600: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+00000610: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000620: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+00000630: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000640: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000650: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000660: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000670: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000680: 7562 626f 2d63 6f6d 6d6f 6e3c 2f61 7274  ubbo-common</art\n+00000690: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+000006a0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+000006b0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+000006c0: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+000006d0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000006e0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006f0: 2020 2020 203c 6772 6f75 7049 643e 636f       <groupId>co\n+00000700: 6d2e 6f72 6269 747a 2e63 6f6e 7375 6c3c  m.orbitz.consul<\n+00000710: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000720: 3c61 7274 6966 6163 7449 643e 636f 6e73  <artifactId>cons\n+00000730: 756c 2d63 6c69 656e 743c 2f61 7274 6966  ul-client</artif\n+00000740: 6163 7449 643e 0a20 2020 203c 2f64 6570  actId>.    </dep\n+00000750: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+00000760: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000770: 3c67 726f 7570 4964 3e63 6f6d 2e70 737a  <groupId>com.psz\n+00000780: 796d 637a 796b 2e63 6f6e 7375 6c3c 2f67  ymczyk.consul</g\n+00000790: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000007a0: 7274 6966 6163 7449 643e 656d 6265 6464  rtifactId>embedd\n+000007b0: 6564 2d63 6f6e 7375 6c3c 2f61 7274 6966  ed-consul</artif\n+000007c0: 6163 7449 643e 0a20 2020 203c 2f64 6570  actId>.    </dep\n+000007d0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+000007e0: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+000007f0: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-etcd/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,174 +1,169 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d63 6f6e 6669 6763 656e 7465 723c 2f61  -configcenter</a\n-000004c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000004d0: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-000004e0: 2f76 6572 7369 6f6e 3e0d 0a20 203c 2f70  /version>..  </p\n-000004f0: 6172 656e 743e 0d0a 2020 3c67 726f 7570  arent>..  <group\n-00000500: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000510: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000520: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000530: 626f 2d63 6f6e 6669 6763 656e 7465 722d  bo-configcenter-\n-00000540: 6574 6364 3c2f 6172 7469 6661 6374 4964  etcd</artifactId\n-00000550: 3e0d 0a20 203c 7665 7273 696f 6e3e 322e  >..  <version>2.\n-00000560: 372e 3130 3c2f 7665 7273 696f 6e3e 0d0a  7.10</version>..\n-00000570: 2020 3c6e 616d 653e 247b 7072 6f6a 6563    <name>${projec\n-00000580: 742e 6172 7469 6661 6374 4964 7d3c 2f6e  t.artifactId}</n\n-00000590: 616d 653e 0d0a 2020 3c64 6573 6372 6970  ame>..  <descrip\n-000005a0: 7469 6f6e 3e54 6865 2065 7463 6420 696d  tion>The etcd im\n-000005b0: 706c 656d 656e 7461 7469 6f6e 206f 6620  plementation of \n-000005c0: 7468 6520 636f 6e66 6967 2d63 656e 7465  the config-cente\n-000005d0: 7220 6170 693c 2f64 6573 6372 6970 7469  r api</descripti\n-000005e0: 6f6e 3e0d 0a20 203c 6c69 6365 6e73 6573  on>..  <licenses\n-000005f0: 3e0d 0a20 2020 203c 6c69 6365 6e73 653e  >..    <license>\n-00000600: 0d0a 2020 2020 2020 3c6e 616d 653e 4170  ..      <name>Ap\n-00000610: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n-00000620: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n-00000630: 0d0a 2020 2020 2020 3c75 726c 3e68 7474  ..      <url>htt\n-00000640: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n-00000650: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n-00000660: 4e53 452d 322e 303c 2f75 726c 3e0d 0a20  NSE-2.0</url>.. \n-00000670: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n-00000680: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n-00000690: 7574 696f 6e3e 0d0a 2020 2020 3c2f 6c69  ution>..    </li\n-000006a0: 6365 6e73 653e 0d0a 2020 3c2f 6c69 6365  cense>..  </lice\n-000006b0: 6e73 6573 3e0d 0a20 203c 7072 6f70 6572  nses>..  <proper\n-000006c0: 7469 6573 3e0d 0a20 2020 203c 736b 6970  ties>..    <skip\n-000006d0: 496e 7465 6772 6174 696f 6e54 6573 7473  IntegrationTests\n-000006e0: 3e74 7275 653c 2f73 6b69 7049 6e74 6567  >true</skipInteg\n-000006f0: 7261 7469 6f6e 5465 7374 733e 0d0a 2020  rationTests>..  \n-00000700: 3c2f 7072 6f70 6572 7469 6573 3e0d 0a20  </properties>.. \n-00000710: 203c 6465 7065 6e64 656e 6369 6573 3e0d   <dependencies>.\n-00000720: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000730: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000740: 643e 696f 2e65 7463 643c 2f67 726f 7570  d>io.etcd</group\n-00000750: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000760: 6661 6374 4964 3e6a 6574 6364 2d6c 6175  factId>jetcd-lau\n-00000770: 6e63 6865 723c 2f61 7274 6966 6163 7449  ncher</artifactI\n-00000780: 643e 0d0a 2020 2020 2020 3c73 636f 7065  d>..      <scope\n-00000790: 3e74 6573 743c 2f73 636f 7065 3e0d 0a20  >test</scope>.. \n-000007a0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-000007b0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000007c0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000007d0: 4964 3e6f 7267 2e74 6573 7463 6f6e 7461  Id>org.testconta\n-000007e0: 696e 6572 733c 2f67 726f 7570 4964 3e0d  iners</groupId>.\n-000007f0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000800: 4964 3e74 6573 7463 6f6e 7461 696e 6572  Id>testcontainer\n-00000810: 733c 2f61 7274 6966 6163 7449 643e 0d0a  s</artifactId>..\n-00000820: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000830: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000840: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000850: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000860: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000870: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000880: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000890: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-000008a0: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n-000008b0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000008c0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-000008d0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-000008e0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000008f0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000900: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000910: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000920: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000930: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000940: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000950: 6262 6f2d 7265 6d6f 7469 6e67 2d65 7463  bbo-remoting-etc\n-00000960: 6433 3c2f 6172 7469 6661 6374 4964 3e0d  d3</artifactId>.\n-00000970: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000980: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000990: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-000009a0: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000009b0: 6465 6e63 793e 0d0a 2020 3c2f 6465 7065  dency>..  </depe\n-000009c0: 6e64 656e 6369 6573 3e0d 0a20 203c 6275  ndencies>..  <bu\n-000009d0: 696c 643e 0d0a 2020 2020 3c70 6c75 6769  ild>..    <plugi\n-000009e0: 6e73 3e0d 0a20 2020 2020 203c 706c 7567  ns>..      <plug\n-000009f0: 696e 3e0d 0a20 2020 2020 2020 203c 6172  in>..        <ar\n-00000a00: 7469 6661 6374 4964 3e6d 6176 656e 2d73  tifactId>maven-s\n-00000a10: 7572 6566 6972 652d 706c 7567 696e 3c2f  urefire-plugin</\n-00000a20: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000a30: 2020 2020 203c 636f 6e66 6967 7572 6174       <configurat\n-00000a40: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n-00000a50: 3c73 6b69 7054 6573 7473 3e24 7b73 6b69  <skipTests>${ski\n-00000a60: 7049 6e74 6567 7261 7469 6f6e 5465 7374  pIntegrationTest\n-00000a70: 737d 3c2f 736b 6970 5465 7374 733e 0d0a  s}</skipTests>..\n-00000a80: 2020 2020 2020 2020 3c2f 636f 6e66 6967          </config\n-00000a90: 7572 6174 696f 6e3e 0d0a 2020 2020 2020  uration>..      \n-00000aa0: 3c2f 706c 7567 696e 3e0d 0a20 2020 203c  </plugin>..    <\n-00000ab0: 2f70 6c75 6769 6e73 3e0d 0a20 203c 2f62  /plugins>..  </b\n-00000ac0: 7569 6c64 3e0d 0a3c 2f70 726f 6a65 6374  uild>..</project\n-00000ad0: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+000004a0: 6763 656e 7465 723c 2f61 7274 6966 6163  gcenter</artifac\n+000004b0: 7449 643e 0a20 2020 203c 7665 7273 696f  tId>.    <versio\n+000004c0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+000004d0: 6e3e 0a20 203c 2f70 6172 656e 743e 0a20  n>.  </parent>. \n+000004e0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000004f0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000500: 7049 643e 0a20 203c 6172 7469 6661 6374  pId>.  <artifact\n+00000510: 4964 3e64 7562 626f 2d63 6f6e 6669 6763  Id>dubbo-configc\n+00000520: 656e 7465 722d 6574 6364 3c2f 6172 7469  enter-etcd</arti\n+00000530: 6661 6374 4964 3e0a 2020 3c76 6572 7369  factId>.  <versi\n+00000540: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+00000550: 6f6e 3e0a 2020 3c6e 616d 653e 247b 7072  on>.  <name>${pr\n+00000560: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n+00000570: 7d3c 2f6e 616d 653e 0a20 203c 6465 7363  }</name>.  <desc\n+00000580: 7269 7074 696f 6e3e 5468 6520 6574 6364  ription>The etcd\n+00000590: 2069 6d70 6c65 6d65 6e74 6174 696f 6e20   implementation \n+000005a0: 6f66 2074 6865 2063 6f6e 6669 672d 6365  of the config-ce\n+000005b0: 6e74 6572 2061 7069 3c2f 6465 7363 7269  nter api</descri\n+000005c0: 7074 696f 6e3e 0a20 203c 6c69 6365 6e73  ption>.  <licens\n+000005d0: 6573 3e0a 2020 2020 3c6c 6963 656e 7365  es>.    <license\n+000005e0: 3e0a 2020 2020 2020 3c6e 616d 653e 4170  >.      <name>Ap\n+000005f0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n+00000600: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n+00000610: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n+00000620: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n+00000630: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n+00000640: 5345 2d32 2e30 3c2f 7572 6c3e 0a20 2020  SE-2.0</url>.   \n+00000650: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n+00000660: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n+00000670: 696f 6e3e 0a20 2020 203c 2f6c 6963 656e  ion>.    </licen\n+00000680: 7365 3e0a 2020 3c2f 6c69 6365 6e73 6573  se>.  </licenses\n+00000690: 3e0a 2020 3c70 726f 7065 7274 6965 733e  >.  <properties>\n+000006a0: 0a20 2020 203c 736b 6970 496e 7465 6772  .    <skipIntegr\n+000006b0: 6174 696f 6e54 6573 7473 3e74 7275 653c  ationTests>true<\n+000006c0: 2f73 6b69 7049 6e74 6567 7261 7469 6f6e  /skipIntegration\n+000006d0: 5465 7374 733e 0a20 203c 2f70 726f 7065  Tests>.  </prope\n+000006e0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+000006f0: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+00000700: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000710: 6772 6f75 7049 643e 696f 2e65 7463 643c  groupId>io.etcd<\n+00000720: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000730: 3c61 7274 6966 6163 7449 643e 6a65 7463  <artifactId>jetc\n+00000740: 642d 6c61 756e 6368 6572 3c2f 6172 7469  d-launcher</arti\n+00000750: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+00000760: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000770: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000780: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000790: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000007a0: 7049 643e 6f72 672e 7465 7374 636f 6e74  pId>org.testcont\n+000007b0: 6169 6e65 7273 3c2f 6772 6f75 7049 643e  ainers</groupId>\n+000007c0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000007d0: 4964 3e74 6573 7463 6f6e 7461 696e 6572  Id>testcontainer\n+000007e0: 733c 2f61 7274 6966 6163 7449 643e 0a20  s</artifactId>. \n+000007f0: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000800: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000810: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000820: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000830: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000840: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000850: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000860: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n+00000870: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n+00000880: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000890: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000008a0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000008b0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000008c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000008d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000008e0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000008f0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000900: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000910: 7449 643e 6475 6262 6f2d 7265 6d6f 7469  tId>dubbo-remoti\n+00000920: 6e67 2d65 7463 6433 3c2f 6172 7469 6661  ng-etcd3</artifa\n+00000930: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000940: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000950: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000960: 7665 7273 696f 6e3e 0a20 2020 203c 2f64  version>.    </d\n+00000970: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+00000980: 6570 656e 6465 6e63 6965 733e 0a20 203c  ependencies>.  <\n+00000990: 6275 696c 643e 0a20 2020 203c 706c 7567  build>.    <plug\n+000009a0: 696e 733e 0a20 2020 2020 203c 706c 7567  ins>.      <plug\n+000009b0: 696e 3e0a 2020 2020 2020 2020 3c61 7274  in>.        <art\n+000009c0: 6966 6163 7449 643e 6d61 7665 6e2d 7375  ifactId>maven-su\n+000009d0: 7265 6669 7265 2d70 6c75 6769 6e3c 2f61  refire-plugin</a\n+000009e0: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+000009f0: 2020 203c 636f 6e66 6967 7572 6174 696f     <configuratio\n+00000a00: 6e3e 0a20 2020 2020 2020 2020 203c 736b  n>.          <sk\n+00000a10: 6970 5465 7374 733e 247b 736b 6970 496e  ipTests>${skipIn\n+00000a20: 7465 6772 6174 696f 6e54 6573 7473 7d3c  tegrationTests}<\n+00000a30: 2f73 6b69 7054 6573 7473 3e0a 2020 2020  /skipTests>.    \n+00000a40: 2020 2020 3c2f 636f 6e66 6967 7572 6174      </configurat\n+00000a50: 696f 6e3e 0a20 2020 2020 203c 2f70 6c75  ion>.      </plu\n+00000a60: 6769 6e3e 0a20 2020 203c 2f70 6c75 6769  gin>.    </plugi\n+00000a70: 6e73 3e0a 2020 3c2f 6275 696c 643e 0a3c  ns>.  </build>.<\n+00000a80: 2f70 726f 6a65 6374 3e0a                 /project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-nacos/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,130 +1,127 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d63 6f6e 6669 6763 656e 7465 723c 2f61  -configcenter</a\n-000004c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000004d0: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-000004e0: 2f76 6572 7369 6f6e 3e0d 0a20 203c 2f70  /version>..  </p\n-000004f0: 6172 656e 743e 0d0a 2020 3c67 726f 7570  arent>..  <group\n-00000500: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000510: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000520: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000530: 626f 2d63 6f6e 6669 6763 656e 7465 722d  bo-configcenter-\n-00000540: 6e61 636f 733c 2f61 7274 6966 6163 7449  nacos</artifactI\n-00000550: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000560: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000570: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000580: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000590: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-000005a0: 7074 696f 6e3e 5468 6520 6e61 636f 7320  ption>The nacos \n-000005b0: 696d 706c 656d 656e 7461 7469 6f6e 206f  implementation o\n-000005c0: 6620 7468 6520 636f 6e66 6967 2d63 656e  f the config-cen\n-000005d0: 7465 7220 6170 693c 2f64 6573 6372 6970  ter api</descrip\n-000005e0: 7469 6f6e 3e0d 0a20 203c 6c69 6365 6e73  tion>..  <licens\n-000005f0: 6573 3e0d 0a20 2020 203c 6c69 6365 6e73  es>..    <licens\n-00000600: 653e 0d0a 2020 2020 2020 3c6e 616d 653e  e>..      <name>\n-00000610: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-00000620: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n-00000630: 653e 0d0a 2020 2020 2020 3c75 726c 3e68  e>..      <url>h\n-00000640: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n-00000650: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n-00000660: 4345 4e53 452d 322e 303c 2f75 726c 3e0d  CENSE-2.0</url>.\n-00000670: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n-00000680: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n-00000690: 6962 7574 696f 6e3e 0d0a 2020 2020 3c2f  ibution>..    </\n-000006a0: 6c69 6365 6e73 653e 0d0a 2020 3c2f 6c69  license>..  </li\n-000006b0: 6365 6e73 6573 3e0d 0a20 203c 6465 7065  censes>..  <depe\n-000006c0: 6e64 656e 6369 6573 3e0d 0a20 2020 203c  ndencies>..    <\n-000006d0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000006e0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000006f0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000700: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000710: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000720: 636f 6d6d 6f6e 3c2f 6172 7469 6661 6374  common</artifact\n-00000730: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000740: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000750: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000760: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000770: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000780: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000790: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n-000007a0: 2e61 6c69 6261 6261 2e6e 6163 6f73 3c2f  .alibaba.nacos</\n-000007b0: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-000007c0: 3c61 7274 6966 6163 7449 643e 6e61 636f  <artifactId>naco\n-000007d0: 732d 636c 6965 6e74 3c2f 6172 7469 6661  s-client</artifa\n-000007e0: 6374 4964 3e0d 0a20 2020 203c 2f64 6570  ctId>..    </dep\n-000007f0: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-00000800: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-00000810: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+000004a0: 6763 656e 7465 723c 2f61 7274 6966 6163  gcenter</artifac\n+000004b0: 7449 643e 0a20 2020 203c 7665 7273 696f  tId>.    <versio\n+000004c0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+000004d0: 6e3e 0a20 203c 2f70 6172 656e 743e 0a20  n>.  </parent>. \n+000004e0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000004f0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000500: 7049 643e 0a20 203c 6172 7469 6661 6374  pId>.  <artifact\n+00000510: 4964 3e64 7562 626f 2d63 6f6e 6669 6763  Id>dubbo-configc\n+00000520: 656e 7465 722d 6e61 636f 733c 2f61 7274  enter-nacos</art\n+00000530: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000540: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000550: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000560: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000570: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000580: 6372 6970 7469 6f6e 3e54 6865 206e 6163  cription>The nac\n+00000590: 6f73 2069 6d70 6c65 6d65 6e74 6174 696f  os implementatio\n+000005a0: 6e20 6f66 2074 6865 2063 6f6e 6669 672d  n of the config-\n+000005b0: 6365 6e74 6572 2061 7069 3c2f 6465 7363  center api</desc\n+000005c0: 7269 7074 696f 6e3e 0a20 203c 6c69 6365  ription>.  <lice\n+000005d0: 6e73 6573 3e0a 2020 2020 3c6c 6963 656e  nses>.    <licen\n+000005e0: 7365 3e0a 2020 2020 2020 3c6e 616d 653e  se>.      <name>\n+000005f0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n+00000600: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n+00000610: 653e 0a20 2020 2020 203c 7572 6c3e 6874  e>.      <url>ht\n+00000620: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n+00000630: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n+00000640: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0a20  ENSE-2.0</url>. \n+00000650: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n+00000660: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n+00000670: 7574 696f 6e3e 0a20 2020 203c 2f6c 6963  ution>.    </lic\n+00000680: 656e 7365 3e0a 2020 3c2f 6c69 6365 6e73  ense>.  </licens\n+00000690: 6573 3e0a 2020 3c64 6570 656e 6465 6e63  es>.  <dependenc\n+000006a0: 6965 733e 0a20 2020 203c 6465 7065 6e64  ies>.    <depend\n+000006b0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000006c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+000006d0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+000006e0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000006f0: 643e 6475 6262 6f2d 636f 6d6d 6f6e 3c2f  d>dubbo-common</\n+00000700: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000710: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000720: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000730: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000740: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000750: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000760: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000770: 3e63 6f6d 2e61 6c69 6261 6261 2e6e 6163  >com.alibaba.nac\n+00000780: 6f73 3c2f 6772 6f75 7049 643e 0a20 2020  os</groupId>.   \n+00000790: 2020 203c 6172 7469 6661 6374 4964 3e6e     <artifactId>n\n+000007a0: 6163 6f73 2d63 6c69 656e 743c 2f61 7274  acos-client</art\n+000007b0: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+000007c0: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+000007d0: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+000007e0: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-configcenter-zookeeper/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,142 +1,139 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 6669 6763 656e 7465 723c  bo-configcenter<\n-000004a0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000004b0: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-000004c0: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-000004d0: 2f70 6172 656e 743e 0d0a 2020 3c67 726f  /parent>..  <gro\n-000004e0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000004f0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n-00000510: 7562 626f 2d63 6f6e 6669 6763 656e 7465  ubbo-configcente\n-00000520: 722d 7a6f 6f6b 6565 7065 723c 2f61 7274  r-zookeeper</art\n-00000530: 6966 6163 7449 643e 0d0a 2020 3c76 6572  ifactId>..  <ver\n-00000540: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-00000550: 7369 6f6e 3e0d 0a20 203c 6e61 6d65 3e24  sion>..  <name>$\n-00000560: 7b70 726f 6a65 6374 2e61 7274 6966 6163  {project.artifac\n-00000570: 7449 647d 3c2f 6e61 6d65 3e0d 0a20 203c  tId}</name>..  <\n-00000580: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n-00000590: 7a6f 6f6b 6565 7065 7220 696d 706c 656d  zookeeper implem\n-000005a0: 656e 7461 7469 6f6e 206f 6620 7468 6520  entation of the \n-000005b0: 636f 6e66 6967 2d63 656e 7465 7220 6170  config-center ap\n-000005c0: 693c 2f64 6573 6372 6970 7469 6f6e 3e0d  i</description>.\n-000005d0: 0a20 203c 6c69 6365 6e73 6573 3e0d 0a20  .  <licenses>.. \n-000005e0: 2020 203c 6c69 6365 6e73 653e 0d0a 2020     <license>..  \n-000005f0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n-00000600: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000610: 6e20 322e 303c 2f6e 616d 653e 0d0a 2020  n 2.0</name>..  \n-00000620: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n-00000630: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000640: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000650: 322e 303c 2f75 726c 3e0d 0a20 2020 2020  2.0</url>..     \n-00000660: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n-00000670: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n-00000680: 6e3e 0d0a 2020 2020 3c2f 6c69 6365 6e73  n>..    </licens\n-00000690: 653e 0d0a 2020 3c2f 6c69 6365 6e73 6573  e>..  </licenses\n-000006a0: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-000006b0: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-000006c0: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-000006d0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000006e0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-000006f0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000700: 7449 643e 6475 6262 6f2d 636f 6d6d 6f6e  tId>dubbo-common\n-00000710: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000720: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000730: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000740: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000750: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000760: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000770: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000780: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000790: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000007a0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000007b0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n-000007c0: 696e 672d 7a6f 6f6b 6565 7065 723c 2f61  ing-zookeeper</a\n-000007d0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000007e0: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-000007f0: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000800: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000810: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000820: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000830: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000840: 7049 643e 6f72 672e 6170 6163 6865 2e63  pId>org.apache.c\n-00000850: 7572 6174 6f72 3c2f 6772 6f75 7049 643e  urator</groupId>\n-00000860: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000870: 7449 643e 6375 7261 746f 722d 7465 7374  tId>curator-test\n-00000880: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000890: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-000008a0: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-000008b0: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-000008c0: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-000008d0: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 6669 6763 656e 7465 723c 2f61 7274 6966  figcenter</artif\n+00000490: 6163 7449 643e 0a20 2020 203c 7665 7273  actId>.    <vers\n+000004a0: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+000004b0: 696f 6e3e 0a20 203c 2f70 6172 656e 743e  ion>.  </parent>\n+000004c0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n+000004d0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000004e0: 6f75 7049 643e 0a20 203c 6172 7469 6661  oupId>.  <artifa\n+000004f0: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+00000500: 6763 656e 7465 722d 7a6f 6f6b 6565 7065  gcenter-zookeepe\n+00000510: 723c 2f61 7274 6966 6163 7449 643e 0a20  r</artifactId>. \n+00000520: 203c 7665 7273 696f 6e3e 322e 372e 3130   <version>2.7.10\n+00000530: 3c2f 7665 7273 696f 6e3e 0a20 203c 6e61  </version>.  <na\n+00000540: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n+00000550: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0a  ifactId}</name>.\n+00000560: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n+00000570: 6865 207a 6f6f 6b65 6570 6572 2069 6d70  he zookeeper imp\n+00000580: 6c65 6d65 6e74 6174 696f 6e20 6f66 2074  lementation of t\n+00000590: 6865 2063 6f6e 6669 672d 6365 6e74 6572  he config-center\n+000005a0: 2061 7069 3c2f 6465 7363 7269 7074 696f   api</descriptio\n+000005b0: 6e3e 0a20 203c 6c69 6365 6e73 6573 3e0a  n>.  <licenses>.\n+000005c0: 2020 2020 3c6c 6963 656e 7365 3e0a 2020      <license>.  \n+000005d0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n+000005e0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n+000005f0: 6e20 322e 303c 2f6e 616d 653e 0a20 2020  n 2.0</name>.   \n+00000600: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n+00000610: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n+00000620: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n+00000630: 2e30 3c2f 7572 6c3e 0a20 2020 2020 203c  .0</url>.      <\n+00000640: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n+00000650: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n+00000660: 0a20 2020 203c 2f6c 6963 656e 7365 3e0a  .    </license>.\n+00000670: 2020 3c2f 6c69 6365 6e73 6573 3e0a 2020    </licenses>.  \n+00000680: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+00000690: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000006a0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+000006b0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+000006c0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000006d0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000006e0: 6f2d 636f 6d6d 6f6e 3c2f 6172 7469 6661  o-common</artifa\n+000006f0: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000700: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000710: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000720: 7665 7273 696f 6e3e 0a20 2020 203c 2f64  version>.    </d\n+00000730: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000740: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000750: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000760: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000770: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000780: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n+00000790: 6d6f 7469 6e67 2d7a 6f6f 6b65 6570 6572  moting-zookeeper\n+000007a0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000007b0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000007c0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+000007d0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+000007e0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000007f0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000800: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000810: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n+00000820: 7261 746f 723c 2f67 726f 7570 4964 3e0a  rator</groupId>.\n+00000830: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000840: 643e 6375 7261 746f 722d 7465 7374 3c2f  d>curator-test</\n+00000850: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000860: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n+00000870: 636f 7065 3e0a 2020 2020 3c2f 6465 7065  cope>.    </depe\n+00000880: 6e64 656e 6379 3e0a 2020 3c2f 6465 7065  ndency>.  </depe\n+00000890: 6e64 656e 6369 6573 3e0a 3c2f 7072 6f6a  ndencies>.</proj\n+000008a0: 6563 743e 0a                             ect>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-container-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-container-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,150 +1,146 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 7461 696e 6572 3c2f 6172  bo-container</ar\n-000004a0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-000004b0: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-000004c0: 7665 7273 696f 6e3e 0d0a 2020 3c2f 7061  version>..  </pa\n-000004d0: 7265 6e74 3e0d 0a20 203c 6772 6f75 7049  rent>..  <groupI\n-000004e0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000004f0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000500: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000510: 6f2d 636f 6e74 6169 6e65 722d 6170 693c  o-container-api<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 636f 6e74 6169 6e65 7220 6d6f  The container mo\n-00000590: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n-000005a0: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n-000005b0: 6f6e 3e0d 0a20 203c 6c69 6365 6e73 6573  on>..  <licenses\n-000005c0: 3e0d 0a20 2020 203c 6c69 6365 6e73 653e  >..    <license>\n-000005d0: 0d0a 2020 2020 2020 3c6e 616d 653e 4170  ..      <name>Ap\n-000005e0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n-000005f0: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n-00000600: 0d0a 2020 2020 2020 3c75 726c 3e68 7474  ..      <url>htt\n-00000610: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n-00000620: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n-00000630: 4e53 452d 322e 303c 2f75 726c 3e0d 0a20  NSE-2.0</url>.. \n-00000640: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n-00000650: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n-00000660: 7574 696f 6e3e 0d0a 2020 2020 3c2f 6c69  ution>..    </li\n-00000670: 6365 6e73 653e 0d0a 2020 3c2f 6c69 6365  cense>..  </lice\n-00000680: 6e73 6573 3e0d 0a20 203c 7072 6f70 6572  nses>..  <proper\n-00000690: 7469 6573 3e0d 0a20 2020 203c 736b 6970  ties>..    <skip\n-000006a0: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n-000006b0: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n-000006c0: 6465 706c 6f79 3e0d 0a20 203c 2f70 726f  deploy>..  </pro\n-000006d0: 7065 7274 6965 733e 0d0a 2020 3c64 6570  perties>..  <dep\n-000006e0: 656e 6465 6e63 6965 733e 0d0a 2020 2020  endencies>..    \n-000006f0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000700: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000710: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000720: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000730: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000740: 2d63 6f6d 6d6f 6e3c 2f61 7274 6966 6163  -common</artifac\n-00000750: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000760: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000770: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000780: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000790: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-000007a0: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-000007b0: 2020 3c62 7569 6c64 3e0d 0a20 2020 203c    <build>..    <\n-000007c0: 706c 7567 696e 733e 0d0a 2020 2020 2020  plugins>..      \n-000007d0: 3c70 6c75 6769 6e3e 0d0a 2020 2020 2020  <plugin>..      \n-000007e0: 2020 3c61 7274 6966 6163 7449 643e 6d61    <artifactId>ma\n-000007f0: 7665 6e2d 6a61 722d 706c 7567 696e 3c2f  ven-jar-plugin</\n-00000800: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000810: 2020 2020 203c 636f 6e66 6967 7572 6174       <configurat\n-00000820: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n-00000830: 3c61 7263 6869 7665 3e0d 0a20 2020 2020  <archive>..     \n-00000840: 2020 2020 2020 203c 6164 644d 6176 656e         <addMaven\n-00000850: 4465 7363 7269 7074 6f72 3e74 7275 653c  Descriptor>true<\n-00000860: 2f61 6464 4d61 7665 6e44 6573 6372 6970  /addMavenDescrip\n-00000870: 746f 723e 0d0a 2020 2020 2020 2020 2020  tor>..          \n-00000880: 2020 3c6d 616e 6966 6573 743e 0d0a 2020    <manifest>..  \n-00000890: 2020 2020 2020 2020 2020 2020 3c6d 6169              <mai\n-000008a0: 6e43 6c61 7373 3e6f 7267 2e61 7061 6368  nClass>org.apach\n-000008b0: 652e 6475 6262 6f2e 636f 6e74 6169 6e65  e.dubbo.containe\n-000008c0: 722e 4d61 696e 3c2f 6d61 696e 436c 6173  r.Main</mainClas\n-000008d0: 733e 0d0a 2020 2020 2020 2020 2020 2020  s>..            \n-000008e0: 3c2f 6d61 6e69 6665 7374 3e0d 0a20 2020  </manifest>..   \n-000008f0: 2020 2020 2020 203c 2f61 7263 6869 7665         </archive\n-00000900: 3e0d 0a20 2020 2020 2020 203c 2f63 6f6e  >..        </con\n-00000910: 6669 6775 7261 7469 6f6e 3e0d 0a20 2020  figuration>..   \n-00000920: 2020 203c 2f70 6c75 6769 6e3e 0d0a 2020     </plugin>..  \n-00000930: 2020 3c2f 706c 7567 696e 733e 0d0a 2020    </plugins>..  \n-00000940: 3c2f 6275 696c 643e 0d0a 3c2f 7072 6f6a  </build>..</proj\n-00000950: 6563 743e 0d0a                           ect>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 7461 696e 6572 3c2f 6172 7469 6661 6374  tainer</artifact\n+00000490: 4964 3e0a 2020 2020 3c76 6572 7369 6f6e  Id>.    <version\n+000004a0: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+000004b0: 3e0a 2020 3c2f 7061 7265 6e74 3e0a 2020  >.  </parent>.  \n+000004c0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000004d0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000004e0: 4964 3e0a 2020 3c61 7274 6966 6163 7449  Id>.  <artifactI\n+000004f0: 643e 6475 6262 6f2d 636f 6e74 6169 6e65  d>dubbo-containe\n+00000500: 722d 6170 693c 2f61 7274 6966 6163 7449  r-api</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 2063 6f6e 7461 696e 6572  on>The container\n+00000570: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n+00000580: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n+00000590: 7074 696f 6e3e 0a20 203c 6c69 6365 6e73  ption>.  <licens\n+000005a0: 6573 3e0a 2020 2020 3c6c 6963 656e 7365  es>.    <license\n+000005b0: 3e0a 2020 2020 2020 3c6e 616d 653e 4170  >.      <name>Ap\n+000005c0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n+000005d0: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n+000005e0: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n+000005f0: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n+00000600: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n+00000610: 5345 2d32 2e30 3c2f 7572 6c3e 0a20 2020  SE-2.0</url>.   \n+00000620: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n+00000630: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n+00000640: 696f 6e3e 0a20 2020 203c 2f6c 6963 656e  ion>.    </licen\n+00000650: 7365 3e0a 2020 3c2f 6c69 6365 6e73 6573  se>.  </licenses\n+00000660: 3e0a 2020 3c70 726f 7065 7274 6965 733e  >.  <properties>\n+00000670: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n+00000680: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n+00000690: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+000006a0: 3e0a 2020 3c2f 7072 6f70 6572 7469 6573  >.  </properties\n+000006b0: 3e0a 2020 3c64 6570 656e 6465 6e63 6965  >.  <dependencie\n+000006c0: 733e 0a20 2020 203c 6465 7065 6e64 656e  s>.    <dependen\n+000006d0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000006e0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000006f0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000700: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000710: 6475 6262 6f2d 636f 6d6d 6f6e 3c2f 6172  dubbo-common</ar\n+00000720: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000730: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000740: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+00000750: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000760: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000770: 203c 2f64 6570 656e 6465 6e63 6965 733e   </dependencies>\n+00000780: 0a20 203c 6275 696c 643e 0a20 2020 203c  .  <build>.    <\n+00000790: 706c 7567 696e 733e 0a20 2020 2020 203c  plugins>.      <\n+000007a0: 706c 7567 696e 3e0a 2020 2020 2020 2020  plugin>.        \n+000007b0: 3c61 7274 6966 6163 7449 643e 6d61 7665  <artifactId>mave\n+000007c0: 6e2d 6a61 722d 706c 7567 696e 3c2f 6172  n-jar-plugin</ar\n+000007d0: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+000007e0: 2020 3c63 6f6e 6669 6775 7261 7469 6f6e    <configuration\n+000007f0: 3e0a 2020 2020 2020 2020 2020 3c61 7263  >.          <arc\n+00000800: 6869 7665 3e0a 2020 2020 2020 2020 2020  hive>.          \n+00000810: 2020 3c61 6464 4d61 7665 6e44 6573 6372    <addMavenDescr\n+00000820: 6970 746f 723e 7472 7565 3c2f 6164 644d  iptor>true</addM\n+00000830: 6176 656e 4465 7363 7269 7074 6f72 3e0a  avenDescriptor>.\n+00000840: 2020 2020 2020 2020 2020 2020 3c6d 616e              <man\n+00000850: 6966 6573 743e 0a20 2020 2020 2020 2020  ifest>.         \n+00000860: 2020 2020 203c 6d61 696e 436c 6173 733e       <mainClass>\n+00000870: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000880: 2e63 6f6e 7461 696e 6572 2e4d 6169 6e3c  .container.Main<\n+00000890: 2f6d 6169 6e43 6c61 7373 3e0a 2020 2020  /mainClass>.    \n+000008a0: 2020 2020 2020 2020 3c2f 6d61 6e69 6665          </manife\n+000008b0: 7374 3e0a 2020 2020 2020 2020 2020 3c2f  st>.          </\n+000008c0: 6172 6368 6976 653e 0a20 2020 2020 2020  archive>.       \n+000008d0: 203c 2f63 6f6e 6669 6775 7261 7469 6f6e   </configuration\n+000008e0: 3e0a 2020 2020 2020 3c2f 706c 7567 696e  >.      </plugin\n+000008f0: 3e0a 2020 2020 3c2f 706c 7567 696e 733e  >.    </plugins>\n+00000900: 0a20 203c 2f62 7569 6c64 3e0a 3c2f 7072  .  </build>.</pr\n+00000910: 6f6a 6563 743e 0a                        oject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-container-log4j/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-container-log4j/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,125 +1,122 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 7461 696e 6572 3c2f 6172  bo-container</ar\n-000004a0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-000004b0: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-000004c0: 7665 7273 696f 6e3e 0d0a 2020 3c2f 7061  version>..  </pa\n-000004d0: 7265 6e74 3e0d 0a20 203c 6772 6f75 7049  rent>..  <groupI\n-000004e0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000004f0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000500: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000510: 6f2d 636f 6e74 6169 6e65 722d 6c6f 6734  o-container-log4\n-00000520: 6a3c 2f61 7274 6966 6163 7449 643e 0d0a  j</artifactId>..\n-00000530: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-00000540: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n-00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n-00000570: 3e0d 0a20 203c 6465 7363 7269 7074 696f  >..  <descriptio\n-00000580: 6e3e 5468 6520 6c6f 6734 6a20 636f 6e74  n>The log4j cont\n-00000590: 6169 6e65 7220 6d6f 6475 6c65 206f 6620  ainer module of \n-000005a0: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n-000005b0: 6573 6372 6970 7469 6f6e 3e0d 0a20 203c  escription>..  <\n-000005c0: 6c69 6365 6e73 6573 3e0d 0a20 2020 203c  licenses>..    <\n-000005d0: 6c69 6365 6e73 653e 0d0a 2020 2020 2020  license>..      \n-000005e0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n-000005f0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n-00000600: 303c 2f6e 616d 653e 0d0a 2020 2020 2020  0</name>..      \n-00000610: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n-00000620: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n-00000630: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n-00000640: 2f75 726c 3e0d 0a20 2020 2020 203c 6469  /url>..      <di\n-00000650: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n-00000660: 2f64 6973 7472 6962 7574 696f 6e3e 0d0a  /distribution>..\n-00000670: 2020 2020 3c2f 6c69 6365 6e73 653e 0d0a      </license>..\n-00000680: 2020 3c2f 6c69 6365 6e73 6573 3e0d 0a20    </licenses>.. \n-00000690: 203c 7072 6f70 6572 7469 6573 3e0d 0a20   <properties>.. \n-000006a0: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n-000006b0: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n-000006c0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0d  p_maven_deploy>.\n-000006d0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n-000006e0: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-000006f0: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-00000700: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000710: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000720: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000730: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000740: 4964 3e64 7562 626f 2d63 6f6e 7461 696e  Id>dubbo-contain\n-00000750: 6572 2d61 7069 3c2f 6172 7469 6661 6374  er-api</artifact\n-00000760: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000770: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000780: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000790: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-000007a0: 6570 656e 6465 6e63 793e 0d0a 2020 3c2f  ependency>..  </\n-000007b0: 6465 7065 6e64 656e 6369 6573 3e0d 0a3c  dependencies>..<\n-000007c0: 2f70 726f 6a65 6374 3e0d 0a              /project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 7461 696e 6572 3c2f 6172 7469 6661 6374  tainer</artifact\n+00000490: 4964 3e0a 2020 2020 3c76 6572 7369 6f6e  Id>.    <version\n+000004a0: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+000004b0: 3e0a 2020 3c2f 7061 7265 6e74 3e0a 2020  >.  </parent>.  \n+000004c0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000004d0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000004e0: 4964 3e0a 2020 3c61 7274 6966 6163 7449  Id>.  <artifactI\n+000004f0: 643e 6475 6262 6f2d 636f 6e74 6169 6e65  d>dubbo-containe\n+00000500: 722d 6c6f 6734 6a3c 2f61 7274 6966 6163  r-log4j</artifac\n+00000510: 7449 643e 0a20 203c 7665 7273 696f 6e3e  tId>.  <version>\n+00000520: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+00000530: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n+00000540: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n+00000550: 6e61 6d65 3e0a 2020 3c64 6573 6372 6970  name>.  <descrip\n+00000560: 7469 6f6e 3e54 6865 206c 6f67 346a 2063  tion>The log4j c\n+00000570: 6f6e 7461 696e 6572 206d 6f64 756c 6520  ontainer module \n+00000580: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n+00000590: 3c2f 6465 7363 7269 7074 696f 6e3e 0a20  </description>. \n+000005a0: 203c 6c69 6365 6e73 6573 3e0a 2020 2020   <licenses>.    \n+000005b0: 3c6c 6963 656e 7365 3e0a 2020 2020 2020  <license>.      \n+000005c0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n+000005d0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n+000005e0: 303c 2f6e 616d 653e 0a20 2020 2020 203c  0</name>.      <\n+000005f0: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n+00000600: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n+00000610: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n+00000620: 7572 6c3e 0a20 2020 2020 203c 6469 7374  url>.      <dist\n+00000630: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n+00000640: 6973 7472 6962 7574 696f 6e3e 0a20 2020  istribution>.   \n+00000650: 203c 2f6c 6963 656e 7365 3e0a 2020 3c2f   </license>.  </\n+00000660: 6c69 6365 6e73 6573 3e0a 2020 3c70 726f  licenses>.  <pro\n+00000670: 7065 7274 6965 733e 0a20 2020 203c 736b  perties>.    <sk\n+00000680: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000690: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n+000006a0: 6e5f 6465 706c 6f79 3e0a 2020 3c2f 7072  n_deploy>.  </pr\n+000006b0: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+000006c0: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+000006d0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000006e0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000006f0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000700: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000710: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n+00000720: 6e74 6169 6e65 722d 6170 693c 2f61 7274  ntainer-api</art\n+00000730: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000740: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000750: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000760: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000770: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000780: 3c2f 6465 7065 6e64 656e 6369 6573 3e0a  </dependencies>.\n+00000790: 3c2f 7072 6f6a 6563 743e 0a              </project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-container-logback/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-container-logback/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 7461 696e 6572 3c2f 6172  bo-container</ar\n-000004a0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-000004b0: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-000004c0: 7665 7273 696f 6e3e 0d0a 2020 3c2f 7061  version>..  </pa\n-000004d0: 7265 6e74 3e0d 0a20 203c 6772 6f75 7049  rent>..  <groupI\n-000004e0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000004f0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000500: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000510: 6f2d 636f 6e74 6169 6e65 722d 6c6f 6762  o-container-logb\n-00000520: 6163 6b3c 2f61 7274 6966 6163 7449 643e  ack</artifactId>\n-00000530: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000540: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000550: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000560: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000570: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000580: 696f 6e3e 5468 6520 6c6f 6762 6163 6b20  ion>The logback \n-00000590: 636f 6e74 6169 6e65 7220 6d6f 6475 6c65  container module\n-000005a0: 206f 6620 6475 6262 6f20 7072 6f6a 6563   of dubbo projec\n-000005b0: 743c 2f64 6573 6372 6970 7469 6f6e 3e0d  t</description>.\n-000005c0: 0a20 203c 6c69 6365 6e73 6573 3e0d 0a20  .  <licenses>.. \n-000005d0: 2020 203c 6c69 6365 6e73 653e 0d0a 2020     <license>..  \n-000005e0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n-000005f0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000600: 6e20 322e 303c 2f6e 616d 653e 0d0a 2020  n 2.0</name>..  \n-00000610: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n-00000620: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000630: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000640: 322e 303c 2f75 726c 3e0d 0a20 2020 2020  2.0</url>..     \n-00000650: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n-00000660: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n-00000670: 6e3e 0d0a 2020 2020 3c2f 6c69 6365 6e73  n>..    </licens\n-00000680: 653e 0d0a 2020 3c2f 6c69 6365 6e73 6573  e>..  </licenses\n-00000690: 3e0d 0a20 203c 7072 6f70 6572 7469 6573  >..  <properties\n-000006a0: 3e0d 0a20 2020 203c 736b 6970 5f6d 6176  >..    <skip_mav\n-000006b0: 656e 5f64 6570 6c6f 793e 6661 6c73 653c  en_deploy>false<\n-000006c0: 2f73 6b69 705f 6d61 7665 6e5f 6465 706c  /skip_maven_depl\n-000006d0: 6f79 3e0d 0a20 203c 2f70 726f 7065 7274  oy>..  </propert\n-000006e0: 6965 733e 0d0a 2020 3c64 6570 656e 6465  ies>..  <depende\n-000006f0: 6e63 6965 733e 0d0a 2020 2020 3c64 6570  ncies>..    <dep\n-00000700: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000710: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-00000720: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-00000730: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000740: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n-00000750: 7461 696e 6572 2d61 7069 3c2f 6172 7469  tainer-api</arti\n-00000760: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000770: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000780: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000790: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000007a0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007b0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000007c0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000007d0: 3e63 682e 716f 732e 6c6f 6762 6163 6b3c  >ch.qos.logback<\n-000007e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007f0: 203c 6172 7469 6661 6374 4964 3e6c 6f67   <artifactId>log\n-00000800: 6261 636b 2d63 6c61 7373 6963 3c2f 6172  back-classic</ar\n-00000810: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000820: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000830: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000840: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 7461 696e 6572 3c2f 6172 7469 6661 6374  tainer</artifact\n+00000490: 4964 3e0a 2020 2020 3c76 6572 7369 6f6e  Id>.    <version\n+000004a0: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+000004b0: 3e0a 2020 3c2f 7061 7265 6e74 3e0a 2020  >.  </parent>.  \n+000004c0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000004d0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000004e0: 4964 3e0a 2020 3c61 7274 6966 6163 7449  Id>.  <artifactI\n+000004f0: 643e 6475 6262 6f2d 636f 6e74 6169 6e65  d>dubbo-containe\n+00000500: 722d 6c6f 6762 6163 6b3c 2f61 7274 6966  r-logback</artif\n+00000510: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000520: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000530: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000540: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000550: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000560: 6970 7469 6f6e 3e54 6865 206c 6f67 6261  iption>The logba\n+00000570: 636b 2063 6f6e 7461 696e 6572 206d 6f64  ck container mod\n+00000580: 756c 6520 6f66 2064 7562 626f 2070 726f  ule of dubbo pro\n+00000590: 6a65 6374 3c2f 6465 7363 7269 7074 696f  ject</descriptio\n+000005a0: 6e3e 0a20 203c 6c69 6365 6e73 6573 3e0a  n>.  <licenses>.\n+000005b0: 2020 2020 3c6c 6963 656e 7365 3e0a 2020      <license>.  \n+000005c0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n+000005d0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n+000005e0: 6e20 322e 303c 2f6e 616d 653e 0a20 2020  n 2.0</name>.   \n+000005f0: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n+00000600: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n+00000610: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n+00000620: 2e30 3c2f 7572 6c3e 0a20 2020 2020 203c  .0</url>.      <\n+00000630: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n+00000640: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n+00000650: 0a20 2020 203c 2f6c 6963 656e 7365 3e0a  .    </license>.\n+00000660: 2020 3c2f 6c69 6365 6e73 6573 3e0a 2020    </licenses>.  \n+00000670: 3c70 726f 7065 7274 6965 733e 0a20 2020  <properties>.   \n+00000680: 203c 736b 6970 5f6d 6176 656e 5f64 6570   <skip_maven_dep\n+00000690: 6c6f 793e 6661 6c73 653c 2f73 6b69 705f  loy>false</skip_\n+000006a0: 6d61 7665 6e5f 6465 706c 6f79 3e0a 2020  maven_deploy>.  \n+000006b0: 3c2f 7072 6f70 6572 7469 6573 3e0a 2020  </properties>.  \n+000006c0: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+000006d0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000006e0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+000006f0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000700: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000710: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000720: 6f2d 636f 6e74 6169 6e65 722d 6170 693c  o-container-api<\n+00000730: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000740: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000750: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000760: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000770: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000780: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000790: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000007a0: 643e 6368 2e71 6f73 2e6c 6f67 6261 636b  d>ch.qos.logback\n+000007b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007c0: 203c 6172 7469 6661 6374 4964 3e6c 6f67   <artifactId>log\n+000007d0: 6261 636b 2d63 6c61 7373 6963 3c2f 6172  back-classic</ar\n+000007e0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000007f0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000800: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000810: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-container-spring/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-container-spring/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d63 6f6e 7461 696e 6572 3c2f 6172  bo-container</ar\n-000004a0: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-000004b0: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-000004c0: 7665 7273 696f 6e3e 0d0a 2020 3c2f 7061  version>..  </pa\n-000004d0: 7265 6e74 3e0d 0a20 203c 6772 6f75 7049  rent>..  <groupI\n-000004e0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000004f0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000500: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000510: 6f2d 636f 6e74 6169 6e65 722d 7370 7269  o-container-spri\n-00000520: 6e67 3c2f 6172 7469 6661 6374 4964 3e0d  ng</artifactId>.\n-00000530: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n-00000540: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-00000550: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n-00000560: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n-00000570: 653e 0d0a 2020 3c64 6573 6372 6970 7469  e>..  <descripti\n-00000580: 6f6e 3e54 6865 2073 7072 696e 6720 636f  on>The spring co\n-00000590: 6e74 6169 6e65 7220 6d6f 6475 6c65 206f  ntainer module o\n-000005a0: 6620 6475 6262 6f20 7072 6f6a 6563 743c  f dubbo project<\n-000005b0: 2f64 6573 6372 6970 7469 6f6e 3e0d 0a20  /description>.. \n-000005c0: 203c 6c69 6365 6e73 6573 3e0d 0a20 2020   <licenses>..   \n-000005d0: 203c 6c69 6365 6e73 653e 0d0a 2020 2020   <license>..    \n-000005e0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n-000005f0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n-00000600: 322e 303c 2f6e 616d 653e 0d0a 2020 2020  2.0</name>..    \n-00000610: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n-00000620: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n-00000630: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n-00000640: 303c 2f75 726c 3e0d 0a20 2020 2020 203c  0</url>..      <\n-00000650: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n-00000660: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n-00000670: 0d0a 2020 2020 3c2f 6c69 6365 6e73 653e  ..    </license>\n-00000680: 0d0a 2020 3c2f 6c69 6365 6e73 6573 3e0d  ..  </licenses>.\n-00000690: 0a20 203c 7072 6f70 6572 7469 6573 3e0d  .  <properties>.\n-000006a0: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n-000006b0: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n-000006c0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006d0: 3e0d 0a20 203c 2f70 726f 7065 7274 6965  >..  </propertie\n-000006e0: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-000006f0: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-00000700: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000710: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000720: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000730: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000740: 6374 4964 3e64 7562 626f 2d63 6f6e 7461  ctId>dubbo-conta\n-00000750: 696e 6572 2d61 7069 3c2f 6172 7469 6661  iner-api</artifa\n-00000760: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000770: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000780: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000790: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000007a0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007b0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000007c0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000007d0: 7267 2e73 7072 696e 6766 7261 6d65 776f  rg.springframewo\n-000007e0: 726b 3c2f 6772 6f75 7049 643e 0d0a 2020  rk</groupId>..  \n-000007f0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000800: 7370 7269 6e67 2d63 6f6e 7465 7874 3c2f  spring-context</\n-00000810: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000820: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000830: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000840: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n+00000480: 7461 696e 6572 3c2f 6172 7469 6661 6374  tainer</artifact\n+00000490: 4964 3e0a 2020 2020 3c76 6572 7369 6f6e  Id>.    <version\n+000004a0: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+000004b0: 3e0a 2020 3c2f 7061 7265 6e74 3e0a 2020  >.  </parent>.  \n+000004c0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000004d0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000004e0: 4964 3e0a 2020 3c61 7274 6966 6163 7449  Id>.  <artifactI\n+000004f0: 643e 6475 6262 6f2d 636f 6e74 6169 6e65  d>dubbo-containe\n+00000500: 722d 7370 7269 6e67 3c2f 6172 7469 6661  r-spring</artifa\n+00000510: 6374 4964 3e0a 2020 3c76 6572 7369 6f6e  ctId>.  <version\n+00000520: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+00000530: 3e0a 2020 3c6e 616d 653e 247b 7072 6f6a  >.  <name>${proj\n+00000540: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n+00000550: 2f6e 616d 653e 0a20 203c 6465 7363 7269  /name>.  <descri\n+00000560: 7074 696f 6e3e 5468 6520 7370 7269 6e67  ption>The spring\n+00000570: 2063 6f6e 7461 696e 6572 206d 6f64 756c   container modul\n+00000580: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n+00000590: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n+000005a0: 0a20 203c 6c69 6365 6e73 6573 3e0a 2020  .  <licenses>.  \n+000005b0: 2020 3c6c 6963 656e 7365 3e0a 2020 2020    <license>.    \n+000005c0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n+000005d0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n+000005e0: 322e 303c 2f6e 616d 653e 0a20 2020 2020  2.0</name>.     \n+000005f0: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n+00000600: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n+00000610: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n+00000620: 3c2f 7572 6c3e 0a20 2020 2020 203c 6469  </url>.      <di\n+00000630: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n+00000640: 2f64 6973 7472 6962 7574 696f 6e3e 0a20  /distribution>. \n+00000650: 2020 203c 2f6c 6963 656e 7365 3e0a 2020     </license>.  \n+00000660: 3c2f 6c69 6365 6e73 6573 3e0a 2020 3c70  </licenses>.  <p\n+00000670: 726f 7065 7274 6965 733e 0a20 2020 203c  roperties>.    <\n+00000680: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+00000690: 793e 6661 6c73 653c 2f73 6b69 705f 6d61  y>false</skip_ma\n+000006a0: 7665 6e5f 6465 706c 6f79 3e0a 2020 3c2f  ven_deploy>.  </\n+000006b0: 7072 6f70 6572 7469 6573 3e0a 2020 3c64  properties>.  <d\n+000006c0: 6570 656e 6465 6e63 6965 733e 0a20 2020  ependencies>.   \n+000006d0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+000006e0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+000006f0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000700: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000710: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+00000720: 636f 6e74 6169 6e65 722d 6170 693c 2f61  container-api</a\n+00000730: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000740: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000750: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000760: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000770: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000780: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000790: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000007a0: 6f72 672e 7370 7269 6e67 6672 616d 6577  org.springframew\n+000007b0: 6f72 6b3c 2f67 726f 7570 4964 3e0a 2020  ork</groupId>.  \n+000007c0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007d0: 7370 7269 6e67 2d63 6f6e 7465 7874 3c2f  spring-context</\n+000007e0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000007f0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000800: 3c2f 6465 7065 6e64 656e 6369 6573 3e0a  </dependencies>.\n+00000810: 3c2f 7072 6f6a 6563 743e 0a              </project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-filter-cache/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-filter-cache/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,143 +1,140 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d66 696c 7465 723c 2f61 7274 6966  bo-filter</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d66  tifactId>dubbo-f\n-00000510: 696c 7465 722d 6361 6368 653c 2f61 7274  ilter-cache</art\n-00000520: 6966 6163 7449 643e 0d0a 2020 3c76 6572  ifactId>..  <ver\n-00000530: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-00000540: 7369 6f6e 3e0d 0a20 203c 6e61 6d65 3e24  sion>..  <name>$\n-00000550: 7b70 726f 6a65 6374 2e61 7274 6966 6163  {project.artifac\n-00000560: 7449 647d 3c2f 6e61 6d65 3e0d 0a20 203c  tId}</name>..  <\n-00000570: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n-00000580: 6361 6368 6520 6d6f 6475 6c65 206f 6620  cache module of \n-00000590: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n-000005a0: 6573 6372 6970 7469 6f6e 3e0d 0a20 203c  escription>..  <\n-000005b0: 6c69 6365 6e73 6573 3e0d 0a20 2020 203c  licenses>..    <\n-000005c0: 6c69 6365 6e73 653e 0d0a 2020 2020 2020  license>..      \n-000005d0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n-000005e0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n-000005f0: 303c 2f6e 616d 653e 0d0a 2020 2020 2020  0</name>..      \n-00000600: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n-00000610: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n-00000620: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n-00000630: 2f75 726c 3e0d 0a20 2020 2020 203c 6469  /url>..      <di\n-00000640: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n-00000650: 2f64 6973 7472 6962 7574 696f 6e3e 0d0a  /distribution>..\n-00000660: 2020 2020 3c2f 6c69 6365 6e73 653e 0d0a      </license>..\n-00000670: 2020 3c2f 6c69 6365 6e73 6573 3e0d 0a20    </licenses>.. \n-00000680: 203c 7072 6f70 6572 7469 6573 3e0d 0a20   <properties>.. \n-00000690: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n-000006a0: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n-000006b0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0d  p_maven_deploy>.\n-000006c0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n-000006d0: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-000006e0: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-000006f0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000700: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000710: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000720: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000730: 4964 3e64 7562 626f 2d72 7063 2d61 7069  Id>dubbo-rpc-api\n-00000740: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000750: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000760: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000770: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000780: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000790: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007b0: 726f 7570 4964 3e6a 6176 6178 2e63 6163  roupId>javax.cac\n-000007c0: 6865 3c2f 6772 6f75 7049 643e 0d0a 2020  he</groupId>..  \n-000007d0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000007e0: 6361 6368 652d 6170 693c 2f61 7274 6966  cache-api</artif\n-000007f0: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000800: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000810: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000820: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n-00000830: 6861 7a65 6c63 6173 743c 2f67 726f 7570  hazelcast</group\n-00000840: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000850: 6661 6374 4964 3e68 617a 656c 6361 7374  factId>hazelcast\n-00000860: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000870: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000880: 6861 7a65 6c63 6173 745f 7665 7273 696f  hazelcast_versio\n-00000890: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-000008a0: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-000008b0: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-000008c0: 6570 656e 6465 6e63 793e 0d0a 2020 3c2f  ependency>..  </\n-000008d0: 6465 7065 6e64 656e 6369 6573 3e0d 0a3c  dependencies>..<\n-000008e0: 2f70 726f 6a65 6374 3e0d 0a              /project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d66 696c  factId>dubbo-fil\n+00000480: 7465 723c 2f61 7274 6966 6163 7449 643e  ter</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d66 696c 7465 722d 6361 6368  ubbo-filter-cach\n+00000500: 653c 2f61 7274 6966 6163 7449 643e 0a20  e</artifactId>. \n+00000510: 203c 7665 7273 696f 6e3e 322e 372e 3130   <version>2.7.10\n+00000520: 3c2f 7665 7273 696f 6e3e 0a20 203c 6e61  </version>.  <na\n+00000530: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n+00000540: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0a  ifactId}</name>.\n+00000550: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n+00000560: 6865 2063 6163 6865 206d 6f64 756c 6520  he cache module \n+00000570: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n+00000580: 3c2f 6465 7363 7269 7074 696f 6e3e 0a20  </description>. \n+00000590: 203c 6c69 6365 6e73 6573 3e0a 2020 2020   <licenses>.    \n+000005a0: 3c6c 6963 656e 7365 3e0a 2020 2020 2020  <license>.      \n+000005b0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n+000005c0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n+000005d0: 303c 2f6e 616d 653e 0a20 2020 2020 203c  0</name>.      <\n+000005e0: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n+000005f0: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n+00000600: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n+00000610: 7572 6c3e 0a20 2020 2020 203c 6469 7374  url>.      <dist\n+00000620: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n+00000630: 6973 7472 6962 7574 696f 6e3e 0a20 2020  istribution>.   \n+00000640: 203c 2f6c 6963 656e 7365 3e0a 2020 3c2f   </license>.  </\n+00000650: 6c69 6365 6e73 6573 3e0a 2020 3c70 726f  licenses>.  <pro\n+00000660: 7065 7274 6965 733e 0a20 2020 203c 736b  perties>.    <sk\n+00000670: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000680: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n+00000690: 6e5f 6465 706c 6f79 3e0a 2020 3c2f 7072  n_deploy>.  </pr\n+000006a0: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+000006b0: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+000006c0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000006f0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000700: 6966 6163 7449 643e 6475 6262 6f2d 7270  ifactId>dubbo-rp\n+00000710: 632d 6170 693c 2f61 7274 6966 6163 7449  c-api</artifactI\n+00000720: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000730: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000740: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000750: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000760: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000770: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000780: 6772 6f75 7049 643e 6a61 7661 782e 6361  groupId>javax.ca\n+00000790: 6368 653c 2f67 726f 7570 4964 3e0a 2020  che</groupId>.  \n+000007a0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007b0: 6361 6368 652d 6170 693c 2f61 7274 6966  cache-api</artif\n+000007c0: 6163 7449 643e 0a20 2020 203c 2f64 6570  actId>.    </dep\n+000007d0: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+000007e0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+000007f0: 3c67 726f 7570 4964 3e63 6f6d 2e68 617a  <groupId>com.haz\n+00000800: 656c 6361 7374 3c2f 6772 6f75 7049 643e  elcast</groupId>\n+00000810: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000820: 4964 3e68 617a 656c 6361 7374 3c2f 6172  Id>hazelcast</ar\n+00000830: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000840: 3c76 6572 7369 6f6e 3e24 7b68 617a 656c  <version>${hazel\n+00000850: 6361 7374 5f76 6572 7369 6f6e 7d3c 2f76  cast_version}</v\n+00000860: 6572 7369 6f6e 3e0a 2020 2020 2020 3c73  ersion>.      <s\n+00000870: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000880: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000890: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+000008a0: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+000008b0: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-filter-validation/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-filter-validation/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,194 +1,189 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d66 696c 7465 723c 2f61 7274 6966  bo-filter</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d66  tifactId>dubbo-f\n-00000510: 696c 7465 722d 7661 6c69 6461 7469 6f6e  ilter-validation\n-00000520: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000530: 203c 7665 7273 696f 6e3e 322e 372e 3130   <version>2.7.10\n-00000540: 3c2f 7665 7273 696f 6e3e 0d0a 2020 3c6e  </version>..  <n\n-00000550: 616d 653e 247b 7072 6f6a 6563 742e 6172  ame>${project.ar\n-00000560: 7469 6661 6374 4964 7d3c 2f6e 616d 653e  tifactId}</name>\n-00000570: 0d0a 2020 3c64 6573 6372 6970 7469 6f6e  ..  <description\n-00000580: 3e54 6865 2076 616c 6964 6174 696f 6e20  >The validation \n-00000590: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n-000005a0: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n-000005b0: 7469 6f6e 3e0d 0a20 203c 6c69 6365 6e73  tion>..  <licens\n-000005c0: 6573 3e0d 0a20 2020 203c 6c69 6365 6e73  es>..    <licens\n-000005d0: 653e 0d0a 2020 2020 2020 3c6e 616d 653e  e>..      <name>\n-000005e0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-000005f0: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n-00000600: 653e 0d0a 2020 2020 2020 3c75 726c 3e68  e>..      <url>h\n-00000610: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n-00000620: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n-00000630: 4345 4e53 452d 322e 303c 2f75 726c 3e0d  CENSE-2.0</url>.\n-00000640: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n-00000650: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n-00000660: 6962 7574 696f 6e3e 0d0a 2020 2020 3c2f  ibution>..    </\n-00000670: 6c69 6365 6e73 653e 0d0a 2020 3c2f 6c69  license>..  </li\n-00000680: 6365 6e73 6573 3e0d 0a20 203c 7072 6f70  censes>..  <prop\n-00000690: 6572 7469 6573 3e0d 0a20 2020 203c 736b  erties>..    <sk\n-000006a0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006b0: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n-000006c0: 6e5f 6465 706c 6f79 3e0d 0a20 203c 2f70  n_deploy>..  </p\n-000006d0: 726f 7065 7274 6965 733e 0d0a 2020 3c64  roperties>..  <d\n-000006e0: 6570 656e 6465 6e63 6965 733e 0d0a 2020  ependencies>..  \n-000006f0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000700: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000710: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000720: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000730: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000740: 626f 2d72 7063 2d61 7069 3c2f 6172 7469  bo-rpc-api</arti\n-00000750: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000760: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000770: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000780: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000790: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007a0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000007b0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000007c0: 3e6a 6176 6178 2e76 616c 6964 6174 696f  >javax.validatio\n-000007d0: 6e3c 2f67 726f 7570 4964 3e0d 0a20 2020  n</groupId>..   \n-000007e0: 2020 203c 6172 7469 6661 6374 4964 3e76     <artifactId>v\n-000007f0: 616c 6964 6174 696f 6e2d 6170 693c 2f61  alidation-api</a\n-00000800: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000810: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000820: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000830: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000840: 6f72 672e 6869 6265 726e 6174 653c 2f67  org.hibernate</g\n-00000850: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000860: 6172 7469 6661 6374 4964 3e68 6962 6572  artifactId>hiber\n-00000870: 6e61 7465 2d76 616c 6964 6174 6f72 3c2f  nate-validator</\n-00000880: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000890: 2020 203c 7665 7273 696f 6e3e 247b 6869     <version>${hi\n-000008a0: 6265 726e 6174 655f 7661 6c69 6461 746f  bernate_validato\n-000008b0: 725f 7665 7273 696f 6e7d 3c2f 7665 7273  r_version}</vers\n-000008c0: 696f 6e3e 0d0a 2020 2020 2020 3c73 636f  ion>..      <sco\n-000008d0: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-000008e0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000008f0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000900: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000910: 7570 4964 3e6a 6176 6178 2e65 6c3c 2f67  upId>javax.el</g\n-00000920: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000930: 6172 7469 6661 6374 4964 3e6a 6176 6178  artifactId>javax\n-00000940: 2e65 6c2d 6170 693c 2f61 7274 6966 6163  .el-api</artifac\n-00000950: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000960: 7369 6f6e 3e24 7b65 6c5f 6170 695f 7665  sion>${el_api_ve\n-00000970: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000980: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000990: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-000009a0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000009b0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000009c0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000009d0: 3e6a 6176 6178 2e78 6d6c 2e62 696e 643c  >javax.xml.bind<\n-000009e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000009f0: 203c 6172 7469 6661 6374 4964 3e6a 6178   <artifactId>jax\n-00000a00: 622d 6170 693c 2f61 7274 6966 6163 7449  b-api</artifactI\n-00000a10: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-00000a20: 6f6e 3e24 7b6a 6178 625f 6170 695f 7665  on>${jaxb_api_ve\n-00000a30: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000a40: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000a50: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000a60: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000a70: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000a80: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000a90: 3e63 6f6d 2e73 756e 2e78 6d6c 2e62 696e  >com.sun.xml.bin\n-00000aa0: 643c 2f67 726f 7570 4964 3e0d 0a20 2020  d</groupId>..   \n-00000ab0: 2020 203c 6172 7469 6661 6374 4964 3e6a     <artifactId>j\n-00000ac0: 6178 622d 696d 706c 3c2f 6172 7469 6661  axb-impl</artifa\n-00000ad0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000ae0: 7273 696f 6e3e 247b 6a61 7862 5f61 7069  rsion>${jaxb_api\n-00000af0: 5f76 6572 7369 6f6e 7d3c 2f76 6572 7369  _version}</versi\n-00000b00: 6f6e 3e0d 0a20 2020 2020 203c 7363 6f70  on>..      <scop\n-00000b10: 653e 7465 7374 3c2f 7363 6f70 653e 0d0a  e>test</scope>..\n-00000b20: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000b30: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000b40: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000b50: 7049 643e 636f 6d2e 7375 6e2e 786d 6c2e  pId>com.sun.xml.\n-00000b60: 6269 6e64 3c2f 6772 6f75 7049 643e 0d0a  bind</groupId>..\n-00000b70: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000b80: 643e 6a61 7862 2d63 6f72 653c 2f61 7274  d>jaxb-core</art\n-00000b90: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000ba0: 3c76 6572 7369 6f6e 3e24 7b6a 6178 625f  <version>${jaxb_\n-00000bb0: 6170 695f 7665 7273 696f 6e7d 3c2f 7665  api_version}</ve\n-00000bc0: 7273 696f 6e3e 0d0a 2020 2020 2020 3c73  rsion>..      <s\n-00000bd0: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n-00000be0: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000bf0: 6e63 793e 0d0a 2020 3c2f 6465 7065 6e64  ncy>..  </depend\n-00000c00: 656e 6369 6573 3e0d 0a3c 2f70 726f 6a65  encies>..</proje\n-00000c10: 6374 3e0d 0a                             ct>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d66 696c  factId>dubbo-fil\n+00000480: 7465 723c 2f61 7274 6966 6163 7449 643e  ter</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d66 696c 7465 722d 7661 6c69  ubbo-filter-vali\n+00000500: 6461 7469 6f6e 3c2f 6172 7469 6661 6374  dation</artifact\n+00000510: 4964 3e0a 2020 3c76 6572 7369 6f6e 3e32  Id>.  <version>2\n+00000520: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0a  .7.10</version>.\n+00000530: 2020 3c6e 616d 653e 247b 7072 6f6a 6563    <name>${projec\n+00000540: 742e 6172 7469 6661 6374 4964 7d3c 2f6e  t.artifactId}</n\n+00000550: 616d 653e 0a20 203c 6465 7363 7269 7074  ame>.  <descript\n+00000560: 696f 6e3e 5468 6520 7661 6c69 6461 7469  ion>The validati\n+00000570: 6f6e 206d 6f64 756c 6520 6f66 2064 7562  on module of dub\n+00000580: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n+00000590: 7269 7074 696f 6e3e 0a20 203c 6c69 6365  ription>.  <lice\n+000005a0: 6e73 6573 3e0a 2020 2020 3c6c 6963 656e  nses>.    <licen\n+000005b0: 7365 3e0a 2020 2020 2020 3c6e 616d 653e  se>.      <name>\n+000005c0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n+000005d0: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n+000005e0: 653e 0a20 2020 2020 203c 7572 6c3e 6874  e>.      <url>ht\n+000005f0: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n+00000600: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n+00000610: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0a20  ENSE-2.0</url>. \n+00000620: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n+00000630: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n+00000640: 7574 696f 6e3e 0a20 2020 203c 2f6c 6963  ution>.    </lic\n+00000650: 656e 7365 3e0a 2020 3c2f 6c69 6365 6e73  ense>.  </licens\n+00000660: 6573 3e0a 2020 3c70 726f 7065 7274 6965  es>.  <propertie\n+00000670: 733e 0a20 2020 203c 736b 6970 5f6d 6176  s>.    <skip_mav\n+00000680: 656e 5f64 6570 6c6f 793e 6661 6c73 653c  en_deploy>false<\n+00000690: 2f73 6b69 705f 6d61 7665 6e5f 6465 706c  /skip_maven_depl\n+000006a0: 6f79 3e0a 2020 3c2f 7072 6f70 6572 7469  oy>.  </properti\n+000006b0: 6573 3e0a 2020 3c64 6570 656e 6465 6e63  es>.  <dependenc\n+000006c0: 6965 733e 0a20 2020 203c 6465 7065 6e64  ies>.    <depend\n+000006d0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000006e0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+000006f0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+00000700: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000710: 643e 6475 6262 6f2d 7270 632d 6170 693c  d>dubbo-rpc-api<\n+00000720: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000730: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000740: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000750: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000760: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000770: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000780: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000790: 643e 6a61 7661 782e 7661 6c69 6461 7469  d>javax.validati\n+000007a0: 6f6e 3c2f 6772 6f75 7049 643e 0a20 2020  on</groupId>.   \n+000007b0: 2020 203c 6172 7469 6661 6374 4964 3e76     <artifactId>v\n+000007c0: 616c 6964 6174 696f 6e2d 6170 693c 2f61  alidation-api</a\n+000007d0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000007e0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000007f0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000800: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000810: 2e68 6962 6572 6e61 7465 3c2f 6772 6f75  .hibernate</grou\n+00000820: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000830: 6661 6374 4964 3e68 6962 6572 6e61 7465  factId>hibernate\n+00000840: 2d76 616c 6964 6174 6f72 3c2f 6172 7469  -validator</arti\n+00000850: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000860: 6572 7369 6f6e 3e24 7b68 6962 6572 6e61  ersion>${hiberna\n+00000870: 7465 5f76 616c 6964 6174 6f72 5f76 6572  te_validator_ver\n+00000880: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000890: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+000008a0: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+000008b0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000008c0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000008d0: 2020 203c 6772 6f75 7049 643e 6a61 7661     <groupId>java\n+000008e0: 782e 656c 3c2f 6772 6f75 7049 643e 0a20  x.el</groupId>. \n+000008f0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000900: 3e6a 6176 6178 2e65 6c2d 6170 693c 2f61  >javax.el-api</a\n+00000910: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000920: 203c 7665 7273 696f 6e3e 247b 656c 5f61   <version>${el_a\n+00000930: 7069 5f76 6572 7369 6f6e 7d3c 2f76 6572  pi_version}</ver\n+00000940: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000950: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000960: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000970: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000980: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000990: 643e 6a61 7661 782e 786d 6c2e 6269 6e64  d>javax.xml.bind\n+000009a0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000009b0: 203c 6172 7469 6661 6374 4964 3e6a 6178   <artifactId>jax\n+000009c0: 622d 6170 693c 2f61 7274 6966 6163 7449  b-api</artifactI\n+000009d0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000009e0: 6e3e 247b 6a61 7862 5f61 7069 5f76 6572  n>${jaxb_api_ver\n+000009f0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000a00: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+00000a10: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+00000a20: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000a30: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000a40: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n+00000a50: 7375 6e2e 786d 6c2e 6269 6e64 3c2f 6772  sun.xml.bind</gr\n+00000a60: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000a70: 7469 6661 6374 4964 3e6a 6178 622d 696d  tifactId>jaxb-im\n+00000a80: 706c 3c2f 6172 7469 6661 6374 4964 3e0a  pl</artifactId>.\n+00000a90: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000aa0: 7b6a 6178 625f 6170 695f 7665 7273 696f  {jaxb_api_versio\n+00000ab0: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000ac0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+00000ad0: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+00000ae0: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+00000af0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000b00: 3c67 726f 7570 4964 3e63 6f6d 2e73 756e  <groupId>com.sun\n+00000b10: 2e78 6d6c 2e62 696e 643c 2f67 726f 7570  .xml.bind</group\n+00000b20: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000b30: 6163 7449 643e 6a61 7862 2d63 6f72 653c  actId>jaxb-core<\n+00000b40: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000b50: 2020 203c 7665 7273 696f 6e3e 247b 6a61     <version>${ja\n+00000b60: 7862 5f61 7069 5f76 6572 7369 6f6e 7d3c  xb_api_version}<\n+00000b70: 2f76 6572 7369 6f6e 3e0a 2020 2020 2020  /version>.      \n+00000b80: 3c73 636f 7065 3e74 6573 743c 2f73 636f  <scope>test</sco\n+00000b90: 7065 3e0a 2020 2020 3c2f 6465 7065 6e64  pe>.    </depend\n+00000ba0: 656e 6379 3e0a 2020 3c2f 6465 7065 6e64  ency>.  </depend\n+00000bb0: 656e 6369 6573 3e0a 3c2f 7072 6f6a 6563  encies>.</projec\n+00000bc0: 743e 0a                                  t>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,192 +1,187 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d6d 6574 6164 6174 613c 2f61 7274  bo-metadata</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d6d 6574 6164 6174 612d 6170 693c 2f61  -metadata-api</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n-00000560: 6170 693c 2f6e 616d 653e 0d0a 2020 3c64  api</name>..  <d\n-00000570: 6573 6372 6970 7469 6f6e 3e54 6865 206d  escription>The m\n-00000580: 6574 6164 6174 6120 6d6f 6475 6c65 206f  etadata module o\n-00000590: 6620 4475 6262 6f20 7072 6f6a 6563 743c  f Dubbo project<\n-000005a0: 2f64 6573 6372 6970 7469 6f6e 3e0d 0a20  /description>.. \n-000005b0: 203c 6c69 6365 6e73 6573 3e0d 0a20 2020   <licenses>..   \n-000005c0: 203c 6c69 6365 6e73 653e 0d0a 2020 2020   <license>..    \n-000005d0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n-000005e0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n-000005f0: 322e 303c 2f6e 616d 653e 0d0a 2020 2020  2.0</name>..    \n-00000600: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n-00000610: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n-00000620: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n-00000630: 303c 2f75 726c 3e0d 0a20 2020 2020 203c  0</url>..      <\n-00000640: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n-00000650: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n-00000660: 0d0a 2020 2020 3c2f 6c69 6365 6e73 653e  ..    </license>\n-00000670: 0d0a 2020 3c2f 6c69 6365 6e73 6573 3e0d  ..  </licenses>.\n-00000680: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n-00000690: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-000006a0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-000006b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-000006c0: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-000006d0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-000006e0: 643e 6475 6262 6f2d 7270 632d 6170 693c  d>dubbo-rpc-api<\n-000006f0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000700: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-00000710: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n-00000720: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000730: 0d0a 2020 2020 2020 3c6f 7074 696f 6e61  ..      <optiona\n-00000740: 6c3e 7472 7565 3c2f 6f70 7469 6f6e 616c  l>true</optional\n-00000750: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000760: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000770: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000780: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000790: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000007a0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000007b0: 6374 4964 3e64 7562 626f 2d63 6c75 7374  ctId>dubbo-clust\n-000007c0: 6572 3c2f 6172 7469 6661 6374 4964 3e0d  er</artifactId>.\n-000007d0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-000007e0: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-000007f0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-00000800: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-00000810: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000820: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000830: 3c67 726f 7570 4964 3e63 6f6d 2e67 6f6f  <groupId>com.goo\n-00000840: 676c 652e 636f 6465 2e67 736f 6e3c 2f67  gle.code.gson</g\n-00000850: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000860: 6172 7469 6661 6374 4964 3e67 736f 6e3c  artifactId>gson<\n-00000870: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000880: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000890: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000008a0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000008b0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000008c0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-000008d0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000008e0: 6475 6262 6f2d 636f 6e66 6967 6365 6e74  dubbo-configcent\n-000008f0: 6572 2d7a 6f6f 6b65 6570 6572 3c2f 6172  er-zookeeper</ar\n-00000900: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000910: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-00000920: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-00000930: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000940: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000950: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000960: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000970: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000980: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000990: 672e 6170 6163 6865 2e63 7572 6174 6f72  g.apache.curator\n-000009a0: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-000009b0: 2020 3c61 7274 6966 6163 7449 643e 6375    <artifactId>cu\n-000009c0: 7261 746f 722d 7465 7374 3c2f 6172 7469  rator-test</arti\n-000009d0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000009e0: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-000009f0: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000a00: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000a10: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000a20: 6772 6f75 7049 643e 6a61 7661 782e 7773  groupId>javax.ws\n-00000a30: 2e72 733c 2f67 726f 7570 4964 3e0d 0a20  .rs</groupId>.. \n-00000a40: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000a50: 3e6a 6176 6178 2e77 732e 7273 2d61 7069  >javax.ws.rs-api\n-00000a60: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000a70: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000a80: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000a90: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000aa0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000ab0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000ac0: 672e 7370 7269 6e67 6672 616d 6577 6f72  g.springframewor\n-00000ad0: 6b3c 2f67 726f 7570 4964 3e0d 0a20 2020  k</groupId>..   \n-00000ae0: 2020 203c 6172 7469 6661 6374 4964 3e73     <artifactId>s\n-00000af0: 7072 696e 672d 7765 623c 2f61 7274 6966  pring-web</artif\n-00000b00: 6163 7449 643e 0d0a 2020 2020 2020 3c73  actId>..      <s\n-00000b10: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n-00000b20: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000b30: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000b40: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000b50: 726f 7570 4964 3e6f 7267 2e73 7072 696e  roupId>org.sprin\n-00000b60: 6766 7261 6d65 776f 726b 3c2f 6772 6f75  gframework</grou\n-00000b70: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000b80: 6966 6163 7449 643e 7370 7269 6e67 2d63  ifactId>spring-c\n-00000b90: 6f6e 7465 7874 3c2f 6172 7469 6661 6374  ontext</artifact\n-00000ba0: 4964 3e0d 0a20 2020 2020 203c 7363 6f70  Id>..      <scop\n-00000bb0: 653e 7465 7374 3c2f 7363 6f70 653e 0d0a  e>test</scope>..\n-00000bc0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000bd0: 3e0d 0a20 203c 2f64 6570 656e 6465 6e63  >..  </dependenc\n-00000be0: 6965 733e 0d0a 3c2f 7072 6f6a 6563 743e  ies>..</project>\n-00000bf0: 0d0a                                     ..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n+00000480: 6164 6174 613c 2f61 7274 6966 6163 7449  adata</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000500: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e64 7562 626f 2d6d 6574 6164  name>dubbo-metad\n+00000540: 6174 612d 6170 693c 2f6e 616d 653e 0a20  ata-api</name>. \n+00000550: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n+00000560: 6520 6d65 7461 6461 7461 206d 6f64 756c  e metadata modul\n+00000570: 6520 6f66 2044 7562 626f 2070 726f 6a65  e of Dubbo proje\n+00000580: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n+00000590: 0a20 203c 6c69 6365 6e73 6573 3e0a 2020  .  <licenses>.  \n+000005a0: 2020 3c6c 6963 656e 7365 3e0a 2020 2020    <license>.    \n+000005b0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n+000005c0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n+000005d0: 322e 303c 2f6e 616d 653e 0a20 2020 2020  2.0</name>.     \n+000005e0: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n+000005f0: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n+00000600: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n+00000610: 3c2f 7572 6c3e 0a20 2020 2020 203c 6469  </url>.      <di\n+00000620: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n+00000630: 2f64 6973 7472 6962 7574 696f 6e3e 0a20  /distribution>. \n+00000640: 2020 203c 2f6c 6963 656e 7365 3e0a 2020     </license>.  \n+00000650: 3c2f 6c69 6365 6e73 6573 3e0a 2020 3c64  </licenses>.  <d\n+00000660: 6570 656e 6465 6e63 6965 733e 0a20 2020  ependencies>.   \n+00000670: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000680: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000690: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+000006a0: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000006b0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+000006c0: 7270 632d 6170 693c 2f61 7274 6966 6163  rpc-api</artifac\n+000006d0: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+000006e0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+000006f0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000700: 6572 7369 6f6e 3e0a 2020 2020 2020 3c6f  ersion>.      <o\n+00000710: 7074 696f 6e61 6c3e 7472 7565 3c2f 6f70  ptional>true</op\n+00000720: 7469 6f6e 616c 3e0a 2020 2020 3c2f 6465  tional>.    </de\n+00000730: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000740: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000750: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000760: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000770: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000780: 6661 6374 4964 3e64 7562 626f 2d63 6c75  factId>dubbo-clu\n+00000790: 7374 6572 3c2f 6172 7469 6661 6374 4964  ster</artifactId\n+000007a0: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+000007b0: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000007c0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000007d0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000007e0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000007f0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000800: 726f 7570 4964 3e63 6f6d 2e67 6f6f 676c  roupId>com.googl\n+00000810: 652e 636f 6465 2e67 736f 6e3c 2f67 726f  e.code.gson</gro\n+00000820: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000830: 6966 6163 7449 643e 6773 6f6e 3c2f 6172  ifactId>gson</ar\n+00000840: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000870: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000880: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000890: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000008a0: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n+000008b0: 6f6e 6669 6763 656e 7465 722d 7a6f 6f6b  onfigcenter-zook\n+000008c0: 6565 7065 723c 2f61 7274 6966 6163 7449  eeper</artifactI\n+000008d0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000008e0: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+000008f0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000900: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000910: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000920: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000930: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000940: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000950: 643e 6f72 672e 6170 6163 6865 2e63 7572  d>org.apache.cur\n+00000960: 6174 6f72 3c2f 6772 6f75 7049 643e 0a20  ator</groupId>. \n+00000970: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000980: 3e63 7572 6174 6f72 2d74 6573 743c 2f61  >curator-test</a\n+00000990: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+000009a0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+000009b0: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+000009c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000009d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000009e0: 726f 7570 4964 3e6a 6176 6178 2e77 732e  roupId>javax.ws.\n+000009f0: 7273 3c2f 6772 6f75 7049 643e 0a20 2020  rs</groupId>.   \n+00000a00: 2020 203c 6172 7469 6661 6374 4964 3e6a     <artifactId>j\n+00000a10: 6176 6178 2e77 732e 7273 2d61 7069 3c2f  avax.ws.rs-api</\n+00000a20: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000a30: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n+00000a40: 636f 7065 3e0a 2020 2020 3c2f 6465 7065  cope>.    </depe\n+00000a50: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000a60: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000a70: 6772 6f75 7049 643e 6f72 672e 7370 7269  groupId>org.spri\n+00000a80: 6e67 6672 616d 6577 6f72 6b3c 2f67 726f  ngframework</gro\n+00000a90: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000aa0: 6966 6163 7449 643e 7370 7269 6e67 2d77  ifactId>spring-w\n+00000ab0: 6562 3c2f 6172 7469 6661 6374 4964 3e0a  eb</artifactId>.\n+00000ac0: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+00000ad0: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+00000ae0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000af0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000b00: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000b10: 7370 7269 6e67 6672 616d 6577 6f72 6b3c  springframework<\n+00000b20: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000b30: 3c61 7274 6966 6163 7449 643e 7370 7269  <artifactId>spri\n+00000b40: 6e67 2d63 6f6e 7465 7874 3c2f 6172 7469  ng-context</arti\n+00000b50: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+00000b60: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000b70: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000b80: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000b90: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000ba0: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-consul/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,135 +1,131 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d6d 6574 6164 6174 613c 2f61 7274 6966  -metadata</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d6d  tifactId>dubbo-m\n-00000530: 6574 6164 6174 612d 7265 706f 7274 2d63  etadata-report-c\n-00000540: 6f6e 7375 6c3c 2f61 7274 6966 6163 7449  onsul</artifactI\n-00000550: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000560: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000570: 0a20 203c 6c69 6365 6e73 6573 3e0d 0a20  .  <licenses>.. \n-00000580: 2020 203c 6c69 6365 6e73 653e 0d0a 2020     <license>..  \n-00000590: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n-000005a0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-000005b0: 6e20 322e 303c 2f6e 616d 653e 0d0a 2020  n 2.0</name>..  \n-000005c0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n-000005d0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-000005e0: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-000005f0: 322e 303c 2f75 726c 3e0d 0a20 2020 2020  2.0</url>..     \n-00000600: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n-00000610: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n-00000620: 6e3e 0d0a 2020 2020 3c2f 6c69 6365 6e73  n>..    </licens\n-00000630: 653e 0d0a 2020 3c2f 6c69 6365 6e73 6573  e>..  </licenses\n-00000640: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-00000650: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000660: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000670: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000680: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000690: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000006a0: 7449 643e 6475 6262 6f2d 6d65 7461 6461  tId>dubbo-metada\n-000006b0: 7461 2d61 7069 3c2f 6172 7469 6661 6374  ta-api</artifact\n-000006c0: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-000006d0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-000006e0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-000006f0: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000700: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000710: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000720: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000730: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000740: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000750: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000760: 2d63 6f6e 6669 6763 656e 7465 722d 636f  -configcenter-co\n-00000770: 6e73 756c 3c2f 6172 7469 6661 6374 4964  nsul</artifactId\n-00000780: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000790: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-000007a0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-000007b0: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-000007c0: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-000007d0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007e0: 2020 3c67 726f 7570 4964 3e63 6f6d 2e65    <groupId>com.e\n-000007f0: 6377 6964 2e63 6f6e 7375 6c3c 2f67 726f  cwid.consul</gro\n-00000800: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000810: 7469 6661 6374 4964 3e63 6f6e 7375 6c2d  tifactId>consul-\n-00000820: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n-00000830: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000840: 6379 3e0d 0a20 203c 2f64 6570 656e 6465  cy>..  </depende\n-00000850: 6e63 6965 733e 0d0a 3c2f 7072 6f6a 6563  ncies>..</projec\n-00000860: 743e 0d0a                                t>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n+000004a0: 6174 613c 2f61 7274 6966 6163 7449 643e  ata</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d6d 6574 6164 6174 612d 7265  ubbo-metadata-re\n+00000520: 706f 7274 2d63 6f6e 7375 6c3c 2f61 7274  port-consul</art\n+00000530: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000540: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000550: 696f 6e3e 0a20 203c 6c69 6365 6e73 6573  ion>.  <licenses\n+00000560: 3e0a 2020 2020 3c6c 6963 656e 7365 3e0a  >.    <license>.\n+00000570: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n+00000580: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n+00000590: 696f 6e20 322e 303c 2f6e 616d 653e 0a20  ion 2.0</name>. \n+000005a0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n+000005b0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n+000005c0: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n+000005d0: 2d32 2e30 3c2f 7572 6c3e 0a20 2020 2020  -2.0</url>.     \n+000005e0: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n+000005f0: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n+00000600: 6e3e 0a20 2020 203c 2f6c 6963 656e 7365  n>.    </license\n+00000610: 3e0a 2020 3c2f 6c69 6365 6e73 6573 3e0a  >.  </licenses>.\n+00000620: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n+00000630: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000640: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000650: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000660: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000670: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000680: 6262 6f2d 6d65 7461 6461 7461 2d61 7069  bbo-metadata-api\n+00000690: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000006a0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000006b0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+000006c0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+000006d0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000006e0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000006f0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000700: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000710: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000720: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000730: 6475 6262 6f2d 636f 6e66 6967 6365 6e74  dubbo-configcent\n+00000740: 6572 2d63 6f6e 7375 6c3c 2f61 7274 6966  er-consul</artif\n+00000750: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000760: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000770: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000780: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000790: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000007a0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000007b0: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n+000007c0: 6563 7769 642e 636f 6e73 756c 3c2f 6772  ecwid.consul</gr\n+000007d0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007e0: 7469 6661 6374 4964 3e63 6f6e 7375 6c2d  tifactId>consul-\n+000007f0: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000800: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000810: 793e 0a20 203c 2f64 6570 656e 6465 6e63  y>.  </dependenc\n+00000820: 6965 733e 0a3c 2f70 726f 6a65 6374 3e0a  ies>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-etcd/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,167 +1,162 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d6d 6574 6164 6174 613c 2f61 7274 6966  -metadata</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d6d  tifactId>dubbo-m\n-00000530: 6574 6164 6174 612d 7265 706f 7274 2d65  etadata-report-e\n-00000540: 7463 643c 2f61 7274 6966 6163 7449 643e  tcd</artifactId>\n-00000550: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000560: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000570: 203c 6c69 6365 6e73 6573 3e0d 0a20 2020   <licenses>..   \n-00000580: 203c 6c69 6365 6e73 653e 0d0a 2020 2020   <license>..    \n-00000590: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n-000005a0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n-000005b0: 322e 303c 2f6e 616d 653e 0d0a 2020 2020  2.0</name>..    \n-000005c0: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n-000005d0: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n-000005e0: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n-000005f0: 303c 2f75 726c 3e0d 0a20 2020 2020 203c  0</url>..      <\n-00000600: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n-00000610: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n-00000620: 0d0a 2020 2020 3c2f 6c69 6365 6e73 653e  ..    </license>\n-00000630: 0d0a 2020 3c2f 6c69 6365 6e73 6573 3e0d  ..  </licenses>.\n-00000640: 0a20 203c 7072 6f70 6572 7469 6573 3e0d  .  <properties>.\n-00000650: 0a20 2020 203c 736b 6970 496e 7465 6772  .    <skipIntegr\n-00000660: 6174 696f 6e54 6573 7473 3e74 7275 653c  ationTests>true<\n-00000670: 2f73 6b69 7049 6e74 6567 7261 7469 6f6e  /skipIntegration\n-00000680: 5465 7374 733e 0d0a 2020 3c2f 7072 6f70  Tests>..  </prop\n-00000690: 6572 7469 6573 3e0d 0a20 203c 6465 7065  erties>..  <depe\n-000006a0: 6e64 656e 6369 6573 3e0d 0a20 2020 203c  ndencies>..    <\n-000006b0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000006c0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000006d0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000006e0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000006f0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000700: 6d65 7461 6461 7461 2d61 7069 3c2f 6172  metadata-api</ar\n-00000710: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000720: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-00000730: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-00000740: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000750: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000760: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000770: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000780: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000790: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-000007a0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000007b0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n-000007c0: 6574 6364 333c 2f61 7274 6966 6163 7449  etcd3</artifactI\n-000007d0: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-000007e0: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-000007f0: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-00000800: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-00000810: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000820: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000830: 2020 203c 6772 6f75 7049 643e 696f 2e65     <groupId>io.e\n-00000840: 7463 643c 2f67 726f 7570 4964 3e0d 0a20  tcd</groupId>.. \n-00000850: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000860: 3e6a 6574 6364 2d6c 6175 6e63 6865 723c  >jetcd-launcher<\n-00000870: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000880: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-00000890: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-000008a0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000008b0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000008c0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000008d0: 2e74 6573 7463 6f6e 7461 696e 6572 733c  .testcontainers<\n-000008e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000008f0: 203c 6172 7469 6661 6374 4964 3e74 6573   <artifactId>tes\n-00000900: 7463 6f6e 7461 696e 6572 733c 2f61 7274  tcontainers</art\n-00000910: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000920: 3c73 636f 7065 3e74 6573 743c 2f73 636f  <scope>test</sco\n-00000930: 7065 3e0d 0a20 2020 203c 2f64 6570 656e  pe>..    </depen\n-00000940: 6465 6e63 793e 0d0a 2020 3c2f 6465 7065  dency>..  </depe\n-00000950: 6e64 656e 6369 6573 3e0d 0a20 203c 6275  ndencies>..  <bu\n-00000960: 696c 643e 0d0a 2020 2020 3c70 6c75 6769  ild>..    <plugi\n-00000970: 6e73 3e0d 0a20 2020 2020 203c 706c 7567  ns>..      <plug\n-00000980: 696e 3e0d 0a20 2020 2020 2020 203c 6172  in>..        <ar\n-00000990: 7469 6661 6374 4964 3e6d 6176 656e 2d73  tifactId>maven-s\n-000009a0: 7572 6566 6972 652d 706c 7567 696e 3c2f  urefire-plugin</\n-000009b0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000009c0: 2020 2020 203c 636f 6e66 6967 7572 6174       <configurat\n-000009d0: 696f 6e3e 0d0a 2020 2020 2020 2020 2020  ion>..          \n-000009e0: 3c73 6b69 7054 6573 7473 3e24 7b73 6b69  <skipTests>${ski\n-000009f0: 7049 6e74 6567 7261 7469 6f6e 5465 7374  pIntegrationTest\n-00000a00: 737d 3c2f 736b 6970 5465 7374 733e 0d0a  s}</skipTests>..\n-00000a10: 2020 2020 2020 2020 3c2f 636f 6e66 6967          </config\n-00000a20: 7572 6174 696f 6e3e 0d0a 2020 2020 2020  uration>..      \n-00000a30: 3c2f 706c 7567 696e 3e0d 0a20 2020 203c  </plugin>..    <\n-00000a40: 2f70 6c75 6769 6e73 3e0d 0a20 203c 2f62  /plugins>..  </b\n-00000a50: 7569 6c64 3e0d 0a3c 2f70 726f 6a65 6374  uild>..</project\n-00000a60: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n+000004a0: 6174 613c 2f61 7274 6966 6163 7449 643e  ata</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d6d 6574 6164 6174 612d 7265  ubbo-metadata-re\n+00000520: 706f 7274 2d65 7463 643c 2f61 7274 6966  port-etcd</artif\n+00000530: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000550: 6e3e 0a20 203c 6c69 6365 6e73 6573 3e0a  n>.  <licenses>.\n+00000560: 2020 2020 3c6c 6963 656e 7365 3e0a 2020      <license>.  \n+00000570: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n+00000580: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n+00000590: 6e20 322e 303c 2f6e 616d 653e 0a20 2020  n 2.0</name>.   \n+000005a0: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n+000005b0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n+000005c0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n+000005d0: 2e30 3c2f 7572 6c3e 0a20 2020 2020 203c  .0</url>.      <\n+000005e0: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n+000005f0: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n+00000600: 0a20 2020 203c 2f6c 6963 656e 7365 3e0a  .    </license>.\n+00000610: 2020 3c2f 6c69 6365 6e73 6573 3e0a 2020    </licenses>.  \n+00000620: 3c70 726f 7065 7274 6965 733e 0a20 2020  <properties>.   \n+00000630: 203c 736b 6970 496e 7465 6772 6174 696f   <skipIntegratio\n+00000640: 6e54 6573 7473 3e74 7275 653c 2f73 6b69  nTests>true</ski\n+00000650: 7049 6e74 6567 7261 7469 6f6e 5465 7374  pIntegrationTest\n+00000660: 733e 0a20 203c 2f70 726f 7065 7274 6965  s>.  </propertie\n+00000670: 733e 0a20 203c 6465 7065 6e64 656e 6369  s>.  <dependenci\n+00000680: 6573 3e0a 2020 2020 3c64 6570 656e 6465  es>.    <depende\n+00000690: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006a0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000006b0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000006c0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+000006d0: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+000006e0: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+000006f0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000700: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000710: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000720: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+00000730: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000740: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000750: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+00000760: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000770: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000780: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+00000790: 672d 6574 6364 333c 2f61 7274 6966 6163  g-etcd3</artifac\n+000007a0: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+000007b0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+000007c0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+000007d0: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+000007e0: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+000007f0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000800: 203c 6772 6f75 7049 643e 696f 2e65 7463   <groupId>io.etc\n+00000810: 643c 2f67 726f 7570 4964 3e0a 2020 2020  d</groupId>.    \n+00000820: 2020 3c61 7274 6966 6163 7449 643e 6a65    <artifactId>je\n+00000830: 7463 642d 6c61 756e 6368 6572 3c2f 6172  tcd-launcher</ar\n+00000840: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000850: 3c73 636f 7065 3e74 6573 743c 2f73 636f  <scope>test</sco\n+00000860: 7065 3e0a 2020 2020 3c2f 6465 7065 6e64  pe>.    </depend\n+00000870: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000880: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000890: 6f75 7049 643e 6f72 672e 7465 7374 636f  oupId>org.testco\n+000008a0: 6e74 6169 6e65 7273 3c2f 6772 6f75 7049  ntainers</groupI\n+000008b0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+000008c0: 6374 4964 3e74 6573 7463 6f6e 7461 696e  ctId>testcontain\n+000008d0: 6572 733c 2f61 7274 6966 6163 7449 643e  ers</artifactId>\n+000008e0: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n+000008f0: 7374 3c2f 7363 6f70 653e 0a20 2020 203c  st</scope>.    <\n+00000900: 2f64 6570 656e 6465 6e63 793e 0a20 203c  /dependency>.  <\n+00000910: 2f64 6570 656e 6465 6e63 6965 733e 0a20  /dependencies>. \n+00000920: 203c 6275 696c 643e 0a20 2020 203c 706c   <build>.    <pl\n+00000930: 7567 696e 733e 0a20 2020 2020 203c 706c  ugins>.      <pl\n+00000940: 7567 696e 3e0a 2020 2020 2020 2020 3c61  ugin>.        <a\n+00000950: 7274 6966 6163 7449 643e 6d61 7665 6e2d  rtifactId>maven-\n+00000960: 7375 7265 6669 7265 2d70 6c75 6769 6e3c  surefire-plugin<\n+00000970: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000980: 2020 2020 203c 636f 6e66 6967 7572 6174       <configurat\n+00000990: 696f 6e3e 0a20 2020 2020 2020 2020 203c  ion>.          <\n+000009a0: 736b 6970 5465 7374 733e 247b 736b 6970  skipTests>${skip\n+000009b0: 496e 7465 6772 6174 696f 6e54 6573 7473  IntegrationTests\n+000009c0: 7d3c 2f73 6b69 7054 6573 7473 3e0a 2020  }</skipTests>.  \n+000009d0: 2020 2020 2020 3c2f 636f 6e66 6967 7572        </configur\n+000009e0: 6174 696f 6e3e 0a20 2020 2020 203c 2f70  ation>.      </p\n+000009f0: 6c75 6769 6e3e 0a20 2020 203c 2f70 6c75  lugin>.    </plu\n+00000a00: 6769 6e73 3e0a 2020 3c2f 6275 696c 643e  gins>.  </build>\n+00000a10: 0a3c 2f70 726f 6a65 6374 3e0a            .</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-failover/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,113 +1,111 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 2d2d 3e0d 0a3c 7072  ense... -->..<pr\n-00000350: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n-00000360: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n-00000370: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n-00000380: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n-00000390: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n-000003a0: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n-000003b0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n-000003c0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n-000003d0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n-000003e0: 2e30 220d 0a20 2020 2078 6d6c 6e73 3a78  .0\"..    xmlns:x\n-000003f0: 7369 3d22 6874 7470 3a2f 2f77 7777 2e77  si=\"http://www.w\n-00000400: 332e 6f72 672f 3230 3031 2f58 4d4c 5363  3.org/2001/XMLSc\n-00000410: 6865 6d61 2d69 6e73 7461 6e63 6522 3e0d  hema-instance\">.\n-00000420: 0a20 203c 6d6f 6465 6c56 6572 7369 6f6e  .  <modelVersion\n-00000430: 3e34 2e30 2e30 3c2f 6d6f 6465 6c56 6572  >4.0.0</modelVer\n-00000440: 7369 6f6e 3e0d 0a20 203c 7061 7265 6e74  sion>..  <parent\n-00000450: 3e0d 0a20 2020 203c 6772 6f75 7049 643e  >..    <groupId>\n-00000460: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000470: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000480: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000490: 6f2d 6d65 7461 6461 7461 3c2f 6172 7469  o-metadata</arti\n-000004a0: 6661 6374 4964 3e0d 0a20 2020 203c 7665  factId>..    <ve\n-000004b0: 7273 696f 6e3e 322e 372e 3130 3c2f 7665  rsion>2.7.10</ve\n-000004c0: 7273 696f 6e3e 0d0a 2020 3c2f 7061 7265  rsion>..  </pare\n-000004d0: 6e74 3e0d 0a20 203c 6772 6f75 7049 643e  nt>..  <groupId>\n-000004e0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-000004f0: 3c2f 6772 6f75 7049 643e 0d0a 2020 3c61  </groupId>..  <a\n-00000500: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000510: 6d65 7461 6461 7461 2d72 6570 6f72 742d  metadata-report-\n-00000520: 6661 696c 6f76 6572 3c2f 6172 7469 6661  failover</artifa\n-00000530: 6374 4964 3e0d 0a20 203c 7665 7273 696f  ctId>..  <versio\n-00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-00000550: 6e3e 0d0a 2020 3c6c 6963 656e 7365 733e  n>..  <licenses>\n-00000560: 0d0a 2020 2020 3c6c 6963 656e 7365 3e0d  ..    <license>.\n-00000570: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n-00000580: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n-00000590: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d  sion 2.0</name>.\n-000005a0: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n-000005b0: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n-000005c0: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n-000005d0: 5345 2d32 2e30 3c2f 7572 6c3e 0d0a 2020  SE-2.0</url>..  \n-000005e0: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n-000005f0: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n-00000600: 7469 6f6e 3e0d 0a20 2020 203c 2f6c 6963  tion>..    </lic\n-00000610: 656e 7365 3e0d 0a20 203c 2f6c 6963 656e  ense>..  </licen\n-00000620: 7365 733e 0d0a 2020 3c64 6570 656e 6465  ses>..  <depende\n-00000630: 6e63 6965 733e 0d0a 2020 2020 3c64 6570  ncies>..    <dep\n-00000640: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000650: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-00000660: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-00000670: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000680: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n-00000690: 6164 6174 612d 6170 693c 2f61 7274 6966  adata-api</artif\n-000006a0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000006b0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-000006c0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-000006d0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000006e0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-000006f0: 203c 2f64 6570 656e 6465 6e63 6965 733e   </dependencies>\n-00000700: 0d0a 3c2f 7072 6f6a 6563 743e 0d0a       ..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 2d2d 3e0a 3c70 726f  cense.. -->.<pro\n+00000340: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n+00000350: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n+00000360: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n+00000370: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n+00000380: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n+00000390: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n+000003a0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n+000003b0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n+000003c0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n+000003d0: 3022 0a20 2020 2078 6d6c 6e73 3a78 7369  0\".    xmlns:xsi\n+000003e0: 3d22 6874 7470 3a2f 2f77 7777 2e77 332e  =\"http://www.w3.\n+000003f0: 6f72 672f 3230 3031 2f58 4d4c 5363 6865  org/2001/XMLSche\n+00000400: 6d61 2d69 6e73 7461 6e63 6522 3e0a 2020  ma-instance\">.  \n+00000410: 3c6d 6f64 656c 5665 7273 696f 6e3e 342e  <modelVersion>4.\n+00000420: 302e 303c 2f6d 6f64 656c 5665 7273 696f  0.0</modelVersio\n+00000430: 6e3e 0a20 203c 7061 7265 6e74 3e0a 2020  n>.  <parent>.  \n+00000440: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000450: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000460: 7570 4964 3e0a 2020 2020 3c61 7274 6966  upId>.    <artif\n+00000470: 6163 7449 643e 6475 6262 6f2d 6d65 7461  actId>dubbo-meta\n+00000480: 6461 7461 3c2f 6172 7469 6661 6374 4964  data</artifactId\n+00000490: 3e0a 2020 2020 3c76 6572 7369 6f6e 3e32  >.    <version>2\n+000004a0: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0a  .7.10</version>.\n+000004b0: 2020 3c2f 7061 7265 6e74 3e0a 2020 3c67    </parent>.  <g\n+000004c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000004d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+000004e0: 3e0a 2020 3c61 7274 6966 6163 7449 643e  >.  <artifactId>\n+000004f0: 6475 6262 6f2d 6d65 7461 6461 7461 2d72  dubbo-metadata-r\n+00000500: 6570 6f72 742d 6661 696c 6f76 6572 3c2f  eport-failover</\n+00000510: 6172 7469 6661 6374 4964 3e0a 2020 3c76  artifactId>.  <v\n+00000520: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n+00000530: 6572 7369 6f6e 3e0a 2020 3c6c 6963 656e  ersion>.  <licen\n+00000540: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+00000550: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+00000560: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+00000570: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+00000580: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+00000590: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+000005a0: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+000005b0: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+000005c0: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+000005d0: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+000005e0: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+000005f0: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000600: 733e 0a20 203c 6465 7065 6e64 656e 6369  s>.  <dependenci\n+00000610: 6573 3e0a 2020 2020 3c64 6570 656e 6465  es>.    <depende\n+00000620: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000630: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+00000640: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000650: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000660: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000670: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000680: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000690: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+000006a0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+000006b0: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+000006c0: 656e 6379 3e0a 2020 3c2f 6465 7065 6e64  ency>.  </depend\n+000006d0: 656e 6369 6573 3e0a 3c2f 7072 6f6a 6563  encies>.</projec\n+000006e0: 743e 0a                                  t>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-nacos/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,127 +1,124 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d6d 6574 6164 6174 613c 2f61 7274 6966  -metadata</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d6d  tifactId>dubbo-m\n-00000530: 6574 6164 6174 612d 7265 706f 7274 2d6e  etadata-report-n\n-00000540: 6163 6f73 3c2f 6172 7469 6661 6374 4964  acos</artifactId\n-00000550: 3e0d 0a20 203c 7665 7273 696f 6e3e 322e  >..  <version>2.\n-00000560: 372e 3130 3c2f 7665 7273 696f 6e3e 0d0a  7.10</version>..\n-00000570: 2020 3c6c 6963 656e 7365 733e 0d0a 2020    <licenses>..  \n-00000580: 2020 3c6c 6963 656e 7365 3e0d 0a20 2020    <license>..   \n-00000590: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n-000005a0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n-000005b0: 2032 2e30 3c2f 6e61 6d65 3e0d 0a20 2020   2.0</name>..   \n-000005c0: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n-000005d0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000005e0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-000005f0: 2e30 3c2f 7572 6c3e 0d0a 2020 2020 2020  .0</url>..      \n-00000600: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n-00000610: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n-00000620: 3e0d 0a20 2020 203c 2f6c 6963 656e 7365  >..    </license\n-00000630: 3e0d 0a20 203c 2f6c 6963 656e 7365 733e  >..  </licenses>\n-00000640: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-00000650: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-00000660: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000670: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000680: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000690: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000006a0: 4964 3e64 7562 626f 2d6d 6574 6164 6174  Id>dubbo-metadat\n-000006b0: 612d 6170 693c 2f61 7274 6966 6163 7449  a-api</artifactI\n-000006c0: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-000006d0: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-000006e0: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-000006f0: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-00000700: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000710: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000720: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000730: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000740: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000750: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000760: 636f 6e66 6967 6365 6e74 6572 2d6e 6163  configcenter-nac\n-00000770: 6f73 3c2f 6172 7469 6661 6374 4964 3e0d  os</artifactId>.\n-00000780: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000790: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-000007a0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-000007b0: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000007c0: 6465 6e63 793e 0d0a 2020 3c2f 6465 7065  dency>..  </depe\n-000007d0: 6e64 656e 6369 6573 3e0d 0a3c 2f70 726f  ndencies>..</pro\n-000007e0: 6a65 6374 3e0d 0a                        ject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n+000004a0: 6174 613c 2f61 7274 6966 6163 7449 643e  ata</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d6d 6574 6164 6174 612d 7265  ubbo-metadata-re\n+00000520: 706f 7274 2d6e 6163 6f73 3c2f 6172 7469  port-nacos</arti\n+00000530: 6661 6374 4964 3e0a 2020 3c76 6572 7369  factId>.  <versi\n+00000540: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+00000550: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+00000560: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+00000570: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+00000580: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+00000590: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005a0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+000005b0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+000005c0: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+000005d0: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+000005e0: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+000005f0: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000600: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000610: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000620: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+00000630: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000640: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000650: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000660: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000670: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000680: 626f 2d6d 6574 6164 6174 612d 6170 693c  bo-metadata-api<\n+00000690: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000006a0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+000006b0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+000006c0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+000006d0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+000006e0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+000006f0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000700: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000710: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000720: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000730: 7562 626f 2d63 6f6e 6669 6763 656e 7465  ubbo-configcente\n+00000740: 722d 6e61 636f 733c 2f61 7274 6966 6163  r-nacos</artifac\n+00000750: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000760: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000770: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000780: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000790: 7065 6e64 656e 6379 3e0a 2020 3c2f 6465  pendency>.  </de\n+000007a0: 7065 6e64 656e 6369 6573 3e0a 3c2f 7072  pendencies>.</pr\n+000007b0: 6f6a 6563 743e 0a                        oject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-redis/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,149 +1,146 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d6d 6574 6164 6174 613c 2f61 7274  bo-metadata</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d6d 6574 6164 6174 612d 7265 706f 7274  -metadata-report\n-00000520: 2d72 6564 6973 3c2f 6172 7469 6661 6374  -redis</artifact\n-00000530: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000540: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000550: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-00000560: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-00000570: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-00000580: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-00000590: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-000005a0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-000005b0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-000005c0: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-000005d0: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-000005e0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-000005f0: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000600: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000610: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000620: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-00000630: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-00000640: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000650: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000660: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000670: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000680: 6374 4964 3e64 7562 626f 2d6d 6574 6164  ctId>dubbo-metad\n-00000690: 6174 612d 6170 693c 2f61 7274 6966 6163  ata-api</artifac\n-000006a0: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-000006b0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-000006c0: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-000006d0: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-000006e0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000006f0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000700: 2020 2020 203c 6772 6f75 7049 643e 7265       <groupId>re\n-00000710: 6469 732e 636c 6965 6e74 733c 2f67 726f  dis.clients</gro\n-00000720: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000730: 7469 6661 6374 4964 3e6a 6564 6973 3c2f  tifactId>jedis</\n-00000740: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000750: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000760: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000770: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000780: 3e6f 7267 2e61 7061 6368 652e 6375 7261  >org.apache.cura\n-00000790: 746f 723c 2f67 726f 7570 4964 3e0d 0a20  tor</groupId>.. \n-000007a0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000007b0: 3e63 7572 6174 6f72 2d74 6573 743c 2f61  >curator-test</a\n-000007c0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000007d0: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-000007e0: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-000007f0: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000800: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000810: 2020 3c67 726f 7570 4964 3e63 6f6d 2e67    <groupId>com.g\n-00000820: 6974 6875 622e 6b73 7479 7263 3c2f 6772  ithub.kstyrc</gr\n-00000830: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000840: 7274 6966 6163 7449 643e 656d 6265 6464  rtifactId>embedd\n-00000850: 6564 2d72 6564 6973 3c2f 6172 7469 6661  ed-redis</artifa\n-00000860: 6374 4964 3e0d 0a20 2020 2020 203c 7363  ctId>..      <sc\n-00000870: 6f70 653e 7465 7374 3c2f 7363 6f70 653e  ope>test</scope>\n-00000880: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000890: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-000008a0: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-000008b0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000008c0: 2e63 6f6d 6d6f 6e73 3c2f 6772 6f75 7049  .commons</groupI\n-000008d0: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-000008e0: 6163 7449 643e 636f 6d6d 6f6e 732d 6c61  actId>commons-la\n-000008f0: 6e67 333c 2f61 7274 6966 6163 7449 643e  ng3</artifactId>\n-00000900: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000910: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000920: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000930: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000940: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n+00000480: 6164 6174 613c 2f61 7274 6966 6163 7449  adata</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000500: 7265 706f 7274 2d72 6564 6973 3c2f 6172  report-redis</ar\n+00000510: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000520: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000530: 7369 6f6e 3e0a 2020 3c6c 6963 656e 7365  sion>.  <license\n+00000540: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+00000550: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+00000560: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000570: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+00000580: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+00000590: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+000005a0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+000005b0: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+000005c0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+000005d0: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+000005e0: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+000005f0: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000600: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+00000610: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000620: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000630: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000640: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000650: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000660: 7562 626f 2d6d 6574 6164 6174 612d 6170  ubbo-metadata-ap\n+00000670: 693c 2f61 7274 6966 6163 7449 643e 0a20  i</artifactId>. \n+00000680: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+00000690: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+000006a0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+000006b0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000006c0: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+000006d0: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006e0: 7049 643e 7265 6469 732e 636c 6965 6e74  pId>redis.client\n+000006f0: 733c 2f67 726f 7570 4964 3e0a 2020 2020  s</groupId>.    \n+00000700: 2020 3c61 7274 6966 6163 7449 643e 6a65    <artifactId>je\n+00000710: 6469 733c 2f61 7274 6966 6163 7449 643e  dis</artifactId>\n+00000720: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000730: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000740: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000750: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n+00000760: 7261 746f 723c 2f67 726f 7570 4964 3e0a  rator</groupId>.\n+00000770: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000780: 643e 6375 7261 746f 722d 7465 7374 3c2f  d>curator-test</\n+00000790: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000007a0: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n+000007b0: 636f 7065 3e0a 2020 2020 3c2f 6465 7065  cope>.    </depe\n+000007c0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000007d0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000007e0: 6772 6f75 7049 643e 636f 6d2e 6769 7468  groupId>com.gith\n+000007f0: 7562 2e6b 7374 7972 633c 2f67 726f 7570  ub.kstyrc</group\n+00000800: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000810: 6163 7449 643e 656d 6265 6464 6564 2d72  actId>embedded-r\n+00000820: 6564 6973 3c2f 6172 7469 6661 6374 4964  edis</artifactId\n+00000830: 3e0a 2020 2020 2020 3c73 636f 7065 3e74  >.      <scope>t\n+00000840: 6573 743c 2f73 636f 7065 3e0a 2020 2020  est</scope>.    \n+00000850: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000860: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000870: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000880: 672e 6170 6163 6865 2e63 6f6d 6d6f 6e73  g.apache.commons\n+00000890: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000008a0: 203c 6172 7469 6661 6374 4964 3e63 6f6d   <artifactId>com\n+000008b0: 6d6f 6e73 2d6c 616e 6733 3c2f 6172 7469  mons-lang3</arti\n+000008c0: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+000008d0: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+000008e0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000008f0: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000900: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000910: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-metadata-report-zookeeper/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,135 +1,132 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d6d 6574 6164 6174 613c 2f61 7274  bo-metadata</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d6d 6574 6164 6174 612d 7265 706f 7274  -metadata-report\n-00000520: 2d7a 6f6f 6b65 6570 6572 3c2f 6172 7469  -zookeeper</arti\n-00000530: 6661 6374 4964 3e0d 0a20 203c 7665 7273  factId>..  <vers\n-00000540: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n-00000550: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-00000560: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-00000570: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-00000580: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-00000590: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-000005a0: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-000005b0: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-000005c0: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-000005d0: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-000005e0: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-000005f0: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000600: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000610: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000620: 656e 7365 733e 0d0a 2020 3c64 6570 656e  enses>..  <depen\n-00000630: 6465 6e63 6965 733e 0d0a 2020 2020 3c64  dencies>..    <d\n-00000640: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000650: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000660: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-00000670: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000680: 7469 6661 6374 4964 3e64 7562 626f 2d6d  tifactId>dubbo-m\n-00000690: 6574 6164 6174 612d 6170 693c 2f61 7274  etadata-api</art\n-000006a0: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-000006b0: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-000006c0: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-000006d0: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-000006e0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000006f0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000700: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000710: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000720: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000730: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000740: 6475 6262 6f2d 636f 6e66 6967 6365 6e74  dubbo-configcent\n-00000750: 6572 2d7a 6f6f 6b65 6570 6572 3c2f 6172  er-zookeeper</ar\n-00000760: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000770: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-00000780: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-00000790: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-000007a0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-000007b0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000007c0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000007d0: 4964 3e6f 7267 2e61 7061 6368 652e 6375  Id>org.apache.cu\n-000007e0: 7261 746f 723c 2f67 726f 7570 4964 3e0d  rator</groupId>.\n-000007f0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000800: 4964 3e63 7572 6174 6f72 2d74 6573 743c  Id>curator-test<\n-00000810: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000820: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-00000830: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-00000840: 6570 656e 6465 6e63 793e 0d0a 2020 3c2f  ependency>..  </\n-00000850: 6465 7065 6e64 656e 6369 6573 3e0d 0a3c  dependencies>..<\n-00000860: 2f70 726f 6a65 6374 3e0d 0a              /project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6574  factId>dubbo-met\n+00000480: 6164 6174 613c 2f61 7274 6966 6163 7449  adata</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d6d 6574 6164 6174 612d  >dubbo-metadata-\n+00000500: 7265 706f 7274 2d7a 6f6f 6b65 6570 6572  report-zookeeper\n+00000510: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000520: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n+00000530: 2f76 6572 7369 6f6e 3e0a 2020 3c6c 6963  /version>.  <lic\n+00000540: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+00000550: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+00000560: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+00000570: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+00000580: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+00000590: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000005a0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000005b0: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+000005c0: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+000005d0: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+000005e0: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+000005f0: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000600: 7365 733e 0a20 203c 6465 7065 6e64 656e  ses>.  <dependen\n+00000610: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+00000620: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000630: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+00000640: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000650: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000660: 4964 3e64 7562 626f 2d6d 6574 6164 6174  Id>dubbo-metadat\n+00000670: 612d 6170 693c 2f61 7274 6966 6163 7449  a-api</artifactI\n+00000680: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000690: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+000006a0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+000006b0: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+000006c0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000006d0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000006e0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000006f0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000700: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000710: 6374 4964 3e64 7562 626f 2d63 6f6e 6669  ctId>dubbo-confi\n+00000720: 6763 656e 7465 722d 7a6f 6f6b 6565 7065  gcenter-zookeepe\n+00000730: 723c 2f61 7274 6966 6163 7449 643e 0a20  r</artifactId>. \n+00000740: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+00000750: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+00000760: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+00000770: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000780: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000790: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000007a0: 7049 643e 6f72 672e 6170 6163 6865 2e63  pId>org.apache.c\n+000007b0: 7572 6174 6f72 3c2f 6772 6f75 7049 643e  urator</groupId>\n+000007c0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000007d0: 4964 3e63 7572 6174 6f72 2d74 6573 743c  Id>curator-test<\n+000007e0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000007f0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+00000800: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+00000810: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+00000820: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+00000830: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-monitor-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-monitor-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,151 +1,147 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a2d 2d3e 0d0a 3c70 726f  ense...-->..<pro\n-00000350: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000360: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000370: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-00000380: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-00000390: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003a0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003b0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003c0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003d0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-000003e0: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-000003f0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000400: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000410: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000420: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000430: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000440: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000450: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000460: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000470: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-00000480: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000490: 2d6d 6f6e 6974 6f72 3c2f 6172 7469 6661  -monitor</artifa\n-000004a0: 6374 4964 3e0d 0a20 2020 203c 7665 7273  ctId>..    <vers\n-000004b0: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n-000004c0: 696f 6e3e 0d0a 2020 3c2f 7061 7265 6e74  ion>..  </parent\n-000004d0: 3e0d 0a20 203c 6772 6f75 7049 643e 6f72  >..  <groupId>or\n-000004e0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-000004f0: 6772 6f75 7049 643e 0d0a 2020 3c61 7274  groupId>..  <art\n-00000500: 6966 6163 7449 643e 6475 6262 6f2d 6d6f  ifactId>dubbo-mo\n-00000510: 6e69 746f 722d 6170 693c 2f61 7274 6966  nitor-api</artif\n-00000520: 6163 7449 643e 0d0a 2020 3c76 6572 7369  actId>..  <versi\n-00000530: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-00000540: 6f6e 3e0d 0a20 203c 6e61 6d65 3e24 7b70  on>..  <name>${p\n-00000550: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n-00000560: 647d 3c2f 6e61 6d65 3e0d 0a20 203c 6465  d}</name>..  <de\n-00000570: 7363 7269 7074 696f 6e3e 5468 6520 6d6f  scription>The mo\n-00000580: 6e69 746f 7220 6d6f 6475 6c65 206f 6620  nitor module of \n-00000590: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n-000005a0: 6573 6372 6970 7469 6f6e 3e0d 0a20 203c  escription>..  <\n-000005b0: 6c69 6365 6e73 6573 3e0d 0a20 2020 203c  licenses>..    <\n-000005c0: 6c69 6365 6e73 653e 0d0a 2020 2020 2020  license>..      \n-000005d0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n-000005e0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n-000005f0: 303c 2f6e 616d 653e 0d0a 2020 2020 2020  0</name>..      \n-00000600: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n-00000610: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n-00000620: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n-00000630: 2f75 726c 3e0d 0a20 2020 2020 203c 6469  /url>..      <di\n-00000640: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n-00000650: 2f64 6973 7472 6962 7574 696f 6e3e 0d0a  /distribution>..\n-00000660: 2020 2020 3c2f 6c69 6365 6e73 653e 0d0a      </license>..\n-00000670: 2020 3c2f 6c69 6365 6e73 6573 3e0d 0a20    </licenses>.. \n-00000680: 203c 7072 6f70 6572 7469 6573 3e0d 0a20   <properties>.. \n-00000690: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n-000006a0: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n-000006b0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0d  p_maven_deploy>.\n-000006c0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n-000006d0: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-000006e0: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-000006f0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000700: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000710: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000720: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000730: 4964 3e64 7562 626f 2d72 7063 2d61 7069  Id>dubbo-rpc-api\n-00000740: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000750: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000760: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000770: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000780: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000790: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007b0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007c0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000007d0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000007e0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n-000007f0: 696e 672d 6e65 7474 7934 3c2f 6172 7469  ing-netty4</arti\n-00000800: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000810: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000820: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000830: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000840: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000850: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000860: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000870: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000880: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000890: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000008a0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000008b0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-000008c0: 7365 7269 616c 697a 6174 696f 6e2d 6865  serialization-he\n-000008d0: 7373 6961 6e32 3c2f 6172 7469 6661 6374  ssian2</artifact\n-000008e0: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-000008f0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000900: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000910: 6572 7369 6f6e 3e0d 0a20 2020 2020 203c  ersion>..      <\n-00000920: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-00000930: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000940: 656e 6379 3e0d 0a20 203c 2f64 6570 656e  ency>..  </depen\n-00000950: 6465 6e63 6965 733e 0d0a 3c2f 7072 6f6a  dencies>..</proj\n-00000960: 6563 743e 0d0a                           ect>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a2d 2d3e 0a3c 7072 6f6a  cense..-->.<proj\n+00000340: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000350: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000360: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000370: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+00000380: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+00000390: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003a0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003b0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003c0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003d0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+000003e0: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+000003f0: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000400: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000410: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000420: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000430: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000440: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000450: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000460: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000470: 6374 4964 3e64 7562 626f 2d6d 6f6e 6974  ctId>dubbo-monit\n+00000480: 6f72 3c2f 6172 7469 6661 6374 4964 3e0a  or</artifactId>.\n+00000490: 2020 2020 3c76 6572 7369 6f6e 3e32 2e37      <version>2.7\n+000004a0: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+000004b0: 3c2f 7061 7265 6e74 3e0a 2020 3c67 726f  </parent>.  <gro\n+000004c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+000004d0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+000004e0: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+000004f0: 6262 6f2d 6d6f 6e69 746f 722d 6170 693c  bbo-monitor-api<\n+00000500: 2f61 7274 6966 6163 7449 643e 0a20 203c  /artifactId>.  <\n+00000510: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n+00000520: 7665 7273 696f 6e3e 0a20 203c 6e61 6d65  version>.  <name\n+00000530: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n+00000540: 6163 7449 647d 3c2f 6e61 6d65 3e0a 2020  actId}</name>.  \n+00000550: 3c64 6573 6372 6970 7469 6f6e 3e54 6865  <description>The\n+00000560: 206d 6f6e 6974 6f72 206d 6f64 756c 6520   monitor module \n+00000570: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n+00000580: 3c2f 6465 7363 7269 7074 696f 6e3e 0a20  </description>. \n+00000590: 203c 6c69 6365 6e73 6573 3e0a 2020 2020   <licenses>.    \n+000005a0: 3c6c 6963 656e 7365 3e0a 2020 2020 2020  <license>.      \n+000005b0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n+000005c0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n+000005d0: 303c 2f6e 616d 653e 0a20 2020 2020 203c  0</name>.      <\n+000005e0: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n+000005f0: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n+00000600: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n+00000610: 7572 6c3e 0a20 2020 2020 203c 6469 7374  url>.      <dist\n+00000620: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n+00000630: 6973 7472 6962 7574 696f 6e3e 0a20 2020  istribution>.   \n+00000640: 203c 2f6c 6963 656e 7365 3e0a 2020 3c2f   </license>.  </\n+00000650: 6c69 6365 6e73 6573 3e0a 2020 3c70 726f  licenses>.  <pro\n+00000660: 7065 7274 6965 733e 0a20 2020 203c 736b  perties>.    <sk\n+00000670: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000680: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n+00000690: 6e5f 6465 706c 6f79 3e0a 2020 3c2f 7072  n_deploy>.  </pr\n+000006a0: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+000006b0: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+000006c0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000006f0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000700: 6966 6163 7449 643e 6475 6262 6f2d 7270  ifactId>dubbo-rp\n+00000710: 632d 6170 693c 2f61 7274 6966 6163 7449  c-api</artifactI\n+00000720: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000730: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000740: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000750: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000760: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000770: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000780: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000790: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000007a0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+000007b0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n+000007c0: 696e 672d 6e65 7474 7934 3c2f 6172 7469  ing-netty4</arti\n+000007d0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+000007e0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+000007f0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000800: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+00000810: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+00000820: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+00000830: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000840: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000850: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000860: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000870: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000880: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n+00000890: 697a 6174 696f 6e2d 6865 7373 6961 6e32  ization-hessian2\n+000008a0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000008b0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000008c0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+000008d0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+000008e0: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n+000008f0: 7374 3c2f 7363 6f70 653e 0a20 2020 203c  st</scope>.    <\n+00000900: 2f64 6570 656e 6465 6e63 793e 0a20 203c  /dependency>.  <\n+00000910: 2f64 6570 656e 6465 6e63 6965 733e 0a3c  /dependencies>.<\n+00000920: 2f70 726f 6a65 6374 3e0a                 /project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-monitor-default/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-monitor-default/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,199 +1,194 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d6d 6f6e 6974 6f72 3c2f 6172 7469  bo-monitor</arti\n-000004a0: 6661 6374 4964 3e0d 0a20 2020 203c 7665  factId>..    <ve\n-000004b0: 7273 696f 6e3e 322e 372e 3130 3c2f 7665  rsion>2.7.10</ve\n-000004c0: 7273 696f 6e3e 0d0a 2020 3c2f 7061 7265  rsion>..  </pare\n-000004d0: 6e74 3e0d 0a20 203c 6772 6f75 7049 643e  nt>..  <groupId>\n-000004e0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-000004f0: 3c2f 6772 6f75 7049 643e 0d0a 2020 3c61  </groupId>..  <a\n-00000500: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000510: 6d6f 6e69 746f 722d 6465 6661 756c 743c  monitor-default<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 6465 6661 756c 7420 6d6f 6e69  The default moni\n-00000590: 746f 7220 6d6f 6475 6c65 206f 6620 6475  tor module of du\n-000005a0: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n-000005b0: 6372 6970 7469 6f6e 3e0d 0a20 203c 6c69  cription>..  <li\n-000005c0: 6365 6e73 6573 3e0d 0a20 2020 203c 6c69  censes>..    <li\n-000005d0: 6365 6e73 653e 0d0a 2020 2020 2020 3c6e  cense>..      <n\n-000005e0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n-000005f0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n-00000600: 2f6e 616d 653e 0d0a 2020 2020 2020 3c75  /name>..      <u\n-00000610: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n-00000620: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n-00000630: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n-00000640: 726c 3e0d 0a20 2020 2020 203c 6469 7374  rl>..      <dist\n-00000650: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n-00000660: 6973 7472 6962 7574 696f 6e3e 0d0a 2020  istribution>..  \n-00000670: 2020 3c2f 6c69 6365 6e73 653e 0d0a 2020    </license>..  \n-00000680: 3c2f 6c69 6365 6e73 6573 3e0d 0a20 203c  </licenses>..  <\n-00000690: 7072 6f70 6572 7469 6573 3e0d 0a20 2020  properties>..   \n-000006a0: 203c 736b 6970 5f6d 6176 656e 5f64 6570   <skip_maven_dep\n-000006b0: 6c6f 793e 6661 6c73 653c 2f73 6b69 705f  loy>false</skip_\n-000006c0: 6d61 7665 6e5f 6465 706c 6f79 3e0d 0a20  maven_deploy>.. \n-000006d0: 203c 2f70 726f 7065 7274 6965 733e 0d0a   </properties>..\n-000006e0: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n-000006f0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000700: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000710: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000720: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000730: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000740: 3e64 7562 626f 2d6d 6f6e 6974 6f72 2d61  >dubbo-monitor-a\n-00000750: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-00000760: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000770: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000780: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-00000790: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-000007b0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-000007c0: 3c67 726f 7570 4964 3e63 6f6d 2e61 6c69  <groupId>com.ali\n-000007d0: 6261 6261 2e6d 6964 646c 6577 6172 653c  baba.middleware<\n-000007e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007f0: 203c 6172 7469 6661 6374 4964 3e6d 6574   <artifactId>met\n-00000800: 7269 6373 2d63 6f72 652d 6170 693c 2f61  rics-core-api</a\n-00000810: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000820: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000830: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000840: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000850: 636f 6d2e 616c 6962 6162 612e 6d69 6464  com.alibaba.midd\n-00000860: 6c65 7761 7265 3c2f 6772 6f75 7049 643e  leware</groupId>\n-00000870: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000880: 7449 643e 6d65 7472 6963 732d 636f 7265  tId>metrics-core\n-00000890: 2d69 6d70 6c3c 2f61 7274 6966 6163 7449  -impl</artifactI\n-000008a0: 643e 0d0a 2020 2020 3c2f 6465 7065 6e64  d>..    </depend\n-000008b0: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-000008c0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-000008d0: 6772 6f75 7049 643e 636f 6d2e 616c 6962  groupId>com.alib\n-000008e0: 6162 612e 6d69 6464 6c65 7761 7265 3c2f  aba.middleware</\n-000008f0: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000900: 3c61 7274 6966 6163 7449 643e 6d65 7472  <artifactId>metr\n-00000910: 6963 732d 636f 6d6d 6f6e 3c2f 6172 7469  ics-common</arti\n-00000920: 6661 6374 4964 3e0d 0a20 2020 203c 2f64  factId>..    </d\n-00000930: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000940: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000950: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000960: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000970: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000980: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000990: 2d72 7063 2d64 7562 626f 3c2f 6172 7469  -rpc-dubbo</arti\n-000009a0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000009b0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-000009c0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-000009d0: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000009e0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-000009f0: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000a00: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000a10: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000a20: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000a30: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000a40: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000a50: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000a60: 7265 6d6f 7469 6e67 2d6e 6574 7479 343c  remoting-netty4<\n-00000a70: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000a80: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-00000a90: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n-00000aa0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000ab0: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000ac0: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000ad0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000ae0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000af0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000b00: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000b10: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000b20: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000b30: 7562 626f 2d73 6572 6961 6c69 7a61 7469  ubbo-serializati\n-00000b40: 6f6e 2d68 6573 7369 616e 323c 2f61 7274  on-hessian2</art\n-00000b50: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000b60: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000b70: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000b80: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000b90: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-00000ba0: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-00000bb0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000bc0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000bd0: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n-00000be0: 2e67 6f6f 676c 652e 636f 6465 2e67 736f  .google.code.gso\n-00000bf0: 6e3c 2f67 726f 7570 4964 3e0d 0a20 2020  n</groupId>..   \n-00000c00: 2020 203c 6172 7469 6661 6374 4964 3e67     <artifactId>g\n-00000c10: 736f 6e3c 2f61 7274 6966 6163 7449 643e  son</artifactId>\n-00000c20: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000c30: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000c40: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000c50: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000c60: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d6d 6f6e  factId>dubbo-mon\n+00000480: 6974 6f72 3c2f 6172 7469 6661 6374 4964  itor</artifactId\n+00000490: 3e0a 2020 2020 3c76 6572 7369 6f6e 3e32  >.    <version>2\n+000004a0: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0a  .7.10</version>.\n+000004b0: 2020 3c2f 7061 7265 6e74 3e0a 2020 3c67    </parent>.  <g\n+000004c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000004d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+000004e0: 3e0a 2020 3c61 7274 6966 6163 7449 643e  >.  <artifactId>\n+000004f0: 6475 6262 6f2d 6d6f 6e69 746f 722d 6465  dubbo-monitor-de\n+00000500: 6661 756c 743c 2f61 7274 6966 6163 7449  fault</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 2064 6566 6175 6c74 206d  on>The default m\n+00000570: 6f6e 6974 6f72 206d 6f64 756c 6520 6f66  onitor module of\n+00000580: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n+00000590: 6465 7363 7269 7074 696f 6e3e 0a20 203c  description>.  <\n+000005a0: 6c69 6365 6e73 6573 3e0a 2020 2020 3c6c  licenses>.    <l\n+000005b0: 6963 656e 7365 3e0a 2020 2020 2020 3c6e  icense>.      <n\n+000005c0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n+000005d0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n+000005e0: 2f6e 616d 653e 0a20 2020 2020 203c 7572  /name>.      <ur\n+000005f0: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n+00000600: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+00000610: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n+00000620: 6c3e 0a20 2020 2020 203c 6469 7374 7269  l>.      <distri\n+00000630: 6275 7469 6f6e 3e72 6570 6f3c 2f64 6973  bution>repo</dis\n+00000640: 7472 6962 7574 696f 6e3e 0a20 2020 203c  tribution>.    <\n+00000650: 2f6c 6963 656e 7365 3e0a 2020 3c2f 6c69  /license>.  </li\n+00000660: 6365 6e73 6573 3e0a 2020 3c70 726f 7065  censes>.  <prope\n+00000670: 7274 6965 733e 0a20 2020 203c 736b 6970  rties>.    <skip\n+00000680: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n+00000690: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n+000006a0: 6465 706c 6f79 3e0a 2020 3c2f 7072 6f70  deploy>.  </prop\n+000006b0: 6572 7469 6573 3e0a 2020 3c64 6570 656e  erties>.  <depen\n+000006c0: 6465 6e63 6965 733e 0a20 2020 203c 6465  dencies>.    <de\n+000006d0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+000006e0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000006f0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+00000700: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000710: 6163 7449 643e 6475 6262 6f2d 6d6f 6e69  actId>dubbo-moni\n+00000720: 746f 722d 6170 693c 2f61 7274 6966 6163  tor-api</artifac\n+00000730: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000740: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000750: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000760: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000770: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000780: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000790: 203c 6772 6f75 7049 643e 636f 6d2e 616c   <groupId>com.al\n+000007a0: 6962 6162 612e 6d69 6464 6c65 7761 7265  ibaba.middleware\n+000007b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007c0: 203c 6172 7469 6661 6374 4964 3e6d 6574   <artifactId>met\n+000007d0: 7269 6373 2d63 6f72 652d 6170 693c 2f61  rics-core-api</a\n+000007e0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000007f0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000800: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000810: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n+00000820: 2e61 6c69 6261 6261 2e6d 6964 646c 6577  .alibaba.middlew\n+00000830: 6172 653c 2f67 726f 7570 4964 3e0a 2020  are</groupId>.  \n+00000840: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000850: 6d65 7472 6963 732d 636f 7265 2d69 6d70  metrics-core-imp\n+00000860: 6c3c 2f61 7274 6966 6163 7449 643e 0a20  l</artifactId>. \n+00000870: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000880: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000890: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000008a0: 3e63 6f6d 2e61 6c69 6261 6261 2e6d 6964  >com.alibaba.mid\n+000008b0: 646c 6577 6172 653c 2f67 726f 7570 4964  dleware</groupId\n+000008c0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000008d0: 7449 643e 6d65 7472 6963 732d 636f 6d6d  tId>metrics-comm\n+000008e0: 6f6e 3c2f 6172 7469 6661 6374 4964 3e0a  on</artifactId>.\n+000008f0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000900: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000910: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000920: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000930: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000940: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000950: 7562 626f 2d72 7063 2d64 7562 626f 3c2f  ubbo-rpc-dubbo</\n+00000960: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000970: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000980: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000990: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+000009a0: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+000009b0: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+000009c0: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+000009d0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000009e0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000009f0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000a00: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000a10: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n+00000a20: 6d6f 7469 6e67 2d6e 6574 7479 343c 2f61  moting-netty4</a\n+00000a30: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000a40: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000a50: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000a60: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000a70: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n+00000a80: 2f73 636f 7065 3e0a 2020 2020 3c2f 6465  /scope>.    </de\n+00000a90: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000aa0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000ab0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000ac0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000ad0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000ae0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n+00000af0: 6961 6c69 7a61 7469 6f6e 2d68 6573 7369  ialization-hessi\n+00000b00: 616e 323c 2f61 7274 6966 6163 7449 643e  an2</artifactId>\n+00000b10: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000b20: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000b30: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000b40: 6f6e 3e0a 2020 2020 2020 3c73 636f 7065  on>.      <scope\n+00000b50: 3e74 6573 743c 2f73 636f 7065 3e0a 2020  >test</scope>.  \n+00000b60: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000b70: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000b80: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000b90: 636f 6d2e 676f 6f67 6c65 2e63 6f64 652e  com.google.code.\n+00000ba0: 6773 6f6e 3c2f 6772 6f75 7049 643e 0a20  gson</groupId>. \n+00000bb0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000bc0: 3e67 736f 6e3c 2f61 7274 6966 6163 7449  >gson</artifactI\n+00000bd0: 643e 0a20 2020 2020 203c 7363 6f70 653e  d>.      <scope>\n+00000be0: 7465 7374 3c2f 7363 6f70 653e 0a20 2020  test</scope>.   \n+00000bf0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000c00: 203c 2f64 6570 656e 6465 6e63 6965 733e   </dependencies>\n+00000c10: 0a3c 2f70 726f 6a65 6374 3e0a            .</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-qos/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,185 +1,180 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d70 6c75 6769 6e3c 2f61 7274 6966  bo-plugin</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d71  tifactId>dubbo-q\n-00000510: 6f73 3c2f 6172 7469 6661 6374 4964 3e0d  os</artifactId>.\n-00000520: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n-00000530: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-00000540: 3c6e 616d 653e 6475 6262 6f2d 716f 733c  <name>dubbo-qos<\n-00000550: 2f6e 616d 653e 0d0a 2020 3c6c 6963 656e  /name>..  <licen\n-00000560: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-00000570: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-00000580: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-00000590: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-000005a0: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-000005b0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-000005c0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-000005d0: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-000005e0: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-000005f0: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000600: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000610: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000620: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000630: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-00000640: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-00000650: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-00000660: 656e 5f64 6570 6c6f 793e 0d0a 2020 2020  en_deploy>..    \n-00000670: 3c70 726f 6a65 6374 2e62 7569 6c64 2e73  <project.build.s\n-00000680: 6f75 7263 6545 6e63 6f64 696e 673e 5554  ourceEncoding>UT\n-00000690: 462d 383c 2f70 726f 6a65 6374 2e62 7569  F-8</project.bui\n-000006a0: 6c64 2e73 6f75 7263 6545 6e63 6f64 696e  ld.sourceEncodin\n-000006b0: 673e 0d0a 2020 3c2f 7072 6f70 6572 7469  g>..  </properti\n-000006c0: 6573 3e0d 0a20 203c 6465 7065 6e64 656e  es>..  <dependen\n-000006d0: 6369 6573 3e0d 0a20 2020 203c 6465 7065  cies>..    <depe\n-000006e0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-000006f0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000700: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000710: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000720: 6163 7449 643e 6475 6262 6f2d 636f 6d6d  actId>dubbo-comm\n-00000730: 6f6e 3c2f 6172 7469 6661 6374 4964 3e0d  on</artifactId>.\n-00000740: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000750: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n-00000760: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000770: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000780: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000790: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000007a0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-000007b0: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-000007c0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000007d0: 6475 6262 6f2d 7265 6769 7374 7279 2d61  dubbo-registry-a\n-000007e0: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-000007f0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000800: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n-00000810: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000820: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000830: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000840: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000850: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000860: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000870: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000880: 6475 6262 6f2d 636f 6e66 6967 2d61 7069  dubbo-config-api\n-00000890: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000008a0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-000008b0: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n-000008c0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000008d0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-000008e0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-000008f0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000900: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000910: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000920: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000930: 6262 6f2d 7270 632d 6475 6262 6f3c 2f61  bbo-rpc-dubbo</a\n-00000940: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000950: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000960: 6a65 6374 2e76 6572 7369 6f6e 7d3c 2f76  ject.version}</v\n-00000970: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000980: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000990: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000009a0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000009b0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000009c0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000009d0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000009e0: 2d72 656d 6f74 696e 672d 6e65 7474 7934  -remoting-netty4\n-000009f0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000a00: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000a10: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n-00000a20: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000a30: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000a40: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000a50: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000a60: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000a70: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000a80: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000a90: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n-00000aa0: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n-00000ab0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000ac0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000ad0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000ae0: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-00000af0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000b00: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000b10: 203c 6772 6f75 7049 643e 696f 2e6e 6574   <groupId>io.net\n-00000b20: 7479 3c2f 6772 6f75 7049 643e 0d0a 2020  ty</groupId>..  \n-00000b30: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000b40: 6e65 7474 792d 616c 6c3c 2f61 7274 6966  netty-all</artif\n-00000b50: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000b60: 7065 6e64 656e 6379 3e0d 0a20 203c 2f64  pendency>..  </d\n-00000b70: 6570 656e 6465 6e63 6965 733e 0d0a 3c2f  ependencies>..</\n-00000b80: 7072 6f6a 6563 743e 0d0a                 project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d70 6c75  factId>dubbo-plu\n+00000480: 6769 6e3c 2f61 7274 6966 6163 7449 643e  gin</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d71 6f73 3c2f 6172 7469 6661  ubbo-qos</artifa\n+00000500: 6374 4964 3e0a 2020 3c76 6572 7369 6f6e  ctId>.  <version\n+00000510: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+00000520: 3e0a 2020 3c6e 616d 653e 6475 6262 6f2d  >.  <name>dubbo-\n+00000530: 716f 733c 2f6e 616d 653e 0a20 203c 6c69  qos</name>.  <li\n+00000540: 6365 6e73 6573 3e0a 2020 2020 3c6c 6963  censes>.    <lic\n+00000550: 656e 7365 3e0a 2020 2020 2020 3c6e 616d  ense>.      <nam\n+00000560: 653e 4170 6163 6865 204c 6963 656e 7365  e>Apache License\n+00000570: 2c20 5665 7273 696f 6e20 322e 303c 2f6e  , Version 2.0</n\n+00000580: 616d 653e 0a20 2020 2020 203c 7572 6c3e  ame>.      <url>\n+00000590: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000005a0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+000005b0: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n+000005c0: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n+000005d0: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n+000005e0: 6962 7574 696f 6e3e 0a20 2020 203c 2f6c  ibution>.    </l\n+000005f0: 6963 656e 7365 3e0a 2020 3c2f 6c69 6365  icense>.  </lice\n+00000600: 6e73 6573 3e0a 2020 3c70 726f 7065 7274  nses>.  <propert\n+00000610: 6965 733e 0a20 2020 203c 736b 6970 5f6d  ies>.    <skip_m\n+00000620: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n+00000630: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n+00000640: 706c 6f79 3e0a 2020 2020 3c70 726f 6a65  ploy>.    <proje\n+00000650: 6374 2e62 7569 6c64 2e73 6f75 7263 6545  ct.build.sourceE\n+00000660: 6e63 6f64 696e 673e 5554 462d 383c 2f70  ncoding>UTF-8</p\n+00000670: 726f 6a65 6374 2e62 7569 6c64 2e73 6f75  roject.build.sou\n+00000680: 7263 6545 6e63 6f64 696e 673e 0a20 203c  rceEncoding>.  <\n+00000690: 2f70 726f 7065 7274 6965 733e 0a20 203c  /properties>.  <\n+000006a0: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+000006b0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006c0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000006d0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+000006e0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000006f0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000700: 2d63 6f6d 6d6f 6e3c 2f61 7274 6966 6163  -common</artifac\n+00000710: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000720: 696f 6e3e 247b 7072 6f6a 6563 742e 7665  ion>${project.ve\n+00000730: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000740: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000750: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000760: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000770: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000780: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000790: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007a0: 6475 6262 6f2d 7265 6769 7374 7279 2d61  dubbo-registry-a\n+000007b0: 7069 3c2f 6172 7469 6661 6374 4964 3e0a  pi</artifactId>.\n+000007c0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+000007d0: 7b70 726f 6a65 6374 2e76 6572 7369 6f6e  {project.version\n+000007e0: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+000007f0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000800: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000810: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000820: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+00000830: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000840: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000850: 2d63 6f6e 6669 672d 6170 693c 2f61 7274  -config-api</art\n+00000860: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000870: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000880: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000890: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000008a0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000008b0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000008c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000008d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+000008e0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000008f0: 7449 643e 6475 6262 6f2d 7270 632d 6475  tId>dubbo-rpc-du\n+00000900: 6262 6f3c 2f61 7274 6966 6163 7449 643e  bbo</artifactId>\n+00000910: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000920: 247b 7072 6f6a 6563 742e 7665 7273 696f  ${project.versio\n+00000930: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000940: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000950: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000960: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000970: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000980: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000990: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000009a0: 6f2d 7265 6d6f 7469 6e67 2d6e 6574 7479  o-remoting-netty\n+000009b0: 343c 2f61 7274 6966 6163 7449 643e 0a20  4</artifactId>. \n+000009c0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+000009d0: 7072 6f6a 6563 742e 7665 7273 696f 6e7d  project.version}\n+000009e0: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+000009f0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000a00: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000a10: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000a20: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000a30: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000a40: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+00000a50: 7365 7269 616c 697a 6174 696f 6e2d 6865  serialization-he\n+00000a60: 7373 6961 6e32 3c2f 6172 7469 6661 6374  ssian2</artifact\n+00000a70: 4964 3e0a 2020 2020 2020 3c76 6572 7369  Id>.      <versi\n+00000a80: 6f6e 3e24 7b70 726f 6a65 6374 2e76 6572  on>${project.ver\n+00000a90: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000aa0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000ab0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000ac0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000ad0: 643e 696f 2e6e 6574 7479 3c2f 6772 6f75  d>io.netty</grou\n+00000ae0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000af0: 6661 6374 4964 3e6e 6574 7479 2d61 6c6c  factId>netty-all\n+00000b00: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000b10: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000b20: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n+00000b30: 3e0a 3c2f 7072 6f6a 6563 743e 0a         >.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-api/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -50,20 +50,20 @@\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-container-api</artifactId>\n       <version>${project.parent.version}</version>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jetty-server</artifactId>\n           <groupId>org.eclipse.jetty</groupId>\n+          <artifactId>jetty-server</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>jetty-servlet</artifactId>\n           <groupId>org.eclipse.jetty</groupId>\n+          <artifactId>jetty-servlet</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-api</artifactId>\n       <version>${project.parent.version}</version>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-consul/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-consul/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,154 +1,150 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d72 6567 6973 7472 793c 2f61 7274 6966  -registry</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000530: 6567 6973 7472 792d 636f 6e73 756c 3c2f  egistry-consul</\n-00000540: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000550: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000560: 7665 7273 696f 6e3e 0d0a 2020 3c6c 6963  version>..  <lic\n-00000570: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-00000580: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-00000590: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005a0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-000005b0: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-000005c0: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-000005d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-000005e0: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-000005f0: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000600: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000610: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000620: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000630: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000640: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-00000650: 3c73 6b69 7049 6e74 6567 7261 7469 6f6e  <skipIntegration\n-00000660: 5465 7374 733e 7472 7565 3c2f 736b 6970  Tests>true</skip\n-00000670: 496e 7465 6772 6174 696f 6e54 6573 7473  IntegrationTests\n-00000680: 3e0d 0a20 203c 2f70 726f 7065 7274 6965  >..  </propertie\n-00000690: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-000006a0: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-000006b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000006c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000006d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000006e0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000006f0: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n-00000700: 7472 792d 6170 693c 2f61 7274 6966 6163  try-api</artifac\n-00000710: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000720: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000730: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000740: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000750: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000760: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000770: 2020 2020 203c 6772 6f75 7049 643e 636f       <groupId>co\n-00000780: 6d2e 6563 7769 642e 636f 6e73 756c 3c2f  m.ecwid.consul</\n-00000790: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-000007a0: 3c61 7274 6966 6163 7449 643e 636f 6e73  <artifactId>cons\n-000007b0: 756c 2d61 7069 3c2f 6172 7469 6661 6374  ul-api</artifact\n-000007c0: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-000007d0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-000007e0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-000007f0: 3c67 726f 7570 4964 3e63 6f6d 2e70 737a  <groupId>com.psz\n-00000800: 796d 637a 796b 2e63 6f6e 7375 6c3c 2f67  ymczyk.consul</g\n-00000810: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000820: 6172 7469 6661 6374 4964 3e65 6d62 6564  artifactId>embed\n-00000830: 6465 642d 636f 6e73 756c 3c2f 6172 7469  ded-consul</arti\n-00000840: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000850: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-00000860: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000870: 656e 6379 3e0d 0a20 203c 2f64 6570 656e  ency>..  </depen\n-00000880: 6465 6e63 6965 733e 0d0a 2020 3c62 7569  dencies>..  <bui\n-00000890: 6c64 3e0d 0a20 2020 203c 706c 7567 696e  ld>..    <plugin\n-000008a0: 733e 0d0a 2020 2020 2020 3c70 6c75 6769  s>..      <plugi\n-000008b0: 6e3e 0d0a 2020 2020 2020 2020 3c61 7274  n>..        <art\n-000008c0: 6966 6163 7449 643e 6d61 7665 6e2d 7375  ifactId>maven-su\n-000008d0: 7265 6669 7265 2d70 6c75 6769 6e3c 2f61  refire-plugin</a\n-000008e0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000008f0: 2020 2020 3c63 6f6e 6669 6775 7261 7469      <configurati\n-00000900: 6f6e 3e0d 0a20 2020 2020 2020 2020 203c  on>..          <\n-00000910: 736b 6970 5465 7374 733e 247b 736b 6970  skipTests>${skip\n-00000920: 496e 7465 6772 6174 696f 6e54 6573 7473  IntegrationTests\n-00000930: 7d3c 2f73 6b69 7054 6573 7473 3e0d 0a20  }</skipTests>.. \n-00000940: 2020 2020 2020 203c 2f63 6f6e 6669 6775         </configu\n-00000950: 7261 7469 6f6e 3e0d 0a20 2020 2020 203c  ration>..      <\n-00000960: 2f70 6c75 6769 6e3e 0d0a 2020 2020 3c2f  /plugin>..    </\n-00000970: 706c 7567 696e 733e 0d0a 2020 3c2f 6275  plugins>..  </bu\n-00000980: 696c 643e 0d0a 3c2f 7072 6f6a 6563 743e  ild>..</project>\n-00000990: 0d0a                                     ..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n+000004a0: 7472 793c 2f61 7274 6966 6163 7449 643e  try</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d72 6567 6973 7472 792d 636f  ubbo-registry-co\n+00000520: 6e73 756c 3c2f 6172 7469 6661 6374 4964  nsul</artifactId\n+00000530: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000540: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000550: 3c6c 6963 656e 7365 733e 0a20 2020 203c  <licenses>.    <\n+00000560: 6c69 6365 6e73 653e 0a20 2020 2020 203c  license>.      <\n+00000570: 6e61 6d65 3e41 7061 6368 6520 4c69 6365  name>Apache Lice\n+00000580: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000590: 3c2f 6e61 6d65 3e0a 2020 2020 2020 3c75  </name>.      <u\n+000005a0: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n+000005b0: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n+000005c0: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n+000005d0: 726c 3e0a 2020 2020 2020 3c64 6973 7472  rl>.      <distr\n+000005e0: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n+000005f0: 7374 7269 6275 7469 6f6e 3e0a 2020 2020  stribution>.    \n+00000600: 3c2f 6c69 6365 6e73 653e 0a20 203c 2f6c  </license>.  </l\n+00000610: 6963 656e 7365 733e 0a20 203c 7072 6f70  icenses>.  <prop\n+00000620: 6572 7469 6573 3e0a 2020 2020 3c73 6b69  erties>.    <ski\n+00000630: 7049 6e74 6567 7261 7469 6f6e 5465 7374  pIntegrationTest\n+00000640: 733e 7472 7565 3c2f 736b 6970 496e 7465  s>true</skipInte\n+00000650: 6772 6174 696f 6e54 6573 7473 3e0a 2020  grationTests>.  \n+00000660: 3c2f 7072 6f70 6572 7469 6573 3e0a 2020  </properties>.  \n+00000670: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+00000680: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000690: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+000006a0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+000006b0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000006c0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000006d0: 6f2d 7265 6769 7374 7279 2d61 7069 3c2f  o-registry-api</\n+000006e0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000006f0: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000700: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000710: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000720: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000730: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000740: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000750: 3e63 6f6d 2e65 6377 6964 2e63 6f6e 7375  >com.ecwid.consu\n+00000760: 6c3c 2f67 726f 7570 4964 3e0a 2020 2020  l</groupId>.    \n+00000770: 2020 3c61 7274 6966 6163 7449 643e 636f    <artifactId>co\n+00000780: 6e73 756c 2d61 7069 3c2f 6172 7469 6661  nsul-api</artifa\n+00000790: 6374 4964 3e0a 2020 2020 3c2f 6465 7065  ctId>.    </depe\n+000007a0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000007b0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000007c0: 6772 6f75 7049 643e 636f 6d2e 7073 7a79  groupId>com.pszy\n+000007d0: 6d63 7a79 6b2e 636f 6e73 756c 3c2f 6772  mczyk.consul</gr\n+000007e0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007f0: 7469 6661 6374 4964 3e65 6d62 6564 6465  tifactId>embedde\n+00000800: 642d 636f 6e73 756c 3c2f 6172 7469 6661  d-consul</artifa\n+00000810: 6374 4964 3e0a 2020 2020 2020 3c73 636f  ctId>.      <sco\n+00000820: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000830: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000840: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000850: 6573 3e0a 2020 3c62 7569 6c64 3e0a 2020  es>.  <build>.  \n+00000860: 2020 3c70 6c75 6769 6e73 3e0a 2020 2020    <plugins>.    \n+00000870: 2020 3c70 6c75 6769 6e3e 0a20 2020 2020    <plugin>.     \n+00000880: 2020 203c 6172 7469 6661 6374 4964 3e6d     <artifactId>m\n+00000890: 6176 656e 2d73 7572 6566 6972 652d 706c  aven-surefire-pl\n+000008a0: 7567 696e 3c2f 6172 7469 6661 6374 4964  ugin</artifactId\n+000008b0: 3e0a 2020 2020 2020 2020 3c63 6f6e 6669  >.        <confi\n+000008c0: 6775 7261 7469 6f6e 3e0a 2020 2020 2020  guration>.      \n+000008d0: 2020 2020 3c73 6b69 7054 6573 7473 3e24      <skipTests>$\n+000008e0: 7b73 6b69 7049 6e74 6567 7261 7469 6f6e  {skipIntegration\n+000008f0: 5465 7374 737d 3c2f 736b 6970 5465 7374  Tests}</skipTest\n+00000900: 733e 0a20 2020 2020 2020 203c 2f63 6f6e  s>.        </con\n+00000910: 6669 6775 7261 7469 6f6e 3e0a 2020 2020  figuration>.    \n+00000920: 2020 3c2f 706c 7567 696e 3e0a 2020 2020    </plugin>.    \n+00000930: 3c2f 706c 7567 696e 733e 0a20 203c 2f62  </plugins>.  </b\n+00000940: 7569 6c64 3e0a 3c2f 7072 6f6a 6563 743e  uild>.</project>\n+00000950: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-default/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-default/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,188 +1,183 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 6465 6661 756c  -registry-defaul\n-00000520: 743c 2f61 7274 6966 6163 7449 643e 0d0a  t</artifactId>..\n-00000530: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-00000540: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n-00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n-00000570: 3e0d 0a20 203c 6465 7363 7269 7074 696f  >..  <descriptio\n-00000580: 6e3e 5468 6520 6465 6661 756c 7420 7265  n>The default re\n-00000590: 6769 7374 7279 206d 6f64 756c 6520 6f66  gistry module of\n-000005a0: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n-000005b0: 6465 7363 7269 7074 696f 6e3e 0d0a 2020  description>..  \n-000005c0: 3c6c 6963 656e 7365 733e 0d0a 2020 2020  <licenses>..    \n-000005d0: 3c6c 6963 656e 7365 3e0d 0a20 2020 2020  <license>..     \n-000005e0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n-000005f0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n-00000600: 2e30 3c2f 6e61 6d65 3e0d 0a20 2020 2020  .0</name>..     \n-00000610: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n-00000620: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n-00000630: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n-00000640: 3c2f 7572 6c3e 0d0a 2020 2020 2020 3c64  </url>..      <d\n-00000650: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n-00000660: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0d  </distribution>.\n-00000670: 0a20 2020 203c 2f6c 6963 656e 7365 3e0d  .    </license>.\n-00000680: 0a20 203c 2f6c 6963 656e 7365 733e 0d0a  .  </licenses>..\n-00000690: 2020 3c70 726f 7065 7274 6965 733e 0d0a    <properties>..\n-000006a0: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n-000006b0: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n-000006c0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006d0: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-000006e0: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-000006f0: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000700: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000710: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000720: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000730: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000740: 7449 643e 6475 6262 6f2d 7265 6769 7374  tId>dubbo-regist\n-00000750: 7279 2d61 7069 3c2f 6172 7469 6661 6374  ry-api</artifact\n-00000760: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000770: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000780: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000790: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-000007a0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007b0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000007c0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000007d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000007e0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000007f0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000800: 2d72 7063 2d64 7562 626f 3c2f 6172 7469  -rpc-dubbo</arti\n-00000810: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000820: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000830: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000840: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000850: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000860: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000870: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000880: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000890: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000008a0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000008b0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000008c0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-000008d0: 7270 632d 696e 6a76 6d3c 2f61 7274 6966  rpc-injvm</artif\n-000008e0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000008f0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-00000900: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-00000910: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000920: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-00000930: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-00000940: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000950: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000960: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000970: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-00000980: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000990: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-000009a0: 656d 6f74 696e 672d 6e65 7474 7934 3c2f  emoting-netty4</\n-000009b0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000009c0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-000009d0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-000009e0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-000009f0: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n-00000a00: 7374 3c2f 7363 6f70 653e 0d0a 2020 2020  st</scope>..    \n-00000a10: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000a20: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000a30: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000a40: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000a50: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000a60: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000a70: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n-00000a80: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n-00000a90: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000aa0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000ab0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000ac0: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000ad0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000ae0: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000af0: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000b00: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000b10: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000b20: 6170 6163 6865 2e63 6f6d 6d6f 6e73 3c2f  apache.commons</\n-00000b30: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000b40: 3c61 7274 6966 6163 7449 643e 636f 6d6d  <artifactId>comm\n-00000b50: 6f6e 732d 6c61 6e67 333c 2f61 7274 6966  ons-lang3</artif\n-00000b60: 6163 7449 643e 0d0a 2020 2020 2020 3c73  actId>..      <s\n-00000b70: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n-00000b80: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000b90: 6e63 793e 0d0a 2020 3c2f 6465 7065 6e64  ncy>..  </depend\n-00000ba0: 656e 6369 6573 3e0d 0a3c 2f70 726f 6a65  encies>..</proje\n-00000bb0: 6374 3e0d 0a                             ct>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 6465 6661 756c 743c 2f61 7274 6966 6163  default</artifac\n+00000510: 7449 643e 0a20 203c 7665 7273 696f 6e3e  tId>.  <version>\n+00000520: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+00000530: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n+00000540: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n+00000550: 6e61 6d65 3e0a 2020 3c64 6573 6372 6970  name>.  <descrip\n+00000560: 7469 6f6e 3e54 6865 2064 6566 6175 6c74  tion>The default\n+00000570: 2072 6567 6973 7472 7920 6d6f 6475 6c65   registry module\n+00000580: 206f 6620 6475 6262 6f20 7072 6f6a 6563   of dubbo projec\n+00000590: 743c 2f64 6573 6372 6970 7469 6f6e 3e0a  t</description>.\n+000005a0: 2020 3c6c 6963 656e 7365 733e 0a20 2020    <licenses>.   \n+000005b0: 203c 6c69 6365 6e73 653e 0a20 2020 2020   <license>.     \n+000005c0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n+000005d0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n+000005e0: 2e30 3c2f 6e61 6d65 3e0a 2020 2020 2020  .0</name>.      \n+000005f0: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n+00000600: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n+00000610: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n+00000620: 2f75 726c 3e0a 2020 2020 2020 3c64 6973  /url>.      <dis\n+00000630: 7472 6962 7574 696f 6e3e 7265 706f 3c2f  tribution>repo</\n+00000640: 6469 7374 7269 6275 7469 6f6e 3e0a 2020  distribution>.  \n+00000650: 2020 3c2f 6c69 6365 6e73 653e 0a20 203c    </license>.  <\n+00000660: 2f6c 6963 656e 7365 733e 0a20 203c 7072  /licenses>.  <pr\n+00000670: 6f70 6572 7469 6573 3e0a 2020 2020 3c73  operties>.    <s\n+00000680: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+00000690: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n+000006a0: 656e 5f64 6570 6c6f 793e 0a20 203c 2f70  en_deploy>.  </p\n+000006b0: 726f 7065 7274 6965 733e 0a20 203c 6465  roperties>.  <de\n+000006c0: 7065 6e64 656e 6369 6573 3e0a 2020 2020  pendencies>.    \n+000006d0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000006e0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000006f0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000700: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000710: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n+00000720: 6567 6973 7472 792d 6170 693c 2f61 7274  egistry-api</art\n+00000730: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000740: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000750: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000760: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000770: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000780: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000790: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000007a0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+000007b0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000007c0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+000007d0: 2d72 7063 2d64 7562 626f 3c2f 6172 7469  -rpc-dubbo</arti\n+000007e0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+000007f0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000800: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000810: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+00000820: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+00000830: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+00000840: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000850: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000860: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000870: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000880: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000890: 7449 643e 6475 6262 6f2d 7270 632d 696e  tId>dubbo-rpc-in\n+000008a0: 6a76 6d3c 2f61 7274 6966 6163 7449 643e  jvm</artifactId>\n+000008b0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+000008c0: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+000008d0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+000008e0: 6f6e 3e0a 2020 2020 2020 3c73 636f 7065  on>.      <scope\n+000008f0: 3e74 6573 743c 2f73 636f 7065 3e0a 2020  >test</scope>.  \n+00000900: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000910: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000920: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000930: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000940: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000950: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000960: 626f 2d72 656d 6f74 696e 672d 6e65 7474  bo-remoting-nett\n+00000970: 7934 3c2f 6172 7469 6661 6374 4964 3e0a  y4</artifactId>.\n+00000980: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000990: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n+000009a0: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n+000009b0: 6e3e 0a20 2020 2020 203c 7363 6f70 653e  n>.      <scope>\n+000009c0: 7465 7374 3c2f 7363 6f70 653e 0a20 2020  test</scope>.   \n+000009d0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+000009e0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000009f0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000a00: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000a10: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000a20: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000a30: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n+00000a40: 6865 7373 6961 6e32 3c2f 6172 7469 6661  hessian2</artifa\n+00000a50: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000a60: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000a70: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000a80: 7665 7273 696f 6e3e 0a20 2020 2020 203c  version>.      <\n+00000a90: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n+00000aa0: 653e 0a20 2020 203c 2f64 6570 656e 6465  e>.    </depende\n+00000ab0: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+00000ac0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+00000ad0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+00000ae0: 636f 6d6d 6f6e 733c 2f67 726f 7570 4964  commons</groupId\n+00000af0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000b00: 7449 643e 636f 6d6d 6f6e 732d 6c61 6e67  tId>commons-lang\n+00000b10: 333c 2f61 7274 6966 6163 7449 643e 0a20  3</artifactId>. \n+00000b20: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000b30: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000b40: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+00000b50: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+00000b60: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-etcd3/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,144 +1,141 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d72 6567 6973 7472 793c 2f61 7274 6966  -registry</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000530: 6567 6973 7472 792d 6574 6364 333c 2f61  egistry-etcd3</a\n-00000540: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000550: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000560: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000570: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000580: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000590: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-000005a0: 6520 6574 6364 3320 7265 6769 7374 7279  e etcd3 registry\n-000005b0: 206d 6f64 756c 6520 6f66 2044 7562 626f   module of Dubbo\n-000005c0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005d0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005e0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005f0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-00000600: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-00000610: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000620: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000630: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000640: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000650: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000660: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000670: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000680: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000690: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-000006a0: 6963 656e 7365 733e 0d0a 2020 3c64 6570  icenses>..  <dep\n-000006b0: 656e 6465 6e63 6965 733e 0d0a 2020 2020  endencies>..    \n-000006c0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000006d0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000006e0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000006f0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000700: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000710: 2d72 6567 6973 7472 792d 6170 693c 2f61  -registry-api</a\n-00000720: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000730: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000740: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000750: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000760: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000770: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000780: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000790: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-000007a0: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-000007b0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-000007c0: 643e 6475 6262 6f2d 636f 6d6d 6f6e 3c2f  d>dubbo-common</\n-000007d0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000007e0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-000007f0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000800: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000820: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000830: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000840: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000850: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000860: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000870: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n-00000880: 672d 6574 6364 333c 2f61 7274 6966 6163  g-etcd3</artifac\n-00000890: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-000008a0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-000008b0: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-000008c0: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-000008d0: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-000008e0: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-000008f0: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n+000004a0: 7472 793c 2f61 7274 6966 6163 7449 643e  try</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d72 6567 6973 7472 792d 6574  ubbo-registry-et\n+00000520: 6364 333c 2f61 7274 6966 6163 7449 643e  cd3</artifactId>\n+00000530: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000540: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000570: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000580: 3e54 6865 2065 7463 6433 2072 6567 6973  >The etcd3 regis\n+00000590: 7472 7920 6d6f 6475 6c65 206f 6620 4475  try module of Du\n+000005a0: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+000005b0: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005c0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005d0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+00000600: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+00000610: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000620: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000630: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000660: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000670: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000680: 7365 733e 0a20 203c 6465 7065 6e64 656e  ses>.  <dependen\n+00000690: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006a0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006b0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006c0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000006d0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000006e0: 4964 3e64 7562 626f 2d72 6567 6973 7472  Id>dubbo-registr\n+000006f0: 792d 6170 693c 2f61 7274 6966 6163 7449  y-api</artifactI\n+00000700: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000710: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000720: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000730: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000740: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000750: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000760: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000770: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000780: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000790: 6374 4964 3e64 7562 626f 2d63 6f6d 6d6f  ctId>dubbo-commo\n+000007a0: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+000007b0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+000007c0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+000007d0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+000007e0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000007f0: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000800: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000810: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+00000820: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000830: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000840: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000850: 6574 6364 333c 2f61 7274 6966 6163 7449  etcd3</artifactI\n+00000860: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000870: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000880: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000890: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+000008a0: 6e64 656e 6379 3e0a 2020 3c2f 6465 7065  ndency>.  </depe\n+000008b0: 6e64 656e 6369 6573 3e0a 3c2f 7072 6f6a  ndencies>.</proj\n+000008c0: 6563 743e 0a                             ect>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-eureka/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -41,16 +41,16 @@\n       <version>${project.parent.version}</version>\n     </dependency>\n     <dependency>\n       <groupId>com.netflix.eureka</groupId>\n       <artifactId>eureka-client</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jsr311-api</artifactId>\n           <groupId>javax.ws.rs</groupId>\n+          <artifactId>jsr311-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>javax.inject</groupId>\n       <artifactId>javax.inject</artifactId>\n       <version>1</version>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-multicast/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,125 +1,122 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 6d75 6c74 6963  -registry-multic\n-00000520: 6173 743c 2f61 7274 6966 6163 7449 643e  ast</artifactId>\n-00000530: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000540: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000550: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000560: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000570: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000580: 696f 6e3e 5468 6520 6d75 6c74 6963 6173  ion>The multicas\n-00000590: 7420 7265 6769 7374 7279 206d 6f64 756c  t registry modul\n-000005a0: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005b0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005c0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005d0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005e0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005f0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-00000600: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000610: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000620: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000630: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000640: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000650: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000660: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000670: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000680: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000690: 733e 0d0a 2020 3c70 726f 7065 7274 6965  s>..  <propertie\n-000006a0: 733e 0d0a 2020 2020 3c73 6b69 705f 6d61  s>..    <skip_ma\n-000006b0: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n-000006c0: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n-000006d0: 6c6f 793e 0d0a 2020 3c2f 7072 6f70 6572  loy>..  </proper\n-000006e0: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-000006f0: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-00000700: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000710: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000720: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000730: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000740: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-00000750: 6769 7374 7279 2d61 7069 3c2f 6172 7469  gistry-api</arti\n-00000760: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000770: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000780: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000790: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000007a0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007b0: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-000007c0: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 6d75 6c74 6963 6173 743c 2f61 7274 6966  multicast</artif\n+00000510: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000520: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000530: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000540: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000550: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000560: 6970 7469 6f6e 3e54 6865 206d 756c 7469  iption>The multi\n+00000570: 6361 7374 2072 6567 6973 7472 7920 6d6f  cast registry mo\n+00000580: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000590: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+000005a0: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005b0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005c0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005d0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005e0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005f0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+00000600: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000610: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000620: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000630: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000640: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000650: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000660: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000670: 203c 7072 6f70 6572 7469 6573 3e0a 2020   <properties>.  \n+00000680: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n+00000690: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n+000006a0: 5f6d 6176 656e 5f64 6570 6c6f 793e 0a20  _maven_deploy>. \n+000006b0: 203c 2f70 726f 7065 7274 6965 733e 0a20   </properties>. \n+000006c0: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+000006d0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+000006e0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006f0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000700: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000710: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000720: 626f 2d72 6567 6973 7472 792d 6170 693c  bo-registry-api<\n+00000730: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000740: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000750: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000760: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000770: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000780: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000790: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-multiple/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,181 +1,176 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 6d75 6c74 6970  -registry-multip\n-00000520: 6c65 3c2f 6172 7469 6661 6374 4964 3e0d  le</artifactId>.\n-00000530: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n-00000540: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-00000550: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n-00000560: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n-00000570: 653e 0d0a 2020 3c64 6573 6372 6970 7469  e>..  <descripti\n-00000580: 6f6e 3e54 6865 206d 756c 7469 706c 6520  on>The multiple \n-00000590: 7265 6769 7374 7279 206d 6f64 756c 6520  registry module \n-000005a0: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n-000005b0: 3c2f 6465 7363 7269 7074 696f 6e3e 0d0a  </description>..\n-000005c0: 2020 3c6c 6963 656e 7365 733e 0d0a 2020    <licenses>..  \n-000005d0: 2020 3c6c 6963 656e 7365 3e0d 0a20 2020    <license>..   \n-000005e0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n-000005f0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n-00000600: 2032 2e30 3c2f 6e61 6d65 3e0d 0a20 2020   2.0</name>..   \n-00000610: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n-00000620: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-00000630: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000640: 2e30 3c2f 7572 6c3e 0d0a 2020 2020 2020  .0</url>..      \n-00000650: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n-00000660: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n-00000670: 3e0d 0a20 2020 203c 2f6c 6963 656e 7365  >..    </license\n-00000680: 3e0d 0a20 203c 2f6c 6963 656e 7365 733e  >..  </licenses>\n-00000690: 0d0a 2020 3c70 726f 7065 7274 6965 733e  ..  <properties>\n-000006a0: 0d0a 2020 2020 3c73 6b69 705f 6d61 7665  ..    <skip_mave\n-000006b0: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n-000006c0: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n-000006d0: 793e 0d0a 2020 3c2f 7072 6f70 6572 7469  y>..  </properti\n-000006e0: 6573 3e0d 0a20 203c 6465 7065 6e64 656e  es>..  <dependen\n-000006f0: 6369 6573 3e0d 0a20 2020 203c 6465 7065  cies>..    <depe\n-00000700: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000710: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000720: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000730: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000740: 6163 7449 643e 6475 6262 6f2d 7265 6769  actId>dubbo-regi\n-00000750: 7374 7279 2d61 7069 3c2f 6172 7469 6661  stry-api</artifa\n-00000760: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000770: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000780: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000790: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000007a0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007b0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000007c0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000007d0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000007e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007f0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000800: 626f 2d72 6567 6973 7472 792d 7a6f 6f6b  bo-registry-zook\n-00000810: 6565 7065 723c 2f61 7274 6966 6163 7449  eeper</artifactI\n-00000820: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-00000830: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-00000840: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-00000850: 7273 696f 6e3e 0d0a 2020 2020 2020 3c73  rsion>..      <s\n-00000860: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n-00000870: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000880: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000890: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000008a0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000008b0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000008c0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000008d0: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n-000008e0: 7472 792d 7265 6469 733c 2f61 7274 6966  try-redis</artif\n-000008f0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-00000900: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-00000910: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-00000920: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000930: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-00000940: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-00000950: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000960: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000970: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000980: 7061 6368 652e 6375 7261 746f 723c 2f67  pache.curator</g\n-00000990: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000009a0: 6172 7469 6661 6374 4964 3e63 7572 6174  artifactId>curat\n-000009b0: 6f72 2d74 6573 743c 2f61 7274 6966 6163  or-test</artifac\n-000009c0: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-000009d0: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-000009e0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000009f0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000a00: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000a10: 7570 4964 3e63 6f6d 2e67 6974 6875 622e  upId>com.github.\n-00000a20: 6b73 7479 7263 3c2f 6772 6f75 7049 643e  kstyrc</groupId>\n-00000a30: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000a40: 7449 643e 656d 6265 6464 6564 2d72 6564  tId>embedded-red\n-00000a50: 6973 3c2f 6172 7469 6661 6374 4964 3e0d  is</artifactId>.\n-00000a60: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n-00000a70: 7374 3c2f 7363 6f70 653e 0d0a 2020 2020  st</scope>..    \n-00000a80: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000a90: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000aa0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000ab0: 6f72 672e 6170 6163 6865 2e63 6f6d 6d6f  org.apache.commo\n-00000ac0: 6e73 3c2f 6772 6f75 7049 643e 0d0a 2020  ns</groupId>..  \n-00000ad0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000ae0: 636f 6d6d 6f6e 732d 6c61 6e67 333c 2f61  commons-lang3</a\n-00000af0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000b00: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-00000b10: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-00000b20: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-00000b30: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-00000b40: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 6d75 6c74 6970 6c65 3c2f 6172 7469 6661  multiple</artifa\n+00000510: 6374 4964 3e0a 2020 3c76 6572 7369 6f6e  ctId>.  <version\n+00000520: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n+00000530: 3e0a 2020 3c6e 616d 653e 247b 7072 6f6a  >.  <name>${proj\n+00000540: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n+00000550: 2f6e 616d 653e 0a20 203c 6465 7363 7269  /name>.  <descri\n+00000560: 7074 696f 6e3e 5468 6520 6d75 6c74 6970  ption>The multip\n+00000570: 6c65 2072 6567 6973 7472 7920 6d6f 6475  le registry modu\n+00000580: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n+00000590: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n+000005a0: 3e0a 2020 3c6c 6963 656e 7365 733e 0a20  >.  <licenses>. \n+000005b0: 2020 203c 6c69 6365 6e73 653e 0a20 2020     <license>.   \n+000005c0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n+000005d0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n+000005e0: 2032 2e30 3c2f 6e61 6d65 3e0a 2020 2020   2.0</name>.    \n+000005f0: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n+00000600: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n+00000610: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n+00000620: 303c 2f75 726c 3e0a 2020 2020 2020 3c64  0</url>.      <d\n+00000630: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n+00000640: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0a  </distribution>.\n+00000650: 2020 2020 3c2f 6c69 6365 6e73 653e 0a20      </license>. \n+00000660: 203c 2f6c 6963 656e 7365 733e 0a20 203c   </licenses>.  <\n+00000670: 7072 6f70 6572 7469 6573 3e0a 2020 2020  properties>.    \n+00000680: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n+00000690: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n+000006a0: 6176 656e 5f64 6570 6c6f 793e 0a20 203c  aven_deploy>.  <\n+000006b0: 2f70 726f 7065 7274 6965 733e 0a20 203c  /properties>.  <\n+000006c0: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+000006d0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006e0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000006f0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+00000700: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000710: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000720: 2d72 6567 6973 7472 792d 6170 693c 2f61  -registry-api</a\n+00000730: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000740: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000750: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000760: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000770: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000780: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000790: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000007a0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000007b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007c0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000007d0: 626f 2d72 6567 6973 7472 792d 7a6f 6f6b  bo-registry-zook\n+000007e0: 6565 7065 723c 2f61 7274 6966 6163 7449  eeper</artifactI\n+000007f0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000800: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000810: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000820: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000830: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000840: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000850: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000860: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000870: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000880: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000890: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+000008a0: 7562 626f 2d72 6567 6973 7472 792d 7265  ubbo-registry-re\n+000008b0: 6469 733c 2f61 7274 6966 6163 7449 643e  dis</artifactId>\n+000008c0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+000008d0: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+000008e0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+000008f0: 6f6e 3e0a 2020 2020 2020 3c73 636f 7065  on>.      <scope\n+00000900: 3e74 6573 743c 2f73 636f 7065 3e0a 2020  >test</scope>.  \n+00000910: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000920: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000930: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000940: 6f72 672e 6170 6163 6865 2e63 7572 6174  org.apache.curat\n+00000950: 6f72 3c2f 6772 6f75 7049 643e 0a20 2020  or</groupId>.   \n+00000960: 2020 203c 6172 7469 6661 6374 4964 3e63     <artifactId>c\n+00000970: 7572 6174 6f72 2d74 6573 743c 2f61 7274  urator-test</art\n+00000980: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000990: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n+000009a0: 653e 0a20 2020 203c 2f64 6570 656e 6465  e>.    </depende\n+000009b0: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+000009c0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000009d0: 7570 4964 3e63 6f6d 2e67 6974 6875 622e  upId>com.github.\n+000009e0: 6b73 7479 7263 3c2f 6772 6f75 7049 643e  kstyrc</groupId>\n+000009f0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000a00: 4964 3e65 6d62 6564 6465 642d 7265 6469  Id>embedded-redi\n+00000a10: 733c 2f61 7274 6966 6163 7449 643e 0a20  s</artifactId>. \n+00000a20: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000a30: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000a40: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000a50: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000a60: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000a70: 7061 6368 652e 636f 6d6d 6f6e 733c 2f67  pache.commons</g\n+00000a80: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000a90: 7274 6966 6163 7449 643e 636f 6d6d 6f6e  rtifactId>common\n+00000aa0: 732d 6c61 6e67 333c 2f61 7274 6966 6163  s-lang3</artifac\n+00000ab0: 7449 643e 0a20 2020 2020 203c 7363 6f70  tId>.      <scop\n+00000ac0: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000ad0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000ae0: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n+00000af0: 733e 0a3c 2f70 726f 6a65 6374 3e0a       s>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-nacos/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,196 +1,191 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 6e61 636f 733c  -registry-nacos<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 4e61 636f 7320 7265 6769 7374  The Nacos regist\n-00000590: 7279 206d 6f64 756c 6520 6f66 2044 7562  ry module of Dub\n-000005a0: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005b0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005c0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005d0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005e0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005f0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000600: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000610: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000620: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000630: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000640: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000650: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000660: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000670: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000680: 2f6c 6963 656e 7365 733e 0d0a 2020 3c64  /licenses>..  <d\n-00000690: 6570 656e 6465 6e63 6965 733e 0d0a 2020  ependencies>..  \n-000006a0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000006b0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000006c0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000006d0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000006e0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-000006f0: 626f 2d72 6567 6973 7472 792d 6170 693c  bo-registry-api<\n-00000700: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000710: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-00000720: 726f 6a65 6374 2e76 6572 7369 6f6e 7d3c  roject.version}<\n-00000730: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-00000740: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000750: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000760: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000770: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000780: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000790: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-000007a0: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n-000007b0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000007c0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-000007d0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-000007e0: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000007f0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000800: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000810: 3c67 726f 7570 4964 3e63 6f6d 2e61 6c69  <groupId>com.ali\n-00000820: 6261 6261 2e6e 6163 6f73 3c2f 6772 6f75  baba.nacos</grou\n-00000830: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000840: 6966 6163 7449 643e 6e61 636f 732d 636c  ifactId>nacos-cl\n-00000850: 6965 6e74 3c2f 6172 7469 6661 6374 4964  ient</artifactId\n-00000860: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000870: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000880: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000890: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000008a0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000008b0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000008c0: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n-000008d0: 6c69 7a61 7469 6f6e 2d68 6573 7369 616e  lization-hessian\n-000008e0: 323c 2f61 7274 6966 6163 7449 643e 0d0a  2</artifactId>..\n-000008f0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-00000900: 7b70 726f 6a65 6374 2e76 6572 7369 6f6e  {project.version\n-00000910: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000920: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000930: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000940: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000950: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000960: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000970: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000980: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000990: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-000009a0: 7270 632d 6475 6262 6f3c 2f61 7274 6966  rpc-dubbo</artif\n-000009b0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000009c0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-000009d0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-000009e0: 6f6e 3e0d 0a20 2020 2020 203c 7363 6f70  on>..      <scop\n-000009f0: 653e 7465 7374 3c2f 7363 6f70 653e 0d0a  e>test</scope>..\n-00000a00: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000a10: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000a20: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000a30: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-00000a40: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-00000a50: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000a60: 643e 6475 6262 6f2d 7265 6d6f 7469 6e67  d>dubbo-remoting\n-00000a70: 2d6e 6574 7479 343c 2f61 7274 6966 6163  -netty4</artifac\n-00000a80: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000a90: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e76  sion>${project.v\n-00000aa0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000ab0: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-00000ac0: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-00000ad0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000ae0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000af0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000b00: 643e 6368 2e71 6f73 2e6c 6f67 6261 636b  d>ch.qos.logback\n-00000b10: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000b20: 2020 3c61 7274 6966 6163 7449 643e 6c6f    <artifactId>lo\n-00000b30: 6762 6163 6b2d 636c 6173 7369 633c 2f61  gback-classic</a\n-00000b40: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000b50: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-00000b60: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-00000b70: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000b80: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000b90: 2020 3c67 726f 7570 4964 3e6f 7267 2e73    <groupId>org.s\n-00000ba0: 7072 696e 6766 7261 6d65 776f 726b 3c2f  pringframework</\n-00000bb0: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000bc0: 3c61 7274 6966 6163 7449 643e 7370 7269  <artifactId>spri\n-00000bd0: 6e67 2d74 6573 743c 2f61 7274 6966 6163  ng-test</artifac\n-00000be0: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-00000bf0: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000c00: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000c10: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-00000c20: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-00000c30: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 6e61 636f 733c 2f61 7274 6966 6163 7449  nacos</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 204e 6163 6f73 2072 6567  on>The Nacos reg\n+00000570: 6973 7472 7920 6d6f 6475 6c65 206f 6620  istry module of \n+00000580: 4475 6262 6f20 7072 6f6a 6563 743c 2f64  Dubbo project</d\n+00000590: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005a0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005b0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005c0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005d0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005e0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005f0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000600: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000610: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000620: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000630: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000640: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000650: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000660: 656e 7365 733e 0a20 203c 6465 7065 6e64  enses>.  <depend\n+00000670: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+00000680: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000690: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000006a0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000006b0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+000006c0: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n+000006d0: 7472 792d 6170 693c 2f61 7274 6966 6163  try-api</artifac\n+000006e0: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+000006f0: 696f 6e3e 247b 7072 6f6a 6563 742e 7665  ion>${project.ve\n+00000700: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000710: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000720: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000730: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000740: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000750: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000760: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000770: 6475 6262 6f2d 636f 6d6d 6f6e 3c2f 6172  dubbo-common</ar\n+00000780: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000790: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+000007a0: 6374 2e76 6572 7369 6f6e 7d3c 2f76 6572  ct.version}</ver\n+000007b0: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+000007c0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000007d0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000007e0: 6772 6f75 7049 643e 636f 6d2e 616c 6962  groupId>com.alib\n+000007f0: 6162 612e 6e61 636f 733c 2f67 726f 7570  aba.nacos</group\n+00000800: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000810: 6163 7449 643e 6e61 636f 732d 636c 6965  actId>nacos-clie\n+00000820: 6e74 3c2f 6172 7469 6661 6374 4964 3e0a  nt</artifactId>.\n+00000830: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000840: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000850: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000860: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+00000870: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000880: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000890: 7562 626f 2d73 6572 6961 6c69 7a61 7469  ubbo-serializati\n+000008a0: 6f6e 2d68 6573 7369 616e 323c 2f61 7274  on-hessian2</art\n+000008b0: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+000008c0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+000008d0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000008e0: 696f 6e3e 0a20 2020 2020 203c 7363 6f70  ion>.      <scop\n+000008f0: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000900: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000910: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000920: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000930: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000940: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000950: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000960: 6262 6f2d 7270 632d 6475 6262 6f3c 2f61  bbo-rpc-dubbo</a\n+00000970: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000980: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000990: 6563 742e 7665 7273 696f 6e7d 3c2f 7665  ect.version}</ve\n+000009a0: 7273 696f 6e3e 0a20 2020 2020 203c 7363  rsion>.      <sc\n+000009b0: 6f70 653e 7465 7374 3c2f 7363 6f70 653e  ope>test</scope>\n+000009c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000009d0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000009e0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000009f0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000a00: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000a10: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000a20: 6475 6262 6f2d 7265 6d6f 7469 6e67 2d6e  dubbo-remoting-n\n+00000a30: 6574 7479 343c 2f61 7274 6966 6163 7449  etty4</artifactI\n+00000a40: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000a50: 6e3e 247b 7072 6f6a 6563 742e 7665 7273  n>${project.vers\n+00000a60: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000a70: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000a80: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000a90: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000aa0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000ab0: 2020 3c67 726f 7570 4964 3e63 682e 716f    <groupId>ch.qo\n+00000ac0: 732e 6c6f 6762 6163 6b3c 2f67 726f 7570  s.logback</group\n+00000ad0: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000ae0: 6163 7449 643e 6c6f 6762 6163 6b2d 636c  actId>logback-cl\n+00000af0: 6173 7369 633c 2f61 7274 6966 6163 7449  assic</artifactI\n+00000b00: 643e 0a20 2020 2020 203c 7363 6f70 653e  d>.      <scope>\n+00000b10: 7465 7374 3c2f 7363 6f70 653e 0a20 2020  test</scope>.   \n+00000b20: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000b30: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000b40: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000b50: 7267 2e73 7072 696e 6766 7261 6d65 776f  rg.springframewo\n+00000b60: 726b 3c2f 6772 6f75 7049 643e 0a20 2020  rk</groupId>.   \n+00000b70: 2020 203c 6172 7469 6661 6374 4964 3e73     <artifactId>s\n+00000b80: 7072 696e 672d 7465 7374 3c2f 6172 7469  pring-test</arti\n+00000b90: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+00000ba0: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000bb0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000bc0: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000bd0: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000be0: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-redis/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,163 +1,159 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 7265 6469 733c  -registry-redis<\n-00000520: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000530: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000540: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000550: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000560: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000570: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000580: 5468 6520 7265 6469 7320 7265 6769 7374  The redis regist\n-00000590: 7279 206d 6f64 756c 6520 6f66 2064 7562  ry module of dub\n-000005a0: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005b0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005c0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005d0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005e0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005f0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000600: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000610: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000620: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000630: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000640: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000650: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000660: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000670: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000680: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000690: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006a0: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n-000006b0: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n-000006c0: 6176 656e 5f64 6570 6c6f 793e 0d0a 2020  aven_deploy>..  \n-000006d0: 3c2f 7072 6f70 6572 7469 6573 3e0d 0a20  </properties>.. \n-000006e0: 203c 6465 7065 6e64 656e 6369 6573 3e0d   <dependencies>.\n-000006f0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000700: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000710: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000720: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000730: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000740: 6475 6262 6f2d 7265 6769 7374 7279 2d61  dubbo-registry-a\n-00000750: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-00000760: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000770: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000780: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-00000790: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-000007b0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-000007c0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-000007d0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-000007e0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000007f0: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n-00000800: 6f74 696e 672d 7265 6469 733c 2f61 7274  oting-redis</art\n-00000810: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000820: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000830: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000840: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000850: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000860: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000870: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000880: 643e 7265 6469 732e 636c 6965 6e74 733c  d>redis.clients<\n-00000890: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000008a0: 203c 6172 7469 6661 6374 4964 3e6a 6564   <artifactId>jed\n-000008b0: 6973 3c2f 6172 7469 6661 6374 4964 3e0d  is</artifactId>.\n-000008c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000008d0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000008e0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000008f0: 7570 4964 3e63 6f6d 2e67 6974 6875 622e  upId>com.github.\n-00000900: 6b73 7479 7263 3c2f 6772 6f75 7049 643e  kstyrc</groupId>\n-00000910: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000920: 7449 643e 656d 6265 6464 6564 2d72 6564  tId>embedded-red\n-00000930: 6973 3c2f 6172 7469 6661 6374 4964 3e0d  is</artifactId>.\n-00000940: 0a20 2020 2020 203c 7363 6f70 653e 7465  .      <scope>te\n-00000950: 7374 3c2f 7363 6f70 653e 0d0a 2020 2020  st</scope>..    \n-00000960: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000970: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000980: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000990: 6f72 672e 6170 6163 6865 2e63 6f6d 6d6f  org.apache.commo\n-000009a0: 6e73 3c2f 6772 6f75 7049 643e 0d0a 2020  ns</groupId>..  \n-000009b0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000009c0: 636f 6d6d 6f6e 732d 6c61 6e67 333c 2f61  commons-lang3</a\n-000009d0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000009e0: 2020 3c73 636f 7065 3e74 6573 743c 2f73    <scope>test</s\n-000009f0: 636f 7065 3e0d 0a20 2020 203c 2f64 6570  cope>..    </dep\n-00000a00: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-00000a10: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-00000a20: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 7265 6469 733c 2f61 7274 6966 6163 7449  redis</artifactI\n+00000510: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000520: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000530: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000540: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000550: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000560: 6f6e 3e54 6865 2072 6564 6973 2072 6567  on>The redis reg\n+00000570: 6973 7472 7920 6d6f 6475 6c65 206f 6620  istry module of \n+00000580: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000590: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005a0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005b0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005c0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005d0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005e0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005f0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000600: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000610: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000620: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000630: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000640: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000650: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000660: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000670: 7469 6573 3e0a 2020 2020 3c73 6b69 705f  ties>.    <skip_\n+00000680: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n+00000690: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n+000006a0: 6570 6c6f 793e 0a20 203c 2f70 726f 7065  eploy>.  </prope\n+000006b0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+000006c0: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+000006d0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000006e0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000006f0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000700: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000710: 6374 4964 3e64 7562 626f 2d72 6567 6973  ctId>dubbo-regis\n+00000720: 7472 792d 6170 693c 2f61 7274 6966 6163  try-api</artifac\n+00000730: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000740: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000750: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000760: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000770: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000780: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000790: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000007a0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+000007b0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000007c0: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+000007d0: 6f74 696e 672d 7265 6469 733c 2f61 7274  oting-redis</art\n+000007e0: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+000007f0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000800: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000810: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000820: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000830: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000840: 2020 2020 203c 6772 6f75 7049 643e 7265       <groupId>re\n+00000850: 6469 732e 636c 6965 6e74 733c 2f67 726f  dis.clients</gro\n+00000860: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000870: 6966 6163 7449 643e 6a65 6469 733c 2f61  ifactId>jedis</a\n+00000880: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+00000890: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000008a0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+000008b0: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n+000008c0: 2e67 6974 6875 622e 6b73 7479 7263 3c2f  .github.kstyrc</\n+000008d0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000008e0: 6172 7469 6661 6374 4964 3e65 6d62 6564  artifactId>embed\n+000008f0: 6465 642d 7265 6469 733c 2f61 7274 6966  ded-redis</artif\n+00000900: 6163 7449 643e 0a20 2020 2020 203c 7363  actId>.      <sc\n+00000910: 6f70 653e 7465 7374 3c2f 7363 6f70 653e  ope>test</scope>\n+00000920: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000930: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000940: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000950: 4964 3e6f 7267 2e61 7061 6368 652e 636f  Id>org.apache.co\n+00000960: 6d6d 6f6e 733c 2f67 726f 7570 4964 3e0a  mmons</groupId>.\n+00000970: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000980: 643e 636f 6d6d 6f6e 732d 6c61 6e67 333c  d>commons-lang3<\n+00000990: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000009a0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+000009b0: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+000009c0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+000009d0: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+000009e0: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-sofa/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -52,16 +52,16 @@\n       <optional>true</optional>\n     </dependency>\n     <dependency>\n       <groupId>com.alipay.sofa</groupId>\n       <artifactId>registry-client-all</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>sofa-common-tools</artifactId>\n           <groupId>com.alipay.sofa</groupId>\n+          <artifactId>sofa-common-tools</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-rpc-dubbo</artifactId>\n       <version>${project.version}</version>\n@@ -86,28 +86,28 @@\n     </dependency>\n     <dependency>\n       <groupId>com.alipay.sofa</groupId>\n       <artifactId>registry-test</artifactId>\n       <scope>test</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>log4j-over-slf4j</artifactId>\n           <groupId>org.slf4j</groupId>\n+          <artifactId>log4j-over-slf4j</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>log4j-jcl</artifactId>\n           <groupId>org.apache.logging.log4j</groupId>\n+          <artifactId>log4j-jcl</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>log4j-core</artifactId>\n           <groupId>org.apache.logging.log4j</groupId>\n+          <artifactId>log4j-core</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>log4j-api</artifactId>\n           <groupId>org.apache.logging.log4j</groupId>\n+          <artifactId>log4j-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.jboss.resteasy</groupId>\n       <artifactId>resteasy-jaxrs</artifactId>\n       <scope>test</scope>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-registry-zookeeper/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,155 +1,151 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 6567 6973 7472 793c 2f61 7274  bo-registry</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 6567 6973 7472 792d 7a6f 6f6b 6565  -registry-zookee\n-00000520: 7065 723c 2f61 7274 6966 6163 7449 643e  per</artifactId>\n-00000530: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000540: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000550: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000560: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000570: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000580: 696f 6e3e 5468 6520 7a6f 6f6b 6565 7065  ion>The zookeepe\n-00000590: 7220 7265 6769 7374 7279 206d 6f64 756c  r registry modul\n-000005a0: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005b0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005c0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005d0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005e0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005f0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-00000600: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000610: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000620: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000630: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000640: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000650: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000660: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000670: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000680: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000690: 733e 0d0a 2020 3c70 726f 7065 7274 6965  s>..  <propertie\n-000006a0: 733e 0d0a 2020 2020 3c73 6b69 705f 6d61  s>..    <skip_ma\n-000006b0: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n-000006c0: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n-000006d0: 6c6f 793e 0d0a 2020 3c2f 7072 6f70 6572  loy>..  </proper\n-000006e0: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-000006f0: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-00000700: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000710: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000720: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000730: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000740: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-00000750: 6769 7374 7279 2d61 7069 3c2f 6172 7469  gistry-api</arti\n-00000760: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000770: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000780: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000790: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-000007a0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007b0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000007c0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000007d0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000007e0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-000007f0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000800: 7562 626f 2d72 656d 6f74 696e 672d 7a6f  ubbo-remoting-zo\n-00000810: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n-00000820: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000830: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000840: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000850: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000860: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000870: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000880: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000890: 672e 6170 6163 6865 2e63 7572 6174 6f72  g.apache.curator\n-000008a0: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-000008b0: 2020 3c61 7274 6966 6163 7449 643e 6375    <artifactId>cu\n-000008c0: 7261 746f 722d 782d 6469 7363 6f76 6572  rator-x-discover\n-000008d0: 793c 2f61 7274 6966 6163 7449 643e 0d0a  y</artifactId>..\n-000008e0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-000008f0: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000900: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000910: 7049 643e 6f72 672e 6170 6163 6865 2e63  pId>org.apache.c\n-00000920: 7572 6174 6f72 3c2f 6772 6f75 7049 643e  urator</groupId>\n-00000930: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000940: 7449 643e 6375 7261 746f 722d 7465 7374  tId>curator-test\n-00000950: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000960: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000970: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000980: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000990: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-000009a0: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 6567  factId>dubbo-reg\n+00000480: 6973 7472 793c 2f61 7274 6966 6163 7449  istry</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 6567 6973 7472 792d  >dubbo-registry-\n+00000500: 7a6f 6f6b 6565 7065 723c 2f61 7274 6966  zookeeper</artif\n+00000510: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000520: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000530: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000540: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000550: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000560: 6970 7469 6f6e 3e54 6865 207a 6f6f 6b65  iption>The zooke\n+00000570: 6570 6572 2072 6567 6973 7472 7920 6d6f  eper registry mo\n+00000580: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000590: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+000005a0: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005b0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005c0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005d0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005e0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005f0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+00000600: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000610: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000620: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000630: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000640: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000650: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000660: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000670: 203c 7072 6f70 6572 7469 6573 3e0a 2020   <properties>.  \n+00000680: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n+00000690: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n+000006a0: 5f6d 6176 656e 5f64 6570 6c6f 793e 0a20  _maven_deploy>. \n+000006b0: 203c 2f70 726f 7065 7274 6965 733e 0a20   </properties>. \n+000006c0: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+000006d0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+000006e0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006f0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000700: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000710: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000720: 626f 2d72 6567 6973 7472 792d 6170 693c  bo-registry-api<\n+00000730: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000740: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000750: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000760: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000770: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000780: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000790: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000007a0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+000007b0: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+000007c0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+000007d0: 7562 626f 2d72 656d 6f74 696e 672d 7a6f  ubbo-remoting-zo\n+000007e0: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n+000007f0: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000800: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000810: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000820: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000830: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000840: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000850: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000860: 6163 6865 2e63 7572 6174 6f72 3c2f 6772  ache.curator</gr\n+00000870: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000880: 7469 6661 6374 4964 3e63 7572 6174 6f72  tifactId>curator\n+00000890: 2d78 2d64 6973 636f 7665 7279 3c2f 6172  -x-discovery</ar\n+000008a0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000008b0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000008c0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000008d0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000008e0: 6170 6163 6865 2e63 7572 6174 6f72 3c2f  apache.curator</\n+000008f0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000900: 6172 7469 6661 6374 4964 3e63 7572 6174  artifactId>curat\n+00000910: 6f72 2d74 6573 743c 2f61 7274 6966 6163  or-test</artifac\n+00000920: 7449 643e 0a20 2020 2020 203c 7363 6f70  tId>.      <scop\n+00000930: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000940: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000950: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n+00000960: 733e 0a3c 2f70 726f 6a65 6374 3e0a       s>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,150 +1,146 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6170 693c 2f61  -remoting-api</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000560: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000570: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-00000580: 6520 7265 6d6f 7469 6e67 206d 6f64 756c  e remoting modul\n-00000590: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005a0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005b0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005c0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005d0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005e0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-000005f0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000600: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000610: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000620: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000630: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000640: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000650: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000660: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000670: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000680: 733e 0d0a 2020 3c70 726f 7065 7274 6965  s>..  <propertie\n-00000690: 733e 0d0a 2020 2020 3c73 6b69 705f 6d61  s>..    <skip_ma\n-000006a0: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n-000006b0: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n-000006c0: 6c6f 793e 0d0a 2020 3c2f 7072 6f70 6572  loy>..  </proper\n-000006d0: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-000006e0: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-000006f0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000700: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000710: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000720: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000730: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n-00000740: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n-00000750: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000760: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-00000770: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-00000780: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-00000790: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-000007a0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007b0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-000007c0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-000007d0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-000007e0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n-000007f0: 6572 6961 6c69 7a61 7469 6f6e 2d61 7069  erialization-api\n-00000800: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000810: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000820: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000830: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000840: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000850: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000860: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000870: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000880: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000890: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000008a0: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n-000008b0: 6c69 7a61 7469 6f6e 2d68 6573 7369 616e  lization-hessian\n-000008c0: 323c 2f61 7274 6966 6163 7449 643e 0d0a  2</artifactId>..\n-000008d0: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-000008e0: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n-000008f0: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n-00000900: 6e3e 0d0a 2020 2020 2020 3c73 636f 7065  n>..      <scope\n-00000910: 3e74 6573 743c 2f73 636f 7065 3e0d 0a20  >test</scope>.. \n-00000920: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000930: 0d0a 2020 3c2f 6465 7065 6e64 656e 6369  ..  </dependenci\n-00000940: 6573 3e0d 0a3c 2f70 726f 6a65 6374 3e0d  es>..</project>.\n-00000950: 0a                                       .\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000540: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000550: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000560: 3e54 6865 2072 656d 6f74 696e 6720 6d6f  >The remoting mo\n+00000570: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000580: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+00000590: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005a0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005b0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005c0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005d0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005e0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+000005f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000600: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000610: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000620: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000630: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000640: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000650: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000660: 203c 7072 6f70 6572 7469 6573 3e0a 2020   <properties>.  \n+00000670: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n+00000680: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n+00000690: 5f6d 6176 656e 5f64 6570 6c6f 793e 0a20  _maven_deploy>. \n+000006a0: 203c 2f70 726f 7065 7274 6965 733e 0a20   </properties>. \n+000006b0: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+000006c0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+000006d0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006e0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000006f0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000700: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000710: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n+00000720: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000730: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000740: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000750: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000760: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000770: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000780: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000790: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000007a0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007b0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+000007c0: 6572 6961 6c69 7a61 7469 6f6e 2d61 7069  erialization-api\n+000007d0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000007e0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000007f0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+00000800: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000820: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000830: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000840: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000850: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000860: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000870: 6475 6262 6f2d 7365 7269 616c 697a 6174  dubbo-serializat\n+00000880: 696f 6e2d 6865 7373 6961 6e32 3c2f 6172  ion-hessian2</ar\n+00000890: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+000008a0: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+000008b0: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+000008c0: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+000008d0: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+000008e0: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+000008f0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+00000900: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+00000910: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-etcd3/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,231 +1,225 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 7e20 4c69 6365 6e73 6564 2074 6f20 7468  ~ Licensed to th\n-00000040: 6520 4170 6163 6865 2053 6f66 7477 6172  e Apache Softwar\n-00000050: 6520 466f 756e 6461 7469 6f6e 2028 4153  e Foundation (AS\n-00000060: 4629 2075 6e64 6572 206f 6e65 206f 7220  F) under one or \n-00000070: 6d6f 7265 0d0a 2020 7e20 636f 6e74 7269  more..  ~ contri\n-00000080: 6275 746f 7220 6c69 6365 6e73 6520 6167  butor license ag\n-00000090: 7265 656d 656e 7473 2e20 2053 6565 2074  reements.  See t\n-000000a0: 6865 204e 4f54 4943 4520 6669 6c65 2064  he NOTICE file d\n-000000b0: 6973 7472 6962 7574 6564 2077 6974 680d  istributed with.\n-000000c0: 0a20 207e 2074 6869 7320 776f 726b 2066  .  ~ this work f\n-000000d0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n-000000e0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n-000000f0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n-00000100: 6e65 7273 6869 702e 0d0a 2020 7e20 5468  nership...  ~ Th\n-00000110: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000120: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000130: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000140: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000150: 6e20 322e 300d 0a20 207e 2028 7468 6520  n 2.0..  ~ (the \n-00000160: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n-00000170: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n-00000180: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n-00000190: 636f 6d70 6c69 616e 6365 2077 6974 680d  compliance with.\n-000001a0: 0a20 207e 2074 6865 204c 6963 656e 7365  .  ~ the License\n-000001b0: 2e20 2059 6f75 206d 6179 206f 6274 6169  .  You may obtai\n-000001c0: 6e20 6120 636f 7079 206f 6620 7468 6520  n a copy of the \n-000001d0: 4c69 6365 6e73 6520 6174 0d0a 2020 7e0d  License at..  ~.\n-000001e0: 0a20 207e 2020 2020 2068 7474 703a 2f2f  .  ~     http://\n-000001f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000200: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000210: 322e 300d 0a20 207e 0d0a 2020 7e20 556e  2.0..  ~..  ~ Un\n-00000220: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n-00000230: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n-00000240: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n-00000250: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n-00000260: 650d 0a20 207e 2064 6973 7472 6962 7574  e..  ~ distribut\n-00000270: 6564 2075 6e64 6572 2074 6865 204c 6963  ed under the Lic\n-00000280: 656e 7365 2069 7320 6469 7374 7269 6275  ense is distribu\n-00000290: 7465 6420 6f6e 2061 6e20 2241 5320 4953  ted on an \"AS IS\n-000002a0: 2220 4241 5349 532c 0d0a 2020 7e20 5749  \" BASIS,..  ~ WI\n-000002b0: 5448 4f55 5420 5741 5252 414e 5449 4553  THOUT WARRANTIES\n-000002c0: 204f 5220 434f 4e44 4954 494f 4e53 204f   OR CONDITIONS O\n-000002d0: 4620 414e 5920 4b49 4e44 2c20 6569 7468  F ANY KIND, eith\n-000002e0: 6572 2065 7870 7265 7373 206f 7220 696d  er express or im\n-000002f0: 706c 6965 642e 0d0a 2020 7e20 5365 6520  plied...  ~ See \n-00000300: 7468 6520 4c69 6365 6e73 6520 666f 7220  the License for \n-00000310: 7468 6520 7370 6563 6966 6963 206c 616e  the specific lan\n-00000320: 6775 6167 6520 676f 7665 726e 696e 6720  guage governing \n-00000330: 7065 726d 6973 7369 6f6e 7320 616e 640d  permissions and.\n-00000340: 0a20 207e 206c 696d 6974 6174 696f 6e73  .  ~ limitations\n-00000350: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000360: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000370: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000380: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000390: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003a0: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-000003b0: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003c0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003d0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003e0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003f0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-00000400: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-00000410: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000420: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000430: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000440: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000450: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000460: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000470: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000480: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000490: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-000004a0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000004b0: 2d72 656d 6f74 696e 673c 2f61 7274 6966  -remoting</artif\n-000004c0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004d0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004e0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004f0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-00000500: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000510: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000520: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000530: 656d 6f74 696e 672d 6574 6364 333c 2f61  emoting-etcd3</a\n-00000540: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000550: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000560: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000570: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000580: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000590: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-000005a0: 6520 6574 6364 3320 7265 6d6f 7469 6e67  e etcd3 remoting\n-000005b0: 206d 6f64 756c 6520 6f66 2044 7562 626f   module of Dubbo\n-000005c0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005d0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005e0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005f0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-00000600: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-00000610: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000620: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000630: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000640: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000650: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000660: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000670: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000680: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000690: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-000006a0: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-000006b0: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006c0: 6b69 7049 6e74 6567 7261 7469 6f6e 5465  kipIntegrationTe\n-000006d0: 7374 733e 7472 7565 3c2f 736b 6970 496e  sts>true</skipIn\n-000006e0: 7465 6772 6174 696f 6e54 6573 7473 3e0d  tegrationTests>.\n-000006f0: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n-00000700: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n-00000710: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-00000720: 3e0d 0a20 2020 203c 6173 7365 7274 6a2e  >..    <assertj.\n-00000730: 7665 7273 696f 6e3e 332e 3133 2e32 3c2f  version>3.13.2</\n-00000740: 6173 7365 7274 6a2e 7665 7273 696f 6e3e  assertj.version>\n-00000750: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-00000760: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-00000770: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000780: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000790: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000007a0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-000007b0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007c0: 7449 643e 6475 6262 6f2d 7265 6d6f 7469  tId>dubbo-remoti\n-000007d0: 6e67 2d61 7069 3c2f 6172 7469 6661 6374  ng-api</artifact\n-000007e0: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-000007f0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000800: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000810: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000820: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000830: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000840: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000850: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000860: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000870: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000880: 2d63 6f6d 6d6f 6e3c 2f61 7274 6966 6163  -common</artifac\n-00000890: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-000008a0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-000008b0: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-000008c0: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-000008d0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000008e0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-000008f0: 2020 2020 203c 6772 6f75 7049 643e 696f       <groupId>io\n-00000900: 2e65 7463 643c 2f67 726f 7570 4964 3e0d  .etcd</groupId>.\n-00000910: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000920: 4964 3e6a 6574 6364 2d63 6f72 653c 2f61  Id>jetcd-core</a\n-00000930: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000940: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000950: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000960: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000970: 696f 2e67 7270 633c 2f67 726f 7570 4964  io.grpc</groupId\n-00000980: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000990: 6374 4964 3e67 7270 632d 636f 7265 3c2f  ctId>grpc-core</\n-000009a0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000009b0: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000009c0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000009d0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000009e0: 3e69 6f2e 6772 7063 3c2f 6772 6f75 7049  >io.grpc</groupI\n-000009f0: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000a00: 6163 7449 643e 6772 7063 2d6e 6574 7479  actId>grpc-netty\n-00000a10: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000a20: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000a30: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000a40: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000a50: 4964 3e69 6f2e 6772 7063 3c2f 6772 6f75  Id>io.grpc</grou\n-00000a60: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000a70: 6966 6163 7449 643e 6772 7063 2d70 726f  ifactId>grpc-pro\n-00000a80: 746f 6275 663c 2f61 7274 6966 6163 7449  tobuf</artifactI\n-00000a90: 643e 0d0a 2020 2020 3c2f 6465 7065 6e64  d>..    </depend\n-00000aa0: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000ab0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000ac0: 6772 6f75 7049 643e 696f 2e67 7270 633c  groupId>io.grpc<\n-00000ad0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000ae0: 203c 6172 7469 6661 6374 4964 3e67 7270   <artifactId>grp\n-00000af0: 632d 7374 7562 3c2f 6172 7469 6661 6374  c-stub</artifact\n-00000b00: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-00000b10: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000b20: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000b30: 3c67 726f 7570 4964 3e69 6f2e 6772 7063  <groupId>io.grpc\n-00000b40: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000b50: 2020 3c61 7274 6966 6163 7449 643e 6772    <artifactId>gr\n-00000b60: 7063 2d67 7270 636c 623c 2f61 7274 6966  pc-grpclb</artif\n-00000b70: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000b80: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000b90: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000ba0: 2020 203c 6772 6f75 7049 643e 696f 2e65     <groupId>io.e\n-00000bb0: 7463 643c 2f67 726f 7570 4964 3e0d 0a20  tcd</groupId>.. \n-00000bc0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000bd0: 3e6a 6574 6364 2d6c 6175 6e63 6865 723c  >jetcd-launcher<\n-00000be0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000bf0: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n-00000c00: 2f73 636f 7065 3e0d 0a20 2020 203c 2f64  /scope>..    </d\n-00000c10: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000c20: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000c30: 2020 2020 3c67 726f 7570 4964 3e69 6f2e      <groupId>io.\n-00000c40: 6e65 7474 793c 2f67 726f 7570 4964 3e0d  netty</groupId>.\n-00000c50: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000c60: 4964 3e6e 6574 7479 2d61 6c6c 3c2f 6172  Id>netty-all</ar\n-00000c70: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000c80: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000c90: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000ca0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000cb0: 7267 2e61 7373 6572 746a 3c2f 6772 6f75  rg.assertj</grou\n-00000cc0: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000cd0: 6966 6163 7449 643e 6173 7365 7274 6a2d  ifactId>assertj-\n-00000ce0: 636f 7265 3c2f 6172 7469 6661 6374 4964  core</artifactId\n-00000cf0: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000d00: 6e3e 247b 6173 7365 7274 6a2e 7665 7273  n>${assertj.vers\n-00000d10: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000d20: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000d30: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000d40: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000d50: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000d60: 0a20 203c 6275 696c 643e 0d0a 2020 2020  .  <build>..    \n-00000d70: 3c70 6c75 6769 6e73 3e0d 0a20 2020 2020  <plugins>..     \n-00000d80: 203c 706c 7567 696e 3e0d 0a20 2020 2020   <plugin>..     \n-00000d90: 2020 203c 6172 7469 6661 6374 4964 3e6d     <artifactId>m\n-00000da0: 6176 656e 2d73 7572 6566 6972 652d 706c  aven-surefire-pl\n-00000db0: 7567 696e 3c2f 6172 7469 6661 6374 4964  ugin</artifactId\n-00000dc0: 3e0d 0a20 2020 2020 2020 203c 636f 6e66  >..        <conf\n-00000dd0: 6967 7572 6174 696f 6e3e 0d0a 2020 2020  iguration>..    \n-00000de0: 2020 2020 2020 3c73 6b69 7054 6573 7473        <skipTests\n-00000df0: 3e24 7b73 6b69 7049 6e74 6567 7261 7469  >${skipIntegrati\n-00000e00: 6f6e 5465 7374 737d 3c2f 736b 6970 5465  onTests}</skipTe\n-00000e10: 7374 733e 0d0a 2020 2020 2020 2020 3c2f  sts>..        </\n-00000e20: 636f 6e66 6967 7572 6174 696f 6e3e 0d0a  configuration>..\n-00000e30: 2020 2020 2020 3c2f 706c 7567 696e 3e0d        </plugin>.\n-00000e40: 0a20 2020 203c 2f70 6c75 6769 6e73 3e0d  .    </plugins>.\n-00000e50: 0a20 203c 2f62 7569 6c64 3e0d 0a3c 2f70  .  </build>..</p\n-00000e60: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 7e20  F-8\"?>.<!--.  ~ \n+00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n+00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n+00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n+00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n+00000070: 7265 0a20 207e 2063 6f6e 7472 6962 7574  re.  ~ contribut\n+00000080: 6f72 206c 6963 656e 7365 2061 6772 6565  or license agree\n+00000090: 6d65 6e74 732e 2020 5365 6520 7468 6520  ments.  See the \n+000000a0: 4e4f 5449 4345 2066 696c 6520 6469 7374  NOTICE file dist\n+000000b0: 7269 6275 7465 6420 7769 7468 0a20 207e  ributed with.  ~\n+000000c0: 2074 6869 7320 776f 726b 2066 6f72 2061   this work for a\n+000000d0: 6464 6974 696f 6e61 6c20 696e 666f 726d  dditional inform\n+000000e0: 6174 696f 6e20 7265 6761 7264 696e 6720  ation regarding \n+000000f0: 636f 7079 7269 6768 7420 6f77 6e65 7273  copyright owners\n+00000100: 6869 702e 0a20 207e 2054 6865 2041 5346  hip..  ~ The ASF\n+00000110: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000120: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000130: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000140: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000150: 0a20 207e 2028 7468 6520 224c 6963 656e  .  ~ (the \"Licen\n+00000160: 7365 2229 3b20 796f 7520 6d61 7920 6e6f  se\"); you may no\n+00000170: 7420 7573 6520 7468 6973 2066 696c 6520  t use this file \n+00000180: 6578 6365 7074 2069 6e20 636f 6d70 6c69  except in compli\n+00000190: 616e 6365 2077 6974 680a 2020 7e20 7468  ance with.  ~ th\n+000001a0: 6520 4c69 6365 6e73 652e 2020 596f 7520  e License.  You \n+000001b0: 6d61 7920 6f62 7461 696e 2061 2063 6f70  may obtain a cop\n+000001c0: 7920 6f66 2074 6865 204c 6963 656e 7365  y of the License\n+000001d0: 2061 740a 2020 7e0a 2020 7e20 2020 2020   at.  ~.  ~     \n+000001e0: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n+000001f0: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n+00000200: 4943 454e 5345 2d32 2e30 0a20 207e 0a20  ICENSE-2.0.  ~. \n+00000210: 207e 2055 6e6c 6573 7320 7265 7175 6972   ~ Unless requir\n+00000220: 6564 2062 7920 6170 706c 6963 6162 6c65  ed by applicable\n+00000230: 206c 6177 206f 7220 6167 7265 6564 2074   law or agreed t\n+00000240: 6f20 696e 2077 7269 7469 6e67 2c20 736f  o in writing, so\n+00000250: 6674 7761 7265 0a20 207e 2064 6973 7472  ftware.  ~ distr\n+00000260: 6962 7574 6564 2075 6e64 6572 2074 6865  ibuted under the\n+00000270: 204c 6963 656e 7365 2069 7320 6469 7374   License is dist\n+00000280: 7269 6275 7465 6420 6f6e 2061 6e20 2241  ributed on an \"A\n+00000290: 5320 4953 2220 4241 5349 532c 0a20 207e  S IS\" BASIS,.  ~\n+000002a0: 2057 4954 484f 5554 2057 4152 5241 4e54   WITHOUT WARRANT\n+000002b0: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n+000002c0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n+000002d0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n+000002e0: 2069 6d70 6c69 6564 2e0a 2020 7e20 5365   implied..  ~ Se\n+000002f0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n+00000300: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n+00000310: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n+00000320: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n+00000330: 640a 2020 7e20 6c69 6d69 7461 7469 6f6e  d.  ~ limitation\n+00000340: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000350: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000360: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000370: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000380: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000390: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+000003a0: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+000003b0: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003c0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003d0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003e0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003f0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+00000400: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+00000410: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000420: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000430: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000440: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000450: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000460: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000470: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000480: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000490: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n+000004a0: 696e 673c 2f61 7274 6966 6163 7449 643e  ing</artifactId>\n+000004b0: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004c0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004d0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000500: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+00000510: 7562 626f 2d72 656d 6f74 696e 672d 6574  ubbo-remoting-et\n+00000520: 6364 333c 2f61 7274 6966 6163 7449 643e  cd3</artifactId>\n+00000530: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000540: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000570: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000580: 3e54 6865 2065 7463 6433 2072 656d 6f74  >The etcd3 remot\n+00000590: 696e 6720 6d6f 6475 6c65 206f 6620 4475  ing module of Du\n+000005a0: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+000005b0: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005c0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005d0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+00000600: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+00000610: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000620: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000630: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000660: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000670: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000680: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000690: 6573 3e0a 2020 2020 3c73 6b69 7049 6e74  es>.    <skipInt\n+000006a0: 6567 7261 7469 6f6e 5465 7374 733e 7472  egrationTests>tr\n+000006b0: 7565 3c2f 736b 6970 496e 7465 6772 6174  ue</skipIntegrat\n+000006c0: 696f 6e54 6573 7473 3e0a 2020 2020 3c73  ionTests>.    <s\n+000006d0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+000006e0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n+000006f0: 656e 5f64 6570 6c6f 793e 0a20 2020 203c  en_deploy>.    <\n+00000700: 6173 7365 7274 6a2e 7665 7273 696f 6e3e  assertj.version>\n+00000710: 332e 3133 2e32 3c2f 6173 7365 7274 6a2e  3.13.2</assertj.\n+00000720: 7665 7273 696f 6e3e 0a20 203c 2f70 726f  version>.  </pro\n+00000730: 7065 7274 6965 733e 0a20 203c 6465 7065  perties>.  <depe\n+00000740: 6e64 656e 6369 6573 3e0a 2020 2020 3c64  ndencies>.    <d\n+00000750: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000760: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000770: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000780: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000790: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+000007a0: 6f74 696e 672d 6170 693c 2f61 7274 6966  oting-api</artif\n+000007b0: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+000007c0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+000007d0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+000007e0: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+000007f0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000800: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000810: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000820: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000830: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000840: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n+00000850: 6f6d 6d6f 6e3c 2f61 7274 6966 6163 7449  ommon</artifactI\n+00000860: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000870: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000880: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000890: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+000008a0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000008b0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+000008c0: 6772 6f75 7049 643e 696f 2e65 7463 643c  groupId>io.etcd<\n+000008d0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000008e0: 3c61 7274 6966 6163 7449 643e 6a65 7463  <artifactId>jetc\n+000008f0: 642d 636f 7265 3c2f 6172 7469 6661 6374  d-core</artifact\n+00000900: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+00000910: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000920: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000930: 6f75 7049 643e 696f 2e67 7270 633c 2f67  oupId>io.grpc</g\n+00000940: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000950: 7274 6966 6163 7449 643e 6772 7063 2d63  rtifactId>grpc-c\n+00000960: 6f72 653c 2f61 7274 6966 6163 7449 643e  ore</artifactId>\n+00000970: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000980: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000990: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000009a0: 4964 3e69 6f2e 6772 7063 3c2f 6772 6f75  Id>io.grpc</grou\n+000009b0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000009c0: 6661 6374 4964 3e67 7270 632d 6e65 7474  factId>grpc-nett\n+000009d0: 793c 2f61 7274 6966 6163 7449 643e 0a20  y</artifactId>. \n+000009e0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+000009f0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000a00: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000a10: 3e69 6f2e 6772 7063 3c2f 6772 6f75 7049  >io.grpc</groupI\n+00000a20: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000a30: 6374 4964 3e67 7270 632d 7072 6f74 6f62  ctId>grpc-protob\n+00000a40: 7566 3c2f 6172 7469 6661 6374 4964 3e0a  uf</artifactId>.\n+00000a50: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000a60: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000a70: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000a80: 643e 696f 2e67 7270 633c 2f67 726f 7570  d>io.grpc</group\n+00000a90: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000aa0: 6163 7449 643e 6772 7063 2d73 7475 623c  actId>grpc-stub<\n+00000ab0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000ac0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000ad0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000ae0: 2020 2020 2020 3c67 726f 7570 4964 3e69        <groupId>i\n+00000af0: 6f2e 6772 7063 3c2f 6772 6f75 7049 643e  o.grpc</groupId>\n+00000b00: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000b10: 4964 3e67 7270 632d 6772 7063 6c62 3c2f  Id>grpc-grpclb</\n+00000b20: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000b30: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000b40: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000b50: 2020 2020 203c 6772 6f75 7049 643e 696f       <groupId>io\n+00000b60: 2e65 7463 643c 2f67 726f 7570 4964 3e0a  .etcd</groupId>.\n+00000b70: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000b80: 643e 6a65 7463 642d 6c61 756e 6368 6572  d>jetcd-launcher\n+00000b90: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000ba0: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n+00000bb0: 2f73 636f 7065 3e0a 2020 2020 3c2f 6465  /scope>.    </de\n+00000bc0: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000bd0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000be0: 203c 6772 6f75 7049 643e 696f 2e6e 6574   <groupId>io.net\n+00000bf0: 7479 3c2f 6772 6f75 7049 643e 0a20 2020  ty</groupId>.   \n+00000c00: 2020 203c 6172 7469 6661 6374 4964 3e6e     <artifactId>n\n+00000c10: 6574 7479 2d61 6c6c 3c2f 6172 7469 6661  etty-all</artifa\n+00000c20: 6374 4964 3e0a 2020 2020 3c2f 6465 7065  ctId>.    </depe\n+00000c30: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000c40: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000c50: 6772 6f75 7049 643e 6f72 672e 6173 7365  groupId>org.asse\n+00000c60: 7274 6a3c 2f67 726f 7570 4964 3e0a 2020  rtj</groupId>.  \n+00000c70: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000c80: 6173 7365 7274 6a2d 636f 7265 3c2f 6172  assertj-core</ar\n+00000c90: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000ca0: 3c76 6572 7369 6f6e 3e24 7b61 7373 6572  <version>${asser\n+00000cb0: 746a 2e76 6572 7369 6f6e 7d3c 2f76 6572  tj.version}</ver\n+00000cc0: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000cd0: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000ce0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000cf0: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000d00: 6573 3e0a 2020 3c62 7569 6c64 3e0a 2020  es>.  <build>.  \n+00000d10: 2020 3c70 6c75 6769 6e73 3e0a 2020 2020    <plugins>.    \n+00000d20: 2020 3c70 6c75 6769 6e3e 0a20 2020 2020    <plugin>.     \n+00000d30: 2020 203c 6172 7469 6661 6374 4964 3e6d     <artifactId>m\n+00000d40: 6176 656e 2d73 7572 6566 6972 652d 706c  aven-surefire-pl\n+00000d50: 7567 696e 3c2f 6172 7469 6661 6374 4964  ugin</artifactId\n+00000d60: 3e0a 2020 2020 2020 2020 3c63 6f6e 6669  >.        <confi\n+00000d70: 6775 7261 7469 6f6e 3e0a 2020 2020 2020  guration>.      \n+00000d80: 2020 2020 3c73 6b69 7054 6573 7473 3e24      <skipTests>$\n+00000d90: 7b73 6b69 7049 6e74 6567 7261 7469 6f6e  {skipIntegration\n+00000da0: 5465 7374 737d 3c2f 736b 6970 5465 7374  Tests}</skipTest\n+00000db0: 733e 0a20 2020 2020 2020 203c 2f63 6f6e  s>.        </con\n+00000dc0: 6669 6775 7261 7469 6f6e 3e0a 2020 2020  figuration>.    \n+00000dd0: 2020 3c2f 706c 7567 696e 3e0a 2020 2020    </plugin>.    \n+00000de0: 3c2f 706c 7567 696e 733e 0a20 203c 2f62  </plugins>.  </b\n+00000df0: 7569 6c64 3e0a 3c2f 7072 6f6a 6563 743e  uild>.</project>\n+00000e00: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-grizzly/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6772 697a 7a6c  -remoting-grizzl\n-00000520: 793c 2f61 7274 6966 6163 7449 643e 0d0a  y</artifactId>..\n-00000530: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-00000540: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n-00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n-00000570: 3e0d 0a20 203c 6465 7363 7269 7074 696f  >..  <descriptio\n-00000580: 6e3e 5468 6520 6772 697a 7a6c 7920 7265  n>The grizzly re\n-00000590: 6d6f 7469 6e67 206d 6f64 756c 6520 6f66  moting module of\n-000005a0: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n-000005b0: 6465 7363 7269 7074 696f 6e3e 0d0a 2020  description>..  \n-000005c0: 3c6c 6963 656e 7365 733e 0d0a 2020 2020  <licenses>..    \n-000005d0: 3c6c 6963 656e 7365 3e0d 0a20 2020 2020  <license>..     \n-000005e0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n-000005f0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n-00000600: 2e30 3c2f 6e61 6d65 3e0d 0a20 2020 2020  .0</name>..     \n-00000610: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n-00000620: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n-00000630: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n-00000640: 3c2f 7572 6c3e 0d0a 2020 2020 2020 3c64  </url>..      <d\n-00000650: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n-00000660: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0d  </distribution>.\n-00000670: 0a20 2020 203c 2f6c 6963 656e 7365 3e0d  .    </license>.\n-00000680: 0a20 203c 2f6c 6963 656e 7365 733e 0d0a  .  </licenses>..\n-00000690: 2020 3c70 726f 7065 7274 6965 733e 0d0a    <properties>..\n-000006a0: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n-000006b0: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n-000006c0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006d0: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-000006e0: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-000006f0: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-00000700: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000710: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000720: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000730: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000740: 7449 643e 6475 6262 6f2d 7265 6d6f 7469  tId>dubbo-remoti\n-00000750: 6e67 2d61 7069 3c2f 6172 7469 6661 6374  ng-api</artifact\n-00000760: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000770: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000780: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000790: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-000007a0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007b0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000007c0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-000007d0: 2e67 6c61 7373 6669 7368 2e67 7269 7a7a  .glassfish.grizz\n-000007e0: 6c79 3c2f 6772 6f75 7049 643e 0d0a 2020  ly</groupId>..  \n-000007f0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000800: 6772 697a 7a6c 792d 636f 7265 3c2f 6172  grizzly-core</ar\n-00000810: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000820: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000830: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000840: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6772 697a 7a6c 793c 2f61 7274 6966 6163  grizzly</artifac\n+00000510: 7449 643e 0a20 203c 7665 7273 696f 6e3e  tId>.  <version>\n+00000520: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+00000530: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n+00000540: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n+00000550: 6e61 6d65 3e0a 2020 3c64 6573 6372 6970  name>.  <descrip\n+00000560: 7469 6f6e 3e54 6865 2067 7269 7a7a 6c79  tion>The grizzly\n+00000570: 2072 656d 6f74 696e 6720 6d6f 6475 6c65   remoting module\n+00000580: 206f 6620 6475 6262 6f20 7072 6f6a 6563   of dubbo projec\n+00000590: 743c 2f64 6573 6372 6970 7469 6f6e 3e0a  t</description>.\n+000005a0: 2020 3c6c 6963 656e 7365 733e 0a20 2020    <licenses>.   \n+000005b0: 203c 6c69 6365 6e73 653e 0a20 2020 2020   <license>.     \n+000005c0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n+000005d0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n+000005e0: 2e30 3c2f 6e61 6d65 3e0a 2020 2020 2020  .0</name>.      \n+000005f0: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n+00000600: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n+00000610: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n+00000620: 2f75 726c 3e0a 2020 2020 2020 3c64 6973  /url>.      <dis\n+00000630: 7472 6962 7574 696f 6e3e 7265 706f 3c2f  tribution>repo</\n+00000640: 6469 7374 7269 6275 7469 6f6e 3e0a 2020  distribution>.  \n+00000650: 2020 3c2f 6c69 6365 6e73 653e 0a20 203c    </license>.  <\n+00000660: 2f6c 6963 656e 7365 733e 0a20 203c 7072  /licenses>.  <pr\n+00000670: 6f70 6572 7469 6573 3e0a 2020 2020 3c73  operties>.    <s\n+00000680: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+00000690: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n+000006a0: 656e 5f64 6570 6c6f 793e 0a20 203c 2f70  en_deploy>.  </p\n+000006b0: 726f 7065 7274 6965 733e 0a20 203c 6465  roperties>.  <de\n+000006c0: 7065 6e64 656e 6369 6573 3e0a 2020 2020  pendencies>.    \n+000006d0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000006e0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000006f0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000700: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000710: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n+00000720: 656d 6f74 696e 672d 6170 693c 2f61 7274  emoting-api</art\n+00000730: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000740: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000750: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000760: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000770: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000780: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000790: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000007a0: 672e 676c 6173 7366 6973 682e 6772 697a  g.glassfish.griz\n+000007b0: 7a6c 793c 2f67 726f 7570 4964 3e0a 2020  zly</groupId>.  \n+000007c0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007d0: 6772 697a 7a6c 792d 636f 7265 3c2f 6172  grizzly-core</ar\n+000007e0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000007f0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000800: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000810: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-http/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-http/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,172 +1,168 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6874 7470 3c2f  -remoting-http</\n-00000520: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000530: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000540: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000550: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000560: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000570: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000580: 6865 2068 7474 7020 7265 6d6f 7469 6e67  he http remoting\n-00000590: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-000005a0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005b0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005c0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005d0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000600: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000610: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000620: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000630: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000640: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000650: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000660: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000670: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000680: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000690: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006b0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006c0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006d0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006e0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006f0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000700: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000710: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000720: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000730: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000740: 6262 6f2d 636f 6d6d 6f6e 3c2f 6172 7469  bbo-common</arti\n-00000750: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000760: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000770: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000780: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000790: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-000007a0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000007b0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000007c0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000007d0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-000007e0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-000007f0: 7562 626f 2d72 656d 6f74 696e 672d 6170  ubbo-remoting-ap\n-00000800: 693c 2f61 7274 6966 6163 7449 643e 0d0a  i</artifactId>..\n-00000810: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-00000820: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n-00000830: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n-00000840: 6e3e 0d0a 2020 2020 3c2f 6465 7065 6e64  n>..    </depend\n-00000850: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000860: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000870: 6772 6f75 7049 643e 6f72 672e 6563 6c69  groupId>org.ecli\n-00000880: 7073 652e 6a65 7474 793c 2f67 726f 7570  pse.jetty</group\n-00000890: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000008a0: 6661 6374 4964 3e6a 6574 7479 2d73 6572  factId>jetty-ser\n-000008b0: 7665 723c 2f61 7274 6966 6163 7449 643e  ver</artifactId>\n-000008c0: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-000008d0: 6379 3e0d 0a20 2020 203c 6465 7065 6e64  cy>..    <depend\n-000008e0: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-000008f0: 6f75 7049 643e 6f72 672e 6563 6c69 7073  oupId>org.eclips\n-00000900: 652e 6a65 7474 793c 2f67 726f 7570 4964  e.jetty</groupId\n-00000910: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000920: 6374 4964 3e6a 6574 7479 2d73 6572 766c  ctId>jetty-servl\n-00000930: 6574 3c2f 6172 7469 6661 6374 4964 3e0d  et</artifactId>.\n-00000940: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000950: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000960: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000970: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000980: 746f 6d63 6174 2e65 6d62 6564 3c2f 6772  tomcat.embed</gr\n-00000990: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000009a0: 7274 6966 6163 7449 643e 746f 6d63 6174  rtifactId>tomcat\n-000009b0: 2d65 6d62 6564 2d63 6f72 653c 2f61 7274  -embed-core</art\n-000009c0: 6966 6163 7449 643e 0d0a 2020 2020 3c2f  ifactId>..    </\n-000009d0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000009e0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-000009f0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000a00: 672e 6170 6163 6865 2e68 7474 7063 6f6d  g.apache.httpcom\n-00000a10: 706f 6e65 6e74 733c 2f67 726f 7570 4964  ponents</groupId\n-00000a20: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000a30: 6374 4964 3e66 6c75 656e 742d 6863 3c2f  ctId>fluent-hc</\n-00000a40: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000a50: 2020 203c 7665 7273 696f 6e3e 342e 352e     <version>4.5.\n-00000a60: 353c 2f76 6572 7369 6f6e 3e0d 0a20 2020  5</version>..   \n-00000a70: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000a80: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000a90: 7065 6e64 656e 6379 3e0d 0a20 203c 2f64  pendency>..  </d\n-00000aa0: 6570 656e 6465 6e63 6965 733e 0d0a 3c2f  ependencies>..</\n-00000ab0: 7072 6f6a 6563 743e 0d0a                 project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6874 7470 3c2f 6172 7469 6661 6374 4964  http</artifactId\n+00000510: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000520: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000530: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000540: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000550: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000560: 6e3e 5468 6520 6874 7470 2072 656d 6f74  n>The http remot\n+00000570: 696e 6720 6d6f 6475 6c65 206f 6620 6475  ing module of du\n+00000580: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000590: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005a0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005b0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005c0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005d0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005e0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005f0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000600: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000610: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000620: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000630: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000640: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000650: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000660: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000670: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000680: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000690: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+000006a0: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006b0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006c0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000700: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000710: 4964 3e64 7562 626f 2d63 6f6d 6d6f 6e3c  Id>dubbo-common<\n+00000720: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000730: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000740: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000750: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000760: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000770: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000780: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000790: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+000007a0: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+000007b0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+000007c0: 7562 626f 2d72 656d 6f74 696e 672d 6170  ubbo-remoting-ap\n+000007d0: 693c 2f61 7274 6966 6163 7449 643e 0a20  i</artifactId>. \n+000007e0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+000007f0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+00000800: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+00000810: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000820: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000830: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000840: 7049 643e 6f72 672e 6563 6c69 7073 652e  pId>org.eclipse.\n+00000850: 6a65 7474 793c 2f67 726f 7570 4964 3e0a  jetty</groupId>.\n+00000860: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000870: 643e 6a65 7474 792d 7365 7276 6572 3c2f  d>jetty-server</\n+00000880: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000890: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000008a0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000008b0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000008c0: 672e 6563 6c69 7073 652e 6a65 7474 793c  g.eclipse.jetty<\n+000008d0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000008e0: 3c61 7274 6966 6163 7449 643e 6a65 7474  <artifactId>jett\n+000008f0: 792d 7365 7276 6c65 743c 2f61 7274 6966  y-servlet</artif\n+00000900: 6163 7449 643e 0a20 2020 203c 2f64 6570  actId>.    </dep\n+00000910: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+00000920: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000930: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+00000940: 6368 652e 746f 6d63 6174 2e65 6d62 6564  che.tomcat.embed\n+00000950: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000960: 203c 6172 7469 6661 6374 4964 3e74 6f6d   <artifactId>tom\n+00000970: 6361 742d 656d 6265 642d 636f 7265 3c2f  cat-embed-core</\n+00000980: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000990: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000009a0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000009b0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000009c0: 672e 6170 6163 6865 2e68 7474 7063 6f6d  g.apache.httpcom\n+000009d0: 706f 6e65 6e74 733c 2f67 726f 7570 4964  ponents</groupId\n+000009e0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000009f0: 7449 643e 666c 7565 6e74 2d68 633c 2f61  tId>fluent-hc</a\n+00000a00: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000a10: 203c 7665 7273 696f 6e3e 342e 352e 353c   <version>4.5.5<\n+00000a20: 2f76 6572 7369 6f6e 3e0a 2020 2020 2020  /version>.      \n+00000a30: 3c73 636f 7065 3e74 6573 743c 2f73 636f  <scope>test</sco\n+00000a40: 7065 3e0a 2020 2020 3c2f 6465 7065 6e64  pe>.    </depend\n+00000a50: 656e 6379 3e0a 2020 3c2f 6465 7065 6e64  ency>.  </depend\n+00000a60: 656e 6369 6573 3e0a 3c2f 7072 6f6a 6563  encies>.</projec\n+00000a70: 743e 0a                                  t>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-mina/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,153 +1,149 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6d69 6e61 3c2f  -remoting-mina</\n-00000520: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000530: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000540: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000550: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000560: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000570: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000580: 6865 206d 696e 6120 7265 6d6f 7469 6e67  he mina remoting\n-00000590: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-000005a0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005b0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005c0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005d0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000600: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000610: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000620: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000630: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000640: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000650: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000660: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000670: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000680: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000690: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006b0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006c0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006d0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006e0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006f0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000700: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000710: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000720: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000730: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000740: 6262 6f2d 7265 6d6f 7469 6e67 2d61 7069  bbo-remoting-api\n-00000750: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000760: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000770: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000780: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000790: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007d0: 652e 6d69 6e61 3c2f 6772 6f75 7049 643e  e.mina</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n-00000800: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000810: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000820: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000830: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000840: 6f72 672e 736c 6634 6a3c 2f67 726f 7570  org.slf4j</group\n-00000850: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000860: 6661 6374 4964 3e73 6c66 346a 2d61 7069  factId>slf4j-api\n-00000870: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000880: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000890: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000008a0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000008b0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-000008c0: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-000008d0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008e0: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-000008f0: 7469 6f6e 2d68 6573 7369 616e 323c 2f61  tion-hessian2</a\n-00000900: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000910: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000920: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000930: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000940: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000950: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000960: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000970: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000980: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6d69 6e61 3c2f 6172 7469 6661 6374 4964  mina</artifactId\n+00000510: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000520: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000530: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000540: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000550: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000560: 6e3e 5468 6520 6d69 6e61 2072 656d 6f74  n>The mina remot\n+00000570: 696e 6720 6d6f 6475 6c65 206f 6620 6475  ing module of du\n+00000580: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000590: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005a0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005b0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005c0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005d0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005e0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005f0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000600: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000610: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000620: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000630: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000640: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000650: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000660: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000670: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000680: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000690: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+000006a0: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006b0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006c0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000700: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000710: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+00000720: 672d 6170 693c 2f61 7274 6966 6163 7449  g-api</artifactI\n+00000730: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000740: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000750: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000760: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000770: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000780: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000790: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000007a0: 6865 2e6d 696e 613c 2f67 726f 7570 4964  he.mina</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 6d69 6e61 2d63 6f72 653c 2f61  tId>mina-core</a\n+000007d0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000007e0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000007f0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000800: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000810: 2e73 6c66 346a 3c2f 6772 6f75 7049 643e  .slf4j</groupId>\n+00000820: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000830: 4964 3e73 6c66 346a 2d61 7069 3c2f 6172  Id>slf4j-api</ar\n+00000840: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000850: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000860: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000870: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000880: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000890: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000008a0: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+000008b0: 6572 6961 6c69 7a61 7469 6f6e 2d68 6573  erialization-hes\n+000008c0: 7369 616e 323c 2f61 7274 6966 6163 7449  sian2</artifactI\n+000008d0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000008e0: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+000008f0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000900: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000910: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000920: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000930: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000940: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-netty/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,146 +1,142 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a2d 2d3e 0d0a 3c70 726f  ense...-->..<pro\n-00000350: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000360: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000370: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-00000380: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-00000390: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003a0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003b0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003c0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003d0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-000003e0: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-000003f0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000400: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000410: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000420: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000430: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000440: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000450: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000460: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000470: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-00000480: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000490: 2d72 656d 6f74 696e 673c 2f61 7274 6966  -remoting</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000510: 656d 6f74 696e 672d 6e65 7474 793c 2f61  emoting-netty</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000560: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000570: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-00000580: 6520 6e65 7474 7920 7265 6d6f 7469 6e67  e netty remoting\n-00000590: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n-000005a0: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n-000005b0: 7074 696f 6e3e 0d0a 2020 3c6c 6963 656e  ption>..  <licen\n-000005c0: 7365 733e 0d0a 2020 2020 3c6c 6963 656e  ses>..    <licen\n-000005d0: 7365 3e0d 0a20 2020 2020 203c 6e61 6d65  se>..      <name\n-000005e0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n-000005f0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n-00000600: 6d65 3e0d 0a20 2020 2020 203c 7572 6c3e  me>..      <url>\n-00000610: 6874 7470 3a2f 2f77 7777 2e61 7061 6368  http://www.apach\n-00000620: 652e 6f72 672f 6c69 6365 6e73 6573 2f4c  e.org/licenses/L\n-00000630: 4943 454e 5345 2d32 2e30 3c2f 7572 6c3e  ICENSE-2.0</url>\n-00000640: 0d0a 2020 2020 2020 3c64 6973 7472 6962  ..      <distrib\n-00000650: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n-00000660: 7269 6275 7469 6f6e 3e0d 0a20 2020 203c  ribution>..    <\n-00000670: 2f6c 6963 656e 7365 3e0d 0a20 203c 2f6c  /license>..  </l\n-00000680: 6963 656e 7365 733e 0d0a 2020 3c70 726f  icenses>..  <pro\n-00000690: 7065 7274 6965 733e 0d0a 2020 2020 3c73  perties>..    <s\n-000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006b0: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n-000006c0: 656e 5f64 6570 6c6f 793e 0d0a 2020 3c2f  en_deploy>..  </\n-000006d0: 7072 6f70 6572 7469 6573 3e0d 0a20 203c  properties>..  <\n-000006e0: 6465 7065 6e64 656e 6369 6573 3e0d 0a20  dependencies>.. \n-000006f0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000700: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000710: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000720: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000730: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000740: 6262 6f2d 7265 6d6f 7469 6e67 2d61 7069  bbo-remoting-api\n-00000750: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000760: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000770: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000780: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000790: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000007a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007c0: 726f 7570 4964 3e6f 7267 2e6a 626f 7373  roupId>org.jboss\n-000007d0: 2e6e 6574 7479 3c2f 6772 6f75 7049 643e  .netty</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 6e65 7474 793c 2f61 7274 6966  tId>netty</artif\n-00000800: 6163 7449 643e 0d0a 2020 2020 3c2f 6465  actId>..    </de\n-00000810: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000820: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000830: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000840: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000850: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000860: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000870: 7365 7269 616c 697a 6174 696f 6e2d 6865  serialization-he\n-00000880: 7373 6961 6e32 3c2f 6172 7469 6661 6374  ssian2</artifact\n-00000890: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-000008a0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-000008b0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-000008c0: 6572 7369 6f6e 3e0d 0a20 2020 2020 203c  ersion>..      <\n-000008d0: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-000008e0: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-000008f0: 656e 6379 3e0d 0a20 203c 2f64 6570 656e  ency>..  </depen\n-00000900: 6465 6e63 6965 733e 0d0a 3c2f 7072 6f6a  dencies>..</proj\n-00000910: 6563 743e 0d0a                           ect>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a2d 2d3e 0a3c 7072 6f6a  cense..-->.<proj\n+00000340: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000350: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000360: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000370: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+00000380: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+00000390: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003a0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003b0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003c0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003d0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+000003e0: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+000003f0: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000400: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000410: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000420: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000430: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000440: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000450: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000460: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000470: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n+00000480: 696e 673c 2f61 7274 6966 6163 7449 643e  ing</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d72 656d 6f74 696e 672d 6e65  ubbo-remoting-ne\n+00000500: 7474 793c 2f61 7274 6966 6163 7449 643e  tty</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000540: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000550: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000560: 3e54 6865 206e 6574 7479 2072 656d 6f74  >The netty remot\n+00000570: 696e 6720 6d6f 6475 6c65 206f 6620 6475  ing module of du\n+00000580: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n+00000590: 6372 6970 7469 6f6e 3e0a 2020 3c6c 6963  cription>.  <lic\n+000005a0: 656e 7365 733e 0a20 2020 203c 6c69 6365  enses>.    <lice\n+000005b0: 6e73 653e 0a20 2020 2020 203c 6e61 6d65  nse>.      <name\n+000005c0: 3e41 7061 6368 6520 4c69 6365 6e73 652c  >Apache License,\n+000005d0: 2056 6572 7369 6f6e 2032 2e30 3c2f 6e61   Version 2.0</na\n+000005e0: 6d65 3e0a 2020 2020 2020 3c75 726c 3e68  me>.      <url>h\n+000005f0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+00000600: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+00000610: 4345 4e53 452d 322e 303c 2f75 726c 3e0a  CENSE-2.0</url>.\n+00000620: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n+00000630: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n+00000640: 6275 7469 6f6e 3e0a 2020 2020 3c2f 6c69  bution>.    </li\n+00000650: 6365 6e73 653e 0a20 203c 2f6c 6963 656e  cense>.  </licen\n+00000660: 7365 733e 0a20 203c 7072 6f70 6572 7469  ses>.  <properti\n+00000670: 6573 3e0a 2020 2020 3c73 6b69 705f 6d61  es>.    <skip_ma\n+00000680: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n+00000690: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n+000006a0: 6c6f 793e 0a20 203c 2f70 726f 7065 7274  loy>.  </propert\n+000006b0: 6965 733e 0a20 203c 6465 7065 6e64 656e  ies>.  <dependen\n+000006c0: 6369 6573 3e0a 2020 2020 3c64 6570 656e  cies>.    <depen\n+000006d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000006e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000006f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000700: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000710: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+00000720: 672d 6170 693c 2f61 7274 6966 6163 7449  g-api</artifactI\n+00000730: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000740: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000750: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000760: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000770: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000780: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000790: 6772 6f75 7049 643e 6f72 672e 6a62 6f73  groupId>org.jbos\n+000007a0: 732e 6e65 7474 793c 2f67 726f 7570 4964  s.netty</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 6e65 7474 793c 2f61 7274 6966  tId>netty</artif\n+000007d0: 6163 7449 643e 0a20 2020 203c 2f64 6570  actId>.    </dep\n+000007e0: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+000007f0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000800: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+00000810: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+00000820: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000830: 6163 7449 643e 6475 6262 6f2d 7365 7269  actId>dubbo-seri\n+00000840: 616c 697a 6174 696f 6e2d 6865 7373 6961  alization-hessia\n+00000850: 6e32 3c2f 6172 7469 6661 6374 4964 3e0a  n2</artifactId>.\n+00000860: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000870: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n+00000880: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n+00000890: 6e3e 0a20 2020 2020 203c 7363 6f70 653e  n>.      <scope>\n+000008a0: 7465 7374 3c2f 7363 6f70 653e 0a20 2020  test</scope>.   \n+000008b0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+000008c0: 203c 2f64 6570 656e 6465 6e63 6965 733e   </dependencies>\n+000008d0: 0a3c 2f70 726f 6a65 6374 3e0a            .</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-netty4/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,150 +1,147 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 6e65 7474 7934  -remoting-netty4\n-00000520: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000530: 203c 7665 7273 696f 6e3e 322e 372e 3130   <version>2.7.10\n-00000540: 3c2f 7665 7273 696f 6e3e 0d0a 2020 3c6e  </version>..  <n\n-00000550: 616d 653e 247b 7072 6f6a 6563 742e 6172  ame>${project.ar\n-00000560: 7469 6661 6374 4964 7d3c 2f6e 616d 653e  tifactId}</name>\n-00000570: 0d0a 2020 3c64 6573 6372 6970 7469 6f6e  ..  <description\n-00000580: 3e54 6865 206e 6574 7479 3420 7265 6d6f  >The netty4 remo\n-00000590: 7469 6e67 206d 6f64 756c 6520 6f66 2064  ting module of d\n-000005a0: 7562 626f 2070 726f 6a65 6374 3c2f 6465  ubbo project</de\n-000005b0: 7363 7269 7074 696f 6e3e 0d0a 2020 3c6c  scription>..  <l\n-000005c0: 6963 656e 7365 733e 0d0a 2020 2020 3c6c  icenses>..    <l\n-000005d0: 6963 656e 7365 3e0d 0a20 2020 2020 203c  icense>..      <\n-000005e0: 6e61 6d65 3e41 7061 6368 6520 4c69 6365  name>Apache Lice\n-000005f0: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n-00000600: 3c2f 6e61 6d65 3e0d 0a20 2020 2020 203c  </name>..      <\n-00000610: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n-00000620: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n-00000630: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n-00000640: 7572 6c3e 0d0a 2020 2020 2020 3c64 6973  url>..      <dis\n-00000650: 7472 6962 7574 696f 6e3e 7265 706f 3c2f  tribution>repo</\n-00000660: 6469 7374 7269 6275 7469 6f6e 3e0d 0a20  distribution>.. \n-00000670: 2020 203c 2f6c 6963 656e 7365 3e0d 0a20     </license>.. \n-00000680: 203c 2f6c 6963 656e 7365 733e 0d0a 2020   </licenses>..  \n-00000690: 3c70 726f 7065 7274 6965 733e 0d0a 2020  <properties>..  \n-000006a0: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n-000006b0: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n-000006c0: 5f6d 6176 656e 5f64 6570 6c6f 793e 0d0a  _maven_deploy>..\n-000006d0: 2020 2020 3c70 726f 6a65 6374 2e62 7569      <project.bui\n-000006e0: 6c64 2e73 6f75 7263 6545 6e63 6f64 696e  ld.sourceEncodin\n-000006f0: 673e 5554 462d 383c 2f70 726f 6a65 6374  g>UTF-8</project\n-00000700: 2e62 7569 6c64 2e73 6f75 7263 6545 6e63  .build.sourceEnc\n-00000710: 6f64 696e 673e 0d0a 2020 3c2f 7072 6f70  oding>..  </prop\n-00000720: 6572 7469 6573 3e0d 0a20 203c 6465 7065  erties>..  <depe\n-00000730: 6e64 656e 6369 6573 3e0d 0a20 2020 203c  ndencies>..    <\n-00000740: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000750: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000760: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000770: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000780: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000790: 7265 6d6f 7469 6e67 2d61 7069 3c2f 6172  remoting-api</ar\n-000007a0: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-000007b0: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-000007c0: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-000007d0: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-000007e0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-000007f0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000800: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000810: 4964 3e69 6f2e 6e65 7474 793c 2f67 726f  Id>io.netty</gro\n-00000820: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000830: 7469 6661 6374 4964 3e6e 6574 7479 2d61  tifactId>netty-a\n-00000840: 6c6c 3c2f 6172 7469 6661 6374 4964 3e0d  ll</artifactId>.\n-00000850: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000860: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000870: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000880: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000890: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-000008a0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000008b0: 4964 3e64 7562 626f 2d73 6572 6961 6c69  Id>dubbo-seriali\n-000008c0: 7a61 7469 6f6e 2d68 6573 7369 616e 323c  zation-hessian2<\n-000008d0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000008e0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-000008f0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n-00000900: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000910: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000920: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000930: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000940: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000950: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 6e65 7474 7934 3c2f 6172 7469 6661 6374  netty4</artifact\n+00000510: 4964 3e0a 2020 3c76 6572 7369 6f6e 3e32  Id>.  <version>2\n+00000520: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0a  .7.10</version>.\n+00000530: 2020 3c6e 616d 653e 247b 7072 6f6a 6563    <name>${projec\n+00000540: 742e 6172 7469 6661 6374 4964 7d3c 2f6e  t.artifactId}</n\n+00000550: 616d 653e 0a20 203c 6465 7363 7269 7074  ame>.  <descript\n+00000560: 696f 6e3e 5468 6520 6e65 7474 7934 2072  ion>The netty4 r\n+00000570: 656d 6f74 696e 6720 6d6f 6475 6c65 206f  emoting module o\n+00000580: 6620 6475 6262 6f20 7072 6f6a 6563 743c  f dubbo project<\n+00000590: 2f64 6573 6372 6970 7469 6f6e 3e0a 2020  /description>.  \n+000005a0: 3c6c 6963 656e 7365 733e 0a20 2020 203c  <licenses>.    <\n+000005b0: 6c69 6365 6e73 653e 0a20 2020 2020 203c  license>.      <\n+000005c0: 6e61 6d65 3e41 7061 6368 6520 4c69 6365  name>Apache Lice\n+000005d0: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+000005e0: 3c2f 6e61 6d65 3e0a 2020 2020 2020 3c75  </name>.      <u\n+000005f0: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n+00000600: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n+00000610: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n+00000620: 726c 3e0a 2020 2020 2020 3c64 6973 7472  rl>.      <distr\n+00000630: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n+00000640: 7374 7269 6275 7469 6f6e 3e0a 2020 2020  stribution>.    \n+00000650: 3c2f 6c69 6365 6e73 653e 0a20 203c 2f6c  </license>.  </l\n+00000660: 6963 656e 7365 733e 0a20 203c 7072 6f70  icenses>.  <prop\n+00000670: 6572 7469 6573 3e0a 2020 2020 3c73 6b69  erties>.    <ski\n+00000680: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n+00000690: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n+000006a0: 5f64 6570 6c6f 793e 0a20 2020 203c 7072  _deploy>.    <pr\n+000006b0: 6f6a 6563 742e 6275 696c 642e 736f 7572  oject.build.sour\n+000006c0: 6365 456e 636f 6469 6e67 3e55 5446 2d38  ceEncoding>UTF-8\n+000006d0: 3c2f 7072 6f6a 6563 742e 6275 696c 642e  </project.build.\n+000006e0: 736f 7572 6365 456e 636f 6469 6e67 3e0a  sourceEncoding>.\n+000006f0: 2020 3c2f 7072 6f70 6572 7469 6573 3e0a    </properties>.\n+00000700: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n+00000710: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000720: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000730: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000740: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000750: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000760: 6262 6f2d 7265 6d6f 7469 6e67 2d61 7069  bbo-remoting-api\n+00000770: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000780: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+00000790: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+000007a0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+000007b0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+000007c0: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+000007d0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000007e0: 4964 3e69 6f2e 6e65 7474 793c 2f67 726f  Id>io.netty</gro\n+000007f0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000800: 6966 6163 7449 643e 6e65 7474 792d 616c  ifactId>netty-al\n+00000810: 6c3c 2f61 7274 6966 6163 7449 643e 0a20  l</artifactId>. \n+00000820: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000830: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000840: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000850: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000860: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000870: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000880: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000890: 6e2d 6865 7373 6961 6e32 3c2f 6172 7469  n-hessian2</arti\n+000008a0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+000008b0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+000008c0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+000008d0: 3c2f 7665 7273 696f 6e3e 0a20 2020 2020  </version>.     \n+000008e0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+000008f0: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+00000900: 6465 6e63 793e 0a20 203c 2f64 6570 656e  dency>.  </depen\n+00000910: 6465 6e63 6965 733e 0a3c 2f70 726f 6a65  dencies>.</proje\n+00000920: 6374 3e0a                                ct>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-p2p/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,138 +1,135 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 656d 6f74 696e 673c 2f61 7274  bo-remoting</art\n-000004a0: 6966 6163 7449 643e 0d0a 2020 2020 3c76  ifactId>..    <v\n-000004b0: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-000004c0: 6572 7369 6f6e 3e0d 0a20 203c 2f70 6172  ersion>..  </par\n-000004d0: 656e 743e 0d0a 2020 3c67 726f 7570 4964  ent>..  <groupId\n-000004e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-000004f0: 6f3c 2f67 726f 7570 4964 3e0d 0a20 203c  o</groupId>..  <\n-00000500: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000510: 2d72 656d 6f74 696e 672d 7032 703c 2f61  -remoting-p2p</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000560: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000570: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-00000580: 6520 7032 7020 7265 6d6f 7469 6e67 206d  e p2p remoting m\n-00000590: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n-000005a0: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n-000005b0: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-000005c0: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-000005d0: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-000005e0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-000005f0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-00000600: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-00000610: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-00000620: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-00000630: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000660: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000670: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000680: 656e 7365 733e 0d0a 2020 3c70 726f 7065  enses>..  <prope\n-00000690: 7274 6965 733e 0d0a 2020 2020 3c73 6b69  rties>..    <ski\n-000006a0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n-000006b0: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n-000006c0: 5f64 6570 6c6f 793e 0d0a 2020 3c2f 7072  _deploy>..  </pr\n-000006d0: 6f70 6572 7469 6573 3e0d 0a20 203c 6465  operties>..  <de\n-000006e0: 7065 6e64 656e 6369 6573 3e0d 0a20 2020  pendencies>..   \n-000006f0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000700: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000710: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000720: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000730: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000740: 6f2d 7265 6d6f 7469 6e67 2d61 7069 3c2f  o-remoting-api</\n-00000750: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000760: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-00000770: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000780: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000790: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000007a0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000007b0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000007c0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-000007d0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-000007e0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000007f0: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n-00000800: 672d 6e65 7474 7934 3c2f 6172 7469 6661  g-netty4</artifa\n-00000810: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000820: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000830: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000840: 2f76 6572 7369 6f6e 3e0d 0a20 2020 2020  /version>..     \n-00000850: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-00000860: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-00000870: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-00000880: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-00000890: 6f6a 6563 743e 0d0a                      oject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+00000480: 6f74 696e 673c 2f61 7274 6966 6163 7449  oting</artifactI\n+00000490: 643e 0a20 2020 203c 7665 7273 696f 6e3e  d>.    <version>\n+000004a0: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+000004b0: 0a20 203c 2f70 6172 656e 743e 0a20 203c  .  </parent>.  <\n+000004c0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+000004d0: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000004e0: 643e 0a20 203c 6172 7469 6661 6374 4964  d>.  <artifactId\n+000004f0: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000500: 7032 703c 2f61 7274 6966 6163 7449 643e  p2p</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000540: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000550: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000560: 3e54 6865 2070 3270 2072 656d 6f74 696e  >The p2p remotin\n+00000570: 6720 6d6f 6475 6c65 206f 6620 6475 6262  g module of dubb\n+00000580: 6f20 7072 6f6a 6563 743c 2f64 6573 6372  o project</descr\n+00000590: 6970 7469 6f6e 3e0a 2020 3c6c 6963 656e  iption>.  <licen\n+000005a0: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+000005b0: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+000005c0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+000005d0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+000005e0: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+000005f0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+00000600: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+00000610: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+00000620: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+00000630: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+00000640: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+00000650: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000660: 733e 0a20 203c 7072 6f70 6572 7469 6573  s>.  <properties\n+00000670: 3e0a 2020 2020 3c73 6b69 705f 6d61 7665  >.    <skip_mave\n+00000680: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n+00000690: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+000006a0: 793e 0a20 203c 2f70 726f 7065 7274 6965  y>.  </propertie\n+000006b0: 733e 0a20 203c 6465 7065 6e64 656e 6369  s>.  <dependenci\n+000006c0: 6573 3e0a 2020 2020 3c64 6570 656e 6465  es>.    <depende\n+000006d0: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006e0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000006f0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000700: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000710: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000720: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000730: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000740: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000750: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000760: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+00000770: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000780: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000790: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000007a0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000007b0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000007c0: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+000007d0: 672d 6e65 7474 7934 3c2f 6172 7469 6661  g-netty4</artifa\n+000007e0: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+000007f0: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000800: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000810: 7665 7273 696f 6e3e 0a20 2020 2020 203c  version>.      <\n+00000820: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n+00000830: 653e 0a20 2020 203c 2f64 6570 656e 6465  e>.    </depende\n+00000840: 6e63 793e 0a20 203c 2f64 6570 656e 6465  ncy>.  </depende\n+00000850: 6e63 6965 733e 0a3c 2f70 726f 6a65 6374  ncies>.</project\n+00000860: 3e0a                                     >.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-remoting-zookeeper/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,162 +1,158 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a2d 2d3e 0d0a 3c70 726f  ense...-->..<pro\n-00000350: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000360: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000370: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-00000380: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-00000390: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003a0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003b0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003c0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003d0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-000003e0: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-000003f0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000400: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000410: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000420: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000430: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000440: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000450: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000460: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000470: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-00000480: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000490: 2d72 656d 6f74 696e 673c 2f61 7274 6966  -remoting</artif\n-000004a0: 6163 7449 643e 0d0a 2020 2020 3c76 6572  actId>..    <ver\n-000004b0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n-000004c0: 7369 6f6e 3e0d 0a20 203c 2f70 6172 656e  sion>..  </paren\n-000004d0: 743e 0d0a 2020 3c67 726f 7570 4964 3e6f  t>..  <groupId>o\n-000004e0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000004f0: 2f67 726f 7570 4964 3e0d 0a20 203c 6172  /groupId>..  <ar\n-00000500: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000510: 656d 6f74 696e 672d 7a6f 6f6b 6565 7065  emoting-zookeepe\n-00000520: 723c 2f61 7274 6966 6163 7449 643e 0d0a  r</artifactId>..\n-00000530: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n-00000540: 303c 2f76 6572 7369 6f6e 3e0d 0a20 203c  0</version>..  <\n-00000550: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n-00000560: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n-00000570: 3e0d 0a20 203c 6465 7363 7269 7074 696f  >..  <descriptio\n-00000580: 6e3e 5468 6520 7a6f 6f6b 6565 7065 7220  n>The zookeeper \n-00000590: 7265 6d6f 7469 6e67 206d 6f64 756c 6520  remoting module \n-000005a0: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n-000005b0: 3c2f 6465 7363 7269 7074 696f 6e3e 0d0a  </description>..\n-000005c0: 2020 3c6c 6963 656e 7365 733e 0d0a 2020    <licenses>..  \n-000005d0: 2020 3c6c 6963 656e 7365 3e0d 0a20 2020    <license>..   \n-000005e0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n-000005f0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n-00000600: 2032 2e30 3c2f 6e61 6d65 3e0d 0a20 2020   2.0</name>..   \n-00000610: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n-00000620: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-00000630: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000640: 2e30 3c2f 7572 6c3e 0d0a 2020 2020 2020  .0</url>..      \n-00000650: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n-00000660: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n-00000670: 3e0d 0a20 2020 203c 2f6c 6963 656e 7365  >..    </license\n-00000680: 3e0d 0a20 203c 2f6c 6963 656e 7365 733e  >..  </licenses>\n-00000690: 0d0a 2020 3c70 726f 7065 7274 6965 733e  ..  <properties>\n-000006a0: 0d0a 2020 2020 3c73 6b69 705f 6d61 7665  ..    <skip_mave\n-000006b0: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n-000006c0: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n-000006d0: 793e 0d0a 2020 3c2f 7072 6f70 6572 7469  y>..  </properti\n-000006e0: 6573 3e0d 0a20 203c 6465 7065 6e64 656e  es>..  <dependen\n-000006f0: 6369 6573 3e0d 0a20 2020 203c 6465 7065  cies>..    <depe\n-00000700: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000710: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000720: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000730: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000740: 6163 7449 643e 6475 6262 6f2d 7265 6d6f  actId>dubbo-remo\n-00000750: 7469 6e67 2d61 7069 3c2f 6172 7469 6661  ting-api</artifa\n-00000760: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000770: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000780: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000790: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000007a0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007b0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000007c0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000007d0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000007e0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007f0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000800: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n-00000810: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-00000820: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-00000830: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-00000840: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000850: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000860: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000870: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000880: 6f72 672e 6170 6163 6865 2e63 7572 6174  org.apache.curat\n-00000890: 6f72 3c2f 6772 6f75 7049 643e 0d0a 2020  or</groupId>..  \n-000008a0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000008b0: 6375 7261 746f 722d 7265 6369 7065 733c  curator-recipes<\n-000008c0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000008d0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000008e0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000008f0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000900: 643e 6f72 672e 6170 6163 6865 2e7a 6f6f  d>org.apache.zoo\n-00000910: 6b65 6570 6572 3c2f 6772 6f75 7049 643e  keeper</groupId>\n-00000920: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000930: 7449 643e 7a6f 6f6b 6565 7065 723c 2f61  tId>zookeeper</a\n-00000940: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000950: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000960: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000970: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000980: 6f72 672e 6170 6163 6865 2e63 7572 6174  org.apache.curat\n-00000990: 6f72 3c2f 6772 6f75 7049 643e 0d0a 2020  or</groupId>..  \n-000009a0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000009b0: 6375 7261 746f 722d 7465 7374 3c2f 6172  curator-test</ar\n-000009c0: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-000009d0: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-000009e0: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-000009f0: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-00000a00: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-00000a10: 6f6a 6563 743e 0d0a                      oject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a2d 2d3e 0a3c 7072 6f6a  cense..-->.<proj\n+00000340: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000350: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000360: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000370: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+00000380: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+00000390: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003a0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003b0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003c0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003d0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+000003e0: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+000003f0: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000400: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000410: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000420: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000430: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000440: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000450: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000460: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000470: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n+00000480: 696e 673c 2f61 7274 6966 6163 7449 643e  ing</artifactId>\n+00000490: 0a20 2020 203c 7665 7273 696f 6e3e 322e  .    <version>2.\n+000004a0: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+000004b0: 203c 2f70 6172 656e 743e 0a20 203c 6772   </parent>.  <gr\n+000004c0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000004d0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000004e0: 0a20 203c 6172 7469 6661 6374 4964 3e64  .  <artifactId>d\n+000004f0: 7562 626f 2d72 656d 6f74 696e 672d 7a6f  ubbo-remoting-zo\n+00000500: 6f6b 6565 7065 723c 2f61 7274 6966 6163  okeeper</artifac\n+00000510: 7449 643e 0a20 203c 7665 7273 696f 6e3e  tId>.  <version>\n+00000520: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n+00000530: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n+00000540: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n+00000550: 6e61 6d65 3e0a 2020 3c64 6573 6372 6970  name>.  <descrip\n+00000560: 7469 6f6e 3e54 6865 207a 6f6f 6b65 6570  tion>The zookeep\n+00000570: 6572 2072 656d 6f74 696e 6720 6d6f 6475  er remoting modu\n+00000580: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n+00000590: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n+000005a0: 3e0a 2020 3c6c 6963 656e 7365 733e 0a20  >.  <licenses>. \n+000005b0: 2020 203c 6c69 6365 6e73 653e 0a20 2020     <license>.   \n+000005c0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n+000005d0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n+000005e0: 2032 2e30 3c2f 6e61 6d65 3e0a 2020 2020   2.0</name>.    \n+000005f0: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n+00000600: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n+00000610: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n+00000620: 303c 2f75 726c 3e0a 2020 2020 2020 3c64  0</url>.      <d\n+00000630: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n+00000640: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0a  </distribution>.\n+00000650: 2020 2020 3c2f 6c69 6365 6e73 653e 0a20      </license>. \n+00000660: 203c 2f6c 6963 656e 7365 733e 0a20 203c   </licenses>.  <\n+00000670: 7072 6f70 6572 7469 6573 3e0a 2020 2020  properties>.    \n+00000680: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n+00000690: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n+000006a0: 6176 656e 5f64 6570 6c6f 793e 0a20 203c  aven_deploy>.  <\n+000006b0: 2f70 726f 7065 7274 6965 733e 0a20 203c  /properties>.  <\n+000006c0: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+000006d0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006e0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000006f0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+00000700: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000710: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000720: 2d72 656d 6f74 696e 672d 6170 693c 2f61  -remoting-api</a\n+00000730: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000740: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000750: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000760: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000770: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000780: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000790: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000007a0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000007b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007c0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000007d0: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n+000007e0: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+000007f0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000800: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000810: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000820: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000830: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000840: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000850: 6170 6163 6865 2e63 7572 6174 6f72 3c2f  apache.curator</\n+00000860: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000870: 6172 7469 6661 6374 4964 3e63 7572 6174  artifactId>curat\n+00000880: 6f72 2d72 6563 6970 6573 3c2f 6172 7469  or-recipes</arti\n+00000890: 6661 6374 4964 3e0a 2020 2020 3c2f 6465  factId>.    </de\n+000008a0: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+000008b0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+000008c0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000008d0: 6163 6865 2e7a 6f6f 6b65 6570 6572 3c2f  ache.zookeeper</\n+000008e0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000008f0: 6172 7469 6661 6374 4964 3e7a 6f6f 6b65  artifactId>zooke\n+00000900: 6570 6572 3c2f 6172 7469 6661 6374 4964  eper</artifactId\n+00000910: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000920: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000930: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000940: 7049 643e 6f72 672e 6170 6163 6865 2e63  pId>org.apache.c\n+00000950: 7572 6174 6f72 3c2f 6772 6f75 7049 643e  urator</groupId>\n+00000960: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000970: 4964 3e63 7572 6174 6f72 2d74 6573 743c  Id>curator-test<\n+00000980: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000990: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+000009a0: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+000009b0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+000009c0: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+000009d0: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,155 +1,152 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 7270 6320 6d6f 6475  ion>The rpc modu\n-00000580: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n-00000590: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n-000005a0: 3e0d 0a20 203c 6c69 6365 6e73 6573 3e0d  >..  <licenses>.\n-000005b0: 0a20 2020 203c 6c69 6365 6e73 653e 0d0a  .    <license>..\n-000005c0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n-000005d0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n-000005e0: 696f 6e20 322e 303c 2f6e 616d 653e 0d0a  ion 2.0</name>..\n-000005f0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n-00000600: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-00000610: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-00000620: 452d 322e 303c 2f75 726c 3e0d 0a20 2020  E-2.0</url>..   \n-00000630: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n-00000640: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n-00000650: 696f 6e3e 0d0a 2020 2020 3c2f 6c69 6365  ion>..    </lice\n-00000660: 6e73 653e 0d0a 2020 3c2f 6c69 6365 6e73  nse>..  </licens\n-00000670: 6573 3e0d 0a20 203c 7072 6f70 6572 7469  es>..  <properti\n-00000680: 6573 3e0d 0a20 2020 203c 736b 6970 5f6d  es>..    <skip_m\n-00000690: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n-000006a0: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n-000006b0: 706c 6f79 3e0d 0a20 203c 2f70 726f 7065  ploy>..  </prope\n-000006c0: 7274 6965 733e 0d0a 2020 3c64 6570 656e  rties>..  <depen\n-000006d0: 6465 6e63 6965 733e 0d0a 2020 2020 3c64  dencies>..    <d\n-000006e0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000006f0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000700: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-00000710: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000720: 7469 6661 6374 4964 3e64 7562 626f 2d63  tifactId>dubbo-c\n-00000730: 6f6d 6d6f 6e3c 2f61 7274 6966 6163 7449  ommon</artifactI\n-00000740: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-00000750: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-00000760: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-00000770: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-00000780: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000790: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000007a0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000007b0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000007c0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000007d0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-000007e0: 7365 7269 616c 697a 6174 696f 6e2d 6170  serialization-ap\n-000007f0: 693c 2f61 7274 6966 6163 7449 643e 0d0a  i</artifactId>..\n-00000800: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n-00000810: 7b70 726f 6a65 6374 2e70 6172 656e 742e  {project.parent.\n-00000820: 7665 7273 696f 6e7d 3c2f 7665 7273 696f  version}</versio\n-00000830: 6e3e 0d0a 2020 2020 3c2f 6465 7065 6e64  n>..    </depend\n-00000840: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000850: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000860: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000870: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000880: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000890: 6163 7449 643e 6475 6262 6f2d 7265 6d6f  actId>dubbo-remo\n-000008a0: 7469 6e67 2d61 7069 3c2f 6172 7469 6661  ting-api</artifa\n-000008b0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-000008c0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-000008d0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-000008e0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000008f0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000900: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000910: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-00000920: 6f6d 2e61 6c69 6261 6261 3c2f 6772 6f75  om.alibaba</grou\n-00000930: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000940: 6966 6163 7449 643e 6865 7373 6961 6e2d  ifactId>hessian-\n-00000950: 6c69 7465 3c2f 6172 7469 6661 6374 4964  lite</artifactId\n-00000960: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-00000970: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-00000980: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000990: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n-000009a0: 733e 0d0a 3c2f 7072 6f6a 6563 743e 0d0a  s>..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6170 693c 2f61 7274 6966  o-rpc-api</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2072 7063 206d  iption>The rpc m\n+00000560: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n+00000570: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n+00000580: 696f 6e3e 0a20 203c 6c69 6365 6e73 6573  ion>.  <licenses\n+00000590: 3e0a 2020 2020 3c6c 6963 656e 7365 3e0a  >.    <license>.\n+000005a0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n+000005b0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n+000005c0: 696f 6e20 322e 303c 2f6e 616d 653e 0a20  ion 2.0</name>. \n+000005d0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n+000005e0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n+000005f0: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n+00000600: 2d32 2e30 3c2f 7572 6c3e 0a20 2020 2020  -2.0</url>.     \n+00000610: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n+00000620: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n+00000630: 6e3e 0a20 2020 203c 2f6c 6963 656e 7365  n>.    </license\n+00000640: 3e0a 2020 3c2f 6c69 6365 6e73 6573 3e0a  >.  </licenses>.\n+00000650: 2020 3c70 726f 7065 7274 6965 733e 0a20    <properties>. \n+00000660: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n+00000670: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n+00000680: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0a  p_maven_deploy>.\n+00000690: 2020 3c2f 7072 6f70 6572 7469 6573 3e0a    </properties>.\n+000006a0: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n+000006b0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000006c0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000006d0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+000006e0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+000006f0: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000700: 6262 6f2d 636f 6d6d 6f6e 3c2f 6172 7469  bbo-common</arti\n+00000710: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000720: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+00000730: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000740: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+00000750: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000760: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000770: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000780: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000790: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000007a0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+000007b0: 7365 7269 616c 697a 6174 696f 6e2d 6170  serialization-ap\n+000007c0: 693c 2f61 7274 6966 6163 7449 643e 0a20  i</artifactId>. \n+000007d0: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n+000007e0: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n+000007f0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+00000800: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000810: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000820: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000830: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+00000840: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000850: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000860: 3e64 7562 626f 2d72 656d 6f74 696e 672d  >dubbo-remoting-\n+00000870: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000880: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000890: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+000008a0: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+000008b0: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+000008c0: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+000008d0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000008e0: 6f75 7049 643e 636f 6d2e 616c 6962 6162  oupId>com.alibab\n+000008f0: 613c 2f67 726f 7570 4964 3e0a 2020 2020  a</groupId>.    \n+00000900: 2020 3c61 7274 6966 6163 7449 643e 6865    <artifactId>he\n+00000910: 7373 6961 6e2d 6c69 7465 3c2f 6172 7469  ssian-lite</arti\n+00000920: 6661 6374 4964 3e0a 2020 2020 2020 3c73  factId>.      <s\n+00000930: 636f 7065 3e74 6573 743c 2f73 636f 7065  cope>test</scope\n+00000940: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000950: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+00000960: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+00000970: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-dubbo/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,252 +1,245 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6475 6262 6f3c 2f61 7274 6966 6163 7449  dubbo</artifactI\n-00000520: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000530: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000540: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000550: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000560: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-00000570: 7074 696f 6e3e 5468 6520 6465 6661 756c  ption>The defaul\n-00000580: 7420 7270 6320 6d6f 6475 6c65 206f 6620  t rpc module of \n-00000590: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n-000005a0: 6573 6372 6970 7469 6f6e 3e0d 0a20 203c  escription>..  <\n-000005b0: 6c69 6365 6e73 6573 3e0d 0a20 2020 203c  licenses>..    <\n-000005c0: 6c69 6365 6e73 653e 0d0a 2020 2020 2020  license>..      \n-000005d0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n-000005e0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n-000005f0: 303c 2f6e 616d 653e 0d0a 2020 2020 2020  0</name>..      \n-00000600: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n-00000610: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n-00000620: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n-00000630: 2f75 726c 3e0d 0a20 2020 2020 203c 6469  /url>..      <di\n-00000640: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n-00000650: 2f64 6973 7472 6962 7574 696f 6e3e 0d0a  /distribution>..\n-00000660: 2020 2020 3c2f 6c69 6365 6e73 653e 0d0a      </license>..\n-00000670: 2020 3c2f 6c69 6365 6e73 6573 3e0d 0a20    </licenses>.. \n-00000680: 203c 7072 6f70 6572 7469 6573 3e0d 0a20   <properties>.. \n-00000690: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n-000006a0: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n-000006b0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0d  p_maven_deploy>.\n-000006c0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n-000006d0: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-000006e0: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-000006f0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000700: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000710: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000720: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000730: 4964 3e64 7562 626f 2d72 7063 2d61 7069  Id>dubbo-rpc-api\n-00000740: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000750: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000760: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000770: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000780: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000790: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007b0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007c0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000007d0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000007e0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n-000007f0: 696e 672d 6170 693c 2f61 7274 6966 6163  ing-api</artifac\n-00000800: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000810: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000820: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000830: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000840: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000850: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000860: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000870: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000880: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000890: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-000008a0: 6f2d 636c 7573 7465 723c 2f61 7274 6966  o-cluster</artif\n-000008b0: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-000008c0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-000008d0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-000008e0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000008f0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000900: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000910: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000920: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n-00000930: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000940: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000950: 6262 6f2d 7265 6d6f 7469 6e67 2d6e 6574  bbo-remoting-net\n-00000960: 7479 343c 2f61 7274 6966 6163 7449 643e  ty4</artifactId>\n-00000970: 0d0a 2020 2020 2020 3c76 6572 7369 6f6e  ..      <version\n-00000980: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n-00000990: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-000009a0: 696f 6e3e 0d0a 2020 2020 2020 3c73 636f  ion>..      <sco\n-000009b0: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-000009c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000009d0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000009e0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000009f0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000a00: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000a10: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000a20: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n-00000a30: 672d 6d69 6e61 3c2f 6172 7469 6661 6374  g-mina</artifact\n-00000a40: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000a50: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000a60: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000a70: 6572 7369 6f6e 3e0d 0a20 2020 2020 203c  ersion>..      <\n-00000a80: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-00000a90: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000aa0: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000ab0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000ac0: 6772 6f75 7049 643e 696f 2e6e 6574 7479  groupId>io.netty\n-00000ad0: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000ae0: 2020 3c61 7274 6966 6163 7449 643e 6e65    <artifactId>ne\n-00000af0: 7474 792d 616c 6c3c 2f61 7274 6966 6163  tty-all</artifac\n-00000b00: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-00000b10: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000b20: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000b30: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000b40: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000b50: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000b60: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000b70: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000b80: 4964 3e64 7562 626f 2d73 6572 6961 6c69  Id>dubbo-seriali\n-00000b90: 7a61 7469 6f6e 2d68 6573 7369 616e 323c  zation-hessian2<\n-00000ba0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000bb0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n-00000bc0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n-00000bd0: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n-00000be0: 0d0a 2020 2020 2020 3c73 636f 7065 3e74  ..      <scope>t\n-00000bf0: 6573 743c 2f73 636f 7065 3e0d 0a20 2020  est</scope>..   \n-00000c00: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000c10: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000c20: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000c30: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000c40: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000c50: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n-00000c60: 7562 626f 2d73 6572 6961 6c69 7a61 7469  ubbo-serializati\n-00000c70: 6f6e 2d6a 646b 3c2f 6172 7469 6661 6374  on-jdk</artifact\n-00000c80: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000c90: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000ca0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000cb0: 6572 7369 6f6e 3e0d 0a20 2020 2020 203c  ersion>..      <\n-00000cc0: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-00000cd0: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000ce0: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000cf0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000d00: 6772 6f75 7049 643e 6a61 7661 782e 7661  groupId>javax.va\n-00000d10: 6c69 6461 7469 6f6e 3c2f 6772 6f75 7049  lidation</groupI\n-00000d20: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000d30: 6163 7449 643e 7661 6c69 6461 7469 6f6e  actId>validation\n-00000d40: 2d61 7069 3c2f 6172 7469 6661 6374 4964  -api</artifactId\n-00000d50: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-00000d60: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-00000d70: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000d80: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000d90: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000da0: 643e 6f72 672e 6869 6265 726e 6174 653c  d>org.hibernate<\n-00000db0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000dc0: 203c 6172 7469 6661 6374 4964 3e68 6962   <artifactId>hib\n-00000dd0: 6572 6e61 7465 2d76 616c 6964 6174 6f72  ernate-validator\n-00000de0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000df0: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000e00: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000e10: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000e20: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000e30: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000e40: 672e 676c 6173 7366 6973 683c 2f67 726f  g.glassfish</gro\n-00000e50: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000e60: 7469 6661 6374 4964 3e6a 6176 6178 2e65  tifactId>javax.e\n-00000e70: 6c3c 2f61 7274 6966 6163 7449 643e 0d0a  l</artifactId>..\n-00000e80: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n-00000e90: 743c 2f73 636f 7065 3e0d 0a20 2020 203c  t</scope>..    <\n-00000ea0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000eb0: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000ec0: 0a20 203c 6275 696c 643e 0d0a 2020 2020  .  <build>..    \n-00000ed0: 3c70 6c75 6769 6e73 3e0d 0a20 2020 2020  <plugins>..     \n-00000ee0: 203c 706c 7567 696e 3e0d 0a20 2020 2020   <plugin>..     \n-00000ef0: 2020 203c 6172 7469 6661 6374 4964 3e6d     <artifactId>m\n-00000f00: 6176 656e 2d73 7572 6566 6972 652d 706c  aven-surefire-pl\n-00000f10: 7567 696e 3c2f 6172 7469 6661 6374 4964  ugin</artifactId\n-00000f20: 3e0d 0a20 2020 2020 2020 203c 636f 6e66  >..        <conf\n-00000f30: 6967 7572 6174 696f 6e3e 0d0a 2020 2020  iguration>..    \n-00000f40: 2020 2020 2020 3c72 756e 4f72 6465 723e        <runOrder>\n-00000f50: 616c 7068 6162 6574 6963 616c 3c2f 7275  alphabetical</ru\n-00000f60: 6e4f 7264 6572 3e0d 0a20 2020 2020 2020  nOrder>..       \n-00000f70: 203c 2f63 6f6e 6669 6775 7261 7469 6f6e   </configuration\n-00000f80: 3e0d 0a20 2020 2020 203c 2f70 6c75 6769  >..      </plugi\n-00000f90: 6e3e 0d0a 2020 2020 3c2f 706c 7567 696e  n>..    </plugin\n-00000fa0: 733e 0d0a 2020 3c2f 6275 696c 643e 0d0a  s>..  </build>..\n-00000fb0: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6475 6262 6f3c 2f61 7274  o-rpc-dubbo</art\n+00000500: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000510: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000520: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000530: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000540: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000550: 6372 6970 7469 6f6e 3e54 6865 2064 6566  cription>The def\n+00000560: 6175 6c74 2072 7063 206d 6f64 756c 6520  ault rpc module \n+00000570: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n+00000580: 3c2f 6465 7363 7269 7074 696f 6e3e 0a20  </description>. \n+00000590: 203c 6c69 6365 6e73 6573 3e0a 2020 2020   <licenses>.    \n+000005a0: 3c6c 6963 656e 7365 3e0a 2020 2020 2020  <license>.      \n+000005b0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n+000005c0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n+000005d0: 303c 2f6e 616d 653e 0a20 2020 2020 203c  0</name>.      <\n+000005e0: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n+000005f0: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n+00000600: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n+00000610: 7572 6c3e 0a20 2020 2020 203c 6469 7374  url>.      <dist\n+00000620: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n+00000630: 6973 7472 6962 7574 696f 6e3e 0a20 2020  istribution>.   \n+00000640: 203c 2f6c 6963 656e 7365 3e0a 2020 3c2f   </license>.  </\n+00000650: 6c69 6365 6e73 6573 3e0a 2020 3c70 726f  licenses>.  <pro\n+00000660: 7065 7274 6965 733e 0a20 2020 203c 736b  perties>.    <sk\n+00000670: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000680: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n+00000690: 6e5f 6465 706c 6f79 3e0a 2020 3c2f 7072  n_deploy>.  </pr\n+000006a0: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+000006b0: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+000006c0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000006f0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000700: 6966 6163 7449 643e 6475 6262 6f2d 7270  ifactId>dubbo-rp\n+00000710: 632d 6170 693c 2f61 7274 6966 6163 7449  c-api</artifactI\n+00000720: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000730: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000740: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000750: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000760: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000770: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000780: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000790: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000007a0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+000007b0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n+000007c0: 696e 672d 6170 693c 2f61 7274 6966 6163  ing-api</artifac\n+000007d0: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+000007e0: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+000007f0: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000800: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000810: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000820: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000830: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000840: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000850: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000860: 6661 6374 4964 3e64 7562 626f 2d63 6c75  factId>dubbo-clu\n+00000870: 7374 6572 3c2f 6172 7469 6661 6374 4964  ster</artifactId\n+00000880: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000890: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000008a0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+000008b0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000008c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000008d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000008e0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000008f0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000900: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000910: 7449 643e 6475 6262 6f2d 7265 6d6f 7469  tId>dubbo-remoti\n+00000920: 6e67 2d6e 6574 7479 343c 2f61 7274 6966  ng-netty4</artif\n+00000930: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000940: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000950: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000960: 2f76 6572 7369 6f6e 3e0a 2020 2020 2020  /version>.      \n+00000970: 3c73 636f 7065 3e74 6573 743c 2f73 636f  <scope>test</sco\n+00000980: 7065 3e0a 2020 2020 3c2f 6465 7065 6e64  pe>.    </depend\n+00000990: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+000009a0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000009b0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+000009c0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+000009d0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000009e0: 4964 3e64 7562 626f 2d72 656d 6f74 696e  Id>dubbo-remotin\n+000009f0: 672d 6d69 6e61 3c2f 6172 7469 6661 6374  g-mina</artifact\n+00000a00: 4964 3e0a 2020 2020 2020 3c76 6572 7369  Id>.      <versi\n+00000a10: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n+00000a20: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n+00000a30: 7273 696f 6e3e 0a20 2020 2020 203c 7363  rsion>.      <sc\n+00000a40: 6f70 653e 7465 7374 3c2f 7363 6f70 653e  ope>test</scope>\n+00000a50: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000a60: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000a70: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000a80: 4964 3e69 6f2e 6e65 7474 793c 2f67 726f  Id>io.netty</gro\n+00000a90: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000aa0: 6966 6163 7449 643e 6e65 7474 792d 616c  ifactId>netty-al\n+00000ab0: 6c3c 2f61 7274 6966 6163 7449 643e 0a20  l</artifactId>. \n+00000ac0: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000ad0: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000ae0: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000af0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000b00: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000b10: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000b20: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000b30: 6966 6163 7449 643e 6475 6262 6f2d 7365  ifactId>dubbo-se\n+00000b40: 7269 616c 697a 6174 696f 6e2d 6865 7373  rialization-hess\n+00000b50: 6961 6e32 3c2f 6172 7469 6661 6374 4964  ian2</artifactId\n+00000b60: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000b70: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+00000b80: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000b90: 696f 6e3e 0a20 2020 2020 203c 7363 6f70  ion>.      <scop\n+00000ba0: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000bb0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000bc0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000bd0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000be0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+00000bf0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000c00: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000c10: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000c20: 6e2d 6a64 6b3c 2f61 7274 6966 6163 7449  n-jdk</artifactI\n+00000c30: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000c40: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000c50: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000c60: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000c70: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000c80: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000c90: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000ca0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000cb0: 643e 6a61 7661 782e 7661 6c69 6461 7469  d>javax.validati\n+00000cc0: 6f6e 3c2f 6772 6f75 7049 643e 0a20 2020  on</groupId>.   \n+00000cd0: 2020 203c 6172 7469 6661 6374 4964 3e76     <artifactId>v\n+00000ce0: 616c 6964 6174 696f 6e2d 6170 693c 2f61  alidation-api</a\n+00000cf0: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000d00: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n+00000d10: 6f70 653e 0a20 2020 203c 2f64 6570 656e  ope>.    </depen\n+00000d20: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000d30: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000d40: 726f 7570 4964 3e6f 7267 2e68 6962 6572  roupId>org.hiber\n+00000d50: 6e61 7465 3c2f 6772 6f75 7049 643e 0a20  nate</groupId>. \n+00000d60: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000d70: 3e68 6962 6572 6e61 7465 2d76 616c 6964  >hibernate-valid\n+00000d80: 6174 6f72 3c2f 6172 7469 6661 6374 4964  ator</artifactId\n+00000d90: 3e0a 2020 2020 2020 3c73 636f 7065 3e74  >.      <scope>t\n+00000da0: 6573 743c 2f73 636f 7065 3e0a 2020 2020  est</scope>.    \n+00000db0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000dc0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000dd0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+00000de0: 672e 676c 6173 7366 6973 683c 2f67 726f  g.glassfish</gro\n+00000df0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000e00: 6966 6163 7449 643e 6a61 7661 782e 656c  ifactId>javax.el\n+00000e10: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000e20: 2020 2020 3c73 636f 7065 3e74 6573 743c      <scope>test<\n+00000e30: 2f73 636f 7065 3e0a 2020 2020 3c2f 6465  /scope>.    </de\n+00000e40: 7065 6e64 656e 6379 3e0a 2020 3c2f 6465  pendency>.  </de\n+00000e50: 7065 6e64 656e 6369 6573 3e0a 2020 3c62  pendencies>.  <b\n+00000e60: 7569 6c64 3e0a 2020 2020 3c70 6c75 6769  uild>.    <plugi\n+00000e70: 6e73 3e0a 2020 2020 2020 3c70 6c75 6769  ns>.      <plugi\n+00000e80: 6e3e 0a20 2020 2020 2020 203c 6172 7469  n>.        <arti\n+00000e90: 6661 6374 4964 3e6d 6176 656e 2d73 7572  factId>maven-sur\n+00000ea0: 6566 6972 652d 706c 7567 696e 3c2f 6172  efire-plugin</ar\n+00000eb0: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000ec0: 2020 3c63 6f6e 6669 6775 7261 7469 6f6e    <configuration\n+00000ed0: 3e0a 2020 2020 2020 2020 2020 3c72 756e  >.          <run\n+00000ee0: 4f72 6465 723e 616c 7068 6162 6574 6963  Order>alphabetic\n+00000ef0: 616c 3c2f 7275 6e4f 7264 6572 3e0a 2020  al</runOrder>.  \n+00000f00: 2020 2020 2020 3c2f 636f 6e66 6967 7572        </configur\n+00000f10: 6174 696f 6e3e 0a20 2020 2020 203c 2f70  ation>.      </p\n+00000f20: 6c75 6769 6e3e 0a20 2020 203c 2f70 6c75  lugin>.    </plu\n+00000f30: 6769 6e73 3e0a 2020 3c2f 6275 696c 643e  gins>.  </build>\n+00000f40: 0a3c 2f70 726f 6a65 6374 3e0a            .</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-grpc/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,173 +1,168 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6772 7063 3c2f 6172 7469 6661 6374 4964  grpc</artifactId\n-00000520: 3e0d 0a20 203c 7665 7273 696f 6e3e 322e  >..  <version>2.\n-00000530: 372e 3130 3c2f 7665 7273 696f 6e3e 0d0a  7.10</version>..\n-00000540: 2020 3c6e 616d 653e 247b 7072 6f6a 6563    <name>${projec\n-00000550: 742e 6172 7469 6661 6374 4964 7d3c 2f6e  t.artifactId}</n\n-00000560: 616d 653e 0d0a 2020 3c64 6573 6372 6970  ame>..  <descrip\n-00000570: 7469 6f6e 3e54 6865 2067 5250 4320 696e  tion>The gRPC in\n-00000580: 7465 6772 6174 696f 6e20 6d6f 6475 6c65  tegration module\n-00000590: 3c2f 6465 7363 7269 7074 696f 6e3e 0d0a  </description>..\n-000005a0: 2020 3c6c 6963 656e 7365 733e 0d0a 2020    <licenses>..  \n-000005b0: 2020 3c6c 6963 656e 7365 3e0d 0a20 2020    <license>..   \n-000005c0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n-000005d0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n-000005e0: 2032 2e30 3c2f 6e61 6d65 3e0d 0a20 2020   2.0</name>..   \n-000005f0: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n-00000600: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-00000610: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000620: 2e30 3c2f 7572 6c3e 0d0a 2020 2020 2020  .0</url>..      \n-00000630: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n-00000640: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n-00000650: 3e0d 0a20 2020 203c 2f6c 6963 656e 7365  >..    </license\n-00000660: 3e0d 0a20 203c 2f6c 6963 656e 7365 733e  >..  </licenses>\n-00000670: 0d0a 2020 3c70 726f 7065 7274 6965 733e  ..  <properties>\n-00000680: 0d0a 2020 2020 3c73 6b69 705f 6d61 7665  ..    <skip_mave\n-00000690: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n-000006a0: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n-000006b0: 793e 0d0a 2020 3c2f 7072 6f70 6572 7469  y>..  </properti\n-000006c0: 6573 3e0d 0a20 203c 6465 7065 6e64 656e  es>..  <dependen\n-000006d0: 6369 6573 3e0d 0a20 2020 203c 6465 7065  cies>..    <depe\n-000006e0: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-000006f0: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000700: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000710: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000720: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000730: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n-00000740: 0d0a 2020 2020 2020 3c76 6572 7369 6f6e  ..      <version\n-00000750: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n-00000760: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000770: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-00000780: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000790: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-000007a0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-000007b0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-000007c0: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-000007d0: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n-000007e0: 6d6f 7469 6e67 2d68 7474 703c 2f61 7274  moting-http</art\n-000007f0: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000800: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000810: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000820: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000830: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000840: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000850: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000860: 643e 696f 2e67 7270 633c 2f67 726f 7570  d>io.grpc</group\n-00000870: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000880: 6661 6374 4964 3e67 7270 632d 6e65 7474  factId>grpc-nett\n-00000890: 793c 2f61 7274 6966 6163 7449 643e 0d0a  y</artifactId>..\n-000008a0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-000008b0: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-000008c0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-000008d0: 7049 643e 696f 2e67 7270 633c 2f67 726f  pId>io.grpc</gro\n-000008e0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-000008f0: 7469 6661 6374 4964 3e67 7270 632d 7072  tifactId>grpc-pr\n-00000900: 6f74 6f62 7566 3c2f 6172 7469 6661 6374  otobuf</artifact\n-00000910: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-00000920: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000930: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000940: 3c67 726f 7570 4964 3e69 6f2e 6772 7063  <groupId>io.grpc\n-00000950: 3c2f 6772 6f75 7049 643e 0d0a 2020 2020  </groupId>..    \n-00000960: 2020 3c61 7274 6966 6163 7449 643e 6772    <artifactId>gr\n-00000970: 7063 2d73 7475 623c 2f61 7274 6966 6163  pc-stub</artifac\n-00000980: 7449 643e 0d0a 2020 2020 3c2f 6465 7065  tId>..    </depe\n-00000990: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-000009a0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-000009b0: 203c 6772 6f75 7049 643e 696f 2e67 7270   <groupId>io.grp\n-000009c0: 633c 2f67 726f 7570 4964 3e0d 0a20 2020  c</groupId>..   \n-000009d0: 2020 203c 6172 7469 6661 6374 4964 3e67     <artifactId>g\n-000009e0: 7270 632d 636f 7265 3c2f 6172 7469 6661  rpc-core</artifa\n-000009f0: 6374 4964 3e0d 0a20 2020 203c 2f64 6570  ctId>..    </dep\n-00000a00: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000a10: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000a20: 2020 3c67 726f 7570 4964 3e6f 7267 2e73    <groupId>org.s\n-00000a30: 7072 696e 6766 7261 6d65 776f 726b 3c2f  pringframework</\n-00000a40: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000a50: 3c61 7274 6966 6163 7449 643e 7370 7269  <artifactId>spri\n-00000a60: 6e67 2d74 6573 743c 2f61 7274 6966 6163  ng-test</artifac\n-00000a70: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-00000a80: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000a90: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000aa0: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-00000ab0: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-00000ac0: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6772 7063 3c2f 6172 7469  o-rpc-grpc</arti\n+00000500: 6661 6374 4964 3e0a 2020 3c76 6572 7369  factId>.  <versi\n+00000510: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+00000520: 6f6e 3e0a 2020 3c6e 616d 653e 247b 7072  on>.  <name>${pr\n+00000530: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n+00000540: 7d3c 2f6e 616d 653e 0a20 203c 6465 7363  }</name>.  <desc\n+00000550: 7269 7074 696f 6e3e 5468 6520 6752 5043  ription>The gRPC\n+00000560: 2069 6e74 6567 7261 7469 6f6e 206d 6f64   integration mod\n+00000570: 756c 653c 2f64 6573 6372 6970 7469 6f6e  ule</description\n+00000580: 3e0a 2020 3c6c 6963 656e 7365 733e 0a20  >.  <licenses>. \n+00000590: 2020 203c 6c69 6365 6e73 653e 0a20 2020     <license>.   \n+000005a0: 2020 203c 6e61 6d65 3e41 7061 6368 6520     <name>Apache \n+000005b0: 4c69 6365 6e73 652c 2056 6572 7369 6f6e  License, Version\n+000005c0: 2032 2e30 3c2f 6e61 6d65 3e0a 2020 2020   2.0</name>.    \n+000005d0: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n+000005e0: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n+000005f0: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n+00000600: 303c 2f75 726c 3e0a 2020 2020 2020 3c64  0</url>.      <d\n+00000610: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n+00000620: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0a  </distribution>.\n+00000630: 2020 2020 3c2f 6c69 6365 6e73 653e 0a20      </license>. \n+00000640: 203c 2f6c 6963 656e 7365 733e 0a20 203c   </licenses>.  <\n+00000650: 7072 6f70 6572 7469 6573 3e0a 2020 2020  properties>.    \n+00000660: 3c73 6b69 705f 6d61 7665 6e5f 6465 706c  <skip_maven_depl\n+00000670: 6f79 3e66 616c 7365 3c2f 736b 6970 5f6d  oy>false</skip_m\n+00000680: 6176 656e 5f64 6570 6c6f 793e 0a20 203c  aven_deploy>.  <\n+00000690: 2f70 726f 7065 7274 6965 733e 0a20 203c  /properties>.  <\n+000006a0: 6465 7065 6e64 656e 6369 6573 3e0a 2020  dependencies>.  \n+000006b0: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+000006c0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000006d0: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n+000006e0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000006f0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n+00000700: 2d72 7063 2d61 7069 3c2f 6172 7469 6661  -rpc-api</artifa\n+00000710: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000720: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000730: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000740: 7665 7273 696f 6e3e 0a20 2020 203c 2f64  version>.    </d\n+00000750: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000760: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000770: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000780: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000790: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+000007a0: 6966 6163 7449 643e 6475 6262 6f2d 7265  ifactId>dubbo-re\n+000007b0: 6d6f 7469 6e67 2d68 7474 703c 2f61 7274  moting-http</art\n+000007c0: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+000007d0: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+000007e0: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+000007f0: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000800: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000810: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000820: 2020 2020 203c 6772 6f75 7049 643e 696f       <groupId>io\n+00000830: 2e67 7270 633c 2f67 726f 7570 4964 3e0a  .grpc</groupId>.\n+00000840: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000850: 643e 6772 7063 2d6e 6574 7479 3c2f 6172  d>grpc-netty</ar\n+00000860: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000870: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000880: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000890: 2020 203c 6772 6f75 7049 643e 696f 2e67     <groupId>io.g\n+000008a0: 7270 633c 2f67 726f 7570 4964 3e0a 2020  rpc</groupId>.  \n+000008b0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000008c0: 6772 7063 2d70 726f 746f 6275 663c 2f61  grpc-protobuf</a\n+000008d0: 7274 6966 6163 7449 643e 0a20 2020 203c  rtifactId>.    <\n+000008e0: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+000008f0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000900: 2020 2020 3c67 726f 7570 4964 3e69 6f2e      <groupId>io.\n+00000910: 6772 7063 3c2f 6772 6f75 7049 643e 0a20  grpc</groupId>. \n+00000920: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000930: 3e67 7270 632d 7374 7562 3c2f 6172 7469  >grpc-stub</arti\n+00000940: 6661 6374 4964 3e0a 2020 2020 3c2f 6465  factId>.    </de\n+00000950: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000960: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000970: 203c 6772 6f75 7049 643e 696f 2e67 7270   <groupId>io.grp\n+00000980: 633c 2f67 726f 7570 4964 3e0a 2020 2020  c</groupId>.    \n+00000990: 2020 3c61 7274 6966 6163 7449 643e 6772    <artifactId>gr\n+000009a0: 7063 2d63 6f72 653c 2f61 7274 6966 6163  pc-core</artifac\n+000009b0: 7449 643e 0a20 2020 203c 2f64 6570 656e  tId>.    </depen\n+000009c0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000009d0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000009e0: 726f 7570 4964 3e6f 7267 2e73 7072 696e  roupId>org.sprin\n+000009f0: 6766 7261 6d65 776f 726b 3c2f 6772 6f75  gframework</grou\n+00000a00: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000a10: 6661 6374 4964 3e73 7072 696e 672d 7465  factId>spring-te\n+00000a20: 7374 3c2f 6172 7469 6661 6374 4964 3e0a  st</artifactId>.\n+00000a30: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+00000a40: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+00000a50: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000a60: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000a70: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-hessian/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,174 +1,169 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6865 7373 6961 6e3c 2f61 7274 6966 6163  hessian</artifac\n-00000520: 7449 643e 0d0a 2020 3c76 6572 7369 6f6e  tId>..  <version\n-00000530: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n-00000540: 3e0d 0a20 203c 6e61 6d65 3e24 7b70 726f  >..  <name>${pro\n-00000550: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n-00000560: 3c2f 6e61 6d65 3e0d 0a20 203c 6465 7363  </name>..  <desc\n-00000570: 7269 7074 696f 6e3e 5468 6520 6865 7373  ription>The hess\n-00000580: 6961 6e20 7270 6320 6d6f 6475 6c65 206f  ian rpc module o\n-00000590: 6620 6475 6262 6f20 7072 6f6a 6563 743c  f dubbo project<\n-000005a0: 2f64 6573 6372 6970 7469 6f6e 3e0d 0a20  /description>.. \n-000005b0: 203c 6c69 6365 6e73 6573 3e0d 0a20 2020   <licenses>..   \n-000005c0: 203c 6c69 6365 6e73 653e 0d0a 2020 2020   <license>..    \n-000005d0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n-000005e0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n-000005f0: 322e 303c 2f6e 616d 653e 0d0a 2020 2020  2.0</name>..    \n-00000600: 2020 3c75 726c 3e68 7474 703a 2f2f 7777    <url>http://ww\n-00000610: 772e 6170 6163 6865 2e6f 7267 2f6c 6963  w.apache.org/lic\n-00000620: 656e 7365 732f 4c49 4345 4e53 452d 322e  enses/LICENSE-2.\n-00000630: 303c 2f75 726c 3e0d 0a20 2020 2020 203c  0</url>..      <\n-00000640: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n-00000650: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n-00000660: 0d0a 2020 2020 3c2f 6c69 6365 6e73 653e  ..    </license>\n-00000670: 0d0a 2020 3c2f 6c69 6365 6e73 6573 3e0d  ..  </licenses>.\n-00000680: 0a20 203c 7072 6f70 6572 7469 6573 3e0d  .  <properties>.\n-00000690: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n-000006a0: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n-000006b0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n-000006c0: 3e0d 0a20 203c 2f70 726f 7065 7274 6965  >..  </propertie\n-000006d0: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-000006e0: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-000006f0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000700: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000710: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000720: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000730: 6374 4964 3e64 7562 626f 2d72 7063 2d61  ctId>dubbo-rpc-a\n-00000740: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-00000750: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000760: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000770: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-00000780: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-00000790: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-000007a0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-000007b0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-000007c0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-000007d0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-000007e0: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n-000007f0: 6f74 696e 672d 6874 7470 3c2f 6172 7469  oting-http</arti\n-00000800: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000810: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000820: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000830: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000840: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000850: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000860: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000870: 3e63 6f6d 2e63 6175 6368 6f3c 2f67 726f  >com.caucho</gro\n-00000880: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000890: 7469 6661 6374 4964 3e68 6573 7369 616e  tifactId>hessian\n-000008a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000008b0: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-000008c0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000008d0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000008e0: 4964 3e6f 7267 2e61 7061 6368 652e 6874  Id>org.apache.ht\n-000008f0: 7470 636f 6d70 6f6e 656e 7473 3c2f 6772  tpcomponents</gr\n-00000900: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000910: 7274 6966 6163 7449 643e 6874 7470 636c  rtifactId>httpcl\n-00000920: 6965 6e74 3c2f 6172 7469 6661 6374 4964  ient</artifactId\n-00000930: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000940: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000950: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000960: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-00000970: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-00000980: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000990: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n-000009a0: 6c69 7a61 7469 6f6e 2d6a 646b 3c2f 6172  lization-jdk</ar\n-000009b0: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-000009c0: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-000009d0: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-000009e0: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-000009f0: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n-00000a00: 3c2f 7363 6f70 653e 0d0a 2020 2020 3c2f  </scope>..    </\n-00000a10: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000a20: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000a30: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000a40: 672e 7370 7269 6e67 6672 616d 6577 6f72  g.springframewor\n-00000a50: 6b3c 2f67 726f 7570 4964 3e0d 0a20 2020  k</groupId>..   \n-00000a60: 2020 203c 6172 7469 6661 6374 4964 3e73     <artifactId>s\n-00000a70: 7072 696e 672d 7465 7374 3c2f 6172 7469  pring-test</arti\n-00000a80: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000a90: 7363 6f70 653e 7465 7374 3c2f 7363 6f70  scope>test</scop\n-00000aa0: 653e 0d0a 2020 2020 3c2f 6465 7065 6e64  e>..    </depend\n-00000ab0: 656e 6379 3e0d 0a20 203c 2f64 6570 656e  ency>..  </depen\n-00000ac0: 6465 6e63 6965 733e 0d0a 3c2f 7072 6f6a  dencies>..</proj\n-00000ad0: 6563 743e 0d0a                           ect>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6865 7373 6961 6e3c 2f61  o-rpc-hessian</a\n+00000500: 7274 6966 6163 7449 643e 0a20 203c 7665  rtifactId>.  <ve\n+00000510: 7273 696f 6e3e 322e 372e 3130 3c2f 7665  rsion>2.7.10</ve\n+00000520: 7273 696f 6e3e 0a20 203c 6e61 6d65 3e24  rsion>.  <name>$\n+00000530: 7b70 726f 6a65 6374 2e61 7274 6966 6163  {project.artifac\n+00000540: 7449 647d 3c2f 6e61 6d65 3e0a 2020 3c64  tId}</name>.  <d\n+00000550: 6573 6372 6970 7469 6f6e 3e54 6865 2068  escription>The h\n+00000560: 6573 7369 616e 2072 7063 206d 6f64 756c  essian rpc modul\n+00000570: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n+00000580: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n+00000590: 0a20 203c 6c69 6365 6e73 6573 3e0a 2020  .  <licenses>.  \n+000005a0: 2020 3c6c 6963 656e 7365 3e0a 2020 2020    <license>.    \n+000005b0: 2020 3c6e 616d 653e 4170 6163 6865 204c    <name>Apache L\n+000005c0: 6963 656e 7365 2c20 5665 7273 696f 6e20  icense, Version \n+000005d0: 322e 303c 2f6e 616d 653e 0a20 2020 2020  2.0</name>.     \n+000005e0: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n+000005f0: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n+00000600: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n+00000610: 3c2f 7572 6c3e 0a20 2020 2020 203c 6469  </url>.      <di\n+00000620: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n+00000630: 2f64 6973 7472 6962 7574 696f 6e3e 0a20  /distribution>. \n+00000640: 2020 203c 2f6c 6963 656e 7365 3e0a 2020     </license>.  \n+00000650: 3c2f 6c69 6365 6e73 6573 3e0a 2020 3c70  </licenses>.  <p\n+00000660: 726f 7065 7274 6965 733e 0a20 2020 203c  roperties>.    <\n+00000670: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+00000680: 793e 6661 6c73 653c 2f73 6b69 705f 6d61  y>false</skip_ma\n+00000690: 7665 6e5f 6465 706c 6f79 3e0a 2020 3c2f  ven_deploy>.  </\n+000006a0: 7072 6f70 6572 7469 6573 3e0a 2020 3c64  properties>.  <d\n+000006b0: 6570 656e 6465 6e63 6965 733e 0a20 2020  ependencies>.   \n+000006c0: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+000006d0: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+000006e0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+000006f0: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+00000700: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+00000710: 7270 632d 6170 693c 2f61 7274 6966 6163  rpc-api</artifac\n+00000720: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000730: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000740: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000750: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000760: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000770: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+00000780: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000790: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+000007a0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000007b0: 6661 6374 4964 3e64 7562 626f 2d72 656d  factId>dubbo-rem\n+000007c0: 6f74 696e 672d 6874 7470 3c2f 6172 7469  oting-http</arti\n+000007d0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+000007e0: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n+000007f0: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n+00000800: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+00000810: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000820: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000830: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n+00000840: 2e63 6175 6368 6f3c 2f67 726f 7570 4964  .caucho</groupId\n+00000850: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000860: 7449 643e 6865 7373 6961 6e3c 2f61 7274  tId>hessian</art\n+00000870: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000880: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000890: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000008a0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000008b0: 7061 6368 652e 6874 7470 636f 6d70 6f6e  pache.httpcompon\n+000008c0: 656e 7473 3c2f 6772 6f75 7049 643e 0a20  ents</groupId>. \n+000008d0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+000008e0: 3e68 7474 7063 6c69 656e 743c 2f61 7274  >httpclient</art\n+000008f0: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000900: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000910: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000920: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000930: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+00000940: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000950: 6966 6163 7449 643e 6475 6262 6f2d 7365  ifactId>dubbo-se\n+00000960: 7269 616c 697a 6174 696f 6e2d 6a64 6b3c  rialization-jdk<\n+00000970: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000980: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000990: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+000009a0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+000009b0: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+000009c0: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+000009d0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000009e0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000009f0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000a00: 7370 7269 6e67 6672 616d 6577 6f72 6b3c  springframework<\n+00000a10: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000a20: 3c61 7274 6966 6163 7449 643e 7370 7269  <artifactId>spri\n+00000a30: 6e67 2d74 6573 743c 2f61 7274 6966 6163  ng-test</artifac\n+00000a40: 7449 643e 0a20 2020 2020 203c 7363 6f70  tId>.      <scop\n+00000a50: 653e 7465 7374 3c2f 7363 6f70 653e 0a20  e>test</scope>. \n+00000a60: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000a70: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n+00000a80: 733e 0a3c 2f70 726f 6a65 6374 3e0a       s>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-http/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,157 +1,153 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6874 7470 3c2f 6172 7469 6661 6374 4964  http</artifactId\n-00000520: 3e0d 0a20 203c 7665 7273 696f 6e3e 322e  >..  <version>2.\n-00000530: 372e 3130 3c2f 7665 7273 696f 6e3e 0d0a  7.10</version>..\n-00000540: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000550: 6865 204a 534f 4e2d 5250 4320 6d6f 6475  he JSON-RPC modu\n-00000560: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n-00000570: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n-00000580: 3e0d 0a20 203c 6c69 6365 6e73 6573 3e0d  >..  <licenses>.\n-00000590: 0a20 2020 203c 6c69 6365 6e73 653e 0d0a  .    <license>..\n-000005a0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n-000005b0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n-000005c0: 696f 6e20 322e 303c 2f6e 616d 653e 0d0a  ion 2.0</name>..\n-000005d0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n-000005e0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000005f0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-00000600: 452d 322e 303c 2f75 726c 3e0d 0a20 2020  E-2.0</url>..   \n-00000610: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n-00000620: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n-00000630: 696f 6e3e 0d0a 2020 2020 3c2f 6c69 6365  ion>..    </lice\n-00000640: 6e73 653e 0d0a 2020 3c2f 6c69 6365 6e73  nse>..  </licens\n-00000650: 6573 3e0d 0a20 203c 7072 6f70 6572 7469  es>..  <properti\n-00000660: 6573 3e0d 0a20 2020 203c 736b 6970 5f6d  es>..    <skip_m\n-00000670: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n-00000680: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n-00000690: 706c 6f79 3e0d 0a20 203c 2f70 726f 7065  ploy>..  </prope\n-000006a0: 7274 6965 733e 0d0a 2020 3c64 6570 656e  rties>..  <depen\n-000006b0: 6465 6e63 6965 733e 0d0a 2020 2020 3c64  dencies>..    <d\n-000006c0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-000006f0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000700: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000710: 7063 2d61 7069 3c2f 6172 7469 6661 6374  pc-api</artifact\n-00000720: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000730: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000740: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000750: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000760: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000770: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000780: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000790: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000007a0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000007b0: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-000007c0: 2d72 656d 6f74 696e 672d 6874 7470 3c2f  -remoting-http</\n-000007d0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000007e0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-000007f0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000800: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000820: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-00000830: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000840: 7570 4964 3e6f 7267 2e73 7072 696e 6766  upId>org.springf\n-00000850: 7261 6d65 776f 726b 3c2f 6772 6f75 7049  ramework</groupI\n-00000860: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000870: 6163 7449 643e 7370 7269 6e67 2d63 6f6e  actId>spring-con\n-00000880: 7465 7874 3c2f 6172 7469 6661 6374 4964  text</artifactId\n-00000890: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-000008a0: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000008b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000008c0: 726f 7570 4964 3e63 6f6d 2e67 6974 6875  roupId>com.githu\n-000008d0: 622e 6272 6961 6e64 696c 6c65 792e 6a73  b.briandilley.js\n-000008e0: 6f6e 7270 6334 6a3c 2f67 726f 7570 4964  onrpc4j</groupId\n-000008f0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000900: 6374 4964 3e6a 736f 6e72 7063 346a 3c2f  ctId>jsonrpc4j</\n-00000910: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000920: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000930: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000940: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000950: 3e6a 6176 6178 2e70 6f72 746c 6574 3c2f  >javax.portlet</\n-00000960: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000970: 3c61 7274 6966 6163 7449 643e 706f 7274  <artifactId>port\n-00000980: 6c65 742d 6170 693c 2f61 7274 6966 6163  let-api</artifac\n-00000990: 7449 643e 0d0a 2020 2020 3c2f 6465 7065  tId>..    </depe\n-000009a0: 6e64 656e 6379 3e0d 0a20 203c 2f64 6570  ndency>..  </dep\n-000009b0: 656e 6465 6e63 6965 733e 0d0a 3c2f 7072  endencies>..</pr\n-000009c0: 6f6a 6563 743e 0d0a                      oject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6874 7470 3c2f 6172 7469  o-rpc-http</arti\n+00000500: 6661 6374 4964 3e0a 2020 3c76 6572 7369  factId>.  <versi\n+00000510: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+00000520: 6f6e 3e0a 2020 3c64 6573 6372 6970 7469  on>.  <descripti\n+00000530: 6f6e 3e54 6865 204a 534f 4e2d 5250 4320  on>The JSON-RPC \n+00000540: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n+00000550: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n+00000560: 7469 6f6e 3e0a 2020 3c6c 6963 656e 7365  tion>.  <license\n+00000570: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+00000580: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+00000590: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+000005a0: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+000005b0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+000005c0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+000005d0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+000005e0: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+000005f0: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+00000600: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+00000610: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+00000620: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000630: 0a20 203c 7072 6f70 6572 7469 6573 3e0a  .  <properties>.\n+00000640: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n+00000650: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n+00000660: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000670: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n+00000680: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+00000690: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+000006a0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000006b0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+000006c0: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+000006d0: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+000006e0: 7562 626f 2d72 7063 2d61 7069 3c2f 6172  ubbo-rpc-api</ar\n+000006f0: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000700: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000710: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+00000720: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000730: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000740: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000750: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000760: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000770: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000780: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000790: 6f2d 7265 6d6f 7469 6e67 2d68 7474 703c  o-remoting-http<\n+000007a0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000007b0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+000007c0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+000007d0: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+000007e0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+000007f0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000800: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000810: 643e 6f72 672e 7370 7269 6e67 6672 616d  d>org.springfram\n+00000820: 6577 6f72 6b3c 2f67 726f 7570 4964 3e0a  ework</groupId>.\n+00000830: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000840: 643e 7370 7269 6e67 2d63 6f6e 7465 7874  d>spring-context\n+00000850: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000860: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000870: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000880: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000890: 636f 6d2e 6769 7468 7562 2e62 7269 616e  com.github.brian\n+000008a0: 6469 6c6c 6579 2e6a 736f 6e72 7063 346a  dilley.jsonrpc4j\n+000008b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000008c0: 203c 6172 7469 6661 6374 4964 3e6a 736f   <artifactId>jso\n+000008d0: 6e72 7063 346a 3c2f 6172 7469 6661 6374  nrpc4j</artifact\n+000008e0: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+000008f0: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000900: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000910: 6f75 7049 643e 6a61 7661 782e 706f 7274  oupId>javax.port\n+00000920: 6c65 743c 2f67 726f 7570 4964 3e0a 2020  let</groupId>.  \n+00000930: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000940: 706f 7274 6c65 742d 6170 693c 2f61 7274  portlet-api</art\n+00000950: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+00000960: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+00000970: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+00000980: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-injvm/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,124 +1,121 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 696e 6a76 6d3c 2f61 7274 6966 6163 7449  injvm</artifactI\n-00000520: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000530: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000540: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000550: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000560: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-00000570: 7074 696f 6e3e 5468 6520 696e 6a76 6d20  ption>The injvm \n-00000580: 7270 6320 6d6f 6475 6c65 206f 6620 6475  rpc module of du\n-00000590: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n-000005a0: 6372 6970 7469 6f6e 3e0d 0a20 203c 6c69  cription>..  <li\n-000005b0: 6365 6e73 6573 3e0d 0a20 2020 203c 6c69  censes>..    <li\n-000005c0: 6365 6e73 653e 0d0a 2020 2020 2020 3c6e  cense>..      <n\n-000005d0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n-000005e0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n-000005f0: 2f6e 616d 653e 0d0a 2020 2020 2020 3c75  /name>..      <u\n-00000600: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n-00000610: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n-00000620: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n-00000630: 726c 3e0d 0a20 2020 2020 203c 6469 7374  rl>..      <dist\n-00000640: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n-00000650: 6973 7472 6962 7574 696f 6e3e 0d0a 2020  istribution>..  \n-00000660: 2020 3c2f 6c69 6365 6e73 653e 0d0a 2020    </license>..  \n-00000670: 3c2f 6c69 6365 6e73 6573 3e0d 0a20 203c  </licenses>..  <\n-00000680: 7072 6f70 6572 7469 6573 3e0d 0a20 2020  properties>..   \n-00000690: 203c 736b 6970 5f6d 6176 656e 5f64 6570   <skip_maven_dep\n-000006a0: 6c6f 793e 6661 6c73 653c 2f73 6b69 705f  loy>false</skip_\n-000006b0: 6d61 7665 6e5f 6465 706c 6f79 3e0d 0a20  maven_deploy>.. \n-000006c0: 203c 2f70 726f 7065 7274 6965 733e 0d0a   </properties>..\n-000006d0: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n-000006e0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000006f0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000700: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000710: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000720: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000730: 3e64 7562 626f 2d72 7063 2d61 7069 3c2f  >dubbo-rpc-api</\n-00000740: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000750: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-00000760: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000770: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000780: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000790: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-000007a0: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-000007b0: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 696e 6a76 6d3c 2f61 7274  o-rpc-injvm</art\n+00000500: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000510: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000520: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000530: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000540: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000550: 6372 6970 7469 6f6e 3e54 6865 2069 6e6a  cription>The inj\n+00000560: 766d 2072 7063 206d 6f64 756c 6520 6f66  vm rpc module of\n+00000570: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n+00000580: 6465 7363 7269 7074 696f 6e3e 0a20 203c  description>.  <\n+00000590: 6c69 6365 6e73 6573 3e0a 2020 2020 3c6c  licenses>.    <l\n+000005a0: 6963 656e 7365 3e0a 2020 2020 2020 3c6e  icense>.      <n\n+000005b0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n+000005c0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n+000005d0: 2f6e 616d 653e 0a20 2020 2020 203c 7572  /name>.      <ur\n+000005e0: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n+000005f0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+00000600: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n+00000610: 6c3e 0a20 2020 2020 203c 6469 7374 7269  l>.      <distri\n+00000620: 6275 7469 6f6e 3e72 6570 6f3c 2f64 6973  bution>repo</dis\n+00000630: 7472 6962 7574 696f 6e3e 0a20 2020 203c  tribution>.    <\n+00000640: 2f6c 6963 656e 7365 3e0a 2020 3c2f 6c69  /license>.  </li\n+00000650: 6365 6e73 6573 3e0a 2020 3c70 726f 7065  censes>.  <prope\n+00000660: 7274 6965 733e 0a20 2020 203c 736b 6970  rties>.    <skip\n+00000670: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n+00000680: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n+00000690: 6465 706c 6f79 3e0a 2020 3c2f 7072 6f70  deploy>.  </prop\n+000006a0: 6572 7469 6573 3e0a 2020 3c64 6570 656e  erties>.  <depen\n+000006b0: 6465 6e63 6965 733e 0a20 2020 203c 6465  dencies>.    <de\n+000006c0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+000006d0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000006e0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000006f0: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000700: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n+00000710: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000720: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000730: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000740: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000750: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+00000760: 656e 6379 3e0a 2020 3c2f 6465 7065 6e64  ency>.  </depend\n+00000770: 656e 6369 6573 3e0a 3c2f 7072 6f6a 6563  encies>.</projec\n+00000780: 743e 0a                                  t>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-memcached/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,132 +1,129 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6d65 6d63 6163 6865 643c 2f61 7274 6966  memcached</artif\n-00000520: 6163 7449 643e 0d0a 2020 3c76 6572 7369  actId>..  <versi\n-00000530: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-00000540: 6f6e 3e0d 0a20 203c 6e61 6d65 3e24 7b70  on>..  <name>${p\n-00000550: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n-00000560: 647d 3c2f 6e61 6d65 3e0d 0a20 203c 6465  d}</name>..  <de\n-00000570: 7363 7269 7074 696f 6e3e 5468 6520 6d65  scription>The me\n-00000580: 6d63 6163 6865 6420 7270 6320 6d6f 6475  mcached rpc modu\n-00000590: 6c65 206f 6620 6475 6262 6f20 7072 6f6a  le of dubbo proj\n-000005a0: 6563 743c 2f64 6573 6372 6970 7469 6f6e  ect</description\n-000005b0: 3e0d 0a20 203c 6c69 6365 6e73 6573 3e0d  >..  <licenses>.\n-000005c0: 0a20 2020 203c 6c69 6365 6e73 653e 0d0a  .    <license>..\n-000005d0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n-000005e0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n-000005f0: 696f 6e20 322e 303c 2f6e 616d 653e 0d0a  ion 2.0</name>..\n-00000600: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n-00000610: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-00000620: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-00000630: 452d 322e 303c 2f75 726c 3e0d 0a20 2020  E-2.0</url>..   \n-00000640: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n-00000650: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n-00000660: 696f 6e3e 0d0a 2020 2020 3c2f 6c69 6365  ion>..    </lice\n-00000670: 6e73 653e 0d0a 2020 3c2f 6c69 6365 6e73  nse>..  </licens\n-00000680: 6573 3e0d 0a20 203c 7072 6f70 6572 7469  es>..  <properti\n-00000690: 6573 3e0d 0a20 2020 203c 736b 6970 5f6d  es>..    <skip_m\n-000006a0: 6176 656e 5f64 6570 6c6f 793e 6661 6c73  aven_deploy>fals\n-000006b0: 653c 2f73 6b69 705f 6d61 7665 6e5f 6465  e</skip_maven_de\n-000006c0: 706c 6f79 3e0d 0a20 203c 2f70 726f 7065  ploy>..  </prope\n-000006d0: 7274 6965 733e 0d0a 2020 3c64 6570 656e  rties>..  <depen\n-000006e0: 6465 6e63 6965 733e 0d0a 2020 2020 3c64  dencies>..    <d\n-000006f0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000700: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000710: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-00000720: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000730: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-00000740: 7063 2d61 7069 3c2f 6172 7469 6661 6374  pc-api</artifact\n-00000750: 4964 3e0d 0a20 2020 2020 203c 7665 7273  Id>..      <vers\n-00000760: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n-00000770: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n-00000780: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000790: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007a0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-000007b0: 2020 2020 3c67 726f 7570 4964 3e63 6f6d      <groupId>com\n-000007c0: 2e67 6f6f 676c 6563 6f64 652e 786d 656d  .googlecode.xmem\n-000007d0: 6361 6368 6564 3c2f 6772 6f75 7049 643e  cached</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 786d 656d 6361 6368 6564 3c2f  tId>xmemcached</\n-00000800: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000810: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000820: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n-00000830: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6d65 6d63 6163 6865 643c  o-rpc-memcached<\n+00000500: 2f61 7274 6966 6163 7449 643e 0a20 203c  /artifactId>.  <\n+00000510: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n+00000520: 7665 7273 696f 6e3e 0a20 203c 6e61 6d65  version>.  <name\n+00000530: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n+00000540: 6163 7449 647d 3c2f 6e61 6d65 3e0a 2020  actId}</name>.  \n+00000550: 3c64 6573 6372 6970 7469 6f6e 3e54 6865  <description>The\n+00000560: 206d 656d 6361 6368 6564 2072 7063 206d   memcached rpc m\n+00000570: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n+00000580: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n+00000590: 696f 6e3e 0a20 203c 6c69 6365 6e73 6573  ion>.  <licenses\n+000005a0: 3e0a 2020 2020 3c6c 6963 656e 7365 3e0a  >.    <license>.\n+000005b0: 2020 2020 2020 3c6e 616d 653e 4170 6163        <name>Apac\n+000005c0: 6865 204c 6963 656e 7365 2c20 5665 7273  he License, Vers\n+000005d0: 696f 6e20 322e 303c 2f6e 616d 653e 0a20  ion 2.0</name>. \n+000005e0: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n+000005f0: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n+00000600: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n+00000610: 2d32 2e30 3c2f 7572 6c3e 0a20 2020 2020  -2.0</url>.     \n+00000620: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n+00000630: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n+00000640: 6e3e 0a20 2020 203c 2f6c 6963 656e 7365  n>.    </license\n+00000650: 3e0a 2020 3c2f 6c69 6365 6e73 6573 3e0a  >.  </licenses>.\n+00000660: 2020 3c70 726f 7065 7274 6965 733e 0a20    <properties>. \n+00000670: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n+00000680: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n+00000690: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0a  p_maven_deploy>.\n+000006a0: 2020 3c2f 7072 6f70 6572 7469 6573 3e0a    </properties>.\n+000006b0: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n+000006c0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+000006d0: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000006e0: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n+000006f0: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000700: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000710: 6262 6f2d 7270 632d 6170 693c 2f61 7274  bbo-rpc-api</art\n+00000720: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000730: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000740: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000750: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000760: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000770: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000780: 2020 2020 203c 6772 6f75 7049 643e 636f       <groupId>co\n+00000790: 6d2e 676f 6f67 6c65 636f 6465 2e78 6d65  m.googlecode.xme\n+000007a0: 6d63 6163 6865 643c 2f67 726f 7570 4964  mcached</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 786d 656d 6361 6368 6564 3c2f  tId>xmemcached</\n+000007d0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000007e0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000007f0: 3c2f 6465 7065 6e64 656e 6369 6573 3e0a  </dependencies>.\n+00000800: 3c2f 7072 6f6a 6563 743e 0a              </project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-native-thrift/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,144 +1,141 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 6e61 7469 7665 2d74 6872 6966 743c 2f61  native-thrift</a\n-00000520: 7274 6966 6163 7449 643e 0d0a 2020 3c76  rtifactId>..  <v\n-00000530: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n-00000540: 6572 7369 6f6e 3e0d 0a20 203c 6e61 6d65  ersion>..  <name\n-00000550: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n-00000560: 6163 7449 647d 3c2f 6e61 6d65 3e0d 0a20  actId}</name>.. \n-00000570: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n-00000580: 6520 7468 7269 6674 2072 7063 206d 6f64  e thrift rpc mod\n-00000590: 756c 6520 6f66 2064 7562 626f 2070 726f  ule of dubbo pro\n-000005a0: 6a65 6374 3c2f 6465 7363 7269 7074 696f  ject</descriptio\n-000005b0: 6e3e 0d0a 2020 3c6c 6963 656e 7365 733e  n>..  <licenses>\n-000005c0: 0d0a 2020 2020 3c6c 6963 656e 7365 3e0d  ..    <license>.\n-000005d0: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n-000005e0: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n-000005f0: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d  sion 2.0</name>.\n-00000600: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n-00000610: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n-00000620: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n-00000630: 5345 2d32 2e30 3c2f 7572 6c3e 0d0a 2020  SE-2.0</url>..  \n-00000640: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n-00000650: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n-00000660: 7469 6f6e 3e0d 0a20 2020 203c 2f6c 6963  tion>..    </lic\n-00000670: 656e 7365 3e0d 0a20 203c 2f6c 6963 656e  ense>..  </licen\n-00000680: 7365 733e 0d0a 2020 3c70 726f 7065 7274  ses>..  <propert\n-00000690: 6965 733e 0d0a 2020 2020 3c73 6b69 705f  ies>..    <skip_\n-000006a0: 6d61 7665 6e5f 6465 706c 6f79 3e66 616c  maven_deploy>fal\n-000006b0: 7365 3c2f 736b 6970 5f6d 6176 656e 5f64  se</skip_maven_d\n-000006c0: 6570 6c6f 793e 0d0a 2020 3c2f 7072 6f70  eploy>..  </prop\n-000006d0: 6572 7469 6573 3e0d 0a20 203c 6465 7065  erties>..  <depe\n-000006e0: 6e64 656e 6369 6573 3e0d 0a20 2020 203c  ndencies>..    <\n-000006f0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000700: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000710: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000720: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000730: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000740: 7270 632d 6170 693c 2f61 7274 6966 6163  rpc-api</artifac\n-00000750: 7449 643e 0d0a 2020 2020 2020 3c76 6572  tId>..      <ver\n-00000760: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n-00000770: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n-00000780: 7665 7273 696f 6e3e 0d0a 2020 2020 3c2f  version>..    </\n-00000790: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000007a0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-000007b0: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-000007c0: 672e 6170 6163 6865 2e74 6872 6966 743c  g.apache.thrift<\n-000007d0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007e0: 203c 6172 7469 6661 6374 4964 3e6c 6962   <artifactId>lib\n-000007f0: 7468 7269 6674 3c2f 6172 7469 6661 6374  thrift</artifact\n-00000800: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-00000810: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000820: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000830: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-00000840: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-00000850: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000860: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000870: 6961 6c69 7a61 7469 6f6e 2d6a 646b 3c2f  ialization-jdk</\n-00000880: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000890: 2020 203c 7665 7273 696f 6e3e 247b 7265     <version>${re\n-000008a0: 7669 7369 6f6e 7d3c 2f76 6572 7369 6f6e  vision}</version\n-000008b0: 3e0d 0a20 2020 2020 203c 7363 6f70 653e  >..      <scope>\n-000008c0: 7465 7374 3c2f 7363 6f70 653e 0d0a 2020  test</scope>..  \n-000008d0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000008e0: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n-000008f0: 733e 0d0a 3c2f 7072 6f6a 6563 743e 0d0a  s>..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 6e61 7469 7665 2d74 6872  o-rpc-native-thr\n+00000500: 6966 743c 2f61 7274 6966 6163 7449 643e  ift</artifactId>\n+00000510: 0a20 203c 7665 7273 696f 6e3e 322e 372e  .  <version>2.7.\n+00000520: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+00000530: 6e61 6d65 3e24 7b70 726f 6a65 6374 2e61  name>${project.a\n+00000540: 7274 6966 6163 7449 647d 3c2f 6e61 6d65  rtifactId}</name\n+00000550: 3e0a 2020 3c64 6573 6372 6970 7469 6f6e  >.  <description\n+00000560: 3e54 6865 2074 6872 6966 7420 7270 6320  >The thrift rpc \n+00000570: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n+00000580: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n+00000590: 7469 6f6e 3e0a 2020 3c6c 6963 656e 7365  tion>.  <license\n+000005a0: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+000005b0: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+000005c0: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+000005d0: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+000005e0: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+000005f0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+00000600: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+00000610: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+00000620: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+00000630: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+00000640: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+00000650: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000660: 0a20 203c 7072 6f70 6572 7469 6573 3e0a  .  <properties>.\n+00000670: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n+00000680: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n+00000690: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+000006a0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n+000006b0: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n+000006c0: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+000006d0: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000006e0: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n+000006f0: 626f 3c2f 6772 6f75 7049 643e 0a20 2020  bo</groupId>.   \n+00000700: 2020 203c 6172 7469 6661 6374 4964 3e64     <artifactId>d\n+00000710: 7562 626f 2d72 7063 2d61 7069 3c2f 6172  ubbo-rpc-api</ar\n+00000720: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000730: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000740: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+00000750: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000760: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+00000770: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+00000780: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+00000790: 7267 2e61 7061 6368 652e 7468 7269 6674  rg.apache.thrift\n+000007a0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007b0: 203c 6172 7469 6661 6374 4964 3e6c 6962   <artifactId>lib\n+000007c0: 7468 7269 6674 3c2f 6172 7469 6661 6374  thrift</artifact\n+000007d0: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+000007e0: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+000007f0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000800: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n+00000810: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n+00000820: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000830: 4964 3e64 7562 626f 2d73 6572 6961 6c69  Id>dubbo-seriali\n+00000840: 7a61 7469 6f6e 2d6a 646b 3c2f 6172 7469  zation-jdk</arti\n+00000850: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+00000860: 6572 7369 6f6e 3e24 7b72 6576 6973 696f  ersion>${revisio\n+00000870: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+00000880: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n+00000890: 7363 6f70 653e 0a20 2020 203c 2f64 6570  scope>.    </dep\n+000008a0: 656e 6465 6e63 793e 0a20 203c 2f64 6570  endency>.  </dep\n+000008b0: 656e 6465 6e63 6965 733e 0a3c 2f70 726f  endencies>.</pro\n+000008c0: 6a65 6374 3e0a                           ject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-redis/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,164 +1,159 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 7265 6469 733c 2f61 7274 6966 6163 7449  redis</artifactI\n-00000520: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000530: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000540: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000550: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000560: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-00000570: 7074 696f 6e3e 5468 6520 7265 6469 7320  ption>The redis \n-00000580: 7270 6320 6d6f 6475 6c65 206f 6620 6475  rpc module of du\n-00000590: 6262 6f20 7072 6f6a 6563 743c 2f64 6573  bbo project</des\n-000005a0: 6372 6970 7469 6f6e 3e0d 0a20 203c 6c69  cription>..  <li\n-000005b0: 6365 6e73 6573 3e0d 0a20 2020 203c 6c69  censes>..    <li\n-000005c0: 6365 6e73 653e 0d0a 2020 2020 2020 3c6e  cense>..      <n\n-000005d0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n-000005e0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n-000005f0: 2f6e 616d 653e 0d0a 2020 2020 2020 3c75  /name>..      <u\n-00000600: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n-00000610: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n-00000620: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n-00000630: 726c 3e0d 0a20 2020 2020 203c 6469 7374  rl>..      <dist\n-00000640: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n-00000650: 6973 7472 6962 7574 696f 6e3e 0d0a 2020  istribution>..  \n-00000660: 2020 3c2f 6c69 6365 6e73 653e 0d0a 2020    </license>..  \n-00000670: 3c2f 6c69 6365 6e73 6573 3e0d 0a20 203c  </licenses>..  <\n-00000680: 7072 6f70 6572 7469 6573 3e0d 0a20 2020  properties>..   \n-00000690: 203c 736b 6970 5f6d 6176 656e 5f64 6570   <skip_maven_dep\n-000006a0: 6c6f 793e 6661 6c73 653c 2f73 6b69 705f  loy>false</skip_\n-000006b0: 6d61 7665 6e5f 6465 706c 6f79 3e0d 0a20  maven_deploy>.. \n-000006c0: 203c 2f70 726f 7065 7274 6965 733e 0d0a   </properties>..\n-000006d0: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n-000006e0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000006f0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000700: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000710: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000720: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000730: 3e64 7562 626f 2d72 7063 2d61 7069 3c2f  >dubbo-rpc-api</\n-00000740: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000750: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-00000760: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000770: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-00000780: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000790: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000007a0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000007b0: 7570 4964 3e72 6564 6973 2e63 6c69 656e  upId>redis.clien\n-000007c0: 7473 3c2f 6772 6f75 7049 643e 0d0a 2020  ts</groupId>..  \n-000007d0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-000007e0: 6a65 6469 733c 2f61 7274 6966 6163 7449  jedis</artifactI\n-000007f0: 643e 0d0a 2020 2020 3c2f 6465 7065 6e64  d>..    </depend\n-00000800: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000810: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000820: 6772 6f75 7049 643e 636f 6d2e 6769 7468  groupId>com.gith\n-00000830: 7562 2e6b 7374 7972 633c 2f67 726f 7570  ub.kstyrc</group\n-00000840: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000850: 6661 6374 4964 3e65 6d62 6564 6465 642d  factId>embedded-\n-00000860: 7265 6469 733c 2f61 7274 6966 6163 7449  redis</artifactI\n-00000870: 643e 0d0a 2020 2020 2020 3c73 636f 7065  d>..      <scope\n-00000880: 3e74 6573 743c 2f73 636f 7065 3e0d 0a20  >test</scope>.. \n-00000890: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-000008a0: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-000008b0: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-000008c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-000008d0: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-000008e0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008f0: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-00000900: 7469 6f6e 2d6a 646b 3c2f 6172 7469 6661  tion-jdk</artifa\n-00000910: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000920: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000930: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000940: 2f76 6572 7369 6f6e 3e0d 0a20 2020 2020  /version>..     \n-00000950: 203c 7363 6f70 653e 7465 7374 3c2f 7363   <scope>test</sc\n-00000960: 6f70 653e 0d0a 2020 2020 3c2f 6465 7065  ope>..    </depe\n-00000970: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000980: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000990: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-000009a0: 6163 6865 2e63 6f6d 6d6f 6e73 3c2f 6772  ache.commons</gr\n-000009b0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-000009c0: 7274 6966 6163 7449 643e 636f 6d6d 6f6e  rtifactId>common\n-000009d0: 732d 6c61 6e67 333c 2f61 7274 6966 6163  s-lang3</artifac\n-000009e0: 7449 643e 0d0a 2020 2020 2020 3c73 636f  tId>..      <sco\n-000009f0: 7065 3e74 6573 743c 2f73 636f 7065 3e0d  pe>test</scope>.\n-00000a00: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-00000a10: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-00000a20: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-00000a30: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 7265 6469 733c 2f61 7274  o-rpc-redis</art\n+00000500: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000510: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000520: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000530: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000540: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000550: 6372 6970 7469 6f6e 3e54 6865 2072 6564  cription>The red\n+00000560: 6973 2072 7063 206d 6f64 756c 6520 6f66  is rpc module of\n+00000570: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n+00000580: 6465 7363 7269 7074 696f 6e3e 0a20 203c  description>.  <\n+00000590: 6c69 6365 6e73 6573 3e0a 2020 2020 3c6c  licenses>.    <l\n+000005a0: 6963 656e 7365 3e0a 2020 2020 2020 3c6e  icense>.      <n\n+000005b0: 616d 653e 4170 6163 6865 204c 6963 656e  ame>Apache Licen\n+000005c0: 7365 2c20 5665 7273 696f 6e20 322e 303c  se, Version 2.0<\n+000005d0: 2f6e 616d 653e 0a20 2020 2020 203c 7572  /name>.      <ur\n+000005e0: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n+000005f0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+00000600: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n+00000610: 6c3e 0a20 2020 2020 203c 6469 7374 7269  l>.      <distri\n+00000620: 6275 7469 6f6e 3e72 6570 6f3c 2f64 6973  bution>repo</dis\n+00000630: 7472 6962 7574 696f 6e3e 0a20 2020 203c  tribution>.    <\n+00000640: 2f6c 6963 656e 7365 3e0a 2020 3c2f 6c69  /license>.  </li\n+00000650: 6365 6e73 6573 3e0a 2020 3c70 726f 7065  censes>.  <prope\n+00000660: 7274 6965 733e 0a20 2020 203c 736b 6970  rties>.    <skip\n+00000670: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n+00000680: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n+00000690: 6465 706c 6f79 3e0a 2020 3c2f 7072 6f70  deploy>.  </prop\n+000006a0: 6572 7469 6573 3e0a 2020 3c64 6570 656e  erties>.  <depen\n+000006b0: 6465 6e63 6965 733e 0a20 2020 203c 6465  dencies>.    <de\n+000006c0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+000006d0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000006e0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+000006f0: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000700: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n+00000710: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000720: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000730: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000740: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000750: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+00000760: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000770: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+00000780: 6f75 7049 643e 7265 6469 732e 636c 6965  oupId>redis.clie\n+00000790: 6e74 733c 2f67 726f 7570 4964 3e0a 2020  nts</groupId>.  \n+000007a0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+000007b0: 6a65 6469 733c 2f61 7274 6966 6163 7449  jedis</artifactI\n+000007c0: 643e 0a20 2020 203c 2f64 6570 656e 6465  d>.    </depende\n+000007d0: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+000007e0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000007f0: 7570 4964 3e63 6f6d 2e67 6974 6875 622e  upId>com.github.\n+00000800: 6b73 7479 7263 3c2f 6772 6f75 7049 643e  kstyrc</groupId>\n+00000810: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000820: 4964 3e65 6d62 6564 6465 642d 7265 6469  Id>embedded-redi\n+00000830: 733c 2f61 7274 6966 6163 7449 643e 0a20  s</artifactId>. \n+00000840: 2020 2020 203c 7363 6f70 653e 7465 7374       <scope>test\n+00000850: 3c2f 7363 6f70 653e 0a20 2020 203c 2f64  </scope>.    </d\n+00000860: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000870: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000880: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+00000890: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000008a0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+000008b0: 6966 6163 7449 643e 6475 6262 6f2d 7365  ifactId>dubbo-se\n+000008c0: 7269 616c 697a 6174 696f 6e2d 6a64 6b3c  rialization-jdk<\n+000008d0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000008e0: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+000008f0: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000900: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000910: 2020 2020 2020 3c73 636f 7065 3e74 6573        <scope>tes\n+00000920: 743c 2f73 636f 7065 3e0a 2020 2020 3c2f  t</scope>.    </\n+00000930: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000940: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000950: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000960: 6170 6163 6865 2e63 6f6d 6d6f 6e73 3c2f  apache.commons</\n+00000970: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+00000980: 6172 7469 6661 6374 4964 3e63 6f6d 6d6f  artifactId>commo\n+00000990: 6e73 2d6c 616e 6733 3c2f 6172 7469 6661  ns-lang3</artifa\n+000009a0: 6374 4964 3e0a 2020 2020 2020 3c73 636f  ctId>.      <sco\n+000009b0: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+000009c0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+000009d0: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+000009e0: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rest/pom.xml", "comments": ["Ordering differences only"], "unified_diff": "@@ -81,26 +81,26 @@\n       <artifactId>netty-all</artifactId>\n     </dependency>\n     <dependency>\n       <groupId>io.swagger</groupId>\n       <artifactId>swagger-annotations</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jsr311-api</artifactId>\n           <groupId>javax.ws.rs</groupId>\n+          <artifactId>jsr311-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>io.swagger</groupId>\n       <artifactId>swagger-jaxrs</artifactId>\n       <exclusions>\n         <exclusion>\n-          <artifactId>jsr311-api</artifactId>\n           <groupId>javax.ws.rs</groupId>\n+          <artifactId>jsr311-api</artifactId>\n         </exclusion>\n       </exclusions>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-serialization-jdk</artifactId>\n       <version>${project.parent.version}</version>\n"}]}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-rmi/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,132 +1,128 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 726d 693c 2f61 7274 6966 6163 7449 643e  rmi</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 726d 6920 7270 6320  ion>The rmi rpc \n-00000580: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n-00000590: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n-000005a0: 7469 6f6e 3e0d 0a20 203c 6c69 6365 6e73  tion>..  <licens\n-000005b0: 6573 3e0d 0a20 2020 203c 6c69 6365 6e73  es>..    <licens\n-000005c0: 653e 0d0a 2020 2020 2020 3c6e 616d 653e  e>..      <name>\n-000005d0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-000005e0: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n-000005f0: 653e 0d0a 2020 2020 2020 3c75 726c 3e68  e>..      <url>h\n-00000600: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n-00000610: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n-00000620: 4345 4e53 452d 322e 303c 2f75 726c 3e0d  CENSE-2.0</url>.\n-00000630: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n-00000640: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n-00000650: 6962 7574 696f 6e3e 0d0a 2020 2020 3c2f  ibution>..    </\n-00000660: 6c69 6365 6e73 653e 0d0a 2020 3c2f 6c69  license>..  </li\n-00000670: 6365 6e73 6573 3e0d 0a20 203c 7072 6f70  censes>..  <prop\n-00000680: 6572 7469 6573 3e0d 0a20 2020 203c 736b  erties>..    <sk\n-00000690: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006a0: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n-000006b0: 6e5f 6465 706c 6f79 3e0d 0a20 203c 2f70  n_deploy>..  </p\n-000006c0: 726f 7065 7274 6965 733e 0d0a 2020 3c64  roperties>..  <d\n-000006d0: 6570 656e 6465 6e63 6965 733e 0d0a 2020  ependencies>..  \n-000006e0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000006f0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000700: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000710: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000720: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000730: 626f 2d72 7063 2d61 7069 3c2f 6172 7469  bo-rpc-api</arti\n-00000740: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000750: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000760: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000770: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000780: 203c 2f64 6570 656e 6465 6e63 793e 0d0a   </dependency>..\n-00000790: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-000007a0: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-000007b0: 3e6f 7267 2e73 7072 696e 6766 7261 6d65  >org.springframe\n-000007c0: 776f 726b 3c2f 6772 6f75 7049 643e 0d0a  work</groupId>..\n-000007d0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-000007e0: 643e 7370 7269 6e67 2d63 6f6e 7465 7874  d>spring-context\n-000007f0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000800: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000810: 0d0a 2020 3c2f 6465 7065 6e64 656e 6369  ..  </dependenci\n-00000820: 6573 3e0d 0a3c 2f70 726f 6a65 6374 3e0d  es>..</project>.\n-00000830: 0a                                       .\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 726d 693c 2f61 7274 6966  o-rpc-rmi</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2072 6d69 2072  iption>The rmi r\n+00000560: 7063 206d 6f64 756c 6520 6f66 2064 7562  pc module of dub\n+00000570: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n+00000580: 7269 7074 696f 6e3e 0a20 203c 6c69 6365  ription>.  <lice\n+00000590: 6e73 6573 3e0a 2020 2020 3c6c 6963 656e  nses>.    <licen\n+000005a0: 7365 3e0a 2020 2020 2020 3c6e 616d 653e  se>.      <name>\n+000005b0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n+000005c0: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n+000005d0: 653e 0a20 2020 2020 203c 7572 6c3e 6874  e>.      <url>ht\n+000005e0: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n+000005f0: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n+00000600: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0a20  ENSE-2.0</url>. \n+00000610: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n+00000620: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n+00000630: 7574 696f 6e3e 0a20 2020 203c 2f6c 6963  ution>.    </lic\n+00000640: 656e 7365 3e0a 2020 3c2f 6c69 6365 6e73  ense>.  </licens\n+00000650: 6573 3e0a 2020 3c70 726f 7065 7274 6965  es>.  <propertie\n+00000660: 733e 0a20 2020 203c 736b 6970 5f6d 6176  s>.    <skip_mav\n+00000670: 656e 5f64 6570 6c6f 793e 6661 6c73 653c  en_deploy>false<\n+00000680: 2f73 6b69 705f 6d61 7665 6e5f 6465 706c  /skip_maven_depl\n+00000690: 6f79 3e0a 2020 3c2f 7072 6f70 6572 7469  oy>.  </properti\n+000006a0: 6573 3e0a 2020 3c64 6570 656e 6465 6e63  es>.  <dependenc\n+000006b0: 6965 733e 0a20 2020 203c 6465 7065 6e64  ies>.    <depend\n+000006c0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000006d0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+000006e0: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+000006f0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000700: 643e 6475 6262 6f2d 7270 632d 6170 693c  d>dubbo-rpc-api<\n+00000710: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000720: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n+00000730: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n+00000740: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a  sion}</version>.\n+00000750: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000760: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000770: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000780: 643e 6f72 672e 7370 7269 6e67 6672 616d  d>org.springfram\n+00000790: 6577 6f72 6b3c 2f67 726f 7570 4964 3e0a  ework</groupId>.\n+000007a0: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+000007b0: 643e 7370 7269 6e67 2d63 6f6e 7465 7874  d>spring-context\n+000007c0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000007d0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+000007e0: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n+000007f0: 3e0a 3c2f 7072 6f6a 6563 743e 0a         >.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-thrift/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,201 +1,195 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 7468 7269 6674 3c2f 6172 7469 6661 6374  thrift</artifact\n-00000520: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000530: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000540: 0d0a 2020 3c6e 616d 653e 247b 7072 6f6a  ..  <name>${proj\n-00000550: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n-00000560: 2f6e 616d 653e 0d0a 2020 3c64 6573 6372  /name>..  <descr\n-00000570: 6970 7469 6f6e 3e54 6865 2074 6872 6966  iption>The thrif\n-00000580: 7420 7270 6320 6d6f 6475 6c65 206f 6620  t rpc module of \n-00000590: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n-000005a0: 6573 6372 6970 7469 6f6e 3e0d 0a20 203c  escription>..  <\n-000005b0: 6c69 6365 6e73 6573 3e0d 0a20 2020 203c  licenses>..    <\n-000005c0: 6c69 6365 6e73 653e 0d0a 2020 2020 2020  license>..      \n-000005d0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n-000005e0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n-000005f0: 303c 2f6e 616d 653e 0d0a 2020 2020 2020  0</name>..      \n-00000600: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n-00000610: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n-00000620: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n-00000630: 2f75 726c 3e0d 0a20 2020 2020 203c 6469  /url>..      <di\n-00000640: 7374 7269 6275 7469 6f6e 3e72 6570 6f3c  stribution>repo<\n-00000650: 2f64 6973 7472 6962 7574 696f 6e3e 0d0a  /distribution>..\n-00000660: 2020 2020 3c2f 6c69 6365 6e73 653e 0d0a      </license>..\n-00000670: 2020 3c2f 6c69 6365 6e73 6573 3e0d 0a20    </licenses>.. \n-00000680: 203c 7072 6f70 6572 7469 6573 3e0d 0a20   <properties>.. \n-00000690: 2020 203c 736b 6970 5f6d 6176 656e 5f64     <skip_maven_d\n-000006a0: 6570 6c6f 793e 6661 6c73 653c 2f73 6b69  eploy>false</ski\n-000006b0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e0d  p_maven_deploy>.\n-000006c0: 0a20 203c 2f70 726f 7065 7274 6965 733e  .  </properties>\n-000006d0: 0d0a 2020 3c64 6570 656e 6465 6e63 6965  ..  <dependencie\n-000006e0: 733e 0d0a 2020 2020 3c64 6570 656e 6465  s>..    <depende\n-000006f0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-00000700: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n-00000710: 6475 6262 6f3c 2f67 726f 7570 4964 3e0d  dubbo</groupId>.\n-00000720: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-00000730: 4964 3e64 7562 626f 2d72 7063 2d61 7069  Id>dubbo-rpc-api\n-00000740: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000750: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000760: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000770: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000780: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000790: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000007a0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000007b0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000007c0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000007d0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000007e0: 6374 4964 3e64 7562 626f 2d72 7063 2d64  ctId>dubbo-rpc-d\n-000007f0: 7562 626f 3c2f 6172 7469 6661 6374 4964  ubbo</artifactId\n-00000800: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000810: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-00000820: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-00000830: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-00000840: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000850: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000860: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-00000870: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n-00000880: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000890: 7469 6661 6374 4964 3e64 7562 626f 2d72  tifactId>dubbo-r\n-000008a0: 656d 6f74 696e 672d 6170 693c 2f61 7274  emoting-api</art\n-000008b0: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-000008c0: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-000008d0: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-000008e0: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-000008f0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000900: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-00000910: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-00000920: 643e 6f72 672e 6170 6163 6865 2e64 7562  d>org.apache.dub\n-00000930: 626f 3c2f 6772 6f75 7049 643e 0d0a 2020  bo</groupId>..  \n-00000940: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000950: 6475 6262 6f2d 7265 6d6f 7469 6e67 2d6e  dubbo-remoting-n\n-00000960: 6574 7479 343c 2f61 7274 6966 6163 7449  etty4</artifactI\n-00000970: 643e 0d0a 2020 2020 2020 3c76 6572 7369  d>..      <versi\n-00000980: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n-00000990: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n-000009a0: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-000009b0: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-000009c0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000009d0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-000009e0: 6170 6163 6865 2e74 6872 6966 743c 2f67  apache.thrift</g\n-000009f0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000a00: 6172 7469 6661 6374 4964 3e6c 6962 7468  artifactId>libth\n-00000a10: 7269 6674 3c2f 6172 7469 6661 6374 4964  rift</artifactId\n-00000a20: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000a30: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000a40: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000a50: 726f 7570 4964 3e6f 7267 2e73 7072 696e  roupId>org.sprin\n-00000a60: 6766 7261 6d65 776f 726b 3c2f 6772 6f75  gframework</grou\n-00000a70: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000a80: 6966 6163 7449 643e 7370 7269 6e67 2d63  ifactId>spring-c\n-00000a90: 6f6e 7465 7874 3c2f 6172 7469 6661 6374  ontext</artifact\n-00000aa0: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-00000ab0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-00000ac0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000ad0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-00000ae0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-00000af0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000b00: 6661 6374 4964 3e64 7562 626f 2d63 6f6e  factId>dubbo-con\n-00000b10: 6669 672d 7370 7269 6e67 3c2f 6172 7469  fig-spring</arti\n-00000b20: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000b30: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n-00000b40: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n-00000b50: 7d3c 2f76 6572 7369 6f6e 3e0d 0a20 2020  }</version>..   \n-00000b60: 2020 203c 7363 6f70 653e 7465 7374 3c2f     <scope>test</\n-00000b70: 7363 6f70 653e 0d0a 2020 2020 3c2f 6465  scope>..    </de\n-00000b80: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-00000b90: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000ba0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000bb0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-00000bc0: 6f75 7049 643e 0d0a 2020 2020 2020 3c61  oupId>..      <a\n-00000bd0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n-00000be0: 7265 6769 7374 7279 2d6d 756c 7469 6361  registry-multica\n-00000bf0: 7374 3c2f 6172 7469 6661 6374 4964 3e0d  st</artifactId>.\n-00000c00: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000c10: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000c20: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-00000c30: 6f6e 3e0d 0a20 2020 2020 203c 7363 6f70  on>..      <scop\n-00000c40: 653e 7465 7374 3c2f 7363 6f70 653e 0d0a  e>test</scope>..\n-00000c50: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000c60: 3e0d 0a20 203c 2f64 6570 656e 6465 6e63  >..  </dependenc\n-00000c70: 6965 733e 0d0a 3c2f 7072 6f6a 6563 743e  ies>..</project>\n-00000c80: 0d0a                                     ..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 7468 7269 6674 3c2f 6172  o-rpc-thrift</ar\n+00000500: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000510: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000520: 7369 6f6e 3e0a 2020 3c6e 616d 653e 247b  sion>.  <name>${\n+00000530: 7072 6f6a 6563 742e 6172 7469 6661 6374  project.artifact\n+00000540: 4964 7d3c 2f6e 616d 653e 0a20 203c 6465  Id}</name>.  <de\n+00000550: 7363 7269 7074 696f 6e3e 5468 6520 7468  scription>The th\n+00000560: 7269 6674 2072 7063 206d 6f64 756c 6520  rift rpc module \n+00000570: 6f66 2064 7562 626f 2070 726f 6a65 6374  of dubbo project\n+00000580: 3c2f 6465 7363 7269 7074 696f 6e3e 0a20  </description>. \n+00000590: 203c 6c69 6365 6e73 6573 3e0a 2020 2020   <licenses>.    \n+000005a0: 3c6c 6963 656e 7365 3e0a 2020 2020 2020  <license>.      \n+000005b0: 3c6e 616d 653e 4170 6163 6865 204c 6963  <name>Apache Lic\n+000005c0: 656e 7365 2c20 5665 7273 696f 6e20 322e  ense, Version 2.\n+000005d0: 303c 2f6e 616d 653e 0a20 2020 2020 203c  0</name>.      <\n+000005e0: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n+000005f0: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n+00000600: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n+00000610: 7572 6c3e 0a20 2020 2020 203c 6469 7374  url>.      <dist\n+00000620: 7269 6275 7469 6f6e 3e72 6570 6f3c 2f64  ribution>repo</d\n+00000630: 6973 7472 6962 7574 696f 6e3e 0a20 2020  istribution>.   \n+00000640: 203c 2f6c 6963 656e 7365 3e0a 2020 3c2f   </license>.  </\n+00000650: 6c69 6365 6e73 6573 3e0a 2020 3c70 726f  licenses>.  <pro\n+00000660: 7065 7274 6965 733e 0a20 2020 203c 736b  perties>.    <sk\n+00000670: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+00000680: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n+00000690: 6e5f 6465 706c 6f79 3e0a 2020 3c2f 7072  n_deploy>.  </pr\n+000006a0: 6f70 6572 7469 6573 3e0a 2020 3c64 6570  operties>.  <dep\n+000006b0: 656e 6465 6e63 6965 733e 0a20 2020 203c  endencies>.    <\n+000006c0: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+000006d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000006e0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000006f0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+00000700: 6966 6163 7449 643e 6475 6262 6f2d 7270  ifactId>dubbo-rp\n+00000710: 632d 6170 693c 2f61 7274 6966 6163 7449  c-api</artifactI\n+00000720: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000730: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000740: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000750: 7369 6f6e 3e0a 2020 2020 3c2f 6465 7065  sion>.    </depe\n+00000760: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+00000770: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000780: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000790: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+000007a0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+000007b0: 6374 4964 3e64 7562 626f 2d72 7063 2d64  ctId>dubbo-rpc-d\n+000007c0: 7562 626f 3c2f 6172 7469 6661 6374 4964  ubbo</artifactId\n+000007d0: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+000007e0: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+000007f0: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000800: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+00000810: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000820: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000830: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+00000840: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n+00000850: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000860: 7449 643e 6475 6262 6f2d 7265 6d6f 7469  tId>dubbo-remoti\n+00000870: 6e67 2d61 7069 3c2f 6172 7469 6661 6374  ng-api</artifact\n+00000880: 4964 3e0a 2020 2020 2020 3c76 6572 7369  Id>.      <versi\n+00000890: 6f6e 3e24 7b70 726f 6a65 6374 2e70 6172  on>${project.par\n+000008a0: 656e 742e 7665 7273 696f 6e7d 3c2f 7665  ent.version}</ve\n+000008b0: 7273 696f 6e3e 0a20 2020 203c 2f64 6570  rsion>.    </dep\n+000008c0: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+000008d0: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+000008e0: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n+000008f0: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n+00000900: 4964 3e0a 2020 2020 2020 3c61 7274 6966  Id>.      <artif\n+00000910: 6163 7449 643e 6475 6262 6f2d 7265 6d6f  actId>dubbo-remo\n+00000920: 7469 6e67 2d6e 6574 7479 343c 2f61 7274  ting-netty4</art\n+00000930: 6966 6163 7449 643e 0a20 2020 2020 203c  ifactId>.      <\n+00000940: 7665 7273 696f 6e3e 247b 7072 6f6a 6563  version>${projec\n+00000950: 742e 7061 7265 6e74 2e76 6572 7369 6f6e  t.parent.version\n+00000960: 7d3c 2f76 6572 7369 6f6e 3e0a 2020 2020  }</version>.    \n+00000970: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+00000980: 2020 3c64 6570 656e 6465 6e63 793e 0a20    <dependency>. \n+00000990: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n+000009a0: 672e 6170 6163 6865 2e74 6872 6966 743c  g.apache.thrift<\n+000009b0: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+000009c0: 3c61 7274 6966 6163 7449 643e 6c69 6274  <artifactId>libt\n+000009d0: 6872 6966 743c 2f61 7274 6966 6163 7449  hrift</artifactI\n+000009e0: 643e 0a20 2020 203c 2f64 6570 656e 6465  d>.    </depende\n+000009f0: 6e63 793e 0a20 2020 203c 6465 7065 6e64  ncy>.    <depend\n+00000a00: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+00000a10: 7570 4964 3e6f 7267 2e73 7072 696e 6766  upId>org.springf\n+00000a20: 7261 6d65 776f 726b 3c2f 6772 6f75 7049  ramework</groupI\n+00000a30: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000a40: 6374 4964 3e73 7072 696e 672d 636f 6e74  ctId>spring-cont\n+00000a50: 6578 743c 2f61 7274 6966 6163 7449 643e  ext</artifactId>\n+00000a60: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000a70: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000a80: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000a90: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000aa0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000ab0: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000ac0: 6475 6262 6f2d 636f 6e66 6967 2d73 7072  dubbo-config-spr\n+00000ad0: 696e 673c 2f61 7274 6966 6163 7449 643e  ing</artifactId>\n+00000ae0: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000af0: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000b00: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000b10: 6f6e 3e0a 2020 2020 2020 3c73 636f 7065  on>.      <scope\n+00000b20: 3e74 6573 743c 2f73 636f 7065 3e0a 2020  >test</scope>.  \n+00000b30: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000b40: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000b50: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000b60: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000b70: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000b80: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000b90: 626f 2d72 6567 6973 7472 792d 6d75 6c74  bo-registry-mult\n+00000ba0: 6963 6173 743c 2f61 7274 6966 6163 7449  icast</artifactI\n+00000bb0: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+00000bc0: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n+00000bd0: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n+00000be0: 7369 6f6e 3e0a 2020 2020 2020 3c73 636f  sion>.      <sco\n+00000bf0: 7065 3e74 6573 743c 2f73 636f 7065 3e0a  pe>test</scope>.\n+00000c00: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000c10: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000c20: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-webservice/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,200 +1,194 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 7765 6273 6572 7669 6365 3c2f 6172 7469  webservice</arti\n-00000520: 6661 6374 4964 3e0d 0a20 203c 7665 7273  factId>..  <vers\n-00000530: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n-00000540: 696f 6e3e 0d0a 2020 3c6e 616d 653e 247b  ion>..  <name>${\n-00000550: 7072 6f6a 6563 742e 6172 7469 6661 6374  project.artifact\n-00000560: 4964 7d3c 2f6e 616d 653e 0d0a 2020 3c64  Id}</name>..  <d\n-00000570: 6573 6372 6970 7469 6f6e 3e54 6865 2077  escription>The w\n-00000580: 6562 7365 7276 6963 6520 7270 6320 6d6f  ebservice rpc mo\n-00000590: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n-000005a0: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n-000005b0: 6f6e 3e0d 0a20 203c 6c69 6365 6e73 6573  on>..  <licenses\n-000005c0: 3e0d 0a20 2020 203c 6c69 6365 6e73 653e  >..    <license>\n-000005d0: 0d0a 2020 2020 2020 3c6e 616d 653e 4170  ..      <name>Ap\n-000005e0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n-000005f0: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n-00000600: 0d0a 2020 2020 2020 3c75 726c 3e68 7474  ..      <url>htt\n-00000610: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n-00000620: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n-00000630: 4e53 452d 322e 303c 2f75 726c 3e0d 0a20  NSE-2.0</url>.. \n-00000640: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n-00000650: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n-00000660: 7574 696f 6e3e 0d0a 2020 2020 3c2f 6c69  ution>..    </li\n-00000670: 6365 6e73 653e 0d0a 2020 3c2f 6c69 6365  cense>..  </lice\n-00000680: 6e73 6573 3e0d 0a20 203c 7072 6f70 6572  nses>..  <proper\n-00000690: 7469 6573 3e0d 0a20 2020 203c 736b 6970  ties>..    <skip\n-000006a0: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n-000006b0: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n-000006c0: 6465 706c 6f79 3e0d 0a20 203c 2f70 726f  deploy>..  </pro\n-000006d0: 7065 7274 6965 733e 0d0a 2020 3c64 6570  perties>..  <dep\n-000006e0: 656e 6465 6e63 6965 733e 0d0a 2020 2020  endencies>..    \n-000006f0: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000700: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000710: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000720: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000730: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000740: 2d72 7063 2d61 7069 3c2f 6172 7469 6661  -rpc-api</artifa\n-00000750: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000760: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000770: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000780: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-00000790: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007a0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-000007b0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-000007c0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-000007d0: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-000007e0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-000007f0: 626f 2d72 656d 6f74 696e 672d 6874 7470  bo-remoting-http\n-00000800: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-00000810: 2020 2020 203c 7665 7273 696f 6e3e 247b       <version>${\n-00000820: 7072 6f6a 6563 742e 7061 7265 6e74 2e76  project.parent.v\n-00000830: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000840: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000850: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000860: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000870: 726f 7570 4964 3e6a 6176 6178 2e78 6d6c  roupId>javax.xml\n-00000880: 2e62 696e 643c 2f67 726f 7570 4964 3e0d  .bind</groupId>.\n-00000890: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000008a0: 4964 3e6a 6178 622d 6170 693c 2f61 7274  Id>jaxb-api</art\n-000008b0: 6966 6163 7449 643e 0d0a 2020 2020 3c2f  ifactId>..    </\n-000008c0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-000008d0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-000008e0: 2020 2020 203c 6772 6f75 7049 643e 636f       <groupId>co\n-000008f0: 6d2e 7375 6e2e 786d 6c2e 6269 6e64 3c2f  m.sun.xml.bind</\n-00000900: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000910: 3c61 7274 6966 6163 7449 643e 6a61 7862  <artifactId>jaxb\n-00000920: 2d69 6d70 6c3c 2f61 7274 6966 6163 7449  -impl</artifactI\n-00000930: 643e 0d0a 2020 2020 3c2f 6465 7065 6e64  d>..    </depend\n-00000940: 656e 6379 3e0d 0a20 2020 203c 6465 7065  ency>..    <depe\n-00000950: 6e64 656e 6379 3e0d 0a20 2020 2020 203c  ndency>..      <\n-00000960: 6772 6f75 7049 643e 636f 6d2e 7375 6e2e  groupId>com.sun.\n-00000970: 786d 6c2e 6269 6e64 3c2f 6772 6f75 7049  xml.bind</groupI\n-00000980: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000990: 6163 7449 643e 6a61 7862 2d63 6f72 653c  actId>jaxb-core<\n-000009a0: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-000009b0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000009c0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000009d0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000009e0: 643e 6a61 7661 782e 6163 7469 7661 7469  d>javax.activati\n-000009f0: 6f6e 3c2f 6772 6f75 7049 643e 0d0a 2020  on</groupId>..  \n-00000a00: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000a10: 6a61 7661 782e 6163 7469 7661 7469 6f6e  javax.activation\n-00000a20: 2d61 7069 3c2f 6172 7469 6661 6374 4964  -api</artifactId\n-00000a30: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000a40: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-00000a50: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-00000a60: 726f 7570 4964 3e63 6f6d 2e73 756e 2e61  roupId>com.sun.a\n-00000a70: 6374 6976 6174 696f 6e3c 2f67 726f 7570  ctivation</group\n-00000a80: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000a90: 6661 6374 4964 3e6a 6176 6178 2e61 6374  factId>javax.act\n-00000aa0: 6976 6174 696f 6e3c 2f61 7274 6966 6163  ivation</artifac\n-00000ab0: 7449 643e 0d0a 2020 2020 3c2f 6465 7065  tId>..    </depe\n-00000ac0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-00000ad0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000ae0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000af0: 6163 6865 2e63 7866 3c2f 6772 6f75 7049  ache.cxf</groupI\n-00000b00: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000b10: 6163 7449 643e 6378 662d 7274 2d66 726f  actId>cxf-rt-fro\n-00000b20: 6e74 656e 642d 7369 6d70 6c65 3c2f 6172  ntend-simple</ar\n-00000b30: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000b40: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000b50: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000b60: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000b70: 7267 2e61 7061 6368 652e 6378 663c 2f67  rg.apache.cxf</g\n-00000b80: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000b90: 6172 7469 6661 6374 4964 3e63 7866 2d72  artifactId>cxf-r\n-00000ba0: 742d 7472 616e 7370 6f72 7473 2d68 7474  t-transports-htt\n-00000bb0: 703c 2f61 7274 6966 6163 7449 643e 0d0a  p</artifactId>..\n-00000bc0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000bd0: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000be0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000bf0: 7049 643e 6f72 672e 7370 7269 6e67 6672  pId>org.springfr\n-00000c00: 616d 6577 6f72 6b3c 2f67 726f 7570 4964  amework</groupId\n-00000c10: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-00000c20: 6374 4964 3e73 7072 696e 672d 636f 6e74  ctId>spring-cont\n-00000c30: 6578 743c 2f61 7274 6966 6163 7449 643e  ext</artifactId>\n-00000c40: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-00000c50: 6379 3e0d 0a20 203c 2f64 6570 656e 6465  cy>..  </depende\n-00000c60: 6e63 6965 733e 0d0a 3c2f 7072 6f6a 6563  ncies>..</projec\n-00000c70: 743e 0d0a                                t>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 7765 6273 6572 7669 6365  o-rpc-webservice\n+00000500: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000510: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n+00000520: 2f76 6572 7369 6f6e 3e0a 2020 3c6e 616d  /version>.  <nam\n+00000530: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n+00000540: 6661 6374 4964 7d3c 2f6e 616d 653e 0a20  factId}</name>. \n+00000550: 203c 6465 7363 7269 7074 696f 6e3e 5468   <description>Th\n+00000560: 6520 7765 6273 6572 7669 6365 2072 7063  e webservice rpc\n+00000570: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n+00000580: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n+00000590: 7074 696f 6e3e 0a20 203c 6c69 6365 6e73  ption>.  <licens\n+000005a0: 6573 3e0a 2020 2020 3c6c 6963 656e 7365  es>.    <license\n+000005b0: 3e0a 2020 2020 2020 3c6e 616d 653e 4170  >.      <name>Ap\n+000005c0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n+000005d0: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n+000005e0: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n+000005f0: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n+00000600: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n+00000610: 5345 2d32 2e30 3c2f 7572 6c3e 0a20 2020  SE-2.0</url>.   \n+00000620: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n+00000630: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n+00000640: 696f 6e3e 0a20 2020 203c 2f6c 6963 656e  ion>.    </licen\n+00000650: 7365 3e0a 2020 3c2f 6c69 6365 6e73 6573  se>.  </licenses\n+00000660: 3e0a 2020 3c70 726f 7065 7274 6965 733e  >.  <properties>\n+00000670: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n+00000680: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n+00000690: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+000006a0: 3e0a 2020 3c2f 7072 6f70 6572 7469 6573  >.  </properties\n+000006b0: 3e0a 2020 3c64 6570 656e 6465 6e63 6965  >.  <dependencie\n+000006c0: 733e 0a20 2020 203c 6465 7065 6e64 656e  s>.    <dependen\n+000006d0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000006e0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000006f0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000700: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000710: 6475 6262 6f2d 7270 632d 6170 693c 2f61  dubbo-rpc-api</a\n+00000720: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000730: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000740: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000750: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000760: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000770: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000780: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000790: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000007a0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000007b0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000007c0: 626f 2d72 656d 6f74 696e 672d 6874 7470  bo-remoting-http\n+000007d0: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+000007e0: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+000007f0: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+00000800: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000810: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000820: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000830: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000840: 4964 3e6a 6176 6178 2e78 6d6c 2e62 696e  Id>javax.xml.bin\n+00000850: 643c 2f67 726f 7570 4964 3e0a 2020 2020  d</groupId>.    \n+00000860: 2020 3c61 7274 6966 6163 7449 643e 6a61    <artifactId>ja\n+00000870: 7862 2d61 7069 3c2f 6172 7469 6661 6374  xb-api</artifact\n+00000880: 4964 3e0a 2020 2020 3c2f 6465 7065 6e64  Id>.    </depend\n+00000890: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+000008a0: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000008b0: 6f75 7049 643e 636f 6d2e 7375 6e2e 786d  oupId>com.sun.xm\n+000008c0: 6c2e 6269 6e64 3c2f 6772 6f75 7049 643e  l.bind</groupId>\n+000008d0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000008e0: 4964 3e6a 6178 622d 696d 706c 3c2f 6172  Id>jaxb-impl</ar\n+000008f0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000900: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000910: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000920: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n+00000930: 7375 6e2e 786d 6c2e 6269 6e64 3c2f 6772  sun.xml.bind</gr\n+00000940: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000950: 7469 6661 6374 4964 3e6a 6178 622d 636f  tifactId>jaxb-co\n+00000960: 7265 3c2f 6172 7469 6661 6374 4964 3e0a  re</artifactId>.\n+00000970: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000980: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000990: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+000009a0: 643e 6a61 7661 782e 6163 7469 7661 7469  d>javax.activati\n+000009b0: 6f6e 3c2f 6772 6f75 7049 643e 0a20 2020  on</groupId>.   \n+000009c0: 2020 203c 6172 7469 6661 6374 4964 3e6a     <artifactId>j\n+000009d0: 6176 6178 2e61 6374 6976 6174 696f 6e2d  avax.activation-\n+000009e0: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+000009f0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000a00: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000a10: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000a20: 4964 3e63 6f6d 2e73 756e 2e61 6374 6976  Id>com.sun.activ\n+00000a30: 6174 696f 6e3c 2f67 726f 7570 4964 3e0a  ation</groupId>.\n+00000a40: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000a50: 643e 6a61 7661 782e 6163 7469 7661 7469  d>javax.activati\n+00000a60: 6f6e 3c2f 6172 7469 6661 6374 4964 3e0a  on</artifactId>.\n+00000a70: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000a80: 3e0a 2020 2020 3c64 6570 656e 6465 6e63  >.    <dependenc\n+00000a90: 793e 0a20 2020 2020 203c 6772 6f75 7049  y>.      <groupI\n+00000aa0: 643e 6f72 672e 6170 6163 6865 2e63 7866  d>org.apache.cxf\n+00000ab0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000ac0: 203c 6172 7469 6661 6374 4964 3e63 7866   <artifactId>cxf\n+00000ad0: 2d72 742d 6672 6f6e 7465 6e64 2d73 696d  -rt-frontend-sim\n+00000ae0: 706c 653c 2f61 7274 6966 6163 7449 643e  ple</artifactId>\n+00000af0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000b00: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000b10: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000b20: 4964 3e6f 7267 2e61 7061 6368 652e 6378  Id>org.apache.cx\n+00000b30: 663c 2f67 726f 7570 4964 3e0a 2020 2020  f</groupId>.    \n+00000b40: 2020 3c61 7274 6966 6163 7449 643e 6378    <artifactId>cx\n+00000b50: 662d 7274 2d74 7261 6e73 706f 7274 732d  f-rt-transports-\n+00000b60: 6874 7470 3c2f 6172 7469 6661 6374 4964  http</artifactId\n+00000b70: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+00000b80: 6379 3e0a 2020 2020 3c64 6570 656e 6465  cy>.    <depende\n+00000b90: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+00000ba0: 7049 643e 6f72 672e 7370 7269 6e67 6672  pId>org.springfr\n+00000bb0: 616d 6577 6f72 6b3c 2f67 726f 7570 4964  amework</groupId\n+00000bc0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+00000bd0: 7449 643e 7370 7269 6e67 2d63 6f6e 7465  tId>spring-conte\n+00000be0: 7874 3c2f 6172 7469 6661 6374 4964 3e0a  xt</artifactId>.\n+00000bf0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000c00: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000c10: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-rpc-xml/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,179 +1,174 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d72 7063 3c2f 6172 7469 6661 6374  bo-rpc</artifact\n-000004a0: 4964 3e0d 0a20 2020 203c 7665 7273 696f  Id>..    <versio\n-000004b0: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-000004c0: 6e3e 0d0a 2020 3c2f 7061 7265 6e74 3e0d  n>..  </parent>.\n-000004d0: 0a20 203c 6772 6f75 7049 643e 6f72 672e  .  <groupId>org.\n-000004e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n-000004f0: 6f75 7049 643e 0d0a 2020 3c61 7274 6966  oupId>..  <artif\n-00000500: 6163 7449 643e 6475 6262 6f2d 7270 632d  actId>dubbo-rpc-\n-00000510: 786d 6c3c 2f61 7274 6966 6163 7449 643e  xml</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 786d 6c20 7270 6320  ion>The xml rpc \n-00000580: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n-00000590: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n-000005a0: 7469 6f6e 3e0d 0a20 203c 7572 6c3e 6874  tion>..  <url>ht\n-000005b0: 7470 733a 2f2f 6769 7468 7562 2e63 6f6d  tps://github.com\n-000005c0: 2f61 7061 6368 652f 6475 6262 6f3c 2f75  /apache/dubbo</u\n-000005d0: 726c 3e0d 0a20 203c 6c69 6365 6e73 6573  rl>..  <licenses\n-000005e0: 3e0d 0a20 2020 203c 6c69 6365 6e73 653e  >..    <license>\n-000005f0: 0d0a 2020 2020 2020 3c6e 616d 653e 4170  ..      <name>Ap\n-00000600: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n-00000610: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n-00000620: 0d0a 2020 2020 2020 3c75 726c 3e68 7474  ..      <url>htt\n-00000630: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n-00000640: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n-00000650: 4e53 452d 322e 303c 2f75 726c 3e0d 0a20  NSE-2.0</url>.. \n-00000660: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n-00000670: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n-00000680: 7574 696f 6e3e 0d0a 2020 2020 3c2f 6c69  ution>..    </li\n-00000690: 6365 6e73 653e 0d0a 2020 3c2f 6c69 6365  cense>..  </lice\n-000006a0: 6e73 6573 3e0d 0a20 203c 7072 6f70 6572  nses>..  <proper\n-000006b0: 7469 6573 3e0d 0a20 2020 203c 736b 6970  ties>..    <skip\n-000006c0: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n-000006d0: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n-000006e0: 6465 706c 6f79 3e0d 0a20 2020 203c 7072  deploy>..    <pr\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d72 7063  factId>dubbo-rpc\n+00000480: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000490: 2020 3c76 6572 7369 6f6e 3e32 2e37 2e31    <version>2.7.1\n+000004a0: 303c 2f76 6572 7369 6f6e 3e0a 2020 3c2f  0</version>.  </\n+000004b0: 7061 7265 6e74 3e0a 2020 3c67 726f 7570  parent>.  <group\n+000004c0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+000004d0: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+000004e0: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+000004f0: 6f2d 7270 632d 786d 6c3c 2f61 7274 6966  o-rpc-xml</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2078 6d6c 2072  iption>The xml r\n+00000560: 7063 206d 6f64 756c 6520 6f66 2064 7562  pc module of dub\n+00000570: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n+00000580: 7269 7074 696f 6e3e 0a20 203c 7572 6c3e  ription>.  <url>\n+00000590: 6874 7470 733a 2f2f 6769 7468 7562 2e63  https://github.c\n+000005a0: 6f6d 2f61 7061 6368 652f 6475 6262 6f3c  om/apache/dubbo<\n+000005b0: 2f75 726c 3e0a 2020 3c6c 6963 656e 7365  /url>.  <license\n+000005c0: 733e 0a20 2020 203c 6c69 6365 6e73 653e  s>.    <license>\n+000005d0: 0a20 2020 2020 203c 6e61 6d65 3e41 7061  .      <name>Apa\n+000005e0: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+000005f0: 7369 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a  sion 2.0</name>.\n+00000600: 2020 2020 2020 3c75 726c 3e68 7474 703a        <url>http:\n+00000610: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n+00000620: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n+00000630: 452d 322e 303c 2f75 726c 3e0a 2020 2020  E-2.0</url>.    \n+00000640: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n+00000650: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n+00000660: 6f6e 3e0a 2020 2020 3c2f 6c69 6365 6e73  on>.    </licens\n+00000670: 653e 0a20 203c 2f6c 6963 656e 7365 733e  e>.  </licenses>\n+00000680: 0a20 203c 7072 6f70 6572 7469 6573 3e0a  .  <properties>.\n+00000690: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n+000006a0: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n+000006b0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n+000006c0: 0a20 2020 203c 7072 6f6a 6563 742e 7265  .    <project.re\n+000006d0: 706f 7274 696e 672e 6f75 7470 7574 456e  porting.outputEn\n+000006e0: 636f 6469 6e67 3e55 5446 2d38 3c2f 7072  coding>UTF-8</pr\n 000006f0: 6f6a 6563 742e 7265 706f 7274 696e 672e  oject.reporting.\n-00000700: 6f75 7470 7574 456e 636f 6469 6e67 3e55  outputEncoding>U\n-00000710: 5446 2d38 3c2f 7072 6f6a 6563 742e 7265  TF-8</project.re\n-00000720: 706f 7274 696e 672e 6f75 7470 7574 456e  porting.outputEn\n-00000730: 636f 6469 6e67 3e0d 0a20 2020 203c 786d  coding>..    <xm\n-00000740: 6c72 7063 5f76 6572 7369 6f6e 3e33 2e31  lrpc_version>3.1\n-00000750: 2e33 3c2f 786d 6c72 7063 5f76 6572 7369  .3</xmlrpc_versi\n-00000760: 6f6e 3e0d 0a20 2020 203c 7072 6f6a 6563  on>..    <projec\n-00000770: 742e 6275 696c 642e 736f 7572 6365 456e  t.build.sourceEn\n-00000780: 636f 6469 6e67 3e55 5446 2d38 3c2f 7072  coding>UTF-8</pr\n-00000790: 6f6a 6563 742e 6275 696c 642e 736f 7572  oject.build.sour\n-000007a0: 6365 456e 636f 6469 6e67 3e0d 0a20 2020  ceEncoding>..   \n-000007b0: 203c 6d61 7665 6e2e 636f 6d70 696c 6572   <maven.compiler\n-000007c0: 2e73 6f75 7263 653e 312e 383c 2f6d 6176  .source>1.8</mav\n-000007d0: 656e 2e63 6f6d 7069 6c65 722e 736f 7572  en.compiler.sour\n-000007e0: 6365 3e0d 0a20 2020 203c 6d61 7665 6e2e  ce>..    <maven.\n-000007f0: 636f 6d70 696c 6572 2e74 6172 6765 743e  compiler.target>\n-00000800: 312e 383c 2f6d 6176 656e 2e63 6f6d 7069  1.8</maven.compi\n-00000810: 6c65 722e 7461 7267 6574 3e0d 0a20 203c  ler.target>..  <\n-00000820: 2f70 726f 7065 7274 6965 733e 0d0a 2020  /properties>..  \n-00000830: 3c64 6570 656e 6465 6e63 6965 733e 0d0a  <dependencies>..\n-00000840: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n-00000850: 0d0a 2020 2020 2020 3c67 726f 7570 4964  ..      <groupId\n-00000860: 3e6f 7267 2e61 7061 6368 652e 786d 6c72  >org.apache.xmlr\n-00000870: 7063 3c2f 6772 6f75 7049 643e 0d0a 2020  pc</groupId>..  \n-00000880: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000890: 786d 6c72 7063 2d73 6572 7665 723c 2f61  xmlrpc-server</a\n-000008a0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-000008b0: 2020 3c76 6572 7369 6f6e 3e24 7b78 6d6c    <version>${xml\n-000008c0: 7270 635f 7665 7273 696f 6e7d 3c2f 7665  rpc_version}</ve\n-000008d0: 7273 696f 6e3e 0d0a 2020 2020 3c2f 6465  rsion>..    </de\n-000008e0: 7065 6e64 656e 6379 3e0d 0a20 2020 203c  pendency>..    <\n-000008f0: 6465 7065 6e64 656e 6379 3e0d 0a20 2020  dependency>..   \n-00000900: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n-00000910: 6170 6163 6865 2e78 6d6c 7270 633c 2f67  apache.xmlrpc</g\n-00000920: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000930: 6172 7469 6661 6374 4964 3e78 6d6c 7270  artifactId>xmlrp\n-00000940: 632d 636c 6965 6e74 3c2f 6172 7469 6661  c-client</artifa\n-00000950: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000960: 7273 696f 6e3e 247b 786d 6c72 7063 5f76  rsion>${xmlrpc_v\n-00000970: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n-00000980: 3e0d 0a20 2020 203c 2f64 6570 656e 6465  >..    </depende\n-00000990: 6e63 793e 0d0a 2020 2020 3c64 6570 656e  ncy>..    <depen\n-000009a0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000009b0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000009c0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000009d0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000009e0: 6374 4964 3e64 7562 626f 2d72 656d 6f74  ctId>dubbo-remot\n-000009f0: 696e 672d 6874 7470 3c2f 6172 7469 6661  ing-http</artifa\n-00000a00: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-00000a10: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-00000a20: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-00000a30: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-00000a40: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000a50: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000a60: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000a70: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000a80: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000a90: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000aa0: 626f 2d63 6f6d 7061 7469 626c 653c 2f61  bo-compatible</a\n-00000ab0: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000ac0: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n-00000ad0: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n-00000ae0: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0d0a  ion}</version>..\n-00000af0: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n-00000b00: 3e0d 0a20 203c 2f64 6570 656e 6465 6e63  >..  </dependenc\n-00000b10: 6965 733e 0d0a 3c2f 7072 6f6a 6563 743e  ies>..</project>\n-00000b20: 0d0a                                     ..\n+00000700: 6f75 7470 7574 456e 636f 6469 6e67 3e0a  outputEncoding>.\n+00000710: 2020 2020 3c78 6d6c 7270 635f 7665 7273      <xmlrpc_vers\n+00000720: 696f 6e3e 332e 312e 333c 2f78 6d6c 7270  ion>3.1.3</xmlrp\n+00000730: 635f 7665 7273 696f 6e3e 0a20 2020 203c  c_version>.    <\n+00000740: 7072 6f6a 6563 742e 6275 696c 642e 736f  project.build.so\n+00000750: 7572 6365 456e 636f 6469 6e67 3e55 5446  urceEncoding>UTF\n+00000760: 2d38 3c2f 7072 6f6a 6563 742e 6275 696c  -8</project.buil\n+00000770: 642e 736f 7572 6365 456e 636f 6469 6e67  d.sourceEncoding\n+00000780: 3e0a 2020 2020 3c6d 6176 656e 2e63 6f6d  >.    <maven.com\n+00000790: 7069 6c65 722e 736f 7572 6365 3e31 2e38  piler.source>1.8\n+000007a0: 3c2f 6d61 7665 6e2e 636f 6d70 696c 6572  </maven.compiler\n+000007b0: 2e73 6f75 7263 653e 0a20 2020 203c 6d61  .source>.    <ma\n+000007c0: 7665 6e2e 636f 6d70 696c 6572 2e74 6172  ven.compiler.tar\n+000007d0: 6765 743e 312e 383c 2f6d 6176 656e 2e63  get>1.8</maven.c\n+000007e0: 6f6d 7069 6c65 722e 7461 7267 6574 3e0a  ompiler.target>.\n+000007f0: 2020 3c2f 7072 6f70 6572 7469 6573 3e0a    </properties>.\n+00000800: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n+00000810: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000820: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000830: 3e6f 7267 2e61 7061 6368 652e 786d 6c72  >org.apache.xmlr\n+00000840: 7063 3c2f 6772 6f75 7049 643e 0a20 2020  pc</groupId>.   \n+00000850: 2020 203c 6172 7469 6661 6374 4964 3e78     <artifactId>x\n+00000860: 6d6c 7270 632d 7365 7276 6572 3c2f 6172  mlrpc-server</ar\n+00000870: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000880: 3c76 6572 7369 6f6e 3e24 7b78 6d6c 7270  <version>${xmlrp\n+00000890: 635f 7665 7273 696f 6e7d 3c2f 7665 7273  c_version}</vers\n+000008a0: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+000008b0: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+000008c0: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+000008d0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n+000008e0: 652e 786d 6c72 7063 3c2f 6772 6f75 7049  e.xmlrpc</groupI\n+000008f0: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000900: 6374 4964 3e78 6d6c 7270 632d 636c 6965  ctId>xmlrpc-clie\n+00000910: 6e74 3c2f 6172 7469 6661 6374 4964 3e0a  nt</artifactId>.\n+00000920: 2020 2020 2020 3c76 6572 7369 6f6e 3e24        <version>$\n+00000930: 7b78 6d6c 7270 635f 7665 7273 696f 6e7d  {xmlrpc_version}\n+00000940: 3c2f 7665 7273 696f 6e3e 0a20 2020 203c  </version>.    <\n+00000950: 2f64 6570 656e 6465 6e63 793e 0a20 2020  /dependency>.   \n+00000960: 203c 6465 7065 6e64 656e 6379 3e0a 2020   <dependency>.  \n+00000970: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n+00000980: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+00000990: 726f 7570 4964 3e0a 2020 2020 2020 3c61  roupId>.      <a\n+000009a0: 7274 6966 6163 7449 643e 6475 6262 6f2d  rtifactId>dubbo-\n+000009b0: 7265 6d6f 7469 6e67 2d68 7474 703c 2f61  remoting-http</a\n+000009c0: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+000009d0: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+000009e0: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+000009f0: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000a00: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000a10: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000a20: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+00000a30: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+00000a40: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000a50: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000a60: 626f 2d63 6f6d 7061 7469 626c 653c 2f61  bo-compatible</a\n+00000a70: 7274 6966 6163 7449 643e 0a20 2020 2020  rtifactId>.     \n+00000a80: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n+00000a90: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n+00000aa0: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0a 2020  on}</version>.  \n+00000ab0: 2020 3c2f 6465 7065 6e64 656e 6379 3e0a    </dependency>.\n+00000ac0: 2020 3c2f 6465 7065 6e64 656e 6369 6573    </dependencies\n+00000ad0: 3e0a 3c2f 7072 6f6a 6563 743e 0a         >.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-api/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-api/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,124 +1,121 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d61 7069 3c2f  ialization-api</\n-00000510: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000520: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000530: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000540: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000550: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000560: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000570: 6865 2073 6572 6961 6c69 7a61 7469 6f6e  he serialization\n-00000580: 2069 6e74 6572 6661 6365 206d 6f64 756c   interface modul\n-00000590: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005a0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005b0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005c0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005d0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005e0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-000005f0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000600: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000610: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000620: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000630: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000640: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000650: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000660: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000670: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000680: 733e 0d0a 2020 3c70 726f 7065 7274 6965  s>..  <propertie\n-00000690: 733e 0d0a 2020 2020 3c73 6b69 705f 6d61  s>..    <skip_ma\n-000006a0: 7665 6e5f 6465 706c 6f79 3e66 616c 7365  ven_deploy>false\n-000006b0: 3c2f 736b 6970 5f6d 6176 656e 5f64 6570  </skip_maven_dep\n-000006c0: 6c6f 793e 0d0a 2020 3c2f 7072 6f70 6572  loy>..  </proper\n-000006d0: 7469 6573 3e0d 0a20 203c 6465 7065 6e64  ties>..  <depend\n-000006e0: 656e 6369 6573 3e0d 0a20 2020 203c 6465  encies>..    <de\n-000006f0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-00000700: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n-00000710: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n-00000720: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000730: 6966 6163 7449 643e 6475 6262 6f2d 636f  ifactId>dubbo-co\n-00000740: 6d6d 6f6e 3c2f 6172 7469 6661 6374 4964  mmon</artifactId\n-00000750: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000760: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-00000770: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-00000780: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-00000790: 656e 6465 6e63 793e 0d0a 2020 3c2f 6465  endency>..  </de\n-000007a0: 7065 6e64 656e 6369 6573 3e0d 0a3c 2f70  pendencies>..</p\n-000007b0: 726f 6a65 6374 3e0d 0a                   roject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d61 7069 3c2f 6172 7469 6661 6374 4964  -api</artifactId\n+00000500: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000510: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000520: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000530: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000540: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000550: 6e3e 5468 6520 7365 7269 616c 697a 6174  n>The serializat\n+00000560: 696f 6e20 696e 7465 7266 6163 6520 6d6f  ion interface mo\n+00000570: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000580: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+00000590: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005a0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005b0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005c0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005d0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005e0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+000005f0: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000600: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000610: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000620: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000630: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000640: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000650: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000660: 203c 7072 6f70 6572 7469 6573 3e0a 2020   <properties>.  \n+00000670: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n+00000680: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n+00000690: 5f6d 6176 656e 5f64 6570 6c6f 793e 0a20  _maven_deploy>. \n+000006a0: 203c 2f70 726f 7065 7274 6965 733e 0a20   </properties>. \n+000006b0: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+000006c0: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+000006d0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006e0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000006f0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+00000700: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+00000710: 626f 2d63 6f6d 6d6f 6e3c 2f61 7274 6966  bo-common</artif\n+00000720: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000730: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000740: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000750: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000760: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000770: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000780: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-avro/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n-000004a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000004b0: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n-000004c0: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-000004d0: 3c2f 7061 7265 6e74 3e0d 0a20 203c 6772  </parent>..  <gr\n-000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000500: 0d0a 2020 3c61 7274 6966 6163 7449 643e  ..  <artifactId>\n-00000510: 6475 6262 6f2d 7365 7269 616c 697a 6174  dubbo-serializat\n-00000520: 696f 6e2d 6176 726f 3c2f 6172 7469 6661  ion-avro</artifa\n-00000530: 6374 4964 3e0d 0a20 203c 7665 7273 696f  ctId>..  <versio\n-00000540: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n-00000550: 6e3e 0d0a 2020 3c6e 616d 653e 247b 7072  n>..  <name>${pr\n-00000560: 6f6a 6563 742e 6172 7469 6661 6374 4964  oject.artifactId\n-00000570: 7d3c 2f6e 616d 653e 0d0a 2020 3c64 6573  }</name>..  <des\n-00000580: 6372 6970 7469 6f6e 3e54 6865 2061 7672  cription>The avr\n-00000590: 6f20 7365 7269 616c 697a 6174 696f 6e20  o serialization \n-000005a0: 6d6f 6475 6c65 206f 6620 6475 6262 6f20  module of dubbo \n-000005b0: 7072 6f6a 6563 743c 2f64 6573 6372 6970  project</descrip\n-000005c0: 7469 6f6e 3e0d 0a20 203c 6c69 6365 6e73  tion>..  <licens\n-000005d0: 6573 3e0d 0a20 2020 203c 6c69 6365 6e73  es>..    <licens\n-000005e0: 653e 0d0a 2020 2020 2020 3c6e 616d 653e  e>..      <name>\n-000005f0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-00000600: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n-00000610: 653e 0d0a 2020 2020 2020 3c75 726c 3e68  e>..      <url>h\n-00000620: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n-00000630: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n-00000640: 4345 4e53 452d 322e 303c 2f75 726c 3e0d  CENSE-2.0</url>.\n-00000650: 0a20 2020 2020 203c 6469 7374 7269 6275  .      <distribu\n-00000660: 7469 6f6e 3e72 6570 6f3c 2f64 6973 7472  tion>repo</distr\n-00000670: 6962 7574 696f 6e3e 0d0a 2020 2020 3c2f  ibution>..    </\n-00000680: 6c69 6365 6e73 653e 0d0a 2020 3c2f 6c69  license>..  </li\n-00000690: 6365 6e73 6573 3e0d 0a20 203c 7072 6f70  censes>..  <prop\n-000006a0: 6572 7469 6573 3e0d 0a20 2020 203c 736b  erties>..    <sk\n-000006b0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006c0: 6661 6c73 653c 2f73 6b69 705f 6d61 7665  false</skip_mave\n-000006d0: 6e5f 6465 706c 6f79 3e0d 0a20 203c 2f70  n_deploy>..  </p\n-000006e0: 726f 7065 7274 6965 733e 0d0a 2020 3c64  roperties>..  <d\n-000006f0: 6570 656e 6465 6e63 6965 733e 0d0a 2020  ependencies>..  \n-00000700: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000710: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n-00000720: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000730: 2f67 726f 7570 4964 3e0d 0a20 2020 2020  /groupId>..     \n-00000740: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000750: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n-00000760: 2d61 7069 3c2f 6172 7469 6661 6374 4964  -api</artifactId\n-00000770: 3e0d 0a20 2020 2020 203c 7665 7273 696f  >..      <versio\n-00000780: 6e3e 247b 7072 6f6a 6563 742e 7061 7265  n>${project.pare\n-00000790: 6e74 2e76 6572 7369 6f6e 7d3c 2f76 6572  nt.version}</ver\n-000007a0: 7369 6f6e 3e0d 0a20 2020 203c 2f64 6570  sion>..    </dep\n-000007b0: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-000007c0: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-000007d0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n-000007e0: 7061 6368 652e 6176 726f 3c2f 6772 6f75  pache.avro</grou\n-000007f0: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-00000800: 6966 6163 7449 643e 6176 726f 3c2f 6172  ifactId>avro</ar\n-00000810: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000820: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000830: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000840: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n+00000480: 6961 6c69 7a61 7469 6f6e 3c2f 6172 7469  ialization</arti\n+00000490: 6661 6374 4964 3e0a 2020 2020 3c76 6572  factId>.    <ver\n+000004a0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+000004b0: 7369 6f6e 3e0a 2020 3c2f 7061 7265 6e74  sion>.  </parent\n+000004c0: 3e0a 2020 3c67 726f 7570 4964 3e6f 7267  >.  <groupId>org\n+000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+000004e0: 726f 7570 4964 3e0a 2020 3c61 7274 6966  roupId>.  <artif\n+000004f0: 6163 7449 643e 6475 6262 6f2d 7365 7269  actId>dubbo-seri\n+00000500: 616c 697a 6174 696f 6e2d 6176 726f 3c2f  alization-avro</\n+00000510: 6172 7469 6661 6374 4964 3e0a 2020 3c76  artifactId>.  <v\n+00000520: 6572 7369 6f6e 3e32 2e37 2e31 303c 2f76  ersion>2.7.10</v\n+00000530: 6572 7369 6f6e 3e0a 2020 3c6e 616d 653e  ersion>.  <name>\n+00000540: 247b 7072 6f6a 6563 742e 6172 7469 6661  ${project.artifa\n+00000550: 6374 4964 7d3c 2f6e 616d 653e 0a20 203c  ctId}</name>.  <\n+00000560: 6465 7363 7269 7074 696f 6e3e 5468 6520  description>The \n+00000570: 6176 726f 2073 6572 6961 6c69 7a61 7469  avro serializati\n+00000580: 6f6e 206d 6f64 756c 6520 6f66 2064 7562  on module of dub\n+00000590: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n+000005a0: 7269 7074 696f 6e3e 0a20 203c 6c69 6365  ription>.  <lice\n+000005b0: 6e73 6573 3e0a 2020 2020 3c6c 6963 656e  nses>.    <licen\n+000005c0: 7365 3e0a 2020 2020 2020 3c6e 616d 653e  se>.      <name>\n+000005d0: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n+000005e0: 5665 7273 696f 6e20 322e 303c 2f6e 616d  Version 2.0</nam\n+000005f0: 653e 0a20 2020 2020 203c 7572 6c3e 6874  e>.      <url>ht\n+00000600: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n+00000610: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n+00000620: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0a20  ENSE-2.0</url>. \n+00000630: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n+00000640: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n+00000650: 7574 696f 6e3e 0a20 2020 203c 2f6c 6963  ution>.    </lic\n+00000660: 656e 7365 3e0a 2020 3c2f 6c69 6365 6e73  ense>.  </licens\n+00000670: 6573 3e0a 2020 3c70 726f 7065 7274 6965  es>.  <propertie\n+00000680: 733e 0a20 2020 203c 736b 6970 5f6d 6176  s>.    <skip_mav\n+00000690: 656e 5f64 6570 6c6f 793e 6661 6c73 653c  en_deploy>false<\n+000006a0: 2f73 6b69 705f 6d61 7665 6e5f 6465 706c  /skip_maven_depl\n+000006b0: 6f79 3e0a 2020 3c2f 7072 6f70 6572 7469  oy>.  </properti\n+000006c0: 6573 3e0a 2020 3c64 6570 656e 6465 6e63  es>.  <dependenc\n+000006d0: 6965 733e 0a20 2020 203c 6465 7065 6e64  ies>.    <depend\n+000006e0: 656e 6379 3e0a 2020 2020 2020 3c67 726f  ency>.      <gro\n+000006f0: 7570 4964 3e6f 7267 2e61 7061 6368 652e  upId>org.apache.\n+00000700: 6475 6262 6f3c 2f67 726f 7570 4964 3e0a  dubbo</groupId>.\n+00000710: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000720: 643e 6475 6262 6f2d 7365 7269 616c 697a  d>dubbo-serializ\n+00000730: 6174 696f 6e2d 6170 693c 2f61 7274 6966  ation-api</artif\n+00000740: 6163 7449 643e 0a20 2020 2020 203c 7665  actId>.      <ve\n+00000750: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n+00000760: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n+00000770: 2f76 6572 7369 6f6e 3e0a 2020 2020 3c2f  /version>.    </\n+00000780: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000790: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000007a0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000007b0: 6170 6163 6865 2e61 7672 6f3c 2f67 726f  apache.avro</gro\n+000007c0: 7570 4964 3e0a 2020 2020 2020 3c61 7274  upId>.      <art\n+000007d0: 6966 6163 7449 643e 6176 726f 3c2f 6172  ifactId>avro</ar\n+000007e0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000007f0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000800: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000810: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-fastjson/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,132 +1,129 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d66 6173 746a  ialization-fastj\n-00000510: 736f 6e3c 2f61 7274 6966 6163 7449 643e  son</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 6661 7374 6a73 6f6e  ion>The fastjson\n-00000580: 2073 6572 6961 6c69 7a61 7469 6f6e 206d   serialization m\n-00000590: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n-000005a0: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n-000005b0: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-000005c0: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-000005d0: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-000005e0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-000005f0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-00000600: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-00000610: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-00000620: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-00000630: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000660: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000670: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000680: 656e 7365 733e 0d0a 2020 3c70 726f 7065  enses>..  <prope\n-00000690: 7274 6965 733e 0d0a 2020 2020 3c73 6b69  rties>..    <ski\n-000006a0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n-000006b0: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n-000006c0: 5f64 6570 6c6f 793e 0d0a 2020 3c2f 7072  _deploy>..  </pr\n-000006d0: 6f70 6572 7469 6573 3e0d 0a20 203c 6465  operties>..  <de\n-000006e0: 7065 6e64 656e 6369 6573 3e0d 0a20 2020  pendencies>..   \n-000006f0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000700: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000710: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000720: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000730: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000740: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n-00000750: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n-00000760: 0d0a 2020 2020 2020 3c76 6572 7369 6f6e  ..      <version\n-00000770: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n-00000780: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000790: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-000007a0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-000007b0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-000007c0: 203c 6772 6f75 7049 643e 636f 6d2e 616c   <groupId>com.al\n-000007d0: 6962 6162 613c 2f67 726f 7570 4964 3e0d  ibaba</groupId>.\n-000007e0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000007f0: 4964 3e66 6173 746a 736f 6e3c 2f61 7274  Id>fastjson</art\n-00000800: 6966 6163 7449 643e 0d0a 2020 2020 3c2f  ifactId>..    </\n-00000810: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000820: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-00000830: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d66 6173 746a 736f 6e3c 2f61 7274 6966  -fastjson</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2066 6173 746a  iption>The fastj\n+00000560: 736f 6e20 7365 7269 616c 697a 6174 696f  son serializatio\n+00000570: 6e20 6d6f 6475 6c65 206f 6620 6475 6262  n module of dubb\n+00000580: 6f20 7072 6f6a 6563 743c 2f64 6573 6372  o project</descr\n+00000590: 6970 7469 6f6e 3e0a 2020 3c6c 6963 656e  iption>.  <licen\n+000005a0: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+000005b0: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+000005c0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+000005d0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+000005e0: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+000005f0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+00000600: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+00000610: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+00000620: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+00000630: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+00000640: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+00000650: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000660: 733e 0a20 203c 7072 6f70 6572 7469 6573  s>.  <properties\n+00000670: 3e0a 2020 2020 3c73 6b69 705f 6d61 7665  >.    <skip_mave\n+00000680: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n+00000690: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+000006a0: 793e 0a20 203c 2f70 726f 7065 7274 6965  y>.  </propertie\n+000006b0: 733e 0a20 203c 6465 7065 6e64 656e 6369  s>.  <dependenci\n+000006c0: 6573 3e0a 2020 2020 3c64 6570 656e 6465  es>.    <depende\n+000006d0: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006e0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000006f0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000700: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000710: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n+00000720: 7469 6f6e 2d61 7069 3c2f 6172 7469 6661  tion-api</artifa\n+00000730: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000740: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000750: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000760: 7665 7273 696f 6e3e 0a20 2020 203c 2f64  version>.    </d\n+00000770: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000780: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000790: 2020 3c67 726f 7570 4964 3e63 6f6d 2e61    <groupId>com.a\n+000007a0: 6c69 6261 6261 3c2f 6772 6f75 7049 643e  libaba</groupId>\n+000007b0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000007c0: 4964 3e66 6173 746a 736f 6e3c 2f61 7274  Id>fastjson</art\n+000007d0: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+000007e0: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+000007f0: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+00000800: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-fst/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 2020  F-8\"?>..<!--..  \n-00000030: 4c69 6365 6e73 6564 2074 6f20 7468 6520  Licensed to the \n-00000040: 4170 6163 6865 2053 6f66 7477 6172 6520  Apache Software \n-00000050: 466f 756e 6461 7469 6f6e 2028 4153 4629  Foundation (ASF)\n-00000060: 2075 6e64 6572 206f 6e65 206f 7220 6d6f   under one or mo\n-00000070: 7265 0d0a 2020 636f 6e74 7269 6275 746f  re..  contributo\n-00000080: 7220 6c69 6365 6e73 6520 6167 7265 656d  r license agreem\n-00000090: 656e 7473 2e20 2053 6565 2074 6865 204e  ents.  See the N\n-000000a0: 4f54 4943 4520 6669 6c65 2064 6973 7472  OTICE file distr\n-000000b0: 6962 7574 6564 2077 6974 680d 0a20 2074  ibuted with..  t\n-000000c0: 6869 7320 776f 726b 2066 6f72 2061 6464  his work for add\n-000000d0: 6974 696f 6e61 6c20 696e 666f 726d 6174  itional informat\n-000000e0: 696f 6e20 7265 6761 7264 696e 6720 636f  ion regarding co\n-000000f0: 7079 7269 6768 7420 6f77 6e65 7273 6869  pyright ownershi\n-00000100: 702e 0d0a 2020 5468 6520 4153 4620 6c69  p...  The ASF li\n-00000110: 6365 6e73 6573 2074 6869 7320 6669 6c65  censes this file\n-00000120: 2074 6f20 596f 7520 756e 6465 7220 7468   to You under th\n-00000130: 6520 4170 6163 6865 204c 6963 656e 7365  e Apache License\n-00000140: 2c20 5665 7273 696f 6e20 322e 300d 0a20  , Version 2.0.. \n-00000150: 2028 7468 6520 224c 6963 656e 7365 2229   (the \"License\")\n-00000160: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n-00000170: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n-00000180: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n-00000190: 2077 6974 680d 0a20 2074 6865 204c 6963   with..  the Lic\n-000001a0: 656e 7365 2e20 2059 6f75 206d 6179 206f  ense.  You may o\n-000001b0: 6274 6169 6e20 6120 636f 7079 206f 6620  btain a copy of \n-000001c0: 7468 6520 4c69 6365 6e73 6520 6174 0d0a  the License at..\n-000001d0: 0d0a 2020 2020 2020 6874 7470 3a2f 2f77  ..      http://w\n-000001e0: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n-000001f0: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n-00000200: 2e30 0d0a 0d0a 2020 556e 6c65 7373 2072  .0....  Unless r\n-00000210: 6571 7569 7265 6420 6279 2061 7070 6c69  equired by appli\n-00000220: 6361 626c 6520 6c61 7720 6f72 2061 6772  cable law or agr\n-00000230: 6565 6420 746f 2069 6e20 7772 6974 696e  eed to in writin\n-00000240: 672c 2073 6f66 7477 6172 650d 0a20 2064  g, software..  d\n-00000250: 6973 7472 6962 7574 6564 2075 6e64 6572  istributed under\n-00000260: 2074 6865 204c 6963 656e 7365 2069 7320   the License is \n-00000270: 6469 7374 7269 6275 7465 6420 6f6e 2061  distributed on a\n-00000280: 6e20 2241 5320 4953 2220 4241 5349 532c  n \"AS IS\" BASIS,\n-00000290: 0d0a 2020 5749 5448 4f55 5420 5741 5252  ..  WITHOUT WARR\n-000002a0: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n-000002b0: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n-000002c0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n-000002d0: 206f 7220 696d 706c 6965 642e 0d0a 2020   or implied...  \n-000002e0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n-000002f0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n-00000300: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n-00000310: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n-00000320: 616e 640d 0a20 206c 696d 6974 6174 696f  and..  limitatio\n-00000330: 6e73 2075 6e64 6572 2074 6865 204c 6963  ns under the Lic\n-00000340: 656e 7365 2e0d 0a20 202d 2d3e 0d0a 3c70  ense...  -->..<p\n-00000350: 726f 6a65 6374 2078 7369 3a73 6368 656d  roject xsi:schem\n-00000360: 614c 6f63 6174 696f 6e3d 2268 7474 703a  aLocation=\"http:\n-00000370: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n-00000380: 7267 2f50 4f4d 2f34 2e30 2e30 2068 7474  rg/POM/4.0.0 htt\n-00000390: 7073 3a2f 2f6d 6176 656e 2e61 7061 6368  ps://maven.apach\n-000003a0: 652e 6f72 672f 7873 642f 6d61 7665 6e2d  e.org/xsd/maven-\n-000003b0: 342e 302e 302e 7873 6422 2078 6d6c 6e73  4.0.0.xsd\" xmlns\n-000003c0: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-000003d0: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-000003e0: 302e 3022 0d0a 2020 2020 786d 6c6e 733a  0.0\"..    xmlns:\n-000003f0: 7873 693d 2268 7474 703a 2f2f 7777 772e  xsi=\"http://www.\n-00000400: 7733 2e6f 7267 2f32 3030 312f 584d 4c53  w3.org/2001/XMLS\n-00000410: 6368 656d 612d 696e 7374 616e 6365 223e  chema-instance\">\n-00000420: 0d0a 2020 3c6d 6f64 656c 5665 7273 696f  ..  <modelVersio\n-00000430: 6e3e 342e 302e 303c 2f6d 6f64 656c 5665  n>4.0.0</modelVe\n-00000440: 7273 696f 6e3e 0d0a 2020 3c70 6172 656e  rsion>..  <paren\n-00000450: 743e 0d0a 2020 2020 3c67 726f 7570 4964  t>..    <groupId\n-00000460: 3e6f 7267 2e61 7061 6368 652e 6475 6262  >org.apache.dubb\n-00000470: 6f3c 2f67 726f 7570 4964 3e0d 0a20 2020  o</groupId>..   \n-00000480: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n-00000490: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n-000004a0: 3c2f 6172 7469 6661 6374 4964 3e0d 0a20  </artifactId>.. \n-000004b0: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n-000004c0: 3130 3c2f 7665 7273 696f 6e3e 0d0a 2020  10</version>..  \n-000004d0: 3c2f 7061 7265 6e74 3e0d 0a20 203c 6772  </parent>..  <gr\n-000004e0: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-000004f0: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000500: 0d0a 2020 3c61 7274 6966 6163 7449 643e  ..  <artifactId>\n-00000510: 6475 6262 6f2d 7365 7269 616c 697a 6174  dubbo-serializat\n-00000520: 696f 6e2d 6673 743c 2f61 7274 6966 6163  ion-fst</artifac\n-00000530: 7449 643e 0d0a 2020 3c76 6572 7369 6f6e  tId>..  <version\n-00000540: 3e32 2e37 2e31 303c 2f76 6572 7369 6f6e  >2.7.10</version\n-00000550: 3e0d 0a20 203c 6e61 6d65 3e24 7b70 726f  >..  <name>${pro\n-00000560: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n-00000570: 3c2f 6e61 6d65 3e0d 0a20 203c 6465 7363  </name>..  <desc\n-00000580: 7269 7074 696f 6e3e 5468 6520 6673 7420  ription>The fst \n-00000590: 7365 7269 616c 697a 6174 696f 6e20 6d6f  serialization mo\n-000005a0: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n-000005b0: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n-000005c0: 6f6e 3e0d 0a20 203c 6c69 6365 6e73 6573  on>..  <licenses\n-000005d0: 3e0d 0a20 2020 203c 6c69 6365 6e73 653e  >..    <license>\n-000005e0: 0d0a 2020 2020 2020 3c6e 616d 653e 4170  ..      <name>Ap\n-000005f0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n-00000600: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n-00000610: 0d0a 2020 2020 2020 3c75 726c 3e68 7474  ..      <url>htt\n-00000620: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n-00000630: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n-00000640: 4e53 452d 322e 303c 2f75 726c 3e0d 0a20  NSE-2.0</url>.. \n-00000650: 2020 2020 203c 6469 7374 7269 6275 7469       <distributi\n-00000660: 6f6e 3e72 6570 6f3c 2f64 6973 7472 6962  on>repo</distrib\n-00000670: 7574 696f 6e3e 0d0a 2020 2020 3c2f 6c69  ution>..    </li\n-00000680: 6365 6e73 653e 0d0a 2020 3c2f 6c69 6365  cense>..  </lice\n-00000690: 6e73 6573 3e0d 0a20 203c 7072 6f70 6572  nses>..  <proper\n-000006a0: 7469 6573 3e0d 0a20 2020 203c 736b 6970  ties>..    <skip\n-000006b0: 5f6d 6176 656e 5f64 6570 6c6f 793e 6661  _maven_deploy>fa\n-000006c0: 6c73 653c 2f73 6b69 705f 6d61 7665 6e5f  lse</skip_maven_\n-000006d0: 6465 706c 6f79 3e0d 0a20 203c 2f70 726f  deploy>..  </pro\n-000006e0: 7065 7274 6965 733e 0d0a 2020 3c64 6570  perties>..  <dep\n-000006f0: 656e 6465 6e63 6965 733e 0d0a 2020 2020  endencies>..    \n-00000700: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000710: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000720: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-00000730: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-00000740: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000750: 2d73 6572 6961 6c69 7a61 7469 6f6e 2d61  -serialization-a\n-00000760: 7069 3c2f 6172 7469 6661 6374 4964 3e0d  pi</artifactId>.\n-00000770: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n-00000780: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n-00000790: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n-000007a0: 6f6e 3e0d 0a20 2020 203c 2f64 6570 656e  on>..    </depen\n-000007b0: 6465 6e63 793e 0d0a 2020 2020 3c64 6570  dency>..    <dep\n-000007c0: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-000007d0: 3c67 726f 7570 4964 3e64 652e 7275 6564  <groupId>de.rued\n-000007e0: 6967 6572 6d6f 656c 6c65 723c 2f67 726f  igermoeller</gro\n-000007f0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-00000800: 7469 6661 6374 4964 3e66 7374 3c2f 6172  tifactId>fst</ar\n-00000810: 7469 6661 6374 4964 3e0d 0a20 2020 203c  tifactId>..    <\n-00000820: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-00000830: 3c2f 6465 7065 6e64 656e 6369 6573 3e0d  </dependencies>.\n-00000840: 0a3c 2f70 726f 6a65 6374 3e0d 0a         .</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 2020 4c69  F-8\"?>.<!--.  Li\n+00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n+00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n+00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n+00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n+00000070: 0a20 2063 6f6e 7472 6962 7574 6f72 206c  .  contributor l\n+00000080: 6963 656e 7365 2061 6772 6565 6d65 6e74  icense agreement\n+00000090: 732e 2020 5365 6520 7468 6520 4e4f 5449  s.  See the NOTI\n+000000a0: 4345 2066 696c 6520 6469 7374 7269 6275  CE file distribu\n+000000b0: 7465 6420 7769 7468 0a20 2074 6869 7320  ted with.  this \n+000000c0: 776f 726b 2066 6f72 2061 6464 6974 696f  work for additio\n+000000d0: 6e61 6c20 696e 666f 726d 6174 696f 6e20  nal information \n+000000e0: 7265 6761 7264 696e 6720 636f 7079 7269  regarding copyri\n+000000f0: 6768 7420 6f77 6e65 7273 6869 702e 0a20  ght ownership.. \n+00000100: 2054 6865 2041 5346 206c 6963 656e 7365   The ASF license\n+00000110: 7320 7468 6973 2066 696c 6520 746f 2059  s this file to Y\n+00000120: 6f75 2075 6e64 6572 2074 6865 2041 7061  ou under the Apa\n+00000130: 6368 6520 4c69 6365 6e73 652c 2056 6572  che License, Ver\n+00000140: 7369 6f6e 2032 2e30 0a20 2028 7468 6520  sion 2.0.  (the \n+00000150: 224c 6963 656e 7365 2229 3b20 796f 7520  \"License\"); you \n+00000160: 6d61 7920 6e6f 7420 7573 6520 7468 6973  may not use this\n+00000170: 2066 696c 6520 6578 6365 7074 2069 6e20   file except in \n+00000180: 636f 6d70 6c69 616e 6365 2077 6974 680a  compliance with.\n+00000190: 2020 7468 6520 4c69 6365 6e73 652e 2020    the License.  \n+000001a0: 596f 7520 6d61 7920 6f62 7461 696e 2061  You may obtain a\n+000001b0: 2063 6f70 7920 6f66 2074 6865 204c 6963   copy of the Lic\n+000001c0: 656e 7365 2061 740a 0a20 2020 2020 2068  ense at..      h\n+000001d0: 7474 703a 2f2f 7777 772e 6170 6163 6865  ttp://www.apache\n+000001e0: 2e6f 7267 2f6c 6963 656e 7365 732f 4c49  .org/licenses/LI\n+000001f0: 4345 4e53 452d 322e 300a 0a20 2055 6e6c  CENSE-2.0..  Unl\n+00000200: 6573 7320 7265 7175 6972 6564 2062 7920  ess required by \n+00000210: 6170 706c 6963 6162 6c65 206c 6177 206f  applicable law o\n+00000220: 7220 6167 7265 6564 2074 6f20 696e 2077  r agreed to in w\n+00000230: 7269 7469 6e67 2c20 736f 6674 7761 7265  riting, software\n+00000240: 0a20 2064 6973 7472 6962 7574 6564 2075  .  distributed u\n+00000250: 6e64 6572 2074 6865 204c 6963 656e 7365  nder the License\n+00000260: 2069 7320 6469 7374 7269 6275 7465 6420   is distributed \n+00000270: 6f6e 2061 6e20 2241 5320 4953 2220 4241  on an \"AS IS\" BA\n+00000280: 5349 532c 0a20 2057 4954 484f 5554 2057  SIS,.  WITHOUT W\n+00000290: 4152 5241 4e54 4945 5320 4f52 2043 4f4e  ARRANTIES OR CON\n+000002a0: 4449 5449 4f4e 5320 4f46 2041 4e59 204b  DITIONS OF ANY K\n+000002b0: 494e 442c 2065 6974 6865 7220 6578 7072  IND, either expr\n+000002c0: 6573 7320 6f72 2069 6d70 6c69 6564 2e0a  ess or implied..\n+000002d0: 2020 5365 6520 7468 6520 4c69 6365 6e73    See the Licens\n+000002e0: 6520 666f 7220 7468 6520 7370 6563 6966  e for the specif\n+000002f0: 6963 206c 616e 6775 6167 6520 676f 7665  ic language gove\n+00000300: 726e 696e 6720 7065 726d 6973 7369 6f6e  rning permission\n+00000310: 7320 616e 640a 2020 6c69 6d69 7461 7469  s and.  limitati\n+00000320: 6f6e 7320 756e 6465 7220 7468 6520 4c69  ons under the Li\n+00000330: 6365 6e73 652e 0a20 202d 2d3e 0a3c 7072  cense..  -->.<pr\n+00000340: 6f6a 6563 7420 7873 693a 7363 6865 6d61  oject xsi:schema\n+00000350: 4c6f 6361 7469 6f6e 3d22 6874 7470 3a2f  Location=\"http:/\n+00000360: 2f6d 6176 656e 2e61 7061 6368 652e 6f72  /maven.apache.or\n+00000370: 672f 504f 4d2f 342e 302e 3020 6874 7470  g/POM/4.0.0 http\n+00000380: 733a 2f2f 6d61 7665 6e2e 6170 6163 6865  s://maven.apache\n+00000390: 2e6f 7267 2f78 7364 2f6d 6176 656e 2d34  .org/xsd/maven-4\n+000003a0: 2e30 2e30 2e78 7364 2220 786d 6c6e 733d  .0.0.xsd\" xmlns=\n+000003b0: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+000003c0: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+000003d0: 2e30 220a 2020 2020 786d 6c6e 733a 7873  .0\".    xmlns:xs\n+000003e0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n+000003f0: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n+00000400: 656d 612d 696e 7374 616e 6365 223e 0a20  ema-instance\">. \n+00000410: 203c 6d6f 6465 6c56 6572 7369 6f6e 3e34   <modelVersion>4\n+00000420: 2e30 2e30 3c2f 6d6f 6465 6c56 6572 7369  .0.0</modelVersi\n+00000430: 6f6e 3e0a 2020 3c70 6172 656e 743e 0a20  on>.  <parent>. \n+00000440: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+00000450: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+00000460: 6f75 7049 643e 0a20 2020 203c 6172 7469  oupId>.    <arti\n+00000470: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n+00000480: 6961 6c69 7a61 7469 6f6e 3c2f 6172 7469  ialization</arti\n+00000490: 6661 6374 4964 3e0a 2020 2020 3c76 6572  factId>.    <ver\n+000004a0: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+000004b0: 7369 6f6e 3e0a 2020 3c2f 7061 7265 6e74  sion>.  </parent\n+000004c0: 3e0a 2020 3c67 726f 7570 4964 3e6f 7267  >.  <groupId>org\n+000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n+000004e0: 726f 7570 4964 3e0a 2020 3c61 7274 6966  roupId>.  <artif\n+000004f0: 6163 7449 643e 6475 6262 6f2d 7365 7269  actId>dubbo-seri\n+00000500: 616c 697a 6174 696f 6e2d 6673 743c 2f61  alization-fst</a\n+00000510: 7274 6966 6163 7449 643e 0a20 203c 7665  rtifactId>.  <ve\n+00000520: 7273 696f 6e3e 322e 372e 3130 3c2f 7665  rsion>2.7.10</ve\n+00000530: 7273 696f 6e3e 0a20 203c 6e61 6d65 3e24  rsion>.  <name>$\n+00000540: 7b70 726f 6a65 6374 2e61 7274 6966 6163  {project.artifac\n+00000550: 7449 647d 3c2f 6e61 6d65 3e0a 2020 3c64  tId}</name>.  <d\n+00000560: 6573 6372 6970 7469 6f6e 3e54 6865 2066  escription>The f\n+00000570: 7374 2073 6572 6961 6c69 7a61 7469 6f6e  st serialization\n+00000580: 206d 6f64 756c 6520 6f66 2064 7562 626f   module of dubbo\n+00000590: 2070 726f 6a65 6374 3c2f 6465 7363 7269   project</descri\n+000005a0: 7074 696f 6e3e 0a20 203c 6c69 6365 6e73  ption>.  <licens\n+000005b0: 6573 3e0a 2020 2020 3c6c 6963 656e 7365  es>.    <license\n+000005c0: 3e0a 2020 2020 2020 3c6e 616d 653e 4170  >.      <name>Ap\n+000005d0: 6163 6865 204c 6963 656e 7365 2c20 5665  ache License, Ve\n+000005e0: 7273 696f 6e20 322e 303c 2f6e 616d 653e  rsion 2.0</name>\n+000005f0: 0a20 2020 2020 203c 7572 6c3e 6874 7470  .      <url>http\n+00000600: 3a2f 2f77 7777 2e61 7061 6368 652e 6f72  ://www.apache.or\n+00000610: 672f 6c69 6365 6e73 6573 2f4c 4943 454e  g/licenses/LICEN\n+00000620: 5345 2d32 2e30 3c2f 7572 6c3e 0a20 2020  SE-2.0</url>.   \n+00000630: 2020 203c 6469 7374 7269 6275 7469 6f6e     <distribution\n+00000640: 3e72 6570 6f3c 2f64 6973 7472 6962 7574  >repo</distribut\n+00000650: 696f 6e3e 0a20 2020 203c 2f6c 6963 656e  ion>.    </licen\n+00000660: 7365 3e0a 2020 3c2f 6c69 6365 6e73 6573  se>.  </licenses\n+00000670: 3e0a 2020 3c70 726f 7065 7274 6965 733e  >.  <properties>\n+00000680: 0a20 2020 203c 736b 6970 5f6d 6176 656e  .    <skip_maven\n+00000690: 5f64 6570 6c6f 793e 6661 6c73 653c 2f73  _deploy>false</s\n+000006a0: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+000006b0: 3e0a 2020 3c2f 7072 6f70 6572 7469 6573  >.  </properties\n+000006c0: 3e0a 2020 3c64 6570 656e 6465 6e63 6965  >.  <dependencie\n+000006d0: 733e 0a20 2020 203c 6465 7065 6e64 656e  s>.    <dependen\n+000006e0: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+000006f0: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000700: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000710: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n+00000720: 6475 6262 6f2d 7365 7269 616c 697a 6174  dubbo-serializat\n+00000730: 696f 6e2d 6170 693c 2f61 7274 6966 6163  ion-api</artifac\n+00000740: 7449 643e 0a20 2020 2020 203c 7665 7273  tId>.      <vers\n+00000750: 696f 6e3e 247b 7072 6f6a 6563 742e 7061  ion>${project.pa\n+00000760: 7265 6e74 2e76 6572 7369 6f6e 7d3c 2f76  rent.version}</v\n+00000770: 6572 7369 6f6e 3e0a 2020 2020 3c2f 6465  ersion>.    </de\n+00000780: 7065 6e64 656e 6379 3e0a 2020 2020 3c64  pendency>.    <d\n+00000790: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+000007a0: 203c 6772 6f75 7049 643e 6465 2e72 7565   <groupId>de.rue\n+000007b0: 6469 6765 726d 6f65 6c6c 6572 3c2f 6772  digermoeller</gr\n+000007c0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007d0: 7469 6661 6374 4964 3e66 7374 3c2f 6172  tifactId>fst</ar\n+000007e0: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+000007f0: 6465 7065 6e64 656e 6379 3e0a 2020 3c2f  dependency>.  </\n+00000800: 6465 7065 6e64 656e 6369 6573 3e0a 3c2f  dependencies>.</\n+00000810: 7072 6f6a 6563 743e 0a                   project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-gson/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,133 +1,130 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 2020 636f 6e74 7269 6275 746f 7220  ..  contributor \n-00000080: 6c69 6365 6e73 6520 6167 7265 656d 656e  license agreemen\n-00000090: 7473 2e20 2053 6565 2074 6865 204e 4f54  ts.  See the NOT\n-000000a0: 4943 4520 6669 6c65 2064 6973 7472 6962  ICE file distrib\n-000000b0: 7574 6564 2077 6974 680d 0a20 2074 6869  uted with..  thi\n-000000c0: 7320 776f 726b 2066 6f72 2061 6464 6974  s work for addit\n-000000d0: 696f 6e61 6c20 696e 666f 726d 6174 696f  ional informatio\n-000000e0: 6e20 7265 6761 7264 696e 6720 636f 7079  n regarding copy\n-000000f0: 7269 6768 7420 6f77 6e65 7273 6869 702e  right ownership.\n-00000100: 0d0a 2020 5468 6520 4153 4620 6c69 6365  ..  The ASF lice\n-00000110: 6e73 6573 2074 6869 7320 6669 6c65 2074  nses this file t\n-00000120: 6f20 596f 7520 756e 6465 7220 7468 6520  o You under the \n-00000130: 4170 6163 6865 204c 6963 656e 7365 2c20  Apache License, \n-00000140: 5665 7273 696f 6e20 322e 300d 0a20 2028  Version 2.0..  (\n-00000150: 7468 6520 224c 6963 656e 7365 2229 3b20  the \"License\"); \n-00000160: 796f 7520 6d61 7920 6e6f 7420 7573 6520  you may not use \n-00000170: 7468 6973 2066 696c 6520 6578 6365 7074  this file except\n-00000180: 2069 6e20 636f 6d70 6c69 616e 6365 2077   in compliance w\n-00000190: 6974 680d 0a20 2074 6865 204c 6963 656e  ith..  the Licen\n-000001a0: 7365 2e20 2059 6f75 206d 6179 206f 6274  se.  You may obt\n-000001b0: 6169 6e20 6120 636f 7079 206f 6620 7468  ain a copy of th\n-000001c0: 6520 4c69 6365 6e73 6520 6174 0d0a 0d0a  e License at....\n-000001d0: 2020 2020 2020 6874 7470 3a2f 2f77 7777        http://www\n-000001e0: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n-000001f0: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n-00000200: 0d0a 0d0a 2020 556e 6c65 7373 2072 6571  ....  Unless req\n-00000210: 7569 7265 6420 6279 2061 7070 6c69 6361  uired by applica\n-00000220: 626c 6520 6c61 7720 6f72 2061 6772 6565  ble law or agree\n-00000230: 6420 746f 2069 6e20 7772 6974 696e 672c  d to in writing,\n-00000240: 2073 6f66 7477 6172 650d 0a20 2064 6973   software..  dis\n-00000250: 7472 6962 7574 6564 2075 6e64 6572 2074  tributed under t\n-00000260: 6865 204c 6963 656e 7365 2069 7320 6469  he License is di\n-00000270: 7374 7269 6275 7465 6420 6f6e 2061 6e20  stributed on an \n-00000280: 2241 5320 4953 2220 4241 5349 532c 0d0a  \"AS IS\" BASIS,..\n-00000290: 2020 5749 5448 4f55 5420 5741 5252 414e    WITHOUT WARRAN\n-000002a0: 5449 4553 204f 5220 434f 4e44 4954 494f  TIES OR CONDITIO\n-000002b0: 4e53 204f 4620 414e 5920 4b49 4e44 2c20  NS OF ANY KIND, \n-000002c0: 6569 7468 6572 2065 7870 7265 7373 206f  either express o\n-000002d0: 7220 696d 706c 6965 642e 0d0a 2020 5365  r implied...  Se\n-000002e0: 6520 7468 6520 4c69 6365 6e73 6520 666f  e the License fo\n-000002f0: 7220 7468 6520 7370 6563 6966 6963 206c  r the specific l\n-00000300: 616e 6775 6167 6520 676f 7665 726e 696e  anguage governin\n-00000310: 6720 7065 726d 6973 7369 6f6e 7320 616e  g permissions an\n-00000320: 640d 0a20 206c 696d 6974 6174 696f 6e73  d..  limitations\n-00000330: 2075 6e64 6572 2074 6865 204c 6963 656e   under the Licen\n-00000340: 7365 2e0d 0a20 202d 2d3e 0d0a 3c70 726f  se...  -->..<pro\n-00000350: 6a65 6374 2078 7369 3a73 6368 656d 614c  ject xsi:schemaL\n-00000360: 6f63 6174 696f 6e3d 2268 7474 703a 2f2f  ocation=\"http://\n-00000370: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-00000380: 2f50 4f4d 2f34 2e30 2e30 2068 7474 7073  /POM/4.0.0 https\n-00000390: 3a2f 2f6d 6176 656e 2e61 7061 6368 652e  ://maven.apache.\n-000003a0: 6f72 672f 7873 642f 6d61 7665 6e2d 342e  org/xsd/maven-4.\n-000003b0: 302e 302e 7873 6422 2078 6d6c 6e73 3d22  0.0.xsd\" xmlns=\"\n-000003c0: 6874 7470 3a2f 2f6d 6176 656e 2e61 7061  http://maven.apa\n-000003d0: 6368 652e 6f72 672f 504f 4d2f 342e 302e  che.org/POM/4.0.\n-000003e0: 3022 0d0a 2020 2020 786d 6c6e 733a 7873  0\"..    xmlns:xs\n-000003f0: 693d 2268 7474 703a 2f2f 7777 772e 7733  i=\"http://www.w3\n-00000400: 2e6f 7267 2f32 3030 312f 584d 4c53 6368  .org/2001/XMLSch\n-00000410: 656d 612d 696e 7374 616e 6365 223e 0d0a  ema-instance\">..\n-00000420: 2020 3c6d 6f64 656c 5665 7273 696f 6e3e    <modelVersion>\n-00000430: 342e 302e 303c 2f6d 6f64 656c 5665 7273  4.0.0</modelVers\n-00000440: 696f 6e3e 0d0a 2020 3c70 6172 656e 743e  ion>..  <parent>\n-00000450: 0d0a 2020 2020 3c67 726f 7570 4964 3e6f  ..    <groupId>o\n-00000460: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n-00000470: 2f67 726f 7570 4964 3e0d 0a20 2020 203c  /groupId>..    <\n-00000480: 6172 7469 6661 6374 4964 3e64 7562 626f  artifactId>dubbo\n-00000490: 2d73 6572 6961 6c69 7a61 7469 6f6e 3c2f  -serialization</\n-000004a0: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-000004b0: 203c 7665 7273 696f 6e3e 322e 372e 3130   <version>2.7.10\n-000004c0: 3c2f 7665 7273 696f 6e3e 0d0a 2020 3c2f  </version>..  </\n-000004d0: 7061 7265 6e74 3e0d 0a20 203c 6772 6f75  parent>..  <grou\n-000004e0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-000004f0: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-00000500: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n-00000510: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n-00000520: 6e2d 6773 6f6e 3c2f 6172 7469 6661 6374  n-gson</artifact\n-00000530: 4964 3e0d 0a20 203c 7665 7273 696f 6e3e  Id>..  <version>\n-00000540: 322e 372e 3130 3c2f 7665 7273 696f 6e3e  2.7.10</version>\n-00000550: 0d0a 2020 3c6e 616d 653e 247b 7072 6f6a  ..  <name>${proj\n-00000560: 6563 742e 6172 7469 6661 6374 4964 7d3c  ect.artifactId}<\n-00000570: 2f6e 616d 653e 0d0a 2020 3c64 6573 6372  /name>..  <descr\n-00000580: 6970 7469 6f6e 3e54 6865 2047 534f 4e20  iption>The GSON \n-00000590: 7365 7269 616c 697a 6174 696f 6e20 696d  serialization im\n-000005a0: 706c 656d 656e 7420 666f 7220 6475 6262  plement for dubb\n-000005b0: 6f3c 2f64 6573 6372 6970 7469 6f6e 3e0d  o</description>.\n-000005c0: 0a20 203c 6c69 6365 6e73 6573 3e0d 0a20  .  <licenses>.. \n-000005d0: 2020 203c 6c69 6365 6e73 653e 0d0a 2020     <license>..  \n-000005e0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n-000005f0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000600: 6e20 322e 303c 2f6e 616d 653e 0d0a 2020  n 2.0</name>..  \n-00000610: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n-00000620: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n-00000630: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n-00000640: 322e 303c 2f75 726c 3e0d 0a20 2020 2020  2.0</url>..     \n-00000650: 203c 6469 7374 7269 6275 7469 6f6e 3e72   <distribution>r\n-00000660: 6570 6f3c 2f64 6973 7472 6962 7574 696f  epo</distributio\n-00000670: 6e3e 0d0a 2020 2020 3c2f 6c69 6365 6e73  n>..    </licens\n-00000680: 653e 0d0a 2020 3c2f 6c69 6365 6e73 6573  e>..  </licenses\n-00000690: 3e0d 0a20 203c 7072 6f70 6572 7469 6573  >..  <properties\n-000006a0: 3e0d 0a20 2020 203c 736b 6970 5f6d 6176  >..    <skip_mav\n-000006b0: 656e 5f64 6570 6c6f 793e 6661 6c73 653c  en_deploy>false<\n-000006c0: 2f73 6b69 705f 6d61 7665 6e5f 6465 706c  /skip_maven_depl\n-000006d0: 6f79 3e0d 0a20 203c 2f70 726f 7065 7274  oy>..  </propert\n-000006e0: 6965 733e 0d0a 2020 3c64 6570 656e 6465  ies>..  <depende\n-000006f0: 6e63 6965 733e 0d0a 2020 2020 3c64 6570  ncies>..    <dep\n-00000700: 656e 6465 6e63 793e 0d0a 2020 2020 2020  endency>..      \n-00000710: 3c67 726f 7570 4964 3e6f 7267 2e61 7061  <groupId>org.apa\n-00000720: 6368 652e 6475 6262 6f3c 2f67 726f 7570  che.dubbo</group\n-00000730: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000740: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000750: 6961 6c69 7a61 7469 6f6e 2d61 7069 3c2f  ialization-api</\n-00000760: 6172 7469 6661 6374 4964 3e0d 0a20 2020  artifactId>..   \n-00000770: 2020 203c 7665 7273 696f 6e3e 247b 7072     <version>${pr\n-00000780: 6f6a 6563 742e 7061 7265 6e74 2e76 6572  oject.parent.ver\n-00000790: 7369 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d  sion}</version>.\n-000007a0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000007b0: 793e 0d0a 2020 2020 3c64 6570 656e 6465  y>..    <depende\n-000007c0: 6e63 793e 0d0a 2020 2020 2020 3c67 726f  ncy>..      <gro\n-000007d0: 7570 4964 3e63 6f6d 2e67 6f6f 676c 652e  upId>com.google.\n-000007e0: 636f 6465 2e67 736f 6e3c 2f67 726f 7570  code.gson</group\n-000007f0: 4964 3e0d 0a20 2020 2020 203c 6172 7469  Id>..      <arti\n-00000800: 6661 6374 4964 3e67 736f 6e3c 2f61 7274  factId>gson</art\n-00000810: 6966 6163 7449 643e 0d0a 2020 2020 3c2f  ifactId>..    </\n-00000820: 6465 7065 6e64 656e 6379 3e0d 0a20 203c  dependency>..  <\n-00000830: 2f64 6570 656e 6465 6e63 6965 733e 0d0a  /dependencies>..\n-00000840: 3c2f 7072 6f6a 6563 743e 0d0a            </project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a20  er one or more. \n+00000070: 2063 6f6e 7472 6962 7574 6f72 206c 6963   contributor lic\n+00000080: 656e 7365 2061 6772 6565 6d65 6e74 732e  ense agreements.\n+00000090: 2020 5365 6520 7468 6520 4e4f 5449 4345    See the NOTICE\n+000000a0: 2066 696c 6520 6469 7374 7269 6275 7465   file distribute\n+000000b0: 6420 7769 7468 0a20 2074 6869 7320 776f  d with.  this wo\n+000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n+000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n+000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n+000000f0: 7420 6f77 6e65 7273 6869 702e 0a20 2054  t ownership..  T\n+00000100: 6865 2041 5346 206c 6963 656e 7365 7320  he ASF licenses \n+00000110: 7468 6973 2066 696c 6520 746f 2059 6f75  this file to You\n+00000120: 2075 6e64 6572 2074 6865 2041 7061 6368   under the Apach\n+00000130: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+00000140: 6f6e 2032 2e30 0a20 2028 7468 6520 224c  on 2.0.  (the \"L\n+00000150: 6963 656e 7365 2229 3b20 796f 7520 6d61  icense\"); you ma\n+00000160: 7920 6e6f 7420 7573 6520 7468 6973 2066  y not use this f\n+00000170: 696c 6520 6578 6365 7074 2069 6e20 636f  ile except in co\n+00000180: 6d70 6c69 616e 6365 2077 6974 680a 2020  mpliance with.  \n+00000190: 7468 6520 4c69 6365 6e73 652e 2020 596f  the License.  Yo\n+000001a0: 7520 6d61 7920 6f62 7461 696e 2061 2063  u may obtain a c\n+000001b0: 6f70 7920 6f66 2074 6865 204c 6963 656e  opy of the Licen\n+000001c0: 7365 2061 740a 0a20 2020 2020 2068 7474  se at..      htt\n+000001d0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+000001e0: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+000001f0: 4e53 452d 322e 300a 0a20 2055 6e6c 6573  NSE-2.0..  Unles\n+00000200: 7320 7265 7175 6972 6564 2062 7920 6170  s required by ap\n+00000210: 706c 6963 6162 6c65 206c 6177 206f 7220  plicable law or \n+00000220: 6167 7265 6564 2074 6f20 696e 2077 7269  agreed to in wri\n+00000230: 7469 6e67 2c20 736f 6674 7761 7265 0a20  ting, software. \n+00000240: 2064 6973 7472 6962 7574 6564 2075 6e64   distributed und\n+00000250: 6572 2074 6865 204c 6963 656e 7365 2069  er the License i\n+00000260: 7320 6469 7374 7269 6275 7465 6420 6f6e  s distributed on\n+00000270: 2061 6e20 2241 5320 4953 2220 4241 5349   an \"AS IS\" BASI\n+00000280: 532c 0a20 2057 4954 484f 5554 2057 4152  S,.  WITHOUT WAR\n+00000290: 5241 4e54 4945 5320 4f52 2043 4f4e 4449  RANTIES OR CONDI\n+000002a0: 5449 4f4e 5320 4f46 2041 4e59 204b 494e  TIONS OF ANY KIN\n+000002b0: 442c 2065 6974 6865 7220 6578 7072 6573  D, either expres\n+000002c0: 7320 6f72 2069 6d70 6c69 6564 2e0a 2020  s or implied..  \n+000002d0: 5365 6520 7468 6520 4c69 6365 6e73 6520  See the License \n+000002e0: 666f 7220 7468 6520 7370 6563 6966 6963  for the specific\n+000002f0: 206c 616e 6775 6167 6520 676f 7665 726e   language govern\n+00000300: 696e 6720 7065 726d 6973 7369 6f6e 7320  ing permissions \n+00000310: 616e 640a 2020 6c69 6d69 7461 7469 6f6e  and.  limitation\n+00000320: 7320 756e 6465 7220 7468 6520 4c69 6365  s under the Lice\n+00000330: 6e73 652e 0a20 202d 2d3e 0a3c 7072 6f6a  nse..  -->.<proj\n+00000340: 6563 7420 7873 693a 7363 6865 6d61 4c6f  ect xsi:schemaLo\n+00000350: 6361 7469 6f6e 3d22 6874 7470 3a2f 2f6d  cation=\"http://m\n+00000360: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+00000370: 504f 4d2f 342e 302e 3020 6874 7470 733a  POM/4.0.0 https:\n+00000380: 2f2f 6d61 7665 6e2e 6170 6163 6865 2e6f  //maven.apache.o\n+00000390: 7267 2f78 7364 2f6d 6176 656e 2d34 2e30  rg/xsd/maven-4.0\n+000003a0: 2e30 2e78 7364 2220 786d 6c6e 733d 2268  .0.xsd\" xmlns=\"h\n+000003b0: 7474 703a 2f2f 6d61 7665 6e2e 6170 6163  ttp://maven.apac\n+000003c0: 6865 2e6f 7267 2f50 4f4d 2f34 2e30 2e30  he.org/POM/4.0.0\n+000003d0: 220a 2020 2020 786d 6c6e 733a 7873 693d  \".    xmlns:xsi=\n+000003e0: 2268 7474 703a 2f2f 7777 772e 7733 2e6f  \"http://www.w3.o\n+000003f0: 7267 2f32 3030 312f 584d 4c53 6368 656d  rg/2001/XMLSchem\n+00000400: 612d 696e 7374 616e 6365 223e 0a20 203c  a-instance\">.  <\n+00000410: 6d6f 6465 6c56 6572 7369 6f6e 3e34 2e30  modelVersion>4.0\n+00000420: 2e30 3c2f 6d6f 6465 6c56 6572 7369 6f6e  .0</modelVersion\n+00000430: 3e0a 2020 3c70 6172 656e 743e 0a20 2020  >.  <parent>.   \n+00000440: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+00000450: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000460: 7049 643e 0a20 2020 203c 6172 7469 6661  pId>.    <artifa\n+00000470: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n+00000480: 6c69 7a61 7469 6f6e 3c2f 6172 7469 6661  lization</artifa\n+00000490: 6374 4964 3e0a 2020 2020 3c76 6572 7369  ctId>.    <versi\n+000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n+000004b0: 6f6e 3e0a 2020 3c2f 7061 7265 6e74 3e0a  on>.  </parent>.\n+000004c0: 2020 3c67 726f 7570 4964 3e6f 7267 2e61    <groupId>org.a\n+000004d0: 7061 6368 652e 6475 6262 6f3c 2f67 726f  pache.dubbo</gro\n+000004e0: 7570 4964 3e0a 2020 3c61 7274 6966 6163  upId>.  <artifac\n+000004f0: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n+00000500: 697a 6174 696f 6e2d 6773 6f6e 3c2f 6172  ization-gson</ar\n+00000510: 7469 6661 6374 4964 3e0a 2020 3c76 6572  tifactId>.  <ver\n+00000520: 7369 6f6e 3e32 2e37 2e31 303c 2f76 6572  sion>2.7.10</ver\n+00000530: 7369 6f6e 3e0a 2020 3c6e 616d 653e 247b  sion>.  <name>${\n+00000540: 7072 6f6a 6563 742e 6172 7469 6661 6374  project.artifact\n+00000550: 4964 7d3c 2f6e 616d 653e 0a20 203c 6465  Id}</name>.  <de\n+00000560: 7363 7269 7074 696f 6e3e 5468 6520 4753  scription>The GS\n+00000570: 4f4e 2073 6572 6961 6c69 7a61 7469 6f6e  ON serialization\n+00000580: 2069 6d70 6c65 6d65 6e74 2066 6f72 2064   implement for d\n+00000590: 7562 626f 3c2f 6465 7363 7269 7074 696f  ubbo</descriptio\n+000005a0: 6e3e 0a20 203c 6c69 6365 6e73 6573 3e0a  n>.  <licenses>.\n+000005b0: 2020 2020 3c6c 6963 656e 7365 3e0a 2020      <license>.  \n+000005c0: 2020 2020 3c6e 616d 653e 4170 6163 6865      <name>Apache\n+000005d0: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n+000005e0: 6e20 322e 303c 2f6e 616d 653e 0a20 2020  n 2.0</name>.   \n+000005f0: 2020 203c 7572 6c3e 6874 7470 3a2f 2f77     <url>http://w\n+00000600: 7777 2e61 7061 6368 652e 6f72 672f 6c69  ww.apache.org/li\n+00000610: 6365 6e73 6573 2f4c 4943 454e 5345 2d32  censes/LICENSE-2\n+00000620: 2e30 3c2f 7572 6c3e 0a20 2020 2020 203c  .0</url>.      <\n+00000630: 6469 7374 7269 6275 7469 6f6e 3e72 6570  distribution>rep\n+00000640: 6f3c 2f64 6973 7472 6962 7574 696f 6e3e  o</distribution>\n+00000650: 0a20 2020 203c 2f6c 6963 656e 7365 3e0a  .    </license>.\n+00000660: 2020 3c2f 6c69 6365 6e73 6573 3e0a 2020    </licenses>.  \n+00000670: 3c70 726f 7065 7274 6965 733e 0a20 2020  <properties>.   \n+00000680: 203c 736b 6970 5f6d 6176 656e 5f64 6570   <skip_maven_dep\n+00000690: 6c6f 793e 6661 6c73 653c 2f73 6b69 705f  loy>false</skip_\n+000006a0: 6d61 7665 6e5f 6465 706c 6f79 3e0a 2020  maven_deploy>.  \n+000006b0: 3c2f 7072 6f70 6572 7469 6573 3e0a 2020  </properties>.  \n+000006c0: 3c64 6570 656e 6465 6e63 6965 733e 0a20  <dependencies>. \n+000006d0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000006e0: 2020 2020 2020 3c67 726f 7570 4964 3e6f        <groupId>o\n+000006f0: 7267 2e61 7061 6368 652e 6475 6262 6f3c  rg.apache.dubbo<\n+00000700: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000710: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n+00000720: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n+00000730: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n+00000740: 0a20 2020 2020 203c 7665 7273 696f 6e3e  .      <version>\n+00000750: 247b 7072 6f6a 6563 742e 7061 7265 6e74  ${project.parent\n+00000760: 2e76 6572 7369 6f6e 7d3c 2f76 6572 7369  .version}</versi\n+00000770: 6f6e 3e0a 2020 2020 3c2f 6465 7065 6e64  on>.    </depend\n+00000780: 656e 6379 3e0a 2020 2020 3c64 6570 656e  ency>.    <depen\n+00000790: 6465 6e63 793e 0a20 2020 2020 203c 6772  dency>.      <gr\n+000007a0: 6f75 7049 643e 636f 6d2e 676f 6f67 6c65  oupId>com.google\n+000007b0: 2e63 6f64 652e 6773 6f6e 3c2f 6772 6f75  .code.gson</grou\n+000007c0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+000007d0: 6661 6374 4964 3e67 736f 6e3c 2f61 7274  factId>gson</art\n+000007e0: 6966 6163 7449 643e 0a20 2020 203c 2f64  ifactId>.    </d\n+000007f0: 6570 656e 6465 6e63 793e 0a20 203c 2f64  ependency>.  </d\n+00000800: 6570 656e 6465 6e63 6965 733e 0a3c 2f70  ependencies>.</p\n+00000810: 726f 6a65 6374 3e0a                      roject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-hessian2/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,132 +1,129 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d68 6573 7369  ialization-hessi\n-00000510: 616e 323c 2f61 7274 6966 6163 7449 643e  an2</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 6865 7373 6961 6e32  ion>The hessian2\n-00000580: 2073 6572 6961 6c69 7a61 7469 6f6e 206d   serialization m\n-00000590: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n-000005a0: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n-000005b0: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-000005c0: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-000005d0: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-000005e0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-000005f0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-00000600: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-00000610: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-00000620: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-00000630: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000660: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000670: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000680: 656e 7365 733e 0d0a 2020 3c70 726f 7065  enses>..  <prope\n-00000690: 7274 6965 733e 0d0a 2020 2020 3c73 6b69  rties>..    <ski\n-000006a0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n-000006b0: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n-000006c0: 5f64 6570 6c6f 793e 0d0a 2020 3c2f 7072  _deploy>..  </pr\n-000006d0: 6f70 6572 7469 6573 3e0d 0a20 203c 6465  operties>..  <de\n-000006e0: 7065 6e64 656e 6369 6573 3e0d 0a20 2020  pendencies>..   \n-000006f0: 203c 6465 7065 6e64 656e 6379 3e0d 0a20   <dependency>.. \n-00000700: 2020 2020 203c 6772 6f75 7049 643e 6f72       <groupId>or\n-00000710: 672e 6170 6163 6865 2e64 7562 626f 3c2f  g.apache.dubbo</\n-00000720: 6772 6f75 7049 643e 0d0a 2020 2020 2020  groupId>..      \n-00000730: 3c61 7274 6966 6163 7449 643e 6475 6262  <artifactId>dubb\n-00000740: 6f2d 7365 7269 616c 697a 6174 696f 6e2d  o-serialization-\n-00000750: 6170 693c 2f61 7274 6966 6163 7449 643e  api</artifactId>\n-00000760: 0d0a 2020 2020 2020 3c76 6572 7369 6f6e  ..      <version\n-00000770: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n-00000780: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n-00000790: 696f 6e3e 0d0a 2020 2020 3c2f 6465 7065  ion>..    </depe\n-000007a0: 6e64 656e 6379 3e0d 0a20 2020 203c 6465  ndency>..    <de\n-000007b0: 7065 6e64 656e 6379 3e0d 0a20 2020 2020  pendency>..     \n-000007c0: 203c 6772 6f75 7049 643e 636f 6d2e 616c   <groupId>com.al\n-000007d0: 6962 6162 613c 2f67 726f 7570 4964 3e0d  ibaba</groupId>.\n-000007e0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n-000007f0: 4964 3e68 6573 7369 616e 2d6c 6974 653c  Id>hessian-lite<\n-00000800: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000810: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-00000820: 0a20 203c 2f64 6570 656e 6465 6e63 6965  .  </dependencie\n-00000830: 733e 0d0a 3c2f 7072 6f6a 6563 743e 0d0a  s>..</project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d68 6573 7369 616e 323c 2f61 7274 6966  -hessian2</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2068 6573 7369  iption>The hessi\n+00000560: 616e 3220 7365 7269 616c 697a 6174 696f  an2 serializatio\n+00000570: 6e20 6d6f 6475 6c65 206f 6620 6475 6262  n module of dubb\n+00000580: 6f20 7072 6f6a 6563 743c 2f64 6573 6372  o project</descr\n+00000590: 6970 7469 6f6e 3e0a 2020 3c6c 6963 656e  iption>.  <licen\n+000005a0: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+000005b0: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+000005c0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+000005d0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+000005e0: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+000005f0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+00000600: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+00000610: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+00000620: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+00000630: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+00000640: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+00000650: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000660: 733e 0a20 203c 7072 6f70 6572 7469 6573  s>.  <properties\n+00000670: 3e0a 2020 2020 3c73 6b69 705f 6d61 7665  >.    <skip_mave\n+00000680: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n+00000690: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+000006a0: 793e 0a20 203c 2f70 726f 7065 7274 6965  y>.  </propertie\n+000006b0: 733e 0a20 203c 6465 7065 6e64 656e 6369  s>.  <dependenci\n+000006c0: 6573 3e0a 2020 2020 3c64 6570 656e 6465  es>.    <depende\n+000006d0: 6e63 793e 0a20 2020 2020 203c 6772 6f75  ncy>.      <grou\n+000006e0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000006f0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+00000700: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n+00000710: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n+00000720: 7469 6f6e 2d61 7069 3c2f 6172 7469 6661  tion-api</artifa\n+00000730: 6374 4964 3e0a 2020 2020 2020 3c76 6572  ctId>.      <ver\n+00000740: 7369 6f6e 3e24 7b70 726f 6a65 6374 2e70  sion>${project.p\n+00000750: 6172 656e 742e 7665 7273 696f 6e7d 3c2f  arent.version}</\n+00000760: 7665 7273 696f 6e3e 0a20 2020 203c 2f64  version>.    </d\n+00000770: 6570 656e 6465 6e63 793e 0a20 2020 203c  ependency>.    <\n+00000780: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000790: 2020 3c67 726f 7570 4964 3e63 6f6d 2e61    <groupId>com.a\n+000007a0: 6c69 6261 6261 3c2f 6772 6f75 7049 643e  libaba</groupId>\n+000007b0: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+000007c0: 4964 3e68 6573 7369 616e 2d6c 6974 653c  Id>hessian-lite<\n+000007d0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+000007e0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+000007f0: 203c 2f64 6570 656e 6465 6e63 6965 733e   </dependencies>\n+00000800: 0a3c 2f70 726f 6a65 6374 3e0a            .</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-jdk/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,132 +1,129 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d6a 646b 3c2f  ialization-jdk</\n-00000510: 6172 7469 6661 6374 4964 3e0d 0a20 203c  artifactId>..  <\n-00000520: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n-00000530: 7665 7273 696f 6e3e 0d0a 2020 3c6e 616d  version>..  <nam\n-00000540: 653e 247b 7072 6f6a 6563 742e 6172 7469  e>${project.arti\n-00000550: 6661 6374 4964 7d3c 2f6e 616d 653e 0d0a  factId}</name>..\n-00000560: 2020 3c64 6573 6372 6970 7469 6f6e 3e54    <description>T\n-00000570: 6865 206a 646b 2073 6572 6961 6c69 7a61  he jdk serializa\n-00000580: 7469 6f6e 206d 6f64 756c 6520 6f66 2064  tion module of d\n-00000590: 7562 626f 2070 726f 6a65 6374 3c2f 6465  ubbo project</de\n-000005a0: 7363 7269 7074 696f 6e3e 0d0a 2020 3c6c  scription>..  <l\n-000005b0: 6963 656e 7365 733e 0d0a 2020 2020 3c6c  icenses>..    <l\n-000005c0: 6963 656e 7365 3e0d 0a20 2020 2020 203c  icense>..      <\n-000005d0: 6e61 6d65 3e41 7061 6368 6520 4c69 6365  name>Apache Lice\n-000005e0: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n-000005f0: 3c2f 6e61 6d65 3e0d 0a20 2020 2020 203c  </name>..      <\n-00000600: 7572 6c3e 6874 7470 3a2f 2f77 7777 2e61  url>http://www.a\n-00000610: 7061 6368 652e 6f72 672f 6c69 6365 6e73  pache.org/licens\n-00000620: 6573 2f4c 4943 454e 5345 2d32 2e30 3c2f  es/LICENSE-2.0</\n-00000630: 7572 6c3e 0d0a 2020 2020 2020 3c64 6973  url>..      <dis\n-00000640: 7472 6962 7574 696f 6e3e 7265 706f 3c2f  tribution>repo</\n-00000650: 6469 7374 7269 6275 7469 6f6e 3e0d 0a20  distribution>.. \n-00000660: 2020 203c 2f6c 6963 656e 7365 3e0d 0a20     </license>.. \n-00000670: 203c 2f6c 6963 656e 7365 733e 0d0a 2020   </licenses>..  \n-00000680: 3c70 726f 7065 7274 6965 733e 0d0a 2020  <properties>..  \n-00000690: 2020 3c73 6b69 705f 6d61 7665 6e5f 6465    <skip_maven_de\n-000006a0: 706c 6f79 3e66 616c 7365 3c2f 736b 6970  ploy>false</skip\n-000006b0: 5f6d 6176 656e 5f64 6570 6c6f 793e 0d0a  _maven_deploy>..\n-000006c0: 2020 3c2f 7072 6f70 6572 7469 6573 3e0d    </properties>.\n-000006d0: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n-000006e0: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-000006f0: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000700: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-00000710: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-00000720: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000730: 643e 6475 6262 6f2d 7365 7269 616c 697a  d>dubbo-serializ\n-00000740: 6174 696f 6e2d 6170 693c 2f61 7274 6966  ation-api</artif\n-00000750: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-00000760: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-00000770: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-00000780: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-00000790: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-000007a0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-000007b0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-000007c0: 636f 6d2e 616c 6962 6162 613c 2f67 726f  com.alibaba</gro\n-000007d0: 7570 4964 3e0d 0a20 2020 2020 203c 6172  upId>..      <ar\n-000007e0: 7469 6661 6374 4964 3e68 6573 7369 616e  tifactId>hessian\n-000007f0: 2d6c 6974 653c 2f61 7274 6966 6163 7449  -lite</artifactI\n-00000800: 643e 0d0a 2020 2020 3c2f 6465 7065 6e64  d>..    </depend\n-00000810: 656e 6379 3e0d 0a20 203c 2f64 6570 656e  ency>..  </depen\n-00000820: 6465 6e63 6965 733e 0d0a 3c2f 7072 6f6a  dencies>..</proj\n-00000830: 6563 743e 0d0a                           ect>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d6a 646b 3c2f 6172 7469 6661 6374 4964  -jdk</artifactId\n+00000500: 3e0a 2020 3c76 6572 7369 6f6e 3e32 2e37  >.  <version>2.7\n+00000510: 2e31 303c 2f76 6572 7369 6f6e 3e0a 2020  .10</version>.  \n+00000520: 3c6e 616d 653e 247b 7072 6f6a 6563 742e  <name>${project.\n+00000530: 6172 7469 6661 6374 4964 7d3c 2f6e 616d  artifactId}</nam\n+00000540: 653e 0a20 203c 6465 7363 7269 7074 696f  e>.  <descriptio\n+00000550: 6e3e 5468 6520 6a64 6b20 7365 7269 616c  n>The jdk serial\n+00000560: 697a 6174 696f 6e20 6d6f 6475 6c65 206f  ization module o\n+00000570: 6620 6475 6262 6f20 7072 6f6a 6563 743c  f dubbo project<\n+00000580: 2f64 6573 6372 6970 7469 6f6e 3e0a 2020  /description>.  \n+00000590: 3c6c 6963 656e 7365 733e 0a20 2020 203c  <licenses>.    <\n+000005a0: 6c69 6365 6e73 653e 0a20 2020 2020 203c  license>.      <\n+000005b0: 6e61 6d65 3e41 7061 6368 6520 4c69 6365  name>Apache Lice\n+000005c0: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+000005d0: 3c2f 6e61 6d65 3e0a 2020 2020 2020 3c75  </name>.      <u\n+000005e0: 726c 3e68 7474 703a 2f2f 7777 772e 6170  rl>http://www.ap\n+000005f0: 6163 6865 2e6f 7267 2f6c 6963 656e 7365  ache.org/license\n+00000600: 732f 4c49 4345 4e53 452d 322e 303c 2f75  s/LICENSE-2.0</u\n+00000610: 726c 3e0a 2020 2020 2020 3c64 6973 7472  rl>.      <distr\n+00000620: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n+00000630: 7374 7269 6275 7469 6f6e 3e0a 2020 2020  stribution>.    \n+00000640: 3c2f 6c69 6365 6e73 653e 0a20 203c 2f6c  </license>.  </l\n+00000650: 6963 656e 7365 733e 0a20 203c 7072 6f70  icenses>.  <prop\n+00000660: 6572 7469 6573 3e0a 2020 2020 3c73 6b69  erties>.    <ski\n+00000670: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n+00000680: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n+00000690: 5f64 6570 6c6f 793e 0a20 203c 2f70 726f  _deploy>.  </pro\n+000006a0: 7065 7274 6965 733e 0a20 203c 6465 7065  perties>.  <depe\n+000006b0: 6e64 656e 6369 6573 3e0a 2020 2020 3c64  ndencies>.    <d\n+000006c0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+000006d0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000006e0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+000006f0: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000700: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n+00000710: 6961 6c69 7a61 7469 6f6e 2d61 7069 3c2f  ialization-api</\n+00000720: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000730: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000740: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000750: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000760: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000770: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000780: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+00000790: 3e63 6f6d 2e61 6c69 6261 6261 3c2f 6772  >com.alibaba</gr\n+000007a0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+000007b0: 7469 6661 6374 4964 3e68 6573 7369 616e  tifactId>hessian\n+000007c0: 2d6c 6974 653c 2f61 7274 6966 6163 7449  -lite</artifactI\n+000007d0: 643e 0a20 2020 203c 2f64 6570 656e 6465  d>.    </depende\n+000007e0: 6e63 793e 0a20 203c 2f64 6570 656e 6465  ncy>.  </depende\n+000007f0: 6e63 6965 733e 0a3c 2f70 726f 6a65 6374  ncies>.</project\n+00000800: 3e0a                                     >.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-kryo/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,140 +1,136 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d6b 7279 6f3c  ialization-kryo<\n-00000510: 2f61 7274 6966 6163 7449 643e 0d0a 2020  /artifactId>..  \n-00000520: 3c76 6572 7369 6f6e 3e32 2e37 2e31 303c  <version>2.7.10<\n-00000530: 2f76 6572 7369 6f6e 3e0d 0a20 203c 6e61  /version>..  <na\n-00000540: 6d65 3e24 7b70 726f 6a65 6374 2e61 7274  me>${project.art\n-00000550: 6966 6163 7449 647d 3c2f 6e61 6d65 3e0d  ifactId}</name>.\n-00000560: 0a20 203c 6465 7363 7269 7074 696f 6e3e  .  <description>\n-00000570: 5468 6520 6b72 796f 2073 6572 6961 6c69  The kryo seriali\n-00000580: 7a61 7469 6f6e 206d 6f64 756c 6520 6f66  zation module of\n-00000590: 2064 7562 626f 2070 726f 6a65 6374 3c2f   dubbo project</\n-000005a0: 6465 7363 7269 7074 696f 6e3e 0d0a 2020  description>..  \n-000005b0: 3c6c 6963 656e 7365 733e 0d0a 2020 2020  <licenses>..    \n-000005c0: 3c6c 6963 656e 7365 3e0d 0a20 2020 2020  <license>..     \n-000005d0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n-000005e0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n-000005f0: 2e30 3c2f 6e61 6d65 3e0d 0a20 2020 2020  .0</name>..     \n-00000600: 203c 7572 6c3e 6874 7470 3a2f 2f77 7777   <url>http://www\n-00000610: 2e61 7061 6368 652e 6f72 672f 6c69 6365  .apache.org/lice\n-00000620: 6e73 6573 2f4c 4943 454e 5345 2d32 2e30  nses/LICENSE-2.0\n-00000630: 3c2f 7572 6c3e 0d0a 2020 2020 2020 3c64  </url>..      <d\n-00000640: 6973 7472 6962 7574 696f 6e3e 7265 706f  istribution>repo\n-00000650: 3c2f 6469 7374 7269 6275 7469 6f6e 3e0d  </distribution>.\n-00000660: 0a20 2020 203c 2f6c 6963 656e 7365 3e0d  .    </license>.\n-00000670: 0a20 203c 2f6c 6963 656e 7365 733e 0d0a  .  </licenses>..\n-00000680: 2020 3c70 726f 7065 7274 6965 733e 0d0a    <properties>..\n-00000690: 2020 2020 3c73 6b69 705f 6d61 7665 6e5f      <skip_maven_\n-000006a0: 6465 706c 6f79 3e66 616c 7365 3c2f 736b  deploy>false</sk\n-000006b0: 6970 5f6d 6176 656e 5f64 6570 6c6f 793e  ip_maven_deploy>\n-000006c0: 0d0a 2020 3c2f 7072 6f70 6572 7469 6573  ..  </properties\n-000006d0: 3e0d 0a20 203c 6465 7065 6e64 656e 6369  >..  <dependenci\n-000006e0: 6573 3e0d 0a20 2020 203c 6465 7065 6e64  es>..    <depend\n-000006f0: 656e 6379 3e0d 0a20 2020 2020 203c 6772  ency>..      <gr\n-00000700: 6f75 7049 643e 6f72 672e 6170 6163 6865  oupId>org.apache\n-00000710: 2e64 7562 626f 3c2f 6772 6f75 7049 643e  .dubbo</groupId>\n-00000720: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-00000730: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000740: 697a 6174 696f 6e2d 6170 693c 2f61 7274  ization-api</art\n-00000750: 6966 6163 7449 643e 0d0a 2020 2020 2020  ifactId>..      \n-00000760: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n-00000770: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n-00000780: 6e7d 3c2f 7665 7273 696f 6e3e 0d0a 2020  n}</version>..  \n-00000790: 2020 3c2f 6465 7065 6e64 656e 6379 3e0d    </dependency>.\n-000007a0: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n-000007b0: 3e0d 0a20 2020 2020 203c 6772 6f75 7049  >..      <groupI\n-000007c0: 643e 636f 6d2e 6573 6f74 6572 6963 736f  d>com.esotericso\n-000007d0: 6674 7761 7265 3c2f 6772 6f75 7049 643e  ftware</groupId>\n-000007e0: 0d0a 2020 2020 2020 3c61 7274 6966 6163  ..      <artifac\n-000007f0: 7449 643e 6b72 796f 3c2f 6172 7469 6661  tId>kryo</artifa\n-00000800: 6374 4964 3e0d 0a20 2020 203c 2f64 6570  ctId>..    </dep\n-00000810: 656e 6465 6e63 793e 0d0a 2020 2020 3c64  endency>..    <d\n-00000820: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000830: 2020 3c67 726f 7570 4964 3e64 652e 6a61    <groupId>de.ja\n-00000840: 7661 6b61 6666 6565 3c2f 6772 6f75 7049  vakaffee</groupI\n-00000850: 643e 0d0a 2020 2020 2020 3c61 7274 6966  d>..      <artif\n-00000860: 6163 7449 643e 6b72 796f 2d73 6572 6961  actId>kryo-seria\n-00000870: 6c69 7a65 7273 3c2f 6172 7469 6661 6374  lizers</artifact\n-00000880: 4964 3e0d 0a20 2020 203c 2f64 6570 656e  Id>..    </depen\n-00000890: 6465 6e63 793e 0d0a 2020 3c2f 6465 7065  dency>..  </depe\n-000008a0: 6e64 656e 6369 6573 3e0d 0a3c 2f70 726f  ndencies>..</pro\n-000008b0: 6a65 6374 3e0d 0a                        ject>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d6b 7279 6f3c 2f61 7274 6966 6163 7449  -kryo</artifactI\n+00000500: 643e 0a20 203c 7665 7273 696f 6e3e 322e  d>.  <version>2.\n+00000510: 372e 3130 3c2f 7665 7273 696f 6e3e 0a20  7.10</version>. \n+00000520: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n+00000530: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n+00000540: 6d65 3e0a 2020 3c64 6573 6372 6970 7469  me>.  <descripti\n+00000550: 6f6e 3e54 6865 206b 7279 6f20 7365 7269  on>The kryo seri\n+00000560: 616c 697a 6174 696f 6e20 6d6f 6475 6c65  alization module\n+00000570: 206f 6620 6475 6262 6f20 7072 6f6a 6563   of dubbo projec\n+00000580: 743c 2f64 6573 6372 6970 7469 6f6e 3e0a  t</description>.\n+00000590: 2020 3c6c 6963 656e 7365 733e 0a20 2020    <licenses>.   \n+000005a0: 203c 6c69 6365 6e73 653e 0a20 2020 2020   <license>.     \n+000005b0: 203c 6e61 6d65 3e41 7061 6368 6520 4c69   <name>Apache Li\n+000005c0: 6365 6e73 652c 2056 6572 7369 6f6e 2032  cense, Version 2\n+000005d0: 2e30 3c2f 6e61 6d65 3e0a 2020 2020 2020  .0</name>.      \n+000005e0: 3c75 726c 3e68 7474 703a 2f2f 7777 772e  <url>http://www.\n+000005f0: 6170 6163 6865 2e6f 7267 2f6c 6963 656e  apache.org/licen\n+00000600: 7365 732f 4c49 4345 4e53 452d 322e 303c  ses/LICENSE-2.0<\n+00000610: 2f75 726c 3e0a 2020 2020 2020 3c64 6973  /url>.      <dis\n+00000620: 7472 6962 7574 696f 6e3e 7265 706f 3c2f  tribution>repo</\n+00000630: 6469 7374 7269 6275 7469 6f6e 3e0a 2020  distribution>.  \n+00000640: 2020 3c2f 6c69 6365 6e73 653e 0a20 203c    </license>.  <\n+00000650: 2f6c 6963 656e 7365 733e 0a20 203c 7072  /licenses>.  <pr\n+00000660: 6f70 6572 7469 6573 3e0a 2020 2020 3c73  operties>.    <s\n+00000670: 6b69 705f 6d61 7665 6e5f 6465 706c 6f79  kip_maven_deploy\n+00000680: 3e66 616c 7365 3c2f 736b 6970 5f6d 6176  >false</skip_mav\n+00000690: 656e 5f64 6570 6c6f 793e 0a20 203c 2f70  en_deploy>.  </p\n+000006a0: 726f 7065 7274 6965 733e 0a20 203c 6465  roperties>.  <de\n+000006b0: 7065 6e64 656e 6369 6573 3e0a 2020 2020  pendencies>.    \n+000006c0: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+000006d0: 2020 203c 6772 6f75 7049 643e 6f72 672e     <groupId>org.\n+000006e0: 6170 6163 6865 2e64 7562 626f 3c2f 6772  apache.dubbo</gr\n+000006f0: 6f75 7049 643e 0a20 2020 2020 203c 6172  oupId>.      <ar\n+00000700: 7469 6661 6374 4964 3e64 7562 626f 2d73  tifactId>dubbo-s\n+00000710: 6572 6961 6c69 7a61 7469 6f6e 2d61 7069  erialization-api\n+00000720: 3c2f 6172 7469 6661 6374 4964 3e0a 2020  </artifactId>.  \n+00000730: 2020 2020 3c76 6572 7369 6f6e 3e24 7b70      <version>${p\n+00000740: 726f 6a65 6374 2e70 6172 656e 742e 7665  roject.parent.ve\n+00000750: 7273 696f 6e7d 3c2f 7665 7273 696f 6e3e  rsion}</version>\n+00000760: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n+00000770: 793e 0a20 2020 203c 6465 7065 6e64 656e  y>.    <dependen\n+00000780: 6379 3e0a 2020 2020 2020 3c67 726f 7570  cy>.      <group\n+00000790: 4964 3e63 6f6d 2e65 736f 7465 7269 6373  Id>com.esoterics\n+000007a0: 6f66 7477 6172 653c 2f67 726f 7570 4964  oftware</groupId\n+000007b0: 3e0a 2020 2020 2020 3c61 7274 6966 6163  >.      <artifac\n+000007c0: 7449 643e 6b72 796f 3c2f 6172 7469 6661  tId>kryo</artifa\n+000007d0: 6374 4964 3e0a 2020 2020 3c2f 6465 7065  ctId>.    </depe\n+000007e0: 6e64 656e 6379 3e0a 2020 2020 3c64 6570  ndency>.    <dep\n+000007f0: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000800: 6772 6f75 7049 643e 6465 2e6a 6176 616b  groupId>de.javak\n+00000810: 6166 6665 653c 2f67 726f 7570 4964 3e0a  affee</groupId>.\n+00000820: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n+00000830: 643e 6b72 796f 2d73 6572 6961 6c69 7a65  d>kryo-serialize\n+00000840: 7273 3c2f 6172 7469 6661 6374 4964 3e0a  rs</artifactId>.\n+00000850: 2020 2020 3c2f 6465 7065 6e64 656e 6379      </dependency\n+00000860: 3e0a 2020 3c2f 6465 7065 6e64 656e 6369  >.  </dependenci\n+00000870: 6573 3e0a 3c2f 7072 6f6a 6563 743e 0a    es>.</project>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-native-hession/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,128 +1,125 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d6e 6174 6976  ialization-nativ\n-00000510: 652d 6865 7373 696f 6e3c 2f61 7274 6966  e-hession</artif\n-00000520: 6163 7449 643e 0d0a 2020 3c76 6572 7369  actId>..  <versi\n-00000530: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-00000540: 6f6e 3e0d 0a20 203c 6e61 6d65 3e24 7b70  on>..  <name>${p\n-00000550: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n-00000560: 647d 3c2f 6e61 6d65 3e0d 0a20 203c 6465  d}</name>..  <de\n-00000570: 7363 7269 7074 696f 6e3e 5468 6520 6e61  scription>The na\n-00000580: 7469 7665 2d68 6573 7369 6f6e 2073 6572  tive-hession ser\n-00000590: 6961 6c69 7a61 7469 6f6e 206d 6f64 756c  ialization modul\n-000005a0: 6520 6f66 2064 7562 626f 2070 726f 6a65  e of dubbo proje\n-000005b0: 6374 3c2f 6465 7363 7269 7074 696f 6e3e  ct</description>\n-000005c0: 0d0a 2020 3c6c 6963 656e 7365 733e 0d0a  ..  <licenses>..\n-000005d0: 2020 2020 3c6c 6963 656e 7365 3e0d 0a20      <license>.. \n-000005e0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n-000005f0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n-00000600: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0d 0a20  on 2.0</name>.. \n-00000610: 2020 2020 203c 7572 6c3e 6874 7470 3a2f       <url>http:/\n-00000620: 2f77 7777 2e61 7061 6368 652e 6f72 672f  /www.apache.org/\n-00000630: 6c69 6365 6e73 6573 2f4c 4943 454e 5345  licenses/LICENSE\n-00000640: 2d32 2e30 3c2f 7572 6c3e 0d0a 2020 2020  -2.0</url>..    \n-00000650: 2020 3c64 6973 7472 6962 7574 696f 6e3e    <distribution>\n-00000660: 7265 706f 3c2f 6469 7374 7269 6275 7469  repo</distributi\n-00000670: 6f6e 3e0d 0a20 2020 203c 2f6c 6963 656e  on>..    </licen\n-00000680: 7365 3e0d 0a20 203c 2f6c 6963 656e 7365  se>..  </license\n-00000690: 733e 0d0a 2020 3c64 6570 656e 6465 6e63  s>..  <dependenc\n-000006a0: 6965 733e 0d0a 2020 2020 3c64 6570 656e  ies>..    <depen\n-000006b0: 6465 6e63 793e 0d0a 2020 2020 2020 3c67  dency>..      <g\n-000006c0: 726f 7570 4964 3e6f 7267 2e61 7061 6368  roupId>org.apach\n-000006d0: 652e 6475 6262 6f3c 2f67 726f 7570 4964  e.dubbo</groupId\n-000006e0: 3e0d 0a20 2020 2020 203c 6172 7469 6661  >..      <artifa\n-000006f0: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n-00000700: 6c69 7a61 7469 6f6e 2d61 7069 3c2f 6172  lization-api</ar\n-00000710: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000720: 203c 7665 7273 696f 6e3e 247b 7072 6f6a   <version>${proj\n-00000730: 6563 742e 7061 7265 6e74 2e76 6572 7369  ect.parent.versi\n-00000740: 6f6e 7d3c 2f76 6572 7369 6f6e 3e0d 0a20  on}</version>.. \n-00000750: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n-00000760: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000770: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000780: 4964 3e63 6f6d 2e63 6175 6368 6f3c 2f67  Id>com.caucho</g\n-00000790: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000007a0: 6172 7469 6661 6374 4964 3e68 6573 7369  artifactId>hessi\n-000007b0: 616e 3c2f 6172 7469 6661 6374 4964 3e0d  an</artifactId>.\n-000007c0: 0a20 2020 203c 2f64 6570 656e 6465 6e63  .    </dependenc\n-000007d0: 793e 0d0a 2020 3c2f 6465 7065 6e64 656e  y>..  </dependen\n-000007e0: 6369 6573 3e0d 0a3c 2f70 726f 6a65 6374  cies>..</project\n-000007f0: 3e0d 0a                                  >..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d6e 6174 6976 652d 6865 7373 696f 6e3c  -native-hession<\n+00000500: 2f61 7274 6966 6163 7449 643e 0a20 203c  /artifactId>.  <\n+00000510: 7665 7273 696f 6e3e 322e 372e 3130 3c2f  version>2.7.10</\n+00000520: 7665 7273 696f 6e3e 0a20 203c 6e61 6d65  version>.  <name\n+00000530: 3e24 7b70 726f 6a65 6374 2e61 7274 6966  >${project.artif\n+00000540: 6163 7449 647d 3c2f 6e61 6d65 3e0a 2020  actId}</name>.  \n+00000550: 3c64 6573 6372 6970 7469 6f6e 3e54 6865  <description>The\n+00000560: 206e 6174 6976 652d 6865 7373 696f 6e20   native-hession \n+00000570: 7365 7269 616c 697a 6174 696f 6e20 6d6f  serialization mo\n+00000580: 6475 6c65 206f 6620 6475 6262 6f20 7072  dule of dubbo pr\n+00000590: 6f6a 6563 743c 2f64 6573 6372 6970 7469  oject</descripti\n+000005a0: 6f6e 3e0a 2020 3c6c 6963 656e 7365 733e  on>.  <licenses>\n+000005b0: 0a20 2020 203c 6c69 6365 6e73 653e 0a20  .    <license>. \n+000005c0: 2020 2020 203c 6e61 6d65 3e41 7061 6368       <name>Apach\n+000005d0: 6520 4c69 6365 6e73 652c 2056 6572 7369  e License, Versi\n+000005e0: 6f6e 2032 2e30 3c2f 6e61 6d65 3e0a 2020  on 2.0</name>.  \n+000005f0: 2020 2020 3c75 726c 3e68 7474 703a 2f2f      <url>http://\n+00000600: 7777 772e 6170 6163 6865 2e6f 7267 2f6c  www.apache.org/l\n+00000610: 6963 656e 7365 732f 4c49 4345 4e53 452d  icenses/LICENSE-\n+00000620: 322e 303c 2f75 726c 3e0a 2020 2020 2020  2.0</url>.      \n+00000630: 3c64 6973 7472 6962 7574 696f 6e3e 7265  <distribution>re\n+00000640: 706f 3c2f 6469 7374 7269 6275 7469 6f6e  po</distribution\n+00000650: 3e0a 2020 2020 3c2f 6c69 6365 6e73 653e  >.    </license>\n+00000660: 0a20 203c 2f6c 6963 656e 7365 733e 0a20  .  </licenses>. \n+00000670: 203c 6465 7065 6e64 656e 6369 6573 3e0a   <dependencies>.\n+00000680: 2020 2020 3c64 6570 656e 6465 6e63 793e      <dependency>\n+00000690: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n+000006a0: 6f72 672e 6170 6163 6865 2e64 7562 626f  org.apache.dubbo\n+000006b0: 3c2f 6772 6f75 7049 643e 0a20 2020 2020  </groupId>.     \n+000006c0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000006d0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000006e0: 2d61 7069 3c2f 6172 7469 6661 6374 4964  -api</artifactId\n+000006f0: 3e0a 2020 2020 2020 3c76 6572 7369 6f6e  >.      <version\n+00000700: 3e24 7b70 726f 6a65 6374 2e70 6172 656e  >${project.paren\n+00000710: 742e 7665 7273 696f 6e7d 3c2f 7665 7273  t.version}</vers\n+00000720: 696f 6e3e 0a20 2020 203c 2f64 6570 656e  ion>.    </depen\n+00000730: 6465 6e63 793e 0a20 2020 203c 6465 7065  dency>.    <depe\n+00000740: 6e64 656e 6379 3e0a 2020 2020 2020 3c67  ndency>.      <g\n+00000750: 726f 7570 4964 3e63 6f6d 2e63 6175 6368  roupId>com.cauch\n+00000760: 6f3c 2f67 726f 7570 4964 3e0a 2020 2020  o</groupId>.    \n+00000770: 2020 3c61 7274 6966 6163 7449 643e 6865    <artifactId>he\n+00000780: 7373 6961 6e3c 2f61 7274 6966 6163 7449  ssian</artifactI\n+00000790: 643e 0a20 2020 203c 2f64 6570 656e 6465  d>.    </depende\n+000007a0: 6e63 793e 0a20 203c 2f64 6570 656e 6465  ncy>.  </depende\n+000007b0: 6e63 6965 733e 0a3c 2f70 726f 6a65 6374  ncies>.</project\n+000007c0: 3e0a                                     >.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protobuf/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,241 +1,235 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d70 726f 746f  ialization-proto\n-00000510: 6275 663c 2f61 7274 6966 6163 7449 643e  buf</artifactId>\n-00000520: 0d0a 2020 3c76 6572 7369 6f6e 3e32 2e37  ..  <version>2.7\n-00000530: 2e31 303c 2f76 6572 7369 6f6e 3e0d 0a20  .10</version>.. \n-00000540: 203c 6e61 6d65 3e24 7b70 726f 6a65 6374   <name>${project\n-00000550: 2e61 7274 6966 6163 7449 647d 3c2f 6e61  .artifactId}</na\n-00000560: 6d65 3e0d 0a20 203c 6465 7363 7269 7074  me>..  <descript\n-00000570: 696f 6e3e 5468 6520 7072 6f74 6f62 7566  ion>The protobuf\n-00000580: 2073 6572 6961 6c69 7a61 7469 6f6e 206d   serialization m\n-00000590: 6f64 756c 6520 6f66 2064 7562 626f 2070  odule of dubbo p\n-000005a0: 726f 6a65 6374 3c2f 6465 7363 7269 7074  roject</descript\n-000005b0: 696f 6e3e 0d0a 2020 3c6c 6963 656e 7365  ion>..  <license\n-000005c0: 733e 0d0a 2020 2020 3c6c 6963 656e 7365  s>..    <license\n-000005d0: 3e0d 0a20 2020 2020 203c 6e61 6d65 3e41  >..      <name>A\n-000005e0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n-000005f0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n-00000600: 3e0d 0a20 2020 2020 203c 7572 6c3e 6874  >..      <url>ht\n-00000610: 7470 3a2f 2f77 7777 2e61 7061 6368 652e  tp://www.apache.\n-00000620: 6f72 672f 6c69 6365 6e73 6573 2f4c 4943  org/licenses/LIC\n-00000630: 454e 5345 2d32 2e30 3c2f 7572 6c3e 0d0a  ENSE-2.0</url>..\n-00000640: 2020 2020 2020 3c64 6973 7472 6962 7574        <distribut\n-00000650: 696f 6e3e 7265 706f 3c2f 6469 7374 7269  ion>repo</distri\n-00000660: 6275 7469 6f6e 3e0d 0a20 2020 203c 2f6c  bution>..    </l\n-00000670: 6963 656e 7365 3e0d 0a20 203c 2f6c 6963  icense>..  </lic\n-00000680: 656e 7365 733e 0d0a 2020 3c70 726f 7065  enses>..  <prope\n-00000690: 7274 6965 733e 0d0a 2020 2020 3c73 6b69  rties>..    <ski\n-000006a0: 705f 6d61 7665 6e5f 6465 706c 6f79 3e66  p_maven_deploy>f\n-000006b0: 616c 7365 3c2f 736b 6970 5f6d 6176 656e  alse</skip_maven\n-000006c0: 5f64 6570 6c6f 793e 0d0a 2020 2020 3c64  _deploy>..    <d\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d70 726f 746f 6275 663c 2f61 7274 6966  -protobuf</artif\n+00000500: 6163 7449 643e 0a20 203c 7665 7273 696f  actId>.  <versio\n+00000510: 6e3e 322e 372e 3130 3c2f 7665 7273 696f  n>2.7.10</versio\n+00000520: 6e3e 0a20 203c 6e61 6d65 3e24 7b70 726f  n>.  <name>${pro\n+00000530: 6a65 6374 2e61 7274 6966 6163 7449 647d  ject.artifactId}\n+00000540: 3c2f 6e61 6d65 3e0a 2020 3c64 6573 6372  </name>.  <descr\n+00000550: 6970 7469 6f6e 3e54 6865 2070 726f 746f  iption>The proto\n+00000560: 6275 6620 7365 7269 616c 697a 6174 696f  buf serializatio\n+00000570: 6e20 6d6f 6475 6c65 206f 6620 6475 6262  n module of dubb\n+00000580: 6f20 7072 6f6a 6563 743c 2f64 6573 6372  o project</descr\n+00000590: 6970 7469 6f6e 3e0a 2020 3c6c 6963 656e  iption>.  <licen\n+000005a0: 7365 733e 0a20 2020 203c 6c69 6365 6e73  ses>.    <licens\n+000005b0: 653e 0a20 2020 2020 203c 6e61 6d65 3e41  e>.      <name>A\n+000005c0: 7061 6368 6520 4c69 6365 6e73 652c 2056  pache License, V\n+000005d0: 6572 7369 6f6e 2032 2e30 3c2f 6e61 6d65  ersion 2.0</name\n+000005e0: 3e0a 2020 2020 2020 3c75 726c 3e68 7474  >.      <url>htt\n+000005f0: 703a 2f2f 7777 772e 6170 6163 6865 2e6f  p://www.apache.o\n+00000600: 7267 2f6c 6963 656e 7365 732f 4c49 4345  rg/licenses/LICE\n+00000610: 4e53 452d 322e 303c 2f75 726c 3e0a 2020  NSE-2.0</url>.  \n+00000620: 2020 2020 3c64 6973 7472 6962 7574 696f      <distributio\n+00000630: 6e3e 7265 706f 3c2f 6469 7374 7269 6275  n>repo</distribu\n+00000640: 7469 6f6e 3e0a 2020 2020 3c2f 6c69 6365  tion>.    </lice\n+00000650: 6e73 653e 0a20 203c 2f6c 6963 656e 7365  nse>.  </license\n+00000660: 733e 0a20 203c 7072 6f70 6572 7469 6573  s>.  <properties\n+00000670: 3e0a 2020 2020 3c73 6b69 705f 6d61 7665  >.    <skip_mave\n+00000680: 6e5f 6465 706c 6f79 3e66 616c 7365 3c2f  n_deploy>false</\n+00000690: 736b 6970 5f6d 6176 656e 5f64 6570 6c6f  skip_maven_deplo\n+000006a0: 793e 0a20 2020 203c 6475 6262 6f2e 636f  y>.    <dubbo.co\n+000006b0: 6d70 696c 6572 2e76 6572 7369 6f6e 3e30  mpiler.version>0\n+000006c0: 2e30 2e31 2d53 4e41 5053 484f 543c 2f64  .0.1-SNAPSHOT</d\n 000006d0: 7562 626f 2e63 6f6d 7069 6c65 722e 7665  ubbo.compiler.ve\n-000006e0: 7273 696f 6e3e 302e 302e 312d 534e 4150  rsion>0.0.1-SNAP\n-000006f0: 5348 4f54 3c2f 6475 6262 6f2e 636f 6d70  SHOT</dubbo.comp\n-00000700: 696c 6572 2e76 6572 7369 6f6e 3e0d 0a20  iler.version>.. \n-00000710: 203c 2f70 726f 7065 7274 6965 733e 0d0a   </properties>..\n-00000720: 2020 3c64 6570 656e 6465 6e63 6965 733e    <dependencies>\n-00000730: 0d0a 2020 2020 3c64 6570 656e 6465 6e63  ..    <dependenc\n-00000740: 793e 0d0a 2020 2020 2020 3c67 726f 7570  y>..      <group\n-00000750: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n-00000760: 6262 6f3c 2f67 726f 7570 4964 3e0d 0a20  bbo</groupId>.. \n-00000770: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-00000780: 3e64 7562 626f 2d73 6572 6961 6c69 7a61  >dubbo-serializa\n-00000790: 7469 6f6e 2d61 7069 3c2f 6172 7469 6661  tion-api</artifa\n-000007a0: 6374 4964 3e0d 0a20 2020 2020 203c 7665  ctId>..      <ve\n-000007b0: 7273 696f 6e3e 247b 7072 6f6a 6563 742e  rsion>${project.\n-000007c0: 7061 7265 6e74 2e76 6572 7369 6f6e 7d3c  parent.version}<\n-000007d0: 2f76 6572 7369 6f6e 3e0d 0a20 2020 203c  /version>..    <\n-000007e0: 2f64 6570 656e 6465 6e63 793e 0d0a 2020  /dependency>..  \n-000007f0: 2020 3c64 6570 656e 6465 6e63 793e 0d0a    <dependency>..\n-00000800: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n-00000810: 6f6d 2e67 6f6f 676c 652e 7072 6f74 6f62  om.google.protob\n-00000820: 7566 3c2f 6772 6f75 7049 643e 0d0a 2020  uf</groupId>..  \n-00000830: 2020 2020 3c61 7274 6966 6163 7449 643e      <artifactId>\n-00000840: 7072 6f74 6f62 7566 2d6a 6176 613c 2f61  protobuf-java</a\n-00000850: 7274 6966 6163 7449 643e 0d0a 2020 2020  rtifactId>..    \n-00000860: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-00000870: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-00000880: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-00000890: 636f 6d2e 676f 6f67 6c65 2e70 726f 746f  com.google.proto\n-000008a0: 6275 663c 2f67 726f 7570 4964 3e0d 0a20  buf</groupId>.. \n-000008b0: 2020 2020 203c 6172 7469 6661 6374 4964       <artifactId\n-000008c0: 3e70 726f 746f 6275 662d 6a61 7661 2d75  >protobuf-java-u\n-000008d0: 7469 6c3c 2f61 7274 6966 6163 7449 643e  til</artifactId>\n-000008e0: 0d0a 2020 2020 3c2f 6465 7065 6e64 656e  ..    </dependen\n-000008f0: 6379 3e0d 0a20 203c 2f64 6570 656e 6465  cy>..  </depende\n-00000900: 6e63 6965 733e 0d0a 2020 3c62 7569 6c64  ncies>..  <build\n-00000910: 3e0d 0a20 2020 203c 6578 7465 6e73 696f  >..    <extensio\n-00000920: 6e73 3e0d 0a20 2020 2020 203c 6578 7465  ns>..      <exte\n-00000930: 6e73 696f 6e3e 0d0a 2020 2020 2020 2020  nsion>..        \n-00000940: 3c67 726f 7570 4964 3e6b 722e 6d6f 7464  <groupId>kr.motd\n-00000950: 2e6d 6176 656e 3c2f 6772 6f75 7049 643e  .maven</groupId>\n-00000960: 0d0a 2020 2020 2020 2020 3c61 7274 6966  ..        <artif\n-00000970: 6163 7449 643e 6f73 2d6d 6176 656e 2d70  actId>os-maven-p\n-00000980: 6c75 6769 6e3c 2f61 7274 6966 6163 7449  lugin</artifactI\n-00000990: 643e 0d0a 2020 2020 2020 2020 3c76 6572  d>..        <ver\n-000009a0: 7369 6f6e 3e31 2e36 2e31 3c2f 7665 7273  sion>1.6.1</vers\n-000009b0: 696f 6e3e 0d0a 2020 2020 2020 3c2f 6578  ion>..      </ex\n-000009c0: 7465 6e73 696f 6e3e 0d0a 2020 2020 3c2f  tension>..    </\n-000009d0: 6578 7465 6e73 696f 6e73 3e0d 0a20 2020  extensions>..   \n-000009e0: 203c 706c 7567 696e 733e 0d0a 2020 2020   <plugins>..    \n-000009f0: 2020 3c70 6c75 6769 6e3e 0d0a 2020 2020    <plugin>..    \n-00000a00: 2020 2020 3c67 726f 7570 4964 3e6f 7267      <groupId>org\n-00000a10: 2e78 6f6c 7374 6963 652e 6d61 7665 6e2e  .xolstice.maven.\n-00000a20: 706c 7567 696e 733c 2f67 726f 7570 4964  plugins</groupId\n-00000a30: 3e0d 0a20 2020 2020 2020 203c 6172 7469  >..        <arti\n-00000a40: 6661 6374 4964 3e70 726f 746f 6275 662d  factId>protobuf-\n-00000a50: 6d61 7665 6e2d 706c 7567 696e 3c2f 6172  maven-plugin</ar\n-00000a60: 7469 6661 6374 4964 3e0d 0a20 2020 2020  tifactId>..     \n-00000a70: 2020 203c 7665 7273 696f 6e3e 302e 352e     <version>0.5.\n-00000a80: 313c 2f76 6572 7369 6f6e 3e0d 0a20 2020  1</version>..   \n-00000a90: 2020 2020 203c 6578 7465 6e73 696f 6e73       <extensions\n-00000aa0: 3e74 7275 653c 2f65 7874 656e 7369 6f6e  >true</extension\n-00000ab0: 733e 0d0a 2020 2020 2020 2020 3c65 7865  s>..        <exe\n-00000ac0: 6375 7469 6f6e 733e 0d0a 2020 2020 2020  cutions>..      \n-00000ad0: 2020 2020 3c65 7865 6375 7469 6f6e 3e0d      <execution>.\n-00000ae0: 0a20 2020 2020 2020 2020 2020 203c 676f  .            <go\n-00000af0: 616c 733e 0d0a 2020 2020 2020 2020 2020  als>..          \n-00000b00: 2020 2020 3c67 6f61 6c3e 636f 6d70 696c      <goal>compil\n-00000b10: 653c 2f67 6f61 6c3e 0d0a 2020 2020 2020  e</goal>..      \n-00000b20: 2020 2020 2020 2020 3c67 6f61 6c3e 7465          <goal>te\n-00000b30: 7374 2d63 6f6d 7069 6c65 3c2f 676f 616c  st-compile</goal\n-00000b40: 3e0d 0a20 2020 2020 2020 2020 2020 203c  >..            <\n-00000b50: 2f67 6f61 6c73 3e0d 0a20 2020 2020 2020  /goals>..       \n-00000b60: 2020 203c 2f65 7865 6375 7469 6f6e 3e0d     </execution>.\n-00000b70: 0a20 2020 2020 2020 203c 2f65 7865 6375  .        </execu\n-00000b80: 7469 6f6e 733e 0d0a 2020 2020 2020 2020  tions>..        \n-00000b90: 3c63 6f6e 6669 6775 7261 7469 6f6e 3e0d  <configuration>.\n-00000ba0: 0a20 2020 2020 2020 2020 203c 7072 6f74  .          <prot\n-00000bb0: 6f63 4172 7469 6661 6374 3e63 6f6d 2e67  ocArtifact>com.g\n-00000bc0: 6f6f 676c 652e 7072 6f74 6f62 7566 3a70  oogle.protobuf:p\n-00000bd0: 726f 746f 633a 332e 372e 313a 6578 653a  rotoc:3.7.1:exe:\n-00000be0: 247b 6f73 2e64 6574 6563 7465 642e 636c  ${os.detected.cl\n-00000bf0: 6173 7369 6669 6572 7d3c 2f70 726f 746f  assifier}</proto\n-00000c00: 6341 7274 6966 6163 743e 0d0a 2020 2020  cArtifact>..    \n-00000c10: 2020 2020 2020 3c6f 7574 7075 7444 6972        <outputDir\n-00000c20: 6563 746f 7279 3e62 7569 6c64 2f67 656e  ectory>build/gen\n-00000c30: 6572 6174 6564 2f73 6f75 7263 652f 7072  erated/source/pr\n-00000c40: 6f74 6f2f 6d61 696e 2f6a 6176 613c 2f6f  oto/main/java</o\n-00000c50: 7574 7075 7444 6972 6563 746f 7279 3e0d  utputDirectory>.\n-00000c60: 0a20 2020 2020 2020 2020 203c 636c 6561  .          <clea\n-00000c70: 724f 7574 7075 7444 6972 6563 746f 7279  rOutputDirectory\n-00000c80: 3e66 616c 7365 3c2f 636c 6561 724f 7574  >false</clearOut\n-00000c90: 7075 7444 6972 6563 746f 7279 3e0d 0a20  putDirectory>.. \n-00000ca0: 2020 2020 2020 203c 2f63 6f6e 6669 6775         </configu\n-00000cb0: 7261 7469 6f6e 3e0d 0a20 2020 2020 203c  ration>..      <\n-00000cc0: 2f70 6c75 6769 6e3e 0d0a 2020 2020 2020  /plugin>..      \n-00000cd0: 3c70 6c75 6769 6e3e 0d0a 2020 2020 2020  <plugin>..      \n-00000ce0: 2020 3c67 726f 7570 4964 3e6f 7267 2e63    <groupId>org.c\n-00000cf0: 6f64 6568 6175 732e 6d6f 6a6f 3c2f 6772  odehaus.mojo</gr\n-00000d00: 6f75 7049 643e 0d0a 2020 2020 2020 2020  oupId>..        \n-00000d10: 3c61 7274 6966 6163 7449 643e 6275 696c  <artifactId>buil\n-00000d20: 642d 6865 6c70 6572 2d6d 6176 656e 2d70  d-helper-maven-p\n-00000d30: 6c75 6769 6e3c 2f61 7274 6966 6163 7449  lugin</artifactI\n-00000d40: 643e 0d0a 2020 2020 2020 2020 3c65 7865  d>..        <exe\n-00000d50: 6375 7469 6f6e 733e 0d0a 2020 2020 2020  cutions>..      \n-00000d60: 2020 2020 3c65 7865 6375 7469 6f6e 3e0d      <execution>.\n-00000d70: 0a20 2020 2020 2020 2020 2020 203c 7068  .            <ph\n-00000d80: 6173 653e 6765 6e65 7261 7465 2d73 6f75  ase>generate-sou\n-00000d90: 7263 6573 3c2f 7068 6173 653e 0d0a 2020  rces</phase>..  \n-00000da0: 2020 2020 2020 2020 2020 3c67 6f61 6c73            <goals\n-00000db0: 3e0d 0a20 2020 2020 2020 2020 2020 2020  >..             \n-00000dc0: 203c 676f 616c 3e61 6464 2d73 6f75 7263   <goal>add-sourc\n-00000dd0: 653c 2f67 6f61 6c3e 0d0a 2020 2020 2020  e</goal>..      \n-00000de0: 2020 2020 2020 3c2f 676f 616c 733e 0d0a        </goals>..\n-00000df0: 2020 2020 2020 2020 2020 2020 3c63 6f6e              <con\n-00000e00: 6669 6775 7261 7469 6f6e 3e0d 0a20 2020  figuration>..   \n-00000e10: 2020 2020 2020 2020 2020 203c 736f 7572             <sour\n-00000e20: 6365 733e 0d0a 2020 2020 2020 2020 2020  ces>..          \n-00000e30: 2020 2020 2020 3c73 6f75 7263 653e 6275        <source>bu\n-00000e40: 696c 642f 6765 6e65 7261 7465 642f 736f  ild/generated/so\n-00000e50: 7572 6365 2f70 726f 746f 2f6d 6169 6e2f  urce/proto/main/\n-00000e60: 6a61 7661 3c2f 736f 7572 6365 3e0d 0a20  java</source>.. \n-00000e70: 2020 2020 2020 2020 2020 2020 203c 2f73               </s\n-00000e80: 6f75 7263 6573 3e0d 0a20 2020 2020 2020  ources>..       \n-00000e90: 2020 2020 203c 2f63 6f6e 6669 6775 7261       </configura\n-00000ea0: 7469 6f6e 3e0d 0a20 2020 2020 2020 2020  tion>..         \n-00000eb0: 203c 2f65 7865 6375 7469 6f6e 3e0d 0a20   </execution>.. \n-00000ec0: 2020 2020 2020 203c 2f65 7865 6375 7469         </executi\n-00000ed0: 6f6e 733e 0d0a 2020 2020 2020 3c2f 706c  ons>..      </pl\n-00000ee0: 7567 696e 3e0d 0a20 2020 203c 2f70 6c75  ugin>..    </plu\n-00000ef0: 6769 6e73 3e0d 0a20 203c 2f62 7569 6c64  gins>..  </build\n-00000f00: 3e0d 0a3c 2f70 726f 6a65 6374 3e0d 0a    >..</project>..\n+000006e0: 7273 696f 6e3e 0a20 203c 2f70 726f 7065  rsion>.  </prope\n+000006f0: 7274 6965 733e 0a20 203c 6465 7065 6e64  rties>.  <depend\n+00000700: 656e 6369 6573 3e0a 2020 2020 3c64 6570  encies>.    <dep\n+00000710: 656e 6465 6e63 793e 0a20 2020 2020 203c  endency>.      <\n+00000720: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n+00000730: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n+00000740: 643e 0a20 2020 2020 203c 6172 7469 6661  d>.      <artifa\n+00000750: 6374 4964 3e64 7562 626f 2d73 6572 6961  ctId>dubbo-seria\n+00000760: 6c69 7a61 7469 6f6e 2d61 7069 3c2f 6172  lization-api</ar\n+00000770: 7469 6661 6374 4964 3e0a 2020 2020 2020  tifactId>.      \n+00000780: 3c76 6572 7369 6f6e 3e24 7b70 726f 6a65  <version>${proje\n+00000790: 6374 2e70 6172 656e 742e 7665 7273 696f  ct.parent.versio\n+000007a0: 6e7d 3c2f 7665 7273 696f 6e3e 0a20 2020  n}</version>.   \n+000007b0: 203c 2f64 6570 656e 6465 6e63 793e 0a20   </dependency>. \n+000007c0: 2020 203c 6465 7065 6e64 656e 6379 3e0a     <dependency>.\n+000007d0: 2020 2020 2020 3c67 726f 7570 4964 3e63        <groupId>c\n+000007e0: 6f6d 2e67 6f6f 676c 652e 7072 6f74 6f62  om.google.protob\n+000007f0: 7566 3c2f 6772 6f75 7049 643e 0a20 2020  uf</groupId>.   \n+00000800: 2020 203c 6172 7469 6661 6374 4964 3e70     <artifactId>p\n+00000810: 726f 746f 6275 662d 6a61 7661 3c2f 6172  rotobuf-java</ar\n+00000820: 7469 6661 6374 4964 3e0a 2020 2020 3c2f  tifactId>.    </\n+00000830: 6465 7065 6e64 656e 6379 3e0a 2020 2020  dependency>.    \n+00000840: 3c64 6570 656e 6465 6e63 793e 0a20 2020  <dependency>.   \n+00000850: 2020 203c 6772 6f75 7049 643e 636f 6d2e     <groupId>com.\n+00000860: 676f 6f67 6c65 2e70 726f 746f 6275 663c  google.protobuf<\n+00000870: 2f67 726f 7570 4964 3e0a 2020 2020 2020  /groupId>.      \n+00000880: 3c61 7274 6966 6163 7449 643e 7072 6f74  <artifactId>prot\n+00000890: 6f62 7566 2d6a 6176 612d 7574 696c 3c2f  obuf-java-util</\n+000008a0: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+000008b0: 3c2f 6465 7065 6e64 656e 6379 3e0a 2020  </dependency>.  \n+000008c0: 3c2f 6465 7065 6e64 656e 6369 6573 3e0a  </dependencies>.\n+000008d0: 2020 3c62 7569 6c64 3e0a 2020 2020 3c65    <build>.    <e\n+000008e0: 7874 656e 7369 6f6e 733e 0a20 2020 2020  xtensions>.     \n+000008f0: 203c 6578 7465 6e73 696f 6e3e 0a20 2020   <extension>.   \n+00000900: 2020 2020 203c 6772 6f75 7049 643e 6b72       <groupId>kr\n+00000910: 2e6d 6f74 642e 6d61 7665 6e3c 2f67 726f  .motd.maven</gro\n+00000920: 7570 4964 3e0a 2020 2020 2020 2020 3c61  upId>.        <a\n+00000930: 7274 6966 6163 7449 643e 6f73 2d6d 6176  rtifactId>os-mav\n+00000940: 656e 2d70 6c75 6769 6e3c 2f61 7274 6966  en-plugin</artif\n+00000950: 6163 7449 643e 0a20 2020 2020 2020 203c  actId>.        <\n+00000960: 7665 7273 696f 6e3e 312e 362e 313c 2f76  version>1.6.1</v\n+00000970: 6572 7369 6f6e 3e0a 2020 2020 2020 3c2f  ersion>.      </\n+00000980: 6578 7465 6e73 696f 6e3e 0a20 2020 203c  extension>.    <\n+00000990: 2f65 7874 656e 7369 6f6e 733e 0a20 2020  /extensions>.   \n+000009a0: 203c 706c 7567 696e 733e 0a20 2020 2020   <plugins>.     \n+000009b0: 203c 706c 7567 696e 3e0a 2020 2020 2020   <plugin>.      \n+000009c0: 2020 3c67 726f 7570 4964 3e6f 7267 2e78    <groupId>org.x\n+000009d0: 6f6c 7374 6963 652e 6d61 7665 6e2e 706c  olstice.maven.pl\n+000009e0: 7567 696e 733c 2f67 726f 7570 4964 3e0a  ugins</groupId>.\n+000009f0: 2020 2020 2020 2020 3c61 7274 6966 6163          <artifac\n+00000a00: 7449 643e 7072 6f74 6f62 7566 2d6d 6176  tId>protobuf-mav\n+00000a10: 656e 2d70 6c75 6769 6e3c 2f61 7274 6966  en-plugin</artif\n+00000a20: 6163 7449 643e 0a20 2020 2020 2020 203c  actId>.        <\n+00000a30: 7665 7273 696f 6e3e 302e 352e 313c 2f76  version>0.5.1</v\n+00000a40: 6572 7369 6f6e 3e0a 2020 2020 2020 2020  ersion>.        \n+00000a50: 3c65 7874 656e 7369 6f6e 733e 7472 7565  <extensions>true\n+00000a60: 3c2f 6578 7465 6e73 696f 6e73 3e0a 2020  </extensions>.  \n+00000a70: 2020 2020 2020 3c65 7865 6375 7469 6f6e        <execution\n+00000a80: 733e 0a20 2020 2020 2020 2020 203c 6578  s>.          <ex\n+00000a90: 6563 7574 696f 6e3e 0a20 2020 2020 2020  ecution>.       \n+00000aa0: 2020 2020 203c 676f 616c 733e 0a20 2020       <goals>.   \n+00000ab0: 2020 2020 2020 2020 2020 203c 676f 616c             <goal\n+00000ac0: 3e63 6f6d 7069 6c65 3c2f 676f 616c 3e0a  >compile</goal>.\n+00000ad0: 2020 2020 2020 2020 2020 2020 2020 3c67                <g\n+00000ae0: 6f61 6c3e 7465 7374 2d63 6f6d 7069 6c65  oal>test-compile\n+00000af0: 3c2f 676f 616c 3e0a 2020 2020 2020 2020  </goal>.        \n+00000b00: 2020 2020 3c2f 676f 616c 733e 0a20 2020      </goals>.   \n+00000b10: 2020 2020 2020 203c 2f65 7865 6375 7469         </executi\n+00000b20: 6f6e 3e0a 2020 2020 2020 2020 3c2f 6578  on>.        </ex\n+00000b30: 6563 7574 696f 6e73 3e0a 2020 2020 2020  ecutions>.      \n+00000b40: 2020 3c63 6f6e 6669 6775 7261 7469 6f6e    <configuration\n+00000b50: 3e0a 2020 2020 2020 2020 2020 3c70 726f  >.          <pro\n+00000b60: 746f 6341 7274 6966 6163 743e 636f 6d2e  tocArtifact>com.\n+00000b70: 676f 6f67 6c65 2e70 726f 746f 6275 663a  google.protobuf:\n+00000b80: 7072 6f74 6f63 3a33 2e37 2e31 3a65 7865  protoc:3.7.1:exe\n+00000b90: 3a24 7b6f 732e 6465 7465 6374 6564 2e63  :${os.detected.c\n+00000ba0: 6c61 7373 6966 6965 727d 3c2f 7072 6f74  lassifier}</prot\n+00000bb0: 6f63 4172 7469 6661 6374 3e0a 2020 2020  ocArtifact>.    \n+00000bc0: 2020 2020 2020 3c6f 7574 7075 7444 6972        <outputDir\n+00000bd0: 6563 746f 7279 3e62 7569 6c64 2f67 656e  ectory>build/gen\n+00000be0: 6572 6174 6564 2f73 6f75 7263 652f 7072  erated/source/pr\n+00000bf0: 6f74 6f2f 6d61 696e 2f6a 6176 613c 2f6f  oto/main/java</o\n+00000c00: 7574 7075 7444 6972 6563 746f 7279 3e0a  utputDirectory>.\n+00000c10: 2020 2020 2020 2020 2020 3c63 6c65 6172            <clear\n+00000c20: 4f75 7470 7574 4469 7265 6374 6f72 793e  OutputDirectory>\n+00000c30: 6661 6c73 653c 2f63 6c65 6172 4f75 7470  false</clearOutp\n+00000c40: 7574 4469 7265 6374 6f72 793e 0a20 2020  utDirectory>.   \n+00000c50: 2020 2020 203c 2f63 6f6e 6669 6775 7261       </configura\n+00000c60: 7469 6f6e 3e0a 2020 2020 2020 3c2f 706c  tion>.      </pl\n+00000c70: 7567 696e 3e0a 2020 2020 2020 3c70 6c75  ugin>.      <plu\n+00000c80: 6769 6e3e 0a20 2020 2020 2020 203c 6772  gin>.        <gr\n+00000c90: 6f75 7049 643e 6f72 672e 636f 6465 6861  oupId>org.codeha\n+00000ca0: 7573 2e6d 6f6a 6f3c 2f67 726f 7570 4964  us.mojo</groupId\n+00000cb0: 3e0a 2020 2020 2020 2020 3c61 7274 6966  >.        <artif\n+00000cc0: 6163 7449 643e 6275 696c 642d 6865 6c70  actId>build-help\n+00000cd0: 6572 2d6d 6176 656e 2d70 6c75 6769 6e3c  er-maven-plugin<\n+00000ce0: 2f61 7274 6966 6163 7449 643e 0a20 2020  /artifactId>.   \n+00000cf0: 2020 2020 203c 6578 6563 7574 696f 6e73       <executions\n+00000d00: 3e0a 2020 2020 2020 2020 2020 3c65 7865  >.          <exe\n+00000d10: 6375 7469 6f6e 3e0a 2020 2020 2020 2020  cution>.        \n+00000d20: 2020 2020 3c70 6861 7365 3e67 656e 6572      <phase>gener\n+00000d30: 6174 652d 736f 7572 6365 733c 2f70 6861  ate-sources</pha\n+00000d40: 7365 3e0a 2020 2020 2020 2020 2020 2020  se>.            \n+00000d50: 3c67 6f61 6c73 3e0a 2020 2020 2020 2020  <goals>.        \n+00000d60: 2020 2020 2020 3c67 6f61 6c3e 6164 642d        <goal>add-\n+00000d70: 736f 7572 6365 3c2f 676f 616c 3e0a 2020  source</goal>.  \n+00000d80: 2020 2020 2020 2020 2020 3c2f 676f 616c            </goal\n+00000d90: 733e 0a20 2020 2020 2020 2020 2020 203c  s>.            <\n+00000da0: 636f 6e66 6967 7572 6174 696f 6e3e 0a20  configuration>. \n+00000db0: 2020 2020 2020 2020 2020 2020 203c 736f               <so\n+00000dc0: 7572 6365 733e 0a20 2020 2020 2020 2020  urces>.         \n+00000dd0: 2020 2020 2020 203c 736f 7572 6365 3e62         <source>b\n+00000de0: 7569 6c64 2f67 656e 6572 6174 6564 2f73  uild/generated/s\n+00000df0: 6f75 7263 652f 7072 6f74 6f2f 6d61 696e  ource/proto/main\n+00000e00: 2f6a 6176 613c 2f73 6f75 7263 653e 0a20  /java</source>. \n+00000e10: 2020 2020 2020 2020 2020 2020 203c 2f73               </s\n+00000e20: 6f75 7263 6573 3e0a 2020 2020 2020 2020  ources>.        \n+00000e30: 2020 2020 3c2f 636f 6e66 6967 7572 6174      </configurat\n+00000e40: 696f 6e3e 0a20 2020 2020 2020 2020 203c  ion>.          <\n+00000e50: 2f65 7865 6375 7469 6f6e 3e0a 2020 2020  /execution>.    \n+00000e60: 2020 2020 3c2f 6578 6563 7574 696f 6e73      </executions\n+00000e70: 3e0a 2020 2020 2020 3c2f 706c 7567 696e  >.      </plugin\n+00000e80: 3e0a 2020 2020 3c2f 706c 7567 696e 733e  >.    </plugins>\n+00000e90: 0a20 203c 2f62 7569 6c64 3e0a 3c2f 7072  .  </build>.</pr\n+00000ea0: 6f6a 6563 743e 0a                        oject>.\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo-serialization-protostuff/pom.xml", "comments": ["Format-specific differences are supported for XML files but no file-specific differences were detected; falling back to a binary diff. file(1) reports: XML 1.0 document, ASCII text, with CRLF line terminators"], "has_internal_linenos": true, "unified_diff": "@@ -1,147 +1,144 @@\n 00000000: 3c3f 786d 6c20 7665 7273 696f 6e3d 2231  <?xml version=\"1\n 00000010: 2e30 2220 656e 636f 6469 6e67 3d22 5554  .0\" encoding=\"UT\n-00000020: 462d 3822 3f3e 0d0a 3c21 2d2d 0d0a 4c69  F-8\"?>..<!--..Li\n-00000030: 6365 6e73 6564 2074 6f20 7468 6520 4170  censed to the Ap\n-00000040: 6163 6865 2053 6f66 7477 6172 6520 466f  ache Software Fo\n-00000050: 756e 6461 7469 6f6e 2028 4153 4629 2075  undation (ASF) u\n-00000060: 6e64 6572 206f 6e65 206f 7220 6d6f 7265  nder one or more\n-00000070: 0d0a 636f 6e74 7269 6275 746f 7220 6c69  ..contributor li\n-00000080: 6365 6e73 6520 6167 7265 656d 656e 7473  cense agreements\n-00000090: 2e20 2053 6565 2074 6865 204e 4f54 4943  .  See the NOTIC\n-000000a0: 4520 6669 6c65 2064 6973 7472 6962 7574  E file distribut\n-000000b0: 6564 2077 6974 680d 0a74 6869 7320 776f  ed with..this wo\n-000000c0: 726b 2066 6f72 2061 6464 6974 696f 6e61  rk for additiona\n-000000d0: 6c20 696e 666f 726d 6174 696f 6e20 7265  l information re\n-000000e0: 6761 7264 696e 6720 636f 7079 7269 6768  garding copyrigh\n-000000f0: 7420 6f77 6e65 7273 6869 702e 0d0a 5468  t ownership...Th\n-00000100: 6520 4153 4620 6c69 6365 6e73 6573 2074  e ASF licenses t\n-00000110: 6869 7320 6669 6c65 2074 6f20 596f 7520  his file to You \n-00000120: 756e 6465 7220 7468 6520 4170 6163 6865  under the Apache\n-00000130: 204c 6963 656e 7365 2c20 5665 7273 696f   License, Versio\n-00000140: 6e20 322e 300d 0a28 7468 6520 224c 6963  n 2.0..(the \"Lic\n-00000150: 656e 7365 2229 3b20 796f 7520 6d61 7920  ense\"); you may \n-00000160: 6e6f 7420 7573 6520 7468 6973 2066 696c  not use this fil\n-00000170: 6520 6578 6365 7074 2069 6e20 636f 6d70  e except in comp\n-00000180: 6c69 616e 6365 2077 6974 680d 0a74 6865  liance with..the\n-00000190: 204c 6963 656e 7365 2e20 2059 6f75 206d   License.  You m\n-000001a0: 6179 206f 6274 6169 6e20 6120 636f 7079  ay obtain a copy\n-000001b0: 206f 6620 7468 6520 4c69 6365 6e73 6520   of the License \n-000001c0: 6174 0d0a 0d0a 2020 2020 2068 7474 703a  at....     http:\n-000001d0: 2f2f 7777 772e 6170 6163 6865 2e6f 7267  //www.apache.org\n-000001e0: 2f6c 6963 656e 7365 732f 4c49 4345 4e53  /licenses/LICENS\n-000001f0: 452d 322e 300d 0a0d 0a55 6e6c 6573 7320  E-2.0....Unless \n-00000200: 7265 7175 6972 6564 2062 7920 6170 706c  required by appl\n-00000210: 6963 6162 6c65 206c 6177 206f 7220 6167  icable law or ag\n-00000220: 7265 6564 2074 6f20 696e 2077 7269 7469  reed to in writi\n-00000230: 6e67 2c20 736f 6674 7761 7265 0d0a 6469  ng, software..di\n-00000240: 7374 7269 6275 7465 6420 756e 6465 7220  stributed under \n-00000250: 7468 6520 4c69 6365 6e73 6520 6973 2064  the License is d\n-00000260: 6973 7472 6962 7574 6564 206f 6e20 616e  istributed on an\n-00000270: 2022 4153 2049 5322 2042 4153 4953 2c0d   \"AS IS\" BASIS,.\n-00000280: 0a57 4954 484f 5554 2057 4152 5241 4e54  .WITHOUT WARRANT\n-00000290: 4945 5320 4f52 2043 4f4e 4449 5449 4f4e  IES OR CONDITION\n-000002a0: 5320 4f46 2041 4e59 204b 494e 442c 2065  S OF ANY KIND, e\n-000002b0: 6974 6865 7220 6578 7072 6573 7320 6f72  ither express or\n-000002c0: 2069 6d70 6c69 6564 2e0d 0a53 6565 2074   implied...See t\n-000002d0: 6865 204c 6963 656e 7365 2066 6f72 2074  he License for t\n-000002e0: 6865 2073 7065 6369 6669 6320 6c61 6e67  he specific lang\n-000002f0: 7561 6765 2067 6f76 6572 6e69 6e67 2070  uage governing p\n-00000300: 6572 6d69 7373 696f 6e73 2061 6e64 0d0a  ermissions and..\n-00000310: 6c69 6d69 7461 7469 6f6e 7320 756e 6465  limitations unde\n-00000320: 7220 7468 6520 4c69 6365 6e73 652e 0d0a  r the License...\n-00000330: 2d2d 3e0d 0a3c 7072 6f6a 6563 7420 7873  -->..<project xs\n-00000340: 693a 7363 6865 6d61 4c6f 6361 7469 6f6e  i:schemaLocation\n-00000350: 3d22 6874 7470 3a2f 2f6d 6176 656e 2e61  =\"http://maven.a\n-00000360: 7061 6368 652e 6f72 672f 504f 4d2f 342e  pache.org/POM/4.\n-00000370: 302e 3020 6874 7470 733a 2f2f 6d61 7665  0.0 https://mave\n-00000380: 6e2e 6170 6163 6865 2e6f 7267 2f78 7364  n.apache.org/xsd\n-00000390: 2f6d 6176 656e 2d34 2e30 2e30 2e78 7364  /maven-4.0.0.xsd\n-000003a0: 2220 786d 6c6e 733d 2268 7474 703a 2f2f  \" xmlns=\"http://\n-000003b0: 6d61 7665 6e2e 6170 6163 6865 2e6f 7267  maven.apache.org\n-000003c0: 2f50 4f4d 2f34 2e30 2e30 220d 0a20 2020  /POM/4.0.0\"..   \n-000003d0: 2078 6d6c 6e73 3a78 7369 3d22 6874 7470   xmlns:xsi=\"http\n-000003e0: 3a2f 2f77 7777 2e77 332e 6f72 672f 3230  ://www.w3.org/20\n-000003f0: 3031 2f58 4d4c 5363 6865 6d61 2d69 6e73  01/XMLSchema-ins\n-00000400: 7461 6e63 6522 3e0d 0a20 203c 6d6f 6465  tance\">..  <mode\n-00000410: 6c56 6572 7369 6f6e 3e34 2e30 2e30 3c2f  lVersion>4.0.0</\n-00000420: 6d6f 6465 6c56 6572 7369 6f6e 3e0d 0a20  modelVersion>.. \n-00000430: 203c 7061 7265 6e74 3e0d 0a20 2020 203c   <parent>..    <\n-00000440: 6772 6f75 7049 643e 6f72 672e 6170 6163  groupId>org.apac\n-00000450: 6865 2e64 7562 626f 3c2f 6772 6f75 7049  he.dubbo</groupI\n-00000460: 643e 0d0a 2020 2020 3c61 7274 6966 6163  d>..    <artifac\n-00000470: 7449 643e 6475 6262 6f2d 7365 7269 616c  tId>dubbo-serial\n-00000480: 697a 6174 696f 6e3c 2f61 7274 6966 6163  ization</artifac\n-00000490: 7449 643e 0d0a 2020 2020 3c76 6572 7369  tId>..    <versi\n-000004a0: 6f6e 3e32 2e37 2e31 303c 2f76 6572 7369  on>2.7.10</versi\n-000004b0: 6f6e 3e0d 0a20 203c 2f70 6172 656e 743e  on>..  </parent>\n-000004c0: 0d0a 2020 3c67 726f 7570 4964 3e6f 7267  ..  <groupId>org\n-000004d0: 2e61 7061 6368 652e 6475 6262 6f3c 2f67  .apache.dubbo</g\n-000004e0: 726f 7570 4964 3e0d 0a20 203c 6172 7469  roupId>..  <arti\n-000004f0: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n-00000500: 6961 6c69 7a61 7469 6f6e 2d70 726f 746f  ialization-proto\n-00000510: 7374 7566 663c 2f61 7274 6966 6163 7449  stuff</artifactI\n-00000520: 643e 0d0a 2020 3c76 6572 7369 6f6e 3e32  d>..  <version>2\n-00000530: 2e37 2e31 303c 2f76 6572 7369 6f6e 3e0d  .7.10</version>.\n-00000540: 0a20 203c 6e61 6d65 3e24 7b70 726f 6a65  .  <name>${proje\n-00000550: 6374 2e61 7274 6966 6163 7449 647d 3c2f  ct.artifactId}</\n-00000560: 6e61 6d65 3e0d 0a20 203c 6465 7363 7269  name>..  <descri\n-00000570: 7074 696f 6e3e 5468 6520 7072 6f74 6f73  ption>The protos\n-00000580: 7475 6666 2073 6572 6961 6c69 7a61 7469  tuff serializati\n-00000590: 6f6e 206d 6f64 756c 6520 6f66 2064 7562  on module of dub\n-000005a0: 626f 2070 726f 6a65 6374 3c2f 6465 7363  bo project</desc\n-000005b0: 7269 7074 696f 6e3e 0d0a 2020 3c6c 6963  ription>..  <lic\n-000005c0: 656e 7365 733e 0d0a 2020 2020 3c6c 6963  enses>..    <lic\n-000005d0: 656e 7365 3e0d 0a20 2020 2020 203c 6e61  ense>..      <na\n-000005e0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n-000005f0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n-00000600: 6e61 6d65 3e0d 0a20 2020 2020 203c 7572  name>..      <ur\n-00000610: 6c3e 6874 7470 3a2f 2f77 7777 2e61 7061  l>http://www.apa\n-00000620: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n-00000630: 2f4c 4943 454e 5345 2d32 2e30 3c2f 7572  /LICENSE-2.0</ur\n-00000640: 6c3e 0d0a 2020 2020 2020 3c64 6973 7472  l>..      <distr\n-00000650: 6962 7574 696f 6e3e 7265 706f 3c2f 6469  ibution>repo</di\n-00000660: 7374 7269 6275 7469 6f6e 3e0d 0a20 2020  stribution>..   \n-00000670: 203c 2f6c 6963 656e 7365 3e0d 0a20 203c   </license>..  <\n-00000680: 2f6c 6963 656e 7365 733e 0d0a 2020 3c70  /licenses>..  <p\n-00000690: 726f 7065 7274 6965 733e 0d0a 2020 2020  roperties>..    \n-000006a0: 3c70 726f 746f 7374 7566 662e 7665 7273  <protostuff.vers\n-000006b0: 696f 6e3e 312e 352e 393c 2f70 726f 746f  ion>1.5.9</proto\n-000006c0: 7374 7566 662e 7665 7273 696f 6e3e 0d0a  stuff.version>..\n-000006d0: 2020 3c2f 7072 6f70 6572 7469 6573 3e0d    </properties>.\n-000006e0: 0a20 203c 6465 7065 6e64 656e 6369 6573  .  <dependencies\n-000006f0: 3e0d 0a20 2020 203c 6465 7065 6e64 656e  >..    <dependen\n-00000700: 6379 3e0d 0a20 2020 2020 203c 6772 6f75  cy>..      <grou\n-00000710: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n-00000720: 7562 626f 3c2f 6772 6f75 7049 643e 0d0a  ubbo</groupId>..\n-00000730: 2020 2020 2020 3c61 7274 6966 6163 7449        <artifactI\n-00000740: 643e 6475 6262 6f2d 7365 7269 616c 697a  d>dubbo-serializ\n-00000750: 6174 696f 6e2d 6170 693c 2f61 7274 6966  ation-api</artif\n-00000760: 6163 7449 643e 0d0a 2020 2020 2020 3c76  actId>..      <v\n-00000770: 6572 7369 6f6e 3e24 7b70 726f 6a65 6374  ersion>${project\n-00000780: 2e70 6172 656e 742e 7665 7273 696f 6e7d  .parent.version}\n-00000790: 3c2f 7665 7273 696f 6e3e 0d0a 2020 2020  </version>..    \n-000007a0: 3c2f 6465 7065 6e64 656e 6379 3e0d 0a20  </dependency>.. \n-000007b0: 2020 203c 6465 7065 6e64 656e 6379 3e0d     <dependency>.\n-000007c0: 0a20 2020 2020 203c 6772 6f75 7049 643e  .      <groupId>\n-000007d0: 696f 2e70 726f 746f 7374 7566 663c 2f67  io.protostuff</g\n-000007e0: 726f 7570 4964 3e0d 0a20 2020 2020 203c  roupId>..      <\n-000007f0: 6172 7469 6661 6374 4964 3e70 726f 746f  artifactId>proto\n-00000800: 7374 7566 662d 636f 7265 3c2f 6172 7469  stuff-core</arti\n-00000810: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-00000820: 7665 7273 696f 6e3e 247b 7072 6f74 6f73  version>${protos\n-00000830: 7475 6666 2e76 6572 7369 6f6e 7d3c 2f76  tuff.version}</v\n-00000840: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000850: 6570 656e 6465 6e63 793e 0d0a 2020 2020  ependency>..    \n-00000860: 3c64 6570 656e 6465 6e63 793e 0d0a 2020  <dependency>..  \n-00000870: 2020 2020 3c67 726f 7570 4964 3e69 6f2e      <groupId>io.\n-00000880: 7072 6f74 6f73 7475 6666 3c2f 6772 6f75  protostuff</grou\n-00000890: 7049 643e 0d0a 2020 2020 2020 3c61 7274  pId>..      <art\n-000008a0: 6966 6163 7449 643e 7072 6f74 6f73 7475  ifactId>protostu\n-000008b0: 6666 2d72 756e 7469 6d65 3c2f 6172 7469  ff-runtime</arti\n-000008c0: 6661 6374 4964 3e0d 0a20 2020 2020 203c  factId>..      <\n-000008d0: 7665 7273 696f 6e3e 247b 7072 6f74 6f73  version>${protos\n-000008e0: 7475 6666 2e76 6572 7369 6f6e 7d3c 2f76  tuff.version}</v\n-000008f0: 6572 7369 6f6e 3e0d 0a20 2020 203c 2f64  ersion>..    </d\n-00000900: 6570 656e 6465 6e63 793e 0d0a 2020 3c2f  ependency>..  </\n-00000910: 6465 7065 6e64 656e 6369 6573 3e0d 0a3c  dependencies>..<\n-00000920: 2f70 726f 6a65 6374 3e0d 0a              /project>..\n+00000020: 462d 3822 3f3e 0a3c 212d 2d0a 4c69 6365  F-8\"?>.<!--.Lice\n+00000030: 6e73 6564 2074 6f20 7468 6520 4170 6163  nsed to the Apac\n+00000040: 6865 2053 6f66 7477 6172 6520 466f 756e  he Software Foun\n+00000050: 6461 7469 6f6e 2028 4153 4629 2075 6e64  dation (ASF) und\n+00000060: 6572 206f 6e65 206f 7220 6d6f 7265 0a63  er one or more.c\n+00000070: 6f6e 7472 6962 7574 6f72 206c 6963 656e  ontributor licen\n+00000080: 7365 2061 6772 6565 6d65 6e74 732e 2020  se agreements.  \n+00000090: 5365 6520 7468 6520 4e4f 5449 4345 2066  See the NOTICE f\n+000000a0: 696c 6520 6469 7374 7269 6275 7465 6420  ile distributed \n+000000b0: 7769 7468 0a74 6869 7320 776f 726b 2066  with.this work f\n+000000c0: 6f72 2061 6464 6974 696f 6e61 6c20 696e  or additional in\n+000000d0: 666f 726d 6174 696f 6e20 7265 6761 7264  formation regard\n+000000e0: 696e 6720 636f 7079 7269 6768 7420 6f77  ing copyright ow\n+000000f0: 6e65 7273 6869 702e 0a54 6865 2041 5346  nership..The ASF\n+00000100: 206c 6963 656e 7365 7320 7468 6973 2066   licenses this f\n+00000110: 696c 6520 746f 2059 6f75 2075 6e64 6572  ile to You under\n+00000120: 2074 6865 2041 7061 6368 6520 4c69 6365   the Apache Lice\n+00000130: 6e73 652c 2056 6572 7369 6f6e 2032 2e30  nse, Version 2.0\n+00000140: 0a28 7468 6520 224c 6963 656e 7365 2229  .(the \"License\")\n+00000150: 3b20 796f 7520 6d61 7920 6e6f 7420 7573  ; you may not us\n+00000160: 6520 7468 6973 2066 696c 6520 6578 6365  e this file exce\n+00000170: 7074 2069 6e20 636f 6d70 6c69 616e 6365  pt in compliance\n+00000180: 2077 6974 680a 7468 6520 4c69 6365 6e73   with.the Licens\n+00000190: 652e 2020 596f 7520 6d61 7920 6f62 7461  e.  You may obta\n+000001a0: 696e 2061 2063 6f70 7920 6f66 2074 6865  in a copy of the\n+000001b0: 204c 6963 656e 7365 2061 740a 0a20 2020   License at..   \n+000001c0: 2020 6874 7470 3a2f 2f77 7777 2e61 7061    http://www.apa\n+000001d0: 6368 652e 6f72 672f 6c69 6365 6e73 6573  che.org/licenses\n+000001e0: 2f4c 4943 454e 5345 2d32 2e30 0a0a 556e  /LICENSE-2.0..Un\n+000001f0: 6c65 7373 2072 6571 7569 7265 6420 6279  less required by\n+00000200: 2061 7070 6c69 6361 626c 6520 6c61 7720   applicable law \n+00000210: 6f72 2061 6772 6565 6420 746f 2069 6e20  or agreed to in \n+00000220: 7772 6974 696e 672c 2073 6f66 7477 6172  writing, softwar\n+00000230: 650a 6469 7374 7269 6275 7465 6420 756e  e.distributed un\n+00000240: 6465 7220 7468 6520 4c69 6365 6e73 6520  der the License \n+00000250: 6973 2064 6973 7472 6962 7574 6564 206f  is distributed o\n+00000260: 6e20 616e 2022 4153 2049 5322 2042 4153  n an \"AS IS\" BAS\n+00000270: 4953 2c0a 5749 5448 4f55 5420 5741 5252  IS,.WITHOUT WARR\n+00000280: 414e 5449 4553 204f 5220 434f 4e44 4954  ANTIES OR CONDIT\n+00000290: 494f 4e53 204f 4620 414e 5920 4b49 4e44  IONS OF ANY KIND\n+000002a0: 2c20 6569 7468 6572 2065 7870 7265 7373  , either express\n+000002b0: 206f 7220 696d 706c 6965 642e 0a53 6565   or implied..See\n+000002c0: 2074 6865 204c 6963 656e 7365 2066 6f72   the License for\n+000002d0: 2074 6865 2073 7065 6369 6669 6320 6c61   the specific la\n+000002e0: 6e67 7561 6765 2067 6f76 6572 6e69 6e67  nguage governing\n+000002f0: 2070 6572 6d69 7373 696f 6e73 2061 6e64   permissions and\n+00000300: 0a6c 696d 6974 6174 696f 6e73 2075 6e64  .limitations und\n+00000310: 6572 2074 6865 204c 6963 656e 7365 2e0a  er the License..\n+00000320: 2d2d 3e0a 3c70 726f 6a65 6374 2078 7369  -->.<project xsi\n+00000330: 3a73 6368 656d 614c 6f63 6174 696f 6e3d  :schemaLocation=\n+00000340: 2268 7474 703a 2f2f 6d61 7665 6e2e 6170  \"http://maven.ap\n+00000350: 6163 6865 2e6f 7267 2f50 4f4d 2f34 2e30  ache.org/POM/4.0\n+00000360: 2e30 2068 7474 7073 3a2f 2f6d 6176 656e  .0 https://maven\n+00000370: 2e61 7061 6368 652e 6f72 672f 7873 642f  .apache.org/xsd/\n+00000380: 6d61 7665 6e2d 342e 302e 302e 7873 6422  maven-4.0.0.xsd\"\n+00000390: 2078 6d6c 6e73 3d22 6874 7470 3a2f 2f6d   xmlns=\"http://m\n+000003a0: 6176 656e 2e61 7061 6368 652e 6f72 672f  aven.apache.org/\n+000003b0: 504f 4d2f 342e 302e 3022 0a20 2020 2078  POM/4.0.0\".    x\n+000003c0: 6d6c 6e73 3a78 7369 3d22 6874 7470 3a2f  mlns:xsi=\"http:/\n+000003d0: 2f77 7777 2e77 332e 6f72 672f 3230 3031  /www.w3.org/2001\n+000003e0: 2f58 4d4c 5363 6865 6d61 2d69 6e73 7461  /XMLSchema-insta\n+000003f0: 6e63 6522 3e0a 2020 3c6d 6f64 656c 5665  nce\">.  <modelVe\n+00000400: 7273 696f 6e3e 342e 302e 303c 2f6d 6f64  rsion>4.0.0</mod\n+00000410: 656c 5665 7273 696f 6e3e 0a20 203c 7061  elVersion>.  <pa\n+00000420: 7265 6e74 3e0a 2020 2020 3c67 726f 7570  rent>.    <group\n+00000430: 4964 3e6f 7267 2e61 7061 6368 652e 6475  Id>org.apache.du\n+00000440: 6262 6f3c 2f67 726f 7570 4964 3e0a 2020  bbo</groupId>.  \n+00000450: 2020 3c61 7274 6966 6163 7449 643e 6475    <artifactId>du\n+00000460: 6262 6f2d 7365 7269 616c 697a 6174 696f  bbo-serializatio\n+00000470: 6e3c 2f61 7274 6966 6163 7449 643e 0a20  n</artifactId>. \n+00000480: 2020 203c 7665 7273 696f 6e3e 322e 372e     <version>2.7.\n+00000490: 3130 3c2f 7665 7273 696f 6e3e 0a20 203c  10</version>.  <\n+000004a0: 2f70 6172 656e 743e 0a20 203c 6772 6f75  /parent>.  <grou\n+000004b0: 7049 643e 6f72 672e 6170 6163 6865 2e64  pId>org.apache.d\n+000004c0: 7562 626f 3c2f 6772 6f75 7049 643e 0a20  ubbo</groupId>. \n+000004d0: 203c 6172 7469 6661 6374 4964 3e64 7562   <artifactId>dub\n+000004e0: 626f 2d73 6572 6961 6c69 7a61 7469 6f6e  bo-serialization\n+000004f0: 2d70 726f 746f 7374 7566 663c 2f61 7274  -protostuff</art\n+00000500: 6966 6163 7449 643e 0a20 203c 7665 7273  ifactId>.  <vers\n+00000510: 696f 6e3e 322e 372e 3130 3c2f 7665 7273  ion>2.7.10</vers\n+00000520: 696f 6e3e 0a20 203c 6e61 6d65 3e24 7b70  ion>.  <name>${p\n+00000530: 726f 6a65 6374 2e61 7274 6966 6163 7449  roject.artifactI\n+00000540: 647d 3c2f 6e61 6d65 3e0a 2020 3c64 6573  d}</name>.  <des\n+00000550: 6372 6970 7469 6f6e 3e54 6865 2070 726f  cription>The pro\n+00000560: 746f 7374 7566 6620 7365 7269 616c 697a  tostuff serializ\n+00000570: 6174 696f 6e20 6d6f 6475 6c65 206f 6620  ation module of \n+00000580: 6475 6262 6f20 7072 6f6a 6563 743c 2f64  dubbo project</d\n+00000590: 6573 6372 6970 7469 6f6e 3e0a 2020 3c6c  escription>.  <l\n+000005a0: 6963 656e 7365 733e 0a20 2020 203c 6c69  icenses>.    <li\n+000005b0: 6365 6e73 653e 0a20 2020 2020 203c 6e61  cense>.      <na\n+000005c0: 6d65 3e41 7061 6368 6520 4c69 6365 6e73  me>Apache Licens\n+000005d0: 652c 2056 6572 7369 6f6e 2032 2e30 3c2f  e, Version 2.0</\n+000005e0: 6e61 6d65 3e0a 2020 2020 2020 3c75 726c  name>.      <url\n+000005f0: 3e68 7474 703a 2f2f 7777 772e 6170 6163  >http://www.apac\n+00000600: 6865 2e6f 7267 2f6c 6963 656e 7365 732f  he.org/licenses/\n+00000610: 4c49 4345 4e53 452d 322e 303c 2f75 726c  LICENSE-2.0</url\n+00000620: 3e0a 2020 2020 2020 3c64 6973 7472 6962  >.      <distrib\n+00000630: 7574 696f 6e3e 7265 706f 3c2f 6469 7374  ution>repo</dist\n+00000640: 7269 6275 7469 6f6e 3e0a 2020 2020 3c2f  ribution>.    </\n+00000650: 6c69 6365 6e73 653e 0a20 203c 2f6c 6963  license>.  </lic\n+00000660: 656e 7365 733e 0a20 203c 7072 6f70 6572  enses>.  <proper\n+00000670: 7469 6573 3e0a 2020 2020 3c70 726f 746f  ties>.    <proto\n+00000680: 7374 7566 662e 7665 7273 696f 6e3e 312e  stuff.version>1.\n+00000690: 352e 393c 2f70 726f 746f 7374 7566 662e  5.9</protostuff.\n+000006a0: 7665 7273 696f 6e3e 0a20 203c 2f70 726f  version>.  </pro\n+000006b0: 7065 7274 6965 733e 0a20 203c 6465 7065  perties>.  <depe\n+000006c0: 6e64 656e 6369 6573 3e0a 2020 2020 3c64  ndencies>.    <d\n+000006d0: 6570 656e 6465 6e63 793e 0a20 2020 2020  ependency>.     \n+000006e0: 203c 6772 6f75 7049 643e 6f72 672e 6170   <groupId>org.ap\n+000006f0: 6163 6865 2e64 7562 626f 3c2f 6772 6f75  ache.dubbo</grou\n+00000700: 7049 643e 0a20 2020 2020 203c 6172 7469  pId>.      <arti\n+00000710: 6661 6374 4964 3e64 7562 626f 2d73 6572  factId>dubbo-ser\n+00000720: 6961 6c69 7a61 7469 6f6e 2d61 7069 3c2f  ialization-api</\n+00000730: 6172 7469 6661 6374 4964 3e0a 2020 2020  artifactId>.    \n+00000740: 2020 3c76 6572 7369 6f6e 3e24 7b70 726f    <version>${pro\n+00000750: 6a65 6374 2e70 6172 656e 742e 7665 7273  ject.parent.vers\n+00000760: 696f 6e7d 3c2f 7665 7273 696f 6e3e 0a20  ion}</version>. \n+00000770: 2020 203c 2f64 6570 656e 6465 6e63 793e     </dependency>\n+00000780: 0a20 2020 203c 6465 7065 6e64 656e 6379  .    <dependency\n+00000790: 3e0a 2020 2020 2020 3c67 726f 7570 4964  >.      <groupId\n+000007a0: 3e69 6f2e 7072 6f74 6f73 7475 6666 3c2f  >io.protostuff</\n+000007b0: 6772 6f75 7049 643e 0a20 2020 2020 203c  groupId>.      <\n+000007c0: 6172 7469 6661 6374 4964 3e70 726f 746f  artifactId>proto\n+000007d0: 7374 7566 662d 636f 7265 3c2f 6172 7469  stuff-core</arti\n+000007e0: 6661 6374 4964 3e0a 2020 2020 2020 3c76  factId>.      <v\n+000007f0: 6572 7369 6f6e 3e24 7b70 726f 746f 7374  ersion>${protost\n+00000800: 7566 662e 7665 7273 696f 6e7d 3c2f 7665  uff.version}</ve\n+00000810: 7273 696f 6e3e 0a20 2020 203c 2f64 6570  rsion>.    </dep\n+00000820: 656e 6465 6e63 793e 0a20 2020 203c 6465  endency>.    <de\n+00000830: 7065 6e64 656e 6379 3e0a 2020 2020 2020  pendency>.      \n+00000840: 3c67 726f 7570 4964 3e69 6f2e 7072 6f74  <groupId>io.prot\n+00000850: 6f73 7475 6666 3c2f 6772 6f75 7049 643e  ostuff</groupId>\n+00000860: 0a20 2020 2020 203c 6172 7469 6661 6374  .      <artifact\n+00000870: 4964 3e70 726f 746f 7374 7566 662d 7275  Id>protostuff-ru\n+00000880: 6e74 696d 653c 2f61 7274 6966 6163 7449  ntime</artifactI\n+00000890: 643e 0a20 2020 2020 203c 7665 7273 696f  d>.      <versio\n+000008a0: 6e3e 247b 7072 6f74 6f73 7475 6666 2e76  n>${protostuff.v\n+000008b0: 6572 7369 6f6e 7d3c 2f76 6572 7369 6f6e  ersion}</version\n+000008c0: 3e0a 2020 2020 3c2f 6465 7065 6e64 656e  >.    </dependen\n+000008d0: 6379 3e0a 2020 3c2f 6465 7065 6e64 656e  cy>.  </dependen\n+000008e0: 6369 6573 3e0a 3c2f 7072 6f6a 6563 743e  cies>.</project>\n+000008f0: 0a                                       .\n"}, {"source1": "META-INF/maven/org.apache.dubbo/dubbo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo/pom.xml", "unified_diff": null, "details": [{"source1": "META-INF/maven/org.apache.dubbo/dubbo/pom.xml", "source2": "META-INF/maven/org.apache.dubbo/dubbo/pom.xml", "unified_diff": "@@ -279,20 +279,20 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-registry-etcd3</artifactId>\n       <version>${project.version}</version>\n       <scope>compile</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>grpc-core</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-core</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>grpc-netty</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-netty</artifactId>\n         </exclusion>\n       </exclusions>\n       <optional>true</optional>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-registry-eureka</artifactId>\n@@ -471,20 +471,20 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-configcenter-etcd</artifactId>\n       <version>${project.version}</version>\n       <scope>compile</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>grpc-core</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-core</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>grpc-netty</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-netty</artifactId>\n         </exclusion>\n       </exclusions>\n       <optional>true</optional>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-compatible</artifactId>\n@@ -529,20 +529,20 @@\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-etcd</artifactId>\n       <version>${project.version}</version>\n       <scope>compile</scope>\n       <exclusions>\n         <exclusion>\n-          <artifactId>grpc-core</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-core</artifactId>\n         </exclusion>\n         <exclusion>\n-          <artifactId>grpc-netty</artifactId>\n           <groupId>io.grpc</groupId>\n+          <artifactId>grpc-netty</artifactId>\n         </exclusion>\n       </exclusions>\n       <optional>true</optional>\n     </dependency>\n     <dependency>\n       <groupId>org.apache.dubbo</groupId>\n       <artifactId>dubbo-metadata-report-nacos</artifactId>\n@@ -882,51 +882,23 @@\n   <profiles>\n     <profile>\n       <id>release</id>\n       <build>\n         <plugins>\n           <plugin>\n             <artifactId>maven-javadoc-plugin</artifactId>\n-            <version>3.2.0</version>\n+            <version>${maven_javadoc_version}</version>\n             <executions>\n               <execution>\n                 <id>attach-javadoc</id>\n                 <goals>\n                   <goal>jar</goal>\n-                  <goal>aggregate</goal>\n                 </goals>\n                 <configuration>\n                   <doclint>none</doclint>\n-                  <additionalDependencies>\n-                    <additionalDependency>\n-                      <groupId>org.apache.logging.log4j</groupId>\n-                      <artifactId>log4j-api</artifactId>\n-                      <version>2.11.1</version>\n-                    </additionalDependency>\n-                    <additionalDependency>\n-                      <groupId>org.apache.logging.log4j</groupId>\n-                      <artifactId>log4j-core</artifactId>\n-                      <version>2.11.1</version>\n-                    </additionalDependency>\n-                  </additionalDependencies>\n-                  <includeDependencySources>true</includeDependencySources>\n-                  <dependencySourceIncludes>\n-                    <dependencySourceInclude>org.apache.dubbo:dubbo-*</dependencySourceInclude>\n-                    <dependencySourceExclude>com.alibaba:hessian-*</dependencySourceExclude>\n-                  </dependencySourceIncludes>\n-                  <show>public</show>\n-                  <charset>UTF-8</charset>\n-                  <encoding>UTF-8</encoding>\n-                  <docencoding>UTF-8</docencoding>\n-                  <links>\n-                    <link>http://docs.oracle.com/javase/7/docs/api</link>\n-                  </links>\n-                  <excludePackageNames>org.apache.dubbo.demo,org.apache.dubbo.demo.*</excludePackageNames>\n-                  <doctitle>Apache Dubbo 2.7.10 API</doctitle>\n-                  <windowtitle>Apache Dubbo 2.7.10 API</windowtitle>\n                 </configuration>\n               </execution>\n             </executions>\n             <configuration>\n               <includeDependencySources>true</includeDependencySources>\n               <dependencySourceIncludes>\n                 <dependencySourceInclude>org.apache.dubbo:dubbo-*</dependencySourceInclude>\n@@ -935,23 +907,23 @@\n               <show>public</show>\n               <charset>UTF-8</charset>\n               <encoding>UTF-8</encoding>\n               <docencoding>UTF-8</docencoding>\n               <links>\n                 <link>http://docs.oracle.com/javase/7/docs/api</link>\n               </links>\n-              <doclint>none</doclint>\n-              <excludePackageNames>org.apache.dubbo.demo,org.apache.dubbo.demo.*</excludePackageNames>\n-              <doctitle>Apache Dubbo 2.7.10 API</doctitle>\n-              <windowtitle>Apache Dubbo 2.7.10 API</windowtitle>\n             </configuration>\n           </plugin>\n         </plugins>\n       </build>\n       <properties>\n-        <os.detected.name>windows</os.detected.name>\n-        <os.detected.classifier>windows-x86_64</os.detected.classifier>\n+        <os.detected.release.version>22.04</os.detected.release.version>\n+        <os.detected.release.like.ubuntu>true</os.detected.release.like.ubuntu>\n+        <os.detected.release>ubuntu</os.detected.release>\n+        <os.detected.name>linux</os.detected.name>\n+        <os.detected.release.like.debian>true</os.detected.release.like.debian>\n+        <os.detected.classifier>linux-x86_64</os.detected.classifier>\n         <os.detected.arch>x86_64</os.detected.arch>\n       </properties>\n     </profile>\n   </profiles>\n </project>\n"}]}, {"source1": "META-INF/services/org.apache.dubbo.common.extension.LoadingStrategy", "source2": "META-INF/services/org.apache.dubbo.common.extension.LoadingStrategy", "unified_diff": "@@ -1,7 +1,3 @@\n-org.apache.dubbo.common.extension.DubboInternalLoadingStrategy\n-org.apache.dubbo.common.extension.DubboLoadingStrategy\n-org.apache.dubbo.common.extension.ServicesLoadingStrategy\n-\n-org.apache.dubbo.common.extension.DubboInternalLoadingStrategy\n-org.apache.dubbo.common.extension.DubboLoadingStrategy\n+org.apache.dubbo.common.extension.DubboInternalLoadingStrategy\r\n+org.apache.dubbo.common.extension.DubboLoadingStrategy\r\n org.apache.dubbo.common.extension.ServicesLoadingStrategy\n"}, {"source1": "MapValue.proto", "source2": "MapValue.proto", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,27 +1,27 @@\n-// Licensed to the Apache Software Foundation (ASF) under one or more\n-// contributor license agreements.  See the NOTICE file distributed with\n-// this work for additional information regarding copyright ownership.\n-// The ASF licenses this file to You under the Apache License, Version 2.0\n-// (the \"License\"); you may not use this file except in compliance with\n-// the License.  You may obtain a copy of the License at\n-//\n-//     http://www.apache.org/licenses/LICENSE-2.0\n-//\n-// Unless required by applicable law or agreed to in writing, software\n-// distributed under the License is distributed on an \"AS IS\" BASIS,\n-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-// See the License for the specific language governing permissions and\n-// limitations under the License.\n-\n-// Messages used for transporting debug information between server and client.\n-\n-syntax = \"proto3\";\n-\n-package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\n-\n-option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\n-option java_multiple_files = false;\n-\n-message Map{\n-    map<string,string> attachments = 1;\n+// Licensed to the Apache Software Foundation (ASF) under one or more\r\n+// contributor license agreements.  See the NOTICE file distributed with\r\n+// this work for additional information regarding copyright ownership.\r\n+// The ASF licenses this file to You under the Apache License, Version 2.0\r\n+// (the \"License\"); you may not use this file except in compliance with\r\n+// the License.  You may obtain a copy of the License at\r\n+//\r\n+//     http://www.apache.org/licenses/LICENSE-2.0\r\n+//\r\n+// Unless required by applicable law or agreed to in writing, software\r\n+// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+// See the License for the specific language governing permissions and\r\n+// limitations under the License.\r\n+\r\n+// Messages used for transporting debug information between server and client.\r\n+\r\n+syntax = \"proto3\";\r\n+\r\n+package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\r\n+\r\n+option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\r\n+option java_multiple_files = false;\r\n+\r\n+message Map{\r\n+    map<string,string> attachments = 1;\r\n }\n"}, {"source1": "ThrowablePB.proto", "source2": "ThrowablePB.proto", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-// Licensed to the Apache Software Foundation (ASF) under one or more\n-// contributor license agreements.  See the NOTICE file distributed with\n-// this work for additional information regarding copyright ownership.\n-// The ASF licenses this file to You under the Apache License, Version 2.0\n-// (the \"License\"); you may not use this file except in compliance with\n-// the License.  You may obtain a copy of the License at\n-//\n-//     http://www.apache.org/licenses/LICENSE-2.0\n-//\n-// Unless required by applicable law or agreed to in writing, software\n-// distributed under the License is distributed on an \"AS IS\" BASIS,\n-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-// See the License for the specific language governing permissions and\n-// limitations under the License.\n-\n-// Messages used for transporting debug information between server and client.\n-\n-syntax = \"proto3\";\n-\n-package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\n-\n-option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\n-option java_multiple_files = false;\n-\n-// An element in a stack trace, based on the Java type of the same name.\n-//\n-// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n-message StackTraceElementProto {\n-    // The fully qualified name of the class containing the execution point\n-    // represented by the stack trace element.\n-    string class_name = 1;\n-\n-    // The name of the method containing the execution point represented by the\n-    // stack trace element\n-    string method_name = 2;\n-\n-    // The name of the file containing the execution point represented by the\n-    // stack trace element, or null if this information is unavailable.\n-    string file_name = 3;\n-\n-    // The line number of the source line containing the execution point represented\n-    // by this stack trace element, or a negative number if this information is\n-    // unavailable.\n-    int32 line_number = 4;\n-}\n-\n-// An exception that was thrown by some code, based on the Java type of the same name.\n-//\n-// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n-message ThrowableProto {\n-    // The name of the class of the exception that was actually thrown. Downstream readers\n-    // of this message may or may not have the actual class available to initialize, so\n-    // this is just used to prefix the message of a generic exception type.\n-    string original_class_name = 1;\n-\n-    // The message of this throwable. Not filled if there is no message.\n-    string original_message = 2;\n-\n-    // The stack trace of this Throwable.\n-    repeated StackTraceElementProto stack_trace = 3;\n-\n-    // The cause of this Throwable. Not filled if there is no cause.\n-    ThrowableProto cause = 4;\n-}\n+// Licensed to the Apache Software Foundation (ASF) under one or more\r\n+// contributor license agreements.  See the NOTICE file distributed with\r\n+// this work for additional information regarding copyright ownership.\r\n+// The ASF licenses this file to You under the Apache License, Version 2.0\r\n+// (the \"License\"); you may not use this file except in compliance with\r\n+// the License.  You may obtain a copy of the License at\r\n+//\r\n+//     http://www.apache.org/licenses/LICENSE-2.0\r\n+//\r\n+// Unless required by applicable law or agreed to in writing, software\r\n+// distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+// See the License for the specific language governing permissions and\r\n+// limitations under the License.\r\n+\r\n+// Messages used for transporting debug information between server and client.\r\n+\r\n+syntax = \"proto3\";\r\n+\r\n+package org.apache.dubbo.common.serialize.protobuf.support.wrapper;\r\n+\r\n+option java_package = \"org.apache.dubbo.common.serialize.protobuf.support.wrapper\";\r\n+option java_multiple_files = false;\r\n+\r\n+// An element in a stack trace, based on the Java type of the same name.\r\n+//\r\n+// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n+message StackTraceElementProto {\r\n+    // The fully qualified name of the class containing the execution point\r\n+    // represented by the stack trace element.\r\n+    string class_name = 1;\r\n+\r\n+    // The name of the method containing the execution point represented by the\r\n+    // stack trace element\r\n+    string method_name = 2;\r\n+\r\n+    // The name of the file containing the execution point represented by the\r\n+    // stack trace element, or null if this information is unavailable.\r\n+    string file_name = 3;\r\n+\r\n+    // The line number of the source line containing the execution point represented\r\n+    // by this stack trace element, or a negative number if this information is\r\n+    // unavailable.\r\n+    int32 line_number = 4;\r\n+}\r\n+\r\n+// An exception that was thrown by some code, based on the Java type of the same name.\r\n+//\r\n+// See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n+message ThrowableProto {\r\n+    // The name of the class of the exception that was actually thrown. Downstream readers\r\n+    // of this message may or may not have the actual class available to initialize, so\r\n+    // this is just used to prefix the message of a generic exception type.\r\n+    string original_class_name = 1;\r\n+\r\n+    // The message of this throwable. Not filled if there is no message.\r\n+    string original_message = 2;\r\n+\r\n+    // The stack trace of this Throwable.\r\n+    repeated StackTraceElementProto stack_trace = 3;\r\n+\r\n+    // The cause of this Throwable. Not filled if there is no cause.\r\n+    ThrowableProto cause = 4;\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/cache/support/AbstractCacheFactory.java", "source2": "com/alibaba/dubbo/cache/support/AbstractCacheFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.cache.support;\n-\n-import com.alibaba.dubbo.cache.Cache;\n-import com.alibaba.dubbo.cache.CacheFactory;\n-import com.alibaba.dubbo.common.URL;\n-import com.alibaba.dubbo.rpc.Invocation;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.METHOD_KEY;\n-\n-@Deprecated\n-public abstract class AbstractCacheFactory implements CacheFactory {\n-\n-    private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();\n-\n-    @Override\n-    public Cache getCache(URL url, Invocation invocation) {\n-        url = url.addParameter(METHOD_KEY, invocation.getMethodName());\n-        String key = url.toFullString();\n-        Cache cache = caches.get(key);\n-        if (cache == null) {\n-            caches.put(key, createCache(url));\n-            cache = caches.get(key);\n-        }\n-        return cache;\n-    }\n-\n-    protected abstract Cache createCache(URL url);\n-\n-    @Override\n-    public org.apache.dubbo.cache.Cache getCache(org.apache.dubbo.common.URL url, org.apache.dubbo.rpc.Invocation invocation) {\n-        return getCache(new URL(url), new Invocation.CompatibleInvocation(invocation));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.cache.support;\r\n+\r\n+import com.alibaba.dubbo.cache.Cache;\r\n+import com.alibaba.dubbo.cache.CacheFactory;\r\n+import com.alibaba.dubbo.common.URL;\r\n+import com.alibaba.dubbo.rpc.Invocation;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHOD_KEY;\r\n+\r\n+@Deprecated\r\n+public abstract class AbstractCacheFactory implements CacheFactory {\r\n+\r\n+    private final ConcurrentMap<String, Cache> caches = new ConcurrentHashMap<String, Cache>();\r\n+\r\n+    @Override\r\n+    public Cache getCache(URL url, Invocation invocation) {\r\n+        url = url.addParameter(METHOD_KEY, invocation.getMethodName());\r\n+        String key = url.toFullString();\r\n+        Cache cache = caches.get(key);\r\n+        if (cache == null) {\r\n+            caches.put(key, createCache(url));\r\n+            cache = caches.get(key);\r\n+        }\r\n+        return cache;\r\n+    }\r\n+\r\n+    protected abstract Cache createCache(URL url);\r\n+\r\n+    @Override\r\n+    public org.apache.dubbo.cache.Cache getCache(org.apache.dubbo.common.URL url, org.apache.dubbo.rpc.Invocation invocation) {\r\n+        return getCache(new URL(url), new Invocation.CompatibleInvocation(invocation));\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/common/Constants.java", "source2": "com/alibaba/dubbo/common/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.common;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.constants.FilterConstants;\n-import org.apache.dubbo.common.constants.QosConstants;\n-import org.apache.dubbo.common.constants.RegistryConstants;\n-import org.apache.dubbo.common.constants.RemotingConstants;\n-\n-@Deprecated\n-public class Constants implements CommonConstants,\n-        QosConstants,\n-        FilterConstants,\n-        RegistryConstants,\n-        RemotingConstants,\n-        org.apache.dubbo.config.Constants,\n-        org.apache.dubbo.remoting.Constants,\n-        org.apache.dubbo.rpc.cluster.Constants,\n-        org.apache.dubbo.monitor.Constants,\n-        org.apache.dubbo.rpc.Constants,\n-        org.apache.dubbo.rpc.protocol.dubbo.Constants,\n-        org.apache.dubbo.common.serialize.Constants,\n-        org.apache.dubbo.common.config.configcenter.Constants,\n-        org.apache.dubbo.metadata.report.support.Constants ,\n-        org.apache.dubbo.rpc.protocol.rest.Constants,\n-        org.apache.dubbo.registry.Constants {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.common;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.constants.FilterConstants;\r\n+import org.apache.dubbo.common.constants.QosConstants;\r\n+import org.apache.dubbo.common.constants.RegistryConstants;\r\n+import org.apache.dubbo.common.constants.RemotingConstants;\r\n+\r\n+@Deprecated\r\n+public class Constants implements CommonConstants,\r\n+        QosConstants,\r\n+        FilterConstants,\r\n+        RegistryConstants,\r\n+        RemotingConstants,\r\n+        org.apache.dubbo.config.Constants,\r\n+        org.apache.dubbo.remoting.Constants,\r\n+        org.apache.dubbo.rpc.cluster.Constants,\r\n+        org.apache.dubbo.monitor.Constants,\r\n+        org.apache.dubbo.rpc.Constants,\r\n+        org.apache.dubbo.rpc.protocol.dubbo.Constants,\r\n+        org.apache.dubbo.common.serialize.Constants,\r\n+        org.apache.dubbo.common.config.configcenter.Constants,\r\n+        org.apache.dubbo.metadata.report.support.Constants ,\r\n+        org.apache.dubbo.rpc.protocol.rest.Constants,\r\n+        org.apache.dubbo.registry.Constants {\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/common/extension/ExtensionFactory.java", "source2": "com/alibaba/dubbo/common/extension/ExtensionFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.common.extension;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@Deprecated\n-@SPI\n-public interface ExtensionFactory extends org.apache.dubbo.common.extension.ExtensionFactory {\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.common.extension;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@Deprecated\r\n+@SPI\r\n+public interface ExtensionFactory extends org.apache.dubbo.common.extension.ExtensionFactory {\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/common/utils/UrlUtils.java", "source2": "com/alibaba/dubbo/common/utils/UrlUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,110 +1,110 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.common.utils;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-/**\n- * 2019-04-17\n- */\n-@Deprecated\n-public class UrlUtils {\n-\n-    public static URL parseURL(String address, Map<String, String> defaults) {\n-        return new URL(org.apache.dubbo.common.utils.UrlUtils.parseURL(address, defaults));\n-    }\n-\n-    public static List<URL> parseURLs(String address, Map<String, String> defaults) {\n-        return org.apache.dubbo.common.utils.UrlUtils.parseURLs(address, defaults).stream().map(e -> new URL(e)).collect(Collectors.toList());\n-    }\n-\n-    public static Map<String, Map<String, String>> convertRegister(Map<String, Map<String, String>> register) {\n-        return org.apache.dubbo.common.utils.UrlUtils.convertRegister(register);\n-    }\n-\n-    public static Map<String, String> convertSubscribe(Map<String, String> subscribe) {\n-        return org.apache.dubbo.common.utils.UrlUtils.convertSubscribe(subscribe);\n-    }\n-\n-    public static Map<String, Map<String, String>> revertRegister(Map<String, Map<String, String>> register) {\n-        return org.apache.dubbo.common.utils.UrlUtils.revertRegister(register);\n-    }\n-\n-    public static Map<String, String> revertSubscribe(Map<String, String> subscribe) {\n-        return org.apache.dubbo.common.utils.UrlUtils.revertSubscribe(subscribe);\n-    }\n-\n-    public static Map<String, Map<String, String>> revertNotify(Map<String, Map<String, String>> notify) {\n-        return org.apache.dubbo.common.utils.UrlUtils.revertNotify(notify);\n-    }\n-\n-    //compatible for dubbo-2.0.0\n-    public static List<String> revertForbid(List<String> forbid, Set<URL> subscribed) {\n-        Set<org.apache.dubbo.common.URL> urls = subscribed.stream().map(e -> e.getOriginalURL()).collect(Collectors.toSet());\n-        return org.apache.dubbo.common.utils.UrlUtils.revertForbid(forbid, urls);\n-    }\n-\n-    public static URL getEmptyUrl(String service, String category) {\n-        return new URL(org.apache.dubbo.common.utils.UrlUtils.getEmptyUrl(service, category));\n-    }\n-\n-    public static boolean isMatchCategory(String category, String categories) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isMatchCategory(category, categories);\n-    }\n-\n-    public static boolean isMatch(URL consumerUrl, URL providerUrl) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isMatch(consumerUrl.getOriginalURL(), providerUrl.getOriginalURL());\n-    }\n-\n-    public static boolean isMatchGlobPattern(String pattern, String value, URL param) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value, param.getOriginalURL());\n-    }\n-\n-    public static boolean isMatchGlobPattern(String pattern, String value) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value);\n-    }\n-\n-    public static boolean isServiceKeyMatch(URL pattern, URL value) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isServiceKeyMatch(pattern.getOriginalURL(), value.getOriginalURL());\n-    }\n-\n-\n-    public static boolean isConfigurator(URL url) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isConfigurator(url.getOriginalURL());\n-    }\n-\n-    public static boolean isRoute(URL url) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isRoute(url.getOriginalURL());\n-    }\n-\n-    public static boolean isProvider(URL url) {\n-        return org.apache.dubbo.common.utils.UrlUtils.isProvider(url.getOriginalURL());\n-    }\n-\n-    public static int getHeartbeat(URL url) {\n-        return org.apache.dubbo.remoting.utils.UrlUtils.getHeartbeat(url.getOriginalURL());\n-    }\n-\n-    public static int getIdleTimeout(URL url) {\n-        return org.apache.dubbo.remoting.utils.UrlUtils.getIdleTimeout(url.getOriginalURL());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.common.utils;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * 2019-04-17\r\n+ */\r\n+@Deprecated\r\n+public class UrlUtils {\r\n+\r\n+    public static URL parseURL(String address, Map<String, String> defaults) {\r\n+        return new URL(org.apache.dubbo.common.utils.UrlUtils.parseURL(address, defaults));\r\n+    }\r\n+\r\n+    public static List<URL> parseURLs(String address, Map<String, String> defaults) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.parseURLs(address, defaults).stream().map(e -> new URL(e)).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public static Map<String, Map<String, String>> convertRegister(Map<String, Map<String, String>> register) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.convertRegister(register);\r\n+    }\r\n+\r\n+    public static Map<String, String> convertSubscribe(Map<String, String> subscribe) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.convertSubscribe(subscribe);\r\n+    }\r\n+\r\n+    public static Map<String, Map<String, String>> revertRegister(Map<String, Map<String, String>> register) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.revertRegister(register);\r\n+    }\r\n+\r\n+    public static Map<String, String> revertSubscribe(Map<String, String> subscribe) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.revertSubscribe(subscribe);\r\n+    }\r\n+\r\n+    public static Map<String, Map<String, String>> revertNotify(Map<String, Map<String, String>> notify) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.revertNotify(notify);\r\n+    }\r\n+\r\n+    //compatible for dubbo-2.0.0\r\n+    public static List<String> revertForbid(List<String> forbid, Set<URL> subscribed) {\r\n+        Set<org.apache.dubbo.common.URL> urls = subscribed.stream().map(e -> e.getOriginalURL()).collect(Collectors.toSet());\r\n+        return org.apache.dubbo.common.utils.UrlUtils.revertForbid(forbid, urls);\r\n+    }\r\n+\r\n+    public static URL getEmptyUrl(String service, String category) {\r\n+        return new URL(org.apache.dubbo.common.utils.UrlUtils.getEmptyUrl(service, category));\r\n+    }\r\n+\r\n+    public static boolean isMatchCategory(String category, String categories) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isMatchCategory(category, categories);\r\n+    }\r\n+\r\n+    public static boolean isMatch(URL consumerUrl, URL providerUrl) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isMatch(consumerUrl.getOriginalURL(), providerUrl.getOriginalURL());\r\n+    }\r\n+\r\n+    public static boolean isMatchGlobPattern(String pattern, String value, URL param) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value, param.getOriginalURL());\r\n+    }\r\n+\r\n+    public static boolean isMatchGlobPattern(String pattern, String value) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isMatchGlobPattern(pattern, value);\r\n+    }\r\n+\r\n+    public static boolean isServiceKeyMatch(URL pattern, URL value) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isServiceKeyMatch(pattern.getOriginalURL(), value.getOriginalURL());\r\n+    }\r\n+\r\n+\r\n+    public static boolean isConfigurator(URL url) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isConfigurator(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public static boolean isRoute(URL url) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isRoute(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public static boolean isProvider(URL url) {\r\n+        return org.apache.dubbo.common.utils.UrlUtils.isProvider(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public static int getHeartbeat(URL url) {\r\n+        return org.apache.dubbo.remoting.utils.UrlUtils.getHeartbeat(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public static int getIdleTimeout(URL url) {\r\n+        return org.apache.dubbo.remoting.utils.UrlUtils.getIdleTimeout(url.getOriginalURL());\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/config/ReferenceConfig.java", "source2": "com/alibaba/dubbo/config/ReferenceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.config;\n-\n-import org.apache.dubbo.config.annotation.Reference;\n-\n-@Deprecated\n-public class ReferenceConfig<T> extends org.apache.dubbo.config.ReferenceConfig<T> {\n-\n-    public ReferenceConfig() {\n-    }\n-\n-    public ReferenceConfig(Reference reference) {\n-        super(reference);\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.config;\r\n+\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+\r\n+@Deprecated\r\n+public class ReferenceConfig<T> extends org.apache.dubbo.config.ReferenceConfig<T> {\r\n+\r\n+    public ReferenceConfig() {\r\n+    }\r\n+\r\n+    public ReferenceConfig(Reference reference) {\r\n+        super(reference);\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/config/annotation/Reference.java", "source2": "com/alibaba/dubbo/config/annotation/Reference.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,113 +1,113 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.config.annotation;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-@Deprecated\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\n-public @interface Reference {\n-\n-    Class<?> interfaceClass() default void.class;\n-\n-    String interfaceName() default \"\";\n-\n-    String version() default \"\";\n-\n-    String group() default \"\";\n-\n-    String url() default \"\";\n-\n-    String client() default \"\";\n-\n-    boolean generic() default false;\n-\n-    boolean injvm() default true;\n-\n-    boolean check() default true;\n-\n-    boolean init() default false;\n-\n-    boolean lazy() default false;\n-\n-    boolean stubevent() default false;\n-\n-    String reconnect() default \"\";\n-\n-    boolean sticky() default false;\n-\n-    String proxy() default \"\";\n-\n-    String stub() default \"\";\n-\n-    String cluster() default \"\";\n-\n-    int connections() default 0;\n-\n-    int callbacks() default 0;\n-\n-    String onconnect() default \"\";\n-\n-    String ondisconnect() default \"\";\n-\n-    String owner() default \"\";\n-\n-    String layer() default \"\";\n-\n-    int retries() default 2;\n-\n-    String loadbalance() default \"\";\n-\n-    boolean async() default false;\n-\n-    int actives() default 0;\n-\n-    boolean sent() default false;\n-\n-    String mock() default \"\";\n-\n-    String validation() default \"\";\n-\n-    int timeout() default 0;\n-\n-    String cache() default \"\";\n-\n-    String[] filter() default {};\n-\n-    String[] listener() default {};\n-\n-    String[] parameters() default {};\n-\n-    String application() default \"\";\n-\n-    String module() default \"\";\n-\n-    String consumer() default \"\";\n-\n-    String monitor() default \"\";\n-\n-    String[] registry() default {};\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.config.annotation;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+@Deprecated\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\r\n+public @interface Reference {\r\n+\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    String interfaceName() default \"\";\r\n+\r\n+    String version() default \"\";\r\n+\r\n+    String group() default \"\";\r\n+\r\n+    String url() default \"\";\r\n+\r\n+    String client() default \"\";\r\n+\r\n+    boolean generic() default false;\r\n+\r\n+    boolean injvm() default true;\r\n+\r\n+    boolean check() default true;\r\n+\r\n+    boolean init() default false;\r\n+\r\n+    boolean lazy() default false;\r\n+\r\n+    boolean stubevent() default false;\r\n+\r\n+    String reconnect() default \"\";\r\n+\r\n+    boolean sticky() default false;\r\n+\r\n+    String proxy() default \"\";\r\n+\r\n+    String stub() default \"\";\r\n+\r\n+    String cluster() default \"\";\r\n+\r\n+    int connections() default 0;\r\n+\r\n+    int callbacks() default 0;\r\n+\r\n+    String onconnect() default \"\";\r\n+\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    String owner() default \"\";\r\n+\r\n+    String layer() default \"\";\r\n+\r\n+    int retries() default 2;\r\n+\r\n+    String loadbalance() default \"\";\r\n+\r\n+    boolean async() default false;\r\n+\r\n+    int actives() default 0;\r\n+\r\n+    boolean sent() default false;\r\n+\r\n+    String mock() default \"\";\r\n+\r\n+    String validation() default \"\";\r\n+\r\n+    int timeout() default 0;\r\n+\r\n+    String cache() default \"\";\r\n+\r\n+    String[] filter() default {};\r\n+\r\n+    String[] listener() default {};\r\n+\r\n+    String[] parameters() default {};\r\n+\r\n+    String application() default \"\";\r\n+\r\n+    String module() default \"\";\r\n+\r\n+    String consumer() default \"\";\r\n+\r\n+    String monitor() default \"\";\r\n+\r\n+    String[] registry() default {};\r\n+\r\n+}\r\n+\r\n"}, {"source1": "com/alibaba/dubbo/config/annotation/Service.java", "source2": "com/alibaba/dubbo/config/annotation/Service.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,120 +1,120 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.config.annotation;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-@Deprecated\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.TYPE})\n-@Inherited\n-public @interface Service {\n-\n-    Class<?> interfaceClass() default void.class;\n-\n-    String interfaceName() default \"\";\n-\n-    String version() default \"\";\n-\n-    String group() default \"\";\n-\n-    String path() default \"\";\n-\n-    boolean export() default false;\n-\n-    String token() default \"\";\n-\n-    boolean deprecated() default false;\n-\n-    boolean dynamic() default true;\n-\n-    String accesslog() default \"\";\n-\n-    int executes() default 0;\n-\n-    boolean register() default false;\n-\n-    int weight() default 0;\n-\n-    String document() default \"\";\n-\n-    int delay() default 0;\n-\n-    String local() default \"\";\n-\n-    String stub() default \"\";\n-\n-    String cluster() default \"\";\n-\n-    String proxy() default \"\";\n-\n-    int connections() default 0;\n-\n-    int callbacks() default 0;\n-\n-    String onconnect() default \"\";\n-\n-    String ondisconnect() default \"\";\n-\n-    String owner() default \"\";\n-\n-    String layer() default \"\";\n-\n-    int retries() default 0;\n-\n-    String loadbalance() default \"\";\n-\n-    boolean async() default false;\n-\n-    int actives() default 0;\n-\n-    boolean sent() default false;\n-\n-    String mock() default \"\";\n-\n-    String validation() default \"\";\n-\n-    int timeout() default 0;\n-\n-    String cache() default \"\";\n-\n-    String[] filter() default {};\n-\n-    String[] listener() default {};\n-\n-    String[] parameters() default {};\n-\n-    String application() default \"\";\n-\n-    String module() default \"\";\n-\n-    String provider() default \"\";\n-\n-    String[] protocol() default {};\n-\n-    String monitor() default \"\";\n-\n-    String[] registry() default {};\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.config.annotation;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+@Deprecated\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.TYPE})\r\n+@Inherited\r\n+public @interface Service {\r\n+\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    String interfaceName() default \"\";\r\n+\r\n+    String version() default \"\";\r\n+\r\n+    String group() default \"\";\r\n+\r\n+    String path() default \"\";\r\n+\r\n+    boolean export() default false;\r\n+\r\n+    String token() default \"\";\r\n+\r\n+    boolean deprecated() default false;\r\n+\r\n+    boolean dynamic() default true;\r\n+\r\n+    String accesslog() default \"\";\r\n+\r\n+    int executes() default 0;\r\n+\r\n+    boolean register() default false;\r\n+\r\n+    int weight() default 0;\r\n+\r\n+    String document() default \"\";\r\n+\r\n+    int delay() default 0;\r\n+\r\n+    String local() default \"\";\r\n+\r\n+    String stub() default \"\";\r\n+\r\n+    String cluster() default \"\";\r\n+\r\n+    String proxy() default \"\";\r\n+\r\n+    int connections() default 0;\r\n+\r\n+    int callbacks() default 0;\r\n+\r\n+    String onconnect() default \"\";\r\n+\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    String owner() default \"\";\r\n+\r\n+    String layer() default \"\";\r\n+\r\n+    int retries() default 0;\r\n+\r\n+    String loadbalance() default \"\";\r\n+\r\n+    boolean async() default false;\r\n+\r\n+    int actives() default 0;\r\n+\r\n+    boolean sent() default false;\r\n+\r\n+    String mock() default \"\";\r\n+\r\n+    String validation() default \"\";\r\n+\r\n+    int timeout() default 0;\r\n+\r\n+    String cache() default \"\";\r\n+\r\n+    String[] filter() default {};\r\n+\r\n+    String[] listener() default {};\r\n+\r\n+    String[] parameters() default {};\r\n+\r\n+    String application() default \"\";\r\n+\r\n+    String module() default \"\";\r\n+\r\n+    String provider() default \"\";\r\n+\r\n+    String[] protocol() default {};\r\n+\r\n+    String monitor() default \"\";\r\n+\r\n+    String[] registry() default {};\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java", "source2": "com/alibaba/dubbo/config/spring/context/annotation/EnableDubbo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,75 +1,75 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.spring.context.annotation.DubboComponentScan;\n-import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;\n-\n-import org.springframework.core.annotation.AliasFor;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-@Deprecated\n-@Target({ElementType.TYPE})\n-@Retention(RetentionPolicy.RUNTIME)\n-@Inherited\n-@Documented\n-@EnableDubboConfig\n-@DubboComponentScan\n-public @interface EnableDubbo {\n-\n-    /**\n-     * Base packages to scan for annotated @Service classes.\n-     * <p>\n-     * Use {@link #scanBasePackageClasses()} for a type-safe alternative to String-based\n-     * package names.\n-     *\n-     * @return the base packages to scan\n-     * @see DubboComponentScan#basePackages()\n-     */\n-    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackages\")\n-    String[] scanBasePackages() default {};\n-\n-    /**\n-     * Type-safe alternative to {@link #scanBasePackages()} for specifying the packages to\n-     * scan for annotated @Service classes. The package of each class specified will be\n-     * scanned.\n-     *\n-     * @return classes from the base packages to scan\n-     * @see DubboComponentScan#basePackageClasses\n-     */\n-    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackageClasses\")\n-    Class<?>[] scanBasePackageClasses() default {};\n-\n-\n-    /**\n-     * It indicates whether {@link AbstractConfig} binding to multiple Spring Beans.\n-     *\n-     * @return the default value is <code>false</code>\n-     * @see EnableDubboConfig#multiple()\n-     */\n-    @AliasFor(annotation = EnableDubboConfig.class, attribute = \"multiple\")\n-    boolean multipleConfig() default false;\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.spring.context.annotation.DubboComponentScan;\r\n+import org.apache.dubbo.config.spring.context.annotation.EnableDubboConfig;\r\n+\r\n+import org.springframework.core.annotation.AliasFor;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+@Deprecated\r\n+@Target({ElementType.TYPE})\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Inherited\r\n+@Documented\r\n+@EnableDubboConfig\r\n+@DubboComponentScan\r\n+public @interface EnableDubbo {\r\n+\r\n+    /**\r\n+     * Base packages to scan for annotated @Service classes.\r\n+     * <p>\r\n+     * Use {@link #scanBasePackageClasses()} for a type-safe alternative to String-based\r\n+     * package names.\r\n+     *\r\n+     * @return the base packages to scan\r\n+     * @see DubboComponentScan#basePackages()\r\n+     */\r\n+    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackages\")\r\n+    String[] scanBasePackages() default {};\r\n+\r\n+    /**\r\n+     * Type-safe alternative to {@link #scanBasePackages()} for specifying the packages to\r\n+     * scan for annotated @Service classes. The package of each class specified will be\r\n+     * scanned.\r\n+     *\r\n+     * @return classes from the base packages to scan\r\n+     * @see DubboComponentScan#basePackageClasses\r\n+     */\r\n+    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackageClasses\")\r\n+    Class<?>[] scanBasePackageClasses() default {};\r\n+\r\n+\r\n+    /**\r\n+     * It indicates whether {@link AbstractConfig} binding to multiple Spring Beans.\r\n+     *\r\n+     * @return the default value is <code>false</code>\r\n+     * @see EnableDubboConfig#multiple()\r\n+     */\r\n+    @AliasFor(annotation = EnableDubboConfig.class, attribute = \"multiple\")\r\n+    boolean multipleConfig() default false;\r\n+\r\n }\n"}, {"source1": "com/alibaba/dubbo/registry/NotifyListener.java", "source2": "com/alibaba/dubbo/registry/NotifyListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.registry;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-@Deprecated\n-public interface NotifyListener {\n-\n-    void notify(List<URL> urls);\n-\n-    class CompatibleNotifyListener implements NotifyListener {\n-\n-        private org.apache.dubbo.registry.NotifyListener listener;\n-\n-        public CompatibleNotifyListener(org.apache.dubbo.registry.NotifyListener listener) {\n-            this.listener = listener;\n-        }\n-\n-        @Override\n-        public void notify(List<URL> urls) {\n-            if (listener != null) {\n-                listener.notify(urls.stream().map(url -> url.getOriginalURL()).collect(Collectors.toList()));\n-            }\n-        }\n-    }\n-\n-    class ReverseCompatibleNotifyListener implements org.apache.dubbo.registry.NotifyListener {\n-\n-        private NotifyListener listener;\n-\n-        public ReverseCompatibleNotifyListener(NotifyListener listener) {\n-            this.listener = listener;\n-        }\n-\n-        @Override\n-        public void notify(List<org.apache.dubbo.common.URL> urls) {\n-            if (listener != null) {\n-                listener.notify(urls.stream().map(url -> new URL(url)).collect(Collectors.toList()));\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.registry;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+@Deprecated\r\n+public interface NotifyListener {\r\n+\r\n+    void notify(List<URL> urls);\r\n+\r\n+    class CompatibleNotifyListener implements NotifyListener {\r\n+\r\n+        private org.apache.dubbo.registry.NotifyListener listener;\r\n+\r\n+        public CompatibleNotifyListener(org.apache.dubbo.registry.NotifyListener listener) {\r\n+            this.listener = listener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(List<URL> urls) {\r\n+            if (listener != null) {\r\n+                listener.notify(urls.stream().map(url -> url.getOriginalURL()).collect(Collectors.toList()));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    class ReverseCompatibleNotifyListener implements org.apache.dubbo.registry.NotifyListener {\r\n+\r\n+        private NotifyListener listener;\r\n+\r\n+        public ReverseCompatibleNotifyListener(NotifyListener listener) {\r\n+            this.listener = listener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(List<org.apache.dubbo.common.URL> urls) {\r\n+            if (listener != null) {\r\n+                listener.notify(urls.stream().map(url -> new URL(url)).collect(Collectors.toList()));\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/registry/support/AbstractRegistry.java", "source2": "com/alibaba/dubbo/registry/support/AbstractRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,147 +1,147 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.registry.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-/**\n- * 2019-04-16\n- */\n-@Deprecated\n-public abstract class AbstractRegistry implements Registry {\n-\n-    private CompatibleAbstractRegistry abstractRegistry;\n-\n-    public AbstractRegistry(com.alibaba.dubbo.common.URL url) {\n-        abstractRegistry = new CompatibleAbstractRegistry(url.getOriginalURL());\n-    }\n-\n-    @Override\n-    public com.alibaba.dubbo.common.URL getUrl() {\n-        return new com.alibaba.dubbo.common.URL(abstractRegistry.getUrl());\n-    }\n-\n-    protected void setUrl(com.alibaba.dubbo.common.URL url) {\n-        abstractRegistry.setUrl(url.getOriginalURL());\n-    }\n-\n-    public Set<com.alibaba.dubbo.common.URL> getRegistered() {\n-        return abstractRegistry.getRegistered().stream().map(url -> new com.alibaba.dubbo.common.URL(url)).collect(Collectors.toSet());\n-    }\n-\n-    public Map<com.alibaba.dubbo.common.URL, Set<com.alibaba.dubbo.registry.NotifyListener>> getSubscribed() {\n-        return abstractRegistry.getSubscribed().entrySet()\n-                .stream()\n-                .collect(Collectors.toMap(entry -> new com.alibaba.dubbo.common.URL(entry.getKey()),\n-                        entry -> convertToNotifyListeners(entry.getValue())));\n-    }\n-\n-    public Map<com.alibaba.dubbo.common.URL, Map<String, List<com.alibaba.dubbo.common.URL>>> getNotified() {\n-        return abstractRegistry.getNotified().entrySet().stream()\n-                .collect(Collectors.toMap(entry -> new com.alibaba.dubbo.common.URL(entry.getKey()),\n-                        entry -> {\n-                            return entry.getValue().entrySet()\n-                                    .stream()\n-                                    .collect(Collectors.toMap(e -> e.getKey(), e -> {\n-                                        return e.getValue().stream().map(url -> new com.alibaba.dubbo.common.URL(url)).collect(Collectors.toList());\n-                                    }));\n-                        }));\n-    }\n-\n-\n-    public List<com.alibaba.dubbo.common.URL> getCacheUrls(com.alibaba.dubbo.common.URL url) {\n-        return abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());\n-    }\n-\n-    public List<com.alibaba.dubbo.common.URL> lookup(com.alibaba.dubbo.common.URL url) {\n-        return abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());\n-    }\n-\n-    protected void notify(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener, List<com.alibaba.dubbo.common.URL> urls) {\n-        abstractRegistry.notify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urls.stream().map(tmpUrl -> tmpUrl.getOriginalURL()).collect(Collectors.toList()));\n-    }\n-\n-    public void register(com.alibaba.dubbo.common.URL url) {\n-        abstractRegistry.register(url.getOriginalURL());\n-    }\n-\n-    public void unregister(com.alibaba.dubbo.common.URL url) {\n-        abstractRegistry.unregister(url.getOriginalURL());\n-    }\n-\n-    public void subscribe(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener) {\n-        abstractRegistry.subscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-    public void unsubscribe(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener) {\n-        abstractRegistry.unsubscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-\n-    @Override\n-    public void register(URL url) {\n-        this.register(new com.alibaba.dubbo.common.URL(url));\n-    }\n-\n-    @Override\n-    public void unregister(URL url) {\n-        this.unregister(new com.alibaba.dubbo.common.URL(url));\n-    }\n-\n-    @Override\n-    public void subscribe(URL url, NotifyListener listener) {\n-        this.subscribe(new com.alibaba.dubbo.common.URL(url), new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));\n-    }\n-\n-    @Override\n-    public void unsubscribe(URL url, NotifyListener listener) {\n-        this.unsubscribe(new com.alibaba.dubbo.common.URL(url), new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));\n-    }\n-\n-    final Set<com.alibaba.dubbo.registry.NotifyListener> convertToNotifyListeners(Set<NotifyListener> notifyListeners) {\n-        return notifyListeners.stream().map(listener -> new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener)).collect(Collectors.toSet());\n-    }\n-\n-\n-    static class CompatibleAbstractRegistry extends org.apache.dubbo.registry.support.AbstractRegistry {\n-        public CompatibleAbstractRegistry(URL url) {\n-            super(url);\n-        }\n-\n-        @Override\n-        public boolean isAvailable() {\n-            return false;\n-        }\n-\n-        @Override\n-        public void notify(URL url, NotifyListener listener, List<URL> urls) {\n-            super.notify(url, listener, urls);\n-        }\n-\n-        @Override\n-        public void setUrl(URL url) {\n-            super.setUrl(url);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.registry.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * 2019-04-16\r\n+ */\r\n+@Deprecated\r\n+public abstract class AbstractRegistry implements Registry {\r\n+\r\n+    private CompatibleAbstractRegistry abstractRegistry;\r\n+\r\n+    public AbstractRegistry(com.alibaba.dubbo.common.URL url) {\r\n+        abstractRegistry = new CompatibleAbstractRegistry(url.getOriginalURL());\r\n+    }\r\n+\r\n+    @Override\r\n+    public com.alibaba.dubbo.common.URL getUrl() {\r\n+        return new com.alibaba.dubbo.common.URL(abstractRegistry.getUrl());\r\n+    }\r\n+\r\n+    protected void setUrl(com.alibaba.dubbo.common.URL url) {\r\n+        abstractRegistry.setUrl(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public Set<com.alibaba.dubbo.common.URL> getRegistered() {\r\n+        return abstractRegistry.getRegistered().stream().map(url -> new com.alibaba.dubbo.common.URL(url)).collect(Collectors.toSet());\r\n+    }\r\n+\r\n+    public Map<com.alibaba.dubbo.common.URL, Set<com.alibaba.dubbo.registry.NotifyListener>> getSubscribed() {\r\n+        return abstractRegistry.getSubscribed().entrySet()\r\n+                .stream()\r\n+                .collect(Collectors.toMap(entry -> new com.alibaba.dubbo.common.URL(entry.getKey()),\r\n+                        entry -> convertToNotifyListeners(entry.getValue())));\r\n+    }\r\n+\r\n+    public Map<com.alibaba.dubbo.common.URL, Map<String, List<com.alibaba.dubbo.common.URL>>> getNotified() {\r\n+        return abstractRegistry.getNotified().entrySet().stream()\r\n+                .collect(Collectors.toMap(entry -> new com.alibaba.dubbo.common.URL(entry.getKey()),\r\n+                        entry -> {\r\n+                            return entry.getValue().entrySet()\r\n+                                    .stream()\r\n+                                    .collect(Collectors.toMap(e -> e.getKey(), e -> {\r\n+                                        return e.getValue().stream().map(url -> new com.alibaba.dubbo.common.URL(url)).collect(Collectors.toList());\r\n+                                    }));\r\n+                        }));\r\n+    }\r\n+\r\n+\r\n+    public List<com.alibaba.dubbo.common.URL> getCacheUrls(com.alibaba.dubbo.common.URL url) {\r\n+        return abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public List<com.alibaba.dubbo.common.URL> lookup(com.alibaba.dubbo.common.URL url) {\r\n+        return abstractRegistry.lookup(url.getOriginalURL()).stream().map(tmpUrl -> new com.alibaba.dubbo.common.URL(tmpUrl)).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    protected void notify(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener, List<com.alibaba.dubbo.common.URL> urls) {\r\n+        abstractRegistry.notify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urls.stream().map(tmpUrl -> tmpUrl.getOriginalURL()).collect(Collectors.toList()));\r\n+    }\r\n+\r\n+    public void register(com.alibaba.dubbo.common.URL url) {\r\n+        abstractRegistry.register(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public void unregister(com.alibaba.dubbo.common.URL url) {\r\n+        abstractRegistry.unregister(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public void subscribe(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener) {\r\n+        abstractRegistry.subscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    public void unsubscribe(com.alibaba.dubbo.common.URL url, com.alibaba.dubbo.registry.NotifyListener listener) {\r\n+        abstractRegistry.unsubscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void register(URL url) {\r\n+        this.register(new com.alibaba.dubbo.common.URL(url));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(URL url) {\r\n+        this.unregister(new com.alibaba.dubbo.common.URL(url));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(URL url, NotifyListener listener) {\r\n+        this.subscribe(new com.alibaba.dubbo.common.URL(url), new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(URL url, NotifyListener listener) {\r\n+        this.unsubscribe(new com.alibaba.dubbo.common.URL(url), new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    final Set<com.alibaba.dubbo.registry.NotifyListener> convertToNotifyListeners(Set<NotifyListener> notifyListeners) {\r\n+        return notifyListeners.stream().map(listener -> new com.alibaba.dubbo.registry.NotifyListener.CompatibleNotifyListener(listener)).collect(Collectors.toSet());\r\n+    }\r\n+\r\n+\r\n+    static class CompatibleAbstractRegistry extends org.apache.dubbo.registry.support.AbstractRegistry {\r\n+        public CompatibleAbstractRegistry(URL url) {\r\n+            super(url);\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isAvailable() {\r\n+            return false;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(URL url, NotifyListener listener, List<URL> urls) {\r\n+            super.notify(url, listener, urls);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setUrl(URL url) {\r\n+            super.setUrl(url);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java", "source2": "com/alibaba/dubbo/registry/support/AbstractRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.registry.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-\n-/**\n- * 2019-04-16\n- */\n-@Deprecated\n-public abstract class AbstractRegistryFactory extends org.apache.dubbo.registry.support.AbstractRegistryFactory {\n-\n-\n-    protected abstract com.alibaba.dubbo.registry.Registry createRegistry(com.alibaba.dubbo.common.URL url);\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        return createRegistry(new com.alibaba.dubbo.common.URL(url));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.registry.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+\r\n+/**\r\n+ * 2019-04-16\r\n+ */\r\n+@Deprecated\r\n+public abstract class AbstractRegistryFactory extends org.apache.dubbo.registry.support.AbstractRegistryFactory {\r\n+\r\n+\r\n+    protected abstract com.alibaba.dubbo.registry.Registry createRegistry(com.alibaba.dubbo.common.URL url);\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        return createRegistry(new com.alibaba.dubbo.common.URL(url));\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/registry/support/FailbackRegistry.java", "source2": "com/alibaba/dubbo/registry/support/FailbackRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,189 +1,189 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.registry.support;\n-\n-import com.alibaba.dubbo.common.URL;\n-import com.alibaba.dubbo.registry.NotifyListener;\n-import com.alibaba.dubbo.registry.Registry;\n-\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-/**\n- * 2019-04-17\n- */\n-@Deprecated\n-public abstract class FailbackRegistry implements org.apache.dubbo.registry.Registry, Registry {\n-\n-    private CompatibleFailbackRegistry failbackRegistry;\n-\n-    public FailbackRegistry(URL url) {\n-        failbackRegistry = new CompatibleFailbackRegistry(url.getOriginalURL(), this);\n-    }\n-\n-    public void removeFailedRegisteredTask(URL url) {\n-        failbackRegistry.removeFailedRegisteredTask(url.getOriginalURL());\n-    }\n-\n-    public void removeFailedUnregisteredTask(URL url) {\n-        failbackRegistry.removeFailedUnregisteredTask(url.getOriginalURL());\n-    }\n-\n-    public void removeFailedSubscribedTask(URL url, NotifyListener listener) {\n-        failbackRegistry.removeFailedSubscribedTask(url.getOriginalURL(), new NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-    public void removeFailedUnsubscribedTask(URL url, NotifyListener listener) {\n-        failbackRegistry.removeFailedUnsubscribedTask(url.getOriginalURL(), new NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-    @Override\n-    public void register(URL url) {\n-        failbackRegistry.register(url.getOriginalURL());\n-    }\n-\n-    @Override\n-    public void unregister(URL url) {\n-        failbackRegistry.unregister(url.getOriginalURL());\n-    }\n-\n-    @Override\n-    public void subscribe(URL url, NotifyListener listener) {\n-        failbackRegistry.subscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-    @Override\n-    public void unsubscribe(URL url, NotifyListener listener) {\n-        failbackRegistry.unsubscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\n-    }\n-\n-    protected void notify(URL url, NotifyListener listener, List<URL> urls) {\n-        List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(URL::getOriginalURL).collect(Collectors.toList());\n-        failbackRegistry.notify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urlResult);\n-    }\n-\n-    protected void doNotify(URL url, NotifyListener listener, List<URL> urls) {\n-        List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(URL::getOriginalURL).collect(Collectors.toList());\n-        failbackRegistry.doNotify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urlResult);\n-    }\n-\n-    protected void recover() throws Exception {\n-        failbackRegistry.recover();\n-    }\n-\n-    @Override\n-    public List<URL> lookup(URL url) {\n-        return failbackRegistry.lookup(url.getOriginalURL()).stream().map(e -> new URL(e)).collect(Collectors.toList());\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return new URL(failbackRegistry.getUrl());\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        failbackRegistry.destroy();\n-    }\n-\n-    // ==== Template method ====\n-\n-    public abstract void doRegister(URL url);\n-\n-    public abstract void doUnregister(URL url);\n-\n-    public abstract void doSubscribe(URL url, NotifyListener listener);\n-\n-    public abstract void doUnsubscribe(URL url, NotifyListener listener);\n-\n-    @Override\n-    public void register(org.apache.dubbo.common.URL url) {\n-        this.register(new URL(url));\n-    }\n-\n-    @Override\n-    public void unregister(org.apache.dubbo.common.URL url) {\n-        this.unregister(new URL(url));\n-    }\n-\n-    @Override\n-    public void subscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\n-        this.subscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\n-    }\n-\n-    @Override\n-    public void unsubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\n-        this.unsubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\n-    }\n-\n-    @Override\n-    public List<org.apache.dubbo.common.URL> lookup(org.apache.dubbo.common.URL url) {\n-        return failbackRegistry.lookup(url);\n-    }\n-\n-\n-    static class CompatibleFailbackRegistry extends org.apache.dubbo.registry.support.FailbackRegistry {\n-\n-        private FailbackRegistry compatibleFailbackRegistry;\n-\n-        public CompatibleFailbackRegistry(org.apache.dubbo.common.URL url, FailbackRegistry compatibleFailbackRegistry) {\n-            super(url);\n-            this.compatibleFailbackRegistry = compatibleFailbackRegistry;\n-        }\n-\n-        @Override\n-        public void doRegister(org.apache.dubbo.common.URL url) {\n-            this.compatibleFailbackRegistry.doRegister(new URL(url));\n-        }\n-\n-        @Override\n-        public void doUnregister(org.apache.dubbo.common.URL url) {\n-            this.compatibleFailbackRegistry.doUnregister(new URL(url));\n-        }\n-\n-        @Override\n-        public void doSubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\n-            this.compatibleFailbackRegistry.doSubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\n-        }\n-\n-        @Override\n-        public void doUnsubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\n-            this.compatibleFailbackRegistry.doUnsubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\n-        }\n-\n-        @Override\n-        public void notify(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener, List<org.apache.dubbo.common.URL> urls) {\n-            super.notify(url, listener, urls);\n-        }\n-\n-        @Override\n-        public void doNotify(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener, List<org.apache.dubbo.common.URL> urls) {\n-            super.doNotify(url, listener, urls);\n-        }\n-\n-        @Override\n-        public boolean isAvailable() {\n-            return false;\n-        }\n-\n-        @Override\n-        public void recover() throws Exception {\n-            super.recover();\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.registry.support;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+import com.alibaba.dubbo.registry.NotifyListener;\r\n+import com.alibaba.dubbo.registry.Registry;\r\n+\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * 2019-04-17\r\n+ */\r\n+@Deprecated\r\n+public abstract class FailbackRegistry implements org.apache.dubbo.registry.Registry, Registry {\r\n+\r\n+    private CompatibleFailbackRegistry failbackRegistry;\r\n+\r\n+    public FailbackRegistry(URL url) {\r\n+        failbackRegistry = new CompatibleFailbackRegistry(url.getOriginalURL(), this);\r\n+    }\r\n+\r\n+    public void removeFailedRegisteredTask(URL url) {\r\n+        failbackRegistry.removeFailedRegisteredTask(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public void removeFailedUnregisteredTask(URL url) {\r\n+        failbackRegistry.removeFailedUnregisteredTask(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public void removeFailedSubscribedTask(URL url, NotifyListener listener) {\r\n+        failbackRegistry.removeFailedSubscribedTask(url.getOriginalURL(), new NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    public void removeFailedUnsubscribedTask(URL url, NotifyListener listener) {\r\n+        failbackRegistry.removeFailedUnsubscribedTask(url.getOriginalURL(), new NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void register(URL url) {\r\n+        failbackRegistry.register(url.getOriginalURL());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(URL url) {\r\n+        failbackRegistry.unregister(url.getOriginalURL());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(URL url, NotifyListener listener) {\r\n+        failbackRegistry.subscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(URL url, NotifyListener listener) {\r\n+        failbackRegistry.unsubscribe(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    protected void notify(URL url, NotifyListener listener, List<URL> urls) {\r\n+        List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(URL::getOriginalURL).collect(Collectors.toList());\r\n+        failbackRegistry.notify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urlResult);\r\n+    }\r\n+\r\n+    protected void doNotify(URL url, NotifyListener listener, List<URL> urls) {\r\n+        List<org.apache.dubbo.common.URL> urlResult = urls.stream().map(URL::getOriginalURL).collect(Collectors.toList());\r\n+        failbackRegistry.doNotify(url.getOriginalURL(), new com.alibaba.dubbo.registry.NotifyListener.ReverseCompatibleNotifyListener(listener), urlResult);\r\n+    }\r\n+\r\n+    protected void recover() throws Exception {\r\n+        failbackRegistry.recover();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(URL url) {\r\n+        return failbackRegistry.lookup(url.getOriginalURL()).stream().map(e -> new URL(e)).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return new URL(failbackRegistry.getUrl());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        failbackRegistry.destroy();\r\n+    }\r\n+\r\n+    // ==== Template method ====\r\n+\r\n+    public abstract void doRegister(URL url);\r\n+\r\n+    public abstract void doUnregister(URL url);\r\n+\r\n+    public abstract void doSubscribe(URL url, NotifyListener listener);\r\n+\r\n+    public abstract void doUnsubscribe(URL url, NotifyListener listener);\r\n+\r\n+    @Override\r\n+    public void register(org.apache.dubbo.common.URL url) {\r\n+        this.register(new URL(url));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(org.apache.dubbo.common.URL url) {\r\n+        this.unregister(new URL(url));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\r\n+        this.subscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\r\n+        this.unsubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<org.apache.dubbo.common.URL> lookup(org.apache.dubbo.common.URL url) {\r\n+        return failbackRegistry.lookup(url);\r\n+    }\r\n+\r\n+\r\n+    static class CompatibleFailbackRegistry extends org.apache.dubbo.registry.support.FailbackRegistry {\r\n+\r\n+        private FailbackRegistry compatibleFailbackRegistry;\r\n+\r\n+        public CompatibleFailbackRegistry(org.apache.dubbo.common.URL url, FailbackRegistry compatibleFailbackRegistry) {\r\n+            super(url);\r\n+            this.compatibleFailbackRegistry = compatibleFailbackRegistry;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void doRegister(org.apache.dubbo.common.URL url) {\r\n+            this.compatibleFailbackRegistry.doRegister(new URL(url));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void doUnregister(org.apache.dubbo.common.URL url) {\r\n+            this.compatibleFailbackRegistry.doUnregister(new URL(url));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void doSubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\r\n+            this.compatibleFailbackRegistry.doSubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void doUnsubscribe(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener) {\r\n+            this.compatibleFailbackRegistry.doUnsubscribe(new URL(url), new NotifyListener.CompatibleNotifyListener(listener));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener, List<org.apache.dubbo.common.URL> urls) {\r\n+            super.notify(url, listener, urls);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void doNotify(org.apache.dubbo.common.URL url, org.apache.dubbo.registry.NotifyListener listener, List<org.apache.dubbo.common.URL> urls) {\r\n+            super.doNotify(url, listener, urls);\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isAvailable() {\r\n+            return false;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void recover() throws Exception {\r\n+            super.recover();\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/remoting/RemotingException.java", "source2": "com/alibaba/dubbo/remoting/RemotingException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.remoting;\n-\n-import org.apache.dubbo.remoting.Channel;\n-\n-import java.net.InetSocketAddress;\n-\n-@Deprecated\n-public class RemotingException extends org.apache.dubbo.remoting.RemotingException {\n-\n-    public RemotingException(Channel channel, String msg) {\n-        super(channel, msg);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\n-        super(localAddress, remoteAddress, message);\n-    }\n-\n-    public RemotingException(Channel channel, Throwable cause) {\n-        super(channel, cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\n-        super(localAddress, remoteAddress, cause);\n-    }\n-\n-    public RemotingException(Channel channel, String message, Throwable cause) {\n-        super(channel, message, cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message, Throwable cause) {\n-        super(localAddress, remoteAddress, message, cause);\n-    }\n-\n-    public RemotingException(Exception e){\n-        super(null, e.getMessage());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.remoting.Channel;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+@Deprecated\r\n+public class RemotingException extends org.apache.dubbo.remoting.RemotingException {\r\n+\r\n+    public RemotingException(Channel channel, String msg) {\r\n+        super(channel, msg);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\r\n+        super(localAddress, remoteAddress, message);\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, Throwable cause) {\r\n+        super(channel, cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\r\n+        super(localAddress, remoteAddress, cause);\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, String message, Throwable cause) {\r\n+        super(channel, message, cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message, Throwable cause) {\r\n+        super(localAddress, remoteAddress, message, cause);\r\n+    }\r\n+\r\n+    public RemotingException(Exception e){\r\n+        super(null, e.getMessage());\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/remoting/Server.java", "source2": "com/alibaba/dubbo/remoting/Server.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,23 +1,23 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.remoting;\n-\n-import org.apache.dubbo.remoting.RemotingServer;\n-\n-@Deprecated\n-public interface Server extends RemotingServer {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+\r\n+@Deprecated\r\n+public interface Server extends RemotingServer {\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/remoting/Transporter.java", "source2": "com/alibaba/dubbo/remoting/Transporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,82 +1,82 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.remoting;\n-\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingServer;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-@Deprecated\n-public interface Transporter extends org.apache.dubbo.remoting.Transporter {\n-\n-    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\n-    Server bind(URL url, ChannelHandler handler) throws RemotingException;\n-\n-    @Override\n-    default RemotingServer bind(org.apache.dubbo.common.URL url, org.apache.dubbo.remoting.ChannelHandler handler)\n-            throws org.apache.dubbo.remoting.RemotingException {\n-        return bind(new URL(url), new ChannelHandler() {\n-            @Override\n-            public void connected(Channel channel) throws RemotingException {\n-                try {\n-                    handler.connected(channel);\n-                } catch (org.apache.dubbo.remoting.RemotingException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public void disconnected(Channel channel) throws RemotingException {\n-                try {\n-                    handler.disconnected(channel);\n-                } catch (org.apache.dubbo.remoting.RemotingException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public void sent(Channel channel, Object message) throws RemotingException {\n-                try {\n-                    handler.sent(channel, message);\n-                } catch (org.apache.dubbo.remoting.RemotingException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public void received(Channel channel, Object message) throws RemotingException {\n-                try {\n-                    handler.received(channel, message);\n-                } catch (org.apache.dubbo.remoting.RemotingException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public void caught(Channel channel, Throwable exception) throws RemotingException {\n-                try {\n-                    handler.caught(channel, exception);\n-                } catch (org.apache.dubbo.remoting.RemotingException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-        });\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+@Deprecated\r\n+public interface Transporter extends org.apache.dubbo.remoting.Transporter {\r\n+\r\n+    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\r\n+    Server bind(URL url, ChannelHandler handler) throws RemotingException;\r\n+\r\n+    @Override\r\n+    default RemotingServer bind(org.apache.dubbo.common.URL url, org.apache.dubbo.remoting.ChannelHandler handler)\r\n+            throws org.apache.dubbo.remoting.RemotingException {\r\n+        return bind(new URL(url), new ChannelHandler() {\r\n+            @Override\r\n+            public void connected(Channel channel) throws RemotingException {\r\n+                try {\r\n+                    handler.connected(channel);\r\n+                } catch (org.apache.dubbo.remoting.RemotingException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void disconnected(Channel channel) throws RemotingException {\r\n+                try {\r\n+                    handler.disconnected(channel);\r\n+                } catch (org.apache.dubbo.remoting.RemotingException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void sent(Channel channel, Object message) throws RemotingException {\r\n+                try {\r\n+                    handler.sent(channel, message);\r\n+                } catch (org.apache.dubbo.remoting.RemotingException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void received(Channel channel, Object message) throws RemotingException {\r\n+                try {\r\n+                    handler.received(channel, message);\r\n+                } catch (org.apache.dubbo.remoting.RemotingException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+                try {\r\n+                    handler.caught(channel, exception);\r\n+                } catch (org.apache.dubbo.remoting.RemotingException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/remoting/exchange/ResponseCallback.java", "source2": "com/alibaba/dubbo/remoting/exchange/ResponseCallback.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.remoting.exchange;\n-\n-/**\n- * 2019-06-20\n- */\n-@Deprecated\n-public interface ResponseCallback {\n-    /**\n-     * done.\n-     *\n-     * @param response\n-     */\n-    void done(Object response);\n-\n-    /**\n-     * caught exception.\n-     *\n-     * @param exception\n-     */\n-    void caught(Throwable exception);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.remoting.exchange;\r\n+\r\n+/**\r\n+ * 2019-06-20\r\n+ */\r\n+@Deprecated\r\n+public interface ResponseCallback {\r\n+    /**\r\n+     * done.\r\n+     *\r\n+     * @param response\r\n+     */\r\n+    void done(Object response);\r\n+\r\n+    /**\r\n+     * caught exception.\r\n+     *\r\n+     * @param exception\r\n+     */\r\n+    void caught(Throwable exception);\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/remoting/exchange/ResponseFuture.java", "source2": "com/alibaba/dubbo/remoting/exchange/ResponseFuture.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,56 +1,56 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.remoting.exchange;\n-\n-\n-import com.alibaba.dubbo.remoting.RemotingException;\n-\n-/**\n- * 2019-06-20\n- */\n-@Deprecated\n-public interface ResponseFuture {\n-    /**\n-     * get result.\n-     *\n-     * @return result.\n-     */\n-    Object get() throws RemotingException;\n-\n-    /**\n-     * get result with the specified timeout.\n-     *\n-     * @param timeoutInMillis timeout.\n-     * @return result.\n-     */\n-    Object get(int timeoutInMillis) throws RemotingException;\n-\n-    /**\n-     * set callback.\n-     *\n-     * @param callback\n-     */\n-    void setCallback(ResponseCallback callback);\n-\n-    /**\n-     * check is done.\n-     *\n-     * @return done or not.\n-     */\n-    boolean isDone();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.remoting.exchange;\r\n+\r\n+\r\n+import com.alibaba.dubbo.remoting.RemotingException;\r\n+\r\n+/**\r\n+ * 2019-06-20\r\n+ */\r\n+@Deprecated\r\n+public interface ResponseFuture {\r\n+    /**\r\n+     * get result.\r\n+     *\r\n+     * @return result.\r\n+     */\r\n+    Object get() throws RemotingException;\r\n+\r\n+    /**\r\n+     * get result with the specified timeout.\r\n+     *\r\n+     * @param timeoutInMillis timeout.\r\n+     * @return result.\r\n+     */\r\n+    Object get(int timeoutInMillis) throws RemotingException;\r\n+\r\n+    /**\r\n+     * set callback.\r\n+     *\r\n+     * @param callback\r\n+     */\r\n+    void setCallback(ResponseCallback callback);\r\n+\r\n+    /**\r\n+     * check is done.\r\n+     *\r\n+     * @return done or not.\r\n+     */\r\n+    boolean isDone();\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/Invocation.java", "source2": "com/alibaba/dubbo/rpc/Invocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,180 +1,180 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import java.util.Collections;\n-import java.util.Map;\n-\n-@Deprecated\n-public interface Invocation extends org.apache.dubbo.rpc.Invocation {\n-\n-    @Override\n-    Invoker<?> getInvoker();\n-\n-    default org.apache.dubbo.rpc.Invocation getOriginal() {\n-        return null;\n-    }\n-\n-    @Override\n-    default void setAttachment(String key, String value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    default void setAttachmentIfAbsent(String key, String value) {\n-        setObjectAttachmentIfAbsent(key, value);\n-    }\n-\n-    @Override\n-    default void setObjectAttachmentIfAbsent(String key, Object value) {\n-    }\n-\n-    @Override\n-    default void setObjectAttachment(String key, Object value) {\n-\n-    }\n-\n-    @Override\n-    default void setAttachment(String key, Object value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    default void setAttachmentIfAbsent(String key, Object value) {\n-        setObjectAttachmentIfAbsent(key, value);\n-    }\n-\n-    @Override\n-    default String getServiceName() {\n-        return null;\n-    }\n-\n-    @Override\n-    default String getTargetServiceUniqueName() {\n-        return null;\n-    }\n-\n-    @Override\n-    default String getAttachment(String key, String defaultValue) {\n-        return null;\n-    }\n-\n-    @Override\n-    default Object put(Object key, Object value) {\n-        return null;\n-    }\n-\n-    @Override\n-    default Object get(Object key) {\n-        return null;\n-    }\n-\n-    @Override\n-    default Map<Object, Object> getAttributes() {\n-        return null;\n-    }\n-\n-    @Override\n-    default Map<String, Object> getObjectAttachments() {\n-        return Collections.emptyMap();\n-    }\n-\n-    @Override\n-    default Object getObjectAttachment(String key) {\n-        return null;\n-    }\n-\n-    @Override\n-    default Object getObjectAttachment(String key, Object defaultValue) {\n-        return null;\n-    }\n-\n-    class CompatibleInvocation implements Invocation {\n-\n-        private org.apache.dubbo.rpc.Invocation delegate;\n-\n-        public CompatibleInvocation(org.apache.dubbo.rpc.Invocation invocation) {\n-            this.delegate = invocation;\n-        }\n-\n-        @Override\n-        public String getTargetServiceUniqueName() {\n-            return delegate.getTargetServiceUniqueName();\n-        }\n-\n-        @Override\n-        public String getProtocolServiceKey() {\n-            return delegate.getProtocolServiceKey();\n-        }\n-\n-        @Override\n-        public String getMethodName() {\n-            return delegate.getMethodName();\n-        }\n-\n-        @Override\n-        public Class<?>[] getParameterTypes() {\n-            return delegate.getParameterTypes();\n-        }\n-\n-        @Override\n-        public Object[] getArguments() {\n-            return delegate.getArguments();\n-        }\n-\n-        @Override\n-        public Map<String, String> getAttachments() {\n-            return delegate.getAttachments();\n-        }\n-\n-        @Override\n-        public String getAttachment(String key) {\n-            return delegate.getAttachment(key);\n-        }\n-\n-        @Override\n-        public String getAttachment(String key, String defaultValue) {\n-            return delegate.getAttachment(key, defaultValue);\n-        }\n-\n-        @Override\n-        public Invoker<?> getInvoker() {\n-            return new Invoker.CompatibleInvoker(delegate.getInvoker());\n-        }\n-\n-        @Override\n-        public Object put(Object key, Object value) {\n-            return delegate.put(key, value);\n-        }\n-\n-        @Override\n-        public Object get(Object key) {\n-            return delegate.get(key);\n-        }\n-\n-        @Override\n-        public Map<Object, Object> getAttributes() {\n-            return delegate.getAttributes();\n-        }\n-\n-        @Override\n-        public org.apache.dubbo.rpc.Invocation getOriginal() {\n-            return delegate;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Map;\r\n+\r\n+@Deprecated\r\n+public interface Invocation extends org.apache.dubbo.rpc.Invocation {\r\n+\r\n+    @Override\r\n+    Invoker<?> getInvoker();\r\n+\r\n+    default org.apache.dubbo.rpc.Invocation getOriginal() {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setAttachment(String key, String value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setAttachmentIfAbsent(String key, String value) {\r\n+        setObjectAttachmentIfAbsent(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setObjectAttachmentIfAbsent(String key, Object value) {\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setObjectAttachment(String key, Object value) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setAttachment(String key, Object value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setAttachmentIfAbsent(String key, Object value) {\r\n+        setObjectAttachmentIfAbsent(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    default String getServiceName() {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default String getTargetServiceUniqueName() {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default String getAttachment(String key, String defaultValue) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object put(Object key, Object value) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object get(Object key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Map<Object, Object> getAttributes() {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Map<String, Object> getObjectAttachments() {\r\n+        return Collections.emptyMap();\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object getObjectAttachment(String key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object getObjectAttachment(String key, Object defaultValue) {\r\n+        return null;\r\n+    }\r\n+\r\n+    class CompatibleInvocation implements Invocation {\r\n+\r\n+        private org.apache.dubbo.rpc.Invocation delegate;\r\n+\r\n+        public CompatibleInvocation(org.apache.dubbo.rpc.Invocation invocation) {\r\n+            this.delegate = invocation;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getTargetServiceUniqueName() {\r\n+            return delegate.getTargetServiceUniqueName();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getProtocolServiceKey() {\r\n+            return delegate.getProtocolServiceKey();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getMethodName() {\r\n+            return delegate.getMethodName();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Class<?>[] getParameterTypes() {\r\n+            return delegate.getParameterTypes();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object[] getArguments() {\r\n+            return delegate.getArguments();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Map<String, String> getAttachments() {\r\n+            return delegate.getAttachments();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getAttachment(String key) {\r\n+            return delegate.getAttachment(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getAttachment(String key, String defaultValue) {\r\n+            return delegate.getAttachment(key, defaultValue);\r\n+        }\r\n+\r\n+        @Override\r\n+        public Invoker<?> getInvoker() {\r\n+            return new Invoker.CompatibleInvoker(delegate.getInvoker());\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object put(Object key, Object value) {\r\n+            return delegate.put(key, value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object get(Object key) {\r\n+            return delegate.get(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public Map<Object, Object> getAttributes() {\r\n+            return delegate.getAttributes();\r\n+        }\r\n+\r\n+        @Override\r\n+        public org.apache.dubbo.rpc.Invocation getOriginal() {\r\n+            return delegate;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/Invoker.java", "source2": "com/alibaba/dubbo/rpc/Invoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,78 +1,78 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-@Deprecated\n-public interface Invoker<T> extends org.apache.dubbo.rpc.Invoker<T> {\n-\n-    Result invoke(Invocation invocation) throws RpcException;\n-\n-    @Override\n-    URL getUrl();\n-\n-    default org.apache.dubbo.rpc.Invoker<T> getOriginal() {\n-        return null;\n-    }\n-\n-    // This method will never be called for a legacy invoker.\n-    @Override\n-    default org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation invocation) throws org.apache.dubbo.rpc.RpcException {\n-        return null;\n-    }\n-\n-    class CompatibleInvoker<T> implements Invoker<T> {\n-\n-        private org.apache.dubbo.rpc.Invoker<T> invoker;\n-\n-        public CompatibleInvoker(org.apache.dubbo.rpc.Invoker<T> invoker) {\n-            this.invoker = invoker;\n-        }\n-\n-        @Override\n-        public Class<T> getInterface() {\n-            return invoker.getInterface();\n-        }\n-\n-        @Override\n-        public Result invoke(Invocation invocation) throws RpcException {\n-            return new Result.CompatibleResult(invoker.invoke(invocation.getOriginal()));\n-        }\n-\n-        @Override\n-        public URL getUrl() {\n-            return new URL(invoker.getUrl());\n-        }\n-\n-        @Override\n-        public boolean isAvailable() {\n-            return invoker.isAvailable();\n-        }\n-\n-        @Override\n-        public void destroy() {\n-            invoker.destroy();\n-        }\n-\n-        @Override\n-        public org.apache.dubbo.rpc.Invoker<T> getOriginal() {\n-            return invoker;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+@Deprecated\r\n+public interface Invoker<T> extends org.apache.dubbo.rpc.Invoker<T> {\r\n+\r\n+    Result invoke(Invocation invocation) throws RpcException;\r\n+\r\n+    @Override\r\n+    URL getUrl();\r\n+\r\n+    default org.apache.dubbo.rpc.Invoker<T> getOriginal() {\r\n+        return null;\r\n+    }\r\n+\r\n+    // This method will never be called for a legacy invoker.\r\n+    @Override\r\n+    default org.apache.dubbo.rpc.Result invoke(org.apache.dubbo.rpc.Invocation invocation) throws org.apache.dubbo.rpc.RpcException {\r\n+        return null;\r\n+    }\r\n+\r\n+    class CompatibleInvoker<T> implements Invoker<T> {\r\n+\r\n+        private org.apache.dubbo.rpc.Invoker<T> invoker;\r\n+\r\n+        public CompatibleInvoker(org.apache.dubbo.rpc.Invoker<T> invoker) {\r\n+            this.invoker = invoker;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Class<T> getInterface() {\r\n+            return invoker.getInterface();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Result invoke(Invocation invocation) throws RpcException {\r\n+            return new Result.CompatibleResult(invoker.invoke(invocation.getOriginal()));\r\n+        }\r\n+\r\n+        @Override\r\n+        public URL getUrl() {\r\n+            return new URL(invoker.getUrl());\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isAvailable() {\r\n+            return invoker.isAvailable();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void destroy() {\r\n+            invoker.destroy();\r\n+        }\r\n+\r\n+        @Override\r\n+        public org.apache.dubbo.rpc.Invoker<T> getOriginal() {\r\n+            return invoker;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/Protocol.java", "source2": "com/alibaba/dubbo/rpc/Protocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import org.apache.dubbo.rpc.ProtocolServer;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-import java.util.Collections;\n-import java.util.List;\n-\n-@Deprecated\n-public interface Protocol extends org.apache.dubbo.rpc.Protocol {\n-\n-    <T> Exporter<T> export(Invoker<T> invoker) throws RpcException;\n-\n-    <T> Invoker<T> refer(Class<T> aClass, URL url) throws RpcException;\n-\n-    @Override\n-    default <T> org.apache.dubbo.rpc.Exporter<T> export(org.apache.dubbo.rpc.Invoker<T> invoker) throws RpcException {\n-        return this.export(new Invoker.CompatibleInvoker<>(invoker));\n-    }\n-\n-    @Override\n-    default <T> org.apache.dubbo.rpc.Invoker<T> refer(Class<T> aClass, org.apache.dubbo.common.URL url) throws RpcException {\n-        return this.refer(aClass, new URL(url));\n-    }\n-\n-    @Override\n-    default List<ProtocolServer> getServers() {\n-        return Collections.emptyList();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+@Deprecated\r\n+public interface Protocol extends org.apache.dubbo.rpc.Protocol {\r\n+\r\n+    <T> Exporter<T> export(Invoker<T> invoker) throws RpcException;\r\n+\r\n+    <T> Invoker<T> refer(Class<T> aClass, URL url) throws RpcException;\r\n+\r\n+    @Override\r\n+    default <T> org.apache.dubbo.rpc.Exporter<T> export(org.apache.dubbo.rpc.Invoker<T> invoker) throws RpcException {\r\n+        return this.export(new Invoker.CompatibleInvoker<>(invoker));\r\n+    }\r\n+\r\n+    @Override\r\n+    default <T> org.apache.dubbo.rpc.Invoker<T> refer(Class<T> aClass, org.apache.dubbo.common.URL url) throws RpcException {\r\n+        return this.refer(aClass, new URL(url));\r\n+    }\r\n+\r\n+    @Override\r\n+    default List<ProtocolServer> getServers() {\r\n+        return Collections.emptyList();\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/Result.java", "source2": "com/alibaba/dubbo/rpc/Result.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,176 +1,176 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import java.util.Collections;\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.function.BiConsumer;\n-import java.util.function.Function;\n-\n-@Deprecated\n-public interface Result extends org.apache.dubbo.rpc.Result {\n-\n-    @Override\n-    default void setValue(Object value) {\n-\n-    }\n-\n-    @Override\n-    default void setException(Throwable t) {\n-\n-    }\n-\n-    @Override\n-    default Map<String, Object> getObjectAttachments() {\n-        return Collections.emptyMap();\n-    }\n-\n-    @Override\n-    default void addObjectAttachments(Map<String, Object> map) {\n-\n-    }\n-\n-    @Override\n-    default void setObjectAttachments(Map<String, Object> map) {\n-\n-    }\n-\n-    @Override\n-    default Object getObjectAttachment(String key) {\n-        return null;\n-    }\n-\n-    @Override\n-    default Object getObjectAttachment(String key, Object defaultValue) {\n-        return null;\n-    }\n-\n-    abstract class AbstractResult implements Result {\n-\n-        @Override\n-        public void setValue(Object value) {\n-\n-        }\n-\n-        @Override\n-        public org.apache.dubbo.rpc.Result whenCompleteWithContext(BiConsumer<org.apache.dubbo.rpc.Result, Throwable> fn) {\n-            return null;\n-        }\n-\n-        @Override\n-        public <U> CompletableFuture<U> thenApply(Function<org.apache.dubbo.rpc.Result, ? extends U> fn) {\n-            return null;\n-        }\n-\n-        @Override\n-        public org.apache.dubbo.rpc.Result get() throws InterruptedException, ExecutionException {\n-            return null;\n-        }\n-\n-        @Override\n-        public org.apache.dubbo.rpc.Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\n-            return null;\n-        }\n-    }\n-\n-    class CompatibleResult extends AbstractResult {\n-        private org.apache.dubbo.rpc.Result delegate;\n-\n-        public CompatibleResult(org.apache.dubbo.rpc.Result result) {\n-            this.delegate = result;\n-        }\n-\n-        public org.apache.dubbo.rpc.Result getDelegate() {\n-            return delegate;\n-        }\n-\n-        @Override\n-        public Object getValue() {\n-            return delegate.getValue();\n-        }\n-\n-        @Override\n-        public void setValue(Object value) {\n-            delegate.setValue(value);\n-        }\n-\n-        @Override\n-        public Throwable getException() {\n-            return delegate.getException();\n-        }\n-\n-        @Override\n-        public void setException(Throwable t) {\n-            delegate.setException(t);\n-        }\n-\n-        @Override\n-        public boolean hasException() {\n-            return delegate.hasException();\n-        }\n-\n-        @Override\n-        public Object recreate() throws Throwable {\n-            return delegate.recreate();\n-        }\n-\n-        @Override\n-        public Map<String, String> getAttachments() {\n-            return delegate.getAttachments();\n-        }\n-\n-        @Override\n-        public void addAttachments(Map<String, String> map) {\n-            delegate.addAttachments(map);\n-        }\n-\n-        @Override\n-        public void setAttachments(Map<String, String> map) {\n-            delegate.setAttachments(map);\n-        }\n-\n-        @Override\n-        public String getAttachment(String key) {\n-            return delegate.getAttachment(key);\n-        }\n-\n-        @Override\n-        public String getAttachment(String key, String defaultValue) {\n-            return delegate.getAttachment(key, defaultValue);\n-        }\n-\n-        @Override\n-        public void setAttachment(String key, String value) {\n-            delegate.setAttachment(key, value);\n-        }\n-\n-        @Override\n-        public void setAttachment(String key, Object value) {\n-            delegate.setAttachment(key, value);\n-        }\n-\n-        @Override\n-        public void setObjectAttachment(String key, Object value) {\n-            delegate.setObjectAttachment(key, value);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.function.BiConsumer;\r\n+import java.util.function.Function;\r\n+\r\n+@Deprecated\r\n+public interface Result extends org.apache.dubbo.rpc.Result {\r\n+\r\n+    @Override\r\n+    default void setValue(Object value) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setException(Throwable t) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    default Map<String, Object> getObjectAttachments() {\r\n+        return Collections.emptyMap();\r\n+    }\r\n+\r\n+    @Override\r\n+    default void addObjectAttachments(Map<String, Object> map) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    default void setObjectAttachments(Map<String, Object> map) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object getObjectAttachment(String key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    default Object getObjectAttachment(String key, Object defaultValue) {\r\n+        return null;\r\n+    }\r\n+\r\n+    abstract class AbstractResult implements Result {\r\n+\r\n+        @Override\r\n+        public void setValue(Object value) {\r\n+\r\n+        }\r\n+\r\n+        @Override\r\n+        public org.apache.dubbo.rpc.Result whenCompleteWithContext(BiConsumer<org.apache.dubbo.rpc.Result, Throwable> fn) {\r\n+            return null;\r\n+        }\r\n+\r\n+        @Override\r\n+        public <U> CompletableFuture<U> thenApply(Function<org.apache.dubbo.rpc.Result, ? extends U> fn) {\r\n+            return null;\r\n+        }\r\n+\r\n+        @Override\r\n+        public org.apache.dubbo.rpc.Result get() throws InterruptedException, ExecutionException {\r\n+            return null;\r\n+        }\r\n+\r\n+        @Override\r\n+        public org.apache.dubbo.rpc.Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    class CompatibleResult extends AbstractResult {\r\n+        private org.apache.dubbo.rpc.Result delegate;\r\n+\r\n+        public CompatibleResult(org.apache.dubbo.rpc.Result result) {\r\n+            this.delegate = result;\r\n+        }\r\n+\r\n+        public org.apache.dubbo.rpc.Result getDelegate() {\r\n+            return delegate;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object getValue() {\r\n+            return delegate.getValue();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setValue(Object value) {\r\n+            delegate.setValue(value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public Throwable getException() {\r\n+            return delegate.getException();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setException(Throwable t) {\r\n+            delegate.setException(t);\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean hasException() {\r\n+            return delegate.hasException();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object recreate() throws Throwable {\r\n+            return delegate.recreate();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Map<String, String> getAttachments() {\r\n+            return delegate.getAttachments();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void addAttachments(Map<String, String> map) {\r\n+            delegate.addAttachments(map);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setAttachments(Map<String, String> map) {\r\n+            delegate.setAttachments(map);\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getAttachment(String key) {\r\n+            return delegate.getAttachment(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getAttachment(String key, String defaultValue) {\r\n+            return delegate.getAttachment(key, defaultValue);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setAttachment(String key, String value) {\r\n+            delegate.setAttachment(key, value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setAttachment(String key, Object value) {\r\n+            delegate.setAttachment(key, value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setObjectAttachment(String key, Object value) {\r\n+            delegate.setObjectAttachment(key, value);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/RpcContext.java", "source2": "com/alibaba/dubbo/rpc/RpcContext.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,396 +1,396 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.FutureContext;\n-\n-import com.alibaba.dubbo.common.Constants;\n-import com.alibaba.dubbo.common.URL;\n-import com.alibaba.dubbo.rpc.protocol.dubbo.FutureAdapter;\n-\n-import java.net.InetSocketAddress;\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.Future;\n-import java.util.concurrent.FutureTask;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-\n-@Deprecated\n-public class RpcContext {\n-\n-    public static RpcContext getContext() {\n-        return new RpcContext(org.apache.dubbo.rpc.RpcContext.getContext());\n-    }\n-\n-    public static RpcContext getServerContext() {\n-        return new RpcContext(org.apache.dubbo.rpc.RpcContext.getServerContext());\n-    }\n-\n-    public static void removeServerContext() {\n-        org.apache.dubbo.rpc.RpcContext.removeServerContext();\n-    }\n-\n-    public static void removeContext() {\n-        org.apache.dubbo.rpc.RpcContext.removeContext();\n-    }\n-\n-    private org.apache.dubbo.rpc.RpcContext newRpcContext;\n-\n-    public RpcContext(org.apache.dubbo.rpc.RpcContext newRpcContext) {\n-        this.newRpcContext = newRpcContext;\n-    }\n-\n-    public Object getRequest() {\n-        return newRpcContext.getRequest();\n-    }\n-\n-    public <T> T getRequest(Class<T> clazz) {\n-        return newRpcContext.getRequest(clazz);\n-    }\n-\n-\n-    public void setRequest(Object request) {\n-        newRpcContext.setRequest(request);\n-    }\n-\n-    /**\n-     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting response\n-     */\n-    public Object getResponse() {\n-        return newRpcContext.getResponse();\n-    }\n-\n-    /**\n-     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting response or the response is not of the specified type\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T getResponse(Class<T> clazz) {\n-        return newRpcContext.getResponse(clazz);\n-    }\n-\n-    public void setResponse(Object response) {\n-        newRpcContext.setResponse(response);\n-    }\n-\n-    /**\n-     * is provider side.\n-     *\n-     * @return provider side.\n-     */\n-    public boolean isProviderSide() {\n-        return newRpcContext.isProviderSide();\n-    }\n-\n-    /**\n-     * is consumer side.\n-     *\n-     * @return consumer side.\n-     */\n-    public boolean isConsumerSide() {\n-        return newRpcContext.isConsumerSide();\n-    }\n-\n-    public List<URL> getUrls() {\n-        List<org.apache.dubbo.common.URL> newUrls = newRpcContext.getUrls();\n-        if (CollectionUtils.isNotEmpty(newUrls)) {\n-            List<URL> urls = new ArrayList<>(newUrls.size());\n-            for (org.apache.dubbo.common.URL newUrl : newUrls) {\n-                urls.add(new URL(newUrl));\n-            }\n-            return urls;\n-        }\n-        return Collections.emptyList();\n-    }\n-\n-    public void setUrls(List<URL> urls) {\n-        if (CollectionUtils.isNotEmpty(urls)) {\n-            List<org.apache.dubbo.common.URL> newUrls = new ArrayList<>(urls.size());\n-            for (URL url : urls) {\n-                newUrls.add(url.getOriginalURL());\n-            }\n-            newRpcContext.setUrls(newUrls);\n-        }\n-    }\n-\n-    public URL getUrl() {\n-        return new URL(newRpcContext.getUrl());\n-    }\n-\n-    public void setUrl(URL url) {\n-        newRpcContext.setUrl(url.getOriginalURL());\n-    }\n-\n-    public String getMethodName() {\n-        return newRpcContext.getMethodName();\n-    }\n-\n-    public void setMethodName(String methodName) {\n-        newRpcContext.setMethodName(methodName);\n-    }\n-\n-    public Class<?>[] getParameterTypes() {\n-        return newRpcContext.getParameterTypes();\n-    }\n-\n-    public void setParameterTypes(Class<?>[] parameterTypes) {\n-        newRpcContext.setParameterTypes(parameterTypes);\n-    }\n-\n-    public Object[] getArguments() {\n-        return newRpcContext.getArguments();\n-    }\n-\n-    public void setArguments(Object[] arguments) {\n-        newRpcContext.setArguments(arguments);\n-    }\n-\n-    public RpcContext setLocalAddress(String host, int port) {\n-        newRpcContext.setLocalAddress(host, port);\n-        return this;\n-    }\n-\n-    /**\n-     * get local address.\n-     *\n-     * @return local address\n-     */\n-    public InetSocketAddress getLocalAddress() {\n-        return newRpcContext.getLocalAddress();\n-    }\n-\n-    public RpcContext setLocalAddress(InetSocketAddress address) {\n-        newRpcContext.setLocalAddress(address);\n-        return this;\n-    }\n-\n-    public String getLocalAddressString() {\n-        return newRpcContext.getLocalAddressString();\n-    }\n-\n-    public String getLocalHostName() {\n-        return newRpcContext.getLocalHostName();\n-    }\n-\n-    public RpcContext setRemoteAddress(String host, int port) {\n-        newRpcContext.setRemoteAddress(host, port);\n-        return this;\n-    }\n-\n-    public InetSocketAddress getRemoteAddress() {\n-        return newRpcContext.getRemoteAddress();\n-    }\n-\n-    public RpcContext setRemoteAddress(InetSocketAddress address) {\n-        newRpcContext.setRemoteAddress(address);\n-        return this;\n-    }\n-\n-    public String getRemoteAddressString() {\n-        return newRpcContext.getRemoteAddressString();\n-    }\n-\n-    public String getRemoteHostName() {\n-        return newRpcContext.getRemoteHostName();\n-    }\n-\n-    public String getLocalHost() {\n-        return newRpcContext.getLocalHost();\n-    }\n-\n-    public int getLocalPort() {\n-        return newRpcContext.getLocalPort();\n-    }\n-\n-    public String getRemoteHost() {\n-        return newRpcContext.getRemoteHost();\n-    }\n-\n-    public int getRemotePort() {\n-        return newRpcContext.getRemotePort();\n-    }\n-\n-    public String getAttachment(String key) {\n-        return newRpcContext.getAttachment(key);\n-    }\n-\n-    public RpcContext setAttachment(String key, String value) {\n-        newRpcContext.setAttachment(key, value);\n-        return this;\n-    }\n-\n-    public RpcContext removeAttachment(String key) {\n-        newRpcContext.removeAttachment(key);\n-        return this;\n-    }\n-\n-    public Map<String, String> getAttachments() {\n-        return newRpcContext.getAttachments();\n-    }\n-\n-    public RpcContext setAttachments(Map<String, String> attachment) {\n-        newRpcContext.setAttachments(attachment);\n-        return this;\n-    }\n-\n-    public void clearAttachments() {\n-        newRpcContext.clearAttachments();\n-    }\n-\n-    /**\n-     * get values.\n-     *\n-     * @return values\n-     */\n-    public Map<String, Object> get() {\n-        return newRpcContext.get();\n-    }\n-\n-    /**\n-     * set value.\n-     *\n-     * @param key\n-     * @param value\n-     * @return context\n-     */\n-    public RpcContext set(String key, Object value) {\n-        newRpcContext.set(key, value);\n-        return this;\n-    }\n-\n-    public RpcContext remove(String key) {\n-        newRpcContext.remove(key);\n-        return this;\n-    }\n-\n-    public Object get(String key) {\n-        return newRpcContext.get(key);\n-    }\n-\n-    @Deprecated\n-    public boolean isServerSide() {\n-        return isProviderSide();\n-    }\n-\n-    @Deprecated\n-    public boolean isClientSide() {\n-        return isConsumerSide();\n-    }\n-\n-    /**\n-     * Async invocation. Timeout will be handled even if <code>Future.get()</code> is not called.\n-     *\n-     * @param callable\n-     * @return get the return result from <code>future.get()</code>\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> Future<T> asyncCall(Callable<T> callable) {\n-        try {\n-            try {\n-                setAttachment(Constants.ASYNC_KEY, Boolean.TRUE.toString());\n-                final T o = callable.call();\n-                //local invoke will return directly\n-                if (o != null) {\n-                    FutureTask<T> f = new FutureTask<T>(new Callable<T>() {\n-                        @Override\n-                        public T call() throws Exception {\n-                            return o;\n-                        }\n-                    });\n-                    f.run();\n-                    return f;\n-                } else {\n-\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(e);\n-            } finally {\n-                removeAttachment(Constants.ASYNC_KEY);\n-            }\n-        } catch (final RpcException e) {\n-            return new Future<T>() {\n-                @Override\n-                public boolean cancel(boolean mayInterruptIfRunning) {\n-                    return false;\n-                }\n-\n-                @Override\n-                public boolean isCancelled() {\n-                    return false;\n-                }\n-\n-                @Override\n-                public boolean isDone() {\n-                    return true;\n-                }\n-\n-                @Override\n-                public T get() throws InterruptedException, ExecutionException {\n-                    throw new ExecutionException(e.getCause());\n-                }\n-\n-                @Override\n-                public T get(long timeout, TimeUnit unit)\n-                        throws InterruptedException, ExecutionException,\n-                        TimeoutException {\n-                    return get();\n-                }\n-            };\n-        }\n-        return ((Future<T>) getContext().getFuture());\n-    }\n-\n-    /**\n-     * one way async call, send request only, and result is not required\n-     *\n-     * @param runnable\n-     */\n-    public void asyncCall(Runnable runnable) {\n-        try {\n-            setAttachment(Constants.RETURN_KEY, Boolean.FALSE.toString());\n-            runnable.run();\n-        } catch (Throwable e) {\n-            // FIXME should put exception in future?\n-            throw new RpcException(\"oneway call error .\" + e.getMessage(), e);\n-        } finally {\n-            removeAttachment(Constants.RETURN_KEY);\n-        }\n-    }\n-\n-    public <T> Future<T> getFuture() {\n-        CompletableFuture completableFuture = FutureContext.getContext().getCompatibleCompletableFuture();\n-        if (completableFuture == null) {\n-            return null;\n-        }\n-        return new FutureAdapter(completableFuture);\n-    }\n-\n-    public void setFuture(CompletableFuture<?> future) {\n-        FutureContext.getContext().setCompatibleFuture(future);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.FutureContext;\r\n+\r\n+import com.alibaba.dubbo.common.Constants;\r\n+import com.alibaba.dubbo.common.URL;\r\n+import com.alibaba.dubbo.rpc.protocol.dubbo.FutureAdapter;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.Future;\r\n+import java.util.concurrent.FutureTask;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+\r\n+@Deprecated\r\n+public class RpcContext {\r\n+\r\n+    public static RpcContext getContext() {\r\n+        return new RpcContext(org.apache.dubbo.rpc.RpcContext.getContext());\r\n+    }\r\n+\r\n+    public static RpcContext getServerContext() {\r\n+        return new RpcContext(org.apache.dubbo.rpc.RpcContext.getServerContext());\r\n+    }\r\n+\r\n+    public static void removeServerContext() {\r\n+        org.apache.dubbo.rpc.RpcContext.removeServerContext();\r\n+    }\r\n+\r\n+    public static void removeContext() {\r\n+        org.apache.dubbo.rpc.RpcContext.removeContext();\r\n+    }\r\n+\r\n+    private org.apache.dubbo.rpc.RpcContext newRpcContext;\r\n+\r\n+    public RpcContext(org.apache.dubbo.rpc.RpcContext newRpcContext) {\r\n+        this.newRpcContext = newRpcContext;\r\n+    }\r\n+\r\n+    public Object getRequest() {\r\n+        return newRpcContext.getRequest();\r\n+    }\r\n+\r\n+    public <T> T getRequest(Class<T> clazz) {\r\n+        return newRpcContext.getRequest(clazz);\r\n+    }\r\n+\r\n+\r\n+    public void setRequest(Object request) {\r\n+        newRpcContext.setRequest(request);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting response\r\n+     */\r\n+    public Object getResponse() {\r\n+        return newRpcContext.getResponse();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting response or the response is not of the specified type\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T getResponse(Class<T> clazz) {\r\n+        return newRpcContext.getResponse(clazz);\r\n+    }\r\n+\r\n+    public void setResponse(Object response) {\r\n+        newRpcContext.setResponse(response);\r\n+    }\r\n+\r\n+    /**\r\n+     * is provider side.\r\n+     *\r\n+     * @return provider side.\r\n+     */\r\n+    public boolean isProviderSide() {\r\n+        return newRpcContext.isProviderSide();\r\n+    }\r\n+\r\n+    /**\r\n+     * is consumer side.\r\n+     *\r\n+     * @return consumer side.\r\n+     */\r\n+    public boolean isConsumerSide() {\r\n+        return newRpcContext.isConsumerSide();\r\n+    }\r\n+\r\n+    public List<URL> getUrls() {\r\n+        List<org.apache.dubbo.common.URL> newUrls = newRpcContext.getUrls();\r\n+        if (CollectionUtils.isNotEmpty(newUrls)) {\r\n+            List<URL> urls = new ArrayList<>(newUrls.size());\r\n+            for (org.apache.dubbo.common.URL newUrl : newUrls) {\r\n+                urls.add(new URL(newUrl));\r\n+            }\r\n+            return urls;\r\n+        }\r\n+        return Collections.emptyList();\r\n+    }\r\n+\r\n+    public void setUrls(List<URL> urls) {\r\n+        if (CollectionUtils.isNotEmpty(urls)) {\r\n+            List<org.apache.dubbo.common.URL> newUrls = new ArrayList<>(urls.size());\r\n+            for (URL url : urls) {\r\n+                newUrls.add(url.getOriginalURL());\r\n+            }\r\n+            newRpcContext.setUrls(newUrls);\r\n+        }\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return new URL(newRpcContext.getUrl());\r\n+    }\r\n+\r\n+    public void setUrl(URL url) {\r\n+        newRpcContext.setUrl(url.getOriginalURL());\r\n+    }\r\n+\r\n+    public String getMethodName() {\r\n+        return newRpcContext.getMethodName();\r\n+    }\r\n+\r\n+    public void setMethodName(String methodName) {\r\n+        newRpcContext.setMethodName(methodName);\r\n+    }\r\n+\r\n+    public Class<?>[] getParameterTypes() {\r\n+        return newRpcContext.getParameterTypes();\r\n+    }\r\n+\r\n+    public void setParameterTypes(Class<?>[] parameterTypes) {\r\n+        newRpcContext.setParameterTypes(parameterTypes);\r\n+    }\r\n+\r\n+    public Object[] getArguments() {\r\n+        return newRpcContext.getArguments();\r\n+    }\r\n+\r\n+    public void setArguments(Object[] arguments) {\r\n+        newRpcContext.setArguments(arguments);\r\n+    }\r\n+\r\n+    public RpcContext setLocalAddress(String host, int port) {\r\n+        newRpcContext.setLocalAddress(host, port);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get local address.\r\n+     *\r\n+     * @return local address\r\n+     */\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return newRpcContext.getLocalAddress();\r\n+    }\r\n+\r\n+    public RpcContext setLocalAddress(InetSocketAddress address) {\r\n+        newRpcContext.setLocalAddress(address);\r\n+        return this;\r\n+    }\r\n+\r\n+    public String getLocalAddressString() {\r\n+        return newRpcContext.getLocalAddressString();\r\n+    }\r\n+\r\n+    public String getLocalHostName() {\r\n+        return newRpcContext.getLocalHostName();\r\n+    }\r\n+\r\n+    public RpcContext setRemoteAddress(String host, int port) {\r\n+        newRpcContext.setRemoteAddress(host, port);\r\n+        return this;\r\n+    }\r\n+\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return newRpcContext.getRemoteAddress();\r\n+    }\r\n+\r\n+    public RpcContext setRemoteAddress(InetSocketAddress address) {\r\n+        newRpcContext.setRemoteAddress(address);\r\n+        return this;\r\n+    }\r\n+\r\n+    public String getRemoteAddressString() {\r\n+        return newRpcContext.getRemoteAddressString();\r\n+    }\r\n+\r\n+    public String getRemoteHostName() {\r\n+        return newRpcContext.getRemoteHostName();\r\n+    }\r\n+\r\n+    public String getLocalHost() {\r\n+        return newRpcContext.getLocalHost();\r\n+    }\r\n+\r\n+    public int getLocalPort() {\r\n+        return newRpcContext.getLocalPort();\r\n+    }\r\n+\r\n+    public String getRemoteHost() {\r\n+        return newRpcContext.getRemoteHost();\r\n+    }\r\n+\r\n+    public int getRemotePort() {\r\n+        return newRpcContext.getRemotePort();\r\n+    }\r\n+\r\n+    public String getAttachment(String key) {\r\n+        return newRpcContext.getAttachment(key);\r\n+    }\r\n+\r\n+    public RpcContext setAttachment(String key, String value) {\r\n+        newRpcContext.setAttachment(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public RpcContext removeAttachment(String key) {\r\n+        newRpcContext.removeAttachment(key);\r\n+        return this;\r\n+    }\r\n+\r\n+    public Map<String, String> getAttachments() {\r\n+        return newRpcContext.getAttachments();\r\n+    }\r\n+\r\n+    public RpcContext setAttachments(Map<String, String> attachment) {\r\n+        newRpcContext.setAttachments(attachment);\r\n+        return this;\r\n+    }\r\n+\r\n+    public void clearAttachments() {\r\n+        newRpcContext.clearAttachments();\r\n+    }\r\n+\r\n+    /**\r\n+     * get values.\r\n+     *\r\n+     * @return values\r\n+     */\r\n+    public Map<String, Object> get() {\r\n+        return newRpcContext.get();\r\n+    }\r\n+\r\n+    /**\r\n+     * set value.\r\n+     *\r\n+     * @param key\r\n+     * @param value\r\n+     * @return context\r\n+     */\r\n+    public RpcContext set(String key, Object value) {\r\n+        newRpcContext.set(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public RpcContext remove(String key) {\r\n+        newRpcContext.remove(key);\r\n+        return this;\r\n+    }\r\n+\r\n+    public Object get(String key) {\r\n+        return newRpcContext.get(key);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public boolean isServerSide() {\r\n+        return isProviderSide();\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public boolean isClientSide() {\r\n+        return isConsumerSide();\r\n+    }\r\n+\r\n+    /**\r\n+     * Async invocation. Timeout will be handled even if <code>Future.get()</code> is not called.\r\n+     *\r\n+     * @param callable\r\n+     * @return get the return result from <code>future.get()</code>\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> Future<T> asyncCall(Callable<T> callable) {\r\n+        try {\r\n+            try {\r\n+                setAttachment(Constants.ASYNC_KEY, Boolean.TRUE.toString());\r\n+                final T o = callable.call();\r\n+                //local invoke will return directly\r\n+                if (o != null) {\r\n+                    FutureTask<T> f = new FutureTask<T>(new Callable<T>() {\r\n+                        @Override\r\n+                        public T call() throws Exception {\r\n+                            return o;\r\n+                        }\r\n+                    });\r\n+                    f.run();\r\n+                    return f;\r\n+                } else {\r\n+\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(e);\r\n+            } finally {\r\n+                removeAttachment(Constants.ASYNC_KEY);\r\n+            }\r\n+        } catch (final RpcException e) {\r\n+            return new Future<T>() {\r\n+                @Override\r\n+                public boolean cancel(boolean mayInterruptIfRunning) {\r\n+                    return false;\r\n+                }\r\n+\r\n+                @Override\r\n+                public boolean isCancelled() {\r\n+                    return false;\r\n+                }\r\n+\r\n+                @Override\r\n+                public boolean isDone() {\r\n+                    return true;\r\n+                }\r\n+\r\n+                @Override\r\n+                public T get() throws InterruptedException, ExecutionException {\r\n+                    throw new ExecutionException(e.getCause());\r\n+                }\r\n+\r\n+                @Override\r\n+                public T get(long timeout, TimeUnit unit)\r\n+                        throws InterruptedException, ExecutionException,\r\n+                        TimeoutException {\r\n+                    return get();\r\n+                }\r\n+            };\r\n+        }\r\n+        return ((Future<T>) getContext().getFuture());\r\n+    }\r\n+\r\n+    /**\r\n+     * one way async call, send request only, and result is not required\r\n+     *\r\n+     * @param runnable\r\n+     */\r\n+    public void asyncCall(Runnable runnable) {\r\n+        try {\r\n+            setAttachment(Constants.RETURN_KEY, Boolean.FALSE.toString());\r\n+            runnable.run();\r\n+        } catch (Throwable e) {\r\n+            // FIXME should put exception in future?\r\n+            throw new RpcException(\"oneway call error .\" + e.getMessage(), e);\r\n+        } finally {\r\n+            removeAttachment(Constants.RETURN_KEY);\r\n+        }\r\n+    }\r\n+\r\n+    public <T> Future<T> getFuture() {\r\n+        CompletableFuture completableFuture = FutureContext.getContext().getCompatibleCompletableFuture();\r\n+        if (completableFuture == null) {\r\n+            return null;\r\n+        }\r\n+        return new FutureAdapter(completableFuture);\r\n+    }\r\n+\r\n+    public void setFuture(CompletableFuture<?> future) {\r\n+        FutureContext.getContext().setCompatibleFuture(future);\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/RpcInvocation.java", "source2": "com/alibaba/dubbo/rpc/RpcInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,208 +1,208 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc;\n-\n-import com.alibaba.dubbo.common.Constants;\n-import com.alibaba.dubbo.common.URL;\n-\n-import java.io.Serializable;\n-import java.lang.reflect.Method;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-public class RpcInvocation implements Invocation, Serializable {\n-\n-    private static final long serialVersionUID = -4355285085441097045L;\n-\n-    private String methodName;\n-\n-    private Class<?>[] parameterTypes;\n-\n-    private Object[] arguments;\n-\n-    private Map<String, String> attachments;\n-\n-    private transient Invoker<?> invoker;\n-\n-    public RpcInvocation() {\n-    }\n-\n-    public RpcInvocation(Invocation invocation, Invoker<?> invoker) {\n-        this(invocation.getMethodName(), invocation.getParameterTypes(),\n-                invocation.getArguments(), new HashMap<String, String>(invocation.getAttachments()),\n-                invocation.getInvoker());\n-        if (invoker != null) {\n-            URL url = invoker.getUrl();\n-            setAttachment(Constants.PATH_KEY, url.getPath());\n-            if (url.hasParameter(Constants.INTERFACE_KEY)) {\n-                setAttachment(Constants.INTERFACE_KEY, url.getParameter(Constants.INTERFACE_KEY));\n-            }\n-            if (url.hasParameter(Constants.GROUP_KEY)) {\n-                setAttachment(Constants.GROUP_KEY, url.getParameter(Constants.GROUP_KEY));\n-            }\n-            if (url.hasParameter(Constants.VERSION_KEY)) {\n-                setAttachment(Constants.VERSION_KEY, url.getParameter(Constants.VERSION_KEY, \"0.0.0\"));\n-            }\n-            if (url.hasParameter(Constants.TIMEOUT_KEY)) {\n-                setAttachment(Constants.TIMEOUT_KEY, url.getParameter(Constants.TIMEOUT_KEY));\n-            }\n-            if (url.hasParameter(Constants.TOKEN_KEY)) {\n-                setAttachment(Constants.TOKEN_KEY, url.getParameter(Constants.TOKEN_KEY));\n-            }\n-            if (url.hasParameter(Constants.APPLICATION_KEY)) {\n-                setAttachment(Constants.APPLICATION_KEY, url.getParameter(Constants.APPLICATION_KEY));\n-            }\n-        }\n-    }\n-\n-    public RpcInvocation(Invocation invocation) {\n-        this(invocation.getMethodName(), invocation.getParameterTypes(),\n-                invocation.getArguments(), invocation.getAttachments(), invocation.getInvoker());\n-    }\n-\n-    public RpcInvocation(Method method, Object[] arguments) {\n-        this(method.getName(), method.getParameterTypes(), arguments, null, null);\n-    }\n-\n-    public RpcInvocation(Method method, Object[] arguments, Map<String, String> attachment) {\n-        this(method.getName(), method.getParameterTypes(), arguments, attachment, null);\n-    }\n-\n-    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments) {\n-        this(methodName, parameterTypes, arguments, null, null);\n-    }\n-\n-    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments, Map<String, String> attachments) {\n-        this(methodName, parameterTypes, arguments, attachments, null);\n-    }\n-\n-    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments, Map<String, String> attachments, Invoker<?> invoker) {\n-        this.methodName = methodName;\n-        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\n-        this.arguments = arguments == null ? new Object[0] : arguments;\n-        this.attachments = attachments == null ? new HashMap<String, String>() : attachments;\n-        this.invoker = invoker;\n-    }\n-\n-    public Invoker<?> getInvoker() {\n-        return invoker;\n-    }\n-\n-    public void setInvoker(Invoker<?> invoker) {\n-        this.invoker = invoker;\n-    }\n-\n-    @Override\n-    public String getProtocolServiceKey() {\n-        return null;\n-    }\n-\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    public void setMethodName(String methodName) {\n-        this.methodName = methodName;\n-    }\n-\n-    public Class<?>[] getParameterTypes() {\n-        return parameterTypes;\n-    }\n-\n-    public void setParameterTypes(Class<?>[] parameterTypes) {\n-        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\n-    }\n-\n-    public Object[] getArguments() {\n-        return arguments;\n-    }\n-\n-    public void setArguments(Object[] arguments) {\n-        this.arguments = arguments == null ? new Object[0] : arguments;\n-    }\n-\n-    public Map<String, String> getAttachments() {\n-        return attachments;\n-    }\n-\n-    public void setAttachments(Map<String, String> attachments) {\n-        this.attachments = attachments == null ? new HashMap<String, String>() : attachments;\n-    }\n-\n-    public void setAttachment(String key, String value) {\n-        if (attachments == null) {\n-            attachments = new HashMap<String, String>();\n-        }\n-        attachments.put(key, value);\n-    }\n-\n-    public void setAttachmentIfAbsent(String key, String value) {\n-        if (attachments == null) {\n-            attachments = new HashMap<String, String>();\n-        }\n-        if (!attachments.containsKey(key)) {\n-            attachments.put(key, value);\n-        }\n-    }\n-\n-    public void addAttachments(Map<String, String> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        if (this.attachments == null) {\n-            this.attachments = new HashMap<String, String>();\n-        }\n-        this.attachments.putAll(attachments);\n-    }\n-\n-    public void addAttachmentsIfAbsent(Map<String, String> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        for (Map.Entry<String, String> entry : attachments.entrySet()) {\n-            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\n-        }\n-    }\n-\n-    public String getAttachment(String key) {\n-        if (attachments == null) {\n-            return null;\n-        }\n-        return (String) attachments.get(key);\n-    }\n-\n-    public String getAttachment(String key, String defaultValue) {\n-        if (attachments == null) {\n-            return defaultValue;\n-        }\n-        String value = (String) attachments.get(key);\n-        if (value == null || value.length() == 0) {\n-            return defaultValue;\n-        }\n-        return value;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"RpcInvocation [methodName=\" + methodName + \", parameterTypes=\"\n-                + Arrays.toString(parameterTypes) + \", arguments=\" + Arrays.toString(arguments)\n-                + \", attachments=\" + attachments + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc;\r\n+\r\n+import com.alibaba.dubbo.common.Constants;\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+import java.io.Serializable;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+public class RpcInvocation implements Invocation, Serializable {\r\n+\r\n+    private static final long serialVersionUID = -4355285085441097045L;\r\n+\r\n+    private String methodName;\r\n+\r\n+    private Class<?>[] parameterTypes;\r\n+\r\n+    private Object[] arguments;\r\n+\r\n+    private Map<String, String> attachments;\r\n+\r\n+    private transient Invoker<?> invoker;\r\n+\r\n+    public RpcInvocation() {\r\n+    }\r\n+\r\n+    public RpcInvocation(Invocation invocation, Invoker<?> invoker) {\r\n+        this(invocation.getMethodName(), invocation.getParameterTypes(),\r\n+                invocation.getArguments(), new HashMap<String, String>(invocation.getAttachments()),\r\n+                invocation.getInvoker());\r\n+        if (invoker != null) {\r\n+            URL url = invoker.getUrl();\r\n+            setAttachment(Constants.PATH_KEY, url.getPath());\r\n+            if (url.hasParameter(Constants.INTERFACE_KEY)) {\r\n+                setAttachment(Constants.INTERFACE_KEY, url.getParameter(Constants.INTERFACE_KEY));\r\n+            }\r\n+            if (url.hasParameter(Constants.GROUP_KEY)) {\r\n+                setAttachment(Constants.GROUP_KEY, url.getParameter(Constants.GROUP_KEY));\r\n+            }\r\n+            if (url.hasParameter(Constants.VERSION_KEY)) {\r\n+                setAttachment(Constants.VERSION_KEY, url.getParameter(Constants.VERSION_KEY, \"0.0.0\"));\r\n+            }\r\n+            if (url.hasParameter(Constants.TIMEOUT_KEY)) {\r\n+                setAttachment(Constants.TIMEOUT_KEY, url.getParameter(Constants.TIMEOUT_KEY));\r\n+            }\r\n+            if (url.hasParameter(Constants.TOKEN_KEY)) {\r\n+                setAttachment(Constants.TOKEN_KEY, url.getParameter(Constants.TOKEN_KEY));\r\n+            }\r\n+            if (url.hasParameter(Constants.APPLICATION_KEY)) {\r\n+                setAttachment(Constants.APPLICATION_KEY, url.getParameter(Constants.APPLICATION_KEY));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public RpcInvocation(Invocation invocation) {\r\n+        this(invocation.getMethodName(), invocation.getParameterTypes(),\r\n+                invocation.getArguments(), invocation.getAttachments(), invocation.getInvoker());\r\n+    }\r\n+\r\n+    public RpcInvocation(Method method, Object[] arguments) {\r\n+        this(method.getName(), method.getParameterTypes(), arguments, null, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(Method method, Object[] arguments, Map<String, String> attachment) {\r\n+        this(method.getName(), method.getParameterTypes(), arguments, attachment, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments) {\r\n+        this(methodName, parameterTypes, arguments, null, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments, Map<String, String> attachments) {\r\n+        this(methodName, parameterTypes, arguments, attachments, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, Class<?>[] parameterTypes, Object[] arguments, Map<String, String> attachments, Invoker<?> invoker) {\r\n+        this.methodName = methodName;\r\n+        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\r\n+        this.arguments = arguments == null ? new Object[0] : arguments;\r\n+        this.attachments = attachments == null ? new HashMap<String, String>() : attachments;\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    public Invoker<?> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+\r\n+    public void setInvoker(Invoker<?> invoker) {\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getProtocolServiceKey() {\r\n+        return null;\r\n+    }\r\n+\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    public void setMethodName(String methodName) {\r\n+        this.methodName = methodName;\r\n+    }\r\n+\r\n+    public Class<?>[] getParameterTypes() {\r\n+        return parameterTypes;\r\n+    }\r\n+\r\n+    public void setParameterTypes(Class<?>[] parameterTypes) {\r\n+        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\r\n+    }\r\n+\r\n+    public Object[] getArguments() {\r\n+        return arguments;\r\n+    }\r\n+\r\n+    public void setArguments(Object[] arguments) {\r\n+        this.arguments = arguments == null ? new Object[0] : arguments;\r\n+    }\r\n+\r\n+    public Map<String, String> getAttachments() {\r\n+        return attachments;\r\n+    }\r\n+\r\n+    public void setAttachments(Map<String, String> attachments) {\r\n+        this.attachments = attachments == null ? new HashMap<String, String>() : attachments;\r\n+    }\r\n+\r\n+    public void setAttachment(String key, String value) {\r\n+        if (attachments == null) {\r\n+            attachments = new HashMap<String, String>();\r\n+        }\r\n+        attachments.put(key, value);\r\n+    }\r\n+\r\n+    public void setAttachmentIfAbsent(String key, String value) {\r\n+        if (attachments == null) {\r\n+            attachments = new HashMap<String, String>();\r\n+        }\r\n+        if (!attachments.containsKey(key)) {\r\n+            attachments.put(key, value);\r\n+        }\r\n+    }\r\n+\r\n+    public void addAttachments(Map<String, String> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        if (this.attachments == null) {\r\n+            this.attachments = new HashMap<String, String>();\r\n+        }\r\n+        this.attachments.putAll(attachments);\r\n+    }\r\n+\r\n+    public void addAttachmentsIfAbsent(Map<String, String> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        for (Map.Entry<String, String> entry : attachments.entrySet()) {\r\n+            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    public String getAttachment(String key) {\r\n+        if (attachments == null) {\r\n+            return null;\r\n+        }\r\n+        return (String) attachments.get(key);\r\n+    }\r\n+\r\n+    public String getAttachment(String key, String defaultValue) {\r\n+        if (attachments == null) {\r\n+            return defaultValue;\r\n+        }\r\n+        String value = (String) attachments.get(key);\r\n+        if (value == null || value.length() == 0) {\r\n+            return defaultValue;\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"RpcInvocation [methodName=\" + methodName + \", parameterTypes=\"\r\n+                + Arrays.toString(parameterTypes) + \", arguments=\" + Arrays.toString(arguments)\r\n+                + \", attachments=\" + attachments + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/cluster/Directory.java", "source2": "com/alibaba/dubbo/rpc/cluster/Directory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc.cluster;\n-\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.alibaba.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-@Deprecated\n-public interface Directory<T> extends org.apache.dubbo.rpc.cluster.Directory<T> {\n-\n-    @Override\n-    URL getUrl();\n-\n-    List<com.alibaba.dubbo.rpc.Invoker<T>> list(com.alibaba.dubbo.rpc.Invocation invocation) throws com.alibaba.dubbo.rpc.RpcException;\n-\n-    @Override\n-    default List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        List<com.alibaba.dubbo.rpc.Invoker<T>> res = this.list(new com.alibaba.dubbo.rpc.Invocation.CompatibleInvocation(invocation));\n-        return res.stream().map(com.alibaba.dubbo.rpc.Invoker::getOriginal).collect(Collectors.toList());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+@Deprecated\r\n+public interface Directory<T> extends org.apache.dubbo.rpc.cluster.Directory<T> {\r\n+\r\n+    @Override\r\n+    URL getUrl();\r\n+\r\n+    List<com.alibaba.dubbo.rpc.Invoker<T>> list(com.alibaba.dubbo.rpc.Invocation invocation) throws com.alibaba.dubbo.rpc.RpcException;\r\n+\r\n+    @Override\r\n+    default List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        List<com.alibaba.dubbo.rpc.Invoker<T>> res = this.list(new com.alibaba.dubbo.rpc.Invocation.CompatibleInvocation(invocation));\r\n+        return res.stream().map(com.alibaba.dubbo.rpc.Invoker::getOriginal).collect(Collectors.toList());\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/protocol/dubbo/FutureAdapter.java", "source2": "com/alibaba/dubbo/rpc/protocol/dubbo/FutureAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,156 +1,156 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.Result;\n-\n-import com.alibaba.dubbo.remoting.RemotingException;\n-import com.alibaba.dubbo.remoting.exchange.ResponseCallback;\n-import com.alibaba.dubbo.remoting.exchange.ResponseFuture;\n-import com.alibaba.dubbo.rpc.RpcException;\n-\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.CompletionException;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.Future;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.function.BiConsumer;\n-\n-/**\n- * 2019-06-20\n- */\n-@Deprecated\n-public class FutureAdapter<V> implements Future<V> {\n-\n-    private CompletableFuture<Object> future;\n-\n-    public FutureAdapter(CompletableFuture<Object> future) {\n-        this.future = future;\n-    }\n-\n-    public FutureAdapter(ResponseFuture responseFuture) {\n-        this.future = new CompletableFuture<>();\n-        responseFuture.setCallback(new ResponseCallback() {\n-            @Override\n-            public void done(Object response) {\n-                future.complete(response);\n-            }\n-\n-            @Override\n-            public void caught(Throwable exception) {\n-                future.completeExceptionally(exception);\n-            }\n-        });\n-    }\n-\n-    public ResponseFuture getFuture() {\n-        return new ResponseFuture() {\n-            @Override\n-            public Object get() throws RemotingException {\n-                try {\n-                    return future.get();\n-                } catch (InterruptedException | ExecutionException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public Object get(int timeoutInMillis) throws RemotingException {\n-                try {\n-                    return future.get(timeoutInMillis, TimeUnit.MILLISECONDS);\n-                } catch (InterruptedException | TimeoutException | ExecutionException e) {\n-                    throw new RemotingException(e);\n-                }\n-            }\n-\n-            @Override\n-            public void setCallback(ResponseCallback callback) {\n-                FutureAdapter.this.setCallback(callback);\n-            }\n-\n-            @Override\n-            public boolean isDone() {\n-                return future.isDone();\n-            }\n-        };\n-    }\n-\n-    void setCallback(ResponseCallback callback) {\n-        BiConsumer<Object, ? super Throwable> biConsumer = new BiConsumer<Object, Throwable>() {\n-\n-            @Override\n-            public void accept(Object obj, Throwable t) {\n-                if (t != null) {\n-                    if (t instanceof CompletionException) {\n-                        t = t.getCause();\n-                    }\n-                    callback.caught(t);\n-                } else {\n-                    AppResponse appResponse = (AppResponse)obj;\n-                    if (appResponse.hasException()) {\n-                        callback.caught(appResponse.getException());\n-                    } else {\n-                        callback.done((V) appResponse.getValue());\n-                    }\n-                }\n-            }\n-        };\n-        future.whenComplete(biConsumer);\n-    }\n-\n-    @Override\n-    public boolean cancel(boolean mayInterruptIfRunning) {\n-        return false;\n-    }\n-\n-    @Override\n-    public boolean isCancelled() {\n-        return false;\n-    }\n-\n-    @Override\n-    public boolean isDone() {\n-        return future.isDone();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public V get() throws InterruptedException, ExecutionException {\n-        try {\n-            return (V) (((Result) future.get()).recreate());\n-        } catch (InterruptedException | ExecutionException e)  {\n-            throw e;\n-        } catch (Throwable e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\n-        try {\n-            return (V) (((Result) future.get(timeout, unit)).recreate());\n-        } catch (InterruptedException | ExecutionException | TimeoutException e)  {\n-            throw e;\n-        } catch (Throwable e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.Result;\r\n+\r\n+import com.alibaba.dubbo.remoting.RemotingException;\r\n+import com.alibaba.dubbo.remoting.exchange.ResponseCallback;\r\n+import com.alibaba.dubbo.remoting.exchange.ResponseFuture;\r\n+import com.alibaba.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.CompletionException;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.Future;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.function.BiConsumer;\r\n+\r\n+/**\r\n+ * 2019-06-20\r\n+ */\r\n+@Deprecated\r\n+public class FutureAdapter<V> implements Future<V> {\r\n+\r\n+    private CompletableFuture<Object> future;\r\n+\r\n+    public FutureAdapter(CompletableFuture<Object> future) {\r\n+        this.future = future;\r\n+    }\r\n+\r\n+    public FutureAdapter(ResponseFuture responseFuture) {\r\n+        this.future = new CompletableFuture<>();\r\n+        responseFuture.setCallback(new ResponseCallback() {\r\n+            @Override\r\n+            public void done(Object response) {\r\n+                future.complete(response);\r\n+            }\r\n+\r\n+            @Override\r\n+            public void caught(Throwable exception) {\r\n+                future.completeExceptionally(exception);\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    public ResponseFuture getFuture() {\r\n+        return new ResponseFuture() {\r\n+            @Override\r\n+            public Object get() throws RemotingException {\r\n+                try {\r\n+                    return future.get();\r\n+                } catch (InterruptedException | ExecutionException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public Object get(int timeoutInMillis) throws RemotingException {\r\n+                try {\r\n+                    return future.get(timeoutInMillis, TimeUnit.MILLISECONDS);\r\n+                } catch (InterruptedException | TimeoutException | ExecutionException e) {\r\n+                    throw new RemotingException(e);\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void setCallback(ResponseCallback callback) {\r\n+                FutureAdapter.this.setCallback(callback);\r\n+            }\r\n+\r\n+            @Override\r\n+            public boolean isDone() {\r\n+                return future.isDone();\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    void setCallback(ResponseCallback callback) {\r\n+        BiConsumer<Object, ? super Throwable> biConsumer = new BiConsumer<Object, Throwable>() {\r\n+\r\n+            @Override\r\n+            public void accept(Object obj, Throwable t) {\r\n+                if (t != null) {\r\n+                    if (t instanceof CompletionException) {\r\n+                        t = t.getCause();\r\n+                    }\r\n+                    callback.caught(t);\r\n+                } else {\r\n+                    AppResponse appResponse = (AppResponse)obj;\r\n+                    if (appResponse.hasException()) {\r\n+                        callback.caught(appResponse.getException());\r\n+                    } else {\r\n+                        callback.done((V) appResponse.getValue());\r\n+                    }\r\n+                }\r\n+            }\r\n+        };\r\n+        future.whenComplete(biConsumer);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean cancel(boolean mayInterruptIfRunning) {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isCancelled() {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDone() {\r\n+        return future.isDone();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public V get() throws InterruptedException, ExecutionException {\r\n+        try {\r\n+            return (V) (((Result) future.get()).recreate());\r\n+        } catch (InterruptedException | ExecutionException e)  {\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\r\n+        try {\r\n+            return (V) (((Result) future.get(timeout, unit)).recreate());\r\n+        } catch (InterruptedException | ExecutionException | TimeoutException e)  {\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java", "source2": "com/alibaba/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package com.alibaba.dubbo.rpc.protocol.rmi;\n-\n-import org.aopalliance.intercept.MethodInvocation;\n-\n-/**\n- * This class is deprecated, please use {@link org.apache.dubbo.rpc.protocol.rmi.RmiRemoteInvocation}.\n- *\n- * @author chickenlj\n- * @deprecated\n- */\n-@Deprecated\n-public class RmiRemoteInvocation extends org.apache.dubbo.rpc.protocol.rmi.RmiRemoteInvocation {\n-    private static final long serialVersionUID = 1L;\n-\n-    /**\n-     * executed on consumer side\n-     *\n-     * @param methodInvocation\n-     */\n-    public RmiRemoteInvocation(MethodInvocation methodInvocation) {\n-        super(methodInvocation);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package com.alibaba.dubbo.rpc.protocol.rmi;\r\n+\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+\r\n+/**\r\n+ * This class is deprecated, please use {@link org.apache.dubbo.rpc.protocol.rmi.RmiRemoteInvocation}.\r\n+ *\r\n+ * @author chickenlj\r\n+ * @deprecated\r\n+ */\r\n+@Deprecated\r\n+public class RmiRemoteInvocation extends org.apache.dubbo.rpc.protocol.rmi.RmiRemoteInvocation {\r\n+    private static final long serialVersionUID = 1L;\r\n+\r\n+    /**\r\n+     * executed on consumer side\r\n+     *\r\n+     * @param methodInvocation\r\n+     */\r\n+    public RmiRemoteInvocation(MethodInvocation methodInvocation) {\r\n+        super(methodInvocation);\r\n+    }\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/service/GenericException.java", "source2": "com/alibaba/dubbo/rpc/service/GenericException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc.service;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-@Deprecated\n-public class GenericException extends RuntimeException {\n-\n-    private static final long serialVersionUID = -1182299763306599962L;\n-\n-    private String exceptionClass;\n-\n-    private String exceptionMessage;\n-\n-    public GenericException() {\n-    }\n-\n-    public GenericException(String exceptionClass, String exceptionMessage) {\n-        super(exceptionMessage);\n-        this.exceptionClass = exceptionClass;\n-        this.exceptionMessage = exceptionMessage;\n-    }\n-\n-    public GenericException(Throwable cause) {\n-        super(StringUtils.toString(cause));\n-        this.exceptionClass = cause.getClass().getName();\n-        this.exceptionMessage = cause.getMessage();\n-    }\n-\n-    public String getExceptionClass() {\n-        return exceptionClass;\n-    }\n-\n-    public void setExceptionClass(String exceptionClass) {\n-        this.exceptionClass = exceptionClass;\n-    }\n-\n-    public String getExceptionMessage() {\n-        return exceptionMessage;\n-    }\n-\n-    public void setExceptionMessage(String exceptionMessage) {\n-        this.exceptionMessage = exceptionMessage;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc.service;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+@Deprecated\r\n+public class GenericException extends RuntimeException {\r\n+\r\n+    private static final long serialVersionUID = -1182299763306599962L;\r\n+\r\n+    private String exceptionClass;\r\n+\r\n+    private String exceptionMessage;\r\n+\r\n+    public GenericException() {\r\n+    }\r\n+\r\n+    public GenericException(String exceptionClass, String exceptionMessage) {\r\n+        super(exceptionMessage);\r\n+        this.exceptionClass = exceptionClass;\r\n+        this.exceptionMessage = exceptionMessage;\r\n+    }\r\n+\r\n+    public GenericException(Throwable cause) {\r\n+        super(StringUtils.toString(cause));\r\n+        this.exceptionClass = cause.getClass().getName();\r\n+        this.exceptionMessage = cause.getMessage();\r\n+    }\r\n+\r\n+    public String getExceptionClass() {\r\n+        return exceptionClass;\r\n+    }\r\n+\r\n+    public void setExceptionClass(String exceptionClass) {\r\n+        this.exceptionClass = exceptionClass;\r\n+    }\r\n+\r\n+    public String getExceptionMessage() {\r\n+        return exceptionMessage;\r\n+    }\r\n+\r\n+    public void setExceptionMessage(String exceptionMessage) {\r\n+        this.exceptionMessage = exceptionMessage;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "com/alibaba/dubbo/rpc/support/RpcUtils.java", "source2": "com/alibaba/dubbo/rpc/support/RpcUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,78 +1,78 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package com.alibaba.dubbo.rpc.support;\n-\n-import com.alibaba.dubbo.common.URL;\n-import com.alibaba.dubbo.rpc.Invocation;\n-\n-import java.lang.reflect.Type;\n-\n-/**\n- * 2019-04-18\n- */\n-public class RpcUtils extends org.apache.dubbo.rpc.support.RpcUtils {\n-\n-\n-    public static Class<?> getReturnType(Invocation invocation) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getReturnType(invocation);\n-    }\n-\n-    // TODO why not get return type when initialize Invocation?\n-    public static Type[] getReturnTypes(Invocation invocation) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getReturnTypes(invocation);\n-    }\n-\n-    public static Long getInvocationId(Invocation inv) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getInvocationId(inv);\n-    }\n-\n-    /**\n-     * Idempotent operation: invocation id will be added in async operation by default\n-     *\n-     * @param url\n-     * @param inv\n-     */\n-    public static void attachInvocationIdIfAsync(URL url, Invocation inv) {\n-        org.apache.dubbo.rpc.support.RpcUtils.attachInvocationIdIfAsync(url.getOriginalURL(), inv);\n-    }\n-\n-\n-    public static String getMethodName(Invocation invocation) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getMethodName(invocation);\n-    }\n-\n-    public static Object[] getArguments(Invocation invocation) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getArguments(invocation);\n-    }\n-\n-    public static Class<?>[] getParameterTypes(Invocation invocation) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.getParameterTypes(invocation);\n-    }\n-\n-    public static boolean isAsync(URL url, Invocation inv) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.isAsync(url.getOriginalURL(), inv);\n-    }\n-\n-    public static boolean isReturnTypeFuture(Invocation inv) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.isReturnTypeFuture(inv);\n-    }\n-\n-    public static boolean isOneway(URL url, Invocation inv) {\n-        return org.apache.dubbo.rpc.support.RpcUtils.isOneway(url.getOriginalURL(), inv);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package com.alibaba.dubbo.rpc.support;\r\n+\r\n+import com.alibaba.dubbo.common.URL;\r\n+import com.alibaba.dubbo.rpc.Invocation;\r\n+\r\n+import java.lang.reflect.Type;\r\n+\r\n+/**\r\n+ * 2019-04-18\r\n+ */\r\n+public class RpcUtils extends org.apache.dubbo.rpc.support.RpcUtils {\r\n+\r\n+\r\n+    public static Class<?> getReturnType(Invocation invocation) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getReturnType(invocation);\r\n+    }\r\n+\r\n+    // TODO why not get return type when initialize Invocation?\r\n+    public static Type[] getReturnTypes(Invocation invocation) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getReturnTypes(invocation);\r\n+    }\r\n+\r\n+    public static Long getInvocationId(Invocation inv) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getInvocationId(inv);\r\n+    }\r\n+\r\n+    /**\r\n+     * Idempotent operation: invocation id will be added in async operation by default\r\n+     *\r\n+     * @param url\r\n+     * @param inv\r\n+     */\r\n+    public static void attachInvocationIdIfAsync(URL url, Invocation inv) {\r\n+        org.apache.dubbo.rpc.support.RpcUtils.attachInvocationIdIfAsync(url.getOriginalURL(), inv);\r\n+    }\r\n+\r\n+\r\n+    public static String getMethodName(Invocation invocation) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getMethodName(invocation);\r\n+    }\r\n+\r\n+    public static Object[] getArguments(Invocation invocation) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getArguments(invocation);\r\n+    }\r\n+\r\n+    public static Class<?>[] getParameterTypes(Invocation invocation) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.getParameterTypes(invocation);\r\n+    }\r\n+\r\n+    public static boolean isAsync(URL url, Invocation inv) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.isAsync(url.getOriginalURL(), inv);\r\n+    }\r\n+\r\n+    public static boolean isReturnTypeFuture(Invocation inv) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.isReturnTypeFuture(inv);\r\n+    }\r\n+\r\n+    public static boolean isOneway(URL url, Invocation inv) {\r\n+        return org.apache.dubbo.rpc.support.RpcUtils.isOneway(url.getOriginalURL(), inv);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/cache/support/expiring/ExpiringCache.java", "source2": "org/apache/dubbo/cache/support/expiring/ExpiringCache.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,77 +1,77 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.cache.support.expiring;\n-\n-import org.apache.dubbo.cache.Cache;\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.Map;\n-\n-/**\n- * ExpiringCache - With the characteristic of expiration time.\n- */\n-\n-/**\n- * This class store the cache value with the characteristic of expiration time. If a service,method,consumer or provided is configured with key <b>cache</b>\n- * with value <b>expiring</b>, dubbo initialize the instance of this class using {@link ExpiringCacheFactory} to store method's returns value\n- * to server from store without making method call.\n- * <pre>\n- *     e.g. 1) &lt;dubbo:service cache=\"expiring\" cache.seconds=\"60\" cache.interval=\"10\"/&gt;\n- *          2) &lt;dubbo:consumer cache=\"expiring\" /&gt;\n- * </pre>\n- * <li>It used constructor argument url instance <b>cache.seconds</b> value to decide time to live of cached object.Default value of it is 180 second.</li>\n- * <li>It used constructor argument url instance <b>cache.interval</b> value for cache value expiration interval.Default value of this is 4 second</li>\n- * @see Cache\n- * @see ExpiringCacheFactory\n- * @see org.apache.dubbo.cache.support.AbstractCacheFactory\n- * @see org.apache.dubbo.cache.filter.CacheFilter\n- */\n-public class ExpiringCache implements Cache {\n-    private final Map<Object, Object> store;\n-\n-    public ExpiringCache(URL url) {\n-        // cache time (second)\n-        final int secondsToLive = url.getParameter(\"cache.seconds\", 180);\n-        // Cache check interval (second)\n-        final int intervalSeconds = url.getParameter(\"cache.interval\", 4);\n-        ExpiringMap<Object, Object> expiringMap = new ExpiringMap<>(secondsToLive, intervalSeconds);\n-        expiringMap.getExpireThread().startExpiryIfNotStarted();\n-        this.store = expiringMap;\n-    }\n-\n-    /**\n-     * API to store value against a key in the calling thread scope.\n-     * @param key  Unique identifier for the object being store.\n-     * @param value Value getting store\n-     */\n-    @Override\n-    public void put(Object key, Object value) {\n-        store.put(key, value);\n-    }\n-\n-    /**\n-     * API to return stored value using a key against the calling thread specific store.\n-     * @param key Unique identifier for cache lookup\n-     * @return Return stored object against key\n-     */\n-\n-    @Override\n-    public Object get(Object key) {\n-        return store.get(key);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.cache.support.expiring;\r\n+\r\n+import org.apache.dubbo.cache.Cache;\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * ExpiringCache - With the characteristic of expiration time.\r\n+ */\r\n+\r\n+/**\r\n+ * This class store the cache value with the characteristic of expiration time. If a service,method,consumer or provided is configured with key <b>cache</b>\r\n+ * with value <b>expiring</b>, dubbo initialize the instance of this class using {@link ExpiringCacheFactory} to store method's returns value\r\n+ * to server from store without making method call.\r\n+ * <pre>\r\n+ *     e.g. 1) &lt;dubbo:service cache=\"expiring\" cache.seconds=\"60\" cache.interval=\"10\"/&gt;\r\n+ *          2) &lt;dubbo:consumer cache=\"expiring\" /&gt;\r\n+ * </pre>\r\n+ * <li>It used constructor argument url instance <b>cache.seconds</b> value to decide time to live of cached object.Default value of it is 180 second.</li>\r\n+ * <li>It used constructor argument url instance <b>cache.interval</b> value for cache value expiration interval.Default value of this is 4 second</li>\r\n+ * @see Cache\r\n+ * @see ExpiringCacheFactory\r\n+ * @see org.apache.dubbo.cache.support.AbstractCacheFactory\r\n+ * @see org.apache.dubbo.cache.filter.CacheFilter\r\n+ */\r\n+public class ExpiringCache implements Cache {\r\n+    private final Map<Object, Object> store;\r\n+\r\n+    public ExpiringCache(URL url) {\r\n+        // cache time (second)\r\n+        final int secondsToLive = url.getParameter(\"cache.seconds\", 180);\r\n+        // Cache check interval (second)\r\n+        final int intervalSeconds = url.getParameter(\"cache.interval\", 4);\r\n+        ExpiringMap<Object, Object> expiringMap = new ExpiringMap<>(secondsToLive, intervalSeconds);\r\n+        expiringMap.getExpireThread().startExpiryIfNotStarted();\r\n+        this.store = expiringMap;\r\n+    }\r\n+\r\n+    /**\r\n+     * API to store value against a key in the calling thread scope.\r\n+     * @param key  Unique identifier for the object being store.\r\n+     * @param value Value getting store\r\n+     */\r\n+    @Override\r\n+    public void put(Object key, Object value) {\r\n+        store.put(key, value);\r\n+    }\r\n+\r\n+    /**\r\n+     * API to return stored value using a key against the calling thread specific store.\r\n+     * @param key Unique identifier for cache lookup\r\n+     * @return Return stored object against key\r\n+     */\r\n+\r\n+    @Override\r\n+    public Object get(Object key) {\r\n+        return store.get(key);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/cache/support/expiring/ExpiringMap.java", "source2": "org/apache/dubbo/cache/support/expiring/ExpiringMap.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,386 +1,386 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.cache.support.expiring;\n-\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.atomic.AtomicInteger;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-/**\n- * can be expired map\n- * Contains a background thread that periodically checks if the data is out of date\n- */\n-public class ExpiringMap<K, V> implements Map<K, V> {\n-\n-    /**\n-     * default time to live (second)\n-     */\n-    private static final int DEFAULT_TIME_TO_LIVE = 180;\n-\n-    /**\n-     * default expire check interval (second)\n-     */\n-    private static final int DEFAULT_EXPIRATION_INTERVAL = 1;\n-\n-    private static AtomicInteger expireCount = new AtomicInteger(1);\n-\n-    private final ConcurrentHashMap<K, ExpiryObject> delegateMap;\n-\n-    private final ExpireThread expireThread;\n-\n-    public ExpiringMap() {\n-        this(DEFAULT_TIME_TO_LIVE, DEFAULT_EXPIRATION_INTERVAL);\n-    }\n-\n-    /**\n-     * Constructor\n-     *\n-     * @param timeToLive time to live (second)\n-     */\n-    public ExpiringMap(int timeToLive) {\n-        this(timeToLive, DEFAULT_EXPIRATION_INTERVAL);\n-    }\n-\n-    public ExpiringMap(int timeToLive, int expirationInterval) {\n-        this(new ConcurrentHashMap<>(), timeToLive, expirationInterval);\n-    }\n-\n-    private ExpiringMap(ConcurrentHashMap<K, ExpiryObject> delegateMap, int timeToLive, int expirationInterval) {\n-        this.delegateMap = delegateMap;\n-        this.expireThread = new ExpireThread();\n-        expireThread.setTimeToLive(timeToLive);\n-        expireThread.setExpirationInterval(expirationInterval);\n-    }\n-\n-    @Override\n-    public V put(K key, V value) {\n-        ExpiryObject answer = delegateMap.put(key, new ExpiryObject(key, value, System.currentTimeMillis()));\n-        if (answer == null) {\n-            return null;\n-        }\n-        return answer.getValue();\n-    }\n-\n-    @Override\n-    public V get(Object key) {\n-        ExpiryObject object = delegateMap.get(key);\n-        if (object != null) {\n-            long timeIdle = System.currentTimeMillis() - object.getLastAccessTime();\n-            int timeToLive = expireThread.getTimeToLive();\n-            if (timeToLive > 0 && timeIdle >= timeToLive * 1000) {\n-                delegateMap.remove(object.getKey());\n-                return null;\n-            }\n-            object.setLastAccessTime(System.currentTimeMillis());\n-            return object.getValue();\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public V remove(Object key) {\n-        ExpiryObject answer = delegateMap.remove(key);\n-        if (answer == null) {\n-            return null;\n-        }\n-        return answer.getValue();\n-    }\n-\n-    @Override\n-    public boolean containsKey(Object key) {\n-        return delegateMap.containsKey(key);\n-    }\n-\n-    @Override\n-    public boolean containsValue(Object value) {\n-        return delegateMap.containsValue(value);\n-    }\n-\n-    @Override\n-    public int size() {\n-        return delegateMap.size();\n-    }\n-\n-    @Override\n-    public boolean isEmpty() {\n-        return delegateMap.isEmpty();\n-    }\n-\n-    @Override\n-    public void clear() {\n-        delegateMap.clear();\n-        expireThread.stopExpiring();\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return delegateMap.hashCode();\n-    }\n-\n-    @Override\n-    public Set<K> keySet() {\n-        return delegateMap.keySet();\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        return delegateMap.equals(obj);\n-    }\n-\n-    @Override\n-    public void putAll(Map<? extends K, ? extends V> inMap) {\n-        for (Entry<? extends K, ? extends V> e : inMap.entrySet()) {\n-            this.put(e.getKey(), e.getValue());\n-        }\n-    }\n-\n-    @Override\n-    public Collection<V> values() {\n-        List<V> list = new ArrayList<V>();\n-        Set<Entry<K, ExpiryObject>> delegatedSet = delegateMap.entrySet();\n-        for (Entry<K, ExpiryObject> entry : delegatedSet) {\n-            ExpiryObject value = entry.getValue();\n-            list.add(value.getValue());\n-        }\n-        return list;\n-    }\n-\n-    @Override\n-    public Set<Entry<K, V>> entrySet() {\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    public ExpireThread getExpireThread() {\n-        return expireThread;\n-    }\n-\n-    public int getExpirationInterval() {\n-        return expireThread.getExpirationInterval();\n-    }\n-\n-    public void setExpirationInterval(int expirationInterval) {\n-        expireThread.setExpirationInterval(expirationInterval);\n-    }\n-\n-    public int getTimeToLive() {\n-        return expireThread.getTimeToLive();\n-    }\n-\n-    public void setTimeToLive(int timeToLive) {\n-        expireThread.setTimeToLive(timeToLive);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ExpiringMap{\" +\n-                \"delegateMap=\" + delegateMap.toString() +\n-                \", expireThread=\" + expireThread.toString() +\n-                '}';\n-    }\n-\n-    /**\n-     * can be expired object\n-     */\n-    private class ExpiryObject {\n-        private K key;\n-        private V value;\n-        private AtomicLong lastAccessTime;\n-\n-        ExpiryObject(K key, V value, long lastAccessTime) {\n-            if (value == null) {\n-                throw new IllegalArgumentException(\"An expiring object cannot be null.\");\n-            }\n-            this.key = key;\n-            this.value = value;\n-            this.lastAccessTime = new AtomicLong(lastAccessTime);\n-        }\n-\n-        public long getLastAccessTime() {\n-            return lastAccessTime.get();\n-        }\n-\n-        public void setLastAccessTime(long lastAccessTime) {\n-            this.lastAccessTime.set(lastAccessTime);\n-        }\n-\n-        public K getKey() {\n-            return key;\n-        }\n-\n-        public V getValue() {\n-            return value;\n-        }\n-\n-        @Override\n-        public boolean equals(Object obj) {\n-            if (this == obj) {\n-                return true;\n-            }\n-            return value.equals(obj);\n-        }\n-\n-        @Override\n-        public int hashCode() {\n-            return value.hashCode();\n-        }\n-\n-        @Override\n-        public String toString() {\n-            return \"ExpiryObject{\" +\n-                    \"key=\" + key +\n-                    \", value=\" + value +\n-                    \", lastAccessTime=\" + lastAccessTime +\n-                    '}';\n-        }\n-    }\n-\n-    /**\n-     * Background thread, periodically checking if the data is out of date\n-     */\n-    public class ExpireThread implements Runnable {\n-        private long timeToLiveMillis;\n-        private long expirationIntervalMillis;\n-        private volatile boolean running = false;\n-        private final Thread expirerThread;\n-\n-        @Override\n-        public String toString() {\n-            return \"ExpireThread{\" +\n-                    \", timeToLiveMillis=\" + timeToLiveMillis +\n-                    \", expirationIntervalMillis=\" + expirationIntervalMillis +\n-                    \", running=\" + running +\n-                    \", expirerThread=\" + expirerThread +\n-                    '}';\n-        }\n-\n-        public ExpireThread() {\n-            expirerThread = new Thread(this, \"ExpiryMapExpire-\" + expireCount.getAndIncrement());\n-            expirerThread.setDaemon(true);\n-        }\n-\n-        @Override\n-        public void run() {\n-            while (running) {\n-                processExpires();\n-                try {\n-                    Thread.sleep(expirationIntervalMillis);\n-                } catch (InterruptedException e) {\n-                    running = false;\n-                }\n-            }\n-        }\n-\n-        private void processExpires() {\n-            long timeNow = System.currentTimeMillis();\n-            if (timeToLiveMillis <= 0) {\n-                return;\n-            }\n-            for (ExpiryObject o : delegateMap.values()) {\n-                long timeIdle = timeNow - o.getLastAccessTime();\n-                if (timeIdle >= timeToLiveMillis) {\n-                    delegateMap.remove(o.getKey());\n-                }\n-            }\n-        }\n-\n-        /**\n-         * start expiring Thread\n-         */\n-        public void startExpiring() {\n-            if (!running) {\n-                running = true;\n-                expirerThread.start();\n-            }\n-        }\n-\n-        /**\n-         * start thread\n-         */\n-        public void startExpiryIfNotStarted() {\n-            if (running && timeToLiveMillis <= 0) {\n-                return;\n-            }\n-            startExpiring();\n-        }\n-\n-        /**\n-         * stop thread\n-         */\n-        public void stopExpiring() {\n-            if (running) {\n-                running = false;\n-                expirerThread.interrupt();\n-            }\n-        }\n-\n-        /**\n-         * get thread state\n-         *\n-         * @return thread state\n-         */\n-        public boolean isRunning() {\n-            return running;\n-        }\n-\n-        /**\n-         * get time to live\n-         *\n-         * @return time to live\n-         */\n-        public int getTimeToLive() {\n-            return (int) timeToLiveMillis / 1000;\n-        }\n-\n-        /**\n-         * update time to live\n-         *\n-         * @param timeToLive time to live\n-         */\n-        public void setTimeToLive(long timeToLive) {\n-            this.timeToLiveMillis = timeToLive * 1000;\n-        }\n-\n-        /**\n-         * get expiration interval\n-         *\n-         * @return expiration interval (second)\n-         */\n-        public int getExpirationInterval() {\n-            return (int) expirationIntervalMillis / 1000;\n-        }\n-\n-        /**\n-         * set expiration interval\n-         *\n-         * @param expirationInterval expiration interval (second)\n-         */\n-        public void setExpirationInterval(long expirationInterval) {\n-            this.expirationIntervalMillis = expirationInterval * 1000;\n-        }\n-    }\n-}\n-\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.cache.support.expiring;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+/**\r\n+ * can be expired map\r\n+ * Contains a background thread that periodically checks if the data is out of date\r\n+ */\r\n+public class ExpiringMap<K, V> implements Map<K, V> {\r\n+\r\n+    /**\r\n+     * default time to live (second)\r\n+     */\r\n+    private static final int DEFAULT_TIME_TO_LIVE = 180;\r\n+\r\n+    /**\r\n+     * default expire check interval (second)\r\n+     */\r\n+    private static final int DEFAULT_EXPIRATION_INTERVAL = 1;\r\n+\r\n+    private static AtomicInteger expireCount = new AtomicInteger(1);\r\n+\r\n+    private final ConcurrentHashMap<K, ExpiryObject> delegateMap;\r\n+\r\n+    private final ExpireThread expireThread;\r\n+\r\n+    public ExpiringMap() {\r\n+        this(DEFAULT_TIME_TO_LIVE, DEFAULT_EXPIRATION_INTERVAL);\r\n+    }\r\n+\r\n+    /**\r\n+     * Constructor\r\n+     *\r\n+     * @param timeToLive time to live (second)\r\n+     */\r\n+    public ExpiringMap(int timeToLive) {\r\n+        this(timeToLive, DEFAULT_EXPIRATION_INTERVAL);\r\n+    }\r\n+\r\n+    public ExpiringMap(int timeToLive, int expirationInterval) {\r\n+        this(new ConcurrentHashMap<>(), timeToLive, expirationInterval);\r\n+    }\r\n+\r\n+    private ExpiringMap(ConcurrentHashMap<K, ExpiryObject> delegateMap, int timeToLive, int expirationInterval) {\r\n+        this.delegateMap = delegateMap;\r\n+        this.expireThread = new ExpireThread();\r\n+        expireThread.setTimeToLive(timeToLive);\r\n+        expireThread.setExpirationInterval(expirationInterval);\r\n+    }\r\n+\r\n+    @Override\r\n+    public V put(K key, V value) {\r\n+        ExpiryObject answer = delegateMap.put(key, new ExpiryObject(key, value, System.currentTimeMillis()));\r\n+        if (answer == null) {\r\n+            return null;\r\n+        }\r\n+        return answer.getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public V get(Object key) {\r\n+        ExpiryObject object = delegateMap.get(key);\r\n+        if (object != null) {\r\n+            long timeIdle = System.currentTimeMillis() - object.getLastAccessTime();\r\n+            int timeToLive = expireThread.getTimeToLive();\r\n+            if (timeToLive > 0 && timeIdle >= timeToLive * 1000) {\r\n+                delegateMap.remove(object.getKey());\r\n+                return null;\r\n+            }\r\n+            object.setLastAccessTime(System.currentTimeMillis());\r\n+            return object.getValue();\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public V remove(Object key) {\r\n+        ExpiryObject answer = delegateMap.remove(key);\r\n+        if (answer == null) {\r\n+            return null;\r\n+        }\r\n+        return answer.getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean containsKey(Object key) {\r\n+        return delegateMap.containsKey(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean containsValue(Object value) {\r\n+        return delegateMap.containsValue(value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int size() {\r\n+        return delegateMap.size();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isEmpty() {\r\n+        return delegateMap.isEmpty();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void clear() {\r\n+        delegateMap.clear();\r\n+        expireThread.stopExpiring();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return delegateMap.hashCode();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<K> keySet() {\r\n+        return delegateMap.keySet();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        return delegateMap.equals(obj);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void putAll(Map<? extends K, ? extends V> inMap) {\r\n+        for (Entry<? extends K, ? extends V> e : inMap.entrySet()) {\r\n+            this.put(e.getKey(), e.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<V> values() {\r\n+        List<V> list = new ArrayList<V>();\r\n+        Set<Entry<K, ExpiryObject>> delegatedSet = delegateMap.entrySet();\r\n+        for (Entry<K, ExpiryObject> entry : delegatedSet) {\r\n+            ExpiryObject value = entry.getValue();\r\n+            list.add(value.getValue());\r\n+        }\r\n+        return list;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<Entry<K, V>> entrySet() {\r\n+        throw new UnsupportedOperationException();\r\n+    }\r\n+\r\n+    public ExpireThread getExpireThread() {\r\n+        return expireThread;\r\n+    }\r\n+\r\n+    public int getExpirationInterval() {\r\n+        return expireThread.getExpirationInterval();\r\n+    }\r\n+\r\n+    public void setExpirationInterval(int expirationInterval) {\r\n+        expireThread.setExpirationInterval(expirationInterval);\r\n+    }\r\n+\r\n+    public int getTimeToLive() {\r\n+        return expireThread.getTimeToLive();\r\n+    }\r\n+\r\n+    public void setTimeToLive(int timeToLive) {\r\n+        expireThread.setTimeToLive(timeToLive);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ExpiringMap{\" +\r\n+                \"delegateMap=\" + delegateMap.toString() +\r\n+                \", expireThread=\" + expireThread.toString() +\r\n+                '}';\r\n+    }\r\n+\r\n+    /**\r\n+     * can be expired object\r\n+     */\r\n+    private class ExpiryObject {\r\n+        private K key;\r\n+        private V value;\r\n+        private AtomicLong lastAccessTime;\r\n+\r\n+        ExpiryObject(K key, V value, long lastAccessTime) {\r\n+            if (value == null) {\r\n+                throw new IllegalArgumentException(\"An expiring object cannot be null.\");\r\n+            }\r\n+            this.key = key;\r\n+            this.value = value;\r\n+            this.lastAccessTime = new AtomicLong(lastAccessTime);\r\n+        }\r\n+\r\n+        public long getLastAccessTime() {\r\n+            return lastAccessTime.get();\r\n+        }\r\n+\r\n+        public void setLastAccessTime(long lastAccessTime) {\r\n+            this.lastAccessTime.set(lastAccessTime);\r\n+        }\r\n+\r\n+        public K getKey() {\r\n+            return key;\r\n+        }\r\n+\r\n+        public V getValue() {\r\n+            return value;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean equals(Object obj) {\r\n+            if (this == obj) {\r\n+                return true;\r\n+            }\r\n+            return value.equals(obj);\r\n+        }\r\n+\r\n+        @Override\r\n+        public int hashCode() {\r\n+            return value.hashCode();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return \"ExpiryObject{\" +\r\n+                    \"key=\" + key +\r\n+                    \", value=\" + value +\r\n+                    \", lastAccessTime=\" + lastAccessTime +\r\n+                    '}';\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Background thread, periodically checking if the data is out of date\r\n+     */\r\n+    public class ExpireThread implements Runnable {\r\n+        private long timeToLiveMillis;\r\n+        private long expirationIntervalMillis;\r\n+        private volatile boolean running = false;\r\n+        private final Thread expirerThread;\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return \"ExpireThread{\" +\r\n+                    \", timeToLiveMillis=\" + timeToLiveMillis +\r\n+                    \", expirationIntervalMillis=\" + expirationIntervalMillis +\r\n+                    \", running=\" + running +\r\n+                    \", expirerThread=\" + expirerThread +\r\n+                    '}';\r\n+        }\r\n+\r\n+        public ExpireThread() {\r\n+            expirerThread = new Thread(this, \"ExpiryMapExpire-\" + expireCount.getAndIncrement());\r\n+            expirerThread.setDaemon(true);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            while (running) {\r\n+                processExpires();\r\n+                try {\r\n+                    Thread.sleep(expirationIntervalMillis);\r\n+                } catch (InterruptedException e) {\r\n+                    running = false;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        private void processExpires() {\r\n+            long timeNow = System.currentTimeMillis();\r\n+            if (timeToLiveMillis <= 0) {\r\n+                return;\r\n+            }\r\n+            for (ExpiryObject o : delegateMap.values()) {\r\n+                long timeIdle = timeNow - o.getLastAccessTime();\r\n+                if (timeIdle >= timeToLiveMillis) {\r\n+                    delegateMap.remove(o.getKey());\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * start expiring Thread\r\n+         */\r\n+        public void startExpiring() {\r\n+            if (!running) {\r\n+                running = true;\r\n+                expirerThread.start();\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * start thread\r\n+         */\r\n+        public void startExpiryIfNotStarted() {\r\n+            if (running && timeToLiveMillis <= 0) {\r\n+                return;\r\n+            }\r\n+            startExpiring();\r\n+        }\r\n+\r\n+        /**\r\n+         * stop thread\r\n+         */\r\n+        public void stopExpiring() {\r\n+            if (running) {\r\n+                running = false;\r\n+                expirerThread.interrupt();\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * get thread state\r\n+         *\r\n+         * @return thread state\r\n+         */\r\n+        public boolean isRunning() {\r\n+            return running;\r\n+        }\r\n+\r\n+        /**\r\n+         * get time to live\r\n+         *\r\n+         * @return time to live\r\n+         */\r\n+        public int getTimeToLive() {\r\n+            return (int) timeToLiveMillis / 1000;\r\n+        }\r\n+\r\n+        /**\r\n+         * update time to live\r\n+         *\r\n+         * @param timeToLive time to live\r\n+         */\r\n+        public void setTimeToLive(long timeToLive) {\r\n+            this.timeToLiveMillis = timeToLive * 1000;\r\n+        }\r\n+\r\n+        /**\r\n+         * get expiration interval\r\n+         *\r\n+         * @return expiration interval (second)\r\n+         */\r\n+        public int getExpirationInterval() {\r\n+            return (int) expirationIntervalMillis / 1000;\r\n+        }\r\n+\r\n+        /**\r\n+         * set expiration interval\r\n+         *\r\n+         * @param expirationInterval expiration interval (second)\r\n+         */\r\n+        public void setExpirationInterval(long expirationInterval) {\r\n+            this.expirationIntervalMillis = expirationInterval * 1000;\r\n+        }\r\n+    }\r\n+}\r\n+\r\n+\r\n+\r\n"}, {"source1": "org/apache/dubbo/cache/support/lfu/LfuCache.java", "source2": "org/apache/dubbo/cache/support/lfu/LfuCache.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.cache.support.lfu;\n-\n-import org.apache.dubbo.cache.Cache;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.LFUCache;\n-\n-/**\n- * This class store the cache value per thread. If a service,method,consumer or provided is configured with key <b>cache</b>\n- * with value <b>lfu</b>, dubbo initialize the instance of this class using {@link LfuCacheFactory} to store method's returns value\n- * to server from store without making method call.\n- * <pre>\n- *     e.g. 1) &lt;dubbo:service cache=\"lfu\" cache.size=\"5000\" cache.evictionFactor=\"0.3\"/&gt;\n- *          2) &lt;dubbo:consumer cache=\"lfu\" /&gt;\n- * </pre>\n- * <pre>\n- * LfuCache uses url's <b>cache.size</b> value for its max store size, url's <b>cache.evictionFactor</b> value for its eviction factor,\n- * default store size value will be 1000, default eviction factor will be 0.3\n- * </pre>\n- *\n- * @see Cache\n- * @see LfuCacheFactory\n- * @see org.apache.dubbo.cache.support.AbstractCacheFactory\n- * @see org.apache.dubbo.cache.filter.CacheFilter\n- */\n-public class LfuCache implements Cache {\n-\n-    /**\n-     * This is used to store cache records\n-     */\n-    private final LFUCache store;\n-\n-    /**\n-     *  Initialize LfuCache, it uses constructor argument <b>cache.size</b> value as its storage max size.\n-     *  If nothing is provided then it will use 1000 as default size value. <b>cache.evictionFactor</b> value as its eviction factor.\n-     *  If nothing is provided then it will use 0.3 as default value.\n-     * @param url A valid URL instance\n-     */\n-    public LfuCache (URL url) {\n-        final int max = url.getParameter(\"cache.size\", 1000);\n-        final float factor = url.getParameter(\"cache.evictionFactor\", 0.75f);\n-        this.store = new LFUCache(max, factor);\n-    }\n-\n-    /**\n-     * API to store value against a key in the calling thread scope.\n-     * @param key  Unique identifier for the object being store.\n-     * @param value Value getting store\n-     */\n-    @Override\n-    public void put(Object key, Object value) {\n-        store.put(key, value);\n-    }\n-\n-    /**\n-     * API to return stored value using a key against the calling thread specific store.\n-     * @param key Unique identifier for cache lookup\n-     * @return Return stored object against key\n-     */\n-    @Override\n-    public Object get(Object key) {\n-        return store.get(key);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.cache.support.lfu;\r\n+\r\n+import org.apache.dubbo.cache.Cache;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.LFUCache;\r\n+\r\n+/**\r\n+ * This class store the cache value per thread. If a service,method,consumer or provided is configured with key <b>cache</b>\r\n+ * with value <b>lfu</b>, dubbo initialize the instance of this class using {@link LfuCacheFactory} to store method's returns value\r\n+ * to server from store without making method call.\r\n+ * <pre>\r\n+ *     e.g. 1) &lt;dubbo:service cache=\"lfu\" cache.size=\"5000\" cache.evictionFactor=\"0.3\"/&gt;\r\n+ *          2) &lt;dubbo:consumer cache=\"lfu\" /&gt;\r\n+ * </pre>\r\n+ * <pre>\r\n+ * LfuCache uses url's <b>cache.size</b> value for its max store size, url's <b>cache.evictionFactor</b> value for its eviction factor,\r\n+ * default store size value will be 1000, default eviction factor will be 0.3\r\n+ * </pre>\r\n+ *\r\n+ * @see Cache\r\n+ * @see LfuCacheFactory\r\n+ * @see org.apache.dubbo.cache.support.AbstractCacheFactory\r\n+ * @see org.apache.dubbo.cache.filter.CacheFilter\r\n+ */\r\n+public class LfuCache implements Cache {\r\n+\r\n+    /**\r\n+     * This is used to store cache records\r\n+     */\r\n+    private final LFUCache store;\r\n+\r\n+    /**\r\n+     *  Initialize LfuCache, it uses constructor argument <b>cache.size</b> value as its storage max size.\r\n+     *  If nothing is provided then it will use 1000 as default size value. <b>cache.evictionFactor</b> value as its eviction factor.\r\n+     *  If nothing is provided then it will use 0.3 as default value.\r\n+     * @param url A valid URL instance\r\n+     */\r\n+    public LfuCache (URL url) {\r\n+        final int max = url.getParameter(\"cache.size\", 1000);\r\n+        final float factor = url.getParameter(\"cache.evictionFactor\", 0.75f);\r\n+        this.store = new LFUCache(max, factor);\r\n+    }\r\n+\r\n+    /**\r\n+     * API to store value against a key in the calling thread scope.\r\n+     * @param key  Unique identifier for the object being store.\r\n+     * @param value Value getting store\r\n+     */\r\n+    @Override\r\n+    public void put(Object key, Object value) {\r\n+        store.put(key, value);\r\n+    }\r\n+\r\n+    /**\r\n+     * API to return stored value using a key against the calling thread specific store.\r\n+     * @param key Unique identifier for cache lookup\r\n+     * @return Return stored object against key\r\n+     */\r\n+    @Override\r\n+    public Object get(Object key) {\r\n+        return store.get(key);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/cache/support/lfu/LfuCacheFactory.java", "source2": "org/apache/dubbo/cache/support/lfu/LfuCacheFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.cache.support.lfu;\n-\n-import org.apache.dubbo.cache.Cache;\n-import org.apache.dubbo.cache.support.AbstractCacheFactory;\n-import org.apache.dubbo.common.URL;\n-\n-/**\n- * Implement {@link org.apache.dubbo.cache.CacheFactory} by extending {@link AbstractCacheFactory} and provide\n- * instance of new {@link LfuCache}.\n- *\n- * @see AbstractCacheFactory\n- * @see LfuCache\n- * @see Cache\n- */\n-public class LfuCacheFactory extends AbstractCacheFactory {\n-\n-    /**\n-     * Takes url as an method argument and return new instance of cache store implemented by LfuCache.\n-     * @param url url of the method\n-     * @return ThreadLocalCache instance of cache\n-     */\n-    @Override\n-    protected Cache createCache(URL url) {\n-        return new LfuCache(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.cache.support.lfu;\r\n+\r\n+import org.apache.dubbo.cache.Cache;\r\n+import org.apache.dubbo.cache.support.AbstractCacheFactory;\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+/**\r\n+ * Implement {@link org.apache.dubbo.cache.CacheFactory} by extending {@link AbstractCacheFactory} and provide\r\n+ * instance of new {@link LfuCache}.\r\n+ *\r\n+ * @see AbstractCacheFactory\r\n+ * @see LfuCache\r\n+ * @see Cache\r\n+ */\r\n+public class LfuCacheFactory extends AbstractCacheFactory {\r\n+\r\n+    /**\r\n+     * Takes url as an method argument and return new instance of cache store implemented by LfuCache.\r\n+     * @param url url of the method\r\n+     * @return ThreadLocalCache instance of cache\r\n+     */\r\n+    @Override\r\n+    protected Cache createCache(URL url) {\r\n+        return new LfuCache(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/BaseServiceMetadata.java", "source2": "org/apache/dubbo/common/BaseServiceMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,137 +1,137 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_VERSION;\n-\n-/**\n- * 2019-10-10\n- */\n-public class BaseServiceMetadata {\n-    public static final char COLON_SEPARATOR = ':';\n-\n-    protected String serviceKey;\n-    protected String serviceInterfaceName;\n-    protected String version;\n-    protected volatile String group;\n-\n-    public static String buildServiceKey(String path, String group, String version) {\n-        StringBuilder buf = new StringBuilder();\n-        if (group != null && group.length() > 0) {\n-            buf.append(group).append(\"/\");\n-        }\n-        buf.append(path);\n-        if (version != null && version.length() > 0) {\n-            buf.append(\":\").append(version);\n-        }\n-        return buf.toString();\n-    }\n-\n-    public static String versionFromServiceKey(String serviceKey) {\n-        int index = serviceKey.indexOf(\":\");\n-        if (index == -1) {\n-            return DEFAULT_VERSION;\n-        }\n-        return serviceKey.substring(index + 1);\n-    }\n-\n-    public static String groupFromServiceKey(String serviceKey) {\n-        int index = serviceKey.indexOf(\"/\");\n-        if (index == -1) {\n-            return null;\n-        }\n-        return serviceKey.substring(0, index);\n-    }\n-\n-    public static String interfaceFromServiceKey(String serviceKey) {\n-        int groupIndex = serviceKey.indexOf(\"/\");\n-        int versionIndex = serviceKey.indexOf(\":\");\n-        groupIndex = (groupIndex == -1) ? 0 : groupIndex + 1;\n-        versionIndex = (versionIndex == -1) ? serviceKey.length() : versionIndex;\n-        return serviceKey.substring(groupIndex, versionIndex);\n-    }\n-\n-    /**\n-     * Format : interface:version\n-     *\n-     * @return\n-     */\n-    public String getDisplayServiceKey() {\n-        StringBuilder serviceNameBuilder = new StringBuilder();\n-        serviceNameBuilder.append(serviceInterfaceName);\n-        serviceNameBuilder.append(COLON_SEPARATOR).append(version);\n-        return serviceNameBuilder.toString();\n-    }\n-\n-    /**\n-     * revert of org.apache.dubbo.common.ServiceDescriptor#getDisplayServiceKey()\n-     *\n-     * @param displayKey\n-     * @return\n-     */\n-    public static BaseServiceMetadata revertDisplayServiceKey(String displayKey) {\n-        String[] eles = StringUtils.split(displayKey, COLON_SEPARATOR);\n-        if (eles == null || eles.length < 1 || eles.length > 2) {\n-            return new BaseServiceMetadata();\n-        }\n-        BaseServiceMetadata serviceDescriptor = new BaseServiceMetadata();\n-        serviceDescriptor.setServiceInterfaceName(eles[0]);\n-        if (eles.length == 2) {\n-            serviceDescriptor.setVersion(eles[1]);\n-        }\n-        return serviceDescriptor;\n-    }\n-\n-    public String getServiceKey() {\n-        return serviceKey;\n-    }\n-\n-    public void generateServiceKey() {\n-        this.serviceKey = buildServiceKey(serviceInterfaceName, group, version);\n-    }\n-\n-    public void setServiceKey(String serviceKey) {\n-        this.serviceKey = serviceKey;\n-    }\n-\n-    public String getServiceInterfaceName() {\n-        return serviceInterfaceName;\n-    }\n-\n-    public void setServiceInterfaceName(String serviceInterfaceName) {\n-        this.serviceInterfaceName = serviceInterfaceName;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_VERSION;\r\n+\r\n+/**\r\n+ * 2019-10-10\r\n+ */\r\n+public class BaseServiceMetadata {\r\n+    public static final char COLON_SEPARATOR = ':';\r\n+\r\n+    protected String serviceKey;\r\n+    protected String serviceInterfaceName;\r\n+    protected String version;\r\n+    protected volatile String group;\r\n+\r\n+    public static String buildServiceKey(String path, String group, String version) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (group != null && group.length() > 0) {\r\n+            buf.append(group).append(\"/\");\r\n+        }\r\n+        buf.append(path);\r\n+        if (version != null && version.length() > 0) {\r\n+            buf.append(\":\").append(version);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    public static String versionFromServiceKey(String serviceKey) {\r\n+        int index = serviceKey.indexOf(\":\");\r\n+        if (index == -1) {\r\n+            return DEFAULT_VERSION;\r\n+        }\r\n+        return serviceKey.substring(index + 1);\r\n+    }\r\n+\r\n+    public static String groupFromServiceKey(String serviceKey) {\r\n+        int index = serviceKey.indexOf(\"/\");\r\n+        if (index == -1) {\r\n+            return null;\r\n+        }\r\n+        return serviceKey.substring(0, index);\r\n+    }\r\n+\r\n+    public static String interfaceFromServiceKey(String serviceKey) {\r\n+        int groupIndex = serviceKey.indexOf(\"/\");\r\n+        int versionIndex = serviceKey.indexOf(\":\");\r\n+        groupIndex = (groupIndex == -1) ? 0 : groupIndex + 1;\r\n+        versionIndex = (versionIndex == -1) ? serviceKey.length() : versionIndex;\r\n+        return serviceKey.substring(groupIndex, versionIndex);\r\n+    }\r\n+\r\n+    /**\r\n+     * Format : interface:version\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public String getDisplayServiceKey() {\r\n+        StringBuilder serviceNameBuilder = new StringBuilder();\r\n+        serviceNameBuilder.append(serviceInterfaceName);\r\n+        serviceNameBuilder.append(COLON_SEPARATOR).append(version);\r\n+        return serviceNameBuilder.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * revert of org.apache.dubbo.common.ServiceDescriptor#getDisplayServiceKey()\r\n+     *\r\n+     * @param displayKey\r\n+     * @return\r\n+     */\r\n+    public static BaseServiceMetadata revertDisplayServiceKey(String displayKey) {\r\n+        String[] eles = StringUtils.split(displayKey, COLON_SEPARATOR);\r\n+        if (eles == null || eles.length < 1 || eles.length > 2) {\r\n+            return new BaseServiceMetadata();\r\n+        }\r\n+        BaseServiceMetadata serviceDescriptor = new BaseServiceMetadata();\r\n+        serviceDescriptor.setServiceInterfaceName(eles[0]);\r\n+        if (eles.length == 2) {\r\n+            serviceDescriptor.setVersion(eles[1]);\r\n+        }\r\n+        return serviceDescriptor;\r\n+    }\r\n+\r\n+    public String getServiceKey() {\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+    public void generateServiceKey() {\r\n+        this.serviceKey = buildServiceKey(serviceInterfaceName, group, version);\r\n+    }\r\n+\r\n+    public void setServiceKey(String serviceKey) {\r\n+        this.serviceKey = serviceKey;\r\n+    }\r\n+\r\n+    public String getServiceInterfaceName() {\r\n+        return serviceInterfaceName;\r\n+    }\r\n+\r\n+    public void setServiceInterfaceName(String serviceInterfaceName) {\r\n+        this.serviceInterfaceName = serviceInterfaceName;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/Experimental.java", "source2": "org/apache/dubbo/common/Experimental.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common;\n-\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Indicating unstable API, may get removed or changed in the next release.\n- */\n-@Retention(RetentionPolicy.CLASS)\n-@Target({\n-        ElementType.ANNOTATION_TYPE,\n-        ElementType.CONSTRUCTOR,\n-        ElementType.FIELD,\n-        ElementType.METHOD,\n-        ElementType.PACKAGE,\n-        ElementType.TYPE})\n-public @interface Experimental {\n-    String value();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common;\r\n+\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Indicating unstable API, may get removed or changed in the next release.\r\n+ */\r\n+@Retention(RetentionPolicy.CLASS)\r\n+@Target({\r\n+        ElementType.ANNOTATION_TYPE,\r\n+        ElementType.CONSTRUCTOR,\r\n+        ElementType.FIELD,\r\n+        ElementType.METHOD,\r\n+        ElementType.PACKAGE,\r\n+        ElementType.TYPE})\r\n+public @interface Experimental {\r\n+    String value();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/URLStrParser.java", "source2": "org/apache/dubbo/common/URLStrParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,367 +1,367 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common;\n-\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY_PREFIX;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.decodeHexByte;\n-import static org.apache.dubbo.common.utils.Utf8Utils.decodeUtf8;\n-\n-public final class URLStrParser {\n-\n-    private static final char SPACE = 0x20;\n-\n-    private static final ThreadLocal<TempBuf> DECODE_TEMP_BUF = ThreadLocal.withInitial(() -> new TempBuf(1024));\n-\n-    private URLStrParser() {\n-        //empty\n-    }\n-\n-    /**\n-     * @param decodedURLStr : after {@link URL#decode} string\n-     *                      decodedURLStr format: protocol://username:password@host:port/path?k1=v1&k2=v2\n-     *                      [protocol://][username:password@][host:port]/[path][?k1=v1&k2=v2]\n-     */\n-    public static URL parseDecodedStr(String decodedURLStr) {\n-        Map<String, String> parameters = null;\n-        int pathEndIdx = decodedURLStr.indexOf('?');\n-        if (pathEndIdx >= 0) {\n-            parameters = parseDecodedParams(decodedURLStr, pathEndIdx + 1);\n-        } else {\n-            pathEndIdx = decodedURLStr.length();\n-        }\n-\n-        String decodedBody = decodedURLStr.substring(0, pathEndIdx);\n-        return parseURLBody(decodedURLStr, decodedBody, parameters);\n-    }\n-\n-    private static Map<String, String> parseDecodedParams(String str, int from) {\n-        int len = str.length();\n-        if (from >= len) {\n-            return Collections.emptyMap();\n-        }\n-\n-        TempBuf tempBuf = DECODE_TEMP_BUF.get();\n-        Map<String, String> params = new HashMap<>();\n-        int nameStart = from;\n-        int valueStart = -1;\n-        int i;\n-        for (i = from; i < len; i++) {\n-            char ch = str.charAt(i);\n-            switch (ch) {\n-                case '=':\n-                    if (nameStart == i) {\n-                        nameStart = i + 1;\n-                    } else if (valueStart < nameStart) {\n-                        valueStart = i + 1;\n-                    }\n-                    break;\n-                case ';':\n-                case '&':\n-                    addParam(str, false, nameStart, valueStart, i, params, tempBuf);\n-                    nameStart = i + 1;\n-                    break;\n-                default:\n-                    // continue\n-            }\n-        }\n-        addParam(str, false, nameStart, valueStart, i, params, tempBuf);\n-        return params;\n-    }\n-\n-    /**\n-     * @param fullURLStr  : fullURLString\n-     * @param decodedBody : format: [protocol://][username:password@][host:port]/[path]\n-     * @param parameters  :\n-     * @return URL\n-     */\n-    private static URL parseURLBody(String fullURLStr, String decodedBody, Map<String, String> parameters) {\n-        int starIdx = 0, endIdx = decodedBody.length();\n-        String protocol = null;\n-        int protoEndIdx = decodedBody.indexOf(\"://\");\n-        if (protoEndIdx >= 0) {\n-            if (protoEndIdx == 0) {\n-                throw new IllegalStateException(\"url missing protocol: \\\"\" + fullURLStr + \"\\\"\");\n-            }\n-            protocol = decodedBody.substring(0, protoEndIdx);\n-            starIdx = protoEndIdx + 3;\n-        } else {\n-            // case: file:/path/to/file.txt\n-            protoEndIdx = decodedBody.indexOf(\":/\");\n-            if (protoEndIdx >= 0) {\n-                if (protoEndIdx == 0) {\n-                    throw new IllegalStateException(\"url missing protocol: \\\"\" + fullURLStr + \"\\\"\");\n-                }\n-                protocol = decodedBody.substring(0, protoEndIdx);\n-                starIdx = protoEndIdx + 1;\n-            }\n-        }\n-\n-        String path = null;\n-        int pathStartIdx = indexOf(decodedBody, '/', starIdx, endIdx);\n-        if (pathStartIdx >= 0) {\n-            path = decodedBody.substring(pathStartIdx + 1);\n-            endIdx = pathStartIdx;\n-        }\n-\n-        String username = null;\n-        String password = null;\n-        int pwdEndIdx = lastIndexOf(decodedBody, '@', starIdx, endIdx);\n-        if (pwdEndIdx > 0) {\n-            int userNameEndIdx = indexOf(decodedBody, ':', starIdx, pwdEndIdx);\n-            username = decodedBody.substring(starIdx, userNameEndIdx);\n-            password = decodedBody.substring(userNameEndIdx + 1, pwdEndIdx);\n-            starIdx = pwdEndIdx + 1;\n-        }\n-\n-        String host = null;\n-        int port = 0;\n-        int hostEndIdx = lastIndexOf(decodedBody, ':', starIdx, endIdx);\n-        if (hostEndIdx > 0 && hostEndIdx < decodedBody.length() - 1) {\n-            if (lastIndexOf(decodedBody, '%', starIdx, endIdx) > hostEndIdx) {\n-                // ipv6 address with scope id\n-                // e.g. fe80:0:0:0:894:aeec:f37d:23e1%en0\n-                // see https://howdoesinternetwork.com/2013/ipv6-zone-id\n-                // ignore\n-            } else {\n-                port = Integer.parseInt(decodedBody.substring(hostEndIdx + 1, endIdx));\n-                endIdx = hostEndIdx;\n-            }\n-        }\n-\n-        if (endIdx > starIdx) {\n-            host = decodedBody.substring(starIdx, endIdx);\n-        }\n-        return new URL(protocol, username, password, host, port, path, parameters);\n-    }\n-\n-    /**\n-     * @param encodedURLStr : after {@link URL#encode(String)} string\n-     *                      encodedURLStr after decode format: protocol://username:password@host:port/path?k1=v1&k2=v2\n-     *                      [protocol://][username:password@][host:port]/[path][?k1=v1&k2=v2]\n-     */\n-    public static URL parseEncodedStr(String encodedURLStr) {\n-        Map<String, String> parameters = null;\n-        int pathEndIdx = encodedURLStr.toUpperCase().indexOf(\"%3F\");// '?'\n-        if (pathEndIdx >= 0) {\n-            parameters = parseEncodedParams(encodedURLStr, pathEndIdx + 3);\n-        } else {\n-            pathEndIdx = encodedURLStr.length();\n-        }\n-\n-        //decodedBody format: [protocol://][username:password@][host:port]/[path]\n-        String decodedBody = decodeComponent(encodedURLStr, 0, pathEndIdx, false, DECODE_TEMP_BUF.get());\n-        return parseURLBody(encodedURLStr, decodedBody, parameters);\n-    }\n-\n-    private static Map<String, String> parseEncodedParams(String str, int from) {\n-        int len = str.length();\n-        if (from >= len) {\n-            return Collections.emptyMap();\n-        }\n-\n-        TempBuf tempBuf = DECODE_TEMP_BUF.get();\n-        Map<String, String> params = new HashMap<>();\n-        int nameStart = from;\n-        int valueStart = -1;\n-        int i;\n-        for (i = from; i < len; i++) {\n-            char ch = str.charAt(i);\n-            if (ch == '%') {\n-                if (i + 3 > len) {\n-                    throw new IllegalArgumentException(\"unterminated escape sequence at index \" + i + \" of: \" + str);\n-                }\n-                ch = (char) decodeHexByte(str, i + 1);\n-                i += 2;\n-            }\n-\n-            switch (ch) {\n-                case '=':\n-                    if (nameStart == i) {\n-                        nameStart = i + 1;\n-                    } else if (valueStart < nameStart) {\n-                        valueStart = i + 1;\n-                    }\n-                    break;\n-                case ';':\n-                case '&':\n-                    addParam(str, true, nameStart, valueStart, i - 2, params, tempBuf);\n-                    nameStart = i + 1;\n-                    break;\n-                default:\n-                    // continue\n-            }\n-        }\n-        addParam(str, true, nameStart, valueStart, i, params, tempBuf);\n-        return params;\n-    }\n-\n-    private static boolean addParam(String str, boolean isEncoded, int nameStart, int valueStart, int valueEnd, Map<String, String> params,\n-                                    TempBuf tempBuf) {\n-        if (nameStart >= valueEnd) {\n-            return false;\n-        }\n-\n-        if (valueStart <= nameStart) {\n-            valueStart = valueEnd + 1;\n-        }\n-\n-        if (isEncoded) {\n-            String name = decodeComponent(str, nameStart, valueStart - 3, false, tempBuf);\n-            String value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);\n-            if (valueStart == valueEnd) {\n-                value = name;\n-            } else {\n-                value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);\n-            }\n-            params.put(name, value);\n-            // compatible with lower versions registering \"default.\" keys\n-            if (name.startsWith(DEFAULT_KEY_PREFIX)) {\n-                params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);\n-            }\n-        } else {\n-            String name = str.substring(nameStart, valueStart - 1);\n-            String value = str.substring(valueStart, valueEnd);\n-            if (valueStart == valueEnd) {\n-                value = name;\n-            } else {\n-                value = str.substring(valueStart, valueEnd);\n-            }\n-            params.put(name, value);\n-            // compatible with lower versions registering \"default.\" keys\n-            if (name.startsWith(DEFAULT_KEY_PREFIX)) {\n-                params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);\n-            }\n-        }\n-        return true;\n-    }\n-\n-    private static String decodeComponent(String s, int from, int toExcluded, boolean isPath, TempBuf tempBuf) {\n-        int len = toExcluded - from;\n-        if (len <= 0) {\n-            return EMPTY_STRING;\n-        }\n-\n-        int firstEscaped = -1;\n-        for (int i = from; i < toExcluded; i++) {\n-            char c = s.charAt(i);\n-            if (c == '%' || c == '+' && !isPath) {\n-                firstEscaped = i;\n-                break;\n-            }\n-        }\n-        if (firstEscaped == -1) {\n-            return s.substring(from, toExcluded);\n-        }\n-\n-        // Each encoded byte takes 3 characters (e.g. \"%20\")\n-        int decodedCapacity = (toExcluded - firstEscaped) / 3;\n-        byte[] buf = tempBuf.byteBuf(decodedCapacity);\n-        char[] charBuf = tempBuf.charBuf(len);\n-        s.getChars(from, firstEscaped, charBuf, 0);\n-\n-        int charBufIdx = firstEscaped - from;\n-        return decodeUtf8Component(s, firstEscaped, toExcluded, isPath, buf, charBuf, charBufIdx);\n-    }\n-\n-    private static String decodeUtf8Component(String str, int firstEscaped, int toExcluded, boolean isPath, byte[] buf,\n-                                              char[] charBuf, int charBufIdx) {\n-        int bufIdx;\n-        for (int i = firstEscaped; i < toExcluded; i++) {\n-            char c = str.charAt(i);\n-            if (c != '%') {\n-                charBuf[charBufIdx++] = c != '+' || isPath ? c : SPACE;\n-                continue;\n-            }\n-\n-            bufIdx = 0;\n-            do {\n-                if (i + 3 > toExcluded) {\n-                    throw new IllegalArgumentException(\"unterminated escape sequence at index \" + i + \" of: \" + str);\n-                }\n-                buf[bufIdx++] = decodeHexByte(str, i + 1);\n-                i += 3;\n-            } while (i < toExcluded && str.charAt(i) == '%');\n-            i--;\n-\n-            charBufIdx += decodeUtf8(buf, 0, bufIdx, charBuf, charBufIdx);\n-        }\n-        return new String(charBuf, 0, charBufIdx);\n-    }\n-\n-    private static int indexOf(String str, char ch, int from, int toExclude) {\n-        from = Math.max(from, 0);\n-        toExclude = Math.min(toExclude, str.length());\n-        if (from > toExclude) {\n-            return -1;\n-        }\n-\n-        for (int i = from; i < toExclude; i++) {\n-            if (str.charAt(i) == ch) {\n-                return i;\n-            }\n-        }\n-        return -1;\n-    }\n-\n-    private static int lastIndexOf(String str, char ch, int from, int toExclude) {\n-        from = Math.max(from, 0);\n-        toExclude = Math.min(toExclude, str.length() - 1);\n-        if (from > toExclude) {\n-            return -1;\n-        }\n-\n-        for (int i = toExclude; i >= from; i--) {\n-            if (str.charAt(i) == ch) {\n-                return i;\n-            }\n-        }\n-        return -1;\n-    }\n-\n-    private static final class TempBuf {\n-\n-        private final char[] chars;\n-\n-        private final byte[] bytes;\n-\n-        TempBuf(int bufSize) {\n-            this.chars = new char[bufSize];\n-            this.bytes = new byte[bufSize];\n-        }\n-\n-        public char[] charBuf(int size) {\n-            char[] chars = this.chars;\n-            if (size <= chars.length) {\n-                return chars;\n-            }\n-            return new char[size];\n-        }\n-\n-        public byte[] byteBuf(int size) {\n-            byte[] bytes = this.bytes;\n-            if (size <= bytes.length) {\n-                return bytes;\n-            }\n-            return new byte[size];\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY_PREFIX;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.decodeHexByte;\r\n+import static org.apache.dubbo.common.utils.Utf8Utils.decodeUtf8;\r\n+\r\n+public final class URLStrParser {\r\n+\r\n+    private static final char SPACE = 0x20;\r\n+\r\n+    private static final ThreadLocal<TempBuf> DECODE_TEMP_BUF = ThreadLocal.withInitial(() -> new TempBuf(1024));\r\n+\r\n+    private URLStrParser() {\r\n+        //empty\r\n+    }\r\n+\r\n+    /**\r\n+     * @param decodedURLStr : after {@link URL#decode} string\r\n+     *                      decodedURLStr format: protocol://username:password@host:port/path?k1=v1&k2=v2\r\n+     *                      [protocol://][username:password@][host:port]/[path][?k1=v1&k2=v2]\r\n+     */\r\n+    public static URL parseDecodedStr(String decodedURLStr) {\r\n+        Map<String, String> parameters = null;\r\n+        int pathEndIdx = decodedURLStr.indexOf('?');\r\n+        if (pathEndIdx >= 0) {\r\n+            parameters = parseDecodedParams(decodedURLStr, pathEndIdx + 1);\r\n+        } else {\r\n+            pathEndIdx = decodedURLStr.length();\r\n+        }\r\n+\r\n+        String decodedBody = decodedURLStr.substring(0, pathEndIdx);\r\n+        return parseURLBody(decodedURLStr, decodedBody, parameters);\r\n+    }\r\n+\r\n+    private static Map<String, String> parseDecodedParams(String str, int from) {\r\n+        int len = str.length();\r\n+        if (from >= len) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+\r\n+        TempBuf tempBuf = DECODE_TEMP_BUF.get();\r\n+        Map<String, String> params = new HashMap<>();\r\n+        int nameStart = from;\r\n+        int valueStart = -1;\r\n+        int i;\r\n+        for (i = from; i < len; i++) {\r\n+            char ch = str.charAt(i);\r\n+            switch (ch) {\r\n+                case '=':\r\n+                    if (nameStart == i) {\r\n+                        nameStart = i + 1;\r\n+                    } else if (valueStart < nameStart) {\r\n+                        valueStart = i + 1;\r\n+                    }\r\n+                    break;\r\n+                case ';':\r\n+                case '&':\r\n+                    addParam(str, false, nameStart, valueStart, i, params, tempBuf);\r\n+                    nameStart = i + 1;\r\n+                    break;\r\n+                default:\r\n+                    // continue\r\n+            }\r\n+        }\r\n+        addParam(str, false, nameStart, valueStart, i, params, tempBuf);\r\n+        return params;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param fullURLStr  : fullURLString\r\n+     * @param decodedBody : format: [protocol://][username:password@][host:port]/[path]\r\n+     * @param parameters  :\r\n+     * @return URL\r\n+     */\r\n+    private static URL parseURLBody(String fullURLStr, String decodedBody, Map<String, String> parameters) {\r\n+        int starIdx = 0, endIdx = decodedBody.length();\r\n+        String protocol = null;\r\n+        int protoEndIdx = decodedBody.indexOf(\"://\");\r\n+        if (protoEndIdx >= 0) {\r\n+            if (protoEndIdx == 0) {\r\n+                throw new IllegalStateException(\"url missing protocol: \\\"\" + fullURLStr + \"\\\"\");\r\n+            }\r\n+            protocol = decodedBody.substring(0, protoEndIdx);\r\n+            starIdx = protoEndIdx + 3;\r\n+        } else {\r\n+            // case: file:/path/to/file.txt\r\n+            protoEndIdx = decodedBody.indexOf(\":/\");\r\n+            if (protoEndIdx >= 0) {\r\n+                if (protoEndIdx == 0) {\r\n+                    throw new IllegalStateException(\"url missing protocol: \\\"\" + fullURLStr + \"\\\"\");\r\n+                }\r\n+                protocol = decodedBody.substring(0, protoEndIdx);\r\n+                starIdx = protoEndIdx + 1;\r\n+            }\r\n+        }\r\n+\r\n+        String path = null;\r\n+        int pathStartIdx = indexOf(decodedBody, '/', starIdx, endIdx);\r\n+        if (pathStartIdx >= 0) {\r\n+            path = decodedBody.substring(pathStartIdx + 1);\r\n+            endIdx = pathStartIdx;\r\n+        }\r\n+\r\n+        String username = null;\r\n+        String password = null;\r\n+        int pwdEndIdx = lastIndexOf(decodedBody, '@', starIdx, endIdx);\r\n+        if (pwdEndIdx > 0) {\r\n+            int userNameEndIdx = indexOf(decodedBody, ':', starIdx, pwdEndIdx);\r\n+            username = decodedBody.substring(starIdx, userNameEndIdx);\r\n+            password = decodedBody.substring(userNameEndIdx + 1, pwdEndIdx);\r\n+            starIdx = pwdEndIdx + 1;\r\n+        }\r\n+\r\n+        String host = null;\r\n+        int port = 0;\r\n+        int hostEndIdx = lastIndexOf(decodedBody, ':', starIdx, endIdx);\r\n+        if (hostEndIdx > 0 && hostEndIdx < decodedBody.length() - 1) {\r\n+            if (lastIndexOf(decodedBody, '%', starIdx, endIdx) > hostEndIdx) {\r\n+                // ipv6 address with scope id\r\n+                // e.g. fe80:0:0:0:894:aeec:f37d:23e1%en0\r\n+                // see https://howdoesinternetwork.com/2013/ipv6-zone-id\r\n+                // ignore\r\n+            } else {\r\n+                port = Integer.parseInt(decodedBody.substring(hostEndIdx + 1, endIdx));\r\n+                endIdx = hostEndIdx;\r\n+            }\r\n+        }\r\n+\r\n+        if (endIdx > starIdx) {\r\n+            host = decodedBody.substring(starIdx, endIdx);\r\n+        }\r\n+        return new URL(protocol, username, password, host, port, path, parameters);\r\n+    }\r\n+\r\n+    /**\r\n+     * @param encodedURLStr : after {@link URL#encode(String)} string\r\n+     *                      encodedURLStr after decode format: protocol://username:password@host:port/path?k1=v1&k2=v2\r\n+     *                      [protocol://][username:password@][host:port]/[path][?k1=v1&k2=v2]\r\n+     */\r\n+    public static URL parseEncodedStr(String encodedURLStr) {\r\n+        Map<String, String> parameters = null;\r\n+        int pathEndIdx = encodedURLStr.toUpperCase().indexOf(\"%3F\");// '?'\r\n+        if (pathEndIdx >= 0) {\r\n+            parameters = parseEncodedParams(encodedURLStr, pathEndIdx + 3);\r\n+        } else {\r\n+            pathEndIdx = encodedURLStr.length();\r\n+        }\r\n+\r\n+        //decodedBody format: [protocol://][username:password@][host:port]/[path]\r\n+        String decodedBody = decodeComponent(encodedURLStr, 0, pathEndIdx, false, DECODE_TEMP_BUF.get());\r\n+        return parseURLBody(encodedURLStr, decodedBody, parameters);\r\n+    }\r\n+\r\n+    private static Map<String, String> parseEncodedParams(String str, int from) {\r\n+        int len = str.length();\r\n+        if (from >= len) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+\r\n+        TempBuf tempBuf = DECODE_TEMP_BUF.get();\r\n+        Map<String, String> params = new HashMap<>();\r\n+        int nameStart = from;\r\n+        int valueStart = -1;\r\n+        int i;\r\n+        for (i = from; i < len; i++) {\r\n+            char ch = str.charAt(i);\r\n+            if (ch == '%') {\r\n+                if (i + 3 > len) {\r\n+                    throw new IllegalArgumentException(\"unterminated escape sequence at index \" + i + \" of: \" + str);\r\n+                }\r\n+                ch = (char) decodeHexByte(str, i + 1);\r\n+                i += 2;\r\n+            }\r\n+\r\n+            switch (ch) {\r\n+                case '=':\r\n+                    if (nameStart == i) {\r\n+                        nameStart = i + 1;\r\n+                    } else if (valueStart < nameStart) {\r\n+                        valueStart = i + 1;\r\n+                    }\r\n+                    break;\r\n+                case ';':\r\n+                case '&':\r\n+                    addParam(str, true, nameStart, valueStart, i - 2, params, tempBuf);\r\n+                    nameStart = i + 1;\r\n+                    break;\r\n+                default:\r\n+                    // continue\r\n+            }\r\n+        }\r\n+        addParam(str, true, nameStart, valueStart, i, params, tempBuf);\r\n+        return params;\r\n+    }\r\n+\r\n+    private static boolean addParam(String str, boolean isEncoded, int nameStart, int valueStart, int valueEnd, Map<String, String> params,\r\n+                                    TempBuf tempBuf) {\r\n+        if (nameStart >= valueEnd) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (valueStart <= nameStart) {\r\n+            valueStart = valueEnd + 1;\r\n+        }\r\n+\r\n+        if (isEncoded) {\r\n+            String name = decodeComponent(str, nameStart, valueStart - 3, false, tempBuf);\r\n+            String value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);\r\n+            if (valueStart == valueEnd) {\r\n+                value = name;\r\n+            } else {\r\n+                value = decodeComponent(str, valueStart, valueEnd, false, tempBuf);\r\n+            }\r\n+            params.put(name, value);\r\n+            // compatible with lower versions registering \"default.\" keys\r\n+            if (name.startsWith(DEFAULT_KEY_PREFIX)) {\r\n+                params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);\r\n+            }\r\n+        } else {\r\n+            String name = str.substring(nameStart, valueStart - 1);\r\n+            String value = str.substring(valueStart, valueEnd);\r\n+            if (valueStart == valueEnd) {\r\n+                value = name;\r\n+            } else {\r\n+                value = str.substring(valueStart, valueEnd);\r\n+            }\r\n+            params.put(name, value);\r\n+            // compatible with lower versions registering \"default.\" keys\r\n+            if (name.startsWith(DEFAULT_KEY_PREFIX)) {\r\n+                params.putIfAbsent(name.substring(DEFAULT_KEY_PREFIX.length()), value);\r\n+            }\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    private static String decodeComponent(String s, int from, int toExcluded, boolean isPath, TempBuf tempBuf) {\r\n+        int len = toExcluded - from;\r\n+        if (len <= 0) {\r\n+            return EMPTY_STRING;\r\n+        }\r\n+\r\n+        int firstEscaped = -1;\r\n+        for (int i = from; i < toExcluded; i++) {\r\n+            char c = s.charAt(i);\r\n+            if (c == '%' || c == '+' && !isPath) {\r\n+                firstEscaped = i;\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (firstEscaped == -1) {\r\n+            return s.substring(from, toExcluded);\r\n+        }\r\n+\r\n+        // Each encoded byte takes 3 characters (e.g. \"%20\")\r\n+        int decodedCapacity = (toExcluded - firstEscaped) / 3;\r\n+        byte[] buf = tempBuf.byteBuf(decodedCapacity);\r\n+        char[] charBuf = tempBuf.charBuf(len);\r\n+        s.getChars(from, firstEscaped, charBuf, 0);\r\n+\r\n+        int charBufIdx = firstEscaped - from;\r\n+        return decodeUtf8Component(s, firstEscaped, toExcluded, isPath, buf, charBuf, charBufIdx);\r\n+    }\r\n+\r\n+    private static String decodeUtf8Component(String str, int firstEscaped, int toExcluded, boolean isPath, byte[] buf,\r\n+                                              char[] charBuf, int charBufIdx) {\r\n+        int bufIdx;\r\n+        for (int i = firstEscaped; i < toExcluded; i++) {\r\n+            char c = str.charAt(i);\r\n+            if (c != '%') {\r\n+                charBuf[charBufIdx++] = c != '+' || isPath ? c : SPACE;\r\n+                continue;\r\n+            }\r\n+\r\n+            bufIdx = 0;\r\n+            do {\r\n+                if (i + 3 > toExcluded) {\r\n+                    throw new IllegalArgumentException(\"unterminated escape sequence at index \" + i + \" of: \" + str);\r\n+                }\r\n+                buf[bufIdx++] = decodeHexByte(str, i + 1);\r\n+                i += 3;\r\n+            } while (i < toExcluded && str.charAt(i) == '%');\r\n+            i--;\r\n+\r\n+            charBufIdx += decodeUtf8(buf, 0, bufIdx, charBuf, charBufIdx);\r\n+        }\r\n+        return new String(charBuf, 0, charBufIdx);\r\n+    }\r\n+\r\n+    private static int indexOf(String str, char ch, int from, int toExclude) {\r\n+        from = Math.max(from, 0);\r\n+        toExclude = Math.min(toExclude, str.length());\r\n+        if (from > toExclude) {\r\n+            return -1;\r\n+        }\r\n+\r\n+        for (int i = from; i < toExclude; i++) {\r\n+            if (str.charAt(i) == ch) {\r\n+                return i;\r\n+            }\r\n+        }\r\n+        return -1;\r\n+    }\r\n+\r\n+    private static int lastIndexOf(String str, char ch, int from, int toExclude) {\r\n+        from = Math.max(from, 0);\r\n+        toExclude = Math.min(toExclude, str.length() - 1);\r\n+        if (from > toExclude) {\r\n+            return -1;\r\n+        }\r\n+\r\n+        for (int i = toExclude; i >= from; i--) {\r\n+            if (str.charAt(i) == ch) {\r\n+                return i;\r\n+            }\r\n+        }\r\n+        return -1;\r\n+    }\r\n+\r\n+    private static final class TempBuf {\r\n+\r\n+        private final char[] chars;\r\n+\r\n+        private final byte[] bytes;\r\n+\r\n+        TempBuf(int bufSize) {\r\n+            this.chars = new char[bufSize];\r\n+            this.bytes = new byte[bufSize];\r\n+        }\r\n+\r\n+        public char[] charBuf(int size) {\r\n+            char[] chars = this.chars;\r\n+            if (size <= chars.length) {\r\n+                return chars;\r\n+            }\r\n+            return new char[size];\r\n+        }\r\n+\r\n+        public byte[] byteBuf(int size) {\r\n+            byte[] bytes = this.bytes;\r\n+            if (size <= bytes.length) {\r\n+                return bytes;\r\n+            }\r\n+            return new byte[size];\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/Version.java", "source2": "org/apache/dubbo/common/Version.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,278 +1,278 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.io.IOException;\n-import java.net.URL;\n-import java.security.CodeSource;\n-import java.util.Enumeration;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.regex.Matcher;\n-import java.util.regex.Pattern;\n-\n-/**\n- * Version\n- */\n-public final class Version {\n-    private static final Logger logger = LoggerFactory.getLogger(Version.class);\n-\n-    private static final Pattern PREFIX_DIGITS_PATTERN = Pattern.compile(\"^([0-9]*).*\");\n-\n-    // Dubbo RPC protocol version, for compatibility, it must not be between 2.0.10 ~ 2.6.2\n-    public static final String DEFAULT_DUBBO_PROTOCOL_VERSION = \"2.0.2\";\n-    // version 1.0.0 represents Dubbo rpc protocol before v2.6.2\n-    public static final int LEGACY_DUBBO_PROTOCOL_VERSION = 10000; // 1.0.0\n-    // Dubbo implementation version, usually is jar version.\n-    private static final String VERSION = getVersion(Version.class, \"\");\n-\n-    /**\n-     * For protocol compatibility purpose.\n-     * Because {@link #isSupportResponseAttachment} is checked for every call, int compare expect to has higher\n-     * performance than string.\n-     */\n-    public static final int LOWEST_VERSION_FOR_RESPONSE_ATTACHMENT = 2000200; // 2.0.2\n-    public static final int HIGHEST_PROTOCOL_VERSION = 2009900; // 2.0.99\n-    private static final Map<String, Integer> VERSION2INT = new HashMap<String, Integer>();\n-\n-    static {\n-        // check if there's duplicated jar\n-        Version.checkDuplicate(Version.class);\n-    }\n-\n-    private Version() {\n-    }\n-\n-    public static String getProtocolVersion() {\n-        return DEFAULT_DUBBO_PROTOCOL_VERSION;\n-    }\n-\n-    public static String getVersion() {\n-        return VERSION;\n-    }\n-\n-    /**\n-     * Check the framework release version number to decide if it's 2.7.0 or higher\n-     */\n-    public static boolean isRelease270OrHigher(String version) {\n-        if (StringUtils.isEmpty(version)) {\n-            return false;\n-        }\n-        if (getIntVersion(version) >= 2070000) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    /**\n-     * Check the framework release version number to decide if it's 2.6.3 or higher\n-     *\n-     * @param version, the sdk version\n-     */\n-    public static boolean isRelease263OrHigher(String version) {\n-        return getIntVersion(version) >= 2060300;\n-    }\n-\n-    /**\n-     * Dubbo 2.x protocol version numbers are limited to 2.0.2/2000200 ~ 2.0.99/2009900, other versions are consider as\n-     * invalid or not from official release.\n-     *\n-     * @param version, the protocol version.\n-     * @return\n-     */\n-    public static boolean isSupportResponseAttachment(String version) {\n-        if (StringUtils.isEmpty(version)) {\n-            return false;\n-        }\n-        int iVersion = getIntVersion(version);\n-        if (iVersion >= LOWEST_VERSION_FOR_RESPONSE_ATTACHMENT && iVersion <= HIGHEST_PROTOCOL_VERSION) {\n-            return true;\n-        }\n-\n-        return false;\n-    }\n-\n-    public static int getIntVersion(String version) {\n-        Integer v = VERSION2INT.get(version);\n-        if (v == null) {\n-            try {\n-                v = parseInt(version);\n-                // e.g., version number 2.6.3 will convert to 2060300\n-                if (version.split(\"\\\\.\").length == 3) {\n-                    v = v * 100;\n-                }\n-            } catch (Exception e) {\n-                logger.warn(\"Please make sure your version value has the right format: \" +\n-                        \"\\n 1. only contains digital number: 2.0.0; \\n 2. with string suffix: 2.6.7-stable. \" +\n-                        \"\\nIf you are using Dubbo before v2.6.2, the version value is the same with the jar version.\");\n-                v = LEGACY_DUBBO_PROTOCOL_VERSION;\n-            }\n-            VERSION2INT.put(version, v);\n-        }\n-        return v;\n-    }\n-\n-    private static int parseInt(String version) {\n-        int v = 0;\n-        String[] vArr = version.split(\"\\\\.\");\n-        int len = vArr.length;\n-        for (int i = 0; i < len; i++) {\n-            String subV = getPrefixDigits(vArr[i]);\n-            if (StringUtils.isNotEmpty(subV)) {\n-                v += Integer.parseInt(subV) * Math.pow(10, (len - i - 1) * 2);\n-            }\n-        }\n-        return v;\n-    }\n-\n-    /**\n-     * get prefix digits from given version string\n-     */\n-    private static String getPrefixDigits(String v) {\n-        Matcher matcher = PREFIX_DIGITS_PATTERN.matcher(v);\n-        if (matcher.find()) {\n-            return matcher.group(1);\n-        }\n-        return \"\";\n-    }\n-\n-    public static String getVersion(Class<?> cls, String defaultVersion) {\n-        try {\n-            // find version info from MANIFEST.MF first\n-            Package pkg = cls.getPackage();\n-            String version = null;\n-            if (pkg != null) {\n-                version = pkg.getImplementationVersion();\n-                if (StringUtils.isNotEmpty(version)) {\n-                    return version;\n-                }\n-\n-                version = pkg.getSpecificationVersion();\n-                if (StringUtils.isNotEmpty(version)) {\n-                    return version;\n-                }\n-            }\n-\n-            // guess version from jar file name if nothing's found from MANIFEST.MF\n-            CodeSource codeSource = cls.getProtectionDomain().getCodeSource();\n-            if (codeSource == null) {\n-                logger.info(\"No codeSource for class \" + cls.getName() + \" when getVersion, use default version \" + defaultVersion);\n-                return defaultVersion;\n-            }\n-\n-            URL location = codeSource.getLocation();\n-            if (location == null){\n-                logger.info(\"No location for class \" + cls.getName() + \" when getVersion, use default version \" + defaultVersion);\n-                return defaultVersion;\n-            }\n-            String file =  location.getFile();\n-            if (!StringUtils.isEmpty(file) && file.endsWith(\".jar\")) {\n-                version = getFromFile(file);\n-            }\n-\n-            // return default version if no version info is found\n-            return StringUtils.isEmpty(version) ? defaultVersion : version;\n-        } catch (Throwable e) {\n-            // return default version when any exception is thrown\n-            logger.error(\"return default version, ignore exception \" + e.getMessage(), e);\n-            return defaultVersion;\n-        }\n-    }\n-\n-    /**\n-     * get version from file: path/to/group-module-x.y.z.jar, returns x.y.z\n-     */\n-    private static String getFromFile(String file) {\n-        // remove suffix \".jar\": \"path/to/group-module-x.y.z\"\n-        file = file.substring(0, file.length() - 4);\n-\n-        // remove path: \"group-module-x.y.z\"\n-        int i = file.lastIndexOf('/');\n-        if (i >= 0) {\n-            file = file.substring(i + 1);\n-        }\n-\n-        // remove group: \"module-x.y.z\"\n-        i = file.indexOf(\"-\");\n-        if (i >= 0) {\n-            file = file.substring(i + 1);\n-        }\n-\n-        // remove module: \"x.y.z\"\n-        while (file.length() > 0 && !Character.isDigit(file.charAt(0))) {\n-            i = file.indexOf(\"-\");\n-            if (i >= 0) {\n-                file = file.substring(i + 1);\n-            } else {\n-                break;\n-            }\n-        }\n-        return file;\n-    }\n-\n-    public static void checkDuplicate(Class<?> cls, boolean failOnError) {\n-        checkDuplicate(cls.getName().replace('.', '/') + \".class\", failOnError);\n-    }\n-\n-    public static void checkDuplicate(Class<?> cls) {\n-        checkDuplicate(cls, false);\n-    }\n-\n-    public static void checkDuplicate(String path, boolean failOnError) {\n-        try {\n-            // search in caller's classloader\n-            Set<String> files = getResources(path);\n-            // duplicated jar is found\n-            if (files.size() > 1) {\n-                String error = \"Duplicate class \" + path + \" in \" + files.size() + \" jar \" + files;\n-                if (failOnError) {\n-                    throw new IllegalStateException(error);\n-                } else {\n-                    logger.error(error);\n-                }\n-            }\n-        } catch (Throwable e) {\n-            logger.error(e.getMessage(), e);\n-        }\n-    }\n-\n-    /**\n-     * search resources in caller's classloader\n-     */\n-    private static Set<String> getResources(String path) throws IOException {\n-        Enumeration<URL> urls = ClassUtils.getCallerClassLoader(Version.class).getResources(path);\n-        Set<String> files = new HashSet<String>();\n-        while (urls.hasMoreElements()) {\n-            URL url = urls.nextElement();\n-            if (url != null) {\n-                String file = url.getFile();\n-                if (StringUtils.isNotEmpty(file)) {\n-                    files.add(file);\n-                }\n-            }\n-        }\n-        return files;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.io.IOException;\r\n+import java.net.URL;\r\n+import java.security.CodeSource;\r\n+import java.util.Enumeration;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.regex.Matcher;\r\n+import java.util.regex.Pattern;\r\n+\r\n+/**\r\n+ * Version\r\n+ */\r\n+public final class Version {\r\n+    private static final Logger logger = LoggerFactory.getLogger(Version.class);\r\n+\r\n+    private static final Pattern PREFIX_DIGITS_PATTERN = Pattern.compile(\"^([0-9]*).*\");\r\n+\r\n+    // Dubbo RPC protocol version, for compatibility, it must not be between 2.0.10 ~ 2.6.2\r\n+    public static final String DEFAULT_DUBBO_PROTOCOL_VERSION = \"2.0.2\";\r\n+    // version 1.0.0 represents Dubbo rpc protocol before v2.6.2\r\n+    public static final int LEGACY_DUBBO_PROTOCOL_VERSION = 10000; // 1.0.0\r\n+    // Dubbo implementation version, usually is jar version.\r\n+    private static final String VERSION = getVersion(Version.class, \"\");\r\n+\r\n+    /**\r\n+     * For protocol compatibility purpose.\r\n+     * Because {@link #isSupportResponseAttachment} is checked for every call, int compare expect to has higher\r\n+     * performance than string.\r\n+     */\r\n+    public static final int LOWEST_VERSION_FOR_RESPONSE_ATTACHMENT = 2000200; // 2.0.2\r\n+    public static final int HIGHEST_PROTOCOL_VERSION = 2009900; // 2.0.99\r\n+    private static final Map<String, Integer> VERSION2INT = new HashMap<String, Integer>();\r\n+\r\n+    static {\r\n+        // check if there's duplicated jar\r\n+        Version.checkDuplicate(Version.class);\r\n+    }\r\n+\r\n+    private Version() {\r\n+    }\r\n+\r\n+    public static String getProtocolVersion() {\r\n+        return DEFAULT_DUBBO_PROTOCOL_VERSION;\r\n+    }\r\n+\r\n+    public static String getVersion() {\r\n+        return VERSION;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check the framework release version number to decide if it's 2.7.0 or higher\r\n+     */\r\n+    public static boolean isRelease270OrHigher(String version) {\r\n+        if (StringUtils.isEmpty(version)) {\r\n+            return false;\r\n+        }\r\n+        if (getIntVersion(version) >= 2070000) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check the framework release version number to decide if it's 2.6.3 or higher\r\n+     *\r\n+     * @param version, the sdk version\r\n+     */\r\n+    public static boolean isRelease263OrHigher(String version) {\r\n+        return getIntVersion(version) >= 2060300;\r\n+    }\r\n+\r\n+    /**\r\n+     * Dubbo 2.x protocol version numbers are limited to 2.0.2/2000200 ~ 2.0.99/2009900, other versions are consider as\r\n+     * invalid or not from official release.\r\n+     *\r\n+     * @param version, the protocol version.\r\n+     * @return\r\n+     */\r\n+    public static boolean isSupportResponseAttachment(String version) {\r\n+        if (StringUtils.isEmpty(version)) {\r\n+            return false;\r\n+        }\r\n+        int iVersion = getIntVersion(version);\r\n+        if (iVersion >= LOWEST_VERSION_FOR_RESPONSE_ATTACHMENT && iVersion <= HIGHEST_PROTOCOL_VERSION) {\r\n+            return true;\r\n+        }\r\n+\r\n+        return false;\r\n+    }\r\n+\r\n+    public static int getIntVersion(String version) {\r\n+        Integer v = VERSION2INT.get(version);\r\n+        if (v == null) {\r\n+            try {\r\n+                v = parseInt(version);\r\n+                // e.g., version number 2.6.3 will convert to 2060300\r\n+                if (version.split(\"\\\\.\").length == 3) {\r\n+                    v = v * 100;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                logger.warn(\"Please make sure your version value has the right format: \" +\r\n+                        \"\\n 1. only contains digital number: 2.0.0; \\n 2. with string suffix: 2.6.7-stable. \" +\r\n+                        \"\\nIf you are using Dubbo before v2.6.2, the version value is the same with the jar version.\");\r\n+                v = LEGACY_DUBBO_PROTOCOL_VERSION;\r\n+            }\r\n+            VERSION2INT.put(version, v);\r\n+        }\r\n+        return v;\r\n+    }\r\n+\r\n+    private static int parseInt(String version) {\r\n+        int v = 0;\r\n+        String[] vArr = version.split(\"\\\\.\");\r\n+        int len = vArr.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            String subV = getPrefixDigits(vArr[i]);\r\n+            if (StringUtils.isNotEmpty(subV)) {\r\n+                v += Integer.parseInt(subV) * Math.pow(10, (len - i - 1) * 2);\r\n+            }\r\n+        }\r\n+        return v;\r\n+    }\r\n+\r\n+    /**\r\n+     * get prefix digits from given version string\r\n+     */\r\n+    private static String getPrefixDigits(String v) {\r\n+        Matcher matcher = PREFIX_DIGITS_PATTERN.matcher(v);\r\n+        if (matcher.find()) {\r\n+            return matcher.group(1);\r\n+        }\r\n+        return \"\";\r\n+    }\r\n+\r\n+    public static String getVersion(Class<?> cls, String defaultVersion) {\r\n+        try {\r\n+            // find version info from MANIFEST.MF first\r\n+            Package pkg = cls.getPackage();\r\n+            String version = null;\r\n+            if (pkg != null) {\r\n+                version = pkg.getImplementationVersion();\r\n+                if (StringUtils.isNotEmpty(version)) {\r\n+                    return version;\r\n+                }\r\n+\r\n+                version = pkg.getSpecificationVersion();\r\n+                if (StringUtils.isNotEmpty(version)) {\r\n+                    return version;\r\n+                }\r\n+            }\r\n+\r\n+            // guess version from jar file name if nothing's found from MANIFEST.MF\r\n+            CodeSource codeSource = cls.getProtectionDomain().getCodeSource();\r\n+            if (codeSource == null) {\r\n+                logger.info(\"No codeSource for class \" + cls.getName() + \" when getVersion, use default version \" + defaultVersion);\r\n+                return defaultVersion;\r\n+            }\r\n+\r\n+            URL location = codeSource.getLocation();\r\n+            if (location == null){\r\n+                logger.info(\"No location for class \" + cls.getName() + \" when getVersion, use default version \" + defaultVersion);\r\n+                return defaultVersion;\r\n+            }\r\n+            String file =  location.getFile();\r\n+            if (!StringUtils.isEmpty(file) && file.endsWith(\".jar\")) {\r\n+                version = getFromFile(file);\r\n+            }\r\n+\r\n+            // return default version if no version info is found\r\n+            return StringUtils.isEmpty(version) ? defaultVersion : version;\r\n+        } catch (Throwable e) {\r\n+            // return default version when any exception is thrown\r\n+            logger.error(\"return default version, ignore exception \" + e.getMessage(), e);\r\n+            return defaultVersion;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get version from file: path/to/group-module-x.y.z.jar, returns x.y.z\r\n+     */\r\n+    private static String getFromFile(String file) {\r\n+        // remove suffix \".jar\": \"path/to/group-module-x.y.z\"\r\n+        file = file.substring(0, file.length() - 4);\r\n+\r\n+        // remove path: \"group-module-x.y.z\"\r\n+        int i = file.lastIndexOf('/');\r\n+        if (i >= 0) {\r\n+            file = file.substring(i + 1);\r\n+        }\r\n+\r\n+        // remove group: \"module-x.y.z\"\r\n+        i = file.indexOf(\"-\");\r\n+        if (i >= 0) {\r\n+            file = file.substring(i + 1);\r\n+        }\r\n+\r\n+        // remove module: \"x.y.z\"\r\n+        while (file.length() > 0 && !Character.isDigit(file.charAt(0))) {\r\n+            i = file.indexOf(\"-\");\r\n+            if (i >= 0) {\r\n+                file = file.substring(i + 1);\r\n+            } else {\r\n+                break;\r\n+            }\r\n+        }\r\n+        return file;\r\n+    }\r\n+\r\n+    public static void checkDuplicate(Class<?> cls, boolean failOnError) {\r\n+        checkDuplicate(cls.getName().replace('.', '/') + \".class\", failOnError);\r\n+    }\r\n+\r\n+    public static void checkDuplicate(Class<?> cls) {\r\n+        checkDuplicate(cls, false);\r\n+    }\r\n+\r\n+    public static void checkDuplicate(String path, boolean failOnError) {\r\n+        try {\r\n+            // search in caller's classloader\r\n+            Set<String> files = getResources(path);\r\n+            // duplicated jar is found\r\n+            if (files.size() > 1) {\r\n+                String error = \"Duplicate class \" + path + \" in \" + files.size() + \" jar \" + files;\r\n+                if (failOnError) {\r\n+                    throw new IllegalStateException(error);\r\n+                } else {\r\n+                    logger.error(error);\r\n+                }\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.error(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * search resources in caller's classloader\r\n+     */\r\n+    private static Set<String> getResources(String path) throws IOException {\r\n+        Enumeration<URL> urls = ClassUtils.getCallerClassLoader(Version.class).getResources(path);\r\n+        Set<String> files = new HashSet<String>();\r\n+        while (urls.hasMoreElements()) {\r\n+            URL url = urls.nextElement();\r\n+            if (url != null) {\r\n+                String file = url.getFile();\r\n+                if (StringUtils.isNotEmpty(file)) {\r\n+                    files.add(file);\r\n+                }\r\n+            }\r\n+        }\r\n+        return files;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/beanutil/JavaBeanDescriptor.java", "source2": "org/apache/dubbo/common/beanutil/JavaBeanDescriptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,207 +1,207 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.beanutil;\n-\n-import java.io.Serializable;\n-import java.util.Iterator;\n-import java.util.LinkedHashMap;\n-import java.util.Map;\n-\n-public final class JavaBeanDescriptor implements Serializable, Iterable<Map.Entry<Object, Object>> {\n-\n-    private static final long serialVersionUID = -8505586483570518029L;\n-\n-    public static final int TYPE_CLASS = 1;\n-    public static final int TYPE_ENUM = 2;\n-    public static final int TYPE_COLLECTION = 3;\n-    public static final int TYPE_MAP = 4;\n-    public static final int TYPE_ARRAY = 5;\n-    /**\n-     * @see org.apache.dubbo.common.utils.ReflectUtils#isPrimitive(Class)\n-     */\n-    public static final int TYPE_PRIMITIVE = 6;\n-    public static final int TYPE_BEAN = 7;\n-\n-    private static final String ENUM_PROPERTY_NAME = \"name\";\n-    private static final String CLASS_PROPERTY_NAME = \"name\";\n-    private static final String PRIMITIVE_PROPERTY_VALUE = \"value\";\n-\n-    /**\n-     * Used to define a type is valid.\n-     *\n-     * @see #isValidType(int)\n-     */\n-    private static final int TYPE_MAX = TYPE_BEAN;\n-    /**\n-     * Used to define a type is valid.\n-     *\n-     * @see #isValidType(int)\n-     */\n-    private static final int TYPE_MIN = TYPE_CLASS;\n-\n-    private String className;\n-    private int type;\n-\n-    private Map<Object, Object> properties = new LinkedHashMap<>();\n-\n-    public JavaBeanDescriptor() {}\n-\n-    public JavaBeanDescriptor(String className, int type) {\n-        notEmpty(className, \"class name is empty\");\n-        if (!isValidType(type)) {\n-            throw new IllegalArgumentException(\"type [ \" + type + \" ] is unsupported\");\n-        }\n-\n-        this.className = className;\n-        this.type = type;\n-    }\n-\n-    public boolean isClassType() {\n-        return TYPE_CLASS == type;\n-    }\n-\n-    public boolean isEnumType() {\n-        return TYPE_ENUM == type;\n-    }\n-\n-    public boolean isCollectionType() {\n-        return TYPE_COLLECTION == type;\n-    }\n-\n-    public boolean isMapType() {\n-        return TYPE_MAP == type;\n-    }\n-\n-    public boolean isArrayType() {\n-        return TYPE_ARRAY == type;\n-    }\n-\n-    public boolean isPrimitiveType() {\n-        return TYPE_PRIMITIVE == type;\n-    }\n-\n-    public boolean isBeanType() {\n-        return TYPE_BEAN == type;\n-    }\n-\n-    public int getType() {\n-        return type;\n-    }\n-\n-    public void setType(int type) {\n-        this.type = type;\n-    }\n-\n-    public String getClassName() {\n-        return className;\n-    }\n-\n-    public void setClassName(String className) {\n-        this.className = className;\n-    }\n-\n-    public Object setProperty(Object propertyName, Object propertyValue) {\n-        notNull(propertyName, \"Property name is null\");\n-        return properties.put(propertyName, propertyValue);\n-    }\n-\n-    public String setEnumNameProperty(String name) {\n-        if (isEnumType()) {\n-            Object result = setProperty(ENUM_PROPERTY_NAME, name);\n-            return result == null ? null : result.toString();\n-        }\n-        throw new IllegalStateException(\"The instance is not a enum wrapper\");\n-    }\n-\n-    public String getEnumPropertyName() {\n-        if (isEnumType()) {\n-            Object result = getProperty(ENUM_PROPERTY_NAME);\n-            return result == null ? null : result.toString();\n-        }\n-        throw new IllegalStateException(\"The instance is not a enum wrapper\");\n-    }\n-\n-    public String setClassNameProperty(String name) {\n-        if (isClassType()) {\n-            Object result = setProperty(CLASS_PROPERTY_NAME, name);\n-            return result == null ? null : result.toString();\n-        }\n-        throw new IllegalStateException(\"The instance is not a class wrapper\");\n-    }\n-\n-    public String getClassNameProperty() {\n-        if (isClassType()) {\n-            Object result = getProperty(CLASS_PROPERTY_NAME);\n-            return result == null ? null : result.toString();\n-        }\n-        throw new IllegalStateException(\"The instance is not a class wrapper\");\n-    }\n-\n-    public Object setPrimitiveProperty(Object primitiveValue) {\n-        if (isPrimitiveType()) {\n-            return setProperty(PRIMITIVE_PROPERTY_VALUE, primitiveValue);\n-        }\n-        throw new IllegalStateException(\"The instance is not a primitive type wrapper\");\n-    }\n-\n-    public Object getPrimitiveProperty() {\n-        if (isPrimitiveType()) {\n-            return getProperty(PRIMITIVE_PROPERTY_VALUE);\n-        }\n-        throw new IllegalStateException(\"The instance is not a primitive type wrapper\");\n-    }\n-\n-    public Object getProperty(Object propertyName) {\n-        notNull(propertyName, \"Property name is null\");\n-        return properties.get(propertyName);\n-    }\n-\n-    public boolean containsProperty(Object propertyName) {\n-        notNull(propertyName, \"Property name is null\");\n-        return properties.containsKey(propertyName);\n-    }\n-\n-    @Override\n-    public Iterator<Map.Entry<Object, Object>> iterator() {\n-        return properties.entrySet().iterator();\n-    }\n-\n-    public int propertySize() {\n-        return properties.size();\n-    }\n-\n-    private boolean isValidType(int type) {\n-        return TYPE_MIN <= type && type <= TYPE_MAX;\n-    }\n-\n-    private void notNull(Object obj, String message) {\n-        if (obj == null) {\n-            throw new IllegalArgumentException(message);\n-        }\n-    }\n-\n-    private void notEmpty(String string, String message) {\n-        if (isEmpty(string)) {\n-            throw new IllegalArgumentException(message);\n-        }\n-    }\n-\n-    private boolean isEmpty(String string) {\n-        return string == null || \"\".equals(string.trim());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.beanutil;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.Iterator;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.Map;\r\n+\r\n+public final class JavaBeanDescriptor implements Serializable, Iterable<Map.Entry<Object, Object>> {\r\n+\r\n+    private static final long serialVersionUID = -8505586483570518029L;\r\n+\r\n+    public static final int TYPE_CLASS = 1;\r\n+    public static final int TYPE_ENUM = 2;\r\n+    public static final int TYPE_COLLECTION = 3;\r\n+    public static final int TYPE_MAP = 4;\r\n+    public static final int TYPE_ARRAY = 5;\r\n+    /**\r\n+     * @see org.apache.dubbo.common.utils.ReflectUtils#isPrimitive(Class)\r\n+     */\r\n+    public static final int TYPE_PRIMITIVE = 6;\r\n+    public static final int TYPE_BEAN = 7;\r\n+\r\n+    private static final String ENUM_PROPERTY_NAME = \"name\";\r\n+    private static final String CLASS_PROPERTY_NAME = \"name\";\r\n+    private static final String PRIMITIVE_PROPERTY_VALUE = \"value\";\r\n+\r\n+    /**\r\n+     * Used to define a type is valid.\r\n+     *\r\n+     * @see #isValidType(int)\r\n+     */\r\n+    private static final int TYPE_MAX = TYPE_BEAN;\r\n+    /**\r\n+     * Used to define a type is valid.\r\n+     *\r\n+     * @see #isValidType(int)\r\n+     */\r\n+    private static final int TYPE_MIN = TYPE_CLASS;\r\n+\r\n+    private String className;\r\n+    private int type;\r\n+\r\n+    private Map<Object, Object> properties = new LinkedHashMap<>();\r\n+\r\n+    public JavaBeanDescriptor() {}\r\n+\r\n+    public JavaBeanDescriptor(String className, int type) {\r\n+        notEmpty(className, \"class name is empty\");\r\n+        if (!isValidType(type)) {\r\n+            throw new IllegalArgumentException(\"type [ \" + type + \" ] is unsupported\");\r\n+        }\r\n+\r\n+        this.className = className;\r\n+        this.type = type;\r\n+    }\r\n+\r\n+    public boolean isClassType() {\r\n+        return TYPE_CLASS == type;\r\n+    }\r\n+\r\n+    public boolean isEnumType() {\r\n+        return TYPE_ENUM == type;\r\n+    }\r\n+\r\n+    public boolean isCollectionType() {\r\n+        return TYPE_COLLECTION == type;\r\n+    }\r\n+\r\n+    public boolean isMapType() {\r\n+        return TYPE_MAP == type;\r\n+    }\r\n+\r\n+    public boolean isArrayType() {\r\n+        return TYPE_ARRAY == type;\r\n+    }\r\n+\r\n+    public boolean isPrimitiveType() {\r\n+        return TYPE_PRIMITIVE == type;\r\n+    }\r\n+\r\n+    public boolean isBeanType() {\r\n+        return TYPE_BEAN == type;\r\n+    }\r\n+\r\n+    public int getType() {\r\n+        return type;\r\n+    }\r\n+\r\n+    public void setType(int type) {\r\n+        this.type = type;\r\n+    }\r\n+\r\n+    public String getClassName() {\r\n+        return className;\r\n+    }\r\n+\r\n+    public void setClassName(String className) {\r\n+        this.className = className;\r\n+    }\r\n+\r\n+    public Object setProperty(Object propertyName, Object propertyValue) {\r\n+        notNull(propertyName, \"Property name is null\");\r\n+        return properties.put(propertyName, propertyValue);\r\n+    }\r\n+\r\n+    public String setEnumNameProperty(String name) {\r\n+        if (isEnumType()) {\r\n+            Object result = setProperty(ENUM_PROPERTY_NAME, name);\r\n+            return result == null ? null : result.toString();\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a enum wrapper\");\r\n+    }\r\n+\r\n+    public String getEnumPropertyName() {\r\n+        if (isEnumType()) {\r\n+            Object result = getProperty(ENUM_PROPERTY_NAME);\r\n+            return result == null ? null : result.toString();\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a enum wrapper\");\r\n+    }\r\n+\r\n+    public String setClassNameProperty(String name) {\r\n+        if (isClassType()) {\r\n+            Object result = setProperty(CLASS_PROPERTY_NAME, name);\r\n+            return result == null ? null : result.toString();\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a class wrapper\");\r\n+    }\r\n+\r\n+    public String getClassNameProperty() {\r\n+        if (isClassType()) {\r\n+            Object result = getProperty(CLASS_PROPERTY_NAME);\r\n+            return result == null ? null : result.toString();\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a class wrapper\");\r\n+    }\r\n+\r\n+    public Object setPrimitiveProperty(Object primitiveValue) {\r\n+        if (isPrimitiveType()) {\r\n+            return setProperty(PRIMITIVE_PROPERTY_VALUE, primitiveValue);\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a primitive type wrapper\");\r\n+    }\r\n+\r\n+    public Object getPrimitiveProperty() {\r\n+        if (isPrimitiveType()) {\r\n+            return getProperty(PRIMITIVE_PROPERTY_VALUE);\r\n+        }\r\n+        throw new IllegalStateException(\"The instance is not a primitive type wrapper\");\r\n+    }\r\n+\r\n+    public Object getProperty(Object propertyName) {\r\n+        notNull(propertyName, \"Property name is null\");\r\n+        return properties.get(propertyName);\r\n+    }\r\n+\r\n+    public boolean containsProperty(Object propertyName) {\r\n+        notNull(propertyName, \"Property name is null\");\r\n+        return properties.containsKey(propertyName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Iterator<Map.Entry<Object, Object>> iterator() {\r\n+        return properties.entrySet().iterator();\r\n+    }\r\n+\r\n+    public int propertySize() {\r\n+        return properties.size();\r\n+    }\r\n+\r\n+    private boolean isValidType(int type) {\r\n+        return TYPE_MIN <= type && type <= TYPE_MAX;\r\n+    }\r\n+\r\n+    private void notNull(Object obj, String message) {\r\n+        if (obj == null) {\r\n+            throw new IllegalArgumentException(message);\r\n+        }\r\n+    }\r\n+\r\n+    private void notEmpty(String string, String message) {\r\n+        if (isEmpty(string)) {\r\n+            throw new IllegalArgumentException(message);\r\n+        }\r\n+    }\r\n+\r\n+    private boolean isEmpty(String string) {\r\n+        return string == null || \"\".equals(string.trim());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/beanutil/JavaBeanSerializeUtil.java", "source2": "org/apache/dubbo/common/beanutil/JavaBeanSerializeUtil.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,486 +1,486 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.beanutil;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.LogHelper;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.SerializeClassChecker;\n-\n-import java.lang.reflect.Array;\n-import java.lang.reflect.Constructor;\n-import java.lang.reflect.Field;\n-import java.lang.reflect.InvocationTargetException;\n-import java.lang.reflect.Method;\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.IdentityHashMap;\n-import java.util.Map;\n-\n-public final class JavaBeanSerializeUtil {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(JavaBeanSerializeUtil.class);\n-    private static final Map<String, Class<?>> TYPES = new HashMap<String, Class<?>>();\n-    private static final String ARRAY_PREFIX = \"[\";\n-    private static final String REFERENCE_TYPE_PREFIX = \"L\";\n-    private static final String REFERENCE_TYPE_SUFFIX = \";\";\n-\n-    static {\n-        TYPES.put(boolean.class.getName(), boolean.class);\n-        TYPES.put(byte.class.getName(), byte.class);\n-        TYPES.put(short.class.getName(), short.class);\n-        TYPES.put(int.class.getName(), int.class);\n-        TYPES.put(long.class.getName(), long.class);\n-        TYPES.put(float.class.getName(), float.class);\n-        TYPES.put(double.class.getName(), double.class);\n-        TYPES.put(void.class.getName(), void.class);\n-        TYPES.put(\"Z\", boolean.class);\n-        TYPES.put(\"B\", byte.class);\n-        TYPES.put(\"C\", char.class);\n-        TYPES.put(\"D\", double.class);\n-        TYPES.put(\"F\", float.class);\n-        TYPES.put(\"I\", int.class);\n-        TYPES.put(\"J\", long.class);\n-        TYPES.put(\"S\", short.class);\n-    }\n-\n-    private JavaBeanSerializeUtil() {\n-    }\n-\n-    public static JavaBeanDescriptor serialize(Object obj) {\n-        return serialize(obj, JavaBeanAccessor.FIELD);\n-    }\n-\n-    public static JavaBeanDescriptor serialize(Object obj, JavaBeanAccessor accessor) {\n-        if (obj == null) {\n-            return null;\n-        }\n-        if (obj instanceof JavaBeanDescriptor) {\n-            return (JavaBeanDescriptor) obj;\n-        }\n-        IdentityHashMap<Object, JavaBeanDescriptor> cache = new IdentityHashMap<Object, JavaBeanDescriptor>();\n-        return createDescriptorIfAbsent(obj, accessor, cache);\n-    }\n-\n-    private static JavaBeanDescriptor createDescriptorForSerialize(Class<?> cl) {\n-        if (cl.isEnum()) {\n-            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_ENUM);\n-        }\n-\n-        if (cl.isArray()) {\n-            return new JavaBeanDescriptor(cl.getComponentType().getName(), JavaBeanDescriptor.TYPE_ARRAY);\n-        }\n-\n-        if (ReflectUtils.isPrimitive(cl)) {\n-            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_PRIMITIVE);\n-        }\n-\n-        if (Class.class.equals(cl)) {\n-            return new JavaBeanDescriptor(Class.class.getName(), JavaBeanDescriptor.TYPE_CLASS);\n-        }\n-\n-        if (Collection.class.isAssignableFrom(cl)) {\n-            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_COLLECTION);\n-        }\n-\n-        if (Map.class.isAssignableFrom(cl)) {\n-            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_MAP);\n-        }\n-\n-        return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_BEAN);\n-    }\n-\n-    private static JavaBeanDescriptor createDescriptorIfAbsent(Object obj, JavaBeanAccessor accessor,\n-                                                               IdentityHashMap<Object, JavaBeanDescriptor> cache) {\n-        if (cache.containsKey(obj)) {\n-            return cache.get(obj);\n-        }\n-\n-        if (obj instanceof JavaBeanDescriptor) {\n-            return (JavaBeanDescriptor) obj;\n-        }\n-\n-        JavaBeanDescriptor result = createDescriptorForSerialize(obj.getClass());\n-        cache.put(obj, result);\n-        serializeInternal(result, obj, accessor, cache);\n-        return result;\n-    }\n-\n-    private static void serializeInternal(JavaBeanDescriptor descriptor, Object obj, JavaBeanAccessor accessor,\n-                                          IdentityHashMap<Object, JavaBeanDescriptor> cache) {\n-        if (obj == null || descriptor == null) {\n-            return;\n-        }\n-\n-        if (obj.getClass().isEnum()) {\n-            descriptor.setEnumNameProperty(((Enum<?>) obj).name());\n-        } else if (ReflectUtils.isPrimitive(obj.getClass())) {\n-            descriptor.setPrimitiveProperty(obj);\n-        } else if (Class.class.equals(obj.getClass())) {\n-            descriptor.setClassNameProperty(((Class<?>) obj).getName());\n-        } else if (obj.getClass().isArray()) {\n-            int len = Array.getLength(obj);\n-            for (int i = 0; i < len; i++) {\n-                Object item = Array.get(obj, i);\n-                if (item == null) {\n-                    descriptor.setProperty(i, null);\n-                } else {\n-                    JavaBeanDescriptor itemDescriptor = createDescriptorIfAbsent(item, accessor, cache);\n-                    descriptor.setProperty(i, itemDescriptor);\n-                }\n-            }\n-        } else if (obj instanceof Collection) {\n-            Collection collection = (Collection) obj;\n-            int index = 0;\n-            for (Object item : collection) {\n-                if (item == null) {\n-                    descriptor.setProperty(index++, null);\n-                } else {\n-                    JavaBeanDescriptor itemDescriptor = createDescriptorIfAbsent(item, accessor, cache);\n-                    descriptor.setProperty(index++, itemDescriptor);\n-                }\n-            }\n-        } else if (obj instanceof Map) {\n-            Map map = (Map) obj;\n-            map.forEach((key, value) -> {\n-                Object keyDescriptor = key == null ? null : createDescriptorIfAbsent(key, accessor, cache);\n-                Object valueDescriptor = value == null ? null : createDescriptorIfAbsent(value, accessor, cache);\n-                descriptor.setProperty(keyDescriptor, valueDescriptor);\n-            });// ~ end of loop map\n-        } else {\n-            if (JavaBeanAccessor.isAccessByMethod(accessor)) {\n-                Map<String, Method> methods = ReflectUtils.getBeanPropertyReadMethods(obj.getClass());\n-                for (Map.Entry<String, Method> entry : methods.entrySet()) {\n-                    try {\n-                        Object value = entry.getValue().invoke(obj);\n-                        if (value == null) {\n-                            continue;\n-                        }\n-                        JavaBeanDescriptor valueDescriptor = createDescriptorIfAbsent(value, accessor, cache);\n-                        descriptor.setProperty(entry.getKey(), valueDescriptor);\n-                    } catch (Exception e) {\n-                        throw new RuntimeException(e.getMessage(), e);\n-                    }\n-                } // ~ end of loop method map\n-            } // ~ end of if (JavaBeanAccessor.isAccessByMethod(accessor))\n-\n-            if (JavaBeanAccessor.isAccessByField(accessor)) {\n-                Map<String, Field> fields = ReflectUtils.getBeanPropertyFields(obj.getClass());\n-                for (Map.Entry<String, Field> entry : fields.entrySet()) {\n-                    if (!descriptor.containsProperty(entry.getKey())) {\n-                        try {\n-                            Object value = entry.getValue().get(obj);\n-                            if (value == null) {\n-                                continue;\n-                            }\n-                            JavaBeanDescriptor valueDescriptor = createDescriptorIfAbsent(value, accessor, cache);\n-                            descriptor.setProperty(entry.getKey(), valueDescriptor);\n-                        } catch (Exception e) {\n-                            throw new RuntimeException(e.getMessage(), e);\n-                        }\n-                    }\n-                } // ~ end of loop field map\n-            } // ~ end of if (JavaBeanAccessor.isAccessByField(accessor))\n-\n-        } // ~ end of else\n-\n-    } // ~ end of method serializeInternal\n-\n-    public static Object deserialize(JavaBeanDescriptor beanDescriptor) {\n-        return deserialize(\n-                beanDescriptor,\n-                Thread.currentThread().getContextClassLoader());\n-    }\n-\n-    public static Object deserialize(JavaBeanDescriptor beanDescriptor, ClassLoader loader) {\n-        if (beanDescriptor == null) {\n-            return null;\n-        }\n-        IdentityHashMap<JavaBeanDescriptor, Object> cache = new IdentityHashMap<JavaBeanDescriptor, Object>();\n-        Object result = instantiateForDeserialize(beanDescriptor, loader, cache);\n-        deserializeInternal(result, beanDescriptor, loader, cache);\n-        return result;\n-    }\n-\n-    private static void deserializeInternal(Object result, JavaBeanDescriptor beanDescriptor, ClassLoader loader,\n-                                            IdentityHashMap<JavaBeanDescriptor, Object> cache) {\n-        if (beanDescriptor.isEnumType() || beanDescriptor.isClassType() || beanDescriptor.isPrimitiveType()) {\n-            return;\n-        }\n-\n-        if (beanDescriptor.isArrayType()) {\n-            int index = 0;\n-            for (Map.Entry<Object, Object> entry : beanDescriptor) {\n-                Object item = entry.getValue();\n-                if (item instanceof JavaBeanDescriptor) {\n-                    JavaBeanDescriptor itemDescriptor = (JavaBeanDescriptor) entry.getValue();\n-                    item = instantiateForDeserialize(itemDescriptor, loader, cache);\n-                    deserializeInternal(item, itemDescriptor, loader, cache);\n-                }\n-                Array.set(result, index++, item);\n-            }\n-        } else if (beanDescriptor.isCollectionType()) {\n-            Collection collection = (Collection) result;\n-            for (Map.Entry<Object, Object> entry : beanDescriptor) {\n-                Object item = entry.getValue();\n-                if (item instanceof JavaBeanDescriptor) {\n-                    JavaBeanDescriptor itemDescriptor = (JavaBeanDescriptor) entry.getValue();\n-                    item = instantiateForDeserialize(itemDescriptor, loader, cache);\n-                    deserializeInternal(item, itemDescriptor, loader, cache);\n-                }\n-                collection.add(item);\n-            }\n-        } else if (beanDescriptor.isMapType()) {\n-            Map map = (Map) result;\n-            for (Map.Entry<Object, Object> entry : beanDescriptor) {\n-                Object key = entry.getKey();\n-                Object value = entry.getValue();\n-                if (key instanceof JavaBeanDescriptor) {\n-                    JavaBeanDescriptor keyDescriptor = (JavaBeanDescriptor) entry.getKey();\n-                    key = instantiateForDeserialize(keyDescriptor, loader, cache);\n-                    deserializeInternal(key, keyDescriptor, loader, cache);\n-                }\n-                if (value instanceof JavaBeanDescriptor) {\n-                    JavaBeanDescriptor valueDescriptor = (JavaBeanDescriptor) entry.getValue();\n-                    value = instantiateForDeserialize(valueDescriptor, loader, cache);\n-                    deserializeInternal(value, valueDescriptor, loader, cache);\n-                }\n-                map.put(key, value);\n-            }\n-        } else if (beanDescriptor.isBeanType()) {\n-            for (Map.Entry<Object, Object> entry : beanDescriptor) {\n-                String property = entry.getKey().toString();\n-                Object value = entry.getValue();\n-                if (value == null) {\n-                    continue;\n-                }\n-\n-                if (value instanceof JavaBeanDescriptor) {\n-                    JavaBeanDescriptor valueDescriptor = (JavaBeanDescriptor) entry.getValue();\n-                    value = instantiateForDeserialize(valueDescriptor, loader, cache);\n-                    deserializeInternal(value, valueDescriptor, loader, cache);\n-                }\n-\n-                Method method = getSetterMethod(result.getClass(), property, value.getClass());\n-                boolean setByMethod = false;\n-                try {\n-                    if (method != null) {\n-                        method.invoke(result, value);\n-                        setByMethod = true;\n-                    }\n-                } catch (Exception e) {\n-                    LogHelper.warn(logger, \"Failed to set property through method \" + method, e);\n-                }\n-\n-                if (!setByMethod) {\n-                    try {\n-                        Field field = result.getClass().getField(property);\n-                        if (field != null) {\n-                            field.set(result, value);\n-                        }\n-                    } catch (NoSuchFieldException | IllegalAccessException e1) {\n-                        LogHelper.warn(logger, \"Failed to set field value\", e1);\n-                    }\n-                }\n-            }\n-        } else {\n-            throw new IllegalArgumentException(\"Unsupported type \" +\n-                    beanDescriptor.getClassName() +\n-                    \":\" + beanDescriptor.getType());\n-        }\n-    }\n-\n-    private static Method getSetterMethod(Class<?> cls, String property, Class<?> valueCls) {\n-        String name = \"set\" + property.substring(0, 1).toUpperCase() + property.substring(1);\n-        Method method = null;\n-        try {\n-            method = cls.getMethod(name, valueCls);\n-        } catch (NoSuchMethodException e) {\n-            for (Method m : cls.getMethods()) {\n-                if (ReflectUtils.isBeanPropertyWriteMethod(m)\n-                        && m.getName().equals(name)) {\n-                    method = m;\n-                }\n-            }\n-        }\n-        if (method != null) {\n-            ReflectUtils.makeAccessible(method);\n-        }\n-        return method;\n-    }\n-\n-    private static Object instantiate(Class<?> cl) throws Exception {\n-        Constructor<?>[] constructors = cl.getDeclaredConstructors();\n-        Constructor<?> constructor = null;\n-        int argc = Integer.MAX_VALUE;\n-        for (Constructor<?> c : constructors) {\n-            if (c.getParameterTypes().length < argc) {\n-                argc = c.getParameterTypes().length;\n-                constructor = c;\n-            }\n-        }\n-\n-        if (constructor != null) {\n-            Class<?>[] paramTypes = constructor.getParameterTypes();\n-            Object[] constructorArgs = new Object[paramTypes.length];\n-            for (int i = 0; i < constructorArgs.length; i++) {\n-                constructorArgs[i] = getConstructorArg(paramTypes[i]);\n-            }\n-            try {\n-                ReflectUtils.makeAccessible(constructor);\n-                return constructor.newInstance(constructorArgs);\n-            } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {\n-                LogHelper.warn(logger, e.getMessage(), e);\n-            }\n-        }\n-\n-        return cl.getDeclaredConstructor().newInstance();\n-    }\n-\n-    public static Object getConstructorArg(Class<?> cl) {\n-        if (boolean.class.equals(cl) || Boolean.class.equals(cl)) {\n-            return Boolean.FALSE;\n-        }\n-\n-        if (byte.class.equals(cl) || Byte.class.equals(cl)) {\n-            return (byte) 0;\n-        }\n-\n-        if (short.class.equals(cl) || Short.class.equals(cl)) {\n-            return (short) 0;\n-        }\n-\n-        if (int.class.equals(cl) || Integer.class.equals(cl)) {\n-            return 0;\n-        }\n-\n-        if (long.class.equals(cl) || Long.class.equals(cl)) {\n-            return 0L;\n-        }\n-\n-        if (float.class.equals(cl) || Float.class.equals(cl)) {\n-            return (float) 0;\n-        }\n-\n-        if (double.class.equals(cl) || Double.class.equals(cl)) {\n-            return (double) 0;\n-        }\n-\n-        if (char.class.equals(cl) || Character.class.equals(cl)) {\n-            return (char) 0;\n-        }\n-        return null;\n-    }\n-\n-    private static Object instantiateForDeserialize(JavaBeanDescriptor beanDescriptor, ClassLoader loader,\n-                                                    IdentityHashMap<JavaBeanDescriptor, Object> cache) {\n-        if (cache.containsKey(beanDescriptor)) {\n-            return cache.get(beanDescriptor);\n-        }\n-\n-        if (beanDescriptor.isClassType()) {\n-            try {\n-                return name2Class(loader, beanDescriptor.getClassNameProperty());\n-            } catch (ClassNotFoundException e) {\n-                throw new RuntimeException(e.getMessage(), e);\n-            }\n-        }\n-\n-        if (beanDescriptor.isEnumType()) {\n-            try {\n-                Class<?> enumType = name2Class(loader, beanDescriptor.getClassName());\n-                Method method = getEnumValueOfMethod(enumType);\n-                return method.invoke(null, enumType, beanDescriptor.getEnumPropertyName());\n-            } catch (Exception e) {\n-                throw new RuntimeException(e.getMessage(), e);\n-            }\n-        }\n-\n-        if (beanDescriptor.isPrimitiveType()) {\n-            return beanDescriptor.getPrimitiveProperty();\n-        }\n-\n-        Object result;\n-        if (beanDescriptor.isArrayType()) {\n-            Class<?> componentType;\n-            try {\n-                componentType = name2Class(loader, beanDescriptor.getClassName());\n-            } catch (ClassNotFoundException e) {\n-                throw new RuntimeException(e.getMessage(), e);\n-            }\n-            result = Array.newInstance(componentType, beanDescriptor.propertySize());\n-            cache.put(beanDescriptor, result);\n-        } else {\n-            try {\n-                Class<?> cl = name2Class(loader, beanDescriptor.getClassName());\n-                result = instantiate(cl);\n-                cache.put(beanDescriptor, result);\n-            } catch (Exception e) {\n-                throw new RuntimeException(e.getMessage(), e);\n-            }\n-        }\n-\n-        return result;\n-    }\n-\n-    /**\n-     * Transform the Class.forName String to Class Object.\n-     *\n-     * @param name Class.getName()\n-     * @return Class\n-     * @throws ClassNotFoundException Class.forName\n-     */\n-    public static Class<?> name2Class(ClassLoader loader, String name) throws ClassNotFoundException {\n-        if (TYPES.containsKey(name)) {\n-            return TYPES.get(name);\n-        }\n-        if (isArray(name)) {\n-            int dimension = 0;\n-            while (isArray(name)) {\n-                ++dimension;\n-                name = name.substring(1);\n-            }\n-            Class type = name2Class(loader, name);\n-            int[] dimensions = new int[dimension];\n-            for (int i = 0; i < dimension; i++) {\n-                dimensions[i] = 0;\n-            }\n-            return Array.newInstance(type, dimensions).getClass();\n-        }\n-        if (isReferenceType(name)) {\n-            name = name.substring(1, name.length() - 1);\n-        }\n-        SerializeClassChecker.getInstance().validateClass(name);\n-        return Class.forName(name, false, loader);\n-    }\n-\n-    private static boolean isArray(String type) {\n-        return type != null && type.startsWith(ARRAY_PREFIX);\n-    }\n-\n-    private static boolean isReferenceType(String type) {\n-        return type != null\n-                && type.startsWith(REFERENCE_TYPE_PREFIX)\n-                && type.endsWith(REFERENCE_TYPE_SUFFIX);\n-    }\n-\n-    private static Method getEnumValueOfMethod(Class cl) throws NoSuchMethodException {\n-        return cl.getMethod(\"valueOf\", Class.class, String.class);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.beanutil;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.LogHelper;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.SerializeClassChecker;\r\n+\r\n+import java.lang.reflect.Array;\r\n+import java.lang.reflect.Constructor;\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.IdentityHashMap;\r\n+import java.util.Map;\r\n+\r\n+public final class JavaBeanSerializeUtil {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(JavaBeanSerializeUtil.class);\r\n+    private static final Map<String, Class<?>> TYPES = new HashMap<String, Class<?>>();\r\n+    private static final String ARRAY_PREFIX = \"[\";\r\n+    private static final String REFERENCE_TYPE_PREFIX = \"L\";\r\n+    private static final String REFERENCE_TYPE_SUFFIX = \";\";\r\n+\r\n+    static {\r\n+        TYPES.put(boolean.class.getName(), boolean.class);\r\n+        TYPES.put(byte.class.getName(), byte.class);\r\n+        TYPES.put(short.class.getName(), short.class);\r\n+        TYPES.put(int.class.getName(), int.class);\r\n+        TYPES.put(long.class.getName(), long.class);\r\n+        TYPES.put(float.class.getName(), float.class);\r\n+        TYPES.put(double.class.getName(), double.class);\r\n+        TYPES.put(void.class.getName(), void.class);\r\n+        TYPES.put(\"Z\", boolean.class);\r\n+        TYPES.put(\"B\", byte.class);\r\n+        TYPES.put(\"C\", char.class);\r\n+        TYPES.put(\"D\", double.class);\r\n+        TYPES.put(\"F\", float.class);\r\n+        TYPES.put(\"I\", int.class);\r\n+        TYPES.put(\"J\", long.class);\r\n+        TYPES.put(\"S\", short.class);\r\n+    }\r\n+\r\n+    private JavaBeanSerializeUtil() {\r\n+    }\r\n+\r\n+    public static JavaBeanDescriptor serialize(Object obj) {\r\n+        return serialize(obj, JavaBeanAccessor.FIELD);\r\n+    }\r\n+\r\n+    public static JavaBeanDescriptor serialize(Object obj, JavaBeanAccessor accessor) {\r\n+        if (obj == null) {\r\n+            return null;\r\n+        }\r\n+        if (obj instanceof JavaBeanDescriptor) {\r\n+            return (JavaBeanDescriptor) obj;\r\n+        }\r\n+        IdentityHashMap<Object, JavaBeanDescriptor> cache = new IdentityHashMap<Object, JavaBeanDescriptor>();\r\n+        return createDescriptorIfAbsent(obj, accessor, cache);\r\n+    }\r\n+\r\n+    private static JavaBeanDescriptor createDescriptorForSerialize(Class<?> cl) {\r\n+        if (cl.isEnum()) {\r\n+            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_ENUM);\r\n+        }\r\n+\r\n+        if (cl.isArray()) {\r\n+            return new JavaBeanDescriptor(cl.getComponentType().getName(), JavaBeanDescriptor.TYPE_ARRAY);\r\n+        }\r\n+\r\n+        if (ReflectUtils.isPrimitive(cl)) {\r\n+            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_PRIMITIVE);\r\n+        }\r\n+\r\n+        if (Class.class.equals(cl)) {\r\n+            return new JavaBeanDescriptor(Class.class.getName(), JavaBeanDescriptor.TYPE_CLASS);\r\n+        }\r\n+\r\n+        if (Collection.class.isAssignableFrom(cl)) {\r\n+            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_COLLECTION);\r\n+        }\r\n+\r\n+        if (Map.class.isAssignableFrom(cl)) {\r\n+            return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_MAP);\r\n+        }\r\n+\r\n+        return new JavaBeanDescriptor(cl.getName(), JavaBeanDescriptor.TYPE_BEAN);\r\n+    }\r\n+\r\n+    private static JavaBeanDescriptor createDescriptorIfAbsent(Object obj, JavaBeanAccessor accessor,\r\n+                                                               IdentityHashMap<Object, JavaBeanDescriptor> cache) {\r\n+        if (cache.containsKey(obj)) {\r\n+            return cache.get(obj);\r\n+        }\r\n+\r\n+        if (obj instanceof JavaBeanDescriptor) {\r\n+            return (JavaBeanDescriptor) obj;\r\n+        }\r\n+\r\n+        JavaBeanDescriptor result = createDescriptorForSerialize(obj.getClass());\r\n+        cache.put(obj, result);\r\n+        serializeInternal(result, obj, accessor, cache);\r\n+        return result;\r\n+    }\r\n+\r\n+    private static void serializeInternal(JavaBeanDescriptor descriptor, Object obj, JavaBeanAccessor accessor,\r\n+                                          IdentityHashMap<Object, JavaBeanDescriptor> cache) {\r\n+        if (obj == null || descriptor == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (obj.getClass().isEnum()) {\r\n+            descriptor.setEnumNameProperty(((Enum<?>) obj).name());\r\n+        } else if (ReflectUtils.isPrimitive(obj.getClass())) {\r\n+            descriptor.setPrimitiveProperty(obj);\r\n+        } else if (Class.class.equals(obj.getClass())) {\r\n+            descriptor.setClassNameProperty(((Class<?>) obj).getName());\r\n+        } else if (obj.getClass().isArray()) {\r\n+            int len = Array.getLength(obj);\r\n+            for (int i = 0; i < len; i++) {\r\n+                Object item = Array.get(obj, i);\r\n+                if (item == null) {\r\n+                    descriptor.setProperty(i, null);\r\n+                } else {\r\n+                    JavaBeanDescriptor itemDescriptor = createDescriptorIfAbsent(item, accessor, cache);\r\n+                    descriptor.setProperty(i, itemDescriptor);\r\n+                }\r\n+            }\r\n+        } else if (obj instanceof Collection) {\r\n+            Collection collection = (Collection) obj;\r\n+            int index = 0;\r\n+            for (Object item : collection) {\r\n+                if (item == null) {\r\n+                    descriptor.setProperty(index++, null);\r\n+                } else {\r\n+                    JavaBeanDescriptor itemDescriptor = createDescriptorIfAbsent(item, accessor, cache);\r\n+                    descriptor.setProperty(index++, itemDescriptor);\r\n+                }\r\n+            }\r\n+        } else if (obj instanceof Map) {\r\n+            Map map = (Map) obj;\r\n+            map.forEach((key, value) -> {\r\n+                Object keyDescriptor = key == null ? null : createDescriptorIfAbsent(key, accessor, cache);\r\n+                Object valueDescriptor = value == null ? null : createDescriptorIfAbsent(value, accessor, cache);\r\n+                descriptor.setProperty(keyDescriptor, valueDescriptor);\r\n+            });// ~ end of loop map\r\n+        } else {\r\n+            if (JavaBeanAccessor.isAccessByMethod(accessor)) {\r\n+                Map<String, Method> methods = ReflectUtils.getBeanPropertyReadMethods(obj.getClass());\r\n+                for (Map.Entry<String, Method> entry : methods.entrySet()) {\r\n+                    try {\r\n+                        Object value = entry.getValue().invoke(obj);\r\n+                        if (value == null) {\r\n+                            continue;\r\n+                        }\r\n+                        JavaBeanDescriptor valueDescriptor = createDescriptorIfAbsent(value, accessor, cache);\r\n+                        descriptor.setProperty(entry.getKey(), valueDescriptor);\r\n+                    } catch (Exception e) {\r\n+                        throw new RuntimeException(e.getMessage(), e);\r\n+                    }\r\n+                } // ~ end of loop method map\r\n+            } // ~ end of if (JavaBeanAccessor.isAccessByMethod(accessor))\r\n+\r\n+            if (JavaBeanAccessor.isAccessByField(accessor)) {\r\n+                Map<String, Field> fields = ReflectUtils.getBeanPropertyFields(obj.getClass());\r\n+                for (Map.Entry<String, Field> entry : fields.entrySet()) {\r\n+                    if (!descriptor.containsProperty(entry.getKey())) {\r\n+                        try {\r\n+                            Object value = entry.getValue().get(obj);\r\n+                            if (value == null) {\r\n+                                continue;\r\n+                            }\r\n+                            JavaBeanDescriptor valueDescriptor = createDescriptorIfAbsent(value, accessor, cache);\r\n+                            descriptor.setProperty(entry.getKey(), valueDescriptor);\r\n+                        } catch (Exception e) {\r\n+                            throw new RuntimeException(e.getMessage(), e);\r\n+                        }\r\n+                    }\r\n+                } // ~ end of loop field map\r\n+            } // ~ end of if (JavaBeanAccessor.isAccessByField(accessor))\r\n+\r\n+        } // ~ end of else\r\n+\r\n+    } // ~ end of method serializeInternal\r\n+\r\n+    public static Object deserialize(JavaBeanDescriptor beanDescriptor) {\r\n+        return deserialize(\r\n+                beanDescriptor,\r\n+                Thread.currentThread().getContextClassLoader());\r\n+    }\r\n+\r\n+    public static Object deserialize(JavaBeanDescriptor beanDescriptor, ClassLoader loader) {\r\n+        if (beanDescriptor == null) {\r\n+            return null;\r\n+        }\r\n+        IdentityHashMap<JavaBeanDescriptor, Object> cache = new IdentityHashMap<JavaBeanDescriptor, Object>();\r\n+        Object result = instantiateForDeserialize(beanDescriptor, loader, cache);\r\n+        deserializeInternal(result, beanDescriptor, loader, cache);\r\n+        return result;\r\n+    }\r\n+\r\n+    private static void deserializeInternal(Object result, JavaBeanDescriptor beanDescriptor, ClassLoader loader,\r\n+                                            IdentityHashMap<JavaBeanDescriptor, Object> cache) {\r\n+        if (beanDescriptor.isEnumType() || beanDescriptor.isClassType() || beanDescriptor.isPrimitiveType()) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (beanDescriptor.isArrayType()) {\r\n+            int index = 0;\r\n+            for (Map.Entry<Object, Object> entry : beanDescriptor) {\r\n+                Object item = entry.getValue();\r\n+                if (item instanceof JavaBeanDescriptor) {\r\n+                    JavaBeanDescriptor itemDescriptor = (JavaBeanDescriptor) entry.getValue();\r\n+                    item = instantiateForDeserialize(itemDescriptor, loader, cache);\r\n+                    deserializeInternal(item, itemDescriptor, loader, cache);\r\n+                }\r\n+                Array.set(result, index++, item);\r\n+            }\r\n+        } else if (beanDescriptor.isCollectionType()) {\r\n+            Collection collection = (Collection) result;\r\n+            for (Map.Entry<Object, Object> entry : beanDescriptor) {\r\n+                Object item = entry.getValue();\r\n+                if (item instanceof JavaBeanDescriptor) {\r\n+                    JavaBeanDescriptor itemDescriptor = (JavaBeanDescriptor) entry.getValue();\r\n+                    item = instantiateForDeserialize(itemDescriptor, loader, cache);\r\n+                    deserializeInternal(item, itemDescriptor, loader, cache);\r\n+                }\r\n+                collection.add(item);\r\n+            }\r\n+        } else if (beanDescriptor.isMapType()) {\r\n+            Map map = (Map) result;\r\n+            for (Map.Entry<Object, Object> entry : beanDescriptor) {\r\n+                Object key = entry.getKey();\r\n+                Object value = entry.getValue();\r\n+                if (key instanceof JavaBeanDescriptor) {\r\n+                    JavaBeanDescriptor keyDescriptor = (JavaBeanDescriptor) entry.getKey();\r\n+                    key = instantiateForDeserialize(keyDescriptor, loader, cache);\r\n+                    deserializeInternal(key, keyDescriptor, loader, cache);\r\n+                }\r\n+                if (value instanceof JavaBeanDescriptor) {\r\n+                    JavaBeanDescriptor valueDescriptor = (JavaBeanDescriptor) entry.getValue();\r\n+                    value = instantiateForDeserialize(valueDescriptor, loader, cache);\r\n+                    deserializeInternal(value, valueDescriptor, loader, cache);\r\n+                }\r\n+                map.put(key, value);\r\n+            }\r\n+        } else if (beanDescriptor.isBeanType()) {\r\n+            for (Map.Entry<Object, Object> entry : beanDescriptor) {\r\n+                String property = entry.getKey().toString();\r\n+                Object value = entry.getValue();\r\n+                if (value == null) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                if (value instanceof JavaBeanDescriptor) {\r\n+                    JavaBeanDescriptor valueDescriptor = (JavaBeanDescriptor) entry.getValue();\r\n+                    value = instantiateForDeserialize(valueDescriptor, loader, cache);\r\n+                    deserializeInternal(value, valueDescriptor, loader, cache);\r\n+                }\r\n+\r\n+                Method method = getSetterMethod(result.getClass(), property, value.getClass());\r\n+                boolean setByMethod = false;\r\n+                try {\r\n+                    if (method != null) {\r\n+                        method.invoke(result, value);\r\n+                        setByMethod = true;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    LogHelper.warn(logger, \"Failed to set property through method \" + method, e);\r\n+                }\r\n+\r\n+                if (!setByMethod) {\r\n+                    try {\r\n+                        Field field = result.getClass().getField(property);\r\n+                        if (field != null) {\r\n+                            field.set(result, value);\r\n+                        }\r\n+                    } catch (NoSuchFieldException | IllegalAccessException e1) {\r\n+                        LogHelper.warn(logger, \"Failed to set field value\", e1);\r\n+                    }\r\n+                }\r\n+            }\r\n+        } else {\r\n+            throw new IllegalArgumentException(\"Unsupported type \" +\r\n+                    beanDescriptor.getClassName() +\r\n+                    \":\" + beanDescriptor.getType());\r\n+        }\r\n+    }\r\n+\r\n+    private static Method getSetterMethod(Class<?> cls, String property, Class<?> valueCls) {\r\n+        String name = \"set\" + property.substring(0, 1).toUpperCase() + property.substring(1);\r\n+        Method method = null;\r\n+        try {\r\n+            method = cls.getMethod(name, valueCls);\r\n+        } catch (NoSuchMethodException e) {\r\n+            for (Method m : cls.getMethods()) {\r\n+                if (ReflectUtils.isBeanPropertyWriteMethod(m)\r\n+                        && m.getName().equals(name)) {\r\n+                    method = m;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (method != null) {\r\n+            ReflectUtils.makeAccessible(method);\r\n+        }\r\n+        return method;\r\n+    }\r\n+\r\n+    private static Object instantiate(Class<?> cl) throws Exception {\r\n+        Constructor<?>[] constructors = cl.getDeclaredConstructors();\r\n+        Constructor<?> constructor = null;\r\n+        int argc = Integer.MAX_VALUE;\r\n+        for (Constructor<?> c : constructors) {\r\n+            if (c.getParameterTypes().length < argc) {\r\n+                argc = c.getParameterTypes().length;\r\n+                constructor = c;\r\n+            }\r\n+        }\r\n+\r\n+        if (constructor != null) {\r\n+            Class<?>[] paramTypes = constructor.getParameterTypes();\r\n+            Object[] constructorArgs = new Object[paramTypes.length];\r\n+            for (int i = 0; i < constructorArgs.length; i++) {\r\n+                constructorArgs[i] = getConstructorArg(paramTypes[i]);\r\n+            }\r\n+            try {\r\n+                ReflectUtils.makeAccessible(constructor);\r\n+                return constructor.newInstance(constructorArgs);\r\n+            } catch (InstantiationException | IllegalAccessException | InvocationTargetException e) {\r\n+                LogHelper.warn(logger, e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        return cl.getDeclaredConstructor().newInstance();\r\n+    }\r\n+\r\n+    public static Object getConstructorArg(Class<?> cl) {\r\n+        if (boolean.class.equals(cl) || Boolean.class.equals(cl)) {\r\n+            return Boolean.FALSE;\r\n+        }\r\n+\r\n+        if (byte.class.equals(cl) || Byte.class.equals(cl)) {\r\n+            return (byte) 0;\r\n+        }\r\n+\r\n+        if (short.class.equals(cl) || Short.class.equals(cl)) {\r\n+            return (short) 0;\r\n+        }\r\n+\r\n+        if (int.class.equals(cl) || Integer.class.equals(cl)) {\r\n+            return 0;\r\n+        }\r\n+\r\n+        if (long.class.equals(cl) || Long.class.equals(cl)) {\r\n+            return 0L;\r\n+        }\r\n+\r\n+        if (float.class.equals(cl) || Float.class.equals(cl)) {\r\n+            return (float) 0;\r\n+        }\r\n+\r\n+        if (double.class.equals(cl) || Double.class.equals(cl)) {\r\n+            return (double) 0;\r\n+        }\r\n+\r\n+        if (char.class.equals(cl) || Character.class.equals(cl)) {\r\n+            return (char) 0;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    private static Object instantiateForDeserialize(JavaBeanDescriptor beanDescriptor, ClassLoader loader,\r\n+                                                    IdentityHashMap<JavaBeanDescriptor, Object> cache) {\r\n+        if (cache.containsKey(beanDescriptor)) {\r\n+            return cache.get(beanDescriptor);\r\n+        }\r\n+\r\n+        if (beanDescriptor.isClassType()) {\r\n+            try {\r\n+                return name2Class(loader, beanDescriptor.getClassNameProperty());\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new RuntimeException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        if (beanDescriptor.isEnumType()) {\r\n+            try {\r\n+                Class<?> enumType = name2Class(loader, beanDescriptor.getClassName());\r\n+                Method method = getEnumValueOfMethod(enumType);\r\n+                return method.invoke(null, enumType, beanDescriptor.getEnumPropertyName());\r\n+            } catch (Exception e) {\r\n+                throw new RuntimeException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        if (beanDescriptor.isPrimitiveType()) {\r\n+            return beanDescriptor.getPrimitiveProperty();\r\n+        }\r\n+\r\n+        Object result;\r\n+        if (beanDescriptor.isArrayType()) {\r\n+            Class<?> componentType;\r\n+            try {\r\n+                componentType = name2Class(loader, beanDescriptor.getClassName());\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new RuntimeException(e.getMessage(), e);\r\n+            }\r\n+            result = Array.newInstance(componentType, beanDescriptor.propertySize());\r\n+            cache.put(beanDescriptor, result);\r\n+        } else {\r\n+            try {\r\n+                Class<?> cl = name2Class(loader, beanDescriptor.getClassName());\r\n+                result = instantiate(cl);\r\n+                cache.put(beanDescriptor, result);\r\n+            } catch (Exception e) {\r\n+                throw new RuntimeException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        return result;\r\n+    }\r\n+\r\n+    /**\r\n+     * Transform the Class.forName String to Class Object.\r\n+     *\r\n+     * @param name Class.getName()\r\n+     * @return Class\r\n+     * @throws ClassNotFoundException Class.forName\r\n+     */\r\n+    public static Class<?> name2Class(ClassLoader loader, String name) throws ClassNotFoundException {\r\n+        if (TYPES.containsKey(name)) {\r\n+            return TYPES.get(name);\r\n+        }\r\n+        if (isArray(name)) {\r\n+            int dimension = 0;\r\n+            while (isArray(name)) {\r\n+                ++dimension;\r\n+                name = name.substring(1);\r\n+            }\r\n+            Class type = name2Class(loader, name);\r\n+            int[] dimensions = new int[dimension];\r\n+            for (int i = 0; i < dimension; i++) {\r\n+                dimensions[i] = 0;\r\n+            }\r\n+            return Array.newInstance(type, dimensions).getClass();\r\n+        }\r\n+        if (isReferenceType(name)) {\r\n+            name = name.substring(1, name.length() - 1);\r\n+        }\r\n+        SerializeClassChecker.getInstance().validateClass(name);\r\n+        return Class.forName(name, false, loader);\r\n+    }\r\n+\r\n+    private static boolean isArray(String type) {\r\n+        return type != null && type.startsWith(ARRAY_PREFIX);\r\n+    }\r\n+\r\n+    private static boolean isReferenceType(String type) {\r\n+        return type != null\r\n+                && type.startsWith(REFERENCE_TYPE_PREFIX)\r\n+                && type.endsWith(REFERENCE_TYPE_SUFFIX);\r\n+    }\r\n+\r\n+    private static Method getEnumValueOfMethod(Class cl) throws NoSuchMethodException {\r\n+        return cl.getMethod(\"valueOf\", Class.class, String.class);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/bytecode/ClassGenerator.java", "source2": "org/apache/dubbo/common/bytecode/ClassGenerator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,388 +1,388 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.bytecode;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import javassist.CannotCompileException;\n-import javassist.ClassPool;\n-import javassist.CtClass;\n-import javassist.CtConstructor;\n-import javassist.CtField;\n-import javassist.CtMethod;\n-import javassist.CtNewConstructor;\n-import javassist.CtNewMethod;\n-import javassist.NotFoundException;\n-\n-import java.lang.reflect.Constructor;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.security.ProtectionDomain;\n-import java.util.ArrayList;\n-import java.util.HashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-/**\n- * ClassGenerator\n- */\n-public final class ClassGenerator {\n-\n-    private static final AtomicLong CLASS_NAME_COUNTER = new AtomicLong(0);\n-    private static final String SIMPLE_NAME_TAG = \"<init>\";\n-    private static final Map<ClassLoader, ClassPool> POOL_MAP = new ConcurrentHashMap<ClassLoader, ClassPool>(); //ClassLoader - ClassPool\n-    private ClassPool mPool;\n-    private CtClass mCtc;\n-    private String mClassName;\n-    private String mSuperClass;\n-    private Set<String> mInterfaces;\n-    private List<String> mFields;\n-    private List<String> mConstructors;\n-    private List<String> mMethods;\n-    private Map<String, Method> mCopyMethods; // <method desc,method instance>\n-    private Map<String, Constructor<?>> mCopyConstructors; // <constructor desc,constructor instance>\n-    private boolean mDefaultConstructor = false;\n-\n-    private ClassGenerator() {\n-    }\n-\n-    private ClassGenerator(ClassPool pool) {\n-        mPool = pool;\n-    }\n-\n-    public static ClassGenerator newInstance() {\n-        return new ClassGenerator(getClassPool(Thread.currentThread().getContextClassLoader()));\n-    }\n-\n-    public static ClassGenerator newInstance(ClassLoader loader) {\n-        return new ClassGenerator(getClassPool(loader));\n-    }\n-\n-    public static boolean isDynamicClass(Class<?> cl) {\n-        return ClassGenerator.DC.class.isAssignableFrom(cl);\n-    }\n-\n-    public static ClassPool getClassPool(ClassLoader loader) {\n-        if (loader == null) {\n-            return ClassPool.getDefault();\n-        }\n-\n-        ClassPool pool = POOL_MAP.get(loader);\n-        if (pool == null) {\n-            pool = new ClassPool(true);\n-            pool.appendClassPath(new CustomizedLoaderClassPath(loader));\n-            POOL_MAP.put(loader, pool);\n-        }\n-        return pool;\n-    }\n-\n-    private static String modifier(int mod) {\n-        StringBuilder modifier = new StringBuilder();\n-        if (Modifier.isPublic(mod)) {\n-            modifier.append(\"public\");\n-        } else if (Modifier.isProtected(mod)) {\n-            modifier.append(\"protected\");\n-        } else if (Modifier.isPrivate(mod)) {\n-            modifier.append(\"private\");\n-        }\n-\n-        if (Modifier.isStatic(mod)) {\n-            modifier.append(\" static\");\n-        }\n-        if (Modifier.isVolatile(mod)) {\n-            modifier.append(\" volatile\");\n-        }\n-\n-        return modifier.toString();\n-    }\n-\n-    public String getClassName() {\n-        return mClassName;\n-    }\n-\n-    public ClassGenerator setClassName(String name) {\n-        mClassName = name;\n-        return this;\n-    }\n-\n-    public ClassGenerator addInterface(String cn) {\n-        if (mInterfaces == null) {\n-            mInterfaces = new HashSet<String>();\n-        }\n-        mInterfaces.add(cn);\n-        return this;\n-    }\n-\n-    public ClassGenerator addInterface(Class<?> cl) {\n-        return addInterface(cl.getName());\n-    }\n-\n-    public ClassGenerator setSuperClass(String cn) {\n-        mSuperClass = cn;\n-        return this;\n-    }\n-\n-    public ClassGenerator setSuperClass(Class<?> cl) {\n-        mSuperClass = cl.getName();\n-        return this;\n-    }\n-\n-    public ClassGenerator addField(String code) {\n-        if (mFields == null) {\n-            mFields = new ArrayList<String>();\n-        }\n-        mFields.add(code);\n-        return this;\n-    }\n-\n-    public ClassGenerator addField(String name, int mod, Class<?> type) {\n-        return addField(name, mod, type, null);\n-    }\n-\n-    public ClassGenerator addField(String name, int mod, Class<?> type, String def) {\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(modifier(mod)).append(' ').append(ReflectUtils.getName(type)).append(' ');\n-        sb.append(name);\n-        if (StringUtils.isNotEmpty(def)) {\n-            sb.append('=');\n-            sb.append(def);\n-        }\n-        sb.append(';');\n-        return addField(sb.toString());\n-    }\n-\n-    public ClassGenerator addMethod(String code) {\n-        if (mMethods == null) {\n-            mMethods = new ArrayList<String>();\n-        }\n-        mMethods.add(code);\n-        return this;\n-    }\n-\n-    public ClassGenerator addMethod(String name, int mod, Class<?> rt, Class<?>[] pts, String body) {\n-        return addMethod(name, mod, rt, pts, null, body);\n-    }\n-\n-    public ClassGenerator addMethod(String name, int mod, Class<?> rt, Class<?>[] pts, Class<?>[] ets,\n-                                    String body) {\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(modifier(mod)).append(' ').append(ReflectUtils.getName(rt)).append(' ').append(name);\n-        sb.append('(');\n-        for (int i = 0; i < pts.length; i++) {\n-            if (i > 0) {\n-                sb.append(',');\n-            }\n-            sb.append(ReflectUtils.getName(pts[i]));\n-            sb.append(\" arg\").append(i);\n-        }\n-        sb.append(')');\n-        if (ArrayUtils.isNotEmpty(ets)) {\n-            sb.append(\" throws \");\n-            for (int i = 0; i < ets.length; i++) {\n-                if (i > 0) {\n-                    sb.append(',');\n-                }\n-                sb.append(ReflectUtils.getName(ets[i]));\n-            }\n-        }\n-        sb.append('{').append(body).append('}');\n-        return addMethod(sb.toString());\n-    }\n-\n-    public ClassGenerator addMethod(Method m) {\n-        addMethod(m.getName(), m);\n-        return this;\n-    }\n-\n-    public ClassGenerator addMethod(String name, Method m) {\n-        String desc = name + ReflectUtils.getDescWithoutMethodName(m);\n-        addMethod(':' + desc);\n-        if (mCopyMethods == null) {\n-            mCopyMethods = new ConcurrentHashMap<String, Method>(8);\n-        }\n-        mCopyMethods.put(desc, m);\n-        return this;\n-    }\n-\n-    public ClassGenerator addConstructor(String code) {\n-        if (mConstructors == null) {\n-            mConstructors = new LinkedList<String>();\n-        }\n-        mConstructors.add(code);\n-        return this;\n-    }\n-\n-    public ClassGenerator addConstructor(int mod, Class<?>[] pts, String body) {\n-        return addConstructor(mod, pts, null, body);\n-    }\n-\n-    public ClassGenerator addConstructor(int mod, Class<?>[] pts, Class<?>[] ets, String body) {\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(modifier(mod)).append(' ').append(SIMPLE_NAME_TAG);\n-        sb.append('(');\n-        for (int i = 0; i < pts.length; i++) {\n-            if (i > 0) {\n-                sb.append(',');\n-            }\n-            sb.append(ReflectUtils.getName(pts[i]));\n-            sb.append(\" arg\").append(i);\n-        }\n-        sb.append(')');\n-        if (ArrayUtils.isNotEmpty(ets)) {\n-            sb.append(\" throws \");\n-            for (int i = 0; i < ets.length; i++) {\n-                if (i > 0) {\n-                    sb.append(',');\n-                }\n-                sb.append(ReflectUtils.getName(ets[i]));\n-            }\n-        }\n-        sb.append('{').append(body).append('}');\n-        return addConstructor(sb.toString());\n-    }\n-\n-    public ClassGenerator addConstructor(Constructor<?> c) {\n-        String desc = ReflectUtils.getDesc(c);\n-        addConstructor(\":\" + desc);\n-        if (mCopyConstructors == null) {\n-            mCopyConstructors = new ConcurrentHashMap<String, Constructor<?>>(4);\n-        }\n-        mCopyConstructors.put(desc, c);\n-        return this;\n-    }\n-\n-    public ClassGenerator addDefaultConstructor() {\n-        mDefaultConstructor = true;\n-        return this;\n-    }\n-\n-    public ClassPool getClassPool() {\n-        return mPool;\n-    }\n-\n-    public Class<?> toClass() {\n-        return toClass(ClassUtils.getClassLoader(ClassGenerator.class),\n-                getClass().getProtectionDomain());\n-    }\n-\n-    public Class<?> toClass(ClassLoader loader, ProtectionDomain pd) {\n-        if (mCtc != null) {\n-            mCtc.detach();\n-        }\n-        long id = CLASS_NAME_COUNTER.getAndIncrement();\n-        try {\n-            CtClass ctcs = mSuperClass == null ? null : mPool.get(mSuperClass);\n-            if (mClassName == null) {\n-                mClassName = (mSuperClass == null || javassist.Modifier.isPublic(ctcs.getModifiers())\n-                        ? ClassGenerator.class.getName() : mSuperClass + \"$sc\") + id;\n-            }\n-            mCtc = mPool.makeClass(mClassName);\n-            if (mSuperClass != null) {\n-                mCtc.setSuperclass(ctcs);\n-            }\n-            mCtc.addInterface(mPool.get(DC.class.getName())); // add dynamic class tag.\n-            if (mInterfaces != null) {\n-                for (String cl : mInterfaces) {\n-                    mCtc.addInterface(mPool.get(cl));\n-                }\n-            }\n-            if (mFields != null) {\n-                for (String code : mFields) {\n-                    mCtc.addField(CtField.make(code, mCtc));\n-                }\n-            }\n-            if (mMethods != null) {\n-                for (String code : mMethods) {\n-                    if (code.charAt(0) == ':') {\n-                        mCtc.addMethod(CtNewMethod.copy(getCtMethod(mCopyMethods.get(code.substring(1))),\n-                                code.substring(1, code.indexOf('(')), mCtc, null));\n-                    } else {\n-                        mCtc.addMethod(CtNewMethod.make(code, mCtc));\n-                    }\n-                }\n-            }\n-            if (mDefaultConstructor) {\n-                mCtc.addConstructor(CtNewConstructor.defaultConstructor(mCtc));\n-            }\n-            if (mConstructors != null) {\n-                for (String code : mConstructors) {\n-                    if (code.charAt(0) == ':') {\n-                        mCtc.addConstructor(CtNewConstructor\n-                                .copy(getCtConstructor(mCopyConstructors.get(code.substring(1))), mCtc, null));\n-                    } else {\n-                        String[] sn = mCtc.getSimpleName().split(\"\\\\$+\"); // inner class name include $.\n-                        mCtc.addConstructor(\n-                                CtNewConstructor.make(code.replaceFirst(SIMPLE_NAME_TAG, sn[sn.length - 1]), mCtc));\n-                    }\n-                }\n-            }\n-            return mCtc.toClass(loader, pd);\n-        } catch (RuntimeException e) {\n-            throw e;\n-        } catch (NotFoundException | CannotCompileException e) {\n-            throw new RuntimeException(e.getMessage(), e);\n-        }\n-    }\n-\n-    public void release() {\n-        if (mCtc != null) {\n-            mCtc.detach();\n-        }\n-        if (mInterfaces != null) {\n-            mInterfaces.clear();\n-        }\n-        if (mFields != null) {\n-            mFields.clear();\n-        }\n-        if (mMethods != null) {\n-            mMethods.clear();\n-        }\n-        if (mConstructors != null) {\n-            mConstructors.clear();\n-        }\n-        if (mCopyMethods != null) {\n-            mCopyMethods.clear();\n-        }\n-        if (mCopyConstructors != null) {\n-            mCopyConstructors.clear();\n-        }\n-    }\n-\n-    private CtClass getCtClass(Class<?> c) throws NotFoundException {\n-        return mPool.get(c.getName());\n-    }\n-\n-    private CtMethod getCtMethod(Method m) throws NotFoundException {\n-        return getCtClass(m.getDeclaringClass())\n-                .getMethod(m.getName(), ReflectUtils.getDescWithoutMethodName(m));\n-    }\n-\n-    private CtConstructor getCtConstructor(Constructor<?> c) throws NotFoundException {\n-        return getCtClass(c.getDeclaringClass()).getConstructor(ReflectUtils.getDesc(c));\n-    }\n-\n-    public static interface DC {\n-\n-    } // dynamic class tag interface.\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.bytecode;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import javassist.CannotCompileException;\r\n+import javassist.ClassPool;\r\n+import javassist.CtClass;\r\n+import javassist.CtConstructor;\r\n+import javassist.CtField;\r\n+import javassist.CtMethod;\r\n+import javassist.CtNewConstructor;\r\n+import javassist.CtNewMethod;\r\n+import javassist.NotFoundException;\r\n+\r\n+import java.lang.reflect.Constructor;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.security.ProtectionDomain;\r\n+import java.util.ArrayList;\r\n+import java.util.HashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+/**\r\n+ * ClassGenerator\r\n+ */\r\n+public final class ClassGenerator {\r\n+\r\n+    private static final AtomicLong CLASS_NAME_COUNTER = new AtomicLong(0);\r\n+    private static final String SIMPLE_NAME_TAG = \"<init>\";\r\n+    private static final Map<ClassLoader, ClassPool> POOL_MAP = new ConcurrentHashMap<ClassLoader, ClassPool>(); //ClassLoader - ClassPool\r\n+    private ClassPool mPool;\r\n+    private CtClass mCtc;\r\n+    private String mClassName;\r\n+    private String mSuperClass;\r\n+    private Set<String> mInterfaces;\r\n+    private List<String> mFields;\r\n+    private List<String> mConstructors;\r\n+    private List<String> mMethods;\r\n+    private Map<String, Method> mCopyMethods; // <method desc,method instance>\r\n+    private Map<String, Constructor<?>> mCopyConstructors; // <constructor desc,constructor instance>\r\n+    private boolean mDefaultConstructor = false;\r\n+\r\n+    private ClassGenerator() {\r\n+    }\r\n+\r\n+    private ClassGenerator(ClassPool pool) {\r\n+        mPool = pool;\r\n+    }\r\n+\r\n+    public static ClassGenerator newInstance() {\r\n+        return new ClassGenerator(getClassPool(Thread.currentThread().getContextClassLoader()));\r\n+    }\r\n+\r\n+    public static ClassGenerator newInstance(ClassLoader loader) {\r\n+        return new ClassGenerator(getClassPool(loader));\r\n+    }\r\n+\r\n+    public static boolean isDynamicClass(Class<?> cl) {\r\n+        return ClassGenerator.DC.class.isAssignableFrom(cl);\r\n+    }\r\n+\r\n+    public static ClassPool getClassPool(ClassLoader loader) {\r\n+        if (loader == null) {\r\n+            return ClassPool.getDefault();\r\n+        }\r\n+\r\n+        ClassPool pool = POOL_MAP.get(loader);\r\n+        if (pool == null) {\r\n+            pool = new ClassPool(true);\r\n+            pool.appendClassPath(new CustomizedLoaderClassPath(loader));\r\n+            POOL_MAP.put(loader, pool);\r\n+        }\r\n+        return pool;\r\n+    }\r\n+\r\n+    private static String modifier(int mod) {\r\n+        StringBuilder modifier = new StringBuilder();\r\n+        if (Modifier.isPublic(mod)) {\r\n+            modifier.append(\"public\");\r\n+        } else if (Modifier.isProtected(mod)) {\r\n+            modifier.append(\"protected\");\r\n+        } else if (Modifier.isPrivate(mod)) {\r\n+            modifier.append(\"private\");\r\n+        }\r\n+\r\n+        if (Modifier.isStatic(mod)) {\r\n+            modifier.append(\" static\");\r\n+        }\r\n+        if (Modifier.isVolatile(mod)) {\r\n+            modifier.append(\" volatile\");\r\n+        }\r\n+\r\n+        return modifier.toString();\r\n+    }\r\n+\r\n+    public String getClassName() {\r\n+        return mClassName;\r\n+    }\r\n+\r\n+    public ClassGenerator setClassName(String name) {\r\n+        mClassName = name;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addInterface(String cn) {\r\n+        if (mInterfaces == null) {\r\n+            mInterfaces = new HashSet<String>();\r\n+        }\r\n+        mInterfaces.add(cn);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addInterface(Class<?> cl) {\r\n+        return addInterface(cl.getName());\r\n+    }\r\n+\r\n+    public ClassGenerator setSuperClass(String cn) {\r\n+        mSuperClass = cn;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator setSuperClass(Class<?> cl) {\r\n+        mSuperClass = cl.getName();\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addField(String code) {\r\n+        if (mFields == null) {\r\n+            mFields = new ArrayList<String>();\r\n+        }\r\n+        mFields.add(code);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addField(String name, int mod, Class<?> type) {\r\n+        return addField(name, mod, type, null);\r\n+    }\r\n+\r\n+    public ClassGenerator addField(String name, int mod, Class<?> type, String def) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(modifier(mod)).append(' ').append(ReflectUtils.getName(type)).append(' ');\r\n+        sb.append(name);\r\n+        if (StringUtils.isNotEmpty(def)) {\r\n+            sb.append('=');\r\n+            sb.append(def);\r\n+        }\r\n+        sb.append(';');\r\n+        return addField(sb.toString());\r\n+    }\r\n+\r\n+    public ClassGenerator addMethod(String code) {\r\n+        if (mMethods == null) {\r\n+            mMethods = new ArrayList<String>();\r\n+        }\r\n+        mMethods.add(code);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addMethod(String name, int mod, Class<?> rt, Class<?>[] pts, String body) {\r\n+        return addMethod(name, mod, rt, pts, null, body);\r\n+    }\r\n+\r\n+    public ClassGenerator addMethod(String name, int mod, Class<?> rt, Class<?>[] pts, Class<?>[] ets,\r\n+                                    String body) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(modifier(mod)).append(' ').append(ReflectUtils.getName(rt)).append(' ').append(name);\r\n+        sb.append('(');\r\n+        for (int i = 0; i < pts.length; i++) {\r\n+            if (i > 0) {\r\n+                sb.append(',');\r\n+            }\r\n+            sb.append(ReflectUtils.getName(pts[i]));\r\n+            sb.append(\" arg\").append(i);\r\n+        }\r\n+        sb.append(')');\r\n+        if (ArrayUtils.isNotEmpty(ets)) {\r\n+            sb.append(\" throws \");\r\n+            for (int i = 0; i < ets.length; i++) {\r\n+                if (i > 0) {\r\n+                    sb.append(',');\r\n+                }\r\n+                sb.append(ReflectUtils.getName(ets[i]));\r\n+            }\r\n+        }\r\n+        sb.append('{').append(body).append('}');\r\n+        return addMethod(sb.toString());\r\n+    }\r\n+\r\n+    public ClassGenerator addMethod(Method m) {\r\n+        addMethod(m.getName(), m);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addMethod(String name, Method m) {\r\n+        String desc = name + ReflectUtils.getDescWithoutMethodName(m);\r\n+        addMethod(':' + desc);\r\n+        if (mCopyMethods == null) {\r\n+            mCopyMethods = new ConcurrentHashMap<String, Method>(8);\r\n+        }\r\n+        mCopyMethods.put(desc, m);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addConstructor(String code) {\r\n+        if (mConstructors == null) {\r\n+            mConstructors = new LinkedList<String>();\r\n+        }\r\n+        mConstructors.add(code);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addConstructor(int mod, Class<?>[] pts, String body) {\r\n+        return addConstructor(mod, pts, null, body);\r\n+    }\r\n+\r\n+    public ClassGenerator addConstructor(int mod, Class<?>[] pts, Class<?>[] ets, String body) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(modifier(mod)).append(' ').append(SIMPLE_NAME_TAG);\r\n+        sb.append('(');\r\n+        for (int i = 0; i < pts.length; i++) {\r\n+            if (i > 0) {\r\n+                sb.append(',');\r\n+            }\r\n+            sb.append(ReflectUtils.getName(pts[i]));\r\n+            sb.append(\" arg\").append(i);\r\n+        }\r\n+        sb.append(')');\r\n+        if (ArrayUtils.isNotEmpty(ets)) {\r\n+            sb.append(\" throws \");\r\n+            for (int i = 0; i < ets.length; i++) {\r\n+                if (i > 0) {\r\n+                    sb.append(',');\r\n+                }\r\n+                sb.append(ReflectUtils.getName(ets[i]));\r\n+            }\r\n+        }\r\n+        sb.append('{').append(body).append('}');\r\n+        return addConstructor(sb.toString());\r\n+    }\r\n+\r\n+    public ClassGenerator addConstructor(Constructor<?> c) {\r\n+        String desc = ReflectUtils.getDesc(c);\r\n+        addConstructor(\":\" + desc);\r\n+        if (mCopyConstructors == null) {\r\n+            mCopyConstructors = new ConcurrentHashMap<String, Constructor<?>>(4);\r\n+        }\r\n+        mCopyConstructors.put(desc, c);\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassGenerator addDefaultConstructor() {\r\n+        mDefaultConstructor = true;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ClassPool getClassPool() {\r\n+        return mPool;\r\n+    }\r\n+\r\n+    public Class<?> toClass() {\r\n+        return toClass(ClassUtils.getClassLoader(ClassGenerator.class),\r\n+                getClass().getProtectionDomain());\r\n+    }\r\n+\r\n+    public Class<?> toClass(ClassLoader loader, ProtectionDomain pd) {\r\n+        if (mCtc != null) {\r\n+            mCtc.detach();\r\n+        }\r\n+        long id = CLASS_NAME_COUNTER.getAndIncrement();\r\n+        try {\r\n+            CtClass ctcs = mSuperClass == null ? null : mPool.get(mSuperClass);\r\n+            if (mClassName == null) {\r\n+                mClassName = (mSuperClass == null || javassist.Modifier.isPublic(ctcs.getModifiers())\r\n+                        ? ClassGenerator.class.getName() : mSuperClass + \"$sc\") + id;\r\n+            }\r\n+            mCtc = mPool.makeClass(mClassName);\r\n+            if (mSuperClass != null) {\r\n+                mCtc.setSuperclass(ctcs);\r\n+            }\r\n+            mCtc.addInterface(mPool.get(DC.class.getName())); // add dynamic class tag.\r\n+            if (mInterfaces != null) {\r\n+                for (String cl : mInterfaces) {\r\n+                    mCtc.addInterface(mPool.get(cl));\r\n+                }\r\n+            }\r\n+            if (mFields != null) {\r\n+                for (String code : mFields) {\r\n+                    mCtc.addField(CtField.make(code, mCtc));\r\n+                }\r\n+            }\r\n+            if (mMethods != null) {\r\n+                for (String code : mMethods) {\r\n+                    if (code.charAt(0) == ':') {\r\n+                        mCtc.addMethod(CtNewMethod.copy(getCtMethod(mCopyMethods.get(code.substring(1))),\r\n+                                code.substring(1, code.indexOf('(')), mCtc, null));\r\n+                    } else {\r\n+                        mCtc.addMethod(CtNewMethod.make(code, mCtc));\r\n+                    }\r\n+                }\r\n+            }\r\n+            if (mDefaultConstructor) {\r\n+                mCtc.addConstructor(CtNewConstructor.defaultConstructor(mCtc));\r\n+            }\r\n+            if (mConstructors != null) {\r\n+                for (String code : mConstructors) {\r\n+                    if (code.charAt(0) == ':') {\r\n+                        mCtc.addConstructor(CtNewConstructor\r\n+                                .copy(getCtConstructor(mCopyConstructors.get(code.substring(1))), mCtc, null));\r\n+                    } else {\r\n+                        String[] sn = mCtc.getSimpleName().split(\"\\\\$+\"); // inner class name include $.\r\n+                        mCtc.addConstructor(\r\n+                                CtNewConstructor.make(code.replaceFirst(SIMPLE_NAME_TAG, sn[sn.length - 1]), mCtc));\r\n+                    }\r\n+                }\r\n+            }\r\n+            return mCtc.toClass(loader, pd);\r\n+        } catch (RuntimeException e) {\r\n+            throw e;\r\n+        } catch (NotFoundException | CannotCompileException e) {\r\n+            throw new RuntimeException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public void release() {\r\n+        if (mCtc != null) {\r\n+            mCtc.detach();\r\n+        }\r\n+        if (mInterfaces != null) {\r\n+            mInterfaces.clear();\r\n+        }\r\n+        if (mFields != null) {\r\n+            mFields.clear();\r\n+        }\r\n+        if (mMethods != null) {\r\n+            mMethods.clear();\r\n+        }\r\n+        if (mConstructors != null) {\r\n+            mConstructors.clear();\r\n+        }\r\n+        if (mCopyMethods != null) {\r\n+            mCopyMethods.clear();\r\n+        }\r\n+        if (mCopyConstructors != null) {\r\n+            mCopyConstructors.clear();\r\n+        }\r\n+    }\r\n+\r\n+    private CtClass getCtClass(Class<?> c) throws NotFoundException {\r\n+        return mPool.get(c.getName());\r\n+    }\r\n+\r\n+    private CtMethod getCtMethod(Method m) throws NotFoundException {\r\n+        return getCtClass(m.getDeclaringClass())\r\n+                .getMethod(m.getName(), ReflectUtils.getDescWithoutMethodName(m));\r\n+    }\r\n+\r\n+    private CtConstructor getCtConstructor(Constructor<?> c) throws NotFoundException {\r\n+        return getCtClass(c.getDeclaringClass()).getConstructor(ReflectUtils.getDesc(c));\r\n+    }\r\n+\r\n+    public static interface DC {\r\n+\r\n+    } // dynamic class tag interface.\r\n }\n"}, {"source1": "org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java", "source2": "org/apache/dubbo/common/bytecode/CustomizedLoaderClassPath.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,105 +1,105 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.bytecode;\n-\n-import javassist.ClassPath;\n-\n-import java.io.InputStream;\n-import java.lang.ref.WeakReference;\n-import java.net.URL;\n-\n-/**\n- * A class search-path representing a class loader.\n- *\n- * <p>It is used for obtaining a class file from the given\n- * class loader by <code>getResourceAsStream()</code>.\n- * The <code>LoaderClassPath</code> refers to the class loader through\n- * <code>WeakReference</code>.  If the class loader is garbage collected,\n- * the other search pathes are examined.\n- *\n- * <p>The given class loader must have both <code>getResourceAsStream()</code>\n- * and <code>getResource()</code>.\n- *\n- * @author <a href=\"mailto:bill@jboss.org\">Bill Burke</a>\n- * @author Shigeru Chiba\n- */\n-public class CustomizedLoaderClassPath implements ClassPath {\n-    private WeakReference clref;\n-\n-    /**\n-     * Creates a search path representing a class loader.\n-     */\n-    public CustomizedLoaderClassPath(ClassLoader cl) {\n-        clref = new WeakReference(cl);\n-    }\n-\n-    public String toString() {\n-        Object cl = null;\n-        if (clref != null) {\n-            cl = clref.get();\n-        }\n-\n-        return cl == null ? \"<null>\" : cl.toString();\n-    }\n-\n-    /**\n-     * Obtains a class file from the class loader.\n-     * This method calls <code>getResourceAsStream(String)</code>\n-     * on the class loader.\n-     */\n-    public InputStream openClassfile(String classname) {\n-        String cname = classname.replace('.', '/') + \".class\";\n-        ClassLoader cl = (ClassLoader) clref.get();\n-        if (cl == null) {\n-            return null;        // not found\n-        } else {\n-            InputStream result = cl.getResourceAsStream(cname);\n-            if (result == null && (cl != this.getClass().getClassLoader())) {\n-                return this.getClass().getClassLoader().getResourceAsStream(cname);\n-            }\n-            return result;\n-        }\n-    }\n-\n-    /**\n-     * Obtains the URL of the specified class file.\n-     * This method calls <code>getResource(String)</code>\n-     * on the class loader.\n-     *\n-     * @return null if the class file could not be found.\n-     */\n-    public URL find(String classname) {\n-        String cname = classname.replace('.', '/') + \".class\";\n-        ClassLoader cl = (ClassLoader) clref.get();\n-        if (cl == null) {\n-            return null;        // not found\n-        } else {\n-            URL url = cl.getResource(cname);\n-            if (url == null && (cl != this.getClass().getClassLoader())) {\n-                return this.getClass().getClassLoader().getResource(cname);\n-            }\n-            return url;\n-        }\n-    }\n-\n-    /**\n-     * Closes this class path.\n-     */\n-    public void close() {\n-        clref = null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.bytecode;\r\n+\r\n+import javassist.ClassPath;\r\n+\r\n+import java.io.InputStream;\r\n+import java.lang.ref.WeakReference;\r\n+import java.net.URL;\r\n+\r\n+/**\r\n+ * A class search-path representing a class loader.\r\n+ *\r\n+ * <p>It is used for obtaining a class file from the given\r\n+ * class loader by <code>getResourceAsStream()</code>.\r\n+ * The <code>LoaderClassPath</code> refers to the class loader through\r\n+ * <code>WeakReference</code>.  If the class loader is garbage collected,\r\n+ * the other search pathes are examined.\r\n+ *\r\n+ * <p>The given class loader must have both <code>getResourceAsStream()</code>\r\n+ * and <code>getResource()</code>.\r\n+ *\r\n+ * @author <a href=\"mailto:bill@jboss.org\">Bill Burke</a>\r\n+ * @author Shigeru Chiba\r\n+ */\r\n+public class CustomizedLoaderClassPath implements ClassPath {\r\n+    private WeakReference clref;\r\n+\r\n+    /**\r\n+     * Creates a search path representing a class loader.\r\n+     */\r\n+    public CustomizedLoaderClassPath(ClassLoader cl) {\r\n+        clref = new WeakReference(cl);\r\n+    }\r\n+\r\n+    public String toString() {\r\n+        Object cl = null;\r\n+        if (clref != null) {\r\n+            cl = clref.get();\r\n+        }\r\n+\r\n+        return cl == null ? \"<null>\" : cl.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * Obtains a class file from the class loader.\r\n+     * This method calls <code>getResourceAsStream(String)</code>\r\n+     * on the class loader.\r\n+     */\r\n+    public InputStream openClassfile(String classname) {\r\n+        String cname = classname.replace('.', '/') + \".class\";\r\n+        ClassLoader cl = (ClassLoader) clref.get();\r\n+        if (cl == null) {\r\n+            return null;        // not found\r\n+        } else {\r\n+            InputStream result = cl.getResourceAsStream(cname);\r\n+            if (result == null && (cl != this.getClass().getClassLoader())) {\r\n+                return this.getClass().getClassLoader().getResourceAsStream(cname);\r\n+            }\r\n+            return result;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Obtains the URL of the specified class file.\r\n+     * This method calls <code>getResource(String)</code>\r\n+     * on the class loader.\r\n+     *\r\n+     * @return null if the class file could not be found.\r\n+     */\r\n+    public URL find(String classname) {\r\n+        String cname = classname.replace('.', '/') + \".class\";\r\n+        ClassLoader cl = (ClassLoader) clref.get();\r\n+        if (cl == null) {\r\n+            return null;        // not found\r\n+        } else {\r\n+            URL url = cl.getResource(cname);\r\n+            if (url == null && (cl != this.getClass().getClassLoader())) {\r\n+                return this.getClass().getClassLoader().getResource(cname);\r\n+            }\r\n+            return url;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Closes this class path.\r\n+     */\r\n+    public void close() {\r\n+        clref = null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/CompositeConfiguration.java", "source2": "org/apache/dubbo/common/config/CompositeConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,128 +1,128 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.Arrays;\n-import java.util.LinkedList;\n-import java.util.List;\n-\n-/**\n- * This is an abstraction specially customized for the sequence Dubbo retrieves properties.\n- */\n-public class CompositeConfiguration implements Configuration {\n-    private Logger logger = LoggerFactory.getLogger(CompositeConfiguration.class);\n-\n-    private String id;\n-    private String prefix;\n-\n-    /**\n-     * List holding all the configuration\n-     */\n-    private List<Configuration> configList = new LinkedList<Configuration>();\n-\n-    //FIXME, consider change configList to SortedMap to replace this boolean status.\n-    private boolean dynamicIncluded;\n-\n-    public CompositeConfiguration() {\n-        this(null, null);\n-    }\n-\n-    public CompositeConfiguration(String prefix, String id) {\n-        if (StringUtils.isNotEmpty(prefix) && !prefix.endsWith(\".\")) {\n-            this.prefix = prefix + \".\";\n-        } else {\n-            this.prefix = prefix;\n-        }\n-        this.id = id;\n-    }\n-\n-    public CompositeConfiguration(Configuration... configurations) {\n-        this();\n-        if (configurations != null && configurations.length > 0) {\n-            Arrays.stream(configurations).filter(config -> !configList.contains(config)).forEach(configList::add);\n-        }\n-    }\n-\n-    public void setDynamicIncluded(boolean dynamicIncluded) {\n-        this.dynamicIncluded = dynamicIncluded;\n-    }\n-\n-    //FIXME, consider change configList to SortedMap to replace this boolean status.\n-    public boolean isDynamicIncluded() {\n-        return dynamicIncluded;\n-    }\n-\n-    public void addConfiguration(Configuration configuration) {\n-        if (configList.contains(configuration)) {\n-            return;\n-        }\n-        this.configList.add(configuration);\n-    }\n-\n-    public void addConfigurationFirst(Configuration configuration) {\n-        this.addConfiguration(0, configuration);\n-    }\n-\n-    public void addConfiguration(int pos, Configuration configuration) {\n-        this.configList.add(pos, configuration);\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        Configuration firstMatchingConfiguration = null;\n-        for (Configuration config : configList) {\n-            try {\n-                if (config.containsKey(key)) {\n-                    firstMatchingConfiguration = config;\n-                    break;\n-                }\n-            } catch (Exception e) {\n-                logger.error(\"Error when trying to get value for key \" + key + \" from \" + config + \", will continue to try the next one.\");\n-            }\n-        }\n-        if (firstMatchingConfiguration != null) {\n-            return firstMatchingConfiguration.getProperty(key);\n-        } else {\n-            return null;\n-        }\n-    }\n-\n-    @Override\n-    public boolean containsKey(String key) {\n-        return configList.stream().anyMatch(c -> c.containsKey(key));\n-    }\n-\n-    @Override\n-    public Object getProperty(String key, Object defaultValue) {\n-        Object value = null;\n-        if (StringUtils.isNotEmpty(prefix)) {\n-            if (StringUtils.isNotEmpty(id)) {\n-                value = getInternalProperty(prefix + id + \".\" + key);\n-            }\n-            if (value == null) {\n-                value = getInternalProperty(prefix + key);\n-            }\n-        } else {\n-            value = getInternalProperty(key);\n-        }\n-        return value != null ? value : defaultValue;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * This is an abstraction specially customized for the sequence Dubbo retrieves properties.\r\n+ */\r\n+public class CompositeConfiguration implements Configuration {\r\n+    private Logger logger = LoggerFactory.getLogger(CompositeConfiguration.class);\r\n+\r\n+    private String id;\r\n+    private String prefix;\r\n+\r\n+    /**\r\n+     * List holding all the configuration\r\n+     */\r\n+    private List<Configuration> configList = new LinkedList<Configuration>();\r\n+\r\n+    //FIXME, consider change configList to SortedMap to replace this boolean status.\r\n+    private boolean dynamicIncluded;\r\n+\r\n+    public CompositeConfiguration() {\r\n+        this(null, null);\r\n+    }\r\n+\r\n+    public CompositeConfiguration(String prefix, String id) {\r\n+        if (StringUtils.isNotEmpty(prefix) && !prefix.endsWith(\".\")) {\r\n+            this.prefix = prefix + \".\";\r\n+        } else {\r\n+            this.prefix = prefix;\r\n+        }\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public CompositeConfiguration(Configuration... configurations) {\r\n+        this();\r\n+        if (configurations != null && configurations.length > 0) {\r\n+            Arrays.stream(configurations).filter(config -> !configList.contains(config)).forEach(configList::add);\r\n+        }\r\n+    }\r\n+\r\n+    public void setDynamicIncluded(boolean dynamicIncluded) {\r\n+        this.dynamicIncluded = dynamicIncluded;\r\n+    }\r\n+\r\n+    //FIXME, consider change configList to SortedMap to replace this boolean status.\r\n+    public boolean isDynamicIncluded() {\r\n+        return dynamicIncluded;\r\n+    }\r\n+\r\n+    public void addConfiguration(Configuration configuration) {\r\n+        if (configList.contains(configuration)) {\r\n+            return;\r\n+        }\r\n+        this.configList.add(configuration);\r\n+    }\r\n+\r\n+    public void addConfigurationFirst(Configuration configuration) {\r\n+        this.addConfiguration(0, configuration);\r\n+    }\r\n+\r\n+    public void addConfiguration(int pos, Configuration configuration) {\r\n+        this.configList.add(pos, configuration);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        Configuration firstMatchingConfiguration = null;\r\n+        for (Configuration config : configList) {\r\n+            try {\r\n+                if (config.containsKey(key)) {\r\n+                    firstMatchingConfiguration = config;\r\n+                    break;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                logger.error(\"Error when trying to get value for key \" + key + \" from \" + config + \", will continue to try the next one.\");\r\n+            }\r\n+        }\r\n+        if (firstMatchingConfiguration != null) {\r\n+            return firstMatchingConfiguration.getProperty(key);\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean containsKey(String key) {\r\n+        return configList.stream().anyMatch(c -> c.containsKey(key));\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getProperty(String key, Object defaultValue) {\r\n+        Object value = null;\r\n+        if (StringUtils.isNotEmpty(prefix)) {\r\n+            if (StringUtils.isNotEmpty(id)) {\r\n+                value = getInternalProperty(prefix + id + \".\" + key);\r\n+            }\r\n+            if (value == null) {\r\n+                value = getInternalProperty(prefix + key);\r\n+            }\r\n+        } else {\r\n+            value = getInternalProperty(key);\r\n+        }\r\n+        return value != null ? value : defaultValue;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/config/Configuration.java", "source2": "org/apache/dubbo/common/config/Configuration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,179 +1,179 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import java.util.NoSuchElementException;\n-\n-/**\n- * Configuration interface, to fetch the value for the specified key.\n- */\n-public interface Configuration {\n-    /**\n-     * Get a string associated with the given configuration key.\n-     *\n-     * @param key The configuration key.\n-     * @return The associated string.\n-     */\n-    default String getString(String key) {\n-        return convert(String.class, key, null);\n-    }\n-\n-    /**\n-     * Get a string associated with the given configuration key.\n-     * If the key doesn't map to an existing object, the default value\n-     * is returned.\n-     *\n-     * @param key          The configuration key.\n-     * @param defaultValue The default value.\n-     * @return The associated string if key is found and has valid\n-     * format, default value otherwise.\n-     */\n-    default String getString(String key, String defaultValue) {\n-        return convert(String.class, key, defaultValue);\n-    }\n-\n-    default int getInt(String key) {\n-        Integer i = this.getInteger(key, (Integer) null);\n-        if (i != null) {\n-            return i;\n-        } else {\n-            throw new NoSuchElementException('\\'' + key + \"' doesn't map to an existing object\");\n-        }\n-    }\n-\n-    default int getInt(String key, int defaultValue) {\n-        Integer i = this.getInteger(key, (Integer) null);\n-        return i == null ? defaultValue : i;\n-    }\n-\n-    default Integer getInteger(String key, Integer defaultValue) {\n-        try {\n-            return convert(Integer.class, key, defaultValue);\n-        } catch (NumberFormatException e) {\n-            throw new IllegalStateException('\\'' + key + \"' doesn't map to a Integer object\", e);\n-        }\n-    }\n-\n-    default boolean getBoolean(String key) {\n-        Boolean b = this.getBoolean(key, null);\n-        if (b != null) {\n-            return b;\n-        } else {\n-            throw new NoSuchElementException('\\'' + key + \"' doesn't map to an existing object\");\n-        }\n-    }\n-\n-    default boolean getBoolean(String key, boolean defaultValue) {\n-        return this.getBoolean(key, toBooleanObject(defaultValue));\n-    }\n-\n-    default Boolean getBoolean(String key, Boolean defaultValue) {\n-        try {\n-            return convert(Boolean.class, key, defaultValue);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(\"Try to get \" + '\\'' + key + \"' failed, maybe because this key doesn't map to a Boolean object\", e);\n-        }\n-    }\n-\n-    /**\n-     * Gets a property from the configuration. This is the most basic get\n-     * method for retrieving values of properties. In a typical implementation\n-     * of the {@code Configuration} interface the other get methods (that\n-     * return specific data types) will internally make use of this method. On\n-     * this level variable substitution is not yet performed. The returned\n-     * object is an internal representation of the property value for the passed\n-     * in key. It is owned by the {@code Configuration} object. So a caller\n-     * should not modify this object. It cannot be guaranteed that this object\n-     * will stay constant over time (i.e. further update operations on the\n-     * configuration may change its internal state).\n-     *\n-     * @param key property to retrieve\n-     * @return the value to which this configuration maps the specified key, or\n-     * null if the configuration contains no mapping for this key.\n-     */\n-    default Object getProperty(String key) {\n-        return getProperty(key, null);\n-    }\n-\n-    /**\n-     * Gets a property from the configuration. The default value will return if the configuration doesn't contain\n-     * the mapping for the specified key.\n-     *\n-     * @param key property to retrieve\n-     * @param defaultValue default value\n-     * @return the value to which this configuration maps the specified key, or default value if the configuration\n-     * contains no mapping for this key.\n-     */\n-    default Object getProperty(String key, Object defaultValue) {\n-        Object value = getInternalProperty(key);\n-        return value != null ? value : defaultValue;\n-    }\n-\n-    Object getInternalProperty(String key);\n-\n-    /**\n-     * Check if the configuration contains the specified key.\n-     *\n-     * @param key the key whose presence in this configuration is to be tested\n-     * @return {@code true} if the configuration contains a value for this\n-     * key, {@code false} otherwise\n-     */\n-    default boolean containsKey(String key) {\n-        return getProperty(key) != null;\n-    }\n-\n-\n-    default <T> T convert(Class<T> cls, String key, T defaultValue) {\n-        // we only process String properties for now\n-        String value = (String) getProperty(key);\n-\n-        if (value == null) {\n-            return defaultValue;\n-        }\n-\n-        Object obj = value;\n-        if (cls.isInstance(value)) {\n-            return cls.cast(value);\n-        }\n-\n-        if (Boolean.class.equals(cls) || Boolean.TYPE.equals(cls)) {\n-            obj = Boolean.valueOf(value);\n-        } else if (Number.class.isAssignableFrom(cls) || cls.isPrimitive()) {\n-            if (Integer.class.equals(cls) || Integer.TYPE.equals(cls)) {\n-                obj = Integer.valueOf(value);\n-            } else if (Long.class.equals(cls) || Long.TYPE.equals(cls)) {\n-                obj = Long.valueOf(value);\n-            } else if (Byte.class.equals(cls) || Byte.TYPE.equals(cls)) {\n-                obj = Byte.valueOf(value);\n-            } else if (Short.class.equals(cls) || Short.TYPE.equals(cls)) {\n-                obj = Short.valueOf(value);\n-            } else if (Float.class.equals(cls) || Float.TYPE.equals(cls)) {\n-                obj = Float.valueOf(value);\n-            } else if (Double.class.equals(cls) || Double.TYPE.equals(cls)) {\n-                obj = Double.valueOf(value);\n-            }\n-        } else if (cls.isEnum()) {\n-            obj = Enum.valueOf(cls.asSubclass(Enum.class), value);\n-        }\n-\n-        return cls.cast(obj);\n-    }\n-\n-    static Boolean toBooleanObject(boolean bool) {\n-        return bool ? Boolean.TRUE : Boolean.FALSE;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import java.util.NoSuchElementException;\r\n+\r\n+/**\r\n+ * Configuration interface, to fetch the value for the specified key.\r\n+ */\r\n+public interface Configuration {\r\n+    /**\r\n+     * Get a string associated with the given configuration key.\r\n+     *\r\n+     * @param key The configuration key.\r\n+     * @return The associated string.\r\n+     */\r\n+    default String getString(String key) {\r\n+        return convert(String.class, key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get a string associated with the given configuration key.\r\n+     * If the key doesn't map to an existing object, the default value\r\n+     * is returned.\r\n+     *\r\n+     * @param key          The configuration key.\r\n+     * @param defaultValue The default value.\r\n+     * @return The associated string if key is found and has valid\r\n+     * format, default value otherwise.\r\n+     */\r\n+    default String getString(String key, String defaultValue) {\r\n+        return convert(String.class, key, defaultValue);\r\n+    }\r\n+\r\n+    default int getInt(String key) {\r\n+        Integer i = this.getInteger(key, (Integer) null);\r\n+        if (i != null) {\r\n+            return i;\r\n+        } else {\r\n+            throw new NoSuchElementException('\\'' + key + \"' doesn't map to an existing object\");\r\n+        }\r\n+    }\r\n+\r\n+    default int getInt(String key, int defaultValue) {\r\n+        Integer i = this.getInteger(key, (Integer) null);\r\n+        return i == null ? defaultValue : i;\r\n+    }\r\n+\r\n+    default Integer getInteger(String key, Integer defaultValue) {\r\n+        try {\r\n+            return convert(Integer.class, key, defaultValue);\r\n+        } catch (NumberFormatException e) {\r\n+            throw new IllegalStateException('\\'' + key + \"' doesn't map to a Integer object\", e);\r\n+        }\r\n+    }\r\n+\r\n+    default boolean getBoolean(String key) {\r\n+        Boolean b = this.getBoolean(key, null);\r\n+        if (b != null) {\r\n+            return b;\r\n+        } else {\r\n+            throw new NoSuchElementException('\\'' + key + \"' doesn't map to an existing object\");\r\n+        }\r\n+    }\r\n+\r\n+    default boolean getBoolean(String key, boolean defaultValue) {\r\n+        return this.getBoolean(key, toBooleanObject(defaultValue));\r\n+    }\r\n+\r\n+    default Boolean getBoolean(String key, Boolean defaultValue) {\r\n+        try {\r\n+            return convert(Boolean.class, key, defaultValue);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(\"Try to get \" + '\\'' + key + \"' failed, maybe because this key doesn't map to a Boolean object\", e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets a property from the configuration. This is the most basic get\r\n+     * method for retrieving values of properties. In a typical implementation\r\n+     * of the {@code Configuration} interface the other get methods (that\r\n+     * return specific data types) will internally make use of this method. On\r\n+     * this level variable substitution is not yet performed. The returned\r\n+     * object is an internal representation of the property value for the passed\r\n+     * in key. It is owned by the {@code Configuration} object. So a caller\r\n+     * should not modify this object. It cannot be guaranteed that this object\r\n+     * will stay constant over time (i.e. further update operations on the\r\n+     * configuration may change its internal state).\r\n+     *\r\n+     * @param key property to retrieve\r\n+     * @return the value to which this configuration maps the specified key, or\r\n+     * null if the configuration contains no mapping for this key.\r\n+     */\r\n+    default Object getProperty(String key) {\r\n+        return getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets a property from the configuration. The default value will return if the configuration doesn't contain\r\n+     * the mapping for the specified key.\r\n+     *\r\n+     * @param key property to retrieve\r\n+     * @param defaultValue default value\r\n+     * @return the value to which this configuration maps the specified key, or default value if the configuration\r\n+     * contains no mapping for this key.\r\n+     */\r\n+    default Object getProperty(String key, Object defaultValue) {\r\n+        Object value = getInternalProperty(key);\r\n+        return value != null ? value : defaultValue;\r\n+    }\r\n+\r\n+    Object getInternalProperty(String key);\r\n+\r\n+    /**\r\n+     * Check if the configuration contains the specified key.\r\n+     *\r\n+     * @param key the key whose presence in this configuration is to be tested\r\n+     * @return {@code true} if the configuration contains a value for this\r\n+     * key, {@code false} otherwise\r\n+     */\r\n+    default boolean containsKey(String key) {\r\n+        return getProperty(key) != null;\r\n+    }\r\n+\r\n+\r\n+    default <T> T convert(Class<T> cls, String key, T defaultValue) {\r\n+        // we only process String properties for now\r\n+        String value = (String) getProperty(key);\r\n+\r\n+        if (value == null) {\r\n+            return defaultValue;\r\n+        }\r\n+\r\n+        Object obj = value;\r\n+        if (cls.isInstance(value)) {\r\n+            return cls.cast(value);\r\n+        }\r\n+\r\n+        if (Boolean.class.equals(cls) || Boolean.TYPE.equals(cls)) {\r\n+            obj = Boolean.valueOf(value);\r\n+        } else if (Number.class.isAssignableFrom(cls) || cls.isPrimitive()) {\r\n+            if (Integer.class.equals(cls) || Integer.TYPE.equals(cls)) {\r\n+                obj = Integer.valueOf(value);\r\n+            } else if (Long.class.equals(cls) || Long.TYPE.equals(cls)) {\r\n+                obj = Long.valueOf(value);\r\n+            } else if (Byte.class.equals(cls) || Byte.TYPE.equals(cls)) {\r\n+                obj = Byte.valueOf(value);\r\n+            } else if (Short.class.equals(cls) || Short.TYPE.equals(cls)) {\r\n+                obj = Short.valueOf(value);\r\n+            } else if (Float.class.equals(cls) || Float.TYPE.equals(cls)) {\r\n+                obj = Float.valueOf(value);\r\n+            } else if (Double.class.equals(cls) || Double.TYPE.equals(cls)) {\r\n+                obj = Double.valueOf(value);\r\n+            }\r\n+        } else if (cls.isEnum()) {\r\n+            obj = Enum.valueOf(cls.asSubclass(Enum.class), value);\r\n+        }\r\n+\r\n+        return cls.cast(obj);\r\n+    }\r\n+\r\n+    static Boolean toBooleanObject(boolean bool) {\r\n+        return bool ? Boolean.TRUE : Boolean.FALSE;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/ConfigurationUtils.java", "source2": "org/apache/dubbo/common/config/ConfigurationUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,133 +1,133 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.io.IOException;\n-import java.io.StringReader;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Properties;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_SERVER_SHUTDOWN_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;\n-\n-/**\n- * Utilities for manipulating configurations from different sources\n- */\n-public class ConfigurationUtils {\n-    private static final Logger logger = LoggerFactory.getLogger(ConfigurationUtils.class);\n-\n-    /**\n-     * Used to get properties from the jvm\n-     *\n-     * @return\n-     */\n-    public static Configuration getSystemConfiguration() {\n-        return ApplicationModel.getEnvironment().getSystemConfiguration();\n-    }\n-\n-    /**\n-     * Used to get properties from the os environment\n-     *\n-     * @return\n-     */\n-    public static Configuration getEnvConfiguration() {\n-        return ApplicationModel.getEnvironment().getEnvironmentConfiguration();\n-    }\n-\n-    /**\n-     * Used to get an composite property value.\n-     * <p>\n-     * Also see {@link Environment#getConfiguration()}\n-     *\n-     * @return\n-     */\n-    public static Configuration getGlobalConfiguration() {\n-        return ApplicationModel.getEnvironment().getConfiguration();\n-    }\n-\n-    public static Configuration getDynamicGlobalConfiguration() {\n-        return ApplicationModel.getEnvironment().getDynamicGlobalConfiguration();\n-    }\n-\n-    // FIXME\n-    @SuppressWarnings(\"deprecation\")\n-    public static int getServerShutdownTimeout() {\n-        int timeout = DEFAULT_SERVER_SHUTDOWN_TIMEOUT;\n-        Configuration configuration = getGlobalConfiguration();\n-        String value = StringUtils.trim(configuration.getString(SHUTDOWN_WAIT_KEY));\n-\n-        if (value != null && value.length() > 0) {\n-            try {\n-                timeout = Integer.parseInt(value);\n-            } catch (Exception e) {\n-                // ignore\n-            }\n-        } else {\n-            value = StringUtils.trim(configuration.getString(SHUTDOWN_WAIT_SECONDS_KEY));\n-            if (value != null && value.length() > 0) {\n-                try {\n-                    timeout = Integer.parseInt(value) * 1000;\n-                } catch (Exception e) {\n-                    // ignore\n-                }\n-            }\n-        }\n-        return timeout;\n-    }\n-\n-    public static String getDynamicProperty(String property) {\n-        return getDynamicProperty(property, null);\n-    }\n-\n-    public static String getDynamicProperty(String property, String defaultValue) {\n-        return StringUtils.trim(getDynamicGlobalConfiguration().getString(property, defaultValue));\n-    }\n-\n-    public static String getProperty(String property) {\n-        return getProperty(property, null);\n-    }\n-\n-    public static String getProperty(String property, String defaultValue) {\n-        return StringUtils.trim(getGlobalConfiguration().getString(property, defaultValue));\n-    }\n-\n-    public static int get(String property, int defaultValue) {\n-        return getGlobalConfiguration().getInt(property, defaultValue);\n-    }\n-\n-    public static Map<String, String> parseProperties(String content) throws IOException {\n-        Map<String, String> map = new HashMap<>();\n-        if (StringUtils.isEmpty(content)) {\n-            logger.warn(\"You specified the config center, but there's not even one single config item in it.\");\n-        } else {\n-            Properties properties = new Properties();\n-            properties.load(new StringReader(content));\n-            properties.stringPropertyNames().forEach(\n-                    k -> map.put(k, properties.getProperty(k))\n-            );\n-        }\n-        return map;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.StringReader;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Properties;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_SERVER_SHUTDOWN_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;\r\n+\r\n+/**\r\n+ * Utilities for manipulating configurations from different sources\r\n+ */\r\n+public class ConfigurationUtils {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConfigurationUtils.class);\r\n+\r\n+    /**\r\n+     * Used to get properties from the jvm\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public static Configuration getSystemConfiguration() {\r\n+        return ApplicationModel.getEnvironment().getSystemConfiguration();\r\n+    }\r\n+\r\n+    /**\r\n+     * Used to get properties from the os environment\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public static Configuration getEnvConfiguration() {\r\n+        return ApplicationModel.getEnvironment().getEnvironmentConfiguration();\r\n+    }\r\n+\r\n+    /**\r\n+     * Used to get an composite property value.\r\n+     * <p>\r\n+     * Also see {@link Environment#getConfiguration()}\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public static Configuration getGlobalConfiguration() {\r\n+        return ApplicationModel.getEnvironment().getConfiguration();\r\n+    }\r\n+\r\n+    public static Configuration getDynamicGlobalConfiguration() {\r\n+        return ApplicationModel.getEnvironment().getDynamicGlobalConfiguration();\r\n+    }\r\n+\r\n+    // FIXME\r\n+    @SuppressWarnings(\"deprecation\")\r\n+    public static int getServerShutdownTimeout() {\r\n+        int timeout = DEFAULT_SERVER_SHUTDOWN_TIMEOUT;\r\n+        Configuration configuration = getGlobalConfiguration();\r\n+        String value = StringUtils.trim(configuration.getString(SHUTDOWN_WAIT_KEY));\r\n+\r\n+        if (value != null && value.length() > 0) {\r\n+            try {\r\n+                timeout = Integer.parseInt(value);\r\n+            } catch (Exception e) {\r\n+                // ignore\r\n+            }\r\n+        } else {\r\n+            value = StringUtils.trim(configuration.getString(SHUTDOWN_WAIT_SECONDS_KEY));\r\n+            if (value != null && value.length() > 0) {\r\n+                try {\r\n+                    timeout = Integer.parseInt(value) * 1000;\r\n+                } catch (Exception e) {\r\n+                    // ignore\r\n+                }\r\n+            }\r\n+        }\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public static String getDynamicProperty(String property) {\r\n+        return getDynamicProperty(property, null);\r\n+    }\r\n+\r\n+    public static String getDynamicProperty(String property, String defaultValue) {\r\n+        return StringUtils.trim(getDynamicGlobalConfiguration().getString(property, defaultValue));\r\n+    }\r\n+\r\n+    public static String getProperty(String property) {\r\n+        return getProperty(property, null);\r\n+    }\r\n+\r\n+    public static String getProperty(String property, String defaultValue) {\r\n+        return StringUtils.trim(getGlobalConfiguration().getString(property, defaultValue));\r\n+    }\r\n+\r\n+    public static int get(String property, int defaultValue) {\r\n+        return getGlobalConfiguration().getInt(property, defaultValue);\r\n+    }\r\n+\r\n+    public static Map<String, String> parseProperties(String content) throws IOException {\r\n+        Map<String, String> map = new HashMap<>();\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            logger.warn(\"You specified the config center, but there's not even one single config item in it.\");\r\n+        } else {\r\n+            Properties properties = new Properties();\r\n+            properties.load(new StringReader(content));\r\n+            properties.stringPropertyNames().forEach(\r\n+                    k -> map.put(k, properties.getProperty(k))\r\n+            );\r\n+        }\r\n+        return map;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/Environment.java", "source2": "org/apache/dubbo/common/config/Environment.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,233 +1,233 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.context.FrameworkExt;\n-import org.apache.dubbo.common.context.LifecycleAdapter;\n-import org.apache.dubbo.common.extension.DisableInject;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.context.ConfigConfigurationAdapter;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Optional;\n-\n-public class Environment extends LifecycleAdapter implements FrameworkExt {\n-    private static final Logger logger = LoggerFactory.getLogger(Environment.class);\n-    public static final String NAME = \"environment\";\n-\n-    private final PropertiesConfiguration propertiesConfiguration;\n-    private final SystemConfiguration systemConfiguration;\n-    private final EnvironmentConfiguration environmentConfiguration;\n-    private final InmemoryConfiguration externalConfiguration;\n-    private final InmemoryConfiguration appExternalConfiguration;\n-\n-    private CompositeConfiguration globalConfiguration;\n-    private CompositeConfiguration dynamicGlobalConfiguration;\n-\n-\n-    private Map<String, String> externalConfigurationMap = new HashMap<>();\n-    private Map<String, String> appExternalConfigurationMap = new HashMap<>();\n-\n-    private boolean configCenterFirst = true;\n-\n-    private DynamicConfiguration dynamicConfiguration;\n-\n-    public Environment() {\n-        this.propertiesConfiguration = new PropertiesConfiguration();\n-        this.systemConfiguration = new SystemConfiguration();\n-        this.environmentConfiguration = new EnvironmentConfiguration();\n-        this.externalConfiguration = new InmemoryConfiguration();\n-        this.appExternalConfiguration = new InmemoryConfiguration();\n-    }\n-\n-    @Override\n-    public void initialize() throws IllegalStateException {\n-        ConfigManager configManager = ApplicationModel.getConfigManager();\n-        Optional<Collection<ConfigCenterConfig>> defaultConfigs = configManager.getDefaultConfigCenter();\n-        defaultConfigs.ifPresent(configs -> {\n-            for (ConfigCenterConfig config : configs) {\n-                this.setExternalConfigMap(config.getExternalConfiguration());\n-                this.setAppExternalConfigMap(config.getAppExternalConfiguration());\n-            }\n-        });\n-\n-        this.externalConfiguration.setProperties(externalConfigurationMap);\n-        this.appExternalConfiguration.setProperties(appExternalConfigurationMap);\n-    }\n-\n-    @DisableInject\n-    public void setExternalConfigMap(Map<String, String> externalConfiguration) {\n-        if (externalConfiguration != null) {\n-            this.externalConfigurationMap = externalConfiguration;\n-        }\n-    }\n-\n-    @DisableInject\n-    public void setAppExternalConfigMap(Map<String, String> appExternalConfiguration) {\n-        if (appExternalConfiguration != null) {\n-            this.appExternalConfigurationMap = appExternalConfiguration;\n-        }\n-    }\n-\n-    public Map<String, String> getExternalConfigurationMap() {\n-        return externalConfigurationMap;\n-    }\n-\n-    public Map<String, String> getAppExternalConfigurationMap() {\n-        return appExternalConfigurationMap;\n-    }\n-\n-    public void updateExternalConfigurationMap(Map<String, String> externalMap) {\n-        this.externalConfigurationMap.putAll(externalMap);\n-    }\n-\n-    public void updateAppExternalConfigurationMap(Map<String, String> externalMap) {\n-        this.appExternalConfigurationMap.putAll(externalMap);\n-    }\n-\n-    /**\n-     * At start-up, Dubbo is driven by various configuration, such as Application, Registry, Protocol, etc.\n-     * All configurations will be converged into a data bus - URL, and then drive the subsequent process.\n-     * <p>\n-     * At present, there are many configuration sources, including AbstractConfig (API, XML, annotation), - D, config center, etc.\n-     * This method helps us to filter out the most priority values from various configuration sources.\n-     *\n-     * @param config\n-     * @return\n-     */\n-    public synchronized CompositeConfiguration getPrefixedConfiguration(AbstractConfig config) {\n-        CompositeConfiguration prefixedConfiguration = new CompositeConfiguration(config.getPrefix(), config.getId());\n-        Configuration configuration = new ConfigConfigurationAdapter(config);\n-        if (this.isConfigCenterFirst()) {\n-            // The sequence would be: SystemConfiguration -> AppExternalConfiguration -> ExternalConfiguration -> AbstractConfig -> PropertiesConfiguration\n-            // Config center has the highest priority\n-            prefixedConfiguration.addConfiguration(systemConfiguration);\n-            prefixedConfiguration.addConfiguration(environmentConfiguration);\n-            prefixedConfiguration.addConfiguration(appExternalConfiguration);\n-            prefixedConfiguration.addConfiguration(externalConfiguration);\n-            prefixedConfiguration.addConfiguration(configuration);\n-            prefixedConfiguration.addConfiguration(propertiesConfiguration);\n-        } else {\n-            // The sequence would be: SystemConfiguration -> AbstractConfig -> AppExternalConfiguration -> ExternalConfiguration -> PropertiesConfiguration\n-            // Config center has the highest priority\n-            prefixedConfiguration.addConfiguration(systemConfiguration);\n-            prefixedConfiguration.addConfiguration(environmentConfiguration);\n-            prefixedConfiguration.addConfiguration(configuration);\n-            prefixedConfiguration.addConfiguration(appExternalConfiguration);\n-            prefixedConfiguration.addConfiguration(externalConfiguration);\n-            prefixedConfiguration.addConfiguration(propertiesConfiguration);\n-        }\n-        return prefixedConfiguration;\n-    }\n-\n-    /**\n-     * There are two ways to get configuration during exposure / reference or at runtime:\n-     * 1. URL, The value in the URL is relatively fixed. we can get value directly.\n-     * 2. The configuration exposed in this method is convenient for us to query the latest values from multiple\n-     * prioritized sources, it also guarantees that configs changed dynamically can take effect on the fly.\n-     */\n-    public Configuration getConfiguration() {\n-        if (globalConfiguration == null) {\n-            globalConfiguration = new CompositeConfiguration();\n-            globalConfiguration.addConfiguration(systemConfiguration);\n-            globalConfiguration.addConfiguration(environmentConfiguration);\n-            globalConfiguration.addConfiguration(appExternalConfiguration);\n-            globalConfiguration.addConfiguration(externalConfiguration);\n-            globalConfiguration.addConfiguration(propertiesConfiguration);\n-        }\n-        return globalConfiguration;\n-    }\n-\n-    public Configuration getDynamicGlobalConfiguration() {\n-        if (dynamicGlobalConfiguration == null) {\n-            if (dynamicConfiguration == null) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"dynamicConfiguration is null , return globalConfiguration.\");\n-                }\n-                return globalConfiguration;\n-            }\n-            dynamicGlobalConfiguration = new CompositeConfiguration();\n-            dynamicGlobalConfiguration.addConfiguration(dynamicConfiguration);\n-            dynamicGlobalConfiguration.addConfiguration(getConfiguration());\n-        }\n-        return dynamicGlobalConfiguration;\n-    }\n-\n-    public boolean isConfigCenterFirst() {\n-        return configCenterFirst;\n-    }\n-\n-    @DisableInject\n-    public void setConfigCenterFirst(boolean configCenterFirst) {\n-        this.configCenterFirst = configCenterFirst;\n-    }\n-\n-    public Optional<DynamicConfiguration> getDynamicConfiguration() {\n-        return Optional.ofNullable(dynamicConfiguration);\n-    }\n-\n-    @DisableInject\n-    public void setDynamicConfiguration(DynamicConfiguration dynamicConfiguration) {\n-        this.dynamicConfiguration = dynamicConfiguration;\n-    }\n-\n-    @Override\n-    public void destroy() throws IllegalStateException {\n-        clearExternalConfigs();\n-        clearAppExternalConfigs();\n-    }\n-\n-    public PropertiesConfiguration getPropertiesConfiguration() {\n-        return propertiesConfiguration;\n-    }\n-\n-    public SystemConfiguration getSystemConfiguration() {\n-        return systemConfiguration;\n-    }\n-\n-    public EnvironmentConfiguration getEnvironmentConfiguration() {\n-        return environmentConfiguration;\n-    }\n-\n-    public InmemoryConfiguration getExternalConfiguration() {\n-        return externalConfiguration;\n-    }\n-\n-    public InmemoryConfiguration getAppExternalConfiguration() {\n-        return appExternalConfiguration;\n-    }\n-\n-    // For test\n-    public void clearExternalConfigs() {\n-        this.externalConfiguration.clear();\n-        this.externalConfigurationMap.clear();\n-    }\n-\n-    // For test\n-    public void clearAppExternalConfigs() {\n-        this.appExternalConfiguration.clear();\n-        this.appExternalConfigurationMap.clear();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.context.FrameworkExt;\r\n+import org.apache.dubbo.common.context.LifecycleAdapter;\r\n+import org.apache.dubbo.common.extension.DisableInject;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.context.ConfigConfigurationAdapter;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+\r\n+public class Environment extends LifecycleAdapter implements FrameworkExt {\r\n+    private static final Logger logger = LoggerFactory.getLogger(Environment.class);\r\n+    public static final String NAME = \"environment\";\r\n+\r\n+    private final PropertiesConfiguration propertiesConfiguration;\r\n+    private final SystemConfiguration systemConfiguration;\r\n+    private final EnvironmentConfiguration environmentConfiguration;\r\n+    private final InmemoryConfiguration externalConfiguration;\r\n+    private final InmemoryConfiguration appExternalConfiguration;\r\n+\r\n+    private CompositeConfiguration globalConfiguration;\r\n+    private CompositeConfiguration dynamicGlobalConfiguration;\r\n+\r\n+\r\n+    private Map<String, String> externalConfigurationMap = new HashMap<>();\r\n+    private Map<String, String> appExternalConfigurationMap = new HashMap<>();\r\n+\r\n+    private boolean configCenterFirst = true;\r\n+\r\n+    private DynamicConfiguration dynamicConfiguration;\r\n+\r\n+    public Environment() {\r\n+        this.propertiesConfiguration = new PropertiesConfiguration();\r\n+        this.systemConfiguration = new SystemConfiguration();\r\n+        this.environmentConfiguration = new EnvironmentConfiguration();\r\n+        this.externalConfiguration = new InmemoryConfiguration();\r\n+        this.appExternalConfiguration = new InmemoryConfiguration();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void initialize() throws IllegalStateException {\r\n+        ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+        Optional<Collection<ConfigCenterConfig>> defaultConfigs = configManager.getDefaultConfigCenter();\r\n+        defaultConfigs.ifPresent(configs -> {\r\n+            for (ConfigCenterConfig config : configs) {\r\n+                this.setExternalConfigMap(config.getExternalConfiguration());\r\n+                this.setAppExternalConfigMap(config.getAppExternalConfiguration());\r\n+            }\r\n+        });\r\n+\r\n+        this.externalConfiguration.setProperties(externalConfigurationMap);\r\n+        this.appExternalConfiguration.setProperties(appExternalConfigurationMap);\r\n+    }\r\n+\r\n+    @DisableInject\r\n+    public void setExternalConfigMap(Map<String, String> externalConfiguration) {\r\n+        if (externalConfiguration != null) {\r\n+            this.externalConfigurationMap = externalConfiguration;\r\n+        }\r\n+    }\r\n+\r\n+    @DisableInject\r\n+    public void setAppExternalConfigMap(Map<String, String> appExternalConfiguration) {\r\n+        if (appExternalConfiguration != null) {\r\n+            this.appExternalConfigurationMap = appExternalConfiguration;\r\n+        }\r\n+    }\r\n+\r\n+    public Map<String, String> getExternalConfigurationMap() {\r\n+        return externalConfigurationMap;\r\n+    }\r\n+\r\n+    public Map<String, String> getAppExternalConfigurationMap() {\r\n+        return appExternalConfigurationMap;\r\n+    }\r\n+\r\n+    public void updateExternalConfigurationMap(Map<String, String> externalMap) {\r\n+        this.externalConfigurationMap.putAll(externalMap);\r\n+    }\r\n+\r\n+    public void updateAppExternalConfigurationMap(Map<String, String> externalMap) {\r\n+        this.appExternalConfigurationMap.putAll(externalMap);\r\n+    }\r\n+\r\n+    /**\r\n+     * At start-up, Dubbo is driven by various configuration, such as Application, Registry, Protocol, etc.\r\n+     * All configurations will be converged into a data bus - URL, and then drive the subsequent process.\r\n+     * <p>\r\n+     * At present, there are many configuration sources, including AbstractConfig (API, XML, annotation), - D, config center, etc.\r\n+     * This method helps us to filter out the most priority values from various configuration sources.\r\n+     *\r\n+     * @param config\r\n+     * @return\r\n+     */\r\n+    public synchronized CompositeConfiguration getPrefixedConfiguration(AbstractConfig config) {\r\n+        CompositeConfiguration prefixedConfiguration = new CompositeConfiguration(config.getPrefix(), config.getId());\r\n+        Configuration configuration = new ConfigConfigurationAdapter(config);\r\n+        if (this.isConfigCenterFirst()) {\r\n+            // The sequence would be: SystemConfiguration -> AppExternalConfiguration -> ExternalConfiguration -> AbstractConfig -> PropertiesConfiguration\r\n+            // Config center has the highest priority\r\n+            prefixedConfiguration.addConfiguration(systemConfiguration);\r\n+            prefixedConfiguration.addConfiguration(environmentConfiguration);\r\n+            prefixedConfiguration.addConfiguration(appExternalConfiguration);\r\n+            prefixedConfiguration.addConfiguration(externalConfiguration);\r\n+            prefixedConfiguration.addConfiguration(configuration);\r\n+            prefixedConfiguration.addConfiguration(propertiesConfiguration);\r\n+        } else {\r\n+            // The sequence would be: SystemConfiguration -> AbstractConfig -> AppExternalConfiguration -> ExternalConfiguration -> PropertiesConfiguration\r\n+            // Config center has the highest priority\r\n+            prefixedConfiguration.addConfiguration(systemConfiguration);\r\n+            prefixedConfiguration.addConfiguration(environmentConfiguration);\r\n+            prefixedConfiguration.addConfiguration(configuration);\r\n+            prefixedConfiguration.addConfiguration(appExternalConfiguration);\r\n+            prefixedConfiguration.addConfiguration(externalConfiguration);\r\n+            prefixedConfiguration.addConfiguration(propertiesConfiguration);\r\n+        }\r\n+        return prefixedConfiguration;\r\n+    }\r\n+\r\n+    /**\r\n+     * There are two ways to get configuration during exposure / reference or at runtime:\r\n+     * 1. URL, The value in the URL is relatively fixed. we can get value directly.\r\n+     * 2. The configuration exposed in this method is convenient for us to query the latest values from multiple\r\n+     * prioritized sources, it also guarantees that configs changed dynamically can take effect on the fly.\r\n+     */\r\n+    public Configuration getConfiguration() {\r\n+        if (globalConfiguration == null) {\r\n+            globalConfiguration = new CompositeConfiguration();\r\n+            globalConfiguration.addConfiguration(systemConfiguration);\r\n+            globalConfiguration.addConfiguration(environmentConfiguration);\r\n+            globalConfiguration.addConfiguration(appExternalConfiguration);\r\n+            globalConfiguration.addConfiguration(externalConfiguration);\r\n+            globalConfiguration.addConfiguration(propertiesConfiguration);\r\n+        }\r\n+        return globalConfiguration;\r\n+    }\r\n+\r\n+    public Configuration getDynamicGlobalConfiguration() {\r\n+        if (dynamicGlobalConfiguration == null) {\r\n+            if (dynamicConfiguration == null) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"dynamicConfiguration is null , return globalConfiguration.\");\r\n+                }\r\n+                return globalConfiguration;\r\n+            }\r\n+            dynamicGlobalConfiguration = new CompositeConfiguration();\r\n+            dynamicGlobalConfiguration.addConfiguration(dynamicConfiguration);\r\n+            dynamicGlobalConfiguration.addConfiguration(getConfiguration());\r\n+        }\r\n+        return dynamicGlobalConfiguration;\r\n+    }\r\n+\r\n+    public boolean isConfigCenterFirst() {\r\n+        return configCenterFirst;\r\n+    }\r\n+\r\n+    @DisableInject\r\n+    public void setConfigCenterFirst(boolean configCenterFirst) {\r\n+        this.configCenterFirst = configCenterFirst;\r\n+    }\r\n+\r\n+    public Optional<DynamicConfiguration> getDynamicConfiguration() {\r\n+        return Optional.ofNullable(dynamicConfiguration);\r\n+    }\r\n+\r\n+    @DisableInject\r\n+    public void setDynamicConfiguration(DynamicConfiguration dynamicConfiguration) {\r\n+        this.dynamicConfiguration = dynamicConfiguration;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws IllegalStateException {\r\n+        clearExternalConfigs();\r\n+        clearAppExternalConfigs();\r\n+    }\r\n+\r\n+    public PropertiesConfiguration getPropertiesConfiguration() {\r\n+        return propertiesConfiguration;\r\n+    }\r\n+\r\n+    public SystemConfiguration getSystemConfiguration() {\r\n+        return systemConfiguration;\r\n+    }\r\n+\r\n+    public EnvironmentConfiguration getEnvironmentConfiguration() {\r\n+        return environmentConfiguration;\r\n+    }\r\n+\r\n+    public InmemoryConfiguration getExternalConfiguration() {\r\n+        return externalConfiguration;\r\n+    }\r\n+\r\n+    public InmemoryConfiguration getAppExternalConfiguration() {\r\n+        return appExternalConfiguration;\r\n+    }\r\n+\r\n+    // For test\r\n+    public void clearExternalConfigs() {\r\n+        this.externalConfiguration.clear();\r\n+        this.externalConfigurationMap.clear();\r\n+    }\r\n+\r\n+    // For test\r\n+    public void clearAppExternalConfigs() {\r\n+        this.appExternalConfiguration.clear();\r\n+        this.appExternalConfigurationMap.clear();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/EnvironmentConfiguration.java", "source2": "org/apache/dubbo/common/config/EnvironmentConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-/**\n- * Configuration from system environment\n- */\n-public class EnvironmentConfiguration implements Configuration {\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        String value = System.getenv(key);\n-        if (StringUtils.isEmpty(value)) {\n-            value = System.getenv(StringUtils.toOSStyleKey(key));\n-        }\n-        return value;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+/**\r\n+ * Configuration from system environment\r\n+ */\r\n+public class EnvironmentConfiguration implements Configuration {\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        String value = System.getenv(key);\r\n+        if (StringUtils.isEmpty(value)) {\r\n+            value = System.getenv(StringUtils.toOSStyleKey(key));\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/InmemoryConfiguration.java", "source2": "org/apache/dubbo/common/config/InmemoryConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import java.util.LinkedHashMap;\n-import java.util.Map;\n-\n-/**\n- * In-memory configuration\n- */\n-public class InmemoryConfiguration implements Configuration {\n-\n-    // stores the configuration key-value pairs\n-    private Map<String, String> store = new LinkedHashMap<>();\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return store.get(key);\n-    }\n-\n-    /**\n-     * Add one property into the store, the previous value will be replaced if the key exists\n-     */\n-    public void addProperty(String key, String value) {\n-        store.put(key, value);\n-    }\n-\n-    /**\n-     * Add a set of properties into the store\n-     */\n-    public void addProperties(Map<String, String> properties) {\n-        if (properties != null) {\n-            this.store.putAll(properties);\n-        }\n-    }\n-\n-    /**\n-     * set store\n-     */\n-    public void setProperties(Map<String, String> properties) {\n-        if (properties != null) {\n-            this.store = properties;\n-        }\n-    }\n-\n-    // for unit test\n-    public void clear() {\n-        this.store.clear();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import java.util.LinkedHashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * In-memory configuration\r\n+ */\r\n+public class InmemoryConfiguration implements Configuration {\r\n+\r\n+    // stores the configuration key-value pairs\r\n+    private Map<String, String> store = new LinkedHashMap<>();\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return store.get(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add one property into the store, the previous value will be replaced if the key exists\r\n+     */\r\n+    public void addProperty(String key, String value) {\r\n+        store.put(key, value);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add a set of properties into the store\r\n+     */\r\n+    public void addProperties(Map<String, String> properties) {\r\n+        if (properties != null) {\r\n+            this.store.putAll(properties);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * set store\r\n+     */\r\n+    public void setProperties(Map<String, String> properties) {\r\n+        if (properties != null) {\r\n+            this.store = properties;\r\n+        }\r\n+    }\r\n+\r\n+    // for unit test\r\n+    public void clear() {\r\n+        this.store.clear();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/OrderedPropertiesProvider.java", "source2": "org/apache/dubbo/common/config/OrderedPropertiesProvider.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Properties;\n-\n-/**\n- * \n- * The smaller value, the higher priority\n- * \n- */\n-@SPI\n-public interface OrderedPropertiesProvider {\n-    /**\n-     * order\n-     *\n-     * @return\n-     */\n-    int priority();\n-\n-    /**\n-     * load the properties\n-     *\n-     * @return\n-     */\n-    Properties initProperties();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Properties;\r\n+\r\n+/**\r\n+ * \r\n+ * The smaller value, the higher priority\r\n+ * \r\n+ */\r\n+@SPI\r\n+public interface OrderedPropertiesProvider {\r\n+    /**\r\n+     * order\r\n+     *\r\n+     * @return\r\n+     */\r\n+    int priority();\r\n+\r\n+    /**\r\n+     * load the properties\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Properties initProperties();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/PropertiesConfiguration.java", "source2": "org/apache/dubbo/common/config/PropertiesConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Properties;\n-import java.util.Set;\n-\n-/**\n- * Configuration from system properties and dubbo.properties\n- */\n-public class PropertiesConfiguration implements Configuration {\n-\n-    public PropertiesConfiguration() {\n-        ExtensionLoader<OrderedPropertiesProvider> propertiesProviderExtensionLoader = ExtensionLoader.getExtensionLoader(OrderedPropertiesProvider.class);\n-        Set<String> propertiesProviderNames = propertiesProviderExtensionLoader.getSupportedExtensions();\n-        if (propertiesProviderNames == null || propertiesProviderNames.isEmpty()) {\n-            return;\n-        }\n-        List<OrderedPropertiesProvider> orderedPropertiesProviders = new ArrayList<>();\n-        for (String propertiesProviderName : propertiesProviderNames) {\n-            orderedPropertiesProviders.add(propertiesProviderExtensionLoader.getExtension(propertiesProviderName));\n-        }\n-\n-        //order the propertiesProvider according the priority descending\n-        orderedPropertiesProviders.sort((OrderedPropertiesProvider a, OrderedPropertiesProvider b) -> {\n-            return b.priority() - a.priority();\n-        });\n-\n-        //load the default properties\n-        Properties properties = ConfigUtils.getProperties();\n-\n-        //override the properties.\n-        for (OrderedPropertiesProvider orderedPropertiesProvider :\n-                orderedPropertiesProviders) {\n-            properties.putAll(orderedPropertiesProvider.initProperties());\n-        }\n-\n-        ConfigUtils.setProperties(properties);\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return ConfigUtils.getProperty(key);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Properties;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * Configuration from system properties and dubbo.properties\r\n+ */\r\n+public class PropertiesConfiguration implements Configuration {\r\n+\r\n+    public PropertiesConfiguration() {\r\n+        ExtensionLoader<OrderedPropertiesProvider> propertiesProviderExtensionLoader = ExtensionLoader.getExtensionLoader(OrderedPropertiesProvider.class);\r\n+        Set<String> propertiesProviderNames = propertiesProviderExtensionLoader.getSupportedExtensions();\r\n+        if (propertiesProviderNames == null || propertiesProviderNames.isEmpty()) {\r\n+            return;\r\n+        }\r\n+        List<OrderedPropertiesProvider> orderedPropertiesProviders = new ArrayList<>();\r\n+        for (String propertiesProviderName : propertiesProviderNames) {\r\n+            orderedPropertiesProviders.add(propertiesProviderExtensionLoader.getExtension(propertiesProviderName));\r\n+        }\r\n+\r\n+        //order the propertiesProvider according the priority descending\r\n+        orderedPropertiesProviders.sort((OrderedPropertiesProvider a, OrderedPropertiesProvider b) -> {\r\n+            return b.priority() - a.priority();\r\n+        });\r\n+\r\n+        //load the default properties\r\n+        Properties properties = ConfigUtils.getProperties();\r\n+\r\n+        //override the properties.\r\n+        for (OrderedPropertiesProvider orderedPropertiesProvider :\r\n+                orderedPropertiesProviders) {\r\n+            properties.putAll(orderedPropertiesProvider.initProperties());\r\n+        }\r\n+\r\n+        ConfigUtils.setProperties(properties);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return ConfigUtils.getProperty(key);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/SystemConfiguration.java", "source2": "org/apache/dubbo/common/config/SystemConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config;\n-\n-\n-/**\n- * FIXME: is this really necessary? PropertiesConfiguration should have already covered this:\n- *\n- * @See ConfigUtils#getProperty(String)\n- * @see PropertiesConfiguration\n- */\n-public class SystemConfiguration implements Configuration {\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return System.getProperty(key);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config;\r\n+\r\n+\r\n+/**\r\n+ * FIXME: is this really necessary? PropertiesConfiguration should have already covered this:\r\n+ *\r\n+ * @See ConfigUtils#getProperty(String)\r\n+ * @see PropertiesConfiguration\r\n+ */\r\n+public class SystemConfiguration implements Configuration {\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return System.getProperty(key);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/AbstractDynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/AbstractDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,306 +1,306 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.Future;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * The abstract implementation of {@link DynamicConfiguration}\n- *\n- * @since 2.7.5\n- */\n-public abstract class AbstractDynamicConfiguration implements DynamicConfiguration {\n-\n-    public static final String PARAM_NAME_PREFIX = \"dubbo.config-center.\";\n-\n-    public static final String THREAD_POOL_PREFIX_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.prefix\";\n-\n-    public static final String DEFAULT_THREAD_POOL_PREFIX = PARAM_NAME_PREFIX + \"workers\";\n-\n-    public static final String THREAD_POOL_SIZE_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.size\";\n-\n-    /**\n-     * The keep alive time in milliseconds for threads in {@link ThreadPoolExecutor}\n-     */\n-    public static final String THREAD_POOL_KEEP_ALIVE_TIME_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.keep-alive-time\";\n-\n-    /**\n-     * The parameter name of group for config-center\n-     *\n-     * @since 2.7.8\n-     */\n-    public static final String GROUP_PARAM_NAME = PARAM_NAME_PREFIX + GROUP_KEY;\n-\n-    /**\n-     * The parameter name of timeout for config-center\n-     *\n-     * @since 2.7.8\n-     */\n-    public static final String TIMEOUT_PARAM_NAME = PARAM_NAME_PREFIX + TIMEOUT_KEY;\n-\n-    public static final int DEFAULT_THREAD_POOL_SIZE = 1;\n-\n-    /**\n-     * Default keep alive time in milliseconds for threads in {@link ThreadPoolExecutor} is 1 minute( 60 * 1000 ms)\n-     */\n-    public static final long DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME = TimeUnit.MINUTES.toMillis(1);\n-\n-    /**\n-     * Logger\n-     */\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    /**\n-     * The thread pool for workers who executes the tasks\n-     */\n-    private final ThreadPoolExecutor workersThreadPool;\n-\n-    private final String group;\n-\n-    private final long timeout;\n-\n-    public AbstractDynamicConfiguration(URL url) {\n-        this(getThreadPoolPrefixName(url), getThreadPoolSize(url), getThreadPoolKeepAliveTime(url), getGroup(url),\n-                getTimeout(url));\n-    }\n-\n-    public AbstractDynamicConfiguration(String threadPoolPrefixName,\n-                                        int threadPoolSize,\n-                                        long keepAliveTime,\n-                                        String group,\n-                                        long timeout) {\n-        this.workersThreadPool = initWorkersThreadPool(threadPoolPrefixName, threadPoolSize, keepAliveTime);\n-        this.group = group;\n-        this.timeout = timeout;\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-    }\n-\n-    @Override\n-    public final String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        return execute(() -> doGetConfig(key, group), timeout);\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return null;\n-    }\n-\n-    @Override\n-    public final void close() throws Exception {\n-        try {\n-            doClose();\n-        } finally {\n-            doFinally();\n-        }\n-    }\n-\n-    @Override\n-    public boolean removeConfig(String key, String group) {\n-        return Boolean.TRUE.equals(execute(() -> doRemoveConfig(key, group), -1L));\n-    }\n-\n-    /**\n-     * @return the default group\n-     * @since 2.7.8\n-     */\n-    @Override\n-    public String getDefaultGroup() {\n-        return getGroup();\n-    }\n-\n-    /**\n-     * @return the default timeout\n-     * @since 2.7.8\n-     */\n-    @Override\n-    public long getDefaultTimeout() {\n-        return getTimeout();\n-    }\n-\n-    /**\n-     * Get the content of configuration in the specified key and group\n-     *\n-     * @param key   the key\n-     * @param group the group\n-     * @return if found, return the content of configuration\n-     * @throws Exception If met with some problems\n-     */\n-    protected abstract String doGetConfig(String key, String group) throws Exception;\n-\n-    /**\n-     * Close the resources if necessary\n-     *\n-     * @throws Exception If met with some problems\n-     */\n-    protected abstract void doClose() throws Exception;\n-\n-    /**\n-     * Remove the config in the specified key and group\n-     *\n-     * @param key   the key\n-     * @param group the group\n-     * @return If successful, return <code>true</code>, or <code>false</code>\n-     * @throws Exception\n-     * @since 2.7.8\n-     */\n-    protected abstract boolean doRemoveConfig(String key, String group) throws Exception;\n-\n-    /**\n-     * Executes the {@link Runnable} with the specified timeout\n-     *\n-     * @param task    the {@link Runnable task}\n-     * @param timeout timeout in milliseconds\n-     */\n-    protected final void execute(Runnable task, long timeout) {\n-        execute(() -> {\n-            task.run();\n-            return null;\n-        }, timeout);\n-    }\n-\n-    /**\n-     * Executes the {@link Callable} with the specified timeout\n-     *\n-     * @param task    the {@link Callable task}\n-     * @param timeout timeout in milliseconds\n-     * @param <V>     the type of computing result\n-     * @return the computing result\n-     */\n-    protected final <V> V execute(Callable<V> task, long timeout) {\n-        V value = null;\n-        try {\n-\n-            if (timeout < 1) { // less or equal 0\n-                value = task.call();\n-            } else {\n-                Future<V> future = workersThreadPool.submit(task);\n-                value = future.get(timeout, TimeUnit.MILLISECONDS);\n-            }\n-        } catch (Exception e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-        return value;\n-    }\n-\n-    protected ThreadPoolExecutor getWorkersThreadPool() {\n-        return workersThreadPool;\n-    }\n-\n-    private void doFinally() {\n-        shutdownWorkersThreadPool();\n-    }\n-\n-    private void shutdownWorkersThreadPool() {\n-        if (!workersThreadPool.isShutdown()) {\n-            workersThreadPool.shutdown();\n-        }\n-    }\n-\n-    protected ThreadPoolExecutor initWorkersThreadPool(String threadPoolPrefixName,\n-                                                       int threadPoolSize,\n-                                                       long keepAliveTime) {\n-        return new ThreadPoolExecutor(threadPoolSize, threadPoolSize, keepAliveTime,\n-                TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), new NamedThreadFactory(threadPoolPrefixName, true));\n-    }\n-\n-    protected static String getThreadPoolPrefixName(URL url) {\n-        return getParameter(url, THREAD_POOL_PREFIX_PARAM_NAME, DEFAULT_THREAD_POOL_PREFIX);\n-    }\n-\n-    protected static int getThreadPoolSize(URL url) {\n-        return getParameter(url, THREAD_POOL_SIZE_PARAM_NAME, DEFAULT_THREAD_POOL_SIZE);\n-    }\n-\n-    protected static long getThreadPoolKeepAliveTime(URL url) {\n-        return getParameter(url, THREAD_POOL_KEEP_ALIVE_TIME_PARAM_NAME, DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME);\n-    }\n-\n-    protected static String getParameter(URL url, String name, String defaultValue) {\n-        if (url != null) {\n-            return url.getParameter(name, defaultValue);\n-        }\n-        return defaultValue;\n-    }\n-\n-    protected static int getParameter(URL url, String name, int defaultValue) {\n-        if (url != null) {\n-            return url.getParameter(name, defaultValue);\n-        }\n-        return defaultValue;\n-    }\n-\n-    protected static long getParameter(URL url, String name, long defaultValue) {\n-        if (url != null) {\n-            return url.getParameter(name, defaultValue);\n-        }\n-        return defaultValue;\n-    }\n-\n-\n-    protected String getGroup() {\n-        return group;\n-    }\n-\n-    protected long getTimeout() {\n-        return timeout;\n-    }\n-\n-    /**\n-     * Get the group from {@link URL the specified connection URL}\n-     *\n-     * @param url {@link URL the specified connection URL}\n-     * @return non-null\n-     * @since 2.7.8\n-     */\n-    protected static String getGroup(URL url) {\n-        String group = getParameter(url, GROUP_PARAM_NAME, null);\n-        return StringUtils.isBlank(group) ? getParameter(url, GROUP_KEY, DEFAULT_GROUP) : group;\n-    }\n-\n-    /**\n-     * Get the timeout from {@link URL the specified connection URL}\n-     *\n-     * @param url {@link URL the specified connection URL}\n-     * @return non-null\n-     * @since 2.7.8\n-     */\n-    protected static long getTimeout(URL url) {\n-        return getParameter(url, TIMEOUT_PARAM_NAME, -1L);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.Future;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * The abstract implementation of {@link DynamicConfiguration}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class AbstractDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    public static final String PARAM_NAME_PREFIX = \"dubbo.config-center.\";\r\n+\r\n+    public static final String THREAD_POOL_PREFIX_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.prefix\";\r\n+\r\n+    public static final String DEFAULT_THREAD_POOL_PREFIX = PARAM_NAME_PREFIX + \"workers\";\r\n+\r\n+    public static final String THREAD_POOL_SIZE_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.size\";\r\n+\r\n+    /**\r\n+     * The keep alive time in milliseconds for threads in {@link ThreadPoolExecutor}\r\n+     */\r\n+    public static final String THREAD_POOL_KEEP_ALIVE_TIME_PARAM_NAME = PARAM_NAME_PREFIX + \"thread-pool.keep-alive-time\";\r\n+\r\n+    /**\r\n+     * The parameter name of group for config-center\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    public static final String GROUP_PARAM_NAME = PARAM_NAME_PREFIX + GROUP_KEY;\r\n+\r\n+    /**\r\n+     * The parameter name of timeout for config-center\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    public static final String TIMEOUT_PARAM_NAME = PARAM_NAME_PREFIX + TIMEOUT_KEY;\r\n+\r\n+    public static final int DEFAULT_THREAD_POOL_SIZE = 1;\r\n+\r\n+    /**\r\n+     * Default keep alive time in milliseconds for threads in {@link ThreadPoolExecutor} is 1 minute( 60 * 1000 ms)\r\n+     */\r\n+    public static final long DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME = TimeUnit.MINUTES.toMillis(1);\r\n+\r\n+    /**\r\n+     * Logger\r\n+     */\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    /**\r\n+     * The thread pool for workers who executes the tasks\r\n+     */\r\n+    private final ThreadPoolExecutor workersThreadPool;\r\n+\r\n+    private final String group;\r\n+\r\n+    private final long timeout;\r\n+\r\n+    public AbstractDynamicConfiguration(URL url) {\r\n+        this(getThreadPoolPrefixName(url), getThreadPoolSize(url), getThreadPoolKeepAliveTime(url), getGroup(url),\r\n+                getTimeout(url));\r\n+    }\r\n+\r\n+    public AbstractDynamicConfiguration(String threadPoolPrefixName,\r\n+                                        int threadPoolSize,\r\n+                                        long keepAliveTime,\r\n+                                        String group,\r\n+                                        long timeout) {\r\n+        this.workersThreadPool = initWorkersThreadPool(threadPoolPrefixName, threadPoolSize, keepAliveTime);\r\n+        this.group = group;\r\n+        this.timeout = timeout;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+    }\r\n+\r\n+    @Override\r\n+    public final String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        return execute(() -> doGetConfig(key, group), timeout);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void close() throws Exception {\r\n+        try {\r\n+            doClose();\r\n+        } finally {\r\n+            doFinally();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean removeConfig(String key, String group) {\r\n+        return Boolean.TRUE.equals(execute(() -> doRemoveConfig(key, group), -1L));\r\n+    }\r\n+\r\n+    /**\r\n+     * @return the default group\r\n+     * @since 2.7.8\r\n+     */\r\n+    @Override\r\n+    public String getDefaultGroup() {\r\n+        return getGroup();\r\n+    }\r\n+\r\n+    /**\r\n+     * @return the default timeout\r\n+     * @since 2.7.8\r\n+     */\r\n+    @Override\r\n+    public long getDefaultTimeout() {\r\n+        return getTimeout();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the content of configuration in the specified key and group\r\n+     *\r\n+     * @param key   the key\r\n+     * @param group the group\r\n+     * @return if found, return the content of configuration\r\n+     * @throws Exception If met with some problems\r\n+     */\r\n+    protected abstract String doGetConfig(String key, String group) throws Exception;\r\n+\r\n+    /**\r\n+     * Close the resources if necessary\r\n+     *\r\n+     * @throws Exception If met with some problems\r\n+     */\r\n+    protected abstract void doClose() throws Exception;\r\n+\r\n+    /**\r\n+     * Remove the config in the specified key and group\r\n+     *\r\n+     * @param key   the key\r\n+     * @param group the group\r\n+     * @return If successful, return <code>true</code>, or <code>false</code>\r\n+     * @throws Exception\r\n+     * @since 2.7.8\r\n+     */\r\n+    protected abstract boolean doRemoveConfig(String key, String group) throws Exception;\r\n+\r\n+    /**\r\n+     * Executes the {@link Runnable} with the specified timeout\r\n+     *\r\n+     * @param task    the {@link Runnable task}\r\n+     * @param timeout timeout in milliseconds\r\n+     */\r\n+    protected final void execute(Runnable task, long timeout) {\r\n+        execute(() -> {\r\n+            task.run();\r\n+            return null;\r\n+        }, timeout);\r\n+    }\r\n+\r\n+    /**\r\n+     * Executes the {@link Callable} with the specified timeout\r\n+     *\r\n+     * @param task    the {@link Callable task}\r\n+     * @param timeout timeout in milliseconds\r\n+     * @param <V>     the type of computing result\r\n+     * @return the computing result\r\n+     */\r\n+    protected final <V> V execute(Callable<V> task, long timeout) {\r\n+        V value = null;\r\n+        try {\r\n+\r\n+            if (timeout < 1) { // less or equal 0\r\n+                value = task.call();\r\n+            } else {\r\n+                Future<V> future = workersThreadPool.submit(task);\r\n+                value = future.get(timeout, TimeUnit.MILLISECONDS);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    protected ThreadPoolExecutor getWorkersThreadPool() {\r\n+        return workersThreadPool;\r\n+    }\r\n+\r\n+    private void doFinally() {\r\n+        shutdownWorkersThreadPool();\r\n+    }\r\n+\r\n+    private void shutdownWorkersThreadPool() {\r\n+        if (!workersThreadPool.isShutdown()) {\r\n+            workersThreadPool.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+    protected ThreadPoolExecutor initWorkersThreadPool(String threadPoolPrefixName,\r\n+                                                       int threadPoolSize,\r\n+                                                       long keepAliveTime) {\r\n+        return new ThreadPoolExecutor(threadPoolSize, threadPoolSize, keepAliveTime,\r\n+                TimeUnit.MILLISECONDS, new LinkedBlockingQueue<>(), new NamedThreadFactory(threadPoolPrefixName, true));\r\n+    }\r\n+\r\n+    protected static String getThreadPoolPrefixName(URL url) {\r\n+        return getParameter(url, THREAD_POOL_PREFIX_PARAM_NAME, DEFAULT_THREAD_POOL_PREFIX);\r\n+    }\r\n+\r\n+    protected static int getThreadPoolSize(URL url) {\r\n+        return getParameter(url, THREAD_POOL_SIZE_PARAM_NAME, DEFAULT_THREAD_POOL_SIZE);\r\n+    }\r\n+\r\n+    protected static long getThreadPoolKeepAliveTime(URL url) {\r\n+        return getParameter(url, THREAD_POOL_KEEP_ALIVE_TIME_PARAM_NAME, DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME);\r\n+    }\r\n+\r\n+    protected static String getParameter(URL url, String name, String defaultValue) {\r\n+        if (url != null) {\r\n+            return url.getParameter(name, defaultValue);\r\n+        }\r\n+        return defaultValue;\r\n+    }\r\n+\r\n+    protected static int getParameter(URL url, String name, int defaultValue) {\r\n+        if (url != null) {\r\n+            return url.getParameter(name, defaultValue);\r\n+        }\r\n+        return defaultValue;\r\n+    }\r\n+\r\n+    protected static long getParameter(URL url, String name, long defaultValue) {\r\n+        if (url != null) {\r\n+            return url.getParameter(name, defaultValue);\r\n+        }\r\n+        return defaultValue;\r\n+    }\r\n+\r\n+\r\n+    protected String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    protected long getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the group from {@link URL the specified connection URL}\r\n+     *\r\n+     * @param url {@link URL the specified connection URL}\r\n+     * @return non-null\r\n+     * @since 2.7.8\r\n+     */\r\n+    protected static String getGroup(URL url) {\r\n+        String group = getParameter(url, GROUP_PARAM_NAME, null);\r\n+        return StringUtils.isBlank(group) ? getParameter(url, GROUP_KEY, DEFAULT_GROUP) : group;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the timeout from {@link URL the specified connection URL}\r\n+     *\r\n+     * @param url {@link URL the specified connection URL}\r\n+     * @return non-null\r\n+     * @since 2.7.8\r\n+     */\r\n+    protected static long getTimeout(URL url) {\r\n+        return getParameter(url, TIMEOUT_PARAM_NAME, -1L);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/common/config/configcenter/AbstractDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-\n-/**\n- * Abstract {@link DynamicConfigurationFactory} implementation with cache ability\n- *\n- * @see DynamicConfigurationFactory\n- * @since 2.7.5\n- */\n-public abstract class AbstractDynamicConfigurationFactory implements DynamicConfigurationFactory {\n-\n-    private volatile Map<String, DynamicConfiguration> dynamicConfigurations = new ConcurrentHashMap<>();\n-\n-    @Override\n-    public final DynamicConfiguration getDynamicConfiguration(URL url) {\n-        String key = url == null ? DEFAULT_KEY : url.toServiceString();\n-        return dynamicConfigurations.computeIfAbsent(key, k -> createDynamicConfiguration(url));\n-    }\n-\n-    protected abstract DynamicConfiguration createDynamicConfiguration(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+\r\n+/**\r\n+ * Abstract {@link DynamicConfigurationFactory} implementation with cache ability\r\n+ *\r\n+ * @see DynamicConfigurationFactory\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class AbstractDynamicConfigurationFactory implements DynamicConfigurationFactory {\r\n+\r\n+    private volatile Map<String, DynamicConfiguration> dynamicConfigurations = new ConcurrentHashMap<>();\r\n+\r\n+    @Override\r\n+    public final DynamicConfiguration getDynamicConfiguration(URL url) {\r\n+        String key = url == null ? DEFAULT_KEY : url.toServiceString();\r\n+        return dynamicConfigurations.computeIfAbsent(key, k -> createDynamicConfiguration(url));\r\n+    }\r\n+\r\n+    protected abstract DynamicConfiguration createDynamicConfiguration(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/ConfigChangeType.java", "source2": "org/apache/dubbo/common/config/configcenter/ConfigChangeType.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-/**\n- * Config change event type\n- */\n-public enum ConfigChangeType {\n-    /**\n-     * A config is created.\n-     */\n-    ADDED,\n-\n-    /**\n-     * A config is updated.\n-     */\n-    MODIFIED,\n-\n-    /**\n-     * A config is deleted.\n-     */\n-    DELETED\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+/**\r\n+ * Config change event type\r\n+ */\r\n+public enum ConfigChangeType {\r\n+    /**\r\n+     * A config is created.\r\n+     */\r\n+    ADDED,\r\n+\r\n+    /**\r\n+     * A config is updated.\r\n+     */\r\n+    MODIFIED,\r\n+\r\n+    /**\r\n+     * A config is deleted.\r\n+     */\r\n+    DELETED\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/ConfigChangedEvent.java", "source2": "org/apache/dubbo/common/config/configcenter/ConfigChangedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,94 +1,94 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import java.util.EventObject;\n-import java.util.Objects;\n-\n-/**\n- * An event raised when the config changed, immutable.\n- *\n- * @see ConfigChangeType\n- */\n-public class ConfigChangedEvent extends EventObject {\n-\n-    private final String key;\n-\n-    private final String group;\n-\n-    private final String content;\n-\n-    private final ConfigChangeType changeType;\n-\n-    public ConfigChangedEvent(String key, String group, String content) {\n-        this(key, group, content, ConfigChangeType.MODIFIED);\n-    }\n-\n-    public ConfigChangedEvent(String key, String group, String content, ConfigChangeType changeType) {\n-        super(key + \",\" + group);\n-        this.key = key;\n-        this.group = group;\n-        this.content = content;\n-        this.changeType = changeType;\n-    }\n-\n-    public String getKey() {\n-        return key;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public String getContent() {\n-        return content;\n-    }\n-\n-    public ConfigChangeType getChangeType() {\n-        return changeType;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ConfigChangedEvent{\" +\n-                \"key='\" + key + '\\'' +\n-                \", group='\" + group + '\\'' +\n-                \", content='\" + content + '\\'' +\n-                \", changeType=\" + changeType +\n-                \"} \" + super.toString();\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof ConfigChangedEvent)) {\n-            return false;\n-        }\n-        ConfigChangedEvent that = (ConfigChangedEvent) o;\n-        return Objects.equals(getKey(), that.getKey()) &&\n-                Objects.equals(getGroup(), that.getGroup()) &&\n-                Objects.equals(getContent(), that.getContent()) &&\n-                getChangeType() == that.getChangeType();\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getKey(), getGroup(), getContent(), getChangeType());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import java.util.EventObject;\r\n+import java.util.Objects;\r\n+\r\n+/**\r\n+ * An event raised when the config changed, immutable.\r\n+ *\r\n+ * @see ConfigChangeType\r\n+ */\r\n+public class ConfigChangedEvent extends EventObject {\r\n+\r\n+    private final String key;\r\n+\r\n+    private final String group;\r\n+\r\n+    private final String content;\r\n+\r\n+    private final ConfigChangeType changeType;\r\n+\r\n+    public ConfigChangedEvent(String key, String group, String content) {\r\n+        this(key, group, content, ConfigChangeType.MODIFIED);\r\n+    }\r\n+\r\n+    public ConfigChangedEvent(String key, String group, String content, ConfigChangeType changeType) {\r\n+        super(key + \",\" + group);\r\n+        this.key = key;\r\n+        this.group = group;\r\n+        this.content = content;\r\n+        this.changeType = changeType;\r\n+    }\r\n+\r\n+    public String getKey() {\r\n+        return key;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public String getContent() {\r\n+        return content;\r\n+    }\r\n+\r\n+    public ConfigChangeType getChangeType() {\r\n+        return changeType;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ConfigChangedEvent{\" +\r\n+                \"key='\" + key + '\\'' +\r\n+                \", group='\" + group + '\\'' +\r\n+                \", content='\" + content + '\\'' +\r\n+                \", changeType=\" + changeType +\r\n+                \"} \" + super.toString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof ConfigChangedEvent)) {\r\n+            return false;\r\n+        }\r\n+        ConfigChangedEvent that = (ConfigChangedEvent) o;\r\n+        return Objects.equals(getKey(), that.getKey()) &&\r\n+                Objects.equals(getGroup(), that.getGroup()) &&\r\n+                Objects.equals(getContent(), that.getContent()) &&\r\n+                getChangeType() == that.getChangeType();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getKey(), getGroup(), getContent(), getChangeType());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/ConfigurationListener.java", "source2": "org/apache/dubbo/common/config/configcenter/ConfigurationListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import java.util.EventListener;\n-\n-/**\n- * Config listener, will get notified when the config it listens on changes.\n- */\n-public interface ConfigurationListener extends EventListener {\n-\n-    /**\n-     * Listener call back method. Listener gets notified by this method once there's any change happens on the config\n-     * the listener listens on.\n-     *\n-     * @param event config change event\n-     */\n-    void process(ConfigChangedEvent event);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import java.util.EventListener;\r\n+\r\n+/**\r\n+ * Config listener, will get notified when the config it listens on changes.\r\n+ */\r\n+public interface ConfigurationListener extends EventListener {\r\n+\r\n+    /**\r\n+     * Listener call back method. Listener gets notified by this method once there's any change happens on the config\r\n+     * the listener listens on.\r\n+     *\r\n+     * @param event config change event\r\n+     */\r\n+    void process(ConfigChangedEvent event);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/Constants.java", "source2": "org/apache/dubbo/common/config/configcenter/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-@Deprecated\n-public interface Constants {\n-    String CONFIG_CLUSTER_KEY = \"config.cluster\";\n-    String CONFIG_NAMESPACE_KEY = \"config.namespace\";\n-    String CONFIG_GROUP_KEY = \"config.group\";\n-    String CONFIG_CHECK_KEY = \"config.check\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+@Deprecated\r\n+public interface Constants {\r\n+    String CONFIG_CLUSTER_KEY = \"config.cluster\";\r\n+    String CONFIG_NAMESPACE_KEY = \"config.namespace\";\r\n+    String CONFIG_GROUP_KEY = \"config.group\";\r\n+    String CONFIG_CHECK_KEY = \"config.check\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/DynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/DynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,245 +1,245 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.Configuration;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.Collections;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.SortedSet;\n-\n-import static org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory.getDynamicConfigurationFactory;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * Dynamic Configuration\n- * <br/>\n- * From the use scenario internally inside framework, there're mainly three kinds of methods:\n- * <ol>\n- * <li>{@link #getProperties(String, String, long)}, get configuration file from Config Center at start up.</li>\n- * <li>{@link #addListener(String, String, ConfigurationListener)}/ {@link #removeListener(String, String, ConfigurationListener)}\n- * , add or remove listeners for governance rules or config items that need to watch.</li>\n- * <li>{@link #getProperty(String, Object)}, get a single config item.</li>\n- * <li>{@link #getConfig(String, String, long)}, get the specified config</li>\n- * </ol>\n- *\n- * @see AbstractDynamicConfiguration\n- */\n-public interface DynamicConfiguration extends Configuration, AutoCloseable {\n-\n-    String DEFAULT_GROUP = \"dubbo\";\n-\n-    /**\n-     * {@link #addListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void addListener(String key, ConfigurationListener listener) {\n-        addListener(key, getDefaultGroup(), listener);\n-    }\n-\n-\n-    /**\n-     * {@link #removeListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void removeListener(String key, ConfigurationListener listener) {\n-        removeListener(key, getDefaultGroup(), listener);\n-    }\n-\n-    /**\n-     * Register a configuration listener for a specified key\n-     * The listener only works for service governance purpose, so the target group would always be the value user\n-     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\n-     * trigger a notification that contains the current value.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void addListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Stops one listener from listening to value changes in the specified key.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void removeListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Get the configuration mapped to the given key and the given group with {@link #getDefaultTimeout() the default\n-     * timeout}\n-     *\n-     * @param key   the key to represent a configuration\n-     * @param group the group where the key belongs to\n-     * @return target configuration mapped to the given key and the given group\n-     */\n-    default String getConfig(String key, String group) {\n-        return getConfig(key, group, getDefaultTimeout());\n-    }\n-\n-    /**\n-     * Get the configuration mapped to the given key and the given group. If the\n-     * configuration fails to fetch after timeout exceeds, IllegalStateException will be thrown.\n-     *\n-     * @param key     the key to represent a configuration\n-     * @param group   the group where the key belongs to\n-     * @param timeout timeout value for fetching the target config\n-     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\n-     * if timeout exceeds.\n-     */\n-    String getConfig(String key, String group, long timeout) throws IllegalStateException;\n-\n-    /**\n-     * This method are mostly used to get a compound config file with {@link #getDefaultTimeout() the default timeout},\n-     * such as a complete dubbo.properties file.\n-     */\n-    default String getProperties(String key, String group) throws IllegalStateException {\n-        return getProperties(key, group, getDefaultTimeout());\n-    }\n-\n-    /**\n-     * This method are mostly used to get a compound config file, such as a complete dubbo.properties file.\n-     *\n-     * @revision 2.7.4\n-     */\n-    default String getProperties(String key, String group, long timeout) throws IllegalStateException {\n-        return getConfig(key, group, timeout);\n-    }\n-\n-    /**\n-     * Publish Config mapped to the given key under the {@link #getDefaultGroup() default group}\n-     *\n-     * @param key     the key to represent a configuration\n-     * @param content the content of configuration\n-     * @return <code>true</code> if success, or <code>false</code>\n-     * @throws UnsupportedOperationException If the under layer does not support\n-     * @since 2.7.5\n-     */\n-    default boolean publishConfig(String key, String content) throws UnsupportedOperationException {\n-        return publishConfig(key, getDefaultGroup(), content);\n-    }\n-\n-    /**\n-     * Publish Config mapped to the given key and the given group.\n-     *\n-     * @param key     the key to represent a configuration\n-     * @param group   the group where the key belongs to\n-     * @param content the content of configuration\n-     * @return <code>true</code> if success, or <code>false</code>\n-     * @throws UnsupportedOperationException If the under layer does not support\n-     * @since 2.7.5\n-     */\n-    default boolean publishConfig(String key, String group, String content) throws UnsupportedOperationException {\n-        return false;\n-    }\n-\n-    /**\n-     * Get the config keys by the specified group\n-     *\n-     * @param group the specified group\n-     * @return the read-only non-null sorted {@link Set set} of config keys\n-     * @throws UnsupportedOperationException If the under layer does not support\n-     * @since 2.7.5\n-     */\n-    default SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\n-        return Collections.emptySortedSet();\n-    }\n-\n-    /**\n-     * Get the default group for the operations\n-     *\n-     * @return The default value is {@link #DEFAULT_GROUP \"dubbo\"}\n-     * @since 2.7.5\n-     */\n-    default String getDefaultGroup() {\n-        return DEFAULT_GROUP;\n-    }\n-\n-    /**\n-     * Get the default timeout for the operations in milliseconds\n-     *\n-     * @return The default value is <code>-1L</code>\n-     * @since 2.7.5\n-     */\n-    default long getDefaultTimeout() {\n-        return -1L;\n-    }\n-\n-    /**\n-     * Close the configuration\n-     *\n-     * @throws Exception\n-     * @since 2.7.5\n-     */\n-    @Override\n-    default void close() throws Exception {\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    /**\n-     * Find DynamicConfiguration instance\n-     *\n-     * @return DynamicConfiguration instance\n-     */\n-    static DynamicConfiguration getDynamicConfiguration() {\n-        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\n-        return optional.orElseGet(() -> getExtensionLoader(DynamicConfigurationFactory.class)\n-                .getDefaultExtension()\n-                .getDynamicConfiguration(null));\n-    }\n-\n-    /**\n-     * Get the instance of {@link DynamicConfiguration} by the specified connection {@link URL}\n-     *\n-     * @param connectionURL\n-     * @return non-null\n-     * @since 2.7.5\n-     */\n-    static DynamicConfiguration getDynamicConfiguration(URL connectionURL) {\n-        String protocol = connectionURL.getProtocol();\n-        DynamicConfigurationFactory factory = getDynamicConfigurationFactory(protocol);\n-        return factory.getDynamicConfiguration(connectionURL);\n-    }\n-\n-    /**\n-     * The format is '{interfaceName}:[version]:[group]'\n-     *\n-     * @return\n-     */\n-    static String getRuleKey(URL url) {\n-        return url.getColonSeparatedKey();\n-    }\n-\n-    /**\n-     * @param key   the key to represent a configuration\n-     * @param group the group where the key belongs to\n-     * @return <code>true</code> if success, or <code>false</code>\n-     * @since 2.7.8\n-     */\n-    default boolean removeConfig(String key, String group) {\n-        return true;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.Configuration;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+\r\n+import static org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory.getDynamicConfigurationFactory;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * Dynamic Configuration\r\n+ * <br/>\r\n+ * From the use scenario internally inside framework, there're mainly three kinds of methods:\r\n+ * <ol>\r\n+ * <li>{@link #getProperties(String, String, long)}, get configuration file from Config Center at start up.</li>\r\n+ * <li>{@link #addListener(String, String, ConfigurationListener)}/ {@link #removeListener(String, String, ConfigurationListener)}\r\n+ * , add or remove listeners for governance rules or config items that need to watch.</li>\r\n+ * <li>{@link #getProperty(String, Object)}, get a single config item.</li>\r\n+ * <li>{@link #getConfig(String, String, long)}, get the specified config</li>\r\n+ * </ol>\r\n+ *\r\n+ * @see AbstractDynamicConfiguration\r\n+ */\r\n+public interface DynamicConfiguration extends Configuration, AutoCloseable {\r\n+\r\n+    String DEFAULT_GROUP = \"dubbo\";\r\n+\r\n+    /**\r\n+     * {@link #addListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void addListener(String key, ConfigurationListener listener) {\r\n+        addListener(key, getDefaultGroup(), listener);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * {@link #removeListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void removeListener(String key, ConfigurationListener listener) {\r\n+        removeListener(key, getDefaultGroup(), listener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Register a configuration listener for a specified key\r\n+     * The listener only works for service governance purpose, so the target group would always be the value user\r\n+     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\r\n+     * trigger a notification that contains the current value.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void addListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Stops one listener from listening to value changes in the specified key.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void removeListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Get the configuration mapped to the given key and the given group with {@link #getDefaultTimeout() the default\r\n+     * timeout}\r\n+     *\r\n+     * @param key   the key to represent a configuration\r\n+     * @param group the group where the key belongs to\r\n+     * @return target configuration mapped to the given key and the given group\r\n+     */\r\n+    default String getConfig(String key, String group) {\r\n+        return getConfig(key, group, getDefaultTimeout());\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the configuration mapped to the given key and the given group. If the\r\n+     * configuration fails to fetch after timeout exceeds, IllegalStateException will be thrown.\r\n+     *\r\n+     * @param key     the key to represent a configuration\r\n+     * @param group   the group where the key belongs to\r\n+     * @param timeout timeout value for fetching the target config\r\n+     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\r\n+     * if timeout exceeds.\r\n+     */\r\n+    String getConfig(String key, String group, long timeout) throws IllegalStateException;\r\n+\r\n+    /**\r\n+     * This method are mostly used to get a compound config file with {@link #getDefaultTimeout() the default timeout},\r\n+     * such as a complete dubbo.properties file.\r\n+     */\r\n+    default String getProperties(String key, String group) throws IllegalStateException {\r\n+        return getProperties(key, group, getDefaultTimeout());\r\n+    }\r\n+\r\n+    /**\r\n+     * This method are mostly used to get a compound config file, such as a complete dubbo.properties file.\r\n+     *\r\n+     * @revision 2.7.4\r\n+     */\r\n+    default String getProperties(String key, String group, long timeout) throws IllegalStateException {\r\n+        return getConfig(key, group, timeout);\r\n+    }\r\n+\r\n+    /**\r\n+     * Publish Config mapped to the given key under the {@link #getDefaultGroup() default group}\r\n+     *\r\n+     * @param key     the key to represent a configuration\r\n+     * @param content the content of configuration\r\n+     * @return <code>true</code> if success, or <code>false</code>\r\n+     * @throws UnsupportedOperationException If the under layer does not support\r\n+     * @since 2.7.5\r\n+     */\r\n+    default boolean publishConfig(String key, String content) throws UnsupportedOperationException {\r\n+        return publishConfig(key, getDefaultGroup(), content);\r\n+    }\r\n+\r\n+    /**\r\n+     * Publish Config mapped to the given key and the given group.\r\n+     *\r\n+     * @param key     the key to represent a configuration\r\n+     * @param group   the group where the key belongs to\r\n+     * @param content the content of configuration\r\n+     * @return <code>true</code> if success, or <code>false</code>\r\n+     * @throws UnsupportedOperationException If the under layer does not support\r\n+     * @since 2.7.5\r\n+     */\r\n+    default boolean publishConfig(String key, String group, String content) throws UnsupportedOperationException {\r\n+        return false;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the config keys by the specified group\r\n+     *\r\n+     * @param group the specified group\r\n+     * @return the read-only non-null sorted {@link Set set} of config keys\r\n+     * @throws UnsupportedOperationException If the under layer does not support\r\n+     * @since 2.7.5\r\n+     */\r\n+    default SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\r\n+        return Collections.emptySortedSet();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the default group for the operations\r\n+     *\r\n+     * @return The default value is {@link #DEFAULT_GROUP \"dubbo\"}\r\n+     * @since 2.7.5\r\n+     */\r\n+    default String getDefaultGroup() {\r\n+        return DEFAULT_GROUP;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the default timeout for the operations in milliseconds\r\n+     *\r\n+     * @return The default value is <code>-1L</code>\r\n+     * @since 2.7.5\r\n+     */\r\n+    default long getDefaultTimeout() {\r\n+        return -1L;\r\n+    }\r\n+\r\n+    /**\r\n+     * Close the configuration\r\n+     *\r\n+     * @throws Exception\r\n+     * @since 2.7.5\r\n+     */\r\n+    @Override\r\n+    default void close() throws Exception {\r\n+        throw new UnsupportedOperationException();\r\n+    }\r\n+\r\n+    /**\r\n+     * Find DynamicConfiguration instance\r\n+     *\r\n+     * @return DynamicConfiguration instance\r\n+     */\r\n+    static DynamicConfiguration getDynamicConfiguration() {\r\n+        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\r\n+        return optional.orElseGet(() -> getExtensionLoader(DynamicConfigurationFactory.class)\r\n+                .getDefaultExtension()\r\n+                .getDynamicConfiguration(null));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the instance of {@link DynamicConfiguration} by the specified connection {@link URL}\r\n+     *\r\n+     * @param connectionURL\r\n+     * @return non-null\r\n+     * @since 2.7.5\r\n+     */\r\n+    static DynamicConfiguration getDynamicConfiguration(URL connectionURL) {\r\n+        String protocol = connectionURL.getProtocol();\r\n+        DynamicConfigurationFactory factory = getDynamicConfigurationFactory(protocol);\r\n+        return factory.getDynamicConfiguration(connectionURL);\r\n+    }\r\n+\r\n+    /**\r\n+     * The format is '{interfaceName}:[version]:[group]'\r\n+     *\r\n+     * @return\r\n+     */\r\n+    static String getRuleKey(URL url) {\r\n+        return url.getColonSeparatedKey();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param key   the key to represent a configuration\r\n+     * @param group the group where the key belongs to\r\n+     * @return <code>true</code> if success, or <code>false</code>\r\n+     * @since 2.7.8\r\n+     */\r\n+    default boolean removeConfig(String key, String group) {\r\n+        return true;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/DynamicConfigurationFactory.java", "source2": "org/apache/dubbo/common/config/configcenter/DynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * The factory interface to create the instance of {@link DynamicConfiguration}\n- */\n-@SPI(\"nop\") // 2.7.5 change the default SPI implementation\n-public interface DynamicConfigurationFactory {\n-\n-    DynamicConfiguration getDynamicConfiguration(URL url);\n-\n-    /**\n-     * Get an instance of {@link DynamicConfigurationFactory} by the specified name. If not found, take the default\n-     * extension of {@link DynamicConfigurationFactory}\n-     *\n-     * @param name the name of extension of {@link DynamicConfigurationFactory}\n-     * @return non-null\n-     * @see 2.7.4\n-     */\n-    static DynamicConfigurationFactory getDynamicConfigurationFactory(String name) {\n-        Class<DynamicConfigurationFactory> factoryClass = DynamicConfigurationFactory.class;\n-        ExtensionLoader<DynamicConfigurationFactory> loader = getExtensionLoader(factoryClass);\n-        return loader.getOrDefaultExtension(name);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * The factory interface to create the instance of {@link DynamicConfiguration}\r\n+ */\r\n+@SPI(\"nop\") // 2.7.5 change the default SPI implementation\r\n+public interface DynamicConfigurationFactory {\r\n+\r\n+    DynamicConfiguration getDynamicConfiguration(URL url);\r\n+\r\n+    /**\r\n+     * Get an instance of {@link DynamicConfigurationFactory} by the specified name. If not found, take the default\r\n+     * extension of {@link DynamicConfigurationFactory}\r\n+     *\r\n+     * @param name the name of extension of {@link DynamicConfigurationFactory}\r\n+     * @return non-null\r\n+     * @see 2.7.4\r\n+     */\r\n+    static DynamicConfigurationFactory getDynamicConfigurationFactory(String name) {\r\n+        Class<DynamicConfigurationFactory> factoryClass = DynamicConfigurationFactory.class;\r\n+        ExtensionLoader<DynamicConfigurationFactory> loader = getExtensionLoader(factoryClass);\r\n+        return loader.getOrDefaultExtension(name);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/TreePathDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,186 +1,186 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.Collection;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-\n-import static java.util.Collections.emptySortedSet;\n-import static java.util.Collections.unmodifiableSortedSet;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.PathUtils.buildPath;\n-import static org.apache.dubbo.common.utils.PathUtils.normalize;\n-\n-/**\n- * An abstract implementation of {@link DynamicConfiguration} is like \"tree-structure\" path :\n- * <ul>\n- *     <li>{@link FileSystemDynamicConfiguration \"file\"}</li>\n- *     <li>{@link org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration \"zookeeper\"}</li>\n- *     <li>{@link org.apache.dubbo.configcenter.consul.ConsulDynamicConfiguration \"consul\"}</li>\n- * </ul>\n- *\n- * @see DynamicConfiguration\n- * @see AbstractDynamicConfiguration\n- * @since 2.7.8\n- */\n-public abstract class TreePathDynamicConfiguration extends AbstractDynamicConfiguration {\n-\n-    /**\n-     * The parameter name of URL for the config root path\n-     */\n-    public static final String CONFIG_ROOT_PATH_PARAM_NAME = PARAM_NAME_PREFIX + \"root-path\";\n-\n-    /**\n-     * The parameter name of URL for the config base path\n-     */\n-    public static final String CONFIG_BASE_PATH_PARAM_NAME = PARAM_NAME_PREFIX + \"base-path\";\n-\n-    /**\n-     * The default value of parameter of URL for the config base path\n-     */\n-    public static final String DEFAULT_CONFIG_BASE_PATH = \"/config\";\n-\n-    private final String rootPath;\n-\n-    public TreePathDynamicConfiguration(URL url) {\n-        super(url);\n-        this.rootPath = getRootPath(url);\n-    }\n-\n-    public TreePathDynamicConfiguration(String rootPath,\n-                                        String threadPoolPrefixName,\n-                                        int threadPoolSize,\n-                                        long keepAliveTime,\n-                                        String group,\n-                                        long timeout) {\n-        super(threadPoolPrefixName, threadPoolSize, keepAliveTime, group, timeout);\n-        this.rootPath = rootPath;\n-    }\n-\n-    @Override\n-    protected final String doGetConfig(String key, String group) throws Exception {\n-        String pathKey = buildPathKey(group, key);\n-        return doGetConfig(pathKey);\n-    }\n-\n-    @Override\n-    public final boolean publishConfig(String key, String group, String content) {\n-        String pathKey = buildPathKey(group, key);\n-        return Boolean.TRUE.equals(execute(() -> doPublishConfig(pathKey, content), getDefaultTimeout()));\n-    }\n-\n-    @Override\n-    protected final boolean doRemoveConfig(String key, String group) throws Exception {\n-        String pathKey = buildPathKey(group, key);\n-        return doRemoveConfig(pathKey);\n-    }\n-\n-    @Override\n-    public final void addListener(String key, String group, ConfigurationListener listener) {\n-        String pathKey = buildPathKey(group, key);\n-        doAddListener(pathKey, listener);\n-    }\n-\n-    @Override\n-    public final void removeListener(String key, String group, ConfigurationListener listener) {\n-        String pathKey = buildPathKey(group, key);\n-        doRemoveListener(pathKey, listener);\n-    }\n-\n-    @Override\n-    public final SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\n-        String groupPath = buildGroupPath(group);\n-        Collection<String> configKeys = doGetConfigKeys(groupPath);\n-        return isEmpty(configKeys) ? emptySortedSet() : unmodifiableSortedSet(new TreeSet<>(configKeys));\n-    }\n-\n-    protected abstract boolean doPublishConfig(String pathKey, String content) throws Exception;\n-\n-    protected abstract String doGetConfig(String pathKey) throws Exception;\n-\n-    protected abstract boolean doRemoveConfig(String pathKey) throws Exception;\n-\n-    protected abstract Collection<String> doGetConfigKeys(String groupPath);\n-\n-    protected abstract void doAddListener(String pathKey, ConfigurationListener listener);\n-\n-    protected abstract void doRemoveListener(String pathKey, ConfigurationListener listener);\n-\n-    protected String buildGroupPath(String group) {\n-        return buildPath(rootPath, group);\n-    }\n-\n-    protected String buildPathKey(String group, String key) {\n-        return buildPath(buildGroupPath(group), key);\n-    }\n-\n-    /**\n-     * Get the root path from the specified {@link URL connection URl}\n-     *\n-     * @param url the specified {@link URL connection URl}\n-     * @return non-null\n-     */\n-    protected String getRootPath(URL url) {\n-\n-        String rootPath = url.getParameter(CONFIG_ROOT_PATH_PARAM_NAME, buildRootPath(url));\n-\n-        rootPath = normalize(rootPath);\n-\n-        int rootPathLength = rootPath.length();\n-\n-        if (rootPathLength > 1 && rootPath.endsWith(PATH_SEPARATOR)) {\n-            rootPath = rootPath.substring(0, rootPathLength - 1);\n-        }\n-\n-        return rootPath;\n-    }\n-\n-    private String buildRootPath(URL url) {\n-        return PATH_SEPARATOR + getConfigNamespace(url) + getConfigBasePath(url);\n-    }\n-\n-    /**\n-     * Get the namespace from the specified {@link URL connection URl}\n-     *\n-     * @param url the specified {@link URL connection URl}\n-     * @return non-null\n-     */\n-    protected String getConfigNamespace(URL url) {\n-        return url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\n-    }\n-\n-    /**\n-     * Get the config base path from the specified {@link URL connection URl}\n-     *\n-     * @param url the specified {@link URL connection URl}\n-     * @return non-null\n-     */\n-    protected String getConfigBasePath(URL url) {\n-        String configBasePath = url.getParameter(CONFIG_BASE_PATH_PARAM_NAME, DEFAULT_CONFIG_BASE_PATH);\n-        if (StringUtils.isNotEmpty(configBasePath) && !configBasePath.startsWith(PATH_SEPARATOR)) {\n-            configBasePath = PATH_SEPARATOR + configBasePath;\n-        }\n-        return configBasePath;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+\r\n+import static java.util.Collections.emptySortedSet;\r\n+import static java.util.Collections.unmodifiableSortedSet;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.PathUtils.buildPath;\r\n+import static org.apache.dubbo.common.utils.PathUtils.normalize;\r\n+\r\n+/**\r\n+ * An abstract implementation of {@link DynamicConfiguration} is like \"tree-structure\" path :\r\n+ * <ul>\r\n+ *     <li>{@link FileSystemDynamicConfiguration \"file\"}</li>\r\n+ *     <li>{@link org.apache.dubbo.configcenter.support.zookeeper.ZookeeperDynamicConfiguration \"zookeeper\"}</li>\r\n+ *     <li>{@link org.apache.dubbo.configcenter.consul.ConsulDynamicConfiguration \"consul\"}</li>\r\n+ * </ul>\r\n+ *\r\n+ * @see DynamicConfiguration\r\n+ * @see AbstractDynamicConfiguration\r\n+ * @since 2.7.8\r\n+ */\r\n+public abstract class TreePathDynamicConfiguration extends AbstractDynamicConfiguration {\r\n+\r\n+    /**\r\n+     * The parameter name of URL for the config root path\r\n+     */\r\n+    public static final String CONFIG_ROOT_PATH_PARAM_NAME = PARAM_NAME_PREFIX + \"root-path\";\r\n+\r\n+    /**\r\n+     * The parameter name of URL for the config base path\r\n+     */\r\n+    public static final String CONFIG_BASE_PATH_PARAM_NAME = PARAM_NAME_PREFIX + \"base-path\";\r\n+\r\n+    /**\r\n+     * The default value of parameter of URL for the config base path\r\n+     */\r\n+    public static final String DEFAULT_CONFIG_BASE_PATH = \"/config\";\r\n+\r\n+    private final String rootPath;\r\n+\r\n+    public TreePathDynamicConfiguration(URL url) {\r\n+        super(url);\r\n+        this.rootPath = getRootPath(url);\r\n+    }\r\n+\r\n+    public TreePathDynamicConfiguration(String rootPath,\r\n+                                        String threadPoolPrefixName,\r\n+                                        int threadPoolSize,\r\n+                                        long keepAliveTime,\r\n+                                        String group,\r\n+                                        long timeout) {\r\n+        super(threadPoolPrefixName, threadPoolSize, keepAliveTime, group, timeout);\r\n+        this.rootPath = rootPath;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected final String doGetConfig(String key, String group) throws Exception {\r\n+        String pathKey = buildPathKey(group, key);\r\n+        return doGetConfig(pathKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final boolean publishConfig(String key, String group, String content) {\r\n+        String pathKey = buildPathKey(group, key);\r\n+        return Boolean.TRUE.equals(execute(() -> doPublishConfig(pathKey, content), getDefaultTimeout()));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected final boolean doRemoveConfig(String key, String group) throws Exception {\r\n+        String pathKey = buildPathKey(group, key);\r\n+        return doRemoveConfig(pathKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void addListener(String key, String group, ConfigurationListener listener) {\r\n+        String pathKey = buildPathKey(group, key);\r\n+        doAddListener(pathKey, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        String pathKey = buildPathKey(group, key);\r\n+        doRemoveListener(pathKey, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\r\n+        String groupPath = buildGroupPath(group);\r\n+        Collection<String> configKeys = doGetConfigKeys(groupPath);\r\n+        return isEmpty(configKeys) ? emptySortedSet() : unmodifiableSortedSet(new TreeSet<>(configKeys));\r\n+    }\r\n+\r\n+    protected abstract boolean doPublishConfig(String pathKey, String content) throws Exception;\r\n+\r\n+    protected abstract String doGetConfig(String pathKey) throws Exception;\r\n+\r\n+    protected abstract boolean doRemoveConfig(String pathKey) throws Exception;\r\n+\r\n+    protected abstract Collection<String> doGetConfigKeys(String groupPath);\r\n+\r\n+    protected abstract void doAddListener(String pathKey, ConfigurationListener listener);\r\n+\r\n+    protected abstract void doRemoveListener(String pathKey, ConfigurationListener listener);\r\n+\r\n+    protected String buildGroupPath(String group) {\r\n+        return buildPath(rootPath, group);\r\n+    }\r\n+\r\n+    protected String buildPathKey(String group, String key) {\r\n+        return buildPath(buildGroupPath(group), key);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the root path from the specified {@link URL connection URl}\r\n+     *\r\n+     * @param url the specified {@link URL connection URl}\r\n+     * @return non-null\r\n+     */\r\n+    protected String getRootPath(URL url) {\r\n+\r\n+        String rootPath = url.getParameter(CONFIG_ROOT_PATH_PARAM_NAME, buildRootPath(url));\r\n+\r\n+        rootPath = normalize(rootPath);\r\n+\r\n+        int rootPathLength = rootPath.length();\r\n+\r\n+        if (rootPathLength > 1 && rootPath.endsWith(PATH_SEPARATOR)) {\r\n+            rootPath = rootPath.substring(0, rootPathLength - 1);\r\n+        }\r\n+\r\n+        return rootPath;\r\n+    }\r\n+\r\n+    private String buildRootPath(URL url) {\r\n+        return PATH_SEPARATOR + getConfigNamespace(url) + getConfigBasePath(url);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the namespace from the specified {@link URL connection URl}\r\n+     *\r\n+     * @param url the specified {@link URL connection URl}\r\n+     * @return non-null\r\n+     */\r\n+    protected String getConfigNamespace(URL url) {\r\n+        return url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the config base path from the specified {@link URL connection URl}\r\n+     *\r\n+     * @param url the specified {@link URL connection URl}\r\n+     * @return non-null\r\n+     */\r\n+    protected String getConfigBasePath(URL url) {\r\n+        String configBasePath = url.getParameter(CONFIG_BASE_PATH_PARAM_NAME, DEFAULT_CONFIG_BASE_PATH);\r\n+        if (StringUtils.isNotEmpty(configBasePath) && !configBasePath.startsWith(PATH_SEPARATOR)) {\r\n+            configBasePath = PATH_SEPARATOR + configBasePath;\r\n+        }\r\n+        return configBasePath;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,607 +1,607 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter.file;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\n-import org.apache.dubbo.common.function.ThrowableConsumer;\n-import org.apache.dubbo.common.function.ThrowableFunction;\n-import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import org.apache.commons.io.FileUtils;\n-import org.apache.commons.logging.Log;\n-import org.apache.commons.logging.LogFactory;\n-\n-import java.io.File;\n-import java.io.IOException;\n-import java.nio.file.FileSystem;\n-import java.nio.file.FileSystems;\n-import java.nio.file.Path;\n-import java.nio.file.WatchEvent;\n-import java.nio.file.WatchKey;\n-import java.nio.file.WatchService;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.TreeSet;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.SynchronousQueue;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.function.BiConsumer;\n-import java.util.function.Function;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-\n-import static java.lang.String.format;\n-import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;\n-import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;\n-import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;\n-import static java.util.Collections.emptySet;\n-import static java.util.Collections.unmodifiableMap;\n-import static java.util.concurrent.TimeUnit.MILLISECONDS;\n-import static java.util.concurrent.TimeUnit.SECONDS;\n-import static org.apache.commons.io.FileUtils.readFileToString;\n-\n-/**\n- * File-System based {@link DynamicConfiguration} implementation\n- *\n- * @since 2.7.5\n- */\n-public class FileSystemDynamicConfiguration extends TreePathDynamicConfiguration {\n-\n-    public static final String CONFIG_CENTER_DIR_PARAM_NAME = PARAM_NAME_PREFIX + \"dir\";\n-\n-    public static final String CONFIG_CENTER_ENCODING_PARAM_NAME = PARAM_NAME_PREFIX + \"encoding\";\n-\n-    public static final String DEFAULT_CONFIG_CENTER_DIR_PATH = System.getProperty(\"user.home\") + File.separator\n-            + \".dubbo\" + File.separator + \"config-center\";\n-\n-    public static final int DEFAULT_THREAD_POOL_SIZE = 1;\n-\n-    public static final String DEFAULT_CONFIG_CENTER_ENCODING = \"UTF-8\";\n-\n-    private static final WatchEvent.Kind[] INTEREST_PATH_KINDS = of(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);\n-\n-    /**\n-     * The class name of {@linkplain sun.nio.fs.PollingWatchService}\n-     */\n-    private static final String POLLING_WATCH_SERVICE_CLASS_NAME = \"sun.nio.fs.PollingWatchService\";\n-\n-    private static final int THREAD_POOL_SIZE = 1;\n-\n-    /**\n-     * Logger\n-     */\n-    private static final Log logger = LogFactory.getLog(FileSystemDynamicConfiguration.class);\n-\n-\n-    /**\n-     * The unmodifiable map for {@link ConfigChangeType} whose key is the {@link WatchEvent.Kind#name() name} of\n-     * {@link WatchEvent.Kind WatchEvent's Kind}\n-     */\n-    private static final Map<String, ConfigChangeType> CONFIG_CHANGE_TYPES_MAP =\n-            unmodifiableMap(new HashMap<String, ConfigChangeType>() {\n-                // Initializes the elements that is mapping ConfigChangeType\n-                {\n-                    put(ENTRY_CREATE.name(), ConfigChangeType.ADDED);\n-                    put(ENTRY_DELETE.name(), ConfigChangeType.DELETED);\n-                    put(ENTRY_MODIFY.name(), ConfigChangeType.MODIFIED);\n-                }\n-            });\n-\n-    private static final Optional<WatchService> watchService;\n-\n-    /**\n-     * Is Pooling Based Watch Service\n-     *\n-     * @see #detectPoolingBasedWatchService(Optional)\n-     */\n-    private static final boolean BASED_POOLING_WATCH_SERVICE;\n-\n-    private static final WatchEvent.Modifier[] MODIFIERS;\n-\n-    /**\n-     * the delay to action in seconds. If null, execute indirectly\n-     */\n-    private static final Integer DELAY;\n-\n-    /**\n-     * The thread pool for {@link WatchEvent WatchEvents} loop\n-     * It's optional if there is not any {@link ConfigurationListener} registration\n-     *\n-     * @see ThreadPoolExecutor\n-     */\n-    private static final ThreadPoolExecutor WATCH_EVENTS_LOOP_THREAD_POOL;\n-\n-    // static initialization\n-    static {\n-        watchService = newWatchService();\n-        BASED_POOLING_WATCH_SERVICE = detectPoolingBasedWatchService(watchService);\n-        MODIFIERS = initWatchEventModifiers();\n-        DELAY = initDelay(MODIFIERS);\n-        WATCH_EVENTS_LOOP_THREAD_POOL = newWatchEventsLoopThreadPool();\n-        registerDubboShutdownHook();\n-    }\n-\n-    /**\n-     * The Root Directory for config center\n-     */\n-    private final File rootDirectory;\n-\n-    private final String encoding;\n-\n-    /**\n-     * The {@link Set} of {@link #groupDirectory(String) directories} that may be processing,\n-     * <p>\n-     * if {@link #isBasedPoolingWatchService()} is <code>false</code>, this properties will be\n-     * {@link Collections#emptySet() empty}\n-     *\n-     * @see #initProcessingDirectories()\n-     */\n-    private final Set<File> processingDirectories;\n-\n-    private final Map<File, List<ConfigurationListener>> listenersRepository;\n-\n-    public FileSystemDynamicConfiguration() {\n-        this(new File(DEFAULT_CONFIG_CENTER_DIR_PATH));\n-    }\n-\n-    public FileSystemDynamicConfiguration(File rootDirectory) {\n-        this(rootDirectory, DEFAULT_CONFIG_CENTER_ENCODING);\n-    }\n-\n-    public FileSystemDynamicConfiguration(File rootDirectory, String encoding) {\n-        this(rootDirectory, encoding, DEFAULT_THREAD_POOL_PREFIX);\n-    }\n-\n-    public FileSystemDynamicConfiguration(File rootDirectory, String encoding, String threadPoolPrefixName) {\n-        this(rootDirectory, encoding, threadPoolPrefixName, DEFAULT_THREAD_POOL_SIZE);\n-    }\n-\n-    public FileSystemDynamicConfiguration(File rootDirectory, String encoding, String threadPoolPrefixName,\n-                                          int threadPoolSize) {\n-        this(rootDirectory, encoding, threadPoolPrefixName, threadPoolSize, DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME);\n-    }\n-\n-    public FileSystemDynamicConfiguration(File rootDirectory, String encoding,\n-                                          String threadPoolPrefixName,\n-                                          int threadPoolSize,\n-                                          long keepAliveTime) {\n-        super(rootDirectory.getAbsolutePath(), threadPoolPrefixName, threadPoolSize, keepAliveTime, DEFAULT_GROUP, -1L);\n-        this.rootDirectory = rootDirectory;\n-        this.encoding = encoding;\n-        this.processingDirectories = initProcessingDirectories();\n-        this.listenersRepository = new LinkedHashMap<>();\n-    }\n-\n-    public FileSystemDynamicConfiguration(URL url) {\n-        this(initDirectory(url), getEncoding(url), getThreadPoolPrefixName(url), getThreadPoolSize(url),\n-                getThreadPoolKeepAliveTime(url));\n-    }\n-\n-    private Set<File> initProcessingDirectories() {\n-        return isBasedPoolingWatchService() ? new LinkedHashSet<>() : emptySet();\n-    }\n-\n-    public File configFile(String key, String group) {\n-        return new File(buildPathKey(group, key));\n-    }\n-\n-    private void doInListener(String configFilePath, BiConsumer<File, List<ConfigurationListener>> consumer) {\n-        watchService.ifPresent(watchService -> {\n-            File configFile = new File(configFilePath);\n-            executeMutually(configFile.getParentFile(), () -> {\n-                // process the WatchEvents if not start\n-                if (!isProcessingWatchEvents()) {\n-                    processWatchEvents(watchService);\n-                }\n-\n-                List<ConfigurationListener> listeners = getListeners(configFile);\n-                consumer.accept(configFile, listeners);\n-\n-                // Nothing to return\n-                return null;\n-            });\n-        });\n-    }\n-\n-    /**\n-     * Register the Dubbo ShutdownHook\n-     *\n-     * @since 2.7.8\n-     */\n-    private static void registerDubboShutdownHook() {\n-        ShutdownHookCallbacks.INSTANCE.addCallback(() -> {\n-            watchService.ifPresent(w -> {\n-                try {\n-                    w.close();\n-                } catch (IOException e) {\n-                    throw new RuntimeException(e);\n-                }\n-            });\n-            getWatchEventsLoopThreadPool().shutdown();\n-        });\n-    }\n-\n-    private static boolean isProcessingWatchEvents() {\n-        return getWatchEventsLoopThreadPool().getActiveCount() > 0;\n-    }\n-\n-    /**\n-     * Process the {@link WatchEvent WatchEvents} loop in async execution\n-     *\n-     * @param watchService {@link WatchService}\n-     */\n-    private void processWatchEvents(WatchService watchService) {\n-        getWatchEventsLoopThreadPool().execute(() -> { // WatchEvents Loop\n-            while (true) {\n-                WatchKey watchKey = null;\n-                try {\n-                    watchKey = watchService.take();\n-                    if (watchKey.isValid()) {\n-                        for (WatchEvent event : watchKey.pollEvents()) {\n-                            WatchEvent.Kind kind = event.kind();\n-                            // configChangeType's key to match WatchEvent's Kind\n-                            ConfigChangeType configChangeType = CONFIG_CHANGE_TYPES_MAP.get(kind.name());\n-                            if (configChangeType != null) {\n-                                Path configDirectoryPath = (Path) watchKey.watchable();\n-                                Path currentPath = (Path) event.context();\n-                                Path configFilePath = configDirectoryPath.resolve(currentPath);\n-                                File configDirectory = configDirectoryPath.toFile();\n-                                executeMutually(configDirectory, () -> {\n-                                    fireConfigChangeEvent(configDirectory, configFilePath.toFile(), configChangeType);\n-                                    signalConfigDirectory(configDirectory);\n-                                    return null;\n-                                });\n-                            }\n-                        }\n-                    }\n-                } catch (Exception e) {\n-                    return;\n-                } finally {\n-                    if (watchKey != null) {\n-                        // reset\n-                        watchKey.reset();\n-                    }\n-                }\n-            }\n-        });\n-    }\n-\n-    private void signalConfigDirectory(File configDirectory) {\n-        if (isBasedPoolingWatchService()) {\n-            // remove configDirectory from processing set because it's done\n-            removeProcessingDirectory(configDirectory);\n-            // notify configDirectory\n-            notifyProcessingDirectory(configDirectory);\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(format(\"The config rootDirectory[%s] is signalled...\", configDirectory.getName()));\n-            }\n-        }\n-    }\n-\n-    private void removeProcessingDirectory(File configDirectory) {\n-        processingDirectories.remove(configDirectory);\n-    }\n-\n-    private void notifyProcessingDirectory(File configDirectory) {\n-        configDirectory.notifyAll();\n-    }\n-\n-    private List<ConfigurationListener> getListeners(File configFile) {\n-        return listenersRepository.computeIfAbsent(configFile, p -> new LinkedList<>());\n-    }\n-\n-    private void fireConfigChangeEvent(File configDirectory, File configFile, ConfigChangeType configChangeType) {\n-        String key = configFile.getName();\n-        String value = getConfig(configFile);\n-        // fire ConfigChangeEvent one by one\n-        getListeners(configFile).forEach(listener -> {\n-            try {\n-                listener.process(new ConfigChangedEvent(key, configDirectory.getName(), value, configChangeType));\n-            } catch (Throwable e) {\n-                if (logger.isErrorEnabled()) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-        });\n-    }\n-\n-    private boolean canRead(File file) {\n-        return file.exists() && file.canRead();\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return null;\n-    }\n-\n-    @Override\n-    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\n-        return delay(pathKey, configFile -> {\n-            FileUtils.write(configFile, content, getEncoding());\n-            return true;\n-        });\n-    }\n-\n-    @Override\n-    protected String doGetConfig(String pathKey) throws Exception {\n-        File configFile = new File(pathKey);\n-        return getConfig(configFile);\n-    }\n-\n-    @Override\n-    protected boolean doRemoveConfig(String pathKey) throws Exception {\n-        delay(pathKey, configFile -> {\n-            String content = getConfig(configFile);\n-            FileUtils.deleteQuietly(configFile);\n-            return content;\n-        });\n-        return true;\n-    }\n-\n-    @Override\n-    protected Collection<String> doGetConfigKeys(String groupPath) {\n-        File[] files = new File(groupPath).listFiles(File::isFile);\n-        if (files == null) {\n-            return new TreeSet<>();\n-        } else {\n-            return Stream.of(files)\n-                    .map(File::getName)\n-                    .collect(Collectors.toList());\n-        }\n-    }\n-\n-    @Override\n-    protected void doAddListener(String pathKey, ConfigurationListener listener) {\n-        doInListener(pathKey, (configFilePath, listeners) -> {\n-            if (listeners.isEmpty()) { // If no element, it indicates watchService was registered before\n-                ThrowableConsumer.execute(configFilePath, configFile -> {\n-                    FileUtils.forceMkdirParent(configFile);\n-                    // A rootDirectory to be watched\n-                    File configDirectory = configFile.getParentFile();\n-                    if (configDirectory != null) {\n-                        // Register the configDirectory\n-                        configDirectory.toPath().register(watchService.get(), INTEREST_PATH_KINDS, MODIFIERS);\n-                    }\n-                });\n-            }\n-            // Add into cache\n-            listeners.add(listener);\n-        });\n-    }\n-\n-    @Override\n-    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\n-        doInListener(pathKey, (file, listeners) -> {\n-            // Remove into cache\n-            listeners.remove(listener);\n-        });\n-    }\n-\n-    /**\n-     * Delay action for {@link #configFile(String, String) config file}\n-     *\n-     * @param configFilePath the key to represent a configuration\n-     * @param function       the customized {@link Function function} with {@link File}\n-     * @param <V>            the computed value\n-     * @return\n-     */\n-    protected <V> V delay(String configFilePath, ThrowableFunction<File, V> function) {\n-        File configFile = new File(configFilePath);\n-        // Must be based on PoolingWatchService and has listeners under config file\n-        if (isBasedPoolingWatchService()) {\n-            File configDirectory = configFile.getParentFile();\n-            executeMutually(configDirectory, () -> {\n-                if (hasListeners(configFile) && isProcessing(configDirectory)) {\n-                    Integer delay = getDelay();\n-                    if (delay != null) {\n-                        // wait for delay in seconds\n-                        long timeout = SECONDS.toMillis(delay);\n-                        if (logger.isDebugEnabled()) {\n-                            logger.debug(format(\"The config[path : %s] is about to delay in %d ms.\",\n-                                    configFilePath, timeout));\n-                        }\n-                        configDirectory.wait(timeout);\n-                    }\n-                }\n-                addProcessing(configDirectory);\n-                return null;\n-            });\n-        }\n-\n-        V value = null;\n-\n-        try {\n-            value = function.apply(configFile);\n-        } catch (Throwable e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-\n-        return value;\n-    }\n-\n-    private boolean hasListeners(File configFile) {\n-        return getListeners(configFile).size() > 0;\n-    }\n-\n-    /**\n-     * Is processing on {@link #buildGroupPath(String) config rootDirectory}\n-     *\n-     * @param configDirectory {@link #buildGroupPath(String) config rootDirectory}\n-     * @return if processing , return <code>true</code>, or <code>false</code>\n-     */\n-    private boolean isProcessing(File configDirectory) {\n-        return processingDirectories.contains(configDirectory);\n-    }\n-\n-    private void addProcessing(File configDirectory) {\n-        processingDirectories.add(configDirectory);\n-    }\n-\n-    public Set<String> getConfigGroups() {\n-        return Stream.of(getRootDirectory().listFiles())\n-                .filter(File::isDirectory)\n-                .map(File::getName)\n-                .collect(Collectors.toSet());\n-    }\n-\n-    protected String getConfig(File configFile) {\n-        return ThrowableFunction.execute(configFile,\n-                file -> canRead(configFile) ? readFileToString(configFile, getEncoding()) : null);\n-    }\n-\n-    @Override\n-    protected void doClose() throws Exception {\n-\n-    }\n-\n-    public File getRootDirectory() {\n-        return rootDirectory;\n-    }\n-\n-    public String getEncoding() {\n-        return encoding;\n-    }\n-\n-    protected Integer getDelay() {\n-        return DELAY;\n-    }\n-\n-    /**\n-     * It's whether the implementation of {@link WatchService} is based on {@linkplain sun.nio.fs.PollingWatchService}\n-     * or not.\n-     * <p>\n-     *\n-     * @return if based, return <code>true</code>, or <code>false</code>\n-     * @see #detectPoolingBasedWatchService(Optional)\n-     */\n-    protected static boolean isBasedPoolingWatchService() {\n-        return BASED_POOLING_WATCH_SERVICE;\n-    }\n-\n-    protected static ThreadPoolExecutor getWatchEventsLoopThreadPool() {\n-        return WATCH_EVENTS_LOOP_THREAD_POOL;\n-    }\n-\n-    protected ThreadPoolExecutor getWorkersThreadPool() {\n-        return super.getWorkersThreadPool();\n-    }\n-\n-    private <V> V executeMutually(final Object mutex, Callable<V> callable) {\n-        V value = null;\n-        synchronized (mutex) {\n-            try {\n-                value = callable.call();\n-            } catch (Exception e) {\n-                if (logger.isErrorEnabled()) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-        }\n-        return value;\n-    }\n-\n-    private static <T> T[] of(T... values) {\n-        return values;\n-    }\n-\n-    private static Integer initDelay(WatchEvent.Modifier[] modifiers) {\n-        if (isBasedPoolingWatchService()) {\n-            return 2;\n-        } else {\n-            return null;\n-        }\n-    }\n-\n-    private static WatchEvent.Modifier[] initWatchEventModifiers() {\n-        return of();\n-    }\n-\n-    /**\n-     * Detect the argument of {@link WatchService} is based on {@linkplain sun.nio.fs.PollingWatchService}\n-     * or not.\n-     * <p>\n-     * Some platforms do not provide the native implementation of {@link WatchService}, just use\n-     * {@linkplain sun.nio.fs.PollingWatchService} in periodic poll file modifications.\n-     *\n-     * @param watchService the instance of {@link WatchService}\n-     * @return if based, return <code>true</code>, or <code>false</code>\n-     */\n-    private static boolean detectPoolingBasedWatchService(Optional<WatchService> watchService) {\n-        String className = watchService.map(Object::getClass).map(Class::getName).orElse(null);\n-        return POLLING_WATCH_SERVICE_CLASS_NAME.equals(className);\n-    }\n-\n-    private static Optional<WatchService> newWatchService() {\n-        Optional<WatchService> watchService = null;\n-        FileSystem fileSystem = FileSystems.getDefault();\n-        try {\n-            watchService = Optional.of(fileSystem.newWatchService());\n-        } catch (IOException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-            watchService = Optional.empty();\n-        }\n-        return watchService;\n-    }\n-\n-    protected static File initDirectory(URL url) {\n-        String directoryPath = getParameter(url, CONFIG_CENTER_DIR_PARAM_NAME, url == null ? null : url.getPath());\n-        File rootDirectory = null;\n-        if (!StringUtils.isBlank(directoryPath)) {\n-            rootDirectory = new File(\"/\" + directoryPath);\n-        }\n-\n-        if (directoryPath == null || !rootDirectory.exists()) { // If the directory does not exist\n-            rootDirectory = new File(DEFAULT_CONFIG_CENTER_DIR_PATH);\n-        }\n-\n-        if (!rootDirectory.exists() && !rootDirectory.mkdirs()) {\n-            throw new IllegalStateException(format(\"Dubbo config center rootDirectory[%s] can't be created!\",\n-                    rootDirectory.getAbsolutePath()));\n-        }\n-        return rootDirectory;\n-    }\n-\n-    protected static String getEncoding(URL url) {\n-        return getParameter(url, CONFIG_CENTER_ENCODING_PARAM_NAME, DEFAULT_CONFIG_CENTER_ENCODING);\n-    }\n-\n-    private static ThreadPoolExecutor newWatchEventsLoopThreadPool() {\n-        return new ThreadPoolExecutor(THREAD_POOL_SIZE, THREAD_POOL_SIZE,\n-                0L, MILLISECONDS,\n-                new SynchronousQueue(),\n-                new NamedThreadFactory(\"dubbo-config-center-watch-events-loop\", true));\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter.file;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\r\n+import org.apache.dubbo.common.function.ThrowableConsumer;\r\n+import org.apache.dubbo.common.function.ThrowableFunction;\r\n+import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import org.apache.commons.io.FileUtils;\r\n+import org.apache.commons.logging.Log;\r\n+import org.apache.commons.logging.LogFactory;\r\n+\r\n+import java.io.File;\r\n+import java.io.IOException;\r\n+import java.nio.file.FileSystem;\r\n+import java.nio.file.FileSystems;\r\n+import java.nio.file.Path;\r\n+import java.nio.file.WatchEvent;\r\n+import java.nio.file.WatchKey;\r\n+import java.nio.file.WatchService;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.SynchronousQueue;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.function.BiConsumer;\r\n+import java.util.function.Function;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.lang.String.format;\r\n+import static java.nio.file.StandardWatchEventKinds.ENTRY_CREATE;\r\n+import static java.nio.file.StandardWatchEventKinds.ENTRY_DELETE;\r\n+import static java.nio.file.StandardWatchEventKinds.ENTRY_MODIFY;\r\n+import static java.util.Collections.emptySet;\r\n+import static java.util.Collections.unmodifiableMap;\r\n+import static java.util.concurrent.TimeUnit.MILLISECONDS;\r\n+import static java.util.concurrent.TimeUnit.SECONDS;\r\n+import static org.apache.commons.io.FileUtils.readFileToString;\r\n+\r\n+/**\r\n+ * File-System based {@link DynamicConfiguration} implementation\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class FileSystemDynamicConfiguration extends TreePathDynamicConfiguration {\r\n+\r\n+    public static final String CONFIG_CENTER_DIR_PARAM_NAME = PARAM_NAME_PREFIX + \"dir\";\r\n+\r\n+    public static final String CONFIG_CENTER_ENCODING_PARAM_NAME = PARAM_NAME_PREFIX + \"encoding\";\r\n+\r\n+    public static final String DEFAULT_CONFIG_CENTER_DIR_PATH = System.getProperty(\"user.home\") + File.separator\r\n+            + \".dubbo\" + File.separator + \"config-center\";\r\n+\r\n+    public static final int DEFAULT_THREAD_POOL_SIZE = 1;\r\n+\r\n+    public static final String DEFAULT_CONFIG_CENTER_ENCODING = \"UTF-8\";\r\n+\r\n+    private static final WatchEvent.Kind[] INTEREST_PATH_KINDS = of(ENTRY_CREATE, ENTRY_DELETE, ENTRY_MODIFY);\r\n+\r\n+    /**\r\n+     * The class name of {@linkplain sun.nio.fs.PollingWatchService}\r\n+     */\r\n+    private static final String POLLING_WATCH_SERVICE_CLASS_NAME = \"sun.nio.fs.PollingWatchService\";\r\n+\r\n+    private static final int THREAD_POOL_SIZE = 1;\r\n+\r\n+    /**\r\n+     * Logger\r\n+     */\r\n+    private static final Log logger = LogFactory.getLog(FileSystemDynamicConfiguration.class);\r\n+\r\n+\r\n+    /**\r\n+     * The unmodifiable map for {@link ConfigChangeType} whose key is the {@link WatchEvent.Kind#name() name} of\r\n+     * {@link WatchEvent.Kind WatchEvent's Kind}\r\n+     */\r\n+    private static final Map<String, ConfigChangeType> CONFIG_CHANGE_TYPES_MAP =\r\n+            unmodifiableMap(new HashMap<String, ConfigChangeType>() {\r\n+                // Initializes the elements that is mapping ConfigChangeType\r\n+                {\r\n+                    put(ENTRY_CREATE.name(), ConfigChangeType.ADDED);\r\n+                    put(ENTRY_DELETE.name(), ConfigChangeType.DELETED);\r\n+                    put(ENTRY_MODIFY.name(), ConfigChangeType.MODIFIED);\r\n+                }\r\n+            });\r\n+\r\n+    private static final Optional<WatchService> watchService;\r\n+\r\n+    /**\r\n+     * Is Pooling Based Watch Service\r\n+     *\r\n+     * @see #detectPoolingBasedWatchService(Optional)\r\n+     */\r\n+    private static final boolean BASED_POOLING_WATCH_SERVICE;\r\n+\r\n+    private static final WatchEvent.Modifier[] MODIFIERS;\r\n+\r\n+    /**\r\n+     * the delay to action in seconds. If null, execute indirectly\r\n+     */\r\n+    private static final Integer DELAY;\r\n+\r\n+    /**\r\n+     * The thread pool for {@link WatchEvent WatchEvents} loop\r\n+     * It's optional if there is not any {@link ConfigurationListener} registration\r\n+     *\r\n+     * @see ThreadPoolExecutor\r\n+     */\r\n+    private static final ThreadPoolExecutor WATCH_EVENTS_LOOP_THREAD_POOL;\r\n+\r\n+    // static initialization\r\n+    static {\r\n+        watchService = newWatchService();\r\n+        BASED_POOLING_WATCH_SERVICE = detectPoolingBasedWatchService(watchService);\r\n+        MODIFIERS = initWatchEventModifiers();\r\n+        DELAY = initDelay(MODIFIERS);\r\n+        WATCH_EVENTS_LOOP_THREAD_POOL = newWatchEventsLoopThreadPool();\r\n+        registerDubboShutdownHook();\r\n+    }\r\n+\r\n+    /**\r\n+     * The Root Directory for config center\r\n+     */\r\n+    private final File rootDirectory;\r\n+\r\n+    private final String encoding;\r\n+\r\n+    /**\r\n+     * The {@link Set} of {@link #groupDirectory(String) directories} that may be processing,\r\n+     * <p>\r\n+     * if {@link #isBasedPoolingWatchService()} is <code>false</code>, this properties will be\r\n+     * {@link Collections#emptySet() empty}\r\n+     *\r\n+     * @see #initProcessingDirectories()\r\n+     */\r\n+    private final Set<File> processingDirectories;\r\n+\r\n+    private final Map<File, List<ConfigurationListener>> listenersRepository;\r\n+\r\n+    public FileSystemDynamicConfiguration() {\r\n+        this(new File(DEFAULT_CONFIG_CENTER_DIR_PATH));\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(File rootDirectory) {\r\n+        this(rootDirectory, DEFAULT_CONFIG_CENTER_ENCODING);\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(File rootDirectory, String encoding) {\r\n+        this(rootDirectory, encoding, DEFAULT_THREAD_POOL_PREFIX);\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(File rootDirectory, String encoding, String threadPoolPrefixName) {\r\n+        this(rootDirectory, encoding, threadPoolPrefixName, DEFAULT_THREAD_POOL_SIZE);\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(File rootDirectory, String encoding, String threadPoolPrefixName,\r\n+                                          int threadPoolSize) {\r\n+        this(rootDirectory, encoding, threadPoolPrefixName, threadPoolSize, DEFAULT_THREAD_POOL_KEEP_ALIVE_TIME);\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(File rootDirectory, String encoding,\r\n+                                          String threadPoolPrefixName,\r\n+                                          int threadPoolSize,\r\n+                                          long keepAliveTime) {\r\n+        super(rootDirectory.getAbsolutePath(), threadPoolPrefixName, threadPoolSize, keepAliveTime, DEFAULT_GROUP, -1L);\r\n+        this.rootDirectory = rootDirectory;\r\n+        this.encoding = encoding;\r\n+        this.processingDirectories = initProcessingDirectories();\r\n+        this.listenersRepository = new LinkedHashMap<>();\r\n+    }\r\n+\r\n+    public FileSystemDynamicConfiguration(URL url) {\r\n+        this(initDirectory(url), getEncoding(url), getThreadPoolPrefixName(url), getThreadPoolSize(url),\r\n+                getThreadPoolKeepAliveTime(url));\r\n+    }\r\n+\r\n+    private Set<File> initProcessingDirectories() {\r\n+        return isBasedPoolingWatchService() ? new LinkedHashSet<>() : emptySet();\r\n+    }\r\n+\r\n+    public File configFile(String key, String group) {\r\n+        return new File(buildPathKey(group, key));\r\n+    }\r\n+\r\n+    private void doInListener(String configFilePath, BiConsumer<File, List<ConfigurationListener>> consumer) {\r\n+        watchService.ifPresent(watchService -> {\r\n+            File configFile = new File(configFilePath);\r\n+            executeMutually(configFile.getParentFile(), () -> {\r\n+                // process the WatchEvents if not start\r\n+                if (!isProcessingWatchEvents()) {\r\n+                    processWatchEvents(watchService);\r\n+                }\r\n+\r\n+                List<ConfigurationListener> listeners = getListeners(configFile);\r\n+                consumer.accept(configFile, listeners);\r\n+\r\n+                // Nothing to return\r\n+                return null;\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Register the Dubbo ShutdownHook\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    private static void registerDubboShutdownHook() {\r\n+        ShutdownHookCallbacks.INSTANCE.addCallback(() -> {\r\n+            watchService.ifPresent(w -> {\r\n+                try {\r\n+                    w.close();\r\n+                } catch (IOException e) {\r\n+                    throw new RuntimeException(e);\r\n+                }\r\n+            });\r\n+            getWatchEventsLoopThreadPool().shutdown();\r\n+        });\r\n+    }\r\n+\r\n+    private static boolean isProcessingWatchEvents() {\r\n+        return getWatchEventsLoopThreadPool().getActiveCount() > 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * Process the {@link WatchEvent WatchEvents} loop in async execution\r\n+     *\r\n+     * @param watchService {@link WatchService}\r\n+     */\r\n+    private void processWatchEvents(WatchService watchService) {\r\n+        getWatchEventsLoopThreadPool().execute(() -> { // WatchEvents Loop\r\n+            while (true) {\r\n+                WatchKey watchKey = null;\r\n+                try {\r\n+                    watchKey = watchService.take();\r\n+                    if (watchKey.isValid()) {\r\n+                        for (WatchEvent event : watchKey.pollEvents()) {\r\n+                            WatchEvent.Kind kind = event.kind();\r\n+                            // configChangeType's key to match WatchEvent's Kind\r\n+                            ConfigChangeType configChangeType = CONFIG_CHANGE_TYPES_MAP.get(kind.name());\r\n+                            if (configChangeType != null) {\r\n+                                Path configDirectoryPath = (Path) watchKey.watchable();\r\n+                                Path currentPath = (Path) event.context();\r\n+                                Path configFilePath = configDirectoryPath.resolve(currentPath);\r\n+                                File configDirectory = configDirectoryPath.toFile();\r\n+                                executeMutually(configDirectory, () -> {\r\n+                                    fireConfigChangeEvent(configDirectory, configFilePath.toFile(), configChangeType);\r\n+                                    signalConfigDirectory(configDirectory);\r\n+                                    return null;\r\n+                                });\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    return;\r\n+                } finally {\r\n+                    if (watchKey != null) {\r\n+                        // reset\r\n+                        watchKey.reset();\r\n+                    }\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private void signalConfigDirectory(File configDirectory) {\r\n+        if (isBasedPoolingWatchService()) {\r\n+            // remove configDirectory from processing set because it's done\r\n+            removeProcessingDirectory(configDirectory);\r\n+            // notify configDirectory\r\n+            notifyProcessingDirectory(configDirectory);\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(format(\"The config rootDirectory[%s] is signalled...\", configDirectory.getName()));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void removeProcessingDirectory(File configDirectory) {\r\n+        processingDirectories.remove(configDirectory);\r\n+    }\r\n+\r\n+    private void notifyProcessingDirectory(File configDirectory) {\r\n+        configDirectory.notifyAll();\r\n+    }\r\n+\r\n+    private List<ConfigurationListener> getListeners(File configFile) {\r\n+        return listenersRepository.computeIfAbsent(configFile, p -> new LinkedList<>());\r\n+    }\r\n+\r\n+    private void fireConfigChangeEvent(File configDirectory, File configFile, ConfigChangeType configChangeType) {\r\n+        String key = configFile.getName();\r\n+        String value = getConfig(configFile);\r\n+        // fire ConfigChangeEvent one by one\r\n+        getListeners(configFile).forEach(listener -> {\r\n+            try {\r\n+                listener.process(new ConfigChangedEvent(key, configDirectory.getName(), value, configChangeType));\r\n+            } catch (Throwable e) {\r\n+                if (logger.isErrorEnabled()) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private boolean canRead(File file) {\r\n+        return file.exists() && file.canRead();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\r\n+        return delay(pathKey, configFile -> {\r\n+            FileUtils.write(configFile, content, getEncoding());\r\n+            return true;\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetConfig(String pathKey) throws Exception {\r\n+        File configFile = new File(pathKey);\r\n+        return getConfig(configFile);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doRemoveConfig(String pathKey) throws Exception {\r\n+        delay(pathKey, configFile -> {\r\n+            String content = getConfig(configFile);\r\n+            FileUtils.deleteQuietly(configFile);\r\n+            return content;\r\n+        });\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Collection<String> doGetConfigKeys(String groupPath) {\r\n+        File[] files = new File(groupPath).listFiles(File::isFile);\r\n+        if (files == null) {\r\n+            return new TreeSet<>();\r\n+        } else {\r\n+            return Stream.of(files)\r\n+                    .map(File::getName)\r\n+                    .collect(Collectors.toList());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doAddListener(String pathKey, ConfigurationListener listener) {\r\n+        doInListener(pathKey, (configFilePath, listeners) -> {\r\n+            if (listeners.isEmpty()) { // If no element, it indicates watchService was registered before\r\n+                ThrowableConsumer.execute(configFilePath, configFile -> {\r\n+                    FileUtils.forceMkdirParent(configFile);\r\n+                    // A rootDirectory to be watched\r\n+                    File configDirectory = configFile.getParentFile();\r\n+                    if (configDirectory != null) {\r\n+                        // Register the configDirectory\r\n+                        configDirectory.toPath().register(watchService.get(), INTEREST_PATH_KINDS, MODIFIERS);\r\n+                    }\r\n+                });\r\n+            }\r\n+            // Add into cache\r\n+            listeners.add(listener);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\r\n+        doInListener(pathKey, (file, listeners) -> {\r\n+            // Remove into cache\r\n+            listeners.remove(listener);\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Delay action for {@link #configFile(String, String) config file}\r\n+     *\r\n+     * @param configFilePath the key to represent a configuration\r\n+     * @param function       the customized {@link Function function} with {@link File}\r\n+     * @param <V>            the computed value\r\n+     * @return\r\n+     */\r\n+    protected <V> V delay(String configFilePath, ThrowableFunction<File, V> function) {\r\n+        File configFile = new File(configFilePath);\r\n+        // Must be based on PoolingWatchService and has listeners under config file\r\n+        if (isBasedPoolingWatchService()) {\r\n+            File configDirectory = configFile.getParentFile();\r\n+            executeMutually(configDirectory, () -> {\r\n+                if (hasListeners(configFile) && isProcessing(configDirectory)) {\r\n+                    Integer delay = getDelay();\r\n+                    if (delay != null) {\r\n+                        // wait for delay in seconds\r\n+                        long timeout = SECONDS.toMillis(delay);\r\n+                        if (logger.isDebugEnabled()) {\r\n+                            logger.debug(format(\"The config[path : %s] is about to delay in %d ms.\",\r\n+                                    configFilePath, timeout));\r\n+                        }\r\n+                        configDirectory.wait(timeout);\r\n+                    }\r\n+                }\r\n+                addProcessing(configDirectory);\r\n+                return null;\r\n+            });\r\n+        }\r\n+\r\n+        V value = null;\r\n+\r\n+        try {\r\n+            value = function.apply(configFile);\r\n+        } catch (Throwable e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        return value;\r\n+    }\r\n+\r\n+    private boolean hasListeners(File configFile) {\r\n+        return getListeners(configFile).size() > 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * Is processing on {@link #buildGroupPath(String) config rootDirectory}\r\n+     *\r\n+     * @param configDirectory {@link #buildGroupPath(String) config rootDirectory}\r\n+     * @return if processing , return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    private boolean isProcessing(File configDirectory) {\r\n+        return processingDirectories.contains(configDirectory);\r\n+    }\r\n+\r\n+    private void addProcessing(File configDirectory) {\r\n+        processingDirectories.add(configDirectory);\r\n+    }\r\n+\r\n+    public Set<String> getConfigGroups() {\r\n+        return Stream.of(getRootDirectory().listFiles())\r\n+                .filter(File::isDirectory)\r\n+                .map(File::getName)\r\n+                .collect(Collectors.toSet());\r\n+    }\r\n+\r\n+    protected String getConfig(File configFile) {\r\n+        return ThrowableFunction.execute(configFile,\r\n+                file -> canRead(configFile) ? readFileToString(configFile, getEncoding()) : null);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Exception {\r\n+\r\n+    }\r\n+\r\n+    public File getRootDirectory() {\r\n+        return rootDirectory;\r\n+    }\r\n+\r\n+    public String getEncoding() {\r\n+        return encoding;\r\n+    }\r\n+\r\n+    protected Integer getDelay() {\r\n+        return DELAY;\r\n+    }\r\n+\r\n+    /**\r\n+     * It's whether the implementation of {@link WatchService} is based on {@linkplain sun.nio.fs.PollingWatchService}\r\n+     * or not.\r\n+     * <p>\r\n+     *\r\n+     * @return if based, return <code>true</code>, or <code>false</code>\r\n+     * @see #detectPoolingBasedWatchService(Optional)\r\n+     */\r\n+    protected static boolean isBasedPoolingWatchService() {\r\n+        return BASED_POOLING_WATCH_SERVICE;\r\n+    }\r\n+\r\n+    protected static ThreadPoolExecutor getWatchEventsLoopThreadPool() {\r\n+        return WATCH_EVENTS_LOOP_THREAD_POOL;\r\n+    }\r\n+\r\n+    protected ThreadPoolExecutor getWorkersThreadPool() {\r\n+        return super.getWorkersThreadPool();\r\n+    }\r\n+\r\n+    private <V> V executeMutually(final Object mutex, Callable<V> callable) {\r\n+        V value = null;\r\n+        synchronized (mutex) {\r\n+            try {\r\n+                value = callable.call();\r\n+            } catch (Exception e) {\r\n+                if (logger.isErrorEnabled()) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    private static <T> T[] of(T... values) {\r\n+        return values;\r\n+    }\r\n+\r\n+    private static Integer initDelay(WatchEvent.Modifier[] modifiers) {\r\n+        if (isBasedPoolingWatchService()) {\r\n+            return 2;\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    private static WatchEvent.Modifier[] initWatchEventModifiers() {\r\n+        return of();\r\n+    }\r\n+\r\n+    /**\r\n+     * Detect the argument of {@link WatchService} is based on {@linkplain sun.nio.fs.PollingWatchService}\r\n+     * or not.\r\n+     * <p>\r\n+     * Some platforms do not provide the native implementation of {@link WatchService}, just use\r\n+     * {@linkplain sun.nio.fs.PollingWatchService} in periodic poll file modifications.\r\n+     *\r\n+     * @param watchService the instance of {@link WatchService}\r\n+     * @return if based, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    private static boolean detectPoolingBasedWatchService(Optional<WatchService> watchService) {\r\n+        String className = watchService.map(Object::getClass).map(Class::getName).orElse(null);\r\n+        return POLLING_WATCH_SERVICE_CLASS_NAME.equals(className);\r\n+    }\r\n+\r\n+    private static Optional<WatchService> newWatchService() {\r\n+        Optional<WatchService> watchService = null;\r\n+        FileSystem fileSystem = FileSystems.getDefault();\r\n+        try {\r\n+            watchService = Optional.of(fileSystem.newWatchService());\r\n+        } catch (IOException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+            watchService = Optional.empty();\r\n+        }\r\n+        return watchService;\r\n+    }\r\n+\r\n+    protected static File initDirectory(URL url) {\r\n+        String directoryPath = getParameter(url, CONFIG_CENTER_DIR_PARAM_NAME, url == null ? null : url.getPath());\r\n+        File rootDirectory = null;\r\n+        if (!StringUtils.isBlank(directoryPath)) {\r\n+            rootDirectory = new File(\"/\" + directoryPath);\r\n+        }\r\n+\r\n+        if (directoryPath == null || !rootDirectory.exists()) { // If the directory does not exist\r\n+            rootDirectory = new File(DEFAULT_CONFIG_CENTER_DIR_PATH);\r\n+        }\r\n+\r\n+        if (!rootDirectory.exists() && !rootDirectory.mkdirs()) {\r\n+            throw new IllegalStateException(format(\"Dubbo config center rootDirectory[%s] can't be created!\",\r\n+                    rootDirectory.getAbsolutePath()));\r\n+        }\r\n+        return rootDirectory;\r\n+    }\r\n+\r\n+    protected static String getEncoding(URL url) {\r\n+        return getParameter(url, CONFIG_CENTER_ENCODING_PARAM_NAME, DEFAULT_CONFIG_CENTER_ENCODING);\r\n+    }\r\n+\r\n+    private static ThreadPoolExecutor newWatchEventsLoopThreadPool() {\r\n+        return new ThreadPoolExecutor(THREAD_POOL_SIZE, THREAD_POOL_SIZE,\r\n+                0L, MILLISECONDS,\r\n+                new SynchronousQueue(),\r\n+                new NamedThreadFactory(\"dubbo-config-center-watch-events-loop\", true));\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/common/config/configcenter/file/FileSystemDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter.file;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;\n-\n-/**\n- * File-System based {@link DynamicConfigurationFactory} implementation\n- *\n- * @since 2.7.5\n- */\n-public class FileSystemDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new FileSystemDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter.file;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;\r\n+\r\n+/**\r\n+ * File-System based {@link DynamicConfigurationFactory} implementation\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class FileSystemDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new FileSystemDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter.nop;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-import java.util.SortedSet;\n-\n-/**\n- * The default extension of {@link DynamicConfiguration}. If user does not specify a config center, or specifies one\n- * that is not a valid extension, it will default to this one.\n- */\n-@Deprecated\n-public class NopDynamicConfiguration implements DynamicConfiguration {\n-\n-    public NopDynamicConfiguration(URL url) {\n-        // no-op\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return null;\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        // no-op\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        // no-op\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        // no-op\n-        return null;\n-    }\n-\n-    /**\n-     * @since 2.7.5\n-     */\n-    @Override\n-    public boolean publishConfig(String key, String group, String content) {\n-        return true;\n-    }\n-\n-    /**\n-     * @since 2.7.5\n-     */\n-    @Override\n-    public SortedSet<String> getConfigKeys(String group) {\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter.nop;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+import java.util.SortedSet;\r\n+\r\n+/**\r\n+ * The default extension of {@link DynamicConfiguration}. If user does not specify a config center, or specifies one\r\n+ * that is not a valid extension, it will default to this one.\r\n+ */\r\n+@Deprecated\r\n+public class NopDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    public NopDynamicConfiguration(URL url) {\r\n+        // no-op\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        // no-op\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        // no-op\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        // no-op\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * @since 2.7.5\r\n+     */\r\n+    @Override\r\n+    public boolean publishConfig(String key, String group, String content) {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * @since 2.7.5\r\n+     */\r\n+    @Override\r\n+    public SortedSet<String> getConfigKeys(String group) {\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/common/config/configcenter/nop/NopDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter.nop;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- *\n- */\n-@Deprecated\n-public class NopDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new NopDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter.nop;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+@Deprecated\r\n+public class NopDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new NopDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/config/configcenter/wrapper/CompositeDynamicConfiguration.java", "source2": "org/apache/dubbo/common/config/configcenter/wrapper/CompositeDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,101 +1,101 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.config.configcenter.wrapper;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-import java.util.HashSet;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.function.Consumer;\n-import java.util.function.Function;\n-\n-/**\n- * support multiple config center, simply iterating each concrete config center.\n- */\n-public class CompositeDynamicConfiguration implements DynamicConfiguration {\n-\n-    public static final String NAME = \"COMPOSITE\";\n-\n-    private Set<DynamicConfiguration> configurations = new HashSet<>();\n-\n-    public void addConfiguration(DynamicConfiguration configuration) {\n-        if (configuration != null) {\n-            this.configurations.add(configuration);\n-        }\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        iterateListenerOperation(configuration -> configuration.addListener(key, group, listener));\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        iterateListenerOperation(configuration -> configuration.removeListener(key, group, listener));\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        return (String) iterateConfigOperation(configuration -> configuration.getConfig(key, group, timeout));\n-    }\n-\n-    @Override\n-    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\n-        return (String) iterateConfigOperation(configuration -> configuration.getProperties(key, group, timeout));\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return iterateConfigOperation(configuration -> configuration.getInternalProperty(key));\n-    }\n-\n-    @Override\n-    public boolean publishConfig(String key, String group, String content) throws UnsupportedOperationException {\n-        boolean publishedAll = true;\n-        for (DynamicConfiguration configuration : configurations) {\n-            if (!configuration.publishConfig(key, group, content)) {\n-                publishedAll = false;\n-            }\n-        }\n-        return publishedAll;\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\n-        return (SortedSet<String>) iterateConfigOperation(configuration -> configuration.getConfigKeys(group));\n-    }\n-\n-    private void iterateListenerOperation(Consumer<DynamicConfiguration> consumer) {\n-        for (DynamicConfiguration configuration : configurations) {\n-            consumer.accept(configuration);\n-        }\n-    }\n-\n-    private Object iterateConfigOperation(Function<DynamicConfiguration, Object> func) {\n-        Object value = null;\n-        for (DynamicConfiguration configuration : configurations) {\n-            value = func.apply(configuration);\n-            if (value != null) {\n-                break;\n-            }\n-        }\n-        return value;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.config.configcenter.wrapper;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.function.Consumer;\r\n+import java.util.function.Function;\r\n+\r\n+/**\r\n+ * support multiple config center, simply iterating each concrete config center.\r\n+ */\r\n+public class CompositeDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    public static final String NAME = \"COMPOSITE\";\r\n+\r\n+    private Set<DynamicConfiguration> configurations = new HashSet<>();\r\n+\r\n+    public void addConfiguration(DynamicConfiguration configuration) {\r\n+        if (configuration != null) {\r\n+            this.configurations.add(configuration);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        iterateListenerOperation(configuration -> configuration.addListener(key, group, listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        iterateListenerOperation(configuration -> configuration.removeListener(key, group, listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        return (String) iterateConfigOperation(configuration -> configuration.getConfig(key, group, timeout));\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\r\n+        return (String) iterateConfigOperation(configuration -> configuration.getProperties(key, group, timeout));\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return iterateConfigOperation(configuration -> configuration.getInternalProperty(key));\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean publishConfig(String key, String group, String content) throws UnsupportedOperationException {\r\n+        boolean publishedAll = true;\r\n+        for (DynamicConfiguration configuration : configurations) {\r\n+            if (!configuration.publishConfig(key, group, content)) {\r\n+                publishedAll = false;\r\n+            }\r\n+        }\r\n+        return publishedAll;\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public SortedSet<String> getConfigKeys(String group) throws UnsupportedOperationException {\r\n+        return (SortedSet<String>) iterateConfigOperation(configuration -> configuration.getConfigKeys(group));\r\n+    }\r\n+\r\n+    private void iterateListenerOperation(Consumer<DynamicConfiguration> consumer) {\r\n+        for (DynamicConfiguration configuration : configurations) {\r\n+            consumer.accept(configuration);\r\n+        }\r\n+    }\r\n+\r\n+    private Object iterateConfigOperation(Function<DynamicConfiguration, Object> func) {\r\n+        Object value = null;\r\n+        for (DynamicConfiguration configuration : configurations) {\r\n+            value = func.apply(configuration);\r\n+            if (value != null) {\r\n+                break;\r\n+            }\r\n+        }\r\n+        return value;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/constants/CommonConstants.java", "source2": "org/apache/dubbo/common/constants/CommonConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,393 +1,393 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.constants;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.net.NetworkInterface;\n-import java.util.Properties;\n-import java.util.concurrent.ExecutorService;\n-import java.util.regex.Pattern;\n-\n-public interface CommonConstants {\n-    String DUBBO = \"dubbo\";\n-\n-    String PROVIDER = \"provider\";\n-\n-    String CONSUMER = \"consumer\";\n-\n-    String APPLICATION_KEY = \"application\";\n-\n-    String REMOTE_APPLICATION_KEY = \"remote.application\";\n-\n-    String ENABLED_KEY = \"enabled\";\n-\n-    String DISABLED_KEY = \"disabled\";\n-\n-    String DUBBO_PROPERTIES_KEY = \"dubbo.properties.file\";\n-\n-    String DEFAULT_DUBBO_PROPERTIES = \"dubbo.properties\";\n-\n-    String ANY_VALUE = \"*\";\n-\n-    /**\n-     * @since 2.7.8\n-     */\n-    char COMMA_SEPARATOR_CHAR = ',';\n-\n-    String COMMA_SEPARATOR = \",\";\n-\n-    String DOT_SEPARATOR = \".\";\n-\n-    Pattern COMMA_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[,]+\\\\s*\");\n-\n-    String PATH_SEPARATOR = \"/\";\n-\n-    String PROTOCOL_SEPARATOR = \"://\";\n-\n-    String PROTOCOL_SEPARATOR_ENCODED = URL.encode(PROTOCOL_SEPARATOR);\n-\n-    String REGISTRY_SEPARATOR = \"|\";\n-\n-    Pattern REGISTRY_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|;]+\\\\s*\");\n-\n-    Pattern D_REGISTRY_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|]+\\\\s*\");\n-\n-    String SEMICOLON_SEPARATOR = \";\";\n-\n-    Pattern SEMICOLON_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[;]+\\\\s*\");\n-\n-    Pattern EQUAL_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[=]+\\\\s*\");\n-\n-    Pattern COLON_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[:]+\\\\s*\");\n-\n-    String DEFAULT_PROXY = \"javassist\";\n-\n-    String DEFAULT_DIRECTORY = \"dubbo\";\n-\n-    String PROTOCOL_KEY = \"protocol\";\n-\n-    String DEFAULT_PROTOCOL = \"dubbo\";\n-\n-    String DEFAULT_THREAD_NAME = \"Dubbo\";\n-\n-    int DEFAULT_CORE_THREADS = 0;\n-\n-    int DEFAULT_THREADS = 200;\n-\n-    String EXECUTOR_SERVICE_COMPONENT_KEY = ExecutorService.class.getName();\n-\n-    String THREADPOOL_KEY = \"threadpool\";\n-\n-    String THREAD_NAME_KEY = \"threadname\";\n-\n-    String CORE_THREADS_KEY = \"corethreads\";\n-\n-    String THREADS_KEY = \"threads\";\n-\n-    String QUEUES_KEY = \"queues\";\n-\n-    String ALIVE_KEY = \"alive\";\n-\n-    String DEFAULT_THREADPOOL = \"limited\";\n-\n-    String DEFAULT_CLIENT_THREADPOOL = \"cached\";\n-\n-    String IO_THREADS_KEY = \"iothreads\";\n-\n-    String KEEP_ALIVE_KEY = \"keep.alive\";\n-\n-    int DEFAULT_QUEUES = 0;\n-\n-    int DEFAULT_ALIVE = 60 * 1000;\n-\n-    String TIMEOUT_KEY = \"timeout\";\n-\n-    int DEFAULT_TIMEOUT = 1000;\n-\n-    // used by invocation attachments to transfer timeout from Consumer to Provider.\n-    // works as a replacement of TIMEOUT_KEY on wire, which seems to be totally useless in previous releases).\n-    String TIMEOUT_ATTACHMENT_KEY = \"_TO\";\n-\n-    String TIME_COUNTDOWN_KEY = \"timeout-countdown\";\n-\n-    String ENABLE_TIMEOUT_COUNTDOWN_KEY = \"enable-timeout-countdown\";\n-\n-    String REMOVE_VALUE_PREFIX = \"-\";\n-\n-    String PROPERTIES_CHAR_SEPARATOR = \"-\";\n-\n-    String UNDERLINE_SEPARATOR = \"_\";\n-\n-    String SEPARATOR_REGEX = \"_|-\";\n-\n-    String GROUP_CHAR_SEPARATOR = \":\";\n-\n-    String HIDDEN_KEY_PREFIX = \".\";\n-\n-    String DOT_REGEX = \"\\\\.\";\n-\n-    String DEFAULT_KEY_PREFIX = \"default.\";\n-\n-    String DEFAULT_KEY = \"default\";\n-\n-    String PREFERRED_KEY = \"preferred\";\n-\n-    /**\n-     * Default timeout value in milliseconds for server shutdown\n-     */\n-    int DEFAULT_SERVER_SHUTDOWN_TIMEOUT = 10000;\n-\n-    String SIDE_KEY = \"side\";\n-\n-    String PROVIDER_SIDE = \"provider\";\n-\n-    String CONSUMER_SIDE = \"consumer\";\n-\n-    String ANYHOST_KEY = \"anyhost\";\n-\n-    String ANYHOST_VALUE = \"0.0.0.0\";\n-\n-    String LOCALHOST_KEY = \"localhost\";\n-\n-    String LOCALHOST_VALUE = \"127.0.0.1\";\n-\n-    String METHODS_KEY = \"methods\";\n-\n-    String METHOD_KEY = \"method\";\n-\n-    String PID_KEY = \"pid\";\n-\n-    String TIMESTAMP_KEY = \"timestamp\";\n-\n-    String GROUP_KEY = \"group\";\n-\n-    String PATH_KEY = \"path\";\n-\n-    String INTERFACE_KEY = \"interface\";\n-\n-    String FILE_KEY = \"file\";\n-\n-    String DUMP_DIRECTORY = \"dump.directory\";\n-\n-    String CLASSIFIER_KEY = \"classifier\";\n-\n-    String VERSION_KEY = \"version\";\n-\n-    String REVISION_KEY = \"revision\";\n-\n-    String METADATA_KEY = \"metadata-type\";\n-\n-    String MAPPING_KEY = \"mapping-type\";\n-\n-    String CONFIG_MAPPING_TYPE = \"config\";\n-\n-    String METADATA_MAPPING_TYPE = \"metadata\";\n-\n-    String DEFAULT_METADATA_STORAGE_TYPE = \"local\";\n-\n-    String REMOTE_METADATA_STORAGE_TYPE = \"remote\";\n-\n-    /**\n-     * The composite metadata storage type includes {@link #DEFAULT_METADATA_STORAGE_TYPE \"local\"} and\n-     * {@link #REMOTE_METADATA_STORAGE_TYPE \"remote\"}.\n-     *\n-     * @since 2.7.8\n-     */\n-    String COMPOSITE_METADATA_STORAGE_TYPE = \"composite\";\n-\n-    /**\n-     * Consumer side 's proxy class\n-     */\n-    String PROXY_CLASS_REF = \"refClass\";\n-\n-    /**\n-     * generic call\n-     */\n-    String $INVOKE = \"$invoke\";\n-    String $INVOKE_ASYNC = \"$invokeAsync\";\n-    String GENERIC_PARAMETER_DESC = \"Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Object;\";\n-\n-    /**\n-     * package version in the manifest\n-     */\n-    String RELEASE_KEY = \"release\";\n-\n-    int MAX_PROXY_COUNT = 65535;\n-\n-    String MONITOR_KEY = \"monitor\";\n-    String CLUSTER_KEY = \"cluster\";\n-    String USERNAME_KEY = \"username\";\n-    String PASSWORD_KEY = \"password\";\n-    String HOST_KEY = \"host\";\n-    String PORT_KEY = \"port\";\n-    String DUBBO_IP_TO_BIND = \"DUBBO_IP_TO_BIND\";\n-\n-    /**\n-     * The property name for {@link NetworkInterface#getDisplayName() the name of network interface} that\n-     * the Dubbo application prefers\n-     *\n-     * @since 2.7.6\n-     */\n-    String DUBBO_PREFERRED_NETWORK_INTERFACE = \"dubbo.network.interface.preferred\";\n-\n-    @Deprecated\n-    String SHUTDOWN_WAIT_SECONDS_KEY = \"dubbo.service.shutdown.wait.seconds\";\n-    String SHUTDOWN_WAIT_KEY = \"dubbo.service.shutdown.wait\";\n-    String DUBBO_PROTOCOL = \"dubbo\";\n-\n-    String DUBBO_LABELS = \"dubbo.labels\";\n-    String DUBBO_ENV_KEYS = \"dubbo.env.keys\";\n-\n-    String CONFIG_CONFIGFILE_KEY = \"config-file\";\n-    String CONFIG_ENABLE_KEY = \"highest-priority\";\n-    String CONFIG_NAMESPACE_KEY = \"namespace\";\n-    String CHECK_KEY = \"check\";\n-\n-    String BACKLOG_KEY = \"backlog\";\n-\n-    String HEARTBEAT_EVENT = null;\n-    String MOCK_HEARTBEAT_EVENT = \"H\";\n-    String READONLY_EVENT = \"R\";\n-\n-    String REFERENCE_FILTER_KEY = \"reference.filter\";\n-\n-    String INVOKER_LISTENER_KEY = \"invoker.listener\";\n-\n-    String DUBBO_VERSION_KEY = \"dubbo\";\n-\n-    String TAG_KEY = \"dubbo.tag\";\n-\n-    /**\n-     * To decide whether to make connection when the client is created\n-     */\n-    String LAZY_CONNECT_KEY = \"lazy\";\n-\n-    String STUB_EVENT_KEY = \"dubbo.stub.event\";\n-\n-    String REFERENCE_INTERCEPTOR_KEY = \"reference.interceptor\";\n-\n-    String SERVICE_FILTER_KEY = \"service.filter\";\n-\n-    String EXPORTER_LISTENER_KEY = \"exporter.listener\";\n-\n-    String METRICS_PORT = \"metrics.port\";\n-\n-    String METRICS_PROTOCOL = \"metrics.protocol\";\n-\n-    /**\n-     * After simplify the registry, should add some parameter individually for provider.\n-     *\n-     * @since 2.7.0\n-     */\n-    String EXTRA_KEYS_KEY = \"extra-keys\";\n-\n-    String GENERIC_SERIALIZATION_NATIVE_JAVA = \"nativejava\";\n-\n-    String GENERIC_SERIALIZATION_DEFAULT = \"true\";\n-\n-    String GENERIC_SERIALIZATION_BEAN = \"bean\";\n-\n-    String GENERIC_RAW_RETURN = \"raw.return\";\n-\n-    String GENERIC_SERIALIZATION_PROTOBUF = \"protobuf-json\";\n-\n-    String GENERIC_WITH_CLZ_KEY = \"generic.include.class\";\n-\n-    /**\n-     * The limit of callback service instances for one interface on every client\n-     */\n-    String CALLBACK_INSTANCES_LIMIT_KEY = \"callbacks\";\n-\n-    /**\n-     * The default limit number for callback service instances\n-     *\n-     * @see #CALLBACK_INSTANCES_LIMIT_KEY\n-     */\n-    int DEFAULT_CALLBACK_INSTANCES = 1;\n-\n-    String LOADBALANCE_KEY = \"loadbalance\";\n-\n-    String DEFAULT_LOADBALANCE = \"random\";\n-\n-    String RETRIES_KEY = \"retries\";\n-\n-    String FORKS_KEY = \"forks\";\n-\n-    int DEFAULT_RETRIES = 2;\n-\n-    int DEFAULT_FAILBACK_TIMES = 3;\n-\n-    String REGISTER_KEY = \"register\";\n-\n-    String INTERFACES = \"interfaces\";\n-\n-    String SSL_ENABLED_KEY = \"ssl-enabled\";\n-\n-    String SERVICE_PATH_PREFIX = \"service.path.prefix\";\n-\n-    String PROTOCOL_SERVER_SERVLET = \"servlet\";\n-\n-    String PROTOCOL_SERVER = \"server\";\n-\n-    /**\n-     * The parameter key for the class path of the ServiceNameMapping {@link Properties} file\n-     *\n-     * @since 2.7.8\n-     */\n-    String SERVICE_NAME_MAPPING_PROPERTIES_FILE_KEY = \"service-name-mapping.properties-path\";\n-\n-    /**\n-     * The default class path of the ServiceNameMapping {@link Properties} file\n-     *\n-     * @since 2.7.8\n-     */\n-    String DEFAULT_SERVICE_NAME_MAPPING_PROPERTIES_PATH = \"META-INF/dubbo/service-name-mapping.properties\";\n-\n-    String REDIS_CLIENT_KEY = \"redis-client\";\n-\n-    String MONO_REDIS = \"mono\";\n-\n-    String SENTINEL_REDIS = \"sentinel\";\n-\n-    String CLUSTER_REDIS = \"cluster\";\n-\n-    /** Pseudo URL prefix for loading from the class path: \"classpath:\". */\n-    String CLASSPATH_URL_PREFIX = \"classpath:\";\n-\n-    String DEFAULT_VERSION = \"0.0.0\";\n-\n-    String CLASS_DESERIALIZE_BLOCK_ALL = \"dubbo.security.serialize.blockAllClassExceptAllow\";\n-\n-    String CLASS_DESERIALIZE_ALLOWED_LIST = \"dubbo.security.serialize.allowedClassList\";\n-\n-    String CLASS_DESERIALIZE_BLOCKED_LIST = \"dubbo.security.serialize.blockedClassList\";\n-\n-    String ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE = \"dubbo.security.serialize.generic.native-java-enable\";\n-\n-    String SERIALIZE_BLOCKED_LIST_FILE_PATH = \"security/serialize.blockedlist\";\n-\n-\n-    /**\n-     *  Interface configuration item\n-     * @since 2.7.10\n-     */\n-    String ON_CONNECT_KEY = \"onconnect\";\n-\n-    String ON_DISCONNECT_KEY = \"ondisconnect\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.constants;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.net.NetworkInterface;\r\n+import java.util.Properties;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.regex.Pattern;\r\n+\r\n+public interface CommonConstants {\r\n+    String DUBBO = \"dubbo\";\r\n+\r\n+    String PROVIDER = \"provider\";\r\n+\r\n+    String CONSUMER = \"consumer\";\r\n+\r\n+    String APPLICATION_KEY = \"application\";\r\n+\r\n+    String REMOTE_APPLICATION_KEY = \"remote.application\";\r\n+\r\n+    String ENABLED_KEY = \"enabled\";\r\n+\r\n+    String DISABLED_KEY = \"disabled\";\r\n+\r\n+    String DUBBO_PROPERTIES_KEY = \"dubbo.properties.file\";\r\n+\r\n+    String DEFAULT_DUBBO_PROPERTIES = \"dubbo.properties\";\r\n+\r\n+    String ANY_VALUE = \"*\";\r\n+\r\n+    /**\r\n+     * @since 2.7.8\r\n+     */\r\n+    char COMMA_SEPARATOR_CHAR = ',';\r\n+\r\n+    String COMMA_SEPARATOR = \",\";\r\n+\r\n+    String DOT_SEPARATOR = \".\";\r\n+\r\n+    Pattern COMMA_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[,]+\\\\s*\");\r\n+\r\n+    String PATH_SEPARATOR = \"/\";\r\n+\r\n+    String PROTOCOL_SEPARATOR = \"://\";\r\n+\r\n+    String PROTOCOL_SEPARATOR_ENCODED = URL.encode(PROTOCOL_SEPARATOR);\r\n+\r\n+    String REGISTRY_SEPARATOR = \"|\";\r\n+\r\n+    Pattern REGISTRY_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|;]+\\\\s*\");\r\n+\r\n+    Pattern D_REGISTRY_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|]+\\\\s*\");\r\n+\r\n+    String SEMICOLON_SEPARATOR = \";\";\r\n+\r\n+    Pattern SEMICOLON_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[;]+\\\\s*\");\r\n+\r\n+    Pattern EQUAL_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[=]+\\\\s*\");\r\n+\r\n+    Pattern COLON_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[:]+\\\\s*\");\r\n+\r\n+    String DEFAULT_PROXY = \"javassist\";\r\n+\r\n+    String DEFAULT_DIRECTORY = \"dubbo\";\r\n+\r\n+    String PROTOCOL_KEY = \"protocol\";\r\n+\r\n+    String DEFAULT_PROTOCOL = \"dubbo\";\r\n+\r\n+    String DEFAULT_THREAD_NAME = \"Dubbo\";\r\n+\r\n+    int DEFAULT_CORE_THREADS = 0;\r\n+\r\n+    int DEFAULT_THREADS = 200;\r\n+\r\n+    String EXECUTOR_SERVICE_COMPONENT_KEY = ExecutorService.class.getName();\r\n+\r\n+    String THREADPOOL_KEY = \"threadpool\";\r\n+\r\n+    String THREAD_NAME_KEY = \"threadname\";\r\n+\r\n+    String CORE_THREADS_KEY = \"corethreads\";\r\n+\r\n+    String THREADS_KEY = \"threads\";\r\n+\r\n+    String QUEUES_KEY = \"queues\";\r\n+\r\n+    String ALIVE_KEY = \"alive\";\r\n+\r\n+    String DEFAULT_THREADPOOL = \"limited\";\r\n+\r\n+    String DEFAULT_CLIENT_THREADPOOL = \"cached\";\r\n+\r\n+    String IO_THREADS_KEY = \"iothreads\";\r\n+\r\n+    String KEEP_ALIVE_KEY = \"keep.alive\";\r\n+\r\n+    int DEFAULT_QUEUES = 0;\r\n+\r\n+    int DEFAULT_ALIVE = 60 * 1000;\r\n+\r\n+    String TIMEOUT_KEY = \"timeout\";\r\n+\r\n+    int DEFAULT_TIMEOUT = 1000;\r\n+\r\n+    // used by invocation attachments to transfer timeout from Consumer to Provider.\r\n+    // works as a replacement of TIMEOUT_KEY on wire, which seems to be totally useless in previous releases).\r\n+    String TIMEOUT_ATTACHMENT_KEY = \"_TO\";\r\n+\r\n+    String TIME_COUNTDOWN_KEY = \"timeout-countdown\";\r\n+\r\n+    String ENABLE_TIMEOUT_COUNTDOWN_KEY = \"enable-timeout-countdown\";\r\n+\r\n+    String REMOVE_VALUE_PREFIX = \"-\";\r\n+\r\n+    String PROPERTIES_CHAR_SEPARATOR = \"-\";\r\n+\r\n+    String UNDERLINE_SEPARATOR = \"_\";\r\n+\r\n+    String SEPARATOR_REGEX = \"_|-\";\r\n+\r\n+    String GROUP_CHAR_SEPARATOR = \":\";\r\n+\r\n+    String HIDDEN_KEY_PREFIX = \".\";\r\n+\r\n+    String DOT_REGEX = \"\\\\.\";\r\n+\r\n+    String DEFAULT_KEY_PREFIX = \"default.\";\r\n+\r\n+    String DEFAULT_KEY = \"default\";\r\n+\r\n+    String PREFERRED_KEY = \"preferred\";\r\n+\r\n+    /**\r\n+     * Default timeout value in milliseconds for server shutdown\r\n+     */\r\n+    int DEFAULT_SERVER_SHUTDOWN_TIMEOUT = 10000;\r\n+\r\n+    String SIDE_KEY = \"side\";\r\n+\r\n+    String PROVIDER_SIDE = \"provider\";\r\n+\r\n+    String CONSUMER_SIDE = \"consumer\";\r\n+\r\n+    String ANYHOST_KEY = \"anyhost\";\r\n+\r\n+    String ANYHOST_VALUE = \"0.0.0.0\";\r\n+\r\n+    String LOCALHOST_KEY = \"localhost\";\r\n+\r\n+    String LOCALHOST_VALUE = \"127.0.0.1\";\r\n+\r\n+    String METHODS_KEY = \"methods\";\r\n+\r\n+    String METHOD_KEY = \"method\";\r\n+\r\n+    String PID_KEY = \"pid\";\r\n+\r\n+    String TIMESTAMP_KEY = \"timestamp\";\r\n+\r\n+    String GROUP_KEY = \"group\";\r\n+\r\n+    String PATH_KEY = \"path\";\r\n+\r\n+    String INTERFACE_KEY = \"interface\";\r\n+\r\n+    String FILE_KEY = \"file\";\r\n+\r\n+    String DUMP_DIRECTORY = \"dump.directory\";\r\n+\r\n+    String CLASSIFIER_KEY = \"classifier\";\r\n+\r\n+    String VERSION_KEY = \"version\";\r\n+\r\n+    String REVISION_KEY = \"revision\";\r\n+\r\n+    String METADATA_KEY = \"metadata-type\";\r\n+\r\n+    String MAPPING_KEY = \"mapping-type\";\r\n+\r\n+    String CONFIG_MAPPING_TYPE = \"config\";\r\n+\r\n+    String METADATA_MAPPING_TYPE = \"metadata\";\r\n+\r\n+    String DEFAULT_METADATA_STORAGE_TYPE = \"local\";\r\n+\r\n+    String REMOTE_METADATA_STORAGE_TYPE = \"remote\";\r\n+\r\n+    /**\r\n+     * The composite metadata storage type includes {@link #DEFAULT_METADATA_STORAGE_TYPE \"local\"} and\r\n+     * {@link #REMOTE_METADATA_STORAGE_TYPE \"remote\"}.\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    String COMPOSITE_METADATA_STORAGE_TYPE = \"composite\";\r\n+\r\n+    /**\r\n+     * Consumer side 's proxy class\r\n+     */\r\n+    String PROXY_CLASS_REF = \"refClass\";\r\n+\r\n+    /**\r\n+     * generic call\r\n+     */\r\n+    String $INVOKE = \"$invoke\";\r\n+    String $INVOKE_ASYNC = \"$invokeAsync\";\r\n+    String GENERIC_PARAMETER_DESC = \"Ljava/lang/String;[Ljava/lang/String;[Ljava/lang/Object;\";\r\n+\r\n+    /**\r\n+     * package version in the manifest\r\n+     */\r\n+    String RELEASE_KEY = \"release\";\r\n+\r\n+    int MAX_PROXY_COUNT = 65535;\r\n+\r\n+    String MONITOR_KEY = \"monitor\";\r\n+    String CLUSTER_KEY = \"cluster\";\r\n+    String USERNAME_KEY = \"username\";\r\n+    String PASSWORD_KEY = \"password\";\r\n+    String HOST_KEY = \"host\";\r\n+    String PORT_KEY = \"port\";\r\n+    String DUBBO_IP_TO_BIND = \"DUBBO_IP_TO_BIND\";\r\n+\r\n+    /**\r\n+     * The property name for {@link NetworkInterface#getDisplayName() the name of network interface} that\r\n+     * the Dubbo application prefers\r\n+     *\r\n+     * @since 2.7.6\r\n+     */\r\n+    String DUBBO_PREFERRED_NETWORK_INTERFACE = \"dubbo.network.interface.preferred\";\r\n+\r\n+    @Deprecated\r\n+    String SHUTDOWN_WAIT_SECONDS_KEY = \"dubbo.service.shutdown.wait.seconds\";\r\n+    String SHUTDOWN_WAIT_KEY = \"dubbo.service.shutdown.wait\";\r\n+    String DUBBO_PROTOCOL = \"dubbo\";\r\n+\r\n+    String DUBBO_LABELS = \"dubbo.labels\";\r\n+    String DUBBO_ENV_KEYS = \"dubbo.env.keys\";\r\n+\r\n+    String CONFIG_CONFIGFILE_KEY = \"config-file\";\r\n+    String CONFIG_ENABLE_KEY = \"highest-priority\";\r\n+    String CONFIG_NAMESPACE_KEY = \"namespace\";\r\n+    String CHECK_KEY = \"check\";\r\n+\r\n+    String BACKLOG_KEY = \"backlog\";\r\n+\r\n+    String HEARTBEAT_EVENT = null;\r\n+    String MOCK_HEARTBEAT_EVENT = \"H\";\r\n+    String READONLY_EVENT = \"R\";\r\n+\r\n+    String REFERENCE_FILTER_KEY = \"reference.filter\";\r\n+\r\n+    String INVOKER_LISTENER_KEY = \"invoker.listener\";\r\n+\r\n+    String DUBBO_VERSION_KEY = \"dubbo\";\r\n+\r\n+    String TAG_KEY = \"dubbo.tag\";\r\n+\r\n+    /**\r\n+     * To decide whether to make connection when the client is created\r\n+     */\r\n+    String LAZY_CONNECT_KEY = \"lazy\";\r\n+\r\n+    String STUB_EVENT_KEY = \"dubbo.stub.event\";\r\n+\r\n+    String REFERENCE_INTERCEPTOR_KEY = \"reference.interceptor\";\r\n+\r\n+    String SERVICE_FILTER_KEY = \"service.filter\";\r\n+\r\n+    String EXPORTER_LISTENER_KEY = \"exporter.listener\";\r\n+\r\n+    String METRICS_PORT = \"metrics.port\";\r\n+\r\n+    String METRICS_PROTOCOL = \"metrics.protocol\";\r\n+\r\n+    /**\r\n+     * After simplify the registry, should add some parameter individually for provider.\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    String EXTRA_KEYS_KEY = \"extra-keys\";\r\n+\r\n+    String GENERIC_SERIALIZATION_NATIVE_JAVA = \"nativejava\";\r\n+\r\n+    String GENERIC_SERIALIZATION_DEFAULT = \"true\";\r\n+\r\n+    String GENERIC_SERIALIZATION_BEAN = \"bean\";\r\n+\r\n+    String GENERIC_RAW_RETURN = \"raw.return\";\r\n+\r\n+    String GENERIC_SERIALIZATION_PROTOBUF = \"protobuf-json\";\r\n+\r\n+    String GENERIC_WITH_CLZ_KEY = \"generic.include.class\";\r\n+\r\n+    /**\r\n+     * The limit of callback service instances for one interface on every client\r\n+     */\r\n+    String CALLBACK_INSTANCES_LIMIT_KEY = \"callbacks\";\r\n+\r\n+    /**\r\n+     * The default limit number for callback service instances\r\n+     *\r\n+     * @see #CALLBACK_INSTANCES_LIMIT_KEY\r\n+     */\r\n+    int DEFAULT_CALLBACK_INSTANCES = 1;\r\n+\r\n+    String LOADBALANCE_KEY = \"loadbalance\";\r\n+\r\n+    String DEFAULT_LOADBALANCE = \"random\";\r\n+\r\n+    String RETRIES_KEY = \"retries\";\r\n+\r\n+    String FORKS_KEY = \"forks\";\r\n+\r\n+    int DEFAULT_RETRIES = 2;\r\n+\r\n+    int DEFAULT_FAILBACK_TIMES = 3;\r\n+\r\n+    String REGISTER_KEY = \"register\";\r\n+\r\n+    String INTERFACES = \"interfaces\";\r\n+\r\n+    String SSL_ENABLED_KEY = \"ssl-enabled\";\r\n+\r\n+    String SERVICE_PATH_PREFIX = \"service.path.prefix\";\r\n+\r\n+    String PROTOCOL_SERVER_SERVLET = \"servlet\";\r\n+\r\n+    String PROTOCOL_SERVER = \"server\";\r\n+\r\n+    /**\r\n+     * The parameter key for the class path of the ServiceNameMapping {@link Properties} file\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    String SERVICE_NAME_MAPPING_PROPERTIES_FILE_KEY = \"service-name-mapping.properties-path\";\r\n+\r\n+    /**\r\n+     * The default class path of the ServiceNameMapping {@link Properties} file\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    String DEFAULT_SERVICE_NAME_MAPPING_PROPERTIES_PATH = \"META-INF/dubbo/service-name-mapping.properties\";\r\n+\r\n+    String REDIS_CLIENT_KEY = \"redis-client\";\r\n+\r\n+    String MONO_REDIS = \"mono\";\r\n+\r\n+    String SENTINEL_REDIS = \"sentinel\";\r\n+\r\n+    String CLUSTER_REDIS = \"cluster\";\r\n+\r\n+    /** Pseudo URL prefix for loading from the class path: \"classpath:\". */\r\n+    String CLASSPATH_URL_PREFIX = \"classpath:\";\r\n+\r\n+    String DEFAULT_VERSION = \"0.0.0\";\r\n+\r\n+    String CLASS_DESERIALIZE_BLOCK_ALL = \"dubbo.security.serialize.blockAllClassExceptAllow\";\r\n+\r\n+    String CLASS_DESERIALIZE_ALLOWED_LIST = \"dubbo.security.serialize.allowedClassList\";\r\n+\r\n+    String CLASS_DESERIALIZE_BLOCKED_LIST = \"dubbo.security.serialize.blockedClassList\";\r\n+\r\n+    String ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE = \"dubbo.security.serialize.generic.native-java-enable\";\r\n+\r\n+    String SERIALIZE_BLOCKED_LIST_FILE_PATH = \"security/serialize.blockedlist\";\r\n+\r\n+\r\n+    /**\r\n+     *  Interface configuration item\r\n+     * @since 2.7.10\r\n+     */\r\n+    String ON_CONNECT_KEY = \"onconnect\";\r\n+\r\n+    String ON_DISCONNECT_KEY = \"ondisconnect\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/constants/FilterConstants.java", "source2": "org/apache/dubbo/common/constants/FilterConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,24 +1,24 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.constants;\n-\n-public interface FilterConstants {\n-    String CACHE_KEY = \"cache\";\n-\n-    String VALIDATION_KEY = \"validation\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.constants;\r\n+\r\n+public interface FilterConstants {\r\n+    String CACHE_KEY = \"cache\";\r\n+\r\n+    String VALIDATION_KEY = \"validation\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/constants/QosConstants.java", "source2": "org/apache/dubbo/common/constants/QosConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.constants;\n-\n-/**\n- * QosConstants\n- */\n-public interface QosConstants {\n-\n-    String QOS_ENABLE = \"qos.enable\";\n-\n-    String QOS_HOST = \"qos.host\";\n-\n-    String QOS_PORT = \"qos.port\";\n-\n-    String ACCEPT_FOREIGN_IP = \"qos.accept.foreign.ip\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.constants;\r\n+\r\n+/**\r\n+ * QosConstants\r\n+ */\r\n+public interface QosConstants {\r\n+\r\n+    String QOS_ENABLE = \"qos.enable\";\r\n+\r\n+    String QOS_HOST = \"qos.host\";\r\n+\r\n+    String QOS_PORT = \"qos.port\";\r\n+\r\n+    String ACCEPT_FOREIGN_IP = \"qos.accept.foreign.ip\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/constants/RegistryConstants.java", "source2": "org/apache/dubbo/common/constants/RegistryConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,122 +1,122 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.constants;\n-\n-public interface RegistryConstants {\n-\n-    String REGISTRY_KEY = \"registry\";\n-\n-    String REGISTRY_CLUSTER_KEY = \"REGISTRY_CLUSTER\";\n-\n-    String REGISTRY_CLUSTER = \"REGISTRY_CLUSTER\";\n-\n-    String REGISTRY_CLUSTER_TYPE_KEY = \"registry-cluster-type\";\n-\n-    String REGISTRY_PROTOCOL = \"registry\";\n-\n-    String DYNAMIC_KEY = \"dynamic\";\n-\n-    String CATEGORY_KEY = \"category\";\n-\n-    String PROVIDERS_CATEGORY = \"providers\";\n-\n-    String CONSUMERS_CATEGORY = \"consumers\";\n-\n-    String ROUTERS_CATEGORY = \"routers\";\n-\n-    String DYNAMIC_ROUTERS_CATEGORY = \"dynamicrouters\";\n-\n-    String DEFAULT_CATEGORY = PROVIDERS_CATEGORY;\n-\n-    String CONFIGURATORS_CATEGORY = \"configurators\";\n-\n-    String DYNAMIC_CONFIGURATORS_CATEGORY = \"dynamicconfigurators\";\n-\n-    String APP_DYNAMIC_CONFIGURATORS_CATEGORY = \"appdynamicconfigurators\";\n-\n-    String ROUTERS_SUFFIX = \".routers\";\n-\n-    String EMPTY_PROTOCOL = \"empty\";\n-\n-    String ROUTE_PROTOCOL = \"route\";\n-\n-    String OVERRIDE_PROTOCOL = \"override\";\n-\n-    String COMPATIBLE_CONFIG_KEY = \"compatible_config\";\n-\n-    String REGISTRY_PUBLISH_INTERFACE_KEY = \"publish-interface\";\n-\n-    String DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY = \"dubbo.application.publish-interface\";\n-    /**\n-     * The parameter key of Dubbo Registry type\n-     *\n-     * @since 2.7.5\n-     */\n-    String REGISTRY_TYPE_KEY = \"registry-type\";\n-\n-    /**\n-     * The parameter value of Service-Oriented Registry type\n-     *\n-     * @since 2.7.5\n-     */\n-    String SERVICE_REGISTRY_TYPE = \"service\";\n-\n-    /**\n-     * The protocol for Service Discovery\n-     *\n-     * @since 2.7.5\n-     */\n-    String SERVICE_REGISTRY_PROTOCOL = \"service-discovery-registry\";\n-\n-    /**\n-     * The parameter key of the subscribed service names for Service-Oriented Registry\n-     * <p>\n-     * If there is a multiple-values, the  \"comma\" is the separator.\n-     *\n-     * @since 2.7.5\n-     */\n-    String SUBSCRIBED_SERVICE_NAMES_KEY = \"subscribed-services\";\n-\n-    String PROVIDED_BY = \"provided-by\";\n-\n-    /**\n-     * The request size of service instances\n-     *\n-     * @since 2.7.5\n-     */\n-    String INSTANCES_REQUEST_SIZE_KEY = \"instances-request-size\";\n-\n-    /**\n-     * The default request size of service instances\n-     */\n-    int DEFAULT_INSTANCES_REQUEST_SIZE = 100;\n-\n-    String ACCEPTS_KEY = \"accepts\";\n-\n-    String REGISTRY_ZONE = \"registry_zone\";\n-    String REGISTRY_ZONE_FORCE = \"registry_zone_force\";\n-    String ZONE_KEY = \"zone\";\n-\n-    String REGISTRY_SERVICE_REFERENCE_PATH = \"org.apache.dubbo.registry.RegistryService\";\n-\n-    String INIT = \"INIT\";\n-\n-    String MIGRATION_MULTI_REGISTRY = \"MIGRATION_MULTI_REGISTRY\";\n-\n-    String LOADBALANCE_AMONG_REGISTRIES = \"random\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.constants;\r\n+\r\n+public interface RegistryConstants {\r\n+\r\n+    String REGISTRY_KEY = \"registry\";\r\n+\r\n+    String REGISTRY_CLUSTER_KEY = \"REGISTRY_CLUSTER\";\r\n+\r\n+    String REGISTRY_CLUSTER = \"REGISTRY_CLUSTER\";\r\n+\r\n+    String REGISTRY_CLUSTER_TYPE_KEY = \"registry-cluster-type\";\r\n+\r\n+    String REGISTRY_PROTOCOL = \"registry\";\r\n+\r\n+    String DYNAMIC_KEY = \"dynamic\";\r\n+\r\n+    String CATEGORY_KEY = \"category\";\r\n+\r\n+    String PROVIDERS_CATEGORY = \"providers\";\r\n+\r\n+    String CONSUMERS_CATEGORY = \"consumers\";\r\n+\r\n+    String ROUTERS_CATEGORY = \"routers\";\r\n+\r\n+    String DYNAMIC_ROUTERS_CATEGORY = \"dynamicrouters\";\r\n+\r\n+    String DEFAULT_CATEGORY = PROVIDERS_CATEGORY;\r\n+\r\n+    String CONFIGURATORS_CATEGORY = \"configurators\";\r\n+\r\n+    String DYNAMIC_CONFIGURATORS_CATEGORY = \"dynamicconfigurators\";\r\n+\r\n+    String APP_DYNAMIC_CONFIGURATORS_CATEGORY = \"appdynamicconfigurators\";\r\n+\r\n+    String ROUTERS_SUFFIX = \".routers\";\r\n+\r\n+    String EMPTY_PROTOCOL = \"empty\";\r\n+\r\n+    String ROUTE_PROTOCOL = \"route\";\r\n+\r\n+    String OVERRIDE_PROTOCOL = \"override\";\r\n+\r\n+    String COMPATIBLE_CONFIG_KEY = \"compatible_config\";\r\n+\r\n+    String REGISTRY_PUBLISH_INTERFACE_KEY = \"publish-interface\";\r\n+\r\n+    String DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY = \"dubbo.application.publish-interface\";\r\n+    /**\r\n+     * The parameter key of Dubbo Registry type\r\n+     *\r\n+     * @since 2.7.5\r\n+     */\r\n+    String REGISTRY_TYPE_KEY = \"registry-type\";\r\n+\r\n+    /**\r\n+     * The parameter value of Service-Oriented Registry type\r\n+     *\r\n+     * @since 2.7.5\r\n+     */\r\n+    String SERVICE_REGISTRY_TYPE = \"service\";\r\n+\r\n+    /**\r\n+     * The protocol for Service Discovery\r\n+     *\r\n+     * @since 2.7.5\r\n+     */\r\n+    String SERVICE_REGISTRY_PROTOCOL = \"service-discovery-registry\";\r\n+\r\n+    /**\r\n+     * The parameter key of the subscribed service names for Service-Oriented Registry\r\n+     * <p>\r\n+     * If there is a multiple-values, the  \"comma\" is the separator.\r\n+     *\r\n+     * @since 2.7.5\r\n+     */\r\n+    String SUBSCRIBED_SERVICE_NAMES_KEY = \"subscribed-services\";\r\n+\r\n+    String PROVIDED_BY = \"provided-by\";\r\n+\r\n+    /**\r\n+     * The request size of service instances\r\n+     *\r\n+     * @since 2.7.5\r\n+     */\r\n+    String INSTANCES_REQUEST_SIZE_KEY = \"instances-request-size\";\r\n+\r\n+    /**\r\n+     * The default request size of service instances\r\n+     */\r\n+    int DEFAULT_INSTANCES_REQUEST_SIZE = 100;\r\n+\r\n+    String ACCEPTS_KEY = \"accepts\";\r\n+\r\n+    String REGISTRY_ZONE = \"registry_zone\";\r\n+    String REGISTRY_ZONE_FORCE = \"registry_zone_force\";\r\n+    String ZONE_KEY = \"zone\";\r\n+\r\n+    String REGISTRY_SERVICE_REFERENCE_PATH = \"org.apache.dubbo.registry.RegistryService\";\r\n+\r\n+    String INIT = \"INIT\";\r\n+\r\n+    String MIGRATION_MULTI_REGISTRY = \"MIGRATION_MULTI_REGISTRY\";\r\n+\r\n+    String LOADBALANCE_AMONG_REGISTRIES = \"random\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/constants/RemotingConstants.java", "source2": "org/apache/dubbo/common/constants/RemotingConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,26 +1,26 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.constants;\n-\n-/**\n- * RemotingConstants\n- */\n-public interface RemotingConstants {\n-\n-    String BACKUP_KEY = \"backup\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.constants;\r\n+\r\n+/**\r\n+ * RemotingConstants\r\n+ */\r\n+public interface RemotingConstants {\r\n+\r\n+    String BACKUP_KEY = \"backup\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/context/FrameworkExt.java", "source2": "org/apache/dubbo/common/context/FrameworkExt.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,24 +1,24 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.context;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI\n-public interface FrameworkExt extends Lifecycle {\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.context;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI\r\n+public interface FrameworkExt extends Lifecycle {\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/context/Lifecycle.java", "source2": "org/apache/dubbo/common/context/Lifecycle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.context;\n-\n-/**\n- * The Lifecycle of Dubbo component\n- *\n- * @since 2.7.5\n- */\n-public interface Lifecycle {\n-\n-    /**\n-     * Initialize the component before {@link #start() start}\n-     *\n-     * @return current {@link Lifecycle}\n-     * @throws IllegalStateException\n-     */\n-    void initialize() throws IllegalStateException;\n-\n-    /**\n-     * Start the component\n-     *\n-     * @return current {@link Lifecycle}\n-     * @throws IllegalStateException\n-     */\n-    void start() throws IllegalStateException;\n-\n-    /**\n-     * Destroy the component\n-     *\n-     * @throws IllegalStateException\n-     */\n-    void destroy() throws IllegalStateException;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.context;\r\n+\r\n+/**\r\n+ * The Lifecycle of Dubbo component\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Lifecycle {\r\n+\r\n+    /**\r\n+     * Initialize the component before {@link #start() start}\r\n+     *\r\n+     * @return current {@link Lifecycle}\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    void initialize() throws IllegalStateException;\r\n+\r\n+    /**\r\n+     * Start the component\r\n+     *\r\n+     * @return current {@link Lifecycle}\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    void start() throws IllegalStateException;\r\n+\r\n+    /**\r\n+     * Destroy the component\r\n+     *\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    void destroy() throws IllegalStateException;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/context/LifecycleAdapter.java", "source2": "org/apache/dubbo/common/context/LifecycleAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.context;\n-\n-public abstract class LifecycleAdapter implements Lifecycle {\n-\n-    @Override\n-    public void initialize() throws IllegalStateException {\n-\n-    }\n-\n-    @Override\n-    public void start() throws IllegalStateException {\n-\n-    }\n-\n-    @Override\n-    public void destroy() throws IllegalStateException {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.context;\r\n+\r\n+public abstract class LifecycleAdapter implements Lifecycle {\r\n+\r\n+    @Override\r\n+    public void initialize() throws IllegalStateException {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void start() throws IllegalStateException {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws IllegalStateException {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/Converter.java", "source2": "org/apache/dubbo/common/convert/Converter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,108 +1,108 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\n-import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\n-\n-/**\n- * A class to convert the source-typed value to the target-typed value\n- *\n- * @param <S> The source type\n- * @param <T> The target type\n- * @since 2.7.6\n- */\n-@SPI\n-@FunctionalInterface\n-public interface Converter<S, T> extends Prioritized {\n-\n-    /**\n-     * Accept the source type and target type or not\n-     *\n-     * @param sourceType the source type\n-     * @param targetType the target type\n-     * @return if accepted, return <code>true</code>, or <code>false</code>\n-     */\n-    default boolean accept(Class<?> sourceType, Class<?> targetType) {\n-        return isAssignableFrom(sourceType, getSourceType()) && isAssignableFrom(targetType, getTargetType());\n-    }\n-\n-    /**\n-     * Convert the source-typed value to the target-typed value\n-     *\n-     * @param source the source-typed value\n-     * @return the target-typed value\n-     */\n-    T convert(S source);\n-\n-    /**\n-     * Get the source type\n-     *\n-     * @return non-null\n-     */\n-    default Class<S> getSourceType() {\n-        return findActualTypeArgument(getClass(), Converter.class, 0);\n-    }\n-\n-    /**\n-     * Get the target type\n-     *\n-     * @return non-null\n-     */\n-    default Class<T> getTargetType() {\n-        return findActualTypeArgument(getClass(), Converter.class, 1);\n-    }\n-\n-    /**\n-     * Get the Converter instance from {@link ExtensionLoader} with the specified source and target type\n-     *\n-     * @param sourceType the source type\n-     * @param targetType the target type\n-     * @return\n-     * @see ExtensionLoader#getSupportedExtensionInstances()\n-     */\n-    static Converter<?, ?> getConverter(Class<?> sourceType, Class<?> targetType) {\n-        return getExtensionLoader(Converter.class)\n-                .getSupportedExtensionInstances()\n-                .stream()\n-                .filter(converter -> converter.accept(sourceType, targetType))\n-                .findFirst()\n-                .orElse(null);\n-    }\n-\n-    /**\n-     * Convert the value of source to target-type value if possible\n-     *\n-     * @param source     the value of source\n-     * @param targetType the target type\n-     * @param <T>        the target type\n-     * @return <code>null</code> if can't be converted\n-     * @since 2.7.8\n-     */\n-    static <T> T convertIfPossible(Object source, Class<T> targetType) {\n-        Converter converter = getConverter(source.getClass(), targetType);\n-        if (converter != null) {\n-            return (T) converter.convert(source);\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\r\n+import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\r\n+\r\n+/**\r\n+ * A class to convert the source-typed value to the target-typed value\r\n+ *\r\n+ * @param <S> The source type\r\n+ * @param <T> The target type\r\n+ * @since 2.7.6\r\n+ */\r\n+@SPI\r\n+@FunctionalInterface\r\n+public interface Converter<S, T> extends Prioritized {\r\n+\r\n+    /**\r\n+     * Accept the source type and target type or not\r\n+     *\r\n+     * @param sourceType the source type\r\n+     * @param targetType the target type\r\n+     * @return if accepted, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    default boolean accept(Class<?> sourceType, Class<?> targetType) {\r\n+        return isAssignableFrom(sourceType, getSourceType()) && isAssignableFrom(targetType, getTargetType());\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the source-typed value to the target-typed value\r\n+     *\r\n+     * @param source the source-typed value\r\n+     * @return the target-typed value\r\n+     */\r\n+    T convert(S source);\r\n+\r\n+    /**\r\n+     * Get the source type\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    default Class<S> getSourceType() {\r\n+        return findActualTypeArgument(getClass(), Converter.class, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the target type\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    default Class<T> getTargetType() {\r\n+        return findActualTypeArgument(getClass(), Converter.class, 1);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the Converter instance from {@link ExtensionLoader} with the specified source and target type\r\n+     *\r\n+     * @param sourceType the source type\r\n+     * @param targetType the target type\r\n+     * @return\r\n+     * @see ExtensionLoader#getSupportedExtensionInstances()\r\n+     */\r\n+    static Converter<?, ?> getConverter(Class<?> sourceType, Class<?> targetType) {\r\n+        return getExtensionLoader(Converter.class)\r\n+                .getSupportedExtensionInstances()\r\n+                .stream()\r\n+                .filter(converter -> converter.accept(sourceType, targetType))\r\n+                .findFirst()\r\n+                .orElse(null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the value of source to target-type value if possible\r\n+     *\r\n+     * @param source     the value of source\r\n+     * @param targetType the target type\r\n+     * @param <T>        the target type\r\n+     * @return <code>null</code> if can't be converted\r\n+     * @since 2.7.8\r\n+     */\r\n+    static <T> T convertIfPossible(Object source, Class<T> targetType) {\r\n+        Converter converter = getConverter(source.getClass(), targetType);\r\n+        if (converter != null) {\r\n+            return (T) converter.convert(source);\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringConverter.java", "source2": "org/apache/dubbo/common/convert/StringConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,27 +1,27 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-/**\n- * A class to covert {@link String} to the target-typed value\n- *\n- * @see Converter\n- * @since 2.7.6\n- */\n-@FunctionalInterface\n-public interface StringConverter<T> extends Converter<String, T> {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+/**\r\n+ * A class to covert {@link String} to the target-typed value\r\n+ *\r\n+ * @see Converter\r\n+ * @since 2.7.6\r\n+ */\r\n+@FunctionalInterface\r\n+public interface StringConverter<T> extends Converter<String, T> {\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToBooleanConverter.java", "source2": "org/apache/dubbo/common/convert/StringToBooleanConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Boolean.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Boolean}\n- *\n- * @since 2.7.6\n- */\n-public class StringToBooleanConverter implements StringConverter<Boolean> {\n-\n-    @Override\n-    public Boolean convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 5;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Boolean.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Boolean}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToBooleanConverter implements StringConverter<Boolean> {\r\n+\r\n+    @Override\r\n+    public Boolean convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 5;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToCharArrayConverter.java", "source2": "org/apache/dubbo/common/convert/StringToCharArrayConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to <code>char[]</code>\n- *\n- * @since 2.7.6\n- */\n-public class StringToCharArrayConverter implements StringConverter<char[]> {\n-\n-    @Override\n-    public char[] convert(String source) {\n-        return isNotEmpty(source) ? source.toCharArray() : null;\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 7;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to <code>char[]</code>\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToCharArrayConverter implements StringConverter<char[]> {\r\n+\r\n+    @Override\r\n+    public char[] convert(String source) {\r\n+        return isNotEmpty(source) ? source.toCharArray() : null;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 7;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToCharacterConverter.java", "source2": "org/apache/dubbo/common/convert/StringToCharacterConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.length;\n-\n-/**\n- * The class to convert {@link String} to {@link Character}\n- *\n- * @since 2.7.6\n- */\n-public class StringToCharacterConverter implements StringConverter<Character> {\n-\n-    @Override\n-    public Character convert(String source) {\n-        int length = length(source);\n-        if (length == 0) {\n-            return null;\n-        }\n-        if (length > 1) {\n-            throw new IllegalArgumentException(\"The source String is more than one character!\");\n-        }\n-        return source.charAt(0);\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 8;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.length;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Character}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToCharacterConverter implements StringConverter<Character> {\r\n+\r\n+    @Override\r\n+    public Character convert(String source) {\r\n+        int length = length(source);\r\n+        if (length == 0) {\r\n+            return null;\r\n+        }\r\n+        if (length > 1) {\r\n+            throw new IllegalArgumentException(\"The source String is more than one character!\");\r\n+        }\r\n+        return source.charAt(0);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 8;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToDoubleConverter.java", "source2": "org/apache/dubbo/common/convert/StringToDoubleConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Double.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Double}\n- *\n- * @since 2.7.6\n- */\n-public class StringToDoubleConverter implements StringConverter<Double> {\n-\n-    @Override\n-    public Double convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 3;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Double.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Double}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToDoubleConverter implements StringConverter<Double> {\r\n+\r\n+    @Override\r\n+    public Double convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 3;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToFloatConverter.java", "source2": "org/apache/dubbo/common/convert/StringToFloatConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Float.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Float}\n- *\n- * @since 2.7.6\n- */\n-public class StringToFloatConverter implements StringConverter<Float> {\n-\n-    @Override\n-    public Float convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 4;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Float.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Float}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToFloatConverter implements StringConverter<Float> {\r\n+\r\n+    @Override\r\n+    public Float convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 4;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToIntegerConverter.java", "source2": "org/apache/dubbo/common/convert/StringToIntegerConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Integer.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Integer}\n- *\n- * @since 2.7.6\n- */\n-public class StringToIntegerConverter implements StringConverter<Integer> {\n-\n-    @Override\n-    public Integer convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Integer.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Integer}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToIntegerConverter implements StringConverter<Integer> {\r\n+\r\n+    @Override\r\n+    public Integer convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToLongConverter.java", "source2": "org/apache/dubbo/common/convert/StringToLongConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Long.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Long}\n- *\n- * @since 2.7.6\n- */\n-public class StringToLongConverter implements StringConverter<Long> {\n-\n-    @Override\n-    public Long convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 1;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Long.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Long}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToLongConverter implements StringConverter<Long> {\r\n+\r\n+    @Override\r\n+    public Long convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 1;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToOptionalConverter.java", "source2": "org/apache/dubbo/common/convert/StringToOptionalConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import java.util.Optional;\n-\n-import static java.util.Optional.ofNullable;\n-\n-/**\n- * The class to convert {@link String} to {@link Optional}\n- *\n- * @since 2.7.6\n- */\n-public class StringToOptionalConverter implements StringConverter<Optional> {\n-\n-    @Override\n-    public Optional convert(String source) {\n-        return ofNullable(source);\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return MIN_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import java.util.Optional;\r\n+\r\n+import static java.util.Optional.ofNullable;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Optional}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToOptionalConverter implements StringConverter<Optional> {\r\n+\r\n+    @Override\r\n+    public Optional convert(String source) {\r\n+        return ofNullable(source);\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return MIN_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToShortConverter.java", "source2": "org/apache/dubbo/common/convert/StringToShortConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-import static java.lang.Short.valueOf;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * The class to convert {@link String} to {@link Short}\n- *\n- * @since 2.7.6\n- */\n-public class StringToShortConverter implements StringConverter<Short> {\n-\n-    @Override\n-    public Short convert(String source) {\n-        return isNotEmpty(source) ? valueOf(source) : null;\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY + 2;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+import static java.lang.Short.valueOf;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Short}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToShortConverter implements StringConverter<Short> {\r\n+\r\n+    @Override\r\n+    public Short convert(String source) {\r\n+        return isNotEmpty(source) ? valueOf(source) : null;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY + 2;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/StringToStringConverter.java", "source2": "org/apache/dubbo/common/convert/StringToStringConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert;\n-\n-/**\n- * A class to covert {@link String} to {@link String} value, just no-op\n- *\n- * @since 2.7.6\n- */\n-public class StringToStringConverter implements StringConverter<String> {\n-\n-    @Override\n-    public String convert(String source) {\n-        return source;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert;\r\n+\r\n+/**\r\n+ * A class to covert {@link String} to {@link String} value, just no-op\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToStringConverter implements StringConverter<String> {\r\n+\r\n+    @Override\r\n+    public String convert(String source) {\r\n+        return source;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/MultiValueConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/MultiValueConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,92 +1,92 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-import java.util.Collection;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\n-\n-/**\n- * An interface to convert the source-typed value to multiple value, e.g , Java array, {@link Collection} or\n- * sub-interfaces\n- *\n- * @param <S> The source type\n- * @since 2.7.6\n- */\n-@SPI\n-public interface MultiValueConverter<S> extends Prioritized {\n-\n-    /**\n-     * Accept the source type and target type or not\n-     *\n-     * @param sourceType     the source type\n-     * @param multiValueType the multi-value type\n-     * @return if accepted, return <code>true</code>, or <code>false</code>\n-     */\n-    boolean accept(Class<S> sourceType, Class<?> multiValueType);\n-\n-    /**\n-     * Convert the source to be the multiple value\n-     *\n-     * @param source         the source-typed value\n-     * @param multiValueType the multi-value type\n-     * @param elementType    the element type\n-     * @return\n-     */\n-    Object convert(S source, Class<?> multiValueType, Class<?> elementType);\n-\n-    /**\n-     * Get the source type\n-     *\n-     * @return non-null\n-     */\n-    default Class<S> getSourceType() {\n-        return findActualTypeArgument(getClass(), MultiValueConverter.class, 0);\n-    }\n-\n-    /**\n-     * Find the {@link MultiValueConverter} instance from {@link ExtensionLoader} with the specified source and target type\n-     *\n-     * @param sourceType the source type\n-     * @param targetType the target type\n-     * @return <code>null</code> if not found\n-     * @see ExtensionLoader#getSupportedExtensionInstances()\n-     * @since 2.7.8\n-     */\n-    static MultiValueConverter<?> find(Class<?> sourceType, Class<?> targetType) {\n-        return getExtensionLoader(MultiValueConverter.class)\n-                .getSupportedExtensionInstances()\n-                .stream()\n-                .filter(converter -> converter.accept(sourceType, targetType))\n-                .findFirst()\n-                .orElse(null);\n-    }\n-\n-    static <T> T convertIfPossible(Object source, Class<?> multiValueType, Class<?> elementType) {\n-        Class<?> sourceType = source.getClass();\n-        MultiValueConverter converter = find(sourceType, multiValueType);\n-        if (converter != null) {\n-            return (T) converter.convert(source, multiValueType, elementType);\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\r\n+\r\n+/**\r\n+ * An interface to convert the source-typed value to multiple value, e.g , Java array, {@link Collection} or\r\n+ * sub-interfaces\r\n+ *\r\n+ * @param <S> The source type\r\n+ * @since 2.7.6\r\n+ */\r\n+@SPI\r\n+public interface MultiValueConverter<S> extends Prioritized {\r\n+\r\n+    /**\r\n+     * Accept the source type and target type or not\r\n+     *\r\n+     * @param sourceType     the source type\r\n+     * @param multiValueType the multi-value type\r\n+     * @return if accepted, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean accept(Class<S> sourceType, Class<?> multiValueType);\r\n+\r\n+    /**\r\n+     * Convert the source to be the multiple value\r\n+     *\r\n+     * @param source         the source-typed value\r\n+     * @param multiValueType the multi-value type\r\n+     * @param elementType    the element type\r\n+     * @return\r\n+     */\r\n+    Object convert(S source, Class<?> multiValueType, Class<?> elementType);\r\n+\r\n+    /**\r\n+     * Get the source type\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    default Class<S> getSourceType() {\r\n+        return findActualTypeArgument(getClass(), MultiValueConverter.class, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link MultiValueConverter} instance from {@link ExtensionLoader} with the specified source and target type\r\n+     *\r\n+     * @param sourceType the source type\r\n+     * @param targetType the target type\r\n+     * @return <code>null</code> if not found\r\n+     * @see ExtensionLoader#getSupportedExtensionInstances()\r\n+     * @since 2.7.8\r\n+     */\r\n+    static MultiValueConverter<?> find(Class<?> sourceType, Class<?> targetType) {\r\n+        return getExtensionLoader(MultiValueConverter.class)\r\n+                .getSupportedExtensionInstances()\r\n+                .stream()\r\n+                .filter(converter -> converter.accept(sourceType, targetType))\r\n+                .findFirst()\r\n+                .orElse(null);\r\n+    }\r\n+\r\n+    static <T> T convertIfPossible(Object source, Class<?> multiValueType, Class<?> elementType) {\r\n+        Class<?> sourceType = source.getClass();\r\n+        MultiValueConverter converter = find(sourceType, multiValueType);\r\n+        if (converter != null) {\r\n+            return (T) converter.convert(source, multiValueType, elementType);\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToArrayConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToArrayConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import org.apache.dubbo.common.convert.Converter;\n-\n-import java.lang.reflect.Array;\n-\n-import static java.lang.reflect.Array.newInstance;\n-\n-/**\n- * The class to convert {@link String} to array-type object\n- *\n- * @since 2.7.6\n- */\n-public class StringToArrayConverter implements StringToMultiValueConverter {\n-\n-    public boolean accept(Class<String> type, Class<?> multiValueType) {\n-        if (multiValueType != null && multiValueType.isArray()) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public Object convert(String[] segments, int size, Class<?> targetType, Class<?> elementType) {\n-\n-        Class<?> componentType = targetType.getComponentType();\n-\n-        Converter converter = Converter.getConverter(String.class, componentType);\n-\n-        Object array = newInstance(componentType, size);\n-\n-        for (int i = 0; i < size; i++) {\n-            Array.set(array, i, converter.convert(segments[i]));\n-        }\n-\n-        return array;\n-    }\n-\n-\n-    @Override\n-    public int getPriority() {\n-        return MIN_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import org.apache.dubbo.common.convert.Converter;\r\n+\r\n+import java.lang.reflect.Array;\r\n+\r\n+import static java.lang.reflect.Array.newInstance;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to array-type object\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToArrayConverter implements StringToMultiValueConverter {\r\n+\r\n+    public boolean accept(Class<String> type, Class<?> multiValueType) {\r\n+        if (multiValueType != null && multiValueType.isArray()) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object convert(String[] segments, int size, Class<?> targetType, Class<?> elementType) {\r\n+\r\n+        Class<?> componentType = targetType.getComponentType();\r\n+\r\n+        Converter converter = Converter.getConverter(String.class, componentType);\r\n+\r\n+        Object array = newInstance(componentType, size);\r\n+\r\n+        for (int i = 0; i < size; i++) {\r\n+            Array.set(array, i, converter.convert(segments[i]));\r\n+        }\r\n+\r\n+        return array;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return MIN_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToBlockingDequeConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.concurrent.BlockingDeque;\n-import java.util.concurrent.LinkedBlockingDeque;\n-\n-/**\n- * The class to convert {@link String} to {@link BlockingDeque}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToBlockingDequeConverter extends StringToIterableConverter<BlockingDeque> {\n-\n-    @Override\n-    protected BlockingDeque createMultiValue(int size, Class<?> multiValueType) {\n-        return new LinkedBlockingDeque(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.concurrent.BlockingDeque;\r\n+import java.util.concurrent.LinkedBlockingDeque;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link BlockingDeque}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToBlockingDequeConverter extends StringToIterableConverter<BlockingDeque> {\r\n+\r\n+    @Override\r\n+    protected BlockingDeque createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new LinkedBlockingDeque(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToBlockingQueueConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToBlockingQueueConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.concurrent.ArrayBlockingQueue;\n-import java.util.concurrent.BlockingDeque;\n-import java.util.concurrent.BlockingQueue;\n-\n-/**\n- * The class to convert {@link String} to {@link BlockingDeque}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToBlockingQueueConverter extends StringToIterableConverter<BlockingQueue> {\n-\n-    @Override\n-    protected BlockingQueue createMultiValue(int size, Class<?> multiValueType) {\n-        return new ArrayBlockingQueue(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.concurrent.ArrayBlockingQueue;\r\n+import java.util.concurrent.BlockingDeque;\r\n+import java.util.concurrent.BlockingQueue;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link BlockingDeque}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToBlockingQueueConverter extends StringToIterableConverter<BlockingQueue> {\r\n+\r\n+    @Override\r\n+    protected BlockingQueue createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new ArrayBlockingQueue(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToCollectionConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToCollectionConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.ArrayList;\n-import java.util.Collection;\n-\n-/**\n- * The class to convert {@link String} to {@link Collection}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToCollectionConverter extends StringToIterableConverter<Collection> {\n-\n-    @Override\n-    protected Collection createMultiValue(int size, Class<?> multiValueType) {\n-        return new ArrayList(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Collection}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToCollectionConverter extends StringToIterableConverter<Collection> {\r\n+\r\n+    @Override\r\n+    protected Collection createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new ArrayList(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToDequeConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToDequeConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.ArrayDeque;\n-import java.util.Deque;\n-\n-/**\n- * The class to convert {@link String} to {@link Deque}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToDequeConverter extends StringToIterableConverter<Deque> {\n-\n-    @Override\n-    protected Deque createMultiValue(int size, Class<?> multiValueType) {\n-        return new ArrayDeque(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.ArrayDeque;\r\n+import java.util.Deque;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Deque}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToDequeConverter extends StringToIterableConverter<Deque> {\r\n+\r\n+    @Override\r\n+    protected Deque createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new ArrayDeque(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToIterableConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToIterableConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import org.apache.dubbo.common.convert.StringConverter;\n-\n-import java.util.Collection;\n-import java.util.Optional;\n-\n-import static org.apache.dubbo.common.convert.Converter.getConverter;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\n-import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\n-import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\n-\n-/**\n- * The class to convert {@link String} to {@link Iterable}-based value\n- *\n- * @since 2.7.6\n- */\n-public abstract class StringToIterableConverter<T extends Iterable> implements StringToMultiValueConverter {\n-\n-    public boolean accept(Class<String> type, Class<?> multiValueType) {\n-        return isAssignableFrom(getSupportedType(), multiValueType);\n-    }\n-\n-    @Override\n-    public final Object convert(String[] segments, int size, Class<?> multiValueType, Class<?> elementType) {\n-\n-        Optional<StringConverter> stringConverter = getStringConverter(elementType);\n-\n-        return stringConverter.map(converter -> {\n-\n-            T convertedObject = createMultiValue(size, multiValueType);\n-\n-            if (convertedObject instanceof Collection) {\n-                Collection collection = (Collection) convertedObject;\n-                for (int i = 0; i < size; i++) {\n-                    String segment = segments[i];\n-                    Object element = converter.convert(segment);\n-                    collection.add(element);\n-                }\n-                return collection;\n-            }\n-\n-            return convertedObject;\n-        }).orElse(null);\n-    }\n-\n-    protected abstract T createMultiValue(int size, Class<?> multiValueType);\n-\n-    protected Optional<StringConverter> getStringConverter(Class<?> elementType) {\n-        StringConverter converter = (StringConverter) getConverter(String.class, elementType);\n-        return Optional.ofNullable(converter);\n-    }\n-\n-    protected final Class<T> getSupportedType() {\n-        return findActualTypeArgument(getClass(), StringToIterableConverter.class, 0);\n-    }\n-\n-    @Override\n-    public final int getPriority() {\n-        int level = getAllInterfaces(getSupportedType(), type ->\n-                isAssignableFrom(Iterable.class, type)).size();\n-        return MIN_PRIORITY - level;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import org.apache.dubbo.common.convert.StringConverter;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.Optional;\r\n+\r\n+import static org.apache.dubbo.common.convert.Converter.getConverter;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\r\n+import static org.apache.dubbo.common.utils.TypeUtils.findActualTypeArgument;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Iterable}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public abstract class StringToIterableConverter<T extends Iterable> implements StringToMultiValueConverter {\r\n+\r\n+    public boolean accept(Class<String> type, Class<?> multiValueType) {\r\n+        return isAssignableFrom(getSupportedType(), multiValueType);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final Object convert(String[] segments, int size, Class<?> multiValueType, Class<?> elementType) {\r\n+\r\n+        Optional<StringConverter> stringConverter = getStringConverter(elementType);\r\n+\r\n+        return stringConverter.map(converter -> {\r\n+\r\n+            T convertedObject = createMultiValue(size, multiValueType);\r\n+\r\n+            if (convertedObject instanceof Collection) {\r\n+                Collection collection = (Collection) convertedObject;\r\n+                for (int i = 0; i < size; i++) {\r\n+                    String segment = segments[i];\r\n+                    Object element = converter.convert(segment);\r\n+                    collection.add(element);\r\n+                }\r\n+                return collection;\r\n+            }\r\n+\r\n+            return convertedObject;\r\n+        }).orElse(null);\r\n+    }\r\n+\r\n+    protected abstract T createMultiValue(int size, Class<?> multiValueType);\r\n+\r\n+    protected Optional<StringConverter> getStringConverter(Class<?> elementType) {\r\n+        StringConverter converter = (StringConverter) getConverter(String.class, elementType);\r\n+        return Optional.ofNullable(converter);\r\n+    }\r\n+\r\n+    protected final Class<T> getSupportedType() {\r\n+        return findActualTypeArgument(getClass(), StringToIterableConverter.class, 0);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final int getPriority() {\r\n+        int level = getAllInterfaces(getSupportedType(), type ->\r\n+                isAssignableFrom(Iterable.class, type)).size();\r\n+        return MIN_PRIORITY - level;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToListConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToListConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * The class to convert {@link String} to {@link List}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToListConverter extends StringToIterableConverter<List> {\n-\n-    @Override\n-    protected List createMultiValue(int size, Class<?> multiValueType) {\n-        return new ArrayList(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link List}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToListConverter extends StringToIterableConverter<List> {\r\n+\r\n+    @Override\r\n+    protected List createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new ArrayList(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToMultiValueConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToMultiValueConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.StringUtils.split;\n-\n-/**\n- * The class to convert {@link String} to multiple value object\n- *\n- * @see MultiValueConverter\n- * @since 2.7.6\n- */\n-public interface StringToMultiValueConverter extends MultiValueConverter<String> {\n-\n-    @Override\n-    default Object convert(String source, Class<?> multiValueType, Class<?> elementType) {\n-\n-        if (isEmpty(source)) {\n-            return null;\n-        }\n-\n-        // split by the comma\n-        String[] segments = split(source, ',');\n-\n-        if (ArrayUtils.isEmpty(segments)) { // If empty array, create an array with only one element\n-            segments = new String[]{source};\n-        }\n-\n-        int size = segments.length;\n-\n-        return convert(segments, size, multiValueType, elementType);\n-    }\n-\n-    /**\n-     * Convert the segments to multiple value object\n-     *\n-     * @param segments    the String array of content\n-     * @param size        the size of multiple value object\n-     * @param targetType  the target type\n-     * @param elementType the element type\n-     * @return multiple value object\n-     */\n-    Object convert(String[] segments, int size, Class<?> targetType, Class<?> elementType);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.StringUtils.split;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to multiple value object\r\n+ *\r\n+ * @see MultiValueConverter\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface StringToMultiValueConverter extends MultiValueConverter<String> {\r\n+\r\n+    @Override\r\n+    default Object convert(String source, Class<?> multiValueType, Class<?> elementType) {\r\n+\r\n+        if (isEmpty(source)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        // split by the comma\r\n+        String[] segments = split(source, ',');\r\n+\r\n+        if (ArrayUtils.isEmpty(segments)) { // If empty array, create an array with only one element\r\n+            segments = new String[]{source};\r\n+        }\r\n+\r\n+        int size = segments.length;\r\n+\r\n+        return convert(segments, size, multiValueType, elementType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the segments to multiple value object\r\n+     *\r\n+     * @param segments    the String array of content\r\n+     * @param size        the size of multiple value object\r\n+     * @param targetType  the target type\r\n+     * @param elementType the element type\r\n+     * @return multiple value object\r\n+     */\r\n+    Object convert(String[] segments, int size, Class<?> targetType, Class<?> elementType);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToNavigableSetConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.NavigableSet;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-\n-/**\n- * The class to convert {@link String} to {@link SortedSet}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToNavigableSetConverter extends StringToIterableConverter<NavigableSet> {\n-\n-    @Override\n-    protected NavigableSet createMultiValue(int size, Class<?> multiValueType) {\n-        return new TreeSet();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.NavigableSet;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link SortedSet}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToNavigableSetConverter extends StringToIterableConverter<NavigableSet> {\r\n+\r\n+    @Override\r\n+    protected NavigableSet createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new TreeSet();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToQueueConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToQueueConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.ArrayDeque;\n-import java.util.Deque;\n-import java.util.Queue;\n-\n-/**\n- * The class to convert {@link String} to {@link Deque}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToQueueConverter extends StringToIterableConverter<Queue> {\n-\n-    @Override\n-    protected Queue createMultiValue(int size, Class<?> multiValueType) {\n-        return new ArrayDeque(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.ArrayDeque;\r\n+import java.util.Deque;\r\n+import java.util.Queue;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Deque}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToQueueConverter extends StringToIterableConverter<Queue> {\r\n+\r\n+    @Override\r\n+    protected Queue createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new ArrayDeque(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToSetConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToSetConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.HashSet;\n-import java.util.Set;\n-\n-/**\n- * The class to convert {@link String} to {@link Set}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToSetConverter extends StringToIterableConverter<Set> {\n-\n-    @Override\n-    protected Set createMultiValue(int size, Class<?> multiValueType) {\n-        return new HashSet(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link Set}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToSetConverter extends StringToIterableConverter<Set> {\r\n+\r\n+    @Override\r\n+    protected Set createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new HashSet(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToSortedSetConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToSortedSetConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-\n-/**\n- * The class to convert {@link String} to {@link SortedSet}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToSortedSetConverter extends StringToIterableConverter<SortedSet> {\n-\n-    @Override\n-    protected SortedSet createMultiValue(int size, Class<?> multiValueType) {\n-        return new TreeSet();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link SortedSet}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToSortedSetConverter extends StringToIterableConverter<SortedSet> {\r\n+\r\n+    @Override\r\n+    protected SortedSet createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new TreeSet();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/convert/multiple/StringToTransferQueueConverter.java", "source2": "org/apache/dubbo/common/convert/multiple/StringToTransferQueueConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.convert.multiple;\n-\n-import java.util.concurrent.LinkedTransferQueue;\n-import java.util.concurrent.TransferQueue;\n-\n-/**\n- * The class to convert {@link String} to {@link TransferQueue}-based value\n- *\n- * @since 2.7.6\n- */\n-public class StringToTransferQueueConverter extends StringToIterableConverter<TransferQueue> {\n-\n-    @Override\n-    protected TransferQueue createMultiValue(int size, Class<?> multiValueType) {\n-        return new LinkedTransferQueue();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.convert.multiple;\r\n+\r\n+import java.util.concurrent.LinkedTransferQueue;\r\n+import java.util.concurrent.TransferQueue;\r\n+\r\n+/**\r\n+ * The class to convert {@link String} to {@link TransferQueue}-based value\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class StringToTransferQueueConverter extends StringToIterableConverter<TransferQueue> {\r\n+\r\n+    @Override\r\n+    protected TransferQueue createMultiValue(int size, Class<?> multiValueType) {\r\n+        return new LinkedTransferQueue();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/Adaptive.java", "source2": "org/apache/dubbo/common/extension/Adaptive.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Provide helpful information for {@link ExtensionLoader} to inject dependency extension instance.\n- *\n- * @see ExtensionLoader\n- * @see URL\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.TYPE, ElementType.METHOD})\n-public @interface Adaptive {\n-    /**\n-     * Decide which target extension to be injected. The name of the target extension is decided by the parameter passed\n-     * in the URL, and the parameter names are given by this method.\n-     * <p>\n-     * If the specified parameters are not found from {@link URL}, then the default extension will be used for\n-     * dependency injection (specified in its interface's {@link SPI}).\n-     * <p>\n-     * For example, given <code>String[] {\"key1\", \"key2\"}</code>:\n-     * <ol>\n-     * <li>find parameter 'key1' in URL, use its value as the extension's name</li>\n-     * <li>try 'key2' for extension's name if 'key1' is not found (or its value is empty) in URL</li>\n-     * <li>use default extension if 'key2' doesn't exist either</li>\n-     * <li>otherwise, throw {@link IllegalStateException}</li>\n-     * </ol>\n-     * If the parameter names are empty, then a default parameter name is generated from interface's\n-     * class name with the rule: divide classname from capital char into several parts, and separate the parts with\n-     * dot '.', for example, for {@code org.apache.dubbo.xxx.YyyInvokerWrapper}, the generated name is\n-     * <code>String[] {\"yyy.invoker.wrapper\"}</code>.\n-     *\n-     * @return parameter names in URL\n-     */\n-    String[] value() default {};\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Provide helpful information for {@link ExtensionLoader} to inject dependency extension instance.\r\n+ *\r\n+ * @see ExtensionLoader\r\n+ * @see URL\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.TYPE, ElementType.METHOD})\r\n+public @interface Adaptive {\r\n+    /**\r\n+     * Decide which target extension to be injected. The name of the target extension is decided by the parameter passed\r\n+     * in the URL, and the parameter names are given by this method.\r\n+     * <p>\r\n+     * If the specified parameters are not found from {@link URL}, then the default extension will be used for\r\n+     * dependency injection (specified in its interface's {@link SPI}).\r\n+     * <p>\r\n+     * For example, given <code>String[] {\"key1\", \"key2\"}</code>:\r\n+     * <ol>\r\n+     * <li>find parameter 'key1' in URL, use its value as the extension's name</li>\r\n+     * <li>try 'key2' for extension's name if 'key1' is not found (or its value is empty) in URL</li>\r\n+     * <li>use default extension if 'key2' doesn't exist either</li>\r\n+     * <li>otherwise, throw {@link IllegalStateException}</li>\r\n+     * </ol>\r\n+     * If the parameter names are empty, then a default parameter name is generated from interface's\r\n+     * class name with the rule: divide classname from capital char into several parts, and separate the parts with\r\n+     * dot '.', for example, for {@code org.apache.dubbo.xxx.YyyInvokerWrapper}, the generated name is\r\n+     * <code>String[] {\"yyy.invoker.wrapper\"}</code>.\r\n+     *\r\n+     * @return parameter names in URL\r\n+     */\r\n+    String[] value() default {};\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java", "source2": "org/apache/dubbo/common/extension/AdaptiveClassCodeGenerator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,396 +1,396 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-import java.util.stream.IntStream;\n-\n-/**\n- * Code generator for Adaptive class\n- */\n-public class AdaptiveClassCodeGenerator {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AdaptiveClassCodeGenerator.class);\n-\n-    private static final String CLASSNAME_INVOCATION = \"org.apache.dubbo.rpc.Invocation\";\n-\n-    private static final String CODE_PACKAGE = \"package %s;\\n\";\n-\n-    private static final String CODE_IMPORTS = \"import %s;\\n\";\n-\n-    private static final String CODE_CLASS_DECLARATION = \"public class %s$Adaptive implements %s {\\n\";\n-\n-    private static final String CODE_METHOD_DECLARATION = \"public %s %s(%s) %s {\\n%s}\\n\";\n-\n-    private static final String CODE_METHOD_ARGUMENT = \"%s arg%d\";\n-\n-    private static final String CODE_METHOD_THROWS = \"throws %s\";\n-\n-    private static final String CODE_UNSUPPORTED = \"throw new UnsupportedOperationException(\\\"The method %s of interface %s is not adaptive method!\\\");\\n\";\n-\n-    private static final String CODE_URL_NULL_CHECK = \"if (arg%d == null) throw new IllegalArgumentException(\\\"url == null\\\");\\n%s url = arg%d;\\n\";\n-\n-    private static final String CODE_EXT_NAME_ASSIGNMENT = \"String extName = %s;\\n\";\n-\n-    private static final String CODE_EXT_NAME_NULL_CHECK = \"if(extName == null) \"\n-                    + \"throw new IllegalStateException(\\\"Failed to get extension (%s) name from url (\\\" + url.toString() + \\\") use keys(%s)\\\");\\n\";\n-\n-    private static final String CODE_INVOCATION_ARGUMENT_NULL_CHECK = \"if (arg%d == null) throw new IllegalArgumentException(\\\"invocation == null\\\"); \"\n-                    + \"String methodName = arg%d.getMethodName();\\n\";\n-\n-\n-    private static final String CODE_EXTENSION_ASSIGNMENT = \"%s extension = (%<s)%s.getExtensionLoader(%s.class).getExtension(extName);\\n\";\n-\n-    private static final String CODE_EXTENSION_METHOD_INVOKE_ARGUMENT = \"arg%d\";\n-\n-    private final Class<?> type;\n-\n-    private String defaultExtName;\n-\n-    public AdaptiveClassCodeGenerator(Class<?> type, String defaultExtName) {\n-        this.type = type;\n-        this.defaultExtName = defaultExtName;\n-    }\n-\n-    /**\n-     * test if given type has at least one method annotated with <code>Adaptive</code>\n-     */\n-    private boolean hasAdaptiveMethod() {\n-        return Arrays.stream(type.getMethods()).anyMatch(m -> m.isAnnotationPresent(Adaptive.class));\n-    }\n-\n-    /**\n-     * generate and return class code\n-     */\n-    public String generate() {\n-        // no need to generate adaptive class since there's no adaptive method found.\n-        if (!hasAdaptiveMethod()) {\n-            throw new IllegalStateException(\"No adaptive method exist on extension \" + type.getName() + \", refuse to create the adaptive class!\");\n-        }\n-\n-        StringBuilder code = new StringBuilder();\n-        code.append(generatePackageInfo());\n-        code.append(generateImports());\n-        code.append(generateClassDeclaration());\n-\n-        Method[] methods = type.getMethods();\n-        for (Method method : methods) {\n-            code.append(generateMethod(method));\n-        }\n-        code.append(\"}\");\n-\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(code.toString());\n-        }\n-        return code.toString();\n-    }\n-\n-    /**\n-     * generate package info\n-     */\n-    private String generatePackageInfo() {\n-        return String.format(CODE_PACKAGE, type.getPackage().getName());\n-    }\n-\n-    /**\n-     * generate imports\n-     */\n-    private String generateImports() {\n-        return String.format(CODE_IMPORTS, ExtensionLoader.class.getName());\n-    }\n-\n-    /**\n-     * generate class declaration\n-     */\n-    private String generateClassDeclaration() {\n-        return String.format(CODE_CLASS_DECLARATION, type.getSimpleName(), type.getCanonicalName());\n-    }\n-\n-    /**\n-     * generate method not annotated with Adaptive with throwing unsupported exception\n-     */\n-    private String generateUnsupported(Method method) {\n-        return String.format(CODE_UNSUPPORTED, method, type.getName());\n-    }\n-\n-    /**\n-     * get index of parameter with type URL\n-     */\n-    private int getUrlTypeIndex(Method method) {\n-        int urlTypeIndex = -1;\n-        Class<?>[] pts = method.getParameterTypes();\n-        for (int i = 0; i < pts.length; ++i) {\n-            if (pts[i].equals(URL.class)) {\n-                urlTypeIndex = i;\n-                break;\n-            }\n-        }\n-        return urlTypeIndex;\n-    }\n-\n-    /**\n-     * generate method declaration\n-     */\n-    private String generateMethod(Method method) {\n-        String methodReturnType = method.getReturnType().getCanonicalName();\n-        String methodName = method.getName();\n-        String methodContent = generateMethodContent(method);\n-        String methodArgs = generateMethodArguments(method);\n-        String methodThrows = generateMethodThrows(method);\n-        return String.format(CODE_METHOD_DECLARATION, methodReturnType, methodName, methodArgs, methodThrows, methodContent);\n-    }\n-\n-    /**\n-     * generate method arguments\n-     */\n-    private String generateMethodArguments(Method method) {\n-        Class<?>[] pts = method.getParameterTypes();\n-        return IntStream.range(0, pts.length)\n-                        .mapToObj(i -> String.format(CODE_METHOD_ARGUMENT, pts[i].getCanonicalName(), i))\n-                        .collect(Collectors.joining(\", \"));\n-    }\n-\n-    /**\n-     * generate method throws\n-     */\n-    private String generateMethodThrows(Method method) {\n-        Class<?>[] ets = method.getExceptionTypes();\n-        if (ets.length > 0) {\n-            String list = Arrays.stream(ets).map(Class::getCanonicalName).collect(Collectors.joining(\", \"));\n-            return String.format(CODE_METHOD_THROWS, list);\n-        } else {\n-            return \"\";\n-        }\n-    }\n-\n-    /**\n-     * generate method URL argument null check\n-     */\n-    private String generateUrlNullCheck(int index) {\n-        return String.format(CODE_URL_NULL_CHECK, index, URL.class.getName(), index);\n-    }\n-\n-    /**\n-     * generate method content\n-     */\n-    private String generateMethodContent(Method method) {\n-        Adaptive adaptiveAnnotation = method.getAnnotation(Adaptive.class);\n-        StringBuilder code = new StringBuilder(512);\n-        if (adaptiveAnnotation == null) {\n-            return generateUnsupported(method);\n-        } else {\n-            int urlTypeIndex = getUrlTypeIndex(method);\n-\n-            // found parameter in URL type\n-            if (urlTypeIndex != -1) {\n-                // Null Point check\n-                code.append(generateUrlNullCheck(urlTypeIndex));\n-            } else {\n-                // did not find parameter in URL type\n-                code.append(generateUrlAssignmentIndirectly(method));\n-            }\n-\n-            String[] value = getMethodAdaptiveValue(adaptiveAnnotation);\n-\n-            boolean hasInvocation = hasInvocationArgument(method);\n-\n-            code.append(generateInvocationArgumentNullCheck(method));\n-\n-            code.append(generateExtNameAssignment(value, hasInvocation));\n-            // check extName == null?\n-            code.append(generateExtNameNullCheck(value));\n-\n-            code.append(generateExtensionAssignment());\n-\n-            // return statement\n-            code.append(generateReturnAndInvocation(method));\n-        }\n-\n-        return code.toString();\n-    }\n-\n-    /**\n-     * generate code for variable extName null check\n-     */\n-    private String generateExtNameNullCheck(String[] value) {\n-        return String.format(CODE_EXT_NAME_NULL_CHECK, type.getName(), Arrays.toString(value));\n-    }\n-\n-    /**\n-     * generate extName assignment code\n-     */\n-    private String generateExtNameAssignment(String[] value, boolean hasInvocation) {\n-        // TODO: refactor it\n-        String getNameCode = null;\n-        for (int i = value.length - 1; i >= 0; --i) {\n-            if (i == value.length - 1) {\n-                if (null != defaultExtName) {\n-                    if (!\"protocol\".equals(value[i])) {\n-                        if (hasInvocation) {\n-                            getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\n-                        } else {\n-                            getNameCode = String.format(\"url.getParameter(\\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\n-                        }\n-                    } else {\n-                        getNameCode = String.format(\"( url.getProtocol() == null ? \\\"%s\\\" : url.getProtocol() )\", defaultExtName);\n-                    }\n-                } else {\n-                    if (!\"protocol\".equals(value[i])) {\n-                        if (hasInvocation) {\n-                            getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\n-                        } else {\n-                            getNameCode = String.format(\"url.getParameter(\\\"%s\\\")\", value[i]);\n-                        }\n-                    } else {\n-                        getNameCode = \"url.getProtocol()\";\n-                    }\n-                }\n-            } else {\n-                if (!\"protocol\".equals(value[i])) {\n-                    if (hasInvocation) {\n-                        getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\n-                    } else {\n-                        getNameCode = String.format(\"url.getParameter(\\\"%s\\\", %s)\", value[i], getNameCode);\n-                    }\n-                } else {\n-                    getNameCode = String.format(\"url.getProtocol() == null ? (%s) : url.getProtocol()\", getNameCode);\n-                }\n-            }\n-        }\n-\n-        return String.format(CODE_EXT_NAME_ASSIGNMENT, getNameCode);\n-    }\n-\n-    /**\n-     * @return\n-     */\n-    private String generateExtensionAssignment() {\n-        return String.format(CODE_EXTENSION_ASSIGNMENT, type.getName(), ExtensionLoader.class.getSimpleName(), type.getName());\n-    }\n-\n-    /**\n-     * generate method invocation statement and return it if necessary\n-     */\n-    private String generateReturnAndInvocation(Method method) {\n-        String returnStatement = method.getReturnType().equals(void.class) ? \"\" : \"return \";\n-\n-        String args = IntStream.range(0, method.getParameters().length)\n-                .mapToObj(i -> String.format(CODE_EXTENSION_METHOD_INVOKE_ARGUMENT, i))\n-                .collect(Collectors.joining(\", \"));\n-\n-        return returnStatement + String.format(\"extension.%s(%s);\\n\", method.getName(), args);\n-    }\n-\n-    /**\n-     * test if method has argument of type <code>Invocation</code>\n-     */\n-    private boolean hasInvocationArgument(Method method) {\n-        Class<?>[] pts = method.getParameterTypes();\n-        return Arrays.stream(pts).anyMatch(p -> CLASSNAME_INVOCATION.equals(p.getName()));\n-    }\n-\n-    /**\n-     * generate code to test argument of type <code>Invocation</code> is null\n-     */\n-    private String generateInvocationArgumentNullCheck(Method method) {\n-        Class<?>[] pts = method.getParameterTypes();\n-        return IntStream.range(0, pts.length).filter(i -> CLASSNAME_INVOCATION.equals(pts[i].getName()))\n-                        .mapToObj(i -> String.format(CODE_INVOCATION_ARGUMENT_NULL_CHECK, i, i))\n-                        .findFirst().orElse(\"\");\n-    }\n-\n-    /**\n-     * get value of adaptive annotation or if empty return splitted simple name\n-     */\n-    private String[] getMethodAdaptiveValue(Adaptive adaptiveAnnotation) {\n-        String[] value = adaptiveAnnotation.value();\n-        // value is not set, use the value generated from class name as the key\n-        if (value.length == 0) {\n-            String splitName = StringUtils.camelToSplitName(type.getSimpleName(), \".\");\n-            value = new String[]{splitName};\n-        }\n-        return value;\n-    }\n-\n-    /**\n-     * get parameter with type <code>URL</code> from method parameter:\n-     * <p>\n-     * test if parameter has method which returns type <code>URL</code>\n-     * <p>\n-     * if not found, throws IllegalStateException\n-     */\n-    private String generateUrlAssignmentIndirectly(Method method) {\n-        Class<?>[] pts = method.getParameterTypes();\n-\n-        Map<String, Integer> getterReturnUrl = new HashMap<>();\n-        // find URL getter method\n-        for (int i = 0; i < pts.length; ++i) {\n-            for (Method m : pts[i].getMethods()) {\n-                String name = m.getName();\n-                if ((name.startsWith(\"get\") || name.length() > 3)\n-                        && Modifier.isPublic(m.getModifiers())\n-                        && !Modifier.isStatic(m.getModifiers())\n-                        && m.getParameterTypes().length == 0\n-                        && m.getReturnType() == URL.class) {\n-                    getterReturnUrl.put(name, i);\n-                }\n-            }\n-        }\n-\n-        if (getterReturnUrl.size() <= 0) {\n-            // getter method not found, throw\n-            throw new IllegalStateException(\"Failed to create adaptive class for interface \" + type.getName()\n-                    + \": not found url parameter or url attribute in parameters of method \" + method.getName());\n-        }\n-\n-        Integer index = getterReturnUrl.get(\"getUrl\");\n-        if (index != null) {\n-            return generateGetUrlNullCheck(index, pts[index], \"getUrl\");\n-        } else {\n-            Map.Entry<String, Integer> entry = getterReturnUrl.entrySet().iterator().next();\n-            return generateGetUrlNullCheck(entry.getValue(), pts[entry.getValue()], entry.getKey());\n-        }\n-    }\n-\n-    /**\n-     * 1, test if argi is null\n-     * 2, test if argi.getXX() returns null\n-     * 3, assign url with argi.getXX()\n-     */\n-    private String generateGetUrlNullCheck(int index, Class<?> type, String method) {\n-        // Null point check\n-        StringBuilder code = new StringBuilder();\n-        code.append(String.format(\"if (arg%d == null) throw new IllegalArgumentException(\\\"%s argument == null\\\");\\n\",\n-                index, type.getName()));\n-        code.append(String.format(\"if (arg%d.%s() == null) throw new IllegalArgumentException(\\\"%s argument %s() == null\\\");\\n\",\n-                index, method, type.getName(), method));\n-\n-        code.append(String.format(\"%s url = arg%d.%s();\\n\", URL.class.getName(), index, method));\n-        return code.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.IntStream;\r\n+\r\n+/**\r\n+ * Code generator for Adaptive class\r\n+ */\r\n+public class AdaptiveClassCodeGenerator {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AdaptiveClassCodeGenerator.class);\r\n+\r\n+    private static final String CLASSNAME_INVOCATION = \"org.apache.dubbo.rpc.Invocation\";\r\n+\r\n+    private static final String CODE_PACKAGE = \"package %s;\\n\";\r\n+\r\n+    private static final String CODE_IMPORTS = \"import %s;\\n\";\r\n+\r\n+    private static final String CODE_CLASS_DECLARATION = \"public class %s$Adaptive implements %s {\\n\";\r\n+\r\n+    private static final String CODE_METHOD_DECLARATION = \"public %s %s(%s) %s {\\n%s}\\n\";\r\n+\r\n+    private static final String CODE_METHOD_ARGUMENT = \"%s arg%d\";\r\n+\r\n+    private static final String CODE_METHOD_THROWS = \"throws %s\";\r\n+\r\n+    private static final String CODE_UNSUPPORTED = \"throw new UnsupportedOperationException(\\\"The method %s of interface %s is not adaptive method!\\\");\\n\";\r\n+\r\n+    private static final String CODE_URL_NULL_CHECK = \"if (arg%d == null) throw new IllegalArgumentException(\\\"url == null\\\");\\n%s url = arg%d;\\n\";\r\n+\r\n+    private static final String CODE_EXT_NAME_ASSIGNMENT = \"String extName = %s;\\n\";\r\n+\r\n+    private static final String CODE_EXT_NAME_NULL_CHECK = \"if(extName == null) \"\r\n+                    + \"throw new IllegalStateException(\\\"Failed to get extension (%s) name from url (\\\" + url.toString() + \\\") use keys(%s)\\\");\\n\";\r\n+\r\n+    private static final String CODE_INVOCATION_ARGUMENT_NULL_CHECK = \"if (arg%d == null) throw new IllegalArgumentException(\\\"invocation == null\\\"); \"\r\n+                    + \"String methodName = arg%d.getMethodName();\\n\";\r\n+\r\n+\r\n+    private static final String CODE_EXTENSION_ASSIGNMENT = \"%s extension = (%<s)%s.getExtensionLoader(%s.class).getExtension(extName);\\n\";\r\n+\r\n+    private static final String CODE_EXTENSION_METHOD_INVOKE_ARGUMENT = \"arg%d\";\r\n+\r\n+    private final Class<?> type;\r\n+\r\n+    private String defaultExtName;\r\n+\r\n+    public AdaptiveClassCodeGenerator(Class<?> type, String defaultExtName) {\r\n+        this.type = type;\r\n+        this.defaultExtName = defaultExtName;\r\n+    }\r\n+\r\n+    /**\r\n+     * test if given type has at least one method annotated with <code>Adaptive</code>\r\n+     */\r\n+    private boolean hasAdaptiveMethod() {\r\n+        return Arrays.stream(type.getMethods()).anyMatch(m -> m.isAnnotationPresent(Adaptive.class));\r\n+    }\r\n+\r\n+    /**\r\n+     * generate and return class code\r\n+     */\r\n+    public String generate() {\r\n+        // no need to generate adaptive class since there's no adaptive method found.\r\n+        if (!hasAdaptiveMethod()) {\r\n+            throw new IllegalStateException(\"No adaptive method exist on extension \" + type.getName() + \", refuse to create the adaptive class!\");\r\n+        }\r\n+\r\n+        StringBuilder code = new StringBuilder();\r\n+        code.append(generatePackageInfo());\r\n+        code.append(generateImports());\r\n+        code.append(generateClassDeclaration());\r\n+\r\n+        Method[] methods = type.getMethods();\r\n+        for (Method method : methods) {\r\n+            code.append(generateMethod(method));\r\n+        }\r\n+        code.append(\"}\");\r\n+\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(code.toString());\r\n+        }\r\n+        return code.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * generate package info\r\n+     */\r\n+    private String generatePackageInfo() {\r\n+        return String.format(CODE_PACKAGE, type.getPackage().getName());\r\n+    }\r\n+\r\n+    /**\r\n+     * generate imports\r\n+     */\r\n+    private String generateImports() {\r\n+        return String.format(CODE_IMPORTS, ExtensionLoader.class.getName());\r\n+    }\r\n+\r\n+    /**\r\n+     * generate class declaration\r\n+     */\r\n+    private String generateClassDeclaration() {\r\n+        return String.format(CODE_CLASS_DECLARATION, type.getSimpleName(), type.getCanonicalName());\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method not annotated with Adaptive with throwing unsupported exception\r\n+     */\r\n+    private String generateUnsupported(Method method) {\r\n+        return String.format(CODE_UNSUPPORTED, method, type.getName());\r\n+    }\r\n+\r\n+    /**\r\n+     * get index of parameter with type URL\r\n+     */\r\n+    private int getUrlTypeIndex(Method method) {\r\n+        int urlTypeIndex = -1;\r\n+        Class<?>[] pts = method.getParameterTypes();\r\n+        for (int i = 0; i < pts.length; ++i) {\r\n+            if (pts[i].equals(URL.class)) {\r\n+                urlTypeIndex = i;\r\n+                break;\r\n+            }\r\n+        }\r\n+        return urlTypeIndex;\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method declaration\r\n+     */\r\n+    private String generateMethod(Method method) {\r\n+        String methodReturnType = method.getReturnType().getCanonicalName();\r\n+        String methodName = method.getName();\r\n+        String methodContent = generateMethodContent(method);\r\n+        String methodArgs = generateMethodArguments(method);\r\n+        String methodThrows = generateMethodThrows(method);\r\n+        return String.format(CODE_METHOD_DECLARATION, methodReturnType, methodName, methodArgs, methodThrows, methodContent);\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method arguments\r\n+     */\r\n+    private String generateMethodArguments(Method method) {\r\n+        Class<?>[] pts = method.getParameterTypes();\r\n+        return IntStream.range(0, pts.length)\r\n+                        .mapToObj(i -> String.format(CODE_METHOD_ARGUMENT, pts[i].getCanonicalName(), i))\r\n+                        .collect(Collectors.joining(\", \"));\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method throws\r\n+     */\r\n+    private String generateMethodThrows(Method method) {\r\n+        Class<?>[] ets = method.getExceptionTypes();\r\n+        if (ets.length > 0) {\r\n+            String list = Arrays.stream(ets).map(Class::getCanonicalName).collect(Collectors.joining(\", \"));\r\n+            return String.format(CODE_METHOD_THROWS, list);\r\n+        } else {\r\n+            return \"\";\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method URL argument null check\r\n+     */\r\n+    private String generateUrlNullCheck(int index) {\r\n+        return String.format(CODE_URL_NULL_CHECK, index, URL.class.getName(), index);\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method content\r\n+     */\r\n+    private String generateMethodContent(Method method) {\r\n+        Adaptive adaptiveAnnotation = method.getAnnotation(Adaptive.class);\r\n+        StringBuilder code = new StringBuilder(512);\r\n+        if (adaptiveAnnotation == null) {\r\n+            return generateUnsupported(method);\r\n+        } else {\r\n+            int urlTypeIndex = getUrlTypeIndex(method);\r\n+\r\n+            // found parameter in URL type\r\n+            if (urlTypeIndex != -1) {\r\n+                // Null Point check\r\n+                code.append(generateUrlNullCheck(urlTypeIndex));\r\n+            } else {\r\n+                // did not find parameter in URL type\r\n+                code.append(generateUrlAssignmentIndirectly(method));\r\n+            }\r\n+\r\n+            String[] value = getMethodAdaptiveValue(adaptiveAnnotation);\r\n+\r\n+            boolean hasInvocation = hasInvocationArgument(method);\r\n+\r\n+            code.append(generateInvocationArgumentNullCheck(method));\r\n+\r\n+            code.append(generateExtNameAssignment(value, hasInvocation));\r\n+            // check extName == null?\r\n+            code.append(generateExtNameNullCheck(value));\r\n+\r\n+            code.append(generateExtensionAssignment());\r\n+\r\n+            // return statement\r\n+            code.append(generateReturnAndInvocation(method));\r\n+        }\r\n+\r\n+        return code.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * generate code for variable extName null check\r\n+     */\r\n+    private String generateExtNameNullCheck(String[] value) {\r\n+        return String.format(CODE_EXT_NAME_NULL_CHECK, type.getName(), Arrays.toString(value));\r\n+    }\r\n+\r\n+    /**\r\n+     * generate extName assignment code\r\n+     */\r\n+    private String generateExtNameAssignment(String[] value, boolean hasInvocation) {\r\n+        // TODO: refactor it\r\n+        String getNameCode = null;\r\n+        for (int i = value.length - 1; i >= 0; --i) {\r\n+            if (i == value.length - 1) {\r\n+                if (null != defaultExtName) {\r\n+                    if (!\"protocol\".equals(value[i])) {\r\n+                        if (hasInvocation) {\r\n+                            getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\r\n+                        } else {\r\n+                            getNameCode = String.format(\"url.getParameter(\\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\r\n+                        }\r\n+                    } else {\r\n+                        getNameCode = String.format(\"( url.getProtocol() == null ? \\\"%s\\\" : url.getProtocol() )\", defaultExtName);\r\n+                    }\r\n+                } else {\r\n+                    if (!\"protocol\".equals(value[i])) {\r\n+                        if (hasInvocation) {\r\n+                            getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\r\n+                        } else {\r\n+                            getNameCode = String.format(\"url.getParameter(\\\"%s\\\")\", value[i]);\r\n+                        }\r\n+                    } else {\r\n+                        getNameCode = \"url.getProtocol()\";\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (!\"protocol\".equals(value[i])) {\r\n+                    if (hasInvocation) {\r\n+                        getNameCode = String.format(\"url.getMethodParameter(methodName, \\\"%s\\\", \\\"%s\\\")\", value[i], defaultExtName);\r\n+                    } else {\r\n+                        getNameCode = String.format(\"url.getParameter(\\\"%s\\\", %s)\", value[i], getNameCode);\r\n+                    }\r\n+                } else {\r\n+                    getNameCode = String.format(\"url.getProtocol() == null ? (%s) : url.getProtocol()\", getNameCode);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return String.format(CODE_EXT_NAME_ASSIGNMENT, getNameCode);\r\n+    }\r\n+\r\n+    /**\r\n+     * @return\r\n+     */\r\n+    private String generateExtensionAssignment() {\r\n+        return String.format(CODE_EXTENSION_ASSIGNMENT, type.getName(), ExtensionLoader.class.getSimpleName(), type.getName());\r\n+    }\r\n+\r\n+    /**\r\n+     * generate method invocation statement and return it if necessary\r\n+     */\r\n+    private String generateReturnAndInvocation(Method method) {\r\n+        String returnStatement = method.getReturnType().equals(void.class) ? \"\" : \"return \";\r\n+\r\n+        String args = IntStream.range(0, method.getParameters().length)\r\n+                .mapToObj(i -> String.format(CODE_EXTENSION_METHOD_INVOKE_ARGUMENT, i))\r\n+                .collect(Collectors.joining(\", \"));\r\n+\r\n+        return returnStatement + String.format(\"extension.%s(%s);\\n\", method.getName(), args);\r\n+    }\r\n+\r\n+    /**\r\n+     * test if method has argument of type <code>Invocation</code>\r\n+     */\r\n+    private boolean hasInvocationArgument(Method method) {\r\n+        Class<?>[] pts = method.getParameterTypes();\r\n+        return Arrays.stream(pts).anyMatch(p -> CLASSNAME_INVOCATION.equals(p.getName()));\r\n+    }\r\n+\r\n+    /**\r\n+     * generate code to test argument of type <code>Invocation</code> is null\r\n+     */\r\n+    private String generateInvocationArgumentNullCheck(Method method) {\r\n+        Class<?>[] pts = method.getParameterTypes();\r\n+        return IntStream.range(0, pts.length).filter(i -> CLASSNAME_INVOCATION.equals(pts[i].getName()))\r\n+                        .mapToObj(i -> String.format(CODE_INVOCATION_ARGUMENT_NULL_CHECK, i, i))\r\n+                        .findFirst().orElse(\"\");\r\n+    }\r\n+\r\n+    /**\r\n+     * get value of adaptive annotation or if empty return splitted simple name\r\n+     */\r\n+    private String[] getMethodAdaptiveValue(Adaptive adaptiveAnnotation) {\r\n+        String[] value = adaptiveAnnotation.value();\r\n+        // value is not set, use the value generated from class name as the key\r\n+        if (value.length == 0) {\r\n+            String splitName = StringUtils.camelToSplitName(type.getSimpleName(), \".\");\r\n+            value = new String[]{splitName};\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    /**\r\n+     * get parameter with type <code>URL</code> from method parameter:\r\n+     * <p>\r\n+     * test if parameter has method which returns type <code>URL</code>\r\n+     * <p>\r\n+     * if not found, throws IllegalStateException\r\n+     */\r\n+    private String generateUrlAssignmentIndirectly(Method method) {\r\n+        Class<?>[] pts = method.getParameterTypes();\r\n+\r\n+        Map<String, Integer> getterReturnUrl = new HashMap<>();\r\n+        // find URL getter method\r\n+        for (int i = 0; i < pts.length; ++i) {\r\n+            for (Method m : pts[i].getMethods()) {\r\n+                String name = m.getName();\r\n+                if ((name.startsWith(\"get\") || name.length() > 3)\r\n+                        && Modifier.isPublic(m.getModifiers())\r\n+                        && !Modifier.isStatic(m.getModifiers())\r\n+                        && m.getParameterTypes().length == 0\r\n+                        && m.getReturnType() == URL.class) {\r\n+                    getterReturnUrl.put(name, i);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (getterReturnUrl.size() <= 0) {\r\n+            // getter method not found, throw\r\n+            throw new IllegalStateException(\"Failed to create adaptive class for interface \" + type.getName()\r\n+                    + \": not found url parameter or url attribute in parameters of method \" + method.getName());\r\n+        }\r\n+\r\n+        Integer index = getterReturnUrl.get(\"getUrl\");\r\n+        if (index != null) {\r\n+            return generateGetUrlNullCheck(index, pts[index], \"getUrl\");\r\n+        } else {\r\n+            Map.Entry<String, Integer> entry = getterReturnUrl.entrySet().iterator().next();\r\n+            return generateGetUrlNullCheck(entry.getValue(), pts[entry.getValue()], entry.getKey());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * 1, test if argi is null\r\n+     * 2, test if argi.getXX() returns null\r\n+     * 3, assign url with argi.getXX()\r\n+     */\r\n+    private String generateGetUrlNullCheck(int index, Class<?> type, String method) {\r\n+        // Null point check\r\n+        StringBuilder code = new StringBuilder();\r\n+        code.append(String.format(\"if (arg%d == null) throw new IllegalArgumentException(\\\"%s argument == null\\\");\\n\",\r\n+                index, type.getName()));\r\n+        code.append(String.format(\"if (arg%d.%s() == null) throw new IllegalArgumentException(\\\"%s argument %s() == null\\\");\\n\",\r\n+                index, method, type.getName(), method));\r\n+\r\n+        code.append(String.format(\"%s url = arg%d.%s();\\n\", URL.class.getName(), index, method));\r\n+        return code.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/DubboInternalLoadingStrategy.java", "source2": "org/apache/dubbo/common/extension/DubboInternalLoadingStrategy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-/**\n- * Dubbo internal {@link LoadingStrategy}\n- *\n- * @since 2.7.7\n- */\n-public class DubboInternalLoadingStrategy implements LoadingStrategy {\n-\n-    @Override\n-    public String directory() {\n-        return \"META-INF/dubbo/internal/\";\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return MAX_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+/**\r\n+ * Dubbo internal {@link LoadingStrategy}\r\n+ *\r\n+ * @since 2.7.7\r\n+ */\r\n+public class DubboInternalLoadingStrategy implements LoadingStrategy {\r\n+\r\n+    @Override\r\n+    public String directory() {\r\n+        return \"META-INF/dubbo/internal/\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return MAX_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/DubboLoadingStrategy.java", "source2": "org/apache/dubbo/common/extension/DubboLoadingStrategy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-/**\n- * Dubbo {@link LoadingStrategy}\n- *\n- * @since 2.7.7\n- */\n-public class DubboLoadingStrategy implements LoadingStrategy {\n-\n-    @Override\n-    public String directory() {\n-        return \"META-INF/dubbo/\";\n-    }\n-\n-    @Override\n-    public boolean overridden() {\n-        return true;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return NORMAL_PRIORITY;\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+/**\r\n+ * Dubbo {@link LoadingStrategy}\r\n+ *\r\n+ * @since 2.7.7\r\n+ */\r\n+public class DubboLoadingStrategy implements LoadingStrategy {\r\n+\r\n+    @Override\r\n+    public String directory() {\r\n+        return \"META-INF/dubbo/\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean overridden() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return NORMAL_PRIORITY;\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/ExtensionLoader.java", "source2": "org/apache/dubbo/common/extension/ExtensionLoader.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,1047 +1,1047 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.context.Lifecycle;\n-import org.apache.dubbo.common.extension.support.ActivateComparator;\n-import org.apache.dubbo.common.extension.support.WrapperComparator;\n-import org.apache.dubbo.common.lang.Prioritized;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.Holder;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.io.BufferedReader;\n-import java.io.InputStreamReader;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.nio.charset.StandardCharsets;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.Enumeration;\n-import java.util.HashMap;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.ServiceLoader;\n-import java.util.Set;\n-import java.util.TreeSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.regex.Pattern;\n-\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.sort;\n-import static java.util.ServiceLoader.load;\n-import static java.util.stream.StreamSupport.stream;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOVE_VALUE_PREFIX;\n-\n-/**\n- * {@link org.apache.dubbo.rpc.model.ApplicationModel}, {@code DubboBootstrap} and this class are\n- * at present designed to be singleton or static (by itself totally static or uses some static fields).\n- * So the instances returned from them are of process or classloader scope. If you want to support\n- * multiple dubbo servers in a single process, you may need to refactor these three classes.\n- * <p>\n- * Load dubbo extensions\n- * <ul>\n- * <li>auto inject dependency extension </li>\n- * <li>auto wrap extension in wrapper </li>\n- * <li>default extension is an adaptive instance</li>\n- * </ul>\n- *\n- * @see <a href=\"http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider\">Service Provider in Java 5</a>\n- * @see org.apache.dubbo.common.extension.SPI\n- * @see org.apache.dubbo.common.extension.Adaptive\n- * @see org.apache.dubbo.common.extension.Activate\n- */\n-public class ExtensionLoader<T> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ExtensionLoader.class);\n-\n-    private static final Pattern NAME_SEPARATOR = Pattern.compile(\"\\\\s*[,]+\\\\s*\");\n-\n-    private static final ConcurrentMap<Class<?>, ExtensionLoader<?>> EXTENSION_LOADERS = new ConcurrentHashMap<>(64);\n-\n-    private static final ConcurrentMap<Class<?>, Object> EXTENSION_INSTANCES = new ConcurrentHashMap<>(64);\n-\n-    private final Class<?> type;\n-\n-    private final ExtensionFactory objectFactory;\n-\n-    private final ConcurrentMap<Class<?>, String> cachedNames = new ConcurrentHashMap<>();\n-\n-    private final Holder<Map<String, Class<?>>> cachedClasses = new Holder<>();\n-\n-    private final Map<String, Object> cachedActivates = new ConcurrentHashMap<>();\n-    private final ConcurrentMap<String, Holder<Object>> cachedInstances = new ConcurrentHashMap<>();\n-    private final Holder<Object> cachedAdaptiveInstance = new Holder<>();\n-    private volatile Class<?> cachedAdaptiveClass = null;\n-    private String cachedDefaultName;\n-    private volatile Throwable createAdaptiveInstanceError;\n-\n-    private Set<Class<?>> cachedWrapperClasses;\n-\n-    private Map<String, IllegalStateException> exceptions = new ConcurrentHashMap<>();\n-\n-    private static volatile LoadingStrategy[] strategies = loadLoadingStrategies();\n-\n-    public static void setLoadingStrategies(LoadingStrategy... strategies) {\n-        if (ArrayUtils.isNotEmpty(strategies)) {\n-            ExtensionLoader.strategies = strategies;\n-        }\n-    }\n-\n-    /**\n-     * Load all {@link Prioritized prioritized} {@link LoadingStrategy Loading Strategies} via {@link ServiceLoader}\n-     *\n-     * @return non-null\n-     * @since 2.7.7\n-     */\n-    private static LoadingStrategy[] loadLoadingStrategies() {\n-        return stream(load(LoadingStrategy.class).spliterator(), false)\n-                .sorted()\n-                .toArray(LoadingStrategy[]::new);\n-    }\n-\n-    /**\n-     * Get all {@link LoadingStrategy Loading Strategies}\n-     *\n-     * @return non-null\n-     * @see LoadingStrategy\n-     * @see Prioritized\n-     * @since 2.7.7\n-     */\n-    public static List<LoadingStrategy> getLoadingStrategies() {\n-        return asList(strategies);\n-    }\n-\n-    private ExtensionLoader(Class<?> type) {\n-        this.type = type;\n-        objectFactory = (type == ExtensionFactory.class ? null : ExtensionLoader.getExtensionLoader(ExtensionFactory.class).getAdaptiveExtension());\n-    }\n-\n-    private static <T> boolean withExtensionAnnotation(Class<T> type) {\n-        return type.isAnnotationPresent(SPI.class);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) {\n-        if (type == null) {\n-            throw new IllegalArgumentException(\"Extension type == null\");\n-        }\n-        if (!type.isInterface()) {\n-            throw new IllegalArgumentException(\"Extension type (\" + type + \") is not an interface!\");\n-        }\n-        if (!withExtensionAnnotation(type)) {\n-            throw new IllegalArgumentException(\"Extension type (\" + type +\n-                    \") is not an extension, because it is NOT annotated with @\" + SPI.class.getSimpleName() + \"!\");\n-        }\n-\n-        ExtensionLoader<T> loader = (ExtensionLoader<T>) EXTENSION_LOADERS.get(type);\n-        if (loader == null) {\n-            EXTENSION_LOADERS.putIfAbsent(type, new ExtensionLoader<T>(type));\n-            loader = (ExtensionLoader<T>) EXTENSION_LOADERS.get(type);\n-        }\n-        return loader;\n-    }\n-\n-    // For testing purposes only\n-    public static void resetExtensionLoader(Class type) {\n-        ExtensionLoader loader = EXTENSION_LOADERS.get(type);\n-        if (loader != null) {\n-            // Remove all instances associated with this loader as well\n-            Map<String, Class<?>> classes = loader.getExtensionClasses();\n-            for (Map.Entry<String, Class<?>> entry : classes.entrySet()) {\n-                EXTENSION_INSTANCES.remove(entry.getValue());\n-            }\n-            classes.clear();\n-            EXTENSION_LOADERS.remove(type);\n-        }\n-    }\n-\n-    public static void destroyAll() {\n-        EXTENSION_INSTANCES.forEach((_type, instance) -> {\n-            if (instance instanceof Lifecycle) {\n-                Lifecycle lifecycle = (Lifecycle) instance;\n-                try {\n-                    lifecycle.destroy();\n-                } catch (Exception e) {\n-                    logger.error(\"Error destroying extension \" + lifecycle, e);\n-                }\n-            }\n-        });\n-    }\n-\n-    private static ClassLoader findClassLoader() {\n-        return ClassUtils.getClassLoader(ExtensionLoader.class);\n-    }\n-\n-    public String getExtensionName(T extensionInstance) {\n-        return getExtensionName(extensionInstance.getClass());\n-    }\n-\n-    public String getExtensionName(Class<?> extensionClass) {\n-        getExtensionClasses();// load class\n-        return cachedNames.get(extensionClass);\n-    }\n-\n-    /**\n-     * This is equivalent to {@code getActivateExtension(url, key, null)}\n-     *\n-     * @param url url\n-     * @param key url parameter key which used to get extension point names\n-     * @return extension list which are activated.\n-     * @see #getActivateExtension(org.apache.dubbo.common.URL, String, String)\n-     */\n-    public List<T> getActivateExtension(URL url, String key) {\n-        return getActivateExtension(url, key, null);\n-    }\n-\n-    /**\n-     * This is equivalent to {@code getActivateExtension(url, values, null)}\n-     *\n-     * @param url    url\n-     * @param values extension point names\n-     * @return extension list which are activated\n-     * @see #getActivateExtension(org.apache.dubbo.common.URL, String[], String)\n-     */\n-    public List<T> getActivateExtension(URL url, String[] values) {\n-        return getActivateExtension(url, values, null);\n-    }\n-\n-    /**\n-     * This is equivalent to {@code getActivateExtension(url, url.getParameter(key).split(\",\"), null)}\n-     *\n-     * @param url   url\n-     * @param key   url parameter key which used to get extension point names\n-     * @param group group\n-     * @return extension list which are activated.\n-     * @see #getActivateExtension(org.apache.dubbo.common.URL, String[], String)\n-     */\n-    public List<T> getActivateExtension(URL url, String key, String group) {\n-        String value = url.getParameter(key);\n-        return getActivateExtension(url, StringUtils.isEmpty(value) ? null : COMMA_SPLIT_PATTERN.split(value), group);\n-    }\n-\n-    /**\n-     * Get activate extensions.\n-     *\n-     * @param url    url\n-     * @param values extension point names\n-     * @param group  group\n-     * @return extension list which are activated\n-     * @see org.apache.dubbo.common.extension.Activate\n-     */\n-    public List<T> getActivateExtension(URL url, String[] values, String group) {\n-        List<T> activateExtensions = new ArrayList<>();\n-        List<String> names = values == null ? new ArrayList<>(0) : asList(values);\n-        if (!names.contains(REMOVE_VALUE_PREFIX + DEFAULT_KEY)) {\n-            getExtensionClasses();\n-            for (Map.Entry<String, Object> entry : cachedActivates.entrySet()) {\n-                String name = entry.getKey();\n-                Object activate = entry.getValue();\n-\n-                String[] activateGroup, activateValue;\n-\n-                if (activate instanceof Activate) {\n-                    activateGroup = ((Activate) activate).group();\n-                    activateValue = ((Activate) activate).value();\n-                } else if (activate instanceof com.alibaba.dubbo.common.extension.Activate) {\n-                    activateGroup = ((com.alibaba.dubbo.common.extension.Activate) activate).group();\n-                    activateValue = ((com.alibaba.dubbo.common.extension.Activate) activate).value();\n-                } else {\n-                    continue;\n-                }\n-                if (isMatchGroup(group, activateGroup)\n-                        && !names.contains(name)\n-                        && !names.contains(REMOVE_VALUE_PREFIX + name)\n-                        && isActive(activateValue, url)) {\n-                    activateExtensions.add(getExtension(name));\n-                }\n-            }\n-            activateExtensions.sort(ActivateComparator.COMPARATOR);\n-        }\n-        List<T> loadedExtensions = new ArrayList<>();\n-        for (int i = 0; i < names.size(); i++) {\n-            String name = names.get(i);\n-            if (!name.startsWith(REMOVE_VALUE_PREFIX)\n-                    && !names.contains(REMOVE_VALUE_PREFIX + name)) {\n-                if (DEFAULT_KEY.equals(name)) {\n-                    if (!loadedExtensions.isEmpty()) {\n-                        activateExtensions.addAll(0, loadedExtensions);\n-                        loadedExtensions.clear();\n-                    }\n-                } else {\n-                    loadedExtensions.add(getExtension(name));\n-                }\n-            }\n-        }\n-        if (!loadedExtensions.isEmpty()) {\n-            activateExtensions.addAll(loadedExtensions);\n-        }\n-        return activateExtensions;\n-    }\n-\n-    private boolean isMatchGroup(String group, String[] groups) {\n-        if (StringUtils.isEmpty(group)) {\n-            return true;\n-        }\n-        if (groups != null && groups.length > 0) {\n-            for (String g : groups) {\n-                if (group.equals(g)) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return false;\n-    }\n-\n-    private boolean isActive(String[] keys, URL url) {\n-        if (keys.length == 0) {\n-            return true;\n-        }\n-        for (String key : keys) {\n-            // @Active(value=\"key1:value1, key2:value2\")\n-            String keyValue = null;\n-            if (key.contains(\":\")) {\n-                String[] arr = key.split(\":\");\n-                key = arr[0];\n-                keyValue = arr[1];\n-            }\n-\n-            for (Map.Entry<String, String> entry : url.getParameters().entrySet()) {\n-                String k = entry.getKey();\n-                String v = entry.getValue();\n-                if ((k.equals(key) || k.endsWith(\".\" + key))\n-                        && ((keyValue != null && keyValue.equals(v)) || (keyValue == null && ConfigUtils.isNotEmpty(v)))) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return false;\n-    }\n-\n-    /**\n-     * Get extension's instance. Return <code>null</code> if extension is not found or is not initialized. Pls. note\n-     * that this method will not trigger extension load.\n-     * <p>\n-     * In order to trigger extension load, call {@link #getExtension(String)} instead.\n-     *\n-     * @see #getExtension(String)\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public T getLoadedExtension(String name) {\n-        if (StringUtils.isEmpty(name)) {\n-            throw new IllegalArgumentException(\"Extension name == null\");\n-        }\n-        Holder<Object> holder = getOrCreateHolder(name);\n-        return (T) holder.get();\n-    }\n-\n-    private Holder<Object> getOrCreateHolder(String name) {\n-        Holder<Object> holder = cachedInstances.get(name);\n-        if (holder == null) {\n-            cachedInstances.putIfAbsent(name, new Holder<>());\n-            holder = cachedInstances.get(name);\n-        }\n-        return holder;\n-    }\n-\n-    /**\n-     * Return the list of extensions which are already loaded.\n-     * <p>\n-     * Usually {@link #getSupportedExtensions()} should be called in order to get all extensions.\n-     *\n-     * @see #getSupportedExtensions()\n-     */\n-    public Set<String> getLoadedExtensions() {\n-        return Collections.unmodifiableSet(new TreeSet<>(cachedInstances.keySet()));\n-    }\n-\n-    public List<T> getLoadedExtensionInstances() {\n-        List<T> instances = new ArrayList<>();\n-        cachedInstances.values().forEach(holder -> instances.add((T) holder.get()));\n-        return instances;\n-    }\n-\n-    public Object getLoadedAdaptiveExtensionInstances() {\n-        return cachedAdaptiveInstance.get();\n-    }\n-\n-//    public T getPrioritizedExtensionInstance() {\n-//        Set<String> supported = getSupportedExtensions();\n-//\n-//        Set<T> instances = new HashSet<>();\n-//        Set<T> prioritized = new HashSet<>();\n-//        for (String s : supported) {\n-//\n-//        }\n-//\n-//    }\n-\n-    /**\n-     * Find the extension with the given name. If the specified name is not found, then {@link IllegalStateException}\n-     * will be thrown.\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public T getExtension(String name) {\n-        return getExtension(name, true);\n-    }\n-\n-    public T getExtension(String name, boolean wrap) {\n-        if (StringUtils.isEmpty(name)) {\n-            throw new IllegalArgumentException(\"Extension name == null\");\n-        }\n-        if (\"true\".equals(name)) {\n-            return getDefaultExtension();\n-        }\n-        final Holder<Object> holder = getOrCreateHolder(name);\n-        Object instance = holder.get();\n-        if (instance == null) {\n-            synchronized (holder) {\n-                instance = holder.get();\n-                if (instance == null) {\n-                    instance = createExtension(name, wrap);\n-                    holder.set(instance);\n-                }\n-            }\n-        }\n-        return (T) instance;\n-    }\n-\n-    /**\n-     * Get the extension by specified name if found, or {@link #getDefaultExtension() returns the default one}\n-     *\n-     * @param name the name of extension\n-     * @return non-null\n-     */\n-    public T getOrDefaultExtension(String name) {\n-        return containsExtension(name) ? getExtension(name) : getDefaultExtension();\n-    }\n-\n-    /**\n-     * Return default extension, return <code>null</code> if it's not configured.\n-     */\n-    public T getDefaultExtension() {\n-        getExtensionClasses();\n-        if (StringUtils.isBlank(cachedDefaultName) || \"true\".equals(cachedDefaultName)) {\n-            return null;\n-        }\n-        return getExtension(cachedDefaultName);\n-    }\n-\n-    public boolean hasExtension(String name) {\n-        if (StringUtils.isEmpty(name)) {\n-            throw new IllegalArgumentException(\"Extension name == null\");\n-        }\n-        Class<?> c = this.getExtensionClass(name);\n-        return c != null;\n-    }\n-\n-    public Set<String> getSupportedExtensions() {\n-        Map<String, Class<?>> clazzes = getExtensionClasses();\n-        return Collections.unmodifiableSet(new TreeSet<>(clazzes.keySet()));\n-    }\n-\n-    public Set<T> getSupportedExtensionInstances() {\n-        List<T> instances = new LinkedList<>();\n-        Set<String> supportedExtensions = getSupportedExtensions();\n-        if (CollectionUtils.isNotEmpty(supportedExtensions)) {\n-            for (String name : supportedExtensions) {\n-                instances.add(getExtension(name));\n-            }\n-        }\n-        // sort the Prioritized instances\n-        sort(instances, Prioritized.COMPARATOR);\n-        return new LinkedHashSet<>(instances);\n-    }\n-\n-    /**\n-     * Return default extension name, return <code>null</code> if not configured.\n-     */\n-    public String getDefaultExtensionName() {\n-        getExtensionClasses();\n-        return cachedDefaultName;\n-    }\n-\n-    /**\n-     * Register new extension via API\n-     *\n-     * @param name  extension name\n-     * @param clazz extension class\n-     * @throws IllegalStateException when extension with the same name has already been registered.\n-     */\n-    public void addExtension(String name, Class<?> clazz) {\n-        getExtensionClasses(); // load classes\n-\n-        if (!type.isAssignableFrom(clazz)) {\n-            throw new IllegalStateException(\"Input type \" +\n-                    clazz + \" doesn't implement the Extension \" + type);\n-        }\n-        if (clazz.isInterface()) {\n-            throw new IllegalStateException(\"Input type \" +\n-                    clazz + \" can't be interface!\");\n-        }\n-\n-        if (!clazz.isAnnotationPresent(Adaptive.class)) {\n-            if (StringUtils.isBlank(name)) {\n-                throw new IllegalStateException(\"Extension name is blank (Extension \" + type + \")!\");\n-            }\n-            if (cachedClasses.get().containsKey(name)) {\n-                throw new IllegalStateException(\"Extension name \" +\n-                        name + \" already exists (Extension \" + type + \")!\");\n-            }\n-\n-            cachedNames.put(clazz, name);\n-            cachedClasses.get().put(name, clazz);\n-        } else {\n-            if (cachedAdaptiveClass != null) {\n-                throw new IllegalStateException(\"Adaptive Extension already exists (Extension \" + type + \")!\");\n-            }\n-\n-            cachedAdaptiveClass = clazz;\n-        }\n-    }\n-\n-    /**\n-     * Replace the existing extension via API\n-     *\n-     * @param name  extension name\n-     * @param clazz extension class\n-     * @throws IllegalStateException when extension to be placed doesn't exist\n-     * @deprecated not recommended any longer, and use only when test\n-     */\n-    @Deprecated\n-    public void replaceExtension(String name, Class<?> clazz) {\n-        getExtensionClasses(); // load classes\n-\n-        if (!type.isAssignableFrom(clazz)) {\n-            throw new IllegalStateException(\"Input type \" +\n-                    clazz + \" doesn't implement Extension \" + type);\n-        }\n-        if (clazz.isInterface()) {\n-            throw new IllegalStateException(\"Input type \" +\n-                    clazz + \" can't be interface!\");\n-        }\n-\n-        if (!clazz.isAnnotationPresent(Adaptive.class)) {\n-            if (StringUtils.isBlank(name)) {\n-                throw new IllegalStateException(\"Extension name is blank (Extension \" + type + \")!\");\n-            }\n-            if (!cachedClasses.get().containsKey(name)) {\n-                throw new IllegalStateException(\"Extension name \" +\n-                        name + \" doesn't exist (Extension \" + type + \")!\");\n-            }\n-\n-            cachedNames.put(clazz, name);\n-            cachedClasses.get().put(name, clazz);\n-            cachedInstances.remove(name);\n-        } else {\n-            if (cachedAdaptiveClass == null) {\n-                throw new IllegalStateException(\"Adaptive Extension doesn't exist (Extension \" + type + \")!\");\n-            }\n-\n-            cachedAdaptiveClass = clazz;\n-            cachedAdaptiveInstance.set(null);\n-        }\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public T getAdaptiveExtension() {\n-        Object instance = cachedAdaptiveInstance.get();\n-        if (instance == null) {\n-            if (createAdaptiveInstanceError != null) {\n-                throw new IllegalStateException(\"Failed to create adaptive instance: \" +\n-                        createAdaptiveInstanceError.toString(),\n-                        createAdaptiveInstanceError);\n-            }\n-\n-            synchronized (cachedAdaptiveInstance) {\n-                instance = cachedAdaptiveInstance.get();\n-                if (instance == null) {\n-                    try {\n-                        instance = createAdaptiveExtension();\n-                        cachedAdaptiveInstance.set(instance);\n-                    } catch (Throwable t) {\n-                        createAdaptiveInstanceError = t;\n-                        throw new IllegalStateException(\"Failed to create adaptive instance: \" + t.toString(), t);\n-                    }\n-                }\n-            }\n-        }\n-\n-        return (T) instance;\n-    }\n-\n-    private IllegalStateException findException(String name) {\n-        StringBuilder buf = new StringBuilder(\"No such extension \" + type.getName() + \" by name \" + name);\n-\n-        int i = 1;\n-        for (Map.Entry<String, IllegalStateException> entry : exceptions.entrySet()) {\n-            if (entry.getKey().toLowerCase().startsWith(name.toLowerCase())) {\n-                if (i == 1) {\n-                    buf.append(\", possible causes: \");\n-                }\n-                buf.append(\"\\r\\n(\");\n-                buf.append(i++);\n-                buf.append(\") \");\n-                buf.append(entry.getKey());\n-                buf.append(\":\\r\\n\");\n-                buf.append(StringUtils.toString(entry.getValue()));\n-            }\n-        }\n-\n-        if (i == 1) {\n-            buf.append(\", no related exception was found, please check whether related SPI module is missing.\");\n-        }\n-        return new IllegalStateException(buf.toString());\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private T createExtension(String name, boolean wrap) {\n-        Class<?> clazz = getExtensionClasses().get(name);\n-        if (clazz == null) {\n-            throw findException(name);\n-        }\n-        try {\n-            T instance = (T) EXTENSION_INSTANCES.get(clazz);\n-            if (instance == null) {\n-                EXTENSION_INSTANCES.putIfAbsent(clazz, clazz.getDeclaredConstructor().newInstance());\n-                instance = (T) EXTENSION_INSTANCES.get(clazz);\n-            }\n-            injectExtension(instance);\n-\n-\n-            if (wrap) {\n-\n-                List<Class<?>> wrapperClassesList = new ArrayList<>();\n-                if (cachedWrapperClasses != null) {\n-                    wrapperClassesList.addAll(cachedWrapperClasses);\n-                    wrapperClassesList.sort(WrapperComparator.COMPARATOR);\n-                    Collections.reverse(wrapperClassesList);\n-                }\n-\n-                if (CollectionUtils.isNotEmpty(wrapperClassesList)) {\n-                    for (Class<?> wrapperClass : wrapperClassesList) {\n-                        Wrapper wrapper = wrapperClass.getAnnotation(Wrapper.class);\n-                        if (wrapper == null\n-                                || (ArrayUtils.contains(wrapper.matches(), name) && !ArrayUtils.contains(wrapper.mismatches(), name))) {\n-                            instance = injectExtension((T) wrapperClass.getConstructor(type).newInstance(instance));\n-                        }\n-                    }\n-                }\n-            }\n-\n-            initExtension(instance);\n-            return instance;\n-        } catch (Throwable t) {\n-            throw new IllegalStateException(\"Extension instance (name: \" + name + \", class: \" +\n-                    type + \") couldn't be instantiated: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private boolean containsExtension(String name) {\n-        return getExtensionClasses().containsKey(name);\n-    }\n-\n-    private T injectExtension(T instance) {\n-\n-        if (objectFactory == null) {\n-            return instance;\n-        }\n-\n-        try {\n-            for (Method method : instance.getClass().getMethods()) {\n-                if (!isSetter(method)) {\n-                    continue;\n-                }\n-                /**\n-                 * Check {@link DisableInject} to see if we need auto injection for this property\n-                 */\n-                if (method.getAnnotation(DisableInject.class) != null) {\n-                    continue;\n-                }\n-                Class<?> pt = method.getParameterTypes()[0];\n-                if (ReflectUtils.isPrimitives(pt)) {\n-                    continue;\n-                }\n-\n-                try {\n-                    String property = getSetterProperty(method);\n-                    Object object = objectFactory.getExtension(pt, property);\n-                    if (object != null) {\n-                        method.invoke(instance, object);\n-                    }\n-                } catch (Exception e) {\n-                    logger.error(\"Failed to inject via method \" + method.getName()\n-                            + \" of interface \" + type.getName() + \": \" + e.getMessage(), e);\n-                }\n-\n-            }\n-        } catch (Exception e) {\n-            logger.error(e.getMessage(), e);\n-        }\n-        return instance;\n-    }\n-\n-    private void initExtension(T instance) {\n-        if (instance instanceof Lifecycle) {\n-            Lifecycle lifecycle = (Lifecycle) instance;\n-            lifecycle.initialize();\n-        }\n-    }\n-\n-    /**\n-     * get properties name for setter, for instance: setVersion, return \"version\"\n-     * <p>\n-     * return \"\", if setter name with length less than 3\n-     */\n-    private String getSetterProperty(Method method) {\n-        return method.getName().length() > 3 ? method.getName().substring(3, 4).toLowerCase() + method.getName().substring(4) : \"\";\n-    }\n-\n-    /**\n-     * return true if and only if:\n-     * <p>\n-     * 1, public\n-     * <p>\n-     * 2, name starts with \"set\"\n-     * <p>\n-     * 3, only has one parameter\n-     */\n-    private boolean isSetter(Method method) {\n-        return method.getName().startsWith(\"set\")\n-                && method.getParameterTypes().length == 1\n-                && Modifier.isPublic(method.getModifiers());\n-    }\n-\n-    private Class<?> getExtensionClass(String name) {\n-        if (type == null) {\n-            throw new IllegalArgumentException(\"Extension type == null\");\n-        }\n-        if (name == null) {\n-            throw new IllegalArgumentException(\"Extension name == null\");\n-        }\n-        return getExtensionClasses().get(name);\n-    }\n-\n-    private Map<String, Class<?>> getExtensionClasses() {\n-        Map<String, Class<?>> classes = cachedClasses.get();\n-        if (classes == null) {\n-            synchronized (cachedClasses) {\n-                classes = cachedClasses.get();\n-                if (classes == null) {\n-                    classes = loadExtensionClasses();\n-                    cachedClasses.set(classes);\n-                }\n-            }\n-        }\n-        return classes;\n-    }\n-\n-    /**\n-     * synchronized in getExtensionClasses\n-     */\n-    private Map<String, Class<?>> loadExtensionClasses() {\n-        cacheDefaultExtensionName();\n-\n-        Map<String, Class<?>> extensionClasses = new HashMap<>();\n-\n-        for (LoadingStrategy strategy : strategies) {\n-            loadDirectory(extensionClasses, strategy.directory(), type.getName(), strategy.preferExtensionClassLoader(), strategy.overridden(), strategy.excludedPackages());\n-            loadDirectory(extensionClasses, strategy.directory(), type.getName().replace(\"org.apache\", \"com.alibaba\"), strategy.preferExtensionClassLoader(), strategy.overridden(), strategy.excludedPackages());\n-        }\n-\n-        return extensionClasses;\n-    }\n-\n-    /**\n-     * extract and cache default extension name if exists\n-     */\n-    private void cacheDefaultExtensionName() {\n-        final SPI defaultAnnotation = type.getAnnotation(SPI.class);\n-        if (defaultAnnotation == null) {\n-            return;\n-        }\n-\n-        String value = defaultAnnotation.value();\n-        if ((value = value.trim()).length() > 0) {\n-            String[] names = NAME_SEPARATOR.split(value);\n-            if (names.length > 1) {\n-                throw new IllegalStateException(\"More than 1 default extension name on extension \" + type.getName()\n-                        + \": \" + Arrays.toString(names));\n-            }\n-            if (names.length == 1) {\n-                cachedDefaultName = names[0];\n-            }\n-        }\n-    }\n-\n-    private void loadDirectory(Map<String, Class<?>> extensionClasses, String dir, String type) {\n-        loadDirectory(extensionClasses, dir, type, false, false);\n-    }\n-\n-    private void loadDirectory(Map<String, Class<?>> extensionClasses, String dir, String type,\n-                               boolean extensionLoaderClassLoaderFirst, boolean overridden, String... excludedPackages) {\n-        String fileName = dir + type;\n-        try {\n-            Enumeration<java.net.URL> urls = null;\n-            ClassLoader classLoader = findClassLoader();\n-\n-            // try to load from ExtensionLoader's ClassLoader first\n-            if (extensionLoaderClassLoaderFirst) {\n-                ClassLoader extensionLoaderClassLoader = ExtensionLoader.class.getClassLoader();\n-                if (ClassLoader.getSystemClassLoader() != extensionLoaderClassLoader) {\n-                    urls = extensionLoaderClassLoader.getResources(fileName);\n-                }\n-            }\n-\n-            if (urls == null || !urls.hasMoreElements()) {\n-                if (classLoader != null) {\n-                    urls = classLoader.getResources(fileName);\n-                } else {\n-                    urls = ClassLoader.getSystemResources(fileName);\n-                }\n-            }\n-\n-            if (urls != null) {\n-                while (urls.hasMoreElements()) {\n-                    java.net.URL resourceURL = urls.nextElement();\n-                    loadResource(extensionClasses, classLoader, resourceURL, overridden, excludedPackages);\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(\"Exception occurred when loading extension class (interface: \" +\n-                    type + \", description file: \" + fileName + \").\", t);\n-        }\n-    }\n-\n-    private void loadResource(Map<String, Class<?>> extensionClasses, ClassLoader classLoader,\n-                              java.net.URL resourceURL, boolean overridden, String... excludedPackages) {\n-        try {\n-            try (BufferedReader reader = new BufferedReader(new InputStreamReader(resourceURL.openStream(), StandardCharsets.UTF_8))) {\n-                String line;\n-                String clazz = null;\n-                while ((line = reader.readLine()) != null) {\n-                    final int ci = line.indexOf('#');\n-                    if (ci >= 0) {\n-                        line = line.substring(0, ci);\n-                    }\n-                    line = line.trim();\n-                    if (line.length() > 0) {\n-                        try {\n-                            String name = null;\n-                            int i = line.indexOf('=');\n-                            if (i > 0) {\n-                                name = line.substring(0, i).trim();\n-                                clazz = line.substring(i + 1).trim();\n-                            } else {\n-                                clazz = line;\n-                            }\n-                            if (StringUtils.isNotEmpty(clazz) && !isExcluded(clazz, excludedPackages)) {\n-                                loadClass(extensionClasses, resourceURL, Class.forName(clazz, true, classLoader), name, overridden);\n-                            }\n-                        } catch (Throwable t) {\n-                            IllegalStateException e = new IllegalStateException(\"Failed to load extension class (interface: \" + type + \", class line: \" + line + \") in \" + resourceURL + \", cause: \" + t.getMessage(), t);\n-                            exceptions.put(line, e);\n-                        }\n-                    }\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(\"Exception occurred when loading extension class (interface: \" +\n-                    type + \", class file: \" + resourceURL + \") in \" + resourceURL, t);\n-        }\n-    }\n-\n-    private boolean isExcluded(String className, String... excludedPackages) {\n-        if (excludedPackages != null) {\n-            for (String excludePackage : excludedPackages) {\n-                if (className.startsWith(excludePackage + \".\")) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return false;\n-    }\n-\n-    private void loadClass(Map<String, Class<?>> extensionClasses, java.net.URL resourceURL, Class<?> clazz, String name,\n-                           boolean overridden) throws NoSuchMethodException {\n-        if (!type.isAssignableFrom(clazz)) {\n-            throw new IllegalStateException(\"Error occurred when loading extension class (interface: \" +\n-                    type + \", class line: \" + clazz.getName() + \"), class \"\n-                    + clazz.getName() + \" is not subtype of interface.\");\n-        }\n-        if (clazz.isAnnotationPresent(Adaptive.class)) {\n-            cacheAdaptiveClass(clazz, overridden);\n-        } else if (isWrapperClass(clazz)) {\n-            cacheWrapperClass(clazz);\n-        } else {\n-            clazz.getConstructor();\n-            if (StringUtils.isEmpty(name)) {\n-                name = findAnnotationName(clazz);\n-                if (name.length() == 0) {\n-                    throw new IllegalStateException(\"No such extension name for the class \" + clazz.getName() + \" in the config \" + resourceURL);\n-                }\n-            }\n-\n-            String[] names = NAME_SEPARATOR.split(name);\n-            if (ArrayUtils.isNotEmpty(names)) {\n-                cacheActivateClass(clazz, names[0]);\n-                for (String n : names) {\n-                    cacheName(clazz, n);\n-                    saveInExtensionClass(extensionClasses, clazz, n, overridden);\n-                }\n-            }\n-        }\n-    }\n-\n-    /**\n-     * cache name\n-     */\n-    private void cacheName(Class<?> clazz, String name) {\n-        if (!cachedNames.containsKey(clazz)) {\n-            cachedNames.put(clazz, name);\n-        }\n-    }\n-\n-    /**\n-     * put clazz in extensionClasses\n-     */\n-    private void saveInExtensionClass(Map<String, Class<?>> extensionClasses, Class<?> clazz, String name, boolean overridden) {\n-        Class<?> c = extensionClasses.get(name);\n-        if (c == null || overridden) {\n-            extensionClasses.put(name, clazz);\n-        } else if (c != clazz) {\n-            String duplicateMsg = \"Duplicate extension \" + type.getName() + \" name \" + name + \" on \" + c.getName() + \" and \" + clazz.getName();\n-            logger.error(duplicateMsg);\n-            throw new IllegalStateException(duplicateMsg);\n-        }\n-    }\n-\n-    /**\n-     * cache Activate class which is annotated with <code>Activate</code>\n-     * <p>\n-     * for compatibility, also cache class with old alibaba Activate annotation\n-     */\n-    private void cacheActivateClass(Class<?> clazz, String name) {\n-        Activate activate = clazz.getAnnotation(Activate.class);\n-        if (activate != null) {\n-            cachedActivates.put(name, activate);\n-        } else {\n-            // support com.alibaba.dubbo.common.extension.Activate\n-            com.alibaba.dubbo.common.extension.Activate oldActivate = clazz.getAnnotation(com.alibaba.dubbo.common.extension.Activate.class);\n-            if (oldActivate != null) {\n-                cachedActivates.put(name, oldActivate);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * cache Adaptive class which is annotated with <code>Adaptive</code>\n-     */\n-    private void cacheAdaptiveClass(Class<?> clazz, boolean overridden) {\n-        if (cachedAdaptiveClass == null || overridden) {\n-            cachedAdaptiveClass = clazz;\n-        } else if (!cachedAdaptiveClass.equals(clazz)) {\n-            throw new IllegalStateException(\"More than 1 adaptive class found: \"\n-                    + cachedAdaptiveClass.getName()\n-                    + \", \" + clazz.getName());\n-        }\n-    }\n-\n-    /**\n-     * cache wrapper class\n-     * <p>\n-     * like: ProtocolFilterWrapper, ProtocolListenerWrapper\n-     */\n-    private void cacheWrapperClass(Class<?> clazz) {\n-        if (cachedWrapperClasses == null) {\n-            cachedWrapperClasses = new ConcurrentHashSet<>();\n-        }\n-        cachedWrapperClasses.add(clazz);\n-    }\n-\n-    /**\n-     * test if clazz is a wrapper class\n-     * <p>\n-     * which has Constructor with given class type as its only argument\n-     */\n-    private boolean isWrapperClass(Class<?> clazz) {\n-        try {\n-            clazz.getConstructor(type);\n-            return true;\n-        } catch (NoSuchMethodException e) {\n-            return false;\n-        }\n-    }\n-\n-    @SuppressWarnings(\"deprecation\")\n-    private String findAnnotationName(Class<?> clazz) {\n-        org.apache.dubbo.common.Extension extension = clazz.getAnnotation(org.apache.dubbo.common.Extension.class);\n-        if (extension != null) {\n-            return extension.value();\n-        }\n-\n-        String name = clazz.getSimpleName();\n-        if (name.endsWith(type.getSimpleName())) {\n-            name = name.substring(0, name.length() - type.getSimpleName().length());\n-        }\n-        return name.toLowerCase();\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private T createAdaptiveExtension() {\n-        try {\n-            return injectExtension((T) getAdaptiveExtensionClass().newInstance());\n-        } catch (Exception e) {\n-            throw new IllegalStateException(\"Can't create adaptive extension \" + type + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private Class<?> getAdaptiveExtensionClass() {\n-        getExtensionClasses();\n-        if (cachedAdaptiveClass != null) {\n-            return cachedAdaptiveClass;\n-        }\n-        return cachedAdaptiveClass = createAdaptiveExtensionClass();\n-    }\n-\n-    private Class<?> createAdaptiveExtensionClass() {\n-        String code = new AdaptiveClassCodeGenerator(type, cachedDefaultName).generate();\n-        ClassLoader classLoader = findClassLoader();\n-        org.apache.dubbo.common.compiler.Compiler compiler = ExtensionLoader.getExtensionLoader(org.apache.dubbo.common.compiler.Compiler.class).getAdaptiveExtension();\n-        return compiler.compile(code, classLoader);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return this.getClass().getName() + \"[\" + type.getName() + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.context.Lifecycle;\r\n+import org.apache.dubbo.common.extension.support.ActivateComparator;\r\n+import org.apache.dubbo.common.extension.support.WrapperComparator;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.Holder;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.io.BufferedReader;\r\n+import java.io.InputStreamReader;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.Enumeration;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.ServiceLoader;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.regex.Pattern;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.sort;\r\n+import static java.util.ServiceLoader.load;\r\n+import static java.util.stream.StreamSupport.stream;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOVE_VALUE_PREFIX;\r\n+\r\n+/**\r\n+ * {@link org.apache.dubbo.rpc.model.ApplicationModel}, {@code DubboBootstrap} and this class are\r\n+ * at present designed to be singleton or static (by itself totally static or uses some static fields).\r\n+ * So the instances returned from them are of process or classloader scope. If you want to support\r\n+ * multiple dubbo servers in a single process, you may need to refactor these three classes.\r\n+ * <p>\r\n+ * Load dubbo extensions\r\n+ * <ul>\r\n+ * <li>auto inject dependency extension </li>\r\n+ * <li>auto wrap extension in wrapper </li>\r\n+ * <li>default extension is an adaptive instance</li>\r\n+ * </ul>\r\n+ *\r\n+ * @see <a href=\"http://java.sun.com/j2se/1.5.0/docs/guide/jar/jar.html#Service%20Provider\">Service Provider in Java 5</a>\r\n+ * @see org.apache.dubbo.common.extension.SPI\r\n+ * @see org.apache.dubbo.common.extension.Adaptive\r\n+ * @see org.apache.dubbo.common.extension.Activate\r\n+ */\r\n+public class ExtensionLoader<T> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ExtensionLoader.class);\r\n+\r\n+    private static final Pattern NAME_SEPARATOR = Pattern.compile(\"\\\\s*[,]+\\\\s*\");\r\n+\r\n+    private static final ConcurrentMap<Class<?>, ExtensionLoader<?>> EXTENSION_LOADERS = new ConcurrentHashMap<>(64);\r\n+\r\n+    private static final ConcurrentMap<Class<?>, Object> EXTENSION_INSTANCES = new ConcurrentHashMap<>(64);\r\n+\r\n+    private final Class<?> type;\r\n+\r\n+    private final ExtensionFactory objectFactory;\r\n+\r\n+    private final ConcurrentMap<Class<?>, String> cachedNames = new ConcurrentHashMap<>();\r\n+\r\n+    private final Holder<Map<String, Class<?>>> cachedClasses = new Holder<>();\r\n+\r\n+    private final Map<String, Object> cachedActivates = new ConcurrentHashMap<>();\r\n+    private final ConcurrentMap<String, Holder<Object>> cachedInstances = new ConcurrentHashMap<>();\r\n+    private final Holder<Object> cachedAdaptiveInstance = new Holder<>();\r\n+    private volatile Class<?> cachedAdaptiveClass = null;\r\n+    private String cachedDefaultName;\r\n+    private volatile Throwable createAdaptiveInstanceError;\r\n+\r\n+    private Set<Class<?>> cachedWrapperClasses;\r\n+\r\n+    private Map<String, IllegalStateException> exceptions = new ConcurrentHashMap<>();\r\n+\r\n+    private static volatile LoadingStrategy[] strategies = loadLoadingStrategies();\r\n+\r\n+    public static void setLoadingStrategies(LoadingStrategy... strategies) {\r\n+        if (ArrayUtils.isNotEmpty(strategies)) {\r\n+            ExtensionLoader.strategies = strategies;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Load all {@link Prioritized prioritized} {@link LoadingStrategy Loading Strategies} via {@link ServiceLoader}\r\n+     *\r\n+     * @return non-null\r\n+     * @since 2.7.7\r\n+     */\r\n+    private static LoadingStrategy[] loadLoadingStrategies() {\r\n+        return stream(load(LoadingStrategy.class).spliterator(), false)\r\n+                .sorted()\r\n+                .toArray(LoadingStrategy[]::new);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all {@link LoadingStrategy Loading Strategies}\r\n+     *\r\n+     * @return non-null\r\n+     * @see LoadingStrategy\r\n+     * @see Prioritized\r\n+     * @since 2.7.7\r\n+     */\r\n+    public static List<LoadingStrategy> getLoadingStrategies() {\r\n+        return asList(strategies);\r\n+    }\r\n+\r\n+    private ExtensionLoader(Class<?> type) {\r\n+        this.type = type;\r\n+        objectFactory = (type == ExtensionFactory.class ? null : ExtensionLoader.getExtensionLoader(ExtensionFactory.class).getAdaptiveExtension());\r\n+    }\r\n+\r\n+    private static <T> boolean withExtensionAnnotation(Class<T> type) {\r\n+        return type.isAnnotationPresent(SPI.class);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public static <T> ExtensionLoader<T> getExtensionLoader(Class<T> type) {\r\n+        if (type == null) {\r\n+            throw new IllegalArgumentException(\"Extension type == null\");\r\n+        }\r\n+        if (!type.isInterface()) {\r\n+            throw new IllegalArgumentException(\"Extension type (\" + type + \") is not an interface!\");\r\n+        }\r\n+        if (!withExtensionAnnotation(type)) {\r\n+            throw new IllegalArgumentException(\"Extension type (\" + type +\r\n+                    \") is not an extension, because it is NOT annotated with @\" + SPI.class.getSimpleName() + \"!\");\r\n+        }\r\n+\r\n+        ExtensionLoader<T> loader = (ExtensionLoader<T>) EXTENSION_LOADERS.get(type);\r\n+        if (loader == null) {\r\n+            EXTENSION_LOADERS.putIfAbsent(type, new ExtensionLoader<T>(type));\r\n+            loader = (ExtensionLoader<T>) EXTENSION_LOADERS.get(type);\r\n+        }\r\n+        return loader;\r\n+    }\r\n+\r\n+    // For testing purposes only\r\n+    public static void resetExtensionLoader(Class type) {\r\n+        ExtensionLoader loader = EXTENSION_LOADERS.get(type);\r\n+        if (loader != null) {\r\n+            // Remove all instances associated with this loader as well\r\n+            Map<String, Class<?>> classes = loader.getExtensionClasses();\r\n+            for (Map.Entry<String, Class<?>> entry : classes.entrySet()) {\r\n+                EXTENSION_INSTANCES.remove(entry.getValue());\r\n+            }\r\n+            classes.clear();\r\n+            EXTENSION_LOADERS.remove(type);\r\n+        }\r\n+    }\r\n+\r\n+    public static void destroyAll() {\r\n+        EXTENSION_INSTANCES.forEach((_type, instance) -> {\r\n+            if (instance instanceof Lifecycle) {\r\n+                Lifecycle lifecycle = (Lifecycle) instance;\r\n+                try {\r\n+                    lifecycle.destroy();\r\n+                } catch (Exception e) {\r\n+                    logger.error(\"Error destroying extension \" + lifecycle, e);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private static ClassLoader findClassLoader() {\r\n+        return ClassUtils.getClassLoader(ExtensionLoader.class);\r\n+    }\r\n+\r\n+    public String getExtensionName(T extensionInstance) {\r\n+        return getExtensionName(extensionInstance.getClass());\r\n+    }\r\n+\r\n+    public String getExtensionName(Class<?> extensionClass) {\r\n+        getExtensionClasses();// load class\r\n+        return cachedNames.get(extensionClass);\r\n+    }\r\n+\r\n+    /**\r\n+     * This is equivalent to {@code getActivateExtension(url, key, null)}\r\n+     *\r\n+     * @param url url\r\n+     * @param key url parameter key which used to get extension point names\r\n+     * @return extension list which are activated.\r\n+     * @see #getActivateExtension(org.apache.dubbo.common.URL, String, String)\r\n+     */\r\n+    public List<T> getActivateExtension(URL url, String key) {\r\n+        return getActivateExtension(url, key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * This is equivalent to {@code getActivateExtension(url, values, null)}\r\n+     *\r\n+     * @param url    url\r\n+     * @param values extension point names\r\n+     * @return extension list which are activated\r\n+     * @see #getActivateExtension(org.apache.dubbo.common.URL, String[], String)\r\n+     */\r\n+    public List<T> getActivateExtension(URL url, String[] values) {\r\n+        return getActivateExtension(url, values, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * This is equivalent to {@code getActivateExtension(url, url.getParameter(key).split(\",\"), null)}\r\n+     *\r\n+     * @param url   url\r\n+     * @param key   url parameter key which used to get extension point names\r\n+     * @param group group\r\n+     * @return extension list which are activated.\r\n+     * @see #getActivateExtension(org.apache.dubbo.common.URL, String[], String)\r\n+     */\r\n+    public List<T> getActivateExtension(URL url, String key, String group) {\r\n+        String value = url.getParameter(key);\r\n+        return getActivateExtension(url, StringUtils.isEmpty(value) ? null : COMMA_SPLIT_PATTERN.split(value), group);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get activate extensions.\r\n+     *\r\n+     * @param url    url\r\n+     * @param values extension point names\r\n+     * @param group  group\r\n+     * @return extension list which are activated\r\n+     * @see org.apache.dubbo.common.extension.Activate\r\n+     */\r\n+    public List<T> getActivateExtension(URL url, String[] values, String group) {\r\n+        List<T> activateExtensions = new ArrayList<>();\r\n+        List<String> names = values == null ? new ArrayList<>(0) : asList(values);\r\n+        if (!names.contains(REMOVE_VALUE_PREFIX + DEFAULT_KEY)) {\r\n+            getExtensionClasses();\r\n+            for (Map.Entry<String, Object> entry : cachedActivates.entrySet()) {\r\n+                String name = entry.getKey();\r\n+                Object activate = entry.getValue();\r\n+\r\n+                String[] activateGroup, activateValue;\r\n+\r\n+                if (activate instanceof Activate) {\r\n+                    activateGroup = ((Activate) activate).group();\r\n+                    activateValue = ((Activate) activate).value();\r\n+                } else if (activate instanceof com.alibaba.dubbo.common.extension.Activate) {\r\n+                    activateGroup = ((com.alibaba.dubbo.common.extension.Activate) activate).group();\r\n+                    activateValue = ((com.alibaba.dubbo.common.extension.Activate) activate).value();\r\n+                } else {\r\n+                    continue;\r\n+                }\r\n+                if (isMatchGroup(group, activateGroup)\r\n+                        && !names.contains(name)\r\n+                        && !names.contains(REMOVE_VALUE_PREFIX + name)\r\n+                        && isActive(activateValue, url)) {\r\n+                    activateExtensions.add(getExtension(name));\r\n+                }\r\n+            }\r\n+            activateExtensions.sort(ActivateComparator.COMPARATOR);\r\n+        }\r\n+        List<T> loadedExtensions = new ArrayList<>();\r\n+        for (int i = 0; i < names.size(); i++) {\r\n+            String name = names.get(i);\r\n+            if (!name.startsWith(REMOVE_VALUE_PREFIX)\r\n+                    && !names.contains(REMOVE_VALUE_PREFIX + name)) {\r\n+                if (DEFAULT_KEY.equals(name)) {\r\n+                    if (!loadedExtensions.isEmpty()) {\r\n+                        activateExtensions.addAll(0, loadedExtensions);\r\n+                        loadedExtensions.clear();\r\n+                    }\r\n+                } else {\r\n+                    loadedExtensions.add(getExtension(name));\r\n+                }\r\n+            }\r\n+        }\r\n+        if (!loadedExtensions.isEmpty()) {\r\n+            activateExtensions.addAll(loadedExtensions);\r\n+        }\r\n+        return activateExtensions;\r\n+    }\r\n+\r\n+    private boolean isMatchGroup(String group, String[] groups) {\r\n+        if (StringUtils.isEmpty(group)) {\r\n+            return true;\r\n+        }\r\n+        if (groups != null && groups.length > 0) {\r\n+            for (String g : groups) {\r\n+                if (group.equals(g)) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private boolean isActive(String[] keys, URL url) {\r\n+        if (keys.length == 0) {\r\n+            return true;\r\n+        }\r\n+        for (String key : keys) {\r\n+            // @Active(value=\"key1:value1, key2:value2\")\r\n+            String keyValue = null;\r\n+            if (key.contains(\":\")) {\r\n+                String[] arr = key.split(\":\");\r\n+                key = arr[0];\r\n+                keyValue = arr[1];\r\n+            }\r\n+\r\n+            for (Map.Entry<String, String> entry : url.getParameters().entrySet()) {\r\n+                String k = entry.getKey();\r\n+                String v = entry.getValue();\r\n+                if ((k.equals(key) || k.endsWith(\".\" + key))\r\n+                        && ((keyValue != null && keyValue.equals(v)) || (keyValue == null && ConfigUtils.isNotEmpty(v)))) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get extension's instance. Return <code>null</code> if extension is not found or is not initialized. Pls. note\r\n+     * that this method will not trigger extension load.\r\n+     * <p>\r\n+     * In order to trigger extension load, call {@link #getExtension(String)} instead.\r\n+     *\r\n+     * @see #getExtension(String)\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public T getLoadedExtension(String name) {\r\n+        if (StringUtils.isEmpty(name)) {\r\n+            throw new IllegalArgumentException(\"Extension name == null\");\r\n+        }\r\n+        Holder<Object> holder = getOrCreateHolder(name);\r\n+        return (T) holder.get();\r\n+    }\r\n+\r\n+    private Holder<Object> getOrCreateHolder(String name) {\r\n+        Holder<Object> holder = cachedInstances.get(name);\r\n+        if (holder == null) {\r\n+            cachedInstances.putIfAbsent(name, new Holder<>());\r\n+            holder = cachedInstances.get(name);\r\n+        }\r\n+        return holder;\r\n+    }\r\n+\r\n+    /**\r\n+     * Return the list of extensions which are already loaded.\r\n+     * <p>\r\n+     * Usually {@link #getSupportedExtensions()} should be called in order to get all extensions.\r\n+     *\r\n+     * @see #getSupportedExtensions()\r\n+     */\r\n+    public Set<String> getLoadedExtensions() {\r\n+        return Collections.unmodifiableSet(new TreeSet<>(cachedInstances.keySet()));\r\n+    }\r\n+\r\n+    public List<T> getLoadedExtensionInstances() {\r\n+        List<T> instances = new ArrayList<>();\r\n+        cachedInstances.values().forEach(holder -> instances.add((T) holder.get()));\r\n+        return instances;\r\n+    }\r\n+\r\n+    public Object getLoadedAdaptiveExtensionInstances() {\r\n+        return cachedAdaptiveInstance.get();\r\n+    }\r\n+\r\n+//    public T getPrioritizedExtensionInstance() {\r\n+//        Set<String> supported = getSupportedExtensions();\r\n+//\r\n+//        Set<T> instances = new HashSet<>();\r\n+//        Set<T> prioritized = new HashSet<>();\r\n+//        for (String s : supported) {\r\n+//\r\n+//        }\r\n+//\r\n+//    }\r\n+\r\n+    /**\r\n+     * Find the extension with the given name. If the specified name is not found, then {@link IllegalStateException}\r\n+     * will be thrown.\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public T getExtension(String name) {\r\n+        return getExtension(name, true);\r\n+    }\r\n+\r\n+    public T getExtension(String name, boolean wrap) {\r\n+        if (StringUtils.isEmpty(name)) {\r\n+            throw new IllegalArgumentException(\"Extension name == null\");\r\n+        }\r\n+        if (\"true\".equals(name)) {\r\n+            return getDefaultExtension();\r\n+        }\r\n+        final Holder<Object> holder = getOrCreateHolder(name);\r\n+        Object instance = holder.get();\r\n+        if (instance == null) {\r\n+            synchronized (holder) {\r\n+                instance = holder.get();\r\n+                if (instance == null) {\r\n+                    instance = createExtension(name, wrap);\r\n+                    holder.set(instance);\r\n+                }\r\n+            }\r\n+        }\r\n+        return (T) instance;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the extension by specified name if found, or {@link #getDefaultExtension() returns the default one}\r\n+     *\r\n+     * @param name the name of extension\r\n+     * @return non-null\r\n+     */\r\n+    public T getOrDefaultExtension(String name) {\r\n+        return containsExtension(name) ? getExtension(name) : getDefaultExtension();\r\n+    }\r\n+\r\n+    /**\r\n+     * Return default extension, return <code>null</code> if it's not configured.\r\n+     */\r\n+    public T getDefaultExtension() {\r\n+        getExtensionClasses();\r\n+        if (StringUtils.isBlank(cachedDefaultName) || \"true\".equals(cachedDefaultName)) {\r\n+            return null;\r\n+        }\r\n+        return getExtension(cachedDefaultName);\r\n+    }\r\n+\r\n+    public boolean hasExtension(String name) {\r\n+        if (StringUtils.isEmpty(name)) {\r\n+            throw new IllegalArgumentException(\"Extension name == null\");\r\n+        }\r\n+        Class<?> c = this.getExtensionClass(name);\r\n+        return c != null;\r\n+    }\r\n+\r\n+    public Set<String> getSupportedExtensions() {\r\n+        Map<String, Class<?>> clazzes = getExtensionClasses();\r\n+        return Collections.unmodifiableSet(new TreeSet<>(clazzes.keySet()));\r\n+    }\r\n+\r\n+    public Set<T> getSupportedExtensionInstances() {\r\n+        List<T> instances = new LinkedList<>();\r\n+        Set<String> supportedExtensions = getSupportedExtensions();\r\n+        if (CollectionUtils.isNotEmpty(supportedExtensions)) {\r\n+            for (String name : supportedExtensions) {\r\n+                instances.add(getExtension(name));\r\n+            }\r\n+        }\r\n+        // sort the Prioritized instances\r\n+        sort(instances, Prioritized.COMPARATOR);\r\n+        return new LinkedHashSet<>(instances);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return default extension name, return <code>null</code> if not configured.\r\n+     */\r\n+    public String getDefaultExtensionName() {\r\n+        getExtensionClasses();\r\n+        return cachedDefaultName;\r\n+    }\r\n+\r\n+    /**\r\n+     * Register new extension via API\r\n+     *\r\n+     * @param name  extension name\r\n+     * @param clazz extension class\r\n+     * @throws IllegalStateException when extension with the same name has already been registered.\r\n+     */\r\n+    public void addExtension(String name, Class<?> clazz) {\r\n+        getExtensionClasses(); // load classes\r\n+\r\n+        if (!type.isAssignableFrom(clazz)) {\r\n+            throw new IllegalStateException(\"Input type \" +\r\n+                    clazz + \" doesn't implement the Extension \" + type);\r\n+        }\r\n+        if (clazz.isInterface()) {\r\n+            throw new IllegalStateException(\"Input type \" +\r\n+                    clazz + \" can't be interface!\");\r\n+        }\r\n+\r\n+        if (!clazz.isAnnotationPresent(Adaptive.class)) {\r\n+            if (StringUtils.isBlank(name)) {\r\n+                throw new IllegalStateException(\"Extension name is blank (Extension \" + type + \")!\");\r\n+            }\r\n+            if (cachedClasses.get().containsKey(name)) {\r\n+                throw new IllegalStateException(\"Extension name \" +\r\n+                        name + \" already exists (Extension \" + type + \")!\");\r\n+            }\r\n+\r\n+            cachedNames.put(clazz, name);\r\n+            cachedClasses.get().put(name, clazz);\r\n+        } else {\r\n+            if (cachedAdaptiveClass != null) {\r\n+                throw new IllegalStateException(\"Adaptive Extension already exists (Extension \" + type + \")!\");\r\n+            }\r\n+\r\n+            cachedAdaptiveClass = clazz;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Replace the existing extension via API\r\n+     *\r\n+     * @param name  extension name\r\n+     * @param clazz extension class\r\n+     * @throws IllegalStateException when extension to be placed doesn't exist\r\n+     * @deprecated not recommended any longer, and use only when test\r\n+     */\r\n+    @Deprecated\r\n+    public void replaceExtension(String name, Class<?> clazz) {\r\n+        getExtensionClasses(); // load classes\r\n+\r\n+        if (!type.isAssignableFrom(clazz)) {\r\n+            throw new IllegalStateException(\"Input type \" +\r\n+                    clazz + \" doesn't implement Extension \" + type);\r\n+        }\r\n+        if (clazz.isInterface()) {\r\n+            throw new IllegalStateException(\"Input type \" +\r\n+                    clazz + \" can't be interface!\");\r\n+        }\r\n+\r\n+        if (!clazz.isAnnotationPresent(Adaptive.class)) {\r\n+            if (StringUtils.isBlank(name)) {\r\n+                throw new IllegalStateException(\"Extension name is blank (Extension \" + type + \")!\");\r\n+            }\r\n+            if (!cachedClasses.get().containsKey(name)) {\r\n+                throw new IllegalStateException(\"Extension name \" +\r\n+                        name + \" doesn't exist (Extension \" + type + \")!\");\r\n+            }\r\n+\r\n+            cachedNames.put(clazz, name);\r\n+            cachedClasses.get().put(name, clazz);\r\n+            cachedInstances.remove(name);\r\n+        } else {\r\n+            if (cachedAdaptiveClass == null) {\r\n+                throw new IllegalStateException(\"Adaptive Extension doesn't exist (Extension \" + type + \")!\");\r\n+            }\r\n+\r\n+            cachedAdaptiveClass = clazz;\r\n+            cachedAdaptiveInstance.set(null);\r\n+        }\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public T getAdaptiveExtension() {\r\n+        Object instance = cachedAdaptiveInstance.get();\r\n+        if (instance == null) {\r\n+            if (createAdaptiveInstanceError != null) {\r\n+                throw new IllegalStateException(\"Failed to create adaptive instance: \" +\r\n+                        createAdaptiveInstanceError.toString(),\r\n+                        createAdaptiveInstanceError);\r\n+            }\r\n+\r\n+            synchronized (cachedAdaptiveInstance) {\r\n+                instance = cachedAdaptiveInstance.get();\r\n+                if (instance == null) {\r\n+                    try {\r\n+                        instance = createAdaptiveExtension();\r\n+                        cachedAdaptiveInstance.set(instance);\r\n+                    } catch (Throwable t) {\r\n+                        createAdaptiveInstanceError = t;\r\n+                        throw new IllegalStateException(\"Failed to create adaptive instance: \" + t.toString(), t);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return (T) instance;\r\n+    }\r\n+\r\n+    private IllegalStateException findException(String name) {\r\n+        StringBuilder buf = new StringBuilder(\"No such extension \" + type.getName() + \" by name \" + name);\r\n+\r\n+        int i = 1;\r\n+        for (Map.Entry<String, IllegalStateException> entry : exceptions.entrySet()) {\r\n+            if (entry.getKey().toLowerCase().startsWith(name.toLowerCase())) {\r\n+                if (i == 1) {\r\n+                    buf.append(\", possible causes: \");\r\n+                }\r\n+                buf.append(\"\\r\\n(\");\r\n+                buf.append(i++);\r\n+                buf.append(\") \");\r\n+                buf.append(entry.getKey());\r\n+                buf.append(\":\\r\\n\");\r\n+                buf.append(StringUtils.toString(entry.getValue()));\r\n+            }\r\n+        }\r\n+\r\n+        if (i == 1) {\r\n+            buf.append(\", no related exception was found, please check whether related SPI module is missing.\");\r\n+        }\r\n+        return new IllegalStateException(buf.toString());\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private T createExtension(String name, boolean wrap) {\r\n+        Class<?> clazz = getExtensionClasses().get(name);\r\n+        if (clazz == null) {\r\n+            throw findException(name);\r\n+        }\r\n+        try {\r\n+            T instance = (T) EXTENSION_INSTANCES.get(clazz);\r\n+            if (instance == null) {\r\n+                EXTENSION_INSTANCES.putIfAbsent(clazz, clazz.getDeclaredConstructor().newInstance());\r\n+                instance = (T) EXTENSION_INSTANCES.get(clazz);\r\n+            }\r\n+            injectExtension(instance);\r\n+\r\n+\r\n+            if (wrap) {\r\n+\r\n+                List<Class<?>> wrapperClassesList = new ArrayList<>();\r\n+                if (cachedWrapperClasses != null) {\r\n+                    wrapperClassesList.addAll(cachedWrapperClasses);\r\n+                    wrapperClassesList.sort(WrapperComparator.COMPARATOR);\r\n+                    Collections.reverse(wrapperClassesList);\r\n+                }\r\n+\r\n+                if (CollectionUtils.isNotEmpty(wrapperClassesList)) {\r\n+                    for (Class<?> wrapperClass : wrapperClassesList) {\r\n+                        Wrapper wrapper = wrapperClass.getAnnotation(Wrapper.class);\r\n+                        if (wrapper == null\r\n+                                || (ArrayUtils.contains(wrapper.matches(), name) && !ArrayUtils.contains(wrapper.mismatches(), name))) {\r\n+                            instance = injectExtension((T) wrapperClass.getConstructor(type).newInstance(instance));\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            initExtension(instance);\r\n+            return instance;\r\n+        } catch (Throwable t) {\r\n+            throw new IllegalStateException(\"Extension instance (name: \" + name + \", class: \" +\r\n+                    type + \") couldn't be instantiated: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private boolean containsExtension(String name) {\r\n+        return getExtensionClasses().containsKey(name);\r\n+    }\r\n+\r\n+    private T injectExtension(T instance) {\r\n+\r\n+        if (objectFactory == null) {\r\n+            return instance;\r\n+        }\r\n+\r\n+        try {\r\n+            for (Method method : instance.getClass().getMethods()) {\r\n+                if (!isSetter(method)) {\r\n+                    continue;\r\n+                }\r\n+                /**\r\n+                 * Check {@link DisableInject} to see if we need auto injection for this property\r\n+                 */\r\n+                if (method.getAnnotation(DisableInject.class) != null) {\r\n+                    continue;\r\n+                }\r\n+                Class<?> pt = method.getParameterTypes()[0];\r\n+                if (ReflectUtils.isPrimitives(pt)) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                try {\r\n+                    String property = getSetterProperty(method);\r\n+                    Object object = objectFactory.getExtension(pt, property);\r\n+                    if (object != null) {\r\n+                        method.invoke(instance, object);\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    logger.error(\"Failed to inject via method \" + method.getName()\r\n+                            + \" of interface \" + type.getName() + \": \" + e.getMessage(), e);\r\n+                }\r\n+\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(e.getMessage(), e);\r\n+        }\r\n+        return instance;\r\n+    }\r\n+\r\n+    private void initExtension(T instance) {\r\n+        if (instance instanceof Lifecycle) {\r\n+            Lifecycle lifecycle = (Lifecycle) instance;\r\n+            lifecycle.initialize();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get properties name for setter, for instance: setVersion, return \"version\"\r\n+     * <p>\r\n+     * return \"\", if setter name with length less than 3\r\n+     */\r\n+    private String getSetterProperty(Method method) {\r\n+        return method.getName().length() > 3 ? method.getName().substring(3, 4).toLowerCase() + method.getName().substring(4) : \"\";\r\n+    }\r\n+\r\n+    /**\r\n+     * return true if and only if:\r\n+     * <p>\r\n+     * 1, public\r\n+     * <p>\r\n+     * 2, name starts with \"set\"\r\n+     * <p>\r\n+     * 3, only has one parameter\r\n+     */\r\n+    private boolean isSetter(Method method) {\r\n+        return method.getName().startsWith(\"set\")\r\n+                && method.getParameterTypes().length == 1\r\n+                && Modifier.isPublic(method.getModifiers());\r\n+    }\r\n+\r\n+    private Class<?> getExtensionClass(String name) {\r\n+        if (type == null) {\r\n+            throw new IllegalArgumentException(\"Extension type == null\");\r\n+        }\r\n+        if (name == null) {\r\n+            throw new IllegalArgumentException(\"Extension name == null\");\r\n+        }\r\n+        return getExtensionClasses().get(name);\r\n+    }\r\n+\r\n+    private Map<String, Class<?>> getExtensionClasses() {\r\n+        Map<String, Class<?>> classes = cachedClasses.get();\r\n+        if (classes == null) {\r\n+            synchronized (cachedClasses) {\r\n+                classes = cachedClasses.get();\r\n+                if (classes == null) {\r\n+                    classes = loadExtensionClasses();\r\n+                    cachedClasses.set(classes);\r\n+                }\r\n+            }\r\n+        }\r\n+        return classes;\r\n+    }\r\n+\r\n+    /**\r\n+     * synchronized in getExtensionClasses\r\n+     */\r\n+    private Map<String, Class<?>> loadExtensionClasses() {\r\n+        cacheDefaultExtensionName();\r\n+\r\n+        Map<String, Class<?>> extensionClasses = new HashMap<>();\r\n+\r\n+        for (LoadingStrategy strategy : strategies) {\r\n+            loadDirectory(extensionClasses, strategy.directory(), type.getName(), strategy.preferExtensionClassLoader(), strategy.overridden(), strategy.excludedPackages());\r\n+            loadDirectory(extensionClasses, strategy.directory(), type.getName().replace(\"org.apache\", \"com.alibaba\"), strategy.preferExtensionClassLoader(), strategy.overridden(), strategy.excludedPackages());\r\n+        }\r\n+\r\n+        return extensionClasses;\r\n+    }\r\n+\r\n+    /**\r\n+     * extract and cache default extension name if exists\r\n+     */\r\n+    private void cacheDefaultExtensionName() {\r\n+        final SPI defaultAnnotation = type.getAnnotation(SPI.class);\r\n+        if (defaultAnnotation == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        String value = defaultAnnotation.value();\r\n+        if ((value = value.trim()).length() > 0) {\r\n+            String[] names = NAME_SEPARATOR.split(value);\r\n+            if (names.length > 1) {\r\n+                throw new IllegalStateException(\"More than 1 default extension name on extension \" + type.getName()\r\n+                        + \": \" + Arrays.toString(names));\r\n+            }\r\n+            if (names.length == 1) {\r\n+                cachedDefaultName = names[0];\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void loadDirectory(Map<String, Class<?>> extensionClasses, String dir, String type) {\r\n+        loadDirectory(extensionClasses, dir, type, false, false);\r\n+    }\r\n+\r\n+    private void loadDirectory(Map<String, Class<?>> extensionClasses, String dir, String type,\r\n+                               boolean extensionLoaderClassLoaderFirst, boolean overridden, String... excludedPackages) {\r\n+        String fileName = dir + type;\r\n+        try {\r\n+            Enumeration<java.net.URL> urls = null;\r\n+            ClassLoader classLoader = findClassLoader();\r\n+\r\n+            // try to load from ExtensionLoader's ClassLoader first\r\n+            if (extensionLoaderClassLoaderFirst) {\r\n+                ClassLoader extensionLoaderClassLoader = ExtensionLoader.class.getClassLoader();\r\n+                if (ClassLoader.getSystemClassLoader() != extensionLoaderClassLoader) {\r\n+                    urls = extensionLoaderClassLoader.getResources(fileName);\r\n+                }\r\n+            }\r\n+\r\n+            if (urls == null || !urls.hasMoreElements()) {\r\n+                if (classLoader != null) {\r\n+                    urls = classLoader.getResources(fileName);\r\n+                } else {\r\n+                    urls = ClassLoader.getSystemResources(fileName);\r\n+                }\r\n+            }\r\n+\r\n+            if (urls != null) {\r\n+                while (urls.hasMoreElements()) {\r\n+                    java.net.URL resourceURL = urls.nextElement();\r\n+                    loadResource(extensionClasses, classLoader, resourceURL, overridden, excludedPackages);\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Exception occurred when loading extension class (interface: \" +\r\n+                    type + \", description file: \" + fileName + \").\", t);\r\n+        }\r\n+    }\r\n+\r\n+    private void loadResource(Map<String, Class<?>> extensionClasses, ClassLoader classLoader,\r\n+                              java.net.URL resourceURL, boolean overridden, String... excludedPackages) {\r\n+        try {\r\n+            try (BufferedReader reader = new BufferedReader(new InputStreamReader(resourceURL.openStream(), StandardCharsets.UTF_8))) {\r\n+                String line;\r\n+                String clazz = null;\r\n+                while ((line = reader.readLine()) != null) {\r\n+                    final int ci = line.indexOf('#');\r\n+                    if (ci >= 0) {\r\n+                        line = line.substring(0, ci);\r\n+                    }\r\n+                    line = line.trim();\r\n+                    if (line.length() > 0) {\r\n+                        try {\r\n+                            String name = null;\r\n+                            int i = line.indexOf('=');\r\n+                            if (i > 0) {\r\n+                                name = line.substring(0, i).trim();\r\n+                                clazz = line.substring(i + 1).trim();\r\n+                            } else {\r\n+                                clazz = line;\r\n+                            }\r\n+                            if (StringUtils.isNotEmpty(clazz) && !isExcluded(clazz, excludedPackages)) {\r\n+                                loadClass(extensionClasses, resourceURL, Class.forName(clazz, true, classLoader), name, overridden);\r\n+                            }\r\n+                        } catch (Throwable t) {\r\n+                            IllegalStateException e = new IllegalStateException(\"Failed to load extension class (interface: \" + type + \", class line: \" + line + \") in \" + resourceURL + \", cause: \" + t.getMessage(), t);\r\n+                            exceptions.put(line, e);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Exception occurred when loading extension class (interface: \" +\r\n+                    type + \", class file: \" + resourceURL + \") in \" + resourceURL, t);\r\n+        }\r\n+    }\r\n+\r\n+    private boolean isExcluded(String className, String... excludedPackages) {\r\n+        if (excludedPackages != null) {\r\n+            for (String excludePackage : excludedPackages) {\r\n+                if (className.startsWith(excludePackage + \".\")) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private void loadClass(Map<String, Class<?>> extensionClasses, java.net.URL resourceURL, Class<?> clazz, String name,\r\n+                           boolean overridden) throws NoSuchMethodException {\r\n+        if (!type.isAssignableFrom(clazz)) {\r\n+            throw new IllegalStateException(\"Error occurred when loading extension class (interface: \" +\r\n+                    type + \", class line: \" + clazz.getName() + \"), class \"\r\n+                    + clazz.getName() + \" is not subtype of interface.\");\r\n+        }\r\n+        if (clazz.isAnnotationPresent(Adaptive.class)) {\r\n+            cacheAdaptiveClass(clazz, overridden);\r\n+        } else if (isWrapperClass(clazz)) {\r\n+            cacheWrapperClass(clazz);\r\n+        } else {\r\n+            clazz.getConstructor();\r\n+            if (StringUtils.isEmpty(name)) {\r\n+                name = findAnnotationName(clazz);\r\n+                if (name.length() == 0) {\r\n+                    throw new IllegalStateException(\"No such extension name for the class \" + clazz.getName() + \" in the config \" + resourceURL);\r\n+                }\r\n+            }\r\n+\r\n+            String[] names = NAME_SEPARATOR.split(name);\r\n+            if (ArrayUtils.isNotEmpty(names)) {\r\n+                cacheActivateClass(clazz, names[0]);\r\n+                for (String n : names) {\r\n+                    cacheName(clazz, n);\r\n+                    saveInExtensionClass(extensionClasses, clazz, n, overridden);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * cache name\r\n+     */\r\n+    private void cacheName(Class<?> clazz, String name) {\r\n+        if (!cachedNames.containsKey(clazz)) {\r\n+            cachedNames.put(clazz, name);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * put clazz in extensionClasses\r\n+     */\r\n+    private void saveInExtensionClass(Map<String, Class<?>> extensionClasses, Class<?> clazz, String name, boolean overridden) {\r\n+        Class<?> c = extensionClasses.get(name);\r\n+        if (c == null || overridden) {\r\n+            extensionClasses.put(name, clazz);\r\n+        } else if (c != clazz) {\r\n+            String duplicateMsg = \"Duplicate extension \" + type.getName() + \" name \" + name + \" on \" + c.getName() + \" and \" + clazz.getName();\r\n+            logger.error(duplicateMsg);\r\n+            throw new IllegalStateException(duplicateMsg);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * cache Activate class which is annotated with <code>Activate</code>\r\n+     * <p>\r\n+     * for compatibility, also cache class with old alibaba Activate annotation\r\n+     */\r\n+    private void cacheActivateClass(Class<?> clazz, String name) {\r\n+        Activate activate = clazz.getAnnotation(Activate.class);\r\n+        if (activate != null) {\r\n+            cachedActivates.put(name, activate);\r\n+        } else {\r\n+            // support com.alibaba.dubbo.common.extension.Activate\r\n+            com.alibaba.dubbo.common.extension.Activate oldActivate = clazz.getAnnotation(com.alibaba.dubbo.common.extension.Activate.class);\r\n+            if (oldActivate != null) {\r\n+                cachedActivates.put(name, oldActivate);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * cache Adaptive class which is annotated with <code>Adaptive</code>\r\n+     */\r\n+    private void cacheAdaptiveClass(Class<?> clazz, boolean overridden) {\r\n+        if (cachedAdaptiveClass == null || overridden) {\r\n+            cachedAdaptiveClass = clazz;\r\n+        } else if (!cachedAdaptiveClass.equals(clazz)) {\r\n+            throw new IllegalStateException(\"More than 1 adaptive class found: \"\r\n+                    + cachedAdaptiveClass.getName()\r\n+                    + \", \" + clazz.getName());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * cache wrapper class\r\n+     * <p>\r\n+     * like: ProtocolFilterWrapper, ProtocolListenerWrapper\r\n+     */\r\n+    private void cacheWrapperClass(Class<?> clazz) {\r\n+        if (cachedWrapperClasses == null) {\r\n+            cachedWrapperClasses = new ConcurrentHashSet<>();\r\n+        }\r\n+        cachedWrapperClasses.add(clazz);\r\n+    }\r\n+\r\n+    /**\r\n+     * test if clazz is a wrapper class\r\n+     * <p>\r\n+     * which has Constructor with given class type as its only argument\r\n+     */\r\n+    private boolean isWrapperClass(Class<?> clazz) {\r\n+        try {\r\n+            clazz.getConstructor(type);\r\n+            return true;\r\n+        } catch (NoSuchMethodException e) {\r\n+            return false;\r\n+        }\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"deprecation\")\r\n+    private String findAnnotationName(Class<?> clazz) {\r\n+        org.apache.dubbo.common.Extension extension = clazz.getAnnotation(org.apache.dubbo.common.Extension.class);\r\n+        if (extension != null) {\r\n+            return extension.value();\r\n+        }\r\n+\r\n+        String name = clazz.getSimpleName();\r\n+        if (name.endsWith(type.getSimpleName())) {\r\n+            name = name.substring(0, name.length() - type.getSimpleName().length());\r\n+        }\r\n+        return name.toLowerCase();\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private T createAdaptiveExtension() {\r\n+        try {\r\n+            return injectExtension((T) getAdaptiveExtensionClass().newInstance());\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(\"Can't create adaptive extension \" + type + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private Class<?> getAdaptiveExtensionClass() {\r\n+        getExtensionClasses();\r\n+        if (cachedAdaptiveClass != null) {\r\n+            return cachedAdaptiveClass;\r\n+        }\r\n+        return cachedAdaptiveClass = createAdaptiveExtensionClass();\r\n+    }\r\n+\r\n+    private Class<?> createAdaptiveExtensionClass() {\r\n+        String code = new AdaptiveClassCodeGenerator(type, cachedDefaultName).generate();\r\n+        ClassLoader classLoader = findClassLoader();\r\n+        org.apache.dubbo.common.compiler.Compiler compiler = ExtensionLoader.getExtensionLoader(org.apache.dubbo.common.compiler.Compiler.class).getAdaptiveExtension();\r\n+        return compiler.compile(code, classLoader);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return this.getClass().getName() + \"[\" + type.getName() + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/LoadingStrategy.java", "source2": "org/apache/dubbo/common/extension/LoadingStrategy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-public interface LoadingStrategy extends Prioritized {\n-\n-    String directory();\n-\n-    default boolean preferExtensionClassLoader() {\n-        return false;\n-    }\n-\n-    default String[] excludedPackages() {\n-        return null;\n-    }\n-\n-    /**\n-     * Indicates current {@link LoadingStrategy} supports overriding other lower prioritized instances or not.\n-     *\n-     * @return if supports, return <code>true</code>, or <code>false</code>\n-     * @since 2.7.7\n-     */\n-    default boolean overridden() {\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+public interface LoadingStrategy extends Prioritized {\r\n+\r\n+    String directory();\r\n+\r\n+    default boolean preferExtensionClassLoader() {\r\n+        return false;\r\n+    }\r\n+\r\n+    default String[] excludedPackages() {\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Indicates current {@link LoadingStrategy} supports overriding other lower prioritized instances or not.\r\n+     *\r\n+     * @return if supports, return <code>true</code>, or <code>false</code>\r\n+     * @since 2.7.7\r\n+     */\r\n+    default boolean overridden() {\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/ServicesLoadingStrategy.java", "source2": "org/apache/dubbo/common/extension/ServicesLoadingStrategy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-/**\n- * Services {@link LoadingStrategy}\n- *\n- * @since 2.7.7\n- */\n-public class ServicesLoadingStrategy implements LoadingStrategy {\n-\n-    @Override\n-    public String directory() {\n-        return \"META-INF/services/\";\n-    }\n-\n-    @Override\n-    public boolean overridden() {\n-        return true;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return MIN_PRIORITY;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+/**\r\n+ * Services {@link LoadingStrategy}\r\n+ *\r\n+ * @since 2.7.7\r\n+ */\r\n+public class ServicesLoadingStrategy implements LoadingStrategy {\r\n+\r\n+    @Override\r\n+    public String directory() {\r\n+        return \"META-INF/services/\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean overridden() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return MIN_PRIORITY;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/Wrapper.java", "source2": "org/apache/dubbo/common/extension/Wrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension;\n-\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-\n-/**\n- * The annotated class will only work as a wrapper when the condition matches.\n- */\n-@Retention(RetentionPolicy.RUNTIME)\n-public @interface Wrapper {\n-\n-    /**\n-     * the extension names that need to be wrapped.\n-     */\n-    String[] matches() default {};\n-\n-    /**\n-     * the extension names that need to be excluded.\n-     */\n-    String[] mismatches() default {};\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension;\r\n+\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+\r\n+/**\r\n+ * The annotated class will only work as a wrapper when the condition matches.\r\n+ */\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+public @interface Wrapper {\r\n+\r\n+    /**\r\n+     * the extension names that need to be wrapped.\r\n+     */\r\n+    String[] matches() default {};\r\n+\r\n+    /**\r\n+     * the extension names that need to be excluded.\r\n+     */\r\n+    String[] mismatches() default {};\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/extension/support/WrapperComparator.java", "source2": "org/apache/dubbo/common/extension/support/WrapperComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.extension.support;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Comparator;\n-\n-/**\n- * OrderComparator\n- */\n-public class WrapperComparator implements Comparator<Object> {\n-\n-    public static final Comparator<Object> COMPARATOR = new WrapperComparator();\n-\n-    @Override\n-    public int compare(Object o1, Object o2) {\n-        if (o1 == null && o2 == null) {\n-            return 0;\n-        }\n-        if (o1 == null) {\n-            return -1;\n-        }\n-        if (o2 == null) {\n-            return 1;\n-        }\n-        if (o1.equals(o2)) {\n-            return 0;\n-        }\n-\n-        Class clazz1 = (Class) o1;\n-        Class clazz2 = (Class) o2;\n-\n-        Class<?> inf = findSpi(clazz1);\n-\n-        OrderInfo a1 = parseOrder(clazz1);\n-        OrderInfo a2 = parseOrder(clazz2);\n-\n-        int n1 = a1 == null ? 0 : a1.order;\n-        int n2 = a2 == null ? 0 : a2.order;\n-        // never return 0 even if n1 equals n2, otherwise, o1 and o2 will override each other in collection like HashSet\n-        return n1 > n2 ? 1 : -1;\n-    }\n-\n-    private Class<?> findSpi(Class clazz) {\n-        if (clazz.getInterfaces().length == 0) {\n-            return null;\n-        }\n-\n-        for (Class<?> intf : clazz.getInterfaces()) {\n-            if (intf.isAnnotationPresent(SPI.class)) {\n-                return intf;\n-            } else {\n-                Class result = findSpi(intf);\n-                if (result != null) {\n-                    return result;\n-                }\n-            }\n-        }\n-\n-        return null;\n-    }\n-\n-    private OrderInfo parseOrder(Class<?> clazz) {\n-        OrderInfo info = new OrderInfo();\n-        if (clazz.isAnnotationPresent(Activate.class)) {\n-            Activate activate = clazz.getAnnotation(Activate.class);\n-            info.order = activate.order();\n-        } else if (clazz.isAnnotationPresent(com.alibaba.dubbo.common.extension.Activate.class)) {\n-            com.alibaba.dubbo.common.extension.Activate activate = clazz.getAnnotation(\n-                    com.alibaba.dubbo.common.extension.Activate.class);\n-            info.order = activate.order();\n-        }\n-        return info;\n-    }\n-\n-    private static class OrderInfo {\n-        private int order;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.extension.support;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Comparator;\r\n+\r\n+/**\r\n+ * OrderComparator\r\n+ */\r\n+public class WrapperComparator implements Comparator<Object> {\r\n+\r\n+    public static final Comparator<Object> COMPARATOR = new WrapperComparator();\r\n+\r\n+    @Override\r\n+    public int compare(Object o1, Object o2) {\r\n+        if (o1 == null && o2 == null) {\r\n+            return 0;\r\n+        }\r\n+        if (o1 == null) {\r\n+            return -1;\r\n+        }\r\n+        if (o2 == null) {\r\n+            return 1;\r\n+        }\r\n+        if (o1.equals(o2)) {\r\n+            return 0;\r\n+        }\r\n+\r\n+        Class clazz1 = (Class) o1;\r\n+        Class clazz2 = (Class) o2;\r\n+\r\n+        Class<?> inf = findSpi(clazz1);\r\n+\r\n+        OrderInfo a1 = parseOrder(clazz1);\r\n+        OrderInfo a2 = parseOrder(clazz2);\r\n+\r\n+        int n1 = a1 == null ? 0 : a1.order;\r\n+        int n2 = a2 == null ? 0 : a2.order;\r\n+        // never return 0 even if n1 equals n2, otherwise, o1 and o2 will override each other in collection like HashSet\r\n+        return n1 > n2 ? 1 : -1;\r\n+    }\r\n+\r\n+    private Class<?> findSpi(Class clazz) {\r\n+        if (clazz.getInterfaces().length == 0) {\r\n+            return null;\r\n+        }\r\n+\r\n+        for (Class<?> intf : clazz.getInterfaces()) {\r\n+            if (intf.isAnnotationPresent(SPI.class)) {\r\n+                return intf;\r\n+            } else {\r\n+                Class result = findSpi(intf);\r\n+                if (result != null) {\r\n+                    return result;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+    private OrderInfo parseOrder(Class<?> clazz) {\r\n+        OrderInfo info = new OrderInfo();\r\n+        if (clazz.isAnnotationPresent(Activate.class)) {\r\n+            Activate activate = clazz.getAnnotation(Activate.class);\r\n+            info.order = activate.order();\r\n+        } else if (clazz.isAnnotationPresent(com.alibaba.dubbo.common.extension.Activate.class)) {\r\n+            com.alibaba.dubbo.common.extension.Activate activate = clazz.getAnnotation(\r\n+                    com.alibaba.dubbo.common.extension.Activate.class);\r\n+            info.order = activate.order();\r\n+        }\r\n+        return info;\r\n+    }\r\n+\r\n+    private static class OrderInfo {\r\n+        private int order;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/function/Predicates.java", "source2": "org/apache/dubbo/common/function/Predicates.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.function;\n-\n-import java.util.function.Predicate;\n-\n-import static java.util.stream.Stream.of;\n-\n-/**\n- * The utilities class for Java {@link Predicate}\n- *\n- * @since 2.7.5\n- */\n-public interface Predicates {\n-\n-    Predicate[] EMPTY_ARRAY = new Predicate[0];\n-\n-    /**\n-     * {@link Predicate} always return <code>true</code>\n-     *\n-     * @param <T> the type to test\n-     * @return <code>true</code>\n-     */\n-    static <T> Predicate<T> alwaysTrue() {\n-        return e -> true;\n-    }\n-\n-    /**\n-     * {@link Predicate} always return <code>false</code>\n-     *\n-     * @param <T> the type to test\n-     * @return <code>false</code>\n-     */\n-    static <T> Predicate<T> alwaysFalse() {\n-        return e -> false;\n-    }\n-\n-    /**\n-     * a composed predicate that represents a short-circuiting logical AND of {@link Predicate predicates}\n-     *\n-     * @param predicates {@link Predicate predicates}\n-     * @param <T>        the type to test\n-     * @return non-null\n-     */\n-    static <T> Predicate<T> and(Predicate<T>... predicates) {\n-        return of(predicates).reduce((a, b) -> a.and(b)).orElseGet(Predicates::alwaysTrue);\n-    }\n-\n-    /**\n-     * a composed predicate that represents a short-circuiting logical OR of {@link Predicate predicates}\n-     *\n-     * @param predicates {@link Predicate predicates}\n-     * @param <T>        the detected type\n-     * @return non-null\n-     */\n-    static <T> Predicate<T> or(Predicate<T>... predicates) {\n-        return of(predicates).reduce((a, b) -> a.or(b)).orElse(e -> true);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.function;\r\n+\r\n+import java.util.function.Predicate;\r\n+\r\n+import static java.util.stream.Stream.of;\r\n+\r\n+/**\r\n+ * The utilities class for Java {@link Predicate}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Predicates {\r\n+\r\n+    Predicate[] EMPTY_ARRAY = new Predicate[0];\r\n+\r\n+    /**\r\n+     * {@link Predicate} always return <code>true</code>\r\n+     *\r\n+     * @param <T> the type to test\r\n+     * @return <code>true</code>\r\n+     */\r\n+    static <T> Predicate<T> alwaysTrue() {\r\n+        return e -> true;\r\n+    }\r\n+\r\n+    /**\r\n+     * {@link Predicate} always return <code>false</code>\r\n+     *\r\n+     * @param <T> the type to test\r\n+     * @return <code>false</code>\r\n+     */\r\n+    static <T> Predicate<T> alwaysFalse() {\r\n+        return e -> false;\r\n+    }\r\n+\r\n+    /**\r\n+     * a composed predicate that represents a short-circuiting logical AND of {@link Predicate predicates}\r\n+     *\r\n+     * @param predicates {@link Predicate predicates}\r\n+     * @param <T>        the type to test\r\n+     * @return non-null\r\n+     */\r\n+    static <T> Predicate<T> and(Predicate<T>... predicates) {\r\n+        return of(predicates).reduce((a, b) -> a.and(b)).orElseGet(Predicates::alwaysTrue);\r\n+    }\r\n+\r\n+    /**\r\n+     * a composed predicate that represents a short-circuiting logical OR of {@link Predicate predicates}\r\n+     *\r\n+     * @param predicates {@link Predicate predicates}\r\n+     * @param <T>        the detected type\r\n+     * @return non-null\r\n+     */\r\n+    static <T> Predicate<T> or(Predicate<T>... predicates) {\r\n+        return of(predicates).reduce((a, b) -> a.or(b)).orElse(e -> true);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/function/Streams.java", "source2": "org/apache/dubbo/common/function/Streams.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.function;\n-\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.function.Predicate;\n-import java.util.stream.Stream;\n-\n-import static java.util.stream.Collectors.toList;\n-import static java.util.stream.StreamSupport.stream;\n-import static org.apache.dubbo.common.function.Predicates.and;\n-import static org.apache.dubbo.common.function.Predicates.or;\n-\n-/**\n- * The utilities class for {@link Stream}\n- *\n- * @since 2.7.5\n- */\n-public interface Streams {\n-\n-    static <T, S extends Iterable<T>> Stream<T> filterStream(S values, Predicate<T> predicate) {\n-        return stream(values.spliterator(), false).filter(predicate);\n-    }\n-\n-    static <T, S extends Iterable<T>> List<T> filterList(S values, Predicate<T> predicate) {\n-        return filterStream(values, predicate).collect(toList());\n-    }\n-\n-    static <T, S extends Iterable<T>> Set<T> filterSet(S values, Predicate<T> predicate) {\n-        // new Set with insertion order\n-        return filterStream(values, predicate).collect(LinkedHashSet::new, Set::add, Set::addAll);\n-    }\n-\n-    static <T, S extends Iterable<T>> S filter(S values, Predicate<T> predicate) {\n-        final boolean isSet = Set.class.isAssignableFrom(values.getClass());\n-        return (S) (isSet ? filterSet(values, predicate) : filterList(values, predicate));\n-    }\n-\n-    static <T, S extends Iterable<T>> S filterAll(S values, Predicate<T>... predicates) {\n-        return filter(values, and(predicates));\n-    }\n-\n-    static <T, S extends Iterable<T>> S filterAny(S values, Predicate<T>... predicates) {\n-        return filter(values, or(predicates));\n-    }\n-\n-    static <T> T filterFirst(Iterable<T> values, Predicate<T>... predicates) {\n-        return stream(values.spliterator(), false)\n-                .filter(and(predicates))\n-                .findFirst()\n-                .orElse(null);\n-    }\n-}\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.function;\r\n+\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.util.stream.Collectors.toList;\r\n+import static java.util.stream.StreamSupport.stream;\r\n+import static org.apache.dubbo.common.function.Predicates.and;\r\n+import static org.apache.dubbo.common.function.Predicates.or;\r\n+\r\n+/**\r\n+ * The utilities class for {@link Stream}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Streams {\r\n+\r\n+    static <T, S extends Iterable<T>> Stream<T> filterStream(S values, Predicate<T> predicate) {\r\n+        return stream(values.spliterator(), false).filter(predicate);\r\n+    }\r\n+\r\n+    static <T, S extends Iterable<T>> List<T> filterList(S values, Predicate<T> predicate) {\r\n+        return filterStream(values, predicate).collect(toList());\r\n+    }\r\n+\r\n+    static <T, S extends Iterable<T>> Set<T> filterSet(S values, Predicate<T> predicate) {\r\n+        // new Set with insertion order\r\n+        return filterStream(values, predicate).collect(LinkedHashSet::new, Set::add, Set::addAll);\r\n+    }\r\n+\r\n+    static <T, S extends Iterable<T>> S filter(S values, Predicate<T> predicate) {\r\n+        final boolean isSet = Set.class.isAssignableFrom(values.getClass());\r\n+        return (S) (isSet ? filterSet(values, predicate) : filterList(values, predicate));\r\n+    }\r\n+\r\n+    static <T, S extends Iterable<T>> S filterAll(S values, Predicate<T>... predicates) {\r\n+        return filter(values, and(predicates));\r\n+    }\r\n+\r\n+    static <T, S extends Iterable<T>> S filterAny(S values, Predicate<T>... predicates) {\r\n+        return filter(values, or(predicates));\r\n+    }\r\n+\r\n+    static <T> T filterFirst(Iterable<T> values, Predicate<T>... predicates) {\r\n+        return stream(values.spliterator(), false)\r\n+                .filter(and(predicates))\r\n+                .findFirst()\r\n+                .orElse(null);\r\n+    }\r\n+}\r\n+\r\n+\r\n"}, {"source1": "org/apache/dubbo/common/function/ThrowableAction.java", "source2": "org/apache/dubbo/common/function/ThrowableAction.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.function;\n-\n-import java.util.function.Function;\n-\n-/**\n- * A function interface for action with {@link Throwable}\n- *\n- * @see Function\n- * @see Throwable\n- * @since 2.7.5\n- */\n-@FunctionalInterface\n-public interface ThrowableAction {\n-\n-    /**\n-     * Executes the action\n-     *\n-     * @throws Throwable if met with error\n-     */\n-    void execute() throws Throwable;\n-\n-    /**\n-     * Executes {@link ThrowableAction}\n-     *\n-     * @param action {@link ThrowableAction}\n-     * @throws RuntimeException wrap {@link Exception} to {@link RuntimeException}\n-     */\n-    static void execute(ThrowableAction action) throws RuntimeException {\n-        try {\n-            action.execute();\n-        } catch (Throwable e) {\n-            throw new RuntimeException(e);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.function;\r\n+\r\n+import java.util.function.Function;\r\n+\r\n+/**\r\n+ * A function interface for action with {@link Throwable}\r\n+ *\r\n+ * @see Function\r\n+ * @see Throwable\r\n+ * @since 2.7.5\r\n+ */\r\n+@FunctionalInterface\r\n+public interface ThrowableAction {\r\n+\r\n+    /**\r\n+     * Executes the action\r\n+     *\r\n+     * @throws Throwable if met with error\r\n+     */\r\n+    void execute() throws Throwable;\r\n+\r\n+    /**\r\n+     * Executes {@link ThrowableAction}\r\n+     *\r\n+     * @param action {@link ThrowableAction}\r\n+     * @throws RuntimeException wrap {@link Exception} to {@link RuntimeException}\r\n+     */\r\n+    static void execute(ThrowableAction action) throws RuntimeException {\r\n+        try {\r\n+            action.execute();\r\n+        } catch (Throwable e) {\r\n+            throw new RuntimeException(e);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/function/ThrowableConsumer.java", "source2": "org/apache/dubbo/common/function/ThrowableConsumer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,66 +1,66 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.function;\n-\n-import java.util.function.Consumer;\n-import java.util.function.Function;\n-\n-/**\n- * {@link Consumer} with {@link Throwable}\n- *\n- * @param <T> the source type\n- * @see Function\n- * @see Throwable\n- * @since 2.7.5\n- */\n-@FunctionalInterface\n-public interface ThrowableConsumer<T> {\n-\n-    /**\n-     * Applies this function to the given argument.\n-     *\n-     * @param t the function argument\n-     * @throws Throwable if met with any error\n-     */\n-    void accept(T t) throws Throwable;\n-\n-    /**\n-     * Executes {@link ThrowableConsumer}\n-     *\n-     * @param t the function argument\n-     * @throws RuntimeException wrappers {@link Throwable}\n-     */\n-    default void execute(T t) throws RuntimeException {\n-        try {\n-            accept(t);\n-        } catch (Throwable e) {\n-            throw new RuntimeException(e.getMessage(), e.getCause());\n-        }\n-    }\n-\n-    /**\n-     * Executes {@link ThrowableConsumer}\n-     *\n-     * @param t        the function argument\n-     * @param consumer {@link ThrowableConsumer}\n-     * @param <T>      the source type\n-     * @return the result after execution\n-     */\n-    static <T> void execute(T t, ThrowableConsumer<T> consumer) {\n-        consumer.execute(t);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.function;\r\n+\r\n+import java.util.function.Consumer;\r\n+import java.util.function.Function;\r\n+\r\n+/**\r\n+ * {@link Consumer} with {@link Throwable}\r\n+ *\r\n+ * @param <T> the source type\r\n+ * @see Function\r\n+ * @see Throwable\r\n+ * @since 2.7.5\r\n+ */\r\n+@FunctionalInterface\r\n+public interface ThrowableConsumer<T> {\r\n+\r\n+    /**\r\n+     * Applies this function to the given argument.\r\n+     *\r\n+     * @param t the function argument\r\n+     * @throws Throwable if met with any error\r\n+     */\r\n+    void accept(T t) throws Throwable;\r\n+\r\n+    /**\r\n+     * Executes {@link ThrowableConsumer}\r\n+     *\r\n+     * @param t the function argument\r\n+     * @throws RuntimeException wrappers {@link Throwable}\r\n+     */\r\n+    default void execute(T t) throws RuntimeException {\r\n+        try {\r\n+            accept(t);\r\n+        } catch (Throwable e) {\r\n+            throw new RuntimeException(e.getMessage(), e.getCause());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Executes {@link ThrowableConsumer}\r\n+     *\r\n+     * @param t        the function argument\r\n+     * @param consumer {@link ThrowableConsumer}\r\n+     * @param <T>      the source type\r\n+     * @return the result after execution\r\n+     */\r\n+    static <T> void execute(T t, ThrowableConsumer<T> consumer) {\r\n+        consumer.execute(t);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/function/ThrowableFunction.java", "source2": "org/apache/dubbo/common/function/ThrowableFunction.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.function;\n-\n-import java.util.function.Function;\n-\n-/**\n- * {@link Function} with {@link Throwable}\n- *\n- * @param <T> the source type\n- * @param <R> the return type\n- * @see Function\n- * @see Throwable\n- * @since 2.7.5\n- */\n-@FunctionalInterface\n-public interface ThrowableFunction<T, R> {\n-\n-    /**\n-     * Applies this function to the given argument.\n-     *\n-     * @param t the function argument\n-     * @return the function result\n-     * @throws Throwable if met with any error\n-     */\n-    R apply(T t) throws Throwable;\n-\n-    /**\n-     * Executes {@link ThrowableFunction}\n-     *\n-     * @param t the function argument\n-     * @return the function result\n-     * @throws RuntimeException wrappers {@link Throwable}\n-     */\n-    default R execute(T t) throws RuntimeException {\n-        R result = null;\n-        try {\n-            result = apply(t);\n-        } catch (Throwable e) {\n-            throw new RuntimeException(e.getCause());\n-        }\n-        return result;\n-    }\n-\n-    /**\n-     * Executes {@link ThrowableFunction}\n-     *\n-     * @param t        the function argument\n-     * @param function {@link ThrowableFunction}\n-     * @param <T>      the source type\n-     * @param <R>      the return type\n-     * @return the result after execution\n-     */\n-    static <T, R> R execute(T t, ThrowableFunction<T, R> function) {\n-        return function.execute(t);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.function;\r\n+\r\n+import java.util.function.Function;\r\n+\r\n+/**\r\n+ * {@link Function} with {@link Throwable}\r\n+ *\r\n+ * @param <T> the source type\r\n+ * @param <R> the return type\r\n+ * @see Function\r\n+ * @see Throwable\r\n+ * @since 2.7.5\r\n+ */\r\n+@FunctionalInterface\r\n+public interface ThrowableFunction<T, R> {\r\n+\r\n+    /**\r\n+     * Applies this function to the given argument.\r\n+     *\r\n+     * @param t the function argument\r\n+     * @return the function result\r\n+     * @throws Throwable if met with any error\r\n+     */\r\n+    R apply(T t) throws Throwable;\r\n+\r\n+    /**\r\n+     * Executes {@link ThrowableFunction}\r\n+     *\r\n+     * @param t the function argument\r\n+     * @return the function result\r\n+     * @throws RuntimeException wrappers {@link Throwable}\r\n+     */\r\n+    default R execute(T t) throws RuntimeException {\r\n+        R result = null;\r\n+        try {\r\n+            result = apply(t);\r\n+        } catch (Throwable e) {\r\n+            throw new RuntimeException(e.getCause());\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    /**\r\n+     * Executes {@link ThrowableFunction}\r\n+     *\r\n+     * @param t        the function argument\r\n+     * @param function {@link ThrowableFunction}\r\n+     * @param <T>      the source type\r\n+     * @param <R>      the return type\r\n+     * @return the result after execution\r\n+     */\r\n+    static <T, R> R execute(T t, ThrowableFunction<T, R> function) {\r\n+        return function.execute(t);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/infra/InfraAdapter.java", "source2": "org/apache/dubbo/common/infra/InfraAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.infra;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Map;\n-\n-/**\n- * Used to interact with other systems. Typical use cases are:\n- * 1. get extra attributes from underlying infrastructures related to the instance on which Dubbo is currently deploying.\n- * 2. get configurations from third-party systems which maybe useful for a specific component.\n- */\n-\n-@SPI\n-public interface InfraAdapter {\n-\n-    /**\n-     * get extra attributes\n-     *\n-     * @param params application name or hostname are most likely to be used as input params.\n-     * @return\n-     */\n-    Map<String, String> getExtraAttributes(Map<String, String> params);\n-\n-    /**\n-     * @param key\n-     * @return\n-     */\n-    String getAttribute(String key);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.infra;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Used to interact with other systems. Typical use cases are:\r\n+ * 1. get extra attributes from underlying infrastructures related to the instance on which Dubbo is currently deploying.\r\n+ * 2. get configurations from third-party systems which maybe useful for a specific component.\r\n+ */\r\n+\r\n+@SPI\r\n+public interface InfraAdapter {\r\n+\r\n+    /**\r\n+     * get extra attributes\r\n+     *\r\n+     * @param params application name or hostname are most likely to be used as input params.\r\n+     * @return\r\n+     */\r\n+    Map<String, String> getExtraAttributes(Map<String, String> params);\r\n+\r\n+    /**\r\n+     * @param key\r\n+     * @return\r\n+     */\r\n+    String getAttribute(String key);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/infra/support/CmdbAdapter.java", "source2": "org/apache/dubbo/common/infra/support/CmdbAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.infra.support;\n-\n-import org.apache.dubbo.common.infra.InfraAdapter;\n-\n-import java.util.Collections;\n-import java.util.Map;\n-\n-public class CmdbAdapter implements InfraAdapter {\n-\n-    public CmdbAdapter() {\n-        // init;\n-    }\n-\n-    @Override\n-    public Map<String, String> getExtraAttributes(Map<String, String> params) {\n-        return Collections.emptyMap();\n-    }\n-\n-    @Override\n-    public String getAttribute(String key) {\n-        return \"\";\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.infra.support;\r\n+\r\n+import org.apache.dubbo.common.infra.InfraAdapter;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Map;\r\n+\r\n+public class CmdbAdapter implements InfraAdapter {\r\n+\r\n+    public CmdbAdapter() {\r\n+        // init;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getExtraAttributes(Map<String, String> params) {\r\n+        return Collections.emptyMap();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttribute(String key) {\r\n+        return \"\";\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/infra/support/EnvironmentAdapter.java", "source2": "org/apache/dubbo/common/infra/support/EnvironmentAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.infra.support;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.infra.InfraAdapter;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_ENV_KEYS;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_LABELS;\n-import static org.apache.dubbo.common.constants.CommonConstants.EQUAL_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\n-\n-@Activate\n-public class EnvironmentAdapter implements InfraAdapter {\n-\n-    /**\n-     * 1. OS Environment: DUBBO_LABELS=tag=pre;key=value\n-     * 2. JVM Options: -Denv_keys = DUBBO_KEY1, DUBBO_KEY2\n-     */\n-    @Override\n-    public Map<String, String> getExtraAttributes(Map<String, String> params) {\n-        Map<String, String> parameters = new HashMap<>();\n-\n-        String rawLabels = ConfigurationUtils.getProperty(DUBBO_LABELS);\n-        if (StringUtils.isNotEmpty(rawLabels)) {\n-            String[] labelPairs = SEMICOLON_SPLIT_PATTERN.split(rawLabels);\n-            for (String pair : labelPairs) {\n-                String[] label = EQUAL_SPLIT_PATTERN.split(pair);\n-                if (label.length == 2) {\n-                    parameters.put(label[0], label[1]);\n-                }\n-            }\n-        }\n-\n-        String rawKeys = ConfigurationUtils.getProperty(DUBBO_ENV_KEYS);\n-        if (StringUtils.isNotEmpty(rawKeys)) {\n-            String[] keys = COMMA_SPLIT_PATTERN.split(rawKeys);\n-            for (String key : keys) {\n-                String value = ConfigurationUtils.getProperty(key);\n-                if (value != null) {\n-                    parameters.put(key, value);\n-                }\n-            }\n-        }\n-        return parameters;\n-    }\n-\n-    @Override\n-    public String getAttribute(String key) {\n-        return ConfigurationUtils.getProperty(key);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.infra.support;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.infra.InfraAdapter;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_ENV_KEYS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_LABELS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EQUAL_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\r\n+\r\n+@Activate\r\n+public class EnvironmentAdapter implements InfraAdapter {\r\n+\r\n+    /**\r\n+     * 1. OS Environment: DUBBO_LABELS=tag=pre;key=value\r\n+     * 2. JVM Options: -Denv_keys = DUBBO_KEY1, DUBBO_KEY2\r\n+     */\r\n+    @Override\r\n+    public Map<String, String> getExtraAttributes(Map<String, String> params) {\r\n+        Map<String, String> parameters = new HashMap<>();\r\n+\r\n+        String rawLabels = ConfigurationUtils.getProperty(DUBBO_LABELS);\r\n+        if (StringUtils.isNotEmpty(rawLabels)) {\r\n+            String[] labelPairs = SEMICOLON_SPLIT_PATTERN.split(rawLabels);\r\n+            for (String pair : labelPairs) {\r\n+                String[] label = EQUAL_SPLIT_PATTERN.split(pair);\r\n+                if (label.length == 2) {\r\n+                    parameters.put(label[0], label[1]);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        String rawKeys = ConfigurationUtils.getProperty(DUBBO_ENV_KEYS);\r\n+        if (StringUtils.isNotEmpty(rawKeys)) {\r\n+            String[] keys = COMMA_SPLIT_PATTERN.split(rawKeys);\r\n+            for (String key : keys) {\r\n+                String value = ConfigurationUtils.getProperty(key);\r\n+                if (value != null) {\r\n+                    parameters.put(key, value);\r\n+                }\r\n+            }\r\n+        }\r\n+        return parameters;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttribute(String key) {\r\n+        return ConfigurationUtils.getProperty(key);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/io/Bytes.java", "source2": "org/apache/dubbo/common/io/Bytes.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,936 +1,936 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.io;\n-\n-import org.apache.dubbo.common.utils.IOUtils;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.security.MessageDigest;\n-import java.security.NoSuchAlgorithmException;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.zip.DeflaterOutputStream;\n-import java.util.zip.InflaterInputStream;\n-\n-/**\n- * CodecUtils.\n- */\n-\n-public class Bytes {\n-    private static final String C64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"; //default base64.\n-\n-    private static final char[] BASE16 = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}, BASE64 = C64.toCharArray();\n-\n-    private static final int MASK4 = 0x0f, MASK6 = 0x3f, MASK8 = 0xff;\n-\n-    private static final Map<Integer, byte[]> DECODE_TABLE_MAP = new ConcurrentHashMap<Integer, byte[]>();\n-\n-    private static ThreadLocal<MessageDigest> MD = new ThreadLocal<MessageDigest>();\n-\n-    private Bytes() {\n-    }\n-\n-    /**\n-     * byte array copy.\n-     *\n-     * @param src    src.\n-     * @param length new length.\n-     * @return new byte array.\n-     */\n-    public static byte[] copyOf(byte[] src, int length) {\n-        byte[] dest = new byte[length];\n-        System.arraycopy(src, 0, dest, 0, Math.min(src.length, length));\n-        return dest;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @return byte[].\n-     */\n-    public static byte[] short2bytes(short v) {\n-        byte[] ret = {0, 0};\n-        short2bytes(v, ret);\n-        return ret;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void short2bytes(short v, byte[] b) {\n-        short2bytes(v, b, 0);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void short2bytes(short v, byte[] b, int off) {\n-        b[off + 1] = (byte) v;\n-        b[off + 0] = (byte) (v >>> 8);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @return byte[].\n-     */\n-    public static byte[] int2bytes(int v) {\n-        byte[] ret = {0, 0, 0, 0};\n-        int2bytes(v, ret);\n-        return ret;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void int2bytes(int v, byte[] b) {\n-        int2bytes(v, b, 0);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v   value.\n-     * @param b   byte array.\n-     * @param off array offset.\n-     */\n-    public static void int2bytes(int v, byte[] b, int off) {\n-        b[off + 3] = (byte) v;\n-        b[off + 2] = (byte) (v >>> 8);\n-        b[off + 1] = (byte) (v >>> 16);\n-        b[off + 0] = (byte) (v >>> 24);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @return byte[].\n-     */\n-    public static byte[] float2bytes(float v) {\n-        byte[] ret = {0, 0, 0, 0};\n-        float2bytes(v, ret);\n-        return ret;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void float2bytes(float v, byte[] b) {\n-        float2bytes(v, b, 0);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v   value.\n-     * @param b   byte array.\n-     * @param off array offset.\n-     */\n-    public static void float2bytes(float v, byte[] b, int off) {\n-        int i = Float.floatToIntBits(v);\n-        b[off + 3] = (byte) i;\n-        b[off + 2] = (byte) (i >>> 8);\n-        b[off + 1] = (byte) (i >>> 16);\n-        b[off + 0] = (byte) (i >>> 24);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @return byte[].\n-     */\n-    public static byte[] long2bytes(long v) {\n-        byte[] ret = {0, 0, 0, 0, 0, 0, 0, 0};\n-        long2bytes(v, ret);\n-        return ret;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void long2bytes(long v, byte[] b) {\n-        long2bytes(v, b, 0);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v   value.\n-     * @param b   byte array.\n-     * @param off array offset.\n-     */\n-    public static void long2bytes(long v, byte[] b, int off) {\n-        b[off + 7] = (byte) v;\n-        b[off + 6] = (byte) (v >>> 8);\n-        b[off + 5] = (byte) (v >>> 16);\n-        b[off + 4] = (byte) (v >>> 24);\n-        b[off + 3] = (byte) (v >>> 32);\n-        b[off + 2] = (byte) (v >>> 40);\n-        b[off + 1] = (byte) (v >>> 48);\n-        b[off + 0] = (byte) (v >>> 56);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @return byte[].\n-     */\n-    public static byte[] double2bytes(double v) {\n-        byte[] ret = {0, 0, 0, 0, 0, 0, 0, 0};\n-        double2bytes(v, ret);\n-        return ret;\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v value.\n-     * @param b byte array.\n-     */\n-    public static void double2bytes(double v, byte[] b) {\n-        double2bytes(v, b, 0);\n-    }\n-\n-    /**\n-     * to byte array.\n-     *\n-     * @param v   value.\n-     * @param b   byte array.\n-     * @param off array offset.\n-     */\n-    public static void double2bytes(double v, byte[] b, int off) {\n-        long j = Double.doubleToLongBits(v);\n-        b[off + 7] = (byte) j;\n-        b[off + 6] = (byte) (j >>> 8);\n-        b[off + 5] = (byte) (j >>> 16);\n-        b[off + 4] = (byte) (j >>> 24);\n-        b[off + 3] = (byte) (j >>> 32);\n-        b[off + 2] = (byte) (j >>> 40);\n-        b[off + 1] = (byte) (j >>> 48);\n-        b[off + 0] = (byte) (j >>> 56);\n-    }\n-\n-    /**\n-     * to short.\n-     *\n-     * @param b byte array.\n-     * @return short.\n-     */\n-    public static short bytes2short(byte[] b) {\n-        return bytes2short(b, 0);\n-    }\n-\n-    /**\n-     * to short.\n-     *\n-     * @param b   byte array.\n-     * @param off offset.\n-     * @return short.\n-     */\n-    public static short bytes2short(byte[] b, int off) {\n-        return (short) (((b[off + 1] & 0xFF) << 0) +\n-                ((b[off + 0]) << 8));\n-    }\n-\n-    /**\n-     * to int.\n-     *\n-     * @param b byte array.\n-     * @return int.\n-     */\n-    public static int bytes2int(byte[] b) {\n-        return bytes2int(b, 0);\n-    }\n-\n-    /**\n-     * to int.\n-     *\n-     * @param b   byte array.\n-     * @param off offset.\n-     * @return int.\n-     */\n-    public static int bytes2int(byte[] b, int off) {\n-        return ((b[off + 3] & 0xFF) << 0) +\n-                ((b[off + 2] & 0xFF) << 8) +\n-                ((b[off + 1] & 0xFF) << 16) +\n-                ((b[off + 0]) << 24);\n-    }\n-\n-    /**\n-     * to int.\n-     *\n-     * @param b byte array.\n-     * @return int.\n-     */\n-    public static float bytes2float(byte[] b) {\n-        return bytes2float(b, 0);\n-    }\n-\n-    /**\n-     * to int.\n-     *\n-     * @param b   byte array.\n-     * @param off offset.\n-     * @return int.\n-     */\n-    public static float bytes2float(byte[] b, int off) {\n-        int i = ((b[off + 3] & 0xFF) << 0) +\n-                ((b[off + 2] & 0xFF) << 8) +\n-                ((b[off + 1] & 0xFF) << 16) +\n-                ((b[off + 0]) << 24);\n-        return Float.intBitsToFloat(i);\n-    }\n-\n-    /**\n-     * to long.\n-     *\n-     * @param b byte array.\n-     * @return long.\n-     */\n-    public static long bytes2long(byte[] b) {\n-        return bytes2long(b, 0);\n-    }\n-\n-    /**\n-     * to long.\n-     *\n-     * @param b   byte array.\n-     * @param off offset.\n-     * @return long.\n-     */\n-    public static long bytes2long(byte[] b, int off) {\n-        return ((b[off + 7] & 0xFFL) << 0) +\n-                ((b[off + 6] & 0xFFL) << 8) +\n-                ((b[off + 5] & 0xFFL) << 16) +\n-                ((b[off + 4] & 0xFFL) << 24) +\n-                ((b[off + 3] & 0xFFL) << 32) +\n-                ((b[off + 2] & 0xFFL) << 40) +\n-                ((b[off + 1] & 0xFFL) << 48) +\n-                (((long) b[off + 0]) << 56);\n-    }\n-\n-    /**\n-     * to long.\n-     *\n-     * @param b byte array.\n-     * @return double.\n-     */\n-    public static double bytes2double(byte[] b) {\n-        return bytes2double(b, 0);\n-    }\n-\n-    /**\n-     * to long.\n-     *\n-     * @param b   byte array.\n-     * @param off offset.\n-     * @return double.\n-     */\n-    public static double bytes2double(byte[] b, int off) {\n-        long j = ((b[off + 7] & 0xFFL) << 0) +\n-                ((b[off + 6] & 0xFFL) << 8) +\n-                ((b[off + 5] & 0xFFL) << 16) +\n-                ((b[off + 4] & 0xFFL) << 24) +\n-                ((b[off + 3] & 0xFFL) << 32) +\n-                ((b[off + 2] & 0xFFL) << 40) +\n-                ((b[off + 1] & 0xFFL) << 48) +\n-                (((long) b[off + 0]) << 56);\n-        return Double.longBitsToDouble(j);\n-    }\n-\n-    /**\n-     * to hex string.\n-     *\n-     * @param bs byte array.\n-     * @return hex string.\n-     */\n-    public static String bytes2hex(byte[] bs) {\n-        return bytes2hex(bs, 0, bs.length);\n-    }\n-\n-    /**\n-     * to hex string.\n-     *\n-     * @param bs  byte array.\n-     * @param off offset.\n-     * @param len length.\n-     * @return hex string.\n-     */\n-    public static String bytes2hex(byte[] bs, int off, int len) {\n-        if (off < 0) {\n-            throw new IndexOutOfBoundsException(\"bytes2hex: offset < 0, offset is \" + off);\n-        }\n-        if (len < 0) {\n-            throw new IndexOutOfBoundsException(\"bytes2hex: length < 0, length is \" + len);\n-        }\n-        if (off + len > bs.length) {\n-            throw new IndexOutOfBoundsException(\"bytes2hex: offset + length > array length.\");\n-        }\n-\n-        byte b;\n-        int r = off, w = 0;\n-        char[] cs = new char[len * 2];\n-        for (int i = 0; i < len; i++) {\n-            b = bs[r++];\n-            cs[w++] = BASE16[b >> 4 & MASK4];\n-            cs[w++] = BASE16[b & MASK4];\n-        }\n-        return new String(cs);\n-    }\n-\n-    /**\n-     * from hex string.\n-     *\n-     * @param str hex string.\n-     * @return byte array.\n-     */\n-    public static byte[] hex2bytes(String str) {\n-        return hex2bytes(str, 0, str.length());\n-    }\n-\n-    /**\n-     * from hex string.\n-     *\n-     * @param str hex string.\n-     * @param off offset.\n-     * @param len length.\n-     * @return byte array.\n-     */\n-    public static byte[] hex2bytes(final String str, final int off, int len) {\n-        if ((len & 1) == 1) {\n-            throw new IllegalArgumentException(\"hex2bytes: ( len & 1 ) == 1.\");\n-        }\n-\n-        if (off < 0) {\n-            throw new IndexOutOfBoundsException(\"hex2bytes: offset < 0, offset is \" + off);\n-        }\n-        if (len < 0) {\n-            throw new IndexOutOfBoundsException(\"hex2bytes: length < 0, length is \" + len);\n-        }\n-        if (off + len > str.length()) {\n-            throw new IndexOutOfBoundsException(\"hex2bytes: offset + length > array length.\");\n-        }\n-\n-        int num = len / 2, r = off, w = 0;\n-        byte[] b = new byte[num];\n-        for (int i = 0; i < num; i++) {\n-            b[w++] = (byte) (hex(str.charAt(r++)) << 4 | hex(str.charAt(r++)));\n-        }\n-        return b;\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param b byte array.\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(byte[] b) {\n-        return bytes2base64(b, 0, b.length, BASE64);\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param b byte array.\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(byte[] b, int offset, int length) {\n-        return bytes2base64(b, offset, length, BASE64);\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param b    byte array.\n-     * @param code base64 code string(0-63 is base64 char,64 is pad char).\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(byte[] b, String code) {\n-        return bytes2base64(b, 0, b.length, code);\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param b    byte array.\n-     * @param code base64 code string(0-63 is base64 char,64 is pad char).\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(byte[] b, int offset, int length, String code) {\n-        if (code.length() < 64) {\n-            throw new IllegalArgumentException(\"Base64 code length < 64.\");\n-        }\n-\n-        return bytes2base64(b, offset, length, code.toCharArray());\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param b    byte array.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(byte[] b, char[] code) {\n-        return bytes2base64(b, 0, b.length, code);\n-    }\n-\n-    /**\n-     * to base64 string.\n-     *\n-     * @param bs   byte array.\n-     * @param off  offset.\n-     * @param len  length.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return base64 string.\n-     */\n-    public static String bytes2base64(final byte[] bs, final int off, final int len, final char[] code) {\n-        if (off < 0) {\n-            throw new IndexOutOfBoundsException(\"bytes2base64: offset < 0, offset is \" + off);\n-        }\n-        if (len < 0) {\n-            throw new IndexOutOfBoundsException(\"bytes2base64: length < 0, length is \" + len);\n-        }\n-        if (off + len > bs.length) {\n-            throw new IndexOutOfBoundsException(\"bytes2base64: offset + length > array length.\");\n-        }\n-\n-        if (code.length < 64) {\n-            throw new IllegalArgumentException(\"Base64 code length < 64.\");\n-        }\n-\n-        boolean pad = code.length > 64; // has pad char.\n-        int num = len / 3, rem = len % 3, r = off, w = 0;\n-        char[] cs = new char[num * 4 + (rem == 0 ? 0 : pad ? 4 : rem + 1)];\n-\n-        for (int i = 0; i < num; i++) {\n-            int b1 = bs[r++] & MASK8, b2 = bs[r++] & MASK8, b3 = bs[r++] & MASK8;\n-\n-            cs[w++] = code[b1 >> 2];\n-            cs[w++] = code[(b1 << 4) & MASK6 | (b2 >> 4)];\n-            cs[w++] = code[(b2 << 2) & MASK6 | (b3 >> 6)];\n-            cs[w++] = code[b3 & MASK6];\n-        }\n-\n-        if (rem == 1) {\n-            int b1 = bs[r++] & MASK8;\n-            cs[w++] = code[b1 >> 2];\n-            cs[w++] = code[(b1 << 4) & MASK6];\n-            if (pad) {\n-                cs[w++] = code[64];\n-                cs[w++] = code[64];\n-            }\n-        } else if (rem == 2) {\n-            int b1 = bs[r++] & MASK8, b2 = bs[r++] & MASK8;\n-            cs[w++] = code[b1 >> 2];\n-            cs[w++] = code[(b1 << 4) & MASK6 | (b2 >> 4)];\n-            cs[w++] = code[(b2 << 2) & MASK6];\n-            if (pad) {\n-                cs[w++] = code[64];\n-            }\n-        }\n-        return new String(cs);\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str base64 string.\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(String str) {\n-        return base642bytes(str, 0, str.length());\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str    base64 string.\n-     * @param offset offset.\n-     * @param length length.\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(String str, int offset, int length) {\n-        return base642bytes(str, offset, length, C64);\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str  base64 string.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(String str, String code) {\n-        return base642bytes(str, 0, str.length(), code);\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str  base64 string.\n-     * @param off  offset.\n-     * @param len  length.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(final String str, final int off, final int len, final String code) {\n-        if (off < 0) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: offset < 0, offset is \" + off);\n-        }\n-        if (len < 0) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: length < 0, length is \" + len);\n-        }\n-        if (len == 0) {\n-            return new byte[0];\n-        }\n-        if (off + len > str.length()) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: offset + length > string length.\");\n-        }\n-\n-        if (code.length() < 64) {\n-            throw new IllegalArgumentException(\"Base64 code length < 64.\");\n-        }\n-\n-        int rem = len % 4;\n-        if (rem == 1) {\n-            throw new IllegalArgumentException(\"base642bytes: base64 string length % 4 == 1.\");\n-        }\n-\n-        int num = len / 4, size = num * 3;\n-        if (code.length() > 64) {\n-            if (rem != 0) {\n-                throw new IllegalArgumentException(\"base642bytes: base64 string length error.\");\n-            }\n-\n-            char pc = code.charAt(64);\n-            if (str.charAt(off + len - 2) == pc) {\n-                size -= 2;\n-                --num;\n-                rem = 2;\n-            } else if (str.charAt(off + len - 1) == pc) {\n-                size--;\n-                --num;\n-                rem = 3;\n-            }\n-        } else {\n-            if (rem == 2) {\n-                size++;\n-            } else if (rem == 3) {\n-                size += 2;\n-            }\n-        }\n-\n-        int r = off, w = 0;\n-        byte[] b = new byte[size], t = decodeTable(code);\n-        for (int i = 0; i < num; i++) {\n-            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)];\n-            int c3 = t[str.charAt(r++)], c4 = t[str.charAt(r++)];\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\n-            b[w++] = (byte) ((c3 << 6) | c4);\n-        }\n-\n-        if (rem == 2) {\n-            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)];\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-        } else if (rem == 3) {\n-            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)], c3 = t[str.charAt(r++)];\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\n-        }\n-        return b;\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str  base64 string.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(String str, char[] code) {\n-        return base642bytes(str, 0, str.length(), code);\n-    }\n-\n-    /**\n-     * from base64 string.\n-     *\n-     * @param str  base64 string.\n-     * @param off  offset.\n-     * @param len  length.\n-     * @param code base64 code(0-63 is base64 char,64 is pad char).\n-     * @return byte array.\n-     */\n-    public static byte[] base642bytes(final String str, final int off, final int len, final char[] code) {\n-        if (off < 0) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: offset < 0, offset is \" + off);\n-        }\n-        if (len < 0) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: length < 0, length is \" + len);\n-        }\n-        if (len == 0) {\n-            return new byte[0];\n-        }\n-        if (off + len > str.length()) {\n-            throw new IndexOutOfBoundsException(\"base642bytes: offset + length > string length.\");\n-        }\n-\n-        if (code.length < 64) {\n-            throw new IllegalArgumentException(\"Base64 code length < 64.\");\n-        }\n-\n-        int rem = len % 4;\n-        if (rem == 1) {\n-            throw new IllegalArgumentException(\"base642bytes: base64 string length % 4 == 1.\");\n-        }\n-\n-        int num = len / 4, size = num * 3;\n-        if (code.length > 64) {\n-            if (rem != 0) {\n-                throw new IllegalArgumentException(\"base642bytes: base64 string length error.\");\n-            }\n-\n-            char pc = code[64];\n-            if (str.charAt(off + len - 2) == pc) {\n-                size -= 2;\n-                --num;\n-                rem = 2;\n-            } else if (str.charAt(off + len - 1) == pc) {\n-                size--;\n-                --num;\n-                rem = 3;\n-            }\n-        } else {\n-            if (rem == 2) {\n-                size++;\n-            } else if (rem == 3) {\n-                size += 2;\n-            }\n-        }\n-\n-        int r = off, w = 0;\n-        byte[] b = new byte[size];\n-        for (int i = 0; i < num; i++) {\n-            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++));\n-            int c3 = indexOf(code, str.charAt(r++)), c4 = indexOf(code, str.charAt(r++));\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\n-            b[w++] = (byte) ((c3 << 6) | c4);\n-        }\n-\n-        if (rem == 2) {\n-            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++));\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-        } else if (rem == 3) {\n-            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++)), c3 = indexOf(code, str.charAt(r++));\n-\n-            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\n-            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\n-        }\n-        return b;\n-    }\n-\n-    /**\n-     * zip.\n-     *\n-     * @param bytes source.\n-     * @return compressed byte array.\n-     * @throws IOException\n-     */\n-    public static byte[] zip(byte[] bytes) throws IOException {\n-        UnsafeByteArrayOutputStream bos = new UnsafeByteArrayOutputStream();\n-        OutputStream os = new DeflaterOutputStream(bos);\n-        try {\n-            os.write(bytes);\n-        } finally {\n-            os.close();\n-            bos.close();\n-        }\n-        return bos.toByteArray();\n-    }\n-\n-    /**\n-     * unzip.\n-     *\n-     * @param bytes compressed byte array.\n-     * @return byte uncompressed array.\n-     * @throws IOException\n-     */\n-    public static byte[] unzip(byte[] bytes) throws IOException {\n-        UnsafeByteArrayInputStream bis = new UnsafeByteArrayInputStream(bytes);\n-        UnsafeByteArrayOutputStream bos = new UnsafeByteArrayOutputStream();\n-        InputStream is = new InflaterInputStream(bis);\n-        try {\n-            IOUtils.write(is, bos);\n-            return bos.toByteArray();\n-        } finally {\n-            is.close();\n-            bis.close();\n-            bos.close();\n-        }\n-    }\n-\n-    /**\n-     * get md5.\n-     *\n-     * @param str input string.\n-     * @return MD5 byte array.\n-     */\n-    public static byte[] getMD5(String str) {\n-        return getMD5(str.getBytes());\n-    }\n-\n-    /**\n-     * get md5.\n-     *\n-     * @param source byte array source.\n-     * @return MD5 byte array.\n-     */\n-    public static byte[] getMD5(byte[] source) {\n-        MessageDigest md = getMessageDigest();\n-        return md.digest(source);\n-    }\n-\n-    /**\n-     * get md5.\n-     *\n-     * @param file file source.\n-     * @return MD5 byte array.\n-     */\n-    public static byte[] getMD5(File file) throws IOException {\n-        InputStream is = new FileInputStream(file);\n-        try {\n-            return getMD5(is);\n-        } finally {\n-            is.close();\n-        }\n-    }\n-\n-    /**\n-     * get md5.\n-     *\n-     * @param is input stream.\n-     * @return MD5 byte array.\n-     */\n-    public static byte[] getMD5(InputStream is) throws IOException {\n-        return getMD5(is, 1024 * 8);\n-    }\n-\n-    private static byte hex(char c) {\n-        if (c <= '9') {\n-            return (byte) (c - '0');\n-        }\n-        if (c >= 'a' && c <= 'f') {\n-            return (byte) (c - 'a' + 10);\n-        }\n-        if (c >= 'A' && c <= 'F') {\n-            return (byte) (c - 'A' + 10);\n-        }\n-        throw new IllegalArgumentException(\"hex string format error [\" + c + \"].\");\n-    }\n-\n-    private static int indexOf(char[] cs, char c) {\n-        for (int i = 0, len = cs.length; i < len; i++) {\n-            if (cs[i] == c) {\n-                return i;\n-            }\n-        }\n-        return -1;\n-    }\n-\n-    private static byte[] decodeTable(String code) {\n-        int hash = code.hashCode();\n-        byte[] ret = DECODE_TABLE_MAP.get(hash);\n-        if (ret == null) {\n-            if (code.length() < 64) {\n-                throw new IllegalArgumentException(\"Base64 code length < 64.\");\n-            }\n-            // create new decode table.\n-            ret = new byte[128];\n-            for (int i = 0; i < 128; i++) // init table.\n-            {\n-                ret[i] = -1;\n-            }\n-            for (int i = 0; i < 64; i++) {\n-                ret[code.charAt(i)] = (byte) i;\n-            }\n-            DECODE_TABLE_MAP.put(hash, ret);\n-        }\n-        return ret;\n-    }\n-\n-    private static byte[] getMD5(InputStream is, int bs) throws IOException {\n-        MessageDigest md = getMessageDigest();\n-        byte[] buf = new byte[bs];\n-        while (is.available() > 0) {\n-            int read, total = 0;\n-            do {\n-                if ((read = is.read(buf, total, bs - total)) <= 0) {\n-                    break;\n-                }\n-                total += read;\n-            }\n-            while (total < bs);\n-            md.update(buf);\n-        }\n-        return md.digest();\n-    }\n-\n-    private static MessageDigest getMessageDigest() {\n-        MessageDigest ret = MD.get();\n-        if (ret == null) {\n-            try {\n-                ret = MessageDigest.getInstance(\"MD5\");\n-                MD.set(ret);\n-            } catch (NoSuchAlgorithmException e) {\n-                throw new RuntimeException(e);\n-            }\n-        }\n-        return ret;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.io;\r\n+\r\n+import org.apache.dubbo.common.utils.IOUtils;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.security.MessageDigest;\r\n+import java.security.NoSuchAlgorithmException;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.zip.DeflaterOutputStream;\r\n+import java.util.zip.InflaterInputStream;\r\n+\r\n+/**\r\n+ * CodecUtils.\r\n+ */\r\n+\r\n+public class Bytes {\r\n+    private static final String C64 = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\"; //default base64.\r\n+\r\n+    private static final char[] BASE16 = {'0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'}, BASE64 = C64.toCharArray();\r\n+\r\n+    private static final int MASK4 = 0x0f, MASK6 = 0x3f, MASK8 = 0xff;\r\n+\r\n+    private static final Map<Integer, byte[]> DECODE_TABLE_MAP = new ConcurrentHashMap<Integer, byte[]>();\r\n+\r\n+    private static ThreadLocal<MessageDigest> MD = new ThreadLocal<MessageDigest>();\r\n+\r\n+    private Bytes() {\r\n+    }\r\n+\r\n+    /**\r\n+     * byte array copy.\r\n+     *\r\n+     * @param src    src.\r\n+     * @param length new length.\r\n+     * @return new byte array.\r\n+     */\r\n+    public static byte[] copyOf(byte[] src, int length) {\r\n+        byte[] dest = new byte[length];\r\n+        System.arraycopy(src, 0, dest, 0, Math.min(src.length, length));\r\n+        return dest;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @return byte[].\r\n+     */\r\n+    public static byte[] short2bytes(short v) {\r\n+        byte[] ret = {0, 0};\r\n+        short2bytes(v, ret);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void short2bytes(short v, byte[] b) {\r\n+        short2bytes(v, b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void short2bytes(short v, byte[] b, int off) {\r\n+        b[off + 1] = (byte) v;\r\n+        b[off + 0] = (byte) (v >>> 8);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @return byte[].\r\n+     */\r\n+    public static byte[] int2bytes(int v) {\r\n+        byte[] ret = {0, 0, 0, 0};\r\n+        int2bytes(v, ret);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void int2bytes(int v, byte[] b) {\r\n+        int2bytes(v, b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v   value.\r\n+     * @param b   byte array.\r\n+     * @param off array offset.\r\n+     */\r\n+    public static void int2bytes(int v, byte[] b, int off) {\r\n+        b[off + 3] = (byte) v;\r\n+        b[off + 2] = (byte) (v >>> 8);\r\n+        b[off + 1] = (byte) (v >>> 16);\r\n+        b[off + 0] = (byte) (v >>> 24);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @return byte[].\r\n+     */\r\n+    public static byte[] float2bytes(float v) {\r\n+        byte[] ret = {0, 0, 0, 0};\r\n+        float2bytes(v, ret);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void float2bytes(float v, byte[] b) {\r\n+        float2bytes(v, b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v   value.\r\n+     * @param b   byte array.\r\n+     * @param off array offset.\r\n+     */\r\n+    public static void float2bytes(float v, byte[] b, int off) {\r\n+        int i = Float.floatToIntBits(v);\r\n+        b[off + 3] = (byte) i;\r\n+        b[off + 2] = (byte) (i >>> 8);\r\n+        b[off + 1] = (byte) (i >>> 16);\r\n+        b[off + 0] = (byte) (i >>> 24);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @return byte[].\r\n+     */\r\n+    public static byte[] long2bytes(long v) {\r\n+        byte[] ret = {0, 0, 0, 0, 0, 0, 0, 0};\r\n+        long2bytes(v, ret);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void long2bytes(long v, byte[] b) {\r\n+        long2bytes(v, b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v   value.\r\n+     * @param b   byte array.\r\n+     * @param off array offset.\r\n+     */\r\n+    public static void long2bytes(long v, byte[] b, int off) {\r\n+        b[off + 7] = (byte) v;\r\n+        b[off + 6] = (byte) (v >>> 8);\r\n+        b[off + 5] = (byte) (v >>> 16);\r\n+        b[off + 4] = (byte) (v >>> 24);\r\n+        b[off + 3] = (byte) (v >>> 32);\r\n+        b[off + 2] = (byte) (v >>> 40);\r\n+        b[off + 1] = (byte) (v >>> 48);\r\n+        b[off + 0] = (byte) (v >>> 56);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @return byte[].\r\n+     */\r\n+    public static byte[] double2bytes(double v) {\r\n+        byte[] ret = {0, 0, 0, 0, 0, 0, 0, 0};\r\n+        double2bytes(v, ret);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v value.\r\n+     * @param b byte array.\r\n+     */\r\n+    public static void double2bytes(double v, byte[] b) {\r\n+        double2bytes(v, b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to byte array.\r\n+     *\r\n+     * @param v   value.\r\n+     * @param b   byte array.\r\n+     * @param off array offset.\r\n+     */\r\n+    public static void double2bytes(double v, byte[] b, int off) {\r\n+        long j = Double.doubleToLongBits(v);\r\n+        b[off + 7] = (byte) j;\r\n+        b[off + 6] = (byte) (j >>> 8);\r\n+        b[off + 5] = (byte) (j >>> 16);\r\n+        b[off + 4] = (byte) (j >>> 24);\r\n+        b[off + 3] = (byte) (j >>> 32);\r\n+        b[off + 2] = (byte) (j >>> 40);\r\n+        b[off + 1] = (byte) (j >>> 48);\r\n+        b[off + 0] = (byte) (j >>> 56);\r\n+    }\r\n+\r\n+    /**\r\n+     * to short.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return short.\r\n+     */\r\n+    public static short bytes2short(byte[] b) {\r\n+        return bytes2short(b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to short.\r\n+     *\r\n+     * @param b   byte array.\r\n+     * @param off offset.\r\n+     * @return short.\r\n+     */\r\n+    public static short bytes2short(byte[] b, int off) {\r\n+        return (short) (((b[off + 1] & 0xFF) << 0) +\r\n+                ((b[off + 0]) << 8));\r\n+    }\r\n+\r\n+    /**\r\n+     * to int.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return int.\r\n+     */\r\n+    public static int bytes2int(byte[] b) {\r\n+        return bytes2int(b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to int.\r\n+     *\r\n+     * @param b   byte array.\r\n+     * @param off offset.\r\n+     * @return int.\r\n+     */\r\n+    public static int bytes2int(byte[] b, int off) {\r\n+        return ((b[off + 3] & 0xFF) << 0) +\r\n+                ((b[off + 2] & 0xFF) << 8) +\r\n+                ((b[off + 1] & 0xFF) << 16) +\r\n+                ((b[off + 0]) << 24);\r\n+    }\r\n+\r\n+    /**\r\n+     * to int.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return int.\r\n+     */\r\n+    public static float bytes2float(byte[] b) {\r\n+        return bytes2float(b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to int.\r\n+     *\r\n+     * @param b   byte array.\r\n+     * @param off offset.\r\n+     * @return int.\r\n+     */\r\n+    public static float bytes2float(byte[] b, int off) {\r\n+        int i = ((b[off + 3] & 0xFF) << 0) +\r\n+                ((b[off + 2] & 0xFF) << 8) +\r\n+                ((b[off + 1] & 0xFF) << 16) +\r\n+                ((b[off + 0]) << 24);\r\n+        return Float.intBitsToFloat(i);\r\n+    }\r\n+\r\n+    /**\r\n+     * to long.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return long.\r\n+     */\r\n+    public static long bytes2long(byte[] b) {\r\n+        return bytes2long(b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to long.\r\n+     *\r\n+     * @param b   byte array.\r\n+     * @param off offset.\r\n+     * @return long.\r\n+     */\r\n+    public static long bytes2long(byte[] b, int off) {\r\n+        return ((b[off + 7] & 0xFFL) << 0) +\r\n+                ((b[off + 6] & 0xFFL) << 8) +\r\n+                ((b[off + 5] & 0xFFL) << 16) +\r\n+                ((b[off + 4] & 0xFFL) << 24) +\r\n+                ((b[off + 3] & 0xFFL) << 32) +\r\n+                ((b[off + 2] & 0xFFL) << 40) +\r\n+                ((b[off + 1] & 0xFFL) << 48) +\r\n+                (((long) b[off + 0]) << 56);\r\n+    }\r\n+\r\n+    /**\r\n+     * to long.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return double.\r\n+     */\r\n+    public static double bytes2double(byte[] b) {\r\n+        return bytes2double(b, 0);\r\n+    }\r\n+\r\n+    /**\r\n+     * to long.\r\n+     *\r\n+     * @param b   byte array.\r\n+     * @param off offset.\r\n+     * @return double.\r\n+     */\r\n+    public static double bytes2double(byte[] b, int off) {\r\n+        long j = ((b[off + 7] & 0xFFL) << 0) +\r\n+                ((b[off + 6] & 0xFFL) << 8) +\r\n+                ((b[off + 5] & 0xFFL) << 16) +\r\n+                ((b[off + 4] & 0xFFL) << 24) +\r\n+                ((b[off + 3] & 0xFFL) << 32) +\r\n+                ((b[off + 2] & 0xFFL) << 40) +\r\n+                ((b[off + 1] & 0xFFL) << 48) +\r\n+                (((long) b[off + 0]) << 56);\r\n+        return Double.longBitsToDouble(j);\r\n+    }\r\n+\r\n+    /**\r\n+     * to hex string.\r\n+     *\r\n+     * @param bs byte array.\r\n+     * @return hex string.\r\n+     */\r\n+    public static String bytes2hex(byte[] bs) {\r\n+        return bytes2hex(bs, 0, bs.length);\r\n+    }\r\n+\r\n+    /**\r\n+     * to hex string.\r\n+     *\r\n+     * @param bs  byte array.\r\n+     * @param off offset.\r\n+     * @param len length.\r\n+     * @return hex string.\r\n+     */\r\n+    public static String bytes2hex(byte[] bs, int off, int len) {\r\n+        if (off < 0) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2hex: offset < 0, offset is \" + off);\r\n+        }\r\n+        if (len < 0) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2hex: length < 0, length is \" + len);\r\n+        }\r\n+        if (off + len > bs.length) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2hex: offset + length > array length.\");\r\n+        }\r\n+\r\n+        byte b;\r\n+        int r = off, w = 0;\r\n+        char[] cs = new char[len * 2];\r\n+        for (int i = 0; i < len; i++) {\r\n+            b = bs[r++];\r\n+            cs[w++] = BASE16[b >> 4 & MASK4];\r\n+            cs[w++] = BASE16[b & MASK4];\r\n+        }\r\n+        return new String(cs);\r\n+    }\r\n+\r\n+    /**\r\n+     * from hex string.\r\n+     *\r\n+     * @param str hex string.\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] hex2bytes(String str) {\r\n+        return hex2bytes(str, 0, str.length());\r\n+    }\r\n+\r\n+    /**\r\n+     * from hex string.\r\n+     *\r\n+     * @param str hex string.\r\n+     * @param off offset.\r\n+     * @param len length.\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] hex2bytes(final String str, final int off, int len) {\r\n+        if ((len & 1) == 1) {\r\n+            throw new IllegalArgumentException(\"hex2bytes: ( len & 1 ) == 1.\");\r\n+        }\r\n+\r\n+        if (off < 0) {\r\n+            throw new IndexOutOfBoundsException(\"hex2bytes: offset < 0, offset is \" + off);\r\n+        }\r\n+        if (len < 0) {\r\n+            throw new IndexOutOfBoundsException(\"hex2bytes: length < 0, length is \" + len);\r\n+        }\r\n+        if (off + len > str.length()) {\r\n+            throw new IndexOutOfBoundsException(\"hex2bytes: offset + length > array length.\");\r\n+        }\r\n+\r\n+        int num = len / 2, r = off, w = 0;\r\n+        byte[] b = new byte[num];\r\n+        for (int i = 0; i < num; i++) {\r\n+            b[w++] = (byte) (hex(str.charAt(r++)) << 4 | hex(str.charAt(r++)));\r\n+        }\r\n+        return b;\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(byte[] b) {\r\n+        return bytes2base64(b, 0, b.length, BASE64);\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param b byte array.\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(byte[] b, int offset, int length) {\r\n+        return bytes2base64(b, offset, length, BASE64);\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param b    byte array.\r\n+     * @param code base64 code string(0-63 is base64 char,64 is pad char).\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(byte[] b, String code) {\r\n+        return bytes2base64(b, 0, b.length, code);\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param b    byte array.\r\n+     * @param code base64 code string(0-63 is base64 char,64 is pad char).\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(byte[] b, int offset, int length, String code) {\r\n+        if (code.length() < 64) {\r\n+            throw new IllegalArgumentException(\"Base64 code length < 64.\");\r\n+        }\r\n+\r\n+        return bytes2base64(b, offset, length, code.toCharArray());\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param b    byte array.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(byte[] b, char[] code) {\r\n+        return bytes2base64(b, 0, b.length, code);\r\n+    }\r\n+\r\n+    /**\r\n+     * to base64 string.\r\n+     *\r\n+     * @param bs   byte array.\r\n+     * @param off  offset.\r\n+     * @param len  length.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return base64 string.\r\n+     */\r\n+    public static String bytes2base64(final byte[] bs, final int off, final int len, final char[] code) {\r\n+        if (off < 0) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2base64: offset < 0, offset is \" + off);\r\n+        }\r\n+        if (len < 0) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2base64: length < 0, length is \" + len);\r\n+        }\r\n+        if (off + len > bs.length) {\r\n+            throw new IndexOutOfBoundsException(\"bytes2base64: offset + length > array length.\");\r\n+        }\r\n+\r\n+        if (code.length < 64) {\r\n+            throw new IllegalArgumentException(\"Base64 code length < 64.\");\r\n+        }\r\n+\r\n+        boolean pad = code.length > 64; // has pad char.\r\n+        int num = len / 3, rem = len % 3, r = off, w = 0;\r\n+        char[] cs = new char[num * 4 + (rem == 0 ? 0 : pad ? 4 : rem + 1)];\r\n+\r\n+        for (int i = 0; i < num; i++) {\r\n+            int b1 = bs[r++] & MASK8, b2 = bs[r++] & MASK8, b3 = bs[r++] & MASK8;\r\n+\r\n+            cs[w++] = code[b1 >> 2];\r\n+            cs[w++] = code[(b1 << 4) & MASK6 | (b2 >> 4)];\r\n+            cs[w++] = code[(b2 << 2) & MASK6 | (b3 >> 6)];\r\n+            cs[w++] = code[b3 & MASK6];\r\n+        }\r\n+\r\n+        if (rem == 1) {\r\n+            int b1 = bs[r++] & MASK8;\r\n+            cs[w++] = code[b1 >> 2];\r\n+            cs[w++] = code[(b1 << 4) & MASK6];\r\n+            if (pad) {\r\n+                cs[w++] = code[64];\r\n+                cs[w++] = code[64];\r\n+            }\r\n+        } else if (rem == 2) {\r\n+            int b1 = bs[r++] & MASK8, b2 = bs[r++] & MASK8;\r\n+            cs[w++] = code[b1 >> 2];\r\n+            cs[w++] = code[(b1 << 4) & MASK6 | (b2 >> 4)];\r\n+            cs[w++] = code[(b2 << 2) & MASK6];\r\n+            if (pad) {\r\n+                cs[w++] = code[64];\r\n+            }\r\n+        }\r\n+        return new String(cs);\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str base64 string.\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(String str) {\r\n+        return base642bytes(str, 0, str.length());\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str    base64 string.\r\n+     * @param offset offset.\r\n+     * @param length length.\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(String str, int offset, int length) {\r\n+        return base642bytes(str, offset, length, C64);\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str  base64 string.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(String str, String code) {\r\n+        return base642bytes(str, 0, str.length(), code);\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str  base64 string.\r\n+     * @param off  offset.\r\n+     * @param len  length.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(final String str, final int off, final int len, final String code) {\r\n+        if (off < 0) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: offset < 0, offset is \" + off);\r\n+        }\r\n+        if (len < 0) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: length < 0, length is \" + len);\r\n+        }\r\n+        if (len == 0) {\r\n+            return new byte[0];\r\n+        }\r\n+        if (off + len > str.length()) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: offset + length > string length.\");\r\n+        }\r\n+\r\n+        if (code.length() < 64) {\r\n+            throw new IllegalArgumentException(\"Base64 code length < 64.\");\r\n+        }\r\n+\r\n+        int rem = len % 4;\r\n+        if (rem == 1) {\r\n+            throw new IllegalArgumentException(\"base642bytes: base64 string length % 4 == 1.\");\r\n+        }\r\n+\r\n+        int num = len / 4, size = num * 3;\r\n+        if (code.length() > 64) {\r\n+            if (rem != 0) {\r\n+                throw new IllegalArgumentException(\"base642bytes: base64 string length error.\");\r\n+            }\r\n+\r\n+            char pc = code.charAt(64);\r\n+            if (str.charAt(off + len - 2) == pc) {\r\n+                size -= 2;\r\n+                --num;\r\n+                rem = 2;\r\n+            } else if (str.charAt(off + len - 1) == pc) {\r\n+                size--;\r\n+                --num;\r\n+                rem = 3;\r\n+            }\r\n+        } else {\r\n+            if (rem == 2) {\r\n+                size++;\r\n+            } else if (rem == 3) {\r\n+                size += 2;\r\n+            }\r\n+        }\r\n+\r\n+        int r = off, w = 0;\r\n+        byte[] b = new byte[size], t = decodeTable(code);\r\n+        for (int i = 0; i < num; i++) {\r\n+            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)];\r\n+            int c3 = t[str.charAt(r++)], c4 = t[str.charAt(r++)];\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\r\n+            b[w++] = (byte) ((c3 << 6) | c4);\r\n+        }\r\n+\r\n+        if (rem == 2) {\r\n+            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)];\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+        } else if (rem == 3) {\r\n+            int c1 = t[str.charAt(r++)], c2 = t[str.charAt(r++)], c3 = t[str.charAt(r++)];\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\r\n+        }\r\n+        return b;\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str  base64 string.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(String str, char[] code) {\r\n+        return base642bytes(str, 0, str.length(), code);\r\n+    }\r\n+\r\n+    /**\r\n+     * from base64 string.\r\n+     *\r\n+     * @param str  base64 string.\r\n+     * @param off  offset.\r\n+     * @param len  length.\r\n+     * @param code base64 code(0-63 is base64 char,64 is pad char).\r\n+     * @return byte array.\r\n+     */\r\n+    public static byte[] base642bytes(final String str, final int off, final int len, final char[] code) {\r\n+        if (off < 0) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: offset < 0, offset is \" + off);\r\n+        }\r\n+        if (len < 0) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: length < 0, length is \" + len);\r\n+        }\r\n+        if (len == 0) {\r\n+            return new byte[0];\r\n+        }\r\n+        if (off + len > str.length()) {\r\n+            throw new IndexOutOfBoundsException(\"base642bytes: offset + length > string length.\");\r\n+        }\r\n+\r\n+        if (code.length < 64) {\r\n+            throw new IllegalArgumentException(\"Base64 code length < 64.\");\r\n+        }\r\n+\r\n+        int rem = len % 4;\r\n+        if (rem == 1) {\r\n+            throw new IllegalArgumentException(\"base642bytes: base64 string length % 4 == 1.\");\r\n+        }\r\n+\r\n+        int num = len / 4, size = num * 3;\r\n+        if (code.length > 64) {\r\n+            if (rem != 0) {\r\n+                throw new IllegalArgumentException(\"base642bytes: base64 string length error.\");\r\n+            }\r\n+\r\n+            char pc = code[64];\r\n+            if (str.charAt(off + len - 2) == pc) {\r\n+                size -= 2;\r\n+                --num;\r\n+                rem = 2;\r\n+            } else if (str.charAt(off + len - 1) == pc) {\r\n+                size--;\r\n+                --num;\r\n+                rem = 3;\r\n+            }\r\n+        } else {\r\n+            if (rem == 2) {\r\n+                size++;\r\n+            } else if (rem == 3) {\r\n+                size += 2;\r\n+            }\r\n+        }\r\n+\r\n+        int r = off, w = 0;\r\n+        byte[] b = new byte[size];\r\n+        for (int i = 0; i < num; i++) {\r\n+            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++));\r\n+            int c3 = indexOf(code, str.charAt(r++)), c4 = indexOf(code, str.charAt(r++));\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\r\n+            b[w++] = (byte) ((c3 << 6) | c4);\r\n+        }\r\n+\r\n+        if (rem == 2) {\r\n+            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++));\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+        } else if (rem == 3) {\r\n+            int c1 = indexOf(code, str.charAt(r++)), c2 = indexOf(code, str.charAt(r++)), c3 = indexOf(code, str.charAt(r++));\r\n+\r\n+            b[w++] = (byte) ((c1 << 2) | (c2 >> 4));\r\n+            b[w++] = (byte) ((c2 << 4) | (c3 >> 2));\r\n+        }\r\n+        return b;\r\n+    }\r\n+\r\n+    /**\r\n+     * zip.\r\n+     *\r\n+     * @param bytes source.\r\n+     * @return compressed byte array.\r\n+     * @throws IOException\r\n+     */\r\n+    public static byte[] zip(byte[] bytes) throws IOException {\r\n+        UnsafeByteArrayOutputStream bos = new UnsafeByteArrayOutputStream();\r\n+        OutputStream os = new DeflaterOutputStream(bos);\r\n+        try {\r\n+            os.write(bytes);\r\n+        } finally {\r\n+            os.close();\r\n+            bos.close();\r\n+        }\r\n+        return bos.toByteArray();\r\n+    }\r\n+\r\n+    /**\r\n+     * unzip.\r\n+     *\r\n+     * @param bytes compressed byte array.\r\n+     * @return byte uncompressed array.\r\n+     * @throws IOException\r\n+     */\r\n+    public static byte[] unzip(byte[] bytes) throws IOException {\r\n+        UnsafeByteArrayInputStream bis = new UnsafeByteArrayInputStream(bytes);\r\n+        UnsafeByteArrayOutputStream bos = new UnsafeByteArrayOutputStream();\r\n+        InputStream is = new InflaterInputStream(bis);\r\n+        try {\r\n+            IOUtils.write(is, bos);\r\n+            return bos.toByteArray();\r\n+        } finally {\r\n+            is.close();\r\n+            bis.close();\r\n+            bos.close();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get md5.\r\n+     *\r\n+     * @param str input string.\r\n+     * @return MD5 byte array.\r\n+     */\r\n+    public static byte[] getMD5(String str) {\r\n+        return getMD5(str.getBytes());\r\n+    }\r\n+\r\n+    /**\r\n+     * get md5.\r\n+     *\r\n+     * @param source byte array source.\r\n+     * @return MD5 byte array.\r\n+     */\r\n+    public static byte[] getMD5(byte[] source) {\r\n+        MessageDigest md = getMessageDigest();\r\n+        return md.digest(source);\r\n+    }\r\n+\r\n+    /**\r\n+     * get md5.\r\n+     *\r\n+     * @param file file source.\r\n+     * @return MD5 byte array.\r\n+     */\r\n+    public static byte[] getMD5(File file) throws IOException {\r\n+        InputStream is = new FileInputStream(file);\r\n+        try {\r\n+            return getMD5(is);\r\n+        } finally {\r\n+            is.close();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get md5.\r\n+     *\r\n+     * @param is input stream.\r\n+     * @return MD5 byte array.\r\n+     */\r\n+    public static byte[] getMD5(InputStream is) throws IOException {\r\n+        return getMD5(is, 1024 * 8);\r\n+    }\r\n+\r\n+    private static byte hex(char c) {\r\n+        if (c <= '9') {\r\n+            return (byte) (c - '0');\r\n+        }\r\n+        if (c >= 'a' && c <= 'f') {\r\n+            return (byte) (c - 'a' + 10);\r\n+        }\r\n+        if (c >= 'A' && c <= 'F') {\r\n+            return (byte) (c - 'A' + 10);\r\n+        }\r\n+        throw new IllegalArgumentException(\"hex string format error [\" + c + \"].\");\r\n+    }\r\n+\r\n+    private static int indexOf(char[] cs, char c) {\r\n+        for (int i = 0, len = cs.length; i < len; i++) {\r\n+            if (cs[i] == c) {\r\n+                return i;\r\n+            }\r\n+        }\r\n+        return -1;\r\n+    }\r\n+\r\n+    private static byte[] decodeTable(String code) {\r\n+        int hash = code.hashCode();\r\n+        byte[] ret = DECODE_TABLE_MAP.get(hash);\r\n+        if (ret == null) {\r\n+            if (code.length() < 64) {\r\n+                throw new IllegalArgumentException(\"Base64 code length < 64.\");\r\n+            }\r\n+            // create new decode table.\r\n+            ret = new byte[128];\r\n+            for (int i = 0; i < 128; i++) // init table.\r\n+            {\r\n+                ret[i] = -1;\r\n+            }\r\n+            for (int i = 0; i < 64; i++) {\r\n+                ret[code.charAt(i)] = (byte) i;\r\n+            }\r\n+            DECODE_TABLE_MAP.put(hash, ret);\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    private static byte[] getMD5(InputStream is, int bs) throws IOException {\r\n+        MessageDigest md = getMessageDigest();\r\n+        byte[] buf = new byte[bs];\r\n+        while (is.available() > 0) {\r\n+            int read, total = 0;\r\n+            do {\r\n+                if ((read = is.read(buf, total, bs - total)) <= 0) {\r\n+                    break;\r\n+                }\r\n+                total += read;\r\n+            }\r\n+            while (total < bs);\r\n+            md.update(buf);\r\n+        }\r\n+        return md.digest();\r\n+    }\r\n+\r\n+    private static MessageDigest getMessageDigest() {\r\n+        MessageDigest ret = MD.get();\r\n+        if (ret == null) {\r\n+            try {\r\n+                ret = MessageDigest.getInstance(\"MD5\");\r\n+                MD.set(ret);\r\n+            } catch (NoSuchAlgorithmException e) {\r\n+                throw new RuntimeException(e);\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/io/StreamUtils.java", "source2": "org/apache/dubbo/common/io/StreamUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,231 +1,231 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.io;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-\n-/**\n- * Stream utils.\n- */\n-public class StreamUtils {\n-    private StreamUtils() {\n-    }\n-\n-    public static InputStream limitedInputStream(final InputStream is, final int limit) throws IOException {\n-        return new InputStream() {\n-            private int mPosition = 0, mMark = 0, mLimit = Math.min(limit, is.available());\n-\n-            @Override\n-            public int read() throws IOException {\n-                if (mPosition < mLimit) {\n-                    mPosition++;\n-                    return is.read();\n-                }\n-                return -1;\n-            }\n-\n-            @Override\n-            public int read(byte[] b, int off, int len) throws IOException {\n-                if (b == null) {\n-                    throw new NullPointerException();\n-                }\n-\n-                if (off < 0 || len < 0 || len > b.length - off) {\n-                    throw new IndexOutOfBoundsException();\n-                }\n-\n-                if (mPosition >= mLimit) {\n-                    return -1;\n-                }\n-\n-                if (mPosition + len > mLimit) {\n-                    len = mLimit - mPosition;\n-                }\n-\n-                if (len <= 0) {\n-                    return 0;\n-                }\n-\n-                is.read(b, off, len);\n-                mPosition += len;\n-                return len;\n-            }\n-\n-            @Override\n-            public long skip(long len) throws IOException {\n-                if (mPosition + len > mLimit) {\n-                    len = mLimit - mPosition;\n-                }\n-\n-                if (len <= 0) {\n-                    return 0;\n-                }\n-\n-                is.skip(len);\n-                mPosition += len;\n-                return len;\n-            }\n-\n-            @Override\n-            public int available() {\n-                return mLimit - mPosition;\n-            }\n-\n-            @Override\n-            public boolean markSupported() {\n-                return is.markSupported();\n-            }\n-\n-            @Override\n-            public void mark(int readlimit) {\n-                is.mark(readlimit);\n-                mMark = mPosition;\n-            }\n-\n-            @Override\n-            public void reset() throws IOException {\n-                is.reset();\n-                mPosition = mMark;\n-            }\n-\n-            @Override\n-            public void close() throws IOException {\n-                is.close();\n-            }\n-        };\n-    }\n-\n-    public static InputStream markSupportedInputStream(final InputStream is, final int markBufferSize) {\n-        if (is.markSupported()) {\n-            return is;\n-        }\n-\n-        return new InputStream() {\n-            byte[] mMarkBuffer;\n-\n-            boolean mInMarked = false;\n-            boolean mInReset = false;\n-            boolean mDry = false;\n-            private int mPosition = 0;\n-            private int mCount = 0;\n-\n-            @Override\n-            public int read() throws IOException {\n-                if (!mInMarked) {\n-                    return is.read();\n-                } else {\n-                    if (mPosition < mCount) {\n-                        byte b = mMarkBuffer[mPosition++];\n-                        return b & 0xFF;\n-                    }\n-\n-                    if (!mInReset) {\n-                        if (mDry) {\n-                            return -1;\n-                        }\n-\n-                        if (null == mMarkBuffer) {\n-                            mMarkBuffer = new byte[markBufferSize];\n-                        }\n-                        if (mPosition >= markBufferSize) {\n-                            throw new IOException(\"Mark buffer is full!\");\n-                        }\n-\n-                        int read = is.read();\n-                        if (-1 == read) {\n-                            mDry = true;\n-                            return -1;\n-                        }\n-\n-                        mMarkBuffer[mPosition++] = (byte) read;\n-                        mCount++;\n-\n-                        return read;\n-                    } else {\n-                        // mark buffer is used, exit mark status!\n-                        mInMarked = false;\n-                        mInReset = false;\n-                        mPosition = 0;\n-                        mCount = 0;\n-\n-                        return is.read();\n-                    }\n-                }\n-            }\n-\n-            /**\n-             * NOTE: the <code>readlimit</code> argument for this class\n-             *  has no meaning.\n-             */\n-            @Override\n-            public synchronized void mark(int readlimit) {\n-                mInMarked = true;\n-                mInReset = false;\n-\n-                // mark buffer is not empty\n-                int count = mCount - mPosition;\n-                if (count > 0) {\n-                    System.arraycopy(mMarkBuffer, mPosition, mMarkBuffer, 0, count);\n-                    mCount = count;\n-                    mPosition = 0;\n-                }\n-            }\n-\n-            @Override\n-            public synchronized void reset() throws IOException {\n-                if (!mInMarked) {\n-                    throw new IOException(\"should mark before reset!\");\n-                }\n-\n-                mInReset = true;\n-                mPosition = 0;\n-            }\n-\n-            @Override\n-            public boolean markSupported() {\n-                return true;\n-            }\n-\n-            @Override\n-            public int available() throws IOException {\n-                int available = is.available();\n-\n-                if (mInMarked && mInReset) {\n-                    available += mCount - mPosition;\n-                }\n-\n-                return available;\n-            }\n-\n-            @Override\n-            public void close() throws IOException {\n-                is.close();\n-            }\n-        };\n-    }\n-\n-    public static InputStream markSupportedInputStream(final InputStream is) {\n-        return markSupportedInputStream(is, 1024);\n-    }\n-\n-    public static void skipUnusedStream(InputStream is) throws IOException {\n-        if (is.available() > 0) {\n-            is.skip(is.available());\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.io;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+\r\n+/**\r\n+ * Stream utils.\r\n+ */\r\n+public class StreamUtils {\r\n+    private StreamUtils() {\r\n+    }\r\n+\r\n+    public static InputStream limitedInputStream(final InputStream is, final int limit) throws IOException {\r\n+        return new InputStream() {\r\n+            private int mPosition = 0, mMark = 0, mLimit = Math.min(limit, is.available());\r\n+\r\n+            @Override\r\n+            public int read() throws IOException {\r\n+                if (mPosition < mLimit) {\r\n+                    mPosition++;\r\n+                    return is.read();\r\n+                }\r\n+                return -1;\r\n+            }\r\n+\r\n+            @Override\r\n+            public int read(byte[] b, int off, int len) throws IOException {\r\n+                if (b == null) {\r\n+                    throw new NullPointerException();\r\n+                }\r\n+\r\n+                if (off < 0 || len < 0 || len > b.length - off) {\r\n+                    throw new IndexOutOfBoundsException();\r\n+                }\r\n+\r\n+                if (mPosition >= mLimit) {\r\n+                    return -1;\r\n+                }\r\n+\r\n+                if (mPosition + len > mLimit) {\r\n+                    len = mLimit - mPosition;\r\n+                }\r\n+\r\n+                if (len <= 0) {\r\n+                    return 0;\r\n+                }\r\n+\r\n+                is.read(b, off, len);\r\n+                mPosition += len;\r\n+                return len;\r\n+            }\r\n+\r\n+            @Override\r\n+            public long skip(long len) throws IOException {\r\n+                if (mPosition + len > mLimit) {\r\n+                    len = mLimit - mPosition;\r\n+                }\r\n+\r\n+                if (len <= 0) {\r\n+                    return 0;\r\n+                }\r\n+\r\n+                is.skip(len);\r\n+                mPosition += len;\r\n+                return len;\r\n+            }\r\n+\r\n+            @Override\r\n+            public int available() {\r\n+                return mLimit - mPosition;\r\n+            }\r\n+\r\n+            @Override\r\n+            public boolean markSupported() {\r\n+                return is.markSupported();\r\n+            }\r\n+\r\n+            @Override\r\n+            public void mark(int readlimit) {\r\n+                is.mark(readlimit);\r\n+                mMark = mPosition;\r\n+            }\r\n+\r\n+            @Override\r\n+            public void reset() throws IOException {\r\n+                is.reset();\r\n+                mPosition = mMark;\r\n+            }\r\n+\r\n+            @Override\r\n+            public void close() throws IOException {\r\n+                is.close();\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    public static InputStream markSupportedInputStream(final InputStream is, final int markBufferSize) {\r\n+        if (is.markSupported()) {\r\n+            return is;\r\n+        }\r\n+\r\n+        return new InputStream() {\r\n+            byte[] mMarkBuffer;\r\n+\r\n+            boolean mInMarked = false;\r\n+            boolean mInReset = false;\r\n+            boolean mDry = false;\r\n+            private int mPosition = 0;\r\n+            private int mCount = 0;\r\n+\r\n+            @Override\r\n+            public int read() throws IOException {\r\n+                if (!mInMarked) {\r\n+                    return is.read();\r\n+                } else {\r\n+                    if (mPosition < mCount) {\r\n+                        byte b = mMarkBuffer[mPosition++];\r\n+                        return b & 0xFF;\r\n+                    }\r\n+\r\n+                    if (!mInReset) {\r\n+                        if (mDry) {\r\n+                            return -1;\r\n+                        }\r\n+\r\n+                        if (null == mMarkBuffer) {\r\n+                            mMarkBuffer = new byte[markBufferSize];\r\n+                        }\r\n+                        if (mPosition >= markBufferSize) {\r\n+                            throw new IOException(\"Mark buffer is full!\");\r\n+                        }\r\n+\r\n+                        int read = is.read();\r\n+                        if (-1 == read) {\r\n+                            mDry = true;\r\n+                            return -1;\r\n+                        }\r\n+\r\n+                        mMarkBuffer[mPosition++] = (byte) read;\r\n+                        mCount++;\r\n+\r\n+                        return read;\r\n+                    } else {\r\n+                        // mark buffer is used, exit mark status!\r\n+                        mInMarked = false;\r\n+                        mInReset = false;\r\n+                        mPosition = 0;\r\n+                        mCount = 0;\r\n+\r\n+                        return is.read();\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            /**\r\n+             * NOTE: the <code>readlimit</code> argument for this class\r\n+             *  has no meaning.\r\n+             */\r\n+            @Override\r\n+            public synchronized void mark(int readlimit) {\r\n+                mInMarked = true;\r\n+                mInReset = false;\r\n+\r\n+                // mark buffer is not empty\r\n+                int count = mCount - mPosition;\r\n+                if (count > 0) {\r\n+                    System.arraycopy(mMarkBuffer, mPosition, mMarkBuffer, 0, count);\r\n+                    mCount = count;\r\n+                    mPosition = 0;\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public synchronized void reset() throws IOException {\r\n+                if (!mInMarked) {\r\n+                    throw new IOException(\"should mark before reset!\");\r\n+                }\r\n+\r\n+                mInReset = true;\r\n+                mPosition = 0;\r\n+            }\r\n+\r\n+            @Override\r\n+            public boolean markSupported() {\r\n+                return true;\r\n+            }\r\n+\r\n+            @Override\r\n+            public int available() throws IOException {\r\n+                int available = is.available();\r\n+\r\n+                if (mInMarked && mInReset) {\r\n+                    available += mCount - mPosition;\r\n+                }\r\n+\r\n+                return available;\r\n+            }\r\n+\r\n+            @Override\r\n+            public void close() throws IOException {\r\n+                is.close();\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    public static InputStream markSupportedInputStream(final InputStream is) {\r\n+        return markSupportedInputStream(is, 1024);\r\n+    }\r\n+\r\n+    public static void skipUnusedStream(InputStream is) throws IOException {\r\n+        if (is.available() > 0) {\r\n+            is.skip(is.available());\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/io/UnsafeByteArrayInputStream.java", "source2": "org/apache/dubbo/common/io/UnsafeByteArrayInputStream.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,118 +1,118 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.io;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-\n-/**\n- * UnsafeByteArrayInputStream.\n- */\n-public class UnsafeByteArrayInputStream extends InputStream {\n-    protected byte[] mData;\n-\n-    protected int mPosition, mLimit, mMark = 0;\n-\n-    public UnsafeByteArrayInputStream(byte[] buf) {\n-        this(buf, 0, buf.length);\n-    }\n-\n-    public UnsafeByteArrayInputStream(byte[] buf, int offset) {\n-        this(buf, offset, buf.length - offset);\n-    }\n-\n-    public UnsafeByteArrayInputStream(byte[] buf, int offset, int length) {\n-        mData = buf;\n-        mPosition = mMark = offset;\n-        mLimit = Math.min(offset + length, buf.length);\n-    }\n-\n-    @Override\n-    public int read() {\n-        return (mPosition < mLimit) ? (mData[mPosition++] & 0xff) : -1;\n-    }\n-\n-    @Override\n-    public int read(byte[] b, int off, int len) {\n-        if (b == null) {\n-            throw new NullPointerException();\n-        }\n-        if (off < 0 || len < 0 || len > b.length - off) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        if (mPosition >= mLimit) {\n-            return -1;\n-        }\n-        if (mPosition + len > mLimit) {\n-            len = mLimit - mPosition;\n-        }\n-        if (len <= 0) {\n-            return 0;\n-        }\n-        System.arraycopy(mData, mPosition, b, off, len);\n-        mPosition += len;\n-        return len;\n-    }\n-\n-    @Override\n-    public long skip(long len) {\n-        if (mPosition + len > mLimit) {\n-            len = mLimit - mPosition;\n-        }\n-        if (len <= 0) {\n-            return 0;\n-        }\n-        mPosition += len;\n-        return len;\n-    }\n-\n-    @Override\n-    public int available() {\n-        return mLimit - mPosition;\n-    }\n-\n-    @Override\n-    public boolean markSupported() {\n-        return true;\n-    }\n-\n-    @Override\n-    public void mark(int readAheadLimit) {\n-        mMark = mPosition;\n-    }\n-\n-    @Override\n-    public void reset() {\n-        mPosition = mMark;\n-    }\n-\n-    @Override\n-    public void close() throws IOException {\n-    }\n-\n-    public int position() {\n-        return mPosition;\n-    }\n-\n-    public void position(int newPosition) {\n-        mPosition = newPosition;\n-    }\n-\n-    public int size() {\n-        return mData == null ? 0 : mData.length;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.io;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+\r\n+/**\r\n+ * UnsafeByteArrayInputStream.\r\n+ */\r\n+public class UnsafeByteArrayInputStream extends InputStream {\r\n+    protected byte[] mData;\r\n+\r\n+    protected int mPosition, mLimit, mMark = 0;\r\n+\r\n+    public UnsafeByteArrayInputStream(byte[] buf) {\r\n+        this(buf, 0, buf.length);\r\n+    }\r\n+\r\n+    public UnsafeByteArrayInputStream(byte[] buf, int offset) {\r\n+        this(buf, offset, buf.length - offset);\r\n+    }\r\n+\r\n+    public UnsafeByteArrayInputStream(byte[] buf, int offset, int length) {\r\n+        mData = buf;\r\n+        mPosition = mMark = offset;\r\n+        mLimit = Math.min(offset + length, buf.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int read() {\r\n+        return (mPosition < mLimit) ? (mData[mPosition++] & 0xff) : -1;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int read(byte[] b, int off, int len) {\r\n+        if (b == null) {\r\n+            throw new NullPointerException();\r\n+        }\r\n+        if (off < 0 || len < 0 || len > b.length - off) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        if (mPosition >= mLimit) {\r\n+            return -1;\r\n+        }\r\n+        if (mPosition + len > mLimit) {\r\n+            len = mLimit - mPosition;\r\n+        }\r\n+        if (len <= 0) {\r\n+            return 0;\r\n+        }\r\n+        System.arraycopy(mData, mPosition, b, off, len);\r\n+        mPosition += len;\r\n+        return len;\r\n+    }\r\n+\r\n+    @Override\r\n+    public long skip(long len) {\r\n+        if (mPosition + len > mLimit) {\r\n+            len = mLimit - mPosition;\r\n+        }\r\n+        if (len <= 0) {\r\n+            return 0;\r\n+        }\r\n+        mPosition += len;\r\n+        return len;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int available() {\r\n+        return mLimit - mPosition;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean markSupported() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void mark(int readAheadLimit) {\r\n+        mMark = mPosition;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset() {\r\n+        mPosition = mMark;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() throws IOException {\r\n+    }\r\n+\r\n+    public int position() {\r\n+        return mPosition;\r\n+    }\r\n+\r\n+    public void position(int newPosition) {\r\n+        mPosition = newPosition;\r\n+    }\r\n+\r\n+    public int size() {\r\n+        return mData == null ? 0 : mData.length;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/io/UnsafeByteArrayOutputStream.java", "source2": "org/apache/dubbo/common/io/UnsafeByteArrayOutputStream.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,101 +1,101 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.io;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.io.UnsupportedEncodingException;\n-import java.nio.ByteBuffer;\n-\n-/**\n- * UnsafeByteArrayOutputStream.\n- */\n-public class UnsafeByteArrayOutputStream extends OutputStream {\n-    protected byte[] mBuffer;\n-\n-    protected int mCount;\n-\n-    public UnsafeByteArrayOutputStream() {\n-        this(32);\n-    }\n-\n-    public UnsafeByteArrayOutputStream(int size) {\n-        if (size < 0) {\n-            throw new IllegalArgumentException(\"Negative initial size: \" + size);\n-        }\n-        mBuffer = new byte[size];\n-    }\n-\n-    @Override\n-    public void write(int b) {\n-        int newcount = mCount + 1;\n-        if (newcount > mBuffer.length) {\n-            mBuffer = Bytes.copyOf(mBuffer, Math.max(mBuffer.length << 1, newcount));\n-        }\n-        mBuffer[mCount] = (byte) b;\n-        mCount = newcount;\n-    }\n-\n-    @Override\n-    public void write(byte[] b, int off, int len) {\n-        if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        if (len == 0) {\n-            return;\n-        }\n-        int newcount = mCount + len;\n-        if (newcount > mBuffer.length) {\n-            mBuffer = Bytes.copyOf(mBuffer, Math.max(mBuffer.length << 1, newcount));\n-        }\n-        System.arraycopy(b, off, mBuffer, mCount, len);\n-        mCount = newcount;\n-    }\n-\n-    public int size() {\n-        return mCount;\n-    }\n-\n-    public void reset() {\n-        mCount = 0;\n-    }\n-\n-    public byte[] toByteArray() {\n-        return Bytes.copyOf(mBuffer, mCount);\n-    }\n-\n-    public ByteBuffer toByteBuffer() {\n-        return ByteBuffer.wrap(mBuffer, 0, mCount);\n-    }\n-\n-    public void writeTo(OutputStream out) throws IOException {\n-        out.write(mBuffer, 0, mCount);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return new String(mBuffer, 0, mCount);\n-    }\n-\n-    public String toString(String charset) throws UnsupportedEncodingException {\n-        return new String(mBuffer, 0, mCount, charset);\n-    }\n-\n-    @Override\n-    public void close() throws IOException {\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.io;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.io.UnsupportedEncodingException;\r\n+import java.nio.ByteBuffer;\r\n+\r\n+/**\r\n+ * UnsafeByteArrayOutputStream.\r\n+ */\r\n+public class UnsafeByteArrayOutputStream extends OutputStream {\r\n+    protected byte[] mBuffer;\r\n+\r\n+    protected int mCount;\r\n+\r\n+    public UnsafeByteArrayOutputStream() {\r\n+        this(32);\r\n+    }\r\n+\r\n+    public UnsafeByteArrayOutputStream(int size) {\r\n+        if (size < 0) {\r\n+            throw new IllegalArgumentException(\"Negative initial size: \" + size);\r\n+        }\r\n+        mBuffer = new byte[size];\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(int b) {\r\n+        int newcount = mCount + 1;\r\n+        if (newcount > mBuffer.length) {\r\n+            mBuffer = Bytes.copyOf(mBuffer, Math.max(mBuffer.length << 1, newcount));\r\n+        }\r\n+        mBuffer[mCount] = (byte) b;\r\n+        mCount = newcount;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(byte[] b, int off, int len) {\r\n+        if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        if (len == 0) {\r\n+            return;\r\n+        }\r\n+        int newcount = mCount + len;\r\n+        if (newcount > mBuffer.length) {\r\n+            mBuffer = Bytes.copyOf(mBuffer, Math.max(mBuffer.length << 1, newcount));\r\n+        }\r\n+        System.arraycopy(b, off, mBuffer, mCount, len);\r\n+        mCount = newcount;\r\n+    }\r\n+\r\n+    public int size() {\r\n+        return mCount;\r\n+    }\r\n+\r\n+    public void reset() {\r\n+        mCount = 0;\r\n+    }\r\n+\r\n+    public byte[] toByteArray() {\r\n+        return Bytes.copyOf(mBuffer, mCount);\r\n+    }\r\n+\r\n+    public ByteBuffer toByteBuffer() {\r\n+        return ByteBuffer.wrap(mBuffer, 0, mCount);\r\n+    }\r\n+\r\n+    public void writeTo(OutputStream out) throws IOException {\r\n+        out.write(mBuffer, 0, mCount);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return new String(mBuffer, 0, mCount);\r\n+    }\r\n+\r\n+    public String toString(String charset) throws UnsupportedEncodingException {\r\n+        return new String(mBuffer, 0, mCount, charset);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() throws IOException {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/io/UnsafeStringWriter.java", "source2": "org/apache/dubbo/common/io/UnsafeStringWriter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.io;\n-\n-import java.io.IOException;\n-import java.io.Writer;\n-\n-/**\n- * Thread-unsafe StringWriter.\n- */\n-public class UnsafeStringWriter extends Writer {\n-    private StringBuilder mBuffer;\n-\n-    public UnsafeStringWriter() {\n-        lock = mBuffer = new StringBuilder();\n-    }\n-\n-    public UnsafeStringWriter(int size) {\n-        if (size < 0) {\n-            throw new IllegalArgumentException(\"Negative buffer size\");\n-        }\n-\n-        lock = mBuffer = new StringBuilder();\n-    }\n-\n-    @Override\n-    public void write(int c) {\n-        mBuffer.append((char) c);\n-    }\n-\n-    @Override\n-    public void write(char[] cs) throws IOException {\n-        mBuffer.append(cs, 0, cs.length);\n-    }\n-\n-    @Override\n-    public void write(char[] cs, int off, int len) throws IOException {\n-        if ((off < 0) || (off > cs.length) || (len < 0) ||\n-                ((off + len) > cs.length) || ((off + len) < 0)) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-\n-        if (len > 0) {\n-            mBuffer.append(cs, off, len);\n-        }\n-    }\n-\n-    @Override\n-    public void write(String str) {\n-        mBuffer.append(str);\n-    }\n-\n-    @Override\n-    public void write(String str, int off, int len) {\n-        mBuffer.append(str, off, off + len);\n-    }\n-\n-    @Override\n-    public Writer append(CharSequence csq) {\n-        if (csq == null) {\n-            write(\"null\");\n-        } else {\n-            write(csq.toString());\n-        }\n-        return this;\n-    }\n-\n-    @Override\n-    public Writer append(CharSequence csq, int start, int end) {\n-        CharSequence cs = (csq == null ? \"null\" : csq);\n-        write(cs.subSequence(start, end).toString());\n-        return this;\n-    }\n-\n-    @Override\n-    public Writer append(char c) {\n-        mBuffer.append(c);\n-        return this;\n-    }\n-\n-    @Override\n-    public void close() {\n-    }\n-\n-    @Override\n-    public void flush() {\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return mBuffer.toString();\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.io;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.Writer;\r\n+\r\n+/**\r\n+ * Thread-unsafe StringWriter.\r\n+ */\r\n+public class UnsafeStringWriter extends Writer {\r\n+    private StringBuilder mBuffer;\r\n+\r\n+    public UnsafeStringWriter() {\r\n+        lock = mBuffer = new StringBuilder();\r\n+    }\r\n+\r\n+    public UnsafeStringWriter(int size) {\r\n+        if (size < 0) {\r\n+            throw new IllegalArgumentException(\"Negative buffer size\");\r\n+        }\r\n+\r\n+        lock = mBuffer = new StringBuilder();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(int c) {\r\n+        mBuffer.append((char) c);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(char[] cs) throws IOException {\r\n+        mBuffer.append(cs, 0, cs.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(char[] cs, int off, int len) throws IOException {\r\n+        if ((off < 0) || (off > cs.length) || (len < 0) ||\r\n+                ((off + len) > cs.length) || ((off + len) < 0)) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+\r\n+        if (len > 0) {\r\n+            mBuffer.append(cs, off, len);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(String str) {\r\n+        mBuffer.append(str);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(String str, int off, int len) {\r\n+        mBuffer.append(str, off, off + len);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Writer append(CharSequence csq) {\r\n+        if (csq == null) {\r\n+            write(\"null\");\r\n+        } else {\r\n+            write(csq.toString());\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Writer append(CharSequence csq, int start, int end) {\r\n+        CharSequence cs = (csq == null ? \"null\" : csq);\r\n+        write(cs.subSequence(start, end).toString());\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Writer append(char c) {\r\n+        mBuffer.append(c);\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flush() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return mBuffer.toString();\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/json/GenericJSONConverter.java", "source2": "org/apache/dubbo/common/json/GenericJSONConverter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,528 +1,528 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.json;\n-\n-import org.apache.dubbo.common.bytecode.Wrapper;\n-import org.apache.dubbo.common.io.Bytes;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Array;\n-import java.math.BigDecimal;\n-import java.math.BigInteger;\n-import java.text.ParseException;\n-import java.text.SimpleDateFormat;\n-import java.util.Collection;\n-import java.util.Date;\n-import java.util.HashMap;\n-import java.util.Locale;\n-import java.util.Map;\n-import java.util.concurrent.atomic.AtomicInteger;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-@Deprecated\n-public class GenericJSONConverter implements JSONConverter {\n-    private static final String DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\n-    private static final Map<Class<?>, Encoder> GLOBAL_ENCODER_MAP = new HashMap<Class<?>, Encoder>();\n-    private static final Map<Class<?>, Decoder> GLOBAL_DECODER_MAP = new HashMap<Class<?>, Decoder>();\n-\n-    static {\n-        // init encoder map.\n-        Encoder e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueBoolean((Boolean) obj);\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(boolean.class, e);\n-        GLOBAL_ENCODER_MAP.put(Boolean.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueInt(((Number) obj).intValue());\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(int.class, e);\n-        GLOBAL_ENCODER_MAP.put(Integer.class, e);\n-        GLOBAL_ENCODER_MAP.put(short.class, e);\n-        GLOBAL_ENCODER_MAP.put(Short.class, e);\n-        GLOBAL_ENCODER_MAP.put(byte.class, e);\n-        GLOBAL_ENCODER_MAP.put(Byte.class, e);\n-        GLOBAL_ENCODER_MAP.put(AtomicInteger.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueString(Character.toString((Character) obj));\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(char.class, e);\n-        GLOBAL_ENCODER_MAP.put(Character.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueLong(((Number) obj).longValue());\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(long.class, e);\n-        GLOBAL_ENCODER_MAP.put(Long.class, e);\n-        GLOBAL_ENCODER_MAP.put(AtomicLong.class, e);\n-        GLOBAL_ENCODER_MAP.put(BigInteger.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueFloat(((Number) obj).floatValue());\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(float.class, e);\n-        GLOBAL_ENCODER_MAP.put(Float.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueDouble(((Number) obj).doubleValue());\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(double.class, e);\n-        GLOBAL_ENCODER_MAP.put(Double.class, e);\n-        GLOBAL_ENCODER_MAP.put(BigDecimal.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueString(obj.toString());\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(String.class, e);\n-        GLOBAL_ENCODER_MAP.put(StringBuilder.class, e);\n-        GLOBAL_ENCODER_MAP.put(StringBuffer.class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueString(Bytes.bytes2base64((byte[]) obj));\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(byte[].class, e);\n-\n-        e = new Encoder() {\n-            @Override\n-            public void encode(Object obj, JSONWriter jb) throws IOException {\n-                jb.valueString(new SimpleDateFormat(DATE_FORMAT).format((Date) obj));\n-            }\n-        };\n-        GLOBAL_ENCODER_MAP.put(Date.class, e);\n-\n-        // init decoder map.\n-        Decoder d = Object::toString;\n-        GLOBAL_DECODER_MAP.put(String.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Boolean) {\n-                    return ((Boolean) jv).booleanValue();\n-                }\n-                return false;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(boolean.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Boolean) {\n-                    return (Boolean) jv;\n-                }\n-                return (Boolean) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Boolean.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof String && ((String) jv).length() > 0) {\n-                    return ((String) jv).charAt(0);\n-                }\n-                return (char) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(char.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof String && ((String) jv).length() > 0) {\n-                    return ((String) jv).charAt(0);\n-                }\n-                return (Character) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Character.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).intValue();\n-                }\n-                return 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(int.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return Integer.valueOf(((Number) jv).intValue());\n-                }\n-                return (Integer) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Integer.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).shortValue();\n-                }\n-                return (short) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(short.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return Short.valueOf(((Number) jv).shortValue());\n-                }\n-                return (Short) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Short.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).longValue();\n-                }\n-                return (long) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(long.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return Long.valueOf(((Number) jv).longValue());\n-                }\n-                return (Long) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Long.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).floatValue();\n-                }\n-                return (float) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(float.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return new Float(((Number) jv).floatValue());\n-                }\n-                return (Float) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Float.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).doubleValue();\n-                }\n-                return (double) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(double.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return new Double(((Number) jv).doubleValue());\n-                }\n-                return (Double) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Double.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return ((Number) jv).byteValue();\n-                }\n-                return (byte) 0;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(byte.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) {\n-                if (jv instanceof Number) {\n-                    return Byte.valueOf(((Number) jv).byteValue());\n-                }\n-                return (Byte) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Byte.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof String) {\n-                    return Bytes.base642bytes((String) jv);\n-                }\n-                return (byte[]) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(byte[].class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                return new StringBuilder(jv.toString());\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(StringBuilder.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                return new StringBuffer(jv.toString());\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(StringBuffer.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof Number) {\n-                    return BigInteger.valueOf(((Number) jv).longValue());\n-                }\n-                return (BigInteger) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(BigInteger.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof Number) {\n-                    return BigDecimal.valueOf(((Number) jv).doubleValue());\n-                }\n-                return (BigDecimal) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(BigDecimal.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof Number) {\n-                    return new AtomicInteger(((Number) jv).intValue());\n-                }\n-                return (AtomicInteger) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(AtomicInteger.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof Number) {\n-                    return new AtomicLong(((Number) jv).longValue());\n-                }\n-                return (AtomicLong) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(AtomicLong.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof String) {\n-                    try {\n-                        return new SimpleDateFormat(DATE_FORMAT).parse((String) jv);\n-                    } catch (ParseException e) {\n-                        throw new IllegalArgumentException(e.getMessage(), e);\n-                    }\n-                }\n-                if (jv instanceof Number) {\n-                    return new Date(((Number) jv).longValue());\n-                }\n-                return (Date) null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Date.class, d);\n-\n-        d = new Decoder() {\n-            @Override\n-            public Object decode(Object jv) throws IOException {\n-                if (jv instanceof String) {\n-                    String[] items = ((String)jv).split(\"_\");\n-                    if(items.length == 1){\n-                        return new Locale(items[0]);\n-                    }\n-                    if(items.length == 2){\n-                        return new Locale(items[0], items[1]);\n-                    }\n-                    return new Locale(items[0], items[1], items[2]);\n-                }\n-                return (Locale)null;\n-            }\n-        };\n-        GLOBAL_DECODER_MAP.put(Locale.class, d);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public void writeValue(Object obj, JSONWriter jb, boolean writeClass) throws IOException {\n-        if (obj == null) {\n-            jb.valueNull();\n-            return;\n-        }\n-        Class<?> c = obj.getClass();\n-        Encoder encoder = GLOBAL_ENCODER_MAP.get(c);\n-\n-        if (encoder != null) {\n-            encoder.encode(obj, jb);\n-        } else if (obj instanceof JSONNode) {\n-            ((JSONNode) obj).writeJSON(this, jb, writeClass);\n-        } else if (c.isEnum()) {\n-            jb.valueString(((Enum<?>) obj).name());\n-        } else if (c.isArray()) {\n-            int len = Array.getLength(obj);\n-            jb.arrayBegin();\n-            for (int i = 0; i < len; i++) {\n-                writeValue(Array.get(obj, i), jb, writeClass);\n-            }\n-            jb.arrayEnd();\n-        } else if (Map.class.isAssignableFrom(c)) {\n-            Object key, value;\n-            jb.objectBegin();\n-            for (Map.Entry<Object, Object> entry : ((Map<Object, Object>) obj).entrySet()) {\n-                key = entry.getKey();\n-                if (key == null) {\n-                    continue;\n-                }\n-                jb.objectItem(key.toString());\n-\n-                value = entry.getValue();\n-                if (value == null) {\n-                    jb.valueNull();\n-                } else {\n-                    writeValue(value, jb, writeClass);\n-                }\n-            }\n-            jb.objectEnd();\n-        } else if (Collection.class.isAssignableFrom(c)) {\n-            jb.arrayBegin();\n-            for (Object item : (Collection<Object>) obj) {\n-                if (item == null) {\n-                    jb.valueNull();\n-                } else {\n-                    writeValue(item, jb, writeClass);\n-                }\n-            }\n-            jb.arrayEnd();\n-        } else if(obj instanceof Locale) {\n-            jb.valueString(obj.toString());\n-        } else {\n-            jb.objectBegin();\n-\n-            Wrapper w = Wrapper.getWrapper(c);\n-            String[] pns = w.getPropertyNames();\n-\n-            for (String pn : pns) {\n-                if ((obj instanceof Throwable) && (\n-                        \"localizedMessage\".equals(pn)\n-                                || \"cause\".equals(pn)\n-                                || \"suppressed\".equals(pn)\n-                                || \"stackTrace\".equals(pn))) {\n-                    continue;\n-                }\n-\n-                jb.objectItem(pn);\n-\n-                Object value = w.getPropertyValue(obj, pn);\n-                if (value == null || value == obj) {\n-                    jb.valueNull();\n-                } else {\n-                    writeValue(value, jb, writeClass);\n-                }\n-            }\n-            if (writeClass) {\n-                jb.objectItem(JSONVisitor.CLASS_PROPERTY);\n-                writeValue(obj.getClass().getName(), jb, writeClass);\n-            }\n-            jb.objectEnd();\n-        }\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public Object readValue(Class<?> c, Object jv) throws IOException {\n-        if (jv == null) {\n-            return null;\n-        }\n-        Decoder decoder = GLOBAL_DECODER_MAP.get(c);\n-        if (decoder != null) {\n-            return decoder.decode(jv);\n-        }\n-        if (c.isEnum()) {\n-            return Enum.valueOf((Class<Enum>) c, String.valueOf(jv));\n-        }\n-        return jv;\n-    }\n-\n-    protected interface Encoder {\n-        void encode(Object obj, JSONWriter jb) throws IOException;\n-    }\n-\n-    protected interface Decoder {\n-        Object decode(Object jv) throws IOException;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.json;\r\n+\r\n+import org.apache.dubbo.common.bytecode.Wrapper;\r\n+import org.apache.dubbo.common.io.Bytes;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Array;\r\n+import java.math.BigDecimal;\r\n+import java.math.BigInteger;\r\n+import java.text.ParseException;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Collection;\r\n+import java.util.Date;\r\n+import java.util.HashMap;\r\n+import java.util.Locale;\r\n+import java.util.Map;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+@Deprecated\r\n+public class GenericJSONConverter implements JSONConverter {\r\n+    private static final String DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\r\n+    private static final Map<Class<?>, Encoder> GLOBAL_ENCODER_MAP = new HashMap<Class<?>, Encoder>();\r\n+    private static final Map<Class<?>, Decoder> GLOBAL_DECODER_MAP = new HashMap<Class<?>, Decoder>();\r\n+\r\n+    static {\r\n+        // init encoder map.\r\n+        Encoder e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueBoolean((Boolean) obj);\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(boolean.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Boolean.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueInt(((Number) obj).intValue());\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(int.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Integer.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(short.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Short.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(byte.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Byte.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(AtomicInteger.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueString(Character.toString((Character) obj));\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(char.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Character.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueLong(((Number) obj).longValue());\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(long.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Long.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(AtomicLong.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(BigInteger.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueFloat(((Number) obj).floatValue());\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(float.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Float.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueDouble(((Number) obj).doubleValue());\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(double.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(Double.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(BigDecimal.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueString(obj.toString());\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(String.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(StringBuilder.class, e);\r\n+        GLOBAL_ENCODER_MAP.put(StringBuffer.class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueString(Bytes.bytes2base64((byte[]) obj));\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(byte[].class, e);\r\n+\r\n+        e = new Encoder() {\r\n+            @Override\r\n+            public void encode(Object obj, JSONWriter jb) throws IOException {\r\n+                jb.valueString(new SimpleDateFormat(DATE_FORMAT).format((Date) obj));\r\n+            }\r\n+        };\r\n+        GLOBAL_ENCODER_MAP.put(Date.class, e);\r\n+\r\n+        // init decoder map.\r\n+        Decoder d = Object::toString;\r\n+        GLOBAL_DECODER_MAP.put(String.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Boolean) {\r\n+                    return ((Boolean) jv).booleanValue();\r\n+                }\r\n+                return false;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(boolean.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Boolean) {\r\n+                    return (Boolean) jv;\r\n+                }\r\n+                return (Boolean) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Boolean.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof String && ((String) jv).length() > 0) {\r\n+                    return ((String) jv).charAt(0);\r\n+                }\r\n+                return (char) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(char.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof String && ((String) jv).length() > 0) {\r\n+                    return ((String) jv).charAt(0);\r\n+                }\r\n+                return (Character) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Character.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).intValue();\r\n+                }\r\n+                return 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(int.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return Integer.valueOf(((Number) jv).intValue());\r\n+                }\r\n+                return (Integer) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Integer.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).shortValue();\r\n+                }\r\n+                return (short) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(short.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return Short.valueOf(((Number) jv).shortValue());\r\n+                }\r\n+                return (Short) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Short.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).longValue();\r\n+                }\r\n+                return (long) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(long.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return Long.valueOf(((Number) jv).longValue());\r\n+                }\r\n+                return (Long) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Long.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).floatValue();\r\n+                }\r\n+                return (float) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(float.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return new Float(((Number) jv).floatValue());\r\n+                }\r\n+                return (Float) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Float.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).doubleValue();\r\n+                }\r\n+                return (double) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(double.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return new Double(((Number) jv).doubleValue());\r\n+                }\r\n+                return (Double) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Double.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return ((Number) jv).byteValue();\r\n+                }\r\n+                return (byte) 0;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(byte.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) {\r\n+                if (jv instanceof Number) {\r\n+                    return Byte.valueOf(((Number) jv).byteValue());\r\n+                }\r\n+                return (Byte) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Byte.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof String) {\r\n+                    return Bytes.base642bytes((String) jv);\r\n+                }\r\n+                return (byte[]) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(byte[].class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                return new StringBuilder(jv.toString());\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(StringBuilder.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                return new StringBuffer(jv.toString());\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(StringBuffer.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof Number) {\r\n+                    return BigInteger.valueOf(((Number) jv).longValue());\r\n+                }\r\n+                return (BigInteger) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(BigInteger.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof Number) {\r\n+                    return BigDecimal.valueOf(((Number) jv).doubleValue());\r\n+                }\r\n+                return (BigDecimal) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(BigDecimal.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof Number) {\r\n+                    return new AtomicInteger(((Number) jv).intValue());\r\n+                }\r\n+                return (AtomicInteger) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(AtomicInteger.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof Number) {\r\n+                    return new AtomicLong(((Number) jv).longValue());\r\n+                }\r\n+                return (AtomicLong) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(AtomicLong.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof String) {\r\n+                    try {\r\n+                        return new SimpleDateFormat(DATE_FORMAT).parse((String) jv);\r\n+                    } catch (ParseException e) {\r\n+                        throw new IllegalArgumentException(e.getMessage(), e);\r\n+                    }\r\n+                }\r\n+                if (jv instanceof Number) {\r\n+                    return new Date(((Number) jv).longValue());\r\n+                }\r\n+                return (Date) null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Date.class, d);\r\n+\r\n+        d = new Decoder() {\r\n+            @Override\r\n+            public Object decode(Object jv) throws IOException {\r\n+                if (jv instanceof String) {\r\n+                    String[] items = ((String)jv).split(\"_\");\r\n+                    if(items.length == 1){\r\n+                        return new Locale(items[0]);\r\n+                    }\r\n+                    if(items.length == 2){\r\n+                        return new Locale(items[0], items[1]);\r\n+                    }\r\n+                    return new Locale(items[0], items[1], items[2]);\r\n+                }\r\n+                return (Locale)null;\r\n+            }\r\n+        };\r\n+        GLOBAL_DECODER_MAP.put(Locale.class, d);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void writeValue(Object obj, JSONWriter jb, boolean writeClass) throws IOException {\r\n+        if (obj == null) {\r\n+            jb.valueNull();\r\n+            return;\r\n+        }\r\n+        Class<?> c = obj.getClass();\r\n+        Encoder encoder = GLOBAL_ENCODER_MAP.get(c);\r\n+\r\n+        if (encoder != null) {\r\n+            encoder.encode(obj, jb);\r\n+        } else if (obj instanceof JSONNode) {\r\n+            ((JSONNode) obj).writeJSON(this, jb, writeClass);\r\n+        } else if (c.isEnum()) {\r\n+            jb.valueString(((Enum<?>) obj).name());\r\n+        } else if (c.isArray()) {\r\n+            int len = Array.getLength(obj);\r\n+            jb.arrayBegin();\r\n+            for (int i = 0; i < len; i++) {\r\n+                writeValue(Array.get(obj, i), jb, writeClass);\r\n+            }\r\n+            jb.arrayEnd();\r\n+        } else if (Map.class.isAssignableFrom(c)) {\r\n+            Object key, value;\r\n+            jb.objectBegin();\r\n+            for (Map.Entry<Object, Object> entry : ((Map<Object, Object>) obj).entrySet()) {\r\n+                key = entry.getKey();\r\n+                if (key == null) {\r\n+                    continue;\r\n+                }\r\n+                jb.objectItem(key.toString());\r\n+\r\n+                value = entry.getValue();\r\n+                if (value == null) {\r\n+                    jb.valueNull();\r\n+                } else {\r\n+                    writeValue(value, jb, writeClass);\r\n+                }\r\n+            }\r\n+            jb.objectEnd();\r\n+        } else if (Collection.class.isAssignableFrom(c)) {\r\n+            jb.arrayBegin();\r\n+            for (Object item : (Collection<Object>) obj) {\r\n+                if (item == null) {\r\n+                    jb.valueNull();\r\n+                } else {\r\n+                    writeValue(item, jb, writeClass);\r\n+                }\r\n+            }\r\n+            jb.arrayEnd();\r\n+        } else if(obj instanceof Locale) {\r\n+            jb.valueString(obj.toString());\r\n+        } else {\r\n+            jb.objectBegin();\r\n+\r\n+            Wrapper w = Wrapper.getWrapper(c);\r\n+            String[] pns = w.getPropertyNames();\r\n+\r\n+            for (String pn : pns) {\r\n+                if ((obj instanceof Throwable) && (\r\n+                        \"localizedMessage\".equals(pn)\r\n+                                || \"cause\".equals(pn)\r\n+                                || \"suppressed\".equals(pn)\r\n+                                || \"stackTrace\".equals(pn))) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                jb.objectItem(pn);\r\n+\r\n+                Object value = w.getPropertyValue(obj, pn);\r\n+                if (value == null || value == obj) {\r\n+                    jb.valueNull();\r\n+                } else {\r\n+                    writeValue(value, jb, writeClass);\r\n+                }\r\n+            }\r\n+            if (writeClass) {\r\n+                jb.objectItem(JSONVisitor.CLASS_PROPERTY);\r\n+                writeValue(obj.getClass().getName(), jb, writeClass);\r\n+            }\r\n+            jb.objectEnd();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public Object readValue(Class<?> c, Object jv) throws IOException {\r\n+        if (jv == null) {\r\n+            return null;\r\n+        }\r\n+        Decoder decoder = GLOBAL_DECODER_MAP.get(c);\r\n+        if (decoder != null) {\r\n+            return decoder.decode(jv);\r\n+        }\r\n+        if (c.isEnum()) {\r\n+            return Enum.valueOf((Class<Enum>) c, String.valueOf(jv));\r\n+        }\r\n+        return jv;\r\n+    }\r\n+\r\n+    protected interface Encoder {\r\n+        void encode(Object obj, JSONWriter jb) throws IOException;\r\n+    }\r\n+\r\n+    protected interface Decoder {\r\n+        Object decode(Object jv) throws IOException;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/json/Yylex.java", "source2": "org/apache/dubbo/common/json/Yylex.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,847 +1,847 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.json;\n-\n-/**\n- * This class is a scanner generated by\n- * <a href=\"http://www.jflex.de/\">JFlex</a> 1.4.3\n- * on 7/3/10 3:12 AM from the specification file\n- * <tt>/Users/qianlei/dev/proj/dubbo-1.1/dubbo.common/src/main/java/org.apache.dubbo/common/json/json.flex</tt>\n- */\n-@Deprecated\n-public class Yylex {\n-\n-    /**\n-     * This character denotes the end of file\n-     */\n-    public static final int YYEOF = -1;\n-    /**\n-     * lexical states\n-     */\n-    public static final int STR2 = 4;\n-    public static final int STR1 = 2;\n-    public static final int YYINITIAL = 0;\n-    /**\n-     * initial size of the lookahead buffer\n-     */\n-    private static final int ZZ_BUFFERSIZE = 16384;\n-    /**\n-     * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l\n-     * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l\n-     * at the beginning of a line\n-     * l is of the form l = 2*k, k a non negative integer\n-     */\n-    private static final int[] ZZ_LEXSTATE = {\n-            0, 0, 1, 1, 2, 2\n-    };\n-\n-    /**\n-     * Translates characters to character classes\n-     */\n-    private static final String ZZ_CMAP_PACKED =\n-            \"\\11\\0\\1\\13\\1\\13\\2\\0\\1\\13\\22\\0\\1\\13\\1\\0\\1\\10\\1\\0\" +\n-                    \"\\1\\2\\2\\0\\1\\11\\3\\0\\1\\7\\1\\43\\1\\4\\1\\5\\1\\14\\12\\1\" +\n-                    \"\\1\\44\\6\\0\\1\\33\\3\\3\\1\\6\\1\\32\\5\\2\\1\\34\\1\\2\\1\\36\" +\n-                    \"\\3\\2\\1\\25\\1\\35\\1\\24\\1\\26\\5\\2\\1\\41\\1\\12\\1\\42\\1\\0\" +\n-                    \"\\1\\2\\1\\0\\1\\27\\1\\15\\2\\3\\1\\23\\1\\16\\5\\2\\1\\30\\1\\2\" +\n-                    \"\\1\\17\\3\\2\\1\\20\\1\\31\\1\\21\\1\\22\\5\\2\\1\\37\\1\\0\\1\\40\" +\n-                    \"\\uff82\\0\";\n-\n-    /**\n-     * Translates characters to character classes\n-     */\n-    private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);\n-    private static final String ZZ_ACTION_PACKED_0 =\n-            \"\\3\\0\\1\\1\\1\\2\\1\\3\\1\\1\\1\\4\\1\\5\\1\\6\" +\n-                    \"\\6\\3\\1\\7\\1\\10\\1\\11\\1\\12\\1\\13\\1\\14\\1\\15\" +\n-                    \"\\1\\16\\1\\0\\1\\15\\3\\0\\6\\3\\1\\17\\1\\20\\1\\21\" +\n-                    \"\\1\\22\\1\\23\\1\\24\\1\\25\\1\\26\\1\\0\\1\\27\\2\\30\" +\n-                    \"\\1\\0\\6\\3\\1\\0\\1\\3\\1\\31\\1\\32\\1\\3\\1\\0\" +\n-                    \"\\1\\33\\1\\0\\1\\34\";\n-    /**\n-     * Translates DFA states to action switch labels.\n-     */\n-    private static final int[] ZZ_ACTION = zzUnpackAction();\n-    private static final String ZZ_ROWMAP_PACKED_0 =\n-            \"\\0\\0\\0\\45\\0\\112\\0\\157\\0\\224\\0\\271\\0\\336\\0\\157\" +\n-                    \"\\0\\157\\0\\u0103\\0\\u0128\\0\\u014d\\0\\u0172\\0\\u0197\\0\\u01bc\\0\\u01e1\" +\n-                    \"\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\\0\\u0206\\0\\157\" +\n-                    \"\\0\\u022b\\0\\u0250\\0\\u0275\\0\\u029a\\0\\u02bf\\0\\u02e4\\0\\u0309\\0\\u032e\" +\n-                    \"\\0\\u0353\\0\\u0378\\0\\u039d\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\" +\n-                    \"\\0\\157\\0\\157\\0\\157\\0\\u03c2\\0\\157\\0\\u03e7\\0\\u040c\\0\\u040c\" +\n-                    \"\\0\\u0431\\0\\u0456\\0\\u047b\\0\\u04a0\\0\\u04c5\\0\\u04ea\\0\\u050f\\0\\u0534\" +\n-                    \"\\0\\271\\0\\271\\0\\u0559\\0\\u057e\\0\\271\\0\\u05a3\\0\\157\";\n-    /**\n-     * Translates a state to a row index in the transition table\n-     */\n-    private static final int[] ZZ_ROWMAP = zzUnpackRowMap();\n-    /**\n-     * The transition table of the DFA\n-     */\n-    private static final int[] ZZ_TRANS = {\n-            3, 4, 5, 5, 6, 3, 5, 3, 7, 8,\n-            3, 9, 3, 5, 10, 11, 5, 12, 5, 5,\n-            13, 5, 5, 5, 5, 5, 14, 5, 5, 5,\n-            15, 16, 17, 18, 19, 20, 21, 22, 22, 22,\n-            22, 22, 22, 22, 22, 23, 22, 24, 22, 22,\n-            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n-            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n-            22, 22, 22, 22, 25, 25, 25, 25, 25, 25,\n-            25, 25, 25, 23, 26, 25, 25, 25, 25, 25,\n-            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\n-            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\n-            25, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,\n-            -1, -1, -1, 27, 28, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, 28, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, 5, 5, 5, -1,\n-            -1, 5, -1, -1, -1, -1, -1, -1, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, -1, -1, -1, -1,\n-            -1, -1, -1, 4, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            9, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, 5, 5, 5,\n-            -1, -1, 5, -1, -1, -1, -1, -1, -1, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 29,\n-            5, 5, 5, 5, 5, 5, 5, -1, -1, -1,\n-            -1, -1, -1, -1, 5, 5, 5, -1, -1, 5,\n-            -1, -1, -1, -1, -1, -1, 5, 5, 5, 5,\n-            5, 30, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, -1, -1, -1, -1, -1, -1,\n-            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\n-            -1, -1, -1, 5, 5, 5, 31, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\n-            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\n-            5, 5, 5, 5, 5, 5, 5, 5, 32, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, -1, -1,\n-            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\n-            5, -1, -1, -1, -1, -1, -1, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 33, 5, 5, 5, -1, -1, -1, -1, -1,\n-            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\n-            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 34, 5, 5, 5, 5, 5, 5,\n-            5, 5, -1, -1, -1, -1, -1, -1, 22, 22,\n-            22, 22, 22, 22, 22, 22, -1, 22, -1, 22,\n-            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n-            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\n-            22, 22, 22, 22, 22, -1, -1, -1, -1, -1,\n-            -1, -1, -1, 35, -1, 36, -1, 37, 38, 39,\n-            40, 41, 42, 43, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, 25, 25, 25, 25, 25, 25, 25, 25,\n-            25, -1, -1, 25, 25, 25, 25, 25, 25, 25,\n-            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\n-            25, 25, 25, 25, 25, 25, 25, 25, 25, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, 44, 36,\n-            -1, 37, 38, 39, 40, 41, 42, 43, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, 46, -1, -1, 47, -1, -1,\n-            47, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\n-            -1, -1, -1, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 48, 5, 5, 5, 5, 5,\n-            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\n-            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 49, 5, 5, 5, 5, 5, 5, -1, -1,\n-            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\n-            5, -1, -1, -1, -1, -1, -1, 5, 5, 5,\n-            5, 5, 50, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, -1, -1, -1, -1, -1,\n-            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\n-            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 51, 5, 5, 5, 5, 5, 5,\n-            5, 5, -1, -1, -1, -1, -1, -1, -1, 5,\n-            5, 5, -1, -1, 5, -1, -1, -1, -1, -1,\n-            -1, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 52, 5, 5, -1,\n-            -1, -1, -1, -1, -1, -1, 5, 5, 5, -1,\n-            -1, 5, -1, -1, -1, -1, -1, -1, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 53, 5, 5, -1, -1, -1, -1,\n-            -1, -1, -1, 54, -1, 54, -1, -1, 54, -1,\n-            -1, -1, -1, -1, -1, 54, 54, -1, -1, -1,\n-            -1, 54, -1, -1, -1, 54, -1, -1, 54, 54,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            45, -1, -1, -1, -1, 28, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, 28, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, 46, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, 5, 5, 5, -1, -1, 5,\n-            -1, -1, -1, -1, -1, -1, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 55, 5,\n-            5, 5, 5, 5, -1, -1, -1, -1, -1, -1,\n-            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\n-            -1, -1, -1, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 56, 5, 5, 5, 5, 5,\n-            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\n-            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\n-            5, 5, 5, 5, 5, 5, 57, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, -1, -1,\n-            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\n-            57, -1, -1, -1, -1, -1, -1, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, -1, -1, -1, -1, -1,\n-            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\n-            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            58, 5, -1, -1, -1, -1, -1, -1, -1, 5,\n-            5, 5, -1, -1, 5, -1, -1, -1, -1, -1,\n-            -1, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 56, 5, 5, -1,\n-            -1, -1, -1, -1, -1, -1, 59, -1, 59, -1,\n-            -1, 59, -1, -1, -1, -1, -1, -1, 59, 59,\n-            -1, -1, -1, -1, 59, -1, -1, -1, 59, -1,\n-            -1, 59, 59, -1, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, 5, 5, 5, -1, -1, 5, -1,\n-            -1, -1, -1, -1, -1, 5, 5, 5, 5, 5,\n-            5, 60, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, -1, -1, -1, -1, -1, -1, -1,\n-            5, 5, 5, -1, -1, 60, -1, -1, -1, -1,\n-            -1, -1, 5, 5, 5, 5, 5, 5, 5, 5,\n-            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\n-            -1, -1, -1, -1, -1, -1, -1, 61, -1, 61,\n-            -1, -1, 61, -1, -1, -1, -1, -1, -1, 61,\n-            61, -1, -1, -1, -1, 61, -1, -1, -1, 61,\n-            -1, -1, 61, 61, -1, -1, -1, -1, -1, -1,\n-            -1, -1, -1, -1, 62, -1, 62, -1, -1, 62,\n-            -1, -1, -1, -1, -1, -1, 62, 62, -1, -1,\n-            -1, -1, 62, -1, -1, -1, 62, -1, -1, 62,\n-            62, -1, -1, -1, -1, -1, -1, -1, -1, -1,\n-    };\n-    /* error codes */\n-    private static final int ZZ_UNKNOWN_ERROR = 0;\n-    private static final int ZZ_NO_MATCH = 1;\n-    private static final int ZZ_PUSHBACK_2BIG = 2;\n-    /* error messages for the codes above */\n-    private static final String[] ZZ_ERROR_MSG = {\n-            \"Unkown internal scanner error\",\n-            \"Error: could not match input\",\n-            \"Error: pushback value was too large\"\n-    };\n-    private static final String ZZ_ATTRIBUTE_PACKED_0 =\n-            \"\\3\\0\\1\\11\\3\\1\\2\\11\\7\\1\\6\\11\\1\\1\\1\\11\" +\n-                    \"\\1\\0\\1\\1\\3\\0\\6\\1\\10\\11\\1\\0\\1\\11\\2\\1\" +\n-                    \"\\1\\0\\6\\1\\1\\0\\4\\1\\1\\0\\1\\1\\1\\0\\1\\11\";\n-    /**\n-     * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>\n-     */\n-    private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();\n-    /**\n-     * the input device\n-     */\n-    private java.io.Reader zzReader;\n-    /**\n-     * the current state of the DFA\n-     */\n-    private int zzState;\n-    /**\n-     * the current lexical state\n-     */\n-    private int zzLexicalState = YYINITIAL;\n-    /**\n-     * this buffer contains the current text to be matched and is\n-     * the source of the yytext() string\n-     */\n-    private char[] zzBuffer = new char[ZZ_BUFFERSIZE];\n-    /**\n-     * the textposition at the last accepting state\n-     */\n-    private int zzMarkedPos;\n-    /**\n-     * the current text position in the buffer\n-     */\n-    private int zzCurrentPos;\n-    /**\n-     * startRead marks the beginning of the yytext() string in the buffer\n-     */\n-    private int zzStartRead;\n-    /**\n-     * endRead marks the last character in the buffer, that has been read\n-     * from input\n-     */\n-    private int zzEndRead;\n-    /**\n-     * zzAtEOF == true <=> the scanner is at the EOF\n-     */\n-    private boolean zzAtEOF;\n-    /**\n-     * denotes if the user-EOF-code has already been executed\n-     */\n-    //private boolean zzEOFDone;\n-\n-  /* user code: */\n-    private StringBuffer sb;\n-\n-    /**\n-     * Creates a new scanner\n-     * There is also a java.io.InputStream version of this constructor.\n-     *\n-     * @param in the java.io.Reader to read input from.\n-     */\n-    Yylex(java.io.Reader in) {\n-        this.zzReader = in;\n-    }\n-\n-    /**\n-     * Creates a new scanner.\n-     * There is also java.io.Reader version of this constructor.\n-     *\n-     * @param in the java.io.Inputstream to read input from.\n-     */\n-    Yylex(java.io.InputStream in) {\n-        this(new java.io.InputStreamReader(in));\n-    }\n-\n-    private static int[] zzUnpackAction() {\n-        int[] result = new int[63];\n-        int offset = 0;\n-        offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);\n-        return result;\n-    }\n-\n-    private static int zzUnpackAction(String packed, int offset, int[] result) {\n-        int i = 0;       /* index in packed string  */\n-        int j = offset;  /* index in unpacked array */\n-        int l = packed.length();\n-        while (i < l) {\n-            int count = packed.charAt(i++);\n-            int value = packed.charAt(i++);\n-            do {\n-                result[j++] = value;\n-            } while (--count > 0);\n-        }\n-        return j;\n-    }\n-\n-    /** number of newlines encountered up to the start of the matched text */\n-    //private int yyline;\n-\n-    /** the number of characters up to the start of the matched text */\n-    //private int yychar;\n-\n-    /**\n-     * the number of characters from the last newline up to the start of the\n-     * matched text\n-     */\n-    //private int yycolumn;\n-\n-    /**\n-     * zzAtBOL == true <=> the scanner is currently at the beginning of a line\n-     */\n-    //private boolean zzAtBOL = true;\n-    private static int[] zzUnpackRowMap() {\n-        int[] result = new int[63];\n-        int offset = 0;\n-        offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);\n-        return result;\n-    }\n-\n-    private static int zzUnpackRowMap(String packed, int offset, int[] result) {\n-        int i = 0;  /* index in packed string  */\n-        int j = offset;  /* index in unpacked array */\n-        int l = packed.length();\n-        while (i < l) {\n-            int high = packed.charAt(i++) << 16;\n-            result[j++] = high | packed.charAt(i++);\n-        }\n-        return j;\n-    }\n-\n-    private static int[] zzUnpackAttribute() {\n-        int[] result = new int[63];\n-        int offset = 0;\n-        offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);\n-        return result;\n-    }\n-\n-    private static int zzUnpackAttribute(String packed, int offset, int[] result) {\n-        int i = 0;       /* index in packed string  */\n-        int j = offset;  /* index in unpacked array */\n-        int l = packed.length();\n-        while (i < l) {\n-            int count = packed.charAt(i++);\n-            int value = packed.charAt(i++);\n-            do {\n-                result[j++] = value;\n-            } while (--count > 0);\n-        }\n-        return j;\n-    }\n-\n-    /**\n-     * Unpacks the compressed character translation table.\n-     *\n-     * @param packed the packed character translation table\n-     * @return the unpacked character translation table\n-     */\n-    private static char[] zzUnpackCMap(String packed) {\n-        char[] map = new char[0x10000];\n-        int i = 0;  /* index in packed string  */\n-        int j = 0;  /* index in unpacked array */\n-        while (i < 122) {\n-            int count = packed.charAt(i++);\n-            char value = packed.charAt(i++);\n-            do {\n-                map[j++] = value;\n-            } while (--count > 0);\n-        }\n-        return map;\n-    }\n-\n-\n-    /**\n-     * Refills the input buffer.\n-     *\n-     * @return <code>false</code>, iff there was new input.\n-     * @throws java.io.IOException if any I/O-Error occurs\n-     */\n-    private boolean zzRefill() throws java.io.IOException {\n-\n-    /* first: make room (if you can) */\n-        if (zzStartRead > 0) {\n-            System.arraycopy(zzBuffer, zzStartRead,\n-                    zzBuffer, 0,\n-                    zzEndRead - zzStartRead);\n-\n-      /* translate stored positions */\n-            zzEndRead -= zzStartRead;\n-            zzCurrentPos -= zzStartRead;\n-            zzMarkedPos -= zzStartRead;\n-            zzStartRead = 0;\n-        }\n-\n-    /* is the buffer big enough? */\n-        if (zzCurrentPos >= zzBuffer.length) {\n-      /* if not: blow it up */\n-            char[] newBuffer = new char[zzCurrentPos * 2];\n-            System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);\n-            zzBuffer = newBuffer;\n-        }\n-\n-    /* finally: fill the buffer with new input */\n-        int numRead = zzReader.read(zzBuffer, zzEndRead,\n-                zzBuffer.length - zzEndRead);\n-\n-        if (numRead > 0) {\n-            zzEndRead += numRead;\n-            return false;\n-        }\n-        // unlikely but not impossible: read 0 characters, but not at end of stream\n-        if (numRead == 0) {\n-            int c = zzReader.read();\n-            if (c == -1) {\n-                return true;\n-            } else {\n-                zzBuffer[zzEndRead++] = (char) c;\n-                return false;\n-            }\n-        }\n-\n-        // numRead < 0\n-        return true;\n-    }\n-\n-\n-    /**\n-     * Closes the input stream.\n-     */\n-    public final void yyclose() throws java.io.IOException {\n-        zzAtEOF = true;            /* indicate end of file */\n-        zzEndRead = zzStartRead;  /* invalidate buffer    */\n-\n-        if (zzReader != null) {\n-            zzReader.close();\n-        }\n-    }\n-\n-\n-    /**\n-     * Resets the scanner to read from a new input stream.\n-     * Does not close the old reader.\n-     * <p>\n-     * All internal variables are reset, the old input stream\n-     * <b>cannot</b> be reused (internal buffer is discarded and lost).\n-     * Lexical state is set to <tt>ZZ_INITIAL</tt>.\n-     *\n-     * @param reader the new input stream\n-     */\n-    public final void yyreset(java.io.Reader reader) {\n-        zzReader = reader;\n-        //zzAtBOL  = true;\n-        zzAtEOF = false;\n-        //zzEOFDone = false;\n-        zzEndRead = zzStartRead = 0;\n-        zzCurrentPos = zzMarkedPos = 0;\n-        //yyline = yychar = yycolumn = 0;\n-        zzLexicalState = YYINITIAL;\n-    }\n-\n-\n-    /**\n-     * Returns the current lexical state.\n-     */\n-    public final int yystate() {\n-        return zzLexicalState;\n-    }\n-\n-\n-    /**\n-     * Enters a new lexical state\n-     *\n-     * @param newState the new lexical state\n-     */\n-    public final void yybegin(int newState) {\n-        zzLexicalState = newState;\n-    }\n-\n-\n-    /**\n-     * Returns the text matched by the current regular expression.\n-     */\n-    public final String yytext() {\n-        return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);\n-    }\n-\n-\n-    /**\n-     * Returns the character at position <tt>pos</tt> from the\n-     * matched text.\n-     * <p>\n-     * It is equivalent to yytext().charAt(pos), but faster\n-     *\n-     * @param pos the position of the character to fetch.\n-     *            A value from 0 to yylength()-1.\n-     * @return the character at position pos\n-     */\n-    public final char yycharat(int pos) {\n-        return zzBuffer[zzStartRead + pos];\n-    }\n-\n-\n-    /**\n-     * Returns the length of the matched text region.\n-     */\n-    public final int yylength() {\n-        return zzMarkedPos - zzStartRead;\n-    }\n-\n-\n-    /**\n-     * Reports an error that occured while scanning.\n-     * <p>\n-     * In a wellformed scanner (no or only correct usage of\n-     * yypushback(int) and a match-all fallback rule) this method\n-     * will only be called with things that \"Can't Possibly Happen\".\n-     * If this method is called, something is seriously wrong\n-     * (e.g. a JFlex bug producing a faulty scanner etc.).\n-     * <p>\n-     * Usual syntax/scanner level error handling should be done\n-     * in error fallback rules.\n-     *\n-     * @param errorCode the code of the errormessage to display\n-     */\n-    private void zzScanError(int errorCode) {\n-        String message;\n-        try {\n-            message = ZZ_ERROR_MSG[errorCode];\n-        } catch (ArrayIndexOutOfBoundsException e) {\n-            message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];\n-        }\n-\n-        throw new Error(message);\n-    }\n-\n-\n-    /**\n-     * Pushes the specified amount of characters back into the input stream.\n-     * <p>\n-     * They will be read again by then next call of the scanning method\n-     *\n-     * @param number the number of characters to be read again.\n-     *               This number must not be greater than yylength()!\n-     */\n-    public void yypushback(int number) {\n-        if (number > yylength()) {\n-            zzScanError(ZZ_PUSHBACK_2BIG);\n-        }\n-\n-        zzMarkedPos -= number;\n-    }\n-\n-\n-    /**\n-     * Resumes scanning until the next regular expression is matched,\n-     * the end of input is encountered or an I/O-Error occurs.\n-     *\n-     * @return the next token\n-     * @throws java.io.IOException if any I/O-Error occurs\n-     */\n-    public JSONToken yylex() throws java.io.IOException, ParseException {\n-        int zzInput;\n-        int zzAction;\n-\n-        // cached fields:\n-        int zzCurrentPosL;\n-        int zzMarkedPosL;\n-        int zzEndReadL = zzEndRead;\n-        char[] zzBufferL = zzBuffer;\n-        char[] zzCMapL = ZZ_CMAP;\n-\n-        int[] zzTransL = ZZ_TRANS;\n-        int[] zzRowMapL = ZZ_ROWMAP;\n-        int[] zzAttrL = ZZ_ATTRIBUTE;\n-\n-        while (true) {\n-            zzMarkedPosL = zzMarkedPos;\n-\n-            zzAction = -1;\n-\n-            zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;\n-\n-            zzState = ZZ_LEXSTATE[zzLexicalState];\n-\n-\n-            zzForAction:\n-            {\n-                while (true) {\n-\n-                    if (zzCurrentPosL < zzEndReadL) {\n-                        zzInput = zzBufferL[zzCurrentPosL++];\n-                    } else if (zzAtEOF) {\n-                        zzInput = YYEOF;\n-                        break zzForAction;\n-                    } else {\n-                        // store back cached positions\n-                        zzCurrentPos = zzCurrentPosL;\n-                        zzMarkedPos = zzMarkedPosL;\n-                        boolean eof = zzRefill();\n-                        // get translated positions and possibly new buffer\n-                        zzCurrentPosL = zzCurrentPos;\n-                        zzMarkedPosL = zzMarkedPos;\n-                        zzBufferL = zzBuffer;\n-                        zzEndReadL = zzEndRead;\n-                        if (eof) {\n-                            zzInput = YYEOF;\n-                            break zzForAction;\n-                        } else {\n-                            zzInput = zzBufferL[zzCurrentPosL++];\n-                        }\n-                    }\n-                    int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];\n-                    if (zzNext == -1) {\n-                        break zzForAction;\n-                    }\n-                    zzState = zzNext;\n-\n-                    int zzAttributes = zzAttrL[zzState];\n-                    if ((zzAttributes & 1) == 1) {\n-                        zzAction = zzState;\n-                        zzMarkedPosL = zzCurrentPosL;\n-                        if ((zzAttributes & 8) == 8) {\n-                            break zzForAction;\n-                        }\n-                    }\n-\n-                }\n-            }\n-\n-            // store back cached position\n-            zzMarkedPos = zzMarkedPosL;\n-\n-            switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {\n-                case 25: {\n-                    return new JSONToken(JSONToken.NULL, null);\n-                }\n-                case 29:\n-                    break;\n-                case 13: {\n-                    sb.append(yytext());\n-                }\n-                case 30:\n-                    break;\n-                case 18: {\n-                    sb.append('\\b');\n-                }\n-                case 31:\n-                    break;\n-                case 9: {\n-                    return new JSONToken(JSONToken.LSQUARE);\n-                }\n-                case 32:\n-                    break;\n-                case 2: {\n-                    Long val = Long.valueOf(yytext());\n-                    return new JSONToken(JSONToken.INT, val);\n-                }\n-                case 33:\n-                    break;\n-                case 16: {\n-                    sb.append('\\\\');\n-                }\n-                case 34:\n-                    break;\n-                case 8: {\n-                    return new JSONToken(JSONToken.RBRACE);\n-                }\n-                case 35:\n-                    break;\n-                case 26: {\n-                    return new JSONToken(JSONToken.BOOL, Boolean.TRUE);\n-                }\n-                case 36:\n-                    break;\n-                case 23: {\n-                    sb.append('\\'');\n-                }\n-                case 37:\n-                    break;\n-                case 5: {\n-                    sb = new StringBuffer();\n-                    yybegin(STR2);\n-                }\n-                case 38:\n-                    break;\n-                case 27: {\n-                    return new JSONToken(JSONToken.BOOL, Boolean.FALSE);\n-                }\n-                case 39:\n-                    break;\n-                case 12: {\n-                    return new JSONToken(JSONToken.COLON);\n-                }\n-                case 40:\n-                    break;\n-                case 21: {\n-                    sb.append('\\r');\n-                }\n-                case 41:\n-                    break;\n-                case 3: {\n-                    return new JSONToken(JSONToken.IDENT, yytext());\n-                }\n-                case 42:\n-                    break;\n-                case 28: {\n-                    try {\n-                        sb.append((char) Integer.parseInt(yytext().substring(2), 16));\n-                    } catch (Exception e) {\n-                        throw new ParseException(e.getMessage());\n-                    }\n-                }\n-                case 43:\n-                    break;\n-                case 10: {\n-                    return new JSONToken(JSONToken.RSQUARE);\n-                }\n-                case 44:\n-                    break;\n-                case 17: {\n-                    sb.append('/');\n-                }\n-                case 45:\n-                    break;\n-                case 11: {\n-                    return new JSONToken(JSONToken.COMMA);\n-                }\n-                case 46:\n-                    break;\n-                case 15: {\n-                    sb.append('\"');\n-                }\n-                case 47:\n-                    break;\n-                case 24: {\n-                    Double val = Double.valueOf(yytext());\n-                    return new JSONToken(JSONToken.FLOAT, val);\n-                }\n-                case 48:\n-                    break;\n-                case 1: {\n-                    throw new ParseException(\"Unexpected char [\" + yytext() + \"]\");\n-                }\n-                case 49:\n-                    break;\n-                case 19: {\n-                    sb.append('\\f');\n-                }\n-                case 50:\n-                    break;\n-                case 7: {\n-                    return new JSONToken(JSONToken.LBRACE);\n-                }\n-                case 51:\n-                    break;\n-                case 14: {\n-                    yybegin(YYINITIAL);\n-                    return new JSONToken(JSONToken.STRING, sb.toString());\n-                }\n-                case 52:\n-                    break;\n-                case 22: {\n-                    sb.append('\\t');\n-                }\n-                case 53:\n-                    break;\n-                case 4: {\n-                    sb = new StringBuffer();\n-                    yybegin(STR1);\n-                }\n-                case 54:\n-                    break;\n-                case 20: {\n-                    sb.append('\\n');\n-                }\n-                case 55:\n-                    break;\n-                case 6: {\n-                }\n-                case 56:\n-                    break;\n-                default:\n-                    if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {\n-                        zzAtEOF = true;\n-                        return null;\n-                    } else {\n-                        zzScanError(ZZ_NO_MATCH);\n-                        break;\n-                    }\n-            }\n-        }\n-    }\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.json;\r\n+\r\n+/**\r\n+ * This class is a scanner generated by\r\n+ * <a href=\"http://www.jflex.de/\">JFlex</a> 1.4.3\r\n+ * on 7/3/10 3:12 AM from the specification file\r\n+ * <tt>/Users/qianlei/dev/proj/dubbo-1.1/dubbo.common/src/main/java/org.apache.dubbo/common/json/json.flex</tt>\r\n+ */\r\n+@Deprecated\r\n+public class Yylex {\r\n+\r\n+    /**\r\n+     * This character denotes the end of file\r\n+     */\r\n+    public static final int YYEOF = -1;\r\n+    /**\r\n+     * lexical states\r\n+     */\r\n+    public static final int STR2 = 4;\r\n+    public static final int STR1 = 2;\r\n+    public static final int YYINITIAL = 0;\r\n+    /**\r\n+     * initial size of the lookahead buffer\r\n+     */\r\n+    private static final int ZZ_BUFFERSIZE = 16384;\r\n+    /**\r\n+     * ZZ_LEXSTATE[l] is the state in the DFA for the lexical state l\r\n+     * ZZ_LEXSTATE[l+1] is the state in the DFA for the lexical state l\r\n+     * at the beginning of a line\r\n+     * l is of the form l = 2*k, k a non negative integer\r\n+     */\r\n+    private static final int[] ZZ_LEXSTATE = {\r\n+            0, 0, 1, 1, 2, 2\r\n+    };\r\n+\r\n+    /**\r\n+     * Translates characters to character classes\r\n+     */\r\n+    private static final String ZZ_CMAP_PACKED =\r\n+            \"\\11\\0\\1\\13\\1\\13\\2\\0\\1\\13\\22\\0\\1\\13\\1\\0\\1\\10\\1\\0\" +\r\n+                    \"\\1\\2\\2\\0\\1\\11\\3\\0\\1\\7\\1\\43\\1\\4\\1\\5\\1\\14\\12\\1\" +\r\n+                    \"\\1\\44\\6\\0\\1\\33\\3\\3\\1\\6\\1\\32\\5\\2\\1\\34\\1\\2\\1\\36\" +\r\n+                    \"\\3\\2\\1\\25\\1\\35\\1\\24\\1\\26\\5\\2\\1\\41\\1\\12\\1\\42\\1\\0\" +\r\n+                    \"\\1\\2\\1\\0\\1\\27\\1\\15\\2\\3\\1\\23\\1\\16\\5\\2\\1\\30\\1\\2\" +\r\n+                    \"\\1\\17\\3\\2\\1\\20\\1\\31\\1\\21\\1\\22\\5\\2\\1\\37\\1\\0\\1\\40\" +\r\n+                    \"\\uff82\\0\";\r\n+\r\n+    /**\r\n+     * Translates characters to character classes\r\n+     */\r\n+    private static final char[] ZZ_CMAP = zzUnpackCMap(ZZ_CMAP_PACKED);\r\n+    private static final String ZZ_ACTION_PACKED_0 =\r\n+            \"\\3\\0\\1\\1\\1\\2\\1\\3\\1\\1\\1\\4\\1\\5\\1\\6\" +\r\n+                    \"\\6\\3\\1\\7\\1\\10\\1\\11\\1\\12\\1\\13\\1\\14\\1\\15\" +\r\n+                    \"\\1\\16\\1\\0\\1\\15\\3\\0\\6\\3\\1\\17\\1\\20\\1\\21\" +\r\n+                    \"\\1\\22\\1\\23\\1\\24\\1\\25\\1\\26\\1\\0\\1\\27\\2\\30\" +\r\n+                    \"\\1\\0\\6\\3\\1\\0\\1\\3\\1\\31\\1\\32\\1\\3\\1\\0\" +\r\n+                    \"\\1\\33\\1\\0\\1\\34\";\r\n+    /**\r\n+     * Translates DFA states to action switch labels.\r\n+     */\r\n+    private static final int[] ZZ_ACTION = zzUnpackAction();\r\n+    private static final String ZZ_ROWMAP_PACKED_0 =\r\n+            \"\\0\\0\\0\\45\\0\\112\\0\\157\\0\\224\\0\\271\\0\\336\\0\\157\" +\r\n+                    \"\\0\\157\\0\\u0103\\0\\u0128\\0\\u014d\\0\\u0172\\0\\u0197\\0\\u01bc\\0\\u01e1\" +\r\n+                    \"\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\\0\\u0206\\0\\157\" +\r\n+                    \"\\0\\u022b\\0\\u0250\\0\\u0275\\0\\u029a\\0\\u02bf\\0\\u02e4\\0\\u0309\\0\\u032e\" +\r\n+                    \"\\0\\u0353\\0\\u0378\\0\\u039d\\0\\157\\0\\157\\0\\157\\0\\157\\0\\157\" +\r\n+                    \"\\0\\157\\0\\157\\0\\157\\0\\u03c2\\0\\157\\0\\u03e7\\0\\u040c\\0\\u040c\" +\r\n+                    \"\\0\\u0431\\0\\u0456\\0\\u047b\\0\\u04a0\\0\\u04c5\\0\\u04ea\\0\\u050f\\0\\u0534\" +\r\n+                    \"\\0\\271\\0\\271\\0\\u0559\\0\\u057e\\0\\271\\0\\u05a3\\0\\157\";\r\n+    /**\r\n+     * Translates a state to a row index in the transition table\r\n+     */\r\n+    private static final int[] ZZ_ROWMAP = zzUnpackRowMap();\r\n+    /**\r\n+     * The transition table of the DFA\r\n+     */\r\n+    private static final int[] ZZ_TRANS = {\r\n+            3, 4, 5, 5, 6, 3, 5, 3, 7, 8,\r\n+            3, 9, 3, 5, 10, 11, 5, 12, 5, 5,\r\n+            13, 5, 5, 5, 5, 5, 14, 5, 5, 5,\r\n+            15, 16, 17, 18, 19, 20, 21, 22, 22, 22,\r\n+            22, 22, 22, 22, 22, 23, 22, 24, 22, 22,\r\n+            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\r\n+            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\r\n+            22, 22, 22, 22, 25, 25, 25, 25, 25, 25,\r\n+            25, 25, 25, 23, 26, 25, 25, 25, 25, 25,\r\n+            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n+            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n+            25, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, 4,\r\n+            -1, -1, -1, 27, 28, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, 28, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, 5, 5, 5, -1,\r\n+            -1, 5, -1, -1, -1, -1, -1, -1, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, -1, -1, -1, -1,\r\n+            -1, -1, -1, 4, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            9, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, 5, 5, 5,\r\n+            -1, -1, 5, -1, -1, -1, -1, -1, -1, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 29,\r\n+            5, 5, 5, 5, 5, 5, 5, -1, -1, -1,\r\n+            -1, -1, -1, -1, 5, 5, 5, -1, -1, 5,\r\n+            -1, -1, -1, -1, -1, -1, 5, 5, 5, 5,\r\n+            5, 30, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, -1, -1, -1, -1, -1, -1,\r\n+            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\r\n+            -1, -1, -1, 5, 5, 5, 31, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\r\n+            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 32, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, -1, -1,\r\n+            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\r\n+            5, -1, -1, -1, -1, -1, -1, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 33, 5, 5, 5, -1, -1, -1, -1, -1,\r\n+            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\r\n+            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 34, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, -1, -1, -1, -1, -1, -1, 22, 22,\r\n+            22, 22, 22, 22, 22, 22, -1, 22, -1, 22,\r\n+            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\r\n+            22, 22, 22, 22, 22, 22, 22, 22, 22, 22,\r\n+            22, 22, 22, 22, 22, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, 35, -1, 36, -1, 37, 38, 39,\r\n+            40, 41, 42, 43, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, 25, 25, 25, 25, 25, 25, 25, 25,\r\n+            25, -1, -1, 25, 25, 25, 25, 25, 25, 25,\r\n+            25, 25, 25, 25, 25, 25, 25, 25, 25, 25,\r\n+            25, 25, 25, 25, 25, 25, 25, 25, 25, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, 44, 36,\r\n+            -1, 37, 38, 39, 40, 41, 42, 43, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, 45, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, 46, -1, -1, 47, -1, -1,\r\n+            47, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\r\n+            -1, -1, -1, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 48, 5, 5, 5, 5, 5,\r\n+            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\r\n+            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 49, 5, 5, 5, 5, 5, 5, -1, -1,\r\n+            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\r\n+            5, -1, -1, -1, -1, -1, -1, 5, 5, 5,\r\n+            5, 5, 50, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, -1, -1, -1, -1, -1,\r\n+            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\r\n+            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 51, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, -1, -1, -1, -1, -1, -1, -1, 5,\r\n+            5, 5, -1, -1, 5, -1, -1, -1, -1, -1,\r\n+            -1, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 52, 5, 5, -1,\r\n+            -1, -1, -1, -1, -1, -1, 5, 5, 5, -1,\r\n+            -1, 5, -1, -1, -1, -1, -1, -1, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 53, 5, 5, -1, -1, -1, -1,\r\n+            -1, -1, -1, 54, -1, 54, -1, -1, 54, -1,\r\n+            -1, -1, -1, -1, -1, 54, 54, -1, -1, -1,\r\n+            -1, 54, -1, -1, -1, 54, -1, -1, 54, 54,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            45, -1, -1, -1, -1, 28, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, 28, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, 46, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, 5, 5, 5, -1, -1, 5,\r\n+            -1, -1, -1, -1, -1, -1, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 55, 5,\r\n+            5, 5, 5, 5, -1, -1, -1, -1, -1, -1,\r\n+            -1, 5, 5, 5, -1, -1, 5, -1, -1, -1,\r\n+            -1, -1, -1, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 56, 5, 5, 5, 5, 5,\r\n+            5, -1, -1, -1, -1, -1, -1, -1, 5, 5,\r\n+            5, -1, -1, 5, -1, -1, -1, -1, -1, -1,\r\n+            5, 5, 5, 5, 5, 5, 57, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, -1, -1,\r\n+            -1, -1, -1, -1, -1, 5, 5, 5, -1, -1,\r\n+            57, -1, -1, -1, -1, -1, -1, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, -1, -1, -1, -1, -1,\r\n+            -1, -1, 5, 5, 5, -1, -1, 5, -1, -1,\r\n+            -1, -1, -1, -1, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            58, 5, -1, -1, -1, -1, -1, -1, -1, 5,\r\n+            5, 5, -1, -1, 5, -1, -1, -1, -1, -1,\r\n+            -1, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 56, 5, 5, -1,\r\n+            -1, -1, -1, -1, -1, -1, 59, -1, 59, -1,\r\n+            -1, 59, -1, -1, -1, -1, -1, -1, 59, 59,\r\n+            -1, -1, -1, -1, 59, -1, -1, -1, 59, -1,\r\n+            -1, 59, 59, -1, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, 5, 5, 5, -1, -1, 5, -1,\r\n+            -1, -1, -1, -1, -1, 5, 5, 5, 5, 5,\r\n+            5, 60, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, -1, -1, -1, -1, -1, -1, -1,\r\n+            5, 5, 5, -1, -1, 60, -1, -1, -1, -1,\r\n+            -1, -1, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            5, 5, 5, 5, 5, 5, 5, 5, 5, 5,\r\n+            -1, -1, -1, -1, -1, -1, -1, 61, -1, 61,\r\n+            -1, -1, 61, -1, -1, -1, -1, -1, -1, 61,\r\n+            61, -1, -1, -1, -1, 61, -1, -1, -1, 61,\r\n+            -1, -1, 61, 61, -1, -1, -1, -1, -1, -1,\r\n+            -1, -1, -1, -1, 62, -1, 62, -1, -1, 62,\r\n+            -1, -1, -1, -1, -1, -1, 62, 62, -1, -1,\r\n+            -1, -1, 62, -1, -1, -1, 62, -1, -1, 62,\r\n+            62, -1, -1, -1, -1, -1, -1, -1, -1, -1,\r\n+    };\r\n+    /* error codes */\r\n+    private static final int ZZ_UNKNOWN_ERROR = 0;\r\n+    private static final int ZZ_NO_MATCH = 1;\r\n+    private static final int ZZ_PUSHBACK_2BIG = 2;\r\n+    /* error messages for the codes above */\r\n+    private static final String[] ZZ_ERROR_MSG = {\r\n+            \"Unkown internal scanner error\",\r\n+            \"Error: could not match input\",\r\n+            \"Error: pushback value was too large\"\r\n+    };\r\n+    private static final String ZZ_ATTRIBUTE_PACKED_0 =\r\n+            \"\\3\\0\\1\\11\\3\\1\\2\\11\\7\\1\\6\\11\\1\\1\\1\\11\" +\r\n+                    \"\\1\\0\\1\\1\\3\\0\\6\\1\\10\\11\\1\\0\\1\\11\\2\\1\" +\r\n+                    \"\\1\\0\\6\\1\\1\\0\\4\\1\\1\\0\\1\\1\\1\\0\\1\\11\";\r\n+    /**\r\n+     * ZZ_ATTRIBUTE[aState] contains the attributes of state <code>aState</code>\r\n+     */\r\n+    private static final int[] ZZ_ATTRIBUTE = zzUnpackAttribute();\r\n+    /**\r\n+     * the input device\r\n+     */\r\n+    private java.io.Reader zzReader;\r\n+    /**\r\n+     * the current state of the DFA\r\n+     */\r\n+    private int zzState;\r\n+    /**\r\n+     * the current lexical state\r\n+     */\r\n+    private int zzLexicalState = YYINITIAL;\r\n+    /**\r\n+     * this buffer contains the current text to be matched and is\r\n+     * the source of the yytext() string\r\n+     */\r\n+    private char[] zzBuffer = new char[ZZ_BUFFERSIZE];\r\n+    /**\r\n+     * the textposition at the last accepting state\r\n+     */\r\n+    private int zzMarkedPos;\r\n+    /**\r\n+     * the current text position in the buffer\r\n+     */\r\n+    private int zzCurrentPos;\r\n+    /**\r\n+     * startRead marks the beginning of the yytext() string in the buffer\r\n+     */\r\n+    private int zzStartRead;\r\n+    /**\r\n+     * endRead marks the last character in the buffer, that has been read\r\n+     * from input\r\n+     */\r\n+    private int zzEndRead;\r\n+    /**\r\n+     * zzAtEOF == true <=> the scanner is at the EOF\r\n+     */\r\n+    private boolean zzAtEOF;\r\n+    /**\r\n+     * denotes if the user-EOF-code has already been executed\r\n+     */\r\n+    //private boolean zzEOFDone;\r\n+\r\n+  /* user code: */\r\n+    private StringBuffer sb;\r\n+\r\n+    /**\r\n+     * Creates a new scanner\r\n+     * There is also a java.io.InputStream version of this constructor.\r\n+     *\r\n+     * @param in the java.io.Reader to read input from.\r\n+     */\r\n+    Yylex(java.io.Reader in) {\r\n+        this.zzReader = in;\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new scanner.\r\n+     * There is also java.io.Reader version of this constructor.\r\n+     *\r\n+     * @param in the java.io.Inputstream to read input from.\r\n+     */\r\n+    Yylex(java.io.InputStream in) {\r\n+        this(new java.io.InputStreamReader(in));\r\n+    }\r\n+\r\n+    private static int[] zzUnpackAction() {\r\n+        int[] result = new int[63];\r\n+        int offset = 0;\r\n+        offset = zzUnpackAction(ZZ_ACTION_PACKED_0, offset, result);\r\n+        return result;\r\n+    }\r\n+\r\n+    private static int zzUnpackAction(String packed, int offset, int[] result) {\r\n+        int i = 0;       /* index in packed string  */\r\n+        int j = offset;  /* index in unpacked array */\r\n+        int l = packed.length();\r\n+        while (i < l) {\r\n+            int count = packed.charAt(i++);\r\n+            int value = packed.charAt(i++);\r\n+            do {\r\n+                result[j++] = value;\r\n+            } while (--count > 0);\r\n+        }\r\n+        return j;\r\n+    }\r\n+\r\n+    /** number of newlines encountered up to the start of the matched text */\r\n+    //private int yyline;\r\n+\r\n+    /** the number of characters up to the start of the matched text */\r\n+    //private int yychar;\r\n+\r\n+    /**\r\n+     * the number of characters from the last newline up to the start of the\r\n+     * matched text\r\n+     */\r\n+    //private int yycolumn;\r\n+\r\n+    /**\r\n+     * zzAtBOL == true <=> the scanner is currently at the beginning of a line\r\n+     */\r\n+    //private boolean zzAtBOL = true;\r\n+    private static int[] zzUnpackRowMap() {\r\n+        int[] result = new int[63];\r\n+        int offset = 0;\r\n+        offset = zzUnpackRowMap(ZZ_ROWMAP_PACKED_0, offset, result);\r\n+        return result;\r\n+    }\r\n+\r\n+    private static int zzUnpackRowMap(String packed, int offset, int[] result) {\r\n+        int i = 0;  /* index in packed string  */\r\n+        int j = offset;  /* index in unpacked array */\r\n+        int l = packed.length();\r\n+        while (i < l) {\r\n+            int high = packed.charAt(i++) << 16;\r\n+            result[j++] = high | packed.charAt(i++);\r\n+        }\r\n+        return j;\r\n+    }\r\n+\r\n+    private static int[] zzUnpackAttribute() {\r\n+        int[] result = new int[63];\r\n+        int offset = 0;\r\n+        offset = zzUnpackAttribute(ZZ_ATTRIBUTE_PACKED_0, offset, result);\r\n+        return result;\r\n+    }\r\n+\r\n+    private static int zzUnpackAttribute(String packed, int offset, int[] result) {\r\n+        int i = 0;       /* index in packed string  */\r\n+        int j = offset;  /* index in unpacked array */\r\n+        int l = packed.length();\r\n+        while (i < l) {\r\n+            int count = packed.charAt(i++);\r\n+            int value = packed.charAt(i++);\r\n+            do {\r\n+                result[j++] = value;\r\n+            } while (--count > 0);\r\n+        }\r\n+        return j;\r\n+    }\r\n+\r\n+    /**\r\n+     * Unpacks the compressed character translation table.\r\n+     *\r\n+     * @param packed the packed character translation table\r\n+     * @return the unpacked character translation table\r\n+     */\r\n+    private static char[] zzUnpackCMap(String packed) {\r\n+        char[] map = new char[0x10000];\r\n+        int i = 0;  /* index in packed string  */\r\n+        int j = 0;  /* index in unpacked array */\r\n+        while (i < 122) {\r\n+            int count = packed.charAt(i++);\r\n+            char value = packed.charAt(i++);\r\n+            do {\r\n+                map[j++] = value;\r\n+            } while (--count > 0);\r\n+        }\r\n+        return map;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Refills the input buffer.\r\n+     *\r\n+     * @return <code>false</code>, iff there was new input.\r\n+     * @throws java.io.IOException if any I/O-Error occurs\r\n+     */\r\n+    private boolean zzRefill() throws java.io.IOException {\r\n+\r\n+    /* first: make room (if you can) */\r\n+        if (zzStartRead > 0) {\r\n+            System.arraycopy(zzBuffer, zzStartRead,\r\n+                    zzBuffer, 0,\r\n+                    zzEndRead - zzStartRead);\r\n+\r\n+      /* translate stored positions */\r\n+            zzEndRead -= zzStartRead;\r\n+            zzCurrentPos -= zzStartRead;\r\n+            zzMarkedPos -= zzStartRead;\r\n+            zzStartRead = 0;\r\n+        }\r\n+\r\n+    /* is the buffer big enough? */\r\n+        if (zzCurrentPos >= zzBuffer.length) {\r\n+      /* if not: blow it up */\r\n+            char[] newBuffer = new char[zzCurrentPos * 2];\r\n+            System.arraycopy(zzBuffer, 0, newBuffer, 0, zzBuffer.length);\r\n+            zzBuffer = newBuffer;\r\n+        }\r\n+\r\n+    /* finally: fill the buffer with new input */\r\n+        int numRead = zzReader.read(zzBuffer, zzEndRead,\r\n+                zzBuffer.length - zzEndRead);\r\n+\r\n+        if (numRead > 0) {\r\n+            zzEndRead += numRead;\r\n+            return false;\r\n+        }\r\n+        // unlikely but not impossible: read 0 characters, but not at end of stream\r\n+        if (numRead == 0) {\r\n+            int c = zzReader.read();\r\n+            if (c == -1) {\r\n+                return true;\r\n+            } else {\r\n+                zzBuffer[zzEndRead++] = (char) c;\r\n+                return false;\r\n+            }\r\n+        }\r\n+\r\n+        // numRead < 0\r\n+        return true;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Closes the input stream.\r\n+     */\r\n+    public final void yyclose() throws java.io.IOException {\r\n+        zzAtEOF = true;            /* indicate end of file */\r\n+        zzEndRead = zzStartRead;  /* invalidate buffer    */\r\n+\r\n+        if (zzReader != null) {\r\n+            zzReader.close();\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Resets the scanner to read from a new input stream.\r\n+     * Does not close the old reader.\r\n+     * <p>\r\n+     * All internal variables are reset, the old input stream\r\n+     * <b>cannot</b> be reused (internal buffer is discarded and lost).\r\n+     * Lexical state is set to <tt>ZZ_INITIAL</tt>.\r\n+     *\r\n+     * @param reader the new input stream\r\n+     */\r\n+    public final void yyreset(java.io.Reader reader) {\r\n+        zzReader = reader;\r\n+        //zzAtBOL  = true;\r\n+        zzAtEOF = false;\r\n+        //zzEOFDone = false;\r\n+        zzEndRead = zzStartRead = 0;\r\n+        zzCurrentPos = zzMarkedPos = 0;\r\n+        //yyline = yychar = yycolumn = 0;\r\n+        zzLexicalState = YYINITIAL;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Returns the current lexical state.\r\n+     */\r\n+    public final int yystate() {\r\n+        return zzLexicalState;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Enters a new lexical state\r\n+     *\r\n+     * @param newState the new lexical state\r\n+     */\r\n+    public final void yybegin(int newState) {\r\n+        zzLexicalState = newState;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Returns the text matched by the current regular expression.\r\n+     */\r\n+    public final String yytext() {\r\n+        return new String(zzBuffer, zzStartRead, zzMarkedPos - zzStartRead);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Returns the character at position <tt>pos</tt> from the\r\n+     * matched text.\r\n+     * <p>\r\n+     * It is equivalent to yytext().charAt(pos), but faster\r\n+     *\r\n+     * @param pos the position of the character to fetch.\r\n+     *            A value from 0 to yylength()-1.\r\n+     * @return the character at position pos\r\n+     */\r\n+    public final char yycharat(int pos) {\r\n+        return zzBuffer[zzStartRead + pos];\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Returns the length of the matched text region.\r\n+     */\r\n+    public final int yylength() {\r\n+        return zzMarkedPos - zzStartRead;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Reports an error that occured while scanning.\r\n+     * <p>\r\n+     * In a wellformed scanner (no or only correct usage of\r\n+     * yypushback(int) and a match-all fallback rule) this method\r\n+     * will only be called with things that \"Can't Possibly Happen\".\r\n+     * If this method is called, something is seriously wrong\r\n+     * (e.g. a JFlex bug producing a faulty scanner etc.).\r\n+     * <p>\r\n+     * Usual syntax/scanner level error handling should be done\r\n+     * in error fallback rules.\r\n+     *\r\n+     * @param errorCode the code of the errormessage to display\r\n+     */\r\n+    private void zzScanError(int errorCode) {\r\n+        String message;\r\n+        try {\r\n+            message = ZZ_ERROR_MSG[errorCode];\r\n+        } catch (ArrayIndexOutOfBoundsException e) {\r\n+            message = ZZ_ERROR_MSG[ZZ_UNKNOWN_ERROR];\r\n+        }\r\n+\r\n+        throw new Error(message);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Pushes the specified amount of characters back into the input stream.\r\n+     * <p>\r\n+     * They will be read again by then next call of the scanning method\r\n+     *\r\n+     * @param number the number of characters to be read again.\r\n+     *               This number must not be greater than yylength()!\r\n+     */\r\n+    public void yypushback(int number) {\r\n+        if (number > yylength()) {\r\n+            zzScanError(ZZ_PUSHBACK_2BIG);\r\n+        }\r\n+\r\n+        zzMarkedPos -= number;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Resumes scanning until the next regular expression is matched,\r\n+     * the end of input is encountered or an I/O-Error occurs.\r\n+     *\r\n+     * @return the next token\r\n+     * @throws java.io.IOException if any I/O-Error occurs\r\n+     */\r\n+    public JSONToken yylex() throws java.io.IOException, ParseException {\r\n+        int zzInput;\r\n+        int zzAction;\r\n+\r\n+        // cached fields:\r\n+        int zzCurrentPosL;\r\n+        int zzMarkedPosL;\r\n+        int zzEndReadL = zzEndRead;\r\n+        char[] zzBufferL = zzBuffer;\r\n+        char[] zzCMapL = ZZ_CMAP;\r\n+\r\n+        int[] zzTransL = ZZ_TRANS;\r\n+        int[] zzRowMapL = ZZ_ROWMAP;\r\n+        int[] zzAttrL = ZZ_ATTRIBUTE;\r\n+\r\n+        while (true) {\r\n+            zzMarkedPosL = zzMarkedPos;\r\n+\r\n+            zzAction = -1;\r\n+\r\n+            zzCurrentPosL = zzCurrentPos = zzStartRead = zzMarkedPosL;\r\n+\r\n+            zzState = ZZ_LEXSTATE[zzLexicalState];\r\n+\r\n+\r\n+            zzForAction:\r\n+            {\r\n+                while (true) {\r\n+\r\n+                    if (zzCurrentPosL < zzEndReadL) {\r\n+                        zzInput = zzBufferL[zzCurrentPosL++];\r\n+                    } else if (zzAtEOF) {\r\n+                        zzInput = YYEOF;\r\n+                        break zzForAction;\r\n+                    } else {\r\n+                        // store back cached positions\r\n+                        zzCurrentPos = zzCurrentPosL;\r\n+                        zzMarkedPos = zzMarkedPosL;\r\n+                        boolean eof = zzRefill();\r\n+                        // get translated positions and possibly new buffer\r\n+                        zzCurrentPosL = zzCurrentPos;\r\n+                        zzMarkedPosL = zzMarkedPos;\r\n+                        zzBufferL = zzBuffer;\r\n+                        zzEndReadL = zzEndRead;\r\n+                        if (eof) {\r\n+                            zzInput = YYEOF;\r\n+                            break zzForAction;\r\n+                        } else {\r\n+                            zzInput = zzBufferL[zzCurrentPosL++];\r\n+                        }\r\n+                    }\r\n+                    int zzNext = zzTransL[zzRowMapL[zzState] + zzCMapL[zzInput]];\r\n+                    if (zzNext == -1) {\r\n+                        break zzForAction;\r\n+                    }\r\n+                    zzState = zzNext;\r\n+\r\n+                    int zzAttributes = zzAttrL[zzState];\r\n+                    if ((zzAttributes & 1) == 1) {\r\n+                        zzAction = zzState;\r\n+                        zzMarkedPosL = zzCurrentPosL;\r\n+                        if ((zzAttributes & 8) == 8) {\r\n+                            break zzForAction;\r\n+                        }\r\n+                    }\r\n+\r\n+                }\r\n+            }\r\n+\r\n+            // store back cached position\r\n+            zzMarkedPos = zzMarkedPosL;\r\n+\r\n+            switch (zzAction < 0 ? zzAction : ZZ_ACTION[zzAction]) {\r\n+                case 25: {\r\n+                    return new JSONToken(JSONToken.NULL, null);\r\n+                }\r\n+                case 29:\r\n+                    break;\r\n+                case 13: {\r\n+                    sb.append(yytext());\r\n+                }\r\n+                case 30:\r\n+                    break;\r\n+                case 18: {\r\n+                    sb.append('\\b');\r\n+                }\r\n+                case 31:\r\n+                    break;\r\n+                case 9: {\r\n+                    return new JSONToken(JSONToken.LSQUARE);\r\n+                }\r\n+                case 32:\r\n+                    break;\r\n+                case 2: {\r\n+                    Long val = Long.valueOf(yytext());\r\n+                    return new JSONToken(JSONToken.INT, val);\r\n+                }\r\n+                case 33:\r\n+                    break;\r\n+                case 16: {\r\n+                    sb.append('\\\\');\r\n+                }\r\n+                case 34:\r\n+                    break;\r\n+                case 8: {\r\n+                    return new JSONToken(JSONToken.RBRACE);\r\n+                }\r\n+                case 35:\r\n+                    break;\r\n+                case 26: {\r\n+                    return new JSONToken(JSONToken.BOOL, Boolean.TRUE);\r\n+                }\r\n+                case 36:\r\n+                    break;\r\n+                case 23: {\r\n+                    sb.append('\\'');\r\n+                }\r\n+                case 37:\r\n+                    break;\r\n+                case 5: {\r\n+                    sb = new StringBuffer();\r\n+                    yybegin(STR2);\r\n+                }\r\n+                case 38:\r\n+                    break;\r\n+                case 27: {\r\n+                    return new JSONToken(JSONToken.BOOL, Boolean.FALSE);\r\n+                }\r\n+                case 39:\r\n+                    break;\r\n+                case 12: {\r\n+                    return new JSONToken(JSONToken.COLON);\r\n+                }\r\n+                case 40:\r\n+                    break;\r\n+                case 21: {\r\n+                    sb.append('\\r');\r\n+                }\r\n+                case 41:\r\n+                    break;\r\n+                case 3: {\r\n+                    return new JSONToken(JSONToken.IDENT, yytext());\r\n+                }\r\n+                case 42:\r\n+                    break;\r\n+                case 28: {\r\n+                    try {\r\n+                        sb.append((char) Integer.parseInt(yytext().substring(2), 16));\r\n+                    } catch (Exception e) {\r\n+                        throw new ParseException(e.getMessage());\r\n+                    }\r\n+                }\r\n+                case 43:\r\n+                    break;\r\n+                case 10: {\r\n+                    return new JSONToken(JSONToken.RSQUARE);\r\n+                }\r\n+                case 44:\r\n+                    break;\r\n+                case 17: {\r\n+                    sb.append('/');\r\n+                }\r\n+                case 45:\r\n+                    break;\r\n+                case 11: {\r\n+                    return new JSONToken(JSONToken.COMMA);\r\n+                }\r\n+                case 46:\r\n+                    break;\r\n+                case 15: {\r\n+                    sb.append('\"');\r\n+                }\r\n+                case 47:\r\n+                    break;\r\n+                case 24: {\r\n+                    Double val = Double.valueOf(yytext());\r\n+                    return new JSONToken(JSONToken.FLOAT, val);\r\n+                }\r\n+                case 48:\r\n+                    break;\r\n+                case 1: {\r\n+                    throw new ParseException(\"Unexpected char [\" + yytext() + \"]\");\r\n+                }\r\n+                case 49:\r\n+                    break;\r\n+                case 19: {\r\n+                    sb.append('\\f');\r\n+                }\r\n+                case 50:\r\n+                    break;\r\n+                case 7: {\r\n+                    return new JSONToken(JSONToken.LBRACE);\r\n+                }\r\n+                case 51:\r\n+                    break;\r\n+                case 14: {\r\n+                    yybegin(YYINITIAL);\r\n+                    return new JSONToken(JSONToken.STRING, sb.toString());\r\n+                }\r\n+                case 52:\r\n+                    break;\r\n+                case 22: {\r\n+                    sb.append('\\t');\r\n+                }\r\n+                case 53:\r\n+                    break;\r\n+                case 4: {\r\n+                    sb = new StringBuffer();\r\n+                    yybegin(STR1);\r\n+                }\r\n+                case 54:\r\n+                    break;\r\n+                case 20: {\r\n+                    sb.append('\\n');\r\n+                }\r\n+                case 55:\r\n+                    break;\r\n+                case 6: {\r\n+                }\r\n+                case 56:\r\n+                    break;\r\n+                default:\r\n+                    if (zzInput == YYEOF && zzStartRead == zzCurrentPos) {\r\n+                        zzAtEOF = true;\r\n+                        return null;\r\n+                    } else {\r\n+                        zzScanError(ZZ_NO_MATCH);\r\n+                        break;\r\n+                    }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/lang/Prioritized.java", "source2": "org/apache/dubbo/common/lang/Prioritized.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,76 +1,76 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.lang;\n-\n-import java.util.Comparator;\n-\n-import static java.lang.Integer.compare;\n-\n-/**\n- * {@code Prioritized} interface can be implemented by objects that\n- * should be sorted, for example the tasks in executable queue.\n- *\n- * @since 2.7.5\n- */\n-public interface Prioritized extends Comparable<Prioritized> {\n-\n-    /**\n-     * The {@link Comparator} of {@link Prioritized}\n-     */\n-    Comparator<Object> COMPARATOR = (one, two) -> {\n-        boolean b1 = one instanceof Prioritized;\n-        boolean b2 = two instanceof Prioritized;\n-        if (b1 && !b2) {        // one is Prioritized, two is not\n-            return -1;\n-        } else if (b2 && !b1) { // two is Prioritized, one is not\n-            return 1;\n-        } else if (b1 && b2) {  //  one and two both are Prioritized\n-            return ((Prioritized) one).compareTo((Prioritized) two);\n-        } else {                // no different\n-            return 0;\n-        }\n-    };\n-\n-    /**\n-     * The maximum priority\n-     */\n-    int MAX_PRIORITY = Integer.MIN_VALUE;\n-\n-    /**\n-     * The minimum priority\n-     */\n-    int MIN_PRIORITY = Integer.MAX_VALUE;\n-\n-    /**\n-     * Normal Priority\n-     */\n-    int NORMAL_PRIORITY = 0;\n-\n-    /**\n-     * Get the priority\n-     *\n-     * @return the default is {@link #NORMAL_PRIORITY}\n-     */\n-    default int getPriority() {\n-        return NORMAL_PRIORITY;\n-    }\n-\n-    @Override\n-    default int compareTo(Prioritized that) {\n-        return compare(this.getPriority(), that.getPriority());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.lang;\r\n+\r\n+import java.util.Comparator;\r\n+\r\n+import static java.lang.Integer.compare;\r\n+\r\n+/**\r\n+ * {@code Prioritized} interface can be implemented by objects that\r\n+ * should be sorted, for example the tasks in executable queue.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Prioritized extends Comparable<Prioritized> {\r\n+\r\n+    /**\r\n+     * The {@link Comparator} of {@link Prioritized}\r\n+     */\r\n+    Comparator<Object> COMPARATOR = (one, two) -> {\r\n+        boolean b1 = one instanceof Prioritized;\r\n+        boolean b2 = two instanceof Prioritized;\r\n+        if (b1 && !b2) {        // one is Prioritized, two is not\r\n+            return -1;\r\n+        } else if (b2 && !b1) { // two is Prioritized, one is not\r\n+            return 1;\r\n+        } else if (b1 && b2) {  //  one and two both are Prioritized\r\n+            return ((Prioritized) one).compareTo((Prioritized) two);\r\n+        } else {                // no different\r\n+            return 0;\r\n+        }\r\n+    };\r\n+\r\n+    /**\r\n+     * The maximum priority\r\n+     */\r\n+    int MAX_PRIORITY = Integer.MIN_VALUE;\r\n+\r\n+    /**\r\n+     * The minimum priority\r\n+     */\r\n+    int MIN_PRIORITY = Integer.MAX_VALUE;\r\n+\r\n+    /**\r\n+     * Normal Priority\r\n+     */\r\n+    int NORMAL_PRIORITY = 0;\r\n+\r\n+    /**\r\n+     * Get the priority\r\n+     *\r\n+     * @return the default is {@link #NORMAL_PRIORITY}\r\n+     */\r\n+    default int getPriority() {\r\n+        return NORMAL_PRIORITY;\r\n+    }\r\n+\r\n+    @Override\r\n+    default int compareTo(Prioritized that) {\r\n+        return compare(this.getPriority(), that.getPriority());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/lang/ShutdownHookCallback.java", "source2": "org/apache/dubbo/common/lang/ShutdownHookCallback.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.lang;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Dubbo ShutdownHook callback interface\n- *\n- * @since 2.7.5\n- */\n-@SPI\n-public interface ShutdownHookCallback extends Prioritized {\n-\n-    /**\n-     * Callback execution\n-     *\n-     * @throws Throwable if met with some errors\n-     */\n-    void callback() throws Throwable;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.lang;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Dubbo ShutdownHook callback interface\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI\r\n+public interface ShutdownHookCallback extends Prioritized {\r\n+\r\n+    /**\r\n+     * Callback execution\r\n+     *\r\n+     * @throws Throwable if met with some errors\r\n+     */\r\n+    void callback() throws Throwable;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/lang/ShutdownHookCallbacks.java", "source2": "org/apache/dubbo/common/lang/ShutdownHookCallbacks.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.lang;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-\n-import java.util.Collection;\n-import java.util.LinkedList;\n-import java.util.List;\n-\n-import static java.util.Collections.sort;\n-import static org.apache.dubbo.common.function.ThrowableAction.execute;\n-\n-/**\n- * The compose {@link ShutdownHookCallback} class to manipulate one and more {@link ShutdownHookCallback} instances\n- *\n- * @since 2.7.5\n- */\n-public class ShutdownHookCallbacks {\n-\n-    public static final ShutdownHookCallbacks INSTANCE = new ShutdownHookCallbacks();\n-\n-    private final List<ShutdownHookCallback> callbacks = new LinkedList<>();\n-\n-    ShutdownHookCallbacks() {\n-        loadCallbacks();\n-    }\n-\n-    public ShutdownHookCallbacks addCallback(ShutdownHookCallback callback) {\n-        synchronized (this) {\n-            this.callbacks.add(callback);\n-        }\n-        return this;\n-    }\n-\n-    public Collection<ShutdownHookCallback> getCallbacks() {\n-        synchronized (this) {\n-            sort(this.callbacks);\n-            return this.callbacks;\n-        }\n-    }\n-\n-    public void clear() {\n-        synchronized (this) {\n-            callbacks.clear();\n-        }\n-    }\n-\n-    private void loadCallbacks() {\n-        ExtensionLoader<ShutdownHookCallback> loader =\n-                ExtensionLoader.getExtensionLoader(ShutdownHookCallback.class);\n-        loader.getSupportedExtensionInstances().forEach(this::addCallback);\n-    }\n-\n-    public void callback() {\n-        getCallbacks().forEach(callback -> execute(callback::callback));\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.lang;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+\r\n+import static java.util.Collections.sort;\r\n+import static org.apache.dubbo.common.function.ThrowableAction.execute;\r\n+\r\n+/**\r\n+ * The compose {@link ShutdownHookCallback} class to manipulate one and more {@link ShutdownHookCallback} instances\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ShutdownHookCallbacks {\r\n+\r\n+    public static final ShutdownHookCallbacks INSTANCE = new ShutdownHookCallbacks();\r\n+\r\n+    private final List<ShutdownHookCallback> callbacks = new LinkedList<>();\r\n+\r\n+    ShutdownHookCallbacks() {\r\n+        loadCallbacks();\r\n+    }\r\n+\r\n+    public ShutdownHookCallbacks addCallback(ShutdownHookCallback callback) {\r\n+        synchronized (this) {\r\n+            this.callbacks.add(callback);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    public Collection<ShutdownHookCallback> getCallbacks() {\r\n+        synchronized (this) {\r\n+            sort(this.callbacks);\r\n+            return this.callbacks;\r\n+        }\r\n+    }\r\n+\r\n+    public void clear() {\r\n+        synchronized (this) {\r\n+            callbacks.clear();\r\n+        }\r\n+    }\r\n+\r\n+    private void loadCallbacks() {\r\n+        ExtensionLoader<ShutdownHookCallback> loader =\r\n+                ExtensionLoader.getExtensionLoader(ShutdownHookCallback.class);\r\n+        loader.getSupportedExtensionInstances().forEach(this::addCallback);\r\n+    }\r\n+\r\n+    public void callback() {\r\n+        getCallbacks().forEach(callback -> execute(callback::callback));\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/logger/Logger.java", "source2": "org/apache/dubbo/common/logger/Logger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,171 +1,171 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.logger;\n-\n-/**\n- * Logger interface\n- * <p>\n- * This interface is referred from commons-logging\n- */\n-public interface Logger {\n-\n-    /**\n-     * Logs a message with trace log level.\n-     *\n-     * @param msg log this message\n-     */\n-    void trace(String msg);\n-\n-    /**\n-     * Logs an error with trace log level.\n-     *\n-     * @param e log this cause\n-     */\n-    void trace(Throwable e);\n-\n-    /**\n-     * Logs an error with trace log level.\n-     *\n-     * @param msg log this message\n-     * @param e   log this cause\n-     */\n-    void trace(String msg, Throwable e);\n-\n-    /**\n-     * Logs a message with debug log level.\n-     *\n-     * @param msg log this message\n-     */\n-    void debug(String msg);\n-\n-    /**\n-     * Logs an error with debug log level.\n-     *\n-     * @param e log this cause\n-     */\n-    void debug(Throwable e);\n-\n-    /**\n-     * Logs an error with debug log level.\n-     *\n-     * @param msg log this message\n-     * @param e   log this cause\n-     */\n-    void debug(String msg, Throwable e);\n-\n-    /**\n-     * Logs a message with info log level.\n-     *\n-     * @param msg log this message\n-     */\n-    void info(String msg);\n-\n-    /**\n-     * Logs an error with info log level.\n-     *\n-     * @param e log this cause\n-     */\n-    void info(Throwable e);\n-\n-    /**\n-     * Logs an error with info log level.\n-     *\n-     * @param msg log this message\n-     * @param e   log this cause\n-     */\n-    void info(String msg, Throwable e);\n-\n-    /**\n-     * Logs a message with warn log level.\n-     *\n-     * @param msg log this message\n-     */\n-    void warn(String msg);\n-\n-    /**\n-     * Logs a message with warn log level.\n-     *\n-     * @param e log this message\n-     */\n-    void warn(Throwable e);\n-\n-    /**\n-     * Logs a message with warn log level.\n-     *\n-     * @param msg log this message\n-     * @param e   log this cause\n-     */\n-    void warn(String msg, Throwable e);\n-\n-    /**\n-     * Logs a message with error log level.\n-     *\n-     * @param msg log this message\n-     */\n-    void error(String msg);\n-\n-    /**\n-     * Logs an error with error log level.\n-     *\n-     * @param e log this cause\n-     */\n-    void error(Throwable e);\n-\n-    /**\n-     * Logs an error with error log level.\n-     *\n-     * @param msg log this message\n-     * @param e   log this cause\n-     */\n-    void error(String msg, Throwable e);\n-\n-    /**\n-     * Is trace logging currently enabled?\n-     *\n-     * @return true if trace is enabled\n-     */\n-    boolean isTraceEnabled();\n-\n-    /**\n-     * Is debug logging currently enabled?\n-     *\u00a0\n-     * @return true if debug is enabled\n-     */\n-    boolean isDebugEnabled();\n-\n-    /**\n-     * Is info logging currently enabled?\n-     *\n-     * @return true if info is enabled\n-     */\n-    boolean isInfoEnabled();\n-\n-    /**\n-     * Is warn logging currently enabled?\n-     *\n-     * @return true if warn is enabled\n-     */\n-    boolean isWarnEnabled();\n-\n-    /**\n-     * Is error logging currently enabled?\n-     *\n-     * @return true if error is enabled\n-     */\n-    boolean isErrorEnabled();\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.logger;\r\n+\r\n+/**\r\n+ * Logger interface\r\n+ * <p>\r\n+ * This interface is referred from commons-logging\r\n+ */\r\n+public interface Logger {\r\n+\r\n+    /**\r\n+     * Logs a message with trace log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     */\r\n+    void trace(String msg);\r\n+\r\n+    /**\r\n+     * Logs an error with trace log level.\r\n+     *\r\n+     * @param e log this cause\r\n+     */\r\n+    void trace(Throwable e);\r\n+\r\n+    /**\r\n+     * Logs an error with trace log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     * @param e   log this cause\r\n+     */\r\n+    void trace(String msg, Throwable e);\r\n+\r\n+    /**\r\n+     * Logs a message with debug log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     */\r\n+    void debug(String msg);\r\n+\r\n+    /**\r\n+     * Logs an error with debug log level.\r\n+     *\r\n+     * @param e log this cause\r\n+     */\r\n+    void debug(Throwable e);\r\n+\r\n+    /**\r\n+     * Logs an error with debug log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     * @param e   log this cause\r\n+     */\r\n+    void debug(String msg, Throwable e);\r\n+\r\n+    /**\r\n+     * Logs a message with info log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     */\r\n+    void info(String msg);\r\n+\r\n+    /**\r\n+     * Logs an error with info log level.\r\n+     *\r\n+     * @param e log this cause\r\n+     */\r\n+    void info(Throwable e);\r\n+\r\n+    /**\r\n+     * Logs an error with info log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     * @param e   log this cause\r\n+     */\r\n+    void info(String msg, Throwable e);\r\n+\r\n+    /**\r\n+     * Logs a message with warn log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     */\r\n+    void warn(String msg);\r\n+\r\n+    /**\r\n+     * Logs a message with warn log level.\r\n+     *\r\n+     * @param e log this message\r\n+     */\r\n+    void warn(Throwable e);\r\n+\r\n+    /**\r\n+     * Logs a message with warn log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     * @param e   log this cause\r\n+     */\r\n+    void warn(String msg, Throwable e);\r\n+\r\n+    /**\r\n+     * Logs a message with error log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     */\r\n+    void error(String msg);\r\n+\r\n+    /**\r\n+     * Logs an error with error log level.\r\n+     *\r\n+     * @param e log this cause\r\n+     */\r\n+    void error(Throwable e);\r\n+\r\n+    /**\r\n+     * Logs an error with error log level.\r\n+     *\r\n+     * @param msg log this message\r\n+     * @param e   log this cause\r\n+     */\r\n+    void error(String msg, Throwable e);\r\n+\r\n+    /**\r\n+     * Is trace logging currently enabled?\r\n+     *\r\n+     * @return true if trace is enabled\r\n+     */\r\n+    boolean isTraceEnabled();\r\n+\r\n+    /**\r\n+     * Is debug logging currently enabled?\r\n+     *\u00a0\r\n+     * @return true if debug is enabled\r\n+     */\r\n+    boolean isDebugEnabled();\r\n+\r\n+    /**\r\n+     * Is info logging currently enabled?\r\n+     *\r\n+     * @return true if info is enabled\r\n+     */\r\n+    boolean isInfoEnabled();\r\n+\r\n+    /**\r\n+     * Is warn logging currently enabled?\r\n+     *\r\n+     * @return true if warn is enabled\r\n+     */\r\n+    boolean isWarnEnabled();\r\n+\r\n+    /**\r\n+     * Is error logging currently enabled?\r\n+     *\r\n+     * @return true if error is enabled\r\n+     */\r\n+    boolean isErrorEnabled();\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/Constants.java", "source2": "org/apache/dubbo/common/serialize/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize;\n-\n-public interface Constants {\n-    byte HESSIAN2_SERIALIZATION_ID = 2;\n-    byte JAVA_SERIALIZATION_ID = 3;\n-    byte COMPACTED_JAVA_SERIALIZATION_ID = 4;\n-    byte FASTJSON_SERIALIZATION_ID = 6;\n-    byte NATIVE_JAVA_SERIALIZATION_ID = 7;\n-    byte KRYO_SERIALIZATION_ID = 8;\n-    byte FST_SERIALIZATION_ID = 9;\n-    byte NATIVE_HESSIAN_SERIALIZATION_ID = 10;\n-    byte PROTOSTUFF_SERIALIZATION_ID = 12;\n-    byte AVRO_SERIALIZATION_ID = 11;\n-    byte GSON_SERIALIZATION_ID = 16;\n-    byte PROTOBUF_JSON_SERIALIZATION_ID = 21;\n-\n-    byte PROTOBUF_SERIALIZATION_ID = 22;\n-    byte KRYO_SERIALIZATION2_ID = 25;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize;\r\n+\r\n+public interface Constants {\r\n+    byte HESSIAN2_SERIALIZATION_ID = 2;\r\n+    byte JAVA_SERIALIZATION_ID = 3;\r\n+    byte COMPACTED_JAVA_SERIALIZATION_ID = 4;\r\n+    byte FASTJSON_SERIALIZATION_ID = 6;\r\n+    byte NATIVE_JAVA_SERIALIZATION_ID = 7;\r\n+    byte KRYO_SERIALIZATION_ID = 8;\r\n+    byte FST_SERIALIZATION_ID = 9;\r\n+    byte NATIVE_HESSIAN_SERIALIZATION_ID = 10;\r\n+    byte PROTOSTUFF_SERIALIZATION_ID = 12;\r\n+    byte AVRO_SERIALIZATION_ID = 11;\r\n+    byte GSON_SERIALIZATION_ID = 16;\r\n+    byte PROTOBUF_JSON_SERIALIZATION_ID = 21;\r\n+\r\n+    byte PROTOBUF_SERIALIZATION_ID = 22;\r\n+    byte KRYO_SERIALIZATION2_ID = 25;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/ObjectInput.java", "source2": "org/apache/dubbo/common/serialize/ObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,89 +1,89 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Type;\n-import java.util.Map;\n-\n-/**\n- * Object input interface.\n- */\n-public interface ObjectInput extends DataInput {\n-\n-    /**\n-     * Consider use {@link #readObject(Class)} or {@link #readObject(Class, Type)} where possible\n-     *\n-     * @return object\n-     * @throws IOException if an I/O error occurs\n-     * @throws ClassNotFoundException if an ClassNotFoundException occurs\n-     */\n-    @Deprecated\n-    Object readObject() throws IOException, ClassNotFoundException;\n-\n-    /**\n-     * read object\n-     *\n-     * @param cls object class\n-     * @return object\n-     * @throws IOException if an I/O error occurs\n-     * @throws ClassNotFoundException if an ClassNotFoundException occurs\n-     */\n-    <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException;\n-\n-    /**\n-     * read object\n-     *\n-     * @param cls object class\n-     * @param type object type\n-     * @return object\n-     * @throws IOException if an I/O error occurs\n-     * @throws ClassNotFoundException if an ClassNotFoundException occurs\n-     */\n-    <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException;\n-\n-\n-    /**\n-     * The following methods are customized for the requirement of Dubbo's RPC protocol implementation. Legacy protocol\n-     * implementation will try to write Map, Throwable and Null value directly to the stream, which does not meet the\n-     * restrictions of all serialization protocols.\n-     *\n-     * <p>\n-     * See how ProtobufSerialization, KryoSerialization implemented these methods for more details.\n-     * <p>\n-     * <p>\n-     * The binding of RPC protocol and biz serialization protocol is not a good practice. Encoding of RPC protocol\n-     * should be highly independent and portable, easy to cross platforms and languages, for example, like the http headers,\n-     * restricting the content of headers / attachments to Ascii strings and uses ISO_8859_1 to encode them.\n-     * https://tools.ietf.org/html/rfc7540#section-8.1.2\n-     */\n-    default Throwable readThrowable() throws IOException, ClassNotFoundException {\n-        Object obj = readObject();\n-        if (!(obj instanceof Throwable)) {\n-            throw new IOException(\"Response data error, expect Throwable, but get \" + obj);\n-        }\n-        return (Throwable) obj;\n-    }\n-\n-    default Object readEvent() throws IOException, ClassNotFoundException {\n-        return readObject();\n-    }\n-\n-    default Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\n-        return readObject(Map.class);\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Type;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Object input interface.\r\n+ */\r\n+public interface ObjectInput extends DataInput {\r\n+\r\n+    /**\r\n+     * Consider use {@link #readObject(Class)} or {@link #readObject(Class, Type)} where possible\r\n+     *\r\n+     * @return object\r\n+     * @throws IOException if an I/O error occurs\r\n+     * @throws ClassNotFoundException if an ClassNotFoundException occurs\r\n+     */\r\n+    @Deprecated\r\n+    Object readObject() throws IOException, ClassNotFoundException;\r\n+\r\n+    /**\r\n+     * read object\r\n+     *\r\n+     * @param cls object class\r\n+     * @return object\r\n+     * @throws IOException if an I/O error occurs\r\n+     * @throws ClassNotFoundException if an ClassNotFoundException occurs\r\n+     */\r\n+    <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException;\r\n+\r\n+    /**\r\n+     * read object\r\n+     *\r\n+     * @param cls object class\r\n+     * @param type object type\r\n+     * @return object\r\n+     * @throws IOException if an I/O error occurs\r\n+     * @throws ClassNotFoundException if an ClassNotFoundException occurs\r\n+     */\r\n+    <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException;\r\n+\r\n+\r\n+    /**\r\n+     * The following methods are customized for the requirement of Dubbo's RPC protocol implementation. Legacy protocol\r\n+     * implementation will try to write Map, Throwable and Null value directly to the stream, which does not meet the\r\n+     * restrictions of all serialization protocols.\r\n+     *\r\n+     * <p>\r\n+     * See how ProtobufSerialization, KryoSerialization implemented these methods for more details.\r\n+     * <p>\r\n+     * <p>\r\n+     * The binding of RPC protocol and biz serialization protocol is not a good practice. Encoding of RPC protocol\r\n+     * should be highly independent and portable, easy to cross platforms and languages, for example, like the http headers,\r\n+     * restricting the content of headers / attachments to Ascii strings and uses ISO_8859_1 to encode them.\r\n+     * https://tools.ietf.org/html/rfc7540#section-8.1.2\r\n+     */\r\n+    default Throwable readThrowable() throws IOException, ClassNotFoundException {\r\n+        Object obj = readObject();\r\n+        if (!(obj instanceof Throwable)) {\r\n+            throw new IOException(\"Response data error, expect Throwable, but get \" + obj);\r\n+        }\r\n+        return (Throwable) obj;\r\n+    }\r\n+\r\n+    default Object readEvent() throws IOException, ClassNotFoundException {\r\n+        return readObject();\r\n+    }\r\n+\r\n+    default Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\r\n+        return readObject(Map.class);\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/ObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/ObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize;\n-\n-import java.io.IOException;\n-import java.util.Map;\n-\n-/**\n- * Object output interface.\n- */\n-public interface ObjectOutput extends DataOutput {\n-\n-    /**\n-     * write object.\n-     *\n-     * @param obj object.\n-     */\n-    void writeObject(Object obj) throws IOException;\n-\n-    /**\n-     * The following methods are customized for the requirement of Dubbo's RPC protocol implementation. Legacy protocol\n-     * implementation will try to write Map, Throwable and Null value directly to the stream, which does not meet the\n-     * restrictions of all serialization protocols.\n-     *\n-     * <p>\n-     * See how ProtobufSerialization, KryoSerialization implemented these methods for more details.\n-     * <p>\n-     *\n-     * The binding of RPC protocol and biz serialization protocol is not a good practice. Encoding of RPC protocol\n-     * should be highly independent and portable, easy to cross platforms and languages, for example, like the http headers,\n-     * restricting the content of headers / attachments to Ascii strings and uses ISO_8859_1 to encode them.\n-     * https://tools.ietf.org/html/rfc7540#section-8.1.2\n-     */\n-    default void writeThrowable(Object obj) throws IOException {\n-        writeObject(obj);\n-    }\n-\n-    default void writeEvent(Object data) throws IOException {\n-        writeObject(data);\n-    }\n-\n-    default void writeAttachments(Map<String, Object> attachments) throws IOException {\n-        writeObject(attachments);\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Object output interface.\r\n+ */\r\n+public interface ObjectOutput extends DataOutput {\r\n+\r\n+    /**\r\n+     * write object.\r\n+     *\r\n+     * @param obj object.\r\n+     */\r\n+    void writeObject(Object obj) throws IOException;\r\n+\r\n+    /**\r\n+     * The following methods are customized for the requirement of Dubbo's RPC protocol implementation. Legacy protocol\r\n+     * implementation will try to write Map, Throwable and Null value directly to the stream, which does not meet the\r\n+     * restrictions of all serialization protocols.\r\n+     *\r\n+     * <p>\r\n+     * See how ProtobufSerialization, KryoSerialization implemented these methods for more details.\r\n+     * <p>\r\n+     *\r\n+     * The binding of RPC protocol and biz serialization protocol is not a good practice. Encoding of RPC protocol\r\n+     * should be highly independent and portable, easy to cross platforms and languages, for example, like the http headers,\r\n+     * restricting the content of headers / attachments to Ascii strings and uses ISO_8859_1 to encode them.\r\n+     * https://tools.ietf.org/html/rfc7540#section-8.1.2\r\n+     */\r\n+    default void writeThrowable(Object obj) throws IOException {\r\n+        writeObject(obj);\r\n+    }\r\n+\r\n+    default void writeEvent(Object data) throws IOException {\r\n+        writeObject(data);\r\n+    }\r\n+\r\n+    default void writeAttachments(Map<String, Object> attachments) throws IOException {\r\n+        writeObject(attachments);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/Serialization.java", "source2": "org/apache/dubbo/common/serialize/Serialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,76 +1,76 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * Serialization strategy interface that specifies a serializer. (SPI, Singleton, ThreadSafe)\n- *\n- * The default extension is hessian2 and the default serialization implementation of the dubbo protocol.\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"xxx\" /&gt;\n- * </pre>\n- */\n-@SPI(\"hessian2\")\n-public interface Serialization {\n-\n-    /**\n-     * Get content type unique id, recommended that custom implementations use values different with\n-     * any value of {@link Constants} and don't greater than ExchangeCodec.SERIALIZATION_MASK (31) \n-     * because dubbo protocol use 5 bits to record serialization ID in header.\n-     *\n-     * @return content type id\n-     */\n-    byte getContentTypeId();\n-\n-    /**\n-     * Get content type\n-     *\n-     * @return content type\n-     */\n-    String getContentType();\n-\n-    /**\n-     * Get a serialization implementation instance\n-     *\n-     * @param url URL address for the remote service\n-     * @param output the underlying output stream\n-     * @return serializer\n-     * @throws IOException\n-     */\n-    @Adaptive\n-    ObjectOutput serialize(URL url, OutputStream output) throws IOException;\n-\n-    /**\n-     * Get a deserialization implementation instance\n-     *\n-     * @param url URL address for the remote service\n-     * @param input the underlying input stream\n-     * @return deserializer\n-     * @throws IOException\n-     */\n-    @Adaptive\n-    ObjectInput deserialize(URL url, InputStream input) throws IOException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Serialization strategy interface that specifies a serializer. (SPI, Singleton, ThreadSafe)\r\n+ *\r\n+ * The default extension is hessian2 and the default serialization implementation of the dubbo protocol.\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"xxx\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+@SPI(\"hessian2\")\r\n+public interface Serialization {\r\n+\r\n+    /**\r\n+     * Get content type unique id, recommended that custom implementations use values different with\r\n+     * any value of {@link Constants} and don't greater than ExchangeCodec.SERIALIZATION_MASK (31) \r\n+     * because dubbo protocol use 5 bits to record serialization ID in header.\r\n+     *\r\n+     * @return content type id\r\n+     */\r\n+    byte getContentTypeId();\r\n+\r\n+    /**\r\n+     * Get content type\r\n+     *\r\n+     * @return content type\r\n+     */\r\n+    String getContentType();\r\n+\r\n+    /**\r\n+     * Get a serialization implementation instance\r\n+     *\r\n+     * @param url URL address for the remote service\r\n+     * @param output the underlying output stream\r\n+     * @return serializer\r\n+     * @throws IOException\r\n+     */\r\n+    @Adaptive\r\n+    ObjectOutput serialize(URL url, OutputStream output) throws IOException;\r\n+\r\n+    /**\r\n+     * Get a deserialization implementation instance\r\n+     *\r\n+     * @param url URL address for the remote service\r\n+     * @param input the underlying input stream\r\n+     * @return deserializer\r\n+     * @throws IOException\r\n+     */\r\n+    @Adaptive\r\n+    ObjectInput deserialize(URL url, InputStream input) throws IOException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/fastjson/FastJsonObjectInput.java", "source2": "org/apache/dubbo/common/serialize/fastjson/FastJsonObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.fastjson;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.io.BufferedReader;\n-import java.io.EOFException;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.InputStreamReader;\n-import java.io.Reader;\n-import java.lang.reflect.Type;\n-\n-/**\n- * FastJson object input implementation\n- */\n-public class FastJsonObjectInput implements ObjectInput {\n-\n-    private final BufferedReader reader;\n-\n-    public FastJsonObjectInput(InputStream in) {\n-        this(new InputStreamReader(in));\n-    }\n-\n-    public FastJsonObjectInput(Reader reader) {\n-        this.reader = new BufferedReader(reader);\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(boolean.class);\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return read(byte.class);\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return read(short.class);\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(int.class);\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(long.class);\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(float.class);\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(double.class);\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(String.class);\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return readLine().getBytes();\n-    }\n-\n-    @Override\n-    public Object readObject() throws IOException, ClassNotFoundException {\n-        String json = readLine();\n-        return JSON.parse(json);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\n-        String json = readLine();\n-        return (T) JSON.parseObject(json, type);\n-    }\n-\n-    private String readLine() throws IOException, EOFException {\n-        String line = reader.readLine();\n-        if (line == null || line.trim().length() == 0) {\n-            throw new EOFException();\n-        }\n-        return line;\n-    }\n-\n-    private <T> T read(Class<T> cls) throws IOException {\n-        String json = readLine();\n-        return JSON.parseObject(json, cls);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.fastjson;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.io.BufferedReader;\r\n+import java.io.EOFException;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.InputStreamReader;\r\n+import java.io.Reader;\r\n+import java.lang.reflect.Type;\r\n+\r\n+/**\r\n+ * FastJson object input implementation\r\n+ */\r\n+public class FastJsonObjectInput implements ObjectInput {\r\n+\r\n+    private final BufferedReader reader;\r\n+\r\n+    public FastJsonObjectInput(InputStream in) {\r\n+        this(new InputStreamReader(in));\r\n+    }\r\n+\r\n+    public FastJsonObjectInput(Reader reader) {\r\n+        this.reader = new BufferedReader(reader);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(boolean.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return read(byte.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return read(short.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(int.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(long.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(float.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(double.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(String.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return readLine().getBytes();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() throws IOException, ClassNotFoundException {\r\n+        String json = readLine();\r\n+        return JSON.parse(json);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\r\n+        String json = readLine();\r\n+        return (T) JSON.parseObject(json, type);\r\n+    }\r\n+\r\n+    private String readLine() throws IOException, EOFException {\r\n+        String line = reader.readLine();\r\n+        if (line == null || line.trim().length() == 0) {\r\n+            throw new EOFException();\r\n+        }\r\n+        return line;\r\n+    }\r\n+\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        String json = readLine();\r\n+        return JSON.parseObject(json, cls);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/fastjson/FastJsonSerialization.java", "source2": "org/apache/dubbo/common/serialize/fastjson/FastJsonSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.fastjson;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.FASTJSON_SERIALIZATION_ID;\n-\n-/**\n- * FastJson serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"fastjson\" /&gt;\n- * </pre>\n- */\n-public class FastJsonSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return FASTJSON_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\n-        return new FastJsonObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\n-        return new FastJsonObjectInput(input);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.fastjson;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.FASTJSON_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * FastJson serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"fastjson\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class FastJsonSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return FASTJSON_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\r\n+        return new FastJsonObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\r\n+        return new FastJsonObjectInput(input);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/fst/FstFactory.java", "source2": "org/apache/dubbo/common/serialize/fst/FstFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.fst;\n-\n-import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\n-\n-import org.nustaq.serialization.FSTConfiguration;\n-import org.nustaq.serialization.FSTObjectInput;\n-import org.nustaq.serialization.FSTObjectOutput;\n-\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * Fst object input/output factory\n- */\n-public class FstFactory {\n-\n-    private static final FstFactory FACTORY = new FstFactory();\n-\n-    private final FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration();\n-\n-\n-    public static FstFactory getDefaultFactory() {\n-        return FACTORY;\n-    }\n-\n-    public FstFactory() {\n-        SerializableClassRegistry.getRegisteredClasses().keySet().forEach(conf::registerClass);\n-    }\n-\n-    public FSTObjectOutput getObjectOutput(OutputStream outputStream) {\n-        return conf.getObjectOutput(outputStream);\n-    }\n-\n-    public FSTObjectInput getObjectInput(InputStream inputStream) {\n-        return conf.getObjectInput(inputStream);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.fst;\r\n+\r\n+import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\r\n+\r\n+import org.nustaq.serialization.FSTConfiguration;\r\n+import org.nustaq.serialization.FSTObjectInput;\r\n+import org.nustaq.serialization.FSTObjectOutput;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Fst object input/output factory\r\n+ */\r\n+public class FstFactory {\r\n+\r\n+    private static final FstFactory FACTORY = new FstFactory();\r\n+\r\n+    private final FSTConfiguration conf = FSTConfiguration.createDefaultConfiguration();\r\n+\r\n+\r\n+    public static FstFactory getDefaultFactory() {\r\n+        return FACTORY;\r\n+    }\r\n+\r\n+    public FstFactory() {\r\n+        SerializableClassRegistry.getRegisteredClasses().keySet().forEach(conf::registerClass);\r\n+    }\r\n+\r\n+    public FSTObjectOutput getObjectOutput(OutputStream outputStream) {\r\n+        return conf.getObjectOutput(outputStream);\r\n+    }\r\n+\r\n+    public FSTObjectInput getObjectInput(InputStream inputStream) {\r\n+        return conf.getObjectInput(inputStream);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/fst/FstSerialization.java", "source2": "org/apache/dubbo/common/serialize/fst/FstSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.fst;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.FST_SERIALIZATION_ID;\n-\n-/**\n- * Fst serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"fst\" /&gt;\n- * </pre>\n- */\n-public class FstSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return FST_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/fst\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new FstObjectOutput(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new FstObjectInput(is);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.fst;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.FST_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Fst serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"fst\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class FstSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return FST_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/fst\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new FstObjectOutput(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new FstObjectInput(is);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/gson/GsonJsonObjectInput.java", "source2": "org/apache/dubbo/common/serialize/gson/GsonJsonObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.gson;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-\n-import com.google.gson.Gson;\n-\n-import java.io.BufferedReader;\n-import java.io.EOFException;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.InputStreamReader;\n-import java.io.Reader;\n-import java.lang.reflect.Type;\n-\n-public class GsonJsonObjectInput implements ObjectInput {\n-    private final BufferedReader reader;\n-    private Gson gson;\n-\n-    public GsonJsonObjectInput(InputStream in) {\n-        this(new InputStreamReader(in));\n-    }\n-\n-    public GsonJsonObjectInput(Reader reader) {\n-        this.reader = new BufferedReader(reader);\n-        gson = new Gson();\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(boolean.class);\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return read(byte.class);\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return read(short.class);\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(int.class);\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(long.class);\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(float.class);\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(double.class);\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(String.class);\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return readLine().getBytes();\n-    }\n-\n-    @Override\n-    public Object readObject() throws IOException, ClassNotFoundException {\n-        String json = readLine();\n-        return gson.fromJson(json, Object.class);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\n-        Object value = readObject(cls);\n-        return (T) PojoUtils.realize(value, cls, type);\n-    }\n-\n-    private String readLine() throws IOException {\n-        String line = reader.readLine();\n-        if (line == null || line.trim().length() == 0) {\n-            throw new EOFException();\n-        }\n-        return line;\n-    }\n-\n-    private <T> T read(Class<T> cls) throws IOException {\n-        String json = readLine();\n-        return gson.fromJson(json, cls);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.gson;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+\r\n+import com.google.gson.Gson;\r\n+\r\n+import java.io.BufferedReader;\r\n+import java.io.EOFException;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.InputStreamReader;\r\n+import java.io.Reader;\r\n+import java.lang.reflect.Type;\r\n+\r\n+public class GsonJsonObjectInput implements ObjectInput {\r\n+    private final BufferedReader reader;\r\n+    private Gson gson;\r\n+\r\n+    public GsonJsonObjectInput(InputStream in) {\r\n+        this(new InputStreamReader(in));\r\n+    }\r\n+\r\n+    public GsonJsonObjectInput(Reader reader) {\r\n+        this.reader = new BufferedReader(reader);\r\n+        gson = new Gson();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(boolean.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return read(byte.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return read(short.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(int.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(long.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(float.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(double.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(String.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return readLine().getBytes();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() throws IOException, ClassNotFoundException {\r\n+        String json = readLine();\r\n+        return gson.fromJson(json, Object.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException, ClassNotFoundException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\r\n+        Object value = readObject(cls);\r\n+        return (T) PojoUtils.realize(value, cls, type);\r\n+    }\r\n+\r\n+    private String readLine() throws IOException {\r\n+        String line = reader.readLine();\r\n+        if (line == null || line.trim().length() == 0) {\r\n+            throw new EOFException();\r\n+        }\r\n+        return line;\r\n+    }\r\n+\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        String json = readLine();\r\n+        return gson.fromJson(json, cls);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/gson/GsonJsonObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,108 +1,108 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.gson;\n-\n-import com.google.gson.Gson;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-\n-import java.io.OutputStream;\n-import java.io.OutputStreamWriter;\n-import java.io.PrintWriter;\n-import java.io.Writer;\n-import java.io.IOException;\n-\n-\n-public class GsonJsonObjectOutput implements ObjectOutput {\n-\n-    private final PrintWriter writer;\n-    private Gson gson = null;\n-\n-    public GsonJsonObjectOutput(OutputStream out) {\n-        this(new OutputStreamWriter(out));\n-    }\n-\n-    public GsonJsonObjectOutput(Writer writer) {\n-        this.gson = new Gson();\n-        this.writer = new PrintWriter(writer);\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        writeObject(v);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        writer.println(new String(b));\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        writer.println(new String(b, off, len));\n-    }\n-\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        char[] json = gson.toJson(obj).toCharArray();\n-        writer.write(json, 0, json.length);\n-        writer.println();\n-        writer.flush();\n-        json = null;\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        writer.flush();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.gson;\r\n+\r\n+import com.google.gson.Gson;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+\r\n+import java.io.OutputStream;\r\n+import java.io.OutputStreamWriter;\r\n+import java.io.PrintWriter;\r\n+import java.io.Writer;\r\n+import java.io.IOException;\r\n+\r\n+\r\n+public class GsonJsonObjectOutput implements ObjectOutput {\r\n+\r\n+    private final PrintWriter writer;\r\n+    private Gson gson = null;\r\n+\r\n+    public GsonJsonObjectOutput(OutputStream out) {\r\n+        this(new OutputStreamWriter(out));\r\n+    }\r\n+\r\n+    public GsonJsonObjectOutput(Writer writer) {\r\n+        this.gson = new Gson();\r\n+        this.writer = new PrintWriter(writer);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        writeObject(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        writer.println(new String(b));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        writer.println(new String(b, off, len));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        char[] json = gson.toJson(obj).toCharArray();\r\n+        writer.write(json, 0, json.length);\r\n+        writer.println();\r\n+        writer.flush();\r\n+        json = null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        writer.flush();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/gson/GsonSerialization.java", "source2": "org/apache/dubbo/common/serialize/gson/GsonSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.gson;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.GSON_SERIALIZATION_ID;\n-\n-public class GsonSerialization implements Serialization {\n-\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return GSON_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\n-        return new GsonJsonObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\n-        return new GsonJsonObjectInput(input);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.gson;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.GSON_SERIALIZATION_ID;\r\n+\r\n+public class GsonSerialization implements Serialization {\r\n+\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return GSON_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\r\n+        return new GsonJsonObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\r\n+        return new GsonJsonObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java", "source2": "org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,120 +1,120 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2;\n-\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer;\n-\n-import com.alibaba.com.caucho.hessian.io.Hessian2Input;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.lang.reflect.Type;\n-\n-/**\n- * Hessian2 object input implementation\n- */\n-public class Hessian2ObjectInput implements ObjectInput, Cleanable {\n-\n-    private static ThreadLocal<Hessian2Input> INPUT_TL = ThreadLocal.withInitial(() -> {\n-        Hessian2Input h2i = new Hessian2Input(null);\n-        h2i.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());\n-        h2i.setCloseStreamOnClose(true);\n-        return h2i;\n-    });\n-\n-    private final Hessian2Input mH2i;\n-\n-    public Hessian2ObjectInput(InputStream is) {\n-        mH2i = INPUT_TL.get();\n-        mH2i.init(is);\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return mH2i.readBoolean();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) mH2i.readInt();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) mH2i.readInt();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return mH2i.readInt();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return mH2i.readLong();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return (float) mH2i.readDouble();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return mH2i.readDouble();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return mH2i.readBytes();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return mH2i.readString();\n-    }\n-\n-    @Override\n-    public Object readObject() throws IOException {\n-        return mH2i.readObject();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls) throws IOException,\n-            ClassNotFoundException {\n-        return (T) mH2i.readObject(cls);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\n-        return readObject(cls);\n-    }\n-\n-    public InputStream readInputStream() throws IOException {\n-        return mH2i.readInputStream();\n-    }\n-\n-    @Override\n-    public void cleanup() {\n-        if(mH2i != null) {\n-            mH2i.reset();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2;\r\n+\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.Hessian2Input;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.lang.reflect.Type;\r\n+\r\n+/**\r\n+ * Hessian2 object input implementation\r\n+ */\r\n+public class Hessian2ObjectInput implements ObjectInput, Cleanable {\r\n+\r\n+    private static ThreadLocal<Hessian2Input> INPUT_TL = ThreadLocal.withInitial(() -> {\r\n+        Hessian2Input h2i = new Hessian2Input(null);\r\n+        h2i.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());\r\n+        h2i.setCloseStreamOnClose(true);\r\n+        return h2i;\r\n+    });\r\n+\r\n+    private final Hessian2Input mH2i;\r\n+\r\n+    public Hessian2ObjectInput(InputStream is) {\r\n+        mH2i = INPUT_TL.get();\r\n+        mH2i.init(is);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return mH2i.readBoolean();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) mH2i.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) mH2i.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return mH2i.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return mH2i.readLong();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return (float) mH2i.readDouble();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return mH2i.readDouble();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return mH2i.readBytes();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return mH2i.readString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() throws IOException {\r\n+        return mH2i.readObject();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls) throws IOException,\r\n+            ClassNotFoundException {\r\n+        return (T) mH2i.readObject(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException, ClassNotFoundException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+    public InputStream readInputStream() throws IOException {\r\n+        return mH2i.readInputStream();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void cleanup() {\r\n+        if(mH2i != null) {\r\n+            mH2i.reset();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/hessian2/Hessian2ObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2;\n-\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer;\n-\n-import com.alibaba.com.caucho.hessian.io.Hessian2Output;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-\n-/**\n- * Hessian2 object output implementation\n- */\n-public class Hessian2ObjectOutput implements ObjectOutput, Cleanable {\n-\n-    private static ThreadLocal<Hessian2Output> OUTPUT_TL = ThreadLocal.withInitial(() -> {\n-        Hessian2Output h2o = new Hessian2Output(null);\n-        h2o.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());\n-        h2o.setCloseStreamOnClose(true);\n-        return h2o;\n-    });\n-\n-    private final Hessian2Output mH2o;\n-\n-    public Hessian2ObjectOutput(OutputStream os) {\n-        mH2o = OUTPUT_TL.get();\n-        mH2o.init(os);\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-        mH2o.writeBoolean(v);\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        mH2o.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        mH2o.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        mH2o.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        mH2o.writeLong(v);\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        mH2o.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        mH2o.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        mH2o.writeBytes(b);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        mH2o.writeBytes(b, off, len);\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        mH2o.writeString(v);\n-    }\n-\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        mH2o.writeObject(obj);\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        mH2o.flushBuffer();\n-    }\n-\n-    public OutputStream getOutputStream() throws IOException {\n-        return mH2o.getBytesOutputStream();\n-    }\n-\n-    @Override\n-    public void cleanup() {\n-        if(mH2o != null) {\n-            mH2o.reset();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2;\r\n+\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.hessian2.dubbo.Hessian2FactoryInitializer;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.Hessian2Output;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Hessian2 object output implementation\r\n+ */\r\n+public class Hessian2ObjectOutput implements ObjectOutput, Cleanable {\r\n+\r\n+    private static ThreadLocal<Hessian2Output> OUTPUT_TL = ThreadLocal.withInitial(() -> {\r\n+        Hessian2Output h2o = new Hessian2Output(null);\r\n+        h2o.setSerializerFactory(Hessian2FactoryInitializer.getInstance().getSerializerFactory());\r\n+        h2o.setCloseStreamOnClose(true);\r\n+        return h2o;\r\n+    });\r\n+\r\n+    private final Hessian2Output mH2o;\r\n+\r\n+    public Hessian2ObjectOutput(OutputStream os) {\r\n+        mH2o = OUTPUT_TL.get();\r\n+        mH2o.init(os);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+        mH2o.writeBoolean(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        mH2o.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        mH2o.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        mH2o.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        mH2o.writeLong(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        mH2o.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        mH2o.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        mH2o.writeBytes(b);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        mH2o.writeBytes(b, off, len);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        mH2o.writeString(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        mH2o.writeObject(obj);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        mH2o.flushBuffer();\r\n+    }\r\n+\r\n+    public OutputStream getOutputStream() throws IOException {\r\n+        return mH2o.getBytesOutputStream();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void cleanup() {\r\n+        if(mH2o != null) {\r\n+            mH2o.reset();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/Hessian2Serialization.java", "source2": "org/apache/dubbo/common/serialize/hessian2/Hessian2Serialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.HESSIAN2_SERIALIZATION_ID;\n-\n-/**\n- * Hessian2 serialization implementation, hessian2 is the default serialization protocol for dubbo\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"hessian2\" /&gt;\n- * </pre>\n- */\n-public class Hessian2Serialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return HESSIAN2_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/hessian2\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new Hessian2ObjectOutput(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new Hessian2ObjectInput(is);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.HESSIAN2_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Hessian2 serialization implementation, hessian2 is the default serialization protocol for dubbo\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"hessian2\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class Hessian2Serialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return HESSIAN2_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/hessian2\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new Hessian2ObjectOutput(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new Hessian2ObjectInput(is);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java", "source2": "org/apache/dubbo/common/serialize/hessian2/Hessian2SerializerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2;\n-\n-import com.alibaba.com.caucho.hessian.io.SerializerFactory;\n-\n-public class Hessian2SerializerFactory extends SerializerFactory {\n-\n-    public Hessian2SerializerFactory() {\n-    }\n-\n-    @Override\n-    public ClassLoader getClassLoader() {\n-        return Thread.currentThread().getContextClassLoader();\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+public class Hessian2SerializerFactory extends SerializerFactory {\r\n+\r\n+    public Hessian2SerializerFactory() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public ClassLoader getClassLoader() {\r\n+        return Thread.currentThread().getContextClassLoader();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/dubbo/AbstractHessian2FactoryInitializer.java", "source2": "org/apache/dubbo/common/serialize/hessian2/dubbo/AbstractHessian2FactoryInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2.dubbo;\n-\n-import com.alibaba.com.caucho.hessian.io.SerializerFactory;\n-\n-public abstract class AbstractHessian2FactoryInitializer implements Hessian2FactoryInitializer {\n-    private static SerializerFactory SERIALIZER_FACTORY;\n-\n-    @Override\n-    public SerializerFactory getSerializerFactory() {\n-        if (SERIALIZER_FACTORY != null) {\n-            return SERIALIZER_FACTORY;\n-        }\n-        synchronized (this) {\n-            SERIALIZER_FACTORY = createSerializerFactory();\n-        }\n-        return SERIALIZER_FACTORY;\n-    }\n-\n-    protected abstract SerializerFactory createSerializerFactory();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2.dubbo;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+public abstract class AbstractHessian2FactoryInitializer implements Hessian2FactoryInitializer {\r\n+    private static SerializerFactory SERIALIZER_FACTORY;\r\n+\r\n+    @Override\r\n+    public SerializerFactory getSerializerFactory() {\r\n+        if (SERIALIZER_FACTORY != null) {\r\n+            return SERIALIZER_FACTORY;\r\n+        }\r\n+        synchronized (this) {\r\n+            SERIALIZER_FACTORY = createSerializerFactory();\r\n+        }\r\n+        return SERIALIZER_FACTORY;\r\n+    }\r\n+\r\n+    protected abstract SerializerFactory createSerializerFactory();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/dubbo/DefaultHessian2FactoryInitializer.java", "source2": "org/apache/dubbo/common/serialize/hessian2/dubbo/DefaultHessian2FactoryInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2.dubbo;\n-\n-import org.apache.dubbo.common.serialize.hessian2.Hessian2SerializerFactory;\n-\n-import com.alibaba.com.caucho.hessian.io.SerializerFactory;\n-\n-public class DefaultHessian2FactoryInitializer extends AbstractHessian2FactoryInitializer {\n-    @Override\n-    protected SerializerFactory createSerializerFactory() {\n-        return new Hessian2SerializerFactory();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2.dubbo;\r\n+\r\n+import org.apache.dubbo.common.serialize.hessian2.Hessian2SerializerFactory;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+public class DefaultHessian2FactoryInitializer extends AbstractHessian2FactoryInitializer {\r\n+    @Override\r\n+    protected SerializerFactory createSerializerFactory() {\r\n+        return new Hessian2SerializerFactory();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/dubbo/Hessian2FactoryInitializer.java", "source2": "org/apache/dubbo/common/serialize/hessian2/dubbo/Hessian2FactoryInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2.dubbo;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.alibaba.com.caucho.hessian.io.SerializerFactory;\n-\n-@SPI(\"default\")\n-public interface Hessian2FactoryInitializer {\n-    String WHITELIST = \"dubbo.application.hessian2.whitelist\";\n-    String ALLOW = \"dubbo.application.hessian2.allow\";\n-    String DENY = \"dubbo.application.hessian2.deny\";\n-    ExtensionLoader<Hessian2FactoryInitializer> loader = ExtensionLoader.getExtensionLoader(Hessian2FactoryInitializer.class);\n-\n-    SerializerFactory getSerializerFactory();\n-\n-    static Hessian2FactoryInitializer getInstance() {\n-        String whitelist = ConfigurationUtils.getProperty(WHITELIST);\n-        if (StringUtils.isNotEmpty(whitelist)) {\n-            return loader.getExtension(\"whitelist\");\n-        }\n-        return loader.getDefaultExtension();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2.dubbo;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+@SPI(\"default\")\r\n+public interface Hessian2FactoryInitializer {\r\n+    String WHITELIST = \"dubbo.application.hessian2.whitelist\";\r\n+    String ALLOW = \"dubbo.application.hessian2.allow\";\r\n+    String DENY = \"dubbo.application.hessian2.deny\";\r\n+    ExtensionLoader<Hessian2FactoryInitializer> loader = ExtensionLoader.getExtensionLoader(Hessian2FactoryInitializer.class);\r\n+\r\n+    SerializerFactory getSerializerFactory();\r\n+\r\n+    static Hessian2FactoryInitializer getInstance() {\r\n+        String whitelist = ConfigurationUtils.getProperty(WHITELIST);\r\n+        if (StringUtils.isNotEmpty(whitelist)) {\r\n+            return loader.getExtension(\"whitelist\");\r\n+        }\r\n+        return loader.getDefaultExtension();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/hessian2/dubbo/WhitelistHessian2FactoryInitializer.java", "source2": "org/apache/dubbo/common/serialize/hessian2/dubbo/WhitelistHessian2FactoryInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.hessian2.dubbo;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.serialize.hessian2.Hessian2SerializerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.alibaba.com.caucho.hessian.io.SerializerFactory;\n-\n-/**\n- * see https://github.com/ebourg/hessian/commit/cf851f5131707891e723f7f6a9718c2461aed826\n- */\n-public class WhitelistHessian2FactoryInitializer extends AbstractHessian2FactoryInitializer {\n-\n-    @Override\n-    public SerializerFactory createSerializerFactory() {\n-        SerializerFactory serializerFactory = new Hessian2SerializerFactory();\n-        String whiteList = ConfigurationUtils.getProperty(WHITELIST);\n-        if (\"true\".equals(whiteList)) {\n-            serializerFactory.getClassFactory().setWhitelist(true);\n-            String allowPattern = ConfigurationUtils.getProperty(ALLOW);\n-            if (StringUtils.isNotEmpty(allowPattern)) {\n-                serializerFactory.getClassFactory().allow(allowPattern);\n-            }\n-        } else {\n-            serializerFactory.getClassFactory().setWhitelist(false);\n-            String denyPattern = ConfigurationUtils.getProperty(DENY);\n-            if (StringUtils.isNotEmpty(denyPattern)) {\n-                serializerFactory.getClassFactory().deny(denyPattern);\n-            }\n-        }\n-        return serializerFactory;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.hessian2.dubbo;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.serialize.hessian2.Hessian2SerializerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.alibaba.com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+/**\r\n+ * see https://github.com/ebourg/hessian/commit/cf851f5131707891e723f7f6a9718c2461aed826\r\n+ */\r\n+public class WhitelistHessian2FactoryInitializer extends AbstractHessian2FactoryInitializer {\r\n+\r\n+    @Override\r\n+    public SerializerFactory createSerializerFactory() {\r\n+        SerializerFactory serializerFactory = new Hessian2SerializerFactory();\r\n+        String whiteList = ConfigurationUtils.getProperty(WHITELIST);\r\n+        if (\"true\".equals(whiteList)) {\r\n+            serializerFactory.getClassFactory().setWhitelist(true);\r\n+            String allowPattern = ConfigurationUtils.getProperty(ALLOW);\r\n+            if (StringUtils.isNotEmpty(allowPattern)) {\r\n+                serializerFactory.getClassFactory().allow(allowPattern);\r\n+            }\r\n+        } else {\r\n+            serializerFactory.getClassFactory().setWhitelist(false);\r\n+            String denyPattern = ConfigurationUtils.getProperty(DENY);\r\n+            if (StringUtils.isNotEmpty(denyPattern)) {\r\n+                serializerFactory.getClassFactory().deny(denyPattern);\r\n+            }\r\n+        }\r\n+        return serializerFactory;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/java/CompactedJavaSerialization.java", "source2": "org/apache/dubbo/common/serialize/java/CompactedJavaSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.java;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.COMPACTED_JAVA_SERIALIZATION_ID;\n-\n-/**\n- * Compacted java serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"compactedjava\" /&gt;\n- * </pre>\n- */\n-public class CompactedJavaSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return COMPACTED_JAVA_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/compactedjava\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new JavaObjectOutput(out, true);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new JavaObjectInput(is, true);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.java;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.COMPACTED_JAVA_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Compacted java serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"compactedjava\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class CompactedJavaSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return COMPACTED_JAVA_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/compactedjava\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new JavaObjectOutput(out, true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new JavaObjectInput(is, true);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/java/CompactedObjectInputStream.java", "source2": "org/apache/dubbo/common/serialize/java/CompactedObjectInputStream.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.java;\n-\n-\n-import org.apache.dubbo.common.utils.ClassUtils;\n-\n-import java.io.EOFException;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.ObjectInputStream;\n-import java.io.ObjectStreamClass;\n-import java.io.StreamCorruptedException;\n-\n-/**\n- * Compacted java object input implementation\n- */\n-public class CompactedObjectInputStream extends ObjectInputStream {\n-    private ClassLoader mClassLoader;\n-\n-    public CompactedObjectInputStream(InputStream in) throws IOException {\n-        this(in, Thread.currentThread().getContextClassLoader());\n-    }\n-\n-    public CompactedObjectInputStream(InputStream in, ClassLoader cl) throws IOException {\n-        super(in);\n-        mClassLoader = cl == null ? ClassUtils.getClassLoader() : cl;\n-    }\n-\n-    @Override\n-    protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {\n-        int type = read();\n-        if (type < 0) {\n-            throw new EOFException();\n-        }\n-        switch (type) {\n-            case 0:\n-                return super.readClassDescriptor();\n-            case 1:\n-                Class<?> clazz = loadClass(readUTF());\n-                return ObjectStreamClass.lookup(clazz);\n-            default:\n-                throw new StreamCorruptedException(\"Unexpected class descriptor type: \" + type);\n-        }\n-    }\n-\n-    private Class<?> loadClass(String className) throws ClassNotFoundException {\n-        return mClassLoader.loadClass(className);\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.java;\r\n+\r\n+\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+\r\n+import java.io.EOFException;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.ObjectInputStream;\r\n+import java.io.ObjectStreamClass;\r\n+import java.io.StreamCorruptedException;\r\n+\r\n+/**\r\n+ * Compacted java object input implementation\r\n+ */\r\n+public class CompactedObjectInputStream extends ObjectInputStream {\r\n+    private ClassLoader mClassLoader;\r\n+\r\n+    public CompactedObjectInputStream(InputStream in) throws IOException {\r\n+        this(in, Thread.currentThread().getContextClassLoader());\r\n+    }\r\n+\r\n+    public CompactedObjectInputStream(InputStream in, ClassLoader cl) throws IOException {\r\n+        super(in);\r\n+        mClassLoader = cl == null ? ClassUtils.getClassLoader() : cl;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ObjectStreamClass readClassDescriptor() throws IOException, ClassNotFoundException {\r\n+        int type = read();\r\n+        if (type < 0) {\r\n+            throw new EOFException();\r\n+        }\r\n+        switch (type) {\r\n+            case 0:\r\n+                return super.readClassDescriptor();\r\n+            case 1:\r\n+                Class<?> clazz = loadClass(readUTF());\r\n+                return ObjectStreamClass.lookup(clazz);\r\n+            default:\r\n+                throw new StreamCorruptedException(\"Unexpected class descriptor type: \" + type);\r\n+        }\r\n+    }\r\n+\r\n+    private Class<?> loadClass(String className) throws ClassNotFoundException {\r\n+        return mClassLoader.loadClass(className);\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/java/JavaSerialization.java", "source2": "org/apache/dubbo/common/serialize/java/JavaSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.java;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.JAVA_SERIALIZATION_ID;\n-\n-/**\n- * Java serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"java\" /&gt;\n- * </pre>\n- */\n-public class JavaSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return JAVA_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/java\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new JavaObjectOutput(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new JavaObjectInput(is);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.java;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.JAVA_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Java serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"java\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class JavaSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return JAVA_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/java\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new JavaObjectOutput(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new JavaObjectInput(is);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/CompatibleKryo.java", "source2": "org/apache/dubbo/common/serialize/kryo/CompatibleKryo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-import com.esotericsoftware.kryo.Serializer;\n-import com.esotericsoftware.kryo.serializers.JavaSerializer;\n-\n-public class CompatibleKryo extends Kryo {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(CompatibleKryo.class);\n-\n-    @Override\n-    public Serializer getDefaultSerializer(Class type) {\n-        if (type == null) {\n-            throw new IllegalArgumentException(\"type cannot be null.\");\n-        }\n-\n-        /**\n-         * Kryo requires every class to provide a zero argument constructor. For any class does not match this condition, kryo have two ways:\n-         * 1. Use JavaSerializer,\n-         * 2. Set 'kryo.setInstantiatorStrategy(new DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));', StdInstantiatorStrategy can generate an instance bypassing the constructor.\n-         *\n-         * In practice, it's not possible for Dubbo users to register kryo Serializer for every customized class. So in most cases, customized classes with/without zero argument constructor will\n-         * default to the default serializer.\n-         * It is the responsibility of kryo to handle with every standard jdk classes, so we will just escape these classes.\n-         */\n-        if (!ReflectUtils.isJdk(type) && !type.isArray() && !type.isEnum() && !ReflectUtils.checkZeroArgConstructor(type)) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(type + \" has no zero-arg constructor and this will affect the serialization performance\");\n-            }\n-            return new JavaSerializer();\n-        }\n-        return super.getDefaultSerializer(type);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+import com.esotericsoftware.kryo.Serializer;\r\n+import com.esotericsoftware.kryo.serializers.JavaSerializer;\r\n+\r\n+public class CompatibleKryo extends Kryo {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(CompatibleKryo.class);\r\n+\r\n+    @Override\r\n+    public Serializer getDefaultSerializer(Class type) {\r\n+        if (type == null) {\r\n+            throw new IllegalArgumentException(\"type cannot be null.\");\r\n+        }\r\n+\r\n+        /**\r\n+         * Kryo requires every class to provide a zero argument constructor. For any class does not match this condition, kryo have two ways:\r\n+         * 1. Use JavaSerializer,\r\n+         * 2. Set 'kryo.setInstantiatorStrategy(new DefaultInstantiatorStrategy(new StdInstantiatorStrategy()));', StdInstantiatorStrategy can generate an instance bypassing the constructor.\r\n+         *\r\n+         * In practice, it's not possible for Dubbo users to register kryo Serializer for every customized class. So in most cases, customized classes with/without zero argument constructor will\r\n+         * default to the default serializer.\r\n+         * It is the responsibility of kryo to handle with every standard jdk classes, so we will just escape these classes.\r\n+         */\r\n+        if (!ReflectUtils.isJdk(type) && !type.isArray() && !type.isEnum() && !ReflectUtils.checkZeroArgConstructor(type)) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(type + \" has no zero-arg constructor and this will affect the serialization performance\");\r\n+            }\r\n+            return new JavaSerializer();\r\n+        }\r\n+        return super.getDefaultSerializer(type);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/KryoSerialization.java", "source2": "org/apache/dubbo/common/serialize/kryo/KryoSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.KRYO_SERIALIZATION_ID;\n-\n-/**\n- * TODO for now kryo serialization doesn't deny classes that don't implement the serializable interface\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"kryo\" /&gt;\n- * </pre>\n- */\n-public class KryoSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return KRYO_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/kryo\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new KryoObjectOutput(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new KryoObjectInput(is);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.KRYO_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * TODO for now kryo serialization doesn't deny classes that don't implement the serializable interface\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"kryo\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class KryoSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return KRYO_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/kryo\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new KryoObjectOutput(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new KryoObjectInput(is);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectInput2.java", "source2": "org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectInput2.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,168 +1,168 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.optimized;\n-\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.kryo.utils.KryoUtils;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-import com.esotericsoftware.kryo.KryoException;\n-import com.esotericsoftware.kryo.io.Input;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.lang.reflect.Type;\n-\n-/**\n- * Kryo object input implementation, kryo object can be clean\n- */\n-public class KryoObjectInput2 implements ObjectInput, Cleanable {\n-\n-    private Kryo kryo;\n-    private Input input;\n-\n-    public KryoObjectInput2(InputStream inputStream) {\n-        input = new Input(inputStream);\n-        this.kryo = KryoUtils.get();\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        try {\n-            return input.readBoolean();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        try {\n-            return input.readByte();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        try {\n-            return input.readShort();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        try {\n-            return input.readInt();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        try {\n-            return input.readLong();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        try {\n-            return input.readFloat();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        try {\n-            return input.readDouble();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        try {\n-            int len = input.readInt();\n-            if (len < 0) {\n-                return null;\n-            } else if (len == 0) {\n-                return new byte[]{};\n-            } else {\n-                return input.readBytes(len);\n-            }\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        try {\n-            return input.readString();\n-        } catch (KryoException e) {\n-            throw new IOException(e);\n-        }\n-    }\n-\n-    @Override\n-    public Object readObject() throws IOException, ClassNotFoundException {\n-        try {\n-            return kryo.readObjectOrNull(input, String.class);\n-        } catch (KryoException e) {\n-            throw new UnsupportedOperationException(\"Kryo serialization must know the input type when deserialize.\", e);\n-        }\n-    }\n-\n-    @Override\n-    public Throwable readThrowable() throws IOException, ClassNotFoundException {\n-        return (Throwable) kryo.readClassAndObject(input);\n-    }\n-\n-    @Override\n-    public Object readEvent() throws IOException, ClassNotFoundException {\n-        return kryo.readObjectOrNull(input, String.class);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> clazz) throws IOException, ClassNotFoundException {\n-        return kryo.readObjectOrNull(input, clazz);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> clazz, Type type) throws IOException, ClassNotFoundException {\n-        return readObject(clazz);\n-    }\n-\n-    @Override\n-    public void cleanup() {\n-        KryoUtils.release(kryo);\n-        kryo = null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.optimized;\r\n+\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.kryo.utils.KryoUtils;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+import com.esotericsoftware.kryo.KryoException;\r\n+import com.esotericsoftware.kryo.io.Input;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.lang.reflect.Type;\r\n+\r\n+/**\r\n+ * Kryo object input implementation, kryo object can be clean\r\n+ */\r\n+public class KryoObjectInput2 implements ObjectInput, Cleanable {\r\n+\r\n+    private Kryo kryo;\r\n+    private Input input;\r\n+\r\n+    public KryoObjectInput2(InputStream inputStream) {\r\n+        input = new Input(inputStream);\r\n+        this.kryo = KryoUtils.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        try {\r\n+            return input.readBoolean();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        try {\r\n+            return input.readByte();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        try {\r\n+            return input.readShort();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        try {\r\n+            return input.readInt();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        try {\r\n+            return input.readLong();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        try {\r\n+            return input.readFloat();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        try {\r\n+            return input.readDouble();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        try {\r\n+            int len = input.readInt();\r\n+            if (len < 0) {\r\n+                return null;\r\n+            } else if (len == 0) {\r\n+                return new byte[]{};\r\n+            } else {\r\n+                return input.readBytes(len);\r\n+            }\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        try {\r\n+            return input.readString();\r\n+        } catch (KryoException e) {\r\n+            throw new IOException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() throws IOException, ClassNotFoundException {\r\n+        try {\r\n+            return kryo.readObjectOrNull(input, String.class);\r\n+        } catch (KryoException e) {\r\n+            throw new UnsupportedOperationException(\"Kryo serialization must know the input type when deserialize.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable readThrowable() throws IOException, ClassNotFoundException {\r\n+        return (Throwable) kryo.readClassAndObject(input);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readEvent() throws IOException, ClassNotFoundException {\r\n+        return kryo.readObjectOrNull(input, String.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> clazz) throws IOException, ClassNotFoundException {\r\n+        return kryo.readObjectOrNull(input, clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> clazz, Type type) throws IOException, ClassNotFoundException {\r\n+        return readObject(clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void cleanup() {\r\n+        KryoUtils.release(kryo);\r\n+        kryo = null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java", "source2": "org/apache/dubbo/common/serialize/kryo/optimized/KryoObjectOutput2.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,122 +1,122 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.optimized;\n-\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.kryo.utils.KryoUtils;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-import com.esotericsoftware.kryo.io.Output;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-\n-/**\n- * Kryo object output implementation, kryo object can be clean\n- */\n-public class KryoObjectOutput2 implements ObjectOutput, Cleanable {\n-\n-    private Output output;\n-    private Kryo kryo;\n-\n-    public KryoObjectOutput2(OutputStream outputStream) {\n-        output = new Output(outputStream);\n-        this.kryo = KryoUtils.get();\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-        output.writeBoolean(v);\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        output.writeByte(v);\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        output.writeShort(v);\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        output.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        output.writeLong(v);\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        output.writeFloat(v);\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        output.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] v) throws IOException {\n-        if (v == null) {\n-            output.writeInt(-1);\n-        } else {\n-            writeBytes(v, 0, v.length);\n-        }\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] v, int off, int len) throws IOException {\n-        if (v == null) {\n-            output.writeInt(-1);\n-        } else {\n-            output.writeInt(len);\n-            output.write(v, off, len);\n-        }\n-    }\n-\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        output.writeString(v);\n-    }\n-\n-    @Override\n-    public void writeObject(Object v) throws IOException {\n-        kryo.writeObjectOrNull(output, v, v.getClass());\n-    }\n-\n-    @Override\n-    public void writeThrowable(Object v) throws IOException {\n-        kryo.writeClassAndObject(output, v);\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        output.flush();\n-    }\n-\n-    @Override\n-    public void cleanup() {\n-        KryoUtils.release(kryo);\n-        kryo = null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.optimized;\r\n+\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.kryo.utils.KryoUtils;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+import com.esotericsoftware.kryo.io.Output;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Kryo object output implementation, kryo object can be clean\r\n+ */\r\n+public class KryoObjectOutput2 implements ObjectOutput, Cleanable {\r\n+\r\n+    private Output output;\r\n+    private Kryo kryo;\r\n+\r\n+    public KryoObjectOutput2(OutputStream outputStream) {\r\n+        output = new Output(outputStream);\r\n+        this.kryo = KryoUtils.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+        output.writeBoolean(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        output.writeByte(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        output.writeShort(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        output.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        output.writeLong(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        output.writeFloat(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        output.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] v) throws IOException {\r\n+        if (v == null) {\r\n+            output.writeInt(-1);\r\n+        } else {\r\n+            writeBytes(v, 0, v.length);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] v, int off, int len) throws IOException {\r\n+        if (v == null) {\r\n+            output.writeInt(-1);\r\n+        } else {\r\n+            output.writeInt(len);\r\n+            output.write(v, off, len);\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        output.writeString(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object v) throws IOException {\r\n+        kryo.writeObjectOrNull(output, v, v.getClass());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeThrowable(Object v) throws IOException {\r\n+        kryo.writeClassAndObject(output, v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        output.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void cleanup() {\r\n+        KryoUtils.release(kryo);\r\n+        kryo = null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/optimized/KryoSerialization2.java", "source2": "org/apache/dubbo/common/serialize/kryo/optimized/KryoSerialization2.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.optimized;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.Constants;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * TODO for now kryo serialization doesn't deny classes that don't implement the serializable interface\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"kryo\" /&gt;\n- * </pre>\n- */\n-public class KryoSerialization2 implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return Constants.KRYO_SERIALIZATION2_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/kryo\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new KryoObjectOutput2(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new KryoObjectInput2(is);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.optimized;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.Constants;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * TODO for now kryo serialization doesn't deny classes that don't implement the serializable interface\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"kryo\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class KryoSerialization2 implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return Constants.KRYO_SERIALIZATION2_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/kryo\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new KryoObjectOutput2(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new KryoObjectInput2(is);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/utils/AbstractKryoFactory.java", "source2": "org/apache/dubbo/common/serialize/kryo/utils/AbstractKryoFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,158 +1,158 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.utils;\n-\n-import com.esotericsoftware.kryo.serializers.JavaSerializer;\n-import org.apache.dubbo.common.serialize.kryo.CompatibleKryo;\n-import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-import com.esotericsoftware.kryo.Serializer;\n-import com.esotericsoftware.kryo.pool.KryoFactory;\n-import com.esotericsoftware.kryo.serializers.DefaultSerializers;\n-import de.javakaffee.kryoserializers.ArraysAsListSerializer;\n-import de.javakaffee.kryoserializers.BitSetSerializer;\n-import de.javakaffee.kryoserializers.GregorianCalendarSerializer;\n-import de.javakaffee.kryoserializers.JdkProxySerializer;\n-import de.javakaffee.kryoserializers.RegexSerializer;\n-import de.javakaffee.kryoserializers.SynchronizedCollectionsSerializer;\n-import de.javakaffee.kryoserializers.URISerializer;\n-import de.javakaffee.kryoserializers.UUIDSerializer;\n-import de.javakaffee.kryoserializers.UnmodifiableCollectionsSerializer;\n-\n-import java.lang.reflect.InvocationHandler;\n-import java.math.BigDecimal;\n-import java.math.BigInteger;\n-import java.net.URI;\n-import java.text.SimpleDateFormat;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.BitSet;\n-import java.util.Calendar;\n-import java.util.Date;\n-import java.util.GregorianCalendar;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.Hashtable;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.Set;\n-import java.util.TreeSet;\n-import java.util.UUID;\n-import java.util.Vector;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.regex.Pattern;\n-\n-public abstract class AbstractKryoFactory implements KryoFactory {\n-\n-    private final Set<Class> registrations = new LinkedHashSet<Class>();\n-\n-    private boolean registrationRequired;\n-\n-    private volatile boolean kryoCreated;\n-\n-    public AbstractKryoFactory() {\n-\n-    }\n-\n-    /**\n-     * only supposed to be called at startup time\n-     *\n-     *  later may consider adding support for custom serializer, custom id, etc\n-     */\n-    public void registerClass(Class clazz) {\n-\n-        if (kryoCreated) {\n-            throw new IllegalStateException(\"Can't register class after creating kryo instance\");\n-        }\n-        registrations.add(clazz);\n-    }\n-\n-    @Override\n-    public Kryo create() {\n-        if (!kryoCreated) {\n-            kryoCreated = true;\n-        }\n-\n-        Kryo kryo = new CompatibleKryo();\n-\n-        // TODO\n-//        kryo.setReferences(false);\n-        kryo.setRegistrationRequired(registrationRequired);\n-\n-        kryo.addDefaultSerializer(Throwable.class, new JavaSerializer());\n-        kryo.register(Arrays.asList(\"\").getClass(), new ArraysAsListSerializer());\n-        kryo.register(GregorianCalendar.class, new GregorianCalendarSerializer());\n-        kryo.register(InvocationHandler.class, new JdkProxySerializer());\n-        kryo.register(BigDecimal.class, new DefaultSerializers.BigDecimalSerializer());\n-        kryo.register(BigInteger.class, new DefaultSerializers.BigIntegerSerializer());\n-        kryo.register(Pattern.class, new RegexSerializer());\n-        kryo.register(BitSet.class, new BitSetSerializer());\n-        kryo.register(URI.class, new URISerializer());\n-        kryo.register(UUID.class, new UUIDSerializer());\n-        UnmodifiableCollectionsSerializer.registerSerializers(kryo);\n-        SynchronizedCollectionsSerializer.registerSerializers(kryo);\n-\n-        // now just added some very common classes\n-        // TODO optimization\n-        kryo.register(HashMap.class);\n-        kryo.register(ArrayList.class);\n-        kryo.register(LinkedList.class);\n-        kryo.register(HashSet.class);\n-        kryo.register(TreeSet.class);\n-        kryo.register(Hashtable.class);\n-        kryo.register(Date.class);\n-        kryo.register(Calendar.class);\n-        kryo.register(ConcurrentHashMap.class);\n-        kryo.register(SimpleDateFormat.class);\n-        kryo.register(GregorianCalendar.class);\n-        kryo.register(Vector.class);\n-        kryo.register(BitSet.class);\n-        kryo.register(StringBuffer.class);\n-        kryo.register(StringBuilder.class);\n-        kryo.register(Object.class);\n-        kryo.register(Object[].class);\n-        kryo.register(String[].class);\n-        kryo.register(byte[].class);\n-        kryo.register(char[].class);\n-        kryo.register(int[].class);\n-        kryo.register(float[].class);\n-        kryo.register(double[].class);\n-\n-        for (Class clazz : registrations) {\n-            kryo.register(clazz);\n-        }\n-\n-        SerializableClassRegistry.getRegisteredClasses().forEach((clazz, ser) -> {\n-            if (ser == null) {\n-                kryo.register(clazz);\n-            } else {\n-                kryo.register(clazz, (Serializer) ser);\n-            }\n-        });\n-\n-        return kryo;\n-    }\n-\n-    public void setRegistrationRequired(boolean registrationRequired) {\n-        this.registrationRequired = registrationRequired;\n-    }\n-\n-    public abstract void returnKryo(Kryo kryo);\n-\n-    public abstract Kryo getKryo();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.utils;\r\n+\r\n+import com.esotericsoftware.kryo.serializers.JavaSerializer;\r\n+import org.apache.dubbo.common.serialize.kryo.CompatibleKryo;\r\n+import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+import com.esotericsoftware.kryo.Serializer;\r\n+import com.esotericsoftware.kryo.pool.KryoFactory;\r\n+import com.esotericsoftware.kryo.serializers.DefaultSerializers;\r\n+import de.javakaffee.kryoserializers.ArraysAsListSerializer;\r\n+import de.javakaffee.kryoserializers.BitSetSerializer;\r\n+import de.javakaffee.kryoserializers.GregorianCalendarSerializer;\r\n+import de.javakaffee.kryoserializers.JdkProxySerializer;\r\n+import de.javakaffee.kryoserializers.RegexSerializer;\r\n+import de.javakaffee.kryoserializers.SynchronizedCollectionsSerializer;\r\n+import de.javakaffee.kryoserializers.URISerializer;\r\n+import de.javakaffee.kryoserializers.UUIDSerializer;\r\n+import de.javakaffee.kryoserializers.UnmodifiableCollectionsSerializer;\r\n+\r\n+import java.lang.reflect.InvocationHandler;\r\n+import java.math.BigDecimal;\r\n+import java.math.BigInteger;\r\n+import java.net.URI;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.BitSet;\r\n+import java.util.Calendar;\r\n+import java.util.Date;\r\n+import java.util.GregorianCalendar;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.Hashtable;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+import java.util.UUID;\r\n+import java.util.Vector;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.regex.Pattern;\r\n+\r\n+public abstract class AbstractKryoFactory implements KryoFactory {\r\n+\r\n+    private final Set<Class> registrations = new LinkedHashSet<Class>();\r\n+\r\n+    private boolean registrationRequired;\r\n+\r\n+    private volatile boolean kryoCreated;\r\n+\r\n+    public AbstractKryoFactory() {\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * only supposed to be called at startup time\r\n+     *\r\n+     *  later may consider adding support for custom serializer, custom id, etc\r\n+     */\r\n+    public void registerClass(Class clazz) {\r\n+\r\n+        if (kryoCreated) {\r\n+            throw new IllegalStateException(\"Can't register class after creating kryo instance\");\r\n+        }\r\n+        registrations.add(clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Kryo create() {\r\n+        if (!kryoCreated) {\r\n+            kryoCreated = true;\r\n+        }\r\n+\r\n+        Kryo kryo = new CompatibleKryo();\r\n+\r\n+        // TODO\r\n+//        kryo.setReferences(false);\r\n+        kryo.setRegistrationRequired(registrationRequired);\r\n+\r\n+        kryo.addDefaultSerializer(Throwable.class, new JavaSerializer());\r\n+        kryo.register(Arrays.asList(\"\").getClass(), new ArraysAsListSerializer());\r\n+        kryo.register(GregorianCalendar.class, new GregorianCalendarSerializer());\r\n+        kryo.register(InvocationHandler.class, new JdkProxySerializer());\r\n+        kryo.register(BigDecimal.class, new DefaultSerializers.BigDecimalSerializer());\r\n+        kryo.register(BigInteger.class, new DefaultSerializers.BigIntegerSerializer());\r\n+        kryo.register(Pattern.class, new RegexSerializer());\r\n+        kryo.register(BitSet.class, new BitSetSerializer());\r\n+        kryo.register(URI.class, new URISerializer());\r\n+        kryo.register(UUID.class, new UUIDSerializer());\r\n+        UnmodifiableCollectionsSerializer.registerSerializers(kryo);\r\n+        SynchronizedCollectionsSerializer.registerSerializers(kryo);\r\n+\r\n+        // now just added some very common classes\r\n+        // TODO optimization\r\n+        kryo.register(HashMap.class);\r\n+        kryo.register(ArrayList.class);\r\n+        kryo.register(LinkedList.class);\r\n+        kryo.register(HashSet.class);\r\n+        kryo.register(TreeSet.class);\r\n+        kryo.register(Hashtable.class);\r\n+        kryo.register(Date.class);\r\n+        kryo.register(Calendar.class);\r\n+        kryo.register(ConcurrentHashMap.class);\r\n+        kryo.register(SimpleDateFormat.class);\r\n+        kryo.register(GregorianCalendar.class);\r\n+        kryo.register(Vector.class);\r\n+        kryo.register(BitSet.class);\r\n+        kryo.register(StringBuffer.class);\r\n+        kryo.register(StringBuilder.class);\r\n+        kryo.register(Object.class);\r\n+        kryo.register(Object[].class);\r\n+        kryo.register(String[].class);\r\n+        kryo.register(byte[].class);\r\n+        kryo.register(char[].class);\r\n+        kryo.register(int[].class);\r\n+        kryo.register(float[].class);\r\n+        kryo.register(double[].class);\r\n+\r\n+        for (Class clazz : registrations) {\r\n+            kryo.register(clazz);\r\n+        }\r\n+\r\n+        SerializableClassRegistry.getRegisteredClasses().forEach((clazz, ser) -> {\r\n+            if (ser == null) {\r\n+                kryo.register(clazz);\r\n+            } else {\r\n+                kryo.register(clazz, (Serializer) ser);\r\n+            }\r\n+        });\r\n+\r\n+        return kryo;\r\n+    }\r\n+\r\n+    public void setRegistrationRequired(boolean registrationRequired) {\r\n+        this.registrationRequired = registrationRequired;\r\n+    }\r\n+\r\n+    public abstract void returnKryo(Kryo kryo);\r\n+\r\n+    public abstract Kryo getKryo();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/utils/PrototypeKryoFactory.java", "source2": "org/apache/dubbo/common/serialize/kryo/utils/PrototypeKryoFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.utils;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-\n-public class PrototypeKryoFactory extends AbstractKryoFactory {\n-\n-    @Override\n-    public void returnKryo(Kryo kryo) {\n-        // do nothing\n-    }\n-\n-    @Override\n-    public Kryo getKryo() {\n-        return create();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.utils;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+\r\n+public class PrototypeKryoFactory extends AbstractKryoFactory {\r\n+\r\n+    @Override\r\n+    public void returnKryo(Kryo kryo) {\r\n+        // do nothing\r\n+    }\r\n+\r\n+    @Override\r\n+    public Kryo getKryo() {\r\n+        return create();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/kryo/utils/ThreadLocalKryoFactory.java", "source2": "org/apache/dubbo/common/serialize/kryo/utils/ThreadLocalKryoFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.kryo.utils;\n-\n-import com.esotericsoftware.kryo.Kryo;\n-\n-public class ThreadLocalKryoFactory extends AbstractKryoFactory {\n-\n-    private final ThreadLocal<Kryo> holder = new ThreadLocal<Kryo>() {\n-        @Override\n-        protected Kryo initialValue() {\n-            return create();\n-        }\n-    };\n-\n-    @Override\n-    public void returnKryo(Kryo kryo) {\n-        // do nothing\n-    }\n-\n-    @Override\n-    public Kryo getKryo() {\n-        return holder.get();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.kryo.utils;\r\n+\r\n+import com.esotericsoftware.kryo.Kryo;\r\n+\r\n+public class ThreadLocalKryoFactory extends AbstractKryoFactory {\r\n+\r\n+    private final ThreadLocal<Kryo> holder = new ThreadLocal<Kryo>() {\r\n+        @Override\r\n+        protected Kryo initialValue() {\r\n+            return create();\r\n+        }\r\n+    };\r\n+\r\n+    @Override\r\n+    public void returnKryo(Kryo kryo) {\r\n+        // do nothing\r\n+    }\r\n+\r\n+    @Override\r\n+    public Kryo getKryo() {\r\n+        return holder.get();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/nativejava/NativeJavaSerialization.java", "source2": "org/apache/dubbo/common/serialize/nativejava/NativeJavaSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.nativejava;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.NATIVE_JAVA_SERIALIZATION_ID;\n-\n-/**\n- * Native java serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"nativejava\" /&gt;\n- * </pre>\n- */\n-public class NativeJavaSerialization implements Serialization {\n-\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return NATIVE_JAVA_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/nativejava\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\n-        return new NativeJavaObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\n-        return new NativeJavaObjectInput(input);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.nativejava;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.NATIVE_JAVA_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Native java serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"nativejava\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class NativeJavaSerialization implements Serialization {\r\n+\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return NATIVE_JAVA_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/nativejava\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\r\n+        return new NativeJavaObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\r\n+        return new NativeJavaObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,164 +1,164 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.BufferedReader;\n-import java.io.EOFException;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.InputStreamReader;\n-import java.lang.reflect.Type;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object input implementation\n- */\n-public class GenericProtobufJsonObjectInput implements ObjectInput {\n-    private final BufferedReader reader;\n-\n-    public GenericProtobufJsonObjectInput(InputStream in) {\n-        this.reader = new BufferedReader(new InputStreamReader(in));\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(BoolValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(Int64Value.class).getValue();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(FloatValue.class).getValue();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(DoubleValue.class).getValue();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(StringValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return read(BytesValue.class).getValue().toByteArray();\n-    }\n-\n-    @Override\n-    public Object readObject() {\n-        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException {\n-        return readObject(cls);\n-    }\n-\n-    private String readLine() throws IOException {\n-        String line = reader.readLine();\n-        if (line == null || line.trim().length() == 0) {\n-            throw new EOFException();\n-        }\n-        return line;\n-    }\n-\n-    private <T> T read(Class<T> cls) throws IOException {\n-        if (!ProtobufUtils.isSupported(cls)) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf entity, the class is :\" + cls.getName());\n-        }\n-\n-        String json = readLine();\n-        return ProtobufUtils.deserializeJson(json, cls);\n-    }\n-\n-    @Override\n-    public Throwable readThrowable() throws IOException {\n-        String json = readLine();\n-        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserializeJson(json, ThrowablePB.ThrowableProto.class);\n-        return ProtobufUtils.convertToException(throwableProto);\n-    }\n-\n-    /**\n-     * FIXME, only supports transmission of String values.\n-     *\n-     * @return\n-     * @throws IOException\n-     * @throws ClassNotFoundException\n-     */\n-    @Override\n-    public Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\n-        String json = readLine();\n-        Map<String, String> attachments = ProtobufUtils.deserializeJson(json, MapValue.Map.class).getAttachmentsMap();\n-        Map<String, Object> genericAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> {\n-            genericAttachments.put(k, v);\n-        });\n-        return genericAttachments;\n-    }\n-\n-    @Override\n-    public Object readEvent() throws IOException, ClassNotFoundException {\n-        String eventData = readUTF();\n-        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\n-            eventData = HEARTBEAT_EVENT;\n-        }\n-        return eventData;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.BufferedReader;\r\n+import java.io.EOFException;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.InputStreamReader;\r\n+import java.lang.reflect.Type;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object input implementation\r\n+ */\r\n+public class GenericProtobufJsonObjectInput implements ObjectInput {\r\n+    private final BufferedReader reader;\r\n+\r\n+    public GenericProtobufJsonObjectInput(InputStream in) {\r\n+        this.reader = new BufferedReader(new InputStreamReader(in));\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(BoolValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(Int64Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(FloatValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(DoubleValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(StringValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return read(BytesValue.class).getValue().toByteArray();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() {\r\n+        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+    private String readLine() throws IOException {\r\n+        String line = reader.readLine();\r\n+        if (line == null || line.trim().length() == 0) {\r\n+            throw new EOFException();\r\n+        }\r\n+        return line;\r\n+    }\r\n+\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        if (!ProtobufUtils.isSupported(cls)) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf entity, the class is :\" + cls.getName());\r\n+        }\r\n+\r\n+        String json = readLine();\r\n+        return ProtobufUtils.deserializeJson(json, cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable readThrowable() throws IOException {\r\n+        String json = readLine();\r\n+        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserializeJson(json, ThrowablePB.ThrowableProto.class);\r\n+        return ProtobufUtils.convertToException(throwableProto);\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME, only supports transmission of String values.\r\n+     *\r\n+     * @return\r\n+     * @throws IOException\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    @Override\r\n+    public Map<String, Object> readAttachments() throws IOException, ClassNotFoundException {\r\n+        String json = readLine();\r\n+        Map<String, String> attachments = ProtobufUtils.deserializeJson(json, MapValue.Map.class).getAttachmentsMap();\r\n+        Map<String, Object> genericAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> {\r\n+            genericAttachments.put(k, v);\r\n+        });\r\n+        return genericAttachments;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readEvent() throws IOException, ClassNotFoundException {\r\n+        String eventData = readUTF();\r\n+        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\r\n+            eventData = HEARTBEAT_EVENT;\r\n+        }\r\n+        return eventData;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.ByteString;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.io.OutputStreamWriter;\n-import java.io.PrintWriter;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object output implementation\n- */\n-public class GenericProtobufJsonObjectOutput implements ObjectOutput {\n-\n-    private final PrintWriter writer;\n-\n-    public GenericProtobufJsonObjectOutput(OutputStream out) {\n-        this.writer = new PrintWriter(new OutputStreamWriter(out));\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-\n-        writeObject(BoolValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue((v)).build());\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        writeObject(Int64Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        writeObject(FloatValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        writeObject(DoubleValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        writeObject(StringValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\n-    }\n-\n-\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        if (obj == null) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object is : null\");\n-        }\n-        if (!ProtobufUtils.isSupported(obj.getClass())) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object class is: \" + obj.getClass().getName());\n-        }\n-\n-        writer.write(ProtobufUtils.serializeJson(obj));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void writeThrowable(Object th) throws IOException {\n-        if (th instanceof Throwable && !ProtobufUtils.isSupported(th.getClass())) {\n-            th = ProtobufUtils.convertToThrowableProto((Throwable) th);\n-        }\n-        writer.write(ProtobufUtils.serializeJson(th));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void writeEvent(Object data) throws IOException {\n-        if (data == HEARTBEAT_EVENT) {\n-            data = MOCK_HEARTBEAT_EVENT;\n-        }\n-        writeUTF((String) data);\n-    }\n-\n-    /**\n-     * FIXME, only supports transmission of String values.\n-     *\n-     * @param attachments\n-     * @throws IOException\n-     */\n-    @Override\n-    public void writeAttachments(Map<String, Object> attachments) throws IOException {\n-        if (attachments == null) {\n-            return;\n-        }\n-\n-        Map<String, String> stringAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\n-        MapValue.Map proto = MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build();\n-        writer.write(ProtobufUtils.serializeJson(proto));\n-        writer.println();\n-        writer.flush();\n-    }\n-\n-    @Override\n-    public void flushBuffer() {\n-        writer.flush();\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.ByteString;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.io.OutputStreamWriter;\r\n+import java.io.PrintWriter;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object output implementation\r\n+ */\r\n+public class GenericProtobufJsonObjectOutput implements ObjectOutput {\r\n+\r\n+    private final PrintWriter writer;\r\n+\r\n+    public GenericProtobufJsonObjectOutput(OutputStream out) {\r\n+        this.writer = new PrintWriter(new OutputStreamWriter(out));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+\r\n+        writeObject(BoolValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue((v)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        writeObject(Int64Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        writeObject(FloatValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        writeObject(DoubleValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        writeObject(StringValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        if (obj == null) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object is : null\");\r\n+        }\r\n+        if (!ProtobufUtils.isSupported(obj.getClass())) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf object, the object class is: \" + obj.getClass().getName());\r\n+        }\r\n+\r\n+        writer.write(ProtobufUtils.serializeJson(obj));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeThrowable(Object th) throws IOException {\r\n+        if (th instanceof Throwable && !ProtobufUtils.isSupported(th.getClass())) {\r\n+            th = ProtobufUtils.convertToThrowableProto((Throwable) th);\r\n+        }\r\n+        writer.write(ProtobufUtils.serializeJson(th));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeEvent(Object data) throws IOException {\r\n+        if (data == HEARTBEAT_EVENT) {\r\n+            data = MOCK_HEARTBEAT_EVENT;\r\n+        }\r\n+        writeUTF((String) data);\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME, only supports transmission of String values.\r\n+     *\r\n+     * @param attachments\r\n+     * @throws IOException\r\n+     */\r\n+    @Override\r\n+    public void writeAttachments(Map<String, Object> attachments) throws IOException {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, String> stringAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\r\n+        MapValue.Map proto = MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build();\r\n+        writer.write(ProtobufUtils.serializeJson(proto));\r\n+        writer.println();\r\n+        writer.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() {\r\n+        writer.flush();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufJsonSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.PROTOBUF_JSON_SERIALIZATION_ID;\n-\n-/**\n- * This serialization is use for google protobuf generic reference.\n- * The entity be transported between client and server by json string.\n- */\n-public class GenericProtobufJsonSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return PROTOBUF_JSON_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) {\n-        return new GenericProtobufJsonObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) {\n-        return new GenericProtobufJsonObjectInput(input);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.PROTOBUF_JSON_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * This serialization is use for google protobuf generic reference.\r\n+ * The entity be transported between client and server by json string.\r\n+ */\r\n+public class GenericProtobufJsonSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return PROTOBUF_JSON_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) {\r\n+        return new GenericProtobufJsonObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) {\r\n+        return new GenericProtobufJsonObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,146 +1,146 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.lang.reflect.Type;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-public class GenericProtobufObjectInput implements ObjectInput {\n-    private final InputStream is;\n-\n-    public GenericProtobufObjectInput(InputStream is) {\n-        this.is = is;\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return read(BoolValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return read(Int32Value.class).getValue();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return read(Int64Value.class).getValue();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return read(FloatValue.class).getValue();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return read(DoubleValue.class).getValue();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return read(StringValue.class).getValue();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return read(BytesValue.class).getValue().toByteArray();\n-    }\n-\n-    /**\n-     * Avoid using readObject, always try to pass the target class type for the data you want to read.\n-     *\n-     * @return\n-     */\n-    @Override\n-    public Object readObject() {\n-        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls) throws IOException {\n-        return read(cls);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException {\n-        return readObject(cls);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private <T> T read(Class<T> cls) throws IOException {\n-        if (!ProtobufUtils.isSupported(cls)) {\n-            throw new IllegalArgumentException(\"This serialization only support google protobuf messages, but the actual input type is :\" + cls.getName());\n-        }\n-\n-        return ProtobufUtils.deserialize(is, cls);\n-    }\n-\n-    @Override\n-    public Throwable readThrowable() throws IOException {\n-        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserialize(is, ThrowablePB.ThrowableProto.class);\n-        return ProtobufUtils.convertToException(throwableProto);\n-    }\n-\n-    @Override\n-    public Object readEvent() throws IOException {\n-        String eventData = readUTF();\n-        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\n-            eventData = HEARTBEAT_EVENT;\n-        }\n-        return eventData;\n-    }\n-\n-    @Override\n-    public Map<String, Object> readAttachments() throws IOException {\n-        Map<String, String> stringAttachments = ProtobufUtils.deserialize(is, MapValue.Map.class).getAttachmentsMap();\n-        Map<String, Object> attachments = new HashMap<>();\n-\n-        if (stringAttachments != null) {\n-            stringAttachments.forEach((k, v) -> attachments.put(k, v));\n-        }\n-        return attachments;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.lang.reflect.Type;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+public class GenericProtobufObjectInput implements ObjectInput {\r\n+    private final InputStream is;\r\n+\r\n+    public GenericProtobufObjectInput(InputStream is) {\r\n+        this.is = is;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return read(BoolValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return read(Int32Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return read(Int64Value.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return read(FloatValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return read(DoubleValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return read(StringValue.class).getValue();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return read(BytesValue.class).getValue().toByteArray();\r\n+    }\r\n+\r\n+    /**\r\n+     * Avoid using readObject, always try to pass the target class type for the data you want to read.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public Object readObject() {\r\n+        throw new UnsupportedOperationException(\"Provide the protobuf message type you want to read.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls) throws IOException {\r\n+        return read(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private <T> T read(Class<T> cls) throws IOException {\r\n+        if (!ProtobufUtils.isSupported(cls)) {\r\n+            throw new IllegalArgumentException(\"This serialization only support google protobuf messages, but the actual input type is :\" + cls.getName());\r\n+        }\r\n+\r\n+        return ProtobufUtils.deserialize(is, cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable readThrowable() throws IOException {\r\n+        ThrowablePB.ThrowableProto throwableProto = ProtobufUtils.deserialize(is, ThrowablePB.ThrowableProto.class);\r\n+        return ProtobufUtils.convertToException(throwableProto);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readEvent() throws IOException {\r\n+        String eventData = readUTF();\r\n+        if (eventData.equals(MOCK_HEARTBEAT_EVENT)) {\r\n+            eventData = HEARTBEAT_EVENT;\r\n+        }\r\n+        return eventData;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Object> readAttachments() throws IOException {\r\n+        Map<String, String> stringAttachments = ProtobufUtils.deserialize(is, MapValue.Map.class).getAttachmentsMap();\r\n+        Map<String, Object> attachments = new HashMap<>();\r\n+\r\n+        if (stringAttachments != null) {\r\n+            stringAttachments.forEach((k, v) -> attachments.put(k, v));\r\n+        }\r\n+        return attachments;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,157 +1,157 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.ByteString;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.MessageLite;\n-import com.google.protobuf.StringValue;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\n-\n-/**\n- * GenericGoogleProtobuf object output implementation\n- */\n-public class GenericProtobufObjectOutput implements ObjectOutput {\n-\n-    private final OutputStream os;\n-\n-    public GenericProtobufObjectOutput(OutputStream os) {\n-        this.os = os;\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-\n-        writeObject(BoolValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue((v)).build());\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        writeObject(Int32Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        writeObject(Int64Value.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        writeObject(FloatValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        writeObject(DoubleValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        writeObject(StringValue.newBuilder().setValue(v).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        /**\n-         * Protobuf does not allow writing of non-protobuf generated messages, including null value.\n-         * Writing of null value from developers should be denied immediately by throwing exception.\n-         */\n-        if (obj == null) {\n-            throw new IllegalStateException(\"This serialization only supports google protobuf objects, \" +\n-                    \"please use com.google.protobuf.Empty instead if you want to transmit null values.\");\n-            // obj = ProtobufUtils.convertNullToEmpty();\n-        }\n-        if (!ProtobufUtils.isSupported(obj.getClass())) {\n-            throw new IllegalArgumentException(\"This serialization only supports google protobuf objects, current object class is: \" + obj.getClass().getName());\n-        }\n-\n-        ProtobufUtils.serialize(obj, os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void writeEvent(Object data) throws IOException {\n-        if (data == HEARTBEAT_EVENT) {\n-            data = MOCK_HEARTBEAT_EVENT;\n-        }\n-        writeUTF((String) data);\n-    }\n-\n-    @Override\n-    public void writeThrowable(Object obj) throws IOException {\n-        if (obj instanceof Throwable && !(obj instanceof MessageLite)) {\n-            obj = ProtobufUtils.convertToThrowableProto((Throwable) obj);\n-        }\n-        ProtobufUtils.serialize(obj, os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void writeAttachments(Map<String, Object> attachments) throws IOException {\n-        if (attachments == null) {\n-            return;\n-        }\n-\n-        Map<String, String> stringAttachments = new HashMap<>();\n-        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\n-\n-        ProtobufUtils.serialize(MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build(), os);\n-        os.flush();\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        os.flush();\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.ByteString;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.MessageLite;\r\n+import com.google.protobuf.StringValue;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MOCK_HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * GenericGoogleProtobuf object output implementation\r\n+ */\r\n+public class GenericProtobufObjectOutput implements ObjectOutput {\r\n+\r\n+    private final OutputStream os;\r\n+\r\n+    public GenericProtobufObjectOutput(OutputStream os) {\r\n+        this.os = os;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+\r\n+        writeObject(BoolValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue((v)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        writeObject(Int32Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        writeObject(Int64Value.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        writeObject(FloatValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        writeObject(DoubleValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        writeObject(StringValue.newBuilder().setValue(v).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b)).build());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        writeObject(BytesValue.newBuilder().setValue(ByteString.copyFrom(b, off, len)).build());\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        /**\r\n+         * Protobuf does not allow writing of non-protobuf generated messages, including null value.\r\n+         * Writing of null value from developers should be denied immediately by throwing exception.\r\n+         */\r\n+        if (obj == null) {\r\n+            throw new IllegalStateException(\"This serialization only supports google protobuf objects, \" +\r\n+                    \"please use com.google.protobuf.Empty instead if you want to transmit null values.\");\r\n+            // obj = ProtobufUtils.convertNullToEmpty();\r\n+        }\r\n+        if (!ProtobufUtils.isSupported(obj.getClass())) {\r\n+            throw new IllegalArgumentException(\"This serialization only supports google protobuf objects, current object class is: \" + obj.getClass().getName());\r\n+        }\r\n+\r\n+        ProtobufUtils.serialize(obj, os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeEvent(Object data) throws IOException {\r\n+        if (data == HEARTBEAT_EVENT) {\r\n+            data = MOCK_HEARTBEAT_EVENT;\r\n+        }\r\n+        writeUTF((String) data);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeThrowable(Object obj) throws IOException {\r\n+        if (obj instanceof Throwable && !(obj instanceof MessageLite)) {\r\n+            obj = ProtobufUtils.convertToThrowableProto((Throwable) obj);\r\n+        }\r\n+        ProtobufUtils.serialize(obj, os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeAttachments(Map<String, Object> attachments) throws IOException {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, String> stringAttachments = new HashMap<>();\r\n+        attachments.forEach((k, v) -> stringAttachments.put(k, (String) v));\r\n+\r\n+        ProtobufUtils.serialize(MapValue.Map.newBuilder().putAllAttachments(stringAttachments).build(), os);\r\n+        os.flush();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        os.flush();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/GenericProtobufSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.Constants;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * <p>\n- * Currently, the Dubbo protocol / framework data, such as attachments, event data, etc.,\n- * depends on business layer serialization protocol to do serialization before transmitted.\n- * That's a problem when using Protobuf as business serialization protocol, because Protobuf does not support raw java Object types,\n- * to solve it, we can use one of the following methods:\n- *\n- * <ul>\n- *     <li>1. Package these data with Protobuf so that they can be serialized.</li>\n- *     <li>2. Separate the serialization of Dubbo protocol/framework and the service args (easy to cross-platform, cross-language serialization) to avoid the binding of this part and serialization protocol.</li>\n- * </ul>\n- *\n- * </p>\n- */\n-public class GenericProtobufSerialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return Constants.PROTOBUF_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"text/json\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) {\n-        return new GenericProtobufObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) {\n-        return new GenericProtobufObjectInput(input);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.Constants;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * <p>\r\n+ * Currently, the Dubbo protocol / framework data, such as attachments, event data, etc.,\r\n+ * depends on business layer serialization protocol to do serialization before transmitted.\r\n+ * That's a problem when using Protobuf as business serialization protocol, because Protobuf does not support raw java Object types,\r\n+ * to solve it, we can use one of the following methods:\r\n+ *\r\n+ * <ul>\r\n+ *     <li>1. Package these data with Protobuf so that they can be serialized.</li>\r\n+ *     <li>2. Separate the serialization of Dubbo protocol/framework and the service args (easy to cross-platform, cross-language serialization) to avoid the binding of this part and serialization protocol.</li>\r\n+ * </ul>\r\n+ *\r\n+ * </p>\r\n+ */\r\n+public class GenericProtobufSerialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return Constants.PROTOBUF_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"text/json\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) {\r\n+        return new GenericProtobufObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) {\r\n+        return new GenericProtobufObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,206 +1,206 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\n-\n-import com.google.common.base.Strings;\n-import com.google.protobuf.BoolValue;\n-import com.google.protobuf.BytesValue;\n-import com.google.protobuf.CodedInputStream;\n-import com.google.protobuf.DoubleValue;\n-import com.google.protobuf.Empty;\n-import com.google.protobuf.ExtensionRegistryLite;\n-import com.google.protobuf.FloatValue;\n-import com.google.protobuf.GeneratedMessageV3.Builder;\n-import com.google.protobuf.Int32Value;\n-import com.google.protobuf.Int64Value;\n-import com.google.protobuf.InvalidProtocolBufferException;\n-import com.google.protobuf.MessageLite;\n-import com.google.protobuf.MessageOrBuilder;\n-import com.google.protobuf.Parser;\n-import com.google.protobuf.StringValue;\n-import com.google.protobuf.util.JsonFormat;\n-import com.google.protobuf.util.JsonFormat.Printer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.lang.reflect.Method;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class ProtobufUtils {\n-\n-    static boolean isSupported(Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-\n-        if (MessageLite.class.isAssignableFrom(clazz)) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    /* Protobuf json */\n-\n-    static <T> T deserializeJson(String json, Class<T> requestClass) throws InvalidProtocolBufferException {\n-        Builder builder;\n-        try {\n-            builder = getMessageBuilder(requestClass);\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Get google protobuf message builder from \" + requestClass.getName() + \"failed\", e);\n-        }\n-        JsonFormat.parser().merge(json, builder);\n-        return (T) builder.build();\n-    }\n-\n-    static String serializeJson(Object value) throws InvalidProtocolBufferException {\n-        Printer printer = JsonFormat.printer().omittingInsignificantWhitespace();\n-        return printer.print((MessageOrBuilder) value);\n-    }\n-\n-    private static Builder getMessageBuilder(Class<?> requestType) throws Exception {\n-        Method method = requestType.getMethod(\"newBuilder\");\n-        return (Builder) method.invoke(null, null);\n-    }\n-\n-\n-    /* Protobuf */\n-\n-    private static ConcurrentMap<Class<? extends MessageLite>, MessageMarshaller> marshallers =\n-            new ConcurrentHashMap<>();\n-\n-    private static volatile ExtensionRegistryLite globalRegistry =\n-            ExtensionRegistryLite.getEmptyRegistry();\n-\n-    static {\n-        // Built-in types need to be registered in advance\n-        marshaller(MapValue.Map.getDefaultInstance());\n-        marshaller(Empty.getDefaultInstance());\n-        marshaller(ThrowableProto.getDefaultInstance());\n-        marshaller(BoolValue.getDefaultInstance());\n-        marshaller(Int32Value.getDefaultInstance());\n-        marshaller(Int64Value.getDefaultInstance());\n-        marshaller(FloatValue.getDefaultInstance());\n-        marshaller(DoubleValue.getDefaultInstance());\n-        marshaller(BytesValue.getDefaultInstance());\n-        marshaller(StringValue.getDefaultInstance());\n-    }\n-\n-    public static <T extends MessageLite> void marshaller(T defaultInstance) {\n-        marshallers.put(defaultInstance.getClass(), new MessageMarshaller<>(defaultInstance));\n-    }\n-\n-    static void serialize(Object value, OutputStream os) throws IOException {\n-        MessageLite messageLite = (MessageLite) value;\n-        messageLite.writeDelimitedTo(os);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    static <T> T deserialize(InputStream is, Class<T> requestClass) throws InvalidProtocolBufferException {\n-        MessageMarshaller<?> marshaller = marshallers.get(requestClass);\n-        if (marshaller == null) {\n-            throw new IllegalStateException(String.format(\"Protobuf classes should be registered in advance before \" +\n-                    \"do serialization, class name: %s\", requestClass.getName()));\n-        }\n-        return (T) marshaller.parse(is);\n-    }\n-\n-    public static Empty convertNullToEmpty() {\n-        return Empty.newBuilder().build();\n-    }\n-\n-    public static Object convertEmptyToNull(Empty empty) {\n-        return null;\n-    }\n-\n-    public static ThrowableProto convertToThrowableProto(Throwable throwable) {\n-        final ThrowableProto.Builder builder = ThrowableProto.newBuilder();\n-        builder.setOriginalClassName(throwable.getClass().getCanonicalName());\n-        builder.setOriginalMessage(Strings.nullToEmpty(throwable.getMessage()));\n-\n-        for (StackTraceElement e : throwable.getStackTrace()) {\n-            builder.addStackTrace(toStackTraceElement(e));\n-        }\n-\n-        if (throwable.getCause() != null) {\n-            builder.setCause(convertToThrowableProto(throwable.getCause()));\n-        }\n-        return builder.build();\n-    }\n-\n-    public static Throwable convertToException(ThrowableProto throwableProto) {\n-        return new ProtobufWrappedException(throwableProto);\n-    }\n-\n-    private static StackTraceElementProto toStackTraceElement(StackTraceElement element) {\n-        final StackTraceElementProto.Builder builder =\n-                StackTraceElementProto.newBuilder()\n-                        .setClassName(element.getClassName())\n-                        .setMethodName(element.getMethodName())\n-                        .setLineNumber(element.getLineNumber());\n-        if (element.getFileName() != null) {\n-            builder.setFileName(element.getFileName());\n-        }\n-        return builder.build();\n-    }\n-\n-    private static final class MessageMarshaller<T extends MessageLite> {\n-        private final Parser<T> parser;\n-        private final T defaultInstance;\n-\n-        @SuppressWarnings(\"unchecked\")\n-        MessageMarshaller(T defaultInstance) {\n-            this.defaultInstance = defaultInstance;\n-            parser = (Parser<T>) defaultInstance.getParserForType();\n-        }\n-\n-        @SuppressWarnings(\"unchecked\")\n-        public Class<T> getMessageClass() {\n-            // Precisely T since protobuf doesn't let messages extend other messages.\n-            return (Class<T>) defaultInstance.getClass();\n-        }\n-\n-        public T getMessagePrototype() {\n-            return defaultInstance;\n-        }\n-\n-        public T parse(InputStream stream) throws InvalidProtocolBufferException {\n-            return parser.parseDelimitedFrom(stream, globalRegistry);\n-//            CodedInputStream cis = CodedInputStream.newInstance(stream);\n-//            // Pre-create the CodedInputStream so that we can remove the size limit restriction\n-//            // when parsing.\n-//            cis.setSizeLimit(Integer.MAX_VALUE);\n-//            return parseFrom(cis);\n-        }\n-\n-        private T parseFrom(CodedInputStream stream) throws InvalidProtocolBufferException {\n-            T message = parser.parseFrom(stream, globalRegistry);\n-            try {\n-                stream.checkLastTagWas(0);\n-                return message;\n-            } catch (InvalidProtocolBufferException e) {\n-                e.setUnfinishedMessage(message);\n-                throw e;\n-            }\n-        }\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.MapValue;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\r\n+\r\n+import com.google.common.base.Strings;\r\n+import com.google.protobuf.BoolValue;\r\n+import com.google.protobuf.BytesValue;\r\n+import com.google.protobuf.CodedInputStream;\r\n+import com.google.protobuf.DoubleValue;\r\n+import com.google.protobuf.Empty;\r\n+import com.google.protobuf.ExtensionRegistryLite;\r\n+import com.google.protobuf.FloatValue;\r\n+import com.google.protobuf.GeneratedMessageV3.Builder;\r\n+import com.google.protobuf.Int32Value;\r\n+import com.google.protobuf.Int64Value;\r\n+import com.google.protobuf.InvalidProtocolBufferException;\r\n+import com.google.protobuf.MessageLite;\r\n+import com.google.protobuf.MessageOrBuilder;\r\n+import com.google.protobuf.Parser;\r\n+import com.google.protobuf.StringValue;\r\n+import com.google.protobuf.util.JsonFormat;\r\n+import com.google.protobuf.util.JsonFormat.Printer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.lang.reflect.Method;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class ProtobufUtils {\r\n+\r\n+    static boolean isSupported(Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (MessageLite.class.isAssignableFrom(clazz)) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /* Protobuf json */\r\n+\r\n+    static <T> T deserializeJson(String json, Class<T> requestClass) throws InvalidProtocolBufferException {\r\n+        Builder builder;\r\n+        try {\r\n+            builder = getMessageBuilder(requestClass);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Get google protobuf message builder from \" + requestClass.getName() + \"failed\", e);\r\n+        }\r\n+        JsonFormat.parser().merge(json, builder);\r\n+        return (T) builder.build();\r\n+    }\r\n+\r\n+    static String serializeJson(Object value) throws InvalidProtocolBufferException {\r\n+        Printer printer = JsonFormat.printer().omittingInsignificantWhitespace();\r\n+        return printer.print((MessageOrBuilder) value);\r\n+    }\r\n+\r\n+    private static Builder getMessageBuilder(Class<?> requestType) throws Exception {\r\n+        Method method = requestType.getMethod(\"newBuilder\");\r\n+        return (Builder) method.invoke(null, null);\r\n+    }\r\n+\r\n+\r\n+    /* Protobuf */\r\n+\r\n+    private static ConcurrentMap<Class<? extends MessageLite>, MessageMarshaller> marshallers =\r\n+            new ConcurrentHashMap<>();\r\n+\r\n+    private static volatile ExtensionRegistryLite globalRegistry =\r\n+            ExtensionRegistryLite.getEmptyRegistry();\r\n+\r\n+    static {\r\n+        // Built-in types need to be registered in advance\r\n+        marshaller(MapValue.Map.getDefaultInstance());\r\n+        marshaller(Empty.getDefaultInstance());\r\n+        marshaller(ThrowableProto.getDefaultInstance());\r\n+        marshaller(BoolValue.getDefaultInstance());\r\n+        marshaller(Int32Value.getDefaultInstance());\r\n+        marshaller(Int64Value.getDefaultInstance());\r\n+        marshaller(FloatValue.getDefaultInstance());\r\n+        marshaller(DoubleValue.getDefaultInstance());\r\n+        marshaller(BytesValue.getDefaultInstance());\r\n+        marshaller(StringValue.getDefaultInstance());\r\n+    }\r\n+\r\n+    public static <T extends MessageLite> void marshaller(T defaultInstance) {\r\n+        marshallers.put(defaultInstance.getClass(), new MessageMarshaller<>(defaultInstance));\r\n+    }\r\n+\r\n+    static void serialize(Object value, OutputStream os) throws IOException {\r\n+        MessageLite messageLite = (MessageLite) value;\r\n+        messageLite.writeDelimitedTo(os);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    static <T> T deserialize(InputStream is, Class<T> requestClass) throws InvalidProtocolBufferException {\r\n+        MessageMarshaller<?> marshaller = marshallers.get(requestClass);\r\n+        if (marshaller == null) {\r\n+            throw new IllegalStateException(String.format(\"Protobuf classes should be registered in advance before \" +\r\n+                    \"do serialization, class name: %s\", requestClass.getName()));\r\n+        }\r\n+        return (T) marshaller.parse(is);\r\n+    }\r\n+\r\n+    public static Empty convertNullToEmpty() {\r\n+        return Empty.newBuilder().build();\r\n+    }\r\n+\r\n+    public static Object convertEmptyToNull(Empty empty) {\r\n+        return null;\r\n+    }\r\n+\r\n+    public static ThrowableProto convertToThrowableProto(Throwable throwable) {\r\n+        final ThrowableProto.Builder builder = ThrowableProto.newBuilder();\r\n+        builder.setOriginalClassName(throwable.getClass().getCanonicalName());\r\n+        builder.setOriginalMessage(Strings.nullToEmpty(throwable.getMessage()));\r\n+\r\n+        for (StackTraceElement e : throwable.getStackTrace()) {\r\n+            builder.addStackTrace(toStackTraceElement(e));\r\n+        }\r\n+\r\n+        if (throwable.getCause() != null) {\r\n+            builder.setCause(convertToThrowableProto(throwable.getCause()));\r\n+        }\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    public static Throwable convertToException(ThrowableProto throwableProto) {\r\n+        return new ProtobufWrappedException(throwableProto);\r\n+    }\r\n+\r\n+    private static StackTraceElementProto toStackTraceElement(StackTraceElement element) {\r\n+        final StackTraceElementProto.Builder builder =\r\n+                StackTraceElementProto.newBuilder()\r\n+                        .setClassName(element.getClassName())\r\n+                        .setMethodName(element.getMethodName())\r\n+                        .setLineNumber(element.getLineNumber());\r\n+        if (element.getFileName() != null) {\r\n+            builder.setFileName(element.getFileName());\r\n+        }\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    private static final class MessageMarshaller<T extends MessageLite> {\r\n+        private final Parser<T> parser;\r\n+        private final T defaultInstance;\r\n+\r\n+        @SuppressWarnings(\"unchecked\")\r\n+        MessageMarshaller(T defaultInstance) {\r\n+            this.defaultInstance = defaultInstance;\r\n+            parser = (Parser<T>) defaultInstance.getParserForType();\r\n+        }\r\n+\r\n+        @SuppressWarnings(\"unchecked\")\r\n+        public Class<T> getMessageClass() {\r\n+            // Precisely T since protobuf doesn't let messages extend other messages.\r\n+            return (Class<T>) defaultInstance.getClass();\r\n+        }\r\n+\r\n+        public T getMessagePrototype() {\r\n+            return defaultInstance;\r\n+        }\r\n+\r\n+        public T parse(InputStream stream) throws InvalidProtocolBufferException {\r\n+            return parser.parseDelimitedFrom(stream, globalRegistry);\r\n+//            CodedInputStream cis = CodedInputStream.newInstance(stream);\r\n+//            // Pre-create the CodedInputStream so that we can remove the size limit restriction\r\n+//            // when parsing.\r\n+//            cis.setSizeLimit(Integer.MAX_VALUE);\r\n+//            return parseFrom(cis);\r\n+        }\r\n+\r\n+        private T parseFrom(CodedInputStream stream) throws InvalidProtocolBufferException {\r\n+            T message = parser.parseFrom(stream, globalRegistry);\r\n+            try {\r\n+                stream.checkLastTagWas(0);\r\n+                return message;\r\n+            } catch (InvalidProtocolBufferException e) {\r\n+                e.setUnfinishedMessage(message);\r\n+                throw e;\r\n+            }\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/ProtobufWrappedException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,68 +1,68 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protobuf.support;\n-\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\n-import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\n-\n-import com.google.common.base.Strings;\n-\n-/**\n- * For protobuf, all server side exceptions should be wrapped using this specific one.\n- */\n-public class ProtobufWrappedException extends RuntimeException {\n-\n-    private static final long serialVersionUID = -1792808536714102039L;\n-\n-    private String originalClassName;\n-    private String originalMessage;\n-\n-    public ProtobufWrappedException(ThrowableProto throwableProto) {\n-        super(throwableProto.getOriginalClassName() + \": \" + throwableProto.getOriginalMessage());\n-\n-        originalClassName = throwableProto.getOriginalClassName();\n-        originalMessage = throwableProto.getOriginalMessage();\n-\n-        if (throwableProto.getStackTraceCount() > 0) {\n-            setStackTrace(throwableProto.getStackTraceList().stream()\n-                    .map(ProtobufWrappedException::toStackTraceElement)\n-                    .toArray(StackTraceElement[]::new));\n-        }\n-\n-        if (throwableProto.hasCause()) {\n-            initCause(new ProtobufWrappedException(throwableProto.getCause()));\n-        }\n-    }\n-\n-    public String getOriginalClassName() {\n-        return originalClassName;\n-    }\n-\n-    public String getOriginalMessage() {\n-        return originalMessage;\n-    }\n-\n-    private static StackTraceElement toStackTraceElement(ThrowablePB.StackTraceElementProto proto) {\n-        return new StackTraceElement(\n-                proto.getClassName(),\n-                proto.getMethodName(),\n-                Strings.emptyToNull(proto.getFileName()),\n-                proto.getLineNumber());\n-    }\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protobuf.support;\r\n+\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB;\r\n+import org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto;\r\n+\r\n+import com.google.common.base.Strings;\r\n+\r\n+/**\r\n+ * For protobuf, all server side exceptions should be wrapped using this specific one.\r\n+ */\r\n+public class ProtobufWrappedException extends RuntimeException {\r\n+\r\n+    private static final long serialVersionUID = -1792808536714102039L;\r\n+\r\n+    private String originalClassName;\r\n+    private String originalMessage;\r\n+\r\n+    public ProtobufWrappedException(ThrowableProto throwableProto) {\r\n+        super(throwableProto.getOriginalClassName() + \": \" + throwableProto.getOriginalMessage());\r\n+\r\n+        originalClassName = throwableProto.getOriginalClassName();\r\n+        originalMessage = throwableProto.getOriginalMessage();\r\n+\r\n+        if (throwableProto.getStackTraceCount() > 0) {\r\n+            setStackTrace(throwableProto.getStackTraceList().stream()\r\n+                    .map(ProtobufWrappedException::toStackTraceElement)\r\n+                    .toArray(StackTraceElement[]::new));\r\n+        }\r\n+\r\n+        if (throwableProto.hasCause()) {\r\n+            initCause(new ProtobufWrappedException(throwableProto.getCause()));\r\n+        }\r\n+    }\r\n+\r\n+    public String getOriginalClassName() {\r\n+        return originalClassName;\r\n+    }\r\n+\r\n+    public String getOriginalMessage() {\r\n+        return originalMessage;\r\n+    }\r\n+\r\n+    private static StackTraceElement toStackTraceElement(ThrowablePB.StackTraceElementProto proto) {\r\n+        return new StackTraceElement(\r\n+                proto.getClassName(),\r\n+                proto.getMethodName(),\r\n+                Strings.emptyToNull(proto.getFileName()),\r\n+                proto.getLineNumber());\r\n+    }\r\n+\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java", "source2": "org/apache/dubbo/common/serialize/protobuf/support/wrapper/ThrowablePB.java", "unified_diff": "@@ -16,87 +16,88 @@\n   }\n   public interface StackTraceElementProtoOrBuilder extends\n       // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n       com.google.protobuf.MessageOrBuilder {\n \n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     java.lang.String getClassName();\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     com.google.protobuf.ByteString\n         getClassNameBytes();\n \n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     java.lang.String getMethodName();\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     com.google.protobuf.ByteString\n         getMethodNameBytes();\n \n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     java.lang.String getFileName();\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     com.google.protobuf.ByteString\n         getFileNameBytes();\n \n     /**\n      * <pre>\n-     * The line number of the source line containing the execution point represented\n-     * by this stack trace element, or a negative number if this information is\n-     * unavailable.\n+     * The line number of the source line containing the execution point represented\r\n+     * by this stack trace element, or a negative number if this information is\r\n+     * unavailable.\r\n      * </pre>\n      *\n      * <code>int32 line_number = 4;</code>\n      */\n     int getLineNumber();\n   }\n   /**\n    * <pre>\n-   * An element in a stack trace, based on the Java type of the same name.\n-   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n+   * An element in a stack trace, based on the Java type of the same name.\r\n+   *\r\n+   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n    * </pre>\n    *\n    * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto}\n    */\n   public  static final class StackTraceElementProto extends\n       com.google.protobuf.GeneratedMessageV3 implements\n       // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n@@ -191,16 +192,16 @@\n               org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.class, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder.class);\n     }\n \n     public static final int CLASS_NAME_FIELD_NUMBER = 1;\n     private volatile java.lang.Object className_;\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     public java.lang.String getClassName() {\n       java.lang.Object ref = className_;\n       if (ref instanceof java.lang.String) {\n@@ -211,16 +212,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         className_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The fully qualified name of the class containing the execution point\n-     * represented by the stack trace element.\n+     * The fully qualified name of the class containing the execution point\r\n+     * represented by the stack trace element.\r\n      * </pre>\n      *\n      * <code>string class_name = 1;</code>\n      */\n     public com.google.protobuf.ByteString\n         getClassNameBytes() {\n       java.lang.Object ref = className_;\n@@ -235,16 +236,16 @@\n       }\n     }\n \n     public static final int METHOD_NAME_FIELD_NUMBER = 2;\n     private volatile java.lang.Object methodName_;\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     public java.lang.String getMethodName() {\n       java.lang.Object ref = methodName_;\n       if (ref instanceof java.lang.String) {\n@@ -255,16 +256,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         methodName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the method containing the execution point represented by the\n-     * stack trace element\n+     * The name of the method containing the execution point represented by the\r\n+     * stack trace element\r\n      * </pre>\n      *\n      * <code>string method_name = 2;</code>\n      */\n     public com.google.protobuf.ByteString\n         getMethodNameBytes() {\n       java.lang.Object ref = methodName_;\n@@ -279,16 +280,16 @@\n       }\n     }\n \n     public static final int FILE_NAME_FIELD_NUMBER = 3;\n     private volatile java.lang.Object fileName_;\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     public java.lang.String getFileName() {\n       java.lang.Object ref = fileName_;\n       if (ref instanceof java.lang.String) {\n@@ -299,16 +300,16 @@\n         java.lang.String s = bs.toStringUtf8();\n         fileName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the file containing the execution point represented by the\n-     * stack trace element, or null if this information is unavailable.\n+     * The name of the file containing the execution point represented by the\r\n+     * stack trace element, or null if this information is unavailable.\r\n      * </pre>\n      *\n      * <code>string file_name = 3;</code>\n      */\n     public com.google.protobuf.ByteString\n         getFileNameBytes() {\n       java.lang.Object ref = fileName_;\n@@ -323,17 +324,17 @@\n       }\n     }\n \n     public static final int LINE_NUMBER_FIELD_NUMBER = 4;\n     private int lineNumber_;\n     /**\n      * <pre>\n-     * The line number of the source line containing the execution point represented\n-     * by this stack trace element, or a negative number if this information is\n-     * unavailable.\n+     * The line number of the source line containing the execution point represented\r\n+     * by this stack trace element, or a negative number if this information is\r\n+     * unavailable.\r\n      * </pre>\n      *\n      * <code>int32 line_number = 4;</code>\n      */\n     public int getLineNumber() {\n       return lineNumber_;\n     }\n@@ -521,16 +522,17 @@\n     protected Builder newBuilderForType(\n         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {\n       Builder builder = new Builder(parent);\n       return builder;\n     }\n     /**\n      * <pre>\n-     * An element in a stack trace, based on the Java type of the same name.\n-     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\n+     * An element in a stack trace, based on the Java type of the same name.\r\n+     *\r\n+     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/StackTraceElement.html\r\n      * </pre>\n      *\n      * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto}\n      */\n     public static final class Builder extends\n         com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements\n         // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto)\n@@ -695,16 +697,16 @@\n         }\n         return this;\n       }\n \n       private java.lang.Object className_ = \"\";\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public java.lang.String getClassName() {\n         java.lang.Object ref = className_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -715,16 +717,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public com.google.protobuf.ByteString\n           getClassNameBytes() {\n         java.lang.Object ref = className_;\n@@ -736,16 +738,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder setClassName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -754,30 +756,30 @@\n   \n         className_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder clearClassName() {\n         \n         className_ = getDefaultInstance().getClassName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The fully qualified name of the class containing the execution point\n-       * represented by the stack trace element.\n+       * The fully qualified name of the class containing the execution point\r\n+       * represented by the stack trace element.\r\n        * </pre>\n        *\n        * <code>string class_name = 1;</code>\n        */\n       public Builder setClassNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -789,16 +791,16 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object methodName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public java.lang.String getMethodName() {\n         java.lang.Object ref = methodName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -809,16 +811,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public com.google.protobuf.ByteString\n           getMethodNameBytes() {\n         java.lang.Object ref = methodName_;\n@@ -830,16 +832,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder setMethodName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -848,30 +850,30 @@\n   \n         methodName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder clearMethodName() {\n         \n         methodName_ = getDefaultInstance().getMethodName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the method containing the execution point represented by the\n-       * stack trace element\n+       * The name of the method containing the execution point represented by the\r\n+       * stack trace element\r\n        * </pre>\n        *\n        * <code>string method_name = 2;</code>\n        */\n       public Builder setMethodNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -883,16 +885,16 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object fileName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public java.lang.String getFileName() {\n         java.lang.Object ref = fileName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -903,16 +905,16 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public com.google.protobuf.ByteString\n           getFileNameBytes() {\n         java.lang.Object ref = fileName_;\n@@ -924,16 +926,16 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder setFileName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -942,30 +944,30 @@\n   \n         fileName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder clearFileName() {\n         \n         fileName_ = getDefaultInstance().getFileName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the file containing the execution point represented by the\n-       * stack trace element, or null if this information is unavailable.\n+       * The name of the file containing the execution point represented by the\r\n+       * stack trace element, or null if this information is unavailable.\r\n        * </pre>\n        *\n        * <code>string file_name = 3;</code>\n        */\n       public Builder setFileNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -977,44 +979,44 @@\n         onChanged();\n         return this;\n       }\n \n       private int lineNumber_ ;\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public int getLineNumber() {\n         return lineNumber_;\n       }\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public Builder setLineNumber(int value) {\n         \n         lineNumber_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The line number of the source line containing the execution point represented\n-       * by this stack trace element, or a negative number if this information is\n-       * unavailable.\n+       * The line number of the source line containing the execution point represented\r\n+       * by this stack trace element, or a negative number if this information is\r\n+       * unavailable.\r\n        * </pre>\n        *\n        * <code>int32 line_number = 4;</code>\n        */\n       public Builder clearLineNumber() {\n         \n         lineNumber_ = 0;\n@@ -1076,125 +1078,126 @@\n \n   public interface ThrowableProtoOrBuilder extends\n       // @@protoc_insertion_point(interface_extends:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n       com.google.protobuf.MessageOrBuilder {\n \n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     java.lang.String getOriginalClassName();\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     com.google.protobuf.ByteString\n         getOriginalClassNameBytes();\n \n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     java.lang.String getOriginalMessage();\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     com.google.protobuf.ByteString\n         getOriginalMessageBytes();\n \n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> \n         getStackTraceList();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index);\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     int getStackTraceCount();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n         getStackTraceOrBuilderList();\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n         int index);\n \n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     boolean hasCause();\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause();\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder();\n   }\n   /**\n    * <pre>\n-   * An exception that was thrown by some code, based on the Java type of the same name.\n-   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n+   * An exception that was thrown by some code, based on the Java type of the same name.\r\n+   *\r\n+   * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n    * </pre>\n    *\n    * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto}\n    */\n   public  static final class ThrowableProto extends\n       com.google.protobuf.GeneratedMessageV3 implements\n       // @@protoc_insertion_point(message_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n@@ -1304,17 +1307,17 @@\n     }\n \n     private int bitField0_;\n     public static final int ORIGINAL_CLASS_NAME_FIELD_NUMBER = 1;\n     private volatile java.lang.Object originalClassName_;\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     public java.lang.String getOriginalClassName() {\n       java.lang.Object ref = originalClassName_;\n       if (ref instanceof java.lang.String) {\n@@ -1325,17 +1328,17 @@\n         java.lang.String s = bs.toStringUtf8();\n         originalClassName_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The name of the class of the exception that was actually thrown. Downstream readers\n-     * of this message may or may not have the actual class available to initialize, so\n-     * this is just used to prefix the message of a generic exception type.\n+     * The name of the class of the exception that was actually thrown. Downstream readers\r\n+     * of this message may or may not have the actual class available to initialize, so\r\n+     * this is just used to prefix the message of a generic exception type.\r\n      * </pre>\n      *\n      * <code>string original_class_name = 1;</code>\n      */\n     public com.google.protobuf.ByteString\n         getOriginalClassNameBytes() {\n       java.lang.Object ref = originalClassName_;\n@@ -1350,15 +1353,15 @@\n       }\n     }\n \n     public static final int ORIGINAL_MESSAGE_FIELD_NUMBER = 2;\n     private volatile java.lang.Object originalMessage_;\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     public java.lang.String getOriginalMessage() {\n       java.lang.Object ref = originalMessage_;\n       if (ref instanceof java.lang.String) {\n@@ -1369,15 +1372,15 @@\n         java.lang.String s = bs.toStringUtf8();\n         originalMessage_ = s;\n         return s;\n       }\n     }\n     /**\n      * <pre>\n-     * The message of this throwable. Not filled if there is no message.\n+     * The message of this throwable. Not filled if there is no message.\r\n      * </pre>\n      *\n      * <code>string original_message = 2;</code>\n      */\n     public com.google.protobuf.ByteString\n         getOriginalMessageBytes() {\n       java.lang.Object ref = originalMessage_;\n@@ -1392,90 +1395,90 @@\n       }\n     }\n \n     public static final int STACK_TRACE_FIELD_NUMBER = 3;\n     private java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> stackTrace_;\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> getStackTraceList() {\n       return stackTrace_;\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n         getStackTraceOrBuilderList() {\n       return stackTrace_;\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public int getStackTraceCount() {\n       return stackTrace_.size();\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index) {\n       return stackTrace_.get(index);\n     }\n     /**\n      * <pre>\n-     * The stack trace of this Throwable.\n+     * The stack trace of this Throwable.\r\n      * </pre>\n      *\n      * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n         int index) {\n       return stackTrace_.get(index);\n     }\n \n     public static final int CAUSE_FIELD_NUMBER = 4;\n     private org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto cause_;\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public boolean hasCause() {\n       return cause_ != null;\n     }\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause() {\n       return cause_ == null ? org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n     }\n     /**\n      * <pre>\n-     * The cause of this Throwable. Not filled if there is no cause.\n+     * The cause of this Throwable. Not filled if there is no cause.\r\n      * </pre>\n      *\n      * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n      */\n     public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder() {\n       return getCause();\n     }\n@@ -1671,16 +1674,17 @@\n     protected Builder newBuilderForType(\n         com.google.protobuf.GeneratedMessageV3.BuilderParent parent) {\n       Builder builder = new Builder(parent);\n       return builder;\n     }\n     /**\n      * <pre>\n-     * An exception that was thrown by some code, based on the Java type of the same name.\n-     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\n+     * An exception that was thrown by some code, based on the Java type of the same name.\r\n+     *\r\n+     * See: https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/Throwable.html\r\n      * </pre>\n      *\n      * Protobuf type {@code org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto}\n      */\n     public static final class Builder extends\n         com.google.protobuf.GeneratedMessageV3.Builder<Builder> implements\n         // @@protoc_insertion_point(builder_implements:org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto)\n@@ -1892,17 +1896,17 @@\n         return this;\n       }\n       private int bitField0_;\n \n       private java.lang.Object originalClassName_ = \"\";\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public java.lang.String getOriginalClassName() {\n         java.lang.Object ref = originalClassName_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -1913,17 +1917,17 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public com.google.protobuf.ByteString\n           getOriginalClassNameBytes() {\n         java.lang.Object ref = originalClassName_;\n@@ -1935,17 +1939,17 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder setOriginalClassName(\n           java.lang.String value) {\n         if (value == null) {\n@@ -1954,32 +1958,32 @@\n   \n         originalClassName_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder clearOriginalClassName() {\n         \n         originalClassName_ = getDefaultInstance().getOriginalClassName();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The name of the class of the exception that was actually thrown. Downstream readers\n-       * of this message may or may not have the actual class available to initialize, so\n-       * this is just used to prefix the message of a generic exception type.\n+       * The name of the class of the exception that was actually thrown. Downstream readers\r\n+       * of this message may or may not have the actual class available to initialize, so\r\n+       * this is just used to prefix the message of a generic exception type.\r\n        * </pre>\n        *\n        * <code>string original_class_name = 1;</code>\n        */\n       public Builder setOriginalClassNameBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -1991,15 +1995,15 @@\n         onChanged();\n         return this;\n       }\n \n       private java.lang.Object originalMessage_ = \"\";\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public java.lang.String getOriginalMessage() {\n         java.lang.Object ref = originalMessage_;\n         if (!(ref instanceof java.lang.String)) {\n@@ -2010,15 +2014,15 @@\n           return s;\n         } else {\n           return (java.lang.String) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public com.google.protobuf.ByteString\n           getOriginalMessageBytes() {\n         java.lang.Object ref = originalMessage_;\n@@ -2030,15 +2034,15 @@\n           return b;\n         } else {\n           return (com.google.protobuf.ByteString) ref;\n         }\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder setOriginalMessage(\n           java.lang.String value) {\n         if (value == null) {\n@@ -2047,28 +2051,28 @@\n   \n         originalMessage_ = value;\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder clearOriginalMessage() {\n         \n         originalMessage_ = getDefaultInstance().getOriginalMessage();\n         onChanged();\n         return this;\n       }\n       /**\n        * <pre>\n-       * The message of this throwable. Not filled if there is no message.\n+       * The message of this throwable. Not filled if there is no message.\r\n        * </pre>\n        *\n        * <code>string original_message = 2;</code>\n        */\n       public Builder setOriginalMessageBytes(\n           com.google.protobuf.ByteString value) {\n         if (value == null) {\n@@ -2091,57 +2095,57 @@\n       }\n \n       private com.google.protobuf.RepeatedFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> stackTraceBuilder_;\n \n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> getStackTraceList() {\n         if (stackTraceBuilder_ == null) {\n           return java.util.Collections.unmodifiableList(stackTrace_);\n         } else {\n           return stackTraceBuilder_.getMessageList();\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public int getStackTraceCount() {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.size();\n         } else {\n           return stackTraceBuilder_.getCount();\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto getStackTrace(int index) {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.get(index);\n         } else {\n           return stackTraceBuilder_.getMessage(index);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder setStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n@@ -2154,15 +2158,15 @@\n         } else {\n           stackTraceBuilder_.setMessage(index, value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder setStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2172,15 +2176,15 @@\n         } else {\n           stackTraceBuilder_.setMessage(index, builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n           if (value == null) {\n@@ -2192,15 +2196,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto value) {\n         if (stackTraceBuilder_ == null) {\n@@ -2213,15 +2217,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(index, value);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2231,15 +2235,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addStackTrace(\n           int index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder builderForValue) {\n         if (stackTraceBuilder_ == null) {\n@@ -2249,15 +2253,15 @@\n         } else {\n           stackTraceBuilder_.addMessage(index, builderForValue.build());\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder addAllStackTrace(\n           java.lang.Iterable<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto> values) {\n         if (stackTraceBuilder_ == null) {\n@@ -2268,15 +2272,15 @@\n         } else {\n           stackTraceBuilder_.addAllMessages(values);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder clearStackTrace() {\n         if (stackTraceBuilder_ == null) {\n           stackTrace_ = java.util.Collections.emptyList();\n@@ -2285,15 +2289,15 @@\n         } else {\n           stackTraceBuilder_.clear();\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public Builder removeStackTrace(int index) {\n         if (stackTraceBuilder_ == null) {\n           ensureStackTraceIsMutable();\n@@ -2302,78 +2306,78 @@\n         } else {\n           stackTraceBuilder_.remove(index);\n         }\n         return this;\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder getStackTraceBuilder(\n           int index) {\n         return getStackTraceFieldBuilder().getBuilder(index);\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder getStackTraceOrBuilder(\n           int index) {\n         if (stackTraceBuilder_ == null) {\n           return stackTrace_.get(index);  } else {\n           return stackTraceBuilder_.getMessageOrBuilder(index);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<? extends org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProtoOrBuilder> \n            getStackTraceOrBuilderList() {\n         if (stackTraceBuilder_ != null) {\n           return stackTraceBuilder_.getMessageOrBuilderList();\n         } else {\n           return java.util.Collections.unmodifiableList(stackTrace_);\n         }\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder addStackTraceBuilder() {\n         return getStackTraceFieldBuilder().addBuilder(\n             org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.getDefaultInstance());\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder addStackTraceBuilder(\n           int index) {\n         return getStackTraceFieldBuilder().addBuilder(\n             index, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.getDefaultInstance());\n       }\n       /**\n        * <pre>\n-       * The stack trace of this Throwable.\n+       * The stack trace of this Throwable.\r\n        * </pre>\n        *\n        * <code>repeated .org.apache.dubbo.common.serialize.protobuf.support.wrapper.StackTraceElementProto stack_trace = 3;</code>\n        */\n       public java.util.List<org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.StackTraceElementProto.Builder> \n            getStackTraceBuilderList() {\n         return getStackTraceFieldBuilder().getBuilderList();\n@@ -2394,39 +2398,39 @@\n       }\n \n       private org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto cause_;\n       private com.google.protobuf.SingleFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder> causeBuilder_;\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public boolean hasCause() {\n         return causeBuilder_ != null || cause_ != null;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto getCause() {\n         if (causeBuilder_ == null) {\n           return cause_ == null ? org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n         } else {\n           return causeBuilder_.getMessage();\n         }\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder setCause(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto value) {\n         if (causeBuilder_ == null) {\n           if (value == null) {\n@@ -2438,15 +2442,15 @@\n           causeBuilder_.setMessage(value);\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder setCause(\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder builderForValue) {\n         if (causeBuilder_ == null) {\n@@ -2456,15 +2460,15 @@\n           causeBuilder_.setMessage(builderForValue.build());\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder mergeCause(org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto value) {\n         if (causeBuilder_ == null) {\n           if (cause_ != null) {\n@@ -2478,15 +2482,15 @@\n           causeBuilder_.mergeFrom(value);\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public Builder clearCause() {\n         if (causeBuilder_ == null) {\n           cause_ = null;\n@@ -2496,42 +2500,42 @@\n           causeBuilder_ = null;\n         }\n \n         return this;\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder getCauseBuilder() {\n         \n         onChanged();\n         return getCauseFieldBuilder().getBuilder();\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       public org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder getCauseOrBuilder() {\n         if (causeBuilder_ != null) {\n           return causeBuilder_.getMessageOrBuilder();\n         } else {\n           return cause_ == null ?\n               org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.getDefaultInstance() : cause_;\n         }\n       }\n       /**\n        * <pre>\n-       * The cause of this Throwable. Not filled if there is no cause.\n+       * The cause of this Throwable. Not filled if there is no cause.\r\n        * </pre>\n        *\n        * <code>.org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowableProto cause = 4;</code>\n        */\n       private com.google.protobuf.SingleFieldBuilderV3<\n           org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProto.Builder, org.apache.dubbo.common.serialize.protobuf.support.wrapper.ThrowablePB.ThrowableProtoOrBuilder> \n           getCauseFieldBuilder() {\n"}, {"source1": "org/apache/dubbo/common/serialize/protostuff/ProtostuffObjectOutput.java", "source2": "org/apache/dubbo/common/serialize/protostuff/ProtostuffObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,130 +1,130 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.protostuff;\n-\n-import io.protostuff.GraphIOUtil;\n-import io.protostuff.LinkedBuffer;\n-import io.protostuff.Schema;\n-import io.protostuff.runtime.RuntimeSchema;\n-import java.io.DataOutputStream;\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.protostuff.utils.WrapperUtils;\n-\n-/**\n- * Protostuff object output implementation\n- */\n-public class ProtostuffObjectOutput implements ObjectOutput {\n-\n-    private LinkedBuffer buffer = LinkedBuffer.allocate();\n-    private DataOutputStream dos;\n-\n-    public ProtostuffObjectOutput(OutputStream outputStream) {\n-        dos = new DataOutputStream(outputStream);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-\n-        byte[] bytes;\n-        byte[] classNameBytes;\n-\n-        try {\n-            if (obj == null || WrapperUtils.needWrapper(obj)) {\n-                Schema<Wrapper> schema = RuntimeSchema.getSchema(Wrapper.class);\n-                Wrapper wrapper = new Wrapper(obj);\n-                bytes = GraphIOUtil.toByteArray(wrapper, schema, buffer);\n-                classNameBytes = Wrapper.class.getName().getBytes();\n-            } else {\n-                Schema schema = RuntimeSchema.getSchema(obj.getClass());\n-                bytes = GraphIOUtil.toByteArray(obj, schema, buffer);\n-                classNameBytes = obj.getClass().getName().getBytes();\n-            }\n-        } finally {\n-            buffer.clear();\n-        }\n-\n-        dos.writeInt(classNameBytes.length);\n-        dos.writeInt(bytes.length);\n-        dos.write(classNameBytes);\n-        dos.write(bytes);\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-        dos.writeBoolean(v);\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        dos.writeByte(v);\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        dos.writeShort(v);\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        dos.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        dos.writeLong(v);\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        dos.writeFloat(v);\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        dos.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        byte[] bytes = v.getBytes();\n-        dos.writeInt(bytes.length);\n-        dos.write(bytes);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] v) throws IOException {\n-        dos.writeInt(v.length);\n-        dos.write(v);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] v, int off, int len) throws IOException {\n-        dos.writeInt(len);\n-        byte[] bytes = new byte[len];\n-        System.arraycopy(v, off, bytes, 0, len);\n-        dos.write(bytes);\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        dos.flush();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.protostuff;\r\n+\r\n+import io.protostuff.GraphIOUtil;\r\n+import io.protostuff.LinkedBuffer;\r\n+import io.protostuff.Schema;\r\n+import io.protostuff.runtime.RuntimeSchema;\r\n+import java.io.DataOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.protostuff.utils.WrapperUtils;\r\n+\r\n+/**\r\n+ * Protostuff object output implementation\r\n+ */\r\n+public class ProtostuffObjectOutput implements ObjectOutput {\r\n+\r\n+    private LinkedBuffer buffer = LinkedBuffer.allocate();\r\n+    private DataOutputStream dos;\r\n+\r\n+    public ProtostuffObjectOutput(OutputStream outputStream) {\r\n+        dos = new DataOutputStream(outputStream);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+\r\n+        byte[] bytes;\r\n+        byte[] classNameBytes;\r\n+\r\n+        try {\r\n+            if (obj == null || WrapperUtils.needWrapper(obj)) {\r\n+                Schema<Wrapper> schema = RuntimeSchema.getSchema(Wrapper.class);\r\n+                Wrapper wrapper = new Wrapper(obj);\r\n+                bytes = GraphIOUtil.toByteArray(wrapper, schema, buffer);\r\n+                classNameBytes = Wrapper.class.getName().getBytes();\r\n+            } else {\r\n+                Schema schema = RuntimeSchema.getSchema(obj.getClass());\r\n+                bytes = GraphIOUtil.toByteArray(obj, schema, buffer);\r\n+                classNameBytes = obj.getClass().getName().getBytes();\r\n+            }\r\n+        } finally {\r\n+            buffer.clear();\r\n+        }\r\n+\r\n+        dos.writeInt(classNameBytes.length);\r\n+        dos.writeInt(bytes.length);\r\n+        dos.write(classNameBytes);\r\n+        dos.write(bytes);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+        dos.writeBoolean(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        dos.writeByte(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        dos.writeShort(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        dos.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        dos.writeLong(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        dos.writeFloat(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        dos.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        byte[] bytes = v.getBytes();\r\n+        dos.writeInt(bytes.length);\r\n+        dos.write(bytes);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] v) throws IOException {\r\n+        dos.writeInt(v.length);\r\n+        dos.write(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] v, int off, int len) throws IOException {\r\n+        dos.writeInt(len);\r\n+        byte[] bytes = new byte[len];\r\n+        System.arraycopy(v, off, bytes, 0, len);\r\n+        dos.write(bytes);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        dos.flush();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protostuff/ProtostuffSerialization.java", "source2": "org/apache/dubbo/common/serialize/protostuff/ProtostuffSerialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.protostuff;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.PROTOSTUFF_SERIALIZATION_ID;\n-\n-/**\n- * Protostuff serialization implementation\n- *\n- * <pre>\n- *     e.g. &lt;dubbo:protocol serialization=\"protostuff\" /&gt;\n- * </pre>\n- */\n-public class ProtostuffSerialization implements Serialization {\n-    @Override\n-    public byte getContentTypeId() {\n-        return PROTOSTUFF_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/protostuff\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\n-        return new ProtostuffObjectOutput(output);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\n-        return new ProtostuffObjectInput(input);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.protostuff;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.PROTOSTUFF_SERIALIZATION_ID;\r\n+\r\n+/**\r\n+ * Protostuff serialization implementation\r\n+ *\r\n+ * <pre>\r\n+ *     e.g. &lt;dubbo:protocol serialization=\"protostuff\" /&gt;\r\n+ * </pre>\r\n+ */\r\n+public class ProtostuffSerialization implements Serialization {\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return PROTOSTUFF_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/protostuff\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream output) throws IOException {\r\n+        return new ProtostuffObjectOutput(output);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream input) throws IOException {\r\n+        return new ProtostuffObjectInput(input);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protostuff/delegate/SqlDateDelegate.java", "source2": "org/apache/dubbo/common/serialize/protostuff/delegate/SqlDateDelegate.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protostuff.delegate;\n-\n-import io.protostuff.Input;\n-import io.protostuff.Output;\n-import io.protostuff.Pipe;\n-import io.protostuff.WireFormat;\n-import io.protostuff.runtime.Delegate;\n-\n-import java.io.IOException;\n-\n-/**\n- * Custom {@link java.sql.Date} delegate\n- */\n-public class SqlDateDelegate implements Delegate<java.sql.Date> {\n-    @Override\n-    public WireFormat.FieldType getFieldType() {\n-        return WireFormat.FieldType.FIXED64;\n-    }\n-\n-    @Override\n-    public java.sql.Date readFrom(Input input) throws IOException {\n-        return new java.sql.Date(input.readFixed64());\n-    }\n-\n-    @Override\n-    public void writeTo(Output output, int number, java.sql.Date value, boolean repeated) throws IOException {\n-        output.writeFixed64(number, value.getTime(), repeated);\n-    }\n-\n-    @Override\n-    public void transfer(Pipe pipe, Input input, Output output, int number, boolean repeated) throws IOException {\n-        output.writeFixed64(number, input.readFixed64(), repeated);\n-    }\n-\n-    @Override\n-    public Class<?> typeClass() {\n-        return java.sql.Date.class;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protostuff.delegate;\r\n+\r\n+import io.protostuff.Input;\r\n+import io.protostuff.Output;\r\n+import io.protostuff.Pipe;\r\n+import io.protostuff.WireFormat;\r\n+import io.protostuff.runtime.Delegate;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+/**\r\n+ * Custom {@link java.sql.Date} delegate\r\n+ */\r\n+public class SqlDateDelegate implements Delegate<java.sql.Date> {\r\n+    @Override\r\n+    public WireFormat.FieldType getFieldType() {\r\n+        return WireFormat.FieldType.FIXED64;\r\n+    }\r\n+\r\n+    @Override\r\n+    public java.sql.Date readFrom(Input input) throws IOException {\r\n+        return new java.sql.Date(input.readFixed64());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeTo(Output output, int number, java.sql.Date value, boolean repeated) throws IOException {\r\n+        output.writeFixed64(number, value.getTime(), repeated);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void transfer(Pipe pipe, Input input, Output output, int number, boolean repeated) throws IOException {\r\n+        output.writeFixed64(number, input.readFixed64(), repeated);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?> typeClass() {\r\n+        return java.sql.Date.class;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protostuff/delegate/TimestampDelegate.java", "source2": "org/apache/dubbo/common/serialize/protostuff/delegate/TimestampDelegate.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.protostuff.delegate;\n-\n-import io.protostuff.Input;\n-import io.protostuff.Output;\n-import io.protostuff.Pipe;\n-import io.protostuff.WireFormat.FieldType;\n-import io.protostuff.runtime.Delegate;\n-\n-import java.io.IOException;\n-import java.sql.Timestamp;\n-\n-/**\n- * Custom {@link Timestamp} delegate\n- */\n-public class TimestampDelegate implements Delegate<Timestamp> {\n-\n-    @Override\n-    public FieldType getFieldType() {\n-        return FieldType.FIXED64;\n-    }\n-\n-    @Override\n-    public Timestamp readFrom(Input input) throws IOException {\n-        return new Timestamp(input.readFixed64());\n-    }\n-\n-    @Override\n-    public void writeTo(Output output, int number, Timestamp value, boolean repeated) throws IOException {\n-        output.writeFixed64(number, value.getTime(), repeated);\n-    }\n-\n-    @Override\n-    public void transfer(Pipe pipe, Input input, Output output, int number, boolean repeated) throws IOException {\n-        output.writeFixed64(number, input.readFixed64(), repeated);\n-    }\n-\n-    @Override\n-    public Class<?> typeClass() {\n-        return Timestamp.class;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.protostuff.delegate;\r\n+\r\n+import io.protostuff.Input;\r\n+import io.protostuff.Output;\r\n+import io.protostuff.Pipe;\r\n+import io.protostuff.WireFormat.FieldType;\r\n+import io.protostuff.runtime.Delegate;\r\n+\r\n+import java.io.IOException;\r\n+import java.sql.Timestamp;\r\n+\r\n+/**\r\n+ * Custom {@link Timestamp} delegate\r\n+ */\r\n+public class TimestampDelegate implements Delegate<Timestamp> {\r\n+\r\n+    @Override\r\n+    public FieldType getFieldType() {\r\n+        return FieldType.FIXED64;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Timestamp readFrom(Input input) throws IOException {\r\n+        return new Timestamp(input.readFixed64());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeTo(Output output, int number, Timestamp value, boolean repeated) throws IOException {\r\n+        output.writeFixed64(number, value.getTime(), repeated);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void transfer(Pipe pipe, Input input, Output output, int number, boolean repeated) throws IOException {\r\n+        output.writeFixed64(number, input.readFixed64(), repeated);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?> typeClass() {\r\n+        return Timestamp.class;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/protostuff/utils/WrapperUtils.java", "source2": "org/apache/dubbo/common/serialize/protostuff/utils/WrapperUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,115 +1,115 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.serialize.protostuff.utils;\n-\n-import org.apache.dubbo.common.serialize.protostuff.Wrapper;\n-import org.apache.dubbo.common.serialize.protostuff.delegate.SqlDateDelegate;\n-import org.apache.dubbo.common.serialize.protostuff.delegate.TimeDelegate;\n-import org.apache.dubbo.common.serialize.protostuff.delegate.TimestampDelegate;\n-\n-import io.protostuff.runtime.DefaultIdStrategy;\n-import io.protostuff.runtime.RuntimeEnv;\n-\n-import java.math.BigDecimal;\n-import java.sql.Time;\n-import java.sql.Timestamp;\n-import java.util.ArrayList;\n-import java.util.BitSet;\n-import java.util.Calendar;\n-import java.util.Date;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.Hashtable;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.SortedMap;\n-import java.util.TreeMap;\n-import java.util.TreeSet;\n-import java.util.Vector;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * Use WrapperUtils to wrap object to {@link Wrapper}\n- */\n-public class WrapperUtils {\n-    private static final Set<Class<?>> WRAPPER_SET = new HashSet<>();\n-\n-    static {\n-        if (RuntimeEnv.ID_STRATEGY instanceof DefaultIdStrategy) {\n-            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new TimeDelegate());\n-            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new TimestampDelegate());\n-            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new SqlDateDelegate());\n-        }\n-\n-        WRAPPER_SET.add(Map.class);\n-        WRAPPER_SET.add(HashMap.class);\n-        WRAPPER_SET.add(TreeMap.class);\n-        WRAPPER_SET.add(Hashtable.class);\n-        WRAPPER_SET.add(SortedMap.class);\n-        WRAPPER_SET.add(LinkedHashMap.class);\n-        WRAPPER_SET.add(ConcurrentHashMap.class);\n-\n-        WRAPPER_SET.add(List.class);\n-        WRAPPER_SET.add(ArrayList.class);\n-        WRAPPER_SET.add(LinkedList.class);\n-\n-        WRAPPER_SET.add(Vector.class);\n-\n-        WRAPPER_SET.add(Set.class);\n-        WRAPPER_SET.add(HashSet.class);\n-        WRAPPER_SET.add(TreeSet.class);\n-        WRAPPER_SET.add(BitSet.class);\n-\n-        WRAPPER_SET.add(StringBuffer.class);\n-        WRAPPER_SET.add(StringBuilder.class);\n-\n-        WRAPPER_SET.add(BigDecimal.class);\n-        WRAPPER_SET.add(Date.class);\n-        WRAPPER_SET.add(Calendar.class);\n-        WRAPPER_SET.add(Time.class);\n-        WRAPPER_SET.add(Timestamp.class);\n-        WRAPPER_SET.add(java.sql.Date.class);\n-\n-        WRAPPER_SET.add(Wrapper.class);\n-\n-    }\n-\n-    /**\n-     * Determine if the object needs wrap\n-     *\n-     * @param clazz object type\n-     * @return need wrap\n-     */\n-    public static boolean needWrapper(Class<?> clazz) {\n-        return WrapperUtils.WRAPPER_SET.contains(clazz) || clazz.isArray() || clazz.isEnum();\n-    }\n-\n-    /**\n-     * Determine if the object needs wrap\n-     *\n-     * @param obj object\n-     * @return need wrap\n-     */\n-    public static boolean needWrapper(Object obj) {\n-        return needWrapper(obj.getClass());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.serialize.protostuff.utils;\r\n+\r\n+import org.apache.dubbo.common.serialize.protostuff.Wrapper;\r\n+import org.apache.dubbo.common.serialize.protostuff.delegate.SqlDateDelegate;\r\n+import org.apache.dubbo.common.serialize.protostuff.delegate.TimeDelegate;\r\n+import org.apache.dubbo.common.serialize.protostuff.delegate.TimestampDelegate;\r\n+\r\n+import io.protostuff.runtime.DefaultIdStrategy;\r\n+import io.protostuff.runtime.RuntimeEnv;\r\n+\r\n+import java.math.BigDecimal;\r\n+import java.sql.Time;\r\n+import java.sql.Timestamp;\r\n+import java.util.ArrayList;\r\n+import java.util.BitSet;\r\n+import java.util.Calendar;\r\n+import java.util.Date;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.Hashtable;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.SortedMap;\r\n+import java.util.TreeMap;\r\n+import java.util.TreeSet;\r\n+import java.util.Vector;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * Use WrapperUtils to wrap object to {@link Wrapper}\r\n+ */\r\n+public class WrapperUtils {\r\n+    private static final Set<Class<?>> WRAPPER_SET = new HashSet<>();\r\n+\r\n+    static {\r\n+        if (RuntimeEnv.ID_STRATEGY instanceof DefaultIdStrategy) {\r\n+            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new TimeDelegate());\r\n+            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new TimestampDelegate());\r\n+            ((DefaultIdStrategy) RuntimeEnv.ID_STRATEGY).registerDelegate(new SqlDateDelegate());\r\n+        }\r\n+\r\n+        WRAPPER_SET.add(Map.class);\r\n+        WRAPPER_SET.add(HashMap.class);\r\n+        WRAPPER_SET.add(TreeMap.class);\r\n+        WRAPPER_SET.add(Hashtable.class);\r\n+        WRAPPER_SET.add(SortedMap.class);\r\n+        WRAPPER_SET.add(LinkedHashMap.class);\r\n+        WRAPPER_SET.add(ConcurrentHashMap.class);\r\n+\r\n+        WRAPPER_SET.add(List.class);\r\n+        WRAPPER_SET.add(ArrayList.class);\r\n+        WRAPPER_SET.add(LinkedList.class);\r\n+\r\n+        WRAPPER_SET.add(Vector.class);\r\n+\r\n+        WRAPPER_SET.add(Set.class);\r\n+        WRAPPER_SET.add(HashSet.class);\r\n+        WRAPPER_SET.add(TreeSet.class);\r\n+        WRAPPER_SET.add(BitSet.class);\r\n+\r\n+        WRAPPER_SET.add(StringBuffer.class);\r\n+        WRAPPER_SET.add(StringBuilder.class);\r\n+\r\n+        WRAPPER_SET.add(BigDecimal.class);\r\n+        WRAPPER_SET.add(Date.class);\r\n+        WRAPPER_SET.add(Calendar.class);\r\n+        WRAPPER_SET.add(Time.class);\r\n+        WRAPPER_SET.add(Timestamp.class);\r\n+        WRAPPER_SET.add(java.sql.Date.class);\r\n+\r\n+        WRAPPER_SET.add(Wrapper.class);\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Determine if the object needs wrap\r\n+     *\r\n+     * @param clazz object type\r\n+     * @return need wrap\r\n+     */\r\n+    public static boolean needWrapper(Class<?> clazz) {\r\n+        return WrapperUtils.WRAPPER_SET.contains(clazz) || clazz.isArray() || clazz.isEnum();\r\n+    }\r\n+\r\n+    /**\r\n+     * Determine if the object needs wrap\r\n+     *\r\n+     * @param obj object\r\n+     * @return need wrap\r\n+     */\r\n+    public static boolean needWrapper(Object obj) {\r\n+        return needWrapper(obj.getClass());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/support/SerializableClassRegistry.java", "source2": "org/apache/dubbo/common/serialize/support/SerializableClassRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.support;\n-\n-import java.util.LinkedHashMap;\n-import java.util.Map;\n-\n-/**\n- * Provide a unified serialization registry, this class used for {@code dubbo-serialization-fst}\n- * and {@code dubbo-serialization-kryo}, it will register some classes at startup time (for example {@link AbstractKryoFactory#create})\n- */\n-public abstract class SerializableClassRegistry {\n-\n-\n-    private static final Map<Class<?>, Object> REGISTRATIONS = new LinkedHashMap<>();\n-\n-    /**\n-     * only supposed to be called at startup time\n-     *\n-     * @param clazz object type\n-     */\n-    public static void registerClass(Class<?> clazz) {\n-        registerClass(clazz, null);\n-    }\n-\n-    /**\n-     * only supposed to be called at startup time\n-     *\n-     * @param clazz object type\n-     * @param serializer object serializer\n-     */\n-    public static void registerClass(Class<?> clazz, Object serializer) {\n-        if (clazz == null) {\n-            throw new IllegalArgumentException(\"Class registered to kryo cannot be null!\");\n-        }\n-        REGISTRATIONS.put(clazz, serializer);\n-    }\n-\n-    /**\n-     * get registered classes\n-     *\n-     * @return class serializer\n-     * */\n-    public static Map<Class<?>, Object> getRegisteredClasses() {\n-        return REGISTRATIONS;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.support;\r\n+\r\n+import java.util.LinkedHashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Provide a unified serialization registry, this class used for {@code dubbo-serialization-fst}\r\n+ * and {@code dubbo-serialization-kryo}, it will register some classes at startup time (for example {@link AbstractKryoFactory#create})\r\n+ */\r\n+public abstract class SerializableClassRegistry {\r\n+\r\n+\r\n+    private static final Map<Class<?>, Object> REGISTRATIONS = new LinkedHashMap<>();\r\n+\r\n+    /**\r\n+     * only supposed to be called at startup time\r\n+     *\r\n+     * @param clazz object type\r\n+     */\r\n+    public static void registerClass(Class<?> clazz) {\r\n+        registerClass(clazz, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * only supposed to be called at startup time\r\n+     *\r\n+     * @param clazz object type\r\n+     * @param serializer object serializer\r\n+     */\r\n+    public static void registerClass(Class<?> clazz, Object serializer) {\r\n+        if (clazz == null) {\r\n+            throw new IllegalArgumentException(\"Class registered to kryo cannot be null!\");\r\n+        }\r\n+        REGISTRATIONS.put(clazz, serializer);\r\n+    }\r\n+\r\n+    /**\r\n+     * get registered classes\r\n+     *\r\n+     * @return class serializer\r\n+     * */\r\n+    public static Map<Class<?>, Object> getRegisteredClasses() {\r\n+        return REGISTRATIONS;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/serialize/support/SerializationOptimizer.java", "source2": "org/apache/dubbo/common/serialize/support/SerializationOptimizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.serialize.support;\n-\n-import java.util.Collection;\n-\n-/**\n- * Interface defining serialization optimizer, there are nothing implementations for now.\n- */\n-public interface SerializationOptimizer {\n-\n-    /**\n-     * Get serializable classes\n-     *\n-     * @return serializable classes\n-     * */\n-    Collection<Class<?>> getSerializableClasses();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.serialize.support;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * Interface defining serialization optimizer, there are nothing implementations for now.\r\n+ */\r\n+public interface SerializationOptimizer {\r\n+\r\n+    /**\r\n+     * Get serializable classes\r\n+     *\r\n+     * @return serializable classes\r\n+     * */\r\n+    Collection<Class<?>> getSerializableClasses();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/store/support/SimpleDataStore.java", "source2": "org/apache/dubbo/common/store/support/SimpleDataStore.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.store.support;\n-\n-import org.apache.dubbo.common.store.DataStore;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class SimpleDataStore implements DataStore {\n-\n-    // <component name or id, <data-name, data-value>>\n-    private ConcurrentMap<String, ConcurrentMap<String, Object>> data =\n-            new ConcurrentHashMap<String, ConcurrentMap<String, Object>>();\n-\n-    @Override\n-    public Map<String, Object> get(String componentName) {\n-        ConcurrentMap<String, Object> value = data.get(componentName);\n-        if (value == null) {\n-            return new HashMap<String, Object>();\n-        }\n-\n-        return new HashMap<String, Object>(value);\n-    }\n-\n-    @Override\n-    public Object get(String componentName, String key) {\n-        if (!data.containsKey(componentName)) {\n-            return null;\n-        }\n-        return data.get(componentName).get(key);\n-    }\n-\n-    @Override\n-    public void put(String componentName, String key, Object value) {\n-        Map<String, Object> componentData = data.computeIfAbsent(componentName, k -> new ConcurrentHashMap<>());\n-        componentData.put(key, value);\n-    }\n-\n-    @Override\n-    public void remove(String componentName, String key) {\n-        if (!data.containsKey(componentName)) {\n-            return;\n-        }\n-        data.get(componentName).remove(key);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.store.support;\r\n+\r\n+import org.apache.dubbo.common.store.DataStore;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class SimpleDataStore implements DataStore {\r\n+\r\n+    // <component name or id, <data-name, data-value>>\r\n+    private ConcurrentMap<String, ConcurrentMap<String, Object>> data =\r\n+            new ConcurrentHashMap<String, ConcurrentMap<String, Object>>();\r\n+\r\n+    @Override\r\n+    public Map<String, Object> get(String componentName) {\r\n+        ConcurrentMap<String, Object> value = data.get(componentName);\r\n+        if (value == null) {\r\n+            return new HashMap<String, Object>();\r\n+        }\r\n+\r\n+        return new HashMap<String, Object>(value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object get(String componentName, String key) {\r\n+        if (!data.containsKey(componentName)) {\r\n+            return null;\r\n+        }\r\n+        return data.get(componentName).get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void put(String componentName, String key, Object value) {\r\n+        Map<String, Object> componentData = data.computeIfAbsent(componentName, k -> new ConcurrentHashMap<>());\r\n+        componentData.put(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void remove(String componentName, String key) {\r\n+        if (!data.containsKey(componentName)) {\r\n+            return;\r\n+        }\r\n+        data.get(componentName).remove(key);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadlocal/InternalRunnable.java", "source2": "org/apache/dubbo/common/threadlocal/InternalRunnable.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.threadlocal;\n-\n-\n-/**\n- * InternalRunnable\n- * There is a risk of memory leak when using {@link InternalThreadLocal} without calling\n- * {@link InternalThreadLocal#removeAll()}.\n- * This design is learning from {@see io.netty.util.concurrent.FastThreadLocalRunnable} which is in Netty.\n- */\n-public class InternalRunnable implements Runnable{\n-    private final Runnable runnable;\n-\n-    public InternalRunnable(Runnable runnable){\n-        this.runnable=runnable;\n-    }\n-\n-    /**\n-     * After the task execution is completed, it will call {@link InternalThreadLocal#removeAll()} to clear\n-     * unnecessary variables in the thread.\n-     */\n-    @Override\n-    public void run() {\n-        try{\n-            runnable.run();\n-        }finally {\n-            InternalThreadLocal.removeAll();\n-        }\n-    }\n-\n-    /**\n-     * Wrap ordinary Runnable into {@link InternalThreadLocal}.\n-     */\n-     static Runnable Wrap(Runnable runnable){\n-        return runnable instanceof InternalRunnable?runnable:new InternalRunnable(runnable);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadlocal;\r\n+\r\n+\r\n+/**\r\n+ * InternalRunnable\r\n+ * There is a risk of memory leak when using {@link InternalThreadLocal} without calling\r\n+ * {@link InternalThreadLocal#removeAll()}.\r\n+ * This design is learning from {@see io.netty.util.concurrent.FastThreadLocalRunnable} which is in Netty.\r\n+ */\r\n+public class InternalRunnable implements Runnable{\r\n+    private final Runnable runnable;\r\n+\r\n+    public InternalRunnable(Runnable runnable){\r\n+        this.runnable=runnable;\r\n+    }\r\n+\r\n+    /**\r\n+     * After the task execution is completed, it will call {@link InternalThreadLocal#removeAll()} to clear\r\n+     * unnecessary variables in the thread.\r\n+     */\r\n+    @Override\r\n+    public void run() {\r\n+        try{\r\n+            runnable.run();\r\n+        }finally {\r\n+            InternalThreadLocal.removeAll();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Wrap ordinary Runnable into {@link InternalThreadLocal}.\r\n+     */\r\n+     static Runnable Wrap(Runnable runnable){\r\n+        return runnable instanceof InternalRunnable?runnable:new InternalRunnable(runnable);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadlocal/InternalThreadLocal.java", "source2": "org/apache/dubbo/common/threadlocal/InternalThreadLocal.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,198 +1,198 @@\n-/*\n- * Copyright 2014 The Netty Project\n- *\n- * The Netty Project licenses this file to you under the Apache License,\n- * version 2.0 (the \"License\"); you may not use this file except in compliance\n- * with the License. You may obtain a copy of the License at:\n- *\n- *   http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n- * License for the specific language governing permissions and limitations\n- * under the License.\n- */\n-\n-package org.apache.dubbo.common.threadlocal;\n-\n-import java.util.Collections;\n-import java.util.IdentityHashMap;\n-import java.util.Set;\n-\n-/**\n- * InternalThreadLocal\n- * A special variant of {@link ThreadLocal} that yields higher access performance when accessed from a\n- * {@link InternalThread}.\n- * <p></p>\n- * Internally, a {@link InternalThread} uses a constant index in an array, instead of using hash code and hash table,\n- * to look for a variable.  Although seemingly very subtle, it yields slight performance advantage over using a hash\n- * table, and it is useful when accessed frequently.\n- * <p></p>\n- * This design is learning from {@see io.netty.util.concurrent.FastThreadLocal} which is in Netty.\n- */\n-public class InternalThreadLocal<V> {\n-\n-    private static final int VARIABLES_TO_REMOVE_INDEX = InternalThreadLocalMap.nextVariableIndex();\n-\n-    private final int index;\n-\n-    public InternalThreadLocal() {\n-        index = InternalThreadLocalMap.nextVariableIndex();\n-    }\n-\n-    /**\n-     * Removes all {@link InternalThreadLocal} variables bound to the current thread.  This operation is useful when you\n-     * are in a container environment, and you don't want to leave the thread local variables in the threads you do not\n-     * manage.\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public static void removeAll() {\n-        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.getIfSet();\n-        if (threadLocalMap == null) {\n-            return;\n-        }\n-\n-        try {\n-            Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\n-            if (v != null && v != InternalThreadLocalMap.UNSET) {\n-                Set<InternalThreadLocal<?>> variablesToRemove = (Set<InternalThreadLocal<?>>) v;\n-                InternalThreadLocal<?>[] variablesToRemoveArray =\n-                        variablesToRemove.toArray(new InternalThreadLocal[0]);\n-                for (InternalThreadLocal<?> tlv : variablesToRemoveArray) {\n-                    tlv.remove(threadLocalMap);\n-                }\n-            }\n-        } finally {\n-            InternalThreadLocalMap.remove();\n-        }\n-    }\n-\n-    /**\n-     * Returns the number of thread local variables bound to the current thread.\n-     */\n-    public static int size() {\n-        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.getIfSet();\n-        if (threadLocalMap == null) {\n-            return 0;\n-        } else {\n-            return threadLocalMap.size();\n-        }\n-    }\n-\n-    public static void destroy() {\n-        InternalThreadLocalMap.destroy();\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static void addToVariablesToRemove(InternalThreadLocalMap threadLocalMap, InternalThreadLocal<?> variable) {\n-        Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\n-        Set<InternalThreadLocal<?>> variablesToRemove;\n-        if (v == InternalThreadLocalMap.UNSET || v == null) {\n-            variablesToRemove = Collections.newSetFromMap(new IdentityHashMap<InternalThreadLocal<?>, Boolean>());\n-            threadLocalMap.setIndexedVariable(VARIABLES_TO_REMOVE_INDEX, variablesToRemove);\n-        } else {\n-            variablesToRemove = (Set<InternalThreadLocal<?>>) v;\n-        }\n-\n-        variablesToRemove.add(variable);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static void removeFromVariablesToRemove(InternalThreadLocalMap threadLocalMap, InternalThreadLocal<?> variable) {\n-\n-        Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\n-\n-        if (v == InternalThreadLocalMap.UNSET || v == null) {\n-            return;\n-        }\n-\n-        Set<InternalThreadLocal<?>> variablesToRemove = (Set<InternalThreadLocal<?>>) v;\n-        variablesToRemove.remove(variable);\n-    }\n-\n-    /**\n-     * Returns the current value for the current thread\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public final V get() {\n-        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();\n-        Object v = threadLocalMap.indexedVariable(index);\n-        if (v != InternalThreadLocalMap.UNSET) {\n-            return (V) v;\n-        }\n-\n-        return initialize(threadLocalMap);\n-    }\n-\n-    private V initialize(InternalThreadLocalMap threadLocalMap) {\n-        V v = null;\n-        try {\n-            v = initialValue();\n-        } catch (Exception e) {\n-            throw new RuntimeException(e);\n-        }\n-\n-        threadLocalMap.setIndexedVariable(index, v);\n-        addToVariablesToRemove(threadLocalMap, this);\n-        return v;\n-    }\n-\n-    /**\n-     * Sets the value for the current thread.\n-     */\n-    public final void set(V value) {\n-        if (value == null || value == InternalThreadLocalMap.UNSET) {\n-            remove();\n-        } else {\n-            InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();\n-            if (threadLocalMap.setIndexedVariable(index, value)) {\n-                addToVariablesToRemove(threadLocalMap, this);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Sets the value to uninitialized; a proceeding call to get() will trigger a call to initialValue().\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public final void remove() {\n-        remove(InternalThreadLocalMap.getIfSet());\n-    }\n-\n-    /**\n-     * Sets the value to uninitialized for the specified thread local map;\n-     * a proceeding call to get() will trigger a call to initialValue().\n-     * The specified thread local map must be for the current thread.\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public final void remove(InternalThreadLocalMap threadLocalMap) {\n-        if (threadLocalMap == null) {\n-            return;\n-        }\n-\n-        Object v = threadLocalMap.removeIndexedVariable(index);\n-        removeFromVariablesToRemove(threadLocalMap, this);\n-\n-        if (v != InternalThreadLocalMap.UNSET) {\n-            try {\n-                onRemoval((V) v);\n-            } catch (Exception e) {\n-                throw new RuntimeException(e);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Returns the initial value for this thread-local variable.\n-     */\n-    protected V initialValue() throws Exception {\n-        return null;\n-    }\n-\n-    /**\n-     * Invoked when this thread local variable is removed by {@link #remove()}.\n-     */\n-    protected void onRemoval(@SuppressWarnings(\"unused\") V value) throws Exception {\n-    }\n-}\n+/*\r\n+ * Copyright 2014 The Netty Project\r\n+ *\r\n+ * The Netty Project licenses this file to you under the Apache License,\r\n+ * version 2.0 (the \"License\"); you may not use this file except in compliance\r\n+ * with the License. You may obtain a copy of the License at:\r\n+ *\r\n+ *   http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r\n+ * License for the specific language governing permissions and limitations\r\n+ * under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadlocal;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.IdentityHashMap;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * InternalThreadLocal\r\n+ * A special variant of {@link ThreadLocal} that yields higher access performance when accessed from a\r\n+ * {@link InternalThread}.\r\n+ * <p></p>\r\n+ * Internally, a {@link InternalThread} uses a constant index in an array, instead of using hash code and hash table,\r\n+ * to look for a variable.  Although seemingly very subtle, it yields slight performance advantage over using a hash\r\n+ * table, and it is useful when accessed frequently.\r\n+ * <p></p>\r\n+ * This design is learning from {@see io.netty.util.concurrent.FastThreadLocal} which is in Netty.\r\n+ */\r\n+public class InternalThreadLocal<V> {\r\n+\r\n+    private static final int VARIABLES_TO_REMOVE_INDEX = InternalThreadLocalMap.nextVariableIndex();\r\n+\r\n+    private final int index;\r\n+\r\n+    public InternalThreadLocal() {\r\n+        index = InternalThreadLocalMap.nextVariableIndex();\r\n+    }\r\n+\r\n+    /**\r\n+     * Removes all {@link InternalThreadLocal} variables bound to the current thread.  This operation is useful when you\r\n+     * are in a container environment, and you don't want to leave the thread local variables in the threads you do not\r\n+     * manage.\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public static void removeAll() {\r\n+        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.getIfSet();\r\n+        if (threadLocalMap == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        try {\r\n+            Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\r\n+            if (v != null && v != InternalThreadLocalMap.UNSET) {\r\n+                Set<InternalThreadLocal<?>> variablesToRemove = (Set<InternalThreadLocal<?>>) v;\r\n+                InternalThreadLocal<?>[] variablesToRemoveArray =\r\n+                        variablesToRemove.toArray(new InternalThreadLocal[0]);\r\n+                for (InternalThreadLocal<?> tlv : variablesToRemoveArray) {\r\n+                    tlv.remove(threadLocalMap);\r\n+                }\r\n+            }\r\n+        } finally {\r\n+            InternalThreadLocalMap.remove();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns the number of thread local variables bound to the current thread.\r\n+     */\r\n+    public static int size() {\r\n+        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.getIfSet();\r\n+        if (threadLocalMap == null) {\r\n+            return 0;\r\n+        } else {\r\n+            return threadLocalMap.size();\r\n+        }\r\n+    }\r\n+\r\n+    public static void destroy() {\r\n+        InternalThreadLocalMap.destroy();\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static void addToVariablesToRemove(InternalThreadLocalMap threadLocalMap, InternalThreadLocal<?> variable) {\r\n+        Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\r\n+        Set<InternalThreadLocal<?>> variablesToRemove;\r\n+        if (v == InternalThreadLocalMap.UNSET || v == null) {\r\n+            variablesToRemove = Collections.newSetFromMap(new IdentityHashMap<InternalThreadLocal<?>, Boolean>());\r\n+            threadLocalMap.setIndexedVariable(VARIABLES_TO_REMOVE_INDEX, variablesToRemove);\r\n+        } else {\r\n+            variablesToRemove = (Set<InternalThreadLocal<?>>) v;\r\n+        }\r\n+\r\n+        variablesToRemove.add(variable);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static void removeFromVariablesToRemove(InternalThreadLocalMap threadLocalMap, InternalThreadLocal<?> variable) {\r\n+\r\n+        Object v = threadLocalMap.indexedVariable(VARIABLES_TO_REMOVE_INDEX);\r\n+\r\n+        if (v == InternalThreadLocalMap.UNSET || v == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Set<InternalThreadLocal<?>> variablesToRemove = (Set<InternalThreadLocal<?>>) v;\r\n+        variablesToRemove.remove(variable);\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns the current value for the current thread\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public final V get() {\r\n+        InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();\r\n+        Object v = threadLocalMap.indexedVariable(index);\r\n+        if (v != InternalThreadLocalMap.UNSET) {\r\n+            return (V) v;\r\n+        }\r\n+\r\n+        return initialize(threadLocalMap);\r\n+    }\r\n+\r\n+    private V initialize(InternalThreadLocalMap threadLocalMap) {\r\n+        V v = null;\r\n+        try {\r\n+            v = initialValue();\r\n+        } catch (Exception e) {\r\n+            throw new RuntimeException(e);\r\n+        }\r\n+\r\n+        threadLocalMap.setIndexedVariable(index, v);\r\n+        addToVariablesToRemove(threadLocalMap, this);\r\n+        return v;\r\n+    }\r\n+\r\n+    /**\r\n+     * Sets the value for the current thread.\r\n+     */\r\n+    public final void set(V value) {\r\n+        if (value == null || value == InternalThreadLocalMap.UNSET) {\r\n+            remove();\r\n+        } else {\r\n+            InternalThreadLocalMap threadLocalMap = InternalThreadLocalMap.get();\r\n+            if (threadLocalMap.setIndexedVariable(index, value)) {\r\n+                addToVariablesToRemove(threadLocalMap, this);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Sets the value to uninitialized; a proceeding call to get() will trigger a call to initialValue().\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public final void remove() {\r\n+        remove(InternalThreadLocalMap.getIfSet());\r\n+    }\r\n+\r\n+    /**\r\n+     * Sets the value to uninitialized for the specified thread local map;\r\n+     * a proceeding call to get() will trigger a call to initialValue().\r\n+     * The specified thread local map must be for the current thread.\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public final void remove(InternalThreadLocalMap threadLocalMap) {\r\n+        if (threadLocalMap == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Object v = threadLocalMap.removeIndexedVariable(index);\r\n+        removeFromVariablesToRemove(threadLocalMap, this);\r\n+\r\n+        if (v != InternalThreadLocalMap.UNSET) {\r\n+            try {\r\n+                onRemoval((V) v);\r\n+            } catch (Exception e) {\r\n+                throw new RuntimeException(e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns the initial value for this thread-local variable.\r\n+     */\r\n+    protected V initialValue() throws Exception {\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Invoked when this thread local variable is removed by {@link #remove()}.\r\n+     */\r\n+    protected void onRemoval(@SuppressWarnings(\"unused\") V value) throws Exception {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java", "source2": "org/apache/dubbo/common/threadlocal/InternalThreadLocalMap.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,167 +1,167 @@\n-/*\n- * Copyright 2014 The Netty Project\n- *\n- * The Netty Project licenses this file to you under the Apache License,\n- * version 2.0 (the \"License\"); you may not use this file except in compliance\n- * with the License. You may obtain a copy of the License at:\n- *\n- *   http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n- * License for the specific language governing permissions and limitations\n- * under the License.\n- */\n-\n-package org.apache.dubbo.common.threadlocal;\n-\n-import java.util.Arrays;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-/**\n- * The internal data structure that stores the threadLocal variables for Netty and all {@link InternalThread}s.\n- * Note that this class is for internal use only. Use {@link InternalThread}\n- * unless you know what you are doing.\n- */\n-public final class InternalThreadLocalMap {\n-\n-    private Object[] indexedVariables;\n-\n-    private static ThreadLocal<InternalThreadLocalMap> slowThreadLocalMap = new ThreadLocal<InternalThreadLocalMap>();\n-\n-    private static final AtomicInteger NEXT_INDEX = new AtomicInteger();\n-\n-    public static final Object UNSET = new Object();\n-\n-    public static InternalThreadLocalMap getIfSet() {\n-        Thread thread = Thread.currentThread();\n-        if (thread instanceof InternalThread) {\n-            return ((InternalThread) thread).threadLocalMap();\n-        }\n-        return slowThreadLocalMap.get();\n-    }\n-\n-    public static InternalThreadLocalMap get() {\n-        Thread thread = Thread.currentThread();\n-        if (thread instanceof InternalThread) {\n-            return fastGet((InternalThread) thread);\n-        }\n-        return slowGet();\n-    }\n-\n-    public static void remove() {\n-        Thread thread = Thread.currentThread();\n-        if (thread instanceof InternalThread) {\n-            ((InternalThread) thread).setThreadLocalMap(null);\n-        } else {\n-            slowThreadLocalMap.remove();\n-        }\n-    }\n-\n-    public static void destroy() {\n-        slowThreadLocalMap = null;\n-    }\n-\n-    public static int nextVariableIndex() {\n-        int index = NEXT_INDEX.getAndIncrement();\n-        if (index < 0) {\n-            NEXT_INDEX.decrementAndGet();\n-            throw new IllegalStateException(\"Too many thread-local indexed variables\");\n-        }\n-        return index;\n-    }\n-\n-    public static int lastVariableIndex() {\n-        return NEXT_INDEX.get() - 1;\n-    }\n-\n-    private InternalThreadLocalMap() {\n-        indexedVariables = newIndexedVariableTable();\n-    }\n-\n-    public Object indexedVariable(int index) {\n-        Object[] lookup = indexedVariables;\n-        return index < lookup.length ? lookup[index] : UNSET;\n-    }\n-\n-    /**\n-     * @return {@code true} if and only if a new thread-local variable has been created\n-     */\n-    public boolean setIndexedVariable(int index, Object value) {\n-        Object[] lookup = indexedVariables;\n-        if (index < lookup.length) {\n-            Object oldValue = lookup[index];\n-            lookup[index] = value;\n-            return oldValue == UNSET;\n-        } else {\n-            expandIndexedVariableTableAndSet(index, value);\n-            return true;\n-        }\n-    }\n-\n-    public Object removeIndexedVariable(int index) {\n-        Object[] lookup = indexedVariables;\n-        if (index < lookup.length) {\n-            Object v = lookup[index];\n-            lookup[index] = UNSET;\n-            return v;\n-        } else {\n-            return UNSET;\n-        }\n-    }\n-\n-    public int size() {\n-        int count = 0;\n-        for (Object o : indexedVariables) {\n-            if (o != UNSET) {\n-                ++count;\n-            }\n-        }\n-\n-        //the fist element in `indexedVariables` is a set to keep all the InternalThreadLocal to remove\n-        //look at method `addToVariablesToRemove`\n-        return count - 1;\n-    }\n-\n-    private static Object[] newIndexedVariableTable() {\n-        Object[] array = new Object[32];\n-        Arrays.fill(array, UNSET);\n-        return array;\n-    }\n-\n-    private static InternalThreadLocalMap fastGet(InternalThread thread) {\n-        InternalThreadLocalMap threadLocalMap = thread.threadLocalMap();\n-        if (threadLocalMap == null) {\n-            thread.setThreadLocalMap(threadLocalMap = new InternalThreadLocalMap());\n-        }\n-        return threadLocalMap;\n-    }\n-\n-    private static InternalThreadLocalMap slowGet() {\n-        ThreadLocal<InternalThreadLocalMap> slowThreadLocalMap = InternalThreadLocalMap.slowThreadLocalMap;\n-        InternalThreadLocalMap ret = slowThreadLocalMap.get();\n-        if (ret == null) {\n-            ret = new InternalThreadLocalMap();\n-            slowThreadLocalMap.set(ret);\n-        }\n-        return ret;\n-    }\n-\n-    private void expandIndexedVariableTableAndSet(int index, Object value) {\n-        Object[] oldArray = indexedVariables;\n-        final int oldCapacity = oldArray.length;\n-        int newCapacity = index;\n-        newCapacity |= newCapacity >>> 1;\n-        newCapacity |= newCapacity >>> 2;\n-        newCapacity |= newCapacity >>> 4;\n-        newCapacity |= newCapacity >>> 8;\n-        newCapacity |= newCapacity >>> 16;\n-        newCapacity++;\n-\n-        Object[] newArray = Arrays.copyOf(oldArray, newCapacity);\n-        Arrays.fill(newArray, oldCapacity, newArray.length, UNSET);\n-        newArray[index] = value;\n-        indexedVariables = newArray;\n-    }\n-}\n+/*\r\n+ * Copyright 2014 The Netty Project\r\n+ *\r\n+ * The Netty Project licenses this file to you under the Apache License,\r\n+ * version 2.0 (the \"License\"); you may not use this file except in compliance\r\n+ * with the License. You may obtain a copy of the License at:\r\n+ *\r\n+ *   http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r\n+ * License for the specific language governing permissions and limitations\r\n+ * under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadlocal;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+/**\r\n+ * The internal data structure that stores the threadLocal variables for Netty and all {@link InternalThread}s.\r\n+ * Note that this class is for internal use only. Use {@link InternalThread}\r\n+ * unless you know what you are doing.\r\n+ */\r\n+public final class InternalThreadLocalMap {\r\n+\r\n+    private Object[] indexedVariables;\r\n+\r\n+    private static ThreadLocal<InternalThreadLocalMap> slowThreadLocalMap = new ThreadLocal<InternalThreadLocalMap>();\r\n+\r\n+    private static final AtomicInteger NEXT_INDEX = new AtomicInteger();\r\n+\r\n+    public static final Object UNSET = new Object();\r\n+\r\n+    public static InternalThreadLocalMap getIfSet() {\r\n+        Thread thread = Thread.currentThread();\r\n+        if (thread instanceof InternalThread) {\r\n+            return ((InternalThread) thread).threadLocalMap();\r\n+        }\r\n+        return slowThreadLocalMap.get();\r\n+    }\r\n+\r\n+    public static InternalThreadLocalMap get() {\r\n+        Thread thread = Thread.currentThread();\r\n+        if (thread instanceof InternalThread) {\r\n+            return fastGet((InternalThread) thread);\r\n+        }\r\n+        return slowGet();\r\n+    }\r\n+\r\n+    public static void remove() {\r\n+        Thread thread = Thread.currentThread();\r\n+        if (thread instanceof InternalThread) {\r\n+            ((InternalThread) thread).setThreadLocalMap(null);\r\n+        } else {\r\n+            slowThreadLocalMap.remove();\r\n+        }\r\n+    }\r\n+\r\n+    public static void destroy() {\r\n+        slowThreadLocalMap = null;\r\n+    }\r\n+\r\n+    public static int nextVariableIndex() {\r\n+        int index = NEXT_INDEX.getAndIncrement();\r\n+        if (index < 0) {\r\n+            NEXT_INDEX.decrementAndGet();\r\n+            throw new IllegalStateException(\"Too many thread-local indexed variables\");\r\n+        }\r\n+        return index;\r\n+    }\r\n+\r\n+    public static int lastVariableIndex() {\r\n+        return NEXT_INDEX.get() - 1;\r\n+    }\r\n+\r\n+    private InternalThreadLocalMap() {\r\n+        indexedVariables = newIndexedVariableTable();\r\n+    }\r\n+\r\n+    public Object indexedVariable(int index) {\r\n+        Object[] lookup = indexedVariables;\r\n+        return index < lookup.length ? lookup[index] : UNSET;\r\n+    }\r\n+\r\n+    /**\r\n+     * @return {@code true} if and only if a new thread-local variable has been created\r\n+     */\r\n+    public boolean setIndexedVariable(int index, Object value) {\r\n+        Object[] lookup = indexedVariables;\r\n+        if (index < lookup.length) {\r\n+            Object oldValue = lookup[index];\r\n+            lookup[index] = value;\r\n+            return oldValue == UNSET;\r\n+        } else {\r\n+            expandIndexedVariableTableAndSet(index, value);\r\n+            return true;\r\n+        }\r\n+    }\r\n+\r\n+    public Object removeIndexedVariable(int index) {\r\n+        Object[] lookup = indexedVariables;\r\n+        if (index < lookup.length) {\r\n+            Object v = lookup[index];\r\n+            lookup[index] = UNSET;\r\n+            return v;\r\n+        } else {\r\n+            return UNSET;\r\n+        }\r\n+    }\r\n+\r\n+    public int size() {\r\n+        int count = 0;\r\n+        for (Object o : indexedVariables) {\r\n+            if (o != UNSET) {\r\n+                ++count;\r\n+            }\r\n+        }\r\n+\r\n+        //the fist element in `indexedVariables` is a set to keep all the InternalThreadLocal to remove\r\n+        //look at method `addToVariablesToRemove`\r\n+        return count - 1;\r\n+    }\r\n+\r\n+    private static Object[] newIndexedVariableTable() {\r\n+        Object[] array = new Object[32];\r\n+        Arrays.fill(array, UNSET);\r\n+        return array;\r\n+    }\r\n+\r\n+    private static InternalThreadLocalMap fastGet(InternalThread thread) {\r\n+        InternalThreadLocalMap threadLocalMap = thread.threadLocalMap();\r\n+        if (threadLocalMap == null) {\r\n+            thread.setThreadLocalMap(threadLocalMap = new InternalThreadLocalMap());\r\n+        }\r\n+        return threadLocalMap;\r\n+    }\r\n+\r\n+    private static InternalThreadLocalMap slowGet() {\r\n+        ThreadLocal<InternalThreadLocalMap> slowThreadLocalMap = InternalThreadLocalMap.slowThreadLocalMap;\r\n+        InternalThreadLocalMap ret = slowThreadLocalMap.get();\r\n+        if (ret == null) {\r\n+            ret = new InternalThreadLocalMap();\r\n+            slowThreadLocalMap.set(ret);\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    private void expandIndexedVariableTableAndSet(int index, Object value) {\r\n+        Object[] oldArray = indexedVariables;\r\n+        final int oldCapacity = oldArray.length;\r\n+        int newCapacity = index;\r\n+        newCapacity |= newCapacity >>> 1;\r\n+        newCapacity |= newCapacity >>> 2;\r\n+        newCapacity |= newCapacity >>> 4;\r\n+        newCapacity |= newCapacity >>> 8;\r\n+        newCapacity |= newCapacity >>> 16;\r\n+        newCapacity++;\r\n+\r\n+        Object[] newArray = Arrays.copyOf(oldArray, newCapacity);\r\n+        Arrays.fill(newArray, oldCapacity, newArray.length, UNSET);\r\n+        newArray[index] = value;\r\n+        indexedVariables = newArray;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadlocal/NamedInternalThreadFactory.java", "source2": "org/apache/dubbo/common/threadlocal/NamedInternalThreadFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,47 +1,47 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.threadlocal;\n-\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-\n-/**\n- * NamedInternalThreadFactory\n- * This is a threadFactory which produce {@link InternalThread}\n- */\n-public class NamedInternalThreadFactory extends NamedThreadFactory {\n-\n-    public NamedInternalThreadFactory() {\n-        super();\n-    }\n-\n-    public NamedInternalThreadFactory(String prefix) {\n-        super(prefix, false);\n-    }\n-\n-    public NamedInternalThreadFactory(String prefix, boolean daemon) {\n-        super(prefix, daemon);\n-    }\n-\n-    @Override\n-    public Thread newThread(Runnable runnable) {\n-        String name = mPrefix + mThreadNum.getAndIncrement();\n-        InternalThread ret = new InternalThread(mGroup, InternalRunnable.Wrap(runnable), name, 0);\n-        ret.setDaemon(mDaemon);\n-        return ret;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadlocal;\r\n+\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+\r\n+/**\r\n+ * NamedInternalThreadFactory\r\n+ * This is a threadFactory which produce {@link InternalThread}\r\n+ */\r\n+public class NamedInternalThreadFactory extends NamedThreadFactory {\r\n+\r\n+    public NamedInternalThreadFactory() {\r\n+        super();\r\n+    }\r\n+\r\n+    public NamedInternalThreadFactory(String prefix) {\r\n+        super(prefix, false);\r\n+    }\r\n+\r\n+    public NamedInternalThreadFactory(String prefix, boolean daemon) {\r\n+        super(prefix, daemon);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Thread newThread(Runnable runnable) {\r\n+        String name = mPrefix + mThreadNum.getAndIncrement();\r\n+        InternalThread ret = new InternalThread(mGroup, InternalRunnable.Wrap(runnable), name, 0);\r\n+        ret.setDaemon(mDaemon);\r\n+        return ret;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/ThreadPool.java", "source2": "org/apache/dubbo/common/threadpool/ThreadPool.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.concurrent.Executor;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\n-\n-/**\n- * ThreadPool\n- */\n-@SPI(\"fixed\")\n-public interface ThreadPool {\n-\n-    /**\n-     * Thread pool\n-     *\n-     * @param url URL contains thread parameter\n-     * @return thread pool\n-     */\n-    @Adaptive({THREADPOOL_KEY})\n-    Executor getExecutor(URL url);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.concurrent.Executor;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\r\n+\r\n+/**\r\n+ * ThreadPool\r\n+ */\r\n+@SPI(\"fixed\")\r\n+public interface ThreadPool {\r\n+\r\n+    /**\r\n+     * Thread pool\r\n+     *\r\n+     * @param url URL contains thread parameter\r\n+     * @return thread pool\r\n+     */\r\n+    @Adaptive({THREADPOOL_KEY})\r\n+    Executor getExecutor(URL url);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/ThreadlessExecutor.java", "source2": "org/apache/dubbo/common/threadpool/ThreadlessExecutor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,202 +1,202 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.concurrent.AbstractExecutorService;\n-import java.util.concurrent.BlockingQueue;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-\n-/**\n- * The most important difference between this Executor and other normal Executor is that this one doesn't manage\n- * any thread.\n- * <p>\n- * Tasks submitted to this executor through {@link #execute(Runnable)} will not get scheduled to a specific thread, though normal executors always do the schedule.\n- * Those tasks are stored in a blocking queue and will only be executed when a thread calls {@link #waitAndDrain()}, the thread executing the task\n- * is exactly the same as the one calling waitAndDrain.\n- */\n-public class ThreadlessExecutor extends AbstractExecutorService {\n-    private static final Logger logger = LoggerFactory.getLogger(ThreadlessExecutor.class.getName());\n-\n-    private final BlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();\n-\n-    private ExecutorService sharedExecutor;\n-\n-    private CompletableFuture<?> waitingFuture;\n-\n-    private boolean finished = false;\n-\n-    private volatile boolean waiting = true;\n-\n-    private final Object lock = new Object();\n-\n-    public ThreadlessExecutor(ExecutorService sharedExecutor) {\n-        this.sharedExecutor = sharedExecutor;\n-    }\n-\n-    public CompletableFuture<?> getWaitingFuture() {\n-        return waitingFuture;\n-    }\n-\n-    public void setWaitingFuture(CompletableFuture<?> waitingFuture) {\n-        this.waitingFuture = waitingFuture;\n-    }\n-\n-    public boolean isWaiting() {\n-        return waiting;\n-    }\n-\n-    /**\n-     * Waits until there is a task, executes the task and all queued tasks (if there're any). The task is either a normal\n-     * response or a timeout response.\n-     */\n-    public void waitAndDrain() throws InterruptedException {\n-        /**\n-         * Usually, {@link #waitAndDrain()} will only get called once. It blocks for the response for the first time,\n-         * once the response (the task) reached and being executed waitAndDrain will return, the whole request process\n-         * then finishes. Subsequent calls on {@link #waitAndDrain()} (if there're any) should return immediately.\n-         *\n-         * There's no need to worry that {@link #finished} is not thread-safe. Checking and updating of\n-         * 'finished' only appear in waitAndDrain, since waitAndDrain is binding to one RPC call (one thread), the call\n-         * of it is totally sequential.\n-         */\n-        if (finished) {\n-            return;\n-        }\n-\n-        Runnable runnable;\n-        try {\n-            runnable = queue.take();\n-        }catch (InterruptedException e){\n-            waiting = false;\n-            throw e;\n-        }\n-\n-        synchronized (lock) {\n-            waiting = false;\n-            runnable.run();\n-        }\n-\n-        runnable = queue.poll();\n-        while (runnable != null) {\n-            runnable.run();\n-            runnable = queue.poll();\n-        }\n-        // mark the status of ThreadlessExecutor as finished.\n-        finished = true;\n-    }\n-\n-    public long waitAndDrain(long timeout, TimeUnit unit) throws InterruptedException, TimeoutException {\n-        /*long startInMs = System.currentTimeMillis();\n-        Runnable runnable = queue.poll(timeout, unit);\n-        if (runnable == null) {\n-            throw new TimeoutException();\n-        }\n-        runnable.run();\n-        long elapsedInMs = System.currentTimeMillis() - startInMs;\n-        long timeLeft = timeout - elapsedInMs;\n-        if (timeLeft < 0) {\n-            throw new TimeoutException();\n-        }\n-        return timeLeft;*/\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    /**\n-     * If the calling thread is still waiting for a callback task, add the task into the blocking queue to wait for schedule.\n-     * Otherwise, submit to shared callback executor directly.\n-     *\n-     * @param runnable\n-     */\n-    @Override\n-    public void execute(Runnable runnable) {\n-        runnable = new RunnableWrapper(runnable);\n-        synchronized (lock) {\n-            if (!waiting) {\n-                sharedExecutor.execute(runnable);\n-            } else {\n-                queue.add(runnable);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * tells the thread blocking on {@link #waitAndDrain()} to return, despite of the current status, to avoid endless waiting.\n-     */\n-    public void notifyReturn(Throwable t) {\n-        // an empty runnable task.\n-        execute(() -> {\n-            waitingFuture.completeExceptionally(t);\n-        });\n-    }\n-\n-    /**\n-     * The following methods are still not supported\n-     */\n-\n-    @Override\n-    public void shutdown() {\n-        shutdownNow();\n-    }\n-\n-    @Override\n-    public List<Runnable> shutdownNow() {\n-        notifyReturn(new IllegalStateException(\"Consumer is shutting down and this call is going to be stopped without \" +\n-                \"receiving any result, usually this is called by a slow provider instance or bad service implementation.\"));\n-        return Collections.emptyList();\n-    }\n-\n-    @Override\n-    public boolean isShutdown() {\n-        return false;\n-    }\n-\n-    @Override\n-    public boolean isTerminated() {\n-        return false;\n-    }\n-\n-    @Override\n-    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {\n-        return false;\n-    }\n-\n-    private static class RunnableWrapper implements Runnable {\n-        private Runnable runnable;\n-\n-        public RunnableWrapper(Runnable runnable) {\n-            this.runnable = runnable;\n-        }\n-\n-        @Override\n-        public void run() {\n-            try {\n-                runnable.run();\n-            } catch (Throwable t) {\n-                logger.info(t);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.concurrent.AbstractExecutorService;\r\n+import java.util.concurrent.BlockingQueue;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+\r\n+/**\r\n+ * The most important difference between this Executor and other normal Executor is that this one doesn't manage\r\n+ * any thread.\r\n+ * <p>\r\n+ * Tasks submitted to this executor through {@link #execute(Runnable)} will not get scheduled to a specific thread, though normal executors always do the schedule.\r\n+ * Those tasks are stored in a blocking queue and will only be executed when a thread calls {@link #waitAndDrain()}, the thread executing the task\r\n+ * is exactly the same as the one calling waitAndDrain.\r\n+ */\r\n+public class ThreadlessExecutor extends AbstractExecutorService {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ThreadlessExecutor.class.getName());\r\n+\r\n+    private final BlockingQueue<Runnable> queue = new LinkedBlockingQueue<>();\r\n+\r\n+    private ExecutorService sharedExecutor;\r\n+\r\n+    private CompletableFuture<?> waitingFuture;\r\n+\r\n+    private boolean finished = false;\r\n+\r\n+    private volatile boolean waiting = true;\r\n+\r\n+    private final Object lock = new Object();\r\n+\r\n+    public ThreadlessExecutor(ExecutorService sharedExecutor) {\r\n+        this.sharedExecutor = sharedExecutor;\r\n+    }\r\n+\r\n+    public CompletableFuture<?> getWaitingFuture() {\r\n+        return waitingFuture;\r\n+    }\r\n+\r\n+    public void setWaitingFuture(CompletableFuture<?> waitingFuture) {\r\n+        this.waitingFuture = waitingFuture;\r\n+    }\r\n+\r\n+    public boolean isWaiting() {\r\n+        return waiting;\r\n+    }\r\n+\r\n+    /**\r\n+     * Waits until there is a task, executes the task and all queued tasks (if there're any). The task is either a normal\r\n+     * response or a timeout response.\r\n+     */\r\n+    public void waitAndDrain() throws InterruptedException {\r\n+        /**\r\n+         * Usually, {@link #waitAndDrain()} will only get called once. It blocks for the response for the first time,\r\n+         * once the response (the task) reached and being executed waitAndDrain will return, the whole request process\r\n+         * then finishes. Subsequent calls on {@link #waitAndDrain()} (if there're any) should return immediately.\r\n+         *\r\n+         * There's no need to worry that {@link #finished} is not thread-safe. Checking and updating of\r\n+         * 'finished' only appear in waitAndDrain, since waitAndDrain is binding to one RPC call (one thread), the call\r\n+         * of it is totally sequential.\r\n+         */\r\n+        if (finished) {\r\n+            return;\r\n+        }\r\n+\r\n+        Runnable runnable;\r\n+        try {\r\n+            runnable = queue.take();\r\n+        }catch (InterruptedException e){\r\n+            waiting = false;\r\n+            throw e;\r\n+        }\r\n+\r\n+        synchronized (lock) {\r\n+            waiting = false;\r\n+            runnable.run();\r\n+        }\r\n+\r\n+        runnable = queue.poll();\r\n+        while (runnable != null) {\r\n+            runnable.run();\r\n+            runnable = queue.poll();\r\n+        }\r\n+        // mark the status of ThreadlessExecutor as finished.\r\n+        finished = true;\r\n+    }\r\n+\r\n+    public long waitAndDrain(long timeout, TimeUnit unit) throws InterruptedException, TimeoutException {\r\n+        /*long startInMs = System.currentTimeMillis();\r\n+        Runnable runnable = queue.poll(timeout, unit);\r\n+        if (runnable == null) {\r\n+            throw new TimeoutException();\r\n+        }\r\n+        runnable.run();\r\n+        long elapsedInMs = System.currentTimeMillis() - startInMs;\r\n+        long timeLeft = timeout - elapsedInMs;\r\n+        if (timeLeft < 0) {\r\n+            throw new TimeoutException();\r\n+        }\r\n+        return timeLeft;*/\r\n+        throw new UnsupportedOperationException();\r\n+    }\r\n+\r\n+    /**\r\n+     * If the calling thread is still waiting for a callback task, add the task into the blocking queue to wait for schedule.\r\n+     * Otherwise, submit to shared callback executor directly.\r\n+     *\r\n+     * @param runnable\r\n+     */\r\n+    @Override\r\n+    public void execute(Runnable runnable) {\r\n+        runnable = new RunnableWrapper(runnable);\r\n+        synchronized (lock) {\r\n+            if (!waiting) {\r\n+                sharedExecutor.execute(runnable);\r\n+            } else {\r\n+                queue.add(runnable);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * tells the thread blocking on {@link #waitAndDrain()} to return, despite of the current status, to avoid endless waiting.\r\n+     */\r\n+    public void notifyReturn(Throwable t) {\r\n+        // an empty runnable task.\r\n+        execute(() -> {\r\n+            waitingFuture.completeExceptionally(t);\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * The following methods are still not supported\r\n+     */\r\n+\r\n+    @Override\r\n+    public void shutdown() {\r\n+        shutdownNow();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<Runnable> shutdownNow() {\r\n+        notifyReturn(new IllegalStateException(\"Consumer is shutting down and this call is going to be stopped without \" +\r\n+                \"receiving any result, usually this is called by a slow provider instance or bad service implementation.\"));\r\n+        return Collections.emptyList();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isShutdown() {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isTerminated() {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {\r\n+        return false;\r\n+    }\r\n+\r\n+    private static class RunnableWrapper implements Runnable {\r\n+        private Runnable runnable;\r\n+\r\n+        public RunnableWrapper(Runnable runnable) {\r\n+            this.runnable = runnable;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            try {\r\n+                runnable.run();\r\n+            } catch (Throwable t) {\r\n+                logger.info(t);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/concurrent/ScheduledCompletableFuture.java", "source2": "org/apache/dubbo/common/threadpool/concurrent/ScheduledCompletableFuture.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool.concurrent;\n-\n-\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.TimeUnit;\n-import java.util.function.Supplier;\n-\n-public class ScheduledCompletableFuture {\n-\n-    public static <T> CompletableFuture<T> schedule(\n-            ScheduledExecutorService executor,\n-            Supplier<T> task,\n-            long delay,\n-            TimeUnit unit\n-    ) {\n-        CompletableFuture<T> completableFuture = new CompletableFuture<>();\n-        executor.schedule(\n-                () -> {\n-                    try {\n-                        return completableFuture.complete(task.get());\n-                    } catch (Throwable t) {\n-                        return completableFuture.completeExceptionally(t);\n-                    }\n-                },\n-                delay,\n-                unit\n-        );\n-        return completableFuture;\n-    }\n-\n-    public static <T> CompletableFuture<T> submit(\n-            ScheduledExecutorService executor,\n-            Supplier<T> task\n-    ) {\n-        CompletableFuture<T> completableFuture = new CompletableFuture<>();\n-        executor.submit(\n-                () -> {\n-                    try {\n-                        return completableFuture.complete(task.get());\n-                    } catch (Throwable t) {\n-                        return completableFuture.completeExceptionally(t);\n-                    }\n-                }\n-        );\n-        return completableFuture;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool.concurrent;\r\n+\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.function.Supplier;\r\n+\r\n+public class ScheduledCompletableFuture {\r\n+\r\n+    public static <T> CompletableFuture<T> schedule(\r\n+            ScheduledExecutorService executor,\r\n+            Supplier<T> task,\r\n+            long delay,\r\n+            TimeUnit unit\r\n+    ) {\r\n+        CompletableFuture<T> completableFuture = new CompletableFuture<>();\r\n+        executor.schedule(\r\n+                () -> {\r\n+                    try {\r\n+                        return completableFuture.complete(task.get());\r\n+                    } catch (Throwable t) {\r\n+                        return completableFuture.completeExceptionally(t);\r\n+                    }\r\n+                },\r\n+                delay,\r\n+                unit\r\n+        );\r\n+        return completableFuture;\r\n+    }\r\n+\r\n+    public static <T> CompletableFuture<T> submit(\r\n+            ScheduledExecutorService executor,\r\n+            Supplier<T> task\r\n+    ) {\r\n+        CompletableFuture<T> completableFuture = new CompletableFuture<>();\r\n+        executor.submit(\r\n+                () -> {\r\n+                    try {\r\n+                        return completableFuture.complete(task.get());\r\n+                    } catch (Throwable t) {\r\n+                        return completableFuture.completeExceptionally(t);\r\n+                    }\r\n+                }\r\n+        );\r\n+        return completableFuture;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/event/ThreadPoolExhaustedEvent.java", "source2": "org/apache/dubbo/common/threadpool/event/ThreadPoolExhaustedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool.event;\n-\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * An {@link Event Dubbo event} when the Dubbo thread pool is exhausted.\n- *\n- * @see Event\n- */\n-public class ThreadPoolExhaustedEvent extends Event {\n-\n-    final String msg;\n-\n-    public ThreadPoolExhaustedEvent(Object source, String msg) {\n-        super(source);\n-        this.msg = msg;\n-    }\n-\n-    public String getMsg() {\n-        return msg;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool.event;\r\n+\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * An {@link Event Dubbo event} when the Dubbo thread pool is exhausted.\r\n+ *\r\n+ * @see Event\r\n+ */\r\n+public class ThreadPoolExhaustedEvent extends Event {\r\n+\r\n+    final String msg;\r\n+\r\n+    public ThreadPoolExhaustedEvent(Object source, String msg) {\r\n+        super(source);\r\n+        this.msg = msg;\r\n+    }\r\n+\r\n+    public String getMsg() {\r\n+        return msg;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java", "source2": "org/apache/dubbo/common/threadpool/manager/DefaultExecutorRepository.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,175 +1,175 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool.manager;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.ThreadPool;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ThreadPoolExecutor;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-\n-/**\n- * Consider implementing {@code Licycle} to enable executors shutdown when the process stops.\n- */\n-public class DefaultExecutorRepository implements ExecutorRepository {\n-    private static final Logger logger = LoggerFactory.getLogger(DefaultExecutorRepository.class);\n-\n-    private int DEFAULT_SCHEDULER_SIZE = Runtime.getRuntime().availableProcessors();\n-\n-    private final ExecutorService SHARED_EXECUTOR = Executors.newCachedThreadPool(new NamedThreadFactory(\"DubboSharedHandler\", true));\n-\n-    private Ring<ScheduledExecutorService> scheduledExecutors = new Ring<>();\n-\n-    private ScheduledExecutorService serviceExporterExecutor;\n-\n-    private ScheduledExecutorService reconnectScheduledExecutor;\n-\n-    private ConcurrentMap<String, ConcurrentMap<Integer, ExecutorService>> data = new ConcurrentHashMap<>();\n-\n-    public DefaultExecutorRepository() {\n-        for (int i = 0; i < DEFAULT_SCHEDULER_SIZE; i++) {\n-            ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-framework-scheduler\"));\n-            scheduledExecutors.addItem(scheduler);\n-        }\n-//\n-//        reconnectScheduledExecutor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-reconnect-scheduler\"));\n-        serviceExporterExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory(\"Dubbo-exporter-scheduler\"));\n-    }\n-\n-    /**\n-     * Get called when the server or client instance initiating.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    public synchronized ExecutorService createExecutorIfAbsent(URL url) {\n-        Map<Integer, ExecutorService> executors = data.computeIfAbsent(EXECUTOR_SERVICE_COMPONENT_KEY, k -> new ConcurrentHashMap<>());\n-        //issue-7054:Consumer's executor is sharing globally, key=Integer.MAX_VALUE. Provider's executor is sharing by protocol.\n-        Integer portKey = CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(SIDE_KEY)) ? Integer.MAX_VALUE : url.getPort();\n-        ExecutorService executor = executors.computeIfAbsent(portKey, k -> createExecutor(url));\n-        // If executor has been shut down, create a new one\n-        if (executor.isShutdown() || executor.isTerminated()) {\n-            executors.remove(portKey);\n-            executor = createExecutor(url);\n-            executors.put(portKey, executor);\n-        }\n-        return executor;\n-    }\n-\n-    public ExecutorService getExecutor(URL url) {\n-        Map<Integer, ExecutorService> executors = data.get(EXECUTOR_SERVICE_COMPONENT_KEY);\n-        /**\n-         * It's guaranteed that this method is called after {@link #createExecutorIfAbsent(URL)}, so data should already\n-         * have Executor instances generated and stored.\n-         */\n-        if (executors == null) {\n-            logger.warn(\"No available executors, this is not expected, framework should call createExecutorIfAbsent first \" +\n-                    \"before coming to here.\");\n-            return null;\n-        }\n-        //issue-7054:Consumer's executor is sharing globally, key=Integer.MAX_VALUE. Provider's executor is sharing by protocol.\n-        Integer portKey = CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(SIDE_KEY)) ? Integer.MAX_VALUE : url.getPort();\n-        ExecutorService executor = executors.get(portKey);\n-        if (executor != null && (executor.isShutdown() || executor.isTerminated())) {\n-            executors.remove(portKey);\n-            // Does not re-create a shutdown executor, use SHARED_EXECUTOR for downgrade.\n-            executor = null;\n-            logger.info(\"Executor for \" + url + \" is shutdown.\");\n-        }\n-        if (executor == null) {\n-            return SHARED_EXECUTOR;\n-        } else {\n-            return executor;\n-        }\n-    }\n-\n-    @Override\n-    public void updateThreadpool(URL url, ExecutorService executor) {\n-        try {\n-            if (url.hasParameter(THREADS_KEY)\n-                    && executor instanceof ThreadPoolExecutor && !executor.isShutdown()) {\n-                ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;\n-                int threads = url.getParameter(THREADS_KEY, 0);\n-                int max = threadPoolExecutor.getMaximumPoolSize();\n-                int core = threadPoolExecutor.getCorePoolSize();\n-                if (threads > 0 && (threads != max || threads != core)) {\n-                    if (threads < core) {\n-                        threadPoolExecutor.setCorePoolSize(threads);\n-                        if (core == max) {\n-                            threadPoolExecutor.setMaximumPoolSize(threads);\n-                        }\n-                    } else {\n-                        threadPoolExecutor.setMaximumPoolSize(threads);\n-                        if (core == max) {\n-                            threadPoolExecutor.setCorePoolSize(threads);\n-                        }\n-                    }\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-    }\n-\n-    @Override\n-    public ScheduledExecutorService nextScheduledExecutor() {\n-        return scheduledExecutors.pollItem();\n-    }\n-\n-    @Override\n-    public ScheduledExecutorService getServiceExporterExecutor() {\n-        return serviceExporterExecutor;\n-    }\n-\n-    @Override\n-    public ExecutorService getSharedExecutor() {\n-        return SHARED_EXECUTOR;\n-    }\n-\n-    @Override\n-    public void destroyAll() {\n-        data.values().forEach(executors -> {\n-            if (executors != null) {\n-                executors.values().forEach(executor -> {\n-                    if (executor != null && !executor.isShutdown()) {\n-                        ExecutorUtil.shutdownNow(executor, 100);\n-                    }\n-                });\n-            }\n-        });\n-    }\n-\n-    private ExecutorService createExecutor(URL url) {\n-        return (ExecutorService) ExtensionLoader.getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool.manager;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadPool;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+\r\n+/**\r\n+ * Consider implementing {@code Licycle} to enable executors shutdown when the process stops.\r\n+ */\r\n+public class DefaultExecutorRepository implements ExecutorRepository {\r\n+    private static final Logger logger = LoggerFactory.getLogger(DefaultExecutorRepository.class);\r\n+\r\n+    private int DEFAULT_SCHEDULER_SIZE = Runtime.getRuntime().availableProcessors();\r\n+\r\n+    private final ExecutorService SHARED_EXECUTOR = Executors.newCachedThreadPool(new NamedThreadFactory(\"DubboSharedHandler\", true));\r\n+\r\n+    private Ring<ScheduledExecutorService> scheduledExecutors = new Ring<>();\r\n+\r\n+    private ScheduledExecutorService serviceExporterExecutor;\r\n+\r\n+    private ScheduledExecutorService reconnectScheduledExecutor;\r\n+\r\n+    private ConcurrentMap<String, ConcurrentMap<Integer, ExecutorService>> data = new ConcurrentHashMap<>();\r\n+\r\n+    public DefaultExecutorRepository() {\r\n+        for (int i = 0; i < DEFAULT_SCHEDULER_SIZE; i++) {\r\n+            ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-framework-scheduler\"));\r\n+            scheduledExecutors.addItem(scheduler);\r\n+        }\r\n+//\r\n+//        reconnectScheduledExecutor = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-reconnect-scheduler\"));\r\n+        serviceExporterExecutor = Executors.newScheduledThreadPool(1, new NamedThreadFactory(\"Dubbo-exporter-scheduler\"));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get called when the server or client instance initiating.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    public synchronized ExecutorService createExecutorIfAbsent(URL url) {\r\n+        Map<Integer, ExecutorService> executors = data.computeIfAbsent(EXECUTOR_SERVICE_COMPONENT_KEY, k -> new ConcurrentHashMap<>());\r\n+        //issue-7054:Consumer's executor is sharing globally, key=Integer.MAX_VALUE. Provider's executor is sharing by protocol.\r\n+        Integer portKey = CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(SIDE_KEY)) ? Integer.MAX_VALUE : url.getPort();\r\n+        ExecutorService executor = executors.computeIfAbsent(portKey, k -> createExecutor(url));\r\n+        // If executor has been shut down, create a new one\r\n+        if (executor.isShutdown() || executor.isTerminated()) {\r\n+            executors.remove(portKey);\r\n+            executor = createExecutor(url);\r\n+            executors.put(portKey, executor);\r\n+        }\r\n+        return executor;\r\n+    }\r\n+\r\n+    public ExecutorService getExecutor(URL url) {\r\n+        Map<Integer, ExecutorService> executors = data.get(EXECUTOR_SERVICE_COMPONENT_KEY);\r\n+        /**\r\n+         * It's guaranteed that this method is called after {@link #createExecutorIfAbsent(URL)}, so data should already\r\n+         * have Executor instances generated and stored.\r\n+         */\r\n+        if (executors == null) {\r\n+            logger.warn(\"No available executors, this is not expected, framework should call createExecutorIfAbsent first \" +\r\n+                    \"before coming to here.\");\r\n+            return null;\r\n+        }\r\n+        //issue-7054:Consumer's executor is sharing globally, key=Integer.MAX_VALUE. Provider's executor is sharing by protocol.\r\n+        Integer portKey = CONSUMER_SIDE.equalsIgnoreCase(url.getParameter(SIDE_KEY)) ? Integer.MAX_VALUE : url.getPort();\r\n+        ExecutorService executor = executors.get(portKey);\r\n+        if (executor != null && (executor.isShutdown() || executor.isTerminated())) {\r\n+            executors.remove(portKey);\r\n+            // Does not re-create a shutdown executor, use SHARED_EXECUTOR for downgrade.\r\n+            executor = null;\r\n+            logger.info(\"Executor for \" + url + \" is shutdown.\");\r\n+        }\r\n+        if (executor == null) {\r\n+            return SHARED_EXECUTOR;\r\n+        } else {\r\n+            return executor;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void updateThreadpool(URL url, ExecutorService executor) {\r\n+        try {\r\n+            if (url.hasParameter(THREADS_KEY)\r\n+                    && executor instanceof ThreadPoolExecutor && !executor.isShutdown()) {\r\n+                ThreadPoolExecutor threadPoolExecutor = (ThreadPoolExecutor) executor;\r\n+                int threads = url.getParameter(THREADS_KEY, 0);\r\n+                int max = threadPoolExecutor.getMaximumPoolSize();\r\n+                int core = threadPoolExecutor.getCorePoolSize();\r\n+                if (threads > 0 && (threads != max || threads != core)) {\r\n+                    if (threads < core) {\r\n+                        threadPoolExecutor.setCorePoolSize(threads);\r\n+                        if (core == max) {\r\n+                            threadPoolExecutor.setMaximumPoolSize(threads);\r\n+                        }\r\n+                    } else {\r\n+                        threadPoolExecutor.setMaximumPoolSize(threads);\r\n+                        if (core == max) {\r\n+                            threadPoolExecutor.setCorePoolSize(threads);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public ScheduledExecutorService nextScheduledExecutor() {\r\n+        return scheduledExecutors.pollItem();\r\n+    }\r\n+\r\n+    @Override\r\n+    public ScheduledExecutorService getServiceExporterExecutor() {\r\n+        return serviceExporterExecutor;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ExecutorService getSharedExecutor() {\r\n+        return SHARED_EXECUTOR;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroyAll() {\r\n+        data.values().forEach(executors -> {\r\n+            if (executors != null) {\r\n+                executors.values().forEach(executor -> {\r\n+                    if (executor != null && !executor.isShutdown()) {\r\n+                        ExecutorUtil.shutdownNow(executor, 100);\r\n+                    }\r\n+                });\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private ExecutorService createExecutor(URL url) {\r\n+        return (ExecutorService) ExtensionLoader.getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java", "source2": "org/apache/dubbo/common/threadpool/manager/ExecutorRepository.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool.manager;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.ScheduledExecutorService;\n-\n-/**\n- *\n- */\n-@SPI(\"default\")\n-public interface ExecutorRepository {\n-\n-    /**\n-     * Called by both Client and Server. TODO, consider separate these two parts.\n-     * When the Client or Server starts for the first time, generate a new threadpool according to the parameters specified.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    ExecutorService createExecutorIfAbsent(URL url);\n-\n-    ExecutorService getExecutor(URL url);\n-\n-    /**\n-     * Modify some of the threadpool's properties according to the url, for example, coreSize, maxSize, ...\n-     *\n-     * @param url\n-     * @param executor\n-     */\n-    void updateThreadpool(URL url, ExecutorService executor);\n-\n-    /**\n-     * Returns a scheduler from the scheduler list, call this method whenever you need a scheduler for a cron job.\n-     * If your cron cannot burden the possible schedule delay caused by sharing the same scheduler, please consider define a dedicate one.\n-     *\n-     * @return\n-     */\n-    ScheduledExecutorService nextScheduledExecutor();\n-\n-    ScheduledExecutorService getServiceExporterExecutor();\n-\n-    /**\n-     * Get the default shared threadpool.\n-     *\n-     * @return\n-     */\n-    ExecutorService getSharedExecutor();\n-\n-    /**\n-     * Destroy all executors that are not in shutdown state\n-     */\n-    void destroyAll();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool.manager;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+@SPI(\"default\")\r\n+public interface ExecutorRepository {\r\n+\r\n+    /**\r\n+     * Called by both Client and Server. TODO, consider separate these two parts.\r\n+     * When the Client or Server starts for the first time, generate a new threadpool according to the parameters specified.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    ExecutorService createExecutorIfAbsent(URL url);\r\n+\r\n+    ExecutorService getExecutor(URL url);\r\n+\r\n+    /**\r\n+     * Modify some of the threadpool's properties according to the url, for example, coreSize, maxSize, ...\r\n+     *\r\n+     * @param url\r\n+     * @param executor\r\n+     */\r\n+    void updateThreadpool(URL url, ExecutorService executor);\r\n+\r\n+    /**\r\n+     * Returns a scheduler from the scheduler list, call this method whenever you need a scheduler for a cron job.\r\n+     * If your cron cannot burden the possible schedule delay caused by sharing the same scheduler, please consider define a dedicate one.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    ScheduledExecutorService nextScheduledExecutor();\r\n+\r\n+    ScheduledExecutorService getServiceExporterExecutor();\r\n+\r\n+    /**\r\n+     * Get the default shared threadpool.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    ExecutorService getSharedExecutor();\r\n+\r\n+    /**\r\n+     * Destroy all executors that are not in shutdown state\r\n+     */\r\n+    void destroyAll();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/manager/Ring.java", "source2": "org/apache/dubbo/common/threadpool/manager/Ring.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,66 +1,66 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.threadpool.manager;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.concurrent.CopyOnWriteArrayList;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-public class Ring<T> {\n-\n-    AtomicInteger count = new AtomicInteger();\n-\n-    private List<T> itemList = new CopyOnWriteArrayList<T>();\n-\n-    public void addItem(T t) {\n-        if (t != null) {\n-            itemList.add(t);\n-        }\n-    }\n-\n-    public T pollItem() {\n-        if (itemList.isEmpty()) {\n-            return null;\n-        }\n-        if (itemList.size() == 1) {\n-            return itemList.get(0);\n-        }\n-\n-        if (count.intValue() > Integer.MAX_VALUE - 10000) {\n-            count.set(count.get() % itemList.size());\n-        }\n-\n-        int index = Math.abs(count.getAndIncrement()) % itemList.size();\n-        return itemList.get(index);\n-    }\n-\n-    public T peekItem() {\n-        if (itemList.isEmpty()) {\n-            return null;\n-        }\n-        if (itemList.size() == 1) {\n-            return itemList.get(0);\n-        }\n-        int index = Math.abs(count.get()) % itemList.size();\n-        return itemList.get(index);\n-    }\n-\n-    public List<T> listItems() {\n-        return Collections.unmodifiableList(itemList);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.threadpool.manager;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.concurrent.CopyOnWriteArrayList;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+public class Ring<T> {\r\n+\r\n+    AtomicInteger count = new AtomicInteger();\r\n+\r\n+    private List<T> itemList = new CopyOnWriteArrayList<T>();\r\n+\r\n+    public void addItem(T t) {\r\n+        if (t != null) {\r\n+            itemList.add(t);\r\n+        }\r\n+    }\r\n+\r\n+    public T pollItem() {\r\n+        if (itemList.isEmpty()) {\r\n+            return null;\r\n+        }\r\n+        if (itemList.size() == 1) {\r\n+            return itemList.get(0);\r\n+        }\r\n+\r\n+        if (count.intValue() > Integer.MAX_VALUE - 10000) {\r\n+            count.set(count.get() % itemList.size());\r\n+        }\r\n+\r\n+        int index = Math.abs(count.getAndIncrement()) % itemList.size();\r\n+        return itemList.get(index);\r\n+    }\r\n+\r\n+    public T peekItem() {\r\n+        if (itemList.isEmpty()) {\r\n+            return null;\r\n+        }\r\n+        if (itemList.size() == 1) {\r\n+            return itemList.get(0);\r\n+        }\r\n+        int index = Math.abs(count.get()) % itemList.size();\r\n+        return itemList.get(index);\r\n+    }\r\n+\r\n+    public List<T> listItems() {\r\n+        return Collections.unmodifiableList(itemList);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/support/eager/EagerThreadPool.java", "source2": "org/apache/dubbo/common/threadpool/support/eager/EagerThreadPool.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.threadpool.support.eager;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\n-import org.apache.dubbo.common.threadpool.ThreadPool;\n-import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\n-\n-import java.util.concurrent.Executor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ALIVE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CORE_THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_ALIVE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CORE_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_QUEUES;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\n-import static org.apache.dubbo.common.constants.CommonConstants.QUEUES_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-\n-/**\n- * EagerThreadPool\n- * When the core threads are all in busy,\n- * create new thread instead of putting task into blocking queue.\n- */\n-public class EagerThreadPool implements ThreadPool {\n-\n-    @Override\n-    public Executor getExecutor(URL url) {\n-        String name = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\n-        int cores = url.getParameter(CORE_THREADS_KEY, DEFAULT_CORE_THREADS);\n-        int threads = url.getParameter(THREADS_KEY, Integer.MAX_VALUE);\n-        int queues = url.getParameter(QUEUES_KEY, DEFAULT_QUEUES);\n-        int alive = url.getParameter(ALIVE_KEY, DEFAULT_ALIVE);\n-\n-        // init queue and executor\n-        TaskQueue<Runnable> taskQueue = new TaskQueue<Runnable>(queues <= 0 ? 1 : queues);\n-        EagerThreadPoolExecutor executor = new EagerThreadPoolExecutor(cores,\n-                threads,\n-                alive,\n-                TimeUnit.MILLISECONDS,\n-                taskQueue,\n-                new NamedInternalThreadFactory(name, true),\n-                new AbortPolicyWithReport(name, url));\n-        taskQueue.setExecutor(executor);\n-        return executor;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadpool.support.eager;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadPool;\r\n+import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\r\n+\r\n+import java.util.concurrent.Executor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ALIVE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CORE_THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_ALIVE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CORE_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_QUEUES;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.QUEUES_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+\r\n+/**\r\n+ * EagerThreadPool\r\n+ * When the core threads are all in busy,\r\n+ * create new thread instead of putting task into blocking queue.\r\n+ */\r\n+public class EagerThreadPool implements ThreadPool {\r\n+\r\n+    @Override\r\n+    public Executor getExecutor(URL url) {\r\n+        String name = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\r\n+        int cores = url.getParameter(CORE_THREADS_KEY, DEFAULT_CORE_THREADS);\r\n+        int threads = url.getParameter(THREADS_KEY, Integer.MAX_VALUE);\r\n+        int queues = url.getParameter(QUEUES_KEY, DEFAULT_QUEUES);\r\n+        int alive = url.getParameter(ALIVE_KEY, DEFAULT_ALIVE);\r\n+\r\n+        // init queue and executor\r\n+        TaskQueue<Runnable> taskQueue = new TaskQueue<Runnable>(queues <= 0 ? 1 : queues);\r\n+        EagerThreadPoolExecutor executor = new EagerThreadPoolExecutor(cores,\r\n+                threads,\r\n+                alive,\r\n+                TimeUnit.MILLISECONDS,\r\n+                taskQueue,\r\n+                new NamedInternalThreadFactory(name, true),\r\n+                new AbortPolicyWithReport(name, url));\r\n+        taskQueue.setExecutor(executor);\r\n+        return executor;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/threadpool/support/limited/LimitedThreadPool.java", "source2": "org/apache/dubbo/common/threadpool/support/limited/LimitedThreadPool.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.threadpool.support.limited;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\n-import org.apache.dubbo.common.threadpool.ThreadPool;\n-import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\n-\n-import java.util.concurrent.Executor;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.SynchronousQueue;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CORE_THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CORE_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_QUEUES;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\n-import static org.apache.dubbo.common.constants.CommonConstants.QUEUES_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-\n-/**\n- * Creates a thread pool that creates new threads as needed until limits reaches. This thread pool will not shrink\n- * automatically.\n- */\n-public class LimitedThreadPool implements ThreadPool {\n-\n-    @Override\n-    public Executor getExecutor(URL url) {\n-        String name = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\n-        int cores = url.getParameter(CORE_THREADS_KEY, DEFAULT_CORE_THREADS);\n-        int threads = url.getParameter(THREADS_KEY, DEFAULT_THREADS);\n-        int queues = url.getParameter(QUEUES_KEY, DEFAULT_QUEUES);\n-        return new ThreadPoolExecutor(cores, threads, Long.MAX_VALUE, TimeUnit.MILLISECONDS,\n-                queues == 0 ? new SynchronousQueue<Runnable>() :\n-                        (queues < 0 ? new LinkedBlockingQueue<Runnable>()\n-                                : new LinkedBlockingQueue<Runnable>(queues)),\n-                new NamedInternalThreadFactory(name, true), new AbortPolicyWithReport(name, url));\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.threadpool.support.limited;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadPool;\r\n+import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\r\n+\r\n+import java.util.concurrent.Executor;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.SynchronousQueue;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CORE_THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CORE_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_QUEUES;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.QUEUES_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+\r\n+/**\r\n+ * Creates a thread pool that creates new threads as needed until limits reaches. This thread pool will not shrink\r\n+ * automatically.\r\n+ */\r\n+public class LimitedThreadPool implements ThreadPool {\r\n+\r\n+    @Override\r\n+    public Executor getExecutor(URL url) {\r\n+        String name = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\r\n+        int cores = url.getParameter(CORE_THREADS_KEY, DEFAULT_CORE_THREADS);\r\n+        int threads = url.getParameter(THREADS_KEY, DEFAULT_THREADS);\r\n+        int queues = url.getParameter(QUEUES_KEY, DEFAULT_QUEUES);\r\n+        return new ThreadPoolExecutor(cores, threads, Long.MAX_VALUE, TimeUnit.MILLISECONDS,\r\n+                queues == 0 ? new SynchronousQueue<Runnable>() :\r\n+                        (queues < 0 ? new LinkedBlockingQueue<Runnable>()\r\n+                                : new LinkedBlockingQueue<Runnable>(queues)),\r\n+                new NamedInternalThreadFactory(name, true), new AbortPolicyWithReport(name, url));\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/timer/HashedWheelTimer.java", "source2": "org/apache/dubbo/common/timer/HashedWheelTimer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,814 +1,814 @@\n-/*\n- * Copyright 2012 The Netty Project\n- *\n- * The Netty Project licenses this file to you under the Apache License,\n- * version 2.0 (the \"License\"); you may not use this file except in compliance\n- * with the License. You may obtain a copy of the License at:\n- *\n- *   http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n- * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\n- * License for the specific language governing permissions and limitations\n- * under the License.\n- */\n-\n-package org.apache.dubbo.common.timer;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.Locale;\n-import java.util.Queue;\n-import java.util.Set;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.RejectedExecutionException;\n-import java.util.concurrent.ThreadFactory;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-import java.util.concurrent.atomic.AtomicInteger;\n-import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-/**\n- * A {@link Timer} optimized for approximated I/O timeout scheduling.\n- *\n- * <h3>Tick Duration</h3>\n- * <p>\n- * As described with 'approximated', this timer does not execute the scheduled\n- * {@link TimerTask} on time.  {@link HashedWheelTimer}, on every tick, will\n- * check if there are any {@link TimerTask}s behind the schedule and execute\n- * them.\n- * <p>\n- * You can increase or decrease the accuracy of the execution timing by\n- * specifying smaller or larger tick duration in the constructor.  In most\n- * network applications, I/O timeout does not need to be accurate.  Therefore,\n- * the default tick duration is 100 milliseconds and you will not need to try\n- * different configurations in most cases.\n- *\n- * <h3>Ticks per Wheel (Wheel Size)</h3>\n- * <p>\n- * {@link HashedWheelTimer} maintains a data structure called 'wheel'.\n- * To put simply, a wheel is a hash table of {@link TimerTask}s whose hash\n- * function is 'dead line of the task'.  The default number of ticks per wheel\n- * (i.e. the size of the wheel) is 512.  You could specify a larger value\n- * if you are going to schedule a lot of timeouts.\n- *\n- * <h3>Do not create many instances.</h3>\n- * <p>\n- * {@link HashedWheelTimer} creates a new thread whenever it is instantiated and\n- * started.  Therefore, you should make sure to create only one instance and\n- * share it across your application.  One of the common mistakes, that makes\n- * your application unresponsive, is to create a new instance for every connection.\n- *\n- * <h3>Implementation Details</h3>\n- * <p>\n- * {@link HashedWheelTimer} is based on\n- * <a href=\"http://cseweb.ucsd.edu/users/varghese/\">George Varghese</a> and\n- * Tony Lauck's paper,\n- * <a href=\"http://cseweb.ucsd.edu/users/varghese/PAPERS/twheel.ps.Z\">'Hashed\n- * and Hierarchical Timing Wheels: data structures to efficiently implement a\n- * timer facility'</a>.  More comprehensive slides are located\n- * <a href=\"http://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt\">here</a>.\n- */\n-public class HashedWheelTimer implements Timer {\n-\n-    /**\n-     * may be in spi?\n-     */\n-    public static final String NAME = \"hased\";\n-\n-    private static final Logger logger = LoggerFactory.getLogger(HashedWheelTimer.class);\n-\n-    private static final AtomicInteger INSTANCE_COUNTER = new AtomicInteger();\n-    private static final AtomicBoolean WARNED_TOO_MANY_INSTANCES = new AtomicBoolean();\n-    private static final int INSTANCE_COUNT_LIMIT = 64;\n-    private static final AtomicIntegerFieldUpdater<HashedWheelTimer> WORKER_STATE_UPDATER =\n-            AtomicIntegerFieldUpdater.newUpdater(HashedWheelTimer.class, \"workerState\");\n-\n-    private final Worker worker = new Worker();\n-    private final Thread workerThread;\n-\n-    private static final int WORKER_STATE_INIT = 0;\n-    private static final int WORKER_STATE_STARTED = 1;\n-    private static final int WORKER_STATE_SHUTDOWN = 2;\n-\n-    /**\n-     * 0 - init, 1 - started, 2 - shut down\n-     */\n-    @SuppressWarnings({\"unused\", \"FieldMayBeFinal\"})\n-    private volatile int workerState;\n-\n-    private final long tickDuration;\n-    private final HashedWheelBucket[] wheel;\n-    private final int mask;\n-    private final CountDownLatch startTimeInitialized = new CountDownLatch(1);\n-    private final Queue<HashedWheelTimeout> timeouts = new LinkedBlockingQueue<>();\n-    private final Queue<HashedWheelTimeout> cancelledTimeouts = new LinkedBlockingQueue<>();\n-    private final AtomicLong pendingTimeouts = new AtomicLong(0);\n-    private final long maxPendingTimeouts;\n-\n-    private volatile long startTime;\n-\n-    /**\n-     * Creates a new timer with the default thread factory\n-     * ({@link Executors#defaultThreadFactory()}), default tick duration, and\n-     * default number of ticks per wheel.\n-     */\n-    public HashedWheelTimer() {\n-        this(Executors.defaultThreadFactory());\n-    }\n-\n-    /**\n-     * Creates a new timer with the default thread factory\n-     * ({@link Executors#defaultThreadFactory()}) and default number of ticks\n-     * per wheel.\n-     *\n-     * @param tickDuration the duration between tick\n-     * @param unit         the time unit of the {@code tickDuration}\n-     * @throws NullPointerException     if {@code unit} is {@code null}\n-     * @throws IllegalArgumentException if {@code tickDuration} is &lt;= 0\n-     */\n-    public HashedWheelTimer(long tickDuration, TimeUnit unit) {\n-        this(Executors.defaultThreadFactory(), tickDuration, unit);\n-    }\n-\n-    /**\n-     * Creates a new timer with the default thread factory\n-     * ({@link Executors#defaultThreadFactory()}).\n-     *\n-     * @param tickDuration  the duration between tick\n-     * @param unit          the time unit of the {@code tickDuration}\n-     * @param ticksPerWheel the size of the wheel\n-     * @throws NullPointerException     if {@code unit} is {@code null}\n-     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\n-     */\n-    public HashedWheelTimer(long tickDuration, TimeUnit unit, int ticksPerWheel) {\n-        this(Executors.defaultThreadFactory(), tickDuration, unit, ticksPerWheel);\n-    }\n-\n-    /**\n-     * Creates a new timer with the default tick duration and default number of\n-     * ticks per wheel.\n-     *\n-     * @param threadFactory a {@link ThreadFactory} that creates a\n-     *                      background {@link Thread} which is dedicated to\n-     *                      {@link TimerTask} execution.\n-     * @throws NullPointerException if {@code threadFactory} is {@code null}\n-     */\n-    public HashedWheelTimer(ThreadFactory threadFactory) {\n-        this(threadFactory, 100, TimeUnit.MILLISECONDS);\n-    }\n-\n-    /**\n-     * Creates a new timer with the default number of ticks per wheel.\n-     *\n-     * @param threadFactory a {@link ThreadFactory} that creates a\n-     *                      background {@link Thread} which is dedicated to\n-     *                      {@link TimerTask} execution.\n-     * @param tickDuration  the duration between tick\n-     * @param unit          the time unit of the {@code tickDuration}\n-     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\n-     * @throws IllegalArgumentException if {@code tickDuration} is &lt;= 0\n-     */\n-    public HashedWheelTimer(\n-            ThreadFactory threadFactory, long tickDuration, TimeUnit unit) {\n-        this(threadFactory, tickDuration, unit, 512);\n-    }\n-\n-    /**\n-     * Creates a new timer.\n-     *\n-     * @param threadFactory a {@link ThreadFactory} that creates a\n-     *                      background {@link Thread} which is dedicated to\n-     *                      {@link TimerTask} execution.\n-     * @param tickDuration  the duration between tick\n-     * @param unit          the time unit of the {@code tickDuration}\n-     * @param ticksPerWheel the size of the wheel\n-     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\n-     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\n-     */\n-    public HashedWheelTimer(\n-            ThreadFactory threadFactory,\n-            long tickDuration, TimeUnit unit, int ticksPerWheel) {\n-        this(threadFactory, tickDuration, unit, ticksPerWheel, -1);\n-    }\n-\n-    /**\n-     * Creates a new timer.\n-     *\n-     * @param threadFactory      a {@link ThreadFactory} that creates a\n-     *                           background {@link Thread} which is dedicated to\n-     *                           {@link TimerTask} execution.\n-     * @param tickDuration       the duration between tick\n-     * @param unit               the time unit of the {@code tickDuration}\n-     * @param ticksPerWheel      the size of the wheel\n-     * @param maxPendingTimeouts The maximum number of pending timeouts after which call to\n-     *                           {@code newTimeout} will result in\n-     *                           {@link java.util.concurrent.RejectedExecutionException}\n-     *                           being thrown. No maximum pending timeouts limit is assumed if\n-     *                           this value is 0 or negative.\n-     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\n-     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\n-     */\n-    public HashedWheelTimer(\n-            ThreadFactory threadFactory,\n-            long tickDuration, TimeUnit unit, int ticksPerWheel,\n-            long maxPendingTimeouts) {\n-\n-        if (threadFactory == null) {\n-            throw new NullPointerException(\"threadFactory\");\n-        }\n-        if (unit == null) {\n-            throw new NullPointerException(\"unit\");\n-        }\n-        if (tickDuration <= 0) {\n-            throw new IllegalArgumentException(\"tickDuration must be greater than 0: \" + tickDuration);\n-        }\n-        if (ticksPerWheel <= 0) {\n-            throw new IllegalArgumentException(\"ticksPerWheel must be greater than 0: \" + ticksPerWheel);\n-        }\n-\n-        // Normalize ticksPerWheel to power of two and initialize the wheel.\n-        wheel = createWheel(ticksPerWheel);\n-        mask = wheel.length - 1;\n-\n-        // Convert tickDuration to nanos.\n-        this.tickDuration = unit.toNanos(tickDuration);\n-\n-        // Prevent overflow.\n-        if (this.tickDuration >= Long.MAX_VALUE / wheel.length) {\n-            throw new IllegalArgumentException(String.format(\n-                    \"tickDuration: %d (expected: 0 < tickDuration in nanos < %d\",\n-                    tickDuration, Long.MAX_VALUE / wheel.length));\n-        }\n-        workerThread = threadFactory.newThread(worker);\n-\n-        this.maxPendingTimeouts = maxPendingTimeouts;\n-\n-        if (INSTANCE_COUNTER.incrementAndGet() > INSTANCE_COUNT_LIMIT &&\n-                WARNED_TOO_MANY_INSTANCES.compareAndSet(false, true)) {\n-            reportTooManyInstances();\n-        }\n-    }\n-\n-    @Override\n-    protected void finalize() throws Throwable {\n-        try {\n-            super.finalize();\n-        } finally {\n-            // This object is going to be GCed and it is assumed the ship has sailed to do a proper shutdown. If\n-            // we have not yet shutdown then we want to make sure we decrement the active instance count.\n-            if (WORKER_STATE_UPDATER.getAndSet(this, WORKER_STATE_SHUTDOWN) != WORKER_STATE_SHUTDOWN) {\n-                INSTANCE_COUNTER.decrementAndGet();\n-            }\n-        }\n-    }\n-\n-    private static HashedWheelBucket[] createWheel(int ticksPerWheel) {\n-        if (ticksPerWheel <= 0) {\n-            throw new IllegalArgumentException(\n-                    \"ticksPerWheel must be greater than 0: \" + ticksPerWheel);\n-        }\n-        if (ticksPerWheel > 1073741824) {\n-            throw new IllegalArgumentException(\n-                    \"ticksPerWheel may not be greater than 2^30: \" + ticksPerWheel);\n-        }\n-\n-        ticksPerWheel = normalizeTicksPerWheel(ticksPerWheel);\n-        HashedWheelBucket[] wheel = new HashedWheelBucket[ticksPerWheel];\n-        for (int i = 0; i < wheel.length; i++) {\n-            wheel[i] = new HashedWheelBucket();\n-        }\n-        return wheel;\n-    }\n-\n-    private static int normalizeTicksPerWheel(int ticksPerWheel) {\n-        int normalizedTicksPerWheel = ticksPerWheel - 1;\n-        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 1;\n-        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 2;\n-        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 4;\n-        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 8;\n-        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 16;\n-        return normalizedTicksPerWheel + 1;\n-    }\n-\n-    /**\n-     * Starts the background thread explicitly.  The background thread will\n-     * start automatically on demand even if you did not call this method.\n-     *\n-     * @throws IllegalStateException if this timer has been\n-     *                               {@linkplain #stop() stopped} already\n-     */\n-    public void start() {\n-        switch (WORKER_STATE_UPDATER.get(this)) {\n-            case WORKER_STATE_INIT:\n-                if (WORKER_STATE_UPDATER.compareAndSet(this, WORKER_STATE_INIT, WORKER_STATE_STARTED)) {\n-                    workerThread.start();\n-                }\n-                break;\n-            case WORKER_STATE_STARTED:\n-                break;\n-            case WORKER_STATE_SHUTDOWN:\n-                throw new IllegalStateException(\"cannot be started once stopped\");\n-            default:\n-                throw new Error(\"Invalid WorkerState\");\n-        }\n-\n-        // Wait until the startTime is initialized by the worker.\n-        while (startTime == 0) {\n-            try {\n-                startTimeInitialized.await();\n-            } catch (InterruptedException ignore) {\n-                // Ignore - it will be ready very soon.\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public Set<Timeout> stop() {\n-        if (Thread.currentThread() == workerThread) {\n-            throw new IllegalStateException(\n-                    HashedWheelTimer.class.getSimpleName() +\n-                            \".stop() cannot be called from \" +\n-                            TimerTask.class.getSimpleName());\n-        }\n-\n-        if (!WORKER_STATE_UPDATER.compareAndSet(this, WORKER_STATE_STARTED, WORKER_STATE_SHUTDOWN)) {\n-            // workerState can be 0 or 2 at this moment - let it always be 2.\n-            if (WORKER_STATE_UPDATER.getAndSet(this, WORKER_STATE_SHUTDOWN) != WORKER_STATE_SHUTDOWN) {\n-                INSTANCE_COUNTER.decrementAndGet();\n-            }\n-\n-            return Collections.emptySet();\n-        }\n-\n-        try {\n-            boolean interrupted = false;\n-            while (workerThread.isAlive()) {\n-                workerThread.interrupt();\n-                try {\n-                    workerThread.join(100);\n-                } catch (InterruptedException ignored) {\n-                    interrupted = true;\n-                }\n-            }\n-\n-            if (interrupted) {\n-                Thread.currentThread().interrupt();\n-            }\n-        } finally {\n-            INSTANCE_COUNTER.decrementAndGet();\n-        }\n-        return worker.unprocessedTimeouts();\n-    }\n-\n-    @Override\n-    public boolean isStop() {\n-        return WORKER_STATE_SHUTDOWN == WORKER_STATE_UPDATER.get(this);\n-    }\n-\n-    @Override\n-    public Timeout newTimeout(TimerTask task, long delay, TimeUnit unit) {\n-        if (task == null) {\n-            throw new NullPointerException(\"task\");\n-        }\n-        if (unit == null) {\n-            throw new NullPointerException(\"unit\");\n-        }\n-\n-        long pendingTimeoutsCount = pendingTimeouts.incrementAndGet();\n-\n-        if (maxPendingTimeouts > 0 && pendingTimeoutsCount > maxPendingTimeouts) {\n-            pendingTimeouts.decrementAndGet();\n-            throw new RejectedExecutionException(\"Number of pending timeouts (\"\n-                    + pendingTimeoutsCount + \") is greater than or equal to maximum allowed pending \"\n-                    + \"timeouts (\" + maxPendingTimeouts + \")\");\n-        }\n-\n-        start();\n-\n-        // Add the timeout to the timeout queue which will be processed on the next tick.\n-        // During processing all the queued HashedWheelTimeouts will be added to the correct HashedWheelBucket.\n-        long deadline = System.nanoTime() + unit.toNanos(delay) - startTime;\n-\n-        // Guard against overflow.\n-        if (delay > 0 && deadline < 0) {\n-            deadline = Long.MAX_VALUE;\n-        }\n-        HashedWheelTimeout timeout = new HashedWheelTimeout(this, task, deadline);\n-        timeouts.add(timeout);\n-        return timeout;\n-    }\n-\n-    /**\n-     * Returns the number of pending timeouts of this {@link Timer}.\n-     */\n-    public long pendingTimeouts() {\n-        return pendingTimeouts.get();\n-    }\n-\n-    private static void reportTooManyInstances() {\n-        String resourceType = ClassUtils.simpleClassName(HashedWheelTimer.class);\n-        logger.error(\"You are creating too many \" + resourceType + \" instances. \" +\n-                resourceType + \" is a shared resource that must be reused across the JVM,\" +\n-                \"so that only a few instances are created.\");\n-    }\n-\n-    private final class Worker implements Runnable {\n-        private final Set<Timeout> unprocessedTimeouts = new HashSet<Timeout>();\n-\n-        private long tick;\n-\n-        @Override\n-        public void run() {\n-            // Initialize the startTime.\n-            startTime = System.nanoTime();\n-            if (startTime == 0) {\n-                // We use 0 as an indicator for the uninitialized value here, so make sure it's not 0 when initialized.\n-                startTime = 1;\n-            }\n-\n-            // Notify the other threads waiting for the initialization at start().\n-            startTimeInitialized.countDown();\n-\n-            do {\n-                final long deadline = waitForNextTick();\n-                if (deadline > 0) {\n-                    int idx = (int) (tick & mask);\n-                    processCancelledTasks();\n-                    HashedWheelBucket bucket =\n-                            wheel[idx];\n-                    transferTimeoutsToBuckets();\n-                    bucket.expireTimeouts(deadline);\n-                    tick++;\n-                }\n-            } while (WORKER_STATE_UPDATER.get(HashedWheelTimer.this) == WORKER_STATE_STARTED);\n-\n-            // Fill the unprocessedTimeouts so we can return them from stop() method.\n-            for (HashedWheelBucket bucket : wheel) {\n-                bucket.clearTimeouts(unprocessedTimeouts);\n-            }\n-            for (; ; ) {\n-                HashedWheelTimeout timeout = timeouts.poll();\n-                if (timeout == null) {\n-                    break;\n-                }\n-                if (!timeout.isCancelled()) {\n-                    unprocessedTimeouts.add(timeout);\n-                }\n-            }\n-            processCancelledTasks();\n-        }\n-\n-        private void transferTimeoutsToBuckets() {\n-            // transfer only max. 100000 timeouts per tick to prevent a thread to stale the workerThread when it just\n-            // adds new timeouts in a loop.\n-            for (int i = 0; i < 100000; i++) {\n-                HashedWheelTimeout timeout = timeouts.poll();\n-                if (timeout == null) {\n-                    // all processed\n-                    break;\n-                }\n-                if (timeout.state() == HashedWheelTimeout.ST_CANCELLED) {\n-                    // Was cancelled in the meantime.\n-                    continue;\n-                }\n-\n-                long calculated = timeout.deadline / tickDuration;\n-                timeout.remainingRounds = (calculated - tick) / wheel.length;\n-\n-                // Ensure we don't schedule for past.\n-                final long ticks = Math.max(calculated, tick);\n-                int stopIndex = (int) (ticks & mask);\n-\n-                HashedWheelBucket bucket = wheel[stopIndex];\n-                bucket.addTimeout(timeout);\n-            }\n-        }\n-\n-        private void processCancelledTasks() {\n-            for (; ; ) {\n-                HashedWheelTimeout timeout = cancelledTimeouts.poll();\n-                if (timeout == null) {\n-                    // all processed\n-                    break;\n-                }\n-                try {\n-                    timeout.remove();\n-                } catch (Throwable t) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"An exception was thrown while process a cancellation task\", t);\n-                    }\n-                }\n-            }\n-        }\n-\n-        /**\n-         * calculate goal nanoTime from startTime and current tick number,\n-         * then wait until that goal has been reached.\n-         *\n-         * @return Long.MIN_VALUE if received a shutdown request,\n-         * current time otherwise (with Long.MIN_VALUE changed by +1)\n-         */\n-        private long waitForNextTick() {\n-            long deadline = tickDuration * (tick + 1);\n-\n-            for (; ; ) {\n-                final long currentTime = System.nanoTime() - startTime;\n-                long sleepTimeMs = (deadline - currentTime + 999999) / 1000000;\n-\n-                if (sleepTimeMs <= 0) {\n-                    if (currentTime == Long.MIN_VALUE) {\n-                        return -Long.MAX_VALUE;\n-                    } else {\n-                        return currentTime;\n-                    }\n-                }\n-                if (isWindows()) {\n-                    sleepTimeMs = sleepTimeMs / 10 * 10;\n-                }\n-\n-                try {\n-                    Thread.sleep(sleepTimeMs);\n-                } catch (InterruptedException ignored) {\n-                    if (WORKER_STATE_UPDATER.get(HashedWheelTimer.this) == WORKER_STATE_SHUTDOWN) {\n-                        return Long.MIN_VALUE;\n-                    }\n-                }\n-            }\n-        }\n-\n-        Set<Timeout> unprocessedTimeouts() {\n-            return Collections.unmodifiableSet(unprocessedTimeouts);\n-        }\n-    }\n-\n-    private static final class HashedWheelTimeout implements Timeout {\n-\n-        private static final int ST_INIT = 0;\n-        private static final int ST_CANCELLED = 1;\n-        private static final int ST_EXPIRED = 2;\n-        private static final AtomicIntegerFieldUpdater<HashedWheelTimeout> STATE_UPDATER =\n-                AtomicIntegerFieldUpdater.newUpdater(HashedWheelTimeout.class, \"state\");\n-\n-        private final HashedWheelTimer timer;\n-        private final TimerTask task;\n-        private final long deadline;\n-\n-        @SuppressWarnings({\"unused\", \"FieldMayBeFinal\", \"RedundantFieldInitialization\"})\n-        private volatile int state = ST_INIT;\n-\n-        /**\n-         * RemainingRounds will be calculated and set by Worker.transferTimeoutsToBuckets() before the\n-         * HashedWheelTimeout will be added to the correct HashedWheelBucket.\n-         */\n-        long remainingRounds;\n-\n-        /**\n-         * This will be used to chain timeouts in HashedWheelTimerBucket via a double-linked-list.\n-         * As only the workerThread will act on it there is no need for synchronization / volatile.\n-         */\n-        HashedWheelTimeout next;\n-        HashedWheelTimeout prev;\n-\n-        /**\n-         * The bucket to which the timeout was added\n-         */\n-        HashedWheelBucket bucket;\n-\n-        HashedWheelTimeout(HashedWheelTimer timer, TimerTask task, long deadline) {\n-            this.timer = timer;\n-            this.task = task;\n-            this.deadline = deadline;\n-        }\n-\n-        @Override\n-        public Timer timer() {\n-            return timer;\n-        }\n-\n-        @Override\n-        public TimerTask task() {\n-            return task;\n-        }\n-\n-        @Override\n-        public boolean cancel() {\n-            // only update the state it will be removed from HashedWheelBucket on next tick.\n-            if (!compareAndSetState(ST_INIT, ST_CANCELLED)) {\n-                return false;\n-            }\n-            // If a task should be canceled we put this to another queue which will be processed on each tick.\n-            // So this means that we will have a GC latency of max. 1 tick duration which is good enough. This way\n-            // we can make again use of our MpscLinkedQueue and so minimize the locking / overhead as much as possible.\n-            timer.cancelledTimeouts.add(this);\n-            return true;\n-        }\n-\n-        void remove() {\n-            HashedWheelBucket bucket = this.bucket;\n-            if (bucket != null) {\n-                bucket.remove(this);\n-            } else {\n-                timer.pendingTimeouts.decrementAndGet();\n-            }\n-        }\n-\n-        public boolean compareAndSetState(int expected, int state) {\n-            return STATE_UPDATER.compareAndSet(this, expected, state);\n-        }\n-\n-        public int state() {\n-            return state;\n-        }\n-\n-        @Override\n-        public boolean isCancelled() {\n-            return state() == ST_CANCELLED;\n-        }\n-\n-        @Override\n-        public boolean isExpired() {\n-            return state() == ST_EXPIRED;\n-        }\n-\n-        public void expire() {\n-            if (!compareAndSetState(ST_INIT, ST_EXPIRED)) {\n-                return;\n-            }\n-\n-            try {\n-                task.run(this);\n-            } catch (Throwable t) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"An exception was thrown by \" + TimerTask.class.getSimpleName() + '.', t);\n-                }\n-            }\n-        }\n-\n-        @Override\n-        public String toString() {\n-            final long currentTime = System.nanoTime();\n-            long remaining = deadline - currentTime + timer.startTime;\n-            String simpleClassName = ClassUtils.simpleClassName(this.getClass());\n-\n-            StringBuilder buf = new StringBuilder(192)\n-                    .append(simpleClassName)\n-                    .append('(')\n-                    .append(\"deadline: \");\n-            if (remaining > 0) {\n-                buf.append(remaining)\n-                        .append(\" ns later\");\n-            } else if (remaining < 0) {\n-                buf.append(-remaining)\n-                        .append(\" ns ago\");\n-            } else {\n-                buf.append(\"now\");\n-            }\n-\n-            if (isCancelled()) {\n-                buf.append(\", cancelled\");\n-            }\n-\n-            return buf.append(\", task: \")\n-                    .append(task())\n-                    .append(')')\n-                    .toString();\n-        }\n-    }\n-\n-    /**\n-     * Bucket that stores HashedWheelTimeouts. These are stored in a linked-list like datastructure to allow easy\n-     * removal of HashedWheelTimeouts in the middle. Also the HashedWheelTimeout act as nodes themself and so no\n-     * extra object creation is needed.\n-     */\n-    private static final class HashedWheelBucket {\n-\n-        /**\n-         * Used for the linked-list datastructure\n-         */\n-        private HashedWheelTimeout head;\n-        private HashedWheelTimeout tail;\n-\n-        /**\n-         * Add {@link HashedWheelTimeout} to this bucket.\n-         */\n-        void addTimeout(HashedWheelTimeout timeout) {\n-            assert timeout.bucket == null;\n-            timeout.bucket = this;\n-            if (head == null) {\n-                head = tail = timeout;\n-            } else {\n-                tail.next = timeout;\n-                timeout.prev = tail;\n-                tail = timeout;\n-            }\n-        }\n-\n-        /**\n-         * Expire all {@link HashedWheelTimeout}s for the given {@code deadline}.\n-         */\n-        void expireTimeouts(long deadline) {\n-            HashedWheelTimeout timeout = head;\n-\n-            // process all timeouts\n-            while (timeout != null) {\n-                HashedWheelTimeout next = timeout.next;\n-                if (timeout.remainingRounds <= 0) {\n-                    next = remove(timeout);\n-                    if (timeout.deadline <= deadline) {\n-                        timeout.expire();\n-                    } else {\n-                        // The timeout was placed into a wrong slot. This should never happen.\n-                        throw new IllegalStateException(String.format(\n-                                \"timeout.deadline (%d) > deadline (%d)\", timeout.deadline, deadline));\n-                    }\n-                } else if (timeout.isCancelled()) {\n-                    next = remove(timeout);\n-                } else {\n-                    timeout.remainingRounds--;\n-                }\n-                timeout = next;\n-            }\n-        }\n-\n-        public HashedWheelTimeout remove(HashedWheelTimeout timeout) {\n-            HashedWheelTimeout next = timeout.next;\n-            // remove timeout that was either processed or cancelled by updating the linked-list\n-            if (timeout.prev != null) {\n-                timeout.prev.next = next;\n-            }\n-            if (timeout.next != null) {\n-                timeout.next.prev = timeout.prev;\n-            }\n-\n-            if (timeout == head) {\n-                // if timeout is also the tail we need to adjust the entry too\n-                if (timeout == tail) {\n-                    tail = null;\n-                    head = null;\n-                } else {\n-                    head = next;\n-                }\n-            } else if (timeout == tail) {\n-                // if the timeout is the tail modify the tail to be the prev node.\n-                tail = timeout.prev;\n-            }\n-            // null out prev, next and bucket to allow for GC.\n-            timeout.prev = null;\n-            timeout.next = null;\n-            timeout.bucket = null;\n-            timeout.timer.pendingTimeouts.decrementAndGet();\n-            return next;\n-        }\n-\n-        /**\n-         * Clear this bucket and return all not expired / cancelled {@link Timeout}s.\n-         */\n-        void clearTimeouts(Set<Timeout> set) {\n-            for (; ; ) {\n-                HashedWheelTimeout timeout = pollTimeout();\n-                if (timeout == null) {\n-                    return;\n-                }\n-                if (timeout.isExpired() || timeout.isCancelled()) {\n-                    continue;\n-                }\n-                set.add(timeout);\n-            }\n-        }\n-\n-        private HashedWheelTimeout pollTimeout() {\n-            HashedWheelTimeout head = this.head;\n-            if (head == null) {\n-                return null;\n-            }\n-            HashedWheelTimeout next = head.next;\n-            if (next == null) {\n-                tail = this.head = null;\n-            } else {\n-                this.head = next;\n-                next.prev = null;\n-            }\n-\n-            // null out prev and next to allow for GC.\n-            head.next = null;\n-            head.prev = null;\n-            head.bucket = null;\n-            return head;\n-        }\n-    }\n-    \n-    private static final boolean IS_OS_WINDOWS = System.getProperty(\"os.name\", \"\").toLowerCase(Locale.US).contains(\"win\");\n-    \n-    private boolean isWindows() {\n-    \treturn IS_OS_WINDOWS;\n-    }\n-}\n+/*\r\n+ * Copyright 2012 The Netty Project\r\n+ *\r\n+ * The Netty Project licenses this file to you under the Apache License,\r\n+ * version 2.0 (the \"License\"); you may not use this file except in compliance\r\n+ * with the License. You may obtain a copy of the License at:\r\n+ *\r\n+ *   http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\r\n+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the\r\n+ * License for the specific language governing permissions and limitations\r\n+ * under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.timer;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.Locale;\r\n+import java.util.Queue;\r\n+import java.util.Set;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+import java.util.concurrent.ThreadFactory;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+import java.util.concurrent.atomic.AtomicIntegerFieldUpdater;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+/**\r\n+ * A {@link Timer} optimized for approximated I/O timeout scheduling.\r\n+ *\r\n+ * <h3>Tick Duration</h3>\r\n+ * <p>\r\n+ * As described with 'approximated', this timer does not execute the scheduled\r\n+ * {@link TimerTask} on time.  {@link HashedWheelTimer}, on every tick, will\r\n+ * check if there are any {@link TimerTask}s behind the schedule and execute\r\n+ * them.\r\n+ * <p>\r\n+ * You can increase or decrease the accuracy of the execution timing by\r\n+ * specifying smaller or larger tick duration in the constructor.  In most\r\n+ * network applications, I/O timeout does not need to be accurate.  Therefore,\r\n+ * the default tick duration is 100 milliseconds and you will not need to try\r\n+ * different configurations in most cases.\r\n+ *\r\n+ * <h3>Ticks per Wheel (Wheel Size)</h3>\r\n+ * <p>\r\n+ * {@link HashedWheelTimer} maintains a data structure called 'wheel'.\r\n+ * To put simply, a wheel is a hash table of {@link TimerTask}s whose hash\r\n+ * function is 'dead line of the task'.  The default number of ticks per wheel\r\n+ * (i.e. the size of the wheel) is 512.  You could specify a larger value\r\n+ * if you are going to schedule a lot of timeouts.\r\n+ *\r\n+ * <h3>Do not create many instances.</h3>\r\n+ * <p>\r\n+ * {@link HashedWheelTimer} creates a new thread whenever it is instantiated and\r\n+ * started.  Therefore, you should make sure to create only one instance and\r\n+ * share it across your application.  One of the common mistakes, that makes\r\n+ * your application unresponsive, is to create a new instance for every connection.\r\n+ *\r\n+ * <h3>Implementation Details</h3>\r\n+ * <p>\r\n+ * {@link HashedWheelTimer} is based on\r\n+ * <a href=\"http://cseweb.ucsd.edu/users/varghese/\">George Varghese</a> and\r\n+ * Tony Lauck's paper,\r\n+ * <a href=\"http://cseweb.ucsd.edu/users/varghese/PAPERS/twheel.ps.Z\">'Hashed\r\n+ * and Hierarchical Timing Wheels: data structures to efficiently implement a\r\n+ * timer facility'</a>.  More comprehensive slides are located\r\n+ * <a href=\"http://www.cse.wustl.edu/~cdgill/courses/cs6874/TimingWheels.ppt\">here</a>.\r\n+ */\r\n+public class HashedWheelTimer implements Timer {\r\n+\r\n+    /**\r\n+     * may be in spi?\r\n+     */\r\n+    public static final String NAME = \"hased\";\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(HashedWheelTimer.class);\r\n+\r\n+    private static final AtomicInteger INSTANCE_COUNTER = new AtomicInteger();\r\n+    private static final AtomicBoolean WARNED_TOO_MANY_INSTANCES = new AtomicBoolean();\r\n+    private static final int INSTANCE_COUNT_LIMIT = 64;\r\n+    private static final AtomicIntegerFieldUpdater<HashedWheelTimer> WORKER_STATE_UPDATER =\r\n+            AtomicIntegerFieldUpdater.newUpdater(HashedWheelTimer.class, \"workerState\");\r\n+\r\n+    private final Worker worker = new Worker();\r\n+    private final Thread workerThread;\r\n+\r\n+    private static final int WORKER_STATE_INIT = 0;\r\n+    private static final int WORKER_STATE_STARTED = 1;\r\n+    private static final int WORKER_STATE_SHUTDOWN = 2;\r\n+\r\n+    /**\r\n+     * 0 - init, 1 - started, 2 - shut down\r\n+     */\r\n+    @SuppressWarnings({\"unused\", \"FieldMayBeFinal\"})\r\n+    private volatile int workerState;\r\n+\r\n+    private final long tickDuration;\r\n+    private final HashedWheelBucket[] wheel;\r\n+    private final int mask;\r\n+    private final CountDownLatch startTimeInitialized = new CountDownLatch(1);\r\n+    private final Queue<HashedWheelTimeout> timeouts = new LinkedBlockingQueue<>();\r\n+    private final Queue<HashedWheelTimeout> cancelledTimeouts = new LinkedBlockingQueue<>();\r\n+    private final AtomicLong pendingTimeouts = new AtomicLong(0);\r\n+    private final long maxPendingTimeouts;\r\n+\r\n+    private volatile long startTime;\r\n+\r\n+    /**\r\n+     * Creates a new timer with the default thread factory\r\n+     * ({@link Executors#defaultThreadFactory()}), default tick duration, and\r\n+     * default number of ticks per wheel.\r\n+     */\r\n+    public HashedWheelTimer() {\r\n+        this(Executors.defaultThreadFactory());\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer with the default thread factory\r\n+     * ({@link Executors#defaultThreadFactory()}) and default number of ticks\r\n+     * per wheel.\r\n+     *\r\n+     * @param tickDuration the duration between tick\r\n+     * @param unit         the time unit of the {@code tickDuration}\r\n+     * @throws NullPointerException     if {@code unit} is {@code null}\r\n+     * @throws IllegalArgumentException if {@code tickDuration} is &lt;= 0\r\n+     */\r\n+    public HashedWheelTimer(long tickDuration, TimeUnit unit) {\r\n+        this(Executors.defaultThreadFactory(), tickDuration, unit);\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer with the default thread factory\r\n+     * ({@link Executors#defaultThreadFactory()}).\r\n+     *\r\n+     * @param tickDuration  the duration between tick\r\n+     * @param unit          the time unit of the {@code tickDuration}\r\n+     * @param ticksPerWheel the size of the wheel\r\n+     * @throws NullPointerException     if {@code unit} is {@code null}\r\n+     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\r\n+     */\r\n+    public HashedWheelTimer(long tickDuration, TimeUnit unit, int ticksPerWheel) {\r\n+        this(Executors.defaultThreadFactory(), tickDuration, unit, ticksPerWheel);\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer with the default tick duration and default number of\r\n+     * ticks per wheel.\r\n+     *\r\n+     * @param threadFactory a {@link ThreadFactory} that creates a\r\n+     *                      background {@link Thread} which is dedicated to\r\n+     *                      {@link TimerTask} execution.\r\n+     * @throws NullPointerException if {@code threadFactory} is {@code null}\r\n+     */\r\n+    public HashedWheelTimer(ThreadFactory threadFactory) {\r\n+        this(threadFactory, 100, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer with the default number of ticks per wheel.\r\n+     *\r\n+     * @param threadFactory a {@link ThreadFactory} that creates a\r\n+     *                      background {@link Thread} which is dedicated to\r\n+     *                      {@link TimerTask} execution.\r\n+     * @param tickDuration  the duration between tick\r\n+     * @param unit          the time unit of the {@code tickDuration}\r\n+     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\r\n+     * @throws IllegalArgumentException if {@code tickDuration} is &lt;= 0\r\n+     */\r\n+    public HashedWheelTimer(\r\n+            ThreadFactory threadFactory, long tickDuration, TimeUnit unit) {\r\n+        this(threadFactory, tickDuration, unit, 512);\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer.\r\n+     *\r\n+     * @param threadFactory a {@link ThreadFactory} that creates a\r\n+     *                      background {@link Thread} which is dedicated to\r\n+     *                      {@link TimerTask} execution.\r\n+     * @param tickDuration  the duration between tick\r\n+     * @param unit          the time unit of the {@code tickDuration}\r\n+     * @param ticksPerWheel the size of the wheel\r\n+     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\r\n+     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\r\n+     */\r\n+    public HashedWheelTimer(\r\n+            ThreadFactory threadFactory,\r\n+            long tickDuration, TimeUnit unit, int ticksPerWheel) {\r\n+        this(threadFactory, tickDuration, unit, ticksPerWheel, -1);\r\n+    }\r\n+\r\n+    /**\r\n+     * Creates a new timer.\r\n+     *\r\n+     * @param threadFactory      a {@link ThreadFactory} that creates a\r\n+     *                           background {@link Thread} which is dedicated to\r\n+     *                           {@link TimerTask} execution.\r\n+     * @param tickDuration       the duration between tick\r\n+     * @param unit               the time unit of the {@code tickDuration}\r\n+     * @param ticksPerWheel      the size of the wheel\r\n+     * @param maxPendingTimeouts The maximum number of pending timeouts after which call to\r\n+     *                           {@code newTimeout} will result in\r\n+     *                           {@link java.util.concurrent.RejectedExecutionException}\r\n+     *                           being thrown. No maximum pending timeouts limit is assumed if\r\n+     *                           this value is 0 or negative.\r\n+     * @throws NullPointerException     if either of {@code threadFactory} and {@code unit} is {@code null}\r\n+     * @throws IllegalArgumentException if either of {@code tickDuration} and {@code ticksPerWheel} is &lt;= 0\r\n+     */\r\n+    public HashedWheelTimer(\r\n+            ThreadFactory threadFactory,\r\n+            long tickDuration, TimeUnit unit, int ticksPerWheel,\r\n+            long maxPendingTimeouts) {\r\n+\r\n+        if (threadFactory == null) {\r\n+            throw new NullPointerException(\"threadFactory\");\r\n+        }\r\n+        if (unit == null) {\r\n+            throw new NullPointerException(\"unit\");\r\n+        }\r\n+        if (tickDuration <= 0) {\r\n+            throw new IllegalArgumentException(\"tickDuration must be greater than 0: \" + tickDuration);\r\n+        }\r\n+        if (ticksPerWheel <= 0) {\r\n+            throw new IllegalArgumentException(\"ticksPerWheel must be greater than 0: \" + ticksPerWheel);\r\n+        }\r\n+\r\n+        // Normalize ticksPerWheel to power of two and initialize the wheel.\r\n+        wheel = createWheel(ticksPerWheel);\r\n+        mask = wheel.length - 1;\r\n+\r\n+        // Convert tickDuration to nanos.\r\n+        this.tickDuration = unit.toNanos(tickDuration);\r\n+\r\n+        // Prevent overflow.\r\n+        if (this.tickDuration >= Long.MAX_VALUE / wheel.length) {\r\n+            throw new IllegalArgumentException(String.format(\r\n+                    \"tickDuration: %d (expected: 0 < tickDuration in nanos < %d\",\r\n+                    tickDuration, Long.MAX_VALUE / wheel.length));\r\n+        }\r\n+        workerThread = threadFactory.newThread(worker);\r\n+\r\n+        this.maxPendingTimeouts = maxPendingTimeouts;\r\n+\r\n+        if (INSTANCE_COUNTER.incrementAndGet() > INSTANCE_COUNT_LIMIT &&\r\n+                WARNED_TOO_MANY_INSTANCES.compareAndSet(false, true)) {\r\n+            reportTooManyInstances();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void finalize() throws Throwable {\r\n+        try {\r\n+            super.finalize();\r\n+        } finally {\r\n+            // This object is going to be GCed and it is assumed the ship has sailed to do a proper shutdown. If\r\n+            // we have not yet shutdown then we want to make sure we decrement the active instance count.\r\n+            if (WORKER_STATE_UPDATER.getAndSet(this, WORKER_STATE_SHUTDOWN) != WORKER_STATE_SHUTDOWN) {\r\n+                INSTANCE_COUNTER.decrementAndGet();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static HashedWheelBucket[] createWheel(int ticksPerWheel) {\r\n+        if (ticksPerWheel <= 0) {\r\n+            throw new IllegalArgumentException(\r\n+                    \"ticksPerWheel must be greater than 0: \" + ticksPerWheel);\r\n+        }\r\n+        if (ticksPerWheel > 1073741824) {\r\n+            throw new IllegalArgumentException(\r\n+                    \"ticksPerWheel may not be greater than 2^30: \" + ticksPerWheel);\r\n+        }\r\n+\r\n+        ticksPerWheel = normalizeTicksPerWheel(ticksPerWheel);\r\n+        HashedWheelBucket[] wheel = new HashedWheelBucket[ticksPerWheel];\r\n+        for (int i = 0; i < wheel.length; i++) {\r\n+            wheel[i] = new HashedWheelBucket();\r\n+        }\r\n+        return wheel;\r\n+    }\r\n+\r\n+    private static int normalizeTicksPerWheel(int ticksPerWheel) {\r\n+        int normalizedTicksPerWheel = ticksPerWheel - 1;\r\n+        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 1;\r\n+        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 2;\r\n+        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 4;\r\n+        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 8;\r\n+        normalizedTicksPerWheel |= normalizedTicksPerWheel >>> 16;\r\n+        return normalizedTicksPerWheel + 1;\r\n+    }\r\n+\r\n+    /**\r\n+     * Starts the background thread explicitly.  The background thread will\r\n+     * start automatically on demand even if you did not call this method.\r\n+     *\r\n+     * @throws IllegalStateException if this timer has been\r\n+     *                               {@linkplain #stop() stopped} already\r\n+     */\r\n+    public void start() {\r\n+        switch (WORKER_STATE_UPDATER.get(this)) {\r\n+            case WORKER_STATE_INIT:\r\n+                if (WORKER_STATE_UPDATER.compareAndSet(this, WORKER_STATE_INIT, WORKER_STATE_STARTED)) {\r\n+                    workerThread.start();\r\n+                }\r\n+                break;\r\n+            case WORKER_STATE_STARTED:\r\n+                break;\r\n+            case WORKER_STATE_SHUTDOWN:\r\n+                throw new IllegalStateException(\"cannot be started once stopped\");\r\n+            default:\r\n+                throw new Error(\"Invalid WorkerState\");\r\n+        }\r\n+\r\n+        // Wait until the startTime is initialized by the worker.\r\n+        while (startTime == 0) {\r\n+            try {\r\n+                startTimeInitialized.await();\r\n+            } catch (InterruptedException ignore) {\r\n+                // Ignore - it will be ready very soon.\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<Timeout> stop() {\r\n+        if (Thread.currentThread() == workerThread) {\r\n+            throw new IllegalStateException(\r\n+                    HashedWheelTimer.class.getSimpleName() +\r\n+                            \".stop() cannot be called from \" +\r\n+                            TimerTask.class.getSimpleName());\r\n+        }\r\n+\r\n+        if (!WORKER_STATE_UPDATER.compareAndSet(this, WORKER_STATE_STARTED, WORKER_STATE_SHUTDOWN)) {\r\n+            // workerState can be 0 or 2 at this moment - let it always be 2.\r\n+            if (WORKER_STATE_UPDATER.getAndSet(this, WORKER_STATE_SHUTDOWN) != WORKER_STATE_SHUTDOWN) {\r\n+                INSTANCE_COUNTER.decrementAndGet();\r\n+            }\r\n+\r\n+            return Collections.emptySet();\r\n+        }\r\n+\r\n+        try {\r\n+            boolean interrupted = false;\r\n+            while (workerThread.isAlive()) {\r\n+                workerThread.interrupt();\r\n+                try {\r\n+                    workerThread.join(100);\r\n+                } catch (InterruptedException ignored) {\r\n+                    interrupted = true;\r\n+                }\r\n+            }\r\n+\r\n+            if (interrupted) {\r\n+                Thread.currentThread().interrupt();\r\n+            }\r\n+        } finally {\r\n+            INSTANCE_COUNTER.decrementAndGet();\r\n+        }\r\n+        return worker.unprocessedTimeouts();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isStop() {\r\n+        return WORKER_STATE_SHUTDOWN == WORKER_STATE_UPDATER.get(this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Timeout newTimeout(TimerTask task, long delay, TimeUnit unit) {\r\n+        if (task == null) {\r\n+            throw new NullPointerException(\"task\");\r\n+        }\r\n+        if (unit == null) {\r\n+            throw new NullPointerException(\"unit\");\r\n+        }\r\n+\r\n+        long pendingTimeoutsCount = pendingTimeouts.incrementAndGet();\r\n+\r\n+        if (maxPendingTimeouts > 0 && pendingTimeoutsCount > maxPendingTimeouts) {\r\n+            pendingTimeouts.decrementAndGet();\r\n+            throw new RejectedExecutionException(\"Number of pending timeouts (\"\r\n+                    + pendingTimeoutsCount + \") is greater than or equal to maximum allowed pending \"\r\n+                    + \"timeouts (\" + maxPendingTimeouts + \")\");\r\n+        }\r\n+\r\n+        start();\r\n+\r\n+        // Add the timeout to the timeout queue which will be processed on the next tick.\r\n+        // During processing all the queued HashedWheelTimeouts will be added to the correct HashedWheelBucket.\r\n+        long deadline = System.nanoTime() + unit.toNanos(delay) - startTime;\r\n+\r\n+        // Guard against overflow.\r\n+        if (delay > 0 && deadline < 0) {\r\n+            deadline = Long.MAX_VALUE;\r\n+        }\r\n+        HashedWheelTimeout timeout = new HashedWheelTimeout(this, task, deadline);\r\n+        timeouts.add(timeout);\r\n+        return timeout;\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns the number of pending timeouts of this {@link Timer}.\r\n+     */\r\n+    public long pendingTimeouts() {\r\n+        return pendingTimeouts.get();\r\n+    }\r\n+\r\n+    private static void reportTooManyInstances() {\r\n+        String resourceType = ClassUtils.simpleClassName(HashedWheelTimer.class);\r\n+        logger.error(\"You are creating too many \" + resourceType + \" instances. \" +\r\n+                resourceType + \" is a shared resource that must be reused across the JVM,\" +\r\n+                \"so that only a few instances are created.\");\r\n+    }\r\n+\r\n+    private final class Worker implements Runnable {\r\n+        private final Set<Timeout> unprocessedTimeouts = new HashSet<Timeout>();\r\n+\r\n+        private long tick;\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            // Initialize the startTime.\r\n+            startTime = System.nanoTime();\r\n+            if (startTime == 0) {\r\n+                // We use 0 as an indicator for the uninitialized value here, so make sure it's not 0 when initialized.\r\n+                startTime = 1;\r\n+            }\r\n+\r\n+            // Notify the other threads waiting for the initialization at start().\r\n+            startTimeInitialized.countDown();\r\n+\r\n+            do {\r\n+                final long deadline = waitForNextTick();\r\n+                if (deadline > 0) {\r\n+                    int idx = (int) (tick & mask);\r\n+                    processCancelledTasks();\r\n+                    HashedWheelBucket bucket =\r\n+                            wheel[idx];\r\n+                    transferTimeoutsToBuckets();\r\n+                    bucket.expireTimeouts(deadline);\r\n+                    tick++;\r\n+                }\r\n+            } while (WORKER_STATE_UPDATER.get(HashedWheelTimer.this) == WORKER_STATE_STARTED);\r\n+\r\n+            // Fill the unprocessedTimeouts so we can return them from stop() method.\r\n+            for (HashedWheelBucket bucket : wheel) {\r\n+                bucket.clearTimeouts(unprocessedTimeouts);\r\n+            }\r\n+            for (; ; ) {\r\n+                HashedWheelTimeout timeout = timeouts.poll();\r\n+                if (timeout == null) {\r\n+                    break;\r\n+                }\r\n+                if (!timeout.isCancelled()) {\r\n+                    unprocessedTimeouts.add(timeout);\r\n+                }\r\n+            }\r\n+            processCancelledTasks();\r\n+        }\r\n+\r\n+        private void transferTimeoutsToBuckets() {\r\n+            // transfer only max. 100000 timeouts per tick to prevent a thread to stale the workerThread when it just\r\n+            // adds new timeouts in a loop.\r\n+            for (int i = 0; i < 100000; i++) {\r\n+                HashedWheelTimeout timeout = timeouts.poll();\r\n+                if (timeout == null) {\r\n+                    // all processed\r\n+                    break;\r\n+                }\r\n+                if (timeout.state() == HashedWheelTimeout.ST_CANCELLED) {\r\n+                    // Was cancelled in the meantime.\r\n+                    continue;\r\n+                }\r\n+\r\n+                long calculated = timeout.deadline / tickDuration;\r\n+                timeout.remainingRounds = (calculated - tick) / wheel.length;\r\n+\r\n+                // Ensure we don't schedule for past.\r\n+                final long ticks = Math.max(calculated, tick);\r\n+                int stopIndex = (int) (ticks & mask);\r\n+\r\n+                HashedWheelBucket bucket = wheel[stopIndex];\r\n+                bucket.addTimeout(timeout);\r\n+            }\r\n+        }\r\n+\r\n+        private void processCancelledTasks() {\r\n+            for (; ; ) {\r\n+                HashedWheelTimeout timeout = cancelledTimeouts.poll();\r\n+                if (timeout == null) {\r\n+                    // all processed\r\n+                    break;\r\n+                }\r\n+                try {\r\n+                    timeout.remove();\r\n+                } catch (Throwable t) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"An exception was thrown while process a cancellation task\", t);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * calculate goal nanoTime from startTime and current tick number,\r\n+         * then wait until that goal has been reached.\r\n+         *\r\n+         * @return Long.MIN_VALUE if received a shutdown request,\r\n+         * current time otherwise (with Long.MIN_VALUE changed by +1)\r\n+         */\r\n+        private long waitForNextTick() {\r\n+            long deadline = tickDuration * (tick + 1);\r\n+\r\n+            for (; ; ) {\r\n+                final long currentTime = System.nanoTime() - startTime;\r\n+                long sleepTimeMs = (deadline - currentTime + 999999) / 1000000;\r\n+\r\n+                if (sleepTimeMs <= 0) {\r\n+                    if (currentTime == Long.MIN_VALUE) {\r\n+                        return -Long.MAX_VALUE;\r\n+                    } else {\r\n+                        return currentTime;\r\n+                    }\r\n+                }\r\n+                if (isWindows()) {\r\n+                    sleepTimeMs = sleepTimeMs / 10 * 10;\r\n+                }\r\n+\r\n+                try {\r\n+                    Thread.sleep(sleepTimeMs);\r\n+                } catch (InterruptedException ignored) {\r\n+                    if (WORKER_STATE_UPDATER.get(HashedWheelTimer.this) == WORKER_STATE_SHUTDOWN) {\r\n+                        return Long.MIN_VALUE;\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        Set<Timeout> unprocessedTimeouts() {\r\n+            return Collections.unmodifiableSet(unprocessedTimeouts);\r\n+        }\r\n+    }\r\n+\r\n+    private static final class HashedWheelTimeout implements Timeout {\r\n+\r\n+        private static final int ST_INIT = 0;\r\n+        private static final int ST_CANCELLED = 1;\r\n+        private static final int ST_EXPIRED = 2;\r\n+        private static final AtomicIntegerFieldUpdater<HashedWheelTimeout> STATE_UPDATER =\r\n+                AtomicIntegerFieldUpdater.newUpdater(HashedWheelTimeout.class, \"state\");\r\n+\r\n+        private final HashedWheelTimer timer;\r\n+        private final TimerTask task;\r\n+        private final long deadline;\r\n+\r\n+        @SuppressWarnings({\"unused\", \"FieldMayBeFinal\", \"RedundantFieldInitialization\"})\r\n+        private volatile int state = ST_INIT;\r\n+\r\n+        /**\r\n+         * RemainingRounds will be calculated and set by Worker.transferTimeoutsToBuckets() before the\r\n+         * HashedWheelTimeout will be added to the correct HashedWheelBucket.\r\n+         */\r\n+        long remainingRounds;\r\n+\r\n+        /**\r\n+         * This will be used to chain timeouts in HashedWheelTimerBucket via a double-linked-list.\r\n+         * As only the workerThread will act on it there is no need for synchronization / volatile.\r\n+         */\r\n+        HashedWheelTimeout next;\r\n+        HashedWheelTimeout prev;\r\n+\r\n+        /**\r\n+         * The bucket to which the timeout was added\r\n+         */\r\n+        HashedWheelBucket bucket;\r\n+\r\n+        HashedWheelTimeout(HashedWheelTimer timer, TimerTask task, long deadline) {\r\n+            this.timer = timer;\r\n+            this.task = task;\r\n+            this.deadline = deadline;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Timer timer() {\r\n+            return timer;\r\n+        }\r\n+\r\n+        @Override\r\n+        public TimerTask task() {\r\n+            return task;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean cancel() {\r\n+            // only update the state it will be removed from HashedWheelBucket on next tick.\r\n+            if (!compareAndSetState(ST_INIT, ST_CANCELLED)) {\r\n+                return false;\r\n+            }\r\n+            // If a task should be canceled we put this to another queue which will be processed on each tick.\r\n+            // So this means that we will have a GC latency of max. 1 tick duration which is good enough. This way\r\n+            // we can make again use of our MpscLinkedQueue and so minimize the locking / overhead as much as possible.\r\n+            timer.cancelledTimeouts.add(this);\r\n+            return true;\r\n+        }\r\n+\r\n+        void remove() {\r\n+            HashedWheelBucket bucket = this.bucket;\r\n+            if (bucket != null) {\r\n+                bucket.remove(this);\r\n+            } else {\r\n+                timer.pendingTimeouts.decrementAndGet();\r\n+            }\r\n+        }\r\n+\r\n+        public boolean compareAndSetState(int expected, int state) {\r\n+            return STATE_UPDATER.compareAndSet(this, expected, state);\r\n+        }\r\n+\r\n+        public int state() {\r\n+            return state;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isCancelled() {\r\n+            return state() == ST_CANCELLED;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isExpired() {\r\n+            return state() == ST_EXPIRED;\r\n+        }\r\n+\r\n+        public void expire() {\r\n+            if (!compareAndSetState(ST_INIT, ST_EXPIRED)) {\r\n+                return;\r\n+            }\r\n+\r\n+            try {\r\n+                task.run(this);\r\n+            } catch (Throwable t) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"An exception was thrown by \" + TimerTask.class.getSimpleName() + '.', t);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            final long currentTime = System.nanoTime();\r\n+            long remaining = deadline - currentTime + timer.startTime;\r\n+            String simpleClassName = ClassUtils.simpleClassName(this.getClass());\r\n+\r\n+            StringBuilder buf = new StringBuilder(192)\r\n+                    .append(simpleClassName)\r\n+                    .append('(')\r\n+                    .append(\"deadline: \");\r\n+            if (remaining > 0) {\r\n+                buf.append(remaining)\r\n+                        .append(\" ns later\");\r\n+            } else if (remaining < 0) {\r\n+                buf.append(-remaining)\r\n+                        .append(\" ns ago\");\r\n+            } else {\r\n+                buf.append(\"now\");\r\n+            }\r\n+\r\n+            if (isCancelled()) {\r\n+                buf.append(\", cancelled\");\r\n+            }\r\n+\r\n+            return buf.append(\", task: \")\r\n+                    .append(task())\r\n+                    .append(')')\r\n+                    .toString();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Bucket that stores HashedWheelTimeouts. These are stored in a linked-list like datastructure to allow easy\r\n+     * removal of HashedWheelTimeouts in the middle. Also the HashedWheelTimeout act as nodes themself and so no\r\n+     * extra object creation is needed.\r\n+     */\r\n+    private static final class HashedWheelBucket {\r\n+\r\n+        /**\r\n+         * Used for the linked-list datastructure\r\n+         */\r\n+        private HashedWheelTimeout head;\r\n+        private HashedWheelTimeout tail;\r\n+\r\n+        /**\r\n+         * Add {@link HashedWheelTimeout} to this bucket.\r\n+         */\r\n+        void addTimeout(HashedWheelTimeout timeout) {\r\n+            assert timeout.bucket == null;\r\n+            timeout.bucket = this;\r\n+            if (head == null) {\r\n+                head = tail = timeout;\r\n+            } else {\r\n+                tail.next = timeout;\r\n+                timeout.prev = tail;\r\n+                tail = timeout;\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * Expire all {@link HashedWheelTimeout}s for the given {@code deadline}.\r\n+         */\r\n+        void expireTimeouts(long deadline) {\r\n+            HashedWheelTimeout timeout = head;\r\n+\r\n+            // process all timeouts\r\n+            while (timeout != null) {\r\n+                HashedWheelTimeout next = timeout.next;\r\n+                if (timeout.remainingRounds <= 0) {\r\n+                    next = remove(timeout);\r\n+                    if (timeout.deadline <= deadline) {\r\n+                        timeout.expire();\r\n+                    } else {\r\n+                        // The timeout was placed into a wrong slot. This should never happen.\r\n+                        throw new IllegalStateException(String.format(\r\n+                                \"timeout.deadline (%d) > deadline (%d)\", timeout.deadline, deadline));\r\n+                    }\r\n+                } else if (timeout.isCancelled()) {\r\n+                    next = remove(timeout);\r\n+                } else {\r\n+                    timeout.remainingRounds--;\r\n+                }\r\n+                timeout = next;\r\n+            }\r\n+        }\r\n+\r\n+        public HashedWheelTimeout remove(HashedWheelTimeout timeout) {\r\n+            HashedWheelTimeout next = timeout.next;\r\n+            // remove timeout that was either processed or cancelled by updating the linked-list\r\n+            if (timeout.prev != null) {\r\n+                timeout.prev.next = next;\r\n+            }\r\n+            if (timeout.next != null) {\r\n+                timeout.next.prev = timeout.prev;\r\n+            }\r\n+\r\n+            if (timeout == head) {\r\n+                // if timeout is also the tail we need to adjust the entry too\r\n+                if (timeout == tail) {\r\n+                    tail = null;\r\n+                    head = null;\r\n+                } else {\r\n+                    head = next;\r\n+                }\r\n+            } else if (timeout == tail) {\r\n+                // if the timeout is the tail modify the tail to be the prev node.\r\n+                tail = timeout.prev;\r\n+            }\r\n+            // null out prev, next and bucket to allow for GC.\r\n+            timeout.prev = null;\r\n+            timeout.next = null;\r\n+            timeout.bucket = null;\r\n+            timeout.timer.pendingTimeouts.decrementAndGet();\r\n+            return next;\r\n+        }\r\n+\r\n+        /**\r\n+         * Clear this bucket and return all not expired / cancelled {@link Timeout}s.\r\n+         */\r\n+        void clearTimeouts(Set<Timeout> set) {\r\n+            for (; ; ) {\r\n+                HashedWheelTimeout timeout = pollTimeout();\r\n+                if (timeout == null) {\r\n+                    return;\r\n+                }\r\n+                if (timeout.isExpired() || timeout.isCancelled()) {\r\n+                    continue;\r\n+                }\r\n+                set.add(timeout);\r\n+            }\r\n+        }\r\n+\r\n+        private HashedWheelTimeout pollTimeout() {\r\n+            HashedWheelTimeout head = this.head;\r\n+            if (head == null) {\r\n+                return null;\r\n+            }\r\n+            HashedWheelTimeout next = head.next;\r\n+            if (next == null) {\r\n+                tail = this.head = null;\r\n+            } else {\r\n+                this.head = next;\r\n+                next.prev = null;\r\n+            }\r\n+\r\n+            // null out prev and next to allow for GC.\r\n+            head.next = null;\r\n+            head.prev = null;\r\n+            head.bucket = null;\r\n+            return head;\r\n+        }\r\n+    }\r\n+    \r\n+    private static final boolean IS_OS_WINDOWS = System.getProperty(\"os.name\", \"\").toLowerCase(Locale.US).contains(\"win\");\r\n+    \r\n+    private boolean isWindows() {\r\n+    \treturn IS_OS_WINDOWS;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/AnnotationUtils.java", "source2": "org/apache/dubbo/common/utils/AnnotationUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,482 +1,482 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.Target;\n-import java.lang.reflect.AnnotatedElement;\n-import java.lang.reflect.Method;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.function.Predicate;\n-\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.emptyList;\n-import static java.util.Collections.unmodifiableList;\n-import static org.apache.dubbo.common.function.Predicates.and;\n-import static org.apache.dubbo.common.function.Streams.filterAll;\n-import static org.apache.dubbo.common.function.Streams.filterFirst;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\n-import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\n-import static org.apache.dubbo.common.utils.CollectionUtils.first;\n-import static org.apache.dubbo.common.utils.MethodUtils.findMethod;\n-import static org.apache.dubbo.common.utils.MethodUtils.invokeMethod;\n-\n-/**\n- * Commons Annotation Utilities class\n- *\n- * @since 2.7.6\n- */\n-public interface AnnotationUtils {\n-\n-    /**\n-     * Resolve the annotation type by the annotated element and resolved class name\n-     *\n-     * @param annotatedElement    the annotated element\n-     * @param annotationClassName the class name of annotation\n-     * @param <A>                 the type of annotation\n-     * @return If resolved, return the type of annotation, or <code>null</code>\n-     */\n-    static <A extends Annotation> Class<A> resolveAnnotationType(AnnotatedElement annotatedElement,\n-                                                                 String annotationClassName) {\n-        ClassLoader classLoader = annotatedElement.getClass().getClassLoader();\n-        Class<?> annotationType = resolveClass(annotationClassName, classLoader);\n-        if (annotationType == null || !Annotation.class.isAssignableFrom(annotationType)) {\n-            return null;\n-        }\n-        return (Class<A>) annotationType;\n-    }\n-\n-    /**\n-     * Is the specified type a generic {@link Class type}\n-     *\n-     * @param annotatedElement the annotated element\n-     * @return if <code>annotatedElement</code> is the {@link Class}, return <code>true</code>, or <code>false</code>\n-     * @see ElementType#TYPE\n-     */\n-    static boolean isType(AnnotatedElement annotatedElement) {\n-        return annotatedElement instanceof Class;\n-    }\n-\n-    /**\n-     * Is the type of specified annotation same to the expected type?\n-     *\n-     * @param annotation     the specified {@link Annotation}\n-     * @param annotationType the expected annotation type\n-     * @return if same, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isSameType(Annotation annotation, Class<? extends Annotation> annotationType) {\n-        if (annotation == null || annotationType == null) {\n-            return false;\n-        }\n-        return Objects.equals(annotation.annotationType(), annotationType);\n-    }\n-\n-    /**\n-     * Build an instance of {@link Predicate} to excluded annotation type\n-     *\n-     * @param excludedAnnotationType excluded annotation type\n-     * @return non-null\n-     */\n-    static Predicate<Annotation> excludedType(Class<? extends Annotation> excludedAnnotationType) {\n-        return annotation -> !isSameType(annotation, excludedAnnotationType);\n-    }\n-\n-    /**\n-     * Get the attribute from the specified {@link Annotation annotation}\n-     *\n-     * @param annotation    the specified {@link Annotation annotation}\n-     * @param attributeName the attribute name\n-     * @param <T>           the type of attribute\n-     * @return the attribute value\n-     * @throws IllegalArgumentException If the attribute name can't be found\n-     */\n-    static <T> T getAttribute(Annotation annotation, String attributeName) throws IllegalArgumentException {\n-        return annotation == null ? null : invokeMethod(annotation, attributeName);\n-    }\n-\n-    /**\n-     * Get the \"value\" attribute from the specified {@link Annotation annotation}\n-     *\n-     * @param annotation the specified {@link Annotation annotation}\n-     * @param <T>        the type of attribute\n-     * @return the value of \"value\" attribute\n-     * @throws IllegalArgumentException If the attribute name can't be found\n-     */\n-    static <T> T getValue(Annotation annotation) throws IllegalArgumentException {\n-        return getAttribute(annotation, \"value\");\n-    }\n-\n-    /**\n-     * Get the {@link Annotation} from the specified {@link AnnotatedElement the annotated element} and\n-     * {@link Annotation annotation} class name\n-     *\n-     * @param annotatedElement    {@link AnnotatedElement}\n-     * @param annotationClassName the class name of annotation\n-     * @param <A>                 The type of {@link Annotation}\n-     * @return the {@link Annotation} if found\n-     * @throws ClassCastException If the {@link Annotation annotation} type that client requires can't match actual type\n-     */\n-    static <A extends Annotation> A getAnnotation(AnnotatedElement annotatedElement, String annotationClassName)\n-            throws ClassCastException {\n-        Class<? extends Annotation> annotationType = resolveAnnotationType(annotatedElement, annotationClassName);\n-        if (annotationType == null) {\n-            return null;\n-        }\n-        return (A) annotatedElement.getAnnotation(annotationType);\n-    }\n-\n-    /**\n-     * Get annotations that are <em>directly present</em> on this element.\n-     * This method ignores inherited annotations.\n-     *\n-     * @param annotatedElement    the annotated element\n-     * @param annotationsToFilter the annotations to filter\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<Annotation> getDeclaredAnnotations(AnnotatedElement annotatedElement,\n-                                                   Predicate<Annotation>... annotationsToFilter) {\n-        if (annotatedElement == null) {\n-            return emptyList();\n-        }\n-\n-        return unmodifiableList(filterAll(asList(annotatedElement.getDeclaredAnnotations()), annotationsToFilter));\n-    }\n-\n-    /**\n-     * Get all directly declared annotations of the the annotated element, not including\n-     * meta annotations.\n-     *\n-     * @param annotatedElement    the annotated element\n-     * @param annotationsToFilter the annotations to filter\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<Annotation> getAllDeclaredAnnotations(AnnotatedElement annotatedElement,\n-                                                      Predicate<Annotation>... annotationsToFilter) {\n-        if (isType(annotatedElement)) {\n-            return getAllDeclaredAnnotations((Class) annotatedElement, annotationsToFilter);\n-        } else {\n-            return getDeclaredAnnotations(annotatedElement, annotationsToFilter);\n-        }\n-    }\n-\n-    /**\n-     * Get all directly declared annotations of the specified type and its' all hierarchical types, not including\n-     * meta annotations.\n-     *\n-     * @param type                the specified type\n-     * @param annotationsToFilter the annotations to filter\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<Annotation> getAllDeclaredAnnotations(Class<?> type, Predicate<Annotation>... annotationsToFilter) {\n-\n-        if (type == null) {\n-            return emptyList();\n-        }\n-\n-        List<Annotation> allAnnotations = new LinkedList<>();\n-\n-        // All types\n-        Set<Class<?>> allTypes = new LinkedHashSet<>();\n-        // Add current type\n-        allTypes.add(type);\n-        // Add all inherited types\n-        allTypes.addAll(getAllInheritedTypes(type, t -> !Object.class.equals(t)));\n-\n-        for (Class<?> t : allTypes) {\n-            allAnnotations.addAll(getDeclaredAnnotations(t, annotationsToFilter));\n-        }\n-\n-        return unmodifiableList(allAnnotations);\n-    }\n-\n-\n-    /**\n-     * Get the meta-annotated {@link Annotation annotations} directly, excluding {@link Target}, {@link Retention}\n-     * and {@link Documented}\n-     *\n-     * @param annotationType          the {@link Annotation annotation} type\n-     * @param metaAnnotationsToFilter the meta annotations to filter\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<Annotation> getMetaAnnotations(Class<? extends Annotation> annotationType,\n-                                               Predicate<Annotation>... metaAnnotationsToFilter) {\n-        return getDeclaredAnnotations(annotationType,\n-                // Excludes the Java native annotation types or it causes the stack overflow, e.g,\n-                // @Target annotates itself\n-                excludedType(Target.class),\n-                excludedType(Retention.class),\n-                excludedType(Documented.class),\n-                // Add other predicates\n-                and(metaAnnotationsToFilter)\n-        );\n-    }\n-\n-    /**\n-     * Get all meta annotations from the specified {@link Annotation annotation} type\n-     *\n-     * @param annotationType      the {@link Annotation annotation} type\n-     * @param annotationsToFilter the annotations to filter\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<Annotation> getAllMetaAnnotations(Class<? extends Annotation> annotationType,\n-                                                  Predicate<Annotation>... annotationsToFilter) {\n-\n-        List<Annotation> allMetaAnnotations = new LinkedList<>();\n-\n-        List<Annotation> metaAnnotations = getMetaAnnotations(annotationType);\n-\n-        allMetaAnnotations.addAll(metaAnnotations);\n-\n-        for (Annotation metaAnnotation : metaAnnotations) {\n-            // Get the nested meta annotations recursively\n-            allMetaAnnotations.addAll(getAllMetaAnnotations(metaAnnotation.annotationType()));\n-        }\n-\n-        return unmodifiableList(filterAll(allMetaAnnotations, annotationsToFilter));\n-    }\n-\n-    /**\n-     * Find the annotation that is annotated on the specified element may be a meta-annotation\n-     *\n-     * @param annotatedElement    the annotated element\n-     * @param annotationClassName the class name of annotation\n-     * @param <A>                 the required type of annotation\n-     * @return If found, return first matched-type {@link Annotation annotation}, or <code>null</code>\n-     */\n-    static <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, String annotationClassName) {\n-        return findAnnotation(annotatedElement, resolveAnnotationType(annotatedElement, annotationClassName));\n-    }\n-\n-    /**\n-     * Find the annotation that is annotated on the specified element may be a meta-annotation\n-     *\n-     * @param annotatedElement the annotated element\n-     * @param annotationType   the type of annotation\n-     * @param <A>              the required type of annotation\n-     * @return If found, return first matched-type {@link Annotation annotation}, or <code>null</code>\n-     */\n-    static <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, Class<A> annotationType) {\n-        return (A) filterFirst(getAllDeclaredAnnotations(annotatedElement), a -> isSameType(a, annotationType));\n-    }\n-\n-    /**\n-     * Find the meta annotations from the the {@link Annotation annotation} type by meta annotation type\n-     *\n-     * @param annotationType     the {@link Annotation annotation} type\n-     * @param metaAnnotationType the meta annotation type\n-     * @param <A>                the type of required annotation\n-     * @return if found, return all matched results, or get an {@link Collections#emptyList() empty list}\n-     */\n-    static <A extends Annotation> List<A> findMetaAnnotations(Class<? extends Annotation> annotationType,\n-                                                              Class<A> metaAnnotationType) {\n-        return (List<A>) getAllMetaAnnotations(annotationType, a -> isSameType(a, metaAnnotationType));\n-    }\n-\n-    /**\n-     * Find the meta annotations from the the the annotated element by meta annotation type\n-     *\n-     * @param annotatedElement   the annotated element\n-     * @param metaAnnotationType the meta annotation type\n-     * @param <A>                the type of required annotation\n-     * @return if found, return all matched results, or get an {@link Collections#emptyList() empty list}\n-     */\n-    static <A extends Annotation> List<A> findMetaAnnotations(AnnotatedElement annotatedElement,\n-                                                              Class<A> metaAnnotationType) {\n-        List<A> metaAnnotations = new LinkedList<>();\n-\n-        for (Annotation annotation : getAllDeclaredAnnotations(annotatedElement)) {\n-            metaAnnotations.addAll(findMetaAnnotations(annotation.annotationType(), metaAnnotationType));\n-        }\n-\n-        return unmodifiableList(metaAnnotations);\n-    }\n-\n-    /**\n-     * Find the meta annotation from the annotated element by meta annotation type\n-     *\n-     * @param annotatedElement        the annotated element\n-     * @param metaAnnotationClassName the class name of meta annotation\n-     * @param <A>                     the type of required annotation\n-     * @return {@link #findMetaAnnotation(Class, Class)}\n-     */\n-    static <A extends Annotation> A findMetaAnnotation(AnnotatedElement annotatedElement,\n-                                                       String metaAnnotationClassName) {\n-        return findMetaAnnotation(annotatedElement, resolveAnnotationType(annotatedElement, metaAnnotationClassName));\n-    }\n-\n-    /**\n-     * Find the meta annotation from the annotation type by meta annotation type\n-     *\n-     * @param annotationType     the {@link Annotation annotation} type\n-     * @param metaAnnotationType the meta annotation type\n-     * @param <A>                the type of required annotation\n-     * @return If found, return the {@link CollectionUtils#first(Collection)} matched result, return <code>null</code>.\n-     * If it requires more result, please consider to use {@link #findMetaAnnotations(Class, Class)}\n-     * @see #findMetaAnnotations(Class, Class)\n-     */\n-    static <A extends Annotation> A findMetaAnnotation(Class<? extends Annotation> annotationType,\n-                                                       Class<A> metaAnnotationType) {\n-        return first(findMetaAnnotations(annotationType, metaAnnotationType));\n-    }\n-\n-    /**\n-     * Find the meta annotation from the annotated element by meta annotation type\n-     *\n-     * @param annotatedElement   the annotated element\n-     * @param metaAnnotationType the meta annotation type\n-     * @param <A>                the type of required annotation\n-     * @return If found, return the {@link CollectionUtils#first(Collection)} matched result, return <code>null</code>.\n-     * If it requires more result, please consider to use {@link #findMetaAnnotations(AnnotatedElement, Class)}\n-     * @see #findMetaAnnotations(AnnotatedElement, Class)\n-     */\n-    static <A extends Annotation> A findMetaAnnotation(AnnotatedElement annotatedElement, Class<A> metaAnnotationType) {\n-        return first(findMetaAnnotations(annotatedElement, metaAnnotationType));\n-    }\n-\n-    /**\n-     * Tests the annotated element is annotated the specified annotations or not\n-     *\n-     * @param type            the annotated type\n-     * @param matchAll        If <code>true</code>, checking all annotation types are present or not, or match any\n-     * @param annotationTypes the specified annotation types\n-     * @return If the specified annotation types are present, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isAnnotationPresent(Class<?> type,\n-                                       boolean matchAll,\n-                                       Class<? extends Annotation>... annotationTypes) {\n-\n-        int size = annotationTypes == null ? 0 : annotationTypes.length;\n-\n-        if (size < 1) {\n-            return false;\n-        }\n-\n-        int presentCount = 0;\n-\n-        for (int i = 0; i < size; i++) {\n-            Class<? extends Annotation> annotationType = annotationTypes[i];\n-            if (findAnnotation(type, annotationType) != null || findMetaAnnotation(type, annotationType) != null) {\n-                presentCount++;\n-            }\n-        }\n-\n-        return matchAll ? presentCount == size : presentCount > 0;\n-    }\n-\n-    /**\n-     * Tests the annotated element is annotated the specified annotation or not\n-     *\n-     * @param type           the annotated type\n-     * @param annotationType the class of annotation\n-     * @return If the specified annotation type is present, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isAnnotationPresent(Class<?> type, Class<? extends Annotation> annotationType) {\n-        return isAnnotationPresent(type, true, annotationType);\n-    }\n-\n-    /**\n-     * Tests the annotated element is present any specified annotation types\n-     *\n-     * @param annotatedElement    the annotated element\n-     * @param annotationClassName the class name of annotation\n-     * @return If any specified annotation types are present, return <code>true</code>\n-     */\n-    static boolean isAnnotationPresent(AnnotatedElement annotatedElement, String annotationClassName) {\n-        ClassLoader classLoader = annotatedElement.getClass().getClassLoader();\n-        Class<?> resolvedType = resolveClass(annotationClassName, classLoader);\n-        if (!Annotation.class.isAssignableFrom(resolvedType)) {\n-            return false;\n-        }\n-        return isAnnotationPresent(annotatedElement, (Class<? extends Annotation>) resolvedType);\n-    }\n-\n-    /**\n-     * Tests the annotated element is present any specified annotation types\n-     *\n-     * @param annotatedElement the annotated element\n-     * @param annotationType   the class of annotation\n-     * @return If any specified annotation types are present, return <code>true</code>\n-     */\n-    static boolean isAnnotationPresent(AnnotatedElement annotatedElement, Class<? extends Annotation> annotationType) {\n-        if (isType(annotatedElement)) {\n-            return isAnnotationPresent((Class) annotatedElement, annotationType);\n-        } else {\n-            return annotatedElement.isAnnotationPresent(annotationType) ||\n-                    findMetaAnnotation(annotatedElement, annotationType) != null; // to find meta-annotation\n-        }\n-    }\n-\n-    /**\n-     * Tests the annotated element is annotated all specified annotations or not\n-     *\n-     * @param type            the annotated type\n-     * @param annotationTypes the specified annotation types\n-     * @return If the specified annotation types are present, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isAllAnnotationPresent(Class<?> type, Class<? extends Annotation>... annotationTypes) {\n-        return isAnnotationPresent(type, true, annotationTypes);\n-    }\n-\n-    /**\n-     * Tests the annotated element is present any specified annotation types\n-     *\n-     * @param type            the annotated type\n-     * @param annotationTypes the specified annotation types\n-     * @return If any specified annotation types are present, return <code>true</code>\n-     */\n-    static boolean isAnyAnnotationPresent(Class<?> type,\n-                                          Class<? extends Annotation>... annotationTypes) {\n-        return isAnnotationPresent(type, false, annotationTypes);\n-    }\n-\n-\n-    /**\n-     * Get the default value of attribute on the specified annotation\n-     *\n-     * @param annotation    {@link Annotation} object\n-     * @param attributeName the name of attribute\n-     * @param <T>           the type of value\n-     * @return <code>null</code> if not found\n-     * @since 2.7.9\n-     */\n-    static <T> T getDefaultValue(Annotation annotation, String attributeName) {\n-        return getDefaultValue(annotation.annotationType(), attributeName);\n-    }\n-\n-    /**\n-     * Get the default value of attribute on the specified annotation\n-     *\n-     * @param annotationType the type of {@link Annotation}\n-     * @param attributeName  the name of attribute\n-     * @param <T>            the type of value\n-     * @return <code>null</code> if not found\n-     * @since 2.7.9\n-     */\n-    static <T> T getDefaultValue(Class<? extends Annotation> annotationType, String attributeName) {\n-        Method method = findMethod(annotationType, attributeName);\n-        return (T) (method == null ? null : method.getDefaultValue());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.Target;\r\n+import java.lang.reflect.AnnotatedElement;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.function.Predicate;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.emptyList;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.apache.dubbo.common.function.Predicates.and;\r\n+import static org.apache.dubbo.common.function.Streams.filterAll;\r\n+import static org.apache.dubbo.common.function.Streams.filterFirst;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\r\n+import static org.apache.dubbo.common.utils.CollectionUtils.first;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.findMethod;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.invokeMethod;\r\n+\r\n+/**\r\n+ * Commons Annotation Utilities class\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface AnnotationUtils {\r\n+\r\n+    /**\r\n+     * Resolve the annotation type by the annotated element and resolved class name\r\n+     *\r\n+     * @param annotatedElement    the annotated element\r\n+     * @param annotationClassName the class name of annotation\r\n+     * @param <A>                 the type of annotation\r\n+     * @return If resolved, return the type of annotation, or <code>null</code>\r\n+     */\r\n+    static <A extends Annotation> Class<A> resolveAnnotationType(AnnotatedElement annotatedElement,\r\n+                                                                 String annotationClassName) {\r\n+        ClassLoader classLoader = annotatedElement.getClass().getClassLoader();\r\n+        Class<?> annotationType = resolveClass(annotationClassName, classLoader);\r\n+        if (annotationType == null || !Annotation.class.isAssignableFrom(annotationType)) {\r\n+            return null;\r\n+        }\r\n+        return (Class<A>) annotationType;\r\n+    }\r\n+\r\n+    /**\r\n+     * Is the specified type a generic {@link Class type}\r\n+     *\r\n+     * @param annotatedElement the annotated element\r\n+     * @return if <code>annotatedElement</code> is the {@link Class}, return <code>true</code>, or <code>false</code>\r\n+     * @see ElementType#TYPE\r\n+     */\r\n+    static boolean isType(AnnotatedElement annotatedElement) {\r\n+        return annotatedElement instanceof Class;\r\n+    }\r\n+\r\n+    /**\r\n+     * Is the type of specified annotation same to the expected type?\r\n+     *\r\n+     * @param annotation     the specified {@link Annotation}\r\n+     * @param annotationType the expected annotation type\r\n+     * @return if same, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isSameType(Annotation annotation, Class<? extends Annotation> annotationType) {\r\n+        if (annotation == null || annotationType == null) {\r\n+            return false;\r\n+        }\r\n+        return Objects.equals(annotation.annotationType(), annotationType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Build an instance of {@link Predicate} to excluded annotation type\r\n+     *\r\n+     * @param excludedAnnotationType excluded annotation type\r\n+     * @return non-null\r\n+     */\r\n+    static Predicate<Annotation> excludedType(Class<? extends Annotation> excludedAnnotationType) {\r\n+        return annotation -> !isSameType(annotation, excludedAnnotationType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the attribute from the specified {@link Annotation annotation}\r\n+     *\r\n+     * @param annotation    the specified {@link Annotation annotation}\r\n+     * @param attributeName the attribute name\r\n+     * @param <T>           the type of attribute\r\n+     * @return the attribute value\r\n+     * @throws IllegalArgumentException If the attribute name can't be found\r\n+     */\r\n+    static <T> T getAttribute(Annotation annotation, String attributeName) throws IllegalArgumentException {\r\n+        return annotation == null ? null : invokeMethod(annotation, attributeName);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the \"value\" attribute from the specified {@link Annotation annotation}\r\n+     *\r\n+     * @param annotation the specified {@link Annotation annotation}\r\n+     * @param <T>        the type of attribute\r\n+     * @return the value of \"value\" attribute\r\n+     * @throws IllegalArgumentException If the attribute name can't be found\r\n+     */\r\n+    static <T> T getValue(Annotation annotation) throws IllegalArgumentException {\r\n+        return getAttribute(annotation, \"value\");\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link Annotation} from the specified {@link AnnotatedElement the annotated element} and\r\n+     * {@link Annotation annotation} class name\r\n+     *\r\n+     * @param annotatedElement    {@link AnnotatedElement}\r\n+     * @param annotationClassName the class name of annotation\r\n+     * @param <A>                 The type of {@link Annotation}\r\n+     * @return the {@link Annotation} if found\r\n+     * @throws ClassCastException If the {@link Annotation annotation} type that client requires can't match actual type\r\n+     */\r\n+    static <A extends Annotation> A getAnnotation(AnnotatedElement annotatedElement, String annotationClassName)\r\n+            throws ClassCastException {\r\n+        Class<? extends Annotation> annotationType = resolveAnnotationType(annotatedElement, annotationClassName);\r\n+        if (annotationType == null) {\r\n+            return null;\r\n+        }\r\n+        return (A) annotatedElement.getAnnotation(annotationType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get annotations that are <em>directly present</em> on this element.\r\n+     * This method ignores inherited annotations.\r\n+     *\r\n+     * @param annotatedElement    the annotated element\r\n+     * @param annotationsToFilter the annotations to filter\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<Annotation> getDeclaredAnnotations(AnnotatedElement annotatedElement,\r\n+                                                   Predicate<Annotation>... annotationsToFilter) {\r\n+        if (annotatedElement == null) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        return unmodifiableList(filterAll(asList(annotatedElement.getDeclaredAnnotations()), annotationsToFilter));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all directly declared annotations of the the annotated element, not including\r\n+     * meta annotations.\r\n+     *\r\n+     * @param annotatedElement    the annotated element\r\n+     * @param annotationsToFilter the annotations to filter\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<Annotation> getAllDeclaredAnnotations(AnnotatedElement annotatedElement,\r\n+                                                      Predicate<Annotation>... annotationsToFilter) {\r\n+        if (isType(annotatedElement)) {\r\n+            return getAllDeclaredAnnotations((Class) annotatedElement, annotationsToFilter);\r\n+        } else {\r\n+            return getDeclaredAnnotations(annotatedElement, annotationsToFilter);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all directly declared annotations of the specified type and its' all hierarchical types, not including\r\n+     * meta annotations.\r\n+     *\r\n+     * @param type                the specified type\r\n+     * @param annotationsToFilter the annotations to filter\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<Annotation> getAllDeclaredAnnotations(Class<?> type, Predicate<Annotation>... annotationsToFilter) {\r\n+\r\n+        if (type == null) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        List<Annotation> allAnnotations = new LinkedList<>();\r\n+\r\n+        // All types\r\n+        Set<Class<?>> allTypes = new LinkedHashSet<>();\r\n+        // Add current type\r\n+        allTypes.add(type);\r\n+        // Add all inherited types\r\n+        allTypes.addAll(getAllInheritedTypes(type, t -> !Object.class.equals(t)));\r\n+\r\n+        for (Class<?> t : allTypes) {\r\n+            allAnnotations.addAll(getDeclaredAnnotations(t, annotationsToFilter));\r\n+        }\r\n+\r\n+        return unmodifiableList(allAnnotations);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Get the meta-annotated {@link Annotation annotations} directly, excluding {@link Target}, {@link Retention}\r\n+     * and {@link Documented}\r\n+     *\r\n+     * @param annotationType          the {@link Annotation annotation} type\r\n+     * @param metaAnnotationsToFilter the meta annotations to filter\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<Annotation> getMetaAnnotations(Class<? extends Annotation> annotationType,\r\n+                                               Predicate<Annotation>... metaAnnotationsToFilter) {\r\n+        return getDeclaredAnnotations(annotationType,\r\n+                // Excludes the Java native annotation types or it causes the stack overflow, e.g,\r\n+                // @Target annotates itself\r\n+                excludedType(Target.class),\r\n+                excludedType(Retention.class),\r\n+                excludedType(Documented.class),\r\n+                // Add other predicates\r\n+                and(metaAnnotationsToFilter)\r\n+        );\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all meta annotations from the specified {@link Annotation annotation} type\r\n+     *\r\n+     * @param annotationType      the {@link Annotation annotation} type\r\n+     * @param annotationsToFilter the annotations to filter\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<Annotation> getAllMetaAnnotations(Class<? extends Annotation> annotationType,\r\n+                                                  Predicate<Annotation>... annotationsToFilter) {\r\n+\r\n+        List<Annotation> allMetaAnnotations = new LinkedList<>();\r\n+\r\n+        List<Annotation> metaAnnotations = getMetaAnnotations(annotationType);\r\n+\r\n+        allMetaAnnotations.addAll(metaAnnotations);\r\n+\r\n+        for (Annotation metaAnnotation : metaAnnotations) {\r\n+            // Get the nested meta annotations recursively\r\n+            allMetaAnnotations.addAll(getAllMetaAnnotations(metaAnnotation.annotationType()));\r\n+        }\r\n+\r\n+        return unmodifiableList(filterAll(allMetaAnnotations, annotationsToFilter));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the annotation that is annotated on the specified element may be a meta-annotation\r\n+     *\r\n+     * @param annotatedElement    the annotated element\r\n+     * @param annotationClassName the class name of annotation\r\n+     * @param <A>                 the required type of annotation\r\n+     * @return If found, return first matched-type {@link Annotation annotation}, or <code>null</code>\r\n+     */\r\n+    static <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, String annotationClassName) {\r\n+        return findAnnotation(annotatedElement, resolveAnnotationType(annotatedElement, annotationClassName));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the annotation that is annotated on the specified element may be a meta-annotation\r\n+     *\r\n+     * @param annotatedElement the annotated element\r\n+     * @param annotationType   the type of annotation\r\n+     * @param <A>              the required type of annotation\r\n+     * @return If found, return first matched-type {@link Annotation annotation}, or <code>null</code>\r\n+     */\r\n+    static <A extends Annotation> A findAnnotation(AnnotatedElement annotatedElement, Class<A> annotationType) {\r\n+        return (A) filterFirst(getAllDeclaredAnnotations(annotatedElement), a -> isSameType(a, annotationType));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the meta annotations from the the {@link Annotation annotation} type by meta annotation type\r\n+     *\r\n+     * @param annotationType     the {@link Annotation annotation} type\r\n+     * @param metaAnnotationType the meta annotation type\r\n+     * @param <A>                the type of required annotation\r\n+     * @return if found, return all matched results, or get an {@link Collections#emptyList() empty list}\r\n+     */\r\n+    static <A extends Annotation> List<A> findMetaAnnotations(Class<? extends Annotation> annotationType,\r\n+                                                              Class<A> metaAnnotationType) {\r\n+        return (List<A>) getAllMetaAnnotations(annotationType, a -> isSameType(a, metaAnnotationType));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the meta annotations from the the the annotated element by meta annotation type\r\n+     *\r\n+     * @param annotatedElement   the annotated element\r\n+     * @param metaAnnotationType the meta annotation type\r\n+     * @param <A>                the type of required annotation\r\n+     * @return if found, return all matched results, or get an {@link Collections#emptyList() empty list}\r\n+     */\r\n+    static <A extends Annotation> List<A> findMetaAnnotations(AnnotatedElement annotatedElement,\r\n+                                                              Class<A> metaAnnotationType) {\r\n+        List<A> metaAnnotations = new LinkedList<>();\r\n+\r\n+        for (Annotation annotation : getAllDeclaredAnnotations(annotatedElement)) {\r\n+            metaAnnotations.addAll(findMetaAnnotations(annotation.annotationType(), metaAnnotationType));\r\n+        }\r\n+\r\n+        return unmodifiableList(metaAnnotations);\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the meta annotation from the annotated element by meta annotation type\r\n+     *\r\n+     * @param annotatedElement        the annotated element\r\n+     * @param metaAnnotationClassName the class name of meta annotation\r\n+     * @param <A>                     the type of required annotation\r\n+     * @return {@link #findMetaAnnotation(Class, Class)}\r\n+     */\r\n+    static <A extends Annotation> A findMetaAnnotation(AnnotatedElement annotatedElement,\r\n+                                                       String metaAnnotationClassName) {\r\n+        return findMetaAnnotation(annotatedElement, resolveAnnotationType(annotatedElement, metaAnnotationClassName));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the meta annotation from the annotation type by meta annotation type\r\n+     *\r\n+     * @param annotationType     the {@link Annotation annotation} type\r\n+     * @param metaAnnotationType the meta annotation type\r\n+     * @param <A>                the type of required annotation\r\n+     * @return If found, return the {@link CollectionUtils#first(Collection)} matched result, return <code>null</code>.\r\n+     * If it requires more result, please consider to use {@link #findMetaAnnotations(Class, Class)}\r\n+     * @see #findMetaAnnotations(Class, Class)\r\n+     */\r\n+    static <A extends Annotation> A findMetaAnnotation(Class<? extends Annotation> annotationType,\r\n+                                                       Class<A> metaAnnotationType) {\r\n+        return first(findMetaAnnotations(annotationType, metaAnnotationType));\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the meta annotation from the annotated element by meta annotation type\r\n+     *\r\n+     * @param annotatedElement   the annotated element\r\n+     * @param metaAnnotationType the meta annotation type\r\n+     * @param <A>                the type of required annotation\r\n+     * @return If found, return the {@link CollectionUtils#first(Collection)} matched result, return <code>null</code>.\r\n+     * If it requires more result, please consider to use {@link #findMetaAnnotations(AnnotatedElement, Class)}\r\n+     * @see #findMetaAnnotations(AnnotatedElement, Class)\r\n+     */\r\n+    static <A extends Annotation> A findMetaAnnotation(AnnotatedElement annotatedElement, Class<A> metaAnnotationType) {\r\n+        return first(findMetaAnnotations(annotatedElement, metaAnnotationType));\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is annotated the specified annotations or not\r\n+     *\r\n+     * @param type            the annotated type\r\n+     * @param matchAll        If <code>true</code>, checking all annotation types are present or not, or match any\r\n+     * @param annotationTypes the specified annotation types\r\n+     * @return If the specified annotation types are present, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isAnnotationPresent(Class<?> type,\r\n+                                       boolean matchAll,\r\n+                                       Class<? extends Annotation>... annotationTypes) {\r\n+\r\n+        int size = annotationTypes == null ? 0 : annotationTypes.length;\r\n+\r\n+        if (size < 1) {\r\n+            return false;\r\n+        }\r\n+\r\n+        int presentCount = 0;\r\n+\r\n+        for (int i = 0; i < size; i++) {\r\n+            Class<? extends Annotation> annotationType = annotationTypes[i];\r\n+            if (findAnnotation(type, annotationType) != null || findMetaAnnotation(type, annotationType) != null) {\r\n+                presentCount++;\r\n+            }\r\n+        }\r\n+\r\n+        return matchAll ? presentCount == size : presentCount > 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is annotated the specified annotation or not\r\n+     *\r\n+     * @param type           the annotated type\r\n+     * @param annotationType the class of annotation\r\n+     * @return If the specified annotation type is present, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isAnnotationPresent(Class<?> type, Class<? extends Annotation> annotationType) {\r\n+        return isAnnotationPresent(type, true, annotationType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is present any specified annotation types\r\n+     *\r\n+     * @param annotatedElement    the annotated element\r\n+     * @param annotationClassName the class name of annotation\r\n+     * @return If any specified annotation types are present, return <code>true</code>\r\n+     */\r\n+    static boolean isAnnotationPresent(AnnotatedElement annotatedElement, String annotationClassName) {\r\n+        ClassLoader classLoader = annotatedElement.getClass().getClassLoader();\r\n+        Class<?> resolvedType = resolveClass(annotationClassName, classLoader);\r\n+        if (!Annotation.class.isAssignableFrom(resolvedType)) {\r\n+            return false;\r\n+        }\r\n+        return isAnnotationPresent(annotatedElement, (Class<? extends Annotation>) resolvedType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is present any specified annotation types\r\n+     *\r\n+     * @param annotatedElement the annotated element\r\n+     * @param annotationType   the class of annotation\r\n+     * @return If any specified annotation types are present, return <code>true</code>\r\n+     */\r\n+    static boolean isAnnotationPresent(AnnotatedElement annotatedElement, Class<? extends Annotation> annotationType) {\r\n+        if (isType(annotatedElement)) {\r\n+            return isAnnotationPresent((Class) annotatedElement, annotationType);\r\n+        } else {\r\n+            return annotatedElement.isAnnotationPresent(annotationType) ||\r\n+                    findMetaAnnotation(annotatedElement, annotationType) != null; // to find meta-annotation\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is annotated all specified annotations or not\r\n+     *\r\n+     * @param type            the annotated type\r\n+     * @param annotationTypes the specified annotation types\r\n+     * @return If the specified annotation types are present, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isAllAnnotationPresent(Class<?> type, Class<? extends Annotation>... annotationTypes) {\r\n+        return isAnnotationPresent(type, true, annotationTypes);\r\n+    }\r\n+\r\n+    /**\r\n+     * Tests the annotated element is present any specified annotation types\r\n+     *\r\n+     * @param type            the annotated type\r\n+     * @param annotationTypes the specified annotation types\r\n+     * @return If any specified annotation types are present, return <code>true</code>\r\n+     */\r\n+    static boolean isAnyAnnotationPresent(Class<?> type,\r\n+                                          Class<? extends Annotation>... annotationTypes) {\r\n+        return isAnnotationPresent(type, false, annotationTypes);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Get the default value of attribute on the specified annotation\r\n+     *\r\n+     * @param annotation    {@link Annotation} object\r\n+     * @param attributeName the name of attribute\r\n+     * @param <T>           the type of value\r\n+     * @return <code>null</code> if not found\r\n+     * @since 2.7.9\r\n+     */\r\n+    static <T> T getDefaultValue(Annotation annotation, String attributeName) {\r\n+        return getDefaultValue(annotation.annotationType(), attributeName);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the default value of attribute on the specified annotation\r\n+     *\r\n+     * @param annotationType the type of {@link Annotation}\r\n+     * @param attributeName  the name of attribute\r\n+     * @param <T>            the type of value\r\n+     * @return <code>null</code> if not found\r\n+     * @since 2.7.9\r\n+     */\r\n+    static <T> T getDefaultValue(Class<? extends Annotation> annotationType, String attributeName) {\r\n+        Method method = findMethod(annotationType, attributeName);\r\n+        return (T) (method == null ? null : method.getDefaultValue());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ArrayUtils.java", "source2": "org/apache/dubbo/common/utils/ArrayUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,79 +1,79 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.common.utils;\n-\n-/**\n- * Contains some methods to check array.\n- */\n-public final class ArrayUtils {\n-\n-    private ArrayUtils() {\n-    }\n-\n-    /**\n-     * <p>Checks if the array is null or empty. <p/>\n-     *\n-     * @param array th array to check\n-     * @return {@code true} if the array is null or empty.\n-     */\n-    public static boolean isEmpty(final Object[] array) {\n-        return array == null || array.length == 0;\n-    }\n-\n-    /**\n-     * <p>Checks if the array is not null or empty. <p/>\n-     *\n-     * @param array th array to check\n-     * @return {@code true} if the array is not null or empty.\n-     */\n-    public static boolean isNotEmpty(final Object[] array) {\n-        return !isEmpty(array);\n-    }\n-\n-    public static boolean contains(final String[] array, String valueToFind) {\n-        return indexOf(array, valueToFind, 0) != -1;\n-    }\n-\n-    public static int indexOf(String[] array, String valueToFind, int startIndex) {\n-        if (!isEmpty(array) && valueToFind != null) {\n-            if (startIndex < 0) {\n-                startIndex = 0;\n-            }\n-\n-            for (int i = startIndex; i < array.length; ++i) {\n-                if (valueToFind.equals(array[i])) {\n-                    return i;\n-                }\n-            }\n-\n-        }\n-        return -1;\n-    }\n-\n-    /**\n-     * Convert from variable arguments to array\n-     *\n-     * @param values variable arguments\n-     * @param <T>    The class\n-     * @return array\n-     * @since 2.7.9\n-     */\n-    public static <T> T[] of(T... values) {\n-        return values;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+/**\r\n+ * Contains some methods to check array.\r\n+ */\r\n+public final class ArrayUtils {\r\n+\r\n+    private ArrayUtils() {\r\n+    }\r\n+\r\n+    /**\r\n+     * <p>Checks if the array is null or empty. <p/>\r\n+     *\r\n+     * @param array th array to check\r\n+     * @return {@code true} if the array is null or empty.\r\n+     */\r\n+    public static boolean isEmpty(final Object[] array) {\r\n+        return array == null || array.length == 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * <p>Checks if the array is not null or empty. <p/>\r\n+     *\r\n+     * @param array th array to check\r\n+     * @return {@code true} if the array is not null or empty.\r\n+     */\r\n+    public static boolean isNotEmpty(final Object[] array) {\r\n+        return !isEmpty(array);\r\n+    }\r\n+\r\n+    public static boolean contains(final String[] array, String valueToFind) {\r\n+        return indexOf(array, valueToFind, 0) != -1;\r\n+    }\r\n+\r\n+    public static int indexOf(String[] array, String valueToFind, int startIndex) {\r\n+        if (!isEmpty(array) && valueToFind != null) {\r\n+            if (startIndex < 0) {\r\n+                startIndex = 0;\r\n+            }\r\n+\r\n+            for (int i = startIndex; i < array.length; ++i) {\r\n+                if (valueToFind.equals(array[i])) {\r\n+                    return i;\r\n+                }\r\n+            }\r\n+\r\n+        }\r\n+        return -1;\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert from variable arguments to array\r\n+     *\r\n+     * @param values variable arguments\r\n+     * @param <T>    The class\r\n+     * @return array\r\n+     * @since 2.7.9\r\n+     */\r\n+    public static <T> T[] of(T... values) {\r\n+        return values;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/CharSequenceComparator.java", "source2": "org/apache/dubbo/common/utils/CharSequenceComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.util.Comparator;\n-\n-/**\n- * The {@link Comparator} for {@link CharSequence}\n- *\n- * @since 2.7.6\n- */\n-public class CharSequenceComparator implements Comparator<CharSequence> {\n-\n-    public final static CharSequenceComparator INSTANCE = new CharSequenceComparator();\n-\n-    private CharSequenceComparator() {\n-    }\n-\n-    @Override\n-    public int compare(CharSequence c1, CharSequence c2) {\n-        return c1.toString().compareTo(c2.toString());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.util.Comparator;\r\n+\r\n+/**\r\n+ * The {@link Comparator} for {@link CharSequence}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class CharSequenceComparator implements Comparator<CharSequence> {\r\n+\r\n+    public final static CharSequenceComparator INSTANCE = new CharSequenceComparator();\r\n+\r\n+    private CharSequenceComparator() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public int compare(CharSequence c1, CharSequence c2) {\r\n+        return c1.toString().compareTo(c2.toString());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ClassHelper.java", "source2": "org/apache/dubbo/common/utils/ClassHelper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,153 +1,153 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-\n-import java.lang.reflect.Method;\n-\n-/**\n- * @see org.apache.dubbo.common.utils.ClassUtils\n- * @deprecated Replace to <code>ClassUtils</code>\n- */\n-public class ClassHelper {\n-    public static Class<?> forNameWithThreadContextClassLoader(String name) throws ClassNotFoundException {\n-        return ClassUtils.forName(name, Thread.currentThread().getContextClassLoader());\n-    }\n-\n-    public static Class<?> forNameWithCallerClassLoader(String name, Class<?> caller) throws ClassNotFoundException {\n-        return ClassUtils.forName(name, caller.getClassLoader());\n-    }\n-\n-    public static ClassLoader getCallerClassLoader(Class<?> caller) {\n-        return caller.getClassLoader();\n-    }\n-\n-    /**\n-     * get class loader\n-     *\n-     * @param clazz\n-     * @return class loader\n-     */\n-    public static ClassLoader getClassLoader(Class<?> clazz) {\n-        return ClassUtils.getClassLoader(clazz);\n-    }\n-\n-    /**\n-     * Return the default ClassLoader to use: typically the thread context\n-     * ClassLoader, if available; the ClassLoader that loaded the ClassUtils\n-     * class will be used as fallback.\n-     * <p>\n-     * Call this method if you intend to use the thread context ClassLoader in a\n-     * scenario where you absolutely need a non-null ClassLoader reference: for\n-     * example, for class path resource loading (but not necessarily for\n-     * <code>Class.forName</code>, which accepts a <code>null</code> ClassLoader\n-     * reference as well).\n-     *\n-     * @return the default ClassLoader (never <code>null</code>)\n-     * @see java.lang.Thread#getContextClassLoader()\n-     */\n-    public static ClassLoader getClassLoader() {\n-        return getClassLoader(ClassHelper.class);\n-    }\n-\n-    /**\n-     * Same as <code>Class.forName()</code>, except that it works for primitive\n-     * types.\n-     */\n-    public static Class<?> forName(String name) throws ClassNotFoundException {\n-        return forName(name, getClassLoader());\n-    }\n-\n-    /**\n-     * Replacement for <code>Class.forName()</code> that also returns Class\n-     * instances for primitives (like \"int\") and array class names (like\n-     * \"String[]\").\n-     *\n-     * @param name        the name of the Class\n-     * @param classLoader the class loader to use (may be <code>null</code>,\n-     *                    which indicates the default class loader)\n-     * @return Class instance for the supplied name\n-     * @throws ClassNotFoundException if the class was not found\n-     * @throws LinkageError           if the class file could not be loaded\n-     * @see Class#forName(String, boolean, ClassLoader)\n-     */\n-    public static Class<?> forName(String name, ClassLoader classLoader)\n-            throws ClassNotFoundException, LinkageError {\n-        return ClassUtils.forName(name, classLoader);\n-    }\n-\n-    /**\n-     * Resolve the given class name as primitive class, if appropriate,\n-     * according to the JVM's naming rules for primitive classes.\n-     * <p>\n-     * Also supports the JVM's internal class names for primitive arrays. Does\n-     * <i>not</i> support the \"[]\" suffix notation for primitive arrays; this is\n-     * only supported by {@link #forName}.\n-     *\n-     * @param name the name of the potentially primitive class\n-     * @return the primitive class, or <code>null</code> if the name does not\n-     * denote a primitive class or primitive array class\n-     */\n-    public static Class<?> resolvePrimitiveClassName(String name) {\n-        return ClassUtils.resolvePrimitiveClassName(name);\n-    }\n-\n-    public static String toShortString(Object obj) {\n-        return ClassUtils.toShortString(obj);\n-\n-    }\n-\n-    public static String simpleClassName(Class<?> clazz) {\n-        return ClassUtils.simpleClassName(clazz);\n-    }\n-\n-    /**\n-     * @see org.apache.dubbo.common.utils.MethodUtils#isSetter(Method)\n-     * @deprecated Replace to <code>MethodUtils#isSetter(Method)</code>\n-     */\n-    public static boolean isSetter(Method method) {\n-        return MethodUtils.isSetter(method);\n-    }\n-\n-    /**\n-     * @see org.apache.dubbo.common.utils.MethodUtils#isGetter(Method) (Method)\n-     * @deprecated Replace to <code>MethodUtils#isGetter(Method)</code>\n-     */\n-    public static boolean isGetter(Method method) {\n-        return MethodUtils.isGetter(method);\n-    }\n-\n-    public static boolean isPrimitive(Class<?> type) {\n-        return ClassUtils.isPrimitive(type);\n-    }\n-\n-    public static Object convertPrimitive(Class<?> type, String value) {\n-        return ClassUtils.convertPrimitive(type,value);\n-    }\n-\n-\n-    /**\n-     * We only check boolean value at this moment.\n-     *\n-     * @param type\n-     * @param value\n-     * @return\n-     */\n-    public static boolean isTypeMatch(Class<?> type, String value) {\n-    return ClassUtils.isTypeMatch(type,value);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * @see org.apache.dubbo.common.utils.ClassUtils\r\n+ * @deprecated Replace to <code>ClassUtils</code>\r\n+ */\r\n+public class ClassHelper {\r\n+    public static Class<?> forNameWithThreadContextClassLoader(String name) throws ClassNotFoundException {\r\n+        return ClassUtils.forName(name, Thread.currentThread().getContextClassLoader());\r\n+    }\r\n+\r\n+    public static Class<?> forNameWithCallerClassLoader(String name, Class<?> caller) throws ClassNotFoundException {\r\n+        return ClassUtils.forName(name, caller.getClassLoader());\r\n+    }\r\n+\r\n+    public static ClassLoader getCallerClassLoader(Class<?> caller) {\r\n+        return caller.getClassLoader();\r\n+    }\r\n+\r\n+    /**\r\n+     * get class loader\r\n+     *\r\n+     * @param clazz\r\n+     * @return class loader\r\n+     */\r\n+    public static ClassLoader getClassLoader(Class<?> clazz) {\r\n+        return ClassUtils.getClassLoader(clazz);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return the default ClassLoader to use: typically the thread context\r\n+     * ClassLoader, if available; the ClassLoader that loaded the ClassUtils\r\n+     * class will be used as fallback.\r\n+     * <p>\r\n+     * Call this method if you intend to use the thread context ClassLoader in a\r\n+     * scenario where you absolutely need a non-null ClassLoader reference: for\r\n+     * example, for class path resource loading (but not necessarily for\r\n+     * <code>Class.forName</code>, which accepts a <code>null</code> ClassLoader\r\n+     * reference as well).\r\n+     *\r\n+     * @return the default ClassLoader (never <code>null</code>)\r\n+     * @see java.lang.Thread#getContextClassLoader()\r\n+     */\r\n+    public static ClassLoader getClassLoader() {\r\n+        return getClassLoader(ClassHelper.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * Same as <code>Class.forName()</code>, except that it works for primitive\r\n+     * types.\r\n+     */\r\n+    public static Class<?> forName(String name) throws ClassNotFoundException {\r\n+        return forName(name, getClassLoader());\r\n+    }\r\n+\r\n+    /**\r\n+     * Replacement for <code>Class.forName()</code> that also returns Class\r\n+     * instances for primitives (like \"int\") and array class names (like\r\n+     * \"String[]\").\r\n+     *\r\n+     * @param name        the name of the Class\r\n+     * @param classLoader the class loader to use (may be <code>null</code>,\r\n+     *                    which indicates the default class loader)\r\n+     * @return Class instance for the supplied name\r\n+     * @throws ClassNotFoundException if the class was not found\r\n+     * @throws LinkageError           if the class file could not be loaded\r\n+     * @see Class#forName(String, boolean, ClassLoader)\r\n+     */\r\n+    public static Class<?> forName(String name, ClassLoader classLoader)\r\n+            throws ClassNotFoundException, LinkageError {\r\n+        return ClassUtils.forName(name, classLoader);\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the given class name as primitive class, if appropriate,\r\n+     * according to the JVM's naming rules for primitive classes.\r\n+     * <p>\r\n+     * Also supports the JVM's internal class names for primitive arrays. Does\r\n+     * <i>not</i> support the \"[]\" suffix notation for primitive arrays; this is\r\n+     * only supported by {@link #forName}.\r\n+     *\r\n+     * @param name the name of the potentially primitive class\r\n+     * @return the primitive class, or <code>null</code> if the name does not\r\n+     * denote a primitive class or primitive array class\r\n+     */\r\n+    public static Class<?> resolvePrimitiveClassName(String name) {\r\n+        return ClassUtils.resolvePrimitiveClassName(name);\r\n+    }\r\n+\r\n+    public static String toShortString(Object obj) {\r\n+        return ClassUtils.toShortString(obj);\r\n+\r\n+    }\r\n+\r\n+    public static String simpleClassName(Class<?> clazz) {\r\n+        return ClassUtils.simpleClassName(clazz);\r\n+    }\r\n+\r\n+    /**\r\n+     * @see org.apache.dubbo.common.utils.MethodUtils#isSetter(Method)\r\n+     * @deprecated Replace to <code>MethodUtils#isSetter(Method)</code>\r\n+     */\r\n+    public static boolean isSetter(Method method) {\r\n+        return MethodUtils.isSetter(method);\r\n+    }\r\n+\r\n+    /**\r\n+     * @see org.apache.dubbo.common.utils.MethodUtils#isGetter(Method) (Method)\r\n+     * @deprecated Replace to <code>MethodUtils#isGetter(Method)</code>\r\n+     */\r\n+    public static boolean isGetter(Method method) {\r\n+        return MethodUtils.isGetter(method);\r\n+    }\r\n+\r\n+    public static boolean isPrimitive(Class<?> type) {\r\n+        return ClassUtils.isPrimitive(type);\r\n+    }\r\n+\r\n+    public static Object convertPrimitive(Class<?> type, String value) {\r\n+        return ClassUtils.convertPrimitive(type,value);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * We only check boolean value at this moment.\r\n+     *\r\n+     * @param type\r\n+     * @param value\r\n+     * @return\r\n+     */\r\n+    public static boolean isTypeMatch(Class<?> type, String value) {\r\n+    return ClassUtils.isTypeMatch(type,value);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ClassUtils.java", "source2": "org/apache/dubbo/common/utils/ClassUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,496 +1,496 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-\n-import java.lang.reflect.Array;\n-import java.math.BigDecimal;\n-import java.math.BigInteger;\n-import java.util.Arrays;\n-import java.util.Date;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Queue;\n-import java.util.Set;\n-import java.util.function.Predicate;\n-\n-import static java.util.Collections.emptySet;\n-import static java.util.Collections.unmodifiableSet;\n-import static org.apache.dubbo.common.function.Streams.filterAll;\n-import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\n-import static org.apache.dubbo.common.utils.CollectionUtils.ofSet;\n-\n-public class ClassUtils {\n-    /**\n-     * Suffix for array class names: \"[]\"\n-     */\n-    public static final String ARRAY_SUFFIX = \"[]\";\n-    /**\n-     * Simple Types including:\n-     * <ul>\n-     *     <li>{@link Void}</li>\n-     *     <li>{@link Boolean}</li>\n-     *     <li>{@link Character}</li>\n-     *     <li>{@link Byte}</li>\n-     *     <li>{@link Integer}</li>\n-     *     <li>{@link Float}</li>\n-     *     <li>{@link Double}</li>\n-     *     <li>{@link String}</li>\n-     *     <li>{@link BigDecimal}</li>\n-     *     <li>{@link BigInteger}</li>\n-     *     <li>{@link Date}</li>\n-     *     <li>{@link Object}</li>\n-     * </ul>\n-     *\n-     * @see javax.management.openmbean.SimpleType\n-     * @since 2.7.6\n-     */\n-    public static final Set<Class<?>> SIMPLE_TYPES = ofSet(\n-            Void.class,\n-            Boolean.class,\n-            Character.class,\n-            Byte.class,\n-            Short.class,\n-            Integer.class,\n-            Long.class,\n-            Float.class,\n-            Double.class,\n-            String.class,\n-            BigDecimal.class,\n-            BigInteger.class,\n-            Date.class,\n-            Object.class\n-    );\n-    /**\n-     * Prefix for internal array class names: \"[L\"\n-     */\n-    private static final String INTERNAL_ARRAY_PREFIX = \"[L\";\n-    /**\n-     * Map with primitive type name as key and corresponding primitive type as\n-     * value, for example: \"int\" -> \"int.class\".\n-     */\n-    private static final Map<String, Class<?>> PRIMITIVE_TYPE_NAME_MAP = new HashMap<String, Class<?>>(32);\n-    /**\n-     * Map with primitive wrapper type as key and corresponding primitive type\n-     * as value, for example: Integer.class -> int.class.\n-     */\n-    private static final Map<Class<?>, Class<?>> PRIMITIVE_WRAPPER_TYPE_MAP = new HashMap<Class<?>, Class<?>>(16);\n-    private static final char PACKAGE_SEPARATOR_CHAR = '.';\n-\n-    static {\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Boolean.class, boolean.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Byte.class, byte.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Character.class, char.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Double.class, double.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Float.class, float.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Integer.class, int.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Long.class, long.class);\n-        PRIMITIVE_WRAPPER_TYPE_MAP.put(Short.class, short.class);\n-\n-        Set<Class<?>> primitiveTypeNames = new HashSet<>(32);\n-        primitiveTypeNames.addAll(PRIMITIVE_WRAPPER_TYPE_MAP.values());\n-        primitiveTypeNames.addAll(Arrays\n-                .asList(boolean[].class, byte[].class, char[].class, double[].class,\n-                        float[].class, int[].class, long[].class, short[].class));\n-        for (Class<?> primitiveTypeName : primitiveTypeNames) {\n-            PRIMITIVE_TYPE_NAME_MAP.put(primitiveTypeName.getName(), primitiveTypeName);\n-        }\n-    }\n-\n-    public static Class<?> forNameWithThreadContextClassLoader(String name)\n-            throws ClassNotFoundException {\n-        return forName(name, Thread.currentThread().getContextClassLoader());\n-    }\n-\n-    public static Class<?> forNameWithCallerClassLoader(String name, Class<?> caller)\n-            throws ClassNotFoundException {\n-        return forName(name, caller.getClassLoader());\n-    }\n-\n-    public static ClassLoader getCallerClassLoader(Class<?> caller) {\n-        return caller.getClassLoader();\n-    }\n-\n-    /**\n-     * get class loader\n-     *\n-     * @param clazz\n-     * @return class loader\n-     */\n-    public static ClassLoader getClassLoader(Class<?> clazz) {\n-        ClassLoader cl = null;\n-        try {\n-            cl = Thread.currentThread().getContextClassLoader();\n-        } catch (Throwable ex) {\n-            // Cannot access thread context ClassLoader - falling back to system class loader...\n-        }\n-        if (cl == null) {\n-            // No thread context class loader -> use class loader of this class.\n-            cl = clazz.getClassLoader();\n-            if (cl == null) {\n-                // getClassLoader() returning null indicates the bootstrap ClassLoader\n-                try {\n-                    cl = ClassLoader.getSystemClassLoader();\n-                } catch (Throwable ex) {\n-                    // Cannot access system ClassLoader - oh well, maybe the caller can live with null...\n-                }\n-            }\n-        }\n-\n-        return cl;\n-    }\n-\n-    /**\n-     * Return the default ClassLoader to use: typically the thread context\n-     * ClassLoader, if available; the ClassLoader that loaded the ClassUtils\n-     * class will be used as fallback.\n-     * <p>\n-     * Call this method if you intend to use the thread context ClassLoader in a\n-     * scenario where you absolutely need a non-null ClassLoader reference: for\n-     * example, for class path resource loading (but not necessarily for\n-     * <code>Class.forName</code>, which accepts a <code>null</code> ClassLoader\n-     * reference as well).\n-     *\n-     * @return the default ClassLoader (never <code>null</code>)\n-     * @see java.lang.Thread#getContextClassLoader()\n-     */\n-    public static ClassLoader getClassLoader() {\n-        return getClassLoader(ClassUtils.class);\n-    }\n-\n-    /**\n-     * Same as <code>Class.forName()</code>, except that it works for primitive\n-     * types.\n-     */\n-    public static Class<?> forName(String name) throws ClassNotFoundException {\n-        return forName(name, getClassLoader());\n-    }\n-\n-    /**\n-     * Replacement for <code>Class.forName()</code> that also returns Class\n-     * instances for primitives (like \"int\") and array class names (like\n-     * \"String[]\").\n-     *\n-     * @param name        the name of the Class\n-     * @param classLoader the class loader to use (may be <code>null</code>,\n-     *                    which indicates the default class loader)\n-     * @return Class instance for the supplied name\n-     * @throws ClassNotFoundException if the class was not found\n-     * @throws LinkageError           if the class file could not be loaded\n-     * @see Class#forName(String, boolean, ClassLoader)\n-     */\n-    public static Class<?> forName(String name, ClassLoader classLoader)\n-            throws ClassNotFoundException, LinkageError {\n-\n-        Class<?> clazz = resolvePrimitiveClassName(name);\n-        if (clazz != null) {\n-            return clazz;\n-        }\n-\n-        // \"java.lang.String[]\" style arrays\n-        if (name.endsWith(ARRAY_SUFFIX)) {\n-            String elementClassName = name.substring(0, name.length() - ARRAY_SUFFIX.length());\n-            Class<?> elementClass = forName(elementClassName, classLoader);\n-            return Array.newInstance(elementClass, 0).getClass();\n-        }\n-\n-        // \"[Ljava.lang.String;\" style arrays\n-        int internalArrayMarker = name.indexOf(INTERNAL_ARRAY_PREFIX);\n-        if (internalArrayMarker != -1 && name.endsWith(\";\")) {\n-            String elementClassName = null;\n-            if (internalArrayMarker == 0) {\n-                elementClassName = name\n-                        .substring(INTERNAL_ARRAY_PREFIX.length(), name.length() - 1);\n-            } else if (name.startsWith(\"[\")) {\n-                elementClassName = name.substring(1);\n-            }\n-            Class<?> elementClass = forName(elementClassName, classLoader);\n-            return Array.newInstance(elementClass, 0).getClass();\n-        }\n-\n-        ClassLoader classLoaderToUse = classLoader;\n-        if (classLoaderToUse == null) {\n-            classLoaderToUse = getClassLoader();\n-        }\n-        return classLoaderToUse.loadClass(name);\n-    }\n-\n-    /**\n-     * Resolve the given class name as primitive class, if appropriate,\n-     * according to the JVM's naming rules for primitive classes.\n-     * <p>\n-     * Also supports the JVM's internal class names for primitive arrays. Does\n-     * <i>not</i> support the \"[]\" suffix notation for primitive arrays; this is\n-     * only supported by {@link #forName}.\n-     *\n-     * @param name the name of the potentially primitive class\n-     * @return the primitive class, or <code>null</code> if the name does not\n-     * denote a primitive class or primitive array class\n-     */\n-    public static Class<?> resolvePrimitiveClassName(String name) {\n-        Class<?> result = null;\n-        // Most class names will be quite long, considering that they\n-        // SHOULD sit in a package, so a length check is worthwhile.\n-        if (name != null && name.length() <= 8) {\n-            // Could be a primitive - likely.\n-            result = (Class<?>) PRIMITIVE_TYPE_NAME_MAP.get(name);\n-        }\n-        return result;\n-    }\n-\n-    public static String toShortString(Object obj) {\n-        if (obj == null) {\n-            return \"null\";\n-        }\n-        return obj.getClass().getSimpleName() + \"@\" + System.identityHashCode(obj);\n-\n-    }\n-\n-    public static String simpleClassName(Class<?> clazz) {\n-        if (clazz == null) {\n-            throw new NullPointerException(\"clazz\");\n-        }\n-        String className = clazz.getName();\n-        final int lastDotIdx = className.lastIndexOf(PACKAGE_SEPARATOR_CHAR);\n-        if (lastDotIdx > -1) {\n-            return className.substring(lastDotIdx + 1);\n-        }\n-        return className;\n-    }\n-\n-\n-    /**\n-     * The specified type is primitive type or simple type\n-     *\n-     * @param type the type to test\n-     * @return\n-     * @deprecated as 2.7.6, use {@link Class#isPrimitive()} plus {@link #isSimpleType(Class)} instead\n-     */\n-    public static boolean isPrimitive(Class<?> type) {\n-        return type != null && (type.isPrimitive() || isSimpleType(type));\n-    }\n-\n-    /**\n-     * The specified type is simple type or not\n-     *\n-     * @param type the type to test\n-     * @return if <code>type</code> is one element of {@link #SIMPLE_TYPES}, return <code>true</code>, or <code>false</code>\n-     * @see #SIMPLE_TYPES\n-     * @since 2.7.6\n-     */\n-    public static boolean isSimpleType(Class<?> type) {\n-        return SIMPLE_TYPES.contains(type);\n-    }\n-\n-    public static Object convertPrimitive(Class<?> type, String value) {\n-        if (value == null) {\n-            return null;\n-        } else if (type == char.class || type == Character.class) {\n-            return value.length() > 0 ? value.charAt(0) : '\\0';\n-        } else if (type == boolean.class || type == Boolean.class) {\n-            return Boolean.valueOf(value);\n-        }\n-        try {\n-            if (type == byte.class || type == Byte.class) {\n-                return Byte.valueOf(value);\n-            } else if (type == short.class || type == Short.class) {\n-                return Short.valueOf(value);\n-            } else if (type == int.class || type == Integer.class) {\n-                return Integer.valueOf(value);\n-            } else if (type == long.class || type == Long.class) {\n-                return Long.valueOf(value);\n-            } else if (type == float.class || type == Float.class) {\n-                return Float.valueOf(value);\n-            } else if (type == double.class || type == Double.class) {\n-                return Double.valueOf(value);\n-            }\n-        } catch (NumberFormatException e) {\n-            return null;\n-        }\n-        return value;\n-    }\n-\n-\n-    /**\n-     * We only check boolean value at this moment.\n-     *\n-     * @param type\n-     * @param value\n-     * @return\n-     */\n-    public static boolean isTypeMatch(Class<?> type, String value) {\n-        if ((type == boolean.class || type == Boolean.class)\n-                && !(\"true\".equals(value) || \"false\".equals(value))) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    /**\n-     * Get all super classes from the specified type\n-     *\n-     * @param type         the specified type\n-     * @param classFilters the filters for classes\n-     * @return non-null read-only {@link Set}\n-     * @since 2.7.6\n-     */\n-    public static Set<Class<?>> getAllSuperClasses(Class<?> type, Predicate<Class<?>>... classFilters) {\n-\n-        Set<Class<?>> allSuperClasses = new LinkedHashSet<>();\n-\n-        Class<?> superClass = type.getSuperclass();\n-        while (superClass != null) {\n-            // add current super class\n-            allSuperClasses.add(superClass);\n-            superClass = superClass.getSuperclass();\n-        }\n-\n-        return unmodifiableSet(filterAll(allSuperClasses, classFilters));\n-    }\n-\n-    /**\n-     * Get all interfaces from the specified type\n-     *\n-     * @param type             the specified type\n-     * @param interfaceFilters the filters for interfaces\n-     * @return non-null read-only {@link Set}\n-     * @since 2.7.6\n-     */\n-    public static Set<Class<?>> getAllInterfaces(Class<?> type, Predicate<Class<?>>... interfaceFilters) {\n-        if (type == null || type.isPrimitive()) {\n-            return emptySet();\n-        }\n-\n-        Set<Class<?>> allInterfaces = new LinkedHashSet<>();\n-        Set<Class<?>> resolved = new LinkedHashSet<>();\n-        Queue<Class<?>> waitResolve = new LinkedList<>();\n-\n-        resolved.add(type);\n-        Class<?> clazz = type;\n-        while (clazz != null) {\n-\n-            Class<?>[] interfaces = clazz.getInterfaces();\n-\n-            if (isNotEmpty(interfaces)) {\n-                // add current interfaces\n-                Arrays.stream(interfaces)\n-                        .filter(resolved::add)\n-                        .forEach(cls -> {\n-                            allInterfaces.add(cls);\n-                            waitResolve.add(cls);\n-                        });\n-            }\n-\n-            // add all super classes to waitResolve\n-            getAllSuperClasses(clazz)\n-                    .stream()\n-                    .filter(resolved::add)\n-                    .forEach(waitResolve::add);\n-\n-            clazz = waitResolve.poll();\n-        }\n-\n-        return filterAll(allInterfaces, interfaceFilters);\n-    }\n-\n-    /**\n-     * Get all inherited types from the specified type\n-     *\n-     * @param type        the specified type\n-     * @param typeFilters the filters for types\n-     * @return non-null read-only {@link Set}\n-     * @since 2.7.6\n-     */\n-    public static Set<Class<?>> getAllInheritedTypes(Class<?> type, Predicate<Class<?>>... typeFilters) {\n-        // Add all super classes\n-        Set<Class<?>> types = new LinkedHashSet<>(getAllSuperClasses(type, typeFilters));\n-        // Add all interface classes\n-        types.addAll(getAllInterfaces(type, typeFilters));\n-        return unmodifiableSet(types);\n-    }\n-\n-\n-    /**\n-     * the semantics is same as {@link Class#isAssignableFrom(Class)}\n-     *\n-     * @param superType  the super type\n-     * @param targetType the target type\n-     * @return see {@link Class#isAssignableFrom(Class)}\n-     * @since 2.7.6\n-     */\n-    public static boolean isAssignableFrom(Class<?> superType, Class<?> targetType) {\n-        // any argument is null\n-        if (superType == null || targetType == null) {\n-            return false;\n-        }\n-        // equals\n-        if (Objects.equals(superType, targetType)) {\n-            return true;\n-        }\n-        // isAssignableFrom\n-        return superType.isAssignableFrom(targetType);\n-    }\n-\n-    /**\n-     * Test the specified class name is present in the {@link ClassLoader}\n-     *\n-     * @param className   the name of {@link Class}\n-     * @param classLoader {@link ClassLoader}\n-     * @return If found, return <code>true</code>\n-     * @since 2.7.6\n-     */\n-    public static boolean isPresent(String className, ClassLoader classLoader) {\n-        try {\n-            forName(className, classLoader);\n-        } catch (Throwable ignored) { // Ignored\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    /**\n-     * Resolve the {@link Class} by the specified name and {@link ClassLoader}\n-     *\n-     * @param className   the name of {@link Class}\n-     * @param classLoader {@link ClassLoader}\n-     * @return If can't be resolved , return <code>null</code>\n-     * @since 2.7.6\n-     */\n-    public static Class<?> resolveClass(String className, ClassLoader classLoader) {\n-        Class<?> targetClass = null;\n-        try {\n-            targetClass = forName(className, classLoader);\n-        } catch (Throwable ignored) { // Ignored\n-        }\n-        return targetClass;\n-    }\n-\n-    /**\n-     * Is generic class or not?\n-     *\n-     * @param type the target type\n-     * @return if the target type is not null or <code>void</code> or Void.class, return <code>true</code>, or false\n-     * @since 2.7.6\n-     */\n-    public static boolean isGenericClass(Class<?> type) {\n-        return type != null && !void.class.equals(type) && !Void.class.equals(type);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+\r\n+import java.lang.reflect.Array;\r\n+import java.math.BigDecimal;\r\n+import java.math.BigInteger;\r\n+import java.util.Arrays;\r\n+import java.util.Date;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Queue;\r\n+import java.util.Set;\r\n+import java.util.function.Predicate;\r\n+\r\n+import static java.util.Collections.emptySet;\r\n+import static java.util.Collections.unmodifiableSet;\r\n+import static org.apache.dubbo.common.function.Streams.filterAll;\r\n+import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\r\n+import static org.apache.dubbo.common.utils.CollectionUtils.ofSet;\r\n+\r\n+public class ClassUtils {\r\n+    /**\r\n+     * Suffix for array class names: \"[]\"\r\n+     */\r\n+    public static final String ARRAY_SUFFIX = \"[]\";\r\n+    /**\r\n+     * Simple Types including:\r\n+     * <ul>\r\n+     *     <li>{@link Void}</li>\r\n+     *     <li>{@link Boolean}</li>\r\n+     *     <li>{@link Character}</li>\r\n+     *     <li>{@link Byte}</li>\r\n+     *     <li>{@link Integer}</li>\r\n+     *     <li>{@link Float}</li>\r\n+     *     <li>{@link Double}</li>\r\n+     *     <li>{@link String}</li>\r\n+     *     <li>{@link BigDecimal}</li>\r\n+     *     <li>{@link BigInteger}</li>\r\n+     *     <li>{@link Date}</li>\r\n+     *     <li>{@link Object}</li>\r\n+     * </ul>\r\n+     *\r\n+     * @see javax.management.openmbean.SimpleType\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static final Set<Class<?>> SIMPLE_TYPES = ofSet(\r\n+            Void.class,\r\n+            Boolean.class,\r\n+            Character.class,\r\n+            Byte.class,\r\n+            Short.class,\r\n+            Integer.class,\r\n+            Long.class,\r\n+            Float.class,\r\n+            Double.class,\r\n+            String.class,\r\n+            BigDecimal.class,\r\n+            BigInteger.class,\r\n+            Date.class,\r\n+            Object.class\r\n+    );\r\n+    /**\r\n+     * Prefix for internal array class names: \"[L\"\r\n+     */\r\n+    private static final String INTERNAL_ARRAY_PREFIX = \"[L\";\r\n+    /**\r\n+     * Map with primitive type name as key and corresponding primitive type as\r\n+     * value, for example: \"int\" -> \"int.class\".\r\n+     */\r\n+    private static final Map<String, Class<?>> PRIMITIVE_TYPE_NAME_MAP = new HashMap<String, Class<?>>(32);\r\n+    /**\r\n+     * Map with primitive wrapper type as key and corresponding primitive type\r\n+     * as value, for example: Integer.class -> int.class.\r\n+     */\r\n+    private static final Map<Class<?>, Class<?>> PRIMITIVE_WRAPPER_TYPE_MAP = new HashMap<Class<?>, Class<?>>(16);\r\n+    private static final char PACKAGE_SEPARATOR_CHAR = '.';\r\n+\r\n+    static {\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Boolean.class, boolean.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Byte.class, byte.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Character.class, char.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Double.class, double.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Float.class, float.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Integer.class, int.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Long.class, long.class);\r\n+        PRIMITIVE_WRAPPER_TYPE_MAP.put(Short.class, short.class);\r\n+\r\n+        Set<Class<?>> primitiveTypeNames = new HashSet<>(32);\r\n+        primitiveTypeNames.addAll(PRIMITIVE_WRAPPER_TYPE_MAP.values());\r\n+        primitiveTypeNames.addAll(Arrays\r\n+                .asList(boolean[].class, byte[].class, char[].class, double[].class,\r\n+                        float[].class, int[].class, long[].class, short[].class));\r\n+        for (Class<?> primitiveTypeName : primitiveTypeNames) {\r\n+            PRIMITIVE_TYPE_NAME_MAP.put(primitiveTypeName.getName(), primitiveTypeName);\r\n+        }\r\n+    }\r\n+\r\n+    public static Class<?> forNameWithThreadContextClassLoader(String name)\r\n+            throws ClassNotFoundException {\r\n+        return forName(name, Thread.currentThread().getContextClassLoader());\r\n+    }\r\n+\r\n+    public static Class<?> forNameWithCallerClassLoader(String name, Class<?> caller)\r\n+            throws ClassNotFoundException {\r\n+        return forName(name, caller.getClassLoader());\r\n+    }\r\n+\r\n+    public static ClassLoader getCallerClassLoader(Class<?> caller) {\r\n+        return caller.getClassLoader();\r\n+    }\r\n+\r\n+    /**\r\n+     * get class loader\r\n+     *\r\n+     * @param clazz\r\n+     * @return class loader\r\n+     */\r\n+    public static ClassLoader getClassLoader(Class<?> clazz) {\r\n+        ClassLoader cl = null;\r\n+        try {\r\n+            cl = Thread.currentThread().getContextClassLoader();\r\n+        } catch (Throwable ex) {\r\n+            // Cannot access thread context ClassLoader - falling back to system class loader...\r\n+        }\r\n+        if (cl == null) {\r\n+            // No thread context class loader -> use class loader of this class.\r\n+            cl = clazz.getClassLoader();\r\n+            if (cl == null) {\r\n+                // getClassLoader() returning null indicates the bootstrap ClassLoader\r\n+                try {\r\n+                    cl = ClassLoader.getSystemClassLoader();\r\n+                } catch (Throwable ex) {\r\n+                    // Cannot access system ClassLoader - oh well, maybe the caller can live with null...\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return cl;\r\n+    }\r\n+\r\n+    /**\r\n+     * Return the default ClassLoader to use: typically the thread context\r\n+     * ClassLoader, if available; the ClassLoader that loaded the ClassUtils\r\n+     * class will be used as fallback.\r\n+     * <p>\r\n+     * Call this method if you intend to use the thread context ClassLoader in a\r\n+     * scenario where you absolutely need a non-null ClassLoader reference: for\r\n+     * example, for class path resource loading (but not necessarily for\r\n+     * <code>Class.forName</code>, which accepts a <code>null</code> ClassLoader\r\n+     * reference as well).\r\n+     *\r\n+     * @return the default ClassLoader (never <code>null</code>)\r\n+     * @see java.lang.Thread#getContextClassLoader()\r\n+     */\r\n+    public static ClassLoader getClassLoader() {\r\n+        return getClassLoader(ClassUtils.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * Same as <code>Class.forName()</code>, except that it works for primitive\r\n+     * types.\r\n+     */\r\n+    public static Class<?> forName(String name) throws ClassNotFoundException {\r\n+        return forName(name, getClassLoader());\r\n+    }\r\n+\r\n+    /**\r\n+     * Replacement for <code>Class.forName()</code> that also returns Class\r\n+     * instances for primitives (like \"int\") and array class names (like\r\n+     * \"String[]\").\r\n+     *\r\n+     * @param name        the name of the Class\r\n+     * @param classLoader the class loader to use (may be <code>null</code>,\r\n+     *                    which indicates the default class loader)\r\n+     * @return Class instance for the supplied name\r\n+     * @throws ClassNotFoundException if the class was not found\r\n+     * @throws LinkageError           if the class file could not be loaded\r\n+     * @see Class#forName(String, boolean, ClassLoader)\r\n+     */\r\n+    public static Class<?> forName(String name, ClassLoader classLoader)\r\n+            throws ClassNotFoundException, LinkageError {\r\n+\r\n+        Class<?> clazz = resolvePrimitiveClassName(name);\r\n+        if (clazz != null) {\r\n+            return clazz;\r\n+        }\r\n+\r\n+        // \"java.lang.String[]\" style arrays\r\n+        if (name.endsWith(ARRAY_SUFFIX)) {\r\n+            String elementClassName = name.substring(0, name.length() - ARRAY_SUFFIX.length());\r\n+            Class<?> elementClass = forName(elementClassName, classLoader);\r\n+            return Array.newInstance(elementClass, 0).getClass();\r\n+        }\r\n+\r\n+        // \"[Ljava.lang.String;\" style arrays\r\n+        int internalArrayMarker = name.indexOf(INTERNAL_ARRAY_PREFIX);\r\n+        if (internalArrayMarker != -1 && name.endsWith(\";\")) {\r\n+            String elementClassName = null;\r\n+            if (internalArrayMarker == 0) {\r\n+                elementClassName = name\r\n+                        .substring(INTERNAL_ARRAY_PREFIX.length(), name.length() - 1);\r\n+            } else if (name.startsWith(\"[\")) {\r\n+                elementClassName = name.substring(1);\r\n+            }\r\n+            Class<?> elementClass = forName(elementClassName, classLoader);\r\n+            return Array.newInstance(elementClass, 0).getClass();\r\n+        }\r\n+\r\n+        ClassLoader classLoaderToUse = classLoader;\r\n+        if (classLoaderToUse == null) {\r\n+            classLoaderToUse = getClassLoader();\r\n+        }\r\n+        return classLoaderToUse.loadClass(name);\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the given class name as primitive class, if appropriate,\r\n+     * according to the JVM's naming rules for primitive classes.\r\n+     * <p>\r\n+     * Also supports the JVM's internal class names for primitive arrays. Does\r\n+     * <i>not</i> support the \"[]\" suffix notation for primitive arrays; this is\r\n+     * only supported by {@link #forName}.\r\n+     *\r\n+     * @param name the name of the potentially primitive class\r\n+     * @return the primitive class, or <code>null</code> if the name does not\r\n+     * denote a primitive class or primitive array class\r\n+     */\r\n+    public static Class<?> resolvePrimitiveClassName(String name) {\r\n+        Class<?> result = null;\r\n+        // Most class names will be quite long, considering that they\r\n+        // SHOULD sit in a package, so a length check is worthwhile.\r\n+        if (name != null && name.length() <= 8) {\r\n+            // Could be a primitive - likely.\r\n+            result = (Class<?>) PRIMITIVE_TYPE_NAME_MAP.get(name);\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public static String toShortString(Object obj) {\r\n+        if (obj == null) {\r\n+            return \"null\";\r\n+        }\r\n+        return obj.getClass().getSimpleName() + \"@\" + System.identityHashCode(obj);\r\n+\r\n+    }\r\n+\r\n+    public static String simpleClassName(Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            throw new NullPointerException(\"clazz\");\r\n+        }\r\n+        String className = clazz.getName();\r\n+        final int lastDotIdx = className.lastIndexOf(PACKAGE_SEPARATOR_CHAR);\r\n+        if (lastDotIdx > -1) {\r\n+            return className.substring(lastDotIdx + 1);\r\n+        }\r\n+        return className;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * The specified type is primitive type or simple type\r\n+     *\r\n+     * @param type the type to test\r\n+     * @return\r\n+     * @deprecated as 2.7.6, use {@link Class#isPrimitive()} plus {@link #isSimpleType(Class)} instead\r\n+     */\r\n+    public static boolean isPrimitive(Class<?> type) {\r\n+        return type != null && (type.isPrimitive() || isSimpleType(type));\r\n+    }\r\n+\r\n+    /**\r\n+     * The specified type is simple type or not\r\n+     *\r\n+     * @param type the type to test\r\n+     * @return if <code>type</code> is one element of {@link #SIMPLE_TYPES}, return <code>true</code>, or <code>false</code>\r\n+     * @see #SIMPLE_TYPES\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static boolean isSimpleType(Class<?> type) {\r\n+        return SIMPLE_TYPES.contains(type);\r\n+    }\r\n+\r\n+    public static Object convertPrimitive(Class<?> type, String value) {\r\n+        if (value == null) {\r\n+            return null;\r\n+        } else if (type == char.class || type == Character.class) {\r\n+            return value.length() > 0 ? value.charAt(0) : '\\0';\r\n+        } else if (type == boolean.class || type == Boolean.class) {\r\n+            return Boolean.valueOf(value);\r\n+        }\r\n+        try {\r\n+            if (type == byte.class || type == Byte.class) {\r\n+                return Byte.valueOf(value);\r\n+            } else if (type == short.class || type == Short.class) {\r\n+                return Short.valueOf(value);\r\n+            } else if (type == int.class || type == Integer.class) {\r\n+                return Integer.valueOf(value);\r\n+            } else if (type == long.class || type == Long.class) {\r\n+                return Long.valueOf(value);\r\n+            } else if (type == float.class || type == Float.class) {\r\n+                return Float.valueOf(value);\r\n+            } else if (type == double.class || type == Double.class) {\r\n+                return Double.valueOf(value);\r\n+            }\r\n+        } catch (NumberFormatException e) {\r\n+            return null;\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * We only check boolean value at this moment.\r\n+     *\r\n+     * @param type\r\n+     * @param value\r\n+     * @return\r\n+     */\r\n+    public static boolean isTypeMatch(Class<?> type, String value) {\r\n+        if ((type == boolean.class || type == Boolean.class)\r\n+                && !(\"true\".equals(value) || \"false\".equals(value))) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all super classes from the specified type\r\n+     *\r\n+     * @param type         the specified type\r\n+     * @param classFilters the filters for classes\r\n+     * @return non-null read-only {@link Set}\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static Set<Class<?>> getAllSuperClasses(Class<?> type, Predicate<Class<?>>... classFilters) {\r\n+\r\n+        Set<Class<?>> allSuperClasses = new LinkedHashSet<>();\r\n+\r\n+        Class<?> superClass = type.getSuperclass();\r\n+        while (superClass != null) {\r\n+            // add current super class\r\n+            allSuperClasses.add(superClass);\r\n+            superClass = superClass.getSuperclass();\r\n+        }\r\n+\r\n+        return unmodifiableSet(filterAll(allSuperClasses, classFilters));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all interfaces from the specified type\r\n+     *\r\n+     * @param type             the specified type\r\n+     * @param interfaceFilters the filters for interfaces\r\n+     * @return non-null read-only {@link Set}\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static Set<Class<?>> getAllInterfaces(Class<?> type, Predicate<Class<?>>... interfaceFilters) {\r\n+        if (type == null || type.isPrimitive()) {\r\n+            return emptySet();\r\n+        }\r\n+\r\n+        Set<Class<?>> allInterfaces = new LinkedHashSet<>();\r\n+        Set<Class<?>> resolved = new LinkedHashSet<>();\r\n+        Queue<Class<?>> waitResolve = new LinkedList<>();\r\n+\r\n+        resolved.add(type);\r\n+        Class<?> clazz = type;\r\n+        while (clazz != null) {\r\n+\r\n+            Class<?>[] interfaces = clazz.getInterfaces();\r\n+\r\n+            if (isNotEmpty(interfaces)) {\r\n+                // add current interfaces\r\n+                Arrays.stream(interfaces)\r\n+                        .filter(resolved::add)\r\n+                        .forEach(cls -> {\r\n+                            allInterfaces.add(cls);\r\n+                            waitResolve.add(cls);\r\n+                        });\r\n+            }\r\n+\r\n+            // add all super classes to waitResolve\r\n+            getAllSuperClasses(clazz)\r\n+                    .stream()\r\n+                    .filter(resolved::add)\r\n+                    .forEach(waitResolve::add);\r\n+\r\n+            clazz = waitResolve.poll();\r\n+        }\r\n+\r\n+        return filterAll(allInterfaces, interfaceFilters);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all inherited types from the specified type\r\n+     *\r\n+     * @param type        the specified type\r\n+     * @param typeFilters the filters for types\r\n+     * @return non-null read-only {@link Set}\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static Set<Class<?>> getAllInheritedTypes(Class<?> type, Predicate<Class<?>>... typeFilters) {\r\n+        // Add all super classes\r\n+        Set<Class<?>> types = new LinkedHashSet<>(getAllSuperClasses(type, typeFilters));\r\n+        // Add all interface classes\r\n+        types.addAll(getAllInterfaces(type, typeFilters));\r\n+        return unmodifiableSet(types);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * the semantics is same as {@link Class#isAssignableFrom(Class)}\r\n+     *\r\n+     * @param superType  the super type\r\n+     * @param targetType the target type\r\n+     * @return see {@link Class#isAssignableFrom(Class)}\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static boolean isAssignableFrom(Class<?> superType, Class<?> targetType) {\r\n+        // any argument is null\r\n+        if (superType == null || targetType == null) {\r\n+            return false;\r\n+        }\r\n+        // equals\r\n+        if (Objects.equals(superType, targetType)) {\r\n+            return true;\r\n+        }\r\n+        // isAssignableFrom\r\n+        return superType.isAssignableFrom(targetType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Test the specified class name is present in the {@link ClassLoader}\r\n+     *\r\n+     * @param className   the name of {@link Class}\r\n+     * @param classLoader {@link ClassLoader}\r\n+     * @return If found, return <code>true</code>\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static boolean isPresent(String className, ClassLoader classLoader) {\r\n+        try {\r\n+            forName(className, classLoader);\r\n+        } catch (Throwable ignored) { // Ignored\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the {@link Class} by the specified name and {@link ClassLoader}\r\n+     *\r\n+     * @param className   the name of {@link Class}\r\n+     * @param classLoader {@link ClassLoader}\r\n+     * @return If can't be resolved , return <code>null</code>\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static Class<?> resolveClass(String className, ClassLoader classLoader) {\r\n+        Class<?> targetClass = null;\r\n+        try {\r\n+            targetClass = forName(className, classLoader);\r\n+        } catch (Throwable ignored) { // Ignored\r\n+        }\r\n+        return targetClass;\r\n+    }\r\n+\r\n+    /**\r\n+     * Is generic class or not?\r\n+     *\r\n+     * @param type the target type\r\n+     * @return if the target type is not null or <code>void</code> or Void.class, return <code>true</code>, or false\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static boolean isGenericClass(Class<?> type) {\r\n+        return type != null && !void.class.equals(type) && !Void.class.equals(type);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/CompatibleTypeUtils.java", "source2": "org/apache/dubbo/common/utils/CompatibleTypeUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,229 +1,229 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.Array;\n-import java.math.BigDecimal;\n-import java.math.BigInteger;\n-import java.text.ParseException;\n-import java.text.SimpleDateFormat;\n-import java.time.LocalDateTime;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Date;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-public class CompatibleTypeUtils {\n-\n-    private static final String DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\n-\n-    private CompatibleTypeUtils() {\n-    }\n-\n-    /**\n-     * Compatible type convert. Null value is allowed to pass in. If no conversion is needed, then the original value\n-     * will be returned.\n-     * <p>\n-     * Supported compatible type conversions include (primary types and corresponding wrappers are not listed):\n-     * <ul>\n-     * <li> String -> char, enum, Date\n-     * <li> byte, short, int, long -> byte, short, int, long\n-     * <li> float, double -> float, double\n-     * </ul>\n-     */\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public static Object compatibleTypeConvert(Object value, Class<?> type) {\n-        if (value == null || type == null || type.isAssignableFrom(value.getClass())) {\n-            return value;\n-        }\n-\n-        if (value instanceof String) {\n-            String string = (String) value;\n-            if (char.class.equals(type) || Character.class.equals(type)) {\n-                if (string.length() != 1) {\n-                    throw new IllegalArgumentException(String.format(\"CAN NOT convert String(%s) to char!\" +\n-                            \" when convert String to char, the String MUST only 1 char.\", string));\n-                }\n-                return string.charAt(0);\n-            }\n-            if (type.isEnum()) {\n-                return Enum.valueOf((Class<Enum>) type, string);\n-            }\n-            if (type == BigInteger.class) {\n-                return new BigInteger(string);\n-            }\n-            if (type == BigDecimal.class) {\n-                return new BigDecimal(string);\n-            }\n-            if (type == Short.class || type == short.class) {\n-                return new Short(string);\n-            }\n-            if (type == Integer.class || type == int.class) {\n-                return new Integer(string);\n-            }\n-            if (type == Long.class || type == long.class) {\n-                return new Long(string);\n-            }\n-            if (type == Double.class || type == double.class) {\n-                return new Double(string);\n-            }\n-            if (type == Float.class || type == float.class) {\n-                return new Float(string);\n-            }\n-            if (type == Byte.class || type == byte.class) {\n-                return new Byte(string);\n-            }\n-            if (type == Boolean.class || type == boolean.class) {\n-                return Boolean.valueOf(string);\n-            }\n-            if (type == Date.class || type == java.sql.Date.class || type == java.sql.Timestamp.class\n-                    || type == java.sql.Time.class) {\n-                try {\n-                    Date date = new SimpleDateFormat(DATE_FORMAT).parse(string);\n-                    if (type == java.sql.Date.class) {\n-                        return new java.sql.Date(date.getTime());\n-                    }\n-                    if (type == java.sql.Timestamp.class) {\n-                        return new java.sql.Timestamp(date.getTime());\n-                    }\n-                    if (type == java.sql.Time.class) {\n-                        return new java.sql.Time(date.getTime());\n-                    }\n-                    return date;\n-                } catch (ParseException e) {\n-                    throw new IllegalStateException(\"Failed to parse date \" + value + \" by format \"\n-                            + DATE_FORMAT + \", cause: \" + e.getMessage(), e);\n-                }\n-            }\n-            if (type == java.time.LocalDateTime.class) {\n-                if (StringUtils.isEmpty(string)) {\n-                    return null;\n-                }\n-                return LocalDateTime.parse(string);\n-            }\n-            if (type == java.time.LocalDate.class) {\n-                if (StringUtils.isEmpty(string)) {\n-                    return null;\n-                }\n-                return java.time.LocalDate.parse(string);\n-            }\n-            if (type == java.time.LocalTime.class) {\n-                if (StringUtils.isEmpty(string)) {\n-                    return null;\n-                }\n-                return LocalDateTime.parse(string).toLocalTime();\n-            }\n-            if (type == Class.class) {\n-                try {\n-                    return ReflectUtils.name2class(string);\n-                } catch (ClassNotFoundException e) {\n-                    throw new RuntimeException(e.getMessage(), e);\n-                }\n-            }\n-            if (char[].class.equals(type)) {\n-                // Process string to char array for generic invoke\n-                // See\n-                // - https://github.com/apache/dubbo/issues/2003\n-                int len = string.length();\n-                char[] chars = new char[len];\n-                string.getChars(0, len, chars, 0);\n-                return chars;\n-            }\n-        }\n-        if (value instanceof Number) {\n-            Number number = (Number) value;\n-            if (type == byte.class || type == Byte.class) {\n-                return number.byteValue();\n-            }\n-            if (type == short.class || type == Short.class) {\n-                return number.shortValue();\n-            }\n-            if (type == int.class || type == Integer.class) {\n-                return number.intValue();\n-            }\n-            if (type == long.class || type == Long.class) {\n-                return number.longValue();\n-            }\n-            if (type == float.class || type == Float.class) {\n-                return number.floatValue();\n-            }\n-            if (type == double.class || type == Double.class) {\n-                return number.doubleValue();\n-            }\n-            if (type == BigInteger.class) {\n-                return BigInteger.valueOf(number.longValue());\n-            }\n-            if (type == BigDecimal.class) {\n-                return BigDecimal.valueOf(number.doubleValue());\n-            }\n-            if (type == Date.class) {\n-                return new Date(number.longValue());\n-            }\n-            if (type == boolean.class || type == Boolean.class) {\n-                return 0 != number.intValue();\n-            }\n-        }\n-        if (value instanceof Collection) {\n-            Collection collection = (Collection) value;\n-            if (type.isArray()) {\n-                int length = collection.size();\n-                Object array = Array.newInstance(type.getComponentType(), length);\n-                int i = 0;\n-                for (Object item : collection) {\n-                    Array.set(array, i++, item);\n-                }\n-                return array;\n-            }\n-            if (!type.isInterface()) {\n-                try {\n-                    Collection result = (Collection) type.newInstance();\n-                    result.addAll(collection);\n-                    return result;\n-                } catch (Throwable ignored) {\n-                }\n-            }\n-            if (type == List.class) {\n-                return new ArrayList<Object>(collection);\n-            }\n-            if (type == Set.class) {\n-                return new HashSet<Object>(collection);\n-            }\n-        }\n-        if (value.getClass().isArray() && Collection.class.isAssignableFrom(type)) {\n-            Collection collection;\n-            if (!type.isInterface()) {\n-                try {\n-                    collection = (Collection) type.newInstance();\n-                } catch (Throwable e) {\n-                    collection = new ArrayList<Object>();\n-                }\n-            } else if (type == Set.class) {\n-                collection = new HashSet<Object>();\n-            } else {\n-                collection = new ArrayList<Object>();\n-            }\n-            int length = Array.getLength(value);\n-            for (int i = 0; i < length; i++) {\n-                collection.add(Array.get(value, i));\n-            }\n-            return collection;\n-        }\n-        return value;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.Array;\r\n+import java.math.BigDecimal;\r\n+import java.math.BigInteger;\r\n+import java.text.ParseException;\r\n+import java.text.SimpleDateFormat;\r\n+import java.time.LocalDateTime;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Date;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+public class CompatibleTypeUtils {\r\n+\r\n+    private static final String DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\r\n+\r\n+    private CompatibleTypeUtils() {\r\n+    }\r\n+\r\n+    /**\r\n+     * Compatible type convert. Null value is allowed to pass in. If no conversion is needed, then the original value\r\n+     * will be returned.\r\n+     * <p>\r\n+     * Supported compatible type conversions include (primary types and corresponding wrappers are not listed):\r\n+     * <ul>\r\n+     * <li> String -> char, enum, Date\r\n+     * <li> byte, short, int, long -> byte, short, int, long\r\n+     * <li> float, double -> float, double\r\n+     * </ul>\r\n+     */\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public static Object compatibleTypeConvert(Object value, Class<?> type) {\r\n+        if (value == null || type == null || type.isAssignableFrom(value.getClass())) {\r\n+            return value;\r\n+        }\r\n+\r\n+        if (value instanceof String) {\r\n+            String string = (String) value;\r\n+            if (char.class.equals(type) || Character.class.equals(type)) {\r\n+                if (string.length() != 1) {\r\n+                    throw new IllegalArgumentException(String.format(\"CAN NOT convert String(%s) to char!\" +\r\n+                            \" when convert String to char, the String MUST only 1 char.\", string));\r\n+                }\r\n+                return string.charAt(0);\r\n+            }\r\n+            if (type.isEnum()) {\r\n+                return Enum.valueOf((Class<Enum>) type, string);\r\n+            }\r\n+            if (type == BigInteger.class) {\r\n+                return new BigInteger(string);\r\n+            }\r\n+            if (type == BigDecimal.class) {\r\n+                return new BigDecimal(string);\r\n+            }\r\n+            if (type == Short.class || type == short.class) {\r\n+                return new Short(string);\r\n+            }\r\n+            if (type == Integer.class || type == int.class) {\r\n+                return new Integer(string);\r\n+            }\r\n+            if (type == Long.class || type == long.class) {\r\n+                return new Long(string);\r\n+            }\r\n+            if (type == Double.class || type == double.class) {\r\n+                return new Double(string);\r\n+            }\r\n+            if (type == Float.class || type == float.class) {\r\n+                return new Float(string);\r\n+            }\r\n+            if (type == Byte.class || type == byte.class) {\r\n+                return new Byte(string);\r\n+            }\r\n+            if (type == Boolean.class || type == boolean.class) {\r\n+                return Boolean.valueOf(string);\r\n+            }\r\n+            if (type == Date.class || type == java.sql.Date.class || type == java.sql.Timestamp.class\r\n+                    || type == java.sql.Time.class) {\r\n+                try {\r\n+                    Date date = new SimpleDateFormat(DATE_FORMAT).parse(string);\r\n+                    if (type == java.sql.Date.class) {\r\n+                        return new java.sql.Date(date.getTime());\r\n+                    }\r\n+                    if (type == java.sql.Timestamp.class) {\r\n+                        return new java.sql.Timestamp(date.getTime());\r\n+                    }\r\n+                    if (type == java.sql.Time.class) {\r\n+                        return new java.sql.Time(date.getTime());\r\n+                    }\r\n+                    return date;\r\n+                } catch (ParseException e) {\r\n+                    throw new IllegalStateException(\"Failed to parse date \" + value + \" by format \"\r\n+                            + DATE_FORMAT + \", cause: \" + e.getMessage(), e);\r\n+                }\r\n+            }\r\n+            if (type == java.time.LocalDateTime.class) {\r\n+                if (StringUtils.isEmpty(string)) {\r\n+                    return null;\r\n+                }\r\n+                return LocalDateTime.parse(string);\r\n+            }\r\n+            if (type == java.time.LocalDate.class) {\r\n+                if (StringUtils.isEmpty(string)) {\r\n+                    return null;\r\n+                }\r\n+                return java.time.LocalDate.parse(string);\r\n+            }\r\n+            if (type == java.time.LocalTime.class) {\r\n+                if (StringUtils.isEmpty(string)) {\r\n+                    return null;\r\n+                }\r\n+                return LocalDateTime.parse(string).toLocalTime();\r\n+            }\r\n+            if (type == Class.class) {\r\n+                try {\r\n+                    return ReflectUtils.name2class(string);\r\n+                } catch (ClassNotFoundException e) {\r\n+                    throw new RuntimeException(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+            if (char[].class.equals(type)) {\r\n+                // Process string to char array for generic invoke\r\n+                // See\r\n+                // - https://github.com/apache/dubbo/issues/2003\r\n+                int len = string.length();\r\n+                char[] chars = new char[len];\r\n+                string.getChars(0, len, chars, 0);\r\n+                return chars;\r\n+            }\r\n+        }\r\n+        if (value instanceof Number) {\r\n+            Number number = (Number) value;\r\n+            if (type == byte.class || type == Byte.class) {\r\n+                return number.byteValue();\r\n+            }\r\n+            if (type == short.class || type == Short.class) {\r\n+                return number.shortValue();\r\n+            }\r\n+            if (type == int.class || type == Integer.class) {\r\n+                return number.intValue();\r\n+            }\r\n+            if (type == long.class || type == Long.class) {\r\n+                return number.longValue();\r\n+            }\r\n+            if (type == float.class || type == Float.class) {\r\n+                return number.floatValue();\r\n+            }\r\n+            if (type == double.class || type == Double.class) {\r\n+                return number.doubleValue();\r\n+            }\r\n+            if (type == BigInteger.class) {\r\n+                return BigInteger.valueOf(number.longValue());\r\n+            }\r\n+            if (type == BigDecimal.class) {\r\n+                return BigDecimal.valueOf(number.doubleValue());\r\n+            }\r\n+            if (type == Date.class) {\r\n+                return new Date(number.longValue());\r\n+            }\r\n+            if (type == boolean.class || type == Boolean.class) {\r\n+                return 0 != number.intValue();\r\n+            }\r\n+        }\r\n+        if (value instanceof Collection) {\r\n+            Collection collection = (Collection) value;\r\n+            if (type.isArray()) {\r\n+                int length = collection.size();\r\n+                Object array = Array.newInstance(type.getComponentType(), length);\r\n+                int i = 0;\r\n+                for (Object item : collection) {\r\n+                    Array.set(array, i++, item);\r\n+                }\r\n+                return array;\r\n+            }\r\n+            if (!type.isInterface()) {\r\n+                try {\r\n+                    Collection result = (Collection) type.newInstance();\r\n+                    result.addAll(collection);\r\n+                    return result;\r\n+                } catch (Throwable ignored) {\r\n+                }\r\n+            }\r\n+            if (type == List.class) {\r\n+                return new ArrayList<Object>(collection);\r\n+            }\r\n+            if (type == Set.class) {\r\n+                return new HashSet<Object>(collection);\r\n+            }\r\n+        }\r\n+        if (value.getClass().isArray() && Collection.class.isAssignableFrom(type)) {\r\n+            Collection collection;\r\n+            if (!type.isInterface()) {\r\n+                try {\r\n+                    collection = (Collection) type.newInstance();\r\n+                } catch (Throwable e) {\r\n+                    collection = new ArrayList<Object>();\r\n+                }\r\n+            } else if (type == Set.class) {\r\n+                collection = new HashSet<Object>();\r\n+            } else {\r\n+                collection = new ArrayList<Object>();\r\n+            }\r\n+            int length = Array.getLength(value);\r\n+            for (int i = 0; i < length; i++) {\r\n+                collection.add(Array.get(value, i));\r\n+            }\r\n+            return collection;\r\n+        }\r\n+        return value;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/DefaultPage.java", "source2": "org/apache/dubbo/common/utils/DefaultPage.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,82 +1,82 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.io.Serializable;\n-import java.util.List;\n-\n-/**\n- * The default implementation of {@link Page}\n- *\n- * @since 2.7.5\n- */\n-public class DefaultPage<T> implements Page<T>, Serializable {\n-\n-    private static final long serialVersionUID = 1099331838954070419L;\n-\n-    private final int requestOffset;\n-\n-    private final int pageSize;\n-\n-    private final int totalSize;\n-\n-    private final List<T> data;\n-\n-    private final int totalPages;\n-\n-    private final boolean hasNext;\n-\n-    public DefaultPage(int requestOffset, int pageSize, List<T> data, int totalSize) {\n-        this.requestOffset = requestOffset;\n-        this.pageSize = pageSize;\n-        this.data = data;\n-        this.totalSize = totalSize;\n-        int remain = totalSize % pageSize;\n-        this.totalPages = remain > 0 ? (totalSize / pageSize) + 1 : totalSize / pageSize;\n-        this.hasNext = totalSize - requestOffset - pageSize > 0;\n-    }\n-\n-    @Override\n-    public int getOffset() {\n-        return requestOffset;\n-    }\n-\n-    @Override\n-    public int getPageSize() {\n-        return pageSize;\n-    }\n-\n-    @Override\n-    public int getTotalSize() {\n-        return totalSize;\n-    }\n-\n-    @Override\n-    public int getTotalPages() {\n-        return totalPages;\n-    }\n-\n-    @Override\n-    public List<T> getData() {\n-        return data;\n-    }\n-\n-    @Override\n-    public boolean hasNext() {\n-        return hasNext;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The default implementation of {@link Page}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DefaultPage<T> implements Page<T>, Serializable {\r\n+\r\n+    private static final long serialVersionUID = 1099331838954070419L;\r\n+\r\n+    private final int requestOffset;\r\n+\r\n+    private final int pageSize;\r\n+\r\n+    private final int totalSize;\r\n+\r\n+    private final List<T> data;\r\n+\r\n+    private final int totalPages;\r\n+\r\n+    private final boolean hasNext;\r\n+\r\n+    public DefaultPage(int requestOffset, int pageSize, List<T> data, int totalSize) {\r\n+        this.requestOffset = requestOffset;\r\n+        this.pageSize = pageSize;\r\n+        this.data = data;\r\n+        this.totalSize = totalSize;\r\n+        int remain = totalSize % pageSize;\r\n+        this.totalPages = remain > 0 ? (totalSize / pageSize) + 1 : totalSize / pageSize;\r\n+        this.hasNext = totalSize - requestOffset - pageSize > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getOffset() {\r\n+        return requestOffset;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPageSize() {\r\n+        return pageSize;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getTotalSize() {\r\n+        return totalSize;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getTotalPages() {\r\n+        return totalPages;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<T> getData() {\r\n+        return data;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasNext() {\r\n+        return hasNext;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ExecutorUtil.java", "source2": "org/apache/dubbo/common/utils/ExecutorUtil.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,140 +1,140 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import java.util.concurrent.Executor;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-\n-public class ExecutorUtil {\n-    private static final Logger logger = LoggerFactory.getLogger(ExecutorUtil.class);\n-    private static final ThreadPoolExecutor SHUTDOWN_EXECUTOR = new ThreadPoolExecutor(0, 1,\n-            0L, TimeUnit.MILLISECONDS,\n-            new LinkedBlockingQueue<Runnable>(100),\n-            new NamedThreadFactory(\"Close-ExecutorService-Timer\", true));\n-\n-    public static boolean isTerminated(Executor executor) {\n-        if (executor instanceof ExecutorService) {\n-            if (((ExecutorService) executor).isTerminated()) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    /**\n-     * Use the shutdown pattern from:\n-     * https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html\n-     *\n-     * @param executor the Executor to shutdown\n-     * @param timeout  the timeout in milliseconds before termination\n-     */\n-    public static void gracefulShutdown(Executor executor, int timeout) {\n-        if (!(executor instanceof ExecutorService) || isTerminated(executor)) {\n-            return;\n-        }\n-        final ExecutorService es = (ExecutorService) executor;\n-        try {\n-            // Disable new tasks from being submitted\n-            es.shutdown();\n-        } catch (SecurityException | NullPointerException ex2) {\n-            return;\n-        }\n-        try {\n-            // Wait a while for existing tasks to terminate\n-            if (!es.awaitTermination(timeout, TimeUnit.MILLISECONDS)) {\n-                es.shutdownNow();\n-            }\n-        } catch (InterruptedException ex) {\n-            es.shutdownNow();\n-            Thread.currentThread().interrupt();\n-        }\n-        if (!isTerminated(es)) {\n-            newThreadToCloseExecutor(es);\n-        }\n-    }\n-\n-    public static void shutdownNow(Executor executor, final int timeout) {\n-        if (!(executor instanceof ExecutorService) || isTerminated(executor)) {\n-            return;\n-        }\n-        final ExecutorService es = (ExecutorService) executor;\n-        try {\n-            es.shutdownNow();\n-        } catch (SecurityException | NullPointerException ex2) {\n-            return;\n-        }\n-        try {\n-            es.awaitTermination(timeout, TimeUnit.MILLISECONDS);\n-        } catch (InterruptedException ex) {\n-            Thread.currentThread().interrupt();\n-        }\n-        if (!isTerminated(es)) {\n-            newThreadToCloseExecutor(es);\n-        }\n-    }\n-\n-    private static void newThreadToCloseExecutor(final ExecutorService es) {\n-        if (!isTerminated(es)) {\n-            SHUTDOWN_EXECUTOR.execute(new Runnable() {\n-                @Override\n-                public void run() {\n-                    try {\n-                        for (int i = 0; i < 1000; i++) {\n-                            es.shutdownNow();\n-                            if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) {\n-                                break;\n-                            }\n-                        }\n-                    } catch (InterruptedException ex) {\n-                        Thread.currentThread().interrupt();\n-                    } catch (Throwable e) {\n-                        logger.warn(e.getMessage(), e);\n-                    }\n-                }\n-            });\n-        }\n-    }\n-\n-    /**\n-     * append thread name with url address\n-     *\n-     * @return new url with updated thread name\n-     */\n-    public static URL setThreadName(URL url, String defaultName) {\n-        String name = url.getParameter(THREAD_NAME_KEY, defaultName);\n-        name = name + \"-\" + url.getAddress();\n-        url = url.addParameter(THREAD_NAME_KEY, name);\n-        return url;\n-    }\n-\n-    public static void cancelScheduledFuture(ScheduledFuture<?> scheduledFuture) {\n-        ScheduledFuture<?> future = scheduledFuture;\n-        if (future != null && !future.isCancelled()) {\n-            future.cancel(true);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import java.util.concurrent.Executor;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+\r\n+public class ExecutorUtil {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ExecutorUtil.class);\r\n+    private static final ThreadPoolExecutor SHUTDOWN_EXECUTOR = new ThreadPoolExecutor(0, 1,\r\n+            0L, TimeUnit.MILLISECONDS,\r\n+            new LinkedBlockingQueue<Runnable>(100),\r\n+            new NamedThreadFactory(\"Close-ExecutorService-Timer\", true));\r\n+\r\n+    public static boolean isTerminated(Executor executor) {\r\n+        if (executor instanceof ExecutorService) {\r\n+            if (((ExecutorService) executor).isTerminated()) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /**\r\n+     * Use the shutdown pattern from:\r\n+     * https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/ExecutorService.html\r\n+     *\r\n+     * @param executor the Executor to shutdown\r\n+     * @param timeout  the timeout in milliseconds before termination\r\n+     */\r\n+    public static void gracefulShutdown(Executor executor, int timeout) {\r\n+        if (!(executor instanceof ExecutorService) || isTerminated(executor)) {\r\n+            return;\r\n+        }\r\n+        final ExecutorService es = (ExecutorService) executor;\r\n+        try {\r\n+            // Disable new tasks from being submitted\r\n+            es.shutdown();\r\n+        } catch (SecurityException | NullPointerException ex2) {\r\n+            return;\r\n+        }\r\n+        try {\r\n+            // Wait a while for existing tasks to terminate\r\n+            if (!es.awaitTermination(timeout, TimeUnit.MILLISECONDS)) {\r\n+                es.shutdownNow();\r\n+            }\r\n+        } catch (InterruptedException ex) {\r\n+            es.shutdownNow();\r\n+            Thread.currentThread().interrupt();\r\n+        }\r\n+        if (!isTerminated(es)) {\r\n+            newThreadToCloseExecutor(es);\r\n+        }\r\n+    }\r\n+\r\n+    public static void shutdownNow(Executor executor, final int timeout) {\r\n+        if (!(executor instanceof ExecutorService) || isTerminated(executor)) {\r\n+            return;\r\n+        }\r\n+        final ExecutorService es = (ExecutorService) executor;\r\n+        try {\r\n+            es.shutdownNow();\r\n+        } catch (SecurityException | NullPointerException ex2) {\r\n+            return;\r\n+        }\r\n+        try {\r\n+            es.awaitTermination(timeout, TimeUnit.MILLISECONDS);\r\n+        } catch (InterruptedException ex) {\r\n+            Thread.currentThread().interrupt();\r\n+        }\r\n+        if (!isTerminated(es)) {\r\n+            newThreadToCloseExecutor(es);\r\n+        }\r\n+    }\r\n+\r\n+    private static void newThreadToCloseExecutor(final ExecutorService es) {\r\n+        if (!isTerminated(es)) {\r\n+            SHUTDOWN_EXECUTOR.execute(new Runnable() {\r\n+                @Override\r\n+                public void run() {\r\n+                    try {\r\n+                        for (int i = 0; i < 1000; i++) {\r\n+                            es.shutdownNow();\r\n+                            if (es.awaitTermination(10, TimeUnit.MILLISECONDS)) {\r\n+                                break;\r\n+                            }\r\n+                        }\r\n+                    } catch (InterruptedException ex) {\r\n+                        Thread.currentThread().interrupt();\r\n+                    } catch (Throwable e) {\r\n+                        logger.warn(e.getMessage(), e);\r\n+                    }\r\n+                }\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * append thread name with url address\r\n+     *\r\n+     * @return new url with updated thread name\r\n+     */\r\n+    public static URL setThreadName(URL url, String defaultName) {\r\n+        String name = url.getParameter(THREAD_NAME_KEY, defaultName);\r\n+        name = name + \"-\" + url.getAddress();\r\n+        url = url.addParameter(THREAD_NAME_KEY, name);\r\n+        return url;\r\n+    }\r\n+\r\n+    public static void cancelScheduledFuture(ScheduledFuture<?> scheduledFuture) {\r\n+        ScheduledFuture<?> future = scheduledFuture;\r\n+        if (future != null && !future.isCancelled()) {\r\n+            future.cancel(true);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/FieldUtils.java", "source2": "org/apache/dubbo/common/utils/FieldUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,142 +1,142 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.Field;\n-\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\n-\n-/**\n- * The utilities class for Java Reflection {@link Field}\n- *\n- * @since 2.7.6\n- */\n-public interface FieldUtils {\n-\n-    /**\n-     * Like the {@link Class#getDeclaredField(String)} method without throwing any {@link Exception}\n-     *\n-     * @param declaredClass the declared class\n-     * @param fieldName     the name of {@link Field}\n-     * @return if can't be found, return <code>null</code>\n-     */\n-    static Field getDeclaredField(Class<?> declaredClass, String fieldName) {\n-        Field field = null;\n-        try {\n-            field = declaredClass.getDeclaredField(fieldName);\n-        } catch (NoSuchFieldException ignored) {\n-            field = null;\n-        }\n-        return field;\n-    }\n-\n-    /**\n-     * Find the {@link Field} by the name in the specified class and its inherited types\n-     *\n-     * @param declaredClass the declared class\n-     * @param fieldName     the name of {@link Field}\n-     * @return if can't be found, return <code>null</code>\n-     */\n-    static Field findField(Class<?> declaredClass, String fieldName) {\n-        Field field = getDeclaredField(declaredClass, fieldName);\n-        if (field != null) {\n-            return field;\n-        }\n-        for (Class superType : getAllInheritedTypes(declaredClass)) {\n-            field = getDeclaredField(superType, fieldName);\n-            if (field != null) {\n-                break;\n-            }\n-        }\n-        return field;\n-    }\n-\n-    /**\n-     * Find the {@link Field} by the name in the specified class and its inherited types\n-     *\n-     * @param object    the object whose field should be modified\n-     * @param fieldName the name of {@link Field}\n-     * @return if can't be found, return <code>null</code>\n-     */\n-    static Field findField(Object object, String fieldName) {\n-        return findField(object.getClass(), fieldName);\n-    }\n-\n-    /**\n-     * Get the value of the specified {@link Field}\n-     *\n-     * @param object    the object whose field should be modified\n-     * @param fieldName the name of {@link Field}\n-     * @return the value of  the specified {@link Field}\n-     */\n-    static Object getFieldValue(Object object, String fieldName) {\n-        return getFieldValue(object, findField(object, fieldName));\n-    }\n-\n-    /**\n-     * Get the value of the specified {@link Field}\n-     *\n-     * @param object the object whose field should be modified\n-     * @param field  {@link Field}\n-     * @return the value of  the specified {@link Field}\n-     */\n-    static <T> T getFieldValue(Object object, Field field) {\n-        Object value = null;\n-        try {\n-            ReflectUtils.makeAccessible(field);\n-            value = field.get(object);\n-        } catch (IllegalAccessException ignored) {\n-        } finally {\n-            ReflectUtils.makeAccessible(field);\n-        }\n-        return (T) value;\n-    }\n-\n-    /**\n-     * Set the value for the specified {@link Field}\n-     *\n-     * @param object    the object whose field should be modified\n-     * @param fieldName the name of {@link Field}\n-     * @param value     the value of field to be set\n-     * @return the previous value of the specified {@link Field}\n-     */\n-    static <T> T setFieldValue(Object object, String fieldName, T value) {\n-        return setFieldValue(object, findField(object, fieldName), value);\n-    }\n-\n-    /**\n-     * Set the value for the specified {@link Field}\n-     *\n-     * @param object the object whose field should be modified\n-     * @param field  {@link Field}\n-     * @param value  the value of field to be set\n-     * @return the previous value of the specified {@link Field}\n-     */\n-    static <T> T setFieldValue(Object object, Field field, T value) {\n-        Object previousValue = null;\n-        try {\n-            ReflectUtils.makeAccessible(field);\n-            previousValue = field.get(object);\n-            field.set(object, value);\n-        } catch (IllegalAccessException ignored) {\n-        } finally {\n-            ReflectUtils.makeAccessible(field);\n-        }\n-        return (T) previousValue;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.Field;\r\n+\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\r\n+\r\n+/**\r\n+ * The utilities class for Java Reflection {@link Field}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface FieldUtils {\r\n+\r\n+    /**\r\n+     * Like the {@link Class#getDeclaredField(String)} method without throwing any {@link Exception}\r\n+     *\r\n+     * @param declaredClass the declared class\r\n+     * @param fieldName     the name of {@link Field}\r\n+     * @return if can't be found, return <code>null</code>\r\n+     */\r\n+    static Field getDeclaredField(Class<?> declaredClass, String fieldName) {\r\n+        Field field = null;\r\n+        try {\r\n+            field = declaredClass.getDeclaredField(fieldName);\r\n+        } catch (NoSuchFieldException ignored) {\r\n+            field = null;\r\n+        }\r\n+        return field;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Field} by the name in the specified class and its inherited types\r\n+     *\r\n+     * @param declaredClass the declared class\r\n+     * @param fieldName     the name of {@link Field}\r\n+     * @return if can't be found, return <code>null</code>\r\n+     */\r\n+    static Field findField(Class<?> declaredClass, String fieldName) {\r\n+        Field field = getDeclaredField(declaredClass, fieldName);\r\n+        if (field != null) {\r\n+            return field;\r\n+        }\r\n+        for (Class superType : getAllInheritedTypes(declaredClass)) {\r\n+            field = getDeclaredField(superType, fieldName);\r\n+            if (field != null) {\r\n+                break;\r\n+            }\r\n+        }\r\n+        return field;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Field} by the name in the specified class and its inherited types\r\n+     *\r\n+     * @param object    the object whose field should be modified\r\n+     * @param fieldName the name of {@link Field}\r\n+     * @return if can't be found, return <code>null</code>\r\n+     */\r\n+    static Field findField(Object object, String fieldName) {\r\n+        return findField(object.getClass(), fieldName);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the value of the specified {@link Field}\r\n+     *\r\n+     * @param object    the object whose field should be modified\r\n+     * @param fieldName the name of {@link Field}\r\n+     * @return the value of  the specified {@link Field}\r\n+     */\r\n+    static Object getFieldValue(Object object, String fieldName) {\r\n+        return getFieldValue(object, findField(object, fieldName));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the value of the specified {@link Field}\r\n+     *\r\n+     * @param object the object whose field should be modified\r\n+     * @param field  {@link Field}\r\n+     * @return the value of  the specified {@link Field}\r\n+     */\r\n+    static <T> T getFieldValue(Object object, Field field) {\r\n+        Object value = null;\r\n+        try {\r\n+            ReflectUtils.makeAccessible(field);\r\n+            value = field.get(object);\r\n+        } catch (IllegalAccessException ignored) {\r\n+        } finally {\r\n+            ReflectUtils.makeAccessible(field);\r\n+        }\r\n+        return (T) value;\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the value for the specified {@link Field}\r\n+     *\r\n+     * @param object    the object whose field should be modified\r\n+     * @param fieldName the name of {@link Field}\r\n+     * @param value     the value of field to be set\r\n+     * @return the previous value of the specified {@link Field}\r\n+     */\r\n+    static <T> T setFieldValue(Object object, String fieldName, T value) {\r\n+        return setFieldValue(object, findField(object, fieldName), value);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the value for the specified {@link Field}\r\n+     *\r\n+     * @param object the object whose field should be modified\r\n+     * @param field  {@link Field}\r\n+     * @param value  the value of field to be set\r\n+     * @return the previous value of the specified {@link Field}\r\n+     */\r\n+    static <T> T setFieldValue(Object object, Field field, T value) {\r\n+        Object previousValue = null;\r\n+        try {\r\n+            ReflectUtils.makeAccessible(field);\r\n+            previousValue = field.get(object);\r\n+            field.set(object, value);\r\n+        } catch (IllegalAccessException ignored) {\r\n+        } finally {\r\n+            ReflectUtils.makeAccessible(field);\r\n+        }\r\n+        return (T) previousValue;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/LFUCache.java", "source2": "org/apache/dubbo/common/utils/LFUCache.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,286 +1,286 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-public class LFUCache<K, V> {\n-\n-    private Map<K, CacheNode<K, V>> map;\n-    private CacheDeque<K, V>[] freqTable;\n-\n-    private final int capacity;\n-    private int evictionCount;\n-    private int curSize = 0;\n-\n-    private final ReentrantLock lock = new ReentrantLock();\n-    private static final int DEFAULT_INITIAL_CAPACITY = 1000;\n-\n-    private static final float DEFAULT_EVICTION_FACTOR = 0.75f;\n-\n-    public LFUCache() {\n-        this(DEFAULT_INITIAL_CAPACITY, DEFAULT_EVICTION_FACTOR);\n-    }\n-\n-    /**\n-     * Constructs and initializes cache with specified capacity and eviction\n-     * factor. Unacceptable parameter values followed with\n-     * {@link IllegalArgumentException}.\n-     *\n-     * @param maxCapacity    cache max capacity\n-     * @param evictionFactor cache proceedEviction factor\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public LFUCache(final int maxCapacity, final float evictionFactor) {\n-        if (maxCapacity <= 0) {\n-            throw new IllegalArgumentException(\"Illegal initial capacity: \" +\n-                    maxCapacity);\n-        }\n-        boolean factorInRange = evictionFactor <= 1 && evictionFactor > 0;\n-        if (!factorInRange || Float.isNaN(evictionFactor)) {\n-            throw new IllegalArgumentException(\"Illegal eviction factor value:\"\n-                    + evictionFactor);\n-        }\n-        this.capacity = maxCapacity;\n-        this.evictionCount = (int) (capacity * evictionFactor);\n-        this.map = new HashMap<>();\n-        this.freqTable = new CacheDeque[capacity + 1];\n-        for (int i = 0; i <= capacity; i++) {\n-            freqTable[i] = new CacheDeque<>();\n-        }\n-        for (int i = 0; i < capacity; i++) {\n-            freqTable[i].nextDeque = freqTable[i + 1];\n-        }\n-        freqTable[capacity].nextDeque = freqTable[capacity];\n-    }\n-\n-    public int getCapacity() {\n-        return capacity;\n-    }\n-\n-    public V put(final K key, final V value) {\n-        CacheNode<K, V> node;\n-        lock.lock();\n-        try {\n-            node = map.get(key);\n-            if (node != null) {\n-                CacheNode.withdrawNode(node);\n-                node.value = value;\n-                freqTable[0].addLastNode(node);\n-                map.put(key, node);\n-            } else {\n-                node = freqTable[0].addLast(key, value);\n-                map.put(key, node);\n-                curSize++;\n-                if (curSize > capacity) {\n-                    proceedEviction();\n-                }\n-            }\n-        } finally {\n-            lock.unlock();\n-        }\n-        return node.value;\n-    }\n-\n-    public V remove(final K key) {\n-        CacheNode<K, V> node = null;\n-        lock.lock();\n-        try {\n-            if (map.containsKey(key)) {\n-                node = map.remove(key);\n-                if (node != null) {\n-                    CacheNode.withdrawNode(node);\n-                }\n-                curSize--;\n-            }\n-        } finally {\n-            lock.unlock();\n-        }\n-        return (node != null) ? node.value : null;\n-    }\n-\n-    public V get(final K key) {\n-        CacheNode<K, V> node = null;\n-        lock.lock();\n-        try {\n-            if (map.containsKey(key)) {\n-                node = map.get(key);\n-                CacheNode.withdrawNode(node);\n-                node.owner.nextDeque.addLastNode(node);\n-            }\n-        } finally {\n-            lock.unlock();\n-        }\n-        return (node != null) ? node.value : null;\n-    }\n-\n-    /**\n-     * Evicts less frequently used elements corresponding to eviction factor,\n-     * specified at instantiation step.\n-     *\n-     * @return number of evicted elements\n-     */\n-    private int proceedEviction() {\n-        int targetSize = capacity - evictionCount;\n-        int evictedElements = 0;\n-\n-        FREQ_TABLE_ITER_LOOP:\n-        for (int i = 0; i <= capacity; i++) {\n-            CacheNode<K, V> node;\n-            while (!freqTable[i].isEmpty()) {\n-                node = freqTable[i].pollFirst();\n-                remove(node.key);\n-                if (targetSize >= curSize) {\n-                    break FREQ_TABLE_ITER_LOOP;\n-                }\n-                evictedElements++;\n-            }\n-        }\n-        return evictedElements;\n-    }\n-\n-    /**\n-     * Returns cache current size.\n-     *\n-     * @return cache size\n-     */\n-    public int getSize() {\n-        return curSize;\n-    }\n-\n-    static class CacheNode<K, V> {\n-\n-        CacheNode<K, V> prev;\n-        CacheNode<K, V> next;\n-        K key;\n-        V value;\n-        CacheDeque<K, V> owner;\n-\n-        CacheNode() {\n-        }\n-\n-        CacheNode(final K key, final V value) {\n-            this.key = key;\n-            this.value = value;\n-        }\n-\n-        /**\n-         * This method takes specified node and reattaches it neighbors nodes\n-         * links to each other, so specified node will no longer tied with them.\n-         * Returns united node, returns null if argument is null.\n-         *\n-         * @param node note to retrieve\n-         * @param <K>  key\n-         * @param <V>  value\n-         * @return retrieved node\n-         */\n-        static <K, V> CacheNode<K, V> withdrawNode(\n-                final CacheNode<K, V> node) {\n-            if (node != null && node.prev != null) {\n-                node.prev.next = node.next;\n-                if (node.next != null) {\n-                    node.next.prev = node.prev;\n-                }\n-            }\n-            return node;\n-        }\n-\n-    }\n-\n-    /**\n-     * Custom deque implementation of LIFO type. Allows to place element at top\n-     * of deque and poll very last added elements. An arbitrary node from the\n-     * deque can be removed with {@link CacheNode#withdrawNode(CacheNode)}\n-     * method.\n-     *\n-     * @param <K> key\n-     * @param <V> value\n-     */\n-    static class CacheDeque<K, V> {\n-\n-        CacheNode<K, V> last;\n-        CacheNode<K, V> first;\n-        CacheDeque<K, V> nextDeque;\n-\n-        /**\n-         * Constructs list and initializes last and first pointers.\n-         */\n-        CacheDeque() {\n-            last = new CacheNode<>();\n-            first = new CacheNode<>();\n-            last.next = first;\n-            first.prev = last;\n-        }\n-\n-        /**\n-         * Puts the node with specified key and value at the end of the deque\n-         * and returns node.\n-         *\n-         * @param key   key\n-         * @param value value\n-         * @return added node\n-         */\n-        CacheNode<K, V> addLast(final K key, final V value) {\n-            CacheNode<K, V> node = new CacheNode<>(key, value);\n-            node.owner = this;\n-            node.next = last.next;\n-            node.prev = last;\n-            node.next.prev = node;\n-            last.next = node;\n-            return node;\n-        }\n-\n-        CacheNode<K, V> addLastNode(final CacheNode<K, V> node) {\n-            node.owner = this;\n-            node.next = last.next;\n-            node.prev = last;\n-            node.next.prev = node;\n-            last.next = node;\n-            return node;\n-        }\n-\n-        /**\n-         * Retrieves and removes the first node of this deque.\n-         *\n-         * @return removed node\n-         */\n-        CacheNode<K, V> pollFirst() {\n-            CacheNode<K, V> node = null;\n-            if (first.prev != last) {\n-                node = first.prev;\n-                first.prev = node.prev;\n-                first.prev.next = first;\n-                node.prev = null;\n-                node.next = null;\n-            }\n-            return node;\n-        }\n-\n-        /**\n-         * Checks if link to the last node points to link to the first node.\n-         *\n-         * @return is deque empty\n-         */\n-        boolean isEmpty() {\n-            return last.next == first;\n-        }\n-\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+public class LFUCache<K, V> {\r\n+\r\n+    private Map<K, CacheNode<K, V>> map;\r\n+    private CacheDeque<K, V>[] freqTable;\r\n+\r\n+    private final int capacity;\r\n+    private int evictionCount;\r\n+    private int curSize = 0;\r\n+\r\n+    private final ReentrantLock lock = new ReentrantLock();\r\n+    private static final int DEFAULT_INITIAL_CAPACITY = 1000;\r\n+\r\n+    private static final float DEFAULT_EVICTION_FACTOR = 0.75f;\r\n+\r\n+    public LFUCache() {\r\n+        this(DEFAULT_INITIAL_CAPACITY, DEFAULT_EVICTION_FACTOR);\r\n+    }\r\n+\r\n+    /**\r\n+     * Constructs and initializes cache with specified capacity and eviction\r\n+     * factor. Unacceptable parameter values followed with\r\n+     * {@link IllegalArgumentException}.\r\n+     *\r\n+     * @param maxCapacity    cache max capacity\r\n+     * @param evictionFactor cache proceedEviction factor\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public LFUCache(final int maxCapacity, final float evictionFactor) {\r\n+        if (maxCapacity <= 0) {\r\n+            throw new IllegalArgumentException(\"Illegal initial capacity: \" +\r\n+                    maxCapacity);\r\n+        }\r\n+        boolean factorInRange = evictionFactor <= 1 && evictionFactor > 0;\r\n+        if (!factorInRange || Float.isNaN(evictionFactor)) {\r\n+            throw new IllegalArgumentException(\"Illegal eviction factor value:\"\r\n+                    + evictionFactor);\r\n+        }\r\n+        this.capacity = maxCapacity;\r\n+        this.evictionCount = (int) (capacity * evictionFactor);\r\n+        this.map = new HashMap<>();\r\n+        this.freqTable = new CacheDeque[capacity + 1];\r\n+        for (int i = 0; i <= capacity; i++) {\r\n+            freqTable[i] = new CacheDeque<>();\r\n+        }\r\n+        for (int i = 0; i < capacity; i++) {\r\n+            freqTable[i].nextDeque = freqTable[i + 1];\r\n+        }\r\n+        freqTable[capacity].nextDeque = freqTable[capacity];\r\n+    }\r\n+\r\n+    public int getCapacity() {\r\n+        return capacity;\r\n+    }\r\n+\r\n+    public V put(final K key, final V value) {\r\n+        CacheNode<K, V> node;\r\n+        lock.lock();\r\n+        try {\r\n+            node = map.get(key);\r\n+            if (node != null) {\r\n+                CacheNode.withdrawNode(node);\r\n+                node.value = value;\r\n+                freqTable[0].addLastNode(node);\r\n+                map.put(key, node);\r\n+            } else {\r\n+                node = freqTable[0].addLast(key, value);\r\n+                map.put(key, node);\r\n+                curSize++;\r\n+                if (curSize > capacity) {\r\n+                    proceedEviction();\r\n+                }\r\n+            }\r\n+        } finally {\r\n+            lock.unlock();\r\n+        }\r\n+        return node.value;\r\n+    }\r\n+\r\n+    public V remove(final K key) {\r\n+        CacheNode<K, V> node = null;\r\n+        lock.lock();\r\n+        try {\r\n+            if (map.containsKey(key)) {\r\n+                node = map.remove(key);\r\n+                if (node != null) {\r\n+                    CacheNode.withdrawNode(node);\r\n+                }\r\n+                curSize--;\r\n+            }\r\n+        } finally {\r\n+            lock.unlock();\r\n+        }\r\n+        return (node != null) ? node.value : null;\r\n+    }\r\n+\r\n+    public V get(final K key) {\r\n+        CacheNode<K, V> node = null;\r\n+        lock.lock();\r\n+        try {\r\n+            if (map.containsKey(key)) {\r\n+                node = map.get(key);\r\n+                CacheNode.withdrawNode(node);\r\n+                node.owner.nextDeque.addLastNode(node);\r\n+            }\r\n+        } finally {\r\n+            lock.unlock();\r\n+        }\r\n+        return (node != null) ? node.value : null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Evicts less frequently used elements corresponding to eviction factor,\r\n+     * specified at instantiation step.\r\n+     *\r\n+     * @return number of evicted elements\r\n+     */\r\n+    private int proceedEviction() {\r\n+        int targetSize = capacity - evictionCount;\r\n+        int evictedElements = 0;\r\n+\r\n+        FREQ_TABLE_ITER_LOOP:\r\n+        for (int i = 0; i <= capacity; i++) {\r\n+            CacheNode<K, V> node;\r\n+            while (!freqTable[i].isEmpty()) {\r\n+                node = freqTable[i].pollFirst();\r\n+                remove(node.key);\r\n+                if (targetSize >= curSize) {\r\n+                    break FREQ_TABLE_ITER_LOOP;\r\n+                }\r\n+                evictedElements++;\r\n+            }\r\n+        }\r\n+        return evictedElements;\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns cache current size.\r\n+     *\r\n+     * @return cache size\r\n+     */\r\n+    public int getSize() {\r\n+        return curSize;\r\n+    }\r\n+\r\n+    static class CacheNode<K, V> {\r\n+\r\n+        CacheNode<K, V> prev;\r\n+        CacheNode<K, V> next;\r\n+        K key;\r\n+        V value;\r\n+        CacheDeque<K, V> owner;\r\n+\r\n+        CacheNode() {\r\n+        }\r\n+\r\n+        CacheNode(final K key, final V value) {\r\n+            this.key = key;\r\n+            this.value = value;\r\n+        }\r\n+\r\n+        /**\r\n+         * This method takes specified node and reattaches it neighbors nodes\r\n+         * links to each other, so specified node will no longer tied with them.\r\n+         * Returns united node, returns null if argument is null.\r\n+         *\r\n+         * @param node note to retrieve\r\n+         * @param <K>  key\r\n+         * @param <V>  value\r\n+         * @return retrieved node\r\n+         */\r\n+        static <K, V> CacheNode<K, V> withdrawNode(\r\n+                final CacheNode<K, V> node) {\r\n+            if (node != null && node.prev != null) {\r\n+                node.prev.next = node.next;\r\n+                if (node.next != null) {\r\n+                    node.next.prev = node.prev;\r\n+                }\r\n+            }\r\n+            return node;\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Custom deque implementation of LIFO type. Allows to place element at top\r\n+     * of deque and poll very last added elements. An arbitrary node from the\r\n+     * deque can be removed with {@link CacheNode#withdrawNode(CacheNode)}\r\n+     * method.\r\n+     *\r\n+     * @param <K> key\r\n+     * @param <V> value\r\n+     */\r\n+    static class CacheDeque<K, V> {\r\n+\r\n+        CacheNode<K, V> last;\r\n+        CacheNode<K, V> first;\r\n+        CacheDeque<K, V> nextDeque;\r\n+\r\n+        /**\r\n+         * Constructs list and initializes last and first pointers.\r\n+         */\r\n+        CacheDeque() {\r\n+            last = new CacheNode<>();\r\n+            first = new CacheNode<>();\r\n+            last.next = first;\r\n+            first.prev = last;\r\n+        }\r\n+\r\n+        /**\r\n+         * Puts the node with specified key and value at the end of the deque\r\n+         * and returns node.\r\n+         *\r\n+         * @param key   key\r\n+         * @param value value\r\n+         * @return added node\r\n+         */\r\n+        CacheNode<K, V> addLast(final K key, final V value) {\r\n+            CacheNode<K, V> node = new CacheNode<>(key, value);\r\n+            node.owner = this;\r\n+            node.next = last.next;\r\n+            node.prev = last;\r\n+            node.next.prev = node;\r\n+            last.next = node;\r\n+            return node;\r\n+        }\r\n+\r\n+        CacheNode<K, V> addLastNode(final CacheNode<K, V> node) {\r\n+            node.owner = this;\r\n+            node.next = last.next;\r\n+            node.prev = last;\r\n+            node.next.prev = node;\r\n+            last.next = node;\r\n+            return node;\r\n+        }\r\n+\r\n+        /**\r\n+         * Retrieves and removes the first node of this deque.\r\n+         *\r\n+         * @return removed node\r\n+         */\r\n+        CacheNode<K, V> pollFirst() {\r\n+            CacheNode<K, V> node = null;\r\n+            if (first.prev != last) {\r\n+                node = first.prev;\r\n+                first.prev = node.prev;\r\n+                first.prev.next = first;\r\n+                node.prev = null;\r\n+                node.next = null;\r\n+            }\r\n+            return node;\r\n+        }\r\n+\r\n+        /**\r\n+         * Checks if link to the last node points to link to the first node.\r\n+         *\r\n+         * @return is deque empty\r\n+         */\r\n+        boolean isEmpty() {\r\n+            return last.next == first;\r\n+        }\r\n+\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/utils/MemberUtils.java", "source2": "org/apache/dubbo/common/utils/MemberUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.Constructor;\n-import java.lang.reflect.Field;\n-import java.lang.reflect.Member;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-\n-/**\n- * Java Reflection {@link Member} Utilities class\n- *\n- * @since 2.7.6\n- */\n-public interface MemberUtils {\n-\n-    /**\n-     * check the specified {@link Member member} is static or not ?\n-     *\n-     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\n-     * @return Iff <code>member</code> is static one, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isStatic(Member member) {\n-        return member != null && Modifier.isStatic(member.getModifiers());\n-    }\n-\n-    /**\n-     * check the specified {@link Member member} is private or not ?\n-     *\n-     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\n-     * @return Iff <code>member</code> is private one, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isPrivate(Member member) {\n-        return member != null && Modifier.isPrivate(member.getModifiers());\n-    }\n-\n-    /**\n-     * check the specified {@link Member member} is public or not ?\n-     *\n-     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\n-     * @return Iff <code>member</code> is public one, return <code>true</code>, or <code>false</code>\n-     */\n-    static boolean isPublic(Member member) {\n-        return member != null && Modifier.isPublic(member.getModifiers());\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.Constructor;\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.Member;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+\r\n+/**\r\n+ * Java Reflection {@link Member} Utilities class\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface MemberUtils {\r\n+\r\n+    /**\r\n+     * check the specified {@link Member member} is static or not ?\r\n+     *\r\n+     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\r\n+     * @return Iff <code>member</code> is static one, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isStatic(Member member) {\r\n+        return member != null && Modifier.isStatic(member.getModifiers());\r\n+    }\r\n+\r\n+    /**\r\n+     * check the specified {@link Member member} is private or not ?\r\n+     *\r\n+     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\r\n+     * @return Iff <code>member</code> is private one, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isPrivate(Member member) {\r\n+        return member != null && Modifier.isPrivate(member.getModifiers());\r\n+    }\r\n+\r\n+    /**\r\n+     * check the specified {@link Member member} is public or not ?\r\n+     *\r\n+     * @param member {@link Member} instance, e.g, {@link Constructor}, {@link Method} or {@link Field}\r\n+     * @return Iff <code>member</code> is public one, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    static boolean isPublic(Member member) {\r\n+        return member != null && Modifier.isPublic(member.getModifiers());\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/common/utils/MethodComparator.java", "source2": "org/apache/dubbo/common/utils/MethodComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.Method;\n-import java.util.Comparator;\n-\n-/**\n- * The Comparator class for {@link Method}, the comparison rule :\n- * <ol>\n- *     <li>Comparing to two {@link Method#getName() method names} {@link String#compareTo(String) lexicographically}.\n- *     If equals, go to step 2</li>\n- *     <li>Comparing to the count of two method parameters. If equals, go to step 3</li>\n- *     <li>Comparing to the type names of methods parameter {@link String#compareTo(String) lexicographically}</li>\n- * </ol>\n- *\n- * @since 2.7.6\n- */\n-public class MethodComparator implements Comparator<Method> {\n-\n-    public final static MethodComparator INSTANCE = new MethodComparator();\n-\n-    private MethodComparator() {\n-    }\n-\n-    @Override\n-    public int compare(Method m1, Method m2) {\n-\n-        if (m1.equals(m2)) {\n-            return 0;\n-        }\n-\n-        // Step 1\n-        String n1 = m1.getName();\n-        String n2 = m2.getName();\n-        int value = n1.compareTo(n2);\n-\n-        if (value == 0) { // Step 2\n-\n-            Class[] types1 = m1.getParameterTypes();\n-            Class[] types2 = m2.getParameterTypes();\n-\n-            value = types1.length - types2.length;\n-\n-            if (value == 0) { // Step 3\n-                for (int i = 0; i < types1.length; i++) {\n-                    value = types1[i].getName().compareTo(types2[i].getName());\n-                    if (value != 0) {\n-                        break;\n-                    }\n-                }\n-            }\n-        }\n-\n-        return Integer.compare(value, 0);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.Comparator;\r\n+\r\n+/**\r\n+ * The Comparator class for {@link Method}, the comparison rule :\r\n+ * <ol>\r\n+ *     <li>Comparing to two {@link Method#getName() method names} {@link String#compareTo(String) lexicographically}.\r\n+ *     If equals, go to step 2</li>\r\n+ *     <li>Comparing to the count of two method parameters. If equals, go to step 3</li>\r\n+ *     <li>Comparing to the type names of methods parameter {@link String#compareTo(String) lexicographically}</li>\r\n+ * </ol>\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class MethodComparator implements Comparator<Method> {\r\n+\r\n+    public final static MethodComparator INSTANCE = new MethodComparator();\r\n+\r\n+    private MethodComparator() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public int compare(Method m1, Method m2) {\r\n+\r\n+        if (m1.equals(m2)) {\r\n+            return 0;\r\n+        }\r\n+\r\n+        // Step 1\r\n+        String n1 = m1.getName();\r\n+        String n2 = m2.getName();\r\n+        int value = n1.compareTo(n2);\r\n+\r\n+        if (value == 0) { // Step 2\r\n+\r\n+            Class[] types1 = m1.getParameterTypes();\r\n+            Class[] types2 = m2.getParameterTypes();\r\n+\r\n+            value = types1.length - types2.length;\r\n+\r\n+            if (value == 0) { // Step 3\r\n+                for (int i = 0; i < types1.length; i++) {\r\n+                    value = types1[i].getName().compareTo(types2[i].getName());\r\n+                    if (value != 0) {\r\n+                        break;\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return Integer.compare(value, 0);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/MethodUtils.java", "source2": "org/apache/dubbo/common/utils/MethodUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,389 +1,389 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import javax.lang.model.element.ExecutableElement;\n-import javax.lang.model.element.TypeElement;\n-import javax.lang.model.util.Elements;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Objects;\n-import java.util.function.Predicate;\n-\n-import static java.util.Collections.emptyList;\n-import static java.util.Collections.unmodifiableList;\n-import static org.apache.dubbo.common.function.Streams.filterAll;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\n-import static org.apache.dubbo.common.utils.MemberUtils.isPrivate;\n-import static org.apache.dubbo.common.utils.MemberUtils.isStatic;\n-import static org.apache.dubbo.common.utils.ReflectUtils.EMPTY_CLASS_ARRAY;\n-import static org.apache.dubbo.common.utils.ReflectUtils.resolveTypes;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-\n-/**\n- * Miscellaneous method utility methods.\n- * Mainly for internal use within the framework.\n- *\n- * @since 2.7.2\n- */\n-public interface MethodUtils {\n-\n-    /**\n-     * Return {@code true} if the provided method is a set method.\n-     * Otherwise, return {@code false}.\n-     *\n-     * @param method the method to check\n-     * @return whether the given method is setter method\n-     */\n-    public static boolean isSetter(Method method) {\n-        return method.getName().startsWith(\"set\")\n-                && !\"set\".equals(method.getName())\n-                && Modifier.isPublic(method.getModifiers())\n-                && method.getParameterCount() == 1\n-                && ClassUtils.isPrimitive(method.getParameterTypes()[0]);\n-    }\n-\n-    /**\n-     * Return {@code true} if the provided method is a get method.\n-     * Otherwise, return {@code false}.\n-     *\n-     * @param method the method to check\n-     * @return whether the given method is getter method\n-     */\n-    public static boolean isGetter(Method method) {\n-        String name = method.getName();\n-        return (name.startsWith(\"get\") || name.startsWith(\"is\"))\n-                && !\"get\".equals(name) && !\"is\".equals(name)\n-                && !\"getClass\".equals(name) && !\"getObject\".equals(name)\n-                && Modifier.isPublic(method.getModifiers())\n-                && method.getParameterTypes().length == 0\n-                && ClassUtils.isPrimitive(method.getReturnType());\n-    }\n-\n-    /**\n-     * Return {@code true} If this method is a meta method.\n-     * Otherwise, return {@code false}.\n-     *\n-     * @param method the method to check\n-     * @return whether the given method is meta method\n-     */\n-    public static boolean isMetaMethod(Method method) {\n-        String name = method.getName();\n-        if (!(name.startsWith(\"get\") || name.startsWith(\"is\"))) {\n-            return false;\n-        }\n-        if (\"get\".equals(name)) {\n-            return false;\n-        }\n-        if (\"getClass\".equals(name)) {\n-            return false;\n-        }\n-        if (!Modifier.isPublic(method.getModifiers())) {\n-            return false;\n-        }\n-        if (method.getParameterTypes().length != 0) {\n-            return false;\n-        }\n-        if (!ClassUtils.isPrimitive(method.getReturnType())) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    /**\n-     * Check if the method is a deprecated method. The standard is whether the {@link java.lang.Deprecated} annotation is declared on the class.\n-     * Return {@code true} if this annotation is present.\n-     * Otherwise, return {@code false}.\n-     *\n-     * @param method the method to check\n-     * @return whether the given method is deprecated method\n-     */\n-    public static boolean isDeprecated(Method method) {\n-        return method.getAnnotation(Deprecated.class) != null;\n-    }\n-\n-\n-    /**\n-     * Create an instance of {@link Predicate} for {@link Method} to exclude the specified declared class\n-     *\n-     * @param declaredClass the declared class to exclude\n-     * @return non-null\n-     * @since 2.7.6\n-     */\n-    static Predicate<Method> excludedDeclaredClass(Class<?> declaredClass) {\n-        return method -> !Objects.equals(declaredClass, method.getDeclaringClass());\n-    }\n-\n-    /**\n-     * Get all {@link Method methods} of the declared class\n-     *\n-     * @param declaringClass        the declared class\n-     * @param includeInheritedTypes include the inherited types, e,g. super classes or interfaces\n-     * @param publicOnly            only public method\n-     * @param methodsToFilter       (optional) the methods to be filtered\n-     * @return non-null read-only {@link List}\n-     * @since 2.7.6\n-     */\n-    static List<Method> getMethods(Class<?> declaringClass, boolean includeInheritedTypes, boolean publicOnly,\n-                                   Predicate<Method>... methodsToFilter) {\n-\n-        if (declaringClass == null || declaringClass.isPrimitive()) {\n-            return emptyList();\n-        }\n-\n-        // All declared classes\n-        List<Class<?>> declaredClasses = new LinkedList<>();\n-        // Add the top declaring class\n-        declaredClasses.add(declaringClass);\n-        // If the super classes are resolved, all them into declaredClasses\n-        if (includeInheritedTypes) {\n-            declaredClasses.addAll(getAllInheritedTypes(declaringClass));\n-        }\n-\n-        // All methods\n-        List<Method> allMethods = new LinkedList<>();\n-\n-        for (Class<?> classToSearch : declaredClasses) {\n-            Method[] methods = publicOnly ? classToSearch.getMethods() : classToSearch.getDeclaredMethods();\n-            // Add the declared methods or public methods\n-            for (Method method : methods) {\n-                allMethods.add(method);\n-            }\n-        }\n-\n-        return unmodifiableList(filterAll(allMethods, methodsToFilter));\n-    }\n-\n-    /**\n-     * Get all declared {@link Method methods} of the declared class, excluding the inherited methods\n-     *\n-     * @param declaringClass  the declared class\n-     * @param methodsToFilter (optional) the methods to be filtered\n-     * @return non-null read-only {@link List}\n-     * @see #getMethods(Class, boolean, boolean, Predicate[])\n-     * @since 2.7.6\n-     */\n-    static List<Method> getDeclaredMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\n-        return getMethods(declaringClass, false, false, methodsToFilter);\n-    }\n-\n-    /**\n-     * Get all public {@link Method methods} of the declared class, including the inherited methods.\n-     *\n-     * @param declaringClass  the declared class\n-     * @param methodsToFilter (optional) the methods to be filtered\n-     * @return non-null read-only {@link List}\n-     * @see #getMethods(Class, boolean, boolean, Predicate[])\n-     * @since 2.7.6\n-     */\n-    static List<Method> getMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\n-        return getMethods(declaringClass, false, true, methodsToFilter);\n-    }\n-\n-    /**\n-     * Get all declared {@link Method methods} of the declared class, including the inherited methods.\n-     *\n-     * @param declaringClass  the declared class\n-     * @param methodsToFilter (optional) the methods to be filtered\n-     * @return non-null read-only {@link List}\n-     * @see #getMethods(Class, boolean, boolean, Predicate[])\n-     * @since 2.7.6\n-     */\n-    static List<Method> getAllDeclaredMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\n-        return getMethods(declaringClass, true, false, methodsToFilter);\n-    }\n-\n-    /**\n-     * Get all public {@link Method methods} of the declared class, including the inherited methods.\n-     *\n-     * @param declaringClass  the declared class\n-     * @param methodsToFilter (optional) the methods to be filtered\n-     * @return non-null read-only {@link List}\n-     * @see #getMethods(Class, boolean, boolean, Predicate[])\n-     * @since 2.7.6\n-     */\n-    static List<Method> getAllMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\n-        return getMethods(declaringClass, true, true, methodsToFilter);\n-    }\n-\n-//    static List<Method> getOverriderMethods(Class<?> implementationClass, Class<?>... superTypes) {\n-\n-//\n-\n-//    }\n-\n-    /**\n-     * Find the {@link Method} by the the specified type and method name without the parameter types\n-     *\n-     * @param type       the target type\n-     * @param methodName the specified method name\n-     * @return if not found, return <code>null</code>\n-     * @since 2.7.6\n-     */\n-    static Method findMethod(Class type, String methodName) {\n-        return findMethod(type, methodName, EMPTY_CLASS_ARRAY);\n-    }\n-\n-    /**\n-     * Find the {@link Method} by the the specified type, method name and parameter types\n-     *\n-     * @param type           the target type\n-     * @param methodName     the method name\n-     * @param parameterTypes the parameter types\n-     * @return if not found, return <code>null</code>\n-     * @since 2.7.6\n-     */\n-    static Method findMethod(Class type, String methodName, Class<?>... parameterTypes) {\n-        Method method = null;\n-        try {\n-            if (type != null && isNotEmpty(methodName)) {\n-                method = type.getDeclaredMethod(methodName, parameterTypes);\n-            }\n-        } catch (NoSuchMethodException e) {\n-        }\n-        return method;\n-    }\n-\n-    /**\n-     * Invoke the target object and method\n-     *\n-     * @param object           the target object\n-     * @param methodName       the method name\n-     * @param methodParameters the method parameters\n-     * @param <T>              the return type\n-     * @return the target method's execution result\n-     * @since 2.7.6\n-     */\n-    static <T> T invokeMethod(Object object, String methodName, Object... methodParameters) {\n-        Class type = object.getClass();\n-        Class[] parameterTypes = resolveTypes(methodParameters);\n-        Method method = findMethod(type, methodName, parameterTypes);\n-        T value = null;\n-\n-        try {\n-            ReflectUtils.makeAccessible(method);\n-            value = (T) method.invoke(object, methodParameters);\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(e);\n-        }\n-\n-        return value;\n-    }\n-\n-\n-    /**\n-     * Tests whether one method, as a member of a given type,\n-     * overrides another method.\n-     *\n-     * @param overrider  the first method, possible overrider\n-     * @param overridden the second method, possibly being overridden\n-     * @return {@code true} if and only if the first method overrides\n-     * the second\n-     * @jls 8.4.8 Inheritance, Overriding, and Hiding\n-     * @jls 9.4.1 Inheritance and Overriding\n-     * @see Elements#overrides(ExecutableElement, ExecutableElement, TypeElement)\n-     */\n-    static boolean overrides(Method overrider, Method overridden) {\n-\n-        if (overrider == null || overridden == null) {\n-            return false;\n-        }\n-\n-        // equality comparison: If two methods are same\n-        if (Objects.equals(overrider, overridden)) {\n-            return false;\n-        }\n-\n-        // Modifiers comparison: Any method must be non-static method\n-        if (isStatic(overrider) || isStatic(overridden)) { //\n-            return false;\n-        }\n-\n-        // Modifiers comparison: the accessibility of any method must not be private\n-        if (isPrivate(overrider) || isPrivate(overridden)) {\n-            return false;\n-        }\n-\n-        // Inheritance comparison: The declaring class of overrider must be inherit from the overridden's\n-        if (!overridden.getDeclaringClass().isAssignableFrom(overrider.getDeclaringClass())) {\n-            return false;\n-        }\n-\n-        // Method comparison: must not be \"default\" method\n-        if (overrider.isDefault()) {\n-            return false;\n-        }\n-\n-        // Method comparison: The method name must be equal\n-        if (!Objects.equals(overrider.getName(), overridden.getName())) {\n-            return false;\n-        }\n-\n-        // Method comparison: The count of method parameters must be equal\n-        if (!Objects.equals(overrider.getParameterCount(), overridden.getParameterCount())) {\n-            return false;\n-        }\n-\n-        // Method comparison: Any parameter type of overrider must equal the overridden's\n-        for (int i = 0; i < overrider.getParameterCount(); i++) {\n-            if (!Objects.equals(overridden.getParameterTypes()[i], overrider.getParameterTypes()[i])) {\n-                return false;\n-            }\n-        }\n-\n-        // Method comparison: The return type of overrider must be inherit from the overridden's\n-        if (!overridden.getReturnType().isAssignableFrom(overrider.getReturnType())) {\n-            return false;\n-        }\n-\n-        // Throwable comparison: \"throws\" Throwable list will be ignored, trust the compiler verify\n-\n-        return true;\n-    }\n-\n-    /**\n-     * Find the nearest overridden {@link Method method} from the inherited class\n-     *\n-     * @param overrider the overrider {@link Method method}\n-     * @return if found, the overrider <code>method</code>, or <code>null</code>\n-     */\n-    static Method findNearestOverriddenMethod(Method overrider) {\n-        Class<?> declaringClass = overrider.getDeclaringClass();\n-        Method overriddenMethod = null;\n-        for (Class<?> inheritedType : getAllInheritedTypes(declaringClass)) {\n-            overriddenMethod = findOverriddenMethod(overrider, inheritedType);\n-            if (overriddenMethod != null) {\n-                break;\n-            }\n-        }\n-        return overriddenMethod;\n-    }\n-\n-    /**\n-     * Find the overridden {@link Method method} from the declaring class\n-     *\n-     * @param overrider      the overrider {@link Method method}\n-     * @param declaringClass the class that is declaring the overridden {@link Method method}\n-     * @return if found, the overrider <code>method</code>, or <code>null</code>\n-     */\n-    static Method findOverriddenMethod(Method overrider, Class<?> declaringClass) {\n-        List<Method> matchedMethods = getAllMethods(declaringClass, method -> overrides(overrider, method));\n-        return matchedMethods.isEmpty() ? null : matchedMethods.get(0);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import javax.lang.model.element.ExecutableElement;\r\n+import javax.lang.model.element.TypeElement;\r\n+import javax.lang.model.util.Elements;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+import java.util.function.Predicate;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.apache.dubbo.common.function.Streams.filterAll;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInheritedTypes;\r\n+import static org.apache.dubbo.common.utils.MemberUtils.isPrivate;\r\n+import static org.apache.dubbo.common.utils.MemberUtils.isStatic;\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.EMPTY_CLASS_ARRAY;\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.resolveTypes;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+\r\n+/**\r\n+ * Miscellaneous method utility methods.\r\n+ * Mainly for internal use within the framework.\r\n+ *\r\n+ * @since 2.7.2\r\n+ */\r\n+public interface MethodUtils {\r\n+\r\n+    /**\r\n+     * Return {@code true} if the provided method is a set method.\r\n+     * Otherwise, return {@code false}.\r\n+     *\r\n+     * @param method the method to check\r\n+     * @return whether the given method is setter method\r\n+     */\r\n+    public static boolean isSetter(Method method) {\r\n+        return method.getName().startsWith(\"set\")\r\n+                && !\"set\".equals(method.getName())\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && method.getParameterCount() == 1\r\n+                && ClassUtils.isPrimitive(method.getParameterTypes()[0]);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return {@code true} if the provided method is a get method.\r\n+     * Otherwise, return {@code false}.\r\n+     *\r\n+     * @param method the method to check\r\n+     * @return whether the given method is getter method\r\n+     */\r\n+    public static boolean isGetter(Method method) {\r\n+        String name = method.getName();\r\n+        return (name.startsWith(\"get\") || name.startsWith(\"is\"))\r\n+                && !\"get\".equals(name) && !\"is\".equals(name)\r\n+                && !\"getClass\".equals(name) && !\"getObject\".equals(name)\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && method.getParameterTypes().length == 0\r\n+                && ClassUtils.isPrimitive(method.getReturnType());\r\n+    }\r\n+\r\n+    /**\r\n+     * Return {@code true} If this method is a meta method.\r\n+     * Otherwise, return {@code false}.\r\n+     *\r\n+     * @param method the method to check\r\n+     * @return whether the given method is meta method\r\n+     */\r\n+    public static boolean isMetaMethod(Method method) {\r\n+        String name = method.getName();\r\n+        if (!(name.startsWith(\"get\") || name.startsWith(\"is\"))) {\r\n+            return false;\r\n+        }\r\n+        if (\"get\".equals(name)) {\r\n+            return false;\r\n+        }\r\n+        if (\"getClass\".equals(name)) {\r\n+            return false;\r\n+        }\r\n+        if (!Modifier.isPublic(method.getModifiers())) {\r\n+            return false;\r\n+        }\r\n+        if (method.getParameterTypes().length != 0) {\r\n+            return false;\r\n+        }\r\n+        if (!ClassUtils.isPrimitive(method.getReturnType())) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if the method is a deprecated method. The standard is whether the {@link java.lang.Deprecated} annotation is declared on the class.\r\n+     * Return {@code true} if this annotation is present.\r\n+     * Otherwise, return {@code false}.\r\n+     *\r\n+     * @param method the method to check\r\n+     * @return whether the given method is deprecated method\r\n+     */\r\n+    public static boolean isDeprecated(Method method) {\r\n+        return method.getAnnotation(Deprecated.class) != null;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Create an instance of {@link Predicate} for {@link Method} to exclude the specified declared class\r\n+     *\r\n+     * @param declaredClass the declared class to exclude\r\n+     * @return non-null\r\n+     * @since 2.7.6\r\n+     */\r\n+    static Predicate<Method> excludedDeclaredClass(Class<?> declaredClass) {\r\n+        return method -> !Objects.equals(declaredClass, method.getDeclaringClass());\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all {@link Method methods} of the declared class\r\n+     *\r\n+     * @param declaringClass        the declared class\r\n+     * @param includeInheritedTypes include the inherited types, e,g. super classes or interfaces\r\n+     * @param publicOnly            only public method\r\n+     * @param methodsToFilter       (optional) the methods to be filtered\r\n+     * @return non-null read-only {@link List}\r\n+     * @since 2.7.6\r\n+     */\r\n+    static List<Method> getMethods(Class<?> declaringClass, boolean includeInheritedTypes, boolean publicOnly,\r\n+                                   Predicate<Method>... methodsToFilter) {\r\n+\r\n+        if (declaringClass == null || declaringClass.isPrimitive()) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        // All declared classes\r\n+        List<Class<?>> declaredClasses = new LinkedList<>();\r\n+        // Add the top declaring class\r\n+        declaredClasses.add(declaringClass);\r\n+        // If the super classes are resolved, all them into declaredClasses\r\n+        if (includeInheritedTypes) {\r\n+            declaredClasses.addAll(getAllInheritedTypes(declaringClass));\r\n+        }\r\n+\r\n+        // All methods\r\n+        List<Method> allMethods = new LinkedList<>();\r\n+\r\n+        for (Class<?> classToSearch : declaredClasses) {\r\n+            Method[] methods = publicOnly ? classToSearch.getMethods() : classToSearch.getDeclaredMethods();\r\n+            // Add the declared methods or public methods\r\n+            for (Method method : methods) {\r\n+                allMethods.add(method);\r\n+            }\r\n+        }\r\n+\r\n+        return unmodifiableList(filterAll(allMethods, methodsToFilter));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all declared {@link Method methods} of the declared class, excluding the inherited methods\r\n+     *\r\n+     * @param declaringClass  the declared class\r\n+     * @param methodsToFilter (optional) the methods to be filtered\r\n+     * @return non-null read-only {@link List}\r\n+     * @see #getMethods(Class, boolean, boolean, Predicate[])\r\n+     * @since 2.7.6\r\n+     */\r\n+    static List<Method> getDeclaredMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\r\n+        return getMethods(declaringClass, false, false, methodsToFilter);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all public {@link Method methods} of the declared class, including the inherited methods.\r\n+     *\r\n+     * @param declaringClass  the declared class\r\n+     * @param methodsToFilter (optional) the methods to be filtered\r\n+     * @return non-null read-only {@link List}\r\n+     * @see #getMethods(Class, boolean, boolean, Predicate[])\r\n+     * @since 2.7.6\r\n+     */\r\n+    static List<Method> getMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\r\n+        return getMethods(declaringClass, false, true, methodsToFilter);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all declared {@link Method methods} of the declared class, including the inherited methods.\r\n+     *\r\n+     * @param declaringClass  the declared class\r\n+     * @param methodsToFilter (optional) the methods to be filtered\r\n+     * @return non-null read-only {@link List}\r\n+     * @see #getMethods(Class, boolean, boolean, Predicate[])\r\n+     * @since 2.7.6\r\n+     */\r\n+    static List<Method> getAllDeclaredMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\r\n+        return getMethods(declaringClass, true, false, methodsToFilter);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all public {@link Method methods} of the declared class, including the inherited methods.\r\n+     *\r\n+     * @param declaringClass  the declared class\r\n+     * @param methodsToFilter (optional) the methods to be filtered\r\n+     * @return non-null read-only {@link List}\r\n+     * @see #getMethods(Class, boolean, boolean, Predicate[])\r\n+     * @since 2.7.6\r\n+     */\r\n+    static List<Method> getAllMethods(Class<?> declaringClass, Predicate<Method>... methodsToFilter) {\r\n+        return getMethods(declaringClass, true, true, methodsToFilter);\r\n+    }\r\n+\r\n+//    static List<Method> getOverriderMethods(Class<?> implementationClass, Class<?>... superTypes) {\r\n+\r\n+//\r\n+\r\n+//    }\r\n+\r\n+    /**\r\n+     * Find the {@link Method} by the the specified type and method name without the parameter types\r\n+     *\r\n+     * @param type       the target type\r\n+     * @param methodName the specified method name\r\n+     * @return if not found, return <code>null</code>\r\n+     * @since 2.7.6\r\n+     */\r\n+    static Method findMethod(Class type, String methodName) {\r\n+        return findMethod(type, methodName, EMPTY_CLASS_ARRAY);\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Method} by the the specified type, method name and parameter types\r\n+     *\r\n+     * @param type           the target type\r\n+     * @param methodName     the method name\r\n+     * @param parameterTypes the parameter types\r\n+     * @return if not found, return <code>null</code>\r\n+     * @since 2.7.6\r\n+     */\r\n+    static Method findMethod(Class type, String methodName, Class<?>... parameterTypes) {\r\n+        Method method = null;\r\n+        try {\r\n+            if (type != null && isNotEmpty(methodName)) {\r\n+                method = type.getDeclaredMethod(methodName, parameterTypes);\r\n+            }\r\n+        } catch (NoSuchMethodException e) {\r\n+        }\r\n+        return method;\r\n+    }\r\n+\r\n+    /**\r\n+     * Invoke the target object and method\r\n+     *\r\n+     * @param object           the target object\r\n+     * @param methodName       the method name\r\n+     * @param methodParameters the method parameters\r\n+     * @param <T>              the return type\r\n+     * @return the target method's execution result\r\n+     * @since 2.7.6\r\n+     */\r\n+    static <T> T invokeMethod(Object object, String methodName, Object... methodParameters) {\r\n+        Class type = object.getClass();\r\n+        Class[] parameterTypes = resolveTypes(methodParameters);\r\n+        Method method = findMethod(type, methodName, parameterTypes);\r\n+        T value = null;\r\n+\r\n+        try {\r\n+            ReflectUtils.makeAccessible(method);\r\n+            value = (T) method.invoke(object, methodParameters);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(e);\r\n+        }\r\n+\r\n+        return value;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Tests whether one method, as a member of a given type,\r\n+     * overrides another method.\r\n+     *\r\n+     * @param overrider  the first method, possible overrider\r\n+     * @param overridden the second method, possibly being overridden\r\n+     * @return {@code true} if and only if the first method overrides\r\n+     * the second\r\n+     * @jls 8.4.8 Inheritance, Overriding, and Hiding\r\n+     * @jls 9.4.1 Inheritance and Overriding\r\n+     * @see Elements#overrides(ExecutableElement, ExecutableElement, TypeElement)\r\n+     */\r\n+    static boolean overrides(Method overrider, Method overridden) {\r\n+\r\n+        if (overrider == null || overridden == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // equality comparison: If two methods are same\r\n+        if (Objects.equals(overrider, overridden)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Modifiers comparison: Any method must be non-static method\r\n+        if (isStatic(overrider) || isStatic(overridden)) { //\r\n+            return false;\r\n+        }\r\n+\r\n+        // Modifiers comparison: the accessibility of any method must not be private\r\n+        if (isPrivate(overrider) || isPrivate(overridden)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Inheritance comparison: The declaring class of overrider must be inherit from the overridden's\r\n+        if (!overridden.getDeclaringClass().isAssignableFrom(overrider.getDeclaringClass())) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Method comparison: must not be \"default\" method\r\n+        if (overrider.isDefault()) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Method comparison: The method name must be equal\r\n+        if (!Objects.equals(overrider.getName(), overridden.getName())) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Method comparison: The count of method parameters must be equal\r\n+        if (!Objects.equals(overrider.getParameterCount(), overridden.getParameterCount())) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Method comparison: Any parameter type of overrider must equal the overridden's\r\n+        for (int i = 0; i < overrider.getParameterCount(); i++) {\r\n+            if (!Objects.equals(overridden.getParameterTypes()[i], overrider.getParameterTypes()[i])) {\r\n+                return false;\r\n+            }\r\n+        }\r\n+\r\n+        // Method comparison: The return type of overrider must be inherit from the overridden's\r\n+        if (!overridden.getReturnType().isAssignableFrom(overrider.getReturnType())) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // Throwable comparison: \"throws\" Throwable list will be ignored, trust the compiler verify\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the nearest overridden {@link Method method} from the inherited class\r\n+     *\r\n+     * @param overrider the overrider {@link Method method}\r\n+     * @return if found, the overrider <code>method</code>, or <code>null</code>\r\n+     */\r\n+    static Method findNearestOverriddenMethod(Method overrider) {\r\n+        Class<?> declaringClass = overrider.getDeclaringClass();\r\n+        Method overriddenMethod = null;\r\n+        for (Class<?> inheritedType : getAllInheritedTypes(declaringClass)) {\r\n+            overriddenMethod = findOverriddenMethod(overrider, inheritedType);\r\n+            if (overriddenMethod != null) {\r\n+                break;\r\n+            }\r\n+        }\r\n+        return overriddenMethod;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the overridden {@link Method method} from the declaring class\r\n+     *\r\n+     * @param overrider      the overrider {@link Method method}\r\n+     * @param declaringClass the class that is declaring the overridden {@link Method method}\r\n+     * @return if found, the overrider <code>method</code>, or <code>null</code>\r\n+     */\r\n+    static Method findOverriddenMethod(Method overrider, Class<?> declaringClass) {\r\n+        List<Method> matchedMethods = getAllMethods(declaringClass, method -> overrides(overrider, method));\r\n+        return matchedMethods.isEmpty() ? null : matchedMethods.get(0);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/Page.java", "source2": "org/apache/dubbo/common/utils/Page.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,87 +1,87 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.util.List;\n-\n-/**\n- * The model class of pagination\n- *\n- * @since 2.7.5\n- */\n-public interface Page<T> {\n-\n-    /**\n-     * Gets the offset of request\n-     *\n-     * @return positive integer\n-     */\n-    int getOffset();\n-\n-    /**\n-     * Gets the size of request for pagination query\n-     *\n-     * @return positive integer\n-     */\n-    int getPageSize();\n-\n-    /**\n-     * Gets the total amount of elements.\n-     *\n-     * @return the total amount of elements\n-     */\n-    int getTotalSize();\n-\n-    /**\n-     * Get the number of total pages.\n-     *\n-     * @return the number of total pages.\n-     */\n-    int getTotalPages();\n-\n-    /**\n-     * The data of current page\n-     *\n-     * @return non-null {@link List}\n-     */\n-    List<T> getData();\n-\n-    /**\n-     * The size of {@link #getData() data}\n-     *\n-     * @return positive integer\n-     */\n-    default int getDataSize() {\n-        return getData().size();\n-    }\n-\n-    /**\n-     * It indicates has next page or not\n-     *\n-     * @return if has , return <code>true</code>, or <code>false</code>\n-     */\n-    boolean hasNext();\n-\n-    /**\n-     * Returns whether the page has data at all.\n-     *\n-     * @return\n-     */\n-    default boolean hasData() {\n-        return getDataSize() > 0;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The model class of pagination\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Page<T> {\r\n+\r\n+    /**\r\n+     * Gets the offset of request\r\n+     *\r\n+     * @return positive integer\r\n+     */\r\n+    int getOffset();\r\n+\r\n+    /**\r\n+     * Gets the size of request for pagination query\r\n+     *\r\n+     * @return positive integer\r\n+     */\r\n+    int getPageSize();\r\n+\r\n+    /**\r\n+     * Gets the total amount of elements.\r\n+     *\r\n+     * @return the total amount of elements\r\n+     */\r\n+    int getTotalSize();\r\n+\r\n+    /**\r\n+     * Get the number of total pages.\r\n+     *\r\n+     * @return the number of total pages.\r\n+     */\r\n+    int getTotalPages();\r\n+\r\n+    /**\r\n+     * The data of current page\r\n+     *\r\n+     * @return non-null {@link List}\r\n+     */\r\n+    List<T> getData();\r\n+\r\n+    /**\r\n+     * The size of {@link #getData() data}\r\n+     *\r\n+     * @return positive integer\r\n+     */\r\n+    default int getDataSize() {\r\n+        return getData().size();\r\n+    }\r\n+\r\n+    /**\r\n+     * It indicates has next page or not\r\n+     *\r\n+     * @return if has , return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean hasNext();\r\n+\r\n+    /**\r\n+     * Returns whether the page has data at all.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    default boolean hasData() {\r\n+        return getDataSize() > 0;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/PathUtils.java", "source2": "org/apache/dubbo/common/utils/PathUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.util.LinkedHashSet;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-import static java.util.Arrays.asList;\n-import static org.apache.dubbo.common.utils.StringUtils.QUESTION_MASK;\n-import static org.apache.dubbo.common.utils.StringUtils.SLASH;\n-import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.StringUtils.replace;\n-\n-/**\n- * Path Utilities class\n- *\n- * @since 2.7.6\n- */\n-public interface PathUtils {\n-\n-    static String buildPath(String rootPath, String... subPaths) {\n-\n-        Set<String> paths = new LinkedHashSet<>();\n-        paths.add(rootPath);\n-        paths.addAll(asList(subPaths));\n-\n-        return normalize(paths.stream()\n-                .filter(StringUtils::isNotEmpty)\n-                .collect(Collectors.joining(SLASH)));\n-    }\n-\n-    /**\n-     * Normalize path:\n-     * <ol>\n-     * <li>To remove query string if presents</li>\n-     * <li>To remove duplicated slash(\"/\") if exists</li>\n-     * </ol>\n-     *\n-     * @param path path to be normalized\n-     * @return a normalized path if required\n-     */\n-    static String normalize(String path) {\n-        if (isEmpty(path)) {\n-            return SLASH;\n-        }\n-        String normalizedPath = path;\n-        int index = normalizedPath.indexOf(QUESTION_MASK);\n-        if (index > -1) {\n-            normalizedPath = normalizedPath.substring(0, index);\n-        }\n-\n-        while (normalizedPath.contains(\"//\")) {\n-            normalizedPath = replace(normalizedPath, \"//\", \"/\");\n-        }\n-\n-        return normalizedPath;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.util.LinkedHashSet;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static org.apache.dubbo.common.utils.StringUtils.QUESTION_MASK;\r\n+import static org.apache.dubbo.common.utils.StringUtils.SLASH;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.StringUtils.replace;\r\n+\r\n+/**\r\n+ * Path Utilities class\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface PathUtils {\r\n+\r\n+    static String buildPath(String rootPath, String... subPaths) {\r\n+\r\n+        Set<String> paths = new LinkedHashSet<>();\r\n+        paths.add(rootPath);\r\n+        paths.addAll(asList(subPaths));\r\n+\r\n+        return normalize(paths.stream()\r\n+                .filter(StringUtils::isNotEmpty)\r\n+                .collect(Collectors.joining(SLASH)));\r\n+    }\r\n+\r\n+    /**\r\n+     * Normalize path:\r\n+     * <ol>\r\n+     * <li>To remove query string if presents</li>\r\n+     * <li>To remove duplicated slash(\"/\") if exists</li>\r\n+     * </ol>\r\n+     *\r\n+     * @param path path to be normalized\r\n+     * @return a normalized path if required\r\n+     */\r\n+    static String normalize(String path) {\r\n+        if (isEmpty(path)) {\r\n+            return SLASH;\r\n+        }\r\n+        String normalizedPath = path;\r\n+        int index = normalizedPath.indexOf(QUESTION_MASK);\r\n+        if (index > -1) {\r\n+            normalizedPath = normalizedPath.substring(0, index);\r\n+        }\r\n+\r\n+        while (normalizedPath.contains(\"//\")) {\r\n+            normalizedPath = replace(normalizedPath, \"//\", \"/\");\r\n+        }\r\n+\r\n+        return normalizedPath;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ReflectUtils.java", "source2": "org/apache/dubbo/common/utils/ReflectUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,1395 +1,1395 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import javassist.CtClass;\n-import javassist.CtConstructor;\n-import javassist.CtMethod;\n-import javassist.NotFoundException;\n-\n-import java.beans.BeanInfo;\n-import java.beans.Introspector;\n-import java.lang.reflect.Array;\n-import java.lang.reflect.Constructor;\n-import java.lang.reflect.Field;\n-import java.lang.reflect.GenericArrayType;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.lang.reflect.ParameterizedType;\n-import java.lang.reflect.Type;\n-import java.lang.reflect.TypeVariable;\n-import java.net.URL;\n-import java.security.CodeSource;\n-import java.security.ProtectionDomain;\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.Date;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.Future;\n-import java.util.regex.Matcher;\n-import java.util.regex.Pattern;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.unmodifiableSet;\n-import static org.apache.dubbo.common.utils.ArrayUtils.isEmpty;\n-\n-/**\n- * ReflectUtils\n- */\n-public final class ReflectUtils {\n-\n-    /**\n-     * void(V).\n-     */\n-    public static final char JVM_VOID = 'V';\n-\n-    /**\n-     * boolean(Z).\n-     */\n-    public static final char JVM_BOOLEAN = 'Z';\n-\n-    /**\n-     * byte(B).\n-     */\n-    public static final char JVM_BYTE = 'B';\n-\n-    /**\n-     * char(C).\n-     */\n-    public static final char JVM_CHAR = 'C';\n-\n-    /**\n-     * double(D).\n-     */\n-    public static final char JVM_DOUBLE = 'D';\n-\n-    /**\n-     * float(F).\n-     */\n-    public static final char JVM_FLOAT = 'F';\n-\n-    /**\n-     * int(I).\n-     */\n-    public static final char JVM_INT = 'I';\n-\n-    /**\n-     * long(J).\n-     */\n-    public static final char JVM_LONG = 'J';\n-\n-    /**\n-     * short(S).\n-     */\n-    public static final char JVM_SHORT = 'S';\n-\n-    public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];\n-\n-    public static final String JAVA_IDENT_REGEX = \"(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\";\n-\n-    public static final String JAVA_NAME_REGEX = \"(?:\" + JAVA_IDENT_REGEX + \"(?:\\\\.\" + JAVA_IDENT_REGEX + \")*)\";\n-\n-    public static final String CLASS_DESC = \"(?:L\" + JAVA_IDENT_REGEX + \"(?:\\\\/\" + JAVA_IDENT_REGEX + \")*;)\";\n-\n-    public static final String ARRAY_DESC = \"(?:\\\\[+(?:(?:[VZBCDFIJS])|\" + CLASS_DESC + \"))\";\n-\n-    public static final String DESC_REGEX = \"(?:(?:[VZBCDFIJS])|\" + CLASS_DESC + \"|\" + ARRAY_DESC + \")\";\n-\n-    public static final Pattern DESC_PATTERN = Pattern.compile(DESC_REGEX);\n-\n-    public static final String METHOD_DESC_REGEX = \"(?:(\" + JAVA_IDENT_REGEX + \")?\\\\((\" + DESC_REGEX + \"*)\\\\)(\" + DESC_REGEX + \")?)\";\n-\n-    public static final Pattern METHOD_DESC_PATTERN = Pattern.compile(METHOD_DESC_REGEX);\n-\n-    public static final Pattern GETTER_METHOD_DESC_PATTERN = Pattern.compile(\"get([A-Z][_a-zA-Z0-9]*)\\\\(\\\\)(\" + DESC_REGEX + \")\");\n-\n-    public static final Pattern SETTER_METHOD_DESC_PATTERN = Pattern.compile(\"set([A-Z][_a-zA-Z0-9]*)\\\\((\" + DESC_REGEX + \")\\\\)V\");\n-\n-    public static final Pattern IS_HAS_CAN_METHOD_DESC_PATTERN = Pattern.compile(\"(?:is|has|can)([A-Z][_a-zA-Z0-9]*)\\\\(\\\\)Z\");\n-\n-    private static final ConcurrentMap<String, Class<?>> DESC_CLASS_CACHE = new ConcurrentHashMap<String, Class<?>>();\n-\n-    private static final ConcurrentMap<String, Class<?>> NAME_CLASS_CACHE = new ConcurrentHashMap<String, Class<?>>();\n-\n-    private static final ConcurrentMap<String, Method> SIGNATURE_METHODS_CACHE = new ConcurrentHashMap<String, Method>();\n-\n-    private static Map<Class<?>, Object> primitiveDefaults = new HashMap<>();\n-\n-    static {\n-        primitiveDefaults.put(int.class, 0);\n-        primitiveDefaults.put(long.class, 0L);\n-        primitiveDefaults.put(byte.class, (byte) 0);\n-        primitiveDefaults.put(char.class, (char) 0);\n-        primitiveDefaults.put(short.class, (short) 0);\n-        primitiveDefaults.put(float.class, (float) 0);\n-        primitiveDefaults.put(double.class, (double) 0);\n-        primitiveDefaults.put(boolean.class, false);\n-        primitiveDefaults.put(void.class, null);\n-    }\n-\n-    private ReflectUtils() {\n-    }\n-\n-    public static boolean isPrimitives(Class<?> cls) {\n-        while (cls.isArray()) {\n-            cls = cls.getComponentType();\n-        }\n-        return isPrimitive(cls);\n-    }\n-\n-    public static boolean isPrimitive(Class<?> cls) {\n-        return cls.isPrimitive() || cls == String.class || cls == Boolean.class || cls == Character.class\n-                || Number.class.isAssignableFrom(cls) || Date.class.isAssignableFrom(cls);\n-    }\n-\n-    public static Class<?> getBoxedClass(Class<?> c) {\n-        if (c == int.class) {\n-            c = Integer.class;\n-        } else if (c == boolean.class) {\n-            c = Boolean.class;\n-        } else if (c == long.class) {\n-            c = Long.class;\n-        } else if (c == float.class) {\n-            c = Float.class;\n-        } else if (c == double.class) {\n-            c = Double.class;\n-        } else if (c == char.class) {\n-            c = Character.class;\n-        } else if (c == byte.class) {\n-            c = Byte.class;\n-        } else if (c == short.class) {\n-            c = Short.class;\n-        }\n-        return c;\n-    }\n-\n-    /**\n-     * is compatible.\n-     *\n-     * @param c class.\n-     * @param o instance.\n-     * @return compatible or not.\n-     */\n-    public static boolean isCompatible(Class<?> c, Object o) {\n-        boolean pt = c.isPrimitive();\n-        if (o == null) {\n-            return !pt;\n-        }\n-\n-        if (pt) {\n-            c = getBoxedClass(c);\n-        }\n-\n-        return c == o.getClass() || c.isInstance(o);\n-    }\n-\n-    /**\n-     * is compatible.\n-     *\n-     * @param cs class array.\n-     * @param os object array.\n-     * @return compatible or not.\n-     */\n-    public static boolean isCompatible(Class<?>[] cs, Object[] os) {\n-        int len = cs.length;\n-        if (len != os.length) {\n-            return false;\n-        }\n-        if (len == 0) {\n-            return true;\n-        }\n-        for (int i = 0; i < len; i++) {\n-            if (!isCompatible(cs[i], os[i])) {\n-                return false;\n-            }\n-        }\n-        return true;\n-    }\n-\n-    public static String getCodeBase(Class<?> cls) {\n-        if (cls == null) {\n-            return null;\n-        }\n-        ProtectionDomain domain = cls.getProtectionDomain();\n-        if (domain == null) {\n-            return null;\n-        }\n-        CodeSource source = domain.getCodeSource();\n-        if (source == null) {\n-            return null;\n-        }\n-        URL location = source.getLocation();\n-        if (location == null) {\n-            return null;\n-        }\n-        return location.getFile();\n-    }\n-\n-    /**\n-     * get name.\n-     * java.lang.Object[][].class => \"java.lang.Object[][]\"\n-     *\n-     * @param c class.\n-     * @return name.\n-     */\n-    public static String getName(Class<?> c) {\n-        if (c.isArray()) {\n-            StringBuilder sb = new StringBuilder();\n-            do {\n-                sb.append(\"[]\");\n-                c = c.getComponentType();\n-            }\n-            while (c.isArray());\n-\n-            return c.getName() + sb.toString();\n-        }\n-        return c.getName();\n-    }\n-\n-    public static Class<?> getGenericClass(Class<?> cls) {\n-        return getGenericClass(cls, 0);\n-    }\n-\n-    public static Class<?> getGenericClass(Class<?> cls, int i) {\n-        try {\n-            ParameterizedType parameterizedType = ((ParameterizedType) cls.getGenericInterfaces()[0]);\n-            Object genericClass = parameterizedType.getActualTypeArguments()[i];\n-\n-            // handle nested generic type\n-            if (genericClass instanceof ParameterizedType) {\n-                return (Class<?>) ((ParameterizedType) genericClass).getRawType();\n-            }\n-\n-            // handle array generic type\n-            if (genericClass instanceof GenericArrayType) {\n-                return (Class<?>) ((GenericArrayType) genericClass).getGenericComponentType();\n-            }\n-\n-            // Requires JDK 7 or higher, Foo<int[]> is no longer GenericArrayType\n-            if (((Class) genericClass).isArray()) {\n-                return ((Class) genericClass).getComponentType();\n-            }\n-            return (Class<?>) genericClass;\n-        } catch (Throwable e) {\n-            throw new IllegalArgumentException(cls.getName() + \" generic type undefined!\", e);\n-        }\n-    }\n-\n-    /**\n-     * get method name.\n-     * \"void do(int)\", \"void do()\", \"int do(java.lang.String,boolean)\"\n-     *\n-     * @param m method.\n-     * @return name.\n-     */\n-    public static String getName(final Method m) {\n-        StringBuilder ret = new StringBuilder();\n-        ret.append(getName(m.getReturnType())).append(' ');\n-        ret.append(m.getName()).append('(');\n-        Class<?>[] parameterTypes = m.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            if (i > 0) {\n-                ret.append(',');\n-            }\n-            ret.append(getName(parameterTypes[i]));\n-        }\n-        ret.append(')');\n-        return ret.toString();\n-    }\n-\n-    public static String getSignature(String methodName, Class<?>[] parameterTypes) {\n-        StringBuilder sb = new StringBuilder(methodName);\n-        sb.append(\"(\");\n-        if (parameterTypes != null && parameterTypes.length > 0) {\n-            boolean first = true;\n-            for (Class<?> type : parameterTypes) {\n-                if (first) {\n-                    first = false;\n-                } else {\n-                    sb.append(\",\");\n-                }\n-                sb.append(type.getName());\n-            }\n-        }\n-        sb.append(\")\");\n-        return sb.toString();\n-    }\n-\n-    /**\n-     * get constructor name.\n-     * \"()\", \"(java.lang.String,int)\"\n-     *\n-     * @param c constructor.\n-     * @return name.\n-     */\n-    public static String getName(final Constructor<?> c) {\n-        StringBuilder ret = new StringBuilder(\"(\");\n-        Class<?>[] parameterTypes = c.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            if (i > 0) {\n-                ret.append(',');\n-            }\n-            ret.append(getName(parameterTypes[i]));\n-        }\n-        ret.append(')');\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get class desc.\n-     * boolean[].class => \"[Z\"\n-     * Object.class => \"Ljava/lang/Object;\"\n-     *\n-     * @param c class.\n-     * @return desc.\n-     * @throws NotFoundException\n-     */\n-    public static String getDesc(Class<?> c) {\n-        StringBuilder ret = new StringBuilder();\n-\n-        while (c.isArray()) {\n-            ret.append('[');\n-            c = c.getComponentType();\n-        }\n-\n-        if (c.isPrimitive()) {\n-            String t = c.getName();\n-            if (\"void\".equals(t)) {\n-                ret.append(JVM_VOID);\n-            } else if (\"boolean\".equals(t)) {\n-                ret.append(JVM_BOOLEAN);\n-            } else if (\"byte\".equals(t)) {\n-                ret.append(JVM_BYTE);\n-            } else if (\"char\".equals(t)) {\n-                ret.append(JVM_CHAR);\n-            } else if (\"double\".equals(t)) {\n-                ret.append(JVM_DOUBLE);\n-            } else if (\"float\".equals(t)) {\n-                ret.append(JVM_FLOAT);\n-            } else if (\"int\".equals(t)) {\n-                ret.append(JVM_INT);\n-            } else if (\"long\".equals(t)) {\n-                ret.append(JVM_LONG);\n-            } else if (\"short\".equals(t)) {\n-                ret.append(JVM_SHORT);\n-            }\n-        } else {\n-            ret.append('L');\n-            ret.append(c.getName().replace('.', '/'));\n-            ret.append(';');\n-        }\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get class array desc.\n-     * [int.class, boolean[].class, Object.class] => \"I[ZLjava/lang/Object;\"\n-     *\n-     * @param cs class array.\n-     * @return desc.\n-     * @throws NotFoundException\n-     */\n-    public static String getDesc(final Class<?>[] cs) {\n-        if (cs.length == 0) {\n-            return \"\";\n-        }\n-\n-        StringBuilder sb = new StringBuilder(64);\n-        for (Class<?> c : cs) {\n-            sb.append(getDesc(c));\n-        }\n-        return sb.toString();\n-    }\n-\n-    /**\n-     * get method desc.\n-     * int do(int arg1) => \"do(I)I\"\n-     * void do(String arg1,boolean arg2) => \"do(Ljava/lang/String;Z)V\"\n-     *\n-     * @param m method.\n-     * @return desc.\n-     */\n-    public static String getDesc(final Method m) {\n-        StringBuilder ret = new StringBuilder(m.getName()).append('(');\n-        Class<?>[] parameterTypes = m.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            ret.append(getDesc(parameterTypes[i]));\n-        }\n-        ret.append(')').append(getDesc(m.getReturnType()));\n-        return ret.toString();\n-    }\n-\n-    public static String[] getDescArray(final Method m) {\n-        Class<?>[] parameterTypes = m.getParameterTypes();\n-        String[] arr = new String[parameterTypes.length];\n-\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            arr[i] = getDesc(parameterTypes[i]);\n-        }\n-        return arr;\n-    }\n-\n-    /**\n-     * get constructor desc.\n-     * \"()V\", \"(Ljava/lang/String;I)V\"\n-     *\n-     * @param c constructor.\n-     * @return desc\n-     */\n-    public static String getDesc(final Constructor<?> c) {\n-        StringBuilder ret = new StringBuilder(\"(\");\n-        Class<?>[] parameterTypes = c.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            ret.append(getDesc(parameterTypes[i]));\n-        }\n-        ret.append(')').append('V');\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get method desc.\n-     * \"(I)I\", \"()V\", \"(Ljava/lang/String;Z)V\"\n-     *\n-     * @param m method.\n-     * @return desc.\n-     */\n-    public static String getDescWithoutMethodName(Method m) {\n-        StringBuilder ret = new StringBuilder();\n-        ret.append('(');\n-        Class<?>[] parameterTypes = m.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            ret.append(getDesc(parameterTypes[i]));\n-        }\n-        ret.append(')').append(getDesc(m.getReturnType()));\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get class desc.\n-     * Object.class => \"Ljava/lang/Object;\"\n-     * boolean[].class => \"[Z\"\n-     *\n-     * @param c class.\n-     * @return desc.\n-     * @throws NotFoundException\n-     */\n-    public static String getDesc(final CtClass c) throws NotFoundException {\n-        StringBuilder ret = new StringBuilder();\n-        if (c.isArray()) {\n-            ret.append('[');\n-            ret.append(getDesc(c.getComponentType()));\n-        } else if (c.isPrimitive()) {\n-            String t = c.getName();\n-            if (\"void\".equals(t)) {\n-                ret.append(JVM_VOID);\n-            } else if (\"boolean\".equals(t)) {\n-                ret.append(JVM_BOOLEAN);\n-            } else if (\"byte\".equals(t)) {\n-                ret.append(JVM_BYTE);\n-            } else if (\"char\".equals(t)) {\n-                ret.append(JVM_CHAR);\n-            } else if (\"double\".equals(t)) {\n-                ret.append(JVM_DOUBLE);\n-            } else if (\"float\".equals(t)) {\n-                ret.append(JVM_FLOAT);\n-            } else if (\"int\".equals(t)) {\n-                ret.append(JVM_INT);\n-            } else if (\"long\".equals(t)) {\n-                ret.append(JVM_LONG);\n-            } else if (\"short\".equals(t)) {\n-                ret.append(JVM_SHORT);\n-            }\n-        } else {\n-            ret.append('L');\n-            ret.append(c.getName().replace('.', '/'));\n-            ret.append(';');\n-        }\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get method desc.\n-     * \"do(I)I\", \"do()V\", \"do(Ljava/lang/String;Z)V\"\n-     *\n-     * @param m method.\n-     * @return desc.\n-     */\n-    public static String getDesc(final CtMethod m) throws NotFoundException {\n-        StringBuilder ret = new StringBuilder(m.getName()).append('(');\n-        CtClass[] parameterTypes = m.getParameterTypes();\n-        for (CtClass parameterType : parameterTypes) {\n-            ret.append(getDesc(parameterType));\n-        }\n-        ret.append(')').append(getDesc(m.getReturnType()));\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get constructor desc.\n-     * \"()V\", \"(Ljava/lang/String;I)V\"\n-     *\n-     * @param c constructor.\n-     * @return desc\n-     */\n-    public static String getDesc(final CtConstructor c) throws NotFoundException {\n-        StringBuilder ret = new StringBuilder(\"(\");\n-        CtClass[] parameterTypes = c.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            ret.append(getDesc(parameterTypes[i]));\n-        }\n-        ret.append(')').append('V');\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * get method desc.\n-     * \"(I)I\", \"()V\", \"(Ljava/lang/String;Z)V\".\n-     *\n-     * @param m method.\n-     * @return desc.\n-     */\n-    public static String getDescWithoutMethodName(final CtMethod m) throws NotFoundException {\n-        StringBuilder ret = new StringBuilder();\n-        ret.append('(');\n-        CtClass[] parameterTypes = m.getParameterTypes();\n-        for (int i = 0; i < parameterTypes.length; i++) {\n-            ret.append(getDesc(parameterTypes[i]));\n-        }\n-        ret.append(')').append(getDesc(m.getReturnType()));\n-        return ret.toString();\n-    }\n-\n-    /**\n-     * name to desc.\n-     * java.util.Map[][] => \"[[Ljava/util/Map;\"\n-     *\n-     * @param name name.\n-     * @return desc.\n-     */\n-    public static String name2desc(String name) {\n-        StringBuilder sb = new StringBuilder();\n-        int c = 0, index = name.indexOf('[');\n-        if (index > 0) {\n-            c = (name.length() - index) / 2;\n-            name = name.substring(0, index);\n-        }\n-        while (c-- > 0) {\n-            sb.append(\"[\");\n-        }\n-        if (\"void\".equals(name)) {\n-            sb.append(JVM_VOID);\n-        } else if (\"boolean\".equals(name)) {\n-            sb.append(JVM_BOOLEAN);\n-        } else if (\"byte\".equals(name)) {\n-            sb.append(JVM_BYTE);\n-        } else if (\"char\".equals(name)) {\n-            sb.append(JVM_CHAR);\n-        } else if (\"double\".equals(name)) {\n-            sb.append(JVM_DOUBLE);\n-        } else if (\"float\".equals(name)) {\n-            sb.append(JVM_FLOAT);\n-        } else if (\"int\".equals(name)) {\n-            sb.append(JVM_INT);\n-        } else if (\"long\".equals(name)) {\n-            sb.append(JVM_LONG);\n-        } else if (\"short\".equals(name)) {\n-            sb.append(JVM_SHORT);\n-        } else {\n-            sb.append('L').append(name.replace('.', '/')).append(';');\n-        }\n-        return sb.toString();\n-    }\n-\n-    /**\n-     * desc to name.\n-     * \"[[I\" => \"int[][]\"\n-     *\n-     * @param desc desc.\n-     * @return name.\n-     */\n-    public static String desc2name(String desc) {\n-        StringBuilder sb = new StringBuilder();\n-        int c = desc.lastIndexOf('[') + 1;\n-        if (desc.length() == c + 1) {\n-            switch (desc.charAt(c)) {\n-                case JVM_VOID: {\n-                    sb.append(\"void\");\n-                    break;\n-                }\n-                case JVM_BOOLEAN: {\n-                    sb.append(\"boolean\");\n-                    break;\n-                }\n-                case JVM_BYTE: {\n-                    sb.append(\"byte\");\n-                    break;\n-                }\n-                case JVM_CHAR: {\n-                    sb.append(\"char\");\n-                    break;\n-                }\n-                case JVM_DOUBLE: {\n-                    sb.append(\"double\");\n-                    break;\n-                }\n-                case JVM_FLOAT: {\n-                    sb.append(\"float\");\n-                    break;\n-                }\n-                case JVM_INT: {\n-                    sb.append(\"int\");\n-                    break;\n-                }\n-                case JVM_LONG: {\n-                    sb.append(\"long\");\n-                    break;\n-                }\n-                case JVM_SHORT: {\n-                    sb.append(\"short\");\n-                    break;\n-                }\n-                default:\n-                    throw new RuntimeException();\n-            }\n-        } else {\n-            sb.append(desc.substring(c + 1, desc.length() - 1).replace('/', '.'));\n-        }\n-        while (c-- > 0) {\n-            sb.append(\"[]\");\n-        }\n-        return sb.toString();\n-    }\n-\n-    public static Class<?> forName(String name) {\n-        try {\n-            return name2class(name);\n-        } catch (ClassNotFoundException e) {\n-            throw new IllegalStateException(\"Not found class \" + name + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    public static Class<?> forName(ClassLoader cl, String name) {\n-        try {\n-            return name2class(cl, name);\n-        } catch (ClassNotFoundException e) {\n-            throw new IllegalStateException(\"Not found class \" + name + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    /**\n-     * name to class.\n-     * \"boolean\" => boolean.class\n-     * \"java.util.Map[][]\" => java.util.Map[][].class\n-     *\n-     * @param name name.\n-     * @return Class instance.\n-     */\n-    public static Class<?> name2class(String name) throws ClassNotFoundException {\n-        return name2class(ClassUtils.getClassLoader(), name);\n-    }\n-\n-    /**\n-     * name to class.\n-     * \"boolean\" => boolean.class\n-     * \"java.util.Map[][]\" => java.util.Map[][].class\n-     *\n-     * @param cl   ClassLoader instance.\n-     * @param name name.\n-     * @return Class instance.\n-     */\n-    private static Class<?> name2class(ClassLoader cl, String name) throws ClassNotFoundException {\n-        int c = 0, index = name.indexOf('[');\n-        if (index > 0) {\n-            c = (name.length() - index) / 2;\n-            name = name.substring(0, index);\n-        }\n-        if (c > 0) {\n-            StringBuilder sb = new StringBuilder();\n-            while (c-- > 0) {\n-                sb.append(\"[\");\n-            }\n-\n-            if (\"void\".equals(name)) {\n-                sb.append(JVM_VOID);\n-            } else if (\"boolean\".equals(name)) {\n-                sb.append(JVM_BOOLEAN);\n-            } else if (\"byte\".equals(name)) {\n-                sb.append(JVM_BYTE);\n-            } else if (\"char\".equals(name)) {\n-                sb.append(JVM_CHAR);\n-            } else if (\"double\".equals(name)) {\n-                sb.append(JVM_DOUBLE);\n-            } else if (\"float\".equals(name)) {\n-                sb.append(JVM_FLOAT);\n-            } else if (\"int\".equals(name)) {\n-                sb.append(JVM_INT);\n-            } else if (\"long\".equals(name)) {\n-                sb.append(JVM_LONG);\n-            } else if (\"short\".equals(name)) {\n-                sb.append(JVM_SHORT);\n-            } else {\n-                // \"java.lang.Object\" ==> \"Ljava.lang.Object;\"\n-                sb.append('L').append(name).append(';');\n-            }\n-            name = sb.toString();\n-        } else {\n-            if (\"void\".equals(name)) {\n-                return void.class;\n-            }\n-            if (\"boolean\".equals(name)) {\n-                return boolean.class;\n-            }\n-            if (\"byte\".equals(name)) {\n-                return byte.class;\n-            }\n-            if (\"char\".equals(name)) {\n-                return char.class;\n-            }\n-            if (\"double\".equals(name)) {\n-                return double.class;\n-            }\n-            if (\"float\".equals(name)) {\n-                return float.class;\n-            }\n-            if (\"int\".equals(name)) {\n-                return int.class;\n-            }\n-            if (\"long\".equals(name)) {\n-                return long.class;\n-            }\n-            if (\"short\".equals(name)) {\n-                return short.class;\n-            }\n-        }\n-\n-        if (cl == null) {\n-            cl = ClassUtils.getClassLoader();\n-        }\n-        Class<?> clazz = NAME_CLASS_CACHE.get(name);\n-        if (clazz == null) {\n-            clazz = Class.forName(name, true, cl);\n-            NAME_CLASS_CACHE.put(name, clazz);\n-        }\n-        return clazz;\n-    }\n-\n-    /**\n-     * desc to class.\n-     * \"[Z\" => boolean[].class\n-     * \"[[Ljava/util/Map;\" => java.util.Map[][].class\n-     *\n-     * @param desc desc.\n-     * @return Class instance.\n-     * @throws ClassNotFoundException\n-     */\n-    public static Class<?> desc2class(String desc) throws ClassNotFoundException {\n-        return desc2class(ClassUtils.getClassLoader(), desc);\n-    }\n-\n-    /**\n-     * desc to class.\n-     * \"[Z\" => boolean[].class\n-     * \"[[Ljava/util/Map;\" => java.util.Map[][].class\n-     *\n-     * @param cl   ClassLoader instance.\n-     * @param desc desc.\n-     * @return Class instance.\n-     * @throws ClassNotFoundException\n-     */\n-    private static Class<?> desc2class(ClassLoader cl, String desc) throws ClassNotFoundException {\n-        switch (desc.charAt(0)) {\n-            case JVM_VOID:\n-                return void.class;\n-            case JVM_BOOLEAN:\n-                return boolean.class;\n-            case JVM_BYTE:\n-                return byte.class;\n-            case JVM_CHAR:\n-                return char.class;\n-            case JVM_DOUBLE:\n-                return double.class;\n-            case JVM_FLOAT:\n-                return float.class;\n-            case JVM_INT:\n-                return int.class;\n-            case JVM_LONG:\n-                return long.class;\n-            case JVM_SHORT:\n-                return short.class;\n-            case 'L':\n-                // \"Ljava/lang/Object;\" ==> \"java.lang.Object\"\n-                desc = desc.substring(1, desc.length() - 1).replace('/', '.');\n-                break;\n-            case '[':\n-                // \"[[Ljava/lang/Object;\" ==> \"[[Ljava.lang.Object;\"\n-                desc = desc.replace('/', '.');\n-                break;\n-            default:\n-                throw new ClassNotFoundException(\"Class not found: \" + desc);\n-        }\n-\n-        if (cl == null) {\n-            cl = ClassUtils.getClassLoader();\n-        }\n-        Class<?> clazz = DESC_CLASS_CACHE.get(desc);\n-        if (clazz == null) {\n-            clazz = Class.forName(desc, true, cl);\n-            DESC_CLASS_CACHE.put(desc, clazz);\n-        }\n-        return clazz;\n-    }\n-\n-    /**\n-     * get class array instance.\n-     *\n-     * @param desc desc.\n-     * @return Class class array.\n-     * @throws ClassNotFoundException\n-     */\n-    public static Class<?>[] desc2classArray(String desc) throws ClassNotFoundException {\n-        Class<?>[] ret = desc2classArray(ClassUtils.getClassLoader(), desc);\n-        return ret;\n-    }\n-\n-    /**\n-     * get class array instance.\n-     *\n-     * @param cl   ClassLoader instance.\n-     * @param desc desc.\n-     * @return Class[] class array.\n-     * @throws ClassNotFoundException\n-     */\n-    private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException {\n-        if (desc.length() == 0) {\n-            return EMPTY_CLASS_ARRAY;\n-        }\n-\n-        List<Class<?>> cs = new ArrayList<Class<?>>();\n-        Matcher m = DESC_PATTERN.matcher(desc);\n-        while (m.find()) {\n-            cs.add(desc2class(cl, m.group()));\n-        }\n-        return cs.toArray(EMPTY_CLASS_ARRAY);\n-    }\n-\n-    /**\n-     * Find method from method signature\n-     *\n-     * @param clazz      Target class to find method\n-     * @param methodName Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2\n-     * @return target method\n-     * @throws NoSuchMethodException\n-     * @throws ClassNotFoundException\n-     * @throws IllegalStateException  when multiple methods are found (overridden method when parameter info is not provided)\n-     * @deprecated Recommend {@link MethodUtils#findMethod(Class, String, Class[])}\n-     */\n-    @Deprecated\n-    public static Method findMethodByMethodSignature(Class<?> clazz, String methodName, String[] parameterTypes)\n-            throws NoSuchMethodException, ClassNotFoundException {\n-        String signature = clazz.getName() + \".\" + methodName;\n-        if (parameterTypes != null && parameterTypes.length > 0) {\n-            signature += StringUtils.join(parameterTypes);\n-        }\n-        Method method = SIGNATURE_METHODS_CACHE.get(signature);\n-        if (method != null) {\n-            return method;\n-        }\n-        if (parameterTypes == null) {\n-            List<Method> finded = new ArrayList<Method>();\n-            for (Method m : clazz.getMethods()) {\n-                if (m.getName().equals(methodName)) {\n-                    finded.add(m);\n-                }\n-            }\n-            if (finded.isEmpty()) {\n-                throw new NoSuchMethodException(\"No such method \" + methodName + \" in class \" + clazz);\n-            }\n-            if (finded.size() > 1) {\n-                String msg = String.format(\"Not unique method for method name(%s) in class(%s), find %d methods.\",\n-                        methodName, clazz.getName(), finded.size());\n-                throw new IllegalStateException(msg);\n-            }\n-            method = finded.get(0);\n-        } else {\n-            Class<?>[] types = new Class<?>[parameterTypes.length];\n-            for (int i = 0; i < parameterTypes.length; i++) {\n-                types[i] = ReflectUtils.name2class(parameterTypes[i]);\n-            }\n-            method = clazz.getMethod(methodName, types);\n-\n-        }\n-        SIGNATURE_METHODS_CACHE.put(signature, method);\n-        return method;\n-    }\n-\n-    /**\n-     * @param clazz      Target class to find method\n-     * @param methodName Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2\n-     * @return target method\n-     * @throws NoSuchMethodException\n-     * @throws ClassNotFoundException\n-     * @throws IllegalStateException  when multiple methods are found (overridden method when parameter info is not provided)\n-     * @deprecated Recommend {@link MethodUtils#findMethod(Class, String, Class[])}\n-     */\n-    @Deprecated\n-    public static Method findMethodByMethodName(Class<?> clazz, String methodName)\n-            throws NoSuchMethodException, ClassNotFoundException {\n-        return findMethodByMethodSignature(clazz, methodName, null);\n-    }\n-\n-    public static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType) throws NoSuchMethodException {\n-        Constructor<?> targetConstructor;\n-        try {\n-            targetConstructor = clazz.getConstructor(new Class<?>[]{paramType});\n-        } catch (NoSuchMethodException e) {\n-            targetConstructor = null;\n-            Constructor<?>[] constructors = clazz.getConstructors();\n-            for (Constructor<?> constructor : constructors) {\n-                if (Modifier.isPublic(constructor.getModifiers())\n-                        && constructor.getParameterTypes().length == 1\n-                        && constructor.getParameterTypes()[0].isAssignableFrom(paramType)) {\n-                    targetConstructor = constructor;\n-                    break;\n-                }\n-            }\n-            if (targetConstructor == null) {\n-                throw e;\n-            }\n-        }\n-        return targetConstructor;\n-    }\n-\n-    /**\n-     * Check if one object is the implementation for a given interface.\n-     * <p>\n-     * This method will not trigger classloading for the given interface, therefore it will not lead to error when\n-     * the given interface is not visible by the classloader\n-     *\n-     * @param obj                Object to examine\n-     * @param interfaceClazzName The given interface\n-     * @return true if the object implements the given interface, otherwise return false\n-     */\n-    public static boolean isInstance(Object obj, String interfaceClazzName) {\n-        for (Class<?> clazz = obj.getClass();\n-             clazz != null && !clazz.equals(Object.class);\n-             clazz = clazz.getSuperclass()) {\n-            Class<?>[] interfaces = clazz.getInterfaces();\n-            for (Class<?> itf : interfaces) {\n-                if (itf.getName().equals(interfaceClazzName)) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return false;\n-    }\n-\n-    public static Object getEmptyObject(Class<?> returnType) {\n-        return getEmptyObject(returnType, new HashMap<>(), 0);\n-    }\n-\n-    private static Object getEmptyObject(Class<?> returnType, Map<Class<?>, Object> emptyInstances, int level) {\n-        if (level > 2) {\n-            return null;\n-        }\n-        if (returnType == null) {\n-            return null;\n-        }\n-        if (returnType == boolean.class || returnType == Boolean.class) {\n-            return false;\n-        }\n-        if (returnType == char.class || returnType == Character.class) {\n-            return '\\0';\n-        }\n-        if (returnType == byte.class || returnType == Byte.class) {\n-            return (byte) 0;\n-        }\n-        if (returnType == short.class || returnType == Short.class) {\n-            return (short) 0;\n-        }\n-        if (returnType == int.class || returnType == Integer.class) {\n-            return 0;\n-        }\n-        if (returnType == long.class || returnType == Long.class) {\n-            return 0L;\n-        }\n-        if (returnType == float.class || returnType == Float.class) {\n-            return 0F;\n-        }\n-        if (returnType == double.class || returnType == Double.class) {\n-            return 0D;\n-        }\n-        if (returnType.isArray()) {\n-            return Array.newInstance(returnType.getComponentType(), 0);\n-        }\n-        if (returnType.isAssignableFrom(ArrayList.class)) {\n-            return new ArrayList<>(0);\n-        }\n-        if (returnType.isAssignableFrom(HashSet.class)) {\n-            return new HashSet<>(0);\n-        }\n-        if (returnType.isAssignableFrom(HashMap.class)) {\n-            return new HashMap<>(0);\n-        }\n-        if (String.class.equals(returnType)) {\n-            return \"\";\n-        }\n-        if (returnType.isInterface()) {\n-            return null;\n-        }\n-\n-        try {\n-            Object value = emptyInstances.get(returnType);\n-            if (value == null) {\n-                value = returnType.getDeclaredConstructor().newInstance();\n-                emptyInstances.put(returnType, value);\n-            }\n-            Class<?> cls = value.getClass();\n-            while (cls != null && cls != Object.class) {\n-                Field[] fields = cls.getDeclaredFields();\n-                for (Field field : fields) {\n-                    if (field.isSynthetic()) {\n-                        continue;\n-                    }\n-                    Object property = getEmptyObject(field.getType(), emptyInstances, level + 1);\n-                    if (property != null) {\n-                        try {\n-                            ReflectUtils.makeAccessible(field);\n-                            field.set(value, property);\n-                        } catch (Throwable ignored) {\n-                        }\n-                    }\n-                }\n-                cls = cls.getSuperclass();\n-            }\n-            return value;\n-        } catch (Throwable e) {\n-            return null;\n-        }\n-    }\n-\n-    public static Object defaultReturn(Method m) {\n-        if (m.getReturnType().isPrimitive()) {\n-            return primitiveDefaults.get(m.getReturnType());\n-        } else {\n-            return null;\n-        }\n-    }\n-\n-    public static Object defaultReturn(Class<?> classType) {\n-        if (classType != null && classType.isPrimitive()) {\n-            return primitiveDefaults.get(classType);\n-        } else {\n-            return null;\n-        }\n-    }\n-\n-    public static boolean isBeanPropertyReadMethod(Method method) {\n-        return method != null\n-                && Modifier.isPublic(method.getModifiers())\n-                && !Modifier.isStatic(method.getModifiers())\n-                && method.getReturnType() != void.class\n-                && method.getDeclaringClass() != Object.class\n-                && method.getParameterTypes().length == 0\n-                && ((method.getName().startsWith(\"get\") && method.getName().length() > 3)\n-                || (method.getName().startsWith(\"is\") && method.getName().length() > 2));\n-    }\n-\n-    public static String getPropertyNameFromBeanReadMethod(Method method) {\n-        if (isBeanPropertyReadMethod(method)) {\n-            if (method.getName().startsWith(\"get\")) {\n-                return method.getName().substring(3, 4).toLowerCase()\n-                        + method.getName().substring(4);\n-            }\n-            if (method.getName().startsWith(\"is\")) {\n-                return method.getName().substring(2, 3).toLowerCase()\n-                        + method.getName().substring(3);\n-            }\n-        }\n-        return null;\n-    }\n-\n-    public static boolean isBeanPropertyWriteMethod(Method method) {\n-        return method != null\n-                && Modifier.isPublic(method.getModifiers())\n-                && !Modifier.isStatic(method.getModifiers())\n-                && method.getDeclaringClass() != Object.class\n-                && method.getParameterTypes().length == 1\n-                && method.getName().startsWith(\"set\")\n-                && method.getName().length() > 3;\n-    }\n-\n-    public static String getPropertyNameFromBeanWriteMethod(Method method) {\n-        if (isBeanPropertyWriteMethod(method)) {\n-            return method.getName().substring(3, 4).toLowerCase()\n-                    + method.getName().substring(4);\n-        }\n-        return null;\n-    }\n-\n-    public static boolean isPublicInstanceField(Field field) {\n-        return Modifier.isPublic(field.getModifiers())\n-                && !Modifier.isStatic(field.getModifiers())\n-                && !Modifier.isFinal(field.getModifiers())\n-                && !field.isSynthetic();\n-    }\n-\n-    public static Map<String, Field> getBeanPropertyFields(Class cl) {\n-        Map<String, Field> properties = new HashMap<String, Field>();\n-        for (; cl != null; cl = cl.getSuperclass()) {\n-            Field[] fields = cl.getDeclaredFields();\n-            for (Field field : fields) {\n-                if (Modifier.isTransient(field.getModifiers())\n-                        || Modifier.isStatic(field.getModifiers())) {\n-                    continue;\n-                }\n-                ReflectUtils.makeAccessible(field);\n-\n-                properties.put(field.getName(), field);\n-            }\n-        }\n-\n-        return properties;\n-    }\n-\n-    public static Map<String, Method> getBeanPropertyReadMethods(Class cl) {\n-        Map<String, Method> properties = new HashMap<String, Method>();\n-        for (; cl != null; cl = cl.getSuperclass()) {\n-            Method[] methods = cl.getDeclaredMethods();\n-            for (Method method : methods) {\n-                if (isBeanPropertyReadMethod(method)) {\n-                    ReflectUtils.makeAccessible(method);\n-                    String property = getPropertyNameFromBeanReadMethod(method);\n-                    properties.put(property, method);\n-                }\n-            }\n-        }\n-\n-        return properties;\n-    }\n-\n-    public static Type[] getReturnTypes(Method method) {\n-        Class<?> returnType = method.getReturnType();\n-        Type genericReturnType = method.getGenericReturnType();\n-        if (Future.class.isAssignableFrom(returnType)) {\n-            if (genericReturnType instanceof ParameterizedType) {\n-                Type actualArgType = ((ParameterizedType) genericReturnType).getActualTypeArguments()[0];\n-                if (actualArgType instanceof ParameterizedType) {\n-                    returnType = (Class<?>) ((ParameterizedType) actualArgType).getRawType();\n-                    genericReturnType = actualArgType;\n-                } else if (actualArgType instanceof TypeVariable) {\n-                    returnType = (Class<?>) ((TypeVariable<?>) actualArgType).getBounds()[0];\n-                    genericReturnType = actualArgType;\n-                } else {\n-                    returnType = (Class<?>) actualArgType;\n-                    genericReturnType = returnType;\n-                }\n-            } else {\n-                returnType = null;\n-                genericReturnType = null;\n-            }\n-        }\n-        return new Type[]{returnType, genericReturnType};\n-    }\n-\n-    /**\n-     * Find the {@link Set} of {@link ParameterizedType}\n-     *\n-     * @param sourceClass the source {@link Class class}\n-     * @return non-null read-only {@link Set}\n-     * @since 2.7.5\n-     */\n-    public static Set<ParameterizedType> findParameterizedTypes(Class<?> sourceClass) {\n-        // Add Generic Interfaces\n-        List<Type> genericTypes = new LinkedList<>(asList(sourceClass.getGenericInterfaces()));\n-        // Add Generic Super Class\n-        genericTypes.add(sourceClass.getGenericSuperclass());\n-\n-        Set<ParameterizedType> parameterizedTypes = genericTypes.stream()\n-                .filter(type -> type instanceof ParameterizedType)// filter ParameterizedType\n-                .map(ParameterizedType.class::cast)  // cast to ParameterizedType\n-                .collect(Collectors.toSet());\n-\n-        if (parameterizedTypes.isEmpty()) { // If not found, try to search super types recursively\n-            genericTypes.stream()\n-                    .filter(type -> type instanceof Class)\n-                    .map(Class.class::cast)\n-                    .forEach(superClass -> parameterizedTypes.addAll(findParameterizedTypes(superClass)));\n-        }\n-\n-        return unmodifiableSet(parameterizedTypes);                     // build as a Set\n-\n-    }\n-\n-    /**\n-     * Find the hierarchical types from the source {@link Class class} by specified {@link Class type}.\n-     *\n-     * @param sourceClass the source {@link Class class}\n-     * @param matchType   the type to match\n-     * @param <T>         the type to match\n-     * @return non-null read-only {@link Set}\n-     * @since 2.7.5\n-     */\n-    public static <T> Set<Class<T>> findHierarchicalTypes(Class<?> sourceClass, Class<T> matchType) {\n-        if (sourceClass == null) {\n-            return Collections.emptySet();\n-        }\n-\n-        Set<Class<T>> hierarchicalTypes = new LinkedHashSet<>();\n-\n-        if (matchType.isAssignableFrom(sourceClass)) {\n-            hierarchicalTypes.add((Class<T>) sourceClass);\n-        }\n-\n-        // Find all super classes\n-        hierarchicalTypes.addAll(findHierarchicalTypes(sourceClass.getSuperclass(), matchType));\n-\n-        return unmodifiableSet(hierarchicalTypes);\n-    }\n-\n-    /**\n-     * Get the value from the specified bean and its getter method.\n-     *\n-     * @param bean       the bean instance\n-     * @param methodName the name of getter\n-     * @param <T>        the type of property value\n-     * @return\n-     * @since 2.7.5\n-     */\n-    public static <T> T getProperty(Object bean, String methodName) {\n-        Class<?> beanClass = bean.getClass();\n-        BeanInfo beanInfo = null;\n-        T propertyValue = null;\n-\n-        try {\n-            beanInfo = Introspector.getBeanInfo(beanClass);\n-            propertyValue = (T) Stream.of(beanInfo.getMethodDescriptors())\n-                    .filter(methodDescriptor -> methodName.equals(methodDescriptor.getName()))\n-                    .findFirst()\n-                    .map(method -> {\n-                        try {\n-                            return method.getMethod().invoke(bean);\n-                        } catch (Exception e) {\n-                            //ignore\n-                        }\n-                        return null;\n-                    }).get();\n-        } catch (Exception e) {\n-\n-        }\n-        return propertyValue;\n-    }\n-\n-    /**\n-     * Resolve the types of the specified values\n-     *\n-     * @param values the values\n-     * @return If can't be resolved, return {@link ReflectUtils#EMPTY_CLASS_ARRAY empty class array}\n-     * @since 2.7.6\n-     */\n-    public static Class[] resolveTypes(Object... values) {\n-\n-        if (isEmpty(values)) {\n-            return EMPTY_CLASS_ARRAY;\n-        }\n-\n-        int size = values.length;\n-\n-        Class[] types = new Class[size];\n-\n-        for (int i = 0; i < size; i++) {\n-            Object value = values[i];\n-            types[i] = value == null ? null : value.getClass();\n-        }\n-\n-        return types;\n-    }\n-\n-    /**\n-     * Copy from org.springframework.util.ReflectionUtils.\n-     * Make the given method accessible, explicitly setting it accessible if\n-     * necessary. The {@code setAccessible(true)} method is only called\n-     * when actually necessary, to avoid unnecessary conflicts with a JVM\n-     * SecurityManager (if active).\n-     * @param method the method to make accessible\n-     * @see java.lang.reflect.Method#setAccessible\n-     */\n-    @SuppressWarnings(\"deprecation\")  // on JDK 9\n-    public static void makeAccessible(Method method) {\n-        if ((!Modifier.isPublic(method.getModifiers()) ||\n-                !Modifier.isPublic(method.getDeclaringClass().getModifiers())) && !method.isAccessible()) {\n-            method.setAccessible(true);\n-        }\n-    }\n-\n-    /**\n-     * Copy from org.springframework.util.ReflectionUtils.\n-     * Make the given field accessible, explicitly setting it accessible if\n-     * necessary. The {@code setAccessible(true)} method is only called\n-     * when actually necessary, to avoid unnecessary conflicts with a JVM\n-     * SecurityManager (if active).\n-     * @param field the field to make accessible\n-     * @see java.lang.reflect.Field#setAccessible\n-     */\n-    @SuppressWarnings(\"deprecation\")  // on JDK 9\n-    public static void makeAccessible(Field field) {\n-        if ((!Modifier.isPublic(field.getModifiers()) ||\n-                !Modifier.isPublic(field.getDeclaringClass().getModifiers()) ||\n-                Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) {\n-            field.setAccessible(true);\n-        }\n-    }\n-\n-    /**\n-     * Copy from org.springframework.util.ReflectionUtils.\n-     * Make the given constructor accessible, explicitly setting it accessible\n-     * if necessary. The {@code setAccessible(true)} method is only called\n-     * when actually necessary, to avoid unnecessary conflicts with a JVM\n-     * SecurityManager (if active).\n-     * @param ctor the constructor to make accessible\n-     * @see java.lang.reflect.Constructor#setAccessible\n-     */\n-    @SuppressWarnings(\"deprecation\")  // on JDK 9\n-    public static void makeAccessible(Constructor<?> ctor) {\n-        if ((!Modifier.isPublic(ctor.getModifiers()) ||\n-                !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) && !ctor.isAccessible()) {\n-            ctor.setAccessible(true);\n-        }\n-    }\n-\n-    public static boolean checkZeroArgConstructor(Class clazz) {\n-        try {\n-            clazz.getDeclaredConstructor();\n-            return true;\n-        } catch (NoSuchMethodException e) {\n-            return false;\n-        }\n-    }\n-\n-    public static boolean isJdk(Class clazz) {\n-        return clazz.getName().startsWith(\"java.\") || clazz.getName().startsWith(\"javax.\");\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import javassist.CtClass;\r\n+import javassist.CtConstructor;\r\n+import javassist.CtMethod;\r\n+import javassist.NotFoundException;\r\n+\r\n+import java.beans.BeanInfo;\r\n+import java.beans.Introspector;\r\n+import java.lang.reflect.Array;\r\n+import java.lang.reflect.Constructor;\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.GenericArrayType;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.lang.reflect.Type;\r\n+import java.lang.reflect.TypeVariable;\r\n+import java.net.URL;\r\n+import java.security.CodeSource;\r\n+import java.security.ProtectionDomain;\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.Date;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.Future;\r\n+import java.util.regex.Matcher;\r\n+import java.util.regex.Pattern;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.unmodifiableSet;\r\n+import static org.apache.dubbo.common.utils.ArrayUtils.isEmpty;\r\n+\r\n+/**\r\n+ * ReflectUtils\r\n+ */\r\n+public final class ReflectUtils {\r\n+\r\n+    /**\r\n+     * void(V).\r\n+     */\r\n+    public static final char JVM_VOID = 'V';\r\n+\r\n+    /**\r\n+     * boolean(Z).\r\n+     */\r\n+    public static final char JVM_BOOLEAN = 'Z';\r\n+\r\n+    /**\r\n+     * byte(B).\r\n+     */\r\n+    public static final char JVM_BYTE = 'B';\r\n+\r\n+    /**\r\n+     * char(C).\r\n+     */\r\n+    public static final char JVM_CHAR = 'C';\r\n+\r\n+    /**\r\n+     * double(D).\r\n+     */\r\n+    public static final char JVM_DOUBLE = 'D';\r\n+\r\n+    /**\r\n+     * float(F).\r\n+     */\r\n+    public static final char JVM_FLOAT = 'F';\r\n+\r\n+    /**\r\n+     * int(I).\r\n+     */\r\n+    public static final char JVM_INT = 'I';\r\n+\r\n+    /**\r\n+     * long(J).\r\n+     */\r\n+    public static final char JVM_LONG = 'J';\r\n+\r\n+    /**\r\n+     * short(S).\r\n+     */\r\n+    public static final char JVM_SHORT = 'S';\r\n+\r\n+    public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];\r\n+\r\n+    public static final String JAVA_IDENT_REGEX = \"(?:[_$a-zA-Z][_$a-zA-Z0-9]*)\";\r\n+\r\n+    public static final String JAVA_NAME_REGEX = \"(?:\" + JAVA_IDENT_REGEX + \"(?:\\\\.\" + JAVA_IDENT_REGEX + \")*)\";\r\n+\r\n+    public static final String CLASS_DESC = \"(?:L\" + JAVA_IDENT_REGEX + \"(?:\\\\/\" + JAVA_IDENT_REGEX + \")*;)\";\r\n+\r\n+    public static final String ARRAY_DESC = \"(?:\\\\[+(?:(?:[VZBCDFIJS])|\" + CLASS_DESC + \"))\";\r\n+\r\n+    public static final String DESC_REGEX = \"(?:(?:[VZBCDFIJS])|\" + CLASS_DESC + \"|\" + ARRAY_DESC + \")\";\r\n+\r\n+    public static final Pattern DESC_PATTERN = Pattern.compile(DESC_REGEX);\r\n+\r\n+    public static final String METHOD_DESC_REGEX = \"(?:(\" + JAVA_IDENT_REGEX + \")?\\\\((\" + DESC_REGEX + \"*)\\\\)(\" + DESC_REGEX + \")?)\";\r\n+\r\n+    public static final Pattern METHOD_DESC_PATTERN = Pattern.compile(METHOD_DESC_REGEX);\r\n+\r\n+    public static final Pattern GETTER_METHOD_DESC_PATTERN = Pattern.compile(\"get([A-Z][_a-zA-Z0-9]*)\\\\(\\\\)(\" + DESC_REGEX + \")\");\r\n+\r\n+    public static final Pattern SETTER_METHOD_DESC_PATTERN = Pattern.compile(\"set([A-Z][_a-zA-Z0-9]*)\\\\((\" + DESC_REGEX + \")\\\\)V\");\r\n+\r\n+    public static final Pattern IS_HAS_CAN_METHOD_DESC_PATTERN = Pattern.compile(\"(?:is|has|can)([A-Z][_a-zA-Z0-9]*)\\\\(\\\\)Z\");\r\n+\r\n+    private static final ConcurrentMap<String, Class<?>> DESC_CLASS_CACHE = new ConcurrentHashMap<String, Class<?>>();\r\n+\r\n+    private static final ConcurrentMap<String, Class<?>> NAME_CLASS_CACHE = new ConcurrentHashMap<String, Class<?>>();\r\n+\r\n+    private static final ConcurrentMap<String, Method> SIGNATURE_METHODS_CACHE = new ConcurrentHashMap<String, Method>();\r\n+\r\n+    private static Map<Class<?>, Object> primitiveDefaults = new HashMap<>();\r\n+\r\n+    static {\r\n+        primitiveDefaults.put(int.class, 0);\r\n+        primitiveDefaults.put(long.class, 0L);\r\n+        primitiveDefaults.put(byte.class, (byte) 0);\r\n+        primitiveDefaults.put(char.class, (char) 0);\r\n+        primitiveDefaults.put(short.class, (short) 0);\r\n+        primitiveDefaults.put(float.class, (float) 0);\r\n+        primitiveDefaults.put(double.class, (double) 0);\r\n+        primitiveDefaults.put(boolean.class, false);\r\n+        primitiveDefaults.put(void.class, null);\r\n+    }\r\n+\r\n+    private ReflectUtils() {\r\n+    }\r\n+\r\n+    public static boolean isPrimitives(Class<?> cls) {\r\n+        while (cls.isArray()) {\r\n+            cls = cls.getComponentType();\r\n+        }\r\n+        return isPrimitive(cls);\r\n+    }\r\n+\r\n+    public static boolean isPrimitive(Class<?> cls) {\r\n+        return cls.isPrimitive() || cls == String.class || cls == Boolean.class || cls == Character.class\r\n+                || Number.class.isAssignableFrom(cls) || Date.class.isAssignableFrom(cls);\r\n+    }\r\n+\r\n+    public static Class<?> getBoxedClass(Class<?> c) {\r\n+        if (c == int.class) {\r\n+            c = Integer.class;\r\n+        } else if (c == boolean.class) {\r\n+            c = Boolean.class;\r\n+        } else if (c == long.class) {\r\n+            c = Long.class;\r\n+        } else if (c == float.class) {\r\n+            c = Float.class;\r\n+        } else if (c == double.class) {\r\n+            c = Double.class;\r\n+        } else if (c == char.class) {\r\n+            c = Character.class;\r\n+        } else if (c == byte.class) {\r\n+            c = Byte.class;\r\n+        } else if (c == short.class) {\r\n+            c = Short.class;\r\n+        }\r\n+        return c;\r\n+    }\r\n+\r\n+    /**\r\n+     * is compatible.\r\n+     *\r\n+     * @param c class.\r\n+     * @param o instance.\r\n+     * @return compatible or not.\r\n+     */\r\n+    public static boolean isCompatible(Class<?> c, Object o) {\r\n+        boolean pt = c.isPrimitive();\r\n+        if (o == null) {\r\n+            return !pt;\r\n+        }\r\n+\r\n+        if (pt) {\r\n+            c = getBoxedClass(c);\r\n+        }\r\n+\r\n+        return c == o.getClass() || c.isInstance(o);\r\n+    }\r\n+\r\n+    /**\r\n+     * is compatible.\r\n+     *\r\n+     * @param cs class array.\r\n+     * @param os object array.\r\n+     * @return compatible or not.\r\n+     */\r\n+    public static boolean isCompatible(Class<?>[] cs, Object[] os) {\r\n+        int len = cs.length;\r\n+        if (len != os.length) {\r\n+            return false;\r\n+        }\r\n+        if (len == 0) {\r\n+            return true;\r\n+        }\r\n+        for (int i = 0; i < len; i++) {\r\n+            if (!isCompatible(cs[i], os[i])) {\r\n+                return false;\r\n+            }\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    public static String getCodeBase(Class<?> cls) {\r\n+        if (cls == null) {\r\n+            return null;\r\n+        }\r\n+        ProtectionDomain domain = cls.getProtectionDomain();\r\n+        if (domain == null) {\r\n+            return null;\r\n+        }\r\n+        CodeSource source = domain.getCodeSource();\r\n+        if (source == null) {\r\n+            return null;\r\n+        }\r\n+        URL location = source.getLocation();\r\n+        if (location == null) {\r\n+            return null;\r\n+        }\r\n+        return location.getFile();\r\n+    }\r\n+\r\n+    /**\r\n+     * get name.\r\n+     * java.lang.Object[][].class => \"java.lang.Object[][]\"\r\n+     *\r\n+     * @param c class.\r\n+     * @return name.\r\n+     */\r\n+    public static String getName(Class<?> c) {\r\n+        if (c.isArray()) {\r\n+            StringBuilder sb = new StringBuilder();\r\n+            do {\r\n+                sb.append(\"[]\");\r\n+                c = c.getComponentType();\r\n+            }\r\n+            while (c.isArray());\r\n+\r\n+            return c.getName() + sb.toString();\r\n+        }\r\n+        return c.getName();\r\n+    }\r\n+\r\n+    public static Class<?> getGenericClass(Class<?> cls) {\r\n+        return getGenericClass(cls, 0);\r\n+    }\r\n+\r\n+    public static Class<?> getGenericClass(Class<?> cls, int i) {\r\n+        try {\r\n+            ParameterizedType parameterizedType = ((ParameterizedType) cls.getGenericInterfaces()[0]);\r\n+            Object genericClass = parameterizedType.getActualTypeArguments()[i];\r\n+\r\n+            // handle nested generic type\r\n+            if (genericClass instanceof ParameterizedType) {\r\n+                return (Class<?>) ((ParameterizedType) genericClass).getRawType();\r\n+            }\r\n+\r\n+            // handle array generic type\r\n+            if (genericClass instanceof GenericArrayType) {\r\n+                return (Class<?>) ((GenericArrayType) genericClass).getGenericComponentType();\r\n+            }\r\n+\r\n+            // Requires JDK 7 or higher, Foo<int[]> is no longer GenericArrayType\r\n+            if (((Class) genericClass).isArray()) {\r\n+                return ((Class) genericClass).getComponentType();\r\n+            }\r\n+            return (Class<?>) genericClass;\r\n+        } catch (Throwable e) {\r\n+            throw new IllegalArgumentException(cls.getName() + \" generic type undefined!\", e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get method name.\r\n+     * \"void do(int)\", \"void do()\", \"int do(java.lang.String,boolean)\"\r\n+     *\r\n+     * @param m method.\r\n+     * @return name.\r\n+     */\r\n+    public static String getName(final Method m) {\r\n+        StringBuilder ret = new StringBuilder();\r\n+        ret.append(getName(m.getReturnType())).append(' ');\r\n+        ret.append(m.getName()).append('(');\r\n+        Class<?>[] parameterTypes = m.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            if (i > 0) {\r\n+                ret.append(',');\r\n+            }\r\n+            ret.append(getName(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')');\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    public static String getSignature(String methodName, Class<?>[] parameterTypes) {\r\n+        StringBuilder sb = new StringBuilder(methodName);\r\n+        sb.append(\"(\");\r\n+        if (parameterTypes != null && parameterTypes.length > 0) {\r\n+            boolean first = true;\r\n+            for (Class<?> type : parameterTypes) {\r\n+                if (first) {\r\n+                    first = false;\r\n+                } else {\r\n+                    sb.append(\",\");\r\n+                }\r\n+                sb.append(type.getName());\r\n+            }\r\n+        }\r\n+        sb.append(\")\");\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get constructor name.\r\n+     * \"()\", \"(java.lang.String,int)\"\r\n+     *\r\n+     * @param c constructor.\r\n+     * @return name.\r\n+     */\r\n+    public static String getName(final Constructor<?> c) {\r\n+        StringBuilder ret = new StringBuilder(\"(\");\r\n+        Class<?>[] parameterTypes = c.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            if (i > 0) {\r\n+                ret.append(',');\r\n+            }\r\n+            ret.append(getName(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')');\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get class desc.\r\n+     * boolean[].class => \"[Z\"\r\n+     * Object.class => \"Ljava/lang/Object;\"\r\n+     *\r\n+     * @param c class.\r\n+     * @return desc.\r\n+     * @throws NotFoundException\r\n+     */\r\n+    public static String getDesc(Class<?> c) {\r\n+        StringBuilder ret = new StringBuilder();\r\n+\r\n+        while (c.isArray()) {\r\n+            ret.append('[');\r\n+            c = c.getComponentType();\r\n+        }\r\n+\r\n+        if (c.isPrimitive()) {\r\n+            String t = c.getName();\r\n+            if (\"void\".equals(t)) {\r\n+                ret.append(JVM_VOID);\r\n+            } else if (\"boolean\".equals(t)) {\r\n+                ret.append(JVM_BOOLEAN);\r\n+            } else if (\"byte\".equals(t)) {\r\n+                ret.append(JVM_BYTE);\r\n+            } else if (\"char\".equals(t)) {\r\n+                ret.append(JVM_CHAR);\r\n+            } else if (\"double\".equals(t)) {\r\n+                ret.append(JVM_DOUBLE);\r\n+            } else if (\"float\".equals(t)) {\r\n+                ret.append(JVM_FLOAT);\r\n+            } else if (\"int\".equals(t)) {\r\n+                ret.append(JVM_INT);\r\n+            } else if (\"long\".equals(t)) {\r\n+                ret.append(JVM_LONG);\r\n+            } else if (\"short\".equals(t)) {\r\n+                ret.append(JVM_SHORT);\r\n+            }\r\n+        } else {\r\n+            ret.append('L');\r\n+            ret.append(c.getName().replace('.', '/'));\r\n+            ret.append(';');\r\n+        }\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get class array desc.\r\n+     * [int.class, boolean[].class, Object.class] => \"I[ZLjava/lang/Object;\"\r\n+     *\r\n+     * @param cs class array.\r\n+     * @return desc.\r\n+     * @throws NotFoundException\r\n+     */\r\n+    public static String getDesc(final Class<?>[] cs) {\r\n+        if (cs.length == 0) {\r\n+            return \"\";\r\n+        }\r\n+\r\n+        StringBuilder sb = new StringBuilder(64);\r\n+        for (Class<?> c : cs) {\r\n+            sb.append(getDesc(c));\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get method desc.\r\n+     * int do(int arg1) => \"do(I)I\"\r\n+     * void do(String arg1,boolean arg2) => \"do(Ljava/lang/String;Z)V\"\r\n+     *\r\n+     * @param m method.\r\n+     * @return desc.\r\n+     */\r\n+    public static String getDesc(final Method m) {\r\n+        StringBuilder ret = new StringBuilder(m.getName()).append('(');\r\n+        Class<?>[] parameterTypes = m.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            ret.append(getDesc(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')').append(getDesc(m.getReturnType()));\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    public static String[] getDescArray(final Method m) {\r\n+        Class<?>[] parameterTypes = m.getParameterTypes();\r\n+        String[] arr = new String[parameterTypes.length];\r\n+\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            arr[i] = getDesc(parameterTypes[i]);\r\n+        }\r\n+        return arr;\r\n+    }\r\n+\r\n+    /**\r\n+     * get constructor desc.\r\n+     * \"()V\", \"(Ljava/lang/String;I)V\"\r\n+     *\r\n+     * @param c constructor.\r\n+     * @return desc\r\n+     */\r\n+    public static String getDesc(final Constructor<?> c) {\r\n+        StringBuilder ret = new StringBuilder(\"(\");\r\n+        Class<?>[] parameterTypes = c.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            ret.append(getDesc(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')').append('V');\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get method desc.\r\n+     * \"(I)I\", \"()V\", \"(Ljava/lang/String;Z)V\"\r\n+     *\r\n+     * @param m method.\r\n+     * @return desc.\r\n+     */\r\n+    public static String getDescWithoutMethodName(Method m) {\r\n+        StringBuilder ret = new StringBuilder();\r\n+        ret.append('(');\r\n+        Class<?>[] parameterTypes = m.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            ret.append(getDesc(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')').append(getDesc(m.getReturnType()));\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get class desc.\r\n+     * Object.class => \"Ljava/lang/Object;\"\r\n+     * boolean[].class => \"[Z\"\r\n+     *\r\n+     * @param c class.\r\n+     * @return desc.\r\n+     * @throws NotFoundException\r\n+     */\r\n+    public static String getDesc(final CtClass c) throws NotFoundException {\r\n+        StringBuilder ret = new StringBuilder();\r\n+        if (c.isArray()) {\r\n+            ret.append('[');\r\n+            ret.append(getDesc(c.getComponentType()));\r\n+        } else if (c.isPrimitive()) {\r\n+            String t = c.getName();\r\n+            if (\"void\".equals(t)) {\r\n+                ret.append(JVM_VOID);\r\n+            } else if (\"boolean\".equals(t)) {\r\n+                ret.append(JVM_BOOLEAN);\r\n+            } else if (\"byte\".equals(t)) {\r\n+                ret.append(JVM_BYTE);\r\n+            } else if (\"char\".equals(t)) {\r\n+                ret.append(JVM_CHAR);\r\n+            } else if (\"double\".equals(t)) {\r\n+                ret.append(JVM_DOUBLE);\r\n+            } else if (\"float\".equals(t)) {\r\n+                ret.append(JVM_FLOAT);\r\n+            } else if (\"int\".equals(t)) {\r\n+                ret.append(JVM_INT);\r\n+            } else if (\"long\".equals(t)) {\r\n+                ret.append(JVM_LONG);\r\n+            } else if (\"short\".equals(t)) {\r\n+                ret.append(JVM_SHORT);\r\n+            }\r\n+        } else {\r\n+            ret.append('L');\r\n+            ret.append(c.getName().replace('.', '/'));\r\n+            ret.append(';');\r\n+        }\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get method desc.\r\n+     * \"do(I)I\", \"do()V\", \"do(Ljava/lang/String;Z)V\"\r\n+     *\r\n+     * @param m method.\r\n+     * @return desc.\r\n+     */\r\n+    public static String getDesc(final CtMethod m) throws NotFoundException {\r\n+        StringBuilder ret = new StringBuilder(m.getName()).append('(');\r\n+        CtClass[] parameterTypes = m.getParameterTypes();\r\n+        for (CtClass parameterType : parameterTypes) {\r\n+            ret.append(getDesc(parameterType));\r\n+        }\r\n+        ret.append(')').append(getDesc(m.getReturnType()));\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get constructor desc.\r\n+     * \"()V\", \"(Ljava/lang/String;I)V\"\r\n+     *\r\n+     * @param c constructor.\r\n+     * @return desc\r\n+     */\r\n+    public static String getDesc(final CtConstructor c) throws NotFoundException {\r\n+        StringBuilder ret = new StringBuilder(\"(\");\r\n+        CtClass[] parameterTypes = c.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            ret.append(getDesc(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')').append('V');\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * get method desc.\r\n+     * \"(I)I\", \"()V\", \"(Ljava/lang/String;Z)V\".\r\n+     *\r\n+     * @param m method.\r\n+     * @return desc.\r\n+     */\r\n+    public static String getDescWithoutMethodName(final CtMethod m) throws NotFoundException {\r\n+        StringBuilder ret = new StringBuilder();\r\n+        ret.append('(');\r\n+        CtClass[] parameterTypes = m.getParameterTypes();\r\n+        for (int i = 0; i < parameterTypes.length; i++) {\r\n+            ret.append(getDesc(parameterTypes[i]));\r\n+        }\r\n+        ret.append(')').append(getDesc(m.getReturnType()));\r\n+        return ret.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * name to desc.\r\n+     * java.util.Map[][] => \"[[Ljava/util/Map;\"\r\n+     *\r\n+     * @param name name.\r\n+     * @return desc.\r\n+     */\r\n+    public static String name2desc(String name) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        int c = 0, index = name.indexOf('[');\r\n+        if (index > 0) {\r\n+            c = (name.length() - index) / 2;\r\n+            name = name.substring(0, index);\r\n+        }\r\n+        while (c-- > 0) {\r\n+            sb.append(\"[\");\r\n+        }\r\n+        if (\"void\".equals(name)) {\r\n+            sb.append(JVM_VOID);\r\n+        } else if (\"boolean\".equals(name)) {\r\n+            sb.append(JVM_BOOLEAN);\r\n+        } else if (\"byte\".equals(name)) {\r\n+            sb.append(JVM_BYTE);\r\n+        } else if (\"char\".equals(name)) {\r\n+            sb.append(JVM_CHAR);\r\n+        } else if (\"double\".equals(name)) {\r\n+            sb.append(JVM_DOUBLE);\r\n+        } else if (\"float\".equals(name)) {\r\n+            sb.append(JVM_FLOAT);\r\n+        } else if (\"int\".equals(name)) {\r\n+            sb.append(JVM_INT);\r\n+        } else if (\"long\".equals(name)) {\r\n+            sb.append(JVM_LONG);\r\n+        } else if (\"short\".equals(name)) {\r\n+            sb.append(JVM_SHORT);\r\n+        } else {\r\n+            sb.append('L').append(name.replace('.', '/')).append(';');\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * desc to name.\r\n+     * \"[[I\" => \"int[][]\"\r\n+     *\r\n+     * @param desc desc.\r\n+     * @return name.\r\n+     */\r\n+    public static String desc2name(String desc) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        int c = desc.lastIndexOf('[') + 1;\r\n+        if (desc.length() == c + 1) {\r\n+            switch (desc.charAt(c)) {\r\n+                case JVM_VOID: {\r\n+                    sb.append(\"void\");\r\n+                    break;\r\n+                }\r\n+                case JVM_BOOLEAN: {\r\n+                    sb.append(\"boolean\");\r\n+                    break;\r\n+                }\r\n+                case JVM_BYTE: {\r\n+                    sb.append(\"byte\");\r\n+                    break;\r\n+                }\r\n+                case JVM_CHAR: {\r\n+                    sb.append(\"char\");\r\n+                    break;\r\n+                }\r\n+                case JVM_DOUBLE: {\r\n+                    sb.append(\"double\");\r\n+                    break;\r\n+                }\r\n+                case JVM_FLOAT: {\r\n+                    sb.append(\"float\");\r\n+                    break;\r\n+                }\r\n+                case JVM_INT: {\r\n+                    sb.append(\"int\");\r\n+                    break;\r\n+                }\r\n+                case JVM_LONG: {\r\n+                    sb.append(\"long\");\r\n+                    break;\r\n+                }\r\n+                case JVM_SHORT: {\r\n+                    sb.append(\"short\");\r\n+                    break;\r\n+                }\r\n+                default:\r\n+                    throw new RuntimeException();\r\n+            }\r\n+        } else {\r\n+            sb.append(desc.substring(c + 1, desc.length() - 1).replace('/', '.'));\r\n+        }\r\n+        while (c-- > 0) {\r\n+            sb.append(\"[]\");\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    public static Class<?> forName(String name) {\r\n+        try {\r\n+            return name2class(name);\r\n+        } catch (ClassNotFoundException e) {\r\n+            throw new IllegalStateException(\"Not found class \" + name + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public static Class<?> forName(ClassLoader cl, String name) {\r\n+        try {\r\n+            return name2class(cl, name);\r\n+        } catch (ClassNotFoundException e) {\r\n+            throw new IllegalStateException(\"Not found class \" + name + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * name to class.\r\n+     * \"boolean\" => boolean.class\r\n+     * \"java.util.Map[][]\" => java.util.Map[][].class\r\n+     *\r\n+     * @param name name.\r\n+     * @return Class instance.\r\n+     */\r\n+    public static Class<?> name2class(String name) throws ClassNotFoundException {\r\n+        return name2class(ClassUtils.getClassLoader(), name);\r\n+    }\r\n+\r\n+    /**\r\n+     * name to class.\r\n+     * \"boolean\" => boolean.class\r\n+     * \"java.util.Map[][]\" => java.util.Map[][].class\r\n+     *\r\n+     * @param cl   ClassLoader instance.\r\n+     * @param name name.\r\n+     * @return Class instance.\r\n+     */\r\n+    private static Class<?> name2class(ClassLoader cl, String name) throws ClassNotFoundException {\r\n+        int c = 0, index = name.indexOf('[');\r\n+        if (index > 0) {\r\n+            c = (name.length() - index) / 2;\r\n+            name = name.substring(0, index);\r\n+        }\r\n+        if (c > 0) {\r\n+            StringBuilder sb = new StringBuilder();\r\n+            while (c-- > 0) {\r\n+                sb.append(\"[\");\r\n+            }\r\n+\r\n+            if (\"void\".equals(name)) {\r\n+                sb.append(JVM_VOID);\r\n+            } else if (\"boolean\".equals(name)) {\r\n+                sb.append(JVM_BOOLEAN);\r\n+            } else if (\"byte\".equals(name)) {\r\n+                sb.append(JVM_BYTE);\r\n+            } else if (\"char\".equals(name)) {\r\n+                sb.append(JVM_CHAR);\r\n+            } else if (\"double\".equals(name)) {\r\n+                sb.append(JVM_DOUBLE);\r\n+            } else if (\"float\".equals(name)) {\r\n+                sb.append(JVM_FLOAT);\r\n+            } else if (\"int\".equals(name)) {\r\n+                sb.append(JVM_INT);\r\n+            } else if (\"long\".equals(name)) {\r\n+                sb.append(JVM_LONG);\r\n+            } else if (\"short\".equals(name)) {\r\n+                sb.append(JVM_SHORT);\r\n+            } else {\r\n+                // \"java.lang.Object\" ==> \"Ljava.lang.Object;\"\r\n+                sb.append('L').append(name).append(';');\r\n+            }\r\n+            name = sb.toString();\r\n+        } else {\r\n+            if (\"void\".equals(name)) {\r\n+                return void.class;\r\n+            }\r\n+            if (\"boolean\".equals(name)) {\r\n+                return boolean.class;\r\n+            }\r\n+            if (\"byte\".equals(name)) {\r\n+                return byte.class;\r\n+            }\r\n+            if (\"char\".equals(name)) {\r\n+                return char.class;\r\n+            }\r\n+            if (\"double\".equals(name)) {\r\n+                return double.class;\r\n+            }\r\n+            if (\"float\".equals(name)) {\r\n+                return float.class;\r\n+            }\r\n+            if (\"int\".equals(name)) {\r\n+                return int.class;\r\n+            }\r\n+            if (\"long\".equals(name)) {\r\n+                return long.class;\r\n+            }\r\n+            if (\"short\".equals(name)) {\r\n+                return short.class;\r\n+            }\r\n+        }\r\n+\r\n+        if (cl == null) {\r\n+            cl = ClassUtils.getClassLoader();\r\n+        }\r\n+        Class<?> clazz = NAME_CLASS_CACHE.get(name);\r\n+        if (clazz == null) {\r\n+            clazz = Class.forName(name, true, cl);\r\n+            NAME_CLASS_CACHE.put(name, clazz);\r\n+        }\r\n+        return clazz;\r\n+    }\r\n+\r\n+    /**\r\n+     * desc to class.\r\n+     * \"[Z\" => boolean[].class\r\n+     * \"[[Ljava/util/Map;\" => java.util.Map[][].class\r\n+     *\r\n+     * @param desc desc.\r\n+     * @return Class instance.\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    public static Class<?> desc2class(String desc) throws ClassNotFoundException {\r\n+        return desc2class(ClassUtils.getClassLoader(), desc);\r\n+    }\r\n+\r\n+    /**\r\n+     * desc to class.\r\n+     * \"[Z\" => boolean[].class\r\n+     * \"[[Ljava/util/Map;\" => java.util.Map[][].class\r\n+     *\r\n+     * @param cl   ClassLoader instance.\r\n+     * @param desc desc.\r\n+     * @return Class instance.\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    private static Class<?> desc2class(ClassLoader cl, String desc) throws ClassNotFoundException {\r\n+        switch (desc.charAt(0)) {\r\n+            case JVM_VOID:\r\n+                return void.class;\r\n+            case JVM_BOOLEAN:\r\n+                return boolean.class;\r\n+            case JVM_BYTE:\r\n+                return byte.class;\r\n+            case JVM_CHAR:\r\n+                return char.class;\r\n+            case JVM_DOUBLE:\r\n+                return double.class;\r\n+            case JVM_FLOAT:\r\n+                return float.class;\r\n+            case JVM_INT:\r\n+                return int.class;\r\n+            case JVM_LONG:\r\n+                return long.class;\r\n+            case JVM_SHORT:\r\n+                return short.class;\r\n+            case 'L':\r\n+                // \"Ljava/lang/Object;\" ==> \"java.lang.Object\"\r\n+                desc = desc.substring(1, desc.length() - 1).replace('/', '.');\r\n+                break;\r\n+            case '[':\r\n+                // \"[[Ljava/lang/Object;\" ==> \"[[Ljava.lang.Object;\"\r\n+                desc = desc.replace('/', '.');\r\n+                break;\r\n+            default:\r\n+                throw new ClassNotFoundException(\"Class not found: \" + desc);\r\n+        }\r\n+\r\n+        if (cl == null) {\r\n+            cl = ClassUtils.getClassLoader();\r\n+        }\r\n+        Class<?> clazz = DESC_CLASS_CACHE.get(desc);\r\n+        if (clazz == null) {\r\n+            clazz = Class.forName(desc, true, cl);\r\n+            DESC_CLASS_CACHE.put(desc, clazz);\r\n+        }\r\n+        return clazz;\r\n+    }\r\n+\r\n+    /**\r\n+     * get class array instance.\r\n+     *\r\n+     * @param desc desc.\r\n+     * @return Class class array.\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    public static Class<?>[] desc2classArray(String desc) throws ClassNotFoundException {\r\n+        Class<?>[] ret = desc2classArray(ClassUtils.getClassLoader(), desc);\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * get class array instance.\r\n+     *\r\n+     * @param cl   ClassLoader instance.\r\n+     * @param desc desc.\r\n+     * @return Class[] class array.\r\n+     * @throws ClassNotFoundException\r\n+     */\r\n+    private static Class<?>[] desc2classArray(ClassLoader cl, String desc) throws ClassNotFoundException {\r\n+        if (desc.length() == 0) {\r\n+            return EMPTY_CLASS_ARRAY;\r\n+        }\r\n+\r\n+        List<Class<?>> cs = new ArrayList<Class<?>>();\r\n+        Matcher m = DESC_PATTERN.matcher(desc);\r\n+        while (m.find()) {\r\n+            cs.add(desc2class(cl, m.group()));\r\n+        }\r\n+        return cs.toArray(EMPTY_CLASS_ARRAY);\r\n+    }\r\n+\r\n+    /**\r\n+     * Find method from method signature\r\n+     *\r\n+     * @param clazz      Target class to find method\r\n+     * @param methodName Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2\r\n+     * @return target method\r\n+     * @throws NoSuchMethodException\r\n+     * @throws ClassNotFoundException\r\n+     * @throws IllegalStateException  when multiple methods are found (overridden method when parameter info is not provided)\r\n+     * @deprecated Recommend {@link MethodUtils#findMethod(Class, String, Class[])}\r\n+     */\r\n+    @Deprecated\r\n+    public static Method findMethodByMethodSignature(Class<?> clazz, String methodName, String[] parameterTypes)\r\n+            throws NoSuchMethodException, ClassNotFoundException {\r\n+        String signature = clazz.getName() + \".\" + methodName;\r\n+        if (parameterTypes != null && parameterTypes.length > 0) {\r\n+            signature += StringUtils.join(parameterTypes);\r\n+        }\r\n+        Method method = SIGNATURE_METHODS_CACHE.get(signature);\r\n+        if (method != null) {\r\n+            return method;\r\n+        }\r\n+        if (parameterTypes == null) {\r\n+            List<Method> finded = new ArrayList<Method>();\r\n+            for (Method m : clazz.getMethods()) {\r\n+                if (m.getName().equals(methodName)) {\r\n+                    finded.add(m);\r\n+                }\r\n+            }\r\n+            if (finded.isEmpty()) {\r\n+                throw new NoSuchMethodException(\"No such method \" + methodName + \" in class \" + clazz);\r\n+            }\r\n+            if (finded.size() > 1) {\r\n+                String msg = String.format(\"Not unique method for method name(%s) in class(%s), find %d methods.\",\r\n+                        methodName, clazz.getName(), finded.size());\r\n+                throw new IllegalStateException(msg);\r\n+            }\r\n+            method = finded.get(0);\r\n+        } else {\r\n+            Class<?>[] types = new Class<?>[parameterTypes.length];\r\n+            for (int i = 0; i < parameterTypes.length; i++) {\r\n+                types[i] = ReflectUtils.name2class(parameterTypes[i]);\r\n+            }\r\n+            method = clazz.getMethod(methodName, types);\r\n+\r\n+        }\r\n+        SIGNATURE_METHODS_CACHE.put(signature, method);\r\n+        return method;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param clazz      Target class to find method\r\n+     * @param methodName Method signature, e.g.: method1(int, String). It is allowed to provide method name only, e.g.: method2\r\n+     * @return target method\r\n+     * @throws NoSuchMethodException\r\n+     * @throws ClassNotFoundException\r\n+     * @throws IllegalStateException  when multiple methods are found (overridden method when parameter info is not provided)\r\n+     * @deprecated Recommend {@link MethodUtils#findMethod(Class, String, Class[])}\r\n+     */\r\n+    @Deprecated\r\n+    public static Method findMethodByMethodName(Class<?> clazz, String methodName)\r\n+            throws NoSuchMethodException, ClassNotFoundException {\r\n+        return findMethodByMethodSignature(clazz, methodName, null);\r\n+    }\r\n+\r\n+    public static Constructor<?> findConstructor(Class<?> clazz, Class<?> paramType) throws NoSuchMethodException {\r\n+        Constructor<?> targetConstructor;\r\n+        try {\r\n+            targetConstructor = clazz.getConstructor(new Class<?>[]{paramType});\r\n+        } catch (NoSuchMethodException e) {\r\n+            targetConstructor = null;\r\n+            Constructor<?>[] constructors = clazz.getConstructors();\r\n+            for (Constructor<?> constructor : constructors) {\r\n+                if (Modifier.isPublic(constructor.getModifiers())\r\n+                        && constructor.getParameterTypes().length == 1\r\n+                        && constructor.getParameterTypes()[0].isAssignableFrom(paramType)) {\r\n+                    targetConstructor = constructor;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (targetConstructor == null) {\r\n+                throw e;\r\n+            }\r\n+        }\r\n+        return targetConstructor;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if one object is the implementation for a given interface.\r\n+     * <p>\r\n+     * This method will not trigger classloading for the given interface, therefore it will not lead to error when\r\n+     * the given interface is not visible by the classloader\r\n+     *\r\n+     * @param obj                Object to examine\r\n+     * @param interfaceClazzName The given interface\r\n+     * @return true if the object implements the given interface, otherwise return false\r\n+     */\r\n+    public static boolean isInstance(Object obj, String interfaceClazzName) {\r\n+        for (Class<?> clazz = obj.getClass();\r\n+             clazz != null && !clazz.equals(Object.class);\r\n+             clazz = clazz.getSuperclass()) {\r\n+            Class<?>[] interfaces = clazz.getInterfaces();\r\n+            for (Class<?> itf : interfaces) {\r\n+                if (itf.getName().equals(interfaceClazzName)) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public static Object getEmptyObject(Class<?> returnType) {\r\n+        return getEmptyObject(returnType, new HashMap<>(), 0);\r\n+    }\r\n+\r\n+    private static Object getEmptyObject(Class<?> returnType, Map<Class<?>, Object> emptyInstances, int level) {\r\n+        if (level > 2) {\r\n+            return null;\r\n+        }\r\n+        if (returnType == null) {\r\n+            return null;\r\n+        }\r\n+        if (returnType == boolean.class || returnType == Boolean.class) {\r\n+            return false;\r\n+        }\r\n+        if (returnType == char.class || returnType == Character.class) {\r\n+            return '\\0';\r\n+        }\r\n+        if (returnType == byte.class || returnType == Byte.class) {\r\n+            return (byte) 0;\r\n+        }\r\n+        if (returnType == short.class || returnType == Short.class) {\r\n+            return (short) 0;\r\n+        }\r\n+        if (returnType == int.class || returnType == Integer.class) {\r\n+            return 0;\r\n+        }\r\n+        if (returnType == long.class || returnType == Long.class) {\r\n+            return 0L;\r\n+        }\r\n+        if (returnType == float.class || returnType == Float.class) {\r\n+            return 0F;\r\n+        }\r\n+        if (returnType == double.class || returnType == Double.class) {\r\n+            return 0D;\r\n+        }\r\n+        if (returnType.isArray()) {\r\n+            return Array.newInstance(returnType.getComponentType(), 0);\r\n+        }\r\n+        if (returnType.isAssignableFrom(ArrayList.class)) {\r\n+            return new ArrayList<>(0);\r\n+        }\r\n+        if (returnType.isAssignableFrom(HashSet.class)) {\r\n+            return new HashSet<>(0);\r\n+        }\r\n+        if (returnType.isAssignableFrom(HashMap.class)) {\r\n+            return new HashMap<>(0);\r\n+        }\r\n+        if (String.class.equals(returnType)) {\r\n+            return \"\";\r\n+        }\r\n+        if (returnType.isInterface()) {\r\n+            return null;\r\n+        }\r\n+\r\n+        try {\r\n+            Object value = emptyInstances.get(returnType);\r\n+            if (value == null) {\r\n+                value = returnType.getDeclaredConstructor().newInstance();\r\n+                emptyInstances.put(returnType, value);\r\n+            }\r\n+            Class<?> cls = value.getClass();\r\n+            while (cls != null && cls != Object.class) {\r\n+                Field[] fields = cls.getDeclaredFields();\r\n+                for (Field field : fields) {\r\n+                    if (field.isSynthetic()) {\r\n+                        continue;\r\n+                    }\r\n+                    Object property = getEmptyObject(field.getType(), emptyInstances, level + 1);\r\n+                    if (property != null) {\r\n+                        try {\r\n+                            ReflectUtils.makeAccessible(field);\r\n+                            field.set(value, property);\r\n+                        } catch (Throwable ignored) {\r\n+                        }\r\n+                    }\r\n+                }\r\n+                cls = cls.getSuperclass();\r\n+            }\r\n+            return value;\r\n+        } catch (Throwable e) {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    public static Object defaultReturn(Method m) {\r\n+        if (m.getReturnType().isPrimitive()) {\r\n+            return primitiveDefaults.get(m.getReturnType());\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    public static Object defaultReturn(Class<?> classType) {\r\n+        if (classType != null && classType.isPrimitive()) {\r\n+            return primitiveDefaults.get(classType);\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean isBeanPropertyReadMethod(Method method) {\r\n+        return method != null\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && !Modifier.isStatic(method.getModifiers())\r\n+                && method.getReturnType() != void.class\r\n+                && method.getDeclaringClass() != Object.class\r\n+                && method.getParameterTypes().length == 0\r\n+                && ((method.getName().startsWith(\"get\") && method.getName().length() > 3)\r\n+                || (method.getName().startsWith(\"is\") && method.getName().length() > 2));\r\n+    }\r\n+\r\n+    public static String getPropertyNameFromBeanReadMethod(Method method) {\r\n+        if (isBeanPropertyReadMethod(method)) {\r\n+            if (method.getName().startsWith(\"get\")) {\r\n+                return method.getName().substring(3, 4).toLowerCase()\r\n+                        + method.getName().substring(4);\r\n+            }\r\n+            if (method.getName().startsWith(\"is\")) {\r\n+                return method.getName().substring(2, 3).toLowerCase()\r\n+                        + method.getName().substring(3);\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public static boolean isBeanPropertyWriteMethod(Method method) {\r\n+        return method != null\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && !Modifier.isStatic(method.getModifiers())\r\n+                && method.getDeclaringClass() != Object.class\r\n+                && method.getParameterTypes().length == 1\r\n+                && method.getName().startsWith(\"set\")\r\n+                && method.getName().length() > 3;\r\n+    }\r\n+\r\n+    public static String getPropertyNameFromBeanWriteMethod(Method method) {\r\n+        if (isBeanPropertyWriteMethod(method)) {\r\n+            return method.getName().substring(3, 4).toLowerCase()\r\n+                    + method.getName().substring(4);\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public static boolean isPublicInstanceField(Field field) {\r\n+        return Modifier.isPublic(field.getModifiers())\r\n+                && !Modifier.isStatic(field.getModifiers())\r\n+                && !Modifier.isFinal(field.getModifiers())\r\n+                && !field.isSynthetic();\r\n+    }\r\n+\r\n+    public static Map<String, Field> getBeanPropertyFields(Class cl) {\r\n+        Map<String, Field> properties = new HashMap<String, Field>();\r\n+        for (; cl != null; cl = cl.getSuperclass()) {\r\n+            Field[] fields = cl.getDeclaredFields();\r\n+            for (Field field : fields) {\r\n+                if (Modifier.isTransient(field.getModifiers())\r\n+                        || Modifier.isStatic(field.getModifiers())) {\r\n+                    continue;\r\n+                }\r\n+                ReflectUtils.makeAccessible(field);\r\n+\r\n+                properties.put(field.getName(), field);\r\n+            }\r\n+        }\r\n+\r\n+        return properties;\r\n+    }\r\n+\r\n+    public static Map<String, Method> getBeanPropertyReadMethods(Class cl) {\r\n+        Map<String, Method> properties = new HashMap<String, Method>();\r\n+        for (; cl != null; cl = cl.getSuperclass()) {\r\n+            Method[] methods = cl.getDeclaredMethods();\r\n+            for (Method method : methods) {\r\n+                if (isBeanPropertyReadMethod(method)) {\r\n+                    ReflectUtils.makeAccessible(method);\r\n+                    String property = getPropertyNameFromBeanReadMethod(method);\r\n+                    properties.put(property, method);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return properties;\r\n+    }\r\n+\r\n+    public static Type[] getReturnTypes(Method method) {\r\n+        Class<?> returnType = method.getReturnType();\r\n+        Type genericReturnType = method.getGenericReturnType();\r\n+        if (Future.class.isAssignableFrom(returnType)) {\r\n+            if (genericReturnType instanceof ParameterizedType) {\r\n+                Type actualArgType = ((ParameterizedType) genericReturnType).getActualTypeArguments()[0];\r\n+                if (actualArgType instanceof ParameterizedType) {\r\n+                    returnType = (Class<?>) ((ParameterizedType) actualArgType).getRawType();\r\n+                    genericReturnType = actualArgType;\r\n+                } else if (actualArgType instanceof TypeVariable) {\r\n+                    returnType = (Class<?>) ((TypeVariable<?>) actualArgType).getBounds()[0];\r\n+                    genericReturnType = actualArgType;\r\n+                } else {\r\n+                    returnType = (Class<?>) actualArgType;\r\n+                    genericReturnType = returnType;\r\n+                }\r\n+            } else {\r\n+                returnType = null;\r\n+                genericReturnType = null;\r\n+            }\r\n+        }\r\n+        return new Type[]{returnType, genericReturnType};\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Set} of {@link ParameterizedType}\r\n+     *\r\n+     * @param sourceClass the source {@link Class class}\r\n+     * @return non-null read-only {@link Set}\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static Set<ParameterizedType> findParameterizedTypes(Class<?> sourceClass) {\r\n+        // Add Generic Interfaces\r\n+        List<Type> genericTypes = new LinkedList<>(asList(sourceClass.getGenericInterfaces()));\r\n+        // Add Generic Super Class\r\n+        genericTypes.add(sourceClass.getGenericSuperclass());\r\n+\r\n+        Set<ParameterizedType> parameterizedTypes = genericTypes.stream()\r\n+                .filter(type -> type instanceof ParameterizedType)// filter ParameterizedType\r\n+                .map(ParameterizedType.class::cast)  // cast to ParameterizedType\r\n+                .collect(Collectors.toSet());\r\n+\r\n+        if (parameterizedTypes.isEmpty()) { // If not found, try to search super types recursively\r\n+            genericTypes.stream()\r\n+                    .filter(type -> type instanceof Class)\r\n+                    .map(Class.class::cast)\r\n+                    .forEach(superClass -> parameterizedTypes.addAll(findParameterizedTypes(superClass)));\r\n+        }\r\n+\r\n+        return unmodifiableSet(parameterizedTypes);                     // build as a Set\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the hierarchical types from the source {@link Class class} by specified {@link Class type}.\r\n+     *\r\n+     * @param sourceClass the source {@link Class class}\r\n+     * @param matchType   the type to match\r\n+     * @param <T>         the type to match\r\n+     * @return non-null read-only {@link Set}\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static <T> Set<Class<T>> findHierarchicalTypes(Class<?> sourceClass, Class<T> matchType) {\r\n+        if (sourceClass == null) {\r\n+            return Collections.emptySet();\r\n+        }\r\n+\r\n+        Set<Class<T>> hierarchicalTypes = new LinkedHashSet<>();\r\n+\r\n+        if (matchType.isAssignableFrom(sourceClass)) {\r\n+            hierarchicalTypes.add((Class<T>) sourceClass);\r\n+        }\r\n+\r\n+        // Find all super classes\r\n+        hierarchicalTypes.addAll(findHierarchicalTypes(sourceClass.getSuperclass(), matchType));\r\n+\r\n+        return unmodifiableSet(hierarchicalTypes);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the value from the specified bean and its getter method.\r\n+     *\r\n+     * @param bean       the bean instance\r\n+     * @param methodName the name of getter\r\n+     * @param <T>        the type of property value\r\n+     * @return\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static <T> T getProperty(Object bean, String methodName) {\r\n+        Class<?> beanClass = bean.getClass();\r\n+        BeanInfo beanInfo = null;\r\n+        T propertyValue = null;\r\n+\r\n+        try {\r\n+            beanInfo = Introspector.getBeanInfo(beanClass);\r\n+            propertyValue = (T) Stream.of(beanInfo.getMethodDescriptors())\r\n+                    .filter(methodDescriptor -> methodName.equals(methodDescriptor.getName()))\r\n+                    .findFirst()\r\n+                    .map(method -> {\r\n+                        try {\r\n+                            return method.getMethod().invoke(bean);\r\n+                        } catch (Exception e) {\r\n+                            //ignore\r\n+                        }\r\n+                        return null;\r\n+                    }).get();\r\n+        } catch (Exception e) {\r\n+\r\n+        }\r\n+        return propertyValue;\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the types of the specified values\r\n+     *\r\n+     * @param values the values\r\n+     * @return If can't be resolved, return {@link ReflectUtils#EMPTY_CLASS_ARRAY empty class array}\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static Class[] resolveTypes(Object... values) {\r\n+\r\n+        if (isEmpty(values)) {\r\n+            return EMPTY_CLASS_ARRAY;\r\n+        }\r\n+\r\n+        int size = values.length;\r\n+\r\n+        Class[] types = new Class[size];\r\n+\r\n+        for (int i = 0; i < size; i++) {\r\n+            Object value = values[i];\r\n+            types[i] = value == null ? null : value.getClass();\r\n+        }\r\n+\r\n+        return types;\r\n+    }\r\n+\r\n+    /**\r\n+     * Copy from org.springframework.util.ReflectionUtils.\r\n+     * Make the given method accessible, explicitly setting it accessible if\r\n+     * necessary. The {@code setAccessible(true)} method is only called\r\n+     * when actually necessary, to avoid unnecessary conflicts with a JVM\r\n+     * SecurityManager (if active).\r\n+     * @param method the method to make accessible\r\n+     * @see java.lang.reflect.Method#setAccessible\r\n+     */\r\n+    @SuppressWarnings(\"deprecation\")  // on JDK 9\r\n+    public static void makeAccessible(Method method) {\r\n+        if ((!Modifier.isPublic(method.getModifiers()) ||\r\n+                !Modifier.isPublic(method.getDeclaringClass().getModifiers())) && !method.isAccessible()) {\r\n+            method.setAccessible(true);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Copy from org.springframework.util.ReflectionUtils.\r\n+     * Make the given field accessible, explicitly setting it accessible if\r\n+     * necessary. The {@code setAccessible(true)} method is only called\r\n+     * when actually necessary, to avoid unnecessary conflicts with a JVM\r\n+     * SecurityManager (if active).\r\n+     * @param field the field to make accessible\r\n+     * @see java.lang.reflect.Field#setAccessible\r\n+     */\r\n+    @SuppressWarnings(\"deprecation\")  // on JDK 9\r\n+    public static void makeAccessible(Field field) {\r\n+        if ((!Modifier.isPublic(field.getModifiers()) ||\r\n+                !Modifier.isPublic(field.getDeclaringClass().getModifiers()) ||\r\n+                Modifier.isFinal(field.getModifiers())) && !field.isAccessible()) {\r\n+            field.setAccessible(true);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Copy from org.springframework.util.ReflectionUtils.\r\n+     * Make the given constructor accessible, explicitly setting it accessible\r\n+     * if necessary. The {@code setAccessible(true)} method is only called\r\n+     * when actually necessary, to avoid unnecessary conflicts with a JVM\r\n+     * SecurityManager (if active).\r\n+     * @param ctor the constructor to make accessible\r\n+     * @see java.lang.reflect.Constructor#setAccessible\r\n+     */\r\n+    @SuppressWarnings(\"deprecation\")  // on JDK 9\r\n+    public static void makeAccessible(Constructor<?> ctor) {\r\n+        if ((!Modifier.isPublic(ctor.getModifiers()) ||\r\n+                !Modifier.isPublic(ctor.getDeclaringClass().getModifiers())) && !ctor.isAccessible()) {\r\n+            ctor.setAccessible(true);\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean checkZeroArgConstructor(Class clazz) {\r\n+        try {\r\n+            clazz.getDeclaredConstructor();\r\n+            return true;\r\n+        } catch (NoSuchMethodException e) {\r\n+            return false;\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean isJdk(Class clazz) {\r\n+        return clazz.getName().startsWith(\"java.\") || clazz.getName().startsWith(\"javax.\");\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/SerializeClassChecker.java", "source2": "org/apache/dubbo/common/utils/SerializeClassChecker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,150 +1,150 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import java.io.IOException;\n-import java.util.Arrays;\n-import java.util.Locale;\n-import java.util.Set;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-public class SerializeClassChecker {\n-    private static final Logger logger = LoggerFactory.getLogger(SerializeClassChecker.class);\n-\n-    private static volatile SerializeClassChecker INSTANCE = null;\n-\n-    private final boolean BLOCK_ALL_CLASS_EXCEPT_ALLOW;\n-    private final Set<String> CLASS_DESERIALIZE_ALLOWED_SET = new ConcurrentHashSet<>();\n-    private final Set<String> CLASS_DESERIALIZE_BLOCKED_SET = new ConcurrentHashSet<>();\n-\n-    private final Object CACHE = new Object();\n-    private final LFUCache<String, Object> CLASS_ALLOW_LFU_CACHE = new LFUCache<>();\n-    private final LFUCache<String, Object> CLASS_BLOCK_LFU_CACHE = new LFUCache<>();\n-\n-    private final AtomicLong counter = new AtomicLong(0);\n-\n-    private SerializeClassChecker() {\n-        String blockAllClassExceptAllow = System.getProperty(CommonConstants.CLASS_DESERIALIZE_BLOCK_ALL, \"false\");\n-        BLOCK_ALL_CLASS_EXCEPT_ALLOW = Boolean.parseBoolean(blockAllClassExceptAllow);\n-\n-        String[] lines;\n-        try {\n-            ClassLoader classLoader = ClassUtils.getClassLoader(JavaBeanSerializeUtil.class);\n-            if (classLoader != null) {\n-                lines = IOUtils.readLines(classLoader.getResourceAsStream(CommonConstants.SERIALIZE_BLOCKED_LIST_FILE_PATH));\n-            } else {\n-                lines = IOUtils.readLines(ClassLoader.getSystemResourceAsStream(CommonConstants.SERIALIZE_BLOCKED_LIST_FILE_PATH));\n-            }\n-            for (String line : lines) {\n-                line = line.trim();\n-                if (StringUtils.isEmpty(line) || line.startsWith(\"#\")) {\n-                    continue;\n-                }\n-                CLASS_DESERIALIZE_BLOCKED_SET.add(line);\n-            }\n-\n-        } catch (IOException e) {\n-            logger.error(\"Failed to load blocked class list! Will ignore default blocked list.\", e);\n-        }\n-\n-        String allowedClassList = System.getProperty(CommonConstants.CLASS_DESERIALIZE_ALLOWED_LIST, \"\").trim().toLowerCase(Locale.ROOT);\n-        String blockedClassList = System.getProperty(CommonConstants.CLASS_DESERIALIZE_BLOCKED_LIST, \"\").trim().toLowerCase(Locale.ROOT);\n-\n-        if (StringUtils.isNotEmpty(allowedClassList)) {\n-            String[] classStrings = allowedClassList.trim().split(\",\");\n-            CLASS_DESERIALIZE_ALLOWED_SET.addAll(Arrays.asList(classStrings));\n-        }\n-\n-        if (StringUtils.isNotEmpty(blockedClassList)) {\n-            String[] classStrings = blockedClassList.trim().split(\",\");\n-            CLASS_DESERIALIZE_BLOCKED_SET.addAll(Arrays.asList(classStrings));\n-        }\n-\n-    }\n-\n-    public static SerializeClassChecker getInstance() {\n-        if (INSTANCE == null) {\n-            synchronized (SerializeClassChecker.class) {\n-                if (INSTANCE == null) {\n-                    INSTANCE = new SerializeClassChecker();\n-                }\n-            }\n-        }\n-        return INSTANCE;\n-    }\n-\n-    /**\n-     * For ut only\n-     */\n-    @Deprecated\n-    protected static void clearInstance() {\n-        INSTANCE = null;\n-    }\n-\n-    /**\n-     * Check if a class is in block list, using prefix match\n-     *\n-     * @throws IllegalArgumentException if class is blocked\n-     * @param name class name ( all are convert to lower case )\n-     */\n-    public void validateClass(String name) {\n-        name = name.toLowerCase(Locale.ROOT);\n-        if (CACHE == CLASS_ALLOW_LFU_CACHE.get(name)) {\n-            return;\n-        }\n-\n-        if (CACHE == CLASS_BLOCK_LFU_CACHE.get(name)) {\n-            error(name);\n-        }\n-\n-        for (String allowedPrefix : CLASS_DESERIALIZE_ALLOWED_SET) {\n-            if (name.startsWith(allowedPrefix)) {\n-                CLASS_ALLOW_LFU_CACHE.put(name, CACHE);\n-                return;\n-            }\n-        }\n-\n-        for (String blockedPrefix : CLASS_DESERIALIZE_BLOCKED_SET) {\n-            if (BLOCK_ALL_CLASS_EXCEPT_ALLOW || name.startsWith(blockedPrefix)) {\n-                CLASS_BLOCK_LFU_CACHE.put(name, CACHE);\n-                error(name);\n-            }\n-        }\n-\n-        CLASS_ALLOW_LFU_CACHE.put(name, CACHE);\n-    }\n-\n-    private void error(String name) {\n-        String notice = \"Trigger the safety barrier! \" +\n-                \"Catch not allowed serialize class. \" +\n-                \"Class name: \" + name + \" . \" +\n-                \"This means currently maybe being attacking by others.\" +\n-                \"If you are sure this is a mistake, \" +\n-                \"please add this class name to `\" + CommonConstants.CLASS_DESERIALIZE_ALLOWED_LIST +\n-                \"` as a system environment property.\";\n-        if (counter.incrementAndGet() % 1000 == 0 || counter.get() < 100) {\n-            logger.error(notice);\n-        }\n-        throw new IllegalArgumentException(notice);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.Arrays;\r\n+import java.util.Locale;\r\n+import java.util.Set;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+public class SerializeClassChecker {\r\n+    private static final Logger logger = LoggerFactory.getLogger(SerializeClassChecker.class);\r\n+\r\n+    private static volatile SerializeClassChecker INSTANCE = null;\r\n+\r\n+    private final boolean BLOCK_ALL_CLASS_EXCEPT_ALLOW;\r\n+    private final Set<String> CLASS_DESERIALIZE_ALLOWED_SET = new ConcurrentHashSet<>();\r\n+    private final Set<String> CLASS_DESERIALIZE_BLOCKED_SET = new ConcurrentHashSet<>();\r\n+\r\n+    private final Object CACHE = new Object();\r\n+    private final LFUCache<String, Object> CLASS_ALLOW_LFU_CACHE = new LFUCache<>();\r\n+    private final LFUCache<String, Object> CLASS_BLOCK_LFU_CACHE = new LFUCache<>();\r\n+\r\n+    private final AtomicLong counter = new AtomicLong(0);\r\n+\r\n+    private SerializeClassChecker() {\r\n+        String blockAllClassExceptAllow = System.getProperty(CommonConstants.CLASS_DESERIALIZE_BLOCK_ALL, \"false\");\r\n+        BLOCK_ALL_CLASS_EXCEPT_ALLOW = Boolean.parseBoolean(blockAllClassExceptAllow);\r\n+\r\n+        String[] lines;\r\n+        try {\r\n+            ClassLoader classLoader = ClassUtils.getClassLoader(JavaBeanSerializeUtil.class);\r\n+            if (classLoader != null) {\r\n+                lines = IOUtils.readLines(classLoader.getResourceAsStream(CommonConstants.SERIALIZE_BLOCKED_LIST_FILE_PATH));\r\n+            } else {\r\n+                lines = IOUtils.readLines(ClassLoader.getSystemResourceAsStream(CommonConstants.SERIALIZE_BLOCKED_LIST_FILE_PATH));\r\n+            }\r\n+            for (String line : lines) {\r\n+                line = line.trim();\r\n+                if (StringUtils.isEmpty(line) || line.startsWith(\"#\")) {\r\n+                    continue;\r\n+                }\r\n+                CLASS_DESERIALIZE_BLOCKED_SET.add(line);\r\n+            }\r\n+\r\n+        } catch (IOException e) {\r\n+            logger.error(\"Failed to load blocked class list! Will ignore default blocked list.\", e);\r\n+        }\r\n+\r\n+        String allowedClassList = System.getProperty(CommonConstants.CLASS_DESERIALIZE_ALLOWED_LIST, \"\").trim().toLowerCase(Locale.ROOT);\r\n+        String blockedClassList = System.getProperty(CommonConstants.CLASS_DESERIALIZE_BLOCKED_LIST, \"\").trim().toLowerCase(Locale.ROOT);\r\n+\r\n+        if (StringUtils.isNotEmpty(allowedClassList)) {\r\n+            String[] classStrings = allowedClassList.trim().split(\",\");\r\n+            CLASS_DESERIALIZE_ALLOWED_SET.addAll(Arrays.asList(classStrings));\r\n+        }\r\n+\r\n+        if (StringUtils.isNotEmpty(blockedClassList)) {\r\n+            String[] classStrings = blockedClassList.trim().split(\",\");\r\n+            CLASS_DESERIALIZE_BLOCKED_SET.addAll(Arrays.asList(classStrings));\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    public static SerializeClassChecker getInstance() {\r\n+        if (INSTANCE == null) {\r\n+            synchronized (SerializeClassChecker.class) {\r\n+                if (INSTANCE == null) {\r\n+                    INSTANCE = new SerializeClassChecker();\r\n+                }\r\n+            }\r\n+        }\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    /**\r\n+     * For ut only\r\n+     */\r\n+    @Deprecated\r\n+    protected static void clearInstance() {\r\n+        INSTANCE = null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if a class is in block list, using prefix match\r\n+     *\r\n+     * @throws IllegalArgumentException if class is blocked\r\n+     * @param name class name ( all are convert to lower case )\r\n+     */\r\n+    public void validateClass(String name) {\r\n+        name = name.toLowerCase(Locale.ROOT);\r\n+        if (CACHE == CLASS_ALLOW_LFU_CACHE.get(name)) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (CACHE == CLASS_BLOCK_LFU_CACHE.get(name)) {\r\n+            error(name);\r\n+        }\r\n+\r\n+        for (String allowedPrefix : CLASS_DESERIALIZE_ALLOWED_SET) {\r\n+            if (name.startsWith(allowedPrefix)) {\r\n+                CLASS_ALLOW_LFU_CACHE.put(name, CACHE);\r\n+                return;\r\n+            }\r\n+        }\r\n+\r\n+        for (String blockedPrefix : CLASS_DESERIALIZE_BLOCKED_SET) {\r\n+            if (BLOCK_ALL_CLASS_EXCEPT_ALLOW || name.startsWith(blockedPrefix)) {\r\n+                CLASS_BLOCK_LFU_CACHE.put(name, CACHE);\r\n+                error(name);\r\n+            }\r\n+        }\r\n+\r\n+        CLASS_ALLOW_LFU_CACHE.put(name, CACHE);\r\n+    }\r\n+\r\n+    private void error(String name) {\r\n+        String notice = \"Trigger the safety barrier! \" +\r\n+                \"Catch not allowed serialize class. \" +\r\n+                \"Class name: \" + name + \" . \" +\r\n+                \"This means currently maybe being attacking by others.\" +\r\n+                \"If you are sure this is a mistake, \" +\r\n+                \"please add this class name to `\" + CommonConstants.CLASS_DESERIALIZE_ALLOWED_LIST +\r\n+                \"` as a system environment property.\";\r\n+        if (counter.incrementAndGet() % 1000 == 0 || counter.get() < 100) {\r\n+            logger.error(notice);\r\n+        }\r\n+        throw new IllegalArgumentException(notice);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/ServiceAnnotationResolver.java", "source2": "org/apache/dubbo/common/utils/ServiceAnnotationResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,132 +1,132 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import org.apache.dubbo.config.annotation.DubboService;\n-import org.apache.dubbo.config.annotation.Service;\n-\n-import java.lang.annotation.Annotation;\n-import java.util.List;\n-\n-import static java.lang.String.format;\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.unmodifiableList;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\n-import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\n-import static org.apache.dubbo.common.utils.ClassUtils.isGenericClass;\n-import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\n-import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\n-\n-/**\n- * The resolver class for {@link Service @Service}\n- *\n- * @see Service\n- * @see com.alibaba.dubbo.config.annotation.Service\n- * @since 2.7.6\n- */\n-public class ServiceAnnotationResolver {\n-\n-    /**\n-     * The annotation {@link Class classes} of Dubbo Service (read-only)\n-     *\n-     * @since 2.7.9\n-     */\n-    public static List<Class<? extends Annotation>> SERVICE_ANNOTATION_CLASSES = unmodifiableList(asList(DubboService.class, Service.class, com.alibaba.dubbo.config.annotation.Service.class));\n-\n-    private final Annotation serviceAnnotation;\n-\n-    private final Class<?> serviceType;\n-\n-    public ServiceAnnotationResolver(Class<?> serviceType) throws IllegalArgumentException {\n-        this.serviceType = serviceType;\n-        this.serviceAnnotation = getServiceAnnotation(serviceType);\n-    }\n-\n-    private Annotation getServiceAnnotation(Class<?> serviceType) {\n-\n-        Annotation serviceAnnotation = null;\n-\n-        for (Class<? extends Annotation> serviceAnnotationClass : SERVICE_ANNOTATION_CLASSES) {\n-            serviceAnnotation = serviceType.getAnnotation(serviceAnnotationClass);\n-            if (serviceAnnotation != null) {\n-                break;\n-            }\n-        }\n-\n-        if (serviceAnnotation == null) {\n-            throw new IllegalArgumentException(format(\"Any annotation of [%s] can't be annotated in the service type[%s].\",\n-                    SERVICE_ANNOTATION_CLASSES,\n-                    serviceType.getName()\n-            ));\n-        }\n-\n-        return serviceAnnotation;\n-    }\n-\n-    /**\n-     * Resolve the class name of interface\n-     *\n-     * @return if not found, return <code>null</code>\n-     */\n-    public String resolveInterfaceClassName() {\n-\n-        Class interfaceClass = null;\n-        // first, try to get the value from \"interfaceName\" attribute\n-        String interfaceName = resolveAttribute(\"interfaceName\");\n-\n-        if (isEmpty(interfaceName)) { // If not found, try \"interfaceClass\"\n-            interfaceClass = resolveAttribute(\"interfaceClass\");\n-        } else {\n-            interfaceClass = resolveClass(interfaceName, getClass().getClassLoader());\n-        }\n-\n-        if (isGenericClass(interfaceClass)) {\n-            interfaceName = interfaceClass.getName();\n-        } else {\n-            interfaceName = null;\n-        }\n-\n-        if (isEmpty(interfaceName)) { // If not fund, try to get the first interface from the service type\n-            Class[] interfaces = serviceType.getInterfaces();\n-            if (isNotEmpty(interfaces)) {\n-                interfaceName = interfaces[0].getName();\n-            }\n-        }\n-\n-        return interfaceName;\n-    }\n-\n-    public String resolveVersion() {\n-        return resolveAttribute(\"version\");\n-    }\n-\n-    public String resolveGroup() {\n-        return resolveAttribute(\"group\");\n-    }\n-\n-    private <T> T resolveAttribute(String attributeName) {\n-        return getAttribute(serviceAnnotation, attributeName);\n-    }\n-\n-    public Annotation getServiceAnnotation() {\n-        return serviceAnnotation;\n-    }\n-\n-    public Class<?> getServiceType() {\n-        return serviceType;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import org.apache.dubbo.config.annotation.DubboService;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.util.List;\r\n+\r\n+import static java.lang.String.format;\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\r\n+import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.isGenericClass;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\r\n+\r\n+/**\r\n+ * The resolver class for {@link Service @Service}\r\n+ *\r\n+ * @see Service\r\n+ * @see com.alibaba.dubbo.config.annotation.Service\r\n+ * @since 2.7.6\r\n+ */\r\n+public class ServiceAnnotationResolver {\r\n+\r\n+    /**\r\n+     * The annotation {@link Class classes} of Dubbo Service (read-only)\r\n+     *\r\n+     * @since 2.7.9\r\n+     */\r\n+    public static List<Class<? extends Annotation>> SERVICE_ANNOTATION_CLASSES = unmodifiableList(asList(DubboService.class, Service.class, com.alibaba.dubbo.config.annotation.Service.class));\r\n+\r\n+    private final Annotation serviceAnnotation;\r\n+\r\n+    private final Class<?> serviceType;\r\n+\r\n+    public ServiceAnnotationResolver(Class<?> serviceType) throws IllegalArgumentException {\r\n+        this.serviceType = serviceType;\r\n+        this.serviceAnnotation = getServiceAnnotation(serviceType);\r\n+    }\r\n+\r\n+    private Annotation getServiceAnnotation(Class<?> serviceType) {\r\n+\r\n+        Annotation serviceAnnotation = null;\r\n+\r\n+        for (Class<? extends Annotation> serviceAnnotationClass : SERVICE_ANNOTATION_CLASSES) {\r\n+            serviceAnnotation = serviceType.getAnnotation(serviceAnnotationClass);\r\n+            if (serviceAnnotation != null) {\r\n+                break;\r\n+            }\r\n+        }\r\n+\r\n+        if (serviceAnnotation == null) {\r\n+            throw new IllegalArgumentException(format(\"Any annotation of [%s] can't be annotated in the service type[%s].\",\r\n+                    SERVICE_ANNOTATION_CLASSES,\r\n+                    serviceType.getName()\r\n+            ));\r\n+        }\r\n+\r\n+        return serviceAnnotation;\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the class name of interface\r\n+     *\r\n+     * @return if not found, return <code>null</code>\r\n+     */\r\n+    public String resolveInterfaceClassName() {\r\n+\r\n+        Class interfaceClass = null;\r\n+        // first, try to get the value from \"interfaceName\" attribute\r\n+        String interfaceName = resolveAttribute(\"interfaceName\");\r\n+\r\n+        if (isEmpty(interfaceName)) { // If not found, try \"interfaceClass\"\r\n+            interfaceClass = resolveAttribute(\"interfaceClass\");\r\n+        } else {\r\n+            interfaceClass = resolveClass(interfaceName, getClass().getClassLoader());\r\n+        }\r\n+\r\n+        if (isGenericClass(interfaceClass)) {\r\n+            interfaceName = interfaceClass.getName();\r\n+        } else {\r\n+            interfaceName = null;\r\n+        }\r\n+\r\n+        if (isEmpty(interfaceName)) { // If not fund, try to get the first interface from the service type\r\n+            Class[] interfaces = serviceType.getInterfaces();\r\n+            if (isNotEmpty(interfaces)) {\r\n+                interfaceName = interfaces[0].getName();\r\n+            }\r\n+        }\r\n+\r\n+        return interfaceName;\r\n+    }\r\n+\r\n+    public String resolveVersion() {\r\n+        return resolveAttribute(\"version\");\r\n+    }\r\n+\r\n+    public String resolveGroup() {\r\n+        return resolveAttribute(\"group\");\r\n+    }\r\n+\r\n+    private <T> T resolveAttribute(String attributeName) {\r\n+        return getAttribute(serviceAnnotation, attributeName);\r\n+    }\r\n+\r\n+    public Annotation getServiceAnnotation() {\r\n+        return serviceAnnotation;\r\n+    }\r\n+\r\n+    public Class<?> getServiceType() {\r\n+        return serviceType;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/Stack.java", "source2": "org/apache/dubbo/common/utils/Stack.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,143 +1,143 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.util.ArrayList;\n-import java.util.EmptyStackException;\n-import java.util.List;\n-\n-/**\n- * Stack.\n- */\n-\n-public class Stack<E> {\n-    private int mSize = 0;\n-\n-    private List<E> mElements = new ArrayList<E>();\n-\n-    public Stack() {\n-    }\n-\n-    /**\n-     * push.\n-     *\n-     * @param ele\n-     */\n-    public void push(E ele) {\n-        if (mElements.size() > mSize) {\n-            mElements.set(mSize, ele);\n-        } else {\n-            mElements.add(ele);\n-        }\n-        mSize++;\n-    }\n-\n-    /**\n-     * pop.\n-     *\n-     * @return the last element.\n-     */\n-    public E pop() {\n-        if (mSize == 0) {\n-            throw new EmptyStackException();\n-        }\n-        return mElements.set(--mSize, null);\n-    }\n-\n-    /**\n-     * peek.\n-     *\n-     * @return the last element.\n-     */\n-    public E peek() {\n-        if (mSize == 0) {\n-            throw new EmptyStackException();\n-        }\n-        return mElements.get(mSize - 1);\n-    }\n-\n-    /**\n-     * get.\n-     *\n-     * @param index index.\n-     * @return element.\n-     */\n-    public E get(int index) {\n-        if (index >= mSize || index + mSize < 0) {\n-            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\n-        }\n-\n-        return index < 0 ? mElements.get(index + mSize) : mElements.get(index);\n-    }\n-\n-    /**\n-     * set.\n-     *\n-     * @param index index.\n-     * @param value element.\n-     * @return old element.\n-     */\n-    public E set(int index, E value) {\n-        if (index >= mSize || index + mSize < 0) {\n-            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\n-        }\n-\n-        return mElements.set(index < 0 ? index + mSize : index, value);\n-    }\n-\n-    /**\n-     * remove.\n-     *\n-     * @param index\n-     * @return element\n-     */\n-    public E remove(int index) {\n-        if (index >= mSize || index + mSize < 0) {\n-            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\n-        }\n-\n-        E ret = mElements.remove(index < 0 ? index + mSize : index);\n-        mSize--;\n-        return ret;\n-    }\n-\n-    /**\n-     * get stack size.\n-     *\n-     * @return size.\n-     */\n-    public int size() {\n-        return mSize;\n-    }\n-\n-    /**\n-     * is empty.\n-     *\n-     * @return empty or not.\n-     */\n-    public boolean isEmpty() {\n-        return mSize == 0;\n-    }\n-\n-    /**\n-     * clear stack.\n-     */\n-    public void clear() {\n-        mSize = 0;\n-        mElements.clear();\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.EmptyStackException;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * Stack.\r\n+ */\r\n+\r\n+public class Stack<E> {\r\n+    private int mSize = 0;\r\n+\r\n+    private List<E> mElements = new ArrayList<E>();\r\n+\r\n+    public Stack() {\r\n+    }\r\n+\r\n+    /**\r\n+     * push.\r\n+     *\r\n+     * @param ele\r\n+     */\r\n+    public void push(E ele) {\r\n+        if (mElements.size() > mSize) {\r\n+            mElements.set(mSize, ele);\r\n+        } else {\r\n+            mElements.add(ele);\r\n+        }\r\n+        mSize++;\r\n+    }\r\n+\r\n+    /**\r\n+     * pop.\r\n+     *\r\n+     * @return the last element.\r\n+     */\r\n+    public E pop() {\r\n+        if (mSize == 0) {\r\n+            throw new EmptyStackException();\r\n+        }\r\n+        return mElements.set(--mSize, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * peek.\r\n+     *\r\n+     * @return the last element.\r\n+     */\r\n+    public E peek() {\r\n+        if (mSize == 0) {\r\n+            throw new EmptyStackException();\r\n+        }\r\n+        return mElements.get(mSize - 1);\r\n+    }\r\n+\r\n+    /**\r\n+     * get.\r\n+     *\r\n+     * @param index index.\r\n+     * @return element.\r\n+     */\r\n+    public E get(int index) {\r\n+        if (index >= mSize || index + mSize < 0) {\r\n+            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\r\n+        }\r\n+\r\n+        return index < 0 ? mElements.get(index + mSize) : mElements.get(index);\r\n+    }\r\n+\r\n+    /**\r\n+     * set.\r\n+     *\r\n+     * @param index index.\r\n+     * @param value element.\r\n+     * @return old element.\r\n+     */\r\n+    public E set(int index, E value) {\r\n+        if (index >= mSize || index + mSize < 0) {\r\n+            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\r\n+        }\r\n+\r\n+        return mElements.set(index < 0 ? index + mSize : index, value);\r\n+    }\r\n+\r\n+    /**\r\n+     * remove.\r\n+     *\r\n+     * @param index\r\n+     * @return element\r\n+     */\r\n+    public E remove(int index) {\r\n+        if (index >= mSize || index + mSize < 0) {\r\n+            throw new IndexOutOfBoundsException(\"Index: \" + index + \", Size: \" + mSize);\r\n+        }\r\n+\r\n+        E ret = mElements.remove(index < 0 ? index + mSize : index);\r\n+        mSize--;\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * get stack size.\r\n+     *\r\n+     * @return size.\r\n+     */\r\n+    public int size() {\r\n+        return mSize;\r\n+    }\r\n+\r\n+    /**\r\n+     * is empty.\r\n+     *\r\n+     * @return empty or not.\r\n+     */\r\n+    public boolean isEmpty() {\r\n+        return mSize == 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * clear stack.\r\n+     */\r\n+    public void clear() {\r\n+        mSize = 0;\r\n+        mElements.clear();\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/common/utils/StringConstantFieldValuePredicate.java", "source2": "org/apache/dubbo/common/utils/StringConstantFieldValuePredicate.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.Field;\n-import java.util.Set;\n-import java.util.function.Predicate;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-\n-import static java.lang.reflect.Modifier.isFinal;\n-import static java.lang.reflect.Modifier.isPublic;\n-import static java.lang.reflect.Modifier.isStatic;\n-import static org.apache.dubbo.common.utils.FieldUtils.getFieldValue;\n-\n-/**\n- * The constant field value {@link Predicate} for the specified {@link Class}\n- *\n- * @see Predicate\n- * @since 2.7.8\n- */\n-public class StringConstantFieldValuePredicate implements Predicate<String> {\n-\n-    private final Set<String> constantFieldValues;\n-\n-    public StringConstantFieldValuePredicate(Class<?> targetClass) {\n-        this.constantFieldValues = getConstantFieldValues(targetClass);\n-    }\n-\n-    public static Predicate<String> of(Class<?> targetClass) {\n-        return new StringConstantFieldValuePredicate(targetClass);\n-    }\n-\n-    private Set<String> getConstantFieldValues(Class<?> targetClass) {\n-        return Stream.of(targetClass.getFields())\n-                .filter(f -> isStatic(f.getModifiers()))         // static\n-                .filter(f -> isPublic(f.getModifiers()))         // public\n-                .filter(f -> isFinal(f.getModifiers()))          // final\n-                .map(this::getConstantValue)\n-                .filter(v -> v instanceof String)                // filters String type\n-                .map(String.class::cast)                         // Casts String type\n-                .collect(Collectors.toSet());\n-    }\n-\n-    @Override\n-    public boolean test(String s) {\n-        return constantFieldValues.contains(s);\n-    }\n-\n-    private Object getConstantValue(Field field) {\n-        return getFieldValue(null, field);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.Field;\r\n+import java.util.Set;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.lang.reflect.Modifier.isFinal;\r\n+import static java.lang.reflect.Modifier.isPublic;\r\n+import static java.lang.reflect.Modifier.isStatic;\r\n+import static org.apache.dubbo.common.utils.FieldUtils.getFieldValue;\r\n+\r\n+/**\r\n+ * The constant field value {@link Predicate} for the specified {@link Class}\r\n+ *\r\n+ * @see Predicate\r\n+ * @since 2.7.8\r\n+ */\r\n+public class StringConstantFieldValuePredicate implements Predicate<String> {\r\n+\r\n+    private final Set<String> constantFieldValues;\r\n+\r\n+    public StringConstantFieldValuePredicate(Class<?> targetClass) {\r\n+        this.constantFieldValues = getConstantFieldValues(targetClass);\r\n+    }\r\n+\r\n+    public static Predicate<String> of(Class<?> targetClass) {\r\n+        return new StringConstantFieldValuePredicate(targetClass);\r\n+    }\r\n+\r\n+    private Set<String> getConstantFieldValues(Class<?> targetClass) {\r\n+        return Stream.of(targetClass.getFields())\r\n+                .filter(f -> isStatic(f.getModifiers()))         // static\r\n+                .filter(f -> isPublic(f.getModifiers()))         // public\r\n+                .filter(f -> isFinal(f.getModifiers()))          // final\r\n+                .map(this::getConstantValue)\r\n+                .filter(v -> v instanceof String)                // filters String type\r\n+                .map(String.class::cast)                         // Casts String type\r\n+                .collect(Collectors.toSet());\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean test(String s) {\r\n+        return constantFieldValues.contains(s);\r\n+    }\r\n+\r\n+    private Object getConstantValue(Field field) {\r\n+        return getFieldValue(null, field);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/TypeUtils.java", "source2": "org/apache/dubbo/common/utils/TypeUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,224 +1,224 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.common.utils;\n-\n-import java.lang.reflect.ParameterizedType;\n-import java.lang.reflect.Type;\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.function.Predicate;\n-import java.util.stream.Collectors;\n-\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.emptyList;\n-import static java.util.Collections.unmodifiableList;\n-import static java.util.stream.Collectors.toList;\n-import static java.util.stream.Collectors.toSet;\n-import static java.util.stream.StreamSupport.stream;\n-import static org.apache.dubbo.common.function.Predicates.and;\n-import static org.apache.dubbo.common.function.Streams.filterAll;\n-import static org.apache.dubbo.common.function.Streams.filterList;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllSuperClasses;\n-import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\n-\n-/**\n- * The utilities class for {@link Type}\n- *\n- * @since 2.7.6\n- */\n-public interface TypeUtils {\n-\n-    Predicate<Class<?>> NON_OBJECT_TYPE_FILTER = t -> !Objects.equals(Object.class, t);\n-\n-    static boolean isParameterizedType(Type type) {\n-        return type instanceof ParameterizedType;\n-    }\n-\n-    static Type getRawType(Type type) {\n-        if (isParameterizedType(type)) {\n-            return ((ParameterizedType) type).getRawType();\n-        } else {\n-            return type;\n-        }\n-    }\n-\n-    static Class<?> getRawClass(Type type) {\n-        Type rawType = getRawType(type);\n-        if (isClass(rawType)) {\n-            return (Class) rawType;\n-        }\n-        return null;\n-    }\n-\n-    static boolean isClass(Type type) {\n-        return type instanceof Class;\n-    }\n-\n-    static <T> Class<T> findActualTypeArgument(Type type, Class<?> interfaceClass, int index) {\n-        return (Class<T>) findActualTypeArguments(type, interfaceClass).get(index);\n-    }\n-\n-    static List<Class<?>> findActualTypeArguments(Type type, Class<?> interfaceClass) {\n-\n-        List<Class<?>> actualTypeArguments = new LinkedList<>();\n-\n-        getAllGenericTypes(type, t -> isAssignableFrom(interfaceClass, getRawClass(t)))\n-                .forEach(parameterizedType -> {\n-                    Class<?> rawClass = getRawClass(parameterizedType);\n-                    Type[] typeArguments = parameterizedType.getActualTypeArguments();\n-                    for (int i = 0; i < typeArguments.length; i++) {\n-                        Type typeArgument = typeArguments[i];\n-                        if (typeArgument instanceof Class) {\n-                            actualTypeArguments.add(i, (Class) typeArgument);\n-                        }\n-                    }\n-                    Class<?> superClass = rawClass.getSuperclass();\n-                    if (superClass != null) {\n-                        actualTypeArguments.addAll(findActualTypeArguments(superClass, interfaceClass));\n-                    }\n-                });\n-\n-        return unmodifiableList(actualTypeArguments);\n-    }\n-\n-    /**\n-     * Get the specified types' generic types(including super classes and interfaces) that are assignable from {@link ParameterizedType} interface\n-     *\n-     * @param type        the specified type\n-     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<ParameterizedType> getGenericTypes(Type type, Predicate<ParameterizedType>... typeFilters) {\n-\n-        Class<?> rawClass = getRawClass(type);\n-\n-        if (rawClass == null) {\n-            return emptyList();\n-        }\n-\n-        List<Type> genericTypes = new LinkedList<>();\n-\n-        genericTypes.add(rawClass.getGenericSuperclass());\n-        genericTypes.addAll(asList(rawClass.getGenericInterfaces()));\n-\n-        return unmodifiableList(\n-                filterList(genericTypes, TypeUtils::isParameterizedType)\n-                        .stream()\n-                        .map(ParameterizedType.class::cast)\n-                        .filter(and(typeFilters))\n-                        .collect(toList())\n-        );\n-    }\n-\n-    /**\n-     * Get all generic types(including super classes and interfaces) that are assignable from {@link ParameterizedType} interface\n-     *\n-     * @param type        the specified type\n-     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<ParameterizedType> getAllGenericTypes(Type type, Predicate<ParameterizedType>... typeFilters) {\n-        List<ParameterizedType> allGenericTypes = new LinkedList<>();\n-        // Add generic super classes\n-        allGenericTypes.addAll(getAllGenericSuperClasses(type, typeFilters));\n-        // Add generic super interfaces\n-        allGenericTypes.addAll(getAllGenericInterfaces(type, typeFilters));\n-        // wrap unmodifiable object\n-        return unmodifiableList(allGenericTypes);\n-    }\n-\n-    /**\n-     * Get all generic super classes that are assignable from {@link ParameterizedType} interface\n-     *\n-     * @param type        the specified type\n-     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<ParameterizedType> getAllGenericSuperClasses(Type type, Predicate<ParameterizedType>... typeFilters) {\n-\n-        Class<?> rawClass = getRawClass(type);\n-\n-        if (rawClass == null || rawClass.isInterface()) {\n-            return emptyList();\n-        }\n-\n-        List<Class<?>> allTypes = new LinkedList<>();\n-        // Add current class\n-        allTypes.add(rawClass);\n-        // Add all super classes\n-        allTypes.addAll(getAllSuperClasses(rawClass, NON_OBJECT_TYPE_FILTER));\n-\n-        List<ParameterizedType> allGenericSuperClasses = allTypes\n-                .stream()\n-                .map(Class::getGenericSuperclass)\n-                .filter(TypeUtils::isParameterizedType)\n-                .map(ParameterizedType.class::cast)\n-                .collect(Collectors.toList());\n-\n-        return unmodifiableList(filterAll(allGenericSuperClasses, typeFilters));\n-    }\n-\n-    /**\n-     * Get all generic interfaces that are assignable from {@link ParameterizedType} interface\n-     *\n-     * @param type        the specified type\n-     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\n-     * @return non-null read-only {@link List}\n-     */\n-    static List<ParameterizedType> getAllGenericInterfaces(Type type, Predicate<ParameterizedType>... typeFilters) {\n-\n-        Class<?> rawClass = getRawClass(type);\n-\n-        if (rawClass == null) {\n-            return emptyList();\n-        }\n-\n-        List<Class<?>> allTypes = new LinkedList<>();\n-        // Add current class\n-        allTypes.add(rawClass);\n-        // Add all super classes\n-        allTypes.addAll(getAllSuperClasses(rawClass, NON_OBJECT_TYPE_FILTER));\n-        // Add all super interfaces\n-        allTypes.addAll(getAllInterfaces(rawClass));\n-\n-        List<ParameterizedType> allGenericInterfaces = allTypes\n-                .stream()\n-                .map(Class::getGenericInterfaces)\n-                .map(Arrays::asList)\n-                .flatMap(Collection::stream)\n-                .filter(TypeUtils::isParameterizedType)\n-                .map(ParameterizedType.class::cast)\n-                .collect(toList());\n-\n-        return unmodifiableList(filterAll(allGenericInterfaces, typeFilters));\n-    }\n-\n-    static String getClassName(Type type) {\n-        return getRawType(type).getTypeName();\n-    }\n-\n-    static Set<String> getClassNames(Iterable<? extends Type> types) {\n-        return stream(types.spliterator(), false)\n-                .map(TypeUtils::getClassName)\n-                .collect(toSet());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.lang.reflect.Type;\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.emptyList;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static java.util.stream.Collectors.toList;\r\n+import static java.util.stream.Collectors.toSet;\r\n+import static java.util.stream.StreamSupport.stream;\r\n+import static org.apache.dubbo.common.function.Predicates.and;\r\n+import static org.apache.dubbo.common.function.Streams.filterAll;\r\n+import static org.apache.dubbo.common.function.Streams.filterList;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllSuperClasses;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.isAssignableFrom;\r\n+\r\n+/**\r\n+ * The utilities class for {@link Type}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface TypeUtils {\r\n+\r\n+    Predicate<Class<?>> NON_OBJECT_TYPE_FILTER = t -> !Objects.equals(Object.class, t);\r\n+\r\n+    static boolean isParameterizedType(Type type) {\r\n+        return type instanceof ParameterizedType;\r\n+    }\r\n+\r\n+    static Type getRawType(Type type) {\r\n+        if (isParameterizedType(type)) {\r\n+            return ((ParameterizedType) type).getRawType();\r\n+        } else {\r\n+            return type;\r\n+        }\r\n+    }\r\n+\r\n+    static Class<?> getRawClass(Type type) {\r\n+        Type rawType = getRawType(type);\r\n+        if (isClass(rawType)) {\r\n+            return (Class) rawType;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    static boolean isClass(Type type) {\r\n+        return type instanceof Class;\r\n+    }\r\n+\r\n+    static <T> Class<T> findActualTypeArgument(Type type, Class<?> interfaceClass, int index) {\r\n+        return (Class<T>) findActualTypeArguments(type, interfaceClass).get(index);\r\n+    }\r\n+\r\n+    static List<Class<?>> findActualTypeArguments(Type type, Class<?> interfaceClass) {\r\n+\r\n+        List<Class<?>> actualTypeArguments = new LinkedList<>();\r\n+\r\n+        getAllGenericTypes(type, t -> isAssignableFrom(interfaceClass, getRawClass(t)))\r\n+                .forEach(parameterizedType -> {\r\n+                    Class<?> rawClass = getRawClass(parameterizedType);\r\n+                    Type[] typeArguments = parameterizedType.getActualTypeArguments();\r\n+                    for (int i = 0; i < typeArguments.length; i++) {\r\n+                        Type typeArgument = typeArguments[i];\r\n+                        if (typeArgument instanceof Class) {\r\n+                            actualTypeArguments.add(i, (Class) typeArgument);\r\n+                        }\r\n+                    }\r\n+                    Class<?> superClass = rawClass.getSuperclass();\r\n+                    if (superClass != null) {\r\n+                        actualTypeArguments.addAll(findActualTypeArguments(superClass, interfaceClass));\r\n+                    }\r\n+                });\r\n+\r\n+        return unmodifiableList(actualTypeArguments);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the specified types' generic types(including super classes and interfaces) that are assignable from {@link ParameterizedType} interface\r\n+     *\r\n+     * @param type        the specified type\r\n+     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<ParameterizedType> getGenericTypes(Type type, Predicate<ParameterizedType>... typeFilters) {\r\n+\r\n+        Class<?> rawClass = getRawClass(type);\r\n+\r\n+        if (rawClass == null) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        List<Type> genericTypes = new LinkedList<>();\r\n+\r\n+        genericTypes.add(rawClass.getGenericSuperclass());\r\n+        genericTypes.addAll(asList(rawClass.getGenericInterfaces()));\r\n+\r\n+        return unmodifiableList(\r\n+                filterList(genericTypes, TypeUtils::isParameterizedType)\r\n+                        .stream()\r\n+                        .map(ParameterizedType.class::cast)\r\n+                        .filter(and(typeFilters))\r\n+                        .collect(toList())\r\n+        );\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all generic types(including super classes and interfaces) that are assignable from {@link ParameterizedType} interface\r\n+     *\r\n+     * @param type        the specified type\r\n+     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<ParameterizedType> getAllGenericTypes(Type type, Predicate<ParameterizedType>... typeFilters) {\r\n+        List<ParameterizedType> allGenericTypes = new LinkedList<>();\r\n+        // Add generic super classes\r\n+        allGenericTypes.addAll(getAllGenericSuperClasses(type, typeFilters));\r\n+        // Add generic super interfaces\r\n+        allGenericTypes.addAll(getAllGenericInterfaces(type, typeFilters));\r\n+        // wrap unmodifiable object\r\n+        return unmodifiableList(allGenericTypes);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all generic super classes that are assignable from {@link ParameterizedType} interface\r\n+     *\r\n+     * @param type        the specified type\r\n+     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<ParameterizedType> getAllGenericSuperClasses(Type type, Predicate<ParameterizedType>... typeFilters) {\r\n+\r\n+        Class<?> rawClass = getRawClass(type);\r\n+\r\n+        if (rawClass == null || rawClass.isInterface()) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        List<Class<?>> allTypes = new LinkedList<>();\r\n+        // Add current class\r\n+        allTypes.add(rawClass);\r\n+        // Add all super classes\r\n+        allTypes.addAll(getAllSuperClasses(rawClass, NON_OBJECT_TYPE_FILTER));\r\n+\r\n+        List<ParameterizedType> allGenericSuperClasses = allTypes\r\n+                .stream()\r\n+                .map(Class::getGenericSuperclass)\r\n+                .filter(TypeUtils::isParameterizedType)\r\n+                .map(ParameterizedType.class::cast)\r\n+                .collect(Collectors.toList());\r\n+\r\n+        return unmodifiableList(filterAll(allGenericSuperClasses, typeFilters));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all generic interfaces that are assignable from {@link ParameterizedType} interface\r\n+     *\r\n+     * @param type        the specified type\r\n+     * @param typeFilters one or more {@link Predicate}s to filter the {@link ParameterizedType} instance\r\n+     * @return non-null read-only {@link List}\r\n+     */\r\n+    static List<ParameterizedType> getAllGenericInterfaces(Type type, Predicate<ParameterizedType>... typeFilters) {\r\n+\r\n+        Class<?> rawClass = getRawClass(type);\r\n+\r\n+        if (rawClass == null) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        List<Class<?>> allTypes = new LinkedList<>();\r\n+        // Add current class\r\n+        allTypes.add(rawClass);\r\n+        // Add all super classes\r\n+        allTypes.addAll(getAllSuperClasses(rawClass, NON_OBJECT_TYPE_FILTER));\r\n+        // Add all super interfaces\r\n+        allTypes.addAll(getAllInterfaces(rawClass));\r\n+\r\n+        List<ParameterizedType> allGenericInterfaces = allTypes\r\n+                .stream()\r\n+                .map(Class::getGenericInterfaces)\r\n+                .map(Arrays::asList)\r\n+                .flatMap(Collection::stream)\r\n+                .filter(TypeUtils::isParameterizedType)\r\n+                .map(ParameterizedType.class::cast)\r\n+                .collect(toList());\r\n+\r\n+        return unmodifiableList(filterAll(allGenericInterfaces, typeFilters));\r\n+    }\r\n+\r\n+    static String getClassName(Type type) {\r\n+        return getRawType(type).getTypeName();\r\n+    }\r\n+\r\n+    static Set<String> getClassNames(Iterable<? extends Type> types) {\r\n+        return stream(types.spliterator(), false)\r\n+                .map(TypeUtils::getClassName)\r\n+                .collect(toSet());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/common/utils/Utf8Utils.java", "source2": "org/apache/dubbo/common/utils/Utf8Utils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,229 +1,229 @@\n-// Protocol Buffers - Google's data interchange format\n-// Copyright 2008 Google Inc.  All rights reserved.\n-// https://developers.google.com/protocol-buffers/\n-//\n-// Redistribution and use in source and binary forms, with or without\n-// modification, are permitted provided that the following conditions are\n-// met:\n-//\n-//     * Redistributions of source code must retain the above copyright\n-// notice, this list of conditions and the following disclaimer.\n-//     * Redistributions in binary form must reproduce the above\n-// copyright notice, this list of conditions and the following disclaimer\n-// in the documentation and/or other materials provided with the\n-// distribution.\n-//     * Neither the name of Google Inc. nor the names of its\n-// contributors may be used to endorse or promote products derived from\n-// this software without specific prior written permission.\n-//\n-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\n-// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\n-// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\n-// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\n-// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\n-// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\n-// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\n-// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\n-// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n-// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\n-// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n-package org.apache.dubbo.common.utils;\n-\n-import static java.lang.Character.MIN_HIGH_SURROGATE;\n-import static java.lang.Character.MIN_LOW_SURROGATE;\n-import static java.lang.Character.MIN_SUPPLEMENTARY_CODE_POINT;\n-\n-/**\n- * See original <a href=\n- * \"https://github.com/protocolbuffers/protobuf/blob/master/java/core/src/main/java/com/google/protobuf/Utf8.java\"\n- * >Utf8.java</a>\n- */\n-public final class Utf8Utils {\n-\n-    private Utf8Utils() {\n-        //empty\n-    }\n-\n-    public static int decodeUtf8(byte[] srcBytes, int srcIdx, int srcSize, char[] destChars, int destIdx) {\n-        // Bitwise OR combines the sign bits so any negative value fails the check.\n-        if ((srcIdx | srcSize | srcBytes.length - srcIdx - srcSize) < 0\n-                || (destIdx | destChars.length - destIdx - srcSize) < 0) {\n-            String exMsg = String.format(\"buffer srcBytes.length=%d, srcIdx=%d, srcSize=%d, destChars.length=%d, \" +\n-                    \"destIdx=%d\", srcBytes.length, srcIdx, srcSize, destChars.length, destIdx);\n-            throw new ArrayIndexOutOfBoundsException(\n-                    exMsg);\n-        }\n-\n-        int offset = srcIdx;\n-        final int limit = offset + srcSize;\n-        final int destIdx0 = destIdx;\n-\n-        // Optimize for 100% ASCII (Hotspot loves small simple top-level loops like this).\n-        // This simple loop stops when we encounter a byte >= 0x80 (i.e. non-ASCII).\n-        while (offset < limit) {\n-            byte b = srcBytes[offset];\n-            if (!DecodeUtil.isOneByte(b)) {\n-                break;\n-            }\n-            offset++;\n-            DecodeUtil.handleOneByteSafe(b, destChars, destIdx++);\n-        }\n-\n-        while (offset < limit) {\n-            byte byte1 = srcBytes[offset++];\n-            if (DecodeUtil.isOneByte(byte1)) {\n-                DecodeUtil.handleOneByteSafe(byte1, destChars, destIdx++);\n-                // It's common for there to be multiple ASCII characters in a run mixed in, so add an\n-                // extra optimized loop to take care of these runs.\n-                while (offset < limit) {\n-                    byte b = srcBytes[offset];\n-                    if (!DecodeUtil.isOneByte(b)) {\n-                        break;\n-                    }\n-                    offset++;\n-                    DecodeUtil.handleOneByteSafe(b, destChars, destIdx++);\n-                }\n-            } else if (DecodeUtil.isTwoBytes(byte1)) {\n-                if (offset >= limit) {\n-                    throw new IllegalArgumentException(\"invalid UTF-8.\");\n-                }\n-                DecodeUtil.handleTwoBytesSafe(byte1, /* byte2 */ srcBytes[offset++], destChars, destIdx++);\n-            } else if (DecodeUtil.isThreeBytes(byte1)) {\n-                if (offset >= limit - 1) {\n-                    throw new IllegalArgumentException(\"invalid UTF-8.\");\n-                }\n-                DecodeUtil.handleThreeBytesSafe(\n-                        byte1,\n-                        /* byte2 */ srcBytes[offset++],\n-                        /* byte3 */ srcBytes[offset++],\n-                        destChars,\n-                        destIdx++);\n-            } else {\n-                if (offset >= limit - 2) {\n-                    throw new IllegalArgumentException(\"invalid UTF-8.\");\n-                }\n-                DecodeUtil.handleFourBytesSafe(\n-                        byte1,\n-                        /* byte2 */ srcBytes[offset++],\n-                        /* byte3 */ srcBytes[offset++],\n-                        /* byte4 */ srcBytes[offset++],\n-                        destChars,\n-                        destIdx);\n-                destIdx += 2;\n-            }\n-        }\n-        return destIdx - destIdx0;\n-    }\n-\n-\n-    private static class DecodeUtil {\n-\n-        /**\n-         * Returns whether this is a single-byte codepoint (i.e., ASCII) with the form '0XXXXXXX'.\n-         */\n-        private static boolean isOneByte(byte b) {\n-            return b >= 0;\n-        }\n-\n-        /**\n-         * Returns whether this is a two-byte codepoint with the form '10XXXXXX'.\n-         */\n-        private static boolean isTwoBytes(byte b) {\n-            return b < (byte) 0xE0;\n-        }\n-\n-        /**\n-         * Returns whether this is a three-byte codepoint with the form '110XXXXX'.\n-         */\n-        private static boolean isThreeBytes(byte b) {\n-            return b < (byte) 0xF0;\n-        }\n-\n-        private static void handleOneByteSafe(byte byte1, char[] resultArr, int resultPos) {\n-            resultArr[resultPos] = (char) byte1;\n-        }\n-\n-        private static void handleTwoBytesSafe(byte byte1, byte byte2, char[] resultArr, int resultPos) {\n-            checkUtf8(byte1, byte2);\n-            resultArr[resultPos] = (char) (((byte1 & 0x1F) << 6) | trailingByteValue(byte2));\n-        }\n-\n-        private static void checkUtf8(byte byte1, byte byte2) {\n-            // Simultaneously checks for illegal trailing-byte in leading position (<= '11000000') and\n-            // overlong 2-byte, '11000001'.\n-            if (byte1 < (byte) 0xC2 || isNotTrailingByte(byte2)) {\n-                throw new IllegalArgumentException(\"invalid UTF-8.\");\n-            }\n-        }\n-\n-        private static void handleThreeBytesSafe(byte byte1, byte byte2, byte byte3, char[] resultArr, int resultPos) {\n-            checkUtf8(byte1, byte2, byte3);\n-            resultArr[resultPos] =\n-                    (char) (((byte1 & 0x0F) << 12) | (trailingByteValue(byte2) << 6) | trailingByteValue(byte3));\n-        }\n-\n-        private static void checkUtf8(byte byte1, byte byte2, byte byte3) {\n-            if (isNotTrailingByte(byte2)\n-                    // overlong? 5 most significant bits must not all be zero\n-                    || (byte1 == (byte) 0xE0 && byte2 < (byte) 0xA0)\n-                    // check for illegal surrogate codepoints\n-                    || (byte1 == (byte) 0xED && byte2 >= (byte) 0xA0)\n-                    || isNotTrailingByte(byte3)) {\n-                throw new IllegalArgumentException(\"invalid UTF-8.\");\n-            }\n-        }\n-\n-        private static void handleFourBytesSafe(byte byte1, byte byte2, byte byte3, byte byte4, char[] resultArr,\n-                                                int resultPos) {\n-            checkUtf8(byte1, byte2, byte3, byte4);\n-            int codepoint =\n-                    ((byte1 & 0x07) << 18)\n-                            | (trailingByteValue(byte2) << 12)\n-                            | (trailingByteValue(byte3) << 6)\n-                            | trailingByteValue(byte4);\n-\n-            resultArr[resultPos] = DecodeUtil.highSurrogate(codepoint);\n-            resultArr[resultPos + 1] = DecodeUtil.lowSurrogate(codepoint);\n-        }\n-\n-        private static void checkUtf8(byte byte1, byte byte2, byte byte3, byte byte4) {\n-            if (isNotTrailingByte(byte2)\n-                    // Check that 1 <= plane <= 16.  Tricky optimized form of:\n-                    //   valid 4-byte leading byte?\n-                    // if (byte1 > (byte) 0xF4 ||\n-                    //   overlong? 4 most significant bits must not all be zero\n-                    //     byte1 == (byte) 0xF0 && byte2 < (byte) 0x90 ||\n-                    //   codepoint larger than the highest code point (U+10FFFF)?\n-                    //     byte1 == (byte) 0xF4 && byte2 > (byte) 0x8F)\n-                    || (((byte1 << 28) + (byte2 - (byte) 0x90)) >> 30) != 0\n-                    || isNotTrailingByte(byte3)\n-                    || isNotTrailingByte(byte4)) {\n-                throw new IllegalArgumentException(\"invalid UTF-8.\");\n-            }\n-        }\n-\n-        /**\n-         * Returns whether the byte is not a valid continuation of the form '10XXXXXX'.\n-         */\n-        private static boolean isNotTrailingByte(byte b) {\n-            return b > (byte) 0xBF;\n-        }\n-\n-        /**\n-         * Returns the actual value of the trailing byte (removes the prefix '10') for composition.\n-         */\n-        private static int trailingByteValue(byte b) {\n-            return b & 0x3F;\n-        }\n-\n-        private static char highSurrogate(int codePoint) {\n-            return (char)\n-                    ((MIN_HIGH_SURROGATE - (MIN_SUPPLEMENTARY_CODE_POINT >>> 10)) + (codePoint >>> 10));\n-        }\n-\n-        private static char lowSurrogate(int codePoint) {\n-            return (char) (MIN_LOW_SURROGATE + (codePoint & 0x3ff));\n-        }\n-    }\n-\n-}\n+// Protocol Buffers - Google's data interchange format\r\n+// Copyright 2008 Google Inc.  All rights reserved.\r\n+// https://developers.google.com/protocol-buffers/\r\n+//\r\n+// Redistribution and use in source and binary forms, with or without\r\n+// modification, are permitted provided that the following conditions are\r\n+// met:\r\n+//\r\n+//     * Redistributions of source code must retain the above copyright\r\n+// notice, this list of conditions and the following disclaimer.\r\n+//     * Redistributions in binary form must reproduce the above\r\n+// copyright notice, this list of conditions and the following disclaimer\r\n+// in the documentation and/or other materials provided with the\r\n+// distribution.\r\n+//     * Neither the name of Google Inc. nor the names of its\r\n+// contributors may be used to endorse or promote products derived from\r\n+// this software without specific prior written permission.\r\n+//\r\n+// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS\r\n+// \"AS IS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT\r\n+// LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR\r\n+// A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\r\n+// OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\r\n+// SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT\r\n+// LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,\r\n+// DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY\r\n+// THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\r\n+// (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\r\n+// OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\r\n+package org.apache.dubbo.common.utils;\r\n+\r\n+import static java.lang.Character.MIN_HIGH_SURROGATE;\r\n+import static java.lang.Character.MIN_LOW_SURROGATE;\r\n+import static java.lang.Character.MIN_SUPPLEMENTARY_CODE_POINT;\r\n+\r\n+/**\r\n+ * See original <a href=\r\n+ * \"https://github.com/protocolbuffers/protobuf/blob/master/java/core/src/main/java/com/google/protobuf/Utf8.java\"\r\n+ * >Utf8.java</a>\r\n+ */\r\n+public final class Utf8Utils {\r\n+\r\n+    private Utf8Utils() {\r\n+        //empty\r\n+    }\r\n+\r\n+    public static int decodeUtf8(byte[] srcBytes, int srcIdx, int srcSize, char[] destChars, int destIdx) {\r\n+        // Bitwise OR combines the sign bits so any negative value fails the check.\r\n+        if ((srcIdx | srcSize | srcBytes.length - srcIdx - srcSize) < 0\r\n+                || (destIdx | destChars.length - destIdx - srcSize) < 0) {\r\n+            String exMsg = String.format(\"buffer srcBytes.length=%d, srcIdx=%d, srcSize=%d, destChars.length=%d, \" +\r\n+                    \"destIdx=%d\", srcBytes.length, srcIdx, srcSize, destChars.length, destIdx);\r\n+            throw new ArrayIndexOutOfBoundsException(\r\n+                    exMsg);\r\n+        }\r\n+\r\n+        int offset = srcIdx;\r\n+        final int limit = offset + srcSize;\r\n+        final int destIdx0 = destIdx;\r\n+\r\n+        // Optimize for 100% ASCII (Hotspot loves small simple top-level loops like this).\r\n+        // This simple loop stops when we encounter a byte >= 0x80 (i.e. non-ASCII).\r\n+        while (offset < limit) {\r\n+            byte b = srcBytes[offset];\r\n+            if (!DecodeUtil.isOneByte(b)) {\r\n+                break;\r\n+            }\r\n+            offset++;\r\n+            DecodeUtil.handleOneByteSafe(b, destChars, destIdx++);\r\n+        }\r\n+\r\n+        while (offset < limit) {\r\n+            byte byte1 = srcBytes[offset++];\r\n+            if (DecodeUtil.isOneByte(byte1)) {\r\n+                DecodeUtil.handleOneByteSafe(byte1, destChars, destIdx++);\r\n+                // It's common for there to be multiple ASCII characters in a run mixed in, so add an\r\n+                // extra optimized loop to take care of these runs.\r\n+                while (offset < limit) {\r\n+                    byte b = srcBytes[offset];\r\n+                    if (!DecodeUtil.isOneByte(b)) {\r\n+                        break;\r\n+                    }\r\n+                    offset++;\r\n+                    DecodeUtil.handleOneByteSafe(b, destChars, destIdx++);\r\n+                }\r\n+            } else if (DecodeUtil.isTwoBytes(byte1)) {\r\n+                if (offset >= limit) {\r\n+                    throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+                }\r\n+                DecodeUtil.handleTwoBytesSafe(byte1, /* byte2 */ srcBytes[offset++], destChars, destIdx++);\r\n+            } else if (DecodeUtil.isThreeBytes(byte1)) {\r\n+                if (offset >= limit - 1) {\r\n+                    throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+                }\r\n+                DecodeUtil.handleThreeBytesSafe(\r\n+                        byte1,\r\n+                        /* byte2 */ srcBytes[offset++],\r\n+                        /* byte3 */ srcBytes[offset++],\r\n+                        destChars,\r\n+                        destIdx++);\r\n+            } else {\r\n+                if (offset >= limit - 2) {\r\n+                    throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+                }\r\n+                DecodeUtil.handleFourBytesSafe(\r\n+                        byte1,\r\n+                        /* byte2 */ srcBytes[offset++],\r\n+                        /* byte3 */ srcBytes[offset++],\r\n+                        /* byte4 */ srcBytes[offset++],\r\n+                        destChars,\r\n+                        destIdx);\r\n+                destIdx += 2;\r\n+            }\r\n+        }\r\n+        return destIdx - destIdx0;\r\n+    }\r\n+\r\n+\r\n+    private static class DecodeUtil {\r\n+\r\n+        /**\r\n+         * Returns whether this is a single-byte codepoint (i.e., ASCII) with the form '0XXXXXXX'.\r\n+         */\r\n+        private static boolean isOneByte(byte b) {\r\n+            return b >= 0;\r\n+        }\r\n+\r\n+        /**\r\n+         * Returns whether this is a two-byte codepoint with the form '10XXXXXX'.\r\n+         */\r\n+        private static boolean isTwoBytes(byte b) {\r\n+            return b < (byte) 0xE0;\r\n+        }\r\n+\r\n+        /**\r\n+         * Returns whether this is a three-byte codepoint with the form '110XXXXX'.\r\n+         */\r\n+        private static boolean isThreeBytes(byte b) {\r\n+            return b < (byte) 0xF0;\r\n+        }\r\n+\r\n+        private static void handleOneByteSafe(byte byte1, char[] resultArr, int resultPos) {\r\n+            resultArr[resultPos] = (char) byte1;\r\n+        }\r\n+\r\n+        private static void handleTwoBytesSafe(byte byte1, byte byte2, char[] resultArr, int resultPos) {\r\n+            checkUtf8(byte1, byte2);\r\n+            resultArr[resultPos] = (char) (((byte1 & 0x1F) << 6) | trailingByteValue(byte2));\r\n+        }\r\n+\r\n+        private static void checkUtf8(byte byte1, byte byte2) {\r\n+            // Simultaneously checks for illegal trailing-byte in leading position (<= '11000000') and\r\n+            // overlong 2-byte, '11000001'.\r\n+            if (byte1 < (byte) 0xC2 || isNotTrailingByte(byte2)) {\r\n+                throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+            }\r\n+        }\r\n+\r\n+        private static void handleThreeBytesSafe(byte byte1, byte byte2, byte byte3, char[] resultArr, int resultPos) {\r\n+            checkUtf8(byte1, byte2, byte3);\r\n+            resultArr[resultPos] =\r\n+                    (char) (((byte1 & 0x0F) << 12) | (trailingByteValue(byte2) << 6) | trailingByteValue(byte3));\r\n+        }\r\n+\r\n+        private static void checkUtf8(byte byte1, byte byte2, byte byte3) {\r\n+            if (isNotTrailingByte(byte2)\r\n+                    // overlong? 5 most significant bits must not all be zero\r\n+                    || (byte1 == (byte) 0xE0 && byte2 < (byte) 0xA0)\r\n+                    // check for illegal surrogate codepoints\r\n+                    || (byte1 == (byte) 0xED && byte2 >= (byte) 0xA0)\r\n+                    || isNotTrailingByte(byte3)) {\r\n+                throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+            }\r\n+        }\r\n+\r\n+        private static void handleFourBytesSafe(byte byte1, byte byte2, byte byte3, byte byte4, char[] resultArr,\r\n+                                                int resultPos) {\r\n+            checkUtf8(byte1, byte2, byte3, byte4);\r\n+            int codepoint =\r\n+                    ((byte1 & 0x07) << 18)\r\n+                            | (trailingByteValue(byte2) << 12)\r\n+                            | (trailingByteValue(byte3) << 6)\r\n+                            | trailingByteValue(byte4);\r\n+\r\n+            resultArr[resultPos] = DecodeUtil.highSurrogate(codepoint);\r\n+            resultArr[resultPos + 1] = DecodeUtil.lowSurrogate(codepoint);\r\n+        }\r\n+\r\n+        private static void checkUtf8(byte byte1, byte byte2, byte byte3, byte byte4) {\r\n+            if (isNotTrailingByte(byte2)\r\n+                    // Check that 1 <= plane <= 16.  Tricky optimized form of:\r\n+                    //   valid 4-byte leading byte?\r\n+                    // if (byte1 > (byte) 0xF4 ||\r\n+                    //   overlong? 4 most significant bits must not all be zero\r\n+                    //     byte1 == (byte) 0xF0 && byte2 < (byte) 0x90 ||\r\n+                    //   codepoint larger than the highest code point (U+10FFFF)?\r\n+                    //     byte1 == (byte) 0xF4 && byte2 > (byte) 0x8F)\r\n+                    || (((byte1 << 28) + (byte2 - (byte) 0x90)) >> 30) != 0\r\n+                    || isNotTrailingByte(byte3)\r\n+                    || isNotTrailingByte(byte4)) {\r\n+                throw new IllegalArgumentException(\"invalid UTF-8.\");\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * Returns whether the byte is not a valid continuation of the form '10XXXXXX'.\r\n+         */\r\n+        private static boolean isNotTrailingByte(byte b) {\r\n+            return b > (byte) 0xBF;\r\n+        }\r\n+\r\n+        /**\r\n+         * Returns the actual value of the trailing byte (removes the prefix '10') for composition.\r\n+         */\r\n+        private static int trailingByteValue(byte b) {\r\n+            return b & 0x3F;\r\n+        }\r\n+\r\n+        private static char highSurrogate(int codePoint) {\r\n+            return (char)\r\n+                    ((MIN_HIGH_SURROGATE - (MIN_SUPPLEMENTARY_CODE_POINT >>> 10)) + (codePoint >>> 10));\r\n+        }\r\n+\r\n+        private static char lowSurrogate(int codePoint) {\r\n+            return (char) (MIN_LOW_SURROGATE + (codePoint & 0x3ff));\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/AbstractConfig.java", "source2": "org/apache/dubbo/config/AbstractConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,614 +1,614 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.CompositeConfiguration;\n-import org.apache.dubbo.common.config.Environment;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.MethodUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.AsyncMethodInfo;\n-\n-import javax.annotation.PostConstruct;\n-import java.io.Serializable;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.utils.ReflectUtils.findMethodByMethodSignature;\n-\n-/**\n- * Utility methods and public methods for parsing configuration\n- *\n- * @export\n- */\n-public abstract class AbstractConfig implements Serializable {\n-\n-    protected static final Logger logger = LoggerFactory.getLogger(AbstractConfig.class);\n-    private static final long serialVersionUID = 4267533505537413570L;\n-\n-    /**\n-     * The legacy properties container\n-     */\n-    private static final Map<String, String> LEGACY_PROPERTIES = new HashMap<String, String>();\n-\n-    /**\n-     * The suffix container\n-     */\n-    private static final String[] SUFFIXES = new String[]{\"Config\", \"Bean\", \"ConfigBase\"};\n-\n-    static {\n-        LEGACY_PROPERTIES.put(\"dubbo.protocol.name\", \"dubbo.service.protocol\");\n-        LEGACY_PROPERTIES.put(\"dubbo.protocol.host\", \"dubbo.service.server.host\");\n-        LEGACY_PROPERTIES.put(\"dubbo.protocol.port\", \"dubbo.service.server.port\");\n-        LEGACY_PROPERTIES.put(\"dubbo.protocol.threads\", \"dubbo.service.max.thread.pool.size\");\n-        LEGACY_PROPERTIES.put(\"dubbo.consumer.timeout\", \"dubbo.service.invoke.timeout\");\n-        LEGACY_PROPERTIES.put(\"dubbo.consumer.retries\", \"dubbo.service.max.retry.providers\");\n-        LEGACY_PROPERTIES.put(\"dubbo.consumer.check\", \"dubbo.service.allow.no.provider\");\n-        LEGACY_PROPERTIES.put(\"dubbo.service.url\", \"dubbo.service.address\");\n-    }\n-\n-    /**\n-     * The config id\n-     */\n-    protected String id;\n-    protected String prefix;\n-\n-    protected final AtomicBoolean refreshed = new AtomicBoolean(false);\n-\n-    private static String convertLegacyValue(String key, String value) {\n-        if (value != null && value.length() > 0) {\n-            if (\"dubbo.service.max.retry.providers\".equals(key)) {\n-                return String.valueOf(Integer.parseInt(value) - 1);\n-            } else if (\"dubbo.service.allow.no.provider\".equals(key)) {\n-                return String.valueOf(!Boolean.parseBoolean(value));\n-            }\n-        }\n-        return value;\n-    }\n-\n-    public static String getTagName(Class<?> cls) {\n-        String tag = cls.getSimpleName();\n-        for (String suffix : SUFFIXES) {\n-            if (tag.endsWith(suffix)) {\n-                tag = tag.substring(0, tag.length() - suffix.length());\n-                break;\n-            }\n-        }\n-        return StringUtils.camelToSplitName(tag, \"-\");\n-    }\n-\n-    public static void appendParameters(Map<String, String> parameters, Object config) {\n-        appendParameters(parameters, config, null);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public static void appendParameters(Map<String, String> parameters, Object config, String prefix) {\n-        if (config == null) {\n-            return;\n-        }\n-        Method[] methods = config.getClass().getMethods();\n-        for (Method method : methods) {\n-            try {\n-                String name = method.getName();\n-                if (MethodUtils.isGetter(method)) {\n-                    Parameter parameter = method.getAnnotation(Parameter.class);\n-                    if (method.getReturnType() == Object.class || parameter != null && parameter.excluded()) {\n-                        continue;\n-                    }\n-                    String key;\n-                    if (parameter != null && parameter.key().length() > 0) {\n-                        key = parameter.key();\n-                    } else {\n-                        key = calculatePropertyFromGetter(name);\n-                    }\n-                    Object value = method.invoke(config);\n-                    String str = String.valueOf(value).trim();\n-                    if (value != null && str.length() > 0) {\n-                        if (parameter != null && parameter.escaped()) {\n-                            str = URL.encode(str);\n-                        }\n-                        if (parameter != null && parameter.append()) {\n-                            String pre = parameters.get(key);\n-                            if (pre != null && pre.length() > 0) {\n-                                str = pre + \",\" + str;\n-                            }\n-                        }\n-                        if (prefix != null && prefix.length() > 0) {\n-                            key = prefix + \".\" + key;\n-                        }\n-                        parameters.put(key, str);\n-                    } else if (parameter != null && parameter.required()) {\n-                        throw new IllegalStateException(config.getClass().getSimpleName() + \".\" + key + \" == null\");\n-                    }\n-                } else if (isParametersGetter(method)) {\n-                    Map<String, String> map = (Map<String, String>) method.invoke(config, new Object[0]);\n-                    parameters.putAll(convert(map, prefix));\n-                }\n-            } catch (Exception e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-        }\n-    }\n-\n-    @Deprecated\n-    protected static void appendAttributes(Map<String, Object> parameters, Object config) {\n-        appendAttributes(parameters, config, null);\n-    }\n-\n-    @Deprecated\n-    protected static void appendAttributes(Map<String, Object> parameters, Object config, String prefix) {\n-        if (config == null) {\n-            return;\n-        }\n-        Method[] methods = config.getClass().getMethods();\n-        for (Method method : methods) {\n-            try {\n-                Parameter parameter = method.getAnnotation(Parameter.class);\n-                if (parameter == null || !parameter.attribute()) {\n-                    continue;\n-                }\n-                String name = method.getName();\n-                if (MethodUtils.isGetter(method)) {\n-                    String key;\n-                    if (parameter.key().length() > 0) {\n-                        key = parameter.key();\n-                    } else {\n-                        key = calculateAttributeFromGetter(name);\n-                    }\n-                    Object value = method.invoke(config);\n-                    if (value != null) {\n-                        if (prefix != null && prefix.length() > 0) {\n-                            key = prefix + \".\" + key;\n-                        }\n-                        parameters.put(key, value);\n-                    }\n-                }\n-            } catch (Exception e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-        }\n-    }\n-\n-    protected static AsyncMethodInfo convertMethodConfig2AsyncInfo(MethodConfig methodConfig) {\n-        if (methodConfig == null || (methodConfig.getOninvoke() == null && methodConfig.getOnreturn() == null && methodConfig.getOnthrow() == null)) {\n-            return null;\n-        }\n-\n-        //check config conflict\n-        if (Boolean.FALSE.equals(methodConfig.isReturn()) && (methodConfig.getOnreturn() != null || methodConfig.getOnthrow() != null)) {\n-            throw new IllegalStateException(\"method config error : return attribute must be set true when onreturn or onthrow has been set.\");\n-        }\n-\n-        AsyncMethodInfo asyncMethodInfo = new AsyncMethodInfo();\n-\n-        asyncMethodInfo.setOninvokeInstance(methodConfig.getOninvoke());\n-        asyncMethodInfo.setOnreturnInstance(methodConfig.getOnreturn());\n-        asyncMethodInfo.setOnthrowInstance(methodConfig.getOnthrow());\n-\n-        try {\n-            String oninvokeMethod = methodConfig.getOninvokeMethod();\n-            if (StringUtils.isNotEmpty(oninvokeMethod)) {\n-                asyncMethodInfo.setOninvokeMethod(getMethodByName(methodConfig.getOninvoke().getClass(), oninvokeMethod));\n-            }\n-\n-            String onreturnMethod = methodConfig.getOnreturnMethod();\n-            if (StringUtils.isNotEmpty(onreturnMethod)) {\n-                asyncMethodInfo.setOnreturnMethod(getMethodByName(methodConfig.getOnreturn().getClass(), onreturnMethod));\n-            }\n-\n-            String onthrowMethod = methodConfig.getOnthrowMethod();\n-            if (StringUtils.isNotEmpty(onthrowMethod)) {\n-                asyncMethodInfo.setOnthrowMethod(getMethodByName(methodConfig.getOnthrow().getClass(), onthrowMethod));\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-\n-        return asyncMethodInfo;\n-    }\n-\n-    private static Method getMethodByName(Class<?> clazz, String methodName) {\n-        try {\n-            return ReflectUtils.findMethodByMethodName(clazz, methodName);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e);\n-        }\n-    }\n-\n-    protected static Set<String> getSubProperties(Map<String, String> properties, String prefix) {\n-        return properties.keySet().stream().filter(k -> k.contains(prefix)).map(k -> {\n-            k = k.substring(prefix.length());\n-            return k.substring(0, k.indexOf(\".\"));\n-        }).collect(Collectors.toSet());\n-    }\n-\n-    private static String extractPropertyName(Class<?> clazz, Method setter) throws Exception {\n-        String propertyName = setter.getName().substring(\"set\".length());\n-        Method getter = null;\n-        try {\n-            getter = clazz.getMethod(\"get\" + propertyName);\n-        } catch (NoSuchMethodException e) {\n-            getter = clazz.getMethod(\"is\" + propertyName);\n-        }\n-        Parameter parameter = getter.getAnnotation(Parameter.class);\n-        if (parameter != null && StringUtils.isNotEmpty(parameter.key()) && parameter.useKeyAsProperty()) {\n-            propertyName = parameter.key();\n-        } else {\n-            propertyName = propertyName.substring(0, 1).toLowerCase() + propertyName.substring(1);\n-        }\n-        return propertyName;\n-    }\n-\n-    private static String calculatePropertyFromGetter(String name) {\n-        int i = name.startsWith(\"get\") ? 3 : 2;\n-        return StringUtils.camelToSplitName(name.substring(i, i + 1).toLowerCase() + name.substring(i + 1), \".\");\n-    }\n-\n-    private static String calculateAttributeFromGetter(String getter) {\n-        int i = getter.startsWith(\"get\") ? 3 : 2;\n-        return getter.substring(i, i + 1).toLowerCase() + getter.substring(i + 1);\n-    }\n-\n-    private static void invokeSetParameters(Class c, Object o, Map map) {\n-        try {\n-            Method method = findMethodByMethodSignature(c, \"setParameters\", new String[]{Map.class.getName()});\n-            if (method != null && isParametersSetter(method)) {\n-                method.invoke(o, map);\n-            }\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private static Map<String, String> invokeGetParameters(Class c, Object o) {\n-        try {\n-            Method method = findMethodByMethodSignature(c, \"getParameters\", null);\n-            if (method != null && isParametersGetter(method)) {\n-                return (Map<String, String>) method.invoke(o);\n-            }\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-\n-    private static boolean isParametersGetter(Method method) {\n-        String name = method.getName();\n-        return (\"getParameters\".equals(name)\n-                && Modifier.isPublic(method.getModifiers())\n-                && method.getParameterTypes().length == 0\n-                && method.getReturnType() == Map.class);\n-    }\n-\n-    private static boolean isParametersSetter(Method method) {\n-        return (\"setParameters\".equals(method.getName())\n-                && Modifier.isPublic(method.getModifiers())\n-                && method.getParameterCount() == 1\n-                && Map.class == method.getParameterTypes()[0]\n-                && method.getReturnType() == void.class);\n-    }\n-\n-    /**\n-     * @param parameters the raw parameters\n-     * @param prefix     the prefix\n-     * @return the parameters whose raw key will replace \"-\" to \".\"\n-     * @revised 2.7.8 \"private\" to be \"protected\"\n-     */\n-    protected static Map<String, String> convert(Map<String, String> parameters, String prefix) {\n-        if (parameters == null || parameters.isEmpty()) {\n-            return Collections.emptyMap();\n-        }\n-\n-        Map<String, String> result = new HashMap<>();\n-        String pre = (prefix != null && prefix.length() > 0 ? prefix + \".\" : \"\");\n-        for (Map.Entry<String, String> entry : parameters.entrySet()) {\n-            String key = entry.getKey();\n-            String value = entry.getValue();\n-            result.put(pre + key, value);\n-            // For compatibility, key like \"registry-type\" will has a duplicate key \"registry.type\"\n-            if (key.contains(\"-\")) {\n-                result.put(pre + key.replace('-', '.'), value);\n-            }\n-        }\n-        return result;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getId() {\n-        return id;\n-    }\n-\n-    public void setId(String id) {\n-        this.id = id;\n-    }\n-\n-    public void updateIdIfAbsent(String value) {\n-        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(id)) {\n-            this.id = value;\n-        }\n-    }\n-\n-    protected void appendAnnotation(Class<?> annotationClass, Object annotation) {\n-        Method[] methods = annotationClass.getMethods();\n-        for (Method method : methods) {\n-            if (method.getDeclaringClass() != Object.class\n-                    && method.getReturnType() != void.class\n-                    && method.getParameterTypes().length == 0\n-                    && Modifier.isPublic(method.getModifiers())\n-                    && !Modifier.isStatic(method.getModifiers())) {\n-                try {\n-                    String property = method.getName();\n-                    if (\"interfaceClass\".equals(property) || \"interfaceName\".equals(property)) {\n-                        property = \"interface\";\n-                    }\n-                    String setter = \"set\" + property.substring(0, 1).toUpperCase() + property.substring(1);\n-                    Object value = method.invoke(annotation);\n-                    if (value != null && !value.equals(method.getDefaultValue())) {\n-                        Class<?> parameterType = ReflectUtils.getBoxedClass(method.getReturnType());\n-                        if (\"filter\".equals(property) || \"listener\".equals(property)) {\n-                            parameterType = String.class;\n-                            value = StringUtils.join((String[]) value, \",\");\n-                        } else if (\"parameters\".equals(property)) {\n-                            parameterType = Map.class;\n-                            value = CollectionUtils.toStringMap((String[]) value);\n-                        }\n-                        try {\n-                            Method setterMethod = getClass().getMethod(setter, parameterType);\n-                            setterMethod.invoke(this, value);\n-                        } catch (NoSuchMethodException e) {\n-                            // ignore\n-                        }\n-                    }\n-                } catch (Throwable e) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Should be called after Config was fully initialized.\n-     * // FIXME: this method should be completely replaced by appendParameters\n-     *\n-     * @return\n-     * @see AbstractConfig#appendParameters(Map, Object, String)\n-     * <p>\n-     * Notice! This method should include all properties in the returning map, treat @Parameter differently compared to appendParameters.\n-     */\n-    public Map<String, String> getMetaData() {\n-        Map<String, String> metaData = new HashMap<>();\n-        Method[] methods = this.getClass().getMethods();\n-        for (Method method : methods) {\n-            try {\n-                String name = method.getName();\n-                if (MethodUtils.isMetaMethod(method)) {\n-                    String key;\n-                    Parameter parameter = method.getAnnotation(Parameter.class);\n-                    if (parameter != null && parameter.key().length() > 0 && parameter.useKeyAsProperty()) {\n-                        key = parameter.key();\n-                    } else {\n-                        key = calculateAttributeFromGetter(name);\n-                    }\n-                    // treat url and configuration differently, the value should always present in configuration though it may not need to present in url.\n-                    //if (method.getReturnType() == Object.class || parameter != null && parameter.excluded()) {\n-                    if (method.getReturnType() == Object.class) {\n-                        metaData.put(key, null);\n-                        continue;\n-                    }\n-\n-                    /**\n-                     * Attributes annotated as deprecated should not override newly added replacement.\n-                     */\n-                    if (MethodUtils.isDeprecated(method) && metaData.get(key) != null) {\n-                        continue;\n-                    }\n-\n-                    Object value = method.invoke(this);\n-                    String str = String.valueOf(value).trim();\n-                    if (value != null && str.length() > 0) {\n-                        metaData.put(key, str);\n-                    } else {\n-                        metaData.put(key, null);\n-                    }\n-                } else if (isParametersGetter(method)) {\n-                    Map<String, String> map = (Map<String, String>) method.invoke(this, new Object[0]);\n-                    metaData.putAll(convert(map, \"\"));\n-                }\n-            } catch (Exception e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-        }\n-        return metaData;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getPrefix() {\n-        return StringUtils.isNotEmpty(prefix) ? prefix : (CommonConstants.DUBBO + \".\" + getTagName(this.getClass()));\n-    }\n-\n-    public void setPrefix(String prefix) {\n-        this.prefix = prefix;\n-    }\n-\n-    public void refresh() {\n-        Environment env = ApplicationModel.getEnvironment();\n-        try {\n-            CompositeConfiguration compositeConfiguration = env.getPrefixedConfiguration(this);\n-            // loop methods, get override value and set the new value back to method\n-            Method[] methods = getClass().getMethods();\n-            for (Method method : methods) {\n-                if (MethodUtils.isSetter(method)) {\n-                    try {\n-                        String value = StringUtils.trim(compositeConfiguration.getString(extractPropertyName(getClass(), method)));\n-                        // isTypeMatch() is called to avoid duplicate and incorrect update, for example, we have two 'setGeneric' methods in ReferenceConfig.\n-                        if (StringUtils.isNotEmpty(value) && ClassUtils.isTypeMatch(method.getParameterTypes()[0], value)) {\n-                            method.invoke(this, ClassUtils.convertPrimitive(method.getParameterTypes()[0], value));\n-                        }\n-                    } catch (NoSuchMethodException e) {\n-                        logger.info(\"Failed to override the property \" + method.getName() + \" in \" +\n-                                this.getClass().getSimpleName() +\n-                                \", please make sure every property has getter/setter method provided.\");\n-                    }\n-                } else if (isParametersSetter(method)) {\n-                    String value = StringUtils.trim(compositeConfiguration.getString(extractPropertyName(getClass(), method)));\n-                    if (StringUtils.isNotEmpty(value)) {\n-                        Map<String, String> map = invokeGetParameters(getClass(), this);\n-                        map = map == null ? new HashMap<>() : map;\n-                        map.putAll(convert(StringUtils.parseParameters(value), \"\"));\n-                        invokeSetParameters(getClass(), this, map);\n-                    }\n-                }\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Failed to override \", e);\n-        }\n-    }\n-\n-    @Override\n-    public String toString() {\n-        try {\n-            StringBuilder buf = new StringBuilder();\n-            buf.append(\"<dubbo:\");\n-            buf.append(getTagName(getClass()));\n-            Method[] methods = getClass().getMethods();\n-            for (Method method : methods) {\n-                try {\n-                    if (MethodUtils.isGetter(method)) {\n-                        String name = method.getName();\n-                        String key = calculateAttributeFromGetter(name);\n-\n-                        try {\n-                            getClass().getDeclaredField(key);\n-                        } catch (NoSuchFieldException e) {\n-                            // ignore\n-                            continue;\n-                        }\n-\n-                        Object value = method.invoke(this);\n-                        if (value != null) {\n-                            buf.append(\" \");\n-                            buf.append(key);\n-                            buf.append(\"=\\\"\");\n-                            buf.append(value);\n-                            buf.append(\"\\\"\");\n-                        }\n-                    }\n-                } catch (Exception e) {\n-                    logger.warn(e.getMessage(), e);\n-                }\n-            }\n-            buf.append(\" />\");\n-            return buf.toString();\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-            return super.toString();\n-        }\n-    }\n-\n-    /**\n-     * FIXME check @Parameter(required=true) and any conditions that need to match.\n-     */\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        return true;\n-    }\n-\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (obj == null || !(obj.getClass().getName().equals(this.getClass().getName()))) {\n-            return false;\n-        }\n-\n-        Method[] methods = this.getClass().getMethods();\n-        for (Method method1 : methods) {\n-            if (MethodUtils.isGetter(method1)) {\n-                Parameter parameter = method1.getAnnotation(Parameter.class);\n-                if (parameter != null && parameter.excluded()) {\n-                    continue;\n-                }\n-                try {\n-                    Method method2 = obj.getClass().getMethod(method1.getName(), method1.getParameterTypes());\n-                    Object value1 = method1.invoke(this, new Object[]{});\n-                    Object value2 = method2.invoke(obj, new Object[]{});\n-                    if (!Objects.equals(value1, value2)) {\n-                        return false;\n-                    }\n-                } catch (Exception e) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return true;\n-    }\n-\n-    /**\n-     * Add {@link AbstractConfig instance} into {@link ConfigManager}\n-     * <p>\n-     * Current method will invoked by Spring or Java EE container automatically, or should be triggered manually.\n-     *\n-     * @see ConfigManager#addConfig(AbstractConfig)\n-     * @since 2.7.5\n-     */\n-    @PostConstruct\n-    public void addIntoConfigManager() {\n-        ApplicationModel.getConfigManager().addConfig(this);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        int hashCode = 1;\n-\n-        Method[] methods = this.getClass().getMethods();\n-        for (Method method : methods) {\n-            if (MethodUtils.isGetter(method)) {\n-                Parameter parameter = method.getAnnotation(Parameter.class);\n-                if (parameter != null && parameter.excluded()) {\n-                    continue;\n-                }\n-                try {\n-                    Object value = method.invoke(this, new Object[]{});\n-                    hashCode = 31 * hashCode + value.hashCode();\n-                } catch (Exception ignored) {\n-                    //ignored\n-                }\n-            }\n-        }\n-\n-        if (hashCode == 0) {\n-            hashCode = 1;\n-        }\n-\n-        return hashCode;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.CompositeConfiguration;\r\n+import org.apache.dubbo.common.config.Environment;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.MethodUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.AsyncMethodInfo;\r\n+\r\n+import javax.annotation.PostConstruct;\r\n+import java.io.Serializable;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.findMethodByMethodSignature;\r\n+\r\n+/**\r\n+ * Utility methods and public methods for parsing configuration\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class AbstractConfig implements Serializable {\r\n+\r\n+    protected static final Logger logger = LoggerFactory.getLogger(AbstractConfig.class);\r\n+    private static final long serialVersionUID = 4267533505537413570L;\r\n+\r\n+    /**\r\n+     * The legacy properties container\r\n+     */\r\n+    private static final Map<String, String> LEGACY_PROPERTIES = new HashMap<String, String>();\r\n+\r\n+    /**\r\n+     * The suffix container\r\n+     */\r\n+    private static final String[] SUFFIXES = new String[]{\"Config\", \"Bean\", \"ConfigBase\"};\r\n+\r\n+    static {\r\n+        LEGACY_PROPERTIES.put(\"dubbo.protocol.name\", \"dubbo.service.protocol\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.protocol.host\", \"dubbo.service.server.host\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.protocol.port\", \"dubbo.service.server.port\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.protocol.threads\", \"dubbo.service.max.thread.pool.size\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.consumer.timeout\", \"dubbo.service.invoke.timeout\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.consumer.retries\", \"dubbo.service.max.retry.providers\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.consumer.check\", \"dubbo.service.allow.no.provider\");\r\n+        LEGACY_PROPERTIES.put(\"dubbo.service.url\", \"dubbo.service.address\");\r\n+    }\r\n+\r\n+    /**\r\n+     * The config id\r\n+     */\r\n+    protected String id;\r\n+    protected String prefix;\r\n+\r\n+    protected final AtomicBoolean refreshed = new AtomicBoolean(false);\r\n+\r\n+    private static String convertLegacyValue(String key, String value) {\r\n+        if (value != null && value.length() > 0) {\r\n+            if (\"dubbo.service.max.retry.providers\".equals(key)) {\r\n+                return String.valueOf(Integer.parseInt(value) - 1);\r\n+            } else if (\"dubbo.service.allow.no.provider\".equals(key)) {\r\n+                return String.valueOf(!Boolean.parseBoolean(value));\r\n+            }\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    public static String getTagName(Class<?> cls) {\r\n+        String tag = cls.getSimpleName();\r\n+        for (String suffix : SUFFIXES) {\r\n+            if (tag.endsWith(suffix)) {\r\n+                tag = tag.substring(0, tag.length() - suffix.length());\r\n+                break;\r\n+            }\r\n+        }\r\n+        return StringUtils.camelToSplitName(tag, \"-\");\r\n+    }\r\n+\r\n+    public static void appendParameters(Map<String, String> parameters, Object config) {\r\n+        appendParameters(parameters, config, null);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public static void appendParameters(Map<String, String> parameters, Object config, String prefix) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+        Method[] methods = config.getClass().getMethods();\r\n+        for (Method method : methods) {\r\n+            try {\r\n+                String name = method.getName();\r\n+                if (MethodUtils.isGetter(method)) {\r\n+                    Parameter parameter = method.getAnnotation(Parameter.class);\r\n+                    if (method.getReturnType() == Object.class || parameter != null && parameter.excluded()) {\r\n+                        continue;\r\n+                    }\r\n+                    String key;\r\n+                    if (parameter != null && parameter.key().length() > 0) {\r\n+                        key = parameter.key();\r\n+                    } else {\r\n+                        key = calculatePropertyFromGetter(name);\r\n+                    }\r\n+                    Object value = method.invoke(config);\r\n+                    String str = String.valueOf(value).trim();\r\n+                    if (value != null && str.length() > 0) {\r\n+                        if (parameter != null && parameter.escaped()) {\r\n+                            str = URL.encode(str);\r\n+                        }\r\n+                        if (parameter != null && parameter.append()) {\r\n+                            String pre = parameters.get(key);\r\n+                            if (pre != null && pre.length() > 0) {\r\n+                                str = pre + \",\" + str;\r\n+                            }\r\n+                        }\r\n+                        if (prefix != null && prefix.length() > 0) {\r\n+                            key = prefix + \".\" + key;\r\n+                        }\r\n+                        parameters.put(key, str);\r\n+                    } else if (parameter != null && parameter.required()) {\r\n+                        throw new IllegalStateException(config.getClass().getSimpleName() + \".\" + key + \" == null\");\r\n+                    }\r\n+                } else if (isParametersGetter(method)) {\r\n+                    Map<String, String> map = (Map<String, String>) method.invoke(config, new Object[0]);\r\n+                    parameters.putAll(convert(map, prefix));\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    protected static void appendAttributes(Map<String, Object> parameters, Object config) {\r\n+        appendAttributes(parameters, config, null);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    protected static void appendAttributes(Map<String, Object> parameters, Object config, String prefix) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+        Method[] methods = config.getClass().getMethods();\r\n+        for (Method method : methods) {\r\n+            try {\r\n+                Parameter parameter = method.getAnnotation(Parameter.class);\r\n+                if (parameter == null || !parameter.attribute()) {\r\n+                    continue;\r\n+                }\r\n+                String name = method.getName();\r\n+                if (MethodUtils.isGetter(method)) {\r\n+                    String key;\r\n+                    if (parameter.key().length() > 0) {\r\n+                        key = parameter.key();\r\n+                    } else {\r\n+                        key = calculateAttributeFromGetter(name);\r\n+                    }\r\n+                    Object value = method.invoke(config);\r\n+                    if (value != null) {\r\n+                        if (prefix != null && prefix.length() > 0) {\r\n+                            key = prefix + \".\" + key;\r\n+                        }\r\n+                        parameters.put(key, value);\r\n+                    }\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    protected static AsyncMethodInfo convertMethodConfig2AsyncInfo(MethodConfig methodConfig) {\r\n+        if (methodConfig == null || (methodConfig.getOninvoke() == null && methodConfig.getOnreturn() == null && methodConfig.getOnthrow() == null)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        //check config conflict\r\n+        if (Boolean.FALSE.equals(methodConfig.isReturn()) && (methodConfig.getOnreturn() != null || methodConfig.getOnthrow() != null)) {\r\n+            throw new IllegalStateException(\"method config error : return attribute must be set true when onreturn or onthrow has been set.\");\r\n+        }\r\n+\r\n+        AsyncMethodInfo asyncMethodInfo = new AsyncMethodInfo();\r\n+\r\n+        asyncMethodInfo.setOninvokeInstance(methodConfig.getOninvoke());\r\n+        asyncMethodInfo.setOnreturnInstance(methodConfig.getOnreturn());\r\n+        asyncMethodInfo.setOnthrowInstance(methodConfig.getOnthrow());\r\n+\r\n+        try {\r\n+            String oninvokeMethod = methodConfig.getOninvokeMethod();\r\n+            if (StringUtils.isNotEmpty(oninvokeMethod)) {\r\n+                asyncMethodInfo.setOninvokeMethod(getMethodByName(methodConfig.getOninvoke().getClass(), oninvokeMethod));\r\n+            }\r\n+\r\n+            String onreturnMethod = methodConfig.getOnreturnMethod();\r\n+            if (StringUtils.isNotEmpty(onreturnMethod)) {\r\n+                asyncMethodInfo.setOnreturnMethod(getMethodByName(methodConfig.getOnreturn().getClass(), onreturnMethod));\r\n+            }\r\n+\r\n+            String onthrowMethod = methodConfig.getOnthrowMethod();\r\n+            if (StringUtils.isNotEmpty(onthrowMethod)) {\r\n+                asyncMethodInfo.setOnthrowMethod(getMethodByName(methodConfig.getOnthrow().getClass(), onthrowMethod));\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+\r\n+        return asyncMethodInfo;\r\n+    }\r\n+\r\n+    private static Method getMethodByName(Class<?> clazz, String methodName) {\r\n+        try {\r\n+            return ReflectUtils.findMethodByMethodName(clazz, methodName);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+    }\r\n+\r\n+    protected static Set<String> getSubProperties(Map<String, String> properties, String prefix) {\r\n+        return properties.keySet().stream().filter(k -> k.contains(prefix)).map(k -> {\r\n+            k = k.substring(prefix.length());\r\n+            return k.substring(0, k.indexOf(\".\"));\r\n+        }).collect(Collectors.toSet());\r\n+    }\r\n+\r\n+    private static String extractPropertyName(Class<?> clazz, Method setter) throws Exception {\r\n+        String propertyName = setter.getName().substring(\"set\".length());\r\n+        Method getter = null;\r\n+        try {\r\n+            getter = clazz.getMethod(\"get\" + propertyName);\r\n+        } catch (NoSuchMethodException e) {\r\n+            getter = clazz.getMethod(\"is\" + propertyName);\r\n+        }\r\n+        Parameter parameter = getter.getAnnotation(Parameter.class);\r\n+        if (parameter != null && StringUtils.isNotEmpty(parameter.key()) && parameter.useKeyAsProperty()) {\r\n+            propertyName = parameter.key();\r\n+        } else {\r\n+            propertyName = propertyName.substring(0, 1).toLowerCase() + propertyName.substring(1);\r\n+        }\r\n+        return propertyName;\r\n+    }\r\n+\r\n+    private static String calculatePropertyFromGetter(String name) {\r\n+        int i = name.startsWith(\"get\") ? 3 : 2;\r\n+        return StringUtils.camelToSplitName(name.substring(i, i + 1).toLowerCase() + name.substring(i + 1), \".\");\r\n+    }\r\n+\r\n+    private static String calculateAttributeFromGetter(String getter) {\r\n+        int i = getter.startsWith(\"get\") ? 3 : 2;\r\n+        return getter.substring(i, i + 1).toLowerCase() + getter.substring(i + 1);\r\n+    }\r\n+\r\n+    private static void invokeSetParameters(Class c, Object o, Map map) {\r\n+        try {\r\n+            Method method = findMethodByMethodSignature(c, \"setParameters\", new String[]{Map.class.getName()});\r\n+            if (method != null && isParametersSetter(method)) {\r\n+                method.invoke(o, map);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private static Map<String, String> invokeGetParameters(Class c, Object o) {\r\n+        try {\r\n+            Method method = findMethodByMethodSignature(c, \"getParameters\", null);\r\n+            if (method != null && isParametersGetter(method)) {\r\n+                return (Map<String, String>) method.invoke(o);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    private static boolean isParametersGetter(Method method) {\r\n+        String name = method.getName();\r\n+        return (\"getParameters\".equals(name)\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && method.getParameterTypes().length == 0\r\n+                && method.getReturnType() == Map.class);\r\n+    }\r\n+\r\n+    private static boolean isParametersSetter(Method method) {\r\n+        return (\"setParameters\".equals(method.getName())\r\n+                && Modifier.isPublic(method.getModifiers())\r\n+                && method.getParameterCount() == 1\r\n+                && Map.class == method.getParameterTypes()[0]\r\n+                && method.getReturnType() == void.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * @param parameters the raw parameters\r\n+     * @param prefix     the prefix\r\n+     * @return the parameters whose raw key will replace \"-\" to \".\"\r\n+     * @revised 2.7.8 \"private\" to be \"protected\"\r\n+     */\r\n+    protected static Map<String, String> convert(Map<String, String> parameters, String prefix) {\r\n+        if (parameters == null || parameters.isEmpty()) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+\r\n+        Map<String, String> result = new HashMap<>();\r\n+        String pre = (prefix != null && prefix.length() > 0 ? prefix + \".\" : \"\");\r\n+        for (Map.Entry<String, String> entry : parameters.entrySet()) {\r\n+            String key = entry.getKey();\r\n+            String value = entry.getValue();\r\n+            result.put(pre + key, value);\r\n+            // For compatibility, key like \"registry-type\" will has a duplicate key \"registry.type\"\r\n+            if (key.contains(\"-\")) {\r\n+                result.put(pre + key.replace('-', '.'), value);\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    public void setId(String id) {\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public void updateIdIfAbsent(String value) {\r\n+        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(id)) {\r\n+            this.id = value;\r\n+        }\r\n+    }\r\n+\r\n+    protected void appendAnnotation(Class<?> annotationClass, Object annotation) {\r\n+        Method[] methods = annotationClass.getMethods();\r\n+        for (Method method : methods) {\r\n+            if (method.getDeclaringClass() != Object.class\r\n+                    && method.getReturnType() != void.class\r\n+                    && method.getParameterTypes().length == 0\r\n+                    && Modifier.isPublic(method.getModifiers())\r\n+                    && !Modifier.isStatic(method.getModifiers())) {\r\n+                try {\r\n+                    String property = method.getName();\r\n+                    if (\"interfaceClass\".equals(property) || \"interfaceName\".equals(property)) {\r\n+                        property = \"interface\";\r\n+                    }\r\n+                    String setter = \"set\" + property.substring(0, 1).toUpperCase() + property.substring(1);\r\n+                    Object value = method.invoke(annotation);\r\n+                    if (value != null && !value.equals(method.getDefaultValue())) {\r\n+                        Class<?> parameterType = ReflectUtils.getBoxedClass(method.getReturnType());\r\n+                        if (\"filter\".equals(property) || \"listener\".equals(property)) {\r\n+                            parameterType = String.class;\r\n+                            value = StringUtils.join((String[]) value, \",\");\r\n+                        } else if (\"parameters\".equals(property)) {\r\n+                            parameterType = Map.class;\r\n+                            value = CollectionUtils.toStringMap((String[]) value);\r\n+                        }\r\n+                        try {\r\n+                            Method setterMethod = getClass().getMethod(setter, parameterType);\r\n+                            setterMethod.invoke(this, value);\r\n+                        } catch (NoSuchMethodException e) {\r\n+                            // ignore\r\n+                        }\r\n+                    }\r\n+                } catch (Throwable e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Should be called after Config was fully initialized.\r\n+     * // FIXME: this method should be completely replaced by appendParameters\r\n+     *\r\n+     * @return\r\n+     * @see AbstractConfig#appendParameters(Map, Object, String)\r\n+     * <p>\r\n+     * Notice! This method should include all properties in the returning map, treat @Parameter differently compared to appendParameters.\r\n+     */\r\n+    public Map<String, String> getMetaData() {\r\n+        Map<String, String> metaData = new HashMap<>();\r\n+        Method[] methods = this.getClass().getMethods();\r\n+        for (Method method : methods) {\r\n+            try {\r\n+                String name = method.getName();\r\n+                if (MethodUtils.isMetaMethod(method)) {\r\n+                    String key;\r\n+                    Parameter parameter = method.getAnnotation(Parameter.class);\r\n+                    if (parameter != null && parameter.key().length() > 0 && parameter.useKeyAsProperty()) {\r\n+                        key = parameter.key();\r\n+                    } else {\r\n+                        key = calculateAttributeFromGetter(name);\r\n+                    }\r\n+                    // treat url and configuration differently, the value should always present in configuration though it may not need to present in url.\r\n+                    //if (method.getReturnType() == Object.class || parameter != null && parameter.excluded()) {\r\n+                    if (method.getReturnType() == Object.class) {\r\n+                        metaData.put(key, null);\r\n+                        continue;\r\n+                    }\r\n+\r\n+                    /**\r\n+                     * Attributes annotated as deprecated should not override newly added replacement.\r\n+                     */\r\n+                    if (MethodUtils.isDeprecated(method) && metaData.get(key) != null) {\r\n+                        continue;\r\n+                    }\r\n+\r\n+                    Object value = method.invoke(this);\r\n+                    String str = String.valueOf(value).trim();\r\n+                    if (value != null && str.length() > 0) {\r\n+                        metaData.put(key, str);\r\n+                    } else {\r\n+                        metaData.put(key, null);\r\n+                    }\r\n+                } else if (isParametersGetter(method)) {\r\n+                    Map<String, String> map = (Map<String, String>) method.invoke(this, new Object[0]);\r\n+                    metaData.putAll(convert(map, \"\"));\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return metaData;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getPrefix() {\r\n+        return StringUtils.isNotEmpty(prefix) ? prefix : (CommonConstants.DUBBO + \".\" + getTagName(this.getClass()));\r\n+    }\r\n+\r\n+    public void setPrefix(String prefix) {\r\n+        this.prefix = prefix;\r\n+    }\r\n+\r\n+    public void refresh() {\r\n+        Environment env = ApplicationModel.getEnvironment();\r\n+        try {\r\n+            CompositeConfiguration compositeConfiguration = env.getPrefixedConfiguration(this);\r\n+            // loop methods, get override value and set the new value back to method\r\n+            Method[] methods = getClass().getMethods();\r\n+            for (Method method : methods) {\r\n+                if (MethodUtils.isSetter(method)) {\r\n+                    try {\r\n+                        String value = StringUtils.trim(compositeConfiguration.getString(extractPropertyName(getClass(), method)));\r\n+                        // isTypeMatch() is called to avoid duplicate and incorrect update, for example, we have two 'setGeneric' methods in ReferenceConfig.\r\n+                        if (StringUtils.isNotEmpty(value) && ClassUtils.isTypeMatch(method.getParameterTypes()[0], value)) {\r\n+                            method.invoke(this, ClassUtils.convertPrimitive(method.getParameterTypes()[0], value));\r\n+                        }\r\n+                    } catch (NoSuchMethodException e) {\r\n+                        logger.info(\"Failed to override the property \" + method.getName() + \" in \" +\r\n+                                this.getClass().getSimpleName() +\r\n+                                \", please make sure every property has getter/setter method provided.\");\r\n+                    }\r\n+                } else if (isParametersSetter(method)) {\r\n+                    String value = StringUtils.trim(compositeConfiguration.getString(extractPropertyName(getClass(), method)));\r\n+                    if (StringUtils.isNotEmpty(value)) {\r\n+                        Map<String, String> map = invokeGetParameters(getClass(), this);\r\n+                        map = map == null ? new HashMap<>() : map;\r\n+                        map.putAll(convert(StringUtils.parseParameters(value), \"\"));\r\n+                        invokeSetParameters(getClass(), this, map);\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Failed to override \", e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        try {\r\n+            StringBuilder buf = new StringBuilder();\r\n+            buf.append(\"<dubbo:\");\r\n+            buf.append(getTagName(getClass()));\r\n+            Method[] methods = getClass().getMethods();\r\n+            for (Method method : methods) {\r\n+                try {\r\n+                    if (MethodUtils.isGetter(method)) {\r\n+                        String name = method.getName();\r\n+                        String key = calculateAttributeFromGetter(name);\r\n+\r\n+                        try {\r\n+                            getClass().getDeclaredField(key);\r\n+                        } catch (NoSuchFieldException e) {\r\n+                            // ignore\r\n+                            continue;\r\n+                        }\r\n+\r\n+                        Object value = method.invoke(this);\r\n+                        if (value != null) {\r\n+                            buf.append(\" \");\r\n+                            buf.append(key);\r\n+                            buf.append(\"=\\\"\");\r\n+                            buf.append(value);\r\n+                            buf.append(\"\\\"\");\r\n+                        }\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    logger.warn(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+            buf.append(\" />\");\r\n+            return buf.toString();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+            return super.toString();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME check @Parameter(required=true) and any conditions that need to match.\r\n+     */\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        return true;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (obj == null || !(obj.getClass().getName().equals(this.getClass().getName()))) {\r\n+            return false;\r\n+        }\r\n+\r\n+        Method[] methods = this.getClass().getMethods();\r\n+        for (Method method1 : methods) {\r\n+            if (MethodUtils.isGetter(method1)) {\r\n+                Parameter parameter = method1.getAnnotation(Parameter.class);\r\n+                if (parameter != null && parameter.excluded()) {\r\n+                    continue;\r\n+                }\r\n+                try {\r\n+                    Method method2 = obj.getClass().getMethod(method1.getName(), method1.getParameterTypes());\r\n+                    Object value1 = method1.invoke(this, new Object[]{});\r\n+                    Object value2 = method2.invoke(obj, new Object[]{});\r\n+                    if (!Objects.equals(value1, value2)) {\r\n+                        return false;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Add {@link AbstractConfig instance} into {@link ConfigManager}\r\n+     * <p>\r\n+     * Current method will invoked by Spring or Java EE container automatically, or should be triggered manually.\r\n+     *\r\n+     * @see ConfigManager#addConfig(AbstractConfig)\r\n+     * @since 2.7.5\r\n+     */\r\n+    @PostConstruct\r\n+    public void addIntoConfigManager() {\r\n+        ApplicationModel.getConfigManager().addConfig(this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        int hashCode = 1;\r\n+\r\n+        Method[] methods = this.getClass().getMethods();\r\n+        for (Method method : methods) {\r\n+            if (MethodUtils.isGetter(method)) {\r\n+                Parameter parameter = method.getAnnotation(Parameter.class);\r\n+                if (parameter != null && parameter.excluded()) {\r\n+                    continue;\r\n+                }\r\n+                try {\r\n+                    Object value = method.invoke(this, new Object[]{});\r\n+                    hashCode = 31 * hashCode + value.hashCode();\r\n+                } catch (Exception ignored) {\r\n+                    //ignored\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (hashCode == 0) {\r\n+            hashCode = 1;\r\n+        }\r\n+\r\n+        return hashCode;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/AbstractInterfaceConfig.java", "source2": "org/apache/dubbo/config/AbstractInterfaceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,758 +1,758 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.utils.Assert;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ServiceMetadata;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INVOKER_LISTENER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\n-\n-/**\n- * AbstractDefaultConfig\n- *\n- * @export\n- */\n-public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {\n-\n-    private static final long serialVersionUID = -1559314110797223229L;\n-\n-    /**\n-     * The interface name of the exported service\n-     */\n-    protected String interfaceName;\n-    /**\n-     * The remote service version the customer/provider side will reference\n-     */\n-    protected String version;\n-\n-    /**\n-     * The remote service group the customer/provider side will reference\n-     */\n-    protected String group;\n-    \n-    protected ServiceMetadata serviceMetadata;\n-    /**\n-     * Local impl class name for the service interface\n-     */\n-    protected String local;\n-\n-    /**\n-     * Local stub class name for the service interface\n-     */\n-    protected String stub;\n-\n-    /**\n-     * Service monitor\n-     */\n-    protected MonitorConfig monitor;\n-\n-    /**\n-     * Strategies for generating dynamic agents\uff0cthere are two strategies can be choosed: jdk and javassist\n-     */\n-    protected String proxy;\n-\n-    /**\n-     * Cluster type\n-     */\n-    protected String cluster;\n-\n-    /**\n-     * The {@code Filter} when the provider side exposed a service or the customer side references a remote service used,\n-     * if there are more than one, you can use commas to separate them\n-     */\n-    protected String filter;\n-\n-    /**\n-     * The Listener when the provider side exposes a service or the customer side references a remote service used\n-     * if there are more than one, you can use commas to separate them\n-     */\n-    protected String listener;\n-\n-    /**\n-     * The owner of the service providers\n-     */\n-    protected String owner;\n-\n-    /**\n-     * Connection limits, 0 means shared connection, otherwise it defines the connections delegated to the current service\n-     */\n-    protected Integer connections;\n-\n-    /**\n-     * The layer of service providers\n-     */\n-    protected String layer;\n-\n-    /**\n-     * The application info\n-     */\n-    protected ApplicationConfig application;\n-\n-    /**\n-     * The module info\n-     */\n-    protected ModuleConfig module;\n-\n-    /**\n-     * The registry list the service will register to\n-     * Also see {@link #registryIds}, only one of them will work.\n-     */\n-    protected List<RegistryConfig> registries;\n-\n-    /**\n-     * The method configuration\n-     */\n-    private List<MethodConfig> methods;\n-\n-    /**\n-     * The id list of registries the service will register to\n-     * Also see {@link #registries}, only one of them will work.\n-     */\n-    protected String registryIds;\n-\n-    // connection events\n-    protected String onconnect;\n-\n-    /**\n-     * Disconnection events\n-     */\n-    protected String ondisconnect;\n-\n-    /**\n-     * The metrics configuration\n-     */\n-    protected MetricsConfig metrics;\n-    protected MetadataReportConfig metadataReportConfig;\n-\n-    protected ConfigCenterConfig configCenter;\n-\n-    // callback limits\n-    private Integer callbacks;\n-    // the scope for referring/exporting a service, if it's local, it means searching in current JVM only.\n-    private String scope;\n-\n-    protected String tag;\n-\n-    private  Boolean auth;\n-\n-\n-    /**\n-     * The url of the reference service\n-     */\n-    protected final List<URL> urls = new ArrayList<URL>();\n-\n-    public List<URL> getExportedUrls() {\n-        return urls;\n-    }\n-\n-    public URL toUrl() {\n-        return urls.isEmpty() ? null : urls.iterator().next();\n-    }\n-\n-    public List<URL> toUrls() {\n-        return urls;\n-    }\n-\n-    /**\n-     * Check whether the registry config is exists, and then conversion it to {@link RegistryConfig}\n-     */\n-    public void checkRegistry() {\n-        convertRegistryIdsToRegistries();\n-\n-        for (RegistryConfig registryConfig : registries) {\n-            if (!registryConfig.isValid()) {\n-                throw new IllegalStateException(\"No registry config found or it's not a valid config! \" +\n-                        \"The registry config is: \" + registryConfig);\n-            }\n-        }\n-    }\n-\n-    public static void appendRuntimeParameters(Map<String, String> map) {\n-        map.put(DUBBO_VERSION_KEY, Version.getProtocolVersion());\n-        map.put(RELEASE_KEY, Version.getVersion());\n-        map.put(TIMESTAMP_KEY, String.valueOf(System.currentTimeMillis()));\n-        if (ConfigUtils.getPid() > 0) {\n-            map.put(PID_KEY, String.valueOf(ConfigUtils.getPid()));\n-        }\n-    }\n-\n-    /**\n-     * Check whether the remote service interface and the methods meet with Dubbo's requirements.it mainly check, if the\n-     * methods configured in the configuration file are included in the interface of remote service\n-     *\n-     * @param interfaceClass the interface of remote service\n-     * @param methods        the methods configured\n-     */\n-    public void checkInterfaceAndMethods(Class<?> interfaceClass, List<MethodConfig> methods) {\n-        // interface cannot be null\n-        Assert.notNull(interfaceClass, new IllegalStateException(\"interface not allow null!\"));\n-\n-        // to verify interfaceClass is an interface\n-        if (!interfaceClass.isInterface()) {\n-            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\n-        }\n-        // check if methods exist in the remote service interface\n-        if (CollectionUtils.isNotEmpty(methods)) {\n-            for (MethodConfig methodBean : methods) {\n-                methodBean.setService(interfaceClass.getName());\n-                methodBean.setServiceId(this.getId());\n-                methodBean.refresh();\n-                String methodName = methodBean.getName();\n-                if (StringUtils.isEmpty(methodName)) {\n-                    throw new IllegalStateException(\"<dubbo:method> name attribute is required! Please check: \" +\n-                            \"<dubbo:service interface=\\\"\" + interfaceClass.getName() + \"\\\" ... >\" +\n-                            \"<dubbo:method name=\\\"\\\" ... /></<dubbo:reference>\");\n-                }\n-\n-                boolean hasMethod = Arrays.stream(interfaceClass.getMethods()).anyMatch(method -> method.getName().equals(methodName));\n-                if (!hasMethod) {\n-                    throw new IllegalStateException(\"The interface \" + interfaceClass.getName()\n-                            + \" not found method \" + methodName);\n-                }\n-            }\n-        }\n-    }\n-\n-\n-\n-    /**\n-     * Legitimacy check of stub, note that: the local will deprecated, and replace with <code>stub</code>\n-     *\n-     * @param interfaceClass for provider side, it is the {@link Class} of the service that will be exported; for consumer\n-     *                       side, it is the {@link Class} of the remote service interface\n-     */\n-    public void checkStubAndLocal(Class<?> interfaceClass) {\n-        verifyStubAndLocal(local, \"Local\", interfaceClass);\n-        verifyStubAndLocal(stub, \"Stub\", interfaceClass);\n-    }\n-    \n-    public void verifyStubAndLocal(String className, String label, Class<?> interfaceClass){\n-    \tif (ConfigUtils.isNotEmpty(className)) {\n-            Class<?> localClass = ConfigUtils.isDefault(className) ?\n-                    ReflectUtils.forName(interfaceClass.getName() + label) : ReflectUtils.forName(className);\n-                        verify(interfaceClass, localClass);\n-            }\n-    }\n-\n-    private void verify(Class<?> interfaceClass, Class<?> localClass) {\n-        if (!interfaceClass.isAssignableFrom(localClass)) {\n-            throw new IllegalStateException(\"The local implementation class \" + localClass.getName() +\n-                    \" not implement interface \" + interfaceClass.getName());\n-        }\n-\n-        try {\n-            //Check if the localClass a constructor with parameter who's type is interfaceClass\n-            ReflectUtils.findConstructor(localClass, interfaceClass);\n-        } catch (NoSuchMethodException e) {\n-            throw new IllegalStateException(\"No such constructor \\\"public \" + localClass.getSimpleName() +\n-                    \"(\" + interfaceClass.getName() + \")\\\" in local implementation class \" + localClass.getName());\n-        }\n-    }\n-\n-    private void convertRegistryIdsToRegistries() {\n-        computeValidRegistryIds();\n-        if (StringUtils.isEmpty(registryIds)) {\n-            if (CollectionUtils.isEmpty(registries)) {\n-                List<RegistryConfig> registryConfigs = ApplicationModel.getConfigManager().getDefaultRegistries();\n-                if (registryConfigs.isEmpty()) {\n-                    registryConfigs = new ArrayList<>();\n-                    RegistryConfig registryConfig = new RegistryConfig();\n-                    registryConfig.refresh();\n-                    registryConfigs.add(registryConfig);\n-                } else {\n-                    registryConfigs = new ArrayList<>(registryConfigs);\n-                }\n-                setRegistries(registryConfigs);\n-            }\n-        } else {\n-            String[] ids = COMMA_SPLIT_PATTERN.split(registryIds);\n-            List<RegistryConfig> tmpRegistries = new ArrayList<>();\n-            Arrays.stream(ids).forEach(id -> {\n-                if (tmpRegistries.stream().noneMatch(reg -> reg.getId().equals(id))) {\n-                    Optional<RegistryConfig> globalRegistry = ApplicationModel.getConfigManager().getRegistry(id);\n-                    if (globalRegistry.isPresent()) {\n-                        tmpRegistries.add(globalRegistry.get());\n-                    } else {\n-                        RegistryConfig registryConfig = new RegistryConfig();\n-                        registryConfig.setId(id);\n-                        registryConfig.refresh();\n-                        tmpRegistries.add(registryConfig);\n-                    }\n-                }\n-            });\n-\n-            if (tmpRegistries.size() > ids.length) {\n-                throw new IllegalStateException(\"Too much registries found, the registries assigned to this service \" +\n-                        \"are :\" + registryIds + \", but got \" + tmpRegistries.size() + \" registries!\");\n-            }\n-\n-            setRegistries(tmpRegistries);\n-        }\n-\n-    }\n-\n-    protected boolean notHasSelfRegistryProperty() {\n-        return CollectionUtils.isEmpty(registries) && StringUtils.isEmpty(registryIds);\n-    }\n-\n-    public void completeCompoundConfigs(AbstractInterfaceConfig interfaceConfig) {\n-        if (interfaceConfig != null) {\n-            if (application == null) {\n-                setApplication(interfaceConfig.getApplication());\n-            }\n-            if (module == null) {\n-                setModule(interfaceConfig.getModule());\n-            }\n-            if (notHasSelfRegistryProperty()) {\n-                setRegistries(interfaceConfig.getRegistries());\n-                setRegistryIds(interfaceConfig.getRegistryIds());\n-            }\n-            if (monitor == null) {\n-                setMonitor(interfaceConfig.getMonitor());\n-            }\n-        }\n-        if (module != null) {\n-            if (notHasSelfRegistryProperty()) {\n-                setRegistries(module.getRegistries());\n-            }\n-            if (monitor == null) {\n-                setMonitor(module.getMonitor());\n-            }\n-        }\n-        if (application != null) {\n-            if (notHasSelfRegistryProperty()) {\n-                setRegistries(application.getRegistries());\n-                setRegistryIds(application.getRegistryIds());\n-            }\n-            if (monitor == null) {\n-                setMonitor(application.getMonitor());\n-            }\n-        }\n-    }\n-    \n-    protected void computeValidRegistryIds() {\n-        if (application != null && notHasSelfRegistryProperty()) {\n-            setRegistries(application.getRegistries());\n-            setRegistryIds(application.getRegistryIds());\n-        }\n-    }\n-\n-    /**\n-     * @return local\n-     * @deprecated Replace to <code>getStub()</code>\n-     */\n-    @Deprecated\n-    public String getLocal() {\n-        return local;\n-    }\n-\n-    /**\n-     * @param local\n-     * @deprecated Replace to <code>setStub(Boolean)</code>\n-     */\n-    @Deprecated\n-    public void setLocal(Boolean local) {\n-        if (local == null) {\n-            setLocal((String) null);\n-        } else {\n-            setLocal(local.toString());\n-        }\n-    }\n-\n-    /**\n-     * @param local\n-     * @deprecated Replace to <code>setStub(String)</code>\n-     */\n-    @Deprecated\n-    public void setLocal(String local) {\n-        this.local = local;\n-    }\n-\n-    public String getStub() {\n-        return stub;\n-    }\n-\n-    public void setStub(Boolean stub) {\n-        if (stub == null) {\n-            setStub((String) null);\n-        } else {\n-            setStub(stub.toString());\n-        }\n-    }\n-\n-    public void setStub(String stub) {\n-        this.stub = stub;\n-    }\n-\n-    public String getCluster() {\n-        return cluster;\n-    }\n-\n-    public void setCluster(String cluster) {\n-        this.cluster = cluster;\n-    }\n-\n-    public String getProxy() {\n-        return proxy;\n-    }\n-\n-    public void setProxy(String proxy) {\n-\n-        this.proxy = proxy;\n-    }\n-\n-    public Integer getConnections() {\n-        return connections;\n-    }\n-\n-    public void setConnections(Integer connections) {\n-        this.connections = connections;\n-    }\n-\n-    @Parameter(key = REFERENCE_FILTER_KEY, append = true)\n-    public String getFilter() {\n-        return filter;\n-    }\n-\n-    public void setFilter(String filter) {\n-        this.filter = filter;\n-    }\n-\n-    @Parameter(key = INVOKER_LISTENER_KEY, append = true)\n-    public String getListener() {\n-        return listener;\n-    }\n-\n-    public void setListener(String listener) {\n-        this.listener = listener;\n-    }\n-\n-    public String getLayer() {\n-        return layer;\n-    }\n-\n-    public void setLayer(String layer) {\n-        this.layer = layer;\n-    }\n-\n-    /**\n-     * Always use the global ApplicationConfig\n-     */\n-    public ApplicationConfig getApplication() {\n-        ApplicationConfig globalApplication = ApplicationModel.getConfigManager().getApplicationOrElseThrow();\n-        if (globalApplication == null) {\n-            return application;\n-        }\n-        if (application != null && !StringUtils.isEquals(application.getName(), globalApplication.getName())) {\n-            return application;\n-        }\n-        return globalApplication;\n-    }\n-\n-    @Deprecated\n-    public void setApplication(ApplicationConfig application) {\n-        this.application = application;\n-        if (application != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            configManager.getApplication().orElseGet(() -> {\n-                configManager.setApplication(application);\n-                return application;\n-            });\n-        }\n-    }\n-\n-    public ModuleConfig getModule() {\n-        if (module != null) {\n-            return module;\n-        }\n-        return ApplicationModel.getConfigManager().getModule().orElse(null);\n-    }\n-\n-    @Deprecated\n-    public void setModule(ModuleConfig module) {\n-        this.module = module;\n-        if (module != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            configManager.getModule().orElseGet(() -> {\n-                configManager.setModule(module);\n-                return module;\n-            });\n-        }\n-    }\n-\n-    public RegistryConfig getRegistry() {\n-        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\n-    }\n-\n-    public void setRegistry(RegistryConfig registry) {\n-        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\n-        registries.add(registry);\n-        setRegistries(registries);\n-    }\n-\n-    public List<RegistryConfig> getRegistries() {\n-        return registries;\n-    }\n-\n-    @SuppressWarnings({\"unchecked\"})\n-    public void setRegistries(List<? extends RegistryConfig> registries) {\n-        this.registries = (List<RegistryConfig>) registries;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getRegistryIds() {\n-        return registryIds;\n-    }\n-\n-    public void setRegistryIds(String registryIds) {\n-        this.registryIds = registryIds;\n-    }\n-\n-\n-    public List<MethodConfig> getMethods() {\n-        return methods;\n-    }\n-\n-    // ======== Deprecated ========\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public void setMethods(List<? extends MethodConfig> methods) {\n-        this.methods = (List<MethodConfig>) methods;\n-    }\n-\n-\n-    public MonitorConfig getMonitor() {\n-        if (monitor != null) {\n-            return monitor;\n-        }\n-        // FIXME: instead of return null, we should set default monitor when getMonitor() return null in ConfigManager\n-        return ApplicationModel.getConfigManager().getMonitor().orElse(null);\n-    }\n-\n-    @Deprecated\n-    public void setMonitor(String monitor) {\n-        setMonitor(new MonitorConfig(monitor));\n-    }\n-\n-    @Deprecated\n-    public void setMonitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-        if (monitor != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            configManager.getMonitor().orElseGet(() -> {\n-                configManager.setMonitor(monitor);\n-                return monitor;\n-            });\n-        }\n-    }\n-\n-    public String getOwner() {\n-        return owner;\n-    }\n-\n-    public void setOwner(String owner) {\n-        this.owner = owner;\n-    }\n-\n-    @Deprecated\n-    public ConfigCenterConfig getConfigCenter() {\n-        if (configCenter != null) {\n-            return configCenter;\n-        }\n-        Collection<ConfigCenterConfig> configCenterConfigs = ApplicationModel.getConfigManager().getConfigCenters();\n-        if (CollectionUtils.isNotEmpty(configCenterConfigs)) {\n-            return configCenterConfigs.iterator().next();\n-        }\n-        return null;\n-    }\n-\n-    @Deprecated\n-    public void setConfigCenter(ConfigCenterConfig configCenter) {\n-        this.configCenter = configCenter;\n-        if (configCenter != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            Collection<ConfigCenterConfig> configs = configManager.getConfigCenters();\n-            if (CollectionUtils.isEmpty(configs)\n-                    || configs.stream().noneMatch(existed -> existed.equals(configCenter))) {\n-                configManager.addConfigCenter(configCenter);\n-            }\n-        }\n-    }\n-\n-    public Integer getCallbacks() {\n-        return callbacks;\n-    }\n-\n-    public void setCallbacks(Integer callbacks) {\n-        this.callbacks = callbacks;\n-    }\n-\n-    public String getOnconnect() {\n-        return onconnect;\n-    }\n-\n-    public void setOnconnect(String onconnect) {\n-        this.onconnect = onconnect;\n-    }\n-\n-    public String getOndisconnect() {\n-        return ondisconnect;\n-    }\n-\n-    public void setOndisconnect(String ondisconnect) {\n-        this.ondisconnect = ondisconnect;\n-    }\n-\n-    public String getScope() {\n-        return scope;\n-    }\n-\n-    public void setScope(String scope) {\n-        this.scope = scope;\n-    }\n-\n-    @Deprecated\n-    public MetadataReportConfig getMetadataReportConfig() {\n-        if (metadataReportConfig != null) {\n-            return metadataReportConfig;\n-        }\n-        Collection<MetadataReportConfig> metadataReportConfigs = ApplicationModel.getConfigManager().getMetadataConfigs();\n-        if (CollectionUtils.isNotEmpty(metadataReportConfigs)) {\n-            return metadataReportConfigs.iterator().next();\n-        }\n-        return null;\n-    }\n-\n-    @Deprecated\n-    public void setMetadataReportConfig(MetadataReportConfig metadataReportConfig) {\n-        this.metadataReportConfig = metadataReportConfig;\n-        if (metadataReportConfig != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            Collection<MetadataReportConfig> configs = configManager.getMetadataConfigs();\n-            if (CollectionUtils.isEmpty(configs)\n-                    || configs.stream().noneMatch(existed -> existed.equals(metadataReportConfig))) {\n-                configManager.addMetadataReport(metadataReportConfig);\n-            }\n-        }\n-    }\n-\n-    @Deprecated\n-    public MetricsConfig getMetrics() {\n-        if (metrics != null) {\n-            return metrics;\n-        }\n-        return ApplicationModel.getConfigManager().getMetrics().orElse(null);\n-    }\n-\n-    @Deprecated\n-    public void setMetrics(MetricsConfig metrics) {\n-        this.metrics = metrics;\n-        if (metrics != null) {\n-            ConfigManager configManager = ApplicationModel.getConfigManager();\n-            configManager.getMetrics().orElseGet(() -> {\n-                configManager.setMetrics(metrics);\n-                return metrics;\n-            });\n-        }\n-    }\n-\n-    @Parameter(key = TAG_KEY, useKeyAsProperty = false)\n-    public String getTag() {\n-        return tag;\n-    }\n-\n-    public void setTag(String tag) {\n-        this.tag = tag;\n-    }\n-\n-    public Boolean getAuth() {\n-        return auth;\n-    }\n-\n-    public void setAuth(Boolean auth) {\n-        this.auth = auth;\n-    }\n-\n-    public SslConfig getSslConfig() {\n-        return ApplicationModel.getConfigManager().getSsl().orElse(null);\n-    }\n-    \n-    public void initServiceMetadata(AbstractInterfaceConfig interfaceConfig) {\n-        serviceMetadata.setVersion(getVersion(interfaceConfig));\n-        serviceMetadata.setGroup(getGroup(interfaceConfig));\n-        serviceMetadata.setDefaultGroup(getGroup(interfaceConfig));\n-        serviceMetadata.setServiceInterfaceName(getInterface());\n-    }\n-    \n-    public String getGroup(AbstractInterfaceConfig interfaceConfig) {\n-        return StringUtils.isEmpty(this.group) ? (interfaceConfig != null ? interfaceConfig.getGroup() : this.group) : this.group;\n-    }\n-\n-    public String getVersion(AbstractInterfaceConfig interfaceConfig) {\n-        return StringUtils.isEmpty(this.version) ? (interfaceConfig != null ? interfaceConfig.getVersion() : this.version) : this.version;\n-    }\n-    \n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-    \n-    public String getInterface() {\n-        return interfaceName;\n-    }\n-    \n-    public void setInterface(String interfaceName) {\n-        this.interfaceName = interfaceName;\n-//         if (StringUtils.isEmpty(id)) {\n-//             id = interfaceName;\n-//         }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.utils.Assert;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ServiceMetadata;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INVOKER_LISTENER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\r\n+\r\n+/**\r\n+ * AbstractDefaultConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class AbstractInterfaceConfig extends AbstractMethodConfig {\r\n+\r\n+    private static final long serialVersionUID = -1559314110797223229L;\r\n+\r\n+    /**\r\n+     * The interface name of the exported service\r\n+     */\r\n+    protected String interfaceName;\r\n+    /**\r\n+     * The remote service version the customer/provider side will reference\r\n+     */\r\n+    protected String version;\r\n+\r\n+    /**\r\n+     * The remote service group the customer/provider side will reference\r\n+     */\r\n+    protected String group;\r\n+    \r\n+    protected ServiceMetadata serviceMetadata;\r\n+    /**\r\n+     * Local impl class name for the service interface\r\n+     */\r\n+    protected String local;\r\n+\r\n+    /**\r\n+     * Local stub class name for the service interface\r\n+     */\r\n+    protected String stub;\r\n+\r\n+    /**\r\n+     * Service monitor\r\n+     */\r\n+    protected MonitorConfig monitor;\r\n+\r\n+    /**\r\n+     * Strategies for generating dynamic agents\uff0cthere are two strategies can be choosed: jdk and javassist\r\n+     */\r\n+    protected String proxy;\r\n+\r\n+    /**\r\n+     * Cluster type\r\n+     */\r\n+    protected String cluster;\r\n+\r\n+    /**\r\n+     * The {@code Filter} when the provider side exposed a service or the customer side references a remote service used,\r\n+     * if there are more than one, you can use commas to separate them\r\n+     */\r\n+    protected String filter;\r\n+\r\n+    /**\r\n+     * The Listener when the provider side exposes a service or the customer side references a remote service used\r\n+     * if there are more than one, you can use commas to separate them\r\n+     */\r\n+    protected String listener;\r\n+\r\n+    /**\r\n+     * The owner of the service providers\r\n+     */\r\n+    protected String owner;\r\n+\r\n+    /**\r\n+     * Connection limits, 0 means shared connection, otherwise it defines the connections delegated to the current service\r\n+     */\r\n+    protected Integer connections;\r\n+\r\n+    /**\r\n+     * The layer of service providers\r\n+     */\r\n+    protected String layer;\r\n+\r\n+    /**\r\n+     * The application info\r\n+     */\r\n+    protected ApplicationConfig application;\r\n+\r\n+    /**\r\n+     * The module info\r\n+     */\r\n+    protected ModuleConfig module;\r\n+\r\n+    /**\r\n+     * The registry list the service will register to\r\n+     * Also see {@link #registryIds}, only one of them will work.\r\n+     */\r\n+    protected List<RegistryConfig> registries;\r\n+\r\n+    /**\r\n+     * The method configuration\r\n+     */\r\n+    private List<MethodConfig> methods;\r\n+\r\n+    /**\r\n+     * The id list of registries the service will register to\r\n+     * Also see {@link #registries}, only one of them will work.\r\n+     */\r\n+    protected String registryIds;\r\n+\r\n+    // connection events\r\n+    protected String onconnect;\r\n+\r\n+    /**\r\n+     * Disconnection events\r\n+     */\r\n+    protected String ondisconnect;\r\n+\r\n+    /**\r\n+     * The metrics configuration\r\n+     */\r\n+    protected MetricsConfig metrics;\r\n+    protected MetadataReportConfig metadataReportConfig;\r\n+\r\n+    protected ConfigCenterConfig configCenter;\r\n+\r\n+    // callback limits\r\n+    private Integer callbacks;\r\n+    // the scope for referring/exporting a service, if it's local, it means searching in current JVM only.\r\n+    private String scope;\r\n+\r\n+    protected String tag;\r\n+\r\n+    private  Boolean auth;\r\n+\r\n+\r\n+    /**\r\n+     * The url of the reference service\r\n+     */\r\n+    protected final List<URL> urls = new ArrayList<URL>();\r\n+\r\n+    public List<URL> getExportedUrls() {\r\n+        return urls;\r\n+    }\r\n+\r\n+    public URL toUrl() {\r\n+        return urls.isEmpty() ? null : urls.iterator().next();\r\n+    }\r\n+\r\n+    public List<URL> toUrls() {\r\n+        return urls;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check whether the registry config is exists, and then conversion it to {@link RegistryConfig}\r\n+     */\r\n+    public void checkRegistry() {\r\n+        convertRegistryIdsToRegistries();\r\n+\r\n+        for (RegistryConfig registryConfig : registries) {\r\n+            if (!registryConfig.isValid()) {\r\n+                throw new IllegalStateException(\"No registry config found or it's not a valid config! \" +\r\n+                        \"The registry config is: \" + registryConfig);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static void appendRuntimeParameters(Map<String, String> map) {\r\n+        map.put(DUBBO_VERSION_KEY, Version.getProtocolVersion());\r\n+        map.put(RELEASE_KEY, Version.getVersion());\r\n+        map.put(TIMESTAMP_KEY, String.valueOf(System.currentTimeMillis()));\r\n+        if (ConfigUtils.getPid() > 0) {\r\n+            map.put(PID_KEY, String.valueOf(ConfigUtils.getPid()));\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Check whether the remote service interface and the methods meet with Dubbo's requirements.it mainly check, if the\r\n+     * methods configured in the configuration file are included in the interface of remote service\r\n+     *\r\n+     * @param interfaceClass the interface of remote service\r\n+     * @param methods        the methods configured\r\n+     */\r\n+    public void checkInterfaceAndMethods(Class<?> interfaceClass, List<MethodConfig> methods) {\r\n+        // interface cannot be null\r\n+        Assert.notNull(interfaceClass, new IllegalStateException(\"interface not allow null!\"));\r\n+\r\n+        // to verify interfaceClass is an interface\r\n+        if (!interfaceClass.isInterface()) {\r\n+            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\r\n+        }\r\n+        // check if methods exist in the remote service interface\r\n+        if (CollectionUtils.isNotEmpty(methods)) {\r\n+            for (MethodConfig methodBean : methods) {\r\n+                methodBean.setService(interfaceClass.getName());\r\n+                methodBean.setServiceId(this.getId());\r\n+                methodBean.refresh();\r\n+                String methodName = methodBean.getName();\r\n+                if (StringUtils.isEmpty(methodName)) {\r\n+                    throw new IllegalStateException(\"<dubbo:method> name attribute is required! Please check: \" +\r\n+                            \"<dubbo:service interface=\\\"\" + interfaceClass.getName() + \"\\\" ... >\" +\r\n+                            \"<dubbo:method name=\\\"\\\" ... /></<dubbo:reference>\");\r\n+                }\r\n+\r\n+                boolean hasMethod = Arrays.stream(interfaceClass.getMethods()).anyMatch(method -> method.getName().equals(methodName));\r\n+                if (!hasMethod) {\r\n+                    throw new IllegalStateException(\"The interface \" + interfaceClass.getName()\r\n+                            + \" not found method \" + methodName);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+\r\n+\r\n+    /**\r\n+     * Legitimacy check of stub, note that: the local will deprecated, and replace with <code>stub</code>\r\n+     *\r\n+     * @param interfaceClass for provider side, it is the {@link Class} of the service that will be exported; for consumer\r\n+     *                       side, it is the {@link Class} of the remote service interface\r\n+     */\r\n+    public void checkStubAndLocal(Class<?> interfaceClass) {\r\n+        verifyStubAndLocal(local, \"Local\", interfaceClass);\r\n+        verifyStubAndLocal(stub, \"Stub\", interfaceClass);\r\n+    }\r\n+    \r\n+    public void verifyStubAndLocal(String className, String label, Class<?> interfaceClass){\r\n+    \tif (ConfigUtils.isNotEmpty(className)) {\r\n+            Class<?> localClass = ConfigUtils.isDefault(className) ?\r\n+                    ReflectUtils.forName(interfaceClass.getName() + label) : ReflectUtils.forName(className);\r\n+                        verify(interfaceClass, localClass);\r\n+            }\r\n+    }\r\n+\r\n+    private void verify(Class<?> interfaceClass, Class<?> localClass) {\r\n+        if (!interfaceClass.isAssignableFrom(localClass)) {\r\n+            throw new IllegalStateException(\"The local implementation class \" + localClass.getName() +\r\n+                    \" not implement interface \" + interfaceClass.getName());\r\n+        }\r\n+\r\n+        try {\r\n+            //Check if the localClass a constructor with parameter who's type is interfaceClass\r\n+            ReflectUtils.findConstructor(localClass, interfaceClass);\r\n+        } catch (NoSuchMethodException e) {\r\n+            throw new IllegalStateException(\"No such constructor \\\"public \" + localClass.getSimpleName() +\r\n+                    \"(\" + interfaceClass.getName() + \")\\\" in local implementation class \" + localClass.getName());\r\n+        }\r\n+    }\r\n+\r\n+    private void convertRegistryIdsToRegistries() {\r\n+        computeValidRegistryIds();\r\n+        if (StringUtils.isEmpty(registryIds)) {\r\n+            if (CollectionUtils.isEmpty(registries)) {\r\n+                List<RegistryConfig> registryConfigs = ApplicationModel.getConfigManager().getDefaultRegistries();\r\n+                if (registryConfigs.isEmpty()) {\r\n+                    registryConfigs = new ArrayList<>();\r\n+                    RegistryConfig registryConfig = new RegistryConfig();\r\n+                    registryConfig.refresh();\r\n+                    registryConfigs.add(registryConfig);\r\n+                } else {\r\n+                    registryConfigs = new ArrayList<>(registryConfigs);\r\n+                }\r\n+                setRegistries(registryConfigs);\r\n+            }\r\n+        } else {\r\n+            String[] ids = COMMA_SPLIT_PATTERN.split(registryIds);\r\n+            List<RegistryConfig> tmpRegistries = new ArrayList<>();\r\n+            Arrays.stream(ids).forEach(id -> {\r\n+                if (tmpRegistries.stream().noneMatch(reg -> reg.getId().equals(id))) {\r\n+                    Optional<RegistryConfig> globalRegistry = ApplicationModel.getConfigManager().getRegistry(id);\r\n+                    if (globalRegistry.isPresent()) {\r\n+                        tmpRegistries.add(globalRegistry.get());\r\n+                    } else {\r\n+                        RegistryConfig registryConfig = new RegistryConfig();\r\n+                        registryConfig.setId(id);\r\n+                        registryConfig.refresh();\r\n+                        tmpRegistries.add(registryConfig);\r\n+                    }\r\n+                }\r\n+            });\r\n+\r\n+            if (tmpRegistries.size() > ids.length) {\r\n+                throw new IllegalStateException(\"Too much registries found, the registries assigned to this service \" +\r\n+                        \"are :\" + registryIds + \", but got \" + tmpRegistries.size() + \" registries!\");\r\n+            }\r\n+\r\n+            setRegistries(tmpRegistries);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    protected boolean notHasSelfRegistryProperty() {\r\n+        return CollectionUtils.isEmpty(registries) && StringUtils.isEmpty(registryIds);\r\n+    }\r\n+\r\n+    public void completeCompoundConfigs(AbstractInterfaceConfig interfaceConfig) {\r\n+        if (interfaceConfig != null) {\r\n+            if (application == null) {\r\n+                setApplication(interfaceConfig.getApplication());\r\n+            }\r\n+            if (module == null) {\r\n+                setModule(interfaceConfig.getModule());\r\n+            }\r\n+            if (notHasSelfRegistryProperty()) {\r\n+                setRegistries(interfaceConfig.getRegistries());\r\n+                setRegistryIds(interfaceConfig.getRegistryIds());\r\n+            }\r\n+            if (monitor == null) {\r\n+                setMonitor(interfaceConfig.getMonitor());\r\n+            }\r\n+        }\r\n+        if (module != null) {\r\n+            if (notHasSelfRegistryProperty()) {\r\n+                setRegistries(module.getRegistries());\r\n+            }\r\n+            if (monitor == null) {\r\n+                setMonitor(module.getMonitor());\r\n+            }\r\n+        }\r\n+        if (application != null) {\r\n+            if (notHasSelfRegistryProperty()) {\r\n+                setRegistries(application.getRegistries());\r\n+                setRegistryIds(application.getRegistryIds());\r\n+            }\r\n+            if (monitor == null) {\r\n+                setMonitor(application.getMonitor());\r\n+            }\r\n+        }\r\n+    }\r\n+    \r\n+    protected void computeValidRegistryIds() {\r\n+        if (application != null && notHasSelfRegistryProperty()) {\r\n+            setRegistries(application.getRegistries());\r\n+            setRegistryIds(application.getRegistryIds());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @return local\r\n+     * @deprecated Replace to <code>getStub()</code>\r\n+     */\r\n+    @Deprecated\r\n+    public String getLocal() {\r\n+        return local;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param local\r\n+     * @deprecated Replace to <code>setStub(Boolean)</code>\r\n+     */\r\n+    @Deprecated\r\n+    public void setLocal(Boolean local) {\r\n+        if (local == null) {\r\n+            setLocal((String) null);\r\n+        } else {\r\n+            setLocal(local.toString());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @param local\r\n+     * @deprecated Replace to <code>setStub(String)</code>\r\n+     */\r\n+    @Deprecated\r\n+    public void setLocal(String local) {\r\n+        this.local = local;\r\n+    }\r\n+\r\n+    public String getStub() {\r\n+        return stub;\r\n+    }\r\n+\r\n+    public void setStub(Boolean stub) {\r\n+        if (stub == null) {\r\n+            setStub((String) null);\r\n+        } else {\r\n+            setStub(stub.toString());\r\n+        }\r\n+    }\r\n+\r\n+    public void setStub(String stub) {\r\n+        this.stub = stub;\r\n+    }\r\n+\r\n+    public String getCluster() {\r\n+        return cluster;\r\n+    }\r\n+\r\n+    public void setCluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+    }\r\n+\r\n+    public String getProxy() {\r\n+        return proxy;\r\n+    }\r\n+\r\n+    public void setProxy(String proxy) {\r\n+\r\n+        this.proxy = proxy;\r\n+    }\r\n+\r\n+    public Integer getConnections() {\r\n+        return connections;\r\n+    }\r\n+\r\n+    public void setConnections(Integer connections) {\r\n+        this.connections = connections;\r\n+    }\r\n+\r\n+    @Parameter(key = REFERENCE_FILTER_KEY, append = true)\r\n+    public String getFilter() {\r\n+        return filter;\r\n+    }\r\n+\r\n+    public void setFilter(String filter) {\r\n+        this.filter = filter;\r\n+    }\r\n+\r\n+    @Parameter(key = INVOKER_LISTENER_KEY, append = true)\r\n+    public String getListener() {\r\n+        return listener;\r\n+    }\r\n+\r\n+    public void setListener(String listener) {\r\n+        this.listener = listener;\r\n+    }\r\n+\r\n+    public String getLayer() {\r\n+        return layer;\r\n+    }\r\n+\r\n+    public void setLayer(String layer) {\r\n+        this.layer = layer;\r\n+    }\r\n+\r\n+    /**\r\n+     * Always use the global ApplicationConfig\r\n+     */\r\n+    public ApplicationConfig getApplication() {\r\n+        ApplicationConfig globalApplication = ApplicationModel.getConfigManager().getApplicationOrElseThrow();\r\n+        if (globalApplication == null) {\r\n+            return application;\r\n+        }\r\n+        if (application != null && !StringUtils.isEquals(application.getName(), globalApplication.getName())) {\r\n+            return application;\r\n+        }\r\n+        return globalApplication;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setApplication(ApplicationConfig application) {\r\n+        this.application = application;\r\n+        if (application != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            configManager.getApplication().orElseGet(() -> {\r\n+                configManager.setApplication(application);\r\n+                return application;\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    public ModuleConfig getModule() {\r\n+        if (module != null) {\r\n+            return module;\r\n+        }\r\n+        return ApplicationModel.getConfigManager().getModule().orElse(null);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setModule(ModuleConfig module) {\r\n+        this.module = module;\r\n+        if (module != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            configManager.getModule().orElseGet(() -> {\r\n+                configManager.setModule(module);\r\n+                return module;\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    public RegistryConfig getRegistry() {\r\n+        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\r\n+    }\r\n+\r\n+    public void setRegistry(RegistryConfig registry) {\r\n+        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\r\n+        registries.add(registry);\r\n+        setRegistries(registries);\r\n+    }\r\n+\r\n+    public List<RegistryConfig> getRegistries() {\r\n+        return registries;\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\"})\r\n+    public void setRegistries(List<? extends RegistryConfig> registries) {\r\n+        this.registries = (List<RegistryConfig>) registries;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getRegistryIds() {\r\n+        return registryIds;\r\n+    }\r\n+\r\n+    public void setRegistryIds(String registryIds) {\r\n+        this.registryIds = registryIds;\r\n+    }\r\n+\r\n+\r\n+    public List<MethodConfig> getMethods() {\r\n+        return methods;\r\n+    }\r\n+\r\n+    // ======== Deprecated ========\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void setMethods(List<? extends MethodConfig> methods) {\r\n+        this.methods = (List<MethodConfig>) methods;\r\n+    }\r\n+\r\n+\r\n+    public MonitorConfig getMonitor() {\r\n+        if (monitor != null) {\r\n+            return monitor;\r\n+        }\r\n+        // FIXME: instead of return null, we should set default monitor when getMonitor() return null in ConfigManager\r\n+        return ApplicationModel.getConfigManager().getMonitor().orElse(null);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setMonitor(String monitor) {\r\n+        setMonitor(new MonitorConfig(monitor));\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setMonitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+        if (monitor != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            configManager.getMonitor().orElseGet(() -> {\r\n+                configManager.setMonitor(monitor);\r\n+                return monitor;\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    public String getOwner() {\r\n+        return owner;\r\n+    }\r\n+\r\n+    public void setOwner(String owner) {\r\n+        this.owner = owner;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public ConfigCenterConfig getConfigCenter() {\r\n+        if (configCenter != null) {\r\n+            return configCenter;\r\n+        }\r\n+        Collection<ConfigCenterConfig> configCenterConfigs = ApplicationModel.getConfigManager().getConfigCenters();\r\n+        if (CollectionUtils.isNotEmpty(configCenterConfigs)) {\r\n+            return configCenterConfigs.iterator().next();\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setConfigCenter(ConfigCenterConfig configCenter) {\r\n+        this.configCenter = configCenter;\r\n+        if (configCenter != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            Collection<ConfigCenterConfig> configs = configManager.getConfigCenters();\r\n+            if (CollectionUtils.isEmpty(configs)\r\n+                    || configs.stream().noneMatch(existed -> existed.equals(configCenter))) {\r\n+                configManager.addConfigCenter(configCenter);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public Integer getCallbacks() {\r\n+        return callbacks;\r\n+    }\r\n+\r\n+    public void setCallbacks(Integer callbacks) {\r\n+        this.callbacks = callbacks;\r\n+    }\r\n+\r\n+    public String getOnconnect() {\r\n+        return onconnect;\r\n+    }\r\n+\r\n+    public void setOnconnect(String onconnect) {\r\n+        this.onconnect = onconnect;\r\n+    }\r\n+\r\n+    public String getOndisconnect() {\r\n+        return ondisconnect;\r\n+    }\r\n+\r\n+    public void setOndisconnect(String ondisconnect) {\r\n+        this.ondisconnect = ondisconnect;\r\n+    }\r\n+\r\n+    public String getScope() {\r\n+        return scope;\r\n+    }\r\n+\r\n+    public void setScope(String scope) {\r\n+        this.scope = scope;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public MetadataReportConfig getMetadataReportConfig() {\r\n+        if (metadataReportConfig != null) {\r\n+            return metadataReportConfig;\r\n+        }\r\n+        Collection<MetadataReportConfig> metadataReportConfigs = ApplicationModel.getConfigManager().getMetadataConfigs();\r\n+        if (CollectionUtils.isNotEmpty(metadataReportConfigs)) {\r\n+            return metadataReportConfigs.iterator().next();\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setMetadataReportConfig(MetadataReportConfig metadataReportConfig) {\r\n+        this.metadataReportConfig = metadataReportConfig;\r\n+        if (metadataReportConfig != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            Collection<MetadataReportConfig> configs = configManager.getMetadataConfigs();\r\n+            if (CollectionUtils.isEmpty(configs)\r\n+                    || configs.stream().noneMatch(existed -> existed.equals(metadataReportConfig))) {\r\n+                configManager.addMetadataReport(metadataReportConfig);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public MetricsConfig getMetrics() {\r\n+        if (metrics != null) {\r\n+            return metrics;\r\n+        }\r\n+        return ApplicationModel.getConfigManager().getMetrics().orElse(null);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setMetrics(MetricsConfig metrics) {\r\n+        this.metrics = metrics;\r\n+        if (metrics != null) {\r\n+            ConfigManager configManager = ApplicationModel.getConfigManager();\r\n+            configManager.getMetrics().orElseGet(() -> {\r\n+                configManager.setMetrics(metrics);\r\n+                return metrics;\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    @Parameter(key = TAG_KEY, useKeyAsProperty = false)\r\n+    public String getTag() {\r\n+        return tag;\r\n+    }\r\n+\r\n+    public void setTag(String tag) {\r\n+        this.tag = tag;\r\n+    }\r\n+\r\n+    public Boolean getAuth() {\r\n+        return auth;\r\n+    }\r\n+\r\n+    public void setAuth(Boolean auth) {\r\n+        this.auth = auth;\r\n+    }\r\n+\r\n+    public SslConfig getSslConfig() {\r\n+        return ApplicationModel.getConfigManager().getSsl().orElse(null);\r\n+    }\r\n+    \r\n+    public void initServiceMetadata(AbstractInterfaceConfig interfaceConfig) {\r\n+        serviceMetadata.setVersion(getVersion(interfaceConfig));\r\n+        serviceMetadata.setGroup(getGroup(interfaceConfig));\r\n+        serviceMetadata.setDefaultGroup(getGroup(interfaceConfig));\r\n+        serviceMetadata.setServiceInterfaceName(getInterface());\r\n+    }\r\n+    \r\n+    public String getGroup(AbstractInterfaceConfig interfaceConfig) {\r\n+        return StringUtils.isEmpty(this.group) ? (interfaceConfig != null ? interfaceConfig.getGroup() : this.group) : this.group;\r\n+    }\r\n+\r\n+    public String getVersion(AbstractInterfaceConfig interfaceConfig) {\r\n+        return StringUtils.isEmpty(this.version) ? (interfaceConfig != null ? interfaceConfig.getVersion() : this.version) : this.version;\r\n+    }\r\n+    \r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+    \r\n+    public String getInterface() {\r\n+        return interfaceName;\r\n+    }\r\n+    \r\n+    public void setInterface(String interfaceName) {\r\n+        this.interfaceName = interfaceName;\r\n+//         if (StringUtils.isEmpty(id)) {\r\n+//             id = interfaceName;\r\n+//         }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/AbstractMethodConfig.java", "source2": "org/apache/dubbo/config/AbstractMethodConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,208 +1,208 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.Map;\n-\n-/**\n- * AbstractMethodConfig\n- *\n- * @export\n- */\n-public abstract class AbstractMethodConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = 1L;\n-\n-    /**\n-     * The timeout for remote invocation in milliseconds\n-     */\n-    protected Integer timeout;\n-\n-    /**\n-     * The retry times\n-     */\n-    protected Integer retries;\n-\n-    /**\n-     * max concurrent invocations\n-     */\n-    protected Integer actives;\n-\n-    /**\n-     * The load balance\n-     */\n-    protected String loadbalance;\n-\n-    /**\n-     * Whether to async\n-     * note that: it is an unreliable asynchronism that ignores return values and does not block threads.\n-     */\n-    protected Boolean async;\n-\n-    /**\n-     * Whether to ack async-sent\n-     */\n-    protected Boolean sent;\n-\n-    /**\n-     * The name of mock class which gets called when a service fails to execute\n-     * <p>\n-     * note that: the mock doesn't support on the provider side\uff0cand the mock is executed when a non-business exception\n-     * occurs after a remote service call\n-     */\n-    protected String mock;\n-\n-    /**\n-     * Merger\n-     */\n-    protected String merger;\n-\n-    /**\n-     * Cache the return result with the call parameter as key, the following options are available: lru, threadlocal,\n-     * jcache, etc.\n-     */\n-    protected String cache;\n-\n-    /**\n-     * Whether JSR303 standard annotation validation is enabled or not, if enabled, annotations on method parameters will\n-     * be validated\n-     */\n-    protected String validation;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    protected Map<String, String> parameters;\n-\n-    /**\n-     * Forks for forking cluster\n-     */\n-    protected Integer forks;\n-\n-    public Integer getForks() {\n-        return forks;\n-    }\n-\n-    public void setForks(Integer forks) {\n-        this.forks = forks;\n-    }\n-\n-    public Integer getTimeout() {\n-        return timeout;\n-    }\n-\n-    public void setTimeout(Integer timeout) {\n-        this.timeout = timeout;\n-    }\n-\n-    public Integer getRetries() {\n-        return retries;\n-    }\n-\n-    public void setRetries(Integer retries) {\n-        this.retries = retries;\n-    }\n-\n-    public String getLoadbalance() {\n-        return loadbalance;\n-    }\n-\n-    public void setLoadbalance(String loadbalance) {\n-        this.loadbalance = loadbalance;\n-    }\n-\n-    public Boolean isAsync() {\n-        return async;\n-    }\n-\n-    public void setAsync(Boolean async) {\n-        this.async = async;\n-    }\n-\n-    public Integer getActives() {\n-        return actives;\n-    }\n-\n-    public void setActives(Integer actives) {\n-        this.actives = actives;\n-    }\n-\n-    public Boolean getSent() {\n-        return sent;\n-    }\n-\n-    public void setSent(Boolean sent) {\n-        this.sent = sent;\n-    }\n-\n-    @Parameter(escaped = true)\n-    public String getMock() {\n-        return mock;\n-    }\n-\n-    public void setMock(String mock) {\n-        this.mock = mock;\n-    }\n-\n-    /**\n-     * Set the property \"mock\"\n-     *\n-     * @param mock the value of mock\n-     * @since 2.7.6\n-     */\n-    public void setMock(Object mock) {\n-        if (mock == null) {\n-            return;\n-        }\n-        this.setMock(String.valueOf(mock));\n-    }\n-\n-    public String getMerger() {\n-        return merger;\n-    }\n-\n-    public void setMerger(String merger) {\n-        this.merger = merger;\n-    }\n-\n-    public String getCache() {\n-        return cache;\n-    }\n-\n-    public void setCache(String cache) {\n-        this.cache = cache;\n-    }\n-\n-    public String getValidation() {\n-        return validation;\n-    }\n-\n-    public void setValidation(String validation) {\n-        this.validation = validation;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * AbstractMethodConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class AbstractMethodConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = 1L;\r\n+\r\n+    /**\r\n+     * The timeout for remote invocation in milliseconds\r\n+     */\r\n+    protected Integer timeout;\r\n+\r\n+    /**\r\n+     * The retry times\r\n+     */\r\n+    protected Integer retries;\r\n+\r\n+    /**\r\n+     * max concurrent invocations\r\n+     */\r\n+    protected Integer actives;\r\n+\r\n+    /**\r\n+     * The load balance\r\n+     */\r\n+    protected String loadbalance;\r\n+\r\n+    /**\r\n+     * Whether to async\r\n+     * note that: it is an unreliable asynchronism that ignores return values and does not block threads.\r\n+     */\r\n+    protected Boolean async;\r\n+\r\n+    /**\r\n+     * Whether to ack async-sent\r\n+     */\r\n+    protected Boolean sent;\r\n+\r\n+    /**\r\n+     * The name of mock class which gets called when a service fails to execute\r\n+     * <p>\r\n+     * note that: the mock doesn't support on the provider side\uff0cand the mock is executed when a non-business exception\r\n+     * occurs after a remote service call\r\n+     */\r\n+    protected String mock;\r\n+\r\n+    /**\r\n+     * Merger\r\n+     */\r\n+    protected String merger;\r\n+\r\n+    /**\r\n+     * Cache the return result with the call parameter as key, the following options are available: lru, threadlocal,\r\n+     * jcache, etc.\r\n+     */\r\n+    protected String cache;\r\n+\r\n+    /**\r\n+     * Whether JSR303 standard annotation validation is enabled or not, if enabled, annotations on method parameters will\r\n+     * be validated\r\n+     */\r\n+    protected String validation;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    protected Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * Forks for forking cluster\r\n+     */\r\n+    protected Integer forks;\r\n+\r\n+    public Integer getForks() {\r\n+        return forks;\r\n+    }\r\n+\r\n+    public void setForks(Integer forks) {\r\n+        this.forks = forks;\r\n+    }\r\n+\r\n+    public Integer getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public void setTimeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+    }\r\n+\r\n+    public Integer getRetries() {\r\n+        return retries;\r\n+    }\r\n+\r\n+    public void setRetries(Integer retries) {\r\n+        this.retries = retries;\r\n+    }\r\n+\r\n+    public String getLoadbalance() {\r\n+        return loadbalance;\r\n+    }\r\n+\r\n+    public void setLoadbalance(String loadbalance) {\r\n+        this.loadbalance = loadbalance;\r\n+    }\r\n+\r\n+    public Boolean isAsync() {\r\n+        return async;\r\n+    }\r\n+\r\n+    public void setAsync(Boolean async) {\r\n+        this.async = async;\r\n+    }\r\n+\r\n+    public Integer getActives() {\r\n+        return actives;\r\n+    }\r\n+\r\n+    public void setActives(Integer actives) {\r\n+        this.actives = actives;\r\n+    }\r\n+\r\n+    public Boolean getSent() {\r\n+        return sent;\r\n+    }\r\n+\r\n+    public void setSent(Boolean sent) {\r\n+        this.sent = sent;\r\n+    }\r\n+\r\n+    @Parameter(escaped = true)\r\n+    public String getMock() {\r\n+        return mock;\r\n+    }\r\n+\r\n+    public void setMock(String mock) {\r\n+        this.mock = mock;\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the property \"mock\"\r\n+     *\r\n+     * @param mock the value of mock\r\n+     * @since 2.7.6\r\n+     */\r\n+    public void setMock(Object mock) {\r\n+        if (mock == null) {\r\n+            return;\r\n+        }\r\n+        this.setMock(String.valueOf(mock));\r\n+    }\r\n+\r\n+    public String getMerger() {\r\n+        return merger;\r\n+    }\r\n+\r\n+    public void setMerger(String merger) {\r\n+        this.merger = merger;\r\n+    }\r\n+\r\n+    public String getCache() {\r\n+        return cache;\r\n+    }\r\n+\r\n+    public void setCache(String cache) {\r\n+        this.cache = cache;\r\n+    }\r\n+\r\n+    public String getValidation() {\r\n+        return validation;\r\n+    }\r\n+\r\n+    public void setValidation(String validation) {\r\n+        this.validation = validation;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/AbstractReferenceConfig.java", "source2": "org/apache/dubbo/config/AbstractReferenceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,226 +1,226 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.INVOKER_LISTENER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.STUB_EVENT_KEY;\n-\n-/**\n- * AbstractConsumerConfig\n- *\n- * @export\n- * @see ReferenceConfigBase\n- */\n-public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {\n-\n-    private static final long serialVersionUID = -2786526984373031126L;\n-\n-    // ======== Reference config default values, will take effect if reference's attribute is not set  ========\n-\n-    /**\n-     * Check if service provider exists, if not exists, it will be fast fail\n-     */\n-    protected Boolean check;\n-\n-    /**\n-     * Whether to eagle-init\n-     */\n-    protected Boolean init;\n-\n-    /**\n-     * Whether to use generic interface\n-     */\n-    protected String generic;\n-\n-    /**\n-     * Whether to find reference's instance from the current JVM\n-     */\n-    protected Boolean injvm;\n-\n-    /**\n-     * Lazy create connection\n-     */\n-    protected Boolean lazy;\n-\n-    protected String reconnect;\n-\n-    protected Boolean sticky = false;\n-\n-    /**\n-     * Whether to support event in stub.\n-     */\n-    //TODO solve merge problem\n-    protected Boolean stubevent;//= Constants.DEFAULT_STUB_EVENT;\n-\n-\n-\n-    /**\n-     * declares which app or service this interface belongs to\n-     */\n-    protected String providedBy;\n-\n-    protected String router;\n-\n-    public Boolean isCheck() {\n-        return check;\n-    }\n-\n-    public void setCheck(Boolean check) {\n-        this.check = check;\n-    }\n-\n-    public Boolean isInit() {\n-        return init;\n-    }\n-\n-    public void setInit(Boolean init) {\n-        this.init = init;\n-    }\n-\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public Boolean isGeneric() {\n-        return this.generic != null ? ProtocolUtils.isGeneric(generic) : null;\n-    }\n-\n-    @Deprecated\n-    public void setGeneric(Boolean generic) {\n-        if (generic != null) {\n-            this.generic = generic.toString();\n-        }\n-    }\n-\n-    public String getGeneric() {\n-        return generic;\n-    }\n-\n-    public void setGeneric(String generic) {\n-        if (StringUtils.isEmpty(generic)) {\n-            return;\n-        }\n-        if (ProtocolUtils.isValidGenericValue(generic)) {\n-            this.generic = generic;\n-        } else {\n-            throw new IllegalArgumentException(\"Unsupported generic type \" + generic);\n-        }\n-    }\n-\n-    /**\n-     * @return\n-     * @deprecated instead, use the parameter <b>scope</> to judge if it's in jvm, scope=local\n-     */\n-    @Deprecated\n-    public Boolean isInjvm() {\n-        return injvm;\n-    }\n-\n-    /**\n-     * @param injvm\n-     * @deprecated instead, use the parameter <b>scope</b> to judge if it's in jvm, scope=local\n-     */\n-    @Deprecated\n-    public void setInjvm(Boolean injvm) {\n-        this.injvm = injvm;\n-    }\n-\n-    @Override\n-    @Parameter(key = REFERENCE_FILTER_KEY, append = true)\n-    public String getFilter() {\n-        return super.getFilter();\n-    }\n-\n-    @Override\n-    @Parameter(key = INVOKER_LISTENER_KEY, append = true)\n-    public String getListener() {\n-        return super.getListener();\n-    }\n-\n-    @Override\n-    public void setListener(String listener) {\n-        super.setListener(listener);\n-    }\n-\n-    public Boolean getLazy() {\n-        return lazy;\n-    }\n-\n-    public void setLazy(Boolean lazy) {\n-        this.lazy = lazy;\n-    }\n-\n-    @Override\n-    public void setOnconnect(String onconnect) {\n-        if (onconnect != null && onconnect.length() > 0) {\n-            this.stubevent = true;\n-        }\n-        super.setOnconnect(onconnect);\n-    }\n-\n-    @Override\n-    public void setOndisconnect(String ondisconnect) {\n-        if (ondisconnect != null && ondisconnect.length() > 0) {\n-            this.stubevent = true;\n-        }\n-        super.setOndisconnect(ondisconnect);\n-    }\n-\n-    @Parameter(key = STUB_EVENT_KEY)\n-    public Boolean getStubevent() {\n-        return stubevent;\n-    }\n-\n-    public String getReconnect() {\n-        return reconnect;\n-    }\n-\n-    public void setReconnect(String reconnect) {\n-        this.reconnect = reconnect;\n-    }\n-\n-    public Boolean getSticky() {\n-        return sticky;\n-    }\n-\n-    public void setSticky(Boolean sticky) {\n-        this.sticky = sticky;\n-    }\n-\n-\n-\n-    @Parameter(key = \"provided-by\")\n-    public String getProvidedBy() {\n-        return providedBy;\n-    }\n-\n-    public void setProvidedBy(String providedBy) {\n-        this.providedBy = providedBy;\n-    }\n-\n-    @Parameter(key = \"router\", append = true)\n-    public String getRouter() {\n-        return router;\n-    }\n-\n-    public void setRouter(String router) {\n-        this.router = router;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INVOKER_LISTENER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.STUB_EVENT_KEY;\r\n+\r\n+/**\r\n+ * AbstractConsumerConfig\r\n+ *\r\n+ * @export\r\n+ * @see ReferenceConfigBase\r\n+ */\r\n+public abstract class AbstractReferenceConfig extends AbstractInterfaceConfig {\r\n+\r\n+    private static final long serialVersionUID = -2786526984373031126L;\r\n+\r\n+    // ======== Reference config default values, will take effect if reference's attribute is not set  ========\r\n+\r\n+    /**\r\n+     * Check if service provider exists, if not exists, it will be fast fail\r\n+     */\r\n+    protected Boolean check;\r\n+\r\n+    /**\r\n+     * Whether to eagle-init\r\n+     */\r\n+    protected Boolean init;\r\n+\r\n+    /**\r\n+     * Whether to use generic interface\r\n+     */\r\n+    protected String generic;\r\n+\r\n+    /**\r\n+     * Whether to find reference's instance from the current JVM\r\n+     */\r\n+    protected Boolean injvm;\r\n+\r\n+    /**\r\n+     * Lazy create connection\r\n+     */\r\n+    protected Boolean lazy;\r\n+\r\n+    protected String reconnect;\r\n+\r\n+    protected Boolean sticky = false;\r\n+\r\n+    /**\r\n+     * Whether to support event in stub.\r\n+     */\r\n+    //TODO solve merge problem\r\n+    protected Boolean stubevent;//= Constants.DEFAULT_STUB_EVENT;\r\n+\r\n+\r\n+\r\n+    /**\r\n+     * declares which app or service this interface belongs to\r\n+     */\r\n+    protected String providedBy;\r\n+\r\n+    protected String router;\r\n+\r\n+    public Boolean isCheck() {\r\n+        return check;\r\n+    }\r\n+\r\n+    public void setCheck(Boolean check) {\r\n+        this.check = check;\r\n+    }\r\n+\r\n+    public Boolean isInit() {\r\n+        return init;\r\n+    }\r\n+\r\n+    public void setInit(Boolean init) {\r\n+        this.init = init;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public Boolean isGeneric() {\r\n+        return this.generic != null ? ProtocolUtils.isGeneric(generic) : null;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setGeneric(Boolean generic) {\r\n+        if (generic != null) {\r\n+            this.generic = generic.toString();\r\n+        }\r\n+    }\r\n+\r\n+    public String getGeneric() {\r\n+        return generic;\r\n+    }\r\n+\r\n+    public void setGeneric(String generic) {\r\n+        if (StringUtils.isEmpty(generic)) {\r\n+            return;\r\n+        }\r\n+        if (ProtocolUtils.isValidGenericValue(generic)) {\r\n+            this.generic = generic;\r\n+        } else {\r\n+            throw new IllegalArgumentException(\"Unsupported generic type \" + generic);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @return\r\n+     * @deprecated instead, use the parameter <b>scope</> to judge if it's in jvm, scope=local\r\n+     */\r\n+    @Deprecated\r\n+    public Boolean isInjvm() {\r\n+        return injvm;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param injvm\r\n+     * @deprecated instead, use the parameter <b>scope</b> to judge if it's in jvm, scope=local\r\n+     */\r\n+    @Deprecated\r\n+    public void setInjvm(Boolean injvm) {\r\n+        this.injvm = injvm;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(key = REFERENCE_FILTER_KEY, append = true)\r\n+    public String getFilter() {\r\n+        return super.getFilter();\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(key = INVOKER_LISTENER_KEY, append = true)\r\n+    public String getListener() {\r\n+        return super.getListener();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setListener(String listener) {\r\n+        super.setListener(listener);\r\n+    }\r\n+\r\n+    public Boolean getLazy() {\r\n+        return lazy;\r\n+    }\r\n+\r\n+    public void setLazy(Boolean lazy) {\r\n+        this.lazy = lazy;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setOnconnect(String onconnect) {\r\n+        if (onconnect != null && onconnect.length() > 0) {\r\n+            this.stubevent = true;\r\n+        }\r\n+        super.setOnconnect(onconnect);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setOndisconnect(String ondisconnect) {\r\n+        if (ondisconnect != null && ondisconnect.length() > 0) {\r\n+            this.stubevent = true;\r\n+        }\r\n+        super.setOndisconnect(ondisconnect);\r\n+    }\r\n+\r\n+    @Parameter(key = STUB_EVENT_KEY)\r\n+    public Boolean getStubevent() {\r\n+        return stubevent;\r\n+    }\r\n+\r\n+    public String getReconnect() {\r\n+        return reconnect;\r\n+    }\r\n+\r\n+    public void setReconnect(String reconnect) {\r\n+        this.reconnect = reconnect;\r\n+    }\r\n+\r\n+    public Boolean getSticky() {\r\n+        return sticky;\r\n+    }\r\n+\r\n+    public void setSticky(Boolean sticky) {\r\n+        this.sticky = sticky;\r\n+    }\r\n+\r\n+\r\n+\r\n+    @Parameter(key = \"provided-by\")\r\n+    public String getProvidedBy() {\r\n+        return providedBy;\r\n+    }\r\n+\r\n+    public void setProvidedBy(String providedBy) {\r\n+        this.providedBy = providedBy;\r\n+    }\r\n+\r\n+    @Parameter(key = \"router\", append = true)\r\n+    public String getRouter() {\r\n+        return router;\r\n+    }\r\n+\r\n+    public void setRouter(String router) {\r\n+        this.router = router;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/AbstractServiceConfig.java", "source2": "org/apache/dubbo/config/AbstractServiceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,291 +1,291 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.EXPORTER_LISTENER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SERVICE_FILTER_KEY;\n-\n-/**\n- * AbstractServiceConfig\n- *\n- * @export\n- */\n-public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {\n-\n-    private static final long serialVersionUID = 1L;\n-\n-    /**\n-     * The service version\n-     */\n-    protected String version;\n-\n-    /**\n-     * The service group\n-     */\n-    protected String group;\n-\n-    /**\n-     * whether the service is deprecated\n-     */\n-    protected Boolean deprecated = false;\n-\n-    /**\n-     * The time delay register service (milliseconds)\n-     */\n-    protected Integer delay;\n-\n-    /**\n-     * Whether to export the service\n-     */\n-    protected Boolean export;\n-\n-    /**\n-     * The service weight\n-     */\n-    protected Integer weight;\n-\n-    /**\n-     * Document center\n-     */\n-    protected String document;\n-\n-    /**\n-     * Whether to register as a dynamic service or not on register center, the value is true, the status will be enabled\n-     * after the service registered,and it needs to be disabled manually; if you want to disable the service, you also need\n-     * manual processing\n-     */\n-    protected Boolean dynamic = true;\n-\n-    /**\n-     * Whether to use token\n-     */\n-    protected String token;\n-\n-    /**\n-     * Whether to export access logs to logs\n-     */\n-    protected String accesslog;\n-\n-    /**\n-     * The protocol list the service will export with\n-     * Also see {@link #protocolIds}, only one of them will work.\n-     */\n-    protected List<ProtocolConfig> protocols;\n-\n-    /**\n-     * The id list of protocols the service will export with\n-     * Also see {@link #protocols}, only one of them will work.\n-     */\n-    protected String protocolIds;\n-\n-    // max allowed execute times\n-    private Integer executes;\n-\n-    /**\n-     * Whether to register\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * Warm up period\n-     */\n-    private Integer warmup;\n-\n-    /**\n-     * The serialization type\n-     */\n-    private String serialization;\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public Integer getDelay() {\n-        return delay;\n-    }\n-\n-    public void setDelay(Integer delay) {\n-        this.delay = delay;\n-    }\n-\n-    public Boolean getExport() {\n-        return export;\n-    }\n-\n-    public void setExport(Boolean export) {\n-        this.export = export;\n-    }\n-\n-    public Integer getWeight() {\n-        return weight;\n-    }\n-\n-    public void setWeight(Integer weight) {\n-        this.weight = weight;\n-    }\n-\n-    @Parameter(escaped = true)\n-    public String getDocument() {\n-        return document;\n-    }\n-\n-    public void setDocument(String document) {\n-        this.document = document;\n-    }\n-\n-    public String getToken() {\n-        return token;\n-    }\n-\n-    public void setToken(Boolean token) {\n-        if (token == null) {\n-            setToken((String) null);\n-        } else {\n-            setToken(String.valueOf(token));\n-        }\n-    }\n-\n-    public void setToken(String token) {\n-        this.token = token;\n-    }\n-\n-    public Boolean isDeprecated() {\n-        return deprecated;\n-    }\n-\n-    public void setDeprecated(Boolean deprecated) {\n-        this.deprecated = deprecated;\n-    }\n-\n-    public Boolean isDynamic() {\n-        return dynamic;\n-    }\n-\n-    public void setDynamic(Boolean dynamic) {\n-        this.dynamic = dynamic;\n-    }\n-\n-    public List<ProtocolConfig> getProtocols() {\n-        return protocols;\n-    }\n-\n-    @SuppressWarnings({\"unchecked\"})\n-    public void setProtocols(List<? extends ProtocolConfig> protocols) {\n-        this.protocols = (List<ProtocolConfig>) protocols;\n-    }\n-\n-    public ProtocolConfig getProtocol() {\n-        return CollectionUtils.isEmpty(protocols) ? null : protocols.get(0);\n-    }\n-\n-    public void setProtocol(ProtocolConfig protocol) {\n-        setProtocols(new ArrayList<>(Arrays.asList(protocol)));\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getProtocolIds() {\n-        return protocolIds;\n-    }\n-\n-    public void setProtocolIds(String protocolIds) {\n-        this.protocolIds = protocolIds;\n-    }\n-\n-    public String getAccesslog() {\n-        return accesslog;\n-    }\n-\n-    public void setAccesslog(Boolean accesslog) {\n-        if (accesslog == null) {\n-            setAccesslog((String) null);\n-        } else {\n-            setAccesslog(String.valueOf(accesslog));\n-        }\n-    }\n-\n-    public void setAccesslog(String accesslog) {\n-        this.accesslog = accesslog;\n-    }\n-\n-    public Integer getExecutes() {\n-        return executes;\n-    }\n-\n-    public void setExecutes(Integer executes) {\n-        this.executes = executes;\n-    }\n-\n-    @Override\n-    @Parameter(key = SERVICE_FILTER_KEY, append = true)\n-    public String getFilter() {\n-        return super.getFilter();\n-    }\n-\n-    @Override\n-    @Parameter(key = EXPORTER_LISTENER_KEY, append = true)\n-    public String getListener() {\n-        return listener;\n-    }\n-\n-    @Override\n-    public void setListener(String listener) {\n-        this.listener = listener;\n-    }\n-\n-    public Boolean isRegister() {\n-        return register;\n-    }\n-\n-    public void setRegister(Boolean register) {\n-        this.register = register;\n-    }\n-\n-    public Integer getWarmup() {\n-        return warmup;\n-    }\n-\n-    public void setWarmup(Integer warmup) {\n-        this.warmup = warmup;\n-    }\n-\n-    public String getSerialization() {\n-        return serialization;\n-    }\n-\n-    public void setSerialization(String serialization) {\n-        this.serialization = serialization;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EXPORTER_LISTENER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SERVICE_FILTER_KEY;\r\n+\r\n+/**\r\n+ * AbstractServiceConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class AbstractServiceConfig extends AbstractInterfaceConfig {\r\n+\r\n+    private static final long serialVersionUID = 1L;\r\n+\r\n+    /**\r\n+     * The service version\r\n+     */\r\n+    protected String version;\r\n+\r\n+    /**\r\n+     * The service group\r\n+     */\r\n+    protected String group;\r\n+\r\n+    /**\r\n+     * whether the service is deprecated\r\n+     */\r\n+    protected Boolean deprecated = false;\r\n+\r\n+    /**\r\n+     * The time delay register service (milliseconds)\r\n+     */\r\n+    protected Integer delay;\r\n+\r\n+    /**\r\n+     * Whether to export the service\r\n+     */\r\n+    protected Boolean export;\r\n+\r\n+    /**\r\n+     * The service weight\r\n+     */\r\n+    protected Integer weight;\r\n+\r\n+    /**\r\n+     * Document center\r\n+     */\r\n+    protected String document;\r\n+\r\n+    /**\r\n+     * Whether to register as a dynamic service or not on register center, the value is true, the status will be enabled\r\n+     * after the service registered,and it needs to be disabled manually; if you want to disable the service, you also need\r\n+     * manual processing\r\n+     */\r\n+    protected Boolean dynamic = true;\r\n+\r\n+    /**\r\n+     * Whether to use token\r\n+     */\r\n+    protected String token;\r\n+\r\n+    /**\r\n+     * Whether to export access logs to logs\r\n+     */\r\n+    protected String accesslog;\r\n+\r\n+    /**\r\n+     * The protocol list the service will export with\r\n+     * Also see {@link #protocolIds}, only one of them will work.\r\n+     */\r\n+    protected List<ProtocolConfig> protocols;\r\n+\r\n+    /**\r\n+     * The id list of protocols the service will export with\r\n+     * Also see {@link #protocols}, only one of them will work.\r\n+     */\r\n+    protected String protocolIds;\r\n+\r\n+    // max allowed execute times\r\n+    private Integer executes;\r\n+\r\n+    /**\r\n+     * Whether to register\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * Warm up period\r\n+     */\r\n+    private Integer warmup;\r\n+\r\n+    /**\r\n+     * The serialization type\r\n+     */\r\n+    private String serialization;\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public Integer getDelay() {\r\n+        return delay;\r\n+    }\r\n+\r\n+    public void setDelay(Integer delay) {\r\n+        this.delay = delay;\r\n+    }\r\n+\r\n+    public Boolean getExport() {\r\n+        return export;\r\n+    }\r\n+\r\n+    public void setExport(Boolean export) {\r\n+        this.export = export;\r\n+    }\r\n+\r\n+    public Integer getWeight() {\r\n+        return weight;\r\n+    }\r\n+\r\n+    public void setWeight(Integer weight) {\r\n+        this.weight = weight;\r\n+    }\r\n+\r\n+    @Parameter(escaped = true)\r\n+    public String getDocument() {\r\n+        return document;\r\n+    }\r\n+\r\n+    public void setDocument(String document) {\r\n+        this.document = document;\r\n+    }\r\n+\r\n+    public String getToken() {\r\n+        return token;\r\n+    }\r\n+\r\n+    public void setToken(Boolean token) {\r\n+        if (token == null) {\r\n+            setToken((String) null);\r\n+        } else {\r\n+            setToken(String.valueOf(token));\r\n+        }\r\n+    }\r\n+\r\n+    public void setToken(String token) {\r\n+        this.token = token;\r\n+    }\r\n+\r\n+    public Boolean isDeprecated() {\r\n+        return deprecated;\r\n+    }\r\n+\r\n+    public void setDeprecated(Boolean deprecated) {\r\n+        this.deprecated = deprecated;\r\n+    }\r\n+\r\n+    public Boolean isDynamic() {\r\n+        return dynamic;\r\n+    }\r\n+\r\n+    public void setDynamic(Boolean dynamic) {\r\n+        this.dynamic = dynamic;\r\n+    }\r\n+\r\n+    public List<ProtocolConfig> getProtocols() {\r\n+        return protocols;\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\"})\r\n+    public void setProtocols(List<? extends ProtocolConfig> protocols) {\r\n+        this.protocols = (List<ProtocolConfig>) protocols;\r\n+    }\r\n+\r\n+    public ProtocolConfig getProtocol() {\r\n+        return CollectionUtils.isEmpty(protocols) ? null : protocols.get(0);\r\n+    }\r\n+\r\n+    public void setProtocol(ProtocolConfig protocol) {\r\n+        setProtocols(new ArrayList<>(Arrays.asList(protocol)));\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getProtocolIds() {\r\n+        return protocolIds;\r\n+    }\r\n+\r\n+    public void setProtocolIds(String protocolIds) {\r\n+        this.protocolIds = protocolIds;\r\n+    }\r\n+\r\n+    public String getAccesslog() {\r\n+        return accesslog;\r\n+    }\r\n+\r\n+    public void setAccesslog(Boolean accesslog) {\r\n+        if (accesslog == null) {\r\n+            setAccesslog((String) null);\r\n+        } else {\r\n+            setAccesslog(String.valueOf(accesslog));\r\n+        }\r\n+    }\r\n+\r\n+    public void setAccesslog(String accesslog) {\r\n+        this.accesslog = accesslog;\r\n+    }\r\n+\r\n+    public Integer getExecutes() {\r\n+        return executes;\r\n+    }\r\n+\r\n+    public void setExecutes(Integer executes) {\r\n+        this.executes = executes;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(key = SERVICE_FILTER_KEY, append = true)\r\n+    public String getFilter() {\r\n+        return super.getFilter();\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(key = EXPORTER_LISTENER_KEY, append = true)\r\n+    public String getListener() {\r\n+        return listener;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setListener(String listener) {\r\n+        this.listener = listener;\r\n+    }\r\n+\r\n+    public Boolean isRegister() {\r\n+        return register;\r\n+    }\r\n+\r\n+    public void setRegister(Boolean register) {\r\n+        this.register = register;\r\n+    }\r\n+\r\n+    public Integer getWarmup() {\r\n+        return warmup;\r\n+    }\r\n+\r\n+    public void setWarmup(Integer warmup) {\r\n+        this.warmup = warmup;\r\n+    }\r\n+\r\n+    public String getSerialization() {\r\n+        return serialization;\r\n+    }\r\n+\r\n+    public void setSerialization(String serialization) {\r\n+        this.serialization = serialization;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ApplicationConfig.java", "source2": "org/apache/dubbo/config/ApplicationConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,504 +1,504 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.compiler.support.AdaptiveCompiler;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.infra.InfraAdapter;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.net.InetAddress;\n-import java.net.UnknownHostException;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUMP_DIRECTORY;\n-import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\n-import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INTERFACE_KEY;\n-import static org.apache.dubbo.config.Constants.DEVELOPMENT_ENVIRONMENT;\n-import static org.apache.dubbo.config.Constants.PRODUCTION_ENVIRONMENT;\n-import static org.apache.dubbo.config.Constants.TEST_ENVIRONMENT;\n-\n-\n-/**\n- * The application info\n- *\n- * @export\n- */\n-public class ApplicationConfig extends AbstractConfig {\n-    private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationConfig.class);\n-\n-    private static final long serialVersionUID = 5508512956753757169L;\n-\n-    /**\n-     * Application name\n-     */\n-    private String name;\n-\n-    /**\n-     * The application version\n-     */\n-    private String version;\n-\n-    /**\n-     * Application owner\n-     */\n-    private String owner;\n-\n-    /**\n-     * Application's organization (BU)\n-     */\n-    private String organization;\n-\n-    /**\n-     * Architecture layer\n-     */\n-    private String architecture;\n-\n-    /**\n-     * Environment, e.g. dev, test or production\n-     */\n-    private String environment;\n-\n-    /**\n-     * Java compiler\n-     */\n-    private String compiler;\n-\n-    /**\n-     * The type of the log access\n-     */\n-    private String logger;\n-\n-    /**\n-     * Registry centers\n-     */\n-    private List<RegistryConfig> registries;\n-    private String registryIds;\n-\n-    /**\n-     * Monitor center\n-     */\n-    private MonitorConfig monitor;\n-\n-    /**\n-     * Is default or not\n-     */\n-    private Boolean isDefault;\n-\n-    /**\n-     * Directory for saving thread dump\n-     */\n-    private String dumpDirectory;\n-\n-    /**\n-     * Whether to enable qos or not\n-     */\n-    private Boolean qosEnable;\n-\n-    /**\n-     * The qos host to listen\n-     */\n-    private String qosHost;\n-\n-    /**\n-     * The qos port to listen\n-     */\n-    private Integer qosPort;\n-\n-    /**\n-     * Should we accept foreign ip or not?\n-     */\n-    private Boolean qosAcceptForeignIp;\n-\n-    /**\n-     * Customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * Config the shutdown.wait\n-     */\n-    private String shutwait;\n-\n-    private String hostname;\n-\n-    /**\n-     * Metadata type, local or remote, if choose remote, you need to further specify metadata center.\n-     */\n-    private String metadataType;\n-\n-    private Boolean registerConsumer;\n-\n-    private String repository;\n-\n-    private Boolean publishInterface;\n-\n-    /**\n-     * Metadata Service, used in Service Discovery\n-     */\n-    private Integer metadataServicePort;\n-\n-    public ApplicationConfig() {\n-    }\n-\n-    public ApplicationConfig(String name) {\n-        setName(name);\n-    }\n-\n-    @Parameter(key = APPLICATION_KEY, required = true, useKeyAsProperty = false)\n-    public String getName() {\n-        return name;\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-        if (StringUtils.isEmpty(id)) {\n-            id = name;\n-        }\n-    }\n-\n-    @Parameter(key = \"application.version\")\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getOwner() {\n-        return owner;\n-    }\n-\n-    public void setOwner(String owner) {\n-        this.owner = owner;\n-    }\n-\n-    public String getOrganization() {\n-        return organization;\n-    }\n-\n-    public void setOrganization(String organization) {\n-        this.organization = organization;\n-    }\n-\n-    public String getArchitecture() {\n-        return architecture;\n-    }\n-\n-    public void setArchitecture(String architecture) {\n-        this.architecture = architecture;\n-    }\n-\n-    public String getEnvironment() {\n-        return environment;\n-    }\n-\n-    public void setEnvironment(String environment) {\n-        if (environment != null) {\n-            if (!(DEVELOPMENT_ENVIRONMENT.equals(environment)\n-                    || TEST_ENVIRONMENT.equals(environment)\n-                    || PRODUCTION_ENVIRONMENT.equals(environment))) {\n-\n-                throw new IllegalStateException(String.format(\"Unsupported environment: %s, only support %s/%s/%s, default is %s.\",\n-                        environment,\n-                        DEVELOPMENT_ENVIRONMENT,\n-                        TEST_ENVIRONMENT,\n-                        PRODUCTION_ENVIRONMENT,\n-                        PRODUCTION_ENVIRONMENT));\n-            }\n-        }\n-        this.environment = environment;\n-    }\n-\n-    public RegistryConfig getRegistry() {\n-        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\n-    }\n-\n-    public void setRegistry(RegistryConfig registry) {\n-        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\n-        registries.add(registry);\n-        this.registries = registries;\n-    }\n-\n-    public List<RegistryConfig> getRegistries() {\n-        return registries;\n-    }\n-\n-    @SuppressWarnings({\"unchecked\"})\n-    public void setRegistries(List<? extends RegistryConfig> registries) {\n-        this.registries = (List<RegistryConfig>) registries;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getRegistryIds() {\n-        return registryIds;\n-    }\n-\n-    public void setRegistryIds(String registryIds) {\n-        this.registryIds = registryIds;\n-    }\n-\n-    public MonitorConfig getMonitor() {\n-        return monitor;\n-    }\n-\n-    public void setMonitor(String monitor) {\n-        this.monitor = new MonitorConfig(monitor);\n-    }\n-\n-    public void setMonitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-    }\n-\n-    public String getCompiler() {\n-        return compiler;\n-    }\n-\n-    public void setCompiler(String compiler) {\n-        this.compiler = compiler;\n-        AdaptiveCompiler.setDefaultCompiler(compiler);\n-    }\n-\n-    public String getLogger() {\n-        return logger;\n-    }\n-\n-    public void setLogger(String logger) {\n-        this.logger = logger;\n-        LoggerFactory.setLoggerAdapter(logger);\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    @Parameter(key = DUMP_DIRECTORY)\n-    public String getDumpDirectory() {\n-        return dumpDirectory;\n-    }\n-\n-    public void setDumpDirectory(String dumpDirectory) {\n-        this.dumpDirectory = dumpDirectory;\n-    }\n-\n-    @Parameter(key = QOS_ENABLE)\n-    public Boolean getQosEnable() {\n-        return qosEnable;\n-    }\n-\n-    public void setQosEnable(Boolean qosEnable) {\n-        this.qosEnable = qosEnable;\n-    }\n-\n-    @Parameter(key = QOS_HOST)\n-    public String getQosHost() {\n-        return qosHost;\n-    }\n-\n-    public void setQosHost(String qosHost) {\n-        this.qosHost = qosHost;\n-    }\n-\n-    @Parameter(key = QOS_PORT)\n-    public Integer getQosPort() {\n-        return qosPort;\n-    }\n-\n-    public void setQosPort(Integer qosPort) {\n-        this.qosPort = qosPort;\n-    }\n-\n-    @Parameter(key = ACCEPT_FOREIGN_IP)\n-    public Boolean getQosAcceptForeignIp() {\n-        return qosAcceptForeignIp;\n-    }\n-\n-    public void setQosAcceptForeignIp(Boolean qosAcceptForeignIp) {\n-        this.qosAcceptForeignIp = qosAcceptForeignIp;\n-    }\n-\n-    /**\n-     * The format is the same as the springboot, including: getQosEnableCompatible(), getQosPortCompatible(), getQosAcceptForeignIpCompatible().\n-     *\n-     * @return\n-     */\n-    @Parameter(key = \"qos-enable\", excluded = true)\n-    public Boolean getQosEnableCompatible() {\n-        return getQosEnable();\n-    }\n-\n-    public void setQosEnableCompatible(Boolean qosEnable) {\n-        setQosEnable(qosEnable);\n-    }\n-\n-    @Parameter(key = \"qos-host\", excluded = true)\n-    public String getQosHostCompatible() {\n-        return getQosHost();\n-    }\n-\n-    public void setQosHostCompatible(String qosHost) {\n-        this.setQosHost(qosHost);\n-    }\n-\n-    @Parameter(key = \"qos-port\", excluded = true)\n-    public Integer getQosPortCompatible() {\n-        return getQosPort();\n-    }\n-\n-    public void setQosPortCompatible(Integer qosPort) {\n-        this.setQosPort(qosPort);\n-    }\n-\n-    @Parameter(key = \"qos-accept-foreign-ip\", excluded = true)\n-    public Boolean getQosAcceptForeignIpCompatible() {\n-        return this.getQosAcceptForeignIp();\n-    }\n-\n-    public void setQosAcceptForeignIpCompatible(Boolean qosAcceptForeignIp) {\n-        this.setQosAcceptForeignIp(qosAcceptForeignIp);\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    public String getShutwait() {\n-        return shutwait;\n-    }\n-\n-    public void setShutwait(String shutwait) {\n-        System.setProperty(SHUTDOWN_WAIT_KEY, shutwait);\n-        this.shutwait = shutwait;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getHostname() {\n-        if (hostname == null) {\n-            try {\n-                hostname = InetAddress.getLocalHost().getHostName();\n-            } catch (UnknownHostException e) {\n-                LOGGER.warn(\"Failed to get the hostname of current instance.\", e);\n-                hostname = \"UNKNOWN\";\n-            }\n-        }\n-        return hostname;\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        return !StringUtils.isEmpty(name);\n-    }\n-\n-    @Parameter(key = METADATA_KEY)\n-    public String getMetadataType() {\n-        return metadataType;\n-    }\n-\n-    public void setMetadataType(String metadataType) {\n-        this.metadataType = metadataType;\n-    }\n-\n-    public Boolean getRegisterConsumer() {\n-        return registerConsumer;\n-    }\n-\n-    public void setRegisterConsumer(Boolean registerConsumer) {\n-        this.registerConsumer = registerConsumer;\n-    }\n-\n-    public String getRepository() {\n-        return repository;\n-    }\n-\n-    public void setRepository(String repository) {\n-        this.repository = repository;\n-    }\n-\n-    @Parameter(key = REGISTRY_PUBLISH_INTERFACE_KEY)\n-    public Boolean getPublishInterface() {\n-        return publishInterface;\n-    }\n-\n-    public void setPublishInterface(Boolean publishInterface) {\n-        this.publishInterface = publishInterface;\n-    }\n-\n-    @Parameter(key = \"metadata-service-port\")\n-    public Integer getMetadataServicePort() {\n-        return metadataServicePort;\n-    }\n-\n-    public void setMetadataServicePort(Integer metadataServicePort) {\n-        this.metadataServicePort = metadataServicePort;\n-    }\n-\n-    @Override\n-    public void refresh() {\n-        super.refresh();\n-        appendEnvironmentProperties();\n-    }\n-\n-    private void appendEnvironmentProperties() {\n-        if (parameters == null) {\n-            parameters = new HashMap<>();\n-        }\n-\n-        Set<InfraAdapter> adapters = ExtensionLoader.getExtensionLoader(InfraAdapter.class).getSupportedExtensionInstances();\n-        if (CollectionUtils.isNotEmpty(adapters)) {\n-            Map<String, String> inputParameters = new HashMap<>();\n-            inputParameters.put(APPLICATION_KEY, getName());\n-            inputParameters.put(HOST_KEY, getHostname());\n-            for (InfraAdapter adapter : adapters) {\n-                Map<String, String> extraParameters = adapter.getExtraAttributes(inputParameters);\n-                if (CollectionUtils.isNotEmptyMap(extraParameters)) {\n-                    extraParameters.forEach((key, value) -> {\n-                        String prefix = this.getPrefix() + \".\";\n-                        if (key.startsWith(prefix)) {\n-                            key = key.substring(prefix.length());\n-                        }\n-                        parameters.put(key, value);\n-                    });\n-                }\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.compiler.support.AdaptiveCompiler;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.infra.InfraAdapter;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.net.InetAddress;\r\n+import java.net.UnknownHostException;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUMP_DIRECTORY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\r\n+import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INTERFACE_KEY;\r\n+import static org.apache.dubbo.config.Constants.DEVELOPMENT_ENVIRONMENT;\r\n+import static org.apache.dubbo.config.Constants.PRODUCTION_ENVIRONMENT;\r\n+import static org.apache.dubbo.config.Constants.TEST_ENVIRONMENT;\r\n+\r\n+\r\n+/**\r\n+ * The application info\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ApplicationConfig extends AbstractConfig {\r\n+    private static final Logger LOGGER = LoggerFactory.getLogger(ApplicationConfig.class);\r\n+\r\n+    private static final long serialVersionUID = 5508512956753757169L;\r\n+\r\n+    /**\r\n+     * Application name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * The application version\r\n+     */\r\n+    private String version;\r\n+\r\n+    /**\r\n+     * Application owner\r\n+     */\r\n+    private String owner;\r\n+\r\n+    /**\r\n+     * Application's organization (BU)\r\n+     */\r\n+    private String organization;\r\n+\r\n+    /**\r\n+     * Architecture layer\r\n+     */\r\n+    private String architecture;\r\n+\r\n+    /**\r\n+     * Environment, e.g. dev, test or production\r\n+     */\r\n+    private String environment;\r\n+\r\n+    /**\r\n+     * Java compiler\r\n+     */\r\n+    private String compiler;\r\n+\r\n+    /**\r\n+     * The type of the log access\r\n+     */\r\n+    private String logger;\r\n+\r\n+    /**\r\n+     * Registry centers\r\n+     */\r\n+    private List<RegistryConfig> registries;\r\n+    private String registryIds;\r\n+\r\n+    /**\r\n+     * Monitor center\r\n+     */\r\n+    private MonitorConfig monitor;\r\n+\r\n+    /**\r\n+     * Is default or not\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    /**\r\n+     * Directory for saving thread dump\r\n+     */\r\n+    private String dumpDirectory;\r\n+\r\n+    /**\r\n+     * Whether to enable qos or not\r\n+     */\r\n+    private Boolean qosEnable;\r\n+\r\n+    /**\r\n+     * The qos host to listen\r\n+     */\r\n+    private String qosHost;\r\n+\r\n+    /**\r\n+     * The qos port to listen\r\n+     */\r\n+    private Integer qosPort;\r\n+\r\n+    /**\r\n+     * Should we accept foreign ip or not?\r\n+     */\r\n+    private Boolean qosAcceptForeignIp;\r\n+\r\n+    /**\r\n+     * Customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * Config the shutdown.wait\r\n+     */\r\n+    private String shutwait;\r\n+\r\n+    private String hostname;\r\n+\r\n+    /**\r\n+     * Metadata type, local or remote, if choose remote, you need to further specify metadata center.\r\n+     */\r\n+    private String metadataType;\r\n+\r\n+    private Boolean registerConsumer;\r\n+\r\n+    private String repository;\r\n+\r\n+    private Boolean publishInterface;\r\n+\r\n+    /**\r\n+     * Metadata Service, used in Service Discovery\r\n+     */\r\n+    private Integer metadataServicePort;\r\n+\r\n+    public ApplicationConfig() {\r\n+    }\r\n+\r\n+    public ApplicationConfig(String name) {\r\n+        setName(name);\r\n+    }\r\n+\r\n+    @Parameter(key = APPLICATION_KEY, required = true, useKeyAsProperty = false)\r\n+    public String getName() {\r\n+        return name;\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+        if (StringUtils.isEmpty(id)) {\r\n+            id = name;\r\n+        }\r\n+    }\r\n+\r\n+    @Parameter(key = \"application.version\")\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getOwner() {\r\n+        return owner;\r\n+    }\r\n+\r\n+    public void setOwner(String owner) {\r\n+        this.owner = owner;\r\n+    }\r\n+\r\n+    public String getOrganization() {\r\n+        return organization;\r\n+    }\r\n+\r\n+    public void setOrganization(String organization) {\r\n+        this.organization = organization;\r\n+    }\r\n+\r\n+    public String getArchitecture() {\r\n+        return architecture;\r\n+    }\r\n+\r\n+    public void setArchitecture(String architecture) {\r\n+        this.architecture = architecture;\r\n+    }\r\n+\r\n+    public String getEnvironment() {\r\n+        return environment;\r\n+    }\r\n+\r\n+    public void setEnvironment(String environment) {\r\n+        if (environment != null) {\r\n+            if (!(DEVELOPMENT_ENVIRONMENT.equals(environment)\r\n+                    || TEST_ENVIRONMENT.equals(environment)\r\n+                    || PRODUCTION_ENVIRONMENT.equals(environment))) {\r\n+\r\n+                throw new IllegalStateException(String.format(\"Unsupported environment: %s, only support %s/%s/%s, default is %s.\",\r\n+                        environment,\r\n+                        DEVELOPMENT_ENVIRONMENT,\r\n+                        TEST_ENVIRONMENT,\r\n+                        PRODUCTION_ENVIRONMENT,\r\n+                        PRODUCTION_ENVIRONMENT));\r\n+            }\r\n+        }\r\n+        this.environment = environment;\r\n+    }\r\n+\r\n+    public RegistryConfig getRegistry() {\r\n+        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\r\n+    }\r\n+\r\n+    public void setRegistry(RegistryConfig registry) {\r\n+        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\r\n+        registries.add(registry);\r\n+        this.registries = registries;\r\n+    }\r\n+\r\n+    public List<RegistryConfig> getRegistries() {\r\n+        return registries;\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\"})\r\n+    public void setRegistries(List<? extends RegistryConfig> registries) {\r\n+        this.registries = (List<RegistryConfig>) registries;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getRegistryIds() {\r\n+        return registryIds;\r\n+    }\r\n+\r\n+    public void setRegistryIds(String registryIds) {\r\n+        this.registryIds = registryIds;\r\n+    }\r\n+\r\n+    public MonitorConfig getMonitor() {\r\n+        return monitor;\r\n+    }\r\n+\r\n+    public void setMonitor(String monitor) {\r\n+        this.monitor = new MonitorConfig(monitor);\r\n+    }\r\n+\r\n+    public void setMonitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+    }\r\n+\r\n+    public String getCompiler() {\r\n+        return compiler;\r\n+    }\r\n+\r\n+    public void setCompiler(String compiler) {\r\n+        this.compiler = compiler;\r\n+        AdaptiveCompiler.setDefaultCompiler(compiler);\r\n+    }\r\n+\r\n+    public String getLogger() {\r\n+        return logger;\r\n+    }\r\n+\r\n+    public void setLogger(String logger) {\r\n+        this.logger = logger;\r\n+        LoggerFactory.setLoggerAdapter(logger);\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    @Parameter(key = DUMP_DIRECTORY)\r\n+    public String getDumpDirectory() {\r\n+        return dumpDirectory;\r\n+    }\r\n+\r\n+    public void setDumpDirectory(String dumpDirectory) {\r\n+        this.dumpDirectory = dumpDirectory;\r\n+    }\r\n+\r\n+    @Parameter(key = QOS_ENABLE)\r\n+    public Boolean getQosEnable() {\r\n+        return qosEnable;\r\n+    }\r\n+\r\n+    public void setQosEnable(Boolean qosEnable) {\r\n+        this.qosEnable = qosEnable;\r\n+    }\r\n+\r\n+    @Parameter(key = QOS_HOST)\r\n+    public String getQosHost() {\r\n+        return qosHost;\r\n+    }\r\n+\r\n+    public void setQosHost(String qosHost) {\r\n+        this.qosHost = qosHost;\r\n+    }\r\n+\r\n+    @Parameter(key = QOS_PORT)\r\n+    public Integer getQosPort() {\r\n+        return qosPort;\r\n+    }\r\n+\r\n+    public void setQosPort(Integer qosPort) {\r\n+        this.qosPort = qosPort;\r\n+    }\r\n+\r\n+    @Parameter(key = ACCEPT_FOREIGN_IP)\r\n+    public Boolean getQosAcceptForeignIp() {\r\n+        return qosAcceptForeignIp;\r\n+    }\r\n+\r\n+    public void setQosAcceptForeignIp(Boolean qosAcceptForeignIp) {\r\n+        this.qosAcceptForeignIp = qosAcceptForeignIp;\r\n+    }\r\n+\r\n+    /**\r\n+     * The format is the same as the springboot, including: getQosEnableCompatible(), getQosPortCompatible(), getQosAcceptForeignIpCompatible().\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Parameter(key = \"qos-enable\", excluded = true)\r\n+    public Boolean getQosEnableCompatible() {\r\n+        return getQosEnable();\r\n+    }\r\n+\r\n+    public void setQosEnableCompatible(Boolean qosEnable) {\r\n+        setQosEnable(qosEnable);\r\n+    }\r\n+\r\n+    @Parameter(key = \"qos-host\", excluded = true)\r\n+    public String getQosHostCompatible() {\r\n+        return getQosHost();\r\n+    }\r\n+\r\n+    public void setQosHostCompatible(String qosHost) {\r\n+        this.setQosHost(qosHost);\r\n+    }\r\n+\r\n+    @Parameter(key = \"qos-port\", excluded = true)\r\n+    public Integer getQosPortCompatible() {\r\n+        return getQosPort();\r\n+    }\r\n+\r\n+    public void setQosPortCompatible(Integer qosPort) {\r\n+        this.setQosPort(qosPort);\r\n+    }\r\n+\r\n+    @Parameter(key = \"qos-accept-foreign-ip\", excluded = true)\r\n+    public Boolean getQosAcceptForeignIpCompatible() {\r\n+        return this.getQosAcceptForeignIp();\r\n+    }\r\n+\r\n+    public void setQosAcceptForeignIpCompatible(Boolean qosAcceptForeignIp) {\r\n+        this.setQosAcceptForeignIp(qosAcceptForeignIp);\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    public String getShutwait() {\r\n+        return shutwait;\r\n+    }\r\n+\r\n+    public void setShutwait(String shutwait) {\r\n+        System.setProperty(SHUTDOWN_WAIT_KEY, shutwait);\r\n+        this.shutwait = shutwait;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getHostname() {\r\n+        if (hostname == null) {\r\n+            try {\r\n+                hostname = InetAddress.getLocalHost().getHostName();\r\n+            } catch (UnknownHostException e) {\r\n+                LOGGER.warn(\"Failed to get the hostname of current instance.\", e);\r\n+                hostname = \"UNKNOWN\";\r\n+            }\r\n+        }\r\n+        return hostname;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        return !StringUtils.isEmpty(name);\r\n+    }\r\n+\r\n+    @Parameter(key = METADATA_KEY)\r\n+    public String getMetadataType() {\r\n+        return metadataType;\r\n+    }\r\n+\r\n+    public void setMetadataType(String metadataType) {\r\n+        this.metadataType = metadataType;\r\n+    }\r\n+\r\n+    public Boolean getRegisterConsumer() {\r\n+        return registerConsumer;\r\n+    }\r\n+\r\n+    public void setRegisterConsumer(Boolean registerConsumer) {\r\n+        this.registerConsumer = registerConsumer;\r\n+    }\r\n+\r\n+    public String getRepository() {\r\n+        return repository;\r\n+    }\r\n+\r\n+    public void setRepository(String repository) {\r\n+        this.repository = repository;\r\n+    }\r\n+\r\n+    @Parameter(key = REGISTRY_PUBLISH_INTERFACE_KEY)\r\n+    public Boolean getPublishInterface() {\r\n+        return publishInterface;\r\n+    }\r\n+\r\n+    public void setPublishInterface(Boolean publishInterface) {\r\n+        this.publishInterface = publishInterface;\r\n+    }\r\n+\r\n+    @Parameter(key = \"metadata-service-port\")\r\n+    public Integer getMetadataServicePort() {\r\n+        return metadataServicePort;\r\n+    }\r\n+\r\n+    public void setMetadataServicePort(Integer metadataServicePort) {\r\n+        this.metadataServicePort = metadataServicePort;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void refresh() {\r\n+        super.refresh();\r\n+        appendEnvironmentProperties();\r\n+    }\r\n+\r\n+    private void appendEnvironmentProperties() {\r\n+        if (parameters == null) {\r\n+            parameters = new HashMap<>();\r\n+        }\r\n+\r\n+        Set<InfraAdapter> adapters = ExtensionLoader.getExtensionLoader(InfraAdapter.class).getSupportedExtensionInstances();\r\n+        if (CollectionUtils.isNotEmpty(adapters)) {\r\n+            Map<String, String> inputParameters = new HashMap<>();\r\n+            inputParameters.put(APPLICATION_KEY, getName());\r\n+            inputParameters.put(HOST_KEY, getHostname());\r\n+            for (InfraAdapter adapter : adapters) {\r\n+                Map<String, String> extraParameters = adapter.getExtraAttributes(inputParameters);\r\n+                if (CollectionUtils.isNotEmptyMap(extraParameters)) {\r\n+                    extraParameters.forEach((key, value) -> {\r\n+                        String prefix = this.getPrefix() + \".\";\r\n+                        if (key.startsWith(prefix)) {\r\n+                            key = key.substring(prefix.length());\r\n+                        }\r\n+                        parameters.put(key, value);\r\n+                    });\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ArgumentConfig.java", "source2": "org/apache/dubbo/config/ArgumentConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,83 +1,83 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.config.annotation.Argument;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.io.Serializable;\n-\n-/**\n- * The method arguments configuration\n- *\n- * @export\n- */\n-public class ArgumentConfig implements Serializable {\n-\n-    private static final long serialVersionUID = -2165482463925213595L;\n-\n-    /**\n-     * The argument index: index -1 represents not set\n-     */\n-    private Integer index = -1;\n-\n-    /**\n-     * Argument type\n-     */\n-    private String type;\n-\n-    /**\n-     * Whether the argument is the callback interface\n-     */\n-    private Boolean callback;\n-\n-    public ArgumentConfig() {\n-    }\n-\n-    public ArgumentConfig(Argument argument) {\n-        this.index = argument.index();\n-        this.type = argument.type();\n-        this.callback = argument.callback();\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Integer getIndex() {\n-        return index;\n-    }\n-\n-    public void setIndex(Integer index) {\n-        this.index = index;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getType() {\n-        return type;\n-    }\n-\n-    public void setType(String type) {\n-        this.type = type;\n-    }\n-\n-    public void setCallback(Boolean callback) {\n-        this.callback = callback;\n-    }\n-\n-    public Boolean isCallback() {\n-        return callback;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.config.annotation.Argument;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.io.Serializable;\r\n+\r\n+/**\r\n+ * The method arguments configuration\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ArgumentConfig implements Serializable {\r\n+\r\n+    private static final long serialVersionUID = -2165482463925213595L;\r\n+\r\n+    /**\r\n+     * The argument index: index -1 represents not set\r\n+     */\r\n+    private Integer index = -1;\r\n+\r\n+    /**\r\n+     * Argument type\r\n+     */\r\n+    private String type;\r\n+\r\n+    /**\r\n+     * Whether the argument is the callback interface\r\n+     */\r\n+    private Boolean callback;\r\n+\r\n+    public ArgumentConfig() {\r\n+    }\r\n+\r\n+    public ArgumentConfig(Argument argument) {\r\n+        this.index = argument.index();\r\n+        this.type = argument.type();\r\n+        this.callback = argument.callback();\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Integer getIndex() {\r\n+        return index;\r\n+    }\r\n+\r\n+    public void setIndex(Integer index) {\r\n+        this.index = index;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getType() {\r\n+        return type;\r\n+    }\r\n+\r\n+    public void setType(String type) {\r\n+        this.type = type;\r\n+    }\r\n+\r\n+    public void setCallback(Boolean callback) {\r\n+        this.callback = callback;\r\n+    }\r\n+\r\n+    public Boolean isCallback() {\r\n+        return callback;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ConfigCenterConfig.java", "source2": "org/apache/dubbo/config/ConfigCenterConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,289 +1,289 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_CONFIGFILE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_ENABLE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.config.Constants.CONFIG_APP_CONFIGFILE_KEY;\n-import static org.apache.dubbo.config.Constants.ZOOKEEPER_PROTOCOL;\n-\n-/**\n- * ConfigCenterConfig\n- */\n-public class ConfigCenterConfig extends AbstractConfig {\n-    private AtomicBoolean inited = new AtomicBoolean(false);\n-\n-    private String protocol;\n-    private String address;\n-    private Integer port;\n-\n-    /* The config center cluster, it's real meaning may very on different Config Center products. */\n-    private String cluster;\n-\n-    /* The namespace of the config center, generally it's used for multi-tenant,\n-    but it's real meaning depends on the actual Config Center you use.\n-    */\n-\n-    private String namespace = CommonConstants.DUBBO;\n-    /* The group of the config center, generally it's used to identify an isolated space for a batch of config items,\n-    but it's real meaning depends on the actual Config Center you use.\n-    */\n-    private String group = CommonConstants.DUBBO;\n-    private String username;\n-    private String password;\n-    private Long timeout = 3000L;\n-\n-    // If the Config Center is given the highest priority, it will override all the other configurations\n-    private Boolean highestPriority = true;\n-\n-    // Decide the behaviour when initial connection try fails, 'true' means interrupt the whole process once fail.\n-    private Boolean check = true;\n-\n-    /* Used to specify the key that your properties file mapping to, most of the time you do not need to change this parameter.\n-    Notice that for Apollo, this parameter is meaningless, set the 'namespace' is enough.\n-    */\n-    private String configFile = CommonConstants.DEFAULT_DUBBO_PROPERTIES;\n-\n-    /* the .properties file under 'configFile' is global shared while .properties under this one is limited only to this application\n-     */\n-    private String appConfigFile;\n-\n-    /* If the Config Center product you use have some special parameters that is not covered by this class, you can add it to here.\n-    For example, with XML:\n-      <dubbo:config-center>\n-           <dubbo:parameter key=\"{your key}\" value=\"{your value}\" />\n-      </dubbo:config-center>\n-     */\n-    private Map<String, String> parameters;\n-\n-    private Map<String, String> externalConfiguration;\n-\n-    private Map<String, String> appExternalConfiguration;\n-\n-    public ConfigCenterConfig() {\n-    }\n-\n-    public URL toUrl() {\n-        Map<String, String> map = new HashMap<>();\n-        appendParameters(map, this);\n-        if (StringUtils.isEmpty(address)) {\n-            address = ANYHOST_VALUE;\n-        }\n-        map.put(PATH_KEY, ConfigCenterConfig.class.getSimpleName());\n-        // use 'zookeeper' as the default configcenter.\n-        if (StringUtils.isEmpty(map.get(PROTOCOL_KEY))) {\n-            map.put(PROTOCOL_KEY, ZOOKEEPER_PROTOCOL);\n-        }\n-        return UrlUtils.parseURL(address, map);\n-    }\n-\n-    public boolean checkOrUpdateInited() {\n-        return inited.compareAndSet(false, true);\n-    }\n-\n-    public Map<String, String> getExternalConfiguration() {\n-        return externalConfiguration;\n-    }\n-\n-    public Map<String, String> getAppExternalConfiguration() {\n-        return appExternalConfiguration;\n-    }\n-\n-    public void setExternalConfig(Map<String, String> externalConfiguration) {\n-        this.externalConfiguration = externalConfiguration;\n-    }\n-\n-    public void setAppExternalConfig(Map<String, String> appExternalConfiguration) {\n-        this.appExternalConfiguration = appExternalConfiguration;\n-    }\n-\n-    public String getProtocol() {\n-        return protocol;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    public void setAddress(String address) {\n-        this.address = address;\n-        if (address != null) {\n-            try {\n-                URL url = URL.valueOf(address);\n-                setUsername(url.getUsername());\n-                setPassword(url.getPassword());\n-                updateIdIfAbsent(url.getProtocol());\n-                updateProtocolIfAbsent(url.getProtocol());\n-                updatePortIfAbsent(url.getPort());\n-                updateParameters(url.getParameters());\n-            } catch (Exception ignored) {\n-            }\n-        }\n-    }\n-\n-    public Integer getPort() {\n-        return port;\n-    }\n-\n-    public void setPort(Integer port) {\n-        this.port = port;\n-    }\n-\n-    public String getCluster() {\n-        return cluster;\n-    }\n-\n-    public void setCluster(String cluster) {\n-        this.cluster = cluster;\n-    }\n-\n-    public String getNamespace() {\n-        return namespace;\n-    }\n-\n-    public void setNamespace(String namespace) {\n-        this.namespace = namespace;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public Boolean isCheck() {\n-        return check;\n-    }\n-\n-    public void setCheck(Boolean check) {\n-        this.check = check;\n-    }\n-\n-    @Parameter(key = CONFIG_ENABLE_KEY)\n-    public Boolean isHighestPriority() {\n-        return highestPriority;\n-    }\n-\n-    public void setHighestPriority(Boolean highestPriority) {\n-        this.highestPriority = highestPriority;\n-    }\n-\n-    public String getUsername() {\n-        return username;\n-    }\n-\n-    public void setUsername(String username) {\n-        this.username = username;\n-    }\n-\n-    public String getPassword() {\n-        return password;\n-    }\n-\n-    public void setPassword(String password) {\n-        this.password = password;\n-    }\n-\n-    public Long getTimeout() {\n-        return timeout;\n-    }\n-\n-    public void setTimeout(Long timeout) {\n-        this.timeout = timeout;\n-    }\n-\n-    @Parameter(key = CONFIG_CONFIGFILE_KEY)\n-    public String getConfigFile() {\n-        return configFile;\n-    }\n-\n-    public void setConfigFile(String configFile) {\n-        this.configFile = configFile;\n-    }\n-\n-    @Parameter(excluded = true, key = CONFIG_APP_CONFIGFILE_KEY)\n-    public String getAppConfigFile() {\n-        return appConfigFile;\n-    }\n-\n-    public void setAppConfigFile(String appConfigFile) {\n-        this.appConfigFile = appConfigFile;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        if (StringUtils.isEmpty(address)) {\n-            return false;\n-        }\n-\n-        return address.contains(\"://\") || StringUtils.isNotEmpty(protocol);\n-    }\n-\n-    protected void updatePortIfAbsent(Integer value) {\n-        if (value != null && value > 0 && port == null) {\n-            this.port = value;\n-        }\n-    }\n-\n-    protected void updateProtocolIfAbsent(String value) {\n-        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(protocol)) {\n-            this.protocol = value;\n-        }\n-    }\n-\n-    public void updateParameters(Map<String, String> parameters) {\n-        if (CollectionUtils.isEmptyMap(parameters)) {\n-            return;\n-        }\n-        if (this.parameters == null) {\n-            this.parameters = parameters;\n-        } else {\n-            this.parameters.putAll(parameters);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_CONFIGFILE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_ENABLE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.config.Constants.CONFIG_APP_CONFIGFILE_KEY;\r\n+import static org.apache.dubbo.config.Constants.ZOOKEEPER_PROTOCOL;\r\n+\r\n+/**\r\n+ * ConfigCenterConfig\r\n+ */\r\n+public class ConfigCenterConfig extends AbstractConfig {\r\n+    private AtomicBoolean inited = new AtomicBoolean(false);\r\n+\r\n+    private String protocol;\r\n+    private String address;\r\n+    private Integer port;\r\n+\r\n+    /* The config center cluster, it's real meaning may very on different Config Center products. */\r\n+    private String cluster;\r\n+\r\n+    /* The namespace of the config center, generally it's used for multi-tenant,\r\n+    but it's real meaning depends on the actual Config Center you use.\r\n+    */\r\n+\r\n+    private String namespace = CommonConstants.DUBBO;\r\n+    /* The group of the config center, generally it's used to identify an isolated space for a batch of config items,\r\n+    but it's real meaning depends on the actual Config Center you use.\r\n+    */\r\n+    private String group = CommonConstants.DUBBO;\r\n+    private String username;\r\n+    private String password;\r\n+    private Long timeout = 3000L;\r\n+\r\n+    // If the Config Center is given the highest priority, it will override all the other configurations\r\n+    private Boolean highestPriority = true;\r\n+\r\n+    // Decide the behaviour when initial connection try fails, 'true' means interrupt the whole process once fail.\r\n+    private Boolean check = true;\r\n+\r\n+    /* Used to specify the key that your properties file mapping to, most of the time you do not need to change this parameter.\r\n+    Notice that for Apollo, this parameter is meaningless, set the 'namespace' is enough.\r\n+    */\r\n+    private String configFile = CommonConstants.DEFAULT_DUBBO_PROPERTIES;\r\n+\r\n+    /* the .properties file under 'configFile' is global shared while .properties under this one is limited only to this application\r\n+     */\r\n+    private String appConfigFile;\r\n+\r\n+    /* If the Config Center product you use have some special parameters that is not covered by this class, you can add it to here.\r\n+    For example, with XML:\r\n+      <dubbo:config-center>\r\n+           <dubbo:parameter key=\"{your key}\" value=\"{your value}\" />\r\n+      </dubbo:config-center>\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    private Map<String, String> externalConfiguration;\r\n+\r\n+    private Map<String, String> appExternalConfiguration;\r\n+\r\n+    public ConfigCenterConfig() {\r\n+    }\r\n+\r\n+    public URL toUrl() {\r\n+        Map<String, String> map = new HashMap<>();\r\n+        appendParameters(map, this);\r\n+        if (StringUtils.isEmpty(address)) {\r\n+            address = ANYHOST_VALUE;\r\n+        }\r\n+        map.put(PATH_KEY, ConfigCenterConfig.class.getSimpleName());\r\n+        // use 'zookeeper' as the default configcenter.\r\n+        if (StringUtils.isEmpty(map.get(PROTOCOL_KEY))) {\r\n+            map.put(PROTOCOL_KEY, ZOOKEEPER_PROTOCOL);\r\n+        }\r\n+        return UrlUtils.parseURL(address, map);\r\n+    }\r\n+\r\n+    public boolean checkOrUpdateInited() {\r\n+        return inited.compareAndSet(false, true);\r\n+    }\r\n+\r\n+    public Map<String, String> getExternalConfiguration() {\r\n+        return externalConfiguration;\r\n+    }\r\n+\r\n+    public Map<String, String> getAppExternalConfiguration() {\r\n+        return appExternalConfiguration;\r\n+    }\r\n+\r\n+    public void setExternalConfig(Map<String, String> externalConfiguration) {\r\n+        this.externalConfiguration = externalConfiguration;\r\n+    }\r\n+\r\n+    public void setAppExternalConfig(Map<String, String> appExternalConfiguration) {\r\n+        this.appExternalConfiguration = appExternalConfiguration;\r\n+    }\r\n+\r\n+    public String getProtocol() {\r\n+        return protocol;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+        if (address != null) {\r\n+            try {\r\n+                URL url = URL.valueOf(address);\r\n+                setUsername(url.getUsername());\r\n+                setPassword(url.getPassword());\r\n+                updateIdIfAbsent(url.getProtocol());\r\n+                updateProtocolIfAbsent(url.getProtocol());\r\n+                updatePortIfAbsent(url.getPort());\r\n+                updateParameters(url.getParameters());\r\n+            } catch (Exception ignored) {\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public Integer getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    public void setPort(Integer port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    public String getCluster() {\r\n+        return cluster;\r\n+    }\r\n+\r\n+    public void setCluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+    }\r\n+\r\n+    public String getNamespace() {\r\n+        return namespace;\r\n+    }\r\n+\r\n+    public void setNamespace(String namespace) {\r\n+        this.namespace = namespace;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public Boolean isCheck() {\r\n+        return check;\r\n+    }\r\n+\r\n+    public void setCheck(Boolean check) {\r\n+        this.check = check;\r\n+    }\r\n+\r\n+    @Parameter(key = CONFIG_ENABLE_KEY)\r\n+    public Boolean isHighestPriority() {\r\n+        return highestPriority;\r\n+    }\r\n+\r\n+    public void setHighestPriority(Boolean highestPriority) {\r\n+        this.highestPriority = highestPriority;\r\n+    }\r\n+\r\n+    public String getUsername() {\r\n+        return username;\r\n+    }\r\n+\r\n+    public void setUsername(String username) {\r\n+        this.username = username;\r\n+    }\r\n+\r\n+    public String getPassword() {\r\n+        return password;\r\n+    }\r\n+\r\n+    public void setPassword(String password) {\r\n+        this.password = password;\r\n+    }\r\n+\r\n+    public Long getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public void setTimeout(Long timeout) {\r\n+        this.timeout = timeout;\r\n+    }\r\n+\r\n+    @Parameter(key = CONFIG_CONFIGFILE_KEY)\r\n+    public String getConfigFile() {\r\n+        return configFile;\r\n+    }\r\n+\r\n+    public void setConfigFile(String configFile) {\r\n+        this.configFile = configFile;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true, key = CONFIG_APP_CONFIGFILE_KEY)\r\n+    public String getAppConfigFile() {\r\n+        return appConfigFile;\r\n+    }\r\n+\r\n+    public void setAppConfigFile(String appConfigFile) {\r\n+        this.appConfigFile = appConfigFile;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        if (StringUtils.isEmpty(address)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return address.contains(\"://\") || StringUtils.isNotEmpty(protocol);\r\n+    }\r\n+\r\n+    protected void updatePortIfAbsent(Integer value) {\r\n+        if (value != null && value > 0 && port == null) {\r\n+            this.port = value;\r\n+        }\r\n+    }\r\n+\r\n+    protected void updateProtocolIfAbsent(String value) {\r\n+        if (StringUtils.isNotEmpty(value) && StringUtils.isEmpty(protocol)) {\r\n+            this.protocol = value;\r\n+        }\r\n+    }\r\n+\r\n+    public void updateParameters(Map<String, String> parameters) {\r\n+        if (CollectionUtils.isEmptyMap(parameters)) {\r\n+            return;\r\n+        }\r\n+        if (this.parameters == null) {\r\n+            this.parameters = parameters;\r\n+        } else {\r\n+            this.parameters.putAll(parameters);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ConfigInitializer.java", "source2": "org/apache/dubbo/config/ConfigInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Dynamically add some parameters / check config\n- */\n-\n-@SPI\n-public interface ConfigInitializer {\n-\n-    default void initReferConfig(ReferenceConfig referenceConfig) {\n-\n-    }\n-\n-    default void initServiceConfig(ServiceConfig serviceConfig) {\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Dynamically add some parameters / check config\r\n+ */\r\n+\r\n+@SPI\r\n+public interface ConfigInitializer {\r\n+\r\n+    default void initReferConfig(ReferenceConfig referenceConfig) {\r\n+\r\n+    }\r\n+\r\n+    default void initServiceConfig(ServiceConfig serviceConfig) {\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ConfigPostProcessor.java", "source2": "org/apache/dubbo/config/ConfigPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * 2019/12/30\n- */\n-\n-@SPI\n-public interface ConfigPostProcessor {\n-\n-    default void postProcessReferConfig(ReferenceConfig referenceConfig) {\n-\n-    }\n-\n-    default void postProcessServiceConfig(ServiceConfig serviceConfig) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * 2019/12/30\r\n+ */\r\n+\r\n+@SPI\r\n+public interface ConfigPostProcessor {\r\n+\r\n+    default void postProcessReferConfig(ReferenceConfig referenceConfig) {\r\n+\r\n+    }\r\n+\r\n+    default void postProcessServiceConfig(ServiceConfig serviceConfig) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/Constants.java", "source2": "org/apache/dubbo/config/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,120 +1,120 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.config;\n-\n-/**\n- *\n- */\n-public interface Constants {\n-\n-    String STATUS_KEY = \"status\";\n-\n-    String CONTEXTPATH_KEY = \"contextpath\";\n-\n-    String LISTENER_KEY = \"listener\";\n-\n-    String LAYER_KEY = \"layer\";\n-\n-    /**\n-     * General\n-     */\n-    /**\n-     * Application name;\n-     */\n-    String NAME = \"name\";\n-\n-    /**\n-     * Application owner name;\n-     */\n-    String OWNER = \"owner\";\n-\n-    /**\n-     * Running application organization name.\n-     */\n-    String ORGANIZATION = \"organization\";\n-\n-    /**\n-     * Application architecture name.\n-     */\n-    String ARCHITECTURE = \"architecture\";\n-\n-    /**\n-     * Environment name\n-     */\n-    String ENVIRONMENT = \"environment\";\n-\n-    /**\n-     * Test environment key.\n-     */\n-    String TEST_ENVIRONMENT = \"test\";\n-\n-    /**\n-     * Development environment key.\n-     */\n-    String DEVELOPMENT_ENVIRONMENT = \"develop\";\n-\n-    /**\n-     * Production environment key.\n-     */\n-    String PRODUCTION_ENVIRONMENT = \"product\";\n-\n-    String CONFIG_CONFIGFILE_KEY = \"config-file\";\n-    String CONFIG_ENABLE_KEY = \"highest-priority\";\n-    String CONFIG_APP_CONFIGFILE_KEY = \"app-config-file\";\n-\n-    String MULTICAST = \"multicast\";\n-\n-\n-    String DUBBO_IP_TO_REGISTRY = \"DUBBO_IP_TO_REGISTRY\";\n-\n-    String DUBBO_PORT_TO_REGISTRY = \"DUBBO_PORT_TO_REGISTRY\";\n-\n-\n-    String DUBBO_PORT_TO_BIND = \"DUBBO_PORT_TO_BIND\";\n-\n-    String SCOPE_NONE = \"none\";\n-\n-\n-    String ON_INVOKE_METHOD_KEY = \"oninvoke.method\";\n-\n-    String ON_RETURN_METHOD_KEY = \"onreturn.method\";\n-\n-    String ON_THROW_METHOD_KEY = \"onthrow.method\";\n-\n-    String ON_INVOKE_INSTANCE_KEY = \"oninvoke.instance\";\n-\n-    String ON_RETURN_INSTANCE_KEY = \"onreturn.instance\";\n-\n-    String ON_THROW_INSTANCE_KEY = \"onthrow.instance\";\n-\n-\n-    // FIXME: is this still useful?\n-    String SHUTDOWN_TIMEOUT_KEY = \"shutdown.timeout\";\n-\n-\n-    String PROTOCOLS_SUFFIX = \"dubbo.protocols.\";\n-\n-\n-    String REGISTRIES_SUFFIX = \"dubbo.registries.\";\n-\n-    String ZOOKEEPER_PROTOCOL = \"zookeeper\";\n-\n-    String REGISTER_KEY = \"register\";\n-\n-    String IGNORE_CHECK_KEYS = \"ignoreCheckKeys\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.config;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public interface Constants {\r\n+\r\n+    String STATUS_KEY = \"status\";\r\n+\r\n+    String CONTEXTPATH_KEY = \"contextpath\";\r\n+\r\n+    String LISTENER_KEY = \"listener\";\r\n+\r\n+    String LAYER_KEY = \"layer\";\r\n+\r\n+    /**\r\n+     * General\r\n+     */\r\n+    /**\r\n+     * Application name;\r\n+     */\r\n+    String NAME = \"name\";\r\n+\r\n+    /**\r\n+     * Application owner name;\r\n+     */\r\n+    String OWNER = \"owner\";\r\n+\r\n+    /**\r\n+     * Running application organization name.\r\n+     */\r\n+    String ORGANIZATION = \"organization\";\r\n+\r\n+    /**\r\n+     * Application architecture name.\r\n+     */\r\n+    String ARCHITECTURE = \"architecture\";\r\n+\r\n+    /**\r\n+     * Environment name\r\n+     */\r\n+    String ENVIRONMENT = \"environment\";\r\n+\r\n+    /**\r\n+     * Test environment key.\r\n+     */\r\n+    String TEST_ENVIRONMENT = \"test\";\r\n+\r\n+    /**\r\n+     * Development environment key.\r\n+     */\r\n+    String DEVELOPMENT_ENVIRONMENT = \"develop\";\r\n+\r\n+    /**\r\n+     * Production environment key.\r\n+     */\r\n+    String PRODUCTION_ENVIRONMENT = \"product\";\r\n+\r\n+    String CONFIG_CONFIGFILE_KEY = \"config-file\";\r\n+    String CONFIG_ENABLE_KEY = \"highest-priority\";\r\n+    String CONFIG_APP_CONFIGFILE_KEY = \"app-config-file\";\r\n+\r\n+    String MULTICAST = \"multicast\";\r\n+\r\n+\r\n+    String DUBBO_IP_TO_REGISTRY = \"DUBBO_IP_TO_REGISTRY\";\r\n+\r\n+    String DUBBO_PORT_TO_REGISTRY = \"DUBBO_PORT_TO_REGISTRY\";\r\n+\r\n+\r\n+    String DUBBO_PORT_TO_BIND = \"DUBBO_PORT_TO_BIND\";\r\n+\r\n+    String SCOPE_NONE = \"none\";\r\n+\r\n+\r\n+    String ON_INVOKE_METHOD_KEY = \"oninvoke.method\";\r\n+\r\n+    String ON_RETURN_METHOD_KEY = \"onreturn.method\";\r\n+\r\n+    String ON_THROW_METHOD_KEY = \"onthrow.method\";\r\n+\r\n+    String ON_INVOKE_INSTANCE_KEY = \"oninvoke.instance\";\r\n+\r\n+    String ON_RETURN_INSTANCE_KEY = \"onreturn.instance\";\r\n+\r\n+    String ON_THROW_INSTANCE_KEY = \"onthrow.instance\";\r\n+\r\n+\r\n+    // FIXME: is this still useful?\r\n+    String SHUTDOWN_TIMEOUT_KEY = \"shutdown.timeout\";\r\n+\r\n+\r\n+    String PROTOCOLS_SUFFIX = \"dubbo.protocols.\";\r\n+\r\n+\r\n+    String REGISTRIES_SUFFIX = \"dubbo.registries.\";\r\n+\r\n+    String ZOOKEEPER_PROTOCOL = \"zookeeper\";\r\n+\r\n+    String REGISTER_KEY = \"register\";\r\n+\r\n+    String IGNORE_CHECK_KEYS = \"ignoreCheckKeys\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ConsumerConfig.java", "source2": "org/apache/dubbo/config/ConsumerConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,135 +1,135 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-/**\n- * The service consumer default configuration\n- *\n- * @export\n- */\n-public class ConsumerConfig extends AbstractReferenceConfig {\n-\n-    private static final long serialVersionUID = 2827274711143680600L;\n-\n-    /**\n-     * Whether to use the default protocol\n-     */\n-    private Boolean isDefault;\n-\n-    /**\n-     * Networking framework client uses: netty, mina, etc.\n-     */\n-    private String client;\n-\n-    /**\n-     * Consumer thread pool type: cached, fixed, limit, eager\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Consumer threadpool core thread size\n-     */\n-    private Integer corethreads;\n-\n-    /**\n-     * Consumer threadpool thread size\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * Consumer threadpool queue size\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * By default, a TCP long-connection communication is shared between the consumer process and the provider process.\n-     * This property can be set to share multiple TCP long-connection communications. Note that only the dubbo protocol takes effect.\n-     */\n-    private Integer shareconnections;\n-\n-    @Override\n-    public void setTimeout(Integer timeout) {\n-        super.setTimeout(timeout);\n-        String rmiTimeout = System.getProperty(\"sun.rmi.transport.tcp.responseTimeout\");\n-        if (timeout != null && timeout > 0\n-                && (StringUtils.isEmpty(rmiTimeout))) {\n-            System.setProperty(\"sun.rmi.transport.tcp.responseTimeout\", String.valueOf(timeout));\n-        }\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public String getClient() {\n-        return client;\n-    }\n-\n-    public void setClient(String client) {\n-        this.client = client;\n-    }\n-\n-    public String getThreadpool() {\n-        return threadpool;\n-    }\n-\n-    public void setThreadpool(String threadpool) {\n-        this.threadpool = threadpool;\n-    }\n-\n-    public Boolean getDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    public Integer getCorethreads() {\n-        return corethreads;\n-    }\n-\n-    public void setCorethreads(Integer corethreads) {\n-        this.corethreads = corethreads;\n-    }\n-\n-    public Integer getThreads() {\n-        return threads;\n-    }\n-\n-    public void setThreads(Integer threads) {\n-        this.threads = threads;\n-    }\n-\n-    public Integer getQueues() {\n-        return queues;\n-    }\n-\n-    public void setQueues(Integer queues) {\n-        this.queues = queues;\n-    }\n-\n-    public Integer getShareconnections() {\n-        return shareconnections;\n-    }\n-\n-    public void setShareconnections(Integer shareconnections) {\n-        this.shareconnections = shareconnections;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+/**\r\n+ * The service consumer default configuration\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ConsumerConfig extends AbstractReferenceConfig {\r\n+\r\n+    private static final long serialVersionUID = 2827274711143680600L;\r\n+\r\n+    /**\r\n+     * Whether to use the default protocol\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    /**\r\n+     * Networking framework client uses: netty, mina, etc.\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Consumer thread pool type: cached, fixed, limit, eager\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Consumer threadpool core thread size\r\n+     */\r\n+    private Integer corethreads;\r\n+\r\n+    /**\r\n+     * Consumer threadpool thread size\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * Consumer threadpool queue size\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * By default, a TCP long-connection communication is shared between the consumer process and the provider process.\r\n+     * This property can be set to share multiple TCP long-connection communications. Note that only the dubbo protocol takes effect.\r\n+     */\r\n+    private Integer shareconnections;\r\n+\r\n+    @Override\r\n+    public void setTimeout(Integer timeout) {\r\n+        super.setTimeout(timeout);\r\n+        String rmiTimeout = System.getProperty(\"sun.rmi.transport.tcp.responseTimeout\");\r\n+        if (timeout != null && timeout > 0\r\n+                && (StringUtils.isEmpty(rmiTimeout))) {\r\n+            System.setProperty(\"sun.rmi.transport.tcp.responseTimeout\", String.valueOf(timeout));\r\n+        }\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public String getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    public void setClient(String client) {\r\n+        this.client = client;\r\n+    }\r\n+\r\n+    public String getThreadpool() {\r\n+        return threadpool;\r\n+    }\r\n+\r\n+    public void setThreadpool(String threadpool) {\r\n+        this.threadpool = threadpool;\r\n+    }\r\n+\r\n+    public Boolean getDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    public Integer getCorethreads() {\r\n+        return corethreads;\r\n+    }\r\n+\r\n+    public void setCorethreads(Integer corethreads) {\r\n+        this.corethreads = corethreads;\r\n+    }\r\n+\r\n+    public Integer getThreads() {\r\n+        return threads;\r\n+    }\r\n+\r\n+    public void setThreads(Integer threads) {\r\n+        this.threads = threads;\r\n+    }\r\n+\r\n+    public Integer getQueues() {\r\n+        return queues;\r\n+    }\r\n+\r\n+    public void setQueues(Integer queues) {\r\n+        this.queues = queues;\r\n+    }\r\n+\r\n+    public Integer getShareconnections() {\r\n+        return shareconnections;\r\n+    }\r\n+\r\n+    public void setShareconnections(Integer shareconnections) {\r\n+        this.shareconnections = shareconnections;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/DubboShutdownHook.java", "source2": "org/apache/dubbo/config/DubboShutdownHook.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,149 +1,149 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.event.DubboServiceDestroyedEvent;\n-import org.apache.dubbo.config.event.DubboShutdownHookRegisteredEvent;\n-import org.apache.dubbo.config.event.DubboShutdownHookUnregisteredEvent;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.rpc.Protocol;\n-\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-/**\n- * The shutdown hook thread to do the clean up stuff.\n- * This is a singleton in order to ensure there is only one shutdown hook registered.\n- * Because {@link ApplicationShutdownHooks} use {@link java.util.IdentityHashMap}\n- * to store the shutdown hooks.\n- */\n-public class DubboShutdownHook extends Thread {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DubboShutdownHook.class);\n-\n-    private static final DubboShutdownHook DUBBO_SHUTDOWN_HOOK = new DubboShutdownHook(\"DubboShutdownHook\");\n-\n-    private final ShutdownHookCallbacks callbacks = ShutdownHookCallbacks.INSTANCE;\n-\n-    /**\n-     * Has it already been registered or not?\n-     */\n-    private final AtomicBoolean registered = new AtomicBoolean(false);\n-\n-    /**\n-     * Has it already been destroyed or not?\n-     */\n-    private static final AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    private final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\n-\n-    private DubboShutdownHook(String name) {\n-        super(name);\n-    }\n-\n-    public static DubboShutdownHook getDubboShutdownHook() {\n-        return DUBBO_SHUTDOWN_HOOK;\n-    }\n-\n-    @Override\n-    public void run() {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Run shutdown hook now.\");\n-        }\n-\n-        callback();\n-        doDestroy();\n-    }\n-\n-    /**\n-     * For testing purpose\n-     */\n-    void clear() {\n-        callbacks.clear();\n-    }\n-\n-    private void callback() {\n-        callbacks.callback();\n-    }\n-\n-    /**\n-     * Register the ShutdownHook\n-     */\n-    public void register() {\n-        if (registered.compareAndSet(false, true)) {\n-            DubboShutdownHook dubboShutdownHook = getDubboShutdownHook();\n-            Runtime.getRuntime().addShutdownHook(dubboShutdownHook);\n-            dispatch(new DubboShutdownHookRegisteredEvent(dubboShutdownHook));\n-        }\n-    }\n-\n-    /**\n-     * Unregister the ShutdownHook\n-     */\n-    public void unregister() {\n-        if (registered.compareAndSet(true, false)) {\n-            DubboShutdownHook dubboShutdownHook = getDubboShutdownHook();\n-            Runtime.getRuntime().removeShutdownHook(dubboShutdownHook);\n-            dispatch(new DubboShutdownHookUnregisteredEvent(dubboShutdownHook));\n-        }\n-    }\n-\n-    /**\n-     * Destroy all the resources, including registries and protocols.\n-     */\n-    public void doDestroy() {\n-        // dispatch the DubboDestroyedEvent @since 2.7.5\n-        dispatch(new DubboServiceDestroyedEvent(this));\n-    }\n-\n-    private void dispatch(Event event) {\n-        eventDispatcher.dispatch(event);\n-    }\n-\n-    public boolean getRegistered() {\n-        return registered.get();\n-    }\n-\n-    public static void destroyAll() {\n-        if (destroyed.compareAndSet(false, true)) {\n-            AbstractRegistryFactory.destroyAll();\n-            destroyProtocols();\n-        }\n-    }\n-\n-    /**\n-     * Destroy all the protocols.\n-     */\n-    public static void destroyProtocols() {\n-        ExtensionLoader<Protocol> loader = ExtensionLoader.getExtensionLoader(Protocol.class);\n-        for (String protocolName : loader.getLoadedExtensions()) {\n-            try {\n-                Protocol protocol = loader.getLoadedExtension(protocolName);\n-                if (protocol != null) {\n-                    protocol.destroy();\n-                }\n-            } catch (Throwable t) {\n-                logger.warn(t.getMessage(), t);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.event.DubboServiceDestroyedEvent;\r\n+import org.apache.dubbo.config.event.DubboShutdownHookRegisteredEvent;\r\n+import org.apache.dubbo.config.event.DubboShutdownHookUnregisteredEvent;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+/**\r\n+ * The shutdown hook thread to do the clean up stuff.\r\n+ * This is a singleton in order to ensure there is only one shutdown hook registered.\r\n+ * Because {@link ApplicationShutdownHooks} use {@link java.util.IdentityHashMap}\r\n+ * to store the shutdown hooks.\r\n+ */\r\n+public class DubboShutdownHook extends Thread {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DubboShutdownHook.class);\r\n+\r\n+    private static final DubboShutdownHook DUBBO_SHUTDOWN_HOOK = new DubboShutdownHook(\"DubboShutdownHook\");\r\n+\r\n+    private final ShutdownHookCallbacks callbacks = ShutdownHookCallbacks.INSTANCE;\r\n+\r\n+    /**\r\n+     * Has it already been registered or not?\r\n+     */\r\n+    private final AtomicBoolean registered = new AtomicBoolean(false);\r\n+\r\n+    /**\r\n+     * Has it already been destroyed or not?\r\n+     */\r\n+    private static final AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    private final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\r\n+\r\n+    private DubboShutdownHook(String name) {\r\n+        super(name);\r\n+    }\r\n+\r\n+    public static DubboShutdownHook getDubboShutdownHook() {\r\n+        return DUBBO_SHUTDOWN_HOOK;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void run() {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Run shutdown hook now.\");\r\n+        }\r\n+\r\n+        callback();\r\n+        doDestroy();\r\n+    }\r\n+\r\n+    /**\r\n+     * For testing purpose\r\n+     */\r\n+    void clear() {\r\n+        callbacks.clear();\r\n+    }\r\n+\r\n+    private void callback() {\r\n+        callbacks.callback();\r\n+    }\r\n+\r\n+    /**\r\n+     * Register the ShutdownHook\r\n+     */\r\n+    public void register() {\r\n+        if (registered.compareAndSet(false, true)) {\r\n+            DubboShutdownHook dubboShutdownHook = getDubboShutdownHook();\r\n+            Runtime.getRuntime().addShutdownHook(dubboShutdownHook);\r\n+            dispatch(new DubboShutdownHookRegisteredEvent(dubboShutdownHook));\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Unregister the ShutdownHook\r\n+     */\r\n+    public void unregister() {\r\n+        if (registered.compareAndSet(true, false)) {\r\n+            DubboShutdownHook dubboShutdownHook = getDubboShutdownHook();\r\n+            Runtime.getRuntime().removeShutdownHook(dubboShutdownHook);\r\n+            dispatch(new DubboShutdownHookUnregisteredEvent(dubboShutdownHook));\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Destroy all the resources, including registries and protocols.\r\n+     */\r\n+    public void doDestroy() {\r\n+        // dispatch the DubboDestroyedEvent @since 2.7.5\r\n+        dispatch(new DubboServiceDestroyedEvent(this));\r\n+    }\r\n+\r\n+    private void dispatch(Event event) {\r\n+        eventDispatcher.dispatch(event);\r\n+    }\r\n+\r\n+    public boolean getRegistered() {\r\n+        return registered.get();\r\n+    }\r\n+\r\n+    public static void destroyAll() {\r\n+        if (destroyed.compareAndSet(false, true)) {\r\n+            AbstractRegistryFactory.destroyAll();\r\n+            destroyProtocols();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Destroy all the protocols.\r\n+     */\r\n+    public static void destroyProtocols() {\r\n+        ExtensionLoader<Protocol> loader = ExtensionLoader.getExtensionLoader(Protocol.class);\r\n+        for (String protocolName : loader.getLoadedExtensions()) {\r\n+            try {\r\n+                Protocol protocol = loader.getLoadedExtension(protocolName);\r\n+                if (protocol != null) {\r\n+                    protocol.destroy();\r\n+                }\r\n+            } catch (Throwable t) {\r\n+                logger.warn(t.getMessage(), t);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/MetadataReportConfig.java", "source2": "org/apache/dubbo/config/MetadataReportConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,227 +1,227 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROPERTIES_CHAR_SEPARATOR;\n-import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\n-\n-/**\n- * MetadataReportConfig\n- *\n- * @export\n- */\n-public class MetadataReportConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = 55233L;\n-    /**\n-     * the value is : metadata-report\n-     */\n-    private static final String PREFIX_TAG = StringUtils.camelToSplitName(\n-            MetadataReportConfig.class.getSimpleName().substring(0, MetadataReportConfig.class.getSimpleName().length() - 6), PROPERTIES_CHAR_SEPARATOR);\n-\n-    // Register center address\n-    private String address;\n-\n-    // Username to login register center\n-    private String username;\n-\n-    // Password to login register center\n-    private String password;\n-\n-    // Request timeout in milliseconds for register center\n-    private Integer timeout;\n-\n-    /**\n-     * The group the metadata in . It is the same as registry\n-     */\n-    private String group;\n-\n-    // Customized parameters\n-    private Map<String, String> parameters;\n-\n-    private Integer retryTimes;\n-\n-    private Integer retryPeriod;\n-    /**\n-     * By default the metadatastore will store full metadata repeatedly every day .\n-     */\n-    private Boolean cycleReport;\n-\n-    /**\n-     * Sync report, default async\n-     */\n-    private Boolean syncReport;\n-\n-    /**\n-     * cluster\n-     */\n-    private Boolean cluster;\n-\n-    /**\n-     * registry id\n-     */\n-    private String registry;\n-\n-    public MetadataReportConfig() {\n-    }\n-\n-    public MetadataReportConfig(String address) {\n-        setAddress(address);\n-    }\n-\n-    public URL toUrl() throws IllegalArgumentException {\n-        String address = this.getAddress();\n-        if (isEmpty(address)) {\n-            throw new IllegalArgumentException(\"The address of metadata report is invalid.\");\n-        }\n-        Map<String, String> map = new HashMap<String, String>();\n-        URL url = URL.valueOf(address);\n-        // Issue : https://github.com/apache/dubbo/issues/6491\n-        // Append the parameters from address\n-        map.putAll(url.getParameters());\n-        // Append or overrides the properties as parameters\n-        appendParameters(map, this);\n-        // Normalize the parameters\n-        map.putAll(convert(map, null));\n-        // put the protocol of URL as the \"metadata\"\n-        map.put(\"metadata\", url.getProtocol());\n-        return new URL(\"metadata\", url.getUsername(), url.getPassword(), url.getHost(),\n-                url.getPort(), url.getPath(), map);\n-\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    public void setAddress(String address) {\n-        this.address = address;\n-    }\n-\n-    public String getUsername() {\n-        return username;\n-    }\n-\n-    public void setUsername(String username) {\n-        this.username = username;\n-    }\n-\n-    public String getPassword() {\n-        return password;\n-    }\n-\n-    public void setPassword(String password) {\n-        this.password = password;\n-    }\n-\n-    public Integer getTimeout() {\n-        return timeout;\n-    }\n-\n-    public void setTimeout(Integer timeout) {\n-        this.timeout = timeout;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    @Parameter(key = \"retry-times\")\n-    public Integer getRetryTimes() {\n-        return retryTimes;\n-    }\n-\n-    public void setRetryTimes(Integer retryTimes) {\n-        this.retryTimes = retryTimes;\n-    }\n-\n-    @Parameter(key = \"retry-period\")\n-    public Integer getRetryPeriod() {\n-        return retryPeriod;\n-    }\n-\n-    public void setRetryPeriod(Integer retryPeriod) {\n-        this.retryPeriod = retryPeriod;\n-    }\n-\n-    @Parameter(key = \"cycle-report\")\n-    public Boolean getCycleReport() {\n-        return cycleReport;\n-    }\n-\n-    public void setCycleReport(Boolean cycleReport) {\n-        this.cycleReport = cycleReport;\n-    }\n-\n-    @Parameter(key = \"sync-report\")\n-    public Boolean getSyncReport() {\n-        return syncReport;\n-    }\n-\n-    public void setSyncReport(Boolean syncReport) {\n-        this.syncReport = syncReport;\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public String getPrefix() {\n-        return StringUtils.isNotEmpty(prefix) ? prefix : (DUBBO + \".\" + PREFIX_TAG);\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        return StringUtils.isNotEmpty(address);\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public Boolean getCluster() {\n-        return cluster;\n-    }\n-\n-    public void setCluster(Boolean cluster) {\n-        this.cluster = cluster;\n-    }\n-\n-    public String getRegistry() {\n-        return registry;\n-    }\n-\n-    public void setRegistry(String registry) {\n-        this.registry = registry;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROPERTIES_CHAR_SEPARATOR;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\r\n+\r\n+/**\r\n+ * MetadataReportConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class MetadataReportConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = 55233L;\r\n+    /**\r\n+     * the value is : metadata-report\r\n+     */\r\n+    private static final String PREFIX_TAG = StringUtils.camelToSplitName(\r\n+            MetadataReportConfig.class.getSimpleName().substring(0, MetadataReportConfig.class.getSimpleName().length() - 6), PROPERTIES_CHAR_SEPARATOR);\r\n+\r\n+    // Register center address\r\n+    private String address;\r\n+\r\n+    // Username to login register center\r\n+    private String username;\r\n+\r\n+    // Password to login register center\r\n+    private String password;\r\n+\r\n+    // Request timeout in milliseconds for register center\r\n+    private Integer timeout;\r\n+\r\n+    /**\r\n+     * The group the metadata in . It is the same as registry\r\n+     */\r\n+    private String group;\r\n+\r\n+    // Customized parameters\r\n+    private Map<String, String> parameters;\r\n+\r\n+    private Integer retryTimes;\r\n+\r\n+    private Integer retryPeriod;\r\n+    /**\r\n+     * By default the metadatastore will store full metadata repeatedly every day .\r\n+     */\r\n+    private Boolean cycleReport;\r\n+\r\n+    /**\r\n+     * Sync report, default async\r\n+     */\r\n+    private Boolean syncReport;\r\n+\r\n+    /**\r\n+     * cluster\r\n+     */\r\n+    private Boolean cluster;\r\n+\r\n+    /**\r\n+     * registry id\r\n+     */\r\n+    private String registry;\r\n+\r\n+    public MetadataReportConfig() {\r\n+    }\r\n+\r\n+    public MetadataReportConfig(String address) {\r\n+        setAddress(address);\r\n+    }\r\n+\r\n+    public URL toUrl() throws IllegalArgumentException {\r\n+        String address = this.getAddress();\r\n+        if (isEmpty(address)) {\r\n+            throw new IllegalArgumentException(\"The address of metadata report is invalid.\");\r\n+        }\r\n+        Map<String, String> map = new HashMap<String, String>();\r\n+        URL url = URL.valueOf(address);\r\n+        // Issue : https://github.com/apache/dubbo/issues/6491\r\n+        // Append the parameters from address\r\n+        map.putAll(url.getParameters());\r\n+        // Append or overrides the properties as parameters\r\n+        appendParameters(map, this);\r\n+        // Normalize the parameters\r\n+        map.putAll(convert(map, null));\r\n+        // put the protocol of URL as the \"metadata\"\r\n+        map.put(\"metadata\", url.getProtocol());\r\n+        return new URL(\"metadata\", url.getUsername(), url.getPassword(), url.getHost(),\r\n+                url.getPort(), url.getPath(), map);\r\n+\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    public String getUsername() {\r\n+        return username;\r\n+    }\r\n+\r\n+    public void setUsername(String username) {\r\n+        this.username = username;\r\n+    }\r\n+\r\n+    public String getPassword() {\r\n+        return password;\r\n+    }\r\n+\r\n+    public void setPassword(String password) {\r\n+        this.password = password;\r\n+    }\r\n+\r\n+    public Integer getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public void setTimeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    @Parameter(key = \"retry-times\")\r\n+    public Integer getRetryTimes() {\r\n+        return retryTimes;\r\n+    }\r\n+\r\n+    public void setRetryTimes(Integer retryTimes) {\r\n+        this.retryTimes = retryTimes;\r\n+    }\r\n+\r\n+    @Parameter(key = \"retry-period\")\r\n+    public Integer getRetryPeriod() {\r\n+        return retryPeriod;\r\n+    }\r\n+\r\n+    public void setRetryPeriod(Integer retryPeriod) {\r\n+        this.retryPeriod = retryPeriod;\r\n+    }\r\n+\r\n+    @Parameter(key = \"cycle-report\")\r\n+    public Boolean getCycleReport() {\r\n+        return cycleReport;\r\n+    }\r\n+\r\n+    public void setCycleReport(Boolean cycleReport) {\r\n+        this.cycleReport = cycleReport;\r\n+    }\r\n+\r\n+    @Parameter(key = \"sync-report\")\r\n+    public Boolean getSyncReport() {\r\n+        return syncReport;\r\n+    }\r\n+\r\n+    public void setSyncReport(Boolean syncReport) {\r\n+        this.syncReport = syncReport;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public String getPrefix() {\r\n+        return StringUtils.isNotEmpty(prefix) ? prefix : (DUBBO + \".\" + PREFIX_TAG);\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        return StringUtils.isNotEmpty(address);\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public Boolean getCluster() {\r\n+        return cluster;\r\n+    }\r\n+\r\n+    public void setCluster(Boolean cluster) {\r\n+        this.cluster = cluster;\r\n+    }\r\n+\r\n+    public String getRegistry() {\r\n+        return registry;\r\n+    }\r\n+\r\n+    public void setRegistry(String registry) {\r\n+        this.registry = registry;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/MethodConfig.java", "source2": "org/apache/dubbo/config/MethodConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,332 +1,332 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.annotation.Method;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-\n-import static org.apache.dubbo.config.Constants.ON_INVOKE_INSTANCE_KEY;\n-import static org.apache.dubbo.config.Constants.ON_INVOKE_METHOD_KEY;\n-import static org.apache.dubbo.config.Constants.ON_RETURN_INSTANCE_KEY;\n-import static org.apache.dubbo.config.Constants.ON_RETURN_METHOD_KEY;\n-import static org.apache.dubbo.config.Constants.ON_THROW_INSTANCE_KEY;\n-import static org.apache.dubbo.config.Constants.ON_THROW_METHOD_KEY;\n-\n-/**\n- * The method configuration\n- *\n- * @export\n- */\n-public class MethodConfig extends AbstractMethodConfig {\n-\n-    private static final long serialVersionUID = 884908855422675941L;\n-\n-    /**\n-     * The method name\n-     */\n-    private String name;\n-\n-    /**\n-     * Stat\n-     */\n-    private Integer stat;\n-\n-    /**\n-     * Whether to retry\n-     */\n-    private Boolean retry;\n-\n-    /**\n-     * If it's reliable\n-     */\n-    private Boolean reliable;\n-\n-    /**\n-     * Thread limits for method invocations\n-     */\n-    private Integer executes;\n-\n-    /**\n-     * If it's deprecated\n-     */\n-    private Boolean deprecated;\n-\n-    /**\n-     * Whether to enable sticky\n-     */\n-    private Boolean sticky;\n-\n-    /**\n-     * Whether need to return\n-     */\n-    private Boolean isReturn;\n-\n-    /**\n-     * Callback instance when async-call is invoked\n-     */\n-    private Object oninvoke;\n-\n-    /**\n-     * Callback method when async-call is invoked\n-     */\n-    private String oninvokeMethod;\n-\n-    /**\n-     * Callback instance when async-call is returned\n-     */\n-    private Object onreturn;\n-\n-    /**\n-     * Callback method when async-call is returned\n-     */\n-    private String onreturnMethod;\n-\n-    /**\n-     * Callback instance when async-call has exception thrown\n-     */\n-    private Object onthrow;\n-\n-    /**\n-     * Callback method when async-call has exception thrown\n-     */\n-    private String onthrowMethod;\n-\n-    /**\n-     * The method arguments\n-     */\n-    private List<ArgumentConfig> arguments;\n-\n-    /**\n-     * These properties come from MethodConfig's parent Config module, they will neither be collected directly from xml or API nor be delivered to url\n-     */\n-    private String service;\n-    private String serviceId;\n-\n-    @Parameter(excluded = true)\n-    public String getName() {\n-        return name;\n-    }\n-\n-    public MethodConfig() {\n-    }\n-\n-    public MethodConfig(Method method) {\n-        appendAnnotation(Method.class, method);\n-\n-        this.setReturn(method.isReturn());\n-\n-        if(!\"\".equals(method.oninvoke())){\n-            this.setOninvoke(method.oninvoke());\n-        }\n-        if(!\"\".equals(method.onreturn())){\n-            this.setOnreturn(method.onreturn());\n-        }\n-        if(!\"\".equals(method.onthrow())){\n-            this.setOnthrow(method.onthrow());\n-        }\n-\n-        if (method.arguments() != null && method.arguments().length != 0) {\n-            List<ArgumentConfig> argumentConfigs = new ArrayList<ArgumentConfig>(method.arguments().length);\n-            this.setArguments(argumentConfigs);\n-            for (int i = 0; i < method.arguments().length; i++) {\n-                ArgumentConfig argumentConfig = new ArgumentConfig(method.arguments()[i]);\n-                argumentConfigs.add(argumentConfig);\n-            }\n-        }\n-    }\n-\n-    public static List<MethodConfig> constructMethodConfig(Method[] methods) {\n-        if (methods != null && methods.length != 0) {\n-            List<MethodConfig> methodConfigs = new ArrayList<MethodConfig>(methods.length);\n-            for (int i = 0; i < methods.length; i++) {\n-                MethodConfig methodConfig = new MethodConfig(methods[i]);\n-                methodConfigs.add(methodConfig);\n-            }\n-            return methodConfigs;\n-        }\n-        return Collections.emptyList();\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-        // FIXME, add id strategy in ConfigManager\n-//        if (StringUtils.isEmpty(id)) {\n-//            id = name;\n-//        }\n-    }\n-\n-    public Integer getStat() {\n-        return stat;\n-    }\n-\n-    @Deprecated\n-    public void setStat(Integer stat) {\n-        this.stat = stat;\n-    }\n-\n-    @Deprecated\n-    public Boolean isRetry() {\n-        return retry;\n-    }\n-\n-    @Deprecated\n-    public void setRetry(Boolean retry) {\n-        this.retry = retry;\n-    }\n-\n-    @Deprecated\n-    public Boolean isReliable() {\n-        return reliable;\n-    }\n-\n-    @Deprecated\n-    public void setReliable(Boolean reliable) {\n-        this.reliable = reliable;\n-    }\n-\n-    public Integer getExecutes() {\n-        return executes;\n-    }\n-\n-    public void setExecutes(Integer executes) {\n-        this.executes = executes;\n-    }\n-\n-    public Boolean getDeprecated() {\n-        return deprecated;\n-    }\n-\n-    public void setDeprecated(Boolean deprecated) {\n-        this.deprecated = deprecated;\n-    }\n-\n-    public List<ArgumentConfig> getArguments() {\n-        return arguments;\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public void setArguments(List<? extends ArgumentConfig> arguments) {\n-        this.arguments = (List<ArgumentConfig>) arguments;\n-    }\n-\n-    public Boolean getSticky() {\n-        return sticky;\n-    }\n-\n-    public void setSticky(Boolean sticky) {\n-        this.sticky = sticky;\n-    }\n-\n-    @Parameter(key = ON_RETURN_INSTANCE_KEY, excluded = true, attribute = true)\n-    public Object getOnreturn() {\n-        return onreturn;\n-    }\n-\n-    public void setOnreturn(Object onreturn) {\n-        this.onreturn = onreturn;\n-    }\n-\n-    @Parameter(key = ON_RETURN_METHOD_KEY, excluded = true, attribute = true)\n-    public String getOnreturnMethod() {\n-        return onreturnMethod;\n-    }\n-\n-    public void setOnreturnMethod(String onreturnMethod) {\n-        this.onreturnMethod = onreturnMethod;\n-    }\n-\n-    @Parameter(key = ON_THROW_INSTANCE_KEY, excluded = true, attribute = true)\n-    public Object getOnthrow() {\n-        return onthrow;\n-    }\n-\n-    public void setOnthrow(Object onthrow) {\n-        this.onthrow = onthrow;\n-    }\n-\n-    @Parameter(key = ON_THROW_METHOD_KEY, excluded = true, attribute = true)\n-    public String getOnthrowMethod() {\n-        return onthrowMethod;\n-    }\n-\n-    public void setOnthrowMethod(String onthrowMethod) {\n-        this.onthrowMethod = onthrowMethod;\n-    }\n-\n-    @Parameter(key = ON_INVOKE_INSTANCE_KEY, excluded = true, attribute = true)\n-    public Object getOninvoke() {\n-        return oninvoke;\n-    }\n-\n-    public void setOninvoke(Object oninvoke) {\n-        this.oninvoke = oninvoke;\n-    }\n-\n-    @Parameter(key = ON_INVOKE_METHOD_KEY, excluded = true, attribute = true)\n-    public String getOninvokeMethod() {\n-        return oninvokeMethod;\n-    }\n-\n-    public void setOninvokeMethod(String oninvokeMethod) {\n-        this.oninvokeMethod = oninvokeMethod;\n-    }\n-\n-    public Boolean isReturn() {\n-        return isReturn;\n-    }\n-\n-    public void setReturn(Boolean isReturn) {\n-        this.isReturn = isReturn;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getService() {\n-        return service;\n-    }\n-\n-    public void setService(String service) {\n-        this.service = service;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getServiceId() {\n-        return serviceId;\n-    }\n-\n-    public void setServiceId(String serviceId) {\n-        this.serviceId = serviceId;\n-    }\n-\n-    /**\n-     * service and name must not be null.\n-     *\n-     * @return\n-     */\n-    @Override\n-    @Parameter(excluded = true)\n-    public String getPrefix() {\n-        return CommonConstants.DUBBO + \".\" + service\n-                + (StringUtils.isEmpty(serviceId) ? \"\" : (\".\" + serviceId))\n-                + \".\" + getName();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.annotation.Method;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.config.Constants.ON_INVOKE_INSTANCE_KEY;\r\n+import static org.apache.dubbo.config.Constants.ON_INVOKE_METHOD_KEY;\r\n+import static org.apache.dubbo.config.Constants.ON_RETURN_INSTANCE_KEY;\r\n+import static org.apache.dubbo.config.Constants.ON_RETURN_METHOD_KEY;\r\n+import static org.apache.dubbo.config.Constants.ON_THROW_INSTANCE_KEY;\r\n+import static org.apache.dubbo.config.Constants.ON_THROW_METHOD_KEY;\r\n+\r\n+/**\r\n+ * The method configuration\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class MethodConfig extends AbstractMethodConfig {\r\n+\r\n+    private static final long serialVersionUID = 884908855422675941L;\r\n+\r\n+    /**\r\n+     * The method name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Stat\r\n+     */\r\n+    private Integer stat;\r\n+\r\n+    /**\r\n+     * Whether to retry\r\n+     */\r\n+    private Boolean retry;\r\n+\r\n+    /**\r\n+     * If it's reliable\r\n+     */\r\n+    private Boolean reliable;\r\n+\r\n+    /**\r\n+     * Thread limits for method invocations\r\n+     */\r\n+    private Integer executes;\r\n+\r\n+    /**\r\n+     * If it's deprecated\r\n+     */\r\n+    private Boolean deprecated;\r\n+\r\n+    /**\r\n+     * Whether to enable sticky\r\n+     */\r\n+    private Boolean sticky;\r\n+\r\n+    /**\r\n+     * Whether need to return\r\n+     */\r\n+    private Boolean isReturn;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call is invoked\r\n+     */\r\n+    private Object oninvoke;\r\n+\r\n+    /**\r\n+     * Callback method when async-call is invoked\r\n+     */\r\n+    private String oninvokeMethod;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call is returned\r\n+     */\r\n+    private Object onreturn;\r\n+\r\n+    /**\r\n+     * Callback method when async-call is returned\r\n+     */\r\n+    private String onreturnMethod;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call has exception thrown\r\n+     */\r\n+    private Object onthrow;\r\n+\r\n+    /**\r\n+     * Callback method when async-call has exception thrown\r\n+     */\r\n+    private String onthrowMethod;\r\n+\r\n+    /**\r\n+     * The method arguments\r\n+     */\r\n+    private List<ArgumentConfig> arguments;\r\n+\r\n+    /**\r\n+     * These properties come from MethodConfig's parent Config module, they will neither be collected directly from xml or API nor be delivered to url\r\n+     */\r\n+    private String service;\r\n+    private String serviceId;\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getName() {\r\n+        return name;\r\n+    }\r\n+\r\n+    public MethodConfig() {\r\n+    }\r\n+\r\n+    public MethodConfig(Method method) {\r\n+        appendAnnotation(Method.class, method);\r\n+\r\n+        this.setReturn(method.isReturn());\r\n+\r\n+        if(!\"\".equals(method.oninvoke())){\r\n+            this.setOninvoke(method.oninvoke());\r\n+        }\r\n+        if(!\"\".equals(method.onreturn())){\r\n+            this.setOnreturn(method.onreturn());\r\n+        }\r\n+        if(!\"\".equals(method.onthrow())){\r\n+            this.setOnthrow(method.onthrow());\r\n+        }\r\n+\r\n+        if (method.arguments() != null && method.arguments().length != 0) {\r\n+            List<ArgumentConfig> argumentConfigs = new ArrayList<ArgumentConfig>(method.arguments().length);\r\n+            this.setArguments(argumentConfigs);\r\n+            for (int i = 0; i < method.arguments().length; i++) {\r\n+                ArgumentConfig argumentConfig = new ArgumentConfig(method.arguments()[i]);\r\n+                argumentConfigs.add(argumentConfig);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static List<MethodConfig> constructMethodConfig(Method[] methods) {\r\n+        if (methods != null && methods.length != 0) {\r\n+            List<MethodConfig> methodConfigs = new ArrayList<MethodConfig>(methods.length);\r\n+            for (int i = 0; i < methods.length; i++) {\r\n+                MethodConfig methodConfig = new MethodConfig(methods[i]);\r\n+                methodConfigs.add(methodConfig);\r\n+            }\r\n+            return methodConfigs;\r\n+        }\r\n+        return Collections.emptyList();\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+        // FIXME, add id strategy in ConfigManager\r\n+//        if (StringUtils.isEmpty(id)) {\r\n+//            id = name;\r\n+//        }\r\n+    }\r\n+\r\n+    public Integer getStat() {\r\n+        return stat;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setStat(Integer stat) {\r\n+        this.stat = stat;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public Boolean isRetry() {\r\n+        return retry;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setRetry(Boolean retry) {\r\n+        this.retry = retry;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public Boolean isReliable() {\r\n+        return reliable;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setReliable(Boolean reliable) {\r\n+        this.reliable = reliable;\r\n+    }\r\n+\r\n+    public Integer getExecutes() {\r\n+        return executes;\r\n+    }\r\n+\r\n+    public void setExecutes(Integer executes) {\r\n+        this.executes = executes;\r\n+    }\r\n+\r\n+    public Boolean getDeprecated() {\r\n+        return deprecated;\r\n+    }\r\n+\r\n+    public void setDeprecated(Boolean deprecated) {\r\n+        this.deprecated = deprecated;\r\n+    }\r\n+\r\n+    public List<ArgumentConfig> getArguments() {\r\n+        return arguments;\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void setArguments(List<? extends ArgumentConfig> arguments) {\r\n+        this.arguments = (List<ArgumentConfig>) arguments;\r\n+    }\r\n+\r\n+    public Boolean getSticky() {\r\n+        return sticky;\r\n+    }\r\n+\r\n+    public void setSticky(Boolean sticky) {\r\n+        this.sticky = sticky;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_RETURN_INSTANCE_KEY, excluded = true, attribute = true)\r\n+    public Object getOnreturn() {\r\n+        return onreturn;\r\n+    }\r\n+\r\n+    public void setOnreturn(Object onreturn) {\r\n+        this.onreturn = onreturn;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_RETURN_METHOD_KEY, excluded = true, attribute = true)\r\n+    public String getOnreturnMethod() {\r\n+        return onreturnMethod;\r\n+    }\r\n+\r\n+    public void setOnreturnMethod(String onreturnMethod) {\r\n+        this.onreturnMethod = onreturnMethod;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_THROW_INSTANCE_KEY, excluded = true, attribute = true)\r\n+    public Object getOnthrow() {\r\n+        return onthrow;\r\n+    }\r\n+\r\n+    public void setOnthrow(Object onthrow) {\r\n+        this.onthrow = onthrow;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_THROW_METHOD_KEY, excluded = true, attribute = true)\r\n+    public String getOnthrowMethod() {\r\n+        return onthrowMethod;\r\n+    }\r\n+\r\n+    public void setOnthrowMethod(String onthrowMethod) {\r\n+        this.onthrowMethod = onthrowMethod;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_INVOKE_INSTANCE_KEY, excluded = true, attribute = true)\r\n+    public Object getOninvoke() {\r\n+        return oninvoke;\r\n+    }\r\n+\r\n+    public void setOninvoke(Object oninvoke) {\r\n+        this.oninvoke = oninvoke;\r\n+    }\r\n+\r\n+    @Parameter(key = ON_INVOKE_METHOD_KEY, excluded = true, attribute = true)\r\n+    public String getOninvokeMethod() {\r\n+        return oninvokeMethod;\r\n+    }\r\n+\r\n+    public void setOninvokeMethod(String oninvokeMethod) {\r\n+        this.oninvokeMethod = oninvokeMethod;\r\n+    }\r\n+\r\n+    public Boolean isReturn() {\r\n+        return isReturn;\r\n+    }\r\n+\r\n+    public void setReturn(Boolean isReturn) {\r\n+        this.isReturn = isReturn;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getService() {\r\n+        return service;\r\n+    }\r\n+\r\n+    public void setService(String service) {\r\n+        this.service = service;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getServiceId() {\r\n+        return serviceId;\r\n+    }\r\n+\r\n+    public void setServiceId(String serviceId) {\r\n+        this.serviceId = serviceId;\r\n+    }\r\n+\r\n+    /**\r\n+     * service and name must not be null.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public String getPrefix() {\r\n+        return CommonConstants.DUBBO + \".\" + service\r\n+                + (StringUtils.isEmpty(serviceId) ? \"\" : (\".\" + serviceId))\r\n+                + \".\" + getName();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/MetricsConfig.java", "source2": "org/apache/dubbo/config/MetricsConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT;\n-import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL;\n-\n-public class MetricsConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = -9089919311611546383L;\n-\n-    private String port;\n-    private String protocol;\n-\n-    public MetricsConfig() {\n-    }\n-\n-    @Parameter(key = METRICS_PORT)\n-    public String getPort() {\n-        return port;\n-    }\n-\n-    public void setPort(String port) {\n-        this.port = port;\n-    }\n-\n-    @Parameter(key = METRICS_PROTOCOL)\n-    public String getProtocol() {\n-        return protocol;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL;\r\n+\r\n+public class MetricsConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = -9089919311611546383L;\r\n+\r\n+    private String port;\r\n+    private String protocol;\r\n+\r\n+    public MetricsConfig() {\r\n+    }\r\n+\r\n+    @Parameter(key = METRICS_PORT)\r\n+    public String getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    public void setPort(String port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    @Parameter(key = METRICS_PROTOCOL)\r\n+    public String getProtocol() {\r\n+        return protocol;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ModuleConfig.java", "source2": "org/apache/dubbo/config/ModuleConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,153 +1,153 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * The module info\n- *\n- * @export\n- */\n-public class ModuleConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = 5508512956753757169L;\n-\n-    /**\n-     * Module name\n-     */\n-    private String name;\n-\n-    /**\n-     * Module version\n-     */\n-    private String version;\n-\n-    /**\n-     * Module owner\n-     */\n-    private String owner;\n-\n-    /**\n-     * Module's organization\n-     */\n-    private String organization;\n-\n-    /**\n-     * Registry centers\n-     */\n-    private List<RegistryConfig> registries;\n-\n-    /**\n-     * Monitor center\n-     */\n-    private MonitorConfig monitor;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    public ModuleConfig() {\n-    }\n-\n-    public ModuleConfig(String name) {\n-        setName(name);\n-    }\n-\n-    @Parameter(key = \"module\")\n-    public String getName() {\n-        return name;\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-        if (StringUtils.isEmpty(id)) {\n-            id = name;\n-        }\n-    }\n-\n-    @Parameter(key = \"module.version\")\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getOwner() {\n-        return owner;\n-    }\n-\n-    public void setOwner(String owner) {\n-        this.owner = owner;\n-    }\n-\n-    public String getOrganization() {\n-        return organization;\n-    }\n-\n-    public void setOrganization(String organization) {\n-        this.organization = organization;\n-    }\n-\n-    public RegistryConfig getRegistry() {\n-        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\n-    }\n-\n-    public void setRegistry(RegistryConfig registry) {\n-        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\n-        registries.add(registry);\n-        this.registries = registries;\n-    }\n-\n-    public List<RegistryConfig> getRegistries() {\n-        return registries;\n-    }\n-\n-    @SuppressWarnings({\"unchecked\"})\n-    public void setRegistries(List<? extends RegistryConfig> registries) {\n-        this.registries = (List<RegistryConfig>) registries;\n-    }\n-\n-    public MonitorConfig getMonitor() {\n-        return monitor;\n-    }\n-\n-    public void setMonitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-    }\n-\n-    public void setMonitor(String monitor) {\n-        this.monitor = new MonitorConfig(monitor);\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The module info\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ModuleConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = 5508512956753757169L;\r\n+\r\n+    /**\r\n+     * Module name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Module version\r\n+     */\r\n+    private String version;\r\n+\r\n+    /**\r\n+     * Module owner\r\n+     */\r\n+    private String owner;\r\n+\r\n+    /**\r\n+     * Module's organization\r\n+     */\r\n+    private String organization;\r\n+\r\n+    /**\r\n+     * Registry centers\r\n+     */\r\n+    private List<RegistryConfig> registries;\r\n+\r\n+    /**\r\n+     * Monitor center\r\n+     */\r\n+    private MonitorConfig monitor;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public ModuleConfig() {\r\n+    }\r\n+\r\n+    public ModuleConfig(String name) {\r\n+        setName(name);\r\n+    }\r\n+\r\n+    @Parameter(key = \"module\")\r\n+    public String getName() {\r\n+        return name;\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+        if (StringUtils.isEmpty(id)) {\r\n+            id = name;\r\n+        }\r\n+    }\r\n+\r\n+    @Parameter(key = \"module.version\")\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getOwner() {\r\n+        return owner;\r\n+    }\r\n+\r\n+    public void setOwner(String owner) {\r\n+        this.owner = owner;\r\n+    }\r\n+\r\n+    public String getOrganization() {\r\n+        return organization;\r\n+    }\r\n+\r\n+    public void setOrganization(String organization) {\r\n+        this.organization = organization;\r\n+    }\r\n+\r\n+    public RegistryConfig getRegistry() {\r\n+        return CollectionUtils.isEmpty(registries) ? null : registries.get(0);\r\n+    }\r\n+\r\n+    public void setRegistry(RegistryConfig registry) {\r\n+        List<RegistryConfig> registries = new ArrayList<RegistryConfig>(1);\r\n+        registries.add(registry);\r\n+        this.registries = registries;\r\n+    }\r\n+\r\n+    public List<RegistryConfig> getRegistries() {\r\n+        return registries;\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\"})\r\n+    public void setRegistries(List<? extends RegistryConfig> registries) {\r\n+        this.registries = (List<RegistryConfig>) registries;\r\n+    }\r\n+\r\n+    public MonitorConfig getMonitor() {\r\n+        return monitor;\r\n+    }\r\n+\r\n+    public void setMonitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+    }\r\n+\r\n+    public void setMonitor(String monitor) {\r\n+        this.monitor = new MonitorConfig(monitor);\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/MonitorConfig.java", "source2": "org/apache/dubbo/config/MonitorConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,160 +1,160 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.constants.RegistryConstants;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.Map;\n-\n-/**\n- * MonitorConfig\n- *\n- * @export\n- */\n-public class MonitorConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = -1184681514659198203L;\n-\n-    /**\n-     * The protocol of the monitor, if the value is registry, it will search the monitor address from the registry center,\n-     * otherwise, it will directly connect to the monitor center\n-     */\n-    private String protocol;\n-\n-    /**\n-     * The monitor address\n-     */\n-    private String address;\n-\n-    /**\n-     * The monitor user name\n-     */\n-    private String username;\n-\n-    /**\n-     * The password\n-     */\n-    private String password;\n-\n-    private String group;\n-\n-    private String version;\n-\n-    private String interval;\n-\n-    /**\n-     * customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    public MonitorConfig() {\n-    }\n-\n-    public MonitorConfig(String address) {\n-        this.address = address;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    public void setAddress(String address) {\n-        this.address = address;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getProtocol() {\n-        return protocol;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getUsername() {\n-        return username;\n-    }\n-\n-    public void setUsername(String username) {\n-        this.username = username;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getPassword() {\n-        return password;\n-    }\n-\n-    public void setPassword(String password) {\n-        this.password = password;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    public String getInterval() {\n-        return interval;\n-    }\n-\n-    public void setInterval(String interval) {\n-        this.interval = interval;\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        return StringUtils.isNotEmpty(address) || RegistryConstants.REGISTRY_PROTOCOL.equals(protocol);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.constants.RegistryConstants;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * MonitorConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class MonitorConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = -1184681514659198203L;\r\n+\r\n+    /**\r\n+     * The protocol of the monitor, if the value is registry, it will search the monitor address from the registry center,\r\n+     * otherwise, it will directly connect to the monitor center\r\n+     */\r\n+    private String protocol;\r\n+\r\n+    /**\r\n+     * The monitor address\r\n+     */\r\n+    private String address;\r\n+\r\n+    /**\r\n+     * The monitor user name\r\n+     */\r\n+    private String username;\r\n+\r\n+    /**\r\n+     * The password\r\n+     */\r\n+    private String password;\r\n+\r\n+    private String group;\r\n+\r\n+    private String version;\r\n+\r\n+    private String interval;\r\n+\r\n+    /**\r\n+     * customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public MonitorConfig() {\r\n+    }\r\n+\r\n+    public MonitorConfig(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getProtocol() {\r\n+        return protocol;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getUsername() {\r\n+        return username;\r\n+    }\r\n+\r\n+    public void setUsername(String username) {\r\n+        this.username = username;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getPassword() {\r\n+        return password;\r\n+    }\r\n+\r\n+    public void setPassword(String password) {\r\n+        this.password = password;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    public String getInterval() {\r\n+        return interval;\r\n+    }\r\n+\r\n+    public void setInterval(String interval) {\r\n+        this.interval = interval;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        return StringUtils.isNotEmpty(address) || RegistryConstants.REGISTRY_PROTOCOL.equals(protocol);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ProtocolConfig.java", "source2": "org/apache/dubbo/config/ProtocolConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,598 +1,598 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\n-import static org.apache.dubbo.config.Constants.PROTOCOLS_SUFFIX;\n-\n-/**\n- * ProtocolConfig\n- *\n- * @export\n- */\n-public class ProtocolConfig extends AbstractConfig {\n-\n-    private static final long serialVersionUID = 6913423882496634749L;\n-\n-    /**\n-     * Protocol name\n-     */\n-    private String name;\n-\n-    /**\n-     * Service ip address (when there are multiple network cards available)\n-     */\n-    private String host;\n-\n-    /**\n-     * Service port\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Context path\n-     */\n-    private String contextpath;\n-\n-    /**\n-     * Thread pool\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Thread pool name\n-     */\n-    private String threadname;\n-\n-    /**\n-     * Thread pool core thread size\n-     */\n-    private Integer corethreads;\n-\n-    /**\n-     * Thread pool size (fixed size)\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * IO thread pool size (fixed size)\n-     */\n-    private Integer iothreads;\n-\n-    /**\n-     * Thread pool keepAliveTime, default unit TimeUnit.MILLISECONDS\n-     */\n-    private Integer alive;\n-\n-    /**\n-     * Thread pool's queue length\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * Max acceptable connections\n-     */\n-    private Integer accepts;\n-\n-    /**\n-     * Protocol codec\n-     */\n-    private String codec;\n-\n-    /**\n-     * Serialization\n-     */\n-    private String serialization;\n-\n-    /**\n-     * Charset\n-     */\n-    private String charset;\n-\n-    /**\n-     * Payload max length\n-     */\n-    private Integer payload;\n-\n-    /**\n-     * Buffer size\n-     */\n-    private Integer buffer;\n-\n-    /**\n-     * Heartbeat interval\n-     */\n-    private Integer heartbeat;\n-\n-    /**\n-     * Access log\n-     */\n-    private String accesslog;\n-\n-    /**\n-     * Transporter\n-     */\n-    private String transporter;\n-\n-    /**\n-     * How information is exchanged\n-     */\n-    private String exchanger;\n-\n-    /**\n-     * Thread dispatch mode\n-     */\n-    private String dispatcher;\n-\n-    /**\n-     * Networker\n-     */\n-    private String networker;\n-\n-    /**\n-     * Sever impl\n-     */\n-    private String server;\n-\n-    /**\n-     * Client impl\n-     */\n-    private String client;\n-\n-    /**\n-     * Supported telnet commands, separated with comma.\n-     */\n-    private String telnet;\n-\n-    /**\n-     * Command line prompt\n-     */\n-    private String prompt;\n-\n-    /**\n-     * Status check\n-     */\n-    private String status;\n-\n-    /**\n-     * Whether to register\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * whether it is a persistent connection\n-     */\n-    //TODO add this to provider config\n-    private Boolean keepAlive;\n-\n-    // TODO add this to provider config\n-    private String optimizer;\n-\n-    /**\n-     * The extension\n-     */\n-    private String extension;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    private Boolean sslEnabled;\n-\n-    public ProtocolConfig() {\n-    }\n-\n-    public ProtocolConfig(String name) {\n-        setName(name);\n-    }\n-\n-    public ProtocolConfig(String name, int port) {\n-        setName(name);\n-        setPort(port);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getName() {\n-        return name;\n-    }\n-\n-    public final void setName(String name) {\n-        this.name = name;\n-        this.updateIdIfAbsent(name);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Integer getPort() {\n-        return port;\n-    }\n-\n-    public final void setPort(Integer port) {\n-        this.port = port;\n-    }\n-\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public String getPath() {\n-        return getContextpath();\n-    }\n-\n-    @Deprecated\n-    public void setPath(String path) {\n-        setContextpath(path);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getContextpath() {\n-        return contextpath;\n-    }\n-\n-    public void setContextpath(String contextpath) {\n-        this.contextpath = contextpath;\n-    }\n-\n-    public String getThreadpool() {\n-        return threadpool;\n-    }\n-\n-    public void setThreadpool(String threadpool) {\n-        this.threadpool = threadpool;\n-    }\n-\n-    public String getThreadname() {\n-        return threadname;\n-    }\n-\n-    public void setThreadname(String threadname) {\n-        this.threadname = threadname;\n-    }\n-\n-    public Integer getCorethreads() {\n-        return corethreads;\n-    }\n-\n-    public void setCorethreads(Integer corethreads) {\n-        this.corethreads = corethreads;\n-    }\n-\n-    public Integer getThreads() {\n-        return threads;\n-    }\n-\n-    public void setThreads(Integer threads) {\n-        this.threads = threads;\n-    }\n-\n-    public Integer getIothreads() {\n-        return iothreads;\n-    }\n-\n-    public void setIothreads(Integer iothreads) {\n-        this.iothreads = iothreads;\n-    }\n-\n-    public Integer getAlive() {\n-        return alive;\n-    }\n-\n-    public void setAlive(Integer alive) {\n-        this.alive = alive;\n-    }\n-\n-    public Integer getQueues() {\n-        return queues;\n-    }\n-\n-    public void setQueues(Integer queues) {\n-        this.queues = queues;\n-    }\n-\n-    public Integer getAccepts() {\n-        return accepts;\n-    }\n-\n-    public void setAccepts(Integer accepts) {\n-        this.accepts = accepts;\n-    }\n-\n-    public String getCodec() {\n-        return codec;\n-    }\n-\n-    public void setCodec(String codec) {\n-        this.codec = codec;\n-    }\n-\n-    public String getSerialization() {\n-        return serialization;\n-    }\n-\n-    public void setSerialization(String serialization) {\n-        this.serialization = serialization;\n-    }\n-\n-    public String getCharset() {\n-        return charset;\n-    }\n-\n-    public void setCharset(String charset) {\n-        this.charset = charset;\n-    }\n-\n-    public Integer getPayload() {\n-        return payload;\n-    }\n-\n-    public void setPayload(Integer payload) {\n-        this.payload = payload;\n-    }\n-\n-    public Integer getBuffer() {\n-        return buffer;\n-    }\n-\n-    public void setBuffer(Integer buffer) {\n-        this.buffer = buffer;\n-    }\n-\n-    public Integer getHeartbeat() {\n-        return heartbeat;\n-    }\n-\n-    public void setHeartbeat(Integer heartbeat) {\n-        this.heartbeat = heartbeat;\n-    }\n-\n-    public String getServer() {\n-        return server;\n-    }\n-\n-    public void setServer(String server) {\n-        this.server = server;\n-    }\n-\n-    public String getClient() {\n-        return client;\n-    }\n-\n-    public void setClient(String client) {\n-        this.client = client;\n-    }\n-\n-    public String getAccesslog() {\n-        return accesslog;\n-    }\n-\n-    public void setAccesslog(String accesslog) {\n-        this.accesslog = accesslog;\n-    }\n-\n-    public String getTelnet() {\n-        return telnet;\n-    }\n-\n-    public void setTelnet(String telnet) {\n-        this.telnet = telnet;\n-    }\n-\n-    @Parameter(escaped = true)\n-    public String getPrompt() {\n-        return prompt;\n-    }\n-\n-    public void setPrompt(String prompt) {\n-        this.prompt = prompt;\n-    }\n-\n-    public String getStatus() {\n-        return status;\n-    }\n-\n-    public void setStatus(String status) {\n-        this.status = status;\n-    }\n-\n-    public Boolean isRegister() {\n-        return register;\n-    }\n-\n-    public void setRegister(Boolean register) {\n-        this.register = register;\n-    }\n-\n-    public String getTransporter() {\n-        return transporter;\n-    }\n-\n-    public void setTransporter(String transporter) {\n-        this.transporter = transporter;\n-    }\n-\n-    public String getExchanger() {\n-        return exchanger;\n-    }\n-\n-    public void setExchanger(String exchanger) {\n-        this.exchanger = exchanger;\n-    }\n-\n-    /**\n-     * typo, switch to use {@link #getDispatcher()}\n-     *\n-     * @deprecated {@link #getDispatcher()}\n-     */\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public String getDispather() {\n-        return getDispatcher();\n-    }\n-\n-    /**\n-     * typo, switch to use {@link #getDispatcher()}\n-     *\n-     * @deprecated {@link #setDispatcher(String)}\n-     */\n-    @Deprecated\n-    public void setDispather(String dispather) {\n-        setDispatcher(dispather);\n-    }\n-\n-    public String getDispatcher() {\n-        return dispatcher;\n-    }\n-\n-    public void setDispatcher(String dispatcher) {\n-        this.dispatcher = dispatcher;\n-    }\n-\n-    public String getNetworker() {\n-        return networker;\n-    }\n-\n-    public void setNetworker(String networker) {\n-        this.networker = networker;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    @Parameter(key = SSL_ENABLED_KEY)\n-    public Boolean getSslEnabled() {\n-        return sslEnabled;\n-    }\n-\n-    public void setSslEnabled(Boolean sslEnabled) {\n-        this.sslEnabled = sslEnabled;\n-    }\n-\n-    public Boolean getKeepAlive() {\n-        return keepAlive;\n-    }\n-\n-    public void setKeepAlive(Boolean keepAlive) {\n-        this.keepAlive = keepAlive;\n-    }\n-\n-    public String getOptimizer() {\n-        return optimizer;\n-    }\n-\n-    public void setOptimizer(String optimizer) {\n-        this.optimizer = optimizer;\n-    }\n-\n-    public String getExtension() {\n-        return extension;\n-    }\n-\n-    public void setExtension(String extension) {\n-        this.extension = extension;\n-    }\n-\n-    @Override\n-    public void refresh() {\n-        if (StringUtils.isEmpty(this.getName())) {\n-            this.setName(DUBBO_VERSION_KEY);\n-        }\n-        super.refresh();\n-        if (StringUtils.isNotEmpty(this.getId())) {\n-            this.setPrefix(PROTOCOLS_SUFFIX);\n-            super.refresh();\n-        }\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        return StringUtils.isNotEmpty(name);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        final StringBuilder sb = new StringBuilder(\"ProtocolConfig{\");\n-        sb.append(\"name='\").append(name).append('\\'');\n-        sb.append(\", host='\").append(host).append('\\'');\n-        sb.append(\", port=\").append(port);\n-        sb.append(\", contextpath='\").append(contextpath).append('\\'');\n-        sb.append(\", threadpool='\").append(threadpool).append('\\'');\n-        sb.append(\", threadname='\").append(threadname).append('\\'');\n-        sb.append(\", corethreads=\").append(corethreads);\n-        sb.append(\", threads=\").append(threads);\n-        sb.append(\", iothreads=\").append(iothreads);\n-        sb.append(\", alive=\").append(alive);\n-        sb.append(\", queues=\").append(queues);\n-        sb.append(\", accepts=\").append(accepts);\n-        sb.append(\", codec='\").append(codec).append('\\'');\n-        sb.append(\", serialization='\").append(serialization).append('\\'');\n-        sb.append(\", charset='\").append(charset).append('\\'');\n-        sb.append(\", payload=\").append(payload);\n-        sb.append(\", buffer=\").append(buffer);\n-        sb.append(\", heartbeat=\").append(heartbeat);\n-        sb.append(\", accesslog='\").append(accesslog).append('\\'');\n-        sb.append(\", transporter='\").append(transporter).append('\\'');\n-        sb.append(\", exchanger='\").append(exchanger).append('\\'');\n-        sb.append(\", dispatcher='\").append(dispatcher).append('\\'');\n-        sb.append(\", networker='\").append(networker).append('\\'');\n-        sb.append(\", server='\").append(server).append('\\'');\n-        sb.append(\", client='\").append(client).append('\\'');\n-        sb.append(\", telnet='\").append(telnet).append('\\'');\n-        sb.append(\", prompt='\").append(prompt).append('\\'');\n-        sb.append(\", status='\").append(status).append('\\'');\n-        sb.append(\", register=\").append(register);\n-        sb.append(\", keepAlive=\").append(keepAlive);\n-        sb.append(\", optimizer='\").append(optimizer).append('\\'');\n-        sb.append(\", extension='\").append(extension).append('\\'');\n-        sb.append(\", parameters=\").append(parameters);\n-        sb.append(\", isDefault=\").append(isDefault);\n-        sb.append(\", sslEnabled=\").append(sslEnabled);\n-        sb.append('}');\n-        return sb.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\r\n+import static org.apache.dubbo.config.Constants.PROTOCOLS_SUFFIX;\r\n+\r\n+/**\r\n+ * ProtocolConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ProtocolConfig extends AbstractConfig {\r\n+\r\n+    private static final long serialVersionUID = 6913423882496634749L;\r\n+\r\n+    /**\r\n+     * Protocol name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Service ip address (when there are multiple network cards available)\r\n+     */\r\n+    private String host;\r\n+\r\n+    /**\r\n+     * Service port\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Context path\r\n+     */\r\n+    private String contextpath;\r\n+\r\n+    /**\r\n+     * Thread pool\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Thread pool name\r\n+     */\r\n+    private String threadname;\r\n+\r\n+    /**\r\n+     * Thread pool core thread size\r\n+     */\r\n+    private Integer corethreads;\r\n+\r\n+    /**\r\n+     * Thread pool size (fixed size)\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * IO thread pool size (fixed size)\r\n+     */\r\n+    private Integer iothreads;\r\n+\r\n+    /**\r\n+     * Thread pool keepAliveTime, default unit TimeUnit.MILLISECONDS\r\n+     */\r\n+    private Integer alive;\r\n+\r\n+    /**\r\n+     * Thread pool's queue length\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * Max acceptable connections\r\n+     */\r\n+    private Integer accepts;\r\n+\r\n+    /**\r\n+     * Protocol codec\r\n+     */\r\n+    private String codec;\r\n+\r\n+    /**\r\n+     * Serialization\r\n+     */\r\n+    private String serialization;\r\n+\r\n+    /**\r\n+     * Charset\r\n+     */\r\n+    private String charset;\r\n+\r\n+    /**\r\n+     * Payload max length\r\n+     */\r\n+    private Integer payload;\r\n+\r\n+    /**\r\n+     * Buffer size\r\n+     */\r\n+    private Integer buffer;\r\n+\r\n+    /**\r\n+     * Heartbeat interval\r\n+     */\r\n+    private Integer heartbeat;\r\n+\r\n+    /**\r\n+     * Access log\r\n+     */\r\n+    private String accesslog;\r\n+\r\n+    /**\r\n+     * Transporter\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    /**\r\n+     * How information is exchanged\r\n+     */\r\n+    private String exchanger;\r\n+\r\n+    /**\r\n+     * Thread dispatch mode\r\n+     */\r\n+    private String dispatcher;\r\n+\r\n+    /**\r\n+     * Networker\r\n+     */\r\n+    private String networker;\r\n+\r\n+    /**\r\n+     * Sever impl\r\n+     */\r\n+    private String server;\r\n+\r\n+    /**\r\n+     * Client impl\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Supported telnet commands, separated with comma.\r\n+     */\r\n+    private String telnet;\r\n+\r\n+    /**\r\n+     * Command line prompt\r\n+     */\r\n+    private String prompt;\r\n+\r\n+    /**\r\n+     * Status check\r\n+     */\r\n+    private String status;\r\n+\r\n+    /**\r\n+     * Whether to register\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * whether it is a persistent connection\r\n+     */\r\n+    //TODO add this to provider config\r\n+    private Boolean keepAlive;\r\n+\r\n+    // TODO add this to provider config\r\n+    private String optimizer;\r\n+\r\n+    /**\r\n+     * The extension\r\n+     */\r\n+    private String extension;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    private Boolean sslEnabled;\r\n+\r\n+    public ProtocolConfig() {\r\n+    }\r\n+\r\n+    public ProtocolConfig(String name) {\r\n+        setName(name);\r\n+    }\r\n+\r\n+    public ProtocolConfig(String name, int port) {\r\n+        setName(name);\r\n+        setPort(port);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getName() {\r\n+        return name;\r\n+    }\r\n+\r\n+    public final void setName(String name) {\r\n+        this.name = name;\r\n+        this.updateIdIfAbsent(name);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Integer getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    public final void setPort(Integer port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public String getPath() {\r\n+        return getContextpath();\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setPath(String path) {\r\n+        setContextpath(path);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getContextpath() {\r\n+        return contextpath;\r\n+    }\r\n+\r\n+    public void setContextpath(String contextpath) {\r\n+        this.contextpath = contextpath;\r\n+    }\r\n+\r\n+    public String getThreadpool() {\r\n+        return threadpool;\r\n+    }\r\n+\r\n+    public void setThreadpool(String threadpool) {\r\n+        this.threadpool = threadpool;\r\n+    }\r\n+\r\n+    public String getThreadname() {\r\n+        return threadname;\r\n+    }\r\n+\r\n+    public void setThreadname(String threadname) {\r\n+        this.threadname = threadname;\r\n+    }\r\n+\r\n+    public Integer getCorethreads() {\r\n+        return corethreads;\r\n+    }\r\n+\r\n+    public void setCorethreads(Integer corethreads) {\r\n+        this.corethreads = corethreads;\r\n+    }\r\n+\r\n+    public Integer getThreads() {\r\n+        return threads;\r\n+    }\r\n+\r\n+    public void setThreads(Integer threads) {\r\n+        this.threads = threads;\r\n+    }\r\n+\r\n+    public Integer getIothreads() {\r\n+        return iothreads;\r\n+    }\r\n+\r\n+    public void setIothreads(Integer iothreads) {\r\n+        this.iothreads = iothreads;\r\n+    }\r\n+\r\n+    public Integer getAlive() {\r\n+        return alive;\r\n+    }\r\n+\r\n+    public void setAlive(Integer alive) {\r\n+        this.alive = alive;\r\n+    }\r\n+\r\n+    public Integer getQueues() {\r\n+        return queues;\r\n+    }\r\n+\r\n+    public void setQueues(Integer queues) {\r\n+        this.queues = queues;\r\n+    }\r\n+\r\n+    public Integer getAccepts() {\r\n+        return accepts;\r\n+    }\r\n+\r\n+    public void setAccepts(Integer accepts) {\r\n+        this.accepts = accepts;\r\n+    }\r\n+\r\n+    public String getCodec() {\r\n+        return codec;\r\n+    }\r\n+\r\n+    public void setCodec(String codec) {\r\n+        this.codec = codec;\r\n+    }\r\n+\r\n+    public String getSerialization() {\r\n+        return serialization;\r\n+    }\r\n+\r\n+    public void setSerialization(String serialization) {\r\n+        this.serialization = serialization;\r\n+    }\r\n+\r\n+    public String getCharset() {\r\n+        return charset;\r\n+    }\r\n+\r\n+    public void setCharset(String charset) {\r\n+        this.charset = charset;\r\n+    }\r\n+\r\n+    public Integer getPayload() {\r\n+        return payload;\r\n+    }\r\n+\r\n+    public void setPayload(Integer payload) {\r\n+        this.payload = payload;\r\n+    }\r\n+\r\n+    public Integer getBuffer() {\r\n+        return buffer;\r\n+    }\r\n+\r\n+    public void setBuffer(Integer buffer) {\r\n+        this.buffer = buffer;\r\n+    }\r\n+\r\n+    public Integer getHeartbeat() {\r\n+        return heartbeat;\r\n+    }\r\n+\r\n+    public void setHeartbeat(Integer heartbeat) {\r\n+        this.heartbeat = heartbeat;\r\n+    }\r\n+\r\n+    public String getServer() {\r\n+        return server;\r\n+    }\r\n+\r\n+    public void setServer(String server) {\r\n+        this.server = server;\r\n+    }\r\n+\r\n+    public String getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    public void setClient(String client) {\r\n+        this.client = client;\r\n+    }\r\n+\r\n+    public String getAccesslog() {\r\n+        return accesslog;\r\n+    }\r\n+\r\n+    public void setAccesslog(String accesslog) {\r\n+        this.accesslog = accesslog;\r\n+    }\r\n+\r\n+    public String getTelnet() {\r\n+        return telnet;\r\n+    }\r\n+\r\n+    public void setTelnet(String telnet) {\r\n+        this.telnet = telnet;\r\n+    }\r\n+\r\n+    @Parameter(escaped = true)\r\n+    public String getPrompt() {\r\n+        return prompt;\r\n+    }\r\n+\r\n+    public void setPrompt(String prompt) {\r\n+        this.prompt = prompt;\r\n+    }\r\n+\r\n+    public String getStatus() {\r\n+        return status;\r\n+    }\r\n+\r\n+    public void setStatus(String status) {\r\n+        this.status = status;\r\n+    }\r\n+\r\n+    public Boolean isRegister() {\r\n+        return register;\r\n+    }\r\n+\r\n+    public void setRegister(Boolean register) {\r\n+        this.register = register;\r\n+    }\r\n+\r\n+    public String getTransporter() {\r\n+        return transporter;\r\n+    }\r\n+\r\n+    public void setTransporter(String transporter) {\r\n+        this.transporter = transporter;\r\n+    }\r\n+\r\n+    public String getExchanger() {\r\n+        return exchanger;\r\n+    }\r\n+\r\n+    public void setExchanger(String exchanger) {\r\n+        this.exchanger = exchanger;\r\n+    }\r\n+\r\n+    /**\r\n+     * typo, switch to use {@link #getDispatcher()}\r\n+     *\r\n+     * @deprecated {@link #getDispatcher()}\r\n+     */\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public String getDispather() {\r\n+        return getDispatcher();\r\n+    }\r\n+\r\n+    /**\r\n+     * typo, switch to use {@link #getDispatcher()}\r\n+     *\r\n+     * @deprecated {@link #setDispatcher(String)}\r\n+     */\r\n+    @Deprecated\r\n+    public void setDispather(String dispather) {\r\n+        setDispatcher(dispather);\r\n+    }\r\n+\r\n+    public String getDispatcher() {\r\n+        return dispatcher;\r\n+    }\r\n+\r\n+    public void setDispatcher(String dispatcher) {\r\n+        this.dispatcher = dispatcher;\r\n+    }\r\n+\r\n+    public String getNetworker() {\r\n+        return networker;\r\n+    }\r\n+\r\n+    public void setNetworker(String networker) {\r\n+        this.networker = networker;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    @Parameter(key = SSL_ENABLED_KEY)\r\n+    public Boolean getSslEnabled() {\r\n+        return sslEnabled;\r\n+    }\r\n+\r\n+    public void setSslEnabled(Boolean sslEnabled) {\r\n+        this.sslEnabled = sslEnabled;\r\n+    }\r\n+\r\n+    public Boolean getKeepAlive() {\r\n+        return keepAlive;\r\n+    }\r\n+\r\n+    public void setKeepAlive(Boolean keepAlive) {\r\n+        this.keepAlive = keepAlive;\r\n+    }\r\n+\r\n+    public String getOptimizer() {\r\n+        return optimizer;\r\n+    }\r\n+\r\n+    public void setOptimizer(String optimizer) {\r\n+        this.optimizer = optimizer;\r\n+    }\r\n+\r\n+    public String getExtension() {\r\n+        return extension;\r\n+    }\r\n+\r\n+    public void setExtension(String extension) {\r\n+        this.extension = extension;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void refresh() {\r\n+        if (StringUtils.isEmpty(this.getName())) {\r\n+            this.setName(DUBBO_VERSION_KEY);\r\n+        }\r\n+        super.refresh();\r\n+        if (StringUtils.isNotEmpty(this.getId())) {\r\n+            this.setPrefix(PROTOCOLS_SUFFIX);\r\n+            super.refresh();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        return StringUtils.isNotEmpty(name);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        final StringBuilder sb = new StringBuilder(\"ProtocolConfig{\");\r\n+        sb.append(\"name='\").append(name).append('\\'');\r\n+        sb.append(\", host='\").append(host).append('\\'');\r\n+        sb.append(\", port=\").append(port);\r\n+        sb.append(\", contextpath='\").append(contextpath).append('\\'');\r\n+        sb.append(\", threadpool='\").append(threadpool).append('\\'');\r\n+        sb.append(\", threadname='\").append(threadname).append('\\'');\r\n+        sb.append(\", corethreads=\").append(corethreads);\r\n+        sb.append(\", threads=\").append(threads);\r\n+        sb.append(\", iothreads=\").append(iothreads);\r\n+        sb.append(\", alive=\").append(alive);\r\n+        sb.append(\", queues=\").append(queues);\r\n+        sb.append(\", accepts=\").append(accepts);\r\n+        sb.append(\", codec='\").append(codec).append('\\'');\r\n+        sb.append(\", serialization='\").append(serialization).append('\\'');\r\n+        sb.append(\", charset='\").append(charset).append('\\'');\r\n+        sb.append(\", payload=\").append(payload);\r\n+        sb.append(\", buffer=\").append(buffer);\r\n+        sb.append(\", heartbeat=\").append(heartbeat);\r\n+        sb.append(\", accesslog='\").append(accesslog).append('\\'');\r\n+        sb.append(\", transporter='\").append(transporter).append('\\'');\r\n+        sb.append(\", exchanger='\").append(exchanger).append('\\'');\r\n+        sb.append(\", dispatcher='\").append(dispatcher).append('\\'');\r\n+        sb.append(\", networker='\").append(networker).append('\\'');\r\n+        sb.append(\", server='\").append(server).append('\\'');\r\n+        sb.append(\", client='\").append(client).append('\\'');\r\n+        sb.append(\", telnet='\").append(telnet).append('\\'');\r\n+        sb.append(\", prompt='\").append(prompt).append('\\'');\r\n+        sb.append(\", status='\").append(status).append('\\'');\r\n+        sb.append(\", register=\").append(register);\r\n+        sb.append(\", keepAlive=\").append(keepAlive);\r\n+        sb.append(\", optimizer='\").append(optimizer).append('\\'');\r\n+        sb.append(\", extension='\").append(extension).append('\\'');\r\n+        sb.append(\", parameters=\").append(parameters);\r\n+        sb.append(\", isDefault=\").append(isDefault);\r\n+        sb.append(\", sslEnabled=\").append(sslEnabled);\r\n+        sb.append('}');\r\n+        return sb.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ProviderConfig.java", "source2": "org/apache/dubbo/config/ProviderConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,472 +1,472 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-\n-/**\n- * The service provider default configuration\n- *\n- * @export\n- * @see org.apache.dubbo.config.ProtocolConfig\n- * @see ServiceConfigBase\n- */\n-public class ProviderConfig extends AbstractServiceConfig {\n-\n-    private static final long serialVersionUID = 6913423882496634749L;\n-\n-    // ======== protocol default values, it'll take effect when protocol's attributes are not set ========\n-\n-    /**\n-     * Service ip addresses (used when there are multiple network cards available)\n-     */\n-    private String host;\n-\n-    /**\n-     * Service port\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Context path\n-     */\n-    private String contextpath;\n-\n-    /**\n-     * Thread pool\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Thread pool name\n-     */\n-    private String threadname;\n-\n-    /**\n-     * Thread pool size (fixed size)\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * IO thread pool size (fixed size)\n-     */\n-    private Integer iothreads;\n-\n-    /**\n-     * Thread pool keepAliveTime, default unit TimeUnit.MILLISECONDS\n-     */\n-    private Integer alive;\n-\n-    /**\n-     * Thread pool queue length\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * Max acceptable connections\n-     */\n-    private Integer accepts;\n-\n-    /**\n-     * Protocol codec\n-     */\n-    private String codec;\n-\n-    /**\n-     * The serialization charset\n-     */\n-    private String charset;\n-\n-    /**\n-     * Payload max length\n-     */\n-    private Integer payload;\n-\n-    /**\n-     * The network io buffer size\n-     */\n-    private Integer buffer;\n-\n-    /**\n-     * Transporter\n-     */\n-    private String transporter;\n-\n-    /**\n-     * How information gets exchanged\n-     */\n-    private String exchanger;\n-\n-    /**\n-     * Thread dispatching mode\n-     */\n-    private String dispatcher;\n-\n-    /**\n-     * Networker\n-     */\n-    private String networker;\n-\n-    /**\n-     * The server-side implementation model of the protocol\n-     */\n-    private String server;\n-\n-    /**\n-     * The client-side implementation model of the protocol\n-     */\n-    private String client;\n-\n-    /**\n-     * Supported telnet commands, separated with comma.\n-     */\n-    private String telnet;\n-\n-    /**\n-     * Command line prompt\n-     */\n-    private String prompt;\n-\n-    /**\n-     * Status check\n-     */\n-    private String status;\n-\n-    /**\n-     * Wait time when stop\n-     */\n-    private Integer wait;\n-\n-    /**\n-     * Whether to use the default protocol\n-     */\n-    private Boolean isDefault;\n-\n-    @Deprecated\n-    public void setProtocol(String protocol) {\n-        this.protocols = new ArrayList<>(Arrays.asList(new ProtocolConfig(protocol)));\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    @Deprecated\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Integer getPort() {\n-        return port;\n-    }\n-\n-    @Deprecated\n-    public void setPort(Integer port) {\n-        this.port = port;\n-    }\n-\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public String getPath() {\n-        return getContextpath();\n-    }\n-\n-    @Deprecated\n-    public void setPath(String path) {\n-        setContextpath(path);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getContextpath() {\n-        return contextpath;\n-    }\n-\n-    public void setContextpath(String contextpath) {\n-        this.contextpath = contextpath;\n-    }\n-\n-    public String getThreadpool() {\n-        return threadpool;\n-    }\n-\n-    public void setThreadpool(String threadpool) {\n-        this.threadpool = threadpool;\n-    }\n-\n-    public String getThreadname() {\n-        return threadname;\n-    }\n-\n-    public void setThreadname(String threadname) {\n-        this.threadname = threadname;\n-    }\n-\n-    public Integer getThreads() {\n-        return threads;\n-    }\n-\n-    public void setThreads(Integer threads) {\n-        this.threads = threads;\n-    }\n-\n-    public Integer getIothreads() {\n-        return iothreads;\n-    }\n-\n-    public void setIothreads(Integer iothreads) {\n-        this.iothreads = iothreads;\n-    }\n-\n-    public Integer getAlive() {\n-        return alive;\n-    }\n-\n-    public void setAlive(Integer alive) {\n-        this.alive = alive;\n-    }\n-\n-    public Integer getQueues() {\n-        return queues;\n-    }\n-\n-    public void setQueues(Integer queues) {\n-        this.queues = queues;\n-    }\n-\n-    public Integer getAccepts() {\n-        return accepts;\n-    }\n-\n-    public void setAccepts(Integer accepts) {\n-        this.accepts = accepts;\n-    }\n-\n-    public String getCodec() {\n-        return codec;\n-    }\n-\n-    public void setCodec(String codec) {\n-        this.codec = codec;\n-    }\n-\n-    public String getCharset() {\n-        return charset;\n-    }\n-\n-    public void setCharset(String charset) {\n-        this.charset = charset;\n-    }\n-\n-    public Integer getPayload() {\n-        return payload;\n-    }\n-\n-    public void setPayload(Integer payload) {\n-        this.payload = payload;\n-    }\n-\n-    public Integer getBuffer() {\n-        return buffer;\n-    }\n-\n-    public void setBuffer(Integer buffer) {\n-        this.buffer = buffer;\n-    }\n-\n-    public String getServer() {\n-        return server;\n-    }\n-\n-    public void setServer(String server) {\n-        this.server = server;\n-    }\n-\n-    public String getClient() {\n-        return client;\n-    }\n-\n-    public void setClient(String client) {\n-        this.client = client;\n-    }\n-\n-    public String getTelnet() {\n-        return telnet;\n-    }\n-\n-    public void setTelnet(String telnet) {\n-        this.telnet = telnet;\n-    }\n-\n-    @Parameter(escaped = true)\n-    public String getPrompt() {\n-        return prompt;\n-    }\n-\n-    public void setPrompt(String prompt) {\n-        this.prompt = prompt;\n-    }\n-\n-    public String getStatus() {\n-        return status;\n-    }\n-\n-    public void setStatus(String status) {\n-        this.status = status;\n-    }\n-\n-    @Override\n-    public String getCluster() {\n-        return super.getCluster();\n-    }\n-\n-    @Override\n-    public Integer getConnections() {\n-        return super.getConnections();\n-    }\n-\n-    @Override\n-    public Integer getTimeout() {\n-        return super.getTimeout();\n-    }\n-\n-    @Override\n-    public Integer getRetries() {\n-        return super.getRetries();\n-    }\n-\n-    @Override\n-    public String getLoadbalance() {\n-        return super.getLoadbalance();\n-    }\n-\n-    @Override\n-    public Boolean isAsync() {\n-        return super.isAsync();\n-    }\n-\n-    @Override\n-    public Integer getActives() {\n-        return super.getActives();\n-    }\n-\n-    public String getTransporter() {\n-        return transporter;\n-    }\n-\n-    public void setTransporter(String transporter) {\n-        this.transporter = transporter;\n-    }\n-\n-    public String getExchanger() {\n-        return exchanger;\n-    }\n-\n-    public void setExchanger(String exchanger) {\n-        this.exchanger = exchanger;\n-    }\n-\n-    /**\n-     * typo, switch to use {@link #getDispatcher()}\n-     *\n-     * @deprecated {@link #getDispatcher()}\n-     */\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public String getDispather() {\n-        return getDispatcher();\n-    }\n-\n-    /**\n-     * typo, switch to use {@link #getDispatcher()}\n-     *\n-     * @deprecated {@link #setDispatcher(String)}\n-     */\n-    @Deprecated\n-    public void setDispather(String dispather) {\n-        setDispatcher(dispather);\n-    }\n-\n-    public String getDispatcher() {\n-        return dispatcher;\n-    }\n-\n-    public void setDispatcher(String dispatcher) {\n-        this.dispatcher = dispatcher;\n-    }\n-\n-    public String getNetworker() {\n-        return networker;\n-    }\n-\n-    public void setNetworker(String networker) {\n-        this.networker = networker;\n-    }\n-\n-    public Integer getWait() {\n-        return wait;\n-    }\n-\n-    public void setWait(Integer wait) {\n-        this.wait = wait;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        final StringBuilder sb = new StringBuilder(\"ProviderConfig{\");\n-        sb.append(\"host='\").append(host).append('\\'');\n-        sb.append(\", port=\").append(port);\n-        sb.append(\", contextpath='\").append(contextpath).append('\\'');\n-        sb.append(\", threadpool='\").append(threadpool).append('\\'');\n-        sb.append(\", threadname='\").append(threadname).append('\\'');\n-        sb.append(\", threads=\").append(threads);\n-        sb.append(\", iothreads=\").append(iothreads);\n-        sb.append(\", alive=\").append(alive);\n-        sb.append(\", queues=\").append(queues);\n-        sb.append(\", accepts=\").append(accepts);\n-        sb.append(\", codec='\").append(codec).append('\\'');\n-        sb.append(\", charset='\").append(charset).append('\\'');\n-        sb.append(\", payload=\").append(payload);\n-        sb.append(\", buffer=\").append(buffer);\n-        sb.append(\", transporter='\").append(transporter).append('\\'');\n-        sb.append(\", exchanger='\").append(exchanger).append('\\'');\n-        sb.append(\", dispatcher='\").append(dispatcher).append('\\'');\n-        sb.append(\", networker='\").append(networker).append('\\'');\n-        sb.append(\", server='\").append(server).append('\\'');\n-        sb.append(\", client='\").append(client).append('\\'');\n-        sb.append(\", telnet='\").append(telnet).append('\\'');\n-        sb.append(\", prompt='\").append(prompt).append('\\'');\n-        sb.append(\", status='\").append(status).append('\\'');\n-        sb.append(\", wait=\").append(wait);\n-        sb.append(\", isDefault=\").append(isDefault);\n-        sb.append('}');\n-        return sb.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+\r\n+/**\r\n+ * The service provider default configuration\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.config.ProtocolConfig\r\n+ * @see ServiceConfigBase\r\n+ */\r\n+public class ProviderConfig extends AbstractServiceConfig {\r\n+\r\n+    private static final long serialVersionUID = 6913423882496634749L;\r\n+\r\n+    // ======== protocol default values, it'll take effect when protocol's attributes are not set ========\r\n+\r\n+    /**\r\n+     * Service ip addresses (used when there are multiple network cards available)\r\n+     */\r\n+    private String host;\r\n+\r\n+    /**\r\n+     * Service port\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Context path\r\n+     */\r\n+    private String contextpath;\r\n+\r\n+    /**\r\n+     * Thread pool\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Thread pool name\r\n+     */\r\n+    private String threadname;\r\n+\r\n+    /**\r\n+     * Thread pool size (fixed size)\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * IO thread pool size (fixed size)\r\n+     */\r\n+    private Integer iothreads;\r\n+\r\n+    /**\r\n+     * Thread pool keepAliveTime, default unit TimeUnit.MILLISECONDS\r\n+     */\r\n+    private Integer alive;\r\n+\r\n+    /**\r\n+     * Thread pool queue length\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * Max acceptable connections\r\n+     */\r\n+    private Integer accepts;\r\n+\r\n+    /**\r\n+     * Protocol codec\r\n+     */\r\n+    private String codec;\r\n+\r\n+    /**\r\n+     * The serialization charset\r\n+     */\r\n+    private String charset;\r\n+\r\n+    /**\r\n+     * Payload max length\r\n+     */\r\n+    private Integer payload;\r\n+\r\n+    /**\r\n+     * The network io buffer size\r\n+     */\r\n+    private Integer buffer;\r\n+\r\n+    /**\r\n+     * Transporter\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    /**\r\n+     * How information gets exchanged\r\n+     */\r\n+    private String exchanger;\r\n+\r\n+    /**\r\n+     * Thread dispatching mode\r\n+     */\r\n+    private String dispatcher;\r\n+\r\n+    /**\r\n+     * Networker\r\n+     */\r\n+    private String networker;\r\n+\r\n+    /**\r\n+     * The server-side implementation model of the protocol\r\n+     */\r\n+    private String server;\r\n+\r\n+    /**\r\n+     * The client-side implementation model of the protocol\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Supported telnet commands, separated with comma.\r\n+     */\r\n+    private String telnet;\r\n+\r\n+    /**\r\n+     * Command line prompt\r\n+     */\r\n+    private String prompt;\r\n+\r\n+    /**\r\n+     * Status check\r\n+     */\r\n+    private String status;\r\n+\r\n+    /**\r\n+     * Wait time when stop\r\n+     */\r\n+    private Integer wait;\r\n+\r\n+    /**\r\n+     * Whether to use the default protocol\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    @Deprecated\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocols = new ArrayList<>(Arrays.asList(new ProtocolConfig(protocol)));\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Integer getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setPort(Integer port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public String getPath() {\r\n+        return getContextpath();\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setPath(String path) {\r\n+        setContextpath(path);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getContextpath() {\r\n+        return contextpath;\r\n+    }\r\n+\r\n+    public void setContextpath(String contextpath) {\r\n+        this.contextpath = contextpath;\r\n+    }\r\n+\r\n+    public String getThreadpool() {\r\n+        return threadpool;\r\n+    }\r\n+\r\n+    public void setThreadpool(String threadpool) {\r\n+        this.threadpool = threadpool;\r\n+    }\r\n+\r\n+    public String getThreadname() {\r\n+        return threadname;\r\n+    }\r\n+\r\n+    public void setThreadname(String threadname) {\r\n+        this.threadname = threadname;\r\n+    }\r\n+\r\n+    public Integer getThreads() {\r\n+        return threads;\r\n+    }\r\n+\r\n+    public void setThreads(Integer threads) {\r\n+        this.threads = threads;\r\n+    }\r\n+\r\n+    public Integer getIothreads() {\r\n+        return iothreads;\r\n+    }\r\n+\r\n+    public void setIothreads(Integer iothreads) {\r\n+        this.iothreads = iothreads;\r\n+    }\r\n+\r\n+    public Integer getAlive() {\r\n+        return alive;\r\n+    }\r\n+\r\n+    public void setAlive(Integer alive) {\r\n+        this.alive = alive;\r\n+    }\r\n+\r\n+    public Integer getQueues() {\r\n+        return queues;\r\n+    }\r\n+\r\n+    public void setQueues(Integer queues) {\r\n+        this.queues = queues;\r\n+    }\r\n+\r\n+    public Integer getAccepts() {\r\n+        return accepts;\r\n+    }\r\n+\r\n+    public void setAccepts(Integer accepts) {\r\n+        this.accepts = accepts;\r\n+    }\r\n+\r\n+    public String getCodec() {\r\n+        return codec;\r\n+    }\r\n+\r\n+    public void setCodec(String codec) {\r\n+        this.codec = codec;\r\n+    }\r\n+\r\n+    public String getCharset() {\r\n+        return charset;\r\n+    }\r\n+\r\n+    public void setCharset(String charset) {\r\n+        this.charset = charset;\r\n+    }\r\n+\r\n+    public Integer getPayload() {\r\n+        return payload;\r\n+    }\r\n+\r\n+    public void setPayload(Integer payload) {\r\n+        this.payload = payload;\r\n+    }\r\n+\r\n+    public Integer getBuffer() {\r\n+        return buffer;\r\n+    }\r\n+\r\n+    public void setBuffer(Integer buffer) {\r\n+        this.buffer = buffer;\r\n+    }\r\n+\r\n+    public String getServer() {\r\n+        return server;\r\n+    }\r\n+\r\n+    public void setServer(String server) {\r\n+        this.server = server;\r\n+    }\r\n+\r\n+    public String getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    public void setClient(String client) {\r\n+        this.client = client;\r\n+    }\r\n+\r\n+    public String getTelnet() {\r\n+        return telnet;\r\n+    }\r\n+\r\n+    public void setTelnet(String telnet) {\r\n+        this.telnet = telnet;\r\n+    }\r\n+\r\n+    @Parameter(escaped = true)\r\n+    public String getPrompt() {\r\n+        return prompt;\r\n+    }\r\n+\r\n+    public void setPrompt(String prompt) {\r\n+        this.prompt = prompt;\r\n+    }\r\n+\r\n+    public String getStatus() {\r\n+        return status;\r\n+    }\r\n+\r\n+    public void setStatus(String status) {\r\n+        this.status = status;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getCluster() {\r\n+        return super.getCluster();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getConnections() {\r\n+        return super.getConnections();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getTimeout() {\r\n+        return super.getTimeout();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getRetries() {\r\n+        return super.getRetries();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getLoadbalance() {\r\n+        return super.getLoadbalance();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Boolean isAsync() {\r\n+        return super.isAsync();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getActives() {\r\n+        return super.getActives();\r\n+    }\r\n+\r\n+    public String getTransporter() {\r\n+        return transporter;\r\n+    }\r\n+\r\n+    public void setTransporter(String transporter) {\r\n+        this.transporter = transporter;\r\n+    }\r\n+\r\n+    public String getExchanger() {\r\n+        return exchanger;\r\n+    }\r\n+\r\n+    public void setExchanger(String exchanger) {\r\n+        this.exchanger = exchanger;\r\n+    }\r\n+\r\n+    /**\r\n+     * typo, switch to use {@link #getDispatcher()}\r\n+     *\r\n+     * @deprecated {@link #getDispatcher()}\r\n+     */\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public String getDispather() {\r\n+        return getDispatcher();\r\n+    }\r\n+\r\n+    /**\r\n+     * typo, switch to use {@link #getDispatcher()}\r\n+     *\r\n+     * @deprecated {@link #setDispatcher(String)}\r\n+     */\r\n+    @Deprecated\r\n+    public void setDispather(String dispather) {\r\n+        setDispatcher(dispather);\r\n+    }\r\n+\r\n+    public String getDispatcher() {\r\n+        return dispatcher;\r\n+    }\r\n+\r\n+    public void setDispatcher(String dispatcher) {\r\n+        this.dispatcher = dispatcher;\r\n+    }\r\n+\r\n+    public String getNetworker() {\r\n+        return networker;\r\n+    }\r\n+\r\n+    public void setNetworker(String networker) {\r\n+        this.networker = networker;\r\n+    }\r\n+\r\n+    public Integer getWait() {\r\n+        return wait;\r\n+    }\r\n+\r\n+    public void setWait(Integer wait) {\r\n+        this.wait = wait;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        final StringBuilder sb = new StringBuilder(\"ProviderConfig{\");\r\n+        sb.append(\"host='\").append(host).append('\\'');\r\n+        sb.append(\", port=\").append(port);\r\n+        sb.append(\", contextpath='\").append(contextpath).append('\\'');\r\n+        sb.append(\", threadpool='\").append(threadpool).append('\\'');\r\n+        sb.append(\", threadname='\").append(threadname).append('\\'');\r\n+        sb.append(\", threads=\").append(threads);\r\n+        sb.append(\", iothreads=\").append(iothreads);\r\n+        sb.append(\", alive=\").append(alive);\r\n+        sb.append(\", queues=\").append(queues);\r\n+        sb.append(\", accepts=\").append(accepts);\r\n+        sb.append(\", codec='\").append(codec).append('\\'');\r\n+        sb.append(\", charset='\").append(charset).append('\\'');\r\n+        sb.append(\", payload=\").append(payload);\r\n+        sb.append(\", buffer=\").append(buffer);\r\n+        sb.append(\", transporter='\").append(transporter).append('\\'');\r\n+        sb.append(\", exchanger='\").append(exchanger).append('\\'');\r\n+        sb.append(\", dispatcher='\").append(dispatcher).append('\\'');\r\n+        sb.append(\", networker='\").append(networker).append('\\'');\r\n+        sb.append(\", server='\").append(server).append('\\'');\r\n+        sb.append(\", client='\").append(client).append('\\'');\r\n+        sb.append(\", telnet='\").append(telnet).append('\\'');\r\n+        sb.append(\", prompt='\").append(prompt).append('\\'');\r\n+        sb.append(\", status='\").append(status).append('\\'');\r\n+        sb.append(\", wait=\").append(wait);\r\n+        sb.append(\", isDefault=\").append(isDefault);\r\n+        sb.append('}');\r\n+        return sb.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ReferenceConfig.java", "source2": "org/apache/dubbo/config/ReferenceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,554 +1,554 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.bytecode.Wrapper;\n-import org.apache.dubbo.common.constants.RegistryConstants;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-import org.apache.dubbo.config.event.ReferenceConfigDestroyedEvent;\n-import org.apache.dubbo.config.event.ReferenceConfigInitializedEvent;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.config.utils.ConfigValidationUtils;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.registry.client.metadata.MetadataUtils;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.directory.StaticDirectory;\n-import org.apache.dubbo.rpc.cluster.support.ClusterUtils;\n-import org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareCluster;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.AsyncMethodInfo;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.ServiceDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR_CHAR;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROXY_CLASS_REF;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\n-import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;\n-import static org.apache.dubbo.common.utils.StringUtils.splitToSet;\n-import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\n-import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\n-import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-\n-/**\n- * Please avoid using this class for any new application,\n- * use {@link ReferenceConfigBase} instead.\n- */\n-public class ReferenceConfig<T> extends ReferenceConfigBase<T> {\n-\n-    public static final Logger logger = LoggerFactory.getLogger(ReferenceConfig.class);\n-\n-    /**\n-     * The {@link Protocol} implementation with adaptive functionality,it will be different in different scenarios.\n-     * A particular {@link Protocol} implementation is determined by the protocol attribute in the {@link URL}.\n-     * For example:\n-     *\n-     * <li>when the url is registry://224.5.6.7:1234/org.apache.dubbo.registry.RegistryService?application=dubbo-sample,\n-     * then the protocol is <b>RegistryProtocol</b></li>\n-     *\n-     * <li>when the url is dubbo://224.5.6.7:1234/org.apache.dubbo.config.api.DemoService?application=dubbo-sample, then\n-     * the protocol is <b>DubboProtocol</b></li>\n-     * <p>\n-     * Actually\uff0cwhen the {@link ExtensionLoader} init the {@link Protocol} instants,it will automatically wraps two\n-     * layers, and eventually will get a <b>ProtocolFilterWrapper</b> or <b>ProtocolListenerWrapper</b>\n-     */\n-    private static final Protocol REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\n-\n-    /**\n-     * The {@link Cluster}'s implementation with adaptive functionality, and actually it will get a {@link Cluster}'s\n-     * specific implementation who is wrapped with <b>MockClusterInvoker</b>\n-     */\n-    private static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();\n-\n-    /**\n-     * A {@link ProxyFactory} implementation that will generate a reference service's proxy,the JavassistProxyFactory is\n-     * its default implementation\n-     */\n-    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\n-\n-    /**\n-     * The interface proxy reference\n-     */\n-    private transient volatile T ref;\n-\n-    /**\n-     * The invoker of the reference service\n-     */\n-    private transient volatile Invoker<?> invoker;\n-\n-    /**\n-     * The flag whether the ReferenceConfig has been initialized\n-     */\n-    private transient volatile boolean initialized;\n-\n-    /**\n-     * whether this ReferenceConfig has been destroyed\n-     */\n-    private transient volatile boolean destroyed;\n-\n-    private final ServiceRepository repository;\n-\n-    private DubboBootstrap bootstrap;\n-\n-    /**\n-     * The service names that the Dubbo interface subscribed.\n-     *\n-     * @since 2.7.8\n-     */\n-    private String services;\n-\n-    public ReferenceConfig() {\n-        super();\n-        this.repository = ApplicationModel.getServiceRepository();\n-    }\n-\n-    public ReferenceConfig(Reference reference) {\n-        super(reference);\n-        this.repository = ApplicationModel.getServiceRepository();\n-    }\n-\n-    /**\n-     * Get a string presenting the service names that the Dubbo interface subscribed.\n-     * If it is a multiple-values, the content will be a comma-delimited String.\n-     *\n-     * @return non-null\n-     * @see RegistryConstants#SUBSCRIBED_SERVICE_NAMES_KEY\n-     * @since 2.7.8\n-     */\n-    @Deprecated\n-    @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY)\n-    public String getServices() {\n-        return services;\n-    }\n-\n-    /**\n-     * It's an alias method for {@link #getServices()}, but the more convenient.\n-     *\n-     * @return the String {@link List} presenting the Dubbo interface subscribed\n-     * @since 2.7.8\n-     */\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public Set<String> getSubscribedServices() {\n-        return splitToSet(getServices(), COMMA_SEPARATOR_CHAR);\n-    }\n-\n-    /**\n-     * Set the service names that the Dubbo interface subscribed.\n-     *\n-     * @param services If it is a multiple-values, the content will be a comma-delimited String.\n-     * @since 2.7.8\n-     */\n-    public void setServices(String services) {\n-        this.services = services;\n-    }\n-\n-    public synchronized T get() {\n-        if (destroyed) {\n-            throw new IllegalStateException(\"The invoker of ReferenceConfig(\" + url + \") has already destroyed!\");\n-        }\n-        if (ref == null) {\n-            init();\n-        }\n-        return ref;\n-    }\n-\n-    public synchronized void destroy() {\n-        if (ref == null) {\n-            return;\n-        }\n-        if (destroyed) {\n-            return;\n-        }\n-        destroyed = true;\n-        try {\n-            invoker.destroy();\n-        } catch (Throwable t) {\n-            logger.warn(\"Unexpected error occurred when destroy invoker of ReferenceConfig(\" + url + \").\", t);\n-        }\n-        invoker = null;\n-        ref = null;\n-\n-        // dispatch a ReferenceConfigDestroyedEvent since 2.7.4\n-        dispatch(new ReferenceConfigDestroyedEvent(this));\n-    }\n-\n-    public synchronized void init() {\n-        if (initialized) {\n-            return;\n-        }\n-\n-\n-        if (bootstrap == null) {\n-            bootstrap = DubboBootstrap.getInstance();\n-            bootstrap.initialize();\n-        }\n-\n-        checkAndUpdateSubConfigs();\n-\n-        checkStubAndLocal(interfaceClass);\n-        ConfigValidationUtils.checkMock(interfaceClass, this);\n-\n-        Map<String, String> map = new HashMap<String, String>();\n-        map.put(SIDE_KEY, CONSUMER_SIDE);\n-\n-        ReferenceConfigBase.appendRuntimeParameters(map);\n-        if (!ProtocolUtils.isGeneric(generic)) {\n-            String revision = Version.getVersion(interfaceClass, version);\n-            if (revision != null && revision.length() > 0) {\n-                map.put(REVISION_KEY, revision);\n-            }\n-\n-            String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();\n-            if (methods.length == 0) {\n-                logger.warn(\"No method found in service interface \" + interfaceClass.getName());\n-                map.put(METHODS_KEY, ANY_VALUE);\n-            } else {\n-                map.put(METHODS_KEY, StringUtils.join(new HashSet<String>(Arrays.asList(methods)), COMMA_SEPARATOR));\n-            }\n-        }\n-        map.put(INTERFACE_KEY, interfaceName);\n-        AbstractConfig.appendParameters(map, getMetrics());\n-        AbstractConfig.appendParameters(map, getApplication());\n-        AbstractConfig.appendParameters(map, getModule());\n-        // remove 'default.' prefix for configs from ConsumerConfig\n-        // appendParameters(map, consumer, Constants.DEFAULT_KEY);\n-        AbstractConfig.appendParameters(map, consumer);\n-        AbstractConfig.appendParameters(map, this);\n-        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();\n-        if (metadataReportConfig != null && metadataReportConfig.isValid()) {\n-            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);\n-        }\n-        Map<String, AsyncMethodInfo> attributes = null;\n-        if (CollectionUtils.isNotEmpty(getMethods())) {\n-            attributes = new HashMap<>();\n-            for (MethodConfig methodConfig : getMethods()) {\n-                AbstractConfig.appendParameters(map, methodConfig, methodConfig.getName());\n-                String retryKey = methodConfig.getName() + \".retry\";\n-                if (map.containsKey(retryKey)) {\n-                    String retryValue = map.remove(retryKey);\n-                    if (\"false\".equals(retryValue)) {\n-                        map.put(methodConfig.getName() + \".retries\", \"0\");\n-                    }\n-                }\n-                AsyncMethodInfo asyncMethodInfo = AbstractConfig.convertMethodConfig2AsyncInfo(methodConfig);\n-                if (asyncMethodInfo != null) {\n-//                    consumerModel.getMethodModel(methodConfig.getName()).addAttribute(ASYNC_KEY, asyncMethodInfo);\n-                    attributes.put(methodConfig.getName(), asyncMethodInfo);\n-                }\n-            }\n-        }\n-\n-        String hostToRegistry = ConfigUtils.getSystemProperty(DUBBO_IP_TO_REGISTRY);\n-        if (StringUtils.isEmpty(hostToRegistry)) {\n-            hostToRegistry = NetUtils.getLocalHost();\n-        } else if (isInvalidLocalHost(hostToRegistry)) {\n-            throw new IllegalArgumentException(\n-                    \"Specified invalid registry ip from property:\" + DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\n-        }\n-        map.put(REGISTER_IP_KEY, hostToRegistry);\n-\n-        serviceMetadata.getAttachments().putAll(map);\n-\n-        ref = createProxy(map);\n-\n-        serviceMetadata.setTarget(ref);\n-        serviceMetadata.addAttribute(PROXY_CLASS_REF, ref);\n-        ConsumerModel consumerModel = repository.lookupReferredService(serviceMetadata.getServiceKey());\n-        consumerModel.setProxyObject(ref);\n-        consumerModel.init(attributes);\n-\n-        initialized = true;\n-\n-        checkInvokerAvailable();\n-\n-        // dispatch a ReferenceConfigInitializedEvent since 2.7.4\n-        dispatch(new ReferenceConfigInitializedEvent(this, invoker));\n-    }\n-\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\", \"deprecation\"})\n-    private T createProxy(Map<String, String> map) {\n-        if (shouldJvmRefer(map)) {\n-            URL url = new URL(LOCAL_PROTOCOL, LOCALHOST_VALUE, 0, interfaceClass.getName()).addParameters(map);\n-            invoker = REF_PROTOCOL.refer(interfaceClass, url);\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Using injvm service \" + interfaceClass.getName());\n-            }\n-        } else {\n-            urls.clear();\n-            if (url != null && url.length() > 0) { // user specified URL, could be peer-to-peer address, or register center's address.\n-                String[] us = SEMICOLON_SPLIT_PATTERN.split(url);\n-                if (us != null && us.length > 0) {\n-                    for (String u : us) {\n-                        URL url = URL.valueOf(u);\n-                        if (StringUtils.isEmpty(url.getPath())) {\n-                            url = url.setPath(interfaceName);\n-                        }\n-                        if (UrlUtils.isRegistry(url)) {\n-                            urls.add(url.addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map)));\n-                        } else {\n-                            urls.add(ClusterUtils.mergeUrl(url, map));\n-                        }\n-                    }\n-                }\n-            } else { // assemble URL from register center's configuration\n-                // if protocols not injvm checkRegistry\n-                if (!LOCAL_PROTOCOL.equalsIgnoreCase(getProtocol())) {\n-                    checkRegistry();\n-                    List<URL> us = ConfigValidationUtils.loadRegistries(this, false);\n-                    if (CollectionUtils.isNotEmpty(us)) {\n-                        for (URL u : us) {\n-                            URL monitorUrl = ConfigValidationUtils.loadMonitor(this, u);\n-                            if (monitorUrl != null) {\n-                                map.put(MONITOR_KEY, URL.encode(monitorUrl.toFullString()));\n-                            }\n-                            urls.add(u.addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map)));\n-                        }\n-                    }\n-                    if (urls.isEmpty()) {\n-                        throw new IllegalStateException(\n-                                \"No such any registry to reference \" + interfaceName + \" on the consumer \" + NetUtils.getLocalHost() +\n-                                        \" use dubbo version \" + Version.getVersion() +\n-                                        \", please config <dubbo:registry address=\\\"...\\\" /> to your spring config.\");\n-                    }\n-                }\n-            }\n-\n-            if (urls.size() == 1) {\n-                invoker = REF_PROTOCOL.refer(interfaceClass, urls.get(0));\n-            } else {\n-                List<Invoker<?>> invokers = new ArrayList<Invoker<?>>();\n-                URL registryURL = null;\n-                for (URL url : urls) {\n-                    Invoker<?> referInvoker = REF_PROTOCOL.refer(interfaceClass, url);\n-                    if (shouldCheck()) {\n-                        if (referInvoker.isAvailable()) {\n-                            invokers.add(referInvoker);\n-                        } else {\n-                            referInvoker.destroy();\n-                        }\n-                    } else {\n-                        invokers.add(referInvoker);\n-                    }\n-\n-                    if (UrlUtils.isRegistry(url)) {\n-                        registryURL = url; // use last registry url\n-                    }\n-                }\n-\n-                if (shouldCheck() && invokers.size() == 0) {\n-                    throw new IllegalStateException(\"Failed to check the status of the service \"\n-                            + interfaceName\n-                            + \". No provider available for the service \"\n-                            + (group == null ? \"\" : group + \"/\")\n-                            + interfaceName +\n-                            (version == null ? \"\" : \":\" + version)\n-                            + \" from the multi registry cluster\"\n-                            + \" use dubbo version \" + Version.getVersion());\n-                }\n-\n-                if (registryURL != null) { // registry url is available\n-                    // for multi-subscription scenario, use 'zone-aware' policy by default\n-                    String cluster = registryURL.getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME);\n-                    // The invoker wrap sequence would be: ZoneAwareClusterInvoker(StaticDirectory) -> FailoverClusterInvoker(RegistryDirectory, routing happens here) -> Invoker\n-                    invoker = Cluster.getCluster(cluster, false).join(new StaticDirectory(registryURL, invokers));\n-                } else { // not a registry url, must be direct invoke.\n-                    String cluster = CollectionUtils.isNotEmpty(invokers)\n-                            ?\n-                            (invokers.get(0).getUrl() != null ? invokers.get(0).getUrl().getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME) :\n-                                    Cluster.DEFAULT)\n-                            : Cluster.DEFAULT;\n-                    invoker = Cluster.getCluster(cluster).join(new StaticDirectory(invokers));\n-                }\n-            }\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Refer dubbo service \" + interfaceClass.getName() + \" from url \" + invoker.getUrl());\n-        }\n-\n-        URL consumerURL = new URL(CONSUMER_PROTOCOL, map.remove(REGISTER_IP_KEY), 0, map.get(INTERFACE_KEY), map);\n-        MetadataUtils.publishServiceDefinition(consumerURL);\n-\n-        // create service proxy\n-        return (T) PROXY_FACTORY.getProxy(invoker, ProtocolUtils.isGeneric(generic));\n-    }\n-\n-    private void checkInvokerAvailable() throws IllegalStateException {\n-        if (shouldCheck() && !invoker.isAvailable()) {\n-            invoker.destroy();\n-            throw new IllegalStateException(\"Failed to check the status of the service \"\n-                    + interfaceName\n-                    + \". No provider available for the service \"\n-                    + (group == null ? \"\" : group + \"/\")\n-                    + interfaceName +\n-                    (version == null ? \"\" : \":\" + version)\n-                    + \" from the url \"\n-                    + invoker.getUrl()\n-                    + \" to the consumer \"\n-                    + NetUtils.getLocalHost() + \" use dubbo version \" + Version.getVersion());\n-        }\n-    }\n-\n-    /**\n-     * This method should be called right after the creation of this class's instance, before any property in other config modules is used.\n-     * Check each config modules are created properly and override their properties if necessary.\n-     */\n-    public void checkAndUpdateSubConfigs() {\n-        if (StringUtils.isEmpty(interfaceName)) {\n-            throw new IllegalStateException(\"<dubbo:reference interface=\\\"\\\" /> interface not allow null!\");\n-        }\n-        completeCompoundConfigs(consumer);\n-        // get consumer's global configuration\n-        checkDefault();\n-\n-        // init some null configuration.\n-        List<ConfigInitializer> configInitializers = ExtensionLoader.getExtensionLoader(ConfigInitializer.class)\n-                .getActivateExtension(URL.valueOf(\"configInitializer://\"), (String[]) null);\n-        configInitializers.forEach(e -> e.initReferConfig(this));\n-\n-        this.refresh();\n-        if (getGeneric() == null && getConsumer() != null) {\n-            setGeneric(getConsumer().getGeneric());\n-        }\n-        if (ProtocolUtils.isGeneric(generic)) {\n-            interfaceClass = GenericService.class;\n-        } else {\n-            try {\n-                interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\n-                        .getContextClassLoader());\n-            } catch (ClassNotFoundException e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-            checkInterfaceAndMethods(interfaceClass, getMethods());\n-        }\n-\n-        initServiceMetadata(consumer);\n-        serviceMetadata.setServiceType(getActualInterface());\n-        // TODO, uncomment this line once service key is unified\n-        serviceMetadata.setServiceKey(URL.buildKey(interfaceName, group, version));\n-\n-        ServiceRepository repository = ApplicationModel.getServiceRepository();\n-        ServiceDescriptor serviceDescriptor = repository.registerService(interfaceClass);\n-        repository.registerConsumer(\n-                serviceMetadata.getServiceKey(),\n-                serviceDescriptor,\n-                this,\n-                null,\n-                serviceMetadata);\n-\n-        resolveFile();\n-        ConfigValidationUtils.validateReferenceConfig(this);\n-        postProcessConfig();\n-    }\n-\n-\n-    /**\n-     * Figure out should refer the service in the same JVM from configurations. The default behavior is true\n-     * 1. if injvm is specified, then use it\n-     * 2. then if a url is specified, then assume it's a remote call\n-     * 3. otherwise, check scope parameter\n-     * 4. if scope is not specified but the target service is provided in the same JVM, then prefer to make the local\n-     * call, which is the default behavior\n-     */\n-    protected boolean shouldJvmRefer(Map<String, String> map) {\n-        URL tmpUrl = new URL(\"temp\", \"localhost\", 0, map);\n-        boolean isJvmRefer;\n-        if (isInjvm() == null) {\n-            // if a url is specified, don't do local reference\n-            if (url != null && url.length() > 0) {\n-                isJvmRefer = false;\n-            } else {\n-                // by default, reference local service if there is\n-                isJvmRefer = InjvmProtocol.getInjvmProtocol().isInjvmRefer(tmpUrl);\n-            }\n-        } else {\n-            isJvmRefer = isInjvm();\n-        }\n-        return isJvmRefer;\n-    }\n-\n-    /**\n-     * Dispatch an {@link Event event}\n-     *\n-     * @param event an {@link Event event}\n-     * @since 2.7.5\n-     */\n-    protected void dispatch(Event event) {\n-        EventDispatcher.getDefaultExtension().dispatch(event);\n-    }\n-\n-    public DubboBootstrap getBootstrap() {\n-        return bootstrap;\n-    }\n-\n-    public void setBootstrap(DubboBootstrap bootstrap) {\n-        this.bootstrap = bootstrap;\n-    }\n-\n-    private void postProcessConfig() {\n-        List<ConfigPostProcessor> configPostProcessors = ExtensionLoader.getExtensionLoader(ConfigPostProcessor.class)\n-                .getActivateExtension(URL.valueOf(\"configPostProcessor://\"), (String[]) null);\n-        configPostProcessors.forEach(component -> component.postProcessReferConfig(this));\n-    }\n-\n-    // just for test\n-    Invoker<?> getInvoker() {\n-        return invoker;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.bytecode.Wrapper;\r\n+import org.apache.dubbo.common.constants.RegistryConstants;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+import org.apache.dubbo.config.event.ReferenceConfigDestroyedEvent;\r\n+import org.apache.dubbo.config.event.ReferenceConfigInitializedEvent;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.config.utils.ConfigValidationUtils;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.registry.client.metadata.MetadataUtils;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.directory.StaticDirectory;\r\n+import org.apache.dubbo.rpc.cluster.support.ClusterUtils;\r\n+import org.apache.dubbo.rpc.cluster.support.registry.ZoneAwareCluster;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.AsyncMethodInfo;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.ServiceDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+import org.apache.dubbo.rpc.protocol.injvm.InjvmProtocol;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR_CHAR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROXY_CLASS_REF;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\r\n+import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;\r\n+import static org.apache.dubbo.common.utils.StringUtils.splitToSet;\r\n+import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\r\n+import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+\r\n+/**\r\n+ * Please avoid using this class for any new application,\r\n+ * use {@link ReferenceConfigBase} instead.\r\n+ */\r\n+public class ReferenceConfig<T> extends ReferenceConfigBase<T> {\r\n+\r\n+    public static final Logger logger = LoggerFactory.getLogger(ReferenceConfig.class);\r\n+\r\n+    /**\r\n+     * The {@link Protocol} implementation with adaptive functionality,it will be different in different scenarios.\r\n+     * A particular {@link Protocol} implementation is determined by the protocol attribute in the {@link URL}.\r\n+     * For example:\r\n+     *\r\n+     * <li>when the url is registry://224.5.6.7:1234/org.apache.dubbo.registry.RegistryService?application=dubbo-sample,\r\n+     * then the protocol is <b>RegistryProtocol</b></li>\r\n+     *\r\n+     * <li>when the url is dubbo://224.5.6.7:1234/org.apache.dubbo.config.api.DemoService?application=dubbo-sample, then\r\n+     * the protocol is <b>DubboProtocol</b></li>\r\n+     * <p>\r\n+     * Actually\uff0cwhen the {@link ExtensionLoader} init the {@link Protocol} instants,it will automatically wraps two\r\n+     * layers, and eventually will get a <b>ProtocolFilterWrapper</b> or <b>ProtocolListenerWrapper</b>\r\n+     */\r\n+    private static final Protocol REF_PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\r\n+\r\n+    /**\r\n+     * The {@link Cluster}'s implementation with adaptive functionality, and actually it will get a {@link Cluster}'s\r\n+     * specific implementation who is wrapped with <b>MockClusterInvoker</b>\r\n+     */\r\n+    private static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();\r\n+\r\n+    /**\r\n+     * A {@link ProxyFactory} implementation that will generate a reference service's proxy,the JavassistProxyFactory is\r\n+     * its default implementation\r\n+     */\r\n+    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\r\n+\r\n+    /**\r\n+     * The interface proxy reference\r\n+     */\r\n+    private transient volatile T ref;\r\n+\r\n+    /**\r\n+     * The invoker of the reference service\r\n+     */\r\n+    private transient volatile Invoker<?> invoker;\r\n+\r\n+    /**\r\n+     * The flag whether the ReferenceConfig has been initialized\r\n+     */\r\n+    private transient volatile boolean initialized;\r\n+\r\n+    /**\r\n+     * whether this ReferenceConfig has been destroyed\r\n+     */\r\n+    private transient volatile boolean destroyed;\r\n+\r\n+    private final ServiceRepository repository;\r\n+\r\n+    private DubboBootstrap bootstrap;\r\n+\r\n+    /**\r\n+     * The service names that the Dubbo interface subscribed.\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    private String services;\r\n+\r\n+    public ReferenceConfig() {\r\n+        super();\r\n+        this.repository = ApplicationModel.getServiceRepository();\r\n+    }\r\n+\r\n+    public ReferenceConfig(Reference reference) {\r\n+        super(reference);\r\n+        this.repository = ApplicationModel.getServiceRepository();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get a string presenting the service names that the Dubbo interface subscribed.\r\n+     * If it is a multiple-values, the content will be a comma-delimited String.\r\n+     *\r\n+     * @return non-null\r\n+     * @see RegistryConstants#SUBSCRIBED_SERVICE_NAMES_KEY\r\n+     * @since 2.7.8\r\n+     */\r\n+    @Deprecated\r\n+    @Parameter(key = SUBSCRIBED_SERVICE_NAMES_KEY)\r\n+    public String getServices() {\r\n+        return services;\r\n+    }\r\n+\r\n+    /**\r\n+     * It's an alias method for {@link #getServices()}, but the more convenient.\r\n+     *\r\n+     * @return the String {@link List} presenting the Dubbo interface subscribed\r\n+     * @since 2.7.8\r\n+     */\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public Set<String> getSubscribedServices() {\r\n+        return splitToSet(getServices(), COMMA_SEPARATOR_CHAR);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the service names that the Dubbo interface subscribed.\r\n+     *\r\n+     * @param services If it is a multiple-values, the content will be a comma-delimited String.\r\n+     * @since 2.7.8\r\n+     */\r\n+    public void setServices(String services) {\r\n+        this.services = services;\r\n+    }\r\n+\r\n+    public synchronized T get() {\r\n+        if (destroyed) {\r\n+            throw new IllegalStateException(\"The invoker of ReferenceConfig(\" + url + \") has already destroyed!\");\r\n+        }\r\n+        if (ref == null) {\r\n+            init();\r\n+        }\r\n+        return ref;\r\n+    }\r\n+\r\n+    public synchronized void destroy() {\r\n+        if (ref == null) {\r\n+            return;\r\n+        }\r\n+        if (destroyed) {\r\n+            return;\r\n+        }\r\n+        destroyed = true;\r\n+        try {\r\n+            invoker.destroy();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Unexpected error occurred when destroy invoker of ReferenceConfig(\" + url + \").\", t);\r\n+        }\r\n+        invoker = null;\r\n+        ref = null;\r\n+\r\n+        // dispatch a ReferenceConfigDestroyedEvent since 2.7.4\r\n+        dispatch(new ReferenceConfigDestroyedEvent(this));\r\n+    }\r\n+\r\n+    public synchronized void init() {\r\n+        if (initialized) {\r\n+            return;\r\n+        }\r\n+\r\n+\r\n+        if (bootstrap == null) {\r\n+            bootstrap = DubboBootstrap.getInstance();\r\n+            bootstrap.initialize();\r\n+        }\r\n+\r\n+        checkAndUpdateSubConfigs();\r\n+\r\n+        checkStubAndLocal(interfaceClass);\r\n+        ConfigValidationUtils.checkMock(interfaceClass, this);\r\n+\r\n+        Map<String, String> map = new HashMap<String, String>();\r\n+        map.put(SIDE_KEY, CONSUMER_SIDE);\r\n+\r\n+        ReferenceConfigBase.appendRuntimeParameters(map);\r\n+        if (!ProtocolUtils.isGeneric(generic)) {\r\n+            String revision = Version.getVersion(interfaceClass, version);\r\n+            if (revision != null && revision.length() > 0) {\r\n+                map.put(REVISION_KEY, revision);\r\n+            }\r\n+\r\n+            String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();\r\n+            if (methods.length == 0) {\r\n+                logger.warn(\"No method found in service interface \" + interfaceClass.getName());\r\n+                map.put(METHODS_KEY, ANY_VALUE);\r\n+            } else {\r\n+                map.put(METHODS_KEY, StringUtils.join(new HashSet<String>(Arrays.asList(methods)), COMMA_SEPARATOR));\r\n+            }\r\n+        }\r\n+        map.put(INTERFACE_KEY, interfaceName);\r\n+        AbstractConfig.appendParameters(map, getMetrics());\r\n+        AbstractConfig.appendParameters(map, getApplication());\r\n+        AbstractConfig.appendParameters(map, getModule());\r\n+        // remove 'default.' prefix for configs from ConsumerConfig\r\n+        // appendParameters(map, consumer, Constants.DEFAULT_KEY);\r\n+        AbstractConfig.appendParameters(map, consumer);\r\n+        AbstractConfig.appendParameters(map, this);\r\n+        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();\r\n+        if (metadataReportConfig != null && metadataReportConfig.isValid()) {\r\n+            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);\r\n+        }\r\n+        Map<String, AsyncMethodInfo> attributes = null;\r\n+        if (CollectionUtils.isNotEmpty(getMethods())) {\r\n+            attributes = new HashMap<>();\r\n+            for (MethodConfig methodConfig : getMethods()) {\r\n+                AbstractConfig.appendParameters(map, methodConfig, methodConfig.getName());\r\n+                String retryKey = methodConfig.getName() + \".retry\";\r\n+                if (map.containsKey(retryKey)) {\r\n+                    String retryValue = map.remove(retryKey);\r\n+                    if (\"false\".equals(retryValue)) {\r\n+                        map.put(methodConfig.getName() + \".retries\", \"0\");\r\n+                    }\r\n+                }\r\n+                AsyncMethodInfo asyncMethodInfo = AbstractConfig.convertMethodConfig2AsyncInfo(methodConfig);\r\n+                if (asyncMethodInfo != null) {\r\n+//                    consumerModel.getMethodModel(methodConfig.getName()).addAttribute(ASYNC_KEY, asyncMethodInfo);\r\n+                    attributes.put(methodConfig.getName(), asyncMethodInfo);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        String hostToRegistry = ConfigUtils.getSystemProperty(DUBBO_IP_TO_REGISTRY);\r\n+        if (StringUtils.isEmpty(hostToRegistry)) {\r\n+            hostToRegistry = NetUtils.getLocalHost();\r\n+        } else if (isInvalidLocalHost(hostToRegistry)) {\r\n+            throw new IllegalArgumentException(\r\n+                    \"Specified invalid registry ip from property:\" + DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\r\n+        }\r\n+        map.put(REGISTER_IP_KEY, hostToRegistry);\r\n+\r\n+        serviceMetadata.getAttachments().putAll(map);\r\n+\r\n+        ref = createProxy(map);\r\n+\r\n+        serviceMetadata.setTarget(ref);\r\n+        serviceMetadata.addAttribute(PROXY_CLASS_REF, ref);\r\n+        ConsumerModel consumerModel = repository.lookupReferredService(serviceMetadata.getServiceKey());\r\n+        consumerModel.setProxyObject(ref);\r\n+        consumerModel.init(attributes);\r\n+\r\n+        initialized = true;\r\n+\r\n+        checkInvokerAvailable();\r\n+\r\n+        // dispatch a ReferenceConfigInitializedEvent since 2.7.4\r\n+        dispatch(new ReferenceConfigInitializedEvent(this, invoker));\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\", \"deprecation\"})\r\n+    private T createProxy(Map<String, String> map) {\r\n+        if (shouldJvmRefer(map)) {\r\n+            URL url = new URL(LOCAL_PROTOCOL, LOCALHOST_VALUE, 0, interfaceClass.getName()).addParameters(map);\r\n+            invoker = REF_PROTOCOL.refer(interfaceClass, url);\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Using injvm service \" + interfaceClass.getName());\r\n+            }\r\n+        } else {\r\n+            urls.clear();\r\n+            if (url != null && url.length() > 0) { // user specified URL, could be peer-to-peer address, or register center's address.\r\n+                String[] us = SEMICOLON_SPLIT_PATTERN.split(url);\r\n+                if (us != null && us.length > 0) {\r\n+                    for (String u : us) {\r\n+                        URL url = URL.valueOf(u);\r\n+                        if (StringUtils.isEmpty(url.getPath())) {\r\n+                            url = url.setPath(interfaceName);\r\n+                        }\r\n+                        if (UrlUtils.isRegistry(url)) {\r\n+                            urls.add(url.addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map)));\r\n+                        } else {\r\n+                            urls.add(ClusterUtils.mergeUrl(url, map));\r\n+                        }\r\n+                    }\r\n+                }\r\n+            } else { // assemble URL from register center's configuration\r\n+                // if protocols not injvm checkRegistry\r\n+                if (!LOCAL_PROTOCOL.equalsIgnoreCase(getProtocol())) {\r\n+                    checkRegistry();\r\n+                    List<URL> us = ConfigValidationUtils.loadRegistries(this, false);\r\n+                    if (CollectionUtils.isNotEmpty(us)) {\r\n+                        for (URL u : us) {\r\n+                            URL monitorUrl = ConfigValidationUtils.loadMonitor(this, u);\r\n+                            if (monitorUrl != null) {\r\n+                                map.put(MONITOR_KEY, URL.encode(monitorUrl.toFullString()));\r\n+                            }\r\n+                            urls.add(u.addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map)));\r\n+                        }\r\n+                    }\r\n+                    if (urls.isEmpty()) {\r\n+                        throw new IllegalStateException(\r\n+                                \"No such any registry to reference \" + interfaceName + \" on the consumer \" + NetUtils.getLocalHost() +\r\n+                                        \" use dubbo version \" + Version.getVersion() +\r\n+                                        \", please config <dubbo:registry address=\\\"...\\\" /> to your spring config.\");\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            if (urls.size() == 1) {\r\n+                invoker = REF_PROTOCOL.refer(interfaceClass, urls.get(0));\r\n+            } else {\r\n+                List<Invoker<?>> invokers = new ArrayList<Invoker<?>>();\r\n+                URL registryURL = null;\r\n+                for (URL url : urls) {\r\n+                    Invoker<?> referInvoker = REF_PROTOCOL.refer(interfaceClass, url);\r\n+                    if (shouldCheck()) {\r\n+                        if (referInvoker.isAvailable()) {\r\n+                            invokers.add(referInvoker);\r\n+                        } else {\r\n+                            referInvoker.destroy();\r\n+                        }\r\n+                    } else {\r\n+                        invokers.add(referInvoker);\r\n+                    }\r\n+\r\n+                    if (UrlUtils.isRegistry(url)) {\r\n+                        registryURL = url; // use last registry url\r\n+                    }\r\n+                }\r\n+\r\n+                if (shouldCheck() && invokers.size() == 0) {\r\n+                    throw new IllegalStateException(\"Failed to check the status of the service \"\r\n+                            + interfaceName\r\n+                            + \". No provider available for the service \"\r\n+                            + (group == null ? \"\" : group + \"/\")\r\n+                            + interfaceName +\r\n+                            (version == null ? \"\" : \":\" + version)\r\n+                            + \" from the multi registry cluster\"\r\n+                            + \" use dubbo version \" + Version.getVersion());\r\n+                }\r\n+\r\n+                if (registryURL != null) { // registry url is available\r\n+                    // for multi-subscription scenario, use 'zone-aware' policy by default\r\n+                    String cluster = registryURL.getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME);\r\n+                    // The invoker wrap sequence would be: ZoneAwareClusterInvoker(StaticDirectory) -> FailoverClusterInvoker(RegistryDirectory, routing happens here) -> Invoker\r\n+                    invoker = Cluster.getCluster(cluster, false).join(new StaticDirectory(registryURL, invokers));\r\n+                } else { // not a registry url, must be direct invoke.\r\n+                    String cluster = CollectionUtils.isNotEmpty(invokers)\r\n+                            ?\r\n+                            (invokers.get(0).getUrl() != null ? invokers.get(0).getUrl().getParameter(CLUSTER_KEY, ZoneAwareCluster.NAME) :\r\n+                                    Cluster.DEFAULT)\r\n+                            : Cluster.DEFAULT;\r\n+                    invoker = Cluster.getCluster(cluster).join(new StaticDirectory(invokers));\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Refer dubbo service \" + interfaceClass.getName() + \" from url \" + invoker.getUrl());\r\n+        }\r\n+\r\n+        URL consumerURL = new URL(CONSUMER_PROTOCOL, map.remove(REGISTER_IP_KEY), 0, map.get(INTERFACE_KEY), map);\r\n+        MetadataUtils.publishServiceDefinition(consumerURL);\r\n+\r\n+        // create service proxy\r\n+        return (T) PROXY_FACTORY.getProxy(invoker, ProtocolUtils.isGeneric(generic));\r\n+    }\r\n+\r\n+    private void checkInvokerAvailable() throws IllegalStateException {\r\n+        if (shouldCheck() && !invoker.isAvailable()) {\r\n+            invoker.destroy();\r\n+            throw new IllegalStateException(\"Failed to check the status of the service \"\r\n+                    + interfaceName\r\n+                    + \". No provider available for the service \"\r\n+                    + (group == null ? \"\" : group + \"/\")\r\n+                    + interfaceName +\r\n+                    (version == null ? \"\" : \":\" + version)\r\n+                    + \" from the url \"\r\n+                    + invoker.getUrl()\r\n+                    + \" to the consumer \"\r\n+                    + NetUtils.getLocalHost() + \" use dubbo version \" + Version.getVersion());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * This method should be called right after the creation of this class's instance, before any property in other config modules is used.\r\n+     * Check each config modules are created properly and override their properties if necessary.\r\n+     */\r\n+    public void checkAndUpdateSubConfigs() {\r\n+        if (StringUtils.isEmpty(interfaceName)) {\r\n+            throw new IllegalStateException(\"<dubbo:reference interface=\\\"\\\" /> interface not allow null!\");\r\n+        }\r\n+        completeCompoundConfigs(consumer);\r\n+        // get consumer's global configuration\r\n+        checkDefault();\r\n+\r\n+        // init some null configuration.\r\n+        List<ConfigInitializer> configInitializers = ExtensionLoader.getExtensionLoader(ConfigInitializer.class)\r\n+                .getActivateExtension(URL.valueOf(\"configInitializer://\"), (String[]) null);\r\n+        configInitializers.forEach(e -> e.initReferConfig(this));\r\n+\r\n+        this.refresh();\r\n+        if (getGeneric() == null && getConsumer() != null) {\r\n+            setGeneric(getConsumer().getGeneric());\r\n+        }\r\n+        if (ProtocolUtils.isGeneric(generic)) {\r\n+            interfaceClass = GenericService.class;\r\n+        } else {\r\n+            try {\r\n+                interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\r\n+                        .getContextClassLoader());\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+            checkInterfaceAndMethods(interfaceClass, getMethods());\r\n+        }\r\n+\r\n+        initServiceMetadata(consumer);\r\n+        serviceMetadata.setServiceType(getActualInterface());\r\n+        // TODO, uncomment this line once service key is unified\r\n+        serviceMetadata.setServiceKey(URL.buildKey(interfaceName, group, version));\r\n+\r\n+        ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+        ServiceDescriptor serviceDescriptor = repository.registerService(interfaceClass);\r\n+        repository.registerConsumer(\r\n+                serviceMetadata.getServiceKey(),\r\n+                serviceDescriptor,\r\n+                this,\r\n+                null,\r\n+                serviceMetadata);\r\n+\r\n+        resolveFile();\r\n+        ConfigValidationUtils.validateReferenceConfig(this);\r\n+        postProcessConfig();\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Figure out should refer the service in the same JVM from configurations. The default behavior is true\r\n+     * 1. if injvm is specified, then use it\r\n+     * 2. then if a url is specified, then assume it's a remote call\r\n+     * 3. otherwise, check scope parameter\r\n+     * 4. if scope is not specified but the target service is provided in the same JVM, then prefer to make the local\r\n+     * call, which is the default behavior\r\n+     */\r\n+    protected boolean shouldJvmRefer(Map<String, String> map) {\r\n+        URL tmpUrl = new URL(\"temp\", \"localhost\", 0, map);\r\n+        boolean isJvmRefer;\r\n+        if (isInjvm() == null) {\r\n+            // if a url is specified, don't do local reference\r\n+            if (url != null && url.length() > 0) {\r\n+                isJvmRefer = false;\r\n+            } else {\r\n+                // by default, reference local service if there is\r\n+                isJvmRefer = InjvmProtocol.getInjvmProtocol().isInjvmRefer(tmpUrl);\r\n+            }\r\n+        } else {\r\n+            isJvmRefer = isInjvm();\r\n+        }\r\n+        return isJvmRefer;\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch an {@link Event event}\r\n+     *\r\n+     * @param event an {@link Event event}\r\n+     * @since 2.7.5\r\n+     */\r\n+    protected void dispatch(Event event) {\r\n+        EventDispatcher.getDefaultExtension().dispatch(event);\r\n+    }\r\n+\r\n+    public DubboBootstrap getBootstrap() {\r\n+        return bootstrap;\r\n+    }\r\n+\r\n+    public void setBootstrap(DubboBootstrap bootstrap) {\r\n+        this.bootstrap = bootstrap;\r\n+    }\r\n+\r\n+    private void postProcessConfig() {\r\n+        List<ConfigPostProcessor> configPostProcessors = ExtensionLoader.getExtensionLoader(ConfigPostProcessor.class)\r\n+                .getActivateExtension(URL.valueOf(\"configPostProcessor://\"), (String[]) null);\r\n+        configPostProcessors.forEach(component -> component.postProcessReferConfig(this));\r\n+    }\r\n+\r\n+    // just for test\r\n+    Invoker<?> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ReferenceConfigBase.java", "source2": "org/apache/dubbo/config/ReferenceConfigBase.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,264 +1,264 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ServiceMetadata;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.io.IOException;\n-import java.util.Properties;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-\n-/**\n- * ReferenceConfig\n- *\n- * @export\n- */\n-public abstract class ReferenceConfigBase<T> extends AbstractReferenceConfig {\n-\n-    private static final long serialVersionUID = -5864351140409987595L;\n-\n-    /**\n-     * The interface class of the reference service\n-     */\n-    protected Class<?> interfaceClass;\n-\n-    /**\n-     * client type\n-     */\n-    protected String client;\n-\n-    /**\n-     * The url for peer-to-peer invocation\n-     */\n-    protected String url;\n-\n-    /**\n-     * The consumer config (default)\n-     */\n-    protected ConsumerConfig consumer;\n-\n-    /**\n-     * Only the service provider of the specified protocol is invoked, and other protocols are ignored.\n-     */\n-    protected String protocol;\n-\n-\n-    public ReferenceConfigBase() {\n-        serviceMetadata = new ServiceMetadata();\n-        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\n-    }\n-\n-    public ReferenceConfigBase(Reference reference) {\n-        serviceMetadata = new ServiceMetadata();\n-        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\n-        appendAnnotation(Reference.class, reference);\n-        setMethods(MethodConfig.constructMethodConfig(reference.methods()));\n-    }\n-\n-    public boolean shouldCheck() {\n-        Boolean shouldCheck = isCheck();\n-        if (shouldCheck == null && getConsumer() != null) {\n-            shouldCheck = getConsumer().isCheck();\n-        }\n-        if (shouldCheck == null) {\n-            // default true\n-            shouldCheck = true;\n-        }\n-        return shouldCheck;\n-    }\n-\n-    public boolean shouldInit() {\n-        Boolean shouldInit = isInit();\n-        if (shouldInit == null && getConsumer() != null) {\n-            shouldInit = getConsumer().isInit();\n-        }\n-        if (shouldInit == null) {\n-            // default is true, spring will still init lazily by setting init's default value to false,\n-            // the def default setting happens in {@link ReferenceBean#afterPropertiesSet}.\n-            return true;\n-        }\n-        return shouldInit;\n-    }\n-\n-    public void checkDefault() throws IllegalStateException {\n-        if (consumer == null) {\n-            consumer = ApplicationModel.getConfigManager()\n-                    .getDefaultConsumer()\n-                    .orElse(new ConsumerConfig());\n-        }\n-    }\n-\n-    public Class<?> getActualInterface() {\n-        Class actualInterface = interfaceClass;\n-        if (interfaceClass == GenericService.class) {\n-            try {\n-                actualInterface = Class.forName(interfaceName);\n-            } catch (ClassNotFoundException e) {\n-                // ignore\n-            }\n-        }\n-        return actualInterface;\n-    }\n-\n-    public Class<?> getInterfaceClass() {\n-        if (interfaceClass != null) {\n-            return interfaceClass;\n-        }\n-        if (ProtocolUtils.isGeneric(getGeneric())\n-                || (getConsumer() != null && ProtocolUtils.isGeneric(getConsumer().getGeneric()))) {\n-            return GenericService.class;\n-        }\n-        try {\n-            if (interfaceName != null && interfaceName.length() > 0) {\n-                interfaceClass = Class.forName(interfaceName, true, ClassUtils.getClassLoader());\n-            }\n-        } catch (ClassNotFoundException t) {\n-            throw new IllegalStateException(t.getMessage(), t);\n-        }\n-\n-        return interfaceClass;\n-    }\n-\n-    /**\n-     * @param interfaceClass\n-     * @see #setInterface(Class)\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public void setInterfaceClass(Class<?> interfaceClass) {\n-        setInterface(interfaceClass);\n-    }\n-\n-    public void setInterface(Class<?> interfaceClass) {\n-        if (interfaceClass != null && !interfaceClass.isInterface()) {\n-            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\n-        }\n-        this.interfaceClass = interfaceClass;\n-        setInterface(interfaceClass == null ? null : interfaceClass.getName());\n-    }\n-\n-    public String getClient() {\n-        return client;\n-    }\n-\n-    public void setClient(String client) {\n-        this.client = client;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getUrl() {\n-        return url;\n-    }\n-\n-    public void setUrl(String url) {\n-        this.url = url;\n-    }\n-\n-    public ConsumerConfig getConsumer() {\n-        return consumer;\n-    }\n-\n-    public void setConsumer(ConsumerConfig consumer) {\n-        this.consumer = consumer;\n-    }\n-\n-    public String getProtocol() {\n-        return protocol;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    public ServiceMetadata getServiceMetadata() {\n-        return serviceMetadata;\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public String getPrefix() {\n-        return DUBBO + \".reference.\" + interfaceName;\n-    }\n-\n-    public void resolveFile() {\n-        String resolve = System.getProperty(interfaceName);\n-        String resolveFile = null;\n-        if (StringUtils.isEmpty(resolve)) {\n-            resolveFile = System.getProperty(\"dubbo.resolve.file\");\n-            if (StringUtils.isEmpty(resolveFile)) {\n-                File userResolveFile = new File(new File(System.getProperty(\"user.home\")), \"dubbo-resolve.properties\");\n-                if (userResolveFile.exists()) {\n-                    resolveFile = userResolveFile.getAbsolutePath();\n-                }\n-            }\n-            if (resolveFile != null && resolveFile.length() > 0) {\n-                Properties properties = new Properties();\n-                try (FileInputStream fis = new FileInputStream(new File(resolveFile))) {\n-                    properties.load(fis);\n-                } catch (IOException e) {\n-                    throw new IllegalStateException(\"Failed to load \" + resolveFile + \", cause: \" + e.getMessage(), e);\n-                }\n-\n-                resolve = properties.getProperty(interfaceName);\n-            }\n-        }\n-        if (resolve != null && resolve.length() > 0) {\n-            url = resolve;\n-            if (logger.isWarnEnabled()) {\n-                if (resolveFile != null) {\n-                    logger.warn(\"Using default dubbo resolve file \" + resolveFile + \" replace \" + interfaceName + \"\" + resolve + \" to p2p invoke remote service.\");\n-                } else {\n-                    logger.warn(\"Using -D\" + interfaceName + \"=\" + resolve + \" to p2p invoke remote service.\");\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    protected void computeValidRegistryIds() {\n-        if (consumer != null) {\n-            if (notHasSelfRegistryProperty()) {\n-                setRegistries(consumer.getRegistries());\n-                setRegistryIds(consumer.getRegistryIds());\n-            }\n-        }\n-\n-        super.computeValidRegistryIds();\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getUniqueServiceName() {\n-        return URL.buildKey(interfaceName, getGroup(), getVersion());\n-    }\n-\n-    public abstract T get();\n-\n-    public abstract void destroy();\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ServiceMetadata;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.io.IOException;\r\n+import java.util.Properties;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+\r\n+/**\r\n+ * ReferenceConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class ReferenceConfigBase<T> extends AbstractReferenceConfig {\r\n+\r\n+    private static final long serialVersionUID = -5864351140409987595L;\r\n+\r\n+    /**\r\n+     * The interface class of the reference service\r\n+     */\r\n+    protected Class<?> interfaceClass;\r\n+\r\n+    /**\r\n+     * client type\r\n+     */\r\n+    protected String client;\r\n+\r\n+    /**\r\n+     * The url for peer-to-peer invocation\r\n+     */\r\n+    protected String url;\r\n+\r\n+    /**\r\n+     * The consumer config (default)\r\n+     */\r\n+    protected ConsumerConfig consumer;\r\n+\r\n+    /**\r\n+     * Only the service provider of the specified protocol is invoked, and other protocols are ignored.\r\n+     */\r\n+    protected String protocol;\r\n+\r\n+\r\n+    public ReferenceConfigBase() {\r\n+        serviceMetadata = new ServiceMetadata();\r\n+        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\r\n+    }\r\n+\r\n+    public ReferenceConfigBase(Reference reference) {\r\n+        serviceMetadata = new ServiceMetadata();\r\n+        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\r\n+        appendAnnotation(Reference.class, reference);\r\n+        setMethods(MethodConfig.constructMethodConfig(reference.methods()));\r\n+    }\r\n+\r\n+    public boolean shouldCheck() {\r\n+        Boolean shouldCheck = isCheck();\r\n+        if (shouldCheck == null && getConsumer() != null) {\r\n+            shouldCheck = getConsumer().isCheck();\r\n+        }\r\n+        if (shouldCheck == null) {\r\n+            // default true\r\n+            shouldCheck = true;\r\n+        }\r\n+        return shouldCheck;\r\n+    }\r\n+\r\n+    public boolean shouldInit() {\r\n+        Boolean shouldInit = isInit();\r\n+        if (shouldInit == null && getConsumer() != null) {\r\n+            shouldInit = getConsumer().isInit();\r\n+        }\r\n+        if (shouldInit == null) {\r\n+            // default is true, spring will still init lazily by setting init's default value to false,\r\n+            // the def default setting happens in {@link ReferenceBean#afterPropertiesSet}.\r\n+            return true;\r\n+        }\r\n+        return shouldInit;\r\n+    }\r\n+\r\n+    public void checkDefault() throws IllegalStateException {\r\n+        if (consumer == null) {\r\n+            consumer = ApplicationModel.getConfigManager()\r\n+                    .getDefaultConsumer()\r\n+                    .orElse(new ConsumerConfig());\r\n+        }\r\n+    }\r\n+\r\n+    public Class<?> getActualInterface() {\r\n+        Class actualInterface = interfaceClass;\r\n+        if (interfaceClass == GenericService.class) {\r\n+            try {\r\n+                actualInterface = Class.forName(interfaceName);\r\n+            } catch (ClassNotFoundException e) {\r\n+                // ignore\r\n+            }\r\n+        }\r\n+        return actualInterface;\r\n+    }\r\n+\r\n+    public Class<?> getInterfaceClass() {\r\n+        if (interfaceClass != null) {\r\n+            return interfaceClass;\r\n+        }\r\n+        if (ProtocolUtils.isGeneric(getGeneric())\r\n+                || (getConsumer() != null && ProtocolUtils.isGeneric(getConsumer().getGeneric()))) {\r\n+            return GenericService.class;\r\n+        }\r\n+        try {\r\n+            if (interfaceName != null && interfaceName.length() > 0) {\r\n+                interfaceClass = Class.forName(interfaceName, true, ClassUtils.getClassLoader());\r\n+            }\r\n+        } catch (ClassNotFoundException t) {\r\n+            throw new IllegalStateException(t.getMessage(), t);\r\n+        }\r\n+\r\n+        return interfaceClass;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param interfaceClass\r\n+     * @see #setInterface(Class)\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public void setInterfaceClass(Class<?> interfaceClass) {\r\n+        setInterface(interfaceClass);\r\n+    }\r\n+\r\n+    public void setInterface(Class<?> interfaceClass) {\r\n+        if (interfaceClass != null && !interfaceClass.isInterface()) {\r\n+            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\r\n+        }\r\n+        this.interfaceClass = interfaceClass;\r\n+        setInterface(interfaceClass == null ? null : interfaceClass.getName());\r\n+    }\r\n+\r\n+    public String getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    public void setClient(String client) {\r\n+        this.client = client;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public void setUrl(String url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public ConsumerConfig getConsumer() {\r\n+        return consumer;\r\n+    }\r\n+\r\n+    public void setConsumer(ConsumerConfig consumer) {\r\n+        this.consumer = consumer;\r\n+    }\r\n+\r\n+    public String getProtocol() {\r\n+        return protocol;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    public ServiceMetadata getServiceMetadata() {\r\n+        return serviceMetadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public String getPrefix() {\r\n+        return DUBBO + \".reference.\" + interfaceName;\r\n+    }\r\n+\r\n+    public void resolveFile() {\r\n+        String resolve = System.getProperty(interfaceName);\r\n+        String resolveFile = null;\r\n+        if (StringUtils.isEmpty(resolve)) {\r\n+            resolveFile = System.getProperty(\"dubbo.resolve.file\");\r\n+            if (StringUtils.isEmpty(resolveFile)) {\r\n+                File userResolveFile = new File(new File(System.getProperty(\"user.home\")), \"dubbo-resolve.properties\");\r\n+                if (userResolveFile.exists()) {\r\n+                    resolveFile = userResolveFile.getAbsolutePath();\r\n+                }\r\n+            }\r\n+            if (resolveFile != null && resolveFile.length() > 0) {\r\n+                Properties properties = new Properties();\r\n+                try (FileInputStream fis = new FileInputStream(new File(resolveFile))) {\r\n+                    properties.load(fis);\r\n+                } catch (IOException e) {\r\n+                    throw new IllegalStateException(\"Failed to load \" + resolveFile + \", cause: \" + e.getMessage(), e);\r\n+                }\r\n+\r\n+                resolve = properties.getProperty(interfaceName);\r\n+            }\r\n+        }\r\n+        if (resolve != null && resolve.length() > 0) {\r\n+            url = resolve;\r\n+            if (logger.isWarnEnabled()) {\r\n+                if (resolveFile != null) {\r\n+                    logger.warn(\"Using default dubbo resolve file \" + resolveFile + \" replace \" + interfaceName + \"\" + resolve + \" to p2p invoke remote service.\");\r\n+                } else {\r\n+                    logger.warn(\"Using -D\" + interfaceName + \"=\" + resolve + \" to p2p invoke remote service.\");\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void computeValidRegistryIds() {\r\n+        if (consumer != null) {\r\n+            if (notHasSelfRegistryProperty()) {\r\n+                setRegistries(consumer.getRegistries());\r\n+                setRegistryIds(consumer.getRegistryIds());\r\n+            }\r\n+        }\r\n+\r\n+        super.computeValidRegistryIds();\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getUniqueServiceName() {\r\n+        return URL.buildKey(interfaceName, getGroup(), getVersion());\r\n+    }\r\n+\r\n+    public abstract T get();\r\n+\r\n+    public abstract void destroy();\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/RegistryConfig.java", "source2": "org/apache/dubbo/config/RegistryConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,533 +1,533 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-import static org.apache.dubbo.common.utils.PojoUtils.updatePropertyIfAbsent;\n-import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;\n-\n-/**\n- * RegistryConfig\n- *\n- * @export\n- */\n-public class RegistryConfig extends AbstractConfig {\n-\n-    public static final String NO_AVAILABLE = \"N/A\";\n-    private static final long serialVersionUID = 5508512956753757169L;\n-\n-    /**\n-     * Register center address\n-     */\n-    private String address;\n-\n-    /**\n-     * Username to login register center\n-     */\n-    private String username;\n-\n-    /**\n-     * Password to login register center\n-     */\n-    private String password;\n-\n-    /**\n-     * Default port for register center\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Protocol for register center\n-     */\n-    private String protocol;\n-\n-    /**\n-     * Network transmission type\n-     */\n-    private String transporter;\n-\n-    private String server;\n-\n-    private String client;\n-\n-    /**\n-     * Affects how traffic distributes among registries, useful when subscribing multiple registries, available options:\n-     * 1. zone-aware, a certain type of traffic always goes to one Registry according to where the traffic is originated.\n-     */\n-    private String cluster;\n-\n-    /**\n-     * The region where the registry belongs, usually used to isolate traffics\n-     */\n-    private String zone;\n-\n-    /**\n-     * The group the services registry in\n-     */\n-    private String group;\n-\n-    private String version;\n-\n-    /**\n-     * Request timeout in milliseconds for register center\n-     */\n-    private Integer timeout;\n-\n-    /**\n-     * Session timeout in milliseconds for register center\n-     */\n-    private Integer session;\n-\n-    /**\n-     * File for saving register center dynamic list\n-     */\n-    private String file;\n-\n-    /**\n-     * Wait time before stop\n-     */\n-    private Integer wait;\n-\n-    /**\n-     * Whether to check if register center is available when boot up\n-     */\n-    private Boolean check;\n-\n-    /**\n-     * Whether to allow dynamic service to register on the register center\n-     */\n-    private Boolean dynamic;\n-\n-    /**\n-     * Whether to export service on the register center\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * Whether allow to subscribe service on the register center\n-     */\n-    private Boolean subscribe;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * Whether it's default\n-     */\n-    private Boolean isDefault;\n-\n-    /**\n-     * Simple the registry. both useful for provider and consumer\n-     *\n-     * @since 2.7.0\n-     */\n-    private Boolean simplified;\n-    /**\n-     * After simplify the registry, should add some parameter individually. just for provider.\n-     * <p>\n-     * such as: extra-keys = A,b,c,d\n-     *\n-     * @since 2.7.0\n-     */\n-    private String extraKeys;\n-\n-    /**\n-     * the address work as config center or not\n-     */\n-    private Boolean useAsConfigCenter;\n-\n-    /**\n-     * the address work as remote metadata center or not\n-     */\n-    private Boolean useAsMetadataCenter;\n-\n-    /**\n-     * list of rpc protocols accepted by this registry, for example, \"dubbo,rest\"\n-     */\n-    private String accepts;\n-\n-    /**\n-     * Always use this registry first if set to true, useful when subscribe to multiple registries\n-     */\n-    private Boolean preferred;\n-\n-    /**\n-     * Affects traffic distribution among registries, useful when subscribe to multiple registries\n-     * Take effect only when no preferred registry is specified.\n-     */\n-    private Integer weight;\n-\n-    public RegistryConfig() {\n-    }\n-\n-    public RegistryConfig(String address) {\n-        setAddress(address);\n-    }\n-\n-    public RegistryConfig(String address, String protocol) {\n-        setAddress(address);\n-        setProtocol(protocol);\n-    }\n-\n-    @Override\n-    public String getId() {\n-        return super.getId();\n-    }\n-\n-    public String getProtocol() {\n-        return protocol;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-//        this.updateIdIfAbsent(protocol);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    public void setAddress(String address) {\n-        this.address = address;\n-        if (address != null) {\n-            try {\n-                URL url = URL.valueOf(address);\n-\n-                // Refactor since 2.7.8\n-                updatePropertyIfAbsent(this::getUsername, this::setUsername, url.getUsername());\n-                updatePropertyIfAbsent(this::getPassword, this::setPassword, url.getPassword());\n-                updatePropertyIfAbsent(this::getProtocol, this::setProtocol, url.getProtocol());\n-                updatePropertyIfAbsent(this::getPort, this::setPort, url.getPort());\n-\n-//                setUsername(url.getUsername());\n-//                setPassword(url.getPassword());\n-//                updateIdIfAbsent(url.getProtocol());\n-//                updateProtocolIfAbsent(url.getProtocol());\n-//                updatePortIfAbsent(url.getPort());\n-                Map<String, String> params = url.getParameters();\n-                if (CollectionUtils.isNotEmptyMap(params)) {\n-                    params.remove(BACKUP_KEY);\n-                }\n-                updateParameters(params);\n-            } catch (Exception ignored) {\n-            }\n-        }\n-    }\n-\n-    public Integer getPort() {\n-        return port;\n-    }\n-\n-    public void setPort(Integer port) {\n-        this.port = port;\n-    }\n-\n-    public String getUsername() {\n-        return username;\n-    }\n-\n-    public void setUsername(String username) {\n-        this.username = username;\n-    }\n-\n-    public String getPassword() {\n-        return password;\n-    }\n-\n-    public void setPassword(String password) {\n-        this.password = password;\n-    }\n-\n-    /**\n-     * @return wait\n-     * @see org.apache.dubbo.config.ProviderConfig#getWait()\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public Integer getWait() {\n-        return wait;\n-    }\n-\n-    /**\n-     * @param wait\n-     * @see org.apache.dubbo.config.ProviderConfig#setWait(Integer)\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public void setWait(Integer wait) {\n-        this.wait = wait;\n-        if (wait != null && wait > 0) {\n-            System.setProperty(SHUTDOWN_WAIT_KEY, String.valueOf(wait));\n-        }\n-    }\n-\n-    public Boolean isCheck() {\n-        return check;\n-    }\n-\n-    public void setCheck(Boolean check) {\n-        this.check = check;\n-    }\n-\n-    public String getFile() {\n-        return file;\n-    }\n-\n-    public void setFile(String file) {\n-        this.file = file;\n-    }\n-\n-    /**\n-     * @return transport\n-     * @see #getTransporter()\n-     * @deprecated\n-     */\n-    @Deprecated\n-    @Parameter(excluded = true)\n-    public String getTransport() {\n-        return getTransporter();\n-    }\n-\n-    /**\n-     * @param transport\n-     * @see #setTransporter(String)\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public void setTransport(String transport) {\n-        setTransporter(transport);\n-    }\n-\n-    public String getTransporter() {\n-        return transporter;\n-    }\n-\n-    public void setTransporter(String transporter) {\n-        /*if(transporter != null && transporter.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(transporter)){\n-            throw new IllegalStateException(\"No such transporter type : \" + transporter);\n-        }*/\n-        this.transporter = transporter;\n-    }\n-\n-    public String getServer() {\n-        return server;\n-    }\n-\n-    public void setServer(String server) {\n-        /*if(server != null && server.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(server)){\n-            throw new IllegalStateException(\"No such server type : \" + server);\n-        }*/\n-        this.server = server;\n-    }\n-\n-    public String getClient() {\n-        return client;\n-    }\n-\n-    public void setClient(String client) {\n-        /*if(client != null && client.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(client)){\n-            throw new IllegalStateException(\"No such client type : \" + client);\n-        }*/\n-        this.client = client;\n-    }\n-\n-    public Integer getTimeout() {\n-        return timeout;\n-    }\n-\n-    public void setTimeout(Integer timeout) {\n-        this.timeout = timeout;\n-    }\n-\n-    public Integer getSession() {\n-        return session;\n-    }\n-\n-    public void setSession(Integer session) {\n-        this.session = session;\n-    }\n-\n-    public Boolean isDynamic() {\n-        return dynamic;\n-    }\n-\n-    public void setDynamic(Boolean dynamic) {\n-        this.dynamic = dynamic;\n-    }\n-\n-    public Boolean isRegister() {\n-        return register;\n-    }\n-\n-    public void setRegister(Boolean register) {\n-        this.register = register;\n-    }\n-\n-    public Boolean isSubscribe() {\n-        return subscribe;\n-    }\n-\n-    public void setSubscribe(Boolean subscribe) {\n-        this.subscribe = subscribe;\n-    }\n-\n-    public String getCluster() {\n-        return cluster;\n-    }\n-\n-    public void setCluster(String cluster) {\n-        this.cluster = cluster;\n-    }\n-\n-    public String getZone() {\n-        return zone;\n-    }\n-\n-    public void setZone(String zone) {\n-        this.zone = zone;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    public void updateParameters(Map<String, String> parameters) {\n-        if (CollectionUtils.isEmptyMap(parameters)) {\n-            return;\n-        }\n-        if (this.parameters == null) {\n-            this.parameters = parameters;\n-        } else {\n-            this.parameters.putAll(parameters);\n-        }\n-    }\n-\n-    public Boolean isDefault() {\n-        return isDefault;\n-    }\n-\n-    public void setDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-    }\n-\n-    public Boolean getSimplified() {\n-        return simplified;\n-    }\n-\n-    public void setSimplified(Boolean simplified) {\n-        this.simplified = simplified;\n-    }\n-\n-    @Parameter(key = EXTRA_KEYS_KEY)\n-    public String getExtraKeys() {\n-        return extraKeys;\n-    }\n-\n-    public void setExtraKeys(String extraKeys) {\n-        this.extraKeys = extraKeys;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Boolean getUseAsConfigCenter() {\n-        return useAsConfigCenter;\n-    }\n-\n-    public void setUseAsConfigCenter(Boolean useAsConfigCenter) {\n-        this.useAsConfigCenter = useAsConfigCenter;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public Boolean getUseAsMetadataCenter() {\n-        return useAsMetadataCenter;\n-    }\n-\n-    public void setUseAsMetadataCenter(Boolean useAsMetadataCenter) {\n-        this.useAsMetadataCenter = useAsMetadataCenter;\n-    }\n-\n-    public String getAccepts() {\n-        return accepts;\n-    }\n-\n-    public void setAccepts(String accepts) {\n-        this.accepts = accepts;\n-    }\n-\n-    public Boolean getPreferred() {\n-        return preferred;\n-    }\n-\n-    public void setPreferred(Boolean preferred) {\n-        this.preferred = preferred;\n-    }\n-\n-    public Integer getWeight() {\n-        return weight;\n-    }\n-\n-    public void setWeight(Integer weight) {\n-        this.weight = weight;\n-    }\n-\n-    @Override\n-    public void refresh() {\n-        super.refresh();\n-        if (StringUtils.isNotEmpty(this.getId())) {\n-            this.setPrefix(REGISTRIES_SUFFIX);\n-            super.refresh();\n-        }\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isValid() {\n-        // empty protocol will default to 'dubbo'\n-        return !StringUtils.isEmpty(address);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+import static org.apache.dubbo.common.utils.PojoUtils.updatePropertyIfAbsent;\r\n+import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;\r\n+\r\n+/**\r\n+ * RegistryConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class RegistryConfig extends AbstractConfig {\r\n+\r\n+    public static final String NO_AVAILABLE = \"N/A\";\r\n+    private static final long serialVersionUID = 5508512956753757169L;\r\n+\r\n+    /**\r\n+     * Register center address\r\n+     */\r\n+    private String address;\r\n+\r\n+    /**\r\n+     * Username to login register center\r\n+     */\r\n+    private String username;\r\n+\r\n+    /**\r\n+     * Password to login register center\r\n+     */\r\n+    private String password;\r\n+\r\n+    /**\r\n+     * Default port for register center\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Protocol for register center\r\n+     */\r\n+    private String protocol;\r\n+\r\n+    /**\r\n+     * Network transmission type\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    private String server;\r\n+\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Affects how traffic distributes among registries, useful when subscribing multiple registries, available options:\r\n+     * 1. zone-aware, a certain type of traffic always goes to one Registry according to where the traffic is originated.\r\n+     */\r\n+    private String cluster;\r\n+\r\n+    /**\r\n+     * The region where the registry belongs, usually used to isolate traffics\r\n+     */\r\n+    private String zone;\r\n+\r\n+    /**\r\n+     * The group the services registry in\r\n+     */\r\n+    private String group;\r\n+\r\n+    private String version;\r\n+\r\n+    /**\r\n+     * Request timeout in milliseconds for register center\r\n+     */\r\n+    private Integer timeout;\r\n+\r\n+    /**\r\n+     * Session timeout in milliseconds for register center\r\n+     */\r\n+    private Integer session;\r\n+\r\n+    /**\r\n+     * File for saving register center dynamic list\r\n+     */\r\n+    private String file;\r\n+\r\n+    /**\r\n+     * Wait time before stop\r\n+     */\r\n+    private Integer wait;\r\n+\r\n+    /**\r\n+     * Whether to check if register center is available when boot up\r\n+     */\r\n+    private Boolean check;\r\n+\r\n+    /**\r\n+     * Whether to allow dynamic service to register on the register center\r\n+     */\r\n+    private Boolean dynamic;\r\n+\r\n+    /**\r\n+     * Whether to export service on the register center\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * Whether allow to subscribe service on the register center\r\n+     */\r\n+    private Boolean subscribe;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * Whether it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    /**\r\n+     * Simple the registry. both useful for provider and consumer\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    private Boolean simplified;\r\n+    /**\r\n+     * After simplify the registry, should add some parameter individually. just for provider.\r\n+     * <p>\r\n+     * such as: extra-keys = A,b,c,d\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    private String extraKeys;\r\n+\r\n+    /**\r\n+     * the address work as config center or not\r\n+     */\r\n+    private Boolean useAsConfigCenter;\r\n+\r\n+    /**\r\n+     * the address work as remote metadata center or not\r\n+     */\r\n+    private Boolean useAsMetadataCenter;\r\n+\r\n+    /**\r\n+     * list of rpc protocols accepted by this registry, for example, \"dubbo,rest\"\r\n+     */\r\n+    private String accepts;\r\n+\r\n+    /**\r\n+     * Always use this registry first if set to true, useful when subscribe to multiple registries\r\n+     */\r\n+    private Boolean preferred;\r\n+\r\n+    /**\r\n+     * Affects traffic distribution among registries, useful when subscribe to multiple registries\r\n+     * Take effect only when no preferred registry is specified.\r\n+     */\r\n+    private Integer weight;\r\n+\r\n+    public RegistryConfig() {\r\n+    }\r\n+\r\n+    public RegistryConfig(String address) {\r\n+        setAddress(address);\r\n+    }\r\n+\r\n+    public RegistryConfig(String address, String protocol) {\r\n+        setAddress(address);\r\n+        setProtocol(protocol);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getId() {\r\n+        return super.getId();\r\n+    }\r\n+\r\n+    public String getProtocol() {\r\n+        return protocol;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+//        this.updateIdIfAbsent(protocol);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+        if (address != null) {\r\n+            try {\r\n+                URL url = URL.valueOf(address);\r\n+\r\n+                // Refactor since 2.7.8\r\n+                updatePropertyIfAbsent(this::getUsername, this::setUsername, url.getUsername());\r\n+                updatePropertyIfAbsent(this::getPassword, this::setPassword, url.getPassword());\r\n+                updatePropertyIfAbsent(this::getProtocol, this::setProtocol, url.getProtocol());\r\n+                updatePropertyIfAbsent(this::getPort, this::setPort, url.getPort());\r\n+\r\n+//                setUsername(url.getUsername());\r\n+//                setPassword(url.getPassword());\r\n+//                updateIdIfAbsent(url.getProtocol());\r\n+//                updateProtocolIfAbsent(url.getProtocol());\r\n+//                updatePortIfAbsent(url.getPort());\r\n+                Map<String, String> params = url.getParameters();\r\n+                if (CollectionUtils.isNotEmptyMap(params)) {\r\n+                    params.remove(BACKUP_KEY);\r\n+                }\r\n+                updateParameters(params);\r\n+            } catch (Exception ignored) {\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public Integer getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    public void setPort(Integer port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    public String getUsername() {\r\n+        return username;\r\n+    }\r\n+\r\n+    public void setUsername(String username) {\r\n+        this.username = username;\r\n+    }\r\n+\r\n+    public String getPassword() {\r\n+        return password;\r\n+    }\r\n+\r\n+    public void setPassword(String password) {\r\n+        this.password = password;\r\n+    }\r\n+\r\n+    /**\r\n+     * @return wait\r\n+     * @see org.apache.dubbo.config.ProviderConfig#getWait()\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public Integer getWait() {\r\n+        return wait;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param wait\r\n+     * @see org.apache.dubbo.config.ProviderConfig#setWait(Integer)\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public void setWait(Integer wait) {\r\n+        this.wait = wait;\r\n+        if (wait != null && wait > 0) {\r\n+            System.setProperty(SHUTDOWN_WAIT_KEY, String.valueOf(wait));\r\n+        }\r\n+    }\r\n+\r\n+    public Boolean isCheck() {\r\n+        return check;\r\n+    }\r\n+\r\n+    public void setCheck(Boolean check) {\r\n+        this.check = check;\r\n+    }\r\n+\r\n+    public String getFile() {\r\n+        return file;\r\n+    }\r\n+\r\n+    public void setFile(String file) {\r\n+        this.file = file;\r\n+    }\r\n+\r\n+    /**\r\n+     * @return transport\r\n+     * @see #getTransporter()\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    @Parameter(excluded = true)\r\n+    public String getTransport() {\r\n+        return getTransporter();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param transport\r\n+     * @see #setTransporter(String)\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public void setTransport(String transport) {\r\n+        setTransporter(transport);\r\n+    }\r\n+\r\n+    public String getTransporter() {\r\n+        return transporter;\r\n+    }\r\n+\r\n+    public void setTransporter(String transporter) {\r\n+        /*if(transporter != null && transporter.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(transporter)){\r\n+            throw new IllegalStateException(\"No such transporter type : \" + transporter);\r\n+        }*/\r\n+        this.transporter = transporter;\r\n+    }\r\n+\r\n+    public String getServer() {\r\n+        return server;\r\n+    }\r\n+\r\n+    public void setServer(String server) {\r\n+        /*if(server != null && server.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(server)){\r\n+            throw new IllegalStateException(\"No such server type : \" + server);\r\n+        }*/\r\n+        this.server = server;\r\n+    }\r\n+\r\n+    public String getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    public void setClient(String client) {\r\n+        /*if(client != null && client.length() > 0 && ! ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(client)){\r\n+            throw new IllegalStateException(\"No such client type : \" + client);\r\n+        }*/\r\n+        this.client = client;\r\n+    }\r\n+\r\n+    public Integer getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public void setTimeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+    }\r\n+\r\n+    public Integer getSession() {\r\n+        return session;\r\n+    }\r\n+\r\n+    public void setSession(Integer session) {\r\n+        this.session = session;\r\n+    }\r\n+\r\n+    public Boolean isDynamic() {\r\n+        return dynamic;\r\n+    }\r\n+\r\n+    public void setDynamic(Boolean dynamic) {\r\n+        this.dynamic = dynamic;\r\n+    }\r\n+\r\n+    public Boolean isRegister() {\r\n+        return register;\r\n+    }\r\n+\r\n+    public void setRegister(Boolean register) {\r\n+        this.register = register;\r\n+    }\r\n+\r\n+    public Boolean isSubscribe() {\r\n+        return subscribe;\r\n+    }\r\n+\r\n+    public void setSubscribe(Boolean subscribe) {\r\n+        this.subscribe = subscribe;\r\n+    }\r\n+\r\n+    public String getCluster() {\r\n+        return cluster;\r\n+    }\r\n+\r\n+    public void setCluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+    }\r\n+\r\n+    public String getZone() {\r\n+        return zone;\r\n+    }\r\n+\r\n+    public void setZone(String zone) {\r\n+        this.zone = zone;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    public void updateParameters(Map<String, String> parameters) {\r\n+        if (CollectionUtils.isEmptyMap(parameters)) {\r\n+            return;\r\n+        }\r\n+        if (this.parameters == null) {\r\n+            this.parameters = parameters;\r\n+        } else {\r\n+            this.parameters.putAll(parameters);\r\n+        }\r\n+    }\r\n+\r\n+    public Boolean isDefault() {\r\n+        return isDefault;\r\n+    }\r\n+\r\n+    public void setDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+    }\r\n+\r\n+    public Boolean getSimplified() {\r\n+        return simplified;\r\n+    }\r\n+\r\n+    public void setSimplified(Boolean simplified) {\r\n+        this.simplified = simplified;\r\n+    }\r\n+\r\n+    @Parameter(key = EXTRA_KEYS_KEY)\r\n+    public String getExtraKeys() {\r\n+        return extraKeys;\r\n+    }\r\n+\r\n+    public void setExtraKeys(String extraKeys) {\r\n+        this.extraKeys = extraKeys;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Boolean getUseAsConfigCenter() {\r\n+        return useAsConfigCenter;\r\n+    }\r\n+\r\n+    public void setUseAsConfigCenter(Boolean useAsConfigCenter) {\r\n+        this.useAsConfigCenter = useAsConfigCenter;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public Boolean getUseAsMetadataCenter() {\r\n+        return useAsMetadataCenter;\r\n+    }\r\n+\r\n+    public void setUseAsMetadataCenter(Boolean useAsMetadataCenter) {\r\n+        this.useAsMetadataCenter = useAsMetadataCenter;\r\n+    }\r\n+\r\n+    public String getAccepts() {\r\n+        return accepts;\r\n+    }\r\n+\r\n+    public void setAccepts(String accepts) {\r\n+        this.accepts = accepts;\r\n+    }\r\n+\r\n+    public Boolean getPreferred() {\r\n+        return preferred;\r\n+    }\r\n+\r\n+    public void setPreferred(Boolean preferred) {\r\n+        this.preferred = preferred;\r\n+    }\r\n+\r\n+    public Integer getWeight() {\r\n+        return weight;\r\n+    }\r\n+\r\n+    public void setWeight(Integer weight) {\r\n+        this.weight = weight;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void refresh() {\r\n+        super.refresh();\r\n+        if (StringUtils.isNotEmpty(this.getId())) {\r\n+            this.setPrefix(REGISTRIES_SUFFIX);\r\n+            super.refresh();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isValid() {\r\n+        // empty protocol will default to 'dubbo'\r\n+        return !StringUtils.isEmpty(address);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ServiceConfig.java", "source2": "org/apache/dubbo/config/ServiceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,727 +1,727 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.bytecode.Wrapper;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-import org.apache.dubbo.config.event.ServiceConfigExportedEvent;\n-import org.apache.dubbo.config.event.ServiceConfigUnexportedEvent;\n-import org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.config.utils.ConfigValidationUtils;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.metadata.ServiceNameMapping;\n-import org.apache.dubbo.registry.client.metadata.MetadataUtils;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-import org.apache.dubbo.rpc.cluster.ConfiguratorFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ServiceDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.lang.reflect.Method;\n-import java.net.InetAddress;\n-import java.net.InetSocketAddress;\n-import java.net.Socket;\n-import java.net.SocketAddress;\n-import java.net.UnknownHostException;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.UUID;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_IP_TO_BIND;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.MAPPING_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.REGISTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;\n-import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort;\n-import static org.apache.dubbo.common.utils.NetUtils.getLocalHost;\n-import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;\n-import static org.apache.dubbo.common.utils.NetUtils.isInvalidPort;\n-import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\n-import static org.apache.dubbo.config.Constants.DUBBO_PORT_TO_BIND;\n-import static org.apache.dubbo.config.Constants.DUBBO_PORT_TO_REGISTRY;\n-import static org.apache.dubbo.config.Constants.MULTICAST;\n-import static org.apache.dubbo.config.Constants.SCOPE_NONE;\n-import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\n-import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\n-import static org.apache.dubbo.rpc.Constants.SCOPE_KEY;\n-import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL;\n-import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;\n-\n-public class ServiceConfig<T> extends ServiceConfigBase<T> {\n-\n-    public static final Logger logger = LoggerFactory.getLogger(ServiceConfig.class);\n-\n-    /**\n-     * A random port cache, the different protocols who has no port specified have different random port\n-     */\n-    private static final Map<String, Integer> RANDOM_PORT_MAP = new HashMap<String, Integer>();\n-\n-    /**\n-     * A delayed exposure service timer\n-     */\n-    private static final ScheduledExecutorService DELAY_EXPORT_EXECUTOR = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"DubboServiceDelayExporter\", true));\n-\n-    private static final Protocol PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\n-\n-    /**\n-     * A {@link ProxyFactory} implementation that will generate a exported service proxy,the JavassistProxyFactory is its\n-     * default implementation\n-     */\n-    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\n-\n-    /**\n-     * Whether the provider has been exported\n-     */\n-    private transient volatile boolean exported;\n-\n-    /**\n-     * The flag whether a service has unexported ,if the method unexported is invoked, the value is true\n-     */\n-    private transient volatile boolean unexported;\n-\n-    private DubboBootstrap bootstrap;\n-\n-    /**\n-     * The exported services\n-     */\n-    private final List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();\n-\n-    public ServiceConfig() {\n-    }\n-\n-    public ServiceConfig(Service service) {\n-        super(service);\n-    }\n-\n-    @Parameter(excluded = true)\n-    public boolean isExported() {\n-        return exported;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public boolean isUnexported() {\n-        return unexported;\n-    }\n-\n-    public void unexport() {\n-        if (!exported) {\n-            return;\n-        }\n-        if (unexported) {\n-            return;\n-        }\n-        if (!exporters.isEmpty()) {\n-            for (Exporter<?> exporter : exporters) {\n-                try {\n-                    exporter.unexport();\n-                } catch (Throwable t) {\n-                    logger.warn(\"Unexpected error occurred when unexport \" + exporter, t);\n-                }\n-            }\n-            exporters.clear();\n-        }\n-        unexported = true;\n-\n-        // dispatch a ServiceConfigUnExportedEvent since 2.7.4\n-        dispatch(new ServiceConfigUnexportedEvent(this));\n-    }\n-\n-    public synchronized void export() {\n-        if (bootstrap == null) {\n-            bootstrap = DubboBootstrap.getInstance();\n-            bootstrap.initialize();\n-        }\n-\n-        checkAndUpdateSubConfigs();\n-\n-        initServiceMetadata(provider);\n-        serviceMetadata.setServiceType(getInterfaceClass());\n-        serviceMetadata.setTarget(getRef());\n-        serviceMetadata.generateServiceKey();\n-\n-        if (!shouldExport()) {\n-            return;\n-        }\n-\n-        if (shouldDelay()) {\n-            DELAY_EXPORT_EXECUTOR.schedule(this::doExport, getDelay(), TimeUnit.MILLISECONDS);\n-        } else {\n-            doExport();\n-        }\n-\n-        exported();\n-    }\n-\n-    public void exported() {\n-        List<URL> exportedURLs = this.getExportedUrls();\n-        exportedURLs.forEach(url -> {\n-            Map<String, String> parameters = getApplication().getParameters();\n-            ServiceNameMapping.getExtension(parameters != null ? parameters.get(MAPPING_KEY) : null).map(url);\n-        });\n-        // dispatch a ServiceConfigExportedEvent since 2.7.4\n-        dispatch(new ServiceConfigExportedEvent(this));\n-    }\n-\n-    private void checkAndUpdateSubConfigs() {\n-        // Use default configs defined explicitly with global scope\n-        completeCompoundConfigs();\n-        checkDefault();\n-        checkProtocol();\n-        // init some null configuration.\n-        List<ConfigInitializer> configInitializers = ExtensionLoader.getExtensionLoader(ConfigInitializer.class)\n-                .getActivateExtension(URL.valueOf(\"configInitializer://\"), (String[]) null);\n-        configInitializers.forEach(e -> e.initServiceConfig(this));\n-\n-        // if protocol is not injvm checkRegistry\n-        if (!isOnlyInJvm()) {\n-            checkRegistry();\n-        }\n-        this.refresh();\n-\n-        if (StringUtils.isEmpty(interfaceName)) {\n-            throw new IllegalStateException(\"<dubbo:service interface=\\\"\\\" /> interface not allow null!\");\n-        }\n-\n-        if (ref instanceof GenericService) {\n-            interfaceClass = GenericService.class;\n-            if (StringUtils.isEmpty(generic)) {\n-                generic = Boolean.TRUE.toString();\n-            }\n-        } else {\n-            try {\n-                interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\n-                        .getContextClassLoader());\n-            } catch (ClassNotFoundException e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-            checkInterfaceAndMethods(interfaceClass, getMethods());\n-            checkRef();\n-            generic = Boolean.FALSE.toString();\n-        }\n-        if (local != null) {\n-            if (\"true\".equals(local)) {\n-                local = interfaceName + \"Local\";\n-            }\n-            Class<?> localClass;\n-            try {\n-                localClass = ClassUtils.forNameWithThreadContextClassLoader(local);\n-            } catch (ClassNotFoundException e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-            if (!interfaceClass.isAssignableFrom(localClass)) {\n-                throw new IllegalStateException(\"The local implementation class \" + localClass.getName() + \" not implement interface \" + interfaceName);\n-            }\n-        }\n-        if (stub != null) {\n-            if (\"true\".equals(stub)) {\n-                stub = interfaceName + \"Stub\";\n-            }\n-            Class<?> stubClass;\n-            try {\n-                stubClass = ClassUtils.forNameWithThreadContextClassLoader(stub);\n-            } catch (ClassNotFoundException e) {\n-                throw new IllegalStateException(e.getMessage(), e);\n-            }\n-            if (!interfaceClass.isAssignableFrom(stubClass)) {\n-                throw new IllegalStateException(\"The stub implementation class \" + stubClass.getName() + \" not implement interface \" + interfaceName);\n-            }\n-        }\n-        checkStubAndLocal(interfaceClass);\n-        ConfigValidationUtils.checkMock(interfaceClass, this);\n-        ConfigValidationUtils.validateServiceConfig(this);\n-        postProcessConfig();\n-    }\n-\n-\n-    protected synchronized void doExport() {\n-        if (unexported) {\n-            throw new IllegalStateException(\"The service \" + interfaceClass.getName() + \" has already unexported!\");\n-        }\n-        if (exported) {\n-            return;\n-        }\n-        exported = true;\n-\n-        if (StringUtils.isEmpty(path)) {\n-            path = interfaceName;\n-        }\n-        doExportUrls();\n-        bootstrap.setReady(true);\n-    }\n-\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    private void doExportUrls() {\n-        ServiceRepository repository = ApplicationModel.getServiceRepository();\n-        ServiceDescriptor serviceDescriptor = repository.registerService(getInterfaceClass());\n-        repository.registerProvider(\n-                getUniqueServiceName(),\n-                ref,\n-                serviceDescriptor,\n-                this,\n-                serviceMetadata\n-        );\n-\n-        List<URL> registryURLs = ConfigValidationUtils.loadRegistries(this, true);\n-\n-        for (ProtocolConfig protocolConfig : protocols) {\n-            String pathKey = URL.buildKey(getContextPath(protocolConfig)\n-                    .map(p -> p + \"/\" + path)\n-                    .orElse(path), group, version);\n-            // In case user specified path, register service one more time to map it to path.\n-            repository.registerService(pathKey, interfaceClass);\n-            doExportUrlsFor1Protocol(protocolConfig, registryURLs);\n-        }\n-    }\n-\n-    private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs) {\n-        String name = protocolConfig.getName();\n-        if (StringUtils.isEmpty(name)) {\n-            name = DUBBO;\n-        }\n-\n-        Map<String, String> map = new HashMap<String, String>();\n-        map.put(SIDE_KEY, PROVIDER_SIDE);\n-\n-        ServiceConfig.appendRuntimeParameters(map);\n-        AbstractConfig.appendParameters(map, getMetrics());\n-        AbstractConfig.appendParameters(map, getApplication());\n-        AbstractConfig.appendParameters(map, getModule());\n-        // remove 'default.' prefix for configs from ProviderConfig\n-        // appendParameters(map, provider, Constants.DEFAULT_KEY);\n-        AbstractConfig.appendParameters(map, provider);\n-        AbstractConfig.appendParameters(map, protocolConfig);\n-        AbstractConfig.appendParameters(map, this);\n-        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();\n-        if (metadataReportConfig != null && metadataReportConfig.isValid()) {\n-            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);\n-        }\n-        if (CollectionUtils.isNotEmpty(getMethods())) {\n-            for (MethodConfig method : getMethods()) {\n-                AbstractConfig.appendParameters(map, method, method.getName());\n-                String retryKey = method.getName() + \".retry\";\n-                if (map.containsKey(retryKey)) {\n-                    String retryValue = map.remove(retryKey);\n-                    if (\"false\".equals(retryValue)) {\n-                        map.put(method.getName() + \".retries\", \"0\");\n-                    }\n-                }\n-                List<ArgumentConfig> arguments = method.getArguments();\n-                if (CollectionUtils.isNotEmpty(arguments)) {\n-                    for (ArgumentConfig argument : arguments) {\n-                        // convert argument type\n-                        if (argument.getType() != null && argument.getType().length() > 0) {\n-                            Method[] methods = interfaceClass.getMethods();\n-                            // visit all methods\n-                            if (methods.length > 0) {\n-                                for (int i = 0; i < methods.length; i++) {\n-                                    String methodName = methods[i].getName();\n-                                    // target the method, and get its signature\n-                                    if (methodName.equals(method.getName())) {\n-                                        Class<?>[] argtypes = methods[i].getParameterTypes();\n-                                        // one callback in the method\n-                                        if (argument.getIndex() != -1) {\n-                                            if (argtypes[argument.getIndex()].getName().equals(argument.getType())) {\n-                                                AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + argument.getIndex());\n-                                            } else {\n-                                                throw new IllegalArgumentException(\"Argument config error : the index attribute and type attribute not match :index :\" + argument.getIndex() + \", type:\" + argument.getType());\n-                                            }\n-                                        } else {\n-                                            // multiple callbacks in the method\n-                                            for (int j = 0; j < argtypes.length; j++) {\n-                                                Class<?> argclazz = argtypes[j];\n-                                                if (argclazz.getName().equals(argument.getType())) {\n-                                                    AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + j);\n-                                                    if (argument.getIndex() != -1 && argument.getIndex() != j) {\n-                                                        throw new IllegalArgumentException(\"Argument config error : the index attribute and type attribute not match :index :\" + argument.getIndex() + \", type:\" + argument.getType());\n-                                                    }\n-                                                }\n-                                            }\n-                                        }\n-                                    }\n-                                }\n-                            }\n-                        } else if (argument.getIndex() != -1) {\n-                            AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + argument.getIndex());\n-                        } else {\n-                            throw new IllegalArgumentException(\"Argument config must set index or type attribute.eg: <dubbo:argument index='0' .../> or <dubbo:argument type=xxx .../>\");\n-                        }\n-\n-                    }\n-                }\n-            } // end of methods for\n-        }\n-\n-        if (ProtocolUtils.isGeneric(generic)) {\n-            map.put(GENERIC_KEY, generic);\n-            map.put(METHODS_KEY, ANY_VALUE);\n-        } else {\n-            String revision = Version.getVersion(interfaceClass, version);\n-            if (revision != null && revision.length() > 0) {\n-                map.put(REVISION_KEY, revision);\n-            }\n-\n-            String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();\n-            if (methods.length == 0) {\n-                logger.warn(\"No method found in service interface \" + interfaceClass.getName());\n-                map.put(METHODS_KEY, ANY_VALUE);\n-            } else {\n-                map.put(METHODS_KEY, StringUtils.join(new HashSet<String>(Arrays.asList(methods)), \",\"));\n-            }\n-        }\n-\n-        /**\n-         * Here the token value configured by the provider is used to assign the value to ServiceConfig#token\n-         */\n-        if (ConfigUtils.isEmpty(token) && provider != null) {\n-            token = provider.getToken();\n-        }\n-\n-        if (!ConfigUtils.isEmpty(token)) {\n-            if (ConfigUtils.isDefault(token)) {\n-                map.put(TOKEN_KEY, UUID.randomUUID().toString());\n-            } else {\n-                map.put(TOKEN_KEY, token);\n-            }\n-        }\n-        //init serviceMetadata attachments\n-        serviceMetadata.getAttachments().putAll(map);\n-\n-        // export service\n-        String host = findConfigedHosts(protocolConfig, registryURLs, map);\n-        Integer port = findConfigedPorts(protocolConfig, name, map);\n-        URL url = new URL(name, host, port, getContextPath(protocolConfig).map(p -> p + \"/\" + path).orElse(path), map);\n-\n-        // You can customize Configurator to append extra parameters\n-        if (ExtensionLoader.getExtensionLoader(ConfiguratorFactory.class)\n-                .hasExtension(url.getProtocol())) {\n-            url = ExtensionLoader.getExtensionLoader(ConfiguratorFactory.class)\n-                    .getExtension(url.getProtocol()).getConfigurator(url).configure(url);\n-        }\n-\n-        String scope = url.getParameter(SCOPE_KEY);\n-        // don't export when none is configured\n-        if (!SCOPE_NONE.equalsIgnoreCase(scope)) {\n-\n-            // export to local if the config is not remote (export to remote only when config is remote)\n-            if (!SCOPE_REMOTE.equalsIgnoreCase(scope)) {\n-                exportLocal(url);\n-            }\n-            // export to remote if the config is not local (export to local only when config is local)\n-            if (!SCOPE_LOCAL.equalsIgnoreCase(scope)) {\n-                if (CollectionUtils.isNotEmpty(registryURLs)) {\n-                    for (URL registryURL : registryURLs) {\n-                        //if protocol is only injvm ,not register\n-                        if (LOCAL_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {\n-                            continue;\n-                        }\n-                        url = url.addParameterIfAbsent(DYNAMIC_KEY, registryURL.getParameter(DYNAMIC_KEY));\n-                        URL monitorUrl = ConfigValidationUtils.loadMonitor(this, registryURL);\n-                        if (monitorUrl != null) {\n-                            url = url.addParameterAndEncoded(MONITOR_KEY, monitorUrl.toFullString());\n-                        }\n-                        if (logger.isInfoEnabled()) {\n-                            if (url.getParameter(REGISTER_KEY, true)) {\n-                                logger.info(\"Register dubbo service \" + interfaceClass.getName() + \" url \" + url + \" to registry \" + registryURL);\n-                            } else {\n-                                logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to url \" + url);\n-                            }\n-                        }\n-\n-                        // For providers, this is used to enable custom proxy to generate invoker\n-                        String proxy = url.getParameter(PROXY_KEY);\n-                        if (StringUtils.isNotEmpty(proxy)) {\n-                            registryURL = registryURL.addParameter(PROXY_KEY, proxy);\n-                        }\n-\n-                        Invoker<?> invoker = PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, registryURL.addParameterAndEncoded(EXPORT_KEY, url.toFullString()));\n-                        DelegateProviderMetaDataInvoker wrapperInvoker = new DelegateProviderMetaDataInvoker(invoker, this);\n-\n-                        Exporter<?> exporter = PROTOCOL.export(wrapperInvoker);\n-                        exporters.add(exporter);\n-                    }\n-                } else {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to url \" + url);\n-                    }\n-                    Invoker<?> invoker = PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, url);\n-                    DelegateProviderMetaDataInvoker wrapperInvoker = new DelegateProviderMetaDataInvoker(invoker, this);\n-\n-                    Exporter<?> exporter = PROTOCOL.export(wrapperInvoker);\n-                    exporters.add(exporter);\n-                }\n-\n-                MetadataUtils.publishServiceDefinition(url);\n-            }\n-        }\n-        this.urls.add(url);\n-    }\n-\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    /**\n-     * always export injvm\n-     */\n-    private void exportLocal(URL url) {\n-        URL local = URLBuilder.from(url)\n-                .setProtocol(LOCAL_PROTOCOL)\n-                .setHost(LOCALHOST_VALUE)\n-                .setPort(0)\n-                .build();\n-        Exporter<?> exporter = PROTOCOL.export(\n-                PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, local));\n-        exporters.add(exporter);\n-        logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to local registry url : \" + local);\n-    }\n-\n-    /**\n-     * Determine if it is injvm\n-     *\n-     * @return\n-     */\n-    private boolean isOnlyInJvm() {\n-        return getProtocols().size() == 1\n-                && LOCAL_PROTOCOL.equalsIgnoreCase(getProtocols().get(0).getName());\n-    }\n-\n-\n-    /**\n-     * Register & bind IP address for service provider, can be configured separately.\n-     * Configuration priority: environment variables -> java system properties -> host property in config file ->\n-     * /etc/hosts -> default network address -> first available network address\n-     *\n-     * @param protocolConfig\n-     * @param registryURLs\n-     * @param map\n-     * @return\n-     */\n-    private String findConfigedHosts(ProtocolConfig protocolConfig,\n-                                     List<URL> registryURLs,\n-                                     Map<String, String> map) {\n-        boolean anyhost = false;\n-\n-        String hostToBind = getValueFromConfig(protocolConfig, DUBBO_IP_TO_BIND);\n-        if (hostToBind != null && hostToBind.length() > 0 && isInvalidLocalHost(hostToBind)) {\n-            throw new IllegalArgumentException(\"Specified invalid bind ip from property:\" + DUBBO_IP_TO_BIND + \", value:\" + hostToBind);\n-        }\n-\n-        // if bind ip is not found in environment, keep looking up\n-        if (StringUtils.isEmpty(hostToBind)) {\n-            hostToBind = protocolConfig.getHost();\n-            if (provider != null && StringUtils.isEmpty(hostToBind)) {\n-                hostToBind = provider.getHost();\n-            }\n-            if (isInvalidLocalHost(hostToBind)) {\n-                anyhost = true;\n-                try {\n-                    logger.info(\"No valid ip found from environment, try to find valid host from DNS.\");\n-                    hostToBind = InetAddress.getLocalHost().getHostAddress();\n-                } catch (UnknownHostException e) {\n-                    logger.warn(e.getMessage(), e);\n-                }\n-                if (isInvalidLocalHost(hostToBind)) {\n-                    if (CollectionUtils.isNotEmpty(registryURLs)) {\n-                        for (URL registryURL : registryURLs) {\n-                            if (MULTICAST.equalsIgnoreCase(registryURL.getParameter(\"registry\"))) {\n-                                // skip multicast registry since we cannot connect to it via Socket\n-                                continue;\n-                            }\n-                            try (Socket socket = new Socket()) {\n-                                SocketAddress addr = new InetSocketAddress(registryURL.getHost(), registryURL.getPort());\n-                                socket.connect(addr, 1000);\n-                                hostToBind = socket.getLocalAddress().getHostAddress();\n-                                break;\n-                            } catch (Exception e) {\n-                                logger.warn(e.getMessage(), e);\n-                            }\n-                        }\n-                    }\n-                    if (isInvalidLocalHost(hostToBind)) {\n-                        hostToBind = getLocalHost();\n-                    }\n-                }\n-            }\n-        }\n-\n-        map.put(BIND_IP_KEY, hostToBind);\n-\n-        // registry ip is not used for bind ip by default\n-        String hostToRegistry = getValueFromConfig(protocolConfig, DUBBO_IP_TO_REGISTRY);\n-        if (hostToRegistry != null && hostToRegistry.length() > 0 && isInvalidLocalHost(hostToRegistry)) {\n-            throw new IllegalArgumentException(\"Specified invalid registry ip from property:\" + DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\n-        } else if (StringUtils.isEmpty(hostToRegistry)) {\n-            // bind ip is used as registry ip by default\n-            hostToRegistry = hostToBind;\n-        }\n-\n-        map.put(ANYHOST_KEY, String.valueOf(anyhost));\n-\n-        return hostToRegistry;\n-    }\n-\n-\n-    /**\n-     * Register port and bind port for the provider, can be configured separately\n-     * Configuration priority: environment variable -> java system properties -> port property in protocol config file\n-     * -> protocol default port\n-     *\n-     * @param protocolConfig\n-     * @param name\n-     * @return\n-     */\n-    private Integer findConfigedPorts(ProtocolConfig protocolConfig,\n-                                      String name,\n-                                      Map<String, String> map) {\n-        Integer portToBind = null;\n-\n-        // parse bind port from environment\n-        String port = getValueFromConfig(protocolConfig, DUBBO_PORT_TO_BIND);\n-        portToBind = parsePort(port);\n-\n-        // if there's no bind port found from environment, keep looking up.\n-        if (portToBind == null) {\n-            portToBind = protocolConfig.getPort();\n-            if (provider != null && (portToBind == null || portToBind == 0)) {\n-                portToBind = provider.getPort();\n-            }\n-            final int defaultPort = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(name).getDefaultPort();\n-            if (portToBind == null || portToBind == 0) {\n-                portToBind = defaultPort;\n-            }\n-            if (portToBind <= 0) {\n-                portToBind = getRandomPort(name);\n-                if (portToBind == null || portToBind < 0) {\n-                    portToBind = getAvailablePort(defaultPort);\n-                    putRandomPort(name, portToBind);\n-                }\n-            }\n-        }\n-\n-        // save bind port, used as url's key later\n-        map.put(BIND_PORT_KEY, String.valueOf(portToBind));\n-\n-        // registry port, not used as bind port by default\n-        String portToRegistryStr = getValueFromConfig(protocolConfig, DUBBO_PORT_TO_REGISTRY);\n-        Integer portToRegistry = parsePort(portToRegistryStr);\n-        if (portToRegistry == null) {\n-            portToRegistry = portToBind;\n-        }\n-\n-        return portToRegistry;\n-    }\n-\n-    private Integer parsePort(String configPort) {\n-        Integer port = null;\n-        if (configPort != null && configPort.length() > 0) {\n-            try {\n-                Integer intPort = Integer.parseInt(configPort);\n-                if (isInvalidPort(intPort)) {\n-                    throw new IllegalArgumentException(\"Specified invalid port from env value:\" + configPort);\n-                }\n-                port = intPort;\n-            } catch (Exception e) {\n-                throw new IllegalArgumentException(\"Specified invalid port from env value:\" + configPort);\n-            }\n-        }\n-        return port;\n-    }\n-\n-    private String getValueFromConfig(ProtocolConfig protocolConfig, String key) {\n-        String protocolPrefix = protocolConfig.getName().toUpperCase() + \"_\";\n-        String value = ConfigUtils.getSystemProperty(protocolPrefix + key);\n-        if (StringUtils.isEmpty(value)) {\n-            value = ConfigUtils.getSystemProperty(key);\n-        }\n-        return value;\n-    }\n-\n-    private Integer getRandomPort(String protocol) {\n-        protocol = protocol.toLowerCase();\n-        return RANDOM_PORT_MAP.getOrDefault(protocol, Integer.MIN_VALUE);\n-    }\n-\n-    private void putRandomPort(String protocol, Integer port) {\n-        protocol = protocol.toLowerCase();\n-        if (!RANDOM_PORT_MAP.containsKey(protocol)) {\n-            RANDOM_PORT_MAP.put(protocol, port);\n-            logger.warn(\"Use random available port(\" + port + \") for protocol \" + protocol);\n-        }\n-    }\n-\n-    private void postProcessConfig() {\n-        List<ConfigPostProcessor> configPostProcessors = ExtensionLoader.getExtensionLoader(ConfigPostProcessor.class)\n-                .getActivateExtension(URL.valueOf(\"configPostProcessor://\"), (String[]) null);\n-        configPostProcessors.forEach(component -> component.postProcessServiceConfig(this));\n-    }\n-\n-    /**\n-     * Dispatch an {@link Event event}\n-     *\n-     * @param event an {@link Event event}\n-     * @since 2.7.5\n-     */\n-    private void dispatch(Event event) {\n-        EventDispatcher.getDefaultExtension().dispatch(event);\n-    }\n-\n-    public DubboBootstrap getBootstrap() {\n-        return bootstrap;\n-    }\n-\n-    public void setBootstrap(DubboBootstrap bootstrap) {\n-        this.bootstrap = bootstrap;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.bytecode.Wrapper;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+import org.apache.dubbo.config.event.ServiceConfigExportedEvent;\r\n+import org.apache.dubbo.config.event.ServiceConfigUnexportedEvent;\r\n+import org.apache.dubbo.config.invoker.DelegateProviderMetaDataInvoker;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.config.utils.ConfigValidationUtils;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.metadata.ServiceNameMapping;\r\n+import org.apache.dubbo.registry.client.metadata.MetadataUtils;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+import org.apache.dubbo.rpc.cluster.ConfiguratorFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ServiceDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.net.InetAddress;\r\n+import java.net.InetSocketAddress;\r\n+import java.net.Socket;\r\n+import java.net.SocketAddress;\r\n+import java.net.UnknownHostException;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.UUID;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_IP_TO_BIND;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOCALHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MAPPING_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METADATA_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REGISTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;\r\n+import static org.apache.dubbo.common.utils.NetUtils.getAvailablePort;\r\n+import static org.apache.dubbo.common.utils.NetUtils.getLocalHost;\r\n+import static org.apache.dubbo.common.utils.NetUtils.isInvalidLocalHost;\r\n+import static org.apache.dubbo.common.utils.NetUtils.isInvalidPort;\r\n+import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\r\n+import static org.apache.dubbo.config.Constants.DUBBO_PORT_TO_BIND;\r\n+import static org.apache.dubbo.config.Constants.DUBBO_PORT_TO_REGISTRY;\r\n+import static org.apache.dubbo.config.Constants.MULTICAST;\r\n+import static org.apache.dubbo.config.Constants.SCOPE_NONE;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\r\n+import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL;\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;\r\n+\r\n+public class ServiceConfig<T> extends ServiceConfigBase<T> {\r\n+\r\n+    public static final Logger logger = LoggerFactory.getLogger(ServiceConfig.class);\r\n+\r\n+    /**\r\n+     * A random port cache, the different protocols who has no port specified have different random port\r\n+     */\r\n+    private static final Map<String, Integer> RANDOM_PORT_MAP = new HashMap<String, Integer>();\r\n+\r\n+    /**\r\n+     * A delayed exposure service timer\r\n+     */\r\n+    private static final ScheduledExecutorService DELAY_EXPORT_EXECUTOR = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"DubboServiceDelayExporter\", true));\r\n+\r\n+    private static final Protocol PROTOCOL = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\r\n+\r\n+    /**\r\n+     * A {@link ProxyFactory} implementation that will generate a exported service proxy,the JavassistProxyFactory is its\r\n+     * default implementation\r\n+     */\r\n+    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\r\n+\r\n+    /**\r\n+     * Whether the provider has been exported\r\n+     */\r\n+    private transient volatile boolean exported;\r\n+\r\n+    /**\r\n+     * The flag whether a service has unexported ,if the method unexported is invoked, the value is true\r\n+     */\r\n+    private transient volatile boolean unexported;\r\n+\r\n+    private DubboBootstrap bootstrap;\r\n+\r\n+    /**\r\n+     * The exported services\r\n+     */\r\n+    private final List<Exporter<?>> exporters = new ArrayList<Exporter<?>>();\r\n+\r\n+    public ServiceConfig() {\r\n+    }\r\n+\r\n+    public ServiceConfig(Service service) {\r\n+        super(service);\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public boolean isExported() {\r\n+        return exported;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public boolean isUnexported() {\r\n+        return unexported;\r\n+    }\r\n+\r\n+    public void unexport() {\r\n+        if (!exported) {\r\n+            return;\r\n+        }\r\n+        if (unexported) {\r\n+            return;\r\n+        }\r\n+        if (!exporters.isEmpty()) {\r\n+            for (Exporter<?> exporter : exporters) {\r\n+                try {\r\n+                    exporter.unexport();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(\"Unexpected error occurred when unexport \" + exporter, t);\r\n+                }\r\n+            }\r\n+            exporters.clear();\r\n+        }\r\n+        unexported = true;\r\n+\r\n+        // dispatch a ServiceConfigUnExportedEvent since 2.7.4\r\n+        dispatch(new ServiceConfigUnexportedEvent(this));\r\n+    }\r\n+\r\n+    public synchronized void export() {\r\n+        if (bootstrap == null) {\r\n+            bootstrap = DubboBootstrap.getInstance();\r\n+            bootstrap.initialize();\r\n+        }\r\n+\r\n+        checkAndUpdateSubConfigs();\r\n+\r\n+        initServiceMetadata(provider);\r\n+        serviceMetadata.setServiceType(getInterfaceClass());\r\n+        serviceMetadata.setTarget(getRef());\r\n+        serviceMetadata.generateServiceKey();\r\n+\r\n+        if (!shouldExport()) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (shouldDelay()) {\r\n+            DELAY_EXPORT_EXECUTOR.schedule(this::doExport, getDelay(), TimeUnit.MILLISECONDS);\r\n+        } else {\r\n+            doExport();\r\n+        }\r\n+\r\n+        exported();\r\n+    }\r\n+\r\n+    public void exported() {\r\n+        List<URL> exportedURLs = this.getExportedUrls();\r\n+        exportedURLs.forEach(url -> {\r\n+            Map<String, String> parameters = getApplication().getParameters();\r\n+            ServiceNameMapping.getExtension(parameters != null ? parameters.get(MAPPING_KEY) : null).map(url);\r\n+        });\r\n+        // dispatch a ServiceConfigExportedEvent since 2.7.4\r\n+        dispatch(new ServiceConfigExportedEvent(this));\r\n+    }\r\n+\r\n+    private void checkAndUpdateSubConfigs() {\r\n+        // Use default configs defined explicitly with global scope\r\n+        completeCompoundConfigs();\r\n+        checkDefault();\r\n+        checkProtocol();\r\n+        // init some null configuration.\r\n+        List<ConfigInitializer> configInitializers = ExtensionLoader.getExtensionLoader(ConfigInitializer.class)\r\n+                .getActivateExtension(URL.valueOf(\"configInitializer://\"), (String[]) null);\r\n+        configInitializers.forEach(e -> e.initServiceConfig(this));\r\n+\r\n+        // if protocol is not injvm checkRegistry\r\n+        if (!isOnlyInJvm()) {\r\n+            checkRegistry();\r\n+        }\r\n+        this.refresh();\r\n+\r\n+        if (StringUtils.isEmpty(interfaceName)) {\r\n+            throw new IllegalStateException(\"<dubbo:service interface=\\\"\\\" /> interface not allow null!\");\r\n+        }\r\n+\r\n+        if (ref instanceof GenericService) {\r\n+            interfaceClass = GenericService.class;\r\n+            if (StringUtils.isEmpty(generic)) {\r\n+                generic = Boolean.TRUE.toString();\r\n+            }\r\n+        } else {\r\n+            try {\r\n+                interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\r\n+                        .getContextClassLoader());\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+            checkInterfaceAndMethods(interfaceClass, getMethods());\r\n+            checkRef();\r\n+            generic = Boolean.FALSE.toString();\r\n+        }\r\n+        if (local != null) {\r\n+            if (\"true\".equals(local)) {\r\n+                local = interfaceName + \"Local\";\r\n+            }\r\n+            Class<?> localClass;\r\n+            try {\r\n+                localClass = ClassUtils.forNameWithThreadContextClassLoader(local);\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+            if (!interfaceClass.isAssignableFrom(localClass)) {\r\n+                throw new IllegalStateException(\"The local implementation class \" + localClass.getName() + \" not implement interface \" + interfaceName);\r\n+            }\r\n+        }\r\n+        if (stub != null) {\r\n+            if (\"true\".equals(stub)) {\r\n+                stub = interfaceName + \"Stub\";\r\n+            }\r\n+            Class<?> stubClass;\r\n+            try {\r\n+                stubClass = ClassUtils.forNameWithThreadContextClassLoader(stub);\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new IllegalStateException(e.getMessage(), e);\r\n+            }\r\n+            if (!interfaceClass.isAssignableFrom(stubClass)) {\r\n+                throw new IllegalStateException(\"The stub implementation class \" + stubClass.getName() + \" not implement interface \" + interfaceName);\r\n+            }\r\n+        }\r\n+        checkStubAndLocal(interfaceClass);\r\n+        ConfigValidationUtils.checkMock(interfaceClass, this);\r\n+        ConfigValidationUtils.validateServiceConfig(this);\r\n+        postProcessConfig();\r\n+    }\r\n+\r\n+\r\n+    protected synchronized void doExport() {\r\n+        if (unexported) {\r\n+            throw new IllegalStateException(\"The service \" + interfaceClass.getName() + \" has already unexported!\");\r\n+        }\r\n+        if (exported) {\r\n+            return;\r\n+        }\r\n+        exported = true;\r\n+\r\n+        if (StringUtils.isEmpty(path)) {\r\n+            path = interfaceName;\r\n+        }\r\n+        doExportUrls();\r\n+        bootstrap.setReady(true);\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    private void doExportUrls() {\r\n+        ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+        ServiceDescriptor serviceDescriptor = repository.registerService(getInterfaceClass());\r\n+        repository.registerProvider(\r\n+                getUniqueServiceName(),\r\n+                ref,\r\n+                serviceDescriptor,\r\n+                this,\r\n+                serviceMetadata\r\n+        );\r\n+\r\n+        List<URL> registryURLs = ConfigValidationUtils.loadRegistries(this, true);\r\n+\r\n+        for (ProtocolConfig protocolConfig : protocols) {\r\n+            String pathKey = URL.buildKey(getContextPath(protocolConfig)\r\n+                    .map(p -> p + \"/\" + path)\r\n+                    .orElse(path), group, version);\r\n+            // In case user specified path, register service one more time to map it to path.\r\n+            repository.registerService(pathKey, interfaceClass);\r\n+            doExportUrlsFor1Protocol(protocolConfig, registryURLs);\r\n+        }\r\n+    }\r\n+\r\n+    private void doExportUrlsFor1Protocol(ProtocolConfig protocolConfig, List<URL> registryURLs) {\r\n+        String name = protocolConfig.getName();\r\n+        if (StringUtils.isEmpty(name)) {\r\n+            name = DUBBO;\r\n+        }\r\n+\r\n+        Map<String, String> map = new HashMap<String, String>();\r\n+        map.put(SIDE_KEY, PROVIDER_SIDE);\r\n+\r\n+        ServiceConfig.appendRuntimeParameters(map);\r\n+        AbstractConfig.appendParameters(map, getMetrics());\r\n+        AbstractConfig.appendParameters(map, getApplication());\r\n+        AbstractConfig.appendParameters(map, getModule());\r\n+        // remove 'default.' prefix for configs from ProviderConfig\r\n+        // appendParameters(map, provider, Constants.DEFAULT_KEY);\r\n+        AbstractConfig.appendParameters(map, provider);\r\n+        AbstractConfig.appendParameters(map, protocolConfig);\r\n+        AbstractConfig.appendParameters(map, this);\r\n+        MetadataReportConfig metadataReportConfig = getMetadataReportConfig();\r\n+        if (metadataReportConfig != null && metadataReportConfig.isValid()) {\r\n+            map.putIfAbsent(METADATA_KEY, REMOTE_METADATA_STORAGE_TYPE);\r\n+        }\r\n+        if (CollectionUtils.isNotEmpty(getMethods())) {\r\n+            for (MethodConfig method : getMethods()) {\r\n+                AbstractConfig.appendParameters(map, method, method.getName());\r\n+                String retryKey = method.getName() + \".retry\";\r\n+                if (map.containsKey(retryKey)) {\r\n+                    String retryValue = map.remove(retryKey);\r\n+                    if (\"false\".equals(retryValue)) {\r\n+                        map.put(method.getName() + \".retries\", \"0\");\r\n+                    }\r\n+                }\r\n+                List<ArgumentConfig> arguments = method.getArguments();\r\n+                if (CollectionUtils.isNotEmpty(arguments)) {\r\n+                    for (ArgumentConfig argument : arguments) {\r\n+                        // convert argument type\r\n+                        if (argument.getType() != null && argument.getType().length() > 0) {\r\n+                            Method[] methods = interfaceClass.getMethods();\r\n+                            // visit all methods\r\n+                            if (methods.length > 0) {\r\n+                                for (int i = 0; i < methods.length; i++) {\r\n+                                    String methodName = methods[i].getName();\r\n+                                    // target the method, and get its signature\r\n+                                    if (methodName.equals(method.getName())) {\r\n+                                        Class<?>[] argtypes = methods[i].getParameterTypes();\r\n+                                        // one callback in the method\r\n+                                        if (argument.getIndex() != -1) {\r\n+                                            if (argtypes[argument.getIndex()].getName().equals(argument.getType())) {\r\n+                                                AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + argument.getIndex());\r\n+                                            } else {\r\n+                                                throw new IllegalArgumentException(\"Argument config error : the index attribute and type attribute not match :index :\" + argument.getIndex() + \", type:\" + argument.getType());\r\n+                                            }\r\n+                                        } else {\r\n+                                            // multiple callbacks in the method\r\n+                                            for (int j = 0; j < argtypes.length; j++) {\r\n+                                                Class<?> argclazz = argtypes[j];\r\n+                                                if (argclazz.getName().equals(argument.getType())) {\r\n+                                                    AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + j);\r\n+                                                    if (argument.getIndex() != -1 && argument.getIndex() != j) {\r\n+                                                        throw new IllegalArgumentException(\"Argument config error : the index attribute and type attribute not match :index :\" + argument.getIndex() + \", type:\" + argument.getType());\r\n+                                                    }\r\n+                                                }\r\n+                                            }\r\n+                                        }\r\n+                                    }\r\n+                                }\r\n+                            }\r\n+                        } else if (argument.getIndex() != -1) {\r\n+                            AbstractConfig.appendParameters(map, argument, method.getName() + \".\" + argument.getIndex());\r\n+                        } else {\r\n+                            throw new IllegalArgumentException(\"Argument config must set index or type attribute.eg: <dubbo:argument index='0' .../> or <dubbo:argument type=xxx .../>\");\r\n+                        }\r\n+\r\n+                    }\r\n+                }\r\n+            } // end of methods for\r\n+        }\r\n+\r\n+        if (ProtocolUtils.isGeneric(generic)) {\r\n+            map.put(GENERIC_KEY, generic);\r\n+            map.put(METHODS_KEY, ANY_VALUE);\r\n+        } else {\r\n+            String revision = Version.getVersion(interfaceClass, version);\r\n+            if (revision != null && revision.length() > 0) {\r\n+                map.put(REVISION_KEY, revision);\r\n+            }\r\n+\r\n+            String[] methods = Wrapper.getWrapper(interfaceClass).getMethodNames();\r\n+            if (methods.length == 0) {\r\n+                logger.warn(\"No method found in service interface \" + interfaceClass.getName());\r\n+                map.put(METHODS_KEY, ANY_VALUE);\r\n+            } else {\r\n+                map.put(METHODS_KEY, StringUtils.join(new HashSet<String>(Arrays.asList(methods)), \",\"));\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * Here the token value configured by the provider is used to assign the value to ServiceConfig#token\r\n+         */\r\n+        if (ConfigUtils.isEmpty(token) && provider != null) {\r\n+            token = provider.getToken();\r\n+        }\r\n+\r\n+        if (!ConfigUtils.isEmpty(token)) {\r\n+            if (ConfigUtils.isDefault(token)) {\r\n+                map.put(TOKEN_KEY, UUID.randomUUID().toString());\r\n+            } else {\r\n+                map.put(TOKEN_KEY, token);\r\n+            }\r\n+        }\r\n+        //init serviceMetadata attachments\r\n+        serviceMetadata.getAttachments().putAll(map);\r\n+\r\n+        // export service\r\n+        String host = findConfigedHosts(protocolConfig, registryURLs, map);\r\n+        Integer port = findConfigedPorts(protocolConfig, name, map);\r\n+        URL url = new URL(name, host, port, getContextPath(protocolConfig).map(p -> p + \"/\" + path).orElse(path), map);\r\n+\r\n+        // You can customize Configurator to append extra parameters\r\n+        if (ExtensionLoader.getExtensionLoader(ConfiguratorFactory.class)\r\n+                .hasExtension(url.getProtocol())) {\r\n+            url = ExtensionLoader.getExtensionLoader(ConfiguratorFactory.class)\r\n+                    .getExtension(url.getProtocol()).getConfigurator(url).configure(url);\r\n+        }\r\n+\r\n+        String scope = url.getParameter(SCOPE_KEY);\r\n+        // don't export when none is configured\r\n+        if (!SCOPE_NONE.equalsIgnoreCase(scope)) {\r\n+\r\n+            // export to local if the config is not remote (export to remote only when config is remote)\r\n+            if (!SCOPE_REMOTE.equalsIgnoreCase(scope)) {\r\n+                exportLocal(url);\r\n+            }\r\n+            // export to remote if the config is not local (export to local only when config is local)\r\n+            if (!SCOPE_LOCAL.equalsIgnoreCase(scope)) {\r\n+                if (CollectionUtils.isNotEmpty(registryURLs)) {\r\n+                    for (URL registryURL : registryURLs) {\r\n+                        //if protocol is only injvm ,not register\r\n+                        if (LOCAL_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {\r\n+                            continue;\r\n+                        }\r\n+                        url = url.addParameterIfAbsent(DYNAMIC_KEY, registryURL.getParameter(DYNAMIC_KEY));\r\n+                        URL monitorUrl = ConfigValidationUtils.loadMonitor(this, registryURL);\r\n+                        if (monitorUrl != null) {\r\n+                            url = url.addParameterAndEncoded(MONITOR_KEY, monitorUrl.toFullString());\r\n+                        }\r\n+                        if (logger.isInfoEnabled()) {\r\n+                            if (url.getParameter(REGISTER_KEY, true)) {\r\n+                                logger.info(\"Register dubbo service \" + interfaceClass.getName() + \" url \" + url + \" to registry \" + registryURL);\r\n+                            } else {\r\n+                                logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to url \" + url);\r\n+                            }\r\n+                        }\r\n+\r\n+                        // For providers, this is used to enable custom proxy to generate invoker\r\n+                        String proxy = url.getParameter(PROXY_KEY);\r\n+                        if (StringUtils.isNotEmpty(proxy)) {\r\n+                            registryURL = registryURL.addParameter(PROXY_KEY, proxy);\r\n+                        }\r\n+\r\n+                        Invoker<?> invoker = PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, registryURL.addParameterAndEncoded(EXPORT_KEY, url.toFullString()));\r\n+                        DelegateProviderMetaDataInvoker wrapperInvoker = new DelegateProviderMetaDataInvoker(invoker, this);\r\n+\r\n+                        Exporter<?> exporter = PROTOCOL.export(wrapperInvoker);\r\n+                        exporters.add(exporter);\r\n+                    }\r\n+                } else {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to url \" + url);\r\n+                    }\r\n+                    Invoker<?> invoker = PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, url);\r\n+                    DelegateProviderMetaDataInvoker wrapperInvoker = new DelegateProviderMetaDataInvoker(invoker, this);\r\n+\r\n+                    Exporter<?> exporter = PROTOCOL.export(wrapperInvoker);\r\n+                    exporters.add(exporter);\r\n+                }\r\n+\r\n+                MetadataUtils.publishServiceDefinition(url);\r\n+            }\r\n+        }\r\n+        this.urls.add(url);\r\n+    }\r\n+\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    /**\r\n+     * always export injvm\r\n+     */\r\n+    private void exportLocal(URL url) {\r\n+        URL local = URLBuilder.from(url)\r\n+                .setProtocol(LOCAL_PROTOCOL)\r\n+                .setHost(LOCALHOST_VALUE)\r\n+                .setPort(0)\r\n+                .build();\r\n+        Exporter<?> exporter = PROTOCOL.export(\r\n+                PROXY_FACTORY.getInvoker(ref, (Class) interfaceClass, local));\r\n+        exporters.add(exporter);\r\n+        logger.info(\"Export dubbo service \" + interfaceClass.getName() + \" to local registry url : \" + local);\r\n+    }\r\n+\r\n+    /**\r\n+     * Determine if it is injvm\r\n+     *\r\n+     * @return\r\n+     */\r\n+    private boolean isOnlyInJvm() {\r\n+        return getProtocols().size() == 1\r\n+                && LOCAL_PROTOCOL.equalsIgnoreCase(getProtocols().get(0).getName());\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Register & bind IP address for service provider, can be configured separately.\r\n+     * Configuration priority: environment variables -> java system properties -> host property in config file ->\r\n+     * /etc/hosts -> default network address -> first available network address\r\n+     *\r\n+     * @param protocolConfig\r\n+     * @param registryURLs\r\n+     * @param map\r\n+     * @return\r\n+     */\r\n+    private String findConfigedHosts(ProtocolConfig protocolConfig,\r\n+                                     List<URL> registryURLs,\r\n+                                     Map<String, String> map) {\r\n+        boolean anyhost = false;\r\n+\r\n+        String hostToBind = getValueFromConfig(protocolConfig, DUBBO_IP_TO_BIND);\r\n+        if (hostToBind != null && hostToBind.length() > 0 && isInvalidLocalHost(hostToBind)) {\r\n+            throw new IllegalArgumentException(\"Specified invalid bind ip from property:\" + DUBBO_IP_TO_BIND + \", value:\" + hostToBind);\r\n+        }\r\n+\r\n+        // if bind ip is not found in environment, keep looking up\r\n+        if (StringUtils.isEmpty(hostToBind)) {\r\n+            hostToBind = protocolConfig.getHost();\r\n+            if (provider != null && StringUtils.isEmpty(hostToBind)) {\r\n+                hostToBind = provider.getHost();\r\n+            }\r\n+            if (isInvalidLocalHost(hostToBind)) {\r\n+                anyhost = true;\r\n+                try {\r\n+                    logger.info(\"No valid ip found from environment, try to find valid host from DNS.\");\r\n+                    hostToBind = InetAddress.getLocalHost().getHostAddress();\r\n+                } catch (UnknownHostException e) {\r\n+                    logger.warn(e.getMessage(), e);\r\n+                }\r\n+                if (isInvalidLocalHost(hostToBind)) {\r\n+                    if (CollectionUtils.isNotEmpty(registryURLs)) {\r\n+                        for (URL registryURL : registryURLs) {\r\n+                            if (MULTICAST.equalsIgnoreCase(registryURL.getParameter(\"registry\"))) {\r\n+                                // skip multicast registry since we cannot connect to it via Socket\r\n+                                continue;\r\n+                            }\r\n+                            try (Socket socket = new Socket()) {\r\n+                                SocketAddress addr = new InetSocketAddress(registryURL.getHost(), registryURL.getPort());\r\n+                                socket.connect(addr, 1000);\r\n+                                hostToBind = socket.getLocalAddress().getHostAddress();\r\n+                                break;\r\n+                            } catch (Exception e) {\r\n+                                logger.warn(e.getMessage(), e);\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                    if (isInvalidLocalHost(hostToBind)) {\r\n+                        hostToBind = getLocalHost();\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        map.put(BIND_IP_KEY, hostToBind);\r\n+\r\n+        // registry ip is not used for bind ip by default\r\n+        String hostToRegistry = getValueFromConfig(protocolConfig, DUBBO_IP_TO_REGISTRY);\r\n+        if (hostToRegistry != null && hostToRegistry.length() > 0 && isInvalidLocalHost(hostToRegistry)) {\r\n+            throw new IllegalArgumentException(\"Specified invalid registry ip from property:\" + DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\r\n+        } else if (StringUtils.isEmpty(hostToRegistry)) {\r\n+            // bind ip is used as registry ip by default\r\n+            hostToRegistry = hostToBind;\r\n+        }\r\n+\r\n+        map.put(ANYHOST_KEY, String.valueOf(anyhost));\r\n+\r\n+        return hostToRegistry;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Register port and bind port for the provider, can be configured separately\r\n+     * Configuration priority: environment variable -> java system properties -> port property in protocol config file\r\n+     * -> protocol default port\r\n+     *\r\n+     * @param protocolConfig\r\n+     * @param name\r\n+     * @return\r\n+     */\r\n+    private Integer findConfigedPorts(ProtocolConfig protocolConfig,\r\n+                                      String name,\r\n+                                      Map<String, String> map) {\r\n+        Integer portToBind = null;\r\n+\r\n+        // parse bind port from environment\r\n+        String port = getValueFromConfig(protocolConfig, DUBBO_PORT_TO_BIND);\r\n+        portToBind = parsePort(port);\r\n+\r\n+        // if there's no bind port found from environment, keep looking up.\r\n+        if (portToBind == null) {\r\n+            portToBind = protocolConfig.getPort();\r\n+            if (provider != null && (portToBind == null || portToBind == 0)) {\r\n+                portToBind = provider.getPort();\r\n+            }\r\n+            final int defaultPort = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(name).getDefaultPort();\r\n+            if (portToBind == null || portToBind == 0) {\r\n+                portToBind = defaultPort;\r\n+            }\r\n+            if (portToBind <= 0) {\r\n+                portToBind = getRandomPort(name);\r\n+                if (portToBind == null || portToBind < 0) {\r\n+                    portToBind = getAvailablePort(defaultPort);\r\n+                    putRandomPort(name, portToBind);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        // save bind port, used as url's key later\r\n+        map.put(BIND_PORT_KEY, String.valueOf(portToBind));\r\n+\r\n+        // registry port, not used as bind port by default\r\n+        String portToRegistryStr = getValueFromConfig(protocolConfig, DUBBO_PORT_TO_REGISTRY);\r\n+        Integer portToRegistry = parsePort(portToRegistryStr);\r\n+        if (portToRegistry == null) {\r\n+            portToRegistry = portToBind;\r\n+        }\r\n+\r\n+        return portToRegistry;\r\n+    }\r\n+\r\n+    private Integer parsePort(String configPort) {\r\n+        Integer port = null;\r\n+        if (configPort != null && configPort.length() > 0) {\r\n+            try {\r\n+                Integer intPort = Integer.parseInt(configPort);\r\n+                if (isInvalidPort(intPort)) {\r\n+                    throw new IllegalArgumentException(\"Specified invalid port from env value:\" + configPort);\r\n+                }\r\n+                port = intPort;\r\n+            } catch (Exception e) {\r\n+                throw new IllegalArgumentException(\"Specified invalid port from env value:\" + configPort);\r\n+            }\r\n+        }\r\n+        return port;\r\n+    }\r\n+\r\n+    private String getValueFromConfig(ProtocolConfig protocolConfig, String key) {\r\n+        String protocolPrefix = protocolConfig.getName().toUpperCase() + \"_\";\r\n+        String value = ConfigUtils.getSystemProperty(protocolPrefix + key);\r\n+        if (StringUtils.isEmpty(value)) {\r\n+            value = ConfigUtils.getSystemProperty(key);\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    private Integer getRandomPort(String protocol) {\r\n+        protocol = protocol.toLowerCase();\r\n+        return RANDOM_PORT_MAP.getOrDefault(protocol, Integer.MIN_VALUE);\r\n+    }\r\n+\r\n+    private void putRandomPort(String protocol, Integer port) {\r\n+        protocol = protocol.toLowerCase();\r\n+        if (!RANDOM_PORT_MAP.containsKey(protocol)) {\r\n+            RANDOM_PORT_MAP.put(protocol, port);\r\n+            logger.warn(\"Use random available port(\" + port + \") for protocol \" + protocol);\r\n+        }\r\n+    }\r\n+\r\n+    private void postProcessConfig() {\r\n+        List<ConfigPostProcessor> configPostProcessors = ExtensionLoader.getExtensionLoader(ConfigPostProcessor.class)\r\n+                .getActivateExtension(URL.valueOf(\"configPostProcessor://\"), (String[]) null);\r\n+        configPostProcessors.forEach(component -> component.postProcessServiceConfig(this));\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch an {@link Event event}\r\n+     *\r\n+     * @param event an {@link Event event}\r\n+     * @since 2.7.5\r\n+     */\r\n+    private void dispatch(Event event) {\r\n+        EventDispatcher.getDefaultExtension().dispatch(event);\r\n+    }\r\n+\r\n+    public DubboBootstrap getBootstrap() {\r\n+        return bootstrap;\r\n+    }\r\n+\r\n+    public void setBootstrap(DubboBootstrap bootstrap) {\r\n+        this.bootstrap = bootstrap;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/ServiceConfigBase.java", "source2": "org/apache/dubbo/config/ServiceConfigBase.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,416 +1,416 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.support.Parameter;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ServiceMetadata;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-import java.util.Optional;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-\n-/**\n- * ServiceConfig\n- *\n- * @export\n- */\n-public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {\n-\n-    private static final long serialVersionUID = 3033787999037024738L;\n-\n-\n-\n-    /**\n-     * The interface class of the exported service\n-     */\n-    protected Class<?> interfaceClass;\n-\n-    /**\n-     * The reference of the interface implementation\n-     */\n-    protected T ref;\n-\n-    /**\n-     * The service name\n-     */\n-    protected String path;\n-\n-    /**\n-     * The provider configuration\n-     */\n-    protected ProviderConfig provider;\n-\n-    /**\n-     * The providerIds\n-     */\n-    protected String providerIds;\n-\n-    /**\n-     * whether it is a GenericService\n-     */\n-    protected volatile String generic;\n-\n-\n-\n-    public ServiceConfigBase() {\n-        serviceMetadata = new ServiceMetadata();\n-        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\n-    }\n-\n-    public ServiceConfigBase(Service service) {\n-        serviceMetadata = new ServiceMetadata();\n-        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\n-        appendAnnotation(Service.class, service);\n-        setMethods(MethodConfig.constructMethodConfig(service.methods()));\n-    }\n-\n-    @Deprecated\n-    private static List<ProtocolConfig> convertProviderToProtocol(List<ProviderConfig> providers) {\n-        if (CollectionUtils.isEmpty(providers)) {\n-            return null;\n-        }\n-        List<ProtocolConfig> protocols = new ArrayList<ProtocolConfig>(providers.size());\n-        for (ProviderConfig provider : providers) {\n-            protocols.add(convertProviderToProtocol(provider));\n-        }\n-        return protocols;\n-    }\n-\n-    @Deprecated\n-    private static List<ProviderConfig> convertProtocolToProvider(List<ProtocolConfig> protocols) {\n-        if (CollectionUtils.isEmpty(protocols)) {\n-            return null;\n-        }\n-        List<ProviderConfig> providers = new ArrayList<ProviderConfig>(protocols.size());\n-        for (ProtocolConfig provider : protocols) {\n-            providers.add(convertProtocolToProvider(provider));\n-        }\n-        return providers;\n-    }\n-\n-    @Deprecated\n-    private static ProtocolConfig convertProviderToProtocol(ProviderConfig provider) {\n-        ProtocolConfig protocol = new ProtocolConfig();\n-        protocol.setName(provider.getProtocol().getName());\n-        protocol.setServer(provider.getServer());\n-        protocol.setClient(provider.getClient());\n-        protocol.setCodec(provider.getCodec());\n-        protocol.setHost(provider.getHost());\n-        protocol.setPort(provider.getPort());\n-        protocol.setPath(provider.getPath());\n-        protocol.setPayload(provider.getPayload());\n-        protocol.setThreads(provider.getThreads());\n-        protocol.setParameters(provider.getParameters());\n-        return protocol;\n-    }\n-\n-    @Deprecated\n-    private static ProviderConfig convertProtocolToProvider(ProtocolConfig protocol) {\n-        ProviderConfig provider = new ProviderConfig();\n-        provider.setProtocol(protocol);\n-        provider.setServer(protocol.getServer());\n-        provider.setClient(protocol.getClient());\n-        provider.setCodec(protocol.getCodec());\n-        provider.setHost(protocol.getHost());\n-        provider.setPort(protocol.getPort());\n-        provider.setPath(protocol.getPath());\n-        provider.setPayload(protocol.getPayload());\n-        provider.setThreads(protocol.getThreads());\n-        provider.setParameters(protocol.getParameters());\n-        return provider;\n-    }\n-\n-    public boolean shouldExport() {\n-        Boolean export = getExport();\n-        // default value is true\n-        return export == null ? true : export;\n-    }\n-\n-    @Override\n-    public Boolean getExport() {\n-        return (export == null && provider != null) ? provider.getExport() : export;\n-    }\n-\n-    public boolean shouldDelay() {\n-        Integer delay = getDelay();\n-        return delay != null && delay > 0;\n-    }\n-\n-    @Override\n-    public Integer getDelay() {\n-        return (delay == null && provider != null) ? provider.getDelay() : delay;\n-    }\n-\n-    public void checkRef() {\n-        // reference should not be null, and is the implementation of the given interface\n-        if (ref == null) {\n-            throw new IllegalStateException(\"ref not allow null!\");\n-        }\n-        if (!interfaceClass.isInstance(ref)) {\n-            throw new IllegalStateException(\"The class \"\n-                    + ref.getClass().getName() + \" unimplemented interface \"\n-                    + interfaceClass + \"!\");\n-        }\n-    }\n-\n-    public Optional<String> getContextPath(ProtocolConfig protocolConfig) {\n-        String contextPath = protocolConfig.getContextpath();\n-        if (StringUtils.isEmpty(contextPath) && provider != null) {\n-            contextPath = provider.getContextpath();\n-        }\n-        return Optional.ofNullable(contextPath);\n-    }\n-\n-    protected Class getServiceClass(T ref) {\n-        return ref.getClass();\n-    }\n-\n-    public void checkDefault() throws IllegalStateException {\n-        if (provider == null) {\n-            provider = ApplicationModel.getConfigManager()\n-                    .getDefaultProvider()\n-                    .orElse(new ProviderConfig());\n-        }\n-    }\n-\n-    public void checkProtocol() {\n-        if (provider != null && notHasSelfProtocolProperty()) {\n-            setProtocols(provider.getProtocols());\n-            setProtocolIds(provider.getProtocolIds());\n-        }\n-\n-        if (CollectionUtils.isEmpty(protocols) && provider != null) {\n-            setProtocols(provider.getProtocols());\n-        }\n-        convertProtocolIdsToProtocols();\n-    }\n-\n-    private boolean notHasSelfProtocolProperty() {\n-        return CollectionUtils.isEmpty(protocols) && StringUtils.isEmpty(protocolIds);\n-    }\n-\n-    public void completeCompoundConfigs() {\n-        super.completeCompoundConfigs(provider);\n-        if (provider != null) {\n-            if (notHasSelfProtocolProperty()) {\n-                setProtocols(provider.getProtocols());\n-                setProtocolIds(provider.getProtocolIds());\n-            }\n-            if (configCenter == null) {\n-                setConfigCenter(provider.getConfigCenter());\n-            }\n-        }\n-    }\n-\n-    private void convertProtocolIdsToProtocols() {\n-        if (StringUtils.isEmpty(protocolIds)) {\n-            if (CollectionUtils.isEmpty(protocols)) {\n-                List<ProtocolConfig> protocolConfigs = ApplicationModel.getConfigManager().getDefaultProtocols();\n-                if (protocolConfigs.isEmpty()) {\n-                    protocolConfigs = new ArrayList<>(1);\n-                    ProtocolConfig protocolConfig = new ProtocolConfig();\n-                    protocolConfig.setDefault(true);\n-                    protocolConfig.refresh();\n-                    protocolConfigs.add(protocolConfig);\n-                    ApplicationModel.getConfigManager().addProtocol(protocolConfig);\n-                }\n-                setProtocols(protocolConfigs);\n-            }\n-        } else {\n-            String[] arr = COMMA_SPLIT_PATTERN.split(protocolIds);\n-            List<ProtocolConfig> tmpProtocols = new ArrayList<>();\n-            Arrays.stream(arr).forEach(id -> {\n-                if (tmpProtocols.stream().noneMatch(prot -> prot.getId().equals(id))) {\n-                    Optional<ProtocolConfig> globalProtocol = ApplicationModel.getConfigManager().getProtocol(id);\n-                    if (globalProtocol.isPresent()) {\n-                        tmpProtocols.add(globalProtocol.get());\n-                    } else {\n-                        ProtocolConfig protocolConfig = new ProtocolConfig();\n-                        protocolConfig.setId(id);\n-                        protocolConfig.refresh();\n-                        tmpProtocols.add(protocolConfig);\n-                    }\n-                }\n-            });\n-            if (tmpProtocols.size() > arr.length) {\n-                throw new IllegalStateException(\"Too much protocols found, the protocols comply to this service are :\" + protocolIds + \" but got \" + protocols\n-                        .size() + \" registries!\");\n-            }\n-            setProtocols(tmpProtocols);\n-        }\n-    }\n-\n-    public Class<?> getInterfaceClass() {\n-        if (interfaceClass != null) {\n-            return interfaceClass;\n-        }\n-        if (ref instanceof GenericService) {\n-            return GenericService.class;\n-        }\n-        try {\n-            if (interfaceName != null && interfaceName.length() > 0) {\n-                this.interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\n-                        .getContextClassLoader());\n-            }\n-        } catch (ClassNotFoundException t) {\n-            throw new IllegalStateException(t.getMessage(), t);\n-        }\n-        return interfaceClass;\n-    }\n-\n-    /**\n-     * @param interfaceClass\n-     * @see #setInterface(Class)\n-     * @deprecated\n-     */\n-    public void setInterfaceClass(Class<?> interfaceClass) {\n-        setInterface(interfaceClass);\n-    }\n-\n-\n-\n-    public void setInterface(Class<?> interfaceClass) {\n-        if (interfaceClass != null && !interfaceClass.isInterface()) {\n-            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\n-        }\n-        this.interfaceClass = interfaceClass;\n-        setInterface(interfaceClass == null ? null : interfaceClass.getName());\n-    }\n-\n-    public T getRef() {\n-        return ref;\n-    }\n-\n-    public void setRef(T ref) {\n-        this.ref = ref;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getPath() {\n-        return path;\n-    }\n-\n-    public void setPath(String path) {\n-        this.path = path;\n-    }\n-\n-    public ProviderConfig getProvider() {\n-        return provider;\n-    }\n-\n-    public void setProvider(ProviderConfig provider) {\n-        ApplicationModel.getConfigManager().addProvider(provider);\n-        this.provider = provider;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getProviderIds() {\n-        return providerIds;\n-    }\n-\n-    public void setProviderIds(String providerIds) {\n-        this.providerIds = providerIds;\n-    }\n-\n-    public String getGeneric() {\n-        return generic;\n-    }\n-\n-    public void setGeneric(String generic) {\n-        if (StringUtils.isEmpty(generic)) {\n-            return;\n-        }\n-        if (ProtocolUtils.isValidGenericValue(generic)) {\n-            this.generic = generic;\n-        } else {\n-            throw new IllegalArgumentException(\"Unsupported generic type \" + generic);\n-        }\n-    }\n-\n-//    @Override\n-//    public void setMock(String mock) {\n-//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\n-//    }\n-//\n-//    @Override\n-//    public void setMock(Object mock) {\n-//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\n-//    }\n-\n-    public ServiceMetadata getServiceMetadata() {\n-        return serviceMetadata;\n-    }\n-\n-    /**\n-     * @deprecated Replace to getProtocols()\n-     */\n-    @Deprecated\n-    public List<ProviderConfig> getProviders() {\n-        return convertProtocolToProvider(protocols);\n-    }\n-\n-    /**\n-     * @deprecated Replace to setProtocols()\n-     */\n-    @Deprecated\n-    public void setProviders(List<ProviderConfig> providers) {\n-        this.protocols = convertProviderToProtocol(providers);\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public String getPrefix() {\n-        return DUBBO + \".service.\" + interfaceName;\n-    }\n-\n-    @Parameter(excluded = true)\n-    public String getUniqueServiceName() {\n-        return URL.buildKey(interfaceName, getGroup(), getVersion());\n-    }\n-\n-\n-\n-    @Override\n-    protected void computeValidRegistryIds() {\n-        if (provider != null && notHasSelfRegistryProperty()) {\n-            setRegistries(provider.getRegistries());\n-            setRegistryIds(provider.getRegistryIds());\n-        }\n-\n-        super.computeValidRegistryIds();\n-    }\n-\n-    public abstract void export();\n-\n-    public abstract void unexport();\n-\n-    public abstract boolean isExported();\n-\n-    public abstract boolean isUnexported();\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ServiceMetadata;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+import java.util.Optional;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+\r\n+/**\r\n+ * ServiceConfig\r\n+ *\r\n+ * @export\r\n+ */\r\n+public abstract class ServiceConfigBase<T> extends AbstractServiceConfig {\r\n+\r\n+    private static final long serialVersionUID = 3033787999037024738L;\r\n+\r\n+\r\n+\r\n+    /**\r\n+     * The interface class of the exported service\r\n+     */\r\n+    protected Class<?> interfaceClass;\r\n+\r\n+    /**\r\n+     * The reference of the interface implementation\r\n+     */\r\n+    protected T ref;\r\n+\r\n+    /**\r\n+     * The service name\r\n+     */\r\n+    protected String path;\r\n+\r\n+    /**\r\n+     * The provider configuration\r\n+     */\r\n+    protected ProviderConfig provider;\r\n+\r\n+    /**\r\n+     * The providerIds\r\n+     */\r\n+    protected String providerIds;\r\n+\r\n+    /**\r\n+     * whether it is a GenericService\r\n+     */\r\n+    protected volatile String generic;\r\n+\r\n+\r\n+\r\n+    public ServiceConfigBase() {\r\n+        serviceMetadata = new ServiceMetadata();\r\n+        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\r\n+    }\r\n+\r\n+    public ServiceConfigBase(Service service) {\r\n+        serviceMetadata = new ServiceMetadata();\r\n+        serviceMetadata.addAttribute(\"ORIGIN_CONFIG\", this);\r\n+        appendAnnotation(Service.class, service);\r\n+        setMethods(MethodConfig.constructMethodConfig(service.methods()));\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private static List<ProtocolConfig> convertProviderToProtocol(List<ProviderConfig> providers) {\r\n+        if (CollectionUtils.isEmpty(providers)) {\r\n+            return null;\r\n+        }\r\n+        List<ProtocolConfig> protocols = new ArrayList<ProtocolConfig>(providers.size());\r\n+        for (ProviderConfig provider : providers) {\r\n+            protocols.add(convertProviderToProtocol(provider));\r\n+        }\r\n+        return protocols;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private static List<ProviderConfig> convertProtocolToProvider(List<ProtocolConfig> protocols) {\r\n+        if (CollectionUtils.isEmpty(protocols)) {\r\n+            return null;\r\n+        }\r\n+        List<ProviderConfig> providers = new ArrayList<ProviderConfig>(protocols.size());\r\n+        for (ProtocolConfig provider : protocols) {\r\n+            providers.add(convertProtocolToProvider(provider));\r\n+        }\r\n+        return providers;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private static ProtocolConfig convertProviderToProtocol(ProviderConfig provider) {\r\n+        ProtocolConfig protocol = new ProtocolConfig();\r\n+        protocol.setName(provider.getProtocol().getName());\r\n+        protocol.setServer(provider.getServer());\r\n+        protocol.setClient(provider.getClient());\r\n+        protocol.setCodec(provider.getCodec());\r\n+        protocol.setHost(provider.getHost());\r\n+        protocol.setPort(provider.getPort());\r\n+        protocol.setPath(provider.getPath());\r\n+        protocol.setPayload(provider.getPayload());\r\n+        protocol.setThreads(provider.getThreads());\r\n+        protocol.setParameters(provider.getParameters());\r\n+        return protocol;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private static ProviderConfig convertProtocolToProvider(ProtocolConfig protocol) {\r\n+        ProviderConfig provider = new ProviderConfig();\r\n+        provider.setProtocol(protocol);\r\n+        provider.setServer(protocol.getServer());\r\n+        provider.setClient(protocol.getClient());\r\n+        provider.setCodec(protocol.getCodec());\r\n+        provider.setHost(protocol.getHost());\r\n+        provider.setPort(protocol.getPort());\r\n+        provider.setPath(protocol.getPath());\r\n+        provider.setPayload(protocol.getPayload());\r\n+        provider.setThreads(protocol.getThreads());\r\n+        provider.setParameters(protocol.getParameters());\r\n+        return provider;\r\n+    }\r\n+\r\n+    public boolean shouldExport() {\r\n+        Boolean export = getExport();\r\n+        // default value is true\r\n+        return export == null ? true : export;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Boolean getExport() {\r\n+        return (export == null && provider != null) ? provider.getExport() : export;\r\n+    }\r\n+\r\n+    public boolean shouldDelay() {\r\n+        Integer delay = getDelay();\r\n+        return delay != null && delay > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getDelay() {\r\n+        return (delay == null && provider != null) ? provider.getDelay() : delay;\r\n+    }\r\n+\r\n+    public void checkRef() {\r\n+        // reference should not be null, and is the implementation of the given interface\r\n+        if (ref == null) {\r\n+            throw new IllegalStateException(\"ref not allow null!\");\r\n+        }\r\n+        if (!interfaceClass.isInstance(ref)) {\r\n+            throw new IllegalStateException(\"The class \"\r\n+                    + ref.getClass().getName() + \" unimplemented interface \"\r\n+                    + interfaceClass + \"!\");\r\n+        }\r\n+    }\r\n+\r\n+    public Optional<String> getContextPath(ProtocolConfig protocolConfig) {\r\n+        String contextPath = protocolConfig.getContextpath();\r\n+        if (StringUtils.isEmpty(contextPath) && provider != null) {\r\n+            contextPath = provider.getContextpath();\r\n+        }\r\n+        return Optional.ofNullable(contextPath);\r\n+    }\r\n+\r\n+    protected Class getServiceClass(T ref) {\r\n+        return ref.getClass();\r\n+    }\r\n+\r\n+    public void checkDefault() throws IllegalStateException {\r\n+        if (provider == null) {\r\n+            provider = ApplicationModel.getConfigManager()\r\n+                    .getDefaultProvider()\r\n+                    .orElse(new ProviderConfig());\r\n+        }\r\n+    }\r\n+\r\n+    public void checkProtocol() {\r\n+        if (provider != null && notHasSelfProtocolProperty()) {\r\n+            setProtocols(provider.getProtocols());\r\n+            setProtocolIds(provider.getProtocolIds());\r\n+        }\r\n+\r\n+        if (CollectionUtils.isEmpty(protocols) && provider != null) {\r\n+            setProtocols(provider.getProtocols());\r\n+        }\r\n+        convertProtocolIdsToProtocols();\r\n+    }\r\n+\r\n+    private boolean notHasSelfProtocolProperty() {\r\n+        return CollectionUtils.isEmpty(protocols) && StringUtils.isEmpty(protocolIds);\r\n+    }\r\n+\r\n+    public void completeCompoundConfigs() {\r\n+        super.completeCompoundConfigs(provider);\r\n+        if (provider != null) {\r\n+            if (notHasSelfProtocolProperty()) {\r\n+                setProtocols(provider.getProtocols());\r\n+                setProtocolIds(provider.getProtocolIds());\r\n+            }\r\n+            if (configCenter == null) {\r\n+                setConfigCenter(provider.getConfigCenter());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void convertProtocolIdsToProtocols() {\r\n+        if (StringUtils.isEmpty(protocolIds)) {\r\n+            if (CollectionUtils.isEmpty(protocols)) {\r\n+                List<ProtocolConfig> protocolConfigs = ApplicationModel.getConfigManager().getDefaultProtocols();\r\n+                if (protocolConfigs.isEmpty()) {\r\n+                    protocolConfigs = new ArrayList<>(1);\r\n+                    ProtocolConfig protocolConfig = new ProtocolConfig();\r\n+                    protocolConfig.setDefault(true);\r\n+                    protocolConfig.refresh();\r\n+                    protocolConfigs.add(protocolConfig);\r\n+                    ApplicationModel.getConfigManager().addProtocol(protocolConfig);\r\n+                }\r\n+                setProtocols(protocolConfigs);\r\n+            }\r\n+        } else {\r\n+            String[] arr = COMMA_SPLIT_PATTERN.split(protocolIds);\r\n+            List<ProtocolConfig> tmpProtocols = new ArrayList<>();\r\n+            Arrays.stream(arr).forEach(id -> {\r\n+                if (tmpProtocols.stream().noneMatch(prot -> prot.getId().equals(id))) {\r\n+                    Optional<ProtocolConfig> globalProtocol = ApplicationModel.getConfigManager().getProtocol(id);\r\n+                    if (globalProtocol.isPresent()) {\r\n+                        tmpProtocols.add(globalProtocol.get());\r\n+                    } else {\r\n+                        ProtocolConfig protocolConfig = new ProtocolConfig();\r\n+                        protocolConfig.setId(id);\r\n+                        protocolConfig.refresh();\r\n+                        tmpProtocols.add(protocolConfig);\r\n+                    }\r\n+                }\r\n+            });\r\n+            if (tmpProtocols.size() > arr.length) {\r\n+                throw new IllegalStateException(\"Too much protocols found, the protocols comply to this service are :\" + protocolIds + \" but got \" + protocols\r\n+                        .size() + \" registries!\");\r\n+            }\r\n+            setProtocols(tmpProtocols);\r\n+        }\r\n+    }\r\n+\r\n+    public Class<?> getInterfaceClass() {\r\n+        if (interfaceClass != null) {\r\n+            return interfaceClass;\r\n+        }\r\n+        if (ref instanceof GenericService) {\r\n+            return GenericService.class;\r\n+        }\r\n+        try {\r\n+            if (interfaceName != null && interfaceName.length() > 0) {\r\n+                this.interfaceClass = Class.forName(interfaceName, true, Thread.currentThread()\r\n+                        .getContextClassLoader());\r\n+            }\r\n+        } catch (ClassNotFoundException t) {\r\n+            throw new IllegalStateException(t.getMessage(), t);\r\n+        }\r\n+        return interfaceClass;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param interfaceClass\r\n+     * @see #setInterface(Class)\r\n+     * @deprecated\r\n+     */\r\n+    public void setInterfaceClass(Class<?> interfaceClass) {\r\n+        setInterface(interfaceClass);\r\n+    }\r\n+\r\n+\r\n+\r\n+    public void setInterface(Class<?> interfaceClass) {\r\n+        if (interfaceClass != null && !interfaceClass.isInterface()) {\r\n+            throw new IllegalStateException(\"The interface class \" + interfaceClass + \" is not a interface!\");\r\n+        }\r\n+        this.interfaceClass = interfaceClass;\r\n+        setInterface(interfaceClass == null ? null : interfaceClass.getName());\r\n+    }\r\n+\r\n+    public T getRef() {\r\n+        return ref;\r\n+    }\r\n+\r\n+    public void setRef(T ref) {\r\n+        this.ref = ref;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getPath() {\r\n+        return path;\r\n+    }\r\n+\r\n+    public void setPath(String path) {\r\n+        this.path = path;\r\n+    }\r\n+\r\n+    public ProviderConfig getProvider() {\r\n+        return provider;\r\n+    }\r\n+\r\n+    public void setProvider(ProviderConfig provider) {\r\n+        ApplicationModel.getConfigManager().addProvider(provider);\r\n+        this.provider = provider;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getProviderIds() {\r\n+        return providerIds;\r\n+    }\r\n+\r\n+    public void setProviderIds(String providerIds) {\r\n+        this.providerIds = providerIds;\r\n+    }\r\n+\r\n+    public String getGeneric() {\r\n+        return generic;\r\n+    }\r\n+\r\n+    public void setGeneric(String generic) {\r\n+        if (StringUtils.isEmpty(generic)) {\r\n+            return;\r\n+        }\r\n+        if (ProtocolUtils.isValidGenericValue(generic)) {\r\n+            this.generic = generic;\r\n+        } else {\r\n+            throw new IllegalArgumentException(\"Unsupported generic type \" + generic);\r\n+        }\r\n+    }\r\n+\r\n+//    @Override\r\n+//    public void setMock(String mock) {\r\n+//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\r\n+//    }\r\n+//\r\n+//    @Override\r\n+//    public void setMock(Object mock) {\r\n+//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\r\n+//    }\r\n+\r\n+    public ServiceMetadata getServiceMetadata() {\r\n+        return serviceMetadata;\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to getProtocols()\r\n+     */\r\n+    @Deprecated\r\n+    public List<ProviderConfig> getProviders() {\r\n+        return convertProtocolToProvider(protocols);\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to setProtocols()\r\n+     */\r\n+    @Deprecated\r\n+    public void setProviders(List<ProviderConfig> providers) {\r\n+        this.protocols = convertProviderToProtocol(providers);\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public String getPrefix() {\r\n+        return DUBBO + \".service.\" + interfaceName;\r\n+    }\r\n+\r\n+    @Parameter(excluded = true)\r\n+    public String getUniqueServiceName() {\r\n+        return URL.buildKey(interfaceName, getGroup(), getVersion());\r\n+    }\r\n+\r\n+\r\n+\r\n+    @Override\r\n+    protected void computeValidRegistryIds() {\r\n+        if (provider != null && notHasSelfRegistryProperty()) {\r\n+            setRegistries(provider.getRegistries());\r\n+            setRegistryIds(provider.getRegistryIds());\r\n+        }\r\n+\r\n+        super.computeValidRegistryIds();\r\n+    }\r\n+\r\n+    public abstract void export();\r\n+\r\n+    public abstract void unexport();\r\n+\r\n+    public abstract boolean isExported();\r\n+\r\n+    public abstract boolean isUnexported();\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/config/SslConfig.java", "source2": "org/apache/dubbo/config/SslConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,188 +1,188 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.IOUtils;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-public class SslConfig extends AbstractConfig {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(SslConfig.class);\n-    private AtomicBoolean inited = new AtomicBoolean(false);\n-\n-    private String serverKeyCertChainPath;\n-    private String serverPrivateKeyPath;\n-    private String serverKeyPassword;\n-    private String serverTrustCertCollectionPath;\n-\n-    private String clientKeyCertChainPath;\n-    private String clientPrivateKeyPath;\n-    private String clientKeyPassword;\n-    private String clientTrustCertCollectionPath;\n-\n-    private InputStream serverKeyCertChainPathStream;\n-    private InputStream serverPrivateKeyPathStream;\n-    private InputStream serverTrustCertCollectionPathStream;\n-\n-    private InputStream clientKeyCertChainPathStream;\n-    private InputStream clientPrivateKeyPathStream;\n-    private InputStream clientTrustCertCollectionPathStream;\n-\n-    @Parameter(key = \"server-key-cert-chain-path\")\n-    public String getServerKeyCertChainPath() {\n-        return serverKeyCertChainPath;\n-    }\n-\n-    public void setServerKeyCertChainPath(String serverKeyCertChainPath) {\n-        this.serverKeyCertChainPath = serverKeyCertChainPath;\n-    }\n-\n-    @Parameter(key = \"server-private-key-path\")\n-    public String getServerPrivateKeyPath() {\n-        return serverPrivateKeyPath;\n-    }\n-\n-    public void setServerPrivateKeyPath(String serverPrivateKeyPath) {\n-        this.serverPrivateKeyPath = serverPrivateKeyPath;\n-    }\n-\n-    @Parameter(key = \"server-key-password\")\n-    public String getServerKeyPassword() {\n-        return serverKeyPassword;\n-    }\n-\n-    public void setServerKeyPassword(String serverKeyPassword) {\n-        this.serverKeyPassword = serverKeyPassword;\n-    }\n-\n-    @Parameter(key = \"server-trust-cert-collection-path\")\n-    public String getServerTrustCertCollectionPath() {\n-        return serverTrustCertCollectionPath;\n-    }\n-\n-    public void setServerTrustCertCollectionPath(String serverTrustCertCollectionPath) {\n-        this.serverTrustCertCollectionPath = serverTrustCertCollectionPath;\n-    }\n-\n-    @Parameter(key = \"client-key-cert-chain-path\")\n-    public String getClientKeyCertChainPath() {\n-        return clientKeyCertChainPath;\n-    }\n-\n-    public void setClientKeyCertChainPath(String clientKeyCertChainPath) {\n-        this.clientKeyCertChainPath = clientKeyCertChainPath;\n-    }\n-\n-    @Parameter(key = \"client-private-key-path\")\n-    public String getClientPrivateKeyPath() {\n-        return clientPrivateKeyPath;\n-    }\n-\n-    public void setClientPrivateKeyPath(String clientPrivateKeyPath) {\n-        this.clientPrivateKeyPath = clientPrivateKeyPath;\n-    }\n-\n-    @Parameter(key = \"client-key-password\")\n-    public String getClientKeyPassword() {\n-        return clientKeyPassword;\n-    }\n-\n-    public void setClientKeyPassword(String clientKeyPassword) {\n-        this.clientKeyPassword = clientKeyPassword;\n-    }\n-\n-    @Parameter(key = \"client-trust-cert-collection-path\")\n-    public String getClientTrustCertCollectionPath() {\n-        return clientTrustCertCollectionPath;\n-    }\n-\n-    public void setClientTrustCertCollectionPath(String clientTrustCertCollectionPath) {\n-        this.clientTrustCertCollectionPath = clientTrustCertCollectionPath;\n-    }\n-\n-    public InputStream getServerKeyCertChainPathStream() throws IOException {\n-        if (serverKeyCertChainPath != null) {\n-            serverKeyCertChainPathStream = IOUtils.getURL(serverKeyCertChainPath).openStream();\n-        }\n-        return serverKeyCertChainPathStream;\n-    }\n-\n-    public void setServerKeyCertChainPathStream(InputStream serverKeyCertChainPathStream) {\n-        this.serverKeyCertChainPathStream = serverKeyCertChainPathStream;\n-    }\n-\n-    public InputStream getServerPrivateKeyPathStream() throws IOException {\n-        if (serverPrivateKeyPath != null) {\n-            serverPrivateKeyPathStream = IOUtils.getURL(serverPrivateKeyPath).openStream();\n-        }\n-        return serverPrivateKeyPathStream;\n-    }\n-\n-    public void setServerPrivateKeyPathStream(InputStream serverPrivateKeyPathStream) {\n-        this.serverPrivateKeyPathStream = serverPrivateKeyPathStream;\n-    }\n-\n-    public InputStream getServerTrustCertCollectionPathStream() throws IOException {\n-        if (serverTrustCertCollectionPath != null) {\n-            serverTrustCertCollectionPathStream = IOUtils.getURL(serverTrustCertCollectionPath).openStream();\n-        }\n-        return serverTrustCertCollectionPathStream;\n-    }\n-\n-    public void setServerTrustCertCollectionPathStream(InputStream serverTrustCertCollectionPathStream) {\n-        this.serverTrustCertCollectionPathStream = serverTrustCertCollectionPathStream;\n-    }\n-\n-    public InputStream getClientKeyCertChainPathStream() throws IOException {\n-        if (clientKeyCertChainPath != null) {\n-            clientKeyCertChainPathStream = IOUtils.getURL(clientKeyCertChainPath).openStream();\n-        }\n-        return clientKeyCertChainPathStream;\n-    }\n-\n-    public void setClientKeyCertChainPathStream(InputStream clientKeyCertChainPathStream) {\n-        this.clientKeyCertChainPathStream = clientKeyCertChainPathStream;\n-    }\n-\n-    public InputStream getClientPrivateKeyPathStream() throws IOException {\n-        if (clientPrivateKeyPath != null) {\n-            clientPrivateKeyPathStream = IOUtils.getURL(clientPrivateKeyPath).openStream();\n-        }\n-        return clientPrivateKeyPathStream;\n-    }\n-\n-    public void setClientPrivateKeyPathStream(InputStream clientPrivateKeyPathStream) {\n-        this.clientPrivateKeyPathStream = clientPrivateKeyPathStream;\n-    }\n-\n-    public InputStream getClientTrustCertCollectionPathStream() throws IOException {\n-        if (clientTrustCertCollectionPath != null) {\n-            clientTrustCertCollectionPathStream = IOUtils.getURL(clientTrustCertCollectionPath).openStream();\n-        }\n-        return clientTrustCertCollectionPathStream;\n-    }\n-\n-    public void setClientTrustCertCollectionPathStream(InputStream clientTrustCertCollectionPathStream) {\n-        this.clientTrustCertCollectionPathStream = clientTrustCertCollectionPathStream;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.IOUtils;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+public class SslConfig extends AbstractConfig {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(SslConfig.class);\r\n+    private AtomicBoolean inited = new AtomicBoolean(false);\r\n+\r\n+    private String serverKeyCertChainPath;\r\n+    private String serverPrivateKeyPath;\r\n+    private String serverKeyPassword;\r\n+    private String serverTrustCertCollectionPath;\r\n+\r\n+    private String clientKeyCertChainPath;\r\n+    private String clientPrivateKeyPath;\r\n+    private String clientKeyPassword;\r\n+    private String clientTrustCertCollectionPath;\r\n+\r\n+    private InputStream serverKeyCertChainPathStream;\r\n+    private InputStream serverPrivateKeyPathStream;\r\n+    private InputStream serverTrustCertCollectionPathStream;\r\n+\r\n+    private InputStream clientKeyCertChainPathStream;\r\n+    private InputStream clientPrivateKeyPathStream;\r\n+    private InputStream clientTrustCertCollectionPathStream;\r\n+\r\n+    @Parameter(key = \"server-key-cert-chain-path\")\r\n+    public String getServerKeyCertChainPath() {\r\n+        return serverKeyCertChainPath;\r\n+    }\r\n+\r\n+    public void setServerKeyCertChainPath(String serverKeyCertChainPath) {\r\n+        this.serverKeyCertChainPath = serverKeyCertChainPath;\r\n+    }\r\n+\r\n+    @Parameter(key = \"server-private-key-path\")\r\n+    public String getServerPrivateKeyPath() {\r\n+        return serverPrivateKeyPath;\r\n+    }\r\n+\r\n+    public void setServerPrivateKeyPath(String serverPrivateKeyPath) {\r\n+        this.serverPrivateKeyPath = serverPrivateKeyPath;\r\n+    }\r\n+\r\n+    @Parameter(key = \"server-key-password\")\r\n+    public String getServerKeyPassword() {\r\n+        return serverKeyPassword;\r\n+    }\r\n+\r\n+    public void setServerKeyPassword(String serverKeyPassword) {\r\n+        this.serverKeyPassword = serverKeyPassword;\r\n+    }\r\n+\r\n+    @Parameter(key = \"server-trust-cert-collection-path\")\r\n+    public String getServerTrustCertCollectionPath() {\r\n+        return serverTrustCertCollectionPath;\r\n+    }\r\n+\r\n+    public void setServerTrustCertCollectionPath(String serverTrustCertCollectionPath) {\r\n+        this.serverTrustCertCollectionPath = serverTrustCertCollectionPath;\r\n+    }\r\n+\r\n+    @Parameter(key = \"client-key-cert-chain-path\")\r\n+    public String getClientKeyCertChainPath() {\r\n+        return clientKeyCertChainPath;\r\n+    }\r\n+\r\n+    public void setClientKeyCertChainPath(String clientKeyCertChainPath) {\r\n+        this.clientKeyCertChainPath = clientKeyCertChainPath;\r\n+    }\r\n+\r\n+    @Parameter(key = \"client-private-key-path\")\r\n+    public String getClientPrivateKeyPath() {\r\n+        return clientPrivateKeyPath;\r\n+    }\r\n+\r\n+    public void setClientPrivateKeyPath(String clientPrivateKeyPath) {\r\n+        this.clientPrivateKeyPath = clientPrivateKeyPath;\r\n+    }\r\n+\r\n+    @Parameter(key = \"client-key-password\")\r\n+    public String getClientKeyPassword() {\r\n+        return clientKeyPassword;\r\n+    }\r\n+\r\n+    public void setClientKeyPassword(String clientKeyPassword) {\r\n+        this.clientKeyPassword = clientKeyPassword;\r\n+    }\r\n+\r\n+    @Parameter(key = \"client-trust-cert-collection-path\")\r\n+    public String getClientTrustCertCollectionPath() {\r\n+        return clientTrustCertCollectionPath;\r\n+    }\r\n+\r\n+    public void setClientTrustCertCollectionPath(String clientTrustCertCollectionPath) {\r\n+        this.clientTrustCertCollectionPath = clientTrustCertCollectionPath;\r\n+    }\r\n+\r\n+    public InputStream getServerKeyCertChainPathStream() throws IOException {\r\n+        if (serverKeyCertChainPath != null) {\r\n+            serverKeyCertChainPathStream = IOUtils.getURL(serverKeyCertChainPath).openStream();\r\n+        }\r\n+        return serverKeyCertChainPathStream;\r\n+    }\r\n+\r\n+    public void setServerKeyCertChainPathStream(InputStream serverKeyCertChainPathStream) {\r\n+        this.serverKeyCertChainPathStream = serverKeyCertChainPathStream;\r\n+    }\r\n+\r\n+    public InputStream getServerPrivateKeyPathStream() throws IOException {\r\n+        if (serverPrivateKeyPath != null) {\r\n+            serverPrivateKeyPathStream = IOUtils.getURL(serverPrivateKeyPath).openStream();\r\n+        }\r\n+        return serverPrivateKeyPathStream;\r\n+    }\r\n+\r\n+    public void setServerPrivateKeyPathStream(InputStream serverPrivateKeyPathStream) {\r\n+        this.serverPrivateKeyPathStream = serverPrivateKeyPathStream;\r\n+    }\r\n+\r\n+    public InputStream getServerTrustCertCollectionPathStream() throws IOException {\r\n+        if (serverTrustCertCollectionPath != null) {\r\n+            serverTrustCertCollectionPathStream = IOUtils.getURL(serverTrustCertCollectionPath).openStream();\r\n+        }\r\n+        return serverTrustCertCollectionPathStream;\r\n+    }\r\n+\r\n+    public void setServerTrustCertCollectionPathStream(InputStream serverTrustCertCollectionPathStream) {\r\n+        this.serverTrustCertCollectionPathStream = serverTrustCertCollectionPathStream;\r\n+    }\r\n+\r\n+    public InputStream getClientKeyCertChainPathStream() throws IOException {\r\n+        if (clientKeyCertChainPath != null) {\r\n+            clientKeyCertChainPathStream = IOUtils.getURL(clientKeyCertChainPath).openStream();\r\n+        }\r\n+        return clientKeyCertChainPathStream;\r\n+    }\r\n+\r\n+    public void setClientKeyCertChainPathStream(InputStream clientKeyCertChainPathStream) {\r\n+        this.clientKeyCertChainPathStream = clientKeyCertChainPathStream;\r\n+    }\r\n+\r\n+    public InputStream getClientPrivateKeyPathStream() throws IOException {\r\n+        if (clientPrivateKeyPath != null) {\r\n+            clientPrivateKeyPathStream = IOUtils.getURL(clientPrivateKeyPath).openStream();\r\n+        }\r\n+        return clientPrivateKeyPathStream;\r\n+    }\r\n+\r\n+    public void setClientPrivateKeyPathStream(InputStream clientPrivateKeyPathStream) {\r\n+        this.clientPrivateKeyPathStream = clientPrivateKeyPathStream;\r\n+    }\r\n+\r\n+    public InputStream getClientTrustCertCollectionPathStream() throws IOException {\r\n+        if (clientTrustCertCollectionPath != null) {\r\n+            clientTrustCertCollectionPathStream = IOUtils.getURL(clientTrustCertCollectionPath).openStream();\r\n+        }\r\n+        return clientTrustCertCollectionPathStream;\r\n+    }\r\n+\r\n+    public void setClientTrustCertCollectionPathStream(InputStream clientTrustCertCollectionPathStream) {\r\n+        this.clientTrustCertCollectionPathStream = clientTrustCertCollectionPathStream;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/Argument.java", "source2": "org/apache/dubbo/config/annotation/Argument.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * @since 2.6.5\n- *\n- * 2018/9/29\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.ANNOTATION_TYPE})\n-@Inherited\n-public @interface Argument {\n-    //argument: index -1 represents not set\n-    int index() default -1;\n-\n-    //argument type\n-    String type() default \"\";\n-\n-    //callback interface\n-    boolean callback() default false;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * @since 2.6.5\r\n+ *\r\n+ * 2018/9/29\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.ANNOTATION_TYPE})\r\n+@Inherited\r\n+public @interface Argument {\r\n+    //argument: index -1 represents not set\r\n+    int index() default -1;\r\n+\r\n+    //argument type\r\n+    String type() default \"\";\r\n+\r\n+    //callback interface\r\n+    boolean callback() default false;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/DubboReference.java", "source2": "org/apache/dubbo/config/annotation/DubboReference.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,298 +1,298 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-import org.apache.dubbo.common.constants.RegistryConstants;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * An annotation used for referencing a Dubbo service\n- *\n- * @since 2.7.7\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\n-public @interface DubboReference {\n-\n-    /**\n-     * Interface class, default value is void.class\n-     */\n-    Class<?> interfaceClass() default void.class;\n-\n-    /**\n-     * Interface class name, default value is empty string\n-     */\n-    String interfaceName() default \"\";\n-\n-    /**\n-     * Service version, default value is empty string\n-     */\n-    String version() default \"\";\n-\n-    /**\n-     * Service group, default value is empty string\n-     */\n-    String group() default \"\";\n-\n-    /**\n-     * Service target URL for direct invocation, if this is specified, then registry center takes no effect.\n-     */\n-    String url() default \"\";\n-\n-    /**\n-     * Client transport type, default value is \"netty\"\n-     */\n-    String client() default \"\";\n-\n-    /**\n-     * Whether to enable generic invocation, default value is false\n-     */\n-    boolean generic() default false;\n-\n-    /**\n-     * When enable, prefer to call local service in the same JVM if it's present, default value is true\n-     */\n-    boolean injvm() default true;\n-\n-    /**\n-     * Check if service provider is available during boot up, default value is true\n-     */\n-    boolean check() default true;\n-\n-    /**\n-     * Whether eager initialize the reference bean when all properties are set, default value is false\n-     */\n-    boolean init() default false;\n-\n-    /**\n-     * Whether to make connection when the client is created, the default value is false\n-     */\n-    boolean lazy() default false;\n-\n-    /**\n-     * Export an stub service for event dispatch, default value is false.\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#STUB_EVENT_METHODS_KEY\n-     */\n-    boolean stubevent() default false;\n-\n-    /**\n-     * Whether to reconnect if connection is lost, if not specify, reconnect is enabled by default, and the interval\n-     * for retry connecting is 2000 ms\n-     * <p>\n-     * see org.apache.dubbo.remoting.Constants#DEFAULT_RECONNECT_PERIOD\n-     */\n-    String reconnect() default \"\";\n-\n-    /**\n-     * Whether to stick to the same node in the cluster, the default value is false\n-     * <p>\n-     * see Constants#DEFAULT_CLUSTER_STICKY\n-     */\n-    boolean sticky() default false;\n-\n-    /**\n-     * How the proxy is generated, legal values include: jdk, javassist\n-     */\n-    String proxy() default \"\";\n-\n-    /**\n-     * Service stub name, use interface name + Local if not set\n-     */\n-    String stub() default \"\";\n-\n-    /**\n-     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\n-     */\n-    String cluster() default \"\";\n-\n-    /**\n-     * Maximum connections service provider can accept, default value is 0 - connection is shared\n-     */\n-    int connections() default 0;\n-\n-    /**\n-     * The callback instance limit peer connection\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\n-     */\n-    int callbacks() default 0;\n-\n-    /**\n-     * Callback method name when connected, default value is empty string\n-     */\n-    String onconnect() default \"\";\n-\n-    /**\n-     * Callback method name when disconnected, default value is empty string\n-     */\n-    String ondisconnect() default \"\";\n-\n-    /**\n-     * Service owner, default value is empty string\n-     */\n-    String owner() default \"\";\n-\n-    /**\n-     * Service layer, default value is empty string\n-     */\n-    String layer() default \"\";\n-\n-    /**\n-     * Service invocation retry times\n-     * <p>\n-     * see Constants#DEFAULT_RETRIES\n-     */\n-    int retries() default 2;\n-\n-    /**\n-     * Load balance strategy, legal values include: random, roundrobin, leastactive\n-     * <p>\n-     * see Constants#DEFAULT_LOADBALANCE\n-     */\n-    String loadbalance() default \"\";\n-\n-    /**\n-     * Whether to enable async invocation, default value is false\n-     */\n-    boolean async() default false;\n-\n-    /**\n-     * Maximum active requests allowed, default value is 0\n-     */\n-    int actives() default 0;\n-\n-    /**\n-     * Whether the async request has already been sent, the default value is false\n-     */\n-    boolean sent() default false;\n-\n-    /**\n-     * Service mock name, use interface name + Mock if not set\n-     */\n-    String mock() default \"\";\n-\n-    /**\n-     * Whether to use JSR303 validation, legal values are: true, false\n-     */\n-    String validation() default \"\";\n-\n-    /**\n-     * Timeout value for service invocation, default value is 0\n-     */\n-    int timeout() default 0;\n-\n-    /**\n-     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\n-     */\n-    String cache() default \"\";\n-\n-    /**\n-     * Filters for service invocation\n-     * <p>\n-     * see Filter\n-     */\n-    String[] filter() default {};\n-\n-    /**\n-     * Listeners for service exporting and unexporting\n-     * <p>\n-     * see ExporterListener\n-     */\n-    String[] listener() default {};\n-\n-    /**\n-     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\n-     */\n-    String[] parameters() default {};\n-\n-    /**\n-     * Application associated name\n-     */\n-    String application() default \"\";\n-\n-    /**\n-     * Module associated name\n-     */\n-    String module() default \"\";\n-\n-    /**\n-     * Consumer associated name\n-     */\n-    String consumer() default \"\";\n-\n-    /**\n-     * Monitor associated name\n-     */\n-    String monitor() default \"\";\n-\n-    /**\n-     * Registry associated name\n-     */\n-    String[] registry() default {};\n-\n-    /**\n-     * The communication protocol of Dubbo Service\n-     *\n-     * @return the default value is \"\"\n-     * @since 2.6.6\n-     */\n-    String protocol() default \"\";\n-\n-    /**\n-     * Service tag name\n-     */\n-    String tag() default \"\";\n-\n-    /**\n-     * Service merger\n-     */\n-    String merger() default \"\";\n-\n-    /**\n-     * methods support\n-     */\n-    Method[] methods() default {};\n-\n-    /**\n-     * The id\n-     *\n-     * @return default value is empty\n-     * @since 2.7.3\n-     */\n-    String id() default \"\";\n-\n-    /**\n-     * @return The service names that the Dubbo interface subscribed\n-     * @see RegistryConstants#SUBSCRIBED_SERVICE_NAMES_KEY\n-     * @deprecated using {@link DubboReference#providedBy()}\n-     * @since 2.7.8\n-     */\n-    String[] services() default {};\n-\n-    /**\n-     * declares which app or service this interface belongs to\n-     * @see RegistryConstants#PROVIDED_BY\n-     */\n-    String[] providedBy() default {};\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+import org.apache.dubbo.common.constants.RegistryConstants;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * An annotation used for referencing a Dubbo service\r\n+ *\r\n+ * @since 2.7.7\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\r\n+public @interface DubboReference {\r\n+\r\n+    /**\r\n+     * Interface class, default value is void.class\r\n+     */\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    /**\r\n+     * Interface class name, default value is empty string\r\n+     */\r\n+    String interfaceName() default \"\";\r\n+\r\n+    /**\r\n+     * Service version, default value is empty string\r\n+     */\r\n+    String version() default \"\";\r\n+\r\n+    /**\r\n+     * Service group, default value is empty string\r\n+     */\r\n+    String group() default \"\";\r\n+\r\n+    /**\r\n+     * Service target URL for direct invocation, if this is specified, then registry center takes no effect.\r\n+     */\r\n+    String url() default \"\";\r\n+\r\n+    /**\r\n+     * Client transport type, default value is \"netty\"\r\n+     */\r\n+    String client() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to enable generic invocation, default value is false\r\n+     */\r\n+    boolean generic() default false;\r\n+\r\n+    /**\r\n+     * When enable, prefer to call local service in the same JVM if it's present, default value is true\r\n+     */\r\n+    boolean injvm() default true;\r\n+\r\n+    /**\r\n+     * Check if service provider is available during boot up, default value is true\r\n+     */\r\n+    boolean check() default true;\r\n+\r\n+    /**\r\n+     * Whether eager initialize the reference bean when all properties are set, default value is false\r\n+     */\r\n+    boolean init() default false;\r\n+\r\n+    /**\r\n+     * Whether to make connection when the client is created, the default value is false\r\n+     */\r\n+    boolean lazy() default false;\r\n+\r\n+    /**\r\n+     * Export an stub service for event dispatch, default value is false.\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#STUB_EVENT_METHODS_KEY\r\n+     */\r\n+    boolean stubevent() default false;\r\n+\r\n+    /**\r\n+     * Whether to reconnect if connection is lost, if not specify, reconnect is enabled by default, and the interval\r\n+     * for retry connecting is 2000 ms\r\n+     * <p>\r\n+     * see org.apache.dubbo.remoting.Constants#DEFAULT_RECONNECT_PERIOD\r\n+     */\r\n+    String reconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to stick to the same node in the cluster, the default value is false\r\n+     * <p>\r\n+     * see Constants#DEFAULT_CLUSTER_STICKY\r\n+     */\r\n+    boolean sticky() default false;\r\n+\r\n+    /**\r\n+     * How the proxy is generated, legal values include: jdk, javassist\r\n+     */\r\n+    String proxy() default \"\";\r\n+\r\n+    /**\r\n+     * Service stub name, use interface name + Local if not set\r\n+     */\r\n+    String stub() default \"\";\r\n+\r\n+    /**\r\n+     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\r\n+     */\r\n+    String cluster() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum connections service provider can accept, default value is 0 - connection is shared\r\n+     */\r\n+    int connections() default 0;\r\n+\r\n+    /**\r\n+     * The callback instance limit peer connection\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\r\n+     */\r\n+    int callbacks() default 0;\r\n+\r\n+    /**\r\n+     * Callback method name when connected, default value is empty string\r\n+     */\r\n+    String onconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Callback method name when disconnected, default value is empty string\r\n+     */\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Service owner, default value is empty string\r\n+     */\r\n+    String owner() default \"\";\r\n+\r\n+    /**\r\n+     * Service layer, default value is empty string\r\n+     */\r\n+    String layer() default \"\";\r\n+\r\n+    /**\r\n+     * Service invocation retry times\r\n+     * <p>\r\n+     * see Constants#DEFAULT_RETRIES\r\n+     */\r\n+    int retries() default 2;\r\n+\r\n+    /**\r\n+     * Load balance strategy, legal values include: random, roundrobin, leastactive\r\n+     * <p>\r\n+     * see Constants#DEFAULT_LOADBALANCE\r\n+     */\r\n+    String loadbalance() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to enable async invocation, default value is false\r\n+     */\r\n+    boolean async() default false;\r\n+\r\n+    /**\r\n+     * Maximum active requests allowed, default value is 0\r\n+     */\r\n+    int actives() default 0;\r\n+\r\n+    /**\r\n+     * Whether the async request has already been sent, the default value is false\r\n+     */\r\n+    boolean sent() default false;\r\n+\r\n+    /**\r\n+     * Service mock name, use interface name + Mock if not set\r\n+     */\r\n+    String mock() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to use JSR303 validation, legal values are: true, false\r\n+     */\r\n+    String validation() default \"\";\r\n+\r\n+    /**\r\n+     * Timeout value for service invocation, default value is 0\r\n+     */\r\n+    int timeout() default 0;\r\n+\r\n+    /**\r\n+     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\r\n+     */\r\n+    String cache() default \"\";\r\n+\r\n+    /**\r\n+     * Filters for service invocation\r\n+     * <p>\r\n+     * see Filter\r\n+     */\r\n+    String[] filter() default {};\r\n+\r\n+    /**\r\n+     * Listeners for service exporting and unexporting\r\n+     * <p>\r\n+     * see ExporterListener\r\n+     */\r\n+    String[] listener() default {};\r\n+\r\n+    /**\r\n+     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\r\n+     */\r\n+    String[] parameters() default {};\r\n+\r\n+    /**\r\n+     * Application associated name\r\n+     */\r\n+    String application() default \"\";\r\n+\r\n+    /**\r\n+     * Module associated name\r\n+     */\r\n+    String module() default \"\";\r\n+\r\n+    /**\r\n+     * Consumer associated name\r\n+     */\r\n+    String consumer() default \"\";\r\n+\r\n+    /**\r\n+     * Monitor associated name\r\n+     */\r\n+    String monitor() default \"\";\r\n+\r\n+    /**\r\n+     * Registry associated name\r\n+     */\r\n+    String[] registry() default {};\r\n+\r\n+    /**\r\n+     * The communication protocol of Dubbo Service\r\n+     *\r\n+     * @return the default value is \"\"\r\n+     * @since 2.6.6\r\n+     */\r\n+    String protocol() default \"\";\r\n+\r\n+    /**\r\n+     * Service tag name\r\n+     */\r\n+    String tag() default \"\";\r\n+\r\n+    /**\r\n+     * Service merger\r\n+     */\r\n+    String merger() default \"\";\r\n+\r\n+    /**\r\n+     * methods support\r\n+     */\r\n+    Method[] methods() default {};\r\n+\r\n+    /**\r\n+     * The id\r\n+     *\r\n+     * @return default value is empty\r\n+     * @since 2.7.3\r\n+     */\r\n+    String id() default \"\";\r\n+\r\n+    /**\r\n+     * @return The service names that the Dubbo interface subscribed\r\n+     * @see RegistryConstants#SUBSCRIBED_SERVICE_NAMES_KEY\r\n+     * @deprecated using {@link DubboReference#providedBy()}\r\n+     * @since 2.7.8\r\n+     */\r\n+    String[] services() default {};\r\n+\r\n+    /**\r\n+     * declares which app or service this interface belongs to\r\n+     * @see RegistryConstants#PROVIDED_BY\r\n+     */\r\n+    String[] providedBy() default {};\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/DubboService.java", "source2": "org/apache/dubbo/config/annotation/DubboService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,278 +1,278 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES;\n-\n-/**\n- * Class-level annotation used for declaring Dubbo service\n- *\n- * @since 2.7.7\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.TYPE})\n-@Inherited\n-public @interface DubboService {\n-\n-    /**\n-     * Interface class, default value is void.class\n-     */\n-    Class<?> interfaceClass() default void.class;\n-\n-    /**\n-     * Interface class name, default value is empty string\n-     */\n-    String interfaceName() default \"\";\n-\n-    /**\n-     * Service version, default value is empty string\n-     */\n-    String version() default \"\";\n-\n-    /**\n-     * Service group, default value is empty string\n-     */\n-    String group() default \"\";\n-\n-    /**\n-     * Service path, default value is empty string\n-     */\n-    String path() default \"\";\n-\n-    /**\n-     * Whether to export service, default value is true\n-     */\n-    boolean export() default true;\n-\n-    /**\n-     * Service token, default value is false\n-     */\n-    String token() default \"\";\n-\n-    /**\n-     * Whether the service is deprecated, default value is false\n-     */\n-    boolean deprecated() default false;\n-\n-    /**\n-     * Whether the service is dynamic, default value is true\n-     */\n-    boolean dynamic() default true;\n-\n-    /**\n-     * Access log for the service, default value is \"\"\n-     */\n-    String accesslog() default \"\";\n-\n-    /**\n-     * Maximum concurrent executes for the service, default value is 0 - no limits\n-     */\n-    int executes() default 0;\n-\n-    /**\n-     * Whether to register the service to register center, default value is true\n-     */\n-    boolean register() default true;\n-\n-    /**\n-     * Service weight value, default value is 0\n-     */\n-    int weight() default 0;\n-\n-    /**\n-     * Service doc, default value is \"\"\n-     */\n-    String document() default \"\";\n-\n-    /**\n-     * Delay time for service registration, default value is 0\n-     */\n-    int delay() default 0;\n-\n-    /**\n-     * @see DubboService#stub()\n-     * @deprecated\n-     */\n-    String local() default \"\";\n-\n-    /**\n-     * Service stub name, use interface name + Local if not set\n-     */\n-    String stub() default \"\";\n-\n-    /**\n-     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\n-     */\n-    String cluster() default \"\";\n-\n-    /**\n-     * How the proxy is generated, legal values include: jdk, javassist\n-     */\n-    String proxy() default \"\";\n-\n-    /**\n-     * Maximum connections service provider can accept, default value is 0 - connection is shared\n-     */\n-    int connections() default 0;\n-\n-    /**\n-     * The callback instance limit peer connection\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\n-     */\n-    int callbacks() default org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\n-\n-    /**\n-     * Callback method name when connected, default value is empty string\n-     */\n-    String onconnect() default \"\";\n-\n-    /**\n-     * Callback method name when disconnected, default value is empty string\n-     */\n-    String ondisconnect() default \"\";\n-\n-    /**\n-     * Service owner, default value is empty string\n-     */\n-    String owner() default \"\";\n-\n-    /**\n-     * Service layer, default value is empty string\n-     */\n-    String layer() default \"\";\n-\n-    /**\n-     * Service invocation retry times\n-     *\n-     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_RETRIES\n-     */\n-    int retries() default DEFAULT_RETRIES;\n-\n-    /**\n-     * Load balance strategy, legal values include: random, roundrobin, leastactive\n-     *\n-     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_LOADBALANCE\n-     */\n-    String loadbalance() default DEFAULT_LOADBALANCE;\n-\n-    /**\n-     * Whether to enable async invocation, default value is false\n-     */\n-    boolean async() default false;\n-\n-    /**\n-     * Maximum active requests allowed, default value is 0\n-     */\n-    int actives() default 0;\n-\n-    /**\n-     * Whether the async request has already been sent, the default value is false\n-     */\n-    boolean sent() default false;\n-\n-    /**\n-     * Service mock name, use interface name + Mock if not set\n-     */\n-    String mock() default \"\";\n-\n-    /**\n-     * Whether to use JSR303 validation, legal values are: true, false\n-     */\n-    String validation() default \"\";\n-\n-    /**\n-     * Timeout value for service invocation, default value is 0\n-     */\n-    int timeout() default 0;\n-\n-    /**\n-     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\n-     */\n-    String cache() default \"\";\n-\n-    /**\n-     * Filters for service invocation\n-     *\n-     * @see Filter\n-     */\n-    String[] filter() default {};\n-\n-    /**\n-     * Listeners for service exporting and unexporting\n-     *\n-     * @see ExporterListener\n-     */\n-    String[] listener() default {};\n-\n-    /**\n-     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\n-     */\n-    String[] parameters() default {};\n-\n-    /**\n-     * Application spring bean name\n-     */\n-    String application() default \"\";\n-\n-    /**\n-     * Module spring bean name\n-     */\n-    String module() default \"\";\n-\n-    /**\n-     * Provider spring bean name\n-     */\n-    String provider() default \"\";\n-\n-    /**\n-     * Protocol spring bean names\n-     */\n-    String[] protocol() default {};\n-\n-    /**\n-     * Monitor spring bean name\n-     */\n-    String monitor() default \"\";\n-\n-    /**\n-     * Registry spring bean name\n-     */\n-    String[] registry() default {};\n-\n-    /**\n-     * Service tag name\n-     */\n-    String tag() default \"\";\n-\n-    /**\n-     * methods support\n-     *\n-     * @return\n-     */\n-    Method[] methods() default {};\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES;\r\n+\r\n+/**\r\n+ * Class-level annotation used for declaring Dubbo service\r\n+ *\r\n+ * @since 2.7.7\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.TYPE})\r\n+@Inherited\r\n+public @interface DubboService {\r\n+\r\n+    /**\r\n+     * Interface class, default value is void.class\r\n+     */\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    /**\r\n+     * Interface class name, default value is empty string\r\n+     */\r\n+    String interfaceName() default \"\";\r\n+\r\n+    /**\r\n+     * Service version, default value is empty string\r\n+     */\r\n+    String version() default \"\";\r\n+\r\n+    /**\r\n+     * Service group, default value is empty string\r\n+     */\r\n+    String group() default \"\";\r\n+\r\n+    /**\r\n+     * Service path, default value is empty string\r\n+     */\r\n+    String path() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to export service, default value is true\r\n+     */\r\n+    boolean export() default true;\r\n+\r\n+    /**\r\n+     * Service token, default value is false\r\n+     */\r\n+    String token() default \"\";\r\n+\r\n+    /**\r\n+     * Whether the service is deprecated, default value is false\r\n+     */\r\n+    boolean deprecated() default false;\r\n+\r\n+    /**\r\n+     * Whether the service is dynamic, default value is true\r\n+     */\r\n+    boolean dynamic() default true;\r\n+\r\n+    /**\r\n+     * Access log for the service, default value is \"\"\r\n+     */\r\n+    String accesslog() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum concurrent executes for the service, default value is 0 - no limits\r\n+     */\r\n+    int executes() default 0;\r\n+\r\n+    /**\r\n+     * Whether to register the service to register center, default value is true\r\n+     */\r\n+    boolean register() default true;\r\n+\r\n+    /**\r\n+     * Service weight value, default value is 0\r\n+     */\r\n+    int weight() default 0;\r\n+\r\n+    /**\r\n+     * Service doc, default value is \"\"\r\n+     */\r\n+    String document() default \"\";\r\n+\r\n+    /**\r\n+     * Delay time for service registration, default value is 0\r\n+     */\r\n+    int delay() default 0;\r\n+\r\n+    /**\r\n+     * @see DubboService#stub()\r\n+     * @deprecated\r\n+     */\r\n+    String local() default \"\";\r\n+\r\n+    /**\r\n+     * Service stub name, use interface name + Local if not set\r\n+     */\r\n+    String stub() default \"\";\r\n+\r\n+    /**\r\n+     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\r\n+     */\r\n+    String cluster() default \"\";\r\n+\r\n+    /**\r\n+     * How the proxy is generated, legal values include: jdk, javassist\r\n+     */\r\n+    String proxy() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum connections service provider can accept, default value is 0 - connection is shared\r\n+     */\r\n+    int connections() default 0;\r\n+\r\n+    /**\r\n+     * The callback instance limit peer connection\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\r\n+     */\r\n+    int callbacks() default org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\r\n+\r\n+    /**\r\n+     * Callback method name when connected, default value is empty string\r\n+     */\r\n+    String onconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Callback method name when disconnected, default value is empty string\r\n+     */\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Service owner, default value is empty string\r\n+     */\r\n+    String owner() default \"\";\r\n+\r\n+    /**\r\n+     * Service layer, default value is empty string\r\n+     */\r\n+    String layer() default \"\";\r\n+\r\n+    /**\r\n+     * Service invocation retry times\r\n+     *\r\n+     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_RETRIES\r\n+     */\r\n+    int retries() default DEFAULT_RETRIES;\r\n+\r\n+    /**\r\n+     * Load balance strategy, legal values include: random, roundrobin, leastactive\r\n+     *\r\n+     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_LOADBALANCE\r\n+     */\r\n+    String loadbalance() default DEFAULT_LOADBALANCE;\r\n+\r\n+    /**\r\n+     * Whether to enable async invocation, default value is false\r\n+     */\r\n+    boolean async() default false;\r\n+\r\n+    /**\r\n+     * Maximum active requests allowed, default value is 0\r\n+     */\r\n+    int actives() default 0;\r\n+\r\n+    /**\r\n+     * Whether the async request has already been sent, the default value is false\r\n+     */\r\n+    boolean sent() default false;\r\n+\r\n+    /**\r\n+     * Service mock name, use interface name + Mock if not set\r\n+     */\r\n+    String mock() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to use JSR303 validation, legal values are: true, false\r\n+     */\r\n+    String validation() default \"\";\r\n+\r\n+    /**\r\n+     * Timeout value for service invocation, default value is 0\r\n+     */\r\n+    int timeout() default 0;\r\n+\r\n+    /**\r\n+     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\r\n+     */\r\n+    String cache() default \"\";\r\n+\r\n+    /**\r\n+     * Filters for service invocation\r\n+     *\r\n+     * @see Filter\r\n+     */\r\n+    String[] filter() default {};\r\n+\r\n+    /**\r\n+     * Listeners for service exporting and unexporting\r\n+     *\r\n+     * @see ExporterListener\r\n+     */\r\n+    String[] listener() default {};\r\n+\r\n+    /**\r\n+     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\r\n+     */\r\n+    String[] parameters() default {};\r\n+\r\n+    /**\r\n+     * Application spring bean name\r\n+     */\r\n+    String application() default \"\";\r\n+\r\n+    /**\r\n+     * Module spring bean name\r\n+     */\r\n+    String module() default \"\";\r\n+\r\n+    /**\r\n+     * Provider spring bean name\r\n+     */\r\n+    String provider() default \"\";\r\n+\r\n+    /**\r\n+     * Protocol spring bean names\r\n+     */\r\n+    String[] protocol() default {};\r\n+\r\n+    /**\r\n+     * Monitor spring bean name\r\n+     */\r\n+    String monitor() default \"\";\r\n+\r\n+    /**\r\n+     * Registry spring bean name\r\n+     */\r\n+    String[] registry() default {};\r\n+\r\n+    /**\r\n+     * Service tag name\r\n+     */\r\n+    String tag() default \"\";\r\n+\r\n+    /**\r\n+     * methods support\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Method[] methods() default {};\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/Method.java", "source2": "org/apache/dubbo/config/annotation/Method.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * @since 2.6.5\n- *  *\n- *  * 2018/9/29\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.ANNOTATION_TYPE})\n-@Inherited\n-public @interface Method {\n-    String name();\n-\n-    int timeout() default -1;\n-\n-    int retries() default -1;\n-\n-    String loadbalance() default \"\";\n-\n-    boolean async() default false;\n-\n-    boolean sent() default true;\n-\n-    int actives() default 0;\n-\n-    int executes() default 0;\n-\n-    boolean deprecated() default false;\n-\n-    boolean sticky() default false;\n-\n-    boolean isReturn() default true;\n-\n-    String oninvoke() default \"\";\n-\n-    String onreturn() default \"\";\n-\n-    String onthrow() default \"\";\n-\n-    String cache() default \"\";\n-\n-    String validation() default \"\";\n-\n-    String merger() default \"\";\n-\n-    Argument[] arguments() default {};\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * @since 2.6.5\r\n+ *  *\r\n+ *  * 2018/9/29\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.ANNOTATION_TYPE})\r\n+@Inherited\r\n+public @interface Method {\r\n+    String name();\r\n+\r\n+    int timeout() default -1;\r\n+\r\n+    int retries() default -1;\r\n+\r\n+    String loadbalance() default \"\";\r\n+\r\n+    boolean async() default false;\r\n+\r\n+    boolean sent() default true;\r\n+\r\n+    int actives() default 0;\r\n+\r\n+    int executes() default 0;\r\n+\r\n+    boolean deprecated() default false;\r\n+\r\n+    boolean sticky() default false;\r\n+\r\n+    boolean isReturn() default true;\r\n+\r\n+    String oninvoke() default \"\";\r\n+\r\n+    String onreturn() default \"\";\r\n+\r\n+    String onthrow() default \"\";\r\n+\r\n+    String cache() default \"\";\r\n+\r\n+    String validation() default \"\";\r\n+\r\n+    String merger() default \"\";\r\n+\r\n+    Argument[] arguments() default {};\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/Reference.java", "source2": "org/apache/dubbo/config/annotation/Reference.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,282 +1,282 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Reference\n- * <p>\n- *\n- * @see DubboReference\n- * @since 2.7.0\n- * @deprecated Recommend {@link DubboReference} as the substitute\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\n-@Deprecated\n-public @interface Reference {\n-    /**\n-     * Interface class, default value is void.class\n-     */\n-    Class<?> interfaceClass() default void.class;\n-\n-    /**\n-     * Interface class name, default value is empty string\n-     */\n-    String interfaceName() default \"\";\n-\n-    /**\n-     * Service version, default value is empty string\n-     */\n-    String version() default \"\";\n-\n-    /**\n-     * Service group, default value is empty string\n-     */\n-    String group() default \"\";\n-\n-    /**\n-     * Service target URL for direct invocation, if this is specified, then registry center takes no effect.\n-     */\n-    String url() default \"\";\n-\n-    /**\n-     * Client transport type, default value is \"netty\"\n-     */\n-    String client() default \"\";\n-\n-    /**\n-     * Whether to enable generic invocation, default value is false\n-     */\n-    boolean generic() default false;\n-\n-    /**\n-     * When enable, prefer to call local service in the same JVM if it's present, default value is true\n-     */\n-    boolean injvm() default true;\n-\n-    /**\n-     * Check if service provider is available during boot up, default value is true\n-     */\n-    boolean check() default true;\n-\n-    /**\n-     * Whether eager initialize the reference bean when all properties are set, default value is false\n-     */\n-    boolean init() default false;\n-\n-    /**\n-     * Whether to make connection when the client is created, the default value is false\n-     */\n-    boolean lazy() default false;\n-\n-    /**\n-     * Export an stub service for event dispatch, default value is false.\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#STUB_EVENT_METHODS_KEY\n-     */\n-    boolean stubevent() default false;\n-\n-    /**\n-     * Whether to reconnect if connection is lost, if not specify, reconnect is enabled by default, and the interval\n-     * for retry connecting is 2000 ms\n-     * <p>\n-     * see org.apache.dubbo.remoting.Constants#DEFAULT_RECONNECT_PERIOD\n-     */\n-    String reconnect() default \"\";\n-\n-    /**\n-     * Whether to stick to the same node in the cluster, the default value is false\n-     * <p>\n-     * see Constants#DEFAULT_CLUSTER_STICKY\n-     */\n-    boolean sticky() default false;\n-\n-    /**\n-     * How the proxy is generated, legal values include: jdk, javassist\n-     */\n-    String proxy() default \"\";\n-\n-    /**\n-     * Service stub name, use interface name + Local if not set\n-     */\n-    String stub() default \"\";\n-\n-    /**\n-     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\n-     */\n-    String cluster() default \"\";\n-\n-    /**\n-     * Maximum connections service provider can accept, default value is 0 - connection is shared\n-     */\n-    int connections() default 0;\n-\n-    /**\n-     * The callback instance limit peer connection\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\n-     */\n-    int callbacks() default 0;\n-\n-    /**\n-     * Callback method name when connected, default value is empty string\n-     */\n-    String onconnect() default \"\";\n-\n-    /**\n-     * Callback method name when disconnected, default value is empty string\n-     */\n-    String ondisconnect() default \"\";\n-\n-    /**\n-     * Service owner, default value is empty string\n-     */\n-    String owner() default \"\";\n-\n-    /**\n-     * Service layer, default value is empty string\n-     */\n-    String layer() default \"\";\n-\n-    /**\n-     * Service invocation retry times\n-     * <p>\n-     * see Constants#DEFAULT_RETRIES\n-     */\n-    int retries() default 2;\n-\n-    /**\n-     * Load balance strategy, legal values include: random, roundrobin, leastactive\n-     * <p>\n-     * see Constants#DEFAULT_LOADBALANCE\n-     */\n-    String loadbalance() default \"\";\n-\n-    /**\n-     * Whether to enable async invocation, default value is false\n-     */\n-    boolean async() default false;\n-\n-    /**\n-     * Maximum active requests allowed, default value is 0\n-     */\n-    int actives() default 0;\n-\n-    /**\n-     * Whether the async request has already been sent, the default value is false\n-     */\n-    boolean sent() default false;\n-\n-    /**\n-     * Service mock name, use interface name + Mock if not set\n-     */\n-    String mock() default \"\";\n-\n-    /**\n-     * Whether to use JSR303 validation, legal values are: true, false\n-     */\n-    String validation() default \"\";\n-\n-    /**\n-     * Timeout value for service invocation, default value is 0\n-     */\n-    int timeout() default 0;\n-\n-    /**\n-     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\n-     */\n-    String cache() default \"\";\n-\n-    /**\n-     * Filters for service invocation\n-     * <p>\n-     * see Filter\n-     */\n-    String[] filter() default {};\n-\n-    /**\n-     * Listeners for service exporting and unexporting\n-     * <p>\n-     * see ExporterListener\n-     */\n-    String[] listener() default {};\n-\n-    /**\n-     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\n-     */\n-    String[] parameters() default {};\n-\n-    /**\n-     * Application associated name\n-     */\n-    String application() default \"\";\n-\n-    /**\n-     * Module associated name\n-     */\n-    String module() default \"\";\n-\n-    /**\n-     * Consumer associated name\n-     */\n-    String consumer() default \"\";\n-\n-    /**\n-     * Monitor associated name\n-     */\n-    String monitor() default \"\";\n-\n-    /**\n-     * Registry associated name\n-     */\n-    String[] registry() default {};\n-\n-    /**\n-     * The communication protocol of Dubbo Service\n-     *\n-     * @return the default value is \"\"\n-     * @since 2.6.6\n-     */\n-    String protocol() default \"\";\n-\n-    /**\n-     * Service tag name\n-     */\n-    String tag() default \"\";\n-\n-    /**\n-     * methods support\n-     *\n-     * @return\n-     */\n-    Method[] methods() default {};\n-\n-    /**\n-     * The id\n-     *\n-     * @return default value is empty\n-     * @since 2.7.3\n-     */\n-    String id() default \"\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Reference\r\n+ * <p>\r\n+ *\r\n+ * @see DubboReference\r\n+ * @since 2.7.0\r\n+ * @deprecated Recommend {@link DubboReference} as the substitute\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.FIELD, ElementType.METHOD, ElementType.ANNOTATION_TYPE})\r\n+@Deprecated\r\n+public @interface Reference {\r\n+    /**\r\n+     * Interface class, default value is void.class\r\n+     */\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    /**\r\n+     * Interface class name, default value is empty string\r\n+     */\r\n+    String interfaceName() default \"\";\r\n+\r\n+    /**\r\n+     * Service version, default value is empty string\r\n+     */\r\n+    String version() default \"\";\r\n+\r\n+    /**\r\n+     * Service group, default value is empty string\r\n+     */\r\n+    String group() default \"\";\r\n+\r\n+    /**\r\n+     * Service target URL for direct invocation, if this is specified, then registry center takes no effect.\r\n+     */\r\n+    String url() default \"\";\r\n+\r\n+    /**\r\n+     * Client transport type, default value is \"netty\"\r\n+     */\r\n+    String client() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to enable generic invocation, default value is false\r\n+     */\r\n+    boolean generic() default false;\r\n+\r\n+    /**\r\n+     * When enable, prefer to call local service in the same JVM if it's present, default value is true\r\n+     */\r\n+    boolean injvm() default true;\r\n+\r\n+    /**\r\n+     * Check if service provider is available during boot up, default value is true\r\n+     */\r\n+    boolean check() default true;\r\n+\r\n+    /**\r\n+     * Whether eager initialize the reference bean when all properties are set, default value is false\r\n+     */\r\n+    boolean init() default false;\r\n+\r\n+    /**\r\n+     * Whether to make connection when the client is created, the default value is false\r\n+     */\r\n+    boolean lazy() default false;\r\n+\r\n+    /**\r\n+     * Export an stub service for event dispatch, default value is false.\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#STUB_EVENT_METHODS_KEY\r\n+     */\r\n+    boolean stubevent() default false;\r\n+\r\n+    /**\r\n+     * Whether to reconnect if connection is lost, if not specify, reconnect is enabled by default, and the interval\r\n+     * for retry connecting is 2000 ms\r\n+     * <p>\r\n+     * see org.apache.dubbo.remoting.Constants#DEFAULT_RECONNECT_PERIOD\r\n+     */\r\n+    String reconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to stick to the same node in the cluster, the default value is false\r\n+     * <p>\r\n+     * see Constants#DEFAULT_CLUSTER_STICKY\r\n+     */\r\n+    boolean sticky() default false;\r\n+\r\n+    /**\r\n+     * How the proxy is generated, legal values include: jdk, javassist\r\n+     */\r\n+    String proxy() default \"\";\r\n+\r\n+    /**\r\n+     * Service stub name, use interface name + Local if not set\r\n+     */\r\n+    String stub() default \"\";\r\n+\r\n+    /**\r\n+     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\r\n+     */\r\n+    String cluster() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum connections service provider can accept, default value is 0 - connection is shared\r\n+     */\r\n+    int connections() default 0;\r\n+\r\n+    /**\r\n+     * The callback instance limit peer connection\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\r\n+     */\r\n+    int callbacks() default 0;\r\n+\r\n+    /**\r\n+     * Callback method name when connected, default value is empty string\r\n+     */\r\n+    String onconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Callback method name when disconnected, default value is empty string\r\n+     */\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Service owner, default value is empty string\r\n+     */\r\n+    String owner() default \"\";\r\n+\r\n+    /**\r\n+     * Service layer, default value is empty string\r\n+     */\r\n+    String layer() default \"\";\r\n+\r\n+    /**\r\n+     * Service invocation retry times\r\n+     * <p>\r\n+     * see Constants#DEFAULT_RETRIES\r\n+     */\r\n+    int retries() default 2;\r\n+\r\n+    /**\r\n+     * Load balance strategy, legal values include: random, roundrobin, leastactive\r\n+     * <p>\r\n+     * see Constants#DEFAULT_LOADBALANCE\r\n+     */\r\n+    String loadbalance() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to enable async invocation, default value is false\r\n+     */\r\n+    boolean async() default false;\r\n+\r\n+    /**\r\n+     * Maximum active requests allowed, default value is 0\r\n+     */\r\n+    int actives() default 0;\r\n+\r\n+    /**\r\n+     * Whether the async request has already been sent, the default value is false\r\n+     */\r\n+    boolean sent() default false;\r\n+\r\n+    /**\r\n+     * Service mock name, use interface name + Mock if not set\r\n+     */\r\n+    String mock() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to use JSR303 validation, legal values are: true, false\r\n+     */\r\n+    String validation() default \"\";\r\n+\r\n+    /**\r\n+     * Timeout value for service invocation, default value is 0\r\n+     */\r\n+    int timeout() default 0;\r\n+\r\n+    /**\r\n+     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\r\n+     */\r\n+    String cache() default \"\";\r\n+\r\n+    /**\r\n+     * Filters for service invocation\r\n+     * <p>\r\n+     * see Filter\r\n+     */\r\n+    String[] filter() default {};\r\n+\r\n+    /**\r\n+     * Listeners for service exporting and unexporting\r\n+     * <p>\r\n+     * see ExporterListener\r\n+     */\r\n+    String[] listener() default {};\r\n+\r\n+    /**\r\n+     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\r\n+     */\r\n+    String[] parameters() default {};\r\n+\r\n+    /**\r\n+     * Application associated name\r\n+     */\r\n+    String application() default \"\";\r\n+\r\n+    /**\r\n+     * Module associated name\r\n+     */\r\n+    String module() default \"\";\r\n+\r\n+    /**\r\n+     * Consumer associated name\r\n+     */\r\n+    String consumer() default \"\";\r\n+\r\n+    /**\r\n+     * Monitor associated name\r\n+     */\r\n+    String monitor() default \"\";\r\n+\r\n+    /**\r\n+     * Registry associated name\r\n+     */\r\n+    String[] registry() default {};\r\n+\r\n+    /**\r\n+     * The communication protocol of Dubbo Service\r\n+     *\r\n+     * @return the default value is \"\"\r\n+     * @since 2.6.6\r\n+     */\r\n+    String protocol() default \"\";\r\n+\r\n+    /**\r\n+     * Service tag name\r\n+     */\r\n+    String tag() default \"\";\r\n+\r\n+    /**\r\n+     * methods support\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Method[] methods() default {};\r\n+\r\n+    /**\r\n+     * The id\r\n+     *\r\n+     * @return default value is empty\r\n+     * @since 2.7.3\r\n+     */\r\n+    String id() default \"\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/annotation/Service.java", "source2": "org/apache/dubbo/config/annotation/Service.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,281 +1,281 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.annotation;\n-\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES;\n-\n-/**\n- * Service annotation\n- *\n- * @see DubboService\n- * @since 2.7.0\n- * @deprecated Recommend {@link DubboService} as the substitute\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.TYPE})\n-@Inherited\n-@Deprecated\n-public @interface Service {\n-\n-    /**\n-     * Interface class, default value is void.class\n-     */\n-    Class<?> interfaceClass() default void.class;\n-\n-    /**\n-     * Interface class name, default value is empty string\n-     */\n-    String interfaceName() default \"\";\n-\n-    /**\n-     * Service version, default value is empty string\n-     */\n-    String version() default \"\";\n-\n-    /**\n-     * Service group, default value is empty string\n-     */\n-    String group() default \"\";\n-\n-    /**\n-     * Service path, default value is empty string\n-     */\n-    String path() default \"\";\n-\n-    /**\n-     * Whether to export service, default value is true\n-     */\n-    boolean export() default true;\n-\n-    /**\n-     * Service token, default value is false\n-     */\n-    String token() default \"\";\n-\n-    /**\n-     * Whether the service is deprecated, default value is false\n-     */\n-    boolean deprecated() default false;\n-\n-    /**\n-     * Whether the service is dynamic, default value is true\n-     */\n-    boolean dynamic() default true;\n-\n-    /**\n-     * Access log for the service, default value is \"\"\n-     */\n-    String accesslog() default \"\";\n-\n-    /**\n-     * Maximum concurrent executes for the service, default value is 0 - no limits\n-     */\n-    int executes() default 0;\n-\n-    /**\n-     * Whether to register the service to register center, default value is true\n-     */\n-    boolean register() default true;\n-\n-    /**\n-     * Service weight value, default value is 0\n-     */\n-    int weight() default 0;\n-\n-    /**\n-     * Service doc, default value is \"\"\n-     */\n-    String document() default \"\";\n-\n-    /**\n-     * Delay time for service registration, default value is 0\n-     */\n-    int delay() default 0;\n-\n-    /**\n-     * @see Service#stub()\n-     * @deprecated\n-     */\n-    String local() default \"\";\n-\n-    /**\n-     * Service stub name, use interface name + Local if not set\n-     */\n-    String stub() default \"\";\n-\n-    /**\n-     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\n-     */\n-    String cluster() default \"\";\n-\n-    /**\n-     * How the proxy is generated, legal values include: jdk, javassist\n-     */\n-    String proxy() default \"\";\n-\n-    /**\n-     * Maximum connections service provider can accept, default value is 0 - connection is shared\n-     */\n-    int connections() default 0;\n-\n-    /**\n-     * The callback instance limit peer connection\n-     * <p>\n-     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\n-     */\n-    int callbacks() default org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\n-\n-    /**\n-     * Callback method name when connected, default value is empty string\n-     */\n-    String onconnect() default \"\";\n-\n-    /**\n-     * Callback method name when disconnected, default value is empty string\n-     */\n-    String ondisconnect() default \"\";\n-\n-    /**\n-     * Service owner, default value is empty string\n-     */\n-    String owner() default \"\";\n-\n-    /**\n-     * Service layer, default value is empty string\n-     */\n-    String layer() default \"\";\n-\n-    /**\n-     * Service invocation retry times\n-     *\n-     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_RETRIES\n-     */\n-    int retries() default DEFAULT_RETRIES;\n-\n-    /**\n-     * Load balance strategy, legal values include: random, roundrobin, leastactive\n-     *\n-     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_LOADBALANCE\n-     */\n-    String loadbalance() default DEFAULT_LOADBALANCE;\n-\n-    /**\n-     * Whether to enable async invocation, default value is false\n-     */\n-    boolean async() default false;\n-\n-    /**\n-     * Maximum active requests allowed, default value is 0\n-     */\n-    int actives() default 0;\n-\n-    /**\n-     * Whether the async request has already been sent, the default value is false\n-     */\n-    boolean sent() default false;\n-\n-    /**\n-     * Service mock name, use interface name + Mock if not set\n-     */\n-    String mock() default \"\";\n-\n-    /**\n-     * Whether to use JSR303 validation, legal values are: true, false\n-     */\n-    String validation() default \"\";\n-\n-    /**\n-     * Timeout value for service invocation, default value is 0\n-     */\n-    int timeout() default 0;\n-\n-    /**\n-     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\n-     */\n-    String cache() default \"\";\n-\n-    /**\n-     * Filters for service invocation\n-     *\n-     * @see Filter\n-     */\n-    String[] filter() default {};\n-\n-    /**\n-     * Listeners for service exporting and unexporting\n-     *\n-     * @see ExporterListener\n-     */\n-    String[] listener() default {};\n-\n-    /**\n-     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\n-     */\n-    String[] parameters() default {};\n-\n-    /**\n-     * Application spring bean name\n-     */\n-    String application() default \"\";\n-\n-    /**\n-     * Module spring bean name\n-     */\n-    String module() default \"\";\n-\n-    /**\n-     * Provider spring bean name\n-     */\n-    String provider() default \"\";\n-\n-    /**\n-     * Protocol spring bean names\n-     */\n-    String[] protocol() default {};\n-\n-    /**\n-     * Monitor spring bean name\n-     */\n-    String monitor() default \"\";\n-\n-    /**\n-     * Registry spring bean name\n-     */\n-    String[] registry() default {};\n-\n-    /**\n-     * Service tag name\n-     */\n-    String tag() default \"\";\n-\n-    /**\n-     * methods support\n-     *\n-     * @return\n-     */\n-    Method[] methods() default {};\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.annotation;\r\n+\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_RETRIES;\r\n+\r\n+/**\r\n+ * Service annotation\r\n+ *\r\n+ * @see DubboService\r\n+ * @since 2.7.0\r\n+ * @deprecated Recommend {@link DubboService} as the substitute\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.TYPE})\r\n+@Inherited\r\n+@Deprecated\r\n+public @interface Service {\r\n+\r\n+    /**\r\n+     * Interface class, default value is void.class\r\n+     */\r\n+    Class<?> interfaceClass() default void.class;\r\n+\r\n+    /**\r\n+     * Interface class name, default value is empty string\r\n+     */\r\n+    String interfaceName() default \"\";\r\n+\r\n+    /**\r\n+     * Service version, default value is empty string\r\n+     */\r\n+    String version() default \"\";\r\n+\r\n+    /**\r\n+     * Service group, default value is empty string\r\n+     */\r\n+    String group() default \"\";\r\n+\r\n+    /**\r\n+     * Service path, default value is empty string\r\n+     */\r\n+    String path() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to export service, default value is true\r\n+     */\r\n+    boolean export() default true;\r\n+\r\n+    /**\r\n+     * Service token, default value is false\r\n+     */\r\n+    String token() default \"\";\r\n+\r\n+    /**\r\n+     * Whether the service is deprecated, default value is false\r\n+     */\r\n+    boolean deprecated() default false;\r\n+\r\n+    /**\r\n+     * Whether the service is dynamic, default value is true\r\n+     */\r\n+    boolean dynamic() default true;\r\n+\r\n+    /**\r\n+     * Access log for the service, default value is \"\"\r\n+     */\r\n+    String accesslog() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum concurrent executes for the service, default value is 0 - no limits\r\n+     */\r\n+    int executes() default 0;\r\n+\r\n+    /**\r\n+     * Whether to register the service to register center, default value is true\r\n+     */\r\n+    boolean register() default true;\r\n+\r\n+    /**\r\n+     * Service weight value, default value is 0\r\n+     */\r\n+    int weight() default 0;\r\n+\r\n+    /**\r\n+     * Service doc, default value is \"\"\r\n+     */\r\n+    String document() default \"\";\r\n+\r\n+    /**\r\n+     * Delay time for service registration, default value is 0\r\n+     */\r\n+    int delay() default 0;\r\n+\r\n+    /**\r\n+     * @see Service#stub()\r\n+     * @deprecated\r\n+     */\r\n+    String local() default \"\";\r\n+\r\n+    /**\r\n+     * Service stub name, use interface name + Local if not set\r\n+     */\r\n+    String stub() default \"\";\r\n+\r\n+    /**\r\n+     * Cluster strategy, legal values include: failover, failfast, failsafe, failback, forking\r\n+     */\r\n+    String cluster() default \"\";\r\n+\r\n+    /**\r\n+     * How the proxy is generated, legal values include: jdk, javassist\r\n+     */\r\n+    String proxy() default \"\";\r\n+\r\n+    /**\r\n+     * Maximum connections service provider can accept, default value is 0 - connection is shared\r\n+     */\r\n+    int connections() default 0;\r\n+\r\n+    /**\r\n+     * The callback instance limit peer connection\r\n+     * <p>\r\n+     * see org.apache.dubbo.rpc.Constants#DEFAULT_CALLBACK_INSTANCES\r\n+     */\r\n+    int callbacks() default org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\r\n+\r\n+    /**\r\n+     * Callback method name when connected, default value is empty string\r\n+     */\r\n+    String onconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Callback method name when disconnected, default value is empty string\r\n+     */\r\n+    String ondisconnect() default \"\";\r\n+\r\n+    /**\r\n+     * Service owner, default value is empty string\r\n+     */\r\n+    String owner() default \"\";\r\n+\r\n+    /**\r\n+     * Service layer, default value is empty string\r\n+     */\r\n+    String layer() default \"\";\r\n+\r\n+    /**\r\n+     * Service invocation retry times\r\n+     *\r\n+     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_RETRIES\r\n+     */\r\n+    int retries() default DEFAULT_RETRIES;\r\n+\r\n+    /**\r\n+     * Load balance strategy, legal values include: random, roundrobin, leastactive\r\n+     *\r\n+     * @see org.apache.dubbo.common.constants.CommonConstants#DEFAULT_LOADBALANCE\r\n+     */\r\n+    String loadbalance() default DEFAULT_LOADBALANCE;\r\n+\r\n+    /**\r\n+     * Whether to enable async invocation, default value is false\r\n+     */\r\n+    boolean async() default false;\r\n+\r\n+    /**\r\n+     * Maximum active requests allowed, default value is 0\r\n+     */\r\n+    int actives() default 0;\r\n+\r\n+    /**\r\n+     * Whether the async request has already been sent, the default value is false\r\n+     */\r\n+    boolean sent() default false;\r\n+\r\n+    /**\r\n+     * Service mock name, use interface name + Mock if not set\r\n+     */\r\n+    String mock() default \"\";\r\n+\r\n+    /**\r\n+     * Whether to use JSR303 validation, legal values are: true, false\r\n+     */\r\n+    String validation() default \"\";\r\n+\r\n+    /**\r\n+     * Timeout value for service invocation, default value is 0\r\n+     */\r\n+    int timeout() default 0;\r\n+\r\n+    /**\r\n+     * Specify cache implementation for service invocation, legal values include: lru, threadlocal, jcache\r\n+     */\r\n+    String cache() default \"\";\r\n+\r\n+    /**\r\n+     * Filters for service invocation\r\n+     *\r\n+     * @see Filter\r\n+     */\r\n+    String[] filter() default {};\r\n+\r\n+    /**\r\n+     * Listeners for service exporting and unexporting\r\n+     *\r\n+     * @see ExporterListener\r\n+     */\r\n+    String[] listener() default {};\r\n+\r\n+    /**\r\n+     * Customized parameter key-value pair, for example: {key1, value1, key2, value2}\r\n+     */\r\n+    String[] parameters() default {};\r\n+\r\n+    /**\r\n+     * Application spring bean name\r\n+     */\r\n+    String application() default \"\";\r\n+\r\n+    /**\r\n+     * Module spring bean name\r\n+     */\r\n+    String module() default \"\";\r\n+\r\n+    /**\r\n+     * Provider spring bean name\r\n+     */\r\n+    String provider() default \"\";\r\n+\r\n+    /**\r\n+     * Protocol spring bean names\r\n+     */\r\n+    String[] protocol() default {};\r\n+\r\n+    /**\r\n+     * Monitor spring bean name\r\n+     */\r\n+    String monitor() default \"\";\r\n+\r\n+    /**\r\n+     * Registry spring bean name\r\n+     */\r\n+    String[] registry() default {};\r\n+\r\n+    /**\r\n+     * Service tag name\r\n+     */\r\n+    String tag() default \"\";\r\n+\r\n+    /**\r\n+     * methods support\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Method[] methods() default {};\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/DubboBootstrap.java", "source2": "org/apache/dubbo/config/bootstrap/DubboBootstrap.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,1409 +1,1409 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.config.Environment;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.wrapper.CompositeDynamicConfiguration;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.concurrent.ScheduledCompletableFuture;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.DubboShutdownHook;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.config.ServiceConfigBase;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.ConsumerBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.ProtocolBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.ProviderBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.ReferenceBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.RegistryBuilder;\n-import org.apache.dubbo.config.bootstrap.builders.ServiceBuilder;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;\n-import org.apache.dubbo.config.utils.ConfigValidationUtils;\n-import org.apache.dubbo.config.utils.ReferenceConfigCache;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.event.GenericEventListener;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.MetadataServiceExporter;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.metadata.report.MetadataReportFactory;\n-import org.apache.dubbo.metadata.report.MetadataReportInstance;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\n-import org.apache.dubbo.registry.client.metadata.MetadataUtils;\n-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\n-import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService;\n-import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.io.IOException;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Future;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-import java.util.concurrent.locks.Condition;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReentrantLock;\n-import java.util.function.Consumer;\n-import java.util.function.Supplier;\n-\n-import static java.lang.String.format;\n-import static java.util.Collections.singletonList;\n-import static java.util.concurrent.Executors.newSingleThreadExecutor;\n-import static org.apache.dubbo.common.config.ConfigurationUtils.parseProperties;\n-import static org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.function.ThrowableAction.execute;\n-import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY;\n-import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PUBLISH_DELAY_KEY;\n-import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.calInstanceRevision;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setMetadataStorageType;\n-import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getServiceDiscoveries;\n-import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\n-\n-/**\n- * See {@link ApplicationModel} and {@link ExtensionLoader} for why this class is designed to be singleton.\n- * <p>\n- * The bootstrap class of Dubbo\n- * <p>\n- * Get singleton instance by calling static method {@link #getInstance()}.\n- * Designed as singleton because some classes inside Dubbo, such as ExtensionLoader, are designed only for one instance per process.\n- *\n- * @since 2.7.5\n- */\n-public class DubboBootstrap extends GenericEventListener {\n-\n-    public static final String DEFAULT_REGISTRY_ID = \"REGISTRY#DEFAULT\";\n-\n-    public static final String DEFAULT_PROTOCOL_ID = \"PROTOCOL#DEFAULT\";\n-\n-    public static final String DEFAULT_SERVICE_ID = \"SERVICE#DEFAULT\";\n-\n-    public static final String DEFAULT_REFERENCE_ID = \"REFERENCE#DEFAULT\";\n-\n-    public static final String DEFAULT_PROVIDER_ID = \"PROVIDER#DEFAULT\";\n-\n-    public static final String DEFAULT_CONSUMER_ID = \"CONSUMER#DEFAULT\";\n-\n-    private static final String NAME = DubboBootstrap.class.getSimpleName();\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private static volatile DubboBootstrap instance;\n-\n-    private final AtomicBoolean awaited = new AtomicBoolean(false);\n-\n-    private final Lock lock = new ReentrantLock();\n-\n-    private final Condition condition = lock.newCondition();\n-\n-    private final Lock destroyLock = new ReentrantLock();\n-\n-    private final ExecutorService executorService = newSingleThreadExecutor();\n-\n-    private final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\n-\n-    private final ExecutorRepository executorRepository = getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-\n-    private final ConfigManager configManager;\n-\n-    private final Environment environment;\n-\n-    private ReferenceConfigCache cache;\n-\n-    private volatile boolean exportAsync;\n-\n-    private volatile boolean referAsync;\n-\n-    private AtomicBoolean initialized = new AtomicBoolean(false);\n-\n-    private AtomicBoolean started = new AtomicBoolean(false);\n-\n-    private AtomicBoolean ready = new AtomicBoolean(false);\n-\n-    private AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    private volatile ServiceInstance serviceInstance;\n-\n-    private volatile MetadataService metadataService;\n-\n-    private volatile MetadataServiceExporter metadataServiceExporter;\n-\n-    private List<ServiceConfigBase<?>> exportedServices = new ArrayList<>();\n-\n-    private List<Future<?>> asyncExportingFutures = new ArrayList<>();\n-\n-    private List<CompletableFuture<Object>> asyncReferringFutures = new ArrayList<>();\n-\n-    /**\n-     * See {@link ApplicationModel} and {@link ExtensionLoader} for why DubboBootstrap is designed to be singleton.\n-     */\n-    public static DubboBootstrap getInstance() {\n-        if (instance == null) {\n-            synchronized (DubboBootstrap.class) {\n-                if (instance == null) {\n-                    instance = new DubboBootstrap();\n-                }\n-            }\n-        }\n-        return instance;\n-    }\n-\n-    private DubboBootstrap() {\n-        configManager = ApplicationModel.getConfigManager();\n-        environment = ApplicationModel.getEnvironment();\n-\n-        DubboShutdownHook.getDubboShutdownHook().register();\n-        ShutdownHookCallbacks.INSTANCE.addCallback(DubboBootstrap.this::destroy);\n-    }\n-\n-    public void unRegisterShutdownHook() {\n-        DubboShutdownHook.getDubboShutdownHook().unregister();\n-    }\n-\n-    private boolean isOnlyRegisterProvider() {\n-        Boolean registerConsumer = getApplication().getRegisterConsumer();\n-        return registerConsumer == null || !registerConsumer;\n-    }\n-\n-    private String getMetadataType() {\n-        String type = getApplication().getMetadataType();\n-        if (StringUtils.isEmpty(type)) {\n-            type = DEFAULT_METADATA_STORAGE_TYPE;\n-        }\n-        return type;\n-    }\n-\n-    public DubboBootstrap metadataReport(MetadataReportConfig metadataReportConfig) {\n-        configManager.addMetadataReport(metadataReportConfig);\n-        return this;\n-    }\n-\n-    public DubboBootstrap metadataReports(List<MetadataReportConfig> metadataReportConfigs) {\n-        if (CollectionUtils.isEmpty(metadataReportConfigs)) {\n-            return this;\n-        }\n-\n-        configManager.addMetadataReports(metadataReportConfigs);\n-        return this;\n-    }\n-\n-    // {@link ApplicationConfig} correlative methods\n-\n-    /**\n-     * Set the name of application\n-     *\n-     * @param name the name of application\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap application(String name) {\n-        return application(name, builder -> {\n-            // DO NOTHING\n-        });\n-    }\n-\n-    /**\n-     * Set the name of application and it's future build\n-     *\n-     * @param name            the name of application\n-     * @param consumerBuilder {@link ApplicationBuilder}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap application(String name, Consumer<ApplicationBuilder> consumerBuilder) {\n-        ApplicationBuilder builder = createApplicationBuilder(name);\n-        consumerBuilder.accept(builder);\n-        return application(builder.build());\n-    }\n-\n-    /**\n-     * Set the {@link ApplicationConfig}\n-     *\n-     * @param applicationConfig the {@link ApplicationConfig}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap application(ApplicationConfig applicationConfig) {\n-        configManager.setApplication(applicationConfig);\n-        return this;\n-    }\n-\n-\n-    // {@link RegistryConfig} correlative methods\n-\n-    /**\n-     * Add an instance of {@link RegistryConfig} with {@link #DEFAULT_REGISTRY_ID default ID}\n-     *\n-     * @param consumerBuilder the {@link Consumer} of {@link RegistryBuilder}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap registry(Consumer<RegistryBuilder> consumerBuilder) {\n-        return registry(DEFAULT_REGISTRY_ID, consumerBuilder);\n-    }\n-\n-    /**\n-     * Add an instance of {@link RegistryConfig} with the specified ID\n-     *\n-     * @param id              the {@link RegistryConfig#getId() id}  of {@link RegistryConfig}\n-     * @param consumerBuilder the {@link Consumer} of {@link RegistryBuilder}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap registry(String id, Consumer<RegistryBuilder> consumerBuilder) {\n-        RegistryBuilder builder = createRegistryBuilder(id);\n-        consumerBuilder.accept(builder);\n-        return registry(builder.build());\n-    }\n-\n-    /**\n-     * Add an instance of {@link RegistryConfig}\n-     *\n-     * @param registryConfig an instance of {@link RegistryConfig}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap registry(RegistryConfig registryConfig) {\n-        configManager.addRegistry(registryConfig);\n-        return this;\n-    }\n-\n-    /**\n-     * Add an instance of {@link RegistryConfig}\n-     *\n-     * @param registryConfigs the multiple instances of {@link RegistryConfig}\n-     * @return current {@link DubboBootstrap} instance\n-     */\n-    public DubboBootstrap registries(List<RegistryConfig> registryConfigs) {\n-        if (CollectionUtils.isEmpty(registryConfigs)) {\n-            return this;\n-        }\n-        registryConfigs.forEach(this::registry);\n-        return this;\n-    }\n-\n-\n-    // {@link ProtocolConfig} correlative methods\n-    public DubboBootstrap protocol(Consumer<ProtocolBuilder> consumerBuilder) {\n-        return protocol(DEFAULT_PROTOCOL_ID, consumerBuilder);\n-    }\n-\n-    public DubboBootstrap protocol(String id, Consumer<ProtocolBuilder> consumerBuilder) {\n-        ProtocolBuilder builder = createProtocolBuilder(id);\n-        consumerBuilder.accept(builder);\n-        return protocol(builder.build());\n-    }\n-\n-    public DubboBootstrap protocol(ProtocolConfig protocolConfig) {\n-        return protocols(singletonList(protocolConfig));\n-    }\n-\n-    public DubboBootstrap protocols(List<ProtocolConfig> protocolConfigs) {\n-        if (CollectionUtils.isEmpty(protocolConfigs)) {\n-            return this;\n-        }\n-        configManager.addProtocols(protocolConfigs);\n-        return this;\n-    }\n-\n-    // {@link ServiceConfig} correlative methods\n-    public <S> DubboBootstrap service(Consumer<ServiceBuilder<S>> consumerBuilder) {\n-        return service(DEFAULT_SERVICE_ID, consumerBuilder);\n-    }\n-\n-    public <S> DubboBootstrap service(String id, Consumer<ServiceBuilder<S>> consumerBuilder) {\n-        ServiceBuilder builder = createServiceBuilder(id);\n-        consumerBuilder.accept(builder);\n-        return service(builder.build());\n-    }\n-\n-    public DubboBootstrap service(ServiceConfig<?> serviceConfig) {\n-        configManager.addService(serviceConfig);\n-        return this;\n-    }\n-\n-    public DubboBootstrap services(List<ServiceConfig> serviceConfigs) {\n-        if (CollectionUtils.isEmpty(serviceConfigs)) {\n-            return this;\n-        }\n-        serviceConfigs.forEach(configManager::addService);\n-        return this;\n-    }\n-\n-    // {@link Reference} correlative methods\n-    public <S> DubboBootstrap reference(Consumer<ReferenceBuilder<S>> consumerBuilder) {\n-        return reference(DEFAULT_REFERENCE_ID, consumerBuilder);\n-    }\n-\n-    public <S> DubboBootstrap reference(String id, Consumer<ReferenceBuilder<S>> consumerBuilder) {\n-        ReferenceBuilder builder = createReferenceBuilder(id);\n-        consumerBuilder.accept(builder);\n-        return reference(builder.build());\n-    }\n-\n-    public DubboBootstrap reference(ReferenceConfig<?> referenceConfig) {\n-        configManager.addReference(referenceConfig);\n-        return this;\n-    }\n-\n-    public DubboBootstrap references(List<ReferenceConfig> referenceConfigs) {\n-        if (CollectionUtils.isEmpty(referenceConfigs)) {\n-            return this;\n-        }\n-\n-        referenceConfigs.forEach(configManager::addReference);\n-        return this;\n-    }\n-\n-    // {@link ProviderConfig} correlative methods\n-    public DubboBootstrap provider(Consumer<ProviderBuilder> builderConsumer) {\n-        return provider(DEFAULT_PROVIDER_ID, builderConsumer);\n-    }\n-\n-    public DubboBootstrap provider(String id, Consumer<ProviderBuilder> builderConsumer) {\n-        ProviderBuilder builder = createProviderBuilder(id);\n-        builderConsumer.accept(builder);\n-        return provider(builder.build());\n-    }\n-\n-    public DubboBootstrap provider(ProviderConfig providerConfig) {\n-        return providers(singletonList(providerConfig));\n-    }\n-\n-    public DubboBootstrap providers(List<ProviderConfig> providerConfigs) {\n-        if (CollectionUtils.isEmpty(providerConfigs)) {\n-            return this;\n-        }\n-\n-        providerConfigs.forEach(configManager::addProvider);\n-        return this;\n-    }\n-\n-    // {@link ConsumerConfig} correlative methods\n-    public DubboBootstrap consumer(Consumer<ConsumerBuilder> builderConsumer) {\n-        return consumer(DEFAULT_CONSUMER_ID, builderConsumer);\n-    }\n-\n-    public DubboBootstrap consumer(String id, Consumer<ConsumerBuilder> builderConsumer) {\n-        ConsumerBuilder builder = createConsumerBuilder(id);\n-        builderConsumer.accept(builder);\n-        return consumer(builder.build());\n-    }\n-\n-    public DubboBootstrap consumer(ConsumerConfig consumerConfig) {\n-        return consumers(singletonList(consumerConfig));\n-    }\n-\n-    public DubboBootstrap consumers(List<ConsumerConfig> consumerConfigs) {\n-        if (CollectionUtils.isEmpty(consumerConfigs)) {\n-            return this;\n-        }\n-\n-        consumerConfigs.forEach(configManager::addConsumer);\n-        return this;\n-    }\n-\n-    // {@link ConfigCenterConfig} correlative methods\n-    public DubboBootstrap configCenter(ConfigCenterConfig configCenterConfig) {\n-        return configCenters(singletonList(configCenterConfig));\n-    }\n-\n-    public DubboBootstrap configCenters(List<ConfigCenterConfig> configCenterConfigs) {\n-        if (CollectionUtils.isEmpty(configCenterConfigs)) {\n-            return this;\n-        }\n-        configManager.addConfigCenters(configCenterConfigs);\n-        return this;\n-    }\n-\n-    public DubboBootstrap monitor(MonitorConfig monitor) {\n-        configManager.setMonitor(monitor);\n-        return this;\n-    }\n-\n-    public DubboBootstrap metrics(MetricsConfig metrics) {\n-        configManager.setMetrics(metrics);\n-        return this;\n-    }\n-\n-    public DubboBootstrap module(ModuleConfig module) {\n-        configManager.setModule(module);\n-        return this;\n-    }\n-\n-    public DubboBootstrap ssl(SslConfig sslConfig) {\n-        configManager.setSsl(sslConfig);\n-        return this;\n-    }\n-\n-    public DubboBootstrap cache(ReferenceConfigCache cache) {\n-        this.cache = cache;\n-        return this;\n-    }\n-\n-    public ReferenceConfigCache getCache() {\n-        if (cache == null) {\n-            cache = ReferenceConfigCache.getCache();\n-        }\n-        return cache;\n-    }\n-\n-    public DubboBootstrap exportAsync() {\n-        this.exportAsync = true;\n-        return this;\n-    }\n-\n-    public DubboBootstrap referAsync() {\n-        this.referAsync = true;\n-        return this;\n-    }\n-\n-    @Deprecated\n-    public void init() {\n-        initialize();\n-    }\n-\n-    /**\n-     * Initialize\n-     */\n-    public void initialize() {\n-        if (!initialized.compareAndSet(false, true)) {\n-            return;\n-        }\n-\n-        ApplicationModel.initFrameworkExts();\n-\n-        startConfigCenter();\n-\n-        loadRemoteConfigs();\n-\n-        checkGlobalConfigs();\n-\n-        // @since 2.7.8\n-        startMetadataCenter();\n-\n-        initMetadataService();\n-\n-        initEventListener();\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(NAME + \" has been initialized!\");\n-        }\n-    }\n-\n-    private void checkGlobalConfigs() {\n-        // check Application\n-        ConfigValidationUtils.validateApplicationConfig(getApplication());\n-\n-        // check Metadata\n-        Collection<MetadataReportConfig> metadatas = configManager.getMetadataConfigs();\n-        if (CollectionUtils.isEmpty(metadatas)) {\n-            MetadataReportConfig metadataReportConfig = new MetadataReportConfig();\n-            metadataReportConfig.refresh();\n-            if (metadataReportConfig.isValid()) {\n-                configManager.addMetadataReport(metadataReportConfig);\n-                metadatas = configManager.getMetadataConfigs();\n-            }\n-        }\n-        if (CollectionUtils.isNotEmpty(metadatas)) {\n-            for (MetadataReportConfig metadataReportConfig : metadatas) {\n-                metadataReportConfig.refresh();\n-                ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);\n-            }\n-        }\n-\n-        // check Provider\n-        Collection<ProviderConfig> providers = configManager.getProviders();\n-        if (CollectionUtils.isEmpty(providers)) {\n-            configManager.getDefaultProvider().orElseGet(() -> {\n-                ProviderConfig providerConfig = new ProviderConfig();\n-                configManager.addProvider(providerConfig);\n-                providerConfig.refresh();\n-                return providerConfig;\n-            });\n-        }\n-        for (ProviderConfig providerConfig : configManager.getProviders()) {\n-            ConfigValidationUtils.validateProviderConfig(providerConfig);\n-        }\n-        // check Consumer\n-        Collection<ConsumerConfig> consumers = configManager.getConsumers();\n-        if (CollectionUtils.isEmpty(consumers)) {\n-            configManager.getDefaultConsumer().orElseGet(() -> {\n-                ConsumerConfig consumerConfig = new ConsumerConfig();\n-                configManager.addConsumer(consumerConfig);\n-                consumerConfig.refresh();\n-                return consumerConfig;\n-            });\n-        }\n-        for (ConsumerConfig consumerConfig : configManager.getConsumers()) {\n-            ConfigValidationUtils.validateConsumerConfig(consumerConfig);\n-        }\n-\n-        // check Monitor\n-        ConfigValidationUtils.validateMonitorConfig(getMonitor());\n-        // check Metrics\n-        ConfigValidationUtils.validateMetricsConfig(getMetrics());\n-        // check Module\n-        ConfigValidationUtils.validateModuleConfig(getModule());\n-        // check Ssl\n-        ConfigValidationUtils.validateSslConfig(getSsl());\n-    }\n-\n-    private void startConfigCenter() {\n-\n-        useRegistryAsConfigCenterIfNecessary();\n-\n-        Collection<ConfigCenterConfig> configCenters = configManager.getConfigCenters();\n-\n-        // check Config Center\n-        if (CollectionUtils.isEmpty(configCenters)) {\n-            ConfigCenterConfig configCenterConfig = new ConfigCenterConfig();\n-            configCenterConfig.refresh();\n-            if (configCenterConfig.isValid()) {\n-                configManager.addConfigCenter(configCenterConfig);\n-                configCenters = configManager.getConfigCenters();\n-            }\n-        } else {\n-            for (ConfigCenterConfig configCenterConfig : configCenters) {\n-                configCenterConfig.refresh();\n-                ConfigValidationUtils.validateConfigCenterConfig(configCenterConfig);\n-            }\n-        }\n-\n-        if (CollectionUtils.isNotEmpty(configCenters)) {\n-            CompositeDynamicConfiguration compositeDynamicConfiguration = new CompositeDynamicConfiguration();\n-            for (ConfigCenterConfig configCenter : configCenters) {\n-                compositeDynamicConfiguration.addConfiguration(prepareEnvironment(configCenter));\n-            }\n-            environment.setDynamicConfiguration(compositeDynamicConfiguration);\n-        }\n-        configManager.refreshAll();\n-    }\n-\n-    private void startMetadataCenter() {\n-\n-        useRegistryAsMetadataCenterIfNecessary();\n-\n-        ApplicationConfig applicationConfig = getApplication();\n-\n-        String metadataType = applicationConfig.getMetadataType();\n-        // FIXME, multiple metadata config support.\n-        Collection<MetadataReportConfig> metadataReportConfigs = configManager.getMetadataConfigs();\n-        if (CollectionUtils.isEmpty(metadataReportConfigs)) {\n-            if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {\n-                throw new IllegalStateException(\"No MetadataConfig found, Metadata Center address is required when 'metadata=remote' is enabled.\");\n-            }\n-            return;\n-        }\n-\n-        for (MetadataReportConfig metadataReportConfig : metadataReportConfigs) {\n-            ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);\n-            if (!metadataReportConfig.isValid()) {\n-                return;\n-            }\n-            MetadataReportInstance.init(metadataReportConfig);\n-        }\n-    }\n-\n-    /**\n-     * For compatibility purpose, use registry as the default config center when\n-     * there's no config center specified explicitly and\n-     * useAsConfigCenter of registryConfig is null or true\n-     */\n-    private void useRegistryAsConfigCenterIfNecessary() {\n-        // we use the loading status of DynamicConfiguration to decide whether ConfigCenter has been initiated.\n-        if (environment.getDynamicConfiguration().isPresent()) {\n-            return;\n-        }\n-\n-        if (CollectionUtils.isNotEmpty(configManager.getConfigCenters())) {\n-            return;\n-        }\n-\n-        configManager\n-                .getDefaultRegistries()\n-                .stream()\n-                .filter(this::isUsedRegistryAsConfigCenter)\n-                .map(this::registryAsConfigCenter)\n-                .forEach(configManager::addConfigCenter);\n-    }\n-\n-    private boolean isUsedRegistryAsConfigCenter(RegistryConfig registryConfig) {\n-        return isUsedRegistryAsCenter(registryConfig, registryConfig::getUseAsConfigCenter, \"config\",\n-                DynamicConfigurationFactory.class);\n-    }\n-\n-    private ConfigCenterConfig registryAsConfigCenter(RegistryConfig registryConfig) {\n-        String protocol = registryConfig.getProtocol();\n-        Integer port = registryConfig.getPort();\n-        String id = \"config-center-\" + protocol + \"-\" + port;\n-        ConfigCenterConfig cc = new ConfigCenterConfig();\n-        cc.setId(id);\n-        if (cc.getParameters() == null) {\n-            cc.setParameters(new HashMap<>());\n-        }\n-        if (registryConfig.getParameters() != null) {\n-            cc.getParameters().putAll(registryConfig.getParameters()); // copy the parameters\n-        }\n-        cc.getParameters().put(CLIENT_KEY, registryConfig.getClient());\n-        cc.setProtocol(protocol);\n-        cc.setPort(port);\n-        if (StringUtils.isNotEmpty(registryConfig.getGroup())) {\n-            cc.setGroup(registryConfig.getGroup());\n-        }\n-        cc.setAddress(getRegistryCompatibleAddress(registryConfig));\n-        cc.setNamespace(registryConfig.getGroup());\n-        cc.setUsername(registryConfig.getUsername());\n-        cc.setPassword(registryConfig.getPassword());\n-        if (registryConfig.getTimeout() != null) {\n-            cc.setTimeout(registryConfig.getTimeout().longValue());\n-        }\n-        cc.setHighestPriority(false);\n-        return cc;\n-    }\n-\n-    private void useRegistryAsMetadataCenterIfNecessary() {\n-\n-        Collection<MetadataReportConfig> metadataConfigs = configManager.getMetadataConfigs();\n-\n-        if (CollectionUtils.isNotEmpty(metadataConfigs)) {\n-            return;\n-        }\n-\n-        configManager\n-                .getDefaultRegistries()\n-                .stream()\n-                .filter(this::isUsedRegistryAsMetadataCenter)\n-                .map(this::registryAsMetadataCenter)\n-                .forEach(configManager::addMetadataReport);\n-\n-    }\n-\n-    private boolean isUsedRegistryAsMetadataCenter(RegistryConfig registryConfig) {\n-        return isUsedRegistryAsCenter(registryConfig, registryConfig::getUseAsMetadataCenter, \"metadata\",\n-                MetadataReportFactory.class);\n-    }\n-\n-    /**\n-     * Is used the specified registry as a center infrastructure\n-     *\n-     * @param registryConfig       the {@link RegistryConfig}\n-     * @param usedRegistryAsCenter the configured value on\n-     * @param centerType           the type name of center\n-     * @param extensionClass       an extension class of a center infrastructure\n-     * @return\n-     * @since 2.7.8\n-     */\n-    private boolean isUsedRegistryAsCenter(RegistryConfig registryConfig, Supplier<Boolean> usedRegistryAsCenter,\n-                                           String centerType,\n-                                           Class<?> extensionClass) {\n-        final boolean supported;\n-\n-        Boolean configuredValue = usedRegistryAsCenter.get();\n-        if (configuredValue != null) { // If configured, take its value.\n-            supported = configuredValue.booleanValue();\n-        } else {                       // Or check the extension existence\n-            String protocol = registryConfig.getProtocol();\n-            supported = supportsExtension(extensionClass, protocol);\n-            if (logger.isInfoEnabled()) {\n-                logger.info(format(\"No value is configured in the registry, the %s extension[name : %s] %s as the %s center\"\n-                        , extensionClass.getSimpleName(), protocol, supported ? \"supports\" : \"does not support\", centerType));\n-            }\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(format(\"The registry[%s] will be %s as the %s center\", registryConfig,\n-                    supported ? \"used\" : \"not used\", centerType));\n-        }\n-        return supported;\n-    }\n-\n-    /**\n-     * Supports the extension with the specified class and name\n-     *\n-     * @param extensionClass the {@link Class} of extension\n-     * @param name           the name of extension\n-     * @return if supports, return <code>true</code>, or <code>false</code>\n-     * @since 2.7.8\n-     */\n-    private boolean supportsExtension(Class<?> extensionClass, String name) {\n-        if (isNotEmpty(name)) {\n-            ExtensionLoader extensionLoader = getExtensionLoader(extensionClass);\n-            return extensionLoader.hasExtension(name);\n-        }\n-        return false;\n-    }\n-\n-    private MetadataReportConfig registryAsMetadataCenter(RegistryConfig registryConfig) {\n-        String protocol = registryConfig.getProtocol();\n-        Integer port = registryConfig.getPort();\n-        String id = \"metadata-center-\" + protocol + \"-\" + port;\n-        MetadataReportConfig metadataReportConfig = new MetadataReportConfig();\n-        metadataReportConfig.setId(id);\n-        if (metadataReportConfig.getParameters() == null) {\n-            metadataReportConfig.setParameters(new HashMap<>());\n-        }\n-        if (registryConfig.getParameters() != null) {\n-            metadataReportConfig.getParameters().putAll(registryConfig.getParameters()); // copy the parameters\n-        }\n-        metadataReportConfig.getParameters().put(CLIENT_KEY, registryConfig.getClient());\n-        metadataReportConfig.setGroup(registryConfig.getGroup());\n-        metadataReportConfig.setAddress(getRegistryCompatibleAddress(registryConfig));\n-        metadataReportConfig.setUsername(registryConfig.getUsername());\n-        metadataReportConfig.setPassword(registryConfig.getPassword());\n-        metadataReportConfig.setTimeout(registryConfig.getTimeout());\n-        return metadataReportConfig;\n-    }\n-\n-    private String getRegistryCompatibleAddress(RegistryConfig registryConfig) {\n-        String registryAddress = registryConfig.getAddress();\n-        String[] addresses = REGISTRY_SPLIT_PATTERN.split(registryAddress);\n-        if (ArrayUtils.isEmpty(addresses)) {\n-            throw new IllegalStateException(\"Invalid registry address found.\");\n-        }\n-        String address = addresses[0];\n-        // since 2.7.8\n-        // Issue : https://github.com/apache/dubbo/issues/6476\n-        StringBuilder metadataAddressBuilder = new StringBuilder();\n-        URL url = URL.valueOf(address);\n-        String protocolFromAddress = url.getProtocol();\n-        if (isEmpty(protocolFromAddress)) {\n-            // If the protocol from address is missing, is like :\n-            // \"dubbo.registry.address = 127.0.0.1:2181\"\n-            String protocolFromConfig = registryConfig.getProtocol();\n-            metadataAddressBuilder.append(protocolFromConfig).append(\"://\");\n-        }\n-        metadataAddressBuilder.append(address);\n-        return metadataAddressBuilder.toString();\n-    }\n-\n-    private void loadRemoteConfigs() {\n-        // registry ids to registry configs\n-        List<RegistryConfig> tmpRegistries = new ArrayList<>();\n-        Set<String> registryIds = configManager.getRegistryIds();\n-        registryIds.forEach(id -> {\n-            if (tmpRegistries.stream().noneMatch(reg -> reg.getId().equals(id))) {\n-                tmpRegistries.add(configManager.getRegistry(id).orElseGet(() -> {\n-                    RegistryConfig registryConfig = new RegistryConfig();\n-                    registryConfig.setId(id);\n-                    registryConfig.refresh();\n-                    return registryConfig;\n-                }));\n-            }\n-        });\n-\n-        configManager.addRegistries(tmpRegistries);\n-\n-        // protocol ids to protocol configs\n-        List<ProtocolConfig> tmpProtocols = new ArrayList<>();\n-        Set<String> protocolIds = configManager.getProtocolIds();\n-        protocolIds.forEach(id -> {\n-            if (tmpProtocols.stream().noneMatch(prot -> prot.getId().equals(id))) {\n-                tmpProtocols.add(configManager.getProtocol(id).orElseGet(() -> {\n-                    ProtocolConfig protocolConfig = new ProtocolConfig();\n-                    protocolConfig.setId(id);\n-                    protocolConfig.refresh();\n-                    return protocolConfig;\n-                }));\n-            }\n-        });\n-\n-        configManager.addProtocols(tmpProtocols);\n-    }\n-\n-\n-    /**\n-     * Initialize {@link MetadataService} from {@link WritableMetadataService}'s extension\n-     */\n-    private void initMetadataService() {\n-        this.metadataService = getDefaultExtension();\n-        this.metadataServiceExporter = new ConfigurableMetadataServiceExporter(metadataService);\n-    }\n-\n-    /**\n-     * Initialize {@link EventListener}\n-     */\n-    private void initEventListener() {\n-        // Add current instance into listeners\n-        addEventListener(this);\n-    }\n-\n-    /**\n-     * Start the bootstrap\n-     */\n-    public DubboBootstrap start() {\n-        if (started.compareAndSet(false, true)) {\n-            ready.set(false);\n-            initialize();\n-            if (logger.isInfoEnabled()) {\n-                logger.info(NAME + \" is starting...\");\n-            }\n-            // 1. export Dubbo Services\n-            exportServices();\n-\n-            // Not only provider register\n-            if (!isOnlyRegisterProvider() || hasExportedServices()) {\n-                // 2. export MetadataService\n-                exportMetadataService();\n-                //3. Register the local ServiceInstance if required\n-                registerServiceInstance();\n-            }\n-\n-            referServices();\n-            if (asyncExportingFutures.size() > 0) {\n-                new Thread(() -> {\n-                    try {\n-                        this.awaitFinish();\n-                    } catch (Exception e) {\n-                        logger.warn(NAME + \" exportAsync occurred an exception.\");\n-                    }\n-                    ready.set(true);\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(NAME + \" is ready.\");\n-                    }\n-                    ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\n-                    exts.getSupportedExtensionInstances().forEach(ext -> ext.onStart(this));\n-                }).start();\n-            } else {\n-                ready.set(true);\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(NAME + \" is ready.\");\n-                }\n-                ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\n-                exts.getSupportedExtensionInstances().forEach(ext -> ext.onStart(this));\n-            }\n-            if (logger.isInfoEnabled()) {\n-                logger.info(NAME + \" has started.\");\n-            }\n-        }\n-        return this;\n-    }\n-\n-    private boolean hasExportedServices() {\n-        return !metadataService.getExportedURLs().isEmpty();\n-    }\n-\n-    /**\n-     * Block current thread to be await.\n-     *\n-     * @return {@link DubboBootstrap}\n-     */\n-    public DubboBootstrap await() {\n-        // if has been waited, no need to wait again, return immediately\n-        if (!awaited.get()) {\n-            if (!executorService.isShutdown()) {\n-                executeMutually(() -> {\n-                    while (!awaited.get()) {\n-                        if (logger.isInfoEnabled()) {\n-                            logger.info(NAME + \" awaiting ...\");\n-                        }\n-                        try {\n-                            condition.await();\n-                        } catch (InterruptedException e) {\n-                            Thread.currentThread().interrupt();\n-                        }\n-                    }\n-                });\n-            }\n-        }\n-        return this;\n-    }\n-\n-    public DubboBootstrap awaitFinish() throws Exception {\n-        logger.info(NAME + \" waiting services exporting / referring ...\");\n-        if (exportAsync && asyncExportingFutures.size() > 0) {\n-            CompletableFuture future = CompletableFuture.allOf(asyncExportingFutures.toArray(new CompletableFuture[0]));\n-            future.get();\n-        }\n-        if (referAsync && asyncReferringFutures.size() > 0) {\n-            CompletableFuture future = CompletableFuture.allOf(asyncReferringFutures.toArray(new CompletableFuture[0]));\n-            future.get();\n-        }\n-\n-        logger.info(\"Service export / refer finished.\");\n-        return this;\n-    }\n-\n-    public boolean isInitialized() {\n-        return initialized.get();\n-    }\n-\n-    public boolean isStarted() {\n-        return started.get();\n-    }\n-\n-    public boolean isReady() {\n-        return ready.get();\n-    }\n-\n-\n-    public DubboBootstrap stop() throws IllegalStateException {\n-        destroy();\n-        return this;\n-    }\n-    /* serve for builder apis, begin */\n-\n-    private ApplicationBuilder createApplicationBuilder(String name) {\n-        return new ApplicationBuilder().name(name);\n-    }\n-\n-    private RegistryBuilder createRegistryBuilder(String id) {\n-        return new RegistryBuilder().id(id);\n-    }\n-\n-    private ProtocolBuilder createProtocolBuilder(String id) {\n-        return new ProtocolBuilder().id(id);\n-    }\n-\n-    private ServiceBuilder createServiceBuilder(String id) {\n-        return new ServiceBuilder().id(id);\n-    }\n-\n-    private ReferenceBuilder createReferenceBuilder(String id) {\n-        return new ReferenceBuilder().id(id);\n-    }\n-\n-    private ProviderBuilder createProviderBuilder(String id) {\n-        return new ProviderBuilder().id(id);\n-    }\n-\n-    private ConsumerBuilder createConsumerBuilder(String id) {\n-        return new ConsumerBuilder().id(id);\n-    }\n-    /* serve for builder apis, end */\n-\n-    private DynamicConfiguration prepareEnvironment(ConfigCenterConfig configCenter) {\n-        if (configCenter.isValid()) {\n-            if (!configCenter.checkOrUpdateInited()) {\n-                return null;\n-            }\n-            DynamicConfiguration dynamicConfiguration = getDynamicConfiguration(configCenter.toUrl());\n-            String configContent = dynamicConfiguration.getProperties(configCenter.getConfigFile(), configCenter.getGroup());\n-\n-            String appGroup = getApplication().getName();\n-            String appConfigContent = null;\n-            if (isNotEmpty(appGroup)) {\n-                appConfigContent = dynamicConfiguration.getProperties\n-                        (isNotEmpty(configCenter.getAppConfigFile()) ? configCenter.getAppConfigFile() : configCenter.getConfigFile(),\n-                                appGroup\n-                        );\n-            }\n-            try {\n-                environment.setConfigCenterFirst(configCenter.isHighestPriority());\n-                environment.updateExternalConfigurationMap(parseProperties(configContent));\n-                environment.updateAppExternalConfigurationMap(parseProperties(appConfigContent));\n-            } catch (IOException e) {\n-                throw new IllegalStateException(\"Failed to parse configurations from Config Center.\", e);\n-            }\n-            return dynamicConfiguration;\n-        }\n-        return null;\n-    }\n-\n-    /**\n-     * Add an instance of {@link EventListener}\n-     *\n-     * @param listener {@link EventListener}\n-     * @return {@link DubboBootstrap}\n-     */\n-    public DubboBootstrap addEventListener(EventListener<?> listener) {\n-        eventDispatcher.addEventListener(listener);\n-        return this;\n-    }\n-\n-    /**\n-     * export {@link MetadataService}\n-     */\n-    private void exportMetadataService() {\n-        metadataServiceExporter.export();\n-    }\n-\n-    private void unexportMetadataService() {\n-        if (metadataServiceExporter != null && metadataServiceExporter.isExported()) {\n-            metadataServiceExporter.unexport();\n-        }\n-    }\n-\n-    private void exportServices() {\n-        configManager.getServices().forEach(sc -> {\n-            // TODO, compatible with ServiceConfig.export()\n-            ServiceConfig serviceConfig = (ServiceConfig) sc;\n-            serviceConfig.setBootstrap(this);\n-\n-            if (exportAsync) {\n-                ExecutorService executor = executorRepository.getServiceExporterExecutor();\n-                Future<?> future = executor.submit(() -> {\n-                    sc.export();\n-                    exportedServices.add(sc);\n-                });\n-                asyncExportingFutures.add(future);\n-            } else {\n-                sc.export();\n-                exportedServices.add(sc);\n-            }\n-        });\n-    }\n-\n-    private void unexportServices() {\n-        exportedServices.forEach(sc -> {\n-            configManager.removeConfig(sc);\n-            sc.unexport();\n-        });\n-\n-        asyncExportingFutures.forEach(future -> {\n-            if (!future.isDone()) {\n-                future.cancel(true);\n-            }\n-        });\n-        asyncExportingFutures.clear();\n-        exportedServices.clear();\n-    }\n-\n-    private void referServices() {\n-        if (cache == null) {\n-            cache = ReferenceConfigCache.getCache();\n-        }\n-\n-        configManager.getReferences().forEach(rc -> {\n-            // TODO, compatible with  ReferenceConfig.refer()\n-            ReferenceConfig referenceConfig = (ReferenceConfig) rc;\n-            referenceConfig.setBootstrap(this);\n-\n-            if (rc.shouldInit()) {\n-                if (referAsync) {\n-                    CompletableFuture<Object> future = ScheduledCompletableFuture.submit(\n-                            executorRepository.getServiceExporterExecutor(),\n-                            () -> cache.get(rc)\n-                    );\n-                    asyncReferringFutures.add(future);\n-                } else {\n-                    cache.get(rc);\n-                }\n-            }\n-        });\n-    }\n-\n-    private void unreferServices() {\n-        if (cache == null) {\n-            cache = ReferenceConfigCache.getCache();\n-        }\n-\n-        asyncReferringFutures.forEach(future -> {\n-            if (!future.isDone()) {\n-                future.cancel(true);\n-            }\n-        });\n-        asyncReferringFutures.clear();\n-        cache.destroyAll();\n-    }\n-\n-    private void registerServiceInstance() {\n-        if (CollectionUtils.isEmpty(getServiceDiscoveries())) {\n-            return;\n-        }\n-\n-        ApplicationConfig application = getApplication();\n-\n-        String serviceName = application.getName();\n-\n-        URL exportedURL = selectMetadataServiceExportedURL();\n-\n-        String host = exportedURL.getHost();\n-\n-        int port = exportedURL.getPort();\n-\n-        ServiceInstance serviceInstance = createServiceInstance(serviceName, host, port);\n-\n-        doRegisterServiceInstance(serviceInstance);\n-\n-        // scheduled task for updating Metadata and ServiceInstance\n-        executorRepository.nextScheduledExecutor().scheduleAtFixedRate(() -> {\n-            try {\n-                InMemoryWritableMetadataService localMetadataService = (InMemoryWritableMetadataService) WritableMetadataService.getDefaultExtension();\n-                localMetadataService.blockUntilUpdated();\n-                ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\n-            } catch (Throwable e) {\n-                logger.error(\"refresh metadata and instance failed\", e);\n-            }\n-        }, 0, ConfigurationUtils.get(METADATA_PUBLISH_DELAY_KEY, DEFAULT_METADATA_PUBLISH_DELAY), TimeUnit.MILLISECONDS);\n-    }\n-\n-    private void doRegisterServiceInstance(ServiceInstance serviceInstance) {\n-        //FIXME\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Start publishing metadata to remote center, this only makes sense for applications enabled remote metadata center.\");\n-        }\n-        publishMetadataToRemote(serviceInstance);\n-\n-        logger.info(\"Start registering instance address to registry.\");\n-        getServiceDiscoveries().forEach(serviceDiscovery ->\n-        {\n-            calInstanceRevision(serviceDiscovery, serviceInstance);\n-            if (logger.isDebugEnabled()) {\n-                logger.info(\"Start registering instance address to registry\" + serviceDiscovery.getUrl() + \", instance \" + serviceInstance);\n-            }\n-            // register metadata\n-            serviceDiscovery.register(serviceInstance);\n-        });\n-    }\n-\n-    private void publishMetadataToRemote(ServiceInstance serviceInstance) {\n-//        InMemoryWritableMetadataService localMetadataService = (InMemoryWritableMetadataService)WritableMetadataService.getDefaultExtension();\n-//        localMetadataService.blockUntilUpdated();\n-        RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\n-        remoteMetadataService.publishMetadata(serviceInstance.getServiceName());\n-    }\n-\n-    private URL selectMetadataServiceExportedURL() {\n-\n-        URL selectedURL = null;\n-\n-        SortedSet<String> urlValues = metadataService.getExportedURLs();\n-\n-        for (String urlValue : urlValues) {\n-            URL url = URL.valueOf(urlValue);\n-            if (MetadataService.class.getName().equals(url.getServiceInterface())) {\n-                continue;\n-            }\n-            if (\"rest\".equals(url.getProtocol())) { // REST first\n-                selectedURL = url;\n-                break;\n-            } else {\n-                selectedURL = url; // If not found, take any one\n-            }\n-        }\n-\n-        if (selectedURL == null && CollectionUtils.isNotEmpty(urlValues)) {\n-            selectedURL = URL.valueOf(urlValues.iterator().next());\n-        }\n-\n-        return selectedURL;\n-    }\n-\n-    private void unregisterServiceInstance() {\n-        if (serviceInstance != null) {\n-            getServiceDiscoveries().forEach(serviceDiscovery -> {\n-                serviceDiscovery.unregister(serviceInstance);\n-            });\n-        }\n-    }\n-\n-    private ServiceInstance createServiceInstance(String serviceName, String host, int port) {\n-        this.serviceInstance = new DefaultServiceInstance(serviceName, host, port);\n-        setMetadataStorageType(serviceInstance, getMetadataType());\n-\n-        ExtensionLoader<ServiceInstanceCustomizer> loader =\n-                ExtensionLoader.getExtensionLoader(ServiceInstanceCustomizer.class);\n-        // FIXME, sort customizer before apply\n-        loader.getSupportedExtensionInstances().forEach(customizer -> {\n-            // customizes\n-            customizer.customize(this.serviceInstance);\n-        });\n-\n-        return this.serviceInstance;\n-    }\n-\n-    public void destroy() {\n-        if (destroyLock.tryLock()) {\n-            try {\n-                DubboShutdownHook.destroyAll();\n-\n-                if (started.compareAndSet(true, false)\n-                        && destroyed.compareAndSet(false, true)) {\n-\n-                    unregisterServiceInstance();\n-                    unexportMetadataService();\n-                    unexportServices();\n-                    unreferServices();\n-\n-                    destroyRegistries();\n-\n-                    destroyServiceDiscoveries();\n-                    destroyExecutorRepository();\n-                    clear();\n-                    shutdown();\n-                    release();\n-                    ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\n-                    exts.getSupportedExtensionInstances().forEach(ext -> ext.onStop(this));\n-                }\n-            } finally {\n-                destroyLock.unlock();\n-            }\n-        }\n-    }\n-\n-    private void destroyExecutorRepository() {\n-        ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension().destroyAll();\n-    }\n-\n-    private void destroyRegistries() {\n-        AbstractRegistryFactory.destroyAll();\n-    }\n-\n-    private void destroyServiceDiscoveries() {\n-        getServiceDiscoveries().forEach(serviceDiscovery -> {\n-            execute(serviceDiscovery::destroy);\n-        });\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(NAME + \"'s all ServiceDiscoveries have been destroyed.\");\n-        }\n-    }\n-\n-    private void clear() {\n-        clearConfigs();\n-        clearApplicationModel();\n-    }\n-\n-    private void clearApplicationModel() {\n-\n-    }\n-\n-    private void clearConfigs() {\n-        configManager.destroy();\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(NAME + \"'s configs have been clear.\");\n-        }\n-    }\n-\n-    private void release() {\n-        executeMutually(() -> {\n-            while (awaited.compareAndSet(false, true)) {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(NAME + \" is about to shutdown...\");\n-                }\n-                condition.signalAll();\n-            }\n-        });\n-    }\n-\n-    private void shutdown() {\n-        if (!executorService.isShutdown()) {\n-            // Shutdown executorService\n-            executorService.shutdown();\n-        }\n-    }\n-\n-    private void executeMutually(Runnable runnable) {\n-        try {\n-            lock.lock();\n-            runnable.run();\n-        } finally {\n-            lock.unlock();\n-        }\n-    }\n-\n-    public ApplicationConfig getApplication() {\n-        ApplicationConfig application = configManager\n-                .getApplication()\n-                .orElseGet(() -> {\n-                    ApplicationConfig applicationConfig = new ApplicationConfig();\n-                    configManager.setApplication(applicationConfig);\n-                    return applicationConfig;\n-                });\n-\n-        application.refresh();\n-        return application;\n-    }\n-\n-    private MonitorConfig getMonitor() {\n-        MonitorConfig monitor = configManager\n-                .getMonitor()\n-                .orElseGet(() -> {\n-                    MonitorConfig monitorConfig = new MonitorConfig();\n-                    configManager.setMonitor(monitorConfig);\n-                    return monitorConfig;\n-                });\n-\n-        monitor.refresh();\n-        return monitor;\n-    }\n-\n-    private MetricsConfig getMetrics() {\n-        MetricsConfig metrics = configManager\n-                .getMetrics()\n-                .orElseGet(() -> {\n-                    MetricsConfig metricsConfig = new MetricsConfig();\n-                    configManager.setMetrics(metricsConfig);\n-                    return metricsConfig;\n-                });\n-        metrics.refresh();\n-        return metrics;\n-    }\n-\n-    private ModuleConfig getModule() {\n-        ModuleConfig module = configManager\n-                .getModule()\n-                .orElseGet(() -> {\n-                    ModuleConfig moduleConfig = new ModuleConfig();\n-                    configManager.setModule(moduleConfig);\n-                    return moduleConfig;\n-                });\n-\n-        module.refresh();\n-        return module;\n-    }\n-\n-    private SslConfig getSsl() {\n-        SslConfig ssl = configManager\n-                .getSsl()\n-                .orElseGet(() -> {\n-                    SslConfig sslConfig = new SslConfig();\n-                    configManager.setSsl(sslConfig);\n-                    return sslConfig;\n-                });\n-\n-        ssl.refresh();\n-        return ssl;\n-    }\n-\n-    public void setReady(boolean ready) {\n-        this.ready.set(ready);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.config.Environment;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.wrapper.CompositeDynamicConfiguration;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.concurrent.ScheduledCompletableFuture;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.DubboShutdownHook;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.config.ServiceConfigBase;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.bootstrap.builders.ApplicationBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.ConsumerBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.ProtocolBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.ProviderBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.ReferenceBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.RegistryBuilder;\r\n+import org.apache.dubbo.config.bootstrap.builders.ServiceBuilder;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.config.metadata.ConfigurableMetadataServiceExporter;\r\n+import org.apache.dubbo.config.utils.ConfigValidationUtils;\r\n+import org.apache.dubbo.config.utils.ReferenceConfigCache;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.event.GenericEventListener;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.MetadataServiceExporter;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.metadata.report.MetadataReportFactory;\r\n+import org.apache.dubbo.metadata.report.MetadataReportInstance;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\r\n+import org.apache.dubbo.registry.client.metadata.MetadataUtils;\r\n+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\r\n+import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService;\r\n+import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Future;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+import java.util.concurrent.locks.Condition;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+import java.util.function.Consumer;\r\n+import java.util.function.Supplier;\r\n+\r\n+import static java.lang.String.format;\r\n+import static java.util.Collections.singletonList;\r\n+import static java.util.concurrent.Executors.newSingleThreadExecutor;\r\n+import static org.apache.dubbo.common.config.ConfigurationUtils.parseProperties;\r\n+import static org.apache.dubbo.common.config.configcenter.DynamicConfiguration.getDynamicConfiguration;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.function.ThrowableAction.execute;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_PUBLISH_DELAY;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PUBLISH_DELAY_KEY;\r\n+import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.calInstanceRevision;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setMetadataStorageType;\r\n+import static org.apache.dubbo.registry.support.AbstractRegistryFactory.getServiceDiscoveries;\r\n+import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\r\n+\r\n+/**\r\n+ * See {@link ApplicationModel} and {@link ExtensionLoader} for why this class is designed to be singleton.\r\n+ * <p>\r\n+ * The bootstrap class of Dubbo\r\n+ * <p>\r\n+ * Get singleton instance by calling static method {@link #getInstance()}.\r\n+ * Designed as singleton because some classes inside Dubbo, such as ExtensionLoader, are designed only for one instance per process.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboBootstrap extends GenericEventListener {\r\n+\r\n+    public static final String DEFAULT_REGISTRY_ID = \"REGISTRY#DEFAULT\";\r\n+\r\n+    public static final String DEFAULT_PROTOCOL_ID = \"PROTOCOL#DEFAULT\";\r\n+\r\n+    public static final String DEFAULT_SERVICE_ID = \"SERVICE#DEFAULT\";\r\n+\r\n+    public static final String DEFAULT_REFERENCE_ID = \"REFERENCE#DEFAULT\";\r\n+\r\n+    public static final String DEFAULT_PROVIDER_ID = \"PROVIDER#DEFAULT\";\r\n+\r\n+    public static final String DEFAULT_CONSUMER_ID = \"CONSUMER#DEFAULT\";\r\n+\r\n+    private static final String NAME = DubboBootstrap.class.getSimpleName();\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private static volatile DubboBootstrap instance;\r\n+\r\n+    private final AtomicBoolean awaited = new AtomicBoolean(false);\r\n+\r\n+    private final Lock lock = new ReentrantLock();\r\n+\r\n+    private final Condition condition = lock.newCondition();\r\n+\r\n+    private final Lock destroyLock = new ReentrantLock();\r\n+\r\n+    private final ExecutorService executorService = newSingleThreadExecutor();\r\n+\r\n+    private final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\r\n+\r\n+    private final ExecutorRepository executorRepository = getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+\r\n+    private final ConfigManager configManager;\r\n+\r\n+    private final Environment environment;\r\n+\r\n+    private ReferenceConfigCache cache;\r\n+\r\n+    private volatile boolean exportAsync;\r\n+\r\n+    private volatile boolean referAsync;\r\n+\r\n+    private AtomicBoolean initialized = new AtomicBoolean(false);\r\n+\r\n+    private AtomicBoolean started = new AtomicBoolean(false);\r\n+\r\n+    private AtomicBoolean ready = new AtomicBoolean(false);\r\n+\r\n+    private AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    private volatile ServiceInstance serviceInstance;\r\n+\r\n+    private volatile MetadataService metadataService;\r\n+\r\n+    private volatile MetadataServiceExporter metadataServiceExporter;\r\n+\r\n+    private List<ServiceConfigBase<?>> exportedServices = new ArrayList<>();\r\n+\r\n+    private List<Future<?>> asyncExportingFutures = new ArrayList<>();\r\n+\r\n+    private List<CompletableFuture<Object>> asyncReferringFutures = new ArrayList<>();\r\n+\r\n+    /**\r\n+     * See {@link ApplicationModel} and {@link ExtensionLoader} for why DubboBootstrap is designed to be singleton.\r\n+     */\r\n+    public static DubboBootstrap getInstance() {\r\n+        if (instance == null) {\r\n+            synchronized (DubboBootstrap.class) {\r\n+                if (instance == null) {\r\n+                    instance = new DubboBootstrap();\r\n+                }\r\n+            }\r\n+        }\r\n+        return instance;\r\n+    }\r\n+\r\n+    private DubboBootstrap() {\r\n+        configManager = ApplicationModel.getConfigManager();\r\n+        environment = ApplicationModel.getEnvironment();\r\n+\r\n+        DubboShutdownHook.getDubboShutdownHook().register();\r\n+        ShutdownHookCallbacks.INSTANCE.addCallback(DubboBootstrap.this::destroy);\r\n+    }\r\n+\r\n+    public void unRegisterShutdownHook() {\r\n+        DubboShutdownHook.getDubboShutdownHook().unregister();\r\n+    }\r\n+\r\n+    private boolean isOnlyRegisterProvider() {\r\n+        Boolean registerConsumer = getApplication().getRegisterConsumer();\r\n+        return registerConsumer == null || !registerConsumer;\r\n+    }\r\n+\r\n+    private String getMetadataType() {\r\n+        String type = getApplication().getMetadataType();\r\n+        if (StringUtils.isEmpty(type)) {\r\n+            type = DEFAULT_METADATA_STORAGE_TYPE;\r\n+        }\r\n+        return type;\r\n+    }\r\n+\r\n+    public DubboBootstrap metadataReport(MetadataReportConfig metadataReportConfig) {\r\n+        configManager.addMetadataReport(metadataReportConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap metadataReports(List<MetadataReportConfig> metadataReportConfigs) {\r\n+        if (CollectionUtils.isEmpty(metadataReportConfigs)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        configManager.addMetadataReports(metadataReportConfigs);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link ApplicationConfig} correlative methods\r\n+\r\n+    /**\r\n+     * Set the name of application\r\n+     *\r\n+     * @param name the name of application\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap application(String name) {\r\n+        return application(name, builder -> {\r\n+            // DO NOTHING\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the name of application and it's future build\r\n+     *\r\n+     * @param name            the name of application\r\n+     * @param consumerBuilder {@link ApplicationBuilder}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap application(String name, Consumer<ApplicationBuilder> consumerBuilder) {\r\n+        ApplicationBuilder builder = createApplicationBuilder(name);\r\n+        consumerBuilder.accept(builder);\r\n+        return application(builder.build());\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the {@link ApplicationConfig}\r\n+     *\r\n+     * @param applicationConfig the {@link ApplicationConfig}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap application(ApplicationConfig applicationConfig) {\r\n+        configManager.setApplication(applicationConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    // {@link RegistryConfig} correlative methods\r\n+\r\n+    /**\r\n+     * Add an instance of {@link RegistryConfig} with {@link #DEFAULT_REGISTRY_ID default ID}\r\n+     *\r\n+     * @param consumerBuilder the {@link Consumer} of {@link RegistryBuilder}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap registry(Consumer<RegistryBuilder> consumerBuilder) {\r\n+        return registry(DEFAULT_REGISTRY_ID, consumerBuilder);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add an instance of {@link RegistryConfig} with the specified ID\r\n+     *\r\n+     * @param id              the {@link RegistryConfig#getId() id}  of {@link RegistryConfig}\r\n+     * @param consumerBuilder the {@link Consumer} of {@link RegistryBuilder}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap registry(String id, Consumer<RegistryBuilder> consumerBuilder) {\r\n+        RegistryBuilder builder = createRegistryBuilder(id);\r\n+        consumerBuilder.accept(builder);\r\n+        return registry(builder.build());\r\n+    }\r\n+\r\n+    /**\r\n+     * Add an instance of {@link RegistryConfig}\r\n+     *\r\n+     * @param registryConfig an instance of {@link RegistryConfig}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap registry(RegistryConfig registryConfig) {\r\n+        configManager.addRegistry(registryConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * Add an instance of {@link RegistryConfig}\r\n+     *\r\n+     * @param registryConfigs the multiple instances of {@link RegistryConfig}\r\n+     * @return current {@link DubboBootstrap} instance\r\n+     */\r\n+    public DubboBootstrap registries(List<RegistryConfig> registryConfigs) {\r\n+        if (CollectionUtils.isEmpty(registryConfigs)) {\r\n+            return this;\r\n+        }\r\n+        registryConfigs.forEach(this::registry);\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    // {@link ProtocolConfig} correlative methods\r\n+    public DubboBootstrap protocol(Consumer<ProtocolBuilder> consumerBuilder) {\r\n+        return protocol(DEFAULT_PROTOCOL_ID, consumerBuilder);\r\n+    }\r\n+\r\n+    public DubboBootstrap protocol(String id, Consumer<ProtocolBuilder> consumerBuilder) {\r\n+        ProtocolBuilder builder = createProtocolBuilder(id);\r\n+        consumerBuilder.accept(builder);\r\n+        return protocol(builder.build());\r\n+    }\r\n+\r\n+    public DubboBootstrap protocol(ProtocolConfig protocolConfig) {\r\n+        return protocols(singletonList(protocolConfig));\r\n+    }\r\n+\r\n+    public DubboBootstrap protocols(List<ProtocolConfig> protocolConfigs) {\r\n+        if (CollectionUtils.isEmpty(protocolConfigs)) {\r\n+            return this;\r\n+        }\r\n+        configManager.addProtocols(protocolConfigs);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link ServiceConfig} correlative methods\r\n+    public <S> DubboBootstrap service(Consumer<ServiceBuilder<S>> consumerBuilder) {\r\n+        return service(DEFAULT_SERVICE_ID, consumerBuilder);\r\n+    }\r\n+\r\n+    public <S> DubboBootstrap service(String id, Consumer<ServiceBuilder<S>> consumerBuilder) {\r\n+        ServiceBuilder builder = createServiceBuilder(id);\r\n+        consumerBuilder.accept(builder);\r\n+        return service(builder.build());\r\n+    }\r\n+\r\n+    public DubboBootstrap service(ServiceConfig<?> serviceConfig) {\r\n+        configManager.addService(serviceConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap services(List<ServiceConfig> serviceConfigs) {\r\n+        if (CollectionUtils.isEmpty(serviceConfigs)) {\r\n+            return this;\r\n+        }\r\n+        serviceConfigs.forEach(configManager::addService);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link Reference} correlative methods\r\n+    public <S> DubboBootstrap reference(Consumer<ReferenceBuilder<S>> consumerBuilder) {\r\n+        return reference(DEFAULT_REFERENCE_ID, consumerBuilder);\r\n+    }\r\n+\r\n+    public <S> DubboBootstrap reference(String id, Consumer<ReferenceBuilder<S>> consumerBuilder) {\r\n+        ReferenceBuilder builder = createReferenceBuilder(id);\r\n+        consumerBuilder.accept(builder);\r\n+        return reference(builder.build());\r\n+    }\r\n+\r\n+    public DubboBootstrap reference(ReferenceConfig<?> referenceConfig) {\r\n+        configManager.addReference(referenceConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap references(List<ReferenceConfig> referenceConfigs) {\r\n+        if (CollectionUtils.isEmpty(referenceConfigs)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        referenceConfigs.forEach(configManager::addReference);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link ProviderConfig} correlative methods\r\n+    public DubboBootstrap provider(Consumer<ProviderBuilder> builderConsumer) {\r\n+        return provider(DEFAULT_PROVIDER_ID, builderConsumer);\r\n+    }\r\n+\r\n+    public DubboBootstrap provider(String id, Consumer<ProviderBuilder> builderConsumer) {\r\n+        ProviderBuilder builder = createProviderBuilder(id);\r\n+        builderConsumer.accept(builder);\r\n+        return provider(builder.build());\r\n+    }\r\n+\r\n+    public DubboBootstrap provider(ProviderConfig providerConfig) {\r\n+        return providers(singletonList(providerConfig));\r\n+    }\r\n+\r\n+    public DubboBootstrap providers(List<ProviderConfig> providerConfigs) {\r\n+        if (CollectionUtils.isEmpty(providerConfigs)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        providerConfigs.forEach(configManager::addProvider);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link ConsumerConfig} correlative methods\r\n+    public DubboBootstrap consumer(Consumer<ConsumerBuilder> builderConsumer) {\r\n+        return consumer(DEFAULT_CONSUMER_ID, builderConsumer);\r\n+    }\r\n+\r\n+    public DubboBootstrap consumer(String id, Consumer<ConsumerBuilder> builderConsumer) {\r\n+        ConsumerBuilder builder = createConsumerBuilder(id);\r\n+        builderConsumer.accept(builder);\r\n+        return consumer(builder.build());\r\n+    }\r\n+\r\n+    public DubboBootstrap consumer(ConsumerConfig consumerConfig) {\r\n+        return consumers(singletonList(consumerConfig));\r\n+    }\r\n+\r\n+    public DubboBootstrap consumers(List<ConsumerConfig> consumerConfigs) {\r\n+        if (CollectionUtils.isEmpty(consumerConfigs)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        consumerConfigs.forEach(configManager::addConsumer);\r\n+        return this;\r\n+    }\r\n+\r\n+    // {@link ConfigCenterConfig} correlative methods\r\n+    public DubboBootstrap configCenter(ConfigCenterConfig configCenterConfig) {\r\n+        return configCenters(singletonList(configCenterConfig));\r\n+    }\r\n+\r\n+    public DubboBootstrap configCenters(List<ConfigCenterConfig> configCenterConfigs) {\r\n+        if (CollectionUtils.isEmpty(configCenterConfigs)) {\r\n+            return this;\r\n+        }\r\n+        configManager.addConfigCenters(configCenterConfigs);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap monitor(MonitorConfig monitor) {\r\n+        configManager.setMonitor(monitor);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap metrics(MetricsConfig metrics) {\r\n+        configManager.setMetrics(metrics);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap module(ModuleConfig module) {\r\n+        configManager.setModule(module);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap ssl(SslConfig sslConfig) {\r\n+        configManager.setSsl(sslConfig);\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap cache(ReferenceConfigCache cache) {\r\n+        this.cache = cache;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ReferenceConfigCache getCache() {\r\n+        if (cache == null) {\r\n+            cache = ReferenceConfigCache.getCache();\r\n+        }\r\n+        return cache;\r\n+    }\r\n+\r\n+    public DubboBootstrap exportAsync() {\r\n+        this.exportAsync = true;\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap referAsync() {\r\n+        this.referAsync = true;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void init() {\r\n+        initialize();\r\n+    }\r\n+\r\n+    /**\r\n+     * Initialize\r\n+     */\r\n+    public void initialize() {\r\n+        if (!initialized.compareAndSet(false, true)) {\r\n+            return;\r\n+        }\r\n+\r\n+        ApplicationModel.initFrameworkExts();\r\n+\r\n+        startConfigCenter();\r\n+\r\n+        loadRemoteConfigs();\r\n+\r\n+        checkGlobalConfigs();\r\n+\r\n+        // @since 2.7.8\r\n+        startMetadataCenter();\r\n+\r\n+        initMetadataService();\r\n+\r\n+        initEventListener();\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(NAME + \" has been initialized!\");\r\n+        }\r\n+    }\r\n+\r\n+    private void checkGlobalConfigs() {\r\n+        // check Application\r\n+        ConfigValidationUtils.validateApplicationConfig(getApplication());\r\n+\r\n+        // check Metadata\r\n+        Collection<MetadataReportConfig> metadatas = configManager.getMetadataConfigs();\r\n+        if (CollectionUtils.isEmpty(metadatas)) {\r\n+            MetadataReportConfig metadataReportConfig = new MetadataReportConfig();\r\n+            metadataReportConfig.refresh();\r\n+            if (metadataReportConfig.isValid()) {\r\n+                configManager.addMetadataReport(metadataReportConfig);\r\n+                metadatas = configManager.getMetadataConfigs();\r\n+            }\r\n+        }\r\n+        if (CollectionUtils.isNotEmpty(metadatas)) {\r\n+            for (MetadataReportConfig metadataReportConfig : metadatas) {\r\n+                metadataReportConfig.refresh();\r\n+                ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);\r\n+            }\r\n+        }\r\n+\r\n+        // check Provider\r\n+        Collection<ProviderConfig> providers = configManager.getProviders();\r\n+        if (CollectionUtils.isEmpty(providers)) {\r\n+            configManager.getDefaultProvider().orElseGet(() -> {\r\n+                ProviderConfig providerConfig = new ProviderConfig();\r\n+                configManager.addProvider(providerConfig);\r\n+                providerConfig.refresh();\r\n+                return providerConfig;\r\n+            });\r\n+        }\r\n+        for (ProviderConfig providerConfig : configManager.getProviders()) {\r\n+            ConfigValidationUtils.validateProviderConfig(providerConfig);\r\n+        }\r\n+        // check Consumer\r\n+        Collection<ConsumerConfig> consumers = configManager.getConsumers();\r\n+        if (CollectionUtils.isEmpty(consumers)) {\r\n+            configManager.getDefaultConsumer().orElseGet(() -> {\r\n+                ConsumerConfig consumerConfig = new ConsumerConfig();\r\n+                configManager.addConsumer(consumerConfig);\r\n+                consumerConfig.refresh();\r\n+                return consumerConfig;\r\n+            });\r\n+        }\r\n+        for (ConsumerConfig consumerConfig : configManager.getConsumers()) {\r\n+            ConfigValidationUtils.validateConsumerConfig(consumerConfig);\r\n+        }\r\n+\r\n+        // check Monitor\r\n+        ConfigValidationUtils.validateMonitorConfig(getMonitor());\r\n+        // check Metrics\r\n+        ConfigValidationUtils.validateMetricsConfig(getMetrics());\r\n+        // check Module\r\n+        ConfigValidationUtils.validateModuleConfig(getModule());\r\n+        // check Ssl\r\n+        ConfigValidationUtils.validateSslConfig(getSsl());\r\n+    }\r\n+\r\n+    private void startConfigCenter() {\r\n+\r\n+        useRegistryAsConfigCenterIfNecessary();\r\n+\r\n+        Collection<ConfigCenterConfig> configCenters = configManager.getConfigCenters();\r\n+\r\n+        // check Config Center\r\n+        if (CollectionUtils.isEmpty(configCenters)) {\r\n+            ConfigCenterConfig configCenterConfig = new ConfigCenterConfig();\r\n+            configCenterConfig.refresh();\r\n+            if (configCenterConfig.isValid()) {\r\n+                configManager.addConfigCenter(configCenterConfig);\r\n+                configCenters = configManager.getConfigCenters();\r\n+            }\r\n+        } else {\r\n+            for (ConfigCenterConfig configCenterConfig : configCenters) {\r\n+                configCenterConfig.refresh();\r\n+                ConfigValidationUtils.validateConfigCenterConfig(configCenterConfig);\r\n+            }\r\n+        }\r\n+\r\n+        if (CollectionUtils.isNotEmpty(configCenters)) {\r\n+            CompositeDynamicConfiguration compositeDynamicConfiguration = new CompositeDynamicConfiguration();\r\n+            for (ConfigCenterConfig configCenter : configCenters) {\r\n+                compositeDynamicConfiguration.addConfiguration(prepareEnvironment(configCenter));\r\n+            }\r\n+            environment.setDynamicConfiguration(compositeDynamicConfiguration);\r\n+        }\r\n+        configManager.refreshAll();\r\n+    }\r\n+\r\n+    private void startMetadataCenter() {\r\n+\r\n+        useRegistryAsMetadataCenterIfNecessary();\r\n+\r\n+        ApplicationConfig applicationConfig = getApplication();\r\n+\r\n+        String metadataType = applicationConfig.getMetadataType();\r\n+        // FIXME, multiple metadata config support.\r\n+        Collection<MetadataReportConfig> metadataReportConfigs = configManager.getMetadataConfigs();\r\n+        if (CollectionUtils.isEmpty(metadataReportConfigs)) {\r\n+            if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {\r\n+                throw new IllegalStateException(\"No MetadataConfig found, Metadata Center address is required when 'metadata=remote' is enabled.\");\r\n+            }\r\n+            return;\r\n+        }\r\n+\r\n+        for (MetadataReportConfig metadataReportConfig : metadataReportConfigs) {\r\n+            ConfigValidationUtils.validateMetadataConfig(metadataReportConfig);\r\n+            if (!metadataReportConfig.isValid()) {\r\n+                return;\r\n+            }\r\n+            MetadataReportInstance.init(metadataReportConfig);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * For compatibility purpose, use registry as the default config center when\r\n+     * there's no config center specified explicitly and\r\n+     * useAsConfigCenter of registryConfig is null or true\r\n+     */\r\n+    private void useRegistryAsConfigCenterIfNecessary() {\r\n+        // we use the loading status of DynamicConfiguration to decide whether ConfigCenter has been initiated.\r\n+        if (environment.getDynamicConfiguration().isPresent()) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (CollectionUtils.isNotEmpty(configManager.getConfigCenters())) {\r\n+            return;\r\n+        }\r\n+\r\n+        configManager\r\n+                .getDefaultRegistries()\r\n+                .stream()\r\n+                .filter(this::isUsedRegistryAsConfigCenter)\r\n+                .map(this::registryAsConfigCenter)\r\n+                .forEach(configManager::addConfigCenter);\r\n+    }\r\n+\r\n+    private boolean isUsedRegistryAsConfigCenter(RegistryConfig registryConfig) {\r\n+        return isUsedRegistryAsCenter(registryConfig, registryConfig::getUseAsConfigCenter, \"config\",\r\n+                DynamicConfigurationFactory.class);\r\n+    }\r\n+\r\n+    private ConfigCenterConfig registryAsConfigCenter(RegistryConfig registryConfig) {\r\n+        String protocol = registryConfig.getProtocol();\r\n+        Integer port = registryConfig.getPort();\r\n+        String id = \"config-center-\" + protocol + \"-\" + port;\r\n+        ConfigCenterConfig cc = new ConfigCenterConfig();\r\n+        cc.setId(id);\r\n+        if (cc.getParameters() == null) {\r\n+            cc.setParameters(new HashMap<>());\r\n+        }\r\n+        if (registryConfig.getParameters() != null) {\r\n+            cc.getParameters().putAll(registryConfig.getParameters()); // copy the parameters\r\n+        }\r\n+        cc.getParameters().put(CLIENT_KEY, registryConfig.getClient());\r\n+        cc.setProtocol(protocol);\r\n+        cc.setPort(port);\r\n+        if (StringUtils.isNotEmpty(registryConfig.getGroup())) {\r\n+            cc.setGroup(registryConfig.getGroup());\r\n+        }\r\n+        cc.setAddress(getRegistryCompatibleAddress(registryConfig));\r\n+        cc.setNamespace(registryConfig.getGroup());\r\n+        cc.setUsername(registryConfig.getUsername());\r\n+        cc.setPassword(registryConfig.getPassword());\r\n+        if (registryConfig.getTimeout() != null) {\r\n+            cc.setTimeout(registryConfig.getTimeout().longValue());\r\n+        }\r\n+        cc.setHighestPriority(false);\r\n+        return cc;\r\n+    }\r\n+\r\n+    private void useRegistryAsMetadataCenterIfNecessary() {\r\n+\r\n+        Collection<MetadataReportConfig> metadataConfigs = configManager.getMetadataConfigs();\r\n+\r\n+        if (CollectionUtils.isNotEmpty(metadataConfigs)) {\r\n+            return;\r\n+        }\r\n+\r\n+        configManager\r\n+                .getDefaultRegistries()\r\n+                .stream()\r\n+                .filter(this::isUsedRegistryAsMetadataCenter)\r\n+                .map(this::registryAsMetadataCenter)\r\n+                .forEach(configManager::addMetadataReport);\r\n+\r\n+    }\r\n+\r\n+    private boolean isUsedRegistryAsMetadataCenter(RegistryConfig registryConfig) {\r\n+        return isUsedRegistryAsCenter(registryConfig, registryConfig::getUseAsMetadataCenter, \"metadata\",\r\n+                MetadataReportFactory.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * Is used the specified registry as a center infrastructure\r\n+     *\r\n+     * @param registryConfig       the {@link RegistryConfig}\r\n+     * @param usedRegistryAsCenter the configured value on\r\n+     * @param centerType           the type name of center\r\n+     * @param extensionClass       an extension class of a center infrastructure\r\n+     * @return\r\n+     * @since 2.7.8\r\n+     */\r\n+    private boolean isUsedRegistryAsCenter(RegistryConfig registryConfig, Supplier<Boolean> usedRegistryAsCenter,\r\n+                                           String centerType,\r\n+                                           Class<?> extensionClass) {\r\n+        final boolean supported;\r\n+\r\n+        Boolean configuredValue = usedRegistryAsCenter.get();\r\n+        if (configuredValue != null) { // If configured, take its value.\r\n+            supported = configuredValue.booleanValue();\r\n+        } else {                       // Or check the extension existence\r\n+            String protocol = registryConfig.getProtocol();\r\n+            supported = supportsExtension(extensionClass, protocol);\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(format(\"No value is configured in the registry, the %s extension[name : %s] %s as the %s center\"\r\n+                        , extensionClass.getSimpleName(), protocol, supported ? \"supports\" : \"does not support\", centerType));\r\n+            }\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(format(\"The registry[%s] will be %s as the %s center\", registryConfig,\r\n+                    supported ? \"used\" : \"not used\", centerType));\r\n+        }\r\n+        return supported;\r\n+    }\r\n+\r\n+    /**\r\n+     * Supports the extension with the specified class and name\r\n+     *\r\n+     * @param extensionClass the {@link Class} of extension\r\n+     * @param name           the name of extension\r\n+     * @return if supports, return <code>true</code>, or <code>false</code>\r\n+     * @since 2.7.8\r\n+     */\r\n+    private boolean supportsExtension(Class<?> extensionClass, String name) {\r\n+        if (isNotEmpty(name)) {\r\n+            ExtensionLoader extensionLoader = getExtensionLoader(extensionClass);\r\n+            return extensionLoader.hasExtension(name);\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private MetadataReportConfig registryAsMetadataCenter(RegistryConfig registryConfig) {\r\n+        String protocol = registryConfig.getProtocol();\r\n+        Integer port = registryConfig.getPort();\r\n+        String id = \"metadata-center-\" + protocol + \"-\" + port;\r\n+        MetadataReportConfig metadataReportConfig = new MetadataReportConfig();\r\n+        metadataReportConfig.setId(id);\r\n+        if (metadataReportConfig.getParameters() == null) {\r\n+            metadataReportConfig.setParameters(new HashMap<>());\r\n+        }\r\n+        if (registryConfig.getParameters() != null) {\r\n+            metadataReportConfig.getParameters().putAll(registryConfig.getParameters()); // copy the parameters\r\n+        }\r\n+        metadataReportConfig.getParameters().put(CLIENT_KEY, registryConfig.getClient());\r\n+        metadataReportConfig.setGroup(registryConfig.getGroup());\r\n+        metadataReportConfig.setAddress(getRegistryCompatibleAddress(registryConfig));\r\n+        metadataReportConfig.setUsername(registryConfig.getUsername());\r\n+        metadataReportConfig.setPassword(registryConfig.getPassword());\r\n+        metadataReportConfig.setTimeout(registryConfig.getTimeout());\r\n+        return metadataReportConfig;\r\n+    }\r\n+\r\n+    private String getRegistryCompatibleAddress(RegistryConfig registryConfig) {\r\n+        String registryAddress = registryConfig.getAddress();\r\n+        String[] addresses = REGISTRY_SPLIT_PATTERN.split(registryAddress);\r\n+        if (ArrayUtils.isEmpty(addresses)) {\r\n+            throw new IllegalStateException(\"Invalid registry address found.\");\r\n+        }\r\n+        String address = addresses[0];\r\n+        // since 2.7.8\r\n+        // Issue : https://github.com/apache/dubbo/issues/6476\r\n+        StringBuilder metadataAddressBuilder = new StringBuilder();\r\n+        URL url = URL.valueOf(address);\r\n+        String protocolFromAddress = url.getProtocol();\r\n+        if (isEmpty(protocolFromAddress)) {\r\n+            // If the protocol from address is missing, is like :\r\n+            // \"dubbo.registry.address = 127.0.0.1:2181\"\r\n+            String protocolFromConfig = registryConfig.getProtocol();\r\n+            metadataAddressBuilder.append(protocolFromConfig).append(\"://\");\r\n+        }\r\n+        metadataAddressBuilder.append(address);\r\n+        return metadataAddressBuilder.toString();\r\n+    }\r\n+\r\n+    private void loadRemoteConfigs() {\r\n+        // registry ids to registry configs\r\n+        List<RegistryConfig> tmpRegistries = new ArrayList<>();\r\n+        Set<String> registryIds = configManager.getRegistryIds();\r\n+        registryIds.forEach(id -> {\r\n+            if (tmpRegistries.stream().noneMatch(reg -> reg.getId().equals(id))) {\r\n+                tmpRegistries.add(configManager.getRegistry(id).orElseGet(() -> {\r\n+                    RegistryConfig registryConfig = new RegistryConfig();\r\n+                    registryConfig.setId(id);\r\n+                    registryConfig.refresh();\r\n+                    return registryConfig;\r\n+                }));\r\n+            }\r\n+        });\r\n+\r\n+        configManager.addRegistries(tmpRegistries);\r\n+\r\n+        // protocol ids to protocol configs\r\n+        List<ProtocolConfig> tmpProtocols = new ArrayList<>();\r\n+        Set<String> protocolIds = configManager.getProtocolIds();\r\n+        protocolIds.forEach(id -> {\r\n+            if (tmpProtocols.stream().noneMatch(prot -> prot.getId().equals(id))) {\r\n+                tmpProtocols.add(configManager.getProtocol(id).orElseGet(() -> {\r\n+                    ProtocolConfig protocolConfig = new ProtocolConfig();\r\n+                    protocolConfig.setId(id);\r\n+                    protocolConfig.refresh();\r\n+                    return protocolConfig;\r\n+                }));\r\n+            }\r\n+        });\r\n+\r\n+        configManager.addProtocols(tmpProtocols);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Initialize {@link MetadataService} from {@link WritableMetadataService}'s extension\r\n+     */\r\n+    private void initMetadataService() {\r\n+        this.metadataService = getDefaultExtension();\r\n+        this.metadataServiceExporter = new ConfigurableMetadataServiceExporter(metadataService);\r\n+    }\r\n+\r\n+    /**\r\n+     * Initialize {@link EventListener}\r\n+     */\r\n+    private void initEventListener() {\r\n+        // Add current instance into listeners\r\n+        addEventListener(this);\r\n+    }\r\n+\r\n+    /**\r\n+     * Start the bootstrap\r\n+     */\r\n+    public DubboBootstrap start() {\r\n+        if (started.compareAndSet(false, true)) {\r\n+            ready.set(false);\r\n+            initialize();\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(NAME + \" is starting...\");\r\n+            }\r\n+            // 1. export Dubbo Services\r\n+            exportServices();\r\n+\r\n+            // Not only provider register\r\n+            if (!isOnlyRegisterProvider() || hasExportedServices()) {\r\n+                // 2. export MetadataService\r\n+                exportMetadataService();\r\n+                //3. Register the local ServiceInstance if required\r\n+                registerServiceInstance();\r\n+            }\r\n+\r\n+            referServices();\r\n+            if (asyncExportingFutures.size() > 0) {\r\n+                new Thread(() -> {\r\n+                    try {\r\n+                        this.awaitFinish();\r\n+                    } catch (Exception e) {\r\n+                        logger.warn(NAME + \" exportAsync occurred an exception.\");\r\n+                    }\r\n+                    ready.set(true);\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(NAME + \" is ready.\");\r\n+                    }\r\n+                    ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\r\n+                    exts.getSupportedExtensionInstances().forEach(ext -> ext.onStart(this));\r\n+                }).start();\r\n+            } else {\r\n+                ready.set(true);\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(NAME + \" is ready.\");\r\n+                }\r\n+                ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\r\n+                exts.getSupportedExtensionInstances().forEach(ext -> ext.onStart(this));\r\n+            }\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(NAME + \" has started.\");\r\n+            }\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    private boolean hasExportedServices() {\r\n+        return !metadataService.getExportedURLs().isEmpty();\r\n+    }\r\n+\r\n+    /**\r\n+     * Block current thread to be await.\r\n+     *\r\n+     * @return {@link DubboBootstrap}\r\n+     */\r\n+    public DubboBootstrap await() {\r\n+        // if has been waited, no need to wait again, return immediately\r\n+        if (!awaited.get()) {\r\n+            if (!executorService.isShutdown()) {\r\n+                executeMutually(() -> {\r\n+                    while (!awaited.get()) {\r\n+                        if (logger.isInfoEnabled()) {\r\n+                            logger.info(NAME + \" awaiting ...\");\r\n+                        }\r\n+                        try {\r\n+                            condition.await();\r\n+                        } catch (InterruptedException e) {\r\n+                            Thread.currentThread().interrupt();\r\n+                        }\r\n+                    }\r\n+                });\r\n+            }\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    public DubboBootstrap awaitFinish() throws Exception {\r\n+        logger.info(NAME + \" waiting services exporting / referring ...\");\r\n+        if (exportAsync && asyncExportingFutures.size() > 0) {\r\n+            CompletableFuture future = CompletableFuture.allOf(asyncExportingFutures.toArray(new CompletableFuture[0]));\r\n+            future.get();\r\n+        }\r\n+        if (referAsync && asyncReferringFutures.size() > 0) {\r\n+            CompletableFuture future = CompletableFuture.allOf(asyncReferringFutures.toArray(new CompletableFuture[0]));\r\n+            future.get();\r\n+        }\r\n+\r\n+        logger.info(\"Service export / refer finished.\");\r\n+        return this;\r\n+    }\r\n+\r\n+    public boolean isInitialized() {\r\n+        return initialized.get();\r\n+    }\r\n+\r\n+    public boolean isStarted() {\r\n+        return started.get();\r\n+    }\r\n+\r\n+    public boolean isReady() {\r\n+        return ready.get();\r\n+    }\r\n+\r\n+\r\n+    public DubboBootstrap stop() throws IllegalStateException {\r\n+        destroy();\r\n+        return this;\r\n+    }\r\n+    /* serve for builder apis, begin */\r\n+\r\n+    private ApplicationBuilder createApplicationBuilder(String name) {\r\n+        return new ApplicationBuilder().name(name);\r\n+    }\r\n+\r\n+    private RegistryBuilder createRegistryBuilder(String id) {\r\n+        return new RegistryBuilder().id(id);\r\n+    }\r\n+\r\n+    private ProtocolBuilder createProtocolBuilder(String id) {\r\n+        return new ProtocolBuilder().id(id);\r\n+    }\r\n+\r\n+    private ServiceBuilder createServiceBuilder(String id) {\r\n+        return new ServiceBuilder().id(id);\r\n+    }\r\n+\r\n+    private ReferenceBuilder createReferenceBuilder(String id) {\r\n+        return new ReferenceBuilder().id(id);\r\n+    }\r\n+\r\n+    private ProviderBuilder createProviderBuilder(String id) {\r\n+        return new ProviderBuilder().id(id);\r\n+    }\r\n+\r\n+    private ConsumerBuilder createConsumerBuilder(String id) {\r\n+        return new ConsumerBuilder().id(id);\r\n+    }\r\n+    /* serve for builder apis, end */\r\n+\r\n+    private DynamicConfiguration prepareEnvironment(ConfigCenterConfig configCenter) {\r\n+        if (configCenter.isValid()) {\r\n+            if (!configCenter.checkOrUpdateInited()) {\r\n+                return null;\r\n+            }\r\n+            DynamicConfiguration dynamicConfiguration = getDynamicConfiguration(configCenter.toUrl());\r\n+            String configContent = dynamicConfiguration.getProperties(configCenter.getConfigFile(), configCenter.getGroup());\r\n+\r\n+            String appGroup = getApplication().getName();\r\n+            String appConfigContent = null;\r\n+            if (isNotEmpty(appGroup)) {\r\n+                appConfigContent = dynamicConfiguration.getProperties\r\n+                        (isNotEmpty(configCenter.getAppConfigFile()) ? configCenter.getAppConfigFile() : configCenter.getConfigFile(),\r\n+                                appGroup\r\n+                        );\r\n+            }\r\n+            try {\r\n+                environment.setConfigCenterFirst(configCenter.isHighestPriority());\r\n+                environment.updateExternalConfigurationMap(parseProperties(configContent));\r\n+                environment.updateAppExternalConfigurationMap(parseProperties(appConfigContent));\r\n+            } catch (IOException e) {\r\n+                throw new IllegalStateException(\"Failed to parse configurations from Config Center.\", e);\r\n+            }\r\n+            return dynamicConfiguration;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Add an instance of {@link EventListener}\r\n+     *\r\n+     * @param listener {@link EventListener}\r\n+     * @return {@link DubboBootstrap}\r\n+     */\r\n+    public DubboBootstrap addEventListener(EventListener<?> listener) {\r\n+        eventDispatcher.addEventListener(listener);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * export {@link MetadataService}\r\n+     */\r\n+    private void exportMetadataService() {\r\n+        metadataServiceExporter.export();\r\n+    }\r\n+\r\n+    private void unexportMetadataService() {\r\n+        if (metadataServiceExporter != null && metadataServiceExporter.isExported()) {\r\n+            metadataServiceExporter.unexport();\r\n+        }\r\n+    }\r\n+\r\n+    private void exportServices() {\r\n+        configManager.getServices().forEach(sc -> {\r\n+            // TODO, compatible with ServiceConfig.export()\r\n+            ServiceConfig serviceConfig = (ServiceConfig) sc;\r\n+            serviceConfig.setBootstrap(this);\r\n+\r\n+            if (exportAsync) {\r\n+                ExecutorService executor = executorRepository.getServiceExporterExecutor();\r\n+                Future<?> future = executor.submit(() -> {\r\n+                    sc.export();\r\n+                    exportedServices.add(sc);\r\n+                });\r\n+                asyncExportingFutures.add(future);\r\n+            } else {\r\n+                sc.export();\r\n+                exportedServices.add(sc);\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private void unexportServices() {\r\n+        exportedServices.forEach(sc -> {\r\n+            configManager.removeConfig(sc);\r\n+            sc.unexport();\r\n+        });\r\n+\r\n+        asyncExportingFutures.forEach(future -> {\r\n+            if (!future.isDone()) {\r\n+                future.cancel(true);\r\n+            }\r\n+        });\r\n+        asyncExportingFutures.clear();\r\n+        exportedServices.clear();\r\n+    }\r\n+\r\n+    private void referServices() {\r\n+        if (cache == null) {\r\n+            cache = ReferenceConfigCache.getCache();\r\n+        }\r\n+\r\n+        configManager.getReferences().forEach(rc -> {\r\n+            // TODO, compatible with  ReferenceConfig.refer()\r\n+            ReferenceConfig referenceConfig = (ReferenceConfig) rc;\r\n+            referenceConfig.setBootstrap(this);\r\n+\r\n+            if (rc.shouldInit()) {\r\n+                if (referAsync) {\r\n+                    CompletableFuture<Object> future = ScheduledCompletableFuture.submit(\r\n+                            executorRepository.getServiceExporterExecutor(),\r\n+                            () -> cache.get(rc)\r\n+                    );\r\n+                    asyncReferringFutures.add(future);\r\n+                } else {\r\n+                    cache.get(rc);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private void unreferServices() {\r\n+        if (cache == null) {\r\n+            cache = ReferenceConfigCache.getCache();\r\n+        }\r\n+\r\n+        asyncReferringFutures.forEach(future -> {\r\n+            if (!future.isDone()) {\r\n+                future.cancel(true);\r\n+            }\r\n+        });\r\n+        asyncReferringFutures.clear();\r\n+        cache.destroyAll();\r\n+    }\r\n+\r\n+    private void registerServiceInstance() {\r\n+        if (CollectionUtils.isEmpty(getServiceDiscoveries())) {\r\n+            return;\r\n+        }\r\n+\r\n+        ApplicationConfig application = getApplication();\r\n+\r\n+        String serviceName = application.getName();\r\n+\r\n+        URL exportedURL = selectMetadataServiceExportedURL();\r\n+\r\n+        String host = exportedURL.getHost();\r\n+\r\n+        int port = exportedURL.getPort();\r\n+\r\n+        ServiceInstance serviceInstance = createServiceInstance(serviceName, host, port);\r\n+\r\n+        doRegisterServiceInstance(serviceInstance);\r\n+\r\n+        // scheduled task for updating Metadata and ServiceInstance\r\n+        executorRepository.nextScheduledExecutor().scheduleAtFixedRate(() -> {\r\n+            try {\r\n+                InMemoryWritableMetadataService localMetadataService = (InMemoryWritableMetadataService) WritableMetadataService.getDefaultExtension();\r\n+                localMetadataService.blockUntilUpdated();\r\n+                ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\r\n+            } catch (Throwable e) {\r\n+                logger.error(\"refresh metadata and instance failed\", e);\r\n+            }\r\n+        }, 0, ConfigurationUtils.get(METADATA_PUBLISH_DELAY_KEY, DEFAULT_METADATA_PUBLISH_DELAY), TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    private void doRegisterServiceInstance(ServiceInstance serviceInstance) {\r\n+        //FIXME\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Start publishing metadata to remote center, this only makes sense for applications enabled remote metadata center.\");\r\n+        }\r\n+        publishMetadataToRemote(serviceInstance);\r\n+\r\n+        logger.info(\"Start registering instance address to registry.\");\r\n+        getServiceDiscoveries().forEach(serviceDiscovery ->\r\n+        {\r\n+            calInstanceRevision(serviceDiscovery, serviceInstance);\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.info(\"Start registering instance address to registry\" + serviceDiscovery.getUrl() + \", instance \" + serviceInstance);\r\n+            }\r\n+            // register metadata\r\n+            serviceDiscovery.register(serviceInstance);\r\n+        });\r\n+    }\r\n+\r\n+    private void publishMetadataToRemote(ServiceInstance serviceInstance) {\r\n+//        InMemoryWritableMetadataService localMetadataService = (InMemoryWritableMetadataService)WritableMetadataService.getDefaultExtension();\r\n+//        localMetadataService.blockUntilUpdated();\r\n+        RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\r\n+        remoteMetadataService.publishMetadata(serviceInstance.getServiceName());\r\n+    }\r\n+\r\n+    private URL selectMetadataServiceExportedURL() {\r\n+\r\n+        URL selectedURL = null;\r\n+\r\n+        SortedSet<String> urlValues = metadataService.getExportedURLs();\r\n+\r\n+        for (String urlValue : urlValues) {\r\n+            URL url = URL.valueOf(urlValue);\r\n+            if (MetadataService.class.getName().equals(url.getServiceInterface())) {\r\n+                continue;\r\n+            }\r\n+            if (\"rest\".equals(url.getProtocol())) { // REST first\r\n+                selectedURL = url;\r\n+                break;\r\n+            } else {\r\n+                selectedURL = url; // If not found, take any one\r\n+            }\r\n+        }\r\n+\r\n+        if (selectedURL == null && CollectionUtils.isNotEmpty(urlValues)) {\r\n+            selectedURL = URL.valueOf(urlValues.iterator().next());\r\n+        }\r\n+\r\n+        return selectedURL;\r\n+    }\r\n+\r\n+    private void unregisterServiceInstance() {\r\n+        if (serviceInstance != null) {\r\n+            getServiceDiscoveries().forEach(serviceDiscovery -> {\r\n+                serviceDiscovery.unregister(serviceInstance);\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    private ServiceInstance createServiceInstance(String serviceName, String host, int port) {\r\n+        this.serviceInstance = new DefaultServiceInstance(serviceName, host, port);\r\n+        setMetadataStorageType(serviceInstance, getMetadataType());\r\n+\r\n+        ExtensionLoader<ServiceInstanceCustomizer> loader =\r\n+                ExtensionLoader.getExtensionLoader(ServiceInstanceCustomizer.class);\r\n+        // FIXME, sort customizer before apply\r\n+        loader.getSupportedExtensionInstances().forEach(customizer -> {\r\n+            // customizes\r\n+            customizer.customize(this.serviceInstance);\r\n+        });\r\n+\r\n+        return this.serviceInstance;\r\n+    }\r\n+\r\n+    public void destroy() {\r\n+        if (destroyLock.tryLock()) {\r\n+            try {\r\n+                DubboShutdownHook.destroyAll();\r\n+\r\n+                if (started.compareAndSet(true, false)\r\n+                        && destroyed.compareAndSet(false, true)) {\r\n+\r\n+                    unregisterServiceInstance();\r\n+                    unexportMetadataService();\r\n+                    unexportServices();\r\n+                    unreferServices();\r\n+\r\n+                    destroyRegistries();\r\n+\r\n+                    destroyServiceDiscoveries();\r\n+                    destroyExecutorRepository();\r\n+                    clear();\r\n+                    shutdown();\r\n+                    release();\r\n+                    ExtensionLoader<DubboBootstrapStartStopListener> exts = getExtensionLoader(DubboBootstrapStartStopListener.class);\r\n+                    exts.getSupportedExtensionInstances().forEach(ext -> ext.onStop(this));\r\n+                }\r\n+            } finally {\r\n+                destroyLock.unlock();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void destroyExecutorRepository() {\r\n+        ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension().destroyAll();\r\n+    }\r\n+\r\n+    private void destroyRegistries() {\r\n+        AbstractRegistryFactory.destroyAll();\r\n+    }\r\n+\r\n+    private void destroyServiceDiscoveries() {\r\n+        getServiceDiscoveries().forEach(serviceDiscovery -> {\r\n+            execute(serviceDiscovery::destroy);\r\n+        });\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(NAME + \"'s all ServiceDiscoveries have been destroyed.\");\r\n+        }\r\n+    }\r\n+\r\n+    private void clear() {\r\n+        clearConfigs();\r\n+        clearApplicationModel();\r\n+    }\r\n+\r\n+    private void clearApplicationModel() {\r\n+\r\n+    }\r\n+\r\n+    private void clearConfigs() {\r\n+        configManager.destroy();\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(NAME + \"'s configs have been clear.\");\r\n+        }\r\n+    }\r\n+\r\n+    private void release() {\r\n+        executeMutually(() -> {\r\n+            while (awaited.compareAndSet(false, true)) {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(NAME + \" is about to shutdown...\");\r\n+                }\r\n+                condition.signalAll();\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    private void shutdown() {\r\n+        if (!executorService.isShutdown()) {\r\n+            // Shutdown executorService\r\n+            executorService.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+    private void executeMutually(Runnable runnable) {\r\n+        try {\r\n+            lock.lock();\r\n+            runnable.run();\r\n+        } finally {\r\n+            lock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    public ApplicationConfig getApplication() {\r\n+        ApplicationConfig application = configManager\r\n+                .getApplication()\r\n+                .orElseGet(() -> {\r\n+                    ApplicationConfig applicationConfig = new ApplicationConfig();\r\n+                    configManager.setApplication(applicationConfig);\r\n+                    return applicationConfig;\r\n+                });\r\n+\r\n+        application.refresh();\r\n+        return application;\r\n+    }\r\n+\r\n+    private MonitorConfig getMonitor() {\r\n+        MonitorConfig monitor = configManager\r\n+                .getMonitor()\r\n+                .orElseGet(() -> {\r\n+                    MonitorConfig monitorConfig = new MonitorConfig();\r\n+                    configManager.setMonitor(monitorConfig);\r\n+                    return monitorConfig;\r\n+                });\r\n+\r\n+        monitor.refresh();\r\n+        return monitor;\r\n+    }\r\n+\r\n+    private MetricsConfig getMetrics() {\r\n+        MetricsConfig metrics = configManager\r\n+                .getMetrics()\r\n+                .orElseGet(() -> {\r\n+                    MetricsConfig metricsConfig = new MetricsConfig();\r\n+                    configManager.setMetrics(metricsConfig);\r\n+                    return metricsConfig;\r\n+                });\r\n+        metrics.refresh();\r\n+        return metrics;\r\n+    }\r\n+\r\n+    private ModuleConfig getModule() {\r\n+        ModuleConfig module = configManager\r\n+                .getModule()\r\n+                .orElseGet(() -> {\r\n+                    ModuleConfig moduleConfig = new ModuleConfig();\r\n+                    configManager.setModule(moduleConfig);\r\n+                    return moduleConfig;\r\n+                });\r\n+\r\n+        module.refresh();\r\n+        return module;\r\n+    }\r\n+\r\n+    private SslConfig getSsl() {\r\n+        SslConfig ssl = configManager\r\n+                .getSsl()\r\n+                .orElseGet(() -> {\r\n+                    SslConfig sslConfig = new SslConfig();\r\n+                    configManager.setSsl(sslConfig);\r\n+                    return sslConfig;\r\n+                });\r\n+\r\n+        ssl.refresh();\r\n+        return ssl;\r\n+    }\r\n+\r\n+    public void setReady(boolean ready) {\r\n+        this.ready.set(ready);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/DubboBootstrapStartStopListener.java", "source2": "org/apache/dubbo/config/bootstrap/DubboBootstrapStartStopListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.config.bootstrap;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * call on DubboBootstrap start or stop.\n- *\n- * @scene 2.7.9\n- * @see DubboBootstrap\n- */\n-@SPI\n-public interface DubboBootstrapStartStopListener {\n-\n-    void onStart(DubboBootstrap bootstrap);\n-\n-    void onStop(DubboBootstrap bootstrap);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.config.bootstrap;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * call on DubboBootstrap start or stop.\r\n+ *\r\n+ * @scene 2.7.9\r\n+ * @see DubboBootstrap\r\n+ */\r\n+@SPI\r\n+public interface DubboBootstrapStartStopListener {\r\n+\r\n+    void onStart(DubboBootstrap bootstrap);\r\n+\r\n+    void onStop(DubboBootstrap bootstrap);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/AbstractBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/AbstractBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,82 +1,82 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * AbstractBuilder\n- *\n- * @param <C> The type of {@link AbstractConfig Config}\n- * @param <B> The type of {@link AbstractBuilder Builder}\n- * @since 2.7\n- */\n-public abstract class AbstractBuilder<C extends AbstractConfig, B extends AbstractBuilder> {\n-    /**\n-     * The config id\n-     */\n-    protected String id;\n-    protected String prefix;\n-\n-    public B id(String id) {\n-        this.id = id;\n-        return getThis();\n-    }\n-\n-    protected B prefix(String prefix) {\n-        this.prefix = prefix;\n-        return getThis();\n-    }\n-\n-    protected abstract B getThis();\n-\n-    protected static Map<String, String> appendParameter(Map<String, String> parameters, String key, String value) {\n-        if (parameters == null) {\n-            parameters = new HashMap<>();\n-        }\n-        parameters.put(key, value);\n-        return parameters;\n-    }\n-\n-    protected static Map<String, String> appendParameters(Map<String, String> parameters, Map<String, String> appendParameters) {\n-        if (parameters == null) {\n-            parameters = new HashMap<>();\n-        }\n-        parameters.putAll(appendParameters);\n-        return parameters;\n-    }\n-\n-    protected void build(C instance) {\n-        if (!StringUtils.isEmpty(id)) {\n-            instance.setId(id);\n-        }\n-        if (!StringUtils.isEmpty(prefix)) {\n-            instance.setPrefix(prefix);\n-        }\n-    }\n-\n-    /**\n-     * Build an instance of {@link AbstractConfig config}\n-     *\n-     * @return an instance of {@link AbstractConfig config}\n-     */\n-    public abstract C build();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * AbstractBuilder\r\n+ *\r\n+ * @param <C> The type of {@link AbstractConfig Config}\r\n+ * @param <B> The type of {@link AbstractBuilder Builder}\r\n+ * @since 2.7\r\n+ */\r\n+public abstract class AbstractBuilder<C extends AbstractConfig, B extends AbstractBuilder> {\r\n+    /**\r\n+     * The config id\r\n+     */\r\n+    protected String id;\r\n+    protected String prefix;\r\n+\r\n+    public B id(String id) {\r\n+        this.id = id;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    protected B prefix(String prefix) {\r\n+        this.prefix = prefix;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    protected abstract B getThis();\r\n+\r\n+    protected static Map<String, String> appendParameter(Map<String, String> parameters, String key, String value) {\r\n+        if (parameters == null) {\r\n+            parameters = new HashMap<>();\r\n+        }\r\n+        parameters.put(key, value);\r\n+        return parameters;\r\n+    }\r\n+\r\n+    protected static Map<String, String> appendParameters(Map<String, String> parameters, Map<String, String> appendParameters) {\r\n+        if (parameters == null) {\r\n+            parameters = new HashMap<>();\r\n+        }\r\n+        parameters.putAll(appendParameters);\r\n+        return parameters;\r\n+    }\r\n+\r\n+    protected void build(C instance) {\r\n+        if (!StringUtils.isEmpty(id)) {\r\n+            instance.setId(id);\r\n+        }\r\n+        if (!StringUtils.isEmpty(prefix)) {\r\n+            instance.setPrefix(prefix);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Build an instance of {@link AbstractConfig config}\r\n+     *\r\n+     * @return an instance of {@link AbstractConfig config}\r\n+     */\r\n+    public abstract C build();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/AbstractInterfaceBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,345 +1,345 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractInterfaceConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.rpc.Filter;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * AbstractBuilder\n- *\n- * @since 2.7\n- */\n-public abstract class AbstractInterfaceBuilder<T extends AbstractInterfaceConfig, B extends AbstractInterfaceBuilder<T, B>>\n-        extends AbstractMethodBuilder<T, B> {\n-    /**\n-     * Local impl class name for the service interface\n-     */\n-    protected String local;\n-\n-    /**\n-     * Local stub class name for the service interface\n-     */\n-    protected String stub;\n-\n-    /**\n-     * Service monitor\n-     */\n-    protected MonitorConfig monitor;\n-\n-    /**\n-     * Strategies for generating dynamic agents\uff0cthere are two strategies can be choosed: jdk and javassist\n-     */\n-    protected String proxy;\n-\n-    /**\n-     * Cluster type\n-     */\n-    protected String cluster;\n-\n-    /**\n-     * The {@link Filter} when the provider side exposed a service or the customer side references a remote service used,\n-     * if there are more than one, you can use commas to separate them\n-     */\n-    protected String filter;\n-\n-    /**\n-     * The Listener when the provider side exposes a service or the customer side references a remote service used\n-     * if there are more than one, you can use commas to separate them\n-     */\n-    protected String listener;\n-\n-    /**\n-     * The owner of the service providers\n-     */\n-    protected String owner;\n-\n-    /**\n-     * Connection limits, 0 means shared connection, otherwise it defines the connections delegated to the current service\n-     */\n-    protected Integer connections;\n-\n-    /**\n-     * The layer of service providers\n-     */\n-    protected String layer;\n-\n-    /**\n-     * The application info\n-     */\n-    protected ApplicationConfig application;\n-\n-    /**\n-     * The module info\n-     */\n-    protected ModuleConfig module;\n-\n-    /**\n-     * Registry centers\n-     */\n-    protected List<RegistryConfig> registries;\n-\n-    protected String registryIds;\n-\n-    // connection events\n-    protected String onconnect;\n-\n-    /**\n-     * Disconnection events\n-     */\n-    protected String ondisconnect;\n-    protected MetadataReportConfig metadataReportConfig;\n-\n-    protected ConfigCenterConfig configCenter;\n-\n-    // callback limits\n-    private Integer callbacks;\n-    // the scope for referring/exporting a service, if it's local, it means searching in current JVM only.\n-    private String scope;\n-\n-    private String tag;\n-\n-    /**\n-     * @param local\n-     * @see AbstractInterfaceBuilder#stub(String)\n-     * @deprecated Replace to <code>stub(String)</code>\n-     */\n-    @Deprecated\n-    public B local(String local) {\n-        this.local = local;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param local\n-     * @see AbstractInterfaceBuilder#stub(Boolean)\n-     * @deprecated Replace to <code>stub(Boolean)</code>\n-     */\n-    @Deprecated\n-    public B local(Boolean local) {\n-        if (local != null) {\n-            this.local = local.toString();\n-        } else {\n-            this.local = null;\n-        }\n-        return getThis();\n-    }\n-\n-    public B stub(String stub) {\n-        this.stub = stub;\n-        return getThis();\n-    }\n-\n-    public B stub(Boolean stub) {\n-        if (stub != null) {\n-            this.stub = stub.toString();\n-        } else {\n-            this.stub = null;\n-        }\n-        return getThis();\n-    }\n-\n-    public B monitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-        return getThis();\n-    }\n-\n-    public B monitor(String monitor) {\n-        this.monitor = new MonitorConfig(monitor);\n-        return getThis();\n-    }\n-\n-    public B proxy(String proxy) {\n-        this.proxy = proxy;\n-        return getThis();\n-    }\n-\n-    public B cluster(String cluster) {\n-        this.cluster = cluster;\n-        return getThis();\n-    }\n-\n-    public B filter(String filter) {\n-        this.filter = filter;\n-        return getThis();\n-    }\n-\n-    public B listener(String listener) {\n-        this.listener = listener;\n-        return getThis();\n-    }\n-\n-    public B owner(String owner) {\n-        this.owner = owner;\n-        return getThis();\n-    }\n-\n-    public B connections(Integer connections) {\n-        this.connections = connections;\n-        return getThis();\n-    }\n-\n-    public B layer(String layer) {\n-        this.layer = layer;\n-        return getThis();\n-    }\n-\n-    public B application(ApplicationConfig application) {\n-        this.application = application;\n-        return getThis();\n-    }\n-\n-    public B module(ModuleConfig module) {\n-        this.module = module;\n-        return getThis();\n-    }\n-\n-    public B addRegistries(List<RegistryConfig> registries) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.addAll(registries);\n-        return getThis();\n-    }\n-\n-    public B addRegistry(RegistryConfig registry) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.add(registry);\n-        return getThis();\n-    }\n-\n-    public B registryIds(String registryIds) {\n-        this.registryIds = registryIds;\n-        return getThis();\n-    }\n-\n-    public B onconnect(String onconnect) {\n-        this.onconnect = onconnect;\n-        return getThis();\n-    }\n-\n-    public B ondisconnect(String ondisconnect) {\n-        this.ondisconnect = ondisconnect;\n-        return getThis();\n-    }\n-\n-    public B metadataReportConfig(MetadataReportConfig metadataReportConfig) {\n-        this.metadataReportConfig = metadataReportConfig;\n-        return getThis();\n-    }\n-\n-    public B configCenter(ConfigCenterConfig configCenter) {\n-        this.configCenter = configCenter;\n-        return getThis();\n-    }\n-\n-    public B callbacks(Integer callbacks) {\n-        this.callbacks = callbacks;\n-        return getThis();\n-    }\n-\n-    public B scope(String scope) {\n-        this.scope = scope;\n-        return getThis();\n-    }\n-\n-    public B tag(String tag) {\n-        this.tag = tag;\n-        return getThis();\n-    }\n-\n-    @Override\n-    public void build(T instance) {\n-        super.build(instance);\n-\n-        if (!StringUtils.isEmpty(local)) {\n-            instance.setLocal(local);\n-        }\n-        if (!StringUtils.isEmpty(stub)) {\n-            instance.setStub(stub);\n-        }\n-        if (monitor != null) {\n-            instance.setMonitor(monitor);\n-        }\n-        if (!StringUtils.isEmpty(proxy)) {\n-            instance.setProxy(proxy);\n-        }\n-        if (!StringUtils.isEmpty(cluster)) {\n-            instance.setCluster(cluster);\n-        }\n-        if (!StringUtils.isEmpty(filter)) {\n-            instance.setFilter(filter);\n-        }\n-        if (!StringUtils.isEmpty(listener)) {\n-            instance.setListener(listener);\n-        }\n-        if (!StringUtils.isEmpty(owner)) {\n-            instance.setOwner(owner);\n-        }\n-        if (connections != null) {\n-            instance.setConnections(connections);\n-        }\n-        if (!StringUtils.isEmpty(layer)) {\n-            instance.setLayer(layer);\n-        }\n-        if (application != null) {\n-            instance.setApplication(application);\n-        }\n-        if (module != null) {\n-            instance.setModule(module);\n-        }\n-        if (registries != null) {\n-            instance.setRegistries(registries);\n-        }\n-        if (!StringUtils.isEmpty(registryIds)) {\n-            instance.setRegistryIds(registryIds);\n-        }\n-        if (!StringUtils.isEmpty(onconnect)) {\n-            instance.setOnconnect(onconnect);\n-        }\n-        if (!StringUtils.isEmpty(ondisconnect)) {\n-            instance.setOndisconnect(ondisconnect);\n-        }\n-        if (metadataReportConfig != null) {\n-            instance.setMetadataReportConfig(metadataReportConfig);\n-        }\n-        if (configCenter != null) {\n-            instance.setConfigCenter(configCenter);\n-        }\n-        if (callbacks != null) {\n-            instance.setCallbacks(callbacks);\n-        }\n-        if (!StringUtils.isEmpty(scope)) {\n-            instance.setScope(scope);\n-        }\n-        if (StringUtils.isNotEmpty(tag)) {\n-            instance.setTag(tag);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractInterfaceConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * AbstractBuilder\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public abstract class AbstractInterfaceBuilder<T extends AbstractInterfaceConfig, B extends AbstractInterfaceBuilder<T, B>>\r\n+        extends AbstractMethodBuilder<T, B> {\r\n+    /**\r\n+     * Local impl class name for the service interface\r\n+     */\r\n+    protected String local;\r\n+\r\n+    /**\r\n+     * Local stub class name for the service interface\r\n+     */\r\n+    protected String stub;\r\n+\r\n+    /**\r\n+     * Service monitor\r\n+     */\r\n+    protected MonitorConfig monitor;\r\n+\r\n+    /**\r\n+     * Strategies for generating dynamic agents\uff0cthere are two strategies can be choosed: jdk and javassist\r\n+     */\r\n+    protected String proxy;\r\n+\r\n+    /**\r\n+     * Cluster type\r\n+     */\r\n+    protected String cluster;\r\n+\r\n+    /**\r\n+     * The {@link Filter} when the provider side exposed a service or the customer side references a remote service used,\r\n+     * if there are more than one, you can use commas to separate them\r\n+     */\r\n+    protected String filter;\r\n+\r\n+    /**\r\n+     * The Listener when the provider side exposes a service or the customer side references a remote service used\r\n+     * if there are more than one, you can use commas to separate them\r\n+     */\r\n+    protected String listener;\r\n+\r\n+    /**\r\n+     * The owner of the service providers\r\n+     */\r\n+    protected String owner;\r\n+\r\n+    /**\r\n+     * Connection limits, 0 means shared connection, otherwise it defines the connections delegated to the current service\r\n+     */\r\n+    protected Integer connections;\r\n+\r\n+    /**\r\n+     * The layer of service providers\r\n+     */\r\n+    protected String layer;\r\n+\r\n+    /**\r\n+     * The application info\r\n+     */\r\n+    protected ApplicationConfig application;\r\n+\r\n+    /**\r\n+     * The module info\r\n+     */\r\n+    protected ModuleConfig module;\r\n+\r\n+    /**\r\n+     * Registry centers\r\n+     */\r\n+    protected List<RegistryConfig> registries;\r\n+\r\n+    protected String registryIds;\r\n+\r\n+    // connection events\r\n+    protected String onconnect;\r\n+\r\n+    /**\r\n+     * Disconnection events\r\n+     */\r\n+    protected String ondisconnect;\r\n+    protected MetadataReportConfig metadataReportConfig;\r\n+\r\n+    protected ConfigCenterConfig configCenter;\r\n+\r\n+    // callback limits\r\n+    private Integer callbacks;\r\n+    // the scope for referring/exporting a service, if it's local, it means searching in current JVM only.\r\n+    private String scope;\r\n+\r\n+    private String tag;\r\n+\r\n+    /**\r\n+     * @param local\r\n+     * @see AbstractInterfaceBuilder#stub(String)\r\n+     * @deprecated Replace to <code>stub(String)</code>\r\n+     */\r\n+    @Deprecated\r\n+    public B local(String local) {\r\n+        this.local = local;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param local\r\n+     * @see AbstractInterfaceBuilder#stub(Boolean)\r\n+     * @deprecated Replace to <code>stub(Boolean)</code>\r\n+     */\r\n+    @Deprecated\r\n+    public B local(Boolean local) {\r\n+        if (local != null) {\r\n+            this.local = local.toString();\r\n+        } else {\r\n+            this.local = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B stub(String stub) {\r\n+        this.stub = stub;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B stub(Boolean stub) {\r\n+        if (stub != null) {\r\n+            this.stub = stub.toString();\r\n+        } else {\r\n+            this.stub = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B monitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B monitor(String monitor) {\r\n+        this.monitor = new MonitorConfig(monitor);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B proxy(String proxy) {\r\n+        this.proxy = proxy;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B cluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B filter(String filter) {\r\n+        this.filter = filter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B listener(String listener) {\r\n+        this.listener = listener;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B owner(String owner) {\r\n+        this.owner = owner;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B connections(Integer connections) {\r\n+        this.connections = connections;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B layer(String layer) {\r\n+        this.layer = layer;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B application(ApplicationConfig application) {\r\n+        this.application = application;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B module(ModuleConfig module) {\r\n+        this.module = module;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B addRegistries(List<RegistryConfig> registries) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.addAll(registries);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B addRegistry(RegistryConfig registry) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.add(registry);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B registryIds(String registryIds) {\r\n+        this.registryIds = registryIds;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B onconnect(String onconnect) {\r\n+        this.onconnect = onconnect;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B ondisconnect(String ondisconnect) {\r\n+        this.ondisconnect = ondisconnect;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B metadataReportConfig(MetadataReportConfig metadataReportConfig) {\r\n+        this.metadataReportConfig = metadataReportConfig;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B configCenter(ConfigCenterConfig configCenter) {\r\n+        this.configCenter = configCenter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B callbacks(Integer callbacks) {\r\n+        this.callbacks = callbacks;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B scope(String scope) {\r\n+        this.scope = scope;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B tag(String tag) {\r\n+        this.tag = tag;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void build(T instance) {\r\n+        super.build(instance);\r\n+\r\n+        if (!StringUtils.isEmpty(local)) {\r\n+            instance.setLocal(local);\r\n+        }\r\n+        if (!StringUtils.isEmpty(stub)) {\r\n+            instance.setStub(stub);\r\n+        }\r\n+        if (monitor != null) {\r\n+            instance.setMonitor(monitor);\r\n+        }\r\n+        if (!StringUtils.isEmpty(proxy)) {\r\n+            instance.setProxy(proxy);\r\n+        }\r\n+        if (!StringUtils.isEmpty(cluster)) {\r\n+            instance.setCluster(cluster);\r\n+        }\r\n+        if (!StringUtils.isEmpty(filter)) {\r\n+            instance.setFilter(filter);\r\n+        }\r\n+        if (!StringUtils.isEmpty(listener)) {\r\n+            instance.setListener(listener);\r\n+        }\r\n+        if (!StringUtils.isEmpty(owner)) {\r\n+            instance.setOwner(owner);\r\n+        }\r\n+        if (connections != null) {\r\n+            instance.setConnections(connections);\r\n+        }\r\n+        if (!StringUtils.isEmpty(layer)) {\r\n+            instance.setLayer(layer);\r\n+        }\r\n+        if (application != null) {\r\n+            instance.setApplication(application);\r\n+        }\r\n+        if (module != null) {\r\n+            instance.setModule(module);\r\n+        }\r\n+        if (registries != null) {\r\n+            instance.setRegistries(registries);\r\n+        }\r\n+        if (!StringUtils.isEmpty(registryIds)) {\r\n+            instance.setRegistryIds(registryIds);\r\n+        }\r\n+        if (!StringUtils.isEmpty(onconnect)) {\r\n+            instance.setOnconnect(onconnect);\r\n+        }\r\n+        if (!StringUtils.isEmpty(ondisconnect)) {\r\n+            instance.setOndisconnect(ondisconnect);\r\n+        }\r\n+        if (metadataReportConfig != null) {\r\n+            instance.setMetadataReportConfig(metadataReportConfig);\r\n+        }\r\n+        if (configCenter != null) {\r\n+            instance.setConfigCenter(configCenter);\r\n+        }\r\n+        if (callbacks != null) {\r\n+            instance.setCallbacks(callbacks);\r\n+        }\r\n+        if (!StringUtils.isEmpty(scope)) {\r\n+            instance.setScope(scope);\r\n+        }\r\n+        if (StringUtils.isNotEmpty(tag)) {\r\n+            instance.setTag(tag);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/AbstractMethodBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,213 +1,213 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractMethodConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * AbstractBuilder\n- *\n- * @since 2.7\n- */\n-public abstract class AbstractMethodBuilder<T extends AbstractMethodConfig, B extends AbstractMethodBuilder<T, B>>\n-        extends AbstractBuilder<T, B> {\n-    /**\n-     * The timeout for remote invocation in milliseconds\n-     */\n-    protected Integer timeout;\n-\n-    /**\n-     * The retry times\n-     */\n-    protected Integer retries;\n-\n-    /**\n-     * max concurrent invocations\n-     */\n-    protected Integer actives;\n-\n-    /**\n-     * The load balance\n-     */\n-    protected String loadbalance;\n-\n-    /**\n-     * Whether to async\n-     * note that: it is an unreliable asynchronism that ignores return values and does not block threads.\n-     */\n-    protected Boolean async;\n-\n-    /**\n-     * Whether to ack async-sent\n-     */\n-    protected Boolean sent;\n-\n-    /**\n-     * The name of mock class which gets called when a service fails to execute\n-     *\n-     * note that: the mock doesn't support on the provider side\uff0cand the mock is executed when a non-business exception\n-     * occurs after a remote service call\n-     */\n-    protected String mock;\n-\n-    /**\n-     * Merger\n-     */\n-    protected String merger;\n-\n-    /**\n-     * Cache the return result with the call parameter as key, the following options are available: lru, threadlocal,\n-     * jcache, etc.\n-     */\n-    protected String cache;\n-\n-    /**\n-     * Whether JSR303 standard annotation validation is enabled or not, if enabled, annotations on method parameters will\n-     * be validated\n-     */\n-    protected String validation;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    protected Map<String, String> parameters;\n-\n-    /**\n-     * Forks for forking cluster\n-     */\n-    protected Integer forks;\n-\n-    public B timeout(Integer timeout) {\n-        this.timeout = timeout;\n-        return getThis();\n-    }\n-\n-    public B retries(Integer retries) {\n-        this.retries = retries;\n-        return getThis();\n-    }\n-\n-    public B actives(Integer actives) {\n-        this.actives = actives;\n-        return getThis();\n-    }\n-\n-    public B loadbalance(String loadbalance) {\n-        this.loadbalance = loadbalance;\n-        return getThis();\n-    }\n-\n-    public B async(Boolean async) {\n-        this.async = async;\n-        return getThis();\n-    }\n-\n-    public B sent(Boolean sent) {\n-        this.sent = sent;\n-        return getThis();\n-    }\n-\n-    public B mock(String mock) {\n-        this.mock = mock;\n-        return getThis();\n-    }\n-\n-    public B mock(Boolean mock) {\n-        if (mock != null) {\n-            this.mock = mock.toString();\n-        } else {\n-            this.mock = null;\n-        }\n-        return getThis();\n-    }\n-\n-    public B merger(String merger) {\n-        this.merger = merger;\n-        return getThis();\n-    }\n-\n-    public B cache(String cache) {\n-        this.cache = cache;\n-        return getThis();\n-    }\n-\n-    public B validation(String validation) {\n-        this.validation = validation;\n-        return getThis();\n-    }\n-\n-    public B appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public B appendParameter(String key, String value) {\n-        this.parameters = appendParameter(parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public B forks(Integer forks) {\n-        this.forks = forks;\n-        return getThis();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public void build(T instance) {\n-        super.build(instance);\n-\n-        if (actives != null) {\n-            instance.setActives(actives);\n-        }\n-        if (async != null) {\n-            instance.setAsync(async);\n-        }\n-        if (!StringUtils.isEmpty(cache)) {\n-            instance.setCache(cache);\n-        }\n-        if (forks != null) {\n-            instance.setForks(forks);\n-        }\n-        if (!StringUtils.isEmpty(loadbalance)) {\n-            instance.setLoadbalance(loadbalance);\n-        }\n-        if (!StringUtils.isEmpty(merger)) {\n-            instance.setMerger(merger);\n-        }\n-        if(!StringUtils.isEmpty(mock)) {\n-            instance.setMock(mock);\n-        }\n-        if (retries != null) {\n-            instance.setRetries(retries);\n-        }\n-        if (sent != null) {\n-            instance.setSent(sent);\n-        }\n-        if (timeout != null) {\n-            instance.setTimeout(timeout);\n-        }\n-        if (!StringUtils.isEmpty(validation)) {\n-            instance.setValidation(validation);\n-        }\n-        if (parameters != null) {\n-            instance.setParameters(parameters);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractMethodConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * AbstractBuilder\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public abstract class AbstractMethodBuilder<T extends AbstractMethodConfig, B extends AbstractMethodBuilder<T, B>>\r\n+        extends AbstractBuilder<T, B> {\r\n+    /**\r\n+     * The timeout for remote invocation in milliseconds\r\n+     */\r\n+    protected Integer timeout;\r\n+\r\n+    /**\r\n+     * The retry times\r\n+     */\r\n+    protected Integer retries;\r\n+\r\n+    /**\r\n+     * max concurrent invocations\r\n+     */\r\n+    protected Integer actives;\r\n+\r\n+    /**\r\n+     * The load balance\r\n+     */\r\n+    protected String loadbalance;\r\n+\r\n+    /**\r\n+     * Whether to async\r\n+     * note that: it is an unreliable asynchronism that ignores return values and does not block threads.\r\n+     */\r\n+    protected Boolean async;\r\n+\r\n+    /**\r\n+     * Whether to ack async-sent\r\n+     */\r\n+    protected Boolean sent;\r\n+\r\n+    /**\r\n+     * The name of mock class which gets called when a service fails to execute\r\n+     *\r\n+     * note that: the mock doesn't support on the provider side\uff0cand the mock is executed when a non-business exception\r\n+     * occurs after a remote service call\r\n+     */\r\n+    protected String mock;\r\n+\r\n+    /**\r\n+     * Merger\r\n+     */\r\n+    protected String merger;\r\n+\r\n+    /**\r\n+     * Cache the return result with the call parameter as key, the following options are available: lru, threadlocal,\r\n+     * jcache, etc.\r\n+     */\r\n+    protected String cache;\r\n+\r\n+    /**\r\n+     * Whether JSR303 standard annotation validation is enabled or not, if enabled, annotations on method parameters will\r\n+     * be validated\r\n+     */\r\n+    protected String validation;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    protected Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * Forks for forking cluster\r\n+     */\r\n+    protected Integer forks;\r\n+\r\n+    public B timeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B retries(Integer retries) {\r\n+        this.retries = retries;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B actives(Integer actives) {\r\n+        this.actives = actives;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B loadbalance(String loadbalance) {\r\n+        this.loadbalance = loadbalance;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B async(Boolean async) {\r\n+        this.async = async;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B sent(Boolean sent) {\r\n+        this.sent = sent;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B mock(String mock) {\r\n+        this.mock = mock;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B mock(Boolean mock) {\r\n+        if (mock != null) {\r\n+            this.mock = mock.toString();\r\n+        } else {\r\n+            this.mock = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B merger(String merger) {\r\n+        this.merger = merger;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B cache(String cache) {\r\n+        this.cache = cache;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B validation(String validation) {\r\n+        this.validation = validation;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B forks(Integer forks) {\r\n+        this.forks = forks;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void build(T instance) {\r\n+        super.build(instance);\r\n+\r\n+        if (actives != null) {\r\n+            instance.setActives(actives);\r\n+        }\r\n+        if (async != null) {\r\n+            instance.setAsync(async);\r\n+        }\r\n+        if (!StringUtils.isEmpty(cache)) {\r\n+            instance.setCache(cache);\r\n+        }\r\n+        if (forks != null) {\r\n+            instance.setForks(forks);\r\n+        }\r\n+        if (!StringUtils.isEmpty(loadbalance)) {\r\n+            instance.setLoadbalance(loadbalance);\r\n+        }\r\n+        if (!StringUtils.isEmpty(merger)) {\r\n+            instance.setMerger(merger);\r\n+        }\r\n+        if(!StringUtils.isEmpty(mock)) {\r\n+            instance.setMock(mock);\r\n+        }\r\n+        if (retries != null) {\r\n+            instance.setRetries(retries);\r\n+        }\r\n+        if (sent != null) {\r\n+            instance.setSent(sent);\r\n+        }\r\n+        if (timeout != null) {\r\n+            instance.setTimeout(timeout);\r\n+        }\r\n+        if (!StringUtils.isEmpty(validation)) {\r\n+            instance.setValidation(validation);\r\n+        }\r\n+        if (parameters != null) {\r\n+            instance.setParameters(parameters);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/AbstractReferenceBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractReferenceConfig;\n-\n-/**\n- * AbstractBuilder\n- *\n- * @since 2.7\n- */\n-public abstract class AbstractReferenceBuilder<T extends AbstractReferenceConfig, B extends AbstractReferenceBuilder<T, B>>\n-        extends AbstractInterfaceBuilder<T, B> {\n-\n-    /**\n-     * Check if service provider exists, if not exists, it will be fast fail\n-     */\n-    protected Boolean check;\n-\n-    /**\n-     * Whether to eagle-init\n-     */\n-    protected Boolean init;\n-\n-    /**\n-     * Whether to use generic interface\n-     */\n-    protected String generic;\n-\n-    /**\n-     * Whether to find reference's instance from the current JVM\n-     */\n-    protected Boolean injvm;\n-\n-    /**\n-     * Lazy create connection\n-     */\n-    protected Boolean lazy;\n-\n-    protected String reconnect;\n-\n-    protected Boolean sticky;\n-\n-    /**\n-     * The remote service version the customer side will reference\n-     */\n-    protected String version;\n-\n-    /**\n-     * The remote service group the customer side will reference\n-     */\n-    protected String group;\n-\n-    public B check(Boolean check) {\n-        this.check = check;\n-        return getThis();\n-    }\n-\n-    public B init(Boolean init) {\n-        this.init = init;\n-        return getThis();\n-    }\n-\n-    public B generic(String generic) {\n-        this.generic = generic;\n-        return getThis();\n-    }\n-\n-    public B generic(Boolean generic) {\n-        if (generic != null) {\n-            this.generic = generic.toString();\n-        } else {\n-            this.generic = null;\n-        }\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param injvm\n-     * @see AbstractInterfaceBuilder#scope(String)\n-     * @deprecated instead, use the parameter <b>scope</b> to judge if it's in jvm, scope=local\n-     */\n-    @Deprecated\n-    public B injvm(Boolean injvm) {\n-        this.injvm = injvm;\n-        return getThis();\n-    }\n-\n-    public B lazy(Boolean lazy) {\n-        this.lazy = lazy;\n-        return getThis();\n-    }\n-\n-    public B reconnect(String reconnect) {\n-        this.reconnect = reconnect;\n-        return getThis();\n-    }\n-\n-    public B sticky(Boolean sticky) {\n-        this.sticky = sticky;\n-        return getThis();\n-    }\n-\n-    public B version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public B group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    @Override\n-    public void build(T instance) {\n-        super.build(instance);\n-\n-        if (check != null) {\n-            instance.setCheck(check);\n-        }\n-        if (init != null) {\n-            instance.setInit(init);\n-        }\n-        if (!StringUtils.isEmpty(generic)) {\n-            instance.setGeneric(generic);\n-        }\n-        if (injvm != null) {\n-            instance.setInjvm(injvm);\n-        }\n-        if (lazy != null) {\n-            instance.setLazy(lazy);\n-        }\n-        if (!StringUtils.isEmpty(reconnect)) {\n-            instance.setReconnect(reconnect);\n-        }\n-        if (sticky != null) {\n-            instance.setSticky(sticky);\n-        }\n-        if (!StringUtils.isEmpty(version)) {\n-            instance.setVersion(version);\n-        }\n-        if (!StringUtils.isEmpty(group)) {\n-            instance.setGroup(group);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractReferenceConfig;\r\n+\r\n+/**\r\n+ * AbstractBuilder\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public abstract class AbstractReferenceBuilder<T extends AbstractReferenceConfig, B extends AbstractReferenceBuilder<T, B>>\r\n+        extends AbstractInterfaceBuilder<T, B> {\r\n+\r\n+    /**\r\n+     * Check if service provider exists, if not exists, it will be fast fail\r\n+     */\r\n+    protected Boolean check;\r\n+\r\n+    /**\r\n+     * Whether to eagle-init\r\n+     */\r\n+    protected Boolean init;\r\n+\r\n+    /**\r\n+     * Whether to use generic interface\r\n+     */\r\n+    protected String generic;\r\n+\r\n+    /**\r\n+     * Whether to find reference's instance from the current JVM\r\n+     */\r\n+    protected Boolean injvm;\r\n+\r\n+    /**\r\n+     * Lazy create connection\r\n+     */\r\n+    protected Boolean lazy;\r\n+\r\n+    protected String reconnect;\r\n+\r\n+    protected Boolean sticky;\r\n+\r\n+    /**\r\n+     * The remote service version the customer side will reference\r\n+     */\r\n+    protected String version;\r\n+\r\n+    /**\r\n+     * The remote service group the customer side will reference\r\n+     */\r\n+    protected String group;\r\n+\r\n+    public B check(Boolean check) {\r\n+        this.check = check;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B init(Boolean init) {\r\n+        this.init = init;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B generic(String generic) {\r\n+        this.generic = generic;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B generic(Boolean generic) {\r\n+        if (generic != null) {\r\n+            this.generic = generic.toString();\r\n+        } else {\r\n+            this.generic = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param injvm\r\n+     * @see AbstractInterfaceBuilder#scope(String)\r\n+     * @deprecated instead, use the parameter <b>scope</b> to judge if it's in jvm, scope=local\r\n+     */\r\n+    @Deprecated\r\n+    public B injvm(Boolean injvm) {\r\n+        this.injvm = injvm;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B lazy(Boolean lazy) {\r\n+        this.lazy = lazy;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B reconnect(String reconnect) {\r\n+        this.reconnect = reconnect;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B sticky(Boolean sticky) {\r\n+        this.sticky = sticky;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void build(T instance) {\r\n+        super.build(instance);\r\n+\r\n+        if (check != null) {\r\n+            instance.setCheck(check);\r\n+        }\r\n+        if (init != null) {\r\n+            instance.setInit(init);\r\n+        }\r\n+        if (!StringUtils.isEmpty(generic)) {\r\n+            instance.setGeneric(generic);\r\n+        }\r\n+        if (injvm != null) {\r\n+            instance.setInjvm(injvm);\r\n+        }\r\n+        if (lazy != null) {\r\n+            instance.setLazy(lazy);\r\n+        }\r\n+        if (!StringUtils.isEmpty(reconnect)) {\r\n+            instance.setReconnect(reconnect);\r\n+        }\r\n+        if (sticky != null) {\r\n+            instance.setSticky(sticky);\r\n+        }\r\n+        if (!StringUtils.isEmpty(version)) {\r\n+            instance.setVersion(version);\r\n+        }\r\n+        if (!StringUtils.isEmpty(group)) {\r\n+            instance.setGroup(group);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/AbstractServiceBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,272 +1,272 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractServiceConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * AbstractBuilder\n- *\n- * @since 2.7\n- */\n-public abstract class AbstractServiceBuilder<T extends AbstractServiceConfig, B extends AbstractServiceBuilder<T, B>>\n-        extends AbstractInterfaceBuilder<T, B> {\n-\n-    /**\n-     * The service version\n-     */\n-    protected String version;\n-\n-    /**\n-     * The service group\n-     */\n-    protected String group;\n-\n-    /**\n-     * whether the service is deprecated\n-     */\n-    protected Boolean deprecated;\n-\n-    /**\n-     * The time delay register service (milliseconds)\n-     */\n-    protected Integer delay;\n-\n-    /**\n-     * Whether to export the service\n-     */\n-    protected Boolean export;\n-\n-    /**\n-     * The service weight\n-     */\n-    protected Integer weight;\n-\n-    /**\n-     * Document center\n-     */\n-    protected String document;\n-\n-    /**\n-     * Whether to register as a dynamic service or not on register center, it the value is false, the status will be disabled\n-     * after the service registered,and it needs to be enabled manually; if you want to disable the service, you also need\n-     * manual processing\n-     */\n-    protected Boolean dynamic;\n-\n-    /**\n-     * Whether to use token\n-     */\n-    protected String token;\n-\n-    /**\n-     * Whether to export access logs to logs\n-     */\n-    protected String accesslog;\n-\n-    /**\n-     * The protocol list the service will export with\n-     */\n-    protected List<ProtocolConfig> protocols;\n-    protected String protocolIds;\n-\n-    // max allowed execute times\n-    private Integer executes;\n-\n-    /**\n-     * Whether to register\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * Warm up period\n-     */\n-    private Integer warmup;\n-\n-    /**\n-     * The serialization type\n-     */\n-    private String serialization;\n-\n-    public B version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public B group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    public B deprecated(Boolean deprecated) {\n-        this.deprecated = deprecated;\n-        return getThis();\n-    }\n-\n-    public B delay(Integer delay) {\n-        this.delay = delay;\n-        return getThis();\n-    }\n-\n-    public B export(Boolean export) {\n-        this.export = export;\n-        return getThis();\n-    }\n-\n-    public B weight(Integer weight) {\n-        this.weight = weight;\n-        return getThis();\n-    }\n-\n-    public B document(String document) {\n-        this.document = document;\n-        return getThis();\n-    }\n-\n-    public B dynamic(Boolean dynamic) {\n-        this.dynamic = dynamic;\n-        return getThis();\n-    }\n-\n-    public B token(String token) {\n-        this.token = token;\n-        return getThis();\n-    }\n-\n-    public B token(Boolean token) {\n-        if (token != null) {\n-            this.token = token.toString();\n-        } else {\n-            this.token = null;\n-        }\n-        return getThis();\n-    }\n-\n-    public B accesslog(String accesslog) {\n-        this.accesslog = accesslog;\n-        return getThis();\n-    }\n-\n-    public B accesslog(Boolean accesslog) {\n-        if (accesslog != null) {\n-            this.accesslog = accesslog.toString();\n-        } else {\n-            this.accesslog = null;\n-        }\n-        return getThis();\n-    }\n-\n-    public B addProtocols(List<ProtocolConfig> protocols) {\n-        if (this.protocols == null) {\n-            this.protocols = new ArrayList<>();\n-        }\n-        this.protocols.addAll(protocols);\n-        return getThis();\n-    }\n-\n-    public B addProtocol(ProtocolConfig protocol) {\n-        if (this.protocols == null) {\n-            this.protocols = new ArrayList<>();\n-        }\n-        this.protocols.add(protocol);\n-        return getThis();\n-    }\n-\n-    public B protocolIds(String protocolIds) {\n-        this.protocolIds = protocolIds;\n-        return getThis();\n-    }\n-\n-    public B executes(Integer executes) {\n-        this.executes = executes;\n-        return getThis();\n-    }\n-\n-    public B register(Boolean register) {\n-        this.register = register;\n-        return getThis();\n-    }\n-\n-    public B warmup(Integer warmup) {\n-        this.warmup = warmup;\n-        return getThis();\n-    }\n-\n-    public  B serialization(String serialization) {\n-        this.serialization = serialization;\n-        return getThis();\n-    }\n-\n-    @Override\n-    public void build(T instance) {\n-        super.build(instance);\n-\n-        if (!StringUtils.isEmpty(version)) {\n-            instance.setVersion(version);\n-        }\n-        if (!StringUtils.isEmpty(group)) {\n-            instance.setGroup(group);\n-        }\n-        if (deprecated != null) {\n-            instance.setDeprecated(deprecated);\n-        }\n-        if (delay != null) {\n-            instance.setDelay(delay);\n-        }\n-        if (export != null) {\n-            instance.setExport(export);\n-        }\n-        if (weight != null) {\n-            instance.setWeight(weight);\n-        }\n-        if (!StringUtils.isEmpty(document)) {\n-            instance.setDocument(document);\n-        }\n-        if (dynamic != null) {\n-            instance.setDynamic(dynamic);\n-        }\n-        if (!StringUtils.isEmpty(token)) {\n-            instance.setToken(token);\n-        }\n-        if (!StringUtils.isEmpty(accesslog)) {\n-            instance.setAccesslog(accesslog);\n-        }\n-        if (protocols != null) {\n-            instance.setProtocols(protocols);\n-        }\n-        if (!StringUtils.isEmpty(protocolIds)) {\n-            instance.setProtocolIds(protocolIds);\n-        }\n-        if (executes != null) {\n-            instance.setExecutes(executes);\n-        }\n-        if (register != null) {\n-            instance.setRegister(register);\n-        }\n-        if (warmup != null) {\n-            instance.setWarmup(warmup);\n-        }\n-        if (!StringUtils.isEmpty(serialization)) {\n-            instance.setSerialization(serialization);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractServiceConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * AbstractBuilder\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public abstract class AbstractServiceBuilder<T extends AbstractServiceConfig, B extends AbstractServiceBuilder<T, B>>\r\n+        extends AbstractInterfaceBuilder<T, B> {\r\n+\r\n+    /**\r\n+     * The service version\r\n+     */\r\n+    protected String version;\r\n+\r\n+    /**\r\n+     * The service group\r\n+     */\r\n+    protected String group;\r\n+\r\n+    /**\r\n+     * whether the service is deprecated\r\n+     */\r\n+    protected Boolean deprecated;\r\n+\r\n+    /**\r\n+     * The time delay register service (milliseconds)\r\n+     */\r\n+    protected Integer delay;\r\n+\r\n+    /**\r\n+     * Whether to export the service\r\n+     */\r\n+    protected Boolean export;\r\n+\r\n+    /**\r\n+     * The service weight\r\n+     */\r\n+    protected Integer weight;\r\n+\r\n+    /**\r\n+     * Document center\r\n+     */\r\n+    protected String document;\r\n+\r\n+    /**\r\n+     * Whether to register as a dynamic service or not on register center, it the value is false, the status will be disabled\r\n+     * after the service registered,and it needs to be enabled manually; if you want to disable the service, you also need\r\n+     * manual processing\r\n+     */\r\n+    protected Boolean dynamic;\r\n+\r\n+    /**\r\n+     * Whether to use token\r\n+     */\r\n+    protected String token;\r\n+\r\n+    /**\r\n+     * Whether to export access logs to logs\r\n+     */\r\n+    protected String accesslog;\r\n+\r\n+    /**\r\n+     * The protocol list the service will export with\r\n+     */\r\n+    protected List<ProtocolConfig> protocols;\r\n+    protected String protocolIds;\r\n+\r\n+    // max allowed execute times\r\n+    private Integer executes;\r\n+\r\n+    /**\r\n+     * Whether to register\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * Warm up period\r\n+     */\r\n+    private Integer warmup;\r\n+\r\n+    /**\r\n+     * The serialization type\r\n+     */\r\n+    private String serialization;\r\n+\r\n+    public B version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B deprecated(Boolean deprecated) {\r\n+        this.deprecated = deprecated;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B delay(Integer delay) {\r\n+        this.delay = delay;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B export(Boolean export) {\r\n+        this.export = export;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B weight(Integer weight) {\r\n+        this.weight = weight;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B document(String document) {\r\n+        this.document = document;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B dynamic(Boolean dynamic) {\r\n+        this.dynamic = dynamic;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B token(String token) {\r\n+        this.token = token;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B token(Boolean token) {\r\n+        if (token != null) {\r\n+            this.token = token.toString();\r\n+        } else {\r\n+            this.token = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B accesslog(String accesslog) {\r\n+        this.accesslog = accesslog;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B accesslog(Boolean accesslog) {\r\n+        if (accesslog != null) {\r\n+            this.accesslog = accesslog.toString();\r\n+        } else {\r\n+            this.accesslog = null;\r\n+        }\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B addProtocols(List<ProtocolConfig> protocols) {\r\n+        if (this.protocols == null) {\r\n+            this.protocols = new ArrayList<>();\r\n+        }\r\n+        this.protocols.addAll(protocols);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B addProtocol(ProtocolConfig protocol) {\r\n+        if (this.protocols == null) {\r\n+            this.protocols = new ArrayList<>();\r\n+        }\r\n+        this.protocols.add(protocol);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B protocolIds(String protocolIds) {\r\n+        this.protocolIds = protocolIds;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B executes(Integer executes) {\r\n+        this.executes = executes;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B register(Boolean register) {\r\n+        this.register = register;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public B warmup(Integer warmup) {\r\n+        this.warmup = warmup;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public  B serialization(String serialization) {\r\n+        this.serialization = serialization;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void build(T instance) {\r\n+        super.build(instance);\r\n+\r\n+        if (!StringUtils.isEmpty(version)) {\r\n+            instance.setVersion(version);\r\n+        }\r\n+        if (!StringUtils.isEmpty(group)) {\r\n+            instance.setGroup(group);\r\n+        }\r\n+        if (deprecated != null) {\r\n+            instance.setDeprecated(deprecated);\r\n+        }\r\n+        if (delay != null) {\r\n+            instance.setDelay(delay);\r\n+        }\r\n+        if (export != null) {\r\n+            instance.setExport(export);\r\n+        }\r\n+        if (weight != null) {\r\n+            instance.setWeight(weight);\r\n+        }\r\n+        if (!StringUtils.isEmpty(document)) {\r\n+            instance.setDocument(document);\r\n+        }\r\n+        if (dynamic != null) {\r\n+            instance.setDynamic(dynamic);\r\n+        }\r\n+        if (!StringUtils.isEmpty(token)) {\r\n+            instance.setToken(token);\r\n+        }\r\n+        if (!StringUtils.isEmpty(accesslog)) {\r\n+            instance.setAccesslog(accesslog);\r\n+        }\r\n+        if (protocols != null) {\r\n+            instance.setProtocols(protocols);\r\n+        }\r\n+        if (!StringUtils.isEmpty(protocolIds)) {\r\n+            instance.setProtocolIds(protocolIds);\r\n+        }\r\n+        if (executes != null) {\r\n+            instance.setExecutes(executes);\r\n+        }\r\n+        if (register != null) {\r\n+            instance.setRegister(register);\r\n+        }\r\n+        if (warmup != null) {\r\n+            instance.setWarmup(warmup);\r\n+        }\r\n+        if (!StringUtils.isEmpty(serialization)) {\r\n+            instance.setSerialization(serialization);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ApplicationBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ApplicationBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,214 +1,214 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.config.Constants.PRODUCTION_ENVIRONMENT;\n-\n-/**\n- * This is a builder for build {@link ApplicationConfig}.\n- * @since 2.7\n- */\n-public class ApplicationBuilder extends AbstractBuilder<ApplicationConfig, ApplicationBuilder> {\n-    private String name;\n-    private String metadata;\n-    private String version;\n-    private String owner;\n-    private String organization;\n-    private String architecture;\n-    private String environment = PRODUCTION_ENVIRONMENT;\n-    private String compiler;\n-    private String logger;\n-    private List<RegistryConfig> registries;\n-    private String registryIds;\n-    private MonitorConfig monitor;\n-    private Boolean isDefault;\n-    private String dumpDirectory;\n-    private Boolean qosEnable;\n-    private Integer qosPort;\n-    private Boolean qosAcceptForeignIp;\n-    private Map<String, String> parameters;\n-    private String shutwait;\n-    private Integer metadataServicePort;\n-\n-    public static ApplicationBuilder newBuilder() {\n-        return new ApplicationBuilder();\n-    }\n-\n-    public ApplicationBuilder name(String name) {\n-        this.name = name;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder metadata(String metadata) {\n-        this.metadata = metadata;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder owner(String owner) {\n-        this.owner = owner;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder organization(String organization) {\n-        this.organization = organization;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder architecture(String architecture) {\n-        this.architecture = architecture;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder environment(String environment) {\n-        this.environment = environment;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder compiler(String compiler) {\n-        this.compiler = compiler;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder logger(String logger) {\n-        this.logger = logger;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder addRegistry(RegistryConfig registry) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.add(registry);\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder addRegistries(List<? extends RegistryConfig> registries) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.addAll(registries);\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder registryIds(String registryIds) {\n-        this.registryIds = registryIds;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder monitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder monitor(String monitor) {\n-        this.monitor = new MonitorConfig(monitor);\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder dumpDirectory(String dumpDirectory) {\n-        this.dumpDirectory = dumpDirectory;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder qosEnable(Boolean qosEnable) {\n-        this.qosEnable = qosEnable;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder qosPort(Integer qosPort) {\n-        this.qosPort = qosPort;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder qosAcceptForeignIp(Boolean qosAcceptForeignIp) {\n-        this.qosAcceptForeignIp = qosAcceptForeignIp;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder shutwait(String shutwait) {\n-        this.shutwait = shutwait;\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public ApplicationBuilder metadataServicePort(Integer metadataServicePort) {\n-        this.metadataServicePort = metadataServicePort;\n-        return getThis();\n-    }\n-\n-    public ApplicationConfig build() {\n-        ApplicationConfig config = new ApplicationConfig();\n-        super.build(config);\n-\n-        config.setName(name);\n-        config.setMetadataType(metadata);\n-        config.setVersion(this.version);\n-        config.setOwner(this.owner);\n-        config.setOrganization(this.organization);\n-        config.setArchitecture(this.architecture);\n-        config.setEnvironment(this.environment);\n-        config.setCompiler(this.compiler);\n-        config.setLogger(this.logger);\n-        config.setRegistries(this.registries);\n-        config.setRegistryIds(this.registryIds);\n-        config.setMonitor(this.monitor);\n-        config.setDefault(this.isDefault);\n-        config.setDumpDirectory(this.dumpDirectory);\n-        config.setQosEnable(this.qosEnable);\n-        config.setQosPort(this.qosPort);\n-        config.setQosAcceptForeignIp(this.qosAcceptForeignIp);\n-        config.setMetadataServicePort(this.metadataServicePort);\n-        config.setParameters(this.parameters);\n-        if (!StringUtils.isEmpty(shutwait)) {\n-            config.setShutwait(shutwait);\n-        }\n-        return config;\n-    }\n-\n-    @Override\n-    protected ApplicationBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.config.Constants.PRODUCTION_ENVIRONMENT;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ApplicationConfig}.\r\n+ * @since 2.7\r\n+ */\r\n+public class ApplicationBuilder extends AbstractBuilder<ApplicationConfig, ApplicationBuilder> {\r\n+    private String name;\r\n+    private String metadata;\r\n+    private String version;\r\n+    private String owner;\r\n+    private String organization;\r\n+    private String architecture;\r\n+    private String environment = PRODUCTION_ENVIRONMENT;\r\n+    private String compiler;\r\n+    private String logger;\r\n+    private List<RegistryConfig> registries;\r\n+    private String registryIds;\r\n+    private MonitorConfig monitor;\r\n+    private Boolean isDefault;\r\n+    private String dumpDirectory;\r\n+    private Boolean qosEnable;\r\n+    private Integer qosPort;\r\n+    private Boolean qosAcceptForeignIp;\r\n+    private Map<String, String> parameters;\r\n+    private String shutwait;\r\n+    private Integer metadataServicePort;\r\n+\r\n+    public static ApplicationBuilder newBuilder() {\r\n+        return new ApplicationBuilder();\r\n+    }\r\n+\r\n+    public ApplicationBuilder name(String name) {\r\n+        this.name = name;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder metadata(String metadata) {\r\n+        this.metadata = metadata;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder owner(String owner) {\r\n+        this.owner = owner;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder organization(String organization) {\r\n+        this.organization = organization;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder architecture(String architecture) {\r\n+        this.architecture = architecture;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder environment(String environment) {\r\n+        this.environment = environment;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder compiler(String compiler) {\r\n+        this.compiler = compiler;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder logger(String logger) {\r\n+        this.logger = logger;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder addRegistry(RegistryConfig registry) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.add(registry);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder addRegistries(List<? extends RegistryConfig> registries) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.addAll(registries);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder registryIds(String registryIds) {\r\n+        this.registryIds = registryIds;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder monitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder monitor(String monitor) {\r\n+        this.monitor = new MonitorConfig(monitor);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder dumpDirectory(String dumpDirectory) {\r\n+        this.dumpDirectory = dumpDirectory;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder qosEnable(Boolean qosEnable) {\r\n+        this.qosEnable = qosEnable;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder qosPort(Integer qosPort) {\r\n+        this.qosPort = qosPort;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder qosAcceptForeignIp(Boolean qosAcceptForeignIp) {\r\n+        this.qosAcceptForeignIp = qosAcceptForeignIp;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder shutwait(String shutwait) {\r\n+        this.shutwait = shutwait;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationBuilder metadataServicePort(Integer metadataServicePort) {\r\n+        this.metadataServicePort = metadataServicePort;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ApplicationConfig build() {\r\n+        ApplicationConfig config = new ApplicationConfig();\r\n+        super.build(config);\r\n+\r\n+        config.setName(name);\r\n+        config.setMetadataType(metadata);\r\n+        config.setVersion(this.version);\r\n+        config.setOwner(this.owner);\r\n+        config.setOrganization(this.organization);\r\n+        config.setArchitecture(this.architecture);\r\n+        config.setEnvironment(this.environment);\r\n+        config.setCompiler(this.compiler);\r\n+        config.setLogger(this.logger);\r\n+        config.setRegistries(this.registries);\r\n+        config.setRegistryIds(this.registryIds);\r\n+        config.setMonitor(this.monitor);\r\n+        config.setDefault(this.isDefault);\r\n+        config.setDumpDirectory(this.dumpDirectory);\r\n+        config.setQosEnable(this.qosEnable);\r\n+        config.setQosPort(this.qosPort);\r\n+        config.setQosAcceptForeignIp(this.qosAcceptForeignIp);\r\n+        config.setMetadataServicePort(this.metadataServicePort);\r\n+        config.setParameters(this.parameters);\r\n+        if (!StringUtils.isEmpty(shutwait)) {\r\n+            config.setShutwait(shutwait);\r\n+        }\r\n+        return config;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ApplicationBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ArgumentBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ArgumentBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ArgumentConfig;\n-\n-/**\n- * This is a builder for build {@link ArgumentConfig}.\n- * @since 2.7\n- */\n-public class ArgumentBuilder {\n-    /**\n-     * The argument index: index -1 represents not set\n-     */\n-    private Integer index = -1;\n-\n-    /**\n-     * Argument type\n-     */\n-    private String type;\n-\n-    /**\n-     * Whether the argument is the callback interface\n-     */\n-    private Boolean callback;\n-\n-    public ArgumentBuilder index(Integer index) {\n-        this.index = index;\n-        return this;\n-    }\n-\n-    public ArgumentBuilder type(String type) {\n-        this.type = type;\n-        return this;\n-    }\n-\n-    public ArgumentBuilder callback(Boolean callback) {\n-        this.callback = callback;\n-        return this;\n-    }\n-\n-    public ArgumentConfig build() {\n-        ArgumentConfig argumentConfig = new ArgumentConfig();\n-        argumentConfig.setIndex(index);\n-        argumentConfig.setType(type);\n-        argumentConfig.setCallback(callback);\n-        return argumentConfig;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ArgumentConfig;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ArgumentConfig}.\r\n+ * @since 2.7\r\n+ */\r\n+public class ArgumentBuilder {\r\n+    /**\r\n+     * The argument index: index -1 represents not set\r\n+     */\r\n+    private Integer index = -1;\r\n+\r\n+    /**\r\n+     * Argument type\r\n+     */\r\n+    private String type;\r\n+\r\n+    /**\r\n+     * Whether the argument is the callback interface\r\n+     */\r\n+    private Boolean callback;\r\n+\r\n+    public ArgumentBuilder index(Integer index) {\r\n+        this.index = index;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ArgumentBuilder type(String type) {\r\n+        this.type = type;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ArgumentBuilder callback(Boolean callback) {\r\n+        this.callback = callback;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ArgumentConfig build() {\r\n+        ArgumentConfig argumentConfig = new ArgumentConfig();\r\n+        argumentConfig.setIndex(index);\r\n+        argumentConfig.setType(type);\r\n+        argumentConfig.setCallback(callback);\r\n+        return argumentConfig;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ConfigCenterBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,141 +1,141 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * This is a builder for build {@link ConfigCenterConfig}.\n- *\n- * @since 2.7\n- */\n-public class ConfigCenterBuilder extends AbstractBuilder<ConfigCenterConfig, ConfigCenterBuilder> {\n-\n-    private String protocol;\n-    private String address;\n-    private String cluster;\n-    private String namespace = \"dubbo\";\n-    private String group = \"dubbo\";\n-    private String username;\n-    private String password;\n-    private Long timeout = 3000L;\n-    private Boolean highestPriority = true;\n-    private Boolean check = true;\n-\n-    private String configFile = \"dubbo.properties\";\n-    private String appConfigFile;\n-\n-    private Map<String, String> parameters;\n-\n-    public ConfigCenterBuilder protocol(String protocol) {\n-        this.protocol = protocol;\n-        return getThis();\n-    }\n-\n-\tpublic ConfigCenterBuilder address(String address) {\n-        this.address = address;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder cluster(String cluster) {\n-        this.cluster = cluster;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder namespace(String namespace) {\n-        this.namespace = namespace;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder username(String username) {\n-        this.username = username;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder password(String password) {\n-        this.password = password;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder timeout(Long timeout) {\n-        this.timeout = timeout;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder highestPriority(Boolean highestPriority) {\n-        this.highestPriority = highestPriority;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder check(Boolean check) {\n-        this.check = check;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder configFile(String configFile) {\n-        this.configFile = configFile;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder appConfigFile(String appConfigFile) {\n-        this.appConfigFile = appConfigFile;\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(this.parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public ConfigCenterBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(this.parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public ConfigCenterConfig build() {\n-        ConfigCenterConfig configCenter = new ConfigCenterConfig();\n-        super.build(configCenter);\n-\n-        configCenter.setProtocol(protocol);\n-        configCenter.setAddress(address);\n-        configCenter.setCluster(cluster);\n-        configCenter.setNamespace(namespace);\n-        configCenter.setGroup(group);\n-        configCenter.setUsername(username);\n-        configCenter.setPassword(password);\n-        configCenter.setTimeout(timeout);\n-        configCenter.setHighestPriority(highestPriority);\n-        configCenter.setCheck(check);\n-        configCenter.setConfigFile(configFile);\n-        configCenter.setAppConfigFile(appConfigFile);\n-        configCenter.setParameters(parameters);\n-\n-        return configCenter;\n-    }\n-\n-    @Override\n-    protected ConfigCenterBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ConfigCenterConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ConfigCenterBuilder extends AbstractBuilder<ConfigCenterConfig, ConfigCenterBuilder> {\r\n+\r\n+    private String protocol;\r\n+    private String address;\r\n+    private String cluster;\r\n+    private String namespace = \"dubbo\";\r\n+    private String group = \"dubbo\";\r\n+    private String username;\r\n+    private String password;\r\n+    private Long timeout = 3000L;\r\n+    private Boolean highestPriority = true;\r\n+    private Boolean check = true;\r\n+\r\n+    private String configFile = \"dubbo.properties\";\r\n+    private String appConfigFile;\r\n+\r\n+    private Map<String, String> parameters;\r\n+\r\n+    public ConfigCenterBuilder protocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+        return getThis();\r\n+    }\r\n+\r\n+\tpublic ConfigCenterBuilder address(String address) {\r\n+        this.address = address;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder cluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder namespace(String namespace) {\r\n+        this.namespace = namespace;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder username(String username) {\r\n+        this.username = username;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder password(String password) {\r\n+        this.password = password;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder timeout(Long timeout) {\r\n+        this.timeout = timeout;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder highestPriority(Boolean highestPriority) {\r\n+        this.highestPriority = highestPriority;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder check(Boolean check) {\r\n+        this.check = check;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder configFile(String configFile) {\r\n+        this.configFile = configFile;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder appConfigFile(String appConfigFile) {\r\n+        this.appConfigFile = appConfigFile;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(this.parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(this.parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConfigCenterConfig build() {\r\n+        ConfigCenterConfig configCenter = new ConfigCenterConfig();\r\n+        super.build(configCenter);\r\n+\r\n+        configCenter.setProtocol(protocol);\r\n+        configCenter.setAddress(address);\r\n+        configCenter.setCluster(cluster);\r\n+        configCenter.setNamespace(namespace);\r\n+        configCenter.setGroup(group);\r\n+        configCenter.setUsername(username);\r\n+        configCenter.setPassword(password);\r\n+        configCenter.setTimeout(timeout);\r\n+        configCenter.setHighestPriority(highestPriority);\r\n+        configCenter.setCheck(check);\r\n+        configCenter.setConfigFile(configFile);\r\n+        configCenter.setAppConfigFile(appConfigFile);\r\n+        configCenter.setParameters(parameters);\r\n+\r\n+        return configCenter;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ConfigCenterBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ConsumerBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ConsumerBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,118 +1,118 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ConsumerConfig;\n-\n-/**\n- * This is a builder for build {@link ConsumerConfig}.\n- *\n- * @since 2.7\n- */\n-public class ConsumerBuilder extends AbstractReferenceBuilder<ConsumerConfig, ConsumerBuilder> {\n-\n-    /**\n-     * Whether to use the default protocol\n-     */\n-    private Boolean isDefault;\n-\n-    /**\n-     * Networking framework client uses: netty, mina, etc.\n-     */\n-    private String client;\n-\n-    /**\n-     * Consumer thread pool type: cached, fixed, limit, eager\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Consumer threadpool core thread size\n-     */\n-    private Integer corethreads;\n-\n-    /**\n-     * Consumer threadpool thread size\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * Consumer threadpool queue size\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * By default, a TCP long-connection communication is shared between the consumer process and the provider process.\n-     * This property can be set to share multiple TCP long-connection communications. Note that only the dubbo protocol takes effect.\n-     */\n-    private Integer shareconnections;\n-\n-    public ConsumerBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder client(String client) {\n-        this.client = client;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder threadPool(String threadPool) {\n-        this.threadpool = threadPool;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder coreThreads(Integer coreThreads) {\n-        this.corethreads = coreThreads;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder threads(Integer threads) {\n-        this.threads = threads;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder queues(Integer queues) {\n-        this.queues = queues;\n-        return getThis();\n-    }\n-\n-    public ConsumerBuilder shareConnections(Integer shareConnections) {\n-        this.shareconnections = shareConnections;\n-        return getThis();\n-    }\n-\n-    public ConsumerConfig build() {\n-        ConsumerConfig consumer = new ConsumerConfig();\n-        super.build(consumer);\n-\n-        consumer.setDefault(isDefault);\n-        consumer.setClient(client);\n-        consumer.setThreadpool(threadpool);\n-        consumer.setCorethreads(corethreads);\n-        consumer.setThreads(threads);\n-        consumer.setQueues(queues);\n-        consumer.setShareconnections(shareconnections);\n-\n-        return consumer;\n-    }\n-\n-    @Override\n-    protected ConsumerBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ConsumerConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ConsumerBuilder extends AbstractReferenceBuilder<ConsumerConfig, ConsumerBuilder> {\r\n+\r\n+    /**\r\n+     * Whether to use the default protocol\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    /**\r\n+     * Networking framework client uses: netty, mina, etc.\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Consumer thread pool type: cached, fixed, limit, eager\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Consumer threadpool core thread size\r\n+     */\r\n+    private Integer corethreads;\r\n+\r\n+    /**\r\n+     * Consumer threadpool thread size\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * Consumer threadpool queue size\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * By default, a TCP long-connection communication is shared between the consumer process and the provider process.\r\n+     * This property can be set to share multiple TCP long-connection communications. Note that only the dubbo protocol takes effect.\r\n+     */\r\n+    private Integer shareconnections;\r\n+\r\n+    public ConsumerBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder client(String client) {\r\n+        this.client = client;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder threadPool(String threadPool) {\r\n+        this.threadpool = threadPool;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder coreThreads(Integer coreThreads) {\r\n+        this.corethreads = coreThreads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder threads(Integer threads) {\r\n+        this.threads = threads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder queues(Integer queues) {\r\n+        this.queues = queues;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerBuilder shareConnections(Integer shareConnections) {\r\n+        this.shareconnections = shareConnections;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ConsumerConfig build() {\r\n+        ConsumerConfig consumer = new ConsumerConfig();\r\n+        super.build(consumer);\r\n+\r\n+        consumer.setDefault(isDefault);\r\n+        consumer.setClient(client);\r\n+        consumer.setThreadpool(threadpool);\r\n+        consumer.setCorethreads(corethreads);\r\n+        consumer.setThreads(threads);\r\n+        consumer.setQueues(queues);\r\n+        consumer.setShareconnections(shareconnections);\r\n+\r\n+        return consumer;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ConsumerBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/MetadataReportBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,144 +1,144 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.MetadataReportConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * This is a builder for build {@link MetadataReportConfig}.\n- *\n- * @since 2.7\n- */\n-public class MetadataReportBuilder extends AbstractBuilder<MetadataReportConfig, MetadataReportBuilder> {\n-\n-    // Register center address\n-    private String address;\n-\n-    // Username to login register center\n-    private String username;\n-\n-    // Password to login register center\n-    private String password;\n-\n-    // Request timeout in milliseconds for register center\n-    private Integer timeout;\n-\n-    /**\n-     * The group the metadata in . It is the same as registry\n-     */\n-    private String group;\n-\n-    // Customized parameters\n-    private Map<String, String> parameters;\n-\n-    private Integer retryTimes;\n-\n-    private Integer retryPeriod;\n-    /**\n-     * By default the metadatastore will store full metadata repeatedly every day .\n-     */\n-    private Boolean cycleReport;\n-\n-    /**\n-     * Sync report, default async\n-     */\n-    private Boolean syncReport;\n-\n-    public static MetadataReportBuilder newBuilder() {\n-        return new MetadataReportBuilder();\n-    }\n-\n-    public MetadataReportBuilder address(String address) {\n-        this.address = address;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder username(String username) {\n-        this.username = username;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder password(String password) {\n-        this.password = password;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder timeout(Integer timeout) {\n-        this.timeout = timeout;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(this.parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(this.parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder retryTimes(Integer retryTimes) {\n-        this.retryTimes = retryTimes;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder retryPeriod(Integer retryPeriod) {\n-        this.retryPeriod = retryPeriod;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder cycleReport(Boolean cycleReport) {\n-        this.cycleReport = cycleReport;\n-        return getThis();\n-    }\n-\n-    public MetadataReportBuilder syncReport(Boolean syncReport) {\n-        this.syncReport = syncReport;\n-        return getThis();\n-    }\n-\n-    public MetadataReportConfig build() {\n-        MetadataReportConfig metadataReport = new MetadataReportConfig();\n-        super.build(metadataReport);\n-\n-        metadataReport.setAddress(address);\n-        metadataReport.setUsername(username);\n-        metadataReport.setPassword(password);\n-        metadataReport.setTimeout(timeout);\n-        metadataReport.setGroup(group);\n-        metadataReport.setParameters(parameters);\n-        metadataReport.setRetryTimes(retryTimes);\n-        metadataReport.setRetryPeriod(retryPeriod);\n-        metadataReport.setCycleReport(cycleReport);\n-        metadataReport.setSyncReport(syncReport);\n-\n-        return metadataReport;\n-    }\n-\n-    @Override\n-    protected MetadataReportBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link MetadataReportConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class MetadataReportBuilder extends AbstractBuilder<MetadataReportConfig, MetadataReportBuilder> {\r\n+\r\n+    // Register center address\r\n+    private String address;\r\n+\r\n+    // Username to login register center\r\n+    private String username;\r\n+\r\n+    // Password to login register center\r\n+    private String password;\r\n+\r\n+    // Request timeout in milliseconds for register center\r\n+    private Integer timeout;\r\n+\r\n+    /**\r\n+     * The group the metadata in . It is the same as registry\r\n+     */\r\n+    private String group;\r\n+\r\n+    // Customized parameters\r\n+    private Map<String, String> parameters;\r\n+\r\n+    private Integer retryTimes;\r\n+\r\n+    private Integer retryPeriod;\r\n+    /**\r\n+     * By default the metadatastore will store full metadata repeatedly every day .\r\n+     */\r\n+    private Boolean cycleReport;\r\n+\r\n+    /**\r\n+     * Sync report, default async\r\n+     */\r\n+    private Boolean syncReport;\r\n+\r\n+    public static MetadataReportBuilder newBuilder() {\r\n+        return new MetadataReportBuilder();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder address(String address) {\r\n+        this.address = address;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder username(String username) {\r\n+        this.username = username;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder password(String password) {\r\n+        this.password = password;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder timeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(this.parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(this.parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder retryTimes(Integer retryTimes) {\r\n+        this.retryTimes = retryTimes;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder retryPeriod(Integer retryPeriod) {\r\n+        this.retryPeriod = retryPeriod;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder cycleReport(Boolean cycleReport) {\r\n+        this.cycleReport = cycleReport;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportBuilder syncReport(Boolean syncReport) {\r\n+        this.syncReport = syncReport;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MetadataReportConfig build() {\r\n+        MetadataReportConfig metadataReport = new MetadataReportConfig();\r\n+        super.build(metadataReport);\r\n+\r\n+        metadataReport.setAddress(address);\r\n+        metadataReport.setUsername(username);\r\n+        metadataReport.setPassword(password);\r\n+        metadataReport.setTimeout(timeout);\r\n+        metadataReport.setGroup(group);\r\n+        metadataReport.setParameters(parameters);\r\n+        metadataReport.setRetryTimes(retryTimes);\r\n+        metadataReport.setRetryPeriod(retryPeriod);\r\n+        metadataReport.setCycleReport(cycleReport);\r\n+        metadataReport.setSyncReport(syncReport);\r\n+\r\n+        return metadataReport;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected MetadataReportBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/MethodBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/MethodBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,237 +1,237 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ArgumentConfig;\n-import org.apache.dubbo.config.MethodConfig;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * This is a builder for build {@link MethodConfig}.\n- *\n- * @since 2.7\n- */\n-public class MethodBuilder extends AbstractMethodBuilder<MethodConfig, MethodBuilder> {\n-    /**\n-     * The method name\n-     */\n-    private String name;\n-\n-    /**\n-     * Stat\n-     */\n-    private Integer stat;\n-\n-    /**\n-     * Whether to retry\n-     */\n-    private Boolean retry;\n-\n-    /**\n-     * If it's reliable\n-     */\n-    private Boolean reliable;\n-\n-    /**\n-     * Thread limits for method invocations\n-     */\n-    private Integer executes;\n-\n-    /**\n-     * If it's deprecated\n-     */\n-    private Boolean deprecated;\n-\n-    /**\n-     * Whether to enable sticky\n-     */\n-    private Boolean sticky;\n-\n-    /**\n-     * Whether need to return\n-     */\n-    private Boolean isReturn;\n-\n-    /**\n-     * Callback instance when async-call is invoked\n-     */\n-    private Object oninvoke;\n-\n-    /**\n-     * Callback method when async-call is invoked\n-     */\n-    private String oninvokeMethod;\n-\n-    /**\n-     * Callback instance when async-call is returned\n-     */\n-    private Object onreturn;\n-\n-    /**\n-     * Callback method when async-call is returned\n-     */\n-    private String onreturnMethod;\n-\n-    /**\n-     * Callback instance when async-call has exception thrown\n-     */\n-    private Object onthrow;\n-\n-    /**\n-     * Callback method when async-call has exception thrown\n-     */\n-    private String onthrowMethod;\n-\n-    /**\n-     * The method arguments\n-     */\n-    private List<ArgumentConfig> arguments;\n-\n-    /**\n-     * These properties come from MethodConfig's parent Config module, they will neither be collected directly from xml or API nor be delivered to url\n-     */\n-    private String service;\n-    private String serviceId;\n-\n-    public MethodBuilder name(String name) {\n-        this.name = name;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder stat(Integer stat) {\n-        this.stat = stat;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder retry(Boolean retry) {\n-        this.retry = retry;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder reliable(Boolean reliable) {\n-        this.reliable = reliable;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder executes(Integer executes) {\n-        this.executes = executes;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder deprecated(Boolean deprecated) {\n-        this.deprecated = deprecated;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder sticky(Boolean sticky) {\n-        this.sticky = sticky;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder isReturn(Boolean isReturn) {\n-        this.isReturn = isReturn;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder oninvoke(Object oninvoke) {\n-        this.oninvoke = oninvoke;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder oninvokeMethod(String oninvokeMethod) {\n-        this.oninvokeMethod = oninvokeMethod;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder onreturn(Object onreturn) {\n-        this.onreturn = onreturn;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder onreturnMethod(String onreturnMethod) {\n-        this.onreturnMethod = onreturnMethod;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder onthrow(Object onthrow) {\n-        this.onthrow = onthrow;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder onthrowMethod(String onthrowMethod) {\n-        this.onthrowMethod = onthrowMethod;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder addArguments(List<? extends ArgumentConfig> arguments) {\n-        if (this.arguments == null) {\n-            this.arguments = new ArrayList<>();\n-        }\n-        this.arguments.addAll(arguments);\n-        return getThis();\n-    }\n-\n-    public MethodBuilder addArgument(ArgumentConfig argument) {\n-        if (this.arguments == null) {\n-            this.arguments = new ArrayList<>();\n-        }\n-        this.arguments.add(argument);\n-        return getThis();\n-    }\n-\n-    public MethodBuilder service(String service) {\n-        this.service = service;\n-        return getThis();\n-    }\n-\n-    public MethodBuilder serviceId(String serviceId) {\n-        this.serviceId = serviceId;\n-        return getThis();\n-    }\n-\n-    public MethodConfig build() {\n-        MethodConfig methodConfig = new MethodConfig();\n-        super.build(methodConfig);\n-\n-        methodConfig.setArguments(arguments);\n-        methodConfig.setDeprecated(deprecated);\n-        methodConfig.setExecutes(executes);\n-        methodConfig.setName(name);\n-        methodConfig.setOninvoke(oninvoke);\n-        methodConfig.setOninvokeMethod(oninvokeMethod);\n-        methodConfig.setOnreturn(onreturn);\n-        methodConfig.setOnreturnMethod(onreturnMethod);\n-        methodConfig.setOnthrow(onthrow);\n-        methodConfig.setOnthrowMethod(onthrowMethod);\n-        methodConfig.setReturn(isReturn);\n-        methodConfig.setService(service);\n-        methodConfig.setServiceId(serviceId);\n-        methodConfig.setSticky(sticky);\n-        methodConfig.setReliable(reliable);\n-        methodConfig.setStat(stat);\n-        methodConfig.setRetry(retry);\n-\n-        return methodConfig;\n-    }\n-\n-    @Override\n-    protected MethodBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ArgumentConfig;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link MethodConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class MethodBuilder extends AbstractMethodBuilder<MethodConfig, MethodBuilder> {\r\n+    /**\r\n+     * The method name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Stat\r\n+     */\r\n+    private Integer stat;\r\n+\r\n+    /**\r\n+     * Whether to retry\r\n+     */\r\n+    private Boolean retry;\r\n+\r\n+    /**\r\n+     * If it's reliable\r\n+     */\r\n+    private Boolean reliable;\r\n+\r\n+    /**\r\n+     * Thread limits for method invocations\r\n+     */\r\n+    private Integer executes;\r\n+\r\n+    /**\r\n+     * If it's deprecated\r\n+     */\r\n+    private Boolean deprecated;\r\n+\r\n+    /**\r\n+     * Whether to enable sticky\r\n+     */\r\n+    private Boolean sticky;\r\n+\r\n+    /**\r\n+     * Whether need to return\r\n+     */\r\n+    private Boolean isReturn;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call is invoked\r\n+     */\r\n+    private Object oninvoke;\r\n+\r\n+    /**\r\n+     * Callback method when async-call is invoked\r\n+     */\r\n+    private String oninvokeMethod;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call is returned\r\n+     */\r\n+    private Object onreturn;\r\n+\r\n+    /**\r\n+     * Callback method when async-call is returned\r\n+     */\r\n+    private String onreturnMethod;\r\n+\r\n+    /**\r\n+     * Callback instance when async-call has exception thrown\r\n+     */\r\n+    private Object onthrow;\r\n+\r\n+    /**\r\n+     * Callback method when async-call has exception thrown\r\n+     */\r\n+    private String onthrowMethod;\r\n+\r\n+    /**\r\n+     * The method arguments\r\n+     */\r\n+    private List<ArgumentConfig> arguments;\r\n+\r\n+    /**\r\n+     * These properties come from MethodConfig's parent Config module, they will neither be collected directly from xml or API nor be delivered to url\r\n+     */\r\n+    private String service;\r\n+    private String serviceId;\r\n+\r\n+    public MethodBuilder name(String name) {\r\n+        this.name = name;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder stat(Integer stat) {\r\n+        this.stat = stat;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder retry(Boolean retry) {\r\n+        this.retry = retry;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder reliable(Boolean reliable) {\r\n+        this.reliable = reliable;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder executes(Integer executes) {\r\n+        this.executes = executes;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder deprecated(Boolean deprecated) {\r\n+        this.deprecated = deprecated;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder sticky(Boolean sticky) {\r\n+        this.sticky = sticky;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder isReturn(Boolean isReturn) {\r\n+        this.isReturn = isReturn;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder oninvoke(Object oninvoke) {\r\n+        this.oninvoke = oninvoke;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder oninvokeMethod(String oninvokeMethod) {\r\n+        this.oninvokeMethod = oninvokeMethod;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder onreturn(Object onreturn) {\r\n+        this.onreturn = onreturn;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder onreturnMethod(String onreturnMethod) {\r\n+        this.onreturnMethod = onreturnMethod;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder onthrow(Object onthrow) {\r\n+        this.onthrow = onthrow;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder onthrowMethod(String onthrowMethod) {\r\n+        this.onthrowMethod = onthrowMethod;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder addArguments(List<? extends ArgumentConfig> arguments) {\r\n+        if (this.arguments == null) {\r\n+            this.arguments = new ArrayList<>();\r\n+        }\r\n+        this.arguments.addAll(arguments);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder addArgument(ArgumentConfig argument) {\r\n+        if (this.arguments == null) {\r\n+            this.arguments = new ArrayList<>();\r\n+        }\r\n+        this.arguments.add(argument);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder service(String service) {\r\n+        this.service = service;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodBuilder serviceId(String serviceId) {\r\n+        this.serviceId = serviceId;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MethodConfig build() {\r\n+        MethodConfig methodConfig = new MethodConfig();\r\n+        super.build(methodConfig);\r\n+\r\n+        methodConfig.setArguments(arguments);\r\n+        methodConfig.setDeprecated(deprecated);\r\n+        methodConfig.setExecutes(executes);\r\n+        methodConfig.setName(name);\r\n+        methodConfig.setOninvoke(oninvoke);\r\n+        methodConfig.setOninvokeMethod(oninvokeMethod);\r\n+        methodConfig.setOnreturn(onreturn);\r\n+        methodConfig.setOnreturnMethod(onreturnMethod);\r\n+        methodConfig.setOnthrow(onthrow);\r\n+        methodConfig.setOnthrowMethod(onthrowMethod);\r\n+        methodConfig.setReturn(isReturn);\r\n+        methodConfig.setService(service);\r\n+        methodConfig.setServiceId(serviceId);\r\n+        methodConfig.setSticky(sticky);\r\n+        methodConfig.setReliable(reliable);\r\n+        methodConfig.setStat(stat);\r\n+        methodConfig.setRetry(retry);\r\n+\r\n+        return methodConfig;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected MethodBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ModuleBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ModuleBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,132 +1,132 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * This is a builder for build {@link ModuleConfig}.\n- *\n- * @since 2.7\n- */\n-public class ModuleBuilder extends AbstractBuilder<ModuleConfig, ModuleBuilder> {\n-    /**\n-     * Module name\n-     */\n-    private String name;\n-\n-    /**\n-     * Module version\n-     */\n-    private String version;\n-\n-    /**\n-     * Module owner\n-     */\n-    private String owner;\n-\n-    /**\n-     * Module's organization\n-     */\n-    private String organization;\n-\n-    /**\n-     * Registry centers\n-     */\n-    private List<RegistryConfig> registries;\n-\n-    /**\n-     * Monitor center\n-     */\n-    private MonitorConfig monitor;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    public ModuleBuilder name(String name) {\n-        this.name = name;\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder owner(String owner) {\n-        this.owner = owner;\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder organization(String organization) {\n-        this.organization = organization;\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder addRegistries(List<? extends RegistryConfig> registries) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.addAll(registries);\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder addRegistry(RegistryConfig registry) {\n-        if (this.registries == null) {\n-            this.registries = new ArrayList<>();\n-        }\n-        this.registries.add(registry);\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder monitor(MonitorConfig monitor) {\n-        this.monitor = monitor;\n-        return getThis();\n-    }\n-\n-    public ModuleBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public ModuleConfig build() {\n-        ModuleConfig moduleConfig = new ModuleConfig();\n-        super.build(moduleConfig);\n-\n-        moduleConfig.setDefault(isDefault);\n-        moduleConfig.setMonitor(monitor);\n-        moduleConfig.setName(name);\n-        moduleConfig.setOrganization(organization);\n-        moduleConfig.setOwner(owner);\n-        moduleConfig.setRegistries(registries);\n-        moduleConfig.setVersion(version);\n-\n-        return moduleConfig;\n-    }\n-\n-    @Override\n-    protected ModuleBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ModuleConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ModuleBuilder extends AbstractBuilder<ModuleConfig, ModuleBuilder> {\r\n+    /**\r\n+     * Module name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Module version\r\n+     */\r\n+    private String version;\r\n+\r\n+    /**\r\n+     * Module owner\r\n+     */\r\n+    private String owner;\r\n+\r\n+    /**\r\n+     * Module's organization\r\n+     */\r\n+    private String organization;\r\n+\r\n+    /**\r\n+     * Registry centers\r\n+     */\r\n+    private List<RegistryConfig> registries;\r\n+\r\n+    /**\r\n+     * Monitor center\r\n+     */\r\n+    private MonitorConfig monitor;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public ModuleBuilder name(String name) {\r\n+        this.name = name;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder owner(String owner) {\r\n+        this.owner = owner;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder organization(String organization) {\r\n+        this.organization = organization;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder addRegistries(List<? extends RegistryConfig> registries) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.addAll(registries);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder addRegistry(RegistryConfig registry) {\r\n+        if (this.registries == null) {\r\n+            this.registries = new ArrayList<>();\r\n+        }\r\n+        this.registries.add(registry);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder monitor(MonitorConfig monitor) {\r\n+        this.monitor = monitor;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ModuleConfig build() {\r\n+        ModuleConfig moduleConfig = new ModuleConfig();\r\n+        super.build(moduleConfig);\r\n+\r\n+        moduleConfig.setDefault(isDefault);\r\n+        moduleConfig.setMonitor(monitor);\r\n+        moduleConfig.setName(name);\r\n+        moduleConfig.setOrganization(organization);\r\n+        moduleConfig.setOwner(owner);\r\n+        moduleConfig.setRegistries(registries);\r\n+        moduleConfig.setVersion(version);\r\n+\r\n+        return moduleConfig;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ModuleBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/MonitorBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/MonitorBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,137 +1,137 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.MonitorConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * This is a builder for build {@link MonitorConfig}.\n- *\n- * @since 2.7\n- */\n-public class MonitorBuilder extends AbstractBuilder<MonitorConfig, MonitorBuilder> {\n-    /**\n-     * The protocol of the monitor, if the value is registry, it will search the monitor address from the registry center,\n-     * otherwise, it will directly connect to the monitor center\n-     */\n-    private String protocol;\n-\n-    /**\n-     * The monitor address\n-     */\n-    private String address;\n-\n-    /**\n-     * The monitor user name\n-     */\n-    private String username;\n-\n-    /**\n-     * The password\n-     */\n-    private String password;\n-\n-    private String group;\n-\n-    private String version;\n-\n-    private String interval;\n-\n-    /**\n-     * customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    public MonitorBuilder protocol(String protocol) {\n-        this.protocol = protocol;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder address(String address) {\n-        this.address = address;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder username(String username) {\n-        this.username = username;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder password(String password) {\n-        this.password = password;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder interval(String interval) {\n-        this.interval = interval;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public MonitorBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public MonitorConfig build() {\n-        MonitorConfig monitorConfig = new MonitorConfig();\n-        super.build(monitorConfig);\n-\n-        monitorConfig.setProtocol(protocol);\n-        monitorConfig.setAddress(address);\n-        monitorConfig.setUsername(username);\n-        monitorConfig.setPassword(password);\n-        monitorConfig.setGroup(group);\n-        monitorConfig.setVersion(version);\n-        monitorConfig.setInterval(interval);\n-        monitorConfig.setParameters(parameters);\n-        monitorConfig.setDefault(isDefault);\n-\n-        return monitorConfig;\n-    }\n-\n-    @Override\n-    protected MonitorBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link MonitorConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class MonitorBuilder extends AbstractBuilder<MonitorConfig, MonitorBuilder> {\r\n+    /**\r\n+     * The protocol of the monitor, if the value is registry, it will search the monitor address from the registry center,\r\n+     * otherwise, it will directly connect to the monitor center\r\n+     */\r\n+    private String protocol;\r\n+\r\n+    /**\r\n+     * The monitor address\r\n+     */\r\n+    private String address;\r\n+\r\n+    /**\r\n+     * The monitor user name\r\n+     */\r\n+    private String username;\r\n+\r\n+    /**\r\n+     * The password\r\n+     */\r\n+    private String password;\r\n+\r\n+    private String group;\r\n+\r\n+    private String version;\r\n+\r\n+    private String interval;\r\n+\r\n+    /**\r\n+     * customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public MonitorBuilder protocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder address(String address) {\r\n+        this.address = address;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder username(String username) {\r\n+        this.username = username;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder password(String password) {\r\n+        this.password = password;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder interval(String interval) {\r\n+        this.interval = interval;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public MonitorConfig build() {\r\n+        MonitorConfig monitorConfig = new MonitorConfig();\r\n+        super.build(monitorConfig);\r\n+\r\n+        monitorConfig.setProtocol(protocol);\r\n+        monitorConfig.setAddress(address);\r\n+        monitorConfig.setUsername(username);\r\n+        monitorConfig.setPassword(password);\r\n+        monitorConfig.setGroup(group);\r\n+        monitorConfig.setVersion(version);\r\n+        monitorConfig.setInterval(interval);\r\n+        monitorConfig.setParameters(parameters);\r\n+        monitorConfig.setDefault(isDefault);\r\n+\r\n+        return monitorConfig;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected MonitorBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ProtocolBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ProtocolBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,427 +1,427 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ProtocolConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * This is a builder for build {@link ProtocolConfig}.\n- *\n- * @since 2.7\n- */\n-public class ProtocolBuilder extends AbstractBuilder<ProtocolConfig, ProtocolBuilder> {\n-    /**\n-     * Protocol name\n-     */\n-    private String name;\n-\n-    /**\n-     * Service ip address (when there are multiple network cards available)\n-     */\n-    private String host;\n-\n-    /**\n-     * Service port\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Context path\n-     */\n-    private String contextpath;\n-\n-    /**\n-     * Thread pool\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Thread pool core thread size\n-     */\n-    private Integer corethreads;\n-\n-    /**\n-     * Thread pool size (fixed size)\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * IO thread pool size (fixed size)\n-     */\n-    private Integer iothreads;\n-\n-    /**\n-     * Thread pool's queue length\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * Max acceptable connections\n-     */\n-    private Integer accepts;\n-\n-    /**\n-     * Protocol codec\n-     */\n-    private String codec;\n-\n-    /**\n-     * Serialization\n-     */\n-    private String serialization;\n-\n-    /**\n-     * Charset\n-     */\n-    private String charset;\n-\n-    /**\n-     * Payload max length\n-     */\n-    private Integer payload;\n-\n-    /**\n-     * Buffer size\n-     */\n-    private Integer buffer;\n-\n-    /**\n-     * Heartbeat interval\n-     */\n-    private Integer heartbeat;\n-\n-    /**\n-     * Access log\n-     */\n-    private String accesslog;\n-\n-    /**\n-     * Transporter\n-     */\n-    private String transporter;\n-\n-    /**\n-     * How information is exchanged\n-     */\n-    private String exchanger;\n-\n-    /**\n-     * Thread dispatch mode\n-     */\n-    private String dispatcher;\n-\n-    /**\n-     * Networker\n-     */\n-    private String networker;\n-\n-    /**\n-     * Sever impl\n-     */\n-    private String server;\n-\n-    /**\n-     * Client impl\n-     */\n-    private String client;\n-\n-    /**\n-     * Supported telnet commands, separated with comma.\n-     */\n-    private String telnet;\n-\n-    /**\n-     * Command line prompt\n-     */\n-    private String prompt;\n-\n-    /**\n-     * Status check\n-     */\n-    private String status;\n-\n-    /**\n-     * Whether to register\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * whether it is a persistent connection\n-     */\n-    //TODO add this to provider config\n-    private Boolean keepAlive;\n-\n-    // TODO add this to provider config\n-    private String optimizer;\n-\n-    /**\n-     * The extension\n-     */\n-    private String extension;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * If it's default\n-     */\n-    private Boolean isDefault;\n-\n-    public static ProtocolBuilder newBuilder() {\n-        return new ProtocolBuilder();\n-    }\n-\n-    public ProtocolBuilder id(String id) {\n-        return super.id(id);\n-    }\n-\n-    public ProtocolBuilder name(String name) {\n-        this.name = name;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder host(String host) {\n-        this.host = host;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder port(Integer port) {\n-        this.port = port;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder contextpath(String contextpath) {\n-        this.contextpath = contextpath;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param path\n-     * @return ProtocolBuilder\n-     * @see ProtocolBuilder#contextpath(String)\n-     */\n-    @Deprecated\n-    public ProtocolBuilder path(String path) {\n-        this.contextpath = path;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder threadpool(String threadpool) {\n-        this.threadpool = threadpool;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder corethreads(Integer corethreads) {\n-        this.corethreads = corethreads;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder threads(Integer threads) {\n-        this.threads = threads;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder iothreads(Integer iothreads) {\n-        this.iothreads = iothreads;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder queues(Integer queues) {\n-        this.queues = queues;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder accepts(Integer accepts) {\n-        this.accepts = accepts;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder codec(String codec) {\n-        this.codec = codec;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder serialization(String serialization) {\n-        this.serialization = serialization;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder charset(String charset) {\n-        this.charset = charset;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder payload(Integer payload) {\n-        this.payload = payload;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder buffer(Integer buffer) {\n-        this.buffer = buffer;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder heartbeat(Integer heartbeat) {\n-        this.heartbeat = heartbeat;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder accesslog(String accesslog) {\n-        this.accesslog = accesslog;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder transporter(String transporter) {\n-        this.transporter = transporter;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder exchanger(String exchanger) {\n-        this.exchanger = exchanger;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder dispatcher(String dispatcher) {\n-        this.dispatcher = dispatcher;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param dispather\n-     * @return ProtocolBuilder\n-     * @see ProtocolBuilder#dispatcher(String)\n-     */\n-    @Deprecated\n-    public ProtocolBuilder dispather(String dispather) {\n-        this.dispatcher = dispather;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder networker(String networker) {\n-        this.networker = networker;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder server(String server) {\n-        this.server = server;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder client(String client) {\n-        this.client = client;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder telnet(String telnet) {\n-        this.telnet = telnet;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder prompt(String prompt) {\n-        this.prompt = prompt;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder status(String status) {\n-        this.status = status;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder register(Boolean register) {\n-        this.register = register;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder keepAlive(Boolean keepAlive) {\n-        this.keepAlive = keepAlive;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder optimizer(String optimizer) {\n-        this.optimizer = optimizer;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder extension(String extension) {\n-        this.extension = extension;\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(parameters, key, value);\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public ProtocolBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public ProtocolConfig build() {\n-        ProtocolConfig protocolConfig = new ProtocolConfig();\n-        super.build(protocolConfig);\n-\n-        protocolConfig.setAccepts(accepts);\n-        protocolConfig.setAccesslog(accesslog);\n-        protocolConfig.setBuffer(buffer);\n-        protocolConfig.setCharset(charset);\n-        protocolConfig.setClient(client);\n-        protocolConfig.setCodec(codec);\n-        protocolConfig.setContextpath(contextpath);\n-        protocolConfig.setCorethreads(corethreads);\n-        protocolConfig.setDefault(isDefault);\n-        protocolConfig.setDispatcher(dispatcher);\n-        protocolConfig.setExchanger(exchanger);\n-        protocolConfig.setExtension(extension);\n-        protocolConfig.setHeartbeat(heartbeat);\n-        protocolConfig.setHost(host);\n-        protocolConfig.setIothreads(iothreads);\n-        protocolConfig.setKeepAlive(keepAlive);\n-        protocolConfig.setName(name);\n-        protocolConfig.setNetworker(networker);\n-        protocolConfig.setOptimizer(optimizer);\n-        protocolConfig.setParameters(parameters);\n-        protocolConfig.setPayload(payload);\n-        protocolConfig.setPort(port);\n-        protocolConfig.setPrompt(prompt);\n-        protocolConfig.setQueues(queues);\n-        protocolConfig.setRegister(register);\n-        protocolConfig.setSerialization(serialization);\n-        protocolConfig.setServer(server);\n-        protocolConfig.setStatus(status);\n-        protocolConfig.setTelnet(telnet);\n-        protocolConfig.setThreadpool(threadpool);\n-        protocolConfig.setThreads(threads);\n-        protocolConfig.setTransporter(transporter);\n-\n-        return protocolConfig;\n-    }\n-\n-    @Override\n-    protected ProtocolBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ProtocolConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ProtocolBuilder extends AbstractBuilder<ProtocolConfig, ProtocolBuilder> {\r\n+    /**\r\n+     * Protocol name\r\n+     */\r\n+    private String name;\r\n+\r\n+    /**\r\n+     * Service ip address (when there are multiple network cards available)\r\n+     */\r\n+    private String host;\r\n+\r\n+    /**\r\n+     * Service port\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Context path\r\n+     */\r\n+    private String contextpath;\r\n+\r\n+    /**\r\n+     * Thread pool\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Thread pool core thread size\r\n+     */\r\n+    private Integer corethreads;\r\n+\r\n+    /**\r\n+     * Thread pool size (fixed size)\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * IO thread pool size (fixed size)\r\n+     */\r\n+    private Integer iothreads;\r\n+\r\n+    /**\r\n+     * Thread pool's queue length\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * Max acceptable connections\r\n+     */\r\n+    private Integer accepts;\r\n+\r\n+    /**\r\n+     * Protocol codec\r\n+     */\r\n+    private String codec;\r\n+\r\n+    /**\r\n+     * Serialization\r\n+     */\r\n+    private String serialization;\r\n+\r\n+    /**\r\n+     * Charset\r\n+     */\r\n+    private String charset;\r\n+\r\n+    /**\r\n+     * Payload max length\r\n+     */\r\n+    private Integer payload;\r\n+\r\n+    /**\r\n+     * Buffer size\r\n+     */\r\n+    private Integer buffer;\r\n+\r\n+    /**\r\n+     * Heartbeat interval\r\n+     */\r\n+    private Integer heartbeat;\r\n+\r\n+    /**\r\n+     * Access log\r\n+     */\r\n+    private String accesslog;\r\n+\r\n+    /**\r\n+     * Transporter\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    /**\r\n+     * How information is exchanged\r\n+     */\r\n+    private String exchanger;\r\n+\r\n+    /**\r\n+     * Thread dispatch mode\r\n+     */\r\n+    private String dispatcher;\r\n+\r\n+    /**\r\n+     * Networker\r\n+     */\r\n+    private String networker;\r\n+\r\n+    /**\r\n+     * Sever impl\r\n+     */\r\n+    private String server;\r\n+\r\n+    /**\r\n+     * Client impl\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Supported telnet commands, separated with comma.\r\n+     */\r\n+    private String telnet;\r\n+\r\n+    /**\r\n+     * Command line prompt\r\n+     */\r\n+    private String prompt;\r\n+\r\n+    /**\r\n+     * Status check\r\n+     */\r\n+    private String status;\r\n+\r\n+    /**\r\n+     * Whether to register\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * whether it is a persistent connection\r\n+     */\r\n+    //TODO add this to provider config\r\n+    private Boolean keepAlive;\r\n+\r\n+    // TODO add this to provider config\r\n+    private String optimizer;\r\n+\r\n+    /**\r\n+     * The extension\r\n+     */\r\n+    private String extension;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * If it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public static ProtocolBuilder newBuilder() {\r\n+        return new ProtocolBuilder();\r\n+    }\r\n+\r\n+    public ProtocolBuilder id(String id) {\r\n+        return super.id(id);\r\n+    }\r\n+\r\n+    public ProtocolBuilder name(String name) {\r\n+        this.name = name;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder host(String host) {\r\n+        this.host = host;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder port(Integer port) {\r\n+        this.port = port;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder contextpath(String contextpath) {\r\n+        this.contextpath = contextpath;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param path\r\n+     * @return ProtocolBuilder\r\n+     * @see ProtocolBuilder#contextpath(String)\r\n+     */\r\n+    @Deprecated\r\n+    public ProtocolBuilder path(String path) {\r\n+        this.contextpath = path;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder threadpool(String threadpool) {\r\n+        this.threadpool = threadpool;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder corethreads(Integer corethreads) {\r\n+        this.corethreads = corethreads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder threads(Integer threads) {\r\n+        this.threads = threads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder iothreads(Integer iothreads) {\r\n+        this.iothreads = iothreads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder queues(Integer queues) {\r\n+        this.queues = queues;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder accepts(Integer accepts) {\r\n+        this.accepts = accepts;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder codec(String codec) {\r\n+        this.codec = codec;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder serialization(String serialization) {\r\n+        this.serialization = serialization;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder charset(String charset) {\r\n+        this.charset = charset;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder payload(Integer payload) {\r\n+        this.payload = payload;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder buffer(Integer buffer) {\r\n+        this.buffer = buffer;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder heartbeat(Integer heartbeat) {\r\n+        this.heartbeat = heartbeat;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder accesslog(String accesslog) {\r\n+        this.accesslog = accesslog;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder transporter(String transporter) {\r\n+        this.transporter = transporter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder exchanger(String exchanger) {\r\n+        this.exchanger = exchanger;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder dispatcher(String dispatcher) {\r\n+        this.dispatcher = dispatcher;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param dispather\r\n+     * @return ProtocolBuilder\r\n+     * @see ProtocolBuilder#dispatcher(String)\r\n+     */\r\n+    @Deprecated\r\n+    public ProtocolBuilder dispather(String dispather) {\r\n+        this.dispatcher = dispather;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder networker(String networker) {\r\n+        this.networker = networker;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder server(String server) {\r\n+        this.server = server;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder client(String client) {\r\n+        this.client = client;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder telnet(String telnet) {\r\n+        this.telnet = telnet;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder prompt(String prompt) {\r\n+        this.prompt = prompt;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder status(String status) {\r\n+        this.status = status;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder register(Boolean register) {\r\n+        this.register = register;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder keepAlive(Boolean keepAlive) {\r\n+        this.keepAlive = keepAlive;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder optimizer(String optimizer) {\r\n+        this.optimizer = optimizer;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder extension(String extension) {\r\n+        this.extension = extension;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProtocolConfig build() {\r\n+        ProtocolConfig protocolConfig = new ProtocolConfig();\r\n+        super.build(protocolConfig);\r\n+\r\n+        protocolConfig.setAccepts(accepts);\r\n+        protocolConfig.setAccesslog(accesslog);\r\n+        protocolConfig.setBuffer(buffer);\r\n+        protocolConfig.setCharset(charset);\r\n+        protocolConfig.setClient(client);\r\n+        protocolConfig.setCodec(codec);\r\n+        protocolConfig.setContextpath(contextpath);\r\n+        protocolConfig.setCorethreads(corethreads);\r\n+        protocolConfig.setDefault(isDefault);\r\n+        protocolConfig.setDispatcher(dispatcher);\r\n+        protocolConfig.setExchanger(exchanger);\r\n+        protocolConfig.setExtension(extension);\r\n+        protocolConfig.setHeartbeat(heartbeat);\r\n+        protocolConfig.setHost(host);\r\n+        protocolConfig.setIothreads(iothreads);\r\n+        protocolConfig.setKeepAlive(keepAlive);\r\n+        protocolConfig.setName(name);\r\n+        protocolConfig.setNetworker(networker);\r\n+        protocolConfig.setOptimizer(optimizer);\r\n+        protocolConfig.setParameters(parameters);\r\n+        protocolConfig.setPayload(payload);\r\n+        protocolConfig.setPort(port);\r\n+        protocolConfig.setPrompt(prompt);\r\n+        protocolConfig.setQueues(queues);\r\n+        protocolConfig.setRegister(register);\r\n+        protocolConfig.setSerialization(serialization);\r\n+        protocolConfig.setServer(server);\r\n+        protocolConfig.setStatus(status);\r\n+        protocolConfig.setTelnet(telnet);\r\n+        protocolConfig.setThreadpool(threadpool);\r\n+        protocolConfig.setThreads(threads);\r\n+        protocolConfig.setTransporter(transporter);\r\n+\r\n+        return protocolConfig;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ProtocolBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ProviderBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ProviderBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,293 +1,293 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ProviderConfig;\n-\n-/**\n- * This is a builder for build {@link ProviderConfig}.\n- *\n- * @since 2.7\n- */\n-public class ProviderBuilder extends AbstractServiceBuilder<ProviderConfig, ProviderBuilder> {\n-\n-    /**\n-     * Service ip addresses (used when there are multiple network cards available)\n-     */\n-    private String host;\n-\n-    /**\n-     * Service port\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Context path\n-     */\n-    private String contextpath;\n-\n-    /**\n-     * Thread pool\n-     */\n-    private String threadpool;\n-\n-    /**\n-     * Thread pool size (fixed size)\n-     */\n-    private Integer threads;\n-\n-    /**\n-     * IO thread pool size (fixed size)\n-     */\n-    private Integer iothreads;\n-\n-    /**\n-     * Thread pool queue length\n-     */\n-    private Integer queues;\n-\n-    /**\n-     * Max acceptable connections\n-     */\n-    private Integer accepts;\n-\n-    /**\n-     * Protocol codec\n-     */\n-    private String codec;\n-\n-    /**\n-     * The serialization charset\n-     */\n-    private String charset;\n-\n-    /**\n-     * Payload max length\n-     */\n-    private Integer payload;\n-\n-    /**\n-     * The network io buffer size\n-     */\n-    private Integer buffer;\n-\n-    /**\n-     * Transporter\n-     */\n-    private String transporter;\n-\n-    /**\n-     * How information gets exchanged\n-     */\n-    private String exchanger;\n-\n-    /**\n-     * Thread dispatching mode\n-     */\n-    private String dispatcher;\n-\n-    /**\n-     * Networker\n-     */\n-    private String networker;\n-\n-    /**\n-     * The server-side implementation model of the protocol\n-     */\n-    private String server;\n-\n-    /**\n-     * The client-side implementation model of the protocol\n-     */\n-    private String client;\n-\n-    /**\n-     * Supported telnet commands, separated with comma.\n-     */\n-    private String telnet;\n-\n-    /**\n-     * Command line prompt\n-     */\n-    private String prompt;\n-\n-    /**\n-     * Status check\n-     */\n-    private String status;\n-\n-    /**\n-     * Wait time when stop\n-     */\n-    private Integer wait;\n-\n-    /**\n-     * Whether to use the default protocol\n-     */\n-    private Boolean isDefault;\n-\n-    public ProviderBuilder host(String host) {\n-        this.host = host;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder port(Integer port) {\n-        this.port = port;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder contextPath(String contextPath) {\n-        this.contextpath = contextPath;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder threadPool(String threadPool) {\n-        this.threadpool = threadPool;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder threads(Integer threads) {\n-        this.threads = threads;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder ioThreads(Integer ioThreads) {\n-        this.iothreads = ioThreads;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder queues(Integer queues) {\n-        this.queues = queues;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder accepts(Integer accepts) {\n-        this.accepts = accepts;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder codec(String codec) {\n-        this.codec = codec;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder charset(String charset) {\n-        this.charset = charset;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder payload(Integer payload) {\n-        this.payload = payload;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder buffer(Integer buffer) {\n-        this.buffer = buffer;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder transporter(String transporter) {\n-        this.transporter = transporter;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder exchanger(String exchanger) {\n-        this.exchanger = exchanger;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder dispatcher(String dispatcher) {\n-        this.dispatcher = dispatcher;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder networker(String networker) {\n-        this.networker = networker;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder server(String server) {\n-        this.server = server;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder client(String client) {\n-        this.client = client;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder telnet(String telnet) {\n-        this.telnet = telnet;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder prompt(String prompt) {\n-        this.prompt = prompt;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder status(String status) {\n-        this.status = status;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder wait(Integer wait) {\n-        this.wait = wait;\n-        return getThis();\n-    }\n-\n-    public ProviderBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public ProviderConfig build() {\n-        ProviderConfig provider = new ProviderConfig();\n-        super.build(provider);\n-\n-        provider.setHost(host);\n-        provider.setPort(port);\n-        provider.setContextpath(contextpath);\n-        provider.setThreadpool(threadpool);\n-        provider.setThreads(threads);\n-        provider.setIothreads(iothreads);\n-        provider.setQueues(queues);\n-        provider.setAccepts(accepts);\n-        provider.setCodec(codec);\n-        provider.setPayload(payload);\n-        provider.setCharset(charset);\n-        provider.setBuffer(buffer);\n-        provider.setTransporter(transporter);\n-        provider.setExchanger(exchanger);\n-        provider.setDispatcher(dispatcher);\n-        provider.setNetworker(networker);\n-        provider.setServer(server);\n-        provider.setClient(client);\n-        provider.setTelnet(telnet);\n-        provider.setPrompt(prompt);\n-        provider.setStatus(status);\n-        provider.setWait(wait);\n-        provider.setDefault(isDefault);\n-\n-        return provider;\n-    }\n-\n-    @Override\n-    protected ProviderBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ProviderConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ProviderBuilder extends AbstractServiceBuilder<ProviderConfig, ProviderBuilder> {\r\n+\r\n+    /**\r\n+     * Service ip addresses (used when there are multiple network cards available)\r\n+     */\r\n+    private String host;\r\n+\r\n+    /**\r\n+     * Service port\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Context path\r\n+     */\r\n+    private String contextpath;\r\n+\r\n+    /**\r\n+     * Thread pool\r\n+     */\r\n+    private String threadpool;\r\n+\r\n+    /**\r\n+     * Thread pool size (fixed size)\r\n+     */\r\n+    private Integer threads;\r\n+\r\n+    /**\r\n+     * IO thread pool size (fixed size)\r\n+     */\r\n+    private Integer iothreads;\r\n+\r\n+    /**\r\n+     * Thread pool queue length\r\n+     */\r\n+    private Integer queues;\r\n+\r\n+    /**\r\n+     * Max acceptable connections\r\n+     */\r\n+    private Integer accepts;\r\n+\r\n+    /**\r\n+     * Protocol codec\r\n+     */\r\n+    private String codec;\r\n+\r\n+    /**\r\n+     * The serialization charset\r\n+     */\r\n+    private String charset;\r\n+\r\n+    /**\r\n+     * Payload max length\r\n+     */\r\n+    private Integer payload;\r\n+\r\n+    /**\r\n+     * The network io buffer size\r\n+     */\r\n+    private Integer buffer;\r\n+\r\n+    /**\r\n+     * Transporter\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    /**\r\n+     * How information gets exchanged\r\n+     */\r\n+    private String exchanger;\r\n+\r\n+    /**\r\n+     * Thread dispatching mode\r\n+     */\r\n+    private String dispatcher;\r\n+\r\n+    /**\r\n+     * Networker\r\n+     */\r\n+    private String networker;\r\n+\r\n+    /**\r\n+     * The server-side implementation model of the protocol\r\n+     */\r\n+    private String server;\r\n+\r\n+    /**\r\n+     * The client-side implementation model of the protocol\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * Supported telnet commands, separated with comma.\r\n+     */\r\n+    private String telnet;\r\n+\r\n+    /**\r\n+     * Command line prompt\r\n+     */\r\n+    private String prompt;\r\n+\r\n+    /**\r\n+     * Status check\r\n+     */\r\n+    private String status;\r\n+\r\n+    /**\r\n+     * Wait time when stop\r\n+     */\r\n+    private Integer wait;\r\n+\r\n+    /**\r\n+     * Whether to use the default protocol\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    public ProviderBuilder host(String host) {\r\n+        this.host = host;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder port(Integer port) {\r\n+        this.port = port;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder contextPath(String contextPath) {\r\n+        this.contextpath = contextPath;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder threadPool(String threadPool) {\r\n+        this.threadpool = threadPool;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder threads(Integer threads) {\r\n+        this.threads = threads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder ioThreads(Integer ioThreads) {\r\n+        this.iothreads = ioThreads;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder queues(Integer queues) {\r\n+        this.queues = queues;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder accepts(Integer accepts) {\r\n+        this.accepts = accepts;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder codec(String codec) {\r\n+        this.codec = codec;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder charset(String charset) {\r\n+        this.charset = charset;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder payload(Integer payload) {\r\n+        this.payload = payload;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder buffer(Integer buffer) {\r\n+        this.buffer = buffer;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder transporter(String transporter) {\r\n+        this.transporter = transporter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder exchanger(String exchanger) {\r\n+        this.exchanger = exchanger;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder dispatcher(String dispatcher) {\r\n+        this.dispatcher = dispatcher;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder networker(String networker) {\r\n+        this.networker = networker;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder server(String server) {\r\n+        this.server = server;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder client(String client) {\r\n+        this.client = client;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder telnet(String telnet) {\r\n+        this.telnet = telnet;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder prompt(String prompt) {\r\n+        this.prompt = prompt;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder status(String status) {\r\n+        this.status = status;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder wait(Integer wait) {\r\n+        this.wait = wait;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ProviderConfig build() {\r\n+        ProviderConfig provider = new ProviderConfig();\r\n+        super.build(provider);\r\n+\r\n+        provider.setHost(host);\r\n+        provider.setPort(port);\r\n+        provider.setContextpath(contextpath);\r\n+        provider.setThreadpool(threadpool);\r\n+        provider.setThreads(threads);\r\n+        provider.setIothreads(iothreads);\r\n+        provider.setQueues(queues);\r\n+        provider.setAccepts(accepts);\r\n+        provider.setCodec(codec);\r\n+        provider.setPayload(payload);\r\n+        provider.setCharset(charset);\r\n+        provider.setBuffer(buffer);\r\n+        provider.setTransporter(transporter);\r\n+        provider.setExchanger(exchanger);\r\n+        provider.setDispatcher(dispatcher);\r\n+        provider.setNetworker(networker);\r\n+        provider.setServer(server);\r\n+        provider.setClient(client);\r\n+        provider.setTelnet(telnet);\r\n+        provider.setPrompt(prompt);\r\n+        provider.setStatus(status);\r\n+        provider.setWait(wait);\r\n+        provider.setDefault(isDefault);\r\n+\r\n+        return provider;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ProviderBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ReferenceBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ReferenceBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,165 +1,165 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.toCommaDelimitedString;\n-\n-/**\n- * This is a builder for build {@link ReferenceConfigBase}.\n- *\n- * @since 2.7\n- */\n-public class ReferenceBuilder<T> extends AbstractReferenceBuilder<ReferenceConfig, ReferenceBuilder<T>> {\n-    /**\n-     * The interface name of the reference service\n-     */\n-    private String interfaceName;\n-\n-    /**\n-     * The interface class of the reference service\n-     */\n-    private Class<?> interfaceClass;\n-\n-    /**\n-     * client type\n-     */\n-    private String client;\n-\n-    /**\n-     * The url for peer-to-peer invocation\n-     */\n-    private String url;\n-\n-    /**\n-     * The method configs\n-     */\n-    private List<MethodConfig> methods;\n-\n-    /**\n-     * The consumer config (default)\n-     */\n-    private ConsumerConfig consumer;\n-\n-    /**\n-     * Only the service provider of the specified protocol is invoked, and other protocols are ignored.\n-     */\n-    private String protocol;\n-\n-    /**\n-     * The string presenting the service names that the Dubbo interface subscribed\n-     *\n-     * @since 2.7.8\n-     */\n-    private String services;\n-\n-    public static ReferenceBuilder newBuilder() {\n-        return new ReferenceBuilder();\n-    }\n-\n-    public ReferenceBuilder<T> id(String id) {\n-        return super.id(id);\n-    }\n-\n-    public ReferenceBuilder<T> interfaceName(String interfaceName) {\n-        this.interfaceName = interfaceName;\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> interfaceClass(Class<?> interfaceClass) {\n-        this.interfaceClass = interfaceClass;\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> client(String client) {\n-        this.client = client;\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> url(String url) {\n-        this.url = url;\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> addMethods(List<MethodConfig> methods) {\n-        if (this.methods == null) {\n-            this.methods = new ArrayList<>();\n-        }\n-        this.methods.addAll(methods);\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> addMethod(MethodConfig method) {\n-        if (this.methods == null) {\n-            this.methods = new ArrayList<>();\n-        }\n-        this.methods.add(method);\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> consumer(ConsumerConfig consumer) {\n-        this.consumer = consumer;\n-        return getThis();\n-    }\n-\n-    public ReferenceBuilder<T> protocol(String protocol) {\n-        this.protocol = protocol;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param service       one service name\n-     * @param otherServices other service names\n-     * @return {@link ReferenceBuilder}\n-     * @since 2.7.8\n-     */\n-    public ReferenceBuilder<T> services(String service, String... otherServices) {\n-        this.services = toCommaDelimitedString(service, otherServices);\n-        return getThis();\n-    }\n-\n-    public ReferenceConfig<T> build() {\n-        ReferenceConfig<T> reference = new ReferenceConfig<>();\n-        super.build(reference);\n-\n-        reference.setInterface(interfaceName);\n-        if (interfaceClass != null) {\n-            reference.setInterface(interfaceClass);\n-        }\n-        reference.setClient(client);\n-        reference.setUrl(url);\n-        reference.setMethods(methods);\n-        reference.setConsumer(consumer);\n-        reference.setProtocol(protocol);\n-        // @since 2.7.8\n-        reference.setServices(services);\n-\n-        return reference;\n-    }\n-\n-    @Override\n-    protected ReferenceBuilder<T> getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.toCommaDelimitedString;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ReferenceConfigBase}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ReferenceBuilder<T> extends AbstractReferenceBuilder<ReferenceConfig, ReferenceBuilder<T>> {\r\n+    /**\r\n+     * The interface name of the reference service\r\n+     */\r\n+    private String interfaceName;\r\n+\r\n+    /**\r\n+     * The interface class of the reference service\r\n+     */\r\n+    private Class<?> interfaceClass;\r\n+\r\n+    /**\r\n+     * client type\r\n+     */\r\n+    private String client;\r\n+\r\n+    /**\r\n+     * The url for peer-to-peer invocation\r\n+     */\r\n+    private String url;\r\n+\r\n+    /**\r\n+     * The method configs\r\n+     */\r\n+    private List<MethodConfig> methods;\r\n+\r\n+    /**\r\n+     * The consumer config (default)\r\n+     */\r\n+    private ConsumerConfig consumer;\r\n+\r\n+    /**\r\n+     * Only the service provider of the specified protocol is invoked, and other protocols are ignored.\r\n+     */\r\n+    private String protocol;\r\n+\r\n+    /**\r\n+     * The string presenting the service names that the Dubbo interface subscribed\r\n+     *\r\n+     * @since 2.7.8\r\n+     */\r\n+    private String services;\r\n+\r\n+    public static ReferenceBuilder newBuilder() {\r\n+        return new ReferenceBuilder();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> id(String id) {\r\n+        return super.id(id);\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> interfaceName(String interfaceName) {\r\n+        this.interfaceName = interfaceName;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> interfaceClass(Class<?> interfaceClass) {\r\n+        this.interfaceClass = interfaceClass;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> client(String client) {\r\n+        this.client = client;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> url(String url) {\r\n+        this.url = url;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> addMethods(List<MethodConfig> methods) {\r\n+        if (this.methods == null) {\r\n+            this.methods = new ArrayList<>();\r\n+        }\r\n+        this.methods.addAll(methods);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> addMethod(MethodConfig method) {\r\n+        if (this.methods == null) {\r\n+            this.methods = new ArrayList<>();\r\n+        }\r\n+        this.methods.add(method);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> consumer(ConsumerConfig consumer) {\r\n+        this.consumer = consumer;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceBuilder<T> protocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param service       one service name\r\n+     * @param otherServices other service names\r\n+     * @return {@link ReferenceBuilder}\r\n+     * @since 2.7.8\r\n+     */\r\n+    public ReferenceBuilder<T> services(String service, String... otherServices) {\r\n+        this.services = toCommaDelimitedString(service, otherServices);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ReferenceConfig<T> build() {\r\n+        ReferenceConfig<T> reference = new ReferenceConfig<>();\r\n+        super.build(reference);\r\n+\r\n+        reference.setInterface(interfaceName);\r\n+        if (interfaceClass != null) {\r\n+            reference.setInterface(interfaceClass);\r\n+        }\r\n+        reference.setClient(client);\r\n+        reference.setUrl(url);\r\n+        reference.setMethods(methods);\r\n+        reference.setConsumer(consumer);\r\n+        reference.setProtocol(protocol);\r\n+        // @since 2.7.8\r\n+        reference.setServices(services);\r\n+\r\n+        return reference;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ReferenceBuilder<T> getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/RegistryBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/RegistryBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,383 +1,383 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.RegistryConfig;\n-\n-import java.util.Map;\n-\n-/**\n- * This is a builder for build {@link RegistryConfig}.\n- *\n- * @since 2.7\n- */\n-public class RegistryBuilder extends AbstractBuilder<RegistryConfig, RegistryBuilder> {\n-    /**\n-     * Register center address\n-     */\n-    private String address;\n-\n-    /**\n-     * Username to login register center\n-     */\n-    private String username;\n-\n-    /**\n-     * Password to login register center\n-     */\n-    private String password;\n-\n-    /**\n-     * Default port for register center\n-     */\n-    private Integer port;\n-\n-    /**\n-     * Protocol for register center\n-     */\n-    private String protocol;\n-\n-    /**\n-     * Network transmission type\n-     */\n-    private String transporter;\n-\n-    private String server;\n-\n-    private String client;\n-\n-    private String cluster;\n-\n-    /**\n-     * The group the services registry in\n-     */\n-    private String group;\n-\n-    private String version;\n-\n-    /**\n-     * Request timeout in milliseconds for register center\n-     */\n-    private Integer timeout;\n-\n-    /**\n-     * Session timeout in milliseconds for register center\n-     */\n-    private Integer session;\n-\n-    /**\n-     * File for saving register center dynamic list\n-     */\n-    private String file;\n-\n-    /**\n-     * Wait time before stop\n-     */\n-    private Integer wait;\n-\n-    /**\n-     * Whether to check if register center is available when boot up\n-     */\n-    private Boolean check;\n-\n-    /**\n-     * Whether to allow dynamic service to register on the register center\n-     */\n-    private Boolean dynamic;\n-\n-    /**\n-     * Whether to export service on the register center\n-     */\n-    private Boolean register;\n-\n-    /**\n-     * Whether allow to subscribe service on the register center\n-     */\n-    private Boolean subscribe;\n-\n-    /**\n-     * The customized parameters\n-     */\n-    private Map<String, String> parameters;\n-\n-    /**\n-     * Whether it's default\n-     */\n-    private Boolean isDefault;\n-\n-    /**\n-     * Simple the registry. both useful for provider and consumer\n-     *\n-     * @since 2.7.0\n-     */\n-    private Boolean simplified;\n-    /**\n-     * After simplify the registry, should add some parameter individually. just for provider.\n-     * <p>\n-     * such as: extra-keys = A,b,c,d\n-     *\n-     * @since 2.7.0\n-     */\n-    private String extraKeys;\n-\n-    /**\n-     * the address work as config center or not\n-     */\n-    private Boolean useAsConfigCenter;\n-\n-    /**\n-     * the address work as remote metadata center or not\n-     */\n-    private Boolean useAsMetadataCenter;\n-\n-    /**\n-     * list of rpc protocols accepted by this registry, for example, \"dubbo,rest\"\n-     */\n-    private String accepts;\n-\n-    /**\n-     * Always use this registry first if set to true, useful when subscribe to multiple registries\n-     */\n-    private Boolean preferred;\n-\n-    /**\n-     * Affects traffic distribution among registries, useful when subscribe to multiple registries\n-     * Take effect only when no preferred registry is specified.\n-     */\n-    private Integer weight;\n-\n-    public static RegistryBuilder newBuilder() {\n-        return new RegistryBuilder();\n-    }\n-\n-    public RegistryBuilder id(String id) {\n-        return super.id(id);\n-    }\n-\n-    public RegistryBuilder address(String address) {\n-        this.address = address;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder username(String username) {\n-        this.username = username;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder password(String password) {\n-        this.password = password;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder port(Integer port) {\n-        this.port = port;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder protocol(String protocol) {\n-        this.protocol = protocol;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder transporter(String transporter) {\n-        this.transporter = transporter;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param transport\n-     * @see #transporter(String)\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public RegistryBuilder transport(String transport) {\n-        this.transporter = transport;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder server(String server) {\n-        this.server = server;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder client(String client) {\n-        this.client = client;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder cluster(String cluster) {\n-        this.cluster = cluster;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder group(String group) {\n-        this.group = group;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder version(String version) {\n-        this.version = version;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder timeout(Integer timeout) {\n-        this.timeout = timeout;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder session(Integer session) {\n-        this.session = session;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder file(String file) {\n-        this.file = file;\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param wait\n-     * @see ProviderBuilder#wait(Integer)\n-     * @deprecated\n-     */\n-    @Deprecated\n-    public RegistryBuilder wait(Integer wait) {\n-        this.wait = wait;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder isCheck(Boolean check) {\n-        this.check = check;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder isDynamic(Boolean dynamic) {\n-        this.dynamic = dynamic;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder register(Boolean register) {\n-        this.register = register;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder subscribe(Boolean subscribe) {\n-        this.subscribe = subscribe;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder appendParameter(String key, String value) {\n-        this.parameters = appendParameter(parameters, key, value);\n-        return getThis();\n-    }\n-\n-    /**\n-     * @param name   the parameter name\n-     * @param value the parameter value\n-     * @return {@link RegistryBuilder}\n-     * @since 2.7.8\n-     */\n-    public RegistryBuilder parameter(String name, String value) {\n-        return appendParameter(name, value);\n-    }\n-\n-    public RegistryBuilder appendParameters(Map<String, String> appendParameters) {\n-        this.parameters = appendParameters(parameters, appendParameters);\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder isDefault(Boolean isDefault) {\n-        this.isDefault = isDefault;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder simplified(Boolean simplified) {\n-        this.simplified = simplified;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder extraKeys(String extraKeys) {\n-        this.extraKeys = extraKeys;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder useAsConfigCenter(Boolean useAsConfigCenter) {\n-        this.useAsConfigCenter = useAsConfigCenter;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder useAsMetadataCenter(Boolean useAsMetadataCenter) {\n-        this.useAsMetadataCenter = useAsMetadataCenter;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder preferred(Boolean preferred) {\n-        this.preferred = preferred;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder accepts(String accepts) {\n-        this.accepts = accepts;\n-        return getThis();\n-    }\n-\n-    public RegistryBuilder weight(Integer weight) {\n-        this.weight = weight;\n-        return getThis();\n-    }\n-\n-    public RegistryConfig build() {\n-        RegistryConfig registry = new RegistryConfig();\n-        super.build(registry);\n-\n-        registry.setCheck(check);\n-        registry.setClient(client);\n-        registry.setCluster(cluster);\n-        registry.setDefault(isDefault);\n-        registry.setDynamic(dynamic);\n-        registry.setExtraKeys(extraKeys);\n-        registry.setFile(file);\n-        registry.setGroup(group);\n-        registry.setParameters(parameters);\n-        registry.setPassword(password);\n-        registry.setPort(port);\n-        registry.setProtocol(protocol);\n-        registry.setRegister(register);\n-        registry.setServer(server);\n-        registry.setSession(session);\n-        registry.setSimplified(simplified);\n-        registry.setSubscribe(subscribe);\n-        registry.setTimeout(timeout);\n-        registry.setTransporter(transporter);\n-        registry.setUsername(username);\n-        registry.setVersion(version);\n-        registry.setWait(wait);\n-        registry.setUseAsConfigCenter(useAsConfigCenter);\n-        registry.setUseAsMetadataCenter(useAsMetadataCenter);\n-        registry.setAccepts(accepts);\n-        registry.setPreferred(preferred);\n-        registry.setWeight(weight);\n-        registry.setAddress(address);\n-\n-        return registry;\n-    }\n-\n-    @Override\n-    protected RegistryBuilder getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link RegistryConfig}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class RegistryBuilder extends AbstractBuilder<RegistryConfig, RegistryBuilder> {\r\n+    /**\r\n+     * Register center address\r\n+     */\r\n+    private String address;\r\n+\r\n+    /**\r\n+     * Username to login register center\r\n+     */\r\n+    private String username;\r\n+\r\n+    /**\r\n+     * Password to login register center\r\n+     */\r\n+    private String password;\r\n+\r\n+    /**\r\n+     * Default port for register center\r\n+     */\r\n+    private Integer port;\r\n+\r\n+    /**\r\n+     * Protocol for register center\r\n+     */\r\n+    private String protocol;\r\n+\r\n+    /**\r\n+     * Network transmission type\r\n+     */\r\n+    private String transporter;\r\n+\r\n+    private String server;\r\n+\r\n+    private String client;\r\n+\r\n+    private String cluster;\r\n+\r\n+    /**\r\n+     * The group the services registry in\r\n+     */\r\n+    private String group;\r\n+\r\n+    private String version;\r\n+\r\n+    /**\r\n+     * Request timeout in milliseconds for register center\r\n+     */\r\n+    private Integer timeout;\r\n+\r\n+    /**\r\n+     * Session timeout in milliseconds for register center\r\n+     */\r\n+    private Integer session;\r\n+\r\n+    /**\r\n+     * File for saving register center dynamic list\r\n+     */\r\n+    private String file;\r\n+\r\n+    /**\r\n+     * Wait time before stop\r\n+     */\r\n+    private Integer wait;\r\n+\r\n+    /**\r\n+     * Whether to check if register center is available when boot up\r\n+     */\r\n+    private Boolean check;\r\n+\r\n+    /**\r\n+     * Whether to allow dynamic service to register on the register center\r\n+     */\r\n+    private Boolean dynamic;\r\n+\r\n+    /**\r\n+     * Whether to export service on the register center\r\n+     */\r\n+    private Boolean register;\r\n+\r\n+    /**\r\n+     * Whether allow to subscribe service on the register center\r\n+     */\r\n+    private Boolean subscribe;\r\n+\r\n+    /**\r\n+     * The customized parameters\r\n+     */\r\n+    private Map<String, String> parameters;\r\n+\r\n+    /**\r\n+     * Whether it's default\r\n+     */\r\n+    private Boolean isDefault;\r\n+\r\n+    /**\r\n+     * Simple the registry. both useful for provider and consumer\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    private Boolean simplified;\r\n+    /**\r\n+     * After simplify the registry, should add some parameter individually. just for provider.\r\n+     * <p>\r\n+     * such as: extra-keys = A,b,c,d\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    private String extraKeys;\r\n+\r\n+    /**\r\n+     * the address work as config center or not\r\n+     */\r\n+    private Boolean useAsConfigCenter;\r\n+\r\n+    /**\r\n+     * the address work as remote metadata center or not\r\n+     */\r\n+    private Boolean useAsMetadataCenter;\r\n+\r\n+    /**\r\n+     * list of rpc protocols accepted by this registry, for example, \"dubbo,rest\"\r\n+     */\r\n+    private String accepts;\r\n+\r\n+    /**\r\n+     * Always use this registry first if set to true, useful when subscribe to multiple registries\r\n+     */\r\n+    private Boolean preferred;\r\n+\r\n+    /**\r\n+     * Affects traffic distribution among registries, useful when subscribe to multiple registries\r\n+     * Take effect only when no preferred registry is specified.\r\n+     */\r\n+    private Integer weight;\r\n+\r\n+    public static RegistryBuilder newBuilder() {\r\n+        return new RegistryBuilder();\r\n+    }\r\n+\r\n+    public RegistryBuilder id(String id) {\r\n+        return super.id(id);\r\n+    }\r\n+\r\n+    public RegistryBuilder address(String address) {\r\n+        this.address = address;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder username(String username) {\r\n+        this.username = username;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder password(String password) {\r\n+        this.password = password;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder port(Integer port) {\r\n+        this.port = port;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder protocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder transporter(String transporter) {\r\n+        this.transporter = transporter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param transport\r\n+     * @see #transporter(String)\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public RegistryBuilder transport(String transport) {\r\n+        this.transporter = transport;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder server(String server) {\r\n+        this.server = server;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder client(String client) {\r\n+        this.client = client;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder cluster(String cluster) {\r\n+        this.cluster = cluster;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder group(String group) {\r\n+        this.group = group;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder version(String version) {\r\n+        this.version = version;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder timeout(Integer timeout) {\r\n+        this.timeout = timeout;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder session(Integer session) {\r\n+        this.session = session;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder file(String file) {\r\n+        this.file = file;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param wait\r\n+     * @see ProviderBuilder#wait(Integer)\r\n+     * @deprecated\r\n+     */\r\n+    @Deprecated\r\n+    public RegistryBuilder wait(Integer wait) {\r\n+        this.wait = wait;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder isCheck(Boolean check) {\r\n+        this.check = check;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder isDynamic(Boolean dynamic) {\r\n+        this.dynamic = dynamic;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder register(Boolean register) {\r\n+        this.register = register;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder subscribe(Boolean subscribe) {\r\n+        this.subscribe = subscribe;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder appendParameter(String key, String value) {\r\n+        this.parameters = appendParameter(parameters, key, value);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    /**\r\n+     * @param name   the parameter name\r\n+     * @param value the parameter value\r\n+     * @return {@link RegistryBuilder}\r\n+     * @since 2.7.8\r\n+     */\r\n+    public RegistryBuilder parameter(String name, String value) {\r\n+        return appendParameter(name, value);\r\n+    }\r\n+\r\n+    public RegistryBuilder appendParameters(Map<String, String> appendParameters) {\r\n+        this.parameters = appendParameters(parameters, appendParameters);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder isDefault(Boolean isDefault) {\r\n+        this.isDefault = isDefault;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder simplified(Boolean simplified) {\r\n+        this.simplified = simplified;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder extraKeys(String extraKeys) {\r\n+        this.extraKeys = extraKeys;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder useAsConfigCenter(Boolean useAsConfigCenter) {\r\n+        this.useAsConfigCenter = useAsConfigCenter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder useAsMetadataCenter(Boolean useAsMetadataCenter) {\r\n+        this.useAsMetadataCenter = useAsMetadataCenter;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder preferred(Boolean preferred) {\r\n+        this.preferred = preferred;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder accepts(String accepts) {\r\n+        this.accepts = accepts;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryBuilder weight(Integer weight) {\r\n+        this.weight = weight;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public RegistryConfig build() {\r\n+        RegistryConfig registry = new RegistryConfig();\r\n+        super.build(registry);\r\n+\r\n+        registry.setCheck(check);\r\n+        registry.setClient(client);\r\n+        registry.setCluster(cluster);\r\n+        registry.setDefault(isDefault);\r\n+        registry.setDynamic(dynamic);\r\n+        registry.setExtraKeys(extraKeys);\r\n+        registry.setFile(file);\r\n+        registry.setGroup(group);\r\n+        registry.setParameters(parameters);\r\n+        registry.setPassword(password);\r\n+        registry.setPort(port);\r\n+        registry.setProtocol(protocol);\r\n+        registry.setRegister(register);\r\n+        registry.setServer(server);\r\n+        registry.setSession(session);\r\n+        registry.setSimplified(simplified);\r\n+        registry.setSubscribe(subscribe);\r\n+        registry.setTimeout(timeout);\r\n+        registry.setTransporter(transporter);\r\n+        registry.setUsername(username);\r\n+        registry.setVersion(version);\r\n+        registry.setWait(wait);\r\n+        registry.setUseAsConfigCenter(useAsConfigCenter);\r\n+        registry.setUseAsMetadataCenter(useAsMetadataCenter);\r\n+        registry.setAccepts(accepts);\r\n+        registry.setPreferred(preferred);\r\n+        registry.setWeight(weight);\r\n+        registry.setAddress(address);\r\n+\r\n+        return registry;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected RegistryBuilder getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/ServiceBuilder.java", "source2": "org/apache/dubbo/config/bootstrap/builders/ServiceBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.bootstrap.builders;\n-\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.config.ServiceConfigBase;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * This is a builder for build {@link ServiceConfigBase}.\n- *\n- * @since 2.7\n- */\n-public class ServiceBuilder<U> extends AbstractServiceBuilder<ServiceConfig, ServiceBuilder<U>> {\n-    /**\n-     * The interface name of the exported service\n-     */\n-    private String interfaceName;\n-\n-    /**\n-     * The interface class of the exported service\n-     */\n-    private Class<?> interfaceClass;\n-\n-    /**\n-     * The reference of the interface implementation\n-     */\n-    private U ref;\n-\n-    /**\n-     * The service name\n-     */\n-    private String path;\n-\n-    /**\n-     * The method configuration\n-     */\n-    private List<MethodConfig> methods;\n-\n-    /**\n-     * The provider configuration\n-     */\n-    private ProviderConfig provider;\n-\n-    /**\n-     * The providerIds\n-     */\n-    private String providerIds;\n-    /**\n-     * whether it is a GenericService\n-     */\n-    private String generic;\n-\n-    public static ServiceBuilder newBuilder() {\n-        return new ServiceBuilder();\n-    }\n-\n-    public ServiceBuilder id(String id) {\n-        return super.id(id);\n-    }\n-\n-    public ServiceBuilder<U> interfaceName(String interfaceName) {\n-        this.interfaceName = interfaceName;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> interfaceClass(Class<?> interfaceClass) {\n-        this.interfaceClass = interfaceClass;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> ref(U ref) {\n-        this.ref = ref;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> path(String path) {\n-        this.path = path;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> addMethod(MethodConfig method) {\n-        if (this.methods == null) {\n-            this.methods = new ArrayList<>();\n-        }\n-        this.methods.add(method);\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> addMethods(List<? extends MethodConfig> methods) {\n-        if (this.methods == null) {\n-            this.methods = new ArrayList<>();\n-        }\n-        this.methods.addAll(methods);\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> provider(ProviderConfig provider) {\n-        this.provider = provider;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> providerIds(String providerIds) {\n-        this.providerIds = providerIds;\n-        return getThis();\n-    }\n-\n-    public ServiceBuilder<U> generic(String generic) {\n-        this.generic = generic;\n-        return getThis();\n-    }\n-\n-//    @Override\n-//    public ServiceBuilder<U> mock(String mock) {\n-//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\n-//    }\n-\n-//    @Override\n-//    public ServiceBuilder<U> mock(Boolean mock) {\n-//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\n-//    }\n-\n-    public ServiceConfig<U> build() {\n-        ServiceConfig<U> serviceConfig = new ServiceConfig<>();\n-        super.build(serviceConfig);\n-\n-        serviceConfig.setInterface(interfaceName);\n-        serviceConfig.setInterface(interfaceClass);\n-        serviceConfig.setRef(ref);\n-        serviceConfig.setPath(path);\n-        serviceConfig.setMethods(methods);\n-        serviceConfig.setProvider(provider);\n-        serviceConfig.setProviderIds(providerIds);\n-        serviceConfig.setGeneric(generic);\n-\n-        return serviceConfig;\n-    }\n-\n-    @Override\n-    protected ServiceBuilder<U> getThis() {\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.bootstrap.builders;\r\n+\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.config.ServiceConfigBase;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * This is a builder for build {@link ServiceConfigBase}.\r\n+ *\r\n+ * @since 2.7\r\n+ */\r\n+public class ServiceBuilder<U> extends AbstractServiceBuilder<ServiceConfig, ServiceBuilder<U>> {\r\n+    /**\r\n+     * The interface name of the exported service\r\n+     */\r\n+    private String interfaceName;\r\n+\r\n+    /**\r\n+     * The interface class of the exported service\r\n+     */\r\n+    private Class<?> interfaceClass;\r\n+\r\n+    /**\r\n+     * The reference of the interface implementation\r\n+     */\r\n+    private U ref;\r\n+\r\n+    /**\r\n+     * The service name\r\n+     */\r\n+    private String path;\r\n+\r\n+    /**\r\n+     * The method configuration\r\n+     */\r\n+    private List<MethodConfig> methods;\r\n+\r\n+    /**\r\n+     * The provider configuration\r\n+     */\r\n+    private ProviderConfig provider;\r\n+\r\n+    /**\r\n+     * The providerIds\r\n+     */\r\n+    private String providerIds;\r\n+    /**\r\n+     * whether it is a GenericService\r\n+     */\r\n+    private String generic;\r\n+\r\n+    public static ServiceBuilder newBuilder() {\r\n+        return new ServiceBuilder();\r\n+    }\r\n+\r\n+    public ServiceBuilder id(String id) {\r\n+        return super.id(id);\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> interfaceName(String interfaceName) {\r\n+        this.interfaceName = interfaceName;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> interfaceClass(Class<?> interfaceClass) {\r\n+        this.interfaceClass = interfaceClass;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> ref(U ref) {\r\n+        this.ref = ref;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> path(String path) {\r\n+        this.path = path;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> addMethod(MethodConfig method) {\r\n+        if (this.methods == null) {\r\n+            this.methods = new ArrayList<>();\r\n+        }\r\n+        this.methods.add(method);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> addMethods(List<? extends MethodConfig> methods) {\r\n+        if (this.methods == null) {\r\n+            this.methods = new ArrayList<>();\r\n+        }\r\n+        this.methods.addAll(methods);\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> provider(ProviderConfig provider) {\r\n+        this.provider = provider;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> providerIds(String providerIds) {\r\n+        this.providerIds = providerIds;\r\n+        return getThis();\r\n+    }\r\n+\r\n+    public ServiceBuilder<U> generic(String generic) {\r\n+        this.generic = generic;\r\n+        return getThis();\r\n+    }\r\n+\r\n+//    @Override\r\n+//    public ServiceBuilder<U> mock(String mock) {\r\n+//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\r\n+//    }\r\n+\r\n+//    @Override\r\n+//    public ServiceBuilder<U> mock(Boolean mock) {\r\n+//        throw new IllegalArgumentException(\"mock doesn't support on provider side\");\r\n+//    }\r\n+\r\n+    public ServiceConfig<U> build() {\r\n+        ServiceConfig<U> serviceConfig = new ServiceConfig<>();\r\n+        super.build(serviceConfig);\r\n+\r\n+        serviceConfig.setInterface(interfaceName);\r\n+        serviceConfig.setInterface(interfaceClass);\r\n+        serviceConfig.setRef(ref);\r\n+        serviceConfig.setPath(path);\r\n+        serviceConfig.setMethods(methods);\r\n+        serviceConfig.setProvider(provider);\r\n+        serviceConfig.setProviderIds(providerIds);\r\n+        serviceConfig.setGeneric(generic);\r\n+\r\n+        return serviceConfig;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ServiceBuilder<U> getThis() {\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/bootstrap/builders/package-info.java", "source2": "org/apache/dubbo/config/bootstrap/builders/package-info.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,21 +1,21 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-/**\n- * A bunch of builder classes to facilitate programming of raw API.\n- * TODO, these are experimental APIs and are possible to change at any time before marked as production.\n- */\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+/**\r\n+ * A bunch of builder classes to facilitate programming of raw API.\r\n+ * TODO, these are experimental APIs and are possible to change at any time before marked as production.\r\n+ */\r\n package org.apache.dubbo.config.bootstrap.builders;\n"}, {"source1": "org/apache/dubbo/config/context/ConfigConfigurationAdapter.java", "source2": "org/apache/dubbo/config/context/ConfigConfigurationAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.context;\n-\n-import org.apache.dubbo.common.config.Configuration;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * This class receives an {@link AbstractConfig} and exposes its attributes through {@link Configuration}\n- */\n-public class ConfigConfigurationAdapter implements Configuration {\n-\n-    private Map<String, String> metaData;\n-\n-    public ConfigConfigurationAdapter(AbstractConfig config) {\n-        Map<String, String> configMetadata = config.getMetaData();\n-        metaData = new HashMap<>(configMetadata.size(), 1.0f);\n-        for (Map.Entry<String, String> entry : configMetadata.entrySet()) {\n-            String prefix = config.getPrefix().endsWith(\".\") ? config.getPrefix() : config.getPrefix() + \".\";\n-            String id = StringUtils.isEmpty(config.getId()) ? \"\" : config.getId() + \".\";\n-            metaData.put(prefix + id + entry.getKey(), entry.getValue());\n-        }\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return metaData.get(key);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.context;\r\n+\r\n+import org.apache.dubbo.common.config.Configuration;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This class receives an {@link AbstractConfig} and exposes its attributes through {@link Configuration}\r\n+ */\r\n+public class ConfigConfigurationAdapter implements Configuration {\r\n+\r\n+    private Map<String, String> metaData;\r\n+\r\n+    public ConfigConfigurationAdapter(AbstractConfig config) {\r\n+        Map<String, String> configMetadata = config.getMetaData();\r\n+        metaData = new HashMap<>(configMetadata.size(), 1.0f);\r\n+        for (Map.Entry<String, String> entry : configMetadata.entrySet()) {\r\n+            String prefix = config.getPrefix().endsWith(\".\") ? config.getPrefix() : config.getPrefix() + \".\";\r\n+            String id = StringUtils.isEmpty(config.getId()) ? \"\" : config.getId() + \".\";\r\n+            metaData.put(prefix + id + entry.getKey(), entry.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return metaData.get(key);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/context/ConfigManager.java", "source2": "org/apache/dubbo/config/context/ConfigManager.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,531 +1,531 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.context;\n-\n-import org.apache.dubbo.common.context.FrameworkExt;\n-import org.apache.dubbo.common.context.LifecycleAdapter;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.ServiceConfigBase;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReadWriteLock;\n-import java.util.concurrent.locks.ReentrantReadWriteLock;\n-import java.util.stream.Collectors;\n-\n-import static java.lang.Boolean.TRUE;\n-import static java.util.Collections.emptyMap;\n-import static java.util.Collections.unmodifiableSet;\n-import static java.util.Optional.ofNullable;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-import static org.apache.dubbo.common.utils.ReflectUtils.getProperty;\n-import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\n-import static org.apache.dubbo.config.AbstractConfig.getTagName;\n-import static org.apache.dubbo.config.Constants.PROTOCOLS_SUFFIX;\n-import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;\n-\n-public class ConfigManager extends LifecycleAdapter implements FrameworkExt {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ConfigManager.class);\n-\n-    public static final String NAME = \"config\";\n-\n-    private final ReadWriteLock lock = new ReentrantReadWriteLock();\n-\n-    final Map<String, Map<String, AbstractConfig>> configsCache = newMap();\n-\n-    public ConfigManager() {\n-    }\n-\n-    // ApplicationConfig correlative methods\n-\n-    public void setApplication(ApplicationConfig application) {\n-        addConfig(application, true);\n-    }\n-\n-    public Optional<ApplicationConfig> getApplication() {\n-        return ofNullable(getConfig(getTagName(ApplicationConfig.class)));\n-    }\n-\n-    public ApplicationConfig getApplicationOrElseThrow() {\n-        return getApplication().orElseThrow(() -> new IllegalStateException(\"There's no ApplicationConfig specified.\"));\n-    }\n-\n-    // MonitorConfig correlative methods\n-\n-    public void setMonitor(MonitorConfig monitor) {\n-        addConfig(monitor, true);\n-    }\n-\n-    public Optional<MonitorConfig> getMonitor() {\n-        return ofNullable(getConfig(getTagName(MonitorConfig.class)));\n-    }\n-\n-    // ModuleConfig correlative methods\n-\n-    public void setModule(ModuleConfig module) {\n-        addConfig(module, true);\n-    }\n-\n-    public Optional<ModuleConfig> getModule() {\n-        return ofNullable(getConfig(getTagName(ModuleConfig.class)));\n-    }\n-\n-    public void setMetrics(MetricsConfig metrics) {\n-        addConfig(metrics, true);\n-    }\n-\n-    public Optional<MetricsConfig> getMetrics() {\n-        return ofNullable(getConfig(getTagName(MetricsConfig.class)));\n-    }\n-\n-    public void setSsl(SslConfig sslConfig) {\n-        addConfig(sslConfig, true);\n-    }\n-\n-    public Optional<SslConfig> getSsl() {\n-        return ofNullable(getConfig(getTagName(SslConfig.class)));\n-    }\n-\n-    // ConfigCenterConfig correlative methods\n-\n-    public void addConfigCenter(ConfigCenterConfig configCenter) {\n-        addConfig(configCenter);\n-    }\n-\n-    public void addConfigCenters(Iterable<ConfigCenterConfig> configCenters) {\n-        configCenters.forEach(this::addConfigCenter);\n-    }\n-\n-    public Optional<Collection<ConfigCenterConfig>> getDefaultConfigCenter() {\n-        Collection<ConfigCenterConfig> defaults = getDefaultConfigs(getConfigsMap(getTagName(ConfigCenterConfig.class)));\n-        if (CollectionUtils.isEmpty(defaults)) {\n-            defaults = getConfigCenters();\n-        }\n-        return Optional.ofNullable(defaults);\n-    }\n-\n-    public ConfigCenterConfig getConfigCenter(String id) {\n-        return getConfig(getTagName(ConfigCenterConfig.class), id);\n-    }\n-\n-    public Collection<ConfigCenterConfig> getConfigCenters() {\n-        return getConfigs(getTagName(ConfigCenterConfig.class));\n-    }\n-\n-    // MetadataReportConfig correlative methods\n-\n-    public void addMetadataReport(MetadataReportConfig metadataReportConfig) {\n-        addConfig(metadataReportConfig);\n-    }\n-\n-    public void addMetadataReports(Iterable<MetadataReportConfig> metadataReportConfigs) {\n-        metadataReportConfigs.forEach(this::addMetadataReport);\n-    }\n-\n-    public Collection<MetadataReportConfig> getMetadataConfigs() {\n-        return getConfigs(getTagName(MetadataReportConfig.class));\n-    }\n-\n-    public Collection<MetadataReportConfig> getDefaultMetadataConfigs() {\n-        Collection<MetadataReportConfig> defaults = getDefaultConfigs(getConfigsMap(getTagName(MetadataReportConfig.class)));\n-        if (CollectionUtils.isEmpty(defaults)) {\n-            return getMetadataConfigs();\n-        }\n-        return defaults;\n-    }\n-\n-    // MetadataReportConfig correlative methods\n-\n-    public void addProvider(ProviderConfig providerConfig) {\n-        addConfig(providerConfig);\n-    }\n-\n-    public void addProviders(Iterable<ProviderConfig> providerConfigs) {\n-        providerConfigs.forEach(this::addProvider);\n-    }\n-\n-    public Optional<ProviderConfig> getProvider(String id) {\n-        return ofNullable(getConfig(getTagName(ProviderConfig.class), id));\n-    }\n-\n-    /**\n-     * Only allows one default ProviderConfig\n-     */\n-    public Optional<ProviderConfig> getDefaultProvider() {\n-        List<ProviderConfig> providerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ProviderConfig.class)));\n-        if (CollectionUtils.isNotEmpty(providerConfigs)) {\n-            return Optional.of(providerConfigs.get(0));\n-        }\n-        return Optional.empty();\n-    }\n-\n-    public Collection<ProviderConfig> getProviders() {\n-        return getConfigs(getTagName(ProviderConfig.class));\n-    }\n-\n-    // ConsumerConfig correlative methods\n-\n-    public void addConsumer(ConsumerConfig consumerConfig) {\n-        addConfig(consumerConfig);\n-    }\n-\n-    public void addConsumers(Iterable<ConsumerConfig> consumerConfigs) {\n-        consumerConfigs.forEach(this::addConsumer);\n-    }\n-\n-    public Optional<ConsumerConfig> getConsumer(String id) {\n-        return ofNullable(getConfig(getTagName(ConsumerConfig.class), id));\n-    }\n-\n-    /**\n-     * Only allows one default ConsumerConfig\n-     */\n-    public Optional<ConsumerConfig> getDefaultConsumer() {\n-        List<ConsumerConfig> consumerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ConsumerConfig.class)));\n-        if (CollectionUtils.isNotEmpty(consumerConfigs)) {\n-            return Optional.of(consumerConfigs.get(0));\n-        }\n-        return Optional.empty();\n-    }\n-\n-    public Collection<ConsumerConfig> getConsumers() {\n-        return getConfigs(getTagName(ConsumerConfig.class));\n-    }\n-\n-    // ProtocolConfig correlative methods\n-\n-    public void addProtocol(ProtocolConfig protocolConfig) {\n-        addConfig(protocolConfig);\n-    }\n-\n-    public void addProtocols(Iterable<ProtocolConfig> protocolConfigs) {\n-        if (protocolConfigs != null) {\n-            protocolConfigs.forEach(this::addProtocol);\n-        }\n-    }\n-\n-    public Optional<ProtocolConfig> getProtocol(String id) {\n-        return ofNullable(getConfig(getTagName(ProtocolConfig.class), id));\n-    }\n-\n-    public List<ProtocolConfig> getDefaultProtocols() {\n-        return getDefaultConfigs(getConfigsMap(getTagName(ProtocolConfig.class)));\n-    }\n-\n-    public Collection<ProtocolConfig> getProtocols() {\n-        return getConfigs(getTagName(ProtocolConfig.class));\n-    }\n-\n-    public Set<String> getProtocolIds() {\n-        Set<String> protocolIds = new HashSet<>();\n-        protocolIds.addAll(getSubProperties(ApplicationModel.getEnvironment()\n-                .getExternalConfigurationMap(), PROTOCOLS_SUFFIX));\n-        protocolIds.addAll(getSubProperties(ApplicationModel.getEnvironment()\n-                .getAppExternalConfigurationMap(), PROTOCOLS_SUFFIX));\n-\n-        return unmodifiableSet(protocolIds);\n-    }\n-\n-\n-    // RegistryConfig correlative methods\n-\n-    public void addRegistry(RegistryConfig registryConfig) {\n-        addConfig(registryConfig);\n-    }\n-\n-    public void addRegistries(Iterable<RegistryConfig> registryConfigs) {\n-        if (registryConfigs != null) {\n-            registryConfigs.forEach(this::addRegistry);\n-        }\n-    }\n-\n-    public Optional<RegistryConfig> getRegistry(String id) {\n-        return ofNullable(getConfig(getTagName(RegistryConfig.class), id));\n-    }\n-\n-    public List<RegistryConfig> getDefaultRegistries() {\n-        return getDefaultConfigs(getConfigsMap(getTagName(RegistryConfig.class)));\n-    }\n-\n-    public Collection<RegistryConfig> getRegistries() {\n-        return getConfigs(getTagName(RegistryConfig.class));\n-    }\n-\n-    public Set<String> getRegistryIds() {\n-        Set<String> registryIds = new HashSet<>();\n-        registryIds.addAll(getSubProperties(ApplicationModel.getEnvironment().getExternalConfigurationMap(),\n-                REGISTRIES_SUFFIX));\n-        registryIds.addAll(getSubProperties(ApplicationModel.getEnvironment().getAppExternalConfigurationMap(),\n-                REGISTRIES_SUFFIX));\n-\n-        return unmodifiableSet(registryIds);\n-    }\n-\n-    // ServiceConfig correlative methods\n-\n-    public void addService(ServiceConfigBase<?> serviceConfig) {\n-        addConfig(serviceConfig);\n-    }\n-\n-    public void addServices(Iterable<ServiceConfigBase<?>> serviceConfigs) {\n-        serviceConfigs.forEach(this::addService);\n-    }\n-\n-    public Collection<ServiceConfigBase> getServices() {\n-        return getConfigs(getTagName(ServiceConfigBase.class));\n-    }\n-\n-    public <T> ServiceConfigBase<T> getService(String id) {\n-        return getConfig(getTagName(ServiceConfigBase.class), id);\n-    }\n-\n-    // ReferenceConfig correlative methods\n-\n-    public void addReference(ReferenceConfigBase<?> referenceConfig) {\n-        addConfig(referenceConfig);\n-    }\n-\n-    public void addReferences(Iterable<ReferenceConfigBase<?>> referenceConfigs) {\n-        referenceConfigs.forEach(this::addReference);\n-    }\n-\n-    public Collection<ReferenceConfigBase<?>> getReferences() {\n-        return getConfigs(getTagName(ReferenceConfigBase.class));\n-    }\n-\n-    public <T> ReferenceConfigBase<T> getReference(String id) {\n-        return getConfig(getTagName(ReferenceConfigBase.class), id);\n-    }\n-\n-    protected static Set<String> getSubProperties(Map<String, String> properties, String prefix) {\n-        return properties.keySet().stream().filter(k -> k.contains(prefix)).map(k -> {\n-            k = k.substring(prefix.length());\n-            return k.substring(0, k.indexOf(\".\"));\n-        }).collect(Collectors.toSet());\n-    }\n-\n-    public void refreshAll() {\n-        write(() -> {\n-            // refresh all configs here,\n-            getApplication().ifPresent(ApplicationConfig::refresh);\n-            getMonitor().ifPresent(MonitorConfig::refresh);\n-            getModule().ifPresent(ModuleConfig::refresh);\n-\n-            getProtocols().forEach(ProtocolConfig::refresh);\n-            getRegistries().forEach(RegistryConfig::refresh);\n-            getProviders().forEach(ProviderConfig::refresh);\n-            getConsumers().forEach(ConsumerConfig::refresh);\n-        });\n-\n-    }\n-\n-    /**\n-     * In some scenario,  we may nee to add and remove ServiceConfig or ReferenceConfig dynamically.\n-     *\n-     * @param config the config instance to remove.\n-     */\n-    public void removeConfig(AbstractConfig config) {\n-        if (config == null) {\n-            return;\n-        }\n-\n-        Map<String, AbstractConfig> configs = configsCache.get(getTagName(config.getClass()));\n-        if (CollectionUtils.isNotEmptyMap(configs)) {\n-            configs.remove(getId(config));\n-        }\n-    }\n-\n-    public void clear() {\n-        write(this.configsCache::clear);\n-    }\n-\n-    /**\n-     * @throws IllegalStateException\n-     * @since 2.7.8\n-     */\n-    @Override\n-    public void destroy() throws IllegalStateException {\n-        clear();\n-    }\n-\n-    /**\n-     * Add the dubbo {@link AbstractConfig config}\n-     *\n-     * @param config the dubbo {@link AbstractConfig config}\n-     */\n-    public void addConfig(AbstractConfig config) {\n-        addConfig(config, false);\n-    }\n-\n-    protected void addConfig(AbstractConfig config, boolean unique) {\n-        if (config == null) {\n-            return;\n-        }\n-        write(() -> {\n-            Map<String, AbstractConfig> configsMap = configsCache.computeIfAbsent(getTagName(config.getClass()), type -> newMap());\n-            addIfAbsent(config, configsMap, unique);\n-        });\n-    }\n-\n-    protected <C extends AbstractConfig> Map<String, C> getConfigsMap(String configType) {\n-        return (Map<String, C>) read(() -> configsCache.getOrDefault(configType, emptyMap()));\n-    }\n-\n-    protected <C extends AbstractConfig> Collection<C> getConfigs(String configType) {\n-        return (Collection<C>) read(() -> getConfigsMap(configType).values());\n-    }\n-\n-    protected <C extends AbstractConfig> C getConfig(String configType, String id) {\n-        return read(() -> {\n-            Map<String, C> configsMap = (Map) configsCache.getOrDefault(configType, emptyMap());\n-            return configsMap.get(id);\n-        });\n-    }\n-\n-    protected <C extends AbstractConfig> C getConfig(String configType) throws IllegalStateException {\n-        return read(() -> {\n-            Map<String, C> configsMap = (Map) configsCache.getOrDefault(configType, emptyMap());\n-            int size = configsMap.size();\n-            if (size < 1) {\n-//                throw new IllegalStateException(\"No such \" + configType.getName() + \" is found\");\n-                return null;\n-            } else if (size > 1) {\n-                logger.warn(\"Expected single matching of \" + configType + \", but found \" + size + \" instances, will randomly pick the first one.\");\n-            }\n-\n-            return configsMap.values().iterator().next();\n-        });\n-    }\n-\n-    private <V> V write(Callable<V> callable) {\n-        V value = null;\n-        Lock writeLock = lock.writeLock();\n-        try {\n-            writeLock.lock();\n-            value = callable.call();\n-        } catch (RuntimeException e) {\n-            throw e;\n-        } catch (Throwable e) {\n-            throw new RuntimeException(e.getCause());\n-        } finally {\n-            writeLock.unlock();\n-        }\n-        return value;\n-    }\n-\n-    private void write(Runnable runnable) {\n-        write(() -> {\n-            runnable.run();\n-            return null;\n-        });\n-    }\n-\n-    private <V> V read(Callable<V> callable) {\n-        Lock readLock = lock.readLock();\n-        V value = null;\n-        try {\n-            readLock.lock();\n-            value = callable.call();\n-        } catch (Throwable e) {\n-            throw new RuntimeException(e);\n-        } finally {\n-            readLock.unlock();\n-        }\n-        return value;\n-    }\n-\n-    private static void checkDuplicate(AbstractConfig oldOne, AbstractConfig newOne) throws IllegalStateException {\n-        if (oldOne != null && !oldOne.equals(newOne)) {\n-            String configName = oldOne.getClass().getSimpleName();\n-            logger.warn(\"Duplicate Config found for \" + configName + \", you should use only one unique \" + configName + \" for one application.\");\n-        }\n-    }\n-\n-    private static Map newMap() {\n-        return new HashMap<>();\n-    }\n-\n-    static <C extends AbstractConfig> void addIfAbsent(C config, Map<String, C> configsMap, boolean unique)\n-            throws IllegalStateException {\n-\n-        if (config == null || configsMap == null) {\n-            return;\n-        }\n-\n-        if (unique) { // check duplicate\n-            configsMap.values().forEach(c -> {\n-                checkDuplicate(c, config);\n-            });\n-        }\n-\n-        String key = getId(config);\n-\n-        C existedConfig = configsMap.get(key);\n-\n-        if (existedConfig != null && !config.equals(existedConfig)) {\n-            if (logger.isWarnEnabled()) {\n-                String type = config.getClass().getSimpleName();\n-                logger.warn(String.format(\"Duplicate %s found, there already has one default %s or more than two %ss have the same id, \" +\n-                        \"you can try to give each %s a different id : %s\", type, type, type, type, config));\n-            }\n-        } else {\n-            configsMap.put(key, config);\n-        }\n-    }\n-\n-    static <C extends AbstractConfig> String getId(C config) {\n-        String id = config.getId();\n-        return isNotEmpty(id) ? id : isDefaultConfig(config) ?\n-                config.getClass().getSimpleName() + \"#\" + DEFAULT_KEY : null;\n-    }\n-\n-    static <C extends AbstractConfig> boolean isDefaultConfig(C config) {\n-        Boolean isDefault = getProperty(config, \"isDefault\");\n-        return isDefault == null || TRUE.equals(isDefault);\n-    }\n-\n-    static <C extends AbstractConfig> List<C> getDefaultConfigs(Map<String, C> configsMap) {\n-        return configsMap.values()\n-                .stream()\n-                .filter(ConfigManager::isDefaultConfig)\n-                .collect(Collectors.toList());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.context;\r\n+\r\n+import org.apache.dubbo.common.context.FrameworkExt;\r\n+import org.apache.dubbo.common.context.LifecycleAdapter;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.ServiceConfigBase;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReadWriteLock;\r\n+import java.util.concurrent.locks.ReentrantReadWriteLock;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.lang.Boolean.TRUE;\r\n+import static java.util.Collections.emptyMap;\r\n+import static java.util.Collections.unmodifiableSet;\r\n+import static java.util.Optional.ofNullable;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.getProperty;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isNotEmpty;\r\n+import static org.apache.dubbo.config.AbstractConfig.getTagName;\r\n+import static org.apache.dubbo.config.Constants.PROTOCOLS_SUFFIX;\r\n+import static org.apache.dubbo.config.Constants.REGISTRIES_SUFFIX;\r\n+\r\n+public class ConfigManager extends LifecycleAdapter implements FrameworkExt {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConfigManager.class);\r\n+\r\n+    public static final String NAME = \"config\";\r\n+\r\n+    private final ReadWriteLock lock = new ReentrantReadWriteLock();\r\n+\r\n+    final Map<String, Map<String, AbstractConfig>> configsCache = newMap();\r\n+\r\n+    public ConfigManager() {\r\n+    }\r\n+\r\n+    // ApplicationConfig correlative methods\r\n+\r\n+    public void setApplication(ApplicationConfig application) {\r\n+        addConfig(application, true);\r\n+    }\r\n+\r\n+    public Optional<ApplicationConfig> getApplication() {\r\n+        return ofNullable(getConfig(getTagName(ApplicationConfig.class)));\r\n+    }\r\n+\r\n+    public ApplicationConfig getApplicationOrElseThrow() {\r\n+        return getApplication().orElseThrow(() -> new IllegalStateException(\"There's no ApplicationConfig specified.\"));\r\n+    }\r\n+\r\n+    // MonitorConfig correlative methods\r\n+\r\n+    public void setMonitor(MonitorConfig monitor) {\r\n+        addConfig(monitor, true);\r\n+    }\r\n+\r\n+    public Optional<MonitorConfig> getMonitor() {\r\n+        return ofNullable(getConfig(getTagName(MonitorConfig.class)));\r\n+    }\r\n+\r\n+    // ModuleConfig correlative methods\r\n+\r\n+    public void setModule(ModuleConfig module) {\r\n+        addConfig(module, true);\r\n+    }\r\n+\r\n+    public Optional<ModuleConfig> getModule() {\r\n+        return ofNullable(getConfig(getTagName(ModuleConfig.class)));\r\n+    }\r\n+\r\n+    public void setMetrics(MetricsConfig metrics) {\r\n+        addConfig(metrics, true);\r\n+    }\r\n+\r\n+    public Optional<MetricsConfig> getMetrics() {\r\n+        return ofNullable(getConfig(getTagName(MetricsConfig.class)));\r\n+    }\r\n+\r\n+    public void setSsl(SslConfig sslConfig) {\r\n+        addConfig(sslConfig, true);\r\n+    }\r\n+\r\n+    public Optional<SslConfig> getSsl() {\r\n+        return ofNullable(getConfig(getTagName(SslConfig.class)));\r\n+    }\r\n+\r\n+    // ConfigCenterConfig correlative methods\r\n+\r\n+    public void addConfigCenter(ConfigCenterConfig configCenter) {\r\n+        addConfig(configCenter);\r\n+    }\r\n+\r\n+    public void addConfigCenters(Iterable<ConfigCenterConfig> configCenters) {\r\n+        configCenters.forEach(this::addConfigCenter);\r\n+    }\r\n+\r\n+    public Optional<Collection<ConfigCenterConfig>> getDefaultConfigCenter() {\r\n+        Collection<ConfigCenterConfig> defaults = getDefaultConfigs(getConfigsMap(getTagName(ConfigCenterConfig.class)));\r\n+        if (CollectionUtils.isEmpty(defaults)) {\r\n+            defaults = getConfigCenters();\r\n+        }\r\n+        return Optional.ofNullable(defaults);\r\n+    }\r\n+\r\n+    public ConfigCenterConfig getConfigCenter(String id) {\r\n+        return getConfig(getTagName(ConfigCenterConfig.class), id);\r\n+    }\r\n+\r\n+    public Collection<ConfigCenterConfig> getConfigCenters() {\r\n+        return getConfigs(getTagName(ConfigCenterConfig.class));\r\n+    }\r\n+\r\n+    // MetadataReportConfig correlative methods\r\n+\r\n+    public void addMetadataReport(MetadataReportConfig metadataReportConfig) {\r\n+        addConfig(metadataReportConfig);\r\n+    }\r\n+\r\n+    public void addMetadataReports(Iterable<MetadataReportConfig> metadataReportConfigs) {\r\n+        metadataReportConfigs.forEach(this::addMetadataReport);\r\n+    }\r\n+\r\n+    public Collection<MetadataReportConfig> getMetadataConfigs() {\r\n+        return getConfigs(getTagName(MetadataReportConfig.class));\r\n+    }\r\n+\r\n+    public Collection<MetadataReportConfig> getDefaultMetadataConfigs() {\r\n+        Collection<MetadataReportConfig> defaults = getDefaultConfigs(getConfigsMap(getTagName(MetadataReportConfig.class)));\r\n+        if (CollectionUtils.isEmpty(defaults)) {\r\n+            return getMetadataConfigs();\r\n+        }\r\n+        return defaults;\r\n+    }\r\n+\r\n+    // MetadataReportConfig correlative methods\r\n+\r\n+    public void addProvider(ProviderConfig providerConfig) {\r\n+        addConfig(providerConfig);\r\n+    }\r\n+\r\n+    public void addProviders(Iterable<ProviderConfig> providerConfigs) {\r\n+        providerConfigs.forEach(this::addProvider);\r\n+    }\r\n+\r\n+    public Optional<ProviderConfig> getProvider(String id) {\r\n+        return ofNullable(getConfig(getTagName(ProviderConfig.class), id));\r\n+    }\r\n+\r\n+    /**\r\n+     * Only allows one default ProviderConfig\r\n+     */\r\n+    public Optional<ProviderConfig> getDefaultProvider() {\r\n+        List<ProviderConfig> providerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ProviderConfig.class)));\r\n+        if (CollectionUtils.isNotEmpty(providerConfigs)) {\r\n+            return Optional.of(providerConfigs.get(0));\r\n+        }\r\n+        return Optional.empty();\r\n+    }\r\n+\r\n+    public Collection<ProviderConfig> getProviders() {\r\n+        return getConfigs(getTagName(ProviderConfig.class));\r\n+    }\r\n+\r\n+    // ConsumerConfig correlative methods\r\n+\r\n+    public void addConsumer(ConsumerConfig consumerConfig) {\r\n+        addConfig(consumerConfig);\r\n+    }\r\n+\r\n+    public void addConsumers(Iterable<ConsumerConfig> consumerConfigs) {\r\n+        consumerConfigs.forEach(this::addConsumer);\r\n+    }\r\n+\r\n+    public Optional<ConsumerConfig> getConsumer(String id) {\r\n+        return ofNullable(getConfig(getTagName(ConsumerConfig.class), id));\r\n+    }\r\n+\r\n+    /**\r\n+     * Only allows one default ConsumerConfig\r\n+     */\r\n+    public Optional<ConsumerConfig> getDefaultConsumer() {\r\n+        List<ConsumerConfig> consumerConfigs = getDefaultConfigs(getConfigsMap(getTagName(ConsumerConfig.class)));\r\n+        if (CollectionUtils.isNotEmpty(consumerConfigs)) {\r\n+            return Optional.of(consumerConfigs.get(0));\r\n+        }\r\n+        return Optional.empty();\r\n+    }\r\n+\r\n+    public Collection<ConsumerConfig> getConsumers() {\r\n+        return getConfigs(getTagName(ConsumerConfig.class));\r\n+    }\r\n+\r\n+    // ProtocolConfig correlative methods\r\n+\r\n+    public void addProtocol(ProtocolConfig protocolConfig) {\r\n+        addConfig(protocolConfig);\r\n+    }\r\n+\r\n+    public void addProtocols(Iterable<ProtocolConfig> protocolConfigs) {\r\n+        if (protocolConfigs != null) {\r\n+            protocolConfigs.forEach(this::addProtocol);\r\n+        }\r\n+    }\r\n+\r\n+    public Optional<ProtocolConfig> getProtocol(String id) {\r\n+        return ofNullable(getConfig(getTagName(ProtocolConfig.class), id));\r\n+    }\r\n+\r\n+    public List<ProtocolConfig> getDefaultProtocols() {\r\n+        return getDefaultConfigs(getConfigsMap(getTagName(ProtocolConfig.class)));\r\n+    }\r\n+\r\n+    public Collection<ProtocolConfig> getProtocols() {\r\n+        return getConfigs(getTagName(ProtocolConfig.class));\r\n+    }\r\n+\r\n+    public Set<String> getProtocolIds() {\r\n+        Set<String> protocolIds = new HashSet<>();\r\n+        protocolIds.addAll(getSubProperties(ApplicationModel.getEnvironment()\r\n+                .getExternalConfigurationMap(), PROTOCOLS_SUFFIX));\r\n+        protocolIds.addAll(getSubProperties(ApplicationModel.getEnvironment()\r\n+                .getAppExternalConfigurationMap(), PROTOCOLS_SUFFIX));\r\n+\r\n+        return unmodifiableSet(protocolIds);\r\n+    }\r\n+\r\n+\r\n+    // RegistryConfig correlative methods\r\n+\r\n+    public void addRegistry(RegistryConfig registryConfig) {\r\n+        addConfig(registryConfig);\r\n+    }\r\n+\r\n+    public void addRegistries(Iterable<RegistryConfig> registryConfigs) {\r\n+        if (registryConfigs != null) {\r\n+            registryConfigs.forEach(this::addRegistry);\r\n+        }\r\n+    }\r\n+\r\n+    public Optional<RegistryConfig> getRegistry(String id) {\r\n+        return ofNullable(getConfig(getTagName(RegistryConfig.class), id));\r\n+    }\r\n+\r\n+    public List<RegistryConfig> getDefaultRegistries() {\r\n+        return getDefaultConfigs(getConfigsMap(getTagName(RegistryConfig.class)));\r\n+    }\r\n+\r\n+    public Collection<RegistryConfig> getRegistries() {\r\n+        return getConfigs(getTagName(RegistryConfig.class));\r\n+    }\r\n+\r\n+    public Set<String> getRegistryIds() {\r\n+        Set<String> registryIds = new HashSet<>();\r\n+        registryIds.addAll(getSubProperties(ApplicationModel.getEnvironment().getExternalConfigurationMap(),\r\n+                REGISTRIES_SUFFIX));\r\n+        registryIds.addAll(getSubProperties(ApplicationModel.getEnvironment().getAppExternalConfigurationMap(),\r\n+                REGISTRIES_SUFFIX));\r\n+\r\n+        return unmodifiableSet(registryIds);\r\n+    }\r\n+\r\n+    // ServiceConfig correlative methods\r\n+\r\n+    public void addService(ServiceConfigBase<?> serviceConfig) {\r\n+        addConfig(serviceConfig);\r\n+    }\r\n+\r\n+    public void addServices(Iterable<ServiceConfigBase<?>> serviceConfigs) {\r\n+        serviceConfigs.forEach(this::addService);\r\n+    }\r\n+\r\n+    public Collection<ServiceConfigBase> getServices() {\r\n+        return getConfigs(getTagName(ServiceConfigBase.class));\r\n+    }\r\n+\r\n+    public <T> ServiceConfigBase<T> getService(String id) {\r\n+        return getConfig(getTagName(ServiceConfigBase.class), id);\r\n+    }\r\n+\r\n+    // ReferenceConfig correlative methods\r\n+\r\n+    public void addReference(ReferenceConfigBase<?> referenceConfig) {\r\n+        addConfig(referenceConfig);\r\n+    }\r\n+\r\n+    public void addReferences(Iterable<ReferenceConfigBase<?>> referenceConfigs) {\r\n+        referenceConfigs.forEach(this::addReference);\r\n+    }\r\n+\r\n+    public Collection<ReferenceConfigBase<?>> getReferences() {\r\n+        return getConfigs(getTagName(ReferenceConfigBase.class));\r\n+    }\r\n+\r\n+    public <T> ReferenceConfigBase<T> getReference(String id) {\r\n+        return getConfig(getTagName(ReferenceConfigBase.class), id);\r\n+    }\r\n+\r\n+    protected static Set<String> getSubProperties(Map<String, String> properties, String prefix) {\r\n+        return properties.keySet().stream().filter(k -> k.contains(prefix)).map(k -> {\r\n+            k = k.substring(prefix.length());\r\n+            return k.substring(0, k.indexOf(\".\"));\r\n+        }).collect(Collectors.toSet());\r\n+    }\r\n+\r\n+    public void refreshAll() {\r\n+        write(() -> {\r\n+            // refresh all configs here,\r\n+            getApplication().ifPresent(ApplicationConfig::refresh);\r\n+            getMonitor().ifPresent(MonitorConfig::refresh);\r\n+            getModule().ifPresent(ModuleConfig::refresh);\r\n+\r\n+            getProtocols().forEach(ProtocolConfig::refresh);\r\n+            getRegistries().forEach(RegistryConfig::refresh);\r\n+            getProviders().forEach(ProviderConfig::refresh);\r\n+            getConsumers().forEach(ConsumerConfig::refresh);\r\n+        });\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * In some scenario,  we may nee to add and remove ServiceConfig or ReferenceConfig dynamically.\r\n+     *\r\n+     * @param config the config instance to remove.\r\n+     */\r\n+    public void removeConfig(AbstractConfig config) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, AbstractConfig> configs = configsCache.get(getTagName(config.getClass()));\r\n+        if (CollectionUtils.isNotEmptyMap(configs)) {\r\n+            configs.remove(getId(config));\r\n+        }\r\n+    }\r\n+\r\n+    public void clear() {\r\n+        write(this.configsCache::clear);\r\n+    }\r\n+\r\n+    /**\r\n+     * @throws IllegalStateException\r\n+     * @since 2.7.8\r\n+     */\r\n+    @Override\r\n+    public void destroy() throws IllegalStateException {\r\n+        clear();\r\n+    }\r\n+\r\n+    /**\r\n+     * Add the dubbo {@link AbstractConfig config}\r\n+     *\r\n+     * @param config the dubbo {@link AbstractConfig config}\r\n+     */\r\n+    public void addConfig(AbstractConfig config) {\r\n+        addConfig(config, false);\r\n+    }\r\n+\r\n+    protected void addConfig(AbstractConfig config, boolean unique) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+        write(() -> {\r\n+            Map<String, AbstractConfig> configsMap = configsCache.computeIfAbsent(getTagName(config.getClass()), type -> newMap());\r\n+            addIfAbsent(config, configsMap, unique);\r\n+        });\r\n+    }\r\n+\r\n+    protected <C extends AbstractConfig> Map<String, C> getConfigsMap(String configType) {\r\n+        return (Map<String, C>) read(() -> configsCache.getOrDefault(configType, emptyMap()));\r\n+    }\r\n+\r\n+    protected <C extends AbstractConfig> Collection<C> getConfigs(String configType) {\r\n+        return (Collection<C>) read(() -> getConfigsMap(configType).values());\r\n+    }\r\n+\r\n+    protected <C extends AbstractConfig> C getConfig(String configType, String id) {\r\n+        return read(() -> {\r\n+            Map<String, C> configsMap = (Map) configsCache.getOrDefault(configType, emptyMap());\r\n+            return configsMap.get(id);\r\n+        });\r\n+    }\r\n+\r\n+    protected <C extends AbstractConfig> C getConfig(String configType) throws IllegalStateException {\r\n+        return read(() -> {\r\n+            Map<String, C> configsMap = (Map) configsCache.getOrDefault(configType, emptyMap());\r\n+            int size = configsMap.size();\r\n+            if (size < 1) {\r\n+//                throw new IllegalStateException(\"No such \" + configType.getName() + \" is found\");\r\n+                return null;\r\n+            } else if (size > 1) {\r\n+                logger.warn(\"Expected single matching of \" + configType + \", but found \" + size + \" instances, will randomly pick the first one.\");\r\n+            }\r\n+\r\n+            return configsMap.values().iterator().next();\r\n+        });\r\n+    }\r\n+\r\n+    private <V> V write(Callable<V> callable) {\r\n+        V value = null;\r\n+        Lock writeLock = lock.writeLock();\r\n+        try {\r\n+            writeLock.lock();\r\n+            value = callable.call();\r\n+        } catch (RuntimeException e) {\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw new RuntimeException(e.getCause());\r\n+        } finally {\r\n+            writeLock.unlock();\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    private void write(Runnable runnable) {\r\n+        write(() -> {\r\n+            runnable.run();\r\n+            return null;\r\n+        });\r\n+    }\r\n+\r\n+    private <V> V read(Callable<V> callable) {\r\n+        Lock readLock = lock.readLock();\r\n+        V value = null;\r\n+        try {\r\n+            readLock.lock();\r\n+            value = callable.call();\r\n+        } catch (Throwable e) {\r\n+            throw new RuntimeException(e);\r\n+        } finally {\r\n+            readLock.unlock();\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    private static void checkDuplicate(AbstractConfig oldOne, AbstractConfig newOne) throws IllegalStateException {\r\n+        if (oldOne != null && !oldOne.equals(newOne)) {\r\n+            String configName = oldOne.getClass().getSimpleName();\r\n+            logger.warn(\"Duplicate Config found for \" + configName + \", you should use only one unique \" + configName + \" for one application.\");\r\n+        }\r\n+    }\r\n+\r\n+    private static Map newMap() {\r\n+        return new HashMap<>();\r\n+    }\r\n+\r\n+    static <C extends AbstractConfig> void addIfAbsent(C config, Map<String, C> configsMap, boolean unique)\r\n+            throws IllegalStateException {\r\n+\r\n+        if (config == null || configsMap == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (unique) { // check duplicate\r\n+            configsMap.values().forEach(c -> {\r\n+                checkDuplicate(c, config);\r\n+            });\r\n+        }\r\n+\r\n+        String key = getId(config);\r\n+\r\n+        C existedConfig = configsMap.get(key);\r\n+\r\n+        if (existedConfig != null && !config.equals(existedConfig)) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                String type = config.getClass().getSimpleName();\r\n+                logger.warn(String.format(\"Duplicate %s found, there already has one default %s or more than two %ss have the same id, \" +\r\n+                        \"you can try to give each %s a different id : %s\", type, type, type, type, config));\r\n+            }\r\n+        } else {\r\n+            configsMap.put(key, config);\r\n+        }\r\n+    }\r\n+\r\n+    static <C extends AbstractConfig> String getId(C config) {\r\n+        String id = config.getId();\r\n+        return isNotEmpty(id) ? id : isDefaultConfig(config) ?\r\n+                config.getClass().getSimpleName() + \"#\" + DEFAULT_KEY : null;\r\n+    }\r\n+\r\n+    static <C extends AbstractConfig> boolean isDefaultConfig(C config) {\r\n+        Boolean isDefault = getProperty(config, \"isDefault\");\r\n+        return isDefault == null || TRUE.equals(isDefault);\r\n+    }\r\n+\r\n+    static <C extends AbstractConfig> List<C> getDefaultConfigs(Map<String, C> configsMap) {\r\n+        return configsMap.values()\r\n+                .stream()\r\n+                .filter(ConfigManager::isDefaultConfig)\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/DubboServiceDestroyedEvent.java", "source2": "org/apache/dubbo/config/event/DubboServiceDestroyedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * An {@link Event Dubbo event} when the Dubbo service is about to be destroyed.\n- *\n- * @see Event\n- * @since 2.7.5\n- */\n-public class DubboServiceDestroyedEvent extends Event {\n-\n-    public DubboServiceDestroyedEvent(Object source) {\n-        super(source);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * An {@link Event Dubbo event} when the Dubbo service is about to be destroyed.\r\n+ *\r\n+ * @see Event\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboServiceDestroyedEvent extends Event {\r\n+\r\n+    public DubboServiceDestroyedEvent(Object source) {\r\n+        super(source);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/DubboShutdownHookRegisteredEvent.java", "source2": "org/apache/dubbo/config/event/DubboShutdownHookRegisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.DubboShutdownHook;\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * An event raised when the {@link DubboShutdownHook} {@link Runtime#addShutdownHook(Thread) registered} on\n- * {@link ApplicationShutdownHooks JVM ShutdownHooks}\n- *\n- * @see DubboShutdownHook\n- * @see ApplicationShutdownHooks\n- * @since 2.7.5\n- */\n-public class DubboShutdownHookRegisteredEvent extends Event {\n-\n-    /**\n-     * Constructs a prototypical Event.\n-     *\n-     * @param dubboShutdownHook The object on which the Event initially occurred.\n-     * @throws IllegalArgumentException if source is null.\n-     */\n-    public DubboShutdownHookRegisteredEvent(DubboShutdownHook dubboShutdownHook) {\n-        super(dubboShutdownHook);\n-    }\n-\n-    public DubboShutdownHook getDubboShutdownHook() {\n-        return (DubboShutdownHook) getSource();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.DubboShutdownHook;\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * An event raised when the {@link DubboShutdownHook} {@link Runtime#addShutdownHook(Thread) registered} on\r\n+ * {@link ApplicationShutdownHooks JVM ShutdownHooks}\r\n+ *\r\n+ * @see DubboShutdownHook\r\n+ * @see ApplicationShutdownHooks\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboShutdownHookRegisteredEvent extends Event {\r\n+\r\n+    /**\r\n+     * Constructs a prototypical Event.\r\n+     *\r\n+     * @param dubboShutdownHook The object on which the Event initially occurred.\r\n+     * @throws IllegalArgumentException if source is null.\r\n+     */\r\n+    public DubboShutdownHookRegisteredEvent(DubboShutdownHook dubboShutdownHook) {\r\n+        super(dubboShutdownHook);\r\n+    }\r\n+\r\n+    public DubboShutdownHook getDubboShutdownHook() {\r\n+        return (DubboShutdownHook) getSource();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/DubboShutdownHookUnregisteredEvent.java", "source2": "org/apache/dubbo/config/event/DubboShutdownHookUnregisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,45 +1,45 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.DubboShutdownHook;\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * An event raised when the {@link DubboShutdownHook} {@link Runtime#removeShutdownHook(Thread) unregistered} on\n- * {@link ApplicationShutdownHooks JVM ShutdownHooks}\n- *\n- * @see DubboShutdownHook\n- * @see ApplicationShutdownHooks\n- * @since 2.7.5\n- */\n-public class DubboShutdownHookUnregisteredEvent extends Event {\n-\n-    /**\n-     * Constructs a prototypical Event.\n-     *\n-     * @param dubboShutdownHook The object on which the Event initially occurred.\n-     * @throws IllegalArgumentException if source is null.\n-     */\n-    public DubboShutdownHookUnregisteredEvent(DubboShutdownHook dubboShutdownHook) {\n-        super(dubboShutdownHook);\n-    }\n-\n-    public DubboShutdownHook getDubboShutdownHook() {\n-        return (DubboShutdownHook) getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.DubboShutdownHook;\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * An event raised when the {@link DubboShutdownHook} {@link Runtime#removeShutdownHook(Thread) unregistered} on\r\n+ * {@link ApplicationShutdownHooks JVM ShutdownHooks}\r\n+ *\r\n+ * @see DubboShutdownHook\r\n+ * @see ApplicationShutdownHooks\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboShutdownHookUnregisteredEvent extends Event {\r\n+\r\n+    /**\r\n+     * Constructs a prototypical Event.\r\n+     *\r\n+     * @param dubboShutdownHook The object on which the Event initially occurred.\r\n+     * @throws IllegalArgumentException if source is null.\r\n+     */\r\n+    public DubboShutdownHookUnregisteredEvent(DubboShutdownHook dubboShutdownHook) {\r\n+        super(dubboShutdownHook);\r\n+    }\r\n+\r\n+    public DubboShutdownHook getDubboShutdownHook() {\r\n+        return (DubboShutdownHook) getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/ReferenceConfigDestroyedEvent.java", "source2": "org/apache/dubbo/config/event/ReferenceConfigDestroyedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * The {@link ReferenceConfig Dubbo service ReferenceConfig} destroyed {@link Event event}\n- *\n- * @see Reference\n- * @see ReferenceConfig#destroy()\n- * @see Event\n- * @since 2.7.5\n- */\n-public class ReferenceConfigDestroyedEvent extends Event {\n-\n-    public ReferenceConfigDestroyedEvent(ReferenceConfig referenceConfig) {\n-        super(referenceConfig);\n-    }\n-\n-    public ReferenceConfig getReferenceConfig() {\n-        return (ReferenceConfig) getSource();\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * The {@link ReferenceConfig Dubbo service ReferenceConfig} destroyed {@link Event event}\r\n+ *\r\n+ * @see Reference\r\n+ * @see ReferenceConfig#destroy()\r\n+ * @see Event\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ReferenceConfigDestroyedEvent extends Event {\r\n+\r\n+    public ReferenceConfigDestroyedEvent(ReferenceConfig referenceConfig) {\r\n+        super(referenceConfig);\r\n+    }\r\n+\r\n+    public ReferenceConfig getReferenceConfig() {\r\n+        return (ReferenceConfig) getSource();\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/config/event/ReferenceConfigInitializedEvent.java", "source2": "org/apache/dubbo/config/event/ReferenceConfigInitializedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-/**\n- * The {@link ReferenceConfig Dubbo service ReferenceConfig} initialized {@link Event event}\n- *\n- * @see Reference\n- * @see ReferenceConfig#get()\n- * @see Event\n- * @since 2.7.5\n- */\n-public class ReferenceConfigInitializedEvent extends Event {\n-\n-    private final Invoker<?> invoker;\n-\n-    public ReferenceConfigInitializedEvent(ReferenceConfig referenceConfig, Invoker<?> invoker) {\n-        super(referenceConfig);\n-        this.invoker = invoker;\n-    }\n-\n-    public ReferenceConfig getReferenceConfig() {\n-        return (ReferenceConfig) getSource();\n-    }\n-\n-    public Invoker<?> getInvoker() {\n-        return invoker;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+/**\r\n+ * The {@link ReferenceConfig Dubbo service ReferenceConfig} initialized {@link Event event}\r\n+ *\r\n+ * @see Reference\r\n+ * @see ReferenceConfig#get()\r\n+ * @see Event\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ReferenceConfigInitializedEvent extends Event {\r\n+\r\n+    private final Invoker<?> invoker;\r\n+\r\n+    public ReferenceConfigInitializedEvent(ReferenceConfig referenceConfig, Invoker<?> invoker) {\r\n+        super(referenceConfig);\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    public ReferenceConfig getReferenceConfig() {\r\n+        return (ReferenceConfig) getSource();\r\n+    }\r\n+\r\n+    public Invoker<?> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/ServiceConfigExportedEvent.java", "source2": "org/apache/dubbo/config/event/ServiceConfigExportedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * {@link ServiceConfig} event post-{@link ServiceConfig#export() export}\n- *\n- * @since 2.7.5\n- */\n-public class ServiceConfigExportedEvent extends Event {\n-\n-    public ServiceConfigExportedEvent(ServiceConfig source) {\n-        super(source);\n-    }\n-\n-    public ServiceConfig getServiceConfig() {\n-        return (ServiceConfig) getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * {@link ServiceConfig} event post-{@link ServiceConfig#export() export}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceConfigExportedEvent extends Event {\r\n+\r\n+    public ServiceConfigExportedEvent(ServiceConfig source) {\r\n+        super(source);\r\n+    }\r\n+\r\n+    public ServiceConfig getServiceConfig() {\r\n+        return (ServiceConfig) getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/ServiceConfigUnexportedEvent.java", "source2": "org/apache/dubbo/config/event/ServiceConfigUnexportedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event;\n-\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.event.Event;\n-\n-/**\n- * {@link ServiceConfig} event post-{@link ServiceConfig#unexport() unexport}\n- *\n- * @since 2.7.5\n- */\n-public class ServiceConfigUnexportedEvent extends Event {\n-\n-    public ServiceConfigUnexportedEvent(ServiceConfig source) {\n-        super(source);\n-    }\n-\n-    public ServiceConfig getServiceConfig() {\n-        return (ServiceConfig) getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event;\r\n+\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.event.Event;\r\n+\r\n+/**\r\n+ * {@link ServiceConfig} event post-{@link ServiceConfig#unexport() unexport}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceConfigUnexportedEvent extends Event {\r\n+\r\n+    public ServiceConfigUnexportedEvent(ServiceConfig source) {\r\n+        super(source);\r\n+    }\r\n+\r\n+    public ServiceConfig getServiceConfig() {\r\n+        return (ServiceConfig) getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/event/listener/LoggingEventListener.java", "source2": "org/apache/dubbo/config/event/listener/LoggingEventListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.event.listener;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.event.DubboServiceDestroyedEvent;\n-import org.apache.dubbo.config.event.ServiceConfigExportedEvent;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.GenericEventListener;\n-\n-import static java.lang.String.format;\n-\n-/**\n- * A listener for logging the {@link Event Dubbo event}\n- *\n- * @see ServiceConfigExportedEvent\n- * @since 2.7.5\n- */\n-public class LoggingEventListener extends GenericEventListener {\n-\n-    private static final String NAME = \"Dubbo Service\";\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    public void onEvent(DubboServiceDestroyedEvent event) {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(NAME + \" has been destroyed.\");\n-        }\n-    }\n-\n-    private void debug(String pattern, Object... args) {\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(format(pattern, args));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.event.listener;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.event.DubboServiceDestroyedEvent;\r\n+import org.apache.dubbo.config.event.ServiceConfigExportedEvent;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.GenericEventListener;\r\n+\r\n+import static java.lang.String.format;\r\n+\r\n+/**\r\n+ * A listener for logging the {@link Event Dubbo event}\r\n+ *\r\n+ * @see ServiceConfigExportedEvent\r\n+ * @since 2.7.5\r\n+ */\r\n+public class LoggingEventListener extends GenericEventListener {\r\n+\r\n+    private static final String NAME = \"Dubbo Service\";\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    public void onEvent(DubboServiceDestroyedEvent event) {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(NAME + \" has been destroyed.\");\r\n+        }\r\n+    }\r\n+\r\n+    private void debug(String pattern, Object... args) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(format(pattern, args));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java", "source2": "org/apache/dubbo/config/invoker/DelegateProviderMetaDataInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.invoker;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-/**\n- *\n- * A Invoker wrapper that wrap the invoker and all the metadata (ServiceConfig)\n- */\n-public class DelegateProviderMetaDataInvoker<T> implements Invoker {\n-    protected final Invoker<T> invoker;\n-    private ServiceConfig<?> metadata;\n-\n-    public DelegateProviderMetaDataInvoker(Invoker<T> invoker, ServiceConfig<?> metadata) {\n-        this.invoker = invoker;\n-        this.metadata = metadata;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return invoker.getInterface();\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return invoker.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return invoker.isAvailable();\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        return invoker.invoke(invocation);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        invoker.destroy();\n-    }\n-\n-    public ServiceConfig<?> getMetadata() {\n-        return metadata;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.invoker;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+/**\r\n+ *\r\n+ * A Invoker wrapper that wrap the invoker and all the metadata (ServiceConfig)\r\n+ */\r\n+public class DelegateProviderMetaDataInvoker<T> implements Invoker {\r\n+    protected final Invoker<T> invoker;\r\n+    private ServiceConfig<?> metadata;\r\n+\r\n+    public DelegateProviderMetaDataInvoker(Invoker<T> invoker, ServiceConfig<?> metadata) {\r\n+        this.invoker = invoker;\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return invoker.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return invoker.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return invoker.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        return invoker.invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        invoker.destroy();\r\n+    }\r\n+\r\n+    public ServiceConfig<?> getMetadata() {\r\n+        return metadata;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java", "source2": "org/apache/dubbo/config/metadata/ConfigurableMetadataServiceExporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,129 +1,129 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.MetadataServiceExporter;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-import static java.util.Collections.emptyList;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-\n-/**\n- * {@link MetadataServiceExporter} implementation based on {@link ConfigManager Dubbo configurations}, the clients\n- * should make sure the {@link ApplicationConfig}, {@link RegistryConfig} and {@link ProtocolConfig} are ready before\n- * {@link #export()}.\n- * <p>\n- * Typically, do not worry about their ready status, because they are initialized before\n- * any {@link ServiceConfig} exports, or The Dubbo export will be failed.\n- * <p>\n- * Being aware of it's not a thread-safe implementation.\n- *\n- * @see MetadataServiceExporter\n- * @see ServiceConfig\n- * @see ConfigManager\n- * @since 2.7.5\n- */\n-public class ConfigurableMetadataServiceExporter implements MetadataServiceExporter {\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final MetadataService metadataService;\n-\n-    private volatile ServiceConfig<MetadataService> serviceConfig;\n-\n-    public ConfigurableMetadataServiceExporter(MetadataService metadataService) {\n-        this.metadataService = metadataService;\n-    }\n-\n-    @Override\n-    public ConfigurableMetadataServiceExporter export() {\n-\n-        if (!isExported()) {\n-\n-            ServiceConfig<MetadataService> serviceConfig = new ServiceConfig<>();\n-            serviceConfig.setApplication(getApplicationConfig());\n-            serviceConfig.setRegistries(getRegistries());\n-            serviceConfig.setProtocol(generateMetadataProtocol());\n-            serviceConfig.setInterface(MetadataService.class);\n-            serviceConfig.setRef(metadataService);\n-            serviceConfig.setGroup(getApplicationConfig().getName());\n-            serviceConfig.setVersion(metadataService.version());\n-\n-            // export\n-            serviceConfig.export();\n-\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"The MetadataService exports urls : \" + serviceConfig.getExportedUrls());\n-            }\n-\n-            this.serviceConfig = serviceConfig;\n-\n-        } else {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"The MetadataService has been exported : \" + serviceConfig.getExportedUrls());\n-            }\n-        }\n-\n-        return this;\n-    }\n-\n-    @Override\n-    public ConfigurableMetadataServiceExporter unexport() {\n-        if (isExported()) {\n-            serviceConfig.unexport();\n-        }\n-        return this;\n-    }\n-\n-    @Override\n-    public List<URL> getExportedURLs() {\n-        return serviceConfig != null ? serviceConfig.getExportedUrls() : emptyList();\n-    }\n-\n-    public boolean isExported() {\n-        return serviceConfig != null && serviceConfig.isExported();\n-    }\n-\n-    private ApplicationConfig getApplicationConfig() {\n-        return ApplicationModel.getConfigManager().getApplication().get();\n-    }\n-\n-    private List<RegistryConfig> getRegistries() {\n-        return new ArrayList<>(ApplicationModel.getConfigManager().getRegistries());\n-    }\n-\n-    private ProtocolConfig generateMetadataProtocol() {\n-        ProtocolConfig defaultProtocol = new ProtocolConfig();\n-        defaultProtocol.setName(DUBBO);\n-        // defaultProtocol.setHost() ?\n-        // auto-increment port\n-        defaultProtocol.setPort(-1);\n-        return defaultProtocol;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.MetadataServiceExporter;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+\r\n+/**\r\n+ * {@link MetadataServiceExporter} implementation based on {@link ConfigManager Dubbo configurations}, the clients\r\n+ * should make sure the {@link ApplicationConfig}, {@link RegistryConfig} and {@link ProtocolConfig} are ready before\r\n+ * {@link #export()}.\r\n+ * <p>\r\n+ * Typically, do not worry about their ready status, because they are initialized before\r\n+ * any {@link ServiceConfig} exports, or The Dubbo export will be failed.\r\n+ * <p>\r\n+ * Being aware of it's not a thread-safe implementation.\r\n+ *\r\n+ * @see MetadataServiceExporter\r\n+ * @see ServiceConfig\r\n+ * @see ConfigManager\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ConfigurableMetadataServiceExporter implements MetadataServiceExporter {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final MetadataService metadataService;\r\n+\r\n+    private volatile ServiceConfig<MetadataService> serviceConfig;\r\n+\r\n+    public ConfigurableMetadataServiceExporter(MetadataService metadataService) {\r\n+        this.metadataService = metadataService;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ConfigurableMetadataServiceExporter export() {\r\n+\r\n+        if (!isExported()) {\r\n+\r\n+            ServiceConfig<MetadataService> serviceConfig = new ServiceConfig<>();\r\n+            serviceConfig.setApplication(getApplicationConfig());\r\n+            serviceConfig.setRegistries(getRegistries());\r\n+            serviceConfig.setProtocol(generateMetadataProtocol());\r\n+            serviceConfig.setInterface(MetadataService.class);\r\n+            serviceConfig.setRef(metadataService);\r\n+            serviceConfig.setGroup(getApplicationConfig().getName());\r\n+            serviceConfig.setVersion(metadataService.version());\r\n+\r\n+            // export\r\n+            serviceConfig.export();\r\n+\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"The MetadataService exports urls : \" + serviceConfig.getExportedUrls());\r\n+            }\r\n+\r\n+            this.serviceConfig = serviceConfig;\r\n+\r\n+        } else {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"The MetadataService has been exported : \" + serviceConfig.getExportedUrls());\r\n+            }\r\n+        }\r\n+\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ConfigurableMetadataServiceExporter unexport() {\r\n+        if (isExported()) {\r\n+            serviceConfig.unexport();\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> getExportedURLs() {\r\n+        return serviceConfig != null ? serviceConfig.getExportedUrls() : emptyList();\r\n+    }\r\n+\r\n+    public boolean isExported() {\r\n+        return serviceConfig != null && serviceConfig.isExported();\r\n+    }\r\n+\r\n+    private ApplicationConfig getApplicationConfig() {\r\n+        return ApplicationModel.getConfigManager().getApplication().get();\r\n+    }\r\n+\r\n+    private List<RegistryConfig> getRegistries() {\r\n+        return new ArrayList<>(ApplicationModel.getConfigManager().getRegistries());\r\n+    }\r\n+\r\n+    private ProtocolConfig generateMetadataProtocol() {\r\n+        ProtocolConfig defaultProtocol = new ProtocolConfig();\r\n+        defaultProtocol.setName(DUBBO);\r\n+        // defaultProtocol.setHost() ?\r\n+        // auto-increment port\r\n+        defaultProtocol.setPort(-1);\r\n+        return defaultProtocol;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/metadata/ServiceInstancePortCustomizer.java", "source2": "org/apache/dubbo/config/metadata/ServiceInstancePortCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.metadata;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.Collection;\n-import java.util.stream.Stream;\n-\n-/**\n- * The {@link ServiceInstanceCustomizer} to customize the {@link ServiceInstance#getPort() port} of service instance.\n- *\n- * @since 2.7.5\n- */\n-public class ServiceInstancePortCustomizer implements ServiceInstanceCustomizer {\n-\n-    @Override\n-    public void customize(ServiceInstance serviceInstance) {\n-\n-        if (serviceInstance.getPort() != null) {\n-            return;\n-        }\n-\n-        Collection<ProtocolConfig> protocols = ApplicationModel.getConfigManager()\n-                .getProtocols();\n-\n-        if (CollectionUtils.isEmpty(protocols)) {\n-            throw new IllegalStateException(\"We should have at least one protocol configured at this point.\");\n-        }\n-\n-        Stream<ProtocolConfig> protocolStream = protocols.stream();\n-        ProtocolConfig protocolConfig = protocolStream\n-                // use rest as service instance's default protocol.\n-                .filter(protocol -> \"rest\".equals(protocol.getName()))\n-                .findFirst()\n-                .orElseGet(() -> protocolStream.findFirst().get());\n-\n-        if (serviceInstance instanceof DefaultServiceInstance) {\n-            DefaultServiceInstance instance = (DefaultServiceInstance) serviceInstance;\n-            if (protocolConfig.getPort() != null) {\n-                instance.setPort(protocolConfig.getPort());\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.metadata;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.stream.Stream;\r\n+\r\n+/**\r\n+ * The {@link ServiceInstanceCustomizer} to customize the {@link ServiceInstance#getPort() port} of service instance.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstancePortCustomizer implements ServiceInstanceCustomizer {\r\n+\r\n+    @Override\r\n+    public void customize(ServiceInstance serviceInstance) {\r\n+\r\n+        if (serviceInstance.getPort() != null) {\r\n+            return;\r\n+        }\r\n+\r\n+        Collection<ProtocolConfig> protocols = ApplicationModel.getConfigManager()\r\n+                .getProtocols();\r\n+\r\n+        if (CollectionUtils.isEmpty(protocols)) {\r\n+            throw new IllegalStateException(\"We should have at least one protocol configured at this point.\");\r\n+        }\r\n+\r\n+        Stream<ProtocolConfig> protocolStream = protocols.stream();\r\n+        ProtocolConfig protocolConfig = protocolStream\r\n+                // use rest as service instance's default protocol.\r\n+                .filter(protocol -> \"rest\".equals(protocol.getName()))\r\n+                .findFirst()\r\n+                .orElseGet(() -> protocolStream.findFirst().get());\r\n+\r\n+        if (serviceInstance instanceof DefaultServiceInstance) {\r\n+            DefaultServiceInstance instance = (DefaultServiceInstance) serviceInstance;\r\n+            if (protocolConfig.getPort() != null) {\r\n+                instance.setPort(protocolConfig.getPort());\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/ConfigCenterBean.java", "source2": "org/apache/dubbo/config/spring/ConfigCenterBean.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\n-\n-import org.springframework.beans.factory.DisposableBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.context.EnvironmentAware;\n-import org.springframework.core.env.ConfigurableEnvironment;\n-import org.springframework.core.env.Environment;\n-import org.springframework.core.env.PropertySource;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * Start from 2.7.0+, export and refer will only be executed when Spring is fully initialized, and each Config bean will get refreshed on the start of the export and refer process.\n- * So it's ok for this bean not to be the first Dubbo Config bean being initialized.\n- * <p>\n- */\n-public class ConfigCenterBean extends ConfigCenterConfig implements ApplicationContextAware, DisposableBean, EnvironmentAware {\n-\n-    private transient ApplicationContext applicationContext;\n-\n-    private Boolean includeSpringEnv = false;\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        this.applicationContext = applicationContext;\n-        SpringExtensionFactory.addApplicationContext(applicationContext);\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-\n-    }\n-\n-    @Override\n-    public void setEnvironment(Environment environment) {\n-        if (includeSpringEnv) {\n-            // Get PropertySource mapped to 'dubbo.properties' in Spring Environment.\n-            setExternalConfig(getConfigurations(getConfigFile(), environment));\n-            // Get PropertySource mapped to 'application.dubbo.properties' in Spring Environment.\n-            setAppExternalConfig(getConfigurations(StringUtils.isNotEmpty(getAppConfigFile()) ? getAppConfigFile() : (\"application.\" + getConfigFile()), environment));\n-        }\n-    }\n-\n-    private Map<String, String> getConfigurations(String key, Environment environment) {\n-        Object rawProperties = environment.getProperty(key, Object.class);\n-        Map<String, String> externalProperties = new HashMap<>();\n-        try {\n-            if (rawProperties instanceof Map) {\n-                externalProperties.putAll((Map<String, String>) rawProperties);\n-            } else if (rawProperties instanceof String) {\n-                externalProperties.putAll(ConfigurationUtils.parseProperties((String) rawProperties));\n-            }\n-\n-            if (environment instanceof ConfigurableEnvironment && externalProperties.isEmpty()) {\n-                ConfigurableEnvironment configurableEnvironment = (ConfigurableEnvironment) environment;\n-                PropertySource propertySource = configurableEnvironment.getPropertySources().get(key);\n-                if (propertySource != null) {\n-                    Object source = propertySource.getSource();\n-                    if (source instanceof Map) {\n-                        ((Map<String, Object>) source).forEach((k, v) -> {\n-                            externalProperties.put(k, (String) v);\n-                        });\n-                    }\n-                }\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e);\n-        }\n-        return externalProperties;\n-    }\n-\n-    public ApplicationContext getApplicationContext() {\n-        return applicationContext;\n-    }\n-\n-    public Boolean getIncludeSpringEnv() {\n-        return includeSpringEnv;\n-    }\n-\n-    public void setIncludeSpringEnv(Boolean includeSpringEnv) {\n-        this.includeSpringEnv = includeSpringEnv;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\r\n+\r\n+import org.springframework.beans.factory.DisposableBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.context.EnvironmentAware;\r\n+import org.springframework.core.env.ConfigurableEnvironment;\r\n+import org.springframework.core.env.Environment;\r\n+import org.springframework.core.env.PropertySource;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Start from 2.7.0+, export and refer will only be executed when Spring is fully initialized, and each Config bean will get refreshed on the start of the export and refer process.\r\n+ * So it's ok for this bean not to be the first Dubbo Config bean being initialized.\r\n+ * <p>\r\n+ */\r\n+public class ConfigCenterBean extends ConfigCenterConfig implements ApplicationContextAware, DisposableBean, EnvironmentAware {\r\n+\r\n+    private transient ApplicationContext applicationContext;\r\n+\r\n+    private Boolean includeSpringEnv = false;\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        this.applicationContext = applicationContext;\r\n+        SpringExtensionFactory.addApplicationContext(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setEnvironment(Environment environment) {\r\n+        if (includeSpringEnv) {\r\n+            // Get PropertySource mapped to 'dubbo.properties' in Spring Environment.\r\n+            setExternalConfig(getConfigurations(getConfigFile(), environment));\r\n+            // Get PropertySource mapped to 'application.dubbo.properties' in Spring Environment.\r\n+            setAppExternalConfig(getConfigurations(StringUtils.isNotEmpty(getAppConfigFile()) ? getAppConfigFile() : (\"application.\" + getConfigFile()), environment));\r\n+        }\r\n+    }\r\n+\r\n+    private Map<String, String> getConfigurations(String key, Environment environment) {\r\n+        Object rawProperties = environment.getProperty(key, Object.class);\r\n+        Map<String, String> externalProperties = new HashMap<>();\r\n+        try {\r\n+            if (rawProperties instanceof Map) {\r\n+                externalProperties.putAll((Map<String, String>) rawProperties);\r\n+            } else if (rawProperties instanceof String) {\r\n+                externalProperties.putAll(ConfigurationUtils.parseProperties((String) rawProperties));\r\n+            }\r\n+\r\n+            if (environment instanceof ConfigurableEnvironment && externalProperties.isEmpty()) {\r\n+                ConfigurableEnvironment configurableEnvironment = (ConfigurableEnvironment) environment;\r\n+                PropertySource propertySource = configurableEnvironment.getPropertySources().get(key);\r\n+                if (propertySource != null) {\r\n+                    Object source = propertySource.getSource();\r\n+                    if (source instanceof Map) {\r\n+                        ((Map<String, Object>) source).forEach((k, v) -> {\r\n+                            externalProperties.put(k, (String) v);\r\n+                        });\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return externalProperties;\r\n+    }\r\n+\r\n+    public ApplicationContext getApplicationContext() {\r\n+        return applicationContext;\r\n+    }\r\n+\r\n+    public Boolean getIncludeSpringEnv() {\r\n+        return includeSpringEnv;\r\n+    }\r\n+\r\n+    public void setIncludeSpringEnv(Boolean includeSpringEnv) {\r\n+        this.includeSpringEnv = includeSpringEnv;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/ReferenceBean.java", "source2": "org/apache/dubbo/config/spring/ReferenceBean.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,124 +1,124 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring;\n-\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import org.springframework.beans.factory.DisposableBean;\n-import org.springframework.beans.factory.FactoryBean;\n-import org.springframework.beans.factory.InitializingBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-\n-import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;\n-\n-/**\n- * ReferenceFactoryBean\n- */\n-public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean,\n-        ApplicationContextAware, InitializingBean, DisposableBean {\n-\n-    private static final long serialVersionUID = 213195494150089726L;\n-\n-    private transient ApplicationContext applicationContext;\n-\n-    public ReferenceBean() {\n-        super();\n-    }\n-\n-    public ReferenceBean(Reference reference) {\n-        super(reference);\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        this.applicationContext = applicationContext;\n-        SpringExtensionFactory.addApplicationContext(applicationContext);\n-    }\n-\n-    @Override\n-    public Object getObject() {\n-        return get();\n-    }\n-\n-    @Override\n-    public Class<?> getObjectType() {\n-        return getInterfaceClass();\n-    }\n-\n-    @Override\n-    @Parameter(excluded = true)\n-    public boolean isSingleton() {\n-        return true;\n-    }\n-\n-    /**\n-     * Initializes there Dubbo's Config Beans before @Reference bean autowiring\n-     */\n-    private void prepareDubboConfigBeans() {\n-        // Refactor 2.7.9\n-        final boolean includeNonSingletons = true;\n-        final boolean allowEagerInit = false;\n-        beansOfTypeIncludingAncestors(applicationContext, ApplicationConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, ModuleConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, RegistryConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, ProtocolConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, MonitorConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, ProviderConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, ConsumerConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, ConfigCenterBean.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, MetadataReportConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, MetricsConfig.class, includeNonSingletons, allowEagerInit);\n-        beansOfTypeIncludingAncestors(applicationContext, SslConfig.class, includeNonSingletons, allowEagerInit);\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\"})\n-    public void afterPropertiesSet() throws Exception {\n-\n-        // Initializes Dubbo's Config Beans before @Reference bean autowiring\n-        prepareDubboConfigBeans();\n-\n-        // lazy init by default.\n-        if (init == null) {\n-            init = false;\n-        }\n-\n-        // eager init if necessary.\n-        if (shouldInit()) {\n-            getObject();\n-        }\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        // do nothing\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring;\r\n+\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import org.springframework.beans.factory.DisposableBean;\r\n+import org.springframework.beans.factory.FactoryBean;\r\n+import org.springframework.beans.factory.InitializingBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+\r\n+import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;\r\n+\r\n+/**\r\n+ * ReferenceFactoryBean\r\n+ */\r\n+public class ReferenceBean<T> extends ReferenceConfig<T> implements FactoryBean,\r\n+        ApplicationContextAware, InitializingBean, DisposableBean {\r\n+\r\n+    private static final long serialVersionUID = 213195494150089726L;\r\n+\r\n+    private transient ApplicationContext applicationContext;\r\n+\r\n+    public ReferenceBean() {\r\n+        super();\r\n+    }\r\n+\r\n+    public ReferenceBean(Reference reference) {\r\n+        super(reference);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        this.applicationContext = applicationContext;\r\n+        SpringExtensionFactory.addApplicationContext(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObject() {\r\n+        return get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?> getObjectType() {\r\n+        return getInterfaceClass();\r\n+    }\r\n+\r\n+    @Override\r\n+    @Parameter(excluded = true)\r\n+    public boolean isSingleton() {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Initializes there Dubbo's Config Beans before @Reference bean autowiring\r\n+     */\r\n+    private void prepareDubboConfigBeans() {\r\n+        // Refactor 2.7.9\r\n+        final boolean includeNonSingletons = true;\r\n+        final boolean allowEagerInit = false;\r\n+        beansOfTypeIncludingAncestors(applicationContext, ApplicationConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, ModuleConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, RegistryConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, ProtocolConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, MonitorConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, ProviderConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, ConsumerConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, ConfigCenterBean.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, MetadataReportConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, MetricsConfig.class, includeNonSingletons, allowEagerInit);\r\n+        beansOfTypeIncludingAncestors(applicationContext, SslConfig.class, includeNonSingletons, allowEagerInit);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\"})\r\n+    public void afterPropertiesSet() throws Exception {\r\n+\r\n+        // Initializes Dubbo's Config Beans before @Reference bean autowiring\r\n+        prepareDubboConfigBeans();\r\n+\r\n+        // lazy init by default.\r\n+        if (init == null) {\r\n+            init = false;\r\n+        }\r\n+\r\n+        // eager init if necessary.\r\n+        if (shouldInit()) {\r\n+            getObject();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        // do nothing\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/ServiceBean.java", "source2": "org/apache/dubbo/config/spring/ServiceBean.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,145 +1,145 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.spring.context.event.ServiceBeanExportedEvent;\n-import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\n-import org.apache.dubbo.config.support.Parameter;\n-\n-import org.springframework.aop.support.AopUtils;\n-import org.springframework.beans.factory.BeanNameAware;\n-import org.springframework.beans.factory.DisposableBean;\n-import org.springframework.beans.factory.InitializingBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.context.ApplicationEventPublisher;\n-import org.springframework.context.ApplicationEventPublisherAware;\n-\n-/**\n- * ServiceFactoryBean\n- *\n- * @export\n- */\n-public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean,\n-        ApplicationContextAware, BeanNameAware, ApplicationEventPublisherAware {\n-\n-\n-    private static final long serialVersionUID = 213195494150089726L;\n-\n-    private final transient Service service;\n-\n-    private transient ApplicationContext applicationContext;\n-\n-    private transient String beanName;\n-\n-    private ApplicationEventPublisher applicationEventPublisher;\n-\n-    public ServiceBean() {\n-        super();\n-        this.service = null;\n-    }\n-\n-    public ServiceBean(Service service) {\n-        super(service);\n-        this.service = service;\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        this.applicationContext = applicationContext;\n-        SpringExtensionFactory.addApplicationContext(applicationContext);\n-    }\n-\n-    @Override\n-    public void setBeanName(String name) {\n-        this.beanName = name;\n-    }\n-\n-    /**\n-     * Gets associated {@link Service}\n-     *\n-     * @return associated {@link Service}\n-     */\n-    public Service getService() {\n-        return service;\n-    }\n-\n-    @Override\n-    public void afterPropertiesSet() throws Exception {\n-        if (StringUtils.isEmpty(getPath())) {\n-            if (StringUtils.isNotEmpty(getInterface())) {\n-                setPath(getInterface());\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Get the name of {@link ServiceBean}\n-     *\n-     * @return {@link ServiceBean}'s name\n-     * @since 2.6.5\n-     */\n-    @Parameter(excluded = true)\n-    public String getBeanName() {\n-        return this.beanName;\n-    }\n-\n-    /**\n-     * @since 2.6.5\n-     */\n-    @Override\n-    public void exported() {\n-        super.exported();\n-        // Publish ServiceBeanExportedEvent\n-        publishExportEvent();\n-    }\n-\n-    /**\n-     * @since 2.6.5\n-     */\n-    private void publishExportEvent() {\n-        ServiceBeanExportedEvent exportEvent = new ServiceBeanExportedEvent(this);\n-        applicationEventPublisher.publishEvent(exportEvent);\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-        // no need to call unexport() here, see\n-        // org.apache.dubbo.config.spring.extension.SpringExtensionFactory.ShutdownHookListener\n-    }\n-\n-    // merged from dubbox\n-    @Override\n-    protected Class getServiceClass(T ref) {\n-        if (AopUtils.isAopProxy(ref)) {\n-            return AopUtils.getTargetClass(ref);\n-        }\n-        return super.getServiceClass(ref);\n-    }\n-\n-    /**\n-     * @param applicationEventPublisher\n-     * @since 2.6.5\n-     */\n-    @Override\n-    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {\n-        this.applicationEventPublisher = applicationEventPublisher;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.spring.context.event.ServiceBeanExportedEvent;\r\n+import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\r\n+import org.apache.dubbo.config.support.Parameter;\r\n+\r\n+import org.springframework.aop.support.AopUtils;\r\n+import org.springframework.beans.factory.BeanNameAware;\r\n+import org.springframework.beans.factory.DisposableBean;\r\n+import org.springframework.beans.factory.InitializingBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.context.ApplicationEventPublisher;\r\n+import org.springframework.context.ApplicationEventPublisherAware;\r\n+\r\n+/**\r\n+ * ServiceFactoryBean\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class ServiceBean<T> extends ServiceConfig<T> implements InitializingBean, DisposableBean,\r\n+        ApplicationContextAware, BeanNameAware, ApplicationEventPublisherAware {\r\n+\r\n+\r\n+    private static final long serialVersionUID = 213195494150089726L;\r\n+\r\n+    private final transient Service service;\r\n+\r\n+    private transient ApplicationContext applicationContext;\r\n+\r\n+    private transient String beanName;\r\n+\r\n+    private ApplicationEventPublisher applicationEventPublisher;\r\n+\r\n+    public ServiceBean() {\r\n+        super();\r\n+        this.service = null;\r\n+    }\r\n+\r\n+    public ServiceBean(Service service) {\r\n+        super(service);\r\n+        this.service = service;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        this.applicationContext = applicationContext;\r\n+        SpringExtensionFactory.addApplicationContext(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBeanName(String name) {\r\n+        this.beanName = name;\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets associated {@link Service}\r\n+     *\r\n+     * @return associated {@link Service}\r\n+     */\r\n+    public Service getService() {\r\n+        return service;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void afterPropertiesSet() throws Exception {\r\n+        if (StringUtils.isEmpty(getPath())) {\r\n+            if (StringUtils.isNotEmpty(getInterface())) {\r\n+                setPath(getInterface());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the name of {@link ServiceBean}\r\n+     *\r\n+     * @return {@link ServiceBean}'s name\r\n+     * @since 2.6.5\r\n+     */\r\n+    @Parameter(excluded = true)\r\n+    public String getBeanName() {\r\n+        return this.beanName;\r\n+    }\r\n+\r\n+    /**\r\n+     * @since 2.6.5\r\n+     */\r\n+    @Override\r\n+    public void exported() {\r\n+        super.exported();\r\n+        // Publish ServiceBeanExportedEvent\r\n+        publishExportEvent();\r\n+    }\r\n+\r\n+    /**\r\n+     * @since 2.6.5\r\n+     */\r\n+    private void publishExportEvent() {\r\n+        ServiceBeanExportedEvent exportEvent = new ServiceBeanExportedEvent(this);\r\n+        applicationEventPublisher.publishEvent(exportEvent);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+        // no need to call unexport() here, see\r\n+        // org.apache.dubbo.config.spring.extension.SpringExtensionFactory.ShutdownHookListener\r\n+    }\r\n+\r\n+    // merged from dubbox\r\n+    @Override\r\n+    protected Class getServiceClass(T ref) {\r\n+        if (AopUtils.isAopProxy(ref)) {\r\n+            return AopUtils.getTargetClass(ref);\r\n+        }\r\n+        return super.getServiceClass(ref);\r\n+    }\r\n+\r\n+    /**\r\n+     * @param applicationEventPublisher\r\n+     * @since 2.6.5\r\n+     */\r\n+    @Override\r\n+    public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {\r\n+        this.applicationEventPublisher = applicationEventPublisher;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/AbstractAnnotationConfigBeanBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,214 +1,214 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.commons.logging.Log;\n-import org.apache.commons.logging.LogFactory;\n-import org.apache.dubbo.config.AbstractInterfaceConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.util.Assert;\n-\n-import java.lang.annotation.Annotation;\n-import java.util.List;\n-\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getBeans;\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\n-\n-/**\n- * Abstract Configurable {@link Annotation} Bean Builder\n- *\n- * @since 2.5.7\n- * @deprecated use {@link AnnotatedInterfaceConfigBeanBuilder}\n- */\n-@Deprecated\n-abstract class AbstractAnnotationConfigBeanBuilder<A extends Annotation, B extends AbstractInterfaceConfig> {\n-\n-    protected final Log logger = LogFactory.getLog(getClass());\n-\n-    protected final A annotation;\n-\n-    protected final ApplicationContext applicationContext;\n-\n-    protected final ClassLoader classLoader;\n-\n-    protected Object bean;\n-\n-    protected Class<?> interfaceClass;\n-\n-    protected AbstractAnnotationConfigBeanBuilder(A annotation, ClassLoader classLoader,\n-                                                  ApplicationContext applicationContext) {\n-        Assert.notNull(annotation, \"The Annotation must not be null!\");\n-        Assert.notNull(classLoader, \"The ClassLoader must not be null!\");\n-        Assert.notNull(applicationContext, \"The ApplicationContext must not be null!\");\n-        this.annotation = annotation;\n-        this.applicationContext = applicationContext;\n-        this.classLoader = classLoader;\n-\n-    }\n-\n-    /**\n-     * Build {@link B}\n-     *\n-     * @return non-null\n-     * @throws Exception\n-     */\n-    public final B build() throws Exception {\n-\n-        checkDependencies();\n-\n-        B bean = doBuild();\n-\n-        configureBean(bean);\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The bean[type:\" + bean.getClass().getSimpleName() + \"] has been built.\");\n-        }\n-\n-        return bean;\n-\n-    }\n-\n-    private void checkDependencies() {\n-\n-    }\n-\n-    /**\n-     * Builds {@link B Bean}\n-     *\n-     * @return {@link B Bean}\n-     */\n-    protected abstract B doBuild();\n-\n-\n-    protected void configureBean(B bean) throws Exception {\n-\n-        preConfigureBean(annotation, bean);\n-\n-        configureRegistryConfigs(bean);\n-\n-        configureMonitorConfig(bean);\n-\n-        configureApplicationConfig(bean);\n-\n-        configureModuleConfig(bean);\n-\n-        postConfigureBean(annotation, bean);\n-\n-    }\n-\n-    protected abstract void preConfigureBean(A annotation, B bean) throws Exception;\n-\n-\n-    private void configureRegistryConfigs(B bean) {\n-\n-        String[] registryConfigBeanIds = resolveRegistryConfigBeanNames(annotation);\n-\n-        List<RegistryConfig> registryConfigs = getBeans(applicationContext, registryConfigBeanIds, RegistryConfig.class);\n-\n-        bean.setRegistries(registryConfigs);\n-\n-    }\n-\n-    private void configureMonitorConfig(B bean) {\n-\n-        String monitorBeanName = resolveMonitorConfigBeanName(annotation);\n-\n-        MonitorConfig monitorConfig = getOptionalBean(applicationContext, monitorBeanName, MonitorConfig.class);\n-\n-        bean.setMonitor(monitorConfig);\n-\n-    }\n-\n-    private void configureApplicationConfig(B bean) {\n-\n-        String applicationConfigBeanName = resolveApplicationConfigBeanName(annotation);\n-\n-        ApplicationConfig applicationConfig =\n-                getOptionalBean(applicationContext, applicationConfigBeanName, ApplicationConfig.class);\n-\n-        bean.setApplication(applicationConfig);\n-\n-    }\n-\n-    private void configureModuleConfig(B bean) {\n-\n-        String moduleConfigBeanName = resolveModuleConfigBeanName(annotation);\n-\n-        ModuleConfig moduleConfig =\n-                getOptionalBean(applicationContext, moduleConfigBeanName, ModuleConfig.class);\n-\n-        bean.setModule(moduleConfig);\n-\n-    }\n-\n-    /**\n-     * Resolves the bean name of {@link ModuleConfig}\n-     *\n-     * @param annotation {@link A}\n-     * @return\n-     */\n-    protected abstract String resolveModuleConfigBeanName(A annotation);\n-\n-    /**\n-     * Resolves the bean name of {@link ApplicationConfig}\n-     *\n-     * @param annotation {@link A}\n-     * @return\n-     */\n-    protected abstract String resolveApplicationConfigBeanName(A annotation);\n-\n-\n-    /**\n-     * Resolves the bean ids of {@link RegistryConfig}\n-     *\n-     * @param annotation {@link A}\n-     * @return non-empty array\n-     */\n-    protected abstract String[] resolveRegistryConfigBeanNames(A annotation);\n-\n-    /**\n-     * Resolves the bean name of {@link MonitorConfig}\n-     *\n-     * @param annotation {@link A}\n-     * @return\n-     */\n-    protected abstract String resolveMonitorConfigBeanName(A annotation);\n-\n-    /**\n-     * Configures Bean\n-     *\n-     * @param annotation\n-     * @param bean\n-     */\n-    protected abstract void postConfigureBean(A annotation, B bean) throws Exception;\n-\n-\n-    public <T extends AbstractAnnotationConfigBeanBuilder<A, B>> T bean(Object bean) {\n-        this.bean = bean;\n-        return (T) this;\n-    }\n-\n-    public <T extends AbstractAnnotationConfigBeanBuilder<A, B>> T interfaceClass(Class<?> interfaceClass) {\n-        this.interfaceClass = interfaceClass;\n-        return (T) this;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.commons.logging.Log;\r\n+import org.apache.commons.logging.LogFactory;\r\n+import org.apache.dubbo.config.AbstractInterfaceConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.util.Assert;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getBeans;\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\r\n+\r\n+/**\r\n+ * Abstract Configurable {@link Annotation} Bean Builder\r\n+ *\r\n+ * @since 2.5.7\r\n+ * @deprecated use {@link AnnotatedInterfaceConfigBeanBuilder}\r\n+ */\r\n+@Deprecated\r\n+abstract class AbstractAnnotationConfigBeanBuilder<A extends Annotation, B extends AbstractInterfaceConfig> {\r\n+\r\n+    protected final Log logger = LogFactory.getLog(getClass());\r\n+\r\n+    protected final A annotation;\r\n+\r\n+    protected final ApplicationContext applicationContext;\r\n+\r\n+    protected final ClassLoader classLoader;\r\n+\r\n+    protected Object bean;\r\n+\r\n+    protected Class<?> interfaceClass;\r\n+\r\n+    protected AbstractAnnotationConfigBeanBuilder(A annotation, ClassLoader classLoader,\r\n+                                                  ApplicationContext applicationContext) {\r\n+        Assert.notNull(annotation, \"The Annotation must not be null!\");\r\n+        Assert.notNull(classLoader, \"The ClassLoader must not be null!\");\r\n+        Assert.notNull(applicationContext, \"The ApplicationContext must not be null!\");\r\n+        this.annotation = annotation;\r\n+        this.applicationContext = applicationContext;\r\n+        this.classLoader = classLoader;\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Build {@link B}\r\n+     *\r\n+     * @return non-null\r\n+     * @throws Exception\r\n+     */\r\n+    public final B build() throws Exception {\r\n+\r\n+        checkDependencies();\r\n+\r\n+        B bean = doBuild();\r\n+\r\n+        configureBean(bean);\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The bean[type:\" + bean.getClass().getSimpleName() + \"] has been built.\");\r\n+        }\r\n+\r\n+        return bean;\r\n+\r\n+    }\r\n+\r\n+    private void checkDependencies() {\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Builds {@link B Bean}\r\n+     *\r\n+     * @return {@link B Bean}\r\n+     */\r\n+    protected abstract B doBuild();\r\n+\r\n+\r\n+    protected void configureBean(B bean) throws Exception {\r\n+\r\n+        preConfigureBean(annotation, bean);\r\n+\r\n+        configureRegistryConfigs(bean);\r\n+\r\n+        configureMonitorConfig(bean);\r\n+\r\n+        configureApplicationConfig(bean);\r\n+\r\n+        configureModuleConfig(bean);\r\n+\r\n+        postConfigureBean(annotation, bean);\r\n+\r\n+    }\r\n+\r\n+    protected abstract void preConfigureBean(A annotation, B bean) throws Exception;\r\n+\r\n+\r\n+    private void configureRegistryConfigs(B bean) {\r\n+\r\n+        String[] registryConfigBeanIds = resolveRegistryConfigBeanNames(annotation);\r\n+\r\n+        List<RegistryConfig> registryConfigs = getBeans(applicationContext, registryConfigBeanIds, RegistryConfig.class);\r\n+\r\n+        bean.setRegistries(registryConfigs);\r\n+\r\n+    }\r\n+\r\n+    private void configureMonitorConfig(B bean) {\r\n+\r\n+        String monitorBeanName = resolveMonitorConfigBeanName(annotation);\r\n+\r\n+        MonitorConfig monitorConfig = getOptionalBean(applicationContext, monitorBeanName, MonitorConfig.class);\r\n+\r\n+        bean.setMonitor(monitorConfig);\r\n+\r\n+    }\r\n+\r\n+    private void configureApplicationConfig(B bean) {\r\n+\r\n+        String applicationConfigBeanName = resolveApplicationConfigBeanName(annotation);\r\n+\r\n+        ApplicationConfig applicationConfig =\r\n+                getOptionalBean(applicationContext, applicationConfigBeanName, ApplicationConfig.class);\r\n+\r\n+        bean.setApplication(applicationConfig);\r\n+\r\n+    }\r\n+\r\n+    private void configureModuleConfig(B bean) {\r\n+\r\n+        String moduleConfigBeanName = resolveModuleConfigBeanName(annotation);\r\n+\r\n+        ModuleConfig moduleConfig =\r\n+                getOptionalBean(applicationContext, moduleConfigBeanName, ModuleConfig.class);\r\n+\r\n+        bean.setModule(moduleConfig);\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolves the bean name of {@link ModuleConfig}\r\n+     *\r\n+     * @param annotation {@link A}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveModuleConfigBeanName(A annotation);\r\n+\r\n+    /**\r\n+     * Resolves the bean name of {@link ApplicationConfig}\r\n+     *\r\n+     * @param annotation {@link A}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveApplicationConfigBeanName(A annotation);\r\n+\r\n+\r\n+    /**\r\n+     * Resolves the bean ids of {@link RegistryConfig}\r\n+     *\r\n+     * @param annotation {@link A}\r\n+     * @return non-empty array\r\n+     */\r\n+    protected abstract String[] resolveRegistryConfigBeanNames(A annotation);\r\n+\r\n+    /**\r\n+     * Resolves the bean name of {@link MonitorConfig}\r\n+     *\r\n+     * @param annotation {@link A}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveMonitorConfigBeanName(A annotation);\r\n+\r\n+    /**\r\n+     * Configures Bean\r\n+     *\r\n+     * @param annotation\r\n+     * @param bean\r\n+     */\r\n+    protected abstract void postConfigureBean(A annotation, B bean) throws Exception;\r\n+\r\n+\r\n+    public <T extends AbstractAnnotationConfigBeanBuilder<A, B>> T bean(Object bean) {\r\n+        this.bean = bean;\r\n+        return (T) this;\r\n+    }\r\n+\r\n+    public <T extends AbstractAnnotationConfigBeanBuilder<A, B>> T interfaceClass(Class<?> interfaceClass) {\r\n+        this.interfaceClass = interfaceClass;\r\n+        return (T) this;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/AnnotatedInterfaceConfigBeanBuilder.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/AnnotatedInterfaceConfigBeanBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,214 +1,214 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.commons.logging.Log;\n-import org.apache.commons.logging.LogFactory;\n-import org.apache.dubbo.config.AbstractInterfaceConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.util.Assert;\n-\n-import java.lang.annotation.Annotation;\n-import java.util.List;\n-\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getBeans;\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\n-\n-/**\n- * An Abstract Builder to build {@link AbstractInterfaceConfig Interface Config} Bean that annotated\n- * some {@link Annotation annotation}.\n- *\n- * @see ReferenceBeanBuilder\n- * @see AbstractInterfaceConfig\n- * @see AnnotationAttributes\n- * @since 2.7.3\n- */\n-public abstract class AnnotatedInterfaceConfigBeanBuilder<C extends AbstractInterfaceConfig> {\n-\n-    protected final Log logger = LogFactory.getLog(getClass());\n-\n-    protected final AnnotationAttributes attributes;\n-\n-    protected final ApplicationContext applicationContext;\n-\n-    protected final ClassLoader classLoader;\n-\n-    protected Object configBean;\n-\n-    protected Class<?> interfaceClass;\n-\n-    protected AnnotatedInterfaceConfigBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext) {\n-        Assert.notNull(attributes, \"The Annotation attributes must not be null!\");\n-        Assert.notNull(applicationContext, \"The ApplicationContext must not be null!\");\n-        this.attributes = attributes;\n-        this.applicationContext = applicationContext;\n-        this.classLoader = applicationContext.getClassLoader() != null ?\n-                applicationContext.getClassLoader() : Thread.currentThread().getContextClassLoader();\n-    }\n-\n-    /**\n-     * Build {@link C}\n-     *\n-     * @return non-null\n-     * @throws Exception\n-     */\n-    public final C build() throws Exception {\n-\n-        checkDependencies();\n-\n-        C configBean = doBuild();\n-\n-        configureBean(configBean);\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The configBean[type:\" + configBean.getClass().getSimpleName() + \"] has been built.\");\n-        }\n-\n-        return configBean;\n-\n-    }\n-\n-    private void checkDependencies() {\n-\n-    }\n-\n-    /**\n-     * Builds {@link C Bean}\n-     *\n-     * @return {@link C Bean}\n-     */\n-    protected abstract C doBuild();\n-\n-\n-    protected void configureBean(C configBean) throws Exception {\n-\n-        preConfigureBean(attributes, configBean);\n-\n-        configureRegistryConfigs(configBean);\n-\n-        configureMonitorConfig(configBean);\n-\n-        configureApplicationConfig(configBean);\n-\n-        configureModuleConfig(configBean);\n-\n-        postConfigureBean(attributes, configBean);\n-\n-    }\n-\n-    protected abstract void preConfigureBean(AnnotationAttributes attributes, C configBean) throws Exception;\n-\n-\n-    private void configureRegistryConfigs(C configBean) {\n-\n-        String[] registryConfigBeanIds = resolveRegistryConfigBeanNames(attributes);\n-\n-        List<RegistryConfig> registryConfigs = getBeans(applicationContext, registryConfigBeanIds, RegistryConfig.class);\n-\n-        configBean.setRegistries(registryConfigs);\n-\n-    }\n-\n-    private void configureMonitorConfig(C configBean) {\n-\n-        String monitorBeanName = resolveMonitorConfigBeanName(attributes);\n-\n-        MonitorConfig monitorConfig = getOptionalBean(applicationContext, monitorBeanName, MonitorConfig.class);\n-\n-        configBean.setMonitor(monitorConfig);\n-\n-    }\n-\n-    private void configureApplicationConfig(C configBean) {\n-\n-        String applicationConfigBeanName = resolveApplicationConfigBeanName(attributes);\n-\n-        ApplicationConfig applicationConfig =\n-                getOptionalBean(applicationContext, applicationConfigBeanName, ApplicationConfig.class);\n-\n-        configBean.setApplication(applicationConfig);\n-\n-    }\n-\n-    private void configureModuleConfig(C configBean) {\n-\n-        String moduleConfigBeanName = resolveModuleConfigBeanName(attributes);\n-\n-        ModuleConfig moduleConfig =\n-                getOptionalBean(applicationContext, moduleConfigBeanName, ModuleConfig.class);\n-\n-        configBean.setModule(moduleConfig);\n-\n-    }\n-\n-    /**\n-     * Resolves the configBean name of {@link ModuleConfig}\n-     *\n-     * @param attributes {@link AnnotationAttributes}\n-     * @return\n-     */\n-    protected abstract String resolveModuleConfigBeanName(AnnotationAttributes attributes);\n-\n-    /**\n-     * Resolves the configBean name of {@link ApplicationConfig}\n-     *\n-     * @param attributes {@link AnnotationAttributes}\n-     * @return\n-     */\n-    protected abstract String resolveApplicationConfigBeanName(AnnotationAttributes attributes);\n-\n-\n-    /**\n-     * Resolves the configBean ids of {@link RegistryConfig}\n-     *\n-     * @param attributes {@link AnnotationAttributes}\n-     * @return non-empty array\n-     */\n-    protected abstract String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes);\n-\n-    /**\n-     * Resolves the configBean name of {@link MonitorConfig}\n-     *\n-     * @param attributes {@link AnnotationAttributes}\n-     * @return\n-     */\n-    protected abstract String resolveMonitorConfigBeanName(AnnotationAttributes attributes);\n-\n-    /**\n-     * Configures Bean\n-     *\n-     * @param attributes\n-     * @param configBean\n-     */\n-    protected abstract void postConfigureBean(AnnotationAttributes attributes, C configBean) throws Exception;\n-\n-\n-    public <T extends AnnotatedInterfaceConfigBeanBuilder<C>> T configBean(Object configBean) {\n-        this.configBean = configBean;\n-        return (T) this;\n-    }\n-\n-    public <T extends AnnotatedInterfaceConfigBeanBuilder<C>> T interfaceClass(Class<?> interfaceClass) {\n-        this.interfaceClass = interfaceClass;\n-        return (T) this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.commons.logging.Log;\r\n+import org.apache.commons.logging.LogFactory;\r\n+import org.apache.dubbo.config.AbstractInterfaceConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.util.Assert;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getBeans;\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\r\n+\r\n+/**\r\n+ * An Abstract Builder to build {@link AbstractInterfaceConfig Interface Config} Bean that annotated\r\n+ * some {@link Annotation annotation}.\r\n+ *\r\n+ * @see ReferenceBeanBuilder\r\n+ * @see AbstractInterfaceConfig\r\n+ * @see AnnotationAttributes\r\n+ * @since 2.7.3\r\n+ */\r\n+public abstract class AnnotatedInterfaceConfigBeanBuilder<C extends AbstractInterfaceConfig> {\r\n+\r\n+    protected final Log logger = LogFactory.getLog(getClass());\r\n+\r\n+    protected final AnnotationAttributes attributes;\r\n+\r\n+    protected final ApplicationContext applicationContext;\r\n+\r\n+    protected final ClassLoader classLoader;\r\n+\r\n+    protected Object configBean;\r\n+\r\n+    protected Class<?> interfaceClass;\r\n+\r\n+    protected AnnotatedInterfaceConfigBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext) {\r\n+        Assert.notNull(attributes, \"The Annotation attributes must not be null!\");\r\n+        Assert.notNull(applicationContext, \"The ApplicationContext must not be null!\");\r\n+        this.attributes = attributes;\r\n+        this.applicationContext = applicationContext;\r\n+        this.classLoader = applicationContext.getClassLoader() != null ?\r\n+                applicationContext.getClassLoader() : Thread.currentThread().getContextClassLoader();\r\n+    }\r\n+\r\n+    /**\r\n+     * Build {@link C}\r\n+     *\r\n+     * @return non-null\r\n+     * @throws Exception\r\n+     */\r\n+    public final C build() throws Exception {\r\n+\r\n+        checkDependencies();\r\n+\r\n+        C configBean = doBuild();\r\n+\r\n+        configureBean(configBean);\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The configBean[type:\" + configBean.getClass().getSimpleName() + \"] has been built.\");\r\n+        }\r\n+\r\n+        return configBean;\r\n+\r\n+    }\r\n+\r\n+    private void checkDependencies() {\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Builds {@link C Bean}\r\n+     *\r\n+     * @return {@link C Bean}\r\n+     */\r\n+    protected abstract C doBuild();\r\n+\r\n+\r\n+    protected void configureBean(C configBean) throws Exception {\r\n+\r\n+        preConfigureBean(attributes, configBean);\r\n+\r\n+        configureRegistryConfigs(configBean);\r\n+\r\n+        configureMonitorConfig(configBean);\r\n+\r\n+        configureApplicationConfig(configBean);\r\n+\r\n+        configureModuleConfig(configBean);\r\n+\r\n+        postConfigureBean(attributes, configBean);\r\n+\r\n+    }\r\n+\r\n+    protected abstract void preConfigureBean(AnnotationAttributes attributes, C configBean) throws Exception;\r\n+\r\n+\r\n+    private void configureRegistryConfigs(C configBean) {\r\n+\r\n+        String[] registryConfigBeanIds = resolveRegistryConfigBeanNames(attributes);\r\n+\r\n+        List<RegistryConfig> registryConfigs = getBeans(applicationContext, registryConfigBeanIds, RegistryConfig.class);\r\n+\r\n+        configBean.setRegistries(registryConfigs);\r\n+\r\n+    }\r\n+\r\n+    private void configureMonitorConfig(C configBean) {\r\n+\r\n+        String monitorBeanName = resolveMonitorConfigBeanName(attributes);\r\n+\r\n+        MonitorConfig monitorConfig = getOptionalBean(applicationContext, monitorBeanName, MonitorConfig.class);\r\n+\r\n+        configBean.setMonitor(monitorConfig);\r\n+\r\n+    }\r\n+\r\n+    private void configureApplicationConfig(C configBean) {\r\n+\r\n+        String applicationConfigBeanName = resolveApplicationConfigBeanName(attributes);\r\n+\r\n+        ApplicationConfig applicationConfig =\r\n+                getOptionalBean(applicationContext, applicationConfigBeanName, ApplicationConfig.class);\r\n+\r\n+        configBean.setApplication(applicationConfig);\r\n+\r\n+    }\r\n+\r\n+    private void configureModuleConfig(C configBean) {\r\n+\r\n+        String moduleConfigBeanName = resolveModuleConfigBeanName(attributes);\r\n+\r\n+        ModuleConfig moduleConfig =\r\n+                getOptionalBean(applicationContext, moduleConfigBeanName, ModuleConfig.class);\r\n+\r\n+        configBean.setModule(moduleConfig);\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolves the configBean name of {@link ModuleConfig}\r\n+     *\r\n+     * @param attributes {@link AnnotationAttributes}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveModuleConfigBeanName(AnnotationAttributes attributes);\r\n+\r\n+    /**\r\n+     * Resolves the configBean name of {@link ApplicationConfig}\r\n+     *\r\n+     * @param attributes {@link AnnotationAttributes}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveApplicationConfigBeanName(AnnotationAttributes attributes);\r\n+\r\n+\r\n+    /**\r\n+     * Resolves the configBean ids of {@link RegistryConfig}\r\n+     *\r\n+     * @param attributes {@link AnnotationAttributes}\r\n+     * @return non-empty array\r\n+     */\r\n+    protected abstract String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes);\r\n+\r\n+    /**\r\n+     * Resolves the configBean name of {@link MonitorConfig}\r\n+     *\r\n+     * @param attributes {@link AnnotationAttributes}\r\n+     * @return\r\n+     */\r\n+    protected abstract String resolveMonitorConfigBeanName(AnnotationAttributes attributes);\r\n+\r\n+    /**\r\n+     * Configures Bean\r\n+     *\r\n+     * @param attributes\r\n+     * @param configBean\r\n+     */\r\n+    protected abstract void postConfigureBean(AnnotationAttributes attributes, C configBean) throws Exception;\r\n+\r\n+\r\n+    public <T extends AnnotatedInterfaceConfigBeanBuilder<C>> T configBean(Object configBean) {\r\n+        this.configBean = configBean;\r\n+        return (T) this;\r\n+    }\r\n+\r\n+    public <T extends AnnotatedInterfaceConfigBeanBuilder<C>> T interfaceClass(Class<?> interfaceClass) {\r\n+        this.interfaceClass = interfaceClass;\r\n+        return (T) this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/AnnotationPropertyValuesAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,84 +1,84 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.springframework.beans.MutablePropertyValues;\n-import org.springframework.beans.PropertyValue;\n-import org.springframework.beans.PropertyValues;\n-import org.springframework.core.env.PropertyResolver;\n-\n-import java.lang.annotation.Annotation;\n-import java.util.Map;\n-\n-import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\n-\n-/**\n- * {@link Annotation} {@link PropertyValues} Adapter\n- *\n- * @see Annotation\n- * @see PropertyValues\n- * @since 2.5.11\n- */\n-class AnnotationPropertyValuesAdapter implements PropertyValues {\n-\n-    private final PropertyValues delegate;\n-\n-    /**\n-     * @param attributes\n-     * @param propertyResolver\n-     * @param ignoreAttributeNames\n-     * @since 2.7.3\n-     */\n-    public AnnotationPropertyValuesAdapter(Map<String, Object> attributes, PropertyResolver propertyResolver,\n-                                           String... ignoreAttributeNames) {\n-        this.delegate = new MutablePropertyValues(getAttributes(attributes, propertyResolver, ignoreAttributeNames));\n-    }\n-\n-    public AnnotationPropertyValuesAdapter(Annotation annotation, PropertyResolver propertyResolver,\n-                                           boolean ignoreDefaultValue, String... ignoreAttributeNames) {\n-        this.delegate = new MutablePropertyValues(getAttributes(annotation, propertyResolver, ignoreDefaultValue, ignoreAttributeNames));\n-    }\n-\n-    public AnnotationPropertyValuesAdapter(Annotation annotation, PropertyResolver propertyResolver, String... ignoreAttributeNames) {\n-        this(annotation, propertyResolver, true, ignoreAttributeNames);\n-    }\n-\n-    @Override\n-    public PropertyValue[] getPropertyValues() {\n-        return delegate.getPropertyValues();\n-    }\n-\n-    @Override\n-    public PropertyValue getPropertyValue(String propertyName) {\n-        return delegate.getPropertyValue(propertyName);\n-    }\n-\n-    @Override\n-    public PropertyValues changesSince(PropertyValues old) {\n-        return delegate.changesSince(old);\n-    }\n-\n-    @Override\n-    public boolean contains(String propertyName) {\n-        return delegate.contains(propertyName);\n-    }\n-\n-    @Override\n-    public boolean isEmpty() {\n-        return delegate.isEmpty();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.springframework.beans.MutablePropertyValues;\r\n+import org.springframework.beans.PropertyValue;\r\n+import org.springframework.beans.PropertyValues;\r\n+import org.springframework.core.env.PropertyResolver;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.util.Map;\r\n+\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\r\n+\r\n+/**\r\n+ * {@link Annotation} {@link PropertyValues} Adapter\r\n+ *\r\n+ * @see Annotation\r\n+ * @see PropertyValues\r\n+ * @since 2.5.11\r\n+ */\r\n+class AnnotationPropertyValuesAdapter implements PropertyValues {\r\n+\r\n+    private final PropertyValues delegate;\r\n+\r\n+    /**\r\n+     * @param attributes\r\n+     * @param propertyResolver\r\n+     * @param ignoreAttributeNames\r\n+     * @since 2.7.3\r\n+     */\r\n+    public AnnotationPropertyValuesAdapter(Map<String, Object> attributes, PropertyResolver propertyResolver,\r\n+                                           String... ignoreAttributeNames) {\r\n+        this.delegate = new MutablePropertyValues(getAttributes(attributes, propertyResolver, ignoreAttributeNames));\r\n+    }\r\n+\r\n+    public AnnotationPropertyValuesAdapter(Annotation annotation, PropertyResolver propertyResolver,\r\n+                                           boolean ignoreDefaultValue, String... ignoreAttributeNames) {\r\n+        this.delegate = new MutablePropertyValues(getAttributes(annotation, propertyResolver, ignoreDefaultValue, ignoreAttributeNames));\r\n+    }\r\n+\r\n+    public AnnotationPropertyValuesAdapter(Annotation annotation, PropertyResolver propertyResolver, String... ignoreAttributeNames) {\r\n+        this(annotation, propertyResolver, true, ignoreAttributeNames);\r\n+    }\r\n+\r\n+    @Override\r\n+    public PropertyValue[] getPropertyValues() {\r\n+        return delegate.getPropertyValues();\r\n+    }\r\n+\r\n+    @Override\r\n+    public PropertyValue getPropertyValue(String propertyName) {\r\n+        return delegate.getPropertyValue(propertyName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public PropertyValues changesSince(PropertyValues old) {\r\n+        return delegate.changesSince(old);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean contains(String propertyName) {\r\n+        return delegate.contains(propertyName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isEmpty() {\r\n+        return delegate.isEmpty();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/DubboConfigAliasPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/DubboConfigAliasPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.spring.context.annotation.DubboConfigConfigurationRegistrar;\n-\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.config.BeanPostProcessor;\n-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\n-\n-import static com.alibaba.spring.util.BeanRegistrar.hasAlias;\n-import static org.springframework.util.ObjectUtils.nullSafeEquals;\n-import static org.springframework.util.StringUtils.hasText;\n-\n-/**\n- * A Post-Processor class to set the alias of Dubbo Config bean using its {@link AbstractConfig#getId()}\n- *\n- * @since 2.7.5\n- */\n-public class DubboConfigAliasPostProcessor implements BeanDefinitionRegistryPostProcessor, BeanPostProcessor {\n-\n-    /**\n-     * The bean name of {@link DubboConfigConfigurationRegistrar}\n-     */\n-    public final static String BEAN_NAME = \"dubboConfigAliasPostProcessor\";\n-\n-    private BeanDefinitionRegistry registry;\n-\n-    @Override\n-    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\n-        this.registry = registry;\n-    }\n-\n-    @Override\n-    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\n-        // DO NOTHING\n-    }\n-\n-    @Override\n-    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {\n-        // DO NOTHING\n-        return bean;\n-    }\n-\n-    @Override\n-    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {\n-        if (bean instanceof AbstractConfig) {\n-            String id = ((AbstractConfig) bean).getId();\n-            if (hasText(id)                                     // id MUST be present in AbstractConfig\n-                    && !nullSafeEquals(id, beanName)            // id MUST NOT be equal to bean name\n-                    && !hasAlias(registry, beanName, id)) {     // id MUST NOT be present in AliasRegistry\n-                registry.registerAlias(beanName, id);\n-            }\n-        }\n-        return bean;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.spring.context.annotation.DubboConfigConfigurationRegistrar;\r\n+\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.config.BeanPostProcessor;\r\n+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\r\n+\r\n+import static com.alibaba.spring.util.BeanRegistrar.hasAlias;\r\n+import static org.springframework.util.ObjectUtils.nullSafeEquals;\r\n+import static org.springframework.util.StringUtils.hasText;\r\n+\r\n+/**\r\n+ * A Post-Processor class to set the alias of Dubbo Config bean using its {@link AbstractConfig#getId()}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboConfigAliasPostProcessor implements BeanDefinitionRegistryPostProcessor, BeanPostProcessor {\r\n+\r\n+    /**\r\n+     * The bean name of {@link DubboConfigConfigurationRegistrar}\r\n+     */\r\n+    public final static String BEAN_NAME = \"dubboConfigAliasPostProcessor\";\r\n+\r\n+    private BeanDefinitionRegistry registry;\r\n+\r\n+    @Override\r\n+    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\r\n+        this.registry = registry;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\r\n+        // DO NOTHING\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object postProcessBeforeInitialization(Object bean, String beanName) throws BeansException {\r\n+        // DO NOTHING\r\n+        return bean;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object postProcessAfterInitialization(Object bean, String beanName) throws BeansException {\r\n+        if (bean instanceof AbstractConfig) {\r\n+            String id = ((AbstractConfig) bean).getId();\r\n+            if (hasText(id)                                     // id MUST be present in AbstractConfig\r\n+                    && !nullSafeEquals(id, beanName)            // id MUST NOT be equal to bean name\r\n+                    && !hasAlias(registry, beanName, id)) {     // id MUST NOT be present in AliasRegistry\r\n+                registry.registerAlias(beanName, id);\r\n+            }\r\n+        }\r\n+        return bean;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceAnnotationBeanPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,416 +1,416 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.annotation.DubboReference;\n-import org.apache.dubbo.config.annotation.DubboService;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.spring.ReferenceBean;\n-import org.apache.dubbo.config.spring.ServiceBean;\n-\n-import com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor;\n-import com.alibaba.spring.util.AnnotationUtils;\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.annotation.InjectionMetadata;\n-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\n-import org.springframework.beans.factory.config.RuntimeBeanReference;\n-import org.springframework.beans.factory.support.AbstractBeanDefinition;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.context.ApplicationEvent;\n-import org.springframework.context.ApplicationListener;\n-import org.springframework.context.event.ContextRefreshedEvent;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.util.ObjectUtils;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Field;\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.TreeSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.stream.Collectors;\n-\n-import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\n-import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\n-import static org.apache.dubbo.config.spring.beans.factory.annotation.ServiceBeanNameBuilder.create;\n-import static org.springframework.util.StringUtils.hasText;\n-\n-/**\n- * {@link org.springframework.beans.factory.config.BeanPostProcessor} implementation\n- * that Consumer service {@link Reference} annotated fields\n- *\n- * @see DubboReference\n- * @see Reference\n- * @see com.alibaba.dubbo.config.annotation.Reference\n- * @since 2.5.7\n- */\n-public class ReferenceAnnotationBeanPostProcessor extends AbstractAnnotationBeanPostProcessor implements\n-        ApplicationContextAware, ApplicationListener {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ReferenceAnnotationBeanPostProcessor.class);\n-\n-    /**\n-     * The bean name of {@link ReferenceAnnotationBeanPostProcessor}\n-     */\n-    public static final String BEAN_NAME = \"referenceAnnotationBeanPostProcessor\";\n-\n-    /**\n-     * Cache size\n-     */\n-    private static final int CACHE_SIZE = Integer.getInteger(BEAN_NAME + \".cache.size\", 32);\n-\n-    private final ConcurrentMap<String, ReferenceBean<?>> referenceBeanCache =\n-            new ConcurrentHashMap<>(CACHE_SIZE);\n-\n-    private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedFieldReferenceBeanCache =\n-            new ConcurrentHashMap<>(CACHE_SIZE);\n-\n-    private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedMethodReferenceBeanCache =\n-            new ConcurrentHashMap<>(CACHE_SIZE);\n-\n-    private ApplicationContext applicationContext;\n-\n-    private static Map<String, TreeSet<String>> referencedBeanNameIdx = new HashMap<>();\n-\n-    /**\n-     * {@link com.alibaba.dubbo.config.annotation.Reference @com.alibaba.dubbo.config.annotation.Reference} has been supported since 2.7.3\n-     * <p>\n-     * {@link DubboReference @DubboReference} has been supported since 2.7.7\n-     */\n-    public ReferenceAnnotationBeanPostProcessor() {\n-        super(DubboReference.class, Reference.class, com.alibaba.dubbo.config.annotation.Reference.class);\n-    }\n-\n-    /**\n-     * Gets all beans of {@link ReferenceBean}\n-     *\n-     * @return non-null read-only {@link Collection}\n-     * @since 2.5.9\n-     */\n-    public Collection<ReferenceBean<?>> getReferenceBeans() {\n-        return referenceBeanCache.values();\n-    }\n-\n-    /**\n-     * Get {@link ReferenceBean} {@link Map} in injected field.\n-     *\n-     * @return non-null {@link Map}\n-     * @since 2.5.11\n-     */\n-    public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedFieldReferenceBeanMap() {\n-        return Collections.unmodifiableMap(injectedFieldReferenceBeanCache);\n-    }\n-\n-    /**\n-     * Get {@link ReferenceBean} {@link Map} in injected method.\n-     *\n-     * @return non-null {@link Map}\n-     * @since 2.5.11\n-     */\n-    public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap() {\n-        return Collections.unmodifiableMap(injectedMethodReferenceBeanCache);\n-    }\n-\n-    @Override\n-    protected Object doGetInjectedBean(AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,\n-                                       InjectionMetadata.InjectedElement injectedElement) throws Exception {\n-        /**\n-         * The name of bean that annotated Dubbo's {@link Service @Service} in local Spring {@link ApplicationContext}\n-         */\n-        String referencedBeanName = buildReferencedBeanName(attributes, injectedType);\n-\n-        /**\n-         * The name of bean that is declared by {@link Reference @Reference} annotation injection\n-         */\n-        String referenceBeanName = getReferenceBeanName(attributes, injectedType);\n-\n-        referencedBeanNameIdx.computeIfAbsent(referencedBeanName, k -> new TreeSet<String>()).add(referenceBeanName);\n-\n-        ReferenceBean referenceBean = buildReferenceBeanIfAbsent(referenceBeanName, attributes, injectedType);\n-\n-        boolean localServiceBean = isLocalServiceBean(referencedBeanName, referenceBean, attributes);\n-\n-        prepareReferenceBean(referencedBeanName, referenceBean, localServiceBean);\n-\n-        registerReferenceBean(referencedBeanName, referenceBean, attributes, localServiceBean, injectedType);\n-\n-        cacheInjectedReferenceBean(referenceBean, injectedElement);\n-\n-        return referenceBean.get();\n-    }\n-\n-    /**\n-     * Register an instance of {@link ReferenceBean} as a Spring Bean\n-     *\n-     * @param referencedBeanName The name of bean that annotated Dubbo's {@link Service @Service} in the Spring {@link ApplicationContext}\n-     * @param referenceBean      the instance of {@link ReferenceBean} is about to register into the Spring {@link ApplicationContext}\n-     * @param attributes         the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\n-     * @param localServiceBean   Is Local Service bean or not\n-     * @param interfaceClass     the {@link Class class} of Service interface\n-     * @since 2.7.3\n-     */\n-    private void registerReferenceBean(String referencedBeanName, ReferenceBean referenceBean,\n-                                       AnnotationAttributes attributes,\n-                                       boolean localServiceBean, Class<?> interfaceClass) {\n-\n-        ConfigurableListableBeanFactory beanFactory = getBeanFactory();\n-\n-        String beanName = getReferenceBeanName(attributes, interfaceClass);\n-\n-        if (localServiceBean) {  // If @Service bean is local one\n-            /**\n-             * Get  the @Service's BeanDefinition from {@link BeanFactory}\n-             * Refer to {@link ServiceAnnotationBeanPostProcessor#buildServiceBeanDefinition}\n-             */\n-            AbstractBeanDefinition beanDefinition = (AbstractBeanDefinition) beanFactory.getBeanDefinition(referencedBeanName);\n-            RuntimeBeanReference runtimeBeanReference = (RuntimeBeanReference) beanDefinition.getPropertyValues().get(\"ref\");\n-            // The name of bean annotated @Service\n-            String serviceBeanName = runtimeBeanReference.getBeanName();\n-            // register Alias rather than a new bean name, in order to reduce duplicated beans\n-            beanFactory.registerAlias(serviceBeanName, beanName);\n-        } else { // Remote @Service Bean\n-            if (!beanFactory.containsBean(beanName)) {\n-                beanFactory.registerSingleton(beanName, referenceBean);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Get the bean name of {@link ReferenceBean} if {@link Reference#id() id attribute} is present,\n-     * or {@link #generateReferenceBeanName(AnnotationAttributes, Class) generate}.\n-     *\n-     * @param attributes     the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\n-     * @param interfaceClass the {@link Class class} of Service interface\n-     * @return non-null\n-     * @since 2.7.3\n-     */\n-    private String getReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass) {\n-        // id attribute appears since 2.7.3\n-        String beanName = getAttribute(attributes, \"id\");\n-        if (!hasText(beanName)) {\n-            beanName = generateReferenceBeanName(attributes, interfaceClass);\n-        }\n-        return beanName;\n-    }\n-\n-    /**\n-     * Build the bean name of {@link ReferenceBean}\n-     *\n-     * @param attributes     the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\n-     * @param interfaceClass the {@link Class class} of Service interface\n-     * @return\n-     * @since 2.7.3\n-     */\n-    private String generateReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass) {\n-        StringBuilder beanNameBuilder = new StringBuilder(\"@Reference\");\n-\n-        if (!attributes.isEmpty()) {\n-            beanNameBuilder.append('(');\n-            for (Map.Entry<String, Object> entry : attributes.entrySet()) {\n-                String value;\n-                if (\"parameters\".equals(entry.getKey())) {\n-                    ArrayList<String> pairs = getParameterPairs(entry);\n-                    value = convertAttribute(pairs.stream().sorted().toArray());\n-                } else {\n-                    value = convertAttribute(entry.getValue());\n-                }\n-                beanNameBuilder.append(entry.getKey())\n-                        .append('=')\n-                        .append(value)\n-                        .append(',');\n-            }\n-            // replace the latest \",\" to be \")\"\n-            beanNameBuilder.setCharAt(beanNameBuilder.lastIndexOf(\",\"), ')');\n-        }\n-\n-        beanNameBuilder.append(\" \").append(interfaceClass.getName());\n-\n-        return beanNameBuilder.toString();\n-    }\n-\n-    private ArrayList<String> getParameterPairs(Map.Entry<String, Object> entry) {\n-        String[] entryValues = (String[]) entry.getValue();\n-        ArrayList<String> pairs = new ArrayList<>();\n-        // parameters spec is {key1,value1,key2,value2}\n-        for (int i = 0; i < entryValues.length / 2 * 2; i = i + 2) {\n-            pairs.add(entryValues[i] + \"=\" + entryValues[i + 1]);\n-        }\n-        return pairs;\n-    }\n-\n-    private String convertAttribute(Object obj) {\n-        if (obj == null) {\n-            return null;\n-        }\n-        if (obj instanceof Annotation) {\n-            AnnotationAttributes attributes = AnnotationUtils.getAnnotationAttributes((Annotation) obj, true);\n-            for (Map.Entry<String, Object> entry : attributes.entrySet()) {\n-                entry.setValue(convertAttribute(entry.getValue()));\n-            }\n-            return String.valueOf(attributes);\n-        } else if (obj.getClass().isArray()) {\n-            Object[] array = ObjectUtils.toObjectArray(obj);\n-            String[] newArray = new String[array.length];\n-            for (int i = 0; i < array.length; i++) {\n-                newArray[i] = convertAttribute(array[i]);\n-            }\n-            return Arrays.toString(Arrays.stream(newArray).sorted().toArray());\n-        } else {\n-            return String.valueOf(obj);\n-        }\n-    }\n-\n-    /**\n-     * Is Local Service bean or not?\n-     *\n-     * @param referencedBeanName the bean name to the referenced bean\n-     * @return If the target referenced bean is existed, return <code>true</code>, or <code>false</code>\n-     * @since 2.7.6\n-     */\n-    private boolean isLocalServiceBean(String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes) {\n-        return existsServiceBean(referencedBeanName) && !isRemoteReferenceBean(referenceBean, attributes);\n-    }\n-\n-    /**\n-     * Check the {@link ServiceBean} is exited or not\n-     *\n-     * @param referencedBeanName the bean name to the referenced bean\n-     * @return if exists, return <code>true</code>, or <code>false</code>\n-     * @revised 2.7.6\n-     */\n-    private boolean existsServiceBean(String referencedBeanName) {\n-        return applicationContext.containsBean(referencedBeanName) &&\n-                applicationContext.isTypeMatch(referencedBeanName, ServiceBean.class);\n-\n-    }\n-\n-    private boolean isRemoteReferenceBean(ReferenceBean referenceBean, AnnotationAttributes attributes) {\n-        boolean remote = Boolean.FALSE.equals(referenceBean.isInjvm()) || Boolean.FALSE.equals(attributes.get(\"injvm\"));\n-        return remote;\n-    }\n-\n-    /**\n-     * Prepare {@link ReferenceBean}\n-     *\n-     * @param referencedBeanName The name of bean that annotated Dubbo's {@link DubboService @DubboService}\n-     *                           in the Spring {@link ApplicationContext}\n-     * @param referenceBean      the instance of {@link ReferenceBean}\n-     * @param localServiceBean   Is Local Service bean or not\n-     * @since 2.7.8\n-     */\n-    private void prepareReferenceBean(String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean) {\n-        //  Issue : https://github.com/apache/dubbo/issues/6224\n-        if (localServiceBean) { // If the local @Service Bean exists\n-            referenceBean.setInjvm(Boolean.TRUE);\n-            exportServiceBeanIfNecessary(referencedBeanName); // If the referenced ServiceBean exits, export it immediately\n-        }\n-    }\n-\n-\n-    private void exportServiceBeanIfNecessary(String referencedBeanName) {\n-        if (existsServiceBean(referencedBeanName)) {\n-            ServiceBean serviceBean = getServiceBean(referencedBeanName);\n-            if (!serviceBean.isExported()) {\n-                serviceBean.export();\n-            }\n-        }\n-    }\n-\n-    private ServiceBean getServiceBean(String referencedBeanName) {\n-        return applicationContext.getBean(referencedBeanName, ServiceBean.class);\n-    }\n-\n-    @Override\n-    protected String buildInjectedObjectCacheKey(AnnotationAttributes attributes, Object bean, String beanName,\n-                                                 Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement) {\n-        return buildReferencedBeanName(attributes, injectedType) +\n-                \"#source=\" + (injectedElement.getMember()) +\n-                \"#attributes=\" + getAttributes(attributes, getEnvironment());\n-    }\n-\n-    /**\n-     * @param attributes           the attributes of {@link Reference @Reference}\n-     * @param serviceInterfaceType the type of Dubbo's service interface\n-     * @return The name of bean that annotated Dubbo's {@link Service @Service} in local Spring {@link ApplicationContext}\n-     */\n-    private String buildReferencedBeanName(AnnotationAttributes attributes, Class<?> serviceInterfaceType) {\n-        ServiceBeanNameBuilder serviceBeanNameBuilder = create(attributes, serviceInterfaceType, getEnvironment());\n-        return serviceBeanNameBuilder.build();\n-    }\n-\n-    private ReferenceBean buildReferenceBeanIfAbsent(String referenceBeanName, AnnotationAttributes attributes,\n-                                                     Class<?> referencedType)\n-            throws Exception {\n-\n-        ReferenceBean<?> referenceBean = referenceBeanCache.get(referenceBeanName);\n-\n-        if (referenceBean == null) {\n-            ReferenceBeanBuilder beanBuilder = ReferenceBeanBuilder\n-                    .create(attributes, applicationContext)\n-                    .interfaceClass(referencedType);\n-            referenceBean = beanBuilder.build();\n-            referenceBeanCache.put(referenceBeanName, referenceBean);\n-        } else if (!referencedType.isAssignableFrom(referenceBean.getInterfaceClass())) {\n-            throw new IllegalArgumentException(\"reference bean name \" + referenceBeanName + \" has been duplicated, but interfaceClass \" +\n-                    referenceBean.getInterfaceClass().getName() + \" cannot be assigned to \" + referencedType.getName());\n-        }\n-        return referenceBean;\n-    }\n-\n-    private void cacheInjectedReferenceBean(ReferenceBean referenceBean,\n-                                            InjectionMetadata.InjectedElement injectedElement) {\n-        if (injectedElement.getMember() instanceof Field) {\n-            injectedFieldReferenceBeanCache.put(injectedElement, referenceBean);\n-        } else if (injectedElement.getMember() instanceof Method) {\n-            injectedMethodReferenceBeanCache.put(injectedElement, referenceBean);\n-        }\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\n-        this.applicationContext = applicationContext;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-        super.destroy();\n-        this.referenceBeanCache.clear();\n-        this.injectedFieldReferenceBeanCache.clear();\n-        this.injectedMethodReferenceBeanCache.clear();\n-    }\n-\n-    @Override\n-    public void onApplicationEvent(ApplicationEvent event) {\n-        if (event instanceof ContextRefreshedEvent) {\n-            referencedBeanNameIdx.entrySet().stream().filter(e -> e.getValue().size() > 1).forEach(e -> {\n-                String logPrefix = e.getKey() + \" has \" + e.getValue().size() + \" reference instances, there are: \";\n-                logger.warn(e.getValue().stream().collect(Collectors.joining(\", \", logPrefix, \"\")));\n-            });\n-            referencedBeanNameIdx.clear();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.annotation.DubboReference;\r\n+import org.apache.dubbo.config.annotation.DubboService;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.spring.ReferenceBean;\r\n+import org.apache.dubbo.config.spring.ServiceBean;\r\n+\r\n+import com.alibaba.spring.beans.factory.annotation.AbstractAnnotationBeanPostProcessor;\r\n+import com.alibaba.spring.util.AnnotationUtils;\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.annotation.InjectionMetadata;\r\n+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\r\n+import org.springframework.beans.factory.config.RuntimeBeanReference;\r\n+import org.springframework.beans.factory.support.AbstractBeanDefinition;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.context.ApplicationEvent;\r\n+import org.springframework.context.ApplicationListener;\r\n+import org.springframework.context.event.ContextRefreshedEvent;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.util.ObjectUtils;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\r\n+import static org.apache.dubbo.config.spring.beans.factory.annotation.ServiceBeanNameBuilder.create;\r\n+import static org.springframework.util.StringUtils.hasText;\r\n+\r\n+/**\r\n+ * {@link org.springframework.beans.factory.config.BeanPostProcessor} implementation\r\n+ * that Consumer service {@link Reference} annotated fields\r\n+ *\r\n+ * @see DubboReference\r\n+ * @see Reference\r\n+ * @see com.alibaba.dubbo.config.annotation.Reference\r\n+ * @since 2.5.7\r\n+ */\r\n+public class ReferenceAnnotationBeanPostProcessor extends AbstractAnnotationBeanPostProcessor implements\r\n+        ApplicationContextAware, ApplicationListener {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ReferenceAnnotationBeanPostProcessor.class);\r\n+\r\n+    /**\r\n+     * The bean name of {@link ReferenceAnnotationBeanPostProcessor}\r\n+     */\r\n+    public static final String BEAN_NAME = \"referenceAnnotationBeanPostProcessor\";\r\n+\r\n+    /**\r\n+     * Cache size\r\n+     */\r\n+    private static final int CACHE_SIZE = Integer.getInteger(BEAN_NAME + \".cache.size\", 32);\r\n+\r\n+    private final ConcurrentMap<String, ReferenceBean<?>> referenceBeanCache =\r\n+            new ConcurrentHashMap<>(CACHE_SIZE);\r\n+\r\n+    private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedFieldReferenceBeanCache =\r\n+            new ConcurrentHashMap<>(CACHE_SIZE);\r\n+\r\n+    private final ConcurrentMap<InjectionMetadata.InjectedElement, ReferenceBean<?>> injectedMethodReferenceBeanCache =\r\n+            new ConcurrentHashMap<>(CACHE_SIZE);\r\n+\r\n+    private ApplicationContext applicationContext;\r\n+\r\n+    private static Map<String, TreeSet<String>> referencedBeanNameIdx = new HashMap<>();\r\n+\r\n+    /**\r\n+     * {@link com.alibaba.dubbo.config.annotation.Reference @com.alibaba.dubbo.config.annotation.Reference} has been supported since 2.7.3\r\n+     * <p>\r\n+     * {@link DubboReference @DubboReference} has been supported since 2.7.7\r\n+     */\r\n+    public ReferenceAnnotationBeanPostProcessor() {\r\n+        super(DubboReference.class, Reference.class, com.alibaba.dubbo.config.annotation.Reference.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets all beans of {@link ReferenceBean}\r\n+     *\r\n+     * @return non-null read-only {@link Collection}\r\n+     * @since 2.5.9\r\n+     */\r\n+    public Collection<ReferenceBean<?>> getReferenceBeans() {\r\n+        return referenceBeanCache.values();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get {@link ReferenceBean} {@link Map} in injected field.\r\n+     *\r\n+     * @return non-null {@link Map}\r\n+     * @since 2.5.11\r\n+     */\r\n+    public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedFieldReferenceBeanMap() {\r\n+        return Collections.unmodifiableMap(injectedFieldReferenceBeanCache);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get {@link ReferenceBean} {@link Map} in injected method.\r\n+     *\r\n+     * @return non-null {@link Map}\r\n+     * @since 2.5.11\r\n+     */\r\n+    public Map<InjectionMetadata.InjectedElement, ReferenceBean<?>> getInjectedMethodReferenceBeanMap() {\r\n+        return Collections.unmodifiableMap(injectedMethodReferenceBeanCache);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Object doGetInjectedBean(AnnotationAttributes attributes, Object bean, String beanName, Class<?> injectedType,\r\n+                                       InjectionMetadata.InjectedElement injectedElement) throws Exception {\r\n+        /**\r\n+         * The name of bean that annotated Dubbo's {@link Service @Service} in local Spring {@link ApplicationContext}\r\n+         */\r\n+        String referencedBeanName = buildReferencedBeanName(attributes, injectedType);\r\n+\r\n+        /**\r\n+         * The name of bean that is declared by {@link Reference @Reference} annotation injection\r\n+         */\r\n+        String referenceBeanName = getReferenceBeanName(attributes, injectedType);\r\n+\r\n+        referencedBeanNameIdx.computeIfAbsent(referencedBeanName, k -> new TreeSet<String>()).add(referenceBeanName);\r\n+\r\n+        ReferenceBean referenceBean = buildReferenceBeanIfAbsent(referenceBeanName, attributes, injectedType);\r\n+\r\n+        boolean localServiceBean = isLocalServiceBean(referencedBeanName, referenceBean, attributes);\r\n+\r\n+        prepareReferenceBean(referencedBeanName, referenceBean, localServiceBean);\r\n+\r\n+        registerReferenceBean(referencedBeanName, referenceBean, attributes, localServiceBean, injectedType);\r\n+\r\n+        cacheInjectedReferenceBean(referenceBean, injectedElement);\r\n+\r\n+        return referenceBean.get();\r\n+    }\r\n+\r\n+    /**\r\n+     * Register an instance of {@link ReferenceBean} as a Spring Bean\r\n+     *\r\n+     * @param referencedBeanName The name of bean that annotated Dubbo's {@link Service @Service} in the Spring {@link ApplicationContext}\r\n+     * @param referenceBean      the instance of {@link ReferenceBean} is about to register into the Spring {@link ApplicationContext}\r\n+     * @param attributes         the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\r\n+     * @param localServiceBean   Is Local Service bean or not\r\n+     * @param interfaceClass     the {@link Class class} of Service interface\r\n+     * @since 2.7.3\r\n+     */\r\n+    private void registerReferenceBean(String referencedBeanName, ReferenceBean referenceBean,\r\n+                                       AnnotationAttributes attributes,\r\n+                                       boolean localServiceBean, Class<?> interfaceClass) {\r\n+\r\n+        ConfigurableListableBeanFactory beanFactory = getBeanFactory();\r\n+\r\n+        String beanName = getReferenceBeanName(attributes, interfaceClass);\r\n+\r\n+        if (localServiceBean) {  // If @Service bean is local one\r\n+            /**\r\n+             * Get  the @Service's BeanDefinition from {@link BeanFactory}\r\n+             * Refer to {@link ServiceAnnotationBeanPostProcessor#buildServiceBeanDefinition}\r\n+             */\r\n+            AbstractBeanDefinition beanDefinition = (AbstractBeanDefinition) beanFactory.getBeanDefinition(referencedBeanName);\r\n+            RuntimeBeanReference runtimeBeanReference = (RuntimeBeanReference) beanDefinition.getPropertyValues().get(\"ref\");\r\n+            // The name of bean annotated @Service\r\n+            String serviceBeanName = runtimeBeanReference.getBeanName();\r\n+            // register Alias rather than a new bean name, in order to reduce duplicated beans\r\n+            beanFactory.registerAlias(serviceBeanName, beanName);\r\n+        } else { // Remote @Service Bean\r\n+            if (!beanFactory.containsBean(beanName)) {\r\n+                beanFactory.registerSingleton(beanName, referenceBean);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the bean name of {@link ReferenceBean} if {@link Reference#id() id attribute} is present,\r\n+     * or {@link #generateReferenceBeanName(AnnotationAttributes, Class) generate}.\r\n+     *\r\n+     * @param attributes     the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\r\n+     * @param interfaceClass the {@link Class class} of Service interface\r\n+     * @return non-null\r\n+     * @since 2.7.3\r\n+     */\r\n+    private String getReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass) {\r\n+        // id attribute appears since 2.7.3\r\n+        String beanName = getAttribute(attributes, \"id\");\r\n+        if (!hasText(beanName)) {\r\n+            beanName = generateReferenceBeanName(attributes, interfaceClass);\r\n+        }\r\n+        return beanName;\r\n+    }\r\n+\r\n+    /**\r\n+     * Build the bean name of {@link ReferenceBean}\r\n+     *\r\n+     * @param attributes     the {@link AnnotationAttributes attributes} of {@link Reference @Reference}\r\n+     * @param interfaceClass the {@link Class class} of Service interface\r\n+     * @return\r\n+     * @since 2.7.3\r\n+     */\r\n+    private String generateReferenceBeanName(AnnotationAttributes attributes, Class<?> interfaceClass) {\r\n+        StringBuilder beanNameBuilder = new StringBuilder(\"@Reference\");\r\n+\r\n+        if (!attributes.isEmpty()) {\r\n+            beanNameBuilder.append('(');\r\n+            for (Map.Entry<String, Object> entry : attributes.entrySet()) {\r\n+                String value;\r\n+                if (\"parameters\".equals(entry.getKey())) {\r\n+                    ArrayList<String> pairs = getParameterPairs(entry);\r\n+                    value = convertAttribute(pairs.stream().sorted().toArray());\r\n+                } else {\r\n+                    value = convertAttribute(entry.getValue());\r\n+                }\r\n+                beanNameBuilder.append(entry.getKey())\r\n+                        .append('=')\r\n+                        .append(value)\r\n+                        .append(',');\r\n+            }\r\n+            // replace the latest \",\" to be \")\"\r\n+            beanNameBuilder.setCharAt(beanNameBuilder.lastIndexOf(\",\"), ')');\r\n+        }\r\n+\r\n+        beanNameBuilder.append(\" \").append(interfaceClass.getName());\r\n+\r\n+        return beanNameBuilder.toString();\r\n+    }\r\n+\r\n+    private ArrayList<String> getParameterPairs(Map.Entry<String, Object> entry) {\r\n+        String[] entryValues = (String[]) entry.getValue();\r\n+        ArrayList<String> pairs = new ArrayList<>();\r\n+        // parameters spec is {key1,value1,key2,value2}\r\n+        for (int i = 0; i < entryValues.length / 2 * 2; i = i + 2) {\r\n+            pairs.add(entryValues[i] + \"=\" + entryValues[i + 1]);\r\n+        }\r\n+        return pairs;\r\n+    }\r\n+\r\n+    private String convertAttribute(Object obj) {\r\n+        if (obj == null) {\r\n+            return null;\r\n+        }\r\n+        if (obj instanceof Annotation) {\r\n+            AnnotationAttributes attributes = AnnotationUtils.getAnnotationAttributes((Annotation) obj, true);\r\n+            for (Map.Entry<String, Object> entry : attributes.entrySet()) {\r\n+                entry.setValue(convertAttribute(entry.getValue()));\r\n+            }\r\n+            return String.valueOf(attributes);\r\n+        } else if (obj.getClass().isArray()) {\r\n+            Object[] array = ObjectUtils.toObjectArray(obj);\r\n+            String[] newArray = new String[array.length];\r\n+            for (int i = 0; i < array.length; i++) {\r\n+                newArray[i] = convertAttribute(array[i]);\r\n+            }\r\n+            return Arrays.toString(Arrays.stream(newArray).sorted().toArray());\r\n+        } else {\r\n+            return String.valueOf(obj);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Is Local Service bean or not?\r\n+     *\r\n+     * @param referencedBeanName the bean name to the referenced bean\r\n+     * @return If the target referenced bean is existed, return <code>true</code>, or <code>false</code>\r\n+     * @since 2.7.6\r\n+     */\r\n+    private boolean isLocalServiceBean(String referencedBeanName, ReferenceBean referenceBean, AnnotationAttributes attributes) {\r\n+        return existsServiceBean(referencedBeanName) && !isRemoteReferenceBean(referenceBean, attributes);\r\n+    }\r\n+\r\n+    /**\r\n+     * Check the {@link ServiceBean} is exited or not\r\n+     *\r\n+     * @param referencedBeanName the bean name to the referenced bean\r\n+     * @return if exists, return <code>true</code>, or <code>false</code>\r\n+     * @revised 2.7.6\r\n+     */\r\n+    private boolean existsServiceBean(String referencedBeanName) {\r\n+        return applicationContext.containsBean(referencedBeanName) &&\r\n+                applicationContext.isTypeMatch(referencedBeanName, ServiceBean.class);\r\n+\r\n+    }\r\n+\r\n+    private boolean isRemoteReferenceBean(ReferenceBean referenceBean, AnnotationAttributes attributes) {\r\n+        boolean remote = Boolean.FALSE.equals(referenceBean.isInjvm()) || Boolean.FALSE.equals(attributes.get(\"injvm\"));\r\n+        return remote;\r\n+    }\r\n+\r\n+    /**\r\n+     * Prepare {@link ReferenceBean}\r\n+     *\r\n+     * @param referencedBeanName The name of bean that annotated Dubbo's {@link DubboService @DubboService}\r\n+     *                           in the Spring {@link ApplicationContext}\r\n+     * @param referenceBean      the instance of {@link ReferenceBean}\r\n+     * @param localServiceBean   Is Local Service bean or not\r\n+     * @since 2.7.8\r\n+     */\r\n+    private void prepareReferenceBean(String referencedBeanName, ReferenceBean referenceBean, boolean localServiceBean) {\r\n+        //  Issue : https://github.com/apache/dubbo/issues/6224\r\n+        if (localServiceBean) { // If the local @Service Bean exists\r\n+            referenceBean.setInjvm(Boolean.TRUE);\r\n+            exportServiceBeanIfNecessary(referencedBeanName); // If the referenced ServiceBean exits, export it immediately\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    private void exportServiceBeanIfNecessary(String referencedBeanName) {\r\n+        if (existsServiceBean(referencedBeanName)) {\r\n+            ServiceBean serviceBean = getServiceBean(referencedBeanName);\r\n+            if (!serviceBean.isExported()) {\r\n+                serviceBean.export();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private ServiceBean getServiceBean(String referencedBeanName) {\r\n+        return applicationContext.getBean(referencedBeanName, ServiceBean.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String buildInjectedObjectCacheKey(AnnotationAttributes attributes, Object bean, String beanName,\r\n+                                                 Class<?> injectedType, InjectionMetadata.InjectedElement injectedElement) {\r\n+        return buildReferencedBeanName(attributes, injectedType) +\r\n+                \"#source=\" + (injectedElement.getMember()) +\r\n+                \"#attributes=\" + getAttributes(attributes, getEnvironment());\r\n+    }\r\n+\r\n+    /**\r\n+     * @param attributes           the attributes of {@link Reference @Reference}\r\n+     * @param serviceInterfaceType the type of Dubbo's service interface\r\n+     * @return The name of bean that annotated Dubbo's {@link Service @Service} in local Spring {@link ApplicationContext}\r\n+     */\r\n+    private String buildReferencedBeanName(AnnotationAttributes attributes, Class<?> serviceInterfaceType) {\r\n+        ServiceBeanNameBuilder serviceBeanNameBuilder = create(attributes, serviceInterfaceType, getEnvironment());\r\n+        return serviceBeanNameBuilder.build();\r\n+    }\r\n+\r\n+    private ReferenceBean buildReferenceBeanIfAbsent(String referenceBeanName, AnnotationAttributes attributes,\r\n+                                                     Class<?> referencedType)\r\n+            throws Exception {\r\n+\r\n+        ReferenceBean<?> referenceBean = referenceBeanCache.get(referenceBeanName);\r\n+\r\n+        if (referenceBean == null) {\r\n+            ReferenceBeanBuilder beanBuilder = ReferenceBeanBuilder\r\n+                    .create(attributes, applicationContext)\r\n+                    .interfaceClass(referencedType);\r\n+            referenceBean = beanBuilder.build();\r\n+            referenceBeanCache.put(referenceBeanName, referenceBean);\r\n+        } else if (!referencedType.isAssignableFrom(referenceBean.getInterfaceClass())) {\r\n+            throw new IllegalArgumentException(\"reference bean name \" + referenceBeanName + \" has been duplicated, but interfaceClass \" +\r\n+                    referenceBean.getInterfaceClass().getName() + \" cannot be assigned to \" + referencedType.getName());\r\n+        }\r\n+        return referenceBean;\r\n+    }\r\n+\r\n+    private void cacheInjectedReferenceBean(ReferenceBean referenceBean,\r\n+                                            InjectionMetadata.InjectedElement injectedElement) {\r\n+        if (injectedElement.getMember() instanceof Field) {\r\n+            injectedFieldReferenceBeanCache.put(injectedElement, referenceBean);\r\n+        } else if (injectedElement.getMember() instanceof Method) {\r\n+            injectedMethodReferenceBeanCache.put(injectedElement, referenceBean);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\r\n+        this.applicationContext = applicationContext;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+        super.destroy();\r\n+        this.referenceBeanCache.clear();\r\n+        this.injectedFieldReferenceBeanCache.clear();\r\n+        this.injectedMethodReferenceBeanCache.clear();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onApplicationEvent(ApplicationEvent event) {\r\n+        if (event instanceof ContextRefreshedEvent) {\r\n+            referencedBeanNameIdx.entrySet().stream().filter(e -> e.getValue().size() > 1).forEach(e -> {\r\n+                String logPrefix = e.getKey() + \" has \" + e.getValue().size() + \" reference instances, there are: \";\r\n+                logger.warn(e.getValue().stream().collect(Collectors.joining(\", \", logPrefix, \"\")));\r\n+            });\r\n+            referencedBeanNameIdx.clear();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/ReferenceBeanBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,177 +1,177 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.annotation.Method;\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.spring.ReferenceBean;\n-import org.springframework.beans.propertyeditors.StringTrimmerEditor;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.util.Assert;\n-import org.springframework.util.StringUtils;\n-import org.springframework.validation.DataBinder;\n-\n-import java.beans.PropertyEditorSupport;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\n-import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\n-import static com.alibaba.spring.util.ObjectUtils.of;\n-import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveServiceInterfaceClass;\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\n-import static org.springframework.core.annotation.AnnotationAttributes.fromMap;\n-import static org.springframework.util.StringUtils.commaDelimitedListToStringArray;\n-\n-/**\n- * {@link ReferenceBean} Builder\n- *\n- * @since 2.5.7\n- */\n-class ReferenceBeanBuilder extends AnnotatedInterfaceConfigBeanBuilder<ReferenceBean> {\n-\n-    // Ignore those fields\n-    static final String[] IGNORE_FIELD_NAMES = of(\"application\", \"module\", \"consumer\", \"monitor\", \"registry\");\n-\n-    private ReferenceBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext) {\n-        super(attributes, applicationContext);\n-    }\n-\n-    private void configureInterface(AnnotationAttributes attributes, ReferenceBean referenceBean) {\n-        Boolean generic = getAttribute(attributes, \"generic\");\n-        if (generic != null && generic) {\n-            // it's a generic reference\n-            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\n-            Assert.hasText(interfaceClassName,\n-                    \"@Reference interfaceName() must be present when reference a generic service!\");\n-            referenceBean.setInterface(interfaceClassName);\n-            return;\n-        }\n-\n-        Class<?> serviceInterfaceClass = resolveServiceInterfaceClass(attributes, interfaceClass);\n-\n-        Assert.isTrue(serviceInterfaceClass.isInterface(),\n-                \"The class of field or method that was annotated @Reference is not an interface!\");\n-\n-        referenceBean.setInterface(serviceInterfaceClass);\n-\n-    }\n-\n-\n-    private void configureConsumerConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean) {\n-\n-        String consumerBeanName = getAttribute(attributes, \"consumer\");\n-\n-        ConsumerConfig consumerConfig = getOptionalBean(applicationContext, consumerBeanName, ConsumerConfig.class);\n-\n-        referenceBean.setConsumer(consumerConfig);\n-\n-    }\n-\n-    void configureMethodConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean) {\n-        Method[] methods = (Method[]) attributes.get(\"methods\");\n-        List<MethodConfig> methodConfigs = MethodConfig.constructMethodConfig(methods);\n-        if (!methodConfigs.isEmpty()) {\n-            referenceBean.setMethods(methodConfigs);\n-        }\n-    }\n-\n-    @Override\n-    protected ReferenceBean doBuild() {\n-        return new ReferenceBean<Object>();\n-    }\n-\n-    @Override\n-    protected void preConfigureBean(AnnotationAttributes attributes, ReferenceBean referenceBean) {\n-        Assert.notNull(interfaceClass, \"The interface class must set first!\");\n-        DataBinder dataBinder = new DataBinder(referenceBean);\n-        // Register CustomEditors for special fields\n-        dataBinder.registerCustomEditor(String.class, \"filter\", new StringTrimmerEditor(true));\n-        dataBinder.registerCustomEditor(String.class, \"listener\", new StringTrimmerEditor(true));\n-        dataBinder.registerCustomEditor(Map.class, \"parameters\", new PropertyEditorSupport() {\n-            @Override\n-            public void setAsText(String text) throws java.lang.IllegalArgumentException {\n-                // Trim all whitespace\n-                String content = StringUtils.trimAllWhitespace(text);\n-                if (!StringUtils.hasText(content)) { // No content , ignore directly\n-                    return;\n-                }\n-                // replace \"=\" to \",\"\n-                content = StringUtils.replace(content, \"=\", \",\");\n-                // replace \":\" to \",\"\n-                content = StringUtils.replace(content, \":\", \",\");\n-                // String[] to Map\n-                Map<String, String> parameters = CollectionUtils.toStringMap(commaDelimitedListToStringArray(content));\n-                setValue(parameters);\n-            }\n-        });\n-\n-        // Bind annotation attributes\n-        dataBinder.bind(new AnnotationPropertyValuesAdapter(attributes, applicationContext.getEnvironment(), IGNORE_FIELD_NAMES));\n-\n-    }\n-\n-\n-    @Override\n-    protected String resolveModuleConfigBeanName(AnnotationAttributes attributes) {\n-        return getAttribute(attributes, \"module\");\n-    }\n-\n-    @Override\n-    protected String resolveApplicationConfigBeanName(AnnotationAttributes attributes) {\n-        return getAttribute(attributes, \"application\");\n-    }\n-\n-    @Override\n-    protected String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes) {\n-        return getAttribute(attributes, \"registry\");\n-    }\n-\n-    @Override\n-    protected String resolveMonitorConfigBeanName(AnnotationAttributes attributes) {\n-        return getAttribute(attributes, \"monitor\");\n-    }\n-\n-    @Override\n-    protected void postConfigureBean(AnnotationAttributes attributes, ReferenceBean bean) throws Exception {\n-\n-        bean.setApplicationContext(applicationContext);\n-\n-        configureInterface(attributes, bean);\n-\n-        configureConsumerConfig(attributes, bean);\n-\n-        configureMethodConfig(attributes, bean);\n-\n-        bean.afterPropertiesSet();\n-\n-    }\n-\n-    @Deprecated\n-    public static ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,\n-                                              ApplicationContext applicationContext) {\n-        return create(fromMap(getAttributes(reference, applicationContext.getEnvironment(), true)), applicationContext);\n-    }\n-\n-    public static ReferenceBeanBuilder create(AnnotationAttributes attributes, ApplicationContext applicationContext) {\n-        return new ReferenceBeanBuilder(attributes, applicationContext);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.annotation.Method;\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.spring.ReferenceBean;\r\n+import org.springframework.beans.propertyeditors.StringTrimmerEditor;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.util.Assert;\r\n+import org.springframework.util.StringUtils;\r\n+import org.springframework.validation.DataBinder;\r\n+\r\n+import java.beans.PropertyEditorSupport;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttributes;\r\n+import static com.alibaba.spring.util.ObjectUtils.of;\r\n+import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveServiceInterfaceClass;\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\r\n+import static org.springframework.core.annotation.AnnotationAttributes.fromMap;\r\n+import static org.springframework.util.StringUtils.commaDelimitedListToStringArray;\r\n+\r\n+/**\r\n+ * {@link ReferenceBean} Builder\r\n+ *\r\n+ * @since 2.5.7\r\n+ */\r\n+class ReferenceBeanBuilder extends AnnotatedInterfaceConfigBeanBuilder<ReferenceBean> {\r\n+\r\n+    // Ignore those fields\r\n+    static final String[] IGNORE_FIELD_NAMES = of(\"application\", \"module\", \"consumer\", \"monitor\", \"registry\");\r\n+\r\n+    private ReferenceBeanBuilder(AnnotationAttributes attributes, ApplicationContext applicationContext) {\r\n+        super(attributes, applicationContext);\r\n+    }\r\n+\r\n+    private void configureInterface(AnnotationAttributes attributes, ReferenceBean referenceBean) {\r\n+        Boolean generic = getAttribute(attributes, \"generic\");\r\n+        if (generic != null && generic) {\r\n+            // it's a generic reference\r\n+            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\r\n+            Assert.hasText(interfaceClassName,\r\n+                    \"@Reference interfaceName() must be present when reference a generic service!\");\r\n+            referenceBean.setInterface(interfaceClassName);\r\n+            return;\r\n+        }\r\n+\r\n+        Class<?> serviceInterfaceClass = resolveServiceInterfaceClass(attributes, interfaceClass);\r\n+\r\n+        Assert.isTrue(serviceInterfaceClass.isInterface(),\r\n+                \"The class of field or method that was annotated @Reference is not an interface!\");\r\n+\r\n+        referenceBean.setInterface(serviceInterfaceClass);\r\n+\r\n+    }\r\n+\r\n+\r\n+    private void configureConsumerConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean) {\r\n+\r\n+        String consumerBeanName = getAttribute(attributes, \"consumer\");\r\n+\r\n+        ConsumerConfig consumerConfig = getOptionalBean(applicationContext, consumerBeanName, ConsumerConfig.class);\r\n+\r\n+        referenceBean.setConsumer(consumerConfig);\r\n+\r\n+    }\r\n+\r\n+    void configureMethodConfig(AnnotationAttributes attributes, ReferenceBean<?> referenceBean) {\r\n+        Method[] methods = (Method[]) attributes.get(\"methods\");\r\n+        List<MethodConfig> methodConfigs = MethodConfig.constructMethodConfig(methods);\r\n+        if (!methodConfigs.isEmpty()) {\r\n+            referenceBean.setMethods(methodConfigs);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ReferenceBean doBuild() {\r\n+        return new ReferenceBean<Object>();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void preConfigureBean(AnnotationAttributes attributes, ReferenceBean referenceBean) {\r\n+        Assert.notNull(interfaceClass, \"The interface class must set first!\");\r\n+        DataBinder dataBinder = new DataBinder(referenceBean);\r\n+        // Register CustomEditors for special fields\r\n+        dataBinder.registerCustomEditor(String.class, \"filter\", new StringTrimmerEditor(true));\r\n+        dataBinder.registerCustomEditor(String.class, \"listener\", new StringTrimmerEditor(true));\r\n+        dataBinder.registerCustomEditor(Map.class, \"parameters\", new PropertyEditorSupport() {\r\n+            @Override\r\n+            public void setAsText(String text) throws java.lang.IllegalArgumentException {\r\n+                // Trim all whitespace\r\n+                String content = StringUtils.trimAllWhitespace(text);\r\n+                if (!StringUtils.hasText(content)) { // No content , ignore directly\r\n+                    return;\r\n+                }\r\n+                // replace \"=\" to \",\"\r\n+                content = StringUtils.replace(content, \"=\", \",\");\r\n+                // replace \":\" to \",\"\r\n+                content = StringUtils.replace(content, \":\", \",\");\r\n+                // String[] to Map\r\n+                Map<String, String> parameters = CollectionUtils.toStringMap(commaDelimitedListToStringArray(content));\r\n+                setValue(parameters);\r\n+            }\r\n+        });\r\n+\r\n+        // Bind annotation attributes\r\n+        dataBinder.bind(new AnnotationPropertyValuesAdapter(attributes, applicationContext.getEnvironment(), IGNORE_FIELD_NAMES));\r\n+\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    protected String resolveModuleConfigBeanName(AnnotationAttributes attributes) {\r\n+        return getAttribute(attributes, \"module\");\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveApplicationConfigBeanName(AnnotationAttributes attributes) {\r\n+        return getAttribute(attributes, \"application\");\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String[] resolveRegistryConfigBeanNames(AnnotationAttributes attributes) {\r\n+        return getAttribute(attributes, \"registry\");\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveMonitorConfigBeanName(AnnotationAttributes attributes) {\r\n+        return getAttribute(attributes, \"monitor\");\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void postConfigureBean(AnnotationAttributes attributes, ReferenceBean bean) throws Exception {\r\n+\r\n+        bean.setApplicationContext(applicationContext);\r\n+\r\n+        configureInterface(attributes, bean);\r\n+\r\n+        configureConsumerConfig(attributes, bean);\r\n+\r\n+        configureMethodConfig(attributes, bean);\r\n+\r\n+        bean.afterPropertiesSet();\r\n+\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public static ReferenceBeanBuilder create(Reference reference, ClassLoader classLoader,\r\n+                                              ApplicationContext applicationContext) {\r\n+        return create(fromMap(getAttributes(reference, applicationContext.getEnvironment(), true)), applicationContext);\r\n+    }\r\n+\r\n+    public static ReferenceBeanBuilder create(AnnotationAttributes attributes, ApplicationContext applicationContext) {\r\n+        return new ReferenceBeanBuilder(attributes, applicationContext);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceAnnotationBeanPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.config.annotation.Service;\n-\n-import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\n-\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.LinkedHashSet;\n-import java.util.Set;\n-\n-/**\n- * {@link Service} Annotation {@link BeanDefinitionRegistryPostProcessor Bean Definition Registry Post Processor}\n- *\n- * @since 2.5.8\n- * @deprecated Recommend {@link ServiceClassPostProcessor} as the substitute\n- */\n-@Deprecated\n-public class ServiceAnnotationBeanPostProcessor extends ServiceClassPostProcessor {\n-\n-    public ServiceAnnotationBeanPostProcessor(String... packagesToScan) {\n-        this(Arrays.asList(packagesToScan));\n-    }\n-\n-    public ServiceAnnotationBeanPostProcessor(Collection<String> packagesToScan) {\n-        this(new LinkedHashSet<>(packagesToScan));\n-    }\n-\n-    public ServiceAnnotationBeanPostProcessor(Set<String> packagesToScan) {\n-        super(packagesToScan);\n-    }\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * {@link Service} Annotation {@link BeanDefinitionRegistryPostProcessor Bean Definition Registry Post Processor}\r\n+ *\r\n+ * @since 2.5.8\r\n+ * @deprecated Recommend {@link ServiceClassPostProcessor} as the substitute\r\n+ */\r\n+@Deprecated\r\n+public class ServiceAnnotationBeanPostProcessor extends ServiceClassPostProcessor {\r\n+\r\n+    public ServiceAnnotationBeanPostProcessor(String... packagesToScan) {\r\n+        this(Arrays.asList(packagesToScan));\r\n+    }\r\n+\r\n+    public ServiceAnnotationBeanPostProcessor(Collection<String> packagesToScan) {\r\n+        this(new LinkedHashSet<>(packagesToScan));\r\n+    }\r\n+\r\n+    public ServiceAnnotationBeanPostProcessor(Set<String> packagesToScan) {\r\n+        super(packagesToScan);\r\n+    }\r\n+\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceBeanNameBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.spring.ReferenceBean;\n-import org.apache.dubbo.config.spring.ServiceBean;\n-\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.core.env.Environment;\n-import org.springframework.util.StringUtils;\n-\n-import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\n-import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveInterfaceName;\n-import static org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes;\n-\n-/**\n- * Dubbo {@link Service @Service} Bean Builder\n- *\n- * @see Service\n- * @see Reference\n- * @see ServiceBean\n- * @see ReferenceBean\n- * @since 2.6.5\n- */\n-public class ServiceBeanNameBuilder {\n-\n-    private static final String SEPARATOR = \":\";\n-\n-    // Required\n-    private final String interfaceClassName;\n-\n-    private final Environment environment;\n-\n-    // Optional\n-    private String version;\n-\n-    private String group;\n-\n-    private ServiceBeanNameBuilder(Class<?> interfaceClass, Environment environment) {\n-        this(interfaceClass.getName(), environment);\n-    }\n-\n-    private ServiceBeanNameBuilder(String interfaceClassName, Environment environment) {\n-        this.interfaceClassName = interfaceClassName;\n-        this.environment = environment;\n-    }\n-\n-    private ServiceBeanNameBuilder(AnnotationAttributes attributes, Class<?> defaultInterfaceClass, Environment environment) {\n-        this(resolveInterfaceName(attributes, defaultInterfaceClass), environment);\n-        this.group(getAttribute(attributes,\"group\"));\n-        this.version(getAttribute(attributes,\"version\"));\n-    }\n-\n-    /**\n-     * @param attributes\n-     * @param defaultInterfaceClass\n-     * @param environment\n-     * @return\n-     * @since 2.7.3\n-     */\n-    public static ServiceBeanNameBuilder create(AnnotationAttributes attributes, Class<?> defaultInterfaceClass, Environment environment) {\n-        return new ServiceBeanNameBuilder(attributes, defaultInterfaceClass, environment);\n-    }\n-\n-    public static ServiceBeanNameBuilder create(Class<?> interfaceClass, Environment environment) {\n-        return new ServiceBeanNameBuilder(interfaceClass, environment);\n-    }\n-\n-    public static ServiceBeanNameBuilder create(Service service, Class<?> interfaceClass, Environment environment) {\n-        return create(getAnnotationAttributes(service, false, false), interfaceClass, environment);\n-    }\n-\n-    public static ServiceBeanNameBuilder create(Reference reference, Class<?> interfaceClass, Environment environment) {\n-        return create(getAnnotationAttributes(reference, false, false), interfaceClass, environment);\n-    }\n-\n-    private static void append(StringBuilder builder, String value) {\n-        if (StringUtils.hasText(value)) {\n-            builder.append(SEPARATOR).append(value);\n-        }\n-    }\n-\n-    public ServiceBeanNameBuilder group(String group) {\n-        this.group = group;\n-        return this;\n-    }\n-\n-    public ServiceBeanNameBuilder version(String version) {\n-        this.version = version;\n-        return this;\n-    }\n-\n-    public String build() {\n-        StringBuilder beanNameBuilder = new StringBuilder(\"ServiceBean\");\n-        // Required\n-        append(beanNameBuilder, interfaceClassName);\n-        // Optional\n-        append(beanNameBuilder, version);\n-        append(beanNameBuilder, group);\n-        // Build and remove last \":\"\n-        String rawBeanName = beanNameBuilder.toString();\n-        // Resolve placeholders\n-        return environment.resolvePlaceholders(rawBeanName);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.spring.ReferenceBean;\r\n+import org.apache.dubbo.config.spring.ServiceBean;\r\n+\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.core.env.Environment;\r\n+import org.springframework.util.StringUtils;\r\n+\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\r\n+import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveInterfaceName;\r\n+import static org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes;\r\n+\r\n+/**\r\n+ * Dubbo {@link Service @Service} Bean Builder\r\n+ *\r\n+ * @see Service\r\n+ * @see Reference\r\n+ * @see ServiceBean\r\n+ * @see ReferenceBean\r\n+ * @since 2.6.5\r\n+ */\r\n+public class ServiceBeanNameBuilder {\r\n+\r\n+    private static final String SEPARATOR = \":\";\r\n+\r\n+    // Required\r\n+    private final String interfaceClassName;\r\n+\r\n+    private final Environment environment;\r\n+\r\n+    // Optional\r\n+    private String version;\r\n+\r\n+    private String group;\r\n+\r\n+    private ServiceBeanNameBuilder(Class<?> interfaceClass, Environment environment) {\r\n+        this(interfaceClass.getName(), environment);\r\n+    }\r\n+\r\n+    private ServiceBeanNameBuilder(String interfaceClassName, Environment environment) {\r\n+        this.interfaceClassName = interfaceClassName;\r\n+        this.environment = environment;\r\n+    }\r\n+\r\n+    private ServiceBeanNameBuilder(AnnotationAttributes attributes, Class<?> defaultInterfaceClass, Environment environment) {\r\n+        this(resolveInterfaceName(attributes, defaultInterfaceClass), environment);\r\n+        this.group(getAttribute(attributes,\"group\"));\r\n+        this.version(getAttribute(attributes,\"version\"));\r\n+    }\r\n+\r\n+    /**\r\n+     * @param attributes\r\n+     * @param defaultInterfaceClass\r\n+     * @param environment\r\n+     * @return\r\n+     * @since 2.7.3\r\n+     */\r\n+    public static ServiceBeanNameBuilder create(AnnotationAttributes attributes, Class<?> defaultInterfaceClass, Environment environment) {\r\n+        return new ServiceBeanNameBuilder(attributes, defaultInterfaceClass, environment);\r\n+    }\r\n+\r\n+    public static ServiceBeanNameBuilder create(Class<?> interfaceClass, Environment environment) {\r\n+        return new ServiceBeanNameBuilder(interfaceClass, environment);\r\n+    }\r\n+\r\n+    public static ServiceBeanNameBuilder create(Service service, Class<?> interfaceClass, Environment environment) {\r\n+        return create(getAnnotationAttributes(service, false, false), interfaceClass, environment);\r\n+    }\r\n+\r\n+    public static ServiceBeanNameBuilder create(Reference reference, Class<?> interfaceClass, Environment environment) {\r\n+        return create(getAnnotationAttributes(reference, false, false), interfaceClass, environment);\r\n+    }\r\n+\r\n+    private static void append(StringBuilder builder, String value) {\r\n+        if (StringUtils.hasText(value)) {\r\n+            builder.append(SEPARATOR).append(value);\r\n+        }\r\n+    }\r\n+\r\n+    public ServiceBeanNameBuilder group(String group) {\r\n+        this.group = group;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ServiceBeanNameBuilder version(String version) {\r\n+        this.version = version;\r\n+        return this;\r\n+    }\r\n+\r\n+    public String build() {\r\n+        StringBuilder beanNameBuilder = new StringBuilder(\"ServiceBean\");\r\n+        // Required\r\n+        append(beanNameBuilder, interfaceClassName);\r\n+        // Optional\r\n+        append(beanNameBuilder, version);\r\n+        append(beanNameBuilder, group);\r\n+        // Build and remove last \":\"\r\n+        String rawBeanName = beanNameBuilder.toString();\r\n+        // Resolve placeholders\r\n+        return environment.resolvePlaceholders(rawBeanName);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceClassPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/annotation/ServiceClassPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,539 +1,539 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.annotation;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.annotation.DubboService;\n-import org.apache.dubbo.config.annotation.Method;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.spring.ServiceBean;\n-import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\n-import org.apache.dubbo.config.spring.context.annotation.DubboClassPathBeanDefinitionScanner;\n-import org.apache.dubbo.config.spring.schema.AnnotationBeanDefinitionParser;\n-\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.MutablePropertyValues;\n-import org.springframework.beans.factory.BeanClassLoaderAware;\n-import org.springframework.beans.factory.config.BeanDefinition;\n-import org.springframework.beans.factory.config.BeanDefinitionHolder;\n-import org.springframework.beans.factory.config.BeanFactoryPostProcessor;\n-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\n-import org.springframework.beans.factory.config.RuntimeBeanReference;\n-import org.springframework.beans.factory.config.SingletonBeanRegistry;\n-import org.springframework.beans.factory.support.AbstractBeanDefinition;\n-import org.springframework.beans.factory.support.BeanDefinitionBuilder;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\n-import org.springframework.beans.factory.support.BeanNameGenerator;\n-import org.springframework.beans.factory.support.ManagedList;\n-import org.springframework.beans.factory.xml.BeanDefinitionParser;\n-import org.springframework.context.EnvironmentAware;\n-import org.springframework.context.ResourceLoaderAware;\n-import org.springframework.context.annotation.AnnotationBeanNameGenerator;\n-import org.springframework.context.annotation.AnnotationConfigUtils;\n-import org.springframework.context.annotation.ClassPathBeanDefinitionScanner;\n-import org.springframework.context.annotation.ConfigurationClassPostProcessor;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.core.env.Environment;\n-import org.springframework.core.io.ResourceLoader;\n-import org.springframework.core.type.filter.AnnotationTypeFilter;\n-import org.springframework.util.CollectionUtils;\n-import org.springframework.util.ObjectUtils;\n-import org.springframework.util.StringUtils;\n-\n-import java.lang.annotation.Annotation;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Set;\n-\n-import static com.alibaba.spring.util.BeanRegistrar.registerInfrastructureBean;\n-import static com.alibaba.spring.util.ObjectUtils.of;\n-import static java.util.Arrays.asList;\n-import static org.apache.dubbo.config.spring.beans.factory.annotation.ServiceBeanNameBuilder.create;\n-import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveServiceInterfaceClass;\n-import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;\n-import static org.springframework.context.annotation.AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR;\n-import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation;\n-import static org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes;\n-import static org.springframework.util.ClassUtils.resolveClassName;\n-\n-/**\n- * {@link BeanFactoryPostProcessor} used for processing of {@link Service @Service} annotated classes. it's also the\n- * infrastructure class of XML {@link BeanDefinitionParser} on &lt;dubbo:annotation /&gt;\n- *\n- * @see AnnotationBeanDefinitionParser\n- * @see BeanDefinitionRegistryPostProcessor\n- * @since 2.7.7\n- */\n-public class ServiceClassPostProcessor implements BeanDefinitionRegistryPostProcessor, EnvironmentAware,\n-        ResourceLoaderAware, BeanClassLoaderAware {\n-\n-    private final static List<Class<? extends Annotation>> serviceAnnotationTypes = asList(\n-            // @since 2.7.7 Add the @DubboService , the issue : https://github.com/apache/dubbo/issues/6007\n-            DubboService.class,\n-            // @since 2.7.0 the substitute @com.alibaba.dubbo.config.annotation.Service\n-            Service.class,\n-            // @since 2.7.3 Add the compatibility for legacy Dubbo's @Service , the issue : https://github.com/apache/dubbo/issues/4330\n-            com.alibaba.dubbo.config.annotation.Service.class\n-    );\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    protected final Set<String> packagesToScan;\n-\n-\n-    private Environment environment;\n-\n-    private ResourceLoader resourceLoader;\n-\n-    private ClassLoader classLoader;\n-\n-    public ServiceClassPostProcessor(String... packagesToScan) {\n-        this(asList(packagesToScan));\n-    }\n-\n-    public ServiceClassPostProcessor(Collection<String> packagesToScan) {\n-        this(new LinkedHashSet<>(packagesToScan));\n-    }\n-\n-    public ServiceClassPostProcessor(Set<String> packagesToScan) {\n-        this.packagesToScan = packagesToScan;\n-    }\n-\n-    @Override\n-    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\n-\n-        // @since 2.7.5\n-        registerInfrastructureBean(registry, DubboBootstrapApplicationListener.BEAN_NAME, DubboBootstrapApplicationListener.class);\n-\n-        Set<String> resolvedPackagesToScan = resolvePackagesToScan(packagesToScan);\n-\n-        if (!CollectionUtils.isEmpty(resolvedPackagesToScan)) {\n-            registerServiceBeans(resolvedPackagesToScan, registry);\n-        } else {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"packagesToScan is empty , ServiceBean registry will be ignored!\");\n-            }\n-        }\n-\n-    }\n-\n-    /**\n-     * Registers Beans whose classes was annotated {@link Service}\n-     *\n-     * @param packagesToScan The base packages to scan\n-     * @param registry       {@link BeanDefinitionRegistry}\n-     */\n-    private void registerServiceBeans(Set<String> packagesToScan, BeanDefinitionRegistry registry) {\n-\n-        DubboClassPathBeanDefinitionScanner scanner =\n-                new DubboClassPathBeanDefinitionScanner(registry, environment, resourceLoader);\n-\n-        BeanNameGenerator beanNameGenerator = resolveBeanNameGenerator(registry);\n-\n-        scanner.setBeanNameGenerator(beanNameGenerator);\n-\n-        // refactor @since 2.7.7\n-        serviceAnnotationTypes.forEach(annotationType -> {\n-            scanner.addIncludeFilter(new AnnotationTypeFilter(annotationType));\n-        });\n-\n-        for (String packageToScan : packagesToScan) {\n-\n-            // Registers @Service Bean first\n-            scanner.scan(packageToScan);\n-\n-            // Finds all BeanDefinitionHolders of @Service whether @ComponentScan scans or not.\n-            Set<BeanDefinitionHolder> beanDefinitionHolders =\n-                    findServiceBeanDefinitionHolders(scanner, packageToScan, registry, beanNameGenerator);\n-\n-            if (!CollectionUtils.isEmpty(beanDefinitionHolders)) {\n-\n-                for (BeanDefinitionHolder beanDefinitionHolder : beanDefinitionHolders) {\n-                    registerServiceBean(beanDefinitionHolder, registry, scanner);\n-                }\n-\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(beanDefinitionHolders.size() + \" annotated Dubbo's @Service Components { \" +\n-                            beanDefinitionHolders +\n-                            \" } were scanned under package[\" + packageToScan + \"]\");\n-                }\n-\n-            } else {\n-\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"No Spring Bean annotating Dubbo's @Service was found under package[\"\n-                            + packageToScan + \"]\");\n-                }\n-\n-            }\n-\n-        }\n-\n-    }\n-\n-    /**\n-     * It'd better to use BeanNameGenerator instance that should reference\n-     * {@link ConfigurationClassPostProcessor#componentScanBeanNameGenerator},\n-     * thus it maybe a potential problem on bean name generation.\n-     *\n-     * @param registry {@link BeanDefinitionRegistry}\n-     * @return {@link BeanNameGenerator} instance\n-     * @see SingletonBeanRegistry\n-     * @see AnnotationConfigUtils#CONFIGURATION_BEAN_NAME_GENERATOR\n-     * @see ConfigurationClassPostProcessor#processConfigBeanDefinitions\n-     * @since 2.5.8\n-     */\n-    private BeanNameGenerator resolveBeanNameGenerator(BeanDefinitionRegistry registry) {\n-\n-        BeanNameGenerator beanNameGenerator = null;\n-\n-        if (registry instanceof SingletonBeanRegistry) {\n-            SingletonBeanRegistry singletonBeanRegistry = SingletonBeanRegistry.class.cast(registry);\n-            beanNameGenerator = (BeanNameGenerator) singletonBeanRegistry.getSingleton(CONFIGURATION_BEAN_NAME_GENERATOR);\n-        }\n-\n-        if (beanNameGenerator == null) {\n-\n-            if (logger.isInfoEnabled()) {\n-\n-                logger.info(\"BeanNameGenerator bean can't be found in BeanFactory with name [\"\n-                        + CONFIGURATION_BEAN_NAME_GENERATOR + \"]\");\n-                logger.info(\"BeanNameGenerator will be a instance of \" +\n-                        AnnotationBeanNameGenerator.class.getName() +\n-                        \" , it maybe a potential problem on bean name generation.\");\n-            }\n-\n-            beanNameGenerator = new AnnotationBeanNameGenerator();\n-\n-        }\n-\n-        return beanNameGenerator;\n-\n-    }\n-\n-    /**\n-     * Finds a {@link Set} of {@link BeanDefinitionHolder BeanDefinitionHolders} whose bean type annotated\n-     * {@link Service} Annotation.\n-     *\n-     * @param scanner       {@link ClassPathBeanDefinitionScanner}\n-     * @param packageToScan package to scan\n-     * @param registry      {@link BeanDefinitionRegistry}\n-     * @return non-null\n-     * @since 2.5.8\n-     */\n-    private Set<BeanDefinitionHolder> findServiceBeanDefinitionHolders(\n-            ClassPathBeanDefinitionScanner scanner, String packageToScan, BeanDefinitionRegistry registry,\n-            BeanNameGenerator beanNameGenerator) {\n-\n-        Set<BeanDefinition> beanDefinitions = scanner.findCandidateComponents(packageToScan);\n-\n-        Set<BeanDefinitionHolder> beanDefinitionHolders = new LinkedHashSet<>(beanDefinitions.size());\n-\n-        for (BeanDefinition beanDefinition : beanDefinitions) {\n-\n-            String beanName = beanNameGenerator.generateBeanName(beanDefinition, registry);\n-            BeanDefinitionHolder beanDefinitionHolder = new BeanDefinitionHolder(beanDefinition, beanName);\n-            beanDefinitionHolders.add(beanDefinitionHolder);\n-\n-        }\n-\n-        return beanDefinitionHolders;\n-\n-    }\n-\n-    /**\n-     * Registers {@link ServiceBean} from new annotated {@link Service} {@link BeanDefinition}\n-     *\n-     * @param beanDefinitionHolder\n-     * @param registry\n-     * @param scanner\n-     * @see ServiceBean\n-     * @see BeanDefinition\n-     */\n-    private void registerServiceBean(BeanDefinitionHolder beanDefinitionHolder, BeanDefinitionRegistry registry,\n-                                     DubboClassPathBeanDefinitionScanner scanner) {\n-\n-        Class<?> beanClass = resolveClass(beanDefinitionHolder);\n-\n-        Annotation service = findServiceAnnotation(beanClass);\n-\n-        /**\n-         * The {@link AnnotationAttributes} of @Service annotation\n-         */\n-        AnnotationAttributes serviceAnnotationAttributes = getAnnotationAttributes(service, false, false);\n-\n-        Class<?> interfaceClass = resolveServiceInterfaceClass(serviceAnnotationAttributes, beanClass);\n-\n-        String annotatedServiceBeanName = beanDefinitionHolder.getBeanName();\n-\n-        AbstractBeanDefinition serviceBeanDefinition =\n-                buildServiceBeanDefinition(service, serviceAnnotationAttributes, interfaceClass, annotatedServiceBeanName);\n-\n-        // ServiceBean Bean name\n-        String beanName = generateServiceBeanName(serviceAnnotationAttributes, interfaceClass);\n-\n-        if (scanner.checkCandidate(beanName, serviceBeanDefinition)) { // check duplicated candidate bean\n-            registry.registerBeanDefinition(beanName, serviceBeanDefinition);\n-\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"The BeanDefinition[\" + serviceBeanDefinition +\n-                        \"] of ServiceBean has been registered with name : \" + beanName);\n-            }\n-\n-        } else {\n-\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"The Duplicated BeanDefinition[\" + serviceBeanDefinition +\n-                        \"] of ServiceBean[ bean name : \" + beanName +\n-                        \"] was be found , Did @DubboComponentScan scan to same package in many times?\");\n-            }\n-\n-        }\n-\n-    }\n-\n-    /**\n-     * Find the {@link Annotation annotation} of @Service\n-     *\n-     * @param beanClass the {@link Class class} of Bean\n-     * @return <code>null</code> if not found\n-     * @since 2.7.3\n-     */\n-    private Annotation findServiceAnnotation(Class<?> beanClass) {\n-        return serviceAnnotationTypes\n-                .stream()\n-                .map(annotationType -> findMergedAnnotation(beanClass, annotationType))\n-                .filter(Objects::nonNull)\n-                .findFirst()\n-                .orElse(null);\n-    }\n-\n-    /**\n-     * Generates the bean name of {@link ServiceBean}\n-     *\n-     * @param serviceAnnotationAttributes\n-     * @param interfaceClass              the class of interface annotated {@link Service}\n-     * @return ServiceBean@interfaceClassName#annotatedServiceBeanName\n-     * @since 2.7.3\n-     */\n-    private String generateServiceBeanName(AnnotationAttributes serviceAnnotationAttributes, Class<?> interfaceClass) {\n-        ServiceBeanNameBuilder builder = create(interfaceClass, environment)\n-                .group(serviceAnnotationAttributes.getString(\"group\"))\n-                .version(serviceAnnotationAttributes.getString(\"version\"));\n-        return builder.build();\n-    }\n-\n-    private Class<?> resolveClass(BeanDefinitionHolder beanDefinitionHolder) {\n-\n-        BeanDefinition beanDefinition = beanDefinitionHolder.getBeanDefinition();\n-\n-        return resolveClass(beanDefinition);\n-\n-    }\n-\n-    private Class<?> resolveClass(BeanDefinition beanDefinition) {\n-\n-        String beanClassName = beanDefinition.getBeanClassName();\n-\n-        return resolveClassName(beanClassName, classLoader);\n-\n-    }\n-\n-    private Set<String> resolvePackagesToScan(Set<String> packagesToScan) {\n-        Set<String> resolvedPackagesToScan = new LinkedHashSet<String>(packagesToScan.size());\n-        for (String packageToScan : packagesToScan) {\n-            if (StringUtils.hasText(packageToScan)) {\n-                String resolvedPackageToScan = environment.resolvePlaceholders(packageToScan.trim());\n-                resolvedPackagesToScan.add(resolvedPackageToScan);\n-            }\n-        }\n-        return resolvedPackagesToScan;\n-    }\n-\n-    /**\n-     * Build the {@link AbstractBeanDefinition Bean Definition}\n-     *\n-     * @param serviceAnnotation\n-     * @param serviceAnnotationAttributes\n-     * @param interfaceClass\n-     * @param annotatedServiceBeanName\n-     * @return\n-     * @since 2.7.3\n-     */\n-    private AbstractBeanDefinition buildServiceBeanDefinition(Annotation serviceAnnotation,\n-                                                              AnnotationAttributes serviceAnnotationAttributes,\n-                                                              Class<?> interfaceClass,\n-                                                              String annotatedServiceBeanName) {\n-\n-        BeanDefinitionBuilder builder = rootBeanDefinition(ServiceBean.class);\n-\n-        AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();\n-\n-        MutablePropertyValues propertyValues = beanDefinition.getPropertyValues();\n-\n-        String[] ignoreAttributeNames = of(\"provider\", \"monitor\", \"application\", \"module\", \"registry\", \"protocol\",\n-                \"interface\", \"interfaceName\", \"parameters\");\n-\n-        propertyValues.addPropertyValues(new AnnotationPropertyValuesAdapter(serviceAnnotation, environment, ignoreAttributeNames));\n-\n-        // References \"ref\" property to annotated-@Service Bean\n-        addPropertyReference(builder, \"ref\", annotatedServiceBeanName);\n-        // Set interface\n-        builder.addPropertyValue(\"interface\", interfaceClass.getName());\n-        // Convert parameters into map\n-        builder.addPropertyValue(\"parameters\", convertParameters(serviceAnnotationAttributes.getStringArray(\"parameters\")));\n-        // Add methods parameters\n-        List<MethodConfig> methodConfigs = convertMethodConfigs(serviceAnnotationAttributes.get(\"methods\"));\n-        if (!methodConfigs.isEmpty()) {\n-            builder.addPropertyValue(\"methods\", methodConfigs);\n-        }\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.ProviderConfig} Bean reference\n-         */\n-        String providerConfigBeanName = serviceAnnotationAttributes.getString(\"provider\");\n-        if (StringUtils.hasText(providerConfigBeanName)) {\n-            addPropertyReference(builder, \"provider\", providerConfigBeanName);\n-        }\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.MonitorConfig} Bean reference\n-         */\n-        String monitorConfigBeanName = serviceAnnotationAttributes.getString(\"monitor\");\n-        if (StringUtils.hasText(monitorConfigBeanName)) {\n-            addPropertyReference(builder, \"monitor\", monitorConfigBeanName);\n-        }\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.ApplicationConfig} Bean reference\n-         */\n-        String applicationConfigBeanName = serviceAnnotationAttributes.getString(\"application\");\n-        if (StringUtils.hasText(applicationConfigBeanName)) {\n-            addPropertyReference(builder, \"application\", applicationConfigBeanName);\n-        }\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.ModuleConfig} Bean reference\n-         */\n-        String moduleConfigBeanName = serviceAnnotationAttributes.getString(\"module\");\n-        if (StringUtils.hasText(moduleConfigBeanName)) {\n-            addPropertyReference(builder, \"module\", moduleConfigBeanName);\n-        }\n-\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.RegistryConfig} Bean reference\n-         */\n-        String[] registryConfigBeanNames = serviceAnnotationAttributes.getStringArray(\"registry\");\n-\n-        List<RuntimeBeanReference> registryRuntimeBeanReferences = toRuntimeBeanReferences(registryConfigBeanNames);\n-\n-        if (!registryRuntimeBeanReferences.isEmpty()) {\n-            builder.addPropertyValue(\"registries\", registryRuntimeBeanReferences);\n-        }\n-\n-        /**\n-         * Add {@link org.apache.dubbo.config.ProtocolConfig} Bean reference\n-         */\n-        String[] protocolConfigBeanNames = serviceAnnotationAttributes.getStringArray(\"protocol\");\n-\n-        List<RuntimeBeanReference> protocolRuntimeBeanReferences = toRuntimeBeanReferences(protocolConfigBeanNames);\n-\n-        if (!protocolRuntimeBeanReferences.isEmpty()) {\n-            builder.addPropertyValue(\"protocols\", protocolRuntimeBeanReferences);\n-        }\n-\n-        return builder.getBeanDefinition();\n-\n-    }\n-\n-    private List convertMethodConfigs(Object methodsAnnotation) {\n-        if (methodsAnnotation == null) {\n-            return Collections.EMPTY_LIST;\n-        }\n-        return MethodConfig.constructMethodConfig((Method[]) methodsAnnotation);\n-    }\n-\n-    private ManagedList<RuntimeBeanReference> toRuntimeBeanReferences(String... beanNames) {\n-\n-        ManagedList<RuntimeBeanReference> runtimeBeanReferences = new ManagedList<>();\n-\n-        if (!ObjectUtils.isEmpty(beanNames)) {\n-\n-            for (String beanName : beanNames) {\n-\n-                String resolvedBeanName = environment.resolvePlaceholders(beanName);\n-\n-                runtimeBeanReferences.add(new RuntimeBeanReference(resolvedBeanName));\n-            }\n-\n-        }\n-\n-        return runtimeBeanReferences;\n-\n-    }\n-\n-    private void addPropertyReference(BeanDefinitionBuilder builder, String propertyName, String beanName) {\n-        String resolvedBeanName = environment.resolvePlaceholders(beanName);\n-        builder.addPropertyReference(propertyName, resolvedBeanName);\n-    }\n-\n-    private Map<String, String> convertParameters(String[] parameters) {\n-        if (ArrayUtils.isEmpty(parameters)) {\n-            return null;\n-        }\n-\n-        if (parameters.length % 2 != 0) {\n-            throw new IllegalArgumentException(\"parameter attribute must be paired with key followed by value\");\n-        }\n-\n-        Map<String, String> map = new HashMap<>();\n-        for (int i = 0; i < parameters.length; i += 2) {\n-            map.put(parameters[i], parameters[i + 1]);\n-        }\n-        return map;\n-    }\n-\n-    @Override\n-    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\n-\n-    }\n-\n-    @Override\n-    public void setEnvironment(Environment environment) {\n-        this.environment = environment;\n-    }\n-\n-    @Override\n-    public void setResourceLoader(ResourceLoader resourceLoader) {\n-        this.resourceLoader = resourceLoader;\n-    }\n-\n-    @Override\n-    public void setBeanClassLoader(ClassLoader classLoader) {\n-        this.classLoader = classLoader;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.annotation;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.annotation.DubboService;\r\n+import org.apache.dubbo.config.annotation.Method;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.spring.ServiceBean;\r\n+import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\r\n+import org.apache.dubbo.config.spring.context.annotation.DubboClassPathBeanDefinitionScanner;\r\n+import org.apache.dubbo.config.spring.schema.AnnotationBeanDefinitionParser;\r\n+\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.MutablePropertyValues;\r\n+import org.springframework.beans.factory.BeanClassLoaderAware;\r\n+import org.springframework.beans.factory.config.BeanDefinition;\r\n+import org.springframework.beans.factory.config.BeanDefinitionHolder;\r\n+import org.springframework.beans.factory.config.BeanFactoryPostProcessor;\r\n+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\r\n+import org.springframework.beans.factory.config.RuntimeBeanReference;\r\n+import org.springframework.beans.factory.config.SingletonBeanRegistry;\r\n+import org.springframework.beans.factory.support.AbstractBeanDefinition;\r\n+import org.springframework.beans.factory.support.BeanDefinitionBuilder;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\r\n+import org.springframework.beans.factory.support.BeanNameGenerator;\r\n+import org.springframework.beans.factory.support.ManagedList;\r\n+import org.springframework.beans.factory.xml.BeanDefinitionParser;\r\n+import org.springframework.context.EnvironmentAware;\r\n+import org.springframework.context.ResourceLoaderAware;\r\n+import org.springframework.context.annotation.AnnotationBeanNameGenerator;\r\n+import org.springframework.context.annotation.AnnotationConfigUtils;\r\n+import org.springframework.context.annotation.ClassPathBeanDefinitionScanner;\r\n+import org.springframework.context.annotation.ConfigurationClassPostProcessor;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.core.env.Environment;\r\n+import org.springframework.core.io.ResourceLoader;\r\n+import org.springframework.core.type.filter.AnnotationTypeFilter;\r\n+import org.springframework.util.CollectionUtils;\r\n+import org.springframework.util.ObjectUtils;\r\n+import org.springframework.util.StringUtils;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+\r\n+import static com.alibaba.spring.util.BeanRegistrar.registerInfrastructureBean;\r\n+import static com.alibaba.spring.util.ObjectUtils.of;\r\n+import static java.util.Arrays.asList;\r\n+import static org.apache.dubbo.config.spring.beans.factory.annotation.ServiceBeanNameBuilder.create;\r\n+import static org.apache.dubbo.config.spring.util.DubboAnnotationUtils.resolveServiceInterfaceClass;\r\n+import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;\r\n+import static org.springframework.context.annotation.AnnotationConfigUtils.CONFIGURATION_BEAN_NAME_GENERATOR;\r\n+import static org.springframework.core.annotation.AnnotatedElementUtils.findMergedAnnotation;\r\n+import static org.springframework.core.annotation.AnnotationUtils.getAnnotationAttributes;\r\n+import static org.springframework.util.ClassUtils.resolveClassName;\r\n+\r\n+/**\r\n+ * {@link BeanFactoryPostProcessor} used for processing of {@link Service @Service} annotated classes. it's also the\r\n+ * infrastructure class of XML {@link BeanDefinitionParser} on &lt;dubbo:annotation /&gt;\r\n+ *\r\n+ * @see AnnotationBeanDefinitionParser\r\n+ * @see BeanDefinitionRegistryPostProcessor\r\n+ * @since 2.7.7\r\n+ */\r\n+public class ServiceClassPostProcessor implements BeanDefinitionRegistryPostProcessor, EnvironmentAware,\r\n+        ResourceLoaderAware, BeanClassLoaderAware {\r\n+\r\n+    private final static List<Class<? extends Annotation>> serviceAnnotationTypes = asList(\r\n+            // @since 2.7.7 Add the @DubboService , the issue : https://github.com/apache/dubbo/issues/6007\r\n+            DubboService.class,\r\n+            // @since 2.7.0 the substitute @com.alibaba.dubbo.config.annotation.Service\r\n+            Service.class,\r\n+            // @since 2.7.3 Add the compatibility for legacy Dubbo's @Service , the issue : https://github.com/apache/dubbo/issues/4330\r\n+            com.alibaba.dubbo.config.annotation.Service.class\r\n+    );\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    protected final Set<String> packagesToScan;\r\n+\r\n+\r\n+    private Environment environment;\r\n+\r\n+    private ResourceLoader resourceLoader;\r\n+\r\n+    private ClassLoader classLoader;\r\n+\r\n+    public ServiceClassPostProcessor(String... packagesToScan) {\r\n+        this(asList(packagesToScan));\r\n+    }\r\n+\r\n+    public ServiceClassPostProcessor(Collection<String> packagesToScan) {\r\n+        this(new LinkedHashSet<>(packagesToScan));\r\n+    }\r\n+\r\n+    public ServiceClassPostProcessor(Set<String> packagesToScan) {\r\n+        this.packagesToScan = packagesToScan;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\r\n+\r\n+        // @since 2.7.5\r\n+        registerInfrastructureBean(registry, DubboBootstrapApplicationListener.BEAN_NAME, DubboBootstrapApplicationListener.class);\r\n+\r\n+        Set<String> resolvedPackagesToScan = resolvePackagesToScan(packagesToScan);\r\n+\r\n+        if (!CollectionUtils.isEmpty(resolvedPackagesToScan)) {\r\n+            registerServiceBeans(resolvedPackagesToScan, registry);\r\n+        } else {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"packagesToScan is empty , ServiceBean registry will be ignored!\");\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Registers Beans whose classes was annotated {@link Service}\r\n+     *\r\n+     * @param packagesToScan The base packages to scan\r\n+     * @param registry       {@link BeanDefinitionRegistry}\r\n+     */\r\n+    private void registerServiceBeans(Set<String> packagesToScan, BeanDefinitionRegistry registry) {\r\n+\r\n+        DubboClassPathBeanDefinitionScanner scanner =\r\n+                new DubboClassPathBeanDefinitionScanner(registry, environment, resourceLoader);\r\n+\r\n+        BeanNameGenerator beanNameGenerator = resolveBeanNameGenerator(registry);\r\n+\r\n+        scanner.setBeanNameGenerator(beanNameGenerator);\r\n+\r\n+        // refactor @since 2.7.7\r\n+        serviceAnnotationTypes.forEach(annotationType -> {\r\n+            scanner.addIncludeFilter(new AnnotationTypeFilter(annotationType));\r\n+        });\r\n+\r\n+        for (String packageToScan : packagesToScan) {\r\n+\r\n+            // Registers @Service Bean first\r\n+            scanner.scan(packageToScan);\r\n+\r\n+            // Finds all BeanDefinitionHolders of @Service whether @ComponentScan scans or not.\r\n+            Set<BeanDefinitionHolder> beanDefinitionHolders =\r\n+                    findServiceBeanDefinitionHolders(scanner, packageToScan, registry, beanNameGenerator);\r\n+\r\n+            if (!CollectionUtils.isEmpty(beanDefinitionHolders)) {\r\n+\r\n+                for (BeanDefinitionHolder beanDefinitionHolder : beanDefinitionHolders) {\r\n+                    registerServiceBean(beanDefinitionHolder, registry, scanner);\r\n+                }\r\n+\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(beanDefinitionHolders.size() + \" annotated Dubbo's @Service Components { \" +\r\n+                            beanDefinitionHolders +\r\n+                            \" } were scanned under package[\" + packageToScan + \"]\");\r\n+                }\r\n+\r\n+            } else {\r\n+\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"No Spring Bean annotating Dubbo's @Service was found under package[\"\r\n+                            + packageToScan + \"]\");\r\n+                }\r\n+\r\n+            }\r\n+\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * It'd better to use BeanNameGenerator instance that should reference\r\n+     * {@link ConfigurationClassPostProcessor#componentScanBeanNameGenerator},\r\n+     * thus it maybe a potential problem on bean name generation.\r\n+     *\r\n+     * @param registry {@link BeanDefinitionRegistry}\r\n+     * @return {@link BeanNameGenerator} instance\r\n+     * @see SingletonBeanRegistry\r\n+     * @see AnnotationConfigUtils#CONFIGURATION_BEAN_NAME_GENERATOR\r\n+     * @see ConfigurationClassPostProcessor#processConfigBeanDefinitions\r\n+     * @since 2.5.8\r\n+     */\r\n+    private BeanNameGenerator resolveBeanNameGenerator(BeanDefinitionRegistry registry) {\r\n+\r\n+        BeanNameGenerator beanNameGenerator = null;\r\n+\r\n+        if (registry instanceof SingletonBeanRegistry) {\r\n+            SingletonBeanRegistry singletonBeanRegistry = SingletonBeanRegistry.class.cast(registry);\r\n+            beanNameGenerator = (BeanNameGenerator) singletonBeanRegistry.getSingleton(CONFIGURATION_BEAN_NAME_GENERATOR);\r\n+        }\r\n+\r\n+        if (beanNameGenerator == null) {\r\n+\r\n+            if (logger.isInfoEnabled()) {\r\n+\r\n+                logger.info(\"BeanNameGenerator bean can't be found in BeanFactory with name [\"\r\n+                        + CONFIGURATION_BEAN_NAME_GENERATOR + \"]\");\r\n+                logger.info(\"BeanNameGenerator will be a instance of \" +\r\n+                        AnnotationBeanNameGenerator.class.getName() +\r\n+                        \" , it maybe a potential problem on bean name generation.\");\r\n+            }\r\n+\r\n+            beanNameGenerator = new AnnotationBeanNameGenerator();\r\n+\r\n+        }\r\n+\r\n+        return beanNameGenerator;\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Finds a {@link Set} of {@link BeanDefinitionHolder BeanDefinitionHolders} whose bean type annotated\r\n+     * {@link Service} Annotation.\r\n+     *\r\n+     * @param scanner       {@link ClassPathBeanDefinitionScanner}\r\n+     * @param packageToScan package to scan\r\n+     * @param registry      {@link BeanDefinitionRegistry}\r\n+     * @return non-null\r\n+     * @since 2.5.8\r\n+     */\r\n+    private Set<BeanDefinitionHolder> findServiceBeanDefinitionHolders(\r\n+            ClassPathBeanDefinitionScanner scanner, String packageToScan, BeanDefinitionRegistry registry,\r\n+            BeanNameGenerator beanNameGenerator) {\r\n+\r\n+        Set<BeanDefinition> beanDefinitions = scanner.findCandidateComponents(packageToScan);\r\n+\r\n+        Set<BeanDefinitionHolder> beanDefinitionHolders = new LinkedHashSet<>(beanDefinitions.size());\r\n+\r\n+        for (BeanDefinition beanDefinition : beanDefinitions) {\r\n+\r\n+            String beanName = beanNameGenerator.generateBeanName(beanDefinition, registry);\r\n+            BeanDefinitionHolder beanDefinitionHolder = new BeanDefinitionHolder(beanDefinition, beanName);\r\n+            beanDefinitionHolders.add(beanDefinitionHolder);\r\n+\r\n+        }\r\n+\r\n+        return beanDefinitionHolders;\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Registers {@link ServiceBean} from new annotated {@link Service} {@link BeanDefinition}\r\n+     *\r\n+     * @param beanDefinitionHolder\r\n+     * @param registry\r\n+     * @param scanner\r\n+     * @see ServiceBean\r\n+     * @see BeanDefinition\r\n+     */\r\n+    private void registerServiceBean(BeanDefinitionHolder beanDefinitionHolder, BeanDefinitionRegistry registry,\r\n+                                     DubboClassPathBeanDefinitionScanner scanner) {\r\n+\r\n+        Class<?> beanClass = resolveClass(beanDefinitionHolder);\r\n+\r\n+        Annotation service = findServiceAnnotation(beanClass);\r\n+\r\n+        /**\r\n+         * The {@link AnnotationAttributes} of @Service annotation\r\n+         */\r\n+        AnnotationAttributes serviceAnnotationAttributes = getAnnotationAttributes(service, false, false);\r\n+\r\n+        Class<?> interfaceClass = resolveServiceInterfaceClass(serviceAnnotationAttributes, beanClass);\r\n+\r\n+        String annotatedServiceBeanName = beanDefinitionHolder.getBeanName();\r\n+\r\n+        AbstractBeanDefinition serviceBeanDefinition =\r\n+                buildServiceBeanDefinition(service, serviceAnnotationAttributes, interfaceClass, annotatedServiceBeanName);\r\n+\r\n+        // ServiceBean Bean name\r\n+        String beanName = generateServiceBeanName(serviceAnnotationAttributes, interfaceClass);\r\n+\r\n+        if (scanner.checkCandidate(beanName, serviceBeanDefinition)) { // check duplicated candidate bean\r\n+            registry.registerBeanDefinition(beanName, serviceBeanDefinition);\r\n+\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"The BeanDefinition[\" + serviceBeanDefinition +\r\n+                        \"] of ServiceBean has been registered with name : \" + beanName);\r\n+            }\r\n+\r\n+        } else {\r\n+\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"The Duplicated BeanDefinition[\" + serviceBeanDefinition +\r\n+                        \"] of ServiceBean[ bean name : \" + beanName +\r\n+                        \"] was be found , Did @DubboComponentScan scan to same package in many times?\");\r\n+            }\r\n+\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Annotation annotation} of @Service\r\n+     *\r\n+     * @param beanClass the {@link Class class} of Bean\r\n+     * @return <code>null</code> if not found\r\n+     * @since 2.7.3\r\n+     */\r\n+    private Annotation findServiceAnnotation(Class<?> beanClass) {\r\n+        return serviceAnnotationTypes\r\n+                .stream()\r\n+                .map(annotationType -> findMergedAnnotation(beanClass, annotationType))\r\n+                .filter(Objects::nonNull)\r\n+                .findFirst()\r\n+                .orElse(null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Generates the bean name of {@link ServiceBean}\r\n+     *\r\n+     * @param serviceAnnotationAttributes\r\n+     * @param interfaceClass              the class of interface annotated {@link Service}\r\n+     * @return ServiceBean@interfaceClassName#annotatedServiceBeanName\r\n+     * @since 2.7.3\r\n+     */\r\n+    private String generateServiceBeanName(AnnotationAttributes serviceAnnotationAttributes, Class<?> interfaceClass) {\r\n+        ServiceBeanNameBuilder builder = create(interfaceClass, environment)\r\n+                .group(serviceAnnotationAttributes.getString(\"group\"))\r\n+                .version(serviceAnnotationAttributes.getString(\"version\"));\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    private Class<?> resolveClass(BeanDefinitionHolder beanDefinitionHolder) {\r\n+\r\n+        BeanDefinition beanDefinition = beanDefinitionHolder.getBeanDefinition();\r\n+\r\n+        return resolveClass(beanDefinition);\r\n+\r\n+    }\r\n+\r\n+    private Class<?> resolveClass(BeanDefinition beanDefinition) {\r\n+\r\n+        String beanClassName = beanDefinition.getBeanClassName();\r\n+\r\n+        return resolveClassName(beanClassName, classLoader);\r\n+\r\n+    }\r\n+\r\n+    private Set<String> resolvePackagesToScan(Set<String> packagesToScan) {\r\n+        Set<String> resolvedPackagesToScan = new LinkedHashSet<String>(packagesToScan.size());\r\n+        for (String packageToScan : packagesToScan) {\r\n+            if (StringUtils.hasText(packageToScan)) {\r\n+                String resolvedPackageToScan = environment.resolvePlaceholders(packageToScan.trim());\r\n+                resolvedPackagesToScan.add(resolvedPackageToScan);\r\n+            }\r\n+        }\r\n+        return resolvedPackagesToScan;\r\n+    }\r\n+\r\n+    /**\r\n+     * Build the {@link AbstractBeanDefinition Bean Definition}\r\n+     *\r\n+     * @param serviceAnnotation\r\n+     * @param serviceAnnotationAttributes\r\n+     * @param interfaceClass\r\n+     * @param annotatedServiceBeanName\r\n+     * @return\r\n+     * @since 2.7.3\r\n+     */\r\n+    private AbstractBeanDefinition buildServiceBeanDefinition(Annotation serviceAnnotation,\r\n+                                                              AnnotationAttributes serviceAnnotationAttributes,\r\n+                                                              Class<?> interfaceClass,\r\n+                                                              String annotatedServiceBeanName) {\r\n+\r\n+        BeanDefinitionBuilder builder = rootBeanDefinition(ServiceBean.class);\r\n+\r\n+        AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();\r\n+\r\n+        MutablePropertyValues propertyValues = beanDefinition.getPropertyValues();\r\n+\r\n+        String[] ignoreAttributeNames = of(\"provider\", \"monitor\", \"application\", \"module\", \"registry\", \"protocol\",\r\n+                \"interface\", \"interfaceName\", \"parameters\");\r\n+\r\n+        propertyValues.addPropertyValues(new AnnotationPropertyValuesAdapter(serviceAnnotation, environment, ignoreAttributeNames));\r\n+\r\n+        // References \"ref\" property to annotated-@Service Bean\r\n+        addPropertyReference(builder, \"ref\", annotatedServiceBeanName);\r\n+        // Set interface\r\n+        builder.addPropertyValue(\"interface\", interfaceClass.getName());\r\n+        // Convert parameters into map\r\n+        builder.addPropertyValue(\"parameters\", convertParameters(serviceAnnotationAttributes.getStringArray(\"parameters\")));\r\n+        // Add methods parameters\r\n+        List<MethodConfig> methodConfigs = convertMethodConfigs(serviceAnnotationAttributes.get(\"methods\"));\r\n+        if (!methodConfigs.isEmpty()) {\r\n+            builder.addPropertyValue(\"methods\", methodConfigs);\r\n+        }\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.ProviderConfig} Bean reference\r\n+         */\r\n+        String providerConfigBeanName = serviceAnnotationAttributes.getString(\"provider\");\r\n+        if (StringUtils.hasText(providerConfigBeanName)) {\r\n+            addPropertyReference(builder, \"provider\", providerConfigBeanName);\r\n+        }\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.MonitorConfig} Bean reference\r\n+         */\r\n+        String monitorConfigBeanName = serviceAnnotationAttributes.getString(\"monitor\");\r\n+        if (StringUtils.hasText(monitorConfigBeanName)) {\r\n+            addPropertyReference(builder, \"monitor\", monitorConfigBeanName);\r\n+        }\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.ApplicationConfig} Bean reference\r\n+         */\r\n+        String applicationConfigBeanName = serviceAnnotationAttributes.getString(\"application\");\r\n+        if (StringUtils.hasText(applicationConfigBeanName)) {\r\n+            addPropertyReference(builder, \"application\", applicationConfigBeanName);\r\n+        }\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.ModuleConfig} Bean reference\r\n+         */\r\n+        String moduleConfigBeanName = serviceAnnotationAttributes.getString(\"module\");\r\n+        if (StringUtils.hasText(moduleConfigBeanName)) {\r\n+            addPropertyReference(builder, \"module\", moduleConfigBeanName);\r\n+        }\r\n+\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.RegistryConfig} Bean reference\r\n+         */\r\n+        String[] registryConfigBeanNames = serviceAnnotationAttributes.getStringArray(\"registry\");\r\n+\r\n+        List<RuntimeBeanReference> registryRuntimeBeanReferences = toRuntimeBeanReferences(registryConfigBeanNames);\r\n+\r\n+        if (!registryRuntimeBeanReferences.isEmpty()) {\r\n+            builder.addPropertyValue(\"registries\", registryRuntimeBeanReferences);\r\n+        }\r\n+\r\n+        /**\r\n+         * Add {@link org.apache.dubbo.config.ProtocolConfig} Bean reference\r\n+         */\r\n+        String[] protocolConfigBeanNames = serviceAnnotationAttributes.getStringArray(\"protocol\");\r\n+\r\n+        List<RuntimeBeanReference> protocolRuntimeBeanReferences = toRuntimeBeanReferences(protocolConfigBeanNames);\r\n+\r\n+        if (!protocolRuntimeBeanReferences.isEmpty()) {\r\n+            builder.addPropertyValue(\"protocols\", protocolRuntimeBeanReferences);\r\n+        }\r\n+\r\n+        return builder.getBeanDefinition();\r\n+\r\n+    }\r\n+\r\n+    private List convertMethodConfigs(Object methodsAnnotation) {\r\n+        if (methodsAnnotation == null) {\r\n+            return Collections.EMPTY_LIST;\r\n+        }\r\n+        return MethodConfig.constructMethodConfig((Method[]) methodsAnnotation);\r\n+    }\r\n+\r\n+    private ManagedList<RuntimeBeanReference> toRuntimeBeanReferences(String... beanNames) {\r\n+\r\n+        ManagedList<RuntimeBeanReference> runtimeBeanReferences = new ManagedList<>();\r\n+\r\n+        if (!ObjectUtils.isEmpty(beanNames)) {\r\n+\r\n+            for (String beanName : beanNames) {\r\n+\r\n+                String resolvedBeanName = environment.resolvePlaceholders(beanName);\r\n+\r\n+                runtimeBeanReferences.add(new RuntimeBeanReference(resolvedBeanName));\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        return runtimeBeanReferences;\r\n+\r\n+    }\r\n+\r\n+    private void addPropertyReference(BeanDefinitionBuilder builder, String propertyName, String beanName) {\r\n+        String resolvedBeanName = environment.resolvePlaceholders(beanName);\r\n+        builder.addPropertyReference(propertyName, resolvedBeanName);\r\n+    }\r\n+\r\n+    private Map<String, String> convertParameters(String[] parameters) {\r\n+        if (ArrayUtils.isEmpty(parameters)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        if (parameters.length % 2 != 0) {\r\n+            throw new IllegalArgumentException(\"parameter attribute must be paired with key followed by value\");\r\n+        }\r\n+\r\n+        Map<String, String> map = new HashMap<>();\r\n+        for (int i = 0; i < parameters.length; i += 2) {\r\n+            map.put(parameters[i], parameters[i + 1]);\r\n+        }\r\n+        return map;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setEnvironment(Environment environment) {\r\n+        this.environment = environment;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setResourceLoader(ResourceLoader resourceLoader) {\r\n+        this.resourceLoader = resourceLoader;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBeanClassLoader(ClassLoader classLoader) {\r\n+        this.classLoader = classLoader;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/config/ConfigurableSourceBeanMetadataElement.java", "source2": "org/apache/dubbo/config/spring/beans/factory/config/ConfigurableSourceBeanMetadataElement.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.config;\n-\n-import org.springframework.beans.BeanMetadataAttributeAccessor;\n-import org.springframework.beans.BeanMetadataElement;\n-\n-/**\n- * Configurable the {@link BeanMetadataAttributeAccessor#setSource(Object) source} for {@link BeanMetadataElement}\n- *\n- * @since 2.7.5\n- */\n-public interface ConfigurableSourceBeanMetadataElement {\n-\n-    /**\n-     * Set the source into the specified {@link BeanMetadataElement}\n-     *\n-     * @param beanMetadataElement {@link BeanMetadataElement} instance\n-     */\n-    default void setSource(BeanMetadataElement beanMetadataElement) {\n-        if (beanMetadataElement instanceof BeanMetadataAttributeAccessor) {\n-            BeanMetadataAttributeAccessor.class.cast(beanMetadataElement).setSource(this);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.config;\r\n+\r\n+import org.springframework.beans.BeanMetadataAttributeAccessor;\r\n+import org.springframework.beans.BeanMetadataElement;\r\n+\r\n+/**\r\n+ * Configurable the {@link BeanMetadataAttributeAccessor#setSource(Object) source} for {@link BeanMetadataElement}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface ConfigurableSourceBeanMetadataElement {\r\n+\r\n+    /**\r\n+     * Set the source into the specified {@link BeanMetadataElement}\r\n+     *\r\n+     * @param beanMetadataElement {@link BeanMetadataElement} instance\r\n+     */\r\n+    default void setSource(BeanMetadataElement beanMetadataElement) {\r\n+        if (beanMetadataElement instanceof BeanMetadataAttributeAccessor) {\r\n+            BeanMetadataAttributeAccessor.class.cast(beanMetadataElement).setSource(this);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/config/DubboConfigDefaultPropertyValueBeanPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/config/DubboConfigDefaultPropertyValueBeanPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,106 +1,106 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.config;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import com.alibaba.spring.beans.factory.config.GenericBeanPostProcessorAdapter;\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor;\n-import org.springframework.beans.factory.config.BeanPostProcessor;\n-import org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor;\n-import org.springframework.beans.factory.support.RootBeanDefinition;\n-import org.springframework.context.annotation.CommonAnnotationBeanPostProcessor;\n-import org.springframework.core.Ordered;\n-import org.springframework.core.PriorityOrdered;\n-\n-import javax.annotation.PostConstruct;\n-import java.beans.PropertyDescriptor;\n-import java.lang.reflect.Method;\n-import java.util.Arrays;\n-\n-import static com.alibaba.spring.util.ObjectUtils.of;\n-import static org.springframework.aop.support.AopUtils.getTargetClass;\n-import static org.springframework.beans.BeanUtils.getPropertyDescriptor;\n-import static org.springframework.util.ReflectionUtils.invokeMethod;\n-\n-/**\n- * The {@link BeanPostProcessor} class for the default property value of {@link AbstractConfig Dubbo's Config Beans}\n- *\n- * @since 2.7.6\n- */\n-public class DubboConfigDefaultPropertyValueBeanPostProcessor extends GenericBeanPostProcessorAdapter<AbstractConfig>\n-        implements MergedBeanDefinitionPostProcessor, PriorityOrdered {\n-\n-    /**\n-     * The bean name of {@link DubboConfigDefaultPropertyValueBeanPostProcessor}\n-     */\n-    public static final String BEAN_NAME = \"dubboConfigDefaultPropertyValueBeanPostProcessor\";\n-\n-    protected void processBeforeInitialization(AbstractConfig dubboConfigBean, String beanName) throws BeansException {\n-        // [Feature] https://github.com/apache/dubbo/issues/5721\n-        setBeanNameAsDefaultValue(dubboConfigBean, \"id\", beanName);\n-        setBeanNameAsDefaultValue(dubboConfigBean, \"name\", beanName);\n-    }\n-\n-    @Override\n-    public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) {\n-        // DO NOTHING\n-    }\n-\n-    protected void setBeanNameAsDefaultValue(Object bean, String propertyName, String beanName) {\n-\n-        Class<?> beanClass = getTargetClass(bean);\n-\n-        PropertyDescriptor propertyDescriptor = getPropertyDescriptor(beanClass, propertyName);\n-\n-        if (propertyDescriptor != null) { // the property is present\n-\n-            Method getterMethod = propertyDescriptor.getReadMethod();\n-\n-            if (getterMethod == null) { // if The getter method is absent\n-                return;\n-            }\n-\n-            Object propertyValue = invokeMethod(getterMethod, bean);\n-\n-            if (propertyValue != null) { // If The return value of \"getName\" method is not null\n-                return;\n-            }\n-\n-            Method setterMethod = propertyDescriptor.getWriteMethod();\n-            if (setterMethod != null) { // the getter and setter methods are present\n-                if (Arrays.equals(of(String.class), setterMethod.getParameterTypes())) { // the param type is String\n-                    // set bean name to the value of the the property\n-                    invokeMethod(setterMethod, bean, beanName);\n-                }\n-            }\n-        }\n-\n-    }\n-\n-    /**\n-     * @return Higher than {@link InitDestroyAnnotationBeanPostProcessor#getOrder()}\n-     * @see InitDestroyAnnotationBeanPostProcessor\n-     * @see CommonAnnotationBeanPostProcessor\n-     * @see PostConstruct\n-     */\n-    @Override\n-    public int getOrder() {\n-        return Ordered.LOWEST_PRECEDENCE + 1;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.config;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import com.alibaba.spring.beans.factory.config.GenericBeanPostProcessorAdapter;\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor;\r\n+import org.springframework.beans.factory.config.BeanPostProcessor;\r\n+import org.springframework.beans.factory.support.MergedBeanDefinitionPostProcessor;\r\n+import org.springframework.beans.factory.support.RootBeanDefinition;\r\n+import org.springframework.context.annotation.CommonAnnotationBeanPostProcessor;\r\n+import org.springframework.core.Ordered;\r\n+import org.springframework.core.PriorityOrdered;\r\n+\r\n+import javax.annotation.PostConstruct;\r\n+import java.beans.PropertyDescriptor;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Arrays;\r\n+\r\n+import static com.alibaba.spring.util.ObjectUtils.of;\r\n+import static org.springframework.aop.support.AopUtils.getTargetClass;\r\n+import static org.springframework.beans.BeanUtils.getPropertyDescriptor;\r\n+import static org.springframework.util.ReflectionUtils.invokeMethod;\r\n+\r\n+/**\r\n+ * The {@link BeanPostProcessor} class for the default property value of {@link AbstractConfig Dubbo's Config Beans}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class DubboConfigDefaultPropertyValueBeanPostProcessor extends GenericBeanPostProcessorAdapter<AbstractConfig>\r\n+        implements MergedBeanDefinitionPostProcessor, PriorityOrdered {\r\n+\r\n+    /**\r\n+     * The bean name of {@link DubboConfigDefaultPropertyValueBeanPostProcessor}\r\n+     */\r\n+    public static final String BEAN_NAME = \"dubboConfigDefaultPropertyValueBeanPostProcessor\";\r\n+\r\n+    protected void processBeforeInitialization(AbstractConfig dubboConfigBean, String beanName) throws BeansException {\r\n+        // [Feature] https://github.com/apache/dubbo/issues/5721\r\n+        setBeanNameAsDefaultValue(dubboConfigBean, \"id\", beanName);\r\n+        setBeanNameAsDefaultValue(dubboConfigBean, \"name\", beanName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void postProcessMergedBeanDefinition(RootBeanDefinition beanDefinition, Class<?> beanType, String beanName) {\r\n+        // DO NOTHING\r\n+    }\r\n+\r\n+    protected void setBeanNameAsDefaultValue(Object bean, String propertyName, String beanName) {\r\n+\r\n+        Class<?> beanClass = getTargetClass(bean);\r\n+\r\n+        PropertyDescriptor propertyDescriptor = getPropertyDescriptor(beanClass, propertyName);\r\n+\r\n+        if (propertyDescriptor != null) { // the property is present\r\n+\r\n+            Method getterMethod = propertyDescriptor.getReadMethod();\r\n+\r\n+            if (getterMethod == null) { // if The getter method is absent\r\n+                return;\r\n+            }\r\n+\r\n+            Object propertyValue = invokeMethod(getterMethod, bean);\r\n+\r\n+            if (propertyValue != null) { // If The return value of \"getName\" method is not null\r\n+                return;\r\n+            }\r\n+\r\n+            Method setterMethod = propertyDescriptor.getWriteMethod();\r\n+            if (setterMethod != null) { // the getter and setter methods are present\r\n+                if (Arrays.equals(of(String.class), setterMethod.getParameterTypes())) { // the param type is String\r\n+                    // set bean name to the value of the the property\r\n+                    invokeMethod(setterMethod, bean, beanName);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * @return Higher than {@link InitDestroyAnnotationBeanPostProcessor#getOrder()}\r\n+     * @see InitDestroyAnnotationBeanPostProcessor\r\n+     * @see CommonAnnotationBeanPostProcessor\r\n+     * @see PostConstruct\r\n+     */\r\n+    @Override\r\n+    public int getOrder() {\r\n+        return Ordered.LOWEST_PRECEDENCE + 1;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/beans/factory/config/DubboConfigEarlyInitializationPostProcessor.java", "source2": "org/apache/dubbo/config/spring/beans/factory/config/DubboConfigEarlyInitializationPostProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,127 +1,127 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.beans.factory.config;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.context.ConfigManager;\n-\n-import com.alibaba.spring.beans.factory.config.GenericBeanPostProcessorAdapter;\n-import org.apache.commons.logging.Log;\n-import org.apache.commons.logging.LogFactory;\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.config.BeanPostProcessor;\n-import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\n-import org.springframework.beans.factory.support.DefaultListableBeanFactory;\n-import org.springframework.context.annotation.CommonAnnotationBeanPostProcessor;\n-import org.springframework.core.PriorityOrdered;\n-\n-import javax.annotation.PostConstruct;\n-\n-/**\n- * Generally, {@link AbstractConfig Dubbo Config} Bean will be added into {@link ConfigManager} on the bean initialization\n- * life cycle through {@link CommonAnnotationBeanPostProcessor} executing the callback of\n- * {@link PostConstruct @PostConstruct}. However, the instantiation and initialization of\n- * {@link AbstractConfig Dubbo Config} Bean could be too early before {@link CommonAnnotationBeanPostProcessor}, e.g,\n- * execution, thus it's required to register the current instance as a {@link BeanPostProcessor} into\n- * {@link DefaultListableBeanFactory the BeanFatory} using {@link BeanDefinitionRegistryPostProcessor} as early as\n- * possible.\n- *\n- * @see GenericBeanPostProcessorAdapter\n- * @since 2.7.9\n- */\n-public class DubboConfigEarlyInitializationPostProcessor extends GenericBeanPostProcessorAdapter<AbstractConfig>\n-        implements BeanDefinitionRegistryPostProcessor, PriorityOrdered {\n-\n-    private static final Log logger = LogFactory.getLog(DubboConfigEarlyInitializationPostProcessor.class.getName());\n-\n-    public static final String BEAN_NAME = \"dubboConfigEarlyInitializationPostProcessor\";\n-\n-    private DefaultListableBeanFactory beanFactory;\n-\n-    @Override\n-    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\n-        this.beanFactory = unwrap(registry);\n-        initBeanFactory();\n-    }\n-\n-    @Override\n-    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\n-        if (beanFactory == null) { // try again if postProcessBeanDefinitionRegistry method does not effect.\n-            this.beanFactory = unwrap(beanFactory);\n-            initBeanFactory();\n-        }\n-    }\n-\n-    protected void processBeforeInitialization(AbstractConfig config, String beanName) throws BeansException {\n-\n-        if (this.beanFactory == null) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(\"Current Processor is not running in Spring container, next action will be skipped!\");\n-            }\n-            return;\n-        }\n-\n-        // If CommonAnnotationBeanPostProcessor is already registered,  the method addIntoConfigManager()\n-        // will be invoked in Bean life cycle.\n-        if (!hasRegisteredCommonAnnotationBeanPostProcessor()) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"CommonAnnotationBeanPostProcessor is not registered yet, \" +\n-                        \"the method addIntoConfigManager() will be invoked directly\");\n-            }\n-            config.addIntoConfigManager();\n-        }\n-    }\n-\n-    private DefaultListableBeanFactory unwrap(Object registry) {\n-        if (registry instanceof DefaultListableBeanFactory) {\n-            return (DefaultListableBeanFactory) registry;\n-        }\n-        return null;\n-    }\n-\n-    private void initBeanFactory() {\n-        if (beanFactory != null) {\n-            // Register itself\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"BeanFactory is about to be initialized, trying to resolve the Dubbo Config Beans early \" +\n-                        \"initialization\");\n-            }\n-            beanFactory.addBeanPostProcessor(this);\n-        }\n-    }\n-\n-    /**\n-     * {@link DefaultListableBeanFactory} has registered {@link CommonAnnotationBeanPostProcessor} or not?\n-     *\n-     * @return if registered, return <code>true</code>, or <code>false</code>\n-     */\n-    private boolean hasRegisteredCommonAnnotationBeanPostProcessor() {\n-        for (BeanPostProcessor beanPostProcessor : beanFactory.getBeanPostProcessors()) {\n-            if (CommonAnnotationBeanPostProcessor.class.equals(beanPostProcessor.getClass())) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public int getOrder() {\n-        return HIGHEST_PRECEDENCE;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.beans.factory.config;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+\r\n+import com.alibaba.spring.beans.factory.config.GenericBeanPostProcessorAdapter;\r\n+import org.apache.commons.logging.Log;\r\n+import org.apache.commons.logging.LogFactory;\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.config.BeanPostProcessor;\r\n+import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistryPostProcessor;\r\n+import org.springframework.beans.factory.support.DefaultListableBeanFactory;\r\n+import org.springframework.context.annotation.CommonAnnotationBeanPostProcessor;\r\n+import org.springframework.core.PriorityOrdered;\r\n+\r\n+import javax.annotation.PostConstruct;\r\n+\r\n+/**\r\n+ * Generally, {@link AbstractConfig Dubbo Config} Bean will be added into {@link ConfigManager} on the bean initialization\r\n+ * life cycle through {@link CommonAnnotationBeanPostProcessor} executing the callback of\r\n+ * {@link PostConstruct @PostConstruct}. However, the instantiation and initialization of\r\n+ * {@link AbstractConfig Dubbo Config} Bean could be too early before {@link CommonAnnotationBeanPostProcessor}, e.g,\r\n+ * execution, thus it's required to register the current instance as a {@link BeanPostProcessor} into\r\n+ * {@link DefaultListableBeanFactory the BeanFatory} using {@link BeanDefinitionRegistryPostProcessor} as early as\r\n+ * possible.\r\n+ *\r\n+ * @see GenericBeanPostProcessorAdapter\r\n+ * @since 2.7.9\r\n+ */\r\n+public class DubboConfigEarlyInitializationPostProcessor extends GenericBeanPostProcessorAdapter<AbstractConfig>\r\n+        implements BeanDefinitionRegistryPostProcessor, PriorityOrdered {\r\n+\r\n+    private static final Log logger = LogFactory.getLog(DubboConfigEarlyInitializationPostProcessor.class.getName());\r\n+\r\n+    public static final String BEAN_NAME = \"dubboConfigEarlyInitializationPostProcessor\";\r\n+\r\n+    private DefaultListableBeanFactory beanFactory;\r\n+\r\n+    @Override\r\n+    public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry registry) throws BeansException {\r\n+        this.beanFactory = unwrap(registry);\r\n+        initBeanFactory();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void postProcessBeanFactory(ConfigurableListableBeanFactory beanFactory) throws BeansException {\r\n+        if (beanFactory == null) { // try again if postProcessBeanDefinitionRegistry method does not effect.\r\n+            this.beanFactory = unwrap(beanFactory);\r\n+            initBeanFactory();\r\n+        }\r\n+    }\r\n+\r\n+    protected void processBeforeInitialization(AbstractConfig config, String beanName) throws BeansException {\r\n+\r\n+        if (this.beanFactory == null) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(\"Current Processor is not running in Spring container, next action will be skipped!\");\r\n+            }\r\n+            return;\r\n+        }\r\n+\r\n+        // If CommonAnnotationBeanPostProcessor is already registered,  the method addIntoConfigManager()\r\n+        // will be invoked in Bean life cycle.\r\n+        if (!hasRegisteredCommonAnnotationBeanPostProcessor()) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"CommonAnnotationBeanPostProcessor is not registered yet, \" +\r\n+                        \"the method addIntoConfigManager() will be invoked directly\");\r\n+            }\r\n+            config.addIntoConfigManager();\r\n+        }\r\n+    }\r\n+\r\n+    private DefaultListableBeanFactory unwrap(Object registry) {\r\n+        if (registry instanceof DefaultListableBeanFactory) {\r\n+            return (DefaultListableBeanFactory) registry;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    private void initBeanFactory() {\r\n+        if (beanFactory != null) {\r\n+            // Register itself\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"BeanFactory is about to be initialized, trying to resolve the Dubbo Config Beans early \" +\r\n+                        \"initialization\");\r\n+            }\r\n+            beanFactory.addBeanPostProcessor(this);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * {@link DefaultListableBeanFactory} has registered {@link CommonAnnotationBeanPostProcessor} or not?\r\n+     *\r\n+     * @return if registered, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    private boolean hasRegisteredCommonAnnotationBeanPostProcessor() {\r\n+        for (BeanPostProcessor beanPostProcessor : beanFactory.getBeanPostProcessors()) {\r\n+            if (CommonAnnotationBeanPostProcessor.class.equals(beanPostProcessor.getClass())) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getOrder() {\r\n+        return HIGHEST_PRECEDENCE;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/DubboApplicationListenerRegistrar.java", "source2": "org/apache/dubbo/config/spring/context/DubboApplicationListenerRegistrar.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context;\n-\n-import org.springframework.beans.BeansException;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.context.ApplicationListener;\n-import org.springframework.context.ConfigurableApplicationContext;\n-\n-import static org.springframework.util.TypeUtils.isAssignable;\n-\n-/**\n- * Dubbo {@link ApplicationListener ApplicationListeners} Registrar\n- *\n- * @since 2.7.9\n- */\n-public class DubboApplicationListenerRegistrar implements ApplicationContextAware {\n-\n-    /**\n-     * The bean name of {@link DubboApplicationListenerRegistrar}\n-     */\n-    public static final String BEAN_NAME = \"dubboApplicationListenerRegister\";\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\n-        if (!isAssignable(ConfigurableApplicationContext.class, applicationContext.getClass())) {\n-            throw new IllegalArgumentException(\"The argument of ApplicationContext must be ConfigurableApplicationContext\");\n-        }\n-        addApplicationListeners((ConfigurableApplicationContext) applicationContext);\n-    }\n-\n-    private void addApplicationListeners(ConfigurableApplicationContext context) {\n-        context.addApplicationListener(createDubboBootstrapApplicationListener(context));\n-        context.addApplicationListener(createDubboLifecycleComponentApplicationListener(context));\n-    }\n-\n-    private ApplicationListener<?> createDubboBootstrapApplicationListener(ConfigurableApplicationContext context) {\n-        return new DubboBootstrapApplicationListener(context);\n-    }\n-\n-    private ApplicationListener<?> createDubboLifecycleComponentApplicationListener(ConfigurableApplicationContext context) {\n-        return new DubboLifecycleComponentApplicationListener(context);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context;\r\n+\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.context.ApplicationListener;\r\n+import org.springframework.context.ConfigurableApplicationContext;\r\n+\r\n+import static org.springframework.util.TypeUtils.isAssignable;\r\n+\r\n+/**\r\n+ * Dubbo {@link ApplicationListener ApplicationListeners} Registrar\r\n+ *\r\n+ * @since 2.7.9\r\n+ */\r\n+public class DubboApplicationListenerRegistrar implements ApplicationContextAware {\r\n+\r\n+    /**\r\n+     * The bean name of {@link DubboApplicationListenerRegistrar}\r\n+     */\r\n+    public static final String BEAN_NAME = \"dubboApplicationListenerRegister\";\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\r\n+        if (!isAssignable(ConfigurableApplicationContext.class, applicationContext.getClass())) {\r\n+            throw new IllegalArgumentException(\"The argument of ApplicationContext must be ConfigurableApplicationContext\");\r\n+        }\r\n+        addApplicationListeners((ConfigurableApplicationContext) applicationContext);\r\n+    }\r\n+\r\n+    private void addApplicationListeners(ConfigurableApplicationContext context) {\r\n+        context.addApplicationListener(createDubboBootstrapApplicationListener(context));\r\n+        context.addApplicationListener(createDubboLifecycleComponentApplicationListener(context));\r\n+    }\r\n+\r\n+    private ApplicationListener<?> createDubboBootstrapApplicationListener(ConfigurableApplicationContext context) {\r\n+        return new DubboBootstrapApplicationListener(context);\r\n+    }\r\n+\r\n+    private ApplicationListener<?> createDubboLifecycleComponentApplicationListener(ConfigurableApplicationContext context) {\r\n+        return new DubboLifecycleComponentApplicationListener(context);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java", "source2": "org/apache/dubbo/config/spring/context/DubboBootstrapApplicationListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context;\n-\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-\n-import com.alibaba.spring.context.OnceApplicationContextEventListener;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationListener;\n-import org.springframework.context.event.ApplicationContextEvent;\n-import org.springframework.context.event.ContextClosedEvent;\n-import org.springframework.context.event.ContextRefreshedEvent;\n-import org.springframework.core.Ordered;\n-\n-/**\n- * The {@link ApplicationListener} for {@link DubboBootstrap}'s lifecycle when the {@link ContextRefreshedEvent}\n- * and {@link ContextClosedEvent} raised\n- *\n- * @since 2.7.5\n- */\n-public class DubboBootstrapApplicationListener extends OnceApplicationContextEventListener implements Ordered {\n-\n-    /**\n-     * The bean name of {@link DubboBootstrapApplicationListener}\n-     *\n-     * @since 2.7.6\n-     */\n-    public static final String BEAN_NAME = \"dubboBootstrapApplicationListener\";\n-\n-    private final DubboBootstrap dubboBootstrap;\n-\n-    public DubboBootstrapApplicationListener() {\n-        this.dubboBootstrap = DubboBootstrap.getInstance();\n-    }\n-\n-    public DubboBootstrapApplicationListener(ApplicationContext applicationContext) {\n-        super(applicationContext);\n-        this.dubboBootstrap = DubboBootstrap.getInstance();\n-        DubboBootstrapStartStopListenerSpringAdapter.applicationContext = applicationContext;\n-    }\n-\n-    @Override\n-    public void onApplicationContextEvent(ApplicationContextEvent event) {\n-        if (DubboBootstrapStartStopListenerSpringAdapter.applicationContext == null) {\n-            DubboBootstrapStartStopListenerSpringAdapter.applicationContext = event.getApplicationContext();\n-        }\n-        if (event instanceof ContextRefreshedEvent) {\n-            onContextRefreshedEvent((ContextRefreshedEvent) event);\n-        } else if (event instanceof ContextClosedEvent) {\n-            onContextClosedEvent((ContextClosedEvent) event);\n-        }\n-    }\n-\n-    private void onContextRefreshedEvent(ContextRefreshedEvent event) {\n-        dubboBootstrap.start();\n-    }\n-\n-    private void onContextClosedEvent(ContextClosedEvent event) {\n-        dubboBootstrap.stop();\n-    }\n-\n-    @Override\n-    public int getOrder() {\n-        return LOWEST_PRECEDENCE;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context;\r\n+\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+\r\n+import com.alibaba.spring.context.OnceApplicationContextEventListener;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationListener;\r\n+import org.springframework.context.event.ApplicationContextEvent;\r\n+import org.springframework.context.event.ContextClosedEvent;\r\n+import org.springframework.context.event.ContextRefreshedEvent;\r\n+import org.springframework.core.Ordered;\r\n+\r\n+/**\r\n+ * The {@link ApplicationListener} for {@link DubboBootstrap}'s lifecycle when the {@link ContextRefreshedEvent}\r\n+ * and {@link ContextClosedEvent} raised\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboBootstrapApplicationListener extends OnceApplicationContextEventListener implements Ordered {\r\n+\r\n+    /**\r\n+     * The bean name of {@link DubboBootstrapApplicationListener}\r\n+     *\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static final String BEAN_NAME = \"dubboBootstrapApplicationListener\";\r\n+\r\n+    private final DubboBootstrap dubboBootstrap;\r\n+\r\n+    public DubboBootstrapApplicationListener() {\r\n+        this.dubboBootstrap = DubboBootstrap.getInstance();\r\n+    }\r\n+\r\n+    public DubboBootstrapApplicationListener(ApplicationContext applicationContext) {\r\n+        super(applicationContext);\r\n+        this.dubboBootstrap = DubboBootstrap.getInstance();\r\n+        DubboBootstrapStartStopListenerSpringAdapter.applicationContext = applicationContext;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onApplicationContextEvent(ApplicationContextEvent event) {\r\n+        if (DubboBootstrapStartStopListenerSpringAdapter.applicationContext == null) {\r\n+            DubboBootstrapStartStopListenerSpringAdapter.applicationContext = event.getApplicationContext();\r\n+        }\r\n+        if (event instanceof ContextRefreshedEvent) {\r\n+            onContextRefreshedEvent((ContextRefreshedEvent) event);\r\n+        } else if (event instanceof ContextClosedEvent) {\r\n+            onContextClosedEvent((ContextClosedEvent) event);\r\n+        }\r\n+    }\r\n+\r\n+    private void onContextRefreshedEvent(ContextRefreshedEvent event) {\r\n+        dubboBootstrap.start();\r\n+    }\r\n+\r\n+    private void onContextClosedEvent(ContextClosedEvent event) {\r\n+        dubboBootstrap.stop();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getOrder() {\r\n+        return LOWEST_PRECEDENCE;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/DubboBootstrapStartStopListenerSpringAdapter.java", "source2": "org/apache/dubbo/config/spring/context/DubboBootstrapStartStopListenerSpringAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context;\n-\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-import org.apache.dubbo.config.bootstrap.DubboBootstrapStartStopListener;\n-import org.apache.dubbo.config.spring.context.event.DubboBootstrapStatedEvent;\n-import org.apache.dubbo.config.spring.context.event.DubboBootstrapStopedEvent;\n-\n-import org.springframework.context.ApplicationContext;\n-\n-/**\n- * convert Dubbo bootstrap event to spring environment.\n- *\n- * @scene 2.7.9\n- */\n-public class DubboBootstrapStartStopListenerSpringAdapter implements DubboBootstrapStartStopListener {\n-\n-    static ApplicationContext applicationContext;\n-\n-    @Override\n-    public void onStart(DubboBootstrap bootstrap) {\n-        if (applicationContext != null) {\n-            applicationContext.publishEvent(new DubboBootstrapStatedEvent(bootstrap));\n-        }\n-    }\n-\n-    @Override\n-    public void onStop(DubboBootstrap bootstrap) {\n-        if (applicationContext != null) {\n-            applicationContext.publishEvent(new DubboBootstrapStopedEvent(bootstrap));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context;\r\n+\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrapStartStopListener;\r\n+import org.apache.dubbo.config.spring.context.event.DubboBootstrapStatedEvent;\r\n+import org.apache.dubbo.config.spring.context.event.DubboBootstrapStopedEvent;\r\n+\r\n+import org.springframework.context.ApplicationContext;\r\n+\r\n+/**\r\n+ * convert Dubbo bootstrap event to spring environment.\r\n+ *\r\n+ * @scene 2.7.9\r\n+ */\r\n+public class DubboBootstrapStartStopListenerSpringAdapter implements DubboBootstrapStartStopListener {\r\n+\r\n+    static ApplicationContext applicationContext;\r\n+\r\n+    @Override\r\n+    public void onStart(DubboBootstrap bootstrap) {\r\n+        if (applicationContext != null) {\r\n+            applicationContext.publishEvent(new DubboBootstrapStatedEvent(bootstrap));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onStop(DubboBootstrap bootstrap) {\r\n+        if (applicationContext != null) {\r\n+            applicationContext.publishEvent(new DubboBootstrapStopedEvent(bootstrap));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/DubboLifecycleComponentApplicationListener.java", "source2": "org/apache/dubbo/config/spring/context/DubboLifecycleComponentApplicationListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,97 +1,97 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context;\n-\n-import org.apache.dubbo.common.context.Lifecycle;\n-\n-import com.alibaba.spring.context.OnceApplicationContextEventListener;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationListener;\n-import org.springframework.context.event.ApplicationContextEvent;\n-import org.springframework.context.event.ContextClosedEvent;\n-import org.springframework.context.event.ContextRefreshedEvent;\n-import org.springframework.context.event.SmartApplicationListener;\n-\n-import java.util.LinkedList;\n-import java.util.List;\n-\n-import static java.util.Collections.emptyList;\n-import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;\n-\n-/**\n- * A {@link ApplicationListener listener} for the {@link Lifecycle Dubbo Lifecycle} components\n- *\n- * @see {@link Lifecycle Dubbo Lifecycle}\n- * @see SmartApplicationListener\n- * @since 2.7.5\n- */\n-public class DubboLifecycleComponentApplicationListener extends OnceApplicationContextEventListener {\n-\n-    /**\n-     * The bean name of {@link DubboLifecycleComponentApplicationListener}\n-     *\n-     * @since 2.7.6\n-     */\n-    public static final String BEAN_NAME = \"dubboLifecycleComponentApplicationListener\";\n-\n-    private List<Lifecycle> lifecycleComponents = emptyList();\n-\n-    public DubboLifecycleComponentApplicationListener() {\n-    }\n-\n-    public DubboLifecycleComponentApplicationListener(ApplicationContext applicationContext) {\n-        super(applicationContext);\n-    }\n-\n-    @Override\n-    protected void onApplicationContextEvent(ApplicationContextEvent event) {\n-        if (event instanceof ContextRefreshedEvent) {\n-            onContextRefreshedEvent((ContextRefreshedEvent) event);\n-        } else if (event instanceof ContextClosedEvent) {\n-            onContextClosedEvent((ContextClosedEvent) event);\n-        }\n-    }\n-\n-    protected void onContextRefreshedEvent(ContextRefreshedEvent event) {\n-        initLifecycleComponents(event);\n-        startLifecycleComponents();\n-    }\n-\n-    protected void onContextClosedEvent(ContextClosedEvent event) {\n-        destroyLifecycleComponents();\n-    }\n-\n-    private void initLifecycleComponents(ContextRefreshedEvent event) {\n-        ApplicationContext context = event.getApplicationContext();\n-        ClassLoader classLoader = context.getClassLoader();\n-        lifecycleComponents = new LinkedList<>();\n-        // load the Beans of Lifecycle from ApplicationContext\n-        loadLifecycleComponents(lifecycleComponents, context);\n-    }\n-\n-    private void loadLifecycleComponents(List<Lifecycle> lifecycleComponents, ApplicationContext context) {\n-        lifecycleComponents.addAll(beansOfTypeIncludingAncestors(context, Lifecycle.class).values());\n-    }\n-\n-    private void startLifecycleComponents() {\n-        lifecycleComponents.forEach(Lifecycle::start);\n-    }\n-\n-    private void destroyLifecycleComponents() {\n-        lifecycleComponents.forEach(Lifecycle::destroy);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context;\r\n+\r\n+import org.apache.dubbo.common.context.Lifecycle;\r\n+\r\n+import com.alibaba.spring.context.OnceApplicationContextEventListener;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationListener;\r\n+import org.springframework.context.event.ApplicationContextEvent;\r\n+import org.springframework.context.event.ContextClosedEvent;\r\n+import org.springframework.context.event.ContextRefreshedEvent;\r\n+import org.springframework.context.event.SmartApplicationListener;\r\n+\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+import static org.springframework.beans.factory.BeanFactoryUtils.beansOfTypeIncludingAncestors;\r\n+\r\n+/**\r\n+ * A {@link ApplicationListener listener} for the {@link Lifecycle Dubbo Lifecycle} components\r\n+ *\r\n+ * @see {@link Lifecycle Dubbo Lifecycle}\r\n+ * @see SmartApplicationListener\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DubboLifecycleComponentApplicationListener extends OnceApplicationContextEventListener {\r\n+\r\n+    /**\r\n+     * The bean name of {@link DubboLifecycleComponentApplicationListener}\r\n+     *\r\n+     * @since 2.7.6\r\n+     */\r\n+    public static final String BEAN_NAME = \"dubboLifecycleComponentApplicationListener\";\r\n+\r\n+    private List<Lifecycle> lifecycleComponents = emptyList();\r\n+\r\n+    public DubboLifecycleComponentApplicationListener() {\r\n+    }\r\n+\r\n+    public DubboLifecycleComponentApplicationListener(ApplicationContext applicationContext) {\r\n+        super(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void onApplicationContextEvent(ApplicationContextEvent event) {\r\n+        if (event instanceof ContextRefreshedEvent) {\r\n+            onContextRefreshedEvent((ContextRefreshedEvent) event);\r\n+        } else if (event instanceof ContextClosedEvent) {\r\n+            onContextClosedEvent((ContextClosedEvent) event);\r\n+        }\r\n+    }\r\n+\r\n+    protected void onContextRefreshedEvent(ContextRefreshedEvent event) {\r\n+        initLifecycleComponents(event);\r\n+        startLifecycleComponents();\r\n+    }\r\n+\r\n+    protected void onContextClosedEvent(ContextClosedEvent event) {\r\n+        destroyLifecycleComponents();\r\n+    }\r\n+\r\n+    private void initLifecycleComponents(ContextRefreshedEvent event) {\r\n+        ApplicationContext context = event.getApplicationContext();\r\n+        ClassLoader classLoader = context.getClassLoader();\r\n+        lifecycleComponents = new LinkedList<>();\r\n+        // load the Beans of Lifecycle from ApplicationContext\r\n+        loadLifecycleComponents(lifecycleComponents, context);\r\n+    }\r\n+\r\n+    private void loadLifecycleComponents(List<Lifecycle> lifecycleComponents, ApplicationContext context) {\r\n+        lifecycleComponents.addAll(beansOfTypeIncludingAncestors(context, Lifecycle.class).values());\r\n+    }\r\n+\r\n+    private void startLifecycleComponents() {\r\n+        lifecycleComponents.forEach(Lifecycle::start);\r\n+    }\r\n+\r\n+    private void destroyLifecycleComponents() {\r\n+        lifecycleComponents.forEach(Lifecycle::destroy);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java", "source2": "org/apache/dubbo/config/spring/context/annotation/DubboComponentScanRegistrar.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,99 +1,99 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\n-import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;\n-\n-import org.springframework.beans.factory.config.BeanDefinition;\n-import org.springframework.beans.factory.support.AbstractBeanDefinition;\n-import org.springframework.beans.factory.support.BeanDefinitionBuilder;\n-import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.core.type.AnnotationMetadata;\n-import org.springframework.util.ClassUtils;\n-\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.LinkedHashSet;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\n-import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;\n-\n-/**\n- * Dubbo {@link DubboComponentScan} Bean Registrar\n- *\n- * @see Service\n- * @see DubboComponentScan\n- * @see ImportBeanDefinitionRegistrar\n- * @see ServiceAnnotationBeanPostProcessor\n- * @see ReferenceAnnotationBeanPostProcessor\n- * @since 2.5.7\n- */\n-public class DubboComponentScanRegistrar implements ImportBeanDefinitionRegistrar {\n-\n-    @Override\n-    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\n-\n-        Set<String> packagesToScan = getPackagesToScan(importingClassMetadata);\n-\n-        registerServiceAnnotationBeanPostProcessor(packagesToScan, registry);\n-\n-        // @since 2.7.6 Register the common beans\n-        registerCommonBeans(registry);\n-    }\n-\n-    /**\n-     * Registers {@link ServiceAnnotationBeanPostProcessor}\n-     *\n-     * @param packagesToScan packages to scan without resolving placeholders\n-     * @param registry       {@link BeanDefinitionRegistry}\n-     * @since 2.5.8\n-     */\n-    private void registerServiceAnnotationBeanPostProcessor(Set<String> packagesToScan, BeanDefinitionRegistry registry) {\n-\n-        BeanDefinitionBuilder builder = rootBeanDefinition(ServiceAnnotationBeanPostProcessor.class);\n-        builder.addConstructorArgValue(packagesToScan);\n-        builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);\n-        AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();\n-        BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, registry);\n-\n-    }\n-\n-    private Set<String> getPackagesToScan(AnnotationMetadata metadata) {\n-        AnnotationAttributes attributes = AnnotationAttributes.fromMap(\n-                metadata.getAnnotationAttributes(DubboComponentScan.class.getName()));\n-        String[] basePackages = attributes.getStringArray(\"basePackages\");\n-        Class<?>[] basePackageClasses = attributes.getClassArray(\"basePackageClasses\");\n-        String[] value = attributes.getStringArray(\"value\");\n-        // Appends value array attributes\n-        Set<String> packagesToScan = new LinkedHashSet<String>(Arrays.asList(value));\n-        packagesToScan.addAll(Arrays.asList(basePackages));\n-        for (Class<?> basePackageClass : basePackageClasses) {\n-            packagesToScan.add(ClassUtils.getPackageName(basePackageClass));\n-        }\n-        if (packagesToScan.isEmpty()) {\n-            return Collections.singleton(ClassUtils.getPackageName(metadata.getClassName()));\n-        }\n-        return packagesToScan;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;\r\n+\r\n+import org.springframework.beans.factory.config.BeanDefinition;\r\n+import org.springframework.beans.factory.support.AbstractBeanDefinition;\r\n+import org.springframework.beans.factory.support.BeanDefinitionBuilder;\r\n+import org.springframework.beans.factory.support.BeanDefinitionReaderUtils;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.core.type.AnnotationMetadata;\r\n+import org.springframework.util.ClassUtils;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\r\n+import static org.springframework.beans.factory.support.BeanDefinitionBuilder.rootBeanDefinition;\r\n+\r\n+/**\r\n+ * Dubbo {@link DubboComponentScan} Bean Registrar\r\n+ *\r\n+ * @see Service\r\n+ * @see DubboComponentScan\r\n+ * @see ImportBeanDefinitionRegistrar\r\n+ * @see ServiceAnnotationBeanPostProcessor\r\n+ * @see ReferenceAnnotationBeanPostProcessor\r\n+ * @since 2.5.7\r\n+ */\r\n+public class DubboComponentScanRegistrar implements ImportBeanDefinitionRegistrar {\r\n+\r\n+    @Override\r\n+    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\r\n+\r\n+        Set<String> packagesToScan = getPackagesToScan(importingClassMetadata);\r\n+\r\n+        registerServiceAnnotationBeanPostProcessor(packagesToScan, registry);\r\n+\r\n+        // @since 2.7.6 Register the common beans\r\n+        registerCommonBeans(registry);\r\n+    }\r\n+\r\n+    /**\r\n+     * Registers {@link ServiceAnnotationBeanPostProcessor}\r\n+     *\r\n+     * @param packagesToScan packages to scan without resolving placeholders\r\n+     * @param registry       {@link BeanDefinitionRegistry}\r\n+     * @since 2.5.8\r\n+     */\r\n+    private void registerServiceAnnotationBeanPostProcessor(Set<String> packagesToScan, BeanDefinitionRegistry registry) {\r\n+\r\n+        BeanDefinitionBuilder builder = rootBeanDefinition(ServiceAnnotationBeanPostProcessor.class);\r\n+        builder.addConstructorArgValue(packagesToScan);\r\n+        builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);\r\n+        AbstractBeanDefinition beanDefinition = builder.getBeanDefinition();\r\n+        BeanDefinitionReaderUtils.registerWithGeneratedName(beanDefinition, registry);\r\n+\r\n+    }\r\n+\r\n+    private Set<String> getPackagesToScan(AnnotationMetadata metadata) {\r\n+        AnnotationAttributes attributes = AnnotationAttributes.fromMap(\r\n+                metadata.getAnnotationAttributes(DubboComponentScan.class.getName()));\r\n+        String[] basePackages = attributes.getStringArray(\"basePackages\");\r\n+        Class<?>[] basePackageClasses = attributes.getClassArray(\"basePackageClasses\");\r\n+        String[] value = attributes.getStringArray(\"value\");\r\n+        // Appends value array attributes\r\n+        Set<String> packagesToScan = new LinkedHashSet<String>(Arrays.asList(value));\r\n+        packagesToScan.addAll(Arrays.asList(basePackages));\r\n+        for (Class<?> basePackageClass : basePackageClasses) {\r\n+            packagesToScan.add(ClassUtils.getPackageName(basePackageClass));\r\n+        }\r\n+        if (packagesToScan.isEmpty()) {\r\n+            return Collections.singleton(ClassUtils.getPackageName(metadata.getClassName()));\r\n+        }\r\n+        return packagesToScan;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java", "source2": "org/apache/dubbo/config/spring/context/annotation/DubboConfigConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,93 +1,93 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.spring.ConfigCenterBean;\n-\n-import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBinding;\n-import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBindings;\n-import org.springframework.context.annotation.Configuration;\n-\n-/**\n- * Dubbo {@link AbstractConfig Config} {@link Configuration}\n- *\n- * @revised 2.7.5\n- * @see Configuration\n- * @see EnableConfigurationBeanBindings\n- * @see EnableConfigurationBeanBinding\n- * @see ApplicationConfig\n- * @see ModuleConfig\n- * @see RegistryConfig\n- * @see ProtocolConfig\n- * @see MonitorConfig\n- * @see ProviderConfig\n- * @see ConsumerConfig\n- * @see org.apache.dubbo.config.ConfigCenterConfig\n- * @since 2.5.8\n- */\n-public class DubboConfigConfiguration {\n-\n-    /**\n-     * Single Dubbo {@link AbstractConfig Config} Bean Binding\n-     */\n-    @EnableConfigurationBeanBindings({\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.application\", type = ApplicationConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.module\", type = ModuleConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.registry\", type = RegistryConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.protocol\", type = ProtocolConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.monitor\", type = MonitorConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.provider\", type = ProviderConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.consumer\", type = ConsumerConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.config-center\", type = ConfigCenterBean.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.metadata-report\", type = MetadataReportConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.metrics\", type = MetricsConfig.class),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.ssl\", type = SslConfig.class)\n-    })\n-    public static class Single {\n-\n-    }\n-\n-    /**\n-     * Multiple Dubbo {@link AbstractConfig Config} Bean Binding\n-     */\n-    @EnableConfigurationBeanBindings({\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.applications\", type = ApplicationConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.modules\", type = ModuleConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.registries\", type = RegistryConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.protocols\", type = ProtocolConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.monitors\", type = MonitorConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.providers\", type = ProviderConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.consumers\", type = ConsumerConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.config-centers\", type = ConfigCenterBean.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.metadata-reports\", type = MetadataReportConfig.class, multiple = true),\n-            @EnableConfigurationBeanBinding(prefix = \"dubbo.metricses\", type = MetricsConfig.class, multiple = true)\n-    })\n-    public static class Multiple {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.spring.ConfigCenterBean;\r\n+\r\n+import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBinding;\r\n+import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBindings;\r\n+import org.springframework.context.annotation.Configuration;\r\n+\r\n+/**\r\n+ * Dubbo {@link AbstractConfig Config} {@link Configuration}\r\n+ *\r\n+ * @revised 2.7.5\r\n+ * @see Configuration\r\n+ * @see EnableConfigurationBeanBindings\r\n+ * @see EnableConfigurationBeanBinding\r\n+ * @see ApplicationConfig\r\n+ * @see ModuleConfig\r\n+ * @see RegistryConfig\r\n+ * @see ProtocolConfig\r\n+ * @see MonitorConfig\r\n+ * @see ProviderConfig\r\n+ * @see ConsumerConfig\r\n+ * @see org.apache.dubbo.config.ConfigCenterConfig\r\n+ * @since 2.5.8\r\n+ */\r\n+public class DubboConfigConfiguration {\r\n+\r\n+    /**\r\n+     * Single Dubbo {@link AbstractConfig Config} Bean Binding\r\n+     */\r\n+    @EnableConfigurationBeanBindings({\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.application\", type = ApplicationConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.module\", type = ModuleConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.registry\", type = RegistryConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.protocol\", type = ProtocolConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.monitor\", type = MonitorConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.provider\", type = ProviderConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.consumer\", type = ConsumerConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.config-center\", type = ConfigCenterBean.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.metadata-report\", type = MetadataReportConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.metrics\", type = MetricsConfig.class),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.ssl\", type = SslConfig.class)\r\n+    })\r\n+    public static class Single {\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Multiple Dubbo {@link AbstractConfig Config} Bean Binding\r\n+     */\r\n+    @EnableConfigurationBeanBindings({\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.applications\", type = ApplicationConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.modules\", type = ModuleConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.registries\", type = RegistryConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.protocols\", type = ProtocolConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.monitors\", type = MonitorConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.providers\", type = ProviderConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.consumers\", type = ConsumerConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.config-centers\", type = ConfigCenterBean.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.metadata-reports\", type = MetadataReportConfig.class, multiple = true),\r\n+            @EnableConfigurationBeanBinding(prefix = \"dubbo.metricses\", type = MetricsConfig.class, multiple = true)\r\n+    })\r\n+    public static class Multiple {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java", "source2": "org/apache/dubbo/config/spring/context/annotation/DubboConfigConfigurationRegistrar.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.context.ConfigurableApplicationContext;\n-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\n-import org.springframework.core.Ordered;\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.core.type.AnnotationMetadata;\n-\n-import static com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtils.registerBeans;\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\n-\n-/**\n- * Dubbo {@link AbstractConfig Config} {@link ImportBeanDefinitionRegistrar register}, which order can be configured\n- *\n- * @see EnableDubboConfig\n- * @see DubboConfigConfiguration\n- * @see Ordered\n- * @since 2.5.8\n- */\n-public class DubboConfigConfigurationRegistrar implements ImportBeanDefinitionRegistrar, ApplicationContextAware {\n-\n-    private ConfigurableApplicationContext applicationContext;\n-\n-    @Override\n-    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\n-\n-        AnnotationAttributes attributes = AnnotationAttributes.fromMap(\n-                importingClassMetadata.getAnnotationAttributes(EnableDubboConfig.class.getName()));\n-\n-        boolean multiple = attributes.getBoolean(\"multiple\");\n-\n-        // Single Config Bindings\n-        registerBeans(registry, DubboConfigConfiguration.Single.class);\n-\n-        if (multiple) { // Since 2.6.6 https://github.com/apache/dubbo/issues/3193\n-            registerBeans(registry, DubboConfigConfiguration.Multiple.class);\n-        }\n-\n-        // Since 2.7.6\n-        registerCommonBeans(registry);\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\n-        if (!(applicationContext instanceof ConfigurableApplicationContext)) {\n-            throw new IllegalArgumentException(\"The argument of ApplicationContext must be ConfigurableApplicationContext\");\n-        }\n-        this.applicationContext = (ConfigurableApplicationContext) applicationContext;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.context.ConfigurableApplicationContext;\r\n+import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\r\n+import org.springframework.core.Ordered;\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.core.type.AnnotationMetadata;\r\n+\r\n+import static com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtils.registerBeans;\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\r\n+\r\n+/**\r\n+ * Dubbo {@link AbstractConfig Config} {@link ImportBeanDefinitionRegistrar register}, which order can be configured\r\n+ *\r\n+ * @see EnableDubboConfig\r\n+ * @see DubboConfigConfiguration\r\n+ * @see Ordered\r\n+ * @since 2.5.8\r\n+ */\r\n+public class DubboConfigConfigurationRegistrar implements ImportBeanDefinitionRegistrar, ApplicationContextAware {\r\n+\r\n+    private ConfigurableApplicationContext applicationContext;\r\n+\r\n+    @Override\r\n+    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\r\n+\r\n+        AnnotationAttributes attributes = AnnotationAttributes.fromMap(\r\n+                importingClassMetadata.getAnnotationAttributes(EnableDubboConfig.class.getName()));\r\n+\r\n+        boolean multiple = attributes.getBoolean(\"multiple\");\r\n+\r\n+        // Single Config Bindings\r\n+        registerBeans(registry, DubboConfigConfiguration.Single.class);\r\n+\r\n+        if (multiple) { // Since 2.6.6 https://github.com/apache/dubbo/issues/3193\r\n+            registerBeans(registry, DubboConfigConfiguration.Multiple.class);\r\n+        }\r\n+\r\n+        // Since 2.7.6\r\n+        registerCommonBeans(registry);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) throws BeansException {\r\n+        if (!(applicationContext instanceof ConfigurableApplicationContext)) {\r\n+            throw new IllegalArgumentException(\"The argument of ApplicationContext must be ConfigurableApplicationContext\");\r\n+        }\r\n+        this.applicationContext = (ConfigurableApplicationContext) applicationContext;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/DubboLifecycleComponentRegistrar.java", "source2": "org/apache/dubbo/config/spring/context/annotation/DubboLifecycleComponentRegistrar.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.common.context.Lifecycle;\n-import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\n-import org.apache.dubbo.config.spring.context.DubboLifecycleComponentApplicationListener;\n-\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\n-import org.springframework.core.type.AnnotationMetadata;\n-\n-import static com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtils.registerBeans;\n-\n-/**\n- * A {@link ImportBeanDefinitionRegistrar register} for the {@link Lifecycle Dubbo Lifecycle} components\n- *\n- * @since 2.7.5\n- * @deprecated as 2.7.6,  Dubbo {@link Lifecycle} components will be registered automatically. Current class may be\n- * removed in the future\n- */\n-@Deprecated\n-public class DubboLifecycleComponentRegistrar implements ImportBeanDefinitionRegistrar {\n-\n-    @Override\n-    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\n-        registerBeans(registry, DubboLifecycleComponentApplicationListener.class);\n-        registerBeans(registry, DubboBootstrapApplicationListener.class);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.common.context.Lifecycle;\r\n+import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\r\n+import org.apache.dubbo.config.spring.context.DubboLifecycleComponentApplicationListener;\r\n+\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.context.annotation.ImportBeanDefinitionRegistrar;\r\n+import org.springframework.core.type.AnnotationMetadata;\r\n+\r\n+import static com.alibaba.spring.util.AnnotatedBeanDefinitionRegistryUtils.registerBeans;\r\n+\r\n+/**\r\n+ * A {@link ImportBeanDefinitionRegistrar register} for the {@link Lifecycle Dubbo Lifecycle} components\r\n+ *\r\n+ * @since 2.7.5\r\n+ * @deprecated as 2.7.6,  Dubbo {@link Lifecycle} components will be registered automatically. Current class may be\r\n+ * removed in the future\r\n+ */\r\n+@Deprecated\r\n+public class DubboLifecycleComponentRegistrar implements ImportBeanDefinitionRegistrar {\r\n+\r\n+    @Override\r\n+    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {\r\n+        registerBeans(registry, DubboLifecycleComponentApplicationListener.class);\r\n+        registerBeans(registry, DubboBootstrapApplicationListener.class);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/EnableDubbo.java", "source2": "org/apache/dubbo/config/spring/context/annotation/EnableDubbo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,81 +1,81 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import org.springframework.core.annotation.AliasFor;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Enables Dubbo components as Spring Beans, equals\n- * {@link DubboComponentScan} and {@link EnableDubboConfig} combination.\n- * <p>\n- * Note : {@link EnableDubbo} must base on Spring Framework 4.2 and above\n- *\n- * @see DubboComponentScan\n- * @see EnableDubboConfig\n- * @since 2.5.8\n- */\n-@Target({ElementType.TYPE})\n-@Retention(RetentionPolicy.RUNTIME)\n-@Inherited\n-@Documented\n-@EnableDubboConfig\n-@DubboComponentScan\n-public @interface EnableDubbo {\n-\n-    /**\n-     * Base packages to scan for annotated @Service classes.\n-     * <p>\n-     * Use {@link #scanBasePackageClasses()} for a type-safe alternative to String-based\n-     * package names.\n-     *\n-     * @return the base packages to scan\n-     * @see DubboComponentScan#basePackages()\n-     */\n-    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackages\")\n-    String[] scanBasePackages() default {};\n-\n-    /**\n-     * Type-safe alternative to {@link #scanBasePackages()} for specifying the packages to\n-     * scan for annotated @Service classes. The package of each class specified will be\n-     * scanned.\n-     *\n-     * @return classes from the base packages to scan\n-     * @see DubboComponentScan#basePackageClasses\n-     */\n-    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackageClasses\")\n-    Class<?>[] scanBasePackageClasses() default {};\n-\n-\n-    /**\n-     * It indicates whether {@link AbstractConfig} binding to multiple Spring Beans.\n-     *\n-     * @return the default value is <code>true</code>\n-     * @see EnableDubboConfig#multiple()\n-     */\n-    @AliasFor(annotation = EnableDubboConfig.class, attribute = \"multiple\")\n-    boolean multipleConfig() default true;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import org.springframework.core.annotation.AliasFor;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Enables Dubbo components as Spring Beans, equals\r\n+ * {@link DubboComponentScan} and {@link EnableDubboConfig} combination.\r\n+ * <p>\r\n+ * Note : {@link EnableDubbo} must base on Spring Framework 4.2 and above\r\n+ *\r\n+ * @see DubboComponentScan\r\n+ * @see EnableDubboConfig\r\n+ * @since 2.5.8\r\n+ */\r\n+@Target({ElementType.TYPE})\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Inherited\r\n+@Documented\r\n+@EnableDubboConfig\r\n+@DubboComponentScan\r\n+public @interface EnableDubbo {\r\n+\r\n+    /**\r\n+     * Base packages to scan for annotated @Service classes.\r\n+     * <p>\r\n+     * Use {@link #scanBasePackageClasses()} for a type-safe alternative to String-based\r\n+     * package names.\r\n+     *\r\n+     * @return the base packages to scan\r\n+     * @see DubboComponentScan#basePackages()\r\n+     */\r\n+    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackages\")\r\n+    String[] scanBasePackages() default {};\r\n+\r\n+    /**\r\n+     * Type-safe alternative to {@link #scanBasePackages()} for specifying the packages to\r\n+     * scan for annotated @Service classes. The package of each class specified will be\r\n+     * scanned.\r\n+     *\r\n+     * @return classes from the base packages to scan\r\n+     * @see DubboComponentScan#basePackageClasses\r\n+     */\r\n+    @AliasFor(annotation = DubboComponentScan.class, attribute = \"basePackageClasses\")\r\n+    Class<?>[] scanBasePackageClasses() default {};\r\n+\r\n+\r\n+    /**\r\n+     * It indicates whether {@link AbstractConfig} binding to multiple Spring Beans.\r\n+     *\r\n+     * @return the default value is <code>true</code>\r\n+     * @see EnableDubboConfig#multiple()\r\n+     */\r\n+    @AliasFor(annotation = EnableDubboConfig.class, attribute = \"multiple\")\r\n+    boolean multipleConfig() default true;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/EnableDubboConfig.java", "source2": "org/apache/dubbo/config/spring/context/annotation/EnableDubboConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,81 +1,81 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-\n-import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBinding;\n-import org.springframework.context.annotation.Import;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * As a convenient and multiple {@link EnableConfigurationBeanBinding}\n- * in default behavior , is equal to single bean bindings with below convention prefixes of properties:\n- * <ul>\n- * <li>{@link ApplicationConfig} binding to property : \"dubbo.application\"</li>\n- * <li>{@link ModuleConfig} binding to property :  \"dubbo.module\"</li>\n- * <li>{@link RegistryConfig} binding to property :  \"dubbo.registry\"</li>\n- * <li>{@link ProtocolConfig} binding to property :  \"dubbo.protocol\"</li>\n- * <li>{@link MonitorConfig} binding to property :  \"dubbo.monitor\"</li>\n- * <li>{@link ProviderConfig} binding to property :  \"dubbo.provider\"</li>\n- * <li>{@link ConsumerConfig} binding to property :  \"dubbo.consumer\"</li>\n- * </ul>\n- * <p>\n- * In contrast, on multiple bean bindings that requires to set {@link #multiple()} to be <code>true</code> :\n- * <ul>\n- * <li>{@link ApplicationConfig} binding to property : \"dubbo.applications\"</li>\n- * <li>{@link ModuleConfig} binding to property :  \"dubbo.modules\"</li>\n- * <li>{@link RegistryConfig} binding to property :  \"dubbo.registries\"</li>\n- * <li>{@link ProtocolConfig} binding to property :  \"dubbo.protocols\"</li>\n- * <li>{@link MonitorConfig} binding to property :  \"dubbo.monitors\"</li>\n- * <li>{@link ProviderConfig} binding to property :  \"dubbo.providers\"</li>\n- * <li>{@link ConsumerConfig} binding to property :  \"dubbo.consumers\"</li>\n- * </ul>\n- *\n- * @see EnableConfigurationBeanBinding\n- * @see DubboConfigConfiguration\n- * @see DubboConfigConfigurationRegistrar\n- * @since 2.5.8\n- */\n-@Target({ElementType.TYPE})\n-@Retention(RetentionPolicy.RUNTIME)\n-@Inherited\n-@Documented\n-@Import(DubboConfigConfigurationRegistrar.class)\n-public @interface EnableDubboConfig {\n-\n-    /**\n-     * It indicates whether binding to multiple Spring Beans.\n-     *\n-     * @return the default value is <code>true</code>\n-     * @revised 2.5.9\n-     */\n-    boolean multiple() default true;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+\r\n+import com.alibaba.spring.beans.factory.annotation.EnableConfigurationBeanBinding;\r\n+import org.springframework.context.annotation.Import;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * As a convenient and multiple {@link EnableConfigurationBeanBinding}\r\n+ * in default behavior , is equal to single bean bindings with below convention prefixes of properties:\r\n+ * <ul>\r\n+ * <li>{@link ApplicationConfig} binding to property : \"dubbo.application\"</li>\r\n+ * <li>{@link ModuleConfig} binding to property :  \"dubbo.module\"</li>\r\n+ * <li>{@link RegistryConfig} binding to property :  \"dubbo.registry\"</li>\r\n+ * <li>{@link ProtocolConfig} binding to property :  \"dubbo.protocol\"</li>\r\n+ * <li>{@link MonitorConfig} binding to property :  \"dubbo.monitor\"</li>\r\n+ * <li>{@link ProviderConfig} binding to property :  \"dubbo.provider\"</li>\r\n+ * <li>{@link ConsumerConfig} binding to property :  \"dubbo.consumer\"</li>\r\n+ * </ul>\r\n+ * <p>\r\n+ * In contrast, on multiple bean bindings that requires to set {@link #multiple()} to be <code>true</code> :\r\n+ * <ul>\r\n+ * <li>{@link ApplicationConfig} binding to property : \"dubbo.applications\"</li>\r\n+ * <li>{@link ModuleConfig} binding to property :  \"dubbo.modules\"</li>\r\n+ * <li>{@link RegistryConfig} binding to property :  \"dubbo.registries\"</li>\r\n+ * <li>{@link ProtocolConfig} binding to property :  \"dubbo.protocols\"</li>\r\n+ * <li>{@link MonitorConfig} binding to property :  \"dubbo.monitors\"</li>\r\n+ * <li>{@link ProviderConfig} binding to property :  \"dubbo.providers\"</li>\r\n+ * <li>{@link ConsumerConfig} binding to property :  \"dubbo.consumers\"</li>\r\n+ * </ul>\r\n+ *\r\n+ * @see EnableConfigurationBeanBinding\r\n+ * @see DubboConfigConfiguration\r\n+ * @see DubboConfigConfigurationRegistrar\r\n+ * @since 2.5.8\r\n+ */\r\n+@Target({ElementType.TYPE})\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Inherited\r\n+@Documented\r\n+@Import(DubboConfigConfigurationRegistrar.class)\r\n+public @interface EnableDubboConfig {\r\n+\r\n+    /**\r\n+     * It indicates whether binding to multiple Spring Beans.\r\n+     *\r\n+     * @return the default value is <code>true</code>\r\n+     * @revised 2.5.9\r\n+     */\r\n+    boolean multiple() default true;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/annotation/EnableDubboLifecycle.java", "source2": "org/apache/dubbo/config/spring/context/annotation/EnableDubboLifecycle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.annotation;\n-\n-import org.apache.dubbo.common.context.Lifecycle;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Inherited;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Enables Dubbo {@link Lifecycle} components\n- *\n- * @since 2.7.5\n- * @deprecated as 2.7.6,  Dubbo {@link Lifecycle} components will be registered automatically. Current annotation may be\n- * removed in the future\n- */\n-@Target({ElementType.TYPE})\n-@Retention(RetentionPolicy.RUNTIME)\n-@Inherited\n-@Documented\n-//@Import(DubboLifecycleComponentRegistrar.class) // Disabled since 2.7.6\n-@Deprecated\n-public @interface EnableDubboLifecycle {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.annotation;\r\n+\r\n+import org.apache.dubbo.common.context.Lifecycle;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Inherited;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Enables Dubbo {@link Lifecycle} components\r\n+ *\r\n+ * @since 2.7.5\r\n+ * @deprecated as 2.7.6,  Dubbo {@link Lifecycle} components will be registered automatically. Current annotation may be\r\n+ * removed in the future\r\n+ */\r\n+@Target({ElementType.TYPE})\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Inherited\r\n+@Documented\r\n+//@Import(DubboLifecycleComponentRegistrar.class) // Disabled since 2.7.6\r\n+@Deprecated\r\n+public @interface EnableDubboLifecycle {\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/config/DubboConfigBeanCustomizer.java", "source2": "org/apache/dubbo/config/spring/context/config/DubboConfigBeanCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.config;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;\n-\n-import com.alibaba.spring.context.config.ConfigurationBeanCustomizer;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.core.Ordered;\n-\n-/**\n- * The Bean customizer for {@link AbstractConfig Dubbo Config}. Generally, The subclass will be  registered as a Spring\n- * Bean that is used to {@link #customize(String, AbstractConfig) customize} {@link AbstractConfig Dubbo Config} bean\n- * after {@link DubboConfigBinder#bind(String, AbstractConfig) its binding}.\n- * <p>\n- * If There are multiple {@link DubboConfigBeanCustomizer} beans in the Spring {@link ApplicationContext context}, they\n- * are executed orderly, thus the subclass should be aware to implement the {@link #getOrder()} method.\n- *\n- * @see DubboConfigBinder#bind(String, AbstractConfig)\n- * @since 2.6.6\n- */\n-public interface DubboConfigBeanCustomizer extends ConfigurationBeanCustomizer, Ordered {\n-\n-    /**\n-     * Customize {@link AbstractConfig Dubbo Config Bean}\n-     *\n-     * @param beanName        the name of {@link AbstractConfig Dubbo Config Bean}\n-     * @param dubboConfigBean the instance of {@link AbstractConfig Dubbo Config Bean}\n-     */\n-    void customize(String beanName, AbstractConfig dubboConfigBean);\n-\n-    @Override\n-    default void customize(String beanName, Object configurationBean) {\n-        if (configurationBean instanceof AbstractConfig) {\n-            customize(beanName, (AbstractConfig) configurationBean);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.config;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.spring.context.properties.DubboConfigBinder;\r\n+\r\n+import com.alibaba.spring.context.config.ConfigurationBeanCustomizer;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.core.Ordered;\r\n+\r\n+/**\r\n+ * The Bean customizer for {@link AbstractConfig Dubbo Config}. Generally, The subclass will be  registered as a Spring\r\n+ * Bean that is used to {@link #customize(String, AbstractConfig) customize} {@link AbstractConfig Dubbo Config} bean\r\n+ * after {@link DubboConfigBinder#bind(String, AbstractConfig) its binding}.\r\n+ * <p>\r\n+ * If There are multiple {@link DubboConfigBeanCustomizer} beans in the Spring {@link ApplicationContext context}, they\r\n+ * are executed orderly, thus the subclass should be aware to implement the {@link #getOrder()} method.\r\n+ *\r\n+ * @see DubboConfigBinder#bind(String, AbstractConfig)\r\n+ * @since 2.6.6\r\n+ */\r\n+public interface DubboConfigBeanCustomizer extends ConfigurationBeanCustomizer, Ordered {\r\n+\r\n+    /**\r\n+     * Customize {@link AbstractConfig Dubbo Config Bean}\r\n+     *\r\n+     * @param beanName        the name of {@link AbstractConfig Dubbo Config Bean}\r\n+     * @param dubboConfigBean the instance of {@link AbstractConfig Dubbo Config Bean}\r\n+     */\r\n+    void customize(String beanName, AbstractConfig dubboConfigBean);\r\n+\r\n+    @Override\r\n+    default void customize(String beanName, Object configurationBean) {\r\n+        if (configurationBean instanceof AbstractConfig) {\r\n+            customize(beanName, (AbstractConfig) configurationBean);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/config/NamePropertyDefaultValueDubboConfigBeanCustomizer.java", "source2": "org/apache/dubbo/config/spring/context/config/NamePropertyDefaultValueDubboConfigBeanCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,86 +1,86 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.config;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigDefaultPropertyValueBeanPostProcessor;\n-\n-import org.springframework.util.ReflectionUtils;\n-\n-import java.beans.PropertyDescriptor;\n-import java.lang.reflect.Method;\n-import java.util.Arrays;\n-\n-import static com.alibaba.spring.util.ObjectUtils.of;\n-import static org.springframework.beans.BeanUtils.getPropertyDescriptor;\n-\n-/**\n- * {@link DubboConfigBeanCustomizer} for the default value for the \"name\" property that will be taken bean name\n- * if absent.\n- *\n- * @since 2.6.6\n- * @deprecated {@link DubboConfigDefaultPropertyValueBeanPostProcessor} instead\n- */\n-@Deprecated\n-public class NamePropertyDefaultValueDubboConfigBeanCustomizer implements DubboConfigBeanCustomizer {\n-\n-    /**\n-     * The bean name of {@link NamePropertyDefaultValueDubboConfigBeanCustomizer}\n-     *\n-     * @since 2.7.1\n-     */\n-    public static final String BEAN_NAME = \"namePropertyDefaultValueDubboConfigBeanCustomizer\";\n-\n-    /**\n-     * The name of property that is \"name\" maybe is absent in target class\n-     */\n-    private static final String PROPERTY_NAME = \"name\";\n-\n-    @Override\n-    public void customize(String beanName, AbstractConfig dubboConfigBean) {\n-\n-        PropertyDescriptor propertyDescriptor = getPropertyDescriptor(dubboConfigBean.getClass(), PROPERTY_NAME);\n-\n-        if (propertyDescriptor != null) { // \"name\" property is present\n-\n-            Method getNameMethod = propertyDescriptor.getReadMethod();\n-\n-            if (getNameMethod == null) { // if \"getName\" method is absent\n-                return;\n-            }\n-\n-            Object propertyValue = ReflectionUtils.invokeMethod(getNameMethod, dubboConfigBean);\n-\n-            if (propertyValue != null) { // If The return value of \"getName\" method is not null\n-                return;\n-            }\n-\n-            Method setNameMethod = propertyDescriptor.getWriteMethod();\n-            if (setNameMethod != null) { // \"setName\" and \"getName\" methods are present\n-                if (Arrays.equals(of(String.class), setNameMethod.getParameterTypes())) { // the param type is String\n-                    // set bean name to the value of the \"name\" property\n-                    ReflectionUtils.invokeMethod(setNameMethod, dubboConfigBean, beanName);\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public int getOrder() {\n-        return HIGHEST_PRECEDENCE;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.config;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigDefaultPropertyValueBeanPostProcessor;\r\n+\r\n+import org.springframework.util.ReflectionUtils;\r\n+\r\n+import java.beans.PropertyDescriptor;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Arrays;\r\n+\r\n+import static com.alibaba.spring.util.ObjectUtils.of;\r\n+import static org.springframework.beans.BeanUtils.getPropertyDescriptor;\r\n+\r\n+/**\r\n+ * {@link DubboConfigBeanCustomizer} for the default value for the \"name\" property that will be taken bean name\r\n+ * if absent.\r\n+ *\r\n+ * @since 2.6.6\r\n+ * @deprecated {@link DubboConfigDefaultPropertyValueBeanPostProcessor} instead\r\n+ */\r\n+@Deprecated\r\n+public class NamePropertyDefaultValueDubboConfigBeanCustomizer implements DubboConfigBeanCustomizer {\r\n+\r\n+    /**\r\n+     * The bean name of {@link NamePropertyDefaultValueDubboConfigBeanCustomizer}\r\n+     *\r\n+     * @since 2.7.1\r\n+     */\r\n+    public static final String BEAN_NAME = \"namePropertyDefaultValueDubboConfigBeanCustomizer\";\r\n+\r\n+    /**\r\n+     * The name of property that is \"name\" maybe is absent in target class\r\n+     */\r\n+    private static final String PROPERTY_NAME = \"name\";\r\n+\r\n+    @Override\r\n+    public void customize(String beanName, AbstractConfig dubboConfigBean) {\r\n+\r\n+        PropertyDescriptor propertyDescriptor = getPropertyDescriptor(dubboConfigBean.getClass(), PROPERTY_NAME);\r\n+\r\n+        if (propertyDescriptor != null) { // \"name\" property is present\r\n+\r\n+            Method getNameMethod = propertyDescriptor.getReadMethod();\r\n+\r\n+            if (getNameMethod == null) { // if \"getName\" method is absent\r\n+                return;\r\n+            }\r\n+\r\n+            Object propertyValue = ReflectionUtils.invokeMethod(getNameMethod, dubboConfigBean);\r\n+\r\n+            if (propertyValue != null) { // If The return value of \"getName\" method is not null\r\n+                return;\r\n+            }\r\n+\r\n+            Method setNameMethod = propertyDescriptor.getWriteMethod();\r\n+            if (setNameMethod != null) { // \"setName\" and \"getName\" methods are present\r\n+                if (Arrays.equals(of(String.class), setNameMethod.getParameterTypes())) { // the param type is String\r\n+                    // set bean name to the value of the \"name\" property\r\n+                    ReflectionUtils.invokeMethod(setNameMethod, dubboConfigBean, beanName);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getOrder() {\r\n+        return HIGHEST_PRECEDENCE;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/event/DubboBootstrapStatedEvent.java", "source2": "org/apache/dubbo/config/spring/context/event/DubboBootstrapStatedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.event;\n-\n-import org.springframework.context.ApplicationEvent;\n-\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-\n-/**\n- * A {@link org.springframework.context.ApplicationEvent} after {@link org.apache.dubbo.config.bootstrap.DubboBootstrap#start()} success\n- *\n- * @see org.springframework.context.ApplicationEvent\n- * @see org.springframework.context.ApplicationListener\n- * @see org.apache.dubbo.config.bootstrap.DubboBootstrap\n- * @since 2.7.9\n- */\n-public class DubboBootstrapStatedEvent extends ApplicationEvent {\n-\n-    /**\n-     * Create a new ApplicationEvent.\n-     *\n-     * @param bootstrap {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} bootstrap\n-     */\n-    public DubboBootstrapStatedEvent(DubboBootstrap bootstrap) {\n-        super(bootstrap);\n-    }\n-\n-    /**\n-     * Get {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} instance\n-     *\n-     * @return non-null\n-     */\n-    public DubboBootstrap getDubboBootstrap() {\n-        return (DubboBootstrap) super.getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.event;\r\n+\r\n+import org.springframework.context.ApplicationEvent;\r\n+\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+\r\n+/**\r\n+ * A {@link org.springframework.context.ApplicationEvent} after {@link org.apache.dubbo.config.bootstrap.DubboBootstrap#start()} success\r\n+ *\r\n+ * @see org.springframework.context.ApplicationEvent\r\n+ * @see org.springframework.context.ApplicationListener\r\n+ * @see org.apache.dubbo.config.bootstrap.DubboBootstrap\r\n+ * @since 2.7.9\r\n+ */\r\n+public class DubboBootstrapStatedEvent extends ApplicationEvent {\r\n+\r\n+    /**\r\n+     * Create a new ApplicationEvent.\r\n+     *\r\n+     * @param bootstrap {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} bootstrap\r\n+     */\r\n+    public DubboBootstrapStatedEvent(DubboBootstrap bootstrap) {\r\n+        super(bootstrap);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} instance\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    public DubboBootstrap getDubboBootstrap() {\r\n+        return (DubboBootstrap) super.getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/event/DubboBootstrapStopedEvent.java", "source2": "org/apache/dubbo/config/spring/context/event/DubboBootstrapStopedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.event;\n-\n-import org.springframework.context.ApplicationEvent;\n-\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-\n-/**\n- * A {@link org.springframework.context.ApplicationEvent} after {@link org.apache.dubbo.config.bootstrap.DubboBootstrap#stop()} success\n- *\n- * @see org.springframework.context.ApplicationEvent\n- * @see org.springframework.context.ApplicationListener\n- * @see org.apache.dubbo.config.bootstrap.DubboBootstrap\n- * @since 2.7.9\n- */\n-public class DubboBootstrapStopedEvent extends ApplicationEvent {\n-\n-    /**\n-     * Create a new ApplicationEvent.\n-     *\n-     * @param bootstrap {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} bootstrap\n-     */\n-    public DubboBootstrapStopedEvent(DubboBootstrap bootstrap) {\n-        super(bootstrap);\n-    }\n-\n-    /**\n-     * Get {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} instance\n-     *\n-     * @return non-null\n-     */\n-    public DubboBootstrap getDubboBootstrap() {\n-        return (DubboBootstrap) super.getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.event;\r\n+\r\n+import org.springframework.context.ApplicationEvent;\r\n+\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+\r\n+/**\r\n+ * A {@link org.springframework.context.ApplicationEvent} after {@link org.apache.dubbo.config.bootstrap.DubboBootstrap#stop()} success\r\n+ *\r\n+ * @see org.springframework.context.ApplicationEvent\r\n+ * @see org.springframework.context.ApplicationListener\r\n+ * @see org.apache.dubbo.config.bootstrap.DubboBootstrap\r\n+ * @since 2.7.9\r\n+ */\r\n+public class DubboBootstrapStopedEvent extends ApplicationEvent {\r\n+\r\n+    /**\r\n+     * Create a new ApplicationEvent.\r\n+     *\r\n+     * @param bootstrap {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} bootstrap\r\n+     */\r\n+    public DubboBootstrapStopedEvent(DubboBootstrap bootstrap) {\r\n+        super(bootstrap);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get {@link org.apache.dubbo.config.bootstrap.DubboBootstrap} instance\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    public DubboBootstrap getDubboBootstrap() {\r\n+        return (DubboBootstrap) super.getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java", "source2": "org/apache/dubbo/config/spring/context/properties/DefaultDubboConfigBinder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.context.properties;\n-\n-import org.apache.dubbo.config.AbstractConfig;\n-\n-import org.springframework.beans.MutablePropertyValues;\n-import org.springframework.validation.DataBinder;\n-\n-import java.util.Map;\n-\n-import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties;\n-\n-/**\n- * Default {@link DubboConfigBinder} implementation based on Spring {@link DataBinder}\n- */\n-public class DefaultDubboConfigBinder extends AbstractDubboConfigBinder {\n-\n-    @Override\n-    public <C extends AbstractConfig> void bind(String prefix, C dubboConfig) {\n-        DataBinder dataBinder = new DataBinder(dubboConfig);\n-        // Set ignored*\n-        dataBinder.setIgnoreInvalidFields(isIgnoreInvalidFields());\n-        dataBinder.setIgnoreUnknownFields(isIgnoreUnknownFields());\n-        // Get properties under specified prefix from PropertySources\n-        Map<String, Object> properties = getSubProperties(getPropertySources(), prefix);\n-        // Convert Map to MutablePropertyValues\n-        MutablePropertyValues propertyValues = new MutablePropertyValues(properties);\n-        // Bind\n-        dataBinder.bind(propertyValues);\n-    }\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.context.properties;\r\n+\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+\r\n+import org.springframework.beans.MutablePropertyValues;\r\n+import org.springframework.validation.DataBinder;\r\n+\r\n+import java.util.Map;\r\n+\r\n+import static com.alibaba.spring.util.PropertySourcesUtils.getSubProperties;\r\n+\r\n+/**\r\n+ * Default {@link DubboConfigBinder} implementation based on Spring {@link DataBinder}\r\n+ */\r\n+public class DefaultDubboConfigBinder extends AbstractDubboConfigBinder {\r\n+\r\n+    @Override\r\n+    public <C extends AbstractConfig> void bind(String prefix, C dubboConfig) {\r\n+        DataBinder dataBinder = new DataBinder(dubboConfig);\r\n+        // Set ignored*\r\n+        dataBinder.setIgnoreInvalidFields(isIgnoreInvalidFields());\r\n+        dataBinder.setIgnoreUnknownFields(isIgnoreUnknownFields());\r\n+        // Get properties under specified prefix from PropertySources\r\n+        Map<String, Object> properties = getSubProperties(getPropertySources(), prefix);\r\n+        // Convert Map to MutablePropertyValues\r\n+        MutablePropertyValues propertyValues = new MutablePropertyValues(properties);\r\n+        // Bind\r\n+        dataBinder.bind(propertyValues);\r\n+    }\r\n+\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java", "source2": "org/apache/dubbo/config/spring/extension/SpringExtensionFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.extension;\n-\n-import org.apache.dubbo.common.extension.ExtensionFactory;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ConfigurableApplicationContext;\n-\n-import java.util.Set;\n-\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\n-\n-/**\n- * SpringExtensionFactory\n- */\n-public class SpringExtensionFactory implements ExtensionFactory {\n-    private static final Logger logger = LoggerFactory.getLogger(SpringExtensionFactory.class);\n-\n-    private static final Set<ApplicationContext> CONTEXTS = new ConcurrentHashSet<ApplicationContext>();\n-\n-    public static void addApplicationContext(ApplicationContext context) {\n-        CONTEXTS.add(context);\n-        if (context instanceof ConfigurableApplicationContext) {\n-            ((ConfigurableApplicationContext) context).registerShutdownHook();\n-        }\n-    }\n-\n-    public static void removeApplicationContext(ApplicationContext context) {\n-        CONTEXTS.remove(context);\n-    }\n-\n-    public static Set<ApplicationContext> getContexts() {\n-        return CONTEXTS;\n-    }\n-\n-    // currently for test purpose\n-    public static void clearContexts() {\n-        CONTEXTS.clear();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T getExtension(Class<T> type, String name) {\n-\n-        //SPI should be get from SpiExtensionFactory\n-        if (type.isInterface() && type.isAnnotationPresent(SPI.class)) {\n-            return null;\n-        }\n-\n-        for (ApplicationContext context : CONTEXTS) {\n-            T bean = getOptionalBean(context, name, type);\n-            if (bean != null) {\n-                return bean;\n-            }\n-        }\n-\n-        //logger.warn(\"No spring extension (bean) named:\" + name + \", try to find an extension (bean) of type \" + type.getName());\n-\n-        return null;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.extension;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionFactory;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ConfigurableApplicationContext;\r\n+\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.getOptionalBean;\r\n+\r\n+/**\r\n+ * SpringExtensionFactory\r\n+ */\r\n+public class SpringExtensionFactory implements ExtensionFactory {\r\n+    private static final Logger logger = LoggerFactory.getLogger(SpringExtensionFactory.class);\r\n+\r\n+    private static final Set<ApplicationContext> CONTEXTS = new ConcurrentHashSet<ApplicationContext>();\r\n+\r\n+    public static void addApplicationContext(ApplicationContext context) {\r\n+        CONTEXTS.add(context);\r\n+        if (context instanceof ConfigurableApplicationContext) {\r\n+            ((ConfigurableApplicationContext) context).registerShutdownHook();\r\n+        }\r\n+    }\r\n+\r\n+    public static void removeApplicationContext(ApplicationContext context) {\r\n+        CONTEXTS.remove(context);\r\n+    }\r\n+\r\n+    public static Set<ApplicationContext> getContexts() {\r\n+        return CONTEXTS;\r\n+    }\r\n+\r\n+    // currently for test purpose\r\n+    public static void clearContexts() {\r\n+        CONTEXTS.clear();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T getExtension(Class<T> type, String name) {\r\n+\r\n+        //SPI should be get from SpiExtensionFactory\r\n+        if (type.isInterface() && type.isAnnotationPresent(SPI.class)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        for (ApplicationContext context : CONTEXTS) {\r\n+            T bean = getOptionalBean(context, name, type);\r\n+            if (bean != null) {\r\n+                return bean;\r\n+            }\r\n+        }\r\n+\r\n+        //logger.warn(\"No spring extension (bean) named:\" + name + \", try to find an extension (bean) of type \" + type.getName());\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java", "source2": "org/apache/dubbo/config/spring/schema/AnnotationBeanDefinitionParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,79 +1,79 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.schema;\n-\n-import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\n-import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;\n-\n-import org.springframework.beans.factory.config.BeanDefinition;\n-import org.springframework.beans.factory.support.BeanDefinitionBuilder;\n-import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;\n-import org.springframework.beans.factory.xml.ParserContext;\n-import org.w3c.dom.Element;\n-\n-import static org.springframework.util.StringUtils.commaDelimitedListToStringArray;\n-import static org.springframework.util.StringUtils.trimArrayElements;\n-\n-/**\n- * @link BeanDefinitionParser}\n- * @see ServiceAnnotationBeanPostProcessor\n- * @see ReferenceAnnotationBeanPostProcessor\n- * @since 2.5.9\n- */\n-public class AnnotationBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {\n-\n-    /**\n-     * parse\n-     * <prev>\n-     * &lt;dubbo:annotation package=\"\" /&gt;\n-     * </prev>\n-     *\n-     * @param element\n-     * @param parserContext\n-     * @param builder\n-     */\n-    @Override\n-    protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {\n-\n-        String packageToScan = element.getAttribute(\"package\");\n-\n-        String[] packagesToScan = trimArrayElements(commaDelimitedListToStringArray(packageToScan));\n-\n-        builder.addConstructorArgValue(packagesToScan);\n-\n-        builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);\n-\n-        /**\n-         * @since 2.7.6 Register the common beans\n-         * @since 2.7.8 comment this code line, and migrated to\n-         * @see DubboNamespaceHandler#parse(Element, ParserContext)\n-         * @see https://github.com/apache/dubbo/issues/6174\n-         */\n-        // registerCommonBeans(parserContext.getRegistry());\n-    }\n-\n-    @Override\n-    protected boolean shouldGenerateIdAsFallback() {\n-        return true;\n-    }\n-\n-    @Override\n-    protected Class<?> getBeanClass(Element element) {\n-        return ServiceAnnotationBeanPostProcessor.class;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.schema;\r\n+\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.ServiceAnnotationBeanPostProcessor;\r\n+\r\n+import org.springframework.beans.factory.config.BeanDefinition;\r\n+import org.springframework.beans.factory.support.BeanDefinitionBuilder;\r\n+import org.springframework.beans.factory.xml.AbstractSingleBeanDefinitionParser;\r\n+import org.springframework.beans.factory.xml.ParserContext;\r\n+import org.w3c.dom.Element;\r\n+\r\n+import static org.springframework.util.StringUtils.commaDelimitedListToStringArray;\r\n+import static org.springframework.util.StringUtils.trimArrayElements;\r\n+\r\n+/**\r\n+ * @link BeanDefinitionParser}\r\n+ * @see ServiceAnnotationBeanPostProcessor\r\n+ * @see ReferenceAnnotationBeanPostProcessor\r\n+ * @since 2.5.9\r\n+ */\r\n+public class AnnotationBeanDefinitionParser extends AbstractSingleBeanDefinitionParser {\r\n+\r\n+    /**\r\n+     * parse\r\n+     * <prev>\r\n+     * &lt;dubbo:annotation package=\"\" /&gt;\r\n+     * </prev>\r\n+     *\r\n+     * @param element\r\n+     * @param parserContext\r\n+     * @param builder\r\n+     */\r\n+    @Override\r\n+    protected void doParse(Element element, ParserContext parserContext, BeanDefinitionBuilder builder) {\r\n+\r\n+        String packageToScan = element.getAttribute(\"package\");\r\n+\r\n+        String[] packagesToScan = trimArrayElements(commaDelimitedListToStringArray(packageToScan));\r\n+\r\n+        builder.addConstructorArgValue(packagesToScan);\r\n+\r\n+        builder.setRole(BeanDefinition.ROLE_INFRASTRUCTURE);\r\n+\r\n+        /**\r\n+         * @since 2.7.6 Register the common beans\r\n+         * @since 2.7.8 comment this code line, and migrated to\r\n+         * @see DubboNamespaceHandler#parse(Element, ParserContext)\r\n+         * @see https://github.com/apache/dubbo/issues/6174\r\n+         */\r\n+        // registerCommonBeans(parserContext.getRegistry());\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean shouldGenerateIdAsFallback() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Class<?> getBeanClass(Element element) {\r\n+        return ServiceAnnotationBeanPostProcessor.class;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java", "source2": "org/apache/dubbo/config/spring/schema/DubboBeanDefinitionParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,422 +1,422 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.schema;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.AbstractServiceConfig;\n-import org.apache.dubbo.config.ArgumentConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.spring.ReferenceBean;\n-import org.apache.dubbo.config.spring.ServiceBean;\n-\n-import org.springframework.beans.PropertyValue;\n-import org.springframework.beans.factory.config.BeanDefinition;\n-import org.springframework.beans.factory.config.BeanDefinitionHolder;\n-import org.springframework.beans.factory.config.RuntimeBeanReference;\n-import org.springframework.beans.factory.config.TypedStringValue;\n-import org.springframework.beans.factory.support.AbstractBeanDefinition;\n-import org.springframework.beans.factory.support.ManagedList;\n-import org.springframework.beans.factory.support.ManagedMap;\n-import org.springframework.beans.factory.support.RootBeanDefinition;\n-import org.springframework.beans.factory.xml.BeanDefinitionParser;\n-import org.springframework.beans.factory.xml.ParserContext;\n-import org.springframework.core.env.Environment;\n-import org.w3c.dom.Element;\n-import org.w3c.dom.NamedNodeMap;\n-import org.w3c.dom.Node;\n-import org.w3c.dom.NodeList;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.util.Date;\n-import java.util.HashSet;\n-import java.util.Set;\n-import java.util.regex.Pattern;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HIDDEN_KEY_PREFIX;\n-\n-/**\n- * AbstractBeanDefinitionParser\n- *\n- * @export\n- */\n-public class DubboBeanDefinitionParser implements BeanDefinitionParser {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DubboBeanDefinitionParser.class);\n-    private static final Pattern GROUP_AND_VERSION = Pattern.compile(\"^[\\\\-.0-9_a-zA-Z]+(\\\\:[\\\\-.0-9_a-zA-Z]+)?$\");\n-    private static final String ONRETURN = \"onreturn\";\n-    private static final String ONTHROW = \"onthrow\";\n-    private static final String ONINVOKE = \"oninvoke\";\n-    private static final String METHOD = \"Method\";\n-    private final Class<?> beanClass;\n-    private final boolean required;\n-\n-    public DubboBeanDefinitionParser(Class<?> beanClass, boolean required) {\n-        this.beanClass = beanClass;\n-        this.required = required;\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static RootBeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) {\n-        RootBeanDefinition beanDefinition = new RootBeanDefinition();\n-        beanDefinition.setBeanClass(beanClass);\n-        beanDefinition.setLazyInit(false);\n-        String id = resolveAttribute(element, \"id\", parserContext);\n-        if (StringUtils.isEmpty(id) && required) {\n-            String generatedBeanName = resolveAttribute(element, \"name\", parserContext);\n-            if (StringUtils.isEmpty(generatedBeanName)) {\n-                if (ProtocolConfig.class.equals(beanClass)) {\n-                    generatedBeanName = \"dubbo\";\n-                } else {\n-                    generatedBeanName = resolveAttribute(element, \"interface\", parserContext);\n-                }\n-            }\n-            if (StringUtils.isEmpty(generatedBeanName)) {\n-                generatedBeanName = beanClass.getName();\n-            }\n-            id = generatedBeanName;\n-            int counter = 2;\n-            while (parserContext.getRegistry().containsBeanDefinition(id)) {\n-                id = generatedBeanName + (counter++);\n-            }\n-        }\n-        if (StringUtils.isNotEmpty(id)) {\n-            if (parserContext.getRegistry().containsBeanDefinition(id)) {\n-                throw new IllegalStateException(\"Duplicate spring bean id \" + id);\n-            }\n-            parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);\n-            beanDefinition.getPropertyValues().addPropertyValue(\"id\", id);\n-        }\n-        if (ProtocolConfig.class.equals(beanClass)) {\n-            for (String name : parserContext.getRegistry().getBeanDefinitionNames()) {\n-                BeanDefinition definition = parserContext.getRegistry().getBeanDefinition(name);\n-                PropertyValue property = definition.getPropertyValues().getPropertyValue(\"protocol\");\n-                if (property != null) {\n-                    Object value = property.getValue();\n-                    if (value instanceof ProtocolConfig && id.equals(((ProtocolConfig) value).getName())) {\n-                        definition.getPropertyValues().addPropertyValue(\"protocol\", new RuntimeBeanReference(id));\n-                    }\n-                }\n-            }\n-        } else if (ServiceBean.class.equals(beanClass)) {\n-            String className = resolveAttribute(element, \"class\", parserContext);\n-            if (StringUtils.isNotEmpty(className)) {\n-                RootBeanDefinition classDefinition = new RootBeanDefinition();\n-                classDefinition.setBeanClass(ReflectUtils.forName(className));\n-                classDefinition.setLazyInit(false);\n-                parseProperties(element.getChildNodes(), classDefinition, parserContext);\n-                beanDefinition.getPropertyValues().addPropertyValue(\"ref\", new BeanDefinitionHolder(classDefinition, id + \"Impl\"));\n-            }\n-        } else if (ProviderConfig.class.equals(beanClass)) {\n-            parseNested(element, parserContext, ServiceBean.class, true, \"service\", \"provider\", id, beanDefinition);\n-        } else if (ConsumerConfig.class.equals(beanClass)) {\n-            parseNested(element, parserContext, ReferenceBean.class, false, \"reference\", \"consumer\", id, beanDefinition);\n-        }\n-        Set<String> props = new HashSet<>();\n-        ManagedMap parameters = null;\n-        for (Method setter : beanClass.getMethods()) {\n-            String name = setter.getName();\n-            if (name.length() > 3 && name.startsWith(\"set\")\n-                    && Modifier.isPublic(setter.getModifiers())\n-                    && setter.getParameterTypes().length == 1) {\n-                Class<?> type = setter.getParameterTypes()[0];\n-                String beanProperty = name.substring(3, 4).toLowerCase() + name.substring(4);\n-                String property = StringUtils.camelToSplitName(beanProperty, \"-\");\n-                props.add(property);\n-                // check the setter/getter whether match\n-                Method getter = null;\n-                try {\n-                    getter = beanClass.getMethod(\"get\" + name.substring(3), new Class<?>[0]);\n-                } catch (NoSuchMethodException e) {\n-                    try {\n-                        getter = beanClass.getMethod(\"is\" + name.substring(3), new Class<?>[0]);\n-                    } catch (NoSuchMethodException e2) {\n-                        // ignore, there is no need any log here since some class implement the interface: EnvironmentAware,\n-                        // ApplicationAware, etc. They only have setter method, otherwise will cause the error log during application start up.\n-                    }\n-                }\n-                if (getter == null\n-                        || !Modifier.isPublic(getter.getModifiers())\n-                        || !type.equals(getter.getReturnType())) {\n-                    continue;\n-                }\n-                if (\"parameters\".equals(property)) {\n-                    parameters = parseParameters(element.getChildNodes(), beanDefinition, parserContext);\n-                } else if (\"methods\".equals(property)) {\n-                    parseMethods(id, element.getChildNodes(), beanDefinition, parserContext);\n-                } else if (\"arguments\".equals(property)) {\n-                    parseArguments(id, element.getChildNodes(), beanDefinition, parserContext);\n-                } else {\n-                    String value = resolveAttribute(element, property, parserContext);\n-                    if (value != null) {\n-                        value = value.trim();\n-                        if (value.length() > 0) {\n-                            if (\"registry\".equals(property) && RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(value)) {\n-                                RegistryConfig registryConfig = new RegistryConfig();\n-                                registryConfig.setAddress(RegistryConfig.NO_AVAILABLE);\n-                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty, registryConfig);\n-                            } else if (\"provider\".equals(property) || \"registry\".equals(property) || (\"protocol\".equals(property) && AbstractServiceConfig.class.isAssignableFrom(beanClass))) {\n-                                /**\n-                                 * For 'provider' 'protocol' 'registry', keep literal value (should be id/name) and set the value to 'registryIds' 'providerIds' protocolIds'\n-                                 * The following process should make sure each id refers to the corresponding instance, here's how to find the instance for different use cases:\n-                                 * 1. Spring, check existing bean by id, see{@link ServiceBean#afterPropertiesSet()}; then try to use id to find configs defined in remote Config Center\n-                                 * 2. API, directly use id to find configs defined in remote Config Center; if all config instances are defined locally, please use {@link ServiceConfig#setRegistries(List)}\n-                                 */\n-                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty + \"Ids\", value);\n-                            } else {\n-                                Object reference;\n-                                if (isPrimitive(type)) {\n-                                    if (\"async\".equals(property) && \"false\".equals(value)\n-                                            || \"timeout\".equals(property) && \"0\".equals(value)\n-                                            || \"delay\".equals(property) && \"0\".equals(value)\n-                                            || \"version\".equals(property) && \"0.0.0\".equals(value)\n-                                            || \"stat\".equals(property) && \"-1\".equals(value)\n-                                            || \"reliable\".equals(property) && \"false\".equals(value)) {\n-                                        // backward compatibility for the default value in old version's xsd\n-                                        value = null;\n-                                    }\n-                                    reference = value;\n-                                } else if (ONRETURN.equals(property) || ONTHROW.equals(property) || ONINVOKE.equals(property)) {\n-                                    int index = value.lastIndexOf(\".\");\n-                                    String ref = value.substring(0, index);\n-                                    String method = value.substring(index + 1);\n-                                    reference = new RuntimeBeanReference(ref);\n-                                    beanDefinition.getPropertyValues().addPropertyValue(property + METHOD, method);\n-                                } else {\n-                                    if (\"ref\".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {\n-                                        BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);\n-                                        if (!refBean.isSingleton()) {\n-                                            throw new IllegalStateException(\"The exported service ref \" + value + \" must be singleton! Please set the \" + value + \" bean scope to singleton, eg: <bean id=\\\"\" + value + \"\\\" scope=\\\"singleton\\\" ...>\");\n-                                        }\n-                                    }\n-                                    reference = new RuntimeBeanReference(value);\n-                                }\n-                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty, reference);\n-                            }\n-                        }\n-                    }\n-                }\n-            }\n-        }\n-        NamedNodeMap attributes = element.getAttributes();\n-        int len = attributes.getLength();\n-        for (int i = 0; i < len; i++) {\n-            Node node = attributes.item(i);\n-            String name = node.getLocalName();\n-            if (!props.contains(name)) {\n-                if (parameters == null) {\n-                    parameters = new ManagedMap();\n-                }\n-                String value = node.getNodeValue();\n-                parameters.put(name, new TypedStringValue(value, String.class));\n-            }\n-        }\n-        if (parameters != null) {\n-            beanDefinition.getPropertyValues().addPropertyValue(\"parameters\", parameters);\n-        }\n-        return beanDefinition;\n-    }\n-\n-    private static boolean isPrimitive(Class<?> cls) {\n-        return cls.isPrimitive() || cls == Boolean.class || cls == Byte.class\n-                || cls == Character.class || cls == Short.class || cls == Integer.class\n-                || cls == Long.class || cls == Float.class || cls == Double.class\n-                || cls == String.class || cls == Date.class || cls == Class.class;\n-    }\n-\n-    private static void parseNested(Element element, ParserContext parserContext, Class<?> beanClass, boolean required, String tag, String property, String ref, BeanDefinition beanDefinition) {\n-        NodeList nodeList = element.getChildNodes();\n-        if (nodeList == null) {\n-            return;\n-        }\n-        boolean first = true;\n-        for (int i = 0; i < nodeList.getLength(); i++) {\n-            Node node = nodeList.item(i);\n-            if (!(node instanceof Element)) {\n-                continue;\n-            }\n-            if (tag.equals(node.getNodeName())\n-                    || tag.equals(node.getLocalName())) {\n-                if (first) {\n-                    first = false;\n-                    String isDefault = resolveAttribute(element, \"default\", parserContext);\n-                    if (StringUtils.isEmpty(isDefault)) {\n-                        beanDefinition.getPropertyValues().addPropertyValue(\"default\", \"false\");\n-                    }\n-                }\n-                BeanDefinition subDefinition = parse((Element) node, parserContext, beanClass, required);\n-                if (subDefinition != null && StringUtils.isNotEmpty(ref)) {\n-                    subDefinition.getPropertyValues().addPropertyValue(property, new RuntimeBeanReference(ref));\n-                }\n-            }\n-        }\n-    }\n-\n-    private static void parseProperties(NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) {\n-        if (nodeList == null) {\n-            return;\n-        }\n-        for (int i = 0; i < nodeList.getLength(); i++) {\n-            if (!(nodeList.item(i) instanceof Element)) {\n-                continue;\n-            }\n-            Element element = (Element) nodeList.item(i);\n-            if (\"property\".equals(element.getNodeName())\n-                    || \"property\".equals(element.getLocalName())) {\n-                String name = resolveAttribute(element, \"name\", parserContext);\n-                if (StringUtils.isNotEmpty(name)) {\n-                    String value = resolveAttribute(element, \"value\", parserContext);\n-                    String ref = resolveAttribute(element, \"ref\", parserContext);\n-                    if (StringUtils.isNotEmpty(value)) {\n-                        beanDefinition.getPropertyValues().addPropertyValue(name, value);\n-                    } else if (StringUtils.isNotEmpty(ref)) {\n-                        beanDefinition.getPropertyValues().addPropertyValue(name, new RuntimeBeanReference(ref));\n-                    } else {\n-                        throw new UnsupportedOperationException(\"Unsupported <property name=\\\"\" + name + \"\\\"> sub tag, Only supported <property name=\\\"\" + name + \"\\\" ref=\\\"...\\\" /> or <property name=\\\"\" + name + \"\\\" value=\\\"...\\\" />\");\n-                    }\n-                }\n-            }\n-        }\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static ManagedMap parseParameters(NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) {\n-        if (nodeList == null) {\n-            return null;\n-        }\n-        ManagedMap parameters = null;\n-        for (int i = 0; i < nodeList.getLength(); i++) {\n-            if (!(nodeList.item(i) instanceof Element)) {\n-                continue;\n-            }\n-            Element element = (Element) nodeList.item(i);\n-            if (\"parameter\".equals(element.getNodeName())\n-                    || \"parameter\".equals(element.getLocalName())) {\n-                if (parameters == null) {\n-                    parameters = new ManagedMap();\n-                }\n-                String key = resolveAttribute(element, \"key\", parserContext);\n-                String value = resolveAttribute(element, \"value\", parserContext);\n-                boolean hide = \"true\".equals(resolveAttribute(element, \"hide\", parserContext));\n-                if (hide) {\n-                    key = HIDDEN_KEY_PREFIX + key;\n-                }\n-                parameters.put(key, new TypedStringValue(value, String.class));\n-            }\n-        }\n-        return parameters;\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static void parseMethods(String id, NodeList nodeList, RootBeanDefinition beanDefinition,\n-                                     ParserContext parserContext) {\n-        if (nodeList == null) {\n-            return;\n-        }\n-        ManagedList methods = null;\n-        for (int i = 0; i < nodeList.getLength(); i++) {\n-            if (!(nodeList.item(i) instanceof Element)) {\n-                continue;\n-            }\n-            Element element = (Element) nodeList.item(i);\n-            if (\"method\".equals(element.getNodeName()) || \"method\".equals(element.getLocalName())) {\n-                String methodName = resolveAttribute(element, \"name\", parserContext);\n-                if (StringUtils.isEmpty(methodName)) {\n-                    throw new IllegalStateException(\"<dubbo:method> name attribute == null\");\n-                }\n-                if (methods == null) {\n-                    methods = new ManagedList();\n-                }\n-                RootBeanDefinition methodBeanDefinition = parse(element,\n-                        parserContext, MethodConfig.class, false);\n-                String beanName = id + \".\" + methodName;\n-\n-                // If the PropertyValue named \"id\" can't be found,\n-                // bean name will be taken as the \"id\" PropertyValue for MethodConfig\n-                if (!hasPropertyValue(methodBeanDefinition, \"id\")) {\n-                    addPropertyValue(methodBeanDefinition, \"id\", beanName);\n-                }\n-\n-                BeanDefinitionHolder methodBeanDefinitionHolder = new BeanDefinitionHolder(\n-                        methodBeanDefinition, beanName);\n-                methods.add(methodBeanDefinitionHolder);\n-            }\n-        }\n-        if (methods != null) {\n-            beanDefinition.getPropertyValues().addPropertyValue(\"methods\", methods);\n-        }\n-    }\n-\n-    private static boolean hasPropertyValue(AbstractBeanDefinition beanDefinition, String propertyName) {\n-        return beanDefinition.getPropertyValues().contains(propertyName);\n-    }\n-\n-    private static void addPropertyValue(AbstractBeanDefinition beanDefinition, String propertyName, String propertyValue) {\n-        if (StringUtils.isBlank(propertyName) || StringUtils.isBlank(propertyValue)) {\n-            return;\n-        }\n-        beanDefinition.getPropertyValues().addPropertyValue(propertyName, propertyValue);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private static void parseArguments(String id, NodeList nodeList, RootBeanDefinition beanDefinition,\n-                                       ParserContext parserContext) {\n-        if (nodeList == null) {\n-            return;\n-        }\n-        ManagedList arguments = null;\n-        for (int i = 0; i < nodeList.getLength(); i++) {\n-            if (!(nodeList.item(i) instanceof Element)) {\n-                continue;\n-            }\n-            Element element = (Element) nodeList.item(i);\n-            if (\"argument\".equals(element.getNodeName()) || \"argument\".equals(element.getLocalName())) {\n-                String argumentIndex = resolveAttribute(element, \"index\", parserContext);\n-                if (arguments == null) {\n-                    arguments = new ManagedList();\n-                }\n-                BeanDefinition argumentBeanDefinition = parse(element,\n-                        parserContext, ArgumentConfig.class, false);\n-                String name = id + \".\" + argumentIndex;\n-                BeanDefinitionHolder argumentBeanDefinitionHolder = new BeanDefinitionHolder(\n-                        argumentBeanDefinition, name);\n-                arguments.add(argumentBeanDefinitionHolder);\n-            }\n-        }\n-        if (arguments != null) {\n-            beanDefinition.getPropertyValues().addPropertyValue(\"arguments\", arguments);\n-        }\n-    }\n-\n-    @Override\n-    public BeanDefinition parse(Element element, ParserContext parserContext) {\n-        return parse(element, parserContext, beanClass, required);\n-    }\n-\n-    private static String resolveAttribute(Element element, String attributeName, ParserContext parserContext) {\n-        String attributeValue = element.getAttribute(attributeName);\n-        Environment environment = parserContext.getReaderContext().getEnvironment();\n-        return environment.resolvePlaceholders(attributeValue);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.schema;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.AbstractServiceConfig;\r\n+import org.apache.dubbo.config.ArgumentConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.spring.ReferenceBean;\r\n+import org.apache.dubbo.config.spring.ServiceBean;\r\n+\r\n+import org.springframework.beans.PropertyValue;\r\n+import org.springframework.beans.factory.config.BeanDefinition;\r\n+import org.springframework.beans.factory.config.BeanDefinitionHolder;\r\n+import org.springframework.beans.factory.config.RuntimeBeanReference;\r\n+import org.springframework.beans.factory.config.TypedStringValue;\r\n+import org.springframework.beans.factory.support.AbstractBeanDefinition;\r\n+import org.springframework.beans.factory.support.ManagedList;\r\n+import org.springframework.beans.factory.support.ManagedMap;\r\n+import org.springframework.beans.factory.support.RootBeanDefinition;\r\n+import org.springframework.beans.factory.xml.BeanDefinitionParser;\r\n+import org.springframework.beans.factory.xml.ParserContext;\r\n+import org.springframework.core.env.Environment;\r\n+import org.w3c.dom.Element;\r\n+import org.w3c.dom.NamedNodeMap;\r\n+import org.w3c.dom.Node;\r\n+import org.w3c.dom.NodeList;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.Date;\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+import java.util.regex.Pattern;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HIDDEN_KEY_PREFIX;\r\n+\r\n+/**\r\n+ * AbstractBeanDefinitionParser\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class DubboBeanDefinitionParser implements BeanDefinitionParser {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DubboBeanDefinitionParser.class);\r\n+    private static final Pattern GROUP_AND_VERSION = Pattern.compile(\"^[\\\\-.0-9_a-zA-Z]+(\\\\:[\\\\-.0-9_a-zA-Z]+)?$\");\r\n+    private static final String ONRETURN = \"onreturn\";\r\n+    private static final String ONTHROW = \"onthrow\";\r\n+    private static final String ONINVOKE = \"oninvoke\";\r\n+    private static final String METHOD = \"Method\";\r\n+    private final Class<?> beanClass;\r\n+    private final boolean required;\r\n+\r\n+    public DubboBeanDefinitionParser(Class<?> beanClass, boolean required) {\r\n+        this.beanClass = beanClass;\r\n+        this.required = required;\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static RootBeanDefinition parse(Element element, ParserContext parserContext, Class<?> beanClass, boolean required) {\r\n+        RootBeanDefinition beanDefinition = new RootBeanDefinition();\r\n+        beanDefinition.setBeanClass(beanClass);\r\n+        beanDefinition.setLazyInit(false);\r\n+        String id = resolveAttribute(element, \"id\", parserContext);\r\n+        if (StringUtils.isEmpty(id) && required) {\r\n+            String generatedBeanName = resolveAttribute(element, \"name\", parserContext);\r\n+            if (StringUtils.isEmpty(generatedBeanName)) {\r\n+                if (ProtocolConfig.class.equals(beanClass)) {\r\n+                    generatedBeanName = \"dubbo\";\r\n+                } else {\r\n+                    generatedBeanName = resolveAttribute(element, \"interface\", parserContext);\r\n+                }\r\n+            }\r\n+            if (StringUtils.isEmpty(generatedBeanName)) {\r\n+                generatedBeanName = beanClass.getName();\r\n+            }\r\n+            id = generatedBeanName;\r\n+            int counter = 2;\r\n+            while (parserContext.getRegistry().containsBeanDefinition(id)) {\r\n+                id = generatedBeanName + (counter++);\r\n+            }\r\n+        }\r\n+        if (StringUtils.isNotEmpty(id)) {\r\n+            if (parserContext.getRegistry().containsBeanDefinition(id)) {\r\n+                throw new IllegalStateException(\"Duplicate spring bean id \" + id);\r\n+            }\r\n+            parserContext.getRegistry().registerBeanDefinition(id, beanDefinition);\r\n+            beanDefinition.getPropertyValues().addPropertyValue(\"id\", id);\r\n+        }\r\n+        if (ProtocolConfig.class.equals(beanClass)) {\r\n+            for (String name : parserContext.getRegistry().getBeanDefinitionNames()) {\r\n+                BeanDefinition definition = parserContext.getRegistry().getBeanDefinition(name);\r\n+                PropertyValue property = definition.getPropertyValues().getPropertyValue(\"protocol\");\r\n+                if (property != null) {\r\n+                    Object value = property.getValue();\r\n+                    if (value instanceof ProtocolConfig && id.equals(((ProtocolConfig) value).getName())) {\r\n+                        definition.getPropertyValues().addPropertyValue(\"protocol\", new RuntimeBeanReference(id));\r\n+                    }\r\n+                }\r\n+            }\r\n+        } else if (ServiceBean.class.equals(beanClass)) {\r\n+            String className = resolveAttribute(element, \"class\", parserContext);\r\n+            if (StringUtils.isNotEmpty(className)) {\r\n+                RootBeanDefinition classDefinition = new RootBeanDefinition();\r\n+                classDefinition.setBeanClass(ReflectUtils.forName(className));\r\n+                classDefinition.setLazyInit(false);\r\n+                parseProperties(element.getChildNodes(), classDefinition, parserContext);\r\n+                beanDefinition.getPropertyValues().addPropertyValue(\"ref\", new BeanDefinitionHolder(classDefinition, id + \"Impl\"));\r\n+            }\r\n+        } else if (ProviderConfig.class.equals(beanClass)) {\r\n+            parseNested(element, parserContext, ServiceBean.class, true, \"service\", \"provider\", id, beanDefinition);\r\n+        } else if (ConsumerConfig.class.equals(beanClass)) {\r\n+            parseNested(element, parserContext, ReferenceBean.class, false, \"reference\", \"consumer\", id, beanDefinition);\r\n+        }\r\n+        Set<String> props = new HashSet<>();\r\n+        ManagedMap parameters = null;\r\n+        for (Method setter : beanClass.getMethods()) {\r\n+            String name = setter.getName();\r\n+            if (name.length() > 3 && name.startsWith(\"set\")\r\n+                    && Modifier.isPublic(setter.getModifiers())\r\n+                    && setter.getParameterTypes().length == 1) {\r\n+                Class<?> type = setter.getParameterTypes()[0];\r\n+                String beanProperty = name.substring(3, 4).toLowerCase() + name.substring(4);\r\n+                String property = StringUtils.camelToSplitName(beanProperty, \"-\");\r\n+                props.add(property);\r\n+                // check the setter/getter whether match\r\n+                Method getter = null;\r\n+                try {\r\n+                    getter = beanClass.getMethod(\"get\" + name.substring(3), new Class<?>[0]);\r\n+                } catch (NoSuchMethodException e) {\r\n+                    try {\r\n+                        getter = beanClass.getMethod(\"is\" + name.substring(3), new Class<?>[0]);\r\n+                    } catch (NoSuchMethodException e2) {\r\n+                        // ignore, there is no need any log here since some class implement the interface: EnvironmentAware,\r\n+                        // ApplicationAware, etc. They only have setter method, otherwise will cause the error log during application start up.\r\n+                    }\r\n+                }\r\n+                if (getter == null\r\n+                        || !Modifier.isPublic(getter.getModifiers())\r\n+                        || !type.equals(getter.getReturnType())) {\r\n+                    continue;\r\n+                }\r\n+                if (\"parameters\".equals(property)) {\r\n+                    parameters = parseParameters(element.getChildNodes(), beanDefinition, parserContext);\r\n+                } else if (\"methods\".equals(property)) {\r\n+                    parseMethods(id, element.getChildNodes(), beanDefinition, parserContext);\r\n+                } else if (\"arguments\".equals(property)) {\r\n+                    parseArguments(id, element.getChildNodes(), beanDefinition, parserContext);\r\n+                } else {\r\n+                    String value = resolveAttribute(element, property, parserContext);\r\n+                    if (value != null) {\r\n+                        value = value.trim();\r\n+                        if (value.length() > 0) {\r\n+                            if (\"registry\".equals(property) && RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(value)) {\r\n+                                RegistryConfig registryConfig = new RegistryConfig();\r\n+                                registryConfig.setAddress(RegistryConfig.NO_AVAILABLE);\r\n+                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty, registryConfig);\r\n+                            } else if (\"provider\".equals(property) || \"registry\".equals(property) || (\"protocol\".equals(property) && AbstractServiceConfig.class.isAssignableFrom(beanClass))) {\r\n+                                /**\r\n+                                 * For 'provider' 'protocol' 'registry', keep literal value (should be id/name) and set the value to 'registryIds' 'providerIds' protocolIds'\r\n+                                 * The following process should make sure each id refers to the corresponding instance, here's how to find the instance for different use cases:\r\n+                                 * 1. Spring, check existing bean by id, see{@link ServiceBean#afterPropertiesSet()}; then try to use id to find configs defined in remote Config Center\r\n+                                 * 2. API, directly use id to find configs defined in remote Config Center; if all config instances are defined locally, please use {@link ServiceConfig#setRegistries(List)}\r\n+                                 */\r\n+                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty + \"Ids\", value);\r\n+                            } else {\r\n+                                Object reference;\r\n+                                if (isPrimitive(type)) {\r\n+                                    if (\"async\".equals(property) && \"false\".equals(value)\r\n+                                            || \"timeout\".equals(property) && \"0\".equals(value)\r\n+                                            || \"delay\".equals(property) && \"0\".equals(value)\r\n+                                            || \"version\".equals(property) && \"0.0.0\".equals(value)\r\n+                                            || \"stat\".equals(property) && \"-1\".equals(value)\r\n+                                            || \"reliable\".equals(property) && \"false\".equals(value)) {\r\n+                                        // backward compatibility for the default value in old version's xsd\r\n+                                        value = null;\r\n+                                    }\r\n+                                    reference = value;\r\n+                                } else if (ONRETURN.equals(property) || ONTHROW.equals(property) || ONINVOKE.equals(property)) {\r\n+                                    int index = value.lastIndexOf(\".\");\r\n+                                    String ref = value.substring(0, index);\r\n+                                    String method = value.substring(index + 1);\r\n+                                    reference = new RuntimeBeanReference(ref);\r\n+                                    beanDefinition.getPropertyValues().addPropertyValue(property + METHOD, method);\r\n+                                } else {\r\n+                                    if (\"ref\".equals(property) && parserContext.getRegistry().containsBeanDefinition(value)) {\r\n+                                        BeanDefinition refBean = parserContext.getRegistry().getBeanDefinition(value);\r\n+                                        if (!refBean.isSingleton()) {\r\n+                                            throw new IllegalStateException(\"The exported service ref \" + value + \" must be singleton! Please set the \" + value + \" bean scope to singleton, eg: <bean id=\\\"\" + value + \"\\\" scope=\\\"singleton\\\" ...>\");\r\n+                                        }\r\n+                                    }\r\n+                                    reference = new RuntimeBeanReference(value);\r\n+                                }\r\n+                                beanDefinition.getPropertyValues().addPropertyValue(beanProperty, reference);\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        NamedNodeMap attributes = element.getAttributes();\r\n+        int len = attributes.getLength();\r\n+        for (int i = 0; i < len; i++) {\r\n+            Node node = attributes.item(i);\r\n+            String name = node.getLocalName();\r\n+            if (!props.contains(name)) {\r\n+                if (parameters == null) {\r\n+                    parameters = new ManagedMap();\r\n+                }\r\n+                String value = node.getNodeValue();\r\n+                parameters.put(name, new TypedStringValue(value, String.class));\r\n+            }\r\n+        }\r\n+        if (parameters != null) {\r\n+            beanDefinition.getPropertyValues().addPropertyValue(\"parameters\", parameters);\r\n+        }\r\n+        return beanDefinition;\r\n+    }\r\n+\r\n+    private static boolean isPrimitive(Class<?> cls) {\r\n+        return cls.isPrimitive() || cls == Boolean.class || cls == Byte.class\r\n+                || cls == Character.class || cls == Short.class || cls == Integer.class\r\n+                || cls == Long.class || cls == Float.class || cls == Double.class\r\n+                || cls == String.class || cls == Date.class || cls == Class.class;\r\n+    }\r\n+\r\n+    private static void parseNested(Element element, ParserContext parserContext, Class<?> beanClass, boolean required, String tag, String property, String ref, BeanDefinition beanDefinition) {\r\n+        NodeList nodeList = element.getChildNodes();\r\n+        if (nodeList == null) {\r\n+            return;\r\n+        }\r\n+        boolean first = true;\r\n+        for (int i = 0; i < nodeList.getLength(); i++) {\r\n+            Node node = nodeList.item(i);\r\n+            if (!(node instanceof Element)) {\r\n+                continue;\r\n+            }\r\n+            if (tag.equals(node.getNodeName())\r\n+                    || tag.equals(node.getLocalName())) {\r\n+                if (first) {\r\n+                    first = false;\r\n+                    String isDefault = resolveAttribute(element, \"default\", parserContext);\r\n+                    if (StringUtils.isEmpty(isDefault)) {\r\n+                        beanDefinition.getPropertyValues().addPropertyValue(\"default\", \"false\");\r\n+                    }\r\n+                }\r\n+                BeanDefinition subDefinition = parse((Element) node, parserContext, beanClass, required);\r\n+                if (subDefinition != null && StringUtils.isNotEmpty(ref)) {\r\n+                    subDefinition.getPropertyValues().addPropertyValue(property, new RuntimeBeanReference(ref));\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static void parseProperties(NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) {\r\n+        if (nodeList == null) {\r\n+            return;\r\n+        }\r\n+        for (int i = 0; i < nodeList.getLength(); i++) {\r\n+            if (!(nodeList.item(i) instanceof Element)) {\r\n+                continue;\r\n+            }\r\n+            Element element = (Element) nodeList.item(i);\r\n+            if (\"property\".equals(element.getNodeName())\r\n+                    || \"property\".equals(element.getLocalName())) {\r\n+                String name = resolveAttribute(element, \"name\", parserContext);\r\n+                if (StringUtils.isNotEmpty(name)) {\r\n+                    String value = resolveAttribute(element, \"value\", parserContext);\r\n+                    String ref = resolveAttribute(element, \"ref\", parserContext);\r\n+                    if (StringUtils.isNotEmpty(value)) {\r\n+                        beanDefinition.getPropertyValues().addPropertyValue(name, value);\r\n+                    } else if (StringUtils.isNotEmpty(ref)) {\r\n+                        beanDefinition.getPropertyValues().addPropertyValue(name, new RuntimeBeanReference(ref));\r\n+                    } else {\r\n+                        throw new UnsupportedOperationException(\"Unsupported <property name=\\\"\" + name + \"\\\"> sub tag, Only supported <property name=\\\"\" + name + \"\\\" ref=\\\"...\\\" /> or <property name=\\\"\" + name + \"\\\" value=\\\"...\\\" />\");\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static ManagedMap parseParameters(NodeList nodeList, RootBeanDefinition beanDefinition, ParserContext parserContext) {\r\n+        if (nodeList == null) {\r\n+            return null;\r\n+        }\r\n+        ManagedMap parameters = null;\r\n+        for (int i = 0; i < nodeList.getLength(); i++) {\r\n+            if (!(nodeList.item(i) instanceof Element)) {\r\n+                continue;\r\n+            }\r\n+            Element element = (Element) nodeList.item(i);\r\n+            if (\"parameter\".equals(element.getNodeName())\r\n+                    || \"parameter\".equals(element.getLocalName())) {\r\n+                if (parameters == null) {\r\n+                    parameters = new ManagedMap();\r\n+                }\r\n+                String key = resolveAttribute(element, \"key\", parserContext);\r\n+                String value = resolveAttribute(element, \"value\", parserContext);\r\n+                boolean hide = \"true\".equals(resolveAttribute(element, \"hide\", parserContext));\r\n+                if (hide) {\r\n+                    key = HIDDEN_KEY_PREFIX + key;\r\n+                }\r\n+                parameters.put(key, new TypedStringValue(value, String.class));\r\n+            }\r\n+        }\r\n+        return parameters;\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static void parseMethods(String id, NodeList nodeList, RootBeanDefinition beanDefinition,\r\n+                                     ParserContext parserContext) {\r\n+        if (nodeList == null) {\r\n+            return;\r\n+        }\r\n+        ManagedList methods = null;\r\n+        for (int i = 0; i < nodeList.getLength(); i++) {\r\n+            if (!(nodeList.item(i) instanceof Element)) {\r\n+                continue;\r\n+            }\r\n+            Element element = (Element) nodeList.item(i);\r\n+            if (\"method\".equals(element.getNodeName()) || \"method\".equals(element.getLocalName())) {\r\n+                String methodName = resolveAttribute(element, \"name\", parserContext);\r\n+                if (StringUtils.isEmpty(methodName)) {\r\n+                    throw new IllegalStateException(\"<dubbo:method> name attribute == null\");\r\n+                }\r\n+                if (methods == null) {\r\n+                    methods = new ManagedList();\r\n+                }\r\n+                RootBeanDefinition methodBeanDefinition = parse(element,\r\n+                        parserContext, MethodConfig.class, false);\r\n+                String beanName = id + \".\" + methodName;\r\n+\r\n+                // If the PropertyValue named \"id\" can't be found,\r\n+                // bean name will be taken as the \"id\" PropertyValue for MethodConfig\r\n+                if (!hasPropertyValue(methodBeanDefinition, \"id\")) {\r\n+                    addPropertyValue(methodBeanDefinition, \"id\", beanName);\r\n+                }\r\n+\r\n+                BeanDefinitionHolder methodBeanDefinitionHolder = new BeanDefinitionHolder(\r\n+                        methodBeanDefinition, beanName);\r\n+                methods.add(methodBeanDefinitionHolder);\r\n+            }\r\n+        }\r\n+        if (methods != null) {\r\n+            beanDefinition.getPropertyValues().addPropertyValue(\"methods\", methods);\r\n+        }\r\n+    }\r\n+\r\n+    private static boolean hasPropertyValue(AbstractBeanDefinition beanDefinition, String propertyName) {\r\n+        return beanDefinition.getPropertyValues().contains(propertyName);\r\n+    }\r\n+\r\n+    private static void addPropertyValue(AbstractBeanDefinition beanDefinition, String propertyName, String propertyValue) {\r\n+        if (StringUtils.isBlank(propertyName) || StringUtils.isBlank(propertyValue)) {\r\n+            return;\r\n+        }\r\n+        beanDefinition.getPropertyValues().addPropertyValue(propertyName, propertyValue);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static void parseArguments(String id, NodeList nodeList, RootBeanDefinition beanDefinition,\r\n+                                       ParserContext parserContext) {\r\n+        if (nodeList == null) {\r\n+            return;\r\n+        }\r\n+        ManagedList arguments = null;\r\n+        for (int i = 0; i < nodeList.getLength(); i++) {\r\n+            if (!(nodeList.item(i) instanceof Element)) {\r\n+                continue;\r\n+            }\r\n+            Element element = (Element) nodeList.item(i);\r\n+            if (\"argument\".equals(element.getNodeName()) || \"argument\".equals(element.getLocalName())) {\r\n+                String argumentIndex = resolveAttribute(element, \"index\", parserContext);\r\n+                if (arguments == null) {\r\n+                    arguments = new ManagedList();\r\n+                }\r\n+                BeanDefinition argumentBeanDefinition = parse(element,\r\n+                        parserContext, ArgumentConfig.class, false);\r\n+                String name = id + \".\" + argumentIndex;\r\n+                BeanDefinitionHolder argumentBeanDefinitionHolder = new BeanDefinitionHolder(\r\n+                        argumentBeanDefinition, name);\r\n+                arguments.add(argumentBeanDefinitionHolder);\r\n+            }\r\n+        }\r\n+        if (arguments != null) {\r\n+            beanDefinition.getPropertyValues().addPropertyValue(\"arguments\", arguments);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public BeanDefinition parse(Element element, ParserContext parserContext) {\r\n+        return parse(element, parserContext, beanClass, required);\r\n+    }\r\n+\r\n+    private static String resolveAttribute(Element element, String attributeName, ParserContext parserContext) {\r\n+        String attributeValue = element.getAttribute(attributeName);\r\n+        Environment environment = parserContext.getReaderContext().getEnvironment();\r\n+        return environment.resolvePlaceholders(attributeValue);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java", "source2": "org/apache/dubbo/config/spring/schema/DubboNamespaceHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,105 +1,105 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.schema;\n-\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.spring.ConfigCenterBean;\n-import org.apache.dubbo.config.spring.ReferenceBean;\n-import org.apache.dubbo.config.spring.ServiceBean;\n-import org.apache.dubbo.config.spring.beans.factory.config.ConfigurableSourceBeanMetadataElement;\n-\n-import org.springframework.beans.factory.config.BeanDefinition;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-import org.springframework.beans.factory.xml.NamespaceHandlerSupport;\n-import org.springframework.beans.factory.xml.ParserContext;\n-import org.springframework.context.annotation.AnnotationConfigUtils;\n-import org.w3c.dom.Element;\n-\n-import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\n-\n-/**\n- * DubboNamespaceHandler\n- *\n- * @export\n- */\n-public class DubboNamespaceHandler extends NamespaceHandlerSupport implements ConfigurableSourceBeanMetadataElement {\n-\n-    static {\n-        Version.checkDuplicate(DubboNamespaceHandler.class);\n-    }\n-\n-    @Override\n-    public void init() {\n-        registerBeanDefinitionParser(\"application\", new DubboBeanDefinitionParser(ApplicationConfig.class, true));\n-        registerBeanDefinitionParser(\"module\", new DubboBeanDefinitionParser(ModuleConfig.class, true));\n-        registerBeanDefinitionParser(\"registry\", new DubboBeanDefinitionParser(RegistryConfig.class, true));\n-        registerBeanDefinitionParser(\"config-center\", new DubboBeanDefinitionParser(ConfigCenterBean.class, true));\n-        registerBeanDefinitionParser(\"metadata-report\", new DubboBeanDefinitionParser(MetadataReportConfig.class, true));\n-        registerBeanDefinitionParser(\"monitor\", new DubboBeanDefinitionParser(MonitorConfig.class, true));\n-        registerBeanDefinitionParser(\"metrics\", new DubboBeanDefinitionParser(MetricsConfig.class, true));\n-        registerBeanDefinitionParser(\"ssl\", new DubboBeanDefinitionParser(SslConfig.class, true));\n-        registerBeanDefinitionParser(\"provider\", new DubboBeanDefinitionParser(ProviderConfig.class, true));\n-        registerBeanDefinitionParser(\"consumer\", new DubboBeanDefinitionParser(ConsumerConfig.class, true));\n-        registerBeanDefinitionParser(\"protocol\", new DubboBeanDefinitionParser(ProtocolConfig.class, true));\n-        registerBeanDefinitionParser(\"service\", new DubboBeanDefinitionParser(ServiceBean.class, true));\n-        registerBeanDefinitionParser(\"reference\", new DubboBeanDefinitionParser(ReferenceBean.class, false));\n-        registerBeanDefinitionParser(\"annotation\", new AnnotationBeanDefinitionParser());\n-    }\n-\n-    /**\n-     * Override {@link NamespaceHandlerSupport#parse(Element, ParserContext)} method\n-     *\n-     * @param element       {@link Element}\n-     * @param parserContext {@link ParserContext}\n-     * @return\n-     * @since 2.7.5\n-     */\n-    @Override\n-    public BeanDefinition parse(Element element, ParserContext parserContext) {\n-        BeanDefinitionRegistry registry = parserContext.getRegistry();\n-        registerAnnotationConfigProcessors(registry);\n-        /**\n-         * @since 2.7.8\n-         * issue : https://github.com/apache/dubbo/issues/6275\n-         */\n-        registerCommonBeans(registry);\n-        BeanDefinition beanDefinition = super.parse(element, parserContext);\n-        setSource(beanDefinition);\n-        return beanDefinition;\n-    }\n-\n-    /**\n-     * Register the processors for the Spring Annotation-Driven features\n-     *\n-     * @param registry {@link BeanDefinitionRegistry}\n-     * @see AnnotationConfigUtils\n-     * @since 2.7.5\n-     */\n-    private void registerAnnotationConfigProcessors(BeanDefinitionRegistry registry) {\n-        AnnotationConfigUtils.registerAnnotationConfigProcessors(registry);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.schema;\r\n+\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.spring.ConfigCenterBean;\r\n+import org.apache.dubbo.config.spring.ReferenceBean;\r\n+import org.apache.dubbo.config.spring.ServiceBean;\r\n+import org.apache.dubbo.config.spring.beans.factory.config.ConfigurableSourceBeanMetadataElement;\r\n+\r\n+import org.springframework.beans.factory.config.BeanDefinition;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+import org.springframework.beans.factory.xml.NamespaceHandlerSupport;\r\n+import org.springframework.beans.factory.xml.ParserContext;\r\n+import org.springframework.context.annotation.AnnotationConfigUtils;\r\n+import org.w3c.dom.Element;\r\n+\r\n+import static org.apache.dubbo.config.spring.util.DubboBeanUtils.registerCommonBeans;\r\n+\r\n+/**\r\n+ * DubboNamespaceHandler\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class DubboNamespaceHandler extends NamespaceHandlerSupport implements ConfigurableSourceBeanMetadataElement {\r\n+\r\n+    static {\r\n+        Version.checkDuplicate(DubboNamespaceHandler.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void init() {\r\n+        registerBeanDefinitionParser(\"application\", new DubboBeanDefinitionParser(ApplicationConfig.class, true));\r\n+        registerBeanDefinitionParser(\"module\", new DubboBeanDefinitionParser(ModuleConfig.class, true));\r\n+        registerBeanDefinitionParser(\"registry\", new DubboBeanDefinitionParser(RegistryConfig.class, true));\r\n+        registerBeanDefinitionParser(\"config-center\", new DubboBeanDefinitionParser(ConfigCenterBean.class, true));\r\n+        registerBeanDefinitionParser(\"metadata-report\", new DubboBeanDefinitionParser(MetadataReportConfig.class, true));\r\n+        registerBeanDefinitionParser(\"monitor\", new DubboBeanDefinitionParser(MonitorConfig.class, true));\r\n+        registerBeanDefinitionParser(\"metrics\", new DubboBeanDefinitionParser(MetricsConfig.class, true));\r\n+        registerBeanDefinitionParser(\"ssl\", new DubboBeanDefinitionParser(SslConfig.class, true));\r\n+        registerBeanDefinitionParser(\"provider\", new DubboBeanDefinitionParser(ProviderConfig.class, true));\r\n+        registerBeanDefinitionParser(\"consumer\", new DubboBeanDefinitionParser(ConsumerConfig.class, true));\r\n+        registerBeanDefinitionParser(\"protocol\", new DubboBeanDefinitionParser(ProtocolConfig.class, true));\r\n+        registerBeanDefinitionParser(\"service\", new DubboBeanDefinitionParser(ServiceBean.class, true));\r\n+        registerBeanDefinitionParser(\"reference\", new DubboBeanDefinitionParser(ReferenceBean.class, false));\r\n+        registerBeanDefinitionParser(\"annotation\", new AnnotationBeanDefinitionParser());\r\n+    }\r\n+\r\n+    /**\r\n+     * Override {@link NamespaceHandlerSupport#parse(Element, ParserContext)} method\r\n+     *\r\n+     * @param element       {@link Element}\r\n+     * @param parserContext {@link ParserContext}\r\n+     * @return\r\n+     * @since 2.7.5\r\n+     */\r\n+    @Override\r\n+    public BeanDefinition parse(Element element, ParserContext parserContext) {\r\n+        BeanDefinitionRegistry registry = parserContext.getRegistry();\r\n+        registerAnnotationConfigProcessors(registry);\r\n+        /**\r\n+         * @since 2.7.8\r\n+         * issue : https://github.com/apache/dubbo/issues/6275\r\n+         */\r\n+        registerCommonBeans(registry);\r\n+        BeanDefinition beanDefinition = super.parse(element, parserContext);\r\n+        setSource(beanDefinition);\r\n+        return beanDefinition;\r\n+    }\r\n+\r\n+    /**\r\n+     * Register the processors for the Spring Annotation-Driven features\r\n+     *\r\n+     * @param registry {@link BeanDefinitionRegistry}\r\n+     * @see AnnotationConfigUtils\r\n+     * @since 2.7.5\r\n+     */\r\n+    private void registerAnnotationConfigProcessors(BeanDefinitionRegistry registry) {\r\n+        AnnotationConfigUtils.registerAnnotationConfigProcessors(registry);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java", "source2": "org/apache/dubbo/config/spring/status/DataSourceStatusChecker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,89 +1,89 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.status;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.status.Status;\n-import org.apache.dubbo.common.status.StatusChecker;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\n-\n-import org.springframework.context.ApplicationContext;\n-\n-import javax.sql.DataSource;\n-import java.sql.Connection;\n-import java.sql.DatabaseMetaData;\n-import java.sql.ResultSet;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Optional;\n-\n-/**\n- * DataSourceStatusChecker\n- */\n-@Activate\n-public class DataSourceStatusChecker implements StatusChecker {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DataSourceStatusChecker.class);\n-\n-    @Override\n-    public Status check() {\n-        Optional<ApplicationContext> context =\n-                SpringExtensionFactory.getContexts().stream().filter(Objects::nonNull).findFirst();\n-\n-        if (!context.isPresent()) {\n-            return new Status(Status.Level.UNKNOWN);\n-        }\n-\n-        Map<String, DataSource> dataSources =\n-                context.get().getBeansOfType(DataSource.class, false, false);\n-        if (CollectionUtils.isEmptyMap(dataSources)) {\n-            return new Status(Status.Level.UNKNOWN);\n-        }\n-        Status.Level level = Status.Level.OK;\n-        StringBuilder buf = new StringBuilder();\n-        for (Map.Entry<String, DataSource> entry : dataSources.entrySet()) {\n-            DataSource dataSource = entry.getValue();\n-            if (buf.length() > 0) {\n-                buf.append(\", \");\n-            }\n-            buf.append(entry.getKey());\n-\n-            try (Connection connection = dataSource.getConnection()) {\n-                DatabaseMetaData metaData = connection.getMetaData();\n-                try (ResultSet resultSet = metaData.getTypeInfo()) {\n-                    if (!resultSet.next()) {\n-                        level = Status.Level.ERROR;\n-                    }\n-                }\n-                buf.append(metaData.getURL());\n-                buf.append(\"(\");\n-                buf.append(metaData.getDatabaseProductName());\n-                buf.append(\"-\");\n-                buf.append(metaData.getDatabaseProductVersion());\n-                buf.append(\")\");\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-                return new Status(level, e.getMessage());\n-            }\n-        }\n-        return new Status(level, buf.toString());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.status;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.status.Status;\r\n+import org.apache.dubbo.common.status.StatusChecker;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\r\n+\r\n+import org.springframework.context.ApplicationContext;\r\n+\r\n+import javax.sql.DataSource;\r\n+import java.sql.Connection;\r\n+import java.sql.DatabaseMetaData;\r\n+import java.sql.ResultSet;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Optional;\r\n+\r\n+/**\r\n+ * DataSourceStatusChecker\r\n+ */\r\n+@Activate\r\n+public class DataSourceStatusChecker implements StatusChecker {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DataSourceStatusChecker.class);\r\n+\r\n+    @Override\r\n+    public Status check() {\r\n+        Optional<ApplicationContext> context =\r\n+                SpringExtensionFactory.getContexts().stream().filter(Objects::nonNull).findFirst();\r\n+\r\n+        if (!context.isPresent()) {\r\n+            return new Status(Status.Level.UNKNOWN);\r\n+        }\r\n+\r\n+        Map<String, DataSource> dataSources =\r\n+                context.get().getBeansOfType(DataSource.class, false, false);\r\n+        if (CollectionUtils.isEmptyMap(dataSources)) {\r\n+            return new Status(Status.Level.UNKNOWN);\r\n+        }\r\n+        Status.Level level = Status.Level.OK;\r\n+        StringBuilder buf = new StringBuilder();\r\n+        for (Map.Entry<String, DataSource> entry : dataSources.entrySet()) {\r\n+            DataSource dataSource = entry.getValue();\r\n+            if (buf.length() > 0) {\r\n+                buf.append(\", \");\r\n+            }\r\n+            buf.append(entry.getKey());\r\n+\r\n+            try (Connection connection = dataSource.getConnection()) {\r\n+                DatabaseMetaData metaData = connection.getMetaData();\r\n+                try (ResultSet resultSet = metaData.getTypeInfo()) {\r\n+                    if (!resultSet.next()) {\r\n+                        level = Status.Level.ERROR;\r\n+                    }\r\n+                }\r\n+                buf.append(metaData.getURL());\r\n+                buf.append(\"(\");\r\n+                buf.append(metaData.getDatabaseProductName());\r\n+                buf.append(\"-\");\r\n+                buf.append(metaData.getDatabaseProductVersion());\r\n+                buf.append(\")\");\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+                return new Status(level, e.getMessage());\r\n+            }\r\n+        }\r\n+        return new Status(level, buf.toString());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/status/SpringStatusChecker.java", "source2": "org/apache/dubbo/config/spring/status/SpringStatusChecker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.status;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.status.Status;\n-import org.apache.dubbo.common.status.StatusChecker;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\n-\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.Lifecycle;\n-import org.springframework.web.context.support.GenericWebApplicationContext;\n-\n-import java.lang.reflect.Method;\n-\n-/**\n- * SpringStatusChecker\n- */\n-@Activate\n-public class SpringStatusChecker implements StatusChecker {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(SpringStatusChecker.class);\n-\n-    @Override\n-    public Status check() {\n-        ApplicationContext context = null;\n-        for (ApplicationContext c : SpringExtensionFactory.getContexts()) {\n-            // [Issue] SpringStatusChecker execute errors on non-XML Spring configuration\n-            // issue : https://github.com/apache/dubbo/issues/3615\n-            if(c instanceof GenericWebApplicationContext) { // ignore GenericXmlApplicationContext\n-                continue;\n-            }\n-\n-            if (c != null) {\n-                context = c;\n-                break;\n-            }\n-        }\n-\n-        if (context == null) {\n-            return new Status(Status.Level.UNKNOWN);\n-        }\n-\n-        Status.Level level;\n-        if (context instanceof Lifecycle) {\n-            if (((Lifecycle) context).isRunning()) {\n-                level = Status.Level.OK;\n-            } else {\n-                level = Status.Level.ERROR;\n-            }\n-        } else {\n-            level = Status.Level.UNKNOWN;\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        try {\n-            Class<?> cls = context.getClass();\n-            Method method = null;\n-            while (cls != null && method == null) {\n-                try {\n-                    method = cls.getDeclaredMethod(\"getConfigLocations\", new Class<?>[0]);\n-                } catch (NoSuchMethodException t) {\n-                    cls = cls.getSuperclass();\n-                }\n-            }\n-            if (method != null) {\n-                ReflectUtils.makeAccessible(method);\n-                String[] configs = (String[]) method.invoke(context, new Object[0]);\n-                if (configs != null && configs.length > 0) {\n-                    for (String config : configs) {\n-                        if (buf.length() > 0) {\n-                            buf.append(\",\");\n-                        }\n-                        buf.append(config);\n-                    }\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-        return new Status(level, buf.toString());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.status;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.status.Status;\r\n+import org.apache.dubbo.common.status.StatusChecker;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.config.spring.extension.SpringExtensionFactory;\r\n+\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.Lifecycle;\r\n+import org.springframework.web.context.support.GenericWebApplicationContext;\r\n+\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * SpringStatusChecker\r\n+ */\r\n+@Activate\r\n+public class SpringStatusChecker implements StatusChecker {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(SpringStatusChecker.class);\r\n+\r\n+    @Override\r\n+    public Status check() {\r\n+        ApplicationContext context = null;\r\n+        for (ApplicationContext c : SpringExtensionFactory.getContexts()) {\r\n+            // [Issue] SpringStatusChecker execute errors on non-XML Spring configuration\r\n+            // issue : https://github.com/apache/dubbo/issues/3615\r\n+            if(c instanceof GenericWebApplicationContext) { // ignore GenericXmlApplicationContext\r\n+                continue;\r\n+            }\r\n+\r\n+            if (c != null) {\r\n+                context = c;\r\n+                break;\r\n+            }\r\n+        }\r\n+\r\n+        if (context == null) {\r\n+            return new Status(Status.Level.UNKNOWN);\r\n+        }\r\n+\r\n+        Status.Level level;\r\n+        if (context instanceof Lifecycle) {\r\n+            if (((Lifecycle) context).isRunning()) {\r\n+                level = Status.Level.OK;\r\n+            } else {\r\n+                level = Status.Level.ERROR;\r\n+            }\r\n+        } else {\r\n+            level = Status.Level.UNKNOWN;\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        try {\r\n+            Class<?> cls = context.getClass();\r\n+            Method method = null;\r\n+            while (cls != null && method == null) {\r\n+                try {\r\n+                    method = cls.getDeclaredMethod(\"getConfigLocations\", new Class<?>[0]);\r\n+                } catch (NoSuchMethodException t) {\r\n+                    cls = cls.getSuperclass();\r\n+                }\r\n+            }\r\n+            if (method != null) {\r\n+                ReflectUtils.makeAccessible(method);\r\n+                String[] configs = (String[]) method.invoke(context, new Object[0]);\r\n+                if (configs != null && configs.length > 0) {\r\n+                    for (String config : configs) {\r\n+                        if (buf.length() > 0) {\r\n+                            buf.append(\",\");\r\n+                        }\r\n+                        buf.append(config);\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+        return new Status(level, buf.toString());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java", "source2": "org/apache/dubbo/config/spring/util/DubboAnnotationUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,150 +1,150 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.util;\n-\n-import org.apache.dubbo.config.annotation.Reference;\n-import org.apache.dubbo.config.annotation.Service;\n-\n-import org.springframework.core.annotation.AnnotationAttributes;\n-import org.springframework.util.Assert;\n-import org.springframework.util.ClassUtils;\n-\n-import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\n-import static org.springframework.util.ClassUtils.getAllInterfacesForClass;\n-import static org.springframework.util.ClassUtils.resolveClassName;\n-import static org.springframework.util.StringUtils.hasText;\n-\n-/**\n- * Dubbo Annotation Utilities Class\n- *\n- * @see org.springframework.core.annotation.AnnotationUtils\n- * @since 2.5.11\n- */\n-public class DubboAnnotationUtils {\n-\n-\n-    @Deprecated\n-    public static String resolveInterfaceName(Service service, Class<?> defaultInterfaceClass)\n-            throws IllegalStateException {\n-\n-        String interfaceName;\n-        if (hasText(service.interfaceName())) {\n-            interfaceName = service.interfaceName();\n-        } else if (!void.class.equals(service.interfaceClass())) {\n-            interfaceName = service.interfaceClass().getName();\n-        } else if (defaultInterfaceClass.isInterface()) {\n-            interfaceName = defaultInterfaceClass.getName();\n-        } else {\n-            throw new IllegalStateException(\n-                    \"The @Service undefined interfaceClass or interfaceName, and the type \"\n-                            + defaultInterfaceClass.getName() + \" is not a interface.\");\n-        }\n-\n-        return interfaceName;\n-\n-    }\n-\n-    /**\n-     * Resolve the interface name from {@link AnnotationAttributes}\n-     *\n-     * @param attributes            {@link AnnotationAttributes} instance, may be {@link Service @Service} or {@link Reference @Reference}\n-     * @param defaultInterfaceClass the default {@link Class class} of interface\n-     * @return the interface name if found\n-     * @throws IllegalStateException if interface name was not found\n-     */\n-    public static String resolveInterfaceName(AnnotationAttributes attributes, Class<?> defaultInterfaceClass) {\n-        Boolean generic = getAttribute(attributes, \"generic\");\n-        if (generic != null && generic) {\n-            // it's a generic reference\n-            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\n-            Assert.hasText(interfaceClassName,\n-                    \"@Reference interfaceName() must be present when reference a generic service!\");\n-            return interfaceClassName;\n-        }\n-        return resolveServiceInterfaceClass(attributes, defaultInterfaceClass).getName();\n-    }\n-\n-    /**\n-     * Resolve the {@link Class class} of Dubbo Service interface from the specified\n-     * {@link AnnotationAttributes annotation attributes} and annotated {@link Class class}.\n-     *\n-     * @param attributes            {@link AnnotationAttributes annotation attributes}\n-     * @param defaultInterfaceClass the annotated {@link Class class}.\n-     * @return the {@link Class class} of Dubbo Service interface\n-     * @throws IllegalArgumentException if can't resolved\n-     */\n-    public static Class<?> resolveServiceInterfaceClass(AnnotationAttributes attributes, Class<?> defaultInterfaceClass)\n-            throws IllegalArgumentException {\n-\n-        ClassLoader classLoader = defaultInterfaceClass != null ? defaultInterfaceClass.getClassLoader() : Thread.currentThread().getContextClassLoader();\n-\n-        Class<?> interfaceClass = getAttribute(attributes, \"interfaceClass\");\n-\n-        if (void.class.equals(interfaceClass)) { // default or set void.class for purpose.\n-\n-            interfaceClass = null;\n-\n-            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\n-\n-            if (hasText(interfaceClassName)) {\n-                if (ClassUtils.isPresent(interfaceClassName, classLoader)) {\n-                    interfaceClass = resolveClassName(interfaceClassName, classLoader);\n-                }\n-            }\n-\n-        }\n-\n-        if (interfaceClass == null && defaultInterfaceClass != null) {\n-            // Find all interfaces from the annotated class\n-            // To resolve an issue : https://github.com/apache/dubbo/issues/3251\n-            Class<?>[] allInterfaces = getAllInterfacesForClass(defaultInterfaceClass);\n-\n-            if (allInterfaces.length > 0) {\n-                interfaceClass = allInterfaces[0];\n-            }\n-\n-        }\n-\n-        Assert.notNull(interfaceClass,\n-                \"@Service interfaceClass() or interfaceName() or interface class must be present!\");\n-\n-        Assert.isTrue(interfaceClass.isInterface(),\n-                \"The annotated type must be an interface!\");\n-\n-        return interfaceClass;\n-    }\n-\n-    @Deprecated\n-    public static String resolveInterfaceName(Reference reference, Class<?> defaultInterfaceClass)\n-            throws IllegalStateException {\n-\n-        String interfaceName;\n-        if (!\"\".equals(reference.interfaceName())) {\n-            interfaceName = reference.interfaceName();\n-        } else if (!void.class.equals(reference.interfaceClass())) {\n-            interfaceName = reference.interfaceClass().getName();\n-        } else if (defaultInterfaceClass.isInterface()) {\n-            interfaceName = defaultInterfaceClass.getName();\n-        } else {\n-            throw new IllegalStateException(\n-                    \"The @Reference undefined interfaceClass or interfaceName, and the type \"\n-                            + defaultInterfaceClass.getName() + \" is not a interface.\");\n-        }\n-\n-        return interfaceName;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.util;\r\n+\r\n+import org.apache.dubbo.config.annotation.Reference;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+\r\n+import org.springframework.core.annotation.AnnotationAttributes;\r\n+import org.springframework.util.Assert;\r\n+import org.springframework.util.ClassUtils;\r\n+\r\n+import static com.alibaba.spring.util.AnnotationUtils.getAttribute;\r\n+import static org.springframework.util.ClassUtils.getAllInterfacesForClass;\r\n+import static org.springframework.util.ClassUtils.resolveClassName;\r\n+import static org.springframework.util.StringUtils.hasText;\r\n+\r\n+/**\r\n+ * Dubbo Annotation Utilities Class\r\n+ *\r\n+ * @see org.springframework.core.annotation.AnnotationUtils\r\n+ * @since 2.5.11\r\n+ */\r\n+public class DubboAnnotationUtils {\r\n+\r\n+\r\n+    @Deprecated\r\n+    public static String resolveInterfaceName(Service service, Class<?> defaultInterfaceClass)\r\n+            throws IllegalStateException {\r\n+\r\n+        String interfaceName;\r\n+        if (hasText(service.interfaceName())) {\r\n+            interfaceName = service.interfaceName();\r\n+        } else if (!void.class.equals(service.interfaceClass())) {\r\n+            interfaceName = service.interfaceClass().getName();\r\n+        } else if (defaultInterfaceClass.isInterface()) {\r\n+            interfaceName = defaultInterfaceClass.getName();\r\n+        } else {\r\n+            throw new IllegalStateException(\r\n+                    \"The @Service undefined interfaceClass or interfaceName, and the type \"\r\n+                            + defaultInterfaceClass.getName() + \" is not a interface.\");\r\n+        }\r\n+\r\n+        return interfaceName;\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the interface name from {@link AnnotationAttributes}\r\n+     *\r\n+     * @param attributes            {@link AnnotationAttributes} instance, may be {@link Service @Service} or {@link Reference @Reference}\r\n+     * @param defaultInterfaceClass the default {@link Class class} of interface\r\n+     * @return the interface name if found\r\n+     * @throws IllegalStateException if interface name was not found\r\n+     */\r\n+    public static String resolveInterfaceName(AnnotationAttributes attributes, Class<?> defaultInterfaceClass) {\r\n+        Boolean generic = getAttribute(attributes, \"generic\");\r\n+        if (generic != null && generic) {\r\n+            // it's a generic reference\r\n+            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\r\n+            Assert.hasText(interfaceClassName,\r\n+                    \"@Reference interfaceName() must be present when reference a generic service!\");\r\n+            return interfaceClassName;\r\n+        }\r\n+        return resolveServiceInterfaceClass(attributes, defaultInterfaceClass).getName();\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the {@link Class class} of Dubbo Service interface from the specified\r\n+     * {@link AnnotationAttributes annotation attributes} and annotated {@link Class class}.\r\n+     *\r\n+     * @param attributes            {@link AnnotationAttributes annotation attributes}\r\n+     * @param defaultInterfaceClass the annotated {@link Class class}.\r\n+     * @return the {@link Class class} of Dubbo Service interface\r\n+     * @throws IllegalArgumentException if can't resolved\r\n+     */\r\n+    public static Class<?> resolveServiceInterfaceClass(AnnotationAttributes attributes, Class<?> defaultInterfaceClass)\r\n+            throws IllegalArgumentException {\r\n+\r\n+        ClassLoader classLoader = defaultInterfaceClass != null ? defaultInterfaceClass.getClassLoader() : Thread.currentThread().getContextClassLoader();\r\n+\r\n+        Class<?> interfaceClass = getAttribute(attributes, \"interfaceClass\");\r\n+\r\n+        if (void.class.equals(interfaceClass)) { // default or set void.class for purpose.\r\n+\r\n+            interfaceClass = null;\r\n+\r\n+            String interfaceClassName = getAttribute(attributes, \"interfaceName\");\r\n+\r\n+            if (hasText(interfaceClassName)) {\r\n+                if (ClassUtils.isPresent(interfaceClassName, classLoader)) {\r\n+                    interfaceClass = resolveClassName(interfaceClassName, classLoader);\r\n+                }\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        if (interfaceClass == null && defaultInterfaceClass != null) {\r\n+            // Find all interfaces from the annotated class\r\n+            // To resolve an issue : https://github.com/apache/dubbo/issues/3251\r\n+            Class<?>[] allInterfaces = getAllInterfacesForClass(defaultInterfaceClass);\r\n+\r\n+            if (allInterfaces.length > 0) {\r\n+                interfaceClass = allInterfaces[0];\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        Assert.notNull(interfaceClass,\r\n+                \"@Service interfaceClass() or interfaceName() or interface class must be present!\");\r\n+\r\n+        Assert.isTrue(interfaceClass.isInterface(),\r\n+                \"The annotated type must be an interface!\");\r\n+\r\n+        return interfaceClass;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public static String resolveInterfaceName(Reference reference, Class<?> defaultInterfaceClass)\r\n+            throws IllegalStateException {\r\n+\r\n+        String interfaceName;\r\n+        if (!\"\".equals(reference.interfaceName())) {\r\n+            interfaceName = reference.interfaceName();\r\n+        } else if (!void.class.equals(reference.interfaceClass())) {\r\n+            interfaceName = reference.interfaceClass().getName();\r\n+        } else if (defaultInterfaceClass.isInterface()) {\r\n+            interfaceName = defaultInterfaceClass.getName();\r\n+        } else {\r\n+            throw new IllegalStateException(\r\n+                    \"The @Reference undefined interfaceClass or interfaceName, and the type \"\r\n+                            + defaultInterfaceClass.getName() + \" is not a interface.\");\r\n+        }\r\n+\r\n+        return interfaceName;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/spring/util/DubboBeanUtils.java", "source2": "org/apache/dubbo/config/spring/util/DubboBeanUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.spring.util;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.spring.beans.factory.annotation.DubboConfigAliasPostProcessor;\n-import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\n-import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigDefaultPropertyValueBeanPostProcessor;\n-import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigEarlyInitializationPostProcessor;\n-import org.apache.dubbo.config.spring.context.DubboApplicationListenerRegistrar;\n-import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\n-import org.apache.dubbo.config.spring.context.DubboLifecycleComponentApplicationListener;\n-import org.springframework.beans.BeansException;\n-import org.springframework.beans.factory.BeanFactoryUtils;\n-import org.springframework.beans.factory.BeanNotOfRequiredTypeException;\n-import org.springframework.beans.factory.ListableBeanFactory;\n-import org.springframework.beans.factory.NoSuchBeanDefinitionException;\n-import org.springframework.beans.factory.NoUniqueBeanDefinitionException;\n-import org.springframework.beans.factory.support.BeanDefinitionRegistry;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-\n-import static com.alibaba.spring.util.BeanRegistrar.registerInfrastructureBean;\n-import static java.util.Collections.emptyList;\n-import static java.util.Collections.unmodifiableList;\n-import static org.springframework.util.ObjectUtils.isEmpty;\n-\n-/**\n- * Dubbo Bean utilities class\n- *\n- * @since 2.7.6\n- */\n-public abstract class DubboBeanUtils {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DubboBeanUtils.class);\n-\n-    /**\n-     * Register the common beans\n-     *\n-     * @param registry {@link BeanDefinitionRegistry}\n-     * @see ReferenceAnnotationBeanPostProcessor\n-     * @see DubboConfigDefaultPropertyValueBeanPostProcessor\n-     * @see DubboConfigAliasPostProcessor\n-     * @see DubboLifecycleComponentApplicationListener\n-     * @see DubboBootstrapApplicationListener\n-     */\n-    public static void registerCommonBeans(BeanDefinitionRegistry registry) {\n-\n-        // Since 2.5.7 Register @Reference Annotation Bean Processor as an infrastructure Bean\n-        registerInfrastructureBean(registry, ReferenceAnnotationBeanPostProcessor.BEAN_NAME,\n-                ReferenceAnnotationBeanPostProcessor.class);\n-\n-        // Since 2.7.4 [Feature] https://github.com/apache/dubbo/issues/5093\n-        registerInfrastructureBean(registry, DubboConfigAliasPostProcessor.BEAN_NAME,\n-                DubboConfigAliasPostProcessor.class);\n-\n-        // Since 2.7.9 Register DubboApplicationListenerRegister as an infrastructure Bean\n-        // https://github.com/apache/dubbo/issues/6559\n-\n-        // Since 2.7.5 Register DubboLifecycleComponentApplicationListener as an infrastructure Bean\n-        // registerInfrastructureBean(registry, DubboLifecycleComponentApplicationListener.BEAN_NAME,\n-        //        DubboLifecycleComponentApplicationListener.class);\n-\n-        // Since 2.7.4 Register DubboBootstrapApplicationListener as an infrastructure Bean\n-        // registerInfrastructureBean(registry, DubboBootstrapApplicationListener.BEAN_NAME,\n-        //        DubboBootstrapApplicationListener.class);\n-\n-        registerInfrastructureBean(registry, DubboApplicationListenerRegistrar.BEAN_NAME,\n-                DubboApplicationListenerRegistrar.class);\n-\n-        // Since 2.7.6 Register DubboConfigDefaultPropertyValueBeanPostProcessor as an infrastructure Bean\n-        registerInfrastructureBean(registry, DubboConfigDefaultPropertyValueBeanPostProcessor.BEAN_NAME,\n-                DubboConfigDefaultPropertyValueBeanPostProcessor.class);\n-\n-        // Since 2.7.9 Register DubboConfigEarlyInitializationPostProcessor as an infrastructure Bean\n-        registerInfrastructureBean(registry, DubboConfigEarlyInitializationPostProcessor.BEAN_NAME,\n-                DubboConfigEarlyInitializationPostProcessor.class);\n-    }\n-\n-    /**\n-     * Get optional bean by name and type if beanName is not null, or else find by type\n-     *\n-     * @param beanFactory\n-     * @param beanName\n-     * @param beanType\n-     * @param <T>\n-     * @return\n-     */\n-    public static <T> T getOptionalBean(ListableBeanFactory beanFactory, String beanName, Class<T> beanType) throws BeansException {\n-        if (beanName == null) {\n-            return getOptionalBeanByType(beanFactory, beanType);\n-        }\n-\n-        T bean = null;\n-        try {\n-            bean = beanFactory.getBean(beanName, beanType);\n-        } catch (NoSuchBeanDefinitionException e) {\n-            // ignore NoSuchBeanDefinitionException\n-        } catch (BeanNotOfRequiredTypeException e) {\n-            // ignore BeanNotOfRequiredTypeException\n-            logger.warn(String.format(\"bean type not match, name: %s, expected type: %s, actual type: %s\",\n-                    beanName, beanType.getName(), e.getActualType().getName()));\n-        }\n-        return bean;\n-    }\n-\n-    private static <T> T getOptionalBeanByType(ListableBeanFactory beanFactory, Class<T> beanType) {\n-        // Issue : https://github.com/alibaba/spring-context-support/issues/20\n-        String[] beanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, beanType, true, false);\n-        if (beanNames == null || beanNames.length == 0) {\n-            return null;\n-        } else if (beanNames.length > 1){\n-            throw new NoUniqueBeanDefinitionException(beanType, Arrays.asList(beanNames));\n-        }\n-        return (T) beanFactory.getBean(beanNames[0]);\n-    }\n-\n-    public static <T> T getBean(ListableBeanFactory beanFactory, String beanName, Class<T> beanType) throws BeansException {\n-        return beanFactory.getBean(beanName, beanType);\n-    }\n-\n-    /**\n-     * Get beans by names and type\n-     *\n-     * @param beanFactory\n-     * @param beanNames\n-     * @param beanType\n-     * @param <T>\n-     * @return\n-     */\n-    public static <T> List<T> getBeans(ListableBeanFactory beanFactory, String[] beanNames, Class<T> beanType) throws BeansException {\n-        if (isEmpty(beanNames)) {\n-            return emptyList();\n-        }\n-        List<T> beans = new ArrayList<T>(beanNames.length);\n-        for (String beanName : beanNames) {\n-            T bean = getBean(beanFactory, beanName, beanType);\n-            if (bean != null) {\n-                beans.add(bean);\n-            }\n-        }\n-        return unmodifiableList(beans);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.spring.util;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.DubboConfigAliasPostProcessor;\r\n+import org.apache.dubbo.config.spring.beans.factory.annotation.ReferenceAnnotationBeanPostProcessor;\r\n+import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigDefaultPropertyValueBeanPostProcessor;\r\n+import org.apache.dubbo.config.spring.beans.factory.config.DubboConfigEarlyInitializationPostProcessor;\r\n+import org.apache.dubbo.config.spring.context.DubboApplicationListenerRegistrar;\r\n+import org.apache.dubbo.config.spring.context.DubboBootstrapApplicationListener;\r\n+import org.apache.dubbo.config.spring.context.DubboLifecycleComponentApplicationListener;\r\n+import org.springframework.beans.BeansException;\r\n+import org.springframework.beans.factory.BeanFactoryUtils;\r\n+import org.springframework.beans.factory.BeanNotOfRequiredTypeException;\r\n+import org.springframework.beans.factory.ListableBeanFactory;\r\n+import org.springframework.beans.factory.NoSuchBeanDefinitionException;\r\n+import org.springframework.beans.factory.NoUniqueBeanDefinitionException;\r\n+import org.springframework.beans.factory.support.BeanDefinitionRegistry;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+\r\n+import static com.alibaba.spring.util.BeanRegistrar.registerInfrastructureBean;\r\n+import static java.util.Collections.emptyList;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.springframework.util.ObjectUtils.isEmpty;\r\n+\r\n+/**\r\n+ * Dubbo Bean utilities class\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public abstract class DubboBeanUtils {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DubboBeanUtils.class);\r\n+\r\n+    /**\r\n+     * Register the common beans\r\n+     *\r\n+     * @param registry {@link BeanDefinitionRegistry}\r\n+     * @see ReferenceAnnotationBeanPostProcessor\r\n+     * @see DubboConfigDefaultPropertyValueBeanPostProcessor\r\n+     * @see DubboConfigAliasPostProcessor\r\n+     * @see DubboLifecycleComponentApplicationListener\r\n+     * @see DubboBootstrapApplicationListener\r\n+     */\r\n+    public static void registerCommonBeans(BeanDefinitionRegistry registry) {\r\n+\r\n+        // Since 2.5.7 Register @Reference Annotation Bean Processor as an infrastructure Bean\r\n+        registerInfrastructureBean(registry, ReferenceAnnotationBeanPostProcessor.BEAN_NAME,\r\n+                ReferenceAnnotationBeanPostProcessor.class);\r\n+\r\n+        // Since 2.7.4 [Feature] https://github.com/apache/dubbo/issues/5093\r\n+        registerInfrastructureBean(registry, DubboConfigAliasPostProcessor.BEAN_NAME,\r\n+                DubboConfigAliasPostProcessor.class);\r\n+\r\n+        // Since 2.7.9 Register DubboApplicationListenerRegister as an infrastructure Bean\r\n+        // https://github.com/apache/dubbo/issues/6559\r\n+\r\n+        // Since 2.7.5 Register DubboLifecycleComponentApplicationListener as an infrastructure Bean\r\n+        // registerInfrastructureBean(registry, DubboLifecycleComponentApplicationListener.BEAN_NAME,\r\n+        //        DubboLifecycleComponentApplicationListener.class);\r\n+\r\n+        // Since 2.7.4 Register DubboBootstrapApplicationListener as an infrastructure Bean\r\n+        // registerInfrastructureBean(registry, DubboBootstrapApplicationListener.BEAN_NAME,\r\n+        //        DubboBootstrapApplicationListener.class);\r\n+\r\n+        registerInfrastructureBean(registry, DubboApplicationListenerRegistrar.BEAN_NAME,\r\n+                DubboApplicationListenerRegistrar.class);\r\n+\r\n+        // Since 2.7.6 Register DubboConfigDefaultPropertyValueBeanPostProcessor as an infrastructure Bean\r\n+        registerInfrastructureBean(registry, DubboConfigDefaultPropertyValueBeanPostProcessor.BEAN_NAME,\r\n+                DubboConfigDefaultPropertyValueBeanPostProcessor.class);\r\n+\r\n+        // Since 2.7.9 Register DubboConfigEarlyInitializationPostProcessor as an infrastructure Bean\r\n+        registerInfrastructureBean(registry, DubboConfigEarlyInitializationPostProcessor.BEAN_NAME,\r\n+                DubboConfigEarlyInitializationPostProcessor.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get optional bean by name and type if beanName is not null, or else find by type\r\n+     *\r\n+     * @param beanFactory\r\n+     * @param beanName\r\n+     * @param beanType\r\n+     * @param <T>\r\n+     * @return\r\n+     */\r\n+    public static <T> T getOptionalBean(ListableBeanFactory beanFactory, String beanName, Class<T> beanType) throws BeansException {\r\n+        if (beanName == null) {\r\n+            return getOptionalBeanByType(beanFactory, beanType);\r\n+        }\r\n+\r\n+        T bean = null;\r\n+        try {\r\n+            bean = beanFactory.getBean(beanName, beanType);\r\n+        } catch (NoSuchBeanDefinitionException e) {\r\n+            // ignore NoSuchBeanDefinitionException\r\n+        } catch (BeanNotOfRequiredTypeException e) {\r\n+            // ignore BeanNotOfRequiredTypeException\r\n+            logger.warn(String.format(\"bean type not match, name: %s, expected type: %s, actual type: %s\",\r\n+                    beanName, beanType.getName(), e.getActualType().getName()));\r\n+        }\r\n+        return bean;\r\n+    }\r\n+\r\n+    private static <T> T getOptionalBeanByType(ListableBeanFactory beanFactory, Class<T> beanType) {\r\n+        // Issue : https://github.com/alibaba/spring-context-support/issues/20\r\n+        String[] beanNames = BeanFactoryUtils.beanNamesForTypeIncludingAncestors(beanFactory, beanType, true, false);\r\n+        if (beanNames == null || beanNames.length == 0) {\r\n+            return null;\r\n+        } else if (beanNames.length > 1){\r\n+            throw new NoUniqueBeanDefinitionException(beanType, Arrays.asList(beanNames));\r\n+        }\r\n+        return (T) beanFactory.getBean(beanNames[0]);\r\n+    }\r\n+\r\n+    public static <T> T getBean(ListableBeanFactory beanFactory, String beanName, Class<T> beanType) throws BeansException {\r\n+        return beanFactory.getBean(beanName, beanType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get beans by names and type\r\n+     *\r\n+     * @param beanFactory\r\n+     * @param beanNames\r\n+     * @param beanType\r\n+     * @param <T>\r\n+     * @return\r\n+     */\r\n+    public static <T> List<T> getBeans(ListableBeanFactory beanFactory, String[] beanNames, Class<T> beanType) throws BeansException {\r\n+        if (isEmpty(beanNames)) {\r\n+            return emptyList();\r\n+        }\r\n+        List<T> beans = new ArrayList<T>(beanNames.length);\r\n+        for (String beanName : beanNames) {\r\n+            T bean = getBean(beanFactory, beanName, beanType);\r\n+            if (bean != null) {\r\n+                beans.add(bean);\r\n+            }\r\n+        }\r\n+        return unmodifiableList(beans);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/support/Parameter.java", "source2": "org/apache/dubbo/config/support/Parameter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.support;\n-\n-import java.lang.annotation.Documented;\n-import java.lang.annotation.ElementType;\n-import java.lang.annotation.Retention;\n-import java.lang.annotation.RetentionPolicy;\n-import java.lang.annotation.Target;\n-\n-/**\n- * Parameter\n- */\n-@Documented\n-@Retention(RetentionPolicy.RUNTIME)\n-@Target({ElementType.METHOD})\n-public @interface Parameter {\n-\n-    String key() default \"\";\n-\n-    boolean required() default false;\n-\n-    boolean excluded() default false;\n-\n-    boolean escaped() default false;\n-\n-    boolean attribute() default false;\n-\n-    boolean append() default false;\n-\n-    /**\n-     * if {@link #key()} is specified, it will be used as the key for the annotated property when generating url.\n-     * by default, this key will also be used to retrieve the config value:\n-     * <pre>\n-     * {@code\n-     *  class ExampleConfig {\n-     *      // Dubbo will try to get \"dubbo.example.alias_for_item=xxx\" from .properties, if you want to use the original property\n-     *      // \"dubbo.example.item=xxx\", you need to set useKeyAsProperty=false.\n-     *      @Parameter(key = \"alias_for_item\")\n-     *      public getItem();\n-     *  }\n-     * }\n-     *\n-     * </pre>\n-     */\n-    boolean useKeyAsProperty() default true;\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.support;\r\n+\r\n+import java.lang.annotation.Documented;\r\n+import java.lang.annotation.ElementType;\r\n+import java.lang.annotation.Retention;\r\n+import java.lang.annotation.RetentionPolicy;\r\n+import java.lang.annotation.Target;\r\n+\r\n+/**\r\n+ * Parameter\r\n+ */\r\n+@Documented\r\n+@Retention(RetentionPolicy.RUNTIME)\r\n+@Target({ElementType.METHOD})\r\n+public @interface Parameter {\r\n+\r\n+    String key() default \"\";\r\n+\r\n+    boolean required() default false;\r\n+\r\n+    boolean excluded() default false;\r\n+\r\n+    boolean escaped() default false;\r\n+\r\n+    boolean attribute() default false;\r\n+\r\n+    boolean append() default false;\r\n+\r\n+    /**\r\n+     * if {@link #key()} is specified, it will be used as the key for the annotated property when generating url.\r\n+     * by default, this key will also be used to retrieve the config value:\r\n+     * <pre>\r\n+     * {@code\r\n+     *  class ExampleConfig {\r\n+     *      // Dubbo will try to get \"dubbo.example.alias_for_item=xxx\" from .properties, if you want to use the original property\r\n+     *      // \"dubbo.example.item=xxx\", you need to set useKeyAsProperty=false.\r\n+     *      @Parameter(key = \"alias_for_item\")\r\n+     *      public getItem();\r\n+     *  }\r\n+     * }\r\n+     *\r\n+     * </pre>\r\n+     */\r\n+    boolean useKeyAsProperty() default true;\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/config/utils/ConfigValidationUtils.java", "source2": "org/apache/dubbo/config/utils/ConfigValidationUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,658 +1,658 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.utils;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.status.StatusChecker;\n-import org.apache.dubbo.common.threadpool.ThreadPool;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.config.AbstractConfig;\n-import org.apache.dubbo.config.AbstractInterfaceConfig;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.ConfigCenterConfig;\n-import org.apache.dubbo.config.ConsumerConfig;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.config.MethodConfig;\n-import org.apache.dubbo.config.MetricsConfig;\n-import org.apache.dubbo.config.ModuleConfig;\n-import org.apache.dubbo.config.MonitorConfig;\n-import org.apache.dubbo.config.ProtocolConfig;\n-import org.apache.dubbo.config.ProviderConfig;\n-import org.apache.dubbo.config.ReferenceConfig;\n-import org.apache.dubbo.config.RegistryConfig;\n-import org.apache.dubbo.config.ServiceConfig;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.monitor.MonitorFactory;\n-import org.apache.dubbo.monitor.MonitorService;\n-import org.apache.dubbo.registry.RegistryService;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.Dispatcher;\n-import org.apache.dubbo.remoting.Transporter;\n-import org.apache.dubbo.remoting.exchange.Exchanger;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.rpc.ExporterListener;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.InvokerListener;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.support.MockInvoker;\n-\n-import java.net.InetAddress;\n-import java.net.UnknownHostException;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.regex.Matcher;\n-import java.util.regex.Pattern;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_PROTOCOL;\n-import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PASSWORD_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOVE_VALUE_PREFIX;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.USERNAME_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.utils.UrlUtils.isServiceDiscoveryRegistryType;\n-import static org.apache.dubbo.config.Constants.ARCHITECTURE;\n-import static org.apache.dubbo.config.Constants.CONTEXTPATH_KEY;\n-import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\n-import static org.apache.dubbo.config.Constants.ENVIRONMENT;\n-import static org.apache.dubbo.config.Constants.IGNORE_CHECK_KEYS;\n-import static org.apache.dubbo.config.Constants.LAYER_KEY;\n-import static org.apache.dubbo.config.Constants.NAME;\n-import static org.apache.dubbo.config.Constants.ORGANIZATION;\n-import static org.apache.dubbo.config.Constants.OWNER;\n-import static org.apache.dubbo.config.Constants.STATUS_KEY;\n-import static org.apache.dubbo.monitor.Constants.LOGSTAT_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\n-import static org.apache.dubbo.registry.Constants.SUBSCRIBE_KEY;\n-import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\n-import static org.apache.dubbo.remoting.Constants.DISPATCHER_KEY;\n-import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\n-import static org.apache.dubbo.remoting.Constants.TELNET;\n-import static org.apache.dubbo.remoting.Constants.TRANSPORTER_KEY;\n-import static org.apache.dubbo.rpc.Constants.FAIL_PREFIX;\n-import static org.apache.dubbo.rpc.Constants.FORCE_PREFIX;\n-import static org.apache.dubbo.rpc.Constants.LOCAL_KEY;\n-import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\n-import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\n-import static org.apache.dubbo.rpc.Constants.RETURN_PREFIX;\n-import static org.apache.dubbo.rpc.Constants.THROW_PREFIX;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-\n-public class ConfigValidationUtils {\n-    private static final Logger logger = LoggerFactory.getLogger(ConfigValidationUtils.class);\n-    /**\n-     * The maximum length of a <b>parameter's value</b>\n-     */\n-    private static final int MAX_LENGTH = 200;\n-\n-    /**\n-     * The maximum length of a <b>path</b>\n-     */\n-    private static final int MAX_PATH_LENGTH = 200;\n-\n-    /**\n-     * The rule qualification for <b>name</b>\n-     */\n-    private static final Pattern PATTERN_NAME = Pattern.compile(\"[\\\\-._0-9a-zA-Z]+\");\n-\n-    /**\n-     * The rule qualification for <b>multiply name</b>\n-     */\n-    private static final Pattern PATTERN_MULTI_NAME = Pattern.compile(\"[,\\\\-._0-9a-zA-Z]+\");\n-\n-    /**\n-     * The rule qualification for <b>method names</b>\n-     */\n-    private static final Pattern PATTERN_METHOD_NAME = Pattern.compile(\"[a-zA-Z][0-9a-zA-Z]*\");\n-\n-    /**\n-     * The rule qualification for <b>path</b>\n-     */\n-    private static final Pattern PATTERN_PATH = Pattern.compile(\"[/\\\\-$._0-9a-zA-Z]+\");\n-\n-    /**\n-     * The pattern matches a value who has a symbol\n-     */\n-    private static final Pattern PATTERN_NAME_HAS_SYMBOL = Pattern.compile(\"[:*,\\\\s/\\\\-._0-9a-zA-Z]+\");\n-\n-    /**\n-     * The pattern matches a property key\n-     */\n-    private static final Pattern PATTERN_KEY = Pattern.compile(\"[*,\\\\-._0-9a-zA-Z]+\");\n-\n-    public static final String IPV6_START_MARK = \"[\";\n-\n-    public static final String IPV6_END_MARK = \"]\";\n-\n-\n-    public static List<URL> loadRegistries(AbstractInterfaceConfig interfaceConfig, boolean provider) {\n-        // check && override if necessary\n-        List<URL> registryList = new ArrayList<URL>();\n-        ApplicationConfig application = interfaceConfig.getApplication();\n-        List<RegistryConfig> registries = interfaceConfig.getRegistries();\n-        if (CollectionUtils.isNotEmpty(registries)) {\n-            for (RegistryConfig config : registries) {\n-                String address = config.getAddress();\n-                if (StringUtils.isEmpty(address)) {\n-                    address = ANYHOST_VALUE;\n-                }\n-                if (!RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(address)) {\n-                    Map<String, String> map = new HashMap<String, String>();\n-                    AbstractConfig.appendParameters(map, application);\n-                    AbstractConfig.appendParameters(map, config);\n-                    map.put(PATH_KEY, RegistryService.class.getName());\n-                    AbstractInterfaceConfig.appendRuntimeParameters(map);\n-                    if (!map.containsKey(PROTOCOL_KEY)) {\n-                        map.put(PROTOCOL_KEY, DUBBO_PROTOCOL);\n-                    }\n-                    List<URL> urls = UrlUtils.parseURLs(address, map);\n-\n-                    for (URL url : urls) {\n-\n-                        url = URLBuilder.from(url)\n-                                .addParameter(REGISTRY_KEY, url.getProtocol())\n-                                .setProtocol(extractRegistryType(url))\n-                                .build();\n-                        if ((provider && url.getParameter(REGISTER_KEY, true))\n-                                || (!provider && url.getParameter(SUBSCRIBE_KEY, true))) {\n-                            registryList.add(url);\n-                        }\n-                    }\n-                }\n-            }\n-        }\n-        return genCompatibleRegistries(registryList, provider);\n-    }\n-\n-    private static List<URL> genCompatibleRegistries(List<URL> registryList, boolean provider) {\n-        List<URL> result = new ArrayList<>(registryList.size());\n-        registryList.forEach(registryURL -> {\n-            result.add(registryURL);\n-            if (provider) {\n-                // for registries enabled service discovery, automatically register interface compatible addresses.\n-                if (SERVICE_REGISTRY_PROTOCOL.equals(registryURL.getProtocol())\n-                        && registryURL.getParameter(REGISTRY_PUBLISH_INTERFACE_KEY, ConfigurationUtils.getDynamicGlobalConfiguration().getBoolean(DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY, false))\n-                        && registryNotExists(registryURL, registryList, REGISTRY_PROTOCOL)) {\n-                    URL interfaceCompatibleRegistryURL = URLBuilder.from(registryURL)\n-                            .setProtocol(REGISTRY_PROTOCOL)\n-                            .removeParameter(REGISTRY_TYPE_KEY)\n-                            .build();\n-                    result.add(interfaceCompatibleRegistryURL);\n-                }\n-            }\n-        });\n-        return result;\n-    }\n-\n-    private static boolean registryNotExists(URL registryURL, List<URL> registryList, String registryType) {\n-        return registryList.stream().noneMatch(\n-                url -> registryType.equals(url.getProtocol()) && registryURL.getBackupAddress().equals(url.getBackupAddress())\n-        );\n-    }\n-\n-    public static URL loadMonitor(AbstractInterfaceConfig interfaceConfig, URL registryURL) {\n-        Map<String, String> map = new HashMap<String, String>();\n-        map.put(INTERFACE_KEY, MonitorService.class.getName());\n-        AbstractInterfaceConfig.appendRuntimeParameters(map);\n-        //set ip\n-        String hostToRegistry = ConfigUtils.getSystemProperty(DUBBO_IP_TO_REGISTRY);\n-        if (StringUtils.isEmpty(hostToRegistry)) {\n-            hostToRegistry = NetUtils.getLocalHost();\n-        } else if (NetUtils.isInvalidLocalHost(hostToRegistry)) {\n-            throw new IllegalArgumentException(\"Specified invalid registry ip from property:\" +\n-                    DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\n-        }\n-        map.put(REGISTER_IP_KEY, hostToRegistry);\n-\n-        MonitorConfig monitor = interfaceConfig.getMonitor();\n-        ApplicationConfig application = interfaceConfig.getApplication();\n-        AbstractConfig.appendParameters(map, monitor);\n-        AbstractConfig.appendParameters(map, application);\n-        String address = null;\n-        String sysaddress = System.getProperty(\"dubbo.monitor.address\");\n-        if (sysaddress != null && sysaddress.length() > 0) {\n-            address = sysaddress;\n-        } else if (monitor != null) {\n-            address = monitor.getAddress();\n-        }\n-        if (ConfigUtils.isNotEmpty(address)) {\n-            if (!map.containsKey(PROTOCOL_KEY)) {\n-                if (getExtensionLoader(MonitorFactory.class).hasExtension(LOGSTAT_PROTOCOL)) {\n-                    map.put(PROTOCOL_KEY, LOGSTAT_PROTOCOL);\n-                } else {\n-                    map.put(PROTOCOL_KEY, DUBBO_PROTOCOL);\n-                }\n-            }\n-            return UrlUtils.parseURL(address, map);\n-        } else if (monitor != null &&\n-                (REGISTRY_PROTOCOL.equals(monitor.getProtocol()) || SERVICE_REGISTRY_PROTOCOL.equals(monitor.getProtocol()))\n-                && registryURL != null) {\n-            return URLBuilder.from(registryURL)\n-                    .setProtocol(DUBBO_PROTOCOL)\n-                    .addParameter(PROTOCOL_KEY, monitor.getProtocol())\n-                    .addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map))\n-                    .build();\n-        }\n-        return null;\n-    }\n-\n-    /**\n-     * Legitimacy check and setup of local simulated operations. The operations can be a string with Simple operation or\n-     * a classname whose {@link Class} implements a particular function\n-     *\n-     * @param interfaceClass for provider side, it is the {@link Class} of the service that will be exported; for consumer\n-     *                       side, it is the {@link Class} of the remote service interface that will be referenced\n-     */\n-    public static void checkMock(Class<?> interfaceClass, AbstractInterfaceConfig config) {\n-        String mock = config.getMock();\n-        if (ConfigUtils.isEmpty(mock)) {\n-            return;\n-        }\n-\n-        String normalizedMock = MockInvoker.normalizeMock(mock);\n-        if (normalizedMock.startsWith(RETURN_PREFIX)) {\n-            normalizedMock = normalizedMock.substring(RETURN_PREFIX.length()).trim();\n-            try {\n-                //Check whether the mock value is legal, if it is illegal, throw exception\n-                MockInvoker.parseMockValue(normalizedMock);\n-            } catch (Exception e) {\n-                throw new IllegalStateException(\"Illegal mock return in <dubbo:service/reference ... \" +\n-                        \"mock=\\\"\" + mock + \"\\\" />\");\n-            }\n-        } else if (normalizedMock.startsWith(THROW_PREFIX)) {\n-            normalizedMock = normalizedMock.substring(THROW_PREFIX.length()).trim();\n-            if (ConfigUtils.isNotEmpty(normalizedMock)) {\n-                try {\n-                    //Check whether the mock value is legal\n-                    MockInvoker.getThrowable(normalizedMock);\n-                } catch (Exception e) {\n-                    throw new IllegalStateException(\"Illegal mock throw in <dubbo:service/reference ... \" +\n-                            \"mock=\\\"\" + mock + \"\\\" />\");\n-                }\n-            }\n-        } else {\n-            //Check whether the mock class is a implementation of the interfaceClass, and if it has a default constructor\n-            MockInvoker.getMockObject(normalizedMock, interfaceClass);\n-        }\n-    }\n-\n-    public static void validateAbstractInterfaceConfig(AbstractInterfaceConfig config) {\n-        checkName(LOCAL_KEY, config.getLocal());\n-        checkName(\"stub\", config.getStub());\n-        checkMultiName(\"owner\", config.getOwner());\n-\n-        checkExtension(ProxyFactory.class, PROXY_KEY, config.getProxy());\n-        checkExtension(Cluster.class, CLUSTER_KEY, config.getCluster());\n-        checkMultiExtension(Filter.class, FILE_KEY, config.getFilter());\n-        checkNameHasSymbol(LAYER_KEY, config.getLayer());\n-\n-        List<MethodConfig> methods = config.getMethods();\n-        if (CollectionUtils.isNotEmpty(methods)) {\n-            methods.forEach(ConfigValidationUtils::validateMethodConfig);\n-        }\n-    }\n-\n-    public static void validateServiceConfig(ServiceConfig config) {\n-        checkKey(VERSION_KEY, config.getVersion());\n-        checkKey(GROUP_KEY, config.getGroup());\n-        checkName(TOKEN_KEY, config.getToken());\n-        checkPathName(PATH_KEY, config.getPath());\n-\n-        checkMultiExtension(ExporterListener.class, \"listener\", config.getListener());\n-\n-        validateAbstractInterfaceConfig(config);\n-\n-        List<RegistryConfig> registries = config.getRegistries();\n-        if (registries != null) {\n-            for (RegistryConfig registry : registries) {\n-                validateRegistryConfig(registry);\n-            }\n-        }\n-\n-        List<ProtocolConfig> protocols = config.getProtocols();\n-        if (protocols != null) {\n-            for (ProtocolConfig protocol : protocols) {\n-                validateProtocolConfig(protocol);\n-            }\n-        }\n-\n-        ProviderConfig providerConfig = config.getProvider();\n-        if (providerConfig != null) {\n-            validateProviderConfig(providerConfig);\n-        }\n-    }\n-\n-    public static void validateReferenceConfig(ReferenceConfig config) {\n-        checkMultiExtension(InvokerListener.class, \"listener\", config.getListener());\n-        checkKey(VERSION_KEY, config.getVersion());\n-        checkKey(GROUP_KEY, config.getGroup());\n-        checkName(CLIENT_KEY, config.getClient());\n-\n-        validateAbstractInterfaceConfig(config);\n-\n-        List<RegistryConfig> registries = config.getRegistries();\n-        if (registries != null) {\n-            for (RegistryConfig registry : registries) {\n-                validateRegistryConfig(registry);\n-            }\n-        }\n-\n-        ConsumerConfig consumerConfig = config.getConsumer();\n-        if (consumerConfig != null) {\n-            validateConsumerConfig(consumerConfig);\n-        }\n-    }\n-\n-    public static void validateConfigCenterConfig(ConfigCenterConfig config) {\n-        if (config != null) {\n-            checkParameterName(config.getParameters());\n-        }\n-    }\n-\n-    public static void validateApplicationConfig(ApplicationConfig config) {\n-        if (config == null) {\n-            return;\n-        }\n-\n-        if (!config.isValid()) {\n-            throw new IllegalStateException(\"No application config found or it's not a valid config! \" +\n-                    \"Please add <dubbo:application name=\\\"...\\\" /> to your spring config.\");\n-        }\n-\n-        // backward compatibility\n-        String wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_KEY);\n-        if (wait != null && wait.trim().length() > 0) {\n-            System.setProperty(SHUTDOWN_WAIT_KEY, wait.trim());\n-        } else {\n-            wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_SECONDS_KEY);\n-            if (wait != null && wait.trim().length() > 0) {\n-                System.setProperty(SHUTDOWN_WAIT_SECONDS_KEY, wait.trim());\n-            }\n-        }\n-\n-        checkName(NAME, config.getName());\n-        checkMultiName(OWNER, config.getOwner());\n-        checkName(ORGANIZATION, config.getOrganization());\n-        checkName(ARCHITECTURE, config.getArchitecture());\n-        checkName(ENVIRONMENT, config.getEnvironment());\n-        checkParameterName(config.getParameters());\n-    }\n-\n-    public static void validateModuleConfig(ModuleConfig config) {\n-        if (config != null) {\n-            checkName(NAME, config.getName());\n-            checkName(OWNER, config.getOwner());\n-            checkName(ORGANIZATION, config.getOrganization());\n-        }\n-    }\n-\n-    public static void validateMetadataConfig(MetadataReportConfig metadataReportConfig) {\n-        if (metadataReportConfig == null) {\n-            return;\n-        }\n-    }\n-\n-    public static void validateMetricsConfig(MetricsConfig metricsConfig) {\n-        if (metricsConfig == null) {\n-            return;\n-        }\n-    }\n-\n-    public static void validateSslConfig(SslConfig sslConfig) {\n-        if (sslConfig == null) {\n-            return;\n-        }\n-    }\n-\n-    public static void validateMonitorConfig(MonitorConfig config) {\n-        if (config != null) {\n-            if (!config.isValid()) {\n-                logger.info(\"There's no valid monitor config found, if you want to open monitor statistics for Dubbo, \" +\n-                        \"please make sure your monitor is configured properly.\");\n-            }\n-\n-            checkParameterName(config.getParameters());\n-        }\n-    }\n-\n-    public static void validateProtocolConfig(ProtocolConfig config) {\n-        if (config != null) {\n-            String name = config.getName();\n-            checkName(\"name\", name);\n-            checkHost(HOST_KEY, config.getHost());\n-            checkPathName(\"contextpath\", config.getContextpath());\n-\n-\n-            if (DUBBO_PROTOCOL.equals(name)) {\n-                checkMultiExtension(Codec2.class, CODEC_KEY, config.getCodec());\n-                checkMultiExtension(Serialization.class, SERIALIZATION_KEY, config.getSerialization());\n-                checkMultiExtension(Transporter.class, SERVER_KEY, config.getServer());\n-                checkMultiExtension(Transporter.class, CLIENT_KEY, config.getClient());\n-            }\n-\n-            checkMultiExtension(TelnetHandler.class, TELNET, config.getTelnet());\n-            checkMultiExtension(StatusChecker.class, \"status\", config.getStatus());\n-            checkExtension(Transporter.class, TRANSPORTER_KEY, config.getTransporter());\n-            checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());\n-            checkExtension(Dispatcher.class, DISPATCHER_KEY, config.getDispatcher());\n-            checkExtension(Dispatcher.class, \"dispather\", config.getDispather());\n-            checkExtension(ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());\n-        }\n-    }\n-\n-    public static void validateProviderConfig(ProviderConfig config) {\n-        checkPathName(CONTEXTPATH_KEY, config.getContextpath());\n-        checkExtension(ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());\n-        checkMultiExtension(TelnetHandler.class, TELNET, config.getTelnet());\n-        checkMultiExtension(StatusChecker.class, STATUS_KEY, config.getStatus());\n-        checkExtension(Transporter.class, TRANSPORTER_KEY, config.getTransporter());\n-        checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());\n-    }\n-\n-    public static void validateConsumerConfig(ConsumerConfig config) {\n-        if (config == null) {\n-            return;\n-        }\n-    }\n-\n-    public static void validateRegistryConfig(RegistryConfig config) {\n-        checkName(PROTOCOL_KEY, config.getProtocol());\n-        checkName(USERNAME_KEY, config.getUsername());\n-        checkLength(PASSWORD_KEY, config.getPassword());\n-        checkPathLength(FILE_KEY, config.getFile());\n-        checkName(TRANSPORTER_KEY, config.getTransporter());\n-        checkName(SERVER_KEY, config.getServer());\n-        checkName(CLIENT_KEY, config.getClient());\n-        checkParameterName(config.getParameters());\n-    }\n-\n-    public static void validateMethodConfig(MethodConfig config) {\n-        checkExtension(LoadBalance.class, LOADBALANCE_KEY, config.getLoadbalance());\n-        checkParameterName(config.getParameters());\n-        checkMethodName(\"name\", config.getName());\n-\n-        String mock = config.getMock();\n-        if (StringUtils.isNotEmpty(mock)) {\n-            if (mock.startsWith(RETURN_PREFIX) || mock.startsWith(THROW_PREFIX + \" \")) {\n-                checkLength(MOCK_KEY, mock);\n-            } else if (mock.startsWith(FAIL_PREFIX) || mock.startsWith(FORCE_PREFIX)) {\n-                checkNameHasSymbol(MOCK_KEY, mock);\n-            } else {\n-                checkName(MOCK_KEY, mock);\n-            }\n-        }\n-    }\n-\n-    private static String extractRegistryType(URL url) {\n-        return isServiceDiscoveryRegistryType(url) ? SERVICE_REGISTRY_PROTOCOL : REGISTRY_PROTOCOL;\n-    }\n-\n-    public static void checkExtension(Class<?> type, String property, String value) {\n-        checkName(property, value);\n-        if (StringUtils.isNotEmpty(value)\n-                && !ExtensionLoader.getExtensionLoader(type).hasExtension(value)) {\n-            throw new IllegalStateException(\"No such extension \" + value + \" for \" + property + \"/\" + type.getName());\n-        }\n-    }\n-\n-    /**\n-     * Check whether there is a <code>Extension</code> who's name (property) is <code>value</code> (special treatment is\n-     * required)\n-     *\n-     * @param type     The Extension type\n-     * @param property The extension key\n-     * @param value    The Extension name\n-     */\n-    public static void checkMultiExtension(Class<?> type, String property, String value) {\n-        checkMultiName(property, value);\n-        if (StringUtils.isNotEmpty(value)) {\n-            String[] values = value.split(\"\\\\s*[,]+\\\\s*\");\n-            for (String v : values) {\n-                if (v.startsWith(REMOVE_VALUE_PREFIX)) {\n-                    v = v.substring(1);\n-                }\n-                if (DEFAULT_KEY.equals(v)) {\n-                    continue;\n-                }\n-                if (!ExtensionLoader.getExtensionLoader(type).hasExtension(v)) {\n-                    throw new IllegalStateException(\"No such extension \" + v + \" for \" + property + \"/\" + type.getName());\n-                }\n-            }\n-        }\n-    }\n-\n-    public static void checkLength(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, null);\n-    }\n-\n-    public static void checkPathLength(String property, String value) {\n-        checkProperty(property, value, MAX_PATH_LENGTH, null);\n-    }\n-\n-    public static void checkName(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, PATTERN_NAME);\n-    }\n-\n-    public static void checkHost(String property, String value) {\n-        if (StringUtils.isEmpty(value)) {\n-            return;\n-        }\n-        if (value.startsWith(IPV6_START_MARK) && value.endsWith(IPV6_END_MARK)) {\n-            // if the value start with \"[\" and end with \"]\", check whether it is IPV6\n-            try {\n-                InetAddress.getByName(value);\n-                return;\n-            } catch (UnknownHostException e) {\n-                // not a IPv6 string, do nothing, go on to checkName\n-            }\n-        }\n-        checkName(property, value);\n-    }\n-\n-    public static void checkNameHasSymbol(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, PATTERN_NAME_HAS_SYMBOL);\n-    }\n-\n-    public static void checkKey(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, PATTERN_KEY);\n-    }\n-\n-    public static void checkMultiName(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, PATTERN_MULTI_NAME);\n-    }\n-\n-    public static void checkPathName(String property, String value) {\n-        checkProperty(property, value, MAX_PATH_LENGTH, PATTERN_PATH);\n-    }\n-\n-    public static void checkMethodName(String property, String value) {\n-        checkProperty(property, value, MAX_LENGTH, PATTERN_METHOD_NAME);\n-    }\n-\n-    public static void checkParameterName(Map<String, String> parameters) {\n-        if (CollectionUtils.isEmptyMap(parameters)) {\n-            return;\n-        }\n-        List<String> ignoreCheckKeys = new ArrayList<>();\n-        ignoreCheckKeys.add(BACKUP_KEY);\n-        String ignoreCheckKeysStr = parameters.get(IGNORE_CHECK_KEYS);\n-        if (!StringUtils.isBlank(ignoreCheckKeysStr)) {\n-            ignoreCheckKeys.addAll(Arrays.asList(ignoreCheckKeysStr.split(\",\")));\n-        }\n-        for (Map.Entry<String, String> entry : parameters.entrySet()) {\n-            if (!ignoreCheckKeys.contains(entry.getKey())) {\n-                checkNameHasSymbol(entry.getKey(), entry.getValue());\n-            }\n-        }\n-    }\n-\n-    public static void checkProperty(String property, String value, int maxlength, Pattern pattern) {\n-        if (StringUtils.isEmpty(value)) {\n-            return;\n-        }\n-        if (value.length() > maxlength) {\n-            throw new IllegalStateException(\"Invalid \" + property + \"=\\\"\" + value + \"\\\" is longer than \" + maxlength);\n-        }\n-        if (pattern != null) {\n-            Matcher matcher = pattern.matcher(value);\n-            if (!matcher.matches()) {\n-                throw new IllegalStateException(\"Invalid \" + property + \"=\\\"\" + value + \"\\\" contains illegal \" +\n-                        \"character, only digit, letter, '-', '_' or '.' is legal.\");\n-            }\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.utils;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.status.StatusChecker;\r\n+import org.apache.dubbo.common.threadpool.ThreadPool;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.config.AbstractConfig;\r\n+import org.apache.dubbo.config.AbstractInterfaceConfig;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.ConfigCenterConfig;\r\n+import org.apache.dubbo.config.ConsumerConfig;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.config.MethodConfig;\r\n+import org.apache.dubbo.config.MetricsConfig;\r\n+import org.apache.dubbo.config.ModuleConfig;\r\n+import org.apache.dubbo.config.MonitorConfig;\r\n+import org.apache.dubbo.config.ProtocolConfig;\r\n+import org.apache.dubbo.config.ProviderConfig;\r\n+import org.apache.dubbo.config.ReferenceConfig;\r\n+import org.apache.dubbo.config.RegistryConfig;\r\n+import org.apache.dubbo.config.ServiceConfig;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.monitor.MonitorFactory;\r\n+import org.apache.dubbo.monitor.MonitorService;\r\n+import org.apache.dubbo.registry.RegistryService;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.Dispatcher;\r\n+import org.apache.dubbo.remoting.Transporter;\r\n+import org.apache.dubbo.remoting.exchange.Exchanger;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.rpc.ExporterListener;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.InvokerListener;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.support.MockInvoker;\r\n+\r\n+import java.net.InetAddress;\r\n+import java.net.UnknownHostException;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.regex.Matcher;\r\n+import java.util.regex.Pattern;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PASSWORD_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOVE_VALUE_PREFIX;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SHUTDOWN_WAIT_SECONDS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.USERNAME_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PUBLISH_INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.utils.UrlUtils.isServiceDiscoveryRegistryType;\r\n+import static org.apache.dubbo.config.Constants.ARCHITECTURE;\r\n+import static org.apache.dubbo.config.Constants.CONTEXTPATH_KEY;\r\n+import static org.apache.dubbo.config.Constants.DUBBO_IP_TO_REGISTRY;\r\n+import static org.apache.dubbo.config.Constants.ENVIRONMENT;\r\n+import static org.apache.dubbo.config.Constants.IGNORE_CHECK_KEYS;\r\n+import static org.apache.dubbo.config.Constants.LAYER_KEY;\r\n+import static org.apache.dubbo.config.Constants.NAME;\r\n+import static org.apache.dubbo.config.Constants.ORGANIZATION;\r\n+import static org.apache.dubbo.config.Constants.OWNER;\r\n+import static org.apache.dubbo.config.Constants.STATUS_KEY;\r\n+import static org.apache.dubbo.monitor.Constants.LOGSTAT_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\r\n+import static org.apache.dubbo.registry.Constants.SUBSCRIBE_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DISPATCHER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.TELNET;\r\n+import static org.apache.dubbo.remoting.Constants.TRANSPORTER_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.FAIL_PREFIX;\r\n+import static org.apache.dubbo.rpc.Constants.FORCE_PREFIX;\r\n+import static org.apache.dubbo.rpc.Constants.LOCAL_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.RETURN_PREFIX;\r\n+import static org.apache.dubbo.rpc.Constants.THROW_PREFIX;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+\r\n+public class ConfigValidationUtils {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConfigValidationUtils.class);\r\n+    /**\r\n+     * The maximum length of a <b>parameter's value</b>\r\n+     */\r\n+    private static final int MAX_LENGTH = 200;\r\n+\r\n+    /**\r\n+     * The maximum length of a <b>path</b>\r\n+     */\r\n+    private static final int MAX_PATH_LENGTH = 200;\r\n+\r\n+    /**\r\n+     * The rule qualification for <b>name</b>\r\n+     */\r\n+    private static final Pattern PATTERN_NAME = Pattern.compile(\"[\\\\-._0-9a-zA-Z]+\");\r\n+\r\n+    /**\r\n+     * The rule qualification for <b>multiply name</b>\r\n+     */\r\n+    private static final Pattern PATTERN_MULTI_NAME = Pattern.compile(\"[,\\\\-._0-9a-zA-Z]+\");\r\n+\r\n+    /**\r\n+     * The rule qualification for <b>method names</b>\r\n+     */\r\n+    private static final Pattern PATTERN_METHOD_NAME = Pattern.compile(\"[a-zA-Z][0-9a-zA-Z]*\");\r\n+\r\n+    /**\r\n+     * The rule qualification for <b>path</b>\r\n+     */\r\n+    private static final Pattern PATTERN_PATH = Pattern.compile(\"[/\\\\-$._0-9a-zA-Z]+\");\r\n+\r\n+    /**\r\n+     * The pattern matches a value who has a symbol\r\n+     */\r\n+    private static final Pattern PATTERN_NAME_HAS_SYMBOL = Pattern.compile(\"[:*,\\\\s/\\\\-._0-9a-zA-Z]+\");\r\n+\r\n+    /**\r\n+     * The pattern matches a property key\r\n+     */\r\n+    private static final Pattern PATTERN_KEY = Pattern.compile(\"[*,\\\\-._0-9a-zA-Z]+\");\r\n+\r\n+    public static final String IPV6_START_MARK = \"[\";\r\n+\r\n+    public static final String IPV6_END_MARK = \"]\";\r\n+\r\n+\r\n+    public static List<URL> loadRegistries(AbstractInterfaceConfig interfaceConfig, boolean provider) {\r\n+        // check && override if necessary\r\n+        List<URL> registryList = new ArrayList<URL>();\r\n+        ApplicationConfig application = interfaceConfig.getApplication();\r\n+        List<RegistryConfig> registries = interfaceConfig.getRegistries();\r\n+        if (CollectionUtils.isNotEmpty(registries)) {\r\n+            for (RegistryConfig config : registries) {\r\n+                String address = config.getAddress();\r\n+                if (StringUtils.isEmpty(address)) {\r\n+                    address = ANYHOST_VALUE;\r\n+                }\r\n+                if (!RegistryConfig.NO_AVAILABLE.equalsIgnoreCase(address)) {\r\n+                    Map<String, String> map = new HashMap<String, String>();\r\n+                    AbstractConfig.appendParameters(map, application);\r\n+                    AbstractConfig.appendParameters(map, config);\r\n+                    map.put(PATH_KEY, RegistryService.class.getName());\r\n+                    AbstractInterfaceConfig.appendRuntimeParameters(map);\r\n+                    if (!map.containsKey(PROTOCOL_KEY)) {\r\n+                        map.put(PROTOCOL_KEY, DUBBO_PROTOCOL);\r\n+                    }\r\n+                    List<URL> urls = UrlUtils.parseURLs(address, map);\r\n+\r\n+                    for (URL url : urls) {\r\n+\r\n+                        url = URLBuilder.from(url)\r\n+                                .addParameter(REGISTRY_KEY, url.getProtocol())\r\n+                                .setProtocol(extractRegistryType(url))\r\n+                                .build();\r\n+                        if ((provider && url.getParameter(REGISTER_KEY, true))\r\n+                                || (!provider && url.getParameter(SUBSCRIBE_KEY, true))) {\r\n+                            registryList.add(url);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return genCompatibleRegistries(registryList, provider);\r\n+    }\r\n+\r\n+    private static List<URL> genCompatibleRegistries(List<URL> registryList, boolean provider) {\r\n+        List<URL> result = new ArrayList<>(registryList.size());\r\n+        registryList.forEach(registryURL -> {\r\n+            result.add(registryURL);\r\n+            if (provider) {\r\n+                // for registries enabled service discovery, automatically register interface compatible addresses.\r\n+                if (SERVICE_REGISTRY_PROTOCOL.equals(registryURL.getProtocol())\r\n+                        && registryURL.getParameter(REGISTRY_PUBLISH_INTERFACE_KEY, ConfigurationUtils.getDynamicGlobalConfiguration().getBoolean(DUBBO_PUBLISH_INTERFACE_DEFAULT_KEY, false))\r\n+                        && registryNotExists(registryURL, registryList, REGISTRY_PROTOCOL)) {\r\n+                    URL interfaceCompatibleRegistryURL = URLBuilder.from(registryURL)\r\n+                            .setProtocol(REGISTRY_PROTOCOL)\r\n+                            .removeParameter(REGISTRY_TYPE_KEY)\r\n+                            .build();\r\n+                    result.add(interfaceCompatibleRegistryURL);\r\n+                }\r\n+            }\r\n+        });\r\n+        return result;\r\n+    }\r\n+\r\n+    private static boolean registryNotExists(URL registryURL, List<URL> registryList, String registryType) {\r\n+        return registryList.stream().noneMatch(\r\n+                url -> registryType.equals(url.getProtocol()) && registryURL.getBackupAddress().equals(url.getBackupAddress())\r\n+        );\r\n+    }\r\n+\r\n+    public static URL loadMonitor(AbstractInterfaceConfig interfaceConfig, URL registryURL) {\r\n+        Map<String, String> map = new HashMap<String, String>();\r\n+        map.put(INTERFACE_KEY, MonitorService.class.getName());\r\n+        AbstractInterfaceConfig.appendRuntimeParameters(map);\r\n+        //set ip\r\n+        String hostToRegistry = ConfigUtils.getSystemProperty(DUBBO_IP_TO_REGISTRY);\r\n+        if (StringUtils.isEmpty(hostToRegistry)) {\r\n+            hostToRegistry = NetUtils.getLocalHost();\r\n+        } else if (NetUtils.isInvalidLocalHost(hostToRegistry)) {\r\n+            throw new IllegalArgumentException(\"Specified invalid registry ip from property:\" +\r\n+                    DUBBO_IP_TO_REGISTRY + \", value:\" + hostToRegistry);\r\n+        }\r\n+        map.put(REGISTER_IP_KEY, hostToRegistry);\r\n+\r\n+        MonitorConfig monitor = interfaceConfig.getMonitor();\r\n+        ApplicationConfig application = interfaceConfig.getApplication();\r\n+        AbstractConfig.appendParameters(map, monitor);\r\n+        AbstractConfig.appendParameters(map, application);\r\n+        String address = null;\r\n+        String sysaddress = System.getProperty(\"dubbo.monitor.address\");\r\n+        if (sysaddress != null && sysaddress.length() > 0) {\r\n+            address = sysaddress;\r\n+        } else if (monitor != null) {\r\n+            address = monitor.getAddress();\r\n+        }\r\n+        if (ConfigUtils.isNotEmpty(address)) {\r\n+            if (!map.containsKey(PROTOCOL_KEY)) {\r\n+                if (getExtensionLoader(MonitorFactory.class).hasExtension(LOGSTAT_PROTOCOL)) {\r\n+                    map.put(PROTOCOL_KEY, LOGSTAT_PROTOCOL);\r\n+                } else {\r\n+                    map.put(PROTOCOL_KEY, DUBBO_PROTOCOL);\r\n+                }\r\n+            }\r\n+            return UrlUtils.parseURL(address, map);\r\n+        } else if (monitor != null &&\r\n+                (REGISTRY_PROTOCOL.equals(monitor.getProtocol()) || SERVICE_REGISTRY_PROTOCOL.equals(monitor.getProtocol()))\r\n+                && registryURL != null) {\r\n+            return URLBuilder.from(registryURL)\r\n+                    .setProtocol(DUBBO_PROTOCOL)\r\n+                    .addParameter(PROTOCOL_KEY, monitor.getProtocol())\r\n+                    .addParameterAndEncoded(REFER_KEY, StringUtils.toQueryString(map))\r\n+                    .build();\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Legitimacy check and setup of local simulated operations. The operations can be a string with Simple operation or\r\n+     * a classname whose {@link Class} implements a particular function\r\n+     *\r\n+     * @param interfaceClass for provider side, it is the {@link Class} of the service that will be exported; for consumer\r\n+     *                       side, it is the {@link Class} of the remote service interface that will be referenced\r\n+     */\r\n+    public static void checkMock(Class<?> interfaceClass, AbstractInterfaceConfig config) {\r\n+        String mock = config.getMock();\r\n+        if (ConfigUtils.isEmpty(mock)) {\r\n+            return;\r\n+        }\r\n+\r\n+        String normalizedMock = MockInvoker.normalizeMock(mock);\r\n+        if (normalizedMock.startsWith(RETURN_PREFIX)) {\r\n+            normalizedMock = normalizedMock.substring(RETURN_PREFIX.length()).trim();\r\n+            try {\r\n+                //Check whether the mock value is legal, if it is illegal, throw exception\r\n+                MockInvoker.parseMockValue(normalizedMock);\r\n+            } catch (Exception e) {\r\n+                throw new IllegalStateException(\"Illegal mock return in <dubbo:service/reference ... \" +\r\n+                        \"mock=\\\"\" + mock + \"\\\" />\");\r\n+            }\r\n+        } else if (normalizedMock.startsWith(THROW_PREFIX)) {\r\n+            normalizedMock = normalizedMock.substring(THROW_PREFIX.length()).trim();\r\n+            if (ConfigUtils.isNotEmpty(normalizedMock)) {\r\n+                try {\r\n+                    //Check whether the mock value is legal\r\n+                    MockInvoker.getThrowable(normalizedMock);\r\n+                } catch (Exception e) {\r\n+                    throw new IllegalStateException(\"Illegal mock throw in <dubbo:service/reference ... \" +\r\n+                            \"mock=\\\"\" + mock + \"\\\" />\");\r\n+                }\r\n+            }\r\n+        } else {\r\n+            //Check whether the mock class is a implementation of the interfaceClass, and if it has a default constructor\r\n+            MockInvoker.getMockObject(normalizedMock, interfaceClass);\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateAbstractInterfaceConfig(AbstractInterfaceConfig config) {\r\n+        checkName(LOCAL_KEY, config.getLocal());\r\n+        checkName(\"stub\", config.getStub());\r\n+        checkMultiName(\"owner\", config.getOwner());\r\n+\r\n+        checkExtension(ProxyFactory.class, PROXY_KEY, config.getProxy());\r\n+        checkExtension(Cluster.class, CLUSTER_KEY, config.getCluster());\r\n+        checkMultiExtension(Filter.class, FILE_KEY, config.getFilter());\r\n+        checkNameHasSymbol(LAYER_KEY, config.getLayer());\r\n+\r\n+        List<MethodConfig> methods = config.getMethods();\r\n+        if (CollectionUtils.isNotEmpty(methods)) {\r\n+            methods.forEach(ConfigValidationUtils::validateMethodConfig);\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateServiceConfig(ServiceConfig config) {\r\n+        checkKey(VERSION_KEY, config.getVersion());\r\n+        checkKey(GROUP_KEY, config.getGroup());\r\n+        checkName(TOKEN_KEY, config.getToken());\r\n+        checkPathName(PATH_KEY, config.getPath());\r\n+\r\n+        checkMultiExtension(ExporterListener.class, \"listener\", config.getListener());\r\n+\r\n+        validateAbstractInterfaceConfig(config);\r\n+\r\n+        List<RegistryConfig> registries = config.getRegistries();\r\n+        if (registries != null) {\r\n+            for (RegistryConfig registry : registries) {\r\n+                validateRegistryConfig(registry);\r\n+            }\r\n+        }\r\n+\r\n+        List<ProtocolConfig> protocols = config.getProtocols();\r\n+        if (protocols != null) {\r\n+            for (ProtocolConfig protocol : protocols) {\r\n+                validateProtocolConfig(protocol);\r\n+            }\r\n+        }\r\n+\r\n+        ProviderConfig providerConfig = config.getProvider();\r\n+        if (providerConfig != null) {\r\n+            validateProviderConfig(providerConfig);\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateReferenceConfig(ReferenceConfig config) {\r\n+        checkMultiExtension(InvokerListener.class, \"listener\", config.getListener());\r\n+        checkKey(VERSION_KEY, config.getVersion());\r\n+        checkKey(GROUP_KEY, config.getGroup());\r\n+        checkName(CLIENT_KEY, config.getClient());\r\n+\r\n+        validateAbstractInterfaceConfig(config);\r\n+\r\n+        List<RegistryConfig> registries = config.getRegistries();\r\n+        if (registries != null) {\r\n+            for (RegistryConfig registry : registries) {\r\n+                validateRegistryConfig(registry);\r\n+            }\r\n+        }\r\n+\r\n+        ConsumerConfig consumerConfig = config.getConsumer();\r\n+        if (consumerConfig != null) {\r\n+            validateConsumerConfig(consumerConfig);\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateConfigCenterConfig(ConfigCenterConfig config) {\r\n+        if (config != null) {\r\n+            checkParameterName(config.getParameters());\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateApplicationConfig(ApplicationConfig config) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (!config.isValid()) {\r\n+            throw new IllegalStateException(\"No application config found or it's not a valid config! \" +\r\n+                    \"Please add <dubbo:application name=\\\"...\\\" /> to your spring config.\");\r\n+        }\r\n+\r\n+        // backward compatibility\r\n+        String wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_KEY);\r\n+        if (wait != null && wait.trim().length() > 0) {\r\n+            System.setProperty(SHUTDOWN_WAIT_KEY, wait.trim());\r\n+        } else {\r\n+            wait = ConfigUtils.getProperty(SHUTDOWN_WAIT_SECONDS_KEY);\r\n+            if (wait != null && wait.trim().length() > 0) {\r\n+                System.setProperty(SHUTDOWN_WAIT_SECONDS_KEY, wait.trim());\r\n+            }\r\n+        }\r\n+\r\n+        checkName(NAME, config.getName());\r\n+        checkMultiName(OWNER, config.getOwner());\r\n+        checkName(ORGANIZATION, config.getOrganization());\r\n+        checkName(ARCHITECTURE, config.getArchitecture());\r\n+        checkName(ENVIRONMENT, config.getEnvironment());\r\n+        checkParameterName(config.getParameters());\r\n+    }\r\n+\r\n+    public static void validateModuleConfig(ModuleConfig config) {\r\n+        if (config != null) {\r\n+            checkName(NAME, config.getName());\r\n+            checkName(OWNER, config.getOwner());\r\n+            checkName(ORGANIZATION, config.getOrganization());\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateMetadataConfig(MetadataReportConfig metadataReportConfig) {\r\n+        if (metadataReportConfig == null) {\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateMetricsConfig(MetricsConfig metricsConfig) {\r\n+        if (metricsConfig == null) {\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateSslConfig(SslConfig sslConfig) {\r\n+        if (sslConfig == null) {\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateMonitorConfig(MonitorConfig config) {\r\n+        if (config != null) {\r\n+            if (!config.isValid()) {\r\n+                logger.info(\"There's no valid monitor config found, if you want to open monitor statistics for Dubbo, \" +\r\n+                        \"please make sure your monitor is configured properly.\");\r\n+            }\r\n+\r\n+            checkParameterName(config.getParameters());\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateProtocolConfig(ProtocolConfig config) {\r\n+        if (config != null) {\r\n+            String name = config.getName();\r\n+            checkName(\"name\", name);\r\n+            checkHost(HOST_KEY, config.getHost());\r\n+            checkPathName(\"contextpath\", config.getContextpath());\r\n+\r\n+\r\n+            if (DUBBO_PROTOCOL.equals(name)) {\r\n+                checkMultiExtension(Codec2.class, CODEC_KEY, config.getCodec());\r\n+                checkMultiExtension(Serialization.class, SERIALIZATION_KEY, config.getSerialization());\r\n+                checkMultiExtension(Transporter.class, SERVER_KEY, config.getServer());\r\n+                checkMultiExtension(Transporter.class, CLIENT_KEY, config.getClient());\r\n+            }\r\n+\r\n+            checkMultiExtension(TelnetHandler.class, TELNET, config.getTelnet());\r\n+            checkMultiExtension(StatusChecker.class, \"status\", config.getStatus());\r\n+            checkExtension(Transporter.class, TRANSPORTER_KEY, config.getTransporter());\r\n+            checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());\r\n+            checkExtension(Dispatcher.class, DISPATCHER_KEY, config.getDispatcher());\r\n+            checkExtension(Dispatcher.class, \"dispather\", config.getDispather());\r\n+            checkExtension(ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateProviderConfig(ProviderConfig config) {\r\n+        checkPathName(CONTEXTPATH_KEY, config.getContextpath());\r\n+        checkExtension(ThreadPool.class, THREADPOOL_KEY, config.getThreadpool());\r\n+        checkMultiExtension(TelnetHandler.class, TELNET, config.getTelnet());\r\n+        checkMultiExtension(StatusChecker.class, STATUS_KEY, config.getStatus());\r\n+        checkExtension(Transporter.class, TRANSPORTER_KEY, config.getTransporter());\r\n+        checkExtension(Exchanger.class, EXCHANGER_KEY, config.getExchanger());\r\n+    }\r\n+\r\n+    public static void validateConsumerConfig(ConsumerConfig config) {\r\n+        if (config == null) {\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    public static void validateRegistryConfig(RegistryConfig config) {\r\n+        checkName(PROTOCOL_KEY, config.getProtocol());\r\n+        checkName(USERNAME_KEY, config.getUsername());\r\n+        checkLength(PASSWORD_KEY, config.getPassword());\r\n+        checkPathLength(FILE_KEY, config.getFile());\r\n+        checkName(TRANSPORTER_KEY, config.getTransporter());\r\n+        checkName(SERVER_KEY, config.getServer());\r\n+        checkName(CLIENT_KEY, config.getClient());\r\n+        checkParameterName(config.getParameters());\r\n+    }\r\n+\r\n+    public static void validateMethodConfig(MethodConfig config) {\r\n+        checkExtension(LoadBalance.class, LOADBALANCE_KEY, config.getLoadbalance());\r\n+        checkParameterName(config.getParameters());\r\n+        checkMethodName(\"name\", config.getName());\r\n+\r\n+        String mock = config.getMock();\r\n+        if (StringUtils.isNotEmpty(mock)) {\r\n+            if (mock.startsWith(RETURN_PREFIX) || mock.startsWith(THROW_PREFIX + \" \")) {\r\n+                checkLength(MOCK_KEY, mock);\r\n+            } else if (mock.startsWith(FAIL_PREFIX) || mock.startsWith(FORCE_PREFIX)) {\r\n+                checkNameHasSymbol(MOCK_KEY, mock);\r\n+            } else {\r\n+                checkName(MOCK_KEY, mock);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static String extractRegistryType(URL url) {\r\n+        return isServiceDiscoveryRegistryType(url) ? SERVICE_REGISTRY_PROTOCOL : REGISTRY_PROTOCOL;\r\n+    }\r\n+\r\n+    public static void checkExtension(Class<?> type, String property, String value) {\r\n+        checkName(property, value);\r\n+        if (StringUtils.isNotEmpty(value)\r\n+                && !ExtensionLoader.getExtensionLoader(type).hasExtension(value)) {\r\n+            throw new IllegalStateException(\"No such extension \" + value + \" for \" + property + \"/\" + type.getName());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Check whether there is a <code>Extension</code> who's name (property) is <code>value</code> (special treatment is\r\n+     * required)\r\n+     *\r\n+     * @param type     The Extension type\r\n+     * @param property The extension key\r\n+     * @param value    The Extension name\r\n+     */\r\n+    public static void checkMultiExtension(Class<?> type, String property, String value) {\r\n+        checkMultiName(property, value);\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            String[] values = value.split(\"\\\\s*[,]+\\\\s*\");\r\n+            for (String v : values) {\r\n+                if (v.startsWith(REMOVE_VALUE_PREFIX)) {\r\n+                    v = v.substring(1);\r\n+                }\r\n+                if (DEFAULT_KEY.equals(v)) {\r\n+                    continue;\r\n+                }\r\n+                if (!ExtensionLoader.getExtensionLoader(type).hasExtension(v)) {\r\n+                    throw new IllegalStateException(\"No such extension \" + v + \" for \" + property + \"/\" + type.getName());\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static void checkLength(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, null);\r\n+    }\r\n+\r\n+    public static void checkPathLength(String property, String value) {\r\n+        checkProperty(property, value, MAX_PATH_LENGTH, null);\r\n+    }\r\n+\r\n+    public static void checkName(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, PATTERN_NAME);\r\n+    }\r\n+\r\n+    public static void checkHost(String property, String value) {\r\n+        if (StringUtils.isEmpty(value)) {\r\n+            return;\r\n+        }\r\n+        if (value.startsWith(IPV6_START_MARK) && value.endsWith(IPV6_END_MARK)) {\r\n+            // if the value start with \"[\" and end with \"]\", check whether it is IPV6\r\n+            try {\r\n+                InetAddress.getByName(value);\r\n+                return;\r\n+            } catch (UnknownHostException e) {\r\n+                // not a IPv6 string, do nothing, go on to checkName\r\n+            }\r\n+        }\r\n+        checkName(property, value);\r\n+    }\r\n+\r\n+    public static void checkNameHasSymbol(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, PATTERN_NAME_HAS_SYMBOL);\r\n+    }\r\n+\r\n+    public static void checkKey(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, PATTERN_KEY);\r\n+    }\r\n+\r\n+    public static void checkMultiName(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, PATTERN_MULTI_NAME);\r\n+    }\r\n+\r\n+    public static void checkPathName(String property, String value) {\r\n+        checkProperty(property, value, MAX_PATH_LENGTH, PATTERN_PATH);\r\n+    }\r\n+\r\n+    public static void checkMethodName(String property, String value) {\r\n+        checkProperty(property, value, MAX_LENGTH, PATTERN_METHOD_NAME);\r\n+    }\r\n+\r\n+    public static void checkParameterName(Map<String, String> parameters) {\r\n+        if (CollectionUtils.isEmptyMap(parameters)) {\r\n+            return;\r\n+        }\r\n+        List<String> ignoreCheckKeys = new ArrayList<>();\r\n+        ignoreCheckKeys.add(BACKUP_KEY);\r\n+        String ignoreCheckKeysStr = parameters.get(IGNORE_CHECK_KEYS);\r\n+        if (!StringUtils.isBlank(ignoreCheckKeysStr)) {\r\n+            ignoreCheckKeys.addAll(Arrays.asList(ignoreCheckKeysStr.split(\",\")));\r\n+        }\r\n+        for (Map.Entry<String, String> entry : parameters.entrySet()) {\r\n+            if (!ignoreCheckKeys.contains(entry.getKey())) {\r\n+                checkNameHasSymbol(entry.getKey(), entry.getValue());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static void checkProperty(String property, String value, int maxlength, Pattern pattern) {\r\n+        if (StringUtils.isEmpty(value)) {\r\n+            return;\r\n+        }\r\n+        if (value.length() > maxlength) {\r\n+            throw new IllegalStateException(\"Invalid \" + property + \"=\\\"\" + value + \"\\\" is longer than \" + maxlength);\r\n+        }\r\n+        if (pattern != null) {\r\n+            Matcher matcher = pattern.matcher(value);\r\n+            if (!matcher.matches()) {\r\n+                throw new IllegalStateException(\"Invalid \" + property + \"=\\\"\" + value + \"\\\" contains illegal \" +\r\n+                        \"character, only digit, letter, '-', '_' or '.' is legal.\");\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/config/utils/ReferenceConfigCache.java", "source2": "org/apache/dubbo/config/utils/ReferenceConfigCache.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,252 +1,252 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.config.utils;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.service.Destroyable;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * A simple util class for cache {@link ReferenceConfigBase}.\n- * <p>\n- * {@link ReferenceConfigBase} is a heavy Object, it's necessary to cache these object\n- * for the framework which create {@link ReferenceConfigBase} frequently.\n- * <p>\n- * You can implement and use your own {@link ReferenceConfigBase} cache if you need use complicate strategy.\n- */\n-public class ReferenceConfigCache {\n-    public static final String DEFAULT_NAME = \"_DEFAULT_\";\n-    /**\n-     * Create the key with the <b>Group</b>, <b>Interface</b> and <b>version</b> attribute of {@link ReferenceConfigBase}.\n-     * <p>\n-     * key example: <code>group1/org.apache.dubbo.foo.FooService:1.0.0</code>.\n-     */\n-    public static final KeyGenerator DEFAULT_KEY_GENERATOR = referenceConfig -> {\n-        String iName = referenceConfig.getInterface();\n-        if (StringUtils.isBlank(iName)) {\n-            Class<?> clazz = referenceConfig.getInterfaceClass();\n-            iName = clazz.getName();\n-        }\n-        if (StringUtils.isBlank(iName)) {\n-            throw new IllegalArgumentException(\"No interface info in ReferenceConfig\" + referenceConfig);\n-        }\n-\n-        StringBuilder ret = new StringBuilder();\n-        if (!StringUtils.isBlank(referenceConfig.getGroup())) {\n-            ret.append(referenceConfig.getGroup()).append(\"/\");\n-        }\n-        ret.append(iName);\n-        if (!StringUtils.isBlank(referenceConfig.getVersion())) {\n-            ret.append(\":\").append(referenceConfig.getVersion());\n-        }\n-        return ret.toString();\n-    };\n-\n-    static final ConcurrentMap<String, ReferenceConfigCache> CACHE_HOLDER = new ConcurrentHashMap<String, ReferenceConfigCache>();\n-    private final String name;\n-    private final KeyGenerator generator;\n-\n-    private final ConcurrentMap<String, ReferenceConfigBase<?>> referredReferences = new ConcurrentHashMap<>();\n-\n-    private final ConcurrentMap<Class<?>, ConcurrentMap<String, Object>> proxies = new ConcurrentHashMap<>();\n-\n-    private ReferenceConfigCache(String name, KeyGenerator generator) {\n-        this.name = name;\n-        this.generator = generator;\n-    }\n-\n-    /**\n-     * Get the cache use default name and {@link #DEFAULT_KEY_GENERATOR} to generate cache key.\n-     * Create cache if not existed yet.\n-     */\n-    public static ReferenceConfigCache getCache() {\n-        return getCache(DEFAULT_NAME);\n-    }\n-\n-    /**\n-     * Get the cache use specified name and {@link KeyGenerator}.\n-     * Create cache if not existed yet.\n-     */\n-    public static ReferenceConfigCache getCache(String name) {\n-        return getCache(name, DEFAULT_KEY_GENERATOR);\n-    }\n-\n-    /**\n-     * Get the cache use specified {@link KeyGenerator}.\n-     * Create cache if not existed yet.\n-     */\n-    public static ReferenceConfigCache getCache(String name, KeyGenerator keyGenerator) {\n-        return CACHE_HOLDER.computeIfAbsent(name, k -> new ReferenceConfigCache(k, keyGenerator));\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T get(ReferenceConfigBase<T> referenceConfig) {\n-        String key = generator.generateKey(referenceConfig);\n-        Class<?> type = referenceConfig.getInterfaceClass();\n-\n-        proxies.computeIfAbsent(type, _t -> new ConcurrentHashMap<>());\n-\n-        ConcurrentMap<String, Object> proxiesOfType = proxies.get(type);\n-        proxiesOfType.computeIfAbsent(key, _k -> {\n-            Object proxy = referenceConfig.get();\n-            referredReferences.put(key, referenceConfig);\n-            return proxy;\n-        });\n-\n-        return (T) proxiesOfType.get(key);\n-    }\n-\n-    /**\n-     * Fetch cache with the specified key. The key is decided by KeyGenerator passed-in. If the default KeyGenerator is\n-     * used, then the key is in the format of <code>group/interfaceClass:version</code>\n-     *\n-     * @param key  cache key\n-     * @param type object class\n-     * @param <T>  object type\n-     * @return object from the cached ReferenceConfigBase\n-     * @see KeyGenerator#generateKey(ReferenceConfigBase)\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T get(String key, Class<T> type) {\n-        Map<String, Object> proxiesOfType = proxies.get(type);\n-        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\n-            return null;\n-        }\n-        return (T) proxiesOfType.get(key);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T get(String key) {\n-        ReferenceConfigBase<?> rc = referredReferences.get(key);\n-        if (rc == null) {\n-            return null;\n-        }\n-\n-        return (T) get(key, rc.getInterfaceClass());\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> List<T> getAll(Class<T> type) {\n-        Map<String, Object> proxiesOfType = proxies.get(type);\n-        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\n-            return Collections.emptyList();\n-        }\n-\n-        List<T> proxySet = new ArrayList<>();\n-        proxiesOfType.values().forEach(obj -> proxySet.add((T) obj));\n-        return proxySet;\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T get(Class<T> type) {\n-        Map<String, Object> proxiesOfType = proxies.get(type);\n-        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\n-            return null;\n-        }\n-\n-        return (T) proxiesOfType.values().iterator().next();\n-    }\n-\n-    public void destroy(String key, Class<?> type) {\n-        ReferenceConfigBase<?> rc = referredReferences.remove(key);\n-        if (rc == null) {\n-            return;\n-        }\n-\n-        ApplicationModel.getConfigManager().removeConfig(rc);\n-        rc.destroy();\n-\n-        Map<String, Object> proxiesOftype = proxies.get(type);\n-        if (CollectionUtils.isNotEmptyMap(proxiesOftype)) {\n-            proxiesOftype.remove(key);\n-            if (proxiesOftype.isEmpty()) {\n-                proxies.remove(type);\n-            }\n-        }\n-    }\n-\n-    public void destroy(Class<?> type) {\n-        Map<String, Object> proxiesOfType = proxies.remove(type);\n-        proxiesOfType.forEach((k, v) -> {\n-            ReferenceConfigBase rc = referredReferences.remove(k);\n-            rc.destroy();\n-        });\n-    }\n-\n-    /**\n-     * clear and destroy one {@link ReferenceConfigBase} in the cache.\n-     *\n-     * @param referenceConfig use for create key.\n-     */\n-    public <T> void destroy(ReferenceConfigBase<T> referenceConfig) {\n-        String key = generator.generateKey(referenceConfig);\n-        Class<?> type = referenceConfig.getInterfaceClass();\n-\n-        destroy(key, type);\n-    }\n-\n-    /**\n-     * clear and destroy all {@link ReferenceConfigBase} in the cache.\n-     */\n-    public void destroyAll() {\n-        if (CollectionUtils.isEmptyMap(referredReferences)) {\n-            return;\n-        }\n-\n-        referredReferences.forEach((_k, referenceConfig) -> {\n-            referenceConfig.destroy();\n-            ApplicationModel.getConfigManager().removeConfig(referenceConfig);\n-        });\n-\n-        proxies.forEach((_type, proxiesOfType) -> {\n-            proxiesOfType.forEach((_k, v) -> {\n-                Destroyable proxy = (Destroyable) v;\n-                proxy.$destroy();\n-            });\n-        });\n-\n-        referredReferences.clear();\n-        proxies.clear();\n-    }\n-\n-    public ConcurrentMap<String, ReferenceConfigBase<?>> getReferredReferences() {\n-        return referredReferences;\n-    }\n-\n-    public ConcurrentMap<Class<?>, ConcurrentMap<String, Object>> getProxies() {\n-        return proxies;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ReferenceConfigCache(name: \" + name\n-                + \")\";\n-    }\n-\n-    public interface KeyGenerator {\n-        String generateKey(ReferenceConfigBase<?> referenceConfig);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.config.utils;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.service.Destroyable;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * A simple util class for cache {@link ReferenceConfigBase}.\r\n+ * <p>\r\n+ * {@link ReferenceConfigBase} is a heavy Object, it's necessary to cache these object\r\n+ * for the framework which create {@link ReferenceConfigBase} frequently.\r\n+ * <p>\r\n+ * You can implement and use your own {@link ReferenceConfigBase} cache if you need use complicate strategy.\r\n+ */\r\n+public class ReferenceConfigCache {\r\n+    public static final String DEFAULT_NAME = \"_DEFAULT_\";\r\n+    /**\r\n+     * Create the key with the <b>Group</b>, <b>Interface</b> and <b>version</b> attribute of {@link ReferenceConfigBase}.\r\n+     * <p>\r\n+     * key example: <code>group1/org.apache.dubbo.foo.FooService:1.0.0</code>.\r\n+     */\r\n+    public static final KeyGenerator DEFAULT_KEY_GENERATOR = referenceConfig -> {\r\n+        String iName = referenceConfig.getInterface();\r\n+        if (StringUtils.isBlank(iName)) {\r\n+            Class<?> clazz = referenceConfig.getInterfaceClass();\r\n+            iName = clazz.getName();\r\n+        }\r\n+        if (StringUtils.isBlank(iName)) {\r\n+            throw new IllegalArgumentException(\"No interface info in ReferenceConfig\" + referenceConfig);\r\n+        }\r\n+\r\n+        StringBuilder ret = new StringBuilder();\r\n+        if (!StringUtils.isBlank(referenceConfig.getGroup())) {\r\n+            ret.append(referenceConfig.getGroup()).append(\"/\");\r\n+        }\r\n+        ret.append(iName);\r\n+        if (!StringUtils.isBlank(referenceConfig.getVersion())) {\r\n+            ret.append(\":\").append(referenceConfig.getVersion());\r\n+        }\r\n+        return ret.toString();\r\n+    };\r\n+\r\n+    static final ConcurrentMap<String, ReferenceConfigCache> CACHE_HOLDER = new ConcurrentHashMap<String, ReferenceConfigCache>();\r\n+    private final String name;\r\n+    private final KeyGenerator generator;\r\n+\r\n+    private final ConcurrentMap<String, ReferenceConfigBase<?>> referredReferences = new ConcurrentHashMap<>();\r\n+\r\n+    private final ConcurrentMap<Class<?>, ConcurrentMap<String, Object>> proxies = new ConcurrentHashMap<>();\r\n+\r\n+    private ReferenceConfigCache(String name, KeyGenerator generator) {\r\n+        this.name = name;\r\n+        this.generator = generator;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the cache use default name and {@link #DEFAULT_KEY_GENERATOR} to generate cache key.\r\n+     * Create cache if not existed yet.\r\n+     */\r\n+    public static ReferenceConfigCache getCache() {\r\n+        return getCache(DEFAULT_NAME);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the cache use specified name and {@link KeyGenerator}.\r\n+     * Create cache if not existed yet.\r\n+     */\r\n+    public static ReferenceConfigCache getCache(String name) {\r\n+        return getCache(name, DEFAULT_KEY_GENERATOR);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the cache use specified {@link KeyGenerator}.\r\n+     * Create cache if not existed yet.\r\n+     */\r\n+    public static ReferenceConfigCache getCache(String name, KeyGenerator keyGenerator) {\r\n+        return CACHE_HOLDER.computeIfAbsent(name, k -> new ReferenceConfigCache(k, keyGenerator));\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T get(ReferenceConfigBase<T> referenceConfig) {\r\n+        String key = generator.generateKey(referenceConfig);\r\n+        Class<?> type = referenceConfig.getInterfaceClass();\r\n+\r\n+        proxies.computeIfAbsent(type, _t -> new ConcurrentHashMap<>());\r\n+\r\n+        ConcurrentMap<String, Object> proxiesOfType = proxies.get(type);\r\n+        proxiesOfType.computeIfAbsent(key, _k -> {\r\n+            Object proxy = referenceConfig.get();\r\n+            referredReferences.put(key, referenceConfig);\r\n+            return proxy;\r\n+        });\r\n+\r\n+        return (T) proxiesOfType.get(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * Fetch cache with the specified key. The key is decided by KeyGenerator passed-in. If the default KeyGenerator is\r\n+     * used, then the key is in the format of <code>group/interfaceClass:version</code>\r\n+     *\r\n+     * @param key  cache key\r\n+     * @param type object class\r\n+     * @param <T>  object type\r\n+     * @return object from the cached ReferenceConfigBase\r\n+     * @see KeyGenerator#generateKey(ReferenceConfigBase)\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T get(String key, Class<T> type) {\r\n+        Map<String, Object> proxiesOfType = proxies.get(type);\r\n+        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\r\n+            return null;\r\n+        }\r\n+        return (T) proxiesOfType.get(key);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T get(String key) {\r\n+        ReferenceConfigBase<?> rc = referredReferences.get(key);\r\n+        if (rc == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        return (T) get(key, rc.getInterfaceClass());\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> List<T> getAll(Class<T> type) {\r\n+        Map<String, Object> proxiesOfType = proxies.get(type);\r\n+        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+\r\n+        List<T> proxySet = new ArrayList<>();\r\n+        proxiesOfType.values().forEach(obj -> proxySet.add((T) obj));\r\n+        return proxySet;\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T get(Class<T> type) {\r\n+        Map<String, Object> proxiesOfType = proxies.get(type);\r\n+        if (CollectionUtils.isEmptyMap(proxiesOfType)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        return (T) proxiesOfType.values().iterator().next();\r\n+    }\r\n+\r\n+    public void destroy(String key, Class<?> type) {\r\n+        ReferenceConfigBase<?> rc = referredReferences.remove(key);\r\n+        if (rc == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        ApplicationModel.getConfigManager().removeConfig(rc);\r\n+        rc.destroy();\r\n+\r\n+        Map<String, Object> proxiesOftype = proxies.get(type);\r\n+        if (CollectionUtils.isNotEmptyMap(proxiesOftype)) {\r\n+            proxiesOftype.remove(key);\r\n+            if (proxiesOftype.isEmpty()) {\r\n+                proxies.remove(type);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public void destroy(Class<?> type) {\r\n+        Map<String, Object> proxiesOfType = proxies.remove(type);\r\n+        proxiesOfType.forEach((k, v) -> {\r\n+            ReferenceConfigBase rc = referredReferences.remove(k);\r\n+            rc.destroy();\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * clear and destroy one {@link ReferenceConfigBase} in the cache.\r\n+     *\r\n+     * @param referenceConfig use for create key.\r\n+     */\r\n+    public <T> void destroy(ReferenceConfigBase<T> referenceConfig) {\r\n+        String key = generator.generateKey(referenceConfig);\r\n+        Class<?> type = referenceConfig.getInterfaceClass();\r\n+\r\n+        destroy(key, type);\r\n+    }\r\n+\r\n+    /**\r\n+     * clear and destroy all {@link ReferenceConfigBase} in the cache.\r\n+     */\r\n+    public void destroyAll() {\r\n+        if (CollectionUtils.isEmptyMap(referredReferences)) {\r\n+            return;\r\n+        }\r\n+\r\n+        referredReferences.forEach((_k, referenceConfig) -> {\r\n+            referenceConfig.destroy();\r\n+            ApplicationModel.getConfigManager().removeConfig(referenceConfig);\r\n+        });\r\n+\r\n+        proxies.forEach((_type, proxiesOfType) -> {\r\n+            proxiesOfType.forEach((_k, v) -> {\r\n+                Destroyable proxy = (Destroyable) v;\r\n+                proxy.$destroy();\r\n+            });\r\n+        });\r\n+\r\n+        referredReferences.clear();\r\n+        proxies.clear();\r\n+    }\r\n+\r\n+    public ConcurrentMap<String, ReferenceConfigBase<?>> getReferredReferences() {\r\n+        return referredReferences;\r\n+    }\r\n+\r\n+    public ConcurrentMap<Class<?>, ConcurrentMap<String, Object>> getProxies() {\r\n+        return proxies;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ReferenceConfigCache(name: \" + name\r\n+                + \")\";\r\n+    }\r\n+\r\n+    public interface KeyGenerator {\r\n+        String generateKey(ReferenceConfigBase<?> referenceConfig);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/consul/ConsulDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/consul/ConsulDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,181 +1,181 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-\n-import com.google.common.base.Charsets;\n-import com.google.common.net.HostAndPort;\n-import com.orbitz.consul.Consul;\n-import com.orbitz.consul.KeyValueClient;\n-import com.orbitz.consul.cache.KVCache;\n-import com.orbitz.consul.model.kv.Value;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.Collection;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-\n-/**\n- * config center implementation for consul\n- */\n-public class ConsulDynamicConfiguration extends TreePathDynamicConfiguration {\n-    private static final Logger logger = LoggerFactory.getLogger(ConsulDynamicConfiguration.class);\n-\n-    private static final int DEFAULT_PORT = 8500;\n-    private static final int DEFAULT_WATCH_TIMEOUT = 60 * 1000;\n-    private static final String WATCH_TIMEOUT = \"consul-watch-timeout\";\n-\n-    private final Consul client;\n-\n-    private final KeyValueClient kvClient;\n-\n-    private final int watchTimeout;\n-\n-    private final ConcurrentMap<String, ConsulListener> watchers = new ConcurrentHashMap<>();\n-\n-    public ConsulDynamicConfiguration(URL url) {\n-        super(url);\n-        watchTimeout = url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT);\n-        String host = url.getHost();\n-        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\n-        Consul.Builder builder = Consul.builder()\n-                .withHostAndPort(HostAndPort.fromParts(host, port));\n-        String token = url.getParameter(\"token\", (String) null);\n-        if (StringUtils.isNotEmpty(token)) {\n-            builder.withAclToken(token);\n-        }\n-        client = builder.build();\n-        this.kvClient = client.keyValueClient();\n-    }\n-\n-    @Override\n-    public String getInternalProperty(String key) {\n-        logger.info(\"getting config from: \" + key);\n-        return kvClient.getValueAsString(key, Charsets.UTF_8).orElse(null);\n-    }\n-\n-    @Override\n-    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\n-        return kvClient.putValue(pathKey, content);\n-    }\n-\n-    @Override\n-    protected String doGetConfig(String pathKey) throws Exception {\n-        return getInternalProperty(pathKey);\n-    }\n-\n-    @Override\n-    protected boolean doRemoveConfig(String pathKey) throws Exception {\n-        kvClient.deleteKey(pathKey);\n-        return true;\n-    }\n-\n-    @Override\n-    protected Collection<String> doGetConfigKeys(String groupPath) {\n-        List<String> keys = kvClient.getKeys(groupPath);\n-        List<String> configKeys = new LinkedList<>();\n-        if (CollectionUtils.isNotEmpty(keys)) {\n-            keys.stream()\n-                    .filter(k -> !k.equals(groupPath))\n-                    .map(k -> k.substring(k.lastIndexOf(PATH_SEPARATOR) + 1))\n-                    .forEach(configKeys::add);\n-        }\n-        return configKeys;\n-    }\n-\n-    @Override\n-    protected void doAddListener(String pathKey, ConfigurationListener listener) {\n-        logger.info(\"register listener \" + listener.getClass() + \" for config with key: \" + pathKey);\n-        ConsulListener watcher = watchers.computeIfAbsent(pathKey, k -> new ConsulListener(pathKey));\n-        watcher.addListener(listener);\n-    }\n-\n-    @Override\n-    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\n-        logger.info(\"unregister listener \" + listener.getClass() + \" for config with key: \" + pathKey);\n-        ConsulListener watcher = watchers.get(pathKey);\n-        if (watcher != null) {\n-            watcher.removeListener(listener);\n-        }\n-    }\n-\n-    @Override\n-    protected void doClose() throws Exception {\n-        client.destroy();\n-    }\n-\n-    private class ConsulListener implements KVCache.Listener<String, Value> {\n-\n-        private KVCache kvCache;\n-        private final Set<ConfigurationListener> listeners = new LinkedHashSet<>();\n-        private final String normalizedKey;\n-\n-        public ConsulListener(String normalizedKey) {\n-            this.normalizedKey = normalizedKey;\n-            initKVCache();\n-        }\n-\n-        private void initKVCache() {\n-            this.kvCache = KVCache.newCache(kvClient, normalizedKey, watchTimeout);\n-            kvCache.addListener(this);\n-            kvCache.start();\n-        }\n-\n-        @Override\n-        public void notify(Map<String, Value> newValues) {\n-            // Cache notifies all paths with \"foo\" the root path\n-            // If you want to watch only \"foo\" value, you must filter other paths\n-            Optional<Value> newValue = newValues.values().stream()\n-                    .filter(value -> value.getKey().equals(normalizedKey))\n-                    .findAny();\n-\n-            newValue.ifPresent(value -> {\n-                // Values are encoded in key/value store, decode it if needed\n-                Optional<String> decodedValue = newValue.get().getValueAsString();\n-                decodedValue.ifPresent(v -> listeners.forEach(l -> {\n-                    ConfigChangedEvent event = new ConfigChangedEvent(normalizedKey, getGroup(), v, ConfigChangeType.MODIFIED);\n-                    l.process(event);\n-                }));\n-            });\n-        }\n-\n-        private void addListener(ConfigurationListener listener) {\n-            this.listeners.add(listener);\n-        }\n-\n-        private void removeListener(ConfigurationListener listener) {\n-            this.listeners.remove(listener);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+\r\n+import com.google.common.base.Charsets;\r\n+import com.google.common.net.HostAndPort;\r\n+import com.orbitz.consul.Consul;\r\n+import com.orbitz.consul.KeyValueClient;\r\n+import com.orbitz.consul.cache.KVCache;\r\n+import com.orbitz.consul.model.kv.Value;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+\r\n+/**\r\n+ * config center implementation for consul\r\n+ */\r\n+public class ConsulDynamicConfiguration extends TreePathDynamicConfiguration {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConsulDynamicConfiguration.class);\r\n+\r\n+    private static final int DEFAULT_PORT = 8500;\r\n+    private static final int DEFAULT_WATCH_TIMEOUT = 60 * 1000;\r\n+    private static final String WATCH_TIMEOUT = \"consul-watch-timeout\";\r\n+\r\n+    private final Consul client;\r\n+\r\n+    private final KeyValueClient kvClient;\r\n+\r\n+    private final int watchTimeout;\r\n+\r\n+    private final ConcurrentMap<String, ConsulListener> watchers = new ConcurrentHashMap<>();\r\n+\r\n+    public ConsulDynamicConfiguration(URL url) {\r\n+        super(url);\r\n+        watchTimeout = url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT);\r\n+        String host = url.getHost();\r\n+        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\r\n+        Consul.Builder builder = Consul.builder()\r\n+                .withHostAndPort(HostAndPort.fromParts(host, port));\r\n+        String token = url.getParameter(\"token\", (String) null);\r\n+        if (StringUtils.isNotEmpty(token)) {\r\n+            builder.withAclToken(token);\r\n+        }\r\n+        client = builder.build();\r\n+        this.kvClient = client.keyValueClient();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getInternalProperty(String key) {\r\n+        logger.info(\"getting config from: \" + key);\r\n+        return kvClient.getValueAsString(key, Charsets.UTF_8).orElse(null);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\r\n+        return kvClient.putValue(pathKey, content);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetConfig(String pathKey) throws Exception {\r\n+        return getInternalProperty(pathKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doRemoveConfig(String pathKey) throws Exception {\r\n+        kvClient.deleteKey(pathKey);\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Collection<String> doGetConfigKeys(String groupPath) {\r\n+        List<String> keys = kvClient.getKeys(groupPath);\r\n+        List<String> configKeys = new LinkedList<>();\r\n+        if (CollectionUtils.isNotEmpty(keys)) {\r\n+            keys.stream()\r\n+                    .filter(k -> !k.equals(groupPath))\r\n+                    .map(k -> k.substring(k.lastIndexOf(PATH_SEPARATOR) + 1))\r\n+                    .forEach(configKeys::add);\r\n+        }\r\n+        return configKeys;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doAddListener(String pathKey, ConfigurationListener listener) {\r\n+        logger.info(\"register listener \" + listener.getClass() + \" for config with key: \" + pathKey);\r\n+        ConsulListener watcher = watchers.computeIfAbsent(pathKey, k -> new ConsulListener(pathKey));\r\n+        watcher.addListener(listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\r\n+        logger.info(\"unregister listener \" + listener.getClass() + \" for config with key: \" + pathKey);\r\n+        ConsulListener watcher = watchers.get(pathKey);\r\n+        if (watcher != null) {\r\n+            watcher.removeListener(listener);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Exception {\r\n+        client.destroy();\r\n+    }\r\n+\r\n+    private class ConsulListener implements KVCache.Listener<String, Value> {\r\n+\r\n+        private KVCache kvCache;\r\n+        private final Set<ConfigurationListener> listeners = new LinkedHashSet<>();\r\n+        private final String normalizedKey;\r\n+\r\n+        public ConsulListener(String normalizedKey) {\r\n+            this.normalizedKey = normalizedKey;\r\n+            initKVCache();\r\n+        }\r\n+\r\n+        private void initKVCache() {\r\n+            this.kvCache = KVCache.newCache(kvClient, normalizedKey, watchTimeout);\r\n+            kvCache.addListener(this);\r\n+            kvCache.start();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(Map<String, Value> newValues) {\r\n+            // Cache notifies all paths with \"foo\" the root path\r\n+            // If you want to watch only \"foo\" value, you must filter other paths\r\n+            Optional<Value> newValue = newValues.values().stream()\r\n+                    .filter(value -> value.getKey().equals(normalizedKey))\r\n+                    .findAny();\r\n+\r\n+            newValue.ifPresent(value -> {\r\n+                // Values are encoded in key/value store, decode it if needed\r\n+                Optional<String> decodedValue = newValue.get().getValueAsString();\r\n+                decodedValue.ifPresent(v -> listeners.forEach(l -> {\r\n+                    ConfigChangedEvent event = new ConfigChangedEvent(normalizedKey, getGroup(), v, ConfigChangeType.MODIFIED);\r\n+                    l.process(event);\r\n+                }));\r\n+            });\r\n+        }\r\n+\r\n+        private void addListener(ConfigurationListener listener) {\r\n+            this.listeners.add(listener);\r\n+        }\r\n+\r\n+        private void removeListener(ConfigurationListener listener) {\r\n+            this.listeners.remove(listener);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/consul/ConsulDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/consul/ConsulDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- * Config center factory for consul\n- */\n-public class ConsulDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new ConsulDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ * Config center factory for consul\r\n+ */\r\n+public class ConsulDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new ConsulDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,258 +1,258 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.ctrip.framework.apollo.Config;\n-import com.ctrip.framework.apollo.ConfigChangeListener;\n-import com.ctrip.framework.apollo.ConfigFile;\n-import com.ctrip.framework.apollo.ConfigService;\n-import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\n-import com.ctrip.framework.apollo.enums.ConfigSourceType;\n-import com.ctrip.framework.apollo.enums.PropertyChangeType;\n-import com.ctrip.framework.apollo.model.ConfigChange;\n-\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-\n-/**\n- * Apollo implementation, https://github.com/ctripcorp/apollo\n- *\n- * Apollo will be used for management of both governance rules and .properties files, by default, these two different\n- * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\n- * namespace and group different values, for example:\n- *\n- * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n- * 'group=dubbo' is for properties files.\n- *\n- * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\n- */\n-public class ApolloDynamicConfiguration implements DynamicConfiguration {\n-    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\n-    private static final String APOLLO_ENV_KEY = \"env\";\n-    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\n-    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\n-    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\n-    private static final String APOLLO_APPLICATION_KEY = \"application\";\n-    private static final String APOLLO_APPID_KEY = \"app.id\";\n-\n-    private URL url;\n-    private Config dubboConfig;\n-    private ConfigFile dubboConfigFile;\n-    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\n-\n-    ApolloDynamicConfiguration(URL url) {\n-        this.url = url;\n-        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\n-        String configEnv = url.getParameter(APOLLO_ENV_KEY);\n-        String configAddr = getAddressWithProtocolPrefix(url);\n-        String configCluster = url.getParameter(CLUSTER_KEY);\n-        String configAppId = url.getParameter(APOLLO_APPID_KEY);\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\n-            System.setProperty(APOLLO_ENV_KEY, configEnv);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\n-            System.setProperty(APOLLO_ADDR_KEY, configAddr);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\n-            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\n-        }\n-        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\n-            System.setProperty(APOLLO_APPID_KEY, configAppId);\n-        }\n-\n-        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\n-        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\n-        dubboConfig = ConfigService.getConfig(apolloNamespace);\n-        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\n-\n-        // Decide to fail or to continue when failed to connect to remote server.\n-        boolean check = url.getParameter(CHECK_KEY, true);\n-        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\n-            if (check) {\n-                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\n-            } else {\n-                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\n-                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\n-                        \", will use the local cache value instead before eventually the connection is established.\");\n-            }\n-        }\n-    }\n-\n-    private String getAddressWithProtocolPrefix(URL url) {\n-        String address = url.getBackupAddress();\n-        if (StringUtils.isNotEmpty(address)) {\n-            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\n-                    .map(addr -> {\n-                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\n-                            return addr;\n-                        }\n-                        return APOLLO_PROTOCOL_PREFIX + addr;\n-                    })\n-                    .collect(Collectors.joining(\",\"));\n-        }\n-        return address;\n-    }\n-\n-    /**\n-     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\n-     * ignores the group parameter.\n-     */\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\n-        apolloListener.addListener(listener);\n-        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        ApolloListener apolloListener = listeners.get(group + key);\n-        if (apolloListener != null) {\n-            apolloListener.removeListener(listener);\n-            if (!apolloListener.hasInternalListener()) {\n-                dubboConfig.removeChangeListener(apolloListener);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isNotEmpty(group)) {\n-            if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-                return ConfigService.getAppConfig().getProperty(key, null);\n-            } else {\n-                return ConfigService.getConfig(group).getProperty(key, null);\n-            }\n-        }\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Recommend specify namespace and group when using Apollo.\n-     * <p>\n-     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\n-     * 'group=dubbo' is for properties files.\n-     *\n-     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\n-     * @param group\n-     * @param timeout\n-     * @return\n-     * @throws IllegalStateException\n-     */\n-    @Override\n-    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\n-        if (StringUtils.isEmpty(group)) {\n-            return dubboConfigFile.getContent();\n-        }\n-        if (group.equals(url.getParameter(APPLICATION_KEY))) {\n-            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\n-        }\n-\n-        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\n-        if (configFile == null) {\n-            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\n-        }\n-        return configFile.getContent();\n-    }\n-\n-    /**\n-     * This method will be used by Configuration to get valid value at runtime.\n-     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\n-     * But I think Apollo's inheritance feature of namespace can solve the problem .\n-     */\n-    @Override\n-    public String getInternalProperty(String key) {\n-        return dubboConfig.getProperty(key, null);\n-    }\n-\n-    /**\n-     * Ignores the group parameter.\n-     *\n-     * @param key   property key the native listener will listen on\n-     * @param group to distinguish different set of properties\n-     * @return\n-     */\n-    private ApolloListener createTargetListener(String key, String group) {\n-        return new ApolloListener();\n-    }\n-\n-    public class ApolloListener implements ConfigChangeListener {\n-\n-        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\n-\n-        ApolloListener() {\n-        }\n-\n-        @Override\n-        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\n-            for (String key : changeEvent.changedKeys()) {\n-                ConfigChange change = changeEvent.getChange(key);\n-                if (\"\".equals(change.getNewValue())) {\n-                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\n-                            change.getOldValue() + \", the empty rule will not take effect.\");\n-                    return;\n-                }\n-\n-                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\n-                listeners.forEach(listener -> listener.process(event));\n-            }\n-        }\n-\n-        private ConfigChangeType getChangeType(ConfigChange change) {\n-            if (change.getChangeType() == PropertyChangeType.DELETED) {\n-                return ConfigChangeType.DELETED;\n-            }\n-            return ConfigChangeType.MODIFIED;\n-        }\n-\n-        void addListener(ConfigurationListener configurationListener) {\n-            this.listeners.add(configurationListener);\n-        }\n-\n-        void removeListener(ConfigurationListener configurationListener) {\n-            this.listeners.remove(configurationListener);\n-        }\n-\n-        boolean hasInternalListener() {\n-            return listeners != null && listeners.size() > 0;\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.ctrip.framework.apollo.Config;\r\n+import com.ctrip.framework.apollo.ConfigChangeListener;\r\n+import com.ctrip.framework.apollo.ConfigFile;\r\n+import com.ctrip.framework.apollo.ConfigService;\r\n+import com.ctrip.framework.apollo.core.enums.ConfigFileFormat;\r\n+import com.ctrip.framework.apollo.enums.ConfigSourceType;\r\n+import com.ctrip.framework.apollo.enums.PropertyChangeType;\r\n+import com.ctrip.framework.apollo.model.ConfigChange;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+\r\n+/**\r\n+ * Apollo implementation, https://github.com/ctripcorp/apollo\r\n+ *\r\n+ * Apollo will be used for management of both governance rules and .properties files, by default, these two different\r\n+ * kinds of data share the same namespace 'dubbo'. To gain better performance, we recommend separate them by giving\r\n+ * namespace and group different values, for example:\r\n+ *\r\n+ * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+ * 'group=dubbo' is for properties files.\r\n+ *\r\n+ * Please see http://dubbo.apache.org/zh-cn/docs/user/configuration/config-center.html for details.\r\n+ */\r\n+public class ApolloDynamicConfiguration implements DynamicConfiguration {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ApolloDynamicConfiguration.class);\r\n+    private static final String APOLLO_ENV_KEY = \"env\";\r\n+    private static final String APOLLO_ADDR_KEY = \"apollo.meta\";\r\n+    private static final String APOLLO_CLUSTER_KEY = \"apollo.cluster\";\r\n+    private static final String APOLLO_PROTOCOL_PREFIX = \"http://\";\r\n+    private static final String APOLLO_APPLICATION_KEY = \"application\";\r\n+    private static final String APOLLO_APPID_KEY = \"app.id\";\r\n+\r\n+    private URL url;\r\n+    private Config dubboConfig;\r\n+    private ConfigFile dubboConfigFile;\r\n+    private ConcurrentMap<String, ApolloListener> listeners = new ConcurrentHashMap<>();\r\n+\r\n+    ApolloDynamicConfiguration(URL url) {\r\n+        this.url = url;\r\n+        // Instead of using Dubbo's configuration, I would suggest use the original configuration method Apollo provides.\r\n+        String configEnv = url.getParameter(APOLLO_ENV_KEY);\r\n+        String configAddr = getAddressWithProtocolPrefix(url);\r\n+        String configCluster = url.getParameter(CLUSTER_KEY);\r\n+        String configAppId = url.getParameter(APOLLO_APPID_KEY);\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ENV_KEY)) && configEnv != null) {\r\n+            System.setProperty(APOLLO_ENV_KEY, configEnv);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_ADDR_KEY)) && !ANYHOST_VALUE.equals(url.getHost())) {\r\n+            System.setProperty(APOLLO_ADDR_KEY, configAddr);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_CLUSTER_KEY)) && configCluster != null) {\r\n+            System.setProperty(APOLLO_CLUSTER_KEY, configCluster);\r\n+        }\r\n+        if (StringUtils.isEmpty(System.getProperty(APOLLO_APPID_KEY)) && configAppId != null) {\r\n+            System.setProperty(APOLLO_APPID_KEY, configAppId);\r\n+        }\r\n+\r\n+        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP);\r\n+        String apolloNamespace = StringUtils.isEmpty(namespace) ? url.getParameter(GROUP_KEY, DEFAULT_GROUP) : namespace;\r\n+        dubboConfig = ConfigService.getConfig(apolloNamespace);\r\n+        dubboConfigFile = ConfigService.getConfigFile(apolloNamespace, ConfigFileFormat.Properties);\r\n+\r\n+        // Decide to fail or to continue when failed to connect to remote server.\r\n+        boolean check = url.getParameter(CHECK_KEY, true);\r\n+        if (dubboConfig.getSourceType() != ConfigSourceType.REMOTE) {\r\n+            if (check) {\r\n+                throw new IllegalStateException(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv));\r\n+            } else {\r\n+                logger.warn(\"Failed to connect to config center, the config center is Apollo, \" +\r\n+                        \"the address is: \" + (StringUtils.isNotEmpty(configAddr) ? configAddr : configEnv) +\r\n+                        \", will use the local cache value instead before eventually the connection is established.\");\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private String getAddressWithProtocolPrefix(URL url) {\r\n+        String address = url.getBackupAddress();\r\n+        if (StringUtils.isNotEmpty(address)) {\r\n+            address = Arrays.stream(COMMA_SPLIT_PATTERN.split(address))\r\n+                    .map(addr -> {\r\n+                        if (addr.startsWith(APOLLO_PROTOCOL_PREFIX)) {\r\n+                            return addr;\r\n+                        }\r\n+                        return APOLLO_PROTOCOL_PREFIX + addr;\r\n+                    })\r\n+                    .collect(Collectors.joining(\",\"));\r\n+        }\r\n+        return address;\r\n+    }\r\n+\r\n+    /**\r\n+     * Since all governance rules will lay under dubbo group, this method now always uses the default dubboConfig and\r\n+     * ignores the group parameter.\r\n+     */\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.computeIfAbsent(group + key, k -> createTargetListener(key, group));\r\n+        apolloListener.addListener(listener);\r\n+        dubboConfig.addChangeListener(apolloListener, Collections.singleton(key));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        ApolloListener apolloListener = listeners.get(group + key);\r\n+        if (apolloListener != null) {\r\n+            apolloListener.removeListener(listener);\r\n+            if (!apolloListener.hasInternalListener()) {\r\n+                dubboConfig.removeChangeListener(apolloListener);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isNotEmpty(group)) {\r\n+            if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+                return ConfigService.getAppConfig().getProperty(key, null);\r\n+            } else {\r\n+                return ConfigService.getConfig(group).getProperty(key, null);\r\n+            }\r\n+        }\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Recommend specify namespace and group when using Apollo.\r\n+     * <p>\r\n+     * <dubbo:config-center namespace=\"governance\" group=\"dubbo\" />, 'dubbo=governance' is for governance rules while\r\n+     * 'group=dubbo' is for properties files.\r\n+     *\r\n+     * @param key     default value is 'dubbo.properties', currently useless for Apollo.\r\n+     * @param group\r\n+     * @param timeout\r\n+     * @return\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    @Override\r\n+    public String getProperties(String key, String group, long timeout) throws IllegalStateException {\r\n+        if (StringUtils.isEmpty(group)) {\r\n+            return dubboConfigFile.getContent();\r\n+        }\r\n+        if (group.equals(url.getParameter(APPLICATION_KEY))) {\r\n+            return ConfigService.getConfigFile(APOLLO_APPLICATION_KEY, ConfigFileFormat.Properties).getContent();\r\n+        }\r\n+\r\n+        ConfigFile configFile = ConfigService.getConfigFile(group, ConfigFileFormat.Properties);\r\n+        if (configFile == null) {\r\n+            throw new IllegalStateException(\"There is no namespace named \" + group + \" in Apollo.\");\r\n+        }\r\n+        return configFile.getContent();\r\n+    }\r\n+\r\n+    /**\r\n+     * This method will be used by Configuration to get valid value at runtime.\r\n+     * The group is expected to be 'app level', which can be fetched from the 'config.appnamespace' in url if necessary.\r\n+     * But I think Apollo's inheritance feature of namespace can solve the problem .\r\n+     */\r\n+    @Override\r\n+    public String getInternalProperty(String key) {\r\n+        return dubboConfig.getProperty(key, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Ignores the group parameter.\r\n+     *\r\n+     * @param key   property key the native listener will listen on\r\n+     * @param group to distinguish different set of properties\r\n+     * @return\r\n+     */\r\n+    private ApolloListener createTargetListener(String key, String group) {\r\n+        return new ApolloListener();\r\n+    }\r\n+\r\n+    public class ApolloListener implements ConfigChangeListener {\r\n+\r\n+        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\r\n+\r\n+        ApolloListener() {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onChange(com.ctrip.framework.apollo.model.ConfigChangeEvent changeEvent) {\r\n+            for (String key : changeEvent.changedKeys()) {\r\n+                ConfigChange change = changeEvent.getChange(key);\r\n+                if (\"\".equals(change.getNewValue())) {\r\n+                    logger.warn(\"an empty rule is received for \" + key + \", the current working rule is \" +\r\n+                            change.getOldValue() + \", the empty rule will not take effect.\");\r\n+                    return;\r\n+                }\r\n+\r\n+                ConfigChangedEvent event = new ConfigChangedEvent(key, change.getNamespace(), change.getNewValue(), getChangeType(change));\r\n+                listeners.forEach(listener -> listener.process(event));\r\n+            }\r\n+        }\r\n+\r\n+        private ConfigChangeType getChangeType(ConfigChange change) {\r\n+            if (change.getChangeType() == PropertyChangeType.DELETED) {\r\n+                return ConfigChangeType.DELETED;\r\n+            }\r\n+            return ConfigChangeType.MODIFIED;\r\n+        }\r\n+\r\n+        void addListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.add(configurationListener);\r\n+        }\r\n+\r\n+        void removeListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.remove(configurationListener);\r\n+        }\r\n+\r\n+        boolean hasInternalListener() {\r\n+            return listeners != null && listeners.size() > 0;\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/apollo/ApolloDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.apollo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- *\n- */\n-public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new ApolloDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.apollo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ApolloDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new ApolloDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,197 +1,197 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-import org.apache.dubbo.remoting.etcd.jetcd.JEtcdClient;\n-\n-import com.google.protobuf.ByteString;\n-import io.etcd.jetcd.api.Event;\n-import io.etcd.jetcd.api.WatchCancelRequest;\n-import io.etcd.jetcd.api.WatchCreateRequest;\n-import io.etcd.jetcd.api.WatchGrpc;\n-import io.etcd.jetcd.api.WatchRequest;\n-import io.etcd.jetcd.api.WatchResponse;\n-import io.grpc.ManagedChannel;\n-import io.grpc.stub.StreamObserver;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static java.nio.charset.StandardCharsets.UTF_8;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-\n-/**\n- * The etcd implementation of {@link DynamicConfiguration}\n- */\n-public class EtcdDynamicConfiguration implements DynamicConfiguration {\n-\n-    /**\n-     * The final root path would be: /$NAME_SPACE/config\n-     */\n-    private String rootPath;\n-\n-    /**\n-     * The etcd client\n-     */\n-    private final JEtcdClient etcdClient;\n-\n-    /**\n-     * The map store the key to {@link EtcdConfigWatcher} mapping\n-     */\n-    private final ConcurrentMap<ConfigurationListener, EtcdConfigWatcher> watchListenerMap;\n-\n-    EtcdDynamicConfiguration(URL url) {\n-        rootPath = PATH_SEPARATOR + url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP) + \"/config\";\n-        etcdClient = new JEtcdClient(url);\n-        etcdClient.addStateListener(state -> {\n-            if (state == StateListener.CONNECTED) {\n-                try {\n-                    recover();\n-                } catch (Exception e) {\n-                    // ignore\n-                }\n-            }\n-        });\n-        watchListenerMap = new ConcurrentHashMap<>();\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        if (watchListenerMap.get(listener) == null) {\n-            EtcdConfigWatcher watcher = new EtcdConfigWatcher(key, group, listener);\n-            watchListenerMap.put(listener, watcher);\n-            watcher.watch();\n-        }\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        EtcdConfigWatcher watcher = watchListenerMap.get(listener);\n-        watcher.cancelWatch();\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        return (String) getInternalProperty(convertKey(group, key));\n-    }\n-\n-//    @Override\n-//    public String getConfigs(String key, String group, long timeout) throws IllegalStateException {\n-//        if (StringUtils.isEmpty(group)) {\n-//            group = DEFAULT_GROUP;\n-//        }\n-//        return (String) getInternalProperty(convertKey(group, key));\n-//    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        return etcdClient.getKVValue(key);\n-    }\n-\n-    private String buildPath(String group) {\n-        String actualGroup = StringUtils.isEmpty(group) ? DEFAULT_GROUP : group;\n-        return rootPath + PATH_SEPARATOR + actualGroup;\n-    }\n-\n-    private String convertKey(String group, String key) {\n-        return buildPath(group) + PATH_SEPARATOR + key;\n-    }\n-\n-    private void recover() {\n-        for (EtcdConfigWatcher watcher : watchListenerMap.values()) {\n-            watcher.watch();\n-        }\n-    }\n-\n-    public class EtcdConfigWatcher implements StreamObserver<WatchResponse> {\n-\n-        private ConfigurationListener listener;\n-        protected WatchGrpc.WatchStub watchStub;\n-        private StreamObserver<WatchRequest> observer;\n-        protected long watchId;\n-        private ManagedChannel channel;\n-\n-        private final String key;\n-\n-        private final String group;\n-\n-        private String normalizedKey;\n-\n-        public EtcdConfigWatcher(String key, String group, ConfigurationListener listener) {\n-            this.key = key;\n-            this.group = group;\n-            this.normalizedKey = convertKey(group, key);\n-            this.listener = listener;\n-            this.channel = etcdClient.getChannel();\n-        }\n-\n-        @Override\n-        public void onNext(WatchResponse watchResponse) {\n-            this.watchId = watchResponse.getWatchId();\n-            for (Event etcdEvent : watchResponse.getEventsList()) {\n-                ConfigChangeType type = ConfigChangeType.MODIFIED;\n-                if (etcdEvent.getType() == Event.EventType.DELETE) {\n-                    type = ConfigChangeType.DELETED;\n-                }\n-                ConfigChangedEvent event = new ConfigChangedEvent(key, group,\n-                        etcdEvent.getKv().getValue().toString(UTF_8), type);\n-                listener.process(event);\n-            }\n-        }\n-\n-        @Override\n-        public void onError(Throwable throwable) {\n-            // ignore\n-        }\n-\n-        @Override\n-        public void onCompleted() {\n-            // ignore\n-        }\n-\n-        public long getWatchId() {\n-            return watchId;\n-        }\n-\n-        private void watch() {\n-            watchStub = WatchGrpc.newStub(channel);\n-            observer = watchStub.watch(this);\n-            WatchCreateRequest.Builder builder = WatchCreateRequest.newBuilder()\n-                    .setKey(ByteString.copyFromUtf8(normalizedKey))\n-                    .setProgressNotify(true);\n-            WatchRequest req = WatchRequest.newBuilder().setCreateRequest(builder).build();\n-            observer.onNext(req);\n-        }\n-\n-        private void cancelWatch() {\n-            WatchCancelRequest watchCancelRequest =\n-                    WatchCancelRequest.newBuilder().setWatchId(watchId).build();\n-            WatchRequest cancelRequest = WatchRequest.newBuilder()\n-                    .setCancelRequest(watchCancelRequest).build();\n-            observer.onNext(cancelRequest);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.support.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+import org.apache.dubbo.remoting.etcd.jetcd.JEtcdClient;\r\n+\r\n+import com.google.protobuf.ByteString;\r\n+import io.etcd.jetcd.api.Event;\r\n+import io.etcd.jetcd.api.WatchCancelRequest;\r\n+import io.etcd.jetcd.api.WatchCreateRequest;\r\n+import io.etcd.jetcd.api.WatchGrpc;\r\n+import io.etcd.jetcd.api.WatchRequest;\r\n+import io.etcd.jetcd.api.WatchResponse;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.stub.StreamObserver;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static java.nio.charset.StandardCharsets.UTF_8;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+\r\n+/**\r\n+ * The etcd implementation of {@link DynamicConfiguration}\r\n+ */\r\n+public class EtcdDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    /**\r\n+     * The final root path would be: /$NAME_SPACE/config\r\n+     */\r\n+    private String rootPath;\r\n+\r\n+    /**\r\n+     * The etcd client\r\n+     */\r\n+    private final JEtcdClient etcdClient;\r\n+\r\n+    /**\r\n+     * The map store the key to {@link EtcdConfigWatcher} mapping\r\n+     */\r\n+    private final ConcurrentMap<ConfigurationListener, EtcdConfigWatcher> watchListenerMap;\r\n+\r\n+    EtcdDynamicConfiguration(URL url) {\r\n+        rootPath = PATH_SEPARATOR + url.getParameter(CONFIG_NAMESPACE_KEY, DEFAULT_GROUP) + \"/config\";\r\n+        etcdClient = new JEtcdClient(url);\r\n+        etcdClient.addStateListener(state -> {\r\n+            if (state == StateListener.CONNECTED) {\r\n+                try {\r\n+                    recover();\r\n+                } catch (Exception e) {\r\n+                    // ignore\r\n+                }\r\n+            }\r\n+        });\r\n+        watchListenerMap = new ConcurrentHashMap<>();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        if (watchListenerMap.get(listener) == null) {\r\n+            EtcdConfigWatcher watcher = new EtcdConfigWatcher(key, group, listener);\r\n+            watchListenerMap.put(listener, watcher);\r\n+            watcher.watch();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        EtcdConfigWatcher watcher = watchListenerMap.get(listener);\r\n+        watcher.cancelWatch();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        return (String) getInternalProperty(convertKey(group, key));\r\n+    }\r\n+\r\n+//    @Override\r\n+//    public String getConfigs(String key, String group, long timeout) throws IllegalStateException {\r\n+//        if (StringUtils.isEmpty(group)) {\r\n+//            group = DEFAULT_GROUP;\r\n+//        }\r\n+//        return (String) getInternalProperty(convertKey(group, key));\r\n+//    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        return etcdClient.getKVValue(key);\r\n+    }\r\n+\r\n+    private String buildPath(String group) {\r\n+        String actualGroup = StringUtils.isEmpty(group) ? DEFAULT_GROUP : group;\r\n+        return rootPath + PATH_SEPARATOR + actualGroup;\r\n+    }\r\n+\r\n+    private String convertKey(String group, String key) {\r\n+        return buildPath(group) + PATH_SEPARATOR + key;\r\n+    }\r\n+\r\n+    private void recover() {\r\n+        for (EtcdConfigWatcher watcher : watchListenerMap.values()) {\r\n+            watcher.watch();\r\n+        }\r\n+    }\r\n+\r\n+    public class EtcdConfigWatcher implements StreamObserver<WatchResponse> {\r\n+\r\n+        private ConfigurationListener listener;\r\n+        protected WatchGrpc.WatchStub watchStub;\r\n+        private StreamObserver<WatchRequest> observer;\r\n+        protected long watchId;\r\n+        private ManagedChannel channel;\r\n+\r\n+        private final String key;\r\n+\r\n+        private final String group;\r\n+\r\n+        private String normalizedKey;\r\n+\r\n+        public EtcdConfigWatcher(String key, String group, ConfigurationListener listener) {\r\n+            this.key = key;\r\n+            this.group = group;\r\n+            this.normalizedKey = convertKey(group, key);\r\n+            this.listener = listener;\r\n+            this.channel = etcdClient.getChannel();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onNext(WatchResponse watchResponse) {\r\n+            this.watchId = watchResponse.getWatchId();\r\n+            for (Event etcdEvent : watchResponse.getEventsList()) {\r\n+                ConfigChangeType type = ConfigChangeType.MODIFIED;\r\n+                if (etcdEvent.getType() == Event.EventType.DELETE) {\r\n+                    type = ConfigChangeType.DELETED;\r\n+                }\r\n+                ConfigChangedEvent event = new ConfigChangedEvent(key, group,\r\n+                        etcdEvent.getKv().getValue().toString(UTF_8), type);\r\n+                listener.process(event);\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onError(Throwable throwable) {\r\n+            // ignore\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onCompleted() {\r\n+            // ignore\r\n+        }\r\n+\r\n+        public long getWatchId() {\r\n+            return watchId;\r\n+        }\r\n+\r\n+        private void watch() {\r\n+            watchStub = WatchGrpc.newStub(channel);\r\n+            observer = watchStub.watch(this);\r\n+            WatchCreateRequest.Builder builder = WatchCreateRequest.newBuilder()\r\n+                    .setKey(ByteString.copyFromUtf8(normalizedKey))\r\n+                    .setProgressNotify(true);\r\n+            WatchRequest req = WatchRequest.newBuilder().setCreateRequest(builder).build();\r\n+            observer.onNext(req);\r\n+        }\r\n+\r\n+        private void cancelWatch() {\r\n+            WatchCancelRequest watchCancelRequest =\r\n+                    WatchCancelRequest.newBuilder().setWatchId(watchId).build();\r\n+            WatchRequest cancelRequest = WatchRequest.newBuilder()\r\n+                    .setCancelRequest(watchCancelRequest).build();\r\n+            observer.onNext(cancelRequest);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/etcd/EtcdDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- * The etcd implementation of {@link AbstractDynamicConfigurationFactory}\n- */\n-public class EtcdDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new EtcdDynamicConfiguration(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.support.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ * The etcd implementation of {@link AbstractDynamicConfigurationFactory}\r\n+ */\r\n+public class EtcdDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new EtcdDynamicConfiguration(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosConfigServiceWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import com.alibaba.nacos.api.config.ConfigService;\n-import com.alibaba.nacos.api.config.listener.Listener;\n-import com.alibaba.nacos.api.exception.NacosException;\n-\n-public class NacosConfigServiceWrapper {\n-\n-    private static final String INNERCLASS_SYMBOL = \"$\";\n-\n-    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\n-\n-    private ConfigService configService;\n-\n-\n-    public NacosConfigServiceWrapper(ConfigService configService) {\n-        this.configService = configService;\n-    }\n-\n-    public ConfigService getConfigService() {\n-        return configService;\n-    }\n-\n-    public void addListener(String dataId, String group, Listener listener) throws NacosException {\n-        configService.addListener(handleInnerSymbol(dataId), handleInnerSymbol(group), listener);\n-    }\n-\n-    public String getConfig(String dataId, String group, long timeout) throws NacosException {\n-        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\n-    }\n-\n-    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\n-        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\n-    }\n-\n-    public boolean removeConfig(String dataId, String group) throws NacosException {\n-        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\n-    }\n-\n-    /**\n-     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\n-     */\n-    private String handleInnerSymbol(String dataId) {\n-        if (dataId == null) {\n-            return null;\n-        }\n-        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.nacos;\r\n+\r\n+import com.alibaba.nacos.api.config.ConfigService;\r\n+import com.alibaba.nacos.api.config.listener.Listener;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+\r\n+public class NacosConfigServiceWrapper {\r\n+\r\n+    private static final String INNERCLASS_SYMBOL = \"$\";\r\n+\r\n+    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\r\n+\r\n+    private ConfigService configService;\r\n+\r\n+\r\n+    public NacosConfigServiceWrapper(ConfigService configService) {\r\n+        this.configService = configService;\r\n+    }\r\n+\r\n+    public ConfigService getConfigService() {\r\n+        return configService;\r\n+    }\r\n+\r\n+    public void addListener(String dataId, String group, Listener listener) throws NacosException {\r\n+        configService.addListener(handleInnerSymbol(dataId), handleInnerSymbol(group), listener);\r\n+    }\r\n+\r\n+    public String getConfig(String dataId, String group, long timeout) throws NacosException {\r\n+        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\r\n+    }\r\n+\r\n+    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\r\n+        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\r\n+    }\r\n+\r\n+    public boolean removeConfig(String dataId, String group) throws NacosException {\r\n+        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\r\n+    }\r\n+\r\n+    /**\r\n+     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\r\n+     */\r\n+    private String handleInnerSymbol(String dataId) {\r\n+        if (dataId == null) {\r\n+            return null;\r\n+        }\r\n+        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,366 +1,366 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import com.alibaba.fastjson.JSON;\n-import com.alibaba.fastjson.JSONArray;\n-import com.alibaba.fastjson.JSONObject;\n-import com.alibaba.nacos.api.NacosFactory;\n-import com.alibaba.nacos.api.PropertyKeyConst;\n-import com.alibaba.nacos.api.config.ConfigService;\n-import com.alibaba.nacos.api.config.listener.AbstractSharedListener;\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.client.config.http.HttpAgent;\n-import com.alibaba.nacos.client.config.impl.HttpSimpleClient;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Field;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Properties;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.concurrent.Executor;\n-import java.util.stream.Stream;\n-\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\n-import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\n-import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\n-import static java.util.Arrays.asList;\n-import static java.util.Collections.emptyList;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\n-import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;\n-import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-\n-/**\n- * The nacos implementation of {@link DynamicConfiguration}\n- */\n-public class NacosDynamicConfiguration implements DynamicConfiguration {\n-\n-    private static final String GET_CONFIG_KEYS_PATH = \"/v1/cs/configs\";\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-    /**\n-     * the default timeout in millis to get config from nacos\n-     */\n-    private static final long DEFAULT_TIMEOUT = 5000L;\n-\n-    private Properties nacosProperties;\n-\n-    /**\n-     * The nacos configService\n-     */\n-    private final NacosConfigServiceWrapper configService;\n-\n-    private HttpAgent httpAgent;\n-\n-    /**\n-     * The map store the key to {@link NacosConfigListener} mapping\n-     */\n-    private final ConcurrentMap<String, NacosConfigListener> watchListenerMap;\n-\n-    NacosDynamicConfiguration(URL url) {\n-        this.nacosProperties = buildNacosProperties(url);\n-        this.configService = buildConfigService(url);\n-        this.httpAgent = getHttpAgent(configService.getConfigService());\n-        watchListenerMap = new ConcurrentHashMap<>();\n-    }\n-\n-    private NacosConfigServiceWrapper buildConfigService(URL url) {\n-        ConfigService configService = null;\n-        try {\n-            configService = NacosFactory.createConfigService(nacosProperties);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getErrMsg(), e);\n-            }\n-            throw new IllegalStateException(e);\n-        }\n-        return new NacosConfigServiceWrapper(configService);\n-    }\n-\n-    private HttpAgent getHttpAgent(ConfigService configService) {\n-        HttpAgent agent = null;\n-        try {\n-            Field field = configService.getClass().getDeclaredField(\"agent\");\n-            ReflectUtils.makeAccessible(field);\n-            agent = (HttpAgent) field.get(configService);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e);\n-        }\n-        return agent;\n-    }\n-\n-    private Properties buildNacosProperties(URL url) {\n-        Properties properties = new Properties();\n-        setServerAddr(url, properties);\n-        setProperties(url, properties);\n-        return properties;\n-    }\n-\n-    private void setServerAddr(URL url, Properties properties) {\n-        StringBuilder serverAddrBuilder =\n-                new StringBuilder(url.getHost()) // Host\n-                        .append(\":\")\n-                        .append(url.getPort()); // Port\n-\n-        // Append backup parameter as other servers\n-        String backup = url.getParameter(BACKUP_KEY);\n-        if (backup != null) {\n-            serverAddrBuilder.append(\",\").append(backup);\n-        }\n-        String serverAddr = serverAddrBuilder.toString();\n-        properties.put(SERVER_ADDR, serverAddr);\n-    }\n-\n-    private static void setProperties(URL url, Properties properties) {\n-        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\n-\n-        // Get the parameters from constants\n-        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\n-        // Put all parameters\n-        properties.putAll(parameters);\n-\n-        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        }\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        } else {\n-            properties.setProperty(propertyName, defaultValue);\n-        }\n-    }\n-\n-    /**\n-     * Ignores the group parameter.\n-     *\n-     * @param key   property key the native listener will listen on\n-     * @param group to distinguish different set of properties\n-     * @return\n-     */\n-    private NacosConfigListener createTargetListener(String key, String group) {\n-        NacosConfigListener configListener = new NacosConfigListener();\n-        configListener.fillContext(key, group);\n-        return configListener;\n-    }\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        String resolvedGroup = resolveGroup(group);\n-        String listenerKey = buildListenerKey(key, group);\n-        NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, resolvedGroup));\n-        nacosConfigListener.addListener(listener);\n-        try {\n-            configService.addListener(key, resolvedGroup, nacosConfigListener);\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        String listenerKey = buildListenerKey(key, group);\n-        NacosConfigListener eventListener = watchListenerMap.get(listenerKey);\n-        if (eventListener != null) {\n-            eventListener.removeListener(listener);\n-        }\n-    }\n-\n-    @Override\n-    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\n-        String resolvedGroup = resolveGroup(group);\n-        try {\n-            long nacosTimeout = timeout < 0 ? getDefaultTimeout() : timeout;\n-            if (StringUtils.isEmpty(resolvedGroup)) {\n-                resolvedGroup = DEFAULT_GROUP;\n-            }\n-            return configService.getConfig(key, resolvedGroup, nacosTimeout);\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public Object getInternalProperty(String key) {\n-        try {\n-            return configService.getConfig(key, DEFAULT_GROUP, getDefaultTimeout());\n-        } catch (NacosException e) {\n-            logger.error(e.getMessage());\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean publishConfig(String key, String group, String content) {\n-        boolean published = false;\n-        String resolvedGroup = resolveGroup(group);\n-        try {\n-            published = configService.publishConfig(key, resolvedGroup, content);\n-        } catch (NacosException e) {\n-            logger.error(e.getErrMsg(), e);\n-        }\n-        return published;\n-    }\n-\n-    @Override\n-    public long getDefaultTimeout() {\n-        return DEFAULT_TIMEOUT;\n-    }\n-\n-    /**\n-     * TODO Nacos does not support atomic update of the value mapped to a key.\n-     *\n-     * @param group the specified group\n-     * @return\n-     */\n-    @Override\n-    public SortedSet<String> getConfigKeys(String group) {\n-        // TODO use Nacos Client API to replace HTTP Open API\n-        SortedSet<String> keys = new TreeSet<>();\n-        try {\n-            List<String> paramsValues = asList(\n-                    \"search\", \"accurate\",\n-                    \"dataId\", \"\",\n-                    \"group\", resolveGroup(group),\n-                    \"pageNo\", \"1\",\n-                    \"pageSize\", String.valueOf(Integer.MAX_VALUE)\n-            );\n-            String encoding = getProperty(ENCODE, \"UTF-8\");\n-            HttpSimpleClient.HttpResult result = httpAgent.httpGet(GET_CONFIG_KEYS_PATH, emptyList(), paramsValues, encoding, 5 * 1000);\n-            Stream<String> keysStream = toKeysStream(result.content);\n-            keysStream.forEach(keys::add);\n-        } catch (IOException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-        return keys;\n-    }\n-\n-    @Override\n-    public boolean removeConfig(String key, String group) {\n-        boolean removed = false;\n-        try {\n-            removed = configService.removeConfig(key, group);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-        return removed;\n-    }\n-\n-    private Stream<String> toKeysStream(String content) {\n-        JSONObject jsonObject = JSON.parseObject(content);\n-        JSONArray pageItems = jsonObject.getJSONArray(\"pageItems\");\n-        return pageItems.stream()\n-                .map(object -> (JSONObject) object)\n-                .map(json -> json.getString(\"dataId\"));\n-    }\n-\n-    private String getProperty(String name, String defaultValue) {\n-        return nacosProperties.getProperty(name, defaultValue);\n-    }\n-\n-    public class NacosConfigListener extends AbstractSharedListener {\n-\n-        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\n-        /**\n-         * cache data to store old value\n-         */\n-        private Map<String, String> cacheData = new ConcurrentHashMap<>();\n-\n-        @Override\n-        public Executor getExecutor() {\n-            return null;\n-        }\n-\n-        /**\n-         * receive\n-         *\n-         * @param dataId     data ID\n-         * @param group      group\n-         * @param configInfo content\n-         */\n-        @Override\n-        public void innerReceive(String dataId, String group, String configInfo) {\n-            String oldValue = cacheData.get(dataId);\n-            ConfigChangedEvent event = new ConfigChangedEvent(dataId, group, configInfo, getChangeType(configInfo, oldValue));\n-            if (configInfo == null) {\n-                cacheData.remove(dataId);\n-            } else {\n-                cacheData.put(dataId, configInfo);\n-            }\n-            listeners.forEach(listener -> listener.process(event));\n-        }\n-\n-        void addListener(ConfigurationListener configurationListener) {\n-\n-            this.listeners.add(configurationListener);\n-        }\n-\n-        void removeListener(ConfigurationListener configurationListener) {\n-            this.listeners.remove(configurationListener);\n-        }\n-\n-        private ConfigChangeType getChangeType(String configInfo, String oldValue) {\n-            if (StringUtils.isBlank(configInfo)) {\n-                return ConfigChangeType.DELETED;\n-            }\n-            if (StringUtils.isBlank(oldValue)) {\n-                return ConfigChangeType.ADDED;\n-            }\n-            return ConfigChangeType.MODIFIED;\n-        }\n-    }\n-\n-    protected String buildListenerKey(String key, String group) {\n-        return key + HYPHEN_CHAR + resolveGroup(group);\n-    }\n-\n-    protected String resolveGroup(String group) {\n-        return isBlank(group) ? group : group.replace(SLASH_CHAR, HYPHEN_CHAR);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.support.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import com.alibaba.fastjson.JSONArray;\r\n+import com.alibaba.fastjson.JSONObject;\r\n+import com.alibaba.nacos.api.NacosFactory;\r\n+import com.alibaba.nacos.api.PropertyKeyConst;\r\n+import com.alibaba.nacos.api.config.ConfigService;\r\n+import com.alibaba.nacos.api.config.listener.AbstractSharedListener;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.client.config.http.HttpAgent;\r\n+import com.alibaba.nacos.client.config.impl.HttpSimpleClient;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Field;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Properties;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.concurrent.Executor;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\r\n+import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\r\n+import static java.util.Arrays.asList;\r\n+import static java.util.Collections.emptyList;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\r\n+import static org.apache.dubbo.common.utils.StringUtils.HYPHEN_CHAR;\r\n+import static org.apache.dubbo.common.utils.StringUtils.SLASH_CHAR;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+\r\n+/**\r\n+ * The nacos implementation of {@link DynamicConfiguration}\r\n+ */\r\n+public class NacosDynamicConfiguration implements DynamicConfiguration {\r\n+\r\n+    private static final String GET_CONFIG_KEYS_PATH = \"/v1/cs/configs\";\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+    /**\r\n+     * the default timeout in millis to get config from nacos\r\n+     */\r\n+    private static final long DEFAULT_TIMEOUT = 5000L;\r\n+\r\n+    private Properties nacosProperties;\r\n+\r\n+    /**\r\n+     * The nacos configService\r\n+     */\r\n+    private final NacosConfigServiceWrapper configService;\r\n+\r\n+    private HttpAgent httpAgent;\r\n+\r\n+    /**\r\n+     * The map store the key to {@link NacosConfigListener} mapping\r\n+     */\r\n+    private final ConcurrentMap<String, NacosConfigListener> watchListenerMap;\r\n+\r\n+    NacosDynamicConfiguration(URL url) {\r\n+        this.nacosProperties = buildNacosProperties(url);\r\n+        this.configService = buildConfigService(url);\r\n+        this.httpAgent = getHttpAgent(configService.getConfigService());\r\n+        watchListenerMap = new ConcurrentHashMap<>();\r\n+    }\r\n+\r\n+    private NacosConfigServiceWrapper buildConfigService(URL url) {\r\n+        ConfigService configService = null;\r\n+        try {\r\n+            configService = NacosFactory.createConfigService(nacosProperties);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getErrMsg(), e);\r\n+            }\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return new NacosConfigServiceWrapper(configService);\r\n+    }\r\n+\r\n+    private HttpAgent getHttpAgent(ConfigService configService) {\r\n+        HttpAgent agent = null;\r\n+        try {\r\n+            Field field = configService.getClass().getDeclaredField(\"agent\");\r\n+            ReflectUtils.makeAccessible(field);\r\n+            agent = (HttpAgent) field.get(configService);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return agent;\r\n+    }\r\n+\r\n+    private Properties buildNacosProperties(URL url) {\r\n+        Properties properties = new Properties();\r\n+        setServerAddr(url, properties);\r\n+        setProperties(url, properties);\r\n+        return properties;\r\n+    }\r\n+\r\n+    private void setServerAddr(URL url, Properties properties) {\r\n+        StringBuilder serverAddrBuilder =\r\n+                new StringBuilder(url.getHost()) // Host\r\n+                        .append(\":\")\r\n+                        .append(url.getPort()); // Port\r\n+\r\n+        // Append backup parameter as other servers\r\n+        String backup = url.getParameter(BACKUP_KEY);\r\n+        if (backup != null) {\r\n+            serverAddrBuilder.append(\",\").append(backup);\r\n+        }\r\n+        String serverAddr = serverAddrBuilder.toString();\r\n+        properties.put(SERVER_ADDR, serverAddr);\r\n+    }\r\n+\r\n+    private static void setProperties(URL url, Properties properties) {\r\n+        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\r\n+\r\n+        // Get the parameters from constants\r\n+        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\r\n+        // Put all parameters\r\n+        properties.putAll(parameters);\r\n+\r\n+        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        }\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        } else {\r\n+            properties.setProperty(propertyName, defaultValue);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Ignores the group parameter.\r\n+     *\r\n+     * @param key   property key the native listener will listen on\r\n+     * @param group to distinguish different set of properties\r\n+     * @return\r\n+     */\r\n+    private NacosConfigListener createTargetListener(String key, String group) {\r\n+        NacosConfigListener configListener = new NacosConfigListener();\r\n+        configListener.fillContext(key, group);\r\n+        return configListener;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        String listenerKey = buildListenerKey(key, group);\r\n+        NacosConfigListener nacosConfigListener = watchListenerMap.computeIfAbsent(listenerKey, k -> createTargetListener(key, resolvedGroup));\r\n+        nacosConfigListener.addListener(listener);\r\n+        try {\r\n+            configService.addListener(key, resolvedGroup, nacosConfigListener);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        String listenerKey = buildListenerKey(key, group);\r\n+        NacosConfigListener eventListener = watchListenerMap.get(listenerKey);\r\n+        if (eventListener != null) {\r\n+            eventListener.removeListener(listener);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getConfig(String key, String group, long timeout) throws IllegalStateException {\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        try {\r\n+            long nacosTimeout = timeout < 0 ? getDefaultTimeout() : timeout;\r\n+            if (StringUtils.isEmpty(resolvedGroup)) {\r\n+                resolvedGroup = DEFAULT_GROUP;\r\n+            }\r\n+            return configService.getConfig(key, resolvedGroup, nacosTimeout);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getInternalProperty(String key) {\r\n+        try {\r\n+            return configService.getConfig(key, DEFAULT_GROUP, getDefaultTimeout());\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getMessage());\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean publishConfig(String key, String group, String content) {\r\n+        boolean published = false;\r\n+        String resolvedGroup = resolveGroup(group);\r\n+        try {\r\n+            published = configService.publishConfig(key, resolvedGroup, content);\r\n+        } catch (NacosException e) {\r\n+            logger.error(e.getErrMsg(), e);\r\n+        }\r\n+        return published;\r\n+    }\r\n+\r\n+    @Override\r\n+    public long getDefaultTimeout() {\r\n+        return DEFAULT_TIMEOUT;\r\n+    }\r\n+\r\n+    /**\r\n+     * TODO Nacos does not support atomic update of the value mapped to a key.\r\n+     *\r\n+     * @param group the specified group\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public SortedSet<String> getConfigKeys(String group) {\r\n+        // TODO use Nacos Client API to replace HTTP Open API\r\n+        SortedSet<String> keys = new TreeSet<>();\r\n+        try {\r\n+            List<String> paramsValues = asList(\r\n+                    \"search\", \"accurate\",\r\n+                    \"dataId\", \"\",\r\n+                    \"group\", resolveGroup(group),\r\n+                    \"pageNo\", \"1\",\r\n+                    \"pageSize\", String.valueOf(Integer.MAX_VALUE)\r\n+            );\r\n+            String encoding = getProperty(ENCODE, \"UTF-8\");\r\n+            HttpSimpleClient.HttpResult result = httpAgent.httpGet(GET_CONFIG_KEYS_PATH, emptyList(), paramsValues, encoding, 5 * 1000);\r\n+            Stream<String> keysStream = toKeysStream(result.content);\r\n+            keysStream.forEach(keys::add);\r\n+        } catch (IOException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return keys;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean removeConfig(String key, String group) {\r\n+        boolean removed = false;\r\n+        try {\r\n+            removed = configService.removeConfig(key, group);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return removed;\r\n+    }\r\n+\r\n+    private Stream<String> toKeysStream(String content) {\r\n+        JSONObject jsonObject = JSON.parseObject(content);\r\n+        JSONArray pageItems = jsonObject.getJSONArray(\"pageItems\");\r\n+        return pageItems.stream()\r\n+                .map(object -> (JSONObject) object)\r\n+                .map(json -> json.getString(\"dataId\"));\r\n+    }\r\n+\r\n+    private String getProperty(String name, String defaultValue) {\r\n+        return nacosProperties.getProperty(name, defaultValue);\r\n+    }\r\n+\r\n+    public class NacosConfigListener extends AbstractSharedListener {\r\n+\r\n+        private Set<ConfigurationListener> listeners = new CopyOnWriteArraySet<>();\r\n+        /**\r\n+         * cache data to store old value\r\n+         */\r\n+        private Map<String, String> cacheData = new ConcurrentHashMap<>();\r\n+\r\n+        @Override\r\n+        public Executor getExecutor() {\r\n+            return null;\r\n+        }\r\n+\r\n+        /**\r\n+         * receive\r\n+         *\r\n+         * @param dataId     data ID\r\n+         * @param group      group\r\n+         * @param configInfo content\r\n+         */\r\n+        @Override\r\n+        public void innerReceive(String dataId, String group, String configInfo) {\r\n+            String oldValue = cacheData.get(dataId);\r\n+            ConfigChangedEvent event = new ConfigChangedEvent(dataId, group, configInfo, getChangeType(configInfo, oldValue));\r\n+            if (configInfo == null) {\r\n+                cacheData.remove(dataId);\r\n+            } else {\r\n+                cacheData.put(dataId, configInfo);\r\n+            }\r\n+            listeners.forEach(listener -> listener.process(event));\r\n+        }\r\n+\r\n+        void addListener(ConfigurationListener configurationListener) {\r\n+\r\n+            this.listeners.add(configurationListener);\r\n+        }\r\n+\r\n+        void removeListener(ConfigurationListener configurationListener) {\r\n+            this.listeners.remove(configurationListener);\r\n+        }\r\n+\r\n+        private ConfigChangeType getChangeType(String configInfo, String oldValue) {\r\n+            if (StringUtils.isBlank(configInfo)) {\r\n+                return ConfigChangeType.DELETED;\r\n+            }\r\n+            if (StringUtils.isBlank(oldValue)) {\r\n+                return ConfigChangeType.ADDED;\r\n+            }\r\n+            return ConfigChangeType.MODIFIED;\r\n+        }\r\n+    }\r\n+\r\n+    protected String buildListenerKey(String key, String group) {\r\n+        return key + HYPHEN_CHAR + resolveGroup(group);\r\n+    }\r\n+\r\n+    protected String resolveGroup(String group) {\r\n+        return isBlank(group) ? group : group.replace(SLASH_CHAR, HYPHEN_CHAR);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/nacos/NacosDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.configcenter.support.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-\n-import com.alibaba.nacos.api.PropertyKeyConst;\n-\n-/**\n- * The nacos implementation of {@link AbstractDynamicConfigurationFactory}\n- */\n-public class NacosDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        URL nacosURL = url;\n-        if (CommonConstants.DUBBO.equals(url.getParameter(PropertyKeyConst.NAMESPACE))) {\n-            // Nacos use empty string as default name space, replace default namespace \"dubbo\" to \"\"\n-            nacosURL = url.removeParameter(PropertyKeyConst.NAMESPACE);\n-        }\n-        return new NacosDynamicConfiguration(nacosURL);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.configcenter.support.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+\r\n+import com.alibaba.nacos.api.PropertyKeyConst;\r\n+\r\n+/**\r\n+ * The nacos implementation of {@link AbstractDynamicConfigurationFactory}\r\n+ */\r\n+public class NacosDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        URL nacosURL = url;\r\n+        if (CommonConstants.DUBBO.equals(url.getParameter(PropertyKeyConst.NAMESPACE))) {\r\n+            // Nacos use empty string as default name space, replace default namespace \"dubbo\" to \"\"\r\n+            nacosURL = url.removeParameter(PropertyKeyConst.NAMESPACE);\r\n+        }\r\n+        return new NacosDynamicConfiguration(nacosURL);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java", "source2": "org/apache/dubbo/configcenter/support/zookeeper/CacheListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,134 +1,134 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.zookeeper;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.zookeeper.DataListener;\n-import org.apache.dubbo.remoting.zookeeper.EventType;\n-\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CopyOnWriteArraySet;\n-import java.util.concurrent.CountDownLatch;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DOT_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-\n-/**\n- *\n- */\n-\n-public class CacheListener implements DataListener {\n-    private static final int MIN_PATH_DEPTH = 5;\n-\n-    private Map<String, Set<ConfigurationListener>> keyListeners = new ConcurrentHashMap<>();\n-    private CountDownLatch initializedLatch;\n-    private String rootPath;\n-\n-    public CacheListener(String rootPath, CountDownLatch initializedLatch) {\n-        this.rootPath = rootPath;\n-        this.initializedLatch = initializedLatch;\n-    }\n-\n-    public void addListener(String key, ConfigurationListener configurationListener) {\n-        Set<ConfigurationListener> listeners = this.keyListeners.computeIfAbsent(key, k -> new CopyOnWriteArraySet<>());\n-        listeners.add(configurationListener);\n-    }\n-\n-    public void removeListener(String key, ConfigurationListener configurationListener) {\n-        Set<ConfigurationListener> listeners = this.keyListeners.get(key);\n-        if (listeners != null) {\n-            listeners.remove(configurationListener);\n-        }\n-    }\n-\n-    /**\n-     * This is used to convert a configuration nodePath into a key\n-     * TODO doc\n-     *\n-     * @param path\n-     * @return key (nodePath less the config root path)\n-     */\n-    private String pathToKey(String path) {\n-        if (StringUtils.isEmpty(path)) {\n-            return path;\n-        }\n-        String groupKey = path.replace(rootPath + PATH_SEPARATOR, \"\").replaceAll(PATH_SEPARATOR, DOT_SEPARATOR);\n-        return groupKey.substring(groupKey.indexOf(DOT_SEPARATOR) + 1);\n-    }\n-\n-    private String getGroup(String path) {\n-        if (!StringUtils.isEmpty(path)) {\n-            int beginIndex = path.indexOf(rootPath + PATH_SEPARATOR);\n-            if (beginIndex > -1) {\n-                int endIndex = path.indexOf(PATH_SEPARATOR, beginIndex);\n-                if (endIndex > beginIndex) {\n-                    return path.substring(beginIndex, endIndex);\n-                }\n-            }\n-        }\n-        return path;\n-    }\n-\n-\n-    @Override\n-    public void dataChanged(String path, Object value, EventType eventType) {\n-        if (eventType == null) {\n-            return;\n-        }\n-\n-        if (eventType == EventType.INITIALIZED) {\n-            initializedLatch.countDown();\n-            return;\n-        }\n-\n-        if (path == null || (value == null && eventType != EventType.NodeDeleted)) {\n-            return;\n-        }\n-\n-        // TODO We only care the changes happened on a specific path level, for example\n-        //  /dubbo/config/dubbo/configurators, other config changes not in this level will be ignored,\n-        if (path.split(\"/\").length >= MIN_PATH_DEPTH) {\n-            String key = pathToKey(path);\n-            ConfigChangeType changeType;\n-            switch (eventType) {\n-                case NodeCreated:\n-                    changeType = ConfigChangeType.ADDED;\n-                    break;\n-                case NodeDeleted:\n-                    changeType = ConfigChangeType.DELETED;\n-                    break;\n-                case NodeDataChanged:\n-                    changeType = ConfigChangeType.MODIFIED;\n-                    break;\n-                default:\n-                    return;\n-            }\n-\n-            ConfigChangedEvent configChangeEvent = new ConfigChangedEvent(key, getGroup(path), (String) value, changeType);\n-            Set<ConfigurationListener> listeners = keyListeners.get(path);\n-            if (CollectionUtils.isNotEmpty(listeners)) {\n-                listeners.forEach(listener -> listener.process(configChangeEvent));\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.zookeeper.DataListener;\r\n+import org.apache.dubbo.remoting.zookeeper.EventType;\r\n+\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CopyOnWriteArraySet;\r\n+import java.util.concurrent.CountDownLatch;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DOT_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+\r\n+public class CacheListener implements DataListener {\r\n+    private static final int MIN_PATH_DEPTH = 5;\r\n+\r\n+    private Map<String, Set<ConfigurationListener>> keyListeners = new ConcurrentHashMap<>();\r\n+    private CountDownLatch initializedLatch;\r\n+    private String rootPath;\r\n+\r\n+    public CacheListener(String rootPath, CountDownLatch initializedLatch) {\r\n+        this.rootPath = rootPath;\r\n+        this.initializedLatch = initializedLatch;\r\n+    }\r\n+\r\n+    public void addListener(String key, ConfigurationListener configurationListener) {\r\n+        Set<ConfigurationListener> listeners = this.keyListeners.computeIfAbsent(key, k -> new CopyOnWriteArraySet<>());\r\n+        listeners.add(configurationListener);\r\n+    }\r\n+\r\n+    public void removeListener(String key, ConfigurationListener configurationListener) {\r\n+        Set<ConfigurationListener> listeners = this.keyListeners.get(key);\r\n+        if (listeners != null) {\r\n+            listeners.remove(configurationListener);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * This is used to convert a configuration nodePath into a key\r\n+     * TODO doc\r\n+     *\r\n+     * @param path\r\n+     * @return key (nodePath less the config root path)\r\n+     */\r\n+    private String pathToKey(String path) {\r\n+        if (StringUtils.isEmpty(path)) {\r\n+            return path;\r\n+        }\r\n+        String groupKey = path.replace(rootPath + PATH_SEPARATOR, \"\").replaceAll(PATH_SEPARATOR, DOT_SEPARATOR);\r\n+        return groupKey.substring(groupKey.indexOf(DOT_SEPARATOR) + 1);\r\n+    }\r\n+\r\n+    private String getGroup(String path) {\r\n+        if (!StringUtils.isEmpty(path)) {\r\n+            int beginIndex = path.indexOf(rootPath + PATH_SEPARATOR);\r\n+            if (beginIndex > -1) {\r\n+                int endIndex = path.indexOf(PATH_SEPARATOR, beginIndex);\r\n+                if (endIndex > beginIndex) {\r\n+                    return path.substring(beginIndex, endIndex);\r\n+                }\r\n+            }\r\n+        }\r\n+        return path;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void dataChanged(String path, Object value, EventType eventType) {\r\n+        if (eventType == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (eventType == EventType.INITIALIZED) {\r\n+            initializedLatch.countDown();\r\n+            return;\r\n+        }\r\n+\r\n+        if (path == null || (value == null && eventType != EventType.NodeDeleted)) {\r\n+            return;\r\n+        }\r\n+\r\n+        // TODO We only care the changes happened on a specific path level, for example\r\n+        //  /dubbo/config/dubbo/configurators, other config changes not in this level will be ignored,\r\n+        if (path.split(\"/\").length >= MIN_PATH_DEPTH) {\r\n+            String key = pathToKey(path);\r\n+            ConfigChangeType changeType;\r\n+            switch (eventType) {\r\n+                case NodeCreated:\r\n+                    changeType = ConfigChangeType.ADDED;\r\n+                    break;\r\n+                case NodeDeleted:\r\n+                    changeType = ConfigChangeType.DELETED;\r\n+                    break;\r\n+                case NodeDataChanged:\r\n+                    changeType = ConfigChangeType.MODIFIED;\r\n+                    break;\r\n+                default:\r\n+                    return;\r\n+            }\r\n+\r\n+            ConfigChangedEvent configChangeEvent = new ConfigChangedEvent(key, getGroup(path), (String) value, changeType);\r\n+            Set<ConfigurationListener> listeners = keyListeners.get(path);\r\n+            if (CollectionUtils.isNotEmpty(listeners)) {\r\n+                listeners.forEach(listener -> listener.process(configChangeEvent));\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfiguration.java", "source2": "org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfiguration.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,116 +1,116 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\n-\n-import java.util.Collection;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.Executor;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.TimeUnit;\n-\n-/**\n- *\n- */\n-public class ZookeeperDynamicConfiguration extends TreePathDynamicConfiguration {\n-\n-    private Executor executor;\n-    // The final root path would be: /configRootPath/\"config\"\n-    private String rootPath;\n-    private final ZookeeperClient zkClient;\n-    private CountDownLatch initializedLatch;\n-\n-    private CacheListener cacheListener;\n-    private URL url;\n-\n-\n-    ZookeeperDynamicConfiguration(URL url, ZookeeperTransporter zookeeperTransporter) {\n-        super(url);\n-        this.url = url;\n-        rootPath = getRootPath(url);\n-\n-        initializedLatch = new CountDownLatch(1);\n-        this.cacheListener = new CacheListener(rootPath, initializedLatch);\n-        this.executor = Executors.newFixedThreadPool(1, new NamedThreadFactory(this.getClass().getSimpleName(), true));\n-\n-        zkClient = zookeeperTransporter.connect(url);\n-        zkClient.addDataListener(rootPath, cacheListener, executor);\n-        try {\n-            // Wait for connection\n-            long timeout = url.getParameter(\"init.timeout\", 5000);\n-            boolean isCountDown = this.initializedLatch.await(timeout, TimeUnit.MILLISECONDS);\n-            if (!isCountDown) {\n-                throw new IllegalStateException(\"Failed to receive INITIALIZED event from zookeeper, pls. check if url \"\n-                        + url + \" is correct\");\n-            }\n-        } catch (InterruptedException e) {\n-            logger.warn(\"Failed to build local cache for config center (zookeeper).\" + url);\n-        }\n-    }\n-\n-    /**\n-     * @param key e.g., {service}.configurators, {service}.tagrouters, {group}.dubbo.properties\n-     * @return\n-     */\n-    @Override\n-    public String getInternalProperty(String key) {\n-        return zkClient.getContent(buildPathKey(\"\",key));\n-    }\n-\n-    @Override\n-    protected void doClose() throws Exception {\n-        zkClient.close();\n-    }\n-\n-    @Override\n-    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\n-        zkClient.create(pathKey, content, false);\n-        return true;\n-    }\n-\n-    @Override\n-    protected String doGetConfig(String pathKey) throws Exception {\n-        return zkClient.getContent(pathKey);\n-    }\n-\n-    @Override\n-    protected boolean doRemoveConfig(String pathKey) throws Exception {\n-        zkClient.delete(pathKey);\n-        return true;\n-    }\n-\n-    @Override\n-    protected Collection<String> doGetConfigKeys(String groupPath) {\n-        return zkClient.getChildren(groupPath);\n-    }\n-\n-    @Override\n-    protected void doAddListener(String pathKey, ConfigurationListener listener) {\n-        cacheListener.addListener(pathKey, listener);\n-    }\n-\n-    @Override\n-    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\n-        cacheListener.removeListener(pathKey, listener);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.TreePathDynamicConfiguration;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.Executor;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ZookeeperDynamicConfiguration extends TreePathDynamicConfiguration {\r\n+\r\n+    private Executor executor;\r\n+    // The final root path would be: /configRootPath/\"config\"\r\n+    private String rootPath;\r\n+    private final ZookeeperClient zkClient;\r\n+    private CountDownLatch initializedLatch;\r\n+\r\n+    private CacheListener cacheListener;\r\n+    private URL url;\r\n+\r\n+\r\n+    ZookeeperDynamicConfiguration(URL url, ZookeeperTransporter zookeeperTransporter) {\r\n+        super(url);\r\n+        this.url = url;\r\n+        rootPath = getRootPath(url);\r\n+\r\n+        initializedLatch = new CountDownLatch(1);\r\n+        this.cacheListener = new CacheListener(rootPath, initializedLatch);\r\n+        this.executor = Executors.newFixedThreadPool(1, new NamedThreadFactory(this.getClass().getSimpleName(), true));\r\n+\r\n+        zkClient = zookeeperTransporter.connect(url);\r\n+        zkClient.addDataListener(rootPath, cacheListener, executor);\r\n+        try {\r\n+            // Wait for connection\r\n+            long timeout = url.getParameter(\"init.timeout\", 5000);\r\n+            boolean isCountDown = this.initializedLatch.await(timeout, TimeUnit.MILLISECONDS);\r\n+            if (!isCountDown) {\r\n+                throw new IllegalStateException(\"Failed to receive INITIALIZED event from zookeeper, pls. check if url \"\r\n+                        + url + \" is correct\");\r\n+            }\r\n+        } catch (InterruptedException e) {\r\n+            logger.warn(\"Failed to build local cache for config center (zookeeper).\" + url);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @param key e.g., {service}.configurators, {service}.tagrouters, {group}.dubbo.properties\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public String getInternalProperty(String key) {\r\n+        return zkClient.getContent(buildPathKey(\"\",key));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Exception {\r\n+        zkClient.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doPublishConfig(String pathKey, String content) throws Exception {\r\n+        zkClient.create(pathKey, content, false);\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetConfig(String pathKey) throws Exception {\r\n+        return zkClient.getContent(pathKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean doRemoveConfig(String pathKey) throws Exception {\r\n+        zkClient.delete(pathKey);\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Collection<String> doGetConfigKeys(String groupPath) {\r\n+        return zkClient.getChildren(groupPath);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doAddListener(String pathKey, ConfigurationListener listener) {\r\n+        cacheListener.addListener(pathKey, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveListener(String pathKey, ConfigurationListener listener) {\r\n+        cacheListener.removeListener(pathKey, listener);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationFactory.java", "source2": "org/apache/dubbo/configcenter/support/zookeeper/ZookeeperDynamicConfigurationFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.configcenter.support.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\n-\n-/**\n- *\n- */\n-public class ZookeeperDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\n-\n-    private ZookeeperTransporter zookeeperTransporter;\n-\n-    public void setZookeeperTransporter(ZookeeperTransporter zookeeperTransporter) {\n-        this.zookeeperTransporter = zookeeperTransporter;\n-    }\n-\n-    @Override\n-    protected DynamicConfiguration createDynamicConfiguration(URL url) {\n-        return new ZookeeperDynamicConfiguration(url, zookeeperTransporter);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.configcenter.support.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.AbstractDynamicConfigurationFactory;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ZookeeperDynamicConfigurationFactory extends AbstractDynamicConfigurationFactory {\r\n+\r\n+    private ZookeeperTransporter zookeeperTransporter;\r\n+\r\n+    public void setZookeeperTransporter(ZookeeperTransporter zookeeperTransporter) {\r\n+        this.zookeeperTransporter = zookeeperTransporter;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected DynamicConfiguration createDynamicConfiguration(URL url) {\r\n+        return new ZookeeperDynamicConfiguration(url, zookeeperTransporter);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/AbstractEventDispatcher.java", "source2": "org/apache/dubbo/event/AbstractEventDispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,168 +1,168 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-\n-import java.util.Collection;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.ServiceLoader;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.Executor;\n-import java.util.function.Consumer;\n-import java.util.function.Predicate;\n-import java.util.stream.Stream;\n-\n-import static java.util.Collections.sort;\n-import static java.util.Collections.unmodifiableList;\n-import static org.apache.dubbo.event.EventListener.findEventType;\n-\n-/**\n- * The abstract {@link EventDispatcher} providers the common implementation.\n- *\n- * @see EventDispatcher\n- * @see Listenable\n- * @see ServiceLoader\n- * @see EventListener\n- * @see Event\n- * @since 2.7.5\n- */\n-public abstract class AbstractEventDispatcher implements EventDispatcher {\n-\n-    private final Object mutex = new Object();\n-\n-    private final ConcurrentMap<Class<? extends Event>, List<EventListener>> listenersCache = new ConcurrentHashMap<>();\n-\n-    private final Executor executor;\n-\n-    /**\n-     * Constructor with an instance of {@link Executor}\n-     *\n-     * @param executor {@link Executor}\n-     * @throws NullPointerException <code>executor</code> is <code>null</code>\n-     */\n-    protected AbstractEventDispatcher(Executor executor) {\n-        if (executor == null) {\n-            throw new NullPointerException(\"executor must not be null\");\n-        }\n-        this.executor = executor;\n-        this.loadEventListenerInstances();\n-    }\n-\n-    @Override\n-    public void addEventListener(EventListener<?> listener) throws NullPointerException, IllegalArgumentException {\n-        Listenable.assertListener(listener);\n-        doInListener(listener, listeners -> {\n-            addIfAbsent(listeners, listener);\n-        });\n-    }\n-\n-    @Override\n-    public void removeEventListener(EventListener<?> listener) throws NullPointerException, IllegalArgumentException {\n-        Listenable.assertListener(listener);\n-        doInListener(listener, listeners -> listeners.remove(listener));\n-    }\n-\n-    @Override\n-    public List<EventListener<?>> getAllEventListeners() {\n-        List<EventListener<?>> listeners = new LinkedList<>();\n-\n-        sortedListeners().forEach(listener -> {\n-            addIfAbsent(listeners, listener);\n-        });\n-\n-        return unmodifiableList(listeners);\n-    }\n-\n-    protected Stream<EventListener> sortedListeners() {\n-        return sortedListeners(e -> true);\n-    }\n-\n-    protected Stream<EventListener> sortedListeners(Predicate<Map.Entry<Class<? extends Event>, List<EventListener>>> predicate) {\n-        return listenersCache\n-                .entrySet()\n-                .stream()\n-                .filter(predicate)\n-                .map(Map.Entry::getValue)\n-                .flatMap(Collection::stream)\n-                .sorted();\n-    }\n-\n-    private <E> void addIfAbsent(Collection<E> collection, E element) {\n-        if (!collection.contains(element)) {\n-            collection.add(element);\n-        }\n-    }\n-\n-    @Override\n-    public void dispatch(Event event) {\n-\n-        Executor executor = getExecutor();\n-\n-        // execute in sequential or parallel execution model\n-        executor.execute(() -> {\n-            sortedListeners(entry -> entry.getKey().isAssignableFrom(event.getClass()))\n-                    .forEach(listener -> {\n-                        if (listener instanceof ConditionalEventListener) {\n-                            ConditionalEventListener predicateEventListener = (ConditionalEventListener) listener;\n-                            if (!predicateEventListener.accept(event)) { // No accept\n-                                return;\n-                            }\n-                        }\n-                        // Handle the event\n-                        listener.onEvent(event);\n-                    });\n-        });\n-    }\n-\n-    /**\n-     * @return the non-null {@link Executor}\n-     */\n-    @Override\n-    public final Executor getExecutor() {\n-        return executor;\n-    }\n-\n-    protected void doInListener(EventListener<?> listener, Consumer<Collection<EventListener>> consumer) {\n-        Class<? extends Event> eventType = findEventType(listener);\n-        if (eventType != null) {\n-            synchronized (mutex) {\n-                List<EventListener> listeners = listenersCache.computeIfAbsent(eventType, e -> new LinkedList<>());\n-                // consume\n-                consumer.accept(listeners);\n-                // sort\n-                sort(listeners);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Default, load the instances of {@link EventListener event listeners} by {@link ServiceLoader}\n-     * <p>\n-     * It could be override by the sub-class\n-     *\n-     * @see EventListener\n-     * @see ServiceLoader#load(Class)\n-     */\n-    protected void loadEventListenerInstances() {\n-        ExtensionLoader<EventListener> loader = ExtensionLoader.getExtensionLoader(EventListener.class);\n-        loader.getSupportedExtensionInstances().forEach(this::addEventListener);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.ServiceLoader;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.Executor;\r\n+import java.util.function.Consumer;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.util.Collections.sort;\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.apache.dubbo.event.EventListener.findEventType;\r\n+\r\n+/**\r\n+ * The abstract {@link EventDispatcher} providers the common implementation.\r\n+ *\r\n+ * @see EventDispatcher\r\n+ * @see Listenable\r\n+ * @see ServiceLoader\r\n+ * @see EventListener\r\n+ * @see Event\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class AbstractEventDispatcher implements EventDispatcher {\r\n+\r\n+    private final Object mutex = new Object();\r\n+\r\n+    private final ConcurrentMap<Class<? extends Event>, List<EventListener>> listenersCache = new ConcurrentHashMap<>();\r\n+\r\n+    private final Executor executor;\r\n+\r\n+    /**\r\n+     * Constructor with an instance of {@link Executor}\r\n+     *\r\n+     * @param executor {@link Executor}\r\n+     * @throws NullPointerException <code>executor</code> is <code>null</code>\r\n+     */\r\n+    protected AbstractEventDispatcher(Executor executor) {\r\n+        if (executor == null) {\r\n+            throw new NullPointerException(\"executor must not be null\");\r\n+        }\r\n+        this.executor = executor;\r\n+        this.loadEventListenerInstances();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addEventListener(EventListener<?> listener) throws NullPointerException, IllegalArgumentException {\r\n+        Listenable.assertListener(listener);\r\n+        doInListener(listener, listeners -> {\r\n+            addIfAbsent(listeners, listener);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeEventListener(EventListener<?> listener) throws NullPointerException, IllegalArgumentException {\r\n+        Listenable.assertListener(listener);\r\n+        doInListener(listener, listeners -> listeners.remove(listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<EventListener<?>> getAllEventListeners() {\r\n+        List<EventListener<?>> listeners = new LinkedList<>();\r\n+\r\n+        sortedListeners().forEach(listener -> {\r\n+            addIfAbsent(listeners, listener);\r\n+        });\r\n+\r\n+        return unmodifiableList(listeners);\r\n+    }\r\n+\r\n+    protected Stream<EventListener> sortedListeners() {\r\n+        return sortedListeners(e -> true);\r\n+    }\r\n+\r\n+    protected Stream<EventListener> sortedListeners(Predicate<Map.Entry<Class<? extends Event>, List<EventListener>>> predicate) {\r\n+        return listenersCache\r\n+                .entrySet()\r\n+                .stream()\r\n+                .filter(predicate)\r\n+                .map(Map.Entry::getValue)\r\n+                .flatMap(Collection::stream)\r\n+                .sorted();\r\n+    }\r\n+\r\n+    private <E> void addIfAbsent(Collection<E> collection, E element) {\r\n+        if (!collection.contains(element)) {\r\n+            collection.add(element);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void dispatch(Event event) {\r\n+\r\n+        Executor executor = getExecutor();\r\n+\r\n+        // execute in sequential or parallel execution model\r\n+        executor.execute(() -> {\r\n+            sortedListeners(entry -> entry.getKey().isAssignableFrom(event.getClass()))\r\n+                    .forEach(listener -> {\r\n+                        if (listener instanceof ConditionalEventListener) {\r\n+                            ConditionalEventListener predicateEventListener = (ConditionalEventListener) listener;\r\n+                            if (!predicateEventListener.accept(event)) { // No accept\r\n+                                return;\r\n+                            }\r\n+                        }\r\n+                        // Handle the event\r\n+                        listener.onEvent(event);\r\n+                    });\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * @return the non-null {@link Executor}\r\n+     */\r\n+    @Override\r\n+    public final Executor getExecutor() {\r\n+        return executor;\r\n+    }\r\n+\r\n+    protected void doInListener(EventListener<?> listener, Consumer<Collection<EventListener>> consumer) {\r\n+        Class<? extends Event> eventType = findEventType(listener);\r\n+        if (eventType != null) {\r\n+            synchronized (mutex) {\r\n+                List<EventListener> listeners = listenersCache.computeIfAbsent(eventType, e -> new LinkedList<>());\r\n+                // consume\r\n+                consumer.accept(listeners);\r\n+                // sort\r\n+                sort(listeners);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Default, load the instances of {@link EventListener event listeners} by {@link ServiceLoader}\r\n+     * <p>\r\n+     * It could be override by the sub-class\r\n+     *\r\n+     * @see EventListener\r\n+     * @see ServiceLoader#load(Class)\r\n+     */\r\n+    protected void loadEventListenerInstances() {\r\n+        ExtensionLoader<EventListener> loader = ExtensionLoader.getExtensionLoader(EventListener.class);\r\n+        loader.getSupportedExtensionInstances().forEach(this::addEventListener);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/ConditionalEventListener.java", "source2": "org/apache/dubbo/event/ConditionalEventListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-/**\n- * An {@link EventListener} extending the the conditional feature that {@link #accept(Event) decides} some\n- * {@link Event event} is handled or not by current listener.\n- *\n- * @see EventListener\n- * @since 2.7.5\n- */\n-public interface ConditionalEventListener<E extends Event> extends EventListener<E> {\n-\n-    /**\n-     * Accept the event is handled or not by current listener\n-     *\n-     * @param event {@link Event event}\n-     * @return if handled, return <code>true</code>, or <code>false</code>\n-     */\n-    boolean accept(E event);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+/**\r\n+ * An {@link EventListener} extending the the conditional feature that {@link #accept(Event) decides} some\r\n+ * {@link Event event} is handled or not by current listener.\r\n+ *\r\n+ * @see EventListener\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface ConditionalEventListener<E extends Event> extends EventListener<E> {\r\n+\r\n+    /**\r\n+     * Accept the event is handled or not by current listener\r\n+     *\r\n+     * @param event {@link Event event}\r\n+     * @return if handled, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean accept(E event);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/DirectEventDispatcher.java", "source2": "org/apache/dubbo/event/DirectEventDispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-/**\n- * Direct {@link EventDispatcher} implementation uses current thread execution model\n- *\n- * @see EventDispatcher\n- * @since 2.7.5\n- */\n-public final class DirectEventDispatcher extends AbstractEventDispatcher {\n-\n-    public DirectEventDispatcher() {\n-        super(DIRECT_EXECUTOR);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+/**\r\n+ * Direct {@link EventDispatcher} implementation uses current thread execution model\r\n+ *\r\n+ * @see EventDispatcher\r\n+ * @since 2.7.5\r\n+ */\r\n+public final class DirectEventDispatcher extends AbstractEventDispatcher {\r\n+\r\n+    public DirectEventDispatcher() {\r\n+        super(DIRECT_EXECUTOR);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/Event.java", "source2": "org/apache/dubbo/event/Event.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,49 +1,49 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import java.util.EventObject;\n-\n-/**\n- * An event object of Dubbo is based on the Java standard {@link EventObject event}\n- *\n- * @since 2.7.5\n- */\n-public abstract class Event extends EventObject {\n-\n-    private static final long serialVersionUID = -1704315605423947137L;\n-\n-    /**\n-     * The timestamp of event occurs\n-     */\n-    private final long timestamp;\n-\n-    /**\n-     * Constructs a prototypical Event.\n-     *\n-     * @param source The object on which the Event initially occurred.\n-     * @throws IllegalArgumentException if source is null.\n-     */\n-    public Event(Object source) {\n-        super(source);\n-        this.timestamp = System.currentTimeMillis();\n-    }\n-\n-    public long getTimestamp() {\n-        return timestamp;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import java.util.EventObject;\r\n+\r\n+/**\r\n+ * An event object of Dubbo is based on the Java standard {@link EventObject event}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class Event extends EventObject {\r\n+\r\n+    private static final long serialVersionUID = -1704315605423947137L;\r\n+\r\n+    /**\r\n+     * The timestamp of event occurs\r\n+     */\r\n+    private final long timestamp;\r\n+\r\n+    /**\r\n+     * Constructs a prototypical Event.\r\n+     *\r\n+     * @param source The object on which the Event initially occurred.\r\n+     * @throws IllegalArgumentException if source is null.\r\n+     */\r\n+    public Event(Object source) {\r\n+        super(source);\r\n+        this.timestamp = System.currentTimeMillis();\r\n+    }\r\n+\r\n+    public long getTimestamp() {\r\n+        return timestamp;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/EventDispatcher.java", "source2": "org/apache/dubbo/event/EventDispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,66 +1,66 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.concurrent.Executor;\n-\n-/**\n- * {@link Event Dubbo Event} Dispatcher\n- *\n- * @see Event\n- * @see EventListener\n- * @see DirectEventDispatcher\n- * @since 2.7.5\n- */\n-@SPI(\"direct\")\n-public interface EventDispatcher extends Listenable<EventListener<?>> {\n-\n-    /**\n-     * Direct {@link Executor} uses sequential execution model\n-     */\n-    Executor DIRECT_EXECUTOR = Runnable::run;\n-\n-    /**\n-     * Dispatch a Dubbo event to the registered {@link EventListener Dubbo event listeners}\n-     *\n-     * @param event a {@link Event Dubbo event}\n-     */\n-    void dispatch(Event event);\n-\n-    /**\n-     * The {@link Executor} to dispatch a {@link Event Dubbo event}\n-     *\n-     * @return default implementation directly invoke {@link Runnable#run()} method, rather than multiple-threaded\n-     * {@link Executor}. If the return value is <code>null</code>, the behavior is same as default.\n-     * @see #DIRECT_EXECUTOR\n-     */\n-    default Executor getExecutor() {\n-        return DIRECT_EXECUTOR;\n-    }\n-\n-    /**\n-     * The default extension of {@link EventDispatcher} is loaded by {@link ExtensionLoader}\n-     *\n-     * @return the default extension of {@link EventDispatcher}\n-     */\n-    static EventDispatcher getDefaultExtension() {\n-        return ExtensionLoader.getExtensionLoader(EventDispatcher.class).getDefaultExtension();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.concurrent.Executor;\r\n+\r\n+/**\r\n+ * {@link Event Dubbo Event} Dispatcher\r\n+ *\r\n+ * @see Event\r\n+ * @see EventListener\r\n+ * @see DirectEventDispatcher\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"direct\")\r\n+public interface EventDispatcher extends Listenable<EventListener<?>> {\r\n+\r\n+    /**\r\n+     * Direct {@link Executor} uses sequential execution model\r\n+     */\r\n+    Executor DIRECT_EXECUTOR = Runnable::run;\r\n+\r\n+    /**\r\n+     * Dispatch a Dubbo event to the registered {@link EventListener Dubbo event listeners}\r\n+     *\r\n+     * @param event a {@link Event Dubbo event}\r\n+     */\r\n+    void dispatch(Event event);\r\n+\r\n+    /**\r\n+     * The {@link Executor} to dispatch a {@link Event Dubbo event}\r\n+     *\r\n+     * @return default implementation directly invoke {@link Runnable#run()} method, rather than multiple-threaded\r\n+     * {@link Executor}. If the return value is <code>null</code>, the behavior is same as default.\r\n+     * @see #DIRECT_EXECUTOR\r\n+     */\r\n+    default Executor getExecutor() {\r\n+        return DIRECT_EXECUTOR;\r\n+    }\r\n+\r\n+    /**\r\n+     * The default extension of {@link EventDispatcher} is loaded by {@link ExtensionLoader}\r\n+     *\r\n+     * @return the default extension of {@link EventDispatcher}\r\n+     */\r\n+    static EventDispatcher getDefaultExtension() {\r\n+        return ExtensionLoader.getExtensionLoader(EventDispatcher.class).getDefaultExtension();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/EventListener.java", "source2": "org/apache/dubbo/event/EventListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,119 +1,119 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-import java.lang.reflect.ParameterizedType;\n-import java.lang.reflect.Type;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.common.utils.ReflectUtils.findParameterizedTypes;\n-\n-/**\n- * The {@link Event Dubbo Event} Listener that is based on Java standard {@link java.util.EventListener} interface supports\n- * the generic {@link Event}.\n- * <p>\n- * The {@link #onEvent(Event) handle method} will be notified when the matched-type {@link Event Dubbo Event} is\n- * published, whose priority could be changed by {@link #getPriority()} method.\n- *\n- * @param <E> the concrete class of {@link Event Dubbo Event}\n- * @see Event \n- * @see java.util.EventListener\n- * @since 2.7.5\n- */\n-@SPI\n-@FunctionalInterface\n-public interface EventListener<E extends Event> extends java.util.EventListener, Prioritized {\n-\n-    /**\n-     * Handle a {@link Event Dubbo Event} when it's be published\n-     *\n-     * @param event a {@link Event Dubbo Event}\n-     */\n-    void onEvent(E event);\n-\n-    /**\n-     * The priority of {@link EventListener current listener}.\n-     *\n-     * @return the value is more greater, the priority is more lower.\n-     * {@link Integer#MIN_VALUE} indicates the highest priority. The default value is {@link Integer#MAX_VALUE}.\n-     * The comparison rule , refer to {@link #compareTo}.\n-     */\n-    default int getPriority() {\n-        return NORMAL_PRIORITY;\n-    }\n-\n-    /**\n-     * Find the {@link Class type} {@link Event Dubbo event} from the specified {@link EventListener Dubbo event listener}\n-     *\n-     * @param listener the {@link Class class} of {@link EventListener Dubbo event listener}\n-     * @return <code>null</code> if not found\n-     */\n-    static Class<? extends Event> findEventType(EventListener<?> listener) {\n-        return findEventType(listener.getClass());\n-    }\n-\n-    /**\n-     * Find the {@link Class type} {@link Event Dubbo event} from the specified {@link EventListener Dubbo event listener}\n-     *\n-     * @param listenerClass the {@link Class class} of {@link EventListener Dubbo event listener}\n-     * @return <code>null</code> if not found\n-     */\n-    static Class<? extends Event> findEventType(Class<?> listenerClass) {\n-        Class<? extends Event> eventType = null;\n-\n-        if (listenerClass != null && EventListener.class.isAssignableFrom(listenerClass)) {\n-            eventType = findParameterizedTypes(listenerClass)\n-                    .stream()\n-                    .map(EventListener::findEventType)\n-                    .filter(Objects::nonNull)\n-                    .findAny()\n-                    .orElse((Class) findEventType(listenerClass.getSuperclass()));\n-        }\n-\n-        return eventType;\n-    }\n-\n-    /**\n-     * Find the type {@link Event Dubbo event} from the specified {@link ParameterizedType} presents\n-     * a class of {@link EventListener Dubbo event listener}\n-     *\n-     * @param parameterizedType the {@link ParameterizedType} presents a class of {@link EventListener Dubbo event listener}\n-     * @return <code>null</code> if not found\n-     */\n-    static Class<? extends Event> findEventType(ParameterizedType parameterizedType) {\n-        Class<? extends Event> eventType = null;\n-\n-        Type rawType = parameterizedType.getRawType();\n-        if ((rawType instanceof Class) && EventListener.class.isAssignableFrom((Class) rawType)) {\n-            Type[] typeArguments = parameterizedType.getActualTypeArguments();\n-            for (Type typeArgument : typeArguments) {\n-                if (typeArgument instanceof Class) {\n-                    Class argumentClass = (Class) typeArgument;\n-                    if (Event.class.isAssignableFrom(argumentClass)) {\n-                        eventType = argumentClass;\n-                        break;\n-                    }\n-                }\n-            }\n-        }\n-\n-        return eventType;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.lang.reflect.Type;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.findParameterizedTypes;\r\n+\r\n+/**\r\n+ * The {@link Event Dubbo Event} Listener that is based on Java standard {@link java.util.EventListener} interface supports\r\n+ * the generic {@link Event}.\r\n+ * <p>\r\n+ * The {@link #onEvent(Event) handle method} will be notified when the matched-type {@link Event Dubbo Event} is\r\n+ * published, whose priority could be changed by {@link #getPriority()} method.\r\n+ *\r\n+ * @param <E> the concrete class of {@link Event Dubbo Event}\r\n+ * @see Event \r\n+ * @see java.util.EventListener\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI\r\n+@FunctionalInterface\r\n+public interface EventListener<E extends Event> extends java.util.EventListener, Prioritized {\r\n+\r\n+    /**\r\n+     * Handle a {@link Event Dubbo Event} when it's be published\r\n+     *\r\n+     * @param event a {@link Event Dubbo Event}\r\n+     */\r\n+    void onEvent(E event);\r\n+\r\n+    /**\r\n+     * The priority of {@link EventListener current listener}.\r\n+     *\r\n+     * @return the value is more greater, the priority is more lower.\r\n+     * {@link Integer#MIN_VALUE} indicates the highest priority. The default value is {@link Integer#MAX_VALUE}.\r\n+     * The comparison rule , refer to {@link #compareTo}.\r\n+     */\r\n+    default int getPriority() {\r\n+        return NORMAL_PRIORITY;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Class type} {@link Event Dubbo event} from the specified {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param listener the {@link Class class} of {@link EventListener Dubbo event listener}\r\n+     * @return <code>null</code> if not found\r\n+     */\r\n+    static Class<? extends Event> findEventType(EventListener<?> listener) {\r\n+        return findEventType(listener.getClass());\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the {@link Class type} {@link Event Dubbo event} from the specified {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param listenerClass the {@link Class class} of {@link EventListener Dubbo event listener}\r\n+     * @return <code>null</code> if not found\r\n+     */\r\n+    static Class<? extends Event> findEventType(Class<?> listenerClass) {\r\n+        Class<? extends Event> eventType = null;\r\n+\r\n+        if (listenerClass != null && EventListener.class.isAssignableFrom(listenerClass)) {\r\n+            eventType = findParameterizedTypes(listenerClass)\r\n+                    .stream()\r\n+                    .map(EventListener::findEventType)\r\n+                    .filter(Objects::nonNull)\r\n+                    .findAny()\r\n+                    .orElse((Class) findEventType(listenerClass.getSuperclass()));\r\n+        }\r\n+\r\n+        return eventType;\r\n+    }\r\n+\r\n+    /**\r\n+     * Find the type {@link Event Dubbo event} from the specified {@link ParameterizedType} presents\r\n+     * a class of {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param parameterizedType the {@link ParameterizedType} presents a class of {@link EventListener Dubbo event listener}\r\n+     * @return <code>null</code> if not found\r\n+     */\r\n+    static Class<? extends Event> findEventType(ParameterizedType parameterizedType) {\r\n+        Class<? extends Event> eventType = null;\r\n+\r\n+        Type rawType = parameterizedType.getRawType();\r\n+        if ((rawType instanceof Class) && EventListener.class.isAssignableFrom((Class) rawType)) {\r\n+            Type[] typeArguments = parameterizedType.getActualTypeArguments();\r\n+            for (Type typeArgument : typeArguments) {\r\n+                if (typeArgument instanceof Class) {\r\n+                    Class argumentClass = (Class) typeArgument;\r\n+                    if (Event.class.isAssignableFrom(argumentClass)) {\r\n+                        eventType = argumentClass;\r\n+                        break;\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return eventType;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/event/GenericEvent.java", "source2": "org/apache/dubbo/event/GenericEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-/**\n- * Generic {@link Event Dubbo event}\n- *\n- * @param <S> the type of event source\n- * @since 2.7.5\n- */\n-public class GenericEvent<S> extends Event {\n-\n-    public GenericEvent(S source) {\n-        super(source);\n-    }\n-\n-    public S getSource() {\n-        return (S) super.getSource();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+/**\r\n+ * Generic {@link Event Dubbo event}\r\n+ *\r\n+ * @param <S> the type of event source\r\n+ * @since 2.7.5\r\n+ */\r\n+public class GenericEvent<S> extends Event {\r\n+\r\n+    public GenericEvent(S source) {\r\n+        super(source);\r\n+    }\r\n+\r\n+    public S getSource() {\r\n+        return (S) super.getSource();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/GenericEventListener.java", "source2": "org/apache/dubbo/event/GenericEventListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,130 +1,130 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import org.apache.dubbo.common.function.ThrowableConsumer;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.util.HashMap;\n-import java.util.LinkedHashSet;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static java.util.Collections.emptySet;\n-import static java.util.stream.Stream.of;\n-import static org.apache.dubbo.common.function.ThrowableFunction.execute;\n-\n-/**\n- * An abstract class of {@link EventListener} for Generic events, the sub class could add more {@link Event event}\n- * handle methods, rather than only binds the {@link EventListener#onEvent(Event)} method that is declared to be\n- * <code>final</code> the implementation can't override. It's notable that all {@link Event event} handle methods must\n- * meet following conditions:\n- * <ul>\n- * <li>not {@link #onEvent(Event)} method</li>\n- * <li><code>public</code> accessibility</li>\n- * <li><code>void</code> return type</li>\n- * <li>no {@link Exception exception} declaration</li>\n- * <li>only one {@link Event} type argument</li>\n- * </ul>\n- *\n- * @see Event\n- * @see EventListener\n- * @since 2.7.5\n- */\n-public abstract class GenericEventListener implements EventListener<Event> {\n-\n-    private final Method onEventMethod;\n-\n-    private final Map<Class<?>, Set<Method>> handleEventMethods;\n-\n-    protected GenericEventListener() {\n-        this.onEventMethod = findOnEventMethod();\n-        this.handleEventMethods = findHandleEventMethods();\n-    }\n-\n-    private Method findOnEventMethod() {\n-        return execute(getClass(), listenerClass -> listenerClass.getMethod(\"onEvent\", Event.class));\n-    }\n-\n-    private Map<Class<?>, Set<Method>> findHandleEventMethods() {\n-        // Event class for key, the eventMethods' Set as value\n-        Map<Class<?>, Set<Method>> eventMethods = new HashMap<>();\n-        of(getClass().getMethods())\n-                .filter(this::isHandleEventMethod)\n-                .forEach(method -> {\n-                    Class<?> paramType = method.getParameterTypes()[0];\n-                    Set<Method> methods = eventMethods.computeIfAbsent(paramType, key -> new LinkedHashSet<>());\n-                    methods.add(method);\n-                });\n-        return eventMethods;\n-    }\n-\n-    public final void onEvent(Event event) {\n-        Class<?> eventClass = event.getClass();\n-        handleEventMethods.getOrDefault(eventClass, emptySet()).forEach(method -> {\n-            ThrowableConsumer.execute(method, m -> {\n-                m.invoke(this, event);\n-            });\n-        });\n-    }\n-\n-    /**\n-     * The {@link Event event} handle methods must meet following conditions:\n-     * <ul>\n-     * <li>not {@link #onEvent(Event)} method</li>\n-     * <li><code>public</code> accessibility</li>\n-     * <li><code>void</code> return type</li>\n-     * <li>no {@link Exception exception} declaration</li>\n-     * <li>only one {@link Event} type argument</li>\n-     * </ul>\n-     *\n-     * @param method\n-     * @return\n-     */\n-    private boolean isHandleEventMethod(Method method) {\n-\n-        if (onEventMethod.equals(method)) { // not {@link #onEvent(Event)} method\n-            return false;\n-        }\n-\n-        if (!Modifier.isPublic(method.getModifiers())) { // not public\n-            return false;\n-        }\n-\n-        if (!void.class.equals(method.getReturnType())) { // void return type\n-            return false;\n-        }\n-\n-        Class[] exceptionTypes = method.getExceptionTypes();\n-\n-        if (exceptionTypes.length > 0) { // no exception declaration\n-            return false;\n-        }\n-\n-        Class[] paramTypes = method.getParameterTypes();\n-        if (paramTypes.length != 1) { // not only one argument\n-            return false;\n-        }\n-\n-        if (!Event.class.isAssignableFrom(paramTypes[0])) { // not Event type argument\n-            return false;\n-        }\n-\n-        return true;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import org.apache.dubbo.common.function.ThrowableConsumer;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static java.util.Collections.emptySet;\r\n+import static java.util.stream.Stream.of;\r\n+import static org.apache.dubbo.common.function.ThrowableFunction.execute;\r\n+\r\n+/**\r\n+ * An abstract class of {@link EventListener} for Generic events, the sub class could add more {@link Event event}\r\n+ * handle methods, rather than only binds the {@link EventListener#onEvent(Event)} method that is declared to be\r\n+ * <code>final</code> the implementation can't override. It's notable that all {@link Event event} handle methods must\r\n+ * meet following conditions:\r\n+ * <ul>\r\n+ * <li>not {@link #onEvent(Event)} method</li>\r\n+ * <li><code>public</code> accessibility</li>\r\n+ * <li><code>void</code> return type</li>\r\n+ * <li>no {@link Exception exception} declaration</li>\r\n+ * <li>only one {@link Event} type argument</li>\r\n+ * </ul>\r\n+ *\r\n+ * @see Event\r\n+ * @see EventListener\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class GenericEventListener implements EventListener<Event> {\r\n+\r\n+    private final Method onEventMethod;\r\n+\r\n+    private final Map<Class<?>, Set<Method>> handleEventMethods;\r\n+\r\n+    protected GenericEventListener() {\r\n+        this.onEventMethod = findOnEventMethod();\r\n+        this.handleEventMethods = findHandleEventMethods();\r\n+    }\r\n+\r\n+    private Method findOnEventMethod() {\r\n+        return execute(getClass(), listenerClass -> listenerClass.getMethod(\"onEvent\", Event.class));\r\n+    }\r\n+\r\n+    private Map<Class<?>, Set<Method>> findHandleEventMethods() {\r\n+        // Event class for key, the eventMethods' Set as value\r\n+        Map<Class<?>, Set<Method>> eventMethods = new HashMap<>();\r\n+        of(getClass().getMethods())\r\n+                .filter(this::isHandleEventMethod)\r\n+                .forEach(method -> {\r\n+                    Class<?> paramType = method.getParameterTypes()[0];\r\n+                    Set<Method> methods = eventMethods.computeIfAbsent(paramType, key -> new LinkedHashSet<>());\r\n+                    methods.add(method);\r\n+                });\r\n+        return eventMethods;\r\n+    }\r\n+\r\n+    public final void onEvent(Event event) {\r\n+        Class<?> eventClass = event.getClass();\r\n+        handleEventMethods.getOrDefault(eventClass, emptySet()).forEach(method -> {\r\n+            ThrowableConsumer.execute(method, m -> {\r\n+                m.invoke(this, event);\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * The {@link Event event} handle methods must meet following conditions:\r\n+     * <ul>\r\n+     * <li>not {@link #onEvent(Event)} method</li>\r\n+     * <li><code>public</code> accessibility</li>\r\n+     * <li><code>void</code> return type</li>\r\n+     * <li>no {@link Exception exception} declaration</li>\r\n+     * <li>only one {@link Event} type argument</li>\r\n+     * </ul>\r\n+     *\r\n+     * @param method\r\n+     * @return\r\n+     */\r\n+    private boolean isHandleEventMethod(Method method) {\r\n+\r\n+        if (onEventMethod.equals(method)) { // not {@link #onEvent(Event)} method\r\n+            return false;\r\n+        }\r\n+\r\n+        if (!Modifier.isPublic(method.getModifiers())) { // not public\r\n+            return false;\r\n+        }\r\n+\r\n+        if (!void.class.equals(method.getReturnType())) { // void return type\r\n+            return false;\r\n+        }\r\n+\r\n+        Class[] exceptionTypes = method.getExceptionTypes();\r\n+\r\n+        if (exceptionTypes.length > 0) { // no exception declaration\r\n+            return false;\r\n+        }\r\n+\r\n+        Class[] paramTypes = method.getParameterTypes();\r\n+        if (paramTypes.length != 1) { // not only one argument\r\n+            return false;\r\n+        }\r\n+\r\n+        if (!Event.class.isAssignableFrom(paramTypes[0])) { // not Event type argument\r\n+            return false;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/Listenable.java", "source2": "org/apache/dubbo/event/Listenable.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,131 +1,131 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import java.lang.reflect.Modifier;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-\n-import static java.util.stream.StreamSupport.stream;\n-\n-/**\n- * Dubbo Event Listenable\n- *\n- * @see EventDispatcher\n- * @since 2.7.5\n- */\n-public interface Listenable<E extends EventListener<?>> {\n-\n-    /**\n-     * Add a {@link EventListener Dubbo event listener}\n-     *\n-     * @param listener a {@link EventListener Dubbo event listener}\n-     *                 If current {@link EventListener} is existed, return <code>false</code>\n-     * @throws NullPointerException     if <code>listener</code> argument is <code>null</code>\n-     * @throws IllegalArgumentException if <code>listener</code> argument is not concrete instance\n-     */\n-    void addEventListener(E listener) throws NullPointerException, IllegalArgumentException;\n-\n-    /**\n-     * Add one or more {@link EventListener Dubbo event listeners}\n-     *\n-     * @param listener a {@link EventListener Dubbo event listener}\n-     * @param others   an optional {@link EventListener Dubbo event listeners}\n-     * @throws NullPointerException     if one of arguments is <code>null</code>\n-     * @throws IllegalArgumentException if one of arguments argument is not concrete instance\n-     */\n-    default void addEventListeners(E listener, E... others) throws NullPointerException,\n-            IllegalArgumentException {\n-        List<E> listeners = new ArrayList<>(1 + others.length);\n-        listeners.add(listener);\n-        listeners.addAll(Arrays.asList(others));\n-        addEventListeners(listeners);\n-    }\n-\n-    /**\n-     * Add multiple {@link EventListener Dubbo event listeners}\n-     *\n-     * @param listeners the {@link EventListener Dubbo event listeners}\n-     * @throws NullPointerException     if <code>listeners</code> argument is <code>null</code>\n-     * @throws IllegalArgumentException if any element of <code>listeners</code> is not concrete instance\n-     */\n-    default void addEventListeners(Iterable<E> listeners) throws NullPointerException, IllegalArgumentException {\n-        stream(listeners.spliterator(), false).forEach(this::addEventListener);\n-    }\n-\n-    /**\n-     * Remove a {@link EventListener Dubbo event listener}\n-     *\n-     * @param listener a {@link EventListener Dubbo event listener}\n-     * @return If remove successfully, return <code>true</code>.\n-     * If current {@link EventListener} is existed, return <code>false</code>\n-     * @throws NullPointerException if <code>listener</code> argument is <code>null</code>\n-     */\n-    void removeEventListener(E listener) throws NullPointerException, IllegalArgumentException;\n-\n-    /**\n-     * Remove a {@link EventListener Dubbo event listener}\n-     *\n-     * @param listeners the {@link EventListener Dubbo event listeners}\n-     * @return If remove successfully, return <code>true</code>.\n-     * If current {@link EventListener} is existed, return <code>false</code>\n-     * @throws NullPointerException     if <code>listener</code> argument is <code>null</code>\n-     * @throws IllegalArgumentException if any element of <code>listeners</code> is not concrete instance\n-     */\n-    default void removeEventListeners(Iterable<E> listeners) throws NullPointerException, IllegalArgumentException {\n-        stream(listeners.spliterator(), false).forEach(this::removeEventListener);\n-    }\n-\n-    /**\n-     * Remove all {@link EventListener Dubbo event listeners}\n-     *\n-     * @return a amount of removed listeners\n-     */\n-    default void removeAllEventListeners() {\n-        removeEventListeners(getAllEventListeners());\n-    }\n-\n-    /**\n-     * Get all registered {@link EventListener Dubbo event listeners}\n-     *\n-     * @return non-null read-only ordered {@link EventListener Dubbo event listeners}\n-     * @see EventListener#getPriority()\n-     */\n-    List<E> getAllEventListeners();\n-\n-\n-    /**\n-     * Assets the listener is valid or not\n-     *\n-     * @param listener the instance of {@link EventListener}\n-     * @throws NullPointerException\n-     */\n-    static void assertListener(EventListener<?> listener) throws NullPointerException {\n-        if (listener == null) {\n-            throw new NullPointerException(\"The listener must not be null.\");\n-        }\n-\n-        Class<?> listenerClass = listener.getClass();\n-\n-        int modifiers = listenerClass.getModifiers();\n-\n-        if (Modifier.isAbstract(modifiers) || Modifier.isInterface(modifiers)) {\n-            throw new IllegalArgumentException(\"The listener must be concrete class\");\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import java.lang.reflect.Modifier;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+\r\n+import static java.util.stream.StreamSupport.stream;\r\n+\r\n+/**\r\n+ * Dubbo Event Listenable\r\n+ *\r\n+ * @see EventDispatcher\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface Listenable<E extends EventListener<?>> {\r\n+\r\n+    /**\r\n+     * Add a {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param listener a {@link EventListener Dubbo event listener}\r\n+     *                 If current {@link EventListener} is existed, return <code>false</code>\r\n+     * @throws NullPointerException     if <code>listener</code> argument is <code>null</code>\r\n+     * @throws IllegalArgumentException if <code>listener</code> argument is not concrete instance\r\n+     */\r\n+    void addEventListener(E listener) throws NullPointerException, IllegalArgumentException;\r\n+\r\n+    /**\r\n+     * Add one or more {@link EventListener Dubbo event listeners}\r\n+     *\r\n+     * @param listener a {@link EventListener Dubbo event listener}\r\n+     * @param others   an optional {@link EventListener Dubbo event listeners}\r\n+     * @throws NullPointerException     if one of arguments is <code>null</code>\r\n+     * @throws IllegalArgumentException if one of arguments argument is not concrete instance\r\n+     */\r\n+    default void addEventListeners(E listener, E... others) throws NullPointerException,\r\n+            IllegalArgumentException {\r\n+        List<E> listeners = new ArrayList<>(1 + others.length);\r\n+        listeners.add(listener);\r\n+        listeners.addAll(Arrays.asList(others));\r\n+        addEventListeners(listeners);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add multiple {@link EventListener Dubbo event listeners}\r\n+     *\r\n+     * @param listeners the {@link EventListener Dubbo event listeners}\r\n+     * @throws NullPointerException     if <code>listeners</code> argument is <code>null</code>\r\n+     * @throws IllegalArgumentException if any element of <code>listeners</code> is not concrete instance\r\n+     */\r\n+    default void addEventListeners(Iterable<E> listeners) throws NullPointerException, IllegalArgumentException {\r\n+        stream(listeners.spliterator(), false).forEach(this::addEventListener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Remove a {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param listener a {@link EventListener Dubbo event listener}\r\n+     * @return If remove successfully, return <code>true</code>.\r\n+     * If current {@link EventListener} is existed, return <code>false</code>\r\n+     * @throws NullPointerException if <code>listener</code> argument is <code>null</code>\r\n+     */\r\n+    void removeEventListener(E listener) throws NullPointerException, IllegalArgumentException;\r\n+\r\n+    /**\r\n+     * Remove a {@link EventListener Dubbo event listener}\r\n+     *\r\n+     * @param listeners the {@link EventListener Dubbo event listeners}\r\n+     * @return If remove successfully, return <code>true</code>.\r\n+     * If current {@link EventListener} is existed, return <code>false</code>\r\n+     * @throws NullPointerException     if <code>listener</code> argument is <code>null</code>\r\n+     * @throws IllegalArgumentException if any element of <code>listeners</code> is not concrete instance\r\n+     */\r\n+    default void removeEventListeners(Iterable<E> listeners) throws NullPointerException, IllegalArgumentException {\r\n+        stream(listeners.spliterator(), false).forEach(this::removeEventListener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Remove all {@link EventListener Dubbo event listeners}\r\n+     *\r\n+     * @return a amount of removed listeners\r\n+     */\r\n+    default void removeAllEventListeners() {\r\n+        removeEventListeners(getAllEventListeners());\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all registered {@link EventListener Dubbo event listeners}\r\n+     *\r\n+     * @return non-null read-only ordered {@link EventListener Dubbo event listeners}\r\n+     * @see EventListener#getPriority()\r\n+     */\r\n+    List<E> getAllEventListeners();\r\n+\r\n+\r\n+    /**\r\n+     * Assets the listener is valid or not\r\n+     *\r\n+     * @param listener the instance of {@link EventListener}\r\n+     * @throws NullPointerException\r\n+     */\r\n+    static void assertListener(EventListener<?> listener) throws NullPointerException {\r\n+        if (listener == null) {\r\n+            throw new NullPointerException(\"The listener must not be null.\");\r\n+        }\r\n+\r\n+        Class<?> listenerClass = listener.getClass();\r\n+\r\n+        int modifiers = listenerClass.getModifiers();\r\n+\r\n+        if (Modifier.isAbstract(modifiers) || Modifier.isInterface(modifiers)) {\r\n+            throw new IllegalArgumentException(\"The listener must be concrete class\");\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/event/ParallelEventDispatcher.java", "source2": "org/apache/dubbo/event/ParallelEventDispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.event;\n-\n-import java.util.concurrent.ForkJoinPool;\n-\n-/**\n- * Parallel {@link EventDispatcher} implementation uses {@link ForkJoinPool#commonPool() JDK common thread pool}\n- *\n- * @see ForkJoinPool#commonPool()\n- * @since 2.7.5\n- */\n-public class ParallelEventDispatcher extends AbstractEventDispatcher {\n-\n-    public ParallelEventDispatcher() {\n-        super(ForkJoinPool.commonPool());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.event;\r\n+\r\n+import java.util.concurrent.ForkJoinPool;\r\n+\r\n+/**\r\n+ * Parallel {@link EventDispatcher} implementation uses {@link ForkJoinPool#commonPool() JDK common thread pool}\r\n+ *\r\n+ * @see ForkJoinPool#commonPool()\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ParallelEventDispatcher extends AbstractEventDispatcher {\r\n+\r\n+    public ParallelEventDispatcher() {\r\n+        super(ForkJoinPool.commonPool());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/DefaultMetadataParamsFilter.java", "source2": "org/apache/dubbo/metadata/DefaultMetadataParamsFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\n-import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\n-import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.WARMUP_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.WEIGHT_KEY;\n-\n-@Activate\n-public class DefaultMetadataParamsFilter implements MetadataParamsFilter {\n-    @Override\n-    public String[] serviceParamsIncluded() {\n-        return new String[]{\n-                CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,\n-                GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY,\n-                WEIGHT_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\n-        };\n-    }\n-\n-\n-    @Override\n-    public String[] instanceParamsIncluded() {\n-        return new String[0];\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.WARMUP_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.WEIGHT_KEY;\r\n+\r\n+@Activate\r\n+public class DefaultMetadataParamsFilter implements MetadataParamsFilter {\r\n+    @Override\r\n+    public String[] serviceParamsIncluded() {\r\n+        return new String[]{\r\n+                CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,\r\n+                GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY,\r\n+                WEIGHT_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\r\n+        };\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public String[] instanceParamsIncluded() {\r\n+        return new String[0];\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/DynamicConfigurationServiceNameMapping.java", "source2": "org/apache/dubbo/metadata/DynamicConfigurationServiceNameMapping.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,103 +1,103 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-\n-import java.util.Collections;\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-import static java.lang.String.valueOf;\n-import static java.util.Arrays.asList;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.model.ApplicationModel.getName;\n-\n-/**\n- * The {@link ServiceNameMapping} implementation based on {@link DynamicConfiguration}\n- */\n-public class DynamicConfigurationServiceNameMapping implements ServiceNameMapping {\n-\n-    public static String DEFAULT_MAPPING_GROUP = \"mapping\";\n-\n-    private static final List<String> IGNORED_SERVICE_INTERFACES = asList(MetadataService.class.getName());\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    @Override\n-    public void map(URL url) {\n-        String serviceInterface = url.getServiceInterface();\n-        String group = url.getParameter(GROUP_KEY);\n-        String version = url.getParameter(VERSION_KEY);\n-        String protocol = url.getProtocol();\n-\n-        if (IGNORED_SERVICE_INTERFACES.contains(serviceInterface)) {\n-            return;\n-        }\n-\n-        DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\n-\n-        // the Dubbo Service Key as group\n-        // the service(application) name as key\n-        // It does matter whatever the content is, we just need a record\n-        String key = getName();\n-        String content = valueOf(System.currentTimeMillis());\n-\n-        execute(() -> {\n-            dynamicConfiguration.publishConfig(key, ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol), content);\n-            if (logger.isInfoEnabled()) {\n-                logger.info(String.format(\"Dubbo service[%s] mapped to interface name[%s].\",\n-                        group, serviceInterface));\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public Set<String> getAndListen(URL url, MappingListener mappingListener) {\n-        String serviceInterface = url.getServiceInterface();\n-        String group = url.getParameter(GROUP_KEY);\n-        String version = url.getParameter(VERSION_KEY);\n-        String protocol = url.getProtocol();\n-        DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\n-\n-        Set<String> serviceNames = new LinkedHashSet<>();\n-        execute(() -> {\n-            Set<String> keys = dynamicConfiguration\n-                    .getConfigKeys(ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol));\n-            if (CollectionUtils.isNotEmpty(keys)) {\n-                serviceNames.addAll(keys);\n-            }\n-        });\n-        return Collections.unmodifiableSet(serviceNames);\n-    }\n-\n-    private void execute(Runnable runnable) {\n-        try {\n-            runnable.run();\n-        } catch (Throwable e) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+import static java.lang.String.valueOf;\r\n+import static java.util.Arrays.asList;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.model.ApplicationModel.getName;\r\n+\r\n+/**\r\n+ * The {@link ServiceNameMapping} implementation based on {@link DynamicConfiguration}\r\n+ */\r\n+public class DynamicConfigurationServiceNameMapping implements ServiceNameMapping {\r\n+\r\n+    public static String DEFAULT_MAPPING_GROUP = \"mapping\";\r\n+\r\n+    private static final List<String> IGNORED_SERVICE_INTERFACES = asList(MetadataService.class.getName());\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    @Override\r\n+    public void map(URL url) {\r\n+        String serviceInterface = url.getServiceInterface();\r\n+        String group = url.getParameter(GROUP_KEY);\r\n+        String version = url.getParameter(VERSION_KEY);\r\n+        String protocol = url.getProtocol();\r\n+\r\n+        if (IGNORED_SERVICE_INTERFACES.contains(serviceInterface)) {\r\n+            return;\r\n+        }\r\n+\r\n+        DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\r\n+\r\n+        // the Dubbo Service Key as group\r\n+        // the service(application) name as key\r\n+        // It does matter whatever the content is, we just need a record\r\n+        String key = getName();\r\n+        String content = valueOf(System.currentTimeMillis());\r\n+\r\n+        execute(() -> {\r\n+            dynamicConfiguration.publishConfig(key, ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol), content);\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(String.format(\"Dubbo service[%s] mapped to interface name[%s].\",\r\n+                        group, serviceInterface));\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getAndListen(URL url, MappingListener mappingListener) {\r\n+        String serviceInterface = url.getServiceInterface();\r\n+        String group = url.getParameter(GROUP_KEY);\r\n+        String version = url.getParameter(VERSION_KEY);\r\n+        String protocol = url.getProtocol();\r\n+        DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\r\n+\r\n+        Set<String> serviceNames = new LinkedHashSet<>();\r\n+        execute(() -> {\r\n+            Set<String> keys = dynamicConfiguration\r\n+                    .getConfigKeys(ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol));\r\n+            if (CollectionUtils.isNotEmpty(keys)) {\r\n+                serviceNames.addAll(keys);\r\n+            }\r\n+        });\r\n+        return Collections.unmodifiableSet(serviceNames);\r\n+    }\r\n+\r\n+    private void execute(Runnable runnable) {\r\n+        try {\r\n+            runnable.run();\r\n+        } catch (Throwable e) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MappingChangedEvent.java", "source2": "org/apache/dubbo/metadata/MappingChangedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import java.util.Set;\n-\n-public class MappingChangedEvent {\n-    private String serviceKey;\n-    private Set<String> apps;\n-\n-    public String getServiceKey() {\n-        return serviceKey;\n-    }\n-\n-    public void setServiceKey(String serviceKey) {\n-        this.serviceKey = serviceKey;\n-    }\n-\n-    public Set<String> getApps() {\n-        return apps;\n-    }\n-\n-    public void setApps(Set<String> apps) {\n-        this.apps = apps;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import java.util.Set;\r\n+\r\n+public class MappingChangedEvent {\r\n+    private String serviceKey;\r\n+    private Set<String> apps;\r\n+\r\n+    public String getServiceKey() {\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+    public void setServiceKey(String serviceKey) {\r\n+        this.serviceKey = serviceKey;\r\n+    }\r\n+\r\n+    public Set<String> getApps() {\r\n+        return apps;\r\n+    }\r\n+\r\n+    public void setApps(Set<String> apps) {\r\n+        this.apps = apps;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MappingListener.java", "source2": "org/apache/dubbo/metadata/MappingListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,21 +1,21 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-public interface MappingListener {\n-    void onEvent(MappingChangedEvent event);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+public interface MappingListener {\r\n+    void onEvent(MappingChangedEvent event);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataChangeListener.java", "source2": "org/apache/dubbo/metadata/MetadataChangeListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-public interface MetadataChangeListener {\n-    /**\n-     * Call when metadata in provider side update <p/>\n-     * Used to notify consumer to update metadata of ServiceInstance\n-     *\n-     * @param metadata latest metadata\n-     */\n-    void onEvent(String metadata);\n-\n-    /**\n-     * Echo test\n-     * Used to check consumer still online\n-     */\n-    default String echo(String msg) {\n-        return msg;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+public interface MetadataChangeListener {\r\n+    /**\r\n+     * Call when metadata in provider side update <p/>\r\n+     * Used to notify consumer to update metadata of ServiceInstance\r\n+     *\r\n+     * @param metadata latest metadata\r\n+     */\r\n+    void onEvent(String metadata);\r\n+\r\n+    /**\r\n+     * Echo test\r\n+     * Used to check consumer still online\r\n+     */\r\n+    default String echo(String msg) {\r\n+        return msg;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataConstants.java", "source2": "org/apache/dubbo/metadata/MetadataConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-public class MetadataConstants {\n-    public static final String KEY_SEPARATOR = \":\";\n-    public static final String DEFAULT_PATH_TAG = \"metadata\";\n-    public static final String KEY_REVISION_PREFIX = \"revision\";\n-    public static final String META_DATA_STORE_TAG = \".metaData\";\n-    public static final String SERVICE_META_DATA_STORE_TAG = \".smd\";\n-    public static final String CONSUMER_META_DATA_STORE_TAG = \".cmd\";\n-    public static final String METADATA_PUBLISH_DELAY_KEY = \"dubbo.application.metadata.delay\";\n-    public static final int DEFAULT_METADATA_PUBLISH_DELAY = 5000;\n-    public static final String METADATA_PROXY_TIMEOUT_KEY = \"dubbo.application.metadata.delay\";\n-    public static final int DEFAULT_METADATA_TIMEOUT_VALUE = 5000;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+public class MetadataConstants {\r\n+    public static final String KEY_SEPARATOR = \":\";\r\n+    public static final String DEFAULT_PATH_TAG = \"metadata\";\r\n+    public static final String KEY_REVISION_PREFIX = \"revision\";\r\n+    public static final String META_DATA_STORE_TAG = \".metaData\";\r\n+    public static final String SERVICE_META_DATA_STORE_TAG = \".smd\";\r\n+    public static final String CONSUMER_META_DATA_STORE_TAG = \".cmd\";\r\n+    public static final String METADATA_PUBLISH_DELAY_KEY = \"dubbo.application.metadata.delay\";\r\n+    public static final int DEFAULT_METADATA_PUBLISH_DELAY = 5000;\r\n+    public static final String METADATA_PROXY_TIMEOUT_KEY = \"dubbo.application.metadata.delay\";\r\n+    public static final int DEFAULT_METADATA_TIMEOUT_VALUE = 5000;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataInfo.java", "source2": "org/apache/dubbo/metadata/MetadataInfo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,449 +1,449 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.compiler.support.ClassUtils;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.io.Serializable;\n-import java.lang.reflect.Method;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DOT_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_CHAR_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-public class MetadataInfo implements Serializable {\n-    public static String DEFAULT_REVISION = \"0\";\n-    private String app;\n-    private String revision;\n-    private Map<String, ServiceInfo> services;\n-\n-    // used at runtime\n-    private transient Map<String, String> extendParams;\n-    private transient AtomicBoolean reported = new AtomicBoolean(false);\n-\n-    public MetadataInfo(String app) {\n-        this(app, null, null);\n-    }\n-\n-    public MetadataInfo(String app, String revision, Map<String, ServiceInfo> services) {\n-        this.app = app;\n-        this.revision = revision;\n-        this.services = services == null ? new HashMap<>() : services;\n-        this.extendParams = new HashMap<>();\n-    }\n-\n-    public void addService(ServiceInfo serviceInfo) {\n-        if (serviceInfo == null) {\n-            return;\n-        }\n-        this.services.put(serviceInfo.getMatchKey(), serviceInfo);\n-        markChanged();\n-    }\n-\n-    public void removeService(ServiceInfo serviceInfo) {\n-        if (serviceInfo == null) {\n-            return;\n-        }\n-        this.services.remove(serviceInfo.getMatchKey());\n-        markChanged();\n-    }\n-\n-    public void removeService(String key) {\n-        if (key == null) {\n-            return;\n-        }\n-        this.services.remove(key);\n-        markChanged();\n-    }\n-\n-    public String calAndGetRevision() {\n-        if (revision != null && hasReported()) {\n-            return revision;\n-        }\n-\n-        if (CollectionUtils.isEmptyMap(services)) {\n-            return DEFAULT_REVISION;\n-        }\n-\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(app);\n-        for (Map.Entry<String, ServiceInfo> entry : services.entrySet()) {\n-            sb.append(entry.getValue().toDescString());\n-        }\n-        this.revision = RevisionResolver.calRevision(sb.toString());\n-        return revision;\n-    }\n-\n-    public void setRevision(String revision) {\n-        this.revision = revision;\n-    }\n-\n-    public boolean hasReported() {\n-        return reported.get();\n-    }\n-\n-    public void markReported() {\n-        reported.compareAndSet(false, true);\n-    }\n-\n-    public void markChanged() {\n-        reported.compareAndSet(true, false);\n-    }\n-\n-    public String getApp() {\n-        return app;\n-    }\n-\n-    public void setApp(String app) {\n-        this.app = app;\n-    }\n-\n-    public Map<String, ServiceInfo> getServices() {\n-        return services;\n-    }\n-\n-    public void setServices(Map<String, ServiceInfo> services) {\n-        this.services = services;\n-    }\n-\n-    public ServiceInfo getServiceInfo(String serviceKey) {\n-        return services.get(serviceKey);\n-    }\n-\n-    public Map<String, String> getExtendParams() {\n-        return extendParams;\n-    }\n-\n-    public String getParameter(String key, String serviceKey) {\n-        ServiceInfo serviceInfo = services.get(serviceKey);\n-        if (serviceInfo == null) {\n-            return null;\n-        }\n-        return serviceInfo.getParameter(key);\n-    }\n-\n-    public Map<String, String> getParameters(String serviceKey) {\n-        ServiceInfo serviceInfo = services.get(serviceKey);\n-        if (serviceInfo == null) {\n-            return Collections.emptyMap();\n-        }\n-        return serviceInfo.getAllParams();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"metadata{\" +\n-                \"app='\" + app + \"',\" +\n-                \"revision='\" + revision + \"',\" +\n-                \"services=\" + services +\n-                \"}\";\n-    }\n-\n-    public static class ServiceInfo implements Serializable {\n-        private static ExtensionLoader<MetadataParamsFilter> loader = ExtensionLoader.getExtensionLoader(MetadataParamsFilter.class);\n-        private String name;\n-        private String group;\n-        private String version;\n-        private String protocol;\n-        private String path; // most of the time, path is the same with the interface name.\n-        private Map<String, String> params;\n-\n-        // params configured on consumer side,\n-        private transient Map<String, String> consumerParams;\n-        // cached method params\n-        private transient Map<String, Map<String, String>> methodParams;\n-        private transient Map<String, Map<String, String>> consumerMethodParams;\n-        // cached numbers\n-        private transient Map<String, Number> numbers;\n-        private transient Map<String, Map<String, Number>> methodNumbers;\n-        // service + group + version\n-        private transient String serviceKey;\n-        // service + group + version + protocol\n-        private transient String matchKey;\n-\n-        private transient URL url;\n-\n-        public ServiceInfo() {\n-        }\n-\n-        public ServiceInfo(URL url) {\n-            this(url.getServiceInterface(), url.getParameter(GROUP_KEY), url.getParameter(VERSION_KEY), url.getProtocol(), url.getPath(), null);\n-\n-            this.url = url;\n-            Map<String, String> params = new HashMap<>();\n-            List<MetadataParamsFilter> filters = loader.getActivateExtension(url, \"params-filter\");\n-            for (MetadataParamsFilter filter : filters) {\n-                String[] paramsIncluded = filter.serviceParamsIncluded();\n-                if (ArrayUtils.isNotEmpty(paramsIncluded)) {\n-                    for (String p : paramsIncluded) {\n-                        String value = url.getParameter(p);\n-                        if (StringUtils.isNotEmpty(value) && params.get(p) == null) {\n-                            params.put(p, value);\n-                        }\n-                        String[] methods = url.getParameter(METHODS_KEY, (String[]) null);\n-                        if (methods != null) {\n-                            for (String method : methods) {\n-                                String mValue = url.getMethodParameterStrict(method, p);\n-                                if (StringUtils.isNotEmpty(mValue)) {\n-                                    params.put(method + DOT_SEPARATOR + p, mValue);\n-                                }\n-                            }\n-                        }\n-                    }\n-                }\n-            }\n-            this.params = params;\n-        }\n-\n-        public ServiceInfo(String name, String group, String version, String protocol, String path, Map<String, String> params) {\n-            this.name = name;\n-            this.group = group;\n-            this.version = version;\n-            this.protocol = protocol;\n-            this.path = path;\n-            this.params = params == null ? new HashMap<>() : params;\n-\n-            this.serviceKey = URL.buildKey(name, group, version);\n-            this.matchKey = buildMatchKey();\n-        }\n-\n-        public String getMatchKey() {\n-            if (matchKey != null) {\n-                return matchKey;\n-            }\n-            buildMatchKey();\n-            return matchKey;\n-        }\n-\n-        private String buildMatchKey() {\n-            matchKey = getServiceKey();\n-            if (StringUtils.isNotEmpty(protocol)) {\n-                matchKey = getServiceKey() + GROUP_CHAR_SEPARATOR + protocol;\n-            }\n-            return matchKey;\n-        }\n-\n-        public String getServiceKey() {\n-            if (serviceKey != null) {\n-                return serviceKey;\n-            }\n-            this.serviceKey = URL.buildKey(name, group, version);\n-            return serviceKey;\n-        }\n-\n-        public String getName() {\n-            return name;\n-        }\n-\n-        public void setName(String name) {\n-            this.name = name;\n-        }\n-\n-        public String getGroup() {\n-            return group;\n-        }\n-\n-        public void setGroup(String group) {\n-            this.group = group;\n-        }\n-\n-        public String getVersion() {\n-            return version;\n-        }\n-\n-        public void setVersion(String version) {\n-            this.version = version;\n-        }\n-\n-        public String getPath() {\n-            return path;\n-        }\n-\n-        public void setPath(String path) {\n-            this.path = path;\n-        }\n-\n-        public Map<String, String> getParams() {\n-            if (params == null) {\n-                return Collections.emptyMap();\n-            }\n-            return params;\n-        }\n-\n-        public void setParams(Map<String, String> params) {\n-            this.params = params;\n-        }\n-\n-        public Map<String, String> getAllParams() {\n-            if (consumerParams != null) {\n-                Map<String, String> allParams = new HashMap<>((int) ((params.size() + consumerParams.size()) / 0.75f + 1));\n-                allParams.putAll(params);\n-                allParams.putAll(consumerParams);\n-                return allParams;\n-            }\n-            return params;\n-        }\n-\n-        public String getParameter(String key) {\n-            if (consumerParams != null) {\n-                String value = consumerParams.get(key);\n-                if (value != null) {\n-                    return value;\n-                }\n-            }\n-            return params.get(key);\n-        }\n-\n-        public String getMethodParameter(String method, String key, String defaultValue) {\n-            if (methodParams == null) {\n-                methodParams = URL.toMethodParameters(params);\n-                consumerMethodParams = URL.toMethodParameters(consumerParams);\n-            }\n-\n-            String value = getMethodParameter(method, key, consumerMethodParams);\n-            if (value != null) {\n-                return value;\n-            }\n-            value = getMethodParameter(method, key, methodParams);\n-            return value == null ? defaultValue : value;\n-        }\n-\n-        private String getMethodParameter(String method, String key, Map<String, Map<String, String>> map) {\n-            Map<String, String> keyMap = map.get(method);\n-            String value = null;\n-            if (keyMap != null) {\n-                value = keyMap.get(key);\n-            }\n-            if (StringUtils.isEmpty(value)) {\n-                value = getParameter(key);\n-            }\n-            return value;\n-        }\n-\n-        public boolean hasMethodParameter(String method, String key) {\n-            String value = this.getMethodParameter(method, key, (String) null);\n-            return StringUtils.isNotEmpty(value);\n-        }\n-\n-        public boolean hasMethodParameter(String method) {\n-            if (methodParams == null) {\n-                methodParams = URL.toMethodParameters(params);\n-                consumerMethodParams = URL.toMethodParameters(consumerParams);\n-            }\n-\n-            return consumerMethodParams.containsKey(method) || methodParams.containsKey(method);\n-        }\n-\n-        public String toDescString() {\n-            return this.getMatchKey() + getMethodSignaturesString() + getParams();\n-        }\n-\n-        private String getMethodSignaturesString() {\n-            SortedSet<String> methodStrings = new TreeSet();\n-\n-            Method[] methods = ClassUtils.forName(name).getMethods();\n-            for (Method method : methods) {\n-                methodStrings.add(method.toString());\n-            }\n-            return methodStrings.toString();\n-        }\n-\n-        public void addParameter(String key, String value) {\n-            if (consumerParams != null) {\n-                this.consumerParams.put(key, value);\n-            }\n-        }\n-\n-        public void addParameterIfAbsent(String key, String value) {\n-            if (consumerParams != null) {\n-                this.consumerParams.putIfAbsent(key, value);\n-            }\n-        }\n-\n-        public void addConsumerParams(Map<String, String> params) {\n-            // copy once for one service subscription\n-            if (consumerParams == null) {\n-                consumerParams = new HashMap<>(params);\n-            }\n-        }\n-\n-        public Map<String, Number> getNumbers() {\n-            // concurrent initialization is tolerant\n-            if (numbers == null) {\n-                numbers = new ConcurrentHashMap<>();\n-            }\n-            return numbers;\n-        }\n-\n-        public Map<String, Map<String, Number>> getMethodNumbers() {\n-            if (methodNumbers == null) { // concurrent initialization is tolerant\n-                methodNumbers = new ConcurrentHashMap<>();\n-            }\n-            return methodNumbers;\n-        }\n-\n-        public URL getUrl() {\n-            return url;\n-        }\n-\n-        @Override\n-        public boolean equals(Object obj) {\n-            if (obj == null) {\n-                return false;\n-            }\n-            if (!(obj instanceof ServiceInfo)) {\n-                return false;\n-            }\n-\n-            ServiceInfo serviceInfo = (ServiceInfo) obj;\n-            return this.getMatchKey().equals(serviceInfo.getMatchKey()) && this.getParams().equals(serviceInfo.getParams());\n-        }\n-\n-        @Override\n-        public int hashCode() {\n-            return Objects.hash(getMatchKey(), getParams());\n-        }\n-\n-        @Override\n-        public String toString() {\n-            return \"service{\" +\n-                    \"name='\" + name + \"',\" +\n-                    \"group='\" + group + \"',\" +\n-                    \"version='\" + version + \"',\" +\n-                    \"protocol='\" + protocol + \"',\" +\n-                    \"params=\" + params + \",\" +\n-                    \"consumerParams=\" + consumerParams +\n-                    \"}\";\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.compiler.support.ClassUtils;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.io.Serializable;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DOT_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_CHAR_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+public class MetadataInfo implements Serializable {\r\n+    public static String DEFAULT_REVISION = \"0\";\r\n+    private String app;\r\n+    private String revision;\r\n+    private Map<String, ServiceInfo> services;\r\n+\r\n+    // used at runtime\r\n+    private transient Map<String, String> extendParams;\r\n+    private transient AtomicBoolean reported = new AtomicBoolean(false);\r\n+\r\n+    public MetadataInfo(String app) {\r\n+        this(app, null, null);\r\n+    }\r\n+\r\n+    public MetadataInfo(String app, String revision, Map<String, ServiceInfo> services) {\r\n+        this.app = app;\r\n+        this.revision = revision;\r\n+        this.services = services == null ? new HashMap<>() : services;\r\n+        this.extendParams = new HashMap<>();\r\n+    }\r\n+\r\n+    public void addService(ServiceInfo serviceInfo) {\r\n+        if (serviceInfo == null) {\r\n+            return;\r\n+        }\r\n+        this.services.put(serviceInfo.getMatchKey(), serviceInfo);\r\n+        markChanged();\r\n+    }\r\n+\r\n+    public void removeService(ServiceInfo serviceInfo) {\r\n+        if (serviceInfo == null) {\r\n+            return;\r\n+        }\r\n+        this.services.remove(serviceInfo.getMatchKey());\r\n+        markChanged();\r\n+    }\r\n+\r\n+    public void removeService(String key) {\r\n+        if (key == null) {\r\n+            return;\r\n+        }\r\n+        this.services.remove(key);\r\n+        markChanged();\r\n+    }\r\n+\r\n+    public String calAndGetRevision() {\r\n+        if (revision != null && hasReported()) {\r\n+            return revision;\r\n+        }\r\n+\r\n+        if (CollectionUtils.isEmptyMap(services)) {\r\n+            return DEFAULT_REVISION;\r\n+        }\r\n+\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(app);\r\n+        for (Map.Entry<String, ServiceInfo> entry : services.entrySet()) {\r\n+            sb.append(entry.getValue().toDescString());\r\n+        }\r\n+        this.revision = RevisionResolver.calRevision(sb.toString());\r\n+        return revision;\r\n+    }\r\n+\r\n+    public void setRevision(String revision) {\r\n+        this.revision = revision;\r\n+    }\r\n+\r\n+    public boolean hasReported() {\r\n+        return reported.get();\r\n+    }\r\n+\r\n+    public void markReported() {\r\n+        reported.compareAndSet(false, true);\r\n+    }\r\n+\r\n+    public void markChanged() {\r\n+        reported.compareAndSet(true, false);\r\n+    }\r\n+\r\n+    public String getApp() {\r\n+        return app;\r\n+    }\r\n+\r\n+    public void setApp(String app) {\r\n+        this.app = app;\r\n+    }\r\n+\r\n+    public Map<String, ServiceInfo> getServices() {\r\n+        return services;\r\n+    }\r\n+\r\n+    public void setServices(Map<String, ServiceInfo> services) {\r\n+        this.services = services;\r\n+    }\r\n+\r\n+    public ServiceInfo getServiceInfo(String serviceKey) {\r\n+        return services.get(serviceKey);\r\n+    }\r\n+\r\n+    public Map<String, String> getExtendParams() {\r\n+        return extendParams;\r\n+    }\r\n+\r\n+    public String getParameter(String key, String serviceKey) {\r\n+        ServiceInfo serviceInfo = services.get(serviceKey);\r\n+        if (serviceInfo == null) {\r\n+            return null;\r\n+        }\r\n+        return serviceInfo.getParameter(key);\r\n+    }\r\n+\r\n+    public Map<String, String> getParameters(String serviceKey) {\r\n+        ServiceInfo serviceInfo = services.get(serviceKey);\r\n+        if (serviceInfo == null) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+        return serviceInfo.getAllParams();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"metadata{\" +\r\n+                \"app='\" + app + \"',\" +\r\n+                \"revision='\" + revision + \"',\" +\r\n+                \"services=\" + services +\r\n+                \"}\";\r\n+    }\r\n+\r\n+    public static class ServiceInfo implements Serializable {\r\n+        private static ExtensionLoader<MetadataParamsFilter> loader = ExtensionLoader.getExtensionLoader(MetadataParamsFilter.class);\r\n+        private String name;\r\n+        private String group;\r\n+        private String version;\r\n+        private String protocol;\r\n+        private String path; // most of the time, path is the same with the interface name.\r\n+        private Map<String, String> params;\r\n+\r\n+        // params configured on consumer side,\r\n+        private transient Map<String, String> consumerParams;\r\n+        // cached method params\r\n+        private transient Map<String, Map<String, String>> methodParams;\r\n+        private transient Map<String, Map<String, String>> consumerMethodParams;\r\n+        // cached numbers\r\n+        private transient Map<String, Number> numbers;\r\n+        private transient Map<String, Map<String, Number>> methodNumbers;\r\n+        // service + group + version\r\n+        private transient String serviceKey;\r\n+        // service + group + version + protocol\r\n+        private transient String matchKey;\r\n+\r\n+        private transient URL url;\r\n+\r\n+        public ServiceInfo() {\r\n+        }\r\n+\r\n+        public ServiceInfo(URL url) {\r\n+            this(url.getServiceInterface(), url.getParameter(GROUP_KEY), url.getParameter(VERSION_KEY), url.getProtocol(), url.getPath(), null);\r\n+\r\n+            this.url = url;\r\n+            Map<String, String> params = new HashMap<>();\r\n+            List<MetadataParamsFilter> filters = loader.getActivateExtension(url, \"params-filter\");\r\n+            for (MetadataParamsFilter filter : filters) {\r\n+                String[] paramsIncluded = filter.serviceParamsIncluded();\r\n+                if (ArrayUtils.isNotEmpty(paramsIncluded)) {\r\n+                    for (String p : paramsIncluded) {\r\n+                        String value = url.getParameter(p);\r\n+                        if (StringUtils.isNotEmpty(value) && params.get(p) == null) {\r\n+                            params.put(p, value);\r\n+                        }\r\n+                        String[] methods = url.getParameter(METHODS_KEY, (String[]) null);\r\n+                        if (methods != null) {\r\n+                            for (String method : methods) {\r\n+                                String mValue = url.getMethodParameterStrict(method, p);\r\n+                                if (StringUtils.isNotEmpty(mValue)) {\r\n+                                    params.put(method + DOT_SEPARATOR + p, mValue);\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            this.params = params;\r\n+        }\r\n+\r\n+        public ServiceInfo(String name, String group, String version, String protocol, String path, Map<String, String> params) {\r\n+            this.name = name;\r\n+            this.group = group;\r\n+            this.version = version;\r\n+            this.protocol = protocol;\r\n+            this.path = path;\r\n+            this.params = params == null ? new HashMap<>() : params;\r\n+\r\n+            this.serviceKey = URL.buildKey(name, group, version);\r\n+            this.matchKey = buildMatchKey();\r\n+        }\r\n+\r\n+        public String getMatchKey() {\r\n+            if (matchKey != null) {\r\n+                return matchKey;\r\n+            }\r\n+            buildMatchKey();\r\n+            return matchKey;\r\n+        }\r\n+\r\n+        private String buildMatchKey() {\r\n+            matchKey = getServiceKey();\r\n+            if (StringUtils.isNotEmpty(protocol)) {\r\n+                matchKey = getServiceKey() + GROUP_CHAR_SEPARATOR + protocol;\r\n+            }\r\n+            return matchKey;\r\n+        }\r\n+\r\n+        public String getServiceKey() {\r\n+            if (serviceKey != null) {\r\n+                return serviceKey;\r\n+            }\r\n+            this.serviceKey = URL.buildKey(name, group, version);\r\n+            return serviceKey;\r\n+        }\r\n+\r\n+        public String getName() {\r\n+            return name;\r\n+        }\r\n+\r\n+        public void setName(String name) {\r\n+            this.name = name;\r\n+        }\r\n+\r\n+        public String getGroup() {\r\n+            return group;\r\n+        }\r\n+\r\n+        public void setGroup(String group) {\r\n+            this.group = group;\r\n+        }\r\n+\r\n+        public String getVersion() {\r\n+            return version;\r\n+        }\r\n+\r\n+        public void setVersion(String version) {\r\n+            this.version = version;\r\n+        }\r\n+\r\n+        public String getPath() {\r\n+            return path;\r\n+        }\r\n+\r\n+        public void setPath(String path) {\r\n+            this.path = path;\r\n+        }\r\n+\r\n+        public Map<String, String> getParams() {\r\n+            if (params == null) {\r\n+                return Collections.emptyMap();\r\n+            }\r\n+            return params;\r\n+        }\r\n+\r\n+        public void setParams(Map<String, String> params) {\r\n+            this.params = params;\r\n+        }\r\n+\r\n+        public Map<String, String> getAllParams() {\r\n+            if (consumerParams != null) {\r\n+                Map<String, String> allParams = new HashMap<>((int) ((params.size() + consumerParams.size()) / 0.75f + 1));\r\n+                allParams.putAll(params);\r\n+                allParams.putAll(consumerParams);\r\n+                return allParams;\r\n+            }\r\n+            return params;\r\n+        }\r\n+\r\n+        public String getParameter(String key) {\r\n+            if (consumerParams != null) {\r\n+                String value = consumerParams.get(key);\r\n+                if (value != null) {\r\n+                    return value;\r\n+                }\r\n+            }\r\n+            return params.get(key);\r\n+        }\r\n+\r\n+        public String getMethodParameter(String method, String key, String defaultValue) {\r\n+            if (methodParams == null) {\r\n+                methodParams = URL.toMethodParameters(params);\r\n+                consumerMethodParams = URL.toMethodParameters(consumerParams);\r\n+            }\r\n+\r\n+            String value = getMethodParameter(method, key, consumerMethodParams);\r\n+            if (value != null) {\r\n+                return value;\r\n+            }\r\n+            value = getMethodParameter(method, key, methodParams);\r\n+            return value == null ? defaultValue : value;\r\n+        }\r\n+\r\n+        private String getMethodParameter(String method, String key, Map<String, Map<String, String>> map) {\r\n+            Map<String, String> keyMap = map.get(method);\r\n+            String value = null;\r\n+            if (keyMap != null) {\r\n+                value = keyMap.get(key);\r\n+            }\r\n+            if (StringUtils.isEmpty(value)) {\r\n+                value = getParameter(key);\r\n+            }\r\n+            return value;\r\n+        }\r\n+\r\n+        public boolean hasMethodParameter(String method, String key) {\r\n+            String value = this.getMethodParameter(method, key, (String) null);\r\n+            return StringUtils.isNotEmpty(value);\r\n+        }\r\n+\r\n+        public boolean hasMethodParameter(String method) {\r\n+            if (methodParams == null) {\r\n+                methodParams = URL.toMethodParameters(params);\r\n+                consumerMethodParams = URL.toMethodParameters(consumerParams);\r\n+            }\r\n+\r\n+            return consumerMethodParams.containsKey(method) || methodParams.containsKey(method);\r\n+        }\r\n+\r\n+        public String toDescString() {\r\n+            return this.getMatchKey() + getMethodSignaturesString() + getParams();\r\n+        }\r\n+\r\n+        private String getMethodSignaturesString() {\r\n+            SortedSet<String> methodStrings = new TreeSet();\r\n+\r\n+            Method[] methods = ClassUtils.forName(name).getMethods();\r\n+            for (Method method : methods) {\r\n+                methodStrings.add(method.toString());\r\n+            }\r\n+            return methodStrings.toString();\r\n+        }\r\n+\r\n+        public void addParameter(String key, String value) {\r\n+            if (consumerParams != null) {\r\n+                this.consumerParams.put(key, value);\r\n+            }\r\n+        }\r\n+\r\n+        public void addParameterIfAbsent(String key, String value) {\r\n+            if (consumerParams != null) {\r\n+                this.consumerParams.putIfAbsent(key, value);\r\n+            }\r\n+        }\r\n+\r\n+        public void addConsumerParams(Map<String, String> params) {\r\n+            // copy once for one service subscription\r\n+            if (consumerParams == null) {\r\n+                consumerParams = new HashMap<>(params);\r\n+            }\r\n+        }\r\n+\r\n+        public Map<String, Number> getNumbers() {\r\n+            // concurrent initialization is tolerant\r\n+            if (numbers == null) {\r\n+                numbers = new ConcurrentHashMap<>();\r\n+            }\r\n+            return numbers;\r\n+        }\r\n+\r\n+        public Map<String, Map<String, Number>> getMethodNumbers() {\r\n+            if (methodNumbers == null) { // concurrent initialization is tolerant\r\n+                methodNumbers = new ConcurrentHashMap<>();\r\n+            }\r\n+            return methodNumbers;\r\n+        }\r\n+\r\n+        public URL getUrl() {\r\n+            return url;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean equals(Object obj) {\r\n+            if (obj == null) {\r\n+                return false;\r\n+            }\r\n+            if (!(obj instanceof ServiceInfo)) {\r\n+                return false;\r\n+            }\r\n+\r\n+            ServiceInfo serviceInfo = (ServiceInfo) obj;\r\n+            return this.getMatchKey().equals(serviceInfo.getMatchKey()) && this.getParams().equals(serviceInfo.getParams());\r\n+        }\r\n+\r\n+        @Override\r\n+        public int hashCode() {\r\n+            return Objects.hash(getMatchKey(), getParams());\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return \"service{\" +\r\n+                    \"name='\" + name + \"',\" +\r\n+                    \"group='\" + group + \"',\" +\r\n+                    \"version='\" + version + \"',\" +\r\n+                    \"protocol='\" + protocol + \"',\" +\r\n+                    \"params=\" + params + \",\" +\r\n+                    \"consumerParams=\" + consumerParams +\r\n+                    \"}\";\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataParamsFilter.java", "source2": "org/apache/dubbo/metadata/MetadataParamsFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI\n-public interface MetadataParamsFilter {\n-\n-   /**\n-    * params that need to be sent to metadata center\n-    *\n-    * @return arrays of keys\n-    */\n-   String[] serviceParamsIncluded();\n-\n-   /**\n-    * params that need to be sent to registry center\n-    *\n-    * @return arrays of keys\n-    */\n-   String[] instanceParamsIncluded();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI\r\n+public interface MetadataParamsFilter {\r\n+\r\n+   /**\r\n+    * params that need to be sent to metadata center\r\n+    *\r\n+    * @return arrays of keys\r\n+    */\r\n+   String[] serviceParamsIncluded();\r\n+\r\n+   /**\r\n+    * params that need to be sent to registry center\r\n+    *\r\n+    * @return arrays of keys\r\n+    */\r\n+   String[] instanceParamsIncluded();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataService.java", "source2": "org/apache/dubbo/metadata/MetadataService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,273 +1,273 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-import java.util.stream.StreamSupport;\n-\n-import static java.util.Collections.unmodifiableSortedSet;\n-import static java.util.stream.StreamSupport.stream;\n-import static org.apache.dubbo.common.URL.buildKey;\n-\n-/**\n- * A framework interface of Dubbo Metadata Service defines the contract of Dubbo Services registration and subscription\n- * between Dubbo service providers and its consumers. The implementation will be exported as a normal Dubbo service that\n- * the clients would subscribe, whose version comes from the {@link #version()} method and group gets from\n- * {@link #serviceName()}, that means, The different Dubbo service(application) will export the different\n- * {@link MetadataService} that persists all the exported and subscribed metadata, they are present by\n- * {@link #getExportedURLs()} and {@link #getSubscribedURLs()} respectively. What's more, {@link MetadataService}\n- * also providers the fine-grain methods for the precise queries.\n- *\n- * @see WritableMetadataService\n- * @since 2.7.5\n- */\n-public interface MetadataService {\n-\n-    //FIXME the value is default, it was used by testing temporarily\n-    static final String DEFAULT_EXTENSION = \"default\";\n-\n-    /**\n-     * The value of all service names\n-     */\n-    String ALL_SERVICE_NAMES = \"*\";\n-\n-    /**\n-     * The value of All service instances\n-     */\n-    String ALL_SERVICE_INTERFACES = \"*\";\n-\n-    /**\n-     * The service interface name of {@link MetadataService}\n-     */\n-    String SERVICE_INTERFACE_NAME = MetadataService.class.getName();\n-\n-    /**\n-     * The contract version of {@link MetadataService}, the future update must make sure compatible.\n-     */\n-    String VERSION = \"1.0.0\";\n-\n-    /**\n-     * Gets the current Dubbo Service name\n-     *\n-     * @return non-null\n-     */\n-    String serviceName();\n-\n-    /**\n-     * Gets the version of {@link MetadataService} that always equals {@link #VERSION}\n-     *\n-     * @return non-null\n-     * @see #VERSION\n-     */\n-    default String version() {\n-        return VERSION;\n-    }\n-\n-    /**\n-     * the list of String that presents all Dubbo subscribed {@link URL urls}\n-     *\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    default SortedSet<String> getSubscribedURLs() {\n-        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\n-    }\n-\n-    /**\n-     * Get the {@link SortedSet sorted set} of String that presents all Dubbo exported {@link URL urls}\n-     *\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    default SortedSet<String> getExportedURLs() {\n-        return getExportedURLs(ALL_SERVICE_INTERFACES);\n-    }\n-\n-    /**\n-     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the <code>serviceInterface</code>\n-     *\n-     * @param serviceInterface The class name of Dubbo service interface\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    default SortedSet<String> getExportedURLs(String serviceInterface) {\n-        return getExportedURLs(serviceInterface, null);\n-    }\n-\n-    /**\n-     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the\n-     * <code>serviceInterface</code> and <code>group</code>\n-     *\n-     * @param serviceInterface The class name of Dubbo service interface\n-     * @param group            the Dubbo Service Group (optional)\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    default SortedSet<String> getExportedURLs(String serviceInterface, String group) {\n-        return getExportedURLs(serviceInterface, group, null);\n-    }\n-\n-    /**\n-     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the\n-     * <code>serviceInterface</code>, <code>group</code> and <code>version</code>\n-     *\n-     * @param serviceInterface The class name of Dubbo service interface\n-     * @param group            the Dubbo Service Group (optional)\n-     * @param version          the Dubbo Service Version (optional)\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    default SortedSet<String> getExportedURLs(String serviceInterface, String group, String version) {\n-        return getExportedURLs(serviceInterface, group, version, null);\n-    }\n-\n-    /**\n-     * Get the sorted set of String that presents the specified Dubbo exported {@link URL urls} by the\n-     * <code>serviceInterface</code>, <code>group</code>, <code>version</code> and <code>protocol</code>\n-     *\n-     * @param serviceInterface The class name of Dubbo service interface\n-     * @param group            the Dubbo Service Group (optional)\n-     * @param version          the Dubbo Service Version (optional)\n-     * @param protocol         the Dubbo Service Protocol (optional)\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\n-     * @see #toSortedStrings(Stream)\n-     * @see URL#toFullString()\n-     */\n-    SortedSet<String> getExportedURLs(String serviceInterface, String group, String version, String protocol);\n-\n-    /**\n-     * Interface definition.\n-     *\n-     * @return\n-     */\n-    default String getServiceDefinition(String interfaceName, String version, String group) {\n-        return getServiceDefinition(buildKey(interfaceName, group, version));\n-    }\n-\n-    /**\n-     * Interface definition.\n-     *\n-     * @return\n-     */\n-    String getServiceDefinition(String serviceKey);\n-\n-    MetadataInfo getMetadataInfo(String revision);\n-\n-    Map<String, MetadataInfo> getMetadataInfos();\n-\n-    /**\n-     * Is the {@link URL} for the {@link MetadataService} or not?\n-     *\n-     * @param url {@link URL url}\n-     * @return\n-     */\n-    static boolean isMetadataServiceURL(URL url) {\n-        String serviceInterface = url.getServiceInterface();\n-        return SERVICE_INTERFACE_NAME.equals(serviceInterface);\n-    }\n-\n-    /**\n-     * Convert the multiple {@link URL urls} to a {@link List list} of {@link URL urls}\n-     *\n-     * @param urls the strings presents the {@link URL Dubbo URLs}\n-     * @return non-null\n-     */\n-    static List<URL> toURLs(Iterable<String> urls) {\n-        return stream(urls.spliterator(), false)\n-                .map(URL::valueOf)\n-                .collect(Collectors.toList());\n-    }\n-\n-    /**\n-     * Convert the specified {@link Iterable} of {@link URL URLs} to be the {@link URL#toFullString() strings} presenting\n-     * the {@link URL URLs}\n-     *\n-     * @param iterable {@link Iterable} of {@link URL}\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting\n-     * @see URL#toFullString()\n-     */\n-    static SortedSet<String> toSortedStrings(Iterable<URL> iterable) {\n-        return toSortedStrings(StreamSupport.stream(iterable.spliterator(), false));\n-    }\n-\n-    /**\n-     * Convert the specified {@link Stream} of {@link URL URLs} to be the {@link URL#toFullString() strings} presenting\n-     * the {@link URL URLs}\n-     *\n-     * @param stream {@link Stream} of {@link URL}\n-     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting\n-     * @see URL#toFullString()\n-     */\n-    static SortedSet<String> toSortedStrings(Stream<URL> stream) {\n-        return unmodifiableSortedSet(stream.map(URL::toFullString).collect(TreeSet::new, Set::add, Set::addAll));\n-    }\n-\n-    /**\n-     * Export Metadata in Service Instance of Service Discovery\n-     * <p>\n-     * Used for consumer to get Service Instance Metadata\n-     * if Registry is unsupported with publishing metadata\n-     *\n-     * @param metadata {@link Map} of provider Service Instance Metadata\n-     * @since 3.0\n-     */\n-    default void exportServiceDiscoveryMetadata(String metadata) {\n-        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\n-    }\n-\n-    /**\n-     * Get all Metadata listener from local\n-     * <p>\n-     * Used for consumer to get Service Instance Metadata\n-     * if Registry is unsupported with publishing metadata\n-     *\n-     * @return {@link Map} of {@link MetadataChangeListener}\n-     * @since 3.0\n-     */\n-    default Map<String, MetadataChangeListener> getMetadataChangeListenerMap() {\n-        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\n-    }\n-\n-    /**\n-     * 1. Fetch Metadata in Service Instance of Service Discovery\n-     * 2. Add a metadata change listener\n-     * <p>\n-     * Used for consumer to get Service Instance Metadata\n-     * if Registry is unsupported with publishing metadata\n-     *\n-     * @param consumerId consumerId\n-     * @param listener   {@link MetadataChangeListener} used to notify event\n-     * @return {@link Map} of provider Service Instance Metadata\n-     * @since 3.0\n-     */\n-    default String getAndListenServiceDiscoveryMetadata(String consumerId, MetadataChangeListener listener) {\n-        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+import java.util.stream.StreamSupport;\r\n+\r\n+import static java.util.Collections.unmodifiableSortedSet;\r\n+import static java.util.stream.StreamSupport.stream;\r\n+import static org.apache.dubbo.common.URL.buildKey;\r\n+\r\n+/**\r\n+ * A framework interface of Dubbo Metadata Service defines the contract of Dubbo Services registration and subscription\r\n+ * between Dubbo service providers and its consumers. The implementation will be exported as a normal Dubbo service that\r\n+ * the clients would subscribe, whose version comes from the {@link #version()} method and group gets from\r\n+ * {@link #serviceName()}, that means, The different Dubbo service(application) will export the different\r\n+ * {@link MetadataService} that persists all the exported and subscribed metadata, they are present by\r\n+ * {@link #getExportedURLs()} and {@link #getSubscribedURLs()} respectively. What's more, {@link MetadataService}\r\n+ * also providers the fine-grain methods for the precise queries.\r\n+ *\r\n+ * @see WritableMetadataService\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface MetadataService {\r\n+\r\n+    //FIXME the value is default, it was used by testing temporarily\r\n+    static final String DEFAULT_EXTENSION = \"default\";\r\n+\r\n+    /**\r\n+     * The value of all service names\r\n+     */\r\n+    String ALL_SERVICE_NAMES = \"*\";\r\n+\r\n+    /**\r\n+     * The value of All service instances\r\n+     */\r\n+    String ALL_SERVICE_INTERFACES = \"*\";\r\n+\r\n+    /**\r\n+     * The service interface name of {@link MetadataService}\r\n+     */\r\n+    String SERVICE_INTERFACE_NAME = MetadataService.class.getName();\r\n+\r\n+    /**\r\n+     * The contract version of {@link MetadataService}, the future update must make sure compatible.\r\n+     */\r\n+    String VERSION = \"1.0.0\";\r\n+\r\n+    /**\r\n+     * Gets the current Dubbo Service name\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    String serviceName();\r\n+\r\n+    /**\r\n+     * Gets the version of {@link MetadataService} that always equals {@link #VERSION}\r\n+     *\r\n+     * @return non-null\r\n+     * @see #VERSION\r\n+     */\r\n+    default String version() {\r\n+        return VERSION;\r\n+    }\r\n+\r\n+    /**\r\n+     * the list of String that presents all Dubbo subscribed {@link URL urls}\r\n+     *\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    default SortedSet<String> getSubscribedURLs() {\r\n+        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link SortedSet sorted set} of String that presents all Dubbo exported {@link URL urls}\r\n+     *\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    default SortedSet<String> getExportedURLs() {\r\n+        return getExportedURLs(ALL_SERVICE_INTERFACES);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the <code>serviceInterface</code>\r\n+     *\r\n+     * @param serviceInterface The class name of Dubbo service interface\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    default SortedSet<String> getExportedURLs(String serviceInterface) {\r\n+        return getExportedURLs(serviceInterface, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the\r\n+     * <code>serviceInterface</code> and <code>group</code>\r\n+     *\r\n+     * @param serviceInterface The class name of Dubbo service interface\r\n+     * @param group            the Dubbo Service Group (optional)\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    default SortedSet<String> getExportedURLs(String serviceInterface, String group) {\r\n+        return getExportedURLs(serviceInterface, group, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link SortedSet sorted set} of String that presents the specified Dubbo exported {@link URL urls} by the\r\n+     * <code>serviceInterface</code>, <code>group</code> and <code>version</code>\r\n+     *\r\n+     * @param serviceInterface The class name of Dubbo service interface\r\n+     * @param group            the Dubbo Service Group (optional)\r\n+     * @param version          the Dubbo Service Version (optional)\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    default SortedSet<String> getExportedURLs(String serviceInterface, String group, String version) {\r\n+        return getExportedURLs(serviceInterface, group, version, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the sorted set of String that presents the specified Dubbo exported {@link URL urls} by the\r\n+     * <code>serviceInterface</code>, <code>group</code>, <code>version</code> and <code>protocol</code>\r\n+     *\r\n+     * @param serviceInterface The class name of Dubbo service interface\r\n+     * @param group            the Dubbo Service Group (optional)\r\n+     * @param version          the Dubbo Service Version (optional)\r\n+     * @param protocol         the Dubbo Service Protocol (optional)\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting the {@link URL URLs}\r\n+     * @see #toSortedStrings(Stream)\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    SortedSet<String> getExportedURLs(String serviceInterface, String group, String version, String protocol);\r\n+\r\n+    /**\r\n+     * Interface definition.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    default String getServiceDefinition(String interfaceName, String version, String group) {\r\n+        return getServiceDefinition(buildKey(interfaceName, group, version));\r\n+    }\r\n+\r\n+    /**\r\n+     * Interface definition.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    String getServiceDefinition(String serviceKey);\r\n+\r\n+    MetadataInfo getMetadataInfo(String revision);\r\n+\r\n+    Map<String, MetadataInfo> getMetadataInfos();\r\n+\r\n+    /**\r\n+     * Is the {@link URL} for the {@link MetadataService} or not?\r\n+     *\r\n+     * @param url {@link URL url}\r\n+     * @return\r\n+     */\r\n+    static boolean isMetadataServiceURL(URL url) {\r\n+        String serviceInterface = url.getServiceInterface();\r\n+        return SERVICE_INTERFACE_NAME.equals(serviceInterface);\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the multiple {@link URL urls} to a {@link List list} of {@link URL urls}\r\n+     *\r\n+     * @param urls the strings presents the {@link URL Dubbo URLs}\r\n+     * @return non-null\r\n+     */\r\n+    static List<URL> toURLs(Iterable<String> urls) {\r\n+        return stream(urls.spliterator(), false)\r\n+                .map(URL::valueOf)\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the specified {@link Iterable} of {@link URL URLs} to be the {@link URL#toFullString() strings} presenting\r\n+     * the {@link URL URLs}\r\n+     *\r\n+     * @param iterable {@link Iterable} of {@link URL}\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    static SortedSet<String> toSortedStrings(Iterable<URL> iterable) {\r\n+        return toSortedStrings(StreamSupport.stream(iterable.spliterator(), false));\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the specified {@link Stream} of {@link URL URLs} to be the {@link URL#toFullString() strings} presenting\r\n+     * the {@link URL URLs}\r\n+     *\r\n+     * @param stream {@link Stream} of {@link URL}\r\n+     * @return the non-null read-only {@link SortedSet sorted set} of {@link URL#toFullString() strings} presenting\r\n+     * @see URL#toFullString()\r\n+     */\r\n+    static SortedSet<String> toSortedStrings(Stream<URL> stream) {\r\n+        return unmodifiableSortedSet(stream.map(URL::toFullString).collect(TreeSet::new, Set::add, Set::addAll));\r\n+    }\r\n+\r\n+    /**\r\n+     * Export Metadata in Service Instance of Service Discovery\r\n+     * <p>\r\n+     * Used for consumer to get Service Instance Metadata\r\n+     * if Registry is unsupported with publishing metadata\r\n+     *\r\n+     * @param metadata {@link Map} of provider Service Instance Metadata\r\n+     * @since 3.0\r\n+     */\r\n+    default void exportServiceDiscoveryMetadata(String metadata) {\r\n+        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all Metadata listener from local\r\n+     * <p>\r\n+     * Used for consumer to get Service Instance Metadata\r\n+     * if Registry is unsupported with publishing metadata\r\n+     *\r\n+     * @return {@link Map} of {@link MetadataChangeListener}\r\n+     * @since 3.0\r\n+     */\r\n+    default Map<String, MetadataChangeListener> getMetadataChangeListenerMap() {\r\n+        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\r\n+    }\r\n+\r\n+    /**\r\n+     * 1. Fetch Metadata in Service Instance of Service Discovery\r\n+     * 2. Add a metadata change listener\r\n+     * <p>\r\n+     * Used for consumer to get Service Instance Metadata\r\n+     * if Registry is unsupported with publishing metadata\r\n+     *\r\n+     * @param consumerId consumerId\r\n+     * @param listener   {@link MetadataChangeListener} used to notify event\r\n+     * @return {@link Map} of provider Service Instance Metadata\r\n+     * @since 3.0\r\n+     */\r\n+    default String getAndListenServiceDiscoveryMetadata(String consumerId, MetadataChangeListener listener) {\r\n+        throw new UnsupportedOperationException(\"This operation is not supported for consumer.\");\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataServiceExporter.java", "source2": "org/apache/dubbo/metadata/MetadataServiceExporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * The exporter of {@link MetadataService}\n- *\n- * @see MetadataService\n- * @see #export()\n- * @see #unexport()\n- * @since 2.7.5\n- */\n-@SPI(DEFAULT_METADATA_STORAGE_TYPE)\n-public interface MetadataServiceExporter extends Prioritized {\n-\n-    /**\n-     * Exports the {@link MetadataService} as a Dubbo service\n-     *\n-     * @return {@link MetadataServiceExporter itself}\n-     */\n-    MetadataServiceExporter export();\n-\n-    /**\n-     * Unexports the {@link MetadataService}\n-     *\n-     * @return {@link MetadataServiceExporter itself}\n-     */\n-    MetadataServiceExporter unexport();\n-\n-    /**\n-     * Get the {@link URL URLs} that were exported\n-     *\n-     * @return non-null\n-     */\n-    List<URL> getExportedURLs();\n-\n-    /**\n-     * {@link MetadataService} is export or not\n-     *\n-     * @return if {@link #export()} was executed, return <code>true</code>, or <code>false</code>\n-     */\n-    boolean isExported();\n-\n-    /**\n-     * Does current implementation support the specified metadata type?\n-     *\n-     * @param metadataType the specified metadata type\n-     * @return If supports, return <code>true</code>, or <code>false</code>\n-     * @since 2.7.8\n-     */\n-    default boolean supports(String metadataType) {\n-        return true;\n-    }\n-\n-    /**\n-     * Get the extension of {@link MetadataServiceExporter} by the type.\n-     * If not found, return the default implementation\n-     *\n-     * @param metadataType the metadata type\n-     * @return non-null\n-     * @since 2.7.8\n-     */\n-    static MetadataServiceExporter getExtension(String metadataType) {\n-        return getExtensionLoader(MetadataServiceExporter.class).getOrDefaultExtension(metadataType);\n-    }\n-\n-    /**\n-     * Get the default extension of {@link MetadataServiceExporter}\n-     *\n-     * @return non-null\n-     * @since 2.7.8\n-     */\n-    static MetadataServiceExporter getDefaultExtension() {\n-        return getExtension(DEFAULT_METADATA_STORAGE_TYPE);\n-    }\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * The exporter of {@link MetadataService}\r\n+ *\r\n+ * @see MetadataService\r\n+ * @see #export()\r\n+ * @see #unexport()\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(DEFAULT_METADATA_STORAGE_TYPE)\r\n+public interface MetadataServiceExporter extends Prioritized {\r\n+\r\n+    /**\r\n+     * Exports the {@link MetadataService} as a Dubbo service\r\n+     *\r\n+     * @return {@link MetadataServiceExporter itself}\r\n+     */\r\n+    MetadataServiceExporter export();\r\n+\r\n+    /**\r\n+     * Unexports the {@link MetadataService}\r\n+     *\r\n+     * @return {@link MetadataServiceExporter itself}\r\n+     */\r\n+    MetadataServiceExporter unexport();\r\n+\r\n+    /**\r\n+     * Get the {@link URL URLs} that were exported\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    List<URL> getExportedURLs();\r\n+\r\n+    /**\r\n+     * {@link MetadataService} is export or not\r\n+     *\r\n+     * @return if {@link #export()} was executed, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean isExported();\r\n+\r\n+    /**\r\n+     * Does current implementation support the specified metadata type?\r\n+     *\r\n+     * @param metadataType the specified metadata type\r\n+     * @return If supports, return <code>true</code>, or <code>false</code>\r\n+     * @since 2.7.8\r\n+     */\r\n+    default boolean supports(String metadataType) {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the extension of {@link MetadataServiceExporter} by the type.\r\n+     * If not found, return the default implementation\r\n+     *\r\n+     * @param metadataType the metadata type\r\n+     * @return non-null\r\n+     * @since 2.7.8\r\n+     */\r\n+    static MetadataServiceExporter getExtension(String metadataType) {\r\n+        return getExtensionLoader(MetadataServiceExporter.class).getOrDefaultExtension(metadataType);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the default extension of {@link MetadataServiceExporter}\r\n+     *\r\n+     * @return non-null\r\n+     * @since 2.7.8\r\n+     */\r\n+    static MetadataServiceExporter getDefaultExtension() {\r\n+        return getExtension(DEFAULT_METADATA_STORAGE_TYPE);\r\n+    }\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/metadata/MetadataServiceType.java", "source2": "org/apache/dubbo/metadata/MetadataServiceType.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMPOSITE_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\n-\n-/**\n- * The type enumerations of {@link MetadataService}\n- *\n- * @see MetadataService\n- * @since 2.7.8\n- */\n-public enum MetadataServiceType {\n-\n-    /**\n-     * The default type of {@link MetadataService}\n-     */\n-    DEFAULT(DEFAULT_METADATA_STORAGE_TYPE),\n-\n-    /**\n-     * The remote type of {@link MetadataService}\n-     */\n-    REMOTE(REMOTE_METADATA_STORAGE_TYPE),\n-\n-    /**\n-     * The composite type of {@link MetadataService}\n-     */\n-    COMPOSITE(COMPOSITE_METADATA_STORAGE_TYPE);\n-\n-    /**\n-     * The {@link String} value of type\n-     */\n-    private final String value;\n-\n-    MetadataServiceType(String value) {\n-        this.value = value;\n-    }\n-\n-    public String getValue() {\n-        return value;\n-    }\n-\n-    public static MetadataServiceType getOrDefault(String value) {\n-        MetadataServiceType targetType = null;\n-        for (MetadataServiceType type : values()) {\n-            if (type.getValue().equals(value)) {\n-                targetType = type;\n-                break;\n-            }\n-        }\n-        if (targetType == null) {\n-            targetType = DEFAULT;\n-        }\n-        return targetType;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMPOSITE_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\r\n+\r\n+/**\r\n+ * The type enumerations of {@link MetadataService}\r\n+ *\r\n+ * @see MetadataService\r\n+ * @since 2.7.8\r\n+ */\r\n+public enum MetadataServiceType {\r\n+\r\n+    /**\r\n+     * The default type of {@link MetadataService}\r\n+     */\r\n+    DEFAULT(DEFAULT_METADATA_STORAGE_TYPE),\r\n+\r\n+    /**\r\n+     * The remote type of {@link MetadataService}\r\n+     */\r\n+    REMOTE(REMOTE_METADATA_STORAGE_TYPE),\r\n+\r\n+    /**\r\n+     * The composite type of {@link MetadataService}\r\n+     */\r\n+    COMPOSITE(COMPOSITE_METADATA_STORAGE_TYPE);\r\n+\r\n+    /**\r\n+     * The {@link String} value of type\r\n+     */\r\n+    private final String value;\r\n+\r\n+    MetadataServiceType(String value) {\r\n+        this.value = value;\r\n+    }\r\n+\r\n+    public String getValue() {\r\n+        return value;\r\n+    }\r\n+\r\n+    public static MetadataServiceType getOrDefault(String value) {\r\n+        MetadataServiceType targetType = null;\r\n+        for (MetadataServiceType type : values()) {\r\n+            if (type.getValue().equals(value)) {\r\n+                targetType = type;\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (targetType == null) {\r\n+            targetType = DEFAULT;\r\n+        }\r\n+        return targetType;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/RevisionResolver.java", "source2": "org/apache/dubbo/metadata/RevisionResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import java.security.MessageDigest;\n-import java.security.NoSuchAlgorithmException;\n-\n-import static java.nio.charset.StandardCharsets.UTF_8;\n-\n-public class RevisionResolver {\n-    private static final Logger logger = LoggerFactory.getLogger(RevisionResolver.class);\n-    private static char hexDigits[] = {\n-            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'\n-    };\n-\n-    private static MessageDigest mdInst;\n-\n-    static {\n-        try {\n-            mdInst = MessageDigest.getInstance(\"MD5\");\n-        } catch (NoSuchAlgorithmException e) {\n-            logger.error(\"Failed to calculate metadata revision\", e);\n-        }\n-    }\n-\n-    public static String calRevision(String metadata) {\n-        mdInst.update(metadata.getBytes(UTF_8));\n-        byte[] md5 = mdInst.digest();\n-\n-        int j = md5.length;\n-        char str[] = new char[j * 2];\n-        int k = 0;\n-        for (int i = 0; i < j; i++) {\n-            byte byte0 = md5[i];\n-            str[k++] = hexDigits[byte0 >>> 4 & 0xf];\n-            str[k++] = hexDigits[byte0 & 0xf];\n-        }\n-        return new String(str);\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import java.security.MessageDigest;\r\n+import java.security.NoSuchAlgorithmException;\r\n+\r\n+import static java.nio.charset.StandardCharsets.UTF_8;\r\n+\r\n+public class RevisionResolver {\r\n+    private static final Logger logger = LoggerFactory.getLogger(RevisionResolver.class);\r\n+    private static char hexDigits[] = {\r\n+            '0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'\r\n+    };\r\n+\r\n+    private static MessageDigest mdInst;\r\n+\r\n+    static {\r\n+        try {\r\n+            mdInst = MessageDigest.getInstance(\"MD5\");\r\n+        } catch (NoSuchAlgorithmException e) {\r\n+            logger.error(\"Failed to calculate metadata revision\", e);\r\n+        }\r\n+    }\r\n+\r\n+    public static String calRevision(String metadata) {\r\n+        mdInst.update(metadata.getBytes(UTF_8));\r\n+        byte[] md5 = mdInst.digest();\r\n+\r\n+        int j = md5.length;\r\n+        char str[] = new char[j * 2];\r\n+        int k = 0;\r\n+        for (int i = 0; i < j; i++) {\r\n+            byte byte0 = md5[i];\r\n+            str[k++] = hexDigits[byte0 >>> 4 & 0xf];\r\n+            str[k++] = hexDigits[byte0 & 0xf];\r\n+        }\r\n+        return new String(str);\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/ServiceNameMapping.java", "source2": "org/apache/dubbo/metadata/ServiceNameMapping.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_MAPPING_TYPE;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.utils.StringUtils.SLASH;\n-import static org.apache.dubbo.metadata.DynamicConfigurationServiceNameMapping.DEFAULT_MAPPING_GROUP;\n-\n-/**\n- * The interface for Dubbo service name Mapping\n- *\n- * @since 2.7.5\n- */\n-@SPI(\"config\")\n-public interface ServiceNameMapping {\n-\n-    /**\n-     * Map the specified Dubbo service interface, group, version and protocol to current Dubbo service name\n-     */\n-    void map(URL url);\n-\n-    /**\n-     * Get the service names from the specified Dubbo service interface, group, version and protocol\n-     *\n-     * @return\n-     */\n-    Set<String> getAndListen(URL url, MappingListener mappingListener);\n-\n-    /**\n-     * Get the default extension of {@link ServiceNameMapping}\n-     *\n-     * @return non-null {@link ServiceNameMapping}\n-     * @see DynamicConfigurationServiceNameMapping\n-     */\n-    static ServiceNameMapping getDefaultExtension() {\n-        return getExtensionLoader(ServiceNameMapping.class).getDefaultExtension();\n-    }\n-\n-    static ServiceNameMapping getExtension(String name) {\n-        return getExtensionLoader(ServiceNameMapping.class).getExtension(name == null ? CONFIG_MAPPING_TYPE : name);\n-    }\n-\n-    static String buildGroup(String serviceInterface, String group, String version, String protocol) {\n-        //        the issue : https://github.com/apache/dubbo/issues/4671\n-        //        StringBuilder groupBuilder = new StringBuilder(serviceInterface)\n-        //                .append(KEY_SEPARATOR).append(defaultString(group))\n-        //                .append(KEY_SEPARATOR).append(defaultString(version))\n-        //                .append(KEY_SEPARATOR).append(defaultString(protocol));\n-        //        return groupBuilder.toString();\n-        return DEFAULT_MAPPING_GROUP + SLASH + serviceInterface;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_MAPPING_TYPE;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.utils.StringUtils.SLASH;\r\n+import static org.apache.dubbo.metadata.DynamicConfigurationServiceNameMapping.DEFAULT_MAPPING_GROUP;\r\n+\r\n+/**\r\n+ * The interface for Dubbo service name Mapping\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"config\")\r\n+public interface ServiceNameMapping {\r\n+\r\n+    /**\r\n+     * Map the specified Dubbo service interface, group, version and protocol to current Dubbo service name\r\n+     */\r\n+    void map(URL url);\r\n+\r\n+    /**\r\n+     * Get the service names from the specified Dubbo service interface, group, version and protocol\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Set<String> getAndListen(URL url, MappingListener mappingListener);\r\n+\r\n+    /**\r\n+     * Get the default extension of {@link ServiceNameMapping}\r\n+     *\r\n+     * @return non-null {@link ServiceNameMapping}\r\n+     * @see DynamicConfigurationServiceNameMapping\r\n+     */\r\n+    static ServiceNameMapping getDefaultExtension() {\r\n+        return getExtensionLoader(ServiceNameMapping.class).getDefaultExtension();\r\n+    }\r\n+\r\n+    static ServiceNameMapping getExtension(String name) {\r\n+        return getExtensionLoader(ServiceNameMapping.class).getExtension(name == null ? CONFIG_MAPPING_TYPE : name);\r\n+    }\r\n+\r\n+    static String buildGroup(String serviceInterface, String group, String version, String protocol) {\r\n+        //        the issue : https://github.com/apache/dubbo/issues/4671\r\n+        //        StringBuilder groupBuilder = new StringBuilder(serviceInterface)\r\n+        //                .append(KEY_SEPARATOR).append(defaultString(group))\r\n+        //                .append(KEY_SEPARATOR).append(defaultString(version))\r\n+        //                .append(KEY_SEPARATOR).append(defaultString(protocol));\r\n+        //        return groupBuilder.toString();\r\n+        return DEFAULT_MAPPING_GROUP + SLASH + serviceInterface;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/WritableMetadataService.java", "source2": "org/apache/dubbo/metadata/WritableMetadataService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,87 +1,87 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * Local {@link MetadataService} that extends {@link MetadataService} and provides the modification, which is used for\n- * Dubbo's consumers and providers.\n- *\n- * @since 2.7.5\n- */\n-@SPI(\"default\")\n-public interface WritableMetadataService extends MetadataService {\n-    /**\n-     * Gets the current Dubbo Service name\n-     *\n-     * @return non-null\n-     */\n-    @Override\n-    default String serviceName() {\n-        return ApplicationModel.getApplication();\n-    }\n-\n-    /**\n-     * Exports a {@link URL}\n-     *\n-     * @param url a {@link URL}\n-     * @return If success , return <code>true</code>\n-     */\n-    boolean exportURL(URL url);\n-\n-    /**\n-     * Unexports a {@link URL}\n-     *\n-     * @param url a {@link URL}\n-     * @return If success , return <code>true</code>\n-     */\n-    boolean unexportURL(URL url);\n-\n-    /**\n-     * Subscribes a {@link URL}\n-     *\n-     * @param url a {@link URL}\n-     * @return If success , return <code>true</code>\n-     */\n-    boolean subscribeURL(URL url);\n-\n-    /**\n-     * Unsubscribes a {@link URL}\n-     *\n-     * @param url a {@link URL}\n-     * @return If success , return <code>true</code>\n-     */\n-    boolean unsubscribeURL(URL url);\n-\n-    void publishServiceDefinition(URL providerUrl);\n-\n-\n-    /**\n-     * Get {@link ExtensionLoader#getDefaultExtension() the defautl extension} of {@link WritableMetadataService}\n-     *\n-     * @return non-null\n-     */\n-    static WritableMetadataService getDefaultExtension() {\n-        return getExtensionLoader(WritableMetadataService.class).getDefaultExtension();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * Local {@link MetadataService} that extends {@link MetadataService} and provides the modification, which is used for\r\n+ * Dubbo's consumers and providers.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"default\")\r\n+public interface WritableMetadataService extends MetadataService {\r\n+    /**\r\n+     * Gets the current Dubbo Service name\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    @Override\r\n+    default String serviceName() {\r\n+        return ApplicationModel.getApplication();\r\n+    }\r\n+\r\n+    /**\r\n+     * Exports a {@link URL}\r\n+     *\r\n+     * @param url a {@link URL}\r\n+     * @return If success , return <code>true</code>\r\n+     */\r\n+    boolean exportURL(URL url);\r\n+\r\n+    /**\r\n+     * Unexports a {@link URL}\r\n+     *\r\n+     * @param url a {@link URL}\r\n+     * @return If success , return <code>true</code>\r\n+     */\r\n+    boolean unexportURL(URL url);\r\n+\r\n+    /**\r\n+     * Subscribes a {@link URL}\r\n+     *\r\n+     * @param url a {@link URL}\r\n+     * @return If success , return <code>true</code>\r\n+     */\r\n+    boolean subscribeURL(URL url);\r\n+\r\n+    /**\r\n+     * Unsubscribes a {@link URL}\r\n+     *\r\n+     * @param url a {@link URL}\r\n+     * @return If success , return <code>true</code>\r\n+     */\r\n+    boolean unsubscribeURL(URL url);\r\n+\r\n+    void publishServiceDefinition(URL providerUrl);\r\n+\r\n+\r\n+    /**\r\n+     * Get {@link ExtensionLoader#getDefaultExtension() the defautl extension} of {@link WritableMetadataService}\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    static WritableMetadataService getDefaultExtension() {\r\n+        return getExtensionLoader(WritableMetadataService.class).getDefaultExtension();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/MethodDefinitionBuilder.java", "source2": "org/apache/dubbo/metadata/definition/MethodDefinitionBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,78 +1,78 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition;\n-\n-import org.apache.dubbo.metadata.definition.model.MethodDefinition;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * {@link MethodDefinition} Builder based on Java Reflection\n- *\n- * @since 2.7.6\n- */\n-public class MethodDefinitionBuilder {\n-\n-    private final TypeDefinitionBuilder builder;\n-\n-    public MethodDefinitionBuilder(TypeDefinitionBuilder builder) {\n-        this.builder = builder;\n-    }\n-\n-    public MethodDefinitionBuilder() {\n-        this.builder = new TypeDefinitionBuilder();\n-    }\n-\n-    /**\n-     * Build the instance of {@link MethodDefinition}\n-     *\n-     * @param method {@link Method}\n-     * @return non-null\n-     */\n-    public MethodDefinition build(Method method) {\n-\n-        MethodDefinition md = new MethodDefinition();\n-        md.setName(method.getName());\n-\n-        // Process the parameters\n-        Class<?>[] paramTypes = method.getParameterTypes();\n-        Type[] genericParamTypes = method.getGenericParameterTypes();\n-\n-        int paramSize = paramTypes.length;\n-        String[] parameterTypes = new String[paramSize];\n-        List<TypeDefinition> parameters = new ArrayList<>(paramSize);\n-        for (int i = 0; i < paramSize; i++) {\n-            TypeDefinition parameter = builder.build(genericParamTypes[i], paramTypes[i]);\n-            parameterTypes[i] = parameter.getType();\n-            parameters.add(parameter);\n-        }\n-\n-        md.setParameterTypes(parameterTypes);\n-        md.setParameters(parameters);\n-\n-        // Process return type.\n-        TypeDefinition td = builder.build(method.getGenericReturnType(), method.getReturnType());\n-        md.setReturnType(td.getType());\n-\n-        return md;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition;\r\n+\r\n+import org.apache.dubbo.metadata.definition.model.MethodDefinition;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * {@link MethodDefinition} Builder based on Java Reflection\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class MethodDefinitionBuilder {\r\n+\r\n+    private final TypeDefinitionBuilder builder;\r\n+\r\n+    public MethodDefinitionBuilder(TypeDefinitionBuilder builder) {\r\n+        this.builder = builder;\r\n+    }\r\n+\r\n+    public MethodDefinitionBuilder() {\r\n+        this.builder = new TypeDefinitionBuilder();\r\n+    }\r\n+\r\n+    /**\r\n+     * Build the instance of {@link MethodDefinition}\r\n+     *\r\n+     * @param method {@link Method}\r\n+     * @return non-null\r\n+     */\r\n+    public MethodDefinition build(Method method) {\r\n+\r\n+        MethodDefinition md = new MethodDefinition();\r\n+        md.setName(method.getName());\r\n+\r\n+        // Process the parameters\r\n+        Class<?>[] paramTypes = method.getParameterTypes();\r\n+        Type[] genericParamTypes = method.getGenericParameterTypes();\r\n+\r\n+        int paramSize = paramTypes.length;\r\n+        String[] parameterTypes = new String[paramSize];\r\n+        List<TypeDefinition> parameters = new ArrayList<>(paramSize);\r\n+        for (int i = 0; i < paramSize; i++) {\r\n+            TypeDefinition parameter = builder.build(genericParamTypes[i], paramTypes[i]);\r\n+            parameterTypes[i] = parameter.getType();\r\n+            parameters.add(parameter);\r\n+        }\r\n+\r\n+        md.setParameterTypes(parameterTypes);\r\n+        md.setParameters(parameters);\r\n+\r\n+        // Process return type.\r\n+        TypeDefinition td = builder.build(method.getGenericReturnType(), method.getReturnType());\r\n+        md.setReturnType(td.getType());\r\n+\r\n+        return md;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java", "source2": "org/apache/dubbo/metadata/definition/ServiceDefinitionBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition;\n-\n-import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\n-import org.apache.dubbo.metadata.definition.model.MethodDefinition;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-import org.apache.dubbo.metadata.definition.util.ClassUtils;\n-\n-import com.google.gson.Gson;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.List;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-public final class ServiceDefinitionBuilder {\n-\n-    /**\n-     * Describe a Java interface in {@link ServiceDefinition}.\n-     *\n-     * @return Service description\n-     */\n-    public static ServiceDefinition build(final Class<?> interfaceClass) {\n-        ServiceDefinition sd = new ServiceDefinition();\n-        build(sd, interfaceClass);\n-        return sd;\n-    }\n-\n-    public static FullServiceDefinition buildFullDefinition(final Class<?> interfaceClass) {\n-        FullServiceDefinition sd = new FullServiceDefinition();\n-        build(sd, interfaceClass);\n-        return sd;\n-    }\n-\n-    public static FullServiceDefinition buildFullDefinition(final Class<?> interfaceClass, Map<String, String> params) {\n-        FullServiceDefinition sd = new FullServiceDefinition();\n-        build(sd, interfaceClass);\n-        sd.setParameters(params);\n-        return sd;\n-    }\n-\n-    public static <T extends ServiceDefinition> void build(T sd, final Class<?> interfaceClass) {\n-        sd.setCanonicalName(interfaceClass.getCanonicalName());\n-        sd.setCodeSource(ClassUtils.getCodeSource(interfaceClass));\n-\n-        TypeDefinitionBuilder builder = new TypeDefinitionBuilder();\n-        List<Method> methods = ClassUtils.getPublicNonStaticMethods(interfaceClass);\n-        for (Method method : methods) {\n-            MethodDefinition md = new MethodDefinition();\n-            md.setName(method.getName());\n-\n-            // Process parameter types.\n-            Class<?>[] paramTypes = method.getParameterTypes();\n-            Type[] genericParamTypes = method.getGenericParameterTypes();\n-\n-            String[] parameterTypes = new String[paramTypes.length];\n-            for (int i = 0; i < paramTypes.length; i++) {\n-                TypeDefinition td = builder.build(genericParamTypes[i], paramTypes[i]);\n-                parameterTypes[i] = td.getType();\n-            }\n-            md.setParameterTypes(parameterTypes);\n-\n-            // Process return type.\n-            TypeDefinition td = builder.build(method.getGenericReturnType(), method.getReturnType());\n-            md.setReturnType(td.getType());\n-\n-            sd.getMethods().add(md);\n-        }\n-\n-        sd.setTypes(builder.getTypeDefinitions());\n-    }\n-\n-    /**\n-     * Describe a Java interface in Json schema.\n-     *\n-     * @return Service description\n-     */\n-    public static String schema(final Class<?> clazz) {\n-        ServiceDefinition sd = build(clazz);\n-        Gson gson = new Gson();\n-        return gson.toJson(sd);\n-    }\n-\n-    private ServiceDefinitionBuilder() {\n-    }\n-}\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition;\r\n+\r\n+import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\r\n+import org.apache.dubbo.metadata.definition.model.MethodDefinition;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+import org.apache.dubbo.metadata.definition.util.ClassUtils;\r\n+\r\n+import com.google.gson.Gson;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public final class ServiceDefinitionBuilder {\r\n+\r\n+    /**\r\n+     * Describe a Java interface in {@link ServiceDefinition}.\r\n+     *\r\n+     * @return Service description\r\n+     */\r\n+    public static ServiceDefinition build(final Class<?> interfaceClass) {\r\n+        ServiceDefinition sd = new ServiceDefinition();\r\n+        build(sd, interfaceClass);\r\n+        return sd;\r\n+    }\r\n+\r\n+    public static FullServiceDefinition buildFullDefinition(final Class<?> interfaceClass) {\r\n+        FullServiceDefinition sd = new FullServiceDefinition();\r\n+        build(sd, interfaceClass);\r\n+        return sd;\r\n+    }\r\n+\r\n+    public static FullServiceDefinition buildFullDefinition(final Class<?> interfaceClass, Map<String, String> params) {\r\n+        FullServiceDefinition sd = new FullServiceDefinition();\r\n+        build(sd, interfaceClass);\r\n+        sd.setParameters(params);\r\n+        return sd;\r\n+    }\r\n+\r\n+    public static <T extends ServiceDefinition> void build(T sd, final Class<?> interfaceClass) {\r\n+        sd.setCanonicalName(interfaceClass.getCanonicalName());\r\n+        sd.setCodeSource(ClassUtils.getCodeSource(interfaceClass));\r\n+\r\n+        TypeDefinitionBuilder builder = new TypeDefinitionBuilder();\r\n+        List<Method> methods = ClassUtils.getPublicNonStaticMethods(interfaceClass);\r\n+        for (Method method : methods) {\r\n+            MethodDefinition md = new MethodDefinition();\r\n+            md.setName(method.getName());\r\n+\r\n+            // Process parameter types.\r\n+            Class<?>[] paramTypes = method.getParameterTypes();\r\n+            Type[] genericParamTypes = method.getGenericParameterTypes();\r\n+\r\n+            String[] parameterTypes = new String[paramTypes.length];\r\n+            for (int i = 0; i < paramTypes.length; i++) {\r\n+                TypeDefinition td = builder.build(genericParamTypes[i], paramTypes[i]);\r\n+                parameterTypes[i] = td.getType();\r\n+            }\r\n+            md.setParameterTypes(parameterTypes);\r\n+\r\n+            // Process return type.\r\n+            TypeDefinition td = builder.build(method.getGenericReturnType(), method.getReturnType());\r\n+            md.setReturnType(td.getType());\r\n+\r\n+            sd.getMethods().add(md);\r\n+        }\r\n+\r\n+        sd.setTypes(builder.getTypeDefinitions());\r\n+    }\r\n+\r\n+    /**\r\n+     * Describe a Java interface in Json schema.\r\n+     *\r\n+     * @return Service description\r\n+     */\r\n+    public static String schema(final Class<?> clazz) {\r\n+        ServiceDefinition sd = build(clazz);\r\n+        Gson gson = new Gson();\r\n+        return gson.toJson(sd);\r\n+    }\r\n+\r\n+    private ServiceDefinitionBuilder() {\r\n+    }\r\n+}\r\n+\r\n+\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java", "source2": "org/apache/dubbo/metadata/definition/TypeDefinitionBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder;\n-import org.apache.dubbo.metadata.definition.builder.TypeBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.Type;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.utils.ClassUtils.isSimpleType;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class TypeDefinitionBuilder {\n-    private static final Logger logger = LoggerFactory.getLogger(TypeDefinitionBuilder.class);\n-    static final List<TypeBuilder> BUILDERS;\n-\n-    static {\n-        ExtensionLoader<TypeBuilder> extensionLoader = ExtensionLoader.getExtensionLoader(TypeBuilder.class);\n-        Set<TypeBuilder> tbs = extensionLoader.getSupportedExtensionInstances();\n-        BUILDERS = new ArrayList<>(tbs);\n-    }\n-\n-    public static TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        TypeBuilder builder = getGenericTypeBuilder(type, clazz);\n-        TypeDefinition td;\n-        if (builder != null) {\n-            td = builder.build(type, clazz, typeCache);\n-            td.setTypeBuilderName(builder.getClass().getName());\n-        } else {\n-            td = DefaultTypeBuilder.build(clazz, typeCache);\n-            td.setTypeBuilderName(DefaultTypeBuilder.class.getName());\n-        }\n-        if (isSimpleType(clazz)) { // changed since 2.7.6\n-            td.setProperties(null);\n-        }\n-        return td;\n-    }\n-\n-    private static TypeBuilder getGenericTypeBuilder(Type type, Class<?> clazz) {\n-        for (TypeBuilder builder : BUILDERS) {\n-            try {\n-                if (builder.accept(type, clazz)) {\n-                    return builder;\n-                }\n-            } catch (NoClassDefFoundError cnfe) {\n-                //ignore\n-                logger.info(\"Throw classNotFound (\" + cnfe.getMessage() + \") in \" + builder.getClass());\n-            }\n-        }\n-        return null;\n-    }\n-\n-    private Map<Class<?>, TypeDefinition> typeCache = new HashMap<>();\n-\n-    public TypeDefinition build(Type type, Class<?> clazz) {\n-        return build(type, clazz, typeCache);\n-    }\n-\n-    public List<TypeDefinition> getTypeDefinitions() {\n-        return new ArrayList<>(typeCache.values());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.metadata.definition.builder.DefaultTypeBuilder;\r\n+import org.apache.dubbo.metadata.definition.builder.TypeBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.Type;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.utils.ClassUtils.isSimpleType;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class TypeDefinitionBuilder {\r\n+    private static final Logger logger = LoggerFactory.getLogger(TypeDefinitionBuilder.class);\r\n+    static final List<TypeBuilder> BUILDERS;\r\n+\r\n+    static {\r\n+        ExtensionLoader<TypeBuilder> extensionLoader = ExtensionLoader.getExtensionLoader(TypeBuilder.class);\r\n+        Set<TypeBuilder> tbs = extensionLoader.getSupportedExtensionInstances();\r\n+        BUILDERS = new ArrayList<>(tbs);\r\n+    }\r\n+\r\n+    public static TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        TypeBuilder builder = getGenericTypeBuilder(type, clazz);\r\n+        TypeDefinition td;\r\n+        if (builder != null) {\r\n+            td = builder.build(type, clazz, typeCache);\r\n+            td.setTypeBuilderName(builder.getClass().getName());\r\n+        } else {\r\n+            td = DefaultTypeBuilder.build(clazz, typeCache);\r\n+            td.setTypeBuilderName(DefaultTypeBuilder.class.getName());\r\n+        }\r\n+        if (isSimpleType(clazz)) { // changed since 2.7.6\r\n+            td.setProperties(null);\r\n+        }\r\n+        return td;\r\n+    }\r\n+\r\n+    private static TypeBuilder getGenericTypeBuilder(Type type, Class<?> clazz) {\r\n+        for (TypeBuilder builder : BUILDERS) {\r\n+            try {\r\n+                if (builder.accept(type, clazz)) {\r\n+                    return builder;\r\n+                }\r\n+            } catch (NoClassDefFoundError cnfe) {\r\n+                //ignore\r\n+                logger.info(\"Throw classNotFound (\" + cnfe.getMessage() + \") in \" + builder.getClass());\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    private Map<Class<?>, TypeDefinition> typeCache = new HashMap<>();\r\n+\r\n+    public TypeDefinition build(Type type, Class<?> clazz) {\r\n+        return build(type, clazz, typeCache);\r\n+    }\r\n+\r\n+    public List<TypeDefinition> getTypeDefinitions() {\r\n+        return new ArrayList<>(typeCache.values());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/ArrayTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/ArrayTypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.Type;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class ArrayTypeBuilder implements TypeBuilder {\n-\n-    @Override\n-    public boolean accept(Type type, Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-        return clazz.isArray();\n-    }\n-\n-    @Override\n-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        // Process the component type of an array.\n-        Class<?> componentType = clazz.getComponentType();\n-        TypeDefinitionBuilder.build(componentType, componentType, typeCache);\n-\n-        final String canonicalName = clazz.getCanonicalName();\n-        return new TypeDefinition(canonicalName);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.Type;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class ArrayTypeBuilder implements TypeBuilder {\r\n+\r\n+    @Override\r\n+    public boolean accept(Type type, Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+        return clazz.isArray();\r\n+    }\r\n+\r\n+    @Override\r\n+    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        // Process the component type of an array.\r\n+        Class<?> componentType = clazz.getComponentType();\r\n+        TypeDefinitionBuilder.build(componentType, componentType, typeCache);\r\n+\r\n+        final String canonicalName = clazz.getCanonicalName();\r\n+        return new TypeDefinition(canonicalName);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/CollectionTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/CollectionTypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,70 +1,70 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.ParameterizedType;\n-import java.lang.reflect.Type;\n-import java.text.MessageFormat;\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class CollectionTypeBuilder implements TypeBuilder {\n-\n-    @Override\n-    public boolean accept(Type type, Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-        return Collection.class.isAssignableFrom(clazz);\n-    }\n-\n-    @Override\n-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        if (!(type instanceof ParameterizedType)) {\n-            return new TypeDefinition(clazz.getName());\n-        }\n-\n-        ParameterizedType parameterizedType = (ParameterizedType) type;\n-        Type[] actualTypeArgs = parameterizedType.getActualTypeArguments();\n-        if (actualTypeArgs == null || actualTypeArgs.length != 1) {\n-            throw new IllegalArgumentException(MessageFormat.format(\n-                    \"[ServiceDefinitionBuilder] Collection type [{0}] with unexpected amount of arguments [{1}].\"\n-                            + Arrays.toString(actualTypeArgs),\n-                    type, actualTypeArgs));\n-        }\n-\n-        Type actualType = actualTypeArgs[0];\n-        if (actualType instanceof ParameterizedType) {\n-            // Nested collection or map.\n-            Class<?> rawType = (Class<?>) ((ParameterizedType) actualType).getRawType();\n-            TypeDefinitionBuilder.build(actualType, rawType, typeCache);\n-        } else if (actualType instanceof Class<?>) {\n-            Class<?> actualClass = (Class<?>) actualType;\n-            TypeDefinitionBuilder.build(null, actualClass, typeCache);\n-        }\n-\n-        return new TypeDefinition(type.toString());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.lang.reflect.Type;\r\n+import java.text.MessageFormat;\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class CollectionTypeBuilder implements TypeBuilder {\r\n+\r\n+    @Override\r\n+    public boolean accept(Type type, Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+        return Collection.class.isAssignableFrom(clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        if (!(type instanceof ParameterizedType)) {\r\n+            return new TypeDefinition(clazz.getName());\r\n+        }\r\n+\r\n+        ParameterizedType parameterizedType = (ParameterizedType) type;\r\n+        Type[] actualTypeArgs = parameterizedType.getActualTypeArguments();\r\n+        if (actualTypeArgs == null || actualTypeArgs.length != 1) {\r\n+            throw new IllegalArgumentException(MessageFormat.format(\r\n+                    \"[ServiceDefinitionBuilder] Collection type [{0}] with unexpected amount of arguments [{1}].\"\r\n+                            + Arrays.toString(actualTypeArgs),\r\n+                    type, actualTypeArgs));\r\n+        }\r\n+\r\n+        Type actualType = actualTypeArgs[0];\r\n+        if (actualType instanceof ParameterizedType) {\r\n+            // Nested collection or map.\r\n+            Class<?> rawType = (Class<?>) ((ParameterizedType) actualType).getRawType();\r\n+            TypeDefinitionBuilder.build(actualType, rawType, typeCache);\r\n+        } else if (actualType instanceof Class<?>) {\r\n+            Class<?> actualClass = (Class<?>) actualType;\r\n+            TypeDefinitionBuilder.build(null, actualClass, typeCache);\r\n+        }\r\n+\r\n+        return new TypeDefinition(type.toString());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/DefaultTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/DefaultTypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,70 +1,70 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-import org.apache.dubbo.metadata.definition.util.ClassUtils;\n-import org.apache.dubbo.metadata.definition.util.JaketConfigurationUtils;\n-\n-import java.lang.reflect.Field;\n-import java.lang.reflect.Type;\n-import java.util.List;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-public final class DefaultTypeBuilder {\n-\n-    public static TypeDefinition build(Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-//        final String canonicalName = clazz.getCanonicalName();\n-        final String name = clazz.getName();\n-\n-        TypeDefinition td = new TypeDefinition(name);\n-        // Try to get a cached definition\n-        if (typeCache.containsKey(clazz)) {\n-            return typeCache.get(clazz);\n-        }\n-\n-        // Primitive type\n-        if (!JaketConfigurationUtils.needAnalyzing(clazz)) {\n-            return td;\n-        }\n-\n-        // Custom type\n-        TypeDefinition ref = new TypeDefinition(name);\n-        ref.set$ref(name);\n-        typeCache.put(clazz, ref);\n-\n-        List<Field> fields = ClassUtils.getNonStaticFields(clazz);\n-        for (Field field : fields) {\n-            String fieldName = field.getName();\n-            Class<?> fieldClass = field.getType();\n-            Type fieldType = field.getGenericType();\n-\n-            TypeDefinition fieldTd = TypeDefinitionBuilder.build(fieldType, fieldClass, typeCache);\n-            td.getProperties().put(fieldName, fieldTd);\n-        }\n-\n-        typeCache.put(clazz, td);\n-        return td;\n-    }\n-\n-    private DefaultTypeBuilder() {\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+import org.apache.dubbo.metadata.definition.util.ClassUtils;\r\n+import org.apache.dubbo.metadata.definition.util.JaketConfigurationUtils;\r\n+\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.Type;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public final class DefaultTypeBuilder {\r\n+\r\n+    public static TypeDefinition build(Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+//        final String canonicalName = clazz.getCanonicalName();\r\n+        final String name = clazz.getName();\r\n+\r\n+        TypeDefinition td = new TypeDefinition(name);\r\n+        // Try to get a cached definition\r\n+        if (typeCache.containsKey(clazz)) {\r\n+            return typeCache.get(clazz);\r\n+        }\r\n+\r\n+        // Primitive type\r\n+        if (!JaketConfigurationUtils.needAnalyzing(clazz)) {\r\n+            return td;\r\n+        }\r\n+\r\n+        // Custom type\r\n+        TypeDefinition ref = new TypeDefinition(name);\r\n+        ref.set$ref(name);\r\n+        typeCache.put(clazz, ref);\r\n+\r\n+        List<Field> fields = ClassUtils.getNonStaticFields(clazz);\r\n+        for (Field field : fields) {\r\n+            String fieldName = field.getName();\r\n+            Class<?> fieldClass = field.getType();\r\n+            Type fieldType = field.getGenericType();\r\n+\r\n+            TypeDefinition fieldTd = TypeDefinitionBuilder.build(fieldType, fieldClass, typeCache);\r\n+            td.getProperties().put(fieldName, fieldTd);\r\n+        }\r\n+\r\n+        typeCache.put(clazz, td);\r\n+        return td;\r\n+    }\r\n+\r\n+    private DefaultTypeBuilder() {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/EnumTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/EnumTypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class EnumTypeBuilder implements TypeBuilder {\n-\n-    @Override\n-    public boolean accept(Type type, Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-        return clazz.isEnum();\n-    }\n-\n-    @Override\n-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        TypeDefinition td = new TypeDefinition(clazz.getCanonicalName());\n-\n-        try {\n-            Method methodValues = clazz.getDeclaredMethod(\"values\");\n-            Object[] values = (Object[]) methodValues.invoke(clazz, new Object[0]);\n-            int length = values.length;\n-            for (int i = 0; i < length; i++) {\n-                Object value = values[i];\n-                td.getEnums().add(value.toString());\n-            }\n-        } catch (Throwable t) {\n-            td.setId(\"-1\");\n-        }\n-\n-        typeCache.put(clazz, td);\n-        return td;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class EnumTypeBuilder implements TypeBuilder {\r\n+\r\n+    @Override\r\n+    public boolean accept(Type type, Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+        return clazz.isEnum();\r\n+    }\r\n+\r\n+    @Override\r\n+    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        TypeDefinition td = new TypeDefinition(clazz.getCanonicalName());\r\n+\r\n+        try {\r\n+            Method methodValues = clazz.getDeclaredMethod(\"values\");\r\n+            Object[] values = (Object[]) methodValues.invoke(clazz, new Object[0]);\r\n+            int length = values.length;\r\n+            for (int i = 0; i < length; i++) {\r\n+                Object value = values[i];\r\n+                td.getEnums().add(value.toString());\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            td.setId(\"-1\");\r\n+        }\r\n+\r\n+        typeCache.put(clazz, td);\r\n+        return td;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/MapTypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/MapTypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.ParameterizedType;\n-import java.lang.reflect.Type;\n-import java.text.MessageFormat;\n-import java.util.Arrays;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.utils.TypeUtils.getRawClass;\n-import static org.apache.dubbo.common.utils.TypeUtils.isClass;\n-import static org.apache.dubbo.common.utils.TypeUtils.isParameterizedType;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class MapTypeBuilder implements TypeBuilder {\n-\n-    @Override\n-    public boolean accept(Type type, Class<?> clazz) {\n-        if (clazz == null) {\n-            return false;\n-        }\n-        return Map.class.isAssignableFrom(clazz);\n-    }\n-\n-    @Override\n-    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\n-        if (!(type instanceof ParameterizedType)) {\n-            return new TypeDefinition(clazz.getName());\n-        }\n-\n-        ParameterizedType parameterizedType = (ParameterizedType) type;\n-        Type[] actualTypeArgs = parameterizedType.getActualTypeArguments();\n-        int actualTypeArgsLength = actualTypeArgs == null ? 0 : actualTypeArgs.length;\n-\n-        if (actualTypeArgsLength != 2) {\n-            throw new IllegalArgumentException(MessageFormat.format(\n-                    \"[ServiceDefinitionBuilder] Map type [{0}] with unexpected amount of arguments [{1}].\"\n-                            + Arrays.toString(actualTypeArgs), type, actualTypeArgs));\n-        }\n-\n-        String mapType = type.toString();\n-\n-        TypeDefinition typeDefinition = new TypeDefinition(mapType);\n-\n-        for (int i = 0; i < actualTypeArgsLength; i++) {\n-            Type actualType = actualTypeArgs[i];\n-            TypeDefinition item = null;\n-            Class<?> rawType = getRawClass(actualType);\n-            if (isParameterizedType(actualType)) {\n-                // Nested collection or map.\n-                item = TypeDefinitionBuilder.build(actualType, rawType, typeCache);\n-            } else if (isClass(actualType)) {\n-                item = TypeDefinitionBuilder.build(null, rawType, typeCache);\n-            }\n-            typeDefinition.getItems().add(item);\n-        }\n-\n-        return typeDefinition;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.metadata.definition.TypeDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.lang.reflect.Type;\r\n+import java.text.MessageFormat;\r\n+import java.util.Arrays;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.utils.TypeUtils.getRawClass;\r\n+import static org.apache.dubbo.common.utils.TypeUtils.isClass;\r\n+import static org.apache.dubbo.common.utils.TypeUtils.isParameterizedType;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class MapTypeBuilder implements TypeBuilder {\r\n+\r\n+    @Override\r\n+    public boolean accept(Type type, Class<?> clazz) {\r\n+        if (clazz == null) {\r\n+            return false;\r\n+        }\r\n+        return Map.class.isAssignableFrom(clazz);\r\n+    }\r\n+\r\n+    @Override\r\n+    public TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache) {\r\n+        if (!(type instanceof ParameterizedType)) {\r\n+            return new TypeDefinition(clazz.getName());\r\n+        }\r\n+\r\n+        ParameterizedType parameterizedType = (ParameterizedType) type;\r\n+        Type[] actualTypeArgs = parameterizedType.getActualTypeArguments();\r\n+        int actualTypeArgsLength = actualTypeArgs == null ? 0 : actualTypeArgs.length;\r\n+\r\n+        if (actualTypeArgsLength != 2) {\r\n+            throw new IllegalArgumentException(MessageFormat.format(\r\n+                    \"[ServiceDefinitionBuilder] Map type [{0}] with unexpected amount of arguments [{1}].\"\r\n+                            + Arrays.toString(actualTypeArgs), type, actualTypeArgs));\r\n+        }\r\n+\r\n+        String mapType = type.toString();\r\n+\r\n+        TypeDefinition typeDefinition = new TypeDefinition(mapType);\r\n+\r\n+        for (int i = 0; i < actualTypeArgsLength; i++) {\r\n+            Type actualType = actualTypeArgs[i];\r\n+            TypeDefinition item = null;\r\n+            Class<?> rawType = getRawClass(actualType);\r\n+            if (isParameterizedType(actualType)) {\r\n+                // Nested collection or map.\r\n+                item = TypeDefinitionBuilder.build(actualType, rawType, typeCache);\r\n+            } else if (isClass(actualType)) {\r\n+                item = TypeDefinitionBuilder.build(null, rawType, typeCache);\r\n+            }\r\n+            typeDefinition.getItems().add(item);\r\n+        }\r\n+\r\n+        return typeDefinition;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/builder/TypeBuilder.java", "source2": "org/apache/dubbo/metadata/definition/builder/TypeBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.builder;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-import org.apache.dubbo.metadata.definition.model.TypeDefinition;\n-\n-import java.lang.reflect.Type;\n-import java.util.Map;\n-\n-/**\n- * 2015/1/27.\n- */\n-@SPI\n-public interface TypeBuilder extends Prioritized {\n-\n-    /**\n-     * Whether the build accept the type or class passed in.\n-     */\n-    boolean accept(Type type, Class<?> clazz);\n-\n-    /**\n-     * Build type definition with the type or class.\n-     */\n-    TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.builder;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+import org.apache.dubbo.metadata.definition.model.TypeDefinition;\r\n+\r\n+import java.lang.reflect.Type;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+@SPI\r\n+public interface TypeBuilder extends Prioritized {\r\n+\r\n+    /**\r\n+     * Whether the build accept the type or class passed in.\r\n+     */\r\n+    boolean accept(Type type, Class<?> clazz);\r\n+\r\n+    /**\r\n+     * Build type definition with the type or class.\r\n+     */\r\n+    TypeDefinition build(Type type, Class<?> clazz, Map<Class<?>, TypeDefinition> typeCache);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/model/FullServiceDefinition.java", "source2": "org/apache/dubbo/metadata/definition/model/FullServiceDefinition.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.model;\n-\n-import java.util.Map;\n-\n-/**\n- * 2018/10/25\n- */\n-public class FullServiceDefinition extends ServiceDefinition {\n-\n-    private Map<String, String> parameters;\n-\n-    public Map<String, String> getParameters() {\n-        return parameters;\n-    }\n-\n-    public void setParameters(Map<String, String> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"FullServiceDefinition{\" +\n-                \"parameters=\" + parameters +\n-                \"} \" + super.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.model;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * 2018/10/25\r\n+ */\r\n+public class FullServiceDefinition extends ServiceDefinition {\r\n+\r\n+    private Map<String, String> parameters;\r\n+\r\n+    public Map<String, String> getParameters() {\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public void setParameters(Map<String, String> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"FullServiceDefinition{\" +\r\n+                \"parameters=\" + parameters +\r\n+                \"} \" + super.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/model/MethodDefinition.java", "source2": "org/apache/dubbo/metadata/definition/model/MethodDefinition.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.model;\n-\n-import java.io.Serializable;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType;\n-import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class MethodDefinition implements Serializable {\n-\n-    private String name;\n-    private String[] parameterTypes;\n-    private String returnType;\n-    private List<TypeDefinition> parameters;\n-\n-    public String getName() {\n-        return name;\n-    }\n-\n-    public List<TypeDefinition> getParameters() {\n-        if (parameters == null) {\n-            parameters = new ArrayList<>();\n-        }\n-        return parameters;\n-    }\n-\n-    public String[] getParameterTypes() {\n-        return parameterTypes;\n-    }\n-\n-    public String getReturnType() {\n-        return returnType;\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-    }\n-\n-    public void setParameters(List<TypeDefinition> parameters) {\n-        this.parameters = parameters;\n-    }\n-\n-    public void setParameterTypes(String[] parameterTypes) {\n-        this.parameterTypes = formatTypes(parameterTypes);\n-    }\n-\n-    public void setReturnType(String returnType) {\n-        this.returnType = formatType(returnType);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"MethodDefinition [name=\" + name + \", parameterTypes=\" + Arrays.toString(parameterTypes)\n-                + \", returnType=\" + returnType + \"]\";\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof MethodDefinition)) {\n-            return false;\n-        }\n-        MethodDefinition that = (MethodDefinition) o;\n-        return Objects.equals(getName(), that.getName()) &&\n-                Arrays.equals(getParameterTypes(), that.getParameterTypes()) &&\n-                Objects.equals(getReturnType(), that.getReturnType()) &&\n-                Objects.equals(getParameters(), that.getParameters());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        int result = Objects.hash(getName(), getReturnType(), getParameters());\n-        result = 31 * result + Arrays.hashCode(getParameterTypes());\n-        return result;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.model;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatType;\r\n+import static org.apache.dubbo.metadata.definition.model.TypeDefinition.formatTypes;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class MethodDefinition implements Serializable {\r\n+\r\n+    private String name;\r\n+    private String[] parameterTypes;\r\n+    private String returnType;\r\n+    private List<TypeDefinition> parameters;\r\n+\r\n+    public String getName() {\r\n+        return name;\r\n+    }\r\n+\r\n+    public List<TypeDefinition> getParameters() {\r\n+        if (parameters == null) {\r\n+            parameters = new ArrayList<>();\r\n+        }\r\n+        return parameters;\r\n+    }\r\n+\r\n+    public String[] getParameterTypes() {\r\n+        return parameterTypes;\r\n+    }\r\n+\r\n+    public String getReturnType() {\r\n+        return returnType;\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+    }\r\n+\r\n+    public void setParameters(List<TypeDefinition> parameters) {\r\n+        this.parameters = parameters;\r\n+    }\r\n+\r\n+    public void setParameterTypes(String[] parameterTypes) {\r\n+        this.parameterTypes = formatTypes(parameterTypes);\r\n+    }\r\n+\r\n+    public void setReturnType(String returnType) {\r\n+        this.returnType = formatType(returnType);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"MethodDefinition [name=\" + name + \", parameterTypes=\" + Arrays.toString(parameterTypes)\r\n+                + \", returnType=\" + returnType + \"]\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof MethodDefinition)) {\r\n+            return false;\r\n+        }\r\n+        MethodDefinition that = (MethodDefinition) o;\r\n+        return Objects.equals(getName(), that.getName()) &&\r\n+                Arrays.equals(getParameterTypes(), that.getParameterTypes()) &&\r\n+                Objects.equals(getReturnType(), that.getReturnType()) &&\r\n+                Objects.equals(getParameters(), that.getParameters());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        int result = Objects.hash(getName(), getReturnType(), getParameters());\r\n+        result = 31 * result + Arrays.hashCode(getParameterTypes());\r\n+        return result;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/model/ServiceDefinition.java", "source2": "org/apache/dubbo/metadata/definition/model/ServiceDefinition.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,101 +1,101 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.model;\n-\n-import java.io.Serializable;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Objects;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class ServiceDefinition implements Serializable {\n-\n-    private String canonicalName;\n-    private String codeSource;\n-    private List<MethodDefinition> methods;\n-    private List<TypeDefinition> types;\n-\n-    public String getCanonicalName() {\n-        return canonicalName;\n-    }\n-\n-    public String getCodeSource() {\n-        return codeSource;\n-    }\n-\n-    public List<MethodDefinition> getMethods() {\n-        if (methods == null) {\n-            methods = new ArrayList<>();\n-        }\n-        return methods;\n-    }\n-\n-    public List<TypeDefinition> getTypes() {\n-        if (types == null) {\n-            types = new ArrayList<>();\n-        }\n-        return types;\n-    }\n-\n-    public String getUniqueId() {\n-        return canonicalName + \"@\" + codeSource;\n-    }\n-\n-    public void setCanonicalName(String canonicalName) {\n-        this.canonicalName = canonicalName;\n-    }\n-\n-    public void setCodeSource(String codeSource) {\n-        this.codeSource = codeSource;\n-    }\n-\n-    public void setMethods(List<MethodDefinition> methods) {\n-        this.methods = methods;\n-    }\n-\n-    public void setTypes(List<TypeDefinition> types) {\n-        this.types = types;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ServiceDefinition [canonicalName=\" + canonicalName + \", codeSource=\" + codeSource + \", methods=\"\n-                + methods + \"]\";\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof ServiceDefinition)) {\n-            return false;\n-        }\n-        ServiceDefinition that = (ServiceDefinition) o;\n-        return Objects.equals(getCanonicalName(), that.getCanonicalName()) &&\n-                Objects.equals(getCodeSource(), that.getCodeSource()) &&\n-                Objects.equals(getMethods(), that.getMethods()) &&\n-                Objects.equals(getTypes(), that.getTypes());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getCanonicalName(), getCodeSource(), getMethods(), getTypes());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.model;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class ServiceDefinition implements Serializable {\r\n+\r\n+    private String canonicalName;\r\n+    private String codeSource;\r\n+    private List<MethodDefinition> methods;\r\n+    private List<TypeDefinition> types;\r\n+\r\n+    public String getCanonicalName() {\r\n+        return canonicalName;\r\n+    }\r\n+\r\n+    public String getCodeSource() {\r\n+        return codeSource;\r\n+    }\r\n+\r\n+    public List<MethodDefinition> getMethods() {\r\n+        if (methods == null) {\r\n+            methods = new ArrayList<>();\r\n+        }\r\n+        return methods;\r\n+    }\r\n+\r\n+    public List<TypeDefinition> getTypes() {\r\n+        if (types == null) {\r\n+            types = new ArrayList<>();\r\n+        }\r\n+        return types;\r\n+    }\r\n+\r\n+    public String getUniqueId() {\r\n+        return canonicalName + \"@\" + codeSource;\r\n+    }\r\n+\r\n+    public void setCanonicalName(String canonicalName) {\r\n+        this.canonicalName = canonicalName;\r\n+    }\r\n+\r\n+    public void setCodeSource(String codeSource) {\r\n+        this.codeSource = codeSource;\r\n+    }\r\n+\r\n+    public void setMethods(List<MethodDefinition> methods) {\r\n+        this.methods = methods;\r\n+    }\r\n+\r\n+    public void setTypes(List<TypeDefinition> types) {\r\n+        this.types = types;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ServiceDefinition [canonicalName=\" + canonicalName + \", codeSource=\" + codeSource + \", methods=\"\r\n+                + methods + \"]\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof ServiceDefinition)) {\r\n+            return false;\r\n+        }\r\n+        ServiceDefinition that = (ServiceDefinition) o;\r\n+        return Objects.equals(getCanonicalName(), that.getCanonicalName()) &&\r\n+                Objects.equals(getCodeSource(), that.getCodeSource()) &&\r\n+                Objects.equals(getMethods(), that.getMethods()) &&\r\n+                Objects.equals(getTypes(), that.getTypes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getCanonicalName(), getCodeSource(), getMethods(), getTypes());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/model/TypeDefinition.java", "source2": "org/apache/dubbo/metadata/definition/model/TypeDefinition.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,189 +1,189 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.model;\n-\n-import com.google.gson.annotations.SerializedName;\n-\n-import java.io.Serializable;\n-import java.lang.reflect.ParameterizedType;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.replace;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class TypeDefinition implements Serializable {\n-\n-    private String id;\n-    private String type;\n-    @SerializedName(\"items\")\n-    private List<TypeDefinition> items;\n-    @SerializedName(\"enum\")\n-    private List<String> enums;\n-    private String $ref;\n-    private Map<String, TypeDefinition> properties;\n-    private String typeBuilderName;\n-\n-    public TypeDefinition() {\n-    }\n-\n-    public TypeDefinition(String type) {\n-        this.setType(type);\n-    }\n-\n-    /**\n-     * Format the {@link String} array presenting Java types\n-     *\n-     * @param types the strings presenting Java types\n-     * @return new String array of Java types after be formatted\n-     * @since 2.7.9\n-     */\n-    public static String[] formatTypes(String[] types) {\n-        String[] newTypes = new String[types.length];\n-        for (int i = 0; i < types.length; i++) {\n-            newTypes[i] = formatType(types[i]);\n-        }\n-        return newTypes;\n-    }\n-\n-    /**\n-     * Format the {@link String} presenting Java type\n-     *\n-     * @param type the String presenting type\n-     * @return new String presenting Java type after be formatted\n-     * @since 2.7.9\n-     */\n-    public static String formatType(String type) {\n-        if (isGenericType(type)) {\n-            return formatGenericType(type);\n-        }\n-        return type;\n-    }\n-\n-    /**\n-     * Replacing <code>\", \"</code> to <code>\",\"</code> will not change the semantic of\n-     * {@link ParameterizedType#toString()}\n-     *\n-     * @param type\n-     * @return formatted type\n-     * @see sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl\n-     */\n-    private static String formatGenericType(String type) {\n-        return replace(type, \", \", \",\");\n-    }\n-\n-    private static boolean isGenericType(String type) {\n-        return type.contains(\"<\") && type.contains(\">\");\n-    }\n-\n-    public String get$ref() {\n-        return $ref;\n-    }\n-\n-    public List<String> getEnums() {\n-        if (enums == null) {\n-            enums = new ArrayList<String>();\n-        }\n-        return enums;\n-    }\n-\n-    public String getId() {\n-        return id;\n-    }\n-\n-    public List<TypeDefinition> getItems() {\n-        if (items == null) {\n-            items = new ArrayList<>();\n-        }\n-        return items;\n-    }\n-\n-    public Map<String, TypeDefinition> getProperties() {\n-        if (properties == null) {\n-            properties = new HashMap<>();\n-        }\n-        return properties;\n-    }\n-\n-    public String getType() {\n-        return type;\n-    }\n-\n-    public String getTypeBuilderName() {\n-        return typeBuilderName;\n-    }\n-\n-    public void set$ref(String $ref) {\n-        this.$ref = $ref;\n-    }\n-\n-    public void setEnums(List<String> enums) {\n-        this.enums = enums;\n-    }\n-\n-    public void setId(String id) {\n-        this.id = id;\n-    }\n-\n-    public void setItems(List<TypeDefinition> items) {\n-        this.items = items;\n-    }\n-\n-    public void setProperties(Map<String, TypeDefinition> properties) {\n-        this.properties = properties;\n-    }\n-\n-    public void setType(String type) {\n-        this.type = formatType(type);\n-    }\n-\n-    public void setTypeBuilderName(String typeBuilderName) {\n-        this.typeBuilderName = typeBuilderName;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"TypeDefinition [id=\" + id + \", type=\" + type + \", properties=\" + properties + \", $ref=\" + $ref + \"]\";\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof TypeDefinition)) {\n-            return false;\n-        }\n-        TypeDefinition that = (TypeDefinition) o;\n-        return Objects.equals(getId(), that.getId()) &&\n-                Objects.equals(getType(), that.getType()) &&\n-                Objects.equals(getItems(), that.getItems()) &&\n-                Objects.equals(getEnums(), that.getEnums()) &&\n-                Objects.equals(get$ref(), that.get$ref()) &&\n-                Objects.equals(getProperties(), that.getProperties());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getId(), getType(), getItems(), getEnums(), get$ref(), getProperties());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.model;\r\n+\r\n+import com.google.gson.annotations.SerializedName;\r\n+\r\n+import java.io.Serializable;\r\n+import java.lang.reflect.ParameterizedType;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.replace;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class TypeDefinition implements Serializable {\r\n+\r\n+    private String id;\r\n+    private String type;\r\n+    @SerializedName(\"items\")\r\n+    private List<TypeDefinition> items;\r\n+    @SerializedName(\"enum\")\r\n+    private List<String> enums;\r\n+    private String $ref;\r\n+    private Map<String, TypeDefinition> properties;\r\n+    private String typeBuilderName;\r\n+\r\n+    public TypeDefinition() {\r\n+    }\r\n+\r\n+    public TypeDefinition(String type) {\r\n+        this.setType(type);\r\n+    }\r\n+\r\n+    /**\r\n+     * Format the {@link String} array presenting Java types\r\n+     *\r\n+     * @param types the strings presenting Java types\r\n+     * @return new String array of Java types after be formatted\r\n+     * @since 2.7.9\r\n+     */\r\n+    public static String[] formatTypes(String[] types) {\r\n+        String[] newTypes = new String[types.length];\r\n+        for (int i = 0; i < types.length; i++) {\r\n+            newTypes[i] = formatType(types[i]);\r\n+        }\r\n+        return newTypes;\r\n+    }\r\n+\r\n+    /**\r\n+     * Format the {@link String} presenting Java type\r\n+     *\r\n+     * @param type the String presenting type\r\n+     * @return new String presenting Java type after be formatted\r\n+     * @since 2.7.9\r\n+     */\r\n+    public static String formatType(String type) {\r\n+        if (isGenericType(type)) {\r\n+            return formatGenericType(type);\r\n+        }\r\n+        return type;\r\n+    }\r\n+\r\n+    /**\r\n+     * Replacing <code>\", \"</code> to <code>\",\"</code> will not change the semantic of\r\n+     * {@link ParameterizedType#toString()}\r\n+     *\r\n+     * @param type\r\n+     * @return formatted type\r\n+     * @see sun.reflect.generics.reflectiveObjects.ParameterizedTypeImpl\r\n+     */\r\n+    private static String formatGenericType(String type) {\r\n+        return replace(type, \", \", \",\");\r\n+    }\r\n+\r\n+    private static boolean isGenericType(String type) {\r\n+        return type.contains(\"<\") && type.contains(\">\");\r\n+    }\r\n+\r\n+    public String get$ref() {\r\n+        return $ref;\r\n+    }\r\n+\r\n+    public List<String> getEnums() {\r\n+        if (enums == null) {\r\n+            enums = new ArrayList<String>();\r\n+        }\r\n+        return enums;\r\n+    }\r\n+\r\n+    public String getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    public List<TypeDefinition> getItems() {\r\n+        if (items == null) {\r\n+            items = new ArrayList<>();\r\n+        }\r\n+        return items;\r\n+    }\r\n+\r\n+    public Map<String, TypeDefinition> getProperties() {\r\n+        if (properties == null) {\r\n+            properties = new HashMap<>();\r\n+        }\r\n+        return properties;\r\n+    }\r\n+\r\n+    public String getType() {\r\n+        return type;\r\n+    }\r\n+\r\n+    public String getTypeBuilderName() {\r\n+        return typeBuilderName;\r\n+    }\r\n+\r\n+    public void set$ref(String $ref) {\r\n+        this.$ref = $ref;\r\n+    }\r\n+\r\n+    public void setEnums(List<String> enums) {\r\n+        this.enums = enums;\r\n+    }\r\n+\r\n+    public void setId(String id) {\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public void setItems(List<TypeDefinition> items) {\r\n+        this.items = items;\r\n+    }\r\n+\r\n+    public void setProperties(Map<String, TypeDefinition> properties) {\r\n+        this.properties = properties;\r\n+    }\r\n+\r\n+    public void setType(String type) {\r\n+        this.type = formatType(type);\r\n+    }\r\n+\r\n+    public void setTypeBuilderName(String typeBuilderName) {\r\n+        this.typeBuilderName = typeBuilderName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"TypeDefinition [id=\" + id + \", type=\" + type + \", properties=\" + properties + \", $ref=\" + $ref + \"]\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof TypeDefinition)) {\r\n+            return false;\r\n+        }\r\n+        TypeDefinition that = (TypeDefinition) o;\r\n+        return Objects.equals(getId(), that.getId()) &&\r\n+                Objects.equals(getType(), that.getType()) &&\r\n+                Objects.equals(getItems(), that.getItems()) &&\r\n+                Objects.equals(getEnums(), that.getEnums()) &&\r\n+                Objects.equals(get$ref(), that.get$ref()) &&\r\n+                Objects.equals(getProperties(), that.getProperties());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getId(), getType(), getItems(), getEnums(), get$ref(), getProperties());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/util/ClassUtils.java", "source2": "org/apache/dubbo/metadata/definition/util/ClassUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,111 +1,111 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.util;\n-\n-import java.lang.reflect.Field;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Modifier;\n-import java.net.URL;\n-import java.security.CodeSource;\n-import java.security.ProtectionDomain;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * 2015/1/27.\n- */\n-public final class ClassUtils {\n-\n-    /**\n-     * Get the code source file or class path of the Class passed in.\n-     *\n-     * @param clazz\n-     * @return Jar file name or class path.\n-     */\n-    public static String getCodeSource(Class<?> clazz) {\n-        ProtectionDomain protectionDomain = clazz.getProtectionDomain();\n-        if (protectionDomain == null || protectionDomain.getCodeSource() == null) {\n-            return null;\n-        }\n-\n-        CodeSource codeSource = clazz.getProtectionDomain().getCodeSource();\n-        URL location = codeSource.getLocation();\n-        if (location == null) {\n-            return null;\n-        }\n-\n-        String path = codeSource.getLocation().toExternalForm();\n-\n-        if (path.endsWith(\".jar\") && path.contains(\"/\")) {\n-            return path.substring(path.lastIndexOf('/') + 1);\n-        }\n-        return path;\n-    }\n-\n-    /**\n-     * Get all non-static fields of the Class passed in or its super classes.\n-     * <p>\n-     *\n-     * @param clazz Class to parse.\n-     * @return field list\n-     */\n-    public static List<Field> getNonStaticFields(final Class<?> clazz) {\n-        List<Field> result = new ArrayList<>();\n-        Class<?> target = clazz;\n-        while (target != null) {\n-            if (JaketConfigurationUtils.isExcludedType(target)) {\n-                break;\n-            }\n-\n-            Field[] fields = target.getDeclaredFields();\n-            for (Field field : fields) {\n-                int modifiers = field.getModifiers();\n-                if (Modifier.isStatic(modifiers) || Modifier.isTransient(modifiers)) {\n-                    continue;\n-                }\n-\n-                result.add(field);\n-            }\n-            target = target.getSuperclass();\n-        }\n-\n-        return result;\n-    }\n-\n-    /**\n-     * Get all public, non-static methods of the Class passed in.\n-     * <p>\n-     *\n-     * @param clazz Class to parse.\n-     * @return methods list\n-     */\n-    public static List<Method> getPublicNonStaticMethods(final Class<?> clazz) {\n-        List<Method> result = new ArrayList<Method>();\n-\n-        Method[] methods = clazz.getMethods();\n-        for (Method method : methods) {\n-            int mod = method.getModifiers();\n-            if (Modifier.isPublic(mod) && !Modifier.isStatic(mod)) {\n-                result.add(method);\n-            }\n-        }\n-        return result;\n-    }\n-\n-    private ClassUtils() {\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.util;\r\n+\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Modifier;\r\n+import java.net.URL;\r\n+import java.security.CodeSource;\r\n+import java.security.ProtectionDomain;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public final class ClassUtils {\r\n+\r\n+    /**\r\n+     * Get the code source file or class path of the Class passed in.\r\n+     *\r\n+     * @param clazz\r\n+     * @return Jar file name or class path.\r\n+     */\r\n+    public static String getCodeSource(Class<?> clazz) {\r\n+        ProtectionDomain protectionDomain = clazz.getProtectionDomain();\r\n+        if (protectionDomain == null || protectionDomain.getCodeSource() == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        CodeSource codeSource = clazz.getProtectionDomain().getCodeSource();\r\n+        URL location = codeSource.getLocation();\r\n+        if (location == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        String path = codeSource.getLocation().toExternalForm();\r\n+\r\n+        if (path.endsWith(\".jar\") && path.contains(\"/\")) {\r\n+            return path.substring(path.lastIndexOf('/') + 1);\r\n+        }\r\n+        return path;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all non-static fields of the Class passed in or its super classes.\r\n+     * <p>\r\n+     *\r\n+     * @param clazz Class to parse.\r\n+     * @return field list\r\n+     */\r\n+    public static List<Field> getNonStaticFields(final Class<?> clazz) {\r\n+        List<Field> result = new ArrayList<>();\r\n+        Class<?> target = clazz;\r\n+        while (target != null) {\r\n+            if (JaketConfigurationUtils.isExcludedType(target)) {\r\n+                break;\r\n+            }\r\n+\r\n+            Field[] fields = target.getDeclaredFields();\r\n+            for (Field field : fields) {\r\n+                int modifiers = field.getModifiers();\r\n+                if (Modifier.isStatic(modifiers) || Modifier.isTransient(modifiers)) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                result.add(field);\r\n+            }\r\n+            target = target.getSuperclass();\r\n+        }\r\n+\r\n+        return result;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get all public, non-static methods of the Class passed in.\r\n+     * <p>\r\n+     *\r\n+     * @param clazz Class to parse.\r\n+     * @return methods list\r\n+     */\r\n+    public static List<Method> getPublicNonStaticMethods(final Class<?> clazz) {\r\n+        List<Method> result = new ArrayList<Method>();\r\n+\r\n+        Method[] methods = clazz.getMethods();\r\n+        for (Method method : methods) {\r\n+            int mod = method.getModifiers();\r\n+            if (Modifier.isPublic(mod) && !Modifier.isStatic(mod)) {\r\n+                result.add(method);\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    private ClassUtils() {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/definition/util/JaketConfigurationUtils.java", "source2": "org/apache/dubbo/metadata/definition/util/JaketConfigurationUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.definition.util;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.io.InputStream;\n-import java.util.Properties;\n-\n-/**\n- * 2015/1/27.\n- */\n-public class JaketConfigurationUtils {\n-\n-    private static final String CONFIGURATION_FILE = \"jaket.properties\";\n-\n-    private static String[] includedInterfacePackages;\n-    private static String[] includedTypePackages;\n-    private static String[] closedTypes;\n-\n-    static {\n-        Properties props = new Properties();\n-        InputStream inStream = JaketConfigurationUtils.class.getClassLoader().getResourceAsStream(CONFIGURATION_FILE);\n-        try {\n-            props.load(inStream);\n-            String value = (String) props.get(\"included_interface_packages\");\n-            if (StringUtils.isNotEmpty(value)) {\n-                includedInterfacePackages = value.split(\",\");\n-            }\n-\n-            value = props.getProperty(\"included_type_packages\");\n-            if (StringUtils.isNotEmpty(value)) {\n-                includedTypePackages = value.split(\",\");\n-            }\n-\n-            value = props.getProperty(\"closed_types\");\n-            if (StringUtils.isNotEmpty(value)) {\n-                closedTypes = value.split(\",\");\n-            }\n-\n-        } catch (Throwable e) {\n-            // Ignore it.\n-        }\n-    }\n-\n-    public static boolean isExcludedInterface(Class<?> clazz) {\n-        if (includedInterfacePackages == null || includedInterfacePackages.length == 0) {\n-            return false;\n-        }\n-\n-        for (String packagePrefix : includedInterfacePackages) {\n-            if (clazz.getCanonicalName().startsWith(packagePrefix)) {\n-                return false;\n-            }\n-        }\n-\n-        return true;\n-    }\n-\n-    public static boolean isExcludedType(Class<?> clazz) {\n-        if (includedTypePackages == null || includedTypePackages.length == 0) {\n-            return false;\n-        }\n-\n-        for (String packagePrefix : includedTypePackages) {\n-            if (clazz.getCanonicalName().startsWith(packagePrefix)) {\n-                return false;\n-            }\n-        }\n-\n-        return true;\n-    }\n-\n-    public static boolean needAnalyzing(Class<?> clazz) {\n-        String canonicalName = clazz.getCanonicalName();\n-\n-        if (closedTypes != null && closedTypes.length > 0) {\n-            for (String type : closedTypes) {\n-                if (canonicalName.startsWith(type)) {\n-                    return false;\n-                }\n-            }\n-        }\n-\n-        return !isExcludedType(clazz);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.definition.util;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.io.InputStream;\r\n+import java.util.Properties;\r\n+\r\n+/**\r\n+ * 2015/1/27.\r\n+ */\r\n+public class JaketConfigurationUtils {\r\n+\r\n+    private static final String CONFIGURATION_FILE = \"jaket.properties\";\r\n+\r\n+    private static String[] includedInterfacePackages;\r\n+    private static String[] includedTypePackages;\r\n+    private static String[] closedTypes;\r\n+\r\n+    static {\r\n+        Properties props = new Properties();\r\n+        InputStream inStream = JaketConfigurationUtils.class.getClassLoader().getResourceAsStream(CONFIGURATION_FILE);\r\n+        try {\r\n+            props.load(inStream);\r\n+            String value = (String) props.get(\"included_interface_packages\");\r\n+            if (StringUtils.isNotEmpty(value)) {\r\n+                includedInterfacePackages = value.split(\",\");\r\n+            }\r\n+\r\n+            value = props.getProperty(\"included_type_packages\");\r\n+            if (StringUtils.isNotEmpty(value)) {\r\n+                includedTypePackages = value.split(\",\");\r\n+            }\r\n+\r\n+            value = props.getProperty(\"closed_types\");\r\n+            if (StringUtils.isNotEmpty(value)) {\r\n+                closedTypes = value.split(\",\");\r\n+            }\r\n+\r\n+        } catch (Throwable e) {\r\n+            // Ignore it.\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean isExcludedInterface(Class<?> clazz) {\r\n+        if (includedInterfacePackages == null || includedInterfacePackages.length == 0) {\r\n+            return false;\r\n+        }\r\n+\r\n+        for (String packagePrefix : includedInterfacePackages) {\r\n+            if (clazz.getCanonicalName().startsWith(packagePrefix)) {\r\n+                return false;\r\n+            }\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    public static boolean isExcludedType(Class<?> clazz) {\r\n+        if (includedTypePackages == null || includedTypePackages.length == 0) {\r\n+            return false;\r\n+        }\r\n+\r\n+        for (String packagePrefix : includedTypePackages) {\r\n+            if (clazz.getCanonicalName().startsWith(packagePrefix)) {\r\n+                return false;\r\n+            }\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    public static boolean needAnalyzing(Class<?> clazz) {\r\n+        String canonicalName = clazz.getCanonicalName();\r\n+\r\n+        if (closedTypes != null && closedTypes.length > 0) {\r\n+            for (String type : closedTypes) {\r\n+                if (canonicalName.startsWith(type)) {\r\n+                    return false;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return !isExcludedType(clazz);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/MetadataReport.java", "source2": "org/apache/dubbo/metadata/report/MetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,77 +1,77 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report;\n-\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.MappingListener;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-public interface MetadataReport {\n-    /**\n-     * Service Definition -- START\n-     **/\n-    void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition);\n-\n-    String getServiceDefinition(MetadataIdentifier metadataIdentifier);\n-\n-    /**\n-     * Application Metadata -- START\n-     **/\n-    default void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\n-    }\n-\n-    default MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\n-        return null;\n-    }\n-\n-    /**\n-     * Service<-->Application Mapping -- START\n-     **/\n-    default Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\n-        return Collections.emptySet();\n-    }\n-\n-    default void registerServiceAppMapping(String serviceKey, String application, URL url) {\n-        return;\n-    }\n-\n-    /**\n-     * deprecated or need triage\n-     **/\n-    void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap);\n-\n-    List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier);\n-\n-    void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url);\n-\n-    void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier);\n-\n-    void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls);\n-\n-    List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report;\r\n+\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.MappingListener;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public interface MetadataReport {\r\n+    /**\r\n+     * Service Definition -- START\r\n+     **/\r\n+    void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition);\r\n+\r\n+    String getServiceDefinition(MetadataIdentifier metadataIdentifier);\r\n+\r\n+    /**\r\n+     * Application Metadata -- START\r\n+     **/\r\n+    default void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\r\n+    }\r\n+\r\n+    default MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Service<-->Application Mapping -- START\r\n+     **/\r\n+    default Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\r\n+        return Collections.emptySet();\r\n+    }\r\n+\r\n+    default void registerServiceAppMapping(String serviceKey, String application, URL url) {\r\n+        return;\r\n+    }\r\n+\r\n+    /**\r\n+     * deprecated or need triage\r\n+     **/\r\n+    void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap);\r\n+\r\n+    List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier);\r\n+\r\n+    void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url);\r\n+\r\n+    void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier);\r\n+\r\n+    void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls);\r\n+\r\n+    List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/MetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/report/MetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- */\n-@SPI(\"redis\")\n-public interface MetadataReportFactory {\n-\n-    @Adaptive({\"protocol\"})\n-    MetadataReport getMetadataReport(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ */\r\n+@SPI(\"redis\")\r\n+public interface MetadataReportFactory {\r\n+\r\n+    @Adaptive({\"protocol\"})\r\n+    MetadataReport getMetadataReport(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/MetadataReportInstance.java", "source2": "org/apache/dubbo/metadata/report/MetadataReportInstance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,86 +1,86 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.config.MetadataReportConfig;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_DIRECTORY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-import static org.apache.dubbo.metadata.report.support.Constants.METADATA_REPORT_KEY;\n-\n-/**\n- * 2019-08-09\n- */\n-public class MetadataReportInstance {\n-\n-    private static AtomicBoolean init = new AtomicBoolean(false);\n-\n-    private static final Map<String, MetadataReport> metadataReports = new HashMap<>();\n-\n-    public static void init(MetadataReportConfig config) {\n-        if (init.get()) {\n-            return;\n-        }\n-        MetadataReportFactory metadataReportFactory = ExtensionLoader.getExtensionLoader(MetadataReportFactory.class).getAdaptiveExtension();\n-        URL url = config.toUrl();\n-        if (METADATA_REPORT_KEY.equals(url.getProtocol())) {\n-            String protocol = url.getParameter(METADATA_REPORT_KEY, DEFAULT_DIRECTORY);\n-            url = URLBuilder.from(url)\n-                    .setProtocol(protocol)\n-                    .removeParameter(METADATA_REPORT_KEY)\n-                    .build();\n-        }\n-        url = url.addParameterIfAbsent(APPLICATION_KEY, ApplicationModel.getApplicationConfig().getName());\n-        String relatedRegistryId = config.getRegistry() == null ? DEFAULT_KEY : config.getRegistry();\n-//        RegistryConfig registryConfig = ApplicationModel.getConfigManager().getRegistry(relatedRegistryId)\n-//                .orElseThrow(() -> new IllegalStateException(\"Registry id \" + relatedRegistryId + \" does not exist.\"));\n-        metadataReports.put(relatedRegistryId, metadataReportFactory.getMetadataReport(url));\n-        init.set(true);\n-    }\n-\n-    public static Map<String, MetadataReport> getMetadataReports(boolean checked) {\n-        if (checked) {\n-            checkInit();\n-        }\n-        return metadataReports;\n-    }\n-\n-    public static MetadataReport getMetadataReport(String registryKey) {\n-        checkInit();\n-        MetadataReport metadataReport = metadataReports.get(registryKey);\n-        if (metadataReport == null) {\n-            metadataReport = metadataReports.values().iterator().next();\n-        }\n-        return metadataReport;\n-    }\n-\n-\n-    private static void checkInit() {\n-        if (!init.get()) {\n-            throw new IllegalStateException(\"the metadata report was not inited.\");\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.config.MetadataReportConfig;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_DIRECTORY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.METADATA_REPORT_KEY;\r\n+\r\n+/**\r\n+ * 2019-08-09\r\n+ */\r\n+public class MetadataReportInstance {\r\n+\r\n+    private static AtomicBoolean init = new AtomicBoolean(false);\r\n+\r\n+    private static final Map<String, MetadataReport> metadataReports = new HashMap<>();\r\n+\r\n+    public static void init(MetadataReportConfig config) {\r\n+        if (init.get()) {\r\n+            return;\r\n+        }\r\n+        MetadataReportFactory metadataReportFactory = ExtensionLoader.getExtensionLoader(MetadataReportFactory.class).getAdaptiveExtension();\r\n+        URL url = config.toUrl();\r\n+        if (METADATA_REPORT_KEY.equals(url.getProtocol())) {\r\n+            String protocol = url.getParameter(METADATA_REPORT_KEY, DEFAULT_DIRECTORY);\r\n+            url = URLBuilder.from(url)\r\n+                    .setProtocol(protocol)\r\n+                    .removeParameter(METADATA_REPORT_KEY)\r\n+                    .build();\r\n+        }\r\n+        url = url.addParameterIfAbsent(APPLICATION_KEY, ApplicationModel.getApplicationConfig().getName());\r\n+        String relatedRegistryId = config.getRegistry() == null ? DEFAULT_KEY : config.getRegistry();\r\n+//        RegistryConfig registryConfig = ApplicationModel.getConfigManager().getRegistry(relatedRegistryId)\r\n+//                .orElseThrow(() -> new IllegalStateException(\"Registry id \" + relatedRegistryId + \" does not exist.\"));\r\n+        metadataReports.put(relatedRegistryId, metadataReportFactory.getMetadataReport(url));\r\n+        init.set(true);\r\n+    }\r\n+\r\n+    public static Map<String, MetadataReport> getMetadataReports(boolean checked) {\r\n+        if (checked) {\r\n+            checkInit();\r\n+        }\r\n+        return metadataReports;\r\n+    }\r\n+\r\n+    public static MetadataReport getMetadataReport(String registryKey) {\r\n+        checkInit();\r\n+        MetadataReport metadataReport = metadataReports.get(registryKey);\r\n+        if (metadataReport == null) {\r\n+            metadataReport = metadataReports.values().iterator().next();\r\n+        }\r\n+        return metadataReport;\r\n+    }\r\n+\r\n+\r\n+    private static void checkInit() {\r\n+        if (!init.get()) {\r\n+            throw new IllegalStateException(\"the metadata report was not inited.\");\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/BaseApplicationMetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/BaseApplicationMetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.common.utils.PathUtils.buildPath;\n-import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_PATH_TAG;\n-import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\n-\n-/**\n- * The Base class of MetadataIdentifier for service scope\n- * <p>\n- * 2019-08-09\n- */\n-public class BaseApplicationMetadataIdentifier {\n-    String application;\n-\n-    String getUniqueKey(KeyTypeEnum keyType, String... params) {\n-        if (keyType == KeyTypeEnum.PATH) {\n-            return getFilePathKey(params);\n-        }\n-        return getIdentifierKey(params);\n-    }\n-\n-    String getIdentifierKey(String... params) {\n-        return application + joinParams(KEY_SEPARATOR, params);\n-    }\n-\n-    private String joinParams(String joinChar, String... params) {\n-        if (params == null || params.length == 0) {\n-            return \"\";\n-        }\n-        StringBuilder sb = new StringBuilder();\n-        for (String param : params) {\n-            sb.append(joinChar);\n-            sb.append(param);\n-        }\n-        return sb.toString();\n-    }\n-\n-    private String getFilePathKey(String... params) {\n-        return getFilePathKey(DEFAULT_PATH_TAG, params);\n-    }\n-\n-    private String getFilePathKey(String pathTag, String... params) {\n-        return buildPath(pathTag, application, joinParams(PATH_SEPARATOR, params));\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.common.utils.PathUtils.buildPath;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_PATH_TAG;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\r\n+\r\n+/**\r\n+ * The Base class of MetadataIdentifier for service scope\r\n+ * <p>\r\n+ * 2019-08-09\r\n+ */\r\n+public class BaseApplicationMetadataIdentifier {\r\n+    String application;\r\n+\r\n+    String getUniqueKey(KeyTypeEnum keyType, String... params) {\r\n+        if (keyType == KeyTypeEnum.PATH) {\r\n+            return getFilePathKey(params);\r\n+        }\r\n+        return getIdentifierKey(params);\r\n+    }\r\n+\r\n+    String getIdentifierKey(String... params) {\r\n+        return application + joinParams(KEY_SEPARATOR, params);\r\n+    }\r\n+\r\n+    private String joinParams(String joinChar, String... params) {\r\n+        if (params == null || params.length == 0) {\r\n+            return \"\";\r\n+        }\r\n+        StringBuilder sb = new StringBuilder();\r\n+        for (String param : params) {\r\n+            sb.append(joinChar);\r\n+            sb.append(param);\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private String getFilePathKey(String... params) {\r\n+        return getFilePathKey(DEFAULT_PATH_TAG, params);\r\n+    }\r\n+\r\n+    private String getFilePathKey(String pathTag, String... params) {\r\n+        return buildPath(pathTag, application, joinParams(PATH_SEPARATOR, params));\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/BaseMetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/BaseMetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-public interface BaseMetadataIdentifier {\n-\n-    String getUniqueKey(KeyTypeEnum keyType);\n-\n-    String getIdentifierKey();\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+public interface BaseMetadataIdentifier {\r\n+\r\n+    String getUniqueKey(KeyTypeEnum keyType);\r\n+\r\n+    String getIdentifierKey();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/BaseServiceMetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_PATH_TAG;\n-import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\n-\n-/**\n- * The Base class of MetadataIdentifier for service scope\n- * <p>\n- * 2019-08-09\n- */\n-public class BaseServiceMetadataIdentifier {\n-    String serviceInterface;\n-    String version;\n-    String group;\n-    String side;\n-\n-    String getUniqueKey(KeyTypeEnum keyType, String... params) {\n-        if (keyType == KeyTypeEnum.PATH) {\n-            return getFilePathKey(params);\n-        }\n-        return getIdentifierKey(params);\n-    }\n-\n-    String getIdentifierKey(String... params) {\n-\n-        return serviceInterface\n-                + KEY_SEPARATOR + (version == null ? \"\" : version)\n-                + KEY_SEPARATOR + (group == null ? \"\" : group)\n-                + KEY_SEPARATOR + (side == null ? \"\" : side)\n-                + joinParams(KEY_SEPARATOR, params);\n-    }\n-\n-    private String joinParams(String joinChar, String... params) {\n-        if (params == null || params.length == 0) {\n-            return \"\";\n-        }\n-        StringBuilder sb = new StringBuilder();\n-        for (String param : params) {\n-            if (param == null) {\n-                continue;\n-            }\n-            sb.append(joinChar);\n-            sb.append(param);\n-        }\n-        return sb.toString();\n-    }\n-\n-    private String getFilePathKey(String... params) {\n-        return getFilePathKey(DEFAULT_PATH_TAG, params);\n-    }\n-\n-    private String getFilePathKey(String pathTag, String... params) {\n-        return pathTag\n-                + (StringUtils.isEmpty(toServicePath()) ? \"\" : (PATH_SEPARATOR + toServicePath()))\n-                + (version == null ? \"\" : (PATH_SEPARATOR + version))\n-                + (group == null ? \"\" : (PATH_SEPARATOR + group))\n-                + (side == null ? \"\" : (PATH_SEPARATOR + side))\n-                + joinParams(PATH_SEPARATOR, params);\n-    }\n-\n-    public String toServicePath() {\n-        if (ANY_VALUE.equals(serviceInterface)) {\n-            return \"\";\n-        }\n-        return URL.encode(serviceInterface);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_PATH_TAG;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\r\n+\r\n+/**\r\n+ * The Base class of MetadataIdentifier for service scope\r\n+ * <p>\r\n+ * 2019-08-09\r\n+ */\r\n+public class BaseServiceMetadataIdentifier {\r\n+    String serviceInterface;\r\n+    String version;\r\n+    String group;\r\n+    String side;\r\n+\r\n+    String getUniqueKey(KeyTypeEnum keyType, String... params) {\r\n+        if (keyType == KeyTypeEnum.PATH) {\r\n+            return getFilePathKey(params);\r\n+        }\r\n+        return getIdentifierKey(params);\r\n+    }\r\n+\r\n+    String getIdentifierKey(String... params) {\r\n+\r\n+        return serviceInterface\r\n+                + KEY_SEPARATOR + (version == null ? \"\" : version)\r\n+                + KEY_SEPARATOR + (group == null ? \"\" : group)\r\n+                + KEY_SEPARATOR + (side == null ? \"\" : side)\r\n+                + joinParams(KEY_SEPARATOR, params);\r\n+    }\r\n+\r\n+    private String joinParams(String joinChar, String... params) {\r\n+        if (params == null || params.length == 0) {\r\n+            return \"\";\r\n+        }\r\n+        StringBuilder sb = new StringBuilder();\r\n+        for (String param : params) {\r\n+            if (param == null) {\r\n+                continue;\r\n+            }\r\n+            sb.append(joinChar);\r\n+            sb.append(param);\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private String getFilePathKey(String... params) {\r\n+        return getFilePathKey(DEFAULT_PATH_TAG, params);\r\n+    }\r\n+\r\n+    private String getFilePathKey(String pathTag, String... params) {\r\n+        return pathTag\r\n+                + (StringUtils.isEmpty(toServicePath()) ? \"\" : (PATH_SEPARATOR + toServicePath()))\r\n+                + (version == null ? \"\" : (PATH_SEPARATOR + version))\r\n+                + (group == null ? \"\" : (PATH_SEPARATOR + group))\r\n+                + (side == null ? \"\" : (PATH_SEPARATOR + side))\r\n+                + joinParams(PATH_SEPARATOR, params);\r\n+    }\r\n+\r\n+    public String toServicePath() {\r\n+        if (ANY_VALUE.equals(serviceInterface)) {\r\n+            return \"\";\r\n+        }\r\n+        return URL.encode(serviceInterface);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java", "source2": "org/apache/dubbo/metadata/report/identifier/KeyTypeEnum.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.common.utils.PathUtils.buildPath;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\n-\n-/**\n- * 2019-08-15\n- */\n-public enum KeyTypeEnum {\n-\n-    PATH(PATH_SEPARATOR) {\n-        public String build(String one, String... others) {\n-            return buildPath(one, others);\n-        }\n-    },\n-\n-    UNIQUE_KEY(KEY_SEPARATOR) {\n-        public String build(String one, String... others) {\n-            StringBuilder keyBuilder = new StringBuilder(one);\n-            for (String other : others) {\n-                keyBuilder.append(separator).append(isBlank(other) ? EMPTY_STRING : other);\n-            }\n-            return keyBuilder.toString();\n-        }\n-    };\n-\n-    final String separator;\n-\n-    KeyTypeEnum(String separator) {\n-        this.separator = separator;\n-    }\n-\n-    /**\n-     * Build Key\n-     *\n-     * @param one    one\n-     * @param others the others\n-     * @return\n-     * @since 2.7.8\n-     */\n-    public abstract String build(String one, String... others);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.common.utils.PathUtils.buildPath;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.KEY_SEPARATOR;\r\n+\r\n+/**\r\n+ * 2019-08-15\r\n+ */\r\n+public enum KeyTypeEnum {\r\n+\r\n+    PATH(PATH_SEPARATOR) {\r\n+        public String build(String one, String... others) {\r\n+            return buildPath(one, others);\r\n+        }\r\n+    },\r\n+\r\n+    UNIQUE_KEY(KEY_SEPARATOR) {\r\n+        public String build(String one, String... others) {\r\n+            StringBuilder keyBuilder = new StringBuilder(one);\r\n+            for (String other : others) {\r\n+                keyBuilder.append(separator).append(isBlank(other) ? EMPTY_STRING : other);\r\n+            }\r\n+            return keyBuilder.toString();\r\n+        }\r\n+    };\r\n+\r\n+    final String separator;\r\n+\r\n+    KeyTypeEnum(String separator) {\r\n+        this.separator = separator;\r\n+    }\r\n+\r\n+    /**\r\n+     * Build Key\r\n+     *\r\n+     * @param one    one\r\n+     * @param others the others\r\n+     * @return\r\n+     * @since 2.7.8\r\n+     */\r\n+    public abstract String build(String one, String... others);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/MetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,105 +1,105 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-/**\n- * The MetadataIdentifier is used to store method descriptor.\n- * <p>\n- * The name of class is reserved because of it has been used in the previous version.\n- * <p>\n- * 2018/10/25\n- */\n-public class MetadataIdentifier extends BaseServiceMetadataIdentifier implements BaseMetadataIdentifier {\n-\n-    private String application;\n-\n-    public MetadataIdentifier() {\n-    }\n-\n-    public MetadataIdentifier(String serviceInterface, String version, String group, String side, String application) {\n-        this.serviceInterface = serviceInterface;\n-        this.version = version;\n-        this.group = group;\n-        this.side = side;\n-        this.application = application;\n-    }\n-\n-\n-    public MetadataIdentifier(URL url) {\n-        this.serviceInterface = url.getServiceInterface();\n-        this.version = url.getParameter(VERSION_KEY);\n-        this.group = url.getParameter(GROUP_KEY);\n-        this.side = url.getParameter(SIDE_KEY);\n-        setApplication(url.getParameter(APPLICATION_KEY));\n-    }\n-\n-    public String getUniqueKey(KeyTypeEnum keyType) {\n-        return super.getUniqueKey(keyType, application);\n-    }\n-\n-    public String getIdentifierKey() {\n-        return super.getIdentifierKey(application);\n-    }\n-\n-    public String getServiceInterface() {\n-        return serviceInterface;\n-    }\n-\n-    public void setServiceInterface(String serviceInterface) {\n-        this.serviceInterface = serviceInterface;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public String getSide() {\n-        return side;\n-    }\n-\n-    public void setSide(String side) {\n-        this.side = side;\n-    }\n-\n-    public String getApplication() {\n-        return application;\n-    }\n-\n-    public void setApplication(String application) {\n-        this.application = application;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+/**\r\n+ * The MetadataIdentifier is used to store method descriptor.\r\n+ * <p>\r\n+ * The name of class is reserved because of it has been used in the previous version.\r\n+ * <p>\r\n+ * 2018/10/25\r\n+ */\r\n+public class MetadataIdentifier extends BaseServiceMetadataIdentifier implements BaseMetadataIdentifier {\r\n+\r\n+    private String application;\r\n+\r\n+    public MetadataIdentifier() {\r\n+    }\r\n+\r\n+    public MetadataIdentifier(String serviceInterface, String version, String group, String side, String application) {\r\n+        this.serviceInterface = serviceInterface;\r\n+        this.version = version;\r\n+        this.group = group;\r\n+        this.side = side;\r\n+        this.application = application;\r\n+    }\r\n+\r\n+\r\n+    public MetadataIdentifier(URL url) {\r\n+        this.serviceInterface = url.getServiceInterface();\r\n+        this.version = url.getParameter(VERSION_KEY);\r\n+        this.group = url.getParameter(GROUP_KEY);\r\n+        this.side = url.getParameter(SIDE_KEY);\r\n+        setApplication(url.getParameter(APPLICATION_KEY));\r\n+    }\r\n+\r\n+    public String getUniqueKey(KeyTypeEnum keyType) {\r\n+        return super.getUniqueKey(keyType, application);\r\n+    }\r\n+\r\n+    public String getIdentifierKey() {\r\n+        return super.getIdentifierKey(application);\r\n+    }\r\n+\r\n+    public String getServiceInterface() {\r\n+        return serviceInterface;\r\n+    }\r\n+\r\n+    public void setServiceInterface(String serviceInterface) {\r\n+        this.serviceInterface = serviceInterface;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public String getSide() {\r\n+        return side;\r\n+    }\r\n+\r\n+    public void setSide(String side) {\r\n+        this.side = side;\r\n+    }\r\n+\r\n+    public String getApplication() {\r\n+        return application;\r\n+    }\r\n+\r\n+    public void setApplication(String application) {\r\n+        this.application = application;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/ServiceMetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/ServiceMetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,85 +1,85 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.metadata.MetadataConstants.KEY_REVISION_PREFIX;\n-\n-/**\n- * The ServiceMetadataIdentifier is used to store the {@link org.apache.dubbo.common.URL}\n- * that are from provider and consumer\n- * <p>\n- * 2019-08-09\n- */\n-public class ServiceMetadataIdentifier extends BaseServiceMetadataIdentifier implements BaseMetadataIdentifier {\n-\n-    private String revision;\n-    private String protocol;\n-\n-    public ServiceMetadataIdentifier() {\n-    }\n-\n-    public ServiceMetadataIdentifier(String serviceInterface, String version, String group, String side, String revision, String protocol) {\n-        this.serviceInterface = serviceInterface;\n-        this.version = version;\n-        this.group = group;\n-        this.side = side;\n-        this.revision = revision;\n-        this.protocol = protocol;\n-    }\n-\n-\n-    public ServiceMetadataIdentifier(URL url) {\n-        this.serviceInterface = url.getServiceInterface();\n-        this.version = url.getParameter(VERSION_KEY);\n-        this.group = url.getParameter(GROUP_KEY);\n-        this.side = url.getParameter(SIDE_KEY);\n-        this.protocol = url.getProtocol();\n-    }\n-\n-    public String getUniqueKey(KeyTypeEnum keyType) {\n-        return super.getUniqueKey(keyType, protocol, KEY_REVISION_PREFIX + revision);\n-    }\n-\n-    public String getIdentifierKey() {\n-        return super.getIdentifierKey(protocol, KEY_REVISION_PREFIX + revision);\n-    }\n-\n-    public void setRevision(String revision) {\n-        this.revision = revision;\n-    }\n-\n-    public void setProtocol(String protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ServiceMetadataIdentifier{\" +\n-                \"revision='\" + revision + '\\'' +\n-                \", protocol='\" + protocol + '\\'' +\n-                \", serviceInterface='\" + serviceInterface + '\\'' +\n-                \", version='\" + version + '\\'' +\n-                \", group='\" + group + '\\'' +\n-                \", side='\" + side + '\\'' +\n-                \"} \" + super.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.KEY_REVISION_PREFIX;\r\n+\r\n+/**\r\n+ * The ServiceMetadataIdentifier is used to store the {@link org.apache.dubbo.common.URL}\r\n+ * that are from provider and consumer\r\n+ * <p>\r\n+ * 2019-08-09\r\n+ */\r\n+public class ServiceMetadataIdentifier extends BaseServiceMetadataIdentifier implements BaseMetadataIdentifier {\r\n+\r\n+    private String revision;\r\n+    private String protocol;\r\n+\r\n+    public ServiceMetadataIdentifier() {\r\n+    }\r\n+\r\n+    public ServiceMetadataIdentifier(String serviceInterface, String version, String group, String side, String revision, String protocol) {\r\n+        this.serviceInterface = serviceInterface;\r\n+        this.version = version;\r\n+        this.group = group;\r\n+        this.side = side;\r\n+        this.revision = revision;\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+\r\n+    public ServiceMetadataIdentifier(URL url) {\r\n+        this.serviceInterface = url.getServiceInterface();\r\n+        this.version = url.getParameter(VERSION_KEY);\r\n+        this.group = url.getParameter(GROUP_KEY);\r\n+        this.side = url.getParameter(SIDE_KEY);\r\n+        this.protocol = url.getProtocol();\r\n+    }\r\n+\r\n+    public String getUniqueKey(KeyTypeEnum keyType) {\r\n+        return super.getUniqueKey(keyType, protocol, KEY_REVISION_PREFIX + revision);\r\n+    }\r\n+\r\n+    public String getIdentifierKey() {\r\n+        return super.getIdentifierKey(protocol, KEY_REVISION_PREFIX + revision);\r\n+    }\r\n+\r\n+    public void setRevision(String revision) {\r\n+        this.revision = revision;\r\n+    }\r\n+\r\n+    public void setProtocol(String protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ServiceMetadataIdentifier{\" +\r\n+                \"revision='\" + revision + '\\'' +\r\n+                \", protocol='\" + protocol + '\\'' +\r\n+                \", serviceInterface='\" + serviceInterface + '\\'' +\r\n+                \", version='\" + version + '\\'' +\r\n+                \", group='\" + group + '\\'' +\r\n+                \", side='\" + side + '\\'' +\r\n+                \"} \" + super.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/identifier/SubscriberMetadataIdentifier.java", "source2": "org/apache/dubbo/metadata/report/identifier/SubscriberMetadataIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,70 +1,70 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.identifier;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\n-\n-/**\n- * 2019-08-12\n- */\n-public class SubscriberMetadataIdentifier extends BaseApplicationMetadataIdentifier implements BaseMetadataIdentifier {\n-\n-    private String revision;\n-\n-    public SubscriberMetadataIdentifier() {\n-    }\n-\n-    public SubscriberMetadataIdentifier(String application, String revision) {\n-        this.application = application;\n-        this.revision = revision;\n-    }\n-\n-\n-    public SubscriberMetadataIdentifier(URL url) {\n-        this.application = url.getParameter(APPLICATION_KEY, \"\");\n-        this.revision = url.getParameter(REVISION_KEY, \"\");\n-    }\n-\n-    public String getUniqueKey(KeyTypeEnum keyType) {\n-        return super.getUniqueKey(keyType, revision);\n-    }\n-\n-    public String getIdentifierKey() {\n-        return super.getIdentifierKey(revision);\n-    }\n-\n-    public String getApplication() {\n-        return application;\n-    }\n-\n-    public void setApplication(String application) {\n-        this.application = application;\n-    }\n-\n-    public String getRevision() {\n-        return revision;\n-    }\n-\n-    public void setRevision(String revision) {\n-        this.revision = revision;\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.identifier;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\r\n+\r\n+/**\r\n+ * 2019-08-12\r\n+ */\r\n+public class SubscriberMetadataIdentifier extends BaseApplicationMetadataIdentifier implements BaseMetadataIdentifier {\r\n+\r\n+    private String revision;\r\n+\r\n+    public SubscriberMetadataIdentifier() {\r\n+    }\r\n+\r\n+    public SubscriberMetadataIdentifier(String application, String revision) {\r\n+        this.application = application;\r\n+        this.revision = revision;\r\n+    }\r\n+\r\n+\r\n+    public SubscriberMetadataIdentifier(URL url) {\r\n+        this.application = url.getParameter(APPLICATION_KEY, \"\");\r\n+        this.revision = url.getParameter(REVISION_KEY, \"\");\r\n+    }\r\n+\r\n+    public String getUniqueKey(KeyTypeEnum keyType) {\r\n+        return super.getUniqueKey(keyType, revision);\r\n+    }\r\n+\r\n+    public String getIdentifierKey() {\r\n+        return super.getIdentifierKey(revision);\r\n+    }\r\n+\r\n+    public String getApplication() {\r\n+        return application;\r\n+    }\r\n+\r\n+    public void setApplication(String application) {\r\n+        this.application = application;\r\n+    }\r\n+\r\n+    public String getRevision() {\r\n+        return revision;\r\n+    }\r\n+\r\n+    public void setRevision(String revision) {\r\n+        this.revision = revision;\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java", "source2": "org/apache/dubbo/metadata/report/support/AbstractMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,468 +1,468 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-\n-import com.google.gson.Gson;\n-import com.google.gson.reflect.TypeToken;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.io.FileOutputStream;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.RandomAccessFile;\n-import java.lang.reflect.Type;\n-import java.nio.channels.FileChannel;\n-import java.nio.channels.FileLock;\n-import java.util.ArrayList;\n-import java.util.Calendar;\n-import java.util.Iterator;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Properties;\n-import java.util.Set;\n-import java.util.SortedSet;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.ThreadLocalRandom;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-import java.util.concurrent.atomic.AtomicInteger;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.metadata.report.support.Constants.CYCLE_REPORT_KEY;\n-import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_CYCLE_REPORT;\n-import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_RETRY_PERIOD;\n-import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_RETRY_TIMES;\n-import static org.apache.dubbo.metadata.report.support.Constants.RETRY_PERIOD_KEY;\n-import static org.apache.dubbo.metadata.report.support.Constants.RETRY_TIMES_KEY;\n-import static org.apache.dubbo.metadata.report.support.Constants.SYNC_REPORT_KEY;\n-\n-/**\n- *\n- */\n-public abstract class AbstractMetadataReport implements MetadataReport {\n-\n-    protected final static String DEFAULT_ROOT = \"dubbo\";\n-\n-    private static final int ONE_DAY_IN_MILLISECONDS = 60 * 24 * 60 * 1000;\n-    private static final int FOUR_HOURS_IN_MILLISECONDS = 60 * 4 * 60 * 1000;\n-    // Log output\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    // Local disk cache, where the special key value.registries records the list of metadata centers, and the others are the list of notified service providers\n-    final Properties properties = new Properties();\n-    private final ExecutorService reportCacheExecutor = Executors.newFixedThreadPool(1, new NamedThreadFactory(\"DubboSaveMetadataReport\", true));\n-    final Map<MetadataIdentifier, Object> allMetadataReports = new ConcurrentHashMap<>(4);\n-\n-    private final AtomicLong lastCacheChanged = new AtomicLong();\n-    final Map<MetadataIdentifier, Object> failedReports = new ConcurrentHashMap<>(4);\n-    private URL reportURL;\n-    boolean syncReport;\n-    // Local disk cache file\n-    File file;\n-    private AtomicBoolean initialized = new AtomicBoolean(false);\n-    public MetadataReportRetry metadataReportRetry;\n-\n-    public AbstractMetadataReport(URL reportServerURL) {\n-        setUrl(reportServerURL);\n-        // Start file save timer\n-        String defaultFilename = System.getProperty(\"user.home\") + \"/.dubbo/dubbo-metadata-\" + reportServerURL.getParameter(APPLICATION_KEY) + \"-\" + reportServerURL.getAddress().replaceAll(\":\", \"-\") + \".cache\";\n-        String filename = reportServerURL.getParameter(FILE_KEY, defaultFilename);\n-        File file = null;\n-        if (ConfigUtils.isNotEmpty(filename)) {\n-            file = new File(filename);\n-            if (!file.exists() && file.getParentFile() != null && !file.getParentFile().exists()) {\n-                if (!file.getParentFile().mkdirs()) {\n-                    throw new IllegalArgumentException(\"Invalid service store file \" + file + \", cause: Failed to create directory \" + file.getParentFile() + \"!\");\n-                }\n-            }\n-            // if this file exist, firstly delete it.\n-            if (!initialized.getAndSet(true) && file.exists()) {\n-                file.delete();\n-            }\n-        }\n-        this.file = file;\n-        loadProperties();\n-        syncReport = reportServerURL.getParameter(SYNC_REPORT_KEY, false);\n-        metadataReportRetry = new MetadataReportRetry(reportServerURL.getParameter(RETRY_TIMES_KEY, DEFAULT_METADATA_REPORT_RETRY_TIMES),\n-                reportServerURL.getParameter(RETRY_PERIOD_KEY, DEFAULT_METADATA_REPORT_RETRY_PERIOD));\n-        // cycle report the data switch\n-        if (reportServerURL.getParameter(CYCLE_REPORT_KEY, DEFAULT_METADATA_REPORT_CYCLE_REPORT)) {\n-            ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"DubboMetadataReportTimer\", true));\n-            scheduler.scheduleAtFixedRate(this::publishAll, calculateStartTime(), ONE_DAY_IN_MILLISECONDS, TimeUnit.MILLISECONDS);\n-        }\n-    }\n-\n-    public URL getUrl() {\n-        return reportURL;\n-    }\n-\n-    protected void setUrl(URL url) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"metadataReport url == null\");\n-        }\n-        this.reportURL = url;\n-    }\n-\n-    private void doSaveProperties(long version) {\n-        if (version < lastCacheChanged.get()) {\n-            return;\n-        }\n-        if (file == null) {\n-            return;\n-        }\n-        // Save\n-        try {\n-            File lockfile = new File(file.getAbsolutePath() + \".lock\");\n-            if (!lockfile.exists()) {\n-                lockfile.createNewFile();\n-            }\n-            try (RandomAccessFile raf = new RandomAccessFile(lockfile, \"rw\");\n-                 FileChannel channel = raf.getChannel()) {\n-                FileLock lock = channel.tryLock();\n-                if (lock == null) {\n-                    throw new IOException(\"Can not lock the metadataReport cache file \" + file.getAbsolutePath() + \", ignore and retry later, maybe multi java process use the file, please config: dubbo.metadata.file=xxx.properties\");\n-                }\n-                // Save\n-                try {\n-                    if (!file.exists()) {\n-                        file.createNewFile();\n-                    }\n-                    try (FileOutputStream outputFile = new FileOutputStream(file)) {\n-                        properties.store(outputFile, \"Dubbo metadataReport Cache\");\n-                    }\n-                } finally {\n-                    lock.release();\n-                }\n-            }\n-        } catch (Throwable e) {\n-            if (version < lastCacheChanged.get()) {\n-                return;\n-            } else {\n-                reportCacheExecutor.execute(new SaveProperties(lastCacheChanged.incrementAndGet()));\n-            }\n-            logger.warn(\"Failed to save service store file, cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    void loadProperties() {\n-        if (file != null && file.exists()) {\n-            try (InputStream in = new FileInputStream(file)) {\n-                properties.load(in);\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Load service store file \" + file + \", data: \" + properties);\n-                }\n-            } catch (Throwable e) {\n-                logger.warn(\"Failed to load service store file \" + file, e);\n-            }\n-        }\n-    }\n-\n-    private void saveProperties(MetadataIdentifier metadataIdentifier, String value, boolean add, boolean sync) {\n-        if (file == null) {\n-            return;\n-        }\n-\n-        try {\n-            if (add) {\n-                properties.setProperty(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), value);\n-            } else {\n-                properties.remove(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-            }\n-            long version = lastCacheChanged.incrementAndGet();\n-            if (sync) {\n-                new SaveProperties(version).run();\n-            } else {\n-                reportCacheExecutor.execute(new SaveProperties(version));\n-            }\n-\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getUrl().toString();\n-    }\n-\n-    private class SaveProperties implements Runnable {\n-        private long version;\n-\n-        private SaveProperties(long version) {\n-            this.version = version;\n-        }\n-\n-        @Override\n-        public void run() {\n-            doSaveProperties(version);\n-        }\n-    }\n-\n-    @Override\n-    public void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\n-        if (syncReport) {\n-            storeProviderMetadataTask(providerMetadataIdentifier, serviceDefinition);\n-        } else {\n-            reportCacheExecutor.execute(() -> storeProviderMetadataTask(providerMetadataIdentifier, serviceDefinition));\n-        }\n-    }\n-\n-    private void storeProviderMetadataTask(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"store provider metadata. Identifier : \" + providerMetadataIdentifier + \"; definition: \" + serviceDefinition);\n-            }\n-            allMetadataReports.put(providerMetadataIdentifier, serviceDefinition);\n-            failedReports.remove(providerMetadataIdentifier);\n-            Gson gson = new Gson();\n-            String data = gson.toJson(serviceDefinition);\n-            doStoreProviderMetadata(providerMetadataIdentifier, data);\n-            saveProperties(providerMetadataIdentifier, data, true, !syncReport);\n-        } catch (Exception e) {\n-            // retry again. If failed again, throw exception.\n-            failedReports.put(providerMetadataIdentifier, serviceDefinition);\n-            metadataReportRetry.startRetryTask();\n-            logger.error(\"Failed to put provider metadata \" + providerMetadataIdentifier + \" in  \" + serviceDefinition + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\n-        if (syncReport) {\n-            storeConsumerMetadataTask(consumerMetadataIdentifier, serviceParameterMap);\n-        } else {\n-            reportCacheExecutor.execute(() -> storeConsumerMetadataTask(consumerMetadataIdentifier, serviceParameterMap));\n-        }\n-    }\n-\n-    public void storeConsumerMetadataTask(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"store consumer metadata. Identifier : \" + consumerMetadataIdentifier + \"; definition: \" + serviceParameterMap);\n-            }\n-            allMetadataReports.put(consumerMetadataIdentifier, serviceParameterMap);\n-            failedReports.remove(consumerMetadataIdentifier);\n-\n-            Gson gson = new Gson();\n-            String data = gson.toJson(serviceParameterMap);\n-            doStoreConsumerMetadata(consumerMetadataIdentifier, data);\n-            saveProperties(consumerMetadataIdentifier, data, true, !syncReport);\n-        } catch (Exception e) {\n-            // retry again. If failed again, throw exception.\n-            failedReports.put(consumerMetadataIdentifier, serviceParameterMap);\n-            metadataReportRetry.startRetryTask();\n-            logger.error(\"Failed to put consumer metadata \" + consumerMetadataIdentifier + \";  \" + serviceParameterMap + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\n-        if (syncReport) {\n-            doSaveMetadata(metadataIdentifier, url);\n-        } else {\n-            reportCacheExecutor.execute(() -> doSaveMetadata(metadataIdentifier, url));\n-        }\n-    }\n-\n-    @Override\n-    public void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier) {\n-        if (syncReport) {\n-            doRemoveMetadata(metadataIdentifier);\n-        } else {\n-            reportCacheExecutor.execute(() -> doRemoveMetadata(metadataIdentifier));\n-        }\n-    }\n-\n-    @Override\n-    public List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        // TODO, fallback to local cache\n-        return doGetExportedURLs(metadataIdentifier);\n-    }\n-\n-    @Override\n-    public void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls) {\n-        if (syncReport) {\n-            doSaveSubscriberData(subscriberMetadataIdentifier, new Gson().toJson(urls));\n-        } else {\n-            reportCacheExecutor.execute(() -> doSaveSubscriberData(subscriberMetadataIdentifier, new Gson().toJson(urls)));\n-        }\n-    }\n-\n-\n-    @Override\n-    public List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        String content = doGetSubscribedURLs(subscriberMetadataIdentifier);\n-        Type setType = new TypeToken<SortedSet<String>>() {\n-        }.getType();\n-        return new Gson().fromJson(content, setType);\n-    }\n-\n-    String getProtocol(URL url) {\n-        String protocol = url.getParameter(SIDE_KEY);\n-        protocol = protocol == null ? url.getProtocol() : protocol;\n-        return protocol;\n-    }\n-\n-    /**\n-     * @return if need to continue\n-     */\n-    public boolean retry() {\n-        return doHandleMetadataCollection(failedReports);\n-    }\n-\n-    private boolean doHandleMetadataCollection(Map<MetadataIdentifier, Object> metadataMap) {\n-        if (metadataMap.isEmpty()) {\n-            return true;\n-        }\n-        Iterator<Map.Entry<MetadataIdentifier, Object>> iterable = metadataMap.entrySet().iterator();\n-        while (iterable.hasNext()) {\n-            Map.Entry<MetadataIdentifier, Object> item = iterable.next();\n-            if (PROVIDER_SIDE.equals(item.getKey().getSide())) {\n-                this.storeProviderMetadata(item.getKey(), (FullServiceDefinition) item.getValue());\n-            } else if (CONSUMER_SIDE.equals(item.getKey().getSide())) {\n-                this.storeConsumerMetadata(item.getKey(), (Map) item.getValue());\n-            }\n-\n-        }\n-        return false;\n-    }\n-\n-    /**\n-     * not private. just for unittest.\n-     */\n-    void publishAll() {\n-        logger.info(\"start to publish all metadata.\");\n-        this.doHandleMetadataCollection(allMetadataReports);\n-    }\n-\n-    /**\n-     * between 2:00 am to 6:00 am, the time is random.\n-     *\n-     * @return\n-     */\n-    long calculateStartTime() {\n-        Calendar calendar = Calendar.getInstance();\n-        long nowMill = calendar.getTimeInMillis();\n-        calendar.set(Calendar.HOUR_OF_DAY, 0);\n-        calendar.set(Calendar.MINUTE, 0);\n-        calendar.set(Calendar.SECOND, 0);\n-        calendar.set(Calendar.MILLISECOND, 0);\n-        long subtract = calendar.getTimeInMillis() + ONE_DAY_IN_MILLISECONDS - nowMill;\n-        return subtract + (FOUR_HOURS_IN_MILLISECONDS / 2) + ThreadLocalRandom.current().nextInt(FOUR_HOURS_IN_MILLISECONDS);\n-    }\n-\n-    class MetadataReportRetry {\n-        protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-        final ScheduledExecutorService retryExecutor = Executors.newScheduledThreadPool(0, new NamedThreadFactory(\"DubboMetadataReportRetryTimer\", true));\n-        volatile ScheduledFuture retryScheduledFuture;\n-        final AtomicInteger retryCounter = new AtomicInteger(0);\n-        // retry task schedule period\n-        long retryPeriod;\n-        // if no failed report, wait how many times to run retry task.\n-        int retryTimesIfNonFail = 600;\n-\n-        int retryLimit;\n-\n-        public MetadataReportRetry(int retryTimes, int retryPeriod) {\n-            this.retryPeriod = retryPeriod;\n-            this.retryLimit = retryTimes;\n-        }\n-\n-        void startRetryTask() {\n-            if (retryScheduledFuture == null) {\n-                synchronized (retryCounter) {\n-                    if (retryScheduledFuture == null) {\n-                        retryScheduledFuture = retryExecutor.scheduleWithFixedDelay(new Runnable() {\n-                            @Override\n-                            public void run() {\n-                                // Check and connect to the metadata\n-                                try {\n-                                    int times = retryCounter.incrementAndGet();\n-                                    logger.info(\"start to retry task for metadata report. retry times:\" + times);\n-                                    if (retry() && times > retryTimesIfNonFail) {\n-                                        cancelRetryTask();\n-                                    }\n-                                    if (times > retryLimit) {\n-                                        cancelRetryTask();\n-                                    }\n-                                } catch (Throwable t) { // Defensive fault tolerance\n-                                    logger.error(\"Unexpected error occur at failed retry, cause: \" + t.getMessage(), t);\n-                                }\n-                            }\n-                        }, 500, retryPeriod, TimeUnit.MILLISECONDS);\n-                    }\n-                }\n-            }\n-        }\n-\n-        void cancelRetryTask() {\n-            retryScheduledFuture.cancel(false);\n-            retryExecutor.shutdown();\n-        }\n-    }\n-\n-    private void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, List<String> urls) {\n-        if (CollectionUtils.isEmpty(urls)) {\n-            return;\n-        }\n-        List<String> encodedUrlList = new ArrayList<>(urls.size());\n-        for (String url : urls) {\n-            encodedUrlList.add(URL.encode(url));\n-        }\n-        doSaveSubscriberData(subscriberMetadataIdentifier, encodedUrlList);\n-    }\n-\n-    protected abstract void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions);\n-\n-    protected abstract void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String serviceParameterString);\n-\n-    protected abstract void doSaveMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url);\n-\n-    protected abstract void doRemoveMetadata(ServiceMetadataIdentifier metadataIdentifier);\n-\n-    protected abstract List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier);\n-\n-    protected abstract void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr);\n-\n-    protected abstract String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+\r\n+import com.google.gson.Gson;\r\n+import com.google.gson.reflect.TypeToken;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.io.FileOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.RandomAccessFile;\r\n+import java.lang.reflect.Type;\r\n+import java.nio.channels.FileChannel;\r\n+import java.nio.channels.FileLock;\r\n+import java.util.ArrayList;\r\n+import java.util.Calendar;\r\n+import java.util.Iterator;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Properties;\r\n+import java.util.Set;\r\n+import java.util.SortedSet;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.FILE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.CYCLE_REPORT_KEY;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_CYCLE_REPORT;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_RETRY_PERIOD;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.DEFAULT_METADATA_REPORT_RETRY_TIMES;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.RETRY_PERIOD_KEY;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.RETRY_TIMES_KEY;\r\n+import static org.apache.dubbo.metadata.report.support.Constants.SYNC_REPORT_KEY;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public abstract class AbstractMetadataReport implements MetadataReport {\r\n+\r\n+    protected final static String DEFAULT_ROOT = \"dubbo\";\r\n+\r\n+    private static final int ONE_DAY_IN_MILLISECONDS = 60 * 24 * 60 * 1000;\r\n+    private static final int FOUR_HOURS_IN_MILLISECONDS = 60 * 4 * 60 * 1000;\r\n+    // Log output\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    // Local disk cache, where the special key value.registries records the list of metadata centers, and the others are the list of notified service providers\r\n+    final Properties properties = new Properties();\r\n+    private final ExecutorService reportCacheExecutor = Executors.newFixedThreadPool(1, new NamedThreadFactory(\"DubboSaveMetadataReport\", true));\r\n+    final Map<MetadataIdentifier, Object> allMetadataReports = new ConcurrentHashMap<>(4);\r\n+\r\n+    private final AtomicLong lastCacheChanged = new AtomicLong();\r\n+    final Map<MetadataIdentifier, Object> failedReports = new ConcurrentHashMap<>(4);\r\n+    private URL reportURL;\r\n+    boolean syncReport;\r\n+    // Local disk cache file\r\n+    File file;\r\n+    private AtomicBoolean initialized = new AtomicBoolean(false);\r\n+    public MetadataReportRetry metadataReportRetry;\r\n+\r\n+    public AbstractMetadataReport(URL reportServerURL) {\r\n+        setUrl(reportServerURL);\r\n+        // Start file save timer\r\n+        String defaultFilename = System.getProperty(\"user.home\") + \"/.dubbo/dubbo-metadata-\" + reportServerURL.getParameter(APPLICATION_KEY) + \"-\" + reportServerURL.getAddress().replaceAll(\":\", \"-\") + \".cache\";\r\n+        String filename = reportServerURL.getParameter(FILE_KEY, defaultFilename);\r\n+        File file = null;\r\n+        if (ConfigUtils.isNotEmpty(filename)) {\r\n+            file = new File(filename);\r\n+            if (!file.exists() && file.getParentFile() != null && !file.getParentFile().exists()) {\r\n+                if (!file.getParentFile().mkdirs()) {\r\n+                    throw new IllegalArgumentException(\"Invalid service store file \" + file + \", cause: Failed to create directory \" + file.getParentFile() + \"!\");\r\n+                }\r\n+            }\r\n+            // if this file exist, firstly delete it.\r\n+            if (!initialized.getAndSet(true) && file.exists()) {\r\n+                file.delete();\r\n+            }\r\n+        }\r\n+        this.file = file;\r\n+        loadProperties();\r\n+        syncReport = reportServerURL.getParameter(SYNC_REPORT_KEY, false);\r\n+        metadataReportRetry = new MetadataReportRetry(reportServerURL.getParameter(RETRY_TIMES_KEY, DEFAULT_METADATA_REPORT_RETRY_TIMES),\r\n+                reportServerURL.getParameter(RETRY_PERIOD_KEY, DEFAULT_METADATA_REPORT_RETRY_PERIOD));\r\n+        // cycle report the data switch\r\n+        if (reportServerURL.getParameter(CYCLE_REPORT_KEY, DEFAULT_METADATA_REPORT_CYCLE_REPORT)) {\r\n+            ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"DubboMetadataReportTimer\", true));\r\n+            scheduler.scheduleAtFixedRate(this::publishAll, calculateStartTime(), ONE_DAY_IN_MILLISECONDS, TimeUnit.MILLISECONDS);\r\n+        }\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return reportURL;\r\n+    }\r\n+\r\n+    protected void setUrl(URL url) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"metadataReport url == null\");\r\n+        }\r\n+        this.reportURL = url;\r\n+    }\r\n+\r\n+    private void doSaveProperties(long version) {\r\n+        if (version < lastCacheChanged.get()) {\r\n+            return;\r\n+        }\r\n+        if (file == null) {\r\n+            return;\r\n+        }\r\n+        // Save\r\n+        try {\r\n+            File lockfile = new File(file.getAbsolutePath() + \".lock\");\r\n+            if (!lockfile.exists()) {\r\n+                lockfile.createNewFile();\r\n+            }\r\n+            try (RandomAccessFile raf = new RandomAccessFile(lockfile, \"rw\");\r\n+                 FileChannel channel = raf.getChannel()) {\r\n+                FileLock lock = channel.tryLock();\r\n+                if (lock == null) {\r\n+                    throw new IOException(\"Can not lock the metadataReport cache file \" + file.getAbsolutePath() + \", ignore and retry later, maybe multi java process use the file, please config: dubbo.metadata.file=xxx.properties\");\r\n+                }\r\n+                // Save\r\n+                try {\r\n+                    if (!file.exists()) {\r\n+                        file.createNewFile();\r\n+                    }\r\n+                    try (FileOutputStream outputFile = new FileOutputStream(file)) {\r\n+                        properties.store(outputFile, \"Dubbo metadataReport Cache\");\r\n+                    }\r\n+                } finally {\r\n+                    lock.release();\r\n+                }\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            if (version < lastCacheChanged.get()) {\r\n+                return;\r\n+            } else {\r\n+                reportCacheExecutor.execute(new SaveProperties(lastCacheChanged.incrementAndGet()));\r\n+            }\r\n+            logger.warn(\"Failed to save service store file, cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    void loadProperties() {\r\n+        if (file != null && file.exists()) {\r\n+            try (InputStream in = new FileInputStream(file)) {\r\n+                properties.load(in);\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Load service store file \" + file + \", data: \" + properties);\r\n+                }\r\n+            } catch (Throwable e) {\r\n+                logger.warn(\"Failed to load service store file \" + file, e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void saveProperties(MetadataIdentifier metadataIdentifier, String value, boolean add, boolean sync) {\r\n+        if (file == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        try {\r\n+            if (add) {\r\n+                properties.setProperty(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), value);\r\n+            } else {\r\n+                properties.remove(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+            }\r\n+            long version = lastCacheChanged.incrementAndGet();\r\n+            if (sync) {\r\n+                new SaveProperties(version).run();\r\n+            } else {\r\n+                reportCacheExecutor.execute(new SaveProperties(version));\r\n+            }\r\n+\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getUrl().toString();\r\n+    }\r\n+\r\n+    private class SaveProperties implements Runnable {\r\n+        private long version;\r\n+\r\n+        private SaveProperties(long version) {\r\n+            this.version = version;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            doSaveProperties(version);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\r\n+        if (syncReport) {\r\n+            storeProviderMetadataTask(providerMetadataIdentifier, serviceDefinition);\r\n+        } else {\r\n+            reportCacheExecutor.execute(() -> storeProviderMetadataTask(providerMetadataIdentifier, serviceDefinition));\r\n+        }\r\n+    }\r\n+\r\n+    private void storeProviderMetadataTask(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"store provider metadata. Identifier : \" + providerMetadataIdentifier + \"; definition: \" + serviceDefinition);\r\n+            }\r\n+            allMetadataReports.put(providerMetadataIdentifier, serviceDefinition);\r\n+            failedReports.remove(providerMetadataIdentifier);\r\n+            Gson gson = new Gson();\r\n+            String data = gson.toJson(serviceDefinition);\r\n+            doStoreProviderMetadata(providerMetadataIdentifier, data);\r\n+            saveProperties(providerMetadataIdentifier, data, true, !syncReport);\r\n+        } catch (Exception e) {\r\n+            // retry again. If failed again, throw exception.\r\n+            failedReports.put(providerMetadataIdentifier, serviceDefinition);\r\n+            metadataReportRetry.startRetryTask();\r\n+            logger.error(\"Failed to put provider metadata \" + providerMetadataIdentifier + \" in  \" + serviceDefinition + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\r\n+        if (syncReport) {\r\n+            storeConsumerMetadataTask(consumerMetadataIdentifier, serviceParameterMap);\r\n+        } else {\r\n+            reportCacheExecutor.execute(() -> storeConsumerMetadataTask(consumerMetadataIdentifier, serviceParameterMap));\r\n+        }\r\n+    }\r\n+\r\n+    public void storeConsumerMetadataTask(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"store consumer metadata. Identifier : \" + consumerMetadataIdentifier + \"; definition: \" + serviceParameterMap);\r\n+            }\r\n+            allMetadataReports.put(consumerMetadataIdentifier, serviceParameterMap);\r\n+            failedReports.remove(consumerMetadataIdentifier);\r\n+\r\n+            Gson gson = new Gson();\r\n+            String data = gson.toJson(serviceParameterMap);\r\n+            doStoreConsumerMetadata(consumerMetadataIdentifier, data);\r\n+            saveProperties(consumerMetadataIdentifier, data, true, !syncReport);\r\n+        } catch (Exception e) {\r\n+            // retry again. If failed again, throw exception.\r\n+            failedReports.put(consumerMetadataIdentifier, serviceParameterMap);\r\n+            metadataReportRetry.startRetryTask();\r\n+            logger.error(\"Failed to put consumer metadata \" + consumerMetadataIdentifier + \";  \" + serviceParameterMap + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\r\n+        if (syncReport) {\r\n+            doSaveMetadata(metadataIdentifier, url);\r\n+        } else {\r\n+            reportCacheExecutor.execute(() -> doSaveMetadata(metadataIdentifier, url));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        if (syncReport) {\r\n+            doRemoveMetadata(metadataIdentifier);\r\n+        } else {\r\n+            reportCacheExecutor.execute(() -> doRemoveMetadata(metadataIdentifier));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        // TODO, fallback to local cache\r\n+        return doGetExportedURLs(metadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls) {\r\n+        if (syncReport) {\r\n+            doSaveSubscriberData(subscriberMetadataIdentifier, new Gson().toJson(urls));\r\n+        } else {\r\n+            reportCacheExecutor.execute(() -> doSaveSubscriberData(subscriberMetadataIdentifier, new Gson().toJson(urls)));\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        String content = doGetSubscribedURLs(subscriberMetadataIdentifier);\r\n+        Type setType = new TypeToken<SortedSet<String>>() {\r\n+        }.getType();\r\n+        return new Gson().fromJson(content, setType);\r\n+    }\r\n+\r\n+    String getProtocol(URL url) {\r\n+        String protocol = url.getParameter(SIDE_KEY);\r\n+        protocol = protocol == null ? url.getProtocol() : protocol;\r\n+        return protocol;\r\n+    }\r\n+\r\n+    /**\r\n+     * @return if need to continue\r\n+     */\r\n+    public boolean retry() {\r\n+        return doHandleMetadataCollection(failedReports);\r\n+    }\r\n+\r\n+    private boolean doHandleMetadataCollection(Map<MetadataIdentifier, Object> metadataMap) {\r\n+        if (metadataMap.isEmpty()) {\r\n+            return true;\r\n+        }\r\n+        Iterator<Map.Entry<MetadataIdentifier, Object>> iterable = metadataMap.entrySet().iterator();\r\n+        while (iterable.hasNext()) {\r\n+            Map.Entry<MetadataIdentifier, Object> item = iterable.next();\r\n+            if (PROVIDER_SIDE.equals(item.getKey().getSide())) {\r\n+                this.storeProviderMetadata(item.getKey(), (FullServiceDefinition) item.getValue());\r\n+            } else if (CONSUMER_SIDE.equals(item.getKey().getSide())) {\r\n+                this.storeConsumerMetadata(item.getKey(), (Map) item.getValue());\r\n+            }\r\n+\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    /**\r\n+     * not private. just for unittest.\r\n+     */\r\n+    void publishAll() {\r\n+        logger.info(\"start to publish all metadata.\");\r\n+        this.doHandleMetadataCollection(allMetadataReports);\r\n+    }\r\n+\r\n+    /**\r\n+     * between 2:00 am to 6:00 am, the time is random.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    long calculateStartTime() {\r\n+        Calendar calendar = Calendar.getInstance();\r\n+        long nowMill = calendar.getTimeInMillis();\r\n+        calendar.set(Calendar.HOUR_OF_DAY, 0);\r\n+        calendar.set(Calendar.MINUTE, 0);\r\n+        calendar.set(Calendar.SECOND, 0);\r\n+        calendar.set(Calendar.MILLISECOND, 0);\r\n+        long subtract = calendar.getTimeInMillis() + ONE_DAY_IN_MILLISECONDS - nowMill;\r\n+        return subtract + (FOUR_HOURS_IN_MILLISECONDS / 2) + ThreadLocalRandom.current().nextInt(FOUR_HOURS_IN_MILLISECONDS);\r\n+    }\r\n+\r\n+    class MetadataReportRetry {\r\n+        protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+        final ScheduledExecutorService retryExecutor = Executors.newScheduledThreadPool(0, new NamedThreadFactory(\"DubboMetadataReportRetryTimer\", true));\r\n+        volatile ScheduledFuture retryScheduledFuture;\r\n+        final AtomicInteger retryCounter = new AtomicInteger(0);\r\n+        // retry task schedule period\r\n+        long retryPeriod;\r\n+        // if no failed report, wait how many times to run retry task.\r\n+        int retryTimesIfNonFail = 600;\r\n+\r\n+        int retryLimit;\r\n+\r\n+        public MetadataReportRetry(int retryTimes, int retryPeriod) {\r\n+            this.retryPeriod = retryPeriod;\r\n+            this.retryLimit = retryTimes;\r\n+        }\r\n+\r\n+        void startRetryTask() {\r\n+            if (retryScheduledFuture == null) {\r\n+                synchronized (retryCounter) {\r\n+                    if (retryScheduledFuture == null) {\r\n+                        retryScheduledFuture = retryExecutor.scheduleWithFixedDelay(new Runnable() {\r\n+                            @Override\r\n+                            public void run() {\r\n+                                // Check and connect to the metadata\r\n+                                try {\r\n+                                    int times = retryCounter.incrementAndGet();\r\n+                                    logger.info(\"start to retry task for metadata report. retry times:\" + times);\r\n+                                    if (retry() && times > retryTimesIfNonFail) {\r\n+                                        cancelRetryTask();\r\n+                                    }\r\n+                                    if (times > retryLimit) {\r\n+                                        cancelRetryTask();\r\n+                                    }\r\n+                                } catch (Throwable t) { // Defensive fault tolerance\r\n+                                    logger.error(\"Unexpected error occur at failed retry, cause: \" + t.getMessage(), t);\r\n+                                }\r\n+                            }\r\n+                        }, 500, retryPeriod, TimeUnit.MILLISECONDS);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        void cancelRetryTask() {\r\n+            retryScheduledFuture.cancel(false);\r\n+            retryExecutor.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+    private void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, List<String> urls) {\r\n+        if (CollectionUtils.isEmpty(urls)) {\r\n+            return;\r\n+        }\r\n+        List<String> encodedUrlList = new ArrayList<>(urls.size());\r\n+        for (String url : urls) {\r\n+            encodedUrlList.add(URL.encode(url));\r\n+        }\r\n+        doSaveSubscriberData(subscriberMetadataIdentifier, encodedUrlList);\r\n+    }\r\n+\r\n+    protected abstract void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions);\r\n+\r\n+    protected abstract void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String serviceParameterString);\r\n+\r\n+    protected abstract void doSaveMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url);\r\n+\r\n+    protected abstract void doRemoveMetadata(ServiceMetadataIdentifier metadataIdentifier);\r\n+\r\n+    protected abstract List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier);\r\n+\r\n+    protected abstract void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr);\r\n+\r\n+    protected abstract String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/report/support/AbstractMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.report.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.MetadataReportFactory;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-public abstract class AbstractMetadataReportFactory implements MetadataReportFactory {\n-    private static final String EXPORT_KEY = \"export\";\n-    private static final String REFER_KEY = \"refer\";\n-\n-    // The lock for the acquisition process of the registry\n-    private static final ReentrantLock LOCK = new ReentrantLock();\n-\n-    // Registry Collection Map<metadataAddress, MetadataReport>\n-    private static final Map<String, MetadataReport> SERVICE_STORE_MAP = new ConcurrentHashMap<String, MetadataReport>();\n-\n-    @Override\n-    public MetadataReport getMetadataReport(URL url) {\n-        url = url.setPath(MetadataReport.class.getName())\n-                .removeParameters(EXPORT_KEY, REFER_KEY);\n-        String key = url.toServiceString();\n-        // Lock the metadata access process to ensure a single instance of the metadata instance\n-        LOCK.lock();\n-        try {\n-            MetadataReport metadataReport = SERVICE_STORE_MAP.get(key);\n-            if (metadataReport != null) {\n-                return metadataReport;\n-            }\n-            metadataReport = createMetadataReport(url);\n-            if (metadataReport == null) {\n-                throw new IllegalStateException(\"Can not create metadata Report \" + url);\n-            }\n-            SERVICE_STORE_MAP.put(key, metadataReport);\n-            return metadataReport;\n-        } finally {\n-            // Release the lock\n-            LOCK.unlock();\n-        }\n-    }\n-\n-    protected abstract MetadataReport createMetadataReport(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.report.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.MetadataReportFactory;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+public abstract class AbstractMetadataReportFactory implements MetadataReportFactory {\r\n+    private static final String EXPORT_KEY = \"export\";\r\n+    private static final String REFER_KEY = \"refer\";\r\n+\r\n+    // The lock for the acquisition process of the registry\r\n+    private static final ReentrantLock LOCK = new ReentrantLock();\r\n+\r\n+    // Registry Collection Map<metadataAddress, MetadataReport>\r\n+    private static final Map<String, MetadataReport> SERVICE_STORE_MAP = new ConcurrentHashMap<String, MetadataReport>();\r\n+\r\n+    @Override\r\n+    public MetadataReport getMetadataReport(URL url) {\r\n+        url = url.setPath(MetadataReport.class.getName())\r\n+                .removeParameters(EXPORT_KEY, REFER_KEY);\r\n+        String key = url.toServiceString();\r\n+        // Lock the metadata access process to ensure a single instance of the metadata instance\r\n+        LOCK.lock();\r\n+        try {\r\n+            MetadataReport metadataReport = SERVICE_STORE_MAP.get(key);\r\n+            if (metadataReport != null) {\r\n+                return metadataReport;\r\n+            }\r\n+            metadataReport = createMetadataReport(url);\r\n+            if (metadataReport == null) {\r\n+                throw new IllegalStateException(\"Can not create metadata Report \" + url);\r\n+            }\r\n+            SERVICE_STORE_MAP.put(key, metadataReport);\r\n+            return metadataReport;\r\n+        } finally {\r\n+            // Release the lock\r\n+            LOCK.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract MetadataReport createMetadataReport(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/report/support/Constants.java", "source2": "org/apache/dubbo/metadata/report/support/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.metadata.report.support;\n-\n-public interface Constants {\n-    String METADATA_REPORT_KEY = \"metadata\";\n-\n-    String RETRY_TIMES_KEY = \"retry.times\";\n-\n-    Integer DEFAULT_METADATA_REPORT_RETRY_TIMES = 100;\n-\n-    String RETRY_PERIOD_KEY = \"retry.period\";\n-\n-    Integer DEFAULT_METADATA_REPORT_RETRY_PERIOD = 3000;\n-\n-    String SYNC_REPORT_KEY = \"sync.report\";\n-\n-    String CYCLE_REPORT_KEY = \"cycle.report\";\n-\n-    Boolean DEFAULT_METADATA_REPORT_CYCLE_REPORT = true;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.metadata.report.support;\r\n+\r\n+public interface Constants {\r\n+    String METADATA_REPORT_KEY = \"metadata\";\r\n+\r\n+    String RETRY_TIMES_KEY = \"retry.times\";\r\n+\r\n+    Integer DEFAULT_METADATA_REPORT_RETRY_TIMES = 100;\r\n+\r\n+    String RETRY_PERIOD_KEY = \"retry.period\";\r\n+\r\n+    Integer DEFAULT_METADATA_REPORT_RETRY_PERIOD = 3000;\r\n+\r\n+    String SYNC_REPORT_KEY = \"sync.report\";\r\n+\r\n+    String CYCLE_REPORT_KEY = \"cycle.report\";\r\n+\r\n+    Boolean DEFAULT_METADATA_REPORT_CYCLE_REPORT = true;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/AbstractAnnotatedMethodParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/AbstractAnnotatedMethodParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Parameter;\n-\n-import static org.apache.dubbo.common.utils.AnnotationUtils.getValue;\n-import static org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor.buildDefaultValue;\n-\n-/**\n- * The abstract {@link AnnotatedMethodParameterProcessor} implementation\n- *\n- * @since 2.7.6\n- */\n-public abstract class AbstractAnnotatedMethodParameterProcessor implements AnnotatedMethodParameterProcessor {\n-\n-    @Override\n-    public void process(Annotation annotation, Parameter parameter, int parameterIndex, Method method,\n-                        Class<?> serviceType, Class<?> serviceInterfaceClass, RestMethodMetadata restMethodMetadata) {\n-        String annotationValue = getAnnotationValue(annotation, parameter, parameterIndex);\n-        String defaultValue = getDefaultValue(annotation, parameter, parameterIndex);\n-        process(annotationValue, defaultValue, annotation, parameter, parameterIndex, method, restMethodMetadata);\n-    }\n-\n-    protected String getAnnotationValue(Annotation annotation, Parameter parameter, int parameterIndex) {\n-        return getValue(annotation);\n-    }\n-\n-    protected String getDefaultValue(Annotation annotation, Parameter parameter, int parameterIndex) {\n-        return buildDefaultValue(parameterIndex);\n-    }\n-\n-    protected abstract void process(String annotationValue, String defaultValue, Annotation annotation, Object parameter,\n-                                    int parameterIndex, Method method, RestMethodMetadata restMethodMetadata);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Parameter;\r\n+\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.getValue;\r\n+import static org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor.buildDefaultValue;\r\n+\r\n+/**\r\n+ * The abstract {@link AnnotatedMethodParameterProcessor} implementation\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public abstract class AbstractAnnotatedMethodParameterProcessor implements AnnotatedMethodParameterProcessor {\r\n+\r\n+    @Override\r\n+    public void process(Annotation annotation, Parameter parameter, int parameterIndex, Method method,\r\n+                        Class<?> serviceType, Class<?> serviceInterfaceClass, RestMethodMetadata restMethodMetadata) {\r\n+        String annotationValue = getAnnotationValue(annotation, parameter, parameterIndex);\r\n+        String defaultValue = getDefaultValue(annotation, parameter, parameterIndex);\r\n+        process(annotationValue, defaultValue, annotation, parameter, parameterIndex, method, restMethodMetadata);\r\n+    }\r\n+\r\n+    protected String getAnnotationValue(Annotation annotation, Parameter parameter, int parameterIndex) {\r\n+        return getValue(annotation);\r\n+    }\r\n+\r\n+    protected String getDefaultValue(Annotation annotation, Parameter parameter, int parameterIndex) {\r\n+        return buildDefaultValue(parameterIndex);\r\n+    }\r\n+\r\n+    protected abstract void process(String annotationValue, String defaultValue, Annotation annotation, Object parameter,\r\n+                                    int parameterIndex, Method method, RestMethodMetadata restMethodMetadata);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java", "source2": "org/apache/dubbo/metadata/rest/AbstractServiceRestMetadataResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,343 +1,343 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import org.apache.dubbo.common.utils.MethodComparator;\n-import org.apache.dubbo.common.utils.ServiceAnnotationResolver;\n-import org.apache.dubbo.config.annotation.DubboService;\n-import org.apache.dubbo.config.annotation.Service;\n-import org.apache.dubbo.metadata.definition.MethodDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.MethodDefinition;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Parameter;\n-import java.util.ArrayList;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.function.Consumer;\n-\n-import static java.util.Collections.emptyList;\n-import static java.util.Collections.sort;\n-import static java.util.Collections.unmodifiableMap;\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-import static org.apache.dubbo.common.function.ThrowableFunction.execute;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.isAnyAnnotationPresent;\n-import static org.apache.dubbo.common.utils.ClassUtils.forName;\n-import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\n-import static org.apache.dubbo.common.utils.MethodUtils.excludedDeclaredClass;\n-import static org.apache.dubbo.common.utils.MethodUtils.getAllMethods;\n-import static org.apache.dubbo.common.utils.MethodUtils.overrides;\n-\n-/**\n- * The abstract {@link ServiceRestMetadataResolver} class to provider some template methods assemble the instance of\n- * {@link ServiceRestMetadata} will extended by the sub-classes.\n- *\n- * @since 2.7.6\n- */\n-public abstract class AbstractServiceRestMetadataResolver implements ServiceRestMetadataResolver {\n-\n-    private final Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap;\n-\n-    public AbstractServiceRestMetadataResolver() {\n-        this.parameterProcessorsMap = loadAnnotatedMethodParameterProcessors();\n-    }\n-\n-    @Override\n-    public final boolean supports(Class<?> serviceType) {\n-        return isImplementedInterface(serviceType) && isServiceAnnotationPresent(serviceType) && supports0(serviceType);\n-    }\n-\n-    protected final boolean isImplementedInterface(Class<?> serviceType) {\n-        return !getAllInterfaces(serviceType).isEmpty();\n-    }\n-\n-    protected final boolean isServiceAnnotationPresent(Class<?> serviceType) {\n-        return isAnyAnnotationPresent(serviceType, DubboService.class, Service.class,\n-                com.alibaba.dubbo.config.annotation.Service.class);\n-    }\n-\n-    /**\n-     * internal support method\n-     *\n-     * @param serviceType Dubbo Service interface or type\n-     * @return If supports, return <code>true</code>, or <code>false</code>\n-     */\n-    protected abstract boolean supports0(Class<?> serviceType);\n-\n-    @Override\n-    public final ServiceRestMetadata resolve(Class<?> serviceType) {\n-\n-        ServiceRestMetadata serviceRestMetadata = new ServiceRestMetadata();\n-\n-        // Process ServiceRestMetadata\n-        processServiceRestMetadata(serviceRestMetadata, serviceType);\n-\n-        // Process RestMethodMetadata\n-        processAllRestMethodMetadata(serviceRestMetadata, serviceType);\n-\n-        return serviceRestMetadata;\n-    }\n-\n-    /**\n-     * Process the service type including the sub-routines:\n-     * <ul>\n-     *     <li>{@link ServiceRestMetadata#setServiceInterface(String)}</li>\n-     *     <li>{@link ServiceRestMetadata#setVersion(String)}</li>\n-     *     <li>{@link ServiceRestMetadata#setGroup(String)}</li>\n-     * </ul>\n-     *\n-     * @param serviceRestMetadata {@link ServiceRestMetadata}\n-     * @param serviceType         Dubbo Service interface or type\n-     */\n-    protected void processServiceRestMetadata(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\n-        ServiceAnnotationResolver resolver = new ServiceAnnotationResolver(serviceType);\n-        serviceRestMetadata.setServiceInterface(resolver.resolveInterfaceClassName());\n-        serviceRestMetadata.setVersion(resolver.resolveVersion());\n-        serviceRestMetadata.setGroup(resolver.resolveGroup());\n-    }\n-\n-    /**\n-     * Process all {@link RestMethodMetadata}\n-     *\n-     * @param serviceRestMetadata {@link ServiceRestMetadata}\n-     * @param serviceType         Dubbo Service interface or type\n-     */\n-    protected void processAllRestMethodMetadata(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\n-        Class<?> serviceInterfaceClass = resolveServiceInterfaceClass(serviceRestMetadata, serviceType);\n-        Map<Method, Method> serviceMethodsMap = resolveServiceMethodsMap(serviceType, serviceInterfaceClass);\n-        for (Map.Entry<Method, Method> entry : serviceMethodsMap.entrySet()) {\n-            // try the overrider method first\n-            Method serviceMethod = entry.getKey();\n-            // If failed, it indicates the overrider method does not contain metadata , then try the declared method\n-            if (!processRestMethodMetadata(serviceMethod, serviceType, serviceInterfaceClass, serviceRestMetadata.getMeta()::add)) {\n-                Method declaredServiceMethod = entry.getValue();\n-                processRestMethodMetadata(declaredServiceMethod, serviceType, serviceInterfaceClass,\n-                        serviceRestMetadata.getMeta()::add);\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Resolve a map of all public services methods from the specified service type and its interface class, whose key is the\n-     * declared method, and the value is the overrider method\n-     *\n-     * @param serviceType           the service interface implementation class\n-     * @param serviceInterfaceClass the service interface class\n-     * @return non-null read-only {@link Map}\n-     */\n-    protected Map<Method, Method> resolveServiceMethodsMap(Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        Map<Method, Method> serviceMethodsMap = new LinkedHashMap<>();\n-        // exclude the public methods declared in java.lang.Object.class\n-        List<Method> declaredServiceMethods = new ArrayList<>(getAllMethods(serviceInterfaceClass, excludedDeclaredClass(Object.class)));\n-        List<Method> serviceMethods = new ArrayList<>(getAllMethods(serviceType, excludedDeclaredClass(Object.class)));\n-\n-        // sort methods\n-        sort(declaredServiceMethods, MethodComparator.INSTANCE);\n-        sort(serviceMethods, MethodComparator.INSTANCE);\n-\n-        for (Method declaredServiceMethod : declaredServiceMethods) {\n-            for (Method serviceMethod : serviceMethods) {\n-                if (overrides(serviceMethod, declaredServiceMethod)) {\n-                    serviceMethodsMap.put(serviceMethod, declaredServiceMethod);\n-                    continue;\n-                }\n-            }\n-        }\n-        // make them to be read-only\n-        return unmodifiableMap(serviceMethodsMap);\n-    }\n-\n-    /**\n-     * Resolve the class of Dubbo Service interface\n-     *\n-     * @param serviceRestMetadata {@link ServiceRestMetadata}\n-     * @param serviceType         Dubbo Service interface or type\n-     * @return non-null\n-     * @throws RuntimeException If the class is not found, the {@link RuntimeException} wraps the cause will be thrown\n-     */\n-    protected Class<?> resolveServiceInterfaceClass(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\n-        return execute(serviceType.getClassLoader(), classLoader -> {\n-            String serviceInterface = serviceRestMetadata.getServiceInterface();\n-            return forName(serviceInterface, classLoader);\n-        });\n-    }\n-\n-    /**\n-     * Process the single {@link RestMethodMetadata} by the specified {@link Consumer} if present\n-     *\n-     * @param serviceMethod         Dubbo Service method\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @param metadataToProcess     {@link RestMethodMetadata} to process if present\n-     * @return if processed successfully, return <code>true</code>, or <code>false</code>\n-     */\n-    protected boolean processRestMethodMetadata(Method serviceMethod, Class<?> serviceType,\n-                                                Class<?> serviceInterfaceClass,\n-                                                Consumer<RestMethodMetadata> metadataToProcess) {\n-\n-        if (!isRestCapableMethod(serviceMethod, serviceType, serviceInterfaceClass)) {\n-            return false;\n-        }\n-\n-        String requestPath = resolveRequestPath(serviceMethod, serviceType, serviceInterfaceClass); // requestPath is required\n-\n-        if (requestPath == null) {\n-            return false;\n-        }\n-\n-        String requestMethod = resolveRequestMethod(serviceMethod, serviceType, serviceInterfaceClass); // requestMethod is required\n-\n-        if (requestMethod == null) {\n-            return false;\n-        }\n-\n-        RestMethodMetadata metadata = new RestMethodMetadata();\n-\n-        MethodDefinition methodDefinition = resolveMethodDefinition(serviceMethod, serviceType, serviceInterfaceClass);\n-        // Set MethodDefinition\n-        metadata.setMethod(methodDefinition);\n-\n-        // process the annotated method parameters\n-        processAnnotatedMethodParameters(serviceMethod, serviceType, serviceInterfaceClass, metadata);\n-\n-        // process produces\n-        Set<String> produces = new LinkedHashSet<>();\n-        processProduces(serviceMethod, serviceType, serviceInterfaceClass, produces);\n-\n-        // process consumes\n-        Set<String> consumes = new LinkedHashSet<>();\n-        processConsumes(serviceMethod, serviceType, serviceInterfaceClass, consumes);\n-\n-        // Initialize RequestMetadata\n-        RequestMetadata request = metadata.getRequest();\n-        request.setPath(requestPath);\n-        request.setMethod(requestMethod);\n-        request.setProduces(produces);\n-        request.setConsumes(consumes);\n-\n-        // Post-Process\n-        postResolveRestMethodMetadata(serviceMethod, serviceType, serviceInterfaceClass, metadata);\n-\n-        // Accept RestMethodMetadata\n-        metadataToProcess.accept(metadata);\n-\n-        return true;\n-    }\n-\n-    /**\n-     * Test the service method is capable of REST or not?\n-     *\n-     * @param serviceMethod         Dubbo Service method\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @return If capable, return <code>true</code>\n-     */\n-    protected abstract boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?>\n-            serviceInterfaceClass);\n-\n-    /**\n-     * Resolve the request method\n-     *\n-     * @param serviceMethod         Dubbo Service method\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @return if can't be resolve, return <code>null</code>\n-     */\n-    protected abstract String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?>\n-            serviceInterfaceClass);\n-\n-    /**\n-     * Resolve the request path\n-     *\n-     * @param serviceMethod         Dubbo Service method\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @return if can't be resolve, return <code>null</code>\n-     */\n-    protected abstract String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?>\n-            serviceInterfaceClass);\n-\n-    /**\n-     * Resolve the {@link MethodDefinition}\n-     *\n-     * @param serviceMethod         Dubbo Service method\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @return if can't be resolve, return <code>null</code>\n-     * @see MethodDefinitionBuilder\n-     */\n-    protected MethodDefinition resolveMethodDefinition(Method serviceMethod, Class<?> serviceType,\n-                                                       Class<?> serviceInterfaceClass) {\n-        MethodDefinitionBuilder builder = new MethodDefinitionBuilder();\n-        return builder.build(serviceMethod);\n-    }\n-\n-    private void processAnnotatedMethodParameters(Method serviceMethod, Class<?> serviceType,\n-                                                  Class<?> serviceInterfaceClass, RestMethodMetadata metadata) {\n-        int paramCount = serviceMethod.getParameterCount();\n-        Parameter[] parameters = serviceMethod.getParameters();\n-        for (int i = 0; i < paramCount; i++) {\n-            Parameter parameter = parameters[i];\n-            // Add indexed parameter name\n-            metadata.addIndexToName(i, parameter.getName());\n-            processAnnotatedMethodParameter(parameter, i, serviceMethod, serviceType, serviceInterfaceClass, metadata);\n-        }\n-    }\n-\n-    private void processAnnotatedMethodParameter(Parameter parameter, int parameterIndex, Method serviceMethod,\n-                                                 Class<?> serviceType, Class<?> serviceInterfaceClass,\n-                                                 RestMethodMetadata metadata) {\n-        Annotation[] annotations = parameter.getAnnotations();\n-        for (Annotation annotation : annotations) {\n-            String annotationType = annotation.annotationType().getName();\n-            parameterProcessorsMap.getOrDefault(annotationType, emptyList())\n-                    .forEach(processor -> {\n-                        processor.process(annotation, parameter, parameterIndex, serviceMethod, serviceType,\n-                                serviceInterfaceClass, metadata);\n-                    });\n-        }\n-    }\n-\n-    protected abstract void processProduces(Method serviceMethod, Class<?> serviceType, Class<?>\n-            serviceInterfaceClass,\n-                                            Set<String> produces);\n-\n-    protected abstract void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?>\n-            serviceInterfaceClass,\n-                                            Set<String> consumes);\n-\n-    protected void postResolveRestMethodMetadata(Method serviceMethod, Class<?> serviceType,\n-                                                 Class<?> serviceInterfaceClass, RestMethodMetadata metadata) {\n-    }\n-\n-    private static Map<String, List<AnnotatedMethodParameterProcessor>> loadAnnotatedMethodParameterProcessors() {\n-        Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap = new LinkedHashMap<>();\n-        getExtensionLoader(AnnotatedMethodParameterProcessor.class)\n-                .getSupportedExtensionInstances()\n-                .forEach(processor -> {\n-                    List<AnnotatedMethodParameterProcessor> processors =\n-                            parameterProcessorsMap.computeIfAbsent(processor.getAnnotationType(), k -> new LinkedList<>());\n-                    processors.add(processor);\n-                });\n-        return parameterProcessorsMap;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import org.apache.dubbo.common.utils.MethodComparator;\r\n+import org.apache.dubbo.common.utils.ServiceAnnotationResolver;\r\n+import org.apache.dubbo.config.annotation.DubboService;\r\n+import org.apache.dubbo.config.annotation.Service;\r\n+import org.apache.dubbo.metadata.definition.MethodDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.MethodDefinition;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Parameter;\r\n+import java.util.ArrayList;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.function.Consumer;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+import static java.util.Collections.sort;\r\n+import static java.util.Collections.unmodifiableMap;\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+import static org.apache.dubbo.common.function.ThrowableFunction.execute;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.isAnyAnnotationPresent;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.forName;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getAllInterfaces;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.excludedDeclaredClass;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.getAllMethods;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.overrides;\r\n+\r\n+/**\r\n+ * The abstract {@link ServiceRestMetadataResolver} class to provider some template methods assemble the instance of\r\n+ * {@link ServiceRestMetadata} will extended by the sub-classes.\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public abstract class AbstractServiceRestMetadataResolver implements ServiceRestMetadataResolver {\r\n+\r\n+    private final Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap;\r\n+\r\n+    public AbstractServiceRestMetadataResolver() {\r\n+        this.parameterProcessorsMap = loadAnnotatedMethodParameterProcessors();\r\n+    }\r\n+\r\n+    @Override\r\n+    public final boolean supports(Class<?> serviceType) {\r\n+        return isImplementedInterface(serviceType) && isServiceAnnotationPresent(serviceType) && supports0(serviceType);\r\n+    }\r\n+\r\n+    protected final boolean isImplementedInterface(Class<?> serviceType) {\r\n+        return !getAllInterfaces(serviceType).isEmpty();\r\n+    }\r\n+\r\n+    protected final boolean isServiceAnnotationPresent(Class<?> serviceType) {\r\n+        return isAnyAnnotationPresent(serviceType, DubboService.class, Service.class,\r\n+                com.alibaba.dubbo.config.annotation.Service.class);\r\n+    }\r\n+\r\n+    /**\r\n+     * internal support method\r\n+     *\r\n+     * @param serviceType Dubbo Service interface or type\r\n+     * @return If supports, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    protected abstract boolean supports0(Class<?> serviceType);\r\n+\r\n+    @Override\r\n+    public final ServiceRestMetadata resolve(Class<?> serviceType) {\r\n+\r\n+        ServiceRestMetadata serviceRestMetadata = new ServiceRestMetadata();\r\n+\r\n+        // Process ServiceRestMetadata\r\n+        processServiceRestMetadata(serviceRestMetadata, serviceType);\r\n+\r\n+        // Process RestMethodMetadata\r\n+        processAllRestMethodMetadata(serviceRestMetadata, serviceType);\r\n+\r\n+        return serviceRestMetadata;\r\n+    }\r\n+\r\n+    /**\r\n+     * Process the service type including the sub-routines:\r\n+     * <ul>\r\n+     *     <li>{@link ServiceRestMetadata#setServiceInterface(String)}</li>\r\n+     *     <li>{@link ServiceRestMetadata#setVersion(String)}</li>\r\n+     *     <li>{@link ServiceRestMetadata#setGroup(String)}</li>\r\n+     * </ul>\r\n+     *\r\n+     * @param serviceRestMetadata {@link ServiceRestMetadata}\r\n+     * @param serviceType         Dubbo Service interface or type\r\n+     */\r\n+    protected void processServiceRestMetadata(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\r\n+        ServiceAnnotationResolver resolver = new ServiceAnnotationResolver(serviceType);\r\n+        serviceRestMetadata.setServiceInterface(resolver.resolveInterfaceClassName());\r\n+        serviceRestMetadata.setVersion(resolver.resolveVersion());\r\n+        serviceRestMetadata.setGroup(resolver.resolveGroup());\r\n+    }\r\n+\r\n+    /**\r\n+     * Process all {@link RestMethodMetadata}\r\n+     *\r\n+     * @param serviceRestMetadata {@link ServiceRestMetadata}\r\n+     * @param serviceType         Dubbo Service interface or type\r\n+     */\r\n+    protected void processAllRestMethodMetadata(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\r\n+        Class<?> serviceInterfaceClass = resolveServiceInterfaceClass(serviceRestMetadata, serviceType);\r\n+        Map<Method, Method> serviceMethodsMap = resolveServiceMethodsMap(serviceType, serviceInterfaceClass);\r\n+        for (Map.Entry<Method, Method> entry : serviceMethodsMap.entrySet()) {\r\n+            // try the overrider method first\r\n+            Method serviceMethod = entry.getKey();\r\n+            // If failed, it indicates the overrider method does not contain metadata , then try the declared method\r\n+            if (!processRestMethodMetadata(serviceMethod, serviceType, serviceInterfaceClass, serviceRestMetadata.getMeta()::add)) {\r\n+                Method declaredServiceMethod = entry.getValue();\r\n+                processRestMethodMetadata(declaredServiceMethod, serviceType, serviceInterfaceClass,\r\n+                        serviceRestMetadata.getMeta()::add);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve a map of all public services methods from the specified service type and its interface class, whose key is the\r\n+     * declared method, and the value is the overrider method\r\n+     *\r\n+     * @param serviceType           the service interface implementation class\r\n+     * @param serviceInterfaceClass the service interface class\r\n+     * @return non-null read-only {@link Map}\r\n+     */\r\n+    protected Map<Method, Method> resolveServiceMethodsMap(Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        Map<Method, Method> serviceMethodsMap = new LinkedHashMap<>();\r\n+        // exclude the public methods declared in java.lang.Object.class\r\n+        List<Method> declaredServiceMethods = new ArrayList<>(getAllMethods(serviceInterfaceClass, excludedDeclaredClass(Object.class)));\r\n+        List<Method> serviceMethods = new ArrayList<>(getAllMethods(serviceType, excludedDeclaredClass(Object.class)));\r\n+\r\n+        // sort methods\r\n+        sort(declaredServiceMethods, MethodComparator.INSTANCE);\r\n+        sort(serviceMethods, MethodComparator.INSTANCE);\r\n+\r\n+        for (Method declaredServiceMethod : declaredServiceMethods) {\r\n+            for (Method serviceMethod : serviceMethods) {\r\n+                if (overrides(serviceMethod, declaredServiceMethod)) {\r\n+                    serviceMethodsMap.put(serviceMethod, declaredServiceMethod);\r\n+                    continue;\r\n+                }\r\n+            }\r\n+        }\r\n+        // make them to be read-only\r\n+        return unmodifiableMap(serviceMethodsMap);\r\n+    }\r\n+\r\n+    /**\r\n+     * Resolve the class of Dubbo Service interface\r\n+     *\r\n+     * @param serviceRestMetadata {@link ServiceRestMetadata}\r\n+     * @param serviceType         Dubbo Service interface or type\r\n+     * @return non-null\r\n+     * @throws RuntimeException If the class is not found, the {@link RuntimeException} wraps the cause will be thrown\r\n+     */\r\n+    protected Class<?> resolveServiceInterfaceClass(ServiceRestMetadata serviceRestMetadata, Class<?> serviceType) {\r\n+        return execute(serviceType.getClassLoader(), classLoader -> {\r\n+            String serviceInterface = serviceRestMetadata.getServiceInterface();\r\n+            return forName(serviceInterface, classLoader);\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Process the single {@link RestMethodMetadata} by the specified {@link Consumer} if present\r\n+     *\r\n+     * @param serviceMethod         Dubbo Service method\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @param metadataToProcess     {@link RestMethodMetadata} to process if present\r\n+     * @return if processed successfully, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    protected boolean processRestMethodMetadata(Method serviceMethod, Class<?> serviceType,\r\n+                                                Class<?> serviceInterfaceClass,\r\n+                                                Consumer<RestMethodMetadata> metadataToProcess) {\r\n+\r\n+        if (!isRestCapableMethod(serviceMethod, serviceType, serviceInterfaceClass)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        String requestPath = resolveRequestPath(serviceMethod, serviceType, serviceInterfaceClass); // requestPath is required\r\n+\r\n+        if (requestPath == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        String requestMethod = resolveRequestMethod(serviceMethod, serviceType, serviceInterfaceClass); // requestMethod is required\r\n+\r\n+        if (requestMethod == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        RestMethodMetadata metadata = new RestMethodMetadata();\r\n+\r\n+        MethodDefinition methodDefinition = resolveMethodDefinition(serviceMethod, serviceType, serviceInterfaceClass);\r\n+        // Set MethodDefinition\r\n+        metadata.setMethod(methodDefinition);\r\n+\r\n+        // process the annotated method parameters\r\n+        processAnnotatedMethodParameters(serviceMethod, serviceType, serviceInterfaceClass, metadata);\r\n+\r\n+        // process produces\r\n+        Set<String> produces = new LinkedHashSet<>();\r\n+        processProduces(serviceMethod, serviceType, serviceInterfaceClass, produces);\r\n+\r\n+        // process consumes\r\n+        Set<String> consumes = new LinkedHashSet<>();\r\n+        processConsumes(serviceMethod, serviceType, serviceInterfaceClass, consumes);\r\n+\r\n+        // Initialize RequestMetadata\r\n+        RequestMetadata request = metadata.getRequest();\r\n+        request.setPath(requestPath);\r\n+        request.setMethod(requestMethod);\r\n+        request.setProduces(produces);\r\n+        request.setConsumes(consumes);\r\n+\r\n+        // Post-Process\r\n+        postResolveRestMethodMetadata(serviceMethod, serviceType, serviceInterfaceClass, metadata);\r\n+\r\n+        // Accept RestMethodMetadata\r\n+        metadataToProcess.accept(metadata);\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Test the service method is capable of REST or not?\r\n+     *\r\n+     * @param serviceMethod         Dubbo Service method\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @return If capable, return <code>true</code>\r\n+     */\r\n+    protected abstract boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?>\r\n+            serviceInterfaceClass);\r\n+\r\n+    /**\r\n+     * Resolve the request method\r\n+     *\r\n+     * @param serviceMethod         Dubbo Service method\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @return if can't be resolve, return <code>null</code>\r\n+     */\r\n+    protected abstract String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?>\r\n+            serviceInterfaceClass);\r\n+\r\n+    /**\r\n+     * Resolve the request path\r\n+     *\r\n+     * @param serviceMethod         Dubbo Service method\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @return if can't be resolve, return <code>null</code>\r\n+     */\r\n+    protected abstract String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?>\r\n+            serviceInterfaceClass);\r\n+\r\n+    /**\r\n+     * Resolve the {@link MethodDefinition}\r\n+     *\r\n+     * @param serviceMethod         Dubbo Service method\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @return if can't be resolve, return <code>null</code>\r\n+     * @see MethodDefinitionBuilder\r\n+     */\r\n+    protected MethodDefinition resolveMethodDefinition(Method serviceMethod, Class<?> serviceType,\r\n+                                                       Class<?> serviceInterfaceClass) {\r\n+        MethodDefinitionBuilder builder = new MethodDefinitionBuilder();\r\n+        return builder.build(serviceMethod);\r\n+    }\r\n+\r\n+    private void processAnnotatedMethodParameters(Method serviceMethod, Class<?> serviceType,\r\n+                                                  Class<?> serviceInterfaceClass, RestMethodMetadata metadata) {\r\n+        int paramCount = serviceMethod.getParameterCount();\r\n+        Parameter[] parameters = serviceMethod.getParameters();\r\n+        for (int i = 0; i < paramCount; i++) {\r\n+            Parameter parameter = parameters[i];\r\n+            // Add indexed parameter name\r\n+            metadata.addIndexToName(i, parameter.getName());\r\n+            processAnnotatedMethodParameter(parameter, i, serviceMethod, serviceType, serviceInterfaceClass, metadata);\r\n+        }\r\n+    }\r\n+\r\n+    private void processAnnotatedMethodParameter(Parameter parameter, int parameterIndex, Method serviceMethod,\r\n+                                                 Class<?> serviceType, Class<?> serviceInterfaceClass,\r\n+                                                 RestMethodMetadata metadata) {\r\n+        Annotation[] annotations = parameter.getAnnotations();\r\n+        for (Annotation annotation : annotations) {\r\n+            String annotationType = annotation.annotationType().getName();\r\n+            parameterProcessorsMap.getOrDefault(annotationType, emptyList())\r\n+                    .forEach(processor -> {\r\n+                        processor.process(annotation, parameter, parameterIndex, serviceMethod, serviceType,\r\n+                                serviceInterfaceClass, metadata);\r\n+                    });\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract void processProduces(Method serviceMethod, Class<?> serviceType, Class<?>\r\n+            serviceInterfaceClass,\r\n+                                            Set<String> produces);\r\n+\r\n+    protected abstract void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?>\r\n+            serviceInterfaceClass,\r\n+                                            Set<String> consumes);\r\n+\r\n+    protected void postResolveRestMethodMetadata(Method serviceMethod, Class<?> serviceType,\r\n+                                                 Class<?> serviceInterfaceClass, RestMethodMetadata metadata) {\r\n+    }\r\n+\r\n+    private static Map<String, List<AnnotatedMethodParameterProcessor>> loadAnnotatedMethodParameterProcessors() {\r\n+        Map<String, List<AnnotatedMethodParameterProcessor>> parameterProcessorsMap = new LinkedHashMap<>();\r\n+        getExtensionLoader(AnnotatedMethodParameterProcessor.class)\r\n+                .getSupportedExtensionInstances()\r\n+                .forEach(processor -> {\r\n+                    List<AnnotatedMethodParameterProcessor> processors =\r\n+                            parameterProcessorsMap.computeIfAbsent(processor.getAnnotationType(), k -> new LinkedList<>());\r\n+                    processors.add(processor);\r\n+                });\r\n+        return parameterProcessorsMap;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/AnnotatedMethodParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/AnnotatedMethodParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,66 +1,66 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-\n-import javax.lang.model.element.VariableElement;\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Parameter;\n-\n-/**\n- * The interface to process the annotated method parameter\n- *\n- * @since 2.7.6\n- */\n-@SPI\n-public interface AnnotatedMethodParameterProcessor extends Prioritized {\n-\n-    /**\n-     * The string presenting the annotation type\n-     *\n-     * @return non-null\n-     */\n-    String getAnnotationType();\n-\n-    /**\n-     * Process the specified method {@link VariableElement parameter}\n-     *\n-     * @param annotation            {@link Annotation the target annotation} whose type is {@link #getAnnotationType()}\n-     * @param parameter             the method parameter\n-     * @param parameterIndex        the index of method parameter\n-     * @param method                {@link Method method that parameter belongs to}\n-     * @param serviceType           Dubbo Service interface or type\n-     * @param serviceInterfaceClass The type of Dubbo Service interface\n-     * @param restMethodMetadata    {@link RestMethodMetadata the metadata is used to update}\n-     */\n-    void process(Annotation annotation, Parameter parameter, int parameterIndex, Method method,\n-                 Class<?> serviceType, Class<?> serviceInterfaceClass, RestMethodMetadata restMethodMetadata);\n-\n-    /**\n-     * Build the default value\n-     *\n-     * @param parameterIndex the index of parameter\n-     * @return the placeholder\n-     */\n-    static String buildDefaultValue(int parameterIndex) {\n-        return \"{\" + parameterIndex + \"}\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+\r\n+import javax.lang.model.element.VariableElement;\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Parameter;\r\n+\r\n+/**\r\n+ * The interface to process the annotated method parameter\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+@SPI\r\n+public interface AnnotatedMethodParameterProcessor extends Prioritized {\r\n+\r\n+    /**\r\n+     * The string presenting the annotation type\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    String getAnnotationType();\r\n+\r\n+    /**\r\n+     * Process the specified method {@link VariableElement parameter}\r\n+     *\r\n+     * @param annotation            {@link Annotation the target annotation} whose type is {@link #getAnnotationType()}\r\n+     * @param parameter             the method parameter\r\n+     * @param parameterIndex        the index of method parameter\r\n+     * @param method                {@link Method method that parameter belongs to}\r\n+     * @param serviceType           Dubbo Service interface or type\r\n+     * @param serviceInterfaceClass The type of Dubbo Service interface\r\n+     * @param restMethodMetadata    {@link RestMethodMetadata the metadata is used to update}\r\n+     */\r\n+    void process(Annotation annotation, Parameter parameter, int parameterIndex, Method method,\r\n+                 Class<?> serviceType, Class<?> serviceInterfaceClass, RestMethodMetadata restMethodMetadata);\r\n+\r\n+    /**\r\n+     * Build the default value\r\n+     *\r\n+     * @param parameterIndex the index of parameter\r\n+     * @return the placeholder\r\n+     */\r\n+    static String buildDefaultValue(int parameterIndex) {\r\n+        return \"{\" + parameterIndex + \"}\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java", "source2": "org/apache/dubbo/metadata/rest/ClassPathServiceRestMetadataReader.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,82 +1,82 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import com.google.gson.Gson;\n-import com.google.gson.JsonArray;\n-import com.google.gson.JsonElement;\n-import com.google.gson.JsonParser;\n-\n-import java.io.InputStream;\n-import java.io.InputStreamReader;\n-import java.net.URL;\n-import java.util.Enumeration;\n-import java.util.LinkedList;\n-import java.util.List;\n-\n-import static java.util.Collections.unmodifiableList;\n-import static org.apache.dubbo.common.function.ThrowableAction.execute;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.METADATA_ENCODING;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SERVICE_REST_METADATA_RESOURCE_PATH;\n-\n-/**\n- * Class-Path based {@link ServiceRestMetadataReader} implementation\n- *\n- * @see ServiceRestMetadataReader\n- * @since 2.7.6\n- */\n-public class ClassPathServiceRestMetadataReader implements ServiceRestMetadataReader {\n-\n-    private final String serviceRestMetadataJsonResourcePath;\n-\n-    public ClassPathServiceRestMetadataReader() {\n-        this(SERVICE_REST_METADATA_RESOURCE_PATH);\n-    }\n-\n-    public ClassPathServiceRestMetadataReader(String serviceRestMetadataJsonResourcePath) {\n-        this.serviceRestMetadataJsonResourcePath = serviceRestMetadataJsonResourcePath;\n-    }\n-\n-    @Override\n-    public List<ServiceRestMetadata> read() {\n-\n-        List<ServiceRestMetadata> serviceRestMetadataList = new LinkedList<>();\n-\n-        ClassLoader classLoader = getClass().getClassLoader();\n-\n-        execute(() -> {\n-            Enumeration<URL> resources = classLoader.getResources(serviceRestMetadataJsonResourcePath);\n-            Gson gson = new Gson();\n-            while (resources.hasMoreElements()) {\n-                URL resource = resources.nextElement();\n-                InputStream inputStream = resource.openStream();\n-                JsonParser parser = new JsonParser();\n-                JsonElement jsonElement = parser.parse(new InputStreamReader(inputStream, METADATA_ENCODING));\n-                if (jsonElement.isJsonArray()) {\n-                    JsonArray jsonArray = jsonElement.getAsJsonArray();\n-                    for (int i = 0; i < jsonArray.size(); i++) {\n-                        JsonElement childJsonElement = jsonArray.get(i);\n-                        ServiceRestMetadata serviceRestMetadata = gson.fromJson(childJsonElement, ServiceRestMetadata.class);\n-                        serviceRestMetadataList.add(serviceRestMetadata);\n-                    }\n-                }\n-            }\n-        });\n-\n-        return unmodifiableList(serviceRestMetadataList);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import com.google.gson.Gson;\r\n+import com.google.gson.JsonArray;\r\n+import com.google.gson.JsonElement;\r\n+import com.google.gson.JsonParser;\r\n+\r\n+import java.io.InputStream;\r\n+import java.io.InputStreamReader;\r\n+import java.net.URL;\r\n+import java.util.Enumeration;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static org.apache.dubbo.common.function.ThrowableAction.execute;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.METADATA_ENCODING;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SERVICE_REST_METADATA_RESOURCE_PATH;\r\n+\r\n+/**\r\n+ * Class-Path based {@link ServiceRestMetadataReader} implementation\r\n+ *\r\n+ * @see ServiceRestMetadataReader\r\n+ * @since 2.7.6\r\n+ */\r\n+public class ClassPathServiceRestMetadataReader implements ServiceRestMetadataReader {\r\n+\r\n+    private final String serviceRestMetadataJsonResourcePath;\r\n+\r\n+    public ClassPathServiceRestMetadataReader() {\r\n+        this(SERVICE_REST_METADATA_RESOURCE_PATH);\r\n+    }\r\n+\r\n+    public ClassPathServiceRestMetadataReader(String serviceRestMetadataJsonResourcePath) {\r\n+        this.serviceRestMetadataJsonResourcePath = serviceRestMetadataJsonResourcePath;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceRestMetadata> read() {\r\n+\r\n+        List<ServiceRestMetadata> serviceRestMetadataList = new LinkedList<>();\r\n+\r\n+        ClassLoader classLoader = getClass().getClassLoader();\r\n+\r\n+        execute(() -> {\r\n+            Enumeration<URL> resources = classLoader.getResources(serviceRestMetadataJsonResourcePath);\r\n+            Gson gson = new Gson();\r\n+            while (resources.hasMoreElements()) {\r\n+                URL resource = resources.nextElement();\r\n+                InputStream inputStream = resource.openStream();\r\n+                JsonParser parser = new JsonParser();\r\n+                JsonElement jsonElement = parser.parse(new InputStreamReader(inputStream, METADATA_ENCODING));\r\n+                if (jsonElement.isJsonArray()) {\r\n+                    JsonArray jsonArray = jsonElement.getAsJsonArray();\r\n+                    for (int i = 0; i < jsonArray.size(); i++) {\r\n+                        JsonElement childJsonElement = jsonArray.get(i);\r\n+                        ServiceRestMetadata serviceRestMetadata = gson.fromJson(childJsonElement, ServiceRestMetadata.class);\r\n+                        serviceRestMetadataList.add(serviceRestMetadata);\r\n+                    }\r\n+                }\r\n+            }\r\n+        });\r\n+\r\n+        return unmodifiableList(serviceRestMetadataList);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java", "source2": "org/apache/dubbo/metadata/rest/DefaultServiceRestMetadataResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import java.lang.reflect.Method;\n-import java.util.Set;\n-\n-\n-/**\n- * The default implementation {@link ServiceRestMetadataResolver}\n- *\n- * @since 2.7.6\n- */\n-public class DefaultServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\n-\n-    @Override\n-    protected boolean supports0(Class<?> serviceType) {\n-        return false;\n-    }\n-\n-    @Override\n-    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        return false;\n-    }\n-\n-    @Override\n-    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        return null;\n-    }\n-\n-    @Override\n-    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        return null;\n-    }\n-\n-    @Override\n-    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> produces) {\n-\n-    }\n-\n-    @Override\n-    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> consumes) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.Set;\r\n+\r\n+\r\n+/**\r\n+ * The default implementation {@link ServiceRestMetadataResolver}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class DefaultServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\r\n+\r\n+    @Override\r\n+    protected boolean supports0(Class<?> serviceType) {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> produces) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> consumes) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/RequestMetadata.java", "source2": "org/apache/dubbo/metadata/rest/RequestMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,226 +1,226 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-\n-import java.io.Serializable;\n-import java.util.Collection;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Set;\n-\n-import static java.util.Collections.unmodifiableMap;\n-import static org.apache.dubbo.common.utils.PathUtils.normalize;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-\n-/**\n- * The metadata class for REST request\n- *\n- * @since 2.7.6\n- */\n-public class RequestMetadata implements Serializable {\n-\n-    private static final long serialVersionUID = -240099840085329958L;\n-\n-    private String method;\n-\n-    private String path;\n-\n-    private Map<String, List<String>> params = new LinkedHashMap<>();\n-\n-    private Map<String, List<String>> headers = new LinkedHashMap<>();\n-\n-    private Set<String> consumes = new LinkedHashSet<>();\n-\n-    private Set<String> produces = new LinkedHashSet<>();\n-\n-    /**\n-     * Default Constructor\n-     */\n-    public RequestMetadata() {\n-    }\n-\n-    public String getMethod() {\n-        return method;\n-    }\n-\n-    public void setMethod(String method) {\n-        this.method = method == null ? null : method.toUpperCase();\n-    }\n-\n-    public String getPath() {\n-        return path;\n-    }\n-\n-    public void setPath(String path) {\n-        this.path = normalize(path);\n-    }\n-\n-    public Map<String, List<String>> getParams() {\n-        return unmodifiableMap(params);\n-    }\n-\n-    public void setParams(Map<String, List<String>> params) {\n-        params(params);\n-    }\n-\n-    private static void add(Map<String, List<String>> multiValueMap, String key, String value) {\n-        if (isBlank(key)) {\n-            return;\n-        }\n-        List<String> values = get(multiValueMap, key, true);\n-        values.add(value);\n-    }\n-\n-    private static <T extends Collection<String>> void addAll(Map<String, List<String>> multiValueMap,\n-                                                              Map<String, T> source) {\n-        for (Map.Entry<String, T> entry : source.entrySet()) {\n-            String key = entry.getKey();\n-            for (String value : entry.getValue()) {\n-                add(multiValueMap, key, value);\n-            }\n-        }\n-    }\n-\n-    private static String getFirst(Map<String, List<String>> multiValueMap, String key) {\n-        List<String> values = get(multiValueMap, key);\n-        return CollectionUtils.isNotEmpty(values) ? values.get(0) : null;\n-    }\n-\n-    private static List<String> get(Map<String, List<String>> multiValueMap, String key) {\n-        return get(multiValueMap, key, false);\n-    }\n-\n-    private static List<String> get(Map<String, List<String>> multiValueMap, String key, boolean createIfAbsent) {\n-        return createIfAbsent ? multiValueMap.computeIfAbsent(key, k -> new LinkedList<>()) : multiValueMap.get(key);\n-    }\n-\n-    public Map<String, List<String>> getHeaders() {\n-        return unmodifiableMap(headers);\n-    }\n-\n-    public void setHeaders(Map<String, List<String>> headers) {\n-        headers(headers);\n-    }\n-\n-    public Set<String> getConsumes() {\n-        return consumes;\n-    }\n-\n-    public void setConsumes(Set<String> consumes) {\n-        this.consumes = consumes;\n-    }\n-\n-    public Set<String> getProduces() {\n-        return produces;\n-    }\n-\n-    public void setProduces(Set<String> produces) {\n-        this.produces = produces;\n-    }\n-\n-    public Set<String> getParamNames() {\n-        return params.keySet();\n-    }\n-\n-    public Set<String> getHeaderNames() {\n-        return headers.keySet();\n-    }\n-\n-//    public List<MediaType> getConsumeMediaTypes() {\n-//        return toMediaTypes(consumes);\n-//    }\n-//\n-//    public List<MediaType> getProduceMediaTypes() {\n-//        return toMediaTypes(produces);\n-//    }\n-\n-    public String getParameter(String name) {\n-        return getFirst(params, name);\n-    }\n-\n-    public String getHeader(String name) {\n-        return getFirst(headers, name);\n-    }\n-\n-    public RequestMetadata addParam(String name, String value) {\n-        add(params, name, value);\n-        return this;\n-    }\n-\n-    public RequestMetadata addHeader(String name, String value) {\n-        add(headers, name, value);\n-        return this;\n-    }\n-\n-    private <T extends Collection<String>> RequestMetadata params(Map<String, T> params) {\n-        addAll(this.params, params);\n-        return this;\n-    }\n-\n-    private <T extends Collection<String>> RequestMetadata headers(Map<String, List<String>> headers) {\n-        if (headers != null && !headers.isEmpty()) {\n-            Map<String, List<String>> httpHeaders = new LinkedHashMap<>();\n-            // Add all headers\n-            addAll(headers, httpHeaders);\n-            // Handles \"Content-Type\" and \"Accept\" headers if present\n-//            mediaTypes(httpHeaders, HttpHeaders.CONTENT_TYPE, this.consumes);\n-//            mediaTypes(httpHeaders, HttpHeaders.ACCEPT, this.produces);\n-            this.headers.putAll(httpHeaders);\n-        }\n-        return this;\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof RequestMetadata)) {\n-            return false;\n-        }\n-        RequestMetadata that = (RequestMetadata) o;\n-        return Objects.equals(method, that.method)\n-                && Objects.equals(path, that.path)\n-                && Objects.equals(consumes, that.consumes)\n-                && Objects.equals(produces, that.produces) &&\n-                // Metadata should not compare the values\n-                Objects.equals(getParamNames(), that.getParamNames())\n-                && Objects.equals(getHeaderNames(), that.getHeaderNames());\n-\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        // The values of metadata should not use for the hashCode() method\n-        return Objects.hash(method, path, consumes, produces, getParamNames(),\n-                getHeaderNames());\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"RequestMetadata{\" + \"method='\" + method + '\\'' + \", path='\" + path + '\\''\n-                + \", params=\" + params + \", headers=\" + headers + \", consumes=\" + consumes\n-                + \", produces=\" + produces + '}';\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.Collection;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+\r\n+import static java.util.Collections.unmodifiableMap;\r\n+import static org.apache.dubbo.common.utils.PathUtils.normalize;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+\r\n+/**\r\n+ * The metadata class for REST request\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class RequestMetadata implements Serializable {\r\n+\r\n+    private static final long serialVersionUID = -240099840085329958L;\r\n+\r\n+    private String method;\r\n+\r\n+    private String path;\r\n+\r\n+    private Map<String, List<String>> params = new LinkedHashMap<>();\r\n+\r\n+    private Map<String, List<String>> headers = new LinkedHashMap<>();\r\n+\r\n+    private Set<String> consumes = new LinkedHashSet<>();\r\n+\r\n+    private Set<String> produces = new LinkedHashSet<>();\r\n+\r\n+    /**\r\n+     * Default Constructor\r\n+     */\r\n+    public RequestMetadata() {\r\n+    }\r\n+\r\n+    public String getMethod() {\r\n+        return method;\r\n+    }\r\n+\r\n+    public void setMethod(String method) {\r\n+        this.method = method == null ? null : method.toUpperCase();\r\n+    }\r\n+\r\n+    public String getPath() {\r\n+        return path;\r\n+    }\r\n+\r\n+    public void setPath(String path) {\r\n+        this.path = normalize(path);\r\n+    }\r\n+\r\n+    public Map<String, List<String>> getParams() {\r\n+        return unmodifiableMap(params);\r\n+    }\r\n+\r\n+    public void setParams(Map<String, List<String>> params) {\r\n+        params(params);\r\n+    }\r\n+\r\n+    private static void add(Map<String, List<String>> multiValueMap, String key, String value) {\r\n+        if (isBlank(key)) {\r\n+            return;\r\n+        }\r\n+        List<String> values = get(multiValueMap, key, true);\r\n+        values.add(value);\r\n+    }\r\n+\r\n+    private static <T extends Collection<String>> void addAll(Map<String, List<String>> multiValueMap,\r\n+                                                              Map<String, T> source) {\r\n+        for (Map.Entry<String, T> entry : source.entrySet()) {\r\n+            String key = entry.getKey();\r\n+            for (String value : entry.getValue()) {\r\n+                add(multiValueMap, key, value);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static String getFirst(Map<String, List<String>> multiValueMap, String key) {\r\n+        List<String> values = get(multiValueMap, key);\r\n+        return CollectionUtils.isNotEmpty(values) ? values.get(0) : null;\r\n+    }\r\n+\r\n+    private static List<String> get(Map<String, List<String>> multiValueMap, String key) {\r\n+        return get(multiValueMap, key, false);\r\n+    }\r\n+\r\n+    private static List<String> get(Map<String, List<String>> multiValueMap, String key, boolean createIfAbsent) {\r\n+        return createIfAbsent ? multiValueMap.computeIfAbsent(key, k -> new LinkedList<>()) : multiValueMap.get(key);\r\n+    }\r\n+\r\n+    public Map<String, List<String>> getHeaders() {\r\n+        return unmodifiableMap(headers);\r\n+    }\r\n+\r\n+    public void setHeaders(Map<String, List<String>> headers) {\r\n+        headers(headers);\r\n+    }\r\n+\r\n+    public Set<String> getConsumes() {\r\n+        return consumes;\r\n+    }\r\n+\r\n+    public void setConsumes(Set<String> consumes) {\r\n+        this.consumes = consumes;\r\n+    }\r\n+\r\n+    public Set<String> getProduces() {\r\n+        return produces;\r\n+    }\r\n+\r\n+    public void setProduces(Set<String> produces) {\r\n+        this.produces = produces;\r\n+    }\r\n+\r\n+    public Set<String> getParamNames() {\r\n+        return params.keySet();\r\n+    }\r\n+\r\n+    public Set<String> getHeaderNames() {\r\n+        return headers.keySet();\r\n+    }\r\n+\r\n+//    public List<MediaType> getConsumeMediaTypes() {\r\n+//        return toMediaTypes(consumes);\r\n+//    }\r\n+//\r\n+//    public List<MediaType> getProduceMediaTypes() {\r\n+//        return toMediaTypes(produces);\r\n+//    }\r\n+\r\n+    public String getParameter(String name) {\r\n+        return getFirst(params, name);\r\n+    }\r\n+\r\n+    public String getHeader(String name) {\r\n+        return getFirst(headers, name);\r\n+    }\r\n+\r\n+    public RequestMetadata addParam(String name, String value) {\r\n+        add(params, name, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public RequestMetadata addHeader(String name, String value) {\r\n+        add(headers, name, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    private <T extends Collection<String>> RequestMetadata params(Map<String, T> params) {\r\n+        addAll(this.params, params);\r\n+        return this;\r\n+    }\r\n+\r\n+    private <T extends Collection<String>> RequestMetadata headers(Map<String, List<String>> headers) {\r\n+        if (headers != null && !headers.isEmpty()) {\r\n+            Map<String, List<String>> httpHeaders = new LinkedHashMap<>();\r\n+            // Add all headers\r\n+            addAll(headers, httpHeaders);\r\n+            // Handles \"Content-Type\" and \"Accept\" headers if present\r\n+//            mediaTypes(httpHeaders, HttpHeaders.CONTENT_TYPE, this.consumes);\r\n+//            mediaTypes(httpHeaders, HttpHeaders.ACCEPT, this.produces);\r\n+            this.headers.putAll(httpHeaders);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof RequestMetadata)) {\r\n+            return false;\r\n+        }\r\n+        RequestMetadata that = (RequestMetadata) o;\r\n+        return Objects.equals(method, that.method)\r\n+                && Objects.equals(path, that.path)\r\n+                && Objects.equals(consumes, that.consumes)\r\n+                && Objects.equals(produces, that.produces) &&\r\n+                // Metadata should not compare the values\r\n+                Objects.equals(getParamNames(), that.getParamNames())\r\n+                && Objects.equals(getHeaderNames(), that.getHeaderNames());\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        // The values of metadata should not use for the hashCode() method\r\n+        return Objects.hash(method, path, consumes, produces, getParamNames(),\r\n+                getHeaderNames());\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"RequestMetadata{\" + \"method='\" + method + '\\'' + \", path='\" + path + '\\''\r\n+                + \", params=\" + params + \", headers=\" + headers + \", consumes=\" + consumes\r\n+                + \", produces=\" + produces + '}';\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/RestMetadataConstants.java", "source2": "org/apache/dubbo/metadata/rest/RestMetadataConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,145 +1,145 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import java.lang.annotation.Annotation;\n-\n-import static org.apache.dubbo.common.utils.ClassUtils.getClassLoader;\n-import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\n-\n-/**\n- * The REST Metadata Constants definition interface\n- *\n- * @since 2.7.6\n- */\n-public interface RestMetadataConstants {\n-\n-    /**\n-     * The encoding of metadata\n-     */\n-    String METADATA_ENCODING = \"UTF-8\";\n-\n-    /**\n-     * {@link ServiceRestMetadata} Resource PATH\n-     */\n-    String SERVICE_REST_METADATA_RESOURCE_PATH = \"META-INF/dubbo/service-rest-metadata.json\";\n-\n-    /**\n-     * JAX-RS\n-     */\n-    interface JAX_RS {\n-\n-        /**\n-         * The annotation class name of @Path\n-         */\n-        String PATH_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Path\";\n-\n-        /**\n-         * The annotation class name of @HttpMethod\n-         */\n-        String HTTP_METHOD_ANNOTATION_CLASS_NAME = \"javax.ws.rs.HttpMethod\";\n-\n-        /**\n-         * The annotation class name of @Produces\n-         */\n-        String PRODUCES_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Produces\";\n-\n-        /**\n-         * The annotation class name of @Consumes\n-         */\n-        String CONSUMES_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Consumes\";\n-\n-        /**\n-         * The annotation class name of @DefaultValue\n-         */\n-        String DEFAULT_VALUE_ANNOTATION_CLASS_NAME = \"javax.ws.rs.DefaultValue\";\n-\n-        /**\n-         * The annotation class name of @FormParam\n-         */\n-        String FORM_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.FormParam\";\n-\n-        /**\n-         * The annotation class name of @HeaderParam\n-         */\n-        String HEADER_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.HeaderParam\";\n-\n-        /**\n-         * The annotation class name of @MatrixParam\n-         */\n-        String MATRIX_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.MatrixParam\";\n-\n-        /**\n-         * The annotation class name of @QueryParam\n-         */\n-        String QUERY_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.QueryParam\";\n-    }\n-\n-    /**\n-     * Spring MVC\n-     */\n-    interface SPRING_MVC {\n-\n-        /**\n-         * The annotation class name of @Controller\n-         */\n-        String CONTROLLER_ANNOTATION_CLASS_NAME = \"org.springframework.stereotype.Controller\";\n-\n-        /**\n-         * The annotation class name of @RequestMapping\n-         */\n-        String REQUEST_MAPPING_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestMapping\";\n-\n-        /**\n-         * The annotation class name of @RequestHeader\n-         */\n-        String REQUEST_HEADER_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestHeader\";\n-\n-        /**\n-         * The annotation class name of @RequestParam\n-         */\n-        String REQUEST_PARAM_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestParam\";\n-\n-        /**\n-         * The class of @Controller\n-         *\n-         * @since 2.7.9\n-         */\n-        Class<? extends Annotation> CONTROLLER_ANNOTATION_CLASS = (Class<? extends Annotation>) resolveClass(CONTROLLER_ANNOTATION_CLASS_NAME, getClassLoader());\n-\n-        /**\n-         * The class of @RequestMapping\n-         *\n-         * @since 2.7.9\n-         */\n-        Class<? extends Annotation> REQUEST_MAPPING_ANNOTATION_CLASS = (Class<? extends Annotation>) resolveClass(REQUEST_MAPPING_ANNOTATION_CLASS_NAME, getClassLoader());\n-\n-        /**\n-         * The annotation class name of AnnotatedElementUtils\n-         *\n-         * @since 2.7.9\n-         */\n-        String ANNOTATED_ELEMENT_UTILS_CLASS_NAME = \"org.springframework.core.annotation.AnnotatedElementUtils\";\n-\n-        /**\n-         * The class of AnnotatedElementUtils\n-         *\n-         * @since 2.7.9\n-         */\n-        Class<?> ANNOTATED_ELEMENT_UTILS_CLASS = resolveClass(ANNOTATED_ELEMENT_UTILS_CLASS_NAME, getClassLoader());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+\r\n+import static org.apache.dubbo.common.utils.ClassUtils.getClassLoader;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.resolveClass;\r\n+\r\n+/**\r\n+ * The REST Metadata Constants definition interface\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface RestMetadataConstants {\r\n+\r\n+    /**\r\n+     * The encoding of metadata\r\n+     */\r\n+    String METADATA_ENCODING = \"UTF-8\";\r\n+\r\n+    /**\r\n+     * {@link ServiceRestMetadata} Resource PATH\r\n+     */\r\n+    String SERVICE_REST_METADATA_RESOURCE_PATH = \"META-INF/dubbo/service-rest-metadata.json\";\r\n+\r\n+    /**\r\n+     * JAX-RS\r\n+     */\r\n+    interface JAX_RS {\r\n+\r\n+        /**\r\n+         * The annotation class name of @Path\r\n+         */\r\n+        String PATH_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Path\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @HttpMethod\r\n+         */\r\n+        String HTTP_METHOD_ANNOTATION_CLASS_NAME = \"javax.ws.rs.HttpMethod\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @Produces\r\n+         */\r\n+        String PRODUCES_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Produces\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @Consumes\r\n+         */\r\n+        String CONSUMES_ANNOTATION_CLASS_NAME = \"javax.ws.rs.Consumes\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @DefaultValue\r\n+         */\r\n+        String DEFAULT_VALUE_ANNOTATION_CLASS_NAME = \"javax.ws.rs.DefaultValue\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @FormParam\r\n+         */\r\n+        String FORM_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.FormParam\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @HeaderParam\r\n+         */\r\n+        String HEADER_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.HeaderParam\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @MatrixParam\r\n+         */\r\n+        String MATRIX_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.MatrixParam\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @QueryParam\r\n+         */\r\n+        String QUERY_PARAM_ANNOTATION_CLASS_NAME = \"javax.ws.rs.QueryParam\";\r\n+    }\r\n+\r\n+    /**\r\n+     * Spring MVC\r\n+     */\r\n+    interface SPRING_MVC {\r\n+\r\n+        /**\r\n+         * The annotation class name of @Controller\r\n+         */\r\n+        String CONTROLLER_ANNOTATION_CLASS_NAME = \"org.springframework.stereotype.Controller\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @RequestMapping\r\n+         */\r\n+        String REQUEST_MAPPING_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestMapping\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @RequestHeader\r\n+         */\r\n+        String REQUEST_HEADER_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestHeader\";\r\n+\r\n+        /**\r\n+         * The annotation class name of @RequestParam\r\n+         */\r\n+        String REQUEST_PARAM_ANNOTATION_CLASS_NAME = \"org.springframework.web.bind.annotation.RequestParam\";\r\n+\r\n+        /**\r\n+         * The class of @Controller\r\n+         *\r\n+         * @since 2.7.9\r\n+         */\r\n+        Class<? extends Annotation> CONTROLLER_ANNOTATION_CLASS = (Class<? extends Annotation>) resolveClass(CONTROLLER_ANNOTATION_CLASS_NAME, getClassLoader());\r\n+\r\n+        /**\r\n+         * The class of @RequestMapping\r\n+         *\r\n+         * @since 2.7.9\r\n+         */\r\n+        Class<? extends Annotation> REQUEST_MAPPING_ANNOTATION_CLASS = (Class<? extends Annotation>) resolveClass(REQUEST_MAPPING_ANNOTATION_CLASS_NAME, getClassLoader());\r\n+\r\n+        /**\r\n+         * The annotation class name of AnnotatedElementUtils\r\n+         *\r\n+         * @since 2.7.9\r\n+         */\r\n+        String ANNOTATED_ELEMENT_UTILS_CLASS_NAME = \"org.springframework.core.annotation.AnnotatedElementUtils\";\r\n+\r\n+        /**\r\n+         * The class of AnnotatedElementUtils\r\n+         *\r\n+         * @since 2.7.9\r\n+         */\r\n+        Class<?> ANNOTATED_ELEMENT_UTILS_CLASS = resolveClass(ANNOTATED_ELEMENT_UTILS_CLASS_NAME, getClassLoader());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/RestMethodMetadata.java", "source2": "org/apache/dubbo/metadata/rest/RestMethodMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,199 +1,199 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import org.apache.dubbo.metadata.definition.model.MethodDefinition;\n-\n-import java.io.Serializable;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-\n-import static java.util.Collections.emptyList;\n-\n-/**\n- * The metadata class for {@link RequestMetadata HTTP(REST) request} and\n- * its binding {@link MethodDefinition method definition}\n- *\n- * @since 2.7.6\n- */\n-public class RestMethodMetadata implements Serializable {\n-\n-    private static final long serialVersionUID = 2935252016200830694L;\n-\n-    private MethodDefinition method;\n-\n-    private RequestMetadata request;\n-\n-    private Integer urlIndex;\n-\n-    private Integer bodyIndex;\n-\n-    private Integer headerMapIndex;\n-\n-    private String bodyType;\n-\n-    private Map<Integer, Collection<String>> indexToName;\n-\n-    private List<String> formParams;\n-\n-    private Map<Integer, Boolean> indexToEncoded;\n-\n-    public MethodDefinition getMethod() {\n-        if (method == null) {\n-            method = new MethodDefinition();\n-        }\n-        return method;\n-    }\n-\n-    public void setMethod(MethodDefinition method) {\n-        this.method = method;\n-    }\n-\n-    public RequestMetadata getRequest() {\n-        if (request == null) {\n-            request = new RequestMetadata();\n-        }\n-        return request;\n-    }\n-\n-    public void setRequest(RequestMetadata request) {\n-        this.request = request;\n-    }\n-\n-    public Integer getUrlIndex() {\n-        return urlIndex;\n-    }\n-\n-    public void setUrlIndex(Integer urlIndex) {\n-        this.urlIndex = urlIndex;\n-    }\n-\n-    public Integer getBodyIndex() {\n-        return bodyIndex;\n-    }\n-\n-    public void setBodyIndex(Integer bodyIndex) {\n-        this.bodyIndex = bodyIndex;\n-    }\n-\n-    public Integer getHeaderMapIndex() {\n-        return headerMapIndex;\n-    }\n-\n-    public void setHeaderMapIndex(Integer headerMapIndex) {\n-        this.headerMapIndex = headerMapIndex;\n-    }\n-\n-    public String getBodyType() {\n-        return bodyType;\n-    }\n-\n-    public void setBodyType(String bodyType) {\n-        this.bodyType = bodyType;\n-    }\n-\n-    public Map<Integer, Collection<String>> getIndexToName() {\n-        if (indexToName == null) {\n-            indexToName = new HashMap<>();\n-        }\n-        return indexToName;\n-    }\n-\n-    public void setIndexToName(Map<Integer, Collection<String>> indexToName) {\n-        this.indexToName = indexToName;\n-    }\n-\n-    public void addIndexToName(Integer index, String name) {\n-        if (index == null) {\n-            return;\n-        }\n-\n-        if (name.startsWith(\"arg\") && name.endsWith(index.toString())) {\n-            // Ignore this value because of the Java byte-code without the metadata of method parameters\n-            return;\n-        }\n-\n-        Map<Integer, Collection<String>> indexToName = getIndexToName();\n-        Collection<String> parameterNames = indexToName.computeIfAbsent(index, i -> new ArrayList<>(1));\n-        parameterNames.add(name);\n-    }\n-\n-    public boolean hasIndexedName(Integer index, String name) {\n-        Map<Integer, Collection<String>> indexToName = getIndexToName();\n-        return indexToName.getOrDefault(index, emptyList()).contains(name);\n-    }\n-\n-    public List<String> getFormParams() {\n-        return formParams;\n-    }\n-\n-    public void setFormParams(List<String> formParams) {\n-        this.formParams = formParams;\n-    }\n-\n-    public Map<Integer, Boolean> getIndexToEncoded() {\n-        return indexToEncoded;\n-    }\n-\n-    public void setIndexToEncoded(Map<Integer, Boolean> indexToEncoded) {\n-        this.indexToEncoded = indexToEncoded;\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof RestMethodMetadata)) {\n-            return false;\n-        }\n-        RestMethodMetadata that = (RestMethodMetadata) o;\n-        return Objects.equals(getMethod(), that.getMethod()) &&\n-                Objects.equals(getRequest(), that.getRequest()) &&\n-                Objects.equals(getUrlIndex(), that.getUrlIndex()) &&\n-                Objects.equals(getBodyIndex(), that.getBodyIndex()) &&\n-                Objects.equals(getHeaderMapIndex(), that.getHeaderMapIndex()) &&\n-                Objects.equals(getBodyType(), that.getBodyType()) &&\n-                Objects.equals(getFormParams(), that.getFormParams()) &&\n-                Objects.equals(getIndexToEncoded(), that.getIndexToEncoded());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getMethod(), getRequest(), getUrlIndex(), getBodyIndex(), getHeaderMapIndex(), getBodyType(), getFormParams(), getIndexToEncoded());\n-    }\n-\n-    @Override\n-    public String toString() {\n-        final StringBuilder sb = new StringBuilder(\"RestMethodMetadata{\");\n-        sb.append(\"method=\").append(method);\n-        sb.append(\", request=\").append(request);\n-        sb.append(\", urlIndex=\").append(urlIndex);\n-        sb.append(\", bodyIndex=\").append(bodyIndex);\n-        sb.append(\", headerMapIndex=\").append(headerMapIndex);\n-        sb.append(\", bodyType='\").append(bodyType).append('\\'');\n-        sb.append(\", indexToName=\").append(indexToName);\n-        sb.append(\", formParams=\").append(formParams);\n-        sb.append(\", indexToEncoded=\").append(indexToEncoded);\n-        sb.append('}');\n-        return sb.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import org.apache.dubbo.metadata.definition.model.MethodDefinition;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+\r\n+/**\r\n+ * The metadata class for {@link RequestMetadata HTTP(REST) request} and\r\n+ * its binding {@link MethodDefinition method definition}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class RestMethodMetadata implements Serializable {\r\n+\r\n+    private static final long serialVersionUID = 2935252016200830694L;\r\n+\r\n+    private MethodDefinition method;\r\n+\r\n+    private RequestMetadata request;\r\n+\r\n+    private Integer urlIndex;\r\n+\r\n+    private Integer bodyIndex;\r\n+\r\n+    private Integer headerMapIndex;\r\n+\r\n+    private String bodyType;\r\n+\r\n+    private Map<Integer, Collection<String>> indexToName;\r\n+\r\n+    private List<String> formParams;\r\n+\r\n+    private Map<Integer, Boolean> indexToEncoded;\r\n+\r\n+    public MethodDefinition getMethod() {\r\n+        if (method == null) {\r\n+            method = new MethodDefinition();\r\n+        }\r\n+        return method;\r\n+    }\r\n+\r\n+    public void setMethod(MethodDefinition method) {\r\n+        this.method = method;\r\n+    }\r\n+\r\n+    public RequestMetadata getRequest() {\r\n+        if (request == null) {\r\n+            request = new RequestMetadata();\r\n+        }\r\n+        return request;\r\n+    }\r\n+\r\n+    public void setRequest(RequestMetadata request) {\r\n+        this.request = request;\r\n+    }\r\n+\r\n+    public Integer getUrlIndex() {\r\n+        return urlIndex;\r\n+    }\r\n+\r\n+    public void setUrlIndex(Integer urlIndex) {\r\n+        this.urlIndex = urlIndex;\r\n+    }\r\n+\r\n+    public Integer getBodyIndex() {\r\n+        return bodyIndex;\r\n+    }\r\n+\r\n+    public void setBodyIndex(Integer bodyIndex) {\r\n+        this.bodyIndex = bodyIndex;\r\n+    }\r\n+\r\n+    public Integer getHeaderMapIndex() {\r\n+        return headerMapIndex;\r\n+    }\r\n+\r\n+    public void setHeaderMapIndex(Integer headerMapIndex) {\r\n+        this.headerMapIndex = headerMapIndex;\r\n+    }\r\n+\r\n+    public String getBodyType() {\r\n+        return bodyType;\r\n+    }\r\n+\r\n+    public void setBodyType(String bodyType) {\r\n+        this.bodyType = bodyType;\r\n+    }\r\n+\r\n+    public Map<Integer, Collection<String>> getIndexToName() {\r\n+        if (indexToName == null) {\r\n+            indexToName = new HashMap<>();\r\n+        }\r\n+        return indexToName;\r\n+    }\r\n+\r\n+    public void setIndexToName(Map<Integer, Collection<String>> indexToName) {\r\n+        this.indexToName = indexToName;\r\n+    }\r\n+\r\n+    public void addIndexToName(Integer index, String name) {\r\n+        if (index == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (name.startsWith(\"arg\") && name.endsWith(index.toString())) {\r\n+            // Ignore this value because of the Java byte-code without the metadata of method parameters\r\n+            return;\r\n+        }\r\n+\r\n+        Map<Integer, Collection<String>> indexToName = getIndexToName();\r\n+        Collection<String> parameterNames = indexToName.computeIfAbsent(index, i -> new ArrayList<>(1));\r\n+        parameterNames.add(name);\r\n+    }\r\n+\r\n+    public boolean hasIndexedName(Integer index, String name) {\r\n+        Map<Integer, Collection<String>> indexToName = getIndexToName();\r\n+        return indexToName.getOrDefault(index, emptyList()).contains(name);\r\n+    }\r\n+\r\n+    public List<String> getFormParams() {\r\n+        return formParams;\r\n+    }\r\n+\r\n+    public void setFormParams(List<String> formParams) {\r\n+        this.formParams = formParams;\r\n+    }\r\n+\r\n+    public Map<Integer, Boolean> getIndexToEncoded() {\r\n+        return indexToEncoded;\r\n+    }\r\n+\r\n+    public void setIndexToEncoded(Map<Integer, Boolean> indexToEncoded) {\r\n+        this.indexToEncoded = indexToEncoded;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof RestMethodMetadata)) {\r\n+            return false;\r\n+        }\r\n+        RestMethodMetadata that = (RestMethodMetadata) o;\r\n+        return Objects.equals(getMethod(), that.getMethod()) &&\r\n+                Objects.equals(getRequest(), that.getRequest()) &&\r\n+                Objects.equals(getUrlIndex(), that.getUrlIndex()) &&\r\n+                Objects.equals(getBodyIndex(), that.getBodyIndex()) &&\r\n+                Objects.equals(getHeaderMapIndex(), that.getHeaderMapIndex()) &&\r\n+                Objects.equals(getBodyType(), that.getBodyType()) &&\r\n+                Objects.equals(getFormParams(), that.getFormParams()) &&\r\n+                Objects.equals(getIndexToEncoded(), that.getIndexToEncoded());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getMethod(), getRequest(), getUrlIndex(), getBodyIndex(), getHeaderMapIndex(), getBodyType(), getFormParams(), getIndexToEncoded());\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        final StringBuilder sb = new StringBuilder(\"RestMethodMetadata{\");\r\n+        sb.append(\"method=\").append(method);\r\n+        sb.append(\", request=\").append(request);\r\n+        sb.append(\", urlIndex=\").append(urlIndex);\r\n+        sb.append(\", bodyIndex=\").append(bodyIndex);\r\n+        sb.append(\", headerMapIndex=\").append(headerMapIndex);\r\n+        sb.append(\", bodyType='\").append(bodyType).append('\\'');\r\n+        sb.append(\", indexToName=\").append(indexToName);\r\n+        sb.append(\", formParams=\").append(formParams);\r\n+        sb.append(\", indexToEncoded=\").append(indexToEncoded);\r\n+        sb.append('}');\r\n+        return sb.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/ServiceRestMetadata.java", "source2": "org/apache/dubbo/metadata/rest/ServiceRestMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-import java.io.Serializable;\n-import java.util.LinkedHashSet;\n-import java.util.Objects;\n-import java.util.Set;\n-\n-/**\n- * The metadata class for {@link RequestMetadata HTTP(REST) request} and\n- * its binding Dubbo service metadata\n- *\n- * @since 2.7.6\n- */\n-public class ServiceRestMetadata implements Serializable {\n-\n-    private static final long serialVersionUID = -4549723140727443569L;\n-\n-    private String serviceInterface;\n-\n-    private String version;\n-\n-    private String group;\n-\n-    private Set<RestMethodMetadata> meta;\n-\n-    public String getServiceInterface() {\n-        return serviceInterface;\n-    }\n-\n-    public void setServiceInterface(String serviceInterface) {\n-        this.serviceInterface = serviceInterface;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public Set<RestMethodMetadata> getMeta() {\n-        if (meta == null) {\n-            meta = new LinkedHashSet<>();\n-        }\n-        return meta;\n-    }\n-\n-    public void setMeta(Set<RestMethodMetadata> meta) {\n-        this.meta = meta;\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof ServiceRestMetadata)) {\n-            return false;\n-        }\n-        ServiceRestMetadata that = (ServiceRestMetadata) o;\n-        return Objects.equals(getServiceInterface(), that.getServiceInterface()) &&\n-                Objects.equals(getVersion(), that.getVersion()) &&\n-                Objects.equals(getGroup(), that.getGroup()) &&\n-                Objects.equals(getMeta(), that.getMeta());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getServiceInterface(), getVersion(), getGroup(), getMeta());\n-    }\n-\n-    @Override\n-    public String toString() {\n-        final StringBuilder sb = new StringBuilder(\"ServiceRestMetadata{\");\n-        sb.append(\"serviceInterface='\").append(serviceInterface).append('\\'');\n-        sb.append(\", version='\").append(version).append('\\'');\n-        sb.append(\", group='\").append(group).append('\\'');\n-        sb.append(\", meta=\").append(meta);\n-        sb.append('}');\n-        return sb.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * The metadata class for {@link RequestMetadata HTTP(REST) request} and\r\n+ * its binding Dubbo service metadata\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class ServiceRestMetadata implements Serializable {\r\n+\r\n+    private static final long serialVersionUID = -4549723140727443569L;\r\n+\r\n+    private String serviceInterface;\r\n+\r\n+    private String version;\r\n+\r\n+    private String group;\r\n+\r\n+    private Set<RestMethodMetadata> meta;\r\n+\r\n+    public String getServiceInterface() {\r\n+        return serviceInterface;\r\n+    }\r\n+\r\n+    public void setServiceInterface(String serviceInterface) {\r\n+        this.serviceInterface = serviceInterface;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public Set<RestMethodMetadata> getMeta() {\r\n+        if (meta == null) {\r\n+            meta = new LinkedHashSet<>();\r\n+        }\r\n+        return meta;\r\n+    }\r\n+\r\n+    public void setMeta(Set<RestMethodMetadata> meta) {\r\n+        this.meta = meta;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof ServiceRestMetadata)) {\r\n+            return false;\r\n+        }\r\n+        ServiceRestMetadata that = (ServiceRestMetadata) o;\r\n+        return Objects.equals(getServiceInterface(), that.getServiceInterface()) &&\r\n+                Objects.equals(getVersion(), that.getVersion()) &&\r\n+                Objects.equals(getGroup(), that.getGroup()) &&\r\n+                Objects.equals(getMeta(), that.getMeta());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getServiceInterface(), getVersion(), getGroup(), getMeta());\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        final StringBuilder sb = new StringBuilder(\"ServiceRestMetadata{\");\r\n+        sb.append(\"serviceInterface='\").append(serviceInterface).append('\\'');\r\n+        sb.append(\", version='\").append(version).append('\\'');\r\n+        sb.append(\", group='\").append(group).append('\\'');\r\n+        sb.append(\", meta=\").append(meta);\r\n+        sb.append('}');\r\n+        return sb.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/ServiceRestMetadataReader.java", "source2": "org/apache/dubbo/metadata/rest/ServiceRestMetadataReader.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.List;\n-\n-/**\n- * An interface to read {@link ServiceRestMetadata}\n- *\n- * @see ServiceRestMetadata\n- * @since 2.7.6\n- */\n-@SPI\n-public interface ServiceRestMetadataReader {\n-\n-    /**\n-     * Read the instances of {@link ServiceRestMetadata}\n-     *\n-     * @return non-null\n-     */\n-    List<ServiceRestMetadata> read();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * An interface to read {@link ServiceRestMetadata}\r\n+ *\r\n+ * @see ServiceRestMetadata\r\n+ * @since 2.7.6\r\n+ */\r\n+@SPI\r\n+public interface ServiceRestMetadataReader {\r\n+\r\n+    /**\r\n+     * Read the instances of {@link ServiceRestMetadata}\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    List<ServiceRestMetadata> read();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/ServiceRestMetadataResolver.java", "source2": "org/apache/dubbo/metadata/rest/ServiceRestMetadataResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest;\n-\n-/**\n- * The interface to resolve the {@link ServiceRestMetadata REST metadata} from the specified\n- * Dubbo Service interface or type.\n- *\n- * @since 2.7.6\n- */\n-public interface ServiceRestMetadataResolver {\n-\n-    /**\n-     * Support to resolve {@link ServiceRestMetadata REST metadata} or not\n-     *\n-     * @param serviceType Dubbo Service interface or type\n-     * @return If supports, return <code>true</code>, or <code>false</code>\n-     */\n-    boolean supports(Class<?> serviceType);\n-\n-    /**\n-     * Resolve the {@link ServiceRestMetadata REST metadata} from the specified\n-     * Dubbo Service interface or type\n-     *\n-     * @param serviceType Dubbo Service interface or type\n-     * @return\n-     */\n-    ServiceRestMetadata resolve(Class<?> serviceType);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest;\r\n+\r\n+/**\r\n+ * The interface to resolve the {@link ServiceRestMetadata REST metadata} from the specified\r\n+ * Dubbo Service interface or type.\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public interface ServiceRestMetadataResolver {\r\n+\r\n+    /**\r\n+     * Support to resolve {@link ServiceRestMetadata REST metadata} or not\r\n+     *\r\n+     * @param serviceType Dubbo Service interface or type\r\n+     * @return If supports, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean supports(Class<?> serviceType);\r\n+\r\n+    /**\r\n+     * Resolve the {@link ServiceRestMetadata REST metadata} from the specified\r\n+     * Dubbo Service interface or type\r\n+     *\r\n+     * @param serviceType Dubbo Service interface or type\r\n+     * @return\r\n+     */\r\n+    ServiceRestMetadata resolve(Class<?> serviceType);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/DefaultValueParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/DefaultValueParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.RequestMetadata;\n-import org.apache.dubbo.metadata.rest.RestMethodMetadata;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.DEFAULT_VALUE_ANNOTATION_CLASS_NAME;\n-\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @DefaultValue\n- * *\n- *\n- * @since 2.7.6\n- */\n-public class DefaultValueParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return DEFAULT_VALUE_ANNOTATION_CLASS_NAME;\n-    }\n-\n-    @Override\n-    protected void process(String annotationValue, String defaultValue, Annotation annotation, Object parameter,\n-                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\n-        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\n-\n-        // process the request parameters\n-        setDefaultValue(requestMetadata.getParams(), defaultValue, annotationValue);\n-        // process the request headers\n-        setDefaultValue(requestMetadata.getHeaders(), defaultValue, annotationValue);\n-    }\n-\n-    private void setDefaultValue(Map<String, List<String>> source, String placeholderValue, String defaultValue) {\n-        OUTTER:\n-        for (Map.Entry<String, List<String>> entry : source.entrySet()) {\n-            List<String> values = entry.getValue();\n-            int size = values.size();\n-            for (int i = 0; i < size; i++) {\n-                String value = values.get(i);\n-                if (placeholderValue.equals(value)) {\n-                    values.set(i, defaultValue);\n-                    break OUTTER;\n-                }\n-            }\n-        }\n-    }\n-\n-    public int getPriority() {\n-        return MIN_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.RequestMetadata;\r\n+import org.apache.dubbo.metadata.rest.RestMethodMetadata;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.DEFAULT_VALUE_ANNOTATION_CLASS_NAME;\r\n+\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @DefaultValue\r\n+ * *\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class DefaultValueParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return DEFAULT_VALUE_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void process(String annotationValue, String defaultValue, Annotation annotation, Object parameter,\r\n+                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\r\n+        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\r\n+\r\n+        // process the request parameters\r\n+        setDefaultValue(requestMetadata.getParams(), defaultValue, annotationValue);\r\n+        // process the request headers\r\n+        setDefaultValue(requestMetadata.getHeaders(), defaultValue, annotationValue);\r\n+    }\r\n+\r\n+    private void setDefaultValue(Map<String, List<String>> source, String placeholderValue, String defaultValue) {\r\n+        OUTTER:\r\n+        for (Map.Entry<String, List<String>> entry : source.entrySet()) {\r\n+            List<String> values = entry.getValue();\r\n+            int size = values.size();\r\n+            for (int i = 0; i < size; i++) {\r\n+                String value = values.get(i);\r\n+                if (placeholderValue.equals(value)) {\r\n+                    values.set(i, defaultValue);\r\n+                    break OUTTER;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public int getPriority() {\r\n+        return MIN_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/FormParamParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/FormParamParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.FORM_PARAM_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @FormParam\n- *\n- * @since 2.7.6\n- */\n-public class FormParamParameterProcessor extends ParamAnnotationParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return FORM_PARAM_ANNOTATION_CLASS_NAME;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.FORM_PARAM_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @FormParam\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class FormParamParameterProcessor extends ParamAnnotationParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return FORM_PARAM_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/HeaderParamParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/HeaderParamParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,49 +1,49 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.RequestMetadata;\n-import org.apache.dubbo.metadata.rest.RestMethodMetadata;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-\n-import static org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor.buildDefaultValue;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.HEADER_PARAM_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @HeaderParam\n- *\n- * @since 2.7.6\n- */\n-public class HeaderParamParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return HEADER_PARAM_ANNOTATION_CLASS_NAME;\n-    }\n-\n-    @Override\n-    protected void process(String headerName, String defaultValue, Annotation annotation, Object parameter,\n-                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\n-        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\n-        // Add the placeholder as header value\n-        requestMetadata.addHeader(headerName, buildDefaultValue(parameterIndex));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.RequestMetadata;\r\n+import org.apache.dubbo.metadata.rest.RestMethodMetadata;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor.buildDefaultValue;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.HEADER_PARAM_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @HeaderParam\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class HeaderParamParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return HEADER_PARAM_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void process(String headerName, String defaultValue, Annotation annotation, Object parameter,\r\n+                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\r\n+        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\r\n+        // Add the placeholder as header value\r\n+        requestMetadata.addHeader(headerName, buildDefaultValue(parameterIndex));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/JAXRSServiceRestMetadataResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,99 +1,99 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;\n-import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-import java.util.Set;\n-import java.util.stream.Stream;\n-\n-import static org.apache.dubbo.common.utils.AnnotationUtils.findAnnotation;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.findMetaAnnotation;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.getValue;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.isAnnotationPresent;\n-import static org.apache.dubbo.common.utils.PathUtils.buildPath;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.CONSUMES_ANNOTATION_CLASS_NAME;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.HTTP_METHOD_ANNOTATION_CLASS_NAME;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.PATH_ANNOTATION_CLASS_NAME;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.PRODUCES_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * JAX-RS {@link ServiceRestMetadataResolver} implementation\n- *\n- * @since 2.7.6\n- */\n-public class JAXRSServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\n-\n-    @Override\n-    protected boolean supports0(Class<?> serviceType) {\n-        return isAnnotationPresent(serviceType, PATH_ANNOTATION_CLASS_NAME);\n-    }\n-\n-    @Override\n-    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        return isAnnotationPresent(serviceMethod, HTTP_METHOD_ANNOTATION_CLASS_NAME);\n-    }\n-\n-    @Override\n-    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        Annotation httpMethod = findMetaAnnotation(serviceMethod, HTTP_METHOD_ANNOTATION_CLASS_NAME);\n-        return getValue(httpMethod);\n-    }\n-\n-    @Override\n-    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        String requestBasePath = resolveRequestPathFromType(serviceType, serviceInterfaceClass);\n-        String requestRelativePath = resolveRequestPathFromMethod(serviceMethod);\n-        return buildPath(requestBasePath, requestRelativePath);\n-    }\n-\n-    private String resolveRequestPathFromType(Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        Annotation path = findAnnotation(serviceType, PATH_ANNOTATION_CLASS_NAME);\n-        if (path == null) {\n-            path = findAnnotation(serviceInterfaceClass, PATH_ANNOTATION_CLASS_NAME);\n-        }\n-        return getValue(path);\n-    }\n-\n-    private String resolveRequestPathFromMethod(Method serviceMethod) {\n-        Annotation path = findAnnotation(serviceMethod, PATH_ANNOTATION_CLASS_NAME);\n-        return getValue(path);\n-    }\n-\n-    @Override\n-    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass,\n-                                   Set<String> produces) {\n-        addAnnotationValues(serviceMethod, PRODUCES_ANNOTATION_CLASS_NAME, produces);\n-    }\n-\n-    @Override\n-    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass,\n-                                   Set<String> consumes) {\n-        addAnnotationValues(serviceMethod, CONSUMES_ANNOTATION_CLASS_NAME, consumes);\n-    }\n-\n-    private void addAnnotationValues(Method serviceMethod, String annotationAttributeName, Set<String> result) {\n-        Annotation annotation = findAnnotation(serviceMethod, annotationAttributeName);\n-        String[] value = getValue(annotation);\n-        if (value != null) {\n-            Stream.of(value).forEach(result::add);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;\r\n+import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Set;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.findAnnotation;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.findMetaAnnotation;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.getValue;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.isAnnotationPresent;\r\n+import static org.apache.dubbo.common.utils.PathUtils.buildPath;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.CONSUMES_ANNOTATION_CLASS_NAME;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.HTTP_METHOD_ANNOTATION_CLASS_NAME;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.PATH_ANNOTATION_CLASS_NAME;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.PRODUCES_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * JAX-RS {@link ServiceRestMetadataResolver} implementation\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class JAXRSServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\r\n+\r\n+    @Override\r\n+    protected boolean supports0(Class<?> serviceType) {\r\n+        return isAnnotationPresent(serviceType, PATH_ANNOTATION_CLASS_NAME);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        return isAnnotationPresent(serviceMethod, HTTP_METHOD_ANNOTATION_CLASS_NAME);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        Annotation httpMethod = findMetaAnnotation(serviceMethod, HTTP_METHOD_ANNOTATION_CLASS_NAME);\r\n+        return getValue(httpMethod);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        String requestBasePath = resolveRequestPathFromType(serviceType, serviceInterfaceClass);\r\n+        String requestRelativePath = resolveRequestPathFromMethod(serviceMethod);\r\n+        return buildPath(requestBasePath, requestRelativePath);\r\n+    }\r\n+\r\n+    private String resolveRequestPathFromType(Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        Annotation path = findAnnotation(serviceType, PATH_ANNOTATION_CLASS_NAME);\r\n+        if (path == null) {\r\n+            path = findAnnotation(serviceInterfaceClass, PATH_ANNOTATION_CLASS_NAME);\r\n+        }\r\n+        return getValue(path);\r\n+    }\r\n+\r\n+    private String resolveRequestPathFromMethod(Method serviceMethod) {\r\n+        Annotation path = findAnnotation(serviceMethod, PATH_ANNOTATION_CLASS_NAME);\r\n+        return getValue(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass,\r\n+                                   Set<String> produces) {\r\n+        addAnnotationValues(serviceMethod, PRODUCES_ANNOTATION_CLASS_NAME, produces);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass,\r\n+                                   Set<String> consumes) {\r\n+        addAnnotationValues(serviceMethod, CONSUMES_ANNOTATION_CLASS_NAME, consumes);\r\n+    }\r\n+\r\n+    private void addAnnotationValues(Method serviceMethod, String annotationAttributeName, Set<String> result) {\r\n+        Annotation annotation = findAnnotation(serviceMethod, annotationAttributeName);\r\n+        String[] value = getValue(annotation);\r\n+        if (value != null) {\r\n+            Stream.of(value).forEach(result::add);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/MatrixParamParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/MatrixParamParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.MATRIX_PARAM_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @MatrixParam\n- *\n- * @since 2.7.6\n- */\n-public class MatrixParamParameterProcessor extends ParamAnnotationParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return MATRIX_PARAM_ANNOTATION_CLASS_NAME;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.MATRIX_PARAM_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @MatrixParam\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class MatrixParamParameterProcessor extends ParamAnnotationParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return MATRIX_PARAM_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/ParamAnnotationParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/ParamAnnotationParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.RequestMetadata;\n-import org.apache.dubbo.metadata.rest.RestMethodMetadata;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-\n-/**\n- * The abstract {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @*Param\n- */\n-public abstract class ParamAnnotationParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\n-\n-    @Override\n-    protected void process(String name, String defaultValue, Annotation annotation, Object parameter,\n-                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\n-        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\n-        requestMetadata.addParam(name, defaultValue);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.RequestMetadata;\r\n+import org.apache.dubbo.metadata.rest.RestMethodMetadata;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * The abstract {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @*Param\r\n+ */\r\n+public abstract class ParamAnnotationParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\r\n+\r\n+    @Override\r\n+    protected void process(String name, String defaultValue, Annotation annotation, Object parameter,\r\n+                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\r\n+        RequestMetadata requestMetadata = restMethodMetadata.getRequest();\r\n+        requestMetadata.addParam(name, defaultValue);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/jaxrs/QueryParamParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/jaxrs/QueryParamParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.jaxrs;\n-\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.QUERY_PARAM_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @QueryParam\n- *\n- * @since 2.7.6\n- */\n-public class QueryParamParameterProcessor extends ParamAnnotationParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return QUERY_PARAM_ANNOTATION_CLASS_NAME;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.jaxrs;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.JAX_RS.QUERY_PARAM_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for JAX-RS's @QueryParam\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class QueryParamParameterProcessor extends ParamAnnotationParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return QUERY_PARAM_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/springmvc/AbstractRequestAnnotationParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/springmvc/AbstractRequestAnnotationParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.springmvc;\n-\n-import org.apache.dubbo.common.utils.AnnotationUtils;\n-import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Parameter;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\n-\n-/**\n- * The abstract {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @Request*\n- */\n-public abstract class AbstractRequestAnnotationParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\n-\n-    @Override\n-    protected String getAnnotationValue(Annotation annotation, Parameter parameter, int parameterIndex) {\n-        // try to get \"value\" attribute first\n-        String name = super.getAnnotationValue(annotation, parameter, parameterIndex);\n-\n-        // try to get \"name\" attribute if required\n-        if (isEmpty(name)) {\n-            name = getAttribute(annotation, \"name\");\n-        }\n-\n-        // finally , try to the name of parameter\n-        if (isEmpty(name)) {\n-            name = parameter.getName();\n-        }\n-\n-        return name;\n-    }\n-\n-    @Override\n-    protected String getDefaultValue(Annotation annotation, Parameter parameter, int parameterIndex) {\n-        String attributeName = \"defaultValue\";\n-        String attributeValue = getAttribute(annotation, attributeName);\n-\n-        if (isEmpty(attributeValue) || isDefaultValue(annotation, attributeName, attributeValue)) {\n-            attributeValue = super.getDefaultValue(annotation, parameter, parameterIndex);\n-        }\n-        return attributeValue;\n-    }\n-\n-    private boolean isDefaultValue(Annotation annotation, String attributeName, Object attributeValue) {\n-        String defaultValue = AnnotationUtils.getDefaultValue(annotation, attributeName);\n-        return Objects.equals(attributeValue, defaultValue);\n-    }\n-\n-    protected boolean isEmpty(String str) {\n-        return str == null || str.isEmpty();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.springmvc;\r\n+\r\n+import org.apache.dubbo.common.utils.AnnotationUtils;\r\n+import org.apache.dubbo.metadata.rest.AbstractAnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Parameter;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\r\n+\r\n+/**\r\n+ * The abstract {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @Request*\r\n+ */\r\n+public abstract class AbstractRequestAnnotationParameterProcessor extends AbstractAnnotatedMethodParameterProcessor {\r\n+\r\n+    @Override\r\n+    protected String getAnnotationValue(Annotation annotation, Parameter parameter, int parameterIndex) {\r\n+        // try to get \"value\" attribute first\r\n+        String name = super.getAnnotationValue(annotation, parameter, parameterIndex);\r\n+\r\n+        // try to get \"name\" attribute if required\r\n+        if (isEmpty(name)) {\r\n+            name = getAttribute(annotation, \"name\");\r\n+        }\r\n+\r\n+        // finally , try to the name of parameter\r\n+        if (isEmpty(name)) {\r\n+            name = parameter.getName();\r\n+        }\r\n+\r\n+        return name;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String getDefaultValue(Annotation annotation, Parameter parameter, int parameterIndex) {\r\n+        String attributeName = \"defaultValue\";\r\n+        String attributeValue = getAttribute(annotation, attributeName);\r\n+\r\n+        if (isEmpty(attributeValue) || isDefaultValue(annotation, attributeName, attributeValue)) {\r\n+            attributeValue = super.getDefaultValue(annotation, parameter, parameterIndex);\r\n+        }\r\n+        return attributeValue;\r\n+    }\r\n+\r\n+    private boolean isDefaultValue(Annotation annotation, String attributeName, Object attributeValue) {\r\n+        String defaultValue = AnnotationUtils.getDefaultValue(annotation, attributeName);\r\n+        return Objects.equals(attributeValue, defaultValue);\r\n+    }\r\n+\r\n+    protected boolean isEmpty(String str) {\r\n+        return str == null || str.isEmpty();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/springmvc/RequestHeaderParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/springmvc/RequestHeaderParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.springmvc;\n-\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.RestMethodMetadata;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_HEADER_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @RequestHeader\n- */\n-public class RequestHeaderParameterProcessor extends AbstractRequestAnnotationParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return REQUEST_HEADER_ANNOTATION_CLASS_NAME;\n-    }\n-\n-    @Override\n-    protected void process(String name, String defaultValue, Annotation annotation, Object parameter,\n-                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\n-        restMethodMetadata.getRequest().addHeader(name, defaultValue);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.springmvc;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.RestMethodMetadata;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_HEADER_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @RequestHeader\r\n+ */\r\n+public class RequestHeaderParameterProcessor extends AbstractRequestAnnotationParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return REQUEST_HEADER_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void process(String name, String defaultValue, Annotation annotation, Object parameter,\r\n+                           int parameterIndex, Method method, RestMethodMetadata restMethodMetadata) {\r\n+        restMethodMetadata.getRequest().addHeader(name, defaultValue);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/springmvc/RequestParamParameterProcessor.java", "source2": "org/apache/dubbo/metadata/rest/springmvc/RequestParamParameterProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.springmvc;\n-\n-import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\n-import org.apache.dubbo.metadata.rest.RestMethodMetadata;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.Method;\n-\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_PARAM_ANNOTATION_CLASS_NAME;\n-\n-/**\n- * The {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @RequestParam\n- */\n-public class RequestParamParameterProcessor extends AbstractRequestAnnotationParameterProcessor {\n-\n-    @Override\n-    public String getAnnotationType() {\n-        return REQUEST_PARAM_ANNOTATION_CLASS_NAME;\n-    }\n-\n-    @Override\n-    protected void process(String name, String defaultValue, Annotation annotation, Object parameter, int parameterIndex,\n-                           Method method, RestMethodMetadata restMethodMetadata) {\n-        restMethodMetadata.getRequest().addParam(name, defaultValue);\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.springmvc;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AnnotatedMethodParameterProcessor;\r\n+import org.apache.dubbo.metadata.rest.RestMethodMetadata;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.Method;\r\n+\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_PARAM_ANNOTATION_CLASS_NAME;\r\n+\r\n+/**\r\n+ * The {@link AnnotatedMethodParameterProcessor} implementation for Spring Web MVC's @RequestParam\r\n+ */\r\n+public class RequestParamParameterProcessor extends AbstractRequestAnnotationParameterProcessor {\r\n+\r\n+    @Override\r\n+    public String getAnnotationType() {\r\n+        return REQUEST_PARAM_ANNOTATION_CLASS_NAME;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void process(String name, String defaultValue, Annotation annotation, Object parameter, int parameterIndex,\r\n+                           Method method, RestMethodMetadata restMethodMetadata) {\r\n+        restMethodMetadata.getRequest().addParam(name, defaultValue);\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java", "source2": "org/apache/dubbo/metadata/rest/springmvc/SpringMvcServiceRestMetadataResolver.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,141 +1,141 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.rest.springmvc;\n-\n-import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;\n-import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;\n-\n-import java.lang.annotation.Annotation;\n-import java.lang.reflect.AnnotatedElement;\n-import java.lang.reflect.Array;\n-import java.lang.reflect.Method;\n-import java.util.Set;\n-\n-import static java.lang.String.valueOf;\n-import static java.lang.reflect.Array.getLength;\n-import static java.util.stream.Stream.of;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.findAnnotation;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\n-import static org.apache.dubbo.common.utils.AnnotationUtils.isAnnotationPresent;\n-import static org.apache.dubbo.common.utils.ArrayUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\n-import static org.apache.dubbo.common.utils.MethodUtils.findMethod;\n-import static org.apache.dubbo.common.utils.PathUtils.buildPath;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.ANNOTATED_ELEMENT_UTILS_CLASS;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.CONTROLLER_ANNOTATION_CLASS;\n-import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_MAPPING_ANNOTATION_CLASS;\n-\n-/**\n- * {@link ServiceRestMetadataResolver}\n- *\n- * @since 2.7.6\n- */\n-public class SpringMvcServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\n-\n-    private static final int FIRST_ELEMENT_INDEX = 0;\n-\n-    @Override\n-    protected boolean supports0(Class<?> serviceType) {\n-        return isAnnotationPresent(serviceType, CONTROLLER_ANNOTATION_CLASS);\n-    }\n-\n-    @Override\n-    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        return isAnnotationPresent(serviceType, REQUEST_MAPPING_ANNOTATION_CLASS) ||\n-                isAnnotationPresent(serviceMethod, REQUEST_MAPPING_ANNOTATION_CLASS);\n-    }\n-\n-    @Override\n-    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        Annotation requestMapping = getRequestMapping(serviceMethod);\n-\n-        // httpMethod is an array of RequestMethod\n-        Object httpMethod = getAttribute(requestMapping, \"method\");\n-\n-        if (httpMethod == null || getLength(httpMethod) < 1) {\n-            return null;\n-        }\n-\n-        // TODO Is is required to support more request methods?\n-        return valueOf(Array.get(httpMethod, FIRST_ELEMENT_INDEX));\n-    }\n-\n-    @Override\n-    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\n-        String requestBasePath = resolveRequestPath(serviceType);\n-        String requestRelativePath = resolveRequestPath(serviceMethod);\n-        return buildPath(requestBasePath, requestRelativePath);\n-    }\n-\n-    @Override\n-    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> produces) {\n-        addMediaTypes(serviceMethod, \"produces\", produces);\n-    }\n-\n-    @Override\n-    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> consumes) {\n-        addMediaTypes(serviceMethod, \"consumes\", consumes);\n-    }\n-\n-    private String resolveRequestPath(AnnotatedElement annotatedElement) {\n-        Annotation mappingAnnotation = getRequestMapping(annotatedElement);\n-\n-        // try \"value\" first\n-        String[] value = getAttribute(mappingAnnotation, \"value\");\n-\n-        if (isEmpty(value)) { // try \"path\" later\n-            value = getAttribute(mappingAnnotation, \"path\");\n-        }\n-\n-        if (isEmpty(value)) {\n-            return \"\";\n-        }\n-        // TODO Is is required to support more request paths?\n-        return value[FIRST_ELEMENT_INDEX];\n-    }\n-\n-    private void addMediaTypes(Method serviceMethod, String annotationAttributeName, Set<String> mediaTypesSet) {\n-\n-        Annotation mappingAnnotation = getRequestMapping(serviceMethod);\n-\n-        String[] mediaTypes = getAttribute(mappingAnnotation, annotationAttributeName);\n-\n-        if (isNotEmpty(mediaTypes)) {\n-            of(mediaTypes).forEach(mediaTypesSet::add);\n-        }\n-    }\n-\n-    private Annotation getRequestMapping(AnnotatedElement annotatedElement) {\n-        // try \"@RequestMapping\" first\n-        Annotation requestMapping = findAnnotation(annotatedElement, REQUEST_MAPPING_ANNOTATION_CLASS);\n-        if (requestMapping == null) {\n-            // To try the meta-annotated annotation if can't be found.\n-            // For example, if the annotation \"@GetMapping\" is used in the Spring Framework is 4.2 or above,\n-            // because of \"@GetMapping\" alias for (\"@AliasFor\") \"@RequestMapping\" , both of them belongs to\n-            // the artifact \"spring-web\" which depends on \"spring-core\", thus Spring core's\n-            // AnnotatedElementUtils.findMergedAnnotation(AnnotatedElement, Class) must be involved.\n-            Method method = findMethod(ANNOTATED_ELEMENT_UTILS_CLASS, \"findMergedAnnotation\", AnnotatedElement.class, Class.class);\n-            if (method != null) {\n-                try {\n-                    requestMapping = (Annotation) method.invoke(null, annotatedElement, REQUEST_MAPPING_ANNOTATION_CLASS);\n-                } catch (Exception ignored) {\n-                }\n-            }\n-        }\n-        return requestMapping;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.rest.springmvc;\r\n+\r\n+import org.apache.dubbo.metadata.rest.AbstractServiceRestMetadataResolver;\r\n+import org.apache.dubbo.metadata.rest.ServiceRestMetadataResolver;\r\n+\r\n+import java.lang.annotation.Annotation;\r\n+import java.lang.reflect.AnnotatedElement;\r\n+import java.lang.reflect.Array;\r\n+import java.lang.reflect.Method;\r\n+import java.util.Set;\r\n+\r\n+import static java.lang.String.valueOf;\r\n+import static java.lang.reflect.Array.getLength;\r\n+import static java.util.stream.Stream.of;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.findAnnotation;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.getAttribute;\r\n+import static org.apache.dubbo.common.utils.AnnotationUtils.isAnnotationPresent;\r\n+import static org.apache.dubbo.common.utils.ArrayUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.ArrayUtils.isNotEmpty;\r\n+import static org.apache.dubbo.common.utils.MethodUtils.findMethod;\r\n+import static org.apache.dubbo.common.utils.PathUtils.buildPath;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.ANNOTATED_ELEMENT_UTILS_CLASS;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.CONTROLLER_ANNOTATION_CLASS;\r\n+import static org.apache.dubbo.metadata.rest.RestMetadataConstants.SPRING_MVC.REQUEST_MAPPING_ANNOTATION_CLASS;\r\n+\r\n+/**\r\n+ * {@link ServiceRestMetadataResolver}\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class SpringMvcServiceRestMetadataResolver extends AbstractServiceRestMetadataResolver {\r\n+\r\n+    private static final int FIRST_ELEMENT_INDEX = 0;\r\n+\r\n+    @Override\r\n+    protected boolean supports0(Class<?> serviceType) {\r\n+        return isAnnotationPresent(serviceType, CONTROLLER_ANNOTATION_CLASS);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected boolean isRestCapableMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        return isAnnotationPresent(serviceType, REQUEST_MAPPING_ANNOTATION_CLASS) ||\r\n+                isAnnotationPresent(serviceMethod, REQUEST_MAPPING_ANNOTATION_CLASS);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestMethod(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        Annotation requestMapping = getRequestMapping(serviceMethod);\r\n+\r\n+        // httpMethod is an array of RequestMethod\r\n+        Object httpMethod = getAttribute(requestMapping, \"method\");\r\n+\r\n+        if (httpMethod == null || getLength(httpMethod) < 1) {\r\n+            return null;\r\n+        }\r\n+\r\n+        // TODO Is is required to support more request methods?\r\n+        return valueOf(Array.get(httpMethod, FIRST_ELEMENT_INDEX));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String resolveRequestPath(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass) {\r\n+        String requestBasePath = resolveRequestPath(serviceType);\r\n+        String requestRelativePath = resolveRequestPath(serviceMethod);\r\n+        return buildPath(requestBasePath, requestRelativePath);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processProduces(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> produces) {\r\n+        addMediaTypes(serviceMethod, \"produces\", produces);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void processConsumes(Method serviceMethod, Class<?> serviceType, Class<?> serviceInterfaceClass, Set<String> consumes) {\r\n+        addMediaTypes(serviceMethod, \"consumes\", consumes);\r\n+    }\r\n+\r\n+    private String resolveRequestPath(AnnotatedElement annotatedElement) {\r\n+        Annotation mappingAnnotation = getRequestMapping(annotatedElement);\r\n+\r\n+        // try \"value\" first\r\n+        String[] value = getAttribute(mappingAnnotation, \"value\");\r\n+\r\n+        if (isEmpty(value)) { // try \"path\" later\r\n+            value = getAttribute(mappingAnnotation, \"path\");\r\n+        }\r\n+\r\n+        if (isEmpty(value)) {\r\n+            return \"\";\r\n+        }\r\n+        // TODO Is is required to support more request paths?\r\n+        return value[FIRST_ELEMENT_INDEX];\r\n+    }\r\n+\r\n+    private void addMediaTypes(Method serviceMethod, String annotationAttributeName, Set<String> mediaTypesSet) {\r\n+\r\n+        Annotation mappingAnnotation = getRequestMapping(serviceMethod);\r\n+\r\n+        String[] mediaTypes = getAttribute(mappingAnnotation, annotationAttributeName);\r\n+\r\n+        if (isNotEmpty(mediaTypes)) {\r\n+            of(mediaTypes).forEach(mediaTypesSet::add);\r\n+        }\r\n+    }\r\n+\r\n+    private Annotation getRequestMapping(AnnotatedElement annotatedElement) {\r\n+        // try \"@RequestMapping\" first\r\n+        Annotation requestMapping = findAnnotation(annotatedElement, REQUEST_MAPPING_ANNOTATION_CLASS);\r\n+        if (requestMapping == null) {\r\n+            // To try the meta-annotated annotation if can't be found.\r\n+            // For example, if the annotation \"@GetMapping\" is used in the Spring Framework is 4.2 or above,\r\n+            // because of \"@GetMapping\" alias for (\"@AliasFor\") \"@RequestMapping\" , both of them belongs to\r\n+            // the artifact \"spring-web\" which depends on \"spring-core\", thus Spring core's\r\n+            // AnnotatedElementUtils.findMergedAnnotation(AnnotatedElement, Class) must be involved.\r\n+            Method method = findMethod(ANNOTATED_ELEMENT_UTILS_CLASS, \"findMergedAnnotation\", AnnotatedElement.class, Class.class);\r\n+            if (method != null) {\r\n+                try {\r\n+                    requestMapping = (Annotation) method.invoke(null, annotatedElement, REQUEST_MAPPING_ANNOTATION_CLASS);\r\n+                } catch (Exception ignored) {\r\n+                }\r\n+            }\r\n+        }\r\n+        return requestMapping;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/AbstractAbstractWritableMetadataService.java", "source2": "org/apache/dubbo/metadata/store/AbstractAbstractWritableMetadataService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-\n-import com.google.gson.Gson;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\n-import static org.apache.dubbo.common.utils.ClassUtils.forName;\n-import static org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.buildFullDefinition;\n-import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-import static org.apache.dubbo.rpc.support.ProtocolUtils.isGeneric;\n-\n-/**\n- * The abstract implementation of {@link WritableMetadataService}\n- *\n- * @see WritableMetadataService\n- * @since 2.7.8\n- */\n-public abstract class AbstractAbstractWritableMetadataService implements WritableMetadataService {\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    @Override\n-    public void publishServiceDefinition(URL url) {\n-        if (SERVICE_INTERFACE_NAME.equals(url.getServiceInterface())) { // Ignore the interface \"MetadataService\"\n-            return;\n-        }\n-\n-        // Remove the useless parameters\n-        url = url.removeParameters(PID_KEY, TIMESTAMP_KEY, BIND_IP_KEY, BIND_PORT_KEY, TIMESTAMP_KEY);\n-\n-        String side = url.getParameter(SIDE_KEY);\n-        if (PROVIDER_SIDE.equalsIgnoreCase(side)) {\n-            publishProviderServiceDefinition(url);\n-        } else {\n-            publishConsumerParameters(url);\n-        }\n-    }\n-\n-    protected void publishProviderServiceDefinition(URL url) {\n-        String serviceDefinition = getServiceDefinition(url);\n-        if (!StringUtils.isBlank(serviceDefinition)) {\n-            publishServiceDefinition(url.getServiceKey(), serviceDefinition);\n-        }\n-    }\n-\n-    protected String getServiceDefinition(URL exportedURL) {\n-        String interfaceName = exportedURL.getParameter(INTERFACE_KEY);\n-        String json = null;\n-        try {\n-            if (StringUtils.isNotEmpty(interfaceName) && !isGeneric(exportedURL.getParameter(GENERIC_KEY))) {\n-                Class interfaceClass = forName(interfaceName);\n-                ServiceDefinition serviceDefinition = buildFullDefinition(interfaceClass, exportedURL.getParameters());\n-                Gson gson = new Gson();\n-                json = gson.toJson(serviceDefinition);\n-            }\n-        } catch (ClassNotFoundException e) {\n-            //ignore error\n-            if (logger.isErrorEnabled()) {\n-                logger.error(\"The interface class[name : \" + interfaceName + \"] can't be found , providerUrl: \"\n-                        + exportedURL.toFullString());\n-            }\n-        }\n-        return json;\n-    }\n-\n-    protected void publishConsumerParameters(URL url) {\n-    }\n-\n-    protected void publishServiceDefinition(String key, String json) {\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+\r\n+import com.google.gson.Gson;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\r\n+import static org.apache.dubbo.common.utils.ClassUtils.forName;\r\n+import static org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder.buildFullDefinition;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+import static org.apache.dubbo.rpc.support.ProtocolUtils.isGeneric;\r\n+\r\n+/**\r\n+ * The abstract implementation of {@link WritableMetadataService}\r\n+ *\r\n+ * @see WritableMetadataService\r\n+ * @since 2.7.8\r\n+ */\r\n+public abstract class AbstractAbstractWritableMetadataService implements WritableMetadataService {\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    @Override\r\n+    public void publishServiceDefinition(URL url) {\r\n+        if (SERVICE_INTERFACE_NAME.equals(url.getServiceInterface())) { // Ignore the interface \"MetadataService\"\r\n+            return;\r\n+        }\r\n+\r\n+        // Remove the useless parameters\r\n+        url = url.removeParameters(PID_KEY, TIMESTAMP_KEY, BIND_IP_KEY, BIND_PORT_KEY, TIMESTAMP_KEY);\r\n+\r\n+        String side = url.getParameter(SIDE_KEY);\r\n+        if (PROVIDER_SIDE.equalsIgnoreCase(side)) {\r\n+            publishProviderServiceDefinition(url);\r\n+        } else {\r\n+            publishConsumerParameters(url);\r\n+        }\r\n+    }\r\n+\r\n+    protected void publishProviderServiceDefinition(URL url) {\r\n+        String serviceDefinition = getServiceDefinition(url);\r\n+        if (!StringUtils.isBlank(serviceDefinition)) {\r\n+            publishServiceDefinition(url.getServiceKey(), serviceDefinition);\r\n+        }\r\n+    }\r\n+\r\n+    protected String getServiceDefinition(URL exportedURL) {\r\n+        String interfaceName = exportedURL.getParameter(INTERFACE_KEY);\r\n+        String json = null;\r\n+        try {\r\n+            if (StringUtils.isNotEmpty(interfaceName) && !isGeneric(exportedURL.getParameter(GENERIC_KEY))) {\r\n+                Class interfaceClass = forName(interfaceName);\r\n+                ServiceDefinition serviceDefinition = buildFullDefinition(interfaceClass, exportedURL.getParameters());\r\n+                Gson gson = new Gson();\r\n+                json = gson.toJson(serviceDefinition);\r\n+            }\r\n+        } catch (ClassNotFoundException e) {\r\n+            //ignore error\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(\"The interface class[name : \" + interfaceName + \"] can't be found , providerUrl: \"\r\n+                        + exportedURL.toFullString());\r\n+            }\r\n+        }\r\n+        return json;\r\n+    }\r\n+\r\n+    protected void publishConsumerParameters(URL url) {\r\n+    }\r\n+\r\n+    protected void publishServiceDefinition(String key, String json) {\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/consul/ConsulMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,132 +1,132 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.metadata.store.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.ecwid.consul.v1.ConsulClient;\n-import com.ecwid.consul.v1.Response;\n-import com.ecwid.consul.v1.kv.model.GetValue;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.List;\n-\n-/**\n- * metadata report impl for consul\n- */\n-public class ConsulMetadataReport extends AbstractMetadataReport {\n-    private static final int DEFAULT_PORT = 8500;\n-\n-    private ConsulClient client;\n-\n-    public ConsulMetadataReport(URL url) {\n-        super(url);\n-\n-        String host = url.getHost();\n-        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\n-        client = new ConsulClient(host, port);\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        this.storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\n-        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\n-        this.deleteMetadata(serviceMetadataIdentifier);\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        //todo encode and decode\n-        String content = getMetadata(metadataIdentifier);\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\n-        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return getMetadata(subscriberMetadataIdentifier);\n-    }\n-\n-    private void storeMetadata(BaseMetadataIdentifier identifier, String v) {\n-        try {\n-            client.setKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to put \" + identifier + \" to consul \" + v + \", cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to put \" + identifier + \" to consul \" + v + \", cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private void deleteMetadata(BaseMetadataIdentifier identifier) {\n-        try {\n-            client.deleteKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to delete \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to delete \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private String getMetadata(BaseMetadataIdentifier identifier) {\n-        try {\n-            Response<GetValue> value = client.getKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-            //FIXME CHECK\n-            if (value != null && value.getValue() != null) {\n-                //todo check decode value and value diff\n-                return value.getValue().getValue();\n-            }\n-            return null;\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to get \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to get \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return getMetadata(metadataIdentifier);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.metadata.store.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.ecwid.consul.v1.ConsulClient;\r\n+import com.ecwid.consul.v1.Response;\r\n+import com.ecwid.consul.v1.kv.model.GetValue;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * metadata report impl for consul\r\n+ */\r\n+public class ConsulMetadataReport extends AbstractMetadataReport {\r\n+    private static final int DEFAULT_PORT = 8500;\r\n+\r\n+    private ConsulClient client;\r\n+\r\n+    public ConsulMetadataReport(URL url) {\r\n+        super(url);\r\n+\r\n+        String host = url.getHost();\r\n+        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\r\n+        client = new ConsulClient(host, port);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        this.storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\r\n+        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\r\n+        this.deleteMetadata(serviceMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        //todo encode and decode\r\n+        String content = getMetadata(metadataIdentifier);\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\r\n+        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return getMetadata(subscriberMetadataIdentifier);\r\n+    }\r\n+\r\n+    private void storeMetadata(BaseMetadataIdentifier identifier, String v) {\r\n+        try {\r\n+            client.setKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to put \" + identifier + \" to consul \" + v + \", cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to put \" + identifier + \" to consul \" + v + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadata(BaseMetadataIdentifier identifier) {\r\n+        try {\r\n+            client.deleteKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to delete \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to delete \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadata(BaseMetadataIdentifier identifier) {\r\n+        try {\r\n+            Response<GetValue> value = client.getKVValue(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+            //FIXME CHECK\r\n+            if (value != null && value.getValue() != null) {\r\n+                //todo check decode value and value diff\r\n+                return value.getValue().getValue();\r\n+            }\r\n+            return null;\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to get \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to get \" + identifier + \" from consul , cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return getMetadata(metadataIdentifier);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/consul/ConsulMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.metadata.store.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-/**\n- * metadata report factory impl for consul\n- */\n-public class ConsulMetadataReportFactory extends AbstractMetadataReportFactory {\n-    @Override\n-    protected MetadataReport createMetadataReport(URL url) {\n-        return new ConsulMetadataReport(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.metadata.store.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+/**\r\n+ * metadata report factory impl for consul\r\n+ */\r\n+public class ConsulMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+    @Override\r\n+    protected MetadataReport createMetadataReport(URL url) {\r\n+        return new ConsulMetadataReport(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/etcd/EtcdMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,146 +1,146 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.remoting.etcd.jetcd.JEtcdClient;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-\n-/**\n- * Report Metadata to Etcd\n- */\n-public class EtcdMetadataReport extends AbstractMetadataReport {\n-\n-    private final String root;\n-\n-    /**\n-     * The etcd client\n-     */\n-    private final JEtcdClient etcdClient;\n-\n-    public EtcdMetadataReport(URL url) {\n-        super(url);\n-        if (url.isAnyHost()) {\n-            throw new IllegalStateException(\"registry address == null\");\n-        }\n-        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\n-        if (!group.startsWith(PATH_SEPARATOR)) {\n-            group = PATH_SEPARATOR + group;\n-        }\n-        this.root = group;\n-        etcdClient = new JEtcdClient(url);\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\n-        String key = getNodeKey(serviceMetadataIdentifier);\n-        if (!etcdClient.put(key, URL.encode(url.toFullString()))) {\n-            logger.error(\"Failed to put \" + serviceMetadataIdentifier + \" to etcd, value: \" + url);\n-        }\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\n-        etcdClient.delete(getNodeKey(serviceMetadataIdentifier));\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        String content = etcdClient.getKVValue(getNodeKey(metadataIdentifier));\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\n-        String key = getNodeKey(subscriberMetadataIdentifier);\n-        if (!etcdClient.put(key, urlListStr)) {\n-            logger.error(\"Failed to put \" + subscriberMetadataIdentifier + \" to etcd, value: \" + urlListStr);\n-        }\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return etcdClient.getKVValue(getNodeKey(subscriberMetadataIdentifier));\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return etcdClient.getKVValue(getNodeKey(metadataIdentifier));\n-    }\n-\n-    private void storeMetadata(MetadataIdentifier identifier, String v) {\n-        String key = getNodeKey(identifier);\n-        if (!etcdClient.put(key, v)) {\n-            logger.error(\"Failed to put \" + identifier + \" to etcd, value: \" + v);\n-        }\n-    }\n-\n-    String getNodeKey(BaseMetadataIdentifier identifier) {\n-        return toRootDir() + identifier.getUniqueKey(KeyTypeEnum.PATH);\n-    }\n-\n-    String toRootDir() {\n-        if (root.equals(PATH_SEPARATOR)) {\n-            return root;\n-        }\n-        return root + PATH_SEPARATOR;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.remoting.etcd.jetcd.JEtcdClient;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+\r\n+/**\r\n+ * Report Metadata to Etcd\r\n+ */\r\n+public class EtcdMetadataReport extends AbstractMetadataReport {\r\n+\r\n+    private final String root;\r\n+\r\n+    /**\r\n+     * The etcd client\r\n+     */\r\n+    private final JEtcdClient etcdClient;\r\n+\r\n+    public EtcdMetadataReport(URL url) {\r\n+        super(url);\r\n+        if (url.isAnyHost()) {\r\n+            throw new IllegalStateException(\"registry address == null\");\r\n+        }\r\n+        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\r\n+        if (!group.startsWith(PATH_SEPARATOR)) {\r\n+            group = PATH_SEPARATOR + group;\r\n+        }\r\n+        this.root = group;\r\n+        etcdClient = new JEtcdClient(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\r\n+        String key = getNodeKey(serviceMetadataIdentifier);\r\n+        if (!etcdClient.put(key, URL.encode(url.toFullString()))) {\r\n+            logger.error(\"Failed to put \" + serviceMetadataIdentifier + \" to etcd, value: \" + url);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\r\n+        etcdClient.delete(getNodeKey(serviceMetadataIdentifier));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        String content = etcdClient.getKVValue(getNodeKey(metadataIdentifier));\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\r\n+        String key = getNodeKey(subscriberMetadataIdentifier);\r\n+        if (!etcdClient.put(key, urlListStr)) {\r\n+            logger.error(\"Failed to put \" + subscriberMetadataIdentifier + \" to etcd, value: \" + urlListStr);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return etcdClient.getKVValue(getNodeKey(subscriberMetadataIdentifier));\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return etcdClient.getKVValue(getNodeKey(metadataIdentifier));\r\n+    }\r\n+\r\n+    private void storeMetadata(MetadataIdentifier identifier, String v) {\r\n+        String key = getNodeKey(identifier);\r\n+        if (!etcdClient.put(key, v)) {\r\n+            logger.error(\"Failed to put \" + identifier + \" to etcd, value: \" + v);\r\n+        }\r\n+    }\r\n+\r\n+    String getNodeKey(BaseMetadataIdentifier identifier) {\r\n+        return toRootDir() + identifier.getUniqueKey(KeyTypeEnum.PATH);\r\n+    }\r\n+\r\n+    String toRootDir() {\r\n+        if (root.equals(PATH_SEPARATOR)) {\r\n+            return root;\r\n+        }\r\n+        return root + PATH_SEPARATOR;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/etcd/EtcdMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-/**\n- * MetadataReportFactory to create an Etcd based {@link MetadataReport}.\n- */\n-public class EtcdMetadataReportFactory extends AbstractMetadataReportFactory {\n-\n-    @Override\n-    public MetadataReport createMetadataReport(URL url) {\n-        return new EtcdMetadataReport(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+/**\r\n+ * MetadataReportFactory to create an Etcd based {@link MetadataReport}.\r\n+ */\r\n+public class EtcdMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+\r\n+    @Override\r\n+    public MetadataReport createMetadataReport(URL url) {\r\n+        return new EtcdMetadataReport(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/failover/FailoverCondition.java", "source2": "org/apache/dubbo/metadata/store/failover/FailoverCondition.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.failover;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI(\"failover\")\n-public interface FailoverCondition {\n-\n-    /**\n-     * Whether metadata should be reported.\n-     *\n-     * @param url registry url, eg: zookeeper://127.0.0.1:2181\n-     * @return true store metadata to the specified URL.\n-     */\n-    boolean shouldRegister(URL url);\n-\n-    /**\n-     * Whether metadata should be read from specified url.\n-     *\n-     * @param url registry url, eg: zookeeper://127.0.0.1:2181\n-     * @return true read metadata from specified URL.\n-     */\n-    boolean shouldQuery(URL url);\n-\n-    /**\n-     * Judge whether it is a local region or a local datacenter.\n-     * <p>\n-     * Allows the local region or datacenter to be read first.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    boolean isLocalDataCenter(URL url);\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.failover;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI(\"failover\")\r\n+public interface FailoverCondition {\r\n+\r\n+    /**\r\n+     * Whether metadata should be reported.\r\n+     *\r\n+     * @param url registry url, eg: zookeeper://127.0.0.1:2181\r\n+     * @return true store metadata to the specified URL.\r\n+     */\r\n+    boolean shouldRegister(URL url);\r\n+\r\n+    /**\r\n+     * Whether metadata should be read from specified url.\r\n+     *\r\n+     * @param url registry url, eg: zookeeper://127.0.0.1:2181\r\n+     * @return true read metadata from specified URL.\r\n+     */\r\n+    boolean shouldQuery(URL url);\r\n+\r\n+    /**\r\n+     * Judge whether it is a local region or a local datacenter.\r\n+     * <p>\r\n+     * Allows the local region or datacenter to be read first.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    boolean isLocalDataCenter(URL url);\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/metadata/store/failover/FailoverMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/failover/FailoverMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,581 +1,581 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.failover;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.RemotingConstants;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.metadata.MappingListener;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.MetadataReportFactory;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.regex.Pattern;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;\n-\n-/**\n- * @author yiji@apache.org\n- */\n-public class FailoverMetadataReport extends StrategyMetadataReport {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(FailoverMetadataReport.class);\n-\n-    // proxy metadata report protocol, eg: zookeeper\n-    private static final String PROTOCOL_KEY = \"protocol\";\n-\n-    private static final String CLUSTER_KEY = \"clusters\";\n-\n-    // A cluster may have multiple instances\n-    private static final String HOST_KEY = \"hosts\";\n-\n-    private static final Pattern HOST_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|:]+\\\\s*\");\n-\n-    // The metadata address of the agent.\n-    private List<URL> failoverUrls;\n-\n-    // The metadata report instance.\n-    private List<MetadataReportHolder> proxyReports;\n-\n-    // Local priority metadata center\n-    private MetadataReportHolder localDataCenterReportHolder;\n-\n-    public FailoverMetadataReport(URL url) {\n-        super(url);\n-        this.failoverUrls = fetchBackupUrls();\n-        this.proxyReports = buildProxyReports();\n-    }\n-\n-    protected List<URL> fetchBackupUrls() {\n-        String protocol = url.getParameter(PROTOCOL_KEY);\n-        if (protocol == null || !ExtensionLoader.getExtensionLoader(MetadataReportFactory.class).hasExtension(protocol)) {\n-            throw new IllegalArgumentException(\n-                    \"No '\" + protocol\n-                            + \"' metadata report extension found, please check if metadata report module dependencies are included.\");\n-        }\n-\n-        List<URL> urls = new ArrayList<>();\n-\n-        String clusters = this.url.getParameter(CLUSTER_KEY);\n-        String backupHost = this.url.getParameter(HOST_KEY);\n-        URL url = this.url.removeParameters(CLUSTER_KEY, HOST_KEY, PROTOCOL_KEY).setProtocol(protocol);\n-\n-        URL metadataURL = url;\n-        if (backupHost != null && backupHost.length() > 0) {\n-            metadataURL = metadataURL.addParameter(RemotingConstants.BACKUP_KEY, backupHost);\n-        }\n-        urls.add(metadataURL);\n-\n-        if (clusters != null && (clusters = clusters.trim()).length() > 0) {\n-            String[] addresses = REGISTRY_SPLIT_PATTERN.split(clusters);\n-            for (String address : addresses) {\n-                /**\n-                 * find multiple cluster hosts, supports multiple\n-                 * metadata report center read and write operations.\n-                 */\n-                String[] hosts = COMMA_SPLIT_PATTERN.split(address);\n-                if (hosts.length > 0) {\n-                    String node = hosts[0];\n-                    // contains user name and password with address ?\n-                    String username = null, password = null;\n-                    int index = node.indexOf(\"@\");\n-                    if (index > 0) {\n-                        String[] authority = HOST_SPLIT_PATTERN.split(node.substring(0, index));\n-                        username = authority[0];\n-                        password = authority[1];\n-                        node = node.substring(index + 1);\n-                    }\n-\n-                    String[] hostInfo = HOST_SPLIT_PATTERN.split(node);\n-                    String host = hostInfo[0];\n-                    int port = Integer.parseInt(hostInfo[1]);\n-                    URL clusterURL = new URL(protocol, username, password, host, port, url.getPath(), url.getParameters());\n-                    /**\n-                     * append backup address if required,\n-                     * the same cluster may have more than one node.\n-                     */\n-                    if (hosts.length > 1) {\n-                        StringBuilder buffer = new StringBuilder();\n-                        for (int i = 1; i < hosts.length; i++) {\n-                            if (i > 1) {\n-                                buffer.append(\",\");\n-                            }\n-                            buffer.append(hosts[i]);\n-                        }\n-                        clusterURL = clusterURL.addParameters(RemotingConstants.BACKUP_KEY, buffer.toString());\n-                    }\n-                    urls.add(clusterURL);\n-                }\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    protected List<MetadataReportHolder> buildProxyReports() {\n-        List<MetadataReportHolder> reports = new ArrayList<>();\n-        if (this.failoverUrls != null && !this.failoverUrls.isEmpty()) {\n-            ExtensionLoader<MetadataReportFactory> factoryLoader = ExtensionLoader.getExtensionLoader(MetadataReportFactory.class);\n-            for (URL url : this.failoverUrls) {\n-                try {\n-                    MetadataReportHolder holder = new MetadataReportHolder(url,\n-                            factoryLoader.getExtension(url.getProtocol()).getMetadataReport(url));\n-                    reports.add(holder);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw new RuntimeException(\"Failed to create + '\" + url.getProtocol() + \"' metadata report extension instance\", e);\n-                    }\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to create + '\" + url.getProtocol()\n-                                + \"' metadata report extension instance, check=false found.\");\n-                    }\n-                }\n-            }\n-        }\n-\n-        Collections.shuffle(reports);\n-\n-        /**\n-         * Select the local priority metadata cluster.\n-         * In order to prevent clients from all connecting\n-         * to the same cluster, random sorting has been done.\n-         */\n-        reports.forEach(holder -> {\n-            if (isLocalDataCenter(holder.url)) {\n-                this.localDataCenterReportHolder = holder;\n-            }\n-        });\n-\n-        return reports;\n-    }\n-\n-    @Override\n-    public void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\n-        this.proxyReports.forEach((holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.storeProviderMetadata(providerMetadataIdentifier, serviceDefinition);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to store provider metadata, register is false. url \" + holder.url);\n-                }\n-            }\n-        }));\n-    }\n-\n-    @Override\n-    public void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.storeConsumerMetadata(consumerMetadataIdentifier, serviceParameterMap);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to store consumer metadata, register is false. url \" + holder.url);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.publishAppMetadata(identifier, metadataInfo);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to publish app metadata, register is false. url \" + holder.url);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        /**\n-         * Support local region or datacenter to read first,\n-         * If current region or datacenter failed, it will be demoted to another region or datacenter.\n-         */\n-        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\n-        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\n-            try {\n-                String definition = localReportHolder.report.getServiceDefinition(metadataIdentifier);\n-                if (definition != null && definition.length() > 0) {\n-                    return definition;\n-                }\n-            } catch (Exception e) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to get service definition from local metadata report center, url \" + localReportHolder.url);\n-                }\n-            }\n-        }\n-\n-        for (MetadataReportHolder holder : proxyReports) {\n-            /**\n-             * Skip the local region or datacenter read,\n-             * which was queried already.\n-             */\n-            if (localReportHolder != null\n-                    && holder.url == localReportHolder.url) {\n-                continue;\n-            }\n-\n-            if (shouldQuery(holder.url)) {\n-                try {\n-                    String definition = holder.report.getServiceDefinition(metadataIdentifier);\n-                    if (definition != null && definition.length() > 0) {\n-                        return definition;\n-                    }\n-                } catch (Exception e) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to get service definition from metadata report center, url \" + holder.url);\n-                    }\n-                }\n-            }\n-\n-            // should never happened.\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Cancel to get service definition, should query is false. url \" + holder.url);\n-            }\n-        }\n-\n-        return null;\n-    }\n-\n-    @Override\n-    public MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\n-        /**\n-         * Support local region or datacenter to read first,\n-         * If current region or datacenter failed, it will be demoted to another region or datacenter.\n-         */\n-        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\n-        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\n-            try {\n-                MetadataInfo metadataInfo = localReportHolder.report.getAppMetadata(identifier, instanceMetadata);\n-                if (metadataInfo != null) {\n-                    return metadataInfo;\n-                }\n-            } catch (Exception e) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to get app metadata from local metadata report center, url \" + localReportHolder.url);\n-                }\n-            }\n-        }\n-\n-        for (MetadataReportHolder holder : proxyReports) {\n-            /**\n-             * Skip the local region or datacenter read,\n-             * which was queried already.\n-             */\n-            if (localReportHolder != null\n-                    && holder.url == localReportHolder.url) {\n-                continue;\n-            }\n-\n-            if (shouldQuery(holder.url)) {\n-                try {\n-                    MetadataInfo metadataInfo = holder.report.getAppMetadata(identifier, instanceMetadata);\n-                    if (metadataInfo != null) {\n-                        return metadataInfo;\n-                    }\n-                } catch (Exception e) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to get app metadata from metadata report center, url \" + holder.url);\n-                    }\n-                }\n-            }\n-\n-            // should never happened.\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Cancel to get app metadata, should query is false. url \" + holder.url);\n-            }\n-        }\n-\n-        return null;\n-    }\n-\n-    @Override\n-    public Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\n-        /**\n-         * Support local region or datacenter to read first,\n-         * If current region or datacenter failed, it will be demoted to another region or datacenter.\n-         */\n-        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\n-        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\n-            try {\n-                Set<String> appMapping = localReportHolder.report.getServiceAppMapping(serviceKey, listener, url);\n-                if (appMapping != null && !appMapping.isEmpty()) {\n-                    return appMapping;\n-                }\n-            } catch (Exception e) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to get service mapping from local metadata report center, url \" + localReportHolder.url);\n-                }\n-            }\n-        }\n-\n-        for (MetadataReportHolder holder : proxyReports) {\n-            /**\n-             * Skip the local region or datacenter read,\n-             * which was queried already.\n-             */\n-            if (localReportHolder != null\n-                    && holder.url == localReportHolder.url) {\n-                continue;\n-            }\n-\n-            if (shouldQuery(holder.url)) {\n-                try {\n-                    Set<String> appMapping = holder.report.getServiceAppMapping(serviceKey, listener, url);\n-                    if (appMapping != null && !appMapping.isEmpty()) {\n-                        return appMapping;\n-                    }\n-                } catch (Exception e) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to get service mapping from metadata report center, url \" + holder.url);\n-                    }\n-                }\n-            }\n-\n-            // should never happened.\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Cancel to get service mapping, should query is false. url \" + holder.url);\n-            }\n-        }\n-\n-        return Collections.EMPTY_SET;\n-    }\n-\n-    @Override\n-    public void registerServiceAppMapping(String serviceKey, String application, URL url) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.registerServiceAppMapping(serviceKey, application, url);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.saveServiceMetadata(metadataIdentifier, url);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.saveSubscribedData(subscriberMetadataIdentifier, urls);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier) {\n-        this.proxyReports.forEach(holder -> {\n-            if (shouldRegister(holder.url)) {\n-                try {\n-                    holder.report.removeServiceMetadata(metadataIdentifier);\n-                } catch (Exception e) {\n-                    if (url.getParameter(CHECK_KEY, true)) {\n-                        throw e;\n-                    }\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        /**\n-         * Support local region or datacenter to read first,\n-         * If current region or datacenter failed, it will be demoted to another region or datacenter.\n-         */\n-        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\n-        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\n-            try {\n-                List<String> exportedURLs = localReportHolder.report.getExportedURLs(metadataIdentifier);\n-                if (exportedURLs != null && !exportedURLs.isEmpty()) {\n-                    return exportedURLs;\n-                }\n-            } catch (Exception e) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to get exported urls from local metadata report center, url \" + localReportHolder.url);\n-                }\n-            }\n-        }\n-\n-        for (MetadataReportHolder holder : proxyReports) {\n-            /**\n-             * Skip the local region or datacenter read,\n-             * which was queried already.\n-             */\n-            if (localReportHolder != null\n-                    && holder.url == localReportHolder.url) {\n-                continue;\n-            }\n-\n-            if (shouldQuery(holder.url)) {\n-                try {\n-                    List<String> exportedURLs = holder.report.getExportedURLs(metadataIdentifier);\n-                    if (exportedURLs != null && !exportedURLs.isEmpty()) {\n-                        return exportedURLs;\n-                    }\n-                } catch (Exception e) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to get exported urls from metadata report center, url \" + holder.url);\n-                    }\n-                }\n-            }\n-\n-            // should never happened.\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Cancel to get exported urls, should query is false. url \" + holder.url);\n-            }\n-        }\n-\n-        return Collections.EMPTY_LIST;\n-    }\n-\n-    @Override\n-    public List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        /**\n-         * Support local region or datacenter to read first,\n-         * If current region or datacenter failed, it will be demoted to another region or datacenter.\n-         */\n-        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\n-        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\n-            try {\n-                List<String> subscribedURLs = localReportHolder.report.getSubscribedURLs(subscriberMetadataIdentifier);\n-                if (subscribedURLs != null && !subscribedURLs.isEmpty()) {\n-                    return subscribedURLs;\n-                }\n-            } catch (Exception e) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to get subscribed urls from local metadata report center, url \" + localReportHolder.url);\n-                }\n-            }\n-        }\n-\n-        for (MetadataReportHolder holder : proxyReports) {\n-            /**\n-             * Skip the local region or datacenter read,\n-             * which was queried already.\n-             */\n-            if (localReportHolder != null\n-                    && holder.url == localReportHolder.url) {\n-                continue;\n-            }\n-\n-            if (shouldQuery(holder.url)) {\n-                try {\n-                    List<String> subscribedURLs = holder.report.getSubscribedURLs(subscriberMetadataIdentifier);\n-                    if (subscribedURLs != null && !subscribedURLs.isEmpty()) {\n-                        return subscribedURLs;\n-                    }\n-                } catch (Exception e) {\n-                    if (logger.isWarnEnabled()) {\n-                        logger.warn(\"Failed to get subscribed urls from metadata report center, url \" + holder.url);\n-                    }\n-                }\n-            }\n-\n-            // should never happened.\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Cancel to get subscribed urls, should query is false. url \" + holder.url);\n-            }\n-        }\n-\n-        return Collections.EMPTY_LIST;\n-    }\n-\n-    public List<MetadataReportHolder> getProxyReports() {\n-        return proxyReports;\n-    }\n-\n-    class MetadataReportHolder {\n-\n-        final URL            url;\n-        final MetadataReport report;\n-\n-        public MetadataReportHolder(URL url, MetadataReport report) {\n-            this.url = url;\n-            this.report = report;\n-        }\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.failover;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.RemotingConstants;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.metadata.MappingListener;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.MetadataReportFactory;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.regex.Pattern;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CHECK_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REGISTRY_SPLIT_PATTERN;\r\n+\r\n+/**\r\n+ * @author yiji@apache.org\r\n+ */\r\n+public class FailoverMetadataReport extends StrategyMetadataReport {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(FailoverMetadataReport.class);\r\n+\r\n+    // proxy metadata report protocol, eg: zookeeper\r\n+    private static final String PROTOCOL_KEY = \"protocol\";\r\n+\r\n+    private static final String CLUSTER_KEY = \"clusters\";\r\n+\r\n+    // A cluster may have multiple instances\r\n+    private static final String HOST_KEY = \"hosts\";\r\n+\r\n+    private static final Pattern HOST_SPLIT_PATTERN = Pattern.compile(\"\\\\s*[|:]+\\\\s*\");\r\n+\r\n+    // The metadata address of the agent.\r\n+    private List<URL> failoverUrls;\r\n+\r\n+    // The metadata report instance.\r\n+    private List<MetadataReportHolder> proxyReports;\r\n+\r\n+    // Local priority metadata center\r\n+    private MetadataReportHolder localDataCenterReportHolder;\r\n+\r\n+    public FailoverMetadataReport(URL url) {\r\n+        super(url);\r\n+        this.failoverUrls = fetchBackupUrls();\r\n+        this.proxyReports = buildProxyReports();\r\n+    }\r\n+\r\n+    protected List<URL> fetchBackupUrls() {\r\n+        String protocol = url.getParameter(PROTOCOL_KEY);\r\n+        if (protocol == null || !ExtensionLoader.getExtensionLoader(MetadataReportFactory.class).hasExtension(protocol)) {\r\n+            throw new IllegalArgumentException(\r\n+                    \"No '\" + protocol\r\n+                            + \"' metadata report extension found, please check if metadata report module dependencies are included.\");\r\n+        }\r\n+\r\n+        List<URL> urls = new ArrayList<>();\r\n+\r\n+        String clusters = this.url.getParameter(CLUSTER_KEY);\r\n+        String backupHost = this.url.getParameter(HOST_KEY);\r\n+        URL url = this.url.removeParameters(CLUSTER_KEY, HOST_KEY, PROTOCOL_KEY).setProtocol(protocol);\r\n+\r\n+        URL metadataURL = url;\r\n+        if (backupHost != null && backupHost.length() > 0) {\r\n+            metadataURL = metadataURL.addParameter(RemotingConstants.BACKUP_KEY, backupHost);\r\n+        }\r\n+        urls.add(metadataURL);\r\n+\r\n+        if (clusters != null && (clusters = clusters.trim()).length() > 0) {\r\n+            String[] addresses = REGISTRY_SPLIT_PATTERN.split(clusters);\r\n+            for (String address : addresses) {\r\n+                /**\r\n+                 * find multiple cluster hosts, supports multiple\r\n+                 * metadata report center read and write operations.\r\n+                 */\r\n+                String[] hosts = COMMA_SPLIT_PATTERN.split(address);\r\n+                if (hosts.length > 0) {\r\n+                    String node = hosts[0];\r\n+                    // contains user name and password with address ?\r\n+                    String username = null, password = null;\r\n+                    int index = node.indexOf(\"@\");\r\n+                    if (index > 0) {\r\n+                        String[] authority = HOST_SPLIT_PATTERN.split(node.substring(0, index));\r\n+                        username = authority[0];\r\n+                        password = authority[1];\r\n+                        node = node.substring(index + 1);\r\n+                    }\r\n+\r\n+                    String[] hostInfo = HOST_SPLIT_PATTERN.split(node);\r\n+                    String host = hostInfo[0];\r\n+                    int port = Integer.parseInt(hostInfo[1]);\r\n+                    URL clusterURL = new URL(protocol, username, password, host, port, url.getPath(), url.getParameters());\r\n+                    /**\r\n+                     * append backup address if required,\r\n+                     * the same cluster may have more than one node.\r\n+                     */\r\n+                    if (hosts.length > 1) {\r\n+                        StringBuilder buffer = new StringBuilder();\r\n+                        for (int i = 1; i < hosts.length; i++) {\r\n+                            if (i > 1) {\r\n+                                buffer.append(\",\");\r\n+                            }\r\n+                            buffer.append(hosts[i]);\r\n+                        }\r\n+                        clusterURL = clusterURL.addParameters(RemotingConstants.BACKUP_KEY, buffer.toString());\r\n+                    }\r\n+                    urls.add(clusterURL);\r\n+                }\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    protected List<MetadataReportHolder> buildProxyReports() {\r\n+        List<MetadataReportHolder> reports = new ArrayList<>();\r\n+        if (this.failoverUrls != null && !this.failoverUrls.isEmpty()) {\r\n+            ExtensionLoader<MetadataReportFactory> factoryLoader = ExtensionLoader.getExtensionLoader(MetadataReportFactory.class);\r\n+            for (URL url : this.failoverUrls) {\r\n+                try {\r\n+                    MetadataReportHolder holder = new MetadataReportHolder(url,\r\n+                            factoryLoader.getExtension(url.getProtocol()).getMetadataReport(url));\r\n+                    reports.add(holder);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw new RuntimeException(\"Failed to create + '\" + url.getProtocol() + \"' metadata report extension instance\", e);\r\n+                    }\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to create + '\" + url.getProtocol()\r\n+                                + \"' metadata report extension instance, check=false found.\");\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        Collections.shuffle(reports);\r\n+\r\n+        /**\r\n+         * Select the local priority metadata cluster.\r\n+         * In order to prevent clients from all connecting\r\n+         * to the same cluster, random sorting has been done.\r\n+         */\r\n+        reports.forEach(holder -> {\r\n+            if (isLocalDataCenter(holder.url)) {\r\n+                this.localDataCenterReportHolder = holder;\r\n+            }\r\n+        });\r\n+\r\n+        return reports;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void storeProviderMetadata(MetadataIdentifier providerMetadataIdentifier, ServiceDefinition serviceDefinition) {\r\n+        this.proxyReports.forEach((holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.storeProviderMetadata(providerMetadataIdentifier, serviceDefinition);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to store provider metadata, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        }));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void storeConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, Map<String, String> serviceParameterMap) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.storeConsumerMetadata(consumerMetadataIdentifier, serviceParameterMap);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to store consumer metadata, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.publishAppMetadata(identifier, metadataInfo);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to publish app metadata, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        /**\r\n+         * Support local region or datacenter to read first,\r\n+         * If current region or datacenter failed, it will be demoted to another region or datacenter.\r\n+         */\r\n+        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\r\n+        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\r\n+            try {\r\n+                String definition = localReportHolder.report.getServiceDefinition(metadataIdentifier);\r\n+                if (definition != null && definition.length() > 0) {\r\n+                    return definition;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to get service definition from local metadata report center, url \" + localReportHolder.url);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        for (MetadataReportHolder holder : proxyReports) {\r\n+            /**\r\n+             * Skip the local region or datacenter read,\r\n+             * which was queried already.\r\n+             */\r\n+            if (localReportHolder != null\r\n+                    && holder.url == localReportHolder.url) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (shouldQuery(holder.url)) {\r\n+                try {\r\n+                    String definition = holder.report.getServiceDefinition(metadataIdentifier);\r\n+                    if (definition != null && definition.length() > 0) {\r\n+                        return definition;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to get service definition from metadata report center, url \" + holder.url);\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            // should never happened.\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Cancel to get service definition, should query is false. url \" + holder.url);\r\n+            }\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\r\n+        /**\r\n+         * Support local region or datacenter to read first,\r\n+         * If current region or datacenter failed, it will be demoted to another region or datacenter.\r\n+         */\r\n+        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\r\n+        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\r\n+            try {\r\n+                MetadataInfo metadataInfo = localReportHolder.report.getAppMetadata(identifier, instanceMetadata);\r\n+                if (metadataInfo != null) {\r\n+                    return metadataInfo;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to get app metadata from local metadata report center, url \" + localReportHolder.url);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        for (MetadataReportHolder holder : proxyReports) {\r\n+            /**\r\n+             * Skip the local region or datacenter read,\r\n+             * which was queried already.\r\n+             */\r\n+            if (localReportHolder != null\r\n+                    && holder.url == localReportHolder.url) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (shouldQuery(holder.url)) {\r\n+                try {\r\n+                    MetadataInfo metadataInfo = holder.report.getAppMetadata(identifier, instanceMetadata);\r\n+                    if (metadataInfo != null) {\r\n+                        return metadataInfo;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to get app metadata from metadata report center, url \" + holder.url);\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            // should never happened.\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Cancel to get app metadata, should query is false. url \" + holder.url);\r\n+            }\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\r\n+        /**\r\n+         * Support local region or datacenter to read first,\r\n+         * If current region or datacenter failed, it will be demoted to another region or datacenter.\r\n+         */\r\n+        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\r\n+        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\r\n+            try {\r\n+                Set<String> appMapping = localReportHolder.report.getServiceAppMapping(serviceKey, listener, url);\r\n+                if (appMapping != null && !appMapping.isEmpty()) {\r\n+                    return appMapping;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to get service mapping from local metadata report center, url \" + localReportHolder.url);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        for (MetadataReportHolder holder : proxyReports) {\r\n+            /**\r\n+             * Skip the local region or datacenter read,\r\n+             * which was queried already.\r\n+             */\r\n+            if (localReportHolder != null\r\n+                    && holder.url == localReportHolder.url) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (shouldQuery(holder.url)) {\r\n+                try {\r\n+                    Set<String> appMapping = holder.report.getServiceAppMapping(serviceKey, listener, url);\r\n+                    if (appMapping != null && !appMapping.isEmpty()) {\r\n+                        return appMapping;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to get service mapping from metadata report center, url \" + holder.url);\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            // should never happened.\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Cancel to get service mapping, should query is false. url \" + holder.url);\r\n+            }\r\n+        }\r\n+\r\n+        return Collections.EMPTY_SET;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void registerServiceAppMapping(String serviceKey, String application, URL url) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.registerServiceAppMapping(serviceKey, application, url);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void saveServiceMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.saveServiceMetadata(metadataIdentifier, url);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void saveSubscribedData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, Set<String> urls) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.saveSubscribedData(subscriberMetadataIdentifier, urls);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Cancel to register service app mapping, register is false. url \" + holder.url);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeServiceMetadata(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        this.proxyReports.forEach(holder -> {\r\n+            if (shouldRegister(holder.url)) {\r\n+                try {\r\n+                    holder.report.removeServiceMetadata(metadataIdentifier);\r\n+                } catch (Exception e) {\r\n+                    if (url.getParameter(CHECK_KEY, true)) {\r\n+                        throw e;\r\n+                    }\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> getExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        /**\r\n+         * Support local region or datacenter to read first,\r\n+         * If current region or datacenter failed, it will be demoted to another region or datacenter.\r\n+         */\r\n+        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\r\n+        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\r\n+            try {\r\n+                List<String> exportedURLs = localReportHolder.report.getExportedURLs(metadataIdentifier);\r\n+                if (exportedURLs != null && !exportedURLs.isEmpty()) {\r\n+                    return exportedURLs;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to get exported urls from local metadata report center, url \" + localReportHolder.url);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        for (MetadataReportHolder holder : proxyReports) {\r\n+            /**\r\n+             * Skip the local region or datacenter read,\r\n+             * which was queried already.\r\n+             */\r\n+            if (localReportHolder != null\r\n+                    && holder.url == localReportHolder.url) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (shouldQuery(holder.url)) {\r\n+                try {\r\n+                    List<String> exportedURLs = holder.report.getExportedURLs(metadataIdentifier);\r\n+                    if (exportedURLs != null && !exportedURLs.isEmpty()) {\r\n+                        return exportedURLs;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to get exported urls from metadata report center, url \" + holder.url);\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            // should never happened.\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Cancel to get exported urls, should query is false. url \" + holder.url);\r\n+            }\r\n+        }\r\n+\r\n+        return Collections.EMPTY_LIST;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> getSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        /**\r\n+         * Support local region or datacenter to read first,\r\n+         * If current region or datacenter failed, it will be demoted to another region or datacenter.\r\n+         */\r\n+        MetadataReportHolder localReportHolder = this.localDataCenterReportHolder;\r\n+        if (localReportHolder != null && shouldQuery(localReportHolder.url)) {\r\n+            try {\r\n+                List<String> subscribedURLs = localReportHolder.report.getSubscribedURLs(subscriberMetadataIdentifier);\r\n+                if (subscribedURLs != null && !subscribedURLs.isEmpty()) {\r\n+                    return subscribedURLs;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to get subscribed urls from local metadata report center, url \" + localReportHolder.url);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        for (MetadataReportHolder holder : proxyReports) {\r\n+            /**\r\n+             * Skip the local region or datacenter read,\r\n+             * which was queried already.\r\n+             */\r\n+            if (localReportHolder != null\r\n+                    && holder.url == localReportHolder.url) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (shouldQuery(holder.url)) {\r\n+                try {\r\n+                    List<String> subscribedURLs = holder.report.getSubscribedURLs(subscriberMetadataIdentifier);\r\n+                    if (subscribedURLs != null && !subscribedURLs.isEmpty()) {\r\n+                        return subscribedURLs;\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    if (logger.isWarnEnabled()) {\r\n+                        logger.warn(\"Failed to get subscribed urls from metadata report center, url \" + holder.url);\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            // should never happened.\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Cancel to get subscribed urls, should query is false. url \" + holder.url);\r\n+            }\r\n+        }\r\n+\r\n+        return Collections.EMPTY_LIST;\r\n+    }\r\n+\r\n+    public List<MetadataReportHolder> getProxyReports() {\r\n+        return proxyReports;\r\n+    }\r\n+\r\n+    class MetadataReportHolder {\r\n+\r\n+        final URL            url;\r\n+        final MetadataReport report;\r\n+\r\n+        public MetadataReportHolder(URL url, MetadataReport report) {\r\n+            this.url = url;\r\n+            this.report = report;\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/metadata/store/failover/FailoverMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/failover/FailoverMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.failover;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-public class FailoverMetadataReportFactory extends AbstractMetadataReportFactory {\n-\n-    @Override\n-    protected MetadataReport createMetadataReport(URL url) {\n-        return new FailoverMetadataReport(url);\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.failover;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+public class FailoverMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+\r\n+    @Override\r\n+    protected MetadataReport createMetadataReport(URL url) {\r\n+        return new FailoverMetadataReport(url);\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/metadata/store/failover/StrategyMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/failover/StrategyMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.failover;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-\n-/**\n- * @author yiji@apache.org\n- */\n-public abstract class StrategyMetadataReport implements MetadataReport {\n-\n-    // failover configured url, eg: failover://127.0.1:2181?backup=localhost:2181|localhost:2181\n-    protected URL url;\n-\n-    protected static final String STRATEGY_KEY = \"strategy\";\n-\n-    // proxy metadata report strategy, used to decide whether to write or read metadata\n-    protected FailoverCondition strategy;\n-\n-    protected ExtensionLoader<FailoverCondition> failoverLoader = ExtensionLoader.getExtensionLoader(FailoverCondition.class);\n-\n-    public StrategyMetadataReport(URL url) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url is required.\");\n-        }\n-        this.url = url;\n-        createFailoverStrategy(url);\n-    }\n-\n-    protected void createFailoverStrategy(URL url) {\n-        String strategy = url.getParameter(STRATEGY_KEY);\n-        if (strategy != null) {\n-            if (!failoverLoader.hasExtension(strategy)) {\n-                throw new IllegalArgumentException(\"No '\" + strategy + \"' failover condition extension found.\");\n-            }\n-            this.strategy = failoverLoader.getExtension(strategy);\n-        }\n-    }\n-\n-    /**\n-     * Whether metadata should be reported.\n-     *\n-     * @param url registry url, eg: zookeeper://127.0.0.1:2181\n-     * @return true store metadata to the specified URL.\n-     */\n-    protected boolean shouldRegister(URL url) {\n-        return this.strategy == null || this.strategy.shouldRegister(url);\n-    }\n-\n-    /**\n-     * Whether metadata should be read from specified url.\n-     *\n-     * @param url registry url, eg: zookeeper://127.0.0.1:2181\n-     * @return true read metadata from specified URL.\n-     */\n-    protected boolean shouldQuery(URL url) {\n-        return this.strategy == null || this.strategy.shouldQuery(url);\n-    }\n-\n-    /**\n-     * Judge whether it is a local region or a local datacenter.\n-     * <p>\n-     * Allows the local region or datacenter to be read first.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    protected boolean isLocalDataCenter(URL url) {\n-        return this.strategy == null || this.strategy.isLocalDataCenter(url);\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.failover;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+\r\n+/**\r\n+ * @author yiji@apache.org\r\n+ */\r\n+public abstract class StrategyMetadataReport implements MetadataReport {\r\n+\r\n+    // failover configured url, eg: failover://127.0.1:2181?backup=localhost:2181|localhost:2181\r\n+    protected URL url;\r\n+\r\n+    protected static final String STRATEGY_KEY = \"strategy\";\r\n+\r\n+    // proxy metadata report strategy, used to decide whether to write or read metadata\r\n+    protected FailoverCondition strategy;\r\n+\r\n+    protected ExtensionLoader<FailoverCondition> failoverLoader = ExtensionLoader.getExtensionLoader(FailoverCondition.class);\r\n+\r\n+    public StrategyMetadataReport(URL url) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url is required.\");\r\n+        }\r\n+        this.url = url;\r\n+        createFailoverStrategy(url);\r\n+    }\r\n+\r\n+    protected void createFailoverStrategy(URL url) {\r\n+        String strategy = url.getParameter(STRATEGY_KEY);\r\n+        if (strategy != null) {\r\n+            if (!failoverLoader.hasExtension(strategy)) {\r\n+                throw new IllegalArgumentException(\"No '\" + strategy + \"' failover condition extension found.\");\r\n+            }\r\n+            this.strategy = failoverLoader.getExtension(strategy);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Whether metadata should be reported.\r\n+     *\r\n+     * @param url registry url, eg: zookeeper://127.0.0.1:2181\r\n+     * @return true store metadata to the specified URL.\r\n+     */\r\n+    protected boolean shouldRegister(URL url) {\r\n+        return this.strategy == null || this.strategy.shouldRegister(url);\r\n+    }\r\n+\r\n+    /**\r\n+     * Whether metadata should be read from specified url.\r\n+     *\r\n+     * @param url registry url, eg: zookeeper://127.0.0.1:2181\r\n+     * @return true read metadata from specified URL.\r\n+     */\r\n+    protected boolean shouldQuery(URL url) {\r\n+        return this.strategy == null || this.strategy.shouldQuery(url);\r\n+    }\r\n+\r\n+    /**\r\n+     * Judge whether it is a local region or a local datacenter.\r\n+     * <p>\r\n+     * Allows the local region or datacenter to be read first.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    protected boolean isLocalDataCenter(URL url) {\r\n+        return this.strategy == null || this.strategy.isLocalDataCenter(url);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/metadata/store/nacos/NacosConfigServiceWrapper.java", "source2": "org/apache/dubbo/metadata/store/nacos/NacosConfigServiceWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.nacos;\n-\n-import com.alibaba.nacos.api.config.ConfigService;\n-import com.alibaba.nacos.api.exception.NacosException;\n-\n-public class NacosConfigServiceWrapper {\n-\n-    private static final String INNERCLASS_SYMBOL = \"$\";\n-\n-    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\n-\n-    private ConfigService configService;\n-\n-    public NacosConfigServiceWrapper(ConfigService configService) {\n-        this.configService = configService;\n-    }\n-\n-    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\n-        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\n-    }\n-\n-    public boolean removeConfig(String dataId, String group) throws NacosException {\n-        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\n-    }\n-\n-    public String getConfig(String dataId, String group, long timeout) throws NacosException {\n-        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\n-    }\n-\n-    /**\n-     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\n-     */\n-    private String handleInnerSymbol(String dataId) {\n-        if (dataId == null) {\n-            return null;\n-        }\n-        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.nacos;\r\n+\r\n+import com.alibaba.nacos.api.config.ConfigService;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+\r\n+public class NacosConfigServiceWrapper {\r\n+\r\n+    private static final String INNERCLASS_SYMBOL = \"$\";\r\n+\r\n+    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\r\n+\r\n+    private ConfigService configService;\r\n+\r\n+    public NacosConfigServiceWrapper(ConfigService configService) {\r\n+        this.configService = configService;\r\n+    }\r\n+\r\n+    public boolean publishConfig(String dataId, String group, String content) throws NacosException {\r\n+        return configService.publishConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), content);\r\n+    }\r\n+\r\n+    public boolean removeConfig(String dataId, String group) throws NacosException {\r\n+        return configService.removeConfig(handleInnerSymbol(dataId), handleInnerSymbol(group));\r\n+    }\r\n+\r\n+    public String getConfig(String dataId, String group, long timeout) throws NacosException {\r\n+        return configService.getConfig(handleInnerSymbol(dataId), handleInnerSymbol(group), timeout);\r\n+    }\r\n+\r\n+    /**\r\n+     * see {@link com.alibaba.nacos.client.config.utils.ParamUtils#isValid(java.lang.String)}\r\n+     */\r\n+    private String handleInnerSymbol(String dataId) {\r\n+        if (dataId == null) {\r\n+            return null;\r\n+        }\r\n+        return dataId.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/nacos/NacosMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,229 +1,229 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.metadata.store.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.alibaba.nacos.api.NacosFactory;\n-import com.alibaba.nacos.api.exception.NacosException;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Properties;\n-\n-import static com.alibaba.nacos.api.PropertyKeyConst.ACCESS_KEY;\n-import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME;\n-import static com.alibaba.nacos.api.PropertyKeyConst.CONFIG_LONG_POLL_TIMEOUT;\n-import static com.alibaba.nacos.api.PropertyKeyConst.CONFIG_RETRY_TIME;\n-import static com.alibaba.nacos.api.PropertyKeyConst.CONTEXT_PATH;\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENABLE_REMOTE_SYNC_CONFIG;\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT;\n-import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT_PORT;\n-import static com.alibaba.nacos.api.PropertyKeyConst.IS_USE_CLOUD_NAMESPACE_PARSING;\n-import static com.alibaba.nacos.api.PropertyKeyConst.IS_USE_ENDPOINT_PARSING_RULE;\n-import static com.alibaba.nacos.api.PropertyKeyConst.MAX_RETRY;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_CLIENT_BEAT_THREAD_COUNT;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_POLLING_THREAD_COUNT;\n-import static com.alibaba.nacos.api.PropertyKeyConst.RAM_ROLE_NAME;\n-import static com.alibaba.nacos.api.PropertyKeyConst.SECRET_KEY;\n-import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\n-import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-\n-/**\n- * metadata report impl for nacos\n- */\n-public class NacosMetadataReport extends AbstractMetadataReport {\n-\n-    private NacosConfigServiceWrapper configService;\n-\n-    /**\n-     * The group used to store metadata in Nacos\n-     */\n-    private String group;\n-\n-\n-    public NacosMetadataReport(URL url) {\n-        super(url);\n-        this.configService = buildConfigService(url);\n-        group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\n-    }\n-\n-    public NacosConfigServiceWrapper buildConfigService(URL url) {\n-        Properties nacosProperties = buildNacosProperties(url);\n-        try {\n-            configService = new NacosConfigServiceWrapper(NacosFactory.createConfigService(nacosProperties));\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getErrMsg(), e);\n-            }\n-            throw new IllegalStateException(e);\n-        }\n-        return configService;\n-    }\n-\n-    private Properties buildNacosProperties(URL url) {\n-        Properties properties = new Properties();\n-        setServerAddr(url, properties);\n-        setProperties(url, properties);\n-        return properties;\n-    }\n-\n-    private void setServerAddr(URL url, Properties properties) {\n-        StringBuilder serverAddrBuilder =\n-                new StringBuilder(url.getHost()) // Host\n-                        .append(\":\")\n-                        .append(url.getPort()); // Port\n-        // Append backup parameter as other servers\n-        String backup = url.getParameter(BACKUP_KEY);\n-        if (backup != null) {\n-            serverAddrBuilder.append(\",\").append(backup);\n-        }\n-        String serverAddr = serverAddrBuilder.toString();\n-        properties.put(SERVER_ADDR, serverAddr);\n-    }\n-\n-    private static void setProperties(URL url, Properties properties) {\n-        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\n-        putPropertyIfAbsent(url, properties, IS_USE_CLOUD_NAMESPACE_PARSING);\n-        putPropertyIfAbsent(url, properties, IS_USE_ENDPOINT_PARSING_RULE);\n-        putPropertyIfAbsent(url, properties, ENDPOINT);\n-        putPropertyIfAbsent(url, properties, ENDPOINT_PORT);\n-        putPropertyIfAbsent(url, properties, NAMESPACE);\n-        putPropertyIfAbsent(url, properties, ACCESS_KEY);\n-        putPropertyIfAbsent(url, properties, SECRET_KEY);\n-        putPropertyIfAbsent(url, properties, RAM_ROLE_NAME);\n-        putPropertyIfAbsent(url, properties, CONTEXT_PATH);\n-        putPropertyIfAbsent(url, properties, CLUSTER_NAME);\n-        putPropertyIfAbsent(url, properties, ENCODE);\n-        putPropertyIfAbsent(url, properties, CONFIG_LONG_POLL_TIMEOUT);\n-        putPropertyIfAbsent(url, properties, CONFIG_RETRY_TIME);\n-        putPropertyIfAbsent(url, properties, MAX_RETRY);\n-        putPropertyIfAbsent(url, properties, ENABLE_REMOTE_SYNC_CONFIG);\n-        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\n-        putPropertyIfAbsent(url, properties, NAMING_CLIENT_BEAT_THREAD_COUNT);\n-        putPropertyIfAbsent(url, properties, NAMING_POLLING_THREAD_COUNT);\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        }\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        } else {\n-            properties.setProperty(propertyName, defaultValue);\n-        }\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        this.storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\n-        storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\n-        deleteMetadata(serviceMetadataIdentifier);\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        String content = getConfig(metadataIdentifier);\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\n-        storeMetadata(subscriberMetadataIdentifier, urlListStr);\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return getConfig(subscriberMetadataIdentifier);\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return getConfig(metadataIdentifier);\n-    }\n-\n-    private void storeMetadata(BaseMetadataIdentifier identifier, String value) {\n-        try {\n-            boolean publishResult = configService.publishConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group, value);\n-            if (!publishResult) {\n-                throw new RuntimeException(\"publish nacos metadata failed\");\n-            }\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to put \" + identifier + \" to nacos \" + value + \", cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to put \" + identifier + \" to nacos \" + value + \", cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private void deleteMetadata(BaseMetadataIdentifier identifier) {\n-        try {\n-            boolean publishResult = configService.removeConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group);\n-            if (!publishResult) {\n-                throw new RuntimeException(\"remove nacos metadata failed\");\n-            }\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to remove \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to remove \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private String getConfig(BaseMetadataIdentifier identifier) {\n-        try {\n-            return configService.getConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group, 3000L);\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to get \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\n-            throw new RpcException(\"Failed to get \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.metadata.store.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.alibaba.nacos.api.NacosFactory;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Properties;\r\n+\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ACCESS_KEY;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.CLUSTER_NAME;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.CONFIG_LONG_POLL_TIMEOUT;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.CONFIG_RETRY_TIME;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.CONTEXT_PATH;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENABLE_REMOTE_SYNC_CONFIG;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENCODE;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.ENDPOINT_PORT;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.IS_USE_CLOUD_NAMESPACE_PARSING;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.IS_USE_ENDPOINT_PARSING_RULE;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.MAX_RETRY;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMESPACE;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_CLIENT_BEAT_THREAD_COUNT;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_POLLING_THREAD_COUNT;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.RAM_ROLE_NAME;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.SECRET_KEY;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\r\n+import static com.alibaba.nacos.client.naming.utils.UtilAndComs.NACOS_NAMING_LOG_NAME;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+\r\n+/**\r\n+ * metadata report impl for nacos\r\n+ */\r\n+public class NacosMetadataReport extends AbstractMetadataReport {\r\n+\r\n+    private NacosConfigServiceWrapper configService;\r\n+\r\n+    /**\r\n+     * The group used to store metadata in Nacos\r\n+     */\r\n+    private String group;\r\n+\r\n+\r\n+    public NacosMetadataReport(URL url) {\r\n+        super(url);\r\n+        this.configService = buildConfigService(url);\r\n+        group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\r\n+    }\r\n+\r\n+    public NacosConfigServiceWrapper buildConfigService(URL url) {\r\n+        Properties nacosProperties = buildNacosProperties(url);\r\n+        try {\r\n+            configService = new NacosConfigServiceWrapper(NacosFactory.createConfigService(nacosProperties));\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getErrMsg(), e);\r\n+            }\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return configService;\r\n+    }\r\n+\r\n+    private Properties buildNacosProperties(URL url) {\r\n+        Properties properties = new Properties();\r\n+        setServerAddr(url, properties);\r\n+        setProperties(url, properties);\r\n+        return properties;\r\n+    }\r\n+\r\n+    private void setServerAddr(URL url, Properties properties) {\r\n+        StringBuilder serverAddrBuilder =\r\n+                new StringBuilder(url.getHost()) // Host\r\n+                        .append(\":\")\r\n+                        .append(url.getPort()); // Port\r\n+        // Append backup parameter as other servers\r\n+        String backup = url.getParameter(BACKUP_KEY);\r\n+        if (backup != null) {\r\n+            serverAddrBuilder.append(\",\").append(backup);\r\n+        }\r\n+        String serverAddr = serverAddrBuilder.toString();\r\n+        properties.put(SERVER_ADDR, serverAddr);\r\n+    }\r\n+\r\n+    private static void setProperties(URL url, Properties properties) {\r\n+        putPropertyIfAbsent(url, properties, NACOS_NAMING_LOG_NAME);\r\n+        putPropertyIfAbsent(url, properties, IS_USE_CLOUD_NAMESPACE_PARSING);\r\n+        putPropertyIfAbsent(url, properties, IS_USE_ENDPOINT_PARSING_RULE);\r\n+        putPropertyIfAbsent(url, properties, ENDPOINT);\r\n+        putPropertyIfAbsent(url, properties, ENDPOINT_PORT);\r\n+        putPropertyIfAbsent(url, properties, NAMESPACE);\r\n+        putPropertyIfAbsent(url, properties, ACCESS_KEY);\r\n+        putPropertyIfAbsent(url, properties, SECRET_KEY);\r\n+        putPropertyIfAbsent(url, properties, RAM_ROLE_NAME);\r\n+        putPropertyIfAbsent(url, properties, CONTEXT_PATH);\r\n+        putPropertyIfAbsent(url, properties, CLUSTER_NAME);\r\n+        putPropertyIfAbsent(url, properties, ENCODE);\r\n+        putPropertyIfAbsent(url, properties, CONFIG_LONG_POLL_TIMEOUT);\r\n+        putPropertyIfAbsent(url, properties, CONFIG_RETRY_TIME);\r\n+        putPropertyIfAbsent(url, properties, MAX_RETRY);\r\n+        putPropertyIfAbsent(url, properties, ENABLE_REMOTE_SYNC_CONFIG);\r\n+        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\r\n+        putPropertyIfAbsent(url, properties, NAMING_CLIENT_BEAT_THREAD_COUNT);\r\n+        putPropertyIfAbsent(url, properties, NAMING_POLLING_THREAD_COUNT);\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        }\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        } else {\r\n+            properties.setProperty(propertyName, defaultValue);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        this.storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\r\n+        storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\r\n+        deleteMetadata(serviceMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        String content = getConfig(metadataIdentifier);\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\r\n+        storeMetadata(subscriberMetadataIdentifier, urlListStr);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return getConfig(subscriberMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return getConfig(metadataIdentifier);\r\n+    }\r\n+\r\n+    private void storeMetadata(BaseMetadataIdentifier identifier, String value) {\r\n+        try {\r\n+            boolean publishResult = configService.publishConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group, value);\r\n+            if (!publishResult) {\r\n+                throw new RuntimeException(\"publish nacos metadata failed\");\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to put \" + identifier + \" to nacos \" + value + \", cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to put \" + identifier + \" to nacos \" + value + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadata(BaseMetadataIdentifier identifier) {\r\n+        try {\r\n+            boolean publishResult = configService.removeConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group);\r\n+            if (!publishResult) {\r\n+                throw new RuntimeException(\"remove nacos metadata failed\");\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to remove \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to remove \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private String getConfig(BaseMetadataIdentifier identifier) {\r\n+        try {\r\n+            return configService.getConfig(identifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), group, 3000L);\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to get \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\r\n+            throw new RpcException(\"Failed to get \" + identifier + \" from nacos , cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/nacos/NacosMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.metadata.store.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-/**\n- * metadata report factory impl for nacos\n- */\n-public class NacosMetadataReportFactory extends AbstractMetadataReportFactory {\n-    @Override\n-    protected MetadataReport createMetadataReport(URL url) {\n-        return new NacosMetadataReport(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.metadata.store.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+/**\r\n+ * metadata report factory impl for nacos\r\n+ */\r\n+public class NacosMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+    @Override\r\n+    protected MetadataReport createMetadataReport(URL url) {\r\n+        return new NacosMetadataReport(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/redis/RedisMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,210 +1,210 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import org.apache.commons.pool2.impl.GenericObjectPoolConfig;\n-import redis.clients.jedis.HostAndPort;\n-import redis.clients.jedis.Jedis;\n-import redis.clients.jedis.JedisCluster;\n-import redis.clients.jedis.JedisPool;\n-import redis.clients.jedis.JedisPoolConfig;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.metadata.MetadataConstants.META_DATA_STORE_TAG;\n-\n-/**\n- * RedisMetadataReport\n- */\n-public class RedisMetadataReport extends AbstractMetadataReport {\n-\n-    private final static String REDIS_DATABASE_KEY = \"database\";\n-    /**\n-     * maximum number of retries\n-     */\n-    private final static int MAX_ATTEMPTS = 2;\n-    /**\n-     * the default slot of the redis database\n-     */\n-    private final static int DEFAULT_REDIS_DATABASE_SLOT = 0;\n-\n-    JedisPool pool;\n-    Set<HostAndPort> jedisClusterNodes;\n-    private int timeout;\n-    private String password;\n-\n-\n-    public RedisMetadataReport(URL url) {\n-        super(url);\n-        timeout = url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        password = url.getPassword();\n-        if (url.getParameter(CLUSTER_KEY, false)) {\n-            jedisClusterNodes = new HashSet<HostAndPort>();\n-            List<URL> urls = url.getBackupUrls();\n-            for (URL tmpUrl : urls) {\n-                jedisClusterNodes.add(new HostAndPort(tmpUrl.getHost(), tmpUrl.getPort()));\n-            }\n-        } else {\n-            int database = url.getParameter(REDIS_DATABASE_KEY, DEFAULT_REDIS_DATABASE_SLOT);\n-            pool = new JedisPool(new JedisPoolConfig(), url.getHost(), url.getPort(), timeout, password, database);\n-        }\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        this.storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\n-        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\n-        this.deleteMetadata(serviceMetadataIdentifier);\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        String content = getMetadata(metadataIdentifier);\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\n-        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return this.getMetadata(subscriberMetadataIdentifier);\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return this.getMetadata(metadataIdentifier);\n-    }\n-\n-    private void storeMetadata(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        if (pool != null) {\n-            storeMetadataStandalone(metadataIdentifier, v);\n-        } else {\n-            storeMetadataInCluster(metadataIdentifier, v);\n-        }\n-    }\n-\n-    private void storeMetadataInCluster(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            jedisCluster.set(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG, v);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void storeMetadataStandalone(BaseMetadataIdentifier metadataIdentifier, String v) {\n-        try (Jedis jedis = pool.getResource()) {\n-            jedis.set(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void deleteMetadata(BaseMetadataIdentifier metadataIdentifier) {\n-        if (pool != null) {\n-            deleteMetadataStandalone(metadataIdentifier);\n-        } else {\n-            deleteMetadataInCluster(metadataIdentifier);\n-        }\n-    }\n-\n-    private void deleteMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            jedisCluster.del(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private void deleteMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\n-        try (Jedis jedis = pool.getResource()) {\n-            jedis.del(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private String getMetadata(BaseMetadataIdentifier metadataIdentifier) {\n-        if (pool != null) {\n-            return getMetadataStandalone(metadataIdentifier);\n-        } else {\n-            return getMetadataInCluster(metadataIdentifier);\n-        }\n-    }\n-\n-    private String getMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\n-        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\n-                new GenericObjectPoolConfig())) {\n-            return jedisCluster.get(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    private String getMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\n-        try (Jedis jedis = pool.getResource()) {\n-            return jedis.get(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\n-        } catch (Throwable e) {\n-            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import org.apache.commons.pool2.impl.GenericObjectPoolConfig;\r\n+import redis.clients.jedis.HostAndPort;\r\n+import redis.clients.jedis.Jedis;\r\n+import redis.clients.jedis.JedisCluster;\r\n+import redis.clients.jedis.JedisPool;\r\n+import redis.clients.jedis.JedisPoolConfig;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.META_DATA_STORE_TAG;\r\n+\r\n+/**\r\n+ * RedisMetadataReport\r\n+ */\r\n+public class RedisMetadataReport extends AbstractMetadataReport {\r\n+\r\n+    private final static String REDIS_DATABASE_KEY = \"database\";\r\n+    /**\r\n+     * maximum number of retries\r\n+     */\r\n+    private final static int MAX_ATTEMPTS = 2;\r\n+    /**\r\n+     * the default slot of the redis database\r\n+     */\r\n+    private final static int DEFAULT_REDIS_DATABASE_SLOT = 0;\r\n+\r\n+    JedisPool pool;\r\n+    Set<HostAndPort> jedisClusterNodes;\r\n+    private int timeout;\r\n+    private String password;\r\n+\r\n+\r\n+    public RedisMetadataReport(URL url) {\r\n+        super(url);\r\n+        timeout = url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        password = url.getPassword();\r\n+        if (url.getParameter(CLUSTER_KEY, false)) {\r\n+            jedisClusterNodes = new HashSet<HostAndPort>();\r\n+            List<URL> urls = url.getBackupUrls();\r\n+            for (URL tmpUrl : urls) {\r\n+                jedisClusterNodes.add(new HostAndPort(tmpUrl.getHost(), tmpUrl.getPort()));\r\n+            }\r\n+        } else {\r\n+            int database = url.getParameter(REDIS_DATABASE_KEY, DEFAULT_REDIS_DATABASE_SLOT);\r\n+            pool = new JedisPool(new JedisPoolConfig(), url.getHost(), url.getPort(), timeout, password, database);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        this.storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        this.storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier, URL url) {\r\n+        this.storeMetadata(serviceMetadataIdentifier, URL.encode(url.toFullString()));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier serviceMetadataIdentifier) {\r\n+        this.deleteMetadata(serviceMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        String content = getMetadata(metadataIdentifier);\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urlListStr) {\r\n+        this.storeMetadata(subscriberMetadataIdentifier, urlListStr);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return this.getMetadata(subscriberMetadataIdentifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return this.getMetadata(metadataIdentifier);\r\n+    }\r\n+\r\n+    private void storeMetadata(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        if (pool != null) {\r\n+            storeMetadataStandalone(metadataIdentifier, v);\r\n+        } else {\r\n+            storeMetadataInCluster(metadataIdentifier, v);\r\n+        }\r\n+    }\r\n+\r\n+    private void storeMetadataInCluster(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            jedisCluster.set(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG, v);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis cluster \" + v + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void storeMetadataStandalone(BaseMetadataIdentifier metadataIdentifier, String v) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            jedis.set(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY), v);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to put \" + metadataIdentifier + \" to redis \" + v + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadata(BaseMetadataIdentifier metadataIdentifier) {\r\n+        if (pool != null) {\r\n+            deleteMetadataStandalone(metadataIdentifier);\r\n+        } else {\r\n+            deleteMetadataInCluster(metadataIdentifier);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            jedisCluster.del(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void deleteMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            jedis.del(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to delete \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadata(BaseMetadataIdentifier metadataIdentifier) {\r\n+        if (pool != null) {\r\n+            return getMetadataStandalone(metadataIdentifier);\r\n+        } else {\r\n+            return getMetadataInCluster(metadataIdentifier);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadataInCluster(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (JedisCluster jedisCluster = new JedisCluster(jedisClusterNodes, timeout, timeout, MAX_ATTEMPTS, password,\r\n+                new GenericObjectPoolConfig())) {\r\n+            return jedisCluster.get(metadataIdentifier.getIdentifierKey() + META_DATA_STORE_TAG);\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis cluster , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private String getMetadataStandalone(BaseMetadataIdentifier metadataIdentifier) {\r\n+        try (Jedis jedis = pool.getResource()) {\r\n+            return jedis.get(metadataIdentifier.getUniqueKey(KeyTypeEnum.UNIQUE_KEY));\r\n+        } catch (Throwable e) {\r\n+            logger.error(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+            throw new RpcException(\"Failed to get \" + metadataIdentifier + \" from redis , cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/redis/RedisMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-\n-/**\n- * RedisMetadataReportFactory.\n- */\n-public class RedisMetadataReportFactory extends AbstractMetadataReportFactory {\n-\n-\n-    @Override\n-    public MetadataReport createMetadataReport(URL url) {\n-        return new RedisMetadataReport(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+\r\n+/**\r\n+ * RedisMetadataReportFactory.\r\n+ */\r\n+public class RedisMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+\r\n+\r\n+    @Override\r\n+    public MetadataReport createMetadataReport(URL url) {\r\n+        return new RedisMetadataReport(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java", "source2": "org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,188 +1,188 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.zookeeper;\n-\n-import com.google.gson.Gson;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MappingChangedEvent;\n-import org.apache.dubbo.metadata.MappingListener;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\n-import org.apache.dubbo.remoting.zookeeper.ChildListener;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-\n-/**\n- * ZookeeperMetadataReport\n- */\n-public class ZookeeperMetadataReport extends AbstractMetadataReport {\n-\n-    private final String root;\n-\n-    final ZookeeperClient zkClient;\n-\n-    private Gson gson = new Gson();\n-\n-    private Map<String, ChildListener> listenerMap = new ConcurrentHashMap<>();\n-\n-    public ZookeeperMetadataReport(URL url, ZookeeperTransporter zookeeperTransporter) {\n-        super(url);\n-        if (url.isAnyHost()) {\n-            throw new IllegalStateException(\"registry address == null\");\n-        }\n-        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\n-        if (!group.startsWith(PATH_SEPARATOR)) {\n-            group = PATH_SEPARATOR + group;\n-        }\n-        this.root = group;\n-        zkClient = zookeeperTransporter.connect(url);\n-    }\n-\n-    String toRootDir() {\n-        if (root.equals(PATH_SEPARATOR)) {\n-            return root;\n-        }\n-        return root + PATH_SEPARATOR;\n-    }\n-\n-    @Override\n-    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\n-        storeMetadata(providerMetadataIdentifier, serviceDefinitions);\n-    }\n-\n-    @Override\n-    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\n-        storeMetadata(consumerMetadataIdentifier, value);\n-    }\n-\n-    @Override\n-    protected void doSaveMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\n-        zkClient.create(getNodePath(metadataIdentifier), URL.encode(url.toFullString()), false);\n-    }\n-\n-    @Override\n-    protected void doRemoveMetadata(ServiceMetadataIdentifier metadataIdentifier) {\n-        zkClient.delete(getNodePath(metadataIdentifier));\n-    }\n-\n-    @Override\n-    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\n-        String content = zkClient.getContent(getNodePath(metadataIdentifier));\n-        if (StringUtils.isEmpty(content)) {\n-            return Collections.emptyList();\n-        }\n-        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\n-    }\n-\n-    @Override\n-    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urls) {\n-        zkClient.create(getNodePath(subscriberMetadataIdentifier), urls, false);\n-    }\n-\n-    @Override\n-    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\n-        return zkClient.getContent(getNodePath(subscriberMetadataIdentifier));\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\n-        return zkClient.getContent(getNodePath(metadataIdentifier));\n-    }\n-\n-    private void storeMetadata(MetadataIdentifier metadataIdentifier, String v) {\n-        zkClient.create(getNodePath(metadataIdentifier), v, false);\n-    }\n-\n-    String getNodePath(BaseMetadataIdentifier metadataIdentifier) {\n-        return toRootDir() + metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH);\n-    }\n-\n-    @Override\n-    public void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\n-        String path = getNodePath(identifier);\n-        if (StringUtils.isBlank(zkClient.getContent(path))) {\n-            zkClient.create(path, gson.toJson(metadataInfo), false);\n-        }\n-    }\n-\n-    @Override\n-    public void registerServiceAppMapping(String serviceKey, String application, URL url) {\n-        String path = toRootDir() + serviceKey + PATH_SEPARATOR + application;\n-        if (StringUtils.isBlank(zkClient.getContent(path))) {\n-            Map<String, String> value = new HashMap<>();\n-            value.put(\"timestamp\", String.valueOf(System.currentTimeMillis()));\n-            zkClient.create(path, gson.toJson(value), false);\n-        }\n-    }\n-\n-    @Override\n-    public MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\n-        String content = zkClient.getContent(getNodePath(identifier));\n-        return gson.fromJson(content, MetadataInfo.class);\n-    }\n-\n-    @Override\n-    public Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\n-        Set<String>  appNameSet = new HashSet<>();\n-        String path = toRootDir() + serviceKey;\n-        List<String> appNameList = zkClient.getChildren(path);\n-        if (!CollectionUtils.isEmpty(appNameList)) {\n-            appNameSet.addAll(appNameList);\n-        }\n-\n-        if (null == listenerMap.get(path)) {\n-            zkClient.create(path, false);\n-            addServiceMappingListener(path, serviceKey, listener);\n-        }\n-\n-        return appNameSet;\n-    }\n-\n-    private void addServiceMappingListener(String path, String serviceKey, MappingListener listener) {\n-        ChildListener zkListener = new ChildListener() {\n-            @Override\n-            public void childChanged(String path, List<String> children) {\n-                MappingChangedEvent event = new MappingChangedEvent();\n-                event.setServiceKey(serviceKey);\n-                event.setApps(null != children ? new HashSet<>(children) : null);\n-                listener.onEvent(event);\n-            }\n-        };\n-        zkClient.addChildListener(path, zkListener);\n-        listenerMap.put(path, zkListener);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.zookeeper;\r\n+\r\n+import com.google.gson.Gson;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MappingChangedEvent;\r\n+import org.apache.dubbo.metadata.MappingListener;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.report.identifier.BaseMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.KeyTypeEnum;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.ServiceMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReport;\r\n+import org.apache.dubbo.remoting.zookeeper.ChildListener;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+\r\n+/**\r\n+ * ZookeeperMetadataReport\r\n+ */\r\n+public class ZookeeperMetadataReport extends AbstractMetadataReport {\r\n+\r\n+    private final String root;\r\n+\r\n+    final ZookeeperClient zkClient;\r\n+\r\n+    private Gson gson = new Gson();\r\n+\r\n+    private Map<String, ChildListener> listenerMap = new ConcurrentHashMap<>();\r\n+\r\n+    public ZookeeperMetadataReport(URL url, ZookeeperTransporter zookeeperTransporter) {\r\n+        super(url);\r\n+        if (url.isAnyHost()) {\r\n+            throw new IllegalStateException(\"registry address == null\");\r\n+        }\r\n+        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\r\n+        if (!group.startsWith(PATH_SEPARATOR)) {\r\n+            group = PATH_SEPARATOR + group;\r\n+        }\r\n+        this.root = group;\r\n+        zkClient = zookeeperTransporter.connect(url);\r\n+    }\r\n+\r\n+    String toRootDir() {\r\n+        if (root.equals(PATH_SEPARATOR)) {\r\n+            return root;\r\n+        }\r\n+        return root + PATH_SEPARATOR;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreProviderMetadata(MetadataIdentifier providerMetadataIdentifier, String serviceDefinitions) {\r\n+        storeMetadata(providerMetadataIdentifier, serviceDefinitions);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStoreConsumerMetadata(MetadataIdentifier consumerMetadataIdentifier, String value) {\r\n+        storeMetadata(consumerMetadataIdentifier, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveMetadata(ServiceMetadataIdentifier metadataIdentifier, URL url) {\r\n+        zkClient.create(getNodePath(metadataIdentifier), URL.encode(url.toFullString()), false);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRemoveMetadata(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        zkClient.delete(getNodePath(metadataIdentifier));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<String> doGetExportedURLs(ServiceMetadataIdentifier metadataIdentifier) {\r\n+        String content = zkClient.getContent(getNodePath(metadataIdentifier));\r\n+        if (StringUtils.isEmpty(content)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return new ArrayList<String>(Arrays.asList(URL.decode(content)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doSaveSubscriberData(SubscriberMetadataIdentifier subscriberMetadataIdentifier, String urls) {\r\n+        zkClient.create(getNodePath(subscriberMetadataIdentifier), urls, false);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected String doGetSubscribedURLs(SubscriberMetadataIdentifier subscriberMetadataIdentifier) {\r\n+        return zkClient.getContent(getNodePath(subscriberMetadataIdentifier));\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(MetadataIdentifier metadataIdentifier) {\r\n+        return zkClient.getContent(getNodePath(metadataIdentifier));\r\n+    }\r\n+\r\n+    private void storeMetadata(MetadataIdentifier metadataIdentifier, String v) {\r\n+        zkClient.create(getNodePath(metadataIdentifier), v, false);\r\n+    }\r\n+\r\n+    String getNodePath(BaseMetadataIdentifier metadataIdentifier) {\r\n+        return toRootDir() + metadataIdentifier.getUniqueKey(KeyTypeEnum.PATH);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void publishAppMetadata(SubscriberMetadataIdentifier identifier, MetadataInfo metadataInfo) {\r\n+        String path = getNodePath(identifier);\r\n+        if (StringUtils.isBlank(zkClient.getContent(path))) {\r\n+            zkClient.create(path, gson.toJson(metadataInfo), false);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void registerServiceAppMapping(String serviceKey, String application, URL url) {\r\n+        String path = toRootDir() + serviceKey + PATH_SEPARATOR + application;\r\n+        if (StringUtils.isBlank(zkClient.getContent(path))) {\r\n+            Map<String, String> value = new HashMap<>();\r\n+            value.put(\"timestamp\", String.valueOf(System.currentTimeMillis()));\r\n+            zkClient.create(path, gson.toJson(value), false);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public MetadataInfo getAppMetadata(SubscriberMetadataIdentifier identifier, Map<String, String> instanceMetadata) {\r\n+        String content = zkClient.getContent(getNodePath(identifier));\r\n+        return gson.fromJson(content, MetadataInfo.class);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServiceAppMapping(String serviceKey, MappingListener listener, URL url) {\r\n+        Set<String>  appNameSet = new HashSet<>();\r\n+        String path = toRootDir() + serviceKey;\r\n+        List<String> appNameList = zkClient.getChildren(path);\r\n+        if (!CollectionUtils.isEmpty(appNameList)) {\r\n+            appNameSet.addAll(appNameList);\r\n+        }\r\n+\r\n+        if (null == listenerMap.get(path)) {\r\n+            zkClient.create(path, false);\r\n+            addServiceMappingListener(path, serviceKey, listener);\r\n+        }\r\n+\r\n+        return appNameSet;\r\n+    }\r\n+\r\n+    private void addServiceMappingListener(String path, String serviceKey, MappingListener listener) {\r\n+        ChildListener zkListener = new ChildListener() {\r\n+            @Override\r\n+            public void childChanged(String path, List<String> children) {\r\n+                MappingChangedEvent event = new MappingChangedEvent();\r\n+                event.setServiceKey(serviceKey);\r\n+                event.setApps(null != children ? new HashSet<>(children) : null);\r\n+                listener.onEvent(event);\r\n+            }\r\n+        };\r\n+        zkClient.addChildListener(path, zkListener);\r\n+        listenerMap.put(path, zkListener);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java", "source2": "org/apache/dubbo/metadata/store/zookeeper/ZookeeperMetadataReportFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.metadata.store.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\n-\n-/**\n- * ZookeeperRegistryFactory.\n- */\n-public class ZookeeperMetadataReportFactory extends AbstractMetadataReportFactory {\n-\n-    private ZookeeperTransporter zookeeperTransporter;\n-\n-    public void setZookeeperTransporter(ZookeeperTransporter zookeeperTransporter) {\n-        this.zookeeperTransporter = zookeeperTransporter;\n-    }\n-\n-    @Override\n-    public MetadataReport createMetadataReport(URL url) {\n-        return new ZookeeperMetadataReport(url, zookeeperTransporter);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.metadata.store.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.support.AbstractMetadataReportFactory;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\r\n+\r\n+/**\r\n+ * ZookeeperRegistryFactory.\r\n+ */\r\n+public class ZookeeperMetadataReportFactory extends AbstractMetadataReportFactory {\r\n+\r\n+    private ZookeeperTransporter zookeeperTransporter;\r\n+\r\n+    public void setZookeeperTransporter(ZookeeperTransporter zookeeperTransporter) {\r\n+        this.zookeeperTransporter = zookeeperTransporter;\r\n+    }\r\n+\r\n+    @Override\r\n+    public MetadataReport createMetadataReport(URL url) {\r\n+        return new ZookeeperMetadataReport(url, zookeeperTransporter);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/Constants.java", "source2": "org/apache/dubbo/monitor/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.monitor;\n-\n-public interface Constants {\n-    String DUBBO_PROVIDER = \"dubbo.provider\";\n-    String DUBBO_CONSUMER = \"dubbo.consumer\";\n-    String DUBBO_PROVIDER_METHOD = \"dubbo.provider.method\";\n-    String DUBBO_CONSUMER_METHOD = \"dubbo.consumer.method\";\n-    String SERVICE = \"service\";\n-    String METHOD = \"method\";\n-    String DUBBO_GROUP = \"dubbo\";\n-    String METRICS_KEY = \"metrics\";\n-    String LOGSTAT_PROTOCOL = \"logstat\";\n-    String COUNT_PROTOCOL = \"count\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.monitor;\r\n+\r\n+public interface Constants {\r\n+    String DUBBO_PROVIDER = \"dubbo.provider\";\r\n+    String DUBBO_CONSUMER = \"dubbo.consumer\";\r\n+    String DUBBO_PROVIDER_METHOD = \"dubbo.provider.method\";\r\n+    String DUBBO_CONSUMER_METHOD = \"dubbo.consumer.method\";\r\n+    String SERVICE = \"service\";\r\n+    String METHOD = \"method\";\r\n+    String DUBBO_GROUP = \"dubbo\";\r\n+    String METRICS_KEY = \"metrics\";\r\n+    String LOGSTAT_PROTOCOL = \"logstat\";\r\n+    String COUNT_PROTOCOL = \"count\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/MetricsService.java", "source2": "org/apache/dubbo/monitor/MetricsService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,22 +1,22 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.monitor;\n-\n-public interface MetricsService {\n-    String getMetricsByGroup(String group);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.monitor;\r\n+\r\n+public interface MetricsService {\r\n+    String getMetricsByGroup(String group);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/dubbo/DubboMonitorFactory.java", "source2": "org/apache/dubbo/monitor/dubbo/DubboMonitorFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.monitor.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.monitor.Monitor;\n-import org.apache.dubbo.monitor.MonitorService;\n-import org.apache.dubbo.monitor.support.AbstractMonitorFactory;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_PROTOCOL;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\n-import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\n-\n-/**\n- * DefaultMonitorFactory\n- */\n-public class DubboMonitorFactory extends AbstractMonitorFactory {\n-\n-    private Protocol protocol;\n-\n-    private ProxyFactory proxyFactory;\n-\n-    public void setProtocol(Protocol protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    public void setProxyFactory(ProxyFactory proxyFactory) {\n-        this.proxyFactory = proxyFactory;\n-    }\n-\n-    @Override\n-    protected Monitor createMonitor(URL url) {\n-        URLBuilder urlBuilder = URLBuilder.from(url);\n-        urlBuilder.setProtocol(url.getParameter(PROTOCOL_KEY, DUBBO_PROTOCOL));\n-        if (StringUtils.isEmpty(url.getPath())) {\n-            urlBuilder.setPath(MonitorService.class.getName());\n-        }\n-        String filter = url.getParameter(REFERENCE_FILTER_KEY);\n-        if (StringUtils.isEmpty(filter)) {\n-            filter = \"\";\n-        } else {\n-            filter = filter + \",\";\n-        }\n-        urlBuilder.addParameters(CHECK_KEY, String.valueOf(false),\n-                REFERENCE_FILTER_KEY, filter + \"-monitor\");\n-        Invoker<MonitorService> monitorInvoker = protocol.refer(MonitorService.class, urlBuilder.build());\n-        MonitorService monitorService = proxyFactory.getProxy(monitorInvoker);\n-        return new DubboMonitor(monitorInvoker, monitorService);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.monitor.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.monitor.Monitor;\r\n+import org.apache.dubbo.monitor.MonitorService;\r\n+import org.apache.dubbo.monitor.support.AbstractMonitorFactory;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_FILTER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\r\n+\r\n+/**\r\n+ * DefaultMonitorFactory\r\n+ */\r\n+public class DubboMonitorFactory extends AbstractMonitorFactory {\r\n+\r\n+    private Protocol protocol;\r\n+\r\n+    private ProxyFactory proxyFactory;\r\n+\r\n+    public void setProtocol(Protocol protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    public void setProxyFactory(ProxyFactory proxyFactory) {\r\n+        this.proxyFactory = proxyFactory;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Monitor createMonitor(URL url) {\r\n+        URLBuilder urlBuilder = URLBuilder.from(url);\r\n+        urlBuilder.setProtocol(url.getParameter(PROTOCOL_KEY, DUBBO_PROTOCOL));\r\n+        if (StringUtils.isEmpty(url.getPath())) {\r\n+            urlBuilder.setPath(MonitorService.class.getName());\r\n+        }\r\n+        String filter = url.getParameter(REFERENCE_FILTER_KEY);\r\n+        if (StringUtils.isEmpty(filter)) {\r\n+            filter = \"\";\r\n+        } else {\r\n+            filter = filter + \",\";\r\n+        }\r\n+        urlBuilder.addParameters(CHECK_KEY, String.valueOf(false),\r\n+                REFERENCE_FILTER_KEY, filter + \"-monitor\");\r\n+        Invoker<MonitorService> monitorInvoker = protocol.refer(MonitorService.class, urlBuilder.build());\r\n+        MonitorService monitorService = proxyFactory.getProxy(monitorInvoker);\r\n+        return new DubboMonitor(monitorInvoker, monitorService);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/dubbo/MetricsFilter.java", "source2": "org/apache/dubbo/monitor/dubbo/MetricsFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,261 +1,261 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.monitor.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.store.DataStore;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.monitor.MetricsService;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import com.alibaba.fastjson.JSON;\n-import com.alibaba.metrics.FastCompass;\n-import com.alibaba.metrics.MetricLevel;\n-import com.alibaba.metrics.MetricManager;\n-import com.alibaba.metrics.MetricName;\n-import com.alibaba.metrics.MetricRegistry;\n-import com.alibaba.metrics.common.CollectLevel;\n-import com.alibaba.metrics.common.MetricObject;\n-import com.alibaba.metrics.common.MetricsCollector;\n-import com.alibaba.metrics.common.MetricsCollectorFactory;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.SortedMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_PROTOCOL;\n-import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT;\n-import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL;\n-import static org.apache.dubbo.monitor.Constants.DUBBO_CONSUMER;\n-import static org.apache.dubbo.monitor.Constants.DUBBO_CONSUMER_METHOD;\n-import static org.apache.dubbo.monitor.Constants.DUBBO_GROUP;\n-import static org.apache.dubbo.monitor.Constants.DUBBO_PROVIDER;\n-import static org.apache.dubbo.monitor.Constants.DUBBO_PROVIDER_METHOD;\n-import static org.apache.dubbo.monitor.Constants.METHOD;\n-import static org.apache.dubbo.monitor.Constants.SERVICE;\n-\n-public class MetricsFilter implements Filter {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MetricsFilter.class);\n-    private static volatile AtomicBoolean exported = new AtomicBoolean(false);\n-    private Integer port;\n-    private String protocolName;\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-        if (exported.compareAndSet(false, true)) {\n-            this.protocolName = invoker.getUrl().getParameter(METRICS_PROTOCOL) == null ?\n-                    DEFAULT_PROTOCOL : invoker.getUrl().getParameter(METRICS_PROTOCOL);\n-\n-            Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(protocolName);\n-\n-            this.port = invoker.getUrl().getParameter(METRICS_PORT) == null ?\n-                    protocol.getDefaultPort() : Integer.valueOf(invoker.getUrl().getParameter(METRICS_PORT));\n-\n-            Invoker<MetricsService> metricsInvoker = initMetricsInvoker();\n-\n-            try {\n-                protocol.export(metricsInvoker);\n-            } catch (RuntimeException e) {\n-                logger.error(\"Metrics Service need to be configured\" +\n-                        \" when multiple processes are running on a host\" + e.getMessage());\n-            }\n-        }\n-\n-        RpcContext context = RpcContext.getContext();\n-        boolean isProvider = context.isProviderSide();\n-        long start = System.currentTimeMillis();\n-        try {\n-            Result result = invoker.invoke(invocation); // proceed invocation chain\n-            long duration = System.currentTimeMillis() - start;\n-            reportMetrics(invoker, invocation, duration, \"success\", isProvider);\n-            return result;\n-        } catch (RpcException e) {\n-            long duration = System.currentTimeMillis() - start;\n-            String result = \"error\";\n-            if (e.isTimeout()) {\n-                result = \"timeoutError\";\n-            }\n-            if (e.isBiz()) {\n-                result = \"bisError\";\n-            }\n-            if (e.isNetwork()) {\n-                result = \"networkError\";\n-            }\n-            if (e.isSerialization()) {\n-                result = \"serializationError\";\n-            }\n-            reportMetrics(invoker, invocation, duration, result, isProvider);\n-            throw e;\n-        }\n-    }\n-\n-    private String buildMethodName(Invocation invocation) {\n-        String methodName = RpcUtils.getMethodName(invocation);\n-        StringBuilder method = new StringBuilder(methodName);\n-        Class<?>[] argTypes = RpcUtils.getParameterTypes(invocation);\n-\n-        method.append(\"(\");\n-\n-        for (int i = 0; i < argTypes.length; i++) {\n-            method.append((i == 0 ? \"\" : \", \") + argTypes[i].getSimpleName());\n-        }\n-        method.append(\")\");\n-        Class<?> returnType = RpcUtils.getReturnType(invocation);\n-        String typeName = null;\n-        if(returnType != null) {\n-            typeName = returnType.getTypeName();\n-            typeName = typeName.substring(typeName.lastIndexOf(\".\") + 1);\n-        }\n-\n-        return (typeName == null ? \"void\" : typeName) + \" \" + method;\n-    }\n-\n-    private void reportMetrics(Invoker<?> invoker, Invocation invocation, long duration, String result, boolean isProvider) {\n-        String serviceName = invoker.getInterface().getName();\n-        String methodName = buildMethodName(invocation);\n-        MetricName global;\n-        MetricName method;\n-        if (isProvider) {\n-            global = new MetricName(DUBBO_PROVIDER, MetricLevel.MAJOR);\n-            method = new MetricName(DUBBO_PROVIDER_METHOD, new HashMap<String, String>(4) {\n-                {\n-                    put(SERVICE, serviceName);\n-                    put(METHOD, methodName);\n-                }\n-            }, MetricLevel.NORMAL);\n-        } else {\n-            global = new MetricName(DUBBO_CONSUMER, MetricLevel.MAJOR);\n-            method = new MetricName(DUBBO_CONSUMER_METHOD, new HashMap<String, String>(4) {\n-                {\n-                    put(SERVICE, serviceName);\n-                    put(METHOD, methodName);\n-                }\n-            }, MetricLevel.NORMAL);\n-        }\n-        setCompassQuantity(DUBBO_GROUP, result, duration, global, method);\n-    }\n-\n-    private void setCompassQuantity(String groupName, String result, long duration, MetricName... metricNames) {\n-        for (MetricName metricName : metricNames) {\n-            FastCompass compass = MetricManager.getFastCompass(groupName, metricName);\n-            compass.record(duration, result);\n-        }\n-    }\n-\n-    private List<MetricObject> getThreadPoolMessage() {\n-        DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();\n-        Map<String, Object> executors = dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY);\n-\n-        List<MetricObject> threadPoolMtricList = new ArrayList<>();\n-        for (Map.Entry<String, Object> entry : executors.entrySet()) {\n-            String port = entry.getKey();\n-            ExecutorService executor = (ExecutorService) entry.getValue();\n-            if (executor instanceof ThreadPoolExecutor) {\n-                ThreadPoolExecutor tp = (ThreadPoolExecutor) executor;\n-\n-                threadPoolMtricList.add(value2MetricObject(\"threadPool.active\", tp.getActiveCount(), MetricLevel.MAJOR));\n-                threadPoolMtricList.add(value2MetricObject(\"threadPool.core\", tp.getCorePoolSize(), MetricLevel.MAJOR));\n-                threadPoolMtricList.add(value2MetricObject(\"threadPool.max\", tp.getMaximumPoolSize(), MetricLevel.MAJOR));\n-                threadPoolMtricList.add(value2MetricObject(\"threadPool.current\", tp.getPoolSize(), MetricLevel.MAJOR));\n-            }\n-        }\n-\n-        return threadPoolMtricList;\n-    }\n-\n-    private MetricObject value2MetricObject(String metric, Integer value, MetricLevel level) {\n-        if (metric == null || value == null || level == null) {\n-            return null;\n-        }\n-\n-        return new MetricObject\n-                .Builder(metric)\n-                .withValue(value)\n-                .withLevel(level)\n-                .build();\n-    }\n-\n-    private Invoker<MetricsService> initMetricsInvoker() {\n-        Invoker<MetricsService> metricsInvoker = new Invoker<MetricsService>() {\n-            @Override\n-            public Class<MetricsService> getInterface() {\n-                return MetricsService.class;\n-            }\n-\n-            @Override\n-            public Result invoke(Invocation invocation) throws RpcException {\n-                String group = invocation.getArguments()[0].toString();\n-                MetricRegistry registry = MetricManager.getIMetricManager().getMetricRegistryByGroup(group);\n-\n-                SortedMap<MetricName, FastCompass> fastCompasses = registry.getFastCompasses();\n-\n-                long timestamp = System.currentTimeMillis();\n-                double rateFactor = TimeUnit.SECONDS.toSeconds(1);\n-                double durationFactor = 1.0 / TimeUnit.MILLISECONDS.toNanos(1);\n-\n-\n-                MetricsCollector collector = MetricsCollectorFactory.createNew(\n-                        CollectLevel.NORMAL, Collections.EMPTY_MAP, rateFactor, durationFactor, null);\n-\n-                for (Map.Entry<MetricName, FastCompass> entry : fastCompasses.entrySet()) {\n-                    collector.collect(entry.getKey(), entry.getValue(), timestamp);\n-                }\n-\n-                List res = collector.build();\n-                res.addAll(getThreadPoolMessage());\n-                return AsyncRpcResult.newDefaultAsyncResult(JSON.toJSONString(res), invocation);\n-            }\n-\n-            @Override\n-            public URL getUrl() {\n-                return URL.valueOf(protocolName + \"://\" + NetUtils.getIpByConfig() + \":\" + port + \"/\" + MetricsService.class.getName());\n-            }\n-\n-            @Override\n-            public boolean isAvailable() {\n-                return false;\n-            }\n-\n-            @Override\n-            public void destroy() {\n-\n-            }\n-        };\n-\n-        return metricsInvoker;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.monitor.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.store.DataStore;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.monitor.MetricsService;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import com.alibaba.metrics.FastCompass;\r\n+import com.alibaba.metrics.MetricLevel;\r\n+import com.alibaba.metrics.MetricManager;\r\n+import com.alibaba.metrics.MetricName;\r\n+import com.alibaba.metrics.MetricRegistry;\r\n+import com.alibaba.metrics.common.CollectLevel;\r\n+import com.alibaba.metrics.common.MetricObject;\r\n+import com.alibaba.metrics.common.MetricsCollector;\r\n+import com.alibaba.metrics.common.MetricsCollectorFactory;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.SortedMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PORT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METRICS_PROTOCOL;\r\n+import static org.apache.dubbo.monitor.Constants.DUBBO_CONSUMER;\r\n+import static org.apache.dubbo.monitor.Constants.DUBBO_CONSUMER_METHOD;\r\n+import static org.apache.dubbo.monitor.Constants.DUBBO_GROUP;\r\n+import static org.apache.dubbo.monitor.Constants.DUBBO_PROVIDER;\r\n+import static org.apache.dubbo.monitor.Constants.DUBBO_PROVIDER_METHOD;\r\n+import static org.apache.dubbo.monitor.Constants.METHOD;\r\n+import static org.apache.dubbo.monitor.Constants.SERVICE;\r\n+\r\n+public class MetricsFilter implements Filter {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MetricsFilter.class);\r\n+    private static volatile AtomicBoolean exported = new AtomicBoolean(false);\r\n+    private Integer port;\r\n+    private String protocolName;\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+        if (exported.compareAndSet(false, true)) {\r\n+            this.protocolName = invoker.getUrl().getParameter(METRICS_PROTOCOL) == null ?\r\n+                    DEFAULT_PROTOCOL : invoker.getUrl().getParameter(METRICS_PROTOCOL);\r\n+\r\n+            Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(protocolName);\r\n+\r\n+            this.port = invoker.getUrl().getParameter(METRICS_PORT) == null ?\r\n+                    protocol.getDefaultPort() : Integer.valueOf(invoker.getUrl().getParameter(METRICS_PORT));\r\n+\r\n+            Invoker<MetricsService> metricsInvoker = initMetricsInvoker();\r\n+\r\n+            try {\r\n+                protocol.export(metricsInvoker);\r\n+            } catch (RuntimeException e) {\r\n+                logger.error(\"Metrics Service need to be configured\" +\r\n+                        \" when multiple processes are running on a host\" + e.getMessage());\r\n+            }\r\n+        }\r\n+\r\n+        RpcContext context = RpcContext.getContext();\r\n+        boolean isProvider = context.isProviderSide();\r\n+        long start = System.currentTimeMillis();\r\n+        try {\r\n+            Result result = invoker.invoke(invocation); // proceed invocation chain\r\n+            long duration = System.currentTimeMillis() - start;\r\n+            reportMetrics(invoker, invocation, duration, \"success\", isProvider);\r\n+            return result;\r\n+        } catch (RpcException e) {\r\n+            long duration = System.currentTimeMillis() - start;\r\n+            String result = \"error\";\r\n+            if (e.isTimeout()) {\r\n+                result = \"timeoutError\";\r\n+            }\r\n+            if (e.isBiz()) {\r\n+                result = \"bisError\";\r\n+            }\r\n+            if (e.isNetwork()) {\r\n+                result = \"networkError\";\r\n+            }\r\n+            if (e.isSerialization()) {\r\n+                result = \"serializationError\";\r\n+            }\r\n+            reportMetrics(invoker, invocation, duration, result, isProvider);\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    private String buildMethodName(Invocation invocation) {\r\n+        String methodName = RpcUtils.getMethodName(invocation);\r\n+        StringBuilder method = new StringBuilder(methodName);\r\n+        Class<?>[] argTypes = RpcUtils.getParameterTypes(invocation);\r\n+\r\n+        method.append(\"(\");\r\n+\r\n+        for (int i = 0; i < argTypes.length; i++) {\r\n+            method.append((i == 0 ? \"\" : \", \") + argTypes[i].getSimpleName());\r\n+        }\r\n+        method.append(\")\");\r\n+        Class<?> returnType = RpcUtils.getReturnType(invocation);\r\n+        String typeName = null;\r\n+        if(returnType != null) {\r\n+            typeName = returnType.getTypeName();\r\n+            typeName = typeName.substring(typeName.lastIndexOf(\".\") + 1);\r\n+        }\r\n+\r\n+        return (typeName == null ? \"void\" : typeName) + \" \" + method;\r\n+    }\r\n+\r\n+    private void reportMetrics(Invoker<?> invoker, Invocation invocation, long duration, String result, boolean isProvider) {\r\n+        String serviceName = invoker.getInterface().getName();\r\n+        String methodName = buildMethodName(invocation);\r\n+        MetricName global;\r\n+        MetricName method;\r\n+        if (isProvider) {\r\n+            global = new MetricName(DUBBO_PROVIDER, MetricLevel.MAJOR);\r\n+            method = new MetricName(DUBBO_PROVIDER_METHOD, new HashMap<String, String>(4) {\r\n+                {\r\n+                    put(SERVICE, serviceName);\r\n+                    put(METHOD, methodName);\r\n+                }\r\n+            }, MetricLevel.NORMAL);\r\n+        } else {\r\n+            global = new MetricName(DUBBO_CONSUMER, MetricLevel.MAJOR);\r\n+            method = new MetricName(DUBBO_CONSUMER_METHOD, new HashMap<String, String>(4) {\r\n+                {\r\n+                    put(SERVICE, serviceName);\r\n+                    put(METHOD, methodName);\r\n+                }\r\n+            }, MetricLevel.NORMAL);\r\n+        }\r\n+        setCompassQuantity(DUBBO_GROUP, result, duration, global, method);\r\n+    }\r\n+\r\n+    private void setCompassQuantity(String groupName, String result, long duration, MetricName... metricNames) {\r\n+        for (MetricName metricName : metricNames) {\r\n+            FastCompass compass = MetricManager.getFastCompass(groupName, metricName);\r\n+            compass.record(duration, result);\r\n+        }\r\n+    }\r\n+\r\n+    private List<MetricObject> getThreadPoolMessage() {\r\n+        DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();\r\n+        Map<String, Object> executors = dataStore.get(EXECUTOR_SERVICE_COMPONENT_KEY);\r\n+\r\n+        List<MetricObject> threadPoolMtricList = new ArrayList<>();\r\n+        for (Map.Entry<String, Object> entry : executors.entrySet()) {\r\n+            String port = entry.getKey();\r\n+            ExecutorService executor = (ExecutorService) entry.getValue();\r\n+            if (executor instanceof ThreadPoolExecutor) {\r\n+                ThreadPoolExecutor tp = (ThreadPoolExecutor) executor;\r\n+\r\n+                threadPoolMtricList.add(value2MetricObject(\"threadPool.active\", tp.getActiveCount(), MetricLevel.MAJOR));\r\n+                threadPoolMtricList.add(value2MetricObject(\"threadPool.core\", tp.getCorePoolSize(), MetricLevel.MAJOR));\r\n+                threadPoolMtricList.add(value2MetricObject(\"threadPool.max\", tp.getMaximumPoolSize(), MetricLevel.MAJOR));\r\n+                threadPoolMtricList.add(value2MetricObject(\"threadPool.current\", tp.getPoolSize(), MetricLevel.MAJOR));\r\n+            }\r\n+        }\r\n+\r\n+        return threadPoolMtricList;\r\n+    }\r\n+\r\n+    private MetricObject value2MetricObject(String metric, Integer value, MetricLevel level) {\r\n+        if (metric == null || value == null || level == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        return new MetricObject\r\n+                .Builder(metric)\r\n+                .withValue(value)\r\n+                .withLevel(level)\r\n+                .build();\r\n+    }\r\n+\r\n+    private Invoker<MetricsService> initMetricsInvoker() {\r\n+        Invoker<MetricsService> metricsInvoker = new Invoker<MetricsService>() {\r\n+            @Override\r\n+            public Class<MetricsService> getInterface() {\r\n+                return MetricsService.class;\r\n+            }\r\n+\r\n+            @Override\r\n+            public Result invoke(Invocation invocation) throws RpcException {\r\n+                String group = invocation.getArguments()[0].toString();\r\n+                MetricRegistry registry = MetricManager.getIMetricManager().getMetricRegistryByGroup(group);\r\n+\r\n+                SortedMap<MetricName, FastCompass> fastCompasses = registry.getFastCompasses();\r\n+\r\n+                long timestamp = System.currentTimeMillis();\r\n+                double rateFactor = TimeUnit.SECONDS.toSeconds(1);\r\n+                double durationFactor = 1.0 / TimeUnit.MILLISECONDS.toNanos(1);\r\n+\r\n+\r\n+                MetricsCollector collector = MetricsCollectorFactory.createNew(\r\n+                        CollectLevel.NORMAL, Collections.EMPTY_MAP, rateFactor, durationFactor, null);\r\n+\r\n+                for (Map.Entry<MetricName, FastCompass> entry : fastCompasses.entrySet()) {\r\n+                    collector.collect(entry.getKey(), entry.getValue(), timestamp);\r\n+                }\r\n+\r\n+                List res = collector.build();\r\n+                res.addAll(getThreadPoolMessage());\r\n+                return AsyncRpcResult.newDefaultAsyncResult(JSON.toJSONString(res), invocation);\r\n+            }\r\n+\r\n+            @Override\r\n+            public URL getUrl() {\r\n+                return URL.valueOf(protocolName + \"://\" + NetUtils.getIpByConfig() + \":\" + port + \"/\" + MetricsService.class.getName());\r\n+            }\r\n+\r\n+            @Override\r\n+            public boolean isAvailable() {\r\n+                return false;\r\n+            }\r\n+\r\n+            @Override\r\n+            public void destroy() {\r\n+\r\n+            }\r\n+        };\r\n+\r\n+        return metricsInvoker;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/support/MetricsServiceDetector.java", "source2": "org/apache/dubbo/monitor/support/MetricsServiceDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.monitor.support;\n-\n-import org.apache.dubbo.monitor.MetricsService;\n-import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\n-\n-public class MetricsServiceDetector implements BuiltinServiceDetector {\n-\n-    @Override\n-    public Class<?> getService() {\n-        return MetricsService.class;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.monitor.support;\r\n+\r\n+import org.apache.dubbo.monitor.MetricsService;\r\n+import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\r\n+\r\n+public class MetricsServiceDetector implements BuiltinServiceDetector {\r\n+\r\n+    @Override\r\n+    public Class<?> getService() {\r\n+        return MetricsService.class;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/monitor/support/MonitorServiceDetector.java", "source2": "org/apache/dubbo/monitor/support/MonitorServiceDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.monitor.support;\n-\n-import org.apache.dubbo.monitor.MonitorService;\n-import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\n-\n-public class MonitorServiceDetector implements BuiltinServiceDetector {\n-\n-    @Override\n-    public Class<?> getService() {\n-        return MonitorService.class;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.monitor.support;\r\n+\r\n+import org.apache.dubbo.monitor.MonitorService;\r\n+import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\r\n+\r\n+public class MonitorServiceDetector implements BuiltinServiceDetector {\r\n+\r\n+    @Override\r\n+    public Class<?> getService() {\r\n+        return MonitorService.class;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Ls.java", "source2": "org/apache/dubbo/qos/command/impl/Ls.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\n-import org.apache.dubbo.qos.textui.TTable;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.Collection;\n-\n-@Cmd(name = \"ls\", summary = \"ls service\", example = {\n-        \"ls\"\n-})\n-public class Ls implements BaseCommand {\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        StringBuilder result = new StringBuilder();\n-        result.append(listProvider());\n-        result.append(listConsumer());\n-\n-        return result.toString();\n-    }\n-\n-    public String listProvider() {\n-        StringBuilder stringBuilder = new StringBuilder();\n-        stringBuilder.append(\"As Provider side:\" + System.lineSeparator());\n-        Collection<ProviderModel> providerModelList = ApplicationModel.allProviderModels();\n-\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Provider Service Name\", \"PUB\");\n-\n-        //Content\n-        for (ProviderModel providerModel : providerModelList) {\n-            tTable.addRow(providerModel.getServiceKey(), ServiceCheckUtils.isRegistered(providerModel) ? \"Y\" : \"N\");\n-        }\n-        stringBuilder.append(tTable.rendering());\n-\n-        return stringBuilder.toString();\n-    }\n-\n-    public String listConsumer() {\n-        StringBuilder stringBuilder = new StringBuilder();\n-        stringBuilder.append(\"As Consumer side:\" + System.lineSeparator());\n-        Collection<ConsumerModel> consumerModelList = ApplicationModel.allConsumerModels();\n-\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Consumer Service Name\", \"NUM\");\n-\n-        //Content\n-        //TODO to calculate consumerAddressNum\n-        for (ConsumerModel consumerModel : consumerModelList) {\n-            tTable.addRow(consumerModel.getServiceKey(), ServiceCheckUtils.getConsumerAddressNum(consumerModel));\n-        }\n-\n-        stringBuilder.append(tTable.rendering());\n-\n-        return stringBuilder.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\r\n+import org.apache.dubbo.qos.textui.TTable;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+@Cmd(name = \"ls\", summary = \"ls service\", example = {\r\n+        \"ls\"\r\n+})\r\n+public class Ls implements BaseCommand {\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        StringBuilder result = new StringBuilder();\r\n+        result.append(listProvider());\r\n+        result.append(listConsumer());\r\n+\r\n+        return result.toString();\r\n+    }\r\n+\r\n+    public String listProvider() {\r\n+        StringBuilder stringBuilder = new StringBuilder();\r\n+        stringBuilder.append(\"As Provider side:\" + System.lineSeparator());\r\n+        Collection<ProviderModel> providerModelList = ApplicationModel.allProviderModels();\r\n+\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Provider Service Name\", \"PUB\");\r\n+\r\n+        //Content\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            tTable.addRow(providerModel.getServiceKey(), ServiceCheckUtils.isRegistered(providerModel) ? \"Y\" : \"N\");\r\n+        }\r\n+        stringBuilder.append(tTable.rendering());\r\n+\r\n+        return stringBuilder.toString();\r\n+    }\r\n+\r\n+    public String listConsumer() {\r\n+        StringBuilder stringBuilder = new StringBuilder();\r\n+        stringBuilder.append(\"As Consumer side:\" + System.lineSeparator());\r\n+        Collection<ConsumerModel> consumerModelList = ApplicationModel.allConsumerModels();\r\n+\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Consumer Service Name\", \"NUM\");\r\n+\r\n+        //Content\r\n+        //TODO to calculate consumerAddressNum\r\n+        for (ConsumerModel consumerModel : consumerModelList) {\r\n+            tTable.addRow(consumerModel.getServiceKey(), ServiceCheckUtils.getConsumerAddressNum(consumerModel));\r\n+        }\r\n+\r\n+        stringBuilder.append(tTable.rendering());\r\n+\r\n+        return stringBuilder.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Offline.java", "source2": "org/apache/dubbo/qos/command/impl/Offline.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.util.Collection;\n-import java.util.List;\n-\n-@Cmd(name = \"offline\", summary = \"offline dubbo\", example = {\n-        \"offline dubbo\",\n-        \"offline xx.xx.xxx.service\"\n-})\n-public class Offline implements BaseCommand {\n-    private Logger logger = LoggerFactory.getLogger(Offline.class);\n-    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\n-    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"receive offline command\");\n-        String servicePattern = \".*\";\n-        if (args != null && args.length > 0) {\n-            servicePattern = args[0];\n-        }\n-\n-        boolean hasService = offline(servicePattern);\n-\n-        if (hasService) {\n-            return \"OK\";\n-        } else {\n-            return \"service not found\";\n-        }\n-    }\n-\n-    public static boolean offline(String servicePattern) {\n-        boolean hasService = false;\n-\n-        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\n-        for (ProviderModel providerModel : providerModelList) {\n-            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\n-                hasService = true;\n-                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\n-                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\n-                    if (statedURL.isRegistered()) {\n-                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\n-                        registry.unregister(statedURL.getProviderUrl());\n-                        statedURL.setRegistered(false);\n-                    }\n-                }\n-            }\n-        }\n-\n-        return hasService;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+\r\n+@Cmd(name = \"offline\", summary = \"offline dubbo\", example = {\r\n+        \"offline dubbo\",\r\n+        \"offline xx.xx.xxx.service\"\r\n+})\r\n+public class Offline implements BaseCommand {\r\n+    private Logger logger = LoggerFactory.getLogger(Offline.class);\r\n+    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\r\n+    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"receive offline command\");\r\n+        String servicePattern = \".*\";\r\n+        if (args != null && args.length > 0) {\r\n+            servicePattern = args[0];\r\n+        }\r\n+\r\n+        boolean hasService = offline(servicePattern);\r\n+\r\n+        if (hasService) {\r\n+            return \"OK\";\r\n+        } else {\r\n+            return \"service not found\";\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean offline(String servicePattern) {\r\n+        boolean hasService = false;\r\n+\r\n+        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\r\n+                hasService = true;\r\n+                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\r\n+                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\r\n+                    if (statedURL.isRegistered()) {\r\n+                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\r\n+                        registry.unregister(statedURL.getProviderUrl());\r\n+                        statedURL.setRegistered(false);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return hasService;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Online.java", "source2": "org/apache/dubbo/qos/command/impl/Online.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.util.Collection;\n-import java.util.List;\n-\n-@Cmd(name = \"online\", summary = \"online dubbo\", example = {\n-        \"online dubbo\",\n-        \"online xx.xx.xxx.service\"\n-})\n-public class Online implements BaseCommand {\n-    private static final Logger logger = LoggerFactory.getLogger(Online.class);\n-    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\n-    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"receive online command\");\n-        String servicePattern = \".*\";\n-        if (ArrayUtils.isNotEmpty(args)) {\n-            servicePattern = \"\" + args[0];\n-        }\n-\n-        boolean hasService = online(servicePattern);\n-        if (hasService) {\n-            return \"OK\";\n-        } else {\n-            return \"service not found\";\n-        }\n-    }\n-\n-    public static boolean online(String servicePattern) {\n-        boolean hasService = false;\n-\n-        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\n-        for (ProviderModel providerModel : providerModelList) {\n-            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\n-                hasService = true;\n-                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\n-                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\n-                    if (!statedURL.isRegistered()) {\n-                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\n-                        registry.register(statedURL.getProviderUrl());\n-                        statedURL.setRegistered(true);\n-                    }\n-                }\n-            }\n-        }\n-\n-        return hasService;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+\r\n+@Cmd(name = \"online\", summary = \"online dubbo\", example = {\r\n+        \"online dubbo\",\r\n+        \"online xx.xx.xxx.service\"\r\n+})\r\n+public class Online implements BaseCommand {\r\n+    private static final Logger logger = LoggerFactory.getLogger(Online.class);\r\n+    private static RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\r\n+    private static ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"receive online command\");\r\n+        String servicePattern = \".*\";\r\n+        if (ArrayUtils.isNotEmpty(args)) {\r\n+            servicePattern = \"\" + args[0];\r\n+        }\r\n+\r\n+        boolean hasService = online(servicePattern);\r\n+        if (hasService) {\r\n+            return \"OK\";\r\n+        } else {\r\n+            return \"service not found\";\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean online(String servicePattern) {\r\n+        boolean hasService = false;\r\n+\r\n+        Collection<ProviderModel> providerModelList = serviceRepository.getExportedServices();\r\n+        for (ProviderModel providerModel : providerModelList) {\r\n+            if (providerModel.getServiceMetadata().getDisplayServiceKey().matches(servicePattern)) {\r\n+                hasService = true;\r\n+                List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\r\n+                for (ProviderModel.RegisterStatedURL statedURL : statedUrls) {\r\n+                    if (!statedURL.isRegistered()) {\r\n+                        Registry registry = registryFactory.getRegistry(statedURL.getRegistryUrl());\r\n+                        registry.register(statedURL.getProviderUrl());\r\n+                        statedURL.setRegistered(true);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return hasService;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/PublishMetadata.java", "source2": "org/apache/dubbo/qos/command/impl/PublishMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\n-\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.TimeUnit;\n-\n-@Cmd(name = \"publishMetadata\", summary = \"update service metadata and service instance\", example = {\n-        \"publishMetadata\",\n-        \"publishMetadata 5\"\n-})\n-public class PublishMetadata implements BaseCommand {\n-    private static final Logger logger = LoggerFactory.getLogger(PublishMetadata.class);\n-    private final ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-    private ScheduledFuture future;\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        logger.info(\"received publishMetadata command.\");\n-\n-        if (ArrayUtils.isEmpty(args)) {\n-            ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\n-            return \"publish metadata succeeded.\";\n-        }\n-\n-        try {\n-            int delay = Integer.parseInt(args[0]);\n-            if (future == null || future.isDone() || future.isCancelled()) {\n-                future = executorRepository.nextScheduledExecutor()\n-                        .scheduleWithFixedDelay(ServiceInstanceMetadataUtils::refreshMetadataAndInstance, 0, delay, TimeUnit.MILLISECONDS);\n-            }\n-        } catch (NumberFormatException e) {\n-            logger.error(\"Wrong delay param\", e);\n-            return \"publishMetadata failed! Wrong delay param!\";\n-        }\n-        return \"publish task submitted, will publish in \" + args[0] + \" seconds.\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\r\n+\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+@Cmd(name = \"publishMetadata\", summary = \"update service metadata and service instance\", example = {\r\n+        \"publishMetadata\",\r\n+        \"publishMetadata 5\"\r\n+})\r\n+public class PublishMetadata implements BaseCommand {\r\n+    private static final Logger logger = LoggerFactory.getLogger(PublishMetadata.class);\r\n+    private final ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+    private ScheduledFuture future;\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        logger.info(\"received publishMetadata command.\");\r\n+\r\n+        if (ArrayUtils.isEmpty(args)) {\r\n+            ServiceInstanceMetadataUtils.refreshMetadataAndInstance();\r\n+            return \"publish metadata succeeded.\";\r\n+        }\r\n+\r\n+        try {\r\n+            int delay = Integer.parseInt(args[0]);\r\n+            if (future == null || future.isDone() || future.isCancelled()) {\r\n+                future = executorRepository.nextScheduledExecutor()\r\n+                        .scheduleWithFixedDelay(ServiceInstanceMetadataUtils::refreshMetadataAndInstance, 0, delay, TimeUnit.MILLISECONDS);\r\n+            }\r\n+        } catch (NumberFormatException e) {\r\n+            logger.error(\"Wrong delay param\", e);\r\n+            return \"publishMetadata failed! Wrong delay param!\";\r\n+        }\r\n+        return \"publish task submitted, will publish in \" + args[0] + \" seconds.\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Ready.java", "source2": "org/apache/dubbo/qos/command/impl/Ready.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.bootstrap.DubboBootstrap;\n-import org.apache.dubbo.config.utils.ConfigValidationUtils;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-import org.apache.dubbo.qos.textui.TTable;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-@Cmd(name = \"ready\",summary = \"Judge if application or service has started? \")\n-public class Ready implements BaseCommand {\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        String serviceName = args.length > 0 ? args[0] : null;\n-        if (StringUtils.isEmpty(serviceName)) {\n-            // judge application has started\n-            return DubboBootstrap.getInstance().isReady() ? \"true\" : \"false\";\n-        } else {\n-            // judge service has started\n-            Map<String, Boolean> serviceReadyMap = isServiceReady(serviceName);\n-            if (serviceReadyMap == null || serviceReadyMap.size() <= 0) {\n-                return \"can't match service=\" + serviceName;\n-            }\n-            return buildUiText(serviceReadyMap);\n-        }\n-    }\n-\n-    private String buildUiText(Map<String, Boolean> serviceReadyMap) {\n-        TTable tTable = new TTable(new TTable.ColumnDefine[]{\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE),\n-                new TTable.ColumnDefine(TTable.Align.MIDDLE)\n-        });\n-\n-        //Header\n-        tTable.addRow(\"Provider Service Name\", \"STATUS\");\n-        for (Map.Entry<String, Boolean> entry : serviceReadyMap.entrySet()) {\n-            String status = Boolean.TRUE.equals(entry.getValue()) ? \"TRUE\" : \"FALSE\";\n-            tTable.addRow(entry.getKey(),status);\n-        }\n-        return tTable.rendering();\n-    }\n-\n-    /**\n-     * judge service provider is started\n-     * @param serviceName service name,eg: org.apache.dubbo.demo.DemoService\n-     * @return Map[serviceKey,isStarted] eg:[org.apache.dubbo.demo.DemoService,true] or [group1/org.apache.dubbo.demo.DemoService,false]\n-     */\n-    private Map<String,Boolean> isServiceReady(String serviceName) {\n-        Map<String,Boolean> res = new HashMap<>();\n-        for (ProviderModel providerModel : ApplicationModel.allProviderModels()) {\n-            String serviceKey = providerModel.getServiceKey();\n-            String interfaceName = providerModel.getServiceConfig().getInterface();\n-            if (interfaceName.equals(serviceName)) {\n-                List<URL> needRegistryURLs = ConfigValidationUtils.loadRegistries(providerModel.getServiceConfig(), true);\n-                List<URL> registeredRegistryURLs = providerModel.getStatedUrl().stream()\n-                        .filter(x -> Boolean.TRUE.equals(x.isRegistered()))\n-                        .map(ProviderModel.RegisterStatedURL::getRegistryUrl)\n-                        .collect(Collectors.toList());\n-                if (needRegistryURLs.size() == registeredRegistryURLs.size()) {\n-                    res.put(serviceKey,true);\n-                } else {\n-                    res.put(serviceKey,false);\n-                }\n-            }\n-        }\n-        return res;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.bootstrap.DubboBootstrap;\r\n+import org.apache.dubbo.config.utils.ConfigValidationUtils;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+import org.apache.dubbo.qos.textui.TTable;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+@Cmd(name = \"ready\",summary = \"Judge if application or service has started? \")\r\n+public class Ready implements BaseCommand {\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        String serviceName = args.length > 0 ? args[0] : null;\r\n+        if (StringUtils.isEmpty(serviceName)) {\r\n+            // judge application has started\r\n+            return DubboBootstrap.getInstance().isReady() ? \"true\" : \"false\";\r\n+        } else {\r\n+            // judge service has started\r\n+            Map<String, Boolean> serviceReadyMap = isServiceReady(serviceName);\r\n+            if (serviceReadyMap == null || serviceReadyMap.size() <= 0) {\r\n+                return \"can't match service=\" + serviceName;\r\n+            }\r\n+            return buildUiText(serviceReadyMap);\r\n+        }\r\n+    }\r\n+\r\n+    private String buildUiText(Map<String, Boolean> serviceReadyMap) {\r\n+        TTable tTable = new TTable(new TTable.ColumnDefine[]{\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE),\r\n+                new TTable.ColumnDefine(TTable.Align.MIDDLE)\r\n+        });\r\n+\r\n+        //Header\r\n+        tTable.addRow(\"Provider Service Name\", \"STATUS\");\r\n+        for (Map.Entry<String, Boolean> entry : serviceReadyMap.entrySet()) {\r\n+            String status = Boolean.TRUE.equals(entry.getValue()) ? \"TRUE\" : \"FALSE\";\r\n+            tTable.addRow(entry.getKey(),status);\r\n+        }\r\n+        return tTable.rendering();\r\n+    }\r\n+\r\n+    /**\r\n+     * judge service provider is started\r\n+     * @param serviceName service name,eg: org.apache.dubbo.demo.DemoService\r\n+     * @return Map[serviceKey,isStarted] eg:[org.apache.dubbo.demo.DemoService,true] or [group1/org.apache.dubbo.demo.DemoService,false]\r\n+     */\r\n+    private Map<String,Boolean> isServiceReady(String serviceName) {\r\n+        Map<String,Boolean> res = new HashMap<>();\r\n+        for (ProviderModel providerModel : ApplicationModel.allProviderModels()) {\r\n+            String serviceKey = providerModel.getServiceKey();\r\n+            String interfaceName = providerModel.getServiceConfig().getInterface();\r\n+            if (interfaceName.equals(serviceName)) {\r\n+                List<URL> needRegistryURLs = ConfigValidationUtils.loadRegistries(providerModel.getServiceConfig(), true);\r\n+                List<URL> registeredRegistryURLs = providerModel.getStatedUrl().stream()\r\n+                        .filter(x -> Boolean.TRUE.equals(x.isRegistered()))\r\n+                        .map(ProviderModel.RegisterStatedURL::getRegistryUrl)\r\n+                        .collect(Collectors.toList());\r\n+                if (needRegistryURLs.size() == registeredRegistryURLs.size()) {\r\n+                    res.put(serviceKey,true);\r\n+                } else {\r\n+                    res.put(serviceKey,false);\r\n+                }\r\n+            }\r\n+        }\r\n+        return res;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/impl/Version.java", "source2": "org/apache/dubbo/qos/command/impl/Version.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.impl;\n-\n-import org.apache.dubbo.qos.command.BaseCommand;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.annotation.Cmd;\n-\n-@Cmd(name = \"version\", summary = \"version command(show dubbo version)\", example = {\n-        \"version\"\n-})\n-public class Version implements BaseCommand {\n-\n-    @Override\n-    public String execute(CommandContext commandContext, String[] args) {\n-        StringBuilder versionDescBuilder = new StringBuilder();\n-        versionDescBuilder.append(\"dubbo version \\\"\");\n-        versionDescBuilder.append(org.apache.dubbo.common.Version.getVersion());\n-        versionDescBuilder.append(\"\\\"\");\n-        return versionDescBuilder.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.impl;\r\n+\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.annotation.Cmd;\r\n+\r\n+@Cmd(name = \"version\", summary = \"version command(show dubbo version)\", example = {\r\n+        \"version\"\r\n+})\r\n+public class Version implements BaseCommand {\r\n+\r\n+    @Override\r\n+    public String execute(CommandContext commandContext, String[] args) {\r\n+        StringBuilder versionDescBuilder = new StringBuilder();\r\n+        versionDescBuilder.append(\"dubbo version \\\"\");\r\n+        versionDescBuilder.append(org.apache.dubbo.common.Version.getVersion());\r\n+        versionDescBuilder.append(\"\\\"\");\r\n+        return versionDescBuilder.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/util/CommandHelper.java", "source2": "org/apache/dubbo/qos/command/util/CommandHelper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.util;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.qos.command.BaseCommand;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Set;\n-\n-public class CommandHelper {\n-\n-    private CommandHelper() {\n-    }\n-\n-    public static boolean hasCommand(String commandName) {\n-\n-        BaseCommand command = null;\n-        try {\n-            command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\n-        } catch (Throwable throwable) {\n-            return false;\n-        }\n-\n-        return command != null;\n-\n-    }\n-\n-    public static List<Class<?>> getAllCommandClass() {\n-        final Set<String> commandList = ExtensionLoader.getExtensionLoader(BaseCommand.class).getSupportedExtensions();\n-        final List<Class<?>> classes = new ArrayList<Class<?>>();\n-\n-        for (String commandName : commandList) {\n-            BaseCommand command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\n-            classes.add(command.getClass());\n-        }\n-\n-        return classes;\n-    }\n-\n-\n-    public static Class<?> getCommandClass(String commandName) {\n-        if (hasCommand(commandName)) {\n-            return ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName).getClass();\n-        } else {\n-            return null;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.util;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.qos.command.BaseCommand;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+public class CommandHelper {\r\n+\r\n+    private CommandHelper() {\r\n+    }\r\n+\r\n+    public static boolean hasCommand(String commandName) {\r\n+\r\n+        BaseCommand command = null;\r\n+        try {\r\n+            command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\r\n+        } catch (Throwable throwable) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return command != null;\r\n+\r\n+    }\r\n+\r\n+    public static List<Class<?>> getAllCommandClass() {\r\n+        final Set<String> commandList = ExtensionLoader.getExtensionLoader(BaseCommand.class).getSupportedExtensions();\r\n+        final List<Class<?>> classes = new ArrayList<Class<?>>();\r\n+\r\n+        for (String commandName : commandList) {\r\n+            BaseCommand command = ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName);\r\n+            classes.add(command.getClass());\r\n+        }\r\n+\r\n+        return classes;\r\n+    }\r\n+\r\n+\r\n+    public static Class<?> getCommandClass(String commandName) {\r\n+        if (hasCommand(commandName)) {\r\n+            return ExtensionLoader.getExtensionLoader(BaseCommand.class).getExtension(commandName).getClass();\r\n+        } else {\r\n+            return null;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/command/util/ServiceCheckUtils.java", "source2": "org/apache/dubbo/qos/command/util/ServiceCheckUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.command.util;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-\n-public class ServiceCheckUtils {\n-\n-    public static boolean isRegistered(ProviderModel providerModel) {\n-        // TODO, only check the status of one registry and no protocol now.\n-        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\n-        if (CollectionUtils.isNotEmpty(registries)) {\n-            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\n-            if (abstractRegistry.getRegistered().stream().anyMatch(url -> url.getServiceKey().equals(providerModel.getServiceKey()))) {\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    public static int getConsumerAddressNum(ConsumerModel consumerModel) {\n-        // TODO, only check one registry by default.\n-        int num = 0;\n-\n-        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\n-        if (CollectionUtils.isNotEmpty(registries)) {\n-            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\n-            for (Map.Entry<URL, Map<String, List<URL>>> entry : abstractRegistry.getNotified().entrySet()) {\n-                if (entry.getKey().getServiceKey().equals(consumerModel.getServiceKey())) {\n-                    if (CollectionUtils.isNotEmptyMap(entry.getValue())) {\n-                        num = entry.getValue().size();\n-                    }\n-                }\n-            }\n-        }\n-        return num;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.command.util;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+public class ServiceCheckUtils {\r\n+\r\n+    public static boolean isRegistered(ProviderModel providerModel) {\r\n+        // TODO, only check the status of one registry and no protocol now.\r\n+        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\r\n+        if (CollectionUtils.isNotEmpty(registries)) {\r\n+            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\r\n+            if (abstractRegistry.getRegistered().stream().anyMatch(url -> url.getServiceKey().equals(providerModel.getServiceKey()))) {\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public static int getConsumerAddressNum(ConsumerModel consumerModel) {\r\n+        // TODO, only check one registry by default.\r\n+        int num = 0;\r\n+\r\n+        Collection<Registry> registries = AbstractRegistryFactory.getRegistries();\r\n+        if (CollectionUtils.isNotEmpty(registries)) {\r\n+            AbstractRegistry abstractRegistry = (AbstractRegistry) registries.iterator().next();\r\n+            for (Map.Entry<URL, Map<String, List<URL>>> entry : abstractRegistry.getNotified().entrySet()) {\r\n+                if (entry.getKey().getServiceKey().equals(consumerModel.getServiceKey())) {\r\n+                    if (CollectionUtils.isNotEmptyMap(entry.getValue())) {\r\n+                        num = entry.getValue().size();\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return num;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ChangeTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-/**\n- * ChangeServiceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service]\", summary = \"Change default service.\", detail = \"Change default service.\")\n-public class ChangeTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.service\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        if (message == null || message.length() == 0) {\n-            return \"Please input service name, eg: \\r\\ncd XxxService\\r\\ncd com.xxx.XxxService\";\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        if (\"/\".equals(message) || \"..\".equals(message)) {\n-            String service = (String) channel.getAttribute(SERVICE_KEY);\n-            channel.removeAttribute(SERVICE_KEY);\n-            buf.append(\"Cancelled default service \").append(service).append(\".\");\n-        } else {\n-            boolean found = false;\n-            for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-                if (message.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                        || message.equals(exporter.getInvoker().getInterface().getName())\n-                        || message.equals(exporter.getInvoker().getUrl().getPath())) {\n-                    found = true;\n-                    break;\n-                }\n-            }\n-            if (found) {\n-                channel.setAttribute(SERVICE_KEY, message);\n-                buf.append(\"Used the \").append(message).append(\" as default.\\r\\nYou can cancel default service by command: cd /\");\n-            } else {\n-                buf.append(\"No such service \").append(message);\n-            }\n-        }\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+/**\r\n+ * ChangeServiceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service]\", summary = \"Change default service.\", detail = \"Change default service.\")\r\n+public class ChangeTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.service\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message == null || message.length() == 0) {\r\n+            return \"Please input service name, eg: \\r\\ncd XxxService\\r\\ncd com.xxx.XxxService\";\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (\"/\".equals(message) || \"..\".equals(message)) {\r\n+            String service = (String) channel.getAttribute(SERVICE_KEY);\r\n+            channel.removeAttribute(SERVICE_KEY);\r\n+            buf.append(\"Cancelled default service \").append(service).append(\".\");\r\n+        } else {\r\n+            boolean found = false;\r\n+            for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+                if (message.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                        || message.equals(exporter.getInvoker().getInterface().getName())\r\n+                        || message.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                    found = true;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (found) {\r\n+                channel.setAttribute(SERVICE_KEY, message);\r\n+                buf.append(\"Used the \").append(message).append(\" as default.\\r\\nYou can cancel default service by command: cd /\");\r\n+            } else {\r\n+                buf.append(\"No such service \").append(message);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/CountTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/CountTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,163 +1,163 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.remoting.telnet.support.TelnetUtils;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcStatus;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-/**\n- * CountTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service] [method] [times]\", summary = \"Count the service.\", detail = \"Count the service.\")\n-public class CountTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(final Channel channel, String message) {\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        if ((service == null || service.length() == 0)\n-                && (message == null || message.length() == 0)) {\n-            return \"Please input service name, eg: \\r\\ncount XxxService\\r\\ncount XxxService xxxMethod\\r\\ncount XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        if (service != null && service.length() > 0) {\n-            buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\n-        }\n-        String[] parts = message.split(\"\\\\s+\");\n-        String method;\n-        String times;\n-        if (service == null || service.length() == 0) {\n-            service = parts.length > 0 ? parts[0] : null;\n-            method = parts.length > 1 ? parts[1] : null;\n-        } else {\n-            method = parts.length > 0 ? parts[0] : null;\n-        }\n-        if (StringUtils.isInteger(method)) {\n-            times = method;\n-            method = null;\n-        } else {\n-            times = parts.length > 2 ? parts[2] : \"1\";\n-        }\n-        if (!StringUtils.isInteger(times)) {\n-            return \"Illegal times \" + times + \", must be integer.\";\n-        }\n-        final int t = Integer.parseInt(times);\n-        Invoker<?> invoker = null;\n-        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                    || service.equals(exporter.getInvoker().getInterface().getName())\n-                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\n-                invoker = exporter.getInvoker();\n-                break;\n-            }\n-        }\n-        if (invoker != null) {\n-            if (t > 0) {\n-                final String mtd = method;\n-                final Invoker<?> inv = invoker;\n-                final String prompt = channel.getUrl().getParameter(\"prompt\", \"telnet\");\n-                Thread thread = new Thread(new Runnable() {\n-                    @Override\n-                    public void run() {\n-                        for (int i = 0; i < t; i++) {\n-                            String result = count(inv, mtd);\n-                            try {\n-                                channel.send(\"\\r\\n\" + result);\n-                            } catch (RemotingException e1) {\n-                                return;\n-                            }\n-                            if (i < t - 1) {\n-                                try {\n-                                    Thread.sleep(1000);\n-                                } catch (InterruptedException e) {\n-                                }\n-                            }\n-                        }\n-                        try {\n-                            channel.send(\"\\r\\n\" + prompt + \"> \");\n-                        } catch (RemotingException e1) {\n-                            return;\n-                        }\n-                    }\n-                }, \"TelnetCount\");\n-                thread.setDaemon(true);\n-                thread.start();\n-            }\n-        } else {\n-            buf.append(\"No such service \").append(service);\n-        }\n-        return buf.toString();\n-    }\n-\n-    private String count(Invoker<?> invoker, String method) {\n-        URL url = invoker.getUrl();\n-        List<List<String>> table = new ArrayList<List<String>>();\n-        List<String> header = new ArrayList<String>();\n-        header.add(\"method\");\n-        header.add(\"total\");\n-        header.add(\"failed\");\n-        header.add(\"active\");\n-        header.add(\"average\");\n-        header.add(\"max\");\n-        if (method == null || method.length() == 0) {\n-            for (Method m : invoker.getInterface().getMethods()) {\n-                RpcStatus count = RpcStatus.getStatus(url, m.getName());\n-                table.add(createRow(m.getName(),count));\n-            }\n-        } else {\n-            boolean found = false;\n-            for (Method m : invoker.getInterface().getMethods()) {\n-                if (m.getName().equals(method)) {\n-                    found = true;\n-                    break;\n-                }\n-            }\n-            if (found) {\n-                RpcStatus count = RpcStatus.getStatus(url, method);\n-                table.add(createRow(method,count));\n-            } else {\n-                return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\n-            }\n-        }\n-        return TelnetUtils.toTable(header, table);\n-    }\n-\n-    private List<String> createRow(String methodName,RpcStatus count) {\n-        List<String> row = new ArrayList<String>();\n-        row.add(methodName);\n-        row.add(String.valueOf(count.getTotal()));\n-        row.add(String.valueOf(count.getFailed()));\n-        row.add(String.valueOf(count.getActive()));\n-        row.add(count.getSucceededAverageElapsed() + \"ms\");\n-        row.add(count.getSucceededMaxElapsed() + \"ms\");\n-        return row;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.remoting.telnet.support.TelnetUtils;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcStatus;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * CountTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service] [method] [times]\", summary = \"Count the service.\", detail = \"Count the service.\")\r\n+public class CountTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(final Channel channel, String message) {\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        if ((service == null || service.length() == 0)\r\n+                && (message == null || message.length() == 0)) {\r\n+            return \"Please input service name, eg: \\r\\ncount XxxService\\r\\ncount XxxService xxxMethod\\r\\ncount XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (service != null && service.length() > 0) {\r\n+            buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\r\n+        }\r\n+        String[] parts = message.split(\"\\\\s+\");\r\n+        String method;\r\n+        String times;\r\n+        if (service == null || service.length() == 0) {\r\n+            service = parts.length > 0 ? parts[0] : null;\r\n+            method = parts.length > 1 ? parts[1] : null;\r\n+        } else {\r\n+            method = parts.length > 0 ? parts[0] : null;\r\n+        }\r\n+        if (StringUtils.isInteger(method)) {\r\n+            times = method;\r\n+            method = null;\r\n+        } else {\r\n+            times = parts.length > 2 ? parts[2] : \"1\";\r\n+        }\r\n+        if (!StringUtils.isInteger(times)) {\r\n+            return \"Illegal times \" + times + \", must be integer.\";\r\n+        }\r\n+        final int t = Integer.parseInt(times);\r\n+        Invoker<?> invoker = null;\r\n+        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                    || service.equals(exporter.getInvoker().getInterface().getName())\r\n+                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                invoker = exporter.getInvoker();\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (t > 0) {\r\n+                final String mtd = method;\r\n+                final Invoker<?> inv = invoker;\r\n+                final String prompt = channel.getUrl().getParameter(\"prompt\", \"telnet\");\r\n+                Thread thread = new Thread(new Runnable() {\r\n+                    @Override\r\n+                    public void run() {\r\n+                        for (int i = 0; i < t; i++) {\r\n+                            String result = count(inv, mtd);\r\n+                            try {\r\n+                                channel.send(\"\\r\\n\" + result);\r\n+                            } catch (RemotingException e1) {\r\n+                                return;\r\n+                            }\r\n+                            if (i < t - 1) {\r\n+                                try {\r\n+                                    Thread.sleep(1000);\r\n+                                } catch (InterruptedException e) {\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                        try {\r\n+                            channel.send(\"\\r\\n\" + prompt + \"> \");\r\n+                        } catch (RemotingException e1) {\r\n+                            return;\r\n+                        }\r\n+                    }\r\n+                }, \"TelnetCount\");\r\n+                thread.setDaemon(true);\r\n+                thread.start();\r\n+            }\r\n+        } else {\r\n+            buf.append(\"No such service \").append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    private String count(Invoker<?> invoker, String method) {\r\n+        URL url = invoker.getUrl();\r\n+        List<List<String>> table = new ArrayList<List<String>>();\r\n+        List<String> header = new ArrayList<String>();\r\n+        header.add(\"method\");\r\n+        header.add(\"total\");\r\n+        header.add(\"failed\");\r\n+        header.add(\"active\");\r\n+        header.add(\"average\");\r\n+        header.add(\"max\");\r\n+        if (method == null || method.length() == 0) {\r\n+            for (Method m : invoker.getInterface().getMethods()) {\r\n+                RpcStatus count = RpcStatus.getStatus(url, m.getName());\r\n+                table.add(createRow(m.getName(),count));\r\n+            }\r\n+        } else {\r\n+            boolean found = false;\r\n+            for (Method m : invoker.getInterface().getMethods()) {\r\n+                if (m.getName().equals(method)) {\r\n+                    found = true;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (found) {\r\n+                RpcStatus count = RpcStatus.getStatus(url, method);\r\n+                table.add(createRow(method,count));\r\n+            } else {\r\n+                return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\r\n+            }\r\n+        }\r\n+        return TelnetUtils.toTable(header, table);\r\n+    }\r\n+\r\n+    private List<String> createRow(String methodName,RpcStatus count) {\r\n+        List<String> row = new ArrayList<String>();\r\n+        row.add(methodName);\r\n+        row.add(String.valueOf(count.getTotal()));\r\n+        row.add(String.valueOf(count.getFailed()));\r\n+        row.add(String.valueOf(count.getActive()));\r\n+        row.add(count.getSucceededAverageElapsed() + \"ms\");\r\n+        row.add(count.getSucceededMaxElapsed() + \"ms\");\r\n+        return row;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/CurrentTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,46 +1,46 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-/**\n- * CurrentServiceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"\", summary = \"Print working default service.\", detail = \"Print working default service.\")\n-public class CurrentTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        if (message.length() > 0) {\n-            return \"Unsupported parameter \" + message + \" for pwd.\";\n-        }\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        StringBuilder buf = new StringBuilder();\n-        if (service == null || service.length() == 0) {\n-            buf.append(\"/\");\n-        } else {\n-            buf.append(service);\n-        }\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+/**\r\n+ * CurrentServiceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"\", summary = \"Print working default service.\", detail = \"Print working default service.\")\r\n+public class CurrentTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message.length() > 0) {\r\n+            return \"Unsupported parameter \" + message + \" for pwd.\";\r\n+        }\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (service == null || service.length() == 0) {\r\n+            buf.append(\"/\");\r\n+        } else {\r\n+            buf.append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/InvokeTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,261 +1,261 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.utils.PojoUtils.realize;\n-\n-/**\n- * InvokeTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service.]method(args) \", summary = \"Invoke the service method.\",\n-        detail = \"Invoke the service method.\")\n-public class InvokeTelnetHandler implements TelnetHandler {\n-\n-    public static final String INVOKE_MESSAGE_KEY = \"telnet.invoke.method.message\";\n-    public static final String INVOKE_METHOD_LIST_KEY = \"telnet.invoke.method.list\";\n-    public static final String INVOKE_METHOD_PROVIDER_KEY = \"telnet.invoke.method.provider\";\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public String telnet(Channel channel, String message) {\n-        if (StringUtils.isEmpty(message)) {\n-            return \"Please input method name, eg: \\r\\ninvoke xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\n-                    \"invoke XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\n-                    \"invoke com.xxx.XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\";\n-        }\n-\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-\n-        int i = message.indexOf(\"(\");\n-\n-        if (i < 0 || !message.endsWith(\")\")) {\n-            return \"Invalid parameters, format: service.method(args)\";\n-        }\n-\n-        String method = message.substring(0, i).trim();\n-        String args = message.substring(i + 1, message.length() - 1).trim();\n-        i = method.lastIndexOf(\".\");\n-        if (i >= 0) {\n-            service = method.substring(0, i).trim();\n-            method = method.substring(i + 1).trim();\n-        }\n-\n-        List<Object> list;\n-        try {\n-            list = JSON.parseArray(\"[\" + args + \"]\", Object.class);\n-        } catch (Throwable t) {\n-            return \"Invalid json argument, cause: \" + t.getMessage();\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        Method invokeMethod = null;\n-        ProviderModel selectedProvider = null;\n-        if (isInvokedSelectCommand(channel)) {\n-            selectedProvider = (ProviderModel) channel.getAttribute(INVOKE_METHOD_PROVIDER_KEY);\n-            invokeMethod = (Method) channel.getAttribute(SelectTelnetHandler.SELECT_METHOD_KEY);\n-        } else {\n-            for (ProviderModel provider : ApplicationModel.allProviderModels()) {\n-                if (isServiceMatch(service, provider)) {\n-                    selectedProvider = provider;\n-                    List<Method> methodList = findSameSignatureMethod(provider.getAllMethods(), method, list);\n-                    if (CollectionUtils.isNotEmpty(methodList)) {\n-                        if (methodList.size() == 1) {\n-                            invokeMethod = methodList.get(0);\n-                        } else {\n-                            List<Method> matchMethods = findMatchMethods(methodList, list);\n-                            if (CollectionUtils.isNotEmpty(matchMethods)) {\n-                                if (matchMethods.size() == 1) {\n-                                    invokeMethod = matchMethods.get(0);\n-                                } else { //exist overridden method\n-                                    channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, provider);\n-                                    channel.setAttribute(INVOKE_METHOD_LIST_KEY, matchMethods);\n-                                    channel.setAttribute(INVOKE_MESSAGE_KEY, message);\n-                                    printSelectMessage(buf, matchMethods);\n-                                    return buf.toString();\n-                                }\n-                            }\n-                        }\n-                    }\n-                    break;\n-                }\n-            }\n-        }\n-\n-\n-        if (!StringUtils.isEmpty(service)) {\n-            buf.append(\"Use default service \").append(service).append(\".\");\n-        }\n-        if (selectedProvider != null) {\n-            if (invokeMethod != null) {\n-                try {\n-                    Object[] array = realize(list.toArray(), invokeMethod.getParameterTypes(),\n-                            invokeMethod.getGenericParameterTypes());\n-                    long start = System.currentTimeMillis();\n-                    AppResponse result = new AppResponse();\n-                    try {\n-                        Object o = invokeMethod.invoke(selectedProvider.getServiceInstance(), array);\n-                        result.setValue(o);\n-                    } catch (Throwable t) {\n-                        result.setException(t);\n-                    }\n-                    long end = System.currentTimeMillis();\n-                    buf.append(\"\\r\\nresult: \");\n-                    buf.append(JSON.toJSONString(result.recreate()));\n-                    buf.append(\"\\r\\nelapsed: \");\n-                    buf.append(end - start);\n-                    buf.append(\" ms.\");\n-                } catch (Throwable t) {\n-                    return \"Failed to invoke method \" + invokeMethod.getName() + \", cause: \" + StringUtils.toString(t);\n-                }\n-            } else {\n-                buf.append(\"\\r\\nNo such method \").append(method).append(\" in service \").append(service);\n-            }\n-        } else {\n-            buf.append(\"\\r\\nNo such service \").append(service);\n-        }\n-        return buf.toString();\n-    }\n-\n-\n-    private boolean isServiceMatch(String service, ProviderModel provider) {\n-        return provider.getServiceKey().equalsIgnoreCase(service)\n-                || provider.getServiceInterfaceClass().getSimpleName().equalsIgnoreCase(service)\n-                || provider.getServiceInterfaceClass().getName().equalsIgnoreCase(service)\n-                || StringUtils.isEmpty(service);\n-    }\n-\n-    private List<Method> findSameSignatureMethod(Set<MethodDescriptor> methods, String lookupMethodName, List<Object> args) {\n-        List<Method> sameSignatureMethods = new ArrayList<>();\n-        for (MethodDescriptor model : methods) {\n-            Method method = model.getMethod();\n-            if (method.getName().equals(lookupMethodName) && method.getParameterTypes().length == args.size()) {\n-                sameSignatureMethods.add(method);\n-            }\n-        }\n-        return sameSignatureMethods;\n-    }\n-\n-    private List<Method> findMatchMethods(List<Method> methods, List<Object> args) {\n-        List<Method> matchMethod = new ArrayList<>();\n-        for (Method method : methods) {\n-            if (isMatch(method, args)) {\n-                matchMethod.add(method);\n-            }\n-        }\n-        return matchMethod;\n-    }\n-\n-    private static boolean isMatch(Method method, List<Object> args) {\n-        Class<?>[] types = method.getParameterTypes();\n-        if (types.length != args.size()) {\n-            return false;\n-        }\n-        for (int i = 0; i < types.length; i++) {\n-            Class<?> type = types[i];\n-            Object arg = args.get(i);\n-\n-            if (arg == null) {\n-                if (type.isPrimitive()) {\n-                    return false;\n-                }\n-\n-                // if the type is not primitive, we choose to believe what the invoker want is a null value\n-                continue;\n-            }\n-\n-            if (ReflectUtils.isPrimitive(arg.getClass())) {\n-                // allow string arg to enum type, @see PojoUtils.realize0()\n-                if (arg instanceof String && type.isEnum()) {\n-                    continue;\n-                }\n-\n-                if (!ReflectUtils.isPrimitive(type)) {\n-                    return false;\n-                }\n-\n-                if (!ReflectUtils.isCompatible(type, arg)) {\n-                    return false;\n-                }\n-            } else if (arg instanceof Map) {\n-                String name = (String) ((Map<?, ?>) arg).get(\"class\");\n-                if (StringUtils.isNotEmpty(name)) {\n-                    Class<?> cls = ReflectUtils.forName(name);\n-                    if (!type.isAssignableFrom(cls)) {\n-                        return false;\n-                    }\n-                } else {\n-                    return true;\n-                }\n-            } else if (arg instanceof Collection) {\n-                if (!type.isArray() && !type.isAssignableFrom(arg.getClass())) {\n-                    return false;\n-                }\n-            } else {\n-                if (!type.isAssignableFrom(arg.getClass())) {\n-                    return false;\n-                }\n-            }\n-        }\n-        return true;\n-    }\n-\n-    private void printSelectMessage(StringBuilder buf, List<Method> methods) {\n-        buf.append(\"Methods:\\r\\n\");\n-        for (int i = 0; i < methods.size(); i++) {\n-            Method method = methods.get(i);\n-            buf.append(i + 1).append(\". \").append(method.getName()).append(\"(\");\n-            Class<?>[] parameterTypes = method.getParameterTypes();\n-            for (int n = 0; n < parameterTypes.length; n++) {\n-                buf.append(parameterTypes[n].getSimpleName());\n-                if (n != parameterTypes.length - 1) {\n-                    buf.append(\",\");\n-                }\n-            }\n-            buf.append(\")\\r\\n\");\n-        }\n-        buf.append(\"Please use the select command to select the method you want to invoke. eg: select 1\");\n-    }\n-\n-    private boolean isInvokedSelectCommand(Channel channel) {\n-        if (channel.hasAttribute(SelectTelnetHandler.SELECT_KEY)) {\n-            channel.removeAttribute(SelectTelnetHandler.SELECT_KEY);\n-            return true;\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.utils.PojoUtils.realize;\r\n+\r\n+/**\r\n+ * InvokeTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service.]method(args) \", summary = \"Invoke the service method.\",\r\n+        detail = \"Invoke the service method.\")\r\n+public class InvokeTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String INVOKE_MESSAGE_KEY = \"telnet.invoke.method.message\";\r\n+    public static final String INVOKE_METHOD_LIST_KEY = \"telnet.invoke.method.list\";\r\n+    public static final String INVOKE_METHOD_PROVIDER_KEY = \"telnet.invoke.method.provider\";\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (StringUtils.isEmpty(message)) {\r\n+            return \"Please input method name, eg: \\r\\ninvoke xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\r\n+                    \"invoke XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\\r\\n\" +\r\n+                    \"invoke com.xxx.XxxService.xxxMethod(1234, \\\"abcd\\\", {\\\"prop\\\" : \\\"value\\\"})\";\r\n+        }\r\n+\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+\r\n+        int i = message.indexOf(\"(\");\r\n+\r\n+        if (i < 0 || !message.endsWith(\")\")) {\r\n+            return \"Invalid parameters, format: service.method(args)\";\r\n+        }\r\n+\r\n+        String method = message.substring(0, i).trim();\r\n+        String args = message.substring(i + 1, message.length() - 1).trim();\r\n+        i = method.lastIndexOf(\".\");\r\n+        if (i >= 0) {\r\n+            service = method.substring(0, i).trim();\r\n+            method = method.substring(i + 1).trim();\r\n+        }\r\n+\r\n+        List<Object> list;\r\n+        try {\r\n+            list = JSON.parseArray(\"[\" + args + \"]\", Object.class);\r\n+        } catch (Throwable t) {\r\n+            return \"Invalid json argument, cause: \" + t.getMessage();\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        Method invokeMethod = null;\r\n+        ProviderModel selectedProvider = null;\r\n+        if (isInvokedSelectCommand(channel)) {\r\n+            selectedProvider = (ProviderModel) channel.getAttribute(INVOKE_METHOD_PROVIDER_KEY);\r\n+            invokeMethod = (Method) channel.getAttribute(SelectTelnetHandler.SELECT_METHOD_KEY);\r\n+        } else {\r\n+            for (ProviderModel provider : ApplicationModel.allProviderModels()) {\r\n+                if (isServiceMatch(service, provider)) {\r\n+                    selectedProvider = provider;\r\n+                    List<Method> methodList = findSameSignatureMethod(provider.getAllMethods(), method, list);\r\n+                    if (CollectionUtils.isNotEmpty(methodList)) {\r\n+                        if (methodList.size() == 1) {\r\n+                            invokeMethod = methodList.get(0);\r\n+                        } else {\r\n+                            List<Method> matchMethods = findMatchMethods(methodList, list);\r\n+                            if (CollectionUtils.isNotEmpty(matchMethods)) {\r\n+                                if (matchMethods.size() == 1) {\r\n+                                    invokeMethod = matchMethods.get(0);\r\n+                                } else { //exist overridden method\r\n+                                    channel.setAttribute(INVOKE_METHOD_PROVIDER_KEY, provider);\r\n+                                    channel.setAttribute(INVOKE_METHOD_LIST_KEY, matchMethods);\r\n+                                    channel.setAttribute(INVOKE_MESSAGE_KEY, message);\r\n+                                    printSelectMessage(buf, matchMethods);\r\n+                                    return buf.toString();\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                    break;\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+\r\n+        if (!StringUtils.isEmpty(service)) {\r\n+            buf.append(\"Use default service \").append(service).append(\".\");\r\n+        }\r\n+        if (selectedProvider != null) {\r\n+            if (invokeMethod != null) {\r\n+                try {\r\n+                    Object[] array = realize(list.toArray(), invokeMethod.getParameterTypes(),\r\n+                            invokeMethod.getGenericParameterTypes());\r\n+                    long start = System.currentTimeMillis();\r\n+                    AppResponse result = new AppResponse();\r\n+                    try {\r\n+                        Object o = invokeMethod.invoke(selectedProvider.getServiceInstance(), array);\r\n+                        result.setValue(o);\r\n+                    } catch (Throwable t) {\r\n+                        result.setException(t);\r\n+                    }\r\n+                    long end = System.currentTimeMillis();\r\n+                    buf.append(\"\\r\\nresult: \");\r\n+                    buf.append(JSON.toJSONString(result.recreate()));\r\n+                    buf.append(\"\\r\\nelapsed: \");\r\n+                    buf.append(end - start);\r\n+                    buf.append(\" ms.\");\r\n+                } catch (Throwable t) {\r\n+                    return \"Failed to invoke method \" + invokeMethod.getName() + \", cause: \" + StringUtils.toString(t);\r\n+                }\r\n+            } else {\r\n+                buf.append(\"\\r\\nNo such method \").append(method).append(\" in service \").append(service);\r\n+            }\r\n+        } else {\r\n+            buf.append(\"\\r\\nNo such service \").append(service);\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+\r\n+    private boolean isServiceMatch(String service, ProviderModel provider) {\r\n+        return provider.getServiceKey().equalsIgnoreCase(service)\r\n+                || provider.getServiceInterfaceClass().getSimpleName().equalsIgnoreCase(service)\r\n+                || provider.getServiceInterfaceClass().getName().equalsIgnoreCase(service)\r\n+                || StringUtils.isEmpty(service);\r\n+    }\r\n+\r\n+    private List<Method> findSameSignatureMethod(Set<MethodDescriptor> methods, String lookupMethodName, List<Object> args) {\r\n+        List<Method> sameSignatureMethods = new ArrayList<>();\r\n+        for (MethodDescriptor model : methods) {\r\n+            Method method = model.getMethod();\r\n+            if (method.getName().equals(lookupMethodName) && method.getParameterTypes().length == args.size()) {\r\n+                sameSignatureMethods.add(method);\r\n+            }\r\n+        }\r\n+        return sameSignatureMethods;\r\n+    }\r\n+\r\n+    private List<Method> findMatchMethods(List<Method> methods, List<Object> args) {\r\n+        List<Method> matchMethod = new ArrayList<>();\r\n+        for (Method method : methods) {\r\n+            if (isMatch(method, args)) {\r\n+                matchMethod.add(method);\r\n+            }\r\n+        }\r\n+        return matchMethod;\r\n+    }\r\n+\r\n+    private static boolean isMatch(Method method, List<Object> args) {\r\n+        Class<?>[] types = method.getParameterTypes();\r\n+        if (types.length != args.size()) {\r\n+            return false;\r\n+        }\r\n+        for (int i = 0; i < types.length; i++) {\r\n+            Class<?> type = types[i];\r\n+            Object arg = args.get(i);\r\n+\r\n+            if (arg == null) {\r\n+                if (type.isPrimitive()) {\r\n+                    return false;\r\n+                }\r\n+\r\n+                // if the type is not primitive, we choose to believe what the invoker want is a null value\r\n+                continue;\r\n+            }\r\n+\r\n+            if (ReflectUtils.isPrimitive(arg.getClass())) {\r\n+                // allow string arg to enum type, @see PojoUtils.realize0()\r\n+                if (arg instanceof String && type.isEnum()) {\r\n+                    continue;\r\n+                }\r\n+\r\n+                if (!ReflectUtils.isPrimitive(type)) {\r\n+                    return false;\r\n+                }\r\n+\r\n+                if (!ReflectUtils.isCompatible(type, arg)) {\r\n+                    return false;\r\n+                }\r\n+            } else if (arg instanceof Map) {\r\n+                String name = (String) ((Map<?, ?>) arg).get(\"class\");\r\n+                if (StringUtils.isNotEmpty(name)) {\r\n+                    Class<?> cls = ReflectUtils.forName(name);\r\n+                    if (!type.isAssignableFrom(cls)) {\r\n+                        return false;\r\n+                    }\r\n+                } else {\r\n+                    return true;\r\n+                }\r\n+            } else if (arg instanceof Collection) {\r\n+                if (!type.isArray() && !type.isAssignableFrom(arg.getClass())) {\r\n+                    return false;\r\n+                }\r\n+            } else {\r\n+                if (!type.isAssignableFrom(arg.getClass())) {\r\n+                    return false;\r\n+                }\r\n+            }\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    private void printSelectMessage(StringBuilder buf, List<Method> methods) {\r\n+        buf.append(\"Methods:\\r\\n\");\r\n+        for (int i = 0; i < methods.size(); i++) {\r\n+            Method method = methods.get(i);\r\n+            buf.append(i + 1).append(\". \").append(method.getName()).append(\"(\");\r\n+            Class<?>[] parameterTypes = method.getParameterTypes();\r\n+            for (int n = 0; n < parameterTypes.length; n++) {\r\n+                buf.append(parameterTypes[n].getSimpleName());\r\n+                if (n != parameterTypes.length - 1) {\r\n+                    buf.append(\",\");\r\n+                }\r\n+            }\r\n+            buf.append(\")\\r\\n\");\r\n+        }\r\n+        buf.append(\"Please use the select command to select the method you want to invoke. eg: select 1\");\r\n+    }\r\n+\r\n+    private boolean isInvokedSelectCommand(Channel channel) {\r\n+        if (channel.hasAttribute(SelectTelnetHandler.SELECT_KEY)) {\r\n+            channel.removeAttribute(SelectTelnetHandler.SELECT_KEY);\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ListTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ListTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,166 +1,166 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.lang.reflect.Method;\n-import java.util.List;\n-\n-/**\n- * ListTelnetHandler handler list services and its methods details.\n- */\n-@Activate\n-@Help(parameter = \"[-l] [service]\", summary = \"List services and methods.\", detail = \"List services and methods.\")\n-public class ListTelnetHandler implements TelnetHandler {\n-\n-    private ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        StringBuilder buf = new StringBuilder();\n-        String service = null;\n-        boolean detail = false;\n-        if (message.length() > 0) {\n-            String[] parts = message.split(\"\\\\s+\");\n-            for (String part : parts) {\n-                if (\"-l\".equals(part)) {\n-                    detail = true;\n-                } else {\n-                    if (!StringUtils.isEmpty(service)) {\n-                        return \"Invalid parameter \" + part;\n-                    }\n-                    service = part;\n-                }\n-            }\n-        } else {\n-            service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-            if (StringUtils.isNotEmpty(service)) {\n-                buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\n-            }\n-        }\n-\n-        if (StringUtils.isEmpty(service)) {\n-            printAllServices(buf, detail);\n-        } else {\n-            printSpecifiedService(service, buf, detail);\n-\n-            if (buf.length() == 0) {\n-                buf.append(\"No such service: \").append(service);\n-            }\n-        }\n-        return buf.toString();\n-    }\n-\n-    private void printAllServices(StringBuilder buf, boolean detail) {\n-        printAllProvidedServices(buf, detail);\n-        printAllReferredServices(buf, detail);\n-    }\n-\n-    private void printAllProvidedServices(StringBuilder buf, boolean detail) {\n-        List<ProviderModel> providerModels = serviceRepository.getExportedServices();\n-        if (!providerModels.isEmpty()) {\n-            buf.append(\"PROVIDER:\\r\\n\");\n-        }\n-\n-        for (ProviderModel provider : providerModels) {\n-            buf.append(provider.getServiceKey());\n-            if (detail) {\n-                buf.append(\" -> \");\n-                buf.append(\" published: \");\n-                buf.append(ServiceCheckUtils.isRegistered(provider) ? \"Y\" : \"N\");\n-            }\n-            buf.append(\"\\r\\n\");\n-        }\n-    }\n-\n-    private void printAllReferredServices(StringBuilder buf, boolean detail) {\n-        List<ConsumerModel> consumerModels = serviceRepository.getReferredServices();\n-        if (!consumerModels.isEmpty()) {\n-            buf.append(\"CONSUMER:\\r\\n\");\n-        }\n-\n-        for (ConsumerModel consumer : consumerModels) {\n-            buf.append(consumer.getServiceKey());\n-            if (detail) {\n-                buf.append(\" -> \");\n-                buf.append(\" addresses: \");\n-                buf.append(ServiceCheckUtils.getConsumerAddressNum(consumer));\n-            }\n-            buf.append(\"\\r\\n\");\n-        }\n-    }\n-\n-    private void printSpecifiedService(String service, StringBuilder buf, boolean detail) {\n-        printSpecifiedProvidedService(service, buf, detail);\n-        printSpecifiedReferredService(service, buf, detail);\n-    }\n-\n-    private void printSpecifiedProvidedService(String service, StringBuilder buf, boolean detail) {\n-        for (ProviderModel provider : ApplicationModel.allProviderModels()) {\n-            if (isProviderMatched(service,provider)) {\n-                buf.append(provider.getServiceKey()).append(\" (as provider):\\r\\n\");\n-                for (MethodDescriptor method : provider.getAllMethods()) {\n-                    printMethod(method.getMethod(), buf, detail);\n-                }\n-            }\n-        }\n-    }\n-\n-    private void printSpecifiedReferredService(String service, StringBuilder buf, boolean detail) {\n-        for (ConsumerModel consumer : ApplicationModel.allConsumerModels()) {\n-            if (isConsumerMatcher(service,consumer)) {\n-                buf.append(consumer.getServiceKey()).append(\" (as consumer):\\r\\n\");\n-                for (MethodDescriptor method : consumer.getAllMethods()) {\n-                    printMethod(method.getMethod(), buf, detail);\n-                }\n-            }\n-        }\n-    }\n-\n-    private void printMethod(Method method, StringBuilder buf, boolean detail) {\n-        if (detail) {\n-            buf.append('\\t').append(ReflectUtils.getName(method));\n-        } else {\n-            buf.append('\\t').append(method.getName());\n-        }\n-        buf.append(\"\\r\\n\");\n-    }\n-\n-    private boolean isProviderMatched(String service, ProviderModel provider) {\n-        return service.equalsIgnoreCase(provider.getServiceKey())\n-                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getName())\n-                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getSimpleName());\n-    }\n-\n-    private boolean isConsumerMatcher(String service,ConsumerModel consumer) {\n-        return service.equalsIgnoreCase(consumer.getServiceKey())\n-                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getName())\n-                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getSimpleName());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.command.util.ServiceCheckUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * ListTelnetHandler handler list services and its methods details.\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-l] [service]\", summary = \"List services and methods.\", detail = \"List services and methods.\")\r\n+public class ListTelnetHandler implements TelnetHandler {\r\n+\r\n+    private ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        String service = null;\r\n+        boolean detail = false;\r\n+        if (message.length() > 0) {\r\n+            String[] parts = message.split(\"\\\\s+\");\r\n+            for (String part : parts) {\r\n+                if (\"-l\".equals(part)) {\r\n+                    detail = true;\r\n+                } else {\r\n+                    if (!StringUtils.isEmpty(service)) {\r\n+                        return \"Invalid parameter \" + part;\r\n+                    }\r\n+                    service = part;\r\n+                }\r\n+            }\r\n+        } else {\r\n+            service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+            if (StringUtils.isNotEmpty(service)) {\r\n+                buf.append(\"Use default service \").append(service).append(\".\\r\\n\");\r\n+            }\r\n+        }\r\n+\r\n+        if (StringUtils.isEmpty(service)) {\r\n+            printAllServices(buf, detail);\r\n+        } else {\r\n+            printSpecifiedService(service, buf, detail);\r\n+\r\n+            if (buf.length() == 0) {\r\n+                buf.append(\"No such service: \").append(service);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    private void printAllServices(StringBuilder buf, boolean detail) {\r\n+        printAllProvidedServices(buf, detail);\r\n+        printAllReferredServices(buf, detail);\r\n+    }\r\n+\r\n+    private void printAllProvidedServices(StringBuilder buf, boolean detail) {\r\n+        List<ProviderModel> providerModels = serviceRepository.getExportedServices();\r\n+        if (!providerModels.isEmpty()) {\r\n+            buf.append(\"PROVIDER:\\r\\n\");\r\n+        }\r\n+\r\n+        for (ProviderModel provider : providerModels) {\r\n+            buf.append(provider.getServiceKey());\r\n+            if (detail) {\r\n+                buf.append(\" -> \");\r\n+                buf.append(\" published: \");\r\n+                buf.append(ServiceCheckUtils.isRegistered(provider) ? \"Y\" : \"N\");\r\n+            }\r\n+            buf.append(\"\\r\\n\");\r\n+        }\r\n+    }\r\n+\r\n+    private void printAllReferredServices(StringBuilder buf, boolean detail) {\r\n+        List<ConsumerModel> consumerModels = serviceRepository.getReferredServices();\r\n+        if (!consumerModels.isEmpty()) {\r\n+            buf.append(\"CONSUMER:\\r\\n\");\r\n+        }\r\n+\r\n+        for (ConsumerModel consumer : consumerModels) {\r\n+            buf.append(consumer.getServiceKey());\r\n+            if (detail) {\r\n+                buf.append(\" -> \");\r\n+                buf.append(\" addresses: \");\r\n+                buf.append(ServiceCheckUtils.getConsumerAddressNum(consumer));\r\n+            }\r\n+            buf.append(\"\\r\\n\");\r\n+        }\r\n+    }\r\n+\r\n+    private void printSpecifiedService(String service, StringBuilder buf, boolean detail) {\r\n+        printSpecifiedProvidedService(service, buf, detail);\r\n+        printSpecifiedReferredService(service, buf, detail);\r\n+    }\r\n+\r\n+    private void printSpecifiedProvidedService(String service, StringBuilder buf, boolean detail) {\r\n+        for (ProviderModel provider : ApplicationModel.allProviderModels()) {\r\n+            if (isProviderMatched(service,provider)) {\r\n+                buf.append(provider.getServiceKey()).append(\" (as provider):\\r\\n\");\r\n+                for (MethodDescriptor method : provider.getAllMethods()) {\r\n+                    printMethod(method.getMethod(), buf, detail);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void printSpecifiedReferredService(String service, StringBuilder buf, boolean detail) {\r\n+        for (ConsumerModel consumer : ApplicationModel.allConsumerModels()) {\r\n+            if (isConsumerMatcher(service,consumer)) {\r\n+                buf.append(consumer.getServiceKey()).append(\" (as consumer):\\r\\n\");\r\n+                for (MethodDescriptor method : consumer.getAllMethods()) {\r\n+                    printMethod(method.getMethod(), buf, detail);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void printMethod(Method method, StringBuilder buf, boolean detail) {\r\n+        if (detail) {\r\n+            buf.append('\\t').append(ReflectUtils.getName(method));\r\n+        } else {\r\n+            buf.append('\\t').append(method.getName());\r\n+        }\r\n+        buf.append(\"\\r\\n\");\r\n+    }\r\n+\r\n+    private boolean isProviderMatched(String service, ProviderModel provider) {\r\n+        return service.equalsIgnoreCase(provider.getServiceKey())\r\n+                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getName())\r\n+                || service.equalsIgnoreCase(provider.getServiceInterfaceClass().getSimpleName());\r\n+    }\r\n+\r\n+    private boolean isConsumerMatcher(String service,ConsumerModel consumer) {\r\n+        return service.equalsIgnoreCase(consumer.getServiceKey())\r\n+                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getName())\r\n+                || service.equalsIgnoreCase(consumer.getServiceInterfaceClass().getSimpleName());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/LogTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/LogTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,91 +1,91 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Level;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.nio.ByteBuffer;\n-import java.nio.channels.FileChannel;\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-\n-/**\n- * LogTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\n-public class LogTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.log\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        long size;\n-        File file = LoggerFactory.getFile();\n-        StringBuilder buf = new StringBuilder();\n-        if (message == null || message.trim().length() == 0) {\n-            buf.append(\"EXAMPLE: log error / log 100\");\n-        } else {\n-            String[] str = message.split(\" \");\n-            if (!StringUtils.isInteger(str[0])) {\n-                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\n-            } else {\n-                int showLogLength = Integer.parseInt(str[0]);\n-\n-                if (file != null && file.exists()) {\n-                    try(FileInputStream fis = new FileInputStream(file)) {\n-                        FileChannel filechannel = fis.getChannel();\n-                        size = filechannel.size();\n-                        ByteBuffer bb;\n-                        if (size <= showLogLength) {\n-                            bb = ByteBuffer.allocate((int) size);\n-                            filechannel.read(bb, 0);\n-                        } else {\n-                            int pos = (int) (size - showLogLength);\n-                            bb = ByteBuffer.allocate(showLogLength);\n-                            filechannel.read(bb, pos);\n-                        }\n-                        bb.flip();\n-                        String content = new String(bb.array()).replace(\"<\", \"&lt;\")\n-                                .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\n-                        buf.append(\"\\r\\ncontent:\").append(content);\n-\n-                        buf.append(\"\\r\\nmodified:\").append(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n-                                .format(new Date(file.lastModified())));\n-                        buf.append(\"\\r\\nsize:\").append(size).append(\"\\r\\n\");\n-                    } catch (Exception e) {\n-                        buf.append(e.getMessage());\n-                    }\n-                } else {\n-                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\n-                }\n-            }\n-        }\n-        buf.append(\"\\r\\nCURRENT LOG LEVEL:\").append(LoggerFactory.getLevel()).append(\"\\r\\nCURRENT LOG APPENDER:\")\n-                .append(file == null ? \"console\" : file.getAbsolutePath());\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Level;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.nio.ByteBuffer;\r\n+import java.nio.channels.FileChannel;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+\r\n+/**\r\n+ * LogTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\r\n+public class LogTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.log\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        long size;\r\n+        File file = LoggerFactory.getFile();\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (message == null || message.trim().length() == 0) {\r\n+            buf.append(\"EXAMPLE: log error / log 100\");\r\n+        } else {\r\n+            String[] str = message.split(\" \");\r\n+            if (!StringUtils.isInteger(str[0])) {\r\n+                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\r\n+            } else {\r\n+                int showLogLength = Integer.parseInt(str[0]);\r\n+\r\n+                if (file != null && file.exists()) {\r\n+                    try(FileInputStream fis = new FileInputStream(file)) {\r\n+                        FileChannel filechannel = fis.getChannel();\r\n+                        size = filechannel.size();\r\n+                        ByteBuffer bb;\r\n+                        if (size <= showLogLength) {\r\n+                            bb = ByteBuffer.allocate((int) size);\r\n+                            filechannel.read(bb, 0);\r\n+                        } else {\r\n+                            int pos = (int) (size - showLogLength);\r\n+                            bb = ByteBuffer.allocate(showLogLength);\r\n+                            filechannel.read(bb, pos);\r\n+                        }\r\n+                        bb.flip();\r\n+                        String content = new String(bb.array()).replace(\"<\", \"&lt;\")\r\n+                                .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\r\n+                        buf.append(\"\\r\\ncontent:\").append(content);\r\n+\r\n+                        buf.append(\"\\r\\nmodified:\").append(new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\r\n+                                .format(new Date(file.lastModified())));\r\n+                        buf.append(\"\\r\\nsize:\").append(size).append(\"\\r\\n\");\r\n+                    } catch (Exception e) {\r\n+                        buf.append(e.getMessage());\r\n+                    }\r\n+                } else {\r\n+                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\r\n+                }\r\n+            }\r\n+        }\r\n+        buf.append(\"\\r\\nCURRENT LOG LEVEL:\").append(LoggerFactory.getLevel()).append(\"\\r\\nCURRENT LOG APPENDER:\")\r\n+                .append(file == null ? \"console\" : file.getAbsolutePath());\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/PortTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/PortTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,96 +1,96 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.exchange.ExchangeChannel;\n-import org.apache.dubbo.remoting.exchange.ExchangeServer;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-import java.util.Collection;\n-\n-/**\n- * ServerTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[-l] [port]\", summary = \"Print server ports and connections.\", detail = \"Print server ports and connections.\")\n-public class PortTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        StringBuilder buf = new StringBuilder();\n-        String port = null;\n-        boolean detail = false;\n-        if (message.length() > 0) {\n-            String[] parts = message.split(\"\\\\s+\");\n-            for (String part : parts) {\n-                if (\"-l\".equals(part)) {\n-                    detail = true;\n-                } else {\n-                    if (!StringUtils.isInteger(part)) {\n-                        return \"Illegal port \" + part + \", must be integer.\";\n-                    }\n-                    port = part;\n-                }\n-            }\n-        }\n-        if (port == null || port.length() == 0) {\n-            for (ProtocolServer server : DubboProtocol.getDubboProtocol().getServers()) {\n-                if (buf.length() > 0) {\n-                    buf.append(\"\\r\\n\");\n-                }\n-                if (detail) {\n-                    buf.append(server.getUrl().getProtocol()).append(\"://\").append(server.getUrl().getAddress());\n-                } else {\n-                    buf.append(server.getUrl().getPort());\n-                }\n-            }\n-        } else {\n-            int p = Integer.parseInt(port);\n-            ProtocolServer protocolServer = null;\n-            for (ProtocolServer s : DubboProtocol.getDubboProtocol().getServers()) {\n-                if (p == s.getUrl().getPort()) {\n-                    protocolServer = s;\n-                    break;\n-                }\n-            }\n-            if (protocolServer != null) {\n-                ExchangeServer server = (ExchangeServer) protocolServer.getRemotingServer();\n-                Collection<ExchangeChannel> channels = server.getExchangeChannels();\n-                for (ExchangeChannel c : channels) {\n-                    if (buf.length() > 0) {\n-                        buf.append(\"\\r\\n\");\n-                    }\n-                    if (detail) {\n-                        buf.append(c.getRemoteAddress()).append(\" -> \").append(c.getLocalAddress());\n-                    } else {\n-                        buf.append(c.getRemoteAddress());\n-                    }\n-                }\n-            } else {\n-                buf.append(\"No such port \").append(port);\n-            }\n-        }\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeChannel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeServer;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * ServerTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-l] [port]\", summary = \"Print server ports and connections.\", detail = \"Print server ports and connections.\")\r\n+public class PortTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        String port = null;\r\n+        boolean detail = false;\r\n+        if (message.length() > 0) {\r\n+            String[] parts = message.split(\"\\\\s+\");\r\n+            for (String part : parts) {\r\n+                if (\"-l\".equals(part)) {\r\n+                    detail = true;\r\n+                } else {\r\n+                    if (!StringUtils.isInteger(part)) {\r\n+                        return \"Illegal port \" + part + \", must be integer.\";\r\n+                    }\r\n+                    port = part;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (port == null || port.length() == 0) {\r\n+            for (ProtocolServer server : DubboProtocol.getDubboProtocol().getServers()) {\r\n+                if (buf.length() > 0) {\r\n+                    buf.append(\"\\r\\n\");\r\n+                }\r\n+                if (detail) {\r\n+                    buf.append(server.getUrl().getProtocol()).append(\"://\").append(server.getUrl().getAddress());\r\n+                } else {\r\n+                    buf.append(server.getUrl().getPort());\r\n+                }\r\n+            }\r\n+        } else {\r\n+            int p = Integer.parseInt(port);\r\n+            ProtocolServer protocolServer = null;\r\n+            for (ProtocolServer s : DubboProtocol.getDubboProtocol().getServers()) {\r\n+                if (p == s.getUrl().getPort()) {\r\n+                    protocolServer = s;\r\n+                    break;\r\n+                }\r\n+            }\r\n+            if (protocolServer != null) {\r\n+                ExchangeServer server = (ExchangeServer) protocolServer.getRemotingServer();\r\n+                Collection<ExchangeChannel> channels = server.getExchangeChannels();\r\n+                for (ExchangeChannel c : channels) {\r\n+                    if (buf.length() > 0) {\r\n+                        buf.append(\"\\r\\n\");\r\n+                    }\r\n+                    if (detail) {\r\n+                        buf.append(c.getRemoteAddress()).append(\" -> \").append(c.getLocalAddress());\r\n+                    } else {\r\n+                        buf.append(c.getRemoteAddress());\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                buf.append(\"No such port \").append(port);\r\n+            }\r\n+        }\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/SelectTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/SelectTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.lang.reflect.Method;\n-import java.util.List;\n-\n-/**\n- * SelectTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[index]\", summary = \"Select the index of the method you want to invoke.\",\n-        detail = \"Select the index of the method you want to invoke.\")\n-public class SelectTelnetHandler implements TelnetHandler {\n-    public static final String SELECT_METHOD_KEY = \"telnet.select.method\";\n-    public static final String SELECT_KEY = \"telnet.select\";\n-\n-    private InvokeTelnetHandler invokeTelnetHandler = new InvokeTelnetHandler();\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public String telnet(Channel channel, String message) {\n-        if (message == null || message.length() == 0) {\n-            return \"Please input the index of the method you want to invoke, eg: \\r\\n select 1\";\n-        }\n-        List<Method> methodList = (List<Method>) channel.getAttribute(InvokeTelnetHandler.INVOKE_METHOD_LIST_KEY);\n-        if (CollectionUtils.isEmpty(methodList)) {\n-            return \"Please use the invoke command first.\";\n-        }\n-        if (!StringUtils.isInteger(message) || Integer.parseInt(message) < 1 || Integer.parseInt(message) > methodList.size()) {\n-            return \"Illegal index ,please input select 1~\" + methodList.size();\n-        }\n-        Method method = methodList.get(Integer.parseInt(message) - 1);\n-        channel.setAttribute(SELECT_METHOD_KEY, method);\n-        channel.setAttribute(SELECT_KEY, Boolean.TRUE);\n-        String invokeMessage = (String) channel.getAttribute(InvokeTelnetHandler.INVOKE_MESSAGE_KEY);\n-        return invokeTelnetHandler.telnet(channel, invokeMessage);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * SelectTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[index]\", summary = \"Select the index of the method you want to invoke.\",\r\n+        detail = \"Select the index of the method you want to invoke.\")\r\n+public class SelectTelnetHandler implements TelnetHandler {\r\n+    public static final String SELECT_METHOD_KEY = \"telnet.select.method\";\r\n+    public static final String SELECT_KEY = \"telnet.select\";\r\n+\r\n+    private InvokeTelnetHandler invokeTelnetHandler = new InvokeTelnetHandler();\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public String telnet(Channel channel, String message) {\r\n+        if (message == null || message.length() == 0) {\r\n+            return \"Please input the index of the method you want to invoke, eg: \\r\\n select 1\";\r\n+        }\r\n+        List<Method> methodList = (List<Method>) channel.getAttribute(InvokeTelnetHandler.INVOKE_METHOD_LIST_KEY);\r\n+        if (CollectionUtils.isEmpty(methodList)) {\r\n+            return \"Please use the invoke command first.\";\r\n+        }\r\n+        if (!StringUtils.isInteger(message) || Integer.parseInt(message) < 1 || Integer.parseInt(message) > methodList.size()) {\r\n+            return \"Illegal index ,please input select 1~\" + methodList.size();\r\n+        }\r\n+        Method method = methodList.get(Integer.parseInt(message) - 1);\r\n+        channel.setAttribute(SELECT_METHOD_KEY, method);\r\n+        channel.setAttribute(SELECT_KEY, Boolean.TRUE);\r\n+        String invokeMessage = (String) channel.getAttribute(InvokeTelnetHandler.INVOKE_MESSAGE_KEY);\r\n+        return invokeTelnetHandler.telnet(channel, invokeMessage);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/ShutdownTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,63 +1,63 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.config.DubboShutdownHook;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-/**\n- * ShutdownTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[-t <milliseconds>]\", summary = \"Shutdown Dubbo Application.\", detail = \"Shutdown Dubbo Application.\")\n-public class ShutdownTelnetHandler implements TelnetHandler {\n-    @Override\n-    public String telnet(Channel channel, String message) throws RemotingException {\n-\n-        int sleepMilliseconds = 0;\n-        if (StringUtils.isNotEmpty(message)) {\n-            String[] parameters = message.split(\"\\\\s+\");\n-            if (parameters.length == 2 && \"-t\".equals(parameters[0]) && StringUtils.isInteger(parameters[1])) {\n-                sleepMilliseconds = Integer.parseInt(parameters[1]);\n-            } else {\n-                return \"Invalid parameter,please input like shutdown -t 10000\";\n-            }\n-        }\n-        long start = System.currentTimeMillis();\n-        if (sleepMilliseconds > 0) {\n-            try {\n-                Thread.sleep(sleepMilliseconds);\n-            } catch (InterruptedException e) {\n-                return \"Failed to invoke shutdown command, cause: \" + e.getMessage();\n-            }\n-        }\n-        StringBuilder buf = new StringBuilder();\n-        DubboShutdownHook.getDubboShutdownHook().unregister();\n-        DubboShutdownHook.getDubboShutdownHook().doDestroy();\n-        long end = System.currentTimeMillis();\n-        buf.append(\"Application has shutdown successfully\");\n-        buf.append(\"\\r\\nelapsed: \");\n-        buf.append(end - start);\n-        buf.append(\" ms.\");\n-        return buf.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.config.DubboShutdownHook;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+/**\r\n+ * ShutdownTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[-t <milliseconds>]\", summary = \"Shutdown Dubbo Application.\", detail = \"Shutdown Dubbo Application.\")\r\n+public class ShutdownTelnetHandler implements TelnetHandler {\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) throws RemotingException {\r\n+\r\n+        int sleepMilliseconds = 0;\r\n+        if (StringUtils.isNotEmpty(message)) {\r\n+            String[] parameters = message.split(\"\\\\s+\");\r\n+            if (parameters.length == 2 && \"-t\".equals(parameters[0]) && StringUtils.isInteger(parameters[1])) {\r\n+                sleepMilliseconds = Integer.parseInt(parameters[1]);\r\n+            } else {\r\n+                return \"Invalid parameter,please input like shutdown -t 10000\";\r\n+            }\r\n+        }\r\n+        long start = System.currentTimeMillis();\r\n+        if (sleepMilliseconds > 0) {\r\n+            try {\r\n+                Thread.sleep(sleepMilliseconds);\r\n+            } catch (InterruptedException e) {\r\n+                return \"Failed to invoke shutdown command, cause: \" + e.getMessage();\r\n+            }\r\n+        }\r\n+        StringBuilder buf = new StringBuilder();\r\n+        DubboShutdownHook.getDubboShutdownHook().unregister();\r\n+        DubboShutdownHook.getDubboShutdownHook().doDestroy();\r\n+        long end = System.currentTimeMillis();\r\n+        buf.append(\"Application has shutdown successfully\");\r\n+        buf.append(\"\\r\\nelapsed: \");\r\n+        buf.append(end - start);\r\n+        buf.append(\" ms.\");\r\n+        return buf.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/legacy/TraceTelnetHandler.java", "source2": "org/apache/dubbo/qos/legacy/TraceTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,93 +1,93 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.legacy;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-import org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter;\n-\n-import java.lang.reflect.Method;\n-\n-/**\n- * TraceTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"[service] [method] [times]\", summary = \"Trace the service.\", detail = \"Trace the service.\")\n-public class TraceTelnetHandler implements TelnetHandler {\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\n-        if ((service == null || service.length() == 0)\n-                && (message == null || message.length() == 0)) {\n-            return \"Please input service name, eg: \\r\\ntrace XxxService\\r\\ntrace XxxService xxxMethod\\r\\ntrace XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\n-        }\n-        String[] parts = message.split(\"\\\\s+\");\n-        String method;\n-        String times;\n-        // message like : XxxService , XxxService 10 , XxxService xxxMethod , XxxService xxxMethod 10\n-        if (StringUtils.isEmpty(service)) {\n-            service = parts.length > 0 ? parts[0] : null;\n-            method = parts.length > 1 ? parts[1] : null;\n-            times = parts.length > 2 ? parts[2] : \"1\";\n-        } else {  //message like : xxxMethod, xxxMethod 10\n-            method = parts.length > 0 ? parts[0] : null;\n-            times = parts.length > 1 ? parts[1] : \"1\";\n-        }\n-        if (StringUtils.isInteger(method)) {\n-            times = method;\n-            method = null;\n-        }\n-        if (!StringUtils.isInteger(times)) {\n-            return \"Illegal times \" + times + \", must be integer.\";\n-        }\n-        Invoker<?> invoker = null;\n-        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\n-            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\n-                    || service.equals(exporter.getInvoker().getInterface().getName())\n-                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\n-                invoker = exporter.getInvoker();\n-                break;\n-            }\n-        }\n-        if (invoker != null) {\n-            if (method != null && method.length() > 0) {\n-                boolean found = false;\n-                for (Method m : invoker.getInterface().getMethods()) {\n-                    if (m.getName().equals(method)) {\n-                        found = true;\n-                        break;\n-                    }\n-                }\n-                if (!found) {\n-                    return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\n-                }\n-            }\n-            TraceFilter.addTracer(invoker.getInterface(), method, channel, Integer.parseInt(times));\n-        } else {\n-            return \"No such service \" + service;\n-        }\n-        return null;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.legacy;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.filter.TraceFilter;\r\n+\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * TraceTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"[service] [method] [times]\", summary = \"Trace the service.\", detail = \"Trace the service.\")\r\n+public class TraceTelnetHandler implements TelnetHandler {\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        String service = (String) channel.getAttribute(ChangeTelnetHandler.SERVICE_KEY);\r\n+        if ((service == null || service.length() == 0)\r\n+                && (message == null || message.length() == 0)) {\r\n+            return \"Please input service name, eg: \\r\\ntrace XxxService\\r\\ntrace XxxService xxxMethod\\r\\ntrace XxxService xxxMethod 10\\r\\nor \\\"cd XxxService\\\" firstly.\";\r\n+        }\r\n+        String[] parts = message.split(\"\\\\s+\");\r\n+        String method;\r\n+        String times;\r\n+        // message like : XxxService , XxxService 10 , XxxService xxxMethod , XxxService xxxMethod 10\r\n+        if (StringUtils.isEmpty(service)) {\r\n+            service = parts.length > 0 ? parts[0] : null;\r\n+            method = parts.length > 1 ? parts[1] : null;\r\n+            times = parts.length > 2 ? parts[2] : \"1\";\r\n+        } else {  //message like : xxxMethod, xxxMethod 10\r\n+            method = parts.length > 0 ? parts[0] : null;\r\n+            times = parts.length > 1 ? parts[1] : \"1\";\r\n+        }\r\n+        if (StringUtils.isInteger(method)) {\r\n+            times = method;\r\n+            method = null;\r\n+        }\r\n+        if (!StringUtils.isInteger(times)) {\r\n+            return \"Illegal times \" + times + \", must be integer.\";\r\n+        }\r\n+        Invoker<?> invoker = null;\r\n+        for (Exporter<?> exporter : DubboProtocol.getDubboProtocol().getExporters()) {\r\n+            if (service.equals(exporter.getInvoker().getInterface().getSimpleName())\r\n+                    || service.equals(exporter.getInvoker().getInterface().getName())\r\n+                    || service.equals(exporter.getInvoker().getUrl().getPath())) {\r\n+                invoker = exporter.getInvoker();\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (method != null && method.length() > 0) {\r\n+                boolean found = false;\r\n+                for (Method m : invoker.getInterface().getMethods()) {\r\n+                    if (m.getName().equals(method)) {\r\n+                        found = true;\r\n+                        break;\r\n+                    }\r\n+                }\r\n+                if (!found) {\r\n+                    return \"No such method \" + method + \" in class \" + invoker.getInterface().getName();\r\n+                }\r\n+            }\r\n+            TraceFilter.addTracer(invoker.getInterface(), method, channel, Integer.parseInt(times));\r\n+        } else {\r\n+            return \"No such service \" + service;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/protocol/QosProtocolWrapper.java", "source2": "org/apache/dubbo/qos/protocol/QosProtocolWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,123 +1,123 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.qos.common.QosConstants;\n-import org.apache.dubbo.qos.server.Server;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.util.List;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\n-\n-\n-public class QosProtocolWrapper implements Protocol {\n-\n-    private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class);\n-\n-    private static AtomicBoolean hasStarted = new AtomicBoolean(false);\n-\n-    private Protocol protocol;\n-\n-    public QosProtocolWrapper(Protocol protocol) {\n-        if (protocol == null) {\n-            throw new IllegalArgumentException(\"protocol == null\");\n-        }\n-        this.protocol = protocol;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return protocol.getDefaultPort();\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\n-        if (UrlUtils.isRegistry(invoker.getUrl())) {\n-            startQosServer(invoker.getUrl());\n-            return protocol.export(invoker);\n-        }\n-        return protocol.export(invoker);\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\n-        if (UrlUtils.isRegistry(url)) {\n-            startQosServer(url);\n-            return protocol.refer(type, url);\n-        }\n-        return protocol.refer(type, url);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        protocol.destroy();\n-        stopServer();\n-    }\n-\n-    @Override\n-    public List<ProtocolServer> getServers() {\n-        return protocol.getServers();\n-    }\n-\n-    private void startQosServer(URL url) {\n-        try {\n-            if (!hasStarted.compareAndSet(false, true)) {\n-                return;\n-            }\n-\n-            boolean qosEnable = url.getParameter(QOS_ENABLE, true);\n-            if (!qosEnable) {\n-                logger.info(\"qos won't be started because it is disabled. \" +\n-                        \"Please check dubbo.application.qos.enable is configured either in system property, \" +\n-                        \"dubbo.properties or XML/spring-boot configuration.\");\n-                return;\n-            }\n-\n-            String host = url.getParameter(QOS_HOST);\n-            int port = url.getParameter(QOS_PORT, QosConstants.DEFAULT_PORT);\n-            boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP, \"false\"));\n-            Server server = Server.getInstance();\n-            server.setHost(host);\n-            server.setPort(port);\n-            server.setAcceptForeignIp(acceptForeignIp);\n-            server.start();\n-\n-        } catch (Throwable throwable) {\n-            logger.warn(\"Fail to start qos server: \", throwable);\n-        }\n-    }\n-\n-    /*package*/ void stopServer() {\n-        if (hasStarted.compareAndSet(true, false)) {\n-            Server server = Server.getInstance();\n-            server.stop();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.qos.common.QosConstants;\r\n+import org.apache.dubbo.qos.server.Server;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\r\n+\r\n+\r\n+public class QosProtocolWrapper implements Protocol {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(QosProtocolWrapper.class);\r\n+\r\n+    private static AtomicBoolean hasStarted = new AtomicBoolean(false);\r\n+\r\n+    private Protocol protocol;\r\n+\r\n+    public QosProtocolWrapper(Protocol protocol) {\r\n+        if (protocol == null) {\r\n+            throw new IllegalArgumentException(\"protocol == null\");\r\n+        }\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return protocol.getDefaultPort();\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\r\n+        if (UrlUtils.isRegistry(invoker.getUrl())) {\r\n+            startQosServer(invoker.getUrl());\r\n+            return protocol.export(invoker);\r\n+        }\r\n+        return protocol.export(invoker);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\r\n+        if (UrlUtils.isRegistry(url)) {\r\n+            startQosServer(url);\r\n+            return protocol.refer(type, url);\r\n+        }\r\n+        return protocol.refer(type, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        protocol.destroy();\r\n+        stopServer();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ProtocolServer> getServers() {\r\n+        return protocol.getServers();\r\n+    }\r\n+\r\n+    private void startQosServer(URL url) {\r\n+        try {\r\n+            if (!hasStarted.compareAndSet(false, true)) {\r\n+                return;\r\n+            }\r\n+\r\n+            boolean qosEnable = url.getParameter(QOS_ENABLE, true);\r\n+            if (!qosEnable) {\r\n+                logger.info(\"qos won't be started because it is disabled. \" +\r\n+                        \"Please check dubbo.application.qos.enable is configured either in system property, \" +\r\n+                        \"dubbo.properties or XML/spring-boot configuration.\");\r\n+                return;\r\n+            }\r\n+\r\n+            String host = url.getParameter(QOS_HOST);\r\n+            int port = url.getParameter(QOS_PORT, QosConstants.DEFAULT_PORT);\r\n+            boolean acceptForeignIp = Boolean.parseBoolean(url.getParameter(ACCEPT_FOREIGN_IP, \"false\"));\r\n+            Server server = Server.getInstance();\r\n+            server.setHost(host);\r\n+            server.setPort(port);\r\n+            server.setAcceptForeignIp(acceptForeignIp);\r\n+            server.start();\r\n+\r\n+        } catch (Throwable throwable) {\r\n+            logger.warn(\"Fail to start qos server: \", throwable);\r\n+        }\r\n+    }\r\n+\r\n+    /*package*/ void stopServer() {\r\n+        if (hasStarted.compareAndSet(true, false)) {\r\n+            Server server = Server.getInstance();\r\n+            server.stop();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/DubboLogo.java", "source2": "org/apache/dubbo/qos/server/DubboLogo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.server;\n-\n-public class DubboLogo {\n-    public static final String DUBBO =\n-                    \"   ___   __  __ ___   ___   ____     \" + System.lineSeparator() +\n-                    \"  / _ \\\\ / / / // _ ) / _ ) / __ \\\\  \" + System.lineSeparator() +\n-                    \" / // // /_/ // _  |/ _  |/ /_/ /    \" + System.lineSeparator() +\n-                    \"/____/ \\\\____//____//____/ \\\\____/   \" + System.lineSeparator();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.server;\r\n+\r\n+public class DubboLogo {\r\n+    public static final String DUBBO =\r\n+                    \"   ___   __  __ ___   ___   ____     \" + System.lineSeparator() +\r\n+                    \"  / _ \\\\ / / / // _ ) / _ ) / __ \\\\  \" + System.lineSeparator() +\r\n+                    \" / // // /_/ // _  |/ _  |/ /_/ /    \" + System.lineSeparator() +\r\n+                    \"/____/ \\\\____//____//____/ \\\\____/   \" + System.lineSeparator();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/Server.java", "source2": "org/apache/dubbo/qos/server/Server.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,156 +1,156 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.server;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.server.handler.QosProcessHandler;\n-\n-import io.netty.bootstrap.ServerBootstrap;\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelInitializer;\n-import io.netty.channel.ChannelOption;\n-import io.netty.channel.EventLoopGroup;\n-import io.netty.channel.nio.NioEventLoopGroup;\n-import io.netty.channel.socket.nio.NioServerSocketChannel;\n-import io.netty.util.concurrent.DefaultThreadFactory;\n-\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-/**\n- * A server serves for both telnet access and http access\n- * <ul>\n- * <li>static initialize server</li>\n- * <li>start server and bind port</li>\n- * <li>close server</li>\n- * </ul>\n- */\n-public class Server {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(Server.class);\n-    private static final Server INSTANCE = new Server();\n-\n-    public static final Server getInstance() {\n-        return INSTANCE;\n-    }\n-\n-    private String host;\n-\n-    private int port;\n-\n-    private boolean acceptForeignIp = true;\n-\n-    private EventLoopGroup boss;\n-\n-    private EventLoopGroup worker;\n-\n-    private Server() {\n-        this.welcome = DubboLogo.DUBBO;\n-    }\n-\n-    private String welcome;\n-\n-    private AtomicBoolean started = new AtomicBoolean();\n-\n-    /**\n-     * welcome message\n-     */\n-    public void setWelcome(String welcome) {\n-        this.welcome = welcome;\n-    }\n-\n-    public int getPort() {\n-        return port;\n-    }\n-\n-    /**\n-     * start server, bind port\n-     */\n-    public void start() throws Throwable {\n-        if (!started.compareAndSet(false, true)) {\n-            return;\n-        }\n-        boss = new NioEventLoopGroup(1, new DefaultThreadFactory(\"qos-boss\", true));\n-        worker = new NioEventLoopGroup(0, new DefaultThreadFactory(\"qos-worker\", true));\n-        ServerBootstrap serverBootstrap = new ServerBootstrap();\n-        serverBootstrap.group(boss, worker);\n-        serverBootstrap.channel(NioServerSocketChannel.class);\n-        serverBootstrap.option(ChannelOption.SO_REUSEADDR, true);\n-        serverBootstrap.childOption(ChannelOption.TCP_NODELAY, true);\n-        serverBootstrap.childHandler(new ChannelInitializer<Channel>() {\n-\n-            @Override\n-            protected void initChannel(Channel ch) throws Exception {\n-                ch.pipeline().addLast(new QosProcessHandler(welcome, acceptForeignIp));\n-            }\n-        });\n-        try {\n-            if (StringUtils.isBlank(host)) {\n-                serverBootstrap.bind(port).sync();\n-            } else {\n-                serverBootstrap.bind(host, port).sync();\n-            }\n-\n-            logger.info(\"qos-server bind localhost:\" + port);\n-        } catch (Throwable throwable) {\n-            logger.error(\"qos-server can not bind localhost:\" + port, throwable);\n-            throw throwable;\n-        }\n-    }\n-\n-    /**\n-     * close server\n-     */\n-    public void stop() {\n-        logger.info(\"qos-server stopped.\");\n-        if (boss != null) {\n-            boss.shutdownGracefully();\n-        }\n-        if (worker != null) {\n-            worker.shutdownGracefully();\n-        }\n-    }\n-\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    public void setPort(int port) {\n-        this.port = port;\n-    }\n-\n-    public boolean isAcceptForeignIp() {\n-        return acceptForeignIp;\n-    }\n-\n-    public void setAcceptForeignIp(boolean acceptForeignIp) {\n-        this.acceptForeignIp = acceptForeignIp;\n-    }\n-\n-    public String getWelcome() {\n-        return welcome;\n-    }\n-\n-    public boolean isStarted() {\n-        return started.get();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.server;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.server.handler.QosProcessHandler;\r\n+\r\n+import io.netty.bootstrap.ServerBootstrap;\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelInitializer;\r\n+import io.netty.channel.ChannelOption;\r\n+import io.netty.channel.EventLoopGroup;\r\n+import io.netty.channel.nio.NioEventLoopGroup;\r\n+import io.netty.channel.socket.nio.NioServerSocketChannel;\r\n+import io.netty.util.concurrent.DefaultThreadFactory;\r\n+\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+/**\r\n+ * A server serves for both telnet access and http access\r\n+ * <ul>\r\n+ * <li>static initialize server</li>\r\n+ * <li>start server and bind port</li>\r\n+ * <li>close server</li>\r\n+ * </ul>\r\n+ */\r\n+public class Server {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(Server.class);\r\n+    private static final Server INSTANCE = new Server();\r\n+\r\n+    public static final Server getInstance() {\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    private String host;\r\n+\r\n+    private int port;\r\n+\r\n+    private boolean acceptForeignIp = true;\r\n+\r\n+    private EventLoopGroup boss;\r\n+\r\n+    private EventLoopGroup worker;\r\n+\r\n+    private Server() {\r\n+        this.welcome = DubboLogo.DUBBO;\r\n+    }\r\n+\r\n+    private String welcome;\r\n+\r\n+    private AtomicBoolean started = new AtomicBoolean();\r\n+\r\n+    /**\r\n+     * welcome message\r\n+     */\r\n+    public void setWelcome(String welcome) {\r\n+        this.welcome = welcome;\r\n+    }\r\n+\r\n+    public int getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    /**\r\n+     * start server, bind port\r\n+     */\r\n+    public void start() throws Throwable {\r\n+        if (!started.compareAndSet(false, true)) {\r\n+            return;\r\n+        }\r\n+        boss = new NioEventLoopGroup(1, new DefaultThreadFactory(\"qos-boss\", true));\r\n+        worker = new NioEventLoopGroup(0, new DefaultThreadFactory(\"qos-worker\", true));\r\n+        ServerBootstrap serverBootstrap = new ServerBootstrap();\r\n+        serverBootstrap.group(boss, worker);\r\n+        serverBootstrap.channel(NioServerSocketChannel.class);\r\n+        serverBootstrap.option(ChannelOption.SO_REUSEADDR, true);\r\n+        serverBootstrap.childOption(ChannelOption.TCP_NODELAY, true);\r\n+        serverBootstrap.childHandler(new ChannelInitializer<Channel>() {\r\n+\r\n+            @Override\r\n+            protected void initChannel(Channel ch) throws Exception {\r\n+                ch.pipeline().addLast(new QosProcessHandler(welcome, acceptForeignIp));\r\n+            }\r\n+        });\r\n+        try {\r\n+            if (StringUtils.isBlank(host)) {\r\n+                serverBootstrap.bind(port).sync();\r\n+            } else {\r\n+                serverBootstrap.bind(host, port).sync();\r\n+            }\r\n+\r\n+            logger.info(\"qos-server bind localhost:\" + port);\r\n+        } catch (Throwable throwable) {\r\n+            logger.error(\"qos-server can not bind localhost:\" + port, throwable);\r\n+            throw throwable;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * close server\r\n+     */\r\n+    public void stop() {\r\n+        logger.info(\"qos-server stopped.\");\r\n+        if (boss != null) {\r\n+            boss.shutdownGracefully();\r\n+        }\r\n+        if (worker != null) {\r\n+            worker.shutdownGracefully();\r\n+        }\r\n+    }\r\n+\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    public void setPort(int port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    public boolean isAcceptForeignIp() {\r\n+        return acceptForeignIp;\r\n+    }\r\n+\r\n+    public void setAcceptForeignIp(boolean acceptForeignIp) {\r\n+        this.acceptForeignIp = acceptForeignIp;\r\n+    }\r\n+\r\n+    public String getWelcome() {\r\n+        return welcome;\r\n+    }\r\n+\r\n+    public boolean isStarted() {\r\n+        return started.get();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/QosProcessHandler.java", "source2": "org/apache/dubbo/qos/server/handler/QosProcessHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,111 +1,111 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.server.handler;\n-\n-import io.netty.buffer.ByteBuf;\n-import io.netty.buffer.Unpooled;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.ChannelPipeline;\n-import io.netty.handler.codec.ByteToMessageDecoder;\n-import io.netty.handler.codec.LineBasedFrameDecoder;\n-import io.netty.handler.codec.http.HttpObjectAggregator;\n-import io.netty.handler.codec.http.HttpServerCodec;\n-import io.netty.handler.codec.string.StringDecoder;\n-import io.netty.handler.codec.string.StringEncoder;\n-import io.netty.handler.timeout.IdleStateEvent;\n-import io.netty.handler.timeout.IdleStateHandler;\n-import io.netty.util.CharsetUtil;\n-import io.netty.util.concurrent.ScheduledFuture;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-\n-import java.util.List;\n-import java.util.concurrent.TimeUnit;\n-\n-public class QosProcessHandler extends ByteToMessageDecoder {\n-\n-    private ScheduledFuture<?> welcomeFuture;\n-\n-    private String welcome;\n-    // true means to accept foreign IP\n-    private boolean acceptForeignIp;\n-\n-    public static final String PROMPT = \"dubbo>\";\n-\n-    public QosProcessHandler(String welcome, boolean acceptForeignIp) {\n-        this.welcome = welcome;\n-        this.acceptForeignIp = acceptForeignIp;\n-    }\n-\n-    @Override\n-    public void channelActive(final ChannelHandlerContext ctx) throws Exception {\n-        welcomeFuture = ctx.executor().schedule(new Runnable() {\n-\n-            @Override\n-            public void run() {\n-                if (welcome != null) {\n-                    ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));\n-                    ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));\n-                }\n-            }\n-\n-        }, 500, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {\n-        if (in.readableBytes() < 1) {\n-            return;\n-        }\n-\n-        // read one byte to guess protocol\n-        final int magic = in.getByte(in.readerIndex());\n-\n-        ChannelPipeline p = ctx.pipeline();\n-        p.addLast(new LocalHostPermitHandler(acceptForeignIp));\n-        if (isHttp(magic)) {\n-            // no welcome output for http protocol\n-            if (welcomeFuture != null && welcomeFuture.isCancellable()) {\n-                welcomeFuture.cancel(false);\n-            }\n-            p.addLast(new HttpServerCodec());\n-            p.addLast(new HttpObjectAggregator(1048576));\n-            p.addLast(new HttpProcessHandler());\n-            p.remove(this);\n-        } else {\n-            p.addLast(new LineBasedFrameDecoder(2048));\n-            p.addLast(new StringDecoder(CharsetUtil.UTF_8));\n-            p.addLast(new StringEncoder(CharsetUtil.UTF_8));\n-            p.addLast(new IdleStateHandler(0, 0, 5 * 60));\n-            p.addLast(new TelnetIdleEventHandler());\n-            p.addLast(new TelnetProcessHandler());\n-            p.remove(this);\n-        }\n-    }\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        if (evt instanceof IdleStateEvent) {\n-            ExecutorUtil.cancelScheduledFuture(welcomeFuture);\n-            ctx.close();\n-        }\n-    }\n-\n-    // G for GET, and P for POST\n-    private static boolean isHttp(int magic) {\n-        return magic == 'G' || magic == 'P';\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.server.handler;\r\n+\r\n+import io.netty.buffer.ByteBuf;\r\n+import io.netty.buffer.Unpooled;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.ChannelPipeline;\r\n+import io.netty.handler.codec.ByteToMessageDecoder;\r\n+import io.netty.handler.codec.LineBasedFrameDecoder;\r\n+import io.netty.handler.codec.http.HttpObjectAggregator;\r\n+import io.netty.handler.codec.http.HttpServerCodec;\r\n+import io.netty.handler.codec.string.StringDecoder;\r\n+import io.netty.handler.codec.string.StringEncoder;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+import io.netty.handler.timeout.IdleStateHandler;\r\n+import io.netty.util.CharsetUtil;\r\n+import io.netty.util.concurrent.ScheduledFuture;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+public class QosProcessHandler extends ByteToMessageDecoder {\r\n+\r\n+    private ScheduledFuture<?> welcomeFuture;\r\n+\r\n+    private String welcome;\r\n+    // true means to accept foreign IP\r\n+    private boolean acceptForeignIp;\r\n+\r\n+    public static final String PROMPT = \"dubbo>\";\r\n+\r\n+    public QosProcessHandler(String welcome, boolean acceptForeignIp) {\r\n+        this.welcome = welcome;\r\n+        this.acceptForeignIp = acceptForeignIp;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelActive(final ChannelHandlerContext ctx) throws Exception {\r\n+        welcomeFuture = ctx.executor().schedule(new Runnable() {\r\n+\r\n+            @Override\r\n+            public void run() {\r\n+                if (welcome != null) {\r\n+                    ctx.write(Unpooled.wrappedBuffer(welcome.getBytes()));\r\n+                    ctx.writeAndFlush(Unpooled.wrappedBuffer(PROMPT.getBytes()));\r\n+                }\r\n+            }\r\n+\r\n+        }, 500, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void decode(ChannelHandlerContext ctx, ByteBuf in, List<Object> out) throws Exception {\r\n+        if (in.readableBytes() < 1) {\r\n+            return;\r\n+        }\r\n+\r\n+        // read one byte to guess protocol\r\n+        final int magic = in.getByte(in.readerIndex());\r\n+\r\n+        ChannelPipeline p = ctx.pipeline();\r\n+        p.addLast(new LocalHostPermitHandler(acceptForeignIp));\r\n+        if (isHttp(magic)) {\r\n+            // no welcome output for http protocol\r\n+            if (welcomeFuture != null && welcomeFuture.isCancellable()) {\r\n+                welcomeFuture.cancel(false);\r\n+            }\r\n+            p.addLast(new HttpServerCodec());\r\n+            p.addLast(new HttpObjectAggregator(1048576));\r\n+            p.addLast(new HttpProcessHandler());\r\n+            p.remove(this);\r\n+        } else {\r\n+            p.addLast(new LineBasedFrameDecoder(2048));\r\n+            p.addLast(new StringDecoder(CharsetUtil.UTF_8));\r\n+            p.addLast(new StringEncoder(CharsetUtil.UTF_8));\r\n+            p.addLast(new IdleStateHandler(0, 0, 5 * 60));\r\n+            p.addLast(new TelnetIdleEventHandler());\r\n+            p.addLast(new TelnetProcessHandler());\r\n+            p.remove(this);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            ExecutorUtil.cancelScheduledFuture(welcomeFuture);\r\n+            ctx.close();\r\n+        }\r\n+    }\r\n+\r\n+    // G for GET, and P for POST\r\n+    private static boolean isHttp(int magic) {\r\n+        return magic == 'G' || magic == 'P';\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java", "source2": "org/apache/dubbo/qos/server/handler/TelnetIdleEventHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.server.handler;\n-\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelDuplexHandler;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.handler.timeout.IdleStateEvent;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-public class TelnetIdleEventHandler extends ChannelDuplexHandler {\n-    private static final Logger log = LoggerFactory.getLogger(TelnetIdleEventHandler.class);\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        // server will close channel when server don't receive any request from client util timeout.\n-        if (evt instanceof IdleStateEvent) {\n-            Channel channel = ctx.channel();\n-            log.info(\"IdleStateEvent triggered, close channel \" + channel);\n-            channel.close();\n-        } else {\n-            super.userEventTriggered(ctx, evt);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.server.handler;\r\n+\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelDuplexHandler;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+public class TelnetIdleEventHandler extends ChannelDuplexHandler {\r\n+    private static final Logger log = LoggerFactory.getLogger(TelnetIdleEventHandler.class);\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        // server will close channel when server don't receive any request from client util timeout.\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            Channel channel = ctx.channel();\r\n+            log.info(\"IdleStateEvent triggered, close channel \" + channel);\r\n+            channel.close();\r\n+        } else {\r\n+            super.userEventTriggered(ctx, evt);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java", "source2": "org/apache/dubbo/qos/server/handler/TelnetProcessHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,73 +1,73 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.server.handler;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.qos.command.CommandContext;\n-import org.apache.dubbo.qos.command.CommandExecutor;\n-import org.apache.dubbo.qos.command.DefaultCommandExecutor;\n-import org.apache.dubbo.qos.command.NoSuchCommandException;\n-import org.apache.dubbo.qos.command.decoder.TelnetCommandDecoder;\n-import org.apache.dubbo.qos.common.QosConstants;\n-\n-import io.netty.channel.ChannelFutureListener;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.SimpleChannelInboundHandler;\n-\n-/**\n- * Telnet process handler\n- */\n-public class TelnetProcessHandler extends SimpleChannelInboundHandler<String> {\n-\n-    private static final Logger log = LoggerFactory.getLogger(TelnetProcessHandler.class);\n-    private static CommandExecutor commandExecutor = new DefaultCommandExecutor();\n-\n-    @Override\n-    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {\n-\n-        if (StringUtils.isBlank(msg)) {\n-            ctx.writeAndFlush(QosProcessHandler.PROMPT);\n-        } else {\n-            CommandContext commandContext = TelnetCommandDecoder.decode(msg);\n-            commandContext.setRemote(ctx.channel());\n-\n-            try {\n-                String result = commandExecutor.execute(commandContext);\n-                if (StringUtils.isEquals(QosConstants.CLOSE, result)) {\n-                    ctx.writeAndFlush(getByeLabel()).addListener(ChannelFutureListener.CLOSE);\n-                } else {\n-                    ctx.writeAndFlush(result + QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                }\n-            } catch (NoSuchCommandException ex) {\n-                ctx.writeAndFlush(msg + \" :no such command\");\n-                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                log.error(\"can not found command \" + commandContext, ex);\n-            } catch (Exception ex) {\n-                ctx.writeAndFlush(msg + \" :fail to execute commandContext by \" + ex.getMessage());\n-                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\n-                log.error(\"execute commandContext got exception \" + commandContext, ex);\n-            }\n-        }\n-    }\n-\n-    private String getByeLabel() {\n-        return \"BYE!\\n\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.server.handler;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.qos.command.CommandContext;\r\n+import org.apache.dubbo.qos.command.CommandExecutor;\r\n+import org.apache.dubbo.qos.command.DefaultCommandExecutor;\r\n+import org.apache.dubbo.qos.command.NoSuchCommandException;\r\n+import org.apache.dubbo.qos.command.decoder.TelnetCommandDecoder;\r\n+import org.apache.dubbo.qos.common.QosConstants;\r\n+\r\n+import io.netty.channel.ChannelFutureListener;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.SimpleChannelInboundHandler;\r\n+\r\n+/**\r\n+ * Telnet process handler\r\n+ */\r\n+public class TelnetProcessHandler extends SimpleChannelInboundHandler<String> {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(TelnetProcessHandler.class);\r\n+    private static CommandExecutor commandExecutor = new DefaultCommandExecutor();\r\n+\r\n+    @Override\r\n+    protected void channelRead0(ChannelHandlerContext ctx, String msg) throws Exception {\r\n+\r\n+        if (StringUtils.isBlank(msg)) {\r\n+            ctx.writeAndFlush(QosProcessHandler.PROMPT);\r\n+        } else {\r\n+            CommandContext commandContext = TelnetCommandDecoder.decode(msg);\r\n+            commandContext.setRemote(ctx.channel());\r\n+\r\n+            try {\r\n+                String result = commandExecutor.execute(commandContext);\r\n+                if (StringUtils.isEquals(QosConstants.CLOSE, result)) {\r\n+                    ctx.writeAndFlush(getByeLabel()).addListener(ChannelFutureListener.CLOSE);\r\n+                } else {\r\n+                    ctx.writeAndFlush(result + QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                }\r\n+            } catch (NoSuchCommandException ex) {\r\n+                ctx.writeAndFlush(msg + \" :no such command\");\r\n+                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                log.error(\"can not found command \" + commandContext, ex);\r\n+            } catch (Exception ex) {\r\n+                ctx.writeAndFlush(msg + \" :fail to execute commandContext by \" + ex.getMessage());\r\n+                ctx.writeAndFlush(QosConstants.BR_STR + QosProcessHandler.PROMPT);\r\n+                log.error(\"execute commandContext got exception \" + commandContext, ex);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private String getByeLabel() {\r\n+        return \"BYE!\\n\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/textui/TTable.java", "source2": "org/apache/dubbo/qos/textui/TTable.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,566 +1,566 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.textui;\n-\n-import java.io.StringReader;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Scanner;\n-\n-import static java.lang.Math.abs;\n-import static java.lang.Math.max;\n-import static java.lang.String.format;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.length;\n-import static org.apache.dubbo.common.utils.StringUtils.repeat;\n-import static org.apache.dubbo.common.utils.StringUtils.replace;\n-\n-/**\n- * Table\n- */\n-public class TTable implements TComponent {\n-\n-    // column definition\n-    private final ColumnDefine[] columnDefineArray;\n-\n-    // border\n-    private final Border border = new Border();\n-\n-    // padding\n-    private int padding;\n-\n-    public TTable(ColumnDefine[] columnDefineArray) {\n-        this.columnDefineArray = null == columnDefineArray\n-                ? new ColumnDefine[0]\n-                : columnDefineArray;\n-    }\n-\n-    public TTable(int columnNum) {\n-        this.columnDefineArray = new ColumnDefine[columnNum];\n-        for (int index = 0; index < this.columnDefineArray.length; index++) {\n-            columnDefineArray[index] = new ColumnDefine();\n-        }\n-    }\n-\n-\n-    @Override\n-    public String rendering() {\n-        final StringBuilder tableSB = new StringBuilder();\n-\n-        // process width cache\n-        final int[] widthCacheArray = new int[getColumnCount()];\n-        for (int index = 0; index < widthCacheArray.length; index++) {\n-            widthCacheArray[index] = abs(columnDefineArray[index].getWidth());\n-        }\n-\n-        final int rowCount = getRowCount();\n-        for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {\n-\n-            final boolean isFirstRow = rowIndex == 0;\n-            final boolean isLastRow = rowIndex == rowCount - 1;\n-\n-            // print first separation line\n-            if (isFirstRow\n-                    && border.has(Border.BORDER_OUTER_TOP)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-            // print inner separation lines\n-            if (!isFirstRow\n-                    && border.has(Border.BORDER_INNER_H)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-            // draw one line\n-            tableSB.append(drawRow(widthCacheArray, rowIndex));\n-\n-\n-            // print ending separation line\n-            if (isLastRow\n-                    && border.has(Border.BORDER_OUTER_BOTTOM)) {\n-                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\n-            }\n-\n-        }\n-\n-\n-        return tableSB.toString();\n-    }\n-\n-\n-    private String drawRow(int[] widthCacheArray, int rowIndex) {\n-\n-        final StringBuilder rowSB = new StringBuilder();\n-        final Scanner[] scannerArray = new Scanner[getColumnCount()];\n-        try {\n-            boolean hasNextLine;\n-            do {\n-\n-                hasNextLine = false;\n-                final StringBuilder segmentSB = new StringBuilder();\n-\n-                for (int colIndex = 0; colIndex < getColumnCount(); colIndex++) {\n-\n-\n-                    final int width = widthCacheArray[colIndex];\n-                    final boolean isFirstColOfRow = colIndex == 0;\n-                    final boolean isLastColOfRow = colIndex == widthCacheArray.length - 1;\n-\n-                    final String borderChar;\n-                    if (isFirstColOfRow\n-                            && border.has(Border.BORDER_OUTER_LEFT)) {\n-                        borderChar = \"|\";\n-                    } else if (!isFirstColOfRow\n-                            && border.has(Border.BORDER_INNER_V)) {\n-                        borderChar = \"|\";\n-                    } else {\n-                        borderChar = EMPTY_STRING;\n-                    }\n-\n-\n-                    if (null == scannerArray[colIndex]) {\n-                        scannerArray[colIndex] = new Scanner(\n-                                new StringReader(wrap(getData(rowIndex, columnDefineArray[colIndex]), width)));\n-                    }\n-                    final Scanner scanner = scannerArray[colIndex];\n-\n-                    final String data;\n-                    if (scanner.hasNextLine()) {\n-                        data = scanner.nextLine();\n-                        hasNextLine = true;\n-                    } else {\n-                        data = EMPTY_STRING;\n-                    }\n-\n-                    if (width > 0) {\n-                        final ColumnDefine columnDefine = columnDefineArray[colIndex];\n-                        final String dataFormat = getDataFormat(columnDefine, width, data);\n-                        final String paddingChar = repeat(\" \", padding);\n-                        segmentSB.append(format(borderChar + paddingChar + dataFormat + paddingChar, data));\n-                    }\n-\n-                    if (isLastColOfRow) {\n-                        if (border.has(Border.BORDER_OUTER_RIGHT)) {\n-                            segmentSB.append(\"|\");\n-                        }\n-                        segmentSB.append(System.lineSeparator());\n-                    }\n-\n-                }\n-\n-                if (hasNextLine) {\n-                    rowSB.append(segmentSB);\n-                }\n-\n-            } while (hasNextLine);\n-\n-            return rowSB.toString();\n-        } finally {\n-            for (Scanner scanner : scannerArray) {\n-                if (null != scanner) {\n-                    scanner.close();\n-                }\n-            }\n-        }\n-\n-    }\n-\n-    private String getData(int rowIndex, ColumnDefine columnDefine) {\n-        return columnDefine.getRowCount() <= rowIndex\n-                ? EMPTY_STRING\n-                : columnDefine.rows.get(rowIndex);\n-    }\n-\n-    private String getDataFormat(ColumnDefine columnDefine, int width, String data) {\n-        switch (columnDefine.align) {\n-            case MIDDLE: {\n-                final int length = length(data);\n-                final int diff = width - length;\n-                final int left = diff / 2;\n-                return repeat(\" \", diff - left) + \"%s\" + repeat(\" \", left);\n-            }\n-            case RIGHT: {\n-                return \"%\" + width + \"s\";\n-            }\n-            case LEFT:\n-            default: {\n-                return \"%-\" + width + \"s\";\n-            }\n-        }\n-    }\n-\n-    /**\n-     * get row count\n-     */\n-    private int getRowCount() {\n-        int rowCount = 0;\n-        for (ColumnDefine columnDefine : columnDefineArray) {\n-            rowCount = max(rowCount, columnDefine.getRowCount());\n-        }\n-        return rowCount;\n-    }\n-\n-    /**\n-     * position to last column\n-     */\n-    private int indexLastCol(final int[] widthCacheArray) {\n-        for (int colIndex = widthCacheArray.length - 1; colIndex >= 0; colIndex--) {\n-            final int width = widthCacheArray[colIndex];\n-            if (width <= 0) {\n-                continue;\n-            }\n-            return colIndex;\n-        }\n-        return 0;\n-    }\n-\n-    /**\n-     * draw separation line\n-     */\n-    private String drawSeparationLine(final int[] widthCacheArray) {\n-        final StringBuilder separationLineSB = new StringBuilder();\n-\n-        final int lastCol = indexLastCol(widthCacheArray);\n-        final int colCount = widthCacheArray.length;\n-        for (int colIndex = 0; colIndex < colCount; colIndex++) {\n-            final int width = widthCacheArray[colIndex];\n-            if (width <= 0) {\n-                continue;\n-            }\n-\n-            final boolean isFirstCol = colIndex == 0;\n-            final boolean isLastCol = colIndex == lastCol;\n-\n-            if (isFirstCol\n-                    && border.has(Border.BORDER_OUTER_LEFT)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-            if (!isFirstCol\n-                    && border.has(Border.BORDER_INNER_V)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-            separationLineSB.append(repeat(\"-\", width + 2 * padding));\n-\n-            if (isLastCol\n-                    && border.has(Border.BORDER_OUTER_RIGHT)) {\n-                separationLineSB.append(\"+\");\n-            }\n-\n-        }\n-        return separationLineSB.toString();\n-    }\n-\n-    /**\n-     * Add a row\n-     */\n-    public TTable addRow(Object... columnDataArray) {\n-\n-        if (null != columnDataArray) {\n-            for (int index = 0; index < columnDefineArray.length; index++) {\n-                final ColumnDefine columnDefine = columnDefineArray[index];\n-                if (index < columnDataArray.length\n-                        && null != columnDataArray[index]) {\n-                    columnDefine.rows.add(replaceTab(columnDataArray[index].toString()));\n-                } else {\n-                    columnDefine.rows.add(EMPTY_STRING);\n-                }\n-            }\n-        }\n-\n-        return this;\n-    }\n-\n-\n-    /**\n-     * alignment\n-     */\n-    public enum Align {\n-\n-        /**\n-         * left-alignment\n-         */\n-        LEFT,\n-\n-        /**\n-         * right-alignment\n-         */\n-        RIGHT,\n-\n-        /**\n-         * middle-alignment\n-         */\n-        MIDDLE\n-    }\n-\n-    /**\n-     * column definition\n-     */\n-    public static class ColumnDefine {\n-\n-        // column width\n-        private final int width;\n-\n-        // whether to auto resize\n-        private final boolean isAutoResize;\n-\n-        // alignment\n-        private final Align align;\n-\n-        // data rows\n-        private final List<String> rows = new ArrayList<String>();\n-\n-        public ColumnDefine(int width, boolean isAutoResize, Align align) {\n-            this.width = width;\n-            this.isAutoResize = isAutoResize;\n-            this.align = align;\n-        }\n-\n-        public ColumnDefine(Align align) {\n-            this(0, true, align);\n-        }\n-\n-        public ColumnDefine(int width) {\n-            this(width, false, Align.LEFT);\n-        }\n-\n-        public ColumnDefine(int width, Align align) {\n-            this(width, false, align);\n-        }\n-\n-        public ColumnDefine() {\n-            this(Align.LEFT);\n-        }\n-\n-        /**\n-         * get current width\n-         *\n-         * @return width\n-         */\n-        public int getWidth() {\n-\n-            // if not auto resize, return preset width\n-            if (!isAutoResize) {\n-                return width;\n-            }\n-\n-            // if it's auto resize, then calculate the possible max width\n-            int maxWidth = 0;\n-            for (String data : rows) {\n-                maxWidth = max(width(data), maxWidth);\n-            }\n-\n-            return maxWidth;\n-        }\n-\n-        /**\n-         * get rows for the current column\n-         *\n-         * @return current column's rows\n-         */\n-        public int getRowCount() {\n-            return rows.size();\n-        }\n-\n-    }\n-\n-    /**\n-     * set padding\n-     *\n-     * @param padding padding\n-     */\n-    public TTable padding(int padding) {\n-        this.padding = padding;\n-        return this;\n-    }\n-\n-    /**\n-     * get column count\n-     *\n-     * @return column count\n-     */\n-    public int getColumnCount() {\n-        return columnDefineArray.length;\n-    }\n-\n-\n-    /**\n-     * replace tab to four spaces\n-     *\n-     * @param string the original string\n-     * @return the replaced string\n-     */\n-    private static String replaceTab(String string) {\n-        return replace(string, \"\\t\", \"    \");\n-    }\n-\n-    /**\n-     * visible width for the given string.\n-     *\n-     * for example: \"abc\\n1234\"'s width is 4.\n-     *\n-     * @param string the given string\n-     * @return visible width\n-     */\n-    private static int width(String string) {\n-        int maxWidth = 0;\n-        try (Scanner scanner = new Scanner(new StringReader(string))) {\n-            while (scanner.hasNextLine()) {\n-                maxWidth = max(length(scanner.nextLine()), maxWidth);\n-            }\n-        }\n-        return maxWidth;\n-    }\n-\n-    /**\n-     * get border\n-     *\n-     * @return table border\n-     */\n-    public Border getBorder() {\n-        return border;\n-    }\n-\n-    /**\n-     * border style\n-     */\n-    public class Border {\n-\n-        private int borders = BORDER_OUTER | BORDER_INNER;\n-\n-        /**\n-         * border outer top\n-         */\n-        public static final int BORDER_OUTER_TOP = 1 << 0;\n-\n-        /**\n-         * border outer right\n-         */\n-        public static final int BORDER_OUTER_RIGHT = 1 << 1;\n-\n-        /**\n-         * border outer bottom\n-         */\n-        public static final int BORDER_OUTER_BOTTOM = 1 << 2;\n-\n-        /**\n-         * border outer left\n-         */\n-        public static final int BORDER_OUTER_LEFT = 1 << 3;\n-\n-        /**\n-         * inner border: horizon\n-         */\n-        public static final int BORDER_INNER_H = 1 << 4;\n-\n-        /**\n-         * inner border: vertical\n-         */\n-        public static final int BORDER_INNER_V = 1 << 5;\n-\n-        /**\n-         * outer border\n-         */\n-        public static final int BORDER_OUTER = BORDER_OUTER_TOP | BORDER_OUTER_BOTTOM | BORDER_OUTER_LEFT | BORDER_OUTER_RIGHT;\n-\n-        /**\n-         * inner border\n-         */\n-        public static final int BORDER_INNER = BORDER_INNER_H | BORDER_INNER_V;\n-\n-        /**\n-         * no border\n-         */\n-        public static final int BORDER_NON = 0;\n-\n-        /**\n-         * whether has one of the specified border styles\n-         *\n-         * @param borderArray border styles\n-         * @return whether has one of the specified border styles\n-         */\n-        public boolean has(int... borderArray) {\n-            if (null == borderArray) {\n-                return false;\n-            }\n-            for (int b : borderArray) {\n-                if ((this.borders & b) == b) {\n-                    return true;\n-                }\n-            }\n-            return false;\n-        }\n-\n-        /**\n-         * get border style\n-         *\n-         * @return border style\n-         */\n-        public int get() {\n-            return borders;\n-        }\n-\n-        /**\n-         * set border style\n-         *\n-         * @param border border style\n-         * @return this\n-         */\n-        public Border set(int border) {\n-            this.borders = border;\n-            return this;\n-        }\n-\n-        public Border add(int border) {\n-            return set(get() | border);\n-        }\n-\n-        public Border remove(int border) {\n-            return set(get() ^ border);\n-        }\n-\n-    }\n-\n-\n-    public static String wrap(String string, int width) {\n-        final StringBuilder sb = new StringBuilder();\n-        final char[] buffer = string.toCharArray();\n-        int count = 0;\n-        for (char c : buffer) {\n-\n-            if (count == width) {\n-                count = 0;\n-                sb.append('\\n');\n-                if (c == '\\n') {\n-                    continue;\n-                }\n-            }\n-\n-            if (c == '\\n') {\n-                count = 0;\n-            } else {\n-                count++;\n-            }\n-\n-            sb.append(c);\n-\n-        }\n-        return sb.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.textui;\r\n+\r\n+import java.io.StringReader;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Scanner;\r\n+\r\n+import static java.lang.Math.abs;\r\n+import static java.lang.Math.max;\r\n+import static java.lang.String.format;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.length;\r\n+import static org.apache.dubbo.common.utils.StringUtils.repeat;\r\n+import static org.apache.dubbo.common.utils.StringUtils.replace;\r\n+\r\n+/**\r\n+ * Table\r\n+ */\r\n+public class TTable implements TComponent {\r\n+\r\n+    // column definition\r\n+    private final ColumnDefine[] columnDefineArray;\r\n+\r\n+    // border\r\n+    private final Border border = new Border();\r\n+\r\n+    // padding\r\n+    private int padding;\r\n+\r\n+    public TTable(ColumnDefine[] columnDefineArray) {\r\n+        this.columnDefineArray = null == columnDefineArray\r\n+                ? new ColumnDefine[0]\r\n+                : columnDefineArray;\r\n+    }\r\n+\r\n+    public TTable(int columnNum) {\r\n+        this.columnDefineArray = new ColumnDefine[columnNum];\r\n+        for (int index = 0; index < this.columnDefineArray.length; index++) {\r\n+            columnDefineArray[index] = new ColumnDefine();\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public String rendering() {\r\n+        final StringBuilder tableSB = new StringBuilder();\r\n+\r\n+        // process width cache\r\n+        final int[] widthCacheArray = new int[getColumnCount()];\r\n+        for (int index = 0; index < widthCacheArray.length; index++) {\r\n+            widthCacheArray[index] = abs(columnDefineArray[index].getWidth());\r\n+        }\r\n+\r\n+        final int rowCount = getRowCount();\r\n+        for (int rowIndex = 0; rowIndex < rowCount; rowIndex++) {\r\n+\r\n+            final boolean isFirstRow = rowIndex == 0;\r\n+            final boolean isLastRow = rowIndex == rowCount - 1;\r\n+\r\n+            // print first separation line\r\n+            if (isFirstRow\r\n+                    && border.has(Border.BORDER_OUTER_TOP)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+            // print inner separation lines\r\n+            if (!isFirstRow\r\n+                    && border.has(Border.BORDER_INNER_H)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+            // draw one line\r\n+            tableSB.append(drawRow(widthCacheArray, rowIndex));\r\n+\r\n+\r\n+            // print ending separation line\r\n+            if (isLastRow\r\n+                    && border.has(Border.BORDER_OUTER_BOTTOM)) {\r\n+                tableSB.append(drawSeparationLine(widthCacheArray)).append(System.lineSeparator());\r\n+            }\r\n+\r\n+        }\r\n+\r\n+\r\n+        return tableSB.toString();\r\n+    }\r\n+\r\n+\r\n+    private String drawRow(int[] widthCacheArray, int rowIndex) {\r\n+\r\n+        final StringBuilder rowSB = new StringBuilder();\r\n+        final Scanner[] scannerArray = new Scanner[getColumnCount()];\r\n+        try {\r\n+            boolean hasNextLine;\r\n+            do {\r\n+\r\n+                hasNextLine = false;\r\n+                final StringBuilder segmentSB = new StringBuilder();\r\n+\r\n+                for (int colIndex = 0; colIndex < getColumnCount(); colIndex++) {\r\n+\r\n+\r\n+                    final int width = widthCacheArray[colIndex];\r\n+                    final boolean isFirstColOfRow = colIndex == 0;\r\n+                    final boolean isLastColOfRow = colIndex == widthCacheArray.length - 1;\r\n+\r\n+                    final String borderChar;\r\n+                    if (isFirstColOfRow\r\n+                            && border.has(Border.BORDER_OUTER_LEFT)) {\r\n+                        borderChar = \"|\";\r\n+                    } else if (!isFirstColOfRow\r\n+                            && border.has(Border.BORDER_INNER_V)) {\r\n+                        borderChar = \"|\";\r\n+                    } else {\r\n+                        borderChar = EMPTY_STRING;\r\n+                    }\r\n+\r\n+\r\n+                    if (null == scannerArray[colIndex]) {\r\n+                        scannerArray[colIndex] = new Scanner(\r\n+                                new StringReader(wrap(getData(rowIndex, columnDefineArray[colIndex]), width)));\r\n+                    }\r\n+                    final Scanner scanner = scannerArray[colIndex];\r\n+\r\n+                    final String data;\r\n+                    if (scanner.hasNextLine()) {\r\n+                        data = scanner.nextLine();\r\n+                        hasNextLine = true;\r\n+                    } else {\r\n+                        data = EMPTY_STRING;\r\n+                    }\r\n+\r\n+                    if (width > 0) {\r\n+                        final ColumnDefine columnDefine = columnDefineArray[colIndex];\r\n+                        final String dataFormat = getDataFormat(columnDefine, width, data);\r\n+                        final String paddingChar = repeat(\" \", padding);\r\n+                        segmentSB.append(format(borderChar + paddingChar + dataFormat + paddingChar, data));\r\n+                    }\r\n+\r\n+                    if (isLastColOfRow) {\r\n+                        if (border.has(Border.BORDER_OUTER_RIGHT)) {\r\n+                            segmentSB.append(\"|\");\r\n+                        }\r\n+                        segmentSB.append(System.lineSeparator());\r\n+                    }\r\n+\r\n+                }\r\n+\r\n+                if (hasNextLine) {\r\n+                    rowSB.append(segmentSB);\r\n+                }\r\n+\r\n+            } while (hasNextLine);\r\n+\r\n+            return rowSB.toString();\r\n+        } finally {\r\n+            for (Scanner scanner : scannerArray) {\r\n+                if (null != scanner) {\r\n+                    scanner.close();\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private String getData(int rowIndex, ColumnDefine columnDefine) {\r\n+        return columnDefine.getRowCount() <= rowIndex\r\n+                ? EMPTY_STRING\r\n+                : columnDefine.rows.get(rowIndex);\r\n+    }\r\n+\r\n+    private String getDataFormat(ColumnDefine columnDefine, int width, String data) {\r\n+        switch (columnDefine.align) {\r\n+            case MIDDLE: {\r\n+                final int length = length(data);\r\n+                final int diff = width - length;\r\n+                final int left = diff / 2;\r\n+                return repeat(\" \", diff - left) + \"%s\" + repeat(\" \", left);\r\n+            }\r\n+            case RIGHT: {\r\n+                return \"%\" + width + \"s\";\r\n+            }\r\n+            case LEFT:\r\n+            default: {\r\n+                return \"%-\" + width + \"s\";\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get row count\r\n+     */\r\n+    private int getRowCount() {\r\n+        int rowCount = 0;\r\n+        for (ColumnDefine columnDefine : columnDefineArray) {\r\n+            rowCount = max(rowCount, columnDefine.getRowCount());\r\n+        }\r\n+        return rowCount;\r\n+    }\r\n+\r\n+    /**\r\n+     * position to last column\r\n+     */\r\n+    private int indexLastCol(final int[] widthCacheArray) {\r\n+        for (int colIndex = widthCacheArray.length - 1; colIndex >= 0; colIndex--) {\r\n+            final int width = widthCacheArray[colIndex];\r\n+            if (width <= 0) {\r\n+                continue;\r\n+            }\r\n+            return colIndex;\r\n+        }\r\n+        return 0;\r\n+    }\r\n+\r\n+    /**\r\n+     * draw separation line\r\n+     */\r\n+    private String drawSeparationLine(final int[] widthCacheArray) {\r\n+        final StringBuilder separationLineSB = new StringBuilder();\r\n+\r\n+        final int lastCol = indexLastCol(widthCacheArray);\r\n+        final int colCount = widthCacheArray.length;\r\n+        for (int colIndex = 0; colIndex < colCount; colIndex++) {\r\n+            final int width = widthCacheArray[colIndex];\r\n+            if (width <= 0) {\r\n+                continue;\r\n+            }\r\n+\r\n+            final boolean isFirstCol = colIndex == 0;\r\n+            final boolean isLastCol = colIndex == lastCol;\r\n+\r\n+            if (isFirstCol\r\n+                    && border.has(Border.BORDER_OUTER_LEFT)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+            if (!isFirstCol\r\n+                    && border.has(Border.BORDER_INNER_V)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+            separationLineSB.append(repeat(\"-\", width + 2 * padding));\r\n+\r\n+            if (isLastCol\r\n+                    && border.has(Border.BORDER_OUTER_RIGHT)) {\r\n+                separationLineSB.append(\"+\");\r\n+            }\r\n+\r\n+        }\r\n+        return separationLineSB.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * Add a row\r\n+     */\r\n+    public TTable addRow(Object... columnDataArray) {\r\n+\r\n+        if (null != columnDataArray) {\r\n+            for (int index = 0; index < columnDefineArray.length; index++) {\r\n+                final ColumnDefine columnDefine = columnDefineArray[index];\r\n+                if (index < columnDataArray.length\r\n+                        && null != columnDataArray[index]) {\r\n+                    columnDefine.rows.add(replaceTab(columnDataArray[index].toString()));\r\n+                } else {\r\n+                    columnDefine.rows.add(EMPTY_STRING);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * alignment\r\n+     */\r\n+    public enum Align {\r\n+\r\n+        /**\r\n+         * left-alignment\r\n+         */\r\n+        LEFT,\r\n+\r\n+        /**\r\n+         * right-alignment\r\n+         */\r\n+        RIGHT,\r\n+\r\n+        /**\r\n+         * middle-alignment\r\n+         */\r\n+        MIDDLE\r\n+    }\r\n+\r\n+    /**\r\n+     * column definition\r\n+     */\r\n+    public static class ColumnDefine {\r\n+\r\n+        // column width\r\n+        private final int width;\r\n+\r\n+        // whether to auto resize\r\n+        private final boolean isAutoResize;\r\n+\r\n+        // alignment\r\n+        private final Align align;\r\n+\r\n+        // data rows\r\n+        private final List<String> rows = new ArrayList<String>();\r\n+\r\n+        public ColumnDefine(int width, boolean isAutoResize, Align align) {\r\n+            this.width = width;\r\n+            this.isAutoResize = isAutoResize;\r\n+            this.align = align;\r\n+        }\r\n+\r\n+        public ColumnDefine(Align align) {\r\n+            this(0, true, align);\r\n+        }\r\n+\r\n+        public ColumnDefine(int width) {\r\n+            this(width, false, Align.LEFT);\r\n+        }\r\n+\r\n+        public ColumnDefine(int width, Align align) {\r\n+            this(width, false, align);\r\n+        }\r\n+\r\n+        public ColumnDefine() {\r\n+            this(Align.LEFT);\r\n+        }\r\n+\r\n+        /**\r\n+         * get current width\r\n+         *\r\n+         * @return width\r\n+         */\r\n+        public int getWidth() {\r\n+\r\n+            // if not auto resize, return preset width\r\n+            if (!isAutoResize) {\r\n+                return width;\r\n+            }\r\n+\r\n+            // if it's auto resize, then calculate the possible max width\r\n+            int maxWidth = 0;\r\n+            for (String data : rows) {\r\n+                maxWidth = max(width(data), maxWidth);\r\n+            }\r\n+\r\n+            return maxWidth;\r\n+        }\r\n+\r\n+        /**\r\n+         * get rows for the current column\r\n+         *\r\n+         * @return current column's rows\r\n+         */\r\n+        public int getRowCount() {\r\n+            return rows.size();\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * set padding\r\n+     *\r\n+     * @param padding padding\r\n+     */\r\n+    public TTable padding(int padding) {\r\n+        this.padding = padding;\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get column count\r\n+     *\r\n+     * @return column count\r\n+     */\r\n+    public int getColumnCount() {\r\n+        return columnDefineArray.length;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * replace tab to four spaces\r\n+     *\r\n+     * @param string the original string\r\n+     * @return the replaced string\r\n+     */\r\n+    private static String replaceTab(String string) {\r\n+        return replace(string, \"\\t\", \"    \");\r\n+    }\r\n+\r\n+    /**\r\n+     * visible width for the given string.\r\n+     *\r\n+     * for example: \"abc\\n1234\"'s width is 4.\r\n+     *\r\n+     * @param string the given string\r\n+     * @return visible width\r\n+     */\r\n+    private static int width(String string) {\r\n+        int maxWidth = 0;\r\n+        try (Scanner scanner = new Scanner(new StringReader(string))) {\r\n+            while (scanner.hasNextLine()) {\r\n+                maxWidth = max(length(scanner.nextLine()), maxWidth);\r\n+            }\r\n+        }\r\n+        return maxWidth;\r\n+    }\r\n+\r\n+    /**\r\n+     * get border\r\n+     *\r\n+     * @return table border\r\n+     */\r\n+    public Border getBorder() {\r\n+        return border;\r\n+    }\r\n+\r\n+    /**\r\n+     * border style\r\n+     */\r\n+    public class Border {\r\n+\r\n+        private int borders = BORDER_OUTER | BORDER_INNER;\r\n+\r\n+        /**\r\n+         * border outer top\r\n+         */\r\n+        public static final int BORDER_OUTER_TOP = 1 << 0;\r\n+\r\n+        /**\r\n+         * border outer right\r\n+         */\r\n+        public static final int BORDER_OUTER_RIGHT = 1 << 1;\r\n+\r\n+        /**\r\n+         * border outer bottom\r\n+         */\r\n+        public static final int BORDER_OUTER_BOTTOM = 1 << 2;\r\n+\r\n+        /**\r\n+         * border outer left\r\n+         */\r\n+        public static final int BORDER_OUTER_LEFT = 1 << 3;\r\n+\r\n+        /**\r\n+         * inner border: horizon\r\n+         */\r\n+        public static final int BORDER_INNER_H = 1 << 4;\r\n+\r\n+        /**\r\n+         * inner border: vertical\r\n+         */\r\n+        public static final int BORDER_INNER_V = 1 << 5;\r\n+\r\n+        /**\r\n+         * outer border\r\n+         */\r\n+        public static final int BORDER_OUTER = BORDER_OUTER_TOP | BORDER_OUTER_BOTTOM | BORDER_OUTER_LEFT | BORDER_OUTER_RIGHT;\r\n+\r\n+        /**\r\n+         * inner border\r\n+         */\r\n+        public static final int BORDER_INNER = BORDER_INNER_H | BORDER_INNER_V;\r\n+\r\n+        /**\r\n+         * no border\r\n+         */\r\n+        public static final int BORDER_NON = 0;\r\n+\r\n+        /**\r\n+         * whether has one of the specified border styles\r\n+         *\r\n+         * @param borderArray border styles\r\n+         * @return whether has one of the specified border styles\r\n+         */\r\n+        public boolean has(int... borderArray) {\r\n+            if (null == borderArray) {\r\n+                return false;\r\n+            }\r\n+            for (int b : borderArray) {\r\n+                if ((this.borders & b) == b) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+            return false;\r\n+        }\r\n+\r\n+        /**\r\n+         * get border style\r\n+         *\r\n+         * @return border style\r\n+         */\r\n+        public int get() {\r\n+            return borders;\r\n+        }\r\n+\r\n+        /**\r\n+         * set border style\r\n+         *\r\n+         * @param border border style\r\n+         * @return this\r\n+         */\r\n+        public Border set(int border) {\r\n+            this.borders = border;\r\n+            return this;\r\n+        }\r\n+\r\n+        public Border add(int border) {\r\n+            return set(get() | border);\r\n+        }\r\n+\r\n+        public Border remove(int border) {\r\n+            return set(get() ^ border);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+\r\n+    public static String wrap(String string, int width) {\r\n+        final StringBuilder sb = new StringBuilder();\r\n+        final char[] buffer = string.toCharArray();\r\n+        int count = 0;\r\n+        for (char c : buffer) {\r\n+\r\n+            if (count == width) {\r\n+                count = 0;\r\n+                sb.append('\\n');\r\n+                if (c == '\\n') {\r\n+                    continue;\r\n+                }\r\n+            }\r\n+\r\n+            if (c == '\\n') {\r\n+                count = 0;\r\n+            } else {\r\n+                count++;\r\n+            }\r\n+\r\n+            sb.append(c);\r\n+\r\n+        }\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/qos/textui/TTree.java", "source2": "org/apache/dubbo/qos/textui/TTree.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,266 +1,266 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.qos.textui;\n-\n-import java.io.StringReader;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Scanner;\n-\n-import static java.lang.System.currentTimeMillis;\n-import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\n-import static org.apache.dubbo.common.utils.StringUtils.length;\n-import static org.apache.dubbo.common.utils.StringUtils.repeat;\n-\n-/**\n- * tree\n- */\n-public class TTree implements TComponent {\n-\n-    private static final String STEP_FIRST_CHAR = \"`---\";\n-    private static final String STEP_NORMAL_CHAR = \"+---\";\n-    private static final String STEP_HAS_BOARD = \"|   \";\n-    private static final String STEP_EMPTY_BOARD = \"    \";\n-\n-    // should output cost or not\n-    private final boolean isPrintCost;\n-\n-    // tree node\n-    private final Node root;\n-\n-    // current node\n-    private Node current;\n-\n-\n-    public TTree(boolean isPrintCost, String title) {\n-        this.root = new Node(title).markBegin().markEnd();\n-        this.current = root;\n-        this.isPrintCost = isPrintCost;\n-    }\n-\n-\n-    @Override\n-    public String rendering() {\n-\n-        final StringBuilder treeSB = new StringBuilder();\n-        recursive(0, true, \"\", root, new Callback() {\n-\n-            @Override\n-            public void callback(int deep, boolean isLast, String prefix, Node node) {\n-\n-                final boolean hasChild = !node.children.isEmpty();\n-                final String stepString = isLast ? STEP_FIRST_CHAR : STEP_NORMAL_CHAR;\n-                final int stepStringLength = length(stepString);\n-                treeSB.append(prefix).append(stepString);\n-\n-                int costPrefixLength = 0;\n-                if (hasChild) {\n-                    treeSB.append(\"+\");\n-                }\n-                if (isPrintCost\n-                        && !node.isRoot()) {\n-                    final String costPrefix = String.format(\"[%s,%sms]\", (node.endTimestamp - root.beginTimestamp), (node.endTimestamp - node.beginTimestamp));\n-                    costPrefixLength = length(costPrefix);\n-                    treeSB.append(costPrefix);\n-                }\n-\n-                try (Scanner scanner = new Scanner(new StringReader(node.data.toString()))) {\n-                    boolean isFirst = true;\n-                    while (scanner.hasNextLine()) {\n-                        if (isFirst) {\n-                            treeSB.append(scanner.nextLine()).append(\"\\n\");\n-                            isFirst = false;\n-                        } else {\n-                            treeSB.append(prefix)\n-                                    .append(repeat(' ', stepStringLength))\n-                                    .append(hasChild ? \"|\" : EMPTY_STRING)\n-                                    .append(repeat(' ', costPrefixLength))\n-                                    .append(scanner.nextLine())\n-                                    .append(System.lineSeparator());\n-                        }\n-                    }\n-                }\n-\n-            }\n-\n-        });\n-\n-        return treeSB.toString();\n-    }\n-\n-    /**\n-     * recursive visit\n-     */\n-    private void recursive(int deep, boolean isLast, String prefix, Node node, Callback callback) {\n-        callback.callback(deep, isLast, prefix, node);\n-        if (!node.isLeaf()) {\n-            final int size = node.children.size();\n-            for (int index = 0; index < size; index++) {\n-                final boolean isLastFlag = index == size - 1;\n-                final String currentPrefix = isLast ? prefix + STEP_EMPTY_BOARD : prefix + STEP_HAS_BOARD;\n-                recursive(\n-                        deep + 1,\n-                        isLastFlag,\n-                        currentPrefix,\n-                        node.children.get(index),\n-                        callback\n-                );\n-            }\n-        }\n-    }\n-\n-    public boolean isTop() {\n-        return current.isRoot();\n-    }\n-\n-    /**\n-     * create a branch node\n-     *\n-     * @param data node data\n-     * @return this\n-     */\n-    public TTree begin(Object data) {\n-        current = new Node(current, data);\n-        current.markBegin();\n-        return this;\n-    }\n-\n-    public TTree begin() {\n-        return begin(null);\n-    }\n-\n-    public Object get() {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        return current.data;\n-    }\n-\n-    public TTree set(Object data) {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        current.data = data;\n-        return this;\n-    }\n-\n-    /**\n-     * end a branch node\n-     *\n-     * @return this\n-     */\n-    public TTree end() {\n-        if (current.isRoot()) {\n-            throw new IllegalStateException(\"current node is root.\");\n-        }\n-        current.markEnd();\n-        current = current.parent;\n-        return this;\n-    }\n-\n-\n-    /**\n-     * tree node\n-     */\n-    private static class Node {\n-\n-        /**\n-         * parent node\n-         */\n-        final Node parent;\n-\n-        /**\n-         * node data\n-         */\n-        Object data;\n-\n-        /**\n-         * child nodes\n-         */\n-        final List<Node> children = new ArrayList<Node>();\n-\n-        /**\n-         * begin timestamp\n-         */\n-        private long beginTimestamp;\n-\n-        /**\n-         * end timestamp\n-         */\n-        private long endTimestamp;\n-\n-        /**\n-         * construct root node\n-         */\n-        private Node(Object data) {\n-            this.parent = null;\n-            this.data = data;\n-        }\n-\n-        /**\n-         * construct a regular node\n-         *\n-         * @param parent parent node\n-         * @param data   node data\n-         */\n-        private Node(Node parent, Object data) {\n-            this.parent = parent;\n-            this.data = data;\n-            parent.children.add(this);\n-        }\n-\n-        /**\n-         * is the current node the root node\n-         *\n-         * @return true / false\n-         */\n-        boolean isRoot() {\n-            return null == parent;\n-        }\n-\n-        /**\n-         * if the current node the leaf node\n-         *\n-         * @return true / false\n-         */\n-        boolean isLeaf() {\n-            return children.isEmpty();\n-        }\n-\n-        Node markBegin() {\n-            beginTimestamp = currentTimeMillis();\n-            return this;\n-        }\n-\n-        Node markEnd() {\n-            endTimestamp = currentTimeMillis();\n-            return this;\n-        }\n-\n-    }\n-\n-\n-    /**\n-     * callback interface for recursive visit\n-     */\n-    private interface Callback {\n-\n-        void callback(int deep, boolean isLast, String prefix, Node node);\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.qos.textui;\r\n+\r\n+import java.io.StringReader;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Scanner;\r\n+\r\n+import static java.lang.System.currentTimeMillis;\r\n+import static org.apache.dubbo.common.utils.StringUtils.EMPTY_STRING;\r\n+import static org.apache.dubbo.common.utils.StringUtils.length;\r\n+import static org.apache.dubbo.common.utils.StringUtils.repeat;\r\n+\r\n+/**\r\n+ * tree\r\n+ */\r\n+public class TTree implements TComponent {\r\n+\r\n+    private static final String STEP_FIRST_CHAR = \"`---\";\r\n+    private static final String STEP_NORMAL_CHAR = \"+---\";\r\n+    private static final String STEP_HAS_BOARD = \"|   \";\r\n+    private static final String STEP_EMPTY_BOARD = \"    \";\r\n+\r\n+    // should output cost or not\r\n+    private final boolean isPrintCost;\r\n+\r\n+    // tree node\r\n+    private final Node root;\r\n+\r\n+    // current node\r\n+    private Node current;\r\n+\r\n+\r\n+    public TTree(boolean isPrintCost, String title) {\r\n+        this.root = new Node(title).markBegin().markEnd();\r\n+        this.current = root;\r\n+        this.isPrintCost = isPrintCost;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public String rendering() {\r\n+\r\n+        final StringBuilder treeSB = new StringBuilder();\r\n+        recursive(0, true, \"\", root, new Callback() {\r\n+\r\n+            @Override\r\n+            public void callback(int deep, boolean isLast, String prefix, Node node) {\r\n+\r\n+                final boolean hasChild = !node.children.isEmpty();\r\n+                final String stepString = isLast ? STEP_FIRST_CHAR : STEP_NORMAL_CHAR;\r\n+                final int stepStringLength = length(stepString);\r\n+                treeSB.append(prefix).append(stepString);\r\n+\r\n+                int costPrefixLength = 0;\r\n+                if (hasChild) {\r\n+                    treeSB.append(\"+\");\r\n+                }\r\n+                if (isPrintCost\r\n+                        && !node.isRoot()) {\r\n+                    final String costPrefix = String.format(\"[%s,%sms]\", (node.endTimestamp - root.beginTimestamp), (node.endTimestamp - node.beginTimestamp));\r\n+                    costPrefixLength = length(costPrefix);\r\n+                    treeSB.append(costPrefix);\r\n+                }\r\n+\r\n+                try (Scanner scanner = new Scanner(new StringReader(node.data.toString()))) {\r\n+                    boolean isFirst = true;\r\n+                    while (scanner.hasNextLine()) {\r\n+                        if (isFirst) {\r\n+                            treeSB.append(scanner.nextLine()).append(\"\\n\");\r\n+                            isFirst = false;\r\n+                        } else {\r\n+                            treeSB.append(prefix)\r\n+                                    .append(repeat(' ', stepStringLength))\r\n+                                    .append(hasChild ? \"|\" : EMPTY_STRING)\r\n+                                    .append(repeat(' ', costPrefixLength))\r\n+                                    .append(scanner.nextLine())\r\n+                                    .append(System.lineSeparator());\r\n+                        }\r\n+                    }\r\n+                }\r\n+\r\n+            }\r\n+\r\n+        });\r\n+\r\n+        return treeSB.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * recursive visit\r\n+     */\r\n+    private void recursive(int deep, boolean isLast, String prefix, Node node, Callback callback) {\r\n+        callback.callback(deep, isLast, prefix, node);\r\n+        if (!node.isLeaf()) {\r\n+            final int size = node.children.size();\r\n+            for (int index = 0; index < size; index++) {\r\n+                final boolean isLastFlag = index == size - 1;\r\n+                final String currentPrefix = isLast ? prefix + STEP_EMPTY_BOARD : prefix + STEP_HAS_BOARD;\r\n+                recursive(\r\n+                        deep + 1,\r\n+                        isLastFlag,\r\n+                        currentPrefix,\r\n+                        node.children.get(index),\r\n+                        callback\r\n+                );\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public boolean isTop() {\r\n+        return current.isRoot();\r\n+    }\r\n+\r\n+    /**\r\n+     * create a branch node\r\n+     *\r\n+     * @param data node data\r\n+     * @return this\r\n+     */\r\n+    public TTree begin(Object data) {\r\n+        current = new Node(current, data);\r\n+        current.markBegin();\r\n+        return this;\r\n+    }\r\n+\r\n+    public TTree begin() {\r\n+        return begin(null);\r\n+    }\r\n+\r\n+    public Object get() {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        return current.data;\r\n+    }\r\n+\r\n+    public TTree set(Object data) {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        current.data = data;\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * end a branch node\r\n+     *\r\n+     * @return this\r\n+     */\r\n+    public TTree end() {\r\n+        if (current.isRoot()) {\r\n+            throw new IllegalStateException(\"current node is root.\");\r\n+        }\r\n+        current.markEnd();\r\n+        current = current.parent;\r\n+        return this;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * tree node\r\n+     */\r\n+    private static class Node {\r\n+\r\n+        /**\r\n+         * parent node\r\n+         */\r\n+        final Node parent;\r\n+\r\n+        /**\r\n+         * node data\r\n+         */\r\n+        Object data;\r\n+\r\n+        /**\r\n+         * child nodes\r\n+         */\r\n+        final List<Node> children = new ArrayList<Node>();\r\n+\r\n+        /**\r\n+         * begin timestamp\r\n+         */\r\n+        private long beginTimestamp;\r\n+\r\n+        /**\r\n+         * end timestamp\r\n+         */\r\n+        private long endTimestamp;\r\n+\r\n+        /**\r\n+         * construct root node\r\n+         */\r\n+        private Node(Object data) {\r\n+            this.parent = null;\r\n+            this.data = data;\r\n+        }\r\n+\r\n+        /**\r\n+         * construct a regular node\r\n+         *\r\n+         * @param parent parent node\r\n+         * @param data   node data\r\n+         */\r\n+        private Node(Node parent, Object data) {\r\n+            this.parent = parent;\r\n+            this.data = data;\r\n+            parent.children.add(this);\r\n+        }\r\n+\r\n+        /**\r\n+         * is the current node the root node\r\n+         *\r\n+         * @return true / false\r\n+         */\r\n+        boolean isRoot() {\r\n+            return null == parent;\r\n+        }\r\n+\r\n+        /**\r\n+         * if the current node the leaf node\r\n+         *\r\n+         * @return true / false\r\n+         */\r\n+        boolean isLeaf() {\r\n+            return children.isEmpty();\r\n+        }\r\n+\r\n+        Node markBegin() {\r\n+            beginTimestamp = currentTimeMillis();\r\n+            return this;\r\n+        }\r\n+\r\n+        Node markEnd() {\r\n+            endTimestamp = currentTimeMillis();\r\n+            return this;\r\n+        }\r\n+\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * callback interface for recursive visit\r\n+     */\r\n+    private interface Callback {\r\n+\r\n+        void callback(int deep, boolean isLast, String prefix, Node node);\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/AddressListener.java", "source2": "org/apache/dubbo/registry/AddressListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-\n-import java.util.List;\n-\n-@SPI\n-public interface AddressListener {\n-\n-    /**\n-     * processing when receiving the address list\n-     *\n-     * @param addresses            provider address list\n-     * @param consumerUrl\n-     * @param registryDirectory\n-     */\n-    List<URL> notify(List<URL> addresses, URL consumerUrl, Directory registryDirectory);\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+\r\n+import java.util.List;\r\n+\r\n+@SPI\r\n+public interface AddressListener {\r\n+\r\n+    /**\r\n+     * processing when receiving the address list\r\n+     *\r\n+     * @param addresses            provider address list\r\n+     * @param consumerUrl\r\n+     * @param registryDirectory\r\n+     */\r\n+    List<URL> notify(List<URL> addresses, URL consumerUrl, Directory registryDirectory);\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/registry/Constants.java", "source2": "org/apache/dubbo/registry/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,96 +1,96 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry;\n-\n-public interface Constants {\n-    String REGISTER_IP_KEY = \"register.ip\";\n-\n-    String REGISTER_KEY = \"register\";\n-\n-    String SUBSCRIBE_KEY = \"subscribe\";\n-\n-    String DEFAULT_REGISTRY = \"dubbo\";\n-\n-    String REGISTER = \"register\";\n-\n-    String UNREGISTER = \"unregister\";\n-\n-    String SUBSCRIBE = \"subscribe\";\n-\n-    String UNSUBSCRIBE = \"unsubscribe\";\n-\n-    String CONFIGURATORS_SUFFIX = \".configurators\";\n-\n-    String ADMIN_PROTOCOL = \"admin\";\n-\n-    String PROVIDER_PROTOCOL = \"provider\";\n-\n-    String CONSUMER_PROTOCOL = \"consumer\";\n-\n-    String SCRIPT_PROTOCOL = \"script\";\n-\n-    String CONDITION_PROTOCOL = \"condition\";\n-    String TRACE_PROTOCOL = \"trace\";\n-    /**\n-     * simple the registry for provider.\n-     *\n-     * @since 2.7.0\n-     */\n-    String SIMPLIFIED_KEY = \"simplified\";\n-\n-    /**\n-     * To decide whether register center saves file synchronously, the default value is asynchronously\n-     */\n-    String REGISTRY_FILESAVE_SYNC_KEY = \"save.file\";\n-\n-    /**\n-     * Whether to cache locally, default is true\n-     */\n-    String REGISTRY__LOCAL_FILE_CACHE_ENABLED = \"file.cache\";\n-\n-    /**\n-     * Reconnection period in milliseconds for register center\n-     */\n-    String REGISTRY_RECONNECT_PERIOD_KEY = \"reconnect.period\";\n-\n-    int DEFAULT_SESSION_TIMEOUT = 60 * 1000;\n-\n-    /**\n-     * Default value for the times of retry: 3\n-     */\n-    int DEFAULT_REGISTRY_RETRY_TIMES = 3;\n-\n-    int DEFAULT_REGISTRY_RECONNECT_PERIOD = 3 * 1000;\n-\n-    /**\n-     * Default value for the period of retry interval in milliseconds: 5000\n-     */\n-    int DEFAULT_REGISTRY_RETRY_PERIOD = 5 * 1000;\n-\n-    /**\n-     * Most retry times\n-     */\n-    String REGISTRY_RETRY_TIMES_KEY = \"retry.times\";\n-\n-    /**\n-     * Period of registry center's retry interval\n-     */\n-    String REGISTRY_RETRY_PERIOD_KEY = \"retry.period\";\n-\n-    String SESSION_TIMEOUT_KEY = \"session\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry;\r\n+\r\n+public interface Constants {\r\n+    String REGISTER_IP_KEY = \"register.ip\";\r\n+\r\n+    String REGISTER_KEY = \"register\";\r\n+\r\n+    String SUBSCRIBE_KEY = \"subscribe\";\r\n+\r\n+    String DEFAULT_REGISTRY = \"dubbo\";\r\n+\r\n+    String REGISTER = \"register\";\r\n+\r\n+    String UNREGISTER = \"unregister\";\r\n+\r\n+    String SUBSCRIBE = \"subscribe\";\r\n+\r\n+    String UNSUBSCRIBE = \"unsubscribe\";\r\n+\r\n+    String CONFIGURATORS_SUFFIX = \".configurators\";\r\n+\r\n+    String ADMIN_PROTOCOL = \"admin\";\r\n+\r\n+    String PROVIDER_PROTOCOL = \"provider\";\r\n+\r\n+    String CONSUMER_PROTOCOL = \"consumer\";\r\n+\r\n+    String SCRIPT_PROTOCOL = \"script\";\r\n+\r\n+    String CONDITION_PROTOCOL = \"condition\";\r\n+    String TRACE_PROTOCOL = \"trace\";\r\n+    /**\r\n+     * simple the registry for provider.\r\n+     *\r\n+     * @since 2.7.0\r\n+     */\r\n+    String SIMPLIFIED_KEY = \"simplified\";\r\n+\r\n+    /**\r\n+     * To decide whether register center saves file synchronously, the default value is asynchronously\r\n+     */\r\n+    String REGISTRY_FILESAVE_SYNC_KEY = \"save.file\";\r\n+\r\n+    /**\r\n+     * Whether to cache locally, default is true\r\n+     */\r\n+    String REGISTRY__LOCAL_FILE_CACHE_ENABLED = \"file.cache\";\r\n+\r\n+    /**\r\n+     * Reconnection period in milliseconds for register center\r\n+     */\r\n+    String REGISTRY_RECONNECT_PERIOD_KEY = \"reconnect.period\";\r\n+\r\n+    int DEFAULT_SESSION_TIMEOUT = 60 * 1000;\r\n+\r\n+    /**\r\n+     * Default value for the times of retry: 3\r\n+     */\r\n+    int DEFAULT_REGISTRY_RETRY_TIMES = 3;\r\n+\r\n+    int DEFAULT_REGISTRY_RECONNECT_PERIOD = 3 * 1000;\r\n+\r\n+    /**\r\n+     * Default value for the period of retry interval in milliseconds: 5000\r\n+     */\r\n+    int DEFAULT_REGISTRY_RETRY_PERIOD = 5 * 1000;\r\n+\r\n+    /**\r\n+     * Most retry times\r\n+     */\r\n+    String REGISTRY_RETRY_TIMES_KEY = \"retry.times\";\r\n+\r\n+    /**\r\n+     * Period of registry center's retry interval\r\n+     */\r\n+    String REGISTRY_RETRY_PERIOD_KEY = \"retry.period\";\r\n+\r\n+    String SESSION_TIMEOUT_KEY = \"session\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/ListenerRegistryWrapper.java", "source2": "org/apache/dubbo/registry/ListenerRegistryWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,158 +1,158 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-\n-import java.util.List;\n-\n-public class ListenerRegistryWrapper implements Registry {\n-    private static final Logger logger = LoggerFactory.getLogger(ListenerRegistryWrapper.class);\n-\n-    private final Registry registry;\n-    private final List<RegistryServiceListener> listeners;\n-\n-\n-    public ListenerRegistryWrapper(Registry registry, List<RegistryServiceListener> listeners) {\n-        this.registry = registry;\n-        this.listeners = listeners;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registry.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return registry.isAvailable();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        registry.destroy();\n-    }\n-\n-    @Override\n-    public void register(URL url) {\n-        try {\n-            registry.register(url);\n-        } finally {\n-            if (CollectionUtils.isNotEmpty(listeners)) {\n-                RuntimeException exception = null;\n-                for (RegistryServiceListener listener : listeners) {\n-                    if (listener != null) {\n-                        try {\n-                            listener.onRegister(url);\n-                        } catch (RuntimeException t) {\n-                            logger.error(t.getMessage(), t);\n-                            exception = t;\n-                        }\n-                    }\n-                }\n-                if (exception != null) {\n-                    throw exception;\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void unregister(URL url) {\n-        try {\n-            registry.unregister(url);\n-        } finally {\n-            if (CollectionUtils.isNotEmpty(listeners)) {\n-                RuntimeException exception = null;\n-                for (RegistryServiceListener listener : listeners) {\n-                    if (listener != null) {\n-                        try {\n-                            listener.onUnregister(url);\n-                        } catch (RuntimeException t) {\n-                            logger.error(t.getMessage(), t);\n-                            exception = t;\n-                        }\n-                    }\n-                }\n-                if (exception != null) {\n-                    throw exception;\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void subscribe(URL url, NotifyListener listener) {\n-        try {\n-            registry.subscribe(url, listener);\n-        } finally {\n-            if (CollectionUtils.isNotEmpty(listeners)) {\n-                RuntimeException exception = null;\n-                for (RegistryServiceListener registryListener : listeners) {\n-                    if (registryListener != null) {\n-                        try {\n-                            registryListener.onSubscribe(url);\n-                        } catch (RuntimeException t) {\n-                            logger.error(t.getMessage(), t);\n-                            exception = t;\n-                        }\n-                    }\n-                }\n-                if (exception != null) {\n-                    throw exception;\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void unsubscribe(URL url, NotifyListener listener) {\n-        try {\n-            registry.unsubscribe(url, listener);\n-        } finally {\n-            if (CollectionUtils.isNotEmpty(listeners)) {\n-                RuntimeException exception = null;\n-                for (RegistryServiceListener registryListener : listeners) {\n-                    if (registryListener != null) {\n-                        try {\n-                            registryListener.onUnsubscribe(url);\n-                        } catch (RuntimeException t) {\n-                            logger.error(t.getMessage(), t);\n-                            exception = t;\n-                        }\n-                    }\n-                }\n-                if (exception != null) {\n-                    throw exception;\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public List<URL> lookup(URL url) {\n-        return registry.lookup(url);\n-    }\n-\n-    public Registry getRegistry() {\n-        return registry;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+\r\n+import java.util.List;\r\n+\r\n+public class ListenerRegistryWrapper implements Registry {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ListenerRegistryWrapper.class);\r\n+\r\n+    private final Registry registry;\r\n+    private final List<RegistryServiceListener> listeners;\r\n+\r\n+\r\n+    public ListenerRegistryWrapper(Registry registry, List<RegistryServiceListener> listeners) {\r\n+        this.registry = registry;\r\n+        this.listeners = listeners;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registry.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return registry.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        registry.destroy();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void register(URL url) {\r\n+        try {\r\n+            registry.register(url);\r\n+        } finally {\r\n+            if (CollectionUtils.isNotEmpty(listeners)) {\r\n+                RuntimeException exception = null;\r\n+                for (RegistryServiceListener listener : listeners) {\r\n+                    if (listener != null) {\r\n+                        try {\r\n+                            listener.onRegister(url);\r\n+                        } catch (RuntimeException t) {\r\n+                            logger.error(t.getMessage(), t);\r\n+                            exception = t;\r\n+                        }\r\n+                    }\r\n+                }\r\n+                if (exception != null) {\r\n+                    throw exception;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(URL url) {\r\n+        try {\r\n+            registry.unregister(url);\r\n+        } finally {\r\n+            if (CollectionUtils.isNotEmpty(listeners)) {\r\n+                RuntimeException exception = null;\r\n+                for (RegistryServiceListener listener : listeners) {\r\n+                    if (listener != null) {\r\n+                        try {\r\n+                            listener.onUnregister(url);\r\n+                        } catch (RuntimeException t) {\r\n+                            logger.error(t.getMessage(), t);\r\n+                            exception = t;\r\n+                        }\r\n+                    }\r\n+                }\r\n+                if (exception != null) {\r\n+                    throw exception;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(URL url, NotifyListener listener) {\r\n+        try {\r\n+            registry.subscribe(url, listener);\r\n+        } finally {\r\n+            if (CollectionUtils.isNotEmpty(listeners)) {\r\n+                RuntimeException exception = null;\r\n+                for (RegistryServiceListener registryListener : listeners) {\r\n+                    if (registryListener != null) {\r\n+                        try {\r\n+                            registryListener.onSubscribe(url);\r\n+                        } catch (RuntimeException t) {\r\n+                            logger.error(t.getMessage(), t);\r\n+                            exception = t;\r\n+                        }\r\n+                    }\r\n+                }\r\n+                if (exception != null) {\r\n+                    throw exception;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(URL url, NotifyListener listener) {\r\n+        try {\r\n+            registry.unsubscribe(url, listener);\r\n+        } finally {\r\n+            if (CollectionUtils.isNotEmpty(listeners)) {\r\n+                RuntimeException exception = null;\r\n+                for (RegistryServiceListener registryListener : listeners) {\r\n+                    if (registryListener != null) {\r\n+                        try {\r\n+                            registryListener.onUnsubscribe(url);\r\n+                        } catch (RuntimeException t) {\r\n+                            logger.error(t.getMessage(), t);\r\n+                            exception = t;\r\n+                        }\r\n+                    }\r\n+                }\r\n+                if (exception != null) {\r\n+                    throw exception;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(URL url) {\r\n+        return registry.lookup(url);\r\n+    }\r\n+\r\n+    public Registry getRegistry() {\r\n+        return registry;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/RegistryFactoryWrapper.java", "source2": "org/apache/dubbo/registry/RegistryFactoryWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-\n-import java.util.Collections;\n-\n-public class RegistryFactoryWrapper implements RegistryFactory {\n-    private RegistryFactory registryFactory;\n-\n-    public RegistryFactoryWrapper(RegistryFactory registryFactory) {\n-        this.registryFactory = registryFactory;\n-    }\n-\n-    @Override\n-    public Registry getRegistry(URL url) {\n-        return new ListenerRegistryWrapper(registryFactory.getRegistry(url),\n-                Collections.unmodifiableList(ExtensionLoader.getExtensionLoader(RegistryServiceListener.class)\n-                        .getActivateExtension(url, \"registry.listeners\")));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+\r\n+import java.util.Collections;\r\n+\r\n+public class RegistryFactoryWrapper implements RegistryFactory {\r\n+    private RegistryFactory registryFactory;\r\n+\r\n+    public RegistryFactoryWrapper(RegistryFactory registryFactory) {\r\n+        this.registryFactory = registryFactory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Registry getRegistry(URL url) {\r\n+        return new ListenerRegistryWrapper(registryFactory.getRegistry(url),\r\n+                Collections.unmodifiableList(ExtensionLoader.getExtensionLoader(RegistryServiceListener.class)\r\n+                        .getActivateExtension(url, \"registry.listeners\")));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/RegistryServiceListener.java", "source2": "org/apache/dubbo/registry/RegistryServiceListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI\n-public interface RegistryServiceListener {\n-    default void onRegister(URL url) {\n-\n-    }\n-\n-\n-    default void onUnregister(URL url) {\n-\n-    }\n-\n-    default void onSubscribe(URL url) {\n-\n-    }\n-\n-    default void onUnsubscribe(URL url) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI\r\n+public interface RegistryServiceListener {\r\n+    default void onRegister(URL url) {\r\n+\r\n+    }\r\n+\r\n+\r\n+    default void onUnregister(URL url) {\r\n+\r\n+    }\r\n+\r\n+    default void onSubscribe(URL url) {\r\n+\r\n+    }\r\n+\r\n+    default void onUnsubscribe(URL url) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/AbstractServiceDiscovery.java", "source2": "org/apache/dubbo/registry/client/AbstractServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,56 +1,56 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.isInstanceUpdated;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.resetInstanceUpdateKey;\n-\n-public abstract class AbstractServiceDiscovery implements ServiceDiscovery {\n-\n-    protected ServiceInstance serviceInstance;\n-\n-    @Override\n-    public ServiceInstance getLocalInstance() {\n-        return serviceInstance;\n-    }\n-\n-    @Override\n-    public final void register(ServiceInstance serviceInstance) throws RuntimeException {\n-        this.serviceInstance = serviceInstance;\n-        doRegister(serviceInstance);\n-    }\n-\n-    /**\n-     * It should be implement in kinds of service discovers.\n-     */\n-    public abstract void doRegister(ServiceInstance serviceInstance);\n-\n-    @Override\n-    public final void update(ServiceInstance serviceInstance) throws RuntimeException {\n-        if (!isInstanceUpdated(serviceInstance)) {\n-            return;\n-        }\n-        this.serviceInstance = serviceInstance;\n-        doUpdate(serviceInstance);\n-        resetInstanceUpdateKey(serviceInstance);\n-    }\n-\n-    /**\n-     * It should be implement in kinds of service discovers.\n-     */\n-    public abstract void doUpdate(ServiceInstance serviceInstance);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.isInstanceUpdated;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.resetInstanceUpdateKey;\r\n+\r\n+public abstract class AbstractServiceDiscovery implements ServiceDiscovery {\r\n+\r\n+    protected ServiceInstance serviceInstance;\r\n+\r\n+    @Override\r\n+    public ServiceInstance getLocalInstance() {\r\n+        return serviceInstance;\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void register(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        this.serviceInstance = serviceInstance;\r\n+        doRegister(serviceInstance);\r\n+    }\r\n+\r\n+    /**\r\n+     * It should be implement in kinds of service discovers.\r\n+     */\r\n+    public abstract void doRegister(ServiceInstance serviceInstance);\r\n+\r\n+    @Override\r\n+    public final void update(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        if (!isInstanceUpdated(serviceInstance)) {\r\n+            return;\r\n+        }\r\n+        this.serviceInstance = serviceInstance;\r\n+        doUpdate(serviceInstance);\r\n+        resetInstanceUpdateKey(serviceInstance);\r\n+    }\r\n+\r\n+    /**\r\n+     * It should be implement in kinds of service discovers.\r\n+     */\r\n+    public abstract void doUpdate(ServiceInstance serviceInstance);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/AbstractServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/client/AbstractServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * Abstract {@link ServiceDiscoveryFactory} implementation with cache, the subclass\n- * should implement {@link #createDiscovery(URL)} method to create an instance of {@link ServiceDiscovery}\n- *\n- * @see ServiceDiscoveryFactory\n- * @since 2.7.5\n- */\n-public abstract class AbstractServiceDiscoveryFactory implements ServiceDiscoveryFactory {\n-\n-    private final ConcurrentMap<String, ServiceDiscovery> discoveries = new ConcurrentHashMap<>();\n-\n-    @Override\n-    public ServiceDiscovery getServiceDiscovery(URL registryURL) {\n-        String key = registryURL.toServiceStringWithoutResolving();\n-        return discoveries.computeIfAbsent(key, k -> createDiscovery(registryURL));\n-    }\n-\n-    protected abstract ServiceDiscovery createDiscovery(URL registryURL);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * Abstract {@link ServiceDiscoveryFactory} implementation with cache, the subclass\r\n+ * should implement {@link #createDiscovery(URL)} method to create an instance of {@link ServiceDiscovery}\r\n+ *\r\n+ * @see ServiceDiscoveryFactory\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class AbstractServiceDiscoveryFactory implements ServiceDiscoveryFactory {\r\n+\r\n+    private final ConcurrentMap<String, ServiceDiscovery> discoveries = new ConcurrentHashMap<>();\r\n+\r\n+    @Override\r\n+    public ServiceDiscovery getServiceDiscovery(URL registryURL) {\r\n+        String key = registryURL.toServiceStringWithoutResolving();\r\n+        return discoveries.computeIfAbsent(key, k -> createDiscovery(registryURL));\r\n+    }\r\n+\r\n+    protected abstract ServiceDiscovery createDiscovery(URL registryURL);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java", "source2": "org/apache/dubbo/registry/client/DefaultRegistryClusterIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\n-\n-public class DefaultRegistryClusterIdentifier implements RegistryClusterIdentifier {\n-    @Override\n-    public String providerKey(URL url) {\n-        return url.getParameter(REGISTRY_CLUSTER_KEY, DEFAULT_KEY);\n-    }\n-\n-    @Override\n-    public String consumerKey(URL url) {\n-        return url.getParameter(REGISTRY_CLUSTER_KEY);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\r\n+\r\n+public class DefaultRegistryClusterIdentifier implements RegistryClusterIdentifier {\r\n+    @Override\r\n+    public String providerKey(URL url) {\r\n+        return url.getParameter(REGISTRY_CLUSTER_KEY, DEFAULT_KEY);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String consumerKey(URL url) {\r\n+        return url.getParameter(REGISTRY_CLUSTER_KEY);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/DefaultServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/client/DefaultServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,49 +1,49 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * The default {@link SPI} implementation of {@link ServiceDiscoveryFactory} to {@link #getServiceDiscovery(URL) get the\n- * instance of ServiceDiscovery} via the {@link URL#getProtocol() protocol} from the {@link URL} that will connect\n- * the infrastructure of Service registration and discovery. The {@link URL#getProtocol() protocol} will be used as the\n- * extension name by which the {@link ServiceDiscovery} instance is loaded.\n- *\n- * @see AbstractServiceDiscoveryFactory\n- * @see EventPublishingServiceDiscovery\n- * @since 2.7.5\n- */\n-public class DefaultServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    /**\n-     * Create the {@link ServiceDiscovery} by {@link URL#getProtocol() the protocol} from {@link URL connection URL}\n-     *\n-     * @param registryURL\n-     * @return\n-     */\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        String protocol = registryURL.getProtocol();\n-        ExtensionLoader<ServiceDiscovery> loader = getExtensionLoader(ServiceDiscovery.class);\n-        return loader.getExtension(protocol);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * The default {@link SPI} implementation of {@link ServiceDiscoveryFactory} to {@link #getServiceDiscovery(URL) get the\r\n+ * instance of ServiceDiscovery} via the {@link URL#getProtocol() protocol} from the {@link URL} that will connect\r\n+ * the infrastructure of Service registration and discovery. The {@link URL#getProtocol() protocol} will be used as the\r\n+ * extension name by which the {@link ServiceDiscovery} instance is loaded.\r\n+ *\r\n+ * @see AbstractServiceDiscoveryFactory\r\n+ * @see EventPublishingServiceDiscovery\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DefaultServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    /**\r\n+     * Create the {@link ServiceDiscovery} by {@link URL#getProtocol() the protocol} from {@link URL connection URL}\r\n+     *\r\n+     * @param registryURL\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        String protocol = registryURL.getProtocol();\r\n+        ExtensionLoader<ServiceDiscovery> loader = getExtensionLoader(ServiceDiscovery.class);\r\n+        return loader.getExtension(protocol);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/DefaultServiceInstance.java", "source2": "org/apache/dubbo/registry/client/DefaultServiceInstance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,221 +1,221 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.metadata.MetadataInfo;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\n-\n-/**\n- * The default implementation of {@link ServiceInstance}.\n- *\n- * @since 2.7.5\n- */\n-public class DefaultServiceInstance implements ServiceInstance {\n-\n-    private static final long serialVersionUID = 1149677083747278100L;\n-\n-    private String id;\n-\n-    private String serviceName;\n-\n-    private String host;\n-\n-    private Integer port;\n-\n-    private boolean enabled;\n-\n-    private boolean healthy;\n-\n-    private Map<String, String> metadata = new HashMap<>();\n-\n-    private transient String address;\n-    private transient MetadataInfo serviceMetadata;\n-    // used at runtime\n-    private transient Map<String, String> extendParams = new HashMap<>();\n-\n-    public DefaultServiceInstance() {\n-    }\n-\n-    public DefaultServiceInstance(String id, String serviceName, String host, Integer port) {\n-        if (port != null && port.intValue() < 1) {\n-            throw new IllegalArgumentException(\"The port must be greater than zero!\");\n-        }\n-        this.id = id;\n-        this.serviceName = serviceName;\n-        this.host = host;\n-        this.port = port;\n-        this.enabled = true;\n-        this.healthy = true;\n-    }\n-\n-    public DefaultServiceInstance(String serviceName, String host, Integer port) {\n-        this(host + \":\" + port, serviceName, host, port);\n-    }\n-\n-    public void setId(String id) {\n-        this.id = id;\n-    }\n-\n-    public void setServiceName(String serviceName) {\n-        this.serviceName = serviceName;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    @Override\n-    public String getId() {\n-        return id;\n-    }\n-\n-    @Override\n-    public String getServiceName() {\n-        return serviceName;\n-    }\n-\n-    @Override\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setPort(Integer port) {\n-        this.port = port;\n-    }\n-\n-    @Override\n-    public Integer getPort() {\n-        return port;\n-    }\n-\n-    @Override\n-    public String getAddress() {\n-        if (address == null) {\n-            address = getAddress(host, port);\n-        }\n-        return address;\n-    }\n-\n-    private static String getAddress(String host, int port) {\n-        return port <= 0 ? host : host + ':' + port;\n-    }\n-\n-    @Override\n-    public boolean isEnabled() {\n-        return enabled;\n-    }\n-\n-    public void setEnabled(boolean enabled) {\n-        this.enabled = enabled;\n-    }\n-\n-    @Override\n-    public boolean isHealthy() {\n-        return healthy;\n-    }\n-\n-    public void setHealthy(boolean healthy) {\n-        this.healthy = healthy;\n-    }\n-\n-    @Override\n-    public Map<String, String> getMetadata() {\n-        return metadata;\n-    }\n-\n-    @Override\n-    public Map<String, String> getExtendParams() {\n-        return extendParams;\n-    }\n-\n-    @Override\n-    public Map<String, String> getAllParams() {\n-        Map<String, String> allParams = new HashMap<>((int) ((metadata.size() + extendParams.size()) / 0.75f + 1));\n-        allParams.putAll(metadata);\n-        allParams.putAll(extendParams);\n-        return allParams;\n-    }\n-\n-    public void setMetadata(Map<String, String> metadata) {\n-        this.metadata = metadata;\n-    }\n-\n-    public MetadataInfo getServiceMetadata() {\n-        return serviceMetadata;\n-    }\n-\n-    public void setServiceMetadata(MetadataInfo serviceMetadata) {\n-        this.serviceMetadata = serviceMetadata;\n-    }\n-\n-    @Override\n-    public InstanceAddressURL toURL() {\n-        return new InstanceAddressURL(this, serviceMetadata);\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof DefaultServiceInstance)) {\n-            return false;\n-        }\n-        DefaultServiceInstance that = (DefaultServiceInstance) o;\n-        boolean equals = Objects.equals(getServiceName(), that.getServiceName()) &&\n-                Objects.equals(getHost(), that.getHost()) &&\n-                Objects.equals(getPort(), that.getPort());\n-        for (Map.Entry<String, String> entry : this.getMetadata().entrySet()) {\n-            if (entry.getKey().equals(REVISION_KEY)) {\n-                continue;\n-            }\n-            equals = equals && entry.getValue().equals(that.getMetadata().get(entry.getKey()));\n-        }\n-\n-        return equals;\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        int result = Objects.hash(getServiceName(), getHost(), getPort());\n-        for (Map.Entry<String, String> entry : this.getMetadata().entrySet()) {\n-            if (entry.getKey().equals(REVISION_KEY)) {\n-                continue;\n-            }\n-            result = 31 * result + (entry.getValue() == null ? 0 : entry.getValue().hashCode());\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"DefaultServiceInstance{\" +\n-                \"id='\" + id + '\\'' +\n-                \", serviceName='\" + serviceName + '\\'' +\n-                \", host='\" + host + '\\'' +\n-                \", port=\" + port +\n-                \", enabled=\" + enabled +\n-                \", healthy=\" + healthy +\n-                \", metadata=\" + metadata +\n-                '}';\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REVISION_KEY;\r\n+\r\n+/**\r\n+ * The default implementation of {@link ServiceInstance}.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class DefaultServiceInstance implements ServiceInstance {\r\n+\r\n+    private static final long serialVersionUID = 1149677083747278100L;\r\n+\r\n+    private String id;\r\n+\r\n+    private String serviceName;\r\n+\r\n+    private String host;\r\n+\r\n+    private Integer port;\r\n+\r\n+    private boolean enabled;\r\n+\r\n+    private boolean healthy;\r\n+\r\n+    private Map<String, String> metadata = new HashMap<>();\r\n+\r\n+    private transient String address;\r\n+    private transient MetadataInfo serviceMetadata;\r\n+    // used at runtime\r\n+    private transient Map<String, String> extendParams = new HashMap<>();\r\n+\r\n+    public DefaultServiceInstance() {\r\n+    }\r\n+\r\n+    public DefaultServiceInstance(String id, String serviceName, String host, Integer port) {\r\n+        if (port != null && port.intValue() < 1) {\r\n+            throw new IllegalArgumentException(\"The port must be greater than zero!\");\r\n+        }\r\n+        this.id = id;\r\n+        this.serviceName = serviceName;\r\n+        this.host = host;\r\n+        this.port = port;\r\n+        this.enabled = true;\r\n+        this.healthy = true;\r\n+    }\r\n+\r\n+    public DefaultServiceInstance(String serviceName, String host, Integer port) {\r\n+        this(host + \":\" + port, serviceName, host, port);\r\n+    }\r\n+\r\n+    public void setId(String id) {\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public void setServiceName(String serviceName) {\r\n+        this.serviceName = serviceName;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceName() {\r\n+        return serviceName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setPort(Integer port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Integer getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAddress() {\r\n+        if (address == null) {\r\n+            address = getAddress(host, port);\r\n+        }\r\n+        return address;\r\n+    }\r\n+\r\n+    private static String getAddress(String host, int port) {\r\n+        return port <= 0 ? host : host + ':' + port;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isEnabled() {\r\n+        return enabled;\r\n+    }\r\n+\r\n+    public void setEnabled(boolean enabled) {\r\n+        this.enabled = enabled;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isHealthy() {\r\n+        return healthy;\r\n+    }\r\n+\r\n+    public void setHealthy(boolean healthy) {\r\n+        this.healthy = healthy;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getMetadata() {\r\n+        return metadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getExtendParams() {\r\n+        return extendParams;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getAllParams() {\r\n+        Map<String, String> allParams = new HashMap<>((int) ((metadata.size() + extendParams.size()) / 0.75f + 1));\r\n+        allParams.putAll(metadata);\r\n+        allParams.putAll(extendParams);\r\n+        return allParams;\r\n+    }\r\n+\r\n+    public void setMetadata(Map<String, String> metadata) {\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    public MetadataInfo getServiceMetadata() {\r\n+        return serviceMetadata;\r\n+    }\r\n+\r\n+    public void setServiceMetadata(MetadataInfo serviceMetadata) {\r\n+        this.serviceMetadata = serviceMetadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    public InstanceAddressURL toURL() {\r\n+        return new InstanceAddressURL(this, serviceMetadata);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof DefaultServiceInstance)) {\r\n+            return false;\r\n+        }\r\n+        DefaultServiceInstance that = (DefaultServiceInstance) o;\r\n+        boolean equals = Objects.equals(getServiceName(), that.getServiceName()) &&\r\n+                Objects.equals(getHost(), that.getHost()) &&\r\n+                Objects.equals(getPort(), that.getPort());\r\n+        for (Map.Entry<String, String> entry : this.getMetadata().entrySet()) {\r\n+            if (entry.getKey().equals(REVISION_KEY)) {\r\n+                continue;\r\n+            }\r\n+            equals = equals && entry.getValue().equals(that.getMetadata().get(entry.getKey()));\r\n+        }\r\n+\r\n+        return equals;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        int result = Objects.hash(getServiceName(), getHost(), getPort());\r\n+        for (Map.Entry<String, String> entry : this.getMetadata().entrySet()) {\r\n+            if (entry.getKey().equals(REVISION_KEY)) {\r\n+                continue;\r\n+            }\r\n+            result = 31 * result + (entry.getValue() == null ? 0 : entry.getValue().hashCode());\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"DefaultServiceInstance{\" +\r\n+                \"id='\" + id + '\\'' +\r\n+                \", serviceName='\" + serviceName + '\\'' +\r\n+                \", host='\" + host + '\\'' +\r\n+                \", port=\" + port +\r\n+                \", enabled=\" + enabled +\r\n+                \", healthy=\" + healthy +\r\n+                \", metadata=\" + metadata +\r\n+                '}';\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/EventPublishingServiceDiscovery.java", "source2": "org/apache/dubbo/registry/client/EventPublishingServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,315 +1,315 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.function.ThrowableAction;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.Page;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyedEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyingEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryExceptionEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializedEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializingEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstancePreUnregisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstanceRegisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstanceUnregisteredEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static java.util.Optional.empty;\n-import static java.util.Optional.of;\n-\n-/**\n- * The decorating implementation of {@link ServiceDiscovery} to published the {@link Event Dubbo event} when some actions are\n- * executing, including:\n- * <ul>\n- * <li>Lifecycle actions:</li>\n- * <table cellpadding=\"0\" cellspacing=\"0\" border=\"1\">\n- * <thead>\n- * <tr>\n- * <th>Action</th>\n- * <th>before</th>\n- * <th>After</th>\n- * </tr>\n- * </thead>\n- * <tbody>\n- * <tr>\n- * <td>{@link #INITIALIZE_ACTION start}</td>\n- * <td>{@link ServiceDiscoveryInitializingEvent}</td>\n- * <td>{@link ServiceDiscoveryInitializedEvent}</td>\n- * </tr>\n- * <tr>\n- * <td>{@link #DESTROY_ACTION stop}</td>\n- * <td>{@link ServiceDiscoveryDestroyingEvent}</td>\n- * <td>{@link ServiceDiscoveryDestroyedEvent}</td>\n- * </tr>\n- * </tbody>\n- * </table>\n- * <li>Registration actions:</li>\n- * <table cellpadding=\"0\" cellspacing=\"0\" border=\"1\">\n- * <thead>\n- * <tr>\n- * <th>Action</th>\n- * <th>before</th>\n- * <th>After</th>\n- * </tr>\n- * </thead>\n- * <tbody>\n- * <tr>\n- * <td>{@link #REGISTER_ACTION register}</td>\n- * <td>{@link ServiceInstancePreRegisteredEvent}</td>\n- * <td>{@link ServiceInstanceRegisteredEvent}</td>\n- * </tr>\n- * <tr>\n- * <td>{@link #UPDATE_ACTION update}</td>\n- * <td>N/A</td>\n- * <td>N/A</td>\n- * </tr>\n- * <tr>\n- * <td>{@link #UNREGISTER_ACTION unregister}</td>\n- * <td>N/A</td>\n- * <td>N/A</td>\n- * </tr>\n- * </tbody>\n- * </table>\n- * </ul>\n- *\n- * @see ServiceDiscovery\n- * @see ServiceDiscoveryInitializingEvent\n- * @see ServiceDiscoveryInitializedEvent\n- * @see ServiceInstancePreRegisteredEvent\n- * @see ServiceInstanceRegisteredEvent\n- * @see ServiceDiscoveryDestroyingEvent\n- * @see ServiceDiscoveryDestroyedEvent\n- * @since 2.7.5\n- */\n-final class EventPublishingServiceDiscovery implements ServiceDiscovery {\n-\n-    /**\n-     * @see ServiceInstancePreRegisteredEvent\n-     * @see ServiceInstanceRegisteredEvent\n-     */\n-    protected static final String REGISTER_ACTION = \"register\";\n-\n-    protected static final String UPDATE_ACTION = \"update\";\n-\n-    protected static final String UNREGISTER_ACTION = \"unregister\";\n-\n-    /**\n-     * @see ServiceDiscoveryInitializingEvent\n-     * @see ServiceDiscoveryInitializedEvent\n-     */\n-    protected static final String INITIALIZE_ACTION = \"initialize\";\n-\n-    /**\n-     * @see ServiceDiscoveryDestroyingEvent\n-     * @see ServiceDiscoveryDestroyedEvent\n-     */\n-    protected static final String DESTROY_ACTION = \"destroy\";\n-\n-    protected final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\n-\n-    protected final AtomicBoolean initialized = new AtomicBoolean(false);\n-\n-    protected final AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final ServiceDiscovery serviceDiscovery;\n-\n-    protected EventPublishingServiceDiscovery(ServiceDiscovery serviceDiscovery) {\n-        if (serviceDiscovery == null) {\n-            throw new NullPointerException(\"The ServiceDiscovery argument must not be null!\");\n-        }\n-        this.serviceDiscovery = serviceDiscovery;\n-    }\n-\n-    @Override\n-    public final void register(ServiceInstance serviceInstance) throws RuntimeException {\n-\n-        assertDestroyed(REGISTER_ACTION);\n-        assertInitialized(REGISTER_ACTION);\n-\n-        executeWithEvents(\n-                of(new ServiceInstancePreRegisteredEvent(serviceDiscovery, serviceInstance)),\n-                () -> serviceDiscovery.register(serviceInstance),\n-                of(new ServiceInstanceRegisteredEvent(serviceDiscovery, serviceInstance))\n-        );\n-    }\n-\n-    @Override\n-    public final void update(ServiceInstance serviceInstance) throws RuntimeException {\n-\n-        assertDestroyed(UPDATE_ACTION);\n-        assertInitialized(UPDATE_ACTION);\n-\n-        executeWithEvents(\n-                empty(),\n-                () -> serviceDiscovery.update(serviceInstance),\n-                empty()\n-        );\n-    }\n-\n-    @Override\n-    public final void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-\n-        assertDestroyed(UNREGISTER_ACTION);\n-        assertInitialized(UNREGISTER_ACTION);\n-\n-        executeWithEvents(\n-                of(new ServiceInstancePreUnregisteredEvent(this, serviceInstance)),\n-                () -> serviceDiscovery.unregister(serviceInstance),\n-                of(new ServiceInstanceUnregisteredEvent(this, serviceInstance))\n-        );\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return serviceDiscovery.getServices();\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-        return serviceDiscovery.getInstances(serviceName);\n-    }\n-\n-    @Override\n-    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize) throws NullPointerException, IllegalArgumentException {\n-        return serviceDiscovery.getInstances(serviceName, offset, pageSize);\n-    }\n-\n-    @Override\n-    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws NullPointerException, IllegalArgumentException {\n-        return serviceDiscovery.getInstances(serviceName, offset, pageSize, healthyOnly);\n-    }\n-\n-    @Override\n-    public Map<String, Page<ServiceInstance>> getInstances(Iterable<String> serviceNames, int offset, int requestSize) throws NullPointerException, IllegalArgumentException {\n-        return serviceDiscovery.getInstances(serviceNames, offset, requestSize);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return serviceDiscovery.toString();\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\n-        serviceDiscovery.addServiceInstancesChangedListener(listener);\n-        eventDispatcher.addEventListener(listener);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return serviceDiscovery.getUrl();\n-    }\n-\n-    @Override\n-    public ServiceInstance getLocalInstance() {\n-        return serviceDiscovery.getLocalInstance();\n-    }\n-\n-    @Override\n-    public void initialize(URL registryURL) {\n-\n-        assertInitialized(INITIALIZE_ACTION);\n-\n-        if (isInitialized()) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"It's ignored to start current ServiceDiscovery, because it has been started.\");\n-            }\n-            return;\n-        }\n-\n-        executeWithEvents(\n-                of(new ServiceDiscoveryInitializingEvent(this, serviceDiscovery)),\n-                () -> serviceDiscovery.initialize(registryURL),\n-                of(new ServiceDiscoveryInitializedEvent(this, serviceDiscovery))\n-        );\n-\n-        // doesn't start -> started\n-        initialized.compareAndSet(false, true);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-\n-        assertDestroyed(DESTROY_ACTION);\n-\n-        if (isDestroyed()) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"It's ignored to stop current ServiceDiscovery, because it has been stopped.\");\n-            }\n-            return;\n-        }\n-\n-        executeWithEvents(\n-                of(new ServiceDiscoveryDestroyingEvent(this, serviceDiscovery)),\n-                serviceDiscovery::destroy,\n-                of(new ServiceDiscoveryDestroyedEvent(this, serviceDiscovery))\n-        );\n-\n-        // doesn't stop -> stopped\n-        destroyed.compareAndSet(false, true);\n-    }\n-\n-    protected final void executeWithEvents(Optional<? extends Event> beforeEvent,\n-                                           ThrowableAction action,\n-                                           Optional<? extends Event> afterEvent) {\n-        beforeEvent.ifPresent(this::dispatchEvent);\n-        try {\n-            action.execute();\n-        } catch (Throwable e) {\n-            dispatchEvent(new ServiceDiscoveryExceptionEvent(this, serviceDiscovery, e));\n-        }\n-        afterEvent.ifPresent(this::dispatchEvent);\n-    }\n-\n-    private void dispatchEvent(Event event) {\n-        eventDispatcher.dispatch(event);\n-    }\n-\n-    public final boolean isInitialized() {\n-        return initialized.get();\n-    }\n-\n-    public final boolean isDestroyed() {\n-        return destroyed.get();\n-    }\n-\n-    protected void assertDestroyed(String action) throws IllegalStateException {\n-        if (!isInitialized()) {\n-            throw new IllegalStateException(\"The action[\" + action + \"] is rejected, because the ServiceDiscovery is not initialized yet.\");\n-        }\n-    }\n-\n-    protected void assertInitialized(String action) throws IllegalStateException {\n-        if (isDestroyed()) {\n-            throw new IllegalStateException(\"The action[\" + action + \"] is rejected, because the ServiceDiscovery is destroyed already.\");\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.function.ThrowableAction;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.Page;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyedEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyingEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryExceptionEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializedEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializingEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancePreUnregisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstanceRegisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstanceUnregisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static java.util.Optional.empty;\r\n+import static java.util.Optional.of;\r\n+\r\n+/**\r\n+ * The decorating implementation of {@link ServiceDiscovery} to published the {@link Event Dubbo event} when some actions are\r\n+ * executing, including:\r\n+ * <ul>\r\n+ * <li>Lifecycle actions:</li>\r\n+ * <table cellpadding=\"0\" cellspacing=\"0\" border=\"1\">\r\n+ * <thead>\r\n+ * <tr>\r\n+ * <th>Action</th>\r\n+ * <th>before</th>\r\n+ * <th>After</th>\r\n+ * </tr>\r\n+ * </thead>\r\n+ * <tbody>\r\n+ * <tr>\r\n+ * <td>{@link #INITIALIZE_ACTION start}</td>\r\n+ * <td>{@link ServiceDiscoveryInitializingEvent}</td>\r\n+ * <td>{@link ServiceDiscoveryInitializedEvent}</td>\r\n+ * </tr>\r\n+ * <tr>\r\n+ * <td>{@link #DESTROY_ACTION stop}</td>\r\n+ * <td>{@link ServiceDiscoveryDestroyingEvent}</td>\r\n+ * <td>{@link ServiceDiscoveryDestroyedEvent}</td>\r\n+ * </tr>\r\n+ * </tbody>\r\n+ * </table>\r\n+ * <li>Registration actions:</li>\r\n+ * <table cellpadding=\"0\" cellspacing=\"0\" border=\"1\">\r\n+ * <thead>\r\n+ * <tr>\r\n+ * <th>Action</th>\r\n+ * <th>before</th>\r\n+ * <th>After</th>\r\n+ * </tr>\r\n+ * </thead>\r\n+ * <tbody>\r\n+ * <tr>\r\n+ * <td>{@link #REGISTER_ACTION register}</td>\r\n+ * <td>{@link ServiceInstancePreRegisteredEvent}</td>\r\n+ * <td>{@link ServiceInstanceRegisteredEvent}</td>\r\n+ * </tr>\r\n+ * <tr>\r\n+ * <td>{@link #UPDATE_ACTION update}</td>\r\n+ * <td>N/A</td>\r\n+ * <td>N/A</td>\r\n+ * </tr>\r\n+ * <tr>\r\n+ * <td>{@link #UNREGISTER_ACTION unregister}</td>\r\n+ * <td>N/A</td>\r\n+ * <td>N/A</td>\r\n+ * </tr>\r\n+ * </tbody>\r\n+ * </table>\r\n+ * </ul>\r\n+ *\r\n+ * @see ServiceDiscovery\r\n+ * @see ServiceDiscoveryInitializingEvent\r\n+ * @see ServiceDiscoveryInitializedEvent\r\n+ * @see ServiceInstancePreRegisteredEvent\r\n+ * @see ServiceInstanceRegisteredEvent\r\n+ * @see ServiceDiscoveryDestroyingEvent\r\n+ * @see ServiceDiscoveryDestroyedEvent\r\n+ * @since 2.7.5\r\n+ */\r\n+final class EventPublishingServiceDiscovery implements ServiceDiscovery {\r\n+\r\n+    /**\r\n+     * @see ServiceInstancePreRegisteredEvent\r\n+     * @see ServiceInstanceRegisteredEvent\r\n+     */\r\n+    protected static final String REGISTER_ACTION = \"register\";\r\n+\r\n+    protected static final String UPDATE_ACTION = \"update\";\r\n+\r\n+    protected static final String UNREGISTER_ACTION = \"unregister\";\r\n+\r\n+    /**\r\n+     * @see ServiceDiscoveryInitializingEvent\r\n+     * @see ServiceDiscoveryInitializedEvent\r\n+     */\r\n+    protected static final String INITIALIZE_ACTION = \"initialize\";\r\n+\r\n+    /**\r\n+     * @see ServiceDiscoveryDestroyingEvent\r\n+     * @see ServiceDiscoveryDestroyedEvent\r\n+     */\r\n+    protected static final String DESTROY_ACTION = \"destroy\";\r\n+\r\n+    protected final EventDispatcher eventDispatcher = EventDispatcher.getDefaultExtension();\r\n+\r\n+    protected final AtomicBoolean initialized = new AtomicBoolean(false);\r\n+\r\n+    protected final AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final ServiceDiscovery serviceDiscovery;\r\n+\r\n+    protected EventPublishingServiceDiscovery(ServiceDiscovery serviceDiscovery) {\r\n+        if (serviceDiscovery == null) {\r\n+            throw new NullPointerException(\"The ServiceDiscovery argument must not be null!\");\r\n+        }\r\n+        this.serviceDiscovery = serviceDiscovery;\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void register(ServiceInstance serviceInstance) throws RuntimeException {\r\n+\r\n+        assertDestroyed(REGISTER_ACTION);\r\n+        assertInitialized(REGISTER_ACTION);\r\n+\r\n+        executeWithEvents(\r\n+                of(new ServiceInstancePreRegisteredEvent(serviceDiscovery, serviceInstance)),\r\n+                () -> serviceDiscovery.register(serviceInstance),\r\n+                of(new ServiceInstanceRegisteredEvent(serviceDiscovery, serviceInstance))\r\n+        );\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void update(ServiceInstance serviceInstance) throws RuntimeException {\r\n+\r\n+        assertDestroyed(UPDATE_ACTION);\r\n+        assertInitialized(UPDATE_ACTION);\r\n+\r\n+        executeWithEvents(\r\n+                empty(),\r\n+                () -> serviceDiscovery.update(serviceInstance),\r\n+                empty()\r\n+        );\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+\r\n+        assertDestroyed(UNREGISTER_ACTION);\r\n+        assertInitialized(UNREGISTER_ACTION);\r\n+\r\n+        executeWithEvents(\r\n+                of(new ServiceInstancePreUnregisteredEvent(this, serviceInstance)),\r\n+                () -> serviceDiscovery.unregister(serviceInstance),\r\n+                of(new ServiceInstanceUnregisteredEvent(this, serviceInstance))\r\n+        );\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return serviceDiscovery.getServices();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+        return serviceDiscovery.getInstances(serviceName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize) throws NullPointerException, IllegalArgumentException {\r\n+        return serviceDiscovery.getInstances(serviceName, offset, pageSize);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws NullPointerException, IllegalArgumentException {\r\n+        return serviceDiscovery.getInstances(serviceName, offset, pageSize, healthyOnly);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Page<ServiceInstance>> getInstances(Iterable<String> serviceNames, int offset, int requestSize) throws NullPointerException, IllegalArgumentException {\r\n+        return serviceDiscovery.getInstances(serviceNames, offset, requestSize);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return serviceDiscovery.toString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\r\n+        serviceDiscovery.addServiceInstancesChangedListener(listener);\r\n+        eventDispatcher.addEventListener(listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return serviceDiscovery.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public ServiceInstance getLocalInstance() {\r\n+        return serviceDiscovery.getLocalInstance();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) {\r\n+\r\n+        assertInitialized(INITIALIZE_ACTION);\r\n+\r\n+        if (isInitialized()) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"It's ignored to start current ServiceDiscovery, because it has been started.\");\r\n+            }\r\n+            return;\r\n+        }\r\n+\r\n+        executeWithEvents(\r\n+                of(new ServiceDiscoveryInitializingEvent(this, serviceDiscovery)),\r\n+                () -> serviceDiscovery.initialize(registryURL),\r\n+                of(new ServiceDiscoveryInitializedEvent(this, serviceDiscovery))\r\n+        );\r\n+\r\n+        // doesn't start -> started\r\n+        initialized.compareAndSet(false, true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+\r\n+        assertDestroyed(DESTROY_ACTION);\r\n+\r\n+        if (isDestroyed()) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"It's ignored to stop current ServiceDiscovery, because it has been stopped.\");\r\n+            }\r\n+            return;\r\n+        }\r\n+\r\n+        executeWithEvents(\r\n+                of(new ServiceDiscoveryDestroyingEvent(this, serviceDiscovery)),\r\n+                serviceDiscovery::destroy,\r\n+                of(new ServiceDiscoveryDestroyedEvent(this, serviceDiscovery))\r\n+        );\r\n+\r\n+        // doesn't stop -> stopped\r\n+        destroyed.compareAndSet(false, true);\r\n+    }\r\n+\r\n+    protected final void executeWithEvents(Optional<? extends Event> beforeEvent,\r\n+                                           ThrowableAction action,\r\n+                                           Optional<? extends Event> afterEvent) {\r\n+        beforeEvent.ifPresent(this::dispatchEvent);\r\n+        try {\r\n+            action.execute();\r\n+        } catch (Throwable e) {\r\n+            dispatchEvent(new ServiceDiscoveryExceptionEvent(this, serviceDiscovery, e));\r\n+        }\r\n+        afterEvent.ifPresent(this::dispatchEvent);\r\n+    }\r\n+\r\n+    private void dispatchEvent(Event event) {\r\n+        eventDispatcher.dispatch(event);\r\n+    }\r\n+\r\n+    public final boolean isInitialized() {\r\n+        return initialized.get();\r\n+    }\r\n+\r\n+    public final boolean isDestroyed() {\r\n+        return destroyed.get();\r\n+    }\r\n+\r\n+    protected void assertDestroyed(String action) throws IllegalStateException {\r\n+        if (!isInitialized()) {\r\n+            throw new IllegalStateException(\"The action[\" + action + \"] is rejected, because the ServiceDiscovery is not initialized yet.\");\r\n+        }\r\n+    }\r\n+\r\n+    protected void assertInitialized(String action) throws IllegalStateException {\r\n+        if (isDestroyed()) {\r\n+            throw new IllegalStateException(\"The action[\" + action + \"] is rejected, because the ServiceDiscovery is destroyed already.\");\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/FileSystemServiceDiscovery.java", "source2": "org/apache/dubbo/registry/client/FileSystemServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,221 +1,221 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;\n-import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-\n-import com.alibaba.fastjson.JSON;\n-import org.apache.commons.io.FileUtils;\n-\n-import java.io.File;\n-import java.io.IOException;\n-import java.nio.channels.FileChannel;\n-import java.nio.channels.FileLock;\n-import java.nio.file.LinkOption;\n-import java.nio.file.Path;\n-import java.nio.file.StandardOpenOption;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.stream.Collectors;\n-\n-import static com.alibaba.fastjson.JSON.toJSONString;\n-import static java.lang.String.format;\n-import static java.nio.channels.FileChannel.open;\n-import static org.apache.dubbo.common.config.configcenter.DynamicConfiguration.DEFAULT_GROUP;\n-import static org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration.CONFIG_CENTER_DIR_PARAM_NAME;\n-\n-/**\n- * File System {@link ServiceDiscovery} implementation\n- *\n- * @see FileSystemDynamicConfiguration\n- * @since 2.7.5\n- */\n-public class FileSystemServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final Map<File, FileLock> fileLocksCache = new ConcurrentHashMap<>();\n-\n-    private FileSystemDynamicConfiguration dynamicConfiguration;\n-\n-    @Override\n-    public void onEvent(ServiceInstancesChangedEvent event) {\n-\n-    }\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        dynamicConfiguration = createDynamicConfiguration(registryURL);\n-        registerDubboShutdownHook();\n-        registerListener();\n-    }\n-\n-    private void registerDubboShutdownHook() {\n-        ShutdownHookCallbacks.INSTANCE.addCallback(this::destroy);\n-    }\n-\n-    private void registerListener() {\n-        getServices().forEach(serviceName -> {\n-            dynamicConfiguration.getConfigKeys(DEFAULT_GROUP).forEach(serviceInstanceId -> {\n-                dynamicConfiguration.addListener(serviceInstanceId, serviceName, this::onConfigChanged);\n-            });\n-        });\n-    }\n-\n-    public void onConfigChanged(ConfigChangedEvent event) {\n-\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-        dynamicConfiguration.close();\n-        releaseAndRemoveRegistrationFiles();\n-    }\n-\n-    private void releaseAndRemoveRegistrationFiles() {\n-        fileLocksCache.keySet().forEach(file -> {\n-            releaseFileLock(file);\n-            removeFile(file);\n-        });\n-    }\n-\n-    private void removeFile(File file) {\n-        FileUtils.deleteQuietly(file);\n-    }\n-\n-    private String getServiceInstanceId(ServiceInstance serviceInstance) {\n-        String id = serviceInstance.getId();\n-        if (StringUtils.isBlank(id)) {\n-            return serviceInstance.getHost() + \".\" + serviceInstance.getPort();\n-        }\n-        return id;\n-    }\n-\n-    private String getServiceName(ServiceInstance serviceInstance) {\n-        return serviceInstance.getServiceName();\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) {\n-        return dynamicConfiguration.getConfigKeys(DEFAULT_GROUP)\n-                .stream()\n-                .map(serviceInstanceId -> dynamicConfiguration.getConfig(serviceInstanceId, serviceName))\n-                .map(content -> JSON.parseObject(content, DefaultServiceInstance.class))\n-                .collect(Collectors.toList());\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return null;\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        String serviceInstanceId = getServiceInstanceId(serviceInstance);\n-        String serviceName = getServiceName(serviceInstance);\n-        String content = toJSONString(serviceInstance);\n-        if (dynamicConfiguration.publishConfig(serviceInstanceId, serviceName, content)) {\n-            lockFile(serviceInstanceId, serviceName);\n-        }\n-    }\n-\n-    private void lockFile(String serviceInstanceId, String serviceName) {\n-        File serviceInstanceFile = serviceInstanceFile(serviceInstanceId, serviceName);\n-        Path serviceInstanceFilePath = serviceInstanceFile.toPath();\n-\n-        fileLocksCache.computeIfAbsent(serviceInstanceFile, file -> {\n-            FileLock fileLock = null;\n-            try {\n-                FileChannel fileChannel = open(serviceInstanceFilePath, StandardOpenOption.READ, StandardOpenOption.WRITE, LinkOption.NOFOLLOW_LINKS);\n-                fileLock = fileChannel.tryLock();\n-            } catch (IOException e) {\n-                if (logger.isErrorEnabled()) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-            if (fileLock != null) {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(format(\"%s has been locked\", serviceInstanceFilePath.toAbsolutePath()));\n-                }\n-            }\n-            return fileLock;\n-        });\n-    }\n-\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        register(serviceInstance);\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        String key = getServiceInstanceId(serviceInstance);\n-        String group = getServiceName(serviceInstance);\n-        releaseFileLock(key, group);\n-        dynamicConfiguration.removeConfig(key, group);\n-    }\n-\n-    private void releaseFileLock(String serviceInstanceId, String serviceName) {\n-        File serviceInstanceFile = serviceInstanceFile(serviceInstanceId, serviceName);\n-        releaseFileLock(serviceInstanceFile);\n-    }\n-\n-    private void releaseFileLock(File serviceInstanceFile) {\n-        fileLocksCache.computeIfPresent(serviceInstanceFile, (f, fileLock) -> {\n-            releaseFileLock(fileLock);\n-            if (logger.isInfoEnabled()) {\n-                logger.info(format(\"The file[%s] has been released\", serviceInstanceFile.getAbsolutePath()));\n-            }\n-            return null;\n-        });\n-    }\n-\n-    private void releaseFileLock(FileLock fileLock) {\n-        try (FileChannel fileChannel = fileLock.channel()) {\n-            fileLock.release();\n-        } catch (IOException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage(), e);\n-            }\n-        }\n-    }\n-\n-    private File serviceInstanceFile(String serviceInstanceId, String serviceName) {\n-        return dynamicConfiguration.configFile(serviceInstanceId, serviceName);\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return dynamicConfiguration.getConfigGroups();\n-    }\n-\n-    private static FileSystemDynamicConfiguration createDynamicConfiguration(URL connectionURL) {\n-        String path = System.getProperty(\"user.home\") + File.separator + \".dubbo\" + File.separator + \"registry\";\n-        return new FileSystemDynamicConfiguration(connectionURL.addParameter(CONFIG_CENTER_DIR_PARAM_NAME, path));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration;\r\n+import org.apache.dubbo.common.lang.ShutdownHookCallbacks;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import org.apache.commons.io.FileUtils;\r\n+\r\n+import java.io.File;\r\n+import java.io.IOException;\r\n+import java.nio.channels.FileChannel;\r\n+import java.nio.channels.FileLock;\r\n+import java.nio.file.LinkOption;\r\n+import java.nio.file.Path;\r\n+import java.nio.file.StandardOpenOption;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static com.alibaba.fastjson.JSON.toJSONString;\r\n+import static java.lang.String.format;\r\n+import static java.nio.channels.FileChannel.open;\r\n+import static org.apache.dubbo.common.config.configcenter.DynamicConfiguration.DEFAULT_GROUP;\r\n+import static org.apache.dubbo.common.config.configcenter.file.FileSystemDynamicConfiguration.CONFIG_CENTER_DIR_PARAM_NAME;\r\n+\r\n+/**\r\n+ * File System {@link ServiceDiscovery} implementation\r\n+ *\r\n+ * @see FileSystemDynamicConfiguration\r\n+ * @since 2.7.5\r\n+ */\r\n+public class FileSystemServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final Map<File, FileLock> fileLocksCache = new ConcurrentHashMap<>();\r\n+\r\n+    private FileSystemDynamicConfiguration dynamicConfiguration;\r\n+\r\n+    @Override\r\n+    public void onEvent(ServiceInstancesChangedEvent event) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        dynamicConfiguration = createDynamicConfiguration(registryURL);\r\n+        registerDubboShutdownHook();\r\n+        registerListener();\r\n+    }\r\n+\r\n+    private void registerDubboShutdownHook() {\r\n+        ShutdownHookCallbacks.INSTANCE.addCallback(this::destroy);\r\n+    }\r\n+\r\n+    private void registerListener() {\r\n+        getServices().forEach(serviceName -> {\r\n+            dynamicConfiguration.getConfigKeys(DEFAULT_GROUP).forEach(serviceInstanceId -> {\r\n+                dynamicConfiguration.addListener(serviceInstanceId, serviceName, this::onConfigChanged);\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    public void onConfigChanged(ConfigChangedEvent event) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+        dynamicConfiguration.close();\r\n+        releaseAndRemoveRegistrationFiles();\r\n+    }\r\n+\r\n+    private void releaseAndRemoveRegistrationFiles() {\r\n+        fileLocksCache.keySet().forEach(file -> {\r\n+            releaseFileLock(file);\r\n+            removeFile(file);\r\n+        });\r\n+    }\r\n+\r\n+    private void removeFile(File file) {\r\n+        FileUtils.deleteQuietly(file);\r\n+    }\r\n+\r\n+    private String getServiceInstanceId(ServiceInstance serviceInstance) {\r\n+        String id = serviceInstance.getId();\r\n+        if (StringUtils.isBlank(id)) {\r\n+            return serviceInstance.getHost() + \".\" + serviceInstance.getPort();\r\n+        }\r\n+        return id;\r\n+    }\r\n+\r\n+    private String getServiceName(ServiceInstance serviceInstance) {\r\n+        return serviceInstance.getServiceName();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) {\r\n+        return dynamicConfiguration.getConfigKeys(DEFAULT_GROUP)\r\n+                .stream()\r\n+                .map(serviceInstanceId -> dynamicConfiguration.getConfig(serviceInstanceId, serviceName))\r\n+                .map(content -> JSON.parseObject(content, DefaultServiceInstance.class))\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        String serviceInstanceId = getServiceInstanceId(serviceInstance);\r\n+        String serviceName = getServiceName(serviceInstance);\r\n+        String content = toJSONString(serviceInstance);\r\n+        if (dynamicConfiguration.publishConfig(serviceInstanceId, serviceName, content)) {\r\n+            lockFile(serviceInstanceId, serviceName);\r\n+        }\r\n+    }\r\n+\r\n+    private void lockFile(String serviceInstanceId, String serviceName) {\r\n+        File serviceInstanceFile = serviceInstanceFile(serviceInstanceId, serviceName);\r\n+        Path serviceInstanceFilePath = serviceInstanceFile.toPath();\r\n+\r\n+        fileLocksCache.computeIfAbsent(serviceInstanceFile, file -> {\r\n+            FileLock fileLock = null;\r\n+            try {\r\n+                FileChannel fileChannel = open(serviceInstanceFilePath, StandardOpenOption.READ, StandardOpenOption.WRITE, LinkOption.NOFOLLOW_LINKS);\r\n+                fileLock = fileChannel.tryLock();\r\n+            } catch (IOException e) {\r\n+                if (logger.isErrorEnabled()) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+            if (fileLock != null) {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(format(\"%s has been locked\", serviceInstanceFilePath.toAbsolutePath()));\r\n+                }\r\n+            }\r\n+            return fileLock;\r\n+        });\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        register(serviceInstance);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        String key = getServiceInstanceId(serviceInstance);\r\n+        String group = getServiceName(serviceInstance);\r\n+        releaseFileLock(key, group);\r\n+        dynamicConfiguration.removeConfig(key, group);\r\n+    }\r\n+\r\n+    private void releaseFileLock(String serviceInstanceId, String serviceName) {\r\n+        File serviceInstanceFile = serviceInstanceFile(serviceInstanceId, serviceName);\r\n+        releaseFileLock(serviceInstanceFile);\r\n+    }\r\n+\r\n+    private void releaseFileLock(File serviceInstanceFile) {\r\n+        fileLocksCache.computeIfPresent(serviceInstanceFile, (f, fileLock) -> {\r\n+            releaseFileLock(fileLock);\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(format(\"The file[%s] has been released\", serviceInstanceFile.getAbsolutePath()));\r\n+            }\r\n+            return null;\r\n+        });\r\n+    }\r\n+\r\n+    private void releaseFileLock(FileLock fileLock) {\r\n+        try (FileChannel fileChannel = fileLock.channel()) {\r\n+            fileLock.release();\r\n+        } catch (IOException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private File serviceInstanceFile(String serviceInstanceId, String serviceName) {\r\n+        return dynamicConfiguration.configFile(serviceInstanceId, serviceName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return dynamicConfiguration.getConfigGroups();\r\n+    }\r\n+\r\n+    private static FileSystemDynamicConfiguration createDynamicConfiguration(URL connectionURL) {\r\n+        String path = System.getProperty(\"user.home\") + File.separator + \".dubbo\" + File.separator + \"registry\";\r\n+        return new FileSystemDynamicConfiguration(connectionURL.addParameter(CONFIG_CENTER_DIR_PARAM_NAME, path));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/InstanceAddressURL.java", "source2": "org/apache/dubbo/registry/client/InstanceAddressURL.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,379 +1,379 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-public class InstanceAddressURL extends URL {\n-    private ServiceInstance instance;\n-    private MetadataInfo metadataInfo;\n-\n-    // cached numbers\n-    private volatile transient Map<String, Number> numbers;\n-    private volatile transient Map<String, Map<String, Number>> methodNumbers;\n-\n-    public InstanceAddressURL() {\n-    }\n-\n-    public InstanceAddressURL(\n-            ServiceInstance instance,\n-            MetadataInfo metadataInfo\n-    ) {\n-        this.instance = instance;\n-        this.metadataInfo = metadataInfo;\n-        this.host = instance.getHost();\n-        this.port = instance.getPort();\n-    }\n-\n-    public ServiceInstance getInstance() {\n-        return instance;\n-    }\n-\n-    public MetadataInfo getMetadataInfo() {\n-        return metadataInfo;\n-    }\n-\n-    @Override\n-    public String getServiceInterface() {\n-        return RpcContext.getContext().getInterfaceName();\n-    }\n-\n-    public String getGroup() {\n-        return RpcContext.getContext().getGroup();\n-    }\n-\n-    public String getVersion() {\n-        return RpcContext.getContext().getVersion();\n-    }\n-\n-    @Override\n-    public String getProtocol() {\n-        return RpcContext.getContext().getProtocol();\n-    }\n-\n-    @Override\n-    public String getProtocolServiceKey() {\n-        return RpcContext.getContext().getProtocolServiceKey();\n-    }\n-\n-    @Override\n-    public String getServiceKey() {\n-        return RpcContext.getContext().getServiceKey();\n-    }\n-\n-    @Override\n-    public String getAddress() {\n-        return instance.getAddress();\n-    }\n-\n-    @Override\n-    public String getPath() {\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(getProtocolServiceKey());\n-        return serviceInfo.getPath();\n-    }\n-\n-    @Override\n-    public String getParameter(String key) {\n-        if (VERSION_KEY.equals(key)) {\n-            return getVersion();\n-        } else if (GROUP_KEY.equals(key)) {\n-            return getGroup();\n-        } else if (INTERFACE_KEY.equals(key)) {\n-            return getServiceInterface();\n-        } else if (REMOTE_APPLICATION_KEY.equals(key)) {\n-            return instance.getServiceName();\n-        }\n-\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            return getInstanceParameter(key);\n-        }\n-        return getServiceParameter(protocolServiceKey, key);\n-    }\n-\n-    @Override\n-    public String getServiceParameter(String service, String key) {\n-        String value = getInstanceParameter(key);\n-        if (StringUtils.isEmpty(value) && metadataInfo != null) {\n-            value = metadataInfo.getParameter(key, service);\n-        }\n-        return value;\n-    }\n-\n-    /**\n-     * method parameter only exists in ServiceInfo\n-     *\n-     * @param method\n-     * @param key\n-     * @return\n-     */\n-    @Override\n-    public String getServiceMethodParameter(String protocolServiceKey, String method, String key) {\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\n-        String value = serviceInfo.getMethodParameter(method, key, null);\n-        if (StringUtils.isNotEmpty(value)) {\n-            return value;\n-        }\n-        return getParameter(key);\n-    }\n-\n-    @Override\n-    public String getMethodParameter(String method, String key) {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            return null;\n-        }\n-        return getServiceMethodParameter(protocolServiceKey, method, key);\n-    }\n-\n-    /**\n-     * method parameter only exists in ServiceInfo\n-     *\n-     * @param method\n-     * @param key\n-     * @return\n-     */\n-    @Override\n-    public boolean hasServiceMethodParameter(String protocolServiceKey, String method, String key) {\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\n-\n-        if (method == null) {\n-            String suffix = \".\" + key;\n-            for (String fullKey : getParameters().keySet()) {\n-                if (fullKey.endsWith(suffix)) {\n-                    return true;\n-                }\n-            }\n-            return false;\n-        }\n-        if (key == null) {\n-            String prefix = method + \".\";\n-            for (String fullKey : getParameters().keySet()) {\n-                if (fullKey.startsWith(prefix)) {\n-                    return true;\n-                }\n-            }\n-            return false;\n-        }\n-\n-        return serviceInfo.hasMethodParameter(method, key);\n-    }\n-\n-    @Override\n-    public boolean hasMethodParameter(String method, String key) {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            return false;\n-        }\n-        return hasServiceMethodParameter(protocolServiceKey, method, key);\n-    }\n-\n-    /**\n-     * method parameter only exists in ServiceInfo\n-     *\n-     * @param method\n-     * @return\n-     */\n-    @Override\n-    public boolean hasServiceMethodParameter(String protocolServiceKey, String method) {\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\n-        return serviceInfo.hasMethodParameter(method);\n-    }\n-\n-    @Override\n-    public boolean hasMethodParameter(String method) {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            return false;\n-        }\n-        return hasServiceMethodParameter(protocolServiceKey, method);\n-    }\n-\n-    /**\n-     * Avoid calling this method in RPC call.\n-     *\n-     * @return\n-     */\n-    @Override\n-    public Map<String, String> getServiceParameters(String protocolServiceKey) {\n-        Map<String, String> instanceParams = getInstanceMetadata();\n-        Map<String, String> metadataParams = (metadataInfo == null ? new HashMap<>() : metadataInfo.getParameters(protocolServiceKey));\n-        int i = instanceParams == null ? 0 : instanceParams.size();\n-        int j = metadataParams == null ? 0 : metadataParams.size();\n-        Map<String, String> params = new HashMap<>((int) ((i + j) / 0.75) + 1);\n-        if (instanceParams != null) {\n-            params.putAll(instanceParams);\n-        }\n-        if (metadataParams != null) {\n-            params.putAll(metadataParams);\n-        }\n-        return params;\n-    }\n-\n-    @Override\n-    public Map<String, String> getParameters() {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            return getInstance().getAllParams();\n-        }\n-        return getServiceParameters(protocolServiceKey);\n-    }\n-\n-    @Override\n-    public URL addParameter(String key, String value) {\n-        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\n-            return this;\n-        }\n-\n-        getInstance().getExtendParams().put(key, value);\n-        return this;\n-    }\n-\n-    @Override\n-    public URL addParameterIfAbsent(String key, String value) {\n-        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\n-            return this;\n-        }\n-\n-        getInstance().getExtendParams().putIfAbsent(key, value);\n-        return this;\n-    }\n-\n-    public URL addServiceParameter(String protocolServiceKey, String key, String value) {\n-        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\n-            return this;\n-        }\n-\n-        getMetadataInfo().getServiceInfo(protocolServiceKey).addParameter(key, value);\n-        return this;\n-    }\n-\n-    public URL addServiceParameterIfAbsent(String protocolServiceKey, String key, String value) {\n-        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\n-            return this;\n-        }\n-\n-        getMetadataInfo().getServiceInfo(protocolServiceKey).addParameterIfAbsent(key, value);\n-        return this;\n-    }\n-\n-    public URL addConsumerParams(String protocolServiceKey, Map<String, String> params) {\n-        getMetadataInfo().getServiceInfo(protocolServiceKey).addConsumerParams(params);\n-        return this;\n-    }\n-\n-    @Override\n-    protected Map<String, Number> getServiceNumbers(String protocolServiceKey) {\n-        return getServiceInfo(protocolServiceKey).getNumbers();\n-    }\n-\n-    @Override\n-    protected Map<String, Number> getNumbers() {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            if (numbers == null) { // concurrent initialization is tolerant\n-                numbers = new ConcurrentHashMap<>();\n-            }\n-            return numbers;\n-        }\n-        return getServiceNumbers(protocolServiceKey);\n-    }\n-\n-    @Override\n-    protected Map<String, Map<String, Number>> getServiceMethodNumbers(String protocolServiceKey) {\n-        return getServiceInfo(protocolServiceKey).getMethodNumbers();\n-    }\n-\n-    @Override\n-    protected Map<String, Map<String, Number>> getMethodNumbers() {\n-        String protocolServiceKey = getProtocolServiceKey();\n-        if (protocolServiceKey == null) {\n-            if (methodNumbers == null) { // concurrent initialization is tolerant\n-                methodNumbers = new ConcurrentHashMap<>();\n-            }\n-            return methodNumbers;\n-        }\n-        return getServiceMethodNumbers(protocolServiceKey);\n-    }\n-\n-    private MetadataInfo.ServiceInfo getServiceInfo(String protocolServiceKey) {\n-        return metadataInfo.getServiceInfo(protocolServiceKey);\n-    }\n-\n-    private String getInstanceParameter(String key) {\n-        String value = this.instance.getMetadata().get(key);\n-        if (StringUtils.isNotEmpty(value)) {\n-            return value;\n-        }\n-        return this.instance.getExtendParams().get(key);\n-    }\n-\n-    private Map<String, String> getInstanceMetadata() {\n-        return this.instance.getMetadata();\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        // instance metadata equals\n-        if (obj == null) {\n-            return false;\n-        }\n-        if (!(obj instanceof InstanceAddressURL)) {\n-            return false;\n-        }\n-\n-        InstanceAddressURL that = (InstanceAddressURL) obj;\n-\n-        return this.getInstance().equals(that.getInstance());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return getInstance().hashCode();\n-    }\n-\n-    public String getServiceString(String service) {\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(service);\n-        if (serviceInfo == null) {\n-            return instance.toString();\n-        }\n-        return instance.toString() + serviceInfo.toString();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        if (instance == null) {\n-            return \"{}\";\n-        }\n-        if (metadataInfo == null) {\n-            return instance.toString();\n-        }\n-        return instance.toString() + metadataInfo.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+public class InstanceAddressURL extends URL {\r\n+    private ServiceInstance instance;\r\n+    private MetadataInfo metadataInfo;\r\n+\r\n+    // cached numbers\r\n+    private volatile transient Map<String, Number> numbers;\r\n+    private volatile transient Map<String, Map<String, Number>> methodNumbers;\r\n+\r\n+    public InstanceAddressURL() {\r\n+    }\r\n+\r\n+    public InstanceAddressURL(\r\n+            ServiceInstance instance,\r\n+            MetadataInfo metadataInfo\r\n+    ) {\r\n+        this.instance = instance;\r\n+        this.metadataInfo = metadataInfo;\r\n+        this.host = instance.getHost();\r\n+        this.port = instance.getPort();\r\n+    }\r\n+\r\n+    public ServiceInstance getInstance() {\r\n+        return instance;\r\n+    }\r\n+\r\n+    public MetadataInfo getMetadataInfo() {\r\n+        return metadataInfo;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceInterface() {\r\n+        return RpcContext.getContext().getInterfaceName();\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return RpcContext.getContext().getGroup();\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return RpcContext.getContext().getVersion();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getProtocol() {\r\n+        return RpcContext.getContext().getProtocol();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getProtocolServiceKey() {\r\n+        return RpcContext.getContext().getProtocolServiceKey();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceKey() {\r\n+        return RpcContext.getContext().getServiceKey();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAddress() {\r\n+        return instance.getAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getPath() {\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(getProtocolServiceKey());\r\n+        return serviceInfo.getPath();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getParameter(String key) {\r\n+        if (VERSION_KEY.equals(key)) {\r\n+            return getVersion();\r\n+        } else if (GROUP_KEY.equals(key)) {\r\n+            return getGroup();\r\n+        } else if (INTERFACE_KEY.equals(key)) {\r\n+            return getServiceInterface();\r\n+        } else if (REMOTE_APPLICATION_KEY.equals(key)) {\r\n+            return instance.getServiceName();\r\n+        }\r\n+\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            return getInstanceParameter(key);\r\n+        }\r\n+        return getServiceParameter(protocolServiceKey, key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceParameter(String service, String key) {\r\n+        String value = getInstanceParameter(key);\r\n+        if (StringUtils.isEmpty(value) && metadataInfo != null) {\r\n+            value = metadataInfo.getParameter(key, service);\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    /**\r\n+     * method parameter only exists in ServiceInfo\r\n+     *\r\n+     * @param method\r\n+     * @param key\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public String getServiceMethodParameter(String protocolServiceKey, String method, String key) {\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\r\n+        String value = serviceInfo.getMethodParameter(method, key, null);\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            return value;\r\n+        }\r\n+        return getParameter(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getMethodParameter(String method, String key) {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            return null;\r\n+        }\r\n+        return getServiceMethodParameter(protocolServiceKey, method, key);\r\n+    }\r\n+\r\n+    /**\r\n+     * method parameter only exists in ServiceInfo\r\n+     *\r\n+     * @param method\r\n+     * @param key\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public boolean hasServiceMethodParameter(String protocolServiceKey, String method, String key) {\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\r\n+\r\n+        if (method == null) {\r\n+            String suffix = \".\" + key;\r\n+            for (String fullKey : getParameters().keySet()) {\r\n+                if (fullKey.endsWith(suffix)) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+            return false;\r\n+        }\r\n+        if (key == null) {\r\n+            String prefix = method + \".\";\r\n+            for (String fullKey : getParameters().keySet()) {\r\n+                if (fullKey.startsWith(prefix)) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+            return false;\r\n+        }\r\n+\r\n+        return serviceInfo.hasMethodParameter(method, key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasMethodParameter(String method, String key) {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            return false;\r\n+        }\r\n+        return hasServiceMethodParameter(protocolServiceKey, method, key);\r\n+    }\r\n+\r\n+    /**\r\n+     * method parameter only exists in ServiceInfo\r\n+     *\r\n+     * @param method\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public boolean hasServiceMethodParameter(String protocolServiceKey, String method) {\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(protocolServiceKey);\r\n+        return serviceInfo.hasMethodParameter(method);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasMethodParameter(String method) {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            return false;\r\n+        }\r\n+        return hasServiceMethodParameter(protocolServiceKey, method);\r\n+    }\r\n+\r\n+    /**\r\n+     * Avoid calling this method in RPC call.\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public Map<String, String> getServiceParameters(String protocolServiceKey) {\r\n+        Map<String, String> instanceParams = getInstanceMetadata();\r\n+        Map<String, String> metadataParams = (metadataInfo == null ? new HashMap<>() : metadataInfo.getParameters(protocolServiceKey));\r\n+        int i = instanceParams == null ? 0 : instanceParams.size();\r\n+        int j = metadataParams == null ? 0 : metadataParams.size();\r\n+        Map<String, String> params = new HashMap<>((int) ((i + j) / 0.75) + 1);\r\n+        if (instanceParams != null) {\r\n+            params.putAll(instanceParams);\r\n+        }\r\n+        if (metadataParams != null) {\r\n+            params.putAll(metadataParams);\r\n+        }\r\n+        return params;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getParameters() {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            return getInstance().getAllParams();\r\n+        }\r\n+        return getServiceParameters(protocolServiceKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL addParameter(String key, String value) {\r\n+        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        getInstance().getExtendParams().put(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL addParameterIfAbsent(String key, String value) {\r\n+        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        getInstance().getExtendParams().putIfAbsent(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public URL addServiceParameter(String protocolServiceKey, String key, String value) {\r\n+        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        getMetadataInfo().getServiceInfo(protocolServiceKey).addParameter(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public URL addServiceParameterIfAbsent(String protocolServiceKey, String key, String value) {\r\n+        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {\r\n+            return this;\r\n+        }\r\n+\r\n+        getMetadataInfo().getServiceInfo(protocolServiceKey).addParameterIfAbsent(key, value);\r\n+        return this;\r\n+    }\r\n+\r\n+    public URL addConsumerParams(String protocolServiceKey, Map<String, String> params) {\r\n+        getMetadataInfo().getServiceInfo(protocolServiceKey).addConsumerParams(params);\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Map<String, Number> getServiceNumbers(String protocolServiceKey) {\r\n+        return getServiceInfo(protocolServiceKey).getNumbers();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Map<String, Number> getNumbers() {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            if (numbers == null) { // concurrent initialization is tolerant\r\n+                numbers = new ConcurrentHashMap<>();\r\n+            }\r\n+            return numbers;\r\n+        }\r\n+        return getServiceNumbers(protocolServiceKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Map<String, Map<String, Number>> getServiceMethodNumbers(String protocolServiceKey) {\r\n+        return getServiceInfo(protocolServiceKey).getMethodNumbers();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Map<String, Map<String, Number>> getMethodNumbers() {\r\n+        String protocolServiceKey = getProtocolServiceKey();\r\n+        if (protocolServiceKey == null) {\r\n+            if (methodNumbers == null) { // concurrent initialization is tolerant\r\n+                methodNumbers = new ConcurrentHashMap<>();\r\n+            }\r\n+            return methodNumbers;\r\n+        }\r\n+        return getServiceMethodNumbers(protocolServiceKey);\r\n+    }\r\n+\r\n+    private MetadataInfo.ServiceInfo getServiceInfo(String protocolServiceKey) {\r\n+        return metadataInfo.getServiceInfo(protocolServiceKey);\r\n+    }\r\n+\r\n+    private String getInstanceParameter(String key) {\r\n+        String value = this.instance.getMetadata().get(key);\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            return value;\r\n+        }\r\n+        return this.instance.getExtendParams().get(key);\r\n+    }\r\n+\r\n+    private Map<String, String> getInstanceMetadata() {\r\n+        return this.instance.getMetadata();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        // instance metadata equals\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+        if (!(obj instanceof InstanceAddressURL)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        InstanceAddressURL that = (InstanceAddressURL) obj;\r\n+\r\n+        return this.getInstance().equals(that.getInstance());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return getInstance().hashCode();\r\n+    }\r\n+\r\n+    public String getServiceString(String service) {\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServiceInfo(service);\r\n+        if (serviceInfo == null) {\r\n+            return instance.toString();\r\n+        }\r\n+        return instance.toString() + serviceInfo.toString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        if (instance == null) {\r\n+            return \"{}\";\r\n+        }\r\n+        if (metadataInfo == null) {\r\n+            return instance.toString();\r\n+        }\r\n+        return instance.toString() + metadataInfo.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/RegistryClusterIdentifier.java", "source2": "org/apache/dubbo/registry/client/RegistryClusterIdentifier.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_TYPE_KEY;\n-\n-@SPI\n-public interface RegistryClusterIdentifier {\n-    String providerKey(URL url);\n-\n-    String consumerKey(URL url);\n-\n-    static RegistryClusterIdentifier getExtension(URL url) {\n-        ExtensionLoader<RegistryClusterIdentifier> loader\n-                = ExtensionLoader.getExtensionLoader(RegistryClusterIdentifier.class);\n-        return loader.getExtension(url.getParameter(REGISTRY_CLUSTER_TYPE_KEY, \"default\"));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_TYPE_KEY;\r\n+\r\n+@SPI\r\n+public interface RegistryClusterIdentifier {\r\n+    String providerKey(URL url);\r\n+\r\n+    String consumerKey(URL url);\r\n+\r\n+    static RegistryClusterIdentifier getExtension(URL url) {\r\n+        ExtensionLoader<RegistryClusterIdentifier> loader\r\n+                = ExtensionLoader.getExtensionLoader(RegistryClusterIdentifier.class);\r\n+        return loader.getExtension(url.getParameter(REGISTRY_CLUSTER_TYPE_KEY, \"default\"));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceDiscovery.java", "source2": "org/apache/dubbo/registry/client/ServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,287 +1,287 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-import org.apache.dubbo.common.utils.Page;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import java.util.LinkedHashMap;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.stream.Stream;\n-\n-import static java.util.Collections.unmodifiableList;\n-import static java.util.Collections.unmodifiableMap;\n-import static org.apache.dubbo.event.EventDispatcher.getDefaultExtension;\n-\n-/**\n- * The common operations of Service Discovery\n- *\n- * @since 2.7.5\n- */\n-@SPI(\"zookeeper\")\n-public interface ServiceDiscovery extends Prioritized {\n-\n-    // ==================================== Lifecycle ==================================== //\n-\n-    /**\n-     * Initializes the {@link ServiceDiscovery}\n-     *\n-     * @param registryURL the {@link URL url} to connect service registry\n-     * @throws Exception If met with error\n-     */\n-    void initialize(URL registryURL) throws Exception;\n-\n-    /**\n-     * Destroy the {@link ServiceDiscovery}\n-     *\n-     * @throws Exception If met with error\n-     */\n-    void destroy() throws Exception;\n-\n-    // ==================================================================================== //\n-\n-    // =================================== Registration =================================== //\n-\n-    /**\n-     * Registers an instance of {@link ServiceInstance}.\n-     *\n-     * @param serviceInstance an instance of {@link ServiceInstance} to be registered\n-     * @throws RuntimeException if failed\n-     */\n-    void register(ServiceInstance serviceInstance) throws RuntimeException;\n-\n-    /**\n-     * Updates the registered {@link ServiceInstance}.\n-     *\n-     * @param serviceInstance the registered {@link ServiceInstance}\n-     * @throws RuntimeException if failed\n-     */\n-    void update(ServiceInstance serviceInstance) throws RuntimeException;\n-\n-    /**\n-     * Unregisters an instance of {@link ServiceInstance}.\n-     *\n-     * @param serviceInstance an instance of {@link ServiceInstance} to be unregistered\n-     * @throws RuntimeException if failed\n-     */\n-    void unregister(ServiceInstance serviceInstance) throws RuntimeException;\n-\n-    // ==================================================================================== //\n-\n-    // ==================================== Discovery ===================================== //\n-\n-    /**\n-     * Get the default size of pagination query\n-     *\n-     * @return the default value is 100\n-     */\n-    default int getDefaultPageSize() {\n-        return 100;\n-    }\n-\n-    /**\n-     * Gets all service names\n-     *\n-     * @return non-null read-only {@link Set}\n-     */\n-    Set<String> getServices();\n-\n-    /**\n-     * Gets all {@link ServiceInstance service instances} by the specified service name.\n-     *\n-     * @param serviceName the service name\n-     * @return non-null {@link List}\n-     * @throws NullPointerException if <code>serviceName</code> is <code>null</code>\n-     */\n-    default List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-\n-        List<ServiceInstance> allInstances = new LinkedList<>();\n-\n-        int offset = 0;\n-\n-        int pageSize = getDefaultPageSize();\n-\n-        Page<ServiceInstance> page = getInstances(serviceName, offset, pageSize);\n-\n-        allInstances.addAll(page.getData());\n-\n-        while (page.hasNext()) {\n-            offset += page.getDataSize();\n-            page = getInstances(serviceName, offset, pageSize);\n-            allInstances.addAll(page.getData());\n-        }\n-\n-        return unmodifiableList(allInstances);\n-    }\n-\n-    /**\n-     * Gets the {@link Page pagination} of {@link ServiceInstance service instances} by the specified service name.\n-     * It's equal to {@link #getInstances(String, int, int, boolean)} with <code>healthyOnly == true</code>\n-     *\n-     * @param serviceName the service name\n-     * @param offset      the offset of request , the number \"0\" indicates first page\n-     * @param pageSize    the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\n-     * @return non-null {@link Page} object\n-     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\n-     * @throws IllegalArgumentException      if <code>offset</code> or <code>pageSize</code> is negative number\n-     * @throws UnsupportedOperationException if not supported\n-     */\n-    default Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize) throws NullPointerException,\n-            IllegalArgumentException {\n-        return getInstances(serviceName, offset, pageSize, false);\n-    }\n-\n-    /**\n-     * Get the {@link Page pagination} of {@link ServiceInstance service instances} by the specified service name.\n-     * If <code>healthyOnly == true</code>, filter healthy instances only.\n-     *\n-     * @param serviceName the service name\n-     * @param offset      the offset of request , the number \"0\" indicates first page\n-     * @param pageSize    the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\n-     * @param healthyOnly if <code>true</code> , filter healthy instances only\n-     * @return non-null {@link Page} object\n-     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\n-     * @throws IllegalArgumentException      if <code>offset</code> or <code>pageSize</code> is negative number\n-     * @throws UnsupportedOperationException if not supported\n-     */\n-    default Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws\n-            NullPointerException, IllegalArgumentException, UnsupportedOperationException {\n-        throw new UnsupportedOperationException(\"Current implementation does not support pagination query method.\");\n-    }\n-\n-    /**\n-     * batch-get all {@link ServiceInstance service instances} by the specified service names\n-     *\n-     * @param serviceNames the multiple service names\n-     * @param offset       the offset of request , the number \"0\" indicates first page\n-     * @param requestSize  the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\n-     * @return non-null read-only {@link Map} whose key is the service name and value is\n-     * the {@link Page pagination} of {@link ServiceInstance service instances}\n-     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\n-     * @throws IllegalArgumentException      if <code>offset</code> or <code>requestSize</code> is negative number\n-     * @throws UnsupportedOperationException if not supported\n-     */\n-    default Map<String, Page<ServiceInstance>> getInstances(Iterable<String> serviceNames, int offset, int requestSize) throws\n-            NullPointerException, IllegalArgumentException {\n-        Map<String, Page<ServiceInstance>> instances = new LinkedHashMap<>();\n-        for (String serviceName : serviceNames) {\n-            instances.put(serviceName, getInstances(serviceName, offset, requestSize));\n-        }\n-        return unmodifiableMap(instances);\n-    }\n-\n-    /**\n-     * Add an instance of {@link ServiceInstancesChangedListener} for specified service\n-     * <p>\n-     * Default, current method will be invoked by {@link ServiceDiscoveryRegistry#subscribe(URL, NotifyListener)\n-     * the ServiceDiscoveryRegistry on the subscription}, and it's mandatory to\n-     * {@link EventDispatcher#addEventListener(EventListener) add} the {@link ServiceInstancesChangedListener} argument\n-     * into {@link EventDispatcher} whether the subclass implements same approach or not, thus this method is used to\n-     * trigger or adapt the vendor's change notification mechanism typically, like Zookeeper Watcher,\n-     * Nacos EventListener. If the registry observes the change, It's suggested that the implementation could invoke\n-     * {@link #dispatchServiceInstancesChangedEvent(String)} method or variants\n-     *\n-     * @param listener an instance of {@link ServiceInstancesChangedListener}\n-     * @throws NullPointerException\n-     * @throws IllegalArgumentException\n-     * @see EventPublishingServiceDiscovery\n-     * @see EventDispatcher\n-     */\n-    default void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\n-            throws NullPointerException, IllegalArgumentException {\n-    }\n-\n-    /**\n-     * unsubscribe to instances change event.\n-     * @param listener\n-     * @throws IllegalArgumentException\n-     */\n-    default void removeServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\n-            throws IllegalArgumentException {\n-    }\n-\n-    /**\n-     * Dispatch the {@link ServiceInstancesChangedEvent}\n-     *\n-     * @param serviceName the name of service whose service instances have been changed\n-     */\n-    default void dispatchServiceInstancesChangedEvent(String serviceName) {\n-        dispatchServiceInstancesChangedEvent(serviceName, getInstances(serviceName));\n-    }\n-\n-    /**\n-     * Dispatch the {@link ServiceInstancesChangedEvent}\n-     *\n-     * @param serviceName       the name of service whose service instances have been changed\n-     * @param otherServiceNames the names of other services\n-     */\n-    default void dispatchServiceInstancesChangedEvent(String serviceName, String... otherServiceNames) {\n-        dispatchServiceInstancesChangedEvent(serviceName, getInstances(serviceName));\n-        if (otherServiceNames != null) {\n-            Stream.of(otherServiceNames)\n-                    .filter(StringUtils::isNotEmpty)\n-                    .forEach(this::dispatchServiceInstancesChangedEvent);\n-        }\n-    }\n-\n-    /**\n-     * Dispatch the {@link ServiceInstancesChangedEvent}\n-     *\n-     * @param serviceName      the name of service whose service instances have been changed\n-     * @param serviceInstances the service instances have been changed\n-     */\n-    default void dispatchServiceInstancesChangedEvent(String serviceName, List<ServiceInstance> serviceInstances) {\n-        dispatchServiceInstancesChangedEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));\n-    }\n-\n-    /**\n-     * Dispatch the {@link ServiceInstancesChangedEvent}\n-     *\n-     * @param event the {@link ServiceInstancesChangedEvent}\n-     */\n-    default void dispatchServiceInstancesChangedEvent(ServiceInstancesChangedEvent event) {\n-        getDefaultExtension().dispatch(event);\n-    }\n-\n-    // ==================================================================================== //\n-\n-//    String getKey(URL exportedURL);\n-\n-    default URL getUrl() {\n-        return null;\n-    }\n-\n-    ServiceInstance getLocalInstance();\n-\n-    /**\n-     * A human-readable description of the implementation\n-     *\n-     * @return The description.\n-     */\n-    String toString();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+import org.apache.dubbo.common.utils.Page;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static java.util.Collections.unmodifiableList;\r\n+import static java.util.Collections.unmodifiableMap;\r\n+import static org.apache.dubbo.event.EventDispatcher.getDefaultExtension;\r\n+\r\n+/**\r\n+ * The common operations of Service Discovery\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"zookeeper\")\r\n+public interface ServiceDiscovery extends Prioritized {\r\n+\r\n+    // ==================================== Lifecycle ==================================== //\r\n+\r\n+    /**\r\n+     * Initializes the {@link ServiceDiscovery}\r\n+     *\r\n+     * @param registryURL the {@link URL url} to connect service registry\r\n+     * @throws Exception If met with error\r\n+     */\r\n+    void initialize(URL registryURL) throws Exception;\r\n+\r\n+    /**\r\n+     * Destroy the {@link ServiceDiscovery}\r\n+     *\r\n+     * @throws Exception If met with error\r\n+     */\r\n+    void destroy() throws Exception;\r\n+\r\n+    // ==================================================================================== //\r\n+\r\n+    // =================================== Registration =================================== //\r\n+\r\n+    /**\r\n+     * Registers an instance of {@link ServiceInstance}.\r\n+     *\r\n+     * @param serviceInstance an instance of {@link ServiceInstance} to be registered\r\n+     * @throws RuntimeException if failed\r\n+     */\r\n+    void register(ServiceInstance serviceInstance) throws RuntimeException;\r\n+\r\n+    /**\r\n+     * Updates the registered {@link ServiceInstance}.\r\n+     *\r\n+     * @param serviceInstance the registered {@link ServiceInstance}\r\n+     * @throws RuntimeException if failed\r\n+     */\r\n+    void update(ServiceInstance serviceInstance) throws RuntimeException;\r\n+\r\n+    /**\r\n+     * Unregisters an instance of {@link ServiceInstance}.\r\n+     *\r\n+     * @param serviceInstance an instance of {@link ServiceInstance} to be unregistered\r\n+     * @throws RuntimeException if failed\r\n+     */\r\n+    void unregister(ServiceInstance serviceInstance) throws RuntimeException;\r\n+\r\n+    // ==================================================================================== //\r\n+\r\n+    // ==================================== Discovery ===================================== //\r\n+\r\n+    /**\r\n+     * Get the default size of pagination query\r\n+     *\r\n+     * @return the default value is 100\r\n+     */\r\n+    default int getDefaultPageSize() {\r\n+        return 100;\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets all service names\r\n+     *\r\n+     * @return non-null read-only {@link Set}\r\n+     */\r\n+    Set<String> getServices();\r\n+\r\n+    /**\r\n+     * Gets all {@link ServiceInstance service instances} by the specified service name.\r\n+     *\r\n+     * @param serviceName the service name\r\n+     * @return non-null {@link List}\r\n+     * @throws NullPointerException if <code>serviceName</code> is <code>null</code>\r\n+     */\r\n+    default List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+\r\n+        List<ServiceInstance> allInstances = new LinkedList<>();\r\n+\r\n+        int offset = 0;\r\n+\r\n+        int pageSize = getDefaultPageSize();\r\n+\r\n+        Page<ServiceInstance> page = getInstances(serviceName, offset, pageSize);\r\n+\r\n+        allInstances.addAll(page.getData());\r\n+\r\n+        while (page.hasNext()) {\r\n+            offset += page.getDataSize();\r\n+            page = getInstances(serviceName, offset, pageSize);\r\n+            allInstances.addAll(page.getData());\r\n+        }\r\n+\r\n+        return unmodifiableList(allInstances);\r\n+    }\r\n+\r\n+    /**\r\n+     * Gets the {@link Page pagination} of {@link ServiceInstance service instances} by the specified service name.\r\n+     * It's equal to {@link #getInstances(String, int, int, boolean)} with <code>healthyOnly == true</code>\r\n+     *\r\n+     * @param serviceName the service name\r\n+     * @param offset      the offset of request , the number \"0\" indicates first page\r\n+     * @param pageSize    the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\r\n+     * @return non-null {@link Page} object\r\n+     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\r\n+     * @throws IllegalArgumentException      if <code>offset</code> or <code>pageSize</code> is negative number\r\n+     * @throws UnsupportedOperationException if not supported\r\n+     */\r\n+    default Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize) throws NullPointerException,\r\n+            IllegalArgumentException {\r\n+        return getInstances(serviceName, offset, pageSize, false);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link Page pagination} of {@link ServiceInstance service instances} by the specified service name.\r\n+     * If <code>healthyOnly == true</code>, filter healthy instances only.\r\n+     *\r\n+     * @param serviceName the service name\r\n+     * @param offset      the offset of request , the number \"0\" indicates first page\r\n+     * @param pageSize    the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\r\n+     * @param healthyOnly if <code>true</code> , filter healthy instances only\r\n+     * @return non-null {@link Page} object\r\n+     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\r\n+     * @throws IllegalArgumentException      if <code>offset</code> or <code>pageSize</code> is negative number\r\n+     * @throws UnsupportedOperationException if not supported\r\n+     */\r\n+    default Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws\r\n+            NullPointerException, IllegalArgumentException, UnsupportedOperationException {\r\n+        throw new UnsupportedOperationException(\"Current implementation does not support pagination query method.\");\r\n+    }\r\n+\r\n+    /**\r\n+     * batch-get all {@link ServiceInstance service instances} by the specified service names\r\n+     *\r\n+     * @param serviceNames the multiple service names\r\n+     * @param offset       the offset of request , the number \"0\" indicates first page\r\n+     * @param requestSize  the number of request, the {@link Integer#MAX_VALUE max value} indicates the range is unlimited\r\n+     * @return non-null read-only {@link Map} whose key is the service name and value is\r\n+     * the {@link Page pagination} of {@link ServiceInstance service instances}\r\n+     * @throws NullPointerException          if <code>serviceName</code> is <code>null</code>\r\n+     * @throws IllegalArgumentException      if <code>offset</code> or <code>requestSize</code> is negative number\r\n+     * @throws UnsupportedOperationException if not supported\r\n+     */\r\n+    default Map<String, Page<ServiceInstance>> getInstances(Iterable<String> serviceNames, int offset, int requestSize) throws\r\n+            NullPointerException, IllegalArgumentException {\r\n+        Map<String, Page<ServiceInstance>> instances = new LinkedHashMap<>();\r\n+        for (String serviceName : serviceNames) {\r\n+            instances.put(serviceName, getInstances(serviceName, offset, requestSize));\r\n+        }\r\n+        return unmodifiableMap(instances);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add an instance of {@link ServiceInstancesChangedListener} for specified service\r\n+     * <p>\r\n+     * Default, current method will be invoked by {@link ServiceDiscoveryRegistry#subscribe(URL, NotifyListener)\r\n+     * the ServiceDiscoveryRegistry on the subscription}, and it's mandatory to\r\n+     * {@link EventDispatcher#addEventListener(EventListener) add} the {@link ServiceInstancesChangedListener} argument\r\n+     * into {@link EventDispatcher} whether the subclass implements same approach or not, thus this method is used to\r\n+     * trigger or adapt the vendor's change notification mechanism typically, like Zookeeper Watcher,\r\n+     * Nacos EventListener. If the registry observes the change, It's suggested that the implementation could invoke\r\n+     * {@link #dispatchServiceInstancesChangedEvent(String)} method or variants\r\n+     *\r\n+     * @param listener an instance of {@link ServiceInstancesChangedListener}\r\n+     * @throws NullPointerException\r\n+     * @throws IllegalArgumentException\r\n+     * @see EventPublishingServiceDiscovery\r\n+     * @see EventDispatcher\r\n+     */\r\n+    default void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\r\n+            throws NullPointerException, IllegalArgumentException {\r\n+    }\r\n+\r\n+    /**\r\n+     * unsubscribe to instances change event.\r\n+     * @param listener\r\n+     * @throws IllegalArgumentException\r\n+     */\r\n+    default void removeServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\r\n+            throws IllegalArgumentException {\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch the {@link ServiceInstancesChangedEvent}\r\n+     *\r\n+     * @param serviceName the name of service whose service instances have been changed\r\n+     */\r\n+    default void dispatchServiceInstancesChangedEvent(String serviceName) {\r\n+        dispatchServiceInstancesChangedEvent(serviceName, getInstances(serviceName));\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch the {@link ServiceInstancesChangedEvent}\r\n+     *\r\n+     * @param serviceName       the name of service whose service instances have been changed\r\n+     * @param otherServiceNames the names of other services\r\n+     */\r\n+    default void dispatchServiceInstancesChangedEvent(String serviceName, String... otherServiceNames) {\r\n+        dispatchServiceInstancesChangedEvent(serviceName, getInstances(serviceName));\r\n+        if (otherServiceNames != null) {\r\n+            Stream.of(otherServiceNames)\r\n+                    .filter(StringUtils::isNotEmpty)\r\n+                    .forEach(this::dispatchServiceInstancesChangedEvent);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch the {@link ServiceInstancesChangedEvent}\r\n+     *\r\n+     * @param serviceName      the name of service whose service instances have been changed\r\n+     * @param serviceInstances the service instances have been changed\r\n+     */\r\n+    default void dispatchServiceInstancesChangedEvent(String serviceName, List<ServiceInstance> serviceInstances) {\r\n+        dispatchServiceInstancesChangedEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));\r\n+    }\r\n+\r\n+    /**\r\n+     * Dispatch the {@link ServiceInstancesChangedEvent}\r\n+     *\r\n+     * @param event the {@link ServiceInstancesChangedEvent}\r\n+     */\r\n+    default void dispatchServiceInstancesChangedEvent(ServiceInstancesChangedEvent event) {\r\n+        getDefaultExtension().dispatch(event);\r\n+    }\r\n+\r\n+    // ==================================================================================== //\r\n+\r\n+//    String getKey(URL exportedURL);\r\n+\r\n+    default URL getUrl() {\r\n+        return null;\r\n+    }\r\n+\r\n+    ServiceInstance getLocalInstance();\r\n+\r\n+    /**\r\n+     * A human-readable description of the implementation\r\n+     *\r\n+     * @return The description.\r\n+     */\r\n+    String toString();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/client/ServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\n-\n-/**\n- * The factory to create {@link ServiceDiscovery}\n- *\n- * @see ServiceDiscovery\n- * @since 2.7.5\n- */\n-@SPI(\"default\")\n-public interface ServiceDiscoveryFactory {\n-\n-    /**\n-     * Get the instance of {@link ServiceDiscovery}\n-     *\n-     * @param registryURL the {@link URL} to connect the registry\n-     * @return non-null\n-     */\n-    ServiceDiscovery getServiceDiscovery(URL registryURL);\n-\n-    /**\n-     * Get the extension instance of {@link ServiceDiscoveryFactory} by {@link URL#getProtocol() the protocol}\n-     *\n-     * @param registryURL the {@link URL} to connect the registry\n-     * @return non-null\n-     */\n-    static ServiceDiscoveryFactory getExtension(URL registryURL) {\n-        String protocol = registryURL.getProtocol();\n-        ExtensionLoader<ServiceDiscoveryFactory> loader = getExtensionLoader(ServiceDiscoveryFactory.class);\n-        return loader.getOrDefaultExtension(protocol);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import static org.apache.dubbo.common.extension.ExtensionLoader.getExtensionLoader;\r\n+\r\n+/**\r\n+ * The factory to create {@link ServiceDiscovery}\r\n+ *\r\n+ * @see ServiceDiscovery\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"default\")\r\n+public interface ServiceDiscoveryFactory {\r\n+\r\n+    /**\r\n+     * Get the instance of {@link ServiceDiscovery}\r\n+     *\r\n+     * @param registryURL the {@link URL} to connect the registry\r\n+     * @return non-null\r\n+     */\r\n+    ServiceDiscovery getServiceDiscovery(URL registryURL);\r\n+\r\n+    /**\r\n+     * Get the extension instance of {@link ServiceDiscoveryFactory} by {@link URL#getProtocol() the protocol}\r\n+     *\r\n+     * @param registryURL the {@link URL} to connect the registry\r\n+     * @return non-null\r\n+     */\r\n+    static ServiceDiscoveryFactory getExtension(URL registryURL) {\r\n+        String protocol = registryURL.getProtocol();\r\n+        ExtensionLoader<ServiceDiscoveryFactory> loader = getExtensionLoader(ServiceDiscoveryFactory.class);\r\n+        return loader.getOrDefaultExtension(protocol);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java", "source2": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,498 +1,498 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MappingChangedEvent;\n-import org.apache.dubbo.metadata.MappingListener;\n-import org.apache.dubbo.metadata.ServiceNameMapping;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.registry.client.metadata.SubscribedURLsSynthesizer;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.TreeSet;\n-import java.util.stream.Collectors;\n-\n-import static java.lang.String.format;\n-import static java.util.Collections.emptySet;\n-import static java.util.Collections.unmodifiableSet;\n-import static java.util.stream.Collectors.toSet;\n-import static java.util.stream.Stream.of;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_CHAR_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MAPPING_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDED_BY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_TYPE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\n-import static org.apache.dubbo.common.function.ThrowableAction.execute;\n-import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-import static org.apache.dubbo.registry.client.ServiceDiscoveryFactory.getExtension;\n-import static org.apache.dubbo.rpc.Constants.ID_KEY;\n-\n-/**\n- * Being different to the traditional registry, {@link ServiceDiscoveryRegistry} that is a new service-oriented\n- * {@link Registry} based on {@link ServiceDiscovery}, it will not interact in the external registry directly,\n- * but store the {@link URL urls} that Dubbo services exported and referenced into {@link WritableMetadataService}\n- * when {@link #register(URL)} and {@link #subscribe(URL, NotifyListener)} methods are executed. After that the exported\n- * {@link URL urls} can be get from {@link WritableMetadataService#getExportedURLs()} and its variant methods. In contrast,\n- * {@link WritableMetadataService#getSubscribedURLs()} method offers the subscribed {@link URL URLs}.\n- * <p>\n- * Every {@link ServiceDiscoveryRegistry} object has its own {@link ServiceDiscovery} instance that was initialized\n- * under {@link #ServiceDiscoveryRegistry(URL) the construction}. As the primary argument of constructor , the\n- * {@link URL} of connection the registry decides what the kind of ServiceDiscovery is. Generally, each\n- * protocol associates with a kind of {@link ServiceDiscovery}'s implementation if present, or the\n- * {@link FileSystemServiceDiscovery} will be the default one. Obviously, it's also allowed to extend\n- * {@link ServiceDiscovery} using {@link SPI the Dubbo SPI}.\n- * In contrast, current {@link ServiceInstance service instance} will not be registered to the registry whether any\n- * Dubbo service is exported or not.\n- * <p>\n- *\n- * @see ServiceDiscovery\n- * @see FailbackRegistry\n- * @see WritableMetadataService\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryRegistry implements Registry {\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final ServiceDiscovery serviceDiscovery;\n-\n-    private final Set<String> subscribedServices;\n-\n-    private final ServiceNameMapping serviceNameMapping;\n-\n-    private final WritableMetadataService writableMetadataService;\n-\n-    private final Set<String> registeredListeners = new LinkedHashSet<>();\n-\n-    /* apps - listener */\n-    private final Map<String, ServiceInstancesChangedListener> serviceListeners = new HashMap<>();\n-    private final Map<String, String> serviceToAppsMapping = new HashMap<>();\n-\n-    private URL registryURL;\n-\n-    /**\n-     * A cache for all URLs of services that the subscribed services exported\n-     * The key is the service name\n-     * The value is a nested {@link Map} whose key is the revision and value is all URLs of services\n-     */\n-    private final Map<String, Map<String, List<URL>>> serviceRevisionExportedURLsCache = new LinkedHashMap<>();\n-\n-    public ServiceDiscoveryRegistry(URL registryURL) {\n-        this.registryURL = registryURL;\n-        this.serviceDiscovery = createServiceDiscovery(registryURL);\n-        this.subscribedServices = parseServices(registryURL.getParameter(SUBSCRIBED_SERVICE_NAMES_KEY));\n-        this.serviceNameMapping = ServiceNameMapping.getExtension(registryURL.getParameter(MAPPING_KEY));\n-        this.writableMetadataService = WritableMetadataService.getDefaultExtension();\n-    }\n-\n-    public ServiceDiscovery getServiceDiscovery() {\n-        return serviceDiscovery;\n-    }\n-\n-    /**\n-     * Create the {@link ServiceDiscovery} from the registry {@link URL}\n-     *\n-     * @param registryURL the {@link URL} to connect the registry\n-     * @return non-null\n-     */\n-    protected ServiceDiscovery createServiceDiscovery(URL registryURL) {\n-        ServiceDiscovery originalServiceDiscovery = getServiceDiscovery(registryURL);\n-        ServiceDiscovery serviceDiscovery = enhanceEventPublishing(originalServiceDiscovery);\n-        execute(() -> {\n-            serviceDiscovery.initialize(registryURL.addParameter(INTERFACE_KEY, ServiceDiscovery.class.getName())\n-                    .removeParameter(REGISTRY_TYPE_KEY));\n-        });\n-        return serviceDiscovery;\n-    }\n-\n-    private List<SubscribedURLsSynthesizer> initSubscribedURLsSynthesizers() {\n-        ExtensionLoader<SubscribedURLsSynthesizer> loader = ExtensionLoader.getExtensionLoader(SubscribedURLsSynthesizer.class);\n-        return Collections.unmodifiableList(new ArrayList<>(loader.getSupportedExtensionInstances()));\n-    }\n-\n-    /**\n-     * Get the instance {@link ServiceDiscovery} from the registry {@link URL} using\n-     * {@link ServiceDiscoveryFactory} SPI\n-     *\n-     * @param registryURL the {@link URL} to connect the registry\n-     * @return\n-     */\n-    private ServiceDiscovery getServiceDiscovery(URL registryURL) {\n-        ServiceDiscoveryFactory factory = getExtension(registryURL);\n-        return factory.getServiceDiscovery(registryURL);\n-    }\n-\n-    /**\n-     * Enhance the original {@link ServiceDiscovery} with event publishing feature\n-     *\n-     * @param original the original {@link ServiceDiscovery}\n-     * @return {@link EventPublishingServiceDiscovery} instance\n-     */\n-    private ServiceDiscovery enhanceEventPublishing(ServiceDiscovery original) {\n-        return new EventPublishingServiceDiscovery(original);\n-    }\n-\n-    protected boolean shouldRegister(URL providerURL) {\n-\n-        String side = providerURL.getParameter(SIDE_KEY);\n-\n-        boolean should = PROVIDER_SIDE.equals(side); // Only register the Provider.\n-\n-        if (!should) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(String.format(\"The URL[%s] should not be registered.\", providerURL.toString()));\n-            }\n-        }\n-\n-        return should;\n-    }\n-\n-    protected boolean shouldSubscribe(URL subscribedURL) {\n-        return !shouldRegister(subscribedURL);\n-    }\n-\n-    @Override\n-    public final void register(URL url) {\n-        if (!shouldRegister(url)) { // Should Not Register\n-            return;\n-        }\n-        doRegister(url);\n-    }\n-\n-    public void doRegister(URL url) {\n-        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\n-        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\n-            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\n-        }\n-        if (writableMetadataService.exportURL(url)) {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(format(\"The URL[%s] registered successfully.\", url.toString()));\n-            }\n-        } else {\n-            if (logger.isWarnEnabled()) {\n-                logger.info(format(\"The URL[%s] has been registered.\", url.toString()));\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public final void unregister(URL url) {\n-        if (!shouldRegister(url)) {\n-            return;\n-        }\n-        doUnregister(url);\n-    }\n-\n-    public void doUnregister(URL url) {\n-        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\n-        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\n-            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\n-        }\n-        if (writableMetadataService.unexportURL(url)) {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(format(\"The URL[%s] deregistered successfully.\", url.toString()));\n-            }\n-        } else {\n-            if (logger.isWarnEnabled()) {\n-                logger.info(format(\"The URL[%s] has been deregistered.\", url.toString()));\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public final void subscribe(URL url, NotifyListener listener) {\n-        if (!shouldSubscribe(url)) { // Should Not Subscribe\n-            return;\n-        }\n-        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\n-        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\n-            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\n-        }\n-        doSubscribe(url, listener);\n-    }\n-\n-    public void doSubscribe(URL url, NotifyListener listener) {\n-        writableMetadataService.subscribeURL(url);\n-\n-        Set<String> serviceNames = getServices(url, listener);\n-\n-        if (CollectionUtils.isEmpty(serviceNames)) {\n-            logger.warn(\"Should has at least one way to know which services this interface belongs to, subscription url: \" + url);\n-            return;\n-        }\n-\n-        subscribeURLs(url, listener, serviceNames);\n-    }\n-\n-    @Override\n-    public final void unsubscribe(URL url, NotifyListener listener) {\n-        if (!shouldSubscribe(url)) { // Should Not Subscribe\n-            return;\n-        }\n-        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\n-        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\n-            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\n-        }\n-        doUnsubscribe(url, listener);\n-    }\n-\n-    public void doUnsubscribe(URL url, NotifyListener listener) {\n-        writableMetadataService.unsubscribeURL(url);\n-        String protocolServiceKey = url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO);\n-        String serviceNamesKey = serviceToAppsMapping.remove(protocolServiceKey);\n-        ServiceInstancesChangedListener instancesChangedListener = serviceListeners.get(serviceNamesKey);\n-        instancesChangedListener.removeListener(protocolServiceKey);\n-    }\n-\n-    @Override\n-    public List<URL> lookup(URL url) {\n-        throw new UnsupportedOperationException(\"\");\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return !serviceDiscovery.getServices().isEmpty();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        AbstractRegistryFactory.removeDestroyedRegistry(this);\n-        execute(() -> {\n-            // stop ServiceDiscovery\n-            serviceDiscovery.destroy();\n-        });\n-    }\n-\n-    protected void subscribeURLs(URL url, NotifyListener listener, Set<String> serviceNames) {\n-        String serviceNamesKey = serviceNames.toString();\n-        String protocolServiceKey = url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO);\n-        serviceToAppsMapping.put(protocolServiceKey, serviceNamesKey);\n-\n-        // register ServiceInstancesChangedListener\n-        ServiceInstancesChangedListener serviceListener = serviceListeners.computeIfAbsent(serviceNamesKey,\n-                k -> new ServiceInstancesChangedListener(serviceNames, serviceDiscovery));\n-        serviceListener.setUrl(url);\n-        listener.addServiceListener(serviceListener);\n-\n-        serviceListener.addListener(protocolServiceKey, listener);\n-        registerServiceInstancesChangedListener(url, serviceListener);\n-\n-        // FIXME: This will cause redundant duplicate notifications\n-        serviceNames.forEach(serviceName -> {\n-            List<ServiceInstance> serviceInstances = serviceDiscovery.getInstances(serviceName);\n-            if (CollectionUtils.isNotEmpty(serviceInstances)) {\n-                serviceListener.onEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));\n-            } else {\n-                logger.info(\"getInstances by serviceName=\" + serviceName + \" is empty, waiting for serviceListener callback. url=\" + url);\n-            }\n-        });\n-\n-        listener.notify(serviceListener.getUrls(protocolServiceKey));\n-\n-    }\n-\n-    /**\n-     * Register the {@link ServiceInstancesChangedListener} If absent\n-     *\n-     * @param url      {@link URL}\n-     * @param listener the {@link ServiceInstancesChangedListener}\n-     */\n-    private void registerServiceInstancesChangedListener(URL url, ServiceInstancesChangedListener listener) {\n-        String listenerId = createListenerId(url, listener);\n-        if (registeredListeners.add(listenerId)) {\n-            serviceDiscovery.addServiceInstancesChangedListener(listener);\n-        }\n-    }\n-\n-    private String createListenerId(URL url, ServiceInstancesChangedListener listener) {\n-        return listener.getServiceNames() + \":\" + url.toString(VERSION_KEY, GROUP_KEY, PROTOCOL_KEY);\n-    }\n-\n-    /**\n-     * 1.developer explicitly specifies the application name this interface belongs to\n-     * 2.check Interface-App mapping\n-     * 3.use the services specified in registry url.\n-     *\n-     * @param subscribedURL\n-     * @return\n-     */\n-    protected Set<String> getServices(URL subscribedURL, final NotifyListener listener) {\n-        Set<String> subscribedServices = new TreeSet<>();\n-\n-        String serviceNames = subscribedURL.getParameter(PROVIDED_BY);\n-        if (StringUtils.isNotEmpty(serviceNames)) {\n-            logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" instructed by provided-by set by user.\");\n-            subscribedServices.addAll(parseServices(serviceNames));\n-        }\n-\n-        if (isEmpty(subscribedServices)) {\n-            Set<String> mappedServices = findMappedServices(subscribedURL, new DefaultMappingListener(subscribedURL, subscribedServices, listener));\n-            logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" instructed by remote metadata center.\");\n-            subscribedServices.addAll(mappedServices);\n-            if (isEmpty(subscribedServices)) {\n-                logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" by default.\");\n-                subscribedServices.addAll(getSubscribedServices());\n-            }\n-        }\n-        return subscribedServices;\n-    }\n-\n-    public static Set<String> parseServices(String literalServices) {\n-        return isBlank(literalServices) ? emptySet() :\n-                unmodifiableSet(of(literalServices.split(\",\"))\n-                        .map(String::trim)\n-                        .filter(StringUtils::isNotEmpty)\n-                        .collect(toSet()));\n-    }\n-\n-    /**\n-     * Get the subscribed service names\n-     *\n-     * @return non-null\n-     */\n-    public Set<String> getSubscribedServices() {\n-        return subscribedServices;\n-    }\n-\n-    /**\n-     * Get the mapped services name by the specified {@link URL}\n-     *\n-     * @param subscribedURL\n-     * @return\n-     */\n-    protected Set<String> findMappedServices(URL subscribedURL, MappingListener listener) {\n-        return serviceNameMapping.getAndListen(subscribedURL, listener);\n-    }\n-\n-    /**\n-     * Create an instance of {@link ServiceDiscoveryRegistry} if supported\n-     *\n-     * @param registryURL the {@link URL url} of registry\n-     * @return <code>null</code> if not supported\n-     */\n-    public static ServiceDiscoveryRegistry create(URL registryURL) {\n-        return supports(registryURL) ? new ServiceDiscoveryRegistry(registryURL) : null;\n-    }\n-\n-    /**\n-     * Supports or not ?\n-     *\n-     * @param registryURL the {@link URL url} of registry\n-     * @return if supported, return <code>true</code>, or <code>false</code>\n-     */\n-    public static boolean supports(URL registryURL) {\n-        return SERVICE_REGISTRY_TYPE.equalsIgnoreCase(registryURL.getParameter(REGISTRY_TYPE_KEY));\n-    }\n-\n-    private static List<URL> filterSubscribedURLs(URL subscribedURL, List<URL> exportedURLs) {\n-        return exportedURLs.stream()\n-                .filter(url -> isSameServiceInterface(subscribedURL, url))\n-                .filter(url -> isSameParameter(subscribedURL, url, VERSION_KEY))\n-                .filter(url -> isSameParameter(subscribedURL, url, GROUP_KEY))\n-                .filter(url -> isCompatibleProtocol(subscribedURL, url))\n-                .collect(Collectors.toList());\n-    }\n-\n-    private static boolean isSameServiceInterface(URL one, URL another) {\n-        return Objects.equals(one.getServiceInterface(), another.getServiceInterface());\n-    }\n-\n-    private static boolean isSameParameter(URL one, URL another, String key) {\n-        return Objects.equals(one.getParameter(key), another.getParameter(key));\n-    }\n-\n-    private static boolean isCompatibleProtocol(URL one, URL another) {\n-        String protocol = one.getParameter(PROTOCOL_KEY);\n-        return isCompatibleProtocol(protocol, another);\n-    }\n-\n-    private static boolean isCompatibleProtocol(String protocol, URL targetURL) {\n-        return protocol == null || Objects.equals(protocol, targetURL.getParameter(PROTOCOL_KEY))\n-                || Objects.equals(protocol, targetURL.getProtocol());\n-    }\n-\n-    private class DefaultMappingListener implements MappingListener {\n-        private URL url;\n-        private Set<String> oldApps;\n-        private NotifyListener listener;\n-\n-        public DefaultMappingListener(URL subscribedURL, Set<String> serviceNames, NotifyListener listener) {\n-            this.url = subscribedURL;\n-            this.oldApps = serviceNames;\n-            this.listener = listener;\n-        }\n-\n-        @Override\n-        public void onEvent(MappingChangedEvent event) {\n-            Set<String> newApps = event.getApps();\n-            Set<String> tempOldApps = oldApps;\n-            oldApps = newApps;\n-\n-            if (CollectionUtils.isEmpty(newApps)) {\n-                return;\n-            }\n-\n-            if (CollectionUtils.isEmpty(tempOldApps) && newApps.size() > 0) {\n-                subscribeURLs(url, listener, newApps);\n-                return;\n-            }\n-\n-            for (String newAppName : newApps) {\n-                if (!tempOldApps.contains(newAppName)) {\n-                    subscribeURLs(url, listener, newApps);\n-                    return;\n-                }\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MappingChangedEvent;\r\n+import org.apache.dubbo.metadata.MappingListener;\r\n+import org.apache.dubbo.metadata.ServiceNameMapping;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.registry.client.metadata.SubscribedURLsSynthesizer;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.lang.String.format;\r\n+import static java.util.Collections.emptySet;\r\n+import static java.util.Collections.unmodifiableSet;\r\n+import static java.util.stream.Collectors.toSet;\r\n+import static java.util.stream.Stream.of;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_CHAR_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MAPPING_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDED_BY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_TYPE_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_TYPE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\r\n+import static org.apache.dubbo.common.function.ThrowableAction.execute;\r\n+import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+import static org.apache.dubbo.registry.client.ServiceDiscoveryFactory.getExtension;\r\n+import static org.apache.dubbo.rpc.Constants.ID_KEY;\r\n+\r\n+/**\r\n+ * Being different to the traditional registry, {@link ServiceDiscoveryRegistry} that is a new service-oriented\r\n+ * {@link Registry} based on {@link ServiceDiscovery}, it will not interact in the external registry directly,\r\n+ * but store the {@link URL urls} that Dubbo services exported and referenced into {@link WritableMetadataService}\r\n+ * when {@link #register(URL)} and {@link #subscribe(URL, NotifyListener)} methods are executed. After that the exported\r\n+ * {@link URL urls} can be get from {@link WritableMetadataService#getExportedURLs()} and its variant methods. In contrast,\r\n+ * {@link WritableMetadataService#getSubscribedURLs()} method offers the subscribed {@link URL URLs}.\r\n+ * <p>\r\n+ * Every {@link ServiceDiscoveryRegistry} object has its own {@link ServiceDiscovery} instance that was initialized\r\n+ * under {@link #ServiceDiscoveryRegistry(URL) the construction}. As the primary argument of constructor , the\r\n+ * {@link URL} of connection the registry decides what the kind of ServiceDiscovery is. Generally, each\r\n+ * protocol associates with a kind of {@link ServiceDiscovery}'s implementation if present, or the\r\n+ * {@link FileSystemServiceDiscovery} will be the default one. Obviously, it's also allowed to extend\r\n+ * {@link ServiceDiscovery} using {@link SPI the Dubbo SPI}.\r\n+ * In contrast, current {@link ServiceInstance service instance} will not be registered to the registry whether any\r\n+ * Dubbo service is exported or not.\r\n+ * <p>\r\n+ *\r\n+ * @see ServiceDiscovery\r\n+ * @see FailbackRegistry\r\n+ * @see WritableMetadataService\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryRegistry implements Registry {\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final ServiceDiscovery serviceDiscovery;\r\n+\r\n+    private final Set<String> subscribedServices;\r\n+\r\n+    private final ServiceNameMapping serviceNameMapping;\r\n+\r\n+    private final WritableMetadataService writableMetadataService;\r\n+\r\n+    private final Set<String> registeredListeners = new LinkedHashSet<>();\r\n+\r\n+    /* apps - listener */\r\n+    private final Map<String, ServiceInstancesChangedListener> serviceListeners = new HashMap<>();\r\n+    private final Map<String, String> serviceToAppsMapping = new HashMap<>();\r\n+\r\n+    private URL registryURL;\r\n+\r\n+    /**\r\n+     * A cache for all URLs of services that the subscribed services exported\r\n+     * The key is the service name\r\n+     * The value is a nested {@link Map} whose key is the revision and value is all URLs of services\r\n+     */\r\n+    private final Map<String, Map<String, List<URL>>> serviceRevisionExportedURLsCache = new LinkedHashMap<>();\r\n+\r\n+    public ServiceDiscoveryRegistry(URL registryURL) {\r\n+        this.registryURL = registryURL;\r\n+        this.serviceDiscovery = createServiceDiscovery(registryURL);\r\n+        this.subscribedServices = parseServices(registryURL.getParameter(SUBSCRIBED_SERVICE_NAMES_KEY));\r\n+        this.serviceNameMapping = ServiceNameMapping.getExtension(registryURL.getParameter(MAPPING_KEY));\r\n+        this.writableMetadataService = WritableMetadataService.getDefaultExtension();\r\n+    }\r\n+\r\n+    public ServiceDiscovery getServiceDiscovery() {\r\n+        return serviceDiscovery;\r\n+    }\r\n+\r\n+    /**\r\n+     * Create the {@link ServiceDiscovery} from the registry {@link URL}\r\n+     *\r\n+     * @param registryURL the {@link URL} to connect the registry\r\n+     * @return non-null\r\n+     */\r\n+    protected ServiceDiscovery createServiceDiscovery(URL registryURL) {\r\n+        ServiceDiscovery originalServiceDiscovery = getServiceDiscovery(registryURL);\r\n+        ServiceDiscovery serviceDiscovery = enhanceEventPublishing(originalServiceDiscovery);\r\n+        execute(() -> {\r\n+            serviceDiscovery.initialize(registryURL.addParameter(INTERFACE_KEY, ServiceDiscovery.class.getName())\r\n+                    .removeParameter(REGISTRY_TYPE_KEY));\r\n+        });\r\n+        return serviceDiscovery;\r\n+    }\r\n+\r\n+    private List<SubscribedURLsSynthesizer> initSubscribedURLsSynthesizers() {\r\n+        ExtensionLoader<SubscribedURLsSynthesizer> loader = ExtensionLoader.getExtensionLoader(SubscribedURLsSynthesizer.class);\r\n+        return Collections.unmodifiableList(new ArrayList<>(loader.getSupportedExtensionInstances()));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the instance {@link ServiceDiscovery} from the registry {@link URL} using\r\n+     * {@link ServiceDiscoveryFactory} SPI\r\n+     *\r\n+     * @param registryURL the {@link URL} to connect the registry\r\n+     * @return\r\n+     */\r\n+    private ServiceDiscovery getServiceDiscovery(URL registryURL) {\r\n+        ServiceDiscoveryFactory factory = getExtension(registryURL);\r\n+        return factory.getServiceDiscovery(registryURL);\r\n+    }\r\n+\r\n+    /**\r\n+     * Enhance the original {@link ServiceDiscovery} with event publishing feature\r\n+     *\r\n+     * @param original the original {@link ServiceDiscovery}\r\n+     * @return {@link EventPublishingServiceDiscovery} instance\r\n+     */\r\n+    private ServiceDiscovery enhanceEventPublishing(ServiceDiscovery original) {\r\n+        return new EventPublishingServiceDiscovery(original);\r\n+    }\r\n+\r\n+    protected boolean shouldRegister(URL providerURL) {\r\n+\r\n+        String side = providerURL.getParameter(SIDE_KEY);\r\n+\r\n+        boolean should = PROVIDER_SIDE.equals(side); // Only register the Provider.\r\n+\r\n+        if (!should) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(String.format(\"The URL[%s] should not be registered.\", providerURL.toString()));\r\n+            }\r\n+        }\r\n+\r\n+        return should;\r\n+    }\r\n+\r\n+    protected boolean shouldSubscribe(URL subscribedURL) {\r\n+        return !shouldRegister(subscribedURL);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void register(URL url) {\r\n+        if (!shouldRegister(url)) { // Should Not Register\r\n+            return;\r\n+        }\r\n+        doRegister(url);\r\n+    }\r\n+\r\n+    public void doRegister(URL url) {\r\n+        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\r\n+        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\r\n+            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\r\n+        }\r\n+        if (writableMetadataService.exportURL(url)) {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(format(\"The URL[%s] registered successfully.\", url.toString()));\r\n+            }\r\n+        } else {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.info(format(\"The URL[%s] has been registered.\", url.toString()));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void unregister(URL url) {\r\n+        if (!shouldRegister(url)) {\r\n+            return;\r\n+        }\r\n+        doUnregister(url);\r\n+    }\r\n+\r\n+    public void doUnregister(URL url) {\r\n+        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\r\n+        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\r\n+            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\r\n+        }\r\n+        if (writableMetadataService.unexportURL(url)) {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(format(\"The URL[%s] deregistered successfully.\", url.toString()));\r\n+            }\r\n+        } else {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.info(format(\"The URL[%s] has been deregistered.\", url.toString()));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void subscribe(URL url, NotifyListener listener) {\r\n+        if (!shouldSubscribe(url)) { // Should Not Subscribe\r\n+            return;\r\n+        }\r\n+        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\r\n+        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\r\n+            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\r\n+        }\r\n+        doSubscribe(url, listener);\r\n+    }\r\n+\r\n+    public void doSubscribe(URL url, NotifyListener listener) {\r\n+        writableMetadataService.subscribeURL(url);\r\n+\r\n+        Set<String> serviceNames = getServices(url, listener);\r\n+\r\n+        if (CollectionUtils.isEmpty(serviceNames)) {\r\n+            logger.warn(\"Should has at least one way to know which services this interface belongs to, subscription url: \" + url);\r\n+            return;\r\n+        }\r\n+\r\n+        subscribeURLs(url, listener, serviceNames);\r\n+    }\r\n+\r\n+    @Override\r\n+    public final void unsubscribe(URL url, NotifyListener listener) {\r\n+        if (!shouldSubscribe(url)) { // Should Not Subscribe\r\n+            return;\r\n+        }\r\n+        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\r\n+        if (registryCluster != null && url.getParameter(REGISTRY_CLUSTER_KEY) == null) {\r\n+            url = url.addParameter(REGISTRY_CLUSTER_KEY, registryCluster);\r\n+        }\r\n+        doUnsubscribe(url, listener);\r\n+    }\r\n+\r\n+    public void doUnsubscribe(URL url, NotifyListener listener) {\r\n+        writableMetadataService.unsubscribeURL(url);\r\n+        String protocolServiceKey = url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO);\r\n+        String serviceNamesKey = serviceToAppsMapping.remove(protocolServiceKey);\r\n+        ServiceInstancesChangedListener instancesChangedListener = serviceListeners.get(serviceNamesKey);\r\n+        instancesChangedListener.removeListener(protocolServiceKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(URL url) {\r\n+        throw new UnsupportedOperationException(\"\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return !serviceDiscovery.getServices().isEmpty();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        AbstractRegistryFactory.removeDestroyedRegistry(this);\r\n+        execute(() -> {\r\n+            // stop ServiceDiscovery\r\n+            serviceDiscovery.destroy();\r\n+        });\r\n+    }\r\n+\r\n+    protected void subscribeURLs(URL url, NotifyListener listener, Set<String> serviceNames) {\r\n+        String serviceNamesKey = serviceNames.toString();\r\n+        String protocolServiceKey = url.getServiceKey() + GROUP_CHAR_SEPARATOR + url.getParameter(PROTOCOL_KEY, DUBBO);\r\n+        serviceToAppsMapping.put(protocolServiceKey, serviceNamesKey);\r\n+\r\n+        // register ServiceInstancesChangedListener\r\n+        ServiceInstancesChangedListener serviceListener = serviceListeners.computeIfAbsent(serviceNamesKey,\r\n+                k -> new ServiceInstancesChangedListener(serviceNames, serviceDiscovery));\r\n+        serviceListener.setUrl(url);\r\n+        listener.addServiceListener(serviceListener);\r\n+\r\n+        serviceListener.addListener(protocolServiceKey, listener);\r\n+        registerServiceInstancesChangedListener(url, serviceListener);\r\n+\r\n+        // FIXME: This will cause redundant duplicate notifications\r\n+        serviceNames.forEach(serviceName -> {\r\n+            List<ServiceInstance> serviceInstances = serviceDiscovery.getInstances(serviceName);\r\n+            if (CollectionUtils.isNotEmpty(serviceInstances)) {\r\n+                serviceListener.onEvent(new ServiceInstancesChangedEvent(serviceName, serviceInstances));\r\n+            } else {\r\n+                logger.info(\"getInstances by serviceName=\" + serviceName + \" is empty, waiting for serviceListener callback. url=\" + url);\r\n+            }\r\n+        });\r\n+\r\n+        listener.notify(serviceListener.getUrls(protocolServiceKey));\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Register the {@link ServiceInstancesChangedListener} If absent\r\n+     *\r\n+     * @param url      {@link URL}\r\n+     * @param listener the {@link ServiceInstancesChangedListener}\r\n+     */\r\n+    private void registerServiceInstancesChangedListener(URL url, ServiceInstancesChangedListener listener) {\r\n+        String listenerId = createListenerId(url, listener);\r\n+        if (registeredListeners.add(listenerId)) {\r\n+            serviceDiscovery.addServiceInstancesChangedListener(listener);\r\n+        }\r\n+    }\r\n+\r\n+    private String createListenerId(URL url, ServiceInstancesChangedListener listener) {\r\n+        return listener.getServiceNames() + \":\" + url.toString(VERSION_KEY, GROUP_KEY, PROTOCOL_KEY);\r\n+    }\r\n+\r\n+    /**\r\n+     * 1.developer explicitly specifies the application name this interface belongs to\r\n+     * 2.check Interface-App mapping\r\n+     * 3.use the services specified in registry url.\r\n+     *\r\n+     * @param subscribedURL\r\n+     * @return\r\n+     */\r\n+    protected Set<String> getServices(URL subscribedURL, final NotifyListener listener) {\r\n+        Set<String> subscribedServices = new TreeSet<>();\r\n+\r\n+        String serviceNames = subscribedURL.getParameter(PROVIDED_BY);\r\n+        if (StringUtils.isNotEmpty(serviceNames)) {\r\n+            logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" instructed by provided-by set by user.\");\r\n+            subscribedServices.addAll(parseServices(serviceNames));\r\n+        }\r\n+\r\n+        if (isEmpty(subscribedServices)) {\r\n+            Set<String> mappedServices = findMappedServices(subscribedURL, new DefaultMappingListener(subscribedURL, subscribedServices, listener));\r\n+            logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" instructed by remote metadata center.\");\r\n+            subscribedServices.addAll(mappedServices);\r\n+            if (isEmpty(subscribedServices)) {\r\n+                logger.info(subscribedURL.getServiceInterface() + \" mapping to \" + serviceNames + \" by default.\");\r\n+                subscribedServices.addAll(getSubscribedServices());\r\n+            }\r\n+        }\r\n+        return subscribedServices;\r\n+    }\r\n+\r\n+    public static Set<String> parseServices(String literalServices) {\r\n+        return isBlank(literalServices) ? emptySet() :\r\n+                unmodifiableSet(of(literalServices.split(\",\"))\r\n+                        .map(String::trim)\r\n+                        .filter(StringUtils::isNotEmpty)\r\n+                        .collect(toSet()));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the subscribed service names\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    public Set<String> getSubscribedServices() {\r\n+        return subscribedServices;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the mapped services name by the specified {@link URL}\r\n+     *\r\n+     * @param subscribedURL\r\n+     * @return\r\n+     */\r\n+    protected Set<String> findMappedServices(URL subscribedURL, MappingListener listener) {\r\n+        return serviceNameMapping.getAndListen(subscribedURL, listener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Create an instance of {@link ServiceDiscoveryRegistry} if supported\r\n+     *\r\n+     * @param registryURL the {@link URL url} of registry\r\n+     * @return <code>null</code> if not supported\r\n+     */\r\n+    public static ServiceDiscoveryRegistry create(URL registryURL) {\r\n+        return supports(registryURL) ? new ServiceDiscoveryRegistry(registryURL) : null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Supports or not ?\r\n+     *\r\n+     * @param registryURL the {@link URL url} of registry\r\n+     * @return if supported, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    public static boolean supports(URL registryURL) {\r\n+        return SERVICE_REGISTRY_TYPE.equalsIgnoreCase(registryURL.getParameter(REGISTRY_TYPE_KEY));\r\n+    }\r\n+\r\n+    private static List<URL> filterSubscribedURLs(URL subscribedURL, List<URL> exportedURLs) {\r\n+        return exportedURLs.stream()\r\n+                .filter(url -> isSameServiceInterface(subscribedURL, url))\r\n+                .filter(url -> isSameParameter(subscribedURL, url, VERSION_KEY))\r\n+                .filter(url -> isSameParameter(subscribedURL, url, GROUP_KEY))\r\n+                .filter(url -> isCompatibleProtocol(subscribedURL, url))\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    private static boolean isSameServiceInterface(URL one, URL another) {\r\n+        return Objects.equals(one.getServiceInterface(), another.getServiceInterface());\r\n+    }\r\n+\r\n+    private static boolean isSameParameter(URL one, URL another, String key) {\r\n+        return Objects.equals(one.getParameter(key), another.getParameter(key));\r\n+    }\r\n+\r\n+    private static boolean isCompatibleProtocol(URL one, URL another) {\r\n+        String protocol = one.getParameter(PROTOCOL_KEY);\r\n+        return isCompatibleProtocol(protocol, another);\r\n+    }\r\n+\r\n+    private static boolean isCompatibleProtocol(String protocol, URL targetURL) {\r\n+        return protocol == null || Objects.equals(protocol, targetURL.getParameter(PROTOCOL_KEY))\r\n+                || Objects.equals(protocol, targetURL.getProtocol());\r\n+    }\r\n+\r\n+    private class DefaultMappingListener implements MappingListener {\r\n+        private URL url;\r\n+        private Set<String> oldApps;\r\n+        private NotifyListener listener;\r\n+\r\n+        public DefaultMappingListener(URL subscribedURL, Set<String> serviceNames, NotifyListener listener) {\r\n+            this.url = subscribedURL;\r\n+            this.oldApps = serviceNames;\r\n+            this.listener = listener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onEvent(MappingChangedEvent event) {\r\n+            Set<String> newApps = event.getApps();\r\n+            Set<String> tempOldApps = oldApps;\r\n+            oldApps = newApps;\r\n+\r\n+            if (CollectionUtils.isEmpty(newApps)) {\r\n+                return;\r\n+            }\r\n+\r\n+            if (CollectionUtils.isEmpty(tempOldApps) && newApps.size() > 0) {\r\n+                subscribeURLs(url, listener, newApps);\r\n+                return;\r\n+            }\r\n+\r\n+            for (String newAppName : newApps) {\r\n+                if (!tempOldApps.contains(newAppName)) {\r\n+                    subscribeURLs(url, listener, newApps);\r\n+                    return;\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java", "source2": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistryDirectory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,265 +1,265 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.Assert;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.registry.AddressListener;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.registry.integration.DynamicDirectory;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DISABLED_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\n-\n-public class ServiceDiscoveryRegistryDirectory<T> extends DynamicDirectory<T> implements NotifyListener {\n-    private static final Logger logger = LoggerFactory.getLogger(ServiceDiscoveryRegistryDirectory.class);\n-\n-    // instance address to invoker mapping.\n-    private volatile Map<String, Invoker<T>> urlInvokerMap; // The initial value is null and the midway may be assigned to null, please use the local variable reference\n-\n-    private ServiceInstancesChangedListener listener;\n-\n-    public ServiceDiscoveryRegistryDirectory(Class<T> serviceType, URL url) {\n-        super(serviceType, url);\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        if (isDestroyed()) {\n-            return false;\n-        }\n-        Map<String, Invoker<T>> localUrlInvokerMap = urlInvokerMap;\n-        if (localUrlInvokerMap != null && localUrlInvokerMap.size() > 0) {\n-            for (Invoker<T> invoker : new ArrayList<>(localUrlInvokerMap.values())) {\n-                if (invoker.isAvailable()) {\n-                    return true;\n-                }\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public synchronized void notify(List<URL> instanceUrls) {\n-        // Set the context of the address notification thread.\n-        RpcContext.setRpcContext(getConsumerUrl());\n-\n-        /**\n-         * 3.x added for extend URL address\n-         */\n-        ExtensionLoader<AddressListener> addressListenerExtensionLoader = ExtensionLoader.getExtensionLoader(AddressListener.class);\n-        List<AddressListener> supportedListeners = addressListenerExtensionLoader.getActivateExtension(getUrl(), (String[]) null);\n-        if (supportedListeners != null && !supportedListeners.isEmpty()) {\n-            for (AddressListener addressListener : supportedListeners) {\n-                instanceUrls = addressListener.notify(instanceUrls, getConsumerUrl(), this);\n-            }\n-        }\n-\n-        refreshInvoker(instanceUrls);\n-    }\n-\n-    private void refreshInvoker(List<URL> invokerUrls) {\n-        Assert.notNull(invokerUrls, \"invokerUrls should not be null, use empty url list to clear address.\");\n-\n-        if (invokerUrls.size() == 0) {\n-            this.forbidden = true; // Forbid to access\n-            this.invokers = Collections.emptyList();\n-            routerChain.setInvokers(this.invokers);\n-            destroyAllInvokers(); // Close all invokers\n-            return;\n-        }\n-\n-        this.forbidden = false; // Allow to access\n-        Map<String, Invoker<T>> oldUrlInvokerMap = this.urlInvokerMap; // local reference\n-        if (CollectionUtils.isEmpty(invokerUrls)) {\n-            return;\n-        }\n-\n-        Map<String, Invoker<T>> newUrlInvokerMap = toInvokers(invokerUrls);// Translate url list to Invoker map\n-\n-        if (CollectionUtils.isEmptyMap(newUrlInvokerMap)) {\n-            logger.error(new IllegalStateException(\"Cannot create invokers from url address list (total \" + invokerUrls.size() + \")\"));\n-            return;\n-        }\n-\n-        List<Invoker<T>> newInvokers = Collections.unmodifiableList(new ArrayList<>(newUrlInvokerMap.values()));\n-        // pre-route and build cache, notice that route cache should build on original Invoker list.\n-        // toMergeMethodInvokerMap() will wrap some invokers having different groups, those wrapped invokers not should be routed.\n-        routerChain.setInvokers(newInvokers);\n-        this.invokers = multiGroup ? toMergeInvokerList(newInvokers) : newInvokers;\n-        this.urlInvokerMap = newUrlInvokerMap;\n-\n-        if (oldUrlInvokerMap != null) {\n-            try {\n-                destroyUnusedInvokers(oldUrlInvokerMap, newUrlInvokerMap); // Close the unused Invoker\n-            } catch (Exception e) {\n-                logger.warn(\"destroyUnusedInvokers error. \", e);\n-            }\n-        }\n-\n-        // notify invokers refreshed\n-        this.invokersChanged();\n-    }\n-\n-    /**\n-     * Turn urls into invokers, and if url has been refer, will not re-reference.\n-     *\n-     * @param urls\n-     * @return invokers\n-     */\n-    private Map<String, Invoker<T>> toInvokers(List<URL> urls) {\n-        Map<String, Invoker<T>> newUrlInvokerMap = new HashMap<>();\n-        if (urls == null || urls.isEmpty()) {\n-            return newUrlInvokerMap;\n-        }\n-        for (URL url : urls) {\n-            InstanceAddressURL instanceAddressURL = (InstanceAddressURL) url;\n-            if (EMPTY_PROTOCOL.equals(instanceAddressURL.getProtocol())) {\n-                continue;\n-            }\n-            if (!ExtensionLoader.getExtensionLoader(Protocol.class).hasExtension(instanceAddressURL.getProtocol())) {\n-                logger.error(new IllegalStateException(\"Unsupported protocol \" + instanceAddressURL.getProtocol() +\n-                        \" in notified url: \" + instanceAddressURL + \" from registry \" + getUrl().getAddress() +\n-                        \" to consumer \" + NetUtils.getLocalHost() + \", supported protocol: \" +\n-                        ExtensionLoader.getExtensionLoader(Protocol.class).getSupportedExtensions()));\n-                continue;\n-            }\n-\n-            // FIXME, some keys may need to be removed.\n-            instanceAddressURL.addConsumerParams(getConsumerUrl().getProtocolServiceKey(), queryMap);\n-\n-            Invoker<T> invoker = urlInvokerMap == null ? null : urlInvokerMap.get(instanceAddressURL.getAddress());\n-            if (invoker == null || urlChanged(invoker, instanceAddressURL)) { // Not in the cache, refer again\n-                try {\n-                    boolean enabled = true;\n-                    if (instanceAddressURL.hasParameter(DISABLED_KEY)) {\n-                        enabled = !instanceAddressURL.getParameter(DISABLED_KEY, false);\n-                    } else {\n-                        enabled = instanceAddressURL.getParameter(ENABLED_KEY, true);\n-                    }\n-                    if (enabled) {\n-                        invoker = protocol.refer(serviceType, instanceAddressURL);\n-                    }\n-                } catch (Throwable t) {\n-                    logger.error(\"Failed to refer invoker for interface:\" + serviceType + \",url:(\" + instanceAddressURL + \")\" + t.getMessage(), t);\n-                }\n-                if (invoker != null) { // Put new invoker in cache\n-                    newUrlInvokerMap.put(instanceAddressURL.getAddress(), invoker);\n-                }\n-            } else {\n-                newUrlInvokerMap.put(instanceAddressURL.getAddress(), invoker);\n-            }\n-        }\n-        return newUrlInvokerMap;\n-    }\n-\n-    private boolean urlChanged(Invoker<T> invoker, InstanceAddressURL newURL) {\n-        InstanceAddressURL oldURL = (InstanceAddressURL) invoker.getUrl();\n-\n-        if (!newURL.getInstance().equals(oldURL.getInstance())) {\n-            return true;\n-        }\n-\n-        return !oldURL.getMetadataInfo().getServiceInfo(getConsumerUrl().getProtocolServiceKey())\n-                .equals(newURL.getMetadataInfo().getServiceInfo(getConsumerUrl().getProtocolServiceKey()));\n-    }\n-\n-    private List<Invoker<T>> toMergeInvokerList(List<Invoker<T>> invokers) {\n-        return invokers;\n-    }\n-\n-    /**\n-     * Close all invokers\n-     */\n-    @Override\n-    protected void destroyAllInvokers() {\n-        Map<String, Invoker<T>> localUrlInvokerMap = this.urlInvokerMap; // local reference\n-        if (localUrlInvokerMap != null) {\n-            for (Invoker<T> invoker : new ArrayList<>(localUrlInvokerMap.values())) {\n-                try {\n-                    invoker.destroy();\n-                } catch (Throwable t) {\n-                    logger.warn(\"Failed to destroy service \" + serviceKey + \" to provider \" + invoker.getUrl(), t);\n-                }\n-            }\n-            localUrlInvokerMap.clear();\n-        }\n-        invokers = null;\n-    }\n-\n-    /**\n-     * Check whether the invoker in the cache needs to be destroyed\n-     * If set attribute of url: refer.autodestroy=false, the invokers will only increase without decreasing,there may be a refer leak\n-     *\n-     * @param oldUrlInvokerMap\n-     * @param newUrlInvokerMap\n-     */\n-    private void destroyUnusedInvokers(Map<String, Invoker<T>> oldUrlInvokerMap, Map<String, Invoker<T>> newUrlInvokerMap) {\n-        if (newUrlInvokerMap == null || newUrlInvokerMap.size() == 0) {\n-            destroyAllInvokers();\n-            return;\n-        }\n-        // check deleted invoker\n-        List<String> deleted = null;\n-        if (oldUrlInvokerMap != null) {\n-            Collection<Invoker<T>> newInvokers = newUrlInvokerMap.values();\n-            for (Map.Entry<String, Invoker<T>> entry : oldUrlInvokerMap.entrySet()) {\n-                if (!newInvokers.contains(entry.getValue())) {\n-                    if (deleted == null) {\n-                        deleted = new ArrayList<>();\n-                    }\n-                    deleted.add(entry.getKey());\n-                }\n-            }\n-        }\n-\n-        if (deleted != null) {\n-            for (String addressKey : deleted) {\n-                if (addressKey != null) {\n-                    Invoker<T> invoker = oldUrlInvokerMap.remove(addressKey);\n-                    if (invoker != null) {\n-                        try {\n-                            invoker.destroy();\n-                            if (logger.isDebugEnabled()) {\n-                                logger.debug(\"destroy invoker[\" + invoker.getUrl() + \"] success. \");\n-                            }\n-                        } catch (Exception e) {\n-                            logger.warn(\"destroy invoker[\" + invoker.getUrl() + \"] failed. \" + e.getMessage(), e);\n-                        }\n-                    }\n-                }\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.Assert;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.registry.AddressListener;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.registry.integration.DynamicDirectory;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DISABLED_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ENABLED_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\r\n+\r\n+public class ServiceDiscoveryRegistryDirectory<T> extends DynamicDirectory<T> implements NotifyListener {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ServiceDiscoveryRegistryDirectory.class);\r\n+\r\n+    // instance address to invoker mapping.\r\n+    private volatile Map<String, Invoker<T>> urlInvokerMap; // The initial value is null and the midway may be assigned to null, please use the local variable reference\r\n+\r\n+    private ServiceInstancesChangedListener listener;\r\n+\r\n+    public ServiceDiscoveryRegistryDirectory(Class<T> serviceType, URL url) {\r\n+        super(serviceType, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        if (isDestroyed()) {\r\n+            return false;\r\n+        }\r\n+        Map<String, Invoker<T>> localUrlInvokerMap = urlInvokerMap;\r\n+        if (localUrlInvokerMap != null && localUrlInvokerMap.size() > 0) {\r\n+            for (Invoker<T> invoker : new ArrayList<>(localUrlInvokerMap.values())) {\r\n+                if (invoker.isAvailable()) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void notify(List<URL> instanceUrls) {\r\n+        // Set the context of the address notification thread.\r\n+        RpcContext.setRpcContext(getConsumerUrl());\r\n+\r\n+        /**\r\n+         * 3.x added for extend URL address\r\n+         */\r\n+        ExtensionLoader<AddressListener> addressListenerExtensionLoader = ExtensionLoader.getExtensionLoader(AddressListener.class);\r\n+        List<AddressListener> supportedListeners = addressListenerExtensionLoader.getActivateExtension(getUrl(), (String[]) null);\r\n+        if (supportedListeners != null && !supportedListeners.isEmpty()) {\r\n+            for (AddressListener addressListener : supportedListeners) {\r\n+                instanceUrls = addressListener.notify(instanceUrls, getConsumerUrl(), this);\r\n+            }\r\n+        }\r\n+\r\n+        refreshInvoker(instanceUrls);\r\n+    }\r\n+\r\n+    private void refreshInvoker(List<URL> invokerUrls) {\r\n+        Assert.notNull(invokerUrls, \"invokerUrls should not be null, use empty url list to clear address.\");\r\n+\r\n+        if (invokerUrls.size() == 0) {\r\n+            this.forbidden = true; // Forbid to access\r\n+            this.invokers = Collections.emptyList();\r\n+            routerChain.setInvokers(this.invokers);\r\n+            destroyAllInvokers(); // Close all invokers\r\n+            return;\r\n+        }\r\n+\r\n+        this.forbidden = false; // Allow to access\r\n+        Map<String, Invoker<T>> oldUrlInvokerMap = this.urlInvokerMap; // local reference\r\n+        if (CollectionUtils.isEmpty(invokerUrls)) {\r\n+            return;\r\n+        }\r\n+\r\n+        Map<String, Invoker<T>> newUrlInvokerMap = toInvokers(invokerUrls);// Translate url list to Invoker map\r\n+\r\n+        if (CollectionUtils.isEmptyMap(newUrlInvokerMap)) {\r\n+            logger.error(new IllegalStateException(\"Cannot create invokers from url address list (total \" + invokerUrls.size() + \")\"));\r\n+            return;\r\n+        }\r\n+\r\n+        List<Invoker<T>> newInvokers = Collections.unmodifiableList(new ArrayList<>(newUrlInvokerMap.values()));\r\n+        // pre-route and build cache, notice that route cache should build on original Invoker list.\r\n+        // toMergeMethodInvokerMap() will wrap some invokers having different groups, those wrapped invokers not should be routed.\r\n+        routerChain.setInvokers(newInvokers);\r\n+        this.invokers = multiGroup ? toMergeInvokerList(newInvokers) : newInvokers;\r\n+        this.urlInvokerMap = newUrlInvokerMap;\r\n+\r\n+        if (oldUrlInvokerMap != null) {\r\n+            try {\r\n+                destroyUnusedInvokers(oldUrlInvokerMap, newUrlInvokerMap); // Close the unused Invoker\r\n+            } catch (Exception e) {\r\n+                logger.warn(\"destroyUnusedInvokers error. \", e);\r\n+            }\r\n+        }\r\n+\r\n+        // notify invokers refreshed\r\n+        this.invokersChanged();\r\n+    }\r\n+\r\n+    /**\r\n+     * Turn urls into invokers, and if url has been refer, will not re-reference.\r\n+     *\r\n+     * @param urls\r\n+     * @return invokers\r\n+     */\r\n+    private Map<String, Invoker<T>> toInvokers(List<URL> urls) {\r\n+        Map<String, Invoker<T>> newUrlInvokerMap = new HashMap<>();\r\n+        if (urls == null || urls.isEmpty()) {\r\n+            return newUrlInvokerMap;\r\n+        }\r\n+        for (URL url : urls) {\r\n+            InstanceAddressURL instanceAddressURL = (InstanceAddressURL) url;\r\n+            if (EMPTY_PROTOCOL.equals(instanceAddressURL.getProtocol())) {\r\n+                continue;\r\n+            }\r\n+            if (!ExtensionLoader.getExtensionLoader(Protocol.class).hasExtension(instanceAddressURL.getProtocol())) {\r\n+                logger.error(new IllegalStateException(\"Unsupported protocol \" + instanceAddressURL.getProtocol() +\r\n+                        \" in notified url: \" + instanceAddressURL + \" from registry \" + getUrl().getAddress() +\r\n+                        \" to consumer \" + NetUtils.getLocalHost() + \", supported protocol: \" +\r\n+                        ExtensionLoader.getExtensionLoader(Protocol.class).getSupportedExtensions()));\r\n+                continue;\r\n+            }\r\n+\r\n+            // FIXME, some keys may need to be removed.\r\n+            instanceAddressURL.addConsumerParams(getConsumerUrl().getProtocolServiceKey(), queryMap);\r\n+\r\n+            Invoker<T> invoker = urlInvokerMap == null ? null : urlInvokerMap.get(instanceAddressURL.getAddress());\r\n+            if (invoker == null || urlChanged(invoker, instanceAddressURL)) { // Not in the cache, refer again\r\n+                try {\r\n+                    boolean enabled = true;\r\n+                    if (instanceAddressURL.hasParameter(DISABLED_KEY)) {\r\n+                        enabled = !instanceAddressURL.getParameter(DISABLED_KEY, false);\r\n+                    } else {\r\n+                        enabled = instanceAddressURL.getParameter(ENABLED_KEY, true);\r\n+                    }\r\n+                    if (enabled) {\r\n+                        invoker = protocol.refer(serviceType, instanceAddressURL);\r\n+                    }\r\n+                } catch (Throwable t) {\r\n+                    logger.error(\"Failed to refer invoker for interface:\" + serviceType + \",url:(\" + instanceAddressURL + \")\" + t.getMessage(), t);\r\n+                }\r\n+                if (invoker != null) { // Put new invoker in cache\r\n+                    newUrlInvokerMap.put(instanceAddressURL.getAddress(), invoker);\r\n+                }\r\n+            } else {\r\n+                newUrlInvokerMap.put(instanceAddressURL.getAddress(), invoker);\r\n+            }\r\n+        }\r\n+        return newUrlInvokerMap;\r\n+    }\r\n+\r\n+    private boolean urlChanged(Invoker<T> invoker, InstanceAddressURL newURL) {\r\n+        InstanceAddressURL oldURL = (InstanceAddressURL) invoker.getUrl();\r\n+\r\n+        if (!newURL.getInstance().equals(oldURL.getInstance())) {\r\n+            return true;\r\n+        }\r\n+\r\n+        return !oldURL.getMetadataInfo().getServiceInfo(getConsumerUrl().getProtocolServiceKey())\r\n+                .equals(newURL.getMetadataInfo().getServiceInfo(getConsumerUrl().getProtocolServiceKey()));\r\n+    }\r\n+\r\n+    private List<Invoker<T>> toMergeInvokerList(List<Invoker<T>> invokers) {\r\n+        return invokers;\r\n+    }\r\n+\r\n+    /**\r\n+     * Close all invokers\r\n+     */\r\n+    @Override\r\n+    protected void destroyAllInvokers() {\r\n+        Map<String, Invoker<T>> localUrlInvokerMap = this.urlInvokerMap; // local reference\r\n+        if (localUrlInvokerMap != null) {\r\n+            for (Invoker<T> invoker : new ArrayList<>(localUrlInvokerMap.values())) {\r\n+                try {\r\n+                    invoker.destroy();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(\"Failed to destroy service \" + serviceKey + \" to provider \" + invoker.getUrl(), t);\r\n+                }\r\n+            }\r\n+            localUrlInvokerMap.clear();\r\n+        }\r\n+        invokers = null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Check whether the invoker in the cache needs to be destroyed\r\n+     * If set attribute of url: refer.autodestroy=false, the invokers will only increase without decreasing,there may be a refer leak\r\n+     *\r\n+     * @param oldUrlInvokerMap\r\n+     * @param newUrlInvokerMap\r\n+     */\r\n+    private void destroyUnusedInvokers(Map<String, Invoker<T>> oldUrlInvokerMap, Map<String, Invoker<T>> newUrlInvokerMap) {\r\n+        if (newUrlInvokerMap == null || newUrlInvokerMap.size() == 0) {\r\n+            destroyAllInvokers();\r\n+            return;\r\n+        }\r\n+        // check deleted invoker\r\n+        List<String> deleted = null;\r\n+        if (oldUrlInvokerMap != null) {\r\n+            Collection<Invoker<T>> newInvokers = newUrlInvokerMap.values();\r\n+            for (Map.Entry<String, Invoker<T>> entry : oldUrlInvokerMap.entrySet()) {\r\n+                if (!newInvokers.contains(entry.getValue())) {\r\n+                    if (deleted == null) {\r\n+                        deleted = new ArrayList<>();\r\n+                    }\r\n+                    deleted.add(entry.getKey());\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (deleted != null) {\r\n+            for (String addressKey : deleted) {\r\n+                if (addressKey != null) {\r\n+                    Invoker<T> invoker = oldUrlInvokerMap.remove(addressKey);\r\n+                    if (invoker != null) {\r\n+                        try {\r\n+                            invoker.destroy();\r\n+                            if (logger.isDebugEnabled()) {\r\n+                                logger.debug(\"destroy invoker[\" + invoker.getUrl() + \"] success. \");\r\n+                            }\r\n+                        } catch (Exception e) {\r\n+                            logger.warn(\"destroy invoker[\" + invoker.getUrl() + \"] failed. \" + e.getMessage(), e);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistryFactory.java", "source2": "org/apache/dubbo/registry/client/ServiceDiscoveryRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY;\n-\n-public class ServiceDiscoveryRegistryFactory extends AbstractRegistryFactory {\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        if (SERVICE_REGISTRY_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {\n-            String protocol = url.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY);\n-            url = url.setProtocol(protocol).removeParameter(REGISTRY_KEY);\n-        }\n-        return new ServiceDiscoveryRegistry(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY;\r\n+\r\n+public class ServiceDiscoveryRegistryFactory extends AbstractRegistryFactory {\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        if (SERVICE_REGISTRY_PROTOCOL.equalsIgnoreCase(url.getProtocol())) {\r\n+            String protocol = url.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY);\r\n+            url = url.setProtocol(protocol).removeParameter(REGISTRY_KEY);\r\n+        }\r\n+        return new ServiceDiscoveryRegistry(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceInstance.java", "source2": "org/apache/dubbo/registry/client/ServiceInstance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,126 +1,126 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import java.io.Serializable;\n-import java.util.Map;\n-\n-/**\n- * The model class of an instance of a service, which is used for service registration and discovery.\n- * <p>\n- *\n- * @since 2.7.5\n- */\n-public interface ServiceInstance extends Serializable {\n-\n-    /**\n-     * The id of the registered service instance.\n-     *\n-     * @return nullable\n-     */\n-    String getId();\n-\n-    /**\n-     * The name of service that current instance belongs to.\n-     *\n-     * @return non-null\n-     */\n-    String getServiceName();\n-\n-    /**\n-     * The hostname of the registered service instance.\n-     *\n-     * @return non-null\n-     */\n-    String getHost();\n-\n-    /**\n-     * The port of the registered service instance.\n-     *\n-     * @return the positive integer if present\n-     */\n-    Integer getPort();\n-\n-    String getAddress();\n-\n-    /**\n-     * The enable status of the registered service instance.\n-     *\n-     * @return if <code>true</code>, indicates current instance is enabled, or disable, the client should remove this one.\n-     * The default value is <code>true</code>\n-     */\n-    default boolean isEnabled() {\n-        return true;\n-    }\n-\n-    /**\n-     * The registered service instance is health or not.\n-     *\n-     * @return if <code>true</code>, indicates current instance is enabled, or disable, the client may ignore this one.\n-     * The default value is <code>true</code>\n-     */\n-    default boolean isHealthy() {\n-        return true;\n-    }\n-\n-    /**\n-     * The key / value pair metadata associated with the service instance.\n-     *\n-     * @return non-null, mutable and unsorted {@link Map}\n-     */\n-    Map<String, String> getMetadata();\n-\n-    Map<String, String> getExtendParams();\n-\n-    Map<String, String> getAllParams();\n-\n-    /**\n-     * Get the value of metadata by the specified name\n-     *\n-     * @param name the specified name\n-     * @return the value of metadata if found, or <code>null</code>\n-     * @since 2.7.8\n-     */\n-    default String getMetadata(String name) {\n-        return getMetadata(name, null);\n-    }\n-\n-    /**\n-     * Get the value of metadata by the specified name\n-     *\n-     * @param name the specified name\n-     * @return the value of metadata if found, or <code>defaultValue</code>\n-     * @since 2.7.8\n-     */\n-    default String getMetadata(String name, String defaultValue) {\n-        return getMetadata().getOrDefault(name, defaultValue);\n-    }\n-\n-    /**\n-     * @return the hash code of current instance.\n-     */\n-    int hashCode();\n-\n-    /**\n-     * @param another another {@link ServiceInstance}\n-     * @return if equals , return <code>true</code>, or <code>false</code>\n-     */\n-    boolean equals(Object another);\n-\n-    InstanceAddressURL toURL();\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * The model class of an instance of a service, which is used for service registration and discovery.\r\n+ * <p>\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public interface ServiceInstance extends Serializable {\r\n+\r\n+    /**\r\n+     * The id of the registered service instance.\r\n+     *\r\n+     * @return nullable\r\n+     */\r\n+    String getId();\r\n+\r\n+    /**\r\n+     * The name of service that current instance belongs to.\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    String getServiceName();\r\n+\r\n+    /**\r\n+     * The hostname of the registered service instance.\r\n+     *\r\n+     * @return non-null\r\n+     */\r\n+    String getHost();\r\n+\r\n+    /**\r\n+     * The port of the registered service instance.\r\n+     *\r\n+     * @return the positive integer if present\r\n+     */\r\n+    Integer getPort();\r\n+\r\n+    String getAddress();\r\n+\r\n+    /**\r\n+     * The enable status of the registered service instance.\r\n+     *\r\n+     * @return if <code>true</code>, indicates current instance is enabled, or disable, the client should remove this one.\r\n+     * The default value is <code>true</code>\r\n+     */\r\n+    default boolean isEnabled() {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * The registered service instance is health or not.\r\n+     *\r\n+     * @return if <code>true</code>, indicates current instance is enabled, or disable, the client may ignore this one.\r\n+     * The default value is <code>true</code>\r\n+     */\r\n+    default boolean isHealthy() {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * The key / value pair metadata associated with the service instance.\r\n+     *\r\n+     * @return non-null, mutable and unsorted {@link Map}\r\n+     */\r\n+    Map<String, String> getMetadata();\r\n+\r\n+    Map<String, String> getExtendParams();\r\n+\r\n+    Map<String, String> getAllParams();\r\n+\r\n+    /**\r\n+     * Get the value of metadata by the specified name\r\n+     *\r\n+     * @param name the specified name\r\n+     * @return the value of metadata if found, or <code>null</code>\r\n+     * @since 2.7.8\r\n+     */\r\n+    default String getMetadata(String name) {\r\n+        return getMetadata(name, null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the value of metadata by the specified name\r\n+     *\r\n+     * @param name the specified name\r\n+     * @return the value of metadata if found, or <code>defaultValue</code>\r\n+     * @since 2.7.8\r\n+     */\r\n+    default String getMetadata(String name, String defaultValue) {\r\n+        return getMetadata().getOrDefault(name, defaultValue);\r\n+    }\r\n+\r\n+    /**\r\n+     * @return the hash code of current instance.\r\n+     */\r\n+    int hashCode();\r\n+\r\n+    /**\r\n+     * @param another another {@link ServiceInstance}\r\n+     * @return if equals , return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean equals(Object another);\r\n+\r\n+    InstanceAddressURL toURL();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/ServiceInstanceCustomizer.java", "source2": "org/apache/dubbo/registry/client/ServiceInstanceCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\n-\n-/**\n- * The interface to customize {@link ServiceInstance the service instance} on {@link ServiceInstancePreRegisteredEvent}\n- *\n- * @see ServiceInstance#getMetadata()\n- * @since 2.7.5\n- */\n-@SPI\n-public interface ServiceInstanceCustomizer extends Prioritized {\n-\n-    /**\n-     * Customizes {@link ServiceInstance the service instance}\n-     *\n-     * @param serviceInstance {@link ServiceInstance the service instance}\n-     */\n-    void customize(ServiceInstance serviceInstance);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\r\n+\r\n+/**\r\n+ * The interface to customize {@link ServiceInstance the service instance} on {@link ServiceInstancePreRegisteredEvent}\r\n+ *\r\n+ * @see ServiceInstance#getMetadata()\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI\r\n+public interface ServiceInstanceCustomizer extends Prioritized {\r\n+\r\n+    /**\r\n+     * Customizes {@link ServiceInstance the service instance}\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance the service instance}\r\n+     */\r\n+    void customize(ServiceInstance serviceInstance);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyedEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An event raised after the {@link ServiceDiscovery Service Discovery} destroyed.\n- *\n- * @see ServiceDiscovery#destroy()\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryDestroyedEvent extends ServiceDiscoveryEvent {\n-\n-    public ServiceDiscoveryDestroyedEvent(ServiceDiscovery source, ServiceDiscovery original) {\n-        super(source, original);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An event raised after the {@link ServiceDiscovery Service Discovery} destroyed.\r\n+ *\r\n+ * @see ServiceDiscovery#destroy()\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryDestroyedEvent extends ServiceDiscoveryEvent {\r\n+\r\n+    public ServiceDiscoveryDestroyedEvent(ServiceDiscovery source, ServiceDiscovery original) {\r\n+        super(source, original);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyingEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryDestroyingEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An event raised when the {@link ServiceDiscovery Service Discovery} is destroying.\n- *\n- * @see ServiceDiscovery#destroy()\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryDestroyingEvent extends ServiceDiscoveryEvent {\n-\n-    public ServiceDiscoveryDestroyingEvent(ServiceDiscovery source, ServiceDiscovery original) {\n-        super(source, original);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An event raised when the {@link ServiceDiscovery Service Discovery} is destroying.\r\n+ *\r\n+ * @see ServiceDiscovery#destroy()\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryDestroyingEvent extends ServiceDiscoveryEvent {\r\n+\r\n+    public ServiceDiscoveryDestroyingEvent(ServiceDiscovery source, ServiceDiscovery original) {\r\n+        super(source, original);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An abstract {@link Event} class for {@link ServiceDiscovery}\n- *\n- * @see Event\n- * @see ServiceDiscovery\n- * @since 2.7.5\n- */\n-public abstract class ServiceDiscoveryEvent extends Event {\n-\n-    private final ServiceDiscovery original;\n-\n-    /**\n-     * Constructs a prototypical Event.\n-     *\n-     * @param source   The object on which the Event initially occurred.\n-     * @param original The original {@link ServiceDiscovery}\n-     * @throws IllegalArgumentException if source is null.\n-     */\n-    public ServiceDiscoveryEvent(ServiceDiscovery source, ServiceDiscovery original) {\n-        super(source);\n-        this.original = original;\n-    }\n-\n-    @Override\n-    public ServiceDiscovery getSource() {\n-        return (ServiceDiscovery) super.getSource();\n-    }\n-\n-    /**\n-     * Get the {@link ServiceDiscovery} on which the Event initially occurred.\n-     *\n-     * @return {@link ServiceDiscovery} instance\n-     */\n-    public final ServiceDiscovery getServiceDiscovery() {\n-        return getSource();\n-    }\n-\n-    /**\n-     * Get the original {@link ServiceDiscovery}\n-     *\n-     * @return the original {@link ServiceDiscovery}\n-     */\n-    public final ServiceDiscovery getOriginal() {\n-        return original;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An abstract {@link Event} class for {@link ServiceDiscovery}\r\n+ *\r\n+ * @see Event\r\n+ * @see ServiceDiscovery\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class ServiceDiscoveryEvent extends Event {\r\n+\r\n+    private final ServiceDiscovery original;\r\n+\r\n+    /**\r\n+     * Constructs a prototypical Event.\r\n+     *\r\n+     * @param source   The object on which the Event initially occurred.\r\n+     * @param original The original {@link ServiceDiscovery}\r\n+     * @throws IllegalArgumentException if source is null.\r\n+     */\r\n+    public ServiceDiscoveryEvent(ServiceDiscovery source, ServiceDiscovery original) {\r\n+        super(source);\r\n+        this.original = original;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ServiceDiscovery getSource() {\r\n+        return (ServiceDiscovery) super.getSource();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link ServiceDiscovery} on which the Event initially occurred.\r\n+     *\r\n+     * @return {@link ServiceDiscovery} instance\r\n+     */\r\n+    public final ServiceDiscovery getServiceDiscovery() {\r\n+        return getSource();\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the original {@link ServiceDiscovery}\r\n+     *\r\n+     * @return the original {@link ServiceDiscovery}\r\n+     */\r\n+    public final ServiceDiscovery getOriginal() {\r\n+        return original;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryExceptionEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryExceptionEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An event raised when the {@link ServiceDiscovery Service Discovery} met with some exception\n- *\n- * @see ServiceDiscovery\n- * @see org.apache.dubbo.event.Event\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryExceptionEvent extends ServiceDiscoveryEvent {\n-\n-    private final Throwable cause;\n-\n-    public ServiceDiscoveryExceptionEvent(ServiceDiscovery source, ServiceDiscovery original, Throwable cause) {\n-        super(source, original);\n-        if (cause == null) {\n-            throw new NullPointerException(\"The cause of Exception must not null\");\n-        }\n-        this.cause = cause;\n-    }\n-\n-    /**\n-     * The cause of {@link Throwable}\n-     *\n-     * @return non-nul\n-     */\n-    public Throwable getCause() {\n-        return cause;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An event raised when the {@link ServiceDiscovery Service Discovery} met with some exception\r\n+ *\r\n+ * @see ServiceDiscovery\r\n+ * @see org.apache.dubbo.event.Event\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryExceptionEvent extends ServiceDiscoveryEvent {\r\n+\r\n+    private final Throwable cause;\r\n+\r\n+    public ServiceDiscoveryExceptionEvent(ServiceDiscovery source, ServiceDiscovery original, Throwable cause) {\r\n+        super(source, original);\r\n+        if (cause == null) {\r\n+            throw new NullPointerException(\"The cause of Exception must not null\");\r\n+        }\r\n+        this.cause = cause;\r\n+    }\r\n+\r\n+    /**\r\n+     * The cause of {@link Throwable}\r\n+     *\r\n+     * @return non-nul\r\n+     */\r\n+    public Throwable getCause() {\r\n+        return cause;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializedEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An event raised after the {@link ServiceDiscovery Service Discovery} initialized\n- *\n- * @see ServiceDiscovery#initialize(URL)\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryInitializedEvent extends ServiceDiscoveryEvent {\n-\n-    public ServiceDiscoveryInitializedEvent(ServiceDiscovery source, ServiceDiscovery original) {\n-        super(source, original);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An event raised after the {@link ServiceDiscovery Service Discovery} initialized\r\n+ *\r\n+ * @see ServiceDiscovery#initialize(URL)\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryInitializedEvent extends ServiceDiscoveryEvent {\r\n+\r\n+    public ServiceDiscoveryInitializedEvent(ServiceDiscovery source, ServiceDiscovery original) {\r\n+        super(source, original);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializingEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceDiscoveryInitializingEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- * An event raised when the {@link ServiceDiscovery Service Discovery} is initializing.\n- *\n- * @see ServiceDiscovery#initialize(URL)\n- * @since 2.7.5\n- */\n-public class ServiceDiscoveryInitializingEvent extends ServiceDiscoveryEvent {\n-\n-    public ServiceDiscoveryInitializingEvent(ServiceDiscovery source, ServiceDiscovery original) {\n-        super(source, original);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ * An event raised when the {@link ServiceDiscovery Service Discovery} is initializing.\r\n+ *\r\n+ * @see ServiceDiscovery#initialize(URL)\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceDiscoveryInitializingEvent extends ServiceDiscoveryEvent {\r\n+\r\n+    public ServiceDiscoveryInitializingEvent(ServiceDiscovery source, ServiceDiscovery original) {\r\n+        super(source, original);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstanceEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstanceEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,47 +1,47 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-/**\n- * The {@link Event Dubbo event} for {@link ServiceInstance an service instance}\n- *\n- * @since 2.7.5\n- */\n-public abstract class ServiceInstanceEvent extends Event {\n-\n-    private final ServiceInstance serviceInstance;\n-\n-    /**\n-     * @param serviceInstance {@link ServiceInstance an service instance}\n-     */\n-    public ServiceInstanceEvent(Object source, ServiceInstance serviceInstance) {\n-        super(source);\n-        this.serviceInstance = serviceInstance;\n-    }\n-\n-    /**\n-     * Get current {@link ServiceInstance service instance}\n-     *\n-     * @return current {@link ServiceInstance service instance}\n-     */\n-    public ServiceInstance getServiceInstance() {\n-        return serviceInstance;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+/**\r\n+ * The {@link Event Dubbo event} for {@link ServiceInstance an service instance}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class ServiceInstanceEvent extends Event {\r\n+\r\n+    private final ServiceInstance serviceInstance;\r\n+\r\n+    /**\r\n+     * @param serviceInstance {@link ServiceInstance an service instance}\r\n+     */\r\n+    public ServiceInstanceEvent(Object source, ServiceInstance serviceInstance) {\r\n+        super(source);\r\n+        this.serviceInstance = serviceInstance;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get current {@link ServiceInstance service instance}\r\n+     *\r\n+     * @return current {@link ServiceInstance service instance}\r\n+     */\r\n+    public ServiceInstance getServiceInstance() {\r\n+        return serviceInstance;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstancePreRegisteredEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstancePreRegisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-\n-/**\n- * An event raised before a {@link ServiceInstance service instance}\n- * {@link ServiceDiscovery#register(ServiceInstance) registered}\n- *\n- * @since 2.7.5\n- */\n-public class ServiceInstancePreRegisteredEvent extends ServiceInstanceEvent {\n-\n-    public ServiceInstancePreRegisteredEvent(Object source, ServiceInstance serviceInstance) {\n-        super(source, serviceInstance);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+\r\n+/**\r\n+ * An event raised before a {@link ServiceInstance service instance}\r\n+ * {@link ServiceDiscovery#register(ServiceInstance) registered}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstancePreRegisteredEvent extends ServiceInstanceEvent {\r\n+\r\n+    public ServiceInstancePreRegisteredEvent(Object source, ServiceInstance serviceInstance) {\r\n+        super(source, serviceInstance);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstancePreUnregisteredEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstancePreUnregisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-\n-/**\n- * An event raised before a {@link ServiceInstance service instance}\n- * {@link ServiceDiscovery#unregister(ServiceInstance) unregistered}\n- *\n- * @since 2.7.5\n- */\n-public class ServiceInstancePreUnregisteredEvent extends ServiceInstanceEvent {\n-\n-    public ServiceInstancePreUnregisteredEvent(Object source, ServiceInstance serviceInstance) {\n-        super(source, serviceInstance);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+\r\n+/**\r\n+ * An event raised before a {@link ServiceInstance service instance}\r\n+ * {@link ServiceDiscovery#unregister(ServiceInstance) unregistered}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstancePreUnregisteredEvent extends ServiceInstanceEvent {\r\n+\r\n+    public ServiceInstancePreUnregisteredEvent(Object source, ServiceInstance serviceInstance) {\r\n+        super(source, serviceInstance);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstanceRegisteredEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstanceRegisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-\n-/**\n- * An event raised after a {@link ServiceInstance service instance}\n- * {@link ServiceDiscovery#register(ServiceInstance) registered}\n- *\n- * @since 2.7.5\n- */\n-public class ServiceInstanceRegisteredEvent extends ServiceInstanceEvent {\n-\n-    public ServiceInstanceRegisteredEvent(Object source, ServiceInstance serviceInstance) {\n-        super(source, serviceInstance);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+\r\n+/**\r\n+ * An event raised after a {@link ServiceInstance service instance}\r\n+ * {@link ServiceDiscovery#register(ServiceInstance) registered}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstanceRegisteredEvent extends ServiceInstanceEvent {\r\n+\r\n+    public ServiceInstanceRegisteredEvent(Object source, ServiceInstance serviceInstance) {\r\n+        super(source, serviceInstance);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstanceUnregisteredEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstanceUnregisteredEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-\n-/**\n- * An event raised after a {@link ServiceInstance service instance}\n- * {@link ServiceDiscovery#unregister(ServiceInstance) unregistered}\n- *\n- * @see ServiceInstanceEvent\n- * @since 2.7.5\n- */\n-public class ServiceInstanceUnregisteredEvent extends ServiceInstanceEvent {\n-\n-    public ServiceInstanceUnregisteredEvent(Object source, ServiceInstance serviceInstance) {\n-        super(source, serviceInstance);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+\r\n+/**\r\n+ * An event raised after a {@link ServiceInstance service instance}\r\n+ * {@link ServiceDiscovery#unregister(ServiceInstance) unregistered}\r\n+ *\r\n+ * @see ServiceInstanceEvent\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstanceUnregisteredEvent extends ServiceInstanceEvent {\r\n+\r\n+    public ServiceInstanceUnregisteredEvent(Object source, ServiceInstance serviceInstance) {\r\n+        super(source, serviceInstance);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/ServiceInstancesChangedEvent.java", "source2": "org/apache/dubbo/registry/client/event/ServiceInstancesChangedEvent.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event;\n-\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import java.util.List;\n-\n-import static java.util.Collections.unmodifiableList;\n-\n-/**\n- * An event raised after the {@link ServiceInstance instances} of one service has been changed.\n- *\n- * @see ServiceInstancesChangedListener\n- * @since 2.7.5\n- */\n-public class ServiceInstancesChangedEvent extends Event {\n-\n-    private final String serviceName;\n-\n-    private final List<ServiceInstance> serviceInstances;\n-\n-    /**\n-     * @param serviceName      The name of service that was changed\n-     * @param serviceInstances all {@link ServiceInstance service instances}\n-     * @throws IllegalArgumentException if source is null.\n-     */\n-    public ServiceInstancesChangedEvent(String serviceName, List<ServiceInstance> serviceInstances) {\n-        super(serviceName);\n-        this.serviceName = serviceName;\n-        this.serviceInstances = unmodifiableList(serviceInstances);\n-    }\n-\n-    /**\n-     * @return The name of service that was changed\n-     */\n-    public String getServiceName() {\n-        return serviceName;\n-    }\n-\n-\n-    /**\n-     * @return all {@link ServiceInstance service instances}\n-     */\n-    public List<ServiceInstance> getServiceInstances() {\n-        return serviceInstances;\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event;\r\n+\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import java.util.List;\r\n+\r\n+import static java.util.Collections.unmodifiableList;\r\n+\r\n+/**\r\n+ * An event raised after the {@link ServiceInstance instances} of one service has been changed.\r\n+ *\r\n+ * @see ServiceInstancesChangedListener\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstancesChangedEvent extends Event {\r\n+\r\n+    private final String serviceName;\r\n+\r\n+    private final List<ServiceInstance> serviceInstances;\r\n+\r\n+    /**\r\n+     * @param serviceName      The name of service that was changed\r\n+     * @param serviceInstances all {@link ServiceInstance service instances}\r\n+     * @throws IllegalArgumentException if source is null.\r\n+     */\r\n+    public ServiceInstancesChangedEvent(String serviceName, List<ServiceInstance> serviceInstances) {\r\n+        super(serviceName);\r\n+        this.serviceName = serviceName;\r\n+        this.serviceInstances = unmodifiableList(serviceInstances);\r\n+    }\r\n+\r\n+    /**\r\n+     * @return The name of service that was changed\r\n+     */\r\n+    public String getServiceName() {\r\n+        return serviceName;\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * @return all {@link ServiceInstance service instances}\r\n+     */\r\n+    public List<ServiceInstance> getServiceInstances() {\r\n+        return serviceInstances;\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/registry/client/event/listener/LoggingEventListener.java", "source2": "org/apache/dubbo/registry/client/event/listener/LoggingEventListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,85 +1,85 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event.listener;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.event.Event;\n-import org.apache.dubbo.event.GenericEventListener;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyedEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyingEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializedEvent;\n-import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializingEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstancePreUnregisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstanceRegisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstanceUnregisteredEvent;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-\n-import static java.lang.String.format;\n-\n-/**\n- * A listener for logging the {@link Event Dubbo event}\n- *\n- * @since 2.7.5\n- */\n-public class LoggingEventListener extends GenericEventListener {\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    public void onEvent(ServiceDiscoveryInitializingEvent event) {\n-        info(\"%s is initializing...\", event.getServiceDiscovery());\n-    }\n-\n-    public void onEvent(ServiceDiscoveryInitializedEvent event) {\n-        info(\"%s is initialized.\", event.getServiceDiscovery());\n-    }\n-\n-    public void onEvent(ServiceInstancePreRegisteredEvent event) {\n-        info(\"%s is registering into %s...\", event.getServiceInstance(), event.getSource());\n-    }\n-\n-    public void onEvent(ServiceInstanceRegisteredEvent event) {\n-        info(\"%s has been registered into %s.\", event.getServiceInstance(), event.getSource());\n-    }\n-\n-    public void onEvent(ServiceInstancesChangedEvent event) {\n-        info(\"The service[name : %s] instances[size : %s] has been changed.\", event.getServiceName(), event.getServiceInstances().size());\n-    }\n-\n-    public void onEvent(ServiceInstancePreUnregisteredEvent event) {\n-        info(\"%s is unregistering from %s...\", event.getServiceInstance(), event.getSource());\n-    }\n-\n-    public void onEvent(ServiceInstanceUnregisteredEvent event) {\n-        info(\"%s has been unregistered from %s.\", event.getServiceInstance(), event.getSource());\n-    }\n-\n-    public void onEvent(ServiceDiscoveryDestroyingEvent event) {\n-        info(\"%s is stopping...\", event.getServiceDiscovery());\n-    }\n-\n-    public void onEvent(ServiceDiscoveryDestroyedEvent event) {\n-        info(\"%s is stopped.\", event.getServiceDiscovery());\n-    }\n-\n-    private void info(String pattern, Object... args) {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(format(pattern, args));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event.listener;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.event.Event;\r\n+import org.apache.dubbo.event.GenericEventListener;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyedEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryDestroyingEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializedEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceDiscoveryInitializingEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancePreRegisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancePreUnregisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstanceRegisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstanceUnregisteredEvent;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+\r\n+import static java.lang.String.format;\r\n+\r\n+/**\r\n+ * A listener for logging the {@link Event Dubbo event}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class LoggingEventListener extends GenericEventListener {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    public void onEvent(ServiceDiscoveryInitializingEvent event) {\r\n+        info(\"%s is initializing...\", event.getServiceDiscovery());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceDiscoveryInitializedEvent event) {\r\n+        info(\"%s is initialized.\", event.getServiceDiscovery());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceInstancePreRegisteredEvent event) {\r\n+        info(\"%s is registering into %s...\", event.getServiceInstance(), event.getSource());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceInstanceRegisteredEvent event) {\r\n+        info(\"%s has been registered into %s.\", event.getServiceInstance(), event.getSource());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceInstancesChangedEvent event) {\r\n+        info(\"The service[name : %s] instances[size : %s] has been changed.\", event.getServiceName(), event.getServiceInstances().size());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceInstancePreUnregisteredEvent event) {\r\n+        info(\"%s is unregistering from %s...\", event.getServiceInstance(), event.getSource());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceInstanceUnregisteredEvent event) {\r\n+        info(\"%s has been unregistered from %s.\", event.getServiceInstance(), event.getSource());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceDiscoveryDestroyingEvent event) {\r\n+        info(\"%s is stopping...\", event.getServiceDiscovery());\r\n+    }\r\n+\r\n+    public void onEvent(ServiceDiscoveryDestroyedEvent event) {\r\n+        info(\"%s is stopped.\", event.getServiceDiscovery());\r\n+    }\r\n+\r\n+    private void info(String pattern, Object... args) {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(format(pattern, args));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java", "source2": "org/apache/dubbo/registry/client/event/listener/ServiceInstancesChangedListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,268 +1,268 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.event.listener;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.event.ConditionalEventListener;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.MetadataInfo.ServiceInfo;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.metadata.MetadataUtils;\n-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\n-import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.TreeSet;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\n-import static org.apache.dubbo.metadata.MetadataInfo.DEFAULT_REVISION;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getExportedServicesRevision;\n-\n-/**\n- * The Service Discovery Changed {@link EventListener Event Listener}\n- *\n- * @see ServiceInstancesChangedEvent\n- * @since 2.7.5\n- */\n-public class ServiceInstancesChangedListener implements ConditionalEventListener<ServiceInstancesChangedEvent> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ServiceInstancesChangedListener.class);\n-\n-    private final Set<String> serviceNames;\n-    private final ServiceDiscovery serviceDiscovery;\n-    private final String registryId;\n-    private URL url;\n-    private Map<String, Set<NotifyListener>> listeners;\n-\n-    private Map<String, List<ServiceInstance>> allInstances;\n-\n-    private Map<String, List<URL>> serviceUrls;\n-\n-    private Map<String, MetadataInfo> revisionToMetadata;\n-\n-    public ServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery) {\n-        this.serviceNames = serviceNames;\n-        this.serviceDiscovery = serviceDiscovery;\n-        this.registryId = serviceDiscovery.getUrl().getParameter(\"id\");\n-        this.listeners = new HashMap<>();\n-        this.allInstances = new HashMap<>();\n-        this.serviceUrls = new HashMap<>();\n-        this.revisionToMetadata = new HashMap<>();\n-    }\n-\n-    /**\n-     * On {@link ServiceInstancesChangedEvent the service instances change event}\n-     *\n-     * @param event {@link ServiceInstancesChangedEvent}\n-     */\n-    public synchronized void onEvent(ServiceInstancesChangedEvent event) {\n-        logger.info(\"Received instance notification, serviceName: \" + event.getServiceName() + \", instances: \" + event.getServiceInstances().size());\n-        String appName = event.getServiceName();\n-        allInstances.put(appName, event.getServiceInstances());\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(event.getServiceInstances().toString());\n-        }\n-\n-        Map<String, List<ServiceInstance>> revisionToInstances = new HashMap<>();\n-        Map<String, Set<String>> localServiceToRevisions = new HashMap<>();\n-        Map<Set<String>, List<URL>> revisionsToUrls = new HashMap();\n-        Map<String, List<URL>> tmpServiceUrls = new HashMap<>();\n-        for (Map.Entry<String, List<ServiceInstance>> entry : allInstances.entrySet()) {\n-            List<ServiceInstance> instances = entry.getValue();\n-            for (ServiceInstance instance : instances) {\n-                String revision = getExportedServicesRevision(instance);\n-                if (DEFAULT_REVISION.equals(revision)) {\n-                    logger.info(\"Find instance without valid service metadata: \" + instance.getAddress());\n-                    continue;\n-                }\n-                List<ServiceInstance> subInstances = revisionToInstances.computeIfAbsent(revision, r -> new LinkedList<>());\n-                subInstances.add(instance);\n-\n-                MetadataInfo metadata = revisionToMetadata.get(revision);\n-                if (metadata == null) {\n-                    metadata = getMetadataInfo(instance);\n-                    logger.info(\"MetadataInfo for instance \" + instance.getAddress() + \"?revision=\" + revision + \" is \" + metadata);\n-                    if (metadata != null) {\n-                        revisionToMetadata.put(revision, metadata);\n-                    } else {\n-\n-                    }\n-                }\n-\n-                if (metadata != null) {\n-                    parseMetadata(revision, metadata, localServiceToRevisions);\n-                    ((DefaultServiceInstance) instance).setServiceMetadata(metadata);\n-                }\n-//                else {\n-//                    logger.error(\"Failed to load service metadata for instance \" + instance);\n-//                    Set<String> set = localServiceToRevisions.computeIfAbsent(url.getServiceKey(), k -> new TreeSet<>());\n-//                    set.add(revision);\n-//                }\n-            }\n-\n-            localServiceToRevisions.forEach((serviceKey, revisions) -> {\n-                List<URL> urls = revisionsToUrls.get(revisions);\n-                if (urls != null) {\n-                    tmpServiceUrls.put(serviceKey, urls);\n-                } else {\n-                    urls = new ArrayList<>();\n-                    for (String r : revisions) {\n-                        for (ServiceInstance i : revisionToInstances.get(r)) {\n-                            urls.add(i.toURL());\n-                        }\n-                    }\n-                    revisionsToUrls.put(revisions, urls);\n-                    tmpServiceUrls.put(serviceKey, urls);\n-                }\n-            });\n-        }\n-\n-        this.serviceUrls = tmpServiceUrls;\n-        this.notifyAddressChanged();\n-    }\n-\n-    private Map<String, Set<String>> parseMetadata(String revision, MetadataInfo metadata, Map<String, Set<String>> localServiceToRevisions) {\n-        Map<String, ServiceInfo> serviceInfos = metadata.getServices();\n-        for (Map.Entry<String, ServiceInfo> entry : serviceInfos.entrySet()) {\n-            Set<String> set = localServiceToRevisions.computeIfAbsent(entry.getKey(), k -> new TreeSet<>());\n-            set.add(revision);\n-        }\n-\n-        return localServiceToRevisions;\n-    }\n-\n-    private MetadataInfo getMetadataInfo(ServiceInstance instance) {\n-        String metadataType = ServiceInstanceMetadataUtils.getMetadataStorageType(instance);\n-        // FIXME, check \"REGISTRY_CLUSTER_KEY\" must be set by every registry implementation.\n-        instance.getExtendParams().putIfAbsent(REGISTRY_CLUSTER_KEY, RegistryClusterIdentifier.getExtension(url).consumerKey(url));\n-        MetadataInfo metadataInfo;\n-        try {\n-            if (logger.isDebugEnabled()) {\n-                logger.info(\"Instance \" + instance.getAddress() + \" is using metadata type \" + metadataType);\n-            }\n-            if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {\n-                RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\n-                metadataInfo = remoteMetadataService.getMetadata(instance);\n-            } else {\n-                MetadataService metadataServiceProxy = MetadataUtils.getMetadataServiceProxy(instance, serviceDiscovery);\n-                metadataInfo = metadataServiceProxy.getMetadataInfo(ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));\n-            }\n-            if (logger.isDebugEnabled()) {\n-                logger.info(\"Metadata \" + metadataInfo.toString());\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Failed to load service metadata, metadata type is \" + metadataType, e);\n-            metadataInfo = null;\n-            // TODO, load metadata backup. Stop getting metadata after x times of failure for one revision?\n-        }\n-        return metadataInfo;\n-    }\n-\n-    private void notifyAddressChanged() {\n-        listeners.forEach((key, notifyListeners) -> {\n-            notifyListeners.forEach(notifyListener -> {\n-                notifyListener.notify(toUrlsWithEmpty(serviceUrls.get(key)));\n-            });\n-        });\n-    }\n-\n-    private List<URL> toUrlsWithEmpty(List<URL> urls) {\n-        if (urls == null) {\n-            urls = Collections.emptyList();\n-        }\n-        return urls;\n-    }\n-\n-    public void addListener(String serviceKey, NotifyListener listener) {\n-        this.listeners.computeIfAbsent(serviceKey, k -> new HashSet<>()).add(listener);\n-    }\n-\n-    public void removeListener(String serviceKey) {\n-        listeners.remove(serviceKey);\n-        if (listeners.isEmpty()) {\n-            serviceDiscovery.removeServiceInstancesChangedListener(this);\n-        }\n-    }\n-\n-    public List<URL> getUrls(String serviceKey) {\n-        return toUrlsWithEmpty(serviceUrls.get(serviceKey));\n-    }\n-\n-    /**\n-     * Get the correlative service name\n-     *\n-     * @return the correlative service name\n-     */\n-    public final Set<String> getServiceNames() {\n-        return serviceNames;\n-    }\n-\n-    public void setUrl(URL url) {\n-        this.url = url;\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    /**\n-     * @param event {@link ServiceInstancesChangedEvent event}\n-     * @return If service name matches, return <code>true</code>, or <code>false</code>\n-     */\n-    public final boolean accept(ServiceInstancesChangedEvent event) {\n-        return serviceNames.contains(event.getServiceName());\n-    }\n-\n-    public String getRegistryId() {\n-        return registryId;\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof ServiceInstancesChangedListener)) {\n-            return false;\n-        }\n-        ServiceInstancesChangedListener that = (ServiceInstancesChangedListener) o;\n-        return Objects.equals(getServiceNames(), that.getServiceNames()) && Objects.equals(getRegistryId(), that.getRegistryId());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getClass(), getServiceNames(), getRegistryId());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.event.listener;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.event.ConditionalEventListener;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.MetadataInfo.ServiceInfo;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.metadata.MetadataUtils;\r\n+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\r\n+import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\r\n+import static org.apache.dubbo.metadata.MetadataInfo.DEFAULT_REVISION;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getExportedServicesRevision;\r\n+\r\n+/**\r\n+ * The Service Discovery Changed {@link EventListener Event Listener}\r\n+ *\r\n+ * @see ServiceInstancesChangedEvent\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstancesChangedListener implements ConditionalEventListener<ServiceInstancesChangedEvent> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ServiceInstancesChangedListener.class);\r\n+\r\n+    private final Set<String> serviceNames;\r\n+    private final ServiceDiscovery serviceDiscovery;\r\n+    private final String registryId;\r\n+    private URL url;\r\n+    private Map<String, Set<NotifyListener>> listeners;\r\n+\r\n+    private Map<String, List<ServiceInstance>> allInstances;\r\n+\r\n+    private Map<String, List<URL>> serviceUrls;\r\n+\r\n+    private Map<String, MetadataInfo> revisionToMetadata;\r\n+\r\n+    public ServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery) {\r\n+        this.serviceNames = serviceNames;\r\n+        this.serviceDiscovery = serviceDiscovery;\r\n+        this.registryId = serviceDiscovery.getUrl().getParameter(\"id\");\r\n+        this.listeners = new HashMap<>();\r\n+        this.allInstances = new HashMap<>();\r\n+        this.serviceUrls = new HashMap<>();\r\n+        this.revisionToMetadata = new HashMap<>();\r\n+    }\r\n+\r\n+    /**\r\n+     * On {@link ServiceInstancesChangedEvent the service instances change event}\r\n+     *\r\n+     * @param event {@link ServiceInstancesChangedEvent}\r\n+     */\r\n+    public synchronized void onEvent(ServiceInstancesChangedEvent event) {\r\n+        logger.info(\"Received instance notification, serviceName: \" + event.getServiceName() + \", instances: \" + event.getServiceInstances().size());\r\n+        String appName = event.getServiceName();\r\n+        allInstances.put(appName, event.getServiceInstances());\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(event.getServiceInstances().toString());\r\n+        }\r\n+\r\n+        Map<String, List<ServiceInstance>> revisionToInstances = new HashMap<>();\r\n+        Map<String, Set<String>> localServiceToRevisions = new HashMap<>();\r\n+        Map<Set<String>, List<URL>> revisionsToUrls = new HashMap();\r\n+        Map<String, List<URL>> tmpServiceUrls = new HashMap<>();\r\n+        for (Map.Entry<String, List<ServiceInstance>> entry : allInstances.entrySet()) {\r\n+            List<ServiceInstance> instances = entry.getValue();\r\n+            for (ServiceInstance instance : instances) {\r\n+                String revision = getExportedServicesRevision(instance);\r\n+                if (DEFAULT_REVISION.equals(revision)) {\r\n+                    logger.info(\"Find instance without valid service metadata: \" + instance.getAddress());\r\n+                    continue;\r\n+                }\r\n+                List<ServiceInstance> subInstances = revisionToInstances.computeIfAbsent(revision, r -> new LinkedList<>());\r\n+                subInstances.add(instance);\r\n+\r\n+                MetadataInfo metadata = revisionToMetadata.get(revision);\r\n+                if (metadata == null) {\r\n+                    metadata = getMetadataInfo(instance);\r\n+                    logger.info(\"MetadataInfo for instance \" + instance.getAddress() + \"?revision=\" + revision + \" is \" + metadata);\r\n+                    if (metadata != null) {\r\n+                        revisionToMetadata.put(revision, metadata);\r\n+                    } else {\r\n+\r\n+                    }\r\n+                }\r\n+\r\n+                if (metadata != null) {\r\n+                    parseMetadata(revision, metadata, localServiceToRevisions);\r\n+                    ((DefaultServiceInstance) instance).setServiceMetadata(metadata);\r\n+                }\r\n+//                else {\r\n+//                    logger.error(\"Failed to load service metadata for instance \" + instance);\r\n+//                    Set<String> set = localServiceToRevisions.computeIfAbsent(url.getServiceKey(), k -> new TreeSet<>());\r\n+//                    set.add(revision);\r\n+//                }\r\n+            }\r\n+\r\n+            localServiceToRevisions.forEach((serviceKey, revisions) -> {\r\n+                List<URL> urls = revisionsToUrls.get(revisions);\r\n+                if (urls != null) {\r\n+                    tmpServiceUrls.put(serviceKey, urls);\r\n+                } else {\r\n+                    urls = new ArrayList<>();\r\n+                    for (String r : revisions) {\r\n+                        for (ServiceInstance i : revisionToInstances.get(r)) {\r\n+                            urls.add(i.toURL());\r\n+                        }\r\n+                    }\r\n+                    revisionsToUrls.put(revisions, urls);\r\n+                    tmpServiceUrls.put(serviceKey, urls);\r\n+                }\r\n+            });\r\n+        }\r\n+\r\n+        this.serviceUrls = tmpServiceUrls;\r\n+        this.notifyAddressChanged();\r\n+    }\r\n+\r\n+    private Map<String, Set<String>> parseMetadata(String revision, MetadataInfo metadata, Map<String, Set<String>> localServiceToRevisions) {\r\n+        Map<String, ServiceInfo> serviceInfos = metadata.getServices();\r\n+        for (Map.Entry<String, ServiceInfo> entry : serviceInfos.entrySet()) {\r\n+            Set<String> set = localServiceToRevisions.computeIfAbsent(entry.getKey(), k -> new TreeSet<>());\r\n+            set.add(revision);\r\n+        }\r\n+\r\n+        return localServiceToRevisions;\r\n+    }\r\n+\r\n+    private MetadataInfo getMetadataInfo(ServiceInstance instance) {\r\n+        String metadataType = ServiceInstanceMetadataUtils.getMetadataStorageType(instance);\r\n+        // FIXME, check \"REGISTRY_CLUSTER_KEY\" must be set by every registry implementation.\r\n+        instance.getExtendParams().putIfAbsent(REGISTRY_CLUSTER_KEY, RegistryClusterIdentifier.getExtension(url).consumerKey(url));\r\n+        MetadataInfo metadataInfo;\r\n+        try {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.info(\"Instance \" + instance.getAddress() + \" is using metadata type \" + metadataType);\r\n+            }\r\n+            if (REMOTE_METADATA_STORAGE_TYPE.equals(metadataType)) {\r\n+                RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\r\n+                metadataInfo = remoteMetadataService.getMetadata(instance);\r\n+            } else {\r\n+                MetadataService metadataServiceProxy = MetadataUtils.getMetadataServiceProxy(instance, serviceDiscovery);\r\n+                metadataInfo = metadataServiceProxy.getMetadataInfo(ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));\r\n+            }\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.info(\"Metadata \" + metadataInfo.toString());\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Failed to load service metadata, metadata type is \" + metadataType, e);\r\n+            metadataInfo = null;\r\n+            // TODO, load metadata backup. Stop getting metadata after x times of failure for one revision?\r\n+        }\r\n+        return metadataInfo;\r\n+    }\r\n+\r\n+    private void notifyAddressChanged() {\r\n+        listeners.forEach((key, notifyListeners) -> {\r\n+            notifyListeners.forEach(notifyListener -> {\r\n+                notifyListener.notify(toUrlsWithEmpty(serviceUrls.get(key)));\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    private List<URL> toUrlsWithEmpty(List<URL> urls) {\r\n+        if (urls == null) {\r\n+            urls = Collections.emptyList();\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    public void addListener(String serviceKey, NotifyListener listener) {\r\n+        this.listeners.computeIfAbsent(serviceKey, k -> new HashSet<>()).add(listener);\r\n+    }\r\n+\r\n+    public void removeListener(String serviceKey) {\r\n+        listeners.remove(serviceKey);\r\n+        if (listeners.isEmpty()) {\r\n+            serviceDiscovery.removeServiceInstancesChangedListener(this);\r\n+        }\r\n+    }\r\n+\r\n+    public List<URL> getUrls(String serviceKey) {\r\n+        return toUrlsWithEmpty(serviceUrls.get(serviceKey));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the correlative service name\r\n+     *\r\n+     * @return the correlative service name\r\n+     */\r\n+    public final Set<String> getServiceNames() {\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    public void setUrl(URL url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param event {@link ServiceInstancesChangedEvent event}\r\n+     * @return If service name matches, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    public final boolean accept(ServiceInstancesChangedEvent event) {\r\n+        return serviceNames.contains(event.getServiceName());\r\n+    }\r\n+\r\n+    public String getRegistryId() {\r\n+        return registryId;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof ServiceInstancesChangedListener)) {\r\n+            return false;\r\n+        }\r\n+        ServiceInstancesChangedListener that = (ServiceInstancesChangedListener) o;\r\n+        return Objects.equals(getServiceNames(), that.getServiceNames()) && Objects.equals(getRegistryId(), that.getRegistryId());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getClass(), getServiceNames(), getRegistryId());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java", "source2": "org/apache/dubbo/registry/client/metadata/MetadataServiceNameMapping.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,86 +1,86 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.metadata.MappingListener;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.ServiceNameMapping;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.MetadataReportInstance;\n-import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\n-\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Set;\n-\n-import static java.util.Arrays.asList;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.model.ApplicationModel.getName;\n-\n-public class MetadataServiceNameMapping implements ServiceNameMapping {\n-    private static final List<String> IGNORED_SERVICE_INTERFACES = asList(MetadataService.class.getName());\n-\n-    @Override\n-    public void map(URL url) {\n-        String serviceInterface = url.getServiceInterface();\n-        String group = url.getParameter(GROUP_KEY);\n-        String version = url.getParameter(VERSION_KEY);\n-        String protocol = url.getProtocol();\n-\n-        if (IGNORED_SERVICE_INTERFACES.contains(serviceInterface)) {\n-            return;\n-        }\n-        String registryCluster = getRegistryCluster(url);\n-        MetadataReport metadataReport = MetadataReportInstance.getMetadataReport(registryCluster);\n-        metadataReport.registerServiceAppMapping(ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol), getName(), url);\n-    }\n-\n-    @Override\n-    public Set<String> getAndListen(URL url, MappingListener mappingListener) {\n-        String serviceInterface = url.getServiceInterface();\n-        String group = url.getParameter(GROUP_KEY);\n-        String version = url.getParameter(VERSION_KEY);\n-        String protocol = url.getProtocol();\n-\n-        String mappingKey = ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol);\n-        Set<String> serviceNames = new LinkedHashSet<>();\n-        String registryCluster = getRegistryCluster(url);\n-        MetadataReport metadataReport = MetadataReportInstance.getMetadataReport(registryCluster);\n-        Set<String> apps = metadataReport.getServiceAppMapping(\n-                mappingKey,\n-                mappingListener,\n-                url);\n-        if (CollectionUtils.isNotEmpty(apps)) {\n-            serviceNames.addAll(apps);\n-        }\n-\n-        return serviceNames;\n-    }\n-\n-    protected String getRegistryCluster(URL url) {\n-        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\n-\n-        int i = registryCluster.indexOf(\",\");\n-        if (i > 0) {\n-            registryCluster = registryCluster.substring(0, i);\n-        }\n-        return registryCluster;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.metadata.MappingListener;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.ServiceNameMapping;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.MetadataReportInstance;\r\n+import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\r\n+\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+\r\n+import static java.util.Arrays.asList;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.model.ApplicationModel.getName;\r\n+\r\n+public class MetadataServiceNameMapping implements ServiceNameMapping {\r\n+    private static final List<String> IGNORED_SERVICE_INTERFACES = asList(MetadataService.class.getName());\r\n+\r\n+    @Override\r\n+    public void map(URL url) {\r\n+        String serviceInterface = url.getServiceInterface();\r\n+        String group = url.getParameter(GROUP_KEY);\r\n+        String version = url.getParameter(VERSION_KEY);\r\n+        String protocol = url.getProtocol();\r\n+\r\n+        if (IGNORED_SERVICE_INTERFACES.contains(serviceInterface)) {\r\n+            return;\r\n+        }\r\n+        String registryCluster = getRegistryCluster(url);\r\n+        MetadataReport metadataReport = MetadataReportInstance.getMetadataReport(registryCluster);\r\n+        metadataReport.registerServiceAppMapping(ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol), getName(), url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getAndListen(URL url, MappingListener mappingListener) {\r\n+        String serviceInterface = url.getServiceInterface();\r\n+        String group = url.getParameter(GROUP_KEY);\r\n+        String version = url.getParameter(VERSION_KEY);\r\n+        String protocol = url.getProtocol();\r\n+\r\n+        String mappingKey = ServiceNameMapping.buildGroup(serviceInterface, group, version, protocol);\r\n+        Set<String> serviceNames = new LinkedHashSet<>();\r\n+        String registryCluster = getRegistryCluster(url);\r\n+        MetadataReport metadataReport = MetadataReportInstance.getMetadataReport(registryCluster);\r\n+        Set<String> apps = metadataReport.getServiceAppMapping(\r\n+                mappingKey,\r\n+                mappingListener,\r\n+                url);\r\n+        if (CollectionUtils.isNotEmpty(apps)) {\r\n+            serviceNames.addAll(apps);\r\n+        }\r\n+\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    protected String getRegistryCluster(URL url) {\r\n+        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\r\n+\r\n+        int i = registryCluster.indexOf(\",\");\r\n+        if (i > 0) {\r\n+            registryCluster = registryCluster.substring(0, i);\r\n+        }\r\n+        return registryCluster;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java", "source2": "org/apache/dubbo/registry/client/metadata/MetadataServiceURLBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.List;\n-\n-/**\n- * Used to build metadata service url from ServiceInstance.\n- *\n- * @since 2.7.5\n- */\n-@SPI\n-public interface MetadataServiceURLBuilder {\n-\n-    /**\n-     * Build the {@link URL URLs} from the specified {@link ServiceInstance}\n-     *\n-     * @param serviceInstance {@link ServiceInstance}\n-     * @return TODO, usually, we generate one metadata url from one instance. There's no scenario to return a metadata url list.\n-     */\n-    List<URL> build(ServiceInstance serviceInstance);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * Used to build metadata service url from ServiceInstance.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI\r\n+public interface MetadataServiceURLBuilder {\r\n+\r\n+    /**\r\n+     * Build the {@link URL URLs} from the specified {@link ServiceInstance}\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance}\r\n+     * @return TODO, usually, we generate one metadata url from one instance. There's no scenario to return a metadata url list.\r\n+     */\r\n+    List<URL> build(ServiceInstance serviceInstance);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java", "source2": "org/apache/dubbo/registry/client/metadata/MetadataServiceURLParamsMetadataCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\n-\n-import java.util.Map;\n-import java.util.SortedSet;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-import static org.apache.dubbo.metadata.MetadataService.toURLs;\n-import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceParameter;\n-\n-public class MetadataServiceURLParamsMetadataCustomizer implements ServiceInstanceCustomizer {\n-\n-    @Override\n-    public void customize(ServiceInstance serviceInstance) {\n-\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-\n-        String propertyName = resolveMetadataPropertyName(serviceInstance);\n-        String propertyValue = resolveMetadataPropertyValue(serviceInstance);\n-\n-        if (!isBlank(propertyName) && !isBlank(propertyValue)) {\n-            metadata.put(propertyName, propertyValue);\n-        }\n-    }\n-\n-    private String resolveMetadataPropertyName(ServiceInstance serviceInstance) {\n-        return METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME;\n-    }\n-\n-    private String resolveMetadataPropertyValue(ServiceInstance serviceInstance) {\n-        WritableMetadataService writableMetadataService = getDefaultExtension();\n-\n-        String serviceInterface = MetadataService.class.getName();\n-\n-        String group = serviceInstance.getServiceName();\n-\n-        String version = MetadataService.VERSION;\n-\n-        SortedSet<String> urls = writableMetadataService.getExportedURLs(serviceInterface, group, version);\n-\n-        return getMetadataServiceParameter(toURLs(urls));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\r\n+\r\n+import java.util.Map;\r\n+import java.util.SortedSet;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+import static org.apache.dubbo.metadata.MetadataService.toURLs;\r\n+import static org.apache.dubbo.metadata.WritableMetadataService.getDefaultExtension;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceParameter;\r\n+\r\n+public class MetadataServiceURLParamsMetadataCustomizer implements ServiceInstanceCustomizer {\r\n+\r\n+    @Override\r\n+    public void customize(ServiceInstance serviceInstance) {\r\n+\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+\r\n+        String propertyName = resolveMetadataPropertyName(serviceInstance);\r\n+        String propertyValue = resolveMetadataPropertyValue(serviceInstance);\r\n+\r\n+        if (!isBlank(propertyName) && !isBlank(propertyValue)) {\r\n+            metadata.put(propertyName, propertyValue);\r\n+        }\r\n+    }\r\n+\r\n+    private String resolveMetadataPropertyName(ServiceInstance serviceInstance) {\r\n+        return METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME;\r\n+    }\r\n+\r\n+    private String resolveMetadataPropertyValue(ServiceInstance serviceInstance) {\r\n+        WritableMetadataService writableMetadataService = getDefaultExtension();\r\n+\r\n+        String serviceInterface = MetadataService.class.getName();\r\n+\r\n+        String group = serviceInstance.getServiceName();\r\n+\r\n+        String version = MetadataService.VERSION;\r\n+\r\n+        SortedSet<String> urls = writableMetadataService.getExportedURLs(serviceInterface, group, version);\r\n+\r\n+        return getMetadataServiceParameter(toURLs(urls));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/MetadataUtils.java", "source2": "org/apache/dubbo/registry/client/metadata/MetadataUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URLS_PROPERTY_NAME;\n-\n-public class MetadataUtils {\n-\n-    private static final Object REMOTE_LOCK = new Object();\n-\n-    public static ConcurrentMap<String, MetadataService> metadataServiceProxies = new ConcurrentHashMap<>();\n-\n-    private static final ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\n-\n-    private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\n-\n-    public static RemoteMetadataServiceImpl remoteMetadataService;\n-\n-    public static WritableMetadataService localMetadataService;\n-\n-    public static RemoteMetadataServiceImpl getRemoteMetadataService() {\n-        if (remoteMetadataService == null) {\n-            synchronized (REMOTE_LOCK) {\n-                if (remoteMetadataService == null) {\n-                    remoteMetadataService = new RemoteMetadataServiceImpl(WritableMetadataService.getDefaultExtension());\n-                }\n-            }\n-        }\n-        return remoteMetadataService;\n-    }\n-\n-    public static void publishServiceDefinition(URL url) {\n-        // store in local\n-        WritableMetadataService.getDefaultExtension().publishServiceDefinition(url);\n-        // send to remote\n-//        if (REMOTE_METADATA_STORAGE_TYPE.equals(url.getParameter(METADATA_KEY))) {\n-        getRemoteMetadataService().publishServiceDefinition(url);\n-//        }\n-    }\n-\n-    public static MetadataService getMetadataServiceProxy(ServiceInstance instance, ServiceDiscovery serviceDiscovery) {\n-        String key = instance.getServiceName() + \"##\" +\n-                ServiceInstanceMetadataUtils.getExportedServicesRevision(instance);\n-        return metadataServiceProxies.computeIfAbsent(key, k -> {\n-            MetadataServiceURLBuilder builder = null;\n-            ExtensionLoader<MetadataServiceURLBuilder> loader\n-                    = ExtensionLoader.getExtensionLoader(MetadataServiceURLBuilder.class);\n-\n-            Map<String, String> metadata = instance.getMetadata();\n-            // METADATA_SERVICE_URLS_PROPERTY_NAME is a unique key exists only on instances of spring-cloud-alibaba.\n-            String dubboURLsJSON = metadata.get(METADATA_SERVICE_URLS_PROPERTY_NAME);\n-            if (StringUtils.isNotEmpty(dubboURLsJSON)) {\n-                builder = loader.getExtension(SpringCloudMetadataServiceURLBuilder.NAME);\n-            } else {\n-                builder = loader.getExtension(StandardMetadataServiceURLBuilder.NAME);\n-            }\n-\n-            List<URL> urls = builder.build(instance);\n-            if (CollectionUtils.isEmpty(urls)) {\n-                throw new IllegalStateException(\"You have enabled introspection service discovery mode for instance \"\n-                        + instance + \", but no metadata service can build from it.\");\n-            }\n-\n-            // Simply rely on the first metadata url, as stated in MetadataServiceURLBuilder.\n-            Invoker<MetadataService> invoker = protocol.refer(MetadataService.class, urls.get(0));\n-\n-            return proxyFactory.getProxy(invoker);\n-        });\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URLS_PROPERTY_NAME;\r\n+\r\n+public class MetadataUtils {\r\n+\r\n+    private static final Object REMOTE_LOCK = new Object();\r\n+\r\n+    public static ConcurrentMap<String, MetadataService> metadataServiceProxies = new ConcurrentHashMap<>();\r\n+\r\n+    private static final ProxyFactory proxyFactory = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\r\n+\r\n+    private static final Protocol protocol = ExtensionLoader.getExtensionLoader(Protocol.class).getAdaptiveExtension();\r\n+\r\n+    public static RemoteMetadataServiceImpl remoteMetadataService;\r\n+\r\n+    public static WritableMetadataService localMetadataService;\r\n+\r\n+    public static RemoteMetadataServiceImpl getRemoteMetadataService() {\r\n+        if (remoteMetadataService == null) {\r\n+            synchronized (REMOTE_LOCK) {\r\n+                if (remoteMetadataService == null) {\r\n+                    remoteMetadataService = new RemoteMetadataServiceImpl(WritableMetadataService.getDefaultExtension());\r\n+                }\r\n+            }\r\n+        }\r\n+        return remoteMetadataService;\r\n+    }\r\n+\r\n+    public static void publishServiceDefinition(URL url) {\r\n+        // store in local\r\n+        WritableMetadataService.getDefaultExtension().publishServiceDefinition(url);\r\n+        // send to remote\r\n+//        if (REMOTE_METADATA_STORAGE_TYPE.equals(url.getParameter(METADATA_KEY))) {\r\n+        getRemoteMetadataService().publishServiceDefinition(url);\r\n+//        }\r\n+    }\r\n+\r\n+    public static MetadataService getMetadataServiceProxy(ServiceInstance instance, ServiceDiscovery serviceDiscovery) {\r\n+        String key = instance.getServiceName() + \"##\" +\r\n+                ServiceInstanceMetadataUtils.getExportedServicesRevision(instance);\r\n+        return metadataServiceProxies.computeIfAbsent(key, k -> {\r\n+            MetadataServiceURLBuilder builder = null;\r\n+            ExtensionLoader<MetadataServiceURLBuilder> loader\r\n+                    = ExtensionLoader.getExtensionLoader(MetadataServiceURLBuilder.class);\r\n+\r\n+            Map<String, String> metadata = instance.getMetadata();\r\n+            // METADATA_SERVICE_URLS_PROPERTY_NAME is a unique key exists only on instances of spring-cloud-alibaba.\r\n+            String dubboURLsJSON = metadata.get(METADATA_SERVICE_URLS_PROPERTY_NAME);\r\n+            if (StringUtils.isNotEmpty(dubboURLsJSON)) {\r\n+                builder = loader.getExtension(SpringCloudMetadataServiceURLBuilder.NAME);\r\n+            } else {\r\n+                builder = loader.getExtension(StandardMetadataServiceURLBuilder.NAME);\r\n+            }\r\n+\r\n+            List<URL> urls = builder.build(instance);\r\n+            if (CollectionUtils.isEmpty(urls)) {\r\n+                throw new IllegalStateException(\"You have enabled introspection service discovery mode for instance \"\r\n+                        + instance + \", but no metadata service can build from it.\");\r\n+            }\r\n+\r\n+            // Simply rely on the first metadata url, as stated in MetadataServiceURLBuilder.\r\n+            Invoker<MetadataService> invoker = protocol.refer(MetadataService.class, urls.get(0));\r\n+\r\n+            return proxyFactory.getProxy(invoker);\r\n+        });\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizer.java", "source2": "org/apache/dubbo/registry/client/metadata/ProtocolPortsMetadataCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\n-import org.apache.dubbo.rpc.Protocol;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setEndpoints;\n-\n-/**\n- * A Class to customize the ports of {@link Protocol protocols} into\n- * {@link ServiceInstance#getMetadata() the metadata of service instance}\n- *\n- * @since 2.7.5\n- */\n-public class ProtocolPortsMetadataCustomizer implements ServiceInstanceCustomizer {\n-\n-    @Override\n-    public void customize(ServiceInstance serviceInstance) {\n-        WritableMetadataService writableMetadataService = WritableMetadataService.getDefaultExtension();\n-\n-        Map<String, Integer> protocols = new HashMap<>();\n-        writableMetadataService.getExportedURLs()\n-                .stream()\n-                .map(URL::valueOf)\n-                .filter(url -> !MetadataService.class.getName().equals(url.getServiceInterface()))\n-                .forEach(url -> {\n-                    // TODO, same protocol listen on different ports will override with each other.\n-                    protocols.put(url.getProtocol(), url.getPort());\n-                });\n-\n-        setEndpoints(serviceInstance, protocols);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.setEndpoints;\r\n+\r\n+/**\r\n+ * A Class to customize the ports of {@link Protocol protocols} into\r\n+ * {@link ServiceInstance#getMetadata() the metadata of service instance}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ProtocolPortsMetadataCustomizer implements ServiceInstanceCustomizer {\r\n+\r\n+    @Override\r\n+    public void customize(ServiceInstance serviceInstance) {\r\n+        WritableMetadataService writableMetadataService = WritableMetadataService.getDefaultExtension();\r\n+\r\n+        Map<String, Integer> protocols = new HashMap<>();\r\n+        writableMetadataService.getExportedURLs()\r\n+                .stream()\r\n+                .map(URL::valueOf)\r\n+                .filter(url -> !MetadataService.class.getName().equals(url.getServiceInterface()))\r\n+                .forEach(url -> {\r\n+                    // TODO, same protocol listen on different ports will override with each other.\r\n+                    protocols.put(url.getProtocol(), url.getPort());\r\n+                });\r\n+\r\n+        setEndpoints(serviceInstance, protocols);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/RestProtocolSubscribedURLsSynthesizer.java", "source2": "org/apache/dubbo/registry/client/metadata/RestProtocolSubscribedURLsSynthesizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.rpc.Protocol;\n-\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-import static java.lang.Boolean.TRUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\n-\n-/**\n- * {@link SubscribedURLsSynthesizer} implementation for REST {@link Protocol protocol}\n- *\n- * @since 2.7.5\n- */\n-public class RestProtocolSubscribedURLsSynthesizer implements SubscribedURLsSynthesizer {\n-\n-    @Override\n-    public boolean supports(URL subscribedURL) {\n-        return \"rest\".equals(subscribedURL.getProtocol()) ||\n-                \"rest\".equals(subscribedURL.getParameter(PROTOCOL_KEY));\n-    }\n-\n-    @Override\n-    public List<URL> synthesize(URL subscribedURL, Collection<ServiceInstance> serviceInstances) {\n-\n-        String protocol = subscribedURL.getParameter(PROTOCOL_KEY);\n-\n-        return serviceInstances.stream().map(serviceInstance -> {\n-            URLBuilder urlBuilder = new URLBuilder()\n-                    .setProtocol(protocol)\n-                    .setHost(serviceInstance.getHost())\n-                    .setPort(serviceInstance.getPort())\n-                    .setPath(subscribedURL.getServiceInterface())\n-                    .addParameter(SIDE_KEY, PROVIDER)\n-                    .addParameter(APPLICATION_KEY, serviceInstance.getServiceName())\n-                    .addParameter(REGISTER_KEY, TRUE.toString());\n-\n-            return urlBuilder.build();\n-        }).collect(Collectors.toList());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.lang.Boolean.TRUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\r\n+\r\n+/**\r\n+ * {@link SubscribedURLsSynthesizer} implementation for REST {@link Protocol protocol}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class RestProtocolSubscribedURLsSynthesizer implements SubscribedURLsSynthesizer {\r\n+\r\n+    @Override\r\n+    public boolean supports(URL subscribedURL) {\r\n+        return \"rest\".equals(subscribedURL.getProtocol()) ||\r\n+                \"rest\".equals(subscribedURL.getParameter(PROTOCOL_KEY));\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> synthesize(URL subscribedURL, Collection<ServiceInstance> serviceInstances) {\r\n+\r\n+        String protocol = subscribedURL.getParameter(PROTOCOL_KEY);\r\n+\r\n+        return serviceInstances.stream().map(serviceInstance -> {\r\n+            URLBuilder urlBuilder = new URLBuilder()\r\n+                    .setProtocol(protocol)\r\n+                    .setHost(serviceInstance.getHost())\r\n+                    .setPort(serviceInstance.getPort())\r\n+                    .setPath(subscribedURL.getServiceInterface())\r\n+                    .addParameter(SIDE_KEY, PROVIDER)\r\n+                    .addParameter(APPLICATION_KEY, serviceInstance.getServiceName())\r\n+                    .addParameter(REGISTER_KEY, TRUE.toString());\r\n+\r\n+            return urlBuilder.build();\r\n+        }).collect(Collectors.toList());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java", "source2": "org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataCustomizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.infra.InfraAdapter;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.MetadataParamsFilter;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\n-import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-\n-/**\n- *\n- */\n-public class ServiceInstanceMetadataCustomizer implements ServiceInstanceCustomizer {\n-\n-    @Override\n-    public void customize(ServiceInstance serviceInstance) {\n-        Map<String, String> params = new HashMap<>();\n-\n-        ExtensionLoader<MetadataParamsFilter> loader = ExtensionLoader.getExtensionLoader(MetadataParamsFilter.class);\n-        Set<MetadataParamsFilter> paramsFilters = loader.getSupportedExtensionInstances();\n-\n-        InMemoryWritableMetadataService localMetadataService\n-                = (InMemoryWritableMetadataService) WritableMetadataService.getDefaultExtension();\n-        // pick the first interface metadata available.\n-        // FIXME, check the same key in different urls has the same value\n-        MetadataInfo metadataInfo = localMetadataService.getMetadataInfos().values().iterator().next();\n-        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServices().values().iterator().next();\n-        Map<String, String> allParams = new HashMap<>(serviceInfo.getUrl().getParameters());\n-\n-        // load instance params users want to load.\n-        // TODO, duplicate logic with that in ApplicationConfig\n-        Set<InfraAdapter> adapters = ExtensionLoader.getExtensionLoader(InfraAdapter.class).getSupportedExtensionInstances();\n-        if (CollectionUtils.isNotEmpty(adapters)) {\n-            Map<String, String> inputParameters = new HashMap<>();\n-            inputParameters.put(APPLICATION_KEY, ApplicationModel.getName());\n-            for (InfraAdapter adapter : adapters) {\n-                Map<String, String> extraParameters = adapter.getExtraAttributes(inputParameters);\n-                if (CollectionUtils.isNotEmptyMap(extraParameters)) {\n-                    extraParameters.forEach(allParams::putIfAbsent);\n-                }\n-            }\n-        }\n-\n-        if (CollectionUtils.isEmpty(paramsFilters)) {\n-            serviceInstance.getMetadata().putAll(allParams);\n-            return;\n-        }\n-\n-        paramsFilters.forEach(filter -> {\n-            String[] included = filter.instanceParamsIncluded();\n-            if (included == null) {\n-                serviceInstance.getMetadata().putAll(allParams);\n-            } else {\n-                for (String p : included) {\n-                    if (allParams.get(p) != null) {\n-                        serviceInstance.getMetadata().put(p, allParams.get(p));\n-                    }\n-                }\n-            }\n-        });\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.infra.InfraAdapter;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.MetadataParamsFilter;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstanceCustomizer;\r\n+import org.apache.dubbo.registry.client.metadata.store.InMemoryWritableMetadataService;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ServiceInstanceMetadataCustomizer implements ServiceInstanceCustomizer {\r\n+\r\n+    @Override\r\n+    public void customize(ServiceInstance serviceInstance) {\r\n+        Map<String, String> params = new HashMap<>();\r\n+\r\n+        ExtensionLoader<MetadataParamsFilter> loader = ExtensionLoader.getExtensionLoader(MetadataParamsFilter.class);\r\n+        Set<MetadataParamsFilter> paramsFilters = loader.getSupportedExtensionInstances();\r\n+\r\n+        InMemoryWritableMetadataService localMetadataService\r\n+                = (InMemoryWritableMetadataService) WritableMetadataService.getDefaultExtension();\r\n+        // pick the first interface metadata available.\r\n+        // FIXME, check the same key in different urls has the same value\r\n+        MetadataInfo metadataInfo = localMetadataService.getMetadataInfos().values().iterator().next();\r\n+        MetadataInfo.ServiceInfo serviceInfo = metadataInfo.getServices().values().iterator().next();\r\n+        Map<String, String> allParams = new HashMap<>(serviceInfo.getUrl().getParameters());\r\n+\r\n+        // load instance params users want to load.\r\n+        // TODO, duplicate logic with that in ApplicationConfig\r\n+        Set<InfraAdapter> adapters = ExtensionLoader.getExtensionLoader(InfraAdapter.class).getSupportedExtensionInstances();\r\n+        if (CollectionUtils.isNotEmpty(adapters)) {\r\n+            Map<String, String> inputParameters = new HashMap<>();\r\n+            inputParameters.put(APPLICATION_KEY, ApplicationModel.getName());\r\n+            for (InfraAdapter adapter : adapters) {\r\n+                Map<String, String> extraParameters = adapter.getExtraAttributes(inputParameters);\r\n+                if (CollectionUtils.isNotEmptyMap(extraParameters)) {\r\n+                    extraParameters.forEach(allParams::putIfAbsent);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (CollectionUtils.isEmpty(paramsFilters)) {\r\n+            serviceInstance.getMetadata().putAll(allParams);\r\n+            return;\r\n+        }\r\n+\r\n+        paramsFilters.forEach(filter -> {\r\n+            String[] included = filter.instanceParamsIncluded();\r\n+            if (included == null) {\r\n+                serviceInstance.getMetadata().putAll(allParams);\r\n+            } else {\r\n+                for (String p : included) {\r\n+                    if (allParams.get(p) != null) {\r\n+                        serviceInstance.getMetadata().put(p, allParams.get(p));\r\n+                    }\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java", "source2": "org/apache/dubbo/registry/client/metadata/ServiceInstanceMetadataUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,318 +1,318 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.LinkedHashMap;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static java.util.Collections.emptyMap;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PORT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-import static org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol.DEFAULT_REGISTER_PROVIDER_KEYS;\n-import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\n-import static org.apache.dubbo.rpc.Constants.ID_KEY;\n-\n-/**\n- * The Utilities class for the {@link ServiceInstance#getMetadata() metadata of the service instance}\n- *\n- * @see StandardMetadataServiceURLBuilder\n- * @see ServiceInstance#getMetadata()\n- * @see MetadataService\n- * @see URL\n- * @since 2.7.5\n- */\n-public class ServiceInstanceMetadataUtils {\n-\n-    /**\n-     * The prefix of {@link MetadataService} : \"dubbo.metadata-service.\"\n-     */\n-    public static final String METADATA_SERVICE_PREFIX = \"dubbo.metadata-service.\";\n-\n-    public static final String ENDPOINTS = \"dubbo.endpoints\";\n-\n-    /**\n-     * The property name of metadata JSON of {@link MetadataService}'s {@link URL}\n-     */\n-    public static String METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME = METADATA_SERVICE_PREFIX + \"url-params\";\n-\n-    /**\n-     * The {@link URL URLs} property name of {@link MetadataService} :\n-     * \"dubbo.metadata-service.urls\", which is used to be compatible with Dubbo Spring Cloud and\n-     * discovery the metadata of instance\n-     */\n-    public static final String METADATA_SERVICE_URLS_PROPERTY_NAME = METADATA_SERVICE_PREFIX + \"urls\";\n-\n-    /**\n-     * The property name of The revision for all exported Dubbo services.\n-     */\n-    public static String EXPORTED_SERVICES_REVISION_PROPERTY_NAME = \"dubbo.metadata.revision\";\n-\n-    /**\n-     * The property name of metadata storage type.\n-     */\n-    public static String METADATA_STORAGE_TYPE_PROPERTY_NAME = \"dubbo.metadata.storage-type\";\n-\n-    public static String METADATA_CLUSTER_PROPERTY_NAME = \"dubbo.metadata.cluster\";\n-\n-    public static String INSTANCE_REVISION_UPDATED_KEY = \"dubbo.instance.revision.updated\";\n-\n-    /**\n-     * Get the multiple {@link URL urls'} parameters of {@link MetadataService MetadataService's} Metadata\n-     *\n-     * @param serviceInstance the instance of {@link ServiceInstance}\n-     * @return non-null {@link Map}, the key is {@link URL#getProtocol() the protocol of URL}, the value is\n-     * {@link #getMetadataServiceURLParams(ServiceInstance, String)}\n-     */\n-    public static Map<String, Map<String, String>> getMetadataServiceURLsParams(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        String param = metadata.get(METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME);\n-        return isBlank(param) ? emptyMap() : (Map) JSON.parse(param);\n-    }\n-\n-    /**\n-     * Get the {@link URL url's} parameters of {@link MetadataService MetadataService's} Metadata\n-     *\n-     * @param serviceInstance the instance of {@link ServiceInstance}\n-     * @return non-null {@link Map}\n-     */\n-    public static Map<String, String> getMetadataServiceURLParams(ServiceInstance serviceInstance, String protocol) {\n-        Map<String, Map<String, String>> params = getMetadataServiceURLsParams(serviceInstance);\n-        return params.getOrDefault(protocol, emptyMap());\n-    }\n-\n-    public static String getMetadataServiceParameter(List<URL> urls) {\n-\n-        Map<String, Map<String, String>> params = new HashMap<>();\n-\n-        urls.stream()\n-                // remove APPLICATION_KEY because service name must be present\n-                .map(url -> url.removeParameter(APPLICATION_KEY))\n-                // remove GROUP_KEY, always uses application name.\n-                .map(url -> url.removeParameter(GROUP_KEY))\n-                // remove DEPRECATED_KEY because it's always false\n-                .map(url -> url.removeParameter(DEPRECATED_KEY))\n-                // remove TIMESTAMP_KEY because it's nonsense\n-                .map(url -> url.removeParameter(TIMESTAMP_KEY))\n-                .forEach(url -> {\n-                    String protocol = url.getProtocol();\n-                    params.put(protocol, getParams(url));\n-                });\n-\n-        if (params.isEmpty()) {\n-            return null;\n-        }\n-\n-        return JSON.toJSONString(params);\n-    }\n-\n-    private static Map<String, String> getParams(URL providerURL) {\n-        Map<String, String> params = new LinkedHashMap<>();\n-        setDefaultParams(params, providerURL);\n-        params.put(PORT_KEY, String.valueOf(providerURL.getPort()));\n-        return params;\n-    }\n-\n-    /**\n-     * The revision for all exported Dubbo services from the specified {@link ServiceInstance}.\n-     *\n-     * @param serviceInstance the specified {@link ServiceInstance}\n-     * @return <code>null</code> if not exits\n-     */\n-    public static String getExportedServicesRevision(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        return metadata.get(EXPORTED_SERVICES_REVISION_PROPERTY_NAME);\n-    }\n-\n-    /**\n-     * Get metadata's storage type\n-     *\n-     * @param registryURL the {@link URL} to connect the registry\n-     * @return if not found in {@link URL#getParameters() parameters} of {@link URL registry URL}, return\n-     */\n-    public static String getMetadataStorageType(URL registryURL) {\n-        return registryURL.getParameter(METADATA_STORAGE_TYPE_PROPERTY_NAME, DEFAULT_METADATA_STORAGE_TYPE);\n-    }\n-\n-    /**\n-     * Get the metadata's storage type is used to which {@link WritableMetadataService} instance.\n-     *\n-     * @param serviceInstance the specified {@link ServiceInstance}\n-     * @return if not found in {@link ServiceInstance#getMetadata() metadata} of {@link ServiceInstance}, return\n-     */\n-    public static String getMetadataStorageType(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        return metadata.getOrDefault(METADATA_STORAGE_TYPE_PROPERTY_NAME, DEFAULT_METADATA_STORAGE_TYPE);\n-    }\n-\n-    /**\n-     * Set the metadata storage type in specified {@link ServiceInstance service instance}\n-     *\n-     * @param serviceInstance {@link ServiceInstance service instance}\n-     * @param metadataType    remote or local\n-     */\n-    public static void setMetadataStorageType(ServiceInstance serviceInstance, String metadataType) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        metadata.put(METADATA_STORAGE_TYPE_PROPERTY_NAME, metadataType);\n-    }\n-\n-    public static String getRemoteCluster(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        return metadata.get(METADATA_CLUSTER_PROPERTY_NAME);\n-    }\n-\n-    /**\n-     * Is Dubbo Service instance or not\n-     *\n-     * @param serviceInstance {@link ServiceInstance service instance}\n-     * @return if Dubbo Service instance, return <code>true</code>, or <code>false</code>\n-     */\n-    public static boolean isDubboServiceInstance(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        return metadata.containsKey(METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME)\n-                || metadata.containsKey(METADATA_SERVICE_URLS_PROPERTY_NAME);\n-    }\n-\n-    public static void setEndpoints(ServiceInstance serviceInstance, Map<String, Integer> protocolPorts) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        List<Endpoint> endpoints = new ArrayList<>();\n-        protocolPorts.forEach((k, v) -> {\n-            Endpoint endpoint = new Endpoint(v, k);\n-            endpoints.add(endpoint);\n-        });\n-\n-        metadata.put(ENDPOINTS, JSON.toJSONString(endpoints));\n-    }\n-\n-    /**\n-     * Get the property value of port by the specified {@link ServiceInstance#getMetadata() the metadata of\n-     * service instance} and protocol\n-     *\n-     * @param serviceInstance {@link ServiceInstance service instance}\n-     * @param protocol        the name of protocol, e.g, dubbo, rest, and so on\n-     * @return if not found, return <code>null</code>\n-     */\n-    public static Integer getProtocolPort(ServiceInstance serviceInstance, String protocol) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        String rawEndpoints = metadata.get(ENDPOINTS);\n-        if (StringUtils.isNotEmpty(rawEndpoints)) {\n-            List<Endpoint> endpoints = JSON.parseArray(rawEndpoints, Endpoint.class);\n-            for (Endpoint endpoint : endpoints) {\n-                if (endpoint.getProtocol().equals(protocol)) {\n-                    return endpoint.getPort();\n-                }\n-            }\n-        }\n-        return null;\n-    }\n-\n-    public static void calInstanceRevision(ServiceDiscovery serviceDiscovery, ServiceInstance instance) {\n-        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\n-        if (registryCluster == null) {\n-            return;\n-        }\n-        MetadataInfo metadataInfo = WritableMetadataService.getDefaultExtension().getMetadataInfos().get(registryCluster);\n-        if (metadataInfo != null) {\n-            String existingInstanceRevision = instance.getMetadata().get(EXPORTED_SERVICES_REVISION_PROPERTY_NAME);\n-            if (!metadataInfo.calAndGetRevision().equals(existingInstanceRevision)) {\n-                instance.getMetadata().put(EXPORTED_SERVICES_REVISION_PROPERTY_NAME, metadataInfo.calAndGetRevision());\n-                if (existingInstanceRevision != null) {// skip the first registration.\n-                    instance.getExtendParams().put(INSTANCE_REVISION_UPDATED_KEY, \"true\");\n-                }\n-            }\n-        }\n-    }\n-\n-    public static boolean isInstanceUpdated(ServiceInstance instance) {\n-        return \"true\".equals(instance.getExtendParams().get(INSTANCE_REVISION_UPDATED_KEY));\n-    }\n-\n-    public static void resetInstanceUpdateKey(ServiceInstance instance) {\n-        instance.getExtendParams().remove(INSTANCE_REVISION_UPDATED_KEY);\n-    }\n-\n-    public static void refreshMetadataAndInstance() {\n-        RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\n-        remoteMetadataService.publishMetadata(ApplicationModel.getName());\n-\n-        AbstractRegistryFactory.getServiceDiscoveries().forEach(serviceDiscovery -> {\n-            calInstanceRevision(serviceDiscovery, serviceDiscovery.getLocalInstance());\n-            // update service instance revision\n-            serviceDiscovery.update(serviceDiscovery.getLocalInstance());\n-        });\n-    }\n-\n-    /**\n-     * Set the default parameters via the specified {@link URL providerURL}\n-     *\n-     * @param params      the parameters\n-     * @param providerURL the provider's {@link URL}\n-     */\n-    private static void setDefaultParams(Map<String, String> params, URL providerURL) {\n-        for (String parameterName : DEFAULT_REGISTER_PROVIDER_KEYS) {\n-            String parameterValue = providerURL.getParameter(parameterName);\n-            if (!isBlank(parameterValue)) {\n-                params.put(parameterName, parameterValue);\n-            }\n-        }\n-    }\n-\n-    public static class Endpoint {\n-        Integer port;\n-        String protocol;\n-\n-        public Endpoint(Integer port, String protocol) {\n-            this.port = port;\n-            this.protocol = protocol;\n-        }\n-\n-        public Integer getPort() {\n-            return port;\n-        }\n-\n-        public void setPort(Integer port) {\n-            this.port = port;\n-        }\n-\n-        public String getProtocol() {\n-            return protocol;\n-        }\n-\n-        public void setProtocol(String protocol) {\n-            this.protocol = protocol;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.metadata.store.RemoteMetadataServiceImpl;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static java.util.Collections.emptyMap;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_METADATA_STORAGE_TYPE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PORT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+import static org.apache.dubbo.registry.integration.InterfaceCompatibleRegistryProtocol.DEFAULT_REGISTER_PROVIDER_KEYS;\r\n+import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ID_KEY;\r\n+\r\n+/**\r\n+ * The Utilities class for the {@link ServiceInstance#getMetadata() metadata of the service instance}\r\n+ *\r\n+ * @see StandardMetadataServiceURLBuilder\r\n+ * @see ServiceInstance#getMetadata()\r\n+ * @see MetadataService\r\n+ * @see URL\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ServiceInstanceMetadataUtils {\r\n+\r\n+    /**\r\n+     * The prefix of {@link MetadataService} : \"dubbo.metadata-service.\"\r\n+     */\r\n+    public static final String METADATA_SERVICE_PREFIX = \"dubbo.metadata-service.\";\r\n+\r\n+    public static final String ENDPOINTS = \"dubbo.endpoints\";\r\n+\r\n+    /**\r\n+     * The property name of metadata JSON of {@link MetadataService}'s {@link URL}\r\n+     */\r\n+    public static String METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME = METADATA_SERVICE_PREFIX + \"url-params\";\r\n+\r\n+    /**\r\n+     * The {@link URL URLs} property name of {@link MetadataService} :\r\n+     * \"dubbo.metadata-service.urls\", which is used to be compatible with Dubbo Spring Cloud and\r\n+     * discovery the metadata of instance\r\n+     */\r\n+    public static final String METADATA_SERVICE_URLS_PROPERTY_NAME = METADATA_SERVICE_PREFIX + \"urls\";\r\n+\r\n+    /**\r\n+     * The property name of The revision for all exported Dubbo services.\r\n+     */\r\n+    public static String EXPORTED_SERVICES_REVISION_PROPERTY_NAME = \"dubbo.metadata.revision\";\r\n+\r\n+    /**\r\n+     * The property name of metadata storage type.\r\n+     */\r\n+    public static String METADATA_STORAGE_TYPE_PROPERTY_NAME = \"dubbo.metadata.storage-type\";\r\n+\r\n+    public static String METADATA_CLUSTER_PROPERTY_NAME = \"dubbo.metadata.cluster\";\r\n+\r\n+    public static String INSTANCE_REVISION_UPDATED_KEY = \"dubbo.instance.revision.updated\";\r\n+\r\n+    /**\r\n+     * Get the multiple {@link URL urls'} parameters of {@link MetadataService MetadataService's} Metadata\r\n+     *\r\n+     * @param serviceInstance the instance of {@link ServiceInstance}\r\n+     * @return non-null {@link Map}, the key is {@link URL#getProtocol() the protocol of URL}, the value is\r\n+     * {@link #getMetadataServiceURLParams(ServiceInstance, String)}\r\n+     */\r\n+    public static Map<String, Map<String, String>> getMetadataServiceURLsParams(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        String param = metadata.get(METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME);\r\n+        return isBlank(param) ? emptyMap() : (Map) JSON.parse(param);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link URL url's} parameters of {@link MetadataService MetadataService's} Metadata\r\n+     *\r\n+     * @param serviceInstance the instance of {@link ServiceInstance}\r\n+     * @return non-null {@link Map}\r\n+     */\r\n+    public static Map<String, String> getMetadataServiceURLParams(ServiceInstance serviceInstance, String protocol) {\r\n+        Map<String, Map<String, String>> params = getMetadataServiceURLsParams(serviceInstance);\r\n+        return params.getOrDefault(protocol, emptyMap());\r\n+    }\r\n+\r\n+    public static String getMetadataServiceParameter(List<URL> urls) {\r\n+\r\n+        Map<String, Map<String, String>> params = new HashMap<>();\r\n+\r\n+        urls.stream()\r\n+                // remove APPLICATION_KEY because service name must be present\r\n+                .map(url -> url.removeParameter(APPLICATION_KEY))\r\n+                // remove GROUP_KEY, always uses application name.\r\n+                .map(url -> url.removeParameter(GROUP_KEY))\r\n+                // remove DEPRECATED_KEY because it's always false\r\n+                .map(url -> url.removeParameter(DEPRECATED_KEY))\r\n+                // remove TIMESTAMP_KEY because it's nonsense\r\n+                .map(url -> url.removeParameter(TIMESTAMP_KEY))\r\n+                .forEach(url -> {\r\n+                    String protocol = url.getProtocol();\r\n+                    params.put(protocol, getParams(url));\r\n+                });\r\n+\r\n+        if (params.isEmpty()) {\r\n+            return null;\r\n+        }\r\n+\r\n+        return JSON.toJSONString(params);\r\n+    }\r\n+\r\n+    private static Map<String, String> getParams(URL providerURL) {\r\n+        Map<String, String> params = new LinkedHashMap<>();\r\n+        setDefaultParams(params, providerURL);\r\n+        params.put(PORT_KEY, String.valueOf(providerURL.getPort()));\r\n+        return params;\r\n+    }\r\n+\r\n+    /**\r\n+     * The revision for all exported Dubbo services from the specified {@link ServiceInstance}.\r\n+     *\r\n+     * @param serviceInstance the specified {@link ServiceInstance}\r\n+     * @return <code>null</code> if not exits\r\n+     */\r\n+    public static String getExportedServicesRevision(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        return metadata.get(EXPORTED_SERVICES_REVISION_PROPERTY_NAME);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get metadata's storage type\r\n+     *\r\n+     * @param registryURL the {@link URL} to connect the registry\r\n+     * @return if not found in {@link URL#getParameters() parameters} of {@link URL registry URL}, return\r\n+     */\r\n+    public static String getMetadataStorageType(URL registryURL) {\r\n+        return registryURL.getParameter(METADATA_STORAGE_TYPE_PROPERTY_NAME, DEFAULT_METADATA_STORAGE_TYPE);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the metadata's storage type is used to which {@link WritableMetadataService} instance.\r\n+     *\r\n+     * @param serviceInstance the specified {@link ServiceInstance}\r\n+     * @return if not found in {@link ServiceInstance#getMetadata() metadata} of {@link ServiceInstance}, return\r\n+     */\r\n+    public static String getMetadataStorageType(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        return metadata.getOrDefault(METADATA_STORAGE_TYPE_PROPERTY_NAME, DEFAULT_METADATA_STORAGE_TYPE);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the metadata storage type in specified {@link ServiceInstance service instance}\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance service instance}\r\n+     * @param metadataType    remote or local\r\n+     */\r\n+    public static void setMetadataStorageType(ServiceInstance serviceInstance, String metadataType) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        metadata.put(METADATA_STORAGE_TYPE_PROPERTY_NAME, metadataType);\r\n+    }\r\n+\r\n+    public static String getRemoteCluster(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        return metadata.get(METADATA_CLUSTER_PROPERTY_NAME);\r\n+    }\r\n+\r\n+    /**\r\n+     * Is Dubbo Service instance or not\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance service instance}\r\n+     * @return if Dubbo Service instance, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    public static boolean isDubboServiceInstance(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        return metadata.containsKey(METADATA_SERVICE_URL_PARAMS_PROPERTY_NAME)\r\n+                || metadata.containsKey(METADATA_SERVICE_URLS_PROPERTY_NAME);\r\n+    }\r\n+\r\n+    public static void setEndpoints(ServiceInstance serviceInstance, Map<String, Integer> protocolPorts) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        List<Endpoint> endpoints = new ArrayList<>();\r\n+        protocolPorts.forEach((k, v) -> {\r\n+            Endpoint endpoint = new Endpoint(v, k);\r\n+            endpoints.add(endpoint);\r\n+        });\r\n+\r\n+        metadata.put(ENDPOINTS, JSON.toJSONString(endpoints));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the property value of port by the specified {@link ServiceInstance#getMetadata() the metadata of\r\n+     * service instance} and protocol\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance service instance}\r\n+     * @param protocol        the name of protocol, e.g, dubbo, rest, and so on\r\n+     * @return if not found, return <code>null</code>\r\n+     */\r\n+    public static Integer getProtocolPort(ServiceInstance serviceInstance, String protocol) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        String rawEndpoints = metadata.get(ENDPOINTS);\r\n+        if (StringUtils.isNotEmpty(rawEndpoints)) {\r\n+            List<Endpoint> endpoints = JSON.parseArray(rawEndpoints, Endpoint.class);\r\n+            for (Endpoint endpoint : endpoints) {\r\n+                if (endpoint.getProtocol().equals(protocol)) {\r\n+                    return endpoint.getPort();\r\n+                }\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public static void calInstanceRevision(ServiceDiscovery serviceDiscovery, ServiceInstance instance) {\r\n+        String registryCluster = serviceDiscovery.getUrl().getParameter(ID_KEY);\r\n+        if (registryCluster == null) {\r\n+            return;\r\n+        }\r\n+        MetadataInfo metadataInfo = WritableMetadataService.getDefaultExtension().getMetadataInfos().get(registryCluster);\r\n+        if (metadataInfo != null) {\r\n+            String existingInstanceRevision = instance.getMetadata().get(EXPORTED_SERVICES_REVISION_PROPERTY_NAME);\r\n+            if (!metadataInfo.calAndGetRevision().equals(existingInstanceRevision)) {\r\n+                instance.getMetadata().put(EXPORTED_SERVICES_REVISION_PROPERTY_NAME, metadataInfo.calAndGetRevision());\r\n+                if (existingInstanceRevision != null) {// skip the first registration.\r\n+                    instance.getExtendParams().put(INSTANCE_REVISION_UPDATED_KEY, \"true\");\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean isInstanceUpdated(ServiceInstance instance) {\r\n+        return \"true\".equals(instance.getExtendParams().get(INSTANCE_REVISION_UPDATED_KEY));\r\n+    }\r\n+\r\n+    public static void resetInstanceUpdateKey(ServiceInstance instance) {\r\n+        instance.getExtendParams().remove(INSTANCE_REVISION_UPDATED_KEY);\r\n+    }\r\n+\r\n+    public static void refreshMetadataAndInstance() {\r\n+        RemoteMetadataServiceImpl remoteMetadataService = MetadataUtils.getRemoteMetadataService();\r\n+        remoteMetadataService.publishMetadata(ApplicationModel.getName());\r\n+\r\n+        AbstractRegistryFactory.getServiceDiscoveries().forEach(serviceDiscovery -> {\r\n+            calInstanceRevision(serviceDiscovery, serviceDiscovery.getLocalInstance());\r\n+            // update service instance revision\r\n+            serviceDiscovery.update(serviceDiscovery.getLocalInstance());\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the default parameters via the specified {@link URL providerURL}\r\n+     *\r\n+     * @param params      the parameters\r\n+     * @param providerURL the provider's {@link URL}\r\n+     */\r\n+    private static void setDefaultParams(Map<String, String> params, URL providerURL) {\r\n+        for (String parameterName : DEFAULT_REGISTER_PROVIDER_KEYS) {\r\n+            String parameterValue = providerURL.getParameter(parameterName);\r\n+            if (!isBlank(parameterValue)) {\r\n+                params.put(parameterName, parameterValue);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static class Endpoint {\r\n+        Integer port;\r\n+        String protocol;\r\n+\r\n+        public Endpoint(Integer port, String protocol) {\r\n+            this.port = port;\r\n+            this.protocol = protocol;\r\n+        }\r\n+\r\n+        public Integer getPort() {\r\n+            return port;\r\n+        }\r\n+\r\n+        public void setPort(Integer port) {\r\n+            this.port = port;\r\n+        }\r\n+\r\n+        public String getProtocol() {\r\n+            return protocol;\r\n+        }\r\n+\r\n+        public void setProtocol(String protocol) {\r\n+            this.protocol = protocol;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilder.java", "source2": "org/apache/dubbo/registry/client/metadata/SpringCloudMetadataServiceURLBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URLS_PROPERTY_NAME;\n-\n-/**\n- * Supporting interaction with Dubbo Spring Cloud at https://github.com/alibaba/spring-cloud-alibaba\n- * Dubbo Spring Cloud is a Dubbo extension that favours a per instance registry model and exposes metadata service.\n- *\n- * @since 2.7.5\n- */\n-public class SpringCloudMetadataServiceURLBuilder implements MetadataServiceURLBuilder {\n-    public static final String NAME = \"spring-cloud\";\n-\n-    @Override\n-    public List<URL> build(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        String dubboURLsJSON = metadata.get(METADATA_SERVICE_URLS_PROPERTY_NAME);\n-        if (StringUtils.isBlank(dubboURLsJSON)) {\n-            return Collections.emptyList();\n-        }\n-        List<String> urlStrings = JSON.parseArray(dubboURLsJSON, String.class);\n-        return urlStrings.stream().map(URL::valueOf).collect(Collectors.toList());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.METADATA_SERVICE_URLS_PROPERTY_NAME;\r\n+\r\n+/**\r\n+ * Supporting interaction with Dubbo Spring Cloud at https://github.com/alibaba/spring-cloud-alibaba\r\n+ * Dubbo Spring Cloud is a Dubbo extension that favours a per instance registry model and exposes metadata service.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class SpringCloudMetadataServiceURLBuilder implements MetadataServiceURLBuilder {\r\n+    public static final String NAME = \"spring-cloud\";\r\n+\r\n+    @Override\r\n+    public List<URL> build(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        String dubboURLsJSON = metadata.get(METADATA_SERVICE_URLS_PROPERTY_NAME);\r\n+        if (StringUtils.isBlank(dubboURLsJSON)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        List<String> urlStrings = JSON.parseArray(dubboURLsJSON, String.class);\r\n+        return urlStrings.stream().map(URL::valueOf).collect(Collectors.toList());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilder.java", "source2": "org/apache/dubbo/registry/client/metadata/StandardMetadataServiceURLBuilder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,89 +1,89 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static java.lang.String.valueOf;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PORT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_TIMEOUT_VALUE;\n-import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PROXY_TIMEOUT_KEY;\n-import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceURLsParams;\n-\n-/**\n- * Standard Dubbo provider enabling introspection service discovery mode.\n- *\n- * @see MetadataService\n- * @since 2.7.5\n- */\n-public class StandardMetadataServiceURLBuilder implements MetadataServiceURLBuilder {\n-    \n-    public static final String NAME = \"standard\";\n-\n-    /**\n-     * Build the {@link URL urls} from {@link ServiceInstance#getMetadata() the metadata} of {@link ServiceInstance}\n-     *\n-     * @param serviceInstance {@link ServiceInstance}\n-     * @return the not-null {@link List}\n-     */\n-    @Override\n-    public List<URL> build(ServiceInstance serviceInstance) {\n-\n-        Map<String, Map<String, String>> paramsMap = getMetadataServiceURLsParams(serviceInstance);\n-\n-        List<URL> urls = new ArrayList<>(paramsMap.size());\n-\n-        String serviceName = serviceInstance.getServiceName();\n-\n-        String host = serviceInstance.getHost();\n-\n-        for (Map.Entry<String, Map<String, String>> entry : paramsMap.entrySet()) {\n-            String protocol = entry.getKey();\n-            Map<String, String> params = entry.getValue();\n-            int port = Integer.parseInt(params.get(PORT_KEY));\n-            URLBuilder urlBuilder = new URLBuilder()\n-                    .setHost(host)\n-                    .setPort(port)\n-                    .setProtocol(protocol)\n-                    .setPath(MetadataService.class.getName())\n-                    .addParameter(TIMEOUT_KEY, ConfigurationUtils.get(METADATA_PROXY_TIMEOUT_KEY, DEFAULT_METADATA_TIMEOUT_VALUE))\n-                    .addParameter(SIDE_KEY, CONSUMER);\n-\n-            // add parameters\n-            params.forEach((name, value) -> urlBuilder.addParameter(name, valueOf(value)));\n-\n-            // add the default parameters\n-            urlBuilder.addParameter(GROUP_KEY, serviceName);\n-\n-            urls.add(urlBuilder.build());\n-        }\n-\n-        return urls;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static java.lang.String.valueOf;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PORT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.DEFAULT_METADATA_TIMEOUT_VALUE;\r\n+import static org.apache.dubbo.metadata.MetadataConstants.METADATA_PROXY_TIMEOUT_KEY;\r\n+import static org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils.getMetadataServiceURLsParams;\r\n+\r\n+/**\r\n+ * Standard Dubbo provider enabling introspection service discovery mode.\r\n+ *\r\n+ * @see MetadataService\r\n+ * @since 2.7.5\r\n+ */\r\n+public class StandardMetadataServiceURLBuilder implements MetadataServiceURLBuilder {\r\n+    \r\n+    public static final String NAME = \"standard\";\r\n+\r\n+    /**\r\n+     * Build the {@link URL urls} from {@link ServiceInstance#getMetadata() the metadata} of {@link ServiceInstance}\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance}\r\n+     * @return the not-null {@link List}\r\n+     */\r\n+    @Override\r\n+    public List<URL> build(ServiceInstance serviceInstance) {\r\n+\r\n+        Map<String, Map<String, String>> paramsMap = getMetadataServiceURLsParams(serviceInstance);\r\n+\r\n+        List<URL> urls = new ArrayList<>(paramsMap.size());\r\n+\r\n+        String serviceName = serviceInstance.getServiceName();\r\n+\r\n+        String host = serviceInstance.getHost();\r\n+\r\n+        for (Map.Entry<String, Map<String, String>> entry : paramsMap.entrySet()) {\r\n+            String protocol = entry.getKey();\r\n+            Map<String, String> params = entry.getValue();\r\n+            int port = Integer.parseInt(params.get(PORT_KEY));\r\n+            URLBuilder urlBuilder = new URLBuilder()\r\n+                    .setHost(host)\r\n+                    .setPort(port)\r\n+                    .setProtocol(protocol)\r\n+                    .setPath(MetadataService.class.getName())\r\n+                    .addParameter(TIMEOUT_KEY, ConfigurationUtils.get(METADATA_PROXY_TIMEOUT_KEY, DEFAULT_METADATA_TIMEOUT_VALUE))\r\n+                    .addParameter(SIDE_KEY, CONSUMER);\r\n+\r\n+            // add parameters\r\n+            params.forEach((name, value) -> urlBuilder.addParameter(name, valueOf(value)));\r\n+\r\n+            // add the default parameters\r\n+            urlBuilder.addParameter(GROUP_KEY, serviceName);\r\n+\r\n+            urls.add(urlBuilder.build());\r\n+        }\r\n+\r\n+        return urls;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/SubscribedURLsSynthesizer.java", "source2": "org/apache/dubbo/registry/client/metadata/SubscribedURLsSynthesizer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.common.lang.Prioritized;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.Collection;\n-import java.util.List;\n-\n-/**\n- * The interface to synthesize the subscribed {@link URL URLs}\n- *\n- * @since 2.7.5\n- */\n-@SPI\n-public interface SubscribedURLsSynthesizer extends Prioritized {\n-\n-    /**\n-     * Supports the synthesis of the subscribed {@link URL URLs} or not\n-     *\n-     * @param subscribedURL the original subscribed {@link URL} from the execution of`\n-     *                      {@link Registry#subscribe(URL, NotifyListener)} method\n-     * @return if supports, return <code>true</code>, or <code>false</code>\n-     */\n-    boolean supports(URL subscribedURL);\n-\n-    /**\n-     * synthesize the subscribed {@link URL URLs}\n-     *\n-     * @param subscribedURL    the original subscribed {@link URL} from the execution of`\n-     *                         {@link Registry#subscribe(URL, NotifyListener)} method\n-     * @param serviceInstances\n-     * @return\n-     */\n-    List<URL> synthesize(URL subscribedURL, Collection<ServiceInstance> serviceInstances);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.common.lang.Prioritized;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The interface to synthesize the subscribed {@link URL URLs}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI\r\n+public interface SubscribedURLsSynthesizer extends Prioritized {\r\n+\r\n+    /**\r\n+     * Supports the synthesis of the subscribed {@link URL URLs} or not\r\n+     *\r\n+     * @param subscribedURL the original subscribed {@link URL} from the execution of`\r\n+     *                      {@link Registry#subscribe(URL, NotifyListener)} method\r\n+     * @return if supports, return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    boolean supports(URL subscribedURL);\r\n+\r\n+    /**\r\n+     * synthesize the subscribed {@link URL URLs}\r\n+     *\r\n+     * @param subscribedURL    the original subscribed {@link URL} from the execution of`\r\n+     *                         {@link Registry#subscribe(URL, NotifyListener)} method\r\n+     * @param serviceInstances\r\n+     * @return\r\n+     */\r\n+    List<URL> synthesize(URL subscribedURL, Collection<ServiceInstance> serviceInstances);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java", "source2": "org/apache/dubbo/registry/client/metadata/store/InMemoryWritableMetadataService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,301 +1,301 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata.store;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.MetadataInfo.ServiceInfo;\n-import org.apache.dubbo.metadata.MetadataService;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\n-import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import com.google.gson.Gson;\n-\n-import java.util.Comparator;\n-import java.util.Map;\n-import java.util.SortedSet;\n-import java.util.TreeSet;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.ConcurrentNavigableMap;\n-import java.util.concurrent.ConcurrentSkipListMap;\n-import java.util.concurrent.Semaphore;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static java.util.Collections.emptySortedSet;\n-import static java.util.Collections.unmodifiableSortedSet;\n-import static org.apache.dubbo.common.URL.buildKey;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-/**\n- * The {@link WritableMetadataService} implementation stores the metadata of Dubbo services in memory locally when they\n- * exported. It is used by server (provider).\n- *\n- * @see MetadataService\n- * @see WritableMetadataService\n- * @since 2.7.5\n- */\n-public class InMemoryWritableMetadataService implements WritableMetadataService {\n-\n-    final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final Lock lock = new ReentrantLock();\n-\n-    // =================================== Registration =================================== //\n-\n-    /**\n-     * All exported {@link URL urls} {@link Map} whose key is the return value of {@link URL#getServiceKey()} method\n-     * and value is the {@link SortedSet sorted set} of the {@link URL URLs}\n-     */\n-    ConcurrentNavigableMap<String, SortedSet<URL>> exportedServiceURLs = new ConcurrentSkipListMap<>();\n-    ConcurrentMap<String, MetadataInfo> metadataInfos;\n-    final Semaphore metadataSemaphore = new Semaphore(1);\n-\n-    // ==================================================================================== //\n-\n-    // =================================== Subscription =================================== //\n-\n-    /**\n-     * The subscribed {@link URL urls} {@link Map} of {@link MetadataService},\n-     * whose key is the return value of {@link URL#getServiceKey()} method and value is\n-     * the {@link SortedSet sorted set} of the {@link URL URLs}\n-     */\n-    ConcurrentNavigableMap<String, SortedSet<URL>> subscribedServiceURLs = new ConcurrentSkipListMap<>();\n-\n-    ConcurrentNavigableMap<String, String> serviceDefinitions = new ConcurrentSkipListMap<>();\n-\n-    public InMemoryWritableMetadataService() {\n-        this.metadataInfos = new ConcurrentHashMap<>();\n-    }\n-\n-    @Override\n-    public SortedSet<String> getSubscribedURLs() {\n-        return getAllUnmodifiableServiceURLs(subscribedServiceURLs);\n-    }\n-\n-    private SortedSet<String> getAllUnmodifiableServiceURLs(Map<String, SortedSet<URL>> serviceURLs) {\n-        SortedSet<URL> bizURLs = new TreeSet<>(InMemoryWritableMetadataService.URLComparator.INSTANCE);\n-        for (Map.Entry<String, SortedSet<URL>> entry : serviceURLs.entrySet()) {\n-            SortedSet<URL> urls = entry.getValue();\n-            if (urls != null) {\n-                for (URL url : urls) {\n-                    if (!MetadataService.class.getName().equals(url.getServiceInterface())) {\n-                        bizURLs.add(url);\n-                    }\n-                }\n-            }\n-        }\n-        return MetadataService.toSortedStrings(bizURLs);\n-    }\n-\n-    @Override\n-    public SortedSet<String> getExportedURLs(String serviceInterface, String group, String version, String protocol) {\n-        if (ALL_SERVICE_INTERFACES.equals(serviceInterface)) {\n-            return getAllUnmodifiableServiceURLs(exportedServiceURLs);\n-        }\n-        String serviceKey = buildKey(serviceInterface, group, version);\n-        return unmodifiableSortedSet(getServiceURLs(exportedServiceURLs, serviceKey, protocol));\n-    }\n-\n-    @Override\n-    public boolean exportURL(URL url) {\n-        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\n-        String[] clusters = registryCluster.split(\",\");\n-        for (String cluster : clusters) {\n-            MetadataInfo metadataInfo = metadataInfos.computeIfAbsent(cluster, k -> {\n-                return new MetadataInfo(ApplicationModel.getName());\n-            });\n-            metadataInfo.addService(new ServiceInfo(url));\n-        }\n-        metadataSemaphore.release();\n-        return addURL(exportedServiceURLs, url);\n-    }\n-\n-    @Override\n-    public boolean unexportURL(URL url) {\n-        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\n-        String[] clusters = registryCluster.split(\",\");\n-        for (String cluster : clusters) {\n-            MetadataInfo metadataInfo = metadataInfos.get(cluster);\n-            metadataInfo.removeService(url.getProtocolServiceKey());\n-            if (metadataInfo.getServices().isEmpty()) {\n-                metadataInfos.remove(cluster);\n-            }\n-        }\n-        metadataSemaphore.release();\n-        return removeURL(exportedServiceURLs, url);\n-    }\n-\n-    @Override\n-    public boolean subscribeURL(URL url) {\n-        return addURL(subscribedServiceURLs, url);\n-    }\n-\n-    @Override\n-    public boolean unsubscribeURL(URL url) {\n-        return removeURL(subscribedServiceURLs, url);\n-    }\n-\n-    @Override\n-    public void publishServiceDefinition(URL providerUrl) {\n-        try {\n-            if (!ProtocolUtils.isGeneric(providerUrl.getParameter(GENERIC_KEY))) {\n-                String interfaceName = providerUrl.getParameter(INTERFACE_KEY);\n-                if (StringUtils.isNotEmpty(interfaceName)) {\n-                    Class interfaceClass = Class.forName(interfaceName);\n-                    ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.build(interfaceClass);\n-                    Gson gson = new Gson();\n-                    String data = gson.toJson(serviceDefinition);\n-                    serviceDefinitions.put(providerUrl.getServiceKey(), data);\n-                    return;\n-                }\n-                logger.error(\"publishProvider interfaceName is empty . providerUrl: \" + providerUrl.toFullString());\n-            } else if (CONSUMER_SIDE.equalsIgnoreCase(providerUrl.getParameter(SIDE_KEY))) {\n-                //to avoid consumer generic invoke style error\n-                return;\n-            }\n-        } catch (ClassNotFoundException e) {\n-            //ignore error\n-            logger.error(\"publishProvider getServiceDescriptor error. providerUrl: \" + providerUrl.toFullString(), e);\n-        }\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(String interfaceName, String version, String group) {\n-        return serviceDefinitions.get(URL.buildKey(interfaceName, group, version));\n-    }\n-\n-    @Override\n-    public String getServiceDefinition(String serviceKey) {\n-        return serviceDefinitions.get(serviceKey);\n-    }\n-\n-    @Override\n-    public MetadataInfo getMetadataInfo(String revision) {\n-        if (StringUtils.isEmpty(revision)) {\n-            return null;\n-        }\n-        for (Map.Entry<String, MetadataInfo> entry : metadataInfos.entrySet()) {\n-            MetadataInfo metadataInfo = entry.getValue();\n-            if (revision.equals(metadataInfo.calAndGetRevision())) {\n-                return metadataInfo;\n-            }\n-        }\n-        return null;\n-    }\n-\n-    public void blockUntilUpdated() {\n-        try {\n-            metadataSemaphore.acquire();\n-        } catch (InterruptedException e) {\n-            logger.warn(\"metadata refresh thread has been interrupted unexpectedly while waiting for update.\", e);\n-        }\n-    }\n-\n-    public Map<String, MetadataInfo> getMetadataInfos() {\n-        return metadataInfos;\n-    }\n-\n-    boolean addURL(Map<String, SortedSet<URL>> serviceURLs, URL url) {\n-        return executeMutually(() -> {\n-            SortedSet<URL> urls = serviceURLs.computeIfAbsent(url.getServiceKey(), this::newSortedURLs);\n-            // make sure the parameters of tmpUrl is variable\n-            return urls.add(url);\n-        });\n-    }\n-\n-    boolean removeURL(Map<String, SortedSet<URL>> serviceURLs, URL url) {\n-        return executeMutually(() -> {\n-            String key = url.getServiceKey();\n-            SortedSet<URL> urls = serviceURLs.getOrDefault(key, null);\n-            if (urls == null) {\n-                return true;\n-            }\n-            boolean r = urls.remove(url);\n-            // if it is empty\n-            if (urls.isEmpty()) {\n-                serviceURLs.remove(key);\n-            }\n-            return r;\n-        });\n-    }\n-\n-    private SortedSet<URL> newSortedURLs(String serviceKey) {\n-        return new TreeSet<>(InMemoryWritableMetadataService.URLComparator.INSTANCE);\n-    }\n-\n-    boolean executeMutually(Callable<Boolean> callable) {\n-        boolean success = false;\n-        try {\n-            lock.lock();\n-            try {\n-                success = callable.call();\n-            } catch (Exception e) {\n-                if (logger.isErrorEnabled()) {\n-                    logger.error(e);\n-                }\n-            }\n-        } finally {\n-            lock.unlock();\n-        }\n-        return success;\n-    }\n-\n-    private SortedSet<String> getServiceURLs(Map<String, SortedSet<URL>> exportedServiceURLs, String serviceKey,\n-                                             String protocol) {\n-\n-        SortedSet<URL> serviceURLs = exportedServiceURLs.get(serviceKey);\n-\n-        if (isEmpty(serviceURLs)) {\n-            return emptySortedSet();\n-        }\n-\n-        return MetadataService.toSortedStrings(serviceURLs.stream().filter(url -> isAcceptableProtocol(protocol, url)));\n-    }\n-\n-    private boolean isAcceptableProtocol(String protocol, URL url) {\n-        return protocol == null\n-                || protocol.equals(url.getParameter(PROTOCOL_KEY))\n-                || protocol.equals(url.getProtocol());\n-    }\n-\n-\n-    static class URLComparator implements Comparator<URL> {\n-\n-        public static final URLComparator INSTANCE = new URLComparator();\n-\n-        @Override\n-        public int compare(URL o1, URL o2) {\n-            return o1.toFullString().compareTo(o2.toFullString());\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata.store;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.MetadataInfo.ServiceInfo;\r\n+import org.apache.dubbo.metadata.MetadataService;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.ServiceDefinition;\r\n+import org.apache.dubbo.registry.client.RegistryClusterIdentifier;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import com.google.gson.Gson;\r\n+\r\n+import java.util.Comparator;\r\n+import java.util.Map;\r\n+import java.util.SortedSet;\r\n+import java.util.TreeSet;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.ConcurrentNavigableMap;\r\n+import java.util.concurrent.ConcurrentSkipListMap;\r\n+import java.util.concurrent.Semaphore;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static java.util.Collections.emptySortedSet;\r\n+import static java.util.Collections.unmodifiableSortedSet;\r\n+import static org.apache.dubbo.common.URL.buildKey;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.utils.CollectionUtils.isEmpty;\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+/**\r\n+ * The {@link WritableMetadataService} implementation stores the metadata of Dubbo services in memory locally when they\r\n+ * exported. It is used by server (provider).\r\n+ *\r\n+ * @see MetadataService\r\n+ * @see WritableMetadataService\r\n+ * @since 2.7.5\r\n+ */\r\n+public class InMemoryWritableMetadataService implements WritableMetadataService {\r\n+\r\n+    final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final Lock lock = new ReentrantLock();\r\n+\r\n+    // =================================== Registration =================================== //\r\n+\r\n+    /**\r\n+     * All exported {@link URL urls} {@link Map} whose key is the return value of {@link URL#getServiceKey()} method\r\n+     * and value is the {@link SortedSet sorted set} of the {@link URL URLs}\r\n+     */\r\n+    ConcurrentNavigableMap<String, SortedSet<URL>> exportedServiceURLs = new ConcurrentSkipListMap<>();\r\n+    ConcurrentMap<String, MetadataInfo> metadataInfos;\r\n+    final Semaphore metadataSemaphore = new Semaphore(1);\r\n+\r\n+    // ==================================================================================== //\r\n+\r\n+    // =================================== Subscription =================================== //\r\n+\r\n+    /**\r\n+     * The subscribed {@link URL urls} {@link Map} of {@link MetadataService},\r\n+     * whose key is the return value of {@link URL#getServiceKey()} method and value is\r\n+     * the {@link SortedSet sorted set} of the {@link URL URLs}\r\n+     */\r\n+    ConcurrentNavigableMap<String, SortedSet<URL>> subscribedServiceURLs = new ConcurrentSkipListMap<>();\r\n+\r\n+    ConcurrentNavigableMap<String, String> serviceDefinitions = new ConcurrentSkipListMap<>();\r\n+\r\n+    public InMemoryWritableMetadataService() {\r\n+        this.metadataInfos = new ConcurrentHashMap<>();\r\n+    }\r\n+\r\n+    @Override\r\n+    public SortedSet<String> getSubscribedURLs() {\r\n+        return getAllUnmodifiableServiceURLs(subscribedServiceURLs);\r\n+    }\r\n+\r\n+    private SortedSet<String> getAllUnmodifiableServiceURLs(Map<String, SortedSet<URL>> serviceURLs) {\r\n+        SortedSet<URL> bizURLs = new TreeSet<>(InMemoryWritableMetadataService.URLComparator.INSTANCE);\r\n+        for (Map.Entry<String, SortedSet<URL>> entry : serviceURLs.entrySet()) {\r\n+            SortedSet<URL> urls = entry.getValue();\r\n+            if (urls != null) {\r\n+                for (URL url : urls) {\r\n+                    if (!MetadataService.class.getName().equals(url.getServiceInterface())) {\r\n+                        bizURLs.add(url);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return MetadataService.toSortedStrings(bizURLs);\r\n+    }\r\n+\r\n+    @Override\r\n+    public SortedSet<String> getExportedURLs(String serviceInterface, String group, String version, String protocol) {\r\n+        if (ALL_SERVICE_INTERFACES.equals(serviceInterface)) {\r\n+            return getAllUnmodifiableServiceURLs(exportedServiceURLs);\r\n+        }\r\n+        String serviceKey = buildKey(serviceInterface, group, version);\r\n+        return unmodifiableSortedSet(getServiceURLs(exportedServiceURLs, serviceKey, protocol));\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean exportURL(URL url) {\r\n+        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\r\n+        String[] clusters = registryCluster.split(\",\");\r\n+        for (String cluster : clusters) {\r\n+            MetadataInfo metadataInfo = metadataInfos.computeIfAbsent(cluster, k -> {\r\n+                return new MetadataInfo(ApplicationModel.getName());\r\n+            });\r\n+            metadataInfo.addService(new ServiceInfo(url));\r\n+        }\r\n+        metadataSemaphore.release();\r\n+        return addURL(exportedServiceURLs, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean unexportURL(URL url) {\r\n+        String registryCluster = RegistryClusterIdentifier.getExtension(url).providerKey(url);\r\n+        String[] clusters = registryCluster.split(\",\");\r\n+        for (String cluster : clusters) {\r\n+            MetadataInfo metadataInfo = metadataInfos.get(cluster);\r\n+            metadataInfo.removeService(url.getProtocolServiceKey());\r\n+            if (metadataInfo.getServices().isEmpty()) {\r\n+                metadataInfos.remove(cluster);\r\n+            }\r\n+        }\r\n+        metadataSemaphore.release();\r\n+        return removeURL(exportedServiceURLs, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean subscribeURL(URL url) {\r\n+        return addURL(subscribedServiceURLs, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean unsubscribeURL(URL url) {\r\n+        return removeURL(subscribedServiceURLs, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void publishServiceDefinition(URL providerUrl) {\r\n+        try {\r\n+            if (!ProtocolUtils.isGeneric(providerUrl.getParameter(GENERIC_KEY))) {\r\n+                String interfaceName = providerUrl.getParameter(INTERFACE_KEY);\r\n+                if (StringUtils.isNotEmpty(interfaceName)) {\r\n+                    Class interfaceClass = Class.forName(interfaceName);\r\n+                    ServiceDefinition serviceDefinition = ServiceDefinitionBuilder.build(interfaceClass);\r\n+                    Gson gson = new Gson();\r\n+                    String data = gson.toJson(serviceDefinition);\r\n+                    serviceDefinitions.put(providerUrl.getServiceKey(), data);\r\n+                    return;\r\n+                }\r\n+                logger.error(\"publishProvider interfaceName is empty . providerUrl: \" + providerUrl.toFullString());\r\n+            } else if (CONSUMER_SIDE.equalsIgnoreCase(providerUrl.getParameter(SIDE_KEY))) {\r\n+                //to avoid consumer generic invoke style error\r\n+                return;\r\n+            }\r\n+        } catch (ClassNotFoundException e) {\r\n+            //ignore error\r\n+            logger.error(\"publishProvider getServiceDescriptor error. providerUrl: \" + providerUrl.toFullString(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(String interfaceName, String version, String group) {\r\n+        return serviceDefinitions.get(URL.buildKey(interfaceName, group, version));\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceDefinition(String serviceKey) {\r\n+        return serviceDefinitions.get(serviceKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public MetadataInfo getMetadataInfo(String revision) {\r\n+        if (StringUtils.isEmpty(revision)) {\r\n+            return null;\r\n+        }\r\n+        for (Map.Entry<String, MetadataInfo> entry : metadataInfos.entrySet()) {\r\n+            MetadataInfo metadataInfo = entry.getValue();\r\n+            if (revision.equals(metadataInfo.calAndGetRevision())) {\r\n+                return metadataInfo;\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public void blockUntilUpdated() {\r\n+        try {\r\n+            metadataSemaphore.acquire();\r\n+        } catch (InterruptedException e) {\r\n+            logger.warn(\"metadata refresh thread has been interrupted unexpectedly while waiting for update.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    public Map<String, MetadataInfo> getMetadataInfos() {\r\n+        return metadataInfos;\r\n+    }\r\n+\r\n+    boolean addURL(Map<String, SortedSet<URL>> serviceURLs, URL url) {\r\n+        return executeMutually(() -> {\r\n+            SortedSet<URL> urls = serviceURLs.computeIfAbsent(url.getServiceKey(), this::newSortedURLs);\r\n+            // make sure the parameters of tmpUrl is variable\r\n+            return urls.add(url);\r\n+        });\r\n+    }\r\n+\r\n+    boolean removeURL(Map<String, SortedSet<URL>> serviceURLs, URL url) {\r\n+        return executeMutually(() -> {\r\n+            String key = url.getServiceKey();\r\n+            SortedSet<URL> urls = serviceURLs.getOrDefault(key, null);\r\n+            if (urls == null) {\r\n+                return true;\r\n+            }\r\n+            boolean r = urls.remove(url);\r\n+            // if it is empty\r\n+            if (urls.isEmpty()) {\r\n+                serviceURLs.remove(key);\r\n+            }\r\n+            return r;\r\n+        });\r\n+    }\r\n+\r\n+    private SortedSet<URL> newSortedURLs(String serviceKey) {\r\n+        return new TreeSet<>(InMemoryWritableMetadataService.URLComparator.INSTANCE);\r\n+    }\r\n+\r\n+    boolean executeMutually(Callable<Boolean> callable) {\r\n+        boolean success = false;\r\n+        try {\r\n+            lock.lock();\r\n+            try {\r\n+                success = callable.call();\r\n+            } catch (Exception e) {\r\n+                if (logger.isErrorEnabled()) {\r\n+                    logger.error(e);\r\n+                }\r\n+            }\r\n+        } finally {\r\n+            lock.unlock();\r\n+        }\r\n+        return success;\r\n+    }\r\n+\r\n+    private SortedSet<String> getServiceURLs(Map<String, SortedSet<URL>> exportedServiceURLs, String serviceKey,\r\n+                                             String protocol) {\r\n+\r\n+        SortedSet<URL> serviceURLs = exportedServiceURLs.get(serviceKey);\r\n+\r\n+        if (isEmpty(serviceURLs)) {\r\n+            return emptySortedSet();\r\n+        }\r\n+\r\n+        return MetadataService.toSortedStrings(serviceURLs.stream().filter(url -> isAcceptableProtocol(protocol, url)));\r\n+    }\r\n+\r\n+    private boolean isAcceptableProtocol(String protocol, URL url) {\r\n+        return protocol == null\r\n+                || protocol.equals(url.getParameter(PROTOCOL_KEY))\r\n+                || protocol.equals(url.getProtocol());\r\n+    }\r\n+\r\n+\r\n+    static class URLComparator implements Comparator<URL> {\r\n+\r\n+        public static final URLComparator INSTANCE = new URLComparator();\r\n+\r\n+        @Override\r\n+        public int compare(URL o1, URL o2) {\r\n+            return o1.toFullString().compareTo(o2.toFullString());\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java", "source2": "org/apache/dubbo/registry/client/metadata/store/RemoteMetadataServiceImpl.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,143 +1,143 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.metadata.store;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.metadata.MetadataInfo;\n-import org.apache.dubbo.metadata.WritableMetadataService;\n-import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;\n-import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\n-import org.apache.dubbo.metadata.report.MetadataReport;\n-import org.apache.dubbo.metadata.report.MetadataReportInstance;\n-import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\n-import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\n-\n-public class RemoteMetadataServiceImpl {\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-    private WritableMetadataService localMetadataService;\n-\n-    public RemoteMetadataServiceImpl(WritableMetadataService writableMetadataService) {\n-        this.localMetadataService = writableMetadataService;\n-    }\n-\n-    public Map<String, MetadataReport> getMetadataReports() {\n-        return MetadataReportInstance.getMetadataReports(false);\n-    }\n-\n-    public void publishMetadata(String serviceName) {\n-        Map<String, MetadataInfo> metadataInfos = localMetadataService.getMetadataInfos();\n-        metadataInfos.forEach((registryCluster, metadataInfo) -> {\n-            if (!metadataInfo.hasReported()) {\n-                SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(serviceName, metadataInfo.calAndGetRevision());\n-                metadataInfo.calAndGetRevision();\n-                metadataInfo.getExtendParams().put(REGISTRY_CLUSTER_KEY, registryCluster);\n-                MetadataReport metadataReport = getMetadataReports().get(registryCluster);\n-                if (metadataReport == null) {\n-                    metadataReport = getMetadataReports().entrySet().iterator().next().getValue();\n-                }\n-                logger.info(\"Publishing metadata to \" + metadataReport.getClass().getSimpleName());\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(metadataInfo.toString());\n-                }\n-                metadataReport.publishAppMetadata(identifier, metadataInfo);\n-                metadataInfo.markReported();\n-            }\n-        });\n-    }\n-\n-    public MetadataInfo getMetadata(ServiceInstance instance) {\n-        SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(instance.getServiceName(),\n-                ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));\n-\n-        String registryCluster = instance.getExtendParams().get(REGISTRY_CLUSTER_KEY);\n-\n-        MetadataReport metadataReport = getMetadataReports().get(registryCluster);\n-        if (metadataReport == null) {\n-            metadataReport = getMetadataReports().entrySet().iterator().next().getValue();\n-        }\n-        return metadataReport.getAppMetadata(identifier, instance.getExtendParams());\n-    }\n-\n-    public void publishServiceDefinition(URL url) {\n-        String side = url.getParameter(SIDE_KEY);\n-        if (PROVIDER_SIDE.equalsIgnoreCase(side)) {\n-            //TODO, the params part is duplicate with that stored by exportURL(url), can be further optimized in the future.\n-            publishProvider(url);\n-        } else {\n-            //TODO, only useful for ops showing the url parameters, this is duplicate with subscribeURL(url), can be removed in the future.\n-            publishConsumer(url);\n-        }\n-    }\n-\n-    private void publishProvider(URL providerUrl) throws RpcException {\n-        //first add into the list\n-        // remove the individual param\n-        providerUrl = providerUrl.removeParameters(PID_KEY, TIMESTAMP_KEY, Constants.BIND_IP_KEY,\n-                Constants.BIND_PORT_KEY, TIMESTAMP_KEY);\n-\n-        try {\n-            String interfaceName = providerUrl.getParameter(INTERFACE_KEY);\n-            if (StringUtils.isNotEmpty(interfaceName)) {\n-                Class interfaceClass = Class.forName(interfaceName);\n-                FullServiceDefinition fullServiceDefinition = ServiceDefinitionBuilder.buildFullDefinition(interfaceClass,\n-                        providerUrl.getParameters());\n-                for (Map.Entry<String, MetadataReport> entry : getMetadataReports().entrySet()) {\n-                    MetadataReport metadataReport = entry.getValue();\n-                    metadataReport.storeProviderMetadata(new MetadataIdentifier(providerUrl.getServiceInterface(),\n-                            providerUrl.getParameter(VERSION_KEY), providerUrl.getParameter(GROUP_KEY),\n-                            PROVIDER_SIDE, providerUrl.getParameter(APPLICATION_KEY)), fullServiceDefinition);\n-                }\n-                return;\n-            }\n-            logger.error(\"publishProvider interfaceName is empty . providerUrl: \" + providerUrl.toFullString());\n-        } catch (ClassNotFoundException e) {\n-            //ignore error\n-            logger.error(\"publishProvider getServiceDescriptor error. providerUrl: \" + providerUrl.toFullString(), e);\n-        }\n-    }\n-\n-    private void publishConsumer(URL consumerURL) throws RpcException {\n-        final URL url = consumerURL.removeParameters(PID_KEY, TIMESTAMP_KEY, Constants.BIND_IP_KEY,\n-                Constants.BIND_PORT_KEY, TIMESTAMP_KEY);\n-        getMetadataReports().forEach((registryKey, config) -> {\n-            config.storeConsumerMetadata(new MetadataIdentifier(url.getServiceInterface(),\n-                    url.getParameter(VERSION_KEY), url.getParameter(GROUP_KEY), CONSUMER_SIDE,\n-                    url.getParameter(APPLICATION_KEY)), url.getParameters());\n-        });\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.metadata.store;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.metadata.MetadataInfo;\r\n+import org.apache.dubbo.metadata.WritableMetadataService;\r\n+import org.apache.dubbo.metadata.definition.ServiceDefinitionBuilder;\r\n+import org.apache.dubbo.metadata.definition.model.FullServiceDefinition;\r\n+import org.apache.dubbo.metadata.report.MetadataReport;\r\n+import org.apache.dubbo.metadata.report.MetadataReportInstance;\r\n+import org.apache.dubbo.metadata.report.identifier.MetadataIdentifier;\r\n+import org.apache.dubbo.metadata.report.identifier.SubscriberMetadataIdentifier;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.metadata.ServiceInstanceMetadataUtils;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PID_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_CLUSTER_KEY;\r\n+\r\n+public class RemoteMetadataServiceImpl {\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+    private WritableMetadataService localMetadataService;\r\n+\r\n+    public RemoteMetadataServiceImpl(WritableMetadataService writableMetadataService) {\r\n+        this.localMetadataService = writableMetadataService;\r\n+    }\r\n+\r\n+    public Map<String, MetadataReport> getMetadataReports() {\r\n+        return MetadataReportInstance.getMetadataReports(false);\r\n+    }\r\n+\r\n+    public void publishMetadata(String serviceName) {\r\n+        Map<String, MetadataInfo> metadataInfos = localMetadataService.getMetadataInfos();\r\n+        metadataInfos.forEach((registryCluster, metadataInfo) -> {\r\n+            if (!metadataInfo.hasReported()) {\r\n+                SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(serviceName, metadataInfo.calAndGetRevision());\r\n+                metadataInfo.calAndGetRevision();\r\n+                metadataInfo.getExtendParams().put(REGISTRY_CLUSTER_KEY, registryCluster);\r\n+                MetadataReport metadataReport = getMetadataReports().get(registryCluster);\r\n+                if (metadataReport == null) {\r\n+                    metadataReport = getMetadataReports().entrySet().iterator().next().getValue();\r\n+                }\r\n+                logger.info(\"Publishing metadata to \" + metadataReport.getClass().getSimpleName());\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(metadataInfo.toString());\r\n+                }\r\n+                metadataReport.publishAppMetadata(identifier, metadataInfo);\r\n+                metadataInfo.markReported();\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    public MetadataInfo getMetadata(ServiceInstance instance) {\r\n+        SubscriberMetadataIdentifier identifier = new SubscriberMetadataIdentifier(instance.getServiceName(),\r\n+                ServiceInstanceMetadataUtils.getExportedServicesRevision(instance));\r\n+\r\n+        String registryCluster = instance.getExtendParams().get(REGISTRY_CLUSTER_KEY);\r\n+\r\n+        MetadataReport metadataReport = getMetadataReports().get(registryCluster);\r\n+        if (metadataReport == null) {\r\n+            metadataReport = getMetadataReports().entrySet().iterator().next().getValue();\r\n+        }\r\n+        return metadataReport.getAppMetadata(identifier, instance.getExtendParams());\r\n+    }\r\n+\r\n+    public void publishServiceDefinition(URL url) {\r\n+        String side = url.getParameter(SIDE_KEY);\r\n+        if (PROVIDER_SIDE.equalsIgnoreCase(side)) {\r\n+            //TODO, the params part is duplicate with that stored by exportURL(url), can be further optimized in the future.\r\n+            publishProvider(url);\r\n+        } else {\r\n+            //TODO, only useful for ops showing the url parameters, this is duplicate with subscribeURL(url), can be removed in the future.\r\n+            publishConsumer(url);\r\n+        }\r\n+    }\r\n+\r\n+    private void publishProvider(URL providerUrl) throws RpcException {\r\n+        //first add into the list\r\n+        // remove the individual param\r\n+        providerUrl = providerUrl.removeParameters(PID_KEY, TIMESTAMP_KEY, Constants.BIND_IP_KEY,\r\n+                Constants.BIND_PORT_KEY, TIMESTAMP_KEY);\r\n+\r\n+        try {\r\n+            String interfaceName = providerUrl.getParameter(INTERFACE_KEY);\r\n+            if (StringUtils.isNotEmpty(interfaceName)) {\r\n+                Class interfaceClass = Class.forName(interfaceName);\r\n+                FullServiceDefinition fullServiceDefinition = ServiceDefinitionBuilder.buildFullDefinition(interfaceClass,\r\n+                        providerUrl.getParameters());\r\n+                for (Map.Entry<String, MetadataReport> entry : getMetadataReports().entrySet()) {\r\n+                    MetadataReport metadataReport = entry.getValue();\r\n+                    metadataReport.storeProviderMetadata(new MetadataIdentifier(providerUrl.getServiceInterface(),\r\n+                            providerUrl.getParameter(VERSION_KEY), providerUrl.getParameter(GROUP_KEY),\r\n+                            PROVIDER_SIDE, providerUrl.getParameter(APPLICATION_KEY)), fullServiceDefinition);\r\n+                }\r\n+                return;\r\n+            }\r\n+            logger.error(\"publishProvider interfaceName is empty . providerUrl: \" + providerUrl.toFullString());\r\n+        } catch (ClassNotFoundException e) {\r\n+            //ignore error\r\n+            logger.error(\"publishProvider getServiceDescriptor error. providerUrl: \" + providerUrl.toFullString(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void publishConsumer(URL consumerURL) throws RpcException {\r\n+        final URL url = consumerURL.removeParameters(PID_KEY, TIMESTAMP_KEY, Constants.BIND_IP_KEY,\r\n+                Constants.BIND_PORT_KEY, TIMESTAMP_KEY);\r\n+        getMetadataReports().forEach((registryKey, config) -> {\r\n+            config.storeConsumerMetadata(new MetadataIdentifier(url.getServiceInterface(),\r\n+                    url.getParameter(VERSION_KEY), url.getParameter(GROUP_KEY), CONSUMER_SIDE,\r\n+                    url.getParameter(APPLICATION_KEY)), url.getParameters());\r\n+        });\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java", "source2": "org/apache/dubbo/registry/client/migration/DefaultMigrationAddressComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-import java.util.List;\n-\n-public class DefaultMigrationAddressComparator implements MigrationAddressComparator {\n-    private static final Logger logger = LoggerFactory.getLogger(DefaultMigrationAddressComparator.class);\n-    private static final String MIGRATION_THRESHOLD = \"dubbo.application.migration.threshold\";\n-    private static final String DEFAULT_THRESHOLD_STRING = \"0.8\";\n-    private static final float DEFAULT_THREAD = 0.8f;\n-\n-    @Override\n-    public <T> boolean shouldMigrate(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker) {\n-        if (!serviceDiscoveryInvoker.isAvailable()) {\n-            logger.info(\"No instance address available, will not migrate.\");\n-            return false;\n-        }\n-        if (!invoker.isAvailable()) {\n-            logger.info(\"No interface address available, will migrate.\");\n-            return true;\n-        }\n-\n-        List<Invoker<T>> invokers1 = serviceDiscoveryInvoker.getDirectory().getAllInvokers();\n-        List<Invoker<T>> invokers2 = invoker.getDirectory().getAllInvokers();\n-\n-        int newAddressSize = CollectionUtils.isNotEmpty(invokers1) ? invokers1.size() : 0;\n-        int oldAddressSize = CollectionUtils.isNotEmpty(invokers2) ? invokers2.size() : 0;\n-\n-        String rawThreshold = ConfigurationUtils.getDynamicProperty(MIGRATION_THRESHOLD, DEFAULT_THRESHOLD_STRING);\n-        float threshold;\n-        try {\n-            threshold = Float.parseFloat(rawThreshold);\n-        } catch (Exception e) {\n-            logger.error(\"Invalid migration threshold \" + rawThreshold);\n-            threshold = DEFAULT_THREAD;\n-        }\n-\n-        logger.info(\"Instance address size \" + newAddressSize + \", interface address size \" + oldAddressSize + \", threshold \" + threshold);\n-\n-        if (newAddressSize != 0 && oldAddressSize == 0) {\n-            return true;\n-        }\n-        if (newAddressSize == 0 && oldAddressSize == 0) {\n-            return false;\n-        }\n-\n-        if (((float)newAddressSize / (float)oldAddressSize) >= threshold) {\n-            return true;\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+import java.util.List;\r\n+\r\n+public class DefaultMigrationAddressComparator implements MigrationAddressComparator {\r\n+    private static final Logger logger = LoggerFactory.getLogger(DefaultMigrationAddressComparator.class);\r\n+    private static final String MIGRATION_THRESHOLD = \"dubbo.application.migration.threshold\";\r\n+    private static final String DEFAULT_THRESHOLD_STRING = \"0.8\";\r\n+    private static final float DEFAULT_THREAD = 0.8f;\r\n+\r\n+    @Override\r\n+    public <T> boolean shouldMigrate(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker) {\r\n+        if (!serviceDiscoveryInvoker.isAvailable()) {\r\n+            logger.info(\"No instance address available, will not migrate.\");\r\n+            return false;\r\n+        }\r\n+        if (!invoker.isAvailable()) {\r\n+            logger.info(\"No interface address available, will migrate.\");\r\n+            return true;\r\n+        }\r\n+\r\n+        List<Invoker<T>> invokers1 = serviceDiscoveryInvoker.getDirectory().getAllInvokers();\r\n+        List<Invoker<T>> invokers2 = invoker.getDirectory().getAllInvokers();\r\n+\r\n+        int newAddressSize = CollectionUtils.isNotEmpty(invokers1) ? invokers1.size() : 0;\r\n+        int oldAddressSize = CollectionUtils.isNotEmpty(invokers2) ? invokers2.size() : 0;\r\n+\r\n+        String rawThreshold = ConfigurationUtils.getDynamicProperty(MIGRATION_THRESHOLD, DEFAULT_THRESHOLD_STRING);\r\n+        float threshold;\r\n+        try {\r\n+            threshold = Float.parseFloat(rawThreshold);\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Invalid migration threshold \" + rawThreshold);\r\n+            threshold = DEFAULT_THREAD;\r\n+        }\r\n+\r\n+        logger.info(\"Instance address size \" + newAddressSize + \", interface address size \" + oldAddressSize + \", threshold \" + threshold);\r\n+\r\n+        if (newAddressSize != 0 && oldAddressSize == 0) {\r\n+            return true;\r\n+        }\r\n+        if (newAddressSize == 0 && oldAddressSize == 0) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (((float)newAddressSize / (float)oldAddressSize) >= threshold) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/InvokersChangedListener.java", "source2": "org/apache/dubbo/registry/client/migration/InvokersChangedListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,21 +1,21 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-public interface InvokersChangedListener {\n-    void onChange();\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+public interface InvokersChangedListener {\r\n+    void onChange();\r\n }\n"}, {"source1": "org/apache/dubbo/registry/client/migration/MigrationAddressComparator.java", "source2": "org/apache/dubbo/registry/client/migration/MigrationAddressComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-@SPI\n-public interface MigrationAddressComparator {\n-    <T> boolean shouldMigrate(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+@SPI\r\n+public interface MigrationAddressComparator {\r\n+    <T> boolean shouldMigrate(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/MigrationInvoker.java", "source2": "org/apache/dubbo/registry/client/migration/MigrationInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,390 +1,390 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.RegistryConstants;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.integration.DynamicDirectory;\n-import org.apache.dubbo.registry.integration.RegistryProtocol;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\n-\n-import java.util.Set;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-\n-public class MigrationInvoker<T> implements MigrationClusterInvoker<T> {\n-    private Logger logger = LoggerFactory.getLogger(MigrationInvoker.class);\n-\n-    private URL url;\n-    private URL consumerUrl;\n-    private Cluster cluster;\n-    private Registry registry;\n-    private Class<T> type;\n-    private RegistryProtocol registryProtocol;\n-\n-    private volatile ClusterInvoker<T> invoker;\n-    private volatile ClusterInvoker<T> serviceDiscoveryInvoker;\n-    private volatile ClusterInvoker<T> currentAvailableInvoker;\n-\n-    private MigrationRule rule;\n-\n-    private boolean migrationMultiRegistry;\n-\n-    public MigrationInvoker(RegistryProtocol registryProtocol,\n-                            Cluster cluster,\n-                            Registry registry,\n-                            Class<T> type,\n-                            URL url,\n-                            URL consumerUrl) {\n-        this(null, null, registryProtocol, cluster, registry, type, url, consumerUrl);\n-    }\n-\n-    public MigrationInvoker(ClusterInvoker<T> invoker,\n-                            ClusterInvoker<T> serviceDiscoveryInvoker,\n-                            RegistryProtocol registryProtocol,\n-                            Cluster cluster,\n-                            Registry registry,\n-                            Class<T> type,\n-                            URL url,\n-                            URL consumerUrl) {\n-        this.invoker = invoker;\n-        this.serviceDiscoveryInvoker = serviceDiscoveryInvoker;\n-        this.registryProtocol = registryProtocol;\n-        this.cluster = cluster;\n-        this.registry = registry;\n-        this.type = type;\n-        this.url = url;\n-        this.consumerUrl = consumerUrl;\n-        this.migrationMultiRegistry = url.getParameter(RegistryConstants.MIGRATION_MULTI_REGISTRY, false);\n-    }\n-\n-    public ClusterInvoker<T> getInvoker() {\n-        return invoker;\n-    }\n-\n-    public void setInvoker(ClusterInvoker<T> invoker) {\n-        this.invoker = invoker;\n-    }\n-\n-    public ClusterInvoker<T> getServiceDiscoveryInvoker() {\n-        return serviceDiscoveryInvoker;\n-    }\n-\n-    public void setServiceDiscoveryInvoker(ClusterInvoker<T> serviceDiscoveryInvoker) {\n-        this.serviceDiscoveryInvoker = serviceDiscoveryInvoker;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return type;\n-    }\n-\n-    @Override\n-    public synchronized void migrateToServiceDiscoveryInvoker(boolean forceMigrate) {\n-        if (!forceMigrate) {\n-            refreshServiceDiscoveryInvoker();\n-            refreshInterfaceInvoker();\n-            setListener(invoker, () -> {\n-                this.compareAddresses(serviceDiscoveryInvoker, invoker);\n-            });\n-            setListener(serviceDiscoveryInvoker, () -> {\n-                this.compareAddresses(serviceDiscoveryInvoker, invoker);\n-            });\n-        } else {\n-            refreshServiceDiscoveryInvoker();\n-            setListener(serviceDiscoveryInvoker, () -> {\n-                this.destroyInterfaceInvoker(this.invoker);\n-            });\n-        }\n-    }\n-\n-    @Override\n-    public void reRefer(URL newSubscribeUrl) {\n-        // update url to prepare for migration refresh\n-        this.url = url.addParameter(REFER_KEY, StringUtils.toQueryString(newSubscribeUrl.getParameters()));\n-\n-        // re-subscribe immediately\n-        if (invoker != null && !invoker.isDestroyed()) {\n-            doReSubscribe(invoker, newSubscribeUrl);\n-        }\n-        if (serviceDiscoveryInvoker != null && !serviceDiscoveryInvoker.isDestroyed()) {\n-            doReSubscribe(serviceDiscoveryInvoker, newSubscribeUrl);\n-        }\n-    }\n-\n-    private void doReSubscribe(ClusterInvoker<T> invoker, URL newSubscribeUrl) {\n-        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\n-        URL oldSubscribeUrl = directory.getRegisteredConsumerUrl();\n-        Registry registry = directory.getRegistry();\n-        registry.unregister(directory.getRegisteredConsumerUrl());\n-        directory.unSubscribe(RegistryProtocol.toSubscribeUrl(oldSubscribeUrl));\n-        registry.register(directory.getRegisteredConsumerUrl());\n-\n-        directory.setRegisteredConsumerUrl(newSubscribeUrl);\n-        directory.buildRouterChain(newSubscribeUrl);\n-        directory.subscribe(RegistryProtocol.toSubscribeUrl(newSubscribeUrl));\n-    }\n-\n-    @Override\n-    public synchronized void fallbackToInterfaceInvoker() {\n-        refreshInterfaceInvoker();\n-        setListener(invoker, () -> {\n-            this.destroyServiceDiscoveryInvoker(this.serviceDiscoveryInvoker);\n-        });\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        if (!checkInvokerAvailable(serviceDiscoveryInvoker)) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Using interface addresses to handle invocation, interface \" + type.getName() + \", total address size \" + (invoker.getDirectory().getAllInvokers() == null ? \"is null\" : invoker.getDirectory().getAllInvokers().size()));\n-            }\n-            return invoker.invoke(invocation);\n-        }\n-\n-        if (!checkInvokerAvailable(invoker)) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Using instance addresses to handle invocation, interface \" + type.getName() + \", total address size \" + (serviceDiscoveryInvoker.getDirectory().getAllInvokers() == null ? \" is null \" : serviceDiscoveryInvoker.getDirectory().getAllInvokers().size()));\n-            }\n-            return serviceDiscoveryInvoker.invoke(invocation);\n-        }\n-\n-        return currentAvailableInvoker.invoke(invocation);\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return (invoker != null && invoker.isAvailable())\n-                || (serviceDiscoveryInvoker != null && serviceDiscoveryInvoker.isAvailable());\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (invoker != null) {\n-            invoker.destroy();\n-        }\n-        if (serviceDiscoveryInvoker != null) {\n-            serviceDiscoveryInvoker.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        if (invoker != null) {\n-            return invoker.getUrl();\n-        } else if (serviceDiscoveryInvoker != null) {\n-            return serviceDiscoveryInvoker.getUrl();\n-        }\n-\n-        return consumerUrl;\n-    }\n-\n-    @Override\n-    public URL getRegistryUrl() {\n-        if (invoker != null) {\n-            return invoker.getRegistryUrl();\n-        } else if (serviceDiscoveryInvoker != null) {\n-            serviceDiscoveryInvoker.getRegistryUrl();\n-        }\n-        return url;\n-    }\n-\n-    @Override\n-    public Directory<T> getDirectory() {\n-        if (invoker != null) {\n-            return invoker.getDirectory();\n-        } else if (serviceDiscoveryInvoker != null) {\n-            return serviceDiscoveryInvoker.getDirectory();\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return (invoker == null || invoker.isDestroyed())\n-                && (serviceDiscoveryInvoker == null || serviceDiscoveryInvoker.isDestroyed());\n-    }\n-\n-\n-    @Override\n-    public AtomicBoolean invokersChanged() {\n-        return invokersChanged;\n-    }\n-\n-    private volatile AtomicBoolean invokersChanged = new AtomicBoolean(true);\n-\n-    private synchronized void compareAddresses(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker) {\n-        this.invokersChanged.set(true);\n-        if (logger.isDebugEnabled()) {\n-            logger.info(invoker.getDirectory().getAllInvokers() == null ? \"null\" : invoker.getDirectory().getAllInvokers().size() + \"\");\n-        }\n-\n-        Set<MigrationAddressComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationAddressComparator.class).getSupportedExtensionInstances();\n-        if (detectors != null && detectors.stream().allMatch(migrationDetector -> migrationDetector.shouldMigrate(serviceDiscoveryInvoker, invoker))) {\n-            discardInterfaceInvokerAddress(invoker);\n-        } else {\n-            discardServiceDiscoveryInvokerAddress(serviceDiscoveryInvoker);\n-        }\n-    }\n-\n-    private synchronized void setAddressChanged() {\n-        this.invokersChanged.set(true);\n-    }\n-\n-    public synchronized void destroyServiceDiscoveryInvoker(ClusterInvoker<?> serviceDiscoveryInvoker) {\n-        if (checkInvokerAvailable(this.invoker)) {\n-            this.currentAvailableInvoker = this.invoker;\n-        }\n-        if (serviceDiscoveryInvoker != null) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Destroying instance address invokers, will not listen for address changes until re-subscribed, \" + type.getName());\n-            }\n-            serviceDiscoveryInvoker.destroy();\n-        }\n-    }\n-\n-    public synchronized void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> serviceDiscoveryInvoker) {\n-        if (checkInvokerAvailable(this.invoker)) {\n-            this.currentAvailableInvoker = this.invoker;\n-        }\n-        if (serviceDiscoveryInvoker != null) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Discarding instance addresses, total size \" + (null == serviceDiscoveryInvoker.getDirectory().getAllInvokers() ? \"null\" : serviceDiscoveryInvoker.getDirectory().getAllInvokers().size()));\n-            }\n-            serviceDiscoveryInvoker.getDirectory().discordAddresses();\n-        }\n-    }\n-\n-    public synchronized void refreshServiceDiscoveryInvoker() {\n-        clearListener(serviceDiscoveryInvoker);\n-        if (needRefresh(serviceDiscoveryInvoker)) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Re-subscribing instance addresses, current interface \" + type.getName());\n-            }\n-            serviceDiscoveryInvoker = registryProtocol.getServiceDiscoveryInvoker(cluster, registry, type, url);\n-\n-            if (migrationMultiRegistry) {\n-                setListener(serviceDiscoveryInvoker, () -> {\n-                    this.setAddressChanged();\n-                });\n-            }\n-        }\n-    }\n-\n-    private void clearListener(ClusterInvoker<T> invoker) {\n-        if (migrationMultiRegistry) {\n-            return;\n-        }\n-\n-        if (invoker == null) {\n-            return;\n-        }\n-        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\n-        directory.setInvokersChangedListener(null);\n-    }\n-\n-    private void setListener(ClusterInvoker<T> invoker, InvokersChangedListener listener) {\n-        if (invoker == null) {\n-            return;\n-        }\n-        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\n-        directory.setInvokersChangedListener(listener);\n-    }\n-\n-    public synchronized void refreshInterfaceInvoker() {\n-        clearListener(invoker);\n-        if (needRefresh(invoker)) {\n-            // FIXME invoker.destroy();\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Re-subscribing interface addresses for interface \" + type.getName());\n-            }\n-            invoker = registryProtocol.getInvoker(cluster, registry, type, url);\n-\n-            if (migrationMultiRegistry) {\n-                setListener(serviceDiscoveryInvoker, () -> {\n-                    this.setAddressChanged();\n-                });\n-            }\n-        }\n-    }\n-\n-    public synchronized void destroyInterfaceInvoker(ClusterInvoker<T> invoker) {\n-        if (checkInvokerAvailable(this.serviceDiscoveryInvoker)) {\n-            this.currentAvailableInvoker = this.serviceDiscoveryInvoker;\n-        }\n-        if (invoker != null) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Destroying interface address invokers, will not listen for address changes until re-subscribed, \" + type.getName());\n-            }\n-            invoker.destroy();\n-        }\n-    }\n-\n-    public synchronized void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker) {\n-        if (this.serviceDiscoveryInvoker != null) {\n-            this.currentAvailableInvoker = this.serviceDiscoveryInvoker;\n-        }\n-        if (invoker != null) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Discarding interface addresses, total address size \" + (null == invoker.getDirectory().getAllInvokers() ? \"null\" : invoker.getDirectory().getAllInvokers().size()));\n-            }\n-            invoker.getDirectory().discordAddresses();\n-        }\n-    }\n-\n-    private boolean needRefresh(ClusterInvoker<T> invoker) {\n-        return invoker == null || invoker.isDestroyed();\n-    }\n-\n-    public boolean checkInvokerAvailable(ClusterInvoker<T> invoker) {\n-        return invoker != null && !invoker.isDestroyed() && invoker.isAvailable();\n-    }\n-\n-    @Override\n-    public boolean isServiceInvoker() {\n-        return false;\n-    }\n-\n-    @Override\n-    public MigrationRule getMigrationRule() {\n-        return rule;\n-    }\n-\n-    @Override\n-    public void setMigrationRule(MigrationRule rule) {\n-        this.rule = rule;\n-    }\n-\n-    @Override\n-    public boolean isMigrationMultiRegistry() {\n-        return migrationMultiRegistry;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.RegistryConstants;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.integration.DynamicDirectory;\r\n+import org.apache.dubbo.registry.integration.RegistryProtocol;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\r\n+\r\n+import java.util.Set;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+\r\n+public class MigrationInvoker<T> implements MigrationClusterInvoker<T> {\r\n+    private Logger logger = LoggerFactory.getLogger(MigrationInvoker.class);\r\n+\r\n+    private URL url;\r\n+    private URL consumerUrl;\r\n+    private Cluster cluster;\r\n+    private Registry registry;\r\n+    private Class<T> type;\r\n+    private RegistryProtocol registryProtocol;\r\n+\r\n+    private volatile ClusterInvoker<T> invoker;\r\n+    private volatile ClusterInvoker<T> serviceDiscoveryInvoker;\r\n+    private volatile ClusterInvoker<T> currentAvailableInvoker;\r\n+\r\n+    private MigrationRule rule;\r\n+\r\n+    private boolean migrationMultiRegistry;\r\n+\r\n+    public MigrationInvoker(RegistryProtocol registryProtocol,\r\n+                            Cluster cluster,\r\n+                            Registry registry,\r\n+                            Class<T> type,\r\n+                            URL url,\r\n+                            URL consumerUrl) {\r\n+        this(null, null, registryProtocol, cluster, registry, type, url, consumerUrl);\r\n+    }\r\n+\r\n+    public MigrationInvoker(ClusterInvoker<T> invoker,\r\n+                            ClusterInvoker<T> serviceDiscoveryInvoker,\r\n+                            RegistryProtocol registryProtocol,\r\n+                            Cluster cluster,\r\n+                            Registry registry,\r\n+                            Class<T> type,\r\n+                            URL url,\r\n+                            URL consumerUrl) {\r\n+        this.invoker = invoker;\r\n+        this.serviceDiscoveryInvoker = serviceDiscoveryInvoker;\r\n+        this.registryProtocol = registryProtocol;\r\n+        this.cluster = cluster;\r\n+        this.registry = registry;\r\n+        this.type = type;\r\n+        this.url = url;\r\n+        this.consumerUrl = consumerUrl;\r\n+        this.migrationMultiRegistry = url.getParameter(RegistryConstants.MIGRATION_MULTI_REGISTRY, false);\r\n+    }\r\n+\r\n+    public ClusterInvoker<T> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+\r\n+    public void setInvoker(ClusterInvoker<T> invoker) {\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    public ClusterInvoker<T> getServiceDiscoveryInvoker() {\r\n+        return serviceDiscoveryInvoker;\r\n+    }\r\n+\r\n+    public void setServiceDiscoveryInvoker(ClusterInvoker<T> serviceDiscoveryInvoker) {\r\n+        this.serviceDiscoveryInvoker = serviceDiscoveryInvoker;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return type;\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void migrateToServiceDiscoveryInvoker(boolean forceMigrate) {\r\n+        if (!forceMigrate) {\r\n+            refreshServiceDiscoveryInvoker();\r\n+            refreshInterfaceInvoker();\r\n+            setListener(invoker, () -> {\r\n+                this.compareAddresses(serviceDiscoveryInvoker, invoker);\r\n+            });\r\n+            setListener(serviceDiscoveryInvoker, () -> {\r\n+                this.compareAddresses(serviceDiscoveryInvoker, invoker);\r\n+            });\r\n+        } else {\r\n+            refreshServiceDiscoveryInvoker();\r\n+            setListener(serviceDiscoveryInvoker, () -> {\r\n+                this.destroyInterfaceInvoker(this.invoker);\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reRefer(URL newSubscribeUrl) {\r\n+        // update url to prepare for migration refresh\r\n+        this.url = url.addParameter(REFER_KEY, StringUtils.toQueryString(newSubscribeUrl.getParameters()));\r\n+\r\n+        // re-subscribe immediately\r\n+        if (invoker != null && !invoker.isDestroyed()) {\r\n+            doReSubscribe(invoker, newSubscribeUrl);\r\n+        }\r\n+        if (serviceDiscoveryInvoker != null && !serviceDiscoveryInvoker.isDestroyed()) {\r\n+            doReSubscribe(serviceDiscoveryInvoker, newSubscribeUrl);\r\n+        }\r\n+    }\r\n+\r\n+    private void doReSubscribe(ClusterInvoker<T> invoker, URL newSubscribeUrl) {\r\n+        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\r\n+        URL oldSubscribeUrl = directory.getRegisteredConsumerUrl();\r\n+        Registry registry = directory.getRegistry();\r\n+        registry.unregister(directory.getRegisteredConsumerUrl());\r\n+        directory.unSubscribe(RegistryProtocol.toSubscribeUrl(oldSubscribeUrl));\r\n+        registry.register(directory.getRegisteredConsumerUrl());\r\n+\r\n+        directory.setRegisteredConsumerUrl(newSubscribeUrl);\r\n+        directory.buildRouterChain(newSubscribeUrl);\r\n+        directory.subscribe(RegistryProtocol.toSubscribeUrl(newSubscribeUrl));\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void fallbackToInterfaceInvoker() {\r\n+        refreshInterfaceInvoker();\r\n+        setListener(invoker, () -> {\r\n+            this.destroyServiceDiscoveryInvoker(this.serviceDiscoveryInvoker);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        if (!checkInvokerAvailable(serviceDiscoveryInvoker)) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Using interface addresses to handle invocation, interface \" + type.getName() + \", total address size \" + (invoker.getDirectory().getAllInvokers() == null ? \"is null\" : invoker.getDirectory().getAllInvokers().size()));\r\n+            }\r\n+            return invoker.invoke(invocation);\r\n+        }\r\n+\r\n+        if (!checkInvokerAvailable(invoker)) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Using instance addresses to handle invocation, interface \" + type.getName() + \", total address size \" + (serviceDiscoveryInvoker.getDirectory().getAllInvokers() == null ? \" is null \" : serviceDiscoveryInvoker.getDirectory().getAllInvokers().size()));\r\n+            }\r\n+            return serviceDiscoveryInvoker.invoke(invocation);\r\n+        }\r\n+\r\n+        return currentAvailableInvoker.invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return (invoker != null && invoker.isAvailable())\r\n+                || (serviceDiscoveryInvoker != null && serviceDiscoveryInvoker.isAvailable());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (invoker != null) {\r\n+            invoker.destroy();\r\n+        }\r\n+        if (serviceDiscoveryInvoker != null) {\r\n+            serviceDiscoveryInvoker.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        if (invoker != null) {\r\n+            return invoker.getUrl();\r\n+        } else if (serviceDiscoveryInvoker != null) {\r\n+            return serviceDiscoveryInvoker.getUrl();\r\n+        }\r\n+\r\n+        return consumerUrl;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getRegistryUrl() {\r\n+        if (invoker != null) {\r\n+            return invoker.getRegistryUrl();\r\n+        } else if (serviceDiscoveryInvoker != null) {\r\n+            serviceDiscoveryInvoker.getRegistryUrl();\r\n+        }\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Directory<T> getDirectory() {\r\n+        if (invoker != null) {\r\n+            return invoker.getDirectory();\r\n+        } else if (serviceDiscoveryInvoker != null) {\r\n+            return serviceDiscoveryInvoker.getDirectory();\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return (invoker == null || invoker.isDestroyed())\r\n+                && (serviceDiscoveryInvoker == null || serviceDiscoveryInvoker.isDestroyed());\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public AtomicBoolean invokersChanged() {\r\n+        return invokersChanged;\r\n+    }\r\n+\r\n+    private volatile AtomicBoolean invokersChanged = new AtomicBoolean(true);\r\n+\r\n+    private synchronized void compareAddresses(ClusterInvoker<T> serviceDiscoveryInvoker, ClusterInvoker<T> invoker) {\r\n+        this.invokersChanged.set(true);\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.info(invoker.getDirectory().getAllInvokers() == null ? \"null\" : invoker.getDirectory().getAllInvokers().size() + \"\");\r\n+        }\r\n+\r\n+        Set<MigrationAddressComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationAddressComparator.class).getSupportedExtensionInstances();\r\n+        if (detectors != null && detectors.stream().allMatch(migrationDetector -> migrationDetector.shouldMigrate(serviceDiscoveryInvoker, invoker))) {\r\n+            discardInterfaceInvokerAddress(invoker);\r\n+        } else {\r\n+            discardServiceDiscoveryInvokerAddress(serviceDiscoveryInvoker);\r\n+        }\r\n+    }\r\n+\r\n+    private synchronized void setAddressChanged() {\r\n+        this.invokersChanged.set(true);\r\n+    }\r\n+\r\n+    public synchronized void destroyServiceDiscoveryInvoker(ClusterInvoker<?> serviceDiscoveryInvoker) {\r\n+        if (checkInvokerAvailable(this.invoker)) {\r\n+            this.currentAvailableInvoker = this.invoker;\r\n+        }\r\n+        if (serviceDiscoveryInvoker != null) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Destroying instance address invokers, will not listen for address changes until re-subscribed, \" + type.getName());\r\n+            }\r\n+            serviceDiscoveryInvoker.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    public synchronized void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> serviceDiscoveryInvoker) {\r\n+        if (checkInvokerAvailable(this.invoker)) {\r\n+            this.currentAvailableInvoker = this.invoker;\r\n+        }\r\n+        if (serviceDiscoveryInvoker != null) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Discarding instance addresses, total size \" + (null == serviceDiscoveryInvoker.getDirectory().getAllInvokers() ? \"null\" : serviceDiscoveryInvoker.getDirectory().getAllInvokers().size()));\r\n+            }\r\n+            serviceDiscoveryInvoker.getDirectory().discordAddresses();\r\n+        }\r\n+    }\r\n+\r\n+    public synchronized void refreshServiceDiscoveryInvoker() {\r\n+        clearListener(serviceDiscoveryInvoker);\r\n+        if (needRefresh(serviceDiscoveryInvoker)) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Re-subscribing instance addresses, current interface \" + type.getName());\r\n+            }\r\n+            serviceDiscoveryInvoker = registryProtocol.getServiceDiscoveryInvoker(cluster, registry, type, url);\r\n+\r\n+            if (migrationMultiRegistry) {\r\n+                setListener(serviceDiscoveryInvoker, () -> {\r\n+                    this.setAddressChanged();\r\n+                });\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void clearListener(ClusterInvoker<T> invoker) {\r\n+        if (migrationMultiRegistry) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (invoker == null) {\r\n+            return;\r\n+        }\r\n+        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\r\n+        directory.setInvokersChangedListener(null);\r\n+    }\r\n+\r\n+    private void setListener(ClusterInvoker<T> invoker, InvokersChangedListener listener) {\r\n+        if (invoker == null) {\r\n+            return;\r\n+        }\r\n+        DynamicDirectory<T> directory = (DynamicDirectory<T>) invoker.getDirectory();\r\n+        directory.setInvokersChangedListener(listener);\r\n+    }\r\n+\r\n+    public synchronized void refreshInterfaceInvoker() {\r\n+        clearListener(invoker);\r\n+        if (needRefresh(invoker)) {\r\n+            // FIXME invoker.destroy();\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Re-subscribing interface addresses for interface \" + type.getName());\r\n+            }\r\n+            invoker = registryProtocol.getInvoker(cluster, registry, type, url);\r\n+\r\n+            if (migrationMultiRegistry) {\r\n+                setListener(serviceDiscoveryInvoker, () -> {\r\n+                    this.setAddressChanged();\r\n+                });\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public synchronized void destroyInterfaceInvoker(ClusterInvoker<T> invoker) {\r\n+        if (checkInvokerAvailable(this.serviceDiscoveryInvoker)) {\r\n+            this.currentAvailableInvoker = this.serviceDiscoveryInvoker;\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Destroying interface address invokers, will not listen for address changes until re-subscribed, \" + type.getName());\r\n+            }\r\n+            invoker.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    public synchronized void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker) {\r\n+        if (this.serviceDiscoveryInvoker != null) {\r\n+            this.currentAvailableInvoker = this.serviceDiscoveryInvoker;\r\n+        }\r\n+        if (invoker != null) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Discarding interface addresses, total address size \" + (null == invoker.getDirectory().getAllInvokers() ? \"null\" : invoker.getDirectory().getAllInvokers().size()));\r\n+            }\r\n+            invoker.getDirectory().discordAddresses();\r\n+        }\r\n+    }\r\n+\r\n+    private boolean needRefresh(ClusterInvoker<T> invoker) {\r\n+        return invoker == null || invoker.isDestroyed();\r\n+    }\r\n+\r\n+    public boolean checkInvokerAvailable(ClusterInvoker<T> invoker) {\r\n+        return invoker != null && !invoker.isDestroyed() && invoker.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isServiceInvoker() {\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public MigrationRule getMigrationRule() {\r\n+        return rule;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setMigrationRule(MigrationRule rule) {\r\n+        this.rule = rule;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isMigrationMultiRegistry() {\r\n+        return migrationMultiRegistry;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java", "source2": "org/apache/dubbo/registry/client/migration/MigrationRuleHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\n-\n-@Activate\n-public class MigrationRuleHandler<T> {\n-    private static final Logger logger = LoggerFactory.getLogger(MigrationRuleHandler.class);\n-\n-    private MigrationInvoker<T> migrationInvoker;\n-\n-    public MigrationRuleHandler(MigrationInvoker<T> invoker) {\n-        this.migrationInvoker = invoker;\n-    }\n-\n-    private MigrationStep currentStep;\n-\n-    public void doMigrate(String rawRule) {\n-        MigrationRule rule = MigrationRule.parse(rawRule);\n-\n-        if (null != currentStep && currentStep.equals(rule.getStep())) {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Migration step is not change. rule.getStep is \" + currentStep.name());\n-            }\n-            return;\n-        } else {\n-            currentStep = rule.getStep();\n-        }\n-\n-        migrationInvoker.setMigrationRule(rule);\n-\n-        if (migrationInvoker.isMigrationMultiRegistry()) {\n-            if (migrationInvoker.isServiceInvoker()) {\n-                migrationInvoker.refreshServiceDiscoveryInvoker();\n-            } else {\n-                migrationInvoker.refreshInterfaceInvoker();\n-            }\n-        } else {\n-            switch (rule.getStep()) {\n-                case APPLICATION_FIRST:\n-                    migrationInvoker.migrateToServiceDiscoveryInvoker(false);\n-                    break;\n-                case FORCE_APPLICATION:\n-                    migrationInvoker.migrateToServiceDiscoveryInvoker(true);\n-                    break;\n-                case FORCE_INTERFACE:\n-                default:\n-                    migrationInvoker.fallbackToInterfaceInvoker();\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\r\n+\r\n+@Activate\r\n+public class MigrationRuleHandler<T> {\r\n+    private static final Logger logger = LoggerFactory.getLogger(MigrationRuleHandler.class);\r\n+\r\n+    private MigrationInvoker<T> migrationInvoker;\r\n+\r\n+    public MigrationRuleHandler(MigrationInvoker<T> invoker) {\r\n+        this.migrationInvoker = invoker;\r\n+    }\r\n+\r\n+    private MigrationStep currentStep;\r\n+\r\n+    public void doMigrate(String rawRule) {\r\n+        MigrationRule rule = MigrationRule.parse(rawRule);\r\n+\r\n+        if (null != currentStep && currentStep.equals(rule.getStep())) {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Migration step is not change. rule.getStep is \" + currentStep.name());\r\n+            }\r\n+            return;\r\n+        } else {\r\n+            currentStep = rule.getStep();\r\n+        }\r\n+\r\n+        migrationInvoker.setMigrationRule(rule);\r\n+\r\n+        if (migrationInvoker.isMigrationMultiRegistry()) {\r\n+            if (migrationInvoker.isServiceInvoker()) {\r\n+                migrationInvoker.refreshServiceDiscoveryInvoker();\r\n+            } else {\r\n+                migrationInvoker.refreshInterfaceInvoker();\r\n+            }\r\n+        } else {\r\n+            switch (rule.getStep()) {\r\n+                case APPLICATION_FIRST:\r\n+                    migrationInvoker.migrateToServiceDiscoveryInvoker(false);\r\n+                    break;\r\n+                case FORCE_APPLICATION:\r\n+                    migrationInvoker.migrateToServiceDiscoveryInvoker(true);\r\n+                    break;\r\n+                case FORCE_INTERFACE:\r\n+                default:\r\n+                    migrationInvoker.fallbackToInterfaceInvoker();\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/MigrationRuleListener.java", "source2": "org/apache/dubbo/registry/client/migration/MigrationRuleListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,112 +1,112 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.integration.RegistryProtocol;\n-import org.apache.dubbo.registry.integration.RegistryProtocolListener;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import java.util.Optional;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\n-\n-@Activate\n-public class MigrationRuleListener implements RegistryProtocolListener, ConfigurationListener {\n-    private static final Logger logger = LoggerFactory.getLogger(MigrationRuleListener.class);\n-\n-    private Set<MigrationRuleHandler> listeners = new ConcurrentHashSet<>();\n-    private DynamicConfiguration configuration;\n-\n-    private volatile String rawRule;\n-\n-    public MigrationRuleListener() {\n-        Optional<DynamicConfiguration> optional =  ApplicationModel.getEnvironment().getDynamicConfiguration();\n-\n-        if (optional.isPresent()) {\n-            this.configuration = optional.get();\n-\n-            logger.info(\"Listening for migration rules on dataId-\" + MigrationRule.RULE_KEY + \" group-\" + MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\n-            configuration.addListener(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP, this);\n-\n-            rawRule = configuration.getConfig(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\n-            if (StringUtils.isEmpty(rawRule)) {\n-                rawRule = INIT;\n-            }\n-\n-        } else {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"config center is not configured!\");\n-            }\n-\n-            rawRule = INIT;\n-        }\n-\n-        process(new ConfigChangedEvent(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP, rawRule));\n-    }\n-\n-    @Override\n-    public synchronized void process(ConfigChangedEvent event) {\n-        rawRule = event.getContent();\n-        if (StringUtils.isEmpty(rawRule)) {\n-            logger.warn(\"Received empty migration rule, will ignore.\");\n-            return;\n-        }\n-\n-        logger.info(\"Using the following migration rule to migrate:\");\n-        logger.info(rawRule);\n-\n-        if (CollectionUtils.isNotEmpty(listeners)) {\n-            listeners.forEach(listener -> listener.doMigrate(rawRule));\n-        }\n-    }\n-\n-    @Override\n-    public synchronized void onExport(RegistryProtocol registryProtocol, Exporter<?> exporter) {\n-\n-    }\n-\n-    @Override\n-    public synchronized  void onRefer(RegistryProtocol registryProtocol, ClusterInvoker<?> invoker, URL url) {\n-        MigrationInvoker<?> migrationInvoker = (MigrationInvoker<?>) invoker;\n-\n-        MigrationRuleHandler<?> migrationListener = new MigrationRuleHandler<>(migrationInvoker);\n-        listeners.add(migrationListener);\n-\n-        migrationListener.doMigrate(rawRule);\n-    }\n-\n-    @Override\n-    public void onDestroy() {\n-        if (null != configuration) {\n-            configuration.removeListener(MigrationRule.RULE_KEY, this);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.integration.RegistryProtocol;\r\n+import org.apache.dubbo.registry.integration.RegistryProtocolListener;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\r\n+\r\n+@Activate\r\n+public class MigrationRuleListener implements RegistryProtocolListener, ConfigurationListener {\r\n+    private static final Logger logger = LoggerFactory.getLogger(MigrationRuleListener.class);\r\n+\r\n+    private Set<MigrationRuleHandler> listeners = new ConcurrentHashSet<>();\r\n+    private DynamicConfiguration configuration;\r\n+\r\n+    private volatile String rawRule;\r\n+\r\n+    public MigrationRuleListener() {\r\n+        Optional<DynamicConfiguration> optional =  ApplicationModel.getEnvironment().getDynamicConfiguration();\r\n+\r\n+        if (optional.isPresent()) {\r\n+            this.configuration = optional.get();\r\n+\r\n+            logger.info(\"Listening for migration rules on dataId-\" + MigrationRule.RULE_KEY + \" group-\" + MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\r\n+            configuration.addListener(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP, this);\r\n+\r\n+            rawRule = configuration.getConfig(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\r\n+            if (StringUtils.isEmpty(rawRule)) {\r\n+                rawRule = INIT;\r\n+            }\r\n+\r\n+        } else {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"config center is not configured!\");\r\n+            }\r\n+\r\n+            rawRule = INIT;\r\n+        }\r\n+\r\n+        process(new ConfigChangedEvent(MigrationRule.RULE_KEY, MigrationRule.DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP, rawRule));\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void process(ConfigChangedEvent event) {\r\n+        rawRule = event.getContent();\r\n+        if (StringUtils.isEmpty(rawRule)) {\r\n+            logger.warn(\"Received empty migration rule, will ignore.\");\r\n+            return;\r\n+        }\r\n+\r\n+        logger.info(\"Using the following migration rule to migrate:\");\r\n+        logger.info(rawRule);\r\n+\r\n+        if (CollectionUtils.isNotEmpty(listeners)) {\r\n+            listeners.forEach(listener -> listener.doMigrate(rawRule));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void onExport(RegistryProtocol registryProtocol, Exporter<?> exporter) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized  void onRefer(RegistryProtocol registryProtocol, ClusterInvoker<?> invoker, URL url) {\r\n+        MigrationInvoker<?> migrationInvoker = (MigrationInvoker<?>) invoker;\r\n+\r\n+        MigrationRuleHandler<?> migrationListener = new MigrationRuleHandler<>(migrationInvoker);\r\n+        listeners.add(migrationListener);\r\n+\r\n+        migrationListener.doMigrate(rawRule);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onDestroy() {\r\n+        if (null != configuration) {\r\n+            configuration.removeListener(MigrationRule.RULE_KEY, this);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/migration/ServiceDiscoveryMigrationInvoker.java", "source2": "org/apache/dubbo/registry/client/migration/ServiceDiscoveryMigrationInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.migration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.integration.RegistryProtocol;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-public class ServiceDiscoveryMigrationInvoker<T> extends MigrationInvoker<T> {\n-    private static final Logger logger = LoggerFactory.getLogger(ServiceDiscoveryMigrationInvoker.class);\n-\n-    public ServiceDiscoveryMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\n-        super(registryProtocol, cluster, registry, type, url, consumerUrl);\n-    }\n-\n-    @Override\n-    public boolean isServiceInvoker() {\n-        return true;\n-    }\n-\n-    @Override\n-    public synchronized void fallbackToInterfaceInvoker() {\n-        logger.error(\"Service discovery registry type does not support discovery of interface level addresses, \" + getRegistryUrl());\n-        migrateToServiceDiscoveryInvoker(true);\n-    }\n-\n-    @Override\n-    public synchronized void migrateToServiceDiscoveryInvoker(boolean forceMigrate) {\n-        refreshServiceDiscoveryInvoker();\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        ClusterInvoker<T> invoker = getServiceDiscoveryInvoker();\n-        if (invoker == null) {\n-            throw new IllegalStateException(\"There's no service discovery invoker available for service \" + invocation.getServiceName());\n-        }\n-        return invoker.invoke(invocation);\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.migration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.integration.RegistryProtocol;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+public class ServiceDiscoveryMigrationInvoker<T> extends MigrationInvoker<T> {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ServiceDiscoveryMigrationInvoker.class);\r\n+\r\n+    public ServiceDiscoveryMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\r\n+        super(registryProtocol, cluster, registry, type, url, consumerUrl);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isServiceInvoker() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void fallbackToInterfaceInvoker() {\r\n+        logger.error(\"Service discovery registry type does not support discovery of interface level addresses, \" + getRegistryUrl());\r\n+        migrateToServiceDiscoveryInvoker(true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void migrateToServiceDiscoveryInvoker(boolean forceMigrate) {\r\n+        refreshServiceDiscoveryInvoker();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        ClusterInvoker<T> invoker = getServiceDiscoveryInvoker();\r\n+        if (invoker == null) {\r\n+            throw new IllegalStateException(\"There's no service discovery invoker available for service \" + invocation.getServiceName());\r\n+        }\r\n+        return invoker.invoke(invocation);\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/registry/client/package-info.java", "source2": "org/apache/dubbo/registry/client/package-info.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,23 +1,23 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-/**\n- * * The inspiration of service registration and discovery comes from\n- * <a href=\"https://spring.io/projects/spring-cloud-commons\">Spring Cloud Commons</a>.\n- *\n- * @since 2.7.5\n- */\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+/**\r\n+ * * The inspiration of service registration and discovery comes from\r\n+ * <a href=\"https://spring.io/projects/spring-cloud-commons\">Spring Cloud Commons</a>.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n package org.apache.dubbo.registry.client;\n"}, {"source1": "org/apache/dubbo/registry/client/selector/RandomServiceInstanceSelector.java", "source2": "org/apache/dubbo/registry/client/selector/RandomServiceInstanceSelector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,47 +1,47 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.selector;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.List;\n-import java.util.concurrent.ThreadLocalRandom;\n-\n-/**\n- * The {@link ServiceInstanceSelector} implementation based on Random algorithm\n- *\n- * @see ThreadLocalRandom\n- * @see ServiceInstanceSelector\n- * @since 2.7.5\n- */\n-public class RandomServiceInstanceSelector implements ServiceInstanceSelector {\n-\n-    @Override\n-    public ServiceInstance select(URL registryURL, List<ServiceInstance> serviceInstances) {\n-        int size = serviceInstances.size();\n-        if (size < 1) {\n-            return null;\n-        }\n-        int index = size == 1 ? 0 : selectIndexRandomly(size);\n-        return serviceInstances.get(index);\n-    }\n-\n-    protected int selectIndexRandomly(int size) {\n-        return ThreadLocalRandom.current().nextInt(size);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.selector;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+\r\n+/**\r\n+ * The {@link ServiceInstanceSelector} implementation based on Random algorithm\r\n+ *\r\n+ * @see ThreadLocalRandom\r\n+ * @see ServiceInstanceSelector\r\n+ * @since 2.7.5\r\n+ */\r\n+public class RandomServiceInstanceSelector implements ServiceInstanceSelector {\r\n+\r\n+    @Override\r\n+    public ServiceInstance select(URL registryURL, List<ServiceInstance> serviceInstances) {\r\n+        int size = serviceInstances.size();\r\n+        if (size < 1) {\r\n+            return null;\r\n+        }\r\n+        int index = size == 1 ? 0 : selectIndexRandomly(size);\r\n+        return serviceInstances.get(index);\r\n+    }\r\n+\r\n+    protected int selectIndexRandomly(int size) {\r\n+        return ThreadLocalRandom.current().nextInt(size);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/client/selector/ServiceInstanceSelector.java", "source2": "org/apache/dubbo/registry/client/selector/ServiceInstanceSelector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.client.selector;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.List;\n-\n-/**\n- * The {@link ServiceInstance} Selector\n- *\n- * @since 2.7.5\n- */\n-@SPI(\"random\")\n-public interface ServiceInstanceSelector {\n-\n-    /**\n-     * Select an instance of {@link ServiceInstance} by the specified {@link ServiceInstance service instances}\n-     *\n-     * @param registryURL      The {@link URL url} of registry\n-     * @param serviceInstances the specified {@link ServiceInstance service instances}\n-     * @return an instance of {@link ServiceInstance} if available, or <code>null</code>\n-     */\n-    @Adaptive(\"service-instance-selector\")\n-    ServiceInstance select(URL registryURL, List<ServiceInstance> serviceInstances);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.client.selector;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * The {@link ServiceInstance} Selector\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+@SPI(\"random\")\r\n+public interface ServiceInstanceSelector {\r\n+\r\n+    /**\r\n+     * Select an instance of {@link ServiceInstance} by the specified {@link ServiceInstance service instances}\r\n+     *\r\n+     * @param registryURL      The {@link URL url} of registry\r\n+     * @param serviceInstances the specified {@link ServiceInstance service instances}\r\n+     * @return an instance of {@link ServiceInstance} if available, or <code>null</code>\r\n+     */\r\n+    @Adaptive(\"service-instance-selector\")\r\n+    ServiceInstance select(URL registryURL, List<ServiceInstance> serviceInstances);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/AbstractConsulRegistry.java", "source2": "org/apache/dubbo/registry/consul/AbstractConsulRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-/**\n- * @author cvictory ON 2019-08-02\n- */\n-public class AbstractConsulRegistry {\n-\n-    static final String SERVICE_TAG = \"dubbo\";\n-    static final String URL_META_KEY = \"url\";\n-    static final String WATCH_TIMEOUT = \"consul-watch-timeout\";\n-    static final String CHECK_PASS_INTERVAL = \"consul-check-pass-interval\";\n-    static final String DEREGISTER_AFTER = \"consul-deregister-critical-service-after\";\n-\n-    static final int DEFAULT_PORT = 8500;\n-    // default watch timeout in millisecond\n-    static final int DEFAULT_WATCH_TIMEOUT = 60 * 1000;\n-    // default time-to-live in millisecond\n-    static final long DEFAULT_CHECK_PASS_INTERVAL = 16000L;\n-    // default deregister critical server after\n-    static final String DEFAULT_DEREGISTER_TIME = \"20s\";\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+/**\r\n+ * @author cvictory ON 2019-08-02\r\n+ */\r\n+public class AbstractConsulRegistry {\r\n+\r\n+    static final String SERVICE_TAG = \"dubbo\";\r\n+    static final String URL_META_KEY = \"url\";\r\n+    static final String WATCH_TIMEOUT = \"consul-watch-timeout\";\r\n+    static final String CHECK_PASS_INTERVAL = \"consul-check-pass-interval\";\r\n+    static final String DEREGISTER_AFTER = \"consul-deregister-critical-service-after\";\r\n+\r\n+    static final int DEFAULT_PORT = 8500;\r\n+    // default watch timeout in millisecond\r\n+    static final int DEFAULT_WATCH_TIMEOUT = 60 * 1000;\r\n+    // default time-to-live in millisecond\r\n+    static final long DEFAULT_CHECK_PASS_INTERVAL = 16000L;\r\n+    // default deregister critical server after\r\n+    static final String DEFAULT_DEREGISTER_TIME = \"20s\";\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulParameter.java", "source2": "org/apache/dubbo/registry/consul/ConsulParameter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,87 +1,87 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-\n-/**\n- * The enumeration for the Consul's parameters on the {@link URL}\n- *\n- * @see URL#getParameters()\n- * @since 2.7.8\n- */\n-public enum ConsulParameter {\n-\n-    ACL_TOKEN,\n-\n-    TAGS,\n-\n-    INSTANCE_ZONE,\n-\n-    DEFAULT_ZONE_METADATA_NAME(\"zone\"),\n-\n-    INSTANCE_GROUP,\n-\n-    CONSISTENCY_MODE,\n-\n-    ;\n-\n-    private final String name;\n-\n-    private final String defaultValue;\n-\n-    ConsulParameter() {\n-        this(null);\n-    }\n-\n-    ConsulParameter(String defaultValue) {\n-        this(null, defaultValue);\n-    }\n-\n-    ConsulParameter(String name, String defaultValue) {\n-        this.name = isBlank(name) ? defaultName() : name;\n-        this.defaultValue = defaultValue;\n-    }\n-\n-    private String defaultName() {\n-        return name().toLowerCase().replace('_', '-');\n-    }\n-\n-    /**\n-     * The parameter value from the specified registry {@link URL}\n-     *\n-     * @param registryURL the specified registry {@link URL}\n-     * @return <code>defaultValue</code> if not found\n-     */\n-    public String getValue(URL registryURL) {\n-        return registryURL.getParameter(name, defaultValue);\n-    }\n-\n-    /**\n-     * The parameter value from the specified registry {@link URL}\n-     *\n-     * @param registryURL  the specified registry {@link URL}\n-     * @param valueType    the type of parameter value\n-     * @param defaultValue the default value if parameter is absent\n-     * @return <code>defaultValue</code> if not found\n-     */\n-    public <T> T getValue(URL registryURL, Class<T> valueType, T defaultValue) {\n-        return registryURL.getParameter(name, valueType, defaultValue);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+\r\n+/**\r\n+ * The enumeration for the Consul's parameters on the {@link URL}\r\n+ *\r\n+ * @see URL#getParameters()\r\n+ * @since 2.7.8\r\n+ */\r\n+public enum ConsulParameter {\r\n+\r\n+    ACL_TOKEN,\r\n+\r\n+    TAGS,\r\n+\r\n+    INSTANCE_ZONE,\r\n+\r\n+    DEFAULT_ZONE_METADATA_NAME(\"zone\"),\r\n+\r\n+    INSTANCE_GROUP,\r\n+\r\n+    CONSISTENCY_MODE,\r\n+\r\n+    ;\r\n+\r\n+    private final String name;\r\n+\r\n+    private final String defaultValue;\r\n+\r\n+    ConsulParameter() {\r\n+        this(null);\r\n+    }\r\n+\r\n+    ConsulParameter(String defaultValue) {\r\n+        this(null, defaultValue);\r\n+    }\r\n+\r\n+    ConsulParameter(String name, String defaultValue) {\r\n+        this.name = isBlank(name) ? defaultName() : name;\r\n+        this.defaultValue = defaultValue;\r\n+    }\r\n+\r\n+    private String defaultName() {\r\n+        return name().toLowerCase().replace('_', '-');\r\n+    }\r\n+\r\n+    /**\r\n+     * The parameter value from the specified registry {@link URL}\r\n+     *\r\n+     * @param registryURL the specified registry {@link URL}\r\n+     * @return <code>defaultValue</code> if not found\r\n+     */\r\n+    public String getValue(URL registryURL) {\r\n+        return registryURL.getParameter(name, defaultValue);\r\n+    }\r\n+\r\n+    /**\r\n+     * The parameter value from the specified registry {@link URL}\r\n+     *\r\n+     * @param registryURL  the specified registry {@link URL}\r\n+     * @param valueType    the type of parameter value\r\n+     * @param defaultValue the default value if parameter is absent\r\n+     * @return <code>defaultValue</code> if not found\r\n+     */\r\n+    public <T> T getValue(URL registryURL, Class<T> valueType, T defaultValue) {\r\n+        return registryURL.getParameter(name, valueType, defaultValue);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulRegistry.java", "source2": "org/apache/dubbo/registry/consul/ConsulRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,380 +1,380 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.ecwid.consul.v1.ConsulClient;\n-import com.ecwid.consul.v1.QueryParams;\n-import com.ecwid.consul.v1.Response;\n-import com.ecwid.consul.v1.agent.model.NewService;\n-import com.ecwid.consul.v1.catalog.CatalogServicesRequest;\n-import com.ecwid.consul.v1.health.HealthServicesRequest;\n-import com.ecwid.consul.v1.health.model.HealthService;\n-\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ScheduledThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-import java.util.stream.Collectors;\n-\n-import static java.util.concurrent.Executors.newCachedThreadPool;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.CHECK_PASS_INTERVAL;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_CHECK_PASS_INTERVAL;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_DEREGISTER_TIME;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_PORT;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_WATCH_TIMEOUT;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEREGISTER_AFTER;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.SERVICE_TAG;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.URL_META_KEY;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.WATCH_TIMEOUT;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-\n-/**\n- * registry center implementation for consul\n- */\n-public class ConsulRegistry extends FailbackRegistry {\n-    private static final Logger logger = LoggerFactory.getLogger(ConsulRegistry.class);\n-\n-    private ConsulClient client;\n-    private long checkPassInterval;\n-    private ExecutorService notifierExecutor = newCachedThreadPool(\n-            new NamedThreadFactory(\"dubbo-consul-notifier\", true));\n-    private ConcurrentMap<URL, ConsulNotifier> notifiers = new ConcurrentHashMap<>();\n-    private ScheduledExecutorService ttlConsulCheckExecutor;\n-    /**\n-     * The ACL token\n-     */\n-    private String token;\n-\n-\n-    public ConsulRegistry(URL url) {\n-        super(url);\n-        token = url.getParameter(TOKEN_KEY, (String) null);\n-        String host = url.getHost();\n-        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\n-        client = new ConsulClient(host, port);\n-        checkPassInterval = url.getParameter(CHECK_PASS_INTERVAL, DEFAULT_CHECK_PASS_INTERVAL);\n-        ttlConsulCheckExecutor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory(\"Ttl-Consul-Check-Executor\", true));\n-        ttlConsulCheckExecutor.scheduleAtFixedRate(this::checkPass, checkPassInterval / 8,\n-                checkPassInterval / 8, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    public void register(URL url) {\n-        if (isConsumerSide(url)) {\n-            return;\n-        }\n-\n-        super.register(url);\n-    }\n-\n-    @Override\n-    public void doRegister(URL url) {\n-        if (token == null) {\n-            client.agentServiceRegister(buildService(url));\n-        } else {\n-            client.agentServiceRegister(buildService(url), token);\n-        }\n-    }\n-\n-    @Override\n-    public void unregister(URL url) {\n-        if (isConsumerSide(url)) {\n-            return;\n-        }\n-\n-        super.unregister(url);\n-    }\n-\n-    @Override\n-    public void doUnregister(URL url) {\n-        if (token == null) {\n-            client.agentServiceDeregister(buildId(url));\n-        } else {\n-            client.agentServiceDeregister(buildId(url), token);\n-        }\n-    }\n-\n-    @Override\n-    public void subscribe(URL url, NotifyListener listener) {\n-        if (isProviderSide(url)) {\n-            return;\n-        }\n-\n-        super.subscribe(url, listener);\n-    }\n-\n-    @Override\n-    public void doSubscribe(URL url, NotifyListener listener) {\n-        Long index;\n-        List<URL> urls;\n-        if (ANY_VALUE.equals(url.getServiceInterface())) {\n-            Response<Map<String, List<String>>> response = getAllServices(-1, buildWatchTimeout(url));\n-            index = response.getConsulIndex();\n-            List<HealthService> services = getHealthServices(response.getValue());\n-            urls = convert(services, url);\n-        } else {\n-            String service = url.getServiceInterface();\n-            Response<List<HealthService>> response = getHealthServices(service, -1, buildWatchTimeout(url));\n-            index = response.getConsulIndex();\n-            urls = convert(response.getValue(), url);\n-        }\n-\n-        notify(url, listener, urls);\n-        ConsulNotifier notifier = notifiers.computeIfAbsent(url, k -> new ConsulNotifier(url, index));\n-        notifierExecutor.submit(notifier);\n-    }\n-\n-    @Override\n-    public void unsubscribe(URL url, NotifyListener listener) {\n-        if (isProviderSide(url)) {\n-            return;\n-        }\n-\n-        super.unsubscribe(url, listener);\n-    }\n-\n-    @Override\n-    public void doUnsubscribe(URL url, NotifyListener listener) {\n-        ConsulNotifier notifier = notifiers.remove(url);\n-        notifier.stop();\n-    }\n-\n-    @Override\n-    public List<URL> lookup(URL url) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"lookup url == null\");\n-        }\n-        try {\n-            String service = url.getServiceKey();\n-            Response<List<HealthService>> result = getHealthServices(service, -1, buildWatchTimeout(url));\n-            if (result == null || result.getValue() == null || result.getValue().isEmpty()) {\n-                return new ArrayList<>();\n-            } else {\n-                return convert(result.getValue(), url);\n-            }\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to lookup \" + url + \" from consul \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return client.getAgentSelf() != null;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-        notifierExecutor.shutdown();\n-        ttlConsulCheckExecutor.shutdown();\n-    }\n-\n-    private void checkPass() {\n-        for (URL url : getRegistered()) {\n-            String checkId = buildId(url);\n-            try {\n-                if (token == null) {\n-                    client.agentCheckPass(\"service:\" + checkId);\n-                } else {\n-                    client.agentCheckPass(\"service:\" + checkId, null, token);\n-                }\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"check pass for url: \" + url + \" with check id: \" + checkId);\n-                }\n-            } catch (Throwable t) {\n-                logger.warn(\"fail to check pass for url: \" + url + \", check id is: \" + checkId, t);\n-            }\n-        }\n-    }\n-\n-    private Response<List<HealthService>> getHealthServices(String service, long index, int watchTimeout) {\n-        HealthServicesRequest request = HealthServicesRequest.newBuilder()\n-                .setTag(SERVICE_TAG)\n-                .setQueryParams(new QueryParams(watchTimeout, index))\n-                .setPassing(true)\n-                .setToken(token)\n-                .build();\n-        return client.getHealthServices(service, request);\n-    }\n-\n-    private Response<Map<String, List<String>>> getAllServices(long index, int watchTimeout) {\n-        CatalogServicesRequest request = CatalogServicesRequest.newBuilder()\n-                .setQueryParams(new QueryParams(watchTimeout, index))\n-                .setToken(token)\n-                .build();\n-        return client.getCatalogServices(request);\n-    }\n-\n-    private List<HealthService> getHealthServices(Map<String, List<String>> services) {\n-        return services.entrySet().stream()\n-                .filter(s -> s.getValue().contains(SERVICE_TAG))\n-                .map(s -> getHealthServices(s.getKey(), -1, -1).getValue())\n-                .flatMap(Collection::stream)\n-                .collect(Collectors.toList());\n-    }\n-\n-\n-    private boolean isConsumerSide(URL url) {\n-        return url.getProtocol().equals(CONSUMER_PROTOCOL);\n-    }\n-\n-    private boolean isProviderSide(URL url) {\n-        return url.getProtocol().equals(PROVIDER_PROTOCOL);\n-    }\n-\n-    private List<URL> convert(List<HealthService> services, URL consumerURL) {\n-        if (CollectionUtils.isEmpty(services)) {\n-            return emptyURL(consumerURL);\n-        }\n-        return services.stream()\n-                .map(HealthService::getService)\n-                .filter(Objects::nonNull)\n-                .map(HealthService.Service::getMeta)\n-                .filter(m -> m != null && m.containsKey(URL_META_KEY))\n-                .map(m -> m.get(URL_META_KEY))\n-                .map(URL::valueOf)\n-                .filter(url -> UrlUtils.isMatch(consumerURL, url))\n-                .collect(Collectors.toList());\n-    }\n-\n-    private List<URL> emptyURL(URL consumerURL) {\n-        // No Category Parameter\n-        URL empty = URLBuilder.from(consumerURL)\n-                .setProtocol(EMPTY_PROTOCOL)\n-                .removeParameter(CATEGORY_KEY)\n-                .build();\n-        List<URL> result = new ArrayList<URL>();\n-        result.add(empty);\n-        return result;\n-    }\n-\n-    private NewService buildService(URL url) {\n-        NewService service = new NewService();\n-        service.setAddress(url.getHost());\n-        service.setPort(url.getPort());\n-        service.setId(buildId(url));\n-        service.setName(url.getServiceInterface());\n-        service.setCheck(buildCheck(url));\n-        service.setTags(buildTags(url));\n-        service.setMeta(Collections.singletonMap(URL_META_KEY, url.toFullString()));\n-        return service;\n-    }\n-\n-    private List<String> buildTags(URL url) {\n-        Map<String, String> params = url.getParameters();\n-        List<String> tags = params.entrySet().stream()\n-                .map(k -> k.getKey() + \"=\" + k.getValue())\n-                .collect(Collectors.toList());\n-        tags.add(SERVICE_TAG);\n-        return tags;\n-    }\n-\n-    private String buildId(URL url) {\n-        // let's simply use url's hashcode to generate unique service id for now\n-        return Integer.toHexString(url.hashCode());\n-    }\n-\n-    private NewService.Check buildCheck(URL url) {\n-        NewService.Check check = new NewService.Check();\n-        check.setTtl((checkPassInterval / 1000) + \"s\");\n-        check.setDeregisterCriticalServiceAfter(url.getParameter(DEREGISTER_AFTER, DEFAULT_DEREGISTER_TIME));\n-        return check;\n-    }\n-\n-    private int buildWatchTimeout(URL url) {\n-        return url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT) / 1000;\n-    }\n-\n-    private class ConsulNotifier implements Runnable {\n-        private URL url;\n-        private long consulIndex;\n-        private boolean running;\n-\n-        ConsulNotifier(URL url, long consulIndex) {\n-            this.url = url;\n-            this.consulIndex = consulIndex;\n-            this.running = true;\n-        }\n-\n-        @Override\n-        public void run() {\n-            while (this.running) {\n-                if (ANY_VALUE.equals(url.getServiceInterface())) {\n-                    processServices();\n-                } else {\n-                    processService();\n-                }\n-            }\n-        }\n-\n-        private void processService() {\n-            String service = url.getServiceKey();\n-            Response<List<HealthService>> response = getHealthServices(service, consulIndex, buildWatchTimeout(url));\n-            Long currentIndex = response.getConsulIndex();\n-            if (currentIndex != null && currentIndex > consulIndex) {\n-                consulIndex = currentIndex;\n-                List<HealthService> services = response.getValue();\n-                List<URL> urls = convert(services, url);\n-                for (NotifyListener listener : getSubscribed().get(url)) {\n-                    doNotify(url, listener, urls);\n-                }\n-            }\n-        }\n-\n-        private void processServices() {\n-            Response<Map<String, List<String>>> response = getAllServices(consulIndex, buildWatchTimeout(url));\n-            Long currentIndex = response.getConsulIndex();\n-            if (currentIndex != null && currentIndex > consulIndex) {\n-                consulIndex = currentIndex;\n-                List<HealthService> services = getHealthServices(response.getValue());\n-                List<URL> urls = convert(services, url);\n-                for (NotifyListener listener : getSubscribed().get(url)) {\n-                    doNotify(url, listener, urls);\n-                }\n-            }\n-        }\n-\n-        void stop() {\n-            this.running = false;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.ecwid.consul.v1.ConsulClient;\r\n+import com.ecwid.consul.v1.QueryParams;\r\n+import com.ecwid.consul.v1.Response;\r\n+import com.ecwid.consul.v1.agent.model.NewService;\r\n+import com.ecwid.consul.v1.catalog.CatalogServicesRequest;\r\n+import com.ecwid.consul.v1.health.HealthServicesRequest;\r\n+import com.ecwid.consul.v1.health.model.HealthService;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ScheduledThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.util.concurrent.Executors.newCachedThreadPool;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.CHECK_PASS_INTERVAL;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_CHECK_PASS_INTERVAL;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_DEREGISTER_TIME;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_PORT;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_WATCH_TIMEOUT;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEREGISTER_AFTER;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.SERVICE_TAG;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.URL_META_KEY;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.WATCH_TIMEOUT;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+\r\n+/**\r\n+ * registry center implementation for consul\r\n+ */\r\n+public class ConsulRegistry extends FailbackRegistry {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConsulRegistry.class);\r\n+\r\n+    private ConsulClient client;\r\n+    private long checkPassInterval;\r\n+    private ExecutorService notifierExecutor = newCachedThreadPool(\r\n+            new NamedThreadFactory(\"dubbo-consul-notifier\", true));\r\n+    private ConcurrentMap<URL, ConsulNotifier> notifiers = new ConcurrentHashMap<>();\r\n+    private ScheduledExecutorService ttlConsulCheckExecutor;\r\n+    /**\r\n+     * The ACL token\r\n+     */\r\n+    private String token;\r\n+\r\n+\r\n+    public ConsulRegistry(URL url) {\r\n+        super(url);\r\n+        token = url.getParameter(TOKEN_KEY, (String) null);\r\n+        String host = url.getHost();\r\n+        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\r\n+        client = new ConsulClient(host, port);\r\n+        checkPassInterval = url.getParameter(CHECK_PASS_INTERVAL, DEFAULT_CHECK_PASS_INTERVAL);\r\n+        ttlConsulCheckExecutor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory(\"Ttl-Consul-Check-Executor\", true));\r\n+        ttlConsulCheckExecutor.scheduleAtFixedRate(this::checkPass, checkPassInterval / 8,\r\n+                checkPassInterval / 8, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void register(URL url) {\r\n+        if (isConsumerSide(url)) {\r\n+            return;\r\n+        }\r\n+\r\n+        super.register(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(URL url) {\r\n+        if (token == null) {\r\n+            client.agentServiceRegister(buildService(url));\r\n+        } else {\r\n+            client.agentServiceRegister(buildService(url), token);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(URL url) {\r\n+        if (isConsumerSide(url)) {\r\n+            return;\r\n+        }\r\n+\r\n+        super.unregister(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnregister(URL url) {\r\n+        if (token == null) {\r\n+            client.agentServiceDeregister(buildId(url));\r\n+        } else {\r\n+            client.agentServiceDeregister(buildId(url), token);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(URL url, NotifyListener listener) {\r\n+        if (isProviderSide(url)) {\r\n+            return;\r\n+        }\r\n+\r\n+        super.subscribe(url, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doSubscribe(URL url, NotifyListener listener) {\r\n+        Long index;\r\n+        List<URL> urls;\r\n+        if (ANY_VALUE.equals(url.getServiceInterface())) {\r\n+            Response<Map<String, List<String>>> response = getAllServices(-1, buildWatchTimeout(url));\r\n+            index = response.getConsulIndex();\r\n+            List<HealthService> services = getHealthServices(response.getValue());\r\n+            urls = convert(services, url);\r\n+        } else {\r\n+            String service = url.getServiceInterface();\r\n+            Response<List<HealthService>> response = getHealthServices(service, -1, buildWatchTimeout(url));\r\n+            index = response.getConsulIndex();\r\n+            urls = convert(response.getValue(), url);\r\n+        }\r\n+\r\n+        notify(url, listener, urls);\r\n+        ConsulNotifier notifier = notifiers.computeIfAbsent(url, k -> new ConsulNotifier(url, index));\r\n+        notifierExecutor.submit(notifier);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(URL url, NotifyListener listener) {\r\n+        if (isProviderSide(url)) {\r\n+            return;\r\n+        }\r\n+\r\n+        super.unsubscribe(url, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnsubscribe(URL url, NotifyListener listener) {\r\n+        ConsulNotifier notifier = notifiers.remove(url);\r\n+        notifier.stop();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(URL url) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"lookup url == null\");\r\n+        }\r\n+        try {\r\n+            String service = url.getServiceKey();\r\n+            Response<List<HealthService>> result = getHealthServices(service, -1, buildWatchTimeout(url));\r\n+            if (result == null || result.getValue() == null || result.getValue().isEmpty()) {\r\n+                return new ArrayList<>();\r\n+            } else {\r\n+                return convert(result.getValue(), url);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to lookup \" + url + \" from consul \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return client.getAgentSelf() != null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+        notifierExecutor.shutdown();\r\n+        ttlConsulCheckExecutor.shutdown();\r\n+    }\r\n+\r\n+    private void checkPass() {\r\n+        for (URL url : getRegistered()) {\r\n+            String checkId = buildId(url);\r\n+            try {\r\n+                if (token == null) {\r\n+                    client.agentCheckPass(\"service:\" + checkId);\r\n+                } else {\r\n+                    client.agentCheckPass(\"service:\" + checkId, null, token);\r\n+                }\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"check pass for url: \" + url + \" with check id: \" + checkId);\r\n+                }\r\n+            } catch (Throwable t) {\r\n+                logger.warn(\"fail to check pass for url: \" + url + \", check id is: \" + checkId, t);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private Response<List<HealthService>> getHealthServices(String service, long index, int watchTimeout) {\r\n+        HealthServicesRequest request = HealthServicesRequest.newBuilder()\r\n+                .setTag(SERVICE_TAG)\r\n+                .setQueryParams(new QueryParams(watchTimeout, index))\r\n+                .setPassing(true)\r\n+                .setToken(token)\r\n+                .build();\r\n+        return client.getHealthServices(service, request);\r\n+    }\r\n+\r\n+    private Response<Map<String, List<String>>> getAllServices(long index, int watchTimeout) {\r\n+        CatalogServicesRequest request = CatalogServicesRequest.newBuilder()\r\n+                .setQueryParams(new QueryParams(watchTimeout, index))\r\n+                .setToken(token)\r\n+                .build();\r\n+        return client.getCatalogServices(request);\r\n+    }\r\n+\r\n+    private List<HealthService> getHealthServices(Map<String, List<String>> services) {\r\n+        return services.entrySet().stream()\r\n+                .filter(s -> s.getValue().contains(SERVICE_TAG))\r\n+                .map(s -> getHealthServices(s.getKey(), -1, -1).getValue())\r\n+                .flatMap(Collection::stream)\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+\r\n+    private boolean isConsumerSide(URL url) {\r\n+        return url.getProtocol().equals(CONSUMER_PROTOCOL);\r\n+    }\r\n+\r\n+    private boolean isProviderSide(URL url) {\r\n+        return url.getProtocol().equals(PROVIDER_PROTOCOL);\r\n+    }\r\n+\r\n+    private List<URL> convert(List<HealthService> services, URL consumerURL) {\r\n+        if (CollectionUtils.isEmpty(services)) {\r\n+            return emptyURL(consumerURL);\r\n+        }\r\n+        return services.stream()\r\n+                .map(HealthService::getService)\r\n+                .filter(Objects::nonNull)\r\n+                .map(HealthService.Service::getMeta)\r\n+                .filter(m -> m != null && m.containsKey(URL_META_KEY))\r\n+                .map(m -> m.get(URL_META_KEY))\r\n+                .map(URL::valueOf)\r\n+                .filter(url -> UrlUtils.isMatch(consumerURL, url))\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    private List<URL> emptyURL(URL consumerURL) {\r\n+        // No Category Parameter\r\n+        URL empty = URLBuilder.from(consumerURL)\r\n+                .setProtocol(EMPTY_PROTOCOL)\r\n+                .removeParameter(CATEGORY_KEY)\r\n+                .build();\r\n+        List<URL> result = new ArrayList<URL>();\r\n+        result.add(empty);\r\n+        return result;\r\n+    }\r\n+\r\n+    private NewService buildService(URL url) {\r\n+        NewService service = new NewService();\r\n+        service.setAddress(url.getHost());\r\n+        service.setPort(url.getPort());\r\n+        service.setId(buildId(url));\r\n+        service.setName(url.getServiceInterface());\r\n+        service.setCheck(buildCheck(url));\r\n+        service.setTags(buildTags(url));\r\n+        service.setMeta(Collections.singletonMap(URL_META_KEY, url.toFullString()));\r\n+        return service;\r\n+    }\r\n+\r\n+    private List<String> buildTags(URL url) {\r\n+        Map<String, String> params = url.getParameters();\r\n+        List<String> tags = params.entrySet().stream()\r\n+                .map(k -> k.getKey() + \"=\" + k.getValue())\r\n+                .collect(Collectors.toList());\r\n+        tags.add(SERVICE_TAG);\r\n+        return tags;\r\n+    }\r\n+\r\n+    private String buildId(URL url) {\r\n+        // let's simply use url's hashcode to generate unique service id for now\r\n+        return Integer.toHexString(url.hashCode());\r\n+    }\r\n+\r\n+    private NewService.Check buildCheck(URL url) {\r\n+        NewService.Check check = new NewService.Check();\r\n+        check.setTtl((checkPassInterval / 1000) + \"s\");\r\n+        check.setDeregisterCriticalServiceAfter(url.getParameter(DEREGISTER_AFTER, DEFAULT_DEREGISTER_TIME));\r\n+        return check;\r\n+    }\r\n+\r\n+    private int buildWatchTimeout(URL url) {\r\n+        return url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT) / 1000;\r\n+    }\r\n+\r\n+    private class ConsulNotifier implements Runnable {\r\n+        private URL url;\r\n+        private long consulIndex;\r\n+        private boolean running;\r\n+\r\n+        ConsulNotifier(URL url, long consulIndex) {\r\n+            this.url = url;\r\n+            this.consulIndex = consulIndex;\r\n+            this.running = true;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            while (this.running) {\r\n+                if (ANY_VALUE.equals(url.getServiceInterface())) {\r\n+                    processServices();\r\n+                } else {\r\n+                    processService();\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        private void processService() {\r\n+            String service = url.getServiceKey();\r\n+            Response<List<HealthService>> response = getHealthServices(service, consulIndex, buildWatchTimeout(url));\r\n+            Long currentIndex = response.getConsulIndex();\r\n+            if (currentIndex != null && currentIndex > consulIndex) {\r\n+                consulIndex = currentIndex;\r\n+                List<HealthService> services = response.getValue();\r\n+                List<URL> urls = convert(services, url);\r\n+                for (NotifyListener listener : getSubscribed().get(url)) {\r\n+                    doNotify(url, listener, urls);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        private void processServices() {\r\n+            Response<Map<String, List<String>>> response = getAllServices(consulIndex, buildWatchTimeout(url));\r\n+            Long currentIndex = response.getConsulIndex();\r\n+            if (currentIndex != null && currentIndex > consulIndex) {\r\n+                consulIndex = currentIndex;\r\n+                List<HealthService> services = getHealthServices(response.getValue());\r\n+                List<URL> urls = convert(services, url);\r\n+                for (NotifyListener listener : getSubscribed().get(url)) {\r\n+                    doNotify(url, listener, urls);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        void stop() {\r\n+            this.running = false;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulRegistryFactory.java", "source2": "org/apache/dubbo/registry/consul/ConsulRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-\n-/**\n- * registry center factory implementation for consul\n- */\n-public class ConsulRegistryFactory extends AbstractRegistryFactory {\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        return new ConsulRegistry(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+\r\n+/**\r\n+ * registry center factory implementation for consul\r\n+ */\r\n+public class ConsulRegistryFactory extends AbstractRegistryFactory {\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        return new ConsulRegistry(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java", "source2": "org/apache/dubbo/registry/consul/ConsulServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,481 +1,481 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import com.ecwid.consul.v1.ConsistencyMode;\n-import com.ecwid.consul.v1.ConsulClient;\n-import com.ecwid.consul.v1.QueryParams;\n-import com.ecwid.consul.v1.Response;\n-import com.ecwid.consul.v1.agent.model.NewService;\n-import com.ecwid.consul.v1.catalog.CatalogServicesRequest;\n-import com.ecwid.consul.v1.health.HealthServicesRequest;\n-import com.ecwid.consul.v1.health.model.HealthService;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Base64;\n-import java.util.HashMap;\n-import java.util.LinkedHashMap;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.TimeUnit;\n-import java.util.stream.Collectors;\n-\n-import static java.util.concurrent.Executors.newCachedThreadPool;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR_CHAR;\n-import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.CHECK_PASS_INTERVAL;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_CHECK_PASS_INTERVAL;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_DEREGISTER_TIME;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_PORT;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_WATCH_TIMEOUT;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEREGISTER_AFTER;\n-import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.WATCH_TIMEOUT;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.ACL_TOKEN;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.CONSISTENCY_MODE;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.DEFAULT_ZONE_METADATA_NAME;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.INSTANCE_GROUP;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.INSTANCE_ZONE;\n-import static org.apache.dubbo.registry.consul.ConsulParameter.TAGS;\n-\n-/**\n- * 2019-07-31\n- */\n-public class ConsulServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ConsulServiceDiscovery.class);\n-\n-    private static final String QUERY_TAG = \"consul_query_tag\";\n-    private static final String REGISTER_TAG = \"consul_register_tag\";\n-\n-    private List<String> registeringTags = new ArrayList<>();\n-    private String tag;\n-    private ConsulClient client;\n-    private ExecutorService notifierExecutor = newCachedThreadPool(\n-            new NamedThreadFactory(\"dubbo-service-discovery-consul-notifier\", true));\n-    private Map<String, ConsulNotifier> notifiers = new ConcurrentHashMap<>();\n-    private TtlScheduler ttlScheduler;\n-    private long checkPassInterval;\n-    private URL url;\n-\n-    private String aclToken;\n-\n-    private List<String> tags;\n-\n-    private ConsistencyMode consistencyMode;\n-\n-    private String defaultZoneMetadataName;\n-\n-    /**\n-     * Service instance zone.\n-     */\n-    private String instanceZone;\n-\n-    /**\n-     * Service instance group.\n-     */\n-    private String instanceGroup;\n-\n-\n-    @Override\n-    public void onEvent(ServiceInstancesChangedEvent event) {\n-\n-    }\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.url = registryURL;\n-        String host = url.getHost();\n-        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\n-        checkPassInterval = url.getParameter(CHECK_PASS_INTERVAL, DEFAULT_CHECK_PASS_INTERVAL);\n-        client = new ConsulClient(host, port);\n-        ttlScheduler = new TtlScheduler(checkPassInterval, client);\n-        this.tag = registryURL.getParameter(QUERY_TAG);\n-        this.registeringTags.addAll(getRegisteringTags(url));\n-        this.aclToken = ACL_TOKEN.getValue(registryURL);\n-        this.tags = getTags(registryURL);\n-        this.consistencyMode = getConsistencyMode(registryURL);\n-        this.defaultZoneMetadataName = DEFAULT_ZONE_METADATA_NAME.getValue(registryURL);\n-        this.instanceZone = INSTANCE_ZONE.getValue(registryURL);\n-        this.instanceGroup = INSTANCE_GROUP.getValue(registryURL);\n-    }\n-\n-    /**\n-     * Get the {@link ConsistencyMode}\n-     *\n-     * @param registryURL the {@link URL} of registry\n-     * @return non-null, {@link ConsistencyMode#DEFAULT} as default\n-     * @sine 2.7.8\n-     */\n-    private ConsistencyMode getConsistencyMode(URL registryURL) {\n-        String value = CONSISTENCY_MODE.getValue(registryURL);\n-        if (StringUtils.isNotEmpty(value)) {\n-            return ConsistencyMode.valueOf(value);\n-        }\n-        return ConsistencyMode.DEFAULT;\n-    }\n-\n-    /**\n-     * Get the \"tags\" from the {@link URL} of registry\n-     *\n-     * @param registryURL the {@link URL} of registry\n-     * @return non-null\n-     * @sine 2.7.8\n-     */\n-    private List<String> getTags(URL registryURL) {\n-        String value = TAGS.getValue(registryURL);\n-        return StringUtils.splitToList(value, COMMA_SEPARATOR_CHAR);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    private List<String> getRegisteringTags(URL url) {\n-        List<String> tags = new ArrayList<>();\n-        String rawTag = url.getParameter(REGISTER_TAG);\n-        if (StringUtils.isNotEmpty(rawTag)) {\n-            tags.addAll(Arrays.asList(SEMICOLON_SPLIT_PATTERN.split(rawTag)));\n-        }\n-        return tags;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        notifiers.forEach((_k, notifier) -> {\n-            if (notifier != null) {\n-                notifier.stop();\n-            }\n-        });\n-        notifiers.clear();\n-        notifierExecutor.shutdownNow();\n-        ttlScheduler.stop();\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        NewService consulService = buildService(serviceInstance);\n-        ttlScheduler.add(consulService.getId());\n-        client.agentServiceRegister(consulService, aclToken);\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\n-        Set<String> serviceNames = listener.getServiceNames();\n-        for (String serviceName : serviceNames) {\n-            ConsulNotifier notifier = notifiers.get(serviceName);\n-            if (notifier == null) {\n-                Response<List<HealthService>> response = getHealthServices(serviceName, -1, buildWatchTimeout());\n-                Long consulIndex = response.getConsulIndex();\n-                notifier = new ConsulNotifier(serviceName, consulIndex);\n-            }\n-            notifierExecutor.execute(notifier);\n-        }\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        // TODO\n-        // client.catalogRegister(buildCatalogService(serviceInstance));\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        String id = buildId(serviceInstance);\n-        ttlScheduler.remove(id);\n-        client.agentServiceDeregister(id, aclToken);\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        CatalogServicesRequest request = CatalogServicesRequest.newBuilder()\n-                .setQueryParams(QueryParams.DEFAULT)\n-                .setToken(aclToken)\n-                .build();\n-        return this.client.getCatalogServices(request).getValue().keySet();\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-        Response<List<HealthService>> response = getHealthServices(serviceName, -1, buildWatchTimeout());\n-        Long consulIndex = response.getConsulIndex();\n-        ConsulNotifier notifier = notifiers.get(serviceName);\n-        if (notifier == null) {\n-            notifier = new ConsulNotifier(serviceName, consulIndex);\n-            notifiers.put(serviceName, notifier);\n-        }\n-        return convert(response.getValue());\n-    }\n-\n-    private List<ServiceInstance> convert(List<HealthService> services) {\n-        return services.stream()\n-                .map(HealthService::getService)\n-                .map(service -> {\n-                    ServiceInstance instance = new DefaultServiceInstance(\n-                            service.getId(),\n-                            service.getService(),\n-                            service.getAddress(),\n-                            service.getPort());\n-                    instance.getMetadata().putAll(getMetadata(service));\n-                    return instance;\n-                })\n-                .collect(Collectors.toList());\n-    }\n-\n-    private Response<List<HealthService>> getHealthServices(String service, long index, int watchTimeout) {\n-        HealthServicesRequest request = HealthServicesRequest.newBuilder()\n-                .setTag(tag)\n-                .setQueryParams(new QueryParams(watchTimeout, index))\n-                .setPassing(true)\n-                .build();\n-        return client.getHealthServices(service, request);\n-    }\n-\n-    private Map<String, String> getMetadata(HealthService.Service service) {\n-        Map<String, String> metadata = service.getMeta();\n-        metadata = decodeMetadata(metadata);\n-        if (CollectionUtils.isEmptyMap(metadata)) {\n-            metadata = getScCompatibleMetadata(service.getTags());\n-        }\n-        return metadata;\n-    }\n-\n-    private Map<String, String> getScCompatibleMetadata(List<String> tags) {\n-        LinkedHashMap<String, String> metadata = new LinkedHashMap<>();\n-        if (tags != null) {\n-            for (String tag : tags) {\n-                String[] parts = StringUtils.delimitedListToStringArray(tag, \"=\");\n-                switch (parts.length) {\n-                    case 0:\n-                        break;\n-                    case 1:\n-                        metadata.put(parts[0], parts[0]);\n-                        break;\n-                    case 2:\n-                        metadata.put(parts[0], parts[1]);\n-                        break;\n-                    default:\n-                        String[] end = Arrays.copyOfRange(parts, 1, parts.length);\n-                        metadata.put(parts[0], StringUtils.arrayToDelimitedString(end, \"=\"));\n-                        break;\n-                }\n-\n-            }\n-        }\n-\n-        return metadata;\n-    }\n-\n-    private NewService buildService(ServiceInstance serviceInstance) {\n-        NewService service = new NewService();\n-        service.setAddress(serviceInstance.getHost());\n-        service.setPort(serviceInstance.getPort());\n-        service.setId(buildId(serviceInstance));\n-        service.setName(serviceInstance.getServiceName());\n-        service.setCheck(buildCheck(serviceInstance));\n-        service.setTags(buildTags(serviceInstance));\n-        return service;\n-    }\n-\n-    private String buildId(ServiceInstance serviceInstance) {\n-        return Integer.toHexString(serviceInstance.hashCode());\n-    }\n-\n-    private List<String> buildTags(ServiceInstance serviceInstance) {\n-        List<String> tags = new LinkedList<>(this.tags);\n-\n-        if (StringUtils.isNotEmpty(instanceZone)) {\n-            tags.add(defaultZoneMetadataName + \"=\" + instanceZone);\n-        }\n-\n-        if (StringUtils.isNotEmpty(instanceGroup)) {\n-            tags.add(\"group=\" + instanceGroup);\n-        }\n-\n-        Map<String, String> params = serviceInstance.getMetadata();\n-        params.keySet().stream()\n-                .map(k -> k + \"=\" + params.get(k))\n-                .forEach(tags::add);\n-\n-        tags.addAll(registeringTags);\n-        return tags;\n-    }\n-\n-    private Map<String, String> buildMetadata(ServiceInstance serviceInstance) {\n-        Map<String, String> metadata = new LinkedHashMap<>();\n-        metadata.putAll(getScCompatibleMetadata(registeringTags));\n-        if (CollectionUtils.isNotEmptyMap(serviceInstance.getMetadata())) {\n-            metadata.putAll(serviceInstance.getMetadata());\n-        }\n-        metadata = encodeMetadata(metadata);\n-        return metadata;\n-    }\n-\n-    private Map<String, String> encodeMetadata(Map<String, String> metadata) {\n-        if (metadata == null) {\n-            return metadata;\n-        }\n-        Map<String, String> encoded = new HashMap<>(metadata.size());\n-        metadata.forEach((k, v) -> encoded.put(Base64.getEncoder().encodeToString(k.getBytes()), v));\n-        return encoded;\n-    }\n-\n-    private Map<String, String> decodeMetadata(Map<String, String> metadata) {\n-        if (metadata == null) {\n-            return metadata;\n-        }\n-        Map<String, String> decoded = new HashMap<>(metadata.size());\n-        metadata.forEach((k, v) -> decoded.put(new String(Base64.getDecoder().decode(k)), v));\n-        return decoded;\n-    }\n-\n-    private NewService.Check buildCheck(ServiceInstance serviceInstance) {\n-        NewService.Check check = new NewService.Check();\n-        check.setTtl((checkPassInterval / 1000) + \"s\");\n-        String deregister = serviceInstance.getMetadata().get(DEREGISTER_AFTER);\n-        check.setDeregisterCriticalServiceAfter(deregister == null ? DEFAULT_DEREGISTER_TIME : deregister);\n-        return check;\n-    }\n-\n-    private int buildWatchTimeout() {\n-        return url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT) / 1000;\n-    }\n-\n-    private class ConsulNotifier implements Runnable {\n-        private String serviceName;\n-        private long consulIndex;\n-        private boolean running;\n-\n-        ConsulNotifier(String serviceName, long consulIndex) {\n-            this.serviceName = serviceName;\n-            this.consulIndex = consulIndex;\n-            this.running = true;\n-        }\n-\n-        @Override\n-        public void run() {\n-            while (this.running) {\n-                processService();\n-            }\n-        }\n-\n-        private void processService() {\n-            Response<List<HealthService>> response = getHealthServices(serviceName, consulIndex, Integer.MAX_VALUE);\n-            Long currentIndex = response.getConsulIndex();\n-            if (currentIndex != null && currentIndex > consulIndex) {\n-                consulIndex = currentIndex;\n-                List<HealthService> services = response.getValue();\n-                List<ServiceInstance> serviceInstances = convert(services);\n-                dispatchServiceInstancesChangedEvent(serviceName, serviceInstances);\n-            }\n-        }\n-\n-        void stop() {\n-            this.running = false;\n-        }\n-    }\n-\n-    private static class TtlScheduler {\n-\n-        private static final Logger logger = LoggerFactory.getLogger(TtlScheduler.class);\n-\n-        private final Map<String, ScheduledFuture> serviceHeartbeats = new ConcurrentHashMap<>();\n-\n-        private ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();\n-\n-        private long checkInterval;\n-\n-        private ConsulClient client;\n-\n-        public TtlScheduler(long checkInterval, ConsulClient client) {\n-            this.checkInterval = checkInterval;\n-            this.client = client;\n-        }\n-\n-        /**\n-         * Add a service to the checks loop.\n-         *\n-         * @param instanceId instance id\n-         */\n-        public void add(String instanceId) {\n-            ScheduledFuture task = this.scheduler.scheduleAtFixedRate(\n-                    new ConsulHeartbeatTask(instanceId),\n-                    checkInterval / 8,\n-                    checkInterval / 8,\n-                    TimeUnit.MILLISECONDS);\n-            ScheduledFuture previousTask = this.serviceHeartbeats.put(instanceId, task);\n-            if (previousTask != null) {\n-                previousTask.cancel(true);\n-            }\n-        }\n-\n-        public void remove(String instanceId) {\n-            ScheduledFuture task = this.serviceHeartbeats.get(instanceId);\n-            if (task != null) {\n-                task.cancel(true);\n-            }\n-            this.serviceHeartbeats.remove(instanceId);\n-        }\n-\n-        private class ConsulHeartbeatTask implements Runnable {\n-\n-            private String checkId;\n-\n-            ConsulHeartbeatTask(String serviceId) {\n-                this.checkId = serviceId;\n-                if (!this.checkId.startsWith(\"service:\")) {\n-                    this.checkId = \"service:\" + this.checkId;\n-                }\n-            }\n-\n-            @Override\n-            public void run() {\n-                TtlScheduler.this.client.agentCheckPass(this.checkId);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"Sending consul heartbeat for: \" + this.checkId);\n-                }\n-            }\n-\n-        }\n-\n-        public void stop() {\n-            scheduler.shutdownNow();\n-        }\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import com.ecwid.consul.v1.ConsistencyMode;\r\n+import com.ecwid.consul.v1.ConsulClient;\r\n+import com.ecwid.consul.v1.QueryParams;\r\n+import com.ecwid.consul.v1.Response;\r\n+import com.ecwid.consul.v1.agent.model.NewService;\r\n+import com.ecwid.consul.v1.catalog.CatalogServicesRequest;\r\n+import com.ecwid.consul.v1.health.HealthServicesRequest;\r\n+import com.ecwid.consul.v1.health.model.HealthService;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Base64;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashMap;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static java.util.concurrent.Executors.newCachedThreadPool;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR_CHAR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SEMICOLON_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.CHECK_PASS_INTERVAL;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_CHECK_PASS_INTERVAL;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_DEREGISTER_TIME;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_PORT;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEFAULT_WATCH_TIMEOUT;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.DEREGISTER_AFTER;\r\n+import static org.apache.dubbo.registry.consul.AbstractConsulRegistry.WATCH_TIMEOUT;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.ACL_TOKEN;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.CONSISTENCY_MODE;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.DEFAULT_ZONE_METADATA_NAME;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.INSTANCE_GROUP;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.INSTANCE_ZONE;\r\n+import static org.apache.dubbo.registry.consul.ConsulParameter.TAGS;\r\n+\r\n+/**\r\n+ * 2019-07-31\r\n+ */\r\n+public class ConsulServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ConsulServiceDiscovery.class);\r\n+\r\n+    private static final String QUERY_TAG = \"consul_query_tag\";\r\n+    private static final String REGISTER_TAG = \"consul_register_tag\";\r\n+\r\n+    private List<String> registeringTags = new ArrayList<>();\r\n+    private String tag;\r\n+    private ConsulClient client;\r\n+    private ExecutorService notifierExecutor = newCachedThreadPool(\r\n+            new NamedThreadFactory(\"dubbo-service-discovery-consul-notifier\", true));\r\n+    private Map<String, ConsulNotifier> notifiers = new ConcurrentHashMap<>();\r\n+    private TtlScheduler ttlScheduler;\r\n+    private long checkPassInterval;\r\n+    private URL url;\r\n+\r\n+    private String aclToken;\r\n+\r\n+    private List<String> tags;\r\n+\r\n+    private ConsistencyMode consistencyMode;\r\n+\r\n+    private String defaultZoneMetadataName;\r\n+\r\n+    /**\r\n+     * Service instance zone.\r\n+     */\r\n+    private String instanceZone;\r\n+\r\n+    /**\r\n+     * Service instance group.\r\n+     */\r\n+    private String instanceGroup;\r\n+\r\n+\r\n+    @Override\r\n+    public void onEvent(ServiceInstancesChangedEvent event) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.url = registryURL;\r\n+        String host = url.getHost();\r\n+        int port = url.getPort() != 0 ? url.getPort() : DEFAULT_PORT;\r\n+        checkPassInterval = url.getParameter(CHECK_PASS_INTERVAL, DEFAULT_CHECK_PASS_INTERVAL);\r\n+        client = new ConsulClient(host, port);\r\n+        ttlScheduler = new TtlScheduler(checkPassInterval, client);\r\n+        this.tag = registryURL.getParameter(QUERY_TAG);\r\n+        this.registeringTags.addAll(getRegisteringTags(url));\r\n+        this.aclToken = ACL_TOKEN.getValue(registryURL);\r\n+        this.tags = getTags(registryURL);\r\n+        this.consistencyMode = getConsistencyMode(registryURL);\r\n+        this.defaultZoneMetadataName = DEFAULT_ZONE_METADATA_NAME.getValue(registryURL);\r\n+        this.instanceZone = INSTANCE_ZONE.getValue(registryURL);\r\n+        this.instanceGroup = INSTANCE_GROUP.getValue(registryURL);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the {@link ConsistencyMode}\r\n+     *\r\n+     * @param registryURL the {@link URL} of registry\r\n+     * @return non-null, {@link ConsistencyMode#DEFAULT} as default\r\n+     * @sine 2.7.8\r\n+     */\r\n+    private ConsistencyMode getConsistencyMode(URL registryURL) {\r\n+        String value = CONSISTENCY_MODE.getValue(registryURL);\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            return ConsistencyMode.valueOf(value);\r\n+        }\r\n+        return ConsistencyMode.DEFAULT;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the \"tags\" from the {@link URL} of registry\r\n+     *\r\n+     * @param registryURL the {@link URL} of registry\r\n+     * @return non-null\r\n+     * @sine 2.7.8\r\n+     */\r\n+    private List<String> getTags(URL registryURL) {\r\n+        String value = TAGS.getValue(registryURL);\r\n+        return StringUtils.splitToList(value, COMMA_SEPARATOR_CHAR);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    private List<String> getRegisteringTags(URL url) {\r\n+        List<String> tags = new ArrayList<>();\r\n+        String rawTag = url.getParameter(REGISTER_TAG);\r\n+        if (StringUtils.isNotEmpty(rawTag)) {\r\n+            tags.addAll(Arrays.asList(SEMICOLON_SPLIT_PATTERN.split(rawTag)));\r\n+        }\r\n+        return tags;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        notifiers.forEach((_k, notifier) -> {\r\n+            if (notifier != null) {\r\n+                notifier.stop();\r\n+            }\r\n+        });\r\n+        notifiers.clear();\r\n+        notifierExecutor.shutdownNow();\r\n+        ttlScheduler.stop();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        NewService consulService = buildService(serviceInstance);\r\n+        ttlScheduler.add(consulService.getId());\r\n+        client.agentServiceRegister(consulService, aclToken);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\r\n+        Set<String> serviceNames = listener.getServiceNames();\r\n+        for (String serviceName : serviceNames) {\r\n+            ConsulNotifier notifier = notifiers.get(serviceName);\r\n+            if (notifier == null) {\r\n+                Response<List<HealthService>> response = getHealthServices(serviceName, -1, buildWatchTimeout());\r\n+                Long consulIndex = response.getConsulIndex();\r\n+                notifier = new ConsulNotifier(serviceName, consulIndex);\r\n+            }\r\n+            notifierExecutor.execute(notifier);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        // TODO\r\n+        // client.catalogRegister(buildCatalogService(serviceInstance));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        String id = buildId(serviceInstance);\r\n+        ttlScheduler.remove(id);\r\n+        client.agentServiceDeregister(id, aclToken);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        CatalogServicesRequest request = CatalogServicesRequest.newBuilder()\r\n+                .setQueryParams(QueryParams.DEFAULT)\r\n+                .setToken(aclToken)\r\n+                .build();\r\n+        return this.client.getCatalogServices(request).getValue().keySet();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+        Response<List<HealthService>> response = getHealthServices(serviceName, -1, buildWatchTimeout());\r\n+        Long consulIndex = response.getConsulIndex();\r\n+        ConsulNotifier notifier = notifiers.get(serviceName);\r\n+        if (notifier == null) {\r\n+            notifier = new ConsulNotifier(serviceName, consulIndex);\r\n+            notifiers.put(serviceName, notifier);\r\n+        }\r\n+        return convert(response.getValue());\r\n+    }\r\n+\r\n+    private List<ServiceInstance> convert(List<HealthService> services) {\r\n+        return services.stream()\r\n+                .map(HealthService::getService)\r\n+                .map(service -> {\r\n+                    ServiceInstance instance = new DefaultServiceInstance(\r\n+                            service.getId(),\r\n+                            service.getService(),\r\n+                            service.getAddress(),\r\n+                            service.getPort());\r\n+                    instance.getMetadata().putAll(getMetadata(service));\r\n+                    return instance;\r\n+                })\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    private Response<List<HealthService>> getHealthServices(String service, long index, int watchTimeout) {\r\n+        HealthServicesRequest request = HealthServicesRequest.newBuilder()\r\n+                .setTag(tag)\r\n+                .setQueryParams(new QueryParams(watchTimeout, index))\r\n+                .setPassing(true)\r\n+                .build();\r\n+        return client.getHealthServices(service, request);\r\n+    }\r\n+\r\n+    private Map<String, String> getMetadata(HealthService.Service service) {\r\n+        Map<String, String> metadata = service.getMeta();\r\n+        metadata = decodeMetadata(metadata);\r\n+        if (CollectionUtils.isEmptyMap(metadata)) {\r\n+            metadata = getScCompatibleMetadata(service.getTags());\r\n+        }\r\n+        return metadata;\r\n+    }\r\n+\r\n+    private Map<String, String> getScCompatibleMetadata(List<String> tags) {\r\n+        LinkedHashMap<String, String> metadata = new LinkedHashMap<>();\r\n+        if (tags != null) {\r\n+            for (String tag : tags) {\r\n+                String[] parts = StringUtils.delimitedListToStringArray(tag, \"=\");\r\n+                switch (parts.length) {\r\n+                    case 0:\r\n+                        break;\r\n+                    case 1:\r\n+                        metadata.put(parts[0], parts[0]);\r\n+                        break;\r\n+                    case 2:\r\n+                        metadata.put(parts[0], parts[1]);\r\n+                        break;\r\n+                    default:\r\n+                        String[] end = Arrays.copyOfRange(parts, 1, parts.length);\r\n+                        metadata.put(parts[0], StringUtils.arrayToDelimitedString(end, \"=\"));\r\n+                        break;\r\n+                }\r\n+\r\n+            }\r\n+        }\r\n+\r\n+        return metadata;\r\n+    }\r\n+\r\n+    private NewService buildService(ServiceInstance serviceInstance) {\r\n+        NewService service = new NewService();\r\n+        service.setAddress(serviceInstance.getHost());\r\n+        service.setPort(serviceInstance.getPort());\r\n+        service.setId(buildId(serviceInstance));\r\n+        service.setName(serviceInstance.getServiceName());\r\n+        service.setCheck(buildCheck(serviceInstance));\r\n+        service.setTags(buildTags(serviceInstance));\r\n+        return service;\r\n+    }\r\n+\r\n+    private String buildId(ServiceInstance serviceInstance) {\r\n+        return Integer.toHexString(serviceInstance.hashCode());\r\n+    }\r\n+\r\n+    private List<String> buildTags(ServiceInstance serviceInstance) {\r\n+        List<String> tags = new LinkedList<>(this.tags);\r\n+\r\n+        if (StringUtils.isNotEmpty(instanceZone)) {\r\n+            tags.add(defaultZoneMetadataName + \"=\" + instanceZone);\r\n+        }\r\n+\r\n+        if (StringUtils.isNotEmpty(instanceGroup)) {\r\n+            tags.add(\"group=\" + instanceGroup);\r\n+        }\r\n+\r\n+        Map<String, String> params = serviceInstance.getMetadata();\r\n+        params.keySet().stream()\r\n+                .map(k -> k + \"=\" + params.get(k))\r\n+                .forEach(tags::add);\r\n+\r\n+        tags.addAll(registeringTags);\r\n+        return tags;\r\n+    }\r\n+\r\n+    private Map<String, String> buildMetadata(ServiceInstance serviceInstance) {\r\n+        Map<String, String> metadata = new LinkedHashMap<>();\r\n+        metadata.putAll(getScCompatibleMetadata(registeringTags));\r\n+        if (CollectionUtils.isNotEmptyMap(serviceInstance.getMetadata())) {\r\n+            metadata.putAll(serviceInstance.getMetadata());\r\n+        }\r\n+        metadata = encodeMetadata(metadata);\r\n+        return metadata;\r\n+    }\r\n+\r\n+    private Map<String, String> encodeMetadata(Map<String, String> metadata) {\r\n+        if (metadata == null) {\r\n+            return metadata;\r\n+        }\r\n+        Map<String, String> encoded = new HashMap<>(metadata.size());\r\n+        metadata.forEach((k, v) -> encoded.put(Base64.getEncoder().encodeToString(k.getBytes()), v));\r\n+        return encoded;\r\n+    }\r\n+\r\n+    private Map<String, String> decodeMetadata(Map<String, String> metadata) {\r\n+        if (metadata == null) {\r\n+            return metadata;\r\n+        }\r\n+        Map<String, String> decoded = new HashMap<>(metadata.size());\r\n+        metadata.forEach((k, v) -> decoded.put(new String(Base64.getDecoder().decode(k)), v));\r\n+        return decoded;\r\n+    }\r\n+\r\n+    private NewService.Check buildCheck(ServiceInstance serviceInstance) {\r\n+        NewService.Check check = new NewService.Check();\r\n+        check.setTtl((checkPassInterval / 1000) + \"s\");\r\n+        String deregister = serviceInstance.getMetadata().get(DEREGISTER_AFTER);\r\n+        check.setDeregisterCriticalServiceAfter(deregister == null ? DEFAULT_DEREGISTER_TIME : deregister);\r\n+        return check;\r\n+    }\r\n+\r\n+    private int buildWatchTimeout() {\r\n+        return url.getParameter(WATCH_TIMEOUT, DEFAULT_WATCH_TIMEOUT) / 1000;\r\n+    }\r\n+\r\n+    private class ConsulNotifier implements Runnable {\r\n+        private String serviceName;\r\n+        private long consulIndex;\r\n+        private boolean running;\r\n+\r\n+        ConsulNotifier(String serviceName, long consulIndex) {\r\n+            this.serviceName = serviceName;\r\n+            this.consulIndex = consulIndex;\r\n+            this.running = true;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            while (this.running) {\r\n+                processService();\r\n+            }\r\n+        }\r\n+\r\n+        private void processService() {\r\n+            Response<List<HealthService>> response = getHealthServices(serviceName, consulIndex, Integer.MAX_VALUE);\r\n+            Long currentIndex = response.getConsulIndex();\r\n+            if (currentIndex != null && currentIndex > consulIndex) {\r\n+                consulIndex = currentIndex;\r\n+                List<HealthService> services = response.getValue();\r\n+                List<ServiceInstance> serviceInstances = convert(services);\r\n+                dispatchServiceInstancesChangedEvent(serviceName, serviceInstances);\r\n+            }\r\n+        }\r\n+\r\n+        void stop() {\r\n+            this.running = false;\r\n+        }\r\n+    }\r\n+\r\n+    private static class TtlScheduler {\r\n+\r\n+        private static final Logger logger = LoggerFactory.getLogger(TtlScheduler.class);\r\n+\r\n+        private final Map<String, ScheduledFuture> serviceHeartbeats = new ConcurrentHashMap<>();\r\n+\r\n+        private ScheduledExecutorService scheduler = Executors.newSingleThreadScheduledExecutor();\r\n+\r\n+        private long checkInterval;\r\n+\r\n+        private ConsulClient client;\r\n+\r\n+        public TtlScheduler(long checkInterval, ConsulClient client) {\r\n+            this.checkInterval = checkInterval;\r\n+            this.client = client;\r\n+        }\r\n+\r\n+        /**\r\n+         * Add a service to the checks loop.\r\n+         *\r\n+         * @param instanceId instance id\r\n+         */\r\n+        public void add(String instanceId) {\r\n+            ScheduledFuture task = this.scheduler.scheduleAtFixedRate(\r\n+                    new ConsulHeartbeatTask(instanceId),\r\n+                    checkInterval / 8,\r\n+                    checkInterval / 8,\r\n+                    TimeUnit.MILLISECONDS);\r\n+            ScheduledFuture previousTask = this.serviceHeartbeats.put(instanceId, task);\r\n+            if (previousTask != null) {\r\n+                previousTask.cancel(true);\r\n+            }\r\n+        }\r\n+\r\n+        public void remove(String instanceId) {\r\n+            ScheduledFuture task = this.serviceHeartbeats.get(instanceId);\r\n+            if (task != null) {\r\n+                task.cancel(true);\r\n+            }\r\n+            this.serviceHeartbeats.remove(instanceId);\r\n+        }\r\n+\r\n+        private class ConsulHeartbeatTask implements Runnable {\r\n+\r\n+            private String checkId;\r\n+\r\n+            ConsulHeartbeatTask(String serviceId) {\r\n+                this.checkId = serviceId;\r\n+                if (!this.checkId.startsWith(\"service:\")) {\r\n+                    this.checkId = \"service:\" + this.checkId;\r\n+                }\r\n+            }\r\n+\r\n+            @Override\r\n+            public void run() {\r\n+                TtlScheduler.this.client.agentCheckPass(this.checkId);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"Sending consul heartbeat for: \" + this.checkId);\r\n+                }\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        public void stop() {\r\n+            scheduler.shutdownNow();\r\n+        }\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new ConsulServiceDiscovery();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new ConsulServiceDiscovery();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~HEAD", "source2": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~HEAD", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new ConsulServiceDiscovery();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new ConsulServiceDiscovery();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~dubbo-master", "source2": "org/apache/dubbo/registry/consul/ConsulServiceDiscoveryFactory.java~dubbo-master", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.consul;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new ConsulServiceDiscovery();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.consul;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class ConsulServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new ConsulServiceDiscovery();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/etcd/EtcdRegistry.java", "source2": "org/apache/dubbo/registry/etcd/EtcdRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,355 +1,355 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-import org.apache.dubbo.remoting.etcd.ChildListener;\n-import org.apache.dubbo.remoting.etcd.Constants;\n-import org.apache.dubbo.remoting.etcd.EtcdClient;\n-import org.apache.dubbo.remoting.etcd.EtcdTransporter;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-import org.apache.dubbo.remoting.etcd.option.OptionUtil;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.List;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\n-import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\n-\n-\n-/**\n- * Support for ectd3 registry.\n- */\n-public class EtcdRegistry extends FailbackRegistry {\n-\n-    private final static int DEFAULT_ETCD_PORT = 2379;\n-\n-    private final static String DEFAULT_ROOT = \"dubbo\";\n-\n-    private final String root;\n-\n-    private final Set<String> anyServices = new ConcurrentHashSet<>();\n-\n-    private final ConcurrentMap<URL, ConcurrentMap<NotifyListener, ChildListener>> etcdListeners = new ConcurrentHashMap<>();\n-    private final EtcdClient etcdClient;\n-\n-    public EtcdRegistry(URL url, EtcdTransporter etcdTransporter) {\n-        super(url);\n-        if (url.isAnyHost()) {\n-            throw new IllegalStateException(\"registry address is invalid, actual: '\" + url.getHost() + \"'\");\n-        }\n-        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\n-        if (!group.startsWith(PATH_SEPARATOR)) {\n-            group = PATH_SEPARATOR + group;\n-        }\n-        this.root = group;\n-        etcdClient = etcdTransporter.connect(url);\n-\n-        etcdClient.addStateListener(state -> {\n-            if (state == StateListener.CONNECTED) {\n-                try {\n-                    recover();\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-        });\n-    }\n-\n-    protected static String appendDefaultPort(String address) {\n-        if (address != null && address.length() > 0) {\n-            int i = address.indexOf(':');\n-            if (i < 0) {\n-                return address + \":\" + DEFAULT_ETCD_PORT;\n-            } else if (Integer.parseInt(address.substring(i + 1)) == 0) {\n-                return address.substring(0, i + 1) + DEFAULT_ETCD_PORT;\n-            }\n-        }\n-        return address;\n-    }\n-\n-    @Override\n-    public void doRegister(URL url) {\n-        try {\n-            String path = toUrlPath(url);\n-            if (url.getParameter(DYNAMIC_KEY, true)) {\n-                etcdClient.createEphemeral(path);\n-                return;\n-            }\n-            etcdClient.create(path);\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to register \" + url + \" to etcd \" + getUrl()\n-                    + \", cause: \" + (OptionUtil.isProtocolError(e)\n-                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\n-                    : e.getMessage()), e);\n-        }\n-    }\n-\n-    @Override\n-    public void doUnregister(URL url) {\n-        try {\n-            String path = toUrlPath(url);\n-            etcdClient.delete(path);\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to unregister \" + url + \" to etcd \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void doSubscribe(URL url, NotifyListener listener) {\n-        try {\n-            if (ANY_VALUE.equals(url.getServiceInterface())) {\n-                String root = toRootPath();\n-\n-                /*\n-                 *  if we are interested in all interfaces,\n-                 *  find out the current container or create one for the url, put or get only once.\n-                 */\n-                ConcurrentMap<NotifyListener, ChildListener> listeners =\n-                        Optional.ofNullable(etcdListeners.get(url))\n-                                .orElseGet(() -> {\n-                                    ConcurrentMap<NotifyListener, ChildListener> container, prev;\n-                                    prev = etcdListeners.putIfAbsent(url, container = new ConcurrentHashMap<>());\n-                                    return prev != null ? prev : container;\n-                                });\n-\n-                /*\n-                 *  if we have no interface watcher listener,\n-                 *  find the current listener or create one for the current root, put or get only once.\n-                 */\n-                ChildListener interfaceListener =\n-                        Optional.ofNullable(listeners.get(listener))\n-                                .orElseGet(() -> {\n-                                    ChildListener childListener, prev;\n-                                    prev = listeners.putIfAbsent(listener, childListener = (parentPath, currentChildren) -> {\n-                                        /*\n-                                         *  because etcd3 does not support direct children watch events,\n-                                         *  we should filter not interface events. if we watch /dubbo\n-                                         *  and /dubbo/interface, when we put a key-value pair {/dubbo/interface/hello hello},\n-                                         *  we will got events in watching path /dubbo.\n-                                         */\n-                                        for (String child : currentChildren) {\n-                                            child = URL.decode(child);\n-                                            if (!anyServices.contains(child)) {\n-                                                anyServices.add(child);\n-                                                /*\n-                                                 *  if new interface event arrived, we watch their direct children,\n-                                                 *  eg: /dubbo/interface, /dubbo/interface and so on.\n-                                                 */\n-                                                subscribe(url.setPath(child).addParameters(INTERFACE_KEY, child,\n-                                                        CHECK_KEY, String.valueOf(false)), listener);\n-                                            }\n-                                        }\n-                                    });\n-                                    return prev != null ? prev : childListener;\n-                                });\n-\n-                etcdClient.create(root);\n-                /*\n-                 * at the first time, we want to pull already interface and then watch their direct children,\n-                 *  eg: /dubbo/interface, /dubbo/interface and so on.\n-                 */\n-                List<String> services = etcdClient.addChildListener(root, interfaceListener);\n-                for (String service : services) {\n-                    service = URL.decode(service);\n-                    anyServices.add(service);\n-                    subscribe(url.setPath(service).addParameters(INTERFACE_KEY, service,\n-                            CHECK_KEY, String.valueOf(false)), listener);\n-                }\n-            } else {\n-                List<URL> urls = new ArrayList<>();\n-                for (String path : toCategoriesPath(url)) {\n-\n-                    /*\n-                     *  if we are interested in special categories (providers, consumers, routers and so on),\n-                     *  we find out the current container or create one for the url, put or get only once.\n-                     */\n-                    ConcurrentMap<NotifyListener, ChildListener> listeners =\n-                            Optional.ofNullable(etcdListeners.get(url))\n-                                    .orElseGet(() -> {\n-                                        ConcurrentMap<NotifyListener, ChildListener> container, prev;\n-                                        prev = etcdListeners.putIfAbsent(url,\n-                                                container = new ConcurrentHashMap<>());\n-                                        return prev != null ? prev : container;\n-                                    });\n-\n-                    /*\n-                     *  if we have no category watcher listener,\n-                     *  we find out the current listener or create one for the current category, put or get only once.\n-                     */\n-                    ChildListener childListener =\n-                            Optional.ofNullable(listeners.get(listener))\n-                                    .orElseGet(() -> {\n-                                        ChildListener watchListener, prev;\n-                                        prev = listeners.putIfAbsent(listener, watchListener = (parentPath, currentChildren) -> EtcdRegistry.this.notify(url, listener,\n-                                                toUrlsWithEmpty(url, parentPath, currentChildren)));\n-                                        return prev != null ? prev : watchListener;\n-                                    });\n-\n-                    etcdClient.create(path);\n-                    /*\n-                     * at the first time, we want to pull already category and then watch their direct children,\n-                     *  eg: /dubbo/interface/providers, /dubbo/interface/consumers and so on.\n-                     */\n-                    List<String> children = etcdClient.addChildListener(path, childListener);\n-                    if (children != null) {\n-                        urls.addAll(toUrlsWithEmpty(url, path, children));\n-                    }\n-                }\n-                notify(url, listener, urls);\n-            }\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to subscribe \" + url + \" to etcd \" + getUrl()\n-                    + \", cause: \" + (OptionUtil.isProtocolError(e)\n-                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\n-                    : e.getMessage()), e);\n-        }\n-    }\n-\n-    @Override\n-    public void doUnsubscribe(URL url, NotifyListener listener) {\n-        ConcurrentMap<NotifyListener, ChildListener> listeners = etcdListeners.get(url);\n-        if (listeners != null) {\n-            ChildListener etcdListener = listeners.get(listener);\n-            if (etcdListener != null) {\n-                // maybe url has many subscribed paths\n-                for (String path : toUnsubscribedPath(url)) {\n-                    etcdClient.removeChildListener(path, etcdListener);\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return etcdClient.isConnected();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-        try {\n-            etcdClient.close();\n-        } catch (Exception e) {\n-            logger.warn(\"Failed to close etcd client \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    protected String toRootDir() {\n-        if (root.startsWith(PATH_SEPARATOR)) {\n-            return root;\n-        }\n-        return PATH_SEPARATOR + root;\n-    }\n-\n-    protected String toRootPath() {\n-        return root;\n-    }\n-\n-    protected String toServicePath(URL url) {\n-        String name = url.getServiceInterface();\n-        if (ANY_VALUE.equals(name)) {\n-            return toRootPath();\n-        }\n-        return toRootDir() + PATH_SEPARATOR + URL.encode(name);\n-    }\n-\n-    protected String[] toCategoriesPath(URL url) {\n-        String[] categories;\n-        if (ANY_VALUE.equals(url.getParameter(CATEGORY_KEY))) {\n-            categories = new String[]{PROVIDERS_CATEGORY, CONSUMERS_CATEGORY, ROUTERS_CATEGORY, CONFIGURATORS_CATEGORY};\n-        } else {\n-            categories = url.getParameter(CATEGORY_KEY, new String[]{DEFAULT_CATEGORY});\n-        }\n-        String[] paths = new String[categories.length];\n-        for (int i = 0; i < categories.length; i++) {\n-            paths[i] = toServicePath(url) + PATH_SEPARATOR + categories[i];\n-        }\n-        return paths;\n-    }\n-\n-    protected String toCategoryPath(URL url) {\n-        return toServicePath(url) + PATH_SEPARATOR + url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY);\n-    }\n-\n-    protected String toUrlPath(URL url) {\n-        return toCategoryPath(url) + PATH_SEPARATOR + URL.encode(url.toFullString());\n-    }\n-\n-    protected List<String> toUnsubscribedPath(URL url) {\n-        List<String> categories = new ArrayList<>();\n-        if (ANY_VALUE.equals(url.getServiceInterface())) {\n-            String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\n-            if (!group.startsWith(PATH_SEPARATOR)) {\n-                group = PATH_SEPARATOR + group;\n-            }\n-            categories.add(group);\n-            return categories;\n-        } else {\n-            categories.addAll(Arrays.asList(toCategoriesPath(url)));\n-        }\n-        return categories;\n-    }\n-\n-    protected List<URL> toUrlsWithoutEmpty(URL consumer, List<String> providers) {\n-        List<URL> urls = new ArrayList<>();\n-        if (providers != null && providers.size() > 0) {\n-            for (String provider : providers) {\n-                provider = URL.decode(provider);\n-                if (provider.contains(Constants.HTTP_SUBFIX_KEY)) {\n-                    URL url = URL.valueOf(provider);\n-                    if (UrlUtils.isMatch(consumer, url)) {\n-                        urls.add(url);\n-                    }\n-                }\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    protected List<URL> toUrlsWithEmpty(URL consumer, String path, List<String> providers) {\n-        List<URL> urls = toUrlsWithoutEmpty(consumer, providers);\n-        if (urls == null || urls.isEmpty()) {\n-            int i = path.lastIndexOf('/');\n-            String category = i < 0 ? path : path.substring(i + 1);\n-            URL empty = consumer.setProtocol(EMPTY_PROTOCOL).addParameter(CATEGORY_KEY, category);\n-            urls.add(empty);\n-        }\n-        return urls;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+import org.apache.dubbo.remoting.etcd.ChildListener;\r\n+import org.apache.dubbo.remoting.etcd.Constants;\r\n+import org.apache.dubbo.remoting.etcd.EtcdClient;\r\n+import org.apache.dubbo.remoting.etcd.EtcdTransporter;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+import org.apache.dubbo.remoting.etcd.option.OptionUtil;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\r\n+import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\r\n+\r\n+\r\n+/**\r\n+ * Support for ectd3 registry.\r\n+ */\r\n+public class EtcdRegistry extends FailbackRegistry {\r\n+\r\n+    private final static int DEFAULT_ETCD_PORT = 2379;\r\n+\r\n+    private final static String DEFAULT_ROOT = \"dubbo\";\r\n+\r\n+    private final String root;\r\n+\r\n+    private final Set<String> anyServices = new ConcurrentHashSet<>();\r\n+\r\n+    private final ConcurrentMap<URL, ConcurrentMap<NotifyListener, ChildListener>> etcdListeners = new ConcurrentHashMap<>();\r\n+    private final EtcdClient etcdClient;\r\n+\r\n+    public EtcdRegistry(URL url, EtcdTransporter etcdTransporter) {\r\n+        super(url);\r\n+        if (url.isAnyHost()) {\r\n+            throw new IllegalStateException(\"registry address is invalid, actual: '\" + url.getHost() + \"'\");\r\n+        }\r\n+        String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\r\n+        if (!group.startsWith(PATH_SEPARATOR)) {\r\n+            group = PATH_SEPARATOR + group;\r\n+        }\r\n+        this.root = group;\r\n+        etcdClient = etcdTransporter.connect(url);\r\n+\r\n+        etcdClient.addStateListener(state -> {\r\n+            if (state == StateListener.CONNECTED) {\r\n+                try {\r\n+                    recover();\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    protected static String appendDefaultPort(String address) {\r\n+        if (address != null && address.length() > 0) {\r\n+            int i = address.indexOf(':');\r\n+            if (i < 0) {\r\n+                return address + \":\" + DEFAULT_ETCD_PORT;\r\n+            } else if (Integer.parseInt(address.substring(i + 1)) == 0) {\r\n+                return address.substring(0, i + 1) + DEFAULT_ETCD_PORT;\r\n+            }\r\n+        }\r\n+        return address;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(URL url) {\r\n+        try {\r\n+            String path = toUrlPath(url);\r\n+            if (url.getParameter(DYNAMIC_KEY, true)) {\r\n+                etcdClient.createEphemeral(path);\r\n+                return;\r\n+            }\r\n+            etcdClient.create(path);\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to register \" + url + \" to etcd \" + getUrl()\r\n+                    + \", cause: \" + (OptionUtil.isProtocolError(e)\r\n+                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\r\n+                    : e.getMessage()), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnregister(URL url) {\r\n+        try {\r\n+            String path = toUrlPath(url);\r\n+            etcdClient.delete(path);\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to unregister \" + url + \" to etcd \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doSubscribe(URL url, NotifyListener listener) {\r\n+        try {\r\n+            if (ANY_VALUE.equals(url.getServiceInterface())) {\r\n+                String root = toRootPath();\r\n+\r\n+                /*\r\n+                 *  if we are interested in all interfaces,\r\n+                 *  find out the current container or create one for the url, put or get only once.\r\n+                 */\r\n+                ConcurrentMap<NotifyListener, ChildListener> listeners =\r\n+                        Optional.ofNullable(etcdListeners.get(url))\r\n+                                .orElseGet(() -> {\r\n+                                    ConcurrentMap<NotifyListener, ChildListener> container, prev;\r\n+                                    prev = etcdListeners.putIfAbsent(url, container = new ConcurrentHashMap<>());\r\n+                                    return prev != null ? prev : container;\r\n+                                });\r\n+\r\n+                /*\r\n+                 *  if we have no interface watcher listener,\r\n+                 *  find the current listener or create one for the current root, put or get only once.\r\n+                 */\r\n+                ChildListener interfaceListener =\r\n+                        Optional.ofNullable(listeners.get(listener))\r\n+                                .orElseGet(() -> {\r\n+                                    ChildListener childListener, prev;\r\n+                                    prev = listeners.putIfAbsent(listener, childListener = (parentPath, currentChildren) -> {\r\n+                                        /*\r\n+                                         *  because etcd3 does not support direct children watch events,\r\n+                                         *  we should filter not interface events. if we watch /dubbo\r\n+                                         *  and /dubbo/interface, when we put a key-value pair {/dubbo/interface/hello hello},\r\n+                                         *  we will got events in watching path /dubbo.\r\n+                                         */\r\n+                                        for (String child : currentChildren) {\r\n+                                            child = URL.decode(child);\r\n+                                            if (!anyServices.contains(child)) {\r\n+                                                anyServices.add(child);\r\n+                                                /*\r\n+                                                 *  if new interface event arrived, we watch their direct children,\r\n+                                                 *  eg: /dubbo/interface, /dubbo/interface and so on.\r\n+                                                 */\r\n+                                                subscribe(url.setPath(child).addParameters(INTERFACE_KEY, child,\r\n+                                                        CHECK_KEY, String.valueOf(false)), listener);\r\n+                                            }\r\n+                                        }\r\n+                                    });\r\n+                                    return prev != null ? prev : childListener;\r\n+                                });\r\n+\r\n+                etcdClient.create(root);\r\n+                /*\r\n+                 * at the first time, we want to pull already interface and then watch their direct children,\r\n+                 *  eg: /dubbo/interface, /dubbo/interface and so on.\r\n+                 */\r\n+                List<String> services = etcdClient.addChildListener(root, interfaceListener);\r\n+                for (String service : services) {\r\n+                    service = URL.decode(service);\r\n+                    anyServices.add(service);\r\n+                    subscribe(url.setPath(service).addParameters(INTERFACE_KEY, service,\r\n+                            CHECK_KEY, String.valueOf(false)), listener);\r\n+                }\r\n+            } else {\r\n+                List<URL> urls = new ArrayList<>();\r\n+                for (String path : toCategoriesPath(url)) {\r\n+\r\n+                    /*\r\n+                     *  if we are interested in special categories (providers, consumers, routers and so on),\r\n+                     *  we find out the current container or create one for the url, put or get only once.\r\n+                     */\r\n+                    ConcurrentMap<NotifyListener, ChildListener> listeners =\r\n+                            Optional.ofNullable(etcdListeners.get(url))\r\n+                                    .orElseGet(() -> {\r\n+                                        ConcurrentMap<NotifyListener, ChildListener> container, prev;\r\n+                                        prev = etcdListeners.putIfAbsent(url,\r\n+                                                container = new ConcurrentHashMap<>());\r\n+                                        return prev != null ? prev : container;\r\n+                                    });\r\n+\r\n+                    /*\r\n+                     *  if we have no category watcher listener,\r\n+                     *  we find out the current listener or create one for the current category, put or get only once.\r\n+                     */\r\n+                    ChildListener childListener =\r\n+                            Optional.ofNullable(listeners.get(listener))\r\n+                                    .orElseGet(() -> {\r\n+                                        ChildListener watchListener, prev;\r\n+                                        prev = listeners.putIfAbsent(listener, watchListener = (parentPath, currentChildren) -> EtcdRegistry.this.notify(url, listener,\r\n+                                                toUrlsWithEmpty(url, parentPath, currentChildren)));\r\n+                                        return prev != null ? prev : watchListener;\r\n+                                    });\r\n+\r\n+                    etcdClient.create(path);\r\n+                    /*\r\n+                     * at the first time, we want to pull already category and then watch their direct children,\r\n+                     *  eg: /dubbo/interface/providers, /dubbo/interface/consumers and so on.\r\n+                     */\r\n+                    List<String> children = etcdClient.addChildListener(path, childListener);\r\n+                    if (children != null) {\r\n+                        urls.addAll(toUrlsWithEmpty(url, path, children));\r\n+                    }\r\n+                }\r\n+                notify(url, listener, urls);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to subscribe \" + url + \" to etcd \" + getUrl()\r\n+                    + \", cause: \" + (OptionUtil.isProtocolError(e)\r\n+                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\r\n+                    : e.getMessage()), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnsubscribe(URL url, NotifyListener listener) {\r\n+        ConcurrentMap<NotifyListener, ChildListener> listeners = etcdListeners.get(url);\r\n+        if (listeners != null) {\r\n+            ChildListener etcdListener = listeners.get(listener);\r\n+            if (etcdListener != null) {\r\n+                // maybe url has many subscribed paths\r\n+                for (String path : toUnsubscribedPath(url)) {\r\n+                    etcdClient.removeChildListener(path, etcdListener);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return etcdClient.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+        try {\r\n+            etcdClient.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(\"Failed to close etcd client \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    protected String toRootDir() {\r\n+        if (root.startsWith(PATH_SEPARATOR)) {\r\n+            return root;\r\n+        }\r\n+        return PATH_SEPARATOR + root;\r\n+    }\r\n+\r\n+    protected String toRootPath() {\r\n+        return root;\r\n+    }\r\n+\r\n+    protected String toServicePath(URL url) {\r\n+        String name = url.getServiceInterface();\r\n+        if (ANY_VALUE.equals(name)) {\r\n+            return toRootPath();\r\n+        }\r\n+        return toRootDir() + PATH_SEPARATOR + URL.encode(name);\r\n+    }\r\n+\r\n+    protected String[] toCategoriesPath(URL url) {\r\n+        String[] categories;\r\n+        if (ANY_VALUE.equals(url.getParameter(CATEGORY_KEY))) {\r\n+            categories = new String[]{PROVIDERS_CATEGORY, CONSUMERS_CATEGORY, ROUTERS_CATEGORY, CONFIGURATORS_CATEGORY};\r\n+        } else {\r\n+            categories = url.getParameter(CATEGORY_KEY, new String[]{DEFAULT_CATEGORY});\r\n+        }\r\n+        String[] paths = new String[categories.length];\r\n+        for (int i = 0; i < categories.length; i++) {\r\n+            paths[i] = toServicePath(url) + PATH_SEPARATOR + categories[i];\r\n+        }\r\n+        return paths;\r\n+    }\r\n+\r\n+    protected String toCategoryPath(URL url) {\r\n+        return toServicePath(url) + PATH_SEPARATOR + url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY);\r\n+    }\r\n+\r\n+    protected String toUrlPath(URL url) {\r\n+        return toCategoryPath(url) + PATH_SEPARATOR + URL.encode(url.toFullString());\r\n+    }\r\n+\r\n+    protected List<String> toUnsubscribedPath(URL url) {\r\n+        List<String> categories = new ArrayList<>();\r\n+        if (ANY_VALUE.equals(url.getServiceInterface())) {\r\n+            String group = url.getParameter(GROUP_KEY, DEFAULT_ROOT);\r\n+            if (!group.startsWith(PATH_SEPARATOR)) {\r\n+                group = PATH_SEPARATOR + group;\r\n+            }\r\n+            categories.add(group);\r\n+            return categories;\r\n+        } else {\r\n+            categories.addAll(Arrays.asList(toCategoriesPath(url)));\r\n+        }\r\n+        return categories;\r\n+    }\r\n+\r\n+    protected List<URL> toUrlsWithoutEmpty(URL consumer, List<String> providers) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        if (providers != null && providers.size() > 0) {\r\n+            for (String provider : providers) {\r\n+                provider = URL.decode(provider);\r\n+                if (provider.contains(Constants.HTTP_SUBFIX_KEY)) {\r\n+                    URL url = URL.valueOf(provider);\r\n+                    if (UrlUtils.isMatch(consumer, url)) {\r\n+                        urls.add(url);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    protected List<URL> toUrlsWithEmpty(URL consumer, String path, List<String> providers) {\r\n+        List<URL> urls = toUrlsWithoutEmpty(consumer, providers);\r\n+        if (urls == null || urls.isEmpty()) {\r\n+            int i = path.lastIndexOf('/');\r\n+            String category = i < 0 ? path : path.substring(i + 1);\r\n+            URL empty = consumer.setProtocol(EMPTY_PROTOCOL).addParameter(CATEGORY_KEY, category);\r\n+            urls.add(empty);\r\n+        }\r\n+        return urls;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java", "source2": "org/apache/dubbo/registry/etcd/EtcdRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-import org.apache.dubbo.remoting.etcd.EtcdTransporter;\n-\n-public class EtcdRegistryFactory extends AbstractRegistryFactory {\n-\n-    private EtcdTransporter etcdTransporter;\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        return new EtcdRegistry(url, etcdTransporter);\n-    }\n-\n-    public void setEtcdTransporter(EtcdTransporter etcdTransporter) {\n-        this.etcdTransporter = etcdTransporter;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+import org.apache.dubbo.remoting.etcd.EtcdTransporter;\r\n+\r\n+public class EtcdRegistryFactory extends AbstractRegistryFactory {\r\n+\r\n+    private EtcdTransporter etcdTransporter;\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        return new EtcdRegistry(url, etcdTransporter);\r\n+    }\r\n+\r\n+    public void setEtcdTransporter(EtcdTransporter etcdTransporter) {\r\n+        this.etcdTransporter = etcdTransporter;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java", "source2": "org/apache/dubbo/registry/etcd/EtcdServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,206 +1,206 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.event.EventListener;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.remoting.etcd.ChildListener;\n-import org.apache.dubbo.remoting.etcd.EtcdClient;\n-import org.apache.dubbo.remoting.etcd.EtcdTransporter;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-import org.apache.dubbo.remoting.etcd.option.OptionUtil;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.google.gson.Gson;\n-\n-import java.io.File;\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * 2019-07-08\n- */\n-public class EtcdServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\n-\n-    private final static Logger logger = LoggerFactory.getLogger(EtcdServiceDiscovery.class);\n-\n-    private final String root = \"/services\";\n-\n-    private final Set<String> services = new ConcurrentHashSet<>();\n-    private final Map<String, ChildListener> childListenerMap = new ConcurrentHashMap<>();\n-\n-    EtcdClient etcdClient;\n-    EventDispatcher dispatcher;\n-\n-    @Override\n-    public void onEvent(ServiceInstancesChangedEvent event) {\n-        registerServiceWatcher(event.getServiceName());\n-    }\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-\n-        EtcdTransporter etcdTransporter = ExtensionLoader.getExtensionLoader(EtcdTransporter.class).getAdaptiveExtension();\n-\n-        if (registryURL.isAnyHost()) {\n-            throw new IllegalStateException(\"Service discovery address is invalid, actual: '\" + registryURL.getHost() + \"'\");\n-        }\n-\n-        etcdClient = etcdTransporter.connect(registryURL);\n-\n-        etcdClient.addStateListener(state -> {\n-            if (state == StateListener.CONNECTED) {\n-                try {\n-                    recover();\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-            }\n-        });\n-\n-        this.dispatcher = EventDispatcher.getDefaultExtension();\n-        this.dispatcher.addEventListener(this);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (etcdClient != null && etcdClient.isConnected()) {\n-            etcdClient.close();\n-        }\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        try {\n-            String path = toPath(serviceInstance);\n-//            etcdClient.createEphemeral(path);\n-            etcdClient.putEphemeral(path, new Gson().toJson(serviceInstance));\n-            services.add(serviceInstance.getServiceName());\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to register \" + serviceInstance + \" to etcd \" + etcdClient.getUrl()\n-                    + \", cause: \" + (OptionUtil.isProtocolError(e)\n-                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\n-                    : e.getMessage()), e);\n-        }\n-    }\n-\n-    String toPath(ServiceInstance serviceInstance) {\n-        return root + File.separator + serviceInstance.getServiceName() + File.separator + serviceInstance.getHost()\n-                + \":\" + serviceInstance.getPort();\n-    }\n-\n-    String toParentPath(String serviceName) {\n-        return root + File.separator + serviceName;\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        try {\n-            String path = toPath(serviceInstance);\n-            etcdClient.putEphemeral(path, new Gson().toJson(serviceInstance));\n-            services.add(serviceInstance.getServiceName());\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to register \" + serviceInstance + \" to etcd \" + etcdClient.getUrl()\n-                    + \", cause: \" + (OptionUtil.isProtocolError(e)\n-                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\n-                    : e.getMessage()), e);\n-        }\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        try {\n-            String path = toPath(serviceInstance);\n-            etcdClient.delete(path);\n-            services.remove(serviceInstance.getServiceName());\n-            this.serviceInstance = null;\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to unregister \" + serviceInstance + \" to etcd \" + etcdClient.getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return Collections.unmodifiableSet(services);\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\n-        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName));\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) {\n-        List<String> children = etcdClient.getChildren(toParentPath(serviceName));\n-        if (CollectionUtils.isEmpty(children)) {\n-            return Collections.EMPTY_LIST;\n-        }\n-        List<ServiceInstance> list = new ArrayList<>(children.size());\n-        for (String child : children) {\n-            ServiceInstance serviceInstance = new Gson().fromJson(etcdClient.getKVValue(child), DefaultServiceInstance.class);\n-            list.add(serviceInstance);\n-        }\n-        return list;\n-    }\n-\n-\n-    protected void registerServiceWatcher(String serviceName) {\n-        String path = root + File.separator + serviceName;\n-        /*\n-         *  if we have no category watcher listener,\n-         *  we find out the current listener or create one for the current category, put or get only once.\n-         */\n-        ChildListener childListener =\n-                Optional.ofNullable(childListenerMap.get(serviceName))\n-                        .orElseGet(() -> {\n-                            ChildListener watchListener, prev;\n-                            prev = childListenerMap.putIfAbsent(serviceName, watchListener = (parentPath, currentChildren) ->\n-                                    dispatchServiceInstancesChangedEvent(serviceName));\n-                            return prev != null ? prev : watchListener;\n-                        });\n-\n-        etcdClient.create(path);\n-\n-        etcdClient.addChildListener(path, childListener);\n-    }\n-\n-    private void recover() throws Exception {\n-        // register\n-        if (serviceInstance != null) {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Recover application register: \" + serviceInstance);\n-            }\n-            register(serviceInstance);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.event.EventListener;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.remoting.etcd.ChildListener;\r\n+import org.apache.dubbo.remoting.etcd.EtcdClient;\r\n+import org.apache.dubbo.remoting.etcd.EtcdTransporter;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+import org.apache.dubbo.remoting.etcd.option.OptionUtil;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.google.gson.Gson;\r\n+\r\n+import java.io.File;\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * 2019-07-08\r\n+ */\r\n+public class EtcdServiceDiscovery extends AbstractServiceDiscovery implements EventListener<ServiceInstancesChangedEvent> {\r\n+\r\n+    private final static Logger logger = LoggerFactory.getLogger(EtcdServiceDiscovery.class);\r\n+\r\n+    private final String root = \"/services\";\r\n+\r\n+    private final Set<String> services = new ConcurrentHashSet<>();\r\n+    private final Map<String, ChildListener> childListenerMap = new ConcurrentHashMap<>();\r\n+\r\n+    EtcdClient etcdClient;\r\n+    EventDispatcher dispatcher;\r\n+\r\n+    @Override\r\n+    public void onEvent(ServiceInstancesChangedEvent event) {\r\n+        registerServiceWatcher(event.getServiceName());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+\r\n+        EtcdTransporter etcdTransporter = ExtensionLoader.getExtensionLoader(EtcdTransporter.class).getAdaptiveExtension();\r\n+\r\n+        if (registryURL.isAnyHost()) {\r\n+            throw new IllegalStateException(\"Service discovery address is invalid, actual: '\" + registryURL.getHost() + \"'\");\r\n+        }\r\n+\r\n+        etcdClient = etcdTransporter.connect(registryURL);\r\n+\r\n+        etcdClient.addStateListener(state -> {\r\n+            if (state == StateListener.CONNECTED) {\r\n+                try {\r\n+                    recover();\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+            }\r\n+        });\r\n+\r\n+        this.dispatcher = EventDispatcher.getDefaultExtension();\r\n+        this.dispatcher.addEventListener(this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (etcdClient != null && etcdClient.isConnected()) {\r\n+            etcdClient.close();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        try {\r\n+            String path = toPath(serviceInstance);\r\n+//            etcdClient.createEphemeral(path);\r\n+            etcdClient.putEphemeral(path, new Gson().toJson(serviceInstance));\r\n+            services.add(serviceInstance.getServiceName());\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to register \" + serviceInstance + \" to etcd \" + etcdClient.getUrl()\r\n+                    + \", cause: \" + (OptionUtil.isProtocolError(e)\r\n+                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\r\n+                    : e.getMessage()), e);\r\n+        }\r\n+    }\r\n+\r\n+    String toPath(ServiceInstance serviceInstance) {\r\n+        return root + File.separator + serviceInstance.getServiceName() + File.separator + serviceInstance.getHost()\r\n+                + \":\" + serviceInstance.getPort();\r\n+    }\r\n+\r\n+    String toParentPath(String serviceName) {\r\n+        return root + File.separator + serviceName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        try {\r\n+            String path = toPath(serviceInstance);\r\n+            etcdClient.putEphemeral(path, new Gson().toJson(serviceInstance));\r\n+            services.add(serviceInstance.getServiceName());\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to register \" + serviceInstance + \" to etcd \" + etcdClient.getUrl()\r\n+                    + \", cause: \" + (OptionUtil.isProtocolError(e)\r\n+                    ? \"etcd3 registry may not be supported yet or etcd3 registry is not available.\"\r\n+                    : e.getMessage()), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        try {\r\n+            String path = toPath(serviceInstance);\r\n+            etcdClient.delete(path);\r\n+            services.remove(serviceInstance.getServiceName());\r\n+            this.serviceInstance = null;\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to unregister \" + serviceInstance + \" to etcd \" + etcdClient.getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return Collections.unmodifiableSet(services);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\r\n+        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName));\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) {\r\n+        List<String> children = etcdClient.getChildren(toParentPath(serviceName));\r\n+        if (CollectionUtils.isEmpty(children)) {\r\n+            return Collections.EMPTY_LIST;\r\n+        }\r\n+        List<ServiceInstance> list = new ArrayList<>(children.size());\r\n+        for (String child : children) {\r\n+            ServiceInstance serviceInstance = new Gson().fromJson(etcdClient.getKVValue(child), DefaultServiceInstance.class);\r\n+            list.add(serviceInstance);\r\n+        }\r\n+        return list;\r\n+    }\r\n+\r\n+\r\n+    protected void registerServiceWatcher(String serviceName) {\r\n+        String path = root + File.separator + serviceName;\r\n+        /*\r\n+         *  if we have no category watcher listener,\r\n+         *  we find out the current listener or create one for the current category, put or get only once.\r\n+         */\r\n+        ChildListener childListener =\r\n+                Optional.ofNullable(childListenerMap.get(serviceName))\r\n+                        .orElseGet(() -> {\r\n+                            ChildListener watchListener, prev;\r\n+                            prev = childListenerMap.putIfAbsent(serviceName, watchListener = (parentPath, currentChildren) ->\r\n+                                    dispatchServiceInstancesChangedEvent(serviceName));\r\n+                            return prev != null ? prev : watchListener;\r\n+                        });\r\n+\r\n+        etcdClient.create(path);\r\n+\r\n+        etcdClient.addChildListener(path, childListener);\r\n+    }\r\n+\r\n+    private void recover() throws Exception {\r\n+        // register\r\n+        if (serviceInstance != null) {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Recover application register: \" + serviceInstance);\r\n+            }\r\n+            register(serviceInstance);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/eureka/ConfigurableEurekaInstanceConfig.java", "source2": "org/apache/dubbo/registry/eureka/ConfigurableEurekaInstanceConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,369 +1,369 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.eureka;\n-\n-import com.netflix.appinfo.DataCenterInfo;\n-import com.netflix.appinfo.EurekaInstanceConfig;\n-import com.netflix.appinfo.InstanceInfo;\n-import com.netflix.appinfo.MyDataCenterInfo;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * Configurable {@link EurekaInstanceConfig} implementation\n- */\n-class ConfigurableEurekaInstanceConfig implements EurekaInstanceConfig {\n-\n-    private String appname;\n-\n-    private String appGroupName;\n-\n-    private boolean instanceEnabledOnit;\n-\n-    private int nonSecurePort;\n-\n-    private int securePort;\n-\n-    private boolean nonSecurePortEnabled = true;\n-\n-    private boolean securePortEnabled;\n-\n-    private int leaseRenewalIntervalInSeconds = 30;\n-\n-    private int leaseExpirationDurationInSeconds = 90;\n-\n-    private String virtualHostName = \"unknown\";\n-\n-    private String instanceId;\n-\n-    private String secureVirtualHostName = \"unknown\";\n-\n-    private String aSGName;\n-\n-    private Map<String, String> metadataMap = new HashMap<>();\n-\n-    private DataCenterInfo dataCenterInfo = new MyDataCenterInfo(DataCenterInfo.Name.MyOwn);\n-\n-    private String ipAddress;\n-\n-    private String statusPageUrlPath;\n-\n-    private String statusPageUrl;\n-\n-    private String homePageUrlPath = \"/\";\n-\n-    private String homePageUrl;\n-\n-    private String healthCheckUrlPath;\n-\n-    private String healthCheckUrl;\n-\n-    private String secureHealthCheckUrl;\n-\n-    private String namespace = \"eureka\";\n-\n-    private String hostname;\n-\n-    private boolean preferIpAddress = false;\n-\n-    private InstanceInfo.InstanceStatus initialStatus = InstanceInfo.InstanceStatus.UP;\n-\n-    private String[] defaultAddressResolutionOrder = new String[0];\n-\n-    @Override\n-    public String getAppname() {\n-        return appname;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setAppname(String appname) {\n-        this.appname = appname;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getAppGroupName() {\n-        return appGroupName;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setAppGroupName(String appGroupName) {\n-        this.appGroupName = appGroupName;\n-        return this;\n-    }\n-\n-    @Override\n-    public boolean isInstanceEnabledOnit() {\n-        return instanceEnabledOnit;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setInstanceEnabledOnit(boolean instanceEnabledOnit) {\n-        this.instanceEnabledOnit = instanceEnabledOnit;\n-        return this;\n-    }\n-\n-    @Override\n-    public int getNonSecurePort() {\n-        return nonSecurePort;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setNonSecurePort(int nonSecurePort) {\n-        this.nonSecurePort = nonSecurePort;\n-        return this;\n-    }\n-\n-    @Override\n-    public int getSecurePort() {\n-        return securePort;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setSecurePort(int securePort) {\n-        this.securePort = securePort;\n-        return this;\n-    }\n-\n-    @Override\n-    public boolean isNonSecurePortEnabled() {\n-        return nonSecurePortEnabled;\n-    }\n-\n-    @Override\n-    public boolean getSecurePortEnabled() {\n-        return securePortEnabled;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setNonSecurePortEnabled(boolean nonSecurePortEnabled) {\n-        this.nonSecurePortEnabled = nonSecurePortEnabled;\n-        return this;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setSecurePortEnabled(boolean securePortEnabled) {\n-        this.securePortEnabled = securePortEnabled;\n-        return this;\n-    }\n-\n-    @Override\n-    public int getLeaseRenewalIntervalInSeconds() {\n-        return leaseRenewalIntervalInSeconds;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setLeaseRenewalIntervalInSeconds(int leaseRenewalIntervalInSeconds) {\n-        this.leaseRenewalIntervalInSeconds = leaseRenewalIntervalInSeconds;\n-        return this;\n-    }\n-\n-    @Override\n-    public int getLeaseExpirationDurationInSeconds() {\n-        return leaseExpirationDurationInSeconds;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setLeaseExpirationDurationInSeconds(int leaseExpirationDurationInSeconds) {\n-        this.leaseExpirationDurationInSeconds = leaseExpirationDurationInSeconds;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getVirtualHostName() {\n-        return virtualHostName;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setVirtualHostName(String virtualHostName) {\n-        this.virtualHostName = virtualHostName;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getInstanceId() {\n-        return instanceId;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setInstanceId(String instanceId) {\n-        this.instanceId = instanceId;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getSecureVirtualHostName() {\n-        return secureVirtualHostName;\n-    }\n-\n-    @Override\n-    public String getASGName() {\n-        return aSGName;\n-    }\n-\n-    @Override\n-    public String getHostName(boolean refresh) {\n-        return null;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setSecureVirtualHostName(String secureVirtualHostName) {\n-        this.secureVirtualHostName = secureVirtualHostName;\n-        return this;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setASGName(String aSGName) {\n-        this.aSGName = aSGName;\n-        return this;\n-    }\n-\n-    @Override\n-    public Map<String, String> getMetadataMap() {\n-        return metadataMap;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setMetadataMap(Map<String, String> metadataMap) {\n-        this.metadataMap = metadataMap;\n-        return this;\n-    }\n-\n-    @Override\n-    public DataCenterInfo getDataCenterInfo() {\n-        return dataCenterInfo;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setDataCenterInfo(DataCenterInfo dataCenterInfo) {\n-        this.dataCenterInfo = dataCenterInfo;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getIpAddress() {\n-        return ipAddress;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setIpAddress(String ipAddress) {\n-        this.ipAddress = ipAddress;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getStatusPageUrlPath() {\n-        return statusPageUrlPath;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setStatusPageUrlPath(String statusPageUrlPath) {\n-        this.statusPageUrlPath = statusPageUrlPath;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getStatusPageUrl() {\n-        return statusPageUrl;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setStatusPageUrl(String statusPageUrl) {\n-        this.statusPageUrl = statusPageUrl;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getHomePageUrlPath() {\n-        return homePageUrlPath;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setHomePageUrlPath(String homePageUrlPath) {\n-        this.homePageUrlPath = homePageUrlPath;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getHomePageUrl() {\n-        return homePageUrl;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setHomePageUrl(String homePageUrl) {\n-        this.homePageUrl = homePageUrl;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getHealthCheckUrlPath() {\n-        return healthCheckUrlPath;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setHealthCheckUrlPath(String healthCheckUrlPath) {\n-        this.healthCheckUrlPath = healthCheckUrlPath;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getHealthCheckUrl() {\n-        return healthCheckUrl;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setHealthCheckUrl(String healthCheckUrl) {\n-        this.healthCheckUrl = healthCheckUrl;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getSecureHealthCheckUrl() {\n-        return secureHealthCheckUrl;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setSecureHealthCheckUrl(String secureHealthCheckUrl) {\n-        this.secureHealthCheckUrl = secureHealthCheckUrl;\n-        return this;\n-    }\n-\n-    @Override\n-    public String getNamespace() {\n-        return namespace;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setNamespace(String namespace) {\n-        this.namespace = namespace;\n-        return this;\n-    }\n-\n-    public String getHostname() {\n-        return hostname;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setHostname(String hostname) {\n-        this.hostname = hostname;\n-        return this;\n-    }\n-\n-    public boolean isPreferIpAddress() {\n-        return preferIpAddress;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setPreferIpAddress(boolean preferIpAddress) {\n-        this.preferIpAddress = preferIpAddress;\n-        return this;\n-    }\n-\n-    public InstanceInfo.InstanceStatus getInitialStatus() {\n-        return initialStatus;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setInitialStatus(InstanceInfo.InstanceStatus initialStatus) {\n-        this.initialStatus = initialStatus;\n-        return this;\n-    }\n-\n-    @Override\n-    public String[] getDefaultAddressResolutionOrder() {\n-        return defaultAddressResolutionOrder;\n-    }\n-\n-    public ConfigurableEurekaInstanceConfig setDefaultAddressResolutionOrder(String[] defaultAddressResolutionOrder) {\n-        this.defaultAddressResolutionOrder = defaultAddressResolutionOrder;\n-        return this;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.eureka;\r\n+\r\n+import com.netflix.appinfo.DataCenterInfo;\r\n+import com.netflix.appinfo.EurekaInstanceConfig;\r\n+import com.netflix.appinfo.InstanceInfo;\r\n+import com.netflix.appinfo.MyDataCenterInfo;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Configurable {@link EurekaInstanceConfig} implementation\r\n+ */\r\n+class ConfigurableEurekaInstanceConfig implements EurekaInstanceConfig {\r\n+\r\n+    private String appname;\r\n+\r\n+    private String appGroupName;\r\n+\r\n+    private boolean instanceEnabledOnit;\r\n+\r\n+    private int nonSecurePort;\r\n+\r\n+    private int securePort;\r\n+\r\n+    private boolean nonSecurePortEnabled = true;\r\n+\r\n+    private boolean securePortEnabled;\r\n+\r\n+    private int leaseRenewalIntervalInSeconds = 30;\r\n+\r\n+    private int leaseExpirationDurationInSeconds = 90;\r\n+\r\n+    private String virtualHostName = \"unknown\";\r\n+\r\n+    private String instanceId;\r\n+\r\n+    private String secureVirtualHostName = \"unknown\";\r\n+\r\n+    private String aSGName;\r\n+\r\n+    private Map<String, String> metadataMap = new HashMap<>();\r\n+\r\n+    private DataCenterInfo dataCenterInfo = new MyDataCenterInfo(DataCenterInfo.Name.MyOwn);\r\n+\r\n+    private String ipAddress;\r\n+\r\n+    private String statusPageUrlPath;\r\n+\r\n+    private String statusPageUrl;\r\n+\r\n+    private String homePageUrlPath = \"/\";\r\n+\r\n+    private String homePageUrl;\r\n+\r\n+    private String healthCheckUrlPath;\r\n+\r\n+    private String healthCheckUrl;\r\n+\r\n+    private String secureHealthCheckUrl;\r\n+\r\n+    private String namespace = \"eureka\";\r\n+\r\n+    private String hostname;\r\n+\r\n+    private boolean preferIpAddress = false;\r\n+\r\n+    private InstanceInfo.InstanceStatus initialStatus = InstanceInfo.InstanceStatus.UP;\r\n+\r\n+    private String[] defaultAddressResolutionOrder = new String[0];\r\n+\r\n+    @Override\r\n+    public String getAppname() {\r\n+        return appname;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setAppname(String appname) {\r\n+        this.appname = appname;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAppGroupName() {\r\n+        return appGroupName;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setAppGroupName(String appGroupName) {\r\n+        this.appGroupName = appGroupName;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isInstanceEnabledOnit() {\r\n+        return instanceEnabledOnit;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setInstanceEnabledOnit(boolean instanceEnabledOnit) {\r\n+        this.instanceEnabledOnit = instanceEnabledOnit;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getNonSecurePort() {\r\n+        return nonSecurePort;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setNonSecurePort(int nonSecurePort) {\r\n+        this.nonSecurePort = nonSecurePort;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getSecurePort() {\r\n+        return securePort;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setSecurePort(int securePort) {\r\n+        this.securePort = securePort;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isNonSecurePortEnabled() {\r\n+        return nonSecurePortEnabled;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean getSecurePortEnabled() {\r\n+        return securePortEnabled;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setNonSecurePortEnabled(boolean nonSecurePortEnabled) {\r\n+        this.nonSecurePortEnabled = nonSecurePortEnabled;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setSecurePortEnabled(boolean securePortEnabled) {\r\n+        this.securePortEnabled = securePortEnabled;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getLeaseRenewalIntervalInSeconds() {\r\n+        return leaseRenewalIntervalInSeconds;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setLeaseRenewalIntervalInSeconds(int leaseRenewalIntervalInSeconds) {\r\n+        this.leaseRenewalIntervalInSeconds = leaseRenewalIntervalInSeconds;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getLeaseExpirationDurationInSeconds() {\r\n+        return leaseExpirationDurationInSeconds;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setLeaseExpirationDurationInSeconds(int leaseExpirationDurationInSeconds) {\r\n+        this.leaseExpirationDurationInSeconds = leaseExpirationDurationInSeconds;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getVirtualHostName() {\r\n+        return virtualHostName;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setVirtualHostName(String virtualHostName) {\r\n+        this.virtualHostName = virtualHostName;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getInstanceId() {\r\n+        return instanceId;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setInstanceId(String instanceId) {\r\n+        this.instanceId = instanceId;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getSecureVirtualHostName() {\r\n+        return secureVirtualHostName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getASGName() {\r\n+        return aSGName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHostName(boolean refresh) {\r\n+        return null;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setSecureVirtualHostName(String secureVirtualHostName) {\r\n+        this.secureVirtualHostName = secureVirtualHostName;\r\n+        return this;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setASGName(String aSGName) {\r\n+        this.aSGName = aSGName;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, String> getMetadataMap() {\r\n+        return metadataMap;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setMetadataMap(Map<String, String> metadataMap) {\r\n+        this.metadataMap = metadataMap;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public DataCenterInfo getDataCenterInfo() {\r\n+        return dataCenterInfo;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setDataCenterInfo(DataCenterInfo dataCenterInfo) {\r\n+        this.dataCenterInfo = dataCenterInfo;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getIpAddress() {\r\n+        return ipAddress;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setIpAddress(String ipAddress) {\r\n+        this.ipAddress = ipAddress;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getStatusPageUrlPath() {\r\n+        return statusPageUrlPath;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setStatusPageUrlPath(String statusPageUrlPath) {\r\n+        this.statusPageUrlPath = statusPageUrlPath;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getStatusPageUrl() {\r\n+        return statusPageUrl;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setStatusPageUrl(String statusPageUrl) {\r\n+        this.statusPageUrl = statusPageUrl;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHomePageUrlPath() {\r\n+        return homePageUrlPath;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setHomePageUrlPath(String homePageUrlPath) {\r\n+        this.homePageUrlPath = homePageUrlPath;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHomePageUrl() {\r\n+        return homePageUrl;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setHomePageUrl(String homePageUrl) {\r\n+        this.homePageUrl = homePageUrl;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHealthCheckUrlPath() {\r\n+        return healthCheckUrlPath;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setHealthCheckUrlPath(String healthCheckUrlPath) {\r\n+        this.healthCheckUrlPath = healthCheckUrlPath;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getHealthCheckUrl() {\r\n+        return healthCheckUrl;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setHealthCheckUrl(String healthCheckUrl) {\r\n+        this.healthCheckUrl = healthCheckUrl;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getSecureHealthCheckUrl() {\r\n+        return secureHealthCheckUrl;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setSecureHealthCheckUrl(String secureHealthCheckUrl) {\r\n+        this.secureHealthCheckUrl = secureHealthCheckUrl;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getNamespace() {\r\n+        return namespace;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setNamespace(String namespace) {\r\n+        this.namespace = namespace;\r\n+        return this;\r\n+    }\r\n+\r\n+    public String getHostname() {\r\n+        return hostname;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setHostname(String hostname) {\r\n+        this.hostname = hostname;\r\n+        return this;\r\n+    }\r\n+\r\n+    public boolean isPreferIpAddress() {\r\n+        return preferIpAddress;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setPreferIpAddress(boolean preferIpAddress) {\r\n+        this.preferIpAddress = preferIpAddress;\r\n+        return this;\r\n+    }\r\n+\r\n+    public InstanceInfo.InstanceStatus getInitialStatus() {\r\n+        return initialStatus;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setInitialStatus(InstanceInfo.InstanceStatus initialStatus) {\r\n+        this.initialStatus = initialStatus;\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String[] getDefaultAddressResolutionOrder() {\r\n+        return defaultAddressResolutionOrder;\r\n+    }\r\n+\r\n+    public ConfigurableEurekaInstanceConfig setDefaultAddressResolutionOrder(String[] defaultAddressResolutionOrder) {\r\n+        this.defaultAddressResolutionOrder = defaultAddressResolutionOrder;\r\n+        return this;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/eureka/EurekaServiceDiscovery.java", "source2": "org/apache/dubbo/registry/eureka/EurekaServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,281 +1,281 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.eureka;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.event.EventDispatcher;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-\n-import com.netflix.appinfo.ApplicationInfoManager;\n-import com.netflix.appinfo.EurekaInstanceConfig;\n-import com.netflix.appinfo.InstanceInfo;\n-import com.netflix.config.ConfigurationManager;\n-import com.netflix.discovery.CacheRefreshedEvent;\n-import com.netflix.discovery.DefaultEurekaClientConfig;\n-import com.netflix.discovery.DiscoveryClient;\n-import com.netflix.discovery.EurekaClient;\n-import com.netflix.discovery.EurekaClientConfig;\n-import com.netflix.discovery.EurekaEvent;\n-import com.netflix.discovery.shared.Application;\n-import com.netflix.discovery.shared.Applications;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.Properties;\n-import java.util.Set;\n-\n-import static java.util.Collections.emptyList;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\n-import static org.apache.dubbo.event.EventDispatcher.getDefaultExtension;\n-import static org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.parseServices;\n-\n-/**\n- * Eureka {@link ServiceDiscovery} implementation based on Eureka API\n- */\n-public class EurekaServiceDiscovery extends AbstractServiceDiscovery {\n-\n-    private final EventDispatcher eventDispatcher = getDefaultExtension();\n-\n-    private ApplicationInfoManager applicationInfoManager;\n-\n-    private EurekaClient eurekaClient;\n-\n-    private Set<String> subscribedServices;\n-\n-    /**\n-     * last apps hash code is used to identify the {@link Applications} is changed or not\n-     */\n-    private String lastAppsHashCode;\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        Properties eurekaConfigProperties = buildEurekaConfigProperties(registryURL);\n-        initConfigurationManager(eurekaConfigProperties);\n-        initSubscribedServices(registryURL);\n-    }\n-\n-    /**\n-     * Build the Properties whose {@link java.util.Map.Entry entries} are retrieved from\n-     * {@link URL#getParameters() the parameters of the specified URL}, which will be used in the Eureka's {@link ConfigurationManager}\n-     *\n-     * @param registryURL the {@link URL url} to connect Eureka\n-     * @return non-null\n-     */\n-    private Properties buildEurekaConfigProperties(URL registryURL) {\n-        Properties properties = new Properties();\n-        Map<String, String> parameters = registryURL.getParameters();\n-        setDefaultProperties(registryURL, properties);\n-        parameters.entrySet().stream()\n-                .filter(this::filterEurekaProperty)\n-                .forEach(propertyEntry -> {\n-                    properties.setProperty(propertyEntry.getKey(), propertyEntry.getValue());\n-                });\n-        return properties;\n-    }\n-\n-    /**\n-     * Initialize {@link #subscribedServices} property\n-     *\n-     * @param registryURL the {@link URL url} to connect Eureka\n-     */\n-    private void initSubscribedServices(URL registryURL) {\n-        this.subscribedServices = parseServices(registryURL.getParameter(SUBSCRIBED_SERVICE_NAMES_KEY));\n-        ;\n-    }\n-\n-    private boolean filterEurekaProperty(Map.Entry<String, String> propertyEntry) {\n-        String propertyName = propertyEntry.getKey();\n-        return propertyName.startsWith(\"eureka.\");\n-    }\n-\n-    private void setDefaultProperties(URL registryURL, Properties properties) {\n-        setDefaultServiceURL(registryURL, properties);\n-        setDefaultInitialInstanceInfoReplicationIntervalSeconds(properties);\n-    }\n-\n-    private void setDefaultServiceURL(URL registryURL, Properties properties) {\n-        StringBuilder defaultServiceURLBuilder = new StringBuilder(\"http://\")\n-                .append(registryURL.getHost())\n-                .append(\":\")\n-                .append(registryURL.getPort())\n-                .append(\"/eureka\");\n-        properties.setProperty(\"eureka.serviceUrl.default\", defaultServiceURLBuilder.toString());\n-    }\n-\n-    /**\n-     * Set the default property for {@link EurekaClientConfig#getInitialInstanceInfoReplicationIntervalSeconds()}\n-     * which means do register immediately\n-     *\n-     * @param properties {@link Properties}\n-     */\n-    private void setDefaultInitialInstanceInfoReplicationIntervalSeconds(Properties properties) {\n-        properties.setProperty(\"eureka.appinfo.initial.replicate.time\", \"0\");\n-    }\n-\n-    /**\n-     * Initialize {@link ConfigurationManager}\n-     *\n-     * @param eurekaConfigProperties the Eureka's {@link ConfigurationManager}\n-     */\n-    private void initConfigurationManager(Properties eurekaConfigProperties) {\n-        ConfigurationManager.loadProperties(eurekaConfigProperties);\n-    }\n-\n-    private void initApplicationInfoManager(ServiceInstance serviceInstance) {\n-        EurekaInstanceConfig eurekaInstanceConfig = buildEurekaInstanceConfig(serviceInstance);\n-        this.applicationInfoManager = new ApplicationInfoManager(eurekaInstanceConfig, (ApplicationInfoManager.OptionalArgs) null);\n-    }\n-\n-    /**\n-     * Initialize {@link #eurekaClient} property\n-     *\n-     * @param serviceInstance {@link ServiceInstance}\n-     */\n-    private void initEurekaClient(ServiceInstance serviceInstance) {\n-        if (eurekaClient != null) {\n-            return;\n-        }\n-        initApplicationInfoManager(serviceInstance);\n-        EurekaClient eurekaClient = createEurekaClient();\n-        registerEurekaEventListener(eurekaClient);\n-        // set eurekaClient\n-        this.eurekaClient = eurekaClient;\n-    }\n-\n-    private void registerEurekaEventListener(EurekaClient eurekaClient) {\n-        eurekaClient.registerEventListener(this::onEurekaEvent);\n-    }\n-\n-    private void onEurekaEvent(EurekaEvent event) {\n-        if (event instanceof CacheRefreshedEvent) {\n-            onCacheRefreshedEvent(CacheRefreshedEvent.class.cast(event));\n-        }\n-    }\n-\n-    private void onCacheRefreshedEvent(CacheRefreshedEvent event) {\n-        synchronized (this) { // Make sure thread-safe in async execution\n-            Applications applications = eurekaClient.getApplications();\n-            String appsHashCode = applications.getAppsHashCode();\n-            if (!Objects.equals(lastAppsHashCode, appsHashCode)) { // Changed\n-                // Dispatch Events\n-                dispatchServiceInstancesChangedEvent();\n-                lastAppsHashCode = appsHashCode; // update current result\n-            }\n-        }\n-    }\n-\n-    private void dispatchServiceInstancesChangedEvent() {\n-        subscribedServices.forEach((serviceName) -> {\n-            eventDispatcher.dispatch(new ServiceInstancesChangedEvent(serviceName, getInstances(serviceName)));\n-        });\n-    }\n-\n-    private EurekaClient createEurekaClient() {\n-        EurekaClientConfig eurekaClientConfig = new DefaultEurekaClientConfig();\n-        DiscoveryClient eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClientConfig);\n-        return eurekaClient;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-        if (eurekaClient != null) {\n-            this.eurekaClient.shutdown();\n-        }\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        initEurekaClient(serviceInstance);\n-        setInstanceStatus(InstanceInfo.InstanceStatus.UP);\n-    }\n-\n-    private void setInstanceStatus(InstanceInfo.InstanceStatus status) {\n-        if (applicationInfoManager != null) {\n-            this.applicationInfoManager.setInstanceStatus(status);\n-        }\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        setInstanceStatus(serviceInstance.isHealthy() ? InstanceInfo.InstanceStatus.UP :\n-                InstanceInfo.InstanceStatus.UNKNOWN);\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        setInstanceStatus(InstanceInfo.InstanceStatus.OUT_OF_SERVICE);\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        Applications applications = this.eurekaClient.getApplications();\n-        if (applications == null) {\n-            return Collections.emptySet();\n-        }\n-        List<Application> registered = applications.getRegisteredApplications();\n-        Set<String> names = new LinkedHashSet<>();\n-        for (Application app : registered) {\n-            if (app.getInstances().isEmpty()) {\n-                continue;\n-            }\n-            names.add(app.getName().toLowerCase());\n-        }\n-        return names;\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-        Application application = this.eurekaClient.getApplication(serviceName);\n-\n-        if (application == null) {\n-            return emptyList();\n-        }\n-\n-        List<InstanceInfo> infos = application.getInstances();\n-        List<ServiceInstance> instances = new ArrayList<>();\n-        for (InstanceInfo info : infos) {\n-            instances.add(buildServiceInstance(info));\n-        }\n-        return instances;\n-    }\n-\n-    private ServiceInstance buildServiceInstance(InstanceInfo instance) {\n-        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getId(), instance.getAppName(),\n-                instance.getHostName(),\n-                instance.isPortEnabled(InstanceInfo.PortType.SECURE) ? instance.getSecurePort() : instance.getPort());\n-        serviceInstance.setMetadata(instance.getMetadata());\n-        return serviceInstance;\n-    }\n-\n-    private EurekaInstanceConfig buildEurekaInstanceConfig(ServiceInstance serviceInstance) {\n-        ConfigurableEurekaInstanceConfig eurekaInstanceConfig = new ConfigurableEurekaInstanceConfig()\n-                .setInstanceId(serviceInstance.getId())\n-                .setAppname(serviceInstance.getServiceName())\n-                .setIpAddress(serviceInstance.getHost())\n-                .setNonSecurePort(serviceInstance.getPort())\n-                .setMetadataMap(serviceInstance.getMetadata());\n-        return eurekaInstanceConfig;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.eureka;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.event.EventDispatcher;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+\r\n+import com.netflix.appinfo.ApplicationInfoManager;\r\n+import com.netflix.appinfo.EurekaInstanceConfig;\r\n+import com.netflix.appinfo.InstanceInfo;\r\n+import com.netflix.config.ConfigurationManager;\r\n+import com.netflix.discovery.CacheRefreshedEvent;\r\n+import com.netflix.discovery.DefaultEurekaClientConfig;\r\n+import com.netflix.discovery.DiscoveryClient;\r\n+import com.netflix.discovery.EurekaClient;\r\n+import com.netflix.discovery.EurekaClientConfig;\r\n+import com.netflix.discovery.EurekaEvent;\r\n+import com.netflix.discovery.shared.Application;\r\n+import com.netflix.discovery.shared.Applications;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.Properties;\r\n+import java.util.Set;\r\n+\r\n+import static java.util.Collections.emptyList;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SUBSCRIBED_SERVICE_NAMES_KEY;\r\n+import static org.apache.dubbo.event.EventDispatcher.getDefaultExtension;\r\n+import static org.apache.dubbo.registry.client.ServiceDiscoveryRegistry.parseServices;\r\n+\r\n+/**\r\n+ * Eureka {@link ServiceDiscovery} implementation based on Eureka API\r\n+ */\r\n+public class EurekaServiceDiscovery extends AbstractServiceDiscovery {\r\n+\r\n+    private final EventDispatcher eventDispatcher = getDefaultExtension();\r\n+\r\n+    private ApplicationInfoManager applicationInfoManager;\r\n+\r\n+    private EurekaClient eurekaClient;\r\n+\r\n+    private Set<String> subscribedServices;\r\n+\r\n+    /**\r\n+     * last apps hash code is used to identify the {@link Applications} is changed or not\r\n+     */\r\n+    private String lastAppsHashCode;\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        Properties eurekaConfigProperties = buildEurekaConfigProperties(registryURL);\r\n+        initConfigurationManager(eurekaConfigProperties);\r\n+        initSubscribedServices(registryURL);\r\n+    }\r\n+\r\n+    /**\r\n+     * Build the Properties whose {@link java.util.Map.Entry entries} are retrieved from\r\n+     * {@link URL#getParameters() the parameters of the specified URL}, which will be used in the Eureka's {@link ConfigurationManager}\r\n+     *\r\n+     * @param registryURL the {@link URL url} to connect Eureka\r\n+     * @return non-null\r\n+     */\r\n+    private Properties buildEurekaConfigProperties(URL registryURL) {\r\n+        Properties properties = new Properties();\r\n+        Map<String, String> parameters = registryURL.getParameters();\r\n+        setDefaultProperties(registryURL, properties);\r\n+        parameters.entrySet().stream()\r\n+                .filter(this::filterEurekaProperty)\r\n+                .forEach(propertyEntry -> {\r\n+                    properties.setProperty(propertyEntry.getKey(), propertyEntry.getValue());\r\n+                });\r\n+        return properties;\r\n+    }\r\n+\r\n+    /**\r\n+     * Initialize {@link #subscribedServices} property\r\n+     *\r\n+     * @param registryURL the {@link URL url} to connect Eureka\r\n+     */\r\n+    private void initSubscribedServices(URL registryURL) {\r\n+        this.subscribedServices = parseServices(registryURL.getParameter(SUBSCRIBED_SERVICE_NAMES_KEY));\r\n+        ;\r\n+    }\r\n+\r\n+    private boolean filterEurekaProperty(Map.Entry<String, String> propertyEntry) {\r\n+        String propertyName = propertyEntry.getKey();\r\n+        return propertyName.startsWith(\"eureka.\");\r\n+    }\r\n+\r\n+    private void setDefaultProperties(URL registryURL, Properties properties) {\r\n+        setDefaultServiceURL(registryURL, properties);\r\n+        setDefaultInitialInstanceInfoReplicationIntervalSeconds(properties);\r\n+    }\r\n+\r\n+    private void setDefaultServiceURL(URL registryURL, Properties properties) {\r\n+        StringBuilder defaultServiceURLBuilder = new StringBuilder(\"http://\")\r\n+                .append(registryURL.getHost())\r\n+                .append(\":\")\r\n+                .append(registryURL.getPort())\r\n+                .append(\"/eureka\");\r\n+        properties.setProperty(\"eureka.serviceUrl.default\", defaultServiceURLBuilder.toString());\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the default property for {@link EurekaClientConfig#getInitialInstanceInfoReplicationIntervalSeconds()}\r\n+     * which means do register immediately\r\n+     *\r\n+     * @param properties {@link Properties}\r\n+     */\r\n+    private void setDefaultInitialInstanceInfoReplicationIntervalSeconds(Properties properties) {\r\n+        properties.setProperty(\"eureka.appinfo.initial.replicate.time\", \"0\");\r\n+    }\r\n+\r\n+    /**\r\n+     * Initialize {@link ConfigurationManager}\r\n+     *\r\n+     * @param eurekaConfigProperties the Eureka's {@link ConfigurationManager}\r\n+     */\r\n+    private void initConfigurationManager(Properties eurekaConfigProperties) {\r\n+        ConfigurationManager.loadProperties(eurekaConfigProperties);\r\n+    }\r\n+\r\n+    private void initApplicationInfoManager(ServiceInstance serviceInstance) {\r\n+        EurekaInstanceConfig eurekaInstanceConfig = buildEurekaInstanceConfig(serviceInstance);\r\n+        this.applicationInfoManager = new ApplicationInfoManager(eurekaInstanceConfig, (ApplicationInfoManager.OptionalArgs) null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Initialize {@link #eurekaClient} property\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance}\r\n+     */\r\n+    private void initEurekaClient(ServiceInstance serviceInstance) {\r\n+        if (eurekaClient != null) {\r\n+            return;\r\n+        }\r\n+        initApplicationInfoManager(serviceInstance);\r\n+        EurekaClient eurekaClient = createEurekaClient();\r\n+        registerEurekaEventListener(eurekaClient);\r\n+        // set eurekaClient\r\n+        this.eurekaClient = eurekaClient;\r\n+    }\r\n+\r\n+    private void registerEurekaEventListener(EurekaClient eurekaClient) {\r\n+        eurekaClient.registerEventListener(this::onEurekaEvent);\r\n+    }\r\n+\r\n+    private void onEurekaEvent(EurekaEvent event) {\r\n+        if (event instanceof CacheRefreshedEvent) {\r\n+            onCacheRefreshedEvent(CacheRefreshedEvent.class.cast(event));\r\n+        }\r\n+    }\r\n+\r\n+    private void onCacheRefreshedEvent(CacheRefreshedEvent event) {\r\n+        synchronized (this) { // Make sure thread-safe in async execution\r\n+            Applications applications = eurekaClient.getApplications();\r\n+            String appsHashCode = applications.getAppsHashCode();\r\n+            if (!Objects.equals(lastAppsHashCode, appsHashCode)) { // Changed\r\n+                // Dispatch Events\r\n+                dispatchServiceInstancesChangedEvent();\r\n+                lastAppsHashCode = appsHashCode; // update current result\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void dispatchServiceInstancesChangedEvent() {\r\n+        subscribedServices.forEach((serviceName) -> {\r\n+            eventDispatcher.dispatch(new ServiceInstancesChangedEvent(serviceName, getInstances(serviceName)));\r\n+        });\r\n+    }\r\n+\r\n+    private EurekaClient createEurekaClient() {\r\n+        EurekaClientConfig eurekaClientConfig = new DefaultEurekaClientConfig();\r\n+        DiscoveryClient eurekaClient = new DiscoveryClient(applicationInfoManager, eurekaClientConfig);\r\n+        return eurekaClient;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+        if (eurekaClient != null) {\r\n+            this.eurekaClient.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        initEurekaClient(serviceInstance);\r\n+        setInstanceStatus(InstanceInfo.InstanceStatus.UP);\r\n+    }\r\n+\r\n+    private void setInstanceStatus(InstanceInfo.InstanceStatus status) {\r\n+        if (applicationInfoManager != null) {\r\n+            this.applicationInfoManager.setInstanceStatus(status);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        setInstanceStatus(serviceInstance.isHealthy() ? InstanceInfo.InstanceStatus.UP :\r\n+                InstanceInfo.InstanceStatus.UNKNOWN);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        setInstanceStatus(InstanceInfo.InstanceStatus.OUT_OF_SERVICE);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        Applications applications = this.eurekaClient.getApplications();\r\n+        if (applications == null) {\r\n+            return Collections.emptySet();\r\n+        }\r\n+        List<Application> registered = applications.getRegisteredApplications();\r\n+        Set<String> names = new LinkedHashSet<>();\r\n+        for (Application app : registered) {\r\n+            if (app.getInstances().isEmpty()) {\r\n+                continue;\r\n+            }\r\n+            names.add(app.getName().toLowerCase());\r\n+        }\r\n+        return names;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+        Application application = this.eurekaClient.getApplication(serviceName);\r\n+\r\n+        if (application == null) {\r\n+            return emptyList();\r\n+        }\r\n+\r\n+        List<InstanceInfo> infos = application.getInstances();\r\n+        List<ServiceInstance> instances = new ArrayList<>();\r\n+        for (InstanceInfo info : infos) {\r\n+            instances.add(buildServiceInstance(info));\r\n+        }\r\n+        return instances;\r\n+    }\r\n+\r\n+    private ServiceInstance buildServiceInstance(InstanceInfo instance) {\r\n+        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getId(), instance.getAppName(),\r\n+                instance.getHostName(),\r\n+                instance.isPortEnabled(InstanceInfo.PortType.SECURE) ? instance.getSecurePort() : instance.getPort());\r\n+        serviceInstance.setMetadata(instance.getMetadata());\r\n+        return serviceInstance;\r\n+    }\r\n+\r\n+    private EurekaInstanceConfig buildEurekaInstanceConfig(ServiceInstance serviceInstance) {\r\n+        ConfigurableEurekaInstanceConfig eurekaInstanceConfig = new ConfigurableEurekaInstanceConfig()\r\n+                .setInstanceId(serviceInstance.getId())\r\n+                .setAppname(serviceInstance.getServiceName())\r\n+                .setIpAddress(serviceInstance.getHost())\r\n+                .setNonSecurePort(serviceInstance.getPort())\r\n+                .setMetadataMap(serviceInstance.getMetadata());\r\n+        return eurekaInstanceConfig;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/eureka/package-info.java", "source2": "org/apache/dubbo/registry/eureka/package-info.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,22 +1,22 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-/**\n- * The package contains the registry implementations for Netflix Eureka\n- *\n- * @since 2.7.5\n- */\n-package org.apache.dubbo.registry.eureka;\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+/**\r\n+ * The package contains the registry implementations for Netflix Eureka\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+package org.apache.dubbo.registry.eureka;\r\n"}, {"source1": "org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java", "source2": "org/apache/dubbo/registry/integration/AbstractConfiguratorListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,97 +1,97 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.cluster.Configurator;\n-import org.apache.dubbo.rpc.cluster.configurator.parser.ConfigParser;\n-import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\n-\n-import java.util.Collections;\n-import java.util.List;\n-\n-/**\n- * AbstractConfiguratorListener\n- */\n-public abstract class AbstractConfiguratorListener implements ConfigurationListener {\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractConfiguratorListener.class);\n-\n-    protected List<Configurator> configurators = Collections.emptyList();\n-    protected GovernanceRuleRepository ruleRepository = ExtensionLoader.getExtensionLoader(\n-            GovernanceRuleRepository.class).getDefaultExtension();\n-\n-    protected final void initWith(String key) {\n-        ruleRepository.addListener(key, this);\n-        String rawConfig = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\n-        if (!StringUtils.isEmpty(rawConfig)) {\n-            genConfiguratorsFromRawRule(rawConfig);\n-        }\n-    }\n-\n-    protected final void stopListen(String key) {\n-        ruleRepository.removeListener(key, this);\n-    }\n-\n-    @Override\n-    public void process(ConfigChangedEvent event) {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Notification of overriding rule, change type is: \" + event.getChangeType() +\n-                    \", raw config content is:\\n \" + event.getContent());\n-        }\n-\n-        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\n-            configurators.clear();\n-        } else {\n-            if (!genConfiguratorsFromRawRule(event.getContent())) {\n-                return;\n-            }\n-        }\n-\n-        notifyOverrides();\n-    }\n-\n-    private boolean genConfiguratorsFromRawRule(String rawConfig) {\n-        boolean parseSuccess = true;\n-        try {\n-            // parseConfigurators will recognize app/service config automatically.\n-            configurators = Configurator.toConfigurators(ConfigParser.parseConfigurators(rawConfig))\n-                    .orElse(configurators);\n-        } catch (Exception e) {\n-            logger.error(\"Failed to parse raw dynamic config and it will not take effect, the raw config is: \" +\n-                    rawConfig, e);\n-            parseSuccess = false;\n-        }\n-        return parseSuccess;\n-    }\n-\n-    protected abstract void notifyOverrides();\n-\n-    public List<Configurator> getConfigurators() {\n-        return configurators;\n-    }\n-\n-    public void setConfigurators(List<Configurator> configurators) {\n-        this.configurators = configurators;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.cluster.Configurator;\r\n+import org.apache.dubbo.rpc.cluster.configurator.parser.ConfigParser;\r\n+import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * AbstractConfiguratorListener\r\n+ */\r\n+public abstract class AbstractConfiguratorListener implements ConfigurationListener {\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractConfiguratorListener.class);\r\n+\r\n+    protected List<Configurator> configurators = Collections.emptyList();\r\n+    protected GovernanceRuleRepository ruleRepository = ExtensionLoader.getExtensionLoader(\r\n+            GovernanceRuleRepository.class).getDefaultExtension();\r\n+\r\n+    protected final void initWith(String key) {\r\n+        ruleRepository.addListener(key, this);\r\n+        String rawConfig = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\r\n+        if (!StringUtils.isEmpty(rawConfig)) {\r\n+            genConfiguratorsFromRawRule(rawConfig);\r\n+        }\r\n+    }\r\n+\r\n+    protected final void stopListen(String key) {\r\n+        ruleRepository.removeListener(key, this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void process(ConfigChangedEvent event) {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Notification of overriding rule, change type is: \" + event.getChangeType() +\r\n+                    \", raw config content is:\\n \" + event.getContent());\r\n+        }\r\n+\r\n+        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\r\n+            configurators.clear();\r\n+        } else {\r\n+            if (!genConfiguratorsFromRawRule(event.getContent())) {\r\n+                return;\r\n+            }\r\n+        }\r\n+\r\n+        notifyOverrides();\r\n+    }\r\n+\r\n+    private boolean genConfiguratorsFromRawRule(String rawConfig) {\r\n+        boolean parseSuccess = true;\r\n+        try {\r\n+            // parseConfigurators will recognize app/service config automatically.\r\n+            configurators = Configurator.toConfigurators(ConfigParser.parseConfigurators(rawConfig))\r\n+                    .orElse(configurators);\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Failed to parse raw dynamic config and it will not take effect, the raw config is: \" +\r\n+                    rawConfig, e);\r\n+            parseSuccess = false;\r\n+        }\r\n+        return parseSuccess;\r\n+    }\r\n+\r\n+    protected abstract void notifyOverrides();\r\n+\r\n+    public List<Configurator> getConfigurators() {\r\n+        return configurators;\r\n+    }\r\n+\r\n+    public void setConfigurators(List<Configurator> configurators) {\r\n+        this.configurators = configurators;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/integration/DynamicDirectory.java", "source2": "org/apache/dubbo/registry/integration/DynamicDirectory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,285 +1,285 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.registry.client.migration.InvokersChangedListener;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.Configurator;\n-import org.apache.dubbo.rpc.cluster.RouterChain;\n-import org.apache.dubbo.rpc.cluster.RouterFactory;\n-import org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;\n-\n-import java.util.Collections;\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\n-import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\n-import static org.apache.dubbo.registry.Constants.SIMPLIFIED_KEY;\n-import static org.apache.dubbo.registry.integration.RegistryProtocol.DEFAULT_REGISTER_CONSUMER_KEYS;\n-import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\n-\n-\n-/**\n- * RegistryDirectory\n- */\n-public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implements NotifyListener {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DynamicDirectory.class);\n-\n-    protected static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();\n-\n-    protected static final RouterFactory ROUTER_FACTORY = ExtensionLoader.getExtensionLoader(RouterFactory.class)\n-            .getAdaptiveExtension();\n-\n-    protected final String serviceKey; // Initialization at construction time, assertion not null\n-    protected final Class<T> serviceType; // Initialization at construction time, assertion not null\n-    protected final URL directoryUrl; // Initialization at construction time, assertion not null, and always assign non null value\n-    protected final boolean multiGroup;\n-    protected Protocol protocol; // Initialization at the time of injection, the assertion is not null\n-    protected Registry registry; // Initialization at the time of injection, the assertion is not null\n-    protected volatile boolean forbidden = false;\n-    protected boolean shouldRegister;\n-    protected boolean shouldSimplified;\n-\n-    protected volatile URL overrideDirectoryUrl; // Initialization at construction time, assertion not null, and always assign non null value\n-\n-    protected volatile URL registeredConsumerUrl;\n-\n-    /**\n-     * override rules\n-     * Priority: override>-D>consumer>provider\n-     * Rule one: for a certain provider <ip:port,timeout=100>\n-     * Rule two: for all providers <* ,timeout=5000>\n-     */\n-    protected volatile List<Configurator> configurators; // The initial value is null and the midway may be assigned to null, please use the local variable reference\n-\n-    protected volatile List<Invoker<T>> invokers;\n-    // Set<invokerUrls> cache invokeUrls to invokers mapping.\n-\n-    protected ServiceInstancesChangedListener serviceListener;\n-\n-    public DynamicDirectory(Class<T> serviceType, URL url) {\n-        super(url, true);\n-        if (serviceType == null) {\n-            throw new IllegalArgumentException(\"service type is null.\");\n-        }\n-\n-        shouldRegister = !ANY_VALUE.equals(url.getServiceInterface()) && url.getParameter(REGISTER_KEY, true);\n-        shouldSimplified = url.getParameter(SIMPLIFIED_KEY, false);\n-        if (url.getServiceKey() == null || url.getServiceKey().length() == 0) {\n-            throw new IllegalArgumentException(\"registry serviceKey is null.\");\n-        }\n-        this.serviceType = serviceType;\n-        this.serviceKey = super.getConsumerUrl().getServiceKey();\n-\n-        this.overrideDirectoryUrl = this.directoryUrl = turnRegistryUrlToConsumerUrl(url);\n-        String group = directoryUrl.getParameter(GROUP_KEY, \"\");\n-        this.multiGroup = group != null && (ANY_VALUE.equals(group) || group.contains(\",\"));\n-    }\n-\n-    @Override\n-    public void addServiceListener(ServiceInstancesChangedListener instanceListener) {\n-        this.serviceListener = instanceListener;\n-    }\n-\n-    private URL turnRegistryUrlToConsumerUrl(URL url) {\n-        return URLBuilder.from(url)\n-                .setHost(queryMap.get(REGISTER_IP_KEY) == null ? url.getHost() : queryMap.get(REGISTER_IP_KEY))\n-                .setPort(0)\n-                .setProtocol(queryMap.get(PROTOCOL_KEY) == null ? DUBBO : queryMap.get(PROTOCOL_KEY))\n-                .setPath(queryMap.get(INTERFACE_KEY))\n-                .clearParameters()\n-                .addParameters(queryMap)\n-                .removeParameter(MONITOR_KEY)\n-                .build();\n-    }\n-\n-    public void setProtocol(Protocol protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    public void setRegistry(Registry registry) {\n-        this.registry = registry;\n-    }\n-\n-    public Registry getRegistry() {\n-        return registry;\n-    }\n-\n-    public boolean isShouldRegister() {\n-        return shouldRegister;\n-    }\n-\n-    public void subscribe(URL url) {\n-        setConsumerUrl(url);\n-        registry.subscribe(url, this);\n-    }\n-\n-    public void unSubscribe(URL url) {\n-        setConsumerUrl(null);\n-        registry.unsubscribe(url, this);\n-    }\n-\n-    @Override\n-    public List<Invoker<T>> doList(Invocation invocation) {\n-        if (forbidden) {\n-            // 1. No service provider 2. Service providers are disabled\n-            throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, \"No provider available from registry \" +\n-                    getUrl().getAddress() + \" for service \" + getConsumerUrl().getServiceKey() + \" on consumer \" +\n-                    NetUtils.getLocalHost() + \" use dubbo version \" + Version.getVersion() +\n-                    \", please check status of providers(disabled, not registered or in blacklist).\");\n-        }\n-\n-        if (multiGroup) {\n-            return this.invokers == null ? Collections.emptyList() : this.invokers;\n-        }\n-\n-        List<Invoker<T>> invokers = null;\n-        try {\n-            // Get invokers from cache, only runtime routers will be executed.\n-            invokers = routerChain.route(getConsumerUrl(), invocation);\n-        } catch (Throwable t) {\n-            logger.error(\"Failed to execute router: \" + getUrl() + \", cause: \" + t.getMessage(), t);\n-        }\n-\n-        return invokers == null ? Collections.emptyList() : invokers;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return serviceType;\n-    }\n-\n-    @Override\n-    public List<Invoker<T>> getAllInvokers() {\n-        return invokers;\n-    }\n-\n-    @Override\n-    public URL getConsumerUrl() {\n-        return this.overrideDirectoryUrl;\n-    }\n-\n-    public URL getRegisteredConsumerUrl() {\n-        return registeredConsumerUrl;\n-    }\n-\n-    public void setRegisteredConsumerUrl(URL url) {\n-        if (!shouldSimplified) {\n-            this.registeredConsumerUrl = url.addParameters(CATEGORY_KEY, CONSUMERS_CATEGORY, CHECK_KEY,\n-                    String.valueOf(false));\n-        } else {\n-            this.registeredConsumerUrl = URL.valueOf(url, DEFAULT_REGISTER_CONSUMER_KEYS, null).addParameters(\n-                    CATEGORY_KEY, CONSUMERS_CATEGORY, CHECK_KEY, String.valueOf(false));\n-        }\n-    }\n-\n-    public void buildRouterChain(URL url) {\n-        this.setRouterChain(RouterChain.buildChain(url));\n-    }\n-\n-    public List<Invoker<T>> getInvokers() {\n-        return invokers;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (isDestroyed()) {\n-            return;\n-        }\n-\n-        // unregister.\n-        try {\n-            if (getRegisteredConsumerUrl() != null && registry != null && registry.isAvailable()) {\n-                registry.unregister(getRegisteredConsumerUrl());\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"unexpected error when unregister service \" + serviceKey + \"from registry\" + registry.getUrl(), t);\n-        }\n-        // unsubscribe.\n-        try {\n-            if (getConsumerUrl() != null && registry != null && registry.isAvailable()) {\n-                registry.unsubscribe(getConsumerUrl(), this);\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"unexpected error when unsubscribe service \" + serviceKey + \"from registry\" + registry.getUrl(), t);\n-        }\n-        super.destroy(); // must be executed after unsubscribing\n-        try {\n-            destroyAllInvokers();\n-        } catch (Throwable t) {\n-            logger.warn(\"Failed to destroy service \" + serviceKey, t);\n-        }\n-\n-        invokersChangedListener = null;\n-    }\n-\n-    @Override\n-    public void discordAddresses() {\n-        try {\n-            destroyAllInvokers();\n-        } catch (Throwable t) {\n-            logger.warn(\"Failed to destroy service \" + serviceKey, t);\n-        }\n-    }\n-\n-    private volatile InvokersChangedListener invokersChangedListener;\n-    private volatile boolean addressChanged;\n-\n-    public void setInvokersChangedListener(InvokersChangedListener listener) {\n-        this.invokersChangedListener = listener;\n-        if (addressChanged) {\n-            if (invokersChangedListener != null) {\n-                invokersChangedListener.onChange();\n-                this.addressChanged = false;\n-            }\n-        }\n-    }\n-\n-    protected void invokersChanged() {\n-        if (invokersChangedListener != null) {\n-            invokersChangedListener.onChange();\n-            this.addressChanged = false;\n-        } else {\n-            this.addressChanged = true;\n-        }\n-    }\n-\n-    protected abstract void destroyAllInvokers();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.registry.client.migration.InvokersChangedListener;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.Configurator;\r\n+import org.apache.dubbo.rpc.cluster.RouterChain;\r\n+import org.apache.dubbo.rpc.cluster.RouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.directory.AbstractDirectory;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\r\n+import static org.apache.dubbo.registry.Constants.SIMPLIFIED_KEY;\r\n+import static org.apache.dubbo.registry.integration.RegistryProtocol.DEFAULT_REGISTER_CONSUMER_KEYS;\r\n+import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\r\n+\r\n+\r\n+/**\r\n+ * RegistryDirectory\r\n+ */\r\n+public abstract class DynamicDirectory<T> extends AbstractDirectory<T> implements NotifyListener {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DynamicDirectory.class);\r\n+\r\n+    protected static final Cluster CLUSTER = ExtensionLoader.getExtensionLoader(Cluster.class).getAdaptiveExtension();\r\n+\r\n+    protected static final RouterFactory ROUTER_FACTORY = ExtensionLoader.getExtensionLoader(RouterFactory.class)\r\n+            .getAdaptiveExtension();\r\n+\r\n+    protected final String serviceKey; // Initialization at construction time, assertion not null\r\n+    protected final Class<T> serviceType; // Initialization at construction time, assertion not null\r\n+    protected final URL directoryUrl; // Initialization at construction time, assertion not null, and always assign non null value\r\n+    protected final boolean multiGroup;\r\n+    protected Protocol protocol; // Initialization at the time of injection, the assertion is not null\r\n+    protected Registry registry; // Initialization at the time of injection, the assertion is not null\r\n+    protected volatile boolean forbidden = false;\r\n+    protected boolean shouldRegister;\r\n+    protected boolean shouldSimplified;\r\n+\r\n+    protected volatile URL overrideDirectoryUrl; // Initialization at construction time, assertion not null, and always assign non null value\r\n+\r\n+    protected volatile URL registeredConsumerUrl;\r\n+\r\n+    /**\r\n+     * override rules\r\n+     * Priority: override>-D>consumer>provider\r\n+     * Rule one: for a certain provider <ip:port,timeout=100>\r\n+     * Rule two: for all providers <* ,timeout=5000>\r\n+     */\r\n+    protected volatile List<Configurator> configurators; // The initial value is null and the midway may be assigned to null, please use the local variable reference\r\n+\r\n+    protected volatile List<Invoker<T>> invokers;\r\n+    // Set<invokerUrls> cache invokeUrls to invokers mapping.\r\n+\r\n+    protected ServiceInstancesChangedListener serviceListener;\r\n+\r\n+    public DynamicDirectory(Class<T> serviceType, URL url) {\r\n+        super(url, true);\r\n+        if (serviceType == null) {\r\n+            throw new IllegalArgumentException(\"service type is null.\");\r\n+        }\r\n+\r\n+        shouldRegister = !ANY_VALUE.equals(url.getServiceInterface()) && url.getParameter(REGISTER_KEY, true);\r\n+        shouldSimplified = url.getParameter(SIMPLIFIED_KEY, false);\r\n+        if (url.getServiceKey() == null || url.getServiceKey().length() == 0) {\r\n+            throw new IllegalArgumentException(\"registry serviceKey is null.\");\r\n+        }\r\n+        this.serviceType = serviceType;\r\n+        this.serviceKey = super.getConsumerUrl().getServiceKey();\r\n+\r\n+        this.overrideDirectoryUrl = this.directoryUrl = turnRegistryUrlToConsumerUrl(url);\r\n+        String group = directoryUrl.getParameter(GROUP_KEY, \"\");\r\n+        this.multiGroup = group != null && (ANY_VALUE.equals(group) || group.contains(\",\"));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceListener(ServiceInstancesChangedListener instanceListener) {\r\n+        this.serviceListener = instanceListener;\r\n+    }\r\n+\r\n+    private URL turnRegistryUrlToConsumerUrl(URL url) {\r\n+        return URLBuilder.from(url)\r\n+                .setHost(queryMap.get(REGISTER_IP_KEY) == null ? url.getHost() : queryMap.get(REGISTER_IP_KEY))\r\n+                .setPort(0)\r\n+                .setProtocol(queryMap.get(PROTOCOL_KEY) == null ? DUBBO : queryMap.get(PROTOCOL_KEY))\r\n+                .setPath(queryMap.get(INTERFACE_KEY))\r\n+                .clearParameters()\r\n+                .addParameters(queryMap)\r\n+                .removeParameter(MONITOR_KEY)\r\n+                .build();\r\n+    }\r\n+\r\n+    public void setProtocol(Protocol protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    public void setRegistry(Registry registry) {\r\n+        this.registry = registry;\r\n+    }\r\n+\r\n+    public Registry getRegistry() {\r\n+        return registry;\r\n+    }\r\n+\r\n+    public boolean isShouldRegister() {\r\n+        return shouldRegister;\r\n+    }\r\n+\r\n+    public void subscribe(URL url) {\r\n+        setConsumerUrl(url);\r\n+        registry.subscribe(url, this);\r\n+    }\r\n+\r\n+    public void unSubscribe(URL url) {\r\n+        setConsumerUrl(null);\r\n+        registry.unsubscribe(url, this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<Invoker<T>> doList(Invocation invocation) {\r\n+        if (forbidden) {\r\n+            // 1. No service provider 2. Service providers are disabled\r\n+            throw new RpcException(RpcException.FORBIDDEN_EXCEPTION, \"No provider available from registry \" +\r\n+                    getUrl().getAddress() + \" for service \" + getConsumerUrl().getServiceKey() + \" on consumer \" +\r\n+                    NetUtils.getLocalHost() + \" use dubbo version \" + Version.getVersion() +\r\n+                    \", please check status of providers(disabled, not registered or in blacklist).\");\r\n+        }\r\n+\r\n+        if (multiGroup) {\r\n+            return this.invokers == null ? Collections.emptyList() : this.invokers;\r\n+        }\r\n+\r\n+        List<Invoker<T>> invokers = null;\r\n+        try {\r\n+            // Get invokers from cache, only runtime routers will be executed.\r\n+            invokers = routerChain.route(getConsumerUrl(), invocation);\r\n+        } catch (Throwable t) {\r\n+            logger.error(\"Failed to execute router: \" + getUrl() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+\r\n+        return invokers == null ? Collections.emptyList() : invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return serviceType;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<Invoker<T>> getAllInvokers() {\r\n+        return invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getConsumerUrl() {\r\n+        return this.overrideDirectoryUrl;\r\n+    }\r\n+\r\n+    public URL getRegisteredConsumerUrl() {\r\n+        return registeredConsumerUrl;\r\n+    }\r\n+\r\n+    public void setRegisteredConsumerUrl(URL url) {\r\n+        if (!shouldSimplified) {\r\n+            this.registeredConsumerUrl = url.addParameters(CATEGORY_KEY, CONSUMERS_CATEGORY, CHECK_KEY,\r\n+                    String.valueOf(false));\r\n+        } else {\r\n+            this.registeredConsumerUrl = URL.valueOf(url, DEFAULT_REGISTER_CONSUMER_KEYS, null).addParameters(\r\n+                    CATEGORY_KEY, CONSUMERS_CATEGORY, CHECK_KEY, String.valueOf(false));\r\n+        }\r\n+    }\r\n+\r\n+    public void buildRouterChain(URL url) {\r\n+        this.setRouterChain(RouterChain.buildChain(url));\r\n+    }\r\n+\r\n+    public List<Invoker<T>> getInvokers() {\r\n+        return invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (isDestroyed()) {\r\n+            return;\r\n+        }\r\n+\r\n+        // unregister.\r\n+        try {\r\n+            if (getRegisteredConsumerUrl() != null && registry != null && registry.isAvailable()) {\r\n+                registry.unregister(getRegisteredConsumerUrl());\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"unexpected error when unregister service \" + serviceKey + \"from registry\" + registry.getUrl(), t);\r\n+        }\r\n+        // unsubscribe.\r\n+        try {\r\n+            if (getConsumerUrl() != null && registry != null && registry.isAvailable()) {\r\n+                registry.unsubscribe(getConsumerUrl(), this);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"unexpected error when unsubscribe service \" + serviceKey + \"from registry\" + registry.getUrl(), t);\r\n+        }\r\n+        super.destroy(); // must be executed after unsubscribing\r\n+        try {\r\n+            destroyAllInvokers();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Failed to destroy service \" + serviceKey, t);\r\n+        }\r\n+\r\n+        invokersChangedListener = null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void discordAddresses() {\r\n+        try {\r\n+            destroyAllInvokers();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Failed to destroy service \" + serviceKey, t);\r\n+        }\r\n+    }\r\n+\r\n+    private volatile InvokersChangedListener invokersChangedListener;\r\n+    private volatile boolean addressChanged;\r\n+\r\n+    public void setInvokersChangedListener(InvokersChangedListener listener) {\r\n+        this.invokersChangedListener = listener;\r\n+        if (addressChanged) {\r\n+            if (invokersChangedListener != null) {\r\n+                invokersChangedListener.onChange();\r\n+                this.addressChanged = false;\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    protected void invokersChanged() {\r\n+        if (invokersChangedListener != null) {\r\n+            invokersChangedListener.onChange();\r\n+            this.addressChanged = false;\r\n+        } else {\r\n+            this.addressChanged = true;\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract void destroyAllInvokers();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/integration/InterfaceCompatibleRegistryProtocol.java", "source2": "org/apache/dubbo/registry/integration/InterfaceCompatibleRegistryProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,73 +1,73 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory;\n-import org.apache.dubbo.registry.client.migration.MigrationInvoker;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY;\n-\n-/**\n- * RegistryProtocol\n- */\n-public class InterfaceCompatibleRegistryProtocol extends RegistryProtocol {\n-\n-    @Override\n-    protected URL getRegistryUrl(Invoker<?> originInvoker) {\n-        URL registryUrl = originInvoker.getUrl();\n-        if (REGISTRY_PROTOCOL.equals(registryUrl.getProtocol())) {\n-            String protocol = registryUrl.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY);\n-            registryUrl = registryUrl.setProtocol(protocol).removeParameter(REGISTRY_KEY);\n-        }\n-        return registryUrl;\n-    }\n-\n-    @Override\n-    protected URL getRegistryUrl(URL url) {\n-        return URLBuilder.from(url)\n-                .setProtocol(url.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY))\n-                .removeParameter(REGISTRY_KEY)\n-                .build();\n-    }\n-\n-    @Override\n-    public <T> ClusterInvoker<T> getInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\n-        DynamicDirectory<T> directory = new RegistryDirectory<>(type, url);\n-        return doCreateInvoker(directory, cluster, registry, type);\n-    }\n-\n-    @Override\n-    public <T> ClusterInvoker<T> getServiceDiscoveryInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\n-        registry = registryFactory.getRegistry(super.getRegistryUrl(url));\n-        DynamicDirectory<T> directory = new ServiceDiscoveryRegistryDirectory<>(type, url);\n-        return doCreateInvoker(directory, cluster, registry, type);\n-    }\n-\n-    protected <T> ClusterInvoker<T> getMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\n-//        ClusterInvoker<T> invoker = getInvoker(cluster, registry, type, url);\n-        return new MigrationInvoker<T>(registryProtocol, cluster, registry, type, url, consumerUrl);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory;\r\n+import org.apache.dubbo.registry.client.migration.MigrationInvoker;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY;\r\n+\r\n+/**\r\n+ * RegistryProtocol\r\n+ */\r\n+public class InterfaceCompatibleRegistryProtocol extends RegistryProtocol {\r\n+\r\n+    @Override\r\n+    protected URL getRegistryUrl(Invoker<?> originInvoker) {\r\n+        URL registryUrl = originInvoker.getUrl();\r\n+        if (REGISTRY_PROTOCOL.equals(registryUrl.getProtocol())) {\r\n+            String protocol = registryUrl.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY);\r\n+            registryUrl = registryUrl.setProtocol(protocol).removeParameter(REGISTRY_KEY);\r\n+        }\r\n+        return registryUrl;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected URL getRegistryUrl(URL url) {\r\n+        return URLBuilder.from(url)\r\n+                .setProtocol(url.getParameter(REGISTRY_KEY, DEFAULT_REGISTRY))\r\n+                .removeParameter(REGISTRY_KEY)\r\n+                .build();\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> ClusterInvoker<T> getInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\r\n+        DynamicDirectory<T> directory = new RegistryDirectory<>(type, url);\r\n+        return doCreateInvoker(directory, cluster, registry, type);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> ClusterInvoker<T> getServiceDiscoveryInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\r\n+        registry = registryFactory.getRegistry(super.getRegistryUrl(url));\r\n+        DynamicDirectory<T> directory = new ServiceDiscoveryRegistryDirectory<>(type, url);\r\n+        return doCreateInvoker(directory, cluster, registry, type);\r\n+    }\r\n+\r\n+    protected <T> ClusterInvoker<T> getMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\r\n+//        ClusterInvoker<T> invoker = getInvoker(cluster, registry, type, url);\r\n+        return new MigrationInvoker<T>(registryProtocol, cluster, registry, type, url, consumerUrl);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/integration/InvokersChangedListener.java", "source2": "org/apache/dubbo/registry/integration/InvokersChangedListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,21 +1,21 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-public interface InvokersChangedListener {\n-    void onChange();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+public interface InvokersChangedListener {\r\n+    void onChange();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/integration/RegistryProtocol.java", "source2": "org/apache/dubbo/registry/integration/RegistryProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,843 +1,843 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.timer.HashedWheelTimer;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.registry.RegistryService;\n-import org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory;\n-import org.apache.dubbo.registry.client.migration.ServiceDiscoveryMigrationInvoker;\n-import org.apache.dubbo.registry.retry.ReExportTask;\n-import org.apache.dubbo.registry.support.SkipFailbackWrapperException;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Configurator;\n-import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\n-import org.apache.dubbo.rpc.cluster.support.MergeableCluster;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.protocol.InvokerWrapper;\n-\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.TimeUnit;\n-\n-import static java.util.concurrent.Executors.newSingleThreadExecutor;\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.HIDDEN_KEY_PREFIX;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ON_CONNECT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ON_DISCONNECT_KEY;\n-import static org.apache.dubbo.common.constants.FilterConstants.VALIDATION_KEY;\n-import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\n-import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.OVERRIDE_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\n-import static org.apache.dubbo.common.utils.UrlUtils.classifyUrls;\n-import static org.apache.dubbo.registry.Constants.CONFIGURATORS_SUFFIX;\n-import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;\n-import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;\n-import static org.apache.dubbo.registry.Constants.SIMPLIFIED_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\n-import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\n-import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\n-import static org.apache.dubbo.rpc.Constants.INTERFACES;\n-import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.WARMUP_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.WEIGHT_KEY;\n-\n-/**\n- * TODO, replace RegistryProtocol completely in the future.\n- */\n-public class RegistryProtocol implements Protocol {\n-    public static final String[] DEFAULT_REGISTER_PROVIDER_KEYS = {\n-            APPLICATION_KEY, CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,\n-            GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY,\n-            WEIGHT_KEY, TIMESTAMP_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\n-    };\n-\n-    public static final String[] DEFAULT_REGISTER_CONSUMER_KEYS = {\n-            APPLICATION_KEY, VERSION_KEY, GROUP_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\n-    };\n-\n-    private final static Logger logger = LoggerFactory.getLogger(InterfaceCompatibleRegistryProtocol.class);\n-    private final Map<URL, NotifyListener> overrideListeners = new ConcurrentHashMap<>();\n-    private final Map<String, ServiceConfigurationListener> serviceConfigurationListeners = new ConcurrentHashMap<>();\n-    private final ProviderConfigurationListener providerConfigurationListener = new ProviderConfigurationListener();\n-    // To solve the problem of RMI repeated exposure port conflicts, the services that have been exposed are no longer exposed.\n-    // providerurl <--> exporter\n-    private final ConcurrentMap<String, ExporterChangeableWrapper<?>> bounds = new ConcurrentHashMap<>();\n-    protected Protocol protocol;\n-    protected RegistryFactory registryFactory;\n-    protected ProxyFactory proxyFactory;\n-\n-    private ConcurrentMap<URL, ReExportTask> reExportFailedTasks = new ConcurrentHashMap<>();\n-    private HashedWheelTimer retryTimer = new HashedWheelTimer(new NamedThreadFactory(\"DubboReexportTimer\", true), DEFAULT_REGISTRY_RETRY_PERIOD, TimeUnit.MILLISECONDS, 128);\n-\n-    // get the parameters which shouldn't been displayed in url string(Starting with .)\n-    private static String[] getHiddenKeys(URL url) {\n-        Map<String, String> params = url.getParameters();\n-        if (CollectionUtils.isNotEmptyMap(params)) {\n-            return params.keySet().stream()\n-                    .filter(k -> k.startsWith(HIDDEN_KEY_PREFIX))\n-                    .toArray(String[]::new);\n-        } else {\n-            return new String[0];\n-        }\n-    }\n-\n-    public void setProtocol(Protocol protocol) {\n-        this.protocol = protocol;\n-    }\n-\n-    public void setRegistryFactory(RegistryFactory registryFactory) {\n-        this.registryFactory = registryFactory;\n-    }\n-\n-    public void setProxyFactory(ProxyFactory proxyFactory) {\n-        this.proxyFactory = proxyFactory;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return 9090;\n-    }\n-\n-    public Map<URL, NotifyListener> getOverrideListeners() {\n-        return overrideListeners;\n-    }\n-\n-    private void registerStatedUrl(URL registryUrl, URL registeredProviderUrl, boolean registered) {\n-        ProviderModel model = ApplicationModel.getProviderModel(registeredProviderUrl.getServiceKey());\n-        model.addStatedUrl(new ProviderModel.RegisterStatedURL(\n-                registeredProviderUrl,\n-                registryUrl,\n-                registered));\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(final Invoker<T> originInvoker) throws RpcException {\n-        URL registryUrl = getRegistryUrl(originInvoker);\n-        // url to export locally\n-        URL providerUrl = getProviderUrl(originInvoker);\n-\n-        // Subscribe the override data\n-        // FIXME When the provider subscribes, it will affect the scene : a certain JVM exposes the service and call\n-        //  the same service. Because the subscribed is cached key with the name of the service, it causes the\n-        //  subscription information to cover.\n-        final URL overrideSubscribeUrl = getSubscribedOverrideUrl(providerUrl);\n-        final OverrideListener overrideSubscribeListener = new OverrideListener(overrideSubscribeUrl, originInvoker);\n-        overrideListeners.put(overrideSubscribeUrl, overrideSubscribeListener);\n-\n-        providerUrl = overrideUrlWithConfig(providerUrl, overrideSubscribeListener);\n-        // export invoker\n-        final ExporterChangeableWrapper<T> exporter = doLocalExport(originInvoker, providerUrl);\n-\n-        // url to registry\n-        final Registry registry = getRegistry(originInvoker);\n-        final URL registeredProviderUrl = getUrlToRegistry(providerUrl, registryUrl);\n-\n-        // decide if we need to delay publish\n-        boolean register = providerUrl.getParameter(REGISTER_KEY, true);\n-        if (register) {\n-            registry.register(registeredProviderUrl);\n-        }\n-\n-        // register stated url on provider model\n-        registerStatedUrl(registryUrl, registeredProviderUrl, register);\n-\n-\n-        exporter.setRegisterUrl(registeredProviderUrl);\n-        exporter.setSubscribeUrl(overrideSubscribeUrl);\n-\n-        // Deprecated! Subscribe to override rules in 2.6.x or before.\n-        registry.subscribe(overrideSubscribeUrl, overrideSubscribeListener);\n-\n-        notifyExport(exporter);\n-        //Ensure that a new exporter instance is returned every time export\n-        return new DestroyableExporter<>(exporter);\n-    }\n-\n-    private <T> void notifyExport(ExporterChangeableWrapper<T> exporter) {\n-        List<RegistryProtocolListener> listeners = ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\n-                .getActivateExtension(exporter.getOriginInvoker().getUrl(), \"registry.protocol.listener\");\n-        if (CollectionUtils.isNotEmpty(listeners)) {\n-            for (RegistryProtocolListener listener : listeners) {\n-                listener.onExport(this, exporter);\n-            }\n-        }\n-    }\n-\n-    private URL overrideUrlWithConfig(URL providerUrl, OverrideListener listener) {\n-        providerUrl = providerConfigurationListener.overrideUrl(providerUrl);\n-        ServiceConfigurationListener serviceConfigurationListener = new ServiceConfigurationListener(providerUrl, listener);\n-        serviceConfigurationListeners.put(providerUrl.getServiceKey(), serviceConfigurationListener);\n-        return serviceConfigurationListener.overrideUrl(providerUrl);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private <T> ExporterChangeableWrapper<T> doLocalExport(final Invoker<T> originInvoker, URL providerUrl) {\n-        String key = getCacheKey(originInvoker);\n-\n-        return (ExporterChangeableWrapper<T>) bounds.computeIfAbsent(key, s -> {\n-            Invoker<?> invokerDelegate = new InvokerDelegate<>(originInvoker, providerUrl);\n-            return new ExporterChangeableWrapper<>((Exporter<T>) protocol.export(invokerDelegate), originInvoker);\n-        });\n-    }\n-\n-    public <T> void reExport(Exporter<T> exporter, URL newInvokerUrl) {\n-        if (exporter instanceof ExporterChangeableWrapper) {\n-            ExporterChangeableWrapper<T> exporterWrapper = (ExporterChangeableWrapper<T>) exporter;\n-            Invoker<T> originInvoker = exporterWrapper.getOriginInvoker();\n-            reExport(originInvoker, newInvokerUrl);\n-        }\n-    }\n-\n-    /**\n-     * Reexport the invoker of the modified url\n-     *\n-     * @param originInvoker\n-     * @param newInvokerUrl\n-     * @param <T>\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> void reExport(final Invoker<T> originInvoker, URL newInvokerUrl) {\n-        String key = getCacheKey(originInvoker);\n-        ExporterChangeableWrapper<T> exporter = (ExporterChangeableWrapper<T>) bounds.get(key);\n-        URL registeredUrl = exporter.getRegisterUrl();\n-\n-        URL registryUrl = getRegistryUrl(originInvoker);\n-        URL newProviderUrl = getUrlToRegistry(newInvokerUrl, registryUrl);\n-\n-        // update local exporter\n-        Invoker<T> invokerDelegate = new InvokerDelegate<T>(originInvoker, newInvokerUrl);\n-        exporter.setExporter(protocol.export(invokerDelegate));\n-\n-        // update registry\n-        if (!newProviderUrl.equals(registeredUrl)) {\n-            try {\n-                doReExport(originInvoker, exporter, registryUrl, registeredUrl, newProviderUrl);\n-            } catch (Exception e) {\n-                ReExportTask oldTask = reExportFailedTasks.get(registeredUrl);\n-                if (oldTask != null) {\n-                    return;\n-                }\n-                ReExportTask task = new ReExportTask(\n-                        () -> doReExport(originInvoker, exporter, registryUrl, registeredUrl, newProviderUrl),\n-                        registeredUrl,\n-                        null\n-                );\n-                oldTask = reExportFailedTasks.putIfAbsent(registeredUrl, task);\n-                if (oldTask == null) {\n-                    // never has a retry task. then start a new task for retry.\n-                    retryTimer.newTimeout(task, registryUrl.getParameter(REGISTRY_RETRY_PERIOD_KEY, DEFAULT_REGISTRY_RETRY_PERIOD), TimeUnit.MILLISECONDS);\n-                }\n-            }\n-        }\n-    }\n-\n-    private <T> void doReExport(final Invoker<T> originInvoker, ExporterChangeableWrapper<T> exporter,\n-                                URL registryUrl, URL oldProviderUrl, URL newProviderUrl) {\n-        if (getProviderUrl(originInvoker).getParameter(REGISTER_KEY, true)) {\n-            Registry registry = null;\n-            try {\n-                registry = getRegistry(originInvoker);\n-            } catch (Exception e) {\n-                throw new SkipFailbackWrapperException(e);\n-            }\n-\n-            logger.info(\"Try to unregister old url: \" + oldProviderUrl);\n-            registry.reExportUnregister(oldProviderUrl);\n-\n-            logger.info(\"Try to register new url: \" + newProviderUrl);\n-            registry.reExportRegister(newProviderUrl);\n-        }\n-        try {\n-            ProviderModel.RegisterStatedURL statedUrl = getStatedUrl(registryUrl, newProviderUrl);\n-            statedUrl.setProviderUrl(newProviderUrl);\n-            exporter.setRegisterUrl(newProviderUrl);\n-        } catch (Exception e) {\n-            throw new SkipFailbackWrapperException(e);\n-        }\n-    }\n-\n-    private ProviderModel.RegisterStatedURL getStatedUrl(URL registryUrl, URL providerUrl) {\n-        ProviderModel providerModel = ApplicationModel.getServiceRepository()\n-                .lookupExportedService(providerUrl.getServiceKey());\n-\n-        List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\n-        return statedUrls.stream()\n-                .filter(u -> u.getRegistryUrl().equals(registryUrl)\n-                        && u.getProviderUrl().getProtocol().equals(providerUrl.getProtocol()))\n-                .findFirst().orElseThrow(() -> new IllegalStateException(\"There should have at least one registered url.\"));\n-    }\n-\n-    /**\n-     * Get an instance of registry based on the address of invoker\n-     *\n-     * @param originInvoker\n-     * @return\n-     */\n-    protected Registry getRegistry(final Invoker<?> originInvoker) {\n-        URL registryUrl = getRegistryUrl(originInvoker);\n-        return registryFactory.getRegistry(registryUrl);\n-    }\n-\n-    protected URL getRegistryUrl(Invoker<?> originInvoker) {\n-        return originInvoker.getUrl();\n-    }\n-\n-    protected URL getRegistryUrl(URL url) {\n-        if (SERVICE_REGISTRY_PROTOCOL.equals(url.getProtocol())) {\n-            return url;\n-        }\n-        return url.addParameter(REGISTRY_KEY, url.getProtocol()).setProtocol(SERVICE_REGISTRY_PROTOCOL);\n-    }\n-\n-    /**\n-     * Return the url that is registered to the registry and filter the url parameter once\n-     *\n-     * @param providerUrl\n-     * @return url to registry.\n-     */\n-    private URL getUrlToRegistry(final URL providerUrl, final URL registryUrl) {\n-\n-        URL registeredProviderUrl = removeUselessParameters(providerUrl);\n-\n-        //The address you see at the registry\n-        if (!registryUrl.getParameter(SIMPLIFIED_KEY, false)) {\n-            return registeredProviderUrl.removeParameters(getHiddenKeys(registeredProviderUrl)).removeParameters(\n-                    MONITOR_KEY, BIND_IP_KEY, BIND_PORT_KEY, QOS_ENABLE, QOS_HOST, QOS_PORT, ACCEPT_FOREIGN_IP, VALIDATION_KEY,\n-                    INTERFACES);\n-        } else {\n-            String extraKeys = registryUrl.getParameter(EXTRA_KEYS_KEY, \"\");\n-            // if path is not the same as interface name then we should keep INTERFACE_KEY,\n-            // otherwise, the registry structure of zookeeper would be '/dubbo/path/providers',\n-            // but what we expect is '/dubbo/interface/providers'\n-            if (!registeredProviderUrl.getPath().equals(registeredProviderUrl.getParameter(INTERFACE_KEY))) {\n-                if (StringUtils.isNotEmpty(extraKeys)) {\n-                    extraKeys += \",\";\n-                }\n-                extraKeys += INTERFACE_KEY;\n-            }\n-            String[] paramsToRegistry = getParamsToRegistry(DEFAULT_REGISTER_PROVIDER_KEYS\n-                    , COMMA_SPLIT_PATTERN.split(extraKeys));\n-            return URL.valueOf(registeredProviderUrl, paramsToRegistry, registeredProviderUrl.getParameter(METHODS_KEY, (String[]) null));\n-        }\n-\n-    }\n-\n-    /**\n-     * Remove information that does not require registration\n-     * @param providerUrl\n-     * @return\n-     */\n-    private URL removeUselessParameters(URL providerUrl) {\n-        return providerUrl.removeParameters(ON_CONNECT_KEY, ON_DISCONNECT_KEY);\n-    }\n-\n-    private URL getSubscribedOverrideUrl(URL registeredProviderUrl) {\n-        return registeredProviderUrl.setProtocol(PROVIDER_PROTOCOL)\n-                .addParameters(CATEGORY_KEY, CONFIGURATORS_CATEGORY, CHECK_KEY, String.valueOf(false));\n-    }\n-\n-    /**\n-     * Get the address of the providerUrl through the url of the invoker\n-     *\n-     * @param originInvoker\n-     * @return\n-     */\n-    private URL getProviderUrl(final Invoker<?> originInvoker) {\n-        String export = originInvoker.getUrl().getParameterAndDecoded(EXPORT_KEY);\n-        if (export == null || export.length() == 0) {\n-            throw new IllegalArgumentException(\"The registry export url is null! registry: \" + originInvoker.getUrl());\n-        }\n-        return URL.valueOf(export);\n-    }\n-\n-    /**\n-     * Get the key cached in bounds by invoker\n-     *\n-     * @param originInvoker\n-     * @return\n-     */\n-    private String getCacheKey(final Invoker<?> originInvoker) {\n-        URL providerUrl = getProviderUrl(originInvoker);\n-        String key = providerUrl.removeParameters(\"dynamic\", \"enabled\").toFullString();\n-        return key;\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\n-        url = getRegistryUrl(url);\n-        Registry registry = registryFactory.getRegistry(url);\n-        if (RegistryService.class.equals(type)) {\n-            return proxyFactory.getInvoker((T) registry, type, url);\n-        }\n-\n-        // group=\"a,b\" or group=\"*\"\n-        Map<String, String> qs = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\n-        String group = qs.get(GROUP_KEY);\n-        if (group != null && group.length() > 0) {\n-            if ((COMMA_SPLIT_PATTERN.split(group)).length > 1 || \"*\".equals(group)) {\n-                return doRefer(Cluster.getCluster(MergeableCluster.NAME), registry, type, url, qs);\n-            }\n-        }\n-\n-        Cluster cluster = Cluster.getCluster(qs.get(CLUSTER_KEY));\n-        return doRefer(cluster, registry, type, url, qs);\n-    }\n-\n-    protected <T> Invoker<T> doRefer(Cluster cluster, Registry registry, Class<T> type, URL url, Map<String, String> parameters) {\n-        URL consumerUrl = new URL(CONSUMER_PROTOCOL, parameters.remove(REGISTER_IP_KEY), 0, type.getName(), parameters);\n-        ClusterInvoker<T> migrationInvoker = getMigrationInvoker(this, cluster, registry, type, url, consumerUrl);\n-        return interceptInvoker(migrationInvoker, url, consumerUrl);\n-    }\n-\n-    protected <T> ClusterInvoker<T> getMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\n-        return new ServiceDiscoveryMigrationInvoker<T>(registryProtocol, cluster, registry, type, url, consumerUrl);\n-    }\n-\n-    protected <T> Invoker<T> interceptInvoker(ClusterInvoker<T> invoker, URL url, URL consumerUrl) {\n-        List<RegistryProtocolListener> listeners = findRegistryProtocolListeners(url);\n-        if (CollectionUtils.isEmpty(listeners)) {\n-            return invoker;\n-        }\n-\n-        for (RegistryProtocolListener listener : listeners) {\n-            listener.onRefer(this, invoker, consumerUrl);\n-        }\n-        return invoker;\n-    }\n-\n-    public <T> ClusterInvoker<T> getServiceDiscoveryInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\n-        DynamicDirectory<T> directory = new ServiceDiscoveryRegistryDirectory<>(type, url);\n-        return doCreateInvoker(directory, cluster, registry, type);\n-    }\n-\n-    public <T> ClusterInvoker<T> getInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\n-        // FIXME, this method is currently not used, create the right registry before enable.\n-        DynamicDirectory<T> directory = new RegistryDirectory<>(type, url);\n-        return doCreateInvoker(directory, cluster, registry, type);\n-    }\n-\n-    protected <T> ClusterInvoker<T> doCreateInvoker(DynamicDirectory<T> directory, Cluster cluster, Registry registry, Class<T> type) {\n-        directory.setRegistry(registry);\n-        directory.setProtocol(protocol);\n-        // all attributes of REFER_KEY\n-        Map<String, String> parameters = new HashMap<String, String>(directory.getConsumerUrl().getParameters());\n-        URL urlToRegistry = new URL(CONSUMER_PROTOCOL, parameters.remove(REGISTER_IP_KEY), 0, type.getName(), parameters);\n-        if (directory.isShouldRegister()) {\n-            directory.setRegisteredConsumerUrl(urlToRegistry);\n-            registry.register(directory.getRegisteredConsumerUrl());\n-        }\n-        directory.buildRouterChain(urlToRegistry);\n-        directory.subscribe(toSubscribeUrl(urlToRegistry));\n-\n-        return (ClusterInvoker<T>) cluster.join(directory);\n-    }\n-\n-    public <T> void reRefer(ClusterInvoker<?> invoker, URL newSubscribeUrl) {\n-        if (!(invoker instanceof MigrationClusterInvoker)) {\n-            logger.error(\"Only invoker type of MigrationClusterInvoker supports reRefer, current invoker is \" + invoker.getClass());\n-            return;\n-        }\n-\n-        MigrationClusterInvoker<?> migrationClusterInvoker = (MigrationClusterInvoker<?>)invoker;\n-        migrationClusterInvoker.reRefer(newSubscribeUrl);\n-    }\n-\n-    public static URL toSubscribeUrl(URL url) {\n-        return url.addParameter(CATEGORY_KEY, PROVIDERS_CATEGORY + \",\" + CONFIGURATORS_CATEGORY + \",\" + ROUTERS_CATEGORY);\n-    }\n-\n-    protected List<RegistryProtocolListener> findRegistryProtocolListeners(URL url) {\n-        return ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\n-                .getActivateExtension(url, \"registry.protocol.listener\");\n-    }\n-\n-    // available to test\n-    public String[] getParamsToRegistry(String[] defaultKeys, String[] additionalParameterKeys) {\n-        int additionalLen = additionalParameterKeys.length;\n-        String[] registryParams = new String[defaultKeys.length + additionalLen];\n-        System.arraycopy(defaultKeys, 0, registryParams, 0, defaultKeys.length);\n-        System.arraycopy(additionalParameterKeys, 0, registryParams, defaultKeys.length, additionalLen);\n-        return registryParams;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        List<RegistryProtocolListener> listeners = ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\n-                .getLoadedExtensionInstances();\n-        if (CollectionUtils.isNotEmpty(listeners)) {\n-            for (RegistryProtocolListener listener : listeners) {\n-                listener.onDestroy();\n-            }\n-        }\n-\n-        List<Exporter<?>> exporters = new ArrayList<Exporter<?>>(bounds.values());\n-        for (Exporter<?> exporter : exporters) {\n-            exporter.unexport();\n-        }\n-        bounds.clear();\n-\n-        ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension()\n-                .removeListener(ApplicationModel.getApplication() + CONFIGURATORS_SUFFIX, providerConfigurationListener);\n-    }\n-\n-    @Override\n-    public List<ProtocolServer> getServers() {\n-        return protocol.getServers();\n-    }\n-\n-    // merge the urls of configurators\n-    private static URL getConfiguredInvokerUrl(List<Configurator> configurators, URL url) {\n-        if (configurators != null && configurators.size() > 0) {\n-            for (Configurator configurator : configurators) {\n-                url = configurator.configure(url);\n-            }\n-        }\n-        return url;\n-    }\n-\n-    public static class InvokerDelegate<T> extends InvokerWrapper<T> {\n-        private final Invoker<T> invoker;\n-\n-        /**\n-         * @param invoker\n-         * @param url     invoker.getUrl return this value\n-         */\n-        public InvokerDelegate(Invoker<T> invoker, URL url) {\n-            super(invoker, url);\n-            this.invoker = invoker;\n-        }\n-\n-        public Invoker<T> getInvoker() {\n-            if (invoker instanceof InvokerDelegate) {\n-                return ((InvokerDelegate<T>) invoker).getInvoker();\n-            } else {\n-                return invoker;\n-            }\n-        }\n-    }\n-\n-    private static class DestroyableExporter<T> implements Exporter<T> {\n-\n-        private Exporter<T> exporter;\n-\n-        public DestroyableExporter(Exporter<T> exporter) {\n-            this.exporter = exporter;\n-        }\n-\n-        @Override\n-        public Invoker<T> getInvoker() {\n-            return exporter.getInvoker();\n-        }\n-\n-        @Override\n-        public void unexport() {\n-            exporter.unexport();\n-        }\n-    }\n-\n-    /**\n-     * Reexport: the exporter destroy problem in protocol\n-     * 1.Ensure that the exporter returned by registryprotocol can be normal destroyed\n-     * 2.No need to re-register to the registry after notify\n-     * 3.The invoker passed by the export method , would better to be the invoker of exporter\n-     */\n-    private class OverrideListener implements NotifyListener {\n-        private final URL subscribeUrl;\n-        private final Invoker originInvoker;\n-\n-\n-        private List<Configurator> configurators;\n-\n-        public OverrideListener(URL subscribeUrl, Invoker originalInvoker) {\n-            this.subscribeUrl = subscribeUrl;\n-            this.originInvoker = originalInvoker;\n-        }\n-\n-        /**\n-         * @param urls The list of registered information, is always not empty, The meaning is the same as the\n-         *             return value of {@link org.apache.dubbo.registry.RegistryService#lookup(URL)}.\n-         */\n-        @Override\n-        public synchronized void notify(List<URL> urls) {\n-            logger.debug(\"original override urls: \" + urls);\n-\n-            List<URL> matchedUrls = getMatchedUrls(urls, subscribeUrl.addParameter(CATEGORY_KEY,\n-                    CONFIGURATORS_CATEGORY));\n-            logger.debug(\"subscribe url: \" + subscribeUrl + \", override urls: \" + matchedUrls);\n-\n-            // No matching results\n-            if (matchedUrls.isEmpty()) {\n-                return;\n-            }\n-\n-            this.configurators = Configurator.toConfigurators(classifyUrls(matchedUrls, UrlUtils::isConfigurator))\n-                    .orElse(configurators);\n-\n-            doOverrideIfNecessary();\n-        }\n-\n-        public synchronized void doOverrideIfNecessary() {\n-            final Invoker<?> invoker;\n-            if (originInvoker instanceof InvokerDelegate) {\n-                invoker = ((InvokerDelegate<?>) originInvoker).getInvoker();\n-            } else {\n-                invoker = originInvoker;\n-            }\n-            //The origin invoker\n-            URL originUrl = RegistryProtocol.this.getProviderUrl(invoker);\n-            String key = getCacheKey(originInvoker);\n-            ExporterChangeableWrapper<?> exporter = bounds.get(key);\n-            if (exporter == null) {\n-                logger.warn(new IllegalStateException(\"error state, exporter should not be null\"));\n-                return;\n-            }\n-            //The current, may have been merged many times\n-            URL currentUrl = exporter.getInvoker().getUrl();\n-            //Merged with this configuration\n-            URL newUrl = getConfiguredInvokerUrl(configurators, currentUrl);\n-            newUrl = getConfiguredInvokerUrl(providerConfigurationListener.getConfigurators(), newUrl);\n-            newUrl = getConfiguredInvokerUrl(serviceConfigurationListeners.get(originUrl.getServiceKey())\n-                    .getConfigurators(), newUrl);\n-            if (!currentUrl.equals(newUrl)) {\n-                RegistryProtocol.this.reExport(originInvoker, newUrl);\n-                logger.info(\"exported provider url changed, origin url: \" + originUrl +\n-                        \", old export url: \" + currentUrl + \", new export url: \" + newUrl);\n-            }\n-        }\n-\n-        private List<URL> getMatchedUrls(List<URL> configuratorUrls, URL currentSubscribe) {\n-            List<URL> result = new ArrayList<URL>();\n-            for (URL url : configuratorUrls) {\n-                URL overrideUrl = url;\n-                // Compatible with the old version\n-                if (url.getParameter(CATEGORY_KEY) == null && OVERRIDE_PROTOCOL.equals(url.getProtocol())) {\n-                    overrideUrl = url.addParameter(CATEGORY_KEY, CONFIGURATORS_CATEGORY);\n-                }\n-\n-                // Check whether url is to be applied to the current service\n-                if (UrlUtils.isMatch(currentSubscribe, overrideUrl)) {\n-                    result.add(url);\n-                }\n-            }\n-            return result;\n-        }\n-    }\n-\n-    private class ServiceConfigurationListener extends AbstractConfiguratorListener {\n-        private URL providerUrl;\n-        private OverrideListener notifyListener;\n-\n-        public ServiceConfigurationListener(URL providerUrl, OverrideListener notifyListener) {\n-            this.providerUrl = providerUrl;\n-            this.notifyListener = notifyListener;\n-            this.initWith(DynamicConfiguration.getRuleKey(providerUrl) + CONFIGURATORS_SUFFIX);\n-        }\n-\n-        private <T> URL overrideUrl(URL providerUrl) {\n-            return RegistryProtocol.getConfiguredInvokerUrl(configurators, providerUrl);\n-        }\n-\n-        @Override\n-        protected void notifyOverrides() {\n-            notifyListener.doOverrideIfNecessary();\n-        }\n-    }\n-\n-    private class ProviderConfigurationListener extends AbstractConfiguratorListener {\n-\n-        public ProviderConfigurationListener() {\n-            this.initWith(ApplicationModel.getApplication() + CONFIGURATORS_SUFFIX);\n-        }\n-\n-        /**\n-         * Get existing configuration rule and override provider url before exporting.\n-         *\n-         * @param providerUrl\n-         * @param <T>\n-         * @return\n-         */\n-        private <T> URL overrideUrl(URL providerUrl) {\n-            return RegistryProtocol.getConfiguredInvokerUrl(configurators, providerUrl);\n-        }\n-\n-        @Override\n-        protected void notifyOverrides() {\n-            overrideListeners.values().forEach(listener -> ((OverrideListener) listener).doOverrideIfNecessary());\n-        }\n-    }\n-\n-    /**\n-     * exporter proxy, establish the corresponding relationship between the returned exporter and the exporter\n-     * exported by the protocol, and can modify the relationship at the time of override.\n-     *\n-     * @param <T>\n-     */\n-    private class ExporterChangeableWrapper<T> implements Exporter<T> {\n-\n-        private final ExecutorService executor = newSingleThreadExecutor(new NamedThreadFactory(\"Exporter-Unexport\", true));\n-\n-        private final Invoker<T> originInvoker;\n-        private Exporter<T> exporter;\n-        private URL subscribeUrl;\n-        private URL registerUrl;\n-\n-        public ExporterChangeableWrapper(Exporter<T> exporter, Invoker<T> originInvoker) {\n-            this.exporter = exporter;\n-            this.originInvoker = originInvoker;\n-        }\n-\n-        public Invoker<T> getOriginInvoker() {\n-            return originInvoker;\n-        }\n-\n-        @Override\n-        public Invoker<T> getInvoker() {\n-            return exporter.getInvoker();\n-        }\n-\n-        public void setExporter(Exporter<T> exporter) {\n-            this.exporter = exporter;\n-        }\n-\n-        @Override\n-        public void unexport() {\n-            String key = getCacheKey(this.originInvoker);\n-            bounds.remove(key);\n-\n-            Registry registry = RegistryProtocol.this.getRegistry(originInvoker);\n-            try {\n-                registry.unregister(registerUrl);\n-            } catch (Throwable t) {\n-                logger.warn(t.getMessage(), t);\n-            }\n-            try {\n-                NotifyListener listener = RegistryProtocol.this.overrideListeners.remove(subscribeUrl);\n-                registry.unsubscribe(subscribeUrl, listener);\n-                ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension()\n-                        .removeListener(subscribeUrl.getServiceKey() + CONFIGURATORS_SUFFIX,\n-                                serviceConfigurationListeners.get(subscribeUrl.getServiceKey()));\n-            } catch (Throwable t) {\n-                logger.warn(t.getMessage(), t);\n-            }\n-\n-            executor.submit(() -> {\n-                try {\n-                    int timeout = ConfigurationUtils.getServerShutdownTimeout();\n-                    if (timeout > 0) {\n-                        logger.info(\"Waiting \" + timeout + \"ms for registry to notify all consumers before unexport. \" +\n-                                \"Usually, this is called when you use dubbo API\");\n-                        Thread.sleep(timeout);\n-                    }\n-                    exporter.unexport();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            });\n-        }\n-\n-        public void setSubscribeUrl(URL subscribeUrl) {\n-            this.subscribeUrl = subscribeUrl;\n-        }\n-\n-        public void setRegisterUrl(URL registerUrl) {\n-            this.registerUrl = registerUrl;\n-        }\n-\n-        public URL getRegisterUrl() {\n-            return registerUrl;\n-        }\n-    }\n-\n-    // for unit test\n-    private static RegistryProtocol INSTANCE;\n-\n-    // for unit test\n-    public RegistryProtocol() {\n-        INSTANCE = this;\n-    }\n-\n-    // for unit test\n-    public static RegistryProtocol getRegistryProtocol() {\n-        if (INSTANCE == null) {\n-            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(REGISTRY_PROTOCOL); // load\n-        }\n-        return INSTANCE;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.timer.HashedWheelTimer;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.registry.RegistryService;\r\n+import org.apache.dubbo.registry.client.ServiceDiscoveryRegistryDirectory;\r\n+import org.apache.dubbo.registry.client.migration.ServiceDiscoveryMigrationInvoker;\r\n+import org.apache.dubbo.registry.retry.ReExportTask;\r\n+import org.apache.dubbo.registry.support.SkipFailbackWrapperException;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Configurator;\r\n+import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\r\n+import org.apache.dubbo.rpc.cluster.support.MergeableCluster;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.protocol.InvokerWrapper;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static java.util.concurrent.Executors.newSingleThreadExecutor;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CLUSTER_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.EXTRA_KEYS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HIDDEN_KEY_PREFIX;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.RELEASE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMESTAMP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ON_CONNECT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ON_DISCONNECT_KEY;\r\n+import static org.apache.dubbo.common.constants.FilterConstants.VALIDATION_KEY;\r\n+import static org.apache.dubbo.common.constants.QosConstants.ACCEPT_FOREIGN_IP;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_ENABLE;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_HOST;\r\n+import static org.apache.dubbo.common.constants.QosConstants.QOS_PORT;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.OVERRIDE_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.SERVICE_REGISTRY_PROTOCOL;\r\n+import static org.apache.dubbo.common.utils.UrlUtils.classifyUrls;\r\n+import static org.apache.dubbo.registry.Constants.CONFIGURATORS_SUFFIX;\r\n+import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;\r\n+import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_IP_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;\r\n+import static org.apache.dubbo.registry.Constants.SIMPLIFIED_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CHECK_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.EXCHANGER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.DEPRECATED_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.INTERFACES;\r\n+import static org.apache.dubbo.rpc.Constants.MOCK_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.EXPORT_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.WARMUP_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.WEIGHT_KEY;\r\n+\r\n+/**\r\n+ * TODO, replace RegistryProtocol completely in the future.\r\n+ */\r\n+public class RegistryProtocol implements Protocol {\r\n+    public static final String[] DEFAULT_REGISTER_PROVIDER_KEYS = {\r\n+            APPLICATION_KEY, CODEC_KEY, EXCHANGER_KEY, SERIALIZATION_KEY, CLUSTER_KEY, CONNECTIONS_KEY, DEPRECATED_KEY,\r\n+            GROUP_KEY, LOADBALANCE_KEY, MOCK_KEY, PATH_KEY, TIMEOUT_KEY, TOKEN_KEY, VERSION_KEY, WARMUP_KEY,\r\n+            WEIGHT_KEY, TIMESTAMP_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\r\n+    };\r\n+\r\n+    public static final String[] DEFAULT_REGISTER_CONSUMER_KEYS = {\r\n+            APPLICATION_KEY, VERSION_KEY, GROUP_KEY, DUBBO_VERSION_KEY, RELEASE_KEY\r\n+    };\r\n+\r\n+    private final static Logger logger = LoggerFactory.getLogger(InterfaceCompatibleRegistryProtocol.class);\r\n+    private final Map<URL, NotifyListener> overrideListeners = new ConcurrentHashMap<>();\r\n+    private final Map<String, ServiceConfigurationListener> serviceConfigurationListeners = new ConcurrentHashMap<>();\r\n+    private final ProviderConfigurationListener providerConfigurationListener = new ProviderConfigurationListener();\r\n+    // To solve the problem of RMI repeated exposure port conflicts, the services that have been exposed are no longer exposed.\r\n+    // providerurl <--> exporter\r\n+    private final ConcurrentMap<String, ExporterChangeableWrapper<?>> bounds = new ConcurrentHashMap<>();\r\n+    protected Protocol protocol;\r\n+    protected RegistryFactory registryFactory;\r\n+    protected ProxyFactory proxyFactory;\r\n+\r\n+    private ConcurrentMap<URL, ReExportTask> reExportFailedTasks = new ConcurrentHashMap<>();\r\n+    private HashedWheelTimer retryTimer = new HashedWheelTimer(new NamedThreadFactory(\"DubboReexportTimer\", true), DEFAULT_REGISTRY_RETRY_PERIOD, TimeUnit.MILLISECONDS, 128);\r\n+\r\n+    // get the parameters which shouldn't been displayed in url string(Starting with .)\r\n+    private static String[] getHiddenKeys(URL url) {\r\n+        Map<String, String> params = url.getParameters();\r\n+        if (CollectionUtils.isNotEmptyMap(params)) {\r\n+            return params.keySet().stream()\r\n+                    .filter(k -> k.startsWith(HIDDEN_KEY_PREFIX))\r\n+                    .toArray(String[]::new);\r\n+        } else {\r\n+            return new String[0];\r\n+        }\r\n+    }\r\n+\r\n+    public void setProtocol(Protocol protocol) {\r\n+        this.protocol = protocol;\r\n+    }\r\n+\r\n+    public void setRegistryFactory(RegistryFactory registryFactory) {\r\n+        this.registryFactory = registryFactory;\r\n+    }\r\n+\r\n+    public void setProxyFactory(ProxyFactory proxyFactory) {\r\n+        this.proxyFactory = proxyFactory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return 9090;\r\n+    }\r\n+\r\n+    public Map<URL, NotifyListener> getOverrideListeners() {\r\n+        return overrideListeners;\r\n+    }\r\n+\r\n+    private void registerStatedUrl(URL registryUrl, URL registeredProviderUrl, boolean registered) {\r\n+        ProviderModel model = ApplicationModel.getProviderModel(registeredProviderUrl.getServiceKey());\r\n+        model.addStatedUrl(new ProviderModel.RegisterStatedURL(\r\n+                registeredProviderUrl,\r\n+                registryUrl,\r\n+                registered));\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(final Invoker<T> originInvoker) throws RpcException {\r\n+        URL registryUrl = getRegistryUrl(originInvoker);\r\n+        // url to export locally\r\n+        URL providerUrl = getProviderUrl(originInvoker);\r\n+\r\n+        // Subscribe the override data\r\n+        // FIXME When the provider subscribes, it will affect the scene : a certain JVM exposes the service and call\r\n+        //  the same service. Because the subscribed is cached key with the name of the service, it causes the\r\n+        //  subscription information to cover.\r\n+        final URL overrideSubscribeUrl = getSubscribedOverrideUrl(providerUrl);\r\n+        final OverrideListener overrideSubscribeListener = new OverrideListener(overrideSubscribeUrl, originInvoker);\r\n+        overrideListeners.put(overrideSubscribeUrl, overrideSubscribeListener);\r\n+\r\n+        providerUrl = overrideUrlWithConfig(providerUrl, overrideSubscribeListener);\r\n+        // export invoker\r\n+        final ExporterChangeableWrapper<T> exporter = doLocalExport(originInvoker, providerUrl);\r\n+\r\n+        // url to registry\r\n+        final Registry registry = getRegistry(originInvoker);\r\n+        final URL registeredProviderUrl = getUrlToRegistry(providerUrl, registryUrl);\r\n+\r\n+        // decide if we need to delay publish\r\n+        boolean register = providerUrl.getParameter(REGISTER_KEY, true);\r\n+        if (register) {\r\n+            registry.register(registeredProviderUrl);\r\n+        }\r\n+\r\n+        // register stated url on provider model\r\n+        registerStatedUrl(registryUrl, registeredProviderUrl, register);\r\n+\r\n+\r\n+        exporter.setRegisterUrl(registeredProviderUrl);\r\n+        exporter.setSubscribeUrl(overrideSubscribeUrl);\r\n+\r\n+        // Deprecated! Subscribe to override rules in 2.6.x or before.\r\n+        registry.subscribe(overrideSubscribeUrl, overrideSubscribeListener);\r\n+\r\n+        notifyExport(exporter);\r\n+        //Ensure that a new exporter instance is returned every time export\r\n+        return new DestroyableExporter<>(exporter);\r\n+    }\r\n+\r\n+    private <T> void notifyExport(ExporterChangeableWrapper<T> exporter) {\r\n+        List<RegistryProtocolListener> listeners = ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\r\n+                .getActivateExtension(exporter.getOriginInvoker().getUrl(), \"registry.protocol.listener\");\r\n+        if (CollectionUtils.isNotEmpty(listeners)) {\r\n+            for (RegistryProtocolListener listener : listeners) {\r\n+                listener.onExport(this, exporter);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private URL overrideUrlWithConfig(URL providerUrl, OverrideListener listener) {\r\n+        providerUrl = providerConfigurationListener.overrideUrl(providerUrl);\r\n+        ServiceConfigurationListener serviceConfigurationListener = new ServiceConfigurationListener(providerUrl, listener);\r\n+        serviceConfigurationListeners.put(providerUrl.getServiceKey(), serviceConfigurationListener);\r\n+        return serviceConfigurationListener.overrideUrl(providerUrl);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private <T> ExporterChangeableWrapper<T> doLocalExport(final Invoker<T> originInvoker, URL providerUrl) {\r\n+        String key = getCacheKey(originInvoker);\r\n+\r\n+        return (ExporterChangeableWrapper<T>) bounds.computeIfAbsent(key, s -> {\r\n+            Invoker<?> invokerDelegate = new InvokerDelegate<>(originInvoker, providerUrl);\r\n+            return new ExporterChangeableWrapper<>((Exporter<T>) protocol.export(invokerDelegate), originInvoker);\r\n+        });\r\n+    }\r\n+\r\n+    public <T> void reExport(Exporter<T> exporter, URL newInvokerUrl) {\r\n+        if (exporter instanceof ExporterChangeableWrapper) {\r\n+            ExporterChangeableWrapper<T> exporterWrapper = (ExporterChangeableWrapper<T>) exporter;\r\n+            Invoker<T> originInvoker = exporterWrapper.getOriginInvoker();\r\n+            reExport(originInvoker, newInvokerUrl);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Reexport the invoker of the modified url\r\n+     *\r\n+     * @param originInvoker\r\n+     * @param newInvokerUrl\r\n+     * @param <T>\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> void reExport(final Invoker<T> originInvoker, URL newInvokerUrl) {\r\n+        String key = getCacheKey(originInvoker);\r\n+        ExporterChangeableWrapper<T> exporter = (ExporterChangeableWrapper<T>) bounds.get(key);\r\n+        URL registeredUrl = exporter.getRegisterUrl();\r\n+\r\n+        URL registryUrl = getRegistryUrl(originInvoker);\r\n+        URL newProviderUrl = getUrlToRegistry(newInvokerUrl, registryUrl);\r\n+\r\n+        // update local exporter\r\n+        Invoker<T> invokerDelegate = new InvokerDelegate<T>(originInvoker, newInvokerUrl);\r\n+        exporter.setExporter(protocol.export(invokerDelegate));\r\n+\r\n+        // update registry\r\n+        if (!newProviderUrl.equals(registeredUrl)) {\r\n+            try {\r\n+                doReExport(originInvoker, exporter, registryUrl, registeredUrl, newProviderUrl);\r\n+            } catch (Exception e) {\r\n+                ReExportTask oldTask = reExportFailedTasks.get(registeredUrl);\r\n+                if (oldTask != null) {\r\n+                    return;\r\n+                }\r\n+                ReExportTask task = new ReExportTask(\r\n+                        () -> doReExport(originInvoker, exporter, registryUrl, registeredUrl, newProviderUrl),\r\n+                        registeredUrl,\r\n+                        null\r\n+                );\r\n+                oldTask = reExportFailedTasks.putIfAbsent(registeredUrl, task);\r\n+                if (oldTask == null) {\r\n+                    // never has a retry task. then start a new task for retry.\r\n+                    retryTimer.newTimeout(task, registryUrl.getParameter(REGISTRY_RETRY_PERIOD_KEY, DEFAULT_REGISTRY_RETRY_PERIOD), TimeUnit.MILLISECONDS);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private <T> void doReExport(final Invoker<T> originInvoker, ExporterChangeableWrapper<T> exporter,\r\n+                                URL registryUrl, URL oldProviderUrl, URL newProviderUrl) {\r\n+        if (getProviderUrl(originInvoker).getParameter(REGISTER_KEY, true)) {\r\n+            Registry registry = null;\r\n+            try {\r\n+                registry = getRegistry(originInvoker);\r\n+            } catch (Exception e) {\r\n+                throw new SkipFailbackWrapperException(e);\r\n+            }\r\n+\r\n+            logger.info(\"Try to unregister old url: \" + oldProviderUrl);\r\n+            registry.reExportUnregister(oldProviderUrl);\r\n+\r\n+            logger.info(\"Try to register new url: \" + newProviderUrl);\r\n+            registry.reExportRegister(newProviderUrl);\r\n+        }\r\n+        try {\r\n+            ProviderModel.RegisterStatedURL statedUrl = getStatedUrl(registryUrl, newProviderUrl);\r\n+            statedUrl.setProviderUrl(newProviderUrl);\r\n+            exporter.setRegisterUrl(newProviderUrl);\r\n+        } catch (Exception e) {\r\n+            throw new SkipFailbackWrapperException(e);\r\n+        }\r\n+    }\r\n+\r\n+    private ProviderModel.RegisterStatedURL getStatedUrl(URL registryUrl, URL providerUrl) {\r\n+        ProviderModel providerModel = ApplicationModel.getServiceRepository()\r\n+                .lookupExportedService(providerUrl.getServiceKey());\r\n+\r\n+        List<ProviderModel.RegisterStatedURL> statedUrls = providerModel.getStatedUrl();\r\n+        return statedUrls.stream()\r\n+                .filter(u -> u.getRegistryUrl().equals(registryUrl)\r\n+                        && u.getProviderUrl().getProtocol().equals(providerUrl.getProtocol()))\r\n+                .findFirst().orElseThrow(() -> new IllegalStateException(\"There should have at least one registered url.\"));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get an instance of registry based on the address of invoker\r\n+     *\r\n+     * @param originInvoker\r\n+     * @return\r\n+     */\r\n+    protected Registry getRegistry(final Invoker<?> originInvoker) {\r\n+        URL registryUrl = getRegistryUrl(originInvoker);\r\n+        return registryFactory.getRegistry(registryUrl);\r\n+    }\r\n+\r\n+    protected URL getRegistryUrl(Invoker<?> originInvoker) {\r\n+        return originInvoker.getUrl();\r\n+    }\r\n+\r\n+    protected URL getRegistryUrl(URL url) {\r\n+        if (SERVICE_REGISTRY_PROTOCOL.equals(url.getProtocol())) {\r\n+            return url;\r\n+        }\r\n+        return url.addParameter(REGISTRY_KEY, url.getProtocol()).setProtocol(SERVICE_REGISTRY_PROTOCOL);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return the url that is registered to the registry and filter the url parameter once\r\n+     *\r\n+     * @param providerUrl\r\n+     * @return url to registry.\r\n+     */\r\n+    private URL getUrlToRegistry(final URL providerUrl, final URL registryUrl) {\r\n+\r\n+        URL registeredProviderUrl = removeUselessParameters(providerUrl);\r\n+\r\n+        //The address you see at the registry\r\n+        if (!registryUrl.getParameter(SIMPLIFIED_KEY, false)) {\r\n+            return registeredProviderUrl.removeParameters(getHiddenKeys(registeredProviderUrl)).removeParameters(\r\n+                    MONITOR_KEY, BIND_IP_KEY, BIND_PORT_KEY, QOS_ENABLE, QOS_HOST, QOS_PORT, ACCEPT_FOREIGN_IP, VALIDATION_KEY,\r\n+                    INTERFACES);\r\n+        } else {\r\n+            String extraKeys = registryUrl.getParameter(EXTRA_KEYS_KEY, \"\");\r\n+            // if path is not the same as interface name then we should keep INTERFACE_KEY,\r\n+            // otherwise, the registry structure of zookeeper would be '/dubbo/path/providers',\r\n+            // but what we expect is '/dubbo/interface/providers'\r\n+            if (!registeredProviderUrl.getPath().equals(registeredProviderUrl.getParameter(INTERFACE_KEY))) {\r\n+                if (StringUtils.isNotEmpty(extraKeys)) {\r\n+                    extraKeys += \",\";\r\n+                }\r\n+                extraKeys += INTERFACE_KEY;\r\n+            }\r\n+            String[] paramsToRegistry = getParamsToRegistry(DEFAULT_REGISTER_PROVIDER_KEYS\r\n+                    , COMMA_SPLIT_PATTERN.split(extraKeys));\r\n+            return URL.valueOf(registeredProviderUrl, paramsToRegistry, registeredProviderUrl.getParameter(METHODS_KEY, (String[]) null));\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * Remove information that does not require registration\r\n+     * @param providerUrl\r\n+     * @return\r\n+     */\r\n+    private URL removeUselessParameters(URL providerUrl) {\r\n+        return providerUrl.removeParameters(ON_CONNECT_KEY, ON_DISCONNECT_KEY);\r\n+    }\r\n+\r\n+    private URL getSubscribedOverrideUrl(URL registeredProviderUrl) {\r\n+        return registeredProviderUrl.setProtocol(PROVIDER_PROTOCOL)\r\n+                .addParameters(CATEGORY_KEY, CONFIGURATORS_CATEGORY, CHECK_KEY, String.valueOf(false));\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the address of the providerUrl through the url of the invoker\r\n+     *\r\n+     * @param originInvoker\r\n+     * @return\r\n+     */\r\n+    private URL getProviderUrl(final Invoker<?> originInvoker) {\r\n+        String export = originInvoker.getUrl().getParameterAndDecoded(EXPORT_KEY);\r\n+        if (export == null || export.length() == 0) {\r\n+            throw new IllegalArgumentException(\"The registry export url is null! registry: \" + originInvoker.getUrl());\r\n+        }\r\n+        return URL.valueOf(export);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the key cached in bounds by invoker\r\n+     *\r\n+     * @param originInvoker\r\n+     * @return\r\n+     */\r\n+    private String getCacheKey(final Invoker<?> originInvoker) {\r\n+        URL providerUrl = getProviderUrl(originInvoker);\r\n+        String key = providerUrl.removeParameters(\"dynamic\", \"enabled\").toFullString();\r\n+        return key;\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\r\n+        url = getRegistryUrl(url);\r\n+        Registry registry = registryFactory.getRegistry(url);\r\n+        if (RegistryService.class.equals(type)) {\r\n+            return proxyFactory.getInvoker((T) registry, type, url);\r\n+        }\r\n+\r\n+        // group=\"a,b\" or group=\"*\"\r\n+        Map<String, String> qs = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\r\n+        String group = qs.get(GROUP_KEY);\r\n+        if (group != null && group.length() > 0) {\r\n+            if ((COMMA_SPLIT_PATTERN.split(group)).length > 1 || \"*\".equals(group)) {\r\n+                return doRefer(Cluster.getCluster(MergeableCluster.NAME), registry, type, url, qs);\r\n+            }\r\n+        }\r\n+\r\n+        Cluster cluster = Cluster.getCluster(qs.get(CLUSTER_KEY));\r\n+        return doRefer(cluster, registry, type, url, qs);\r\n+    }\r\n+\r\n+    protected <T> Invoker<T> doRefer(Cluster cluster, Registry registry, Class<T> type, URL url, Map<String, String> parameters) {\r\n+        URL consumerUrl = new URL(CONSUMER_PROTOCOL, parameters.remove(REGISTER_IP_KEY), 0, type.getName(), parameters);\r\n+        ClusterInvoker<T> migrationInvoker = getMigrationInvoker(this, cluster, registry, type, url, consumerUrl);\r\n+        return interceptInvoker(migrationInvoker, url, consumerUrl);\r\n+    }\r\n+\r\n+    protected <T> ClusterInvoker<T> getMigrationInvoker(RegistryProtocol registryProtocol, Cluster cluster, Registry registry, Class<T> type, URL url, URL consumerUrl) {\r\n+        return new ServiceDiscoveryMigrationInvoker<T>(registryProtocol, cluster, registry, type, url, consumerUrl);\r\n+    }\r\n+\r\n+    protected <T> Invoker<T> interceptInvoker(ClusterInvoker<T> invoker, URL url, URL consumerUrl) {\r\n+        List<RegistryProtocolListener> listeners = findRegistryProtocolListeners(url);\r\n+        if (CollectionUtils.isEmpty(listeners)) {\r\n+            return invoker;\r\n+        }\r\n+\r\n+        for (RegistryProtocolListener listener : listeners) {\r\n+            listener.onRefer(this, invoker, consumerUrl);\r\n+        }\r\n+        return invoker;\r\n+    }\r\n+\r\n+    public <T> ClusterInvoker<T> getServiceDiscoveryInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\r\n+        DynamicDirectory<T> directory = new ServiceDiscoveryRegistryDirectory<>(type, url);\r\n+        return doCreateInvoker(directory, cluster, registry, type);\r\n+    }\r\n+\r\n+    public <T> ClusterInvoker<T> getInvoker(Cluster cluster, Registry registry, Class<T> type, URL url) {\r\n+        // FIXME, this method is currently not used, create the right registry before enable.\r\n+        DynamicDirectory<T> directory = new RegistryDirectory<>(type, url);\r\n+        return doCreateInvoker(directory, cluster, registry, type);\r\n+    }\r\n+\r\n+    protected <T> ClusterInvoker<T> doCreateInvoker(DynamicDirectory<T> directory, Cluster cluster, Registry registry, Class<T> type) {\r\n+        directory.setRegistry(registry);\r\n+        directory.setProtocol(protocol);\r\n+        // all attributes of REFER_KEY\r\n+        Map<String, String> parameters = new HashMap<String, String>(directory.getConsumerUrl().getParameters());\r\n+        URL urlToRegistry = new URL(CONSUMER_PROTOCOL, parameters.remove(REGISTER_IP_KEY), 0, type.getName(), parameters);\r\n+        if (directory.isShouldRegister()) {\r\n+            directory.setRegisteredConsumerUrl(urlToRegistry);\r\n+            registry.register(directory.getRegisteredConsumerUrl());\r\n+        }\r\n+        directory.buildRouterChain(urlToRegistry);\r\n+        directory.subscribe(toSubscribeUrl(urlToRegistry));\r\n+\r\n+        return (ClusterInvoker<T>) cluster.join(directory);\r\n+    }\r\n+\r\n+    public <T> void reRefer(ClusterInvoker<?> invoker, URL newSubscribeUrl) {\r\n+        if (!(invoker instanceof MigrationClusterInvoker)) {\r\n+            logger.error(\"Only invoker type of MigrationClusterInvoker supports reRefer, current invoker is \" + invoker.getClass());\r\n+            return;\r\n+        }\r\n+\r\n+        MigrationClusterInvoker<?> migrationClusterInvoker = (MigrationClusterInvoker<?>)invoker;\r\n+        migrationClusterInvoker.reRefer(newSubscribeUrl);\r\n+    }\r\n+\r\n+    public static URL toSubscribeUrl(URL url) {\r\n+        return url.addParameter(CATEGORY_KEY, PROVIDERS_CATEGORY + \",\" + CONFIGURATORS_CATEGORY + \",\" + ROUTERS_CATEGORY);\r\n+    }\r\n+\r\n+    protected List<RegistryProtocolListener> findRegistryProtocolListeners(URL url) {\r\n+        return ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\r\n+                .getActivateExtension(url, \"registry.protocol.listener\");\r\n+    }\r\n+\r\n+    // available to test\r\n+    public String[] getParamsToRegistry(String[] defaultKeys, String[] additionalParameterKeys) {\r\n+        int additionalLen = additionalParameterKeys.length;\r\n+        String[] registryParams = new String[defaultKeys.length + additionalLen];\r\n+        System.arraycopy(defaultKeys, 0, registryParams, 0, defaultKeys.length);\r\n+        System.arraycopy(additionalParameterKeys, 0, registryParams, defaultKeys.length, additionalLen);\r\n+        return registryParams;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        List<RegistryProtocolListener> listeners = ExtensionLoader.getExtensionLoader(RegistryProtocolListener.class)\r\n+                .getLoadedExtensionInstances();\r\n+        if (CollectionUtils.isNotEmpty(listeners)) {\r\n+            for (RegistryProtocolListener listener : listeners) {\r\n+                listener.onDestroy();\r\n+            }\r\n+        }\r\n+\r\n+        List<Exporter<?>> exporters = new ArrayList<Exporter<?>>(bounds.values());\r\n+        for (Exporter<?> exporter : exporters) {\r\n+            exporter.unexport();\r\n+        }\r\n+        bounds.clear();\r\n+\r\n+        ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension()\r\n+                .removeListener(ApplicationModel.getApplication() + CONFIGURATORS_SUFFIX, providerConfigurationListener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ProtocolServer> getServers() {\r\n+        return protocol.getServers();\r\n+    }\r\n+\r\n+    // merge the urls of configurators\r\n+    private static URL getConfiguredInvokerUrl(List<Configurator> configurators, URL url) {\r\n+        if (configurators != null && configurators.size() > 0) {\r\n+            for (Configurator configurator : configurators) {\r\n+                url = configurator.configure(url);\r\n+            }\r\n+        }\r\n+        return url;\r\n+    }\r\n+\r\n+    public static class InvokerDelegate<T> extends InvokerWrapper<T> {\r\n+        private final Invoker<T> invoker;\r\n+\r\n+        /**\r\n+         * @param invoker\r\n+         * @param url     invoker.getUrl return this value\r\n+         */\r\n+        public InvokerDelegate(Invoker<T> invoker, URL url) {\r\n+            super(invoker, url);\r\n+            this.invoker = invoker;\r\n+        }\r\n+\r\n+        public Invoker<T> getInvoker() {\r\n+            if (invoker instanceof InvokerDelegate) {\r\n+                return ((InvokerDelegate<T>) invoker).getInvoker();\r\n+            } else {\r\n+                return invoker;\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static class DestroyableExporter<T> implements Exporter<T> {\r\n+\r\n+        private Exporter<T> exporter;\r\n+\r\n+        public DestroyableExporter(Exporter<T> exporter) {\r\n+            this.exporter = exporter;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Invoker<T> getInvoker() {\r\n+            return exporter.getInvoker();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void unexport() {\r\n+            exporter.unexport();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Reexport: the exporter destroy problem in protocol\r\n+     * 1.Ensure that the exporter returned by registryprotocol can be normal destroyed\r\n+     * 2.No need to re-register to the registry after notify\r\n+     * 3.The invoker passed by the export method , would better to be the invoker of exporter\r\n+     */\r\n+    private class OverrideListener implements NotifyListener {\r\n+        private final URL subscribeUrl;\r\n+        private final Invoker originInvoker;\r\n+\r\n+\r\n+        private List<Configurator> configurators;\r\n+\r\n+        public OverrideListener(URL subscribeUrl, Invoker originalInvoker) {\r\n+            this.subscribeUrl = subscribeUrl;\r\n+            this.originInvoker = originalInvoker;\r\n+        }\r\n+\r\n+        /**\r\n+         * @param urls The list of registered information, is always not empty, The meaning is the same as the\r\n+         *             return value of {@link org.apache.dubbo.registry.RegistryService#lookup(URL)}.\r\n+         */\r\n+        @Override\r\n+        public synchronized void notify(List<URL> urls) {\r\n+            logger.debug(\"original override urls: \" + urls);\r\n+\r\n+            List<URL> matchedUrls = getMatchedUrls(urls, subscribeUrl.addParameter(CATEGORY_KEY,\r\n+                    CONFIGURATORS_CATEGORY));\r\n+            logger.debug(\"subscribe url: \" + subscribeUrl + \", override urls: \" + matchedUrls);\r\n+\r\n+            // No matching results\r\n+            if (matchedUrls.isEmpty()) {\r\n+                return;\r\n+            }\r\n+\r\n+            this.configurators = Configurator.toConfigurators(classifyUrls(matchedUrls, UrlUtils::isConfigurator))\r\n+                    .orElse(configurators);\r\n+\r\n+            doOverrideIfNecessary();\r\n+        }\r\n+\r\n+        public synchronized void doOverrideIfNecessary() {\r\n+            final Invoker<?> invoker;\r\n+            if (originInvoker instanceof InvokerDelegate) {\r\n+                invoker = ((InvokerDelegate<?>) originInvoker).getInvoker();\r\n+            } else {\r\n+                invoker = originInvoker;\r\n+            }\r\n+            //The origin invoker\r\n+            URL originUrl = RegistryProtocol.this.getProviderUrl(invoker);\r\n+            String key = getCacheKey(originInvoker);\r\n+            ExporterChangeableWrapper<?> exporter = bounds.get(key);\r\n+            if (exporter == null) {\r\n+                logger.warn(new IllegalStateException(\"error state, exporter should not be null\"));\r\n+                return;\r\n+            }\r\n+            //The current, may have been merged many times\r\n+            URL currentUrl = exporter.getInvoker().getUrl();\r\n+            //Merged with this configuration\r\n+            URL newUrl = getConfiguredInvokerUrl(configurators, currentUrl);\r\n+            newUrl = getConfiguredInvokerUrl(providerConfigurationListener.getConfigurators(), newUrl);\r\n+            newUrl = getConfiguredInvokerUrl(serviceConfigurationListeners.get(originUrl.getServiceKey())\r\n+                    .getConfigurators(), newUrl);\r\n+            if (!currentUrl.equals(newUrl)) {\r\n+                RegistryProtocol.this.reExport(originInvoker, newUrl);\r\n+                logger.info(\"exported provider url changed, origin url: \" + originUrl +\r\n+                        \", old export url: \" + currentUrl + \", new export url: \" + newUrl);\r\n+            }\r\n+        }\r\n+\r\n+        private List<URL> getMatchedUrls(List<URL> configuratorUrls, URL currentSubscribe) {\r\n+            List<URL> result = new ArrayList<URL>();\r\n+            for (URL url : configuratorUrls) {\r\n+                URL overrideUrl = url;\r\n+                // Compatible with the old version\r\n+                if (url.getParameter(CATEGORY_KEY) == null && OVERRIDE_PROTOCOL.equals(url.getProtocol())) {\r\n+                    overrideUrl = url.addParameter(CATEGORY_KEY, CONFIGURATORS_CATEGORY);\r\n+                }\r\n+\r\n+                // Check whether url is to be applied to the current service\r\n+                if (UrlUtils.isMatch(currentSubscribe, overrideUrl)) {\r\n+                    result.add(url);\r\n+                }\r\n+            }\r\n+            return result;\r\n+        }\r\n+    }\r\n+\r\n+    private class ServiceConfigurationListener extends AbstractConfiguratorListener {\r\n+        private URL providerUrl;\r\n+        private OverrideListener notifyListener;\r\n+\r\n+        public ServiceConfigurationListener(URL providerUrl, OverrideListener notifyListener) {\r\n+            this.providerUrl = providerUrl;\r\n+            this.notifyListener = notifyListener;\r\n+            this.initWith(DynamicConfiguration.getRuleKey(providerUrl) + CONFIGURATORS_SUFFIX);\r\n+        }\r\n+\r\n+        private <T> URL overrideUrl(URL providerUrl) {\r\n+            return RegistryProtocol.getConfiguredInvokerUrl(configurators, providerUrl);\r\n+        }\r\n+\r\n+        @Override\r\n+        protected void notifyOverrides() {\r\n+            notifyListener.doOverrideIfNecessary();\r\n+        }\r\n+    }\r\n+\r\n+    private class ProviderConfigurationListener extends AbstractConfiguratorListener {\r\n+\r\n+        public ProviderConfigurationListener() {\r\n+            this.initWith(ApplicationModel.getApplication() + CONFIGURATORS_SUFFIX);\r\n+        }\r\n+\r\n+        /**\r\n+         * Get existing configuration rule and override provider url before exporting.\r\n+         *\r\n+         * @param providerUrl\r\n+         * @param <T>\r\n+         * @return\r\n+         */\r\n+        private <T> URL overrideUrl(URL providerUrl) {\r\n+            return RegistryProtocol.getConfiguredInvokerUrl(configurators, providerUrl);\r\n+        }\r\n+\r\n+        @Override\r\n+        protected void notifyOverrides() {\r\n+            overrideListeners.values().forEach(listener -> ((OverrideListener) listener).doOverrideIfNecessary());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * exporter proxy, establish the corresponding relationship between the returned exporter and the exporter\r\n+     * exported by the protocol, and can modify the relationship at the time of override.\r\n+     *\r\n+     * @param <T>\r\n+     */\r\n+    private class ExporterChangeableWrapper<T> implements Exporter<T> {\r\n+\r\n+        private final ExecutorService executor = newSingleThreadExecutor(new NamedThreadFactory(\"Exporter-Unexport\", true));\r\n+\r\n+        private final Invoker<T> originInvoker;\r\n+        private Exporter<T> exporter;\r\n+        private URL subscribeUrl;\r\n+        private URL registerUrl;\r\n+\r\n+        public ExporterChangeableWrapper(Exporter<T> exporter, Invoker<T> originInvoker) {\r\n+            this.exporter = exporter;\r\n+            this.originInvoker = originInvoker;\r\n+        }\r\n+\r\n+        public Invoker<T> getOriginInvoker() {\r\n+            return originInvoker;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Invoker<T> getInvoker() {\r\n+            return exporter.getInvoker();\r\n+        }\r\n+\r\n+        public void setExporter(Exporter<T> exporter) {\r\n+            this.exporter = exporter;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void unexport() {\r\n+            String key = getCacheKey(this.originInvoker);\r\n+            bounds.remove(key);\r\n+\r\n+            Registry registry = RegistryProtocol.this.getRegistry(originInvoker);\r\n+            try {\r\n+                registry.unregister(registerUrl);\r\n+            } catch (Throwable t) {\r\n+                logger.warn(t.getMessage(), t);\r\n+            }\r\n+            try {\r\n+                NotifyListener listener = RegistryProtocol.this.overrideListeners.remove(subscribeUrl);\r\n+                registry.unsubscribe(subscribeUrl, listener);\r\n+                ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension()\r\n+                        .removeListener(subscribeUrl.getServiceKey() + CONFIGURATORS_SUFFIX,\r\n+                                serviceConfigurationListeners.get(subscribeUrl.getServiceKey()));\r\n+            } catch (Throwable t) {\r\n+                logger.warn(t.getMessage(), t);\r\n+            }\r\n+\r\n+            executor.submit(() -> {\r\n+                try {\r\n+                    int timeout = ConfigurationUtils.getServerShutdownTimeout();\r\n+                    if (timeout > 0) {\r\n+                        logger.info(\"Waiting \" + timeout + \"ms for registry to notify all consumers before unexport. \" +\r\n+                                \"Usually, this is called when you use dubbo API\");\r\n+                        Thread.sleep(timeout);\r\n+                    }\r\n+                    exporter.unexport();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            });\r\n+        }\r\n+\r\n+        public void setSubscribeUrl(URL subscribeUrl) {\r\n+            this.subscribeUrl = subscribeUrl;\r\n+        }\r\n+\r\n+        public void setRegisterUrl(URL registerUrl) {\r\n+            this.registerUrl = registerUrl;\r\n+        }\r\n+\r\n+        public URL getRegisterUrl() {\r\n+            return registerUrl;\r\n+        }\r\n+    }\r\n+\r\n+    // for unit test\r\n+    private static RegistryProtocol INSTANCE;\r\n+\r\n+    // for unit test\r\n+    public RegistryProtocol() {\r\n+        INSTANCE = this;\r\n+    }\r\n+\r\n+    // for unit test\r\n+    public static RegistryProtocol getRegistryProtocol() {\r\n+        if (INSTANCE == null) {\r\n+            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(REGISTRY_PROTOCOL); // load\r\n+        }\r\n+        return INSTANCE;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/integration/RegistryProtocolListener.java", "source2": "org/apache/dubbo/registry/integration/RegistryProtocolListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.integration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-/**\n- * RegistryProtocol listener is introduced to provide a chance to user to customize or change export and refer behavior\n- * of RegistryProtocol. For example: re-export or re-refer on the fly when certain condition meets.\n- */\n-@SPI\n-public interface RegistryProtocolListener {\n-    /**\n-     * Notify RegistryProtocol's listeners when a service is registered\n-     *\n-     * @param registryProtocol RegistryProtocol instance\n-     * @param exporter         exporter\n-     * @see RegistryProtocol#export(org.apache.dubbo.rpc.Invoker)\n-     */\n-    void onExport(RegistryProtocol registryProtocol, Exporter<?> exporter);\n-\n-    /**\n-     * Notify RegistryProtocol's listeners when a service is subscribed\n-     *\n-     * @param registryProtocol RegistryProtocol instance\n-     * @param invoker          invoker\n-     * @param url\n-     * @see RegistryProtocol#refer(Class, URL)\n-     */\n-    void onRefer(RegistryProtocol registryProtocol, ClusterInvoker<?> invoker, URL url);\n-\n-    /**\n-     * Notify RegistryProtocol's listeners when the protocol is destroyed\n-     */\n-    void onDestroy();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.integration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+/**\r\n+ * RegistryProtocol listener is introduced to provide a chance to user to customize or change export and refer behavior\r\n+ * of RegistryProtocol. For example: re-export or re-refer on the fly when certain condition meets.\r\n+ */\r\n+@SPI\r\n+public interface RegistryProtocolListener {\r\n+    /**\r\n+     * Notify RegistryProtocol's listeners when a service is registered\r\n+     *\r\n+     * @param registryProtocol RegistryProtocol instance\r\n+     * @param exporter         exporter\r\n+     * @see RegistryProtocol#export(org.apache.dubbo.rpc.Invoker)\r\n+     */\r\n+    void onExport(RegistryProtocol registryProtocol, Exporter<?> exporter);\r\n+\r\n+    /**\r\n+     * Notify RegistryProtocol's listeners when a service is subscribed\r\n+     *\r\n+     * @param registryProtocol RegistryProtocol instance\r\n+     * @param invoker          invoker\r\n+     * @param url\r\n+     * @see RegistryProtocol#refer(Class, URL)\r\n+     */\r\n+    void onRefer(RegistryProtocol registryProtocol, ClusterInvoker<?> invoker, URL url);\r\n+\r\n+    /**\r\n+     * Notify RegistryProtocol's listeners when the protocol is destroyed\r\n+     */\r\n+    void onDestroy();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/multicast/MulticastServiceDiscovery.java", "source2": "org/apache/dubbo/registry/multicast/MulticastServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,66 +1,66 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.multicast;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.Collections;\n-import java.util.Set;\n-\n-/**\n- * TODO: make multicast protocol support Service Discovery\n- */\n-public class MulticastServiceDiscovery extends AbstractServiceDiscovery {\n-    private URL registryURL;\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.registryURL = registryURL;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        this.serviceInstance = null;\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return Collections.singleton(\"Unsupported Operation\");\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.multicast;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * TODO: make multicast protocol support Service Discovery\r\n+ */\r\n+public class MulticastServiceDiscovery extends AbstractServiceDiscovery {\r\n+    private URL registryURL;\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.registryURL = registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        this.serviceInstance = null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return Collections.singleton(\"Unsupported Operation\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/multiple/MultipleRegistry.java", "source2": "org/apache/dubbo/registry/multiple/MultipleRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,337 +1,337 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.multiple;\n-\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.registry.support.AbstractRegistry;\n-\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\n-\n-/**\n- * MultipleRegistry\n- */\n-public class MultipleRegistry extends AbstractRegistry {\n-\n-    public static final String REGISTRY_FOR_SERVICE = \"service-registry\";\n-    public static final String REGISTRY_FOR_REFERENCE = \"reference-registry\";\n-\n-    protected RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\n-    private final Map<String, Registry> serviceRegistries = new ConcurrentHashMap<>(4);\n-    private final Map<String, Registry> referenceRegistries = new ConcurrentHashMap<String, Registry>(4);\n-    private final Map<NotifyListener, MultipleNotifyListenerWrapper> multipleNotifyListenerMap = new ConcurrentHashMap<NotifyListener, MultipleNotifyListenerWrapper>(32);\n-    protected List<String> origServiceRegistryURLs;\n-    protected List<String> origReferenceRegistryURLs;\n-    protected List<String> effectServiceRegistryURLs;\n-    protected List<String> effectReferenceRegistryURLs;\n-    private URL registryUrl;\n-    private String applicationName;\n-\n-    public MultipleRegistry(URL url) {\n-        this(url, true, true);\n-\n-        boolean defaultRegistry = url.getParameter(CommonConstants.DEFAULT_KEY, true);\n-        if (defaultRegistry && effectServiceRegistryURLs.isEmpty() && effectReferenceRegistryURLs.isEmpty()) {\n-            throw new IllegalArgumentException(\"Illegal registry url. You need to configure parameter \" +\n-                    REGISTRY_FOR_SERVICE + \" or \" + REGISTRY_FOR_REFERENCE);\n-        }\n-    }\n-\n-    public MultipleRegistry(URL url, boolean initServiceRegistry, boolean initReferenceRegistry) {\n-        super(url);\n-        this.registryUrl = url;\n-        this.applicationName = url.getParameter(CommonConstants.APPLICATION_KEY);\n-        init();\n-        checkApplicationName(this.applicationName);\n-        // This urls contain parameter and it do not inherit from the parameter of url in MultipleRegistry\n-\n-        Map<String, Registry> registryMap = new HashMap<>();\n-        if (initServiceRegistry) {\n-            initServiceRegistry(url, registryMap);\n-        }\n-        if (initReferenceRegistry) {\n-            initReferenceRegistry(url, registryMap);\n-        }\n-    }\n-\n-    protected void initServiceRegistry(URL url, Map<String, Registry> registryMap) {\n-        origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new ArrayList<String>());\n-        effectServiceRegistryURLs = this.filterServiceRegistry(origServiceRegistryURLs);\n-        for (String tmpUrl : effectServiceRegistryURLs) {\n-            if (registryMap.get(tmpUrl) != null) {\n-                serviceRegistries.put(tmpUrl, registryMap.get(tmpUrl));\n-                continue;\n-            }\n-            Registry registry = registryFactory.getRegistry(URL.valueOf(tmpUrl));\n-            registryMap.put(tmpUrl, registry);\n-            serviceRegistries.put(tmpUrl, registry);\n-        }\n-    }\n-\n-    protected void initReferenceRegistry(URL url, Map<String, Registry> registryMap) {\n-        origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE, new ArrayList<String>());\n-        effectReferenceRegistryURLs = this.filterReferenceRegistry(origReferenceRegistryURLs);\n-        for (String tmpUrl : effectReferenceRegistryURLs) {\n-            if (registryMap.get(tmpUrl) != null) {\n-                referenceRegistries.put(tmpUrl, registryMap.get(tmpUrl));\n-                continue;\n-            }\n-            Registry registry = registryFactory.getRegistry(URL.valueOf(tmpUrl));\n-            registryMap.put(tmpUrl, registry);\n-            referenceRegistries.put(tmpUrl, registry);\n-        }\n-    }\n-\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryUrl;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        boolean available = serviceRegistries.isEmpty();\n-        for (Registry serviceRegistry : serviceRegistries.values()) {\n-            if (serviceRegistry.isAvailable()) {\n-                available = true;\n-            }\n-        }\n-        if (!available) {\n-            return false;\n-        }\n-\n-        available = referenceRegistries.isEmpty();\n-        for (Registry referenceRegistry : referenceRegistries.values()) {\n-            if (referenceRegistry.isAvailable()) {\n-                available = true;\n-            }\n-        }\n-        if (!available) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        Set<Registry> registries = new HashSet<Registry>(serviceRegistries.values());\n-        registries.addAll(referenceRegistries.values());\n-        for (Registry registry : registries) {\n-            registry.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public void register(URL url) {\n-        super.register(url);\n-        for (Registry registry : serviceRegistries.values()) {\n-            registry.register(url);\n-        }\n-    }\n-\n-    @Override\n-    public void unregister(URL url) {\n-        super.unregister(url);\n-        for (Registry registry : serviceRegistries.values()) {\n-            registry.unregister(url);\n-        }\n-    }\n-\n-    @Override\n-    public void subscribe(URL url, NotifyListener listener) {\n-        MultipleNotifyListenerWrapper multipleNotifyListenerWrapper = new MultipleNotifyListenerWrapper(listener);\n-        multipleNotifyListenerMap.put(listener, multipleNotifyListenerWrapper);\n-        for (Registry registry : referenceRegistries.values()) {\n-            SingleNotifyListener singleNotifyListener = new SingleNotifyListener(multipleNotifyListenerWrapper, registry);\n-            multipleNotifyListenerWrapper.putRegistryMap(registry.getUrl(), singleNotifyListener);\n-            registry.subscribe(url, singleNotifyListener);\n-        }\n-        super.subscribe(url, multipleNotifyListenerWrapper);\n-    }\n-\n-    @Override\n-    public void unsubscribe(URL url, NotifyListener listener) {\n-        MultipleNotifyListenerWrapper notifyListener = multipleNotifyListenerMap.remove(listener);\n-        for (Registry registry : referenceRegistries.values()) {\n-            SingleNotifyListener singleNotifyListener = notifyListener.registryMap.get(registry.getUrl());\n-            registry.unsubscribe(url, singleNotifyListener);\n-        }\n-\n-        if (notifyListener != null) {\n-            super.unsubscribe(url, notifyListener);\n-            notifyListener.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public List<URL> lookup(URL url) {\n-        List<URL> urls = new ArrayList<URL>();\n-        for (Registry registry : referenceRegistries.values()) {\n-            List<URL> tmpUrls = registry.lookup(url);\n-            if (!CollectionUtils.isEmpty(tmpUrls)) {\n-                urls.addAll(tmpUrls);\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    protected void init() {\n-    }\n-\n-    protected List<String> filterServiceRegistry(List<String> serviceRegistryURLs) {\n-        return serviceRegistryURLs;\n-    }\n-\n-    protected List<String> filterReferenceRegistry(List<String> referenceRegistryURLs) {\n-        return referenceRegistryURLs;\n-    }\n-\n-\n-    protected void checkApplicationName(String applicationName) {\n-    }\n-\n-    protected String getApplicationName() {\n-        return applicationName;\n-    }\n-\n-    public Map<String, Registry> getServiceRegistries() {\n-        return serviceRegistries;\n-    }\n-\n-    public Map<String, Registry> getReferenceRegistries() {\n-        return referenceRegistries;\n-    }\n-\n-    public List<String> getOrigServiceRegistryURLs() {\n-        return origServiceRegistryURLs;\n-    }\n-\n-    public List<String> getOrigReferenceRegistryURLs() {\n-        return origReferenceRegistryURLs;\n-    }\n-\n-    public List<String> getEffectServiceRegistryURLs() {\n-        return effectServiceRegistryURLs;\n-    }\n-\n-    public List<String> getEffectReferenceRegistryURLs() {\n-        return effectReferenceRegistryURLs;\n-    }\n-\n-    static protected class MultipleNotifyListenerWrapper implements NotifyListener {\n-\n-        Map<URL, SingleNotifyListener> registryMap = new ConcurrentHashMap<URL, SingleNotifyListener>(4);\n-        NotifyListener sourceNotifyListener;\n-\n-        public MultipleNotifyListenerWrapper(NotifyListener sourceNotifyListener) {\n-            this.sourceNotifyListener = sourceNotifyListener;\n-        }\n-\n-        public void putRegistryMap(URL registryURL, SingleNotifyListener singleNotifyListener) {\n-            this.registryMap.put(registryURL, singleNotifyListener);\n-        }\n-\n-        public void destroy() {\n-            for (SingleNotifyListener singleNotifyListener : registryMap.values()) {\n-                if (singleNotifyListener != null) {\n-                    singleNotifyListener.destroy();\n-                }\n-            }\n-            registryMap.clear();\n-            sourceNotifyListener = null;\n-        }\n-\n-        public synchronized void notifySourceListener() {\n-            List<URL> notifyURLs = new ArrayList<URL>();\n-            URL emptyURL = null;\n-            for (SingleNotifyListener singleNotifyListener : registryMap.values()) {\n-                List<URL> tmpUrls = singleNotifyListener.getUrlList();\n-                if (CollectionUtils.isEmpty(tmpUrls)) {\n-                    continue;\n-                }\n-                // empty protocol\n-                if (tmpUrls.size() == 1\n-                        && tmpUrls.get(0) != null\n-                        && EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {\n-                    // if only one empty\n-                    if (emptyURL == null) {\n-                        emptyURL = tmpUrls.get(0);\n-                    }\n-                    continue;\n-                }\n-                notifyURLs.addAll(tmpUrls);\n-            }\n-            // if no notify URL, add empty protocol URL\n-            if (emptyURL != null && notifyURLs.isEmpty()) {\n-                notifyURLs.add(emptyURL);\n-            }\n-            this.notify(notifyURLs);\n-        }\n-\n-        @Override\n-        public void notify(List<URL> urls) {\n-            sourceNotifyListener.notify(urls);\n-        }\n-\n-        public Map<URL, SingleNotifyListener> getRegistryMap() {\n-            return registryMap;\n-        }\n-    }\n-\n-    static protected class SingleNotifyListener implements NotifyListener {\n-\n-        MultipleNotifyListenerWrapper multipleNotifyListenerWrapper;\n-        Registry registry;\n-        volatile List<URL> urlList;\n-\n-        public SingleNotifyListener(MultipleNotifyListenerWrapper multipleNotifyListenerWrapper, Registry registry) {\n-            this.registry = registry;\n-            this.multipleNotifyListenerWrapper = multipleNotifyListenerWrapper;\n-        }\n-\n-        @Override\n-        public synchronized void notify(List<URL> urls) {\n-            this.urlList = urls;\n-            if (multipleNotifyListenerWrapper != null) {\n-                this.multipleNotifyListenerWrapper.notifySourceListener();\n-            }\n-        }\n-\n-        public void destroy() {\n-            this.multipleNotifyListenerWrapper = null;\n-            this.registry = null;\n-        }\n-\n-        public List<URL> getUrlList() {\n-            return urlList;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.multiple;\r\n+\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.registry.support.AbstractRegistry;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\r\n+\r\n+/**\r\n+ * MultipleRegistry\r\n+ */\r\n+public class MultipleRegistry extends AbstractRegistry {\r\n+\r\n+    public static final String REGISTRY_FOR_SERVICE = \"service-registry\";\r\n+    public static final String REGISTRY_FOR_REFERENCE = \"reference-registry\";\r\n+\r\n+    protected RegistryFactory registryFactory = ExtensionLoader.getExtensionLoader(RegistryFactory.class).getAdaptiveExtension();\r\n+    private final Map<String, Registry> serviceRegistries = new ConcurrentHashMap<>(4);\r\n+    private final Map<String, Registry> referenceRegistries = new ConcurrentHashMap<String, Registry>(4);\r\n+    private final Map<NotifyListener, MultipleNotifyListenerWrapper> multipleNotifyListenerMap = new ConcurrentHashMap<NotifyListener, MultipleNotifyListenerWrapper>(32);\r\n+    protected List<String> origServiceRegistryURLs;\r\n+    protected List<String> origReferenceRegistryURLs;\r\n+    protected List<String> effectServiceRegistryURLs;\r\n+    protected List<String> effectReferenceRegistryURLs;\r\n+    private URL registryUrl;\r\n+    private String applicationName;\r\n+\r\n+    public MultipleRegistry(URL url) {\r\n+        this(url, true, true);\r\n+\r\n+        boolean defaultRegistry = url.getParameter(CommonConstants.DEFAULT_KEY, true);\r\n+        if (defaultRegistry && effectServiceRegistryURLs.isEmpty() && effectReferenceRegistryURLs.isEmpty()) {\r\n+            throw new IllegalArgumentException(\"Illegal registry url. You need to configure parameter \" +\r\n+                    REGISTRY_FOR_SERVICE + \" or \" + REGISTRY_FOR_REFERENCE);\r\n+        }\r\n+    }\r\n+\r\n+    public MultipleRegistry(URL url, boolean initServiceRegistry, boolean initReferenceRegistry) {\r\n+        super(url);\r\n+        this.registryUrl = url;\r\n+        this.applicationName = url.getParameter(CommonConstants.APPLICATION_KEY);\r\n+        init();\r\n+        checkApplicationName(this.applicationName);\r\n+        // This urls contain parameter and it do not inherit from the parameter of url in MultipleRegistry\r\n+\r\n+        Map<String, Registry> registryMap = new HashMap<>();\r\n+        if (initServiceRegistry) {\r\n+            initServiceRegistry(url, registryMap);\r\n+        }\r\n+        if (initReferenceRegistry) {\r\n+            initReferenceRegistry(url, registryMap);\r\n+        }\r\n+    }\r\n+\r\n+    protected void initServiceRegistry(URL url, Map<String, Registry> registryMap) {\r\n+        origServiceRegistryURLs = url.getParameter(REGISTRY_FOR_SERVICE, new ArrayList<String>());\r\n+        effectServiceRegistryURLs = this.filterServiceRegistry(origServiceRegistryURLs);\r\n+        for (String tmpUrl : effectServiceRegistryURLs) {\r\n+            if (registryMap.get(tmpUrl) != null) {\r\n+                serviceRegistries.put(tmpUrl, registryMap.get(tmpUrl));\r\n+                continue;\r\n+            }\r\n+            Registry registry = registryFactory.getRegistry(URL.valueOf(tmpUrl));\r\n+            registryMap.put(tmpUrl, registry);\r\n+            serviceRegistries.put(tmpUrl, registry);\r\n+        }\r\n+    }\r\n+\r\n+    protected void initReferenceRegistry(URL url, Map<String, Registry> registryMap) {\r\n+        origReferenceRegistryURLs = url.getParameter(REGISTRY_FOR_REFERENCE, new ArrayList<String>());\r\n+        effectReferenceRegistryURLs = this.filterReferenceRegistry(origReferenceRegistryURLs);\r\n+        for (String tmpUrl : effectReferenceRegistryURLs) {\r\n+            if (registryMap.get(tmpUrl) != null) {\r\n+                referenceRegistries.put(tmpUrl, registryMap.get(tmpUrl));\r\n+                continue;\r\n+            }\r\n+            Registry registry = registryFactory.getRegistry(URL.valueOf(tmpUrl));\r\n+            registryMap.put(tmpUrl, registry);\r\n+            referenceRegistries.put(tmpUrl, registry);\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryUrl;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        boolean available = serviceRegistries.isEmpty();\r\n+        for (Registry serviceRegistry : serviceRegistries.values()) {\r\n+            if (serviceRegistry.isAvailable()) {\r\n+                available = true;\r\n+            }\r\n+        }\r\n+        if (!available) {\r\n+            return false;\r\n+        }\r\n+\r\n+        available = referenceRegistries.isEmpty();\r\n+        for (Registry referenceRegistry : referenceRegistries.values()) {\r\n+            if (referenceRegistry.isAvailable()) {\r\n+                available = true;\r\n+            }\r\n+        }\r\n+        if (!available) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        Set<Registry> registries = new HashSet<Registry>(serviceRegistries.values());\r\n+        registries.addAll(referenceRegistries.values());\r\n+        for (Registry registry : registries) {\r\n+            registry.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void register(URL url) {\r\n+        super.register(url);\r\n+        for (Registry registry : serviceRegistries.values()) {\r\n+            registry.register(url);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(URL url) {\r\n+        super.unregister(url);\r\n+        for (Registry registry : serviceRegistries.values()) {\r\n+            registry.unregister(url);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void subscribe(URL url, NotifyListener listener) {\r\n+        MultipleNotifyListenerWrapper multipleNotifyListenerWrapper = new MultipleNotifyListenerWrapper(listener);\r\n+        multipleNotifyListenerMap.put(listener, multipleNotifyListenerWrapper);\r\n+        for (Registry registry : referenceRegistries.values()) {\r\n+            SingleNotifyListener singleNotifyListener = new SingleNotifyListener(multipleNotifyListenerWrapper, registry);\r\n+            multipleNotifyListenerWrapper.putRegistryMap(registry.getUrl(), singleNotifyListener);\r\n+            registry.subscribe(url, singleNotifyListener);\r\n+        }\r\n+        super.subscribe(url, multipleNotifyListenerWrapper);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unsubscribe(URL url, NotifyListener listener) {\r\n+        MultipleNotifyListenerWrapper notifyListener = multipleNotifyListenerMap.remove(listener);\r\n+        for (Registry registry : referenceRegistries.values()) {\r\n+            SingleNotifyListener singleNotifyListener = notifyListener.registryMap.get(registry.getUrl());\r\n+            registry.unsubscribe(url, singleNotifyListener);\r\n+        }\r\n+\r\n+        if (notifyListener != null) {\r\n+            super.unsubscribe(url, notifyListener);\r\n+            notifyListener.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(URL url) {\r\n+        List<URL> urls = new ArrayList<URL>();\r\n+        for (Registry registry : referenceRegistries.values()) {\r\n+            List<URL> tmpUrls = registry.lookup(url);\r\n+            if (!CollectionUtils.isEmpty(tmpUrls)) {\r\n+                urls.addAll(tmpUrls);\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    protected void init() {\r\n+    }\r\n+\r\n+    protected List<String> filterServiceRegistry(List<String> serviceRegistryURLs) {\r\n+        return serviceRegistryURLs;\r\n+    }\r\n+\r\n+    protected List<String> filterReferenceRegistry(List<String> referenceRegistryURLs) {\r\n+        return referenceRegistryURLs;\r\n+    }\r\n+\r\n+\r\n+    protected void checkApplicationName(String applicationName) {\r\n+    }\r\n+\r\n+    protected String getApplicationName() {\r\n+        return applicationName;\r\n+    }\r\n+\r\n+    public Map<String, Registry> getServiceRegistries() {\r\n+        return serviceRegistries;\r\n+    }\r\n+\r\n+    public Map<String, Registry> getReferenceRegistries() {\r\n+        return referenceRegistries;\r\n+    }\r\n+\r\n+    public List<String> getOrigServiceRegistryURLs() {\r\n+        return origServiceRegistryURLs;\r\n+    }\r\n+\r\n+    public List<String> getOrigReferenceRegistryURLs() {\r\n+        return origReferenceRegistryURLs;\r\n+    }\r\n+\r\n+    public List<String> getEffectServiceRegistryURLs() {\r\n+        return effectServiceRegistryURLs;\r\n+    }\r\n+\r\n+    public List<String> getEffectReferenceRegistryURLs() {\r\n+        return effectReferenceRegistryURLs;\r\n+    }\r\n+\r\n+    static protected class MultipleNotifyListenerWrapper implements NotifyListener {\r\n+\r\n+        Map<URL, SingleNotifyListener> registryMap = new ConcurrentHashMap<URL, SingleNotifyListener>(4);\r\n+        NotifyListener sourceNotifyListener;\r\n+\r\n+        public MultipleNotifyListenerWrapper(NotifyListener sourceNotifyListener) {\r\n+            this.sourceNotifyListener = sourceNotifyListener;\r\n+        }\r\n+\r\n+        public void putRegistryMap(URL registryURL, SingleNotifyListener singleNotifyListener) {\r\n+            this.registryMap.put(registryURL, singleNotifyListener);\r\n+        }\r\n+\r\n+        public void destroy() {\r\n+            for (SingleNotifyListener singleNotifyListener : registryMap.values()) {\r\n+                if (singleNotifyListener != null) {\r\n+                    singleNotifyListener.destroy();\r\n+                }\r\n+            }\r\n+            registryMap.clear();\r\n+            sourceNotifyListener = null;\r\n+        }\r\n+\r\n+        public synchronized void notifySourceListener() {\r\n+            List<URL> notifyURLs = new ArrayList<URL>();\r\n+            URL emptyURL = null;\r\n+            for (SingleNotifyListener singleNotifyListener : registryMap.values()) {\r\n+                List<URL> tmpUrls = singleNotifyListener.getUrlList();\r\n+                if (CollectionUtils.isEmpty(tmpUrls)) {\r\n+                    continue;\r\n+                }\r\n+                // empty protocol\r\n+                if (tmpUrls.size() == 1\r\n+                        && tmpUrls.get(0) != null\r\n+                        && EMPTY_PROTOCOL.equals(tmpUrls.get(0).getProtocol())) {\r\n+                    // if only one empty\r\n+                    if (emptyURL == null) {\r\n+                        emptyURL = tmpUrls.get(0);\r\n+                    }\r\n+                    continue;\r\n+                }\r\n+                notifyURLs.addAll(tmpUrls);\r\n+            }\r\n+            // if no notify URL, add empty protocol URL\r\n+            if (emptyURL != null && notifyURLs.isEmpty()) {\r\n+                notifyURLs.add(emptyURL);\r\n+            }\r\n+            this.notify(notifyURLs);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void notify(List<URL> urls) {\r\n+            sourceNotifyListener.notify(urls);\r\n+        }\r\n+\r\n+        public Map<URL, SingleNotifyListener> getRegistryMap() {\r\n+            return registryMap;\r\n+        }\r\n+    }\r\n+\r\n+    static protected class SingleNotifyListener implements NotifyListener {\r\n+\r\n+        MultipleNotifyListenerWrapper multipleNotifyListenerWrapper;\r\n+        Registry registry;\r\n+        volatile List<URL> urlList;\r\n+\r\n+        public SingleNotifyListener(MultipleNotifyListenerWrapper multipleNotifyListenerWrapper, Registry registry) {\r\n+            this.registry = registry;\r\n+            this.multipleNotifyListenerWrapper = multipleNotifyListenerWrapper;\r\n+        }\r\n+\r\n+        @Override\r\n+        public synchronized void notify(List<URL> urls) {\r\n+            this.urlList = urls;\r\n+            if (multipleNotifyListenerWrapper != null) {\r\n+                this.multipleNotifyListenerWrapper.notifySourceListener();\r\n+            }\r\n+        }\r\n+\r\n+        public void destroy() {\r\n+            this.multipleNotifyListenerWrapper = null;\r\n+            this.registry = null;\r\n+        }\r\n+\r\n+        public List<URL> getUrlList() {\r\n+            return urlList;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/multiple/MultipleRegistryFactory.java", "source2": "org/apache/dubbo/registry/multiple/MultipleRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.multiple;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-\n-/**\n- * MultipleRegistryFactory\n- */\n-public class MultipleRegistryFactory extends AbstractRegistryFactory {\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        return new MultipleRegistry(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.multiple;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+\r\n+/**\r\n+ * MultipleRegistryFactory\r\n+ */\r\n+public class MultipleRegistryFactory extends AbstractRegistryFactory {\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        return new MultipleRegistry(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscovery.java", "source2": "org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,171 +1,171 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.multiple;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.utils.DefaultPage;\n-import org.apache.dubbo.common.utils.Page;\n-import org.apache.dubbo.event.ConditionalEventListener;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import java.util.ArrayList;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-public class MultipleRegistryServiceDiscovery extends AbstractServiceDiscovery {\n-    public static final String REGISTRY_PREFIX_KEY = \"child.\";\n-    private final Map<String, ServiceDiscovery> serviceDiscoveries = new ConcurrentHashMap<>();\n-    private URL registryURL;\n-    private String applicationName;\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.registryURL = registryURL;\n-        this.applicationName = registryURL.getParameter(CommonConstants.APPLICATION_KEY);\n-\n-        Map<String, String> parameters = registryURL.getParameters();\n-        for (String key : parameters.keySet()) {\n-            if (key.startsWith(REGISTRY_PREFIX_KEY)) {\n-                URL url = URL.valueOf(registryURL.getParameter(key)).addParameter(CommonConstants.APPLICATION_KEY, applicationName)\n-                        .addParameter(\"registry-type\", \"service\");\n-                ServiceDiscovery serviceDiscovery = ServiceDiscoveryFactory.getExtension(url).getServiceDiscovery(url);\n-                serviceDiscovery.initialize(url);\n-                serviceDiscoveries.put(key, serviceDiscovery);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\n-            serviceDiscovery.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.register(serviceInstance));\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.update(serviceInstance));\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.unregister(serviceInstance));\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\n-        MultiServiceInstancesChangedListener multiListener = new MultiServiceInstancesChangedListener(listener);\n-\n-        for (String registryKey : serviceDiscoveries.keySet()) {\n-            SingleServiceInstancesChangedListener singleListener = new SingleServiceInstancesChangedListener(listener.getServiceNames(), serviceDiscoveries.get(registryKey), multiListener);\n-            multiListener.putSingleListener(registryKey, singleListener);\n-            serviceDiscoveries.get(registryKey).addServiceInstancesChangedListener(singleListener);\n-        }\n-    }\n-\n-    @Override\n-    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {\n-\n-        List<ServiceInstance> serviceInstanceList = new ArrayList<>();\n-        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\n-            Page<ServiceInstance> serviceInstancePage = serviceDiscovery.getInstances(serviceName, offset, pageSize, healthyOnly);\n-            serviceInstanceList.addAll(serviceInstancePage.getData());\n-        }\n-\n-        return new DefaultPage<>(offset, pageSize, serviceInstanceList, serviceInstanceList.size());\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        Set<String> services = new HashSet<>();\n-        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\n-            services.addAll(serviceDiscovery.getServices());\n-        }\n-        return services;\n-    }\n-\n-    protected static class MultiServiceInstancesChangedListener implements ConditionalEventListener<ServiceInstancesChangedEvent> {\n-        private final ServiceInstancesChangedListener sourceListener;\n-        private final Map<String, SingleServiceInstancesChangedListener> singleListenerMap = new ConcurrentHashMap<>();\n-\n-        public MultiServiceInstancesChangedListener(ServiceInstancesChangedListener sourceListener) {\n-            this.sourceListener = sourceListener;\n-        }\n-\n-        @Override\n-        public boolean accept(ServiceInstancesChangedEvent event) {\n-            return sourceListener.getServiceNames().contains(event.getServiceName());\n-        }\n-\n-        @Override\n-        public void onEvent(ServiceInstancesChangedEvent event) {\n-            List<ServiceInstance> serviceInstances = new ArrayList<>();\n-            for (SingleServiceInstancesChangedListener singleListener : singleListenerMap.values()) {\n-                if (null != singleListener.event && null != singleListener.event.getServiceInstances()) {\n-                    for (ServiceInstance serviceInstance : singleListener.event.getServiceInstances()) {\n-                        if (!serviceInstances.contains(serviceInstance)) {\n-                            serviceInstances.add(serviceInstance);\n-                        }\n-                    }\n-                }\n-            }\n-\n-            sourceListener.onEvent(new ServiceInstancesChangedEvent(event.getServiceName(), serviceInstances));\n-        }\n-\n-        public void putSingleListener(String registryKey, SingleServiceInstancesChangedListener singleListener) {\n-            singleListenerMap.put(registryKey, singleListener);\n-        }\n-    }\n-\n-    protected static class SingleServiceInstancesChangedListener extends ServiceInstancesChangedListener {\n-        private final MultiServiceInstancesChangedListener multiListener;\n-        volatile ServiceInstancesChangedEvent event;\n-\n-        public SingleServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery, MultiServiceInstancesChangedListener multiListener) {\n-            super(serviceNames, serviceDiscovery);\n-            this.multiListener = multiListener;\n-        }\n-\n-        @Override\n-        public void onEvent(ServiceInstancesChangedEvent event) {\n-            this.event = event;\n-            if (multiListener != null) {\n-                multiListener.onEvent(event);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.multiple;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.utils.DefaultPage;\r\n+import org.apache.dubbo.common.utils.Page;\r\n+import org.apache.dubbo.event.ConditionalEventListener;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+public class MultipleRegistryServiceDiscovery extends AbstractServiceDiscovery {\r\n+    public static final String REGISTRY_PREFIX_KEY = \"child.\";\r\n+    private final Map<String, ServiceDiscovery> serviceDiscoveries = new ConcurrentHashMap<>();\r\n+    private URL registryURL;\r\n+    private String applicationName;\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.registryURL = registryURL;\r\n+        this.applicationName = registryURL.getParameter(CommonConstants.APPLICATION_KEY);\r\n+\r\n+        Map<String, String> parameters = registryURL.getParameters();\r\n+        for (String key : parameters.keySet()) {\r\n+            if (key.startsWith(REGISTRY_PREFIX_KEY)) {\r\n+                URL url = URL.valueOf(registryURL.getParameter(key)).addParameter(CommonConstants.APPLICATION_KEY, applicationName)\r\n+                        .addParameter(\"registry-type\", \"service\");\r\n+                ServiceDiscovery serviceDiscovery = ServiceDiscoveryFactory.getExtension(url).getServiceDiscovery(url);\r\n+                serviceDiscovery.initialize(url);\r\n+                serviceDiscoveries.put(key, serviceDiscovery);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\r\n+            serviceDiscovery.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.register(serviceInstance));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.update(serviceInstance));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        serviceDiscoveries.values().forEach(serviceDiscovery -> serviceDiscovery.unregister(serviceInstance));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\r\n+        MultiServiceInstancesChangedListener multiListener = new MultiServiceInstancesChangedListener(listener);\r\n+\r\n+        for (String registryKey : serviceDiscoveries.keySet()) {\r\n+            SingleServiceInstancesChangedListener singleListener = new SingleServiceInstancesChangedListener(listener.getServiceNames(), serviceDiscoveries.get(registryKey), multiListener);\r\n+            multiListener.putSingleListener(registryKey, singleListener);\r\n+            serviceDiscoveries.get(registryKey).addServiceInstancesChangedListener(singleListener);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {\r\n+\r\n+        List<ServiceInstance> serviceInstanceList = new ArrayList<>();\r\n+        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\r\n+            Page<ServiceInstance> serviceInstancePage = serviceDiscovery.getInstances(serviceName, offset, pageSize, healthyOnly);\r\n+            serviceInstanceList.addAll(serviceInstancePage.getData());\r\n+        }\r\n+\r\n+        return new DefaultPage<>(offset, pageSize, serviceInstanceList, serviceInstanceList.size());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        Set<String> services = new HashSet<>();\r\n+        for (ServiceDiscovery serviceDiscovery : serviceDiscoveries.values()) {\r\n+            services.addAll(serviceDiscovery.getServices());\r\n+        }\r\n+        return services;\r\n+    }\r\n+\r\n+    protected static class MultiServiceInstancesChangedListener implements ConditionalEventListener<ServiceInstancesChangedEvent> {\r\n+        private final ServiceInstancesChangedListener sourceListener;\r\n+        private final Map<String, SingleServiceInstancesChangedListener> singleListenerMap = new ConcurrentHashMap<>();\r\n+\r\n+        public MultiServiceInstancesChangedListener(ServiceInstancesChangedListener sourceListener) {\r\n+            this.sourceListener = sourceListener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean accept(ServiceInstancesChangedEvent event) {\r\n+            return sourceListener.getServiceNames().contains(event.getServiceName());\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onEvent(ServiceInstancesChangedEvent event) {\r\n+            List<ServiceInstance> serviceInstances = new ArrayList<>();\r\n+            for (SingleServiceInstancesChangedListener singleListener : singleListenerMap.values()) {\r\n+                if (null != singleListener.event && null != singleListener.event.getServiceInstances()) {\r\n+                    for (ServiceInstance serviceInstance : singleListener.event.getServiceInstances()) {\r\n+                        if (!serviceInstances.contains(serviceInstance)) {\r\n+                            serviceInstances.add(serviceInstance);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            sourceListener.onEvent(new ServiceInstancesChangedEvent(event.getServiceName(), serviceInstances));\r\n+        }\r\n+\r\n+        public void putSingleListener(String registryKey, SingleServiceInstancesChangedListener singleListener) {\r\n+            singleListenerMap.put(registryKey, singleListener);\r\n+        }\r\n+    }\r\n+\r\n+    protected static class SingleServiceInstancesChangedListener extends ServiceInstancesChangedListener {\r\n+        private final MultiServiceInstancesChangedListener multiListener;\r\n+        volatile ServiceInstancesChangedEvent event;\r\n+\r\n+        public SingleServiceInstancesChangedListener(Set<String> serviceNames, ServiceDiscovery serviceDiscovery, MultiServiceInstancesChangedListener multiListener) {\r\n+            super(serviceNames, serviceDiscovery);\r\n+            this.multiListener = multiListener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onEvent(ServiceInstancesChangedEvent event) {\r\n+            this.event = event;\r\n+            if (multiListener != null) {\r\n+                multiListener.onEvent(event);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/multiple/MultipleRegistryServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.multiple;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class MultipleRegistryServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory  {\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new MultipleRegistryServiceDiscovery();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.multiple;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class MultipleRegistryServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory  {\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new MultipleRegistryServiceDiscovery();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java", "source2": "org/apache/dubbo/registry/nacos/NacosNamingServiceWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,87 +1,87 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.api.naming.NamingService;\n-import com.alibaba.nacos.api.naming.listener.EventListener;\n-import com.alibaba.nacos.api.naming.pojo.Instance;\n-import com.alibaba.nacos.api.naming.pojo.ListView;\n-\n-import java.util.List;\n-\n-public class NacosNamingServiceWrapper {\n-\n-    private static final String INNERCLASS_SYMBOL = \"$\";\n-\n-    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\n-\n-    private NamingService namingService;\n-\n-    public NacosNamingServiceWrapper(NamingService namingService) {\n-        this.namingService = namingService;\n-    }\n-\n-\n-    public String getServerStatus() {\n-        return namingService.getServerStatus();\n-    }\n-\n-    public void subscribe(String serviceName, EventListener eventListener) throws NacosException {\n-        namingService.subscribe(handleInnerSymbol(serviceName), eventListener);\n-    }\n-\n-    public void subscribe(String serviceName, String group, EventListener eventListener) throws NacosException {\n-        namingService.subscribe(handleInnerSymbol(serviceName), group, eventListener);\n-    }\n-\n-    public List<Instance> getAllInstances(String serviceName, String group) throws NacosException {\n-        return namingService.getAllInstances(handleInnerSymbol(serviceName), group);\n-    }\n-\n-    public void registerInstance(String serviceName, String group, Instance instance) throws NacosException {\n-        namingService.registerInstance(handleInnerSymbol(serviceName), group, instance);\n-    }\n-\n-    public void deregisterInstance(String serviceName, String group, String ip, int port) throws NacosException {\n-        namingService.deregisterInstance(handleInnerSymbol(serviceName), group, ip, port);\n-    }\n-\n-\n-    public void deregisterInstance(String serviceName, String group, Instance instance) throws NacosException {\n-        namingService.deregisterInstance(handleInnerSymbol(serviceName), group, instance);\n-    }\n-\n-    public ListView<String> getServicesOfServer(int pageNo, int pageSize, String parameter) throws NacosException {\n-        return namingService.getServicesOfServer(pageNo, pageSize, parameter);\n-    }\n-\n-    public List<Instance> selectInstances(String serviceName, boolean healthy) throws NacosException {\n-        return namingService.selectInstances(handleInnerSymbol(serviceName), healthy);\n-    }\n-\n-    /**\n-     * see https://github.com/apache/dubbo/issues/7129\n-     * nacos service name just support `0-9a-zA-Z-._:`, grpc interface is inner interface, need compatible.\n-     */\n-    private String handleInnerSymbol(String serviceName) {\n-        if (serviceName == null) {\n-            return null;\n-        }\n-        return serviceName.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.api.naming.NamingService;\r\n+import com.alibaba.nacos.api.naming.listener.EventListener;\r\n+import com.alibaba.nacos.api.naming.pojo.Instance;\r\n+import com.alibaba.nacos.api.naming.pojo.ListView;\r\n+\r\n+import java.util.List;\r\n+\r\n+public class NacosNamingServiceWrapper {\r\n+\r\n+    private static final String INNERCLASS_SYMBOL = \"$\";\r\n+\r\n+    private static final String INNERCLASS_COMPATIBLE_SYMBOL = \"___\";\r\n+\r\n+    private NamingService namingService;\r\n+\r\n+    public NacosNamingServiceWrapper(NamingService namingService) {\r\n+        this.namingService = namingService;\r\n+    }\r\n+\r\n+\r\n+    public String getServerStatus() {\r\n+        return namingService.getServerStatus();\r\n+    }\r\n+\r\n+    public void subscribe(String serviceName, EventListener eventListener) throws NacosException {\r\n+        namingService.subscribe(handleInnerSymbol(serviceName), eventListener);\r\n+    }\r\n+\r\n+    public void subscribe(String serviceName, String group, EventListener eventListener) throws NacosException {\r\n+        namingService.subscribe(handleInnerSymbol(serviceName), group, eventListener);\r\n+    }\r\n+\r\n+    public List<Instance> getAllInstances(String serviceName, String group) throws NacosException {\r\n+        return namingService.getAllInstances(handleInnerSymbol(serviceName), group);\r\n+    }\r\n+\r\n+    public void registerInstance(String serviceName, String group, Instance instance) throws NacosException {\r\n+        namingService.registerInstance(handleInnerSymbol(serviceName), group, instance);\r\n+    }\r\n+\r\n+    public void deregisterInstance(String serviceName, String group, String ip, int port) throws NacosException {\r\n+        namingService.deregisterInstance(handleInnerSymbol(serviceName), group, ip, port);\r\n+    }\r\n+\r\n+\r\n+    public void deregisterInstance(String serviceName, String group, Instance instance) throws NacosException {\r\n+        namingService.deregisterInstance(handleInnerSymbol(serviceName), group, instance);\r\n+    }\r\n+\r\n+    public ListView<String> getServicesOfServer(int pageNo, int pageSize, String parameter) throws NacosException {\r\n+        return namingService.getServicesOfServer(pageNo, pageSize, parameter);\r\n+    }\r\n+\r\n+    public List<Instance> selectInstances(String serviceName, boolean healthy) throws NacosException {\r\n+        return namingService.selectInstances(handleInnerSymbol(serviceName), healthy);\r\n+    }\r\n+\r\n+    /**\r\n+     * see https://github.com/apache/dubbo/issues/7129\r\n+     * nacos service name just support `0-9a-zA-Z-._:`, grpc interface is inner interface, need compatible.\r\n+     */\r\n+    private String handleInnerSymbol(String serviceName) {\r\n+        if (serviceName == null) {\r\n+            return null;\r\n+        }\r\n+        return serviceName.replace(INNERCLASS_SYMBOL, INNERCLASS_COMPATIBLE_SYMBOL);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosRegistry.java", "source2": "org/apache/dubbo/registry/nacos/NacosRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,624 +1,624 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.nacos.util.NacosInstanceManageUtil;\n-import org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-\n-import com.alibaba.nacos.api.common.Constants;\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.api.naming.NamingService;\n-import com.alibaba.nacos.api.naming.listener.EventListener;\n-import com.alibaba.nacos.api.naming.listener.NamingEvent;\n-import com.alibaba.nacos.api.naming.pojo.Instance;\n-import com.alibaba.nacos.api.naming.pojo.ListView;\n-import com.google.common.collect.Lists;\n-\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collection;\n-import java.util.HashMap;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.TimeUnit;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\n-import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\n-import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL;\n-import static org.apache.dubbo.registry.nacos.NacosServiceName.valueOf;\n-\n-/**\n- * Nacos {@link Registry}\n- *\n- * @see #SERVICE_NAME_SEPARATOR\n- * @see #PAGINATION_SIZE\n- * @see #LOOKUP_INTERVAL\n- * @since 2.6.5\n- */\n-public class NacosRegistry extends FailbackRegistry {\n-\n-    /**\n-     * All supported categories\n-     */\n-    private static final List<String> ALL_SUPPORTED_CATEGORIES = Arrays.asList(\n-            PROVIDERS_CATEGORY,\n-            CONSUMERS_CATEGORY,\n-            ROUTERS_CATEGORY,\n-            CONFIGURATORS_CATEGORY\n-    );\n-\n-    private static final int CATEGORY_INDEX = 0;\n-\n-    private static final int SERVICE_INTERFACE_INDEX = 1;\n-\n-    private static final int SERVICE_VERSION_INDEX = 2;\n-\n-    private static final int SERVICE_GROUP_INDEX = 3;\n-\n-    private static final String WILDCARD = \"*\";\n-\n-    /**\n-     * The separator for service name\n-     * Change a constant to be configurable, it's designed for Windows file name that is compatible with old\n-     * Nacos binary release(< 0.6.1)\n-     */\n-    private static final String SERVICE_NAME_SEPARATOR = System.getProperty(\"nacos.service.name.separator\", \":\");\n-\n-    /**\n-     * The pagination size of query for Nacos service names(only for Dubbo-OPS)\n-     */\n-    private static final int PAGINATION_SIZE = Integer.getInteger(\"nacos.service.names.pagination.size\", 100);\n-\n-    /**\n-     * The interval in second of lookup Nacos service names(only for Dubbo-OPS)\n-     */\n-    private static final long LOOKUP_INTERVAL = Long.getLong(\"nacos.service.names.lookup.interval\", 30);\n-\n-    /**\n-     * {@link ScheduledExecutorService} lookup Nacos service names(only for Dubbo-OPS)\n-     */\n-    private volatile ScheduledExecutorService scheduledExecutorService;\n-\n-    private final NacosNamingServiceWrapper namingService;\n-\n-    public NacosRegistry(URL url, NacosNamingServiceWrapper namingService) {\n-        super(url);\n-        this.namingService = namingService;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return \"UP\".equals(namingService.getServerStatus());\n-    }\n-\n-    @Override\n-    public List<URL> lookup(final URL url) {\n-        final List<URL> urls = new LinkedList<>();\n-        execute(namingService -> {\n-            Set<String> serviceNames = getServiceNames(url, null);\n-            for (String serviceName : serviceNames) {\n-                List<Instance> instances = namingService.getAllInstances(serviceName,\n-                        getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\n-                urls.addAll(buildURLs(url, instances));\n-            }\n-        });\n-        return urls;\n-    }\n-\n-    @Override\n-    public void doRegister(URL url) {\n-        final String serviceName = getServiceName(url);\n-\n-        final Instance instance = createInstance(url);\n-        /**\n-         *  namingService.registerInstance with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl}\n-         *  default {@link DEFAULT_GROUP}\n-         *\n-         * in https://github.com/apache/dubbo/issues/5978\n-         */\n-        execute(namingService -> namingService.registerInstance(serviceName,\n-                getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP), instance));\n-    }\n-\n-    @Override\n-    public void doUnregister(final URL url) {\n-        execute(namingService -> {\n-            String serviceName = getServiceName(url);\n-            Instance instance = createInstance(url);\n-            namingService.deregisterInstance(serviceName,\n-                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP),\n-                    instance.getIp(),\n-                    instance.getPort());\n-        });\n-    }\n-\n-    @Override\n-    public void doSubscribe(final URL url, final NotifyListener listener) {\n-        Set<String> serviceNames = getServiceNames(url, listener);\n-\n-        //Set corresponding serviceNames for easy search later\n-        if (isServiceNamesWithCompatibleMode(url)) {\n-            for (String serviceName : serviceNames) {\n-                NacosInstanceManageUtil.setCorrespondingServiceNames(serviceName, serviceNames);\n-            }\n-        }\n-\n-        doSubscribe(url, listener, serviceNames);\n-    }\n-\n-    private void doSubscribe(final URL url, final NotifyListener listener, final Set<String> serviceNames) {\n-        execute(namingService -> {\n-            if (isServiceNamesWithCompatibleMode(url)) {\n-                List<Instance> allCorrespondingInstanceList = Lists.newArrayList();\n-\n-                /**\n-                 * Get all instances with serviceNames to avoid instance overwrite and but with empty instance mentioned\n-                 * in https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\n-                 *\n-                 * namingService.getAllInstances with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl}\n-                 * default {@link DEFAULT_GROUP}\n-                 *\n-                 * in https://github.com/apache/dubbo/issues/5978\n-                 */\n-                for (String serviceName : serviceNames) {\n-                    List<Instance> instances = namingService.getAllInstances(serviceName,\n-                            getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\n-                    NacosInstanceManageUtil.initOrRefreshServiceInstanceList(serviceName, instances);\n-                    allCorrespondingInstanceList.addAll(instances);\n-                }\n-                notifySubscriber(url, listener, allCorrespondingInstanceList);\n-                for (String serviceName : serviceNames) {\n-                    subscribeEventListener(serviceName, url, listener);\n-                }\n-            } else {\n-                List<Instance> instances = new LinkedList<>();\n-                for (String serviceName : serviceNames) {\n-                    instances.addAll(namingService.getAllInstances(serviceName\n-                            , getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP)));\n-                    notifySubscriber(url, listener, instances);\n-                    subscribeEventListener(serviceName, url, listener);\n-                }\n-            }\n-\n-        });\n-    }\n-\n-    /**\n-     * Since 2.7.6 the legacy service name will be added to serviceNames\n-     * to fix bug with https://github.com/apache/dubbo/issues/5442\n-     *\n-     * @param url\n-     * @return\n-     */\n-    private boolean isServiceNamesWithCompatibleMode(final URL url) {\n-        return !isAdminProtocol(url) && createServiceName(url).isConcrete();\n-    }\n-\n-    @Override\n-    public void doUnsubscribe(URL url, NotifyListener listener) {\n-        if (isAdminProtocol(url)) {\n-            shutdownServiceNamesLookup();\n-        }\n-    }\n-\n-    private void shutdownServiceNamesLookup() {\n-        if (scheduledExecutorService != null) {\n-            scheduledExecutorService.shutdown();\n-        }\n-    }\n-\n-    /**\n-     * Get the service names from the specified {@link URL url}\n-     *\n-     * @param url      {@link URL}\n-     * @param listener {@link NotifyListener}\n-     * @return non-null\n-     */\n-    private Set<String> getServiceNames(URL url, NotifyListener listener) {\n-        if (isAdminProtocol(url)) {\n-            scheduleServiceNamesLookup(url, listener);\n-            return getServiceNamesForOps(url);\n-        } else {\n-            return getServiceNames0(url);\n-        }\n-    }\n-\n-    private Set<String> getServiceNames0(URL url) {\n-        NacosServiceName serviceName = createServiceName(url);\n-\n-        final Set<String> serviceNames;\n-\n-        if (serviceName.isConcrete()) { // is the concrete service name\n-            serviceNames = new LinkedHashSet<>();\n-            serviceNames.add(serviceName.toString());\n-            // Add the legacy service name since 2.7.6\n-            String legacySubscribedServiceName = getLegacySubscribedServiceName(url);\n-            if (!serviceName.toString().equals(legacySubscribedServiceName)) {\n-                //avoid duplicated service names\n-                serviceNames.add(legacySubscribedServiceName);\n-            }\n-        } else {\n-            serviceNames = filterServiceNames(serviceName);\n-        }\n-\n-        return serviceNames;\n-    }\n-\n-    private Set<String> filterServiceNames(NacosServiceName serviceName) {\n-        Set<String> serviceNames = new LinkedHashSet<>();\n-\n-        execute(namingService -> {\n-\n-            serviceNames.addAll(namingService.getServicesOfServer(1, Integer.MAX_VALUE,\n-                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP)).getData()\n-                    .stream()\n-                    .map(NacosServiceName::new)\n-                    .filter(serviceName::isCompatible)\n-                    .map(NacosServiceName::toString)\n-                    .collect(Collectors.toList()));\n-\n-        });\n-\n-        return serviceNames;\n-    }\n-\n-    /**\n-     * Get the legacy subscribed service name for compatible with Dubbo 2.7.3 and below\n-     *\n-     * @param url {@link URL}\n-     * @return non-null\n-     * @since 2.7.6\n-     */\n-    private String getLegacySubscribedServiceName(URL url) {\n-        StringBuilder serviceNameBuilder = new StringBuilder(DEFAULT_CATEGORY);\n-        appendIfPresent(serviceNameBuilder, url, INTERFACE_KEY);\n-        appendIfPresent(serviceNameBuilder, url, VERSION_KEY);\n-        appendIfPresent(serviceNameBuilder, url, GROUP_KEY);\n-        return serviceNameBuilder.toString();\n-    }\n-\n-    private void appendIfPresent(StringBuilder target, URL url, String parameterName) {\n-        String parameterValue = url.getParameter(parameterName);\n-        if (!StringUtils.isBlank(parameterValue)) {\n-            target.append(SERVICE_NAME_SEPARATOR).append(parameterValue);\n-        }\n-    }\n-\n-\n-    private boolean isAdminProtocol(URL url) {\n-        return ADMIN_PROTOCOL.equals(url.getProtocol());\n-    }\n-\n-    private void scheduleServiceNamesLookup(final URL url, final NotifyListener listener) {\n-        if (scheduledExecutorService == null) {\n-            scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();\n-            scheduledExecutorService.scheduleAtFixedRate(() -> {\n-                Set<String> serviceNames = getAllServiceNames();\n-                filterData(serviceNames, serviceName -> {\n-                    boolean accepted = false;\n-                    for (String category : ALL_SUPPORTED_CATEGORIES) {\n-                        String prefix = category + SERVICE_NAME_SEPARATOR;\n-                        if (serviceName != null && serviceName.startsWith(prefix)) {\n-                            accepted = true;\n-                            break;\n-                        }\n-                    }\n-                    return accepted;\n-                });\n-                doSubscribe(url, listener, serviceNames);\n-            }, LOOKUP_INTERVAL, LOOKUP_INTERVAL, TimeUnit.SECONDS);\n-        }\n-    }\n-\n-    /**\n-     * Get the service names for Dubbo OPS\n-     *\n-     * @param url {@link URL}\n-     * @return non-null\n-     */\n-    private Set<String> getServiceNamesForOps(URL url) {\n-        Set<String> serviceNames = getAllServiceNames();\n-        filterServiceNames(serviceNames, url);\n-        return serviceNames;\n-    }\n-\n-    private Set<String> getAllServiceNames() {\n-\n-        final Set<String> serviceNames = new LinkedHashSet<>();\n-\n-        execute(namingService -> {\n-\n-            int pageIndex = 1;\n-            ListView<String> listView = namingService.getServicesOfServer(pageIndex, PAGINATION_SIZE,\n-                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\n-            // First page data\n-            List<String> firstPageData = listView.getData();\n-            // Append first page into list\n-            serviceNames.addAll(firstPageData);\n-            // the total count\n-            int count = listView.getCount();\n-            // the number of pages\n-            int pageNumbers = count / PAGINATION_SIZE;\n-            int remainder = count % PAGINATION_SIZE;\n-            // remain\n-            if (remainder > 0) {\n-                pageNumbers += 1;\n-            }\n-            // If more than 1 page\n-            while (pageIndex < pageNumbers) {\n-                listView = namingService.getServicesOfServer(++pageIndex, PAGINATION_SIZE,\n-                        getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\n-                serviceNames.addAll(listView.getData());\n-            }\n-\n-        });\n-\n-        return serviceNames;\n-    }\n-\n-    private void filterServiceNames(Set<String> serviceNames, URL url) {\n-\n-        final List<String> categories = getCategories(url);\n-\n-        final String targetServiceInterface = url.getServiceInterface();\n-\n-        final String targetVersion = url.getParameter(VERSION_KEY, \"\");\n-\n-        final String targetGroup = url.getParameter(GROUP_KEY, \"\");\n-\n-        filterData(serviceNames, serviceName -> {\n-            // split service name to segments\n-            // (required) segments[0] = category\n-            // (required) segments[1] = serviceInterface\n-            // (optional) segments[2] = version\n-            // (optional) segments[3] = group\n-            String[] segments = serviceName.split(SERVICE_NAME_SEPARATOR, -1);\n-            int length = segments.length;\n-            if (length != 4) { // must present 4 segments\n-                return false;\n-            }\n-\n-            String category = segments[CATEGORY_INDEX];\n-            if (!categories.contains(category)) { // no match category\n-                return false;\n-            }\n-\n-            String serviceInterface = segments[SERVICE_INTERFACE_INDEX];\n-            // no match service interface\n-            if (!WILDCARD.equals(targetServiceInterface) &&\n-                    !StringUtils.isEquals(targetServiceInterface, serviceInterface)) {\n-                return false;\n-            }\n-\n-            // no match service version\n-            String version = segments[SERVICE_VERSION_INDEX];\n-            if (!WILDCARD.equals(targetVersion) && !StringUtils.isEquals(targetVersion, version)) {\n-                return false;\n-            }\n-\n-            String group = segments[SERVICE_GROUP_INDEX];\n-            return group == null || WILDCARD.equals(targetGroup) || StringUtils.isEquals(targetGroup, group);\n-        });\n-    }\n-\n-    private <T> void filterData(Collection<T> collection, NacosDataFilter<T> filter) {\n-        // remove if not accept\n-        collection.removeIf(data -> !filter.accept(data));\n-    }\n-\n-    @Deprecated\n-    private List<String> doGetServiceNames(URL url) {\n-        List<String> categories = getCategories(url);\n-        List<String> serviceNames = new ArrayList<>(categories.size());\n-        for (String category : categories) {\n-            final String serviceName = getServiceName(url, category);\n-            serviceNames.add(serviceName);\n-        }\n-        return serviceNames;\n-    }\n-\n-    private List<URL> toUrlWithEmpty(URL consumerURL, Collection<Instance> instances) {\n-        List<URL> urls = buildURLs(consumerURL, instances);\n-        if (urls.size() == 0) {\n-            URL empty = URLBuilder.from(consumerURL)\n-                    .setProtocol(EMPTY_PROTOCOL)\n-                    .addParameter(CATEGORY_KEY, DEFAULT_CATEGORY)\n-                    .build();\n-            urls.add(empty);\n-        }\n-        return urls;\n-    }\n-\n-    private List<URL> buildURLs(URL consumerURL, Collection<Instance> instances) {\n-        List<URL> urls = new LinkedList<>();\n-        if (instances != null && !instances.isEmpty()) {\n-            for (Instance instance : instances) {\n-                URL url = buildURL(instance);\n-                if (UrlUtils.isMatch(consumerURL, url)) {\n-                    urls.add(url);\n-                }\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    private void subscribeEventListener(String serviceName, final URL url, final NotifyListener listener)\n-            throws NacosException {\n-        EventListener eventListener = event -> {\n-            if (event instanceof NamingEvent) {\n-                NamingEvent e = (NamingEvent) event;\n-                List<Instance> instances = e.getInstances();\n-\n-\n-                if (isServiceNamesWithCompatibleMode(url)) {\n-                    /**\n-                     * Get all instances with corresponding serviceNames to avoid instance overwrite and but with empty instance mentioned\n-                     * in https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\n-                     */\n-                    NacosInstanceManageUtil.initOrRefreshServiceInstanceList(serviceName, instances);\n-                    instances = NacosInstanceManageUtil.getAllCorrespondingServiceInstanceList(serviceName);\n-                }\n-\n-                notifySubscriber(url, listener, instances);\n-            }\n-        };\n-        namingService.subscribe(serviceName,\n-                getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP),\n-                eventListener);\n-    }\n-\n-    /**\n-     * Notify the Enabled {@link Instance instances} to subscriber.\n-     *\n-     * @param url       {@link URL}\n-     * @param listener  {@link NotifyListener}\n-     * @param instances all {@link Instance instances}\n-     */\n-    private void notifySubscriber(URL url, NotifyListener listener, Collection<Instance> instances) {\n-        List<Instance> enabledInstances = new LinkedList<>(instances);\n-        if (enabledInstances.size() > 0) {\n-            //  Instances\n-            filterEnabledInstances(enabledInstances);\n-        }\n-        List<URL> urls = toUrlWithEmpty(url, enabledInstances);\n-        NacosRegistry.this.notify(url, listener, urls);\n-    }\n-\n-    /**\n-     * Get the categories from {@link URL}\n-     *\n-     * @param url {@link URL}\n-     * @return non-null array\n-     */\n-    private List<String> getCategories(URL url) {\n-        return ANY_VALUE.equals(url.getServiceInterface()) ?\n-                ALL_SUPPORTED_CATEGORIES : Arrays.asList(DEFAULT_CATEGORY);\n-    }\n-\n-    private URL buildURL(Instance instance) {\n-        Map<String, String> metadata = instance.getMetadata();\n-        String protocol = metadata.get(PROTOCOL_KEY);\n-        String path = metadata.get(PATH_KEY);\n-        return new URL(protocol,\n-                instance.getIp(),\n-                instance.getPort(),\n-                path,\n-                instance.getMetadata());\n-    }\n-\n-    private Instance createInstance(URL url) {\n-        // Append default category if absent\n-        String category = url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY);\n-        URL newURL = url.addParameter(CATEGORY_KEY, category);\n-        newURL = newURL.addParameter(PROTOCOL_KEY, url.getProtocol());\n-        newURL = newURL.addParameter(PATH_KEY, url.getPath());\n-        newURL = newURL.addParameters(NacosNamingServiceUtils.getNacosPreservedParam(getUrl()));\n-        String ip = url.getHost();\n-        int port = url.getPort();\n-        Instance instance = new Instance();\n-        instance.setIp(ip);\n-        instance.setPort(port);\n-        instance.setMetadata(new HashMap<>(newURL.getParameters()));\n-        return instance;\n-    }\n-\n-    private NacosServiceName createServiceName(URL url) {\n-        return valueOf(url);\n-    }\n-\n-    private String getServiceName(URL url) {\n-        return getServiceName(url, url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY));\n-    }\n-\n-    private String getServiceName(URL url, String category) {\n-        return category + SERVICE_NAME_SEPARATOR + url.getColonSeparatedKey();\n-    }\n-\n-    private void execute(NamingServiceCallback callback) {\n-        try {\n-            callback.callback(namingService);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getErrMsg(), e);\n-            }\n-        }\n-    }\n-\n-    private void filterEnabledInstances(Collection<Instance> instances) {\n-        filterData(instances, Instance::isEnabled);\n-    }\n-\n-    /**\n-     * A filter for Nacos data\n-     *\n-     * @since 2.6.5\n-     */\n-    private interface NacosDataFilter<T> {\n-\n-        /**\n-         * Tests whether or not the specified data should be accepted.\n-         *\n-         * @param data The data to be tested\n-         * @return <code>true</code> if and only if <code>data</code>\n-         * should be accepted\n-         */\n-        boolean accept(T data);\n-\n-    }\n-\n-    /**\n-     * {@link NamingService} Callback\n-     *\n-     * @since 2.6.5\n-     */\n-    interface NamingServiceCallback {\n-\n-        /**\n-         * Callback\n-         *\n-         * @param namingService {@link NamingService}\n-         * @throws NacosException\n-         */\n-        void callback(NacosNamingServiceWrapper namingService) throws NacosException;\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.nacos.util.NacosInstanceManageUtil;\r\n+import org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+\r\n+import com.alibaba.nacos.api.common.Constants;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.api.naming.NamingService;\r\n+import com.alibaba.nacos.api.naming.listener.EventListener;\r\n+import com.alibaba.nacos.api.naming.listener.NamingEvent;\r\n+import com.alibaba.nacos.api.naming.pojo.Instance;\r\n+import com.alibaba.nacos.api.naming.pojo.ListView;\r\n+import com.google.common.collect.Lists;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collection;\r\n+import java.util.HashMap;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANY_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CONSUMERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.EMPTY_PROTOCOL;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.PROVIDERS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.ROUTERS_CATEGORY;\r\n+import static org.apache.dubbo.registry.Constants.ADMIN_PROTOCOL;\r\n+import static org.apache.dubbo.registry.nacos.NacosServiceName.valueOf;\r\n+\r\n+/**\r\n+ * Nacos {@link Registry}\r\n+ *\r\n+ * @see #SERVICE_NAME_SEPARATOR\r\n+ * @see #PAGINATION_SIZE\r\n+ * @see #LOOKUP_INTERVAL\r\n+ * @since 2.6.5\r\n+ */\r\n+public class NacosRegistry extends FailbackRegistry {\r\n+\r\n+    /**\r\n+     * All supported categories\r\n+     */\r\n+    private static final List<String> ALL_SUPPORTED_CATEGORIES = Arrays.asList(\r\n+            PROVIDERS_CATEGORY,\r\n+            CONSUMERS_CATEGORY,\r\n+            ROUTERS_CATEGORY,\r\n+            CONFIGURATORS_CATEGORY\r\n+    );\r\n+\r\n+    private static final int CATEGORY_INDEX = 0;\r\n+\r\n+    private static final int SERVICE_INTERFACE_INDEX = 1;\r\n+\r\n+    private static final int SERVICE_VERSION_INDEX = 2;\r\n+\r\n+    private static final int SERVICE_GROUP_INDEX = 3;\r\n+\r\n+    private static final String WILDCARD = \"*\";\r\n+\r\n+    /**\r\n+     * The separator for service name\r\n+     * Change a constant to be configurable, it's designed for Windows file name that is compatible with old\r\n+     * Nacos binary release(< 0.6.1)\r\n+     */\r\n+    private static final String SERVICE_NAME_SEPARATOR = System.getProperty(\"nacos.service.name.separator\", \":\");\r\n+\r\n+    /**\r\n+     * The pagination size of query for Nacos service names(only for Dubbo-OPS)\r\n+     */\r\n+    private static final int PAGINATION_SIZE = Integer.getInteger(\"nacos.service.names.pagination.size\", 100);\r\n+\r\n+    /**\r\n+     * The interval in second of lookup Nacos service names(only for Dubbo-OPS)\r\n+     */\r\n+    private static final long LOOKUP_INTERVAL = Long.getLong(\"nacos.service.names.lookup.interval\", 30);\r\n+\r\n+    /**\r\n+     * {@link ScheduledExecutorService} lookup Nacos service names(only for Dubbo-OPS)\r\n+     */\r\n+    private volatile ScheduledExecutorService scheduledExecutorService;\r\n+\r\n+    private final NacosNamingServiceWrapper namingService;\r\n+\r\n+    public NacosRegistry(URL url, NacosNamingServiceWrapper namingService) {\r\n+        super(url);\r\n+        this.namingService = namingService;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return \"UP\".equals(namingService.getServerStatus());\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<URL> lookup(final URL url) {\r\n+        final List<URL> urls = new LinkedList<>();\r\n+        execute(namingService -> {\r\n+            Set<String> serviceNames = getServiceNames(url, null);\r\n+            for (String serviceName : serviceNames) {\r\n+                List<Instance> instances = namingService.getAllInstances(serviceName,\r\n+                        getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\r\n+                urls.addAll(buildURLs(url, instances));\r\n+            }\r\n+        });\r\n+        return urls;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(URL url) {\r\n+        final String serviceName = getServiceName(url);\r\n+\r\n+        final Instance instance = createInstance(url);\r\n+        /**\r\n+         *  namingService.registerInstance with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl}\r\n+         *  default {@link DEFAULT_GROUP}\r\n+         *\r\n+         * in https://github.com/apache/dubbo/issues/5978\r\n+         */\r\n+        execute(namingService -> namingService.registerInstance(serviceName,\r\n+                getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP), instance));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnregister(final URL url) {\r\n+        execute(namingService -> {\r\n+            String serviceName = getServiceName(url);\r\n+            Instance instance = createInstance(url);\r\n+            namingService.deregisterInstance(serviceName,\r\n+                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP),\r\n+                    instance.getIp(),\r\n+                    instance.getPort());\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doSubscribe(final URL url, final NotifyListener listener) {\r\n+        Set<String> serviceNames = getServiceNames(url, listener);\r\n+\r\n+        //Set corresponding serviceNames for easy search later\r\n+        if (isServiceNamesWithCompatibleMode(url)) {\r\n+            for (String serviceName : serviceNames) {\r\n+                NacosInstanceManageUtil.setCorrespondingServiceNames(serviceName, serviceNames);\r\n+            }\r\n+        }\r\n+\r\n+        doSubscribe(url, listener, serviceNames);\r\n+    }\r\n+\r\n+    private void doSubscribe(final URL url, final NotifyListener listener, final Set<String> serviceNames) {\r\n+        execute(namingService -> {\r\n+            if (isServiceNamesWithCompatibleMode(url)) {\r\n+                List<Instance> allCorrespondingInstanceList = Lists.newArrayList();\r\n+\r\n+                /**\r\n+                 * Get all instances with serviceNames to avoid instance overwrite and but with empty instance mentioned\r\n+                 * in https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\r\n+                 *\r\n+                 * namingService.getAllInstances with {@link org.apache.dubbo.registry.support.AbstractRegistry#registryUrl}\r\n+                 * default {@link DEFAULT_GROUP}\r\n+                 *\r\n+                 * in https://github.com/apache/dubbo/issues/5978\r\n+                 */\r\n+                for (String serviceName : serviceNames) {\r\n+                    List<Instance> instances = namingService.getAllInstances(serviceName,\r\n+                            getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\r\n+                    NacosInstanceManageUtil.initOrRefreshServiceInstanceList(serviceName, instances);\r\n+                    allCorrespondingInstanceList.addAll(instances);\r\n+                }\r\n+                notifySubscriber(url, listener, allCorrespondingInstanceList);\r\n+                for (String serviceName : serviceNames) {\r\n+                    subscribeEventListener(serviceName, url, listener);\r\n+                }\r\n+            } else {\r\n+                List<Instance> instances = new LinkedList<>();\r\n+                for (String serviceName : serviceNames) {\r\n+                    instances.addAll(namingService.getAllInstances(serviceName\r\n+                            , getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP)));\r\n+                    notifySubscriber(url, listener, instances);\r\n+                    subscribeEventListener(serviceName, url, listener);\r\n+                }\r\n+            }\r\n+\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Since 2.7.6 the legacy service name will be added to serviceNames\r\n+     * to fix bug with https://github.com/apache/dubbo/issues/5442\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    private boolean isServiceNamesWithCompatibleMode(final URL url) {\r\n+        return !isAdminProtocol(url) && createServiceName(url).isConcrete();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnsubscribe(URL url, NotifyListener listener) {\r\n+        if (isAdminProtocol(url)) {\r\n+            shutdownServiceNamesLookup();\r\n+        }\r\n+    }\r\n+\r\n+    private void shutdownServiceNamesLookup() {\r\n+        if (scheduledExecutorService != null) {\r\n+            scheduledExecutorService.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the service names from the specified {@link URL url}\r\n+     *\r\n+     * @param url      {@link URL}\r\n+     * @param listener {@link NotifyListener}\r\n+     * @return non-null\r\n+     */\r\n+    private Set<String> getServiceNames(URL url, NotifyListener listener) {\r\n+        if (isAdminProtocol(url)) {\r\n+            scheduleServiceNamesLookup(url, listener);\r\n+            return getServiceNamesForOps(url);\r\n+        } else {\r\n+            return getServiceNames0(url);\r\n+        }\r\n+    }\r\n+\r\n+    private Set<String> getServiceNames0(URL url) {\r\n+        NacosServiceName serviceName = createServiceName(url);\r\n+\r\n+        final Set<String> serviceNames;\r\n+\r\n+        if (serviceName.isConcrete()) { // is the concrete service name\r\n+            serviceNames = new LinkedHashSet<>();\r\n+            serviceNames.add(serviceName.toString());\r\n+            // Add the legacy service name since 2.7.6\r\n+            String legacySubscribedServiceName = getLegacySubscribedServiceName(url);\r\n+            if (!serviceName.toString().equals(legacySubscribedServiceName)) {\r\n+                //avoid duplicated service names\r\n+                serviceNames.add(legacySubscribedServiceName);\r\n+            }\r\n+        } else {\r\n+            serviceNames = filterServiceNames(serviceName);\r\n+        }\r\n+\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    private Set<String> filterServiceNames(NacosServiceName serviceName) {\r\n+        Set<String> serviceNames = new LinkedHashSet<>();\r\n+\r\n+        execute(namingService -> {\r\n+\r\n+            serviceNames.addAll(namingService.getServicesOfServer(1, Integer.MAX_VALUE,\r\n+                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP)).getData()\r\n+                    .stream()\r\n+                    .map(NacosServiceName::new)\r\n+                    .filter(serviceName::isCompatible)\r\n+                    .map(NacosServiceName::toString)\r\n+                    .collect(Collectors.toList()));\r\n+\r\n+        });\r\n+\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the legacy subscribed service name for compatible with Dubbo 2.7.3 and below\r\n+     *\r\n+     * @param url {@link URL}\r\n+     * @return non-null\r\n+     * @since 2.7.6\r\n+     */\r\n+    private String getLegacySubscribedServiceName(URL url) {\r\n+        StringBuilder serviceNameBuilder = new StringBuilder(DEFAULT_CATEGORY);\r\n+        appendIfPresent(serviceNameBuilder, url, INTERFACE_KEY);\r\n+        appendIfPresent(serviceNameBuilder, url, VERSION_KEY);\r\n+        appendIfPresent(serviceNameBuilder, url, GROUP_KEY);\r\n+        return serviceNameBuilder.toString();\r\n+    }\r\n+\r\n+    private void appendIfPresent(StringBuilder target, URL url, String parameterName) {\r\n+        String parameterValue = url.getParameter(parameterName);\r\n+        if (!StringUtils.isBlank(parameterValue)) {\r\n+            target.append(SERVICE_NAME_SEPARATOR).append(parameterValue);\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    private boolean isAdminProtocol(URL url) {\r\n+        return ADMIN_PROTOCOL.equals(url.getProtocol());\r\n+    }\r\n+\r\n+    private void scheduleServiceNamesLookup(final URL url, final NotifyListener listener) {\r\n+        if (scheduledExecutorService == null) {\r\n+            scheduledExecutorService = Executors.newSingleThreadScheduledExecutor();\r\n+            scheduledExecutorService.scheduleAtFixedRate(() -> {\r\n+                Set<String> serviceNames = getAllServiceNames();\r\n+                filterData(serviceNames, serviceName -> {\r\n+                    boolean accepted = false;\r\n+                    for (String category : ALL_SUPPORTED_CATEGORIES) {\r\n+                        String prefix = category + SERVICE_NAME_SEPARATOR;\r\n+                        if (serviceName != null && serviceName.startsWith(prefix)) {\r\n+                            accepted = true;\r\n+                            break;\r\n+                        }\r\n+                    }\r\n+                    return accepted;\r\n+                });\r\n+                doSubscribe(url, listener, serviceNames);\r\n+            }, LOOKUP_INTERVAL, LOOKUP_INTERVAL, TimeUnit.SECONDS);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the service names for Dubbo OPS\r\n+     *\r\n+     * @param url {@link URL}\r\n+     * @return non-null\r\n+     */\r\n+    private Set<String> getServiceNamesForOps(URL url) {\r\n+        Set<String> serviceNames = getAllServiceNames();\r\n+        filterServiceNames(serviceNames, url);\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    private Set<String> getAllServiceNames() {\r\n+\r\n+        final Set<String> serviceNames = new LinkedHashSet<>();\r\n+\r\n+        execute(namingService -> {\r\n+\r\n+            int pageIndex = 1;\r\n+            ListView<String> listView = namingService.getServicesOfServer(pageIndex, PAGINATION_SIZE,\r\n+                    getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\r\n+            // First page data\r\n+            List<String> firstPageData = listView.getData();\r\n+            // Append first page into list\r\n+            serviceNames.addAll(firstPageData);\r\n+            // the total count\r\n+            int count = listView.getCount();\r\n+            // the number of pages\r\n+            int pageNumbers = count / PAGINATION_SIZE;\r\n+            int remainder = count % PAGINATION_SIZE;\r\n+            // remain\r\n+            if (remainder > 0) {\r\n+                pageNumbers += 1;\r\n+            }\r\n+            // If more than 1 page\r\n+            while (pageIndex < pageNumbers) {\r\n+                listView = namingService.getServicesOfServer(++pageIndex, PAGINATION_SIZE,\r\n+                        getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP));\r\n+                serviceNames.addAll(listView.getData());\r\n+            }\r\n+\r\n+        });\r\n+\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    private void filterServiceNames(Set<String> serviceNames, URL url) {\r\n+\r\n+        final List<String> categories = getCategories(url);\r\n+\r\n+        final String targetServiceInterface = url.getServiceInterface();\r\n+\r\n+        final String targetVersion = url.getParameter(VERSION_KEY, \"\");\r\n+\r\n+        final String targetGroup = url.getParameter(GROUP_KEY, \"\");\r\n+\r\n+        filterData(serviceNames, serviceName -> {\r\n+            // split service name to segments\r\n+            // (required) segments[0] = category\r\n+            // (required) segments[1] = serviceInterface\r\n+            // (optional) segments[2] = version\r\n+            // (optional) segments[3] = group\r\n+            String[] segments = serviceName.split(SERVICE_NAME_SEPARATOR, -1);\r\n+            int length = segments.length;\r\n+            if (length != 4) { // must present 4 segments\r\n+                return false;\r\n+            }\r\n+\r\n+            String category = segments[CATEGORY_INDEX];\r\n+            if (!categories.contains(category)) { // no match category\r\n+                return false;\r\n+            }\r\n+\r\n+            String serviceInterface = segments[SERVICE_INTERFACE_INDEX];\r\n+            // no match service interface\r\n+            if (!WILDCARD.equals(targetServiceInterface) &&\r\n+                    !StringUtils.isEquals(targetServiceInterface, serviceInterface)) {\r\n+                return false;\r\n+            }\r\n+\r\n+            // no match service version\r\n+            String version = segments[SERVICE_VERSION_INDEX];\r\n+            if (!WILDCARD.equals(targetVersion) && !StringUtils.isEquals(targetVersion, version)) {\r\n+                return false;\r\n+            }\r\n+\r\n+            String group = segments[SERVICE_GROUP_INDEX];\r\n+            return group == null || WILDCARD.equals(targetGroup) || StringUtils.isEquals(targetGroup, group);\r\n+        });\r\n+    }\r\n+\r\n+    private <T> void filterData(Collection<T> collection, NacosDataFilter<T> filter) {\r\n+        // remove if not accept\r\n+        collection.removeIf(data -> !filter.accept(data));\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private List<String> doGetServiceNames(URL url) {\r\n+        List<String> categories = getCategories(url);\r\n+        List<String> serviceNames = new ArrayList<>(categories.size());\r\n+        for (String category : categories) {\r\n+            final String serviceName = getServiceName(url, category);\r\n+            serviceNames.add(serviceName);\r\n+        }\r\n+        return serviceNames;\r\n+    }\r\n+\r\n+    private List<URL> toUrlWithEmpty(URL consumerURL, Collection<Instance> instances) {\r\n+        List<URL> urls = buildURLs(consumerURL, instances);\r\n+        if (urls.size() == 0) {\r\n+            URL empty = URLBuilder.from(consumerURL)\r\n+                    .setProtocol(EMPTY_PROTOCOL)\r\n+                    .addParameter(CATEGORY_KEY, DEFAULT_CATEGORY)\r\n+                    .build();\r\n+            urls.add(empty);\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private List<URL> buildURLs(URL consumerURL, Collection<Instance> instances) {\r\n+        List<URL> urls = new LinkedList<>();\r\n+        if (instances != null && !instances.isEmpty()) {\r\n+            for (Instance instance : instances) {\r\n+                URL url = buildURL(instance);\r\n+                if (UrlUtils.isMatch(consumerURL, url)) {\r\n+                    urls.add(url);\r\n+                }\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private void subscribeEventListener(String serviceName, final URL url, final NotifyListener listener)\r\n+            throws NacosException {\r\n+        EventListener eventListener = event -> {\r\n+            if (event instanceof NamingEvent) {\r\n+                NamingEvent e = (NamingEvent) event;\r\n+                List<Instance> instances = e.getInstances();\r\n+\r\n+\r\n+                if (isServiceNamesWithCompatibleMode(url)) {\r\n+                    /**\r\n+                     * Get all instances with corresponding serviceNames to avoid instance overwrite and but with empty instance mentioned\r\n+                     * in https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\r\n+                     */\r\n+                    NacosInstanceManageUtil.initOrRefreshServiceInstanceList(serviceName, instances);\r\n+                    instances = NacosInstanceManageUtil.getAllCorrespondingServiceInstanceList(serviceName);\r\n+                }\r\n+\r\n+                notifySubscriber(url, listener, instances);\r\n+            }\r\n+        };\r\n+        namingService.subscribe(serviceName,\r\n+                getUrl().getParameter(GROUP_KEY, Constants.DEFAULT_GROUP),\r\n+                eventListener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Notify the Enabled {@link Instance instances} to subscriber.\r\n+     *\r\n+     * @param url       {@link URL}\r\n+     * @param listener  {@link NotifyListener}\r\n+     * @param instances all {@link Instance instances}\r\n+     */\r\n+    private void notifySubscriber(URL url, NotifyListener listener, Collection<Instance> instances) {\r\n+        List<Instance> enabledInstances = new LinkedList<>(instances);\r\n+        if (enabledInstances.size() > 0) {\r\n+            //  Instances\r\n+            filterEnabledInstances(enabledInstances);\r\n+        }\r\n+        List<URL> urls = toUrlWithEmpty(url, enabledInstances);\r\n+        NacosRegistry.this.notify(url, listener, urls);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the categories from {@link URL}\r\n+     *\r\n+     * @param url {@link URL}\r\n+     * @return non-null array\r\n+     */\r\n+    private List<String> getCategories(URL url) {\r\n+        return ANY_VALUE.equals(url.getServiceInterface()) ?\r\n+                ALL_SUPPORTED_CATEGORIES : Arrays.asList(DEFAULT_CATEGORY);\r\n+    }\r\n+\r\n+    private URL buildURL(Instance instance) {\r\n+        Map<String, String> metadata = instance.getMetadata();\r\n+        String protocol = metadata.get(PROTOCOL_KEY);\r\n+        String path = metadata.get(PATH_KEY);\r\n+        return new URL(protocol,\r\n+                instance.getIp(),\r\n+                instance.getPort(),\r\n+                path,\r\n+                instance.getMetadata());\r\n+    }\r\n+\r\n+    private Instance createInstance(URL url) {\r\n+        // Append default category if absent\r\n+        String category = url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY);\r\n+        URL newURL = url.addParameter(CATEGORY_KEY, category);\r\n+        newURL = newURL.addParameter(PROTOCOL_KEY, url.getProtocol());\r\n+        newURL = newURL.addParameter(PATH_KEY, url.getPath());\r\n+        newURL = newURL.addParameters(NacosNamingServiceUtils.getNacosPreservedParam(getUrl()));\r\n+        String ip = url.getHost();\r\n+        int port = url.getPort();\r\n+        Instance instance = new Instance();\r\n+        instance.setIp(ip);\r\n+        instance.setPort(port);\r\n+        instance.setMetadata(new HashMap<>(newURL.getParameters()));\r\n+        return instance;\r\n+    }\r\n+\r\n+    private NacosServiceName createServiceName(URL url) {\r\n+        return valueOf(url);\r\n+    }\r\n+\r\n+    private String getServiceName(URL url) {\r\n+        return getServiceName(url, url.getParameter(CATEGORY_KEY, DEFAULT_CATEGORY));\r\n+    }\r\n+\r\n+    private String getServiceName(URL url, String category) {\r\n+        return category + SERVICE_NAME_SEPARATOR + url.getColonSeparatedKey();\r\n+    }\r\n+\r\n+    private void execute(NamingServiceCallback callback) {\r\n+        try {\r\n+            callback.callback(namingService);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getErrMsg(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void filterEnabledInstances(Collection<Instance> instances) {\r\n+        filterData(instances, Instance::isEnabled);\r\n+    }\r\n+\r\n+    /**\r\n+     * A filter for Nacos data\r\n+     *\r\n+     * @since 2.6.5\r\n+     */\r\n+    private interface NacosDataFilter<T> {\r\n+\r\n+        /**\r\n+         * Tests whether or not the specified data should be accepted.\r\n+         *\r\n+         * @param data The data to be tested\r\n+         * @return <code>true</code> if and only if <code>data</code>\r\n+         * should be accepted\r\n+         */\r\n+        boolean accept(T data);\r\n+\r\n+    }\r\n+\r\n+    /**\r\n+     * {@link NamingService} Callback\r\n+     *\r\n+     * @since 2.6.5\r\n+     */\r\n+    interface NamingServiceCallback {\r\n+\r\n+        /**\r\n+         * Callback\r\n+         *\r\n+         * @param namingService {@link NamingService}\r\n+         * @throws NacosException\r\n+         */\r\n+        void callback(NacosNamingServiceWrapper namingService) throws NacosException;\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosRegistryFactory.java", "source2": "org/apache/dubbo/registry/nacos/NacosRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,49 +1,49 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.RegistryFactory;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\n-import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.createNamingService;\n-\n-/**\n- * Nacos {@link RegistryFactory}\n- *\n- * @since 2.6.5\n- */\n-public class NacosRegistryFactory extends AbstractRegistryFactory {\n-\n-    @Override\n-    protected String createRegistryCacheKey(URL url) {\n-        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY);\n-        url = URL.valueOf(url.toServiceStringWithoutResolving());\n-        if (StringUtils.isNotEmpty(namespace)) {\n-            url = url.addParameter(CONFIG_NAMESPACE_KEY, namespace);\n-        }\n-        return url.toFullString();\n-    }\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        return new NacosRegistry(url, createNamingService(url));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.RegistryFactory;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONFIG_NAMESPACE_KEY;\r\n+import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.createNamingService;\r\n+\r\n+/**\r\n+ * Nacos {@link RegistryFactory}\r\n+ *\r\n+ * @since 2.6.5\r\n+ */\r\n+public class NacosRegistryFactory extends AbstractRegistryFactory {\r\n+\r\n+    @Override\r\n+    protected String createRegistryCacheKey(URL url) {\r\n+        String namespace = url.getParameter(CONFIG_NAMESPACE_KEY);\r\n+        url = URL.valueOf(url.toServiceStringWithoutResolving());\r\n+        if (StringUtils.isNotEmpty(namespace)) {\r\n+            url = url.addParameter(CONFIG_NAMESPACE_KEY, namespace);\r\n+        }\r\n+        return url.toFullString();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        return new NacosRegistry(url, createNamingService(url));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java", "source2": "org/apache/dubbo/registry/nacos/NacosServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,154 +1,154 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.function.ThrowableFunction;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils;\n-\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.api.naming.listener.NamingEvent;\n-import com.alibaba.nacos.api.naming.pojo.Instance;\n-import com.alibaba.nacos.api.naming.pojo.ListView;\n-\n-import java.util.LinkedHashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.function.ThrowableConsumer.execute;\n-import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.createNamingService;\n-import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.getGroup;\n-import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.toInstance;\n-\n-/**\n- * Nacos {@link ServiceDiscovery} implementation\n- *\n- * @see ServiceDiscovery\n- * @since 2.7.5\n- */\n-public class NacosServiceDiscovery extends AbstractServiceDiscovery {\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private String group;\n-\n-    private NacosNamingServiceWrapper namingService;\n-\n-    private URL registryURL;\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.namingService = createNamingService(registryURL);\n-        this.group = getGroup(registryURL);\n-        this.registryURL = registryURL;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        this.namingService = null;\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        execute(namingService, service -> {\n-            Instance instance = toInstance(serviceInstance);\n-            appendPreservedParam(instance);\n-            service.registerInstance(instance.getServiceName(), group, instance);\n-        });\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        if (this.serviceInstance == null) {\n-            register(serviceInstance);\n-        } else {\n-            unregister(serviceInstance);\n-            register(serviceInstance);\n-        }\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        execute(namingService, service -> {\n-            Instance instance = toInstance(serviceInstance);\n-            service.deregisterInstance(instance.getServiceName(), group, instance);\n-        });\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return ThrowableFunction.execute(namingService, service -> {\n-            ListView<String> view = service.getServicesOfServer(0, Integer.MAX_VALUE, group);\n-            return new LinkedHashSet<>(view.getData());\n-        });\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-        return ThrowableFunction.execute(namingService, service ->\n-                service.selectInstances(serviceName, true)\n-                        .stream().map(NacosNamingServiceUtils::toServiceInstance)\n-                        .collect(Collectors.toList())\n-        );\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\n-            throws NullPointerException, IllegalArgumentException {\n-        execute(namingService, service -> {\n-            listener.getServiceNames().forEach(serviceName -> {\n-                try {\n-                    service.subscribe(serviceName, e -> { // Register Nacos EventListener\n-                        if (e instanceof NamingEvent) {\n-                            NamingEvent event = (NamingEvent) e;\n-                            handleEvent(event, listener);\n-                        }\n-                    });\n-                } catch (NacosException e) {\n-                    e.printStackTrace();\n-                }\n-            });\n-        });\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-    private void handleEvent(NamingEvent event, ServiceInstancesChangedListener listener) {\n-        String serviceName = event.getServiceName();\n-        List<ServiceInstance> serviceInstances = event.getInstances()\n-                .stream()\n-                .map(NacosNamingServiceUtils::toServiceInstance)\n-                .collect(Collectors.toList());\n-        dispatchServiceInstancesChangedEvent(serviceName, serviceInstances);\n-    }\n-\n-    private void appendPreservedParam(Instance instance) {\n-        Map<String, String> preservedParam = NacosNamingServiceUtils.getNacosPreservedParam(getUrl());\n-        instance.getMetadata().putAll(preservedParam);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.function.ThrowableFunction;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils;\r\n+\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.api.naming.listener.NamingEvent;\r\n+import com.alibaba.nacos.api.naming.pojo.Instance;\r\n+import com.alibaba.nacos.api.naming.pojo.ListView;\r\n+\r\n+import java.util.LinkedHashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.function.ThrowableConsumer.execute;\r\n+import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.createNamingService;\r\n+import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.getGroup;\r\n+import static org.apache.dubbo.registry.nacos.util.NacosNamingServiceUtils.toInstance;\r\n+\r\n+/**\r\n+ * Nacos {@link ServiceDiscovery} implementation\r\n+ *\r\n+ * @see ServiceDiscovery\r\n+ * @since 2.7.5\r\n+ */\r\n+public class NacosServiceDiscovery extends AbstractServiceDiscovery {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private String group;\r\n+\r\n+    private NacosNamingServiceWrapper namingService;\r\n+\r\n+    private URL registryURL;\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.namingService = createNamingService(registryURL);\r\n+        this.group = getGroup(registryURL);\r\n+        this.registryURL = registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        this.namingService = null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        execute(namingService, service -> {\r\n+            Instance instance = toInstance(serviceInstance);\r\n+            appendPreservedParam(instance);\r\n+            service.registerInstance(instance.getServiceName(), group, instance);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        if (this.serviceInstance == null) {\r\n+            register(serviceInstance);\r\n+        } else {\r\n+            unregister(serviceInstance);\r\n+            register(serviceInstance);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        execute(namingService, service -> {\r\n+            Instance instance = toInstance(serviceInstance);\r\n+            service.deregisterInstance(instance.getServiceName(), group, instance);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return ThrowableFunction.execute(namingService, service -> {\r\n+            ListView<String> view = service.getServicesOfServer(0, Integer.MAX_VALUE, group);\r\n+            return new LinkedHashSet<>(view.getData());\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+        return ThrowableFunction.execute(namingService, service ->\r\n+                service.selectInstances(serviceName, true)\r\n+                        .stream().map(NacosNamingServiceUtils::toServiceInstance)\r\n+                        .collect(Collectors.toList())\r\n+        );\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\r\n+            throws NullPointerException, IllegalArgumentException {\r\n+        execute(namingService, service -> {\r\n+            listener.getServiceNames().forEach(serviceName -> {\r\n+                try {\r\n+                    service.subscribe(serviceName, e -> { // Register Nacos EventListener\r\n+                        if (e instanceof NamingEvent) {\r\n+                            NamingEvent event = (NamingEvent) e;\r\n+                            handleEvent(event, listener);\r\n+                        }\r\n+                    });\r\n+                } catch (NacosException e) {\r\n+                    e.printStackTrace();\r\n+                }\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+    private void handleEvent(NamingEvent event, ServiceInstancesChangedListener listener) {\r\n+        String serviceName = event.getServiceName();\r\n+        List<ServiceInstance> serviceInstances = event.getInstances()\r\n+                .stream()\r\n+                .map(NacosNamingServiceUtils::toServiceInstance)\r\n+                .collect(Collectors.toList());\r\n+        dispatchServiceInstancesChangedEvent(serviceName, serviceInstances);\r\n+    }\r\n+\r\n+    private void appendPreservedParam(Instance instance) {\r\n+        Map<String, String> preservedParam = NacosNamingServiceUtils.getNacosPreservedParam(getUrl());\r\n+        instance.getMetadata().putAll(preservedParam);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/nacos/NacosServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-/**\n- *\n- */\n-public class NacosServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new NacosServiceDiscovery();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class NacosServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new NacosServiceDiscovery();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/NacosServiceName.java", "source2": "org/apache/dubbo/registry/nacos/NacosServiceName.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,234 +1,234 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\n-import static org.apache.dubbo.common.utils.StringUtils.isBlank;\n-\n-/**\n- * The service name of Nacos\n- *\n- * @since 2.7.3\n- */\n-public class NacosServiceName {\n-\n-    public static final String NAME_SEPARATOR = \":\";\n-\n-    public static final String VALUE_SEPARATOR = \",\";\n-\n-    public static final String WILDCARD = \"*\";\n-\n-    public static final String DEFAULT_PARAM_VALUE = \"\";\n-\n-    private static final int CATEGORY_INDEX = 0;\n-\n-    private static final int SERVICE_INTERFACE_INDEX = 1;\n-\n-    private static final int SERVICE_VERSION_INDEX = 2;\n-\n-    private static final int SERVICE_GROUP_INDEX = 3;\n-\n-    private String category;\n-\n-    private String serviceInterface;\n-\n-    private String version;\n-\n-    private String group;\n-\n-    private String value;\n-\n-    public NacosServiceName() {\n-    }\n-\n-    public NacosServiceName(URL url) {\n-        serviceInterface = url.getParameter(INTERFACE_KEY);\n-        category = isConcrete(serviceInterface) ? DEFAULT_CATEGORY : url.getParameter(CATEGORY_KEY);\n-        version = url.getParameter(VERSION_KEY, DEFAULT_PARAM_VALUE);\n-        group = url.getParameter(GROUP_KEY, DEFAULT_PARAM_VALUE);\n-        value = toValue();\n-    }\n-\n-    public NacosServiceName(String value) {\n-        this.value = value;\n-        String[] segments = value.split(NAME_SEPARATOR, -1);\n-        this.category = segments[CATEGORY_INDEX];\n-        this.serviceInterface = segments[SERVICE_INTERFACE_INDEX];\n-        this.version = segments[SERVICE_VERSION_INDEX];\n-        this.group = segments[SERVICE_GROUP_INDEX];\n-    }\n-\n-    /**\n-     * Build an instance of {@link NacosServiceName}\n-     *\n-     * @param url\n-     * @return\n-     */\n-    public static NacosServiceName valueOf(URL url) {\n-        return new NacosServiceName(url);\n-    }\n-\n-    /**\n-     * Is the concrete service name or not\n-     *\n-     * @return if concrete , return <code>true</code>, or <code>false</code>\n-     */\n-    public boolean isConcrete() {\n-        return isConcrete(serviceInterface) && isConcrete(version) && isConcrete(group);\n-    }\n-\n-    public boolean isCompatible(NacosServiceName concreteServiceName) {\n-\n-        if (!concreteServiceName.isConcrete()) { // The argument must be the concrete NacosServiceName\n-            return false;\n-        }\n-\n-        // Not match comparison\n-        if (!StringUtils.isEquals(this.category, concreteServiceName.category)\n-                && !matchRange(this.category, concreteServiceName.category)) {\n-            return false;\n-        }\n-\n-        if (!StringUtils.isEquals(this.serviceInterface, concreteServiceName.serviceInterface)) {\n-            return false;\n-        }\n-\n-        // wildcard condition\n-        if (isWildcard(this.version)) {\n-            return true;\n-        }\n-\n-        if (isWildcard(this.group)) {\n-            return true;\n-        }\n-\n-        // range condition\n-        if (!StringUtils.isEquals(this.version, concreteServiceName.version)\n-                && !matchRange(this.version, concreteServiceName.version)) {\n-            return false;\n-        }\n-\n-        if (!StringUtils.isEquals(this.group, concreteServiceName.group) &&\n-                !matchRange(this.group, concreteServiceName.group)) {\n-            return false;\n-        }\n-\n-        return true;\n-    }\n-\n-    private boolean matchRange(String range, String value) {\n-        if (isBlank(range)) {\n-            return true;\n-        }\n-        if (!isRange(range)) {\n-            return false;\n-        }\n-        String[] values = range.split(VALUE_SEPARATOR);\n-        return Arrays.asList(values).contains(value);\n-    }\n-\n-    private boolean isConcrete(String value) {\n-        return !isWildcard(value) && !isRange(value);\n-    }\n-\n-    private boolean isWildcard(String value) {\n-        return WILDCARD.equals(value);\n-    }\n-\n-    private boolean isRange(String value) {\n-        return value != null && value.indexOf(VALUE_SEPARATOR) > -1 && value.split(VALUE_SEPARATOR).length > 1;\n-    }\n-\n-    public String getCategory() {\n-        return category;\n-    }\n-\n-    public void setCategory(String category) {\n-        this.category = category;\n-    }\n-\n-    public String getServiceInterface() {\n-        return serviceInterface;\n-    }\n-\n-    public void setServiceInterface(String serviceInterface) {\n-        this.serviceInterface = serviceInterface;\n-    }\n-\n-    public String getVersion() {\n-        return version;\n-    }\n-\n-    public void setVersion(String version) {\n-        this.version = version;\n-    }\n-\n-    public String getGroup() {\n-        return group;\n-    }\n-\n-    public void setGroup(String group) {\n-        this.group = group;\n-    }\n-\n-    public String getValue() {\n-        if (value == null) {\n-            value = toValue();\n-        }\n-        return value;\n-    }\n-\n-    private String toValue() {\n-        return new StringBuilder(category)\n-                .append(NAME_SEPARATOR).append(serviceInterface)\n-                .append(NAME_SEPARATOR).append(version)\n-                .append(NAME_SEPARATOR).append(group)\n-                .toString();\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        if (this == o) {\n-            return true;\n-        }\n-        if (!(o instanceof NacosServiceName)) {\n-            return false;\n-        }\n-        NacosServiceName that = (NacosServiceName) o;\n-        return Objects.equals(getValue(), that.getValue());\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return Objects.hash(getValue());\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getValue();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.CATEGORY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DEFAULT_CATEGORY;\r\n+import static org.apache.dubbo.common.utils.StringUtils.isBlank;\r\n+\r\n+/**\r\n+ * The service name of Nacos\r\n+ *\r\n+ * @since 2.7.3\r\n+ */\r\n+public class NacosServiceName {\r\n+\r\n+    public static final String NAME_SEPARATOR = \":\";\r\n+\r\n+    public static final String VALUE_SEPARATOR = \",\";\r\n+\r\n+    public static final String WILDCARD = \"*\";\r\n+\r\n+    public static final String DEFAULT_PARAM_VALUE = \"\";\r\n+\r\n+    private static final int CATEGORY_INDEX = 0;\r\n+\r\n+    private static final int SERVICE_INTERFACE_INDEX = 1;\r\n+\r\n+    private static final int SERVICE_VERSION_INDEX = 2;\r\n+\r\n+    private static final int SERVICE_GROUP_INDEX = 3;\r\n+\r\n+    private String category;\r\n+\r\n+    private String serviceInterface;\r\n+\r\n+    private String version;\r\n+\r\n+    private String group;\r\n+\r\n+    private String value;\r\n+\r\n+    public NacosServiceName() {\r\n+    }\r\n+\r\n+    public NacosServiceName(URL url) {\r\n+        serviceInterface = url.getParameter(INTERFACE_KEY);\r\n+        category = isConcrete(serviceInterface) ? DEFAULT_CATEGORY : url.getParameter(CATEGORY_KEY);\r\n+        version = url.getParameter(VERSION_KEY, DEFAULT_PARAM_VALUE);\r\n+        group = url.getParameter(GROUP_KEY, DEFAULT_PARAM_VALUE);\r\n+        value = toValue();\r\n+    }\r\n+\r\n+    public NacosServiceName(String value) {\r\n+        this.value = value;\r\n+        String[] segments = value.split(NAME_SEPARATOR, -1);\r\n+        this.category = segments[CATEGORY_INDEX];\r\n+        this.serviceInterface = segments[SERVICE_INTERFACE_INDEX];\r\n+        this.version = segments[SERVICE_VERSION_INDEX];\r\n+        this.group = segments[SERVICE_GROUP_INDEX];\r\n+    }\r\n+\r\n+    /**\r\n+     * Build an instance of {@link NacosServiceName}\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    public static NacosServiceName valueOf(URL url) {\r\n+        return new NacosServiceName(url);\r\n+    }\r\n+\r\n+    /**\r\n+     * Is the concrete service name or not\r\n+     *\r\n+     * @return if concrete , return <code>true</code>, or <code>false</code>\r\n+     */\r\n+    public boolean isConcrete() {\r\n+        return isConcrete(serviceInterface) && isConcrete(version) && isConcrete(group);\r\n+    }\r\n+\r\n+    public boolean isCompatible(NacosServiceName concreteServiceName) {\r\n+\r\n+        if (!concreteServiceName.isConcrete()) { // The argument must be the concrete NacosServiceName\r\n+            return false;\r\n+        }\r\n+\r\n+        // Not match comparison\r\n+        if (!StringUtils.isEquals(this.category, concreteServiceName.category)\r\n+                && !matchRange(this.category, concreteServiceName.category)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (!StringUtils.isEquals(this.serviceInterface, concreteServiceName.serviceInterface)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // wildcard condition\r\n+        if (isWildcard(this.version)) {\r\n+            return true;\r\n+        }\r\n+\r\n+        if (isWildcard(this.group)) {\r\n+            return true;\r\n+        }\r\n+\r\n+        // range condition\r\n+        if (!StringUtils.isEquals(this.version, concreteServiceName.version)\r\n+                && !matchRange(this.version, concreteServiceName.version)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        if (!StringUtils.isEquals(this.group, concreteServiceName.group) &&\r\n+                !matchRange(this.group, concreteServiceName.group)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    private boolean matchRange(String range, String value) {\r\n+        if (isBlank(range)) {\r\n+            return true;\r\n+        }\r\n+        if (!isRange(range)) {\r\n+            return false;\r\n+        }\r\n+        String[] values = range.split(VALUE_SEPARATOR);\r\n+        return Arrays.asList(values).contains(value);\r\n+    }\r\n+\r\n+    private boolean isConcrete(String value) {\r\n+        return !isWildcard(value) && !isRange(value);\r\n+    }\r\n+\r\n+    private boolean isWildcard(String value) {\r\n+        return WILDCARD.equals(value);\r\n+    }\r\n+\r\n+    private boolean isRange(String value) {\r\n+        return value != null && value.indexOf(VALUE_SEPARATOR) > -1 && value.split(VALUE_SEPARATOR).length > 1;\r\n+    }\r\n+\r\n+    public String getCategory() {\r\n+        return category;\r\n+    }\r\n+\r\n+    public void setCategory(String category) {\r\n+        this.category = category;\r\n+    }\r\n+\r\n+    public String getServiceInterface() {\r\n+        return serviceInterface;\r\n+    }\r\n+\r\n+    public void setServiceInterface(String serviceInterface) {\r\n+        this.serviceInterface = serviceInterface;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return version;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        this.version = version;\r\n+    }\r\n+\r\n+    public String getGroup() {\r\n+        return group;\r\n+    }\r\n+\r\n+    public void setGroup(String group) {\r\n+        this.group = group;\r\n+    }\r\n+\r\n+    public String getValue() {\r\n+        if (value == null) {\r\n+            value = toValue();\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    private String toValue() {\r\n+        return new StringBuilder(category)\r\n+                .append(NAME_SEPARATOR).append(serviceInterface)\r\n+                .append(NAME_SEPARATOR).append(version)\r\n+                .append(NAME_SEPARATOR).append(group)\r\n+                .toString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        if (this == o) {\r\n+            return true;\r\n+        }\r\n+        if (!(o instanceof NacosServiceName)) {\r\n+            return false;\r\n+        }\r\n+        NacosServiceName that = (NacosServiceName) o;\r\n+        return Objects.equals(getValue(), that.getValue());\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return Objects.hash(getValue());\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getValue();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/util/NacosInstanceManageUtil.java", "source2": "org/apache/dubbo/registry/nacos/util/NacosInstanceManageUtil.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos.util;\n-\n-import com.alibaba.nacos.api.naming.pojo.Instance;\n-import com.google.common.collect.Lists;\n-import com.google.common.collect.Maps;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-/**\n- * Instance manage util for multiple serviceNames\n- * To resolve bug with https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\n- *\n- * @since 2.7.6\n- */\n-public class NacosInstanceManageUtil {\n-\n-    /**\n-     * serviceName -> refreshed instance list\n-     */\n-    private static final Map<String, List<Instance>> SERVICE_INSTANCE_LIST_MAP = Maps.newConcurrentMap();\n-\n-    /**\n-     * serviceName -> corresponding serviceName list\n-     */\n-    private static final Map<String, Set<String>> CORRESPONDING_SERVICE_NAMES_MAP = Maps.newConcurrentMap();\n-\n-    public static void setCorrespondingServiceNames(String serviceName, Set<String> serviceNames) {\n-        CORRESPONDING_SERVICE_NAMES_MAP.put(serviceName, serviceNames);\n-    }\n-\n-    public static void initOrRefreshServiceInstanceList(String serviceName, List<Instance> instanceList) {\n-        SERVICE_INSTANCE_LIST_MAP.put(serviceName, instanceList);\n-    }\n-\n-    public static List<Instance> getAllCorrespondingServiceInstanceList(String serviceName) {\n-        if (!CORRESPONDING_SERVICE_NAMES_MAP.containsKey(serviceName)) {\n-            return Lists.newArrayList();\n-        }\n-        List<Instance> allInstances = Lists.newArrayList();\n-        for (String correspondingServiceName : CORRESPONDING_SERVICE_NAMES_MAP.get(serviceName)) {\n-            if (SERVICE_INSTANCE_LIST_MAP.containsKey(correspondingServiceName) && CollectionUtils.isNotEmpty(SERVICE_INSTANCE_LIST_MAP.get(correspondingServiceName))) {\n-                allInstances.addAll(SERVICE_INSTANCE_LIST_MAP.get(correspondingServiceName));\n-            }\n-        }\n-        return allInstances;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos.util;\r\n+\r\n+import com.alibaba.nacos.api.naming.pojo.Instance;\r\n+import com.google.common.collect.Lists;\r\n+import com.google.common.collect.Maps;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * Instance manage util for multiple serviceNames\r\n+ * To resolve bug with https://github.com/apache/dubbo/issues/5885 and https://github.com/apache/dubbo/issues/5899\r\n+ *\r\n+ * @since 2.7.6\r\n+ */\r\n+public class NacosInstanceManageUtil {\r\n+\r\n+    /**\r\n+     * serviceName -> refreshed instance list\r\n+     */\r\n+    private static final Map<String, List<Instance>> SERVICE_INSTANCE_LIST_MAP = Maps.newConcurrentMap();\r\n+\r\n+    /**\r\n+     * serviceName -> corresponding serviceName list\r\n+     */\r\n+    private static final Map<String, Set<String>> CORRESPONDING_SERVICE_NAMES_MAP = Maps.newConcurrentMap();\r\n+\r\n+    public static void setCorrespondingServiceNames(String serviceName, Set<String> serviceNames) {\r\n+        CORRESPONDING_SERVICE_NAMES_MAP.put(serviceName, serviceNames);\r\n+    }\r\n+\r\n+    public static void initOrRefreshServiceInstanceList(String serviceName, List<Instance> instanceList) {\r\n+        SERVICE_INSTANCE_LIST_MAP.put(serviceName, instanceList);\r\n+    }\r\n+\r\n+    public static List<Instance> getAllCorrespondingServiceInstanceList(String serviceName) {\r\n+        if (!CORRESPONDING_SERVICE_NAMES_MAP.containsKey(serviceName)) {\r\n+            return Lists.newArrayList();\r\n+        }\r\n+        List<Instance> allInstances = Lists.newArrayList();\r\n+        for (String correspondingServiceName : CORRESPONDING_SERVICE_NAMES_MAP.get(serviceName)) {\r\n+            if (SERVICE_INSTANCE_LIST_MAP.containsKey(correspondingServiceName) && CollectionUtils.isNotEmpty(SERVICE_INSTANCE_LIST_MAP.get(correspondingServiceName))) {\r\n+                allInstances.addAll(SERVICE_INSTANCE_LIST_MAP.get(correspondingServiceName));\r\n+            }\r\n+        }\r\n+        return allInstances;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java", "source2": "org/apache/dubbo/registry/nacos/util/NacosNamingServiceUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,189 +1,189 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.nacos.util;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.nacos.NacosNamingServiceWrapper;\n-\n-import com.alibaba.nacos.api.NacosFactory;\n-import com.alibaba.nacos.api.PropertyKeyConst;\n-import com.alibaba.nacos.api.exception.NacosException;\n-import com.alibaba.nacos.api.naming.NamingService;\n-import com.alibaba.nacos.api.naming.PreservedMetadataKeys;\n-import com.alibaba.nacos.api.naming.pojo.Instance;\n-import com.alibaba.nacos.api.naming.utils.NamingUtils;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Properties;\n-\n-import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\n-import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\n-import static com.alibaba.nacos.api.common.Constants.DEFAULT_GROUP;\n-import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\n-import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\n-\n-/**\n- * The utilities class for {@link NamingService}\n- *\n- * @since 2.7.5\n- */\n-public class NacosNamingServiceUtils {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NacosNamingServiceUtils.class);\n-\n-    /**\n-     * Convert the {@link ServiceInstance} to {@link Instance}\n-     *\n-     * @param serviceInstance {@link ServiceInstance}\n-     * @return non-null\n-     * @since 2.7.5\n-     */\n-    public static Instance toInstance(ServiceInstance serviceInstance) {\n-        Instance instance = new Instance();\n-        instance.setInstanceId(serviceInstance.getId());\n-        instance.setServiceName(serviceInstance.getServiceName());\n-        instance.setIp(serviceInstance.getHost());\n-        instance.setPort(serviceInstance.getPort());\n-        instance.setMetadata(serviceInstance.getMetadata());\n-        instance.setEnabled(serviceInstance.isEnabled());\n-        instance.setHealthy(serviceInstance.isHealthy());\n-        return instance;\n-    }\n-\n-    /**\n-     * Convert the {@link Instance} to {@link ServiceInstance}\n-     *\n-     * @param instance {@link Instance}\n-     * @return non-null\n-     * @since 2.7.5\n-     */\n-    public static ServiceInstance toServiceInstance(Instance instance) {\n-        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getInstanceId(),\n-                NamingUtils.getServiceName(instance.getServiceName()), instance.getIp(), instance.getPort());\n-        serviceInstance.setMetadata(instance.getMetadata());\n-        serviceInstance.setEnabled(instance.isEnabled());\n-        serviceInstance.setHealthy(instance.isHealthy());\n-        return serviceInstance;\n-    }\n-\n-    /**\n-     * The group of {@link NamingService} to register\n-     *\n-     * @param connectionURL {@link URL connection url}\n-     * @return non-null, \"default\" as default\n-     * @since 2.7.5\n-     */\n-    public static String getGroup(URL connectionURL) {\n-        return connectionURL.getParameter(\"nacos.group\", DEFAULT_GROUP);\n-    }\n-\n-    /**\n-     * Create an instance of {@link NamingService} from specified {@link URL connection url}\n-     *\n-     * @param connectionURL {@link URL connection url}\n-     * @return {@link NamingService}\n-     * @since 2.7.5\n-     */\n-    public static NacosNamingServiceWrapper createNamingService(URL connectionURL) {\n-        Properties nacosProperties = buildNacosProperties(connectionURL);\n-        NamingService namingService;\n-        try {\n-            namingService = NacosFactory.createNamingService(nacosProperties);\n-        } catch (NacosException e) {\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getErrMsg(), e);\n-            }\n-            throw new IllegalStateException(e);\n-        }\n-        return new NacosNamingServiceWrapper(namingService);\n-    }\n-\n-    private static Properties buildNacosProperties(URL url) {\n-        Properties properties = new Properties();\n-        setServerAddr(url, properties);\n-        setProperties(url, properties);\n-        return properties;\n-    }\n-\n-    private static void setServerAddr(URL url, Properties properties) {\n-        StringBuilder serverAddrBuilder =\n-                new StringBuilder(url.getHost()) // Host\n-                        .append(\":\")\n-                        .append(url.getPort()); // Port\n-\n-        // Append backup parameter as other servers\n-        String backup = url.getParameter(BACKUP_KEY);\n-        if (backup != null) {\n-            serverAddrBuilder.append(\",\").append(backup);\n-        }\n-\n-        String serverAddr = serverAddrBuilder.toString();\n-        properties.put(SERVER_ADDR, serverAddr);\n-    }\n-\n-    private static void setProperties(URL url, Properties properties) {\n-        // @since 2.7.8 : Refactoring\n-        // Get the parameters from constants\n-        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\n-        // Put all parameters\n-        properties.putAll(parameters);\n-\n-        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        }\n-    }\n-\n-    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\n-        String propertyValue = url.getParameter(propertyName);\n-        if (StringUtils.isNotEmpty(propertyValue)) {\n-            properties.setProperty(propertyName, propertyValue);\n-        } else {\n-            properties.setProperty(propertyName, defaultValue);\n-        }\n-    }\n-\n-    public static Map<String, String> getNacosPreservedParam(URL registryUrl) {\n-        Map<String, String> map = new HashMap<>();\n-        if (registryUrl.getParameter(PreservedMetadataKeys.REGISTER_SOURCE) != null) {\n-            map.put(PreservedMetadataKeys.REGISTER_SOURCE, registryUrl.getParameter(PreservedMetadataKeys.REGISTER_SOURCE));\n-        }\n-        if (registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_TIMEOUT) != null) {\n-            map.put(PreservedMetadataKeys.HEART_BEAT_TIMEOUT, registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_TIMEOUT));\n-        }\n-        if (registryUrl.getParameter(PreservedMetadataKeys.IP_DELETE_TIMEOUT) != null) {\n-            map.put(PreservedMetadataKeys.IP_DELETE_TIMEOUT, registryUrl.getParameter(PreservedMetadataKeys.IP_DELETE_TIMEOUT));\n-        }\n-        if (registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_INTERVAL) != null) {\n-            map.put(PreservedMetadataKeys.HEART_BEAT_INTERVAL, registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_INTERVAL));\n-        }\n-        if (registryUrl.getParameter(PreservedMetadataKeys.INSTANCE_ID_GENERATOR) != null) {\n-            map.put(PreservedMetadataKeys.INSTANCE_ID_GENERATOR, registryUrl.getParameter(PreservedMetadataKeys.INSTANCE_ID_GENERATOR));\n-        }\n-        return map;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.nacos.util;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.nacos.NacosNamingServiceWrapper;\r\n+\r\n+import com.alibaba.nacos.api.NacosFactory;\r\n+import com.alibaba.nacos.api.PropertyKeyConst;\r\n+import com.alibaba.nacos.api.exception.NacosException;\r\n+import com.alibaba.nacos.api.naming.NamingService;\r\n+import com.alibaba.nacos.api.naming.PreservedMetadataKeys;\r\n+import com.alibaba.nacos.api.naming.pojo.Instance;\r\n+import com.alibaba.nacos.api.naming.utils.NamingUtils;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Properties;\r\n+\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.NAMING_LOAD_CACHE_AT_START;\r\n+import static com.alibaba.nacos.api.PropertyKeyConst.SERVER_ADDR;\r\n+import static com.alibaba.nacos.api.common.Constants.DEFAULT_GROUP;\r\n+import static org.apache.dubbo.common.constants.RemotingConstants.BACKUP_KEY;\r\n+import static org.apache.dubbo.common.utils.StringConstantFieldValuePredicate.of;\r\n+\r\n+/**\r\n+ * The utilities class for {@link NamingService}\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class NacosNamingServiceUtils {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NacosNamingServiceUtils.class);\r\n+\r\n+    /**\r\n+     * Convert the {@link ServiceInstance} to {@link Instance}\r\n+     *\r\n+     * @param serviceInstance {@link ServiceInstance}\r\n+     * @return non-null\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static Instance toInstance(ServiceInstance serviceInstance) {\r\n+        Instance instance = new Instance();\r\n+        instance.setInstanceId(serviceInstance.getId());\r\n+        instance.setServiceName(serviceInstance.getServiceName());\r\n+        instance.setIp(serviceInstance.getHost());\r\n+        instance.setPort(serviceInstance.getPort());\r\n+        instance.setMetadata(serviceInstance.getMetadata());\r\n+        instance.setEnabled(serviceInstance.isEnabled());\r\n+        instance.setHealthy(serviceInstance.isHealthy());\r\n+        return instance;\r\n+    }\r\n+\r\n+    /**\r\n+     * Convert the {@link Instance} to {@link ServiceInstance}\r\n+     *\r\n+     * @param instance {@link Instance}\r\n+     * @return non-null\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static ServiceInstance toServiceInstance(Instance instance) {\r\n+        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getInstanceId(),\r\n+                NamingUtils.getServiceName(instance.getServiceName()), instance.getIp(), instance.getPort());\r\n+        serviceInstance.setMetadata(instance.getMetadata());\r\n+        serviceInstance.setEnabled(instance.isEnabled());\r\n+        serviceInstance.setHealthy(instance.isHealthy());\r\n+        return serviceInstance;\r\n+    }\r\n+\r\n+    /**\r\n+     * The group of {@link NamingService} to register\r\n+     *\r\n+     * @param connectionURL {@link URL connection url}\r\n+     * @return non-null, \"default\" as default\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static String getGroup(URL connectionURL) {\r\n+        return connectionURL.getParameter(\"nacos.group\", DEFAULT_GROUP);\r\n+    }\r\n+\r\n+    /**\r\n+     * Create an instance of {@link NamingService} from specified {@link URL connection url}\r\n+     *\r\n+     * @param connectionURL {@link URL connection url}\r\n+     * @return {@link NamingService}\r\n+     * @since 2.7.5\r\n+     */\r\n+    public static NacosNamingServiceWrapper createNamingService(URL connectionURL) {\r\n+        Properties nacosProperties = buildNacosProperties(connectionURL);\r\n+        NamingService namingService;\r\n+        try {\r\n+            namingService = NacosFactory.createNamingService(nacosProperties);\r\n+        } catch (NacosException e) {\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getErrMsg(), e);\r\n+            }\r\n+            throw new IllegalStateException(e);\r\n+        }\r\n+        return new NacosNamingServiceWrapper(namingService);\r\n+    }\r\n+\r\n+    private static Properties buildNacosProperties(URL url) {\r\n+        Properties properties = new Properties();\r\n+        setServerAddr(url, properties);\r\n+        setProperties(url, properties);\r\n+        return properties;\r\n+    }\r\n+\r\n+    private static void setServerAddr(URL url, Properties properties) {\r\n+        StringBuilder serverAddrBuilder =\r\n+                new StringBuilder(url.getHost()) // Host\r\n+                        .append(\":\")\r\n+                        .append(url.getPort()); // Port\r\n+\r\n+        // Append backup parameter as other servers\r\n+        String backup = url.getParameter(BACKUP_KEY);\r\n+        if (backup != null) {\r\n+            serverAddrBuilder.append(\",\").append(backup);\r\n+        }\r\n+\r\n+        String serverAddr = serverAddrBuilder.toString();\r\n+        properties.put(SERVER_ADDR, serverAddr);\r\n+    }\r\n+\r\n+    private static void setProperties(URL url, Properties properties) {\r\n+        // @since 2.7.8 : Refactoring\r\n+        // Get the parameters from constants\r\n+        Map<String, String> parameters = url.getParameters(of(PropertyKeyConst.class));\r\n+        // Put all parameters\r\n+        properties.putAll(parameters);\r\n+\r\n+        putPropertyIfAbsent(url, properties, NAMING_LOAD_CACHE_AT_START, \"true\");\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        }\r\n+    }\r\n+\r\n+    private static void putPropertyIfAbsent(URL url, Properties properties, String propertyName, String defaultValue) {\r\n+        String propertyValue = url.getParameter(propertyName);\r\n+        if (StringUtils.isNotEmpty(propertyValue)) {\r\n+            properties.setProperty(propertyName, propertyValue);\r\n+        } else {\r\n+            properties.setProperty(propertyName, defaultValue);\r\n+        }\r\n+    }\r\n+\r\n+    public static Map<String, String> getNacosPreservedParam(URL registryUrl) {\r\n+        Map<String, String> map = new HashMap<>();\r\n+        if (registryUrl.getParameter(PreservedMetadataKeys.REGISTER_SOURCE) != null) {\r\n+            map.put(PreservedMetadataKeys.REGISTER_SOURCE, registryUrl.getParameter(PreservedMetadataKeys.REGISTER_SOURCE));\r\n+        }\r\n+        if (registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_TIMEOUT) != null) {\r\n+            map.put(PreservedMetadataKeys.HEART_BEAT_TIMEOUT, registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_TIMEOUT));\r\n+        }\r\n+        if (registryUrl.getParameter(PreservedMetadataKeys.IP_DELETE_TIMEOUT) != null) {\r\n+            map.put(PreservedMetadataKeys.IP_DELETE_TIMEOUT, registryUrl.getParameter(PreservedMetadataKeys.IP_DELETE_TIMEOUT));\r\n+        }\r\n+        if (registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_INTERVAL) != null) {\r\n+            map.put(PreservedMetadataKeys.HEART_BEAT_INTERVAL, registryUrl.getParameter(PreservedMetadataKeys.HEART_BEAT_INTERVAL));\r\n+        }\r\n+        if (registryUrl.getParameter(PreservedMetadataKeys.INSTANCE_ID_GENERATOR) != null) {\r\n+            map.put(PreservedMetadataKeys.INSTANCE_ID_GENERATOR, registryUrl.getParameter(PreservedMetadataKeys.INSTANCE_ID_GENERATOR));\r\n+        }\r\n+        return map;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/redis/RedisServiceDiscovery.java", "source2": "org/apache/dubbo/registry/redis/RedisServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import java.util.Collections;\n-import java.util.Set;\n-\n-public class RedisServiceDiscovery extends AbstractServiceDiscovery {\n-    private URL registryURL;\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.registryURL = registryURL;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        this.serviceInstance = null;\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return Collections.singleton(\"Unsupported Operation\");\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.Set;\r\n+\r\n+public class RedisServiceDiscovery extends AbstractServiceDiscovery {\r\n+    private URL registryURL;\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.registryURL = registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        this.serviceInstance = null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return Collections.singleton(\"Unsupported Operation\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/redis/RedisServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/redis/RedisServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.redis;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class RedisServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new RedisServiceDiscovery();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.redis;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class RedisServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new RedisServiceDiscovery();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/retry/AbstractRetryTask.java", "source2": "org/apache/dubbo/registry/retry/AbstractRetryTask.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,133 +1,133 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.registry.retry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.common.timer.Timer;\n-import org.apache.dubbo.common.timer.TimerTask;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;\n-import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_TIMES;\n-import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;\n-import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_TIMES_KEY;\n-\n-/**\n- * AbstractRetryTask\n- */\n-public abstract class AbstractRetryTask implements TimerTask {\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    /**\n-     * url for retry task\n-     */\n-    protected final URL url;\n-\n-    /**\n-     * registry for this task\n-     */\n-    protected final FailbackRegistry registry;\n-\n-    /**\n-     * retry period\n-     */\n-    final long retryPeriod;\n-\n-    /**\n-     * define the most retry times\n-     */\n-    private final int retryTimes;\n-\n-    /**\n-     * task name for this task\n-     */\n-    private final String taskName;\n-\n-    /**\n-     * times of retry.\n-     * retry task is execute in single thread so that the times is not need volatile.\n-     */\n-    private int times = 1;\n-\n-    private volatile boolean cancel;\n-\n-    AbstractRetryTask(URL url, FailbackRegistry registry, String taskName) {\n-        if (url == null || StringUtils.isBlank(taskName)) {\n-            throw new IllegalArgumentException();\n-        }\n-        this.url = url;\n-        this.registry = registry;\n-        this.taskName = taskName;\n-        cancel = false;\n-        this.retryPeriod = url.getParameter(REGISTRY_RETRY_PERIOD_KEY, DEFAULT_REGISTRY_RETRY_PERIOD);\n-        this.retryTimes = url.getParameter(REGISTRY_RETRY_TIMES_KEY, DEFAULT_REGISTRY_RETRY_TIMES);\n-    }\n-\n-    public void cancel() {\n-        cancel = true;\n-    }\n-\n-    public boolean isCancel() {\n-        return cancel;\n-    }\n-\n-    protected void reput(Timeout timeout, long tick) {\n-        if (timeout == null) {\n-            throw new IllegalArgumentException();\n-        }\n-\n-        Timer timer = timeout.timer();\n-        if (timer.isStop() || timeout.isCancelled() || isCancel()) {\n-            return;\n-        }\n-        times++;\n-        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    public void run(Timeout timeout) throws Exception {\n-        if (timeout.isCancelled() || timeout.timer().isStop() || isCancel()) {\n-            // other thread cancel this timeout or stop the timer.\n-            return;\n-        }\n-        if (times > retryTimes) {\n-            // reach the most times of retry.\n-            logger.warn(\"Final failed to execute task \" + taskName + \", url: \" + url + \", retry \" + retryTimes + \" times.\");\n-            return;\n-        }\n-        if (logger.isInfoEnabled()) {\n-            logger.info(taskName + \" : \" + url);\n-        }\n-        try {\n-            doRetry(url, registry, timeout);\n-        } catch (Throwable t) { // Ignore all the exceptions and wait for the next retry\n-            logger.warn(\"Failed to execute task \" + taskName + \", url: \" + url + \", waiting for again, cause:\" + t.getMessage(), t);\n-            // reput this task when catch exception.\n-            reput(timeout, retryPeriod);\n-        }\n-    }\n-\n-    protected abstract void doRetry(URL url, FailbackRegistry registry, Timeout timeout);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.registry.retry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.common.timer.Timer;\r\n+import org.apache.dubbo.common.timer.TimerTask;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_PERIOD;\r\n+import static org.apache.dubbo.registry.Constants.DEFAULT_REGISTRY_RETRY_TIMES;\r\n+import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_PERIOD_KEY;\r\n+import static org.apache.dubbo.registry.Constants.REGISTRY_RETRY_TIMES_KEY;\r\n+\r\n+/**\r\n+ * AbstractRetryTask\r\n+ */\r\n+public abstract class AbstractRetryTask implements TimerTask {\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    /**\r\n+     * url for retry task\r\n+     */\r\n+    protected final URL url;\r\n+\r\n+    /**\r\n+     * registry for this task\r\n+     */\r\n+    protected final FailbackRegistry registry;\r\n+\r\n+    /**\r\n+     * retry period\r\n+     */\r\n+    final long retryPeriod;\r\n+\r\n+    /**\r\n+     * define the most retry times\r\n+     */\r\n+    private final int retryTimes;\r\n+\r\n+    /**\r\n+     * task name for this task\r\n+     */\r\n+    private final String taskName;\r\n+\r\n+    /**\r\n+     * times of retry.\r\n+     * retry task is execute in single thread so that the times is not need volatile.\r\n+     */\r\n+    private int times = 1;\r\n+\r\n+    private volatile boolean cancel;\r\n+\r\n+    AbstractRetryTask(URL url, FailbackRegistry registry, String taskName) {\r\n+        if (url == null || StringUtils.isBlank(taskName)) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+        this.url = url;\r\n+        this.registry = registry;\r\n+        this.taskName = taskName;\r\n+        cancel = false;\r\n+        this.retryPeriod = url.getParameter(REGISTRY_RETRY_PERIOD_KEY, DEFAULT_REGISTRY_RETRY_PERIOD);\r\n+        this.retryTimes = url.getParameter(REGISTRY_RETRY_TIMES_KEY, DEFAULT_REGISTRY_RETRY_TIMES);\r\n+    }\r\n+\r\n+    public void cancel() {\r\n+        cancel = true;\r\n+    }\r\n+\r\n+    public boolean isCancel() {\r\n+        return cancel;\r\n+    }\r\n+\r\n+    protected void reput(Timeout timeout, long tick) {\r\n+        if (timeout == null) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+\r\n+        Timer timer = timeout.timer();\r\n+        if (timer.isStop() || timeout.isCancelled() || isCancel()) {\r\n+            return;\r\n+        }\r\n+        times++;\r\n+        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void run(Timeout timeout) throws Exception {\r\n+        if (timeout.isCancelled() || timeout.timer().isStop() || isCancel()) {\r\n+            // other thread cancel this timeout or stop the timer.\r\n+            return;\r\n+        }\r\n+        if (times > retryTimes) {\r\n+            // reach the most times of retry.\r\n+            logger.warn(\"Final failed to execute task \" + taskName + \", url: \" + url + \", retry \" + retryTimes + \" times.\");\r\n+            return;\r\n+        }\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(taskName + \" : \" + url);\r\n+        }\r\n+        try {\r\n+            doRetry(url, registry, timeout);\r\n+        } catch (Throwable t) { // Ignore all the exceptions and wait for the next retry\r\n+            logger.warn(\"Failed to execute task \" + taskName + \", url: \" + url + \", waiting for again, cause:\" + t.getMessage(), t);\r\n+            // reput this task when catch exception.\r\n+            reput(timeout, retryPeriod);\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract void doRetry(URL url, FailbackRegistry registry, Timeout timeout);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/retry/ReExportTask.java", "source2": "org/apache/dubbo/registry/retry/ReExportTask.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.retry;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-\n-/**\n- *\n- */\n-public class ReExportTask extends AbstractRetryTask {\n-\n-    private static final String NAME = \"retry re-export\";\n-\n-    private Runnable runnable;\n-\n-    public ReExportTask(Runnable runnable, URL oldUrl, FailbackRegistry registry) {\n-        super(oldUrl, registry, NAME);\n-        this.runnable = runnable;\n-    }\n-\n-    @Override\n-    protected void doRetry(URL oldUrl, FailbackRegistry registry, Timeout timeout) {\n-        runnable.run();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.retry;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class ReExportTask extends AbstractRetryTask {\r\n+\r\n+    private static final String NAME = \"retry re-export\";\r\n+\r\n+    private Runnable runnable;\r\n+\r\n+    public ReExportTask(Runnable runnable, URL oldUrl, FailbackRegistry registry) {\r\n+        super(oldUrl, registry, NAME);\r\n+        this.runnable = runnable;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doRetry(URL oldUrl, FailbackRegistry registry, Timeout timeout) {\r\n+        runnable.run();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistry.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,296 +1,296 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.registry.NotifyListener;\n-import org.apache.dubbo.registry.support.FailbackRegistry;\n-\n-import com.alipay.sofa.registry.client.api.RegistryClient;\n-import com.alipay.sofa.registry.client.api.RegistryClientConfig;\n-import com.alipay.sofa.registry.client.api.Subscriber;\n-import com.alipay.sofa.registry.client.api.model.RegistryType;\n-import com.alipay.sofa.registry.client.api.model.UserData;\n-import com.alipay.sofa.registry.client.api.registration.PublisherRegistration;\n-import com.alipay.sofa.registry.client.api.registration.SubscriberRegistration;\n-import com.alipay.sofa.registry.client.provider.DefaultRegistryClient;\n-import com.alipay.sofa.registry.client.provider.DefaultRegistryClientConfigBuilder;\n-import com.alipay.sofa.registry.core.model.ScopeEnum;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\n-import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\n-import static org.apache.dubbo.registry.Constants.SUBSCRIBE_KEY;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.ADDRESS_WAIT_TIME_KEY;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.DEFAULT_GROUP;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_DATA_CENTER;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_REGION;\n-\n-/**\n- * The Sofa registry.\n- *\n- * @since 2.7.2\n- */\n-public class SofaRegistry extends FailbackRegistry {\n-\n-    /**\n-     * Cache subscriber by dataId\n-     */\n-    private final Map<String, Subscriber> subscribers = new ConcurrentHashMap<>();\n-\n-    /**\n-     * Direct registry client\n-     */\n-    private RegistryClient registryClient;\n-    /**\n-     * wait address from registry\n-     */\n-    private int waitAddressTimeout;\n-\n-    /**\n-     * Instantiates a new Sofa registry.\n-     *\n-     * @param url the url\n-     */\n-    public SofaRegistry(URL url) {\n-        super(url);\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Build sofa registry by url:\" + url);\n-        }\n-        this.registryClient = buildClient(url);\n-        this.waitAddressTimeout = Integer.parseInt(ConfigUtils.getProperty(ADDRESS_WAIT_TIME_KEY, \"5000\"));\n-    }\n-\n-    /**\n-     * Build client registry client.\n-     *\n-     * @param url the url\n-     * @return the registry client\n-     */\n-    protected RegistryClient buildClient(URL url) {\n-        RegistryClientConfig config = DefaultRegistryClientConfigBuilder.start()\n-                .setDataCenter(LOCAL_DATA_CENTER)\n-                .setZone(LOCAL_REGION)\n-                .setRegistryEndpoint(url.getHost())\n-                .setRegistryEndpointPort(url.getPort()).build();\n-\n-        DefaultRegistryClient registryClient = new DefaultRegistryClient(config);\n-        registryClient.init();\n-        return registryClient;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return true;\n-    }\n-\n-    @Override\n-    public void doRegister(URL url) {\n-        if (!url.getParameter(REGISTER_KEY, true)\n-                || CONSUMER_PROTOCOL.equals(url.getProtocol())) {\n-            return;\n-        }\n-\n-        String serviceName = buildServiceName(url);\n-        String serviceData = url.toFullString();\n-\n-        PublisherRegistration registration = new PublisherRegistration(serviceName);\n-        addAttributesForPub(registration);\n-\n-        registryClient.register(registration, serviceData);\n-    }\n-\n-    /**\n-     * Add attributes for pub.\n-     *\n-     * @param publisherRegistration the publisher registration\n-     */\n-    protected void addAttributesForPub(PublisherRegistration publisherRegistration) {\n-        publisherRegistration.setGroup(DEFAULT_GROUP);\n-    }\n-\n-    @Override\n-    public void doUnregister(URL url) {\n-        if (!url.getParameter(REGISTER_KEY, true)\n-                || CONSUMER_PROTOCOL.equals(url.getProtocol())) {\n-            return;\n-        }\n-        String serviceName = buildServiceName(url);\n-        registryClient.unregister(serviceName, DEFAULT_GROUP, RegistryType.PUBLISHER);\n-    }\n-\n-    @Override\n-    public void doSubscribe(URL url, final NotifyListener listener) {\n-        if (!url.getParameter(SUBSCRIBE_KEY, true)\n-                || PROVIDER_PROTOCOL.equals(url.getProtocol())) {\n-            return;\n-        }\n-\n-        String serviceName = buildServiceName(url);\n-        // com.alipay.test.TestService:1.0:group@dubbo\n-        Subscriber listSubscriber = subscribers.get(serviceName);\n-\n-        if (listSubscriber != null) {\n-            logger.warn(\"Service name [\" + serviceName + \"] have bean registered in SOFARegistry.\");\n-\n-            CountDownLatch countDownLatch = new CountDownLatch(1);\n-            handleRegistryData(listSubscriber.peekData(), listener, countDownLatch);\n-            waitAddress(serviceName, countDownLatch);\n-            return;\n-        }\n-\n-        final CountDownLatch latch = new CountDownLatch(1);\n-        SubscriberRegistration subscriberRegistration = new SubscriberRegistration(serviceName,\n-                (dataId, data) -> {\n-                    //record change\n-                    printAddressData(dataId, data);\n-                    handleRegistryData(data, listener, latch);\n-                });\n-\n-        addAttributesForSub(subscriberRegistration);\n-        listSubscriber = registryClient.register(subscriberRegistration);\n-\n-        subscribers.put(serviceName, listSubscriber);\n-\n-        waitAddress(serviceName, latch);\n-    }\n-\n-    private void waitAddress(String serviceName, CountDownLatch countDownLatch) {\n-        try {\n-            if (!countDownLatch.await(waitAddressTimeout, TimeUnit.MILLISECONDS)) {\n-                logger.warn(\"Subscribe data failed by dataId \" + serviceName);\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Error when wait Address!\", e);\n-        }\n-    }\n-\n-    @Override\n-    public void doUnsubscribe(URL url, NotifyListener listener) {\n-        if (!url.getParameter(SUBSCRIBE_KEY, true)\n-                || PROVIDER_PROTOCOL.equals(url.getProtocol())) {\n-            return;\n-        }\n-        String serviceName = buildServiceName(url);\n-\n-        registryClient.unregister(serviceName, DEFAULT_GROUP, RegistryType.SUBSCRIBER);\n-    }\n-\n-    private void handleRegistryData(UserData data, NotifyListener notifyListener,\n-                                    CountDownLatch latch) {\n-        try {\n-            List<URL> urls = new ArrayList<>();\n-            if (null != data) {\n-\n-                List<String> datas = flatUserData(data);\n-                for (String serviceUrl : datas) {\n-                    URL url = URL.valueOf(serviceUrl);\n-                    String serverApplication = url.getParameter(APPLICATION_KEY);\n-                    if (StringUtils.isNotEmpty(serverApplication)) {\n-                        url = url.addParameter(\"dstApp\", serverApplication);\n-                    }\n-                    urls.add(url);\n-                }\n-            }\n-            notifyListener.notify(urls);\n-        } finally {\n-            latch.countDown();\n-        }\n-    }\n-\n-    private String buildServiceName(URL url) {\n-        // return url.getServiceKey();\n-        StringBuilder buf = new StringBuilder();\n-        buf.append(url.getServiceInterface());\n-        String version = url.getParameter(VERSION_KEY);\n-        if (StringUtils.isNotEmpty(version)) {\n-            buf.append(\":\").append(version);\n-        }\n-        String group = url.getParameter(GROUP_KEY);\n-        if (StringUtils.isNotEmpty(group)) {\n-            buf.append(\":\").append(group);\n-        }\n-        buf.append(\"@\").append(DUBBO);\n-        return buf.toString();\n-    }\n-\n-    /**\n-     * Print address data.\n-     *\n-     * @param dataId   the data id\n-     * @param userData the user data\n-     */\n-    protected void printAddressData(String dataId, UserData userData) {\n-\n-        List<String> datas;\n-        if (userData == null) {\n-            datas = new ArrayList<>(0);\n-        } else {\n-            datas = flatUserData(userData);\n-        }\n-\n-        StringBuilder sb = new StringBuilder();\n-        for (String provider : datas) {\n-            sb.append(\"  >>> \").append(provider).append(\"\\n\");\n-        }\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Receive updated RPC service addresses: service[\" + dataId\n-                    + \"]\\n  .Available target addresses size [\" + datas.size() + \"]\\n\"\n-                    + sb.toString());\n-        }\n-    }\n-\n-    /**\n-     * Add attributes for sub.\n-     *\n-     * @param subscriberRegistration the subscriber registration\n-     */\n-    protected void addAttributesForSub(SubscriberRegistration subscriberRegistration) {\n-        subscriberRegistration.setGroup(DEFAULT_GROUP);\n-        subscriberRegistration.setScopeEnum(ScopeEnum.global);\n-    }\n-\n-    /**\n-     * Flat user data list.\n-     *\n-     * @param userData the user data\n-     * @return the list\n-     */\n-    protected List<String> flatUserData(UserData userData) {\n-        List<String> result = new ArrayList<>();\n-        Map<String, List<String>> zoneData = userData.getZoneData();\n-\n-        for (Map.Entry<String, List<String>> entry : zoneData.entrySet()) {\n-            result.addAll(entry.getValue());\n-        }\n-\n-        return result;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.registry.NotifyListener;\r\n+import org.apache.dubbo.registry.support.FailbackRegistry;\r\n+\r\n+import com.alipay.sofa.registry.client.api.RegistryClient;\r\n+import com.alipay.sofa.registry.client.api.RegistryClientConfig;\r\n+import com.alipay.sofa.registry.client.api.Subscriber;\r\n+import com.alipay.sofa.registry.client.api.model.RegistryType;\r\n+import com.alipay.sofa.registry.client.api.model.UserData;\r\n+import com.alipay.sofa.registry.client.api.registration.PublisherRegistration;\r\n+import com.alipay.sofa.registry.client.api.registration.SubscriberRegistration;\r\n+import com.alipay.sofa.registry.client.provider.DefaultRegistryClient;\r\n+import com.alipay.sofa.registry.client.provider.DefaultRegistryClientConfigBuilder;\r\n+import com.alipay.sofa.registry.core.model.ScopeEnum;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.registry.Constants.CONSUMER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.PROVIDER_PROTOCOL;\r\n+import static org.apache.dubbo.registry.Constants.REGISTER_KEY;\r\n+import static org.apache.dubbo.registry.Constants.SUBSCRIBE_KEY;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.ADDRESS_WAIT_TIME_KEY;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.DEFAULT_GROUP;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_DATA_CENTER;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_REGION;\r\n+\r\n+/**\r\n+ * The Sofa registry.\r\n+ *\r\n+ * @since 2.7.2\r\n+ */\r\n+public class SofaRegistry extends FailbackRegistry {\r\n+\r\n+    /**\r\n+     * Cache subscriber by dataId\r\n+     */\r\n+    private final Map<String, Subscriber> subscribers = new ConcurrentHashMap<>();\r\n+\r\n+    /**\r\n+     * Direct registry client\r\n+     */\r\n+    private RegistryClient registryClient;\r\n+    /**\r\n+     * wait address from registry\r\n+     */\r\n+    private int waitAddressTimeout;\r\n+\r\n+    /**\r\n+     * Instantiates a new Sofa registry.\r\n+     *\r\n+     * @param url the url\r\n+     */\r\n+    public SofaRegistry(URL url) {\r\n+        super(url);\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Build sofa registry by url:\" + url);\r\n+        }\r\n+        this.registryClient = buildClient(url);\r\n+        this.waitAddressTimeout = Integer.parseInt(ConfigUtils.getProperty(ADDRESS_WAIT_TIME_KEY, \"5000\"));\r\n+    }\r\n+\r\n+    /**\r\n+     * Build client registry client.\r\n+     *\r\n+     * @param url the url\r\n+     * @return the registry client\r\n+     */\r\n+    protected RegistryClient buildClient(URL url) {\r\n+        RegistryClientConfig config = DefaultRegistryClientConfigBuilder.start()\r\n+                .setDataCenter(LOCAL_DATA_CENTER)\r\n+                .setZone(LOCAL_REGION)\r\n+                .setRegistryEndpoint(url.getHost())\r\n+                .setRegistryEndpointPort(url.getPort()).build();\r\n+\r\n+        DefaultRegistryClient registryClient = new DefaultRegistryClient(config);\r\n+        registryClient.init();\r\n+        return registryClient;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(URL url) {\r\n+        if (!url.getParameter(REGISTER_KEY, true)\r\n+                || CONSUMER_PROTOCOL.equals(url.getProtocol())) {\r\n+            return;\r\n+        }\r\n+\r\n+        String serviceName = buildServiceName(url);\r\n+        String serviceData = url.toFullString();\r\n+\r\n+        PublisherRegistration registration = new PublisherRegistration(serviceName);\r\n+        addAttributesForPub(registration);\r\n+\r\n+        registryClient.register(registration, serviceData);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add attributes for pub.\r\n+     *\r\n+     * @param publisherRegistration the publisher registration\r\n+     */\r\n+    protected void addAttributesForPub(PublisherRegistration publisherRegistration) {\r\n+        publisherRegistration.setGroup(DEFAULT_GROUP);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnregister(URL url) {\r\n+        if (!url.getParameter(REGISTER_KEY, true)\r\n+                || CONSUMER_PROTOCOL.equals(url.getProtocol())) {\r\n+            return;\r\n+        }\r\n+        String serviceName = buildServiceName(url);\r\n+        registryClient.unregister(serviceName, DEFAULT_GROUP, RegistryType.PUBLISHER);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doSubscribe(URL url, final NotifyListener listener) {\r\n+        if (!url.getParameter(SUBSCRIBE_KEY, true)\r\n+                || PROVIDER_PROTOCOL.equals(url.getProtocol())) {\r\n+            return;\r\n+        }\r\n+\r\n+        String serviceName = buildServiceName(url);\r\n+        // com.alipay.test.TestService:1.0:group@dubbo\r\n+        Subscriber listSubscriber = subscribers.get(serviceName);\r\n+\r\n+        if (listSubscriber != null) {\r\n+            logger.warn(\"Service name [\" + serviceName + \"] have bean registered in SOFARegistry.\");\r\n+\r\n+            CountDownLatch countDownLatch = new CountDownLatch(1);\r\n+            handleRegistryData(listSubscriber.peekData(), listener, countDownLatch);\r\n+            waitAddress(serviceName, countDownLatch);\r\n+            return;\r\n+        }\r\n+\r\n+        final CountDownLatch latch = new CountDownLatch(1);\r\n+        SubscriberRegistration subscriberRegistration = new SubscriberRegistration(serviceName,\r\n+                (dataId, data) -> {\r\n+                    //record change\r\n+                    printAddressData(dataId, data);\r\n+                    handleRegistryData(data, listener, latch);\r\n+                });\r\n+\r\n+        addAttributesForSub(subscriberRegistration);\r\n+        listSubscriber = registryClient.register(subscriberRegistration);\r\n+\r\n+        subscribers.put(serviceName, listSubscriber);\r\n+\r\n+        waitAddress(serviceName, latch);\r\n+    }\r\n+\r\n+    private void waitAddress(String serviceName, CountDownLatch countDownLatch) {\r\n+        try {\r\n+            if (!countDownLatch.await(waitAddressTimeout, TimeUnit.MILLISECONDS)) {\r\n+                logger.warn(\"Subscribe data failed by dataId \" + serviceName);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Error when wait Address!\", e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUnsubscribe(URL url, NotifyListener listener) {\r\n+        if (!url.getParameter(SUBSCRIBE_KEY, true)\r\n+                || PROVIDER_PROTOCOL.equals(url.getProtocol())) {\r\n+            return;\r\n+        }\r\n+        String serviceName = buildServiceName(url);\r\n+\r\n+        registryClient.unregister(serviceName, DEFAULT_GROUP, RegistryType.SUBSCRIBER);\r\n+    }\r\n+\r\n+    private void handleRegistryData(UserData data, NotifyListener notifyListener,\r\n+                                    CountDownLatch latch) {\r\n+        try {\r\n+            List<URL> urls = new ArrayList<>();\r\n+            if (null != data) {\r\n+\r\n+                List<String> datas = flatUserData(data);\r\n+                for (String serviceUrl : datas) {\r\n+                    URL url = URL.valueOf(serviceUrl);\r\n+                    String serverApplication = url.getParameter(APPLICATION_KEY);\r\n+                    if (StringUtils.isNotEmpty(serverApplication)) {\r\n+                        url = url.addParameter(\"dstApp\", serverApplication);\r\n+                    }\r\n+                    urls.add(url);\r\n+                }\r\n+            }\r\n+            notifyListener.notify(urls);\r\n+        } finally {\r\n+            latch.countDown();\r\n+        }\r\n+    }\r\n+\r\n+    private String buildServiceName(URL url) {\r\n+        // return url.getServiceKey();\r\n+        StringBuilder buf = new StringBuilder();\r\n+        buf.append(url.getServiceInterface());\r\n+        String version = url.getParameter(VERSION_KEY);\r\n+        if (StringUtils.isNotEmpty(version)) {\r\n+            buf.append(\":\").append(version);\r\n+        }\r\n+        String group = url.getParameter(GROUP_KEY);\r\n+        if (StringUtils.isNotEmpty(group)) {\r\n+            buf.append(\":\").append(group);\r\n+        }\r\n+        buf.append(\"@\").append(DUBBO);\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+    /**\r\n+     * Print address data.\r\n+     *\r\n+     * @param dataId   the data id\r\n+     * @param userData the user data\r\n+     */\r\n+    protected void printAddressData(String dataId, UserData userData) {\r\n+\r\n+        List<String> datas;\r\n+        if (userData == null) {\r\n+            datas = new ArrayList<>(0);\r\n+        } else {\r\n+            datas = flatUserData(userData);\r\n+        }\r\n+\r\n+        StringBuilder sb = new StringBuilder();\r\n+        for (String provider : datas) {\r\n+            sb.append(\"  >>> \").append(provider).append(\"\\n\");\r\n+        }\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Receive updated RPC service addresses: service[\" + dataId\r\n+                    + \"]\\n  .Available target addresses size [\" + datas.size() + \"]\\n\"\r\n+                    + sb.toString());\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Add attributes for sub.\r\n+     *\r\n+     * @param subscriberRegistration the subscriber registration\r\n+     */\r\n+    protected void addAttributesForSub(SubscriberRegistration subscriberRegistration) {\r\n+        subscriberRegistration.setGroup(DEFAULT_GROUP);\r\n+        subscriberRegistration.setScopeEnum(ScopeEnum.global);\r\n+    }\r\n+\r\n+    /**\r\n+     * Flat user data list.\r\n+     *\r\n+     * @param userData the user data\r\n+     * @return the list\r\n+     */\r\n+    protected List<String> flatUserData(UserData userData) {\r\n+        List<String> result = new ArrayList<>();\r\n+        Map<String, List<String>> zoneData = userData.getZoneData();\r\n+\r\n+        for (Map.Entry<String, List<String>> entry : zoneData.entrySet()) {\r\n+            result.addAll(entry.getValue());\r\n+        }\r\n+\r\n+        return result;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistryConstants.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistryConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-/**\n- * @since 2.7.2\n- */\n-public class SofaRegistryConstants {\n-\n-    /**\n-     * Default data center\n-     */\n-    public static final String LOCAL_DATA_CENTER = \"DefaultDataCenter\";\n-\n-    /**\n-     * Default region\n-     */\n-    public static final String LOCAL_REGION = \"DEFAULT_ZONE\";\n-\n-    /**\n-     * Default group\n-     */\n-    public static final String DEFAULT_GROUP = \"SOFA\";\n-\n-    /**\n-     * parameter for address.wait.time of rpc reference\n-     */\n-    public static final String ADDRESS_WAIT_TIME_KEY = \"rpc.reference.address.wait.time\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+/**\r\n+ * @since 2.7.2\r\n+ */\r\n+public class SofaRegistryConstants {\r\n+\r\n+    /**\r\n+     * Default data center\r\n+     */\r\n+    public static final String LOCAL_DATA_CENTER = \"DefaultDataCenter\";\r\n+\r\n+    /**\r\n+     * Default region\r\n+     */\r\n+    public static final String LOCAL_REGION = \"DEFAULT_ZONE\";\r\n+\r\n+    /**\r\n+     * Default group\r\n+     */\r\n+    public static final String DEFAULT_GROUP = \"SOFA\";\r\n+\r\n+    /**\r\n+     * parameter for address.wait.time of rpc reference\r\n+     */\r\n+    public static final String ADDRESS_WAIT_TIME_KEY = \"rpc.reference.address.wait.time\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistryFactory.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.Registry;\n-import org.apache.dubbo.registry.support.AbstractRegistryFactory;\n-\n-/**\n- * @since 2.7.2\n- */\n-public class SofaRegistryFactory extends AbstractRegistryFactory {\n-\n-    @Override\n-    protected Registry createRegistry(URL url) {\n-        initEnvironment(url);\n-        return new SofaRegistry(url);\n-    }\n-\n-    /**\n-     * For extension, such as load zone/accessKey/secretKey/...\n-     * \n-     * @param url URL\n-     */\n-    protected void initEnvironment(URL url) {\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.Registry;\r\n+import org.apache.dubbo.registry.support.AbstractRegistryFactory;\r\n+\r\n+/**\r\n+ * @since 2.7.2\r\n+ */\r\n+public class SofaRegistryFactory extends AbstractRegistryFactory {\r\n+\r\n+    @Override\r\n+    protected Registry createRegistry(URL url) {\r\n+        initEnvironment(url);\r\n+        return new SofaRegistry(url);\r\n+    }\r\n+\r\n+    /**\r\n+     * For extension, such as load zone/accessKey/secretKey/...\r\n+     * \r\n+     * @param url URL\r\n+     */\r\n+    protected void initEnvironment(URL url) {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistryInstance.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistryInstance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,90 +1,90 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-public class SofaRegistryInstance {\n-    private String id;\n-\n-    private String host;\n-\n-    private int port;\n-\n-    private String name;\n-\n-    private Map<String, String> metadata = new HashMap<>();\n-\n-    private SofaRegistryInstance() {\n-    }\n-\n-    public SofaRegistryInstance(String id, String host, int port, String name, Map<String, String> metadata) {\n-        this.id = id;\n-        this.host = host;\n-        this.port = port;\n-        this.name = name;\n-        this.metadata = metadata;\n-    }\n-\n-    public String getHost() {\n-        return host;\n-    }\n-\n-    public void setHost(String host) {\n-        this.host = host;\n-    }\n-\n-    public int getPort() {\n-        return port;\n-    }\n-\n-    public void setPort(int port) {\n-        this.port = port;\n-    }\n-\n-    public String getId() {\n-        return id;\n-    }\n-\n-    public void setId(String id) {\n-        this.id = id;\n-    }\n-\n-    public String getName() {\n-        return this.name;\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-    }\n-\n-    public Map<String, String> getMetadata() {\n-        return this.metadata;\n-    }\n-\n-    public void setMetadata(Map<String, String> metadata) {\n-        this.metadata = metadata;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"SofaRegistryInstance{\" + \"id='\" + this.id + '\\''+ \"host='\" + this.host + '\\'' + \"port='\" + this.port + '\\''+ \", name='\" + this.name\n-                + '\\'' + \", metadata=\" + this.metadata + '}';\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+public class SofaRegistryInstance {\r\n+    private String id;\r\n+\r\n+    private String host;\r\n+\r\n+    private int port;\r\n+\r\n+    private String name;\r\n+\r\n+    private Map<String, String> metadata = new HashMap<>();\r\n+\r\n+    private SofaRegistryInstance() {\r\n+    }\r\n+\r\n+    public SofaRegistryInstance(String id, String host, int port, String name, Map<String, String> metadata) {\r\n+        this.id = id;\r\n+        this.host = host;\r\n+        this.port = port;\r\n+        this.name = name;\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    public String getHost() {\r\n+        return host;\r\n+    }\r\n+\r\n+    public void setHost(String host) {\r\n+        this.host = host;\r\n+    }\r\n+\r\n+    public int getPort() {\r\n+        return port;\r\n+    }\r\n+\r\n+    public void setPort(int port) {\r\n+        this.port = port;\r\n+    }\r\n+\r\n+    public String getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    public void setId(String id) {\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public String getName() {\r\n+        return this.name;\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+    }\r\n+\r\n+    public Map<String, String> getMetadata() {\r\n+        return this.metadata;\r\n+    }\r\n+\r\n+    public void setMetadata(Map<String, String> metadata) {\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"SofaRegistryInstance{\" + \"id='\" + this.id + '\\''+ \"host='\" + this.host + '\\'' + \"port='\" + this.port + '\\''+ \", name='\" + this.name\r\n+                + '\\'' + \", metadata=\" + this.metadata + '}';\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscovery.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,254 +1,254 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.DefaultPage;\n-import org.apache.dubbo.common.utils.Page;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.alipay.sofa.registry.client.api.Publisher;\n-import com.alipay.sofa.registry.client.api.RegistryClientConfig;\n-import com.alipay.sofa.registry.client.api.Subscriber;\n-import com.alipay.sofa.registry.client.api.model.RegistryType;\n-import com.alipay.sofa.registry.client.api.model.UserData;\n-import com.alipay.sofa.registry.client.api.registration.PublisherRegistration;\n-import com.alipay.sofa.registry.client.api.registration.SubscriberRegistration;\n-import com.alipay.sofa.registry.client.provider.DefaultRegistryClient;\n-import com.alipay.sofa.registry.client.provider.DefaultRegistryClientConfigBuilder;\n-import com.alipay.sofa.registry.core.model.ScopeEnum;\n-import com.google.gson.Gson;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.ADDRESS_WAIT_TIME_KEY;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_DATA_CENTER;\n-import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_REGION;\n-\n-\n-public class SofaRegistryServiceDiscovery extends AbstractServiceDiscovery {\n-\n-    private static final Logger LOGGER = LoggerFactory.getLogger(SofaRegistryServiceDiscovery.class);\n-\n-    private static final String DEFAULT_GROUP = \"dubbo\";\n-\n-    private URL registryURL;\n-\n-    private DefaultRegistryClient registryClient;\n-\n-    private int waitAddressTimeout;\n-\n-    private RegistryClientConfig registryClientConfig;\n-\n-    private final Map<String, Publisher> publishers = new ConcurrentHashMap<>();\n-\n-    private final Map<String, Subscriber> subscribers = new ConcurrentHashMap<>();\n-\n-    private ServiceInstance serviceInstance;\n-\n-    private Gson gson = new Gson();\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.registryURL = registryURL;\n-\n-        this.registryClientConfig = DefaultRegistryClientConfigBuilder.start()\n-                .setDataCenter(LOCAL_DATA_CENTER)\n-                .setZone(LOCAL_REGION)\n-                .setRegistryEndpoint(registryURL.getHost())\n-                .setRegistryEndpointPort(registryURL.getPort()).build();\n-\n-        registryClient = new DefaultRegistryClient(this.registryClientConfig);\n-        registryClient.init();\n-\n-        this.waitAddressTimeout = Integer.parseInt(ConfigUtils.getProperty(ADDRESS_WAIT_TIME_KEY, \"5000\"));\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-    @Override\n-    public void destroy() throws Exception {\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        SofaRegistryInstance sofaRegistryInstance = new SofaRegistryInstance(serviceInstance.getId(), serviceInstance.getHost(), serviceInstance.getPort(), serviceInstance.getServiceName(), serviceInstance.getMetadata());\n-        Publisher publisher = publishers.get(serviceInstance.getServiceName());\n-        this.serviceInstance = serviceInstance;\n-        if (null == publisher) {\n-            PublisherRegistration registration = new PublisherRegistration(serviceInstance.getServiceName());\n-            registration.setGroup(DEFAULT_GROUP);\n-            publisher = registryClient.register(registration, gson.toJson(sofaRegistryInstance));\n-\n-            publishers.put(serviceInstance.getServiceName(), publisher);\n-        } else {\n-            publisher.republish(gson.toJson(sofaRegistryInstance));\n-        }\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        register(serviceInstance);\n-    }\n-\n-    @Override\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        registryClient.unregister(serviceInstance.getServiceName(), DEFAULT_GROUP, RegistryType.PUBLISHER);\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\n-        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName, listener));\n-    }\n-\n-    protected void registerServiceWatcher(String serviceName, ServiceInstancesChangedListener listener) {\n-        Subscriber subscriber = subscribers.get(serviceName);\n-\n-        if (null == subscriber) {\n-            final CountDownLatch latch = new CountDownLatch(1);\n-            SubscriberRegistration subscriberRegistration = new SubscriberRegistration(serviceName, (dataId, data) -> {\n-                handleRegistryData(dataId, data, listener, latch);\n-            });\n-            subscriberRegistration.setGroup(DEFAULT_GROUP);\n-            subscriberRegistration.setScopeEnum(ScopeEnum.global);\n-\n-            subscriber = registryClient.register(subscriberRegistration);\n-            subscribers.put(serviceName, subscriber);\n-            waitAddress(serviceName, latch);\n-        }\n-    }\n-\n-    @Override\n-    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly)\n-            throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {\n-        Subscriber subscriber = subscribers.get(serviceName);\n-\n-        if (null != subscriber) {\n-            List<ServiceInstance> serviceInstanceList = handleRegistryData(serviceName, subscriber.peekData(), null, null);\n-            return new DefaultPage<>(offset, pageSize, serviceInstanceList, serviceInstanceList.size());\n-        }\n-\n-        throw new RpcException(\"getInstances error!\");\n-    }\n-\n-    private List<ServiceInstance> handleRegistryData(String dataId, UserData userData, ServiceInstancesChangedListener listener, CountDownLatch latch) {\n-        try {\n-            List<String> datas = getUserData(dataId, userData);\n-            List<ServiceInstance> serviceInstances = new ArrayList<>(datas.size());\n-\n-            for (String serviceData : datas) {\n-                SofaRegistryInstance sri = gson.fromJson(serviceData, SofaRegistryInstance.class);\n-\n-                DefaultServiceInstance serviceInstance = new DefaultServiceInstance(sri.getId(), dataId, sri.getHost(), sri.getPort());\n-                serviceInstance.setMetadata(sri.getMetadata());\n-                serviceInstances.add(serviceInstance);\n-            }\n-\n-            if (null != listener) {\n-                listener.onEvent(new ServiceInstancesChangedEvent(dataId, serviceInstances));\n-            }\n-\n-            return serviceInstances;\n-        } finally {\n-            if (null != latch) {\n-                latch.countDown();\n-            }\n-        }\n-    }\n-\n-    private void waitAddress(String serviceName, CountDownLatch countDownLatch) {\n-        try {\n-            if (!countDownLatch.await(waitAddressTimeout, TimeUnit.MILLISECONDS)) {\n-                LOGGER.warn(\"Subscribe data failed by dataId \" + serviceName);\n-            }\n-        } catch (Exception e) {\n-            LOGGER.error(\"Error when wait Address!\", e);\n-        }\n-    }\n-\n-    /**\n-     * Print address data.\n-     *\n-     * @param dataId   the data id\n-     * @param userData the user data\n-     */\n-    protected List<String> getUserData(String dataId, UserData userData) {\n-\n-        List<String> datas = null;\n-        if (userData == null) {\n-            datas = new ArrayList<>(0);\n-        } else {\n-            datas = flatUserData(userData);\n-        }\n-\n-        StringBuilder sb = new StringBuilder();\n-        for (String provider : datas) {\n-            sb.append(\"  >>> \").append(provider).append(\"\\n\");\n-        }\n-        if (LOGGER.isInfoEnabled()) {\n-            LOGGER.info(\"Receive updated RPC service addresses: service[\" + dataId\n-                    + \"]\\n  .Available target addresses size [\" + datas.size() + \"]\\n\"\n-                    + sb.toString());\n-        }\n-\n-        return datas;\n-    }\n-\n-    /**\n-     * Flat user data list.\n-     *\n-     * @param userData the user data\n-     * @return the list\n-     */\n-    protected List<String> flatUserData(UserData userData) {\n-        List<String> result = new ArrayList<>();\n-        Map<String, List<String>> zoneData = userData.getZoneData();\n-\n-        for (Map.Entry<String, List<String>> entry : zoneData.entrySet()) {\n-            result.addAll(entry.getValue());\n-        }\n-\n-        return result;\n-    }\n-\n-    /**\n-     * @return\n-     * @TODO \u540e\u7eed\u786e\u8ba4\u4e0b\n-     */\n-    @Override\n-    public Set<String> getServices() {\n-        return subscribers.keySet();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.DefaultPage;\r\n+import org.apache.dubbo.common.utils.Page;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.alipay.sofa.registry.client.api.Publisher;\r\n+import com.alipay.sofa.registry.client.api.RegistryClientConfig;\r\n+import com.alipay.sofa.registry.client.api.Subscriber;\r\n+import com.alipay.sofa.registry.client.api.model.RegistryType;\r\n+import com.alipay.sofa.registry.client.api.model.UserData;\r\n+import com.alipay.sofa.registry.client.api.registration.PublisherRegistration;\r\n+import com.alipay.sofa.registry.client.api.registration.SubscriberRegistration;\r\n+import com.alipay.sofa.registry.client.provider.DefaultRegistryClient;\r\n+import com.alipay.sofa.registry.client.provider.DefaultRegistryClientConfigBuilder;\r\n+import com.alipay.sofa.registry.core.model.ScopeEnum;\r\n+import com.google.gson.Gson;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.ADDRESS_WAIT_TIME_KEY;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_DATA_CENTER;\r\n+import static org.apache.dubbo.registry.sofa.SofaRegistryConstants.LOCAL_REGION;\r\n+\r\n+\r\n+public class SofaRegistryServiceDiscovery extends AbstractServiceDiscovery {\r\n+\r\n+    private static final Logger LOGGER = LoggerFactory.getLogger(SofaRegistryServiceDiscovery.class);\r\n+\r\n+    private static final String DEFAULT_GROUP = \"dubbo\";\r\n+\r\n+    private URL registryURL;\r\n+\r\n+    private DefaultRegistryClient registryClient;\r\n+\r\n+    private int waitAddressTimeout;\r\n+\r\n+    private RegistryClientConfig registryClientConfig;\r\n+\r\n+    private final Map<String, Publisher> publishers = new ConcurrentHashMap<>();\r\n+\r\n+    private final Map<String, Subscriber> subscribers = new ConcurrentHashMap<>();\r\n+\r\n+    private ServiceInstance serviceInstance;\r\n+\r\n+    private Gson gson = new Gson();\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.registryURL = registryURL;\r\n+\r\n+        this.registryClientConfig = DefaultRegistryClientConfigBuilder.start()\r\n+                .setDataCenter(LOCAL_DATA_CENTER)\r\n+                .setZone(LOCAL_REGION)\r\n+                .setRegistryEndpoint(registryURL.getHost())\r\n+                .setRegistryEndpointPort(registryURL.getPort()).build();\r\n+\r\n+        registryClient = new DefaultRegistryClient(this.registryClientConfig);\r\n+        registryClient.init();\r\n+\r\n+        this.waitAddressTimeout = Integer.parseInt(ConfigUtils.getProperty(ADDRESS_WAIT_TIME_KEY, \"5000\"));\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws Exception {\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        SofaRegistryInstance sofaRegistryInstance = new SofaRegistryInstance(serviceInstance.getId(), serviceInstance.getHost(), serviceInstance.getPort(), serviceInstance.getServiceName(), serviceInstance.getMetadata());\r\n+        Publisher publisher = publishers.get(serviceInstance.getServiceName());\r\n+        this.serviceInstance = serviceInstance;\r\n+        if (null == publisher) {\r\n+            PublisherRegistration registration = new PublisherRegistration(serviceInstance.getServiceName());\r\n+            registration.setGroup(DEFAULT_GROUP);\r\n+            publisher = registryClient.register(registration, gson.toJson(sofaRegistryInstance));\r\n+\r\n+            publishers.put(serviceInstance.getServiceName(), publisher);\r\n+        } else {\r\n+            publisher.republish(gson.toJson(sofaRegistryInstance));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        register(serviceInstance);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        registryClient.unregister(serviceInstance.getServiceName(), DEFAULT_GROUP, RegistryType.PUBLISHER);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws NullPointerException, IllegalArgumentException {\r\n+        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName, listener));\r\n+    }\r\n+\r\n+    protected void registerServiceWatcher(String serviceName, ServiceInstancesChangedListener listener) {\r\n+        Subscriber subscriber = subscribers.get(serviceName);\r\n+\r\n+        if (null == subscriber) {\r\n+            final CountDownLatch latch = new CountDownLatch(1);\r\n+            SubscriberRegistration subscriberRegistration = new SubscriberRegistration(serviceName, (dataId, data) -> {\r\n+                handleRegistryData(dataId, data, listener, latch);\r\n+            });\r\n+            subscriberRegistration.setGroup(DEFAULT_GROUP);\r\n+            subscriberRegistration.setScopeEnum(ScopeEnum.global);\r\n+\r\n+            subscriber = registryClient.register(subscriberRegistration);\r\n+            subscribers.put(serviceName, subscriber);\r\n+            waitAddress(serviceName, latch);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly)\r\n+            throws NullPointerException, IllegalArgumentException, UnsupportedOperationException {\r\n+        Subscriber subscriber = subscribers.get(serviceName);\r\n+\r\n+        if (null != subscriber) {\r\n+            List<ServiceInstance> serviceInstanceList = handleRegistryData(serviceName, subscriber.peekData(), null, null);\r\n+            return new DefaultPage<>(offset, pageSize, serviceInstanceList, serviceInstanceList.size());\r\n+        }\r\n+\r\n+        throw new RpcException(\"getInstances error!\");\r\n+    }\r\n+\r\n+    private List<ServiceInstance> handleRegistryData(String dataId, UserData userData, ServiceInstancesChangedListener listener, CountDownLatch latch) {\r\n+        try {\r\n+            List<String> datas = getUserData(dataId, userData);\r\n+            List<ServiceInstance> serviceInstances = new ArrayList<>(datas.size());\r\n+\r\n+            for (String serviceData : datas) {\r\n+                SofaRegistryInstance sri = gson.fromJson(serviceData, SofaRegistryInstance.class);\r\n+\r\n+                DefaultServiceInstance serviceInstance = new DefaultServiceInstance(sri.getId(), dataId, sri.getHost(), sri.getPort());\r\n+                serviceInstance.setMetadata(sri.getMetadata());\r\n+                serviceInstances.add(serviceInstance);\r\n+            }\r\n+\r\n+            if (null != listener) {\r\n+                listener.onEvent(new ServiceInstancesChangedEvent(dataId, serviceInstances));\r\n+            }\r\n+\r\n+            return serviceInstances;\r\n+        } finally {\r\n+            if (null != latch) {\r\n+                latch.countDown();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void waitAddress(String serviceName, CountDownLatch countDownLatch) {\r\n+        try {\r\n+            if (!countDownLatch.await(waitAddressTimeout, TimeUnit.MILLISECONDS)) {\r\n+                LOGGER.warn(\"Subscribe data failed by dataId \" + serviceName);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            LOGGER.error(\"Error when wait Address!\", e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Print address data.\r\n+     *\r\n+     * @param dataId   the data id\r\n+     * @param userData the user data\r\n+     */\r\n+    protected List<String> getUserData(String dataId, UserData userData) {\r\n+\r\n+        List<String> datas = null;\r\n+        if (userData == null) {\r\n+            datas = new ArrayList<>(0);\r\n+        } else {\r\n+            datas = flatUserData(userData);\r\n+        }\r\n+\r\n+        StringBuilder sb = new StringBuilder();\r\n+        for (String provider : datas) {\r\n+            sb.append(\"  >>> \").append(provider).append(\"\\n\");\r\n+        }\r\n+        if (LOGGER.isInfoEnabled()) {\r\n+            LOGGER.info(\"Receive updated RPC service addresses: service[\" + dataId\r\n+                    + \"]\\n  .Available target addresses size [\" + datas.size() + \"]\\n\"\r\n+                    + sb.toString());\r\n+        }\r\n+\r\n+        return datas;\r\n+    }\r\n+\r\n+    /**\r\n+     * Flat user data list.\r\n+     *\r\n+     * @param userData the user data\r\n+     * @return the list\r\n+     */\r\n+    protected List<String> flatUserData(UserData userData) {\r\n+        List<String> result = new ArrayList<>();\r\n+        Map<String, List<String>> zoneData = userData.getZoneData();\r\n+\r\n+        for (Map.Entry<String, List<String>> entry : zoneData.entrySet()) {\r\n+            result.addAll(entry.getValue());\r\n+        }\r\n+\r\n+        return result;\r\n+    }\r\n+\r\n+    /**\r\n+     * @return\r\n+     * @TODO \u540e\u7eed\u786e\u8ba4\u4e0b\r\n+     */\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return subscribers.keySet();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/sofa/SofaRegistryServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.sofa;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class SofaRegistryServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new SofaRegistryServiceDiscovery();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.sofa;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class SofaRegistryServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new SofaRegistryServiceDiscovery();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/ZookeeperInstance.java", "source2": "org/apache/dubbo/registry/zookeeper/ZookeeperInstance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,77 +1,77 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * Represents the default payload of a registered service in Zookeeper.\n- * <p>\n- * It's compatible with Spring Cloud\n- *\n- * @since 2.7.5\n- */\n-public class ZookeeperInstance {\n-\n-    private String id;\n-\n-    private String name;\n-\n-    private Map<String, String> metadata = new HashMap<>();\n-\n-    @SuppressWarnings(\"unused\")\n-    private ZookeeperInstance() {\n-    }\n-\n-    public ZookeeperInstance(String id, String name, Map<String, String> metadata) {\n-        this.id = id;\n-        this.name = name;\n-        this.metadata = metadata;\n-    }\n-\n-    public String getId() {\n-        return this.id;\n-    }\n-\n-    public String getName() {\n-        return this.name;\n-    }\n-\n-    public void setId(String id) {\n-        this.id = id;\n-    }\n-\n-    public void setName(String name) {\n-        this.name = name;\n-    }\n-\n-    public Map<String, String> getMetadata() {\n-        return this.metadata;\n-    }\n-\n-    public void setMetadata(Map<String, String> metadata) {\n-        this.metadata = metadata;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"ZookeeperInstance{\" + \"id='\" + this.id + '\\'' + \", name='\" + this.name\n-                + '\\'' + \", metadata=\" + this.metadata + '}';\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * Represents the default payload of a registered service in Zookeeper.\r\n+ * <p>\r\n+ * It's compatible with Spring Cloud\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ZookeeperInstance {\r\n+\r\n+    private String id;\r\n+\r\n+    private String name;\r\n+\r\n+    private Map<String, String> metadata = new HashMap<>();\r\n+\r\n+    @SuppressWarnings(\"unused\")\r\n+    private ZookeeperInstance() {\r\n+    }\r\n+\r\n+    public ZookeeperInstance(String id, String name, Map<String, String> metadata) {\r\n+        this.id = id;\r\n+        this.name = name;\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    public String getId() {\r\n+        return this.id;\r\n+    }\r\n+\r\n+    public String getName() {\r\n+        return this.name;\r\n+    }\r\n+\r\n+    public void setId(String id) {\r\n+        this.id = id;\r\n+    }\r\n+\r\n+    public void setName(String name) {\r\n+        this.name = name;\r\n+    }\r\n+\r\n+    public Map<String, String> getMetadata() {\r\n+        return this.metadata;\r\n+    }\r\n+\r\n+    public void setMetadata(Map<String, String> metadata) {\r\n+        this.metadata = metadata;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"ZookeeperInstance{\" + \"id='\" + this.id + '\\'' + \", name='\" + this.name\r\n+                + '\\'' + \", metadata=\" + this.metadata + '}';\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java", "source2": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscovery.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,211 +1,211 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.function.ThrowableConsumer;\n-import org.apache.dubbo.common.function.ThrowableFunction;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.DefaultPage;\n-import org.apache.dubbo.common.utils.Page;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import org.apache.curator.framework.CuratorFramework;\n-import org.apache.curator.framework.api.CuratorWatcher;\n-import org.apache.zookeeper.KeeperException;\n-\n-import java.util.Iterator;\n-import java.util.LinkedHashSet;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.function.ThrowableFunction.execute;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.ROOT_PATH;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.build;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildCuratorFramework;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildServiceDiscovery;\n-\n-/**\n- * Zookeeper {@link ServiceDiscovery} implementation based on\n- * <a href=\"https://curator.apache.org/curator-x-discovery/index.html\">Apache Curator X Discovery</a>\n- */\n-public class ZookeeperServiceDiscovery extends AbstractServiceDiscovery {\n-\n-    private final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private URL registryURL;\n-\n-    private CuratorFramework curatorFramework;\n-\n-    private String rootPath;\n-\n-    private org.apache.curator.x.discovery.ServiceDiscovery<ZookeeperInstance> serviceDiscovery;\n-\n-    /**\n-     * The Key is watched Zookeeper path, the value is an instance of {@link CuratorWatcher}\n-     */\n-    private final Map<String, ZookeeperServiceDiscoveryChangeWatcher> watcherCaches = new ConcurrentHashMap<>();\n-\n-    @Override\n-    public void initialize(URL registryURL) throws Exception {\n-        this.registryURL = registryURL;\n-        this.curatorFramework = buildCuratorFramework(registryURL);\n-        this.rootPath = ROOT_PATH.getParameterValue(registryURL);\n-        this.serviceDiscovery = buildServiceDiscovery(curatorFramework, rootPath);\n-        this.serviceDiscovery.start();\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return registryURL;\n-    }\n-\n-    public void destroy() throws Exception {\n-        serviceDiscovery.close();\n-    }\n-\n-    @Override\n-    public void doRegister(ServiceInstance serviceInstance) {\n-        doInServiceRegistry(serviceDiscovery -> {\n-            serviceDiscovery.registerService(build(serviceInstance));\n-        });\n-    }\n-\n-    @Override\n-    public void doUpdate(ServiceInstance serviceInstance) {\n-        doInServiceRegistry(serviceDiscovery -> {\n-            serviceDiscovery.updateService(build(serviceInstance));\n-        });\n-    }\n-\n-    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\n-        doInServiceRegistry(serviceDiscovery -> {\n-            serviceDiscovery.unregisterService(build(serviceInstance));\n-        });\n-    }\n-\n-    @Override\n-    public Set<String> getServices() {\n-        return doInServiceDiscovery(s -> new LinkedHashSet<>(s.queryForNames()));\n-    }\n-\n-    @Override\n-    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\n-        return doInServiceDiscovery(s -> build(s.queryForInstances(serviceName)));\n-    }\n-\n-    @Override\n-    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) {\n-        String path = buildServicePath(serviceName);\n-\n-        return execute(path, p -> {\n-\n-            List<ServiceInstance> serviceInstances = new LinkedList<>();\n-\n-            int totalSize = 0;\n-            try {\n-                List<String> serviceIds = new LinkedList<>(curatorFramework.getChildren().forPath(p));\n-\n-                totalSize = serviceIds.size();\n-\n-                Iterator<String> iterator = serviceIds.iterator();\n-\n-                for (int i = 0; i < offset; i++) {\n-                    if (iterator.hasNext()) { // remove the elements from 0 to offset\n-                        iterator.next();\n-                        iterator.remove();\n-                    }\n-                }\n-\n-                for (int i = 0; i < pageSize; i++) {\n-                    if (iterator.hasNext()) {\n-                        String serviceId = iterator.next();\n-                        ServiceInstance serviceInstance = build(serviceDiscovery.queryForInstance(serviceName, serviceId));\n-                        serviceInstances.add(serviceInstance);\n-                    }\n-                }\n-            } catch (KeeperException.NoNodeException e) {\n-                logger.warn(p + \" path not exist.\", e);\n-            }\n-\n-            return new DefaultPage<>(offset, pageSize, serviceInstances, totalSize);\n-        });\n-    }\n-\n-    @Override\n-    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\n-            throws NullPointerException, IllegalArgumentException {\n-        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName, listener));\n-    }\n-\n-    @Override\n-    public void removeServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws IllegalArgumentException {\n-        listener.getServiceNames().forEach(serviceName -> {\n-            ZookeeperServiceDiscoveryChangeWatcher watcher = watcherCaches.remove(serviceName);\n-            watcher.stopWatching();\n-        });\n-    }\n-\n-    private void doInServiceRegistry(ThrowableConsumer<org.apache.curator.x.discovery.ServiceDiscovery> consumer) {\n-        ThrowableConsumer.execute(serviceDiscovery, s -> {\n-            consumer.accept(s);\n-        });\n-    }\n-\n-    private <R> R doInServiceDiscovery(ThrowableFunction<org.apache.curator.x.discovery.ServiceDiscovery, R> function) {\n-        return execute(serviceDiscovery, function);\n-    }\n-\n-    protected void registerServiceWatcher(String serviceName, ServiceInstancesChangedListener listener) {\n-        String path = buildServicePath(serviceName);\n-        try {\n-            curatorFramework.create().creatingParentsIfNeeded().forPath(path);\n-        } catch (KeeperException.NodeExistsException e) {\n-            // ignored\n-            if (logger.isDebugEnabled()) {\n-\n-                logger.debug(e);\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalStateException(\"registerServiceWatcher create path=\" + path + \" fail.\", e);\n-        }\n-\n-        CuratorWatcher watcher = watcherCaches.computeIfAbsent(path, key ->\n-                new ZookeeperServiceDiscoveryChangeWatcher(this, serviceName, listener));\n-        try {\n-            curatorFramework.getChildren().usingWatcher(watcher).forPath(path);\n-        } catch (KeeperException.NoNodeException e) {\n-            // ignored\n-            if (logger.isErrorEnabled()) {\n-                logger.error(e.getMessage());\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    private String buildServicePath(String serviceName) {\n-        return rootPath + \"/\" + serviceName;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.function.ThrowableConsumer;\r\n+import org.apache.dubbo.common.function.ThrowableFunction;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.DefaultPage;\r\n+import org.apache.dubbo.common.utils.Page;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import org.apache.curator.framework.CuratorFramework;\r\n+import org.apache.curator.framework.api.CuratorWatcher;\r\n+import org.apache.zookeeper.KeeperException;\r\n+\r\n+import java.util.Iterator;\r\n+import java.util.LinkedHashSet;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.function.ThrowableFunction.execute;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.ROOT_PATH;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.build;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildCuratorFramework;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkUtils.buildServiceDiscovery;\r\n+\r\n+/**\r\n+ * Zookeeper {@link ServiceDiscovery} implementation based on\r\n+ * <a href=\"https://curator.apache.org/curator-x-discovery/index.html\">Apache Curator X Discovery</a>\r\n+ */\r\n+public class ZookeeperServiceDiscovery extends AbstractServiceDiscovery {\r\n+\r\n+    private final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private URL registryURL;\r\n+\r\n+    private CuratorFramework curatorFramework;\r\n+\r\n+    private String rootPath;\r\n+\r\n+    private org.apache.curator.x.discovery.ServiceDiscovery<ZookeeperInstance> serviceDiscovery;\r\n+\r\n+    /**\r\n+     * The Key is watched Zookeeper path, the value is an instance of {@link CuratorWatcher}\r\n+     */\r\n+    private final Map<String, ZookeeperServiceDiscoveryChangeWatcher> watcherCaches = new ConcurrentHashMap<>();\r\n+\r\n+    @Override\r\n+    public void initialize(URL registryURL) throws Exception {\r\n+        this.registryURL = registryURL;\r\n+        this.curatorFramework = buildCuratorFramework(registryURL);\r\n+        this.rootPath = ROOT_PATH.getParameterValue(registryURL);\r\n+        this.serviceDiscovery = buildServiceDiscovery(curatorFramework, rootPath);\r\n+        this.serviceDiscovery.start();\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return registryURL;\r\n+    }\r\n+\r\n+    public void destroy() throws Exception {\r\n+        serviceDiscovery.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doRegister(ServiceInstance serviceInstance) {\r\n+        doInServiceRegistry(serviceDiscovery -> {\r\n+            serviceDiscovery.registerService(build(serviceInstance));\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doUpdate(ServiceInstance serviceInstance) {\r\n+        doInServiceRegistry(serviceDiscovery -> {\r\n+            serviceDiscovery.updateService(build(serviceInstance));\r\n+        });\r\n+    }\r\n+\r\n+    public void unregister(ServiceInstance serviceInstance) throws RuntimeException {\r\n+        doInServiceRegistry(serviceDiscovery -> {\r\n+            serviceDiscovery.unregisterService(build(serviceInstance));\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public Set<String> getServices() {\r\n+        return doInServiceDiscovery(s -> new LinkedHashSet<>(s.queryForNames()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<ServiceInstance> getInstances(String serviceName) throws NullPointerException {\r\n+        return doInServiceDiscovery(s -> build(s.queryForInstances(serviceName)));\r\n+    }\r\n+\r\n+    @Override\r\n+    public Page<ServiceInstance> getInstances(String serviceName, int offset, int pageSize, boolean healthyOnly) {\r\n+        String path = buildServicePath(serviceName);\r\n+\r\n+        return execute(path, p -> {\r\n+\r\n+            List<ServiceInstance> serviceInstances = new LinkedList<>();\r\n+\r\n+            int totalSize = 0;\r\n+            try {\r\n+                List<String> serviceIds = new LinkedList<>(curatorFramework.getChildren().forPath(p));\r\n+\r\n+                totalSize = serviceIds.size();\r\n+\r\n+                Iterator<String> iterator = serviceIds.iterator();\r\n+\r\n+                for (int i = 0; i < offset; i++) {\r\n+                    if (iterator.hasNext()) { // remove the elements from 0 to offset\r\n+                        iterator.next();\r\n+                        iterator.remove();\r\n+                    }\r\n+                }\r\n+\r\n+                for (int i = 0; i < pageSize; i++) {\r\n+                    if (iterator.hasNext()) {\r\n+                        String serviceId = iterator.next();\r\n+                        ServiceInstance serviceInstance = build(serviceDiscovery.queryForInstance(serviceName, serviceId));\r\n+                        serviceInstances.add(serviceInstance);\r\n+                    }\r\n+                }\r\n+            } catch (KeeperException.NoNodeException e) {\r\n+                logger.warn(p + \" path not exist.\", e);\r\n+            }\r\n+\r\n+            return new DefaultPage<>(offset, pageSize, serviceInstances, totalSize);\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addServiceInstancesChangedListener(ServiceInstancesChangedListener listener)\r\n+            throws NullPointerException, IllegalArgumentException {\r\n+        listener.getServiceNames().forEach(serviceName -> registerServiceWatcher(serviceName, listener));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeServiceInstancesChangedListener(ServiceInstancesChangedListener listener) throws IllegalArgumentException {\r\n+        listener.getServiceNames().forEach(serviceName -> {\r\n+            ZookeeperServiceDiscoveryChangeWatcher watcher = watcherCaches.remove(serviceName);\r\n+            watcher.stopWatching();\r\n+        });\r\n+    }\r\n+\r\n+    private void doInServiceRegistry(ThrowableConsumer<org.apache.curator.x.discovery.ServiceDiscovery> consumer) {\r\n+        ThrowableConsumer.execute(serviceDiscovery, s -> {\r\n+            consumer.accept(s);\r\n+        });\r\n+    }\r\n+\r\n+    private <R> R doInServiceDiscovery(ThrowableFunction<org.apache.curator.x.discovery.ServiceDiscovery, R> function) {\r\n+        return execute(serviceDiscovery, function);\r\n+    }\r\n+\r\n+    protected void registerServiceWatcher(String serviceName, ServiceInstancesChangedListener listener) {\r\n+        String path = buildServicePath(serviceName);\r\n+        try {\r\n+            curatorFramework.create().creatingParentsIfNeeded().forPath(path);\r\n+        } catch (KeeperException.NodeExistsException e) {\r\n+            // ignored\r\n+            if (logger.isDebugEnabled()) {\r\n+\r\n+                logger.debug(e);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(\"registerServiceWatcher create path=\" + path + \" fail.\", e);\r\n+        }\r\n+\r\n+        CuratorWatcher watcher = watcherCaches.computeIfAbsent(path, key ->\r\n+                new ZookeeperServiceDiscoveryChangeWatcher(this, serviceName, listener));\r\n+        try {\r\n+            curatorFramework.getChildren().usingWatcher(watcher).forPath(path);\r\n+        } catch (KeeperException.NoNodeException e) {\r\n+            // ignored\r\n+            if (logger.isErrorEnabled()) {\r\n+                logger.error(e.getMessage());\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private String buildServicePath(String serviceName) {\r\n+        return rootPath + \"/\" + serviceName;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryChangeWatcher.java", "source2": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryChangeWatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,75 +1,75 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper;\n-\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\n-import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\n-\n-import org.apache.curator.framework.api.CuratorWatcher;\n-import org.apache.zookeeper.WatchedEvent;\n-import org.apache.zookeeper.Watcher;\n-\n-import static org.apache.zookeeper.Watcher.Event.EventType.NodeChildrenChanged;\n-import static org.apache.zookeeper.Watcher.Event.EventType.NodeDataChanged;\n-\n-/**\n- * Zookeeper {@link ServiceDiscovery} Change {@link CuratorWatcher watcher} only interests in\n- * {@link Watcher.Event.EventType#NodeChildrenChanged} and {@link Watcher.Event.EventType#NodeDataChanged} event types,\n- * which will multicast a {@link ServiceInstancesChangedEvent} when the service node has been changed.\n- *\n- * @since 2.7.5\n- */\n-public class ZookeeperServiceDiscoveryChangeWatcher implements CuratorWatcher {\n-    private ServiceInstancesChangedListener listener;\n-\n-    private final ZookeeperServiceDiscovery zookeeperServiceDiscovery;\n-\n-    private boolean keepWatching = true;\n-\n-    private final String serviceName;\n-\n-    public ZookeeperServiceDiscoveryChangeWatcher(ZookeeperServiceDiscovery zookeeperServiceDiscovery,\n-                                                  String serviceName,\n-                                                  ServiceInstancesChangedListener listener) {\n-        this.zookeeperServiceDiscovery = zookeeperServiceDiscovery;\n-        this.serviceName = serviceName;\n-        this.listener = listener;\n-    }\n-\n-    @Override\n-    public void process(WatchedEvent event) throws Exception {\n-\n-        Watcher.Event.EventType eventType = event.getType();\n-\n-        if (NodeChildrenChanged.equals(eventType) || NodeDataChanged.equals(eventType)) {\n-            if (shouldKeepWatching()) {\n-                listener.onEvent(new ServiceInstancesChangedEvent(serviceName, zookeeperServiceDiscovery.getInstances(serviceName)));\n-                zookeeperServiceDiscovery.registerServiceWatcher(serviceName, listener);\n-                zookeeperServiceDiscovery.dispatchServiceInstancesChangedEvent(serviceName);\n-            }\n-        }\n-    }\n-\n-    public boolean shouldKeepWatching() {\n-        return keepWatching;\n-    }\n-\n-    public void stopWatching() {\n-        this.keepWatching = false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper;\r\n+\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+import org.apache.dubbo.registry.client.event.ServiceInstancesChangedEvent;\r\n+import org.apache.dubbo.registry.client.event.listener.ServiceInstancesChangedListener;\r\n+\r\n+import org.apache.curator.framework.api.CuratorWatcher;\r\n+import org.apache.zookeeper.WatchedEvent;\r\n+import org.apache.zookeeper.Watcher;\r\n+\r\n+import static org.apache.zookeeper.Watcher.Event.EventType.NodeChildrenChanged;\r\n+import static org.apache.zookeeper.Watcher.Event.EventType.NodeDataChanged;\r\n+\r\n+/**\r\n+ * Zookeeper {@link ServiceDiscovery} Change {@link CuratorWatcher watcher} only interests in\r\n+ * {@link Watcher.Event.EventType#NodeChildrenChanged} and {@link Watcher.Event.EventType#NodeDataChanged} event types,\r\n+ * which will multicast a {@link ServiceInstancesChangedEvent} when the service node has been changed.\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public class ZookeeperServiceDiscoveryChangeWatcher implements CuratorWatcher {\r\n+    private ServiceInstancesChangedListener listener;\r\n+\r\n+    private final ZookeeperServiceDiscovery zookeeperServiceDiscovery;\r\n+\r\n+    private boolean keepWatching = true;\r\n+\r\n+    private final String serviceName;\r\n+\r\n+    public ZookeeperServiceDiscoveryChangeWatcher(ZookeeperServiceDiscovery zookeeperServiceDiscovery,\r\n+                                                  String serviceName,\r\n+                                                  ServiceInstancesChangedListener listener) {\r\n+        this.zookeeperServiceDiscovery = zookeeperServiceDiscovery;\r\n+        this.serviceName = serviceName;\r\n+        this.listener = listener;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void process(WatchedEvent event) throws Exception {\r\n+\r\n+        Watcher.Event.EventType eventType = event.getType();\r\n+\r\n+        if (NodeChildrenChanged.equals(eventType) || NodeDataChanged.equals(eventType)) {\r\n+            if (shouldKeepWatching()) {\r\n+                listener.onEvent(new ServiceInstancesChangedEvent(serviceName, zookeeperServiceDiscovery.getInstances(serviceName)));\r\n+                zookeeperServiceDiscovery.registerServiceWatcher(serviceName, listener);\r\n+                zookeeperServiceDiscovery.dispatchServiceInstancesChangedEvent(serviceName);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public boolean shouldKeepWatching() {\r\n+        return keepWatching;\r\n+    }\r\n+\r\n+    public void stopWatching() {\r\n+        this.keepWatching = false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryFactory.java", "source2": "org/apache/dubbo/registry/zookeeper/ZookeeperServiceDiscoveryFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\n-import org.apache.dubbo.registry.client.ServiceDiscovery;\n-\n-public class ZookeeperServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\n-\n-    @Override\n-    protected ServiceDiscovery createDiscovery(URL registryURL) {\n-        return new ZookeeperServiceDiscovery();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.AbstractServiceDiscoveryFactory;\r\n+import org.apache.dubbo.registry.client.ServiceDiscovery;\r\n+\r\n+public class ZookeeperServiceDiscoveryFactory extends AbstractServiceDiscoveryFactory {\r\n+\r\n+    @Override\r\n+    protected ServiceDiscovery createDiscovery(URL registryURL) {\r\n+        return new ZookeeperServiceDiscovery();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkParams.java", "source2": "org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkParams.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper.util;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-\n-import org.apache.curator.framework.CuratorFramework;\n-\n-import java.util.concurrent.TimeUnit;\n-import java.util.function.Function;\n-\n-/**\n- * The enumeration for the parameters  of {@link CuratorFramework}\n- *\n- * @see CuratorFramework\n- * @since 2.7.5\n- */\n-public enum CuratorFrameworkParams {\n-\n-    /**\n-     * The root path of Dubbo Service\n-     */\n-    ROOT_PATH(\"rootPath\", \"/services\", value -> value),\n-\n-    /**\n-     * The host of current {@link ServiceInstance service instance} that will be registered\n-     */\n-    INSTANCE_HOST(\"instanceHost\", null, value -> value),\n-\n-    /**\n-     * The port of current {@link ServiceInstance service instance} that will be registered\n-     */\n-    INSTANCE_PORT(\"instancePort\", null, value -> value),\n-\n-    /**\n-     * Initial amount of time to wait between retries\n-     */\n-    BASE_SLEEP_TIME(\"baseSleepTimeMs\", 50, Integer::valueOf),\n-\n-    /**\n-     * Max number of times to retry.\n-     */\n-    MAX_RETRIES(\"maxRetries\", 10, Integer::valueOf),\n-\n-    /**\n-     * Max time in ms to sleep on each retry.\n-     */\n-    MAX_SLEEP(\"maxSleepMs\", 500, Integer::valueOf),\n-\n-    /**\n-     * Wait time to block on connection to Zookeeper.\n-     */\n-    BLOCK_UNTIL_CONNECTED_WAIT(\"blockUntilConnectedWait\", 10, Integer::valueOf),\n-\n-    /**\n-     * The unit of time related to blocking on connection to Zookeeper.\n-     */\n-    BLOCK_UNTIL_CONNECTED_UNIT(\"blockUntilConnectedUnit\", TimeUnit.SECONDS, TimeUnit::valueOf),\n-\n-    ;\n-\n-    private final String name;\n-\n-    private final Object defaultValue;\n-\n-    private final Function<String, Object> converter;\n-\n-    <T> CuratorFrameworkParams(String name, T defaultValue, Function<String, T> converter) {\n-        this.name = name;\n-        this.defaultValue = defaultValue;\n-        this.converter = (Function<String, Object>) converter;\n-    }\n-\n-    /**\n-     * Get the parameter value from the specified {@link URL}\n-     *\n-     * @param url the Dubbo registry {@link URL}\n-     * @param <T> the type of value\n-     * @return the parameter value if present, or return <code>null</code>\n-     */\n-    public <T> T getParameterValue(URL url) {\n-        String param = url.getParameter(name);\n-        Object value = param != null ? converter.apply(param) : defaultValue;\n-        return (T) value;\n-    }\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper.util;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+\r\n+import org.apache.curator.framework.CuratorFramework;\r\n+\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.function.Function;\r\n+\r\n+/**\r\n+ * The enumeration for the parameters  of {@link CuratorFramework}\r\n+ *\r\n+ * @see CuratorFramework\r\n+ * @since 2.7.5\r\n+ */\r\n+public enum CuratorFrameworkParams {\r\n+\r\n+    /**\r\n+     * The root path of Dubbo Service\r\n+     */\r\n+    ROOT_PATH(\"rootPath\", \"/services\", value -> value),\r\n+\r\n+    /**\r\n+     * The host of current {@link ServiceInstance service instance} that will be registered\r\n+     */\r\n+    INSTANCE_HOST(\"instanceHost\", null, value -> value),\r\n+\r\n+    /**\r\n+     * The port of current {@link ServiceInstance service instance} that will be registered\r\n+     */\r\n+    INSTANCE_PORT(\"instancePort\", null, value -> value),\r\n+\r\n+    /**\r\n+     * Initial amount of time to wait between retries\r\n+     */\r\n+    BASE_SLEEP_TIME(\"baseSleepTimeMs\", 50, Integer::valueOf),\r\n+\r\n+    /**\r\n+     * Max number of times to retry.\r\n+     */\r\n+    MAX_RETRIES(\"maxRetries\", 10, Integer::valueOf),\r\n+\r\n+    /**\r\n+     * Max time in ms to sleep on each retry.\r\n+     */\r\n+    MAX_SLEEP(\"maxSleepMs\", 500, Integer::valueOf),\r\n+\r\n+    /**\r\n+     * Wait time to block on connection to Zookeeper.\r\n+     */\r\n+    BLOCK_UNTIL_CONNECTED_WAIT(\"blockUntilConnectedWait\", 10, Integer::valueOf),\r\n+\r\n+    /**\r\n+     * The unit of time related to blocking on connection to Zookeeper.\r\n+     */\r\n+    BLOCK_UNTIL_CONNECTED_UNIT(\"blockUntilConnectedUnit\", TimeUnit.SECONDS, TimeUnit::valueOf),\r\n+\r\n+    ;\r\n+\r\n+    private final String name;\r\n+\r\n+    private final Object defaultValue;\r\n+\r\n+    private final Function<String, Object> converter;\r\n+\r\n+    <T> CuratorFrameworkParams(String name, T defaultValue, Function<String, T> converter) {\r\n+        this.name = name;\r\n+        this.defaultValue = defaultValue;\r\n+        this.converter = (Function<String, Object>) converter;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the parameter value from the specified {@link URL}\r\n+     *\r\n+     * @param url the Dubbo registry {@link URL}\r\n+     * @param <T> the type of value\r\n+     * @return the parameter value if present, or return <code>null</code>\r\n+     */\r\n+    public <T> T getParameterValue(URL url) {\r\n+        String param = url.getParameter(name);\r\n+        Object value = param != null ? converter.apply(param) : defaultValue;\r\n+        return (T) value;\r\n+    }\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java", "source2": "org/apache/dubbo/registry/zookeeper/util/CuratorFrameworkUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.registry.zookeeper.util;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.registry.client.DefaultServiceInstance;\n-import org.apache.dubbo.registry.client.ServiceInstance;\n-import org.apache.dubbo.registry.zookeeper.ZookeeperInstance;\n-\n-import org.apache.curator.RetryPolicy;\n-import org.apache.curator.framework.CuratorFramework;\n-import org.apache.curator.framework.CuratorFrameworkFactory;\n-import org.apache.curator.retry.ExponentialBackoffRetry;\n-import org.apache.curator.x.discovery.ServiceDiscovery;\n-import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;\n-import org.apache.curator.x.discovery.ServiceInstanceBuilder;\n-\n-import java.util.Collection;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.curator.x.discovery.ServiceInstance.builder;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BASE_SLEEP_TIME;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BLOCK_UNTIL_CONNECTED_UNIT;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BLOCK_UNTIL_CONNECTED_WAIT;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.MAX_RETRIES;\n-import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.MAX_SLEEP;\n-\n-/**\n- * Curator Framework Utilities Class\n- *\n- * @since 2.7.5\n- */\n-public abstract class CuratorFrameworkUtils {\n-\n-    public static ServiceDiscovery<ZookeeperInstance> buildServiceDiscovery(CuratorFramework curatorFramework,\n-                                                                            String basePath) {\n-        return ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)\n-                .client(curatorFramework)\n-                .basePath(basePath)\n-                .build();\n-    }\n-\n-    public static CuratorFramework buildCuratorFramework(URL connectionURL) throws Exception {\n-        CuratorFramework curatorFramework = CuratorFrameworkFactory.builder()\n-                .connectString(connectionURL.getIp() + \":\" + connectionURL.getPort())\n-                .retryPolicy(buildRetryPolicy(connectionURL))\n-                .build();\n-        curatorFramework.start();\n-        curatorFramework.blockUntilConnected(BLOCK_UNTIL_CONNECTED_WAIT.getParameterValue(connectionURL),\n-                BLOCK_UNTIL_CONNECTED_UNIT.getParameterValue(connectionURL));\n-        return curatorFramework;\n-    }\n-\n-    public static RetryPolicy buildRetryPolicy(URL connectionURL) {\n-        int baseSleepTimeMs = BASE_SLEEP_TIME.getParameterValue(connectionURL);\n-        int maxRetries = MAX_RETRIES.getParameterValue(connectionURL);\n-        int getMaxSleepMs = MAX_SLEEP.getParameterValue(connectionURL);\n-        return new ExponentialBackoffRetry(baseSleepTimeMs, maxRetries, getMaxSleepMs);\n-    }\n-\n-\n-    public static List<ServiceInstance> build(Collection<org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance>>\n-                                                      instances) {\n-        return instances.stream().map(CuratorFrameworkUtils::build).collect(Collectors.toList());\n-    }\n-\n-    public static ServiceInstance build(org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> instance) {\n-        String name = instance.getName();\n-        String host = instance.getAddress();\n-        int port = instance.getPort();\n-        ZookeeperInstance zookeeperInstance = instance.getPayload();\n-        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getId(), name, host, port);\n-        serviceInstance.setMetadata(zookeeperInstance.getMetadata());\n-        return serviceInstance;\n-    }\n-\n-    public static org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> build(ServiceInstance serviceInstance) {\n-        ServiceInstanceBuilder builder = null;\n-        String serviceName = serviceInstance.getServiceName();\n-        String host = serviceInstance.getHost();\n-        int port = serviceInstance.getPort();\n-        Map<String, String> metadata = serviceInstance.getMetadata();\n-        String id = generateId(host, port);\n-        ZookeeperInstance zookeeperInstance = new ZookeeperInstance(null, serviceName, metadata);\n-        try {\n-            builder = builder()\n-                    .id(id)\n-                    .name(serviceName)\n-                    .address(host)\n-                    .port(port)\n-                    .payload(zookeeperInstance);\n-        } catch (Exception e) {\n-            throw new RuntimeException(e);\n-        }\n-        return builder.build();\n-    }\n-\n-    public static final String generateId(String host, int port) {\n-        return host + \":\" + port;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.registry.zookeeper.util;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.registry.client.DefaultServiceInstance;\r\n+import org.apache.dubbo.registry.client.ServiceInstance;\r\n+import org.apache.dubbo.registry.zookeeper.ZookeeperInstance;\r\n+\r\n+import org.apache.curator.RetryPolicy;\r\n+import org.apache.curator.framework.CuratorFramework;\r\n+import org.apache.curator.framework.CuratorFrameworkFactory;\r\n+import org.apache.curator.retry.ExponentialBackoffRetry;\r\n+import org.apache.curator.x.discovery.ServiceDiscovery;\r\n+import org.apache.curator.x.discovery.ServiceDiscoveryBuilder;\r\n+import org.apache.curator.x.discovery.ServiceInstanceBuilder;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.curator.x.discovery.ServiceInstance.builder;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BASE_SLEEP_TIME;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BLOCK_UNTIL_CONNECTED_UNIT;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.BLOCK_UNTIL_CONNECTED_WAIT;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.MAX_RETRIES;\r\n+import static org.apache.dubbo.registry.zookeeper.util.CuratorFrameworkParams.MAX_SLEEP;\r\n+\r\n+/**\r\n+ * Curator Framework Utilities Class\r\n+ *\r\n+ * @since 2.7.5\r\n+ */\r\n+public abstract class CuratorFrameworkUtils {\r\n+\r\n+    public static ServiceDiscovery<ZookeeperInstance> buildServiceDiscovery(CuratorFramework curatorFramework,\r\n+                                                                            String basePath) {\r\n+        return ServiceDiscoveryBuilder.builder(ZookeeperInstance.class)\r\n+                .client(curatorFramework)\r\n+                .basePath(basePath)\r\n+                .build();\r\n+    }\r\n+\r\n+    public static CuratorFramework buildCuratorFramework(URL connectionURL) throws Exception {\r\n+        CuratorFramework curatorFramework = CuratorFrameworkFactory.builder()\r\n+                .connectString(connectionURL.getIp() + \":\" + connectionURL.getPort())\r\n+                .retryPolicy(buildRetryPolicy(connectionURL))\r\n+                .build();\r\n+        curatorFramework.start();\r\n+        curatorFramework.blockUntilConnected(BLOCK_UNTIL_CONNECTED_WAIT.getParameterValue(connectionURL),\r\n+                BLOCK_UNTIL_CONNECTED_UNIT.getParameterValue(connectionURL));\r\n+        return curatorFramework;\r\n+    }\r\n+\r\n+    public static RetryPolicy buildRetryPolicy(URL connectionURL) {\r\n+        int baseSleepTimeMs = BASE_SLEEP_TIME.getParameterValue(connectionURL);\r\n+        int maxRetries = MAX_RETRIES.getParameterValue(connectionURL);\r\n+        int getMaxSleepMs = MAX_SLEEP.getParameterValue(connectionURL);\r\n+        return new ExponentialBackoffRetry(baseSleepTimeMs, maxRetries, getMaxSleepMs);\r\n+    }\r\n+\r\n+\r\n+    public static List<ServiceInstance> build(Collection<org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance>>\r\n+                                                      instances) {\r\n+        return instances.stream().map(CuratorFrameworkUtils::build).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public static ServiceInstance build(org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> instance) {\r\n+        String name = instance.getName();\r\n+        String host = instance.getAddress();\r\n+        int port = instance.getPort();\r\n+        ZookeeperInstance zookeeperInstance = instance.getPayload();\r\n+        DefaultServiceInstance serviceInstance = new DefaultServiceInstance(instance.getId(), name, host, port);\r\n+        serviceInstance.setMetadata(zookeeperInstance.getMetadata());\r\n+        return serviceInstance;\r\n+    }\r\n+\r\n+    public static org.apache.curator.x.discovery.ServiceInstance<ZookeeperInstance> build(ServiceInstance serviceInstance) {\r\n+        ServiceInstanceBuilder builder = null;\r\n+        String serviceName = serviceInstance.getServiceName();\r\n+        String host = serviceInstance.getHost();\r\n+        int port = serviceInstance.getPort();\r\n+        Map<String, String> metadata = serviceInstance.getMetadata();\r\n+        String id = generateId(host, port);\r\n+        ZookeeperInstance zookeeperInstance = new ZookeeperInstance(null, serviceName, metadata);\r\n+        try {\r\n+            builder = builder()\r\n+                    .id(id)\r\n+                    .name(serviceName)\r\n+                    .address(host)\r\n+                    .port(port)\r\n+                    .payload(zookeeperInstance);\r\n+        } catch (Exception e) {\r\n+            throw new RuntimeException(e);\r\n+        }\r\n+        return builder.build();\r\n+    }\r\n+\r\n+    public static final String generateId(String host, int port) {\r\n+        return host + \":\" + port;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/Channel.java", "source2": "org/apache/dubbo/remoting/Channel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,74 +1,74 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * Channel. (API/SPI, Prototype, ThreadSafe)\n- *\n- * @see org.apache.dubbo.remoting.Client\n- * @see RemotingServer#getChannels()\n- * @see RemotingServer#getChannel(InetSocketAddress)\n- */\n-public interface Channel extends Endpoint {\n-\n-    /**\n-     * get remote address.\n-     *\n-     * @return remote address.\n-     */\n-    InetSocketAddress getRemoteAddress();\n-\n-    /**\n-     * is connected.\n-     *\n-     * @return connected\n-     */\n-    boolean isConnected();\n-\n-    /**\n-     * has attribute.\n-     *\n-     * @param key key.\n-     * @return has or has not.\n-     */\n-    boolean hasAttribute(String key);\n-\n-    /**\n-     * get attribute.\n-     *\n-     * @param key key.\n-     * @return value.\n-     */\n-    Object getAttribute(String key);\n-\n-    /**\n-     * set attribute.\n-     *\n-     * @param key   key.\n-     * @param value value.\n-     */\n-    void setAttribute(String key, Object value);\n-\n-    /**\n-     * remove attribute.\n-     *\n-     * @param key key.\n-     */\n-    void removeAttribute(String key);\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * Channel. (API/SPI, Prototype, ThreadSafe)\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Client\r\n+ * @see RemotingServer#getChannels()\r\n+ * @see RemotingServer#getChannel(InetSocketAddress)\r\n+ */\r\n+public interface Channel extends Endpoint {\r\n+\r\n+    /**\r\n+     * get remote address.\r\n+     *\r\n+     * @return remote address.\r\n+     */\r\n+    InetSocketAddress getRemoteAddress();\r\n+\r\n+    /**\r\n+     * is connected.\r\n+     *\r\n+     * @return connected\r\n+     */\r\n+    boolean isConnected();\r\n+\r\n+    /**\r\n+     * has attribute.\r\n+     *\r\n+     * @param key key.\r\n+     * @return has or has not.\r\n+     */\r\n+    boolean hasAttribute(String key);\r\n+\r\n+    /**\r\n+     * get attribute.\r\n+     *\r\n+     * @param key key.\r\n+     * @return value.\r\n+     */\r\n+    Object getAttribute(String key);\r\n+\r\n+    /**\r\n+     * set attribute.\r\n+     *\r\n+     * @param key   key.\r\n+     * @param value value.\r\n+     */\r\n+    void setAttribute(String key, Object value);\r\n+\r\n+    /**\r\n+     * remove attribute.\r\n+     *\r\n+     * @param key key.\r\n+     */\r\n+    void removeAttribute(String key);\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Codec.java", "source2": "org/apache/dubbo/remoting/Codec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-/**\n- * Codec. (SPI, Singleton, ThreadSafe)\n- */\n-@Deprecated\n-@SPI\n-public interface Codec {\n-\n-    /**\n-     * Need more input poison.\n-     *\n-     * @see #decode(Channel, InputStream)\n-     */\n-    Object NEED_MORE_INPUT = new Object();\n-\n-    /**\n-     * Encode message.\n-     *\n-     * @param channel channel.\n-     * @param output  output stream.\n-     * @param message message.\n-     */\n-    @Adaptive({Constants.CODEC_KEY})\n-    void encode(Channel channel, OutputStream output, Object message) throws IOException;\n-\n-    /**\n-     * Decode message.\n-     *\n-     * @param channel channel.\n-     * @param input   input stream.\n-     * @return message or <code>NEED_MORE_INPUT</code> poison.\n-     * @see #NEED_MORE_INPUT\n-     */\n-    @Adaptive({Constants.CODEC_KEY})\n-    Object decode(Channel channel, InputStream input) throws IOException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Codec. (SPI, Singleton, ThreadSafe)\r\n+ */\r\n+@Deprecated\r\n+@SPI\r\n+public interface Codec {\r\n+\r\n+    /**\r\n+     * Need more input poison.\r\n+     *\r\n+     * @see #decode(Channel, InputStream)\r\n+     */\r\n+    Object NEED_MORE_INPUT = new Object();\r\n+\r\n+    /**\r\n+     * Encode message.\r\n+     *\r\n+     * @param channel channel.\r\n+     * @param output  output stream.\r\n+     * @param message message.\r\n+     */\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    void encode(Channel channel, OutputStream output, Object message) throws IOException;\r\n+\r\n+    /**\r\n+     * Decode message.\r\n+     *\r\n+     * @param channel channel.\r\n+     * @param input   input stream.\r\n+     * @return message or <code>NEED_MORE_INPUT</code> poison.\r\n+     * @see #NEED_MORE_INPUT\r\n+     */\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    Object decode(Channel channel, InputStream input) throws IOException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/Codec2.java", "source2": "org/apache/dubbo/remoting/Codec2.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-\n-import java.io.IOException;\n-\n-@SPI\n-public interface Codec2 {\n-\n-    @Adaptive({Constants.CODEC_KEY})\n-    void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException;\n-\n-    @Adaptive({Constants.CODEC_KEY})\n-    Object decode(Channel channel, ChannelBuffer buffer) throws IOException;\n-\n-\n-    enum DecodeResult {\n-        NEED_MORE_INPUT, SKIP_SOME_INPUT\n-    }\n-\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+@SPI\r\n+public interface Codec2 {\r\n+\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    void encode(Channel channel, ChannelBuffer buffer, Object message) throws IOException;\r\n+\r\n+    @Adaptive({Constants.CODEC_KEY})\r\n+    Object decode(Channel channel, ChannelBuffer buffer) throws IOException;\r\n+\r\n+\r\n+    enum DecodeResult {\r\n+        NEED_MORE_INPUT, SKIP_SOME_INPUT\r\n+    }\r\n+\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/remoting/Constants.java", "source2": "org/apache/dubbo/remoting/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,138 +1,138 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting;\n-\n-\n-public interface Constants {\n-\n-    String BUFFER_KEY = \"buffer\";\n-\n-    /**\n-     * default buffer size is 8k.\n-     */\n-    int DEFAULT_BUFFER_SIZE = 8 * 1024;\n-\n-    int MAX_BUFFER_SIZE = 16 * 1024;\n-\n-    int MIN_BUFFER_SIZE = 1 * 1024;\n-\n-    String IDLE_TIMEOUT_KEY = \"idle.timeout\";\n-\n-    int DEFAULT_IDLE_TIMEOUT = 600 * 1000;\n-    /**\n-     * max size of channel. default value is zero that means unlimited.\n-     */\n-    String ACCEPTS_KEY = \"accepts\";\n-\n-    int DEFAULT_ACCEPTS = 0;\n-\n-    String CONNECT_QUEUE_CAPACITY = \"connect.queue.capacity\";\n-\n-    String CONNECT_QUEUE_WARNING_SIZE = \"connect.queue.warning.size\";\n-\n-    int DEFAULT_CONNECT_QUEUE_WARNING_SIZE = 1000;\n-\n-    String CHARSET_KEY = \"charset\";\n-\n-    String DEFAULT_CHARSET = \"UTF-8\";\n-\n-    /**\n-     * Every heartbeat duration / HEARTBEAT_CHECK_TICK, check if a heartbeat should be sent. Every heartbeat timeout\n-     * duration / HEARTBEAT_CHECK_TICK, check if a connection should be closed on server side, and if reconnect on\n-     * client side\n-     */\n-    int HEARTBEAT_CHECK_TICK = 3;\n-\n-    /**\n-     * the least heartbeat during is 1000 ms.\n-     */\n-    long LEAST_HEARTBEAT_DURATION = 1000;\n-\n-    /**\n-     * ticks per wheel.\n-     */\n-    int TICKS_PER_WHEEL = 128;\n-    String PAYLOAD_KEY = \"payload\";\n-    /**\n-     * 8M\n-     */\n-    int DEFAULT_PAYLOAD = 8 * 1024 * 1024;\n-\n-    String CONNECT_TIMEOUT_KEY = \"connect.timeout\";\n-\n-    int DEFAULT_CONNECT_TIMEOUT = 3000;\n-\n-    String SERIALIZATION_KEY = \"serialization\";\n-\n-    String DEFAULT_REMOTING_SERIALIZATION = \"hessian2\";\n-\n-    String CODEC_KEY = \"codec\";\n-\n-    String CODEC_VERSION_KEY = \"codec.version\";\n-\n-    String SERVER_KEY = \"server\";\n-\n-    String CLIENT_KEY = \"client\";\n-\n-    String DEFAULT_REMOTING_CLIENT = \"netty\";\n-\n-    String TRANSPORTER_KEY = \"transporter\";\n-\n-    String DEFAULT_TRANSPORTER = \"netty\";\n-\n-    String EXCHANGER_KEY = \"exchanger\";\n-\n-    String DEFAULT_EXCHANGER = \"header\";\n-\n-    String DISPACTHER_KEY = \"dispacther\";\n-\n-    int DEFAULT_IO_THREADS = Math.min(Runtime.getRuntime().availableProcessors() + 1, 32);\n-\n-    String BIND_IP_KEY = \"bind.ip\";\n-\n-    String BIND_PORT_KEY = \"bind.port\";\n-\n-    String SENT_KEY = \"sent\";\n-\n-    String DISPATCHER_KEY = \"dispatcher\";\n-\n-    String CHANNEL_ATTRIBUTE_READONLY_KEY = \"channel.readonly\";\n-\n-    String CHANNEL_READONLYEVENT_SENT_KEY = \"channel.readonly.sent\";\n-\n-    String CHANNEL_SEND_READONLYEVENT_KEY = \"channel.readonly.send\";\n-\n-    String RECONNECT_KEY = \"reconnect\";\n-\n-    int DEFAULT_RECONNECT_PERIOD = 2000;\n-\n-    String SEND_RECONNECT_KEY = \"send.reconnect\";\n-\n-    String CHECK_KEY = \"check\";\n-\n-    String PROMPT_KEY = \"prompt\";\n-\n-    String DEFAULT_PROMPT = \"dubbo>\";\n-    String TELNET = \"telnet\";\n-    String HEARTBEAT_KEY = \"heartbeat\";\n-    int DEFAULT_HEARTBEAT = 60 * 1000;\n-    String HEARTBEAT_TIMEOUT_KEY = \"heartbeat.timeout\";\n-    String CONNECTIONS_KEY = \"connections\";\n-\n-    int DEFAULT_BACKLOG = 1024;\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+\r\n+public interface Constants {\r\n+\r\n+    String BUFFER_KEY = \"buffer\";\r\n+\r\n+    /**\r\n+     * default buffer size is 8k.\r\n+     */\r\n+    int DEFAULT_BUFFER_SIZE = 8 * 1024;\r\n+\r\n+    int MAX_BUFFER_SIZE = 16 * 1024;\r\n+\r\n+    int MIN_BUFFER_SIZE = 1 * 1024;\r\n+\r\n+    String IDLE_TIMEOUT_KEY = \"idle.timeout\";\r\n+\r\n+    int DEFAULT_IDLE_TIMEOUT = 600 * 1000;\r\n+    /**\r\n+     * max size of channel. default value is zero that means unlimited.\r\n+     */\r\n+    String ACCEPTS_KEY = \"accepts\";\r\n+\r\n+    int DEFAULT_ACCEPTS = 0;\r\n+\r\n+    String CONNECT_QUEUE_CAPACITY = \"connect.queue.capacity\";\r\n+\r\n+    String CONNECT_QUEUE_WARNING_SIZE = \"connect.queue.warning.size\";\r\n+\r\n+    int DEFAULT_CONNECT_QUEUE_WARNING_SIZE = 1000;\r\n+\r\n+    String CHARSET_KEY = \"charset\";\r\n+\r\n+    String DEFAULT_CHARSET = \"UTF-8\";\r\n+\r\n+    /**\r\n+     * Every heartbeat duration / HEARTBEAT_CHECK_TICK, check if a heartbeat should be sent. Every heartbeat timeout\r\n+     * duration / HEARTBEAT_CHECK_TICK, check if a connection should be closed on server side, and if reconnect on\r\n+     * client side\r\n+     */\r\n+    int HEARTBEAT_CHECK_TICK = 3;\r\n+\r\n+    /**\r\n+     * the least heartbeat during is 1000 ms.\r\n+     */\r\n+    long LEAST_HEARTBEAT_DURATION = 1000;\r\n+\r\n+    /**\r\n+     * ticks per wheel.\r\n+     */\r\n+    int TICKS_PER_WHEEL = 128;\r\n+    String PAYLOAD_KEY = \"payload\";\r\n+    /**\r\n+     * 8M\r\n+     */\r\n+    int DEFAULT_PAYLOAD = 8 * 1024 * 1024;\r\n+\r\n+    String CONNECT_TIMEOUT_KEY = \"connect.timeout\";\r\n+\r\n+    int DEFAULT_CONNECT_TIMEOUT = 3000;\r\n+\r\n+    String SERIALIZATION_KEY = \"serialization\";\r\n+\r\n+    String DEFAULT_REMOTING_SERIALIZATION = \"hessian2\";\r\n+\r\n+    String CODEC_KEY = \"codec\";\r\n+\r\n+    String CODEC_VERSION_KEY = \"codec.version\";\r\n+\r\n+    String SERVER_KEY = \"server\";\r\n+\r\n+    String CLIENT_KEY = \"client\";\r\n+\r\n+    String DEFAULT_REMOTING_CLIENT = \"netty\";\r\n+\r\n+    String TRANSPORTER_KEY = \"transporter\";\r\n+\r\n+    String DEFAULT_TRANSPORTER = \"netty\";\r\n+\r\n+    String EXCHANGER_KEY = \"exchanger\";\r\n+\r\n+    String DEFAULT_EXCHANGER = \"header\";\r\n+\r\n+    String DISPACTHER_KEY = \"dispacther\";\r\n+\r\n+    int DEFAULT_IO_THREADS = Math.min(Runtime.getRuntime().availableProcessors() + 1, 32);\r\n+\r\n+    String BIND_IP_KEY = \"bind.ip\";\r\n+\r\n+    String BIND_PORT_KEY = \"bind.port\";\r\n+\r\n+    String SENT_KEY = \"sent\";\r\n+\r\n+    String DISPATCHER_KEY = \"dispatcher\";\r\n+\r\n+    String CHANNEL_ATTRIBUTE_READONLY_KEY = \"channel.readonly\";\r\n+\r\n+    String CHANNEL_READONLYEVENT_SENT_KEY = \"channel.readonly.sent\";\r\n+\r\n+    String CHANNEL_SEND_READONLYEVENT_KEY = \"channel.readonly.send\";\r\n+\r\n+    String RECONNECT_KEY = \"reconnect\";\r\n+\r\n+    int DEFAULT_RECONNECT_PERIOD = 2000;\r\n+\r\n+    String SEND_RECONNECT_KEY = \"send.reconnect\";\r\n+\r\n+    String CHECK_KEY = \"check\";\r\n+\r\n+    String PROMPT_KEY = \"prompt\";\r\n+\r\n+    String DEFAULT_PROMPT = \"dubbo>\";\r\n+    String TELNET = \"telnet\";\r\n+    String HEARTBEAT_KEY = \"heartbeat\";\r\n+    int DEFAULT_HEARTBEAT = 60 * 1000;\r\n+    String HEARTBEAT_TIMEOUT_KEY = \"heartbeat.timeout\";\r\n+    String CONNECTIONS_KEY = \"connections\";\r\n+\r\n+    int DEFAULT_BACKLOG = 1024;\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Dispatcher.java", "source2": "org/apache/dubbo/remoting/Dispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher;\n-\n-/**\n- * ChannelHandlerWrapper (SPI, Singleton, ThreadSafe)\n- */\n-@SPI(AllDispatcher.NAME)\n-public interface Dispatcher {\n-\n-    /**\n-     * dispatch the message to threadpool.\n-     *\n-     * @param handler\n-     * @param url\n-     * @return channel handler\n-     */\n-    @Adaptive({Constants.DISPATCHER_KEY, \"dispather\", \"channel.handler\"})\n-    // The last two parameters are reserved for compatibility with the old configuration\n-    ChannelHandler dispatch(ChannelHandler handler, URL url);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.all.AllDispatcher;\r\n+\r\n+/**\r\n+ * ChannelHandlerWrapper (SPI, Singleton, ThreadSafe)\r\n+ */\r\n+@SPI(AllDispatcher.NAME)\r\n+public interface Dispatcher {\r\n+\r\n+    /**\r\n+     * dispatch the message to threadpool.\r\n+     *\r\n+     * @param handler\r\n+     * @param url\r\n+     * @return channel handler\r\n+     */\r\n+    @Adaptive({Constants.DISPATCHER_KEY, \"dispather\", \"channel.handler\"})\r\n+    // The last two parameters are reserved for compatibility with the old configuration\r\n+    ChannelHandler dispatch(ChannelHandler handler, URL url);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/IdleSensible.java", "source2": "org/apache/dubbo/remoting/IdleSensible.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-/**\n- * Indicate whether the implementation (for both server and client) has the ability to sense and handle idle connection.\n- * If the server has the ability to handle idle connection, it should close the connection when it happens, and if\n- * the client has the ability to handle idle connection, it should send the heartbeat to the server.\n- */\n-public interface IdleSensible {\n-    /**\n-     * Whether the implementation can sense and handle the idle connection. By default it's false, the implementation\n-     * relies on dedicated timer to take care of idle connection.\n-     *\n-     * @return whether has the ability to handle idle connection\n-     */\n-    default boolean canHandleIdle() {\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+/**\r\n+ * Indicate whether the implementation (for both server and client) has the ability to sense and handle idle connection.\r\n+ * If the server has the ability to handle idle connection, it should close the connection when it happens, and if\r\n+ * the client has the ability to handle idle connection, it should send the heartbeat to the server.\r\n+ */\r\n+public interface IdleSensible {\r\n+    /**\r\n+     * Whether the implementation can sense and handle the idle connection. By default it's false, the implementation\r\n+     * relies on dedicated timer to take care of idle connection.\r\n+     *\r\n+     * @return whether has the ability to handle idle connection\r\n+     */\r\n+    default boolean canHandleIdle() {\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/RemotingException.java", "source2": "org/apache/dubbo/remoting/RemotingException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,84 +1,84 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * RemotingException. (API, Prototype, ThreadSafe)\n- *\n- * @export\n- * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\n- * @see org.apache.dubbo.remoting.Channel#send(Object, boolean)\n- * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object)\n- * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object, int)\n- * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\n- * @see org.apache.dubbo.remoting.Transporter#connect(org.apache.dubbo.common.URL, ChannelHandler)\n- */\n-public class RemotingException extends Exception {\n-\n-    private static final long serialVersionUID = -3160452149606778709L;\n-\n-    private InetSocketAddress localAddress;\n-\n-    private InetSocketAddress remoteAddress;\n-\n-    public RemotingException(Channel channel, String msg) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                msg);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\n-        super(message);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public RemotingException(Channel channel, Throwable cause) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\n-        super(cause);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public RemotingException(Channel channel, String message, Throwable cause) {\n-        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\n-                message, cause);\n-    }\n-\n-    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message,\n-                             Throwable cause) {\n-        super(message, cause);\n-\n-        this.localAddress = localAddress;\n-        this.remoteAddress = remoteAddress;\n-    }\n-\n-    public InetSocketAddress getLocalAddress() {\n-        return localAddress;\n-    }\n-\n-    public InetSocketAddress getRemoteAddress() {\n-        return remoteAddress;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * RemotingException. (API, Prototype, ThreadSafe)\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\r\n+ * @see org.apache.dubbo.remoting.Channel#send(Object, boolean)\r\n+ * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object)\r\n+ * @see org.apache.dubbo.remoting.exchange.ExchangeChannel#request(Object, int)\r\n+ * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ * @see org.apache.dubbo.remoting.Transporter#connect(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ */\r\n+public class RemotingException extends Exception {\r\n+\r\n+    private static final long serialVersionUID = -3160452149606778709L;\r\n+\r\n+    private InetSocketAddress localAddress;\r\n+\r\n+    private InetSocketAddress remoteAddress;\r\n+\r\n+    public RemotingException(Channel channel, String msg) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                msg);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message) {\r\n+        super(message);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, Throwable cause) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, Throwable cause) {\r\n+        super(cause);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public RemotingException(Channel channel, String message, Throwable cause) {\r\n+        this(channel == null ? null : channel.getLocalAddress(), channel == null ? null : channel.getRemoteAddress(),\r\n+                message, cause);\r\n+    }\r\n+\r\n+    public RemotingException(InetSocketAddress localAddress, InetSocketAddress remoteAddress, String message,\r\n+                             Throwable cause) {\r\n+        super(message, cause);\r\n+\r\n+        this.localAddress = localAddress;\r\n+        this.remoteAddress = remoteAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return localAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return remoteAddress;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/RemotingServer.java", "source2": "org/apache/dubbo/remoting/RemotingServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.Resetable;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-\n-/**\n- * Remoting Server. (API/SPI, Prototype, ThreadSafe)\n- * <p>\n- * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\n- *\n- * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\n- */\n-public interface RemotingServer extends Endpoint, Resetable, IdleSensible {\n-\n-    /**\n-     * is bound.\n-     *\n-     * @return bound\n-     */\n-    boolean isBound();\n-\n-    /**\n-     * get channels.\n-     *\n-     * @return channels\n-     */\n-    Collection<Channel> getChannels();\n-\n-    /**\n-     * get channel.\n-     *\n-     * @param remoteAddress\n-     * @return channel\n-     */\n-    Channel getChannel(InetSocketAddress remoteAddress);\n-\n-    @Deprecated\n-    void reset(org.apache.dubbo.common.Parameters parameters);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.Resetable;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+\r\n+/**\r\n+ * Remoting Server. (API/SPI, Prototype, ThreadSafe)\r\n+ * <p>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Transporter#bind(org.apache.dubbo.common.URL, ChannelHandler)\r\n+ */\r\n+public interface RemotingServer extends Endpoint, Resetable, IdleSensible {\r\n+\r\n+    /**\r\n+     * is bound.\r\n+     *\r\n+     * @return bound\r\n+     */\r\n+    boolean isBound();\r\n+\r\n+    /**\r\n+     * get channels.\r\n+     *\r\n+     * @return channels\r\n+     */\r\n+    Collection<Channel> getChannels();\r\n+\r\n+    /**\r\n+     * get channel.\r\n+     *\r\n+     * @param remoteAddress\r\n+     * @return channel\r\n+     */\r\n+    Channel getChannel(InetSocketAddress remoteAddress);\r\n+\r\n+    @Deprecated\r\n+    void reset(org.apache.dubbo.common.Parameters parameters);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/TimeoutException.java", "source2": "org/apache/dubbo/remoting/TimeoutException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import java.net.InetSocketAddress;\n-\n-/**\n- * TimeoutException. (API, Prototype, ThreadSafe)\n- *\n- * @export\n- * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\n- */\n-public class TimeoutException extends RemotingException {\n-\n-    public static final int CLIENT_SIDE = 0;\n-    public static final int SERVER_SIDE = 1;\n-    private static final long serialVersionUID = 3122966731958222692L;\n-    private final int phase;\n-\n-    public TimeoutException(boolean serverSide, Channel channel, String message) {\n-        super(channel, message);\n-        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\n-    }\n-\n-    public TimeoutException(boolean serverSide, InetSocketAddress localAddress,\n-                            InetSocketAddress remoteAddress, String message) {\n-        super(localAddress, remoteAddress, message);\n-        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\n-    }\n-\n-    public int getPhase() {\n-        return phase;\n-    }\n-\n-    public boolean isServerSide() {\n-        return phase == 1;\n-    }\n-\n-    public boolean isClientSide() {\n-        return phase == 0;\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+/**\r\n+ * TimeoutException. (API, Prototype, ThreadSafe)\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.remoting.exchange.support.DefaultFuture#get()\r\n+ */\r\n+public class TimeoutException extends RemotingException {\r\n+\r\n+    public static final int CLIENT_SIDE = 0;\r\n+    public static final int SERVER_SIDE = 1;\r\n+    private static final long serialVersionUID = 3122966731958222692L;\r\n+    private final int phase;\r\n+\r\n+    public TimeoutException(boolean serverSide, Channel channel, String message) {\r\n+        super(channel, message);\r\n+        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\r\n+    }\r\n+\r\n+    public TimeoutException(boolean serverSide, InetSocketAddress localAddress,\r\n+                            InetSocketAddress remoteAddress, String message) {\r\n+        super(localAddress, remoteAddress, message);\r\n+        this.phase = serverSide ? SERVER_SIDE : CLIENT_SIDE;\r\n+    }\r\n+\r\n+    public int getPhase() {\r\n+        return phase;\r\n+    }\r\n+\r\n+    public boolean isServerSide() {\r\n+        return phase == 1;\r\n+    }\r\n+\r\n+    public boolean isClientSide() {\r\n+        return phase == 0;\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/Transporter.java", "source2": "org/apache/dubbo/remoting/Transporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Transporter. (SPI, Singleton, ThreadSafe)\n- * <p>\n- * <a href=\"http://en.wikipedia.org/wiki/Transport_Layer\">Transport Layer</a>\n- * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\n- *\n- * @see org.apache.dubbo.remoting.Transporters\n- */\n-@SPI(\"netty\")\n-public interface Transporter {\n-\n-    /**\n-     * Bind a server.\n-     *\n-     * @param url     server url\n-     * @param handler\n-     * @return server\n-     * @throws RemotingException\n-     * @see org.apache.dubbo.remoting.Transporters#bind(URL, ChannelHandler...)\n-     */\n-    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\n-    RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException;\n-\n-    /**\n-     * Connect to a server.\n-     *\n-     * @param url     server url\n-     * @param handler\n-     * @return client\n-     * @throws RemotingException\n-     * @see org.apache.dubbo.remoting.Transporters#connect(URL, ChannelHandler...)\n-     */\n-    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\n-    Client connect(URL url, ChannelHandler handler) throws RemotingException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Transporter. (SPI, Singleton, ThreadSafe)\r\n+ * <p>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Transport_Layer\">Transport Layer</a>\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Client%E2%80%93server_model\">Client/Server</a>\r\n+ *\r\n+ * @see org.apache.dubbo.remoting.Transporters\r\n+ */\r\n+@SPI(\"netty\")\r\n+public interface Transporter {\r\n+\r\n+    /**\r\n+     * Bind a server.\r\n+     *\r\n+     * @param url     server url\r\n+     * @param handler\r\n+     * @return server\r\n+     * @throws RemotingException\r\n+     * @see org.apache.dubbo.remoting.Transporters#bind(URL, ChannelHandler...)\r\n+     */\r\n+    @Adaptive({Constants.SERVER_KEY, Constants.TRANSPORTER_KEY})\r\n+    RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException;\r\n+\r\n+    /**\r\n+     * Connect to a server.\r\n+     *\r\n+     * @param url     server url\r\n+     * @param handler\r\n+     * @return client\r\n+     * @throws RemotingException\r\n+     * @see org.apache.dubbo.remoting.Transporters#connect(URL, ChannelHandler...)\r\n+     */\r\n+    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\r\n+    Client connect(URL url, ChannelHandler handler) throws RemotingException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java", "source2": "org/apache/dubbo/remoting/buffer/AbstractChannelBuffer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,341 +1,341 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.buffer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.nio.ByteBuffer;\n-\n-public abstract class AbstractChannelBuffer implements ChannelBuffer {\n-\n-    private int readerIndex;\n-\n-    private int writerIndex;\n-\n-    private int markedReaderIndex;\n-\n-    private int markedWriterIndex;\n-\n-    @Override\n-    public int readerIndex() {\n-        return readerIndex;\n-    }\n-\n-    @Override\n-    public void readerIndex(int readerIndex) {\n-        if (readerIndex < 0 || readerIndex > writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.readerIndex = readerIndex;\n-    }\n-\n-    @Override\n-    public int writerIndex() {\n-        return writerIndex;\n-    }\n-\n-    @Override\n-    public void writerIndex(int writerIndex) {\n-        if (writerIndex < readerIndex || writerIndex > capacity()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.writerIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void setIndex(int readerIndex, int writerIndex) {\n-        if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        this.readerIndex = readerIndex;\n-        this.writerIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void clear() {\n-        readerIndex = writerIndex = 0;\n-    }\n-\n-    @Override\n-    public boolean readable() {\n-        return readableBytes() > 0;\n-    }\n-\n-    @Override\n-    public boolean writable() {\n-        return writableBytes() > 0;\n-    }\n-\n-    @Override\n-    public int readableBytes() {\n-        return writerIndex - readerIndex;\n-    }\n-\n-    @Override\n-    public int writableBytes() {\n-        return capacity() - writerIndex;\n-    }\n-\n-    @Override\n-    public void markReaderIndex() {\n-        markedReaderIndex = readerIndex;\n-    }\n-\n-    @Override\n-    public void resetReaderIndex() {\n-        readerIndex(markedReaderIndex);\n-    }\n-\n-    @Override\n-    public void markWriterIndex() {\n-        markedWriterIndex = writerIndex;\n-    }\n-\n-    @Override\n-    public void resetWriterIndex() {\n-        writerIndex = markedWriterIndex;\n-    }\n-\n-    @Override\n-    public void discardReadBytes() {\n-        if (readerIndex == 0) {\n-            return;\n-        }\n-        setBytes(0, this, readerIndex, writerIndex - readerIndex);\n-        writerIndex -= readerIndex;\n-        markedReaderIndex = Math.max(markedReaderIndex - readerIndex, 0);\n-        markedWriterIndex = Math.max(markedWriterIndex - readerIndex, 0);\n-        readerIndex = 0;\n-    }\n-\n-    @Override\n-    public void ensureWritableBytes(int writableBytes) {\n-        if (writableBytes > writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-    }\n-\n-    @Override\n-    public void getBytes(int index, byte[] dst) {\n-        getBytes(index, dst, 0, dst.length);\n-    }\n-\n-    @Override\n-    public void getBytes(int index, ChannelBuffer dst) {\n-        getBytes(index, dst, dst.writableBytes());\n-    }\n-\n-    @Override\n-    public void getBytes(int index, ChannelBuffer dst, int length) {\n-        if (length > dst.writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        getBytes(index, dst, dst.writerIndex(), length);\n-        dst.writerIndex(dst.writerIndex() + length);\n-    }\n-\n-    @Override\n-    public void setBytes(int index, byte[] src) {\n-        setBytes(index, src, 0, src.length);\n-    }\n-\n-    @Override\n-    public void setBytes(int index, ChannelBuffer src) {\n-        setBytes(index, src, src.readableBytes());\n-    }\n-\n-    @Override\n-    public void setBytes(int index, ChannelBuffer src, int length) {\n-        if (length > src.readableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        setBytes(index, src, src.readerIndex(), length);\n-        src.readerIndex(src.readerIndex() + length);\n-    }\n-\n-    @Override\n-    public byte readByte() {\n-        if (readerIndex == writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        return getByte(readerIndex++);\n-    }\n-\n-    @Override\n-    public ChannelBuffer readBytes(int length) {\n-        checkReadableBytes(length);\n-        if (length == 0) {\n-            return ChannelBuffers.EMPTY_BUFFER;\n-        }\n-        ChannelBuffer buf = factory().getBuffer(length);\n-        buf.writeBytes(this, readerIndex, length);\n-        readerIndex += length;\n-        return buf;\n-    }\n-\n-    @Override\n-    public void readBytes(byte[] dst, int dstIndex, int length) {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst, dstIndex, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(byte[] dst) {\n-        readBytes(dst, 0, dst.length);\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst) {\n-        readBytes(dst, dst.writableBytes());\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst, int length) {\n-        if (length > dst.writableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        readBytes(dst, dst.writerIndex(), length);\n-        dst.writerIndex(dst.writerIndex() + length);\n-    }\n-\n-    @Override\n-    public void readBytes(ChannelBuffer dst, int dstIndex, int length) {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst, dstIndex, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(ByteBuffer dst) {\n-        int length = dst.remaining();\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, dst);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void readBytes(OutputStream out, int length) throws IOException {\n-        checkReadableBytes(length);\n-        getBytes(readerIndex, out, length);\n-        readerIndex += length;\n-    }\n-\n-    @Override\n-    public void skipBytes(int length) {\n-        int newReaderIndex = readerIndex + length;\n-        if (newReaderIndex > writerIndex) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        readerIndex = newReaderIndex;\n-    }\n-\n-    @Override\n-    public void writeByte(int value) {\n-        setByte(writerIndex++, value);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] src, int srcIndex, int length) {\n-        setBytes(writerIndex, src, srcIndex, length);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] src) {\n-        writeBytes(src, 0, src.length);\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src) {\n-        writeBytes(src, src.readableBytes());\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src, int length) {\n-        if (length > src.readableBytes()) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        writeBytes(src, src.readerIndex(), length);\n-        src.readerIndex(src.readerIndex() + length);\n-    }\n-\n-    @Override\n-    public void writeBytes(ChannelBuffer src, int srcIndex, int length) {\n-        setBytes(writerIndex, src, srcIndex, length);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public void writeBytes(ByteBuffer src) {\n-        int length = src.remaining();\n-        setBytes(writerIndex, src);\n-        writerIndex += length;\n-    }\n-\n-    @Override\n-    public int writeBytes(InputStream in, int length) throws IOException {\n-        int writtenBytes = setBytes(writerIndex, in, length);\n-        if (writtenBytes > 0) {\n-            writerIndex += writtenBytes;\n-        }\n-        return writtenBytes;\n-    }\n-\n-    @Override\n-    public ChannelBuffer copy() {\n-        return copy(readerIndex, readableBytes());\n-    }\n-\n-    @Override\n-    public ByteBuffer toByteBuffer() {\n-        return toByteBuffer(readerIndex, readableBytes());\n-    }\n-\n-    @Override\n-    public boolean equals(Object o) {\n-        return o instanceof ChannelBuffer\n-                && ChannelBuffers.equals(this, (ChannelBuffer) o);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        return ChannelBuffers.hasCode(this);\n-    }\n-\n-    @Override\n-    public int compareTo(ChannelBuffer that) {\n-        return ChannelBuffers.compare(this, that);\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getClass().getSimpleName() + '(' +\n-                \"ridx=\" + readerIndex + \", \" +\n-                \"widx=\" + writerIndex + \", \" +\n-                \"cap=\" + capacity() +\n-                ')';\n-    }\n-\n-    protected void checkReadableBytes(int minimumReadableBytes) {\n-        if (readableBytes() < minimumReadableBytes) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.buffer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.nio.ByteBuffer;\r\n+\r\n+public abstract class AbstractChannelBuffer implements ChannelBuffer {\r\n+\r\n+    private int readerIndex;\r\n+\r\n+    private int writerIndex;\r\n+\r\n+    private int markedReaderIndex;\r\n+\r\n+    private int markedWriterIndex;\r\n+\r\n+    @Override\r\n+    public int readerIndex() {\r\n+        return readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readerIndex(int readerIndex) {\r\n+        if (readerIndex < 0 || readerIndex > writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.readerIndex = readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writerIndex() {\r\n+        return writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writerIndex(int writerIndex) {\r\n+        if (writerIndex < readerIndex || writerIndex > capacity()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.writerIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setIndex(int readerIndex, int writerIndex) {\r\n+        if (readerIndex < 0 || readerIndex > writerIndex || writerIndex > capacity()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        this.readerIndex = readerIndex;\r\n+        this.writerIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void clear() {\r\n+        readerIndex = writerIndex = 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readable() {\r\n+        return readableBytes() > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean writable() {\r\n+        return writableBytes() > 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readableBytes() {\r\n+        return writerIndex - readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writableBytes() {\r\n+        return capacity() - writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void markReaderIndex() {\r\n+        markedReaderIndex = readerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void resetReaderIndex() {\r\n+        readerIndex(markedReaderIndex);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void markWriterIndex() {\r\n+        markedWriterIndex = writerIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void resetWriterIndex() {\r\n+        writerIndex = markedWriterIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void discardReadBytes() {\r\n+        if (readerIndex == 0) {\r\n+            return;\r\n+        }\r\n+        setBytes(0, this, readerIndex, writerIndex - readerIndex);\r\n+        writerIndex -= readerIndex;\r\n+        markedReaderIndex = Math.max(markedReaderIndex - readerIndex, 0);\r\n+        markedWriterIndex = Math.max(markedWriterIndex - readerIndex, 0);\r\n+        readerIndex = 0;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void ensureWritableBytes(int writableBytes) {\r\n+        if (writableBytes > writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, byte[] dst) {\r\n+        getBytes(index, dst, 0, dst.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, ChannelBuffer dst) {\r\n+        getBytes(index, dst, dst.writableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void getBytes(int index, ChannelBuffer dst, int length) {\r\n+        if (length > dst.writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        getBytes(index, dst, dst.writerIndex(), length);\r\n+        dst.writerIndex(dst.writerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, byte[] src) {\r\n+        setBytes(index, src, 0, src.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, ChannelBuffer src) {\r\n+        setBytes(index, src, src.readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setBytes(int index, ChannelBuffer src, int length) {\r\n+        if (length > src.readableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        setBytes(index, src, src.readerIndex(), length);\r\n+        src.readerIndex(src.readerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() {\r\n+        if (readerIndex == writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        return getByte(readerIndex++);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelBuffer readBytes(int length) {\r\n+        checkReadableBytes(length);\r\n+        if (length == 0) {\r\n+            return ChannelBuffers.EMPTY_BUFFER;\r\n+        }\r\n+        ChannelBuffer buf = factory().getBuffer(length);\r\n+        buf.writeBytes(this, readerIndex, length);\r\n+        readerIndex += length;\r\n+        return buf;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(byte[] dst, int dstIndex, int length) {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst, dstIndex, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(byte[] dst) {\r\n+        readBytes(dst, 0, dst.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst) {\r\n+        readBytes(dst, dst.writableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst, int length) {\r\n+        if (length > dst.writableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        readBytes(dst, dst.writerIndex(), length);\r\n+        dst.writerIndex(dst.writerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ChannelBuffer dst, int dstIndex, int length) {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst, dstIndex, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(ByteBuffer dst) {\r\n+        int length = dst.remaining();\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, dst);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void readBytes(OutputStream out, int length) throws IOException {\r\n+        checkReadableBytes(length);\r\n+        getBytes(readerIndex, out, length);\r\n+        readerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void skipBytes(int length) {\r\n+        int newReaderIndex = readerIndex + length;\r\n+        if (newReaderIndex > writerIndex) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        readerIndex = newReaderIndex;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(int value) {\r\n+        setByte(writerIndex++, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] src, int srcIndex, int length) {\r\n+        setBytes(writerIndex, src, srcIndex, length);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] src) {\r\n+        writeBytes(src, 0, src.length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src) {\r\n+        writeBytes(src, src.readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src, int length) {\r\n+        if (length > src.readableBytes()) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        writeBytes(src, src.readerIndex(), length);\r\n+        src.readerIndex(src.readerIndex() + length);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ChannelBuffer src, int srcIndex, int length) {\r\n+        setBytes(writerIndex, src, srcIndex, length);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(ByteBuffer src) {\r\n+        int length = src.remaining();\r\n+        setBytes(writerIndex, src);\r\n+        writerIndex += length;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int writeBytes(InputStream in, int length) throws IOException {\r\n+        int writtenBytes = setBytes(writerIndex, in, length);\r\n+        if (writtenBytes > 0) {\r\n+            writerIndex += writtenBytes;\r\n+        }\r\n+        return writtenBytes;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelBuffer copy() {\r\n+        return copy(readerIndex, readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public ByteBuffer toByteBuffer() {\r\n+        return toByteBuffer(readerIndex, readableBytes());\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object o) {\r\n+        return o instanceof ChannelBuffer\r\n+                && ChannelBuffers.equals(this, (ChannelBuffer) o);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        return ChannelBuffers.hasCode(this);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int compareTo(ChannelBuffer that) {\r\n+        return ChannelBuffers.compare(this, that);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getClass().getSimpleName() + '(' +\r\n+                \"ridx=\" + readerIndex + \", \" +\r\n+                \"widx=\" + writerIndex + \", \" +\r\n+                \"cap=\" + capacity() +\r\n+                ')';\r\n+    }\r\n+\r\n+    protected void checkReadableBytes(int minimumReadableBytes) {\r\n+        if (readableBytes() < minimumReadableBytes) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/ChannelBuffer.java", "source2": "org/apache/dubbo/remoting/buffer/ChannelBuffer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,951 +1,951 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.buffer;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.nio.ByteBuffer;\n-\n-/**\n- * A random and sequential accessible sequence of zero or more bytes (octets).\n- * This interface provides an abstract view for one or more primitive byte\n- * arrays ({@code byte[]}) and {@linkplain ByteBuffer NIO buffers}.\n- * <p/>\n- * <h3>Creation of a buffer</h3>\n- * <p/>\n- * It is recommended to create a new buffer using the helper methods in {@link\n- * ChannelBuffers} rather than calling an individual implementation's\n- * constructor.\n- * <p/>\n- * <h3>Random Access Indexing</h3>\n- * <p/>\n- * Just like an ordinary primitive byte array, {@link ChannelBuffer} uses <a\n- * href=\"http://en.wikipedia.org/wiki/Index_(information_technology)#Array_element_identifier\">zero-based\n- * indexing</a>. It means the index of the first byte is always {@code 0} and\n- * the index of the last byte is always {@link #capacity() capacity - 1}.  For\n- * example, to iterate all bytes of a buffer, you can do the following,\n- * regardless of its internal implementation:\n- * <p/>\n- * <pre>\n- * {@link ChannelBuffer} buffer = ...;\n- * for (int i = 0; i &lt; buffer.capacity(); i ++</strong>) {\n- *     byte b = buffer.getByte(i);\n- *     System.out.println((char) b);\n- * }\n- * </pre>\n- * <p/>\n- * <h3>Sequential Access Indexing</h3>\n- * <p/>\n- * {@link ChannelBuffer} provides two pointer variables to support sequential\n- * read and write operations - {@link #readerIndex() readerIndex} for a read\n- * operation and {@link #writerIndex() writerIndex} for a write operation\n- * respectively.  The following diagram shows how a buffer is segmented into\n- * three areas by the two pointers:\n- * <p/>\n- * <pre>\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      |                   |     (CONTENT)    |                  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- * </pre>\n- * <p/>\n- * <h4>Readable bytes (the actual content)</h4>\n- * <p/>\n- * This segment is where the actual data is stored.  Any operation whose name\n- * starts with {@code read} or {@code skip} will get or skip the data at the\n- * current {@link #readerIndex() readerIndex} and increase it by the number of\n- * read bytes.  If the argument of the read operation is also a {@link\n- * ChannelBuffer} and no destination index is specified, the specified buffer's\n- * {@link #readerIndex() readerIndex} is increased together.\n- * <p/>\n- * If there's not enough content left, {@link IndexOutOfBoundsException} is\n- * raised.  The default value of newly allocated, wrapped or copied buffer's\n- * {@link #readerIndex() readerIndex} is {@code 0}.\n- * <p/>\n- * <pre>\n- * // Iterates the readable bytes of a buffer.\n- * {@link ChannelBuffer} buffer = ...;\n- * while (buffer.readable()) {\n- *     System.out.println(buffer.readByte());\n- * }\n- * </pre>\n- * <p/>\n- * <h4>Writable bytes</h4>\n- * <p/>\n- * This segment is a undefined space which needs to be filled.  Any operation\n- * whose name ends with {@code write} will write the data at the current {@link\n- * #writerIndex() writerIndex} and increase it by the number of written bytes.\n- * If the argument of the write operation is also a {@link ChannelBuffer}, and\n- * no source index is specified, the specified buffer's {@link #readerIndex()\n- * readerIndex} is increased together.\n- * <p/>\n- * If there's not enough writable bytes left, {@link IndexOutOfBoundsException}\n- * is raised.  The default value of newly allocated buffer's {@link\n- * #writerIndex() writerIndex} is {@code 0}.  The default value of wrapped or\n- * copied buffer's {@link #writerIndex() writerIndex} is the {@link #capacity()\n- * capacity} of the buffer.\n- * <p/>\n- * <pre>\n- * // Fills the writable bytes of a buffer with random integers.\n- * {@link ChannelBuffer} buffer = ...;\n- * while (buffer.writableBytes() >= 4) {\n- *     buffer.writeInt(random.nextInt());\n- * }\n- * </pre>\n- * <p/>\n- * <h4>Discardable bytes</h4>\n- * <p/>\n- * This segment contains the bytes which were read already by a read operation.\n- * Initially, the size of this segment is {@code 0}, but its size increases up\n- * to the {@link #writerIndex() writerIndex} as read operations are executed.\n- * The read bytes can be discarded by calling {@link #discardReadBytes()} to\n- * reclaim unused area as depicted by the following diagram:\n- * <p/>\n- * <pre>\n- *  BEFORE discardReadBytes()\n- *\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- *\n- *\n- *  AFTER discardReadBytes()\n- *\n- *      +------------------+--------------------------------------+\n- *      |  readable bytes  |    writable bytes (got more space)   |\n- *      +------------------+--------------------------------------+\n- *      |                  |                                      |\n- * readerIndex (0) <= writerIndex (decreased)        <=        capacity\n- * </pre>\n- * <p/>\n- * Please note that there is no guarantee about the content of writable bytes\n- * after calling {@link #discardReadBytes()}.  The writable bytes will not be\n- * moved in most cases and could even be filled with completely different data\n- * depending on the underlying buffer implementation.\n- * <p/>\n- * <h4>Clearing the buffer indexes</h4>\n- * <p/>\n- * You can set both {@link #readerIndex() readerIndex} and {@link #writerIndex()\n- * writerIndex} to {@code 0} by calling {@link #clear()}. It does not clear the\n- * buffer content (e.g. filling with {@code 0}) but just clears the two\n- * pointers.  Please also note that the semantic of this operation is different\n- * from {@link ByteBuffer#clear()}.\n- * <p/>\n- * <pre>\n- *  BEFORE clear()\n- *\n- *      +-------------------+------------------+------------------+\n- *      | discardable bytes |  readable bytes  |  writable bytes  |\n- *      +-------------------+------------------+------------------+\n- *      |                   |                  |                  |\n- *      0      <=      readerIndex   <=   writerIndex    <=    capacity\n- *\n- *\n- *  AFTER clear()\n- *\n- *      +---------------------------------------------------------+\n- *      |             writable bytes (got more space)             |\n- *      +---------------------------------------------------------+\n- *      |                                                         |\n- *      0 = readerIndex = writerIndex            <=            capacity\n- * </pre>\n- * <p/>\n- * <h3>Mark and reset</h3>\n- * <p/>\n- * There are two marker indexes in every buffer. One is for storing {@link\n- * #readerIndex() readerIndex} and the other is for storing {@link\n- * #writerIndex() writerIndex}.  You can always reposition one of the two\n- * indexes by calling a reset method.  It works in a similar fashion to the mark\n- * and reset methods in {@link InputStream} except that there's no {@code\n- * readlimit}.\n- * <p/>\n- * <h3>Conversion to existing JDK types</h3>\n- * <p/>\n- * <h4>Byte array</h4>\n- * <p/>\n- * If a {@link ChannelBuffer} is backed by a byte array (i.e. {@code byte[]}),\n- * you can access it directly via the {@link #array()} method.  To determine if\n- * a buffer is backed by a byte array, {@link #hasArray()} should be used.\n- * <p/>\n- * <h4>NIO Buffers</h4>\n- * <p/>\n- * Various {@link #toByteBuffer()}  methods convert a {@link ChannelBuffer} into\n- * one or more NIO buffers.  These methods avoid buffer allocation and memory\n- * copy whenever possible, but there's no guarantee that memory copy will not be\n- * involved.\n- * <p/>\n- * <h4>I/O Streams</h4>\n- * <p/>\n- * Please refer to {@link ChannelBufferInputStream} and {@link\n- * ChannelBufferOutputStream}.\n- *\n- *\n- */\n-public interface ChannelBuffer extends Comparable<ChannelBuffer> {\n-\n-    /**\n-     * Returns the number of bytes (octets) this buffer can contain.\n-     */\n-    int capacity();\n-\n-    /**\n-     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer to\n-     * {@code 0}. This method is identical to {@link #setIndex(int, int)\n-     * setIndex(0, 0)}.\n-     * <p/>\n-     * Please note that the behavior of this method is different from that of\n-     * NIO buffer, which sets the {@code limit} to the {@code capacity} of the\n-     * buffer.\n-     */\n-    void clear();\n-\n-    /**\n-     * Returns a copy of this buffer's readable bytes.  Modifying the content of\n-     * the returned buffer or this buffer does not affect each other at all.\n-     * This method is identical to {@code buf.copy(buf.readerIndex(),\n-     * buf.readableBytes())}. This method does not modify {@code readerIndex} or\n-     * {@code writerIndex} of this buffer.\n-     */\n-    ChannelBuffer copy();\n-\n-    /**\n-     * Returns a copy of this buffer's sub-region.  Modifying the content of the\n-     * returned buffer or this buffer does not affect each other at all. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     */\n-    ChannelBuffer copy(int index, int length);\n-\n-    /**\n-     * Discards the bytes between the 0th index and {@code readerIndex}. It\n-     * moves the bytes between {@code readerIndex} and {@code writerIndex} to\n-     * the 0th index, and sets {@code readerIndex} and {@code writerIndex} to\n-     * {@code 0} and {@code oldWriterIndex - oldReaderIndex} respectively.\n-     * <p/>\n-     * Please refer to the class documentation for more detailed explanation.\n-     */\n-    void discardReadBytes();\n-\n-    /**\n-     * Makes sure the number of {@linkplain #writableBytes() the writable bytes}\n-     * is equal to or greater than the specified value.  If there is enough\n-     * writable bytes in this buffer, this method returns with no side effect.\n-     * Otherwise: <ul> <li>a non-dynamic buffer will throw an {@link\n-     * IndexOutOfBoundsException}.</li> <li>a dynamic buffer will expand its\n-     * capacity so that the number of the {@link #writableBytes() writable\n-     * bytes} becomes equal to or greater than the specified value. The\n-     * expansion involves the reallocation of the internal buffer and\n-     * consequently memory copy.</li> </ul>\n-     *\n-     * @param writableBytes the expected minimum number of writable bytes\n-     * @throws IndexOutOfBoundsException if {@linkplain #writableBytes() the\n-     *                                   writable bytes} of this buffer is less\n-     *                                   than the specified value and if this\n-     *                                   buffer is not a dynamic buffer\n-     */\n-    void ensureWritableBytes(int writableBytes);\n-\n-    /**\n-     * Determines if the content of the specified buffer is identical to the\n-     * content of this array.  'Identical' here means: <ul> <li>the size of the\n-     * contents of the two buffers are same and</li> <li>every single byte of\n-     * the content of the two buffers are same.</li> </ul> Please note that it\n-     * does not compare {@link #readerIndex()} nor {@link #writerIndex()}.  This\n-     * method also returns {@code false} for {@code null} and an object which is\n-     * not an instance of {@link ChannelBuffer} type.\n-     */\n-    @Override\n-    boolean equals(Object o);\n-\n-    /**\n-     * Returns the factory which creates a {@link ChannelBuffer} whose type and\n-     * default {@link java.nio.ByteOrder} are same with this buffer.\n-     */\n-    ChannelBufferFactory factory();\n-\n-    /**\n-     * Gets a byte at the specified absolute {@code index} in this buffer. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or {@code index + 1} is\n-     *                                   greater than {@code this.capacity}\n-     */\n-    byte getByte(int index);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.length} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void getBytes(int index, byte[] dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   dstIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   dstIndex + length} is greater than\n-     *                                   {@code dst.length}\n-     */\n-    void getBytes(int index, byte[] dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index} until the destination's position reaches\n-     * its limit. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of this buffer while the destination's {@code position} will\n-     * be increased.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.remaining()} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void getBytes(int index, ByteBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index} until the destination becomes\n-     * non-writable.  This method is basically same with {@link #getBytes(int,\n-     * ChannelBuffer, int, int)}, except that this method increases the {@code\n-     * writerIndex} of the destination by the number of the transferred bytes\n-     * while {@link #getBytes(int, ChannelBuffer, int, int)} does not. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of the\n-     * source buffer (i.e. {@code this}).\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   dst.writableBytes} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void getBytes(int index, ChannelBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}.  This method is basically same with\n-     * {@link #getBytes(int, ChannelBuffer, int, int)}, except that this method\n-     * increases the {@code writerIndex} of the destination by the number of the\n-     * transferred bytes while {@link #getBytes(int, ChannelBuffer, int, int)}\n-     * does not. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of the source buffer (i.e. {@code this}).\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}, or if {@code length} is\n-     *                                   greater than {@code dst.writableBytes}\n-     */\n-    void getBytes(int index, ChannelBuffer dst, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\n-     * this}) and the destination.\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   dstIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   dstIndex + length} is greater than\n-     *                                   {@code dst.capacity}\n-     */\n-    void getBytes(int index, ChannelBuffer dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified stream starting at the\n-     * specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    void getBytes(int index, OutputStream dst, int length) throws IOException;\n-\n-    /**\n-     * Returns {@code true} if and only if this buffer is backed by an NIO\n-     * direct buffer.\n-     */\n-    boolean isDirect();\n-\n-    /**\n-     * Marks the current {@code readerIndex} in this buffer.  You can reposition\n-     * the current {@code readerIndex} to the marked {@code readerIndex} by\n-     * calling {@link #resetReaderIndex()}. The initial value of the marked\n-     * {@code readerIndex} is {@code 0}.\n-     */\n-    void markReaderIndex();\n-\n-    /**\n-     * Marks the current {@code writerIndex} in this buffer.  You can reposition\n-     * the current {@code writerIndex} to the marked {@code writerIndex} by\n-     * calling {@link #resetWriterIndex()}. The initial value of the marked\n-     * {@code writerIndex} is {@code 0}.\n-     */\n-    void markWriterIndex();\n-\n-    /**\n-     * Returns {@code true} if and only if {@code (this.writerIndex -\n-     * this.readerIndex)} is greater than {@code 0}.\n-     */\n-    boolean readable();\n-\n-    /**\n-     * Returns the number of readable bytes which is equal to {@code\n-     * (this.writerIndex - this.readerIndex)}.\n-     */\n-    int readableBytes();\n-\n-    /**\n-     * Gets a byte at the current {@code readerIndex} and increases the {@code\n-     * readerIndex} by {@code 1} in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code this.readableBytes} is less\n-     *                                   than {@code 1}\n-     */\n-    byte readByte();\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code dst.length}).\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    void readBytes(byte[] dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\n-     *                                   less than {@code 0}, if {@code length}\n-     *                                   is greater than {@code this.readableBytes},\n-     *                                   or if {@code dstIndex + length} is\n-     *                                   greater than {@code dst.length}\n-     */\n-    void readBytes(byte[] dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} until the destination's position reaches its\n-     * limit, and increases the {@code readerIndex} by the number of the\n-     * transferred bytes.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.remaining()} is greater\n-     *                                   than {@code this.readableBytes}\n-     */\n-    void readBytes(ByteBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} until the destination becomes non-writable,\n-     * and increases the {@code readerIndex} by the number of the transferred\n-     * bytes.  This method is basically same with {@link\n-     * #readBytes(ChannelBuffer, int, int)}, except that this method increases\n-     * the {@code writerIndex} of the destination by the number of the\n-     * transferred bytes while {@link #readBytes(ChannelBuffer, int, int)} does\n-     * not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code dst.writableBytes} is greater\n-     *                                   than {@code this.readableBytes}\n-     */\n-    void readBytes(ChannelBuffer dst);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).  This method is\n-     * basically same with {@link #readBytes(ChannelBuffer, int, int)}, except\n-     * that this method increases the {@code writerIndex} of the destination by\n-     * the number of the transferred bytes (= {@code length}) while {@link\n-     * #readBytes(ChannelBuffer, int, int)} does not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes} or if {@code\n-     *                                   length} is greater than {@code\n-     *                                   dst.writableBytes}\n-     */\n-    void readBytes(ChannelBuffer dst, int length);\n-\n-    /**\n-     * Transfers this buffer's data to the specified destination starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}).\n-     *\n-     * @param dstIndex the first index of the destination\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\n-     *                                   less than {@code 0}, if {@code length}\n-     *                                   is greater than {@code this.readableBytes},\n-     *                                   or if {@code dstIndex + length} is\n-     *                                   greater than {@code dst.capacity}\n-     */\n-    void readBytes(ChannelBuffer dst, int dstIndex, int length);\n-\n-    /**\n-     * Transfers this buffer's data to a newly created buffer starting at the\n-     * current {@code readerIndex} and increases the {@code readerIndex} by the\n-     * number of the transferred bytes (= {@code length}). The returned buffer's\n-     * {@code readerIndex} and {@code writerIndex} are {@code 0} and {@code\n-     * length} respectively.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the newly created buffer which contains the transferred bytes\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    ChannelBuffer readBytes(int length);\n-\n-    /**\n-     * Repositions the current {@code readerIndex} to the marked {@code\n-     * readerIndex} in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the current {@code writerIndex} is\n-     *                                   less than the marked {@code\n-     *                                   readerIndex}\n-     */\n-    void resetReaderIndex();\n-\n-    /**\n-     * Marks the current {@code writerIndex} in this buffer.  You can reposition\n-     * the current {@code writerIndex} to the marked {@code writerIndex} by\n-     * calling {@link #resetWriterIndex()}. The initial value of the marked\n-     * {@code writerIndex} is {@code 0}.\n-     */\n-    void resetWriterIndex();\n-\n-    /**\n-     * Returns the {@code readerIndex} of this buffer.\n-     */\n-    int readerIndex();\n-\n-    /**\n-     * Sets the {@code readerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\n-     *                                   less than {@code 0} or greater than\n-     *                                   {@code this.writerIndex}\n-     */\n-    void readerIndex(int readerIndex);\n-\n-    /**\n-     * Transfers this buffer's data to the specified stream starting at the\n-     * current {@code readerIndex}.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    void readBytes(OutputStream dst, int length) throws IOException;\n-\n-    /**\n-     * Sets the specified byte at the specified absolute {@code index} in this\n-     * buffer.  The 24 high-order bits of the specified value are ignored. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or {@code index + 1} is\n-     *                                   greater than {@code this.capacity}\n-     */\n-    void setByte(int index, int value);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.length} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void setBytes(int index, byte[] src);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   srcIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   srcIndex + length} is greater than\n-     *                                   {@code src.length}\n-     */\n-    void setBytes(int index, byte[] src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index} until the source buffer's position\n-     * reaches its limit. This method does not modify {@code readerIndex} or\n-     * {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.remaining()} is greater than {@code\n-     *                                   this.capacity}\n-     */\n-    void setBytes(int index, ByteBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index} until the source buffer becomes\n-     * unreadable.  This method is basically same with {@link #setBytes(int,\n-     * ChannelBuffer, int, int)}, except that this method increases the {@code\n-     * readerIndex} of the source buffer by the number of the transferred bytes\n-     * while {@link #setBytes(int, ChannelBuffer, int, int)} does not. This\n-     * method does not modify {@code readerIndex} or {@code writerIndex} of the\n-     * source buffer (i.e. {@code this}).\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   src.readableBytes} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void setBytes(int index, ChannelBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index}.  This method is basically same with\n-     * {@link #setBytes(int, ChannelBuffer, int, int)}, except that this method\n-     * increases the {@code readerIndex} of the source buffer by the number of\n-     * the transferred bytes while {@link #setBytes(int, ChannelBuffer, int,\n-     * int)} does not. This method does not modify {@code readerIndex} or {@code\n-     * writerIndex} of the source buffer (i.e. {@code this}).\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}, or if {@code length} is\n-     *                                   greater than {@code src.readableBytes}\n-     */\n-    void setBytes(int index, ChannelBuffer src, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the specified absolute {@code index}. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\n-     * this}) and the destination.\n-     *\n-     * @param srcIndex the first index of the source\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0}, if the specified {@code\n-     *                                   srcIndex} is less than {@code 0}, if\n-     *                                   {@code index + length} is greater than\n-     *                                   {@code this.capacity}, or if {@code\n-     *                                   srcIndex + length} is greater than\n-     *                                   {@code src.capacity}\n-     */\n-    void setBytes(int index, ChannelBuffer src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the content of the specified source stream to this buffer\n-     * starting at the specified absolute {@code index}. This method does not\n-     * modify {@code readerIndex} or {@code writerIndex} of this buffer.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the actual number of bytes read in from the specified channel.\n-     * {@code -1} if the specified channel is closed.\n-     * @throws IndexOutOfBoundsException if the specified {@code index} is less\n-     *                                   than {@code 0} or if {@code index +\n-     *                                   length} is greater than {@code\n-     *                                   this.capacity}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    int setBytes(int index, InputStream src, int length) throws IOException;\n-\n-    /**\n-     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer in\n-     * one shot.  This method is useful when you have to worry about the\n-     * invocation order of {@link #readerIndex(int)} and {@link\n-     * #writerIndex(int)} methods.  For example, the following code will fail:\n-     * <p/>\n-     * <pre>\n-     * // Create a buffer whose readerIndex, writerIndex and capacity are\n-     * // 0, 0 and 8 respectively.\n-     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.buffer(8);\n-     *\n-     * // IndexOutOfBoundsException is thrown because the specified\n-     * // readerIndex (2) cannot be greater than the current writerIndex (0).\n-     * buf.readerIndex(2);\n-     * buf.writerIndex(4);\n-     * </pre>\n-     * <p/>\n-     * The following code will also fail:\n-     * <p/>\n-     * <pre>\n-     * // Create a buffer whose readerIndex, writerIndex and capacity are\n-     * // 0, 8 and 8 respectively.\n-     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.wrappedBuffer(new\n-     * byte[8]);\n-     *\n-     * // readerIndex becomes 8.\n-     * buf.readLong();\n-     *\n-     * // IndexOutOfBoundsException is thrown because the specified\n-     * // writerIndex (4) cannot be less than the current readerIndex (8).\n-     * buf.writerIndex(4);\n-     * buf.readerIndex(2);\n-     * </pre>\n-     * <p/>\n-     * By contrast, {@link #setIndex(int, int)} guarantees that it never throws\n-     * an {@link IndexOutOfBoundsException} as long as the specified indexes\n-     * meet basic constraints, regardless what the current index values of the\n-     * buffer are:\n-     * <p/>\n-     * <pre>\n-     * // No matter what the current state of the buffer is, the following\n-     * // call always succeeds as long as the capacity of the buffer is not\n-     * // less than 4.\n-     * buf.setIndex(2, 4);\n-     * </pre>\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\n-     *                                   less than 0, if the specified {@code\n-     *                                   writerIndex} is less than the specified\n-     *                                   {@code readerIndex} or if the specified\n-     *                                   {@code writerIndex} is greater than\n-     *                                   {@code this.capacity}\n-     */\n-    void setIndex(int readerIndex, int writerIndex);\n-\n-    /**\n-     * Increases the current {@code readerIndex} by the specified {@code length}\n-     * in this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.readableBytes}\n-     */\n-    void skipBytes(int length);\n-\n-    /**\n-     * Converts this buffer's readable bytes into a NIO buffer.  The returned\n-     * buffer might or might not share the content with this buffer, while they\n-     * have separate indexes and marks.  This method is identical to {@code\n-     * buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())}. This method\n-     * does not modify {@code readerIndex} or {@code writerIndex} of this\n-     * buffer.\n-     */\n-    ByteBuffer toByteBuffer();\n-\n-    /**\n-     * Converts this buffer's sub-region into a NIO buffer.  The returned buffer\n-     * might or might not share the content with this buffer, while they have\n-     * separate indexes and marks. This method does not modify {@code\n-     * readerIndex} or {@code writerIndex} of this buffer.\n-     */\n-    ByteBuffer toByteBuffer(int index, int length);\n-\n-    /**\n-     * Returns {@code true} if and only if {@code (this.capacity -\n-     * this.writerIndex)} is greater than {@code 0}.\n-     */\n-    boolean writable();\n-\n-    /**\n-     * Returns the number of writable bytes which is equal to {@code\n-     * (this.capacity - this.writerIndex)}.\n-     */\n-    int writableBytes();\n-\n-    /**\n-     * Sets the specified byte at the current {@code writerIndex} and increases\n-     * the {@code writerIndex} by {@code 1} in this buffer. The 24 high-order\n-     * bits of the specified value are ignored.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code this.writableBytes} is less\n-     *                                   than {@code 1}\n-     */\n-    void writeByte(int value);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code src.length}).\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.length} is greater than\n-     *                                   {@code this.writableBytes}\n-     */\n-    void writeBytes(byte[] src);\n-\n-    /**\n-     * Transfers the specified source array's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).\n-     *\n-     * @param index  the first index of the source\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\n-     *                                   less than {@code 0}, if {@code srcIndex\n-     *                                   + length} is greater than {@code\n-     *                                   src.length}, or if {@code length} is\n-     *                                   greater than {@code this.writableBytes}\n-     */\n-    void writeBytes(byte[] src, int index, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} until the source buffer's position\n-     * reaches its limit, and increases the {@code writerIndex} by the number of\n-     * the transferred bytes.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.remaining()} is greater\n-     *                                   than {@code this.writableBytes}\n-     */\n-    void writeBytes(ByteBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} until the source buffer becomes\n-     * unreadable, and increases the {@code writerIndex} by the number of the\n-     * transferred bytes.  This method is basically same with {@link\n-     * #writeBytes(ChannelBuffer, int, int)}, except that this method increases\n-     * the {@code readerIndex} of the source buffer by the number of the\n-     * transferred bytes while {@link #writeBytes(ChannelBuffer, int, int)} does\n-     * not.\n-     *\n-     * @throws IndexOutOfBoundsException if {@code src.readableBytes} is greater\n-     *                                   than {@code this.writableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).  This method is\n-     * basically same with {@link #writeBytes(ChannelBuffer, int, int)}, except\n-     * that this method increases the {@code readerIndex} of the source buffer\n-     * by the number of the transferred bytes (= {@code length}) while {@link\n-     * #writeBytes(ChannelBuffer, int, int)} does not.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.writableBytes} or if {@code\n-     *                                   length} is greater then {@code\n-     *                                   src.readableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src, int length);\n-\n-    /**\n-     * Transfers the specified source buffer's data to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes (= {@code length}).\n-     *\n-     * @param srcIndex the first index of the source\n-     * @param length   the number of bytes to transfer\n-     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\n-     *                                   less than {@code 0}, if {@code srcIndex\n-     *                                   + length} is greater than {@code\n-     *                                   src.capacity}, or if {@code length} is\n-     *                                   greater than {@code this.writableBytes}\n-     */\n-    void writeBytes(ChannelBuffer src, int srcIndex, int length);\n-\n-    /**\n-     * Transfers the content of the specified stream to this buffer starting at\n-     * the current {@code writerIndex} and increases the {@code writerIndex} by\n-     * the number of the transferred bytes.\n-     *\n-     * @param length the number of bytes to transfer\n-     * @return the actual number of bytes read in from the specified stream\n-     * @throws IndexOutOfBoundsException if {@code length} is greater than\n-     *                                   {@code this.writableBytes}\n-     * @throws IOException               if the specified stream threw an\n-     *                                   exception during I/O\n-     */\n-    int writeBytes(InputStream src, int length) throws IOException;\n-\n-    /**\n-     * Returns the {@code writerIndex} of this buffer.\n-     */\n-    int writerIndex();\n-\n-    /**\n-     * Sets the {@code writerIndex} of this buffer.\n-     *\n-     * @throws IndexOutOfBoundsException if the specified {@code writerIndex} is\n-     *                                   less than {@code this.readerIndex} or\n-     *                                   greater than {@code this.capacity}\n-     */\n-    void writerIndex(int writerIndex);\n-\n-    /**\n-     * Returns the backing byte array of this buffer.\n-     *\n-     * @throws UnsupportedOperationException if there no accessible backing byte\n-     *                                       array\n-     */\n-    byte[] array();\n-\n-    /**\n-     * Returns {@code true} if and only if this buffer has a backing byte array.\n-     * If this method returns true, you can safely call {@link #array()} and\n-     * {@link #arrayOffset()}.\n-     */\n-    boolean hasArray();\n-\n-    /**\n-     * Returns the offset of the first byte within the backing byte array of\n-     * this buffer.\n-     *\n-     * @throws UnsupportedOperationException if there no accessible backing byte\n-     *                                       array\n-     */\n-    int arrayOffset();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.buffer;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.nio.ByteBuffer;\r\n+\r\n+/**\r\n+ * A random and sequential accessible sequence of zero or more bytes (octets).\r\n+ * This interface provides an abstract view for one or more primitive byte\r\n+ * arrays ({@code byte[]}) and {@linkplain ByteBuffer NIO buffers}.\r\n+ * <p/>\r\n+ * <h3>Creation of a buffer</h3>\r\n+ * <p/>\r\n+ * It is recommended to create a new buffer using the helper methods in {@link\r\n+ * ChannelBuffers} rather than calling an individual implementation's\r\n+ * constructor.\r\n+ * <p/>\r\n+ * <h3>Random Access Indexing</h3>\r\n+ * <p/>\r\n+ * Just like an ordinary primitive byte array, {@link ChannelBuffer} uses <a\r\n+ * href=\"http://en.wikipedia.org/wiki/Index_(information_technology)#Array_element_identifier\">zero-based\r\n+ * indexing</a>. It means the index of the first byte is always {@code 0} and\r\n+ * the index of the last byte is always {@link #capacity() capacity - 1}.  For\r\n+ * example, to iterate all bytes of a buffer, you can do the following,\r\n+ * regardless of its internal implementation:\r\n+ * <p/>\r\n+ * <pre>\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * for (int i = 0; i &lt; buffer.capacity(); i ++</strong>) {\r\n+ *     byte b = buffer.getByte(i);\r\n+ *     System.out.println((char) b);\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h3>Sequential Access Indexing</h3>\r\n+ * <p/>\r\n+ * {@link ChannelBuffer} provides two pointer variables to support sequential\r\n+ * read and write operations - {@link #readerIndex() readerIndex} for a read\r\n+ * operation and {@link #writerIndex() writerIndex} for a write operation\r\n+ * respectively.  The following diagram shows how a buffer is segmented into\r\n+ * three areas by the two pointers:\r\n+ * <p/>\r\n+ * <pre>\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      |                   |     (CONTENT)    |                  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Readable bytes (the actual content)</h4>\r\n+ * <p/>\r\n+ * This segment is where the actual data is stored.  Any operation whose name\r\n+ * starts with {@code read} or {@code skip} will get or skip the data at the\r\n+ * current {@link #readerIndex() readerIndex} and increase it by the number of\r\n+ * read bytes.  If the argument of the read operation is also a {@link\r\n+ * ChannelBuffer} and no destination index is specified, the specified buffer's\r\n+ * {@link #readerIndex() readerIndex} is increased together.\r\n+ * <p/>\r\n+ * If there's not enough content left, {@link IndexOutOfBoundsException} is\r\n+ * raised.  The default value of newly allocated, wrapped or copied buffer's\r\n+ * {@link #readerIndex() readerIndex} is {@code 0}.\r\n+ * <p/>\r\n+ * <pre>\r\n+ * // Iterates the readable bytes of a buffer.\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * while (buffer.readable()) {\r\n+ *     System.out.println(buffer.readByte());\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Writable bytes</h4>\r\n+ * <p/>\r\n+ * This segment is a undefined space which needs to be filled.  Any operation\r\n+ * whose name ends with {@code write} will write the data at the current {@link\r\n+ * #writerIndex() writerIndex} and increase it by the number of written bytes.\r\n+ * If the argument of the write operation is also a {@link ChannelBuffer}, and\r\n+ * no source index is specified, the specified buffer's {@link #readerIndex()\r\n+ * readerIndex} is increased together.\r\n+ * <p/>\r\n+ * If there's not enough writable bytes left, {@link IndexOutOfBoundsException}\r\n+ * is raised.  The default value of newly allocated buffer's {@link\r\n+ * #writerIndex() writerIndex} is {@code 0}.  The default value of wrapped or\r\n+ * copied buffer's {@link #writerIndex() writerIndex} is the {@link #capacity()\r\n+ * capacity} of the buffer.\r\n+ * <p/>\r\n+ * <pre>\r\n+ * // Fills the writable bytes of a buffer with random integers.\r\n+ * {@link ChannelBuffer} buffer = ...;\r\n+ * while (buffer.writableBytes() >= 4) {\r\n+ *     buffer.writeInt(random.nextInt());\r\n+ * }\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h4>Discardable bytes</h4>\r\n+ * <p/>\r\n+ * This segment contains the bytes which were read already by a read operation.\r\n+ * Initially, the size of this segment is {@code 0}, but its size increases up\r\n+ * to the {@link #writerIndex() writerIndex} as read operations are executed.\r\n+ * The read bytes can be discarded by calling {@link #discardReadBytes()} to\r\n+ * reclaim unused area as depicted by the following diagram:\r\n+ * <p/>\r\n+ * <pre>\r\n+ *  BEFORE discardReadBytes()\r\n+ *\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ *\r\n+ *\r\n+ *  AFTER discardReadBytes()\r\n+ *\r\n+ *      +------------------+--------------------------------------+\r\n+ *      |  readable bytes  |    writable bytes (got more space)   |\r\n+ *      +------------------+--------------------------------------+\r\n+ *      |                  |                                      |\r\n+ * readerIndex (0) <= writerIndex (decreased)        <=        capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * Please note that there is no guarantee about the content of writable bytes\r\n+ * after calling {@link #discardReadBytes()}.  The writable bytes will not be\r\n+ * moved in most cases and could even be filled with completely different data\r\n+ * depending on the underlying buffer implementation.\r\n+ * <p/>\r\n+ * <h4>Clearing the buffer indexes</h4>\r\n+ * <p/>\r\n+ * You can set both {@link #readerIndex() readerIndex} and {@link #writerIndex()\r\n+ * writerIndex} to {@code 0} by calling {@link #clear()}. It does not clear the\r\n+ * buffer content (e.g. filling with {@code 0}) but just clears the two\r\n+ * pointers.  Please also note that the semantic of this operation is different\r\n+ * from {@link ByteBuffer#clear()}.\r\n+ * <p/>\r\n+ * <pre>\r\n+ *  BEFORE clear()\r\n+ *\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      | discardable bytes |  readable bytes  |  writable bytes  |\r\n+ *      +-------------------+------------------+------------------+\r\n+ *      |                   |                  |                  |\r\n+ *      0      <=      readerIndex   <=   writerIndex    <=    capacity\r\n+ *\r\n+ *\r\n+ *  AFTER clear()\r\n+ *\r\n+ *      +---------------------------------------------------------+\r\n+ *      |             writable bytes (got more space)             |\r\n+ *      +---------------------------------------------------------+\r\n+ *      |                                                         |\r\n+ *      0 = readerIndex = writerIndex            <=            capacity\r\n+ * </pre>\r\n+ * <p/>\r\n+ * <h3>Mark and reset</h3>\r\n+ * <p/>\r\n+ * There are two marker indexes in every buffer. One is for storing {@link\r\n+ * #readerIndex() readerIndex} and the other is for storing {@link\r\n+ * #writerIndex() writerIndex}.  You can always reposition one of the two\r\n+ * indexes by calling a reset method.  It works in a similar fashion to the mark\r\n+ * and reset methods in {@link InputStream} except that there's no {@code\r\n+ * readlimit}.\r\n+ * <p/>\r\n+ * <h3>Conversion to existing JDK types</h3>\r\n+ * <p/>\r\n+ * <h4>Byte array</h4>\r\n+ * <p/>\r\n+ * If a {@link ChannelBuffer} is backed by a byte array (i.e. {@code byte[]}),\r\n+ * you can access it directly via the {@link #array()} method.  To determine if\r\n+ * a buffer is backed by a byte array, {@link #hasArray()} should be used.\r\n+ * <p/>\r\n+ * <h4>NIO Buffers</h4>\r\n+ * <p/>\r\n+ * Various {@link #toByteBuffer()}  methods convert a {@link ChannelBuffer} into\r\n+ * one or more NIO buffers.  These methods avoid buffer allocation and memory\r\n+ * copy whenever possible, but there's no guarantee that memory copy will not be\r\n+ * involved.\r\n+ * <p/>\r\n+ * <h4>I/O Streams</h4>\r\n+ * <p/>\r\n+ * Please refer to {@link ChannelBufferInputStream} and {@link\r\n+ * ChannelBufferOutputStream}.\r\n+ *\r\n+ *\r\n+ */\r\n+public interface ChannelBuffer extends Comparable<ChannelBuffer> {\r\n+\r\n+    /**\r\n+     * Returns the number of bytes (octets) this buffer can contain.\r\n+     */\r\n+    int capacity();\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer to\r\n+     * {@code 0}. This method is identical to {@link #setIndex(int, int)\r\n+     * setIndex(0, 0)}.\r\n+     * <p/>\r\n+     * Please note that the behavior of this method is different from that of\r\n+     * NIO buffer, which sets the {@code limit} to the {@code capacity} of the\r\n+     * buffer.\r\n+     */\r\n+    void clear();\r\n+\r\n+    /**\r\n+     * Returns a copy of this buffer's readable bytes.  Modifying the content of\r\n+     * the returned buffer or this buffer does not affect each other at all.\r\n+     * This method is identical to {@code buf.copy(buf.readerIndex(),\r\n+     * buf.readableBytes())}. This method does not modify {@code readerIndex} or\r\n+     * {@code writerIndex} of this buffer.\r\n+     */\r\n+    ChannelBuffer copy();\r\n+\r\n+    /**\r\n+     * Returns a copy of this buffer's sub-region.  Modifying the content of the\r\n+     * returned buffer or this buffer does not affect each other at all. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     */\r\n+    ChannelBuffer copy(int index, int length);\r\n+\r\n+    /**\r\n+     * Discards the bytes between the 0th index and {@code readerIndex}. It\r\n+     * moves the bytes between {@code readerIndex} and {@code writerIndex} to\r\n+     * the 0th index, and sets {@code readerIndex} and {@code writerIndex} to\r\n+     * {@code 0} and {@code oldWriterIndex - oldReaderIndex} respectively.\r\n+     * <p/>\r\n+     * Please refer to the class documentation for more detailed explanation.\r\n+     */\r\n+    void discardReadBytes();\r\n+\r\n+    /**\r\n+     * Makes sure the number of {@linkplain #writableBytes() the writable bytes}\r\n+     * is equal to or greater than the specified value.  If there is enough\r\n+     * writable bytes in this buffer, this method returns with no side effect.\r\n+     * Otherwise: <ul> <li>a non-dynamic buffer will throw an {@link\r\n+     * IndexOutOfBoundsException}.</li> <li>a dynamic buffer will expand its\r\n+     * capacity so that the number of the {@link #writableBytes() writable\r\n+     * bytes} becomes equal to or greater than the specified value. The\r\n+     * expansion involves the reallocation of the internal buffer and\r\n+     * consequently memory copy.</li> </ul>\r\n+     *\r\n+     * @param writableBytes the expected minimum number of writable bytes\r\n+     * @throws IndexOutOfBoundsException if {@linkplain #writableBytes() the\r\n+     *                                   writable bytes} of this buffer is less\r\n+     *                                   than the specified value and if this\r\n+     *                                   buffer is not a dynamic buffer\r\n+     */\r\n+    void ensureWritableBytes(int writableBytes);\r\n+\r\n+    /**\r\n+     * Determines if the content of the specified buffer is identical to the\r\n+     * content of this array.  'Identical' here means: <ul> <li>the size of the\r\n+     * contents of the two buffers are same and</li> <li>every single byte of\r\n+     * the content of the two buffers are same.</li> </ul> Please note that it\r\n+     * does not compare {@link #readerIndex()} nor {@link #writerIndex()}.  This\r\n+     * method also returns {@code false} for {@code null} and an object which is\r\n+     * not an instance of {@link ChannelBuffer} type.\r\n+     */\r\n+    @Override\r\n+    boolean equals(Object o);\r\n+\r\n+    /**\r\n+     * Returns the factory which creates a {@link ChannelBuffer} whose type and\r\n+     * default {@link java.nio.ByteOrder} are same with this buffer.\r\n+     */\r\n+    ChannelBufferFactory factory();\r\n+\r\n+    /**\r\n+     * Gets a byte at the specified absolute {@code index} in this buffer. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or {@code index + 1} is\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    byte getByte(int index);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void getBytes(int index, byte[] dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   dstIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   dstIndex + length} is greater than\r\n+     *                                   {@code dst.length}\r\n+     */\r\n+    void getBytes(int index, byte[] dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index} until the destination's position reaches\r\n+     * its limit. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of this buffer while the destination's {@code position} will\r\n+     * be increased.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.remaining()} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void getBytes(int index, ByteBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index} until the destination becomes\r\n+     * non-writable.  This method is basically same with {@link #getBytes(int,\r\n+     * ChannelBuffer, int, int)}, except that this method increases the {@code\r\n+     * writerIndex} of the destination by the number of the transferred bytes\r\n+     * while {@link #getBytes(int, ChannelBuffer, int, int)} does not. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of the\r\n+     * source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   dst.writableBytes} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}.  This method is basically same with\r\n+     * {@link #getBytes(int, ChannelBuffer, int, int)}, except that this method\r\n+     * increases the {@code writerIndex} of the destination by the number of the\r\n+     * transferred bytes while {@link #getBytes(int, ChannelBuffer, int, int)}\r\n+     * does not. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of the source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code dst.writableBytes}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\r\n+     * this}) and the destination.\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   dstIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   dstIndex + length} is greater than\r\n+     *                                   {@code dst.capacity}\r\n+     */\r\n+    void getBytes(int index, ChannelBuffer dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified stream starting at the\r\n+     * specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    void getBytes(int index, OutputStream dst, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if this buffer is backed by an NIO\r\n+     * direct buffer.\r\n+     */\r\n+    boolean isDirect();\r\n+\r\n+    /**\r\n+     * Marks the current {@code readerIndex} in this buffer.  You can reposition\r\n+     * the current {@code readerIndex} to the marked {@code readerIndex} by\r\n+     * calling {@link #resetReaderIndex()}. The initial value of the marked\r\n+     * {@code readerIndex} is {@code 0}.\r\n+     */\r\n+    void markReaderIndex();\r\n+\r\n+    /**\r\n+     * Marks the current {@code writerIndex} in this buffer.  You can reposition\r\n+     * the current {@code writerIndex} to the marked {@code writerIndex} by\r\n+     * calling {@link #resetWriterIndex()}. The initial value of the marked\r\n+     * {@code writerIndex} is {@code 0}.\r\n+     */\r\n+    void markWriterIndex();\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if {@code (this.writerIndex -\r\n+     * this.readerIndex)} is greater than {@code 0}.\r\n+     */\r\n+    boolean readable();\r\n+\r\n+    /**\r\n+     * Returns the number of readable bytes which is equal to {@code\r\n+     * (this.writerIndex - this.readerIndex)}.\r\n+     */\r\n+    int readableBytes();\r\n+\r\n+    /**\r\n+     * Gets a byte at the current {@code readerIndex} and increases the {@code\r\n+     * readerIndex} by {@code 1} in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code this.readableBytes} is less\r\n+     *                                   than {@code 1}\r\n+     */\r\n+    byte readByte();\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code dst.length}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(byte[] dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\r\n+     *                                   less than {@code 0}, if {@code length}\r\n+     *                                   is greater than {@code this.readableBytes},\r\n+     *                                   or if {@code dstIndex + length} is\r\n+     *                                   greater than {@code dst.length}\r\n+     */\r\n+    void readBytes(byte[] dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} until the destination's position reaches its\r\n+     * limit, and increases the {@code readerIndex} by the number of the\r\n+     * transferred bytes.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.remaining()} is greater\r\n+     *                                   than {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(ByteBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} until the destination becomes non-writable,\r\n+     * and increases the {@code readerIndex} by the number of the transferred\r\n+     * bytes.  This method is basically same with {@link\r\n+     * #readBytes(ChannelBuffer, int, int)}, except that this method increases\r\n+     * the {@code writerIndex} of the destination by the number of the\r\n+     * transferred bytes while {@link #readBytes(ChannelBuffer, int, int)} does\r\n+     * not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code dst.writableBytes} is greater\r\n+     *                                   than {@code this.readableBytes}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).  This method is\r\n+     * basically same with {@link #readBytes(ChannelBuffer, int, int)}, except\r\n+     * that this method increases the {@code writerIndex} of the destination by\r\n+     * the number of the transferred bytes (= {@code length}) while {@link\r\n+     * #readBytes(ChannelBuffer, int, int)} does not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes} or if {@code\r\n+     *                                   length} is greater than {@code\r\n+     *                                   dst.writableBytes}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified destination starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param dstIndex the first index of the destination\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code dstIndex} is\r\n+     *                                   less than {@code 0}, if {@code length}\r\n+     *                                   is greater than {@code this.readableBytes},\r\n+     *                                   or if {@code dstIndex + length} is\r\n+     *                                   greater than {@code dst.capacity}\r\n+     */\r\n+    void readBytes(ChannelBuffer dst, int dstIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to a newly created buffer starting at the\r\n+     * current {@code readerIndex} and increases the {@code readerIndex} by the\r\n+     * number of the transferred bytes (= {@code length}). The returned buffer's\r\n+     * {@code readerIndex} and {@code writerIndex} are {@code 0} and {@code\r\n+     * length} respectively.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the newly created buffer which contains the transferred bytes\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    ChannelBuffer readBytes(int length);\r\n+\r\n+    /**\r\n+     * Repositions the current {@code readerIndex} to the marked {@code\r\n+     * readerIndex} in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the current {@code writerIndex} is\r\n+     *                                   less than the marked {@code\r\n+     *                                   readerIndex}\r\n+     */\r\n+    void resetReaderIndex();\r\n+\r\n+    /**\r\n+     * Marks the current {@code writerIndex} in this buffer.  You can reposition\r\n+     * the current {@code writerIndex} to the marked {@code writerIndex} by\r\n+     * calling {@link #resetWriterIndex()}. The initial value of the marked\r\n+     * {@code writerIndex} is {@code 0}.\r\n+     */\r\n+    void resetWriterIndex();\r\n+\r\n+    /**\r\n+     * Returns the {@code readerIndex} of this buffer.\r\n+     */\r\n+    int readerIndex();\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\r\n+     *                                   less than {@code 0} or greater than\r\n+     *                                   {@code this.writerIndex}\r\n+     */\r\n+    void readerIndex(int readerIndex);\r\n+\r\n+    /**\r\n+     * Transfers this buffer's data to the specified stream starting at the\r\n+     * current {@code readerIndex}.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    void readBytes(OutputStream dst, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Sets the specified byte at the specified absolute {@code index} in this\r\n+     * buffer.  The 24 high-order bits of the specified value are ignored. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or {@code index + 1} is\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    void setByte(int index, int value);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void setBytes(int index, byte[] src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   srcIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   srcIndex + length} is greater than\r\n+     *                                   {@code src.length}\r\n+     */\r\n+    void setBytes(int index, byte[] src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index} until the source buffer's position\r\n+     * reaches its limit. This method does not modify {@code readerIndex} or\r\n+     * {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.remaining()} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     */\r\n+    void setBytes(int index, ByteBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index} until the source buffer becomes\r\n+     * unreadable.  This method is basically same with {@link #setBytes(int,\r\n+     * ChannelBuffer, int, int)}, except that this method increases the {@code\r\n+     * readerIndex} of the source buffer by the number of the transferred bytes\r\n+     * while {@link #setBytes(int, ChannelBuffer, int, int)} does not. This\r\n+     * method does not modify {@code readerIndex} or {@code writerIndex} of the\r\n+     * source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   src.readableBytes} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index}.  This method is basically same with\r\n+     * {@link #setBytes(int, ChannelBuffer, int, int)}, except that this method\r\n+     * increases the {@code readerIndex} of the source buffer by the number of\r\n+     * the transferred bytes while {@link #setBytes(int, ChannelBuffer, int,\r\n+     * int)} does not. This method does not modify {@code readerIndex} or {@code\r\n+     * writerIndex} of the source buffer (i.e. {@code this}).\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code src.readableBytes}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the specified absolute {@code index}. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of both the source (i.e. {@code\r\n+     * this}) and the destination.\r\n+     *\r\n+     * @param srcIndex the first index of the source\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0}, if the specified {@code\r\n+     *                                   srcIndex} is less than {@code 0}, if\r\n+     *                                   {@code index + length} is greater than\r\n+     *                                   {@code this.capacity}, or if {@code\r\n+     *                                   srcIndex + length} is greater than\r\n+     *                                   {@code src.capacity}\r\n+     */\r\n+    void setBytes(int index, ChannelBuffer src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the content of the specified source stream to this buffer\r\n+     * starting at the specified absolute {@code index}. This method does not\r\n+     * modify {@code readerIndex} or {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the actual number of bytes read in from the specified channel.\r\n+     * {@code -1} if the specified channel is closed.\r\n+     * @throws IndexOutOfBoundsException if the specified {@code index} is less\r\n+     *                                   than {@code 0} or if {@code index +\r\n+     *                                   length} is greater than {@code\r\n+     *                                   this.capacity}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    int setBytes(int index, InputStream src, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Sets the {@code readerIndex} and {@code writerIndex} of this buffer in\r\n+     * one shot.  This method is useful when you have to worry about the\r\n+     * invocation order of {@link #readerIndex(int)} and {@link\r\n+     * #writerIndex(int)} methods.  For example, the following code will fail:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // Create a buffer whose readerIndex, writerIndex and capacity are\r\n+     * // 0, 0 and 8 respectively.\r\n+     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.buffer(8);\r\n+     *\r\n+     * // IndexOutOfBoundsException is thrown because the specified\r\n+     * // readerIndex (2) cannot be greater than the current writerIndex (0).\r\n+     * buf.readerIndex(2);\r\n+     * buf.writerIndex(4);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * The following code will also fail:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // Create a buffer whose readerIndex, writerIndex and capacity are\r\n+     * // 0, 8 and 8 respectively.\r\n+     * {@link ChannelBuffer} buf = {@link ChannelBuffers}.wrappedBuffer(new\r\n+     * byte[8]);\r\n+     *\r\n+     * // readerIndex becomes 8.\r\n+     * buf.readLong();\r\n+     *\r\n+     * // IndexOutOfBoundsException is thrown because the specified\r\n+     * // writerIndex (4) cannot be less than the current readerIndex (8).\r\n+     * buf.writerIndex(4);\r\n+     * buf.readerIndex(2);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * By contrast, {@link #setIndex(int, int)} guarantees that it never throws\r\n+     * an {@link IndexOutOfBoundsException} as long as the specified indexes\r\n+     * meet basic constraints, regardless what the current index values of the\r\n+     * buffer are:\r\n+     * <p/>\r\n+     * <pre>\r\n+     * // No matter what the current state of the buffer is, the following\r\n+     * // call always succeeds as long as the capacity of the buffer is not\r\n+     * // less than 4.\r\n+     * buf.setIndex(2, 4);\r\n+     * </pre>\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code readerIndex} is\r\n+     *                                   less than 0, if the specified {@code\r\n+     *                                   writerIndex} is less than the specified\r\n+     *                                   {@code readerIndex} or if the specified\r\n+     *                                   {@code writerIndex} is greater than\r\n+     *                                   {@code this.capacity}\r\n+     */\r\n+    void setIndex(int readerIndex, int writerIndex);\r\n+\r\n+    /**\r\n+     * Increases the current {@code readerIndex} by the specified {@code length}\r\n+     * in this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.readableBytes}\r\n+     */\r\n+    void skipBytes(int length);\r\n+\r\n+    /**\r\n+     * Converts this buffer's readable bytes into a NIO buffer.  The returned\r\n+     * buffer might or might not share the content with this buffer, while they\r\n+     * have separate indexes and marks.  This method is identical to {@code\r\n+     * buf.toByteBuffer(buf.readerIndex(), buf.readableBytes())}. This method\r\n+     * does not modify {@code readerIndex} or {@code writerIndex} of this\r\n+     * buffer.\r\n+     */\r\n+    ByteBuffer toByteBuffer();\r\n+\r\n+    /**\r\n+     * Converts this buffer's sub-region into a NIO buffer.  The returned buffer\r\n+     * might or might not share the content with this buffer, while they have\r\n+     * separate indexes and marks. This method does not modify {@code\r\n+     * readerIndex} or {@code writerIndex} of this buffer.\r\n+     */\r\n+    ByteBuffer toByteBuffer(int index, int length);\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if {@code (this.capacity -\r\n+     * this.writerIndex)} is greater than {@code 0}.\r\n+     */\r\n+    boolean writable();\r\n+\r\n+    /**\r\n+     * Returns the number of writable bytes which is equal to {@code\r\n+     * (this.capacity - this.writerIndex)}.\r\n+     */\r\n+    int writableBytes();\r\n+\r\n+    /**\r\n+     * Sets the specified byte at the current {@code writerIndex} and increases\r\n+     * the {@code writerIndex} by {@code 1} in this buffer. The 24 high-order\r\n+     * bits of the specified value are ignored.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code this.writableBytes} is less\r\n+     *                                   than {@code 1}\r\n+     */\r\n+    void writeByte(int value);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code src.length}).\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.length} is greater than\r\n+     *                                   {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(byte[] src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source array's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param index  the first index of the source\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\r\n+     *                                   less than {@code 0}, if {@code srcIndex\r\n+     *                                   + length} is greater than {@code\r\n+     *                                   src.length}, or if {@code length} is\r\n+     *                                   greater than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(byte[] src, int index, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} until the source buffer's position\r\n+     * reaches its limit, and increases the {@code writerIndex} by the number of\r\n+     * the transferred bytes.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.remaining()} is greater\r\n+     *                                   than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ByteBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} until the source buffer becomes\r\n+     * unreadable, and increases the {@code writerIndex} by the number of the\r\n+     * transferred bytes.  This method is basically same with {@link\r\n+     * #writeBytes(ChannelBuffer, int, int)}, except that this method increases\r\n+     * the {@code readerIndex} of the source buffer by the number of the\r\n+     * transferred bytes while {@link #writeBytes(ChannelBuffer, int, int)} does\r\n+     * not.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if {@code src.readableBytes} is greater\r\n+     *                                   than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).  This method is\r\n+     * basically same with {@link #writeBytes(ChannelBuffer, int, int)}, except\r\n+     * that this method increases the {@code readerIndex} of the source buffer\r\n+     * by the number of the transferred bytes (= {@code length}) while {@link\r\n+     * #writeBytes(ChannelBuffer, int, int)} does not.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.writableBytes} or if {@code\r\n+     *                                   length} is greater then {@code\r\n+     *                                   src.readableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src, int length);\r\n+\r\n+    /**\r\n+     * Transfers the specified source buffer's data to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes (= {@code length}).\r\n+     *\r\n+     * @param srcIndex the first index of the source\r\n+     * @param length   the number of bytes to transfer\r\n+     * @throws IndexOutOfBoundsException if the specified {@code srcIndex} is\r\n+     *                                   less than {@code 0}, if {@code srcIndex\r\n+     *                                   + length} is greater than {@code\r\n+     *                                   src.capacity}, or if {@code length} is\r\n+     *                                   greater than {@code this.writableBytes}\r\n+     */\r\n+    void writeBytes(ChannelBuffer src, int srcIndex, int length);\r\n+\r\n+    /**\r\n+     * Transfers the content of the specified stream to this buffer starting at\r\n+     * the current {@code writerIndex} and increases the {@code writerIndex} by\r\n+     * the number of the transferred bytes.\r\n+     *\r\n+     * @param length the number of bytes to transfer\r\n+     * @return the actual number of bytes read in from the specified stream\r\n+     * @throws IndexOutOfBoundsException if {@code length} is greater than\r\n+     *                                   {@code this.writableBytes}\r\n+     * @throws IOException               if the specified stream threw an\r\n+     *                                   exception during I/O\r\n+     */\r\n+    int writeBytes(InputStream src, int length) throws IOException;\r\n+\r\n+    /**\r\n+     * Returns the {@code writerIndex} of this buffer.\r\n+     */\r\n+    int writerIndex();\r\n+\r\n+    /**\r\n+     * Sets the {@code writerIndex} of this buffer.\r\n+     *\r\n+     * @throws IndexOutOfBoundsException if the specified {@code writerIndex} is\r\n+     *                                   less than {@code this.readerIndex} or\r\n+     *                                   greater than {@code this.capacity}\r\n+     */\r\n+    void writerIndex(int writerIndex);\r\n+\r\n+    /**\r\n+     * Returns the backing byte array of this buffer.\r\n+     *\r\n+     * @throws UnsupportedOperationException if there no accessible backing byte\r\n+     *                                       array\r\n+     */\r\n+    byte[] array();\r\n+\r\n+    /**\r\n+     * Returns {@code true} if and only if this buffer has a backing byte array.\r\n+     * If this method returns true, you can safely call {@link #array()} and\r\n+     * {@link #arrayOffset()}.\r\n+     */\r\n+    boolean hasArray();\r\n+\r\n+    /**\r\n+     * Returns the offset of the first byte within the backing byte array of\r\n+     * this buffer.\r\n+     *\r\n+     * @throws UnsupportedOperationException if there no accessible backing byte\r\n+     *                                       array\r\n+     */\r\n+    int arrayOffset();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/buffer/ChannelBuffers.java", "source2": "org/apache/dubbo/remoting/buffer/ChannelBuffers.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,156 +1,156 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.buffer;\n-\n-import java.nio.ByteBuffer;\n-\n-public final class ChannelBuffers {\n-\n-    public static final ChannelBuffer EMPTY_BUFFER = new HeapChannelBuffer(0);\n-\n-    private ChannelBuffers() {\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer() {\n-        return dynamicBuffer(256);\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer(int capacity) {\n-        return new DynamicChannelBuffer(capacity);\n-    }\n-\n-    public static ChannelBuffer dynamicBuffer(int capacity,\n-                                              ChannelBufferFactory factory) {\n-        return new DynamicChannelBuffer(capacity, factory);\n-    }\n-\n-    public static ChannelBuffer buffer(int capacity) {\n-        if (capacity < 0) {\n-            throw new IllegalArgumentException(\"capacity can not be negative\");\n-        }\n-        if (capacity == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-        return new HeapChannelBuffer(capacity);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(byte[] array, int offset, int length) {\n-        if (array == null) {\n-            throw new NullPointerException(\"array == null\");\n-        }\n-        byte[] dest = new byte[length];\n-        System.arraycopy(array, offset, dest, 0, length);\n-        return wrappedBuffer(dest);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(byte[] array) {\n-        if (array == null) {\n-            throw new NullPointerException(\"array == null\");\n-        }\n-        if (array.length == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-        return new HeapChannelBuffer(array);\n-    }\n-\n-    public static ChannelBuffer wrappedBuffer(ByteBuffer buffer) {\n-        if (!buffer.hasRemaining()) {\n-            return EMPTY_BUFFER;\n-        }\n-        if (buffer.hasArray()) {\n-            return wrappedBuffer(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining());\n-        } else {\n-            return new ByteBufferBackedChannelBuffer(buffer);\n-        }\n-    }\n-\n-    public static ChannelBuffer directBuffer(int capacity) {\n-        if (capacity == 0) {\n-            return EMPTY_BUFFER;\n-        }\n-\n-        ChannelBuffer buffer = new ByteBufferBackedChannelBuffer(\n-                ByteBuffer.allocateDirect(capacity));\n-        buffer.clear();\n-        return buffer;\n-    }\n-\n-    public static boolean equals(ChannelBuffer bufferA, ChannelBuffer bufferB) {\n-        final int aLen = bufferA.readableBytes();\n-        if (aLen != bufferB.readableBytes()) {\n-            return false;\n-        }\n-\n-        final int byteCount = aLen & 7;\n-\n-        int aIndex = bufferA.readerIndex();\n-        int bIndex = bufferB.readerIndex();\n-\n-        for (int i = byteCount; i > 0; i--) {\n-            if (bufferA.getByte(aIndex) != bufferB.getByte(bIndex)) {\n-                return false;\n-            }\n-            aIndex++;\n-            bIndex++;\n-        }\n-\n-        return true;\n-    }\n-\n-    public static int hasCode(ChannelBuffer buffer){\n-        final int aLen = buffer.readableBytes();\n-        final int byteCount = aLen & 7;\n-\n-        int hashCode = 1;\n-        int arrayIndex = buffer.readerIndex();\n-\n-        for (int i = byteCount; i > 0; i--) {\n-            hashCode = 31 * hashCode + buffer.getByte(arrayIndex++);\n-        }\n-\n-        if (hashCode == 0) {\n-            hashCode = 1;\n-        }\n-\n-        return hashCode;\n-    }\n-\n-    public static int compare(ChannelBuffer bufferA, ChannelBuffer bufferB) {\n-        final int aLen = bufferA.readableBytes();\n-        final int bLen = bufferB.readableBytes();\n-        final int minLength = Math.min(aLen, bLen);\n-\n-        int aIndex = bufferA.readerIndex();\n-        int bIndex = bufferB.readerIndex();\n-\n-        for (int i = minLength; i > 0; i--) {\n-            byte va = bufferA.getByte(aIndex);\n-            byte vb = bufferB.getByte(bIndex);\n-            if (va > vb) {\n-                return 1;\n-            } else if (va < vb) {\n-                return -1;\n-            }\n-            aIndex++;\n-            bIndex++;\n-        }\n-\n-        return aLen - bLen;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.buffer;\r\n+\r\n+import java.nio.ByteBuffer;\r\n+\r\n+public final class ChannelBuffers {\r\n+\r\n+    public static final ChannelBuffer EMPTY_BUFFER = new HeapChannelBuffer(0);\r\n+\r\n+    private ChannelBuffers() {\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer() {\r\n+        return dynamicBuffer(256);\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer(int capacity) {\r\n+        return new DynamicChannelBuffer(capacity);\r\n+    }\r\n+\r\n+    public static ChannelBuffer dynamicBuffer(int capacity,\r\n+                                              ChannelBufferFactory factory) {\r\n+        return new DynamicChannelBuffer(capacity, factory);\r\n+    }\r\n+\r\n+    public static ChannelBuffer buffer(int capacity) {\r\n+        if (capacity < 0) {\r\n+            throw new IllegalArgumentException(\"capacity can not be negative\");\r\n+        }\r\n+        if (capacity == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        return new HeapChannelBuffer(capacity);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(byte[] array, int offset, int length) {\r\n+        if (array == null) {\r\n+            throw new NullPointerException(\"array == null\");\r\n+        }\r\n+        byte[] dest = new byte[length];\r\n+        System.arraycopy(array, offset, dest, 0, length);\r\n+        return wrappedBuffer(dest);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(byte[] array) {\r\n+        if (array == null) {\r\n+            throw new NullPointerException(\"array == null\");\r\n+        }\r\n+        if (array.length == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        return new HeapChannelBuffer(array);\r\n+    }\r\n+\r\n+    public static ChannelBuffer wrappedBuffer(ByteBuffer buffer) {\r\n+        if (!buffer.hasRemaining()) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+        if (buffer.hasArray()) {\r\n+            return wrappedBuffer(buffer.array(), buffer.arrayOffset() + buffer.position(), buffer.remaining());\r\n+        } else {\r\n+            return new ByteBufferBackedChannelBuffer(buffer);\r\n+        }\r\n+    }\r\n+\r\n+    public static ChannelBuffer directBuffer(int capacity) {\r\n+        if (capacity == 0) {\r\n+            return EMPTY_BUFFER;\r\n+        }\r\n+\r\n+        ChannelBuffer buffer = new ByteBufferBackedChannelBuffer(\r\n+                ByteBuffer.allocateDirect(capacity));\r\n+        buffer.clear();\r\n+        return buffer;\r\n+    }\r\n+\r\n+    public static boolean equals(ChannelBuffer bufferA, ChannelBuffer bufferB) {\r\n+        final int aLen = bufferA.readableBytes();\r\n+        if (aLen != bufferB.readableBytes()) {\r\n+            return false;\r\n+        }\r\n+\r\n+        final int byteCount = aLen & 7;\r\n+\r\n+        int aIndex = bufferA.readerIndex();\r\n+        int bIndex = bufferB.readerIndex();\r\n+\r\n+        for (int i = byteCount; i > 0; i--) {\r\n+            if (bufferA.getByte(aIndex) != bufferB.getByte(bIndex)) {\r\n+                return false;\r\n+            }\r\n+            aIndex++;\r\n+            bIndex++;\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    public static int hasCode(ChannelBuffer buffer){\r\n+        final int aLen = buffer.readableBytes();\r\n+        final int byteCount = aLen & 7;\r\n+\r\n+        int hashCode = 1;\r\n+        int arrayIndex = buffer.readerIndex();\r\n+\r\n+        for (int i = byteCount; i > 0; i--) {\r\n+            hashCode = 31 * hashCode + buffer.getByte(arrayIndex++);\r\n+        }\r\n+\r\n+        if (hashCode == 0) {\r\n+            hashCode = 1;\r\n+        }\r\n+\r\n+        return hashCode;\r\n+    }\r\n+\r\n+    public static int compare(ChannelBuffer bufferA, ChannelBuffer bufferB) {\r\n+        final int aLen = bufferA.readableBytes();\r\n+        final int bLen = bufferB.readableBytes();\r\n+        final int minLength = Math.min(aLen, bLen);\r\n+\r\n+        int aIndex = bufferA.readerIndex();\r\n+        int bIndex = bufferB.readerIndex();\r\n+\r\n+        for (int i = minLength; i > 0; i--) {\r\n+            byte va = bufferA.getByte(aIndex);\r\n+            byte vb = bufferB.getByte(bIndex);\r\n+            if (va > vb) {\r\n+                return 1;\r\n+            } else if (va < vb) {\r\n+                return -1;\r\n+            }\r\n+            aIndex++;\r\n+            bIndex++;\r\n+        }\r\n+\r\n+        return aLen - bLen;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/AbstractRetryPolicy.java", "source2": "org/apache/dubbo/remoting/etcd/AbstractRetryPolicy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,45 +1,45 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd;\n-\n-public abstract class AbstractRetryPolicy implements RetryPolicy {\n-\n-    private final int maxRetried;\n-\n-    protected AbstractRetryPolicy(int maxRetried) {\n-        this.maxRetried = maxRetried;\n-    }\n-\n-    @Override\n-    public boolean shouldRetry(int retried, long elapsed, boolean sleep) {\n-        if (retried < maxRetried) {\n-            try {\n-                if (sleep) {\n-                    Thread.sleep(getSleepTime(retried, elapsed));\n-                }\n-            } catch (InterruptedException e) {\n-                Thread.currentThread().interrupt();\n-                return false;\n-            }\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    protected abstract long getSleepTime(int retried, long elapsed);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd;\r\n+\r\n+public abstract class AbstractRetryPolicy implements RetryPolicy {\r\n+\r\n+    private final int maxRetried;\r\n+\r\n+    protected AbstractRetryPolicy(int maxRetried) {\r\n+        this.maxRetried = maxRetried;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean shouldRetry(int retried, long elapsed, boolean sleep) {\r\n+        if (retried < maxRetried) {\r\n+            try {\r\n+                if (sleep) {\r\n+                    Thread.sleep(getSleepTime(retried, elapsed));\r\n+                }\r\n+            } catch (InterruptedException e) {\r\n+                Thread.currentThread().interrupt();\r\n+                return false;\r\n+            }\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    protected abstract long getSleepTime(int retried, long elapsed);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/Constants.java", "source2": "org/apache/dubbo/remoting/etcd/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.etcd;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-\n-public interface Constants {\n-    String ETCD3_NOTIFY_MAXTHREADS_KEYS = \"etcd3.notify.maxthreads\";\n-\n-    int DEFAULT_ETCD3_NOTIFY_THREADS = DEFAULT_IO_THREADS;\n-\n-    String DEFAULT_ETCD3_NOTIFY_QUEUES_KEY = \"etcd3.notify.queues\";\n-\n-    int DEFAULT_GRPC_QUEUES = 300_0000;\n-\n-    String RETRY_PERIOD_KEY = \"retry.period\";\n-\n-    int DEFAULT_RETRY_PERIOD = 5 * 1000;\n-\n-    int DEFAULT_SESSION_TIMEOUT = 60 * 1000;\n-\n-    String HTTP_SUBFIX_KEY = \"://\";\n-\n-    String HTTP_KEY = \"http://\";\n-\n-    int DEFAULT_KEEPALIVE_TIMEOUT = DEFAULT_SESSION_TIMEOUT / 2;\n-\n-    String SESSION_TIMEOUT_KEY = \"session\";\n-\n-    int DEFAULT_RECONNECT_PERIOD = 3 * 1000;\n-\n-    String ROUTERS_CATEGORY = \"routers\";\n-\n-    String PROVIDERS_CATEGORY = \"providers\";\n-\n-    String CONSUMERS_CATEGORY = \"consumers\";\n-\n-    String CONFIGURATORS_CATEGORY = \"configurators\";\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.etcd;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+\r\n+public interface Constants {\r\n+    String ETCD3_NOTIFY_MAXTHREADS_KEYS = \"etcd3.notify.maxthreads\";\r\n+\r\n+    int DEFAULT_ETCD3_NOTIFY_THREADS = DEFAULT_IO_THREADS;\r\n+\r\n+    String DEFAULT_ETCD3_NOTIFY_QUEUES_KEY = \"etcd3.notify.queues\";\r\n+\r\n+    int DEFAULT_GRPC_QUEUES = 300_0000;\r\n+\r\n+    String RETRY_PERIOD_KEY = \"retry.period\";\r\n+\r\n+    int DEFAULT_RETRY_PERIOD = 5 * 1000;\r\n+\r\n+    int DEFAULT_SESSION_TIMEOUT = 60 * 1000;\r\n+\r\n+    String HTTP_SUBFIX_KEY = \"://\";\r\n+\r\n+    String HTTP_KEY = \"http://\";\r\n+\r\n+    int DEFAULT_KEEPALIVE_TIMEOUT = DEFAULT_SESSION_TIMEOUT / 2;\r\n+\r\n+    String SESSION_TIMEOUT_KEY = \"session\";\r\n+\r\n+    int DEFAULT_RECONNECT_PERIOD = 3 * 1000;\r\n+\r\n+    String ROUTERS_CATEGORY = \"routers\";\r\n+\r\n+    String PROVIDERS_CATEGORY = \"providers\";\r\n+\r\n+    String CONSUMERS_CATEGORY = \"consumers\";\r\n+\r\n+    String CONFIGURATORS_CATEGORY = \"configurators\";\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/EtcdClient.java", "source2": "org/apache/dubbo/remoting/etcd/EtcdClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,191 +1,191 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.concurrent.CancellationException;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-\n-public interface EtcdClient {\n-\n-    /**\n-     * save the specified path to the etcd registry.\n-     *\n-     * @param path the path to be saved\n-     */\n-    void create(String path);\n-\n-    /**\n-     * save the specified path to the etcd registry.\n-     * if node disconnect from etcd, it will be deleted\n-     * automatically by etcd when session timeout.\n-     *\n-     * @param path the path to be saved\n-     * @return the lease of current path.\n-     */\n-    long createEphemeral(String path);\n-\n-    /**\n-     * remove the specified  from etcd registry.\n-     *\n-     * @param path the path to be removed\n-     */\n-    void delete(String path);\n-\n-    /**\n-     * find direct children directory, excluding path self,\n-     * Never return null.\n-     *\n-     * @param path the path to be found direct children.\n-     * @return direct children directory, contains zero element\n-     * list if children directory not exists.\n-     */\n-    List<String> getChildren(String path);\n-\n-    /**\n-     * register children listener for specified path.\n-     *\n-     * @param path     the path to be watched when children is added, delete or update.\n-     * @param listener when children is changed , listener will be triggered.\n-     * @return direct children directory, contains zero element\n-     * list if children directory not exists.\n-     */\n-    List<String> addChildListener(String path, ChildListener listener);\n-\n-    /**\n-     * find watcher of the children listener for specified path.\n-     *\n-     * @param path     the path to be watched when children is added, delete or update.\n-     * @param listener when children is changed , listener will be triggered.\n-     * @return watcher if find else null\n-     */\n-    <T> T getChildListener(String path, ChildListener listener);\n-\n-    /**\n-     * unregister children lister for specified path.\n-     *\n-     * @param path     the path to be unwatched .\n-     * @param listener when children is changed , lister will be triggered.\n-     */\n-    void removeChildListener(String path, ChildListener listener);\n-\n-    /**\n-     * support connection notify if connection state was changed.\n-     *\n-     * @param listener if state changed, listener will be triggered.\n-     */\n-    void addStateListener(StateListener listener);\n-\n-    /**\n-     * remove connection notify if connection state was changed.\n-     *\n-     * @param listener remove already registered listener, if listener\n-     *                 not exists nothing happened.\n-     */\n-    void removeStateListener(StateListener listener);\n-\n-    /**\n-     * test if current client is active.\n-     *\n-     * @return true if connection is active else false.\n-     */\n-    boolean isConnected();\n-\n-    /**\n-     * close current client and release all resourses.\n-     */\n-    void close();\n-\n-    URL getUrl();\n-\n-    /***\n-     * create new lease from specified second ,it should be waiting if failed.<p>\n-     *\n-     * @param second lease time (support second only).\n-     * @return lease id from etcd\n-     */\n-    long createLease(long second);\n-\n-    /***\n-     * create new lease from specified ttl second before waiting specified timeout.<p>\n-     *\n-     * @param ttl lease time (support second only).\n-     * @param timeout the maximum time to wait\n-     * @param unit the time unit of the timeout argument\n-     * @throws CancellationException if this future was cancelled\n-     * @throws ExecutionException if this future completed exceptionally\n-     * @throws InterruptedException if the current thread was interrupted\n-     * while waiting\n-     * @throws TimeoutException if the wait timed out\n-     * @return lease id from etcd\n-     */\n-    long createLease(long ttl, long timeout, TimeUnit unit)\n-            throws InterruptedException, ExecutionException, TimeoutException;\n-\n-    /**\n-     * revoke specified lease, any associated path will removed automatically.\n-     *\n-     * @param lease to be removed lease\n-     */\n-    void revokeLease(long lease);\n-\n-\n-    /**\n-     * Get the value of the specified key.\n-     * @param key the specified key\n-     * @return null if the value is not found\n-     */\n-    String getKVValue(String key);\n-\n-    /**\n-     * Put the key value pair to etcd\n-     * @param key the specified key\n-     * @param value the paired value\n-     * @return true if put success\n-     */\n-    boolean put(String key, String value);\n-\n-    /**\n-     * Put the key value pair to etcd (Ephemeral)\n-     * @param key the specified key\n-     * @param value the paired value\n-     * @return true if put success\n-     */\n-    boolean putEphemeral(String key, String value);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.CancellationException;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+\r\n+public interface EtcdClient {\r\n+\r\n+    /**\r\n+     * save the specified path to the etcd registry.\r\n+     *\r\n+     * @param path the path to be saved\r\n+     */\r\n+    void create(String path);\r\n+\r\n+    /**\r\n+     * save the specified path to the etcd registry.\r\n+     * if node disconnect from etcd, it will be deleted\r\n+     * automatically by etcd when session timeout.\r\n+     *\r\n+     * @param path the path to be saved\r\n+     * @return the lease of current path.\r\n+     */\r\n+    long createEphemeral(String path);\r\n+\r\n+    /**\r\n+     * remove the specified  from etcd registry.\r\n+     *\r\n+     * @param path the path to be removed\r\n+     */\r\n+    void delete(String path);\r\n+\r\n+    /**\r\n+     * find direct children directory, excluding path self,\r\n+     * Never return null.\r\n+     *\r\n+     * @param path the path to be found direct children.\r\n+     * @return direct children directory, contains zero element\r\n+     * list if children directory not exists.\r\n+     */\r\n+    List<String> getChildren(String path);\r\n+\r\n+    /**\r\n+     * register children listener for specified path.\r\n+     *\r\n+     * @param path     the path to be watched when children is added, delete or update.\r\n+     * @param listener when children is changed , listener will be triggered.\r\n+     * @return direct children directory, contains zero element\r\n+     * list if children directory not exists.\r\n+     */\r\n+    List<String> addChildListener(String path, ChildListener listener);\r\n+\r\n+    /**\r\n+     * find watcher of the children listener for specified path.\r\n+     *\r\n+     * @param path     the path to be watched when children is added, delete or update.\r\n+     * @param listener when children is changed , listener will be triggered.\r\n+     * @return watcher if find else null\r\n+     */\r\n+    <T> T getChildListener(String path, ChildListener listener);\r\n+\r\n+    /**\r\n+     * unregister children lister for specified path.\r\n+     *\r\n+     * @param path     the path to be unwatched .\r\n+     * @param listener when children is changed , lister will be triggered.\r\n+     */\r\n+    void removeChildListener(String path, ChildListener listener);\r\n+\r\n+    /**\r\n+     * support connection notify if connection state was changed.\r\n+     *\r\n+     * @param listener if state changed, listener will be triggered.\r\n+     */\r\n+    void addStateListener(StateListener listener);\r\n+\r\n+    /**\r\n+     * remove connection notify if connection state was changed.\r\n+     *\r\n+     * @param listener remove already registered listener, if listener\r\n+     *                 not exists nothing happened.\r\n+     */\r\n+    void removeStateListener(StateListener listener);\r\n+\r\n+    /**\r\n+     * test if current client is active.\r\n+     *\r\n+     * @return true if connection is active else false.\r\n+     */\r\n+    boolean isConnected();\r\n+\r\n+    /**\r\n+     * close current client and release all resourses.\r\n+     */\r\n+    void close();\r\n+\r\n+    URL getUrl();\r\n+\r\n+    /***\r\n+     * create new lease from specified second ,it should be waiting if failed.<p>\r\n+     *\r\n+     * @param second lease time (support second only).\r\n+     * @return lease id from etcd\r\n+     */\r\n+    long createLease(long second);\r\n+\r\n+    /***\r\n+     * create new lease from specified ttl second before waiting specified timeout.<p>\r\n+     *\r\n+     * @param ttl lease time (support second only).\r\n+     * @param timeout the maximum time to wait\r\n+     * @param unit the time unit of the timeout argument\r\n+     * @throws CancellationException if this future was cancelled\r\n+     * @throws ExecutionException if this future completed exceptionally\r\n+     * @throws InterruptedException if the current thread was interrupted\r\n+     * while waiting\r\n+     * @throws TimeoutException if the wait timed out\r\n+     * @return lease id from etcd\r\n+     */\r\n+    long createLease(long ttl, long timeout, TimeUnit unit)\r\n+            throws InterruptedException, ExecutionException, TimeoutException;\r\n+\r\n+    /**\r\n+     * revoke specified lease, any associated path will removed automatically.\r\n+     *\r\n+     * @param lease to be removed lease\r\n+     */\r\n+    void revokeLease(long lease);\r\n+\r\n+\r\n+    /**\r\n+     * Get the value of the specified key.\r\n+     * @param key the specified key\r\n+     * @return null if the value is not found\r\n+     */\r\n+    String getKVValue(String key);\r\n+\r\n+    /**\r\n+     * Put the key value pair to etcd\r\n+     * @param key the specified key\r\n+     * @param value the paired value\r\n+     * @return true if put success\r\n+     */\r\n+    boolean put(String key, String value);\r\n+\r\n+    /**\r\n+     * Put the key value pair to etcd (Ephemeral)\r\n+     * @param key the specified key\r\n+     * @param value the paired value\r\n+     * @return true if put success\r\n+     */\r\n+    boolean putEphemeral(String key, String value);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/EtcdTransporter.java", "source2": "org/apache/dubbo/remoting/etcd/EtcdTransporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,47 +1,47 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.Constants;\n-\n-@SPI(\"jetcd\")\n-public interface EtcdTransporter {\n-\n-    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\n-    EtcdClient connect(URL url);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+\r\n+@SPI(\"jetcd\")\r\n+public interface EtcdTransporter {\r\n+\r\n+    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\r\n+    EtcdClient connect(URL url);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/RetryPolicy.java", "source2": "org/apache/dubbo/remoting/etcd/RetryPolicy.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd;\n-\n-public interface RetryPolicy {\n-\n-    /**\n-     * Whether retry is supported when operation fails.\n-     *\n-     * @param retried the number of times retried so far\n-     * @param elapsed the elapsed time in millisecond since the operation was attempted\n-     * @param sleep   should be sleep\n-     * @return true should be retry\n-     */\n-    boolean shouldRetry(int retried, long elapsed, boolean sleep);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd;\r\n+\r\n+public interface RetryPolicy {\r\n+\r\n+    /**\r\n+     * Whether retry is supported when operation fails.\r\n+     *\r\n+     * @param retried the number of times retried so far\r\n+     * @param elapsed the elapsed time in millisecond since the operation was attempted\r\n+     * @param sleep   should be sleep\r\n+     * @return true should be retry\r\n+     */\r\n+    boolean shouldRetry(int retried, long elapsed, boolean sleep);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/jetcd/ConnectionStateListener.java", "source2": "org/apache/dubbo/remoting/etcd/jetcd/ConnectionStateListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.etcd.jetcd;\n-\n-import io.etcd.jetcd.Client;\n-\n-public interface ConnectionStateListener {\n-\n-    /**\n-     * Called when there is a state change in the connection\n-     *\n-     * @param client   the client\n-     * @param newState the new state\n-     */\n-    void stateChanged(Client client, int newState);\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.etcd.jetcd;\r\n+\r\n+import io.etcd.jetcd.Client;\r\n+\r\n+public interface ConnectionStateListener {\r\n+\r\n+    /**\r\n+     * Called when there is a state change in the connection\r\n+     *\r\n+     * @param client   the client\r\n+     * @param newState the new state\r\n+     */\r\n+    void stateChanged(Client client, int newState);\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdClient.java", "source2": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,473 +1,473 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.etcd.jetcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.etcd.ChildListener;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-import org.apache.dubbo.remoting.etcd.option.OptionUtil;\n-import org.apache.dubbo.remoting.etcd.support.AbstractEtcdClient;\n-\n-import com.google.protobuf.ByteString;\n-import io.etcd.jetcd.ByteSequence;\n-import io.etcd.jetcd.api.Event;\n-import io.etcd.jetcd.api.KeyValue;\n-import io.etcd.jetcd.api.WatchCancelRequest;\n-import io.etcd.jetcd.api.WatchCreateRequest;\n-import io.etcd.jetcd.api.WatchGrpc;\n-import io.etcd.jetcd.api.WatchRequest;\n-import io.etcd.jetcd.api.WatchResponse;\n-import io.etcd.jetcd.common.exception.ClosedClientException;\n-import io.grpc.ManagedChannel;\n-import io.grpc.Status;\n-import io.grpc.stub.StreamObserver;\n-import io.netty.util.internal.ConcurrentSet;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.Iterator;\n-import java.util.List;\n-import java.util.Random;\n-import java.util.Set;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static java.util.stream.Collectors.toList;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_ETCD3_NOTIFY_QUEUES_KEY;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_ETCD3_NOTIFY_THREADS;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_GRPC_QUEUES;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RETRY_PERIOD;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_SESSION_TIMEOUT;\n-import static org.apache.dubbo.remoting.etcd.Constants.ETCD3_NOTIFY_MAXTHREADS_KEYS;\n-import static org.apache.dubbo.remoting.etcd.Constants.RETRY_PERIOD_KEY;\n-import static org.apache.dubbo.remoting.etcd.jetcd.JEtcdClientWrapper.UTF_8;\n-\n-/**\n- * etcd3 client.\n- */\n-public class JEtcdClient extends AbstractEtcdClient<JEtcdClient.EtcdWatcher> {\n-\n-    private JEtcdClientWrapper clientWrapper;\n-    private ScheduledExecutorService reconnectSchedule;\n-\n-    private ExecutorService notifyExecutor;\n-\n-    private int delayPeriod;\n-    private Logger logger = LoggerFactory.getLogger(JEtcdClient.class);\n-\n-    public JEtcdClient(URL url) {\n-        super(url);\n-        try {\n-            clientWrapper = new JEtcdClientWrapper(url);\n-            clientWrapper.setConnectionStateListener((client, state) -> {\n-                if (state == StateListener.CONNECTED) {\n-                    JEtcdClient.this.stateChanged(StateListener.CONNECTED);\n-                } else if (state == StateListener.DISCONNECTED) {\n-                    JEtcdClient.this.stateChanged(StateListener.DISCONNECTED);\n-                }\n-            });\n-            delayPeriod = getUrl().getParameter(RETRY_PERIOD_KEY, DEFAULT_RETRY_PERIOD);\n-            reconnectSchedule = Executors.newScheduledThreadPool(1,\n-                    new NamedThreadFactory(\"etcd3-watch-auto-reconnect\"));\n-\n-            notifyExecutor = new ThreadPoolExecutor(\n-                    1\n-                    , url.getParameter(ETCD3_NOTIFY_MAXTHREADS_KEYS, DEFAULT_ETCD3_NOTIFY_THREADS)\n-                    , DEFAULT_SESSION_TIMEOUT\n-                    , TimeUnit.MILLISECONDS\n-                    , new LinkedBlockingQueue<Runnable>(url.getParameter(DEFAULT_ETCD3_NOTIFY_QUEUES_KEY, DEFAULT_GRPC_QUEUES * 3))\n-                    , new NamedThreadFactory(\"etcd3-notify\", true));\n-\n-            clientWrapper.start();\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void doCreatePersistent(String path) {\n-        clientWrapper.createPersistent(path);\n-    }\n-\n-    @Override\n-    public long doCreateEphemeral(String path) {\n-        return clientWrapper.createEphemeral(path);\n-    }\n-\n-    @Override\n-    public boolean checkExists(String path) {\n-        return clientWrapper.checkExists(path);\n-    }\n-\n-    @Override\n-    public EtcdWatcher createChildWatcherListener(String path, ChildListener listener) {\n-        return new EtcdWatcher(listener);\n-    }\n-\n-    @Override\n-    public List<String> addChildWatcherListener(String path, EtcdWatcher etcdWatcher) {\n-        return etcdWatcher.forPath(path);\n-    }\n-\n-    @Override\n-    public void removeChildWatcherListener(String path, EtcdWatcher etcdWatcher) {\n-        etcdWatcher.unwatch();\n-    }\n-\n-    @Override\n-    public List<String> getChildren(String path) {\n-        return clientWrapper.getChildren(path);\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return clientWrapper.isConnected();\n-    }\n-\n-    @Override\n-    public long createLease(long second) {\n-        return clientWrapper.createLease(second);\n-    }\n-\n-    @Override\n-    public long createLease(long ttl, long timeout, TimeUnit unit)\n-            throws InterruptedException, ExecutionException, TimeoutException {\n-        return clientWrapper.createLease(ttl, timeout, unit);\n-    }\n-\n-    @Override\n-    public void delete(String path) {\n-        clientWrapper.delete(path);\n-    }\n-\n-    @Override\n-    public void revokeLease(long lease) {\n-        clientWrapper.revokeLease(lease);\n-    }\n-\n-    @Override\n-    public void doClose() {\n-        try {\n-            if (notifyExecutor != null) {\n-                ExecutorUtil.shutdownNow(notifyExecutor, 100);\n-            }\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-\n-        try {\n-            if (reconnectSchedule != null) {\n-                ExecutorUtil.shutdownNow(reconnectSchedule, 100);\n-            }\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        } finally {\n-            clientWrapper.doClose();\n-        }\n-    }\n-\n-    @Override\n-    public String getKVValue(String key) {\n-        return clientWrapper.getKVValue(key);\n-    }\n-\n-    @Override\n-    public boolean put(String key, String value) {\n-        return clientWrapper.put(key, value);\n-    }\n-\n-    @Override\n-    public boolean putEphemeral(String key, String value) {\n-        return clientWrapper.putEphemeral(key, value);\n-    }\n-\n-    public ManagedChannel getChannel() {\n-        return clientWrapper.getChannel();\n-    }\n-\n-    public class EtcdWatcher implements StreamObserver<WatchResponse> {\n-\n-        protected WatchGrpc.WatchStub watchStub;\n-        protected StreamObserver<WatchRequest> watchRequest;\n-        protected long watchId;\n-        protected String path;\n-        protected Throwable throwable;\n-        protected volatile Set<String> urls = new ConcurrentSet<>();\n-        private ChildListener listener;\n-\n-        protected ReentrantLock lock = new ReentrantLock(true);\n-\n-        public EtcdWatcher(ChildListener listener) {\n-            this.listener = listener;\n-        }\n-\n-        @Override\n-        public void onNext(WatchResponse response) {\n-\n-            // prevents grpc on sending watchResponse to a closed watch client.\n-            if (!isConnected()) {\n-                return;\n-            }\n-\n-            watchId = response.getWatchId();\n-\n-            if (listener != null) {\n-                int modified = 0;\n-                String service = null;\n-                Iterator<Event> iterator = response.getEventsList().iterator();\n-                while (iterator.hasNext()) {\n-                    Event event = iterator.next();\n-                    switch (event.getType()) {\n-                        case PUT: {\n-                            if (((service = find(event)) != null)\n-                                    && safeUpdate(service, true)) {\n-                                modified++;\n-                            }\n-                            break;\n-                        }\n-                        case DELETE: {\n-                            if (((service = find(event)) != null)\n-                                    && safeUpdate(service, false)) {\n-                                modified++;\n-                            }\n-                            break;\n-                        }\n-                        default:\n-                            break;\n-                    }\n-                }\n-                if (modified > 0) {\n-                    notifyExecutor.execute(() -> listener.childChanged(path, new ArrayList<>(urls)));\n-                }\n-\n-            }\n-        }\n-\n-        @Override\n-        public void onError(Throwable e) {\n-            tryReconnect(e);\n-        }\n-\n-        public void unwatch() {\n-\n-            // prevents grpc on sending watchResponse to a closed watch client.\n-            if (!isConnected()) {\n-                return;\n-            }\n-\n-            try {\n-                /**\n-                 * issue : https://github.com/apache/dubbo/issues/4115\n-                 *\n-                 * When the network is reconnected, the listener is empty\n-                 * and the data cannot be received.\n-                 */\n-                // this.listener = null;\n-\n-                if (watchRequest != null) {\n-                    WatchCancelRequest watchCancelRequest =\n-                            WatchCancelRequest.newBuilder().setWatchId(watchId).build();\n-                    WatchRequest cancelRequest = WatchRequest.newBuilder()\n-                            .setCancelRequest(watchCancelRequest).build();\n-                    this.watchRequest.onNext(cancelRequest);\n-                }\n-            } catch (Exception ignored) {\n-                logger.warn(\"Failed to cancel watch for path '\" + path + \"'\", ignored);\n-            }\n-        }\n-\n-        public List<String> forPath(String path) {\n-\n-            if (!isConnected()) {\n-                throw new ClosedClientException(\"watch client has been closed, path '\" + path + \"'\");\n-            }\n-            if (this.path != null) {\n-                unwatch();\n-            }\n-\n-            this.path = path;\n-\n-            lock.lock();\n-            try {\n-\n-                this.watchStub = WatchGrpc.newStub(clientWrapper.getChannel());\n-                this.watchRequest = watchStub.watch(this);\n-                this.watchRequest.onNext(nextRequest());\n-\n-                List<String> children = clientWrapper.getChildren(path);\n-                /**\n-                 * caching the current service\n-                 */\n-                if (!children.isEmpty()) {\n-                    this.urls.addAll(filterChildren(children));\n-                }\n-\n-                return new ArrayList<>(urls);\n-            } finally {\n-                lock.unlock();\n-            }\n-        }\n-\n-        private boolean safeUpdate(String service, boolean add) {\n-            lock.lock();\n-            try {\n-                /**\n-                 * If the collection already contains the specified service, do nothing\n-                 */\n-                return add ? this.urls.add(service) : this.urls.remove(service);\n-            } finally {\n-                lock.unlock();\n-            }\n-        }\n-\n-        private String find(Event event) {\n-            KeyValue keyValue = event.getKv();\n-            String key = keyValue.getKey().toStringUtf8();\n-\n-            int len = path.length(), index = len, count = 0;\n-            if (key.length() >= index) {\n-                for (; (index = key.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\n-                    if (count++ > 1) {\n-                        break;\n-                    }\n-                }\n-            }\n-\n-            /**\n-             * if children changed , we should refresh invokers\n-             */\n-            if (count == 1) {\n-                /**\n-                 * remove prefix\n-                 */\n-                return key.substring(len + 1);\n-            }\n-\n-            return null;\n-        }\n-\n-        private List<String> filterChildren(List<String> children) {\n-            if (children == null) {\n-                return Collections.emptyList();\n-            }\n-            if (children.size() <= 0) {\n-                return children;\n-            }\n-            final int len = path.length();\n-            return children.stream().parallel()\n-                    .filter(child -> {\n-                        int index = len, count = 0;\n-                        if (child.length() > len) {\n-                            for (; (index = child.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\n-                                if (count++ > 1) {\n-                                    break;\n-                                }\n-                            }\n-                        }\n-                        return count == 1;\n-                    })\n-                    .map(child -> child.substring(len + 1))\n-                    .collect(toList());\n-        }\n-\n-        /**\n-         * create new watching request for current path.\n-         */\n-        protected WatchRequest nextRequest() {\n-\n-            WatchCreateRequest.Builder builder = WatchCreateRequest.newBuilder()\n-                    .setKey(ByteString.copyFromUtf8(path))\n-                    .setRangeEnd(ByteString.copyFrom(\n-                            OptionUtil.prefixEndOf(ByteSequence.from(path, UTF_8)).getBytes()))\n-                    .setProgressNotify(true);\n-\n-            return WatchRequest.newBuilder().setCreateRequest(builder).build();\n-        }\n-\n-        public void tryReconnect(Throwable e) {\n-\n-            this.throwable = e;\n-\n-            logger.error(\"watcher client has error occurred, current path '\" + path + \"'\", e);\n-\n-            // prevents grpc on sending error to a closed watch client.\n-            if (!isConnected()) {\n-                return;\n-            }\n-\n-\n-            Status status = Status.fromThrowable(e);\n-            // system may be recover later, current connect won't be lost\n-            if (OptionUtil.isHaltError(status) || OptionUtil.isNoLeaderError(status)) {\n-                reconnectSchedule.schedule(this::reconnect, new Random().nextInt(delayPeriod), TimeUnit.MILLISECONDS);\n-                return;\n-            }\n-            // reconnect with a delay; avoiding immediate retry on a long connection downtime.\n-            reconnectSchedule.schedule(this::reconnect, new Random().nextInt(delayPeriod), TimeUnit.MILLISECONDS);\n-        }\n-\n-        protected synchronized void reconnect() {\n-            this.closeWatchRequest();\n-            this.recreateWatchRequest();\n-        }\n-\n-        protected void recreateWatchRequest() {\n-            if (watchRequest == null) {\n-                this.watchStub = WatchGrpc.newStub(clientWrapper.getChannel());\n-                this.watchRequest = watchStub.watch(this);\n-            }\n-            this.watchRequest.onNext(nextRequest());\n-            this.throwable = null;\n-            logger.warn(\"watch client retried connect for path '\" + path + \"', connection status : \" + isConnected());\n-        }\n-\n-        protected void closeWatchRequest() {\n-            if (this.watchRequest == null) {\n-                return;\n-            }\n-\n-            try {\n-                WatchCancelRequest watchCancelRequest =\n-                        WatchCancelRequest.newBuilder().setWatchId(watchId).build();\n-                WatchRequest cancelRequest = WatchRequest.newBuilder()\n-                        .setCancelRequest(watchCancelRequest).build();\n-                watchRequest.onNext(cancelRequest);\n-            } finally {\n-                this.watchRequest.onCompleted();\n-                this.watchRequest = null;\n-            }\n-        }\n-\n-        @Override\n-        public void onCompleted() {\n-            // do not touch this method, if you want terminate this stream.\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.etcd.jetcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.etcd.ChildListener;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+import org.apache.dubbo.remoting.etcd.option.OptionUtil;\r\n+import org.apache.dubbo.remoting.etcd.support.AbstractEtcdClient;\r\n+\r\n+import com.google.protobuf.ByteString;\r\n+import io.etcd.jetcd.ByteSequence;\r\n+import io.etcd.jetcd.api.Event;\r\n+import io.etcd.jetcd.api.KeyValue;\r\n+import io.etcd.jetcd.api.WatchCancelRequest;\r\n+import io.etcd.jetcd.api.WatchCreateRequest;\r\n+import io.etcd.jetcd.api.WatchGrpc;\r\n+import io.etcd.jetcd.api.WatchRequest;\r\n+import io.etcd.jetcd.api.WatchResponse;\r\n+import io.etcd.jetcd.common.exception.ClosedClientException;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.Status;\r\n+import io.grpc.stub.StreamObserver;\r\n+import io.netty.util.internal.ConcurrentSet;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.Iterator;\r\n+import java.util.List;\r\n+import java.util.Random;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static java.util.stream.Collectors.toList;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_ETCD3_NOTIFY_QUEUES_KEY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_ETCD3_NOTIFY_THREADS;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_GRPC_QUEUES;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RETRY_PERIOD;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_SESSION_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.ETCD3_NOTIFY_MAXTHREADS_KEYS;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.RETRY_PERIOD_KEY;\r\n+import static org.apache.dubbo.remoting.etcd.jetcd.JEtcdClientWrapper.UTF_8;\r\n+\r\n+/**\r\n+ * etcd3 client.\r\n+ */\r\n+public class JEtcdClient extends AbstractEtcdClient<JEtcdClient.EtcdWatcher> {\r\n+\r\n+    private JEtcdClientWrapper clientWrapper;\r\n+    private ScheduledExecutorService reconnectSchedule;\r\n+\r\n+    private ExecutorService notifyExecutor;\r\n+\r\n+    private int delayPeriod;\r\n+    private Logger logger = LoggerFactory.getLogger(JEtcdClient.class);\r\n+\r\n+    public JEtcdClient(URL url) {\r\n+        super(url);\r\n+        try {\r\n+            clientWrapper = new JEtcdClientWrapper(url);\r\n+            clientWrapper.setConnectionStateListener((client, state) -> {\r\n+                if (state == StateListener.CONNECTED) {\r\n+                    JEtcdClient.this.stateChanged(StateListener.CONNECTED);\r\n+                } else if (state == StateListener.DISCONNECTED) {\r\n+                    JEtcdClient.this.stateChanged(StateListener.DISCONNECTED);\r\n+                }\r\n+            });\r\n+            delayPeriod = getUrl().getParameter(RETRY_PERIOD_KEY, DEFAULT_RETRY_PERIOD);\r\n+            reconnectSchedule = Executors.newScheduledThreadPool(1,\r\n+                    new NamedThreadFactory(\"etcd3-watch-auto-reconnect\"));\r\n+\r\n+            notifyExecutor = new ThreadPoolExecutor(\r\n+                    1\r\n+                    , url.getParameter(ETCD3_NOTIFY_MAXTHREADS_KEYS, DEFAULT_ETCD3_NOTIFY_THREADS)\r\n+                    , DEFAULT_SESSION_TIMEOUT\r\n+                    , TimeUnit.MILLISECONDS\r\n+                    , new LinkedBlockingQueue<Runnable>(url.getParameter(DEFAULT_ETCD3_NOTIFY_QUEUES_KEY, DEFAULT_GRPC_QUEUES * 3))\r\n+                    , new NamedThreadFactory(\"etcd3-notify\", true));\r\n+\r\n+            clientWrapper.start();\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doCreatePersistent(String path) {\r\n+        clientWrapper.createPersistent(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public long doCreateEphemeral(String path) {\r\n+        return clientWrapper.createEphemeral(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean checkExists(String path) {\r\n+        return clientWrapper.checkExists(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public EtcdWatcher createChildWatcherListener(String path, ChildListener listener) {\r\n+        return new EtcdWatcher(listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> addChildWatcherListener(String path, EtcdWatcher etcdWatcher) {\r\n+        return etcdWatcher.forPath(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeChildWatcherListener(String path, EtcdWatcher etcdWatcher) {\r\n+        etcdWatcher.unwatch();\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> getChildren(String path) {\r\n+        return clientWrapper.getChildren(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return clientWrapper.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long createLease(long second) {\r\n+        return clientWrapper.createLease(second);\r\n+    }\r\n+\r\n+    @Override\r\n+    public long createLease(long ttl, long timeout, TimeUnit unit)\r\n+            throws InterruptedException, ExecutionException, TimeoutException {\r\n+        return clientWrapper.createLease(ttl, timeout, unit);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void delete(String path) {\r\n+        clientWrapper.delete(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void revokeLease(long lease) {\r\n+        clientWrapper.revokeLease(lease);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void doClose() {\r\n+        try {\r\n+            if (notifyExecutor != null) {\r\n+                ExecutorUtil.shutdownNow(notifyExecutor, 100);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+\r\n+        try {\r\n+            if (reconnectSchedule != null) {\r\n+                ExecutorUtil.shutdownNow(reconnectSchedule, 100);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        } finally {\r\n+            clientWrapper.doClose();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getKVValue(String key) {\r\n+        return clientWrapper.getKVValue(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean put(String key, String value) {\r\n+        return clientWrapper.put(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean putEphemeral(String key, String value) {\r\n+        return clientWrapper.putEphemeral(key, value);\r\n+    }\r\n+\r\n+    public ManagedChannel getChannel() {\r\n+        return clientWrapper.getChannel();\r\n+    }\r\n+\r\n+    public class EtcdWatcher implements StreamObserver<WatchResponse> {\r\n+\r\n+        protected WatchGrpc.WatchStub watchStub;\r\n+        protected StreamObserver<WatchRequest> watchRequest;\r\n+        protected long watchId;\r\n+        protected String path;\r\n+        protected Throwable throwable;\r\n+        protected volatile Set<String> urls = new ConcurrentSet<>();\r\n+        private ChildListener listener;\r\n+\r\n+        protected ReentrantLock lock = new ReentrantLock(true);\r\n+\r\n+        public EtcdWatcher(ChildListener listener) {\r\n+            this.listener = listener;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onNext(WatchResponse response) {\r\n+\r\n+            // prevents grpc on sending watchResponse to a closed watch client.\r\n+            if (!isConnected()) {\r\n+                return;\r\n+            }\r\n+\r\n+            watchId = response.getWatchId();\r\n+\r\n+            if (listener != null) {\r\n+                int modified = 0;\r\n+                String service = null;\r\n+                Iterator<Event> iterator = response.getEventsList().iterator();\r\n+                while (iterator.hasNext()) {\r\n+                    Event event = iterator.next();\r\n+                    switch (event.getType()) {\r\n+                        case PUT: {\r\n+                            if (((service = find(event)) != null)\r\n+                                    && safeUpdate(service, true)) {\r\n+                                modified++;\r\n+                            }\r\n+                            break;\r\n+                        }\r\n+                        case DELETE: {\r\n+                            if (((service = find(event)) != null)\r\n+                                    && safeUpdate(service, false)) {\r\n+                                modified++;\r\n+                            }\r\n+                            break;\r\n+                        }\r\n+                        default:\r\n+                            break;\r\n+                    }\r\n+                }\r\n+                if (modified > 0) {\r\n+                    notifyExecutor.execute(() -> listener.childChanged(path, new ArrayList<>(urls)));\r\n+                }\r\n+\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onError(Throwable e) {\r\n+            tryReconnect(e);\r\n+        }\r\n+\r\n+        public void unwatch() {\r\n+\r\n+            // prevents grpc on sending watchResponse to a closed watch client.\r\n+            if (!isConnected()) {\r\n+                return;\r\n+            }\r\n+\r\n+            try {\r\n+                /**\r\n+                 * issue : https://github.com/apache/dubbo/issues/4115\r\n+                 *\r\n+                 * When the network is reconnected, the listener is empty\r\n+                 * and the data cannot be received.\r\n+                 */\r\n+                // this.listener = null;\r\n+\r\n+                if (watchRequest != null) {\r\n+                    WatchCancelRequest watchCancelRequest =\r\n+                            WatchCancelRequest.newBuilder().setWatchId(watchId).build();\r\n+                    WatchRequest cancelRequest = WatchRequest.newBuilder()\r\n+                            .setCancelRequest(watchCancelRequest).build();\r\n+                    this.watchRequest.onNext(cancelRequest);\r\n+                }\r\n+            } catch (Exception ignored) {\r\n+                logger.warn(\"Failed to cancel watch for path '\" + path + \"'\", ignored);\r\n+            }\r\n+        }\r\n+\r\n+        public List<String> forPath(String path) {\r\n+\r\n+            if (!isConnected()) {\r\n+                throw new ClosedClientException(\"watch client has been closed, path '\" + path + \"'\");\r\n+            }\r\n+            if (this.path != null) {\r\n+                unwatch();\r\n+            }\r\n+\r\n+            this.path = path;\r\n+\r\n+            lock.lock();\r\n+            try {\r\n+\r\n+                this.watchStub = WatchGrpc.newStub(clientWrapper.getChannel());\r\n+                this.watchRequest = watchStub.watch(this);\r\n+                this.watchRequest.onNext(nextRequest());\r\n+\r\n+                List<String> children = clientWrapper.getChildren(path);\r\n+                /**\r\n+                 * caching the current service\r\n+                 */\r\n+                if (!children.isEmpty()) {\r\n+                    this.urls.addAll(filterChildren(children));\r\n+                }\r\n+\r\n+                return new ArrayList<>(urls);\r\n+            } finally {\r\n+                lock.unlock();\r\n+            }\r\n+        }\r\n+\r\n+        private boolean safeUpdate(String service, boolean add) {\r\n+            lock.lock();\r\n+            try {\r\n+                /**\r\n+                 * If the collection already contains the specified service, do nothing\r\n+                 */\r\n+                return add ? this.urls.add(service) : this.urls.remove(service);\r\n+            } finally {\r\n+                lock.unlock();\r\n+            }\r\n+        }\r\n+\r\n+        private String find(Event event) {\r\n+            KeyValue keyValue = event.getKv();\r\n+            String key = keyValue.getKey().toStringUtf8();\r\n+\r\n+            int len = path.length(), index = len, count = 0;\r\n+            if (key.length() >= index) {\r\n+                for (; (index = key.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\r\n+                    if (count++ > 1) {\r\n+                        break;\r\n+                    }\r\n+                }\r\n+            }\r\n+\r\n+            /**\r\n+             * if children changed , we should refresh invokers\r\n+             */\r\n+            if (count == 1) {\r\n+                /**\r\n+                 * remove prefix\r\n+                 */\r\n+                return key.substring(len + 1);\r\n+            }\r\n+\r\n+            return null;\r\n+        }\r\n+\r\n+        private List<String> filterChildren(List<String> children) {\r\n+            if (children == null) {\r\n+                return Collections.emptyList();\r\n+            }\r\n+            if (children.size() <= 0) {\r\n+                return children;\r\n+            }\r\n+            final int len = path.length();\r\n+            return children.stream().parallel()\r\n+                    .filter(child -> {\r\n+                        int index = len, count = 0;\r\n+                        if (child.length() > len) {\r\n+                            for (; (index = child.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\r\n+                                if (count++ > 1) {\r\n+                                    break;\r\n+                                }\r\n+                            }\r\n+                        }\r\n+                        return count == 1;\r\n+                    })\r\n+                    .map(child -> child.substring(len + 1))\r\n+                    .collect(toList());\r\n+        }\r\n+\r\n+        /**\r\n+         * create new watching request for current path.\r\n+         */\r\n+        protected WatchRequest nextRequest() {\r\n+\r\n+            WatchCreateRequest.Builder builder = WatchCreateRequest.newBuilder()\r\n+                    .setKey(ByteString.copyFromUtf8(path))\r\n+                    .setRangeEnd(ByteString.copyFrom(\r\n+                            OptionUtil.prefixEndOf(ByteSequence.from(path, UTF_8)).getBytes()))\r\n+                    .setProgressNotify(true);\r\n+\r\n+            return WatchRequest.newBuilder().setCreateRequest(builder).build();\r\n+        }\r\n+\r\n+        public void tryReconnect(Throwable e) {\r\n+\r\n+            this.throwable = e;\r\n+\r\n+            logger.error(\"watcher client has error occurred, current path '\" + path + \"'\", e);\r\n+\r\n+            // prevents grpc on sending error to a closed watch client.\r\n+            if (!isConnected()) {\r\n+                return;\r\n+            }\r\n+\r\n+\r\n+            Status status = Status.fromThrowable(e);\r\n+            // system may be recover later, current connect won't be lost\r\n+            if (OptionUtil.isHaltError(status) || OptionUtil.isNoLeaderError(status)) {\r\n+                reconnectSchedule.schedule(this::reconnect, new Random().nextInt(delayPeriod), TimeUnit.MILLISECONDS);\r\n+                return;\r\n+            }\r\n+            // reconnect with a delay; avoiding immediate retry on a long connection downtime.\r\n+            reconnectSchedule.schedule(this::reconnect, new Random().nextInt(delayPeriod), TimeUnit.MILLISECONDS);\r\n+        }\r\n+\r\n+        protected synchronized void reconnect() {\r\n+            this.closeWatchRequest();\r\n+            this.recreateWatchRequest();\r\n+        }\r\n+\r\n+        protected void recreateWatchRequest() {\r\n+            if (watchRequest == null) {\r\n+                this.watchStub = WatchGrpc.newStub(clientWrapper.getChannel());\r\n+                this.watchRequest = watchStub.watch(this);\r\n+            }\r\n+            this.watchRequest.onNext(nextRequest());\r\n+            this.throwable = null;\r\n+            logger.warn(\"watch client retried connect for path '\" + path + \"', connection status : \" + isConnected());\r\n+        }\r\n+\r\n+        protected void closeWatchRequest() {\r\n+            if (this.watchRequest == null) {\r\n+                return;\r\n+            }\r\n+\r\n+            try {\r\n+                WatchCancelRequest watchCancelRequest =\r\n+                        WatchCancelRequest.newBuilder().setWatchId(watchId).build();\r\n+                WatchRequest cancelRequest = WatchRequest.newBuilder()\r\n+                        .setCancelRequest(watchCancelRequest).build();\r\n+                watchRequest.onNext(cancelRequest);\r\n+            } finally {\r\n+                this.watchRequest.onCompleted();\r\n+                this.watchRequest = null;\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void onCompleted() {\r\n+            // do not touch this method, if you want terminate this stream.\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdClientWrapper.java", "source2": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdClientWrapper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,752 +1,752 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.etcd.jetcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.etcd.RetryPolicy;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-\n-import io.etcd.jetcd.ByteSequence;\n-import io.etcd.jetcd.Client;\n-import io.etcd.jetcd.ClientBuilder;\n-import io.etcd.jetcd.KeyValue;\n-import io.etcd.jetcd.common.exception.ErrorCode;\n-import io.etcd.jetcd.common.exception.EtcdException;\n-import io.etcd.jetcd.kv.GetResponse;\n-import io.etcd.jetcd.kv.PutResponse;\n-import io.etcd.jetcd.lease.LeaseKeepAliveResponse;\n-import io.etcd.jetcd.options.GetOption;\n-import io.etcd.jetcd.options.PutOption;\n-import io.etcd.jetcd.support.CloseableClient;\n-import io.etcd.jetcd.support.Observers;\n-import io.grpc.ConnectivityState;\n-import io.grpc.ManagedChannel;\n-import io.grpc.Status;\n-import io.grpc.stub.StreamObserver;\n-\n-import java.lang.reflect.Field;\n-import java.lang.reflect.Method;\n-import java.nio.charset.Charset;\n-import java.nio.charset.StandardCharsets;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.ScheduledFuture;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.concurrent.atomic.AtomicReference;\n-import java.util.function.Consumer;\n-\n-import static java.util.stream.Collectors.toList;\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_KEEPALIVE_TIMEOUT;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RECONNECT_PERIOD;\n-import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RETRY_PERIOD;\n-import static org.apache.dubbo.remoting.etcd.Constants.HTTP_KEY;\n-import static org.apache.dubbo.remoting.etcd.Constants.HTTP_SUBFIX_KEY;\n-import static org.apache.dubbo.remoting.etcd.Constants.RETRY_PERIOD_KEY;\n-import static org.apache.dubbo.remoting.etcd.Constants.SESSION_TIMEOUT_KEY;\n-\n-public class JEtcdClientWrapper {\n-\n-    private Logger logger = LoggerFactory.getLogger(JEtcdClientWrapper.class);\n-\n-    private final URL url;\n-    private volatile Client client;\n-    private volatile boolean started = false;\n-    private volatile boolean connectState = false;\n-    private ScheduledFuture future;\n-    private ScheduledExecutorService reconnectNotify;\n-    private AtomicReference<ManagedChannel> channel;\n-\n-    private ConnectionStateListener connectionStateListener;\n-\n-    private long expirePeriod;\n-\n-    private CompletableFuture<Client> completableFuture;\n-\n-    private RetryPolicy retryPolicy;\n-\n-    private RuntimeException failed;\n-\n-    private final ScheduledFuture<?> retryFuture;\n-    private final ScheduledExecutorService retryExecutor = Executors.newScheduledThreadPool(1,\n-            new NamedThreadFactory(\"Etcd3RegistryKeepAliveFailedRetryTimer\", true));\n-\n-    private final Set<String> failedRegistered = new ConcurrentHashSet<String>();\n-\n-    private final Set<String> registeredPaths = new ConcurrentHashSet<>();\n-    private volatile CloseableClient keepAlive = null;\n-\n-    /**\n-     * Support temporary nodes to reuse the same lease\n-     */\n-    private volatile long globalLeaseId;\n-\n-    private volatile boolean cancelKeepAlive = false;\n-\n-    public static final Charset UTF_8 = StandardCharsets.UTF_8;\n-\n-    public JEtcdClientWrapper(URL url) {\n-        this.url = url;\n-        this.expirePeriod = url.getParameter(SESSION_TIMEOUT_KEY, DEFAULT_KEEPALIVE_TIMEOUT) / 1000;\n-        if (expirePeriod <= 0) {\n-            this.expirePeriod = DEFAULT_KEEPALIVE_TIMEOUT / 1000;\n-        }\n-        this.channel = new AtomicReference<>();\n-        this.completableFuture = CompletableFuture.supplyAsync(() -> prepareClient(url));\n-        this.reconnectNotify = Executors.newScheduledThreadPool(1,\n-                new NamedThreadFactory(\"reconnectNotify\", true));\n-        this.retryPolicy = new RetryNTimes(1, 1000, TimeUnit.MILLISECONDS);\n-\n-        this.failed = new IllegalStateException(\"Etcd3 registry is not connected yet, url:\" + url);\n-        int retryPeriod = url.getParameter(RETRY_PERIOD_KEY, DEFAULT_RETRY_PERIOD);\n-\n-        this.retryFuture = retryExecutor.scheduleWithFixedDelay(() -> {\n-            try {\n-                retry();\n-            } catch (Throwable t) {\n-                logger.error(\"Unexpected error occur at failed retry, cause: \" + t.getMessage(), t);\n-            }\n-        }, retryPeriod, retryPeriod, TimeUnit.MILLISECONDS);\n-    }\n-\n-    private Client prepareClient(URL url) {\n-\n-        int maxInboundSize = DEFAULT_INBOUND_SIZE;\n-        if (StringUtils.isNotEmpty(System.getProperty(GRPC_MAX_INBOUND_SIZE_KEY))) {\n-            maxInboundSize = Integer.valueOf(System.getProperty(GRPC_MAX_INBOUND_SIZE_KEY));\n-        }\n-\n-        // TODO, uses default pick-first round robin.\n-        ClientBuilder clientBuilder = Client.builder()\n-                .endpoints(endPoints(url.getBackupAddress()))\n-                .maxInboundMessageSize(maxInboundSize);\n-\n-        return clientBuilder.build();\n-    }\n-\n-    public Client getClient() {\n-        return client;\n-    }\n-\n-    /**\n-     * try to get current connected channel.\n-     *\n-     * @return connected channel.\n-     */\n-    public ManagedChannel getChannel() {\n-        if (channel.get() == null || (channel.get().isShutdown() || channel.get().isTerminated())) {\n-            channel.set(newChannel(client));\n-        }\n-        return channel.get();\n-    }\n-\n-    /**\n-     * find direct children directory, excluding path self,\n-     * Never return null.\n-     *\n-     * @param path the path to be found direct children.\n-     * @return direct children directory, contains zero element\n-     * list if children directory not exists.\n-     */\n-    public List<String> getChildren(String path) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-                        int len = path.length();\n-                        return client.getKVClient()\n-                                .get(ByteSequence.from(path, UTF_8),\n-                                        GetOption.newBuilder().withPrefix(ByteSequence.from(path, UTF_8)).build())\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\n-                                .getKvs().stream().parallel()\n-                                .filter(pair -> {\n-                                    String key = pair.getKey().toString(UTF_8);\n-                                    int index = len, count = 0;\n-                                    if (key.length() > len) {\n-                                        for (; (index = key.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\n-                                            if (count++ > 1) {\n-                                                break;\n-                                            }\n-                                        }\n-                                    }\n-                                    return count == 1;\n-                                })\n-                                .map(pair -> pair.getKey().toString(UTF_8))\n-                                .collect(toList());\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    public boolean isConnected() {\n-        return ConnectivityState.READY == (getChannel().getState(false))\n-                || ConnectivityState.IDLE == (getChannel().getState(false));\n-    }\n-\n-    public long createLease(long second) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-                        return client.getLeaseClient()\n-                                .grant(second)\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\n-                                .getID();\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    public void revokeLease(long lease) {\n-        try {\n-            RetryLoops.invokeWithRetry(\n-                    (Callable<Void>) () -> {\n-                        requiredNotNull(client, failed);\n-                        client.getLeaseClient()\n-                                .revoke(lease)\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-                        return null;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    public long createLease(long ttl, long timeout, TimeUnit unit)\n-            throws InterruptedException, ExecutionException, TimeoutException {\n-\n-        if (timeout <= 0) {\n-            return createLease(ttl);\n-        }\n-\n-        requiredNotNull(client, failed);\n-        return client.getLeaseClient()\n-                .grant(ttl)\n-                .get(timeout, unit).getID();\n-    }\n-\n-\n-    /**\n-     * try to check if path exists.\n-     */\n-    public boolean checkExists(String path) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-                        return client.getKVClient()\n-                                .get(ByteSequence.from(path, UTF_8), GetOption.newBuilder().withCountOnly(true).build())\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\n-                                .getCount() > 0;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    /**\n-     * only internal use only, maybe change in the future\n-     */\n-    protected Long find(String path) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-                        return client.getKVClient()\n-                                .get(ByteSequence.from(path, UTF_8))\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\n-                                .getKvs().stream()\n-                                .mapToLong(keyValue -> Long.valueOf(keyValue.getValue().toString(UTF_8)))\n-                                .findFirst().getAsLong();\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    public void createPersistent(String path) {\n-        try {\n-            RetryLoops.invokeWithRetry(\n-                    (Callable<Void>) () -> {\n-                        requiredNotNull(client, failed);\n-                        client.getKVClient()\n-                                .put(ByteSequence.from(path, UTF_8),\n-                                        ByteSequence.from(String.valueOf(path.hashCode()), UTF_8))\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-                        return null;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    /**\n-     * create new ephemeral path save to etcd .\n-     * if node disconnect from etcd, it will be deleted\n-     * automatically by etcd when session timeout.\n-     *\n-     * @param path the path to be saved\n-     * @return the lease of current path.\n-     */\n-    public long createEphemeral(String path) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-\n-                        registeredPaths.add(path);\n-                        keepAlive();\n-                        final long leaseId = globalLeaseId;\n-                        client.getKVClient()\n-                                .put(ByteSequence.from(path, UTF_8)\n-                                        , ByteSequence.from(String.valueOf(leaseId), UTF_8)\n-                                        , PutOption.newBuilder().withLeaseId(leaseId).build())\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-                        return leaseId;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    // easy for mock\n-    public void keepAlive(long lease) {\n-        this.keepAlive(lease, null);\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    private <T> void keepAlive(long lease, Consumer<T> onFailed) {\n-        final StreamObserver<LeaseKeepAliveResponse> observer = new Observers.Builder()\n-                .onError((e) -> {\n-                    if (e instanceof EtcdException) {\n-                        EtcdException error = (EtcdException) e;\n-                        /**\n-                         * ttl has expired\n-                         */\n-                        if (error.getErrorCode() == ErrorCode.NOT_FOUND) {\n-                            keepAlive0(onFailed);\n-                        }\n-                    }\n-                }).onCompleted(() -> {\n-                    /**\n-                     * deadline reached.\n-                     */\n-                    keepAlive0(onFailed);\n-                }).build();\n-\n-        /**\n-         * If there is already a keepalive, cancel first\n-         */\n-        cancelKeepAlive();\n-\n-        /**\n-         * create and set new keepAlive to globalKeepAliveRef\n-         */\n-        this.keepAlive = client.getLeaseClient().keepAlive(lease, observer);\n-    }\n-\n-    private void keepAlive() throws Exception {\n-        if (keepAlive == null) {\n-            synchronized (this) {\n-                if (keepAlive == null) {\n-                    this.globalLeaseId = client.getLeaseClient()\n-                            .grant(expirePeriod)\n-                            .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\n-                            .getID();\n-                    /**\n-                     * If the keepAlive expires, the registration will be re-attempted\n-                     */\n-                    keepAlive(globalLeaseId, (NULL) -> recovery());\n-                }\n-            }\n-        }\n-    }\n-\n-    private <T> void keepAlive0(Consumer<T> onFailed) {\n-        if (onFailed != null) {\n-\n-            /**\n-             * The following two scenarios will cause the keep-alive failure\uff1a\n-             *\n-             * 1. Service is offline\n-             * 2. Local deadline check expired\n-             *\n-             * The multiplex lease cannot update the local deadline,\n-             * causing the extreme scene service to be dropped.\n-             *\n-             */\n-            long leaseId = globalLeaseId;\n-            try {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Failed to keep alive for global lease '\" + leaseId + \"', waiting for retry again.\");\n-                }\n-                onFailed.accept(null);\n-            } catch (Exception ignored) {\n-                logger.warn(\"Failed to recover from global lease expired or lease deadline exceeded. lease '\" + leaseId + \"'\", ignored);\n-            }\n-        }\n-    }\n-\n-    private void recovery() {\n-\n-        try {\n-            /**\n-             * The client is processing reconnection\n-             */\n-            if (cancelKeepAlive) {\n-                return;\n-            }\n-\n-            cancelKeepAlive();\n-\n-            Set<String> ephemeralPaths = new HashSet<String>(registeredPaths);\n-            if (!ephemeralPaths.isEmpty()) {\n-                for (String path : ephemeralPaths) {\n-                    try {\n-\n-                        /**\n-                         * The client is processing reconnection,\n-                         * cancel remaining service registration\n-                         */\n-                        if (cancelKeepAlive) {\n-                            return;\n-                        }\n-\n-                        createEphemeral(path);\n-                        failedRegistered.remove(path);\n-                    } catch (Exception e) {\n-\n-                        /**\n-                         * waiting for retry again\n-                         */\n-                        failedRegistered.add(path);\n-\n-                        Status status = Status.fromThrowable(e);\n-                        if (status.getCode() == Status.Code.NOT_FOUND) {\n-                            cancelKeepAlive();\n-                        }\n-                    }\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"Unexpected error, failed to recover from global lease expired or deadline exceeded.\", t);\n-        }\n-    }\n-\n-    public void delete(String path) {\n-        try {\n-            RetryLoops.invokeWithRetry(\n-                    (Callable<Void>) () -> {\n-                        requiredNotNull(client, failed);\n-                        client.getKVClient()\n-                                .delete(ByteSequence.from(path, UTF_8))\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-                        registeredPaths.remove(path);\n-                        return null;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        } finally {\n-            /**\n-             * Cancel retry\n-             */\n-            failedRegistered.remove(path);\n-        }\n-    }\n-\n-    public String[] endPoints(String backupAddress) {\n-        String[] endpoints = backupAddress.split(COMMA_SEPARATOR);\n-        List<String> addresses = Arrays.stream(endpoints)\n-                .map(address -> address.contains(HTTP_SUBFIX_KEY)\n-                        ? address\n-                        : HTTP_KEY + address)\n-                .collect(toList());\n-        Collections.shuffle(addresses);\n-        return addresses.toArray(new String[0]);\n-    }\n-\n-    /**\n-     * because jetcd's connection change callback not supported yet, we must\n-     * loop to test if connect or disconnect event happened or not. It will be changed\n-     * in the future if we found better choice.\n-     */\n-    public void start() {\n-        if (!started) {\n-            try {\n-                this.client = completableFuture.get(expirePeriod, TimeUnit.SECONDS);\n-                this.connectState = isConnected();\n-                this.started = true;\n-            } catch (Throwable t) {\n-                logger.error(\"Timeout! etcd3 server can not be connected in : \" + expirePeriod + \" seconds! url: \" + url, t);\n-\n-                completableFuture.whenComplete((c, e) -> {\n-                    this.client = c;\n-                    if (e != null) {\n-                        logger.error(\"Got an exception when trying to create etcd3 instance, can not connect to etcd3 server, url: \" + url, e);\n-                    }\n-                });\n-\n-            }\n-\n-            try {\n-                this.future = reconnectNotify.scheduleWithFixedDelay(() -> {\n-                    boolean connected = isConnected();\n-                    if (connectState != connected) {\n-                        int notifyState = connected ? StateListener.CONNECTED : StateListener.DISCONNECTED;\n-                        if (connectionStateListener != null) {\n-                            try {\n-                                if (connected) {\n-                                    clearKeepAlive();\n-                                }\n-                                connectionStateListener.stateChanged(getClient(), notifyState);\n-                            } finally {\n-                                cancelKeepAlive = false;\n-                            }\n-                        }\n-                        connectState = connected;\n-                    }\n-                }, DEFAULT_RECONNECT_PERIOD, DEFAULT_RECONNECT_PERIOD, TimeUnit.MILLISECONDS);\n-            } catch (Throwable t) {\n-                logger.error(\"monitor reconnect status failed.\", t);\n-            }\n-        }\n-    }\n-\n-    private void cancelKeepAlive() {\n-        try {\n-            if (keepAlive != null) {\n-                keepAlive.close();\n-            }\n-        } finally {\n-            // help for gc\n-            keepAlive = null;\n-        }\n-    }\n-\n-    private void clearKeepAlive() {\n-        cancelKeepAlive = true;\n-        failedRegistered.clear();\n-        cancelKeepAlive();\n-    }\n-\n-    protected void doClose() {\n-\n-        try {\n-            cancelKeepAlive = true;\n-            if (globalLeaseId != 0) {\n-                revokeLease(this.globalLeaseId);\n-            }\n-        } catch (Exception e) {\n-            logger.warn(\"revoke global lease '\" + globalLeaseId + \"' failed, registry: \" + url, e);\n-        }\n-\n-        try {\n-            if (started && future != null) {\n-                started = false;\n-                future.cancel(true);\n-                reconnectNotify.shutdownNow();\n-            }\n-        } catch (Exception e) {\n-            logger.warn(\"stop reconnect Notify failed, registry: \" + url, e);\n-        }\n-\n-        try {\n-            retryFuture.cancel(true);\n-            retryExecutor.shutdownNow();\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-\n-        if (getClient() != null) {\n-            getClient().close();\n-        }\n-    }\n-\n-    /**\n-     * try get client's shared channel, because all fields is private on jetcd,\n-     * we must using it by reflect, in the future, jetcd may provider better tools.\n-     *\n-     * @param client get channel from current client\n-     * @return current connection channel\n-     */\n-    private ManagedChannel newChannel(Client client) {\n-        try {\n-            Field connectionField = client.getClass().getDeclaredField(\"connectionManager\");\n-            ReflectUtils.makeAccessible(connectionField);\n-            Object connection = connectionField.get(client);\n-            Method channel = connection.getClass().getDeclaredMethod(\"getChannel\");\n-            ReflectUtils.makeAccessible(channel);\n-            return (ManagedChannel) channel.invoke(connection);\n-        } catch (Exception e) {\n-            throw new RuntimeException(\"Failed to obtain connection channel from \" + url.getBackupAddress(), e);\n-        }\n-    }\n-\n-    public ConnectionStateListener getConnectionStateListener() {\n-        return connectionStateListener;\n-    }\n-\n-    public void setConnectionStateListener(ConnectionStateListener connectionStateListener) {\n-        this.connectionStateListener = connectionStateListener;\n-    }\n-\n-    public static void requiredNotNull(Object obj, RuntimeException exception) {\n-        if (obj == null) {\n-            throw exception;\n-        }\n-    }\n-\n-    public String getKVValue(String key) {\n-        if (null == key) {\n-            return null;\n-        }\n-\n-        CompletableFuture<GetResponse> responseFuture = this.client.getKVClient().get(ByteSequence.from(key, UTF_8));\n-\n-        try {\n-            List<KeyValue> result = responseFuture.get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS).getKvs();\n-            if (!result.isEmpty()) {\n-                return result.get(0).getValue().toString(UTF_8);\n-            }\n-        } catch (Exception e) {\n-            // ignore\n-        }\n-\n-        return null;\n-    }\n-\n-\n-    public boolean put(String key, String value) {\n-        if (key == null || value == null) {\n-            return false;\n-        }\n-        CompletableFuture<PutResponse> putFuture =\n-                this.client.getKVClient().put(ByteSequence.from(key, UTF_8), ByteSequence.from(value, UTF_8));\n-        try {\n-            putFuture.get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-            return true;\n-        } catch (Exception e) {\n-            // ignore\n-        }\n-        return false;\n-    }\n-\n-    public boolean putEphemeral(final String key, String value) {\n-        try {\n-            return RetryLoops.invokeWithRetry(\n-                    () -> {\n-                        requiredNotNull(client, failed);\n-                        // recovery an retry\n-                        keepAlive();\n-                        final long leaseId = globalLeaseId;\n-                        client.getKVClient()\n-                                .put(ByteSequence.from(key, UTF_8)\n-                                        , ByteSequence.from(String.valueOf(value), UTF_8)\n-                                        , PutOption.newBuilder().withLeaseId(leaseId).build())\n-                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\n-                        return true;\n-                    }, retryPolicy);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-    private void retry() {\n-        if (!failedRegistered.isEmpty()) {\n-            Set<String> failed = new HashSet<String>(failedRegistered);\n-            if (!failed.isEmpty()) {\n-\n-                if (cancelKeepAlive) {\n-                    return;\n-                }\n-\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(\"Retry failed register(keep alive) for path '\" + failed\n-                            + \"', path size: \" + failed.size());\n-                }\n-                try {\n-                    for (String path : failed) {\n-                        try {\n-\n-                            /**\n-                             * Is it currently reconnecting ?\n-                             */\n-                            if (cancelKeepAlive) {\n-                                return;\n-                            }\n-\n-                            createEphemeral(path);\n-                            failedRegistered.remove(path);\n-                        } catch (Throwable e) {\n-\n-                            failedRegistered.add(path);\n-\n-                            Status status = Status.fromThrowable(e);\n-                            if (status.getCode() == Status.Code.NOT_FOUND) {\n-                                cancelKeepAlive();\n-                            }\n-\n-                            logger.warn(\"Failed to retry register(keep alive) for path '\" + path + \"', waiting for again, cause: \" + e.getMessage(), e);\n-                        }\n-                    }\n-                } catch (Throwable t) {\n-                    logger.warn(\"Failed to retry register(keep alive) for path '\" + failed + \"', waiting for again, cause: \" + t.getMessage(), t);\n-                }\n-            }\n-        }\n-    }\n-\n-    /**\n-     * default request timeout\n-     */\n-    public static final long DEFAULT_REQUEST_TIMEOUT = obtainRequestTimeout();\n-\n-    public static final int DEFAULT_INBOUND_SIZE = 100 * 1024 * 1024;\n-\n-    public static final String GRPC_MAX_INBOUND_SIZE_KEY = \"grpc.max.inbound.size\";\n-\n-    public static final String ETCD_REQUEST_TIMEOUT_KEY = \"etcd.request.timeout\";\n-\n-    private static int obtainRequestTimeout() {\n-        if (StringUtils.isNotEmpty(System.getProperty(ETCD_REQUEST_TIMEOUT_KEY))) {\n-            return Integer.valueOf(System.getProperty(ETCD_REQUEST_TIMEOUT_KEY));\n-        }\n-        /**\n-         * 10 seconds.\n-         */\n-        return 10 * 1000;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.etcd.jetcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.etcd.RetryPolicy;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+\r\n+import io.etcd.jetcd.ByteSequence;\r\n+import io.etcd.jetcd.Client;\r\n+import io.etcd.jetcd.ClientBuilder;\r\n+import io.etcd.jetcd.KeyValue;\r\n+import io.etcd.jetcd.common.exception.ErrorCode;\r\n+import io.etcd.jetcd.common.exception.EtcdException;\r\n+import io.etcd.jetcd.kv.GetResponse;\r\n+import io.etcd.jetcd.kv.PutResponse;\r\n+import io.etcd.jetcd.lease.LeaseKeepAliveResponse;\r\n+import io.etcd.jetcd.options.GetOption;\r\n+import io.etcd.jetcd.options.PutOption;\r\n+import io.etcd.jetcd.support.CloseableClient;\r\n+import io.etcd.jetcd.support.Observers;\r\n+import io.grpc.ConnectivityState;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.Status;\r\n+import io.grpc.stub.StreamObserver;\r\n+\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.Method;\r\n+import java.nio.charset.Charset;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.ScheduledFuture;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.concurrent.atomic.AtomicReference;\r\n+import java.util.function.Consumer;\r\n+\r\n+import static java.util.stream.Collectors.toList;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SEPARATOR;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_KEEPALIVE_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RECONNECT_PERIOD;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.DEFAULT_RETRY_PERIOD;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.HTTP_KEY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.HTTP_SUBFIX_KEY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.RETRY_PERIOD_KEY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.SESSION_TIMEOUT_KEY;\r\n+\r\n+public class JEtcdClientWrapper {\r\n+\r\n+    private Logger logger = LoggerFactory.getLogger(JEtcdClientWrapper.class);\r\n+\r\n+    private final URL url;\r\n+    private volatile Client client;\r\n+    private volatile boolean started = false;\r\n+    private volatile boolean connectState = false;\r\n+    private ScheduledFuture future;\r\n+    private ScheduledExecutorService reconnectNotify;\r\n+    private AtomicReference<ManagedChannel> channel;\r\n+\r\n+    private ConnectionStateListener connectionStateListener;\r\n+\r\n+    private long expirePeriod;\r\n+\r\n+    private CompletableFuture<Client> completableFuture;\r\n+\r\n+    private RetryPolicy retryPolicy;\r\n+\r\n+    private RuntimeException failed;\r\n+\r\n+    private final ScheduledFuture<?> retryFuture;\r\n+    private final ScheduledExecutorService retryExecutor = Executors.newScheduledThreadPool(1,\r\n+            new NamedThreadFactory(\"Etcd3RegistryKeepAliveFailedRetryTimer\", true));\r\n+\r\n+    private final Set<String> failedRegistered = new ConcurrentHashSet<String>();\r\n+\r\n+    private final Set<String> registeredPaths = new ConcurrentHashSet<>();\r\n+    private volatile CloseableClient keepAlive = null;\r\n+\r\n+    /**\r\n+     * Support temporary nodes to reuse the same lease\r\n+     */\r\n+    private volatile long globalLeaseId;\r\n+\r\n+    private volatile boolean cancelKeepAlive = false;\r\n+\r\n+    public static final Charset UTF_8 = StandardCharsets.UTF_8;\r\n+\r\n+    public JEtcdClientWrapper(URL url) {\r\n+        this.url = url;\r\n+        this.expirePeriod = url.getParameter(SESSION_TIMEOUT_KEY, DEFAULT_KEEPALIVE_TIMEOUT) / 1000;\r\n+        if (expirePeriod <= 0) {\r\n+            this.expirePeriod = DEFAULT_KEEPALIVE_TIMEOUT / 1000;\r\n+        }\r\n+        this.channel = new AtomicReference<>();\r\n+        this.completableFuture = CompletableFuture.supplyAsync(() -> prepareClient(url));\r\n+        this.reconnectNotify = Executors.newScheduledThreadPool(1,\r\n+                new NamedThreadFactory(\"reconnectNotify\", true));\r\n+        this.retryPolicy = new RetryNTimes(1, 1000, TimeUnit.MILLISECONDS);\r\n+\r\n+        this.failed = new IllegalStateException(\"Etcd3 registry is not connected yet, url:\" + url);\r\n+        int retryPeriod = url.getParameter(RETRY_PERIOD_KEY, DEFAULT_RETRY_PERIOD);\r\n+\r\n+        this.retryFuture = retryExecutor.scheduleWithFixedDelay(() -> {\r\n+            try {\r\n+                retry();\r\n+            } catch (Throwable t) {\r\n+                logger.error(\"Unexpected error occur at failed retry, cause: \" + t.getMessage(), t);\r\n+            }\r\n+        }, retryPeriod, retryPeriod, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    private Client prepareClient(URL url) {\r\n+\r\n+        int maxInboundSize = DEFAULT_INBOUND_SIZE;\r\n+        if (StringUtils.isNotEmpty(System.getProperty(GRPC_MAX_INBOUND_SIZE_KEY))) {\r\n+            maxInboundSize = Integer.valueOf(System.getProperty(GRPC_MAX_INBOUND_SIZE_KEY));\r\n+        }\r\n+\r\n+        // TODO, uses default pick-first round robin.\r\n+        ClientBuilder clientBuilder = Client.builder()\r\n+                .endpoints(endPoints(url.getBackupAddress()))\r\n+                .maxInboundMessageSize(maxInboundSize);\r\n+\r\n+        return clientBuilder.build();\r\n+    }\r\n+\r\n+    public Client getClient() {\r\n+        return client;\r\n+    }\r\n+\r\n+    /**\r\n+     * try to get current connected channel.\r\n+     *\r\n+     * @return connected channel.\r\n+     */\r\n+    public ManagedChannel getChannel() {\r\n+        if (channel.get() == null || (channel.get().isShutdown() || channel.get().isTerminated())) {\r\n+            channel.set(newChannel(client));\r\n+        }\r\n+        return channel.get();\r\n+    }\r\n+\r\n+    /**\r\n+     * find direct children directory, excluding path self,\r\n+     * Never return null.\r\n+     *\r\n+     * @param path the path to be found direct children.\r\n+     * @return direct children directory, contains zero element\r\n+     * list if children directory not exists.\r\n+     */\r\n+    public List<String> getChildren(String path) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        int len = path.length();\r\n+                        return client.getKVClient()\r\n+                                .get(ByteSequence.from(path, UTF_8),\r\n+                                        GetOption.newBuilder().withPrefix(ByteSequence.from(path, UTF_8)).build())\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\r\n+                                .getKvs().stream().parallel()\r\n+                                .filter(pair -> {\r\n+                                    String key = pair.getKey().toString(UTF_8);\r\n+                                    int index = len, count = 0;\r\n+                                    if (key.length() > len) {\r\n+                                        for (; (index = key.indexOf(PATH_SEPARATOR, index)) != -1; ++index) {\r\n+                                            if (count++ > 1) {\r\n+                                                break;\r\n+                                            }\r\n+                                        }\r\n+                                    }\r\n+                                    return count == 1;\r\n+                                })\r\n+                                .map(pair -> pair.getKey().toString(UTF_8))\r\n+                                .collect(toList());\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public boolean isConnected() {\r\n+        return ConnectivityState.READY == (getChannel().getState(false))\r\n+                || ConnectivityState.IDLE == (getChannel().getState(false));\r\n+    }\r\n+\r\n+    public long createLease(long second) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        return client.getLeaseClient()\r\n+                                .grant(second)\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\r\n+                                .getID();\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public void revokeLease(long lease) {\r\n+        try {\r\n+            RetryLoops.invokeWithRetry(\r\n+                    (Callable<Void>) () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        client.getLeaseClient()\r\n+                                .revoke(lease)\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+                        return null;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public long createLease(long ttl, long timeout, TimeUnit unit)\r\n+            throws InterruptedException, ExecutionException, TimeoutException {\r\n+\r\n+        if (timeout <= 0) {\r\n+            return createLease(ttl);\r\n+        }\r\n+\r\n+        requiredNotNull(client, failed);\r\n+        return client.getLeaseClient()\r\n+                .grant(ttl)\r\n+                .get(timeout, unit).getID();\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * try to check if path exists.\r\n+     */\r\n+    public boolean checkExists(String path) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        return client.getKVClient()\r\n+                                .get(ByteSequence.from(path, UTF_8), GetOption.newBuilder().withCountOnly(true).build())\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\r\n+                                .getCount() > 0;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * only internal use only, maybe change in the future\r\n+     */\r\n+    protected Long find(String path) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        return client.getKVClient()\r\n+                                .get(ByteSequence.from(path, UTF_8))\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\r\n+                                .getKvs().stream()\r\n+                                .mapToLong(keyValue -> Long.valueOf(keyValue.getValue().toString(UTF_8)))\r\n+                                .findFirst().getAsLong();\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public void createPersistent(String path) {\r\n+        try {\r\n+            RetryLoops.invokeWithRetry(\r\n+                    (Callable<Void>) () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        client.getKVClient()\r\n+                                .put(ByteSequence.from(path, UTF_8),\r\n+                                        ByteSequence.from(String.valueOf(path.hashCode()), UTF_8))\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+                        return null;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * create new ephemeral path save to etcd .\r\n+     * if node disconnect from etcd, it will be deleted\r\n+     * automatically by etcd when session timeout.\r\n+     *\r\n+     * @param path the path to be saved\r\n+     * @return the lease of current path.\r\n+     */\r\n+    public long createEphemeral(String path) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+\r\n+                        registeredPaths.add(path);\r\n+                        keepAlive();\r\n+                        final long leaseId = globalLeaseId;\r\n+                        client.getKVClient()\r\n+                                .put(ByteSequence.from(path, UTF_8)\r\n+                                        , ByteSequence.from(String.valueOf(leaseId), UTF_8)\r\n+                                        , PutOption.newBuilder().withLeaseId(leaseId).build())\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+                        return leaseId;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    // easy for mock\r\n+    public void keepAlive(long lease) {\r\n+        this.keepAlive(lease, null);\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private <T> void keepAlive(long lease, Consumer<T> onFailed) {\r\n+        final StreamObserver<LeaseKeepAliveResponse> observer = new Observers.Builder()\r\n+                .onError((e) -> {\r\n+                    if (e instanceof EtcdException) {\r\n+                        EtcdException error = (EtcdException) e;\r\n+                        /**\r\n+                         * ttl has expired\r\n+                         */\r\n+                        if (error.getErrorCode() == ErrorCode.NOT_FOUND) {\r\n+                            keepAlive0(onFailed);\r\n+                        }\r\n+                    }\r\n+                }).onCompleted(() -> {\r\n+                    /**\r\n+                     * deadline reached.\r\n+                     */\r\n+                    keepAlive0(onFailed);\r\n+                }).build();\r\n+\r\n+        /**\r\n+         * If there is already a keepalive, cancel first\r\n+         */\r\n+        cancelKeepAlive();\r\n+\r\n+        /**\r\n+         * create and set new keepAlive to globalKeepAliveRef\r\n+         */\r\n+        this.keepAlive = client.getLeaseClient().keepAlive(lease, observer);\r\n+    }\r\n+\r\n+    private void keepAlive() throws Exception {\r\n+        if (keepAlive == null) {\r\n+            synchronized (this) {\r\n+                if (keepAlive == null) {\r\n+                    this.globalLeaseId = client.getLeaseClient()\r\n+                            .grant(expirePeriod)\r\n+                            .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS)\r\n+                            .getID();\r\n+                    /**\r\n+                     * If the keepAlive expires, the registration will be re-attempted\r\n+                     */\r\n+                    keepAlive(globalLeaseId, (NULL) -> recovery());\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private <T> void keepAlive0(Consumer<T> onFailed) {\r\n+        if (onFailed != null) {\r\n+\r\n+            /**\r\n+             * The following two scenarios will cause the keep-alive failure\uff1a\r\n+             *\r\n+             * 1. Service is offline\r\n+             * 2. Local deadline check expired\r\n+             *\r\n+             * The multiplex lease cannot update the local deadline,\r\n+             * causing the extreme scene service to be dropped.\r\n+             *\r\n+             */\r\n+            long leaseId = globalLeaseId;\r\n+            try {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Failed to keep alive for global lease '\" + leaseId + \"', waiting for retry again.\");\r\n+                }\r\n+                onFailed.accept(null);\r\n+            } catch (Exception ignored) {\r\n+                logger.warn(\"Failed to recover from global lease expired or lease deadline exceeded. lease '\" + leaseId + \"'\", ignored);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void recovery() {\r\n+\r\n+        try {\r\n+            /**\r\n+             * The client is processing reconnection\r\n+             */\r\n+            if (cancelKeepAlive) {\r\n+                return;\r\n+            }\r\n+\r\n+            cancelKeepAlive();\r\n+\r\n+            Set<String> ephemeralPaths = new HashSet<String>(registeredPaths);\r\n+            if (!ephemeralPaths.isEmpty()) {\r\n+                for (String path : ephemeralPaths) {\r\n+                    try {\r\n+\r\n+                        /**\r\n+                         * The client is processing reconnection,\r\n+                         * cancel remaining service registration\r\n+                         */\r\n+                        if (cancelKeepAlive) {\r\n+                            return;\r\n+                        }\r\n+\r\n+                        createEphemeral(path);\r\n+                        failedRegistered.remove(path);\r\n+                    } catch (Exception e) {\r\n+\r\n+                        /**\r\n+                         * waiting for retry again\r\n+                         */\r\n+                        failedRegistered.add(path);\r\n+\r\n+                        Status status = Status.fromThrowable(e);\r\n+                        if (status.getCode() == Status.Code.NOT_FOUND) {\r\n+                            cancelKeepAlive();\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Unexpected error, failed to recover from global lease expired or deadline exceeded.\", t);\r\n+        }\r\n+    }\r\n+\r\n+    public void delete(String path) {\r\n+        try {\r\n+            RetryLoops.invokeWithRetry(\r\n+                    (Callable<Void>) () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        client.getKVClient()\r\n+                                .delete(ByteSequence.from(path, UTF_8))\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+                        registeredPaths.remove(path);\r\n+                        return null;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        } finally {\r\n+            /**\r\n+             * Cancel retry\r\n+             */\r\n+            failedRegistered.remove(path);\r\n+        }\r\n+    }\r\n+\r\n+    public String[] endPoints(String backupAddress) {\r\n+        String[] endpoints = backupAddress.split(COMMA_SEPARATOR);\r\n+        List<String> addresses = Arrays.stream(endpoints)\r\n+                .map(address -> address.contains(HTTP_SUBFIX_KEY)\r\n+                        ? address\r\n+                        : HTTP_KEY + address)\r\n+                .collect(toList());\r\n+        Collections.shuffle(addresses);\r\n+        return addresses.toArray(new String[0]);\r\n+    }\r\n+\r\n+    /**\r\n+     * because jetcd's connection change callback not supported yet, we must\r\n+     * loop to test if connect or disconnect event happened or not. It will be changed\r\n+     * in the future if we found better choice.\r\n+     */\r\n+    public void start() {\r\n+        if (!started) {\r\n+            try {\r\n+                this.client = completableFuture.get(expirePeriod, TimeUnit.SECONDS);\r\n+                this.connectState = isConnected();\r\n+                this.started = true;\r\n+            } catch (Throwable t) {\r\n+                logger.error(\"Timeout! etcd3 server can not be connected in : \" + expirePeriod + \" seconds! url: \" + url, t);\r\n+\r\n+                completableFuture.whenComplete((c, e) -> {\r\n+                    this.client = c;\r\n+                    if (e != null) {\r\n+                        logger.error(\"Got an exception when trying to create etcd3 instance, can not connect to etcd3 server, url: \" + url, e);\r\n+                    }\r\n+                });\r\n+\r\n+            }\r\n+\r\n+            try {\r\n+                this.future = reconnectNotify.scheduleWithFixedDelay(() -> {\r\n+                    boolean connected = isConnected();\r\n+                    if (connectState != connected) {\r\n+                        int notifyState = connected ? StateListener.CONNECTED : StateListener.DISCONNECTED;\r\n+                        if (connectionStateListener != null) {\r\n+                            try {\r\n+                                if (connected) {\r\n+                                    clearKeepAlive();\r\n+                                }\r\n+                                connectionStateListener.stateChanged(getClient(), notifyState);\r\n+                            } finally {\r\n+                                cancelKeepAlive = false;\r\n+                            }\r\n+                        }\r\n+                        connectState = connected;\r\n+                    }\r\n+                }, DEFAULT_RECONNECT_PERIOD, DEFAULT_RECONNECT_PERIOD, TimeUnit.MILLISECONDS);\r\n+            } catch (Throwable t) {\r\n+                logger.error(\"monitor reconnect status failed.\", t);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void cancelKeepAlive() {\r\n+        try {\r\n+            if (keepAlive != null) {\r\n+                keepAlive.close();\r\n+            }\r\n+        } finally {\r\n+            // help for gc\r\n+            keepAlive = null;\r\n+        }\r\n+    }\r\n+\r\n+    private void clearKeepAlive() {\r\n+        cancelKeepAlive = true;\r\n+        failedRegistered.clear();\r\n+        cancelKeepAlive();\r\n+    }\r\n+\r\n+    protected void doClose() {\r\n+\r\n+        try {\r\n+            cancelKeepAlive = true;\r\n+            if (globalLeaseId != 0) {\r\n+                revokeLease(this.globalLeaseId);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.warn(\"revoke global lease '\" + globalLeaseId + \"' failed, registry: \" + url, e);\r\n+        }\r\n+\r\n+        try {\r\n+            if (started && future != null) {\r\n+                started = false;\r\n+                future.cancel(true);\r\n+                reconnectNotify.shutdownNow();\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.warn(\"stop reconnect Notify failed, registry: \" + url, e);\r\n+        }\r\n+\r\n+        try {\r\n+            retryFuture.cancel(true);\r\n+            retryExecutor.shutdownNow();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+\r\n+        if (getClient() != null) {\r\n+            getClient().close();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * try get client's shared channel, because all fields is private on jetcd,\r\n+     * we must using it by reflect, in the future, jetcd may provider better tools.\r\n+     *\r\n+     * @param client get channel from current client\r\n+     * @return current connection channel\r\n+     */\r\n+    private ManagedChannel newChannel(Client client) {\r\n+        try {\r\n+            Field connectionField = client.getClass().getDeclaredField(\"connectionManager\");\r\n+            ReflectUtils.makeAccessible(connectionField);\r\n+            Object connection = connectionField.get(client);\r\n+            Method channel = connection.getClass().getDeclaredMethod(\"getChannel\");\r\n+            ReflectUtils.makeAccessible(channel);\r\n+            return (ManagedChannel) channel.invoke(connection);\r\n+        } catch (Exception e) {\r\n+            throw new RuntimeException(\"Failed to obtain connection channel from \" + url.getBackupAddress(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public ConnectionStateListener getConnectionStateListener() {\r\n+        return connectionStateListener;\r\n+    }\r\n+\r\n+    public void setConnectionStateListener(ConnectionStateListener connectionStateListener) {\r\n+        this.connectionStateListener = connectionStateListener;\r\n+    }\r\n+\r\n+    public static void requiredNotNull(Object obj, RuntimeException exception) {\r\n+        if (obj == null) {\r\n+            throw exception;\r\n+        }\r\n+    }\r\n+\r\n+    public String getKVValue(String key) {\r\n+        if (null == key) {\r\n+            return null;\r\n+        }\r\n+\r\n+        CompletableFuture<GetResponse> responseFuture = this.client.getKVClient().get(ByteSequence.from(key, UTF_8));\r\n+\r\n+        try {\r\n+            List<KeyValue> result = responseFuture.get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS).getKvs();\r\n+            if (!result.isEmpty()) {\r\n+                return result.get(0).getValue().toString(UTF_8);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            // ignore\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+\r\n+    public boolean put(String key, String value) {\r\n+        if (key == null || value == null) {\r\n+            return false;\r\n+        }\r\n+        CompletableFuture<PutResponse> putFuture =\r\n+                this.client.getKVClient().put(ByteSequence.from(key, UTF_8), ByteSequence.from(value, UTF_8));\r\n+        try {\r\n+            putFuture.get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+            return true;\r\n+        } catch (Exception e) {\r\n+            // ignore\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public boolean putEphemeral(final String key, String value) {\r\n+        try {\r\n+            return RetryLoops.invokeWithRetry(\r\n+                    () -> {\r\n+                        requiredNotNull(client, failed);\r\n+                        // recovery an retry\r\n+                        keepAlive();\r\n+                        final long leaseId = globalLeaseId;\r\n+                        client.getKVClient()\r\n+                                .put(ByteSequence.from(key, UTF_8)\r\n+                                        , ByteSequence.from(String.valueOf(value), UTF_8)\r\n+                                        , PutOption.newBuilder().withLeaseId(leaseId).build())\r\n+                                .get(DEFAULT_REQUEST_TIMEOUT, TimeUnit.MILLISECONDS);\r\n+                        return true;\r\n+                    }, retryPolicy);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void retry() {\r\n+        if (!failedRegistered.isEmpty()) {\r\n+            Set<String> failed = new HashSet<String>(failedRegistered);\r\n+            if (!failed.isEmpty()) {\r\n+\r\n+                if (cancelKeepAlive) {\r\n+                    return;\r\n+                }\r\n+\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(\"Retry failed register(keep alive) for path '\" + failed\r\n+                            + \"', path size: \" + failed.size());\r\n+                }\r\n+                try {\r\n+                    for (String path : failed) {\r\n+                        try {\r\n+\r\n+                            /**\r\n+                             * Is it currently reconnecting ?\r\n+                             */\r\n+                            if (cancelKeepAlive) {\r\n+                                return;\r\n+                            }\r\n+\r\n+                            createEphemeral(path);\r\n+                            failedRegistered.remove(path);\r\n+                        } catch (Throwable e) {\r\n+\r\n+                            failedRegistered.add(path);\r\n+\r\n+                            Status status = Status.fromThrowable(e);\r\n+                            if (status.getCode() == Status.Code.NOT_FOUND) {\r\n+                                cancelKeepAlive();\r\n+                            }\r\n+\r\n+                            logger.warn(\"Failed to retry register(keep alive) for path '\" + path + \"', waiting for again, cause: \" + e.getMessage(), e);\r\n+                        }\r\n+                    }\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(\"Failed to retry register(keep alive) for path '\" + failed + \"', waiting for again, cause: \" + t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * default request timeout\r\n+     */\r\n+    public static final long DEFAULT_REQUEST_TIMEOUT = obtainRequestTimeout();\r\n+\r\n+    public static final int DEFAULT_INBOUND_SIZE = 100 * 1024 * 1024;\r\n+\r\n+    public static final String GRPC_MAX_INBOUND_SIZE_KEY = \"grpc.max.inbound.size\";\r\n+\r\n+    public static final String ETCD_REQUEST_TIMEOUT_KEY = \"etcd.request.timeout\";\r\n+\r\n+    private static int obtainRequestTimeout() {\r\n+        if (StringUtils.isNotEmpty(System.getProperty(ETCD_REQUEST_TIMEOUT_KEY))) {\r\n+            return Integer.valueOf(System.getProperty(ETCD_REQUEST_TIMEOUT_KEY));\r\n+        }\r\n+        /**\r\n+         * 10 seconds.\r\n+         */\r\n+        return 10 * 1000;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdTransporter.java", "source2": "org/apache/dubbo/remoting/etcd/jetcd/JEtcdTransporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd.jetcd;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.etcd.EtcdClient;\n-import org.apache.dubbo.remoting.etcd.EtcdTransporter;\n-\n-public class JEtcdTransporter implements EtcdTransporter {\n-\n-    @Override\n-    public EtcdClient connect(URL url) {\n-        return new JEtcdClient(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd.jetcd;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.etcd.EtcdClient;\r\n+import org.apache.dubbo.remoting.etcd.EtcdTransporter;\r\n+\r\n+public class JEtcdTransporter implements EtcdTransporter {\r\n+\r\n+    @Override\r\n+    public EtcdClient connect(URL url) {\r\n+        return new JEtcdClient(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/jetcd/RetryLoops.java", "source2": "org/apache/dubbo/remoting/etcd/jetcd/RetryLoops.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,99 +1,99 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd.jetcd;\n-\n-import io.grpc.Status;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.etcd.RetryPolicy;\n-import org.apache.dubbo.remoting.etcd.option.OptionUtil;\n-\n-import java.util.concurrent.Callable;\n-\n-public class RetryLoops {\n-\n-    private final long startTimeMs = System.currentTimeMillis();\n-    private boolean isDone = false;\n-    private int retriedCount = 0;\n-    private Logger logger = LoggerFactory.getLogger(RetryLoops.class);\n-\n-    public static <R> R invokeWithRetry(Callable<R> task, RetryPolicy retryPolicy) throws Exception {\n-        R result = null;\n-        RetryLoops retryLoop = new RetryLoops();\n-        while (retryLoop.shouldContinue()) {\n-            try {\n-                result = task.call();\n-                retryLoop.complete();\n-            } catch (Exception e) {\n-                retryLoop.fireException(e, retryPolicy);\n-            }\n-        }\n-        return result;\n-    }\n-\n-    public void fireException(Exception e, RetryPolicy retryPolicy) throws Exception {\n-\n-        if (e instanceof InterruptedException) {\n-            Thread.currentThread().interrupt();\n-        }\n-\n-        boolean rethrow = true;\n-        if (isRetryException(e)\n-                && retryPolicy.shouldRetry(retriedCount++, System.currentTimeMillis() - startTimeMs, true)) {\n-            rethrow = false;\n-        }\n-\n-        if (rethrow) {\n-            throw e;\n-        }\n-    }\n-\n-    private boolean isRetryException(Throwable e) {\n-        Status status = Status.fromThrowable(e);\n-        if (OptionUtil.isRecoverable(status)) {\n-            return true;\n-        }\n-\n-        return false;\n-    }\n-\n-    public boolean shouldContinue() {\n-        return !isDone;\n-    }\n-\n-    public void complete() {\n-        isDone = true;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd.jetcd;\r\n+\r\n+import io.grpc.Status;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.etcd.RetryPolicy;\r\n+import org.apache.dubbo.remoting.etcd.option.OptionUtil;\r\n+\r\n+import java.util.concurrent.Callable;\r\n+\r\n+public class RetryLoops {\r\n+\r\n+    private final long startTimeMs = System.currentTimeMillis();\r\n+    private boolean isDone = false;\r\n+    private int retriedCount = 0;\r\n+    private Logger logger = LoggerFactory.getLogger(RetryLoops.class);\r\n+\r\n+    public static <R> R invokeWithRetry(Callable<R> task, RetryPolicy retryPolicy) throws Exception {\r\n+        R result = null;\r\n+        RetryLoops retryLoop = new RetryLoops();\r\n+        while (retryLoop.shouldContinue()) {\r\n+            try {\r\n+                result = task.call();\r\n+                retryLoop.complete();\r\n+            } catch (Exception e) {\r\n+                retryLoop.fireException(e, retryPolicy);\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public void fireException(Exception e, RetryPolicy retryPolicy) throws Exception {\r\n+\r\n+        if (e instanceof InterruptedException) {\r\n+            Thread.currentThread().interrupt();\r\n+        }\r\n+\r\n+        boolean rethrow = true;\r\n+        if (isRetryException(e)\r\n+                && retryPolicy.shouldRetry(retriedCount++, System.currentTimeMillis() - startTimeMs, true)) {\r\n+            rethrow = false;\r\n+        }\r\n+\r\n+        if (rethrow) {\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    private boolean isRetryException(Throwable e) {\r\n+        Status status = Status.fromThrowable(e);\r\n+        if (OptionUtil.isRecoverable(status)) {\r\n+            return true;\r\n+        }\r\n+\r\n+        return false;\r\n+    }\r\n+\r\n+    public boolean shouldContinue() {\r\n+        return !isDone;\r\n+    }\r\n+\r\n+    public void complete() {\r\n+        isDone = true;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/option/OptionUtil.java", "source2": "org/apache/dubbo/remoting/etcd/option/OptionUtil.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,78 +1,78 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd.option;\n-\n-import io.etcd.jetcd.ByteSequence;\n-import io.grpc.Status;\n-import io.netty.handler.codec.http2.Http2Exception;\n-\n-import java.util.Arrays;\n-\n-public class OptionUtil {\n-\n-    public static final byte[] NO_PREFIX_END = {0};\n-\n-    public static final ByteSequence prefixEndOf(ByteSequence prefix) {\n-        byte[] endKey = prefix.getBytes().clone();\n-        for (int i = endKey.length - 1; i >= 0; i--) {\n-            if (endKey[i] < 0xff) {\n-                endKey[i] = (byte) (endKey[i] + 1);\n-                return ByteSequence.from(Arrays.copyOf(endKey, i + 1));\n-            }\n-        }\n-\n-        return ByteSequence.from(NO_PREFIX_END);\n-    }\n-\n-    public static boolean isRecoverable(Status status) {\n-        return isHaltError(status)\n-                || isNoLeaderError(status)\n-                // ephemeral is expired\n-                || status.getCode() == Status.Code.NOT_FOUND;\n-    }\n-\n-    public static boolean isHaltError(Status status) {\n-        // Unavailable codes mean the system will be right back.\n-        // (e.g., can't connect, lost leader)\n-        // Treat Internal codes as if something failed, leaving the\n-        // system in an inconsistent state, but retrying could make progress.\n-        // (e.g., failed in middle of send, corrupted frame)\n-        return status.getCode() != Status.Code.UNAVAILABLE && status.getCode() != Status.Code.INTERNAL;\n-    }\n-\n-    public static boolean isNoLeaderError(Status status) {\n-        return status.getCode() == Status.Code.UNAVAILABLE\n-                && \"etcdserver: no leader\".equals(status.getDescription());\n-    }\n-\n-    public static boolean isProtocolError(Throwable e) {\n-        if (e == null) {\n-            return false;\n-        }\n-        Throwable cause = e.getCause();\n-        while (cause != null) {\n-            if (cause instanceof Http2Exception) {\n-                Http2Exception t = (Http2Exception) cause;\n-                if (\"PROTOCOL_ERROR\".equals(t.error().name())) {\n-                    return true;\n-                }\n-            }\n-            cause = cause.getCause();\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd.option;\r\n+\r\n+import io.etcd.jetcd.ByteSequence;\r\n+import io.grpc.Status;\r\n+import io.netty.handler.codec.http2.Http2Exception;\r\n+\r\n+import java.util.Arrays;\r\n+\r\n+public class OptionUtil {\r\n+\r\n+    public static final byte[] NO_PREFIX_END = {0};\r\n+\r\n+    public static final ByteSequence prefixEndOf(ByteSequence prefix) {\r\n+        byte[] endKey = prefix.getBytes().clone();\r\n+        for (int i = endKey.length - 1; i >= 0; i--) {\r\n+            if (endKey[i] < 0xff) {\r\n+                endKey[i] = (byte) (endKey[i] + 1);\r\n+                return ByteSequence.from(Arrays.copyOf(endKey, i + 1));\r\n+            }\r\n+        }\r\n+\r\n+        return ByteSequence.from(NO_PREFIX_END);\r\n+    }\r\n+\r\n+    public static boolean isRecoverable(Status status) {\r\n+        return isHaltError(status)\r\n+                || isNoLeaderError(status)\r\n+                // ephemeral is expired\r\n+                || status.getCode() == Status.Code.NOT_FOUND;\r\n+    }\r\n+\r\n+    public static boolean isHaltError(Status status) {\r\n+        // Unavailable codes mean the system will be right back.\r\n+        // (e.g., can't connect, lost leader)\r\n+        // Treat Internal codes as if something failed, leaving the\r\n+        // system in an inconsistent state, but retrying could make progress.\r\n+        // (e.g., failed in middle of send, corrupted frame)\r\n+        return status.getCode() != Status.Code.UNAVAILABLE && status.getCode() != Status.Code.INTERNAL;\r\n+    }\r\n+\r\n+    public static boolean isNoLeaderError(Status status) {\r\n+        return status.getCode() == Status.Code.UNAVAILABLE\r\n+                && \"etcdserver: no leader\".equals(status.getDescription());\r\n+    }\r\n+\r\n+    public static boolean isProtocolError(Throwable e) {\r\n+        if (e == null) {\r\n+            return false;\r\n+        }\r\n+        Throwable cause = e.getCause();\r\n+        while (cause != null) {\r\n+            if (cause instanceof Http2Exception) {\r\n+                Http2Exception t = (Http2Exception) cause;\r\n+                if (\"PROTOCOL_ERROR\".equals(t.error().name())) {\r\n+                    return true;\r\n+                }\r\n+            }\r\n+            cause = cause.getCause();\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/etcd/support/AbstractEtcdClient.java", "source2": "org/apache/dubbo/remoting/etcd/support/AbstractEtcdClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,194 +1,194 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.etcd.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.etcd.ChildListener;\n-import org.apache.dubbo.remoting.etcd.EtcdClient;\n-import org.apache.dubbo.remoting.etcd.StateListener;\n-\n-import java.util.Arrays;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\n-import static org.apache.dubbo.remoting.etcd.Constants.CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.remoting.etcd.Constants.CONSUMERS_CATEGORY;\n-import static org.apache.dubbo.remoting.etcd.Constants.PROVIDERS_CATEGORY;\n-import static org.apache.dubbo.remoting.etcd.Constants.ROUTERS_CATEGORY;\n-\n-public abstract class AbstractEtcdClient<WatcherListener> implements EtcdClient {\n-\n-    protected static final Logger logger = LoggerFactory.getLogger(AbstractEtcdClient.class);\n-\n-    private final URL url;\n-\n-    private final Set<StateListener> stateListeners = new ConcurrentHashSet<>();\n-\n-    private final ConcurrentMap<String, ConcurrentMap<ChildListener, WatcherListener>> childListeners = new ConcurrentHashMap<>();\n-    private final List<String> categories = Arrays.asList(PROVIDERS_CATEGORY, CONSUMERS_CATEGORY, ROUTERS_CATEGORY,\n-            CONFIGURATORS_CATEGORY);\n-    private volatile boolean closed = false;\n-\n-    public AbstractEtcdClient(URL url) {\n-        this.url = url;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public void create(String path) {\n-        String fixedPath = fixNamespace(path);\n-        createParentIfAbsent(fixedPath);\n-        doCreatePersistent(fixedPath);\n-    }\n-\n-    @Override\n-    public long createEphemeral(String path) {\n-        String fixedPath = fixNamespace(path);\n-        createParentIfAbsent(fixedPath);\n-        return doCreateEphemeral(path);\n-    }\n-\n-    @Override\n-    public void addStateListener(StateListener listener) {\n-        stateListeners.add(listener);\n-    }\n-\n-    @Override\n-    public void removeStateListener(StateListener listener) {\n-        stateListeners.remove(listener);\n-    }\n-\n-    public Set<StateListener> getSessionListeners() {\n-        return stateListeners;\n-    }\n-\n-    @Override\n-    public List<String> addChildListener(String path, final ChildListener listener) {\n-        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.computeIfAbsent(path, k -> new ConcurrentHashMap<>());\n-        WatcherListener targetListener = listeners.computeIfAbsent(listener, k -> createChildWatcherListener(path, k));\n-        return addChildWatcherListener(path, targetListener);\n-    }\n-\n-    @Override\n-    public WatcherListener getChildListener(String path, ChildListener listener) {\n-        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.get(path);\n-        if (listeners == null) {\n-            return null;\n-        }\n-        return listeners.computeIfAbsent(listener, k -> createChildWatcherListener(path, k));\n-    }\n-\n-    @Override\n-    public void removeChildListener(String path, ChildListener listener) {\n-        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.get(path);\n-        if (listeners != null) {\n-            WatcherListener targetListener = listeners.remove(listener);\n-            if (targetListener != null) {\n-                removeChildWatcherListener(path, targetListener);\n-            }\n-        }\n-    }\n-\n-    protected void stateChanged(int state) {\n-        for (StateListener sessionListener : getSessionListeners()) {\n-            sessionListener.stateChanged(state);\n-        }\n-    }\n-\n-    protected String fixNamespace(String path) {\n-        if (StringUtils.isEmpty(path)) {\n-            throw new IllegalArgumentException(\"path is required, actual null or ''\");\n-        }\n-        return (path.charAt(0) != '/') ? (PATH_SEPARATOR + path) : path;\n-    }\n-\n-    protected void createParentIfAbsent(String fixedPath) {\n-        int i = fixedPath.lastIndexOf('/');\n-        if (i > 0) {\n-            String parentPath = fixedPath.substring(0, i);\n-            if (categories.stream().anyMatch(c -> fixedPath.endsWith(c))) {\n-                if (!checkExists(parentPath)) {\n-                    this.doCreatePersistent(parentPath);\n-                }\n-            } else if (categories.stream().anyMatch(c -> parentPath.endsWith(c))) {\n-                String grandfather = parentPath.substring(0, parentPath.lastIndexOf('/'));\n-                if (!checkExists(grandfather)) {\n-                    this.doCreatePersistent(grandfather);\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (closed) {\n-            return;\n-        }\n-        closed = true;\n-        try {\n-            doClose();\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-    }\n-\n-    public abstract void doClose();\n-\n-    public abstract void doCreatePersistent(String path);\n-\n-    public abstract long doCreateEphemeral(String path);\n-\n-    @Override\n-    public abstract void delete(String path);\n-\n-    public abstract boolean checkExists(String path);\n-\n-    public abstract WatcherListener createChildWatcherListener(String path, ChildListener listener);\n-\n-    public abstract List<String> addChildWatcherListener(String path, WatcherListener listener);\n-\n-    public abstract void removeChildWatcherListener(String path, WatcherListener listener);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.etcd.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.etcd.ChildListener;\r\n+import org.apache.dubbo.remoting.etcd.EtcdClient;\r\n+import org.apache.dubbo.remoting.etcd.StateListener;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_SEPARATOR;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.CONSUMERS_CATEGORY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.PROVIDERS_CATEGORY;\r\n+import static org.apache.dubbo.remoting.etcd.Constants.ROUTERS_CATEGORY;\r\n+\r\n+public abstract class AbstractEtcdClient<WatcherListener> implements EtcdClient {\r\n+\r\n+    protected static final Logger logger = LoggerFactory.getLogger(AbstractEtcdClient.class);\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final Set<StateListener> stateListeners = new ConcurrentHashSet<>();\r\n+\r\n+    private final ConcurrentMap<String, ConcurrentMap<ChildListener, WatcherListener>> childListeners = new ConcurrentHashMap<>();\r\n+    private final List<String> categories = Arrays.asList(PROVIDERS_CATEGORY, CONSUMERS_CATEGORY, ROUTERS_CATEGORY,\r\n+            CONFIGURATORS_CATEGORY);\r\n+    private volatile boolean closed = false;\r\n+\r\n+    public AbstractEtcdClient(URL url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void create(String path) {\r\n+        String fixedPath = fixNamespace(path);\r\n+        createParentIfAbsent(fixedPath);\r\n+        doCreatePersistent(fixedPath);\r\n+    }\r\n+\r\n+    @Override\r\n+    public long createEphemeral(String path) {\r\n+        String fixedPath = fixNamespace(path);\r\n+        createParentIfAbsent(fixedPath);\r\n+        return doCreateEphemeral(path);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addStateListener(StateListener listener) {\r\n+        stateListeners.add(listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeStateListener(StateListener listener) {\r\n+        stateListeners.remove(listener);\r\n+    }\r\n+\r\n+    public Set<StateListener> getSessionListeners() {\r\n+        return stateListeners;\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<String> addChildListener(String path, final ChildListener listener) {\r\n+        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.computeIfAbsent(path, k -> new ConcurrentHashMap<>());\r\n+        WatcherListener targetListener = listeners.computeIfAbsent(listener, k -> createChildWatcherListener(path, k));\r\n+        return addChildWatcherListener(path, targetListener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public WatcherListener getChildListener(String path, ChildListener listener) {\r\n+        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.get(path);\r\n+        if (listeners == null) {\r\n+            return null;\r\n+        }\r\n+        return listeners.computeIfAbsent(listener, k -> createChildWatcherListener(path, k));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeChildListener(String path, ChildListener listener) {\r\n+        ConcurrentMap<ChildListener, WatcherListener> listeners = childListeners.get(path);\r\n+        if (listeners != null) {\r\n+            WatcherListener targetListener = listeners.remove(listener);\r\n+            if (targetListener != null) {\r\n+                removeChildWatcherListener(path, targetListener);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    protected void stateChanged(int state) {\r\n+        for (StateListener sessionListener : getSessionListeners()) {\r\n+            sessionListener.stateChanged(state);\r\n+        }\r\n+    }\r\n+\r\n+    protected String fixNamespace(String path) {\r\n+        if (StringUtils.isEmpty(path)) {\r\n+            throw new IllegalArgumentException(\"path is required, actual null or ''\");\r\n+        }\r\n+        return (path.charAt(0) != '/') ? (PATH_SEPARATOR + path) : path;\r\n+    }\r\n+\r\n+    protected void createParentIfAbsent(String fixedPath) {\r\n+        int i = fixedPath.lastIndexOf('/');\r\n+        if (i > 0) {\r\n+            String parentPath = fixedPath.substring(0, i);\r\n+            if (categories.stream().anyMatch(c -> fixedPath.endsWith(c))) {\r\n+                if (!checkExists(parentPath)) {\r\n+                    this.doCreatePersistent(parentPath);\r\n+                }\r\n+            } else if (categories.stream().anyMatch(c -> parentPath.endsWith(c))) {\r\n+                String grandfather = parentPath.substring(0, parentPath.lastIndexOf('/'));\r\n+                if (!checkExists(grandfather)) {\r\n+                    this.doCreatePersistent(grandfather);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (closed) {\r\n+            return;\r\n+        }\r\n+        closed = true;\r\n+        try {\r\n+            doClose();\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    public abstract void doClose();\r\n+\r\n+    public abstract void doCreatePersistent(String path);\r\n+\r\n+    public abstract long doCreateEphemeral(String path);\r\n+\r\n+    @Override\r\n+    public abstract void delete(String path);\r\n+\r\n+    public abstract boolean checkExists(String path);\r\n+\r\n+    public abstract WatcherListener createChildWatcherListener(String path, ChildListener listener);\r\n+\r\n+    public abstract List<String> addChildWatcherListener(String path, WatcherListener listener);\r\n+\r\n+    public abstract void removeChildWatcherListener(String path, WatcherListener listener);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/Request.java", "source2": "org/apache/dubbo/remoting/exchange/Request.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,145 +1,145 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.exchange;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-/**\n- * Request.\n- */\n-public class Request {\n-\n-    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\n-\n-    private final long mId;\n-\n-    private String mVersion;\n-\n-    private boolean mTwoWay = true;\n-\n-    private boolean mEvent = false;\n-\n-    private boolean mBroken = false;\n-\n-    private Object mData;\n-\n-    public Request() {\n-        mId = newId();\n-    }\n-\n-    public Request(long id) {\n-        mId = id;\n-    }\n-\n-    private static long newId() {\n-        // getAndIncrement() When it grows to MAX_VALUE, it will grow to MIN_VALUE, and the negative can be used as ID\n-        return INVOKE_ID.getAndIncrement();\n-    }\n-\n-    private static String safeToString(Object data) {\n-        if (data == null) {\n-            return null;\n-        }\n-        String dataStr;\n-        try {\n-            dataStr = data.toString();\n-        } catch (Throwable e) {\n-            dataStr = \"<Fail toString of \" + data.getClass() + \", cause: \" +\n-                    StringUtils.toString(e) + \">\";\n-        }\n-        return dataStr;\n-    }\n-\n-    public long getId() {\n-        return mId;\n-    }\n-\n-    public String getVersion() {\n-        return mVersion;\n-    }\n-\n-    public void setVersion(String version) {\n-        mVersion = version;\n-    }\n-\n-    public boolean isTwoWay() {\n-        return mTwoWay;\n-    }\n-\n-    public void setTwoWay(boolean twoWay) {\n-        mTwoWay = twoWay;\n-    }\n-\n-    public boolean isEvent() {\n-        return mEvent;\n-    }\n-\n-    public void setEvent(String event) {\n-        this.mEvent = true;\n-        this.mData = event;\n-    }\n-\n-    public void setEvent(boolean mEvent) {\n-        this.mEvent = mEvent;\n-    }\n-\n-    public boolean isBroken() {\n-        return mBroken;\n-    }\n-\n-    public void setBroken(boolean mBroken) {\n-        this.mBroken = mBroken;\n-    }\n-\n-    public Object getData() {\n-        return mData;\n-    }\n-\n-    public void setData(Object msg) {\n-        mData = msg;\n-    }\n-\n-    public boolean isHeartbeat() {\n-        return mEvent && HEARTBEAT_EVENT == mData;\n-    }\n-\n-    public void setHeartbeat(boolean isHeartbeat) {\n-        if (isHeartbeat) {\n-            setEvent(HEARTBEAT_EVENT);\n-        }\n-    }\n-\n-    public Request copy() {\n-        Request copy = new Request(mId);\n-        copy.mVersion = this.mVersion;\n-        copy.mTwoWay = this.mTwoWay;\n-        copy.mEvent = this.mEvent;\n-        copy.mBroken = this.mBroken;\n-        copy.mData = this.mData;\n-        return copy;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"Request [id=\" + mId + \", version=\" + mVersion + \", twoway=\" + mTwoWay + \", event=\" + mEvent\n-                + \", broken=\" + mBroken + \", data=\" + (mData == this ? \"this\" : safeToString(mData)) + \"]\";\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.exchange;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * Request.\r\n+ */\r\n+public class Request {\r\n+\r\n+    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\r\n+\r\n+    private final long mId;\r\n+\r\n+    private String mVersion;\r\n+\r\n+    private boolean mTwoWay = true;\r\n+\r\n+    private boolean mEvent = false;\r\n+\r\n+    private boolean mBroken = false;\r\n+\r\n+    private Object mData;\r\n+\r\n+    public Request() {\r\n+        mId = newId();\r\n+    }\r\n+\r\n+    public Request(long id) {\r\n+        mId = id;\r\n+    }\r\n+\r\n+    private static long newId() {\r\n+        // getAndIncrement() When it grows to MAX_VALUE, it will grow to MIN_VALUE, and the negative can be used as ID\r\n+        return INVOKE_ID.getAndIncrement();\r\n+    }\r\n+\r\n+    private static String safeToString(Object data) {\r\n+        if (data == null) {\r\n+            return null;\r\n+        }\r\n+        String dataStr;\r\n+        try {\r\n+            dataStr = data.toString();\r\n+        } catch (Throwable e) {\r\n+            dataStr = \"<Fail toString of \" + data.getClass() + \", cause: \" +\r\n+                    StringUtils.toString(e) + \">\";\r\n+        }\r\n+        return dataStr;\r\n+    }\r\n+\r\n+    public long getId() {\r\n+        return mId;\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        return mVersion;\r\n+    }\r\n+\r\n+    public void setVersion(String version) {\r\n+        mVersion = version;\r\n+    }\r\n+\r\n+    public boolean isTwoWay() {\r\n+        return mTwoWay;\r\n+    }\r\n+\r\n+    public void setTwoWay(boolean twoWay) {\r\n+        mTwoWay = twoWay;\r\n+    }\r\n+\r\n+    public boolean isEvent() {\r\n+        return mEvent;\r\n+    }\r\n+\r\n+    public void setEvent(String event) {\r\n+        this.mEvent = true;\r\n+        this.mData = event;\r\n+    }\r\n+\r\n+    public void setEvent(boolean mEvent) {\r\n+        this.mEvent = mEvent;\r\n+    }\r\n+\r\n+    public boolean isBroken() {\r\n+        return mBroken;\r\n+    }\r\n+\r\n+    public void setBroken(boolean mBroken) {\r\n+        this.mBroken = mBroken;\r\n+    }\r\n+\r\n+    public Object getData() {\r\n+        return mData;\r\n+    }\r\n+\r\n+    public void setData(Object msg) {\r\n+        mData = msg;\r\n+    }\r\n+\r\n+    public boolean isHeartbeat() {\r\n+        return mEvent && HEARTBEAT_EVENT == mData;\r\n+    }\r\n+\r\n+    public void setHeartbeat(boolean isHeartbeat) {\r\n+        if (isHeartbeat) {\r\n+            setEvent(HEARTBEAT_EVENT);\r\n+        }\r\n+    }\r\n+\r\n+    public Request copy() {\r\n+        Request copy = new Request(mId);\r\n+        copy.mVersion = this.mVersion;\r\n+        copy.mTwoWay = this.mTwoWay;\r\n+        copy.mEvent = this.mEvent;\r\n+        copy.mBroken = this.mBroken;\r\n+        copy.mData = this.mData;\r\n+        return copy;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"Request [id=\" + mId + \", version=\" + mVersion + \", twoway=\" + mTwoWay + \", event=\" + mEvent\r\n+                + \", broken=\" + mBroken + \", data=\" + (mData == this ? \"this\" : safeToString(mData)) + \"]\";\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/DefaultFuture.java", "source2": "org/apache/dubbo/remoting/exchange/support/DefaultFuture.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,301 +1,301 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.exchange.support;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.common.timer.HashedWheelTimer;\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.common.timer.Timer;\n-import org.apache.dubbo.common.timer.TimerTask;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * DefaultFuture.\n- */\n-public class DefaultFuture extends CompletableFuture<Object> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(DefaultFuture.class);\n-\n-    private static final Map<Long, Channel> CHANNELS = new ConcurrentHashMap<>();\n-\n-    private static final Map<Long, DefaultFuture> FUTURES = new ConcurrentHashMap<>();\n-\n-    public static final Timer TIME_OUT_TIMER = new HashedWheelTimer(\n-            new NamedThreadFactory(\"dubbo-future-timeout\", true),\n-            30,\n-            TimeUnit.MILLISECONDS);\n-\n-    // invoke id.\n-    private final Long id;\n-    private final Channel channel;\n-    private final Request request;\n-    private final int timeout;\n-    private final long start = System.currentTimeMillis();\n-    private volatile long sent;\n-    private Timeout timeoutCheckTask;\n-\n-    private ExecutorService executor;\n-\n-    public ExecutorService getExecutor() {\n-        return executor;\n-    }\n-\n-    public void setExecutor(ExecutorService executor) {\n-        this.executor = executor;\n-    }\n-\n-    private DefaultFuture(Channel channel, Request request, int timeout) {\n-        this.channel = channel;\n-        this.request = request;\n-        this.id = request.getId();\n-        this.timeout = timeout > 0 ? timeout : channel.getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        // put into waiting map.\n-        FUTURES.put(id, this);\n-        CHANNELS.put(id, channel);\n-    }\n-\n-    /**\n-     * check time out of the future\n-     */\n-    private static void timeoutCheck(DefaultFuture future) {\n-        TimeoutCheckTask task = new TimeoutCheckTask(future.getId());\n-        future.timeoutCheckTask = TIME_OUT_TIMER.newTimeout(task, future.getTimeout(), TimeUnit.MILLISECONDS);\n-    }\n-\n-    /**\n-     * init a DefaultFuture\n-     * 1.init a DefaultFuture\n-     * 2.timeout check\n-     *\n-     * @param channel channel\n-     * @param request the request\n-     * @param timeout timeout\n-     * @return a new DefaultFuture\n-     */\n-    public static DefaultFuture newFuture(Channel channel, Request request, int timeout, ExecutorService executor) {\n-        final DefaultFuture future = new DefaultFuture(channel, request, timeout);\n-        future.setExecutor(executor);\n-        // ThreadlessExecutor needs to hold the waiting future in case of circuit return.\n-        if (executor instanceof ThreadlessExecutor) {\n-            ((ThreadlessExecutor) executor).setWaitingFuture(future);\n-        }\n-        // timeout check\n-        timeoutCheck(future);\n-        return future;\n-    }\n-\n-    public static DefaultFuture getFuture(long id) {\n-        return FUTURES.get(id);\n-    }\n-\n-    public static boolean hasFuture(Channel channel) {\n-        return CHANNELS.containsValue(channel);\n-    }\n-\n-    public static void sent(Channel channel, Request request) {\n-        DefaultFuture future = FUTURES.get(request.getId());\n-        if (future != null) {\n-            future.doSent();\n-        }\n-    }\n-\n-    /**\n-     * close a channel when a channel is inactive\n-     * directly return the unfinished requests.\n-     *\n-     * @param channel channel to close\n-     */\n-    public static void closeChannel(Channel channel) {\n-        for (Map.Entry<Long, Channel> entry : CHANNELS.entrySet()) {\n-            if (channel.equals(entry.getValue())) {\n-                DefaultFuture future = getFuture(entry.getKey());\n-                if (future != null && !future.isDone()) {\n-                    ExecutorService futureExecutor = future.getExecutor();\n-                    if (futureExecutor != null && !futureExecutor.isTerminated()) {\n-                        futureExecutor.shutdownNow();\n-                    }\n-\n-                    Response disconnectResponse = new Response(future.getId());\n-                    disconnectResponse.setStatus(Response.CHANNEL_INACTIVE);\n-                    disconnectResponse.setErrorMessage(\"Channel \" +\n-                            channel +\n-                            \" is inactive. Directly return the unFinished request : \" +\n-                            future.getRequest());\n-                    DefaultFuture.received(channel, disconnectResponse);\n-                }\n-            }\n-        }\n-    }\n-\n-    public static void received(Channel channel, Response response) {\n-        received(channel, response, false);\n-    }\n-\n-    public static void received(Channel channel, Response response, boolean timeout) {\n-        try {\n-            DefaultFuture future = FUTURES.remove(response.getId());\n-            if (future != null) {\n-                Timeout t = future.timeoutCheckTask;\n-                if (!timeout) {\n-                    // decrease Time\n-                    t.cancel();\n-                }\n-                future.doReceived(response);\n-            } else {\n-                logger.warn(\"The timeout response finally returned at \"\n-                        + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date()))\n-                        + \", response status is \" + response.getStatus()\n-                        + (channel == null ? \"\" : \", channel: \" + channel.getLocalAddress()\n-                        + \" -> \" + channel.getRemoteAddress()) + \", please check provider side for detailed result.\");\n-            }\n-        } finally {\n-            CHANNELS.remove(response.getId());\n-        }\n-    }\n-\n-    @Override\n-    public boolean cancel(boolean mayInterruptIfRunning) {\n-        Response errorResult = new Response(id);\n-        errorResult.setStatus(Response.CLIENT_ERROR);\n-        errorResult.setErrorMessage(\"request future has been canceled.\");\n-        this.doReceived(errorResult);\n-        FUTURES.remove(id);\n-        CHANNELS.remove(id);\n-        return true;\n-    }\n-\n-    public void cancel() {\n-        this.cancel(true);\n-    }\n-\n-    private void doReceived(Response res) {\n-        if (res == null) {\n-            throw new IllegalStateException(\"response cannot be null\");\n-        }\n-        if (res.getStatus() == Response.OK) {\n-            this.complete(res.getResult());\n-        } else if (res.getStatus() == Response.CLIENT_TIMEOUT || res.getStatus() == Response.SERVER_TIMEOUT) {\n-            this.completeExceptionally(new TimeoutException(res.getStatus() == Response.SERVER_TIMEOUT, channel, res.getErrorMessage()));\n-        } else {\n-            this.completeExceptionally(new RemotingException(channel, res.getErrorMessage()));\n-        }\n-\n-        // the result is returning, but the caller thread may still waiting\n-        // to avoid endless waiting for whatever reason, notify caller thread to return.\n-        if (executor != null && executor instanceof ThreadlessExecutor) {\n-            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\n-            if (threadlessExecutor.isWaiting()) {\n-                threadlessExecutor.notifyReturn(new IllegalStateException(\"The result has returned, but the biz thread is still waiting\" +\n-                        \" which is not an expected state, interrupt the thread manually by returning an exception.\"));\n-            }\n-        }\n-    }\n-\n-    private long getId() {\n-        return id;\n-    }\n-\n-    private Channel getChannel() {\n-        return channel;\n-    }\n-\n-    private boolean isSent() {\n-        return sent > 0;\n-    }\n-\n-    public Request getRequest() {\n-        return request;\n-    }\n-\n-    private int getTimeout() {\n-        return timeout;\n-    }\n-\n-    private void doSent() {\n-        sent = System.currentTimeMillis();\n-    }\n-\n-    private String getTimeoutMessage(boolean scan) {\n-        long nowTimestamp = System.currentTimeMillis();\n-        return (sent > 0 ? \"Waiting server-side response timeout\" : \"Sending request timeout in client-side\")\n-                + (scan ? \" by scan timer\" : \"\") + \". start time: \"\n-                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(start))) + \", end time: \"\n-                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(nowTimestamp))) + \",\"\n-                + (sent > 0 ? \" client elapsed: \" + (sent - start)\n-                + \" ms, server elapsed: \" + (nowTimestamp - sent)\n-                : \" elapsed: \" + (nowTimestamp - start)) + \" ms, timeout: \"\n-                + timeout + \" ms, request: \" + (logger.isDebugEnabled() ? request : getRequestWithoutData()) + \", channel: \" + channel.getLocalAddress()\n-                + \" -> \" + channel.getRemoteAddress();\n-    }\n-\n-    private Request getRequestWithoutData() {\n-        Request newRequest = request.copy();\n-        newRequest.setData(null);\n-        return newRequest;\n-    }\n-\n-    private static class TimeoutCheckTask implements TimerTask {\n-\n-        private final Long requestID;\n-\n-        TimeoutCheckTask(Long requestID) {\n-            this.requestID = requestID;\n-        }\n-\n-        @Override\n-        public void run(Timeout timeout) {\n-            DefaultFuture future = DefaultFuture.getFuture(requestID);\n-            if (future == null || future.isDone()) {\n-                return;\n-            }\n-\n-            if (future.getExecutor() != null) {\n-                future.getExecutor().execute(() -> notifyTimeout(future));\n-            } else {\n-                notifyTimeout(future);\n-            }\n-        }\n-\n-        private void notifyTimeout(DefaultFuture future) {\n-            // create exception response.\n-            Response timeoutResponse = new Response(future.getId());\n-            // set timeout status.\n-            timeoutResponse.setStatus(future.isSent() ? Response.SERVER_TIMEOUT : Response.CLIENT_TIMEOUT);\n-            timeoutResponse.setErrorMessage(future.getTimeoutMessage(true));\n-            // handle response.\n-            DefaultFuture.received(future.getChannel(), timeoutResponse, true);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.exchange.support;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.common.timer.HashedWheelTimer;\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.common.timer.Timer;\r\n+import org.apache.dubbo.common.timer.TimerTask;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * DefaultFuture.\r\n+ */\r\n+public class DefaultFuture extends CompletableFuture<Object> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(DefaultFuture.class);\r\n+\r\n+    private static final Map<Long, Channel> CHANNELS = new ConcurrentHashMap<>();\r\n+\r\n+    private static final Map<Long, DefaultFuture> FUTURES = new ConcurrentHashMap<>();\r\n+\r\n+    public static final Timer TIME_OUT_TIMER = new HashedWheelTimer(\r\n+            new NamedThreadFactory(\"dubbo-future-timeout\", true),\r\n+            30,\r\n+            TimeUnit.MILLISECONDS);\r\n+\r\n+    // invoke id.\r\n+    private final Long id;\r\n+    private final Channel channel;\r\n+    private final Request request;\r\n+    private final int timeout;\r\n+    private final long start = System.currentTimeMillis();\r\n+    private volatile long sent;\r\n+    private Timeout timeoutCheckTask;\r\n+\r\n+    private ExecutorService executor;\r\n+\r\n+    public ExecutorService getExecutor() {\r\n+        return executor;\r\n+    }\r\n+\r\n+    public void setExecutor(ExecutorService executor) {\r\n+        this.executor = executor;\r\n+    }\r\n+\r\n+    private DefaultFuture(Channel channel, Request request, int timeout) {\r\n+        this.channel = channel;\r\n+        this.request = request;\r\n+        this.id = request.getId();\r\n+        this.timeout = timeout > 0 ? timeout : channel.getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        // put into waiting map.\r\n+        FUTURES.put(id, this);\r\n+        CHANNELS.put(id, channel);\r\n+    }\r\n+\r\n+    /**\r\n+     * check time out of the future\r\n+     */\r\n+    private static void timeoutCheck(DefaultFuture future) {\r\n+        TimeoutCheckTask task = new TimeoutCheckTask(future.getId());\r\n+        future.timeoutCheckTask = TIME_OUT_TIMER.newTimeout(task, future.getTimeout(), TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    /**\r\n+     * init a DefaultFuture\r\n+     * 1.init a DefaultFuture\r\n+     * 2.timeout check\r\n+     *\r\n+     * @param channel channel\r\n+     * @param request the request\r\n+     * @param timeout timeout\r\n+     * @return a new DefaultFuture\r\n+     */\r\n+    public static DefaultFuture newFuture(Channel channel, Request request, int timeout, ExecutorService executor) {\r\n+        final DefaultFuture future = new DefaultFuture(channel, request, timeout);\r\n+        future.setExecutor(executor);\r\n+        // ThreadlessExecutor needs to hold the waiting future in case of circuit return.\r\n+        if (executor instanceof ThreadlessExecutor) {\r\n+            ((ThreadlessExecutor) executor).setWaitingFuture(future);\r\n+        }\r\n+        // timeout check\r\n+        timeoutCheck(future);\r\n+        return future;\r\n+    }\r\n+\r\n+    public static DefaultFuture getFuture(long id) {\r\n+        return FUTURES.get(id);\r\n+    }\r\n+\r\n+    public static boolean hasFuture(Channel channel) {\r\n+        return CHANNELS.containsValue(channel);\r\n+    }\r\n+\r\n+    public static void sent(Channel channel, Request request) {\r\n+        DefaultFuture future = FUTURES.get(request.getId());\r\n+        if (future != null) {\r\n+            future.doSent();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * close a channel when a channel is inactive\r\n+     * directly return the unfinished requests.\r\n+     *\r\n+     * @param channel channel to close\r\n+     */\r\n+    public static void closeChannel(Channel channel) {\r\n+        for (Map.Entry<Long, Channel> entry : CHANNELS.entrySet()) {\r\n+            if (channel.equals(entry.getValue())) {\r\n+                DefaultFuture future = getFuture(entry.getKey());\r\n+                if (future != null && !future.isDone()) {\r\n+                    ExecutorService futureExecutor = future.getExecutor();\r\n+                    if (futureExecutor != null && !futureExecutor.isTerminated()) {\r\n+                        futureExecutor.shutdownNow();\r\n+                    }\r\n+\r\n+                    Response disconnectResponse = new Response(future.getId());\r\n+                    disconnectResponse.setStatus(Response.CHANNEL_INACTIVE);\r\n+                    disconnectResponse.setErrorMessage(\"Channel \" +\r\n+                            channel +\r\n+                            \" is inactive. Directly return the unFinished request : \" +\r\n+                            future.getRequest());\r\n+                    DefaultFuture.received(channel, disconnectResponse);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static void received(Channel channel, Response response) {\r\n+        received(channel, response, false);\r\n+    }\r\n+\r\n+    public static void received(Channel channel, Response response, boolean timeout) {\r\n+        try {\r\n+            DefaultFuture future = FUTURES.remove(response.getId());\r\n+            if (future != null) {\r\n+                Timeout t = future.timeoutCheckTask;\r\n+                if (!timeout) {\r\n+                    // decrease Time\r\n+                    t.cancel();\r\n+                }\r\n+                future.doReceived(response);\r\n+            } else {\r\n+                logger.warn(\"The timeout response finally returned at \"\r\n+                        + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date()))\r\n+                        + \", response status is \" + response.getStatus()\r\n+                        + (channel == null ? \"\" : \", channel: \" + channel.getLocalAddress()\r\n+                        + \" -> \" + channel.getRemoteAddress()) + \", please check provider side for detailed result.\");\r\n+            }\r\n+        } finally {\r\n+            CHANNELS.remove(response.getId());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean cancel(boolean mayInterruptIfRunning) {\r\n+        Response errorResult = new Response(id);\r\n+        errorResult.setStatus(Response.CLIENT_ERROR);\r\n+        errorResult.setErrorMessage(\"request future has been canceled.\");\r\n+        this.doReceived(errorResult);\r\n+        FUTURES.remove(id);\r\n+        CHANNELS.remove(id);\r\n+        return true;\r\n+    }\r\n+\r\n+    public void cancel() {\r\n+        this.cancel(true);\r\n+    }\r\n+\r\n+    private void doReceived(Response res) {\r\n+        if (res == null) {\r\n+            throw new IllegalStateException(\"response cannot be null\");\r\n+        }\r\n+        if (res.getStatus() == Response.OK) {\r\n+            this.complete(res.getResult());\r\n+        } else if (res.getStatus() == Response.CLIENT_TIMEOUT || res.getStatus() == Response.SERVER_TIMEOUT) {\r\n+            this.completeExceptionally(new TimeoutException(res.getStatus() == Response.SERVER_TIMEOUT, channel, res.getErrorMessage()));\r\n+        } else {\r\n+            this.completeExceptionally(new RemotingException(channel, res.getErrorMessage()));\r\n+        }\r\n+\r\n+        // the result is returning, but the caller thread may still waiting\r\n+        // to avoid endless waiting for whatever reason, notify caller thread to return.\r\n+        if (executor != null && executor instanceof ThreadlessExecutor) {\r\n+            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\r\n+            if (threadlessExecutor.isWaiting()) {\r\n+                threadlessExecutor.notifyReturn(new IllegalStateException(\"The result has returned, but the biz thread is still waiting\" +\r\n+                        \" which is not an expected state, interrupt the thread manually by returning an exception.\"));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private long getId() {\r\n+        return id;\r\n+    }\r\n+\r\n+    private Channel getChannel() {\r\n+        return channel;\r\n+    }\r\n+\r\n+    private boolean isSent() {\r\n+        return sent > 0;\r\n+    }\r\n+\r\n+    public Request getRequest() {\r\n+        return request;\r\n+    }\r\n+\r\n+    private int getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    private void doSent() {\r\n+        sent = System.currentTimeMillis();\r\n+    }\r\n+\r\n+    private String getTimeoutMessage(boolean scan) {\r\n+        long nowTimestamp = System.currentTimeMillis();\r\n+        return (sent > 0 ? \"Waiting server-side response timeout\" : \"Sending request timeout in client-side\")\r\n+                + (scan ? \" by scan timer\" : \"\") + \". start time: \"\r\n+                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(start))) + \", end time: \"\r\n+                + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss.SSS\").format(new Date(nowTimestamp))) + \",\"\r\n+                + (sent > 0 ? \" client elapsed: \" + (sent - start)\r\n+                + \" ms, server elapsed: \" + (nowTimestamp - sent)\r\n+                : \" elapsed: \" + (nowTimestamp - start)) + \" ms, timeout: \"\r\n+                + timeout + \" ms, request: \" + (logger.isDebugEnabled() ? request : getRequestWithoutData()) + \", channel: \" + channel.getLocalAddress()\r\n+                + \" -> \" + channel.getRemoteAddress();\r\n+    }\r\n+\r\n+    private Request getRequestWithoutData() {\r\n+        Request newRequest = request.copy();\r\n+        newRequest.setData(null);\r\n+        return newRequest;\r\n+    }\r\n+\r\n+    private static class TimeoutCheckTask implements TimerTask {\r\n+\r\n+        private final Long requestID;\r\n+\r\n+        TimeoutCheckTask(Long requestID) {\r\n+            this.requestID = requestID;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run(Timeout timeout) {\r\n+            DefaultFuture future = DefaultFuture.getFuture(requestID);\r\n+            if (future == null || future.isDone()) {\r\n+                return;\r\n+            }\r\n+\r\n+            if (future.getExecutor() != null) {\r\n+                future.getExecutor().execute(() -> notifyTimeout(future));\r\n+            } else {\r\n+                notifyTimeout(future);\r\n+            }\r\n+        }\r\n+\r\n+        private void notifyTimeout(DefaultFuture future) {\r\n+            // create exception response.\r\n+            Response timeoutResponse = new Response(future.getId());\r\n+            // set timeout status.\r\n+            timeoutResponse.setStatus(future.isSent() ? Response.SERVER_TIMEOUT : Response.CLIENT_TIMEOUT);\r\n+            timeoutResponse.setErrorMessage(future.getTimeoutMessage(true));\r\n+            // handle response.\r\n+            DefaultFuture.received(future.getChannel(), timeoutResponse, true);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/AbstractTimerTask.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,97 +1,97 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.timer.Timeout;\n-import org.apache.dubbo.common.timer.Timer;\n-import org.apache.dubbo.common.timer.TimerTask;\n-import org.apache.dubbo.remoting.Channel;\n-\n-import java.util.Collection;\n-import java.util.concurrent.TimeUnit;\n-\n-/**\n- * AbstractTimerTask\n- */\n-public abstract class AbstractTimerTask implements TimerTask {\n-\n-    private final ChannelProvider channelProvider;\n-\n-    private final Long tick;\n-\n-    protected volatile boolean cancel = false;\n-\n-    AbstractTimerTask(ChannelProvider channelProvider, Long tick) {\n-        if (channelProvider == null || tick == null) {\n-            throw new IllegalArgumentException();\n-        }\n-        this.tick = tick;\n-        this.channelProvider = channelProvider;\n-    }\n-\n-    static Long lastRead(Channel channel) {\n-        return (Long) channel.getAttribute(HeartbeatHandler.KEY_READ_TIMESTAMP);\n-    }\n-\n-    static Long lastWrite(Channel channel) {\n-        return (Long) channel.getAttribute(HeartbeatHandler.KEY_WRITE_TIMESTAMP);\n-    }\n-\n-    static Long now() {\n-        return System.currentTimeMillis();\n-    }\n-\n-    public void cancel() {\n-        this.cancel = true;\n-    }\n-\n-    private void reput(Timeout timeout, Long tick) {\n-        if (timeout == null || tick == null) {\n-            throw new IllegalArgumentException();\n-        }\n-\n-        if (cancel) {\n-            return;\n-        }\n-\n-        Timer timer = timeout.timer();\n-        if (timer.isStop() || timeout.isCancelled()) {\n-            return;\n-        }\n-\n-        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\n-    }\n-\n-    @Override\n-    public void run(Timeout timeout) throws Exception {\n-        Collection<Channel> c = channelProvider.getChannels();\n-        for (Channel channel : c) {\n-            if (channel.isClosed()) {\n-                continue;\n-            }\n-            doTask(channel);\n-        }\n-        reput(timeout, tick);\n-    }\n-\n-    protected abstract void doTask(Channel channel);\n-\n-    interface ChannelProvider {\n-        Collection<Channel> getChannels();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.timer.Timeout;\r\n+import org.apache.dubbo.common.timer.Timer;\r\n+import org.apache.dubbo.common.timer.TimerTask;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+/**\r\n+ * AbstractTimerTask\r\n+ */\r\n+public abstract class AbstractTimerTask implements TimerTask {\r\n+\r\n+    private final ChannelProvider channelProvider;\r\n+\r\n+    private final Long tick;\r\n+\r\n+    protected volatile boolean cancel = false;\r\n+\r\n+    AbstractTimerTask(ChannelProvider channelProvider, Long tick) {\r\n+        if (channelProvider == null || tick == null) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+        this.tick = tick;\r\n+        this.channelProvider = channelProvider;\r\n+    }\r\n+\r\n+    static Long lastRead(Channel channel) {\r\n+        return (Long) channel.getAttribute(HeartbeatHandler.KEY_READ_TIMESTAMP);\r\n+    }\r\n+\r\n+    static Long lastWrite(Channel channel) {\r\n+        return (Long) channel.getAttribute(HeartbeatHandler.KEY_WRITE_TIMESTAMP);\r\n+    }\r\n+\r\n+    static Long now() {\r\n+        return System.currentTimeMillis();\r\n+    }\r\n+\r\n+    public void cancel() {\r\n+        this.cancel = true;\r\n+    }\r\n+\r\n+    private void reput(Timeout timeout, Long tick) {\r\n+        if (timeout == null || tick == null) {\r\n+            throw new IllegalArgumentException();\r\n+        }\r\n+\r\n+        if (cancel) {\r\n+            return;\r\n+        }\r\n+\r\n+        Timer timer = timeout.timer();\r\n+        if (timer.isStop() || timeout.isCancelled()) {\r\n+            return;\r\n+        }\r\n+\r\n+        timer.newTimeout(timeout.task(), tick, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void run(Timeout timeout) throws Exception {\r\n+        Collection<Channel> c = channelProvider.getChannels();\r\n+        for (Channel channel : c) {\r\n+            if (channel.isClosed()) {\r\n+                continue;\r\n+            }\r\n+            doTask(channel);\r\n+        }\r\n+        reput(timeout, tick);\r\n+    }\r\n+\r\n+    protected abstract void doTask(Channel channel);\r\n+\r\n+    interface ChannelProvider {\r\n+        Collection<Channel> getChannels();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,116 +1,116 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.transport.AbstractChannelHandlerDelegate;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-public class HeartbeatHandler extends AbstractChannelHandlerDelegate {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(HeartbeatHandler.class);\n-\n-    public static final String KEY_READ_TIMESTAMP = \"READ_TIMESTAMP\";\n-\n-    public static final String KEY_WRITE_TIMESTAMP = \"WRITE_TIMESTAMP\";\n-\n-    public HeartbeatHandler(ChannelHandler handler) {\n-        super(handler);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        setReadTimestamp(channel);\n-        setWriteTimestamp(channel);\n-        handler.connected(channel);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        clearReadTimestamp(channel);\n-        clearWriteTimestamp(channel);\n-        handler.disconnected(channel);\n-    }\n-\n-    @Override\n-    public void sent(Channel channel, Object message) throws RemotingException {\n-        setWriteTimestamp(channel);\n-        handler.sent(channel, message);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        setReadTimestamp(channel);\n-        if (isHeartbeatRequest(message)) {\n-            Request req = (Request) message;\n-            if (req.isTwoWay()) {\n-                Response res = new Response(req.getId(), req.getVersion());\n-                res.setEvent(HEARTBEAT_EVENT);\n-                channel.send(res);\n-                if (logger.isInfoEnabled()) {\n-                    int heartbeat = channel.getUrl().getParameter(Constants.HEARTBEAT_KEY, 0);\n-                    if (logger.isDebugEnabled()) {\n-                        logger.debug(\"Received heartbeat from remote channel \" + channel.getRemoteAddress()\n-                                + \", cause: The channel has no data-transmission exceeds a heartbeat period\"\n-                                + (heartbeat > 0 ? \": \" + heartbeat + \"ms\" : \"\"));\n-                    }\n-                }\n-            }\n-            return;\n-        }\n-        if (isHeartbeatResponse(message)) {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"Receive heartbeat response in thread \" + Thread.currentThread().getName());\n-            }\n-            return;\n-        }\n-        handler.received(channel, message);\n-    }\n-\n-    private void setReadTimestamp(Channel channel) {\n-        channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());\n-    }\n-\n-    private void setWriteTimestamp(Channel channel) {\n-        channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());\n-    }\n-\n-    private void clearReadTimestamp(Channel channel) {\n-        channel.removeAttribute(KEY_READ_TIMESTAMP);\n-    }\n-\n-    private void clearWriteTimestamp(Channel channel) {\n-        channel.removeAttribute(KEY_WRITE_TIMESTAMP);\n-    }\n-\n-    private boolean isHeartbeatRequest(Object message) {\n-        return message instanceof Request && ((Request) message).isHeartbeat();\n-    }\n-\n-    private boolean isHeartbeatResponse(Object message) {\n-        return message instanceof Response && ((Response) message).isHeartbeat();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannelHandlerDelegate;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+public class HeartbeatHandler extends AbstractChannelHandlerDelegate {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(HeartbeatHandler.class);\r\n+\r\n+    public static final String KEY_READ_TIMESTAMP = \"READ_TIMESTAMP\";\r\n+\r\n+    public static final String KEY_WRITE_TIMESTAMP = \"WRITE_TIMESTAMP\";\r\n+\r\n+    public HeartbeatHandler(ChannelHandler handler) {\r\n+        super(handler);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        setReadTimestamp(channel);\r\n+        setWriteTimestamp(channel);\r\n+        handler.connected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        clearReadTimestamp(channel);\r\n+        clearWriteTimestamp(channel);\r\n+        handler.disconnected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void sent(Channel channel, Object message) throws RemotingException {\r\n+        setWriteTimestamp(channel);\r\n+        handler.sent(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        setReadTimestamp(channel);\r\n+        if (isHeartbeatRequest(message)) {\r\n+            Request req = (Request) message;\r\n+            if (req.isTwoWay()) {\r\n+                Response res = new Response(req.getId(), req.getVersion());\r\n+                res.setEvent(HEARTBEAT_EVENT);\r\n+                channel.send(res);\r\n+                if (logger.isInfoEnabled()) {\r\n+                    int heartbeat = channel.getUrl().getParameter(Constants.HEARTBEAT_KEY, 0);\r\n+                    if (logger.isDebugEnabled()) {\r\n+                        logger.debug(\"Received heartbeat from remote channel \" + channel.getRemoteAddress()\r\n+                                + \", cause: The channel has no data-transmission exceeds a heartbeat period\"\r\n+                                + (heartbeat > 0 ? \": \" + heartbeat + \"ms\" : \"\"));\r\n+                    }\r\n+                }\r\n+            }\r\n+            return;\r\n+        }\r\n+        if (isHeartbeatResponse(message)) {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"Receive heartbeat response in thread \" + Thread.currentThread().getName());\r\n+            }\r\n+            return;\r\n+        }\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    private void setReadTimestamp(Channel channel) {\r\n+        channel.setAttribute(KEY_READ_TIMESTAMP, System.currentTimeMillis());\r\n+    }\r\n+\r\n+    private void setWriteTimestamp(Channel channel) {\r\n+        channel.setAttribute(KEY_WRITE_TIMESTAMP, System.currentTimeMillis());\r\n+    }\r\n+\r\n+    private void clearReadTimestamp(Channel channel) {\r\n+        channel.removeAttribute(KEY_READ_TIMESTAMP);\r\n+    }\r\n+\r\n+    private void clearWriteTimestamp(Channel channel) {\r\n+        channel.removeAttribute(KEY_WRITE_TIMESTAMP);\r\n+    }\r\n+\r\n+    private boolean isHeartbeatRequest(Object message) {\r\n+        return message instanceof Request && ((Request) message).isHeartbeat();\r\n+    }\r\n+\r\n+    private boolean isHeartbeatResponse(Object message) {\r\n+        return message instanceof Response && ((Response) message).isHeartbeat();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java", "source2": "org/apache/dubbo/remoting/exchange/support/header/HeartbeatTimerTask.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.exchange.support.header;\n-\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.exchange.Request;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-/**\n- * HeartbeatTimerTask\n- */\n-public class HeartbeatTimerTask extends AbstractTimerTask {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(HeartbeatTimerTask.class);\n-\n-    private final int heartbeat;\n-\n-    HeartbeatTimerTask(ChannelProvider channelProvider, Long heartbeatTick, int heartbeat) {\n-        super(channelProvider, heartbeatTick);\n-        this.heartbeat = heartbeat;\n-    }\n-\n-    @Override\n-    protected void doTask(Channel channel) {\n-        try {\n-            Long lastRead = lastRead(channel);\n-            Long lastWrite = lastWrite(channel);\n-            if ((lastRead != null && now() - lastRead > heartbeat)\n-                    || (lastWrite != null && now() - lastWrite > heartbeat)) {\n-                Request req = new Request();\n-                req.setVersion(Version.getProtocolVersion());\n-                req.setTwoWay(true);\n-                req.setEvent(HEARTBEAT_EVENT);\n-                channel.send(req);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"Send heartbeat to remote channel \" + channel.getRemoteAddress()\n-                            + \", cause: The channel has no data-transmission exceeds a heartbeat period: \"\n-                            + heartbeat + \"ms\");\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"Exception when heartbeat to remote channel \" + channel.getRemoteAddress(), t);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.exchange.support.header;\r\n+\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * HeartbeatTimerTask\r\n+ */\r\n+public class HeartbeatTimerTask extends AbstractTimerTask {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(HeartbeatTimerTask.class);\r\n+\r\n+    private final int heartbeat;\r\n+\r\n+    HeartbeatTimerTask(ChannelProvider channelProvider, Long heartbeatTick, int heartbeat) {\r\n+        super(channelProvider, heartbeatTick);\r\n+        this.heartbeat = heartbeat;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doTask(Channel channel) {\r\n+        try {\r\n+            Long lastRead = lastRead(channel);\r\n+            Long lastWrite = lastWrite(channel);\r\n+            if ((lastRead != null && now() - lastRead > heartbeat)\r\n+                    || (lastWrite != null && now() - lastWrite > heartbeat)) {\r\n+                Request req = new Request();\r\n+                req.setVersion(Version.getProtocolVersion());\r\n+                req.setTwoWay(true);\r\n+                req.setEvent(HEARTBEAT_EVENT);\r\n+                channel.send(req);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"Send heartbeat to remote channel \" + channel.getRemoteAddress()\r\n+                            + \", cause: The channel has no data-transmission exceeds a heartbeat period: \"\r\n+                            + heartbeat + \"ms\");\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Exception when heartbeat to remote channel \" + channel.getRemoteAddress(), t);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/http/servlet/ServletHttpBinder.java", "source2": "org/apache/dubbo/remoting/http/servlet/ServletHttpBinder.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,34 +1,34 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.http.servlet;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.remoting.http.HttpServer;\n-\n-/**\n- * ServletHttpTransporter\n- */\n-public class ServletHttpBinder implements HttpBinder {\n-\n-    @Override\n-    public HttpServer bind(URL url, HttpHandler handler) {\n-        return new ServletHttpServer(url, handler);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.http.servlet;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.remoting.http.HttpServer;\r\n+\r\n+/**\r\n+ * ServletHttpTransporter\r\n+ */\r\n+public class ServletHttpBinder implements HttpBinder {\r\n+\r\n+    @Override\r\n+    public HttpServer bind(URL url, HttpHandler handler) {\r\n+        return new ServletHttpServer(url, handler);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/http/servlet/ServletManager.java", "source2": "org/apache/dubbo/remoting/http/servlet/ServletManager.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,50 +1,50 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.http.servlet;\n-\n-import javax.servlet.ServletContext;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * TODO this may not be a pretty elegant solution,\n- *\n- */\n-public class ServletManager {\n-\n-    public static final int EXTERNAL_SERVER_PORT = -1234;\n-\n-    private static final ServletManager INSTANCE = new ServletManager();\n-\n-    private final Map<Integer, ServletContext> contextMap = new ConcurrentHashMap<Integer, ServletContext>();\n-\n-    public static ServletManager getInstance() {\n-        return INSTANCE;\n-    }\n-\n-    public void addServletContext(int port, ServletContext servletContext) {\n-        contextMap.put(port, servletContext);\n-    }\n-\n-    public void removeServletContext(int port) {\n-        contextMap.remove(port);\n-    }\n-\n-    public ServletContext getServletContext(int port) {\n-        return contextMap.get(port);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.http.servlet;\r\n+\r\n+import javax.servlet.ServletContext;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * TODO this may not be a pretty elegant solution,\r\n+ *\r\n+ */\r\n+public class ServletManager {\r\n+\r\n+    public static final int EXTERNAL_SERVER_PORT = -1234;\r\n+\r\n+    private static final ServletManager INSTANCE = new ServletManager();\r\n+\r\n+    private final Map<Integer, ServletContext> contextMap = new ConcurrentHashMap<Integer, ServletContext>();\r\n+\r\n+    public static ServletManager getInstance() {\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    public void addServletContext(int port, ServletContext servletContext) {\r\n+        contextMap.put(port, servletContext);\r\n+    }\r\n+\r\n+    public void removeServletContext(int port) {\r\n+        contextMap.remove(port);\r\n+    }\r\n+\r\n+    public ServletContext getServletContext(int port) {\r\n+        return contextMap.get(port);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/http/tomcat/TomcatHttpServer.java", "source2": "org/apache/dubbo/remoting/http/tomcat/TomcatHttpServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.http.tomcat;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.remoting.http.servlet.DispatcherServlet;\n-import org.apache.dubbo.remoting.http.servlet.ServletManager;\n-import org.apache.dubbo.remoting.http.support.AbstractHttpServer;\n-\n-import org.apache.catalina.Context;\n-import org.apache.catalina.LifecycleException;\n-import org.apache.catalina.connector.Connector;\n-import org.apache.catalina.startup.Tomcat;\n-\n-import java.io.File;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\n-\n-public class TomcatHttpServer extends AbstractHttpServer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(TomcatHttpServer.class);\n-\n-    private final Tomcat tomcat;\n-\n-    private final URL url;\n-\n-    public TomcatHttpServer(URL url, final HttpHandler handler) {\n-        super(url, handler);\n-\n-        this.url = url;\n-        DispatcherServlet.addHttpHandler(url.getPort(), handler);\n-        String baseDir = new File(System.getProperty(\"java.io.tmpdir\")).getAbsolutePath();\n-        tomcat = new Tomcat();\n-\n-        Connector connector = tomcat.getConnector();\n-        connector.setPort(url.getPort());\n-        connector.setProperty(\"maxThreads\", String.valueOf(url.getParameter(THREADS_KEY, DEFAULT_THREADS)));\n-        connector.setProperty(\"maxConnections\", String.valueOf(url.getParameter(ACCEPTS_KEY, -1)));\n-        connector.setProperty(\"URIEncoding\", \"UTF-8\");\n-        connector.setProperty(\"connectionTimeout\", \"60000\");\n-        connector.setProperty(\"maxKeepAliveRequests\", \"-1\");\n-\n-        tomcat.setBaseDir(baseDir);\n-        tomcat.setPort(url.getPort());\n-\n-        Context context = tomcat.addContext(\"/\", baseDir);\n-        Tomcat.addServlet(context, \"dispatcher\", new DispatcherServlet());\n-        // Issue : https://github.com/apache/dubbo/issues/6418\n-        // addServletMapping method will be removed since Tomcat 9\n-        // context.addServletMapping(\"/*\", \"dispatcher\");\n-        context.addServletMappingDecoded(\"/*\", \"dispatcher\");\n-        ServletManager.getInstance().addServletContext(url.getPort(), context.getServletContext());\n-\n-        // tell tomcat to fail on startup failures.\n-        System.setProperty(\"org.apache.catalina.startup.EXIT_ON_INIT_FAILURE\", \"true\");\n-\n-        try {\n-            tomcat.start();\n-        } catch (LifecycleException e) {\n-            throw new IllegalStateException(\"Failed to start tomcat server at \" + url.getAddress(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        super.close();\n-\n-        ServletManager.getInstance().removeServletContext(url.getPort());\n-\n-        try {\n-            tomcat.stop();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.http.tomcat;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.remoting.http.servlet.DispatcherServlet;\r\n+import org.apache.dubbo.remoting.http.servlet.ServletManager;\r\n+import org.apache.dubbo.remoting.http.support.AbstractHttpServer;\r\n+\r\n+import org.apache.catalina.Context;\r\n+import org.apache.catalina.LifecycleException;\r\n+import org.apache.catalina.connector.Connector;\r\n+import org.apache.catalina.startup.Tomcat;\r\n+\r\n+import java.io.File;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\r\n+\r\n+public class TomcatHttpServer extends AbstractHttpServer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(TomcatHttpServer.class);\r\n+\r\n+    private final Tomcat tomcat;\r\n+\r\n+    private final URL url;\r\n+\r\n+    public TomcatHttpServer(URL url, final HttpHandler handler) {\r\n+        super(url, handler);\r\n+\r\n+        this.url = url;\r\n+        DispatcherServlet.addHttpHandler(url.getPort(), handler);\r\n+        String baseDir = new File(System.getProperty(\"java.io.tmpdir\")).getAbsolutePath();\r\n+        tomcat = new Tomcat();\r\n+\r\n+        Connector connector = tomcat.getConnector();\r\n+        connector.setPort(url.getPort());\r\n+        connector.setProperty(\"maxThreads\", String.valueOf(url.getParameter(THREADS_KEY, DEFAULT_THREADS)));\r\n+        connector.setProperty(\"maxConnections\", String.valueOf(url.getParameter(ACCEPTS_KEY, -1)));\r\n+        connector.setProperty(\"URIEncoding\", \"UTF-8\");\r\n+        connector.setProperty(\"connectionTimeout\", \"60000\");\r\n+        connector.setProperty(\"maxKeepAliveRequests\", \"-1\");\r\n+\r\n+        tomcat.setBaseDir(baseDir);\r\n+        tomcat.setPort(url.getPort());\r\n+\r\n+        Context context = tomcat.addContext(\"/\", baseDir);\r\n+        Tomcat.addServlet(context, \"dispatcher\", new DispatcherServlet());\r\n+        // Issue : https://github.com/apache/dubbo/issues/6418\r\n+        // addServletMapping method will be removed since Tomcat 9\r\n+        // context.addServletMapping(\"/*\", \"dispatcher\");\r\n+        context.addServletMappingDecoded(\"/*\", \"dispatcher\");\r\n+        ServletManager.getInstance().addServletContext(url.getPort(), context.getServletContext());\r\n+\r\n+        // tell tomcat to fail on startup failures.\r\n+        System.setProperty(\"org.apache.catalina.startup.EXIT_ON_INIT_FAILURE\", \"true\");\r\n+\r\n+        try {\r\n+            tomcat.start();\r\n+        } catch (LifecycleException e) {\r\n+            throw new IllegalStateException(\"Failed to start tomcat server at \" + url.getAddress(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        super.close();\r\n+\r\n+        ServletManager.getInstance().removeServletContext(url.getPort());\r\n+\r\n+        try {\r\n+            tomcat.stop();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java", "source2": "org/apache/dubbo/remoting/telnet/support/command/LogTelnetHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.telnet.support.command;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Level;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.telnet.TelnetHandler;\n-import org.apache.dubbo.remoting.telnet.support.Help;\n-\n-import java.io.File;\n-import java.io.FileInputStream;\n-import java.nio.ByteBuffer;\n-import java.nio.channels.FileChannel;\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-\n-/**\n- * LogTelnetHandler\n- */\n-@Activate\n-@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\n-public class LogTelnetHandler implements TelnetHandler {\n-\n-    public static final String SERVICE_KEY = \"telnet.log\";\n-\n-    @Override\n-    public String telnet(Channel channel, String message) {\n-        long size = 0;\n-        File file = LoggerFactory.getFile();\n-        StringBuilder buf = new StringBuilder();\n-        if (message == null || message.trim().length() == 0) {\n-            buf.append(\"EXAMPLE: log error / log 100\");\n-        } else {\n-            String[] str = message.split(\" \");\n-            if (!StringUtils.isInteger(str[0])) {\n-                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\n-            } else {\n-                int showLogLength = Integer.parseInt(str[0]);\n-\n-                if (file != null && file.exists()) {\n-                    try {\n-                        try (FileInputStream fis = new FileInputStream(file)) {\n-                            try (FileChannel filechannel = fis.getChannel()) {\n-                                size = filechannel.size();\n-                                ByteBuffer bb;\n-                                if (size <= showLogLength) {\n-                                    bb = ByteBuffer.allocate((int) size);\n-                                    filechannel.read(bb, 0);\n-                                } else {\n-                                    int pos = (int) (size - showLogLength);\n-                                    bb = ByteBuffer.allocate(showLogLength);\n-                                    filechannel.read(bb, pos);\n-                                }\n-                                bb.flip();\n-                                String content = new String(bb.array()).replace(\"<\", \"&lt;\")\n-                                        .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\n-                                buf.append(\"\\r\\ncontent:\" + content);\n-\n-                                buf.append(\"\\r\\nmodified:\" + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\n-                                        .format(new Date(file.lastModified()))));\n-                                buf.append(\"\\r\\nsize:\" + size + \"\\r\\n\");\n-                            }\n-                        }\n-                    } catch (Exception e) {\n-                        buf.append(e.getMessage());\n-                    }\n-                } else {\n-                    size = 0;\n-                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\n-                }\n-            }\n-        }\n-        buf.append(\"\\r\\nCURRENT LOG LEVEL:\" + LoggerFactory.getLevel())\n-                .append(\"\\r\\nCURRENT LOG APPENDER:\" + (file == null ? \"console\" : file.getAbsolutePath()));\n-        return buf.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.telnet.support.command;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Level;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.telnet.TelnetHandler;\r\n+import org.apache.dubbo.remoting.telnet.support.Help;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileInputStream;\r\n+import java.nio.ByteBuffer;\r\n+import java.nio.channels.FileChannel;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+\r\n+/**\r\n+ * LogTelnetHandler\r\n+ */\r\n+@Activate\r\n+@Help(parameter = \"level\", summary = \"Change log level or show log \", detail = \"Change log level or show log\")\r\n+public class LogTelnetHandler implements TelnetHandler {\r\n+\r\n+    public static final String SERVICE_KEY = \"telnet.log\";\r\n+\r\n+    @Override\r\n+    public String telnet(Channel channel, String message) {\r\n+        long size = 0;\r\n+        File file = LoggerFactory.getFile();\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (message == null || message.trim().length() == 0) {\r\n+            buf.append(\"EXAMPLE: log error / log 100\");\r\n+        } else {\r\n+            String[] str = message.split(\" \");\r\n+            if (!StringUtils.isInteger(str[0])) {\r\n+                LoggerFactory.setLevel(Level.valueOf(message.toUpperCase()));\r\n+            } else {\r\n+                int showLogLength = Integer.parseInt(str[0]);\r\n+\r\n+                if (file != null && file.exists()) {\r\n+                    try {\r\n+                        try (FileInputStream fis = new FileInputStream(file)) {\r\n+                            try (FileChannel filechannel = fis.getChannel()) {\r\n+                                size = filechannel.size();\r\n+                                ByteBuffer bb;\r\n+                                if (size <= showLogLength) {\r\n+                                    bb = ByteBuffer.allocate((int) size);\r\n+                                    filechannel.read(bb, 0);\r\n+                                } else {\r\n+                                    int pos = (int) (size - showLogLength);\r\n+                                    bb = ByteBuffer.allocate(showLogLength);\r\n+                                    filechannel.read(bb, pos);\r\n+                                }\r\n+                                bb.flip();\r\n+                                String content = new String(bb.array()).replace(\"<\", \"&lt;\")\r\n+                                        .replace(\">\", \"&gt;\").replace(\"\\n\", \"<br/><br/>\");\r\n+                                buf.append(\"\\r\\ncontent:\" + content);\r\n+\r\n+                                buf.append(\"\\r\\nmodified:\" + (new SimpleDateFormat(\"yyyy-MM-dd HH:mm:ss\")\r\n+                                        .format(new Date(file.lastModified()))));\r\n+                                buf.append(\"\\r\\nsize:\" + size + \"\\r\\n\");\r\n+                            }\r\n+                        }\r\n+                    } catch (Exception e) {\r\n+                        buf.append(e.getMessage());\r\n+                    }\r\n+                } else {\r\n+                    size = 0;\r\n+                    buf.append(\"\\r\\nMESSAGE: log file not exists or log appender is console .\");\r\n+                }\r\n+            }\r\n+        }\r\n+        buf.append(\"\\r\\nCURRENT LOG LEVEL:\" + LoggerFactory.getLevel())\r\n+                .append(\"\\r\\nCURRENT LOG APPENDER:\" + (file == null ? \"console\" : file.getAbsolutePath()));\r\n+        return buf.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractClient.java", "source2": "org/apache/dubbo/remoting/transport/AbstractClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,343 +1,343 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Client;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-\n-import java.net.InetSocketAddress;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CLIENT_THREADPOOL;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-\n-/**\n- * AbstractClient\n- */\n-public abstract class AbstractClient extends AbstractEndpoint implements Client {\n-\n-    protected static final String CLIENT_THREAD_POOL_NAME = \"DubboClientHandler\";\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractClient.class);\n-    private final Lock connectLock = new ReentrantLock();\n-    private final boolean needReconnect;\n-    //issue-7054:Consumer's executor is sharing globally.\n-    protected volatile ExecutorService executor;\n-    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-\n-    public AbstractClient(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, handler);\n-\n-        needReconnect = url.getParameter(Constants.SEND_RECONNECT_KEY, false);\n-\n-        initExecutor(url);\n-\n-        try {\n-            doOpen();\n-        } catch (Throwable t) {\n-            close();\n-            throw new RemotingException(url.toInetSocketAddress(), null,\n-                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-\n-        try {\n-            // connect.\n-            connect();\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress() + \" connect to the server \" + getRemoteAddress());\n-            }\n-        } catch (RemotingException t) {\n-            if (url.getParameter(Constants.CHECK_KEY, true)) {\n-                close();\n-                throw t;\n-            } else {\n-                logger.warn(\"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                        + \" connect to the server \" + getRemoteAddress() + \" (check == false, ignore and retry later!), cause: \" + t.getMessage(), t);\n-            }\n-        } catch (Throwable t) {\n-            close();\n-            throw new RemotingException(url.toInetSocketAddress(), null,\n-                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\n-                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-    }\n-\n-    private void initExecutor(URL url) {\n-        //issue-7054:Consumer's executor is sharing globally, thread name not require provider ip.\n-        url = url.addParameter(THREAD_NAME_KEY, CLIENT_THREAD_POOL_NAME);\n-        url = url.addParameterIfAbsent(THREADPOOL_KEY, DEFAULT_CLIENT_THREADPOOL);\n-        executor = executorRepository.createExecutorIfAbsent(url);\n-    }\n-\n-    protected static ChannelHandler wrapChannelHandler(URL url, ChannelHandler handler) {\n-        return ChannelHandlers.wrap(handler, url);\n-    }\n-\n-    public InetSocketAddress getConnectAddress() {\n-        return new InetSocketAddress(NetUtils.filterLocalHost(getUrl().getHost()), getUrl().getPort());\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return getUrl().toInetSocketAddress();\n-        }\n-        return channel.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\n-        }\n-        return channel.getLocalAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return false;\n-        }\n-        return channel.isConnected();\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return null;\n-        }\n-        return channel.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return;\n-        }\n-        channel.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return;\n-        }\n-        channel.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        Channel channel = getChannel();\n-        if (channel == null) {\n-            return false;\n-        }\n-        return channel.hasAttribute(key);\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        if (needReconnect && !isConnected()) {\n-            connect();\n-        }\n-        Channel channel = getChannel();\n-        //TODO Can the value returned by getChannel() be null? need improvement.\n-        if (channel == null || !channel.isConnected()) {\n-            throw new RemotingException(this, \"message can not send, because channel is closed . url:\" + getUrl());\n-        }\n-        channel.send(message, sent);\n-    }\n-\n-    protected void connect() throws RemotingException {\n-        connectLock.lock();\n-\n-        try {\n-            if (isConnected()) {\n-                return;\n-            }\n-\n-            if (isClosed() || isClosing()) {\n-                logger.warn(\"No need to connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: client status is closed or closing.\");\n-                return;\n-            }\n-\n-            doConnect();\n-\n-            if (!isConnected()) {\n-                throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                                + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                                + \", cause: Connect wait timeout: \" + getConnectTimeout() + \"ms.\");\n-\n-            } else {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Successed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                                    + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                                    + \", channel is \" + this.getChannel());\n-                }\n-            }\n-\n-        } catch (RemotingException e) {\n-            throw e;\n-\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\n-                            + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\n-                            + \", cause: \" + e.getMessage(), e);\n-\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    public void disconnect() {\n-        connectLock.lock();\n-        try {\n-            try {\n-                Channel channel = getChannel();\n-                if (channel != null) {\n-                    channel.close();\n-                }\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-            try {\n-                doDisConnect();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    @Override\n-    public void reconnect() throws RemotingException {\n-        if (!isConnected()) {\n-            connectLock.lock();\n-            try {\n-                if (!isConnected()) {\n-                    disconnect();\n-                    connect();\n-                }\n-            } finally {\n-                connectLock.unlock();\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (isClosed()) {\n-            logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\n-            return;\n-        }\n-\n-        connectLock.lock();\n-        try {\n-            if (isClosed()) {\n-                logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\n-                return;\n-            }\n-\n-            try {\n-                super.close();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-            try {\n-                disconnect();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-            try {\n-                doClose();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        close();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getClass().getName() + \" [\" + getLocalAddress() + \" -> \" + getRemoteAddress() + \"]\";\n-    }\n-\n-    /**\n-     * Open client.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doOpen() throws Throwable;\n-\n-    /**\n-     * Close client.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doClose() throws Throwable;\n-\n-    /**\n-     * Connect to server.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doConnect() throws Throwable;\n-\n-    /**\n-     * disConnect to server.\n-     *\n-     * @throws Throwable\n-     */\n-    protected abstract void doDisConnect() throws Throwable;\n-\n-    /**\n-     * Get the connected channel.\n-     *\n-     * @return channel\n-     */\n-    protected abstract Channel getChannel();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Client;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CLIENT_THREADPOOL;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADPOOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+\r\n+/**\r\n+ * AbstractClient\r\n+ */\r\n+public abstract class AbstractClient extends AbstractEndpoint implements Client {\r\n+\r\n+    protected static final String CLIENT_THREAD_POOL_NAME = \"DubboClientHandler\";\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractClient.class);\r\n+    private final Lock connectLock = new ReentrantLock();\r\n+    private final boolean needReconnect;\r\n+    //issue-7054:Consumer's executor is sharing globally.\r\n+    protected volatile ExecutorService executor;\r\n+    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+\r\n+    public AbstractClient(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, handler);\r\n+\r\n+        needReconnect = url.getParameter(Constants.SEND_RECONNECT_KEY, false);\r\n+\r\n+        initExecutor(url);\r\n+\r\n+        try {\r\n+            doOpen();\r\n+        } catch (Throwable t) {\r\n+            close();\r\n+            throw new RemotingException(url.toInetSocketAddress(), null,\r\n+                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+\r\n+        try {\r\n+            // connect.\r\n+            connect();\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress() + \" connect to the server \" + getRemoteAddress());\r\n+            }\r\n+        } catch (RemotingException t) {\r\n+            if (url.getParameter(Constants.CHECK_KEY, true)) {\r\n+                close();\r\n+                throw t;\r\n+            } else {\r\n+                logger.warn(\"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                        + \" connect to the server \" + getRemoteAddress() + \" (check == false, ignore and retry later!), cause: \" + t.getMessage(), t);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            close();\r\n+            throw new RemotingException(url.toInetSocketAddress(), null,\r\n+                    \"Failed to start \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalAddress()\r\n+                            + \" connect to the server \" + getRemoteAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    private void initExecutor(URL url) {\r\n+        //issue-7054:Consumer's executor is sharing globally, thread name not require provider ip.\r\n+        url = url.addParameter(THREAD_NAME_KEY, CLIENT_THREAD_POOL_NAME);\r\n+        url = url.addParameterIfAbsent(THREADPOOL_KEY, DEFAULT_CLIENT_THREADPOOL);\r\n+        executor = executorRepository.createExecutorIfAbsent(url);\r\n+    }\r\n+\r\n+    protected static ChannelHandler wrapChannelHandler(URL url, ChannelHandler handler) {\r\n+        return ChannelHandlers.wrap(handler, url);\r\n+    }\r\n+\r\n+    public InetSocketAddress getConnectAddress() {\r\n+        return new InetSocketAddress(NetUtils.filterLocalHost(getUrl().getHost()), getUrl().getPort());\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return getUrl().toInetSocketAddress();\r\n+        }\r\n+        return channel.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\r\n+        }\r\n+        return channel.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return false;\r\n+        }\r\n+        return channel.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return null;\r\n+        }\r\n+        return channel.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return;\r\n+        }\r\n+        channel.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return;\r\n+        }\r\n+        channel.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        Channel channel = getChannel();\r\n+        if (channel == null) {\r\n+            return false;\r\n+        }\r\n+        return channel.hasAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        if (needReconnect && !isConnected()) {\r\n+            connect();\r\n+        }\r\n+        Channel channel = getChannel();\r\n+        //TODO Can the value returned by getChannel() be null? need improvement.\r\n+        if (channel == null || !channel.isConnected()) {\r\n+            throw new RemotingException(this, \"message can not send, because channel is closed . url:\" + getUrl());\r\n+        }\r\n+        channel.send(message, sent);\r\n+    }\r\n+\r\n+    protected void connect() throws RemotingException {\r\n+        connectLock.lock();\r\n+\r\n+        try {\r\n+            if (isConnected()) {\r\n+                return;\r\n+            }\r\n+\r\n+            if (isClosed() || isClosing()) {\r\n+                logger.warn(\"No need to connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: client status is closed or closing.\");\r\n+                return;\r\n+            }\r\n+\r\n+            doConnect();\r\n+\r\n+            if (!isConnected()) {\r\n+                throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                                + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                                + \", cause: Connect wait timeout: \" + getConnectTimeout() + \"ms.\");\r\n+\r\n+            } else {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Successed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                                    + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                                    + \", channel is \" + this.getChannel());\r\n+                }\r\n+            }\r\n+\r\n+        } catch (RemotingException e) {\r\n+            throw e;\r\n+\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed connect to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \"\r\n+                            + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion()\r\n+                            + \", cause: \" + e.getMessage(), e);\r\n+\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    public void disconnect() {\r\n+        connectLock.lock();\r\n+        try {\r\n+            try {\r\n+                Channel channel = getChannel();\r\n+                if (channel != null) {\r\n+                    channel.close();\r\n+                }\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+            try {\r\n+                doDisConnect();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reconnect() throws RemotingException {\r\n+        if (!isConnected()) {\r\n+            connectLock.lock();\r\n+            try {\r\n+                if (!isConnected()) {\r\n+                    disconnect();\r\n+                    connect();\r\n+                }\r\n+            } finally {\r\n+                connectLock.unlock();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (isClosed()) {\r\n+            logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\r\n+            return;\r\n+        }\r\n+\r\n+        connectLock.lock();\r\n+        try {\r\n+            if (isClosed()) {\r\n+                logger.warn(\"No need to close connection to server \" + getRemoteAddress() + \" from \" + getClass().getSimpleName() + \" \" + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion() + \", cause: the client status is closed.\");\r\n+                return;\r\n+            }\r\n+\r\n+            try {\r\n+                super.close();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                disconnect();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                doClose();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getClass().getName() + \" [\" + getLocalAddress() + \" -> \" + getRemoteAddress() + \"]\";\r\n+    }\r\n+\r\n+    /**\r\n+     * Open client.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doOpen() throws Throwable;\r\n+\r\n+    /**\r\n+     * Close client.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doClose() throws Throwable;\r\n+\r\n+    /**\r\n+     * Connect to server.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doConnect() throws Throwable;\r\n+\r\n+    /**\r\n+     * disConnect to server.\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    protected abstract void doDisConnect() throws Throwable;\r\n+\r\n+    /**\r\n+     * Get the connected channel.\r\n+     *\r\n+     * @return channel\r\n+     */\r\n+    protected abstract Channel getChannel();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractCodec.java", "source2": "org/apache/dubbo/remoting/transport/AbstractCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,107 +1,107 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-import java.io.IOException;\n-import java.net.InetSocketAddress;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-\n-/**\n- * AbstractCodec\n- */\n-public abstract class AbstractCodec implements Codec2 {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractCodec.class);\n-\n-    private static final String CLIENT_SIDE = \"client\";\n-\n-    private static final String SERVER_SIDE = \"server\";\n-\n-    protected static void checkPayload(Channel channel, long size) throws IOException {\n-        int payload = getPayload(channel);\n-        boolean overPayload = isOverPayload(payload, size);\n-        if (overPayload) {\n-            ExceedPayloadLimitException e = new ExceedPayloadLimitException(\n-                    \"Data length too large: \" + size + \", max payload: \" + payload + \", channel: \" + channel);\n-            logger.error(e);\n-            throw e;\n-        }\n-    }\n-\n-    protected static int getPayload(Channel channel) {\n-        int payload = Constants.DEFAULT_PAYLOAD;\n-        if (channel != null && channel.getUrl() != null) {\n-            payload = channel.getUrl().getParameter(Constants.PAYLOAD_KEY, Constants.DEFAULT_PAYLOAD);\n-        }\n-        return payload;\n-    }\n-\n-    protected static boolean isOverPayload(int payload, long size) {\n-        if (payload > 0 && size > payload) {\n-            return true;\n-        }\n-        return false;\n-    }\n-\n-    protected Serialization getSerialization(Channel channel, Request req) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected Serialization getSerialization(Channel channel, Response res) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected Serialization getSerialization(Channel channel) {\n-        return CodecSupport.getSerialization(channel.getUrl());\n-    }\n-\n-    protected boolean isClientSide(Channel channel) {\n-        String side = (String) channel.getAttribute(SIDE_KEY);\n-        if (CLIENT_SIDE.equals(side)) {\n-            return true;\n-        } else if (SERVER_SIDE.equals(side)) {\n-            return false;\n-        } else {\n-            InetSocketAddress address = channel.getRemoteAddress();\n-            URL url = channel.getUrl();\n-            boolean isClient = url.getPort() == address.getPort()\n-                && NetUtils.filterLocalHost(url.getIp()).equals(\n-                NetUtils.filterLocalHost(address.getAddress()\n-                    .getHostAddress()));\n-            channel.setAttribute(SIDE_KEY, isClient ? CLIENT_SIDE\n-                : SERVER_SIDE);\n-            return isClient;\n-        }\n-    }\n-\n-    protected boolean isServerSide(Channel channel) {\n-        return !isClientSide(channel);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+import java.io.IOException;\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+\r\n+/**\r\n+ * AbstractCodec\r\n+ */\r\n+public abstract class AbstractCodec implements Codec2 {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractCodec.class);\r\n+\r\n+    private static final String CLIENT_SIDE = \"client\";\r\n+\r\n+    private static final String SERVER_SIDE = \"server\";\r\n+\r\n+    protected static void checkPayload(Channel channel, long size) throws IOException {\r\n+        int payload = getPayload(channel);\r\n+        boolean overPayload = isOverPayload(payload, size);\r\n+        if (overPayload) {\r\n+            ExceedPayloadLimitException e = new ExceedPayloadLimitException(\r\n+                    \"Data length too large: \" + size + \", max payload: \" + payload + \", channel: \" + channel);\r\n+            logger.error(e);\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    protected static int getPayload(Channel channel) {\r\n+        int payload = Constants.DEFAULT_PAYLOAD;\r\n+        if (channel != null && channel.getUrl() != null) {\r\n+            payload = channel.getUrl().getParameter(Constants.PAYLOAD_KEY, Constants.DEFAULT_PAYLOAD);\r\n+        }\r\n+        return payload;\r\n+    }\r\n+\r\n+    protected static boolean isOverPayload(int payload, long size) {\r\n+        if (payload > 0 && size > payload) {\r\n+            return true;\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel, Request req) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel, Response res) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected Serialization getSerialization(Channel channel) {\r\n+        return CodecSupport.getSerialization(channel.getUrl());\r\n+    }\r\n+\r\n+    protected boolean isClientSide(Channel channel) {\r\n+        String side = (String) channel.getAttribute(SIDE_KEY);\r\n+        if (CLIENT_SIDE.equals(side)) {\r\n+            return true;\r\n+        } else if (SERVER_SIDE.equals(side)) {\r\n+            return false;\r\n+        } else {\r\n+            InetSocketAddress address = channel.getRemoteAddress();\r\n+            URL url = channel.getUrl();\r\n+            boolean isClient = url.getPort() == address.getPort()\r\n+                && NetUtils.filterLocalHost(url.getIp()).equals(\r\n+                NetUtils.filterLocalHost(address.getAddress()\r\n+                    .getHostAddress()));\r\n+            channel.setAttribute(SIDE_KEY, isClient ? CLIENT_SIDE\r\n+                : SERVER_SIDE);\r\n+            return isClient;\r\n+        }\r\n+    }\r\n+\r\n+    protected boolean isServerSide(Channel channel) {\r\n+        return !isClientSide(channel);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractEndpoint.java", "source2": "org/apache/dubbo/remoting/transport/AbstractEndpoint.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,115 +1,115 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.Resetable;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.transport.codec.CodecAdapter;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * AbstractEndpoint\n- */\n-public abstract class AbstractEndpoint extends AbstractPeer implements Resetable {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractEndpoint.class);\n-\n-    private Codec2 codec;\n-\n-    private int timeout;\n-\n-    private int connectTimeout;\n-\n-    public AbstractEndpoint(URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        this.codec = getChannelCodec(url);\n-        this.timeout = url.getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-        this.connectTimeout = url.getPositiveParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT);\n-    }\n-\n-    protected static Codec2 getChannelCodec(URL url) {\n-        String codecName = url.getProtocol(); // codec extension name must stay the same with protocol name\n-        if (ExtensionLoader.getExtensionLoader(Codec2.class).hasExtension(codecName)) {\n-            return ExtensionLoader.getExtensionLoader(Codec2.class).getExtension(codecName);\n-        } else {\n-            return new CodecAdapter(ExtensionLoader.getExtensionLoader(Codec.class)\n-                    .getExtension(codecName));\n-        }\n-    }\n-\n-    @Override\n-    public void reset(URL url) {\n-        if (isClosed()) {\n-            throw new IllegalStateException(\"Failed to reset parameters \"\n-                    + url + \", cause: Channel closed. channel: \" + getLocalAddress());\n-        }\n-        try {\n-            if (url.hasParameter(TIMEOUT_KEY)) {\n-                int t = url.getParameter(TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.timeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(Constants.CONNECT_TIMEOUT_KEY)) {\n-                int t = url.getParameter(Constants.CONNECT_TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.connectTimeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(Constants.CODEC_KEY)) {\n-                this.codec = getChannelCodec(url);\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-    }\n-\n-    @Deprecated\n-    public void reset(org.apache.dubbo.common.Parameters parameters) {\n-        reset(getUrl().addParameters(parameters.getParameters()));\n-    }\n-\n-    protected Codec2 getCodec() {\n-        return codec;\n-    }\n-\n-    protected int getTimeout() {\n-        return timeout;\n-    }\n-\n-    protected int getConnectTimeout() {\n-        return connectTimeout;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.Resetable;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.transport.codec.CodecAdapter;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * AbstractEndpoint\r\n+ */\r\n+public abstract class AbstractEndpoint extends AbstractPeer implements Resetable {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractEndpoint.class);\r\n+\r\n+    private Codec2 codec;\r\n+\r\n+    private int timeout;\r\n+\r\n+    private int connectTimeout;\r\n+\r\n+    public AbstractEndpoint(URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        this.codec = getChannelCodec(url);\r\n+        this.timeout = url.getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+        this.connectTimeout = url.getPositiveParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT);\r\n+    }\r\n+\r\n+    protected static Codec2 getChannelCodec(URL url) {\r\n+        String codecName = url.getProtocol(); // codec extension name must stay the same with protocol name\r\n+        if (ExtensionLoader.getExtensionLoader(Codec2.class).hasExtension(codecName)) {\r\n+            return ExtensionLoader.getExtensionLoader(Codec2.class).getExtension(codecName);\r\n+        } else {\r\n+            return new CodecAdapter(ExtensionLoader.getExtensionLoader(Codec.class)\r\n+                    .getExtension(codecName));\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        if (isClosed()) {\r\n+            throw new IllegalStateException(\"Failed to reset parameters \"\r\n+                    + url + \", cause: Channel closed. channel: \" + getLocalAddress());\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.timeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(Constants.CONNECT_TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(Constants.CONNECT_TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.connectTimeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(Constants.CODEC_KEY)) {\r\n+                this.codec = getChannelCodec(url);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void reset(org.apache.dubbo.common.Parameters parameters) {\r\n+        reset(getUrl().addParameters(parameters.getParameters()));\r\n+    }\r\n+\r\n+    protected Codec2 getCodec() {\r\n+        return codec;\r\n+    }\r\n+\r\n+    protected int getTimeout() {\r\n+        return timeout;\r\n+    }\r\n+\r\n+    protected int getConnectTimeout() {\r\n+        return connectTimeout;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/AbstractServer.java", "source2": "org/apache/dubbo/remoting/transport/AbstractServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,192 +1,192 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-import java.util.concurrent.ExecutorService;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_ACCEPTS;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IDLE_TIMEOUT;\n-import static org.apache.dubbo.remoting.Constants.IDLE_TIMEOUT_KEY;\n-\n-/**\n- * AbstractServer\n- */\n-public abstract class AbstractServer extends AbstractEndpoint implements RemotingServer {\n-\n-    protected static final String SERVER_THREAD_POOL_NAME = \"DubboServerHandler\";\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractServer.class);\n-    ExecutorService executor;\n-    private InetSocketAddress localAddress;\n-    private InetSocketAddress bindAddress;\n-    private int accepts;\n-    private int idleTimeout;\n-\n-    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-\n-    public AbstractServer(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, handler);\n-        localAddress = getUrl().toInetSocketAddress();\n-\n-        String bindIp = getUrl().getParameter(Constants.BIND_IP_KEY, getUrl().getHost());\n-        int bindPort = getUrl().getParameter(Constants.BIND_PORT_KEY, getUrl().getPort());\n-        if (url.getParameter(ANYHOST_KEY, false) || NetUtils.isInvalidLocalHost(bindIp)) {\n-            bindIp = ANYHOST_VALUE;\n-        }\n-        bindAddress = new InetSocketAddress(bindIp, bindPort);\n-        this.accepts = url.getParameter(ACCEPTS_KEY, DEFAULT_ACCEPTS);\n-        this.idleTimeout = url.getParameter(IDLE_TIMEOUT_KEY, DEFAULT_IDLE_TIMEOUT);\n-        try {\n-            doOpen();\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Start \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\n-            }\n-        } catch (Throwable t) {\n-            throw new RemotingException(url.toInetSocketAddress(), null, \"Failed to bind \" + getClass().getSimpleName()\n-                    + \" on \" + getLocalAddress() + \", cause: \" + t.getMessage(), t);\n-        }\n-        executor = executorRepository.createExecutorIfAbsent(url);\n-    }\n-\n-    protected abstract void doOpen() throws Throwable;\n-\n-    protected abstract void doClose() throws Throwable;\n-\n-    @Override\n-    public void reset(URL url) {\n-        if (url == null) {\n-            return;\n-        }\n-        try {\n-            if (url.hasParameter(ACCEPTS_KEY)) {\n-                int a = url.getParameter(ACCEPTS_KEY, 0);\n-                if (a > 0) {\n-                    this.accepts = a;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        try {\n-            if (url.hasParameter(IDLE_TIMEOUT_KEY)) {\n-                int t = url.getParameter(IDLE_TIMEOUT_KEY, 0);\n-                if (t > 0) {\n-                    this.idleTimeout = t;\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.error(t.getMessage(), t);\n-        }\n-        executorRepository.updateThreadpool(url, executor);\n-        super.setUrl(getUrl().addParameters(url.getParameters()));\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        Collection<Channel> channels = getChannels();\n-        for (Channel channel : channels) {\n-            if (channel.isConnected()) {\n-                channel.send(message, sent);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Close \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\n-        }\n-        ExecutorUtil.shutdownNow(executor, 100);\n-        try {\n-            super.close();\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            doClose();\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        ExecutorUtil.gracefulShutdown(executor, timeout);\n-        close();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return localAddress;\n-    }\n-\n-    public InetSocketAddress getBindAddress() {\n-        return bindAddress;\n-    }\n-\n-    public int getAccepts() {\n-        return accepts;\n-    }\n-\n-    public int getIdleTimeout() {\n-        return idleTimeout;\n-    }\n-\n-    @Override\n-    public void connected(Channel ch) throws RemotingException {\n-        // If the server has entered the shutdown process, reject any new connection\n-        if (this.isClosing() || this.isClosed()) {\n-            logger.warn(\"Close new channel \" + ch + \", cause: server is closing or has been closed. For example, receive a new connect request while in shutdown process.\");\n-            ch.close();\n-            return;\n-        }\n-\n-        if (accepts > 0 && getChannels().size() > accepts) {\n-            logger.error(\"Close channel \" + ch + \", cause: The server \" + ch.getLocalAddress() + \" connections greater than max config \" + accepts);\n-            ch.close();\n-            return;\n-        }\n-        super.connected(ch);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel ch) throws RemotingException {\n-        Collection<Channel> channels = getChannels();\n-        if (channels.isEmpty()) {\n-            logger.warn(\"All clients has disconnected from \" + ch.getLocalAddress() + \". You can graceful shutdown now.\");\n-        }\n-        super.disconnected(ch);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.remoting.Constants.ACCEPTS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_ACCEPTS;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IDLE_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.Constants.IDLE_TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * AbstractServer\r\n+ */\r\n+public abstract class AbstractServer extends AbstractEndpoint implements RemotingServer {\r\n+\r\n+    protected static final String SERVER_THREAD_POOL_NAME = \"DubboServerHandler\";\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractServer.class);\r\n+    ExecutorService executor;\r\n+    private InetSocketAddress localAddress;\r\n+    private InetSocketAddress bindAddress;\r\n+    private int accepts;\r\n+    private int idleTimeout;\r\n+\r\n+    private ExecutorRepository executorRepository = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+\r\n+    public AbstractServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, handler);\r\n+        localAddress = getUrl().toInetSocketAddress();\r\n+\r\n+        String bindIp = getUrl().getParameter(Constants.BIND_IP_KEY, getUrl().getHost());\r\n+        int bindPort = getUrl().getParameter(Constants.BIND_PORT_KEY, getUrl().getPort());\r\n+        if (url.getParameter(ANYHOST_KEY, false) || NetUtils.isInvalidLocalHost(bindIp)) {\r\n+            bindIp = ANYHOST_VALUE;\r\n+        }\r\n+        bindAddress = new InetSocketAddress(bindIp, bindPort);\r\n+        this.accepts = url.getParameter(ACCEPTS_KEY, DEFAULT_ACCEPTS);\r\n+        this.idleTimeout = url.getParameter(IDLE_TIMEOUT_KEY, DEFAULT_IDLE_TIMEOUT);\r\n+        try {\r\n+            doOpen();\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Start \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            throw new RemotingException(url.toInetSocketAddress(), null, \"Failed to bind \" + getClass().getSimpleName()\r\n+                    + \" on \" + getLocalAddress() + \", cause: \" + t.getMessage(), t);\r\n+        }\r\n+        executor = executorRepository.createExecutorIfAbsent(url);\r\n+    }\r\n+\r\n+    protected abstract void doOpen() throws Throwable;\r\n+\r\n+    protected abstract void doClose() throws Throwable;\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        if (url == null) {\r\n+            return;\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(ACCEPTS_KEY)) {\r\n+                int a = url.getParameter(ACCEPTS_KEY, 0);\r\n+                if (a > 0) {\r\n+                    this.accepts = a;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        try {\r\n+            if (url.hasParameter(IDLE_TIMEOUT_KEY)) {\r\n+                int t = url.getParameter(IDLE_TIMEOUT_KEY, 0);\r\n+                if (t > 0) {\r\n+                    this.idleTimeout = t;\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.error(t.getMessage(), t);\r\n+        }\r\n+        executorRepository.updateThreadpool(url, executor);\r\n+        super.setUrl(getUrl().addParameters(url.getParameters()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        Collection<Channel> channels = getChannels();\r\n+        for (Channel channel : channels) {\r\n+            if (channel.isConnected()) {\r\n+                channel.send(message, sent);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Close \" + getClass().getSimpleName() + \" bind \" + getBindAddress() + \", export \" + getLocalAddress());\r\n+        }\r\n+        ExecutorUtil.shutdownNow(executor, 100);\r\n+        try {\r\n+            super.close();\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            doClose();\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        ExecutorUtil.gracefulShutdown(executor, timeout);\r\n+        close();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return localAddress;\r\n+    }\r\n+\r\n+    public InetSocketAddress getBindAddress() {\r\n+        return bindAddress;\r\n+    }\r\n+\r\n+    public int getAccepts() {\r\n+        return accepts;\r\n+    }\r\n+\r\n+    public int getIdleTimeout() {\r\n+        return idleTimeout;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel ch) throws RemotingException {\r\n+        // If the server has entered the shutdown process, reject any new connection\r\n+        if (this.isClosing() || this.isClosed()) {\r\n+            logger.warn(\"Close new channel \" + ch + \", cause: server is closing or has been closed. For example, receive a new connect request while in shutdown process.\");\r\n+            ch.close();\r\n+            return;\r\n+        }\r\n+\r\n+        if (accepts > 0 && getChannels().size() > accepts) {\r\n+            logger.error(\"Close channel \" + ch + \", cause: The server \" + ch.getLocalAddress() + \" connections greater than max config \" + accepts);\r\n+            ch.close();\r\n+            return;\r\n+        }\r\n+        super.connected(ch);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel ch) throws RemotingException {\r\n+        Collection<Channel> channels = getChannels();\r\n+        if (channels.isEmpty()) {\r\n+            logger.warn(\"All clients has disconnected from \" + ch.getLocalAddress() + \". You can graceful shutdown now.\");\r\n+        }\r\n+        super.disconnected(ch);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/CodecSupport.java", "source2": "org/apache/dubbo/remoting/transport/CodecSupport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,181 +1,181 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-\n-import java.io.ByteArrayOutputStream;\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-public class CodecSupport {\n-    private static final Logger logger = LoggerFactory.getLogger(CodecSupport.class);\n-    private static Map<Byte, Serialization> ID_SERIALIZATION_MAP = new HashMap<Byte, Serialization>();\n-    private static Map<Byte, String> ID_SERIALIZATIONNAME_MAP = new HashMap<Byte, String>();\n-    private static Map<String, Byte> SERIALIZATIONNAME_ID_MAP = new HashMap<String, Byte>();\n-    // Cache null object serialize results, for heartbeat request/response serialize use.\n-    private static Map<Byte, byte[]> ID_NULLBYTES_MAP = new HashMap<Byte, byte[]>();\n-\n-    private static final ThreadLocal<byte[]> TL_BUFFER = ThreadLocal.withInitial(() -> new byte[1024]);\n-\n-    static {\n-        Set<String> supportedExtensions = ExtensionLoader.getExtensionLoader(Serialization.class).getSupportedExtensions();\n-        for (String name : supportedExtensions) {\n-            Serialization serialization = ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(name);\n-            byte idByte = serialization.getContentTypeId();\n-            if (ID_SERIALIZATION_MAP.containsKey(idByte)) {\n-                logger.error(\"Serialization extension \" + serialization.getClass().getName()\n-                        + \" has duplicate id to Serialization extension \"\n-                        + ID_SERIALIZATION_MAP.get(idByte).getClass().getName()\n-                        + \", ignore this Serialization extension\");\n-                continue;\n-            }\n-            ID_SERIALIZATION_MAP.put(idByte, serialization);\n-            ID_SERIALIZATIONNAME_MAP.put(idByte, name);\n-            SERIALIZATIONNAME_ID_MAP.put(name, idByte);\n-        }\n-    }\n-\n-    private CodecSupport() {\n-    }\n-\n-    public static Serialization getSerializationById(Byte id) {\n-        return ID_SERIALIZATION_MAP.get(id);\n-    }\n-\n-    public static Byte getIDByName(String name) {\n-        return SERIALIZATIONNAME_ID_MAP.get(name);\n-    }\n-\n-    public static Serialization getSerialization(URL url) {\n-        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\n-                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\n-    }\n-\n-    public static Serialization getSerialization(URL url, Byte id) throws IOException {\n-        Serialization result = getSerializationById(id);\n-        if (result == null) {\n-            throw new IOException(\"Unrecognized serialize type from consumer: \" + id);\n-        }\n-        return result;\n-    }\n-\n-    public static ObjectInput deserialize(URL url, InputStream is, byte proto) throws IOException {\n-        Serialization s = getSerialization(url, proto);\n-        return s.deserialize(url, is);\n-    }\n-\n-    /**\n-     * Get the null object serialize result byte[] of Serialization from the cache,\n-     * if not, generate it first.\n-     *\n-     * @param s Serialization Instances\n-     * @return serialize result of null object\n-     */\n-    public static byte[] getNullBytesOf(Serialization s) {\n-        return ID_NULLBYTES_MAP.computeIfAbsent(s.getContentTypeId(), k -> {\n-            //Pre-generated Null object bytes\n-            ByteArrayOutputStream baos = new ByteArrayOutputStream();\n-            byte[] nullBytes = new byte[0];\n-            try {\n-                ObjectOutput out = s.serialize(null, baos);\n-                out.writeObject(null);\n-                out.flushBuffer();\n-                nullBytes = baos.toByteArray();\n-                baos.close();\n-            } catch (Exception e) {\n-                logger.warn(\"Serialization extension \" + s.getClass().getName() + \" not support serializing null object, return an empty bytes instead.\");\n-            }\n-            return nullBytes;\n-        });\n-    }\n-\n-    /**\n-     * Read all payload to byte[]\n-     *\n-     * @param is\n-     * @return\n-     * @throws IOException\n-     */\n-    public static byte[] getPayload(InputStream is) throws IOException {\n-        ByteArrayOutputStream baos = new ByteArrayOutputStream();\n-        byte[] buffer = getBuffer(is.available());\n-        int len;\n-        while ((len = is.read(buffer)) > -1) {\n-            baos.write(buffer, 0, len);\n-        }\n-        baos.flush();\n-        return baos.toByteArray();\n-    }\n-\n-    private static byte[] getBuffer(int size) {\n-        byte[] bytes = TL_BUFFER.get();\n-        if (size <= bytes.length) {\n-            return bytes;\n-        }\n-        return new byte[size];\n-    }\n-\n-    /**\n-     * Check if payload is null object serialize result byte[] of serialization\n-     *\n-     * @param payload\n-     * @param proto\n-     * @return\n-     */\n-    public static boolean isHeartBeat(byte[] payload, byte proto) {\n-        return Arrays.equals(payload, getNullBytesOf(getSerializationById(proto)));\n-    }\n-\n-    public static void checkSerialization(String path, String version, Byte id) throws IOException {\n-        ServiceRepository repository = ApplicationModel.getServiceRepository();\n-        ProviderModel providerModel = repository.lookupExportedServiceWithoutGroup(path + \":\" + version);\n-        if (providerModel == null) {\n-            if (logger.isWarnEnabled()) {\n-                logger.warn(\"Serialization security check is enabled but cannot work as expected because \" +\n-                        \"there's no matched provider model for path \" + path + \", version \" + version);\n-            }\n-        } else {\n-            List<URL> urls = providerModel.getServiceConfig().getExportedUrls();\n-            if (CollectionUtils.isNotEmpty(urls)) {\n-                URL url = urls.get(0);\n-                String serializationName = url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION);\n-                Byte localId = SERIALIZATIONNAME_ID_MAP.get(serializationName);\n-                if (localId != null && !localId.equals(id)) {\n-                    throw new IOException(\"Unexpected serialization id:\" + id + \" received from network, please check if the peer send the right id.\");\n-                }\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+\r\n+import java.io.ByteArrayOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+public class CodecSupport {\r\n+    private static final Logger logger = LoggerFactory.getLogger(CodecSupport.class);\r\n+    private static Map<Byte, Serialization> ID_SERIALIZATION_MAP = new HashMap<Byte, Serialization>();\r\n+    private static Map<Byte, String> ID_SERIALIZATIONNAME_MAP = new HashMap<Byte, String>();\r\n+    private static Map<String, Byte> SERIALIZATIONNAME_ID_MAP = new HashMap<String, Byte>();\r\n+    // Cache null object serialize results, for heartbeat request/response serialize use.\r\n+    private static Map<Byte, byte[]> ID_NULLBYTES_MAP = new HashMap<Byte, byte[]>();\r\n+\r\n+    private static final ThreadLocal<byte[]> TL_BUFFER = ThreadLocal.withInitial(() -> new byte[1024]);\r\n+\r\n+    static {\r\n+        Set<String> supportedExtensions = ExtensionLoader.getExtensionLoader(Serialization.class).getSupportedExtensions();\r\n+        for (String name : supportedExtensions) {\r\n+            Serialization serialization = ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(name);\r\n+            byte idByte = serialization.getContentTypeId();\r\n+            if (ID_SERIALIZATION_MAP.containsKey(idByte)) {\r\n+                logger.error(\"Serialization extension \" + serialization.getClass().getName()\r\n+                        + \" has duplicate id to Serialization extension \"\r\n+                        + ID_SERIALIZATION_MAP.get(idByte).getClass().getName()\r\n+                        + \", ignore this Serialization extension\");\r\n+                continue;\r\n+            }\r\n+            ID_SERIALIZATION_MAP.put(idByte, serialization);\r\n+            ID_SERIALIZATIONNAME_MAP.put(idByte, name);\r\n+            SERIALIZATIONNAME_ID_MAP.put(name, idByte);\r\n+        }\r\n+    }\r\n+\r\n+    private CodecSupport() {\r\n+    }\r\n+\r\n+    public static Serialization getSerializationById(Byte id) {\r\n+        return ID_SERIALIZATION_MAP.get(id);\r\n+    }\r\n+\r\n+    public static Byte getIDByName(String name) {\r\n+        return SERIALIZATIONNAME_ID_MAP.get(name);\r\n+    }\r\n+\r\n+    public static Serialization getSerialization(URL url) {\r\n+        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\r\n+                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\r\n+    }\r\n+\r\n+    public static Serialization getSerialization(URL url, Byte id) throws IOException {\r\n+        Serialization result = getSerializationById(id);\r\n+        if (result == null) {\r\n+            throw new IOException(\"Unrecognized serialize type from consumer: \" + id);\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public static ObjectInput deserialize(URL url, InputStream is, byte proto) throws IOException {\r\n+        Serialization s = getSerialization(url, proto);\r\n+        return s.deserialize(url, is);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the null object serialize result byte[] of Serialization from the cache,\r\n+     * if not, generate it first.\r\n+     *\r\n+     * @param s Serialization Instances\r\n+     * @return serialize result of null object\r\n+     */\r\n+    public static byte[] getNullBytesOf(Serialization s) {\r\n+        return ID_NULLBYTES_MAP.computeIfAbsent(s.getContentTypeId(), k -> {\r\n+            //Pre-generated Null object bytes\r\n+            ByteArrayOutputStream baos = new ByteArrayOutputStream();\r\n+            byte[] nullBytes = new byte[0];\r\n+            try {\r\n+                ObjectOutput out = s.serialize(null, baos);\r\n+                out.writeObject(null);\r\n+                out.flushBuffer();\r\n+                nullBytes = baos.toByteArray();\r\n+                baos.close();\r\n+            } catch (Exception e) {\r\n+                logger.warn(\"Serialization extension \" + s.getClass().getName() + \" not support serializing null object, return an empty bytes instead.\");\r\n+            }\r\n+            return nullBytes;\r\n+        });\r\n+    }\r\n+\r\n+    /**\r\n+     * Read all payload to byte[]\r\n+     *\r\n+     * @param is\r\n+     * @return\r\n+     * @throws IOException\r\n+     */\r\n+    public static byte[] getPayload(InputStream is) throws IOException {\r\n+        ByteArrayOutputStream baos = new ByteArrayOutputStream();\r\n+        byte[] buffer = getBuffer(is.available());\r\n+        int len;\r\n+        while ((len = is.read(buffer)) > -1) {\r\n+            baos.write(buffer, 0, len);\r\n+        }\r\n+        baos.flush();\r\n+        return baos.toByteArray();\r\n+    }\r\n+\r\n+    private static byte[] getBuffer(int size) {\r\n+        byte[] bytes = TL_BUFFER.get();\r\n+        if (size <= bytes.length) {\r\n+            return bytes;\r\n+        }\r\n+        return new byte[size];\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if payload is null object serialize result byte[] of serialization\r\n+     *\r\n+     * @param payload\r\n+     * @param proto\r\n+     * @return\r\n+     */\r\n+    public static boolean isHeartBeat(byte[] payload, byte proto) {\r\n+        return Arrays.equals(payload, getNullBytesOf(getSerializationById(proto)));\r\n+    }\r\n+\r\n+    public static void checkSerialization(String path, String version, Byte id) throws IOException {\r\n+        ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+        ProviderModel providerModel = repository.lookupExportedServiceWithoutGroup(path + \":\" + version);\r\n+        if (providerModel == null) {\r\n+            if (logger.isWarnEnabled()) {\r\n+                logger.warn(\"Serialization security check is enabled but cannot work as expected because \" +\r\n+                        \"there's no matched provider model for path \" + path + \", version \" + version);\r\n+            }\r\n+        } else {\r\n+            List<URL> urls = providerModel.getServiceConfig().getExportedUrls();\r\n+            if (CollectionUtils.isNotEmpty(urls)) {\r\n+                URL url = urls.get(0);\r\n+                String serializationName = url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION);\r\n+                Byte localId = SERIALIZATIONNAME_ID_MAP.get(serializationName);\r\n+                if (localId != null && !localId.equals(id)) {\r\n+                    throw new IOException(\"Unexpected serialization id:\" + id + \" received from network, please check if the peer send the right id.\");\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/DecodeHandler.java", "source2": "org/apache/dubbo/remoting/transport/DecodeHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,69 +1,69 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.transport;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Decodeable;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-public class DecodeHandler extends AbstractChannelHandlerDelegate {\n-\n-    private static final Logger log = LoggerFactory.getLogger(DecodeHandler.class);\n-\n-    public DecodeHandler(ChannelHandler handler) {\n-        super(handler);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        if (message instanceof Decodeable) {\n-            decode(message);\n-        }\n-\n-        if (message instanceof Request) {\n-            decode(((Request) message).getData());\n-        }\n-\n-        if (message instanceof Response) {\n-            decode(((Response) message).getResult());\n-        }\n-\n-        handler.received(channel, message);\n-    }\n-\n-    private void decode(Object message) {\n-        if (message instanceof Decodeable) {\n-            try {\n-                ((Decodeable) message).decode();\n-                if (log.isDebugEnabled()) {\n-                    log.debug(\"Decode decodeable message \" + message.getClass().getName());\n-                }\n-            } catch (Throwable e) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Call Decodeable.decode failed: \" + e.getMessage(), e);\n-                }\n-            } // ~ end of catch\n-        } // ~ end of if\n-    } // ~ end of method decode\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.transport;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Decodeable;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+public class DecodeHandler extends AbstractChannelHandlerDelegate {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(DecodeHandler.class);\r\n+\r\n+    public DecodeHandler(ChannelHandler handler) {\r\n+        super(handler);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        if (message instanceof Decodeable) {\r\n+            decode(message);\r\n+        }\r\n+\r\n+        if (message instanceof Request) {\r\n+            decode(((Request) message).getData());\r\n+        }\r\n+\r\n+        if (message instanceof Response) {\r\n+            decode(((Response) message).getResult());\r\n+        }\r\n+\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    private void decode(Object message) {\r\n+        if (message instanceof Decodeable) {\r\n+            try {\r\n+                ((Decodeable) message).decode();\r\n+                if (log.isDebugEnabled()) {\r\n+                    log.debug(\"Decode decodeable message \" + message.getClass().getName());\r\n+                }\r\n+            } catch (Throwable e) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Call Decodeable.decode failed: \" + e.getMessage(), e);\r\n+                }\r\n+            } // ~ end of catch\r\n+        } // ~ end of if\r\n+    } // ~ end of method decode\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/WrappedChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,149 +1,149 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.exchange.support.DefaultFuture;\n-import org.apache.dubbo.remoting.transport.ChannelHandlerDelegate;\n-\n-import java.util.concurrent.ExecutorService;\n-\n-public class WrappedChannelHandler implements ChannelHandlerDelegate {\n-\n-    protected static final Logger logger = LoggerFactory.getLogger(WrappedChannelHandler.class);\n-\n-    protected final ChannelHandler handler;\n-\n-    protected final URL url;\n-\n-    public WrappedChannelHandler(ChannelHandler handler, URL url) {\n-        this.handler = handler;\n-        this.url = url;\n-    }\n-\n-    public void close() {\n-\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        handler.connected(channel);\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        handler.disconnected(channel);\n-    }\n-\n-    @Override\n-    public void sent(Channel channel, Object message) throws RemotingException {\n-        handler.sent(channel, message);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        handler.received(channel, message);\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        handler.caught(channel, exception);\n-    }\n-\n-    protected void sendFeedback(Channel channel, Request request, Throwable t) throws RemotingException {\n-        if (request.isTwoWay()) {\n-            String msg = \"Server side(\" + url.getIp() + \",\" + url.getPort()\n-                    + \") thread pool is exhausted, detail msg:\" + t.getMessage();\n-            Response response = new Response(request.getId(), request.getVersion());\n-            response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);\n-            response.setErrorMessage(msg);\n-            channel.send(response);\n-            return;\n-        }\n-    }\n-\n-    @Override\n-    public ChannelHandler getHandler() {\n-        if (handler instanceof ChannelHandlerDelegate) {\n-            return ((ChannelHandlerDelegate) handler).getHandler();\n-        } else {\n-            return handler;\n-        }\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    /**\n-     * Currently, this method is mainly customized to facilitate the thread model on consumer side.\n-     * 1. Use ThreadlessExecutor, aka., delegate callback directly to the thread initiating the call.\n-     * 2. Use shared executor to execute the callback.\n-     *\n-     * @param msg\n-     * @return\n-     */\n-    public ExecutorService getPreferredExecutorService(Object msg) {\n-        if (msg instanceof Response) {\n-            Response response = (Response) msg;\n-            DefaultFuture responseFuture = DefaultFuture.getFuture(response.getId());\n-            // a typical scenario is the response returned after timeout, the timeout response may has completed the future\n-            if (responseFuture == null) {\n-                return getSharedExecutorService();\n-            } else {\n-                ExecutorService executor = responseFuture.getExecutor();\n-                if (executor == null || executor.isShutdown()) {\n-                    executor = getSharedExecutorService();\n-                }\n-                return executor;\n-            }\n-        } else {\n-            return getSharedExecutorService();\n-        }\n-    }\n-\n-    /**\n-     * get the shared executor for current Server or Client\n-     *\n-     * @return\n-     */\n-    public ExecutorService getSharedExecutorService() {\n-        ExecutorRepository executorRepository =\n-                ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\n-        ExecutorService executor = executorRepository.getExecutor(url);\n-        if (executor == null) {\n-            executor = executorRepository.createExecutorIfAbsent(url);\n-        }\n-        return executor;\n-    }\n-\n-    @Deprecated\n-    public ExecutorService getExecutorService() {\n-        return getSharedExecutorService();\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.exchange.support.DefaultFuture;\r\n+import org.apache.dubbo.remoting.transport.ChannelHandlerDelegate;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+public class WrappedChannelHandler implements ChannelHandlerDelegate {\r\n+\r\n+    protected static final Logger logger = LoggerFactory.getLogger(WrappedChannelHandler.class);\r\n+\r\n+    protected final ChannelHandler handler;\r\n+\r\n+    protected final URL url;\r\n+\r\n+    public WrappedChannelHandler(ChannelHandler handler, URL url) {\r\n+        this.handler = handler;\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public void close() {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        handler.connected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        handler.disconnected(channel);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void sent(Channel channel, Object message) throws RemotingException {\r\n+        handler.sent(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        handler.received(channel, message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        handler.caught(channel, exception);\r\n+    }\r\n+\r\n+    protected void sendFeedback(Channel channel, Request request, Throwable t) throws RemotingException {\r\n+        if (request.isTwoWay()) {\r\n+            String msg = \"Server side(\" + url.getIp() + \",\" + url.getPort()\r\n+                    + \") thread pool is exhausted, detail msg:\" + t.getMessage();\r\n+            Response response = new Response(request.getId(), request.getVersion());\r\n+            response.setStatus(Response.SERVER_THREADPOOL_EXHAUSTED_ERROR);\r\n+            response.setErrorMessage(msg);\r\n+            channel.send(response);\r\n+            return;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelHandler getHandler() {\r\n+        if (handler instanceof ChannelHandlerDelegate) {\r\n+            return ((ChannelHandlerDelegate) handler).getHandler();\r\n+        } else {\r\n+            return handler;\r\n+        }\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    /**\r\n+     * Currently, this method is mainly customized to facilitate the thread model on consumer side.\r\n+     * 1. Use ThreadlessExecutor, aka., delegate callback directly to the thread initiating the call.\r\n+     * 2. Use shared executor to execute the callback.\r\n+     *\r\n+     * @param msg\r\n+     * @return\r\n+     */\r\n+    public ExecutorService getPreferredExecutorService(Object msg) {\r\n+        if (msg instanceof Response) {\r\n+            Response response = (Response) msg;\r\n+            DefaultFuture responseFuture = DefaultFuture.getFuture(response.getId());\r\n+            // a typical scenario is the response returned after timeout, the timeout response may has completed the future\r\n+            if (responseFuture == null) {\r\n+                return getSharedExecutorService();\r\n+            } else {\r\n+                ExecutorService executor = responseFuture.getExecutor();\r\n+                if (executor == null || executor.isShutdown()) {\r\n+                    executor = getSharedExecutorService();\r\n+                }\r\n+                return executor;\r\n+            }\r\n+        } else {\r\n+            return getSharedExecutorService();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * get the shared executor for current Server or Client\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public ExecutorService getSharedExecutorService() {\r\n+        ExecutorRepository executorRepository =\r\n+                ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension();\r\n+        ExecutorService executor = executorRepository.getExecutor(url);\r\n+        if (executor == null) {\r\n+            executor = executorRepository.createExecutorIfAbsent(url);\r\n+        }\r\n+        return executor;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public ExecutorService getExecutorService() {\r\n+        return getSharedExecutorService();\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/all/AllChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,81 +1,81 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.all;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-public class AllChannelHandler extends WrappedChannelHandler {\n-\n-    public AllChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"disconnect event\", channel, getClass() + \" error when process disconnected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-        \tif(message instanceof Request && t instanceof RejectedExecutionException){\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-        \t}\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.all;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+public class AllChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public AllChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"disconnect event\", channel, getClass() + \" error when process disconnected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+        \tif(message instanceof Request && t instanceof RejectedExecutionException){\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+        \t}\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/connection/ConnectionOrderedChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,109 +1,109 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.connection;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.RejectedExecutionException;\n-import java.util.concurrent.ThreadPoolExecutor;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_CAPACITY;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_WARNING_SIZE;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_QUEUE_WARNING_SIZE;\n-\n-public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {\n-\n-    protected final ThreadPoolExecutor connectionExecutor;\n-    private final int queuewarninglimit;\n-\n-    public ConnectionOrderedChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-        String threadName = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\n-        connectionExecutor = new ThreadPoolExecutor(1, 1,\n-                0L, TimeUnit.MILLISECONDS,\n-                new LinkedBlockingQueue<Runnable>(url.getPositiveParameter(CONNECT_QUEUE_CAPACITY, Integer.MAX_VALUE)),\n-                new NamedThreadFactory(threadName, true),\n-                new AbortPolicyWithReport(threadName, url)\n-        );  // FIXME There's no place to release connectionExecutor!\n-        queuewarninglimit = url.getParameter(CONNECT_QUEUE_WARNING_SIZE, DEFAULT_CONNECT_QUEUE_WARNING_SIZE);\n-    }\n-\n-    @Override\n-    public void connected(Channel channel) throws RemotingException {\n-        try {\n-            checkQueueLength();\n-            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void disconnected(Channel channel) throws RemotingException {\n-        try {\n-            checkQueueLength();\n-            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"disconnected event\", channel, getClass() + \" error when process disconnected event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-            if (message instanceof Request && t instanceof RejectedExecutionException) {\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-            }\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-    @Override\n-    public void caught(Channel channel, Throwable exception) throws RemotingException {\n-        ExecutorService executor = getExecutorService();\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\n-        } catch (Throwable t) {\n-            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\n-        }\n-    }\n-\n-    private void checkQueueLength() {\n-        if (connectionExecutor.getQueue().size() > queuewarninglimit) {\n-            logger.warn(new IllegalThreadStateException(\"connectionordered channel handler `queue size: \" + connectionExecutor.getQueue().size() + \" exceed the warning limit number :\" + queuewarninglimit));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.connection;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.support.AbortPolicyWithReport;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREAD_NAME_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREAD_NAME;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_CAPACITY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_QUEUE_WARNING_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_QUEUE_WARNING_SIZE;\r\n+\r\n+public class ConnectionOrderedChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    protected final ThreadPoolExecutor connectionExecutor;\r\n+    private final int queuewarninglimit;\r\n+\r\n+    public ConnectionOrderedChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+        String threadName = url.getParameter(THREAD_NAME_KEY, DEFAULT_THREAD_NAME);\r\n+        connectionExecutor = new ThreadPoolExecutor(1, 1,\r\n+                0L, TimeUnit.MILLISECONDS,\r\n+                new LinkedBlockingQueue<Runnable>(url.getPositiveParameter(CONNECT_QUEUE_CAPACITY, Integer.MAX_VALUE)),\r\n+                new NamedThreadFactory(threadName, true),\r\n+                new AbortPolicyWithReport(threadName, url)\r\n+        );  // FIXME There's no place to release connectionExecutor!\r\n+        queuewarninglimit = url.getParameter(CONNECT_QUEUE_WARNING_SIZE, DEFAULT_CONNECT_QUEUE_WARNING_SIZE);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void connected(Channel channel) throws RemotingException {\r\n+        try {\r\n+            checkQueueLength();\r\n+            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"connect event\", channel, getClass() + \" error when process connected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void disconnected(Channel channel) throws RemotingException {\r\n+        try {\r\n+            checkQueueLength();\r\n+            connectionExecutor.execute(new ChannelEventRunnable(channel, handler, ChannelState.DISCONNECTED));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"disconnected event\", channel, getClass() + \" error when process disconnected event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+            if (message instanceof Request && t instanceof RejectedExecutionException) {\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+            }\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void caught(Channel channel, Throwable exception) throws RemotingException {\r\n+        ExecutorService executor = getExecutorService();\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.CAUGHT, exception));\r\n+        } catch (Throwable t) {\r\n+            throw new ExecutionException(\"caught event\", channel, getClass() + \" error when process caught event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+    private void checkQueueLength() {\r\n+        if (connectionExecutor.getQueue().size() > queuewarninglimit) {\r\n+            logger.warn(new IllegalThreadStateException(\"connectionordered channel handler `queue size: \" + connectionExecutor.getQueue().size() + \" exceed the warning limit number :\" + queuewarninglimit));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.direct;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-\n-public class DirectChannelHandler extends WrappedChannelHandler {\n-\n-    public DirectChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        if (executor instanceof ThreadlessExecutor) {\n-            try {\n-                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-            } catch (Throwable t) {\n-                throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-            }\n-        } else {\n-            handler.received(channel, message);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.direct;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+\r\n+public class DirectChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public DirectChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        if (executor instanceof ThreadlessExecutor) {\r\n+            try {\r\n+                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+            } catch (Throwable t) {\r\n+                throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+            }\r\n+        } else {\r\n+            handler.received(channel, message);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/direct/DirectDispatcher.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.direct;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Dispatcher;\n-\n-/**\n- * Direct dispatcher\n- */\n-public class DirectDispatcher implements Dispatcher {\n-\n-    public static final String NAME = \"direct\";\n-\n-    @Override\n-    public ChannelHandler dispatch(ChannelHandler handler, URL url) {\n-        return new DirectChannelHandler(handler, url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.direct;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Dispatcher;\r\n+\r\n+/**\r\n+ * Direct dispatcher\r\n+ */\r\n+public class DirectDispatcher implements Dispatcher {\r\n+\r\n+    public static final String NAME = \"direct\";\r\n+\r\n+    @Override\r\n+    public ChannelHandler dispatch(ChannelHandler handler, URL url) {\r\n+        return new DirectChannelHandler(handler, url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/execution/ExecutionChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.execution;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-/**\n- * Only request message will be dispatched to thread pool. Other messages like response, connect, disconnect,\n- * heartbeat will be directly executed by I/O thread.\n- */\n-public class ExecutionChannelHandler extends WrappedChannelHandler {\n-\n-    public ExecutionChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-\n-        if (message instanceof Request) {\n-            try {\n-                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-            } catch (Throwable t) {\n-                // FIXME: when the thread pool is full, SERVER_THREADPOOL_EXHAUSTED_ERROR cannot return properly,\n-                // therefore the consumer side has to wait until gets timeout. This is a temporary solution to prevent\n-                // this scenario from happening, but a better solution should be considered later.\n-                if (t instanceof RejectedExecutionException) {\n-                    sendFeedback(channel, (Request) message, t);\n-                }\n-                throw new ExecutionException(message, channel, getClass() + \" error when process received event.\", t);\n-            }\n-        } else if (executor instanceof ThreadlessExecutor) {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } else {\n-            handler.received(channel, message);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.execution;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+/**\r\n+ * Only request message will be dispatched to thread pool. Other messages like response, connect, disconnect,\r\n+ * heartbeat will be directly executed by I/O thread.\r\n+ */\r\n+public class ExecutionChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public ExecutionChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+\r\n+        if (message instanceof Request) {\r\n+            try {\r\n+                executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+            } catch (Throwable t) {\r\n+                // FIXME: when the thread pool is full, SERVER_THREADPOOL_EXHAUSTED_ERROR cannot return properly,\r\n+                // therefore the consumer side has to wait until gets timeout. This is a temporary solution to prevent\r\n+                // this scenario from happening, but a better solution should be considered later.\r\n+                if (t instanceof RejectedExecutionException) {\r\n+                    sendFeedback(channel, (Request) message, t);\r\n+                }\r\n+                throw new ExecutionException(message, channel, getClass() + \" error when process received event.\", t);\r\n+            }\r\n+        } else if (executor instanceof ThreadlessExecutor) {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } else {\r\n+            handler.received(channel, message);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java", "source2": "org/apache/dubbo/remoting/transport/dispatcher/message/MessageOnlyChannelHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,52 +1,52 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.dispatcher.message;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.ExecutionException;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\n-import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\n-\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.RejectedExecutionException;\n-\n-public class MessageOnlyChannelHandler extends WrappedChannelHandler {\n-\n-    public MessageOnlyChannelHandler(ChannelHandler handler, URL url) {\n-        super(handler, url);\n-    }\n-\n-    @Override\n-    public void received(Channel channel, Object message) throws RemotingException {\n-        ExecutorService executor = getPreferredExecutorService(message);\n-        try {\n-            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\n-        } catch (Throwable t) {\n-            if(message instanceof Request && t instanceof RejectedExecutionException){\n-                sendFeedback(channel, (Request) message, t);\n-                return;\n-            }\n-            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.dispatcher.message;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.ExecutionException;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelEventRunnable.ChannelState;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.WrappedChannelHandler;\r\n+\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.RejectedExecutionException;\r\n+\r\n+public class MessageOnlyChannelHandler extends WrappedChannelHandler {\r\n+\r\n+    public MessageOnlyChannelHandler(ChannelHandler handler, URL url) {\r\n+        super(handler, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void received(Channel channel, Object message) throws RemotingException {\r\n+        ExecutorService executor = getPreferredExecutorService(message);\r\n+        try {\r\n+            executor.execute(new ChannelEventRunnable(channel, handler, ChannelState.RECEIVED, message));\r\n+        } catch (Throwable t) {\r\n+            if(message instanceof Request && t instanceof RejectedExecutionException){\r\n+                sendFeedback(channel, (Request) message, t);\r\n+                return;\r\n+            }\r\n+            throw new ExecutionException(message, channel, getClass() + \" error when process received event .\", t);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/grizzly/GrizzlyCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/grizzly/GrizzlyCodecAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,143 +1,143 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.grizzly;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffers;\n-import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\n-\n-import org.glassfish.grizzly.Buffer;\n-import org.glassfish.grizzly.Connection;\n-import org.glassfish.grizzly.filterchain.BaseFilter;\n-import org.glassfish.grizzly.filterchain.FilterChainContext;\n-import org.glassfish.grizzly.filterchain.NextAction;\n-\n-import java.io.IOException;\n-\n-import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\n-\n-/**\n- * GrizzlyCodecAdapter\n- */\n-public class GrizzlyCodecAdapter extends BaseFilter {\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    private final int bufferSize;\n-\n-    private ChannelBuffer previousData = ChannelBuffers.EMPTY_BUFFER;\n-\n-    public GrizzlyCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\n-        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\n-    }\n-\n-    @Override\n-    public NextAction handleWrite(FilterChainContext context) throws IOException {\n-        Connection<?> connection = context.getConnection();\n-        GrizzlyChannel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler);\n-        try {\n-            ChannelBuffer channelBuffer = ChannelBuffers.dynamicBuffer(1024); // Do not need to close\n-\n-            Object msg = context.getMessage();\n-            codec.encode(channel, channelBuffer, msg);\n-\n-            GrizzlyChannel.removeChannelIfDisconnected(connection);\n-            Buffer buffer = connection.getTransport().getMemoryManager().allocate(channelBuffer.readableBytes());\n-            buffer.put(channelBuffer.toByteBuffer());\n-            buffer.flip();\n-            buffer.allowBufferDispose(true);\n-            context.setMessage(buffer);\n-        } finally {\n-            GrizzlyChannel.removeChannelIfDisconnected(connection);\n-        }\n-        return context.getInvokeAction();\n-    }\n-\n-    @Override\n-    public NextAction handleRead(FilterChainContext context) throws IOException {\n-        Object message = context.getMessage();\n-        Connection<?> connection = context.getConnection();\n-        Channel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler);\n-        try {\n-            if (message instanceof Buffer) { // receive a new packet\n-                Buffer grizzlyBuffer = (Buffer) message; // buffer\n-\n-                ChannelBuffer frame;\n-\n-                if (previousData.readable()) {\n-                    if (previousData instanceof DynamicChannelBuffer) {\n-                        previousData.writeBytes(grizzlyBuffer.toByteBuffer());\n-                        frame = previousData;\n-                    } else {\n-                        int size = previousData.readableBytes() + grizzlyBuffer.remaining();\n-                        frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\n-                        frame.writeBytes(previousData, previousData.readableBytes());\n-                        frame.writeBytes(grizzlyBuffer.toByteBuffer());\n-                    }\n-                } else {\n-                    frame = ChannelBuffers.wrappedBuffer(grizzlyBuffer.toByteBuffer());\n-                }\n-\n-                Object msg;\n-                int savedReadIndex;\n-\n-                do {\n-                    savedReadIndex = frame.readerIndex();\n-                    try {\n-                        msg = codec.decode(channel, frame);\n-                    } catch (Exception e) {\n-                        previousData = ChannelBuffers.EMPTY_BUFFER;\n-                        throw new IOException(e.getMessage(), e);\n-                    }\n-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                        frame.readerIndex(savedReadIndex);\n-                        return context.getStopAction();\n-                    } else {\n-                        if (savedReadIndex == frame.readerIndex()) {\n-                            previousData = ChannelBuffers.EMPTY_BUFFER;\n-                            throw new IOException(\"Decode without read data.\");\n-                        }\n-                        if (msg != null) {\n-                            context.setMessage(msg);\n-                        }\n-                        return context.getInvokeAction();\n-                    }\n-                } while (frame.readable());\n-            } else { // Other events are passed down directly\n-                return context.getInvokeAction();\n-            }\n-        } finally {\n-            GrizzlyChannel.removeChannelIfDisconnected(connection);\n-        }\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.grizzly;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffers;\r\n+import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\r\n+\r\n+import org.glassfish.grizzly.Buffer;\r\n+import org.glassfish.grizzly.Connection;\r\n+import org.glassfish.grizzly.filterchain.BaseFilter;\r\n+import org.glassfish.grizzly.filterchain.FilterChainContext;\r\n+import org.glassfish.grizzly.filterchain.NextAction;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\r\n+\r\n+/**\r\n+ * GrizzlyCodecAdapter\r\n+ */\r\n+public class GrizzlyCodecAdapter extends BaseFilter {\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    private final int bufferSize;\r\n+\r\n+    private ChannelBuffer previousData = ChannelBuffers.EMPTY_BUFFER;\r\n+\r\n+    public GrizzlyCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\r\n+        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\r\n+    }\r\n+\r\n+    @Override\r\n+    public NextAction handleWrite(FilterChainContext context) throws IOException {\r\n+        Connection<?> connection = context.getConnection();\r\n+        GrizzlyChannel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler);\r\n+        try {\r\n+            ChannelBuffer channelBuffer = ChannelBuffers.dynamicBuffer(1024); // Do not need to close\r\n+\r\n+            Object msg = context.getMessage();\r\n+            codec.encode(channel, channelBuffer, msg);\r\n+\r\n+            GrizzlyChannel.removeChannelIfDisconnected(connection);\r\n+            Buffer buffer = connection.getTransport().getMemoryManager().allocate(channelBuffer.readableBytes());\r\n+            buffer.put(channelBuffer.toByteBuffer());\r\n+            buffer.flip();\r\n+            buffer.allowBufferDispose(true);\r\n+            context.setMessage(buffer);\r\n+        } finally {\r\n+            GrizzlyChannel.removeChannelIfDisconnected(connection);\r\n+        }\r\n+        return context.getInvokeAction();\r\n+    }\r\n+\r\n+    @Override\r\n+    public NextAction handleRead(FilterChainContext context) throws IOException {\r\n+        Object message = context.getMessage();\r\n+        Connection<?> connection = context.getConnection();\r\n+        Channel channel = GrizzlyChannel.getOrAddChannel(connection, url, handler);\r\n+        try {\r\n+            if (message instanceof Buffer) { // receive a new packet\r\n+                Buffer grizzlyBuffer = (Buffer) message; // buffer\r\n+\r\n+                ChannelBuffer frame;\r\n+\r\n+                if (previousData.readable()) {\r\n+                    if (previousData instanceof DynamicChannelBuffer) {\r\n+                        previousData.writeBytes(grizzlyBuffer.toByteBuffer());\r\n+                        frame = previousData;\r\n+                    } else {\r\n+                        int size = previousData.readableBytes() + grizzlyBuffer.remaining();\r\n+                        frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\r\n+                        frame.writeBytes(previousData, previousData.readableBytes());\r\n+                        frame.writeBytes(grizzlyBuffer.toByteBuffer());\r\n+                    }\r\n+                } else {\r\n+                    frame = ChannelBuffers.wrappedBuffer(grizzlyBuffer.toByteBuffer());\r\n+                }\r\n+\r\n+                Object msg;\r\n+                int savedReadIndex;\r\n+\r\n+                do {\r\n+                    savedReadIndex = frame.readerIndex();\r\n+                    try {\r\n+                        msg = codec.decode(channel, frame);\r\n+                    } catch (Exception e) {\r\n+                        previousData = ChannelBuffers.EMPTY_BUFFER;\r\n+                        throw new IOException(e.getMessage(), e);\r\n+                    }\r\n+                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                        frame.readerIndex(savedReadIndex);\r\n+                        return context.getStopAction();\r\n+                    } else {\r\n+                        if (savedReadIndex == frame.readerIndex()) {\r\n+                            previousData = ChannelBuffers.EMPTY_BUFFER;\r\n+                            throw new IOException(\"Decode without read data.\");\r\n+                        }\r\n+                        if (msg != null) {\r\n+                            context.setMessage(msg);\r\n+                        }\r\n+                        return context.getInvokeAction();\r\n+                    }\r\n+                } while (frame.readable());\r\n+            } else { // Other events are passed down directly\r\n+                return context.getInvokeAction();\r\n+            }\r\n+        } finally {\r\n+            GrizzlyChannel.removeChannelIfDisconnected(connection);\r\n+        }\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaChannel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,191 +1,191 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractChannel;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.WriteFuture;\n-\n-import java.net.InetSocketAddress;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * MinaChannel\n- */\n-final class MinaChannel extends AbstractChannel {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\n-\n-    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\n-\n-    private final IoSession session;\n-\n-    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        if (session == null) {\n-            throw new IllegalArgumentException(\"mina session == null\");\n-        }\n-        this.session = session;\n-    }\n-\n-    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\n-        if (session == null) {\n-            return null;\n-        }\n-        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\n-        if (ret == null) {\n-            ret = new MinaChannel(session, url, handler);\n-            if (session.isConnected()) {\n-                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\n-                if (old != null) {\n-                    session.setAttribute(CHANNEL_KEY, old);\n-                    ret = old;\n-                }\n-            }\n-        }\n-        return ret;\n-    }\n-\n-    static void removeChannelIfDisconnected(IoSession session) {\n-        if (session != null && !session.isConnected()) {\n-            session.removeAttribute(CHANNEL_KEY);\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return (InetSocketAddress) session.getLocalAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return (InetSocketAddress) session.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return session.isConnected();\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        super.send(message, sent);\n-\n-        boolean success = true;\n-        int timeout = 0;\n-        try {\n-            WriteFuture future = session.write(message);\n-            if (sent) {\n-                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-                success = future.join(timeout);\n-            }\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\n-        }\n-\n-        if (!success) {\n-            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\n-                    + \"in timeout(\" + timeout + \"ms) limit\");\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        try {\n-            super.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            removeChannelIfDisconnected(session);\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"CLose mina channel \" + session);\n-            }\n-            session.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return session.containsAttribute(key);\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return session.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        session.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        session.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        final int prime = 31;\n-        int result = 1;\n-        result = prime * result + ((session == null) ? 0 : session.hashCode());\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        if (obj == null) {\n-            return false;\n-        }\n-        if (getClass() != obj.getClass()) {\n-            return false;\n-        }\n-        MinaChannel other = (MinaChannel) obj;\n-        if (session == null) {\n-            if (other.session != null) {\n-                return false;\n-            }\n-        } else if (!session.equals(other.session)) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"MinaChannel [session=\" + session + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannel;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.WriteFuture;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * MinaChannel\r\n+ */\r\n+final class MinaChannel extends AbstractChannel {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaChannel.class);\r\n+\r\n+    private static final String CHANNEL_KEY = MinaChannel.class.getName() + \".CHANNEL\";\r\n+\r\n+    private final IoSession session;\r\n+\r\n+    private MinaChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        if (session == null) {\r\n+            throw new IllegalArgumentException(\"mina session == null\");\r\n+        }\r\n+        this.session = session;\r\n+    }\r\n+\r\n+    static MinaChannel getOrAddChannel(IoSession session, URL url, ChannelHandler handler) {\r\n+        if (session == null) {\r\n+            return null;\r\n+        }\r\n+        MinaChannel ret = (MinaChannel) session.getAttribute(CHANNEL_KEY);\r\n+        if (ret == null) {\r\n+            ret = new MinaChannel(session, url, handler);\r\n+            if (session.isConnected()) {\r\n+                MinaChannel old = (MinaChannel) session.setAttribute(CHANNEL_KEY, ret);\r\n+                if (old != null) {\r\n+                    session.setAttribute(CHANNEL_KEY, old);\r\n+                    ret = old;\r\n+                }\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    static void removeChannelIfDisconnected(IoSession session) {\r\n+        if (session != null && !session.isConnected()) {\r\n+            session.removeAttribute(CHANNEL_KEY);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return (InetSocketAddress) session.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return (InetSocketAddress) session.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return session.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        super.send(message, sent);\r\n+\r\n+        boolean success = true;\r\n+        int timeout = 0;\r\n+        try {\r\n+            WriteFuture future = session.write(message);\r\n+            if (sent) {\r\n+                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+                success = future.join(timeout);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        if (!success) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + message + \" to \" + getRemoteAddress()\r\n+                    + \"in timeout(\" + timeout + \"ms) limit\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        try {\r\n+            super.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            removeChannelIfDisconnected(session);\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"CLose mina channel \" + session);\r\n+            }\r\n+            session.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return session.containsAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return session.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        session.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        session.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        final int prime = 31;\r\n+        int result = 1;\r\n+        result = prime * result + ((session == null) ? 0 : session.hashCode());\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+        if (getClass() != obj.getClass()) {\r\n+            return false;\r\n+        }\r\n+        MinaChannel other = (MinaChannel) obj;\r\n+        if (session == null) {\r\n+            if (other.session != null) {\r\n+                return false;\r\n+            }\r\n+        } else if (!session.equals(other.session)) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"MinaChannel [session=\" + session + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,174 +1,174 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractClient;\n-\n-import org.apache.mina.common.ConnectFuture;\n-import org.apache.mina.common.IoFuture;\n-import org.apache.mina.common.IoFutureListener;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketConnector;\n-import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.CountDownLatch;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicReference;\n-\n-/**\n- * Mina client.\n- */\n-public class MinaClient extends AbstractClient {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\n-\n-    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\n-\n-    private String connectorKey;\n-\n-    private SocketConnector connector;\n-\n-    private volatile IoSession session; // volatile, please copy reference to use\n-\n-    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\n-        super(url, wrapChannelHandler(url, handler));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        connectorKey = getUrl().toFullString();\n-        SocketConnector c = CONNECTORS.get(connectorKey);\n-        if (c != null) {\n-            connector = c;\n-        } else {\n-            // set thread pool.\n-            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\n-                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\n-            // config\n-            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\n-            cfg.setThreadModel(ThreadModel.MANUAL);\n-            cfg.getSessionConfig().setTcpNoDelay(true);\n-            cfg.getSessionConfig().setKeepAlive(true);\n-            int timeout = getConnectTimeout();\n-            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\n-            // set codec.\n-            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-            CONNECTORS.put(connectorKey, connector);\n-        }\n-    }\n-\n-    @Override\n-    protected void doConnect() throws Throwable {\n-        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\n-        long start = System.currentTimeMillis();\n-        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\n-        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\n-        future.addListener(new IoFutureListener() {\n-            @Override\n-            public void operationComplete(IoFuture future) {\n-                try {\n-                    if (future.isReady()) {\n-                        IoSession newSession = future.getSession();\n-                        try {\n-                            // Close old channel\n-                            IoSession oldSession = MinaClient.this.session; // copy reference\n-                            if (oldSession != null) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\n-                                    }\n-                                    oldSession.close();\n-                                } finally {\n-                                    MinaChannel.removeChannelIfDisconnected(oldSession);\n-                                }\n-                            }\n-                        } finally {\n-                            if (MinaClient.this.isClosed()) {\n-                                try {\n-                                    if (logger.isInfoEnabled()) {\n-                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\n-                                    }\n-                                    newSession.close();\n-                                } finally {\n-                                    MinaClient.this.session = null;\n-                                    MinaChannel.removeChannelIfDisconnected(newSession);\n-                                }\n-                            } else {\n-                                MinaClient.this.session = newSession;\n-                            }\n-                        }\n-                    }\n-                } catch (Exception e) {\n-                    exception.set(e);\n-                } finally {\n-                    finish.countDown();\n-                }\n-            }\n-        });\n-        try {\n-            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\n-        } catch (InterruptedException e) {\n-            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\n-                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\n-                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\n-                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\n-        }\n-        Throwable e = exception.get();\n-        if (e != null) {\n-            throw e;\n-        }\n-    }\n-\n-    @Override\n-    protected void doDisConnect() throws Throwable {\n-        try {\n-            MinaChannel.removeChannelIfDisconnected(session);\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        //release mina resources.\n-    }\n-\n-    @Override\n-    protected Channel getChannel() {\n-        IoSession s = session;\n-        if (s == null || !s.isConnected()) {\n-            return null;\n-        }\n-        return MinaChannel.getOrAddChannel(s, getUrl(), this);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractClient;\r\n+\r\n+import org.apache.mina.common.ConnectFuture;\r\n+import org.apache.mina.common.IoFuture;\r\n+import org.apache.mina.common.IoFutureListener;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketConnector;\r\n+import org.apache.mina.transport.socket.nio.SocketConnectorConfig;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.CountDownLatch;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicReference;\r\n+\r\n+/**\r\n+ * Mina client.\r\n+ */\r\n+public class MinaClient extends AbstractClient {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaClient.class);\r\n+\r\n+    private static final Map<String, SocketConnector> CONNECTORS = new ConcurrentHashMap<String, SocketConnector>();\r\n+\r\n+    private String connectorKey;\r\n+\r\n+    private SocketConnector connector;\r\n+\r\n+    private volatile IoSession session; // volatile, please copy reference to use\r\n+\r\n+    public MinaClient(final URL url, final ChannelHandler handler) throws RemotingException {\r\n+        super(url, wrapChannelHandler(url, handler));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        connectorKey = getUrl().toFullString();\r\n+        SocketConnector c = CONNECTORS.get(connectorKey);\r\n+        if (c != null) {\r\n+            connector = c;\r\n+        } else {\r\n+            // set thread pool.\r\n+            connector = new SocketConnector(Constants.DEFAULT_IO_THREADS,\r\n+                    Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaClientWorker\", true)));\r\n+            // config\r\n+            SocketConnectorConfig cfg = (SocketConnectorConfig) connector.getDefaultConfig();\r\n+            cfg.setThreadModel(ThreadModel.MANUAL);\r\n+            cfg.getSessionConfig().setTcpNoDelay(true);\r\n+            cfg.getSessionConfig().setKeepAlive(true);\r\n+            int timeout = getConnectTimeout();\r\n+            cfg.setConnectTimeout(timeout < 1000 ? 1 : timeout / 1000);\r\n+            // set codec.\r\n+            connector.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+            CONNECTORS.put(connectorKey, connector);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doConnect() throws Throwable {\r\n+        ConnectFuture future = connector.connect(getConnectAddress(), new MinaHandler(getUrl(), this));\r\n+        long start = System.currentTimeMillis();\r\n+        final AtomicReference<Throwable> exception = new AtomicReference<Throwable>();\r\n+        final CountDownLatch finish = new CountDownLatch(1); // resolve future.awaitUninterruptibly() dead lock\r\n+        future.addListener(new IoFutureListener() {\r\n+            @Override\r\n+            public void operationComplete(IoFuture future) {\r\n+                try {\r\n+                    if (future.isReady()) {\r\n+                        IoSession newSession = future.getSession();\r\n+                        try {\r\n+                            // Close old channel\r\n+                            IoSession oldSession = MinaClient.this.session; // copy reference\r\n+                            if (oldSession != null) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close old mina channel \" + oldSession + \" on create new mina channel \" + newSession);\r\n+                                    }\r\n+                                    oldSession.close();\r\n+                                } finally {\r\n+                                    MinaChannel.removeChannelIfDisconnected(oldSession);\r\n+                                }\r\n+                            }\r\n+                        } finally {\r\n+                            if (MinaClient.this.isClosed()) {\r\n+                                try {\r\n+                                    if (logger.isInfoEnabled()) {\r\n+                                        logger.info(\"Close new mina channel \" + newSession + \", because the client closed.\");\r\n+                                    }\r\n+                                    newSession.close();\r\n+                                } finally {\r\n+                                    MinaClient.this.session = null;\r\n+                                    MinaChannel.removeChannelIfDisconnected(newSession);\r\n+                                }\r\n+                            } else {\r\n+                                MinaClient.this.session = newSession;\r\n+                            }\r\n+                        }\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    exception.set(e);\r\n+                } finally {\r\n+                    finish.countDown();\r\n+                }\r\n+            }\r\n+        });\r\n+        try {\r\n+            finish.await(getConnectTimeout(), TimeUnit.MILLISECONDS);\r\n+        } catch (InterruptedException e) {\r\n+            throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \" + getRemoteAddress() + \" client-side timeout \"\r\n+                    + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start)\r\n+                    + \"ms) from netty client \" + NetUtils.getLocalHost() + \" using dubbo version \"\r\n+                    + Version.getVersion() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+        Throwable e = exception.get();\r\n+        if (e != null) {\r\n+            throw e;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doDisConnect() throws Throwable {\r\n+        try {\r\n+            MinaChannel.removeChannelIfDisconnected(session);\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        //release mina resources.\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Channel getChannel() {\r\n+        IoSession s = session;\r\n+        if (s == null || !s.isConnected()) {\r\n+            return null;\r\n+        }\r\n+        return MinaChannel.getOrAddChannel(s, getUrl(), this);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaCodecAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,167 +1,167 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffers;\n-import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\n-\n-import org.apache.mina.common.ByteBuffer;\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.filter.codec.ProtocolCodecFactory;\n-import org.apache.mina.filter.codec.ProtocolDecoder;\n-import org.apache.mina.filter.codec.ProtocolDecoderOutput;\n-import org.apache.mina.filter.codec.ProtocolEncoder;\n-import org.apache.mina.filter.codec.ProtocolEncoderOutput;\n-\n-import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\n-\n-/**\n- * MinaCodecAdapter.\n- */\n-final class MinaCodecAdapter implements ProtocolCodecFactory {\n-\n-    private final ProtocolEncoder encoder = new InternalEncoder();\n-\n-    private final ProtocolDecoder decoder = new InternalDecoder();\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    private final int bufferSize;\n-\n-    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\n-        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\n-    }\n-\n-    @Override\n-    public ProtocolEncoder getEncoder() {\n-        return encoder;\n-    }\n-\n-    @Override\n-    public ProtocolDecoder getDecoder() {\n-        return decoder;\n-    }\n-\n-    private class InternalEncoder implements ProtocolEncoder {\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\n-            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\n-            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            try {\n-                codec.encode(channel, buffer, msg);\n-            } finally {\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\n-            out.flush();\n-        }\n-    }\n-\n-    private class InternalDecoder implements ProtocolDecoder {\n-\n-        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\n-\n-        @Override\n-        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\n-            int readable = in.limit();\n-            if (readable <= 0) {\n-                return;\n-            }\n-\n-            ChannelBuffer frame;\n-\n-            if (buffer.readable()) {\n-                if (buffer instanceof DynamicChannelBuffer) {\n-                    buffer.writeBytes(in.buf());\n-                    frame = buffer;\n-                } else {\n-                    int size = buffer.readableBytes() + in.remaining();\n-                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\n-                    frame.writeBytes(buffer, buffer.readableBytes());\n-                    frame.writeBytes(in.buf());\n-                }\n-            } else {\n-                frame = ChannelBuffers.wrappedBuffer(in.buf());\n-            }\n-\n-            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\n-            Object msg;\n-            int savedReadIndex;\n-\n-            try {\n-                do {\n-                    savedReadIndex = frame.readerIndex();\n-                    try {\n-                        msg = codec.decode(channel, frame);\n-                    } catch (Exception e) {\n-                        buffer = ChannelBuffers.EMPTY_BUFFER;\n-                        throw e;\n-                    }\n-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                        frame.readerIndex(savedReadIndex);\n-                        break;\n-                    } else {\n-                        if (savedReadIndex == frame.readerIndex()) {\n-                            buffer = ChannelBuffers.EMPTY_BUFFER;\n-                            throw new Exception(\"Decode without read data.\");\n-                        }\n-                        if (msg != null) {\n-                            out.write(msg);\n-                        }\n-                    }\n-                } while (frame.readable());\n-            } finally {\n-                if (frame.readable()) {\n-                    frame.discardReadBytes();\n-                    buffer = frame;\n-                } else {\n-                    buffer = ChannelBuffers.EMPTY_BUFFER;\n-                }\n-                MinaChannel.removeChannelIfDisconnected(session);\n-            }\n-        }\n-\n-        @Override\n-        public void dispose(IoSession session) throws Exception {\n-        }\n-\n-        @Override\n-        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffers;\r\n+import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\r\n+\r\n+import org.apache.mina.common.ByteBuffer;\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFactory;\r\n+import org.apache.mina.filter.codec.ProtocolDecoder;\r\n+import org.apache.mina.filter.codec.ProtocolDecoderOutput;\r\n+import org.apache.mina.filter.codec.ProtocolEncoder;\r\n+import org.apache.mina.filter.codec.ProtocolEncoderOutput;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\r\n+\r\n+/**\r\n+ * MinaCodecAdapter.\r\n+ */\r\n+final class MinaCodecAdapter implements ProtocolCodecFactory {\r\n+\r\n+    private final ProtocolEncoder encoder = new InternalEncoder();\r\n+\r\n+    private final ProtocolDecoder decoder = new InternalDecoder();\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    private final int bufferSize;\r\n+\r\n+    public MinaCodecAdapter(Codec2 codec, URL url, ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\r\n+        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolEncoder getEncoder() {\r\n+        return encoder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public ProtocolDecoder getDecoder() {\r\n+        return decoder;\r\n+    }\r\n+\r\n+    private class InternalEncoder implements ProtocolEncoder {\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void encode(IoSession session, Object msg, ProtocolEncoderOutput out) throws Exception {\r\n+            ChannelBuffer buffer = ChannelBuffers.dynamicBuffer(1024);\r\n+            MinaChannel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            try {\r\n+                codec.encode(channel, buffer, msg);\r\n+            } finally {\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+            out.write(ByteBuffer.wrap(buffer.toByteBuffer()));\r\n+            out.flush();\r\n+        }\r\n+    }\r\n+\r\n+    private class InternalDecoder implements ProtocolDecoder {\r\n+\r\n+        private ChannelBuffer buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+\r\n+        @Override\r\n+        public void decode(IoSession session, ByteBuffer in, ProtocolDecoderOutput out) throws Exception {\r\n+            int readable = in.limit();\r\n+            if (readable <= 0) {\r\n+                return;\r\n+            }\r\n+\r\n+            ChannelBuffer frame;\r\n+\r\n+            if (buffer.readable()) {\r\n+                if (buffer instanceof DynamicChannelBuffer) {\r\n+                    buffer.writeBytes(in.buf());\r\n+                    frame = buffer;\r\n+                } else {\r\n+                    int size = buffer.readableBytes() + in.remaining();\r\n+                    frame = ChannelBuffers.dynamicBuffer(size > bufferSize ? size : bufferSize);\r\n+                    frame.writeBytes(buffer, buffer.readableBytes());\r\n+                    frame.writeBytes(in.buf());\r\n+                }\r\n+            } else {\r\n+                frame = ChannelBuffers.wrappedBuffer(in.buf());\r\n+            }\r\n+\r\n+            Channel channel = MinaChannel.getOrAddChannel(session, url, handler);\r\n+            Object msg;\r\n+            int savedReadIndex;\r\n+\r\n+            try {\r\n+                do {\r\n+                    savedReadIndex = frame.readerIndex();\r\n+                    try {\r\n+                        msg = codec.decode(channel, frame);\r\n+                    } catch (Exception e) {\r\n+                        buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                        throw e;\r\n+                    }\r\n+                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                        frame.readerIndex(savedReadIndex);\r\n+                        break;\r\n+                    } else {\r\n+                        if (savedReadIndex == frame.readerIndex()) {\r\n+                            buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                            throw new Exception(\"Decode without read data.\");\r\n+                        }\r\n+                        if (msg != null) {\r\n+                            out.write(msg);\r\n+                        }\r\n+                    }\r\n+                } while (frame.readable());\r\n+            } finally {\r\n+                if (frame.readable()) {\r\n+                    frame.discardReadBytes();\r\n+                    buffer = frame;\r\n+                } else {\r\n+                    buffer = ChannelBuffers.EMPTY_BUFFER;\r\n+                }\r\n+                MinaChannel.removeChannelIfDisconnected(session);\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void dispose(IoSession session) throws Exception {\r\n+        }\r\n+\r\n+        @Override\r\n+        public void finishDecode(IoSession session, ProtocolDecoderOutput out) throws Exception {\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "source2": "org/apache/dubbo/remoting/transport/mina/MinaServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,112 +1,112 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.mina;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractServer;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-\n-import org.apache.mina.common.IoSession;\n-import org.apache.mina.common.ThreadModel;\n-import org.apache.mina.filter.codec.ProtocolCodecFilter;\n-import org.apache.mina.transport.socket.nio.SocketAcceptor;\n-import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Collection;\n-import java.util.HashSet;\n-import java.util.Set;\n-import java.util.concurrent.Executors;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-\n-/**\n- * MinaServer\n- */\n-public class MinaServer extends AbstractServer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\n-\n-    private SocketAcceptor acceptor;\n-\n-    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\n-        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\n-    }\n-\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        // set thread pool.\n-        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\n-                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\n-                        true)));\n-        // config\n-        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\n-        cfg.setThreadModel(ThreadModel.MANUAL);\n-        // set codec.\n-        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\n-\n-        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        try {\n-            if (acceptor != null) {\n-                acceptor.unbind(getBindAddress());\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public Collection<Channel> getChannels() {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        Collection<Channel> channels = new HashSet<Channel>();\n-        for (IoSession session : sessions) {\n-            if (session.isConnected()) {\n-                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\n-            }\n-        }\n-        return channels;\n-    }\n-\n-    @Override\n-    public Channel getChannel(InetSocketAddress remoteAddress) {\n-        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\n-        for (IoSession session : sessions) {\n-            if (session.getRemoteAddress().equals(remoteAddress)) {\n-                return MinaChannel.getOrAddChannel(session, getUrl(), this);\n-            }\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public boolean isBound() {\n-        return acceptor.isManaged(getBindAddress());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.mina;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractServer;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+\r\n+import org.apache.mina.common.IoSession;\r\n+import org.apache.mina.common.ThreadModel;\r\n+import org.apache.mina.filter.codec.ProtocolCodecFilter;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptor;\r\n+import org.apache.mina.transport.socket.nio.SocketAcceptorConfig;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Collection;\r\n+import java.util.HashSet;\r\n+import java.util.Set;\r\n+import java.util.concurrent.Executors;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+\r\n+/**\r\n+ * MinaServer\r\n+ */\r\n+public class MinaServer extends AbstractServer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MinaServer.class);\r\n+\r\n+    private SocketAcceptor acceptor;\r\n+\r\n+    public MinaServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        super(url, ChannelHandlers.wrap(handler, ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME)));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        // set thread pool.\r\n+        acceptor = new SocketAcceptor(getUrl().getPositiveParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS),\r\n+                Executors.newCachedThreadPool(new NamedThreadFactory(\"MinaServerWorker\",\r\n+                        true)));\r\n+        // config\r\n+        SocketAcceptorConfig cfg = acceptor.getDefaultConfig();\r\n+        cfg.setThreadModel(ThreadModel.MANUAL);\r\n+        // set codec.\r\n+        acceptor.getFilterChain().addLast(\"codec\", new ProtocolCodecFilter(new MinaCodecAdapter(getCodec(), getUrl(), this)));\r\n+\r\n+        acceptor.bind(getBindAddress(), new MinaHandler(getUrl(), this));\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        try {\r\n+            if (acceptor != null) {\r\n+                acceptor.unbind(getBindAddress());\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<Channel> getChannels() {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        Collection<Channel> channels = new HashSet<Channel>();\r\n+        for (IoSession session : sessions) {\r\n+            if (session.isConnected()) {\r\n+                channels.add(MinaChannel.getOrAddChannel(session, getUrl(), this));\r\n+            }\r\n+        }\r\n+        return channels;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Channel getChannel(InetSocketAddress remoteAddress) {\r\n+        Set<IoSession> sessions = acceptor.getManagedSessions(getBindAddress());\r\n+        for (IoSession session : sessions) {\r\n+            if (session.getRemoteAddress().equals(remoteAddress)) {\r\n+                return MinaChannel.getOrAddChannel(session, getUrl(), this);\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isBound() {\r\n+        return acceptor.isManaged(getBindAddress());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty/NettyChannel.java", "source2": "org/apache/dubbo/remoting/transport/netty/NettyChannel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,215 +1,215 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractChannel;\n-import org.apache.dubbo.remoting.utils.PayloadDropper;\n-\n-import org.jboss.netty.channel.ChannelFuture;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * NettyChannel.\n- */\n-final class NettyChannel extends AbstractChannel {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NettyChannel.class);\n-\n-    private static final ConcurrentMap<org.jboss.netty.channel.Channel, NettyChannel> CHANNEL_MAP = new ConcurrentHashMap<org.jboss.netty.channel.Channel, NettyChannel>();\n-\n-    private final org.jboss.netty.channel.Channel channel;\n-\n-    private final Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();\n-\n-    private NettyChannel(org.jboss.netty.channel.Channel channel, URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        if (channel == null) {\n-            throw new IllegalArgumentException(\"netty channel == null;\");\n-        }\n-        this.channel = channel;\n-    }\n-\n-    static NettyChannel getOrAddChannel(org.jboss.netty.channel.Channel ch, URL url, ChannelHandler handler) {\n-        if (ch == null) {\n-            return null;\n-        }\n-        NettyChannel ret = CHANNEL_MAP.get(ch);\n-        if (ret == null) {\n-            NettyChannel nc = new NettyChannel(ch, url, handler);\n-            if (ch.isConnected()) {\n-                ret = CHANNEL_MAP.putIfAbsent(ch, nc);\n-            }\n-            if (ret == null) {\n-                ret = nc;\n-            }\n-        }\n-        return ret;\n-    }\n-\n-    static void removeChannelIfDisconnected(org.jboss.netty.channel.Channel ch) {\n-        if (ch != null && !ch.isConnected()) {\n-            CHANNEL_MAP.remove(ch);\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return (InetSocketAddress) channel.getLocalAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return (InetSocketAddress) channel.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return channel.isConnected();\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        super.send(message, sent);\n-\n-        boolean success = true;\n-        int timeout = 0;\n-        try {\n-            ChannelFuture future = channel.write(message);\n-            if (sent) {\n-                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-                success = future.await(timeout);\n-            }\n-            Throwable cause = future.getCause();\n-            if (cause != null) {\n-                throw cause;\n-            }\n-        } catch (Throwable e) {\n-            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\n-        }\n-\n-        if (!success) {\n-            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress()\n-                    + \"in timeout(\" + timeout + \"ms) limit\");\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        try {\n-            super.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            removeChannelIfDisconnected(channel);\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            attributes.clear();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Close netty channel \" + channel);\n-            }\n-            channel.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return attributes.containsKey(key);\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return attributes.get(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        if (value == null) { // The null value unallowed in the ConcurrentHashMap.\n-            attributes.remove(key);\n-        } else {\n-            attributes.put(key, value);\n-        }\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        attributes.remove(key);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        final int prime = 31;\n-        int result = 1;\n-        result = prime * result + ((channel == null) ? 0 : channel.hashCode());\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        if (obj == null) {\n-            return false;\n-        }\n-\n-        // FIXME: a hack to make org.apache.dubbo.remoting.exchange.support.DefaultFuture.closeChannel work\n-        if (obj instanceof NettyClient) {\n-            NettyClient client = (NettyClient) obj;\n-            return channel.equals(client.getNettyChannel());\n-        }\n-\n-        if (getClass() != obj.getClass()) {\n-            return false;\n-        }\n-        NettyChannel other = (NettyChannel) obj;\n-        if (channel == null) {\n-            if (other.channel != null) {\n-                return false;\n-            }\n-        } else if (!channel.equals(other.channel)) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"NettyChannel [channel=\" + channel + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannel;\r\n+import org.apache.dubbo.remoting.utils.PayloadDropper;\r\n+\r\n+import org.jboss.netty.channel.ChannelFuture;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * NettyChannel.\r\n+ */\r\n+final class NettyChannel extends AbstractChannel {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyChannel.class);\r\n+\r\n+    private static final ConcurrentMap<org.jboss.netty.channel.Channel, NettyChannel> CHANNEL_MAP = new ConcurrentHashMap<org.jboss.netty.channel.Channel, NettyChannel>();\r\n+\r\n+    private final org.jboss.netty.channel.Channel channel;\r\n+\r\n+    private final Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();\r\n+\r\n+    private NettyChannel(org.jboss.netty.channel.Channel channel, URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        if (channel == null) {\r\n+            throw new IllegalArgumentException(\"netty channel == null;\");\r\n+        }\r\n+        this.channel = channel;\r\n+    }\r\n+\r\n+    static NettyChannel getOrAddChannel(org.jboss.netty.channel.Channel ch, URL url, ChannelHandler handler) {\r\n+        if (ch == null) {\r\n+            return null;\r\n+        }\r\n+        NettyChannel ret = CHANNEL_MAP.get(ch);\r\n+        if (ret == null) {\r\n+            NettyChannel nc = new NettyChannel(ch, url, handler);\r\n+            if (ch.isConnected()) {\r\n+                ret = CHANNEL_MAP.putIfAbsent(ch, nc);\r\n+            }\r\n+            if (ret == null) {\r\n+                ret = nc;\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    static void removeChannelIfDisconnected(org.jboss.netty.channel.Channel ch) {\r\n+        if (ch != null && !ch.isConnected()) {\r\n+            CHANNEL_MAP.remove(ch);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return (InetSocketAddress) channel.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return (InetSocketAddress) channel.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return channel.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        super.send(message, sent);\r\n+\r\n+        boolean success = true;\r\n+        int timeout = 0;\r\n+        try {\r\n+            ChannelFuture future = channel.write(message);\r\n+            if (sent) {\r\n+                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+                success = future.await(timeout);\r\n+            }\r\n+            Throwable cause = future.getCause();\r\n+            if (cause != null) {\r\n+                throw cause;\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        if (!success) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress()\r\n+                    + \"in timeout(\" + timeout + \"ms) limit\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        try {\r\n+            super.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            removeChannelIfDisconnected(channel);\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            attributes.clear();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Close netty channel \" + channel);\r\n+            }\r\n+            channel.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return attributes.containsKey(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return attributes.get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        if (value == null) { // The null value unallowed in the ConcurrentHashMap.\r\n+            attributes.remove(key);\r\n+        } else {\r\n+            attributes.put(key, value);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        attributes.remove(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        final int prime = 31;\r\n+        int result = 1;\r\n+        result = prime * result + ((channel == null) ? 0 : channel.hashCode());\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // FIXME: a hack to make org.apache.dubbo.remoting.exchange.support.DefaultFuture.closeChannel work\r\n+        if (obj instanceof NettyClient) {\r\n+            NettyClient client = (NettyClient) obj;\r\n+            return channel.equals(client.getNettyChannel());\r\n+        }\r\n+\r\n+        if (getClass() != obj.getClass()) {\r\n+            return false;\r\n+        }\r\n+        NettyChannel other = (NettyChannel) obj;\r\n+        if (channel == null) {\r\n+            if (other.channel != null) {\r\n+                return false;\r\n+            }\r\n+        } else if (!channel.equals(other.channel)) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"NettyChannel [channel=\" + channel + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty/NettyCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/netty/NettyCodecAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,171 +1,171 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\n-\n-import org.jboss.netty.buffer.ChannelBuffer;\n-import org.jboss.netty.buffer.ChannelBuffers;\n-import org.jboss.netty.channel.Channel;\n-import org.jboss.netty.channel.ChannelHandler;\n-import org.jboss.netty.channel.ChannelHandler.Sharable;\n-import org.jboss.netty.channel.ChannelHandlerContext;\n-import org.jboss.netty.channel.Channels;\n-import org.jboss.netty.channel.ExceptionEvent;\n-import org.jboss.netty.channel.MessageEvent;\n-import org.jboss.netty.channel.SimpleChannelUpstreamHandler;\n-import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;\n-\n-import java.io.IOException;\n-\n-import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\n-import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\n-\n-/**\n- * NettyCodecAdapter.\n- */\n-final class NettyCodecAdapter {\n-\n-    private final ChannelHandler encoder = new InternalEncoder();\n-\n-    private final ChannelHandler decoder = new InternalDecoder();\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final int bufferSize;\n-\n-    private final org.apache.dubbo.remoting.ChannelHandler handler;\n-\n-    public NettyCodecAdapter(Codec2 codec, URL url, org.apache.dubbo.remoting.ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\n-        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\n-    }\n-\n-    public ChannelHandler getEncoder() {\n-        return encoder;\n-    }\n-\n-    public ChannelHandler getDecoder() {\n-        return decoder;\n-    }\n-\n-    @Sharable\n-    private class InternalEncoder extends OneToOneEncoder {\n-\n-        @Override\n-        protected Object encode(ChannelHandlerContext ctx, Channel ch, Object msg) throws Exception {\n-            org.apache.dubbo.remoting.buffer.ChannelBuffer buffer =\n-                    org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(1024);\n-            NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler);\n-            try {\n-                codec.encode(channel, buffer, msg);\n-            } finally {\n-                NettyChannel.removeChannelIfDisconnected(ch);\n-            }\n-            return ChannelBuffers.wrappedBuffer(buffer.toByteBuffer());\n-        }\n-    }\n-\n-    private class InternalDecoder extends SimpleChannelUpstreamHandler {\n-\n-        private org.apache.dubbo.remoting.buffer.ChannelBuffer buffer =\n-                org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\n-\n-        @Override\n-        public void messageReceived(ChannelHandlerContext ctx, MessageEvent event) throws Exception {\n-            Object o = event.getMessage();\n-            if (!(o instanceof ChannelBuffer)) {\n-                ctx.sendUpstream(event);\n-                return;\n-            }\n-\n-            ChannelBuffer input = (ChannelBuffer) o;\n-            int readable = input.readableBytes();\n-            if (readable <= 0) {\n-                return;\n-            }\n-\n-            org.apache.dubbo.remoting.buffer.ChannelBuffer message;\n-            if (buffer.readable()) {\n-                if (buffer instanceof DynamicChannelBuffer) {\n-                    buffer.writeBytes(input.toByteBuffer());\n-                    message = buffer;\n-                } else {\n-                    int size = buffer.readableBytes() + input.readableBytes();\n-                    message = org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(\n-                            size > bufferSize ? size : bufferSize);\n-                    message.writeBytes(buffer, buffer.readableBytes());\n-                    message.writeBytes(input.toByteBuffer());\n-                }\n-            } else {\n-                message = org.apache.dubbo.remoting.buffer.ChannelBuffers.wrappedBuffer(\n-                        input.toByteBuffer());\n-            }\n-\n-            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-            Object msg;\n-            int saveReaderIndex;\n-\n-            try {\n-                // decode object.\n-                do {\n-                    saveReaderIndex = message.readerIndex();\n-                    try {\n-                        msg = codec.decode(channel, message);\n-                    } catch (IOException e) {\n-                        buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\n-                        throw e;\n-                    }\n-                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                        message.readerIndex(saveReaderIndex);\n-                        break;\n-                    } else {\n-                        if (saveReaderIndex == message.readerIndex()) {\n-                            buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\n-                            throw new IOException(\"Decode without read data.\");\n-                        }\n-                        if (msg != null) {\n-                            Channels.fireMessageReceived(ctx, msg, event.getRemoteAddress());\n-                        }\n-                    }\n-                } while (message.readable());\n-            } finally {\n-                if (message.readable()) {\n-                    message.discardReadBytes();\n-                    buffer = message;\n-                } else {\n-                    buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\n-                }\n-                NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-            }\n-        }\n-\n-        @Override\n-        public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {\n-            ctx.sendUpstream(e);\n-        }\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.DynamicChannelBuffer;\r\n+\r\n+import org.jboss.netty.buffer.ChannelBuffer;\r\n+import org.jboss.netty.buffer.ChannelBuffers;\r\n+import org.jboss.netty.channel.Channel;\r\n+import org.jboss.netty.channel.ChannelHandler;\r\n+import org.jboss.netty.channel.ChannelHandler.Sharable;\r\n+import org.jboss.netty.channel.ChannelHandlerContext;\r\n+import org.jboss.netty.channel.Channels;\r\n+import org.jboss.netty.channel.ExceptionEvent;\r\n+import org.jboss.netty.channel.MessageEvent;\r\n+import org.jboss.netty.channel.SimpleChannelUpstreamHandler;\r\n+import org.jboss.netty.handler.codec.oneone.OneToOneEncoder;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.BUFFER_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MAX_BUFFER_SIZE;\r\n+import static org.apache.dubbo.remoting.Constants.MIN_BUFFER_SIZE;\r\n+\r\n+/**\r\n+ * NettyCodecAdapter.\r\n+ */\r\n+final class NettyCodecAdapter {\r\n+\r\n+    private final ChannelHandler encoder = new InternalEncoder();\r\n+\r\n+    private final ChannelHandler decoder = new InternalDecoder();\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final int bufferSize;\r\n+\r\n+    private final org.apache.dubbo.remoting.ChannelHandler handler;\r\n+\r\n+    public NettyCodecAdapter(Codec2 codec, URL url, org.apache.dubbo.remoting.ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+        int b = url.getPositiveParameter(BUFFER_KEY, DEFAULT_BUFFER_SIZE);\r\n+        this.bufferSize = b >= MIN_BUFFER_SIZE && b <= MAX_BUFFER_SIZE ? b : DEFAULT_BUFFER_SIZE;\r\n+    }\r\n+\r\n+    public ChannelHandler getEncoder() {\r\n+        return encoder;\r\n+    }\r\n+\r\n+    public ChannelHandler getDecoder() {\r\n+        return decoder;\r\n+    }\r\n+\r\n+    @Sharable\r\n+    private class InternalEncoder extends OneToOneEncoder {\r\n+\r\n+        @Override\r\n+        protected Object encode(ChannelHandlerContext ctx, Channel ch, Object msg) throws Exception {\r\n+            org.apache.dubbo.remoting.buffer.ChannelBuffer buffer =\r\n+                    org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(1024);\r\n+            NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler);\r\n+            try {\r\n+                codec.encode(channel, buffer, msg);\r\n+            } finally {\r\n+                NettyChannel.removeChannelIfDisconnected(ch);\r\n+            }\r\n+            return ChannelBuffers.wrappedBuffer(buffer.toByteBuffer());\r\n+        }\r\n+    }\r\n+\r\n+    private class InternalDecoder extends SimpleChannelUpstreamHandler {\r\n+\r\n+        private org.apache.dubbo.remoting.buffer.ChannelBuffer buffer =\r\n+                org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\r\n+\r\n+        @Override\r\n+        public void messageReceived(ChannelHandlerContext ctx, MessageEvent event) throws Exception {\r\n+            Object o = event.getMessage();\r\n+            if (!(o instanceof ChannelBuffer)) {\r\n+                ctx.sendUpstream(event);\r\n+                return;\r\n+            }\r\n+\r\n+            ChannelBuffer input = (ChannelBuffer) o;\r\n+            int readable = input.readableBytes();\r\n+            if (readable <= 0) {\r\n+                return;\r\n+            }\r\n+\r\n+            org.apache.dubbo.remoting.buffer.ChannelBuffer message;\r\n+            if (buffer.readable()) {\r\n+                if (buffer instanceof DynamicChannelBuffer) {\r\n+                    buffer.writeBytes(input.toByteBuffer());\r\n+                    message = buffer;\r\n+                } else {\r\n+                    int size = buffer.readableBytes() + input.readableBytes();\r\n+                    message = org.apache.dubbo.remoting.buffer.ChannelBuffers.dynamicBuffer(\r\n+                            size > bufferSize ? size : bufferSize);\r\n+                    message.writeBytes(buffer, buffer.readableBytes());\r\n+                    message.writeBytes(input.toByteBuffer());\r\n+                }\r\n+            } else {\r\n+                message = org.apache.dubbo.remoting.buffer.ChannelBuffers.wrappedBuffer(\r\n+                        input.toByteBuffer());\r\n+            }\r\n+\r\n+            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+            Object msg;\r\n+            int saveReaderIndex;\r\n+\r\n+            try {\r\n+                // decode object.\r\n+                do {\r\n+                    saveReaderIndex = message.readerIndex();\r\n+                    try {\r\n+                        msg = codec.decode(channel, message);\r\n+                    } catch (IOException e) {\r\n+                        buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\r\n+                        throw e;\r\n+                    }\r\n+                    if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                        message.readerIndex(saveReaderIndex);\r\n+                        break;\r\n+                    } else {\r\n+                        if (saveReaderIndex == message.readerIndex()) {\r\n+                            buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\r\n+                            throw new IOException(\"Decode without read data.\");\r\n+                        }\r\n+                        if (msg != null) {\r\n+                            Channels.fireMessageReceived(ctx, msg, event.getRemoteAddress());\r\n+                        }\r\n+                    }\r\n+                } while (message.readable());\r\n+            } finally {\r\n+                if (message.readable()) {\r\n+                    message.discardReadBytes();\r\n+                    buffer = message;\r\n+                } else {\r\n+                    buffer = org.apache.dubbo.remoting.buffer.ChannelBuffers.EMPTY_BUFFER;\r\n+                }\r\n+                NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {\r\n+            ctx.sendUpstream(e);\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty/NettyHandler.java", "source2": "org/apache/dubbo/remoting/transport/netty/NettyHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,129 +1,129 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-\n-import org.jboss.netty.channel.ChannelHandler.Sharable;\n-import org.jboss.netty.channel.ChannelHandlerContext;\n-import org.jboss.netty.channel.ChannelStateEvent;\n-import org.jboss.netty.channel.ExceptionEvent;\n-import org.jboss.netty.channel.MessageEvent;\n-import org.jboss.netty.channel.SimpleChannelHandler;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * NettyHandler\n- */\n-@Sharable\n-public class NettyHandler extends SimpleChannelHandler {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NettyHandler.class);\n-\n-    private final Map<String, Channel> channels = new ConcurrentHashMap<String, Channel>(); // <ip:port, channel>\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    public NettyHandler(URL url, ChannelHandler handler) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url == null\");\n-        }\n-        if (handler == null) {\n-            throw new IllegalArgumentException(\"handler == null\");\n-        }\n-        this.url = url;\n-        this.handler = handler;\n-    }\n-\n-    public Map<String, Channel> getChannels() {\n-        return channels;\n-    }\n-\n-    @Override\n-    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-        try {\n-            if (channel != null) {\n-                channels.put(NetUtils.toAddressString((InetSocketAddress) ctx.getChannel().getRemoteAddress()), channel);\n-            }\n-            handler.connected(channel);\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection between \" + channel.getRemoteAddress() + \" and \" + channel.getLocalAddress() + \" is established\");\n-        }\n-    }\n-\n-    @Override\n-    public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-        try {\n-            channels.remove(NetUtils.toAddressString((InetSocketAddress) ctx.getChannel().getRemoteAddress()));\n-            handler.disconnected(channel);\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection between \" + channel.getRemoteAddress() + \" and \" + channel.getLocalAddress() + \" is disconnected\");\n-        }\n-    }\n-\n-    @Override\n-    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-        try {\n-            handler.received(channel, e.getMessage());\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-        }\n-    }\n-\n-    @Override\n-    public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception {\n-        super.writeRequested(ctx, e);\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-        try {\n-            handler.sent(channel, e.getMessage());\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-        }\n-    }\n-\n-    @Override\n-    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\n-        try {\n-            handler.caught(channel, e.getCause());\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\n-        }\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+\r\n+import org.jboss.netty.channel.ChannelHandler.Sharable;\r\n+import org.jboss.netty.channel.ChannelHandlerContext;\r\n+import org.jboss.netty.channel.ChannelStateEvent;\r\n+import org.jboss.netty.channel.ExceptionEvent;\r\n+import org.jboss.netty.channel.MessageEvent;\r\n+import org.jboss.netty.channel.SimpleChannelHandler;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * NettyHandler\r\n+ */\r\n+@Sharable\r\n+public class NettyHandler extends SimpleChannelHandler {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyHandler.class);\r\n+\r\n+    private final Map<String, Channel> channels = new ConcurrentHashMap<String, Channel>(); // <ip:port, channel>\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    public NettyHandler(URL url, ChannelHandler handler) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url == null\");\r\n+        }\r\n+        if (handler == null) {\r\n+            throw new IllegalArgumentException(\"handler == null\");\r\n+        }\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+    }\r\n+\r\n+    public Map<String, Channel> getChannels() {\r\n+        return channels;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelConnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+        try {\r\n+            if (channel != null) {\r\n+                channels.put(NetUtils.toAddressString((InetSocketAddress) ctx.getChannel().getRemoteAddress()), channel);\r\n+            }\r\n+            handler.connected(channel);\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection between \" + channel.getRemoteAddress() + \" and \" + channel.getLocalAddress() + \" is established\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelDisconnected(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+        try {\r\n+            channels.remove(NetUtils.toAddressString((InetSocketAddress) ctx.getChannel().getRemoteAddress()));\r\n+            handler.disconnected(channel);\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection between \" + channel.getRemoteAddress() + \" and \" + channel.getLocalAddress() + \" is disconnected\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void messageReceived(ChannelHandlerContext ctx, MessageEvent e) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+        try {\r\n+            handler.received(channel, e.getMessage());\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeRequested(ChannelHandlerContext ctx, MessageEvent e) throws Exception {\r\n+        super.writeRequested(ctx, e);\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+        try {\r\n+            handler.sent(channel, e.getMessage());\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void exceptionCaught(ChannelHandlerContext ctx, ExceptionEvent e) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.getChannel(), url, handler);\r\n+        try {\r\n+            handler.caught(channel, e.getCause());\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.getChannel());\r\n+        }\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty/NettyHelper.java", "source2": "org/apache/dubbo/remoting/transport/netty/NettyHelper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import org.jboss.netty.logging.AbstractInternalLogger;\n-import org.jboss.netty.logging.InternalLogger;\n-import org.jboss.netty.logging.InternalLoggerFactory;\n-\n-final class NettyHelper {\n-\n-    public static void setNettyLoggerFactory() {\n-        InternalLoggerFactory factory = InternalLoggerFactory.getDefaultFactory();\n-        if (!(factory instanceof DubboLoggerFactory)) {\n-            InternalLoggerFactory.setDefaultFactory(new DubboLoggerFactory());\n-        }\n-    }\n-\n-    static class DubboLoggerFactory extends InternalLoggerFactory {\n-\n-        @Override\n-        public InternalLogger newInstance(String name) {\n-            return new DubboLogger(LoggerFactory.getLogger(name));\n-        }\n-    }\n-\n-    static class DubboLogger extends AbstractInternalLogger {\n-\n-        private Logger logger;\n-\n-        DubboLogger(Logger logger) {\n-            this.logger = logger;\n-        }\n-\n-        @Override\n-        public boolean isDebugEnabled() {\n-            return logger.isDebugEnabled();\n-        }\n-\n-        @Override\n-        public boolean isInfoEnabled() {\n-            return logger.isInfoEnabled();\n-        }\n-\n-        @Override\n-        public boolean isWarnEnabled() {\n-            return logger.isWarnEnabled();\n-        }\n-\n-        @Override\n-        public boolean isErrorEnabled() {\n-            return logger.isErrorEnabled();\n-        }\n-\n-        @Override\n-        public void debug(String msg) {\n-            logger.debug(msg);\n-        }\n-\n-        @Override\n-        public void debug(String msg, Throwable cause) {\n-            logger.debug(msg, cause);\n-        }\n-\n-        @Override\n-        public void info(String msg) {\n-            logger.info(msg);\n-        }\n-\n-        @Override\n-        public void info(String msg, Throwable cause) {\n-            logger.info(msg, cause);\n-        }\n-\n-        @Override\n-        public void warn(String msg) {\n-            logger.warn(msg);\n-        }\n-\n-        @Override\n-        public void warn(String msg, Throwable cause) {\n-            logger.warn(msg, cause);\n-        }\n-\n-        @Override\n-        public void error(String msg) {\n-            logger.error(msg);\n-        }\n-\n-        @Override\n-        public void error(String msg, Throwable cause) {\n-            logger.error(msg, cause);\n-        }\n-\n-        @Override\n-        public String toString() {\n-            return logger.toString();\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import org.jboss.netty.logging.AbstractInternalLogger;\r\n+import org.jboss.netty.logging.InternalLogger;\r\n+import org.jboss.netty.logging.InternalLoggerFactory;\r\n+\r\n+final class NettyHelper {\r\n+\r\n+    public static void setNettyLoggerFactory() {\r\n+        InternalLoggerFactory factory = InternalLoggerFactory.getDefaultFactory();\r\n+        if (!(factory instanceof DubboLoggerFactory)) {\r\n+            InternalLoggerFactory.setDefaultFactory(new DubboLoggerFactory());\r\n+        }\r\n+    }\r\n+\r\n+    static class DubboLoggerFactory extends InternalLoggerFactory {\r\n+\r\n+        @Override\r\n+        public InternalLogger newInstance(String name) {\r\n+            return new DubboLogger(LoggerFactory.getLogger(name));\r\n+        }\r\n+    }\r\n+\r\n+    static class DubboLogger extends AbstractInternalLogger {\r\n+\r\n+        private Logger logger;\r\n+\r\n+        DubboLogger(Logger logger) {\r\n+            this.logger = logger;\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isDebugEnabled() {\r\n+            return logger.isDebugEnabled();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isInfoEnabled() {\r\n+            return logger.isInfoEnabled();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isWarnEnabled() {\r\n+            return logger.isWarnEnabled();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isErrorEnabled() {\r\n+            return logger.isErrorEnabled();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void debug(String msg) {\r\n+            logger.debug(msg);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void debug(String msg, Throwable cause) {\r\n+            logger.debug(msg, cause);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void info(String msg) {\r\n+            logger.info(msg);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void info(String msg, Throwable cause) {\r\n+            logger.info(msg, cause);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void warn(String msg) {\r\n+            logger.warn(msg);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void warn(String msg, Throwable cause) {\r\n+            logger.warn(msg, cause);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void error(String msg) {\r\n+            logger.error(msg);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void error(String msg, Throwable cause) {\r\n+            logger.error(msg, cause);\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return logger.toString();\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyChannel.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyChannel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,276 +1,276 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractChannel;\n-import org.apache.dubbo.remoting.utils.PayloadDropper;\n-\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelFuture;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * NettyChannel maintains the cache of channel.\n- */\n-final class NettyChannel extends AbstractChannel {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NettyChannel.class);\n-    /**\n-     * the cache for netty channel and dubbo channel\n-     */\n-    private static final ConcurrentMap<Channel, NettyChannel> CHANNEL_MAP = new ConcurrentHashMap<Channel, NettyChannel>();\n-    /**\n-     * netty channel\n-     */\n-    private final Channel channel;\n-\n-    private final Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();\n-\n-    private final AtomicBoolean active = new AtomicBoolean(false);\n-\n-    /**\n-     * The constructor of NettyChannel.\n-     * It is private so NettyChannel usually create by {@link NettyChannel#getOrAddChannel(Channel, URL, ChannelHandler)}\n-     *\n-     * @param channel netty channel\n-     * @param url\n-     * @param handler dubbo handler that contain netty handler\n-     */\n-    private NettyChannel(Channel channel, URL url, ChannelHandler handler) {\n-        super(url, handler);\n-        if (channel == null) {\n-            throw new IllegalArgumentException(\"netty channel == null;\");\n-        }\n-        this.channel = channel;\n-    }\n-\n-    /**\n-     * Get dubbo channel by netty channel through channel cache.\n-     * Put netty channel into it if dubbo channel don't exist in the cache.\n-     *\n-     * @param ch      netty channel\n-     * @param url\n-     * @param handler dubbo handler that contain netty's handler\n-     * @return\n-     */\n-    static NettyChannel getOrAddChannel(Channel ch, URL url, ChannelHandler handler) {\n-        if (ch == null) {\n-            return null;\n-        }\n-        NettyChannel ret = CHANNEL_MAP.get(ch);\n-        if (ret == null) {\n-            NettyChannel nettyChannel = new NettyChannel(ch, url, handler);\n-            if (ch.isActive()) {\n-                nettyChannel.markActive(true);\n-                ret = CHANNEL_MAP.putIfAbsent(ch, nettyChannel);\n-            }\n-            if (ret == null) {\n-                ret = nettyChannel;\n-            }\n-        }\n-        return ret;\n-    }\n-\n-    /**\n-     * Remove the inactive channel.\n-     *\n-     * @param ch netty channel\n-     */\n-    static void removeChannelIfDisconnected(Channel ch) {\n-        if (ch != null && !ch.isActive()) {\n-            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);\n-            if (nettyChannel != null) {\n-                nettyChannel.markActive(false);\n-            }\n-        }\n-    }\n-\n-    static void removeChannel(Channel ch) {\n-        if (ch != null) {\n-            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);\n-            if (nettyChannel != null) {\n-                nettyChannel.markActive(false);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return (InetSocketAddress) channel.localAddress();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return (InetSocketAddress) channel.remoteAddress();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return !isClosed() && active.get();\n-    }\n-\n-    public boolean isActive() {\n-        return active.get();\n-    }\n-\n-    public void markActive(boolean isActive) {\n-        active.set(isActive);\n-    }\n-\n-    /**\n-     * Send message by netty and whether to wait the completion of the send.\n-     *\n-     * @param message message that need send.\n-     * @param sent    whether to ack async-sent\n-     * @throws RemotingException throw RemotingException if wait until timeout or any exception thrown by method body that surrounded by try-catch.\n-     */\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        // whether the channel is closed\n-        super.send(message, sent);\n-\n-        boolean success = true;\n-        int timeout = 0;\n-        try {\n-            ChannelFuture future = channel.writeAndFlush(message);\n-            if (sent) {\n-                // wait timeout ms\n-                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-                success = future.await(timeout);\n-            }\n-            Throwable cause = future.cause();\n-            if (cause != null) {\n-                throw cause;\n-            }\n-        } catch (Throwable e) {\n-            removeChannelIfDisconnected(channel);\n-            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\n-        }\n-        if (!success) {\n-            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress()\n-                    + \"in timeout(\" + timeout + \"ms) limit\");\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        try {\n-            super.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            removeChannelIfDisconnected(channel);\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            attributes.clear();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Close netty channel \" + channel);\n-            }\n-            channel.close();\n-        } catch (Exception e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return attributes.containsKey(key);\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return attributes.get(key);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        // The null value is unallowed in the ConcurrentHashMap.\n-        if (value == null) {\n-            attributes.remove(key);\n-        } else {\n-            attributes.put(key, value);\n-        }\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        attributes.remove(key);\n-    }\n-\n-    @Override\n-    public int hashCode() {\n-        final int prime = 31;\n-        int result = 1;\n-        result = prime * result + ((channel == null) ? 0 : channel.hashCode());\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean equals(Object obj) {\n-        if (this == obj) {\n-            return true;\n-        }\n-        if (obj == null) {\n-            return false;\n-        }\n-\n-        // FIXME: a hack to make org.apache.dubbo.remoting.exchange.support.DefaultFuture.closeChannel work\n-        if (obj instanceof NettyClient) {\n-            NettyClient client = (NettyClient) obj;\n-            return channel.equals(client.getNettyChannel());\n-        }\n-\n-        if (getClass() != obj.getClass()) {\n-            return false;\n-        }\n-        NettyChannel other = (NettyChannel) obj;\n-        if (channel == null) {\n-            if (other.channel != null) {\n-                return false;\n-            }\n-        } else if (!channel.equals(other.channel)) {\n-            return false;\n-        }\n-        return true;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"NettyChannel [channel=\" + channel + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractChannel;\r\n+import org.apache.dubbo.remoting.utils.PayloadDropper;\r\n+\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelFuture;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * NettyChannel maintains the cache of channel.\r\n+ */\r\n+final class NettyChannel extends AbstractChannel {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyChannel.class);\r\n+    /**\r\n+     * the cache for netty channel and dubbo channel\r\n+     */\r\n+    private static final ConcurrentMap<Channel, NettyChannel> CHANNEL_MAP = new ConcurrentHashMap<Channel, NettyChannel>();\r\n+    /**\r\n+     * netty channel\r\n+     */\r\n+    private final Channel channel;\r\n+\r\n+    private final Map<String, Object> attributes = new ConcurrentHashMap<String, Object>();\r\n+\r\n+    private final AtomicBoolean active = new AtomicBoolean(false);\r\n+\r\n+    /**\r\n+     * The constructor of NettyChannel.\r\n+     * It is private so NettyChannel usually create by {@link NettyChannel#getOrAddChannel(Channel, URL, ChannelHandler)}\r\n+     *\r\n+     * @param channel netty channel\r\n+     * @param url\r\n+     * @param handler dubbo handler that contain netty handler\r\n+     */\r\n+    private NettyChannel(Channel channel, URL url, ChannelHandler handler) {\r\n+        super(url, handler);\r\n+        if (channel == null) {\r\n+            throw new IllegalArgumentException(\"netty channel == null;\");\r\n+        }\r\n+        this.channel = channel;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get dubbo channel by netty channel through channel cache.\r\n+     * Put netty channel into it if dubbo channel don't exist in the cache.\r\n+     *\r\n+     * @param ch      netty channel\r\n+     * @param url\r\n+     * @param handler dubbo handler that contain netty's handler\r\n+     * @return\r\n+     */\r\n+    static NettyChannel getOrAddChannel(Channel ch, URL url, ChannelHandler handler) {\r\n+        if (ch == null) {\r\n+            return null;\r\n+        }\r\n+        NettyChannel ret = CHANNEL_MAP.get(ch);\r\n+        if (ret == null) {\r\n+            NettyChannel nettyChannel = new NettyChannel(ch, url, handler);\r\n+            if (ch.isActive()) {\r\n+                nettyChannel.markActive(true);\r\n+                ret = CHANNEL_MAP.putIfAbsent(ch, nettyChannel);\r\n+            }\r\n+            if (ret == null) {\r\n+                ret = nettyChannel;\r\n+            }\r\n+        }\r\n+        return ret;\r\n+    }\r\n+\r\n+    /**\r\n+     * Remove the inactive channel.\r\n+     *\r\n+     * @param ch netty channel\r\n+     */\r\n+    static void removeChannelIfDisconnected(Channel ch) {\r\n+        if (ch != null && !ch.isActive()) {\r\n+            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);\r\n+            if (nettyChannel != null) {\r\n+                nettyChannel.markActive(false);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    static void removeChannel(Channel ch) {\r\n+        if (ch != null) {\r\n+            NettyChannel nettyChannel = CHANNEL_MAP.remove(ch);\r\n+            if (nettyChannel != null) {\r\n+                nettyChannel.markActive(false);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return (InetSocketAddress) channel.localAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return (InetSocketAddress) channel.remoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return !isClosed() && active.get();\r\n+    }\r\n+\r\n+    public boolean isActive() {\r\n+        return active.get();\r\n+    }\r\n+\r\n+    public void markActive(boolean isActive) {\r\n+        active.set(isActive);\r\n+    }\r\n+\r\n+    /**\r\n+     * Send message by netty and whether to wait the completion of the send.\r\n+     *\r\n+     * @param message message that need send.\r\n+     * @param sent    whether to ack async-sent\r\n+     * @throws RemotingException throw RemotingException if wait until timeout or any exception thrown by method body that surrounded by try-catch.\r\n+     */\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        // whether the channel is closed\r\n+        super.send(message, sent);\r\n+\r\n+        boolean success = true;\r\n+        int timeout = 0;\r\n+        try {\r\n+            ChannelFuture future = channel.writeAndFlush(message);\r\n+            if (sent) {\r\n+                // wait timeout ms\r\n+                timeout = getUrl().getPositiveParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+                success = future.await(timeout);\r\n+            }\r\n+            Throwable cause = future.cause();\r\n+            if (cause != null) {\r\n+                throw cause;\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            removeChannelIfDisconnected(channel);\r\n+            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+        if (!success) {\r\n+            throw new RemotingException(this, \"Failed to send message \" + PayloadDropper.getRequestWithoutData(message) + \" to \" + getRemoteAddress()\r\n+                    + \"in timeout(\" + timeout + \"ms) limit\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        try {\r\n+            super.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            removeChannelIfDisconnected(channel);\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            attributes.clear();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Close netty channel \" + channel);\r\n+            }\r\n+            channel.close();\r\n+        } catch (Exception e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return attributes.containsKey(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return attributes.get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        // The null value is unallowed in the ConcurrentHashMap.\r\n+        if (value == null) {\r\n+            attributes.remove(key);\r\n+        } else {\r\n+            attributes.put(key, value);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        attributes.remove(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int hashCode() {\r\n+        final int prime = 31;\r\n+        int result = 1;\r\n+        result = prime * result + ((channel == null) ? 0 : channel.hashCode());\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean equals(Object obj) {\r\n+        if (this == obj) {\r\n+            return true;\r\n+        }\r\n+        if (obj == null) {\r\n+            return false;\r\n+        }\r\n+\r\n+        // FIXME: a hack to make org.apache.dubbo.remoting.exchange.support.DefaultFuture.closeChannel work\r\n+        if (obj instanceof NettyClient) {\r\n+            NettyClient client = (NettyClient) obj;\r\n+            return channel.equals(client.getNettyChannel());\r\n+        }\r\n+\r\n+        if (getClass() != obj.getClass()) {\r\n+            return false;\r\n+        }\r\n+        NettyChannel other = (NettyChannel) obj;\r\n+        if (channel == null) {\r\n+            if (other.channel != null) {\r\n+                return false;\r\n+            }\r\n+        } else if (!channel.equals(other.channel)) {\r\n+            return false;\r\n+        }\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"NettyChannel [channel=\" + channel + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyClient.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,217 +1,217 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.transport.AbstractClient;\n-import org.apache.dubbo.remoting.utils.UrlUtils;\n-\n-import io.netty.bootstrap.Bootstrap;\n-import io.netty.buffer.PooledByteBufAllocator;\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelFuture;\n-import io.netty.channel.ChannelInitializer;\n-import io.netty.channel.ChannelOption;\n-import io.netty.channel.EventLoopGroup;\n-import io.netty.channel.socket.SocketChannel;\n-import io.netty.handler.proxy.Socks5ProxyHandler;\n-import io.netty.handler.timeout.IdleStateHandler;\n-\n-import java.net.InetSocketAddress;\n-\n-import static java.util.concurrent.TimeUnit.MILLISECONDS;\n-import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\n-import static org.apache.dubbo.remoting.transport.netty4.NettyEventLoopFactory.eventLoopGroup;\n-import static org.apache.dubbo.remoting.transport.netty4.NettyEventLoopFactory.socketChannelClass;\n-\n-/**\n- * NettyClient.\n- */\n-public class NettyClient extends AbstractClient {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NettyClient.class);\n-    /**\n-     * netty client bootstrap\n-     */\n-    private static final EventLoopGroup NIO_EVENT_LOOP_GROUP = eventLoopGroup(Constants.DEFAULT_IO_THREADS, \"NettyClientWorker\");\n-\n-    private static final String SOCKS_PROXY_HOST = \"socksProxyHost\";\n-\n-    private static final String SOCKS_PROXY_PORT = \"socksProxyPort\";\n-\n-    private static final String DEFAULT_SOCKS_PROXY_PORT = \"1080\";\n-\n-    private Bootstrap bootstrap;\n-\n-    /**\n-     * current channel. Each successful invocation of {@link NettyClient#doConnect()} will\n-     * replace this with new channel and close old channel.\n-     * <b>volatile, please copy reference to use.</b>\n-     */\n-    private volatile Channel channel;\n-\n-    /**\n-     * The constructor of NettyClient.\n-     * It wil init and start netty.\n-     */\n-    public NettyClient(final URL url, final ChannelHandler handler) throws RemotingException {\n-    \t// you can customize name and type of client thread pool by THREAD_NAME_KEY and THREADPOOL_KEY in CommonConstants.\n-    \t// the handler will be wrapped: MultiMessageHandler->HeartbeatHandler->handler\n-    \tsuper(url, wrapChannelHandler(url, handler));\n-    }\n-\n-    /**\n-     * Init bootstrap\n-     *\n-     * @throws Throwable\n-     */\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        final NettyClientHandler nettyClientHandler = new NettyClientHandler(getUrl(), this);\n-        bootstrap = new Bootstrap();\n-        bootstrap.group(NIO_EVENT_LOOP_GROUP)\n-                .option(ChannelOption.SO_KEEPALIVE, true)\n-                .option(ChannelOption.TCP_NODELAY, true)\n-                .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)\n-                //.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, getTimeout())\n-                .channel(socketChannelClass());\n-\n-        bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Math.max(3000, getConnectTimeout()));\n-        bootstrap.handler(new ChannelInitializer<SocketChannel>() {\n-\n-            @Override\n-            protected void initChannel(SocketChannel ch) throws Exception {\n-                int heartbeatInterval = UrlUtils.getHeartbeat(getUrl());\n-\n-                if (getUrl().getParameter(SSL_ENABLED_KEY, false)) {\n-                    ch.pipeline().addLast(\"negotiation\", SslHandlerInitializer.sslClientHandler(getUrl(), nettyClientHandler));\n-                }\n-\n-                NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyClient.this);\n-                ch.pipeline()//.addLast(\"logging\",new LoggingHandler(LogLevel.INFO))//for debug\n-                        .addLast(\"decoder\", adapter.getDecoder())\n-                        .addLast(\"encoder\", adapter.getEncoder())\n-                        .addLast(\"client-idle-handler\", new IdleStateHandler(heartbeatInterval, 0, 0, MILLISECONDS))\n-                        .addLast(\"handler\", nettyClientHandler);\n-\n-                String socksProxyHost = ConfigUtils.getProperty(SOCKS_PROXY_HOST);\n-                if(socksProxyHost != null) {\n-                    int socksProxyPort = Integer.parseInt(ConfigUtils.getProperty(SOCKS_PROXY_PORT, DEFAULT_SOCKS_PROXY_PORT));\n-                    Socks5ProxyHandler socks5ProxyHandler = new Socks5ProxyHandler(new InetSocketAddress(socksProxyHost, socksProxyPort));\n-                    ch.pipeline().addFirst(socks5ProxyHandler);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    protected void doConnect() throws Throwable {\n-        long start = System.currentTimeMillis();\n-        ChannelFuture future = bootstrap.connect(getConnectAddress());\n-        try {\n-            boolean ret = future.awaitUninterruptibly(getConnectTimeout(), MILLISECONDS);\n-\n-            if (ret && future.isSuccess()) {\n-                Channel newChannel = future.channel();\n-                try {\n-                    // Close old channel\n-                    // copy reference\n-                    Channel oldChannel = NettyClient.this.channel;\n-                    if (oldChannel != null) {\n-                        try {\n-                            if (logger.isInfoEnabled()) {\n-                                logger.info(\"Close old netty channel \" + oldChannel + \" on create new netty channel \" + newChannel);\n-                            }\n-                            oldChannel.close();\n-                        } finally {\n-                            NettyChannel.removeChannelIfDisconnected(oldChannel);\n-                        }\n-                    }\n-                } finally {\n-                    if (NettyClient.this.isClosed()) {\n-                        try {\n-                            if (logger.isInfoEnabled()) {\n-                                logger.info(\"Close new netty channel \" + newChannel + \", because the client closed.\");\n-                            }\n-                            newChannel.close();\n-                        } finally {\n-                            NettyClient.this.channel = null;\n-                            NettyChannel.removeChannelIfDisconnected(newChannel);\n-                        }\n-                    } else {\n-                        NettyClient.this.channel = newChannel;\n-                    }\n-                }\n-            } else if (future.cause() != null) {\n-                throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \"\n-                        + getRemoteAddress() + \", error message is:\" + future.cause().getMessage(), future.cause());\n-            } else {\n-                throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \"\n-                        + getRemoteAddress() + \" client-side timeout \"\n-                        + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start) + \"ms) from netty client \"\n-                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion());\n-            }\n-        } finally {\n-            // just add new valid channel to NettyChannel's cache\n-            if (!isConnected()) {\n-                //future.cancel(true);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    protected void doDisConnect() throws Throwable {\n-        try {\n-            NettyChannel.removeChannelIfDisconnected(channel);\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage());\n-        }\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        // can't shutdown nioEventLoopGroup because the method will be invoked when closing one channel but not a client,\n-        // but when and how to close the nioEventLoopGroup ?\n-        // nioEventLoopGroup.shutdownGracefully();\n-    }\n-\n-    @Override\n-    protected org.apache.dubbo.remoting.Channel getChannel() {\n-        Channel c = channel;\n-        if (c == null) {\n-            return null;\n-        }\n-        return NettyChannel.getOrAddChannel(c, getUrl(), this);\n-    }\n-\n-    Channel getNettyChannel() {\n-        return channel;\n-    }\n-\n-    @Override\n-    public boolean canHandleIdle() {\n-        return true;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.transport.AbstractClient;\r\n+import org.apache.dubbo.remoting.utils.UrlUtils;\r\n+\r\n+import io.netty.bootstrap.Bootstrap;\r\n+import io.netty.buffer.PooledByteBufAllocator;\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelFuture;\r\n+import io.netty.channel.ChannelInitializer;\r\n+import io.netty.channel.ChannelOption;\r\n+import io.netty.channel.EventLoopGroup;\r\n+import io.netty.channel.socket.SocketChannel;\r\n+import io.netty.handler.proxy.Socks5ProxyHandler;\r\n+import io.netty.handler.timeout.IdleStateHandler;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+\r\n+import static java.util.concurrent.TimeUnit.MILLISECONDS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\r\n+import static org.apache.dubbo.remoting.transport.netty4.NettyEventLoopFactory.eventLoopGroup;\r\n+import static org.apache.dubbo.remoting.transport.netty4.NettyEventLoopFactory.socketChannelClass;\r\n+\r\n+/**\r\n+ * NettyClient.\r\n+ */\r\n+public class NettyClient extends AbstractClient {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyClient.class);\r\n+    /**\r\n+     * netty client bootstrap\r\n+     */\r\n+    private static final EventLoopGroup NIO_EVENT_LOOP_GROUP = eventLoopGroup(Constants.DEFAULT_IO_THREADS, \"NettyClientWorker\");\r\n+\r\n+    private static final String SOCKS_PROXY_HOST = \"socksProxyHost\";\r\n+\r\n+    private static final String SOCKS_PROXY_PORT = \"socksProxyPort\";\r\n+\r\n+    private static final String DEFAULT_SOCKS_PROXY_PORT = \"1080\";\r\n+\r\n+    private Bootstrap bootstrap;\r\n+\r\n+    /**\r\n+     * current channel. Each successful invocation of {@link NettyClient#doConnect()} will\r\n+     * replace this with new channel and close old channel.\r\n+     * <b>volatile, please copy reference to use.</b>\r\n+     */\r\n+    private volatile Channel channel;\r\n+\r\n+    /**\r\n+     * The constructor of NettyClient.\r\n+     * It wil init and start netty.\r\n+     */\r\n+    public NettyClient(final URL url, final ChannelHandler handler) throws RemotingException {\r\n+    \t// you can customize name and type of client thread pool by THREAD_NAME_KEY and THREADPOOL_KEY in CommonConstants.\r\n+    \t// the handler will be wrapped: MultiMessageHandler->HeartbeatHandler->handler\r\n+    \tsuper(url, wrapChannelHandler(url, handler));\r\n+    }\r\n+\r\n+    /**\r\n+     * Init bootstrap\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        final NettyClientHandler nettyClientHandler = new NettyClientHandler(getUrl(), this);\r\n+        bootstrap = new Bootstrap();\r\n+        bootstrap.group(NIO_EVENT_LOOP_GROUP)\r\n+                .option(ChannelOption.SO_KEEPALIVE, true)\r\n+                .option(ChannelOption.TCP_NODELAY, true)\r\n+                .option(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)\r\n+                //.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, getTimeout())\r\n+                .channel(socketChannelClass());\r\n+\r\n+        bootstrap.option(ChannelOption.CONNECT_TIMEOUT_MILLIS, Math.max(3000, getConnectTimeout()));\r\n+        bootstrap.handler(new ChannelInitializer<SocketChannel>() {\r\n+\r\n+            @Override\r\n+            protected void initChannel(SocketChannel ch) throws Exception {\r\n+                int heartbeatInterval = UrlUtils.getHeartbeat(getUrl());\r\n+\r\n+                if (getUrl().getParameter(SSL_ENABLED_KEY, false)) {\r\n+                    ch.pipeline().addLast(\"negotiation\", SslHandlerInitializer.sslClientHandler(getUrl(), nettyClientHandler));\r\n+                }\r\n+\r\n+                NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyClient.this);\r\n+                ch.pipeline()//.addLast(\"logging\",new LoggingHandler(LogLevel.INFO))//for debug\r\n+                        .addLast(\"decoder\", adapter.getDecoder())\r\n+                        .addLast(\"encoder\", adapter.getEncoder())\r\n+                        .addLast(\"client-idle-handler\", new IdleStateHandler(heartbeatInterval, 0, 0, MILLISECONDS))\r\n+                        .addLast(\"handler\", nettyClientHandler);\r\n+\r\n+                String socksProxyHost = ConfigUtils.getProperty(SOCKS_PROXY_HOST);\r\n+                if(socksProxyHost != null) {\r\n+                    int socksProxyPort = Integer.parseInt(ConfigUtils.getProperty(SOCKS_PROXY_PORT, DEFAULT_SOCKS_PROXY_PORT));\r\n+                    Socks5ProxyHandler socks5ProxyHandler = new Socks5ProxyHandler(new InetSocketAddress(socksProxyHost, socksProxyPort));\r\n+                    ch.pipeline().addFirst(socks5ProxyHandler);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doConnect() throws Throwable {\r\n+        long start = System.currentTimeMillis();\r\n+        ChannelFuture future = bootstrap.connect(getConnectAddress());\r\n+        try {\r\n+            boolean ret = future.awaitUninterruptibly(getConnectTimeout(), MILLISECONDS);\r\n+\r\n+            if (ret && future.isSuccess()) {\r\n+                Channel newChannel = future.channel();\r\n+                try {\r\n+                    // Close old channel\r\n+                    // copy reference\r\n+                    Channel oldChannel = NettyClient.this.channel;\r\n+                    if (oldChannel != null) {\r\n+                        try {\r\n+                            if (logger.isInfoEnabled()) {\r\n+                                logger.info(\"Close old netty channel \" + oldChannel + \" on create new netty channel \" + newChannel);\r\n+                            }\r\n+                            oldChannel.close();\r\n+                        } finally {\r\n+                            NettyChannel.removeChannelIfDisconnected(oldChannel);\r\n+                        }\r\n+                    }\r\n+                } finally {\r\n+                    if (NettyClient.this.isClosed()) {\r\n+                        try {\r\n+                            if (logger.isInfoEnabled()) {\r\n+                                logger.info(\"Close new netty channel \" + newChannel + \", because the client closed.\");\r\n+                            }\r\n+                            newChannel.close();\r\n+                        } finally {\r\n+                            NettyClient.this.channel = null;\r\n+                            NettyChannel.removeChannelIfDisconnected(newChannel);\r\n+                        }\r\n+                    } else {\r\n+                        NettyClient.this.channel = newChannel;\r\n+                    }\r\n+                }\r\n+            } else if (future.cause() != null) {\r\n+                throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \"\r\n+                        + getRemoteAddress() + \", error message is:\" + future.cause().getMessage(), future.cause());\r\n+            } else {\r\n+                throw new RemotingException(this, \"client(url: \" + getUrl() + \") failed to connect to server \"\r\n+                        + getRemoteAddress() + \" client-side timeout \"\r\n+                        + getConnectTimeout() + \"ms (elapsed: \" + (System.currentTimeMillis() - start) + \"ms) from netty client \"\r\n+                        + NetUtils.getLocalHost() + \" using dubbo version \" + Version.getVersion());\r\n+            }\r\n+        } finally {\r\n+            // just add new valid channel to NettyChannel's cache\r\n+            if (!isConnected()) {\r\n+                //future.cancel(true);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doDisConnect() throws Throwable {\r\n+        try {\r\n+            NettyChannel.removeChannelIfDisconnected(channel);\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        // can't shutdown nioEventLoopGroup because the method will be invoked when closing one channel but not a client,\r\n+        // but when and how to close the nioEventLoopGroup ?\r\n+        // nioEventLoopGroup.shutdownGracefully();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected org.apache.dubbo.remoting.Channel getChannel() {\r\n+        Channel c = channel;\r\n+        if (c == null) {\r\n+            return null;\r\n+        }\r\n+        return NettyChannel.getOrAddChannel(c, getUrl(), this);\r\n+    }\r\n+\r\n+    Channel getNettyChannel() {\r\n+        return channel;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean canHandleIdle() {\r\n+        return true;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyClientHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,161 +1,161 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-import io.netty.channel.ChannelDuplexHandler;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.ChannelPromise;\n-import io.netty.handler.timeout.IdleStateEvent;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\n-\n-/**\n- * NettyClientHandler\n- */\n-@io.netty.channel.ChannelHandler.Sharable\n-public class NettyClientHandler extends ChannelDuplexHandler {\n-    private static final Logger logger = LoggerFactory.getLogger(NettyClientHandler.class);\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    public NettyClientHandler(URL url, ChannelHandler handler) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url == null\");\n-        }\n-        if (handler == null) {\n-            throw new IllegalArgumentException(\"handler == null\");\n-        }\n-        this.url = url;\n-        this.handler = handler;\n-    }\n-\n-    @Override\n-    public void channelActive(ChannelHandlerContext ctx) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        handler.connected(channel);\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection of \" + channel.getLocalAddress() + \" -> \" + channel.getRemoteAddress() + \" is established.\");\n-        }\n-    }\n-\n-    @Override\n-    public void channelInactive(ChannelHandlerContext ctx) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        try {\n-            handler.disconnected(channel);\n-        } finally {\n-            NettyChannel.removeChannel(ctx.channel());\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection of \" + channel.getLocalAddress() + \" -> \" + channel.getRemoteAddress() + \" is disconnected.\");\n-        }\n-    }\n-\n-    @Override\n-    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        handler.received(channel, msg);\n-    }\n-\n-    @Override\n-    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {\n-        super.write(ctx, msg, promise);\n-        final NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        final boolean isRequest = msg instanceof Request;\n-\n-        // We add listeners to make sure our out bound event is correct.\n-        // If our out bound event has an error (in most cases the encoder fails),\n-        // we need to have the request return directly instead of blocking the invoke process.\n-        promise.addListener(future -> {\n-            if (future.isSuccess()) {\n-                // if our future is success, mark the future to sent.\n-                handler.sent(channel, msg);\n-                return;\n-            }\n-\n-            Throwable t = future.cause();\n-            if (t != null && isRequest) {\n-                Request request = (Request) msg;\n-                Response response = buildErrorResponse(request, t);\n-                handler.received(channel, response);\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        // send heartbeat when read idle.\n-        if (evt instanceof IdleStateEvent) {\n-            try {\n-                NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"IdleStateEvent triggered, send heartbeat to channel \" + channel);\n-                }\n-                Request req = new Request();\n-                req.setVersion(Version.getProtocolVersion());\n-                req.setTwoWay(true);\n-                req.setEvent(HEARTBEAT_EVENT);\n-                channel.send(req);\n-            } finally {\n-                NettyChannel.removeChannelIfDisconnected(ctx.channel());\n-            }\n-        } else {\n-            super.userEventTriggered(ctx, evt);\n-        }\n-    }\n-\n-    @Override\n-    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)\n-            throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        try {\n-            handler.caught(channel, cause);\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.channel());\n-        }\n-    }\n-\n-    public void handshakeCompleted(SslHandlerInitializer.HandshakeCompletionEvent evt) {\n-        // TODO\n-    }\n-\n-    /**\n-     * build a bad request's response\n-     *\n-     * @param request the request\n-     * @param t       the throwable. In most cases, serialization fails.\n-     * @return the response\n-     */\n-    private static Response buildErrorResponse(Request request, Throwable t) {\n-        Response response = new Response(request.getId(), request.getVersion());\n-        response.setStatus(Response.BAD_REQUEST);\n-        response.setErrorMessage(StringUtils.toString(t));\n-        return response;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+import io.netty.channel.ChannelDuplexHandler;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.ChannelPromise;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.HEARTBEAT_EVENT;\r\n+\r\n+/**\r\n+ * NettyClientHandler\r\n+ */\r\n+@io.netty.channel.ChannelHandler.Sharable\r\n+public class NettyClientHandler extends ChannelDuplexHandler {\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyClientHandler.class);\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    public NettyClientHandler(URL url, ChannelHandler handler) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url == null\");\r\n+        }\r\n+        if (handler == null) {\r\n+            throw new IllegalArgumentException(\"handler == null\");\r\n+        }\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelActive(ChannelHandlerContext ctx) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        handler.connected(channel);\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection of \" + channel.getLocalAddress() + \" -> \" + channel.getRemoteAddress() + \" is established.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelInactive(ChannelHandlerContext ctx) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        try {\r\n+            handler.disconnected(channel);\r\n+        } finally {\r\n+            NettyChannel.removeChannel(ctx.channel());\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection of \" + channel.getLocalAddress() + \" -> \" + channel.getRemoteAddress() + \" is disconnected.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        handler.received(channel, msg);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {\r\n+        super.write(ctx, msg, promise);\r\n+        final NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        final boolean isRequest = msg instanceof Request;\r\n+\r\n+        // We add listeners to make sure our out bound event is correct.\r\n+        // If our out bound event has an error (in most cases the encoder fails),\r\n+        // we need to have the request return directly instead of blocking the invoke process.\r\n+        promise.addListener(future -> {\r\n+            if (future.isSuccess()) {\r\n+                // if our future is success, mark the future to sent.\r\n+                handler.sent(channel, msg);\r\n+                return;\r\n+            }\r\n+\r\n+            Throwable t = future.cause();\r\n+            if (t != null && isRequest) {\r\n+                Request request = (Request) msg;\r\n+                Response response = buildErrorResponse(request, t);\r\n+                handler.received(channel, response);\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        // send heartbeat when read idle.\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            try {\r\n+                NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"IdleStateEvent triggered, send heartbeat to channel \" + channel);\r\n+                }\r\n+                Request req = new Request();\r\n+                req.setVersion(Version.getProtocolVersion());\r\n+                req.setTwoWay(true);\r\n+                req.setEvent(HEARTBEAT_EVENT);\r\n+                channel.send(req);\r\n+            } finally {\r\n+                NettyChannel.removeChannelIfDisconnected(ctx.channel());\r\n+            }\r\n+        } else {\r\n+            super.userEventTriggered(ctx, evt);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)\r\n+            throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        try {\r\n+            handler.caught(channel, cause);\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.channel());\r\n+        }\r\n+    }\r\n+\r\n+    public void handshakeCompleted(SslHandlerInitializer.HandshakeCompletionEvent evt) {\r\n+        // TODO\r\n+    }\r\n+\r\n+    /**\r\n+     * build a bad request's response\r\n+     *\r\n+     * @param request the request\r\n+     * @param t       the throwable. In most cases, serialization fails.\r\n+     * @return the response\r\n+     */\r\n+    private static Response buildErrorResponse(Request request, Throwable t) {\r\n+        Response response = new Response(request.getId(), request.getVersion());\r\n+        response.setStatus(Response.BAD_REQUEST);\r\n+        response.setErrorMessage(StringUtils.toString(t));\r\n+        return response;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyCodecAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,101 +1,101 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-\n-import io.netty.buffer.ByteBuf;\n-import io.netty.channel.Channel;\n-import io.netty.channel.ChannelHandler;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.handler.codec.ByteToMessageDecoder;\n-import io.netty.handler.codec.MessageToByteEncoder;\n-\n-import java.io.IOException;\n-import java.util.List;\n-\n-/**\n- * NettyCodecAdapter.\n- */\n-final public class NettyCodecAdapter {\n-\n-    private final ChannelHandler encoder = new InternalEncoder();\n-\n-    private final ChannelHandler decoder = new InternalDecoder();\n-\n-    private final Codec2 codec;\n-\n-    private final URL url;\n-\n-    private final org.apache.dubbo.remoting.ChannelHandler handler;\n-\n-    public NettyCodecAdapter(Codec2 codec, URL url, org.apache.dubbo.remoting.ChannelHandler handler) {\n-        this.codec = codec;\n-        this.url = url;\n-        this.handler = handler;\n-    }\n-\n-    public ChannelHandler getEncoder() {\n-        return encoder;\n-    }\n-\n-    public ChannelHandler getDecoder() {\n-        return decoder;\n-    }\n-\n-    private class InternalEncoder extends MessageToByteEncoder {\n-\n-        @Override\n-        protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {\n-            org.apache.dubbo.remoting.buffer.ChannelBuffer buffer = new NettyBackedChannelBuffer(out);\n-            Channel ch = ctx.channel();\n-            NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler);\n-            codec.encode(channel, buffer, msg);\n-        }\n-    }\n-\n-    private class InternalDecoder extends ByteToMessageDecoder {\n-\n-        @Override\n-        protected void decode(ChannelHandlerContext ctx, ByteBuf input, List<Object> out) throws Exception {\n-\n-            ChannelBuffer message = new NettyBackedChannelBuffer(input);\n-\n-            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-\n-            // decode object.\n-            do {\n-                int saveReaderIndex = message.readerIndex();\n-                Object msg = codec.decode(channel, message);\n-                if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\n-                    message.readerIndex(saveReaderIndex);\n-                    break;\n-                } else {\n-                    //is it possible to go here ?\n-                    if (saveReaderIndex == message.readerIndex()) {\n-                        throw new IOException(\"Decode without read data.\");\n-                    }\n-                    if (msg != null) {\n-                        out.add(msg);\n-                    }\n-                }\n-            } while (message.readable());\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+\r\n+import io.netty.buffer.ByteBuf;\r\n+import io.netty.channel.Channel;\r\n+import io.netty.channel.ChannelHandler;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.handler.codec.ByteToMessageDecoder;\r\n+import io.netty.handler.codec.MessageToByteEncoder;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * NettyCodecAdapter.\r\n+ */\r\n+final public class NettyCodecAdapter {\r\n+\r\n+    private final ChannelHandler encoder = new InternalEncoder();\r\n+\r\n+    private final ChannelHandler decoder = new InternalDecoder();\r\n+\r\n+    private final Codec2 codec;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final org.apache.dubbo.remoting.ChannelHandler handler;\r\n+\r\n+    public NettyCodecAdapter(Codec2 codec, URL url, org.apache.dubbo.remoting.ChannelHandler handler) {\r\n+        this.codec = codec;\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+    }\r\n+\r\n+    public ChannelHandler getEncoder() {\r\n+        return encoder;\r\n+    }\r\n+\r\n+    public ChannelHandler getDecoder() {\r\n+        return decoder;\r\n+    }\r\n+\r\n+    private class InternalEncoder extends MessageToByteEncoder {\r\n+\r\n+        @Override\r\n+        protected void encode(ChannelHandlerContext ctx, Object msg, ByteBuf out) throws Exception {\r\n+            org.apache.dubbo.remoting.buffer.ChannelBuffer buffer = new NettyBackedChannelBuffer(out);\r\n+            Channel ch = ctx.channel();\r\n+            NettyChannel channel = NettyChannel.getOrAddChannel(ch, url, handler);\r\n+            codec.encode(channel, buffer, msg);\r\n+        }\r\n+    }\r\n+\r\n+    private class InternalDecoder extends ByteToMessageDecoder {\r\n+\r\n+        @Override\r\n+        protected void decode(ChannelHandlerContext ctx, ByteBuf input, List<Object> out) throws Exception {\r\n+\r\n+            ChannelBuffer message = new NettyBackedChannelBuffer(input);\r\n+\r\n+            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+\r\n+            // decode object.\r\n+            do {\r\n+                int saveReaderIndex = message.readerIndex();\r\n+                Object msg = codec.decode(channel, message);\r\n+                if (msg == Codec2.DecodeResult.NEED_MORE_INPUT) {\r\n+                    message.readerIndex(saveReaderIndex);\r\n+                    break;\r\n+                } else {\r\n+                    //is it possible to go here ?\r\n+                    if (saveReaderIndex == message.readerIndex()) {\r\n+                        throw new IOException(\"Decode without read data.\");\r\n+                    }\r\n+                    if (msg != null) {\r\n+                        out.add(msg);\r\n+                    }\r\n+                }\r\n+            } while (message.readable());\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyEventLoopFactory.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyEventLoopFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,60 +1,60 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.config.Configuration;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import io.netty.channel.EventLoopGroup;\n-import io.netty.channel.epoll.Epoll;\n-import io.netty.channel.epoll.EpollEventLoopGroup;\n-import io.netty.channel.epoll.EpollServerSocketChannel;\n-import io.netty.channel.epoll.EpollSocketChannel;\n-import io.netty.channel.nio.NioEventLoopGroup;\n-import io.netty.channel.socket.ServerSocketChannel;\n-import io.netty.channel.socket.SocketChannel;\n-import io.netty.channel.socket.nio.NioServerSocketChannel;\n-import io.netty.channel.socket.nio.NioSocketChannel;\n-import io.netty.util.concurrent.DefaultThreadFactory;\n-\n-import java.util.concurrent.ThreadFactory;\n-\n-public class NettyEventLoopFactory {\n-    public static EventLoopGroup eventLoopGroup(int threads, String threadFactoryName) {\n-        ThreadFactory threadFactory = new DefaultThreadFactory(threadFactoryName, true);\n-        return shouldEpoll() ? new EpollEventLoopGroup(threads, threadFactory) :\n-                new NioEventLoopGroup(threads, threadFactory);\n-    }\n-\n-    public static Class<? extends SocketChannel> socketChannelClass() {\n-        return shouldEpoll() ? EpollSocketChannel.class : NioSocketChannel.class;\n-    }\n-\n-    public static Class<? extends ServerSocketChannel> serverSocketChannelClass() {\n-        return shouldEpoll() ? EpollServerSocketChannel.class : NioServerSocketChannel.class;\n-    }\n-\n-    private static boolean shouldEpoll() {\n-        Configuration configuration = ApplicationModel.getEnvironment().getConfiguration();\n-        if (configuration.getBoolean(\"netty.epoll.enable\", false)) {\n-            String osName = configuration.getString(\"os.name\");\n-            return osName.toLowerCase().contains(\"linux\") && Epoll.isAvailable();\n-        }\n-\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.config.Configuration;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import io.netty.channel.EventLoopGroup;\r\n+import io.netty.channel.epoll.Epoll;\r\n+import io.netty.channel.epoll.EpollEventLoopGroup;\r\n+import io.netty.channel.epoll.EpollServerSocketChannel;\r\n+import io.netty.channel.epoll.EpollSocketChannel;\r\n+import io.netty.channel.nio.NioEventLoopGroup;\r\n+import io.netty.channel.socket.ServerSocketChannel;\r\n+import io.netty.channel.socket.SocketChannel;\r\n+import io.netty.channel.socket.nio.NioServerSocketChannel;\r\n+import io.netty.channel.socket.nio.NioSocketChannel;\r\n+import io.netty.util.concurrent.DefaultThreadFactory;\r\n+\r\n+import java.util.concurrent.ThreadFactory;\r\n+\r\n+public class NettyEventLoopFactory {\r\n+    public static EventLoopGroup eventLoopGroup(int threads, String threadFactoryName) {\r\n+        ThreadFactory threadFactory = new DefaultThreadFactory(threadFactoryName, true);\r\n+        return shouldEpoll() ? new EpollEventLoopGroup(threads, threadFactory) :\r\n+                new NioEventLoopGroup(threads, threadFactory);\r\n+    }\r\n+\r\n+    public static Class<? extends SocketChannel> socketChannelClass() {\r\n+        return shouldEpoll() ? EpollSocketChannel.class : NioSocketChannel.class;\r\n+    }\r\n+\r\n+    public static Class<? extends ServerSocketChannel> serverSocketChannelClass() {\r\n+        return shouldEpoll() ? EpollServerSocketChannel.class : NioServerSocketChannel.class;\r\n+    }\r\n+\r\n+    private static boolean shouldEpoll() {\r\n+        Configuration configuration = ApplicationModel.getEnvironment().getConfiguration();\r\n+        if (configuration.getBoolean(\"netty.epoll.enable\", false)) {\r\n+            String osName = configuration.getString(\"os.name\");\r\n+            return osName.toLowerCase().contains(\"linux\") && Epoll.isAvailable();\r\n+        }\r\n+\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyServer.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,202 +1,202 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ExecutorUtil;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.transport.AbstractServer;\n-import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\n-import org.apache.dubbo.remoting.utils.UrlUtils;\n-\n-import io.netty.bootstrap.ServerBootstrap;\n-import io.netty.buffer.PooledByteBufAllocator;\n-import io.netty.channel.ChannelFuture;\n-import io.netty.channel.ChannelInitializer;\n-import io.netty.channel.ChannelOption;\n-import io.netty.channel.EventLoopGroup;\n-import io.netty.channel.socket.SocketChannel;\n-import io.netty.handler.timeout.IdleStateHandler;\n-\n-import java.net.InetSocketAddress;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Map;\n-\n-import static java.util.concurrent.TimeUnit.MILLISECONDS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.KEEP_ALIVE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\n-\n-\n-/**\n- * NettyServer.\n- */\n-public class NettyServer extends AbstractServer implements RemotingServer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(NettyServer.class);\n-    /**\n-     * the cache for alive worker channel.\n-     * <ip:port, dubbo channel>\n-     */\n-    private Map<String, Channel> channels;\n-    /**\n-     * netty server bootstrap.\n-     */\n-    private ServerBootstrap bootstrap;\n-    /**\n-     * the boss channel that receive connections and dispatch these to worker channel.\n-     */\n-\tprivate io.netty.channel.Channel channel;\n-\n-    private EventLoopGroup bossGroup;\n-    private EventLoopGroup workerGroup;\n-\n-    public NettyServer(URL url, ChannelHandler handler) throws RemotingException {\n-        // you can customize name and type of client thread pool by THREAD_NAME_KEY and THREADPOOL_KEY in CommonConstants.\n-        // the handler will be wrapped: MultiMessageHandler->HeartbeatHandler->handler\n-        super(ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME), ChannelHandlers.wrap(handler, url));\n-    }\n-\n-    /**\n-     * Init and start netty server\n-     *\n-     * @throws Throwable\n-     */\n-    @Override\n-    protected void doOpen() throws Throwable {\n-        bootstrap = new ServerBootstrap();\n-\n-        bossGroup = NettyEventLoopFactory.eventLoopGroup(1, \"NettyServerBoss\");\n-        workerGroup = NettyEventLoopFactory.eventLoopGroup(\n-                getUrl().getPositiveParameter(IO_THREADS_KEY, Constants.DEFAULT_IO_THREADS),\n-                \"NettyServerWorker\");\n-\n-        final NettyServerHandler nettyServerHandler = new NettyServerHandler(getUrl(), this);\n-        channels = nettyServerHandler.getChannels();\n-\n-        boolean keepalive = getUrl().getParameter(KEEP_ALIVE_KEY, Boolean.FALSE);\n-\n-        bootstrap.group(bossGroup, workerGroup)\n-                .channel(NettyEventLoopFactory.serverSocketChannelClass())\n-                .option(ChannelOption.SO_REUSEADDR, Boolean.TRUE)\n-                .childOption(ChannelOption.TCP_NODELAY, Boolean.TRUE)\n-                .childOption(ChannelOption.SO_KEEPALIVE, keepalive)\n-                .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)\n-                .childHandler(new ChannelInitializer<SocketChannel>() {\n-                    @Override\n-                    protected void initChannel(SocketChannel ch) throws Exception {\n-                        // FIXME: should we use getTimeout()?\n-                        int idleTimeout = UrlUtils.getIdleTimeout(getUrl());\n-                        NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyServer.this);\n-                        if (getUrl().getParameter(SSL_ENABLED_KEY, false)) {\n-                            ch.pipeline().addLast(\"negotiation\",\n-                                    SslHandlerInitializer.sslServerHandler(getUrl(), nettyServerHandler));\n-                        }\n-                        ch.pipeline()\n-                                .addLast(\"decoder\", adapter.getDecoder())\n-                                .addLast(\"encoder\", adapter.getEncoder())\n-                                .addLast(\"server-idle-handler\", new IdleStateHandler(0, 0, idleTimeout, MILLISECONDS))\n-                                .addLast(\"handler\", nettyServerHandler);\n-                    }\n-                });\n-        // bind\n-        ChannelFuture channelFuture = bootstrap.bind(getBindAddress());\n-        channelFuture.syncUninterruptibly();\n-        channel = channelFuture.channel();\n-\n-    }\n-\n-    @Override\n-    protected void doClose() throws Throwable {\n-        try {\n-            if (channel != null) {\n-                // unbind.\n-                channel.close();\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            Collection<org.apache.dubbo.remoting.Channel> channels = getChannels();\n-            if (channels != null && channels.size() > 0) {\n-                for (org.apache.dubbo.remoting.Channel channel : channels) {\n-                    try {\n-                        channel.close();\n-                    } catch (Throwable e) {\n-                        logger.warn(e.getMessage(), e);\n-                    }\n-                }\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (bootstrap != null) {\n-                bossGroup.shutdownGracefully().syncUninterruptibly();\n-                workerGroup.shutdownGracefully().syncUninterruptibly();\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-        try {\n-            if (channels != null) {\n-                channels.clear();\n-            }\n-        } catch (Throwable e) {\n-            logger.warn(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public Collection<Channel> getChannels() {\n-        Collection<Channel> chs = new ArrayList<>(this.channels.size());\n-        chs.addAll(this.channels.values());\n-        // check of connection status is unnecessary since we are using channels in NettyServerHandler\n-//        for (Channel channel : this.channels.values()) {\n-//            if (channel.isConnected()) {\n-//                chs.add(channel);\n-//            } else {\n-//                channels.remove(NetUtils.toAddressString(channel.getRemoteAddress()));\n-//            }\n-//        }\n-        return chs;\n-    }\n-\n-    @Override\n-    public Channel getChannel(InetSocketAddress remoteAddress) {\n-        return channels.get(NetUtils.toAddressString(remoteAddress));\n-    }\n-\n-    @Override\n-    public boolean canHandleIdle() {\n-        return true;\n-    }\n-\n-    @Override\n-    public boolean isBound() {\n-        return channel.isActive();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ExecutorUtil;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.transport.AbstractServer;\r\n+import org.apache.dubbo.remoting.transport.dispatcher.ChannelHandlers;\r\n+import org.apache.dubbo.remoting.utils.UrlUtils;\r\n+\r\n+import io.netty.bootstrap.ServerBootstrap;\r\n+import io.netty.buffer.PooledByteBufAllocator;\r\n+import io.netty.channel.ChannelFuture;\r\n+import io.netty.channel.ChannelInitializer;\r\n+import io.netty.channel.ChannelOption;\r\n+import io.netty.channel.EventLoopGroup;\r\n+import io.netty.channel.socket.SocketChannel;\r\n+import io.netty.handler.timeout.IdleStateHandler;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Map;\r\n+\r\n+import static java.util.concurrent.TimeUnit.MILLISECONDS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.KEEP_ALIVE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\r\n+\r\n+\r\n+/**\r\n+ * NettyServer.\r\n+ */\r\n+public class NettyServer extends AbstractServer implements RemotingServer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyServer.class);\r\n+    /**\r\n+     * the cache for alive worker channel.\r\n+     * <ip:port, dubbo channel>\r\n+     */\r\n+    private Map<String, Channel> channels;\r\n+    /**\r\n+     * netty server bootstrap.\r\n+     */\r\n+    private ServerBootstrap bootstrap;\r\n+    /**\r\n+     * the boss channel that receive connections and dispatch these to worker channel.\r\n+     */\r\n+\tprivate io.netty.channel.Channel channel;\r\n+\r\n+    private EventLoopGroup bossGroup;\r\n+    private EventLoopGroup workerGroup;\r\n+\r\n+    public NettyServer(URL url, ChannelHandler handler) throws RemotingException {\r\n+        // you can customize name and type of client thread pool by THREAD_NAME_KEY and THREADPOOL_KEY in CommonConstants.\r\n+        // the handler will be wrapped: MultiMessageHandler->HeartbeatHandler->handler\r\n+        super(ExecutorUtil.setThreadName(url, SERVER_THREAD_POOL_NAME), ChannelHandlers.wrap(handler, url));\r\n+    }\r\n+\r\n+    /**\r\n+     * Init and start netty server\r\n+     *\r\n+     * @throws Throwable\r\n+     */\r\n+    @Override\r\n+    protected void doOpen() throws Throwable {\r\n+        bootstrap = new ServerBootstrap();\r\n+\r\n+        bossGroup = NettyEventLoopFactory.eventLoopGroup(1, \"NettyServerBoss\");\r\n+        workerGroup = NettyEventLoopFactory.eventLoopGroup(\r\n+                getUrl().getPositiveParameter(IO_THREADS_KEY, Constants.DEFAULT_IO_THREADS),\r\n+                \"NettyServerWorker\");\r\n+\r\n+        final NettyServerHandler nettyServerHandler = new NettyServerHandler(getUrl(), this);\r\n+        channels = nettyServerHandler.getChannels();\r\n+\r\n+        boolean keepalive = getUrl().getParameter(KEEP_ALIVE_KEY, Boolean.FALSE);\r\n+\r\n+        bootstrap.group(bossGroup, workerGroup)\r\n+                .channel(NettyEventLoopFactory.serverSocketChannelClass())\r\n+                .option(ChannelOption.SO_REUSEADDR, Boolean.TRUE)\r\n+                .childOption(ChannelOption.TCP_NODELAY, Boolean.TRUE)\r\n+                .childOption(ChannelOption.SO_KEEPALIVE, keepalive)\r\n+                .childOption(ChannelOption.ALLOCATOR, PooledByteBufAllocator.DEFAULT)\r\n+                .childHandler(new ChannelInitializer<SocketChannel>() {\r\n+                    @Override\r\n+                    protected void initChannel(SocketChannel ch) throws Exception {\r\n+                        // FIXME: should we use getTimeout()?\r\n+                        int idleTimeout = UrlUtils.getIdleTimeout(getUrl());\r\n+                        NettyCodecAdapter adapter = new NettyCodecAdapter(getCodec(), getUrl(), NettyServer.this);\r\n+                        if (getUrl().getParameter(SSL_ENABLED_KEY, false)) {\r\n+                            ch.pipeline().addLast(\"negotiation\",\r\n+                                    SslHandlerInitializer.sslServerHandler(getUrl(), nettyServerHandler));\r\n+                        }\r\n+                        ch.pipeline()\r\n+                                .addLast(\"decoder\", adapter.getDecoder())\r\n+                                .addLast(\"encoder\", adapter.getEncoder())\r\n+                                .addLast(\"server-idle-handler\", new IdleStateHandler(0, 0, idleTimeout, MILLISECONDS))\r\n+                                .addLast(\"handler\", nettyServerHandler);\r\n+                    }\r\n+                });\r\n+        // bind\r\n+        ChannelFuture channelFuture = bootstrap.bind(getBindAddress());\r\n+        channelFuture.syncUninterruptibly();\r\n+        channel = channelFuture.channel();\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doClose() throws Throwable {\r\n+        try {\r\n+            if (channel != null) {\r\n+                // unbind.\r\n+                channel.close();\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            Collection<org.apache.dubbo.remoting.Channel> channels = getChannels();\r\n+            if (channels != null && channels.size() > 0) {\r\n+                for (org.apache.dubbo.remoting.Channel channel : channels) {\r\n+                    try {\r\n+                        channel.close();\r\n+                    } catch (Throwable e) {\r\n+                        logger.warn(e.getMessage(), e);\r\n+                    }\r\n+                }\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (bootstrap != null) {\r\n+                bossGroup.shutdownGracefully().syncUninterruptibly();\r\n+                workerGroup.shutdownGracefully().syncUninterruptibly();\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+        try {\r\n+            if (channels != null) {\r\n+                channels.clear();\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            logger.warn(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<Channel> getChannels() {\r\n+        Collection<Channel> chs = new ArrayList<>(this.channels.size());\r\n+        chs.addAll(this.channels.values());\r\n+        // check of connection status is unnecessary since we are using channels in NettyServerHandler\r\n+//        for (Channel channel : this.channels.values()) {\r\n+//            if (channel.isConnected()) {\r\n+//                chs.add(channel);\r\n+//            } else {\r\n+//                channels.remove(NetUtils.toAddressString(channel.getRemoteAddress()));\r\n+//            }\r\n+//        }\r\n+        return chs;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Channel getChannel(InetSocketAddress remoteAddress) {\r\n+        return channels.get(NetUtils.toAddressString(remoteAddress));\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean canHandleIdle() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isBound() {\r\n+        return channel.isActive();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyServerHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,138 +1,138 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.transport.netty4.SslHandlerInitializer.HandshakeCompletionEvent;\n-\n-import io.netty.channel.ChannelDuplexHandler;\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.ChannelPromise;\n-import io.netty.handler.timeout.IdleStateEvent;\n-\n-import java.net.InetSocketAddress;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * NettyServerHandler.\n- */\n-@io.netty.channel.ChannelHandler.Sharable\n-public class NettyServerHandler extends ChannelDuplexHandler {\n-    private static final Logger logger = LoggerFactory.getLogger(NettyServerHandler.class);\n-    /**\n-     * the cache for alive worker channel.\n-     * <ip:port, dubbo channel>\n-     */\n-    private final Map<String, Channel> channels = new ConcurrentHashMap<String, Channel>();\n-\n-    private final URL url;\n-\n-    private final ChannelHandler handler;\n-\n-    public NettyServerHandler(URL url, ChannelHandler handler) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url == null\");\n-        }\n-        if (handler == null) {\n-            throw new IllegalArgumentException(\"handler == null\");\n-        }\n-        this.url = url;\n-        this.handler = handler;\n-    }\n-\n-    public Map<String, Channel> getChannels() {\n-        return channels;\n-    }\n-\n-    @Override\n-    public void channelActive(ChannelHandlerContext ctx) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        if (channel != null) {\n-            channels.put(NetUtils.toAddressString((InetSocketAddress) ctx.channel().remoteAddress()), channel);\n-        }\n-        handler.connected(channel);\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection of \" + channel.getRemoteAddress() + \" -> \" + channel.getLocalAddress() + \" is established.\");\n-        }\n-    }\n-\n-    @Override\n-    public void channelInactive(ChannelHandlerContext ctx) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        try {\n-            channels.remove(NetUtils.toAddressString((InetSocketAddress) ctx.channel().remoteAddress()));\n-            handler.disconnected(channel);\n-        } finally {\n-            NettyChannel.removeChannel(ctx.channel());\n-        }\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"The connection of \" + channel.getRemoteAddress() + \" -> \" + channel.getLocalAddress() + \" is disconnected.\");\n-        }\n-    }\n-\n-    @Override\n-    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        handler.received(channel, msg);\n-    }\n-\n-\n-    @Override\n-    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {\n-        super.write(ctx, msg, promise);\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        handler.sent(channel, msg);\n-    }\n-\n-    @Override\n-    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-        // server will close channel when server don't receive any heartbeat from client util timeout.\n-        if (evt instanceof IdleStateEvent) {\n-            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-            try {\n-                logger.info(\"IdleStateEvent triggered, close channel \" + channel);\n-                channel.close();\n-            } finally {\n-                NettyChannel.removeChannelIfDisconnected(ctx.channel());\n-            }\n-        }\n-        super.userEventTriggered(ctx, evt);\n-    }\n-\n-    @Override\n-    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)\n-            throws Exception {\n-        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\n-        try {\n-            handler.caught(channel, cause);\n-        } finally {\n-            NettyChannel.removeChannelIfDisconnected(ctx.channel());\n-        }\n-    }\n-\n-    public void handshakeCompleted(HandshakeCompletionEvent evt) {\n-        // TODO\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.transport.netty4.SslHandlerInitializer.HandshakeCompletionEvent;\r\n+\r\n+import io.netty.channel.ChannelDuplexHandler;\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.ChannelPromise;\r\n+import io.netty.handler.timeout.IdleStateEvent;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * NettyServerHandler.\r\n+ */\r\n+@io.netty.channel.ChannelHandler.Sharable\r\n+public class NettyServerHandler extends ChannelDuplexHandler {\r\n+    private static final Logger logger = LoggerFactory.getLogger(NettyServerHandler.class);\r\n+    /**\r\n+     * the cache for alive worker channel.\r\n+     * <ip:port, dubbo channel>\r\n+     */\r\n+    private final Map<String, Channel> channels = new ConcurrentHashMap<String, Channel>();\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final ChannelHandler handler;\r\n+\r\n+    public NettyServerHandler(URL url, ChannelHandler handler) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url == null\");\r\n+        }\r\n+        if (handler == null) {\r\n+            throw new IllegalArgumentException(\"handler == null\");\r\n+        }\r\n+        this.url = url;\r\n+        this.handler = handler;\r\n+    }\r\n+\r\n+    public Map<String, Channel> getChannels() {\r\n+        return channels;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelActive(ChannelHandlerContext ctx) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        if (channel != null) {\r\n+            channels.put(NetUtils.toAddressString((InetSocketAddress) ctx.channel().remoteAddress()), channel);\r\n+        }\r\n+        handler.connected(channel);\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection of \" + channel.getRemoteAddress() + \" -> \" + channel.getLocalAddress() + \" is established.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelInactive(ChannelHandlerContext ctx) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        try {\r\n+            channels.remove(NetUtils.toAddressString((InetSocketAddress) ctx.channel().remoteAddress()));\r\n+            handler.disconnected(channel);\r\n+        } finally {\r\n+            NettyChannel.removeChannel(ctx.channel());\r\n+        }\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"The connection of \" + channel.getRemoteAddress() + \" -> \" + channel.getLocalAddress() + \" is disconnected.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        handler.received(channel, msg);\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public void write(ChannelHandlerContext ctx, Object msg, ChannelPromise promise) throws Exception {\r\n+        super.write(ctx, msg, promise);\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        handler.sent(channel, msg);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+        // server will close channel when server don't receive any heartbeat from client util timeout.\r\n+        if (evt instanceof IdleStateEvent) {\r\n+            NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+            try {\r\n+                logger.info(\"IdleStateEvent triggered, close channel \" + channel);\r\n+                channel.close();\r\n+            } finally {\r\n+                NettyChannel.removeChannelIfDisconnected(ctx.channel());\r\n+            }\r\n+        }\r\n+        super.userEventTriggered(ctx, evt);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause)\r\n+            throws Exception {\r\n+        NettyChannel channel = NettyChannel.getOrAddChannel(ctx.channel(), url, handler);\r\n+        try {\r\n+            handler.caught(channel, cause);\r\n+        } finally {\r\n+            NettyChannel.removeChannelIfDisconnected(ctx.channel());\r\n+        }\r\n+    }\r\n+\r\n+    public void handshakeCompleted(HandshakeCompletionEvent evt) {\r\n+        // TODO\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/NettyTransporter.java", "source2": "org/apache/dubbo/remoting/transport/netty4/NettyTransporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.Client;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.Transporter;\n-\n-/**\n- * Default extension of {@link Transporter} using netty4.x.\n- */\n-public class NettyTransporter implements Transporter {\n-\n-    public static final String NAME = \"netty\";\n-\n-    @Override\n-    public RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException {\n-        return new NettyServer(url, handler);\n-    }\n-\n-    @Override\n-    public Client connect(URL url, ChannelHandler handler) throws RemotingException {\n-        return new NettyClient(url, handler);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.Client;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.Transporter;\r\n+\r\n+/**\r\n+ * Default extension of {@link Transporter} using netty4.x.\r\n+ */\r\n+public class NettyTransporter implements Transporter {\r\n+\r\n+    public static final String NAME = \"netty\";\r\n+\r\n+    @Override\r\n+    public RemotingServer bind(URL url, ChannelHandler handler) throws RemotingException {\r\n+        return new NettyServer(url, handler);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Client connect(URL url, ChannelHandler handler) throws RemotingException {\r\n+        return new NettyClient(url, handler);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/SslContexts.java", "source2": "org/apache/dubbo/remoting/transport/netty4/SslContexts.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-\n-import io.netty.handler.ssl.ClientAuth;\n-import io.netty.handler.ssl.OpenSsl;\n-import io.netty.handler.ssl.SslContext;\n-import io.netty.handler.ssl.SslContextBuilder;\n-import io.netty.handler.ssl.SslProvider;\n-\n-import javax.net.ssl.SSLException;\n-import java.io.InputStream;\n-import java.security.Provider;\n-import java.security.Security;\n-\n-public class SslContexts {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(SslContexts.class);\n-\n-    public static SslContext buildServerSslContext(URL url) {\n-        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\n-        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\n-\n-        SslContextBuilder sslClientContextBuilder = null;\n-        try {\n-            String password = sslConfig.getServerKeyPassword();\n-            if (password != null) {\n-                sslClientContextBuilder = SslContextBuilder.forServer(sslConfig.getServerKeyCertChainPathStream(),\n-                        sslConfig.getServerPrivateKeyPathStream(), password);\n-            } else {\n-                sslClientContextBuilder = SslContextBuilder.forServer(sslConfig.getServerKeyCertChainPathStream(),\n-                        sslConfig.getServerPrivateKeyPathStream());\n-            }\n-\n-            if (sslConfig.getServerTrustCertCollectionPathStream() != null) {\n-                sslClientContextBuilder.trustManager(sslConfig.getServerTrustCertCollectionPathStream());\n-                sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE);\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Could not find certificate file or the certificate is invalid.\", e);\n-        }\n-        try {\n-            return sslClientContextBuilder.sslProvider(findSslProvider()).build();\n-        } catch (SSLException e) {\n-            throw new IllegalStateException(\"Build SslSession failed.\", e);\n-        }\n-    }\n-\n-    public static SslContext buildClientSslContext(URL url) {\n-        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\n-        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\n-\n-        SslContextBuilder builder = SslContextBuilder.forClient();\n-        try {\n-            if (sslConfig.getClientTrustCertCollectionPathStream() != null) {\n-                builder.trustManager(sslConfig.getClientTrustCertCollectionPathStream());\n-            }\n-\n-            InputStream clientCertChainFilePath = sslConfig.getClientKeyCertChainPathStream();\n-            InputStream clientPrivateKeyFilePath = sslConfig.getClientPrivateKeyPathStream();\n-            if (clientCertChainFilePath != null && clientPrivateKeyFilePath != null) {\n-                String password = sslConfig.getClientKeyPassword();\n-                if (password != null) {\n-                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath, password);\n-                } else {\n-                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath);\n-                }\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Could not find certificate file or find invalid certificate.\", e);\n-        }\n-        try {\n-            return builder.sslProvider(findSslProvider()).build();\n-        } catch (SSLException e) {\n-            throw new IllegalStateException(\"Build SslSession failed.\", e);\n-        }\n-    }\n-\n-    /**\n-     * Returns OpenSSL if available, otherwise returns the JDK provider.\n-     */\n-    private static SslProvider findSslProvider() {\n-        if (OpenSsl.isAvailable()) {\n-            logger.info(\"Using OPENSSL provider.\");\n-            return SslProvider.OPENSSL;\n-        } else if (checkJdkProvider()) {\n-            logger.info(\"Using JDK provider.\");\n-            return SslProvider.JDK;\n-        }\n-        throw new IllegalStateException(\n-                \"Could not find any valid TLS provider, please check your dependency or deployment environment, \" +\n-                        \"usually netty-tcnative, Conscrypt, or Jetty NPN/ALPN is needed.\");\n-    }\n-\n-    private static boolean checkJdkProvider() {\n-        Provider[] jdkProviders = Security.getProviders(\"SSLContext.TLS\");\n-        return (jdkProviders != null && jdkProviders.length > 0);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+\r\n+import io.netty.handler.ssl.ClientAuth;\r\n+import io.netty.handler.ssl.OpenSsl;\r\n+import io.netty.handler.ssl.SslContext;\r\n+import io.netty.handler.ssl.SslContextBuilder;\r\n+import io.netty.handler.ssl.SslProvider;\r\n+\r\n+import javax.net.ssl.SSLException;\r\n+import java.io.InputStream;\r\n+import java.security.Provider;\r\n+import java.security.Security;\r\n+\r\n+public class SslContexts {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(SslContexts.class);\r\n+\r\n+    public static SslContext buildServerSslContext(URL url) {\r\n+        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\r\n+        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\r\n+\r\n+        SslContextBuilder sslClientContextBuilder = null;\r\n+        try {\r\n+            String password = sslConfig.getServerKeyPassword();\r\n+            if (password != null) {\r\n+                sslClientContextBuilder = SslContextBuilder.forServer(sslConfig.getServerKeyCertChainPathStream(),\r\n+                        sslConfig.getServerPrivateKeyPathStream(), password);\r\n+            } else {\r\n+                sslClientContextBuilder = SslContextBuilder.forServer(sslConfig.getServerKeyCertChainPathStream(),\r\n+                        sslConfig.getServerPrivateKeyPathStream());\r\n+            }\r\n+\r\n+            if (sslConfig.getServerTrustCertCollectionPathStream() != null) {\r\n+                sslClientContextBuilder.trustManager(sslConfig.getServerTrustCertCollectionPathStream());\r\n+                sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Could not find certificate file or the certificate is invalid.\", e);\r\n+        }\r\n+        try {\r\n+            return sslClientContextBuilder.sslProvider(findSslProvider()).build();\r\n+        } catch (SSLException e) {\r\n+            throw new IllegalStateException(\"Build SslSession failed.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    public static SslContext buildClientSslContext(URL url) {\r\n+        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\r\n+        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\r\n+\r\n+        SslContextBuilder builder = SslContextBuilder.forClient();\r\n+        try {\r\n+            if (sslConfig.getClientTrustCertCollectionPathStream() != null) {\r\n+                builder.trustManager(sslConfig.getClientTrustCertCollectionPathStream());\r\n+            }\r\n+\r\n+            InputStream clientCertChainFilePath = sslConfig.getClientKeyCertChainPathStream();\r\n+            InputStream clientPrivateKeyFilePath = sslConfig.getClientPrivateKeyPathStream();\r\n+            if (clientCertChainFilePath != null && clientPrivateKeyFilePath != null) {\r\n+                String password = sslConfig.getClientKeyPassword();\r\n+                if (password != null) {\r\n+                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath, password);\r\n+                } else {\r\n+                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath);\r\n+                }\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Could not find certificate file or find invalid certificate.\", e);\r\n+        }\r\n+        try {\r\n+            return builder.sslProvider(findSslProvider()).build();\r\n+        } catch (SSLException e) {\r\n+            throw new IllegalStateException(\"Build SslSession failed.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns OpenSSL if available, otherwise returns the JDK provider.\r\n+     */\r\n+    private static SslProvider findSslProvider() {\r\n+        if (OpenSsl.isAvailable()) {\r\n+            logger.info(\"Using OPENSSL provider.\");\r\n+            return SslProvider.OPENSSL;\r\n+        } else if (checkJdkProvider()) {\r\n+            logger.info(\"Using JDK provider.\");\r\n+            return SslProvider.JDK;\r\n+        }\r\n+        throw new IllegalStateException(\r\n+                \"Could not find any valid TLS provider, please check your dependency or deployment environment, \" +\r\n+                        \"usually netty-tcnative, Conscrypt, or Jetty NPN/ALPN is needed.\");\r\n+    }\r\n+\r\n+    private static boolean checkJdkProvider() {\r\n+        Provider[] jdkProviders = Security.getProviders(\"SSLContext.TLS\");\r\n+        return (jdkProviders != null && jdkProviders.length > 0);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/SslHandlerInitializer.java", "source2": "org/apache/dubbo/remoting/transport/netty4/SslHandlerInitializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,141 +1,141 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import io.netty.channel.ChannelHandlerContext;\n-import io.netty.channel.ChannelInboundHandler;\n-import io.netty.channel.ChannelInboundHandlerAdapter;\n-import io.netty.handler.ssl.SslContext;\n-import io.netty.handler.ssl.SslHandler;\n-import io.netty.handler.ssl.SslHandshakeCompletionEvent;\n-\n-import javax.net.ssl.SSLEngine;\n-import javax.net.ssl.SSLSession;\n-\n-/**\n- * Handshake, SSl and Protocol\n- */\n-public class SslHandlerInitializer {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(SslHandlerInitializer.class);\n-\n-    public static ChannelInboundHandler sslServerHandler(URL url, NettyServerHandler serverHandler) {\n-        // Decorate if necessary\n-        return new SslServerTlsHandler(url, serverHandler);\n-    }\n-\n-    public static ChannelInboundHandler sslClientHandler(URL url, NettyClientHandler clientHandler) {\n-        return new SslClientTlsHandler(url, clientHandler);\n-    }\n-\n-    public static class SslServerTlsHandler extends ChannelInboundHandlerAdapter {\n-\n-        private final SslContext sslContext;\n-        private final NettyServerHandler serverHandler;\n-\n-        SslServerTlsHandler(URL url, NettyServerHandler serverHandler) {\n-            this.sslContext = SslContexts.buildServerSslContext(url);\n-            this.serverHandler = serverHandler;\n-        }\n-\n-        @Override\n-        public void handlerAdded(ChannelHandlerContext ctx) throws Exception {\n-            super.handlerAdded(ctx);\n-\n-            SSLEngine sslEngine = sslContext.newEngine(ctx.alloc());\n-            ctx.pipeline().addFirst(new SslHandler(sslEngine, false));\n-        }\n-\n-        @Override\n-        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {\n-            logger.error(\"TLS negotiation failed when trying to accept new connection.\", cause);\n-        }\n-\n-        @Override\n-        public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-            if (evt instanceof SslHandshakeCompletionEvent) {\n-                SslHandshakeCompletionEvent handshakeEvent = (SslHandshakeCompletionEvent) evt;\n-                if (handshakeEvent.isSuccess()) {\n-                    SSLSession session = ctx.pipeline().get(SslHandler.class).engine().getSession();\n-                    logger.info(\"TLS negotiation succeed with session: \" + session);\n-                    serverHandler.handshakeCompleted(new HandshakeCompletionEvent(session, ctx));\n-                    // Remove after handshake success.\n-                    ctx.pipeline().remove(this);\n-                } else {\n-                    logger.error(\"TLS negotiation failed when trying to accept new connection.\", handshakeEvent.cause());\n-                    ctx.close();\n-                }\n-            }\n-            super.userEventTriggered(ctx, evt);\n-        }\n-    }\n-\n-    public static class SslClientTlsHandler extends ChannelInboundHandlerAdapter {\n-\n-        private final SslContext sslContext;\n-        private final NettyClientHandler clientHandler;\n-\n-        public SslClientTlsHandler(URL url, NettyClientHandler clientHandler) {\n-            this.sslContext = SslContexts.buildClientSslContext(url);\n-            this.clientHandler = clientHandler;\n-        }\n-\n-        @Override\n-        public void handlerAdded(ChannelHandlerContext ctx) {\n-            SSLEngine sslEngine = sslContext.newEngine(ctx.alloc());\n-            ctx.pipeline().addBefore(ctx.name(), null, new SslHandler(sslEngine, false));\n-        }\n-\n-        @Override\n-        public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\n-            if (evt instanceof SslHandshakeCompletionEvent) {\n-                SslHandshakeCompletionEvent handshakeEvent = (SslHandshakeCompletionEvent) evt;\n-                if (handshakeEvent.isSuccess()) {\n-                    SSLSession session = ctx.pipeline().get(SslHandler.class).engine().getSession();\n-                    logger.info(\"TLS negotiation succeed with session: \" + session);\n-                    clientHandler.handshakeCompleted(new HandshakeCompletionEvent(session, ctx));\n-                    ctx.pipeline().remove(this);\n-                } else {\n-                    logger.error(\"TLS negotiation failed when trying to accept new connection.\", handshakeEvent.cause());\n-                    ctx.fireExceptionCaught(handshakeEvent.cause());\n-                }\n-            }\n-        }\n-    }\n-\n-    public static class HandshakeCompletionEvent {\n-        private final SSLSession sslSession;\n-        private final ChannelHandlerContext ctx;\n-\n-        public HandshakeCompletionEvent(SSLSession sslSession, ChannelHandlerContext ctx) {\n-            this.sslSession = sslSession;\n-            this.ctx = ctx;\n-        }\n-\n-        public SSLSession getSslSession() {\n-            return sslSession;\n-        }\n-\n-        public ChannelHandlerContext getCtx() {\n-            return ctx;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import io.netty.channel.ChannelHandlerContext;\r\n+import io.netty.channel.ChannelInboundHandler;\r\n+import io.netty.channel.ChannelInboundHandlerAdapter;\r\n+import io.netty.handler.ssl.SslContext;\r\n+import io.netty.handler.ssl.SslHandler;\r\n+import io.netty.handler.ssl.SslHandshakeCompletionEvent;\r\n+\r\n+import javax.net.ssl.SSLEngine;\r\n+import javax.net.ssl.SSLSession;\r\n+\r\n+/**\r\n+ * Handshake, SSl and Protocol\r\n+ */\r\n+public class SslHandlerInitializer {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(SslHandlerInitializer.class);\r\n+\r\n+    public static ChannelInboundHandler sslServerHandler(URL url, NettyServerHandler serverHandler) {\r\n+        // Decorate if necessary\r\n+        return new SslServerTlsHandler(url, serverHandler);\r\n+    }\r\n+\r\n+    public static ChannelInboundHandler sslClientHandler(URL url, NettyClientHandler clientHandler) {\r\n+        return new SslClientTlsHandler(url, clientHandler);\r\n+    }\r\n+\r\n+    public static class SslServerTlsHandler extends ChannelInboundHandlerAdapter {\r\n+\r\n+        private final SslContext sslContext;\r\n+        private final NettyServerHandler serverHandler;\r\n+\r\n+        SslServerTlsHandler(URL url, NettyServerHandler serverHandler) {\r\n+            this.sslContext = SslContexts.buildServerSslContext(url);\r\n+            this.serverHandler = serverHandler;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void handlerAdded(ChannelHandlerContext ctx) throws Exception {\r\n+            super.handlerAdded(ctx);\r\n+\r\n+            SSLEngine sslEngine = sslContext.newEngine(ctx.alloc());\r\n+            ctx.pipeline().addFirst(new SslHandler(sslEngine, false));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) throws Exception {\r\n+            logger.error(\"TLS negotiation failed when trying to accept new connection.\", cause);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+            if (evt instanceof SslHandshakeCompletionEvent) {\r\n+                SslHandshakeCompletionEvent handshakeEvent = (SslHandshakeCompletionEvent) evt;\r\n+                if (handshakeEvent.isSuccess()) {\r\n+                    SSLSession session = ctx.pipeline().get(SslHandler.class).engine().getSession();\r\n+                    logger.info(\"TLS negotiation succeed with session: \" + session);\r\n+                    serverHandler.handshakeCompleted(new HandshakeCompletionEvent(session, ctx));\r\n+                    // Remove after handshake success.\r\n+                    ctx.pipeline().remove(this);\r\n+                } else {\r\n+                    logger.error(\"TLS negotiation failed when trying to accept new connection.\", handshakeEvent.cause());\r\n+                    ctx.close();\r\n+                }\r\n+            }\r\n+            super.userEventTriggered(ctx, evt);\r\n+        }\r\n+    }\r\n+\r\n+    public static class SslClientTlsHandler extends ChannelInboundHandlerAdapter {\r\n+\r\n+        private final SslContext sslContext;\r\n+        private final NettyClientHandler clientHandler;\r\n+\r\n+        public SslClientTlsHandler(URL url, NettyClientHandler clientHandler) {\r\n+            this.sslContext = SslContexts.buildClientSslContext(url);\r\n+            this.clientHandler = clientHandler;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void handlerAdded(ChannelHandlerContext ctx) {\r\n+            SSLEngine sslEngine = sslContext.newEngine(ctx.alloc());\r\n+            ctx.pipeline().addBefore(ctx.name(), null, new SslHandler(sslEngine, false));\r\n+        }\r\n+\r\n+        @Override\r\n+        public void userEventTriggered(ChannelHandlerContext ctx, Object evt) throws Exception {\r\n+            if (evt instanceof SslHandshakeCompletionEvent) {\r\n+                SslHandshakeCompletionEvent handshakeEvent = (SslHandshakeCompletionEvent) evt;\r\n+                if (handshakeEvent.isSuccess()) {\r\n+                    SSLSession session = ctx.pipeline().get(SslHandler.class).engine().getSession();\r\n+                    logger.info(\"TLS negotiation succeed with session: \" + session);\r\n+                    clientHandler.handshakeCompleted(new HandshakeCompletionEvent(session, ctx));\r\n+                    ctx.pipeline().remove(this);\r\n+                } else {\r\n+                    logger.error(\"TLS negotiation failed when trying to accept new connection.\", handshakeEvent.cause());\r\n+                    ctx.fireExceptionCaught(handshakeEvent.cause());\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static class HandshakeCompletionEvent {\r\n+        private final SSLSession sslSession;\r\n+        private final ChannelHandlerContext ctx;\r\n+\r\n+        public HandshakeCompletionEvent(SSLSession sslSession, ChannelHandlerContext ctx) {\r\n+            this.sslSession = sslSession;\r\n+            this.ctx = ctx;\r\n+        }\r\n+\r\n+        public SSLSession getSslSession() {\r\n+            return sslSession;\r\n+        }\r\n+\r\n+        public ChannelHandlerContext getCtx() {\r\n+            return ctx;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/transport/netty4/logging/MessageFormatter.java", "source2": "org/apache/dubbo/remoting/transport/netty4/logging/MessageFormatter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,410 +1,410 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.transport.netty4.logging;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-\n-import java.text.MessageFormat;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-// contributors: lizongbo: proposed special treatment of array parameter values\n-// Joern Huxhorn: pointed out double[] omission, suggested deep array copy\n-\n-/**\n- * Formats messages according to very simple substitution rules. Substitutions\n- * can be made 1, 2 or more arguments.\n- * <p/>\n- * <p/>\n- * For example,\n- * <p/>\n- * <pre>\n- * MessageFormatter.format(&quot;Hi {}.&quot;, &quot;there&quot;)\n- * </pre>\n- * <p/>\n- * will return the string \"Hi there.\".\n- * <p/>\n- * The {} pair is called the <em>formatting anchor</em>. It serves to designate\n- * the location where arguments need to be substituted within the message\n- * pattern.\n- * <p/>\n- * In case your message contains the '{' or the '}' character, you do not have\n- * to do anything special unless the '}' character immediately follows '{'. For\n- * example,\n- * <p/>\n- * <pre>\n- * MessageFormatter.format(&quot;Set {1,2,3} is not equal to {}.&quot;, &quot;1,2&quot;);\n- * </pre>\n- * <p/>\n- * will return the string \"Set {1,2,3} is not equal to 1,2.\".\n- * <p/>\n- * <p/>\n- * If for whatever reason you need to place the string \"{}\" in the message\n- * without its <em>formatting anchor</em> meaning, then you need to escape the\n- * '{' character with '\\', that is the backslash character. Only the '{'\n- * character should be escaped. There is no need to escape the '}' character.\n- * For example,\n- * <p/>\n- * <pre>\n- * MessageFormatter.format(&quot;Set \\\\{} is not equal to {}.&quot;, &quot;1,2&quot;);\n- * </pre>\n- * <p/>\n- * will return the string \"Set {} is not equal to 1,2.\".\n- * <p/>\n- * <p/>\n- * The escaping behavior just described can be overridden by escaping the escape\n- * character '\\'. Calling\n- * <p/>\n- * <pre>\n- * MessageFormatter.format(&quot;File name is C:\\\\\\\\{}.&quot;, &quot;file.zip&quot;);\n- * </pre>\n- * <p/>\n- * will return the string \"File name is C:\\file.zip\".\n- * <p/>\n- * <p/>\n- * The formatting conventions are different than those of {@link MessageFormat}\n- * which ships with the Java platform. This is justified by the fact that\n- * SLF4J's implementation is 10 times faster than that of {@link MessageFormat}.\n- * This local performance difference is both measurable and significant in the\n- * larger context of the complete logging processing chain.\n- * <p/>\n- * <p/>\n- * See also {@link #format(String, Object)},\n- * {@link #format(String, Object, Object)} and\n- * {@link #arrayFormat(String, Object[])} methods for more details.\n- */\n-final class MessageFormatter {\n-    private static final Logger logger = LoggerFactory.getLogger(MessageFormatter.class);\n-    static final char DELIM_START = '{';\n-    static final char DELIM_STOP = '}';\n-    static final String DELIM_STR = \"{}\";\n-    private static final char ESCAPE_CHAR = '\\\\';\n-\n-    /**\n-     * Performs single argument substitution for the 'messagePattern' passed as\n-     * parameter.\n-     * <p/>\n-     * For example,\n-     * <p/>\n-     * <pre>\n-     * MessageFormatter.format(&quot;Hi {}.&quot;, &quot;there&quot;);\n-     * </pre>\n-     * <p/>\n-     * will return the string \"Hi there.\".\n-     * <p/>\n-     *\n-     * @param messagePattern The message pattern which will be parsed and formatted\n-     * @param arg            The argument to be substituted in place of the formatting anchor\n-     * @return The formatted message\n-     */\n-    static FormattingTuple format(String messagePattern, Object arg) {\n-        return arrayFormat(messagePattern, new Object[]{arg});\n-    }\n-\n-    /**\n-     * Performs a two argument substitution for the 'messagePattern' passed as\n-     * parameter.\n-     * <p/>\n-     * For example,\n-     * <p/>\n-     * <pre>\n-     * MessageFormatter.format(&quot;Hi {}. My name is {}.&quot;, &quot;Alice&quot;, &quot;Bob&quot;);\n-     * </pre>\n-     * <p/>\n-     * will return the string \"Hi Alice. My name is Bob.\".\n-     *\n-     * @param messagePattern The message pattern which will be parsed and formatted\n-     * @param argA           The argument to be substituted in place of the first formatting\n-     *                       anchor\n-     * @param argB           The argument to be substituted in place of the second formatting\n-     *                       anchor\n-     * @return The formatted message\n-     */\n-    static FormattingTuple format(final String messagePattern,\n-                                  Object argA, Object argB) {\n-        return arrayFormat(messagePattern, new Object[]{argA, argB});\n-    }\n-\n-    static Throwable getThrowableCandidate(Object[] argArray) {\n-        if (ArrayUtils.isEmpty(argArray)) {\n-            return null;\n-        }\n-\n-        final Object lastEntry = argArray[argArray.length - 1];\n-        if (lastEntry instanceof Throwable) {\n-            return (Throwable) lastEntry;\n-        }\n-        return null;\n-    }\n-\n-    /**\n-     * Same principle as the {@link #format(String, Object)} and\n-     * {@link #format(String, Object, Object)} methods except that any number of\n-     * arguments can be passed in an array.\n-     *\n-     * @param messagePattern The message pattern which will be parsed and formatted\n-     * @param argArray       An array of arguments to be substituted in place of formatting\n-     *                       anchors\n-     * @return The formatted message\n-     */\n-    static FormattingTuple arrayFormat(final String messagePattern,\n-                                       final Object[] argArray) {\n-\n-        Throwable throwableCandidate = getThrowableCandidate(argArray);\n-\n-        if (messagePattern == null) {\n-            return new FormattingTuple(null, argArray, throwableCandidate);\n-        }\n-\n-        if (argArray == null) {\n-            return new FormattingTuple(messagePattern);\n-        }\n-\n-        int i = 0;\n-        int j;\n-        StringBuffer sbuf = new StringBuffer(messagePattern.length() + 50);\n-\n-        int l;\n-        for (l = 0; l < argArray.length; l++) {\n-\n-            j = messagePattern.indexOf(DELIM_STR, i);\n-\n-            if (j == -1) {\n-                // no more variables\n-                if (i == 0) { // this is a simple string\n-                    return new FormattingTuple(messagePattern, argArray,\n-                            throwableCandidate);\n-                } else { // add the tail string which contains no variables and return\n-                    // the result.\n-                    sbuf.append(messagePattern.substring(i));\n-                    return new FormattingTuple(sbuf.toString(), argArray,\n-                            throwableCandidate);\n-                }\n-            } else {\n-                if (isEscapedDelimiter(messagePattern, j)) {\n-                    if (!isDoubleEscaped(messagePattern, j)) {\n-                        l--; // DELIM_START was escaped, thus should not be incremented\n-                        sbuf.append(messagePattern, i, j - 1);\n-                        sbuf.append(DELIM_START);\n-                        i = j + 1;\n-                    } else {\n-                        // The escape character preceding the delimiter start is\n-                        // itself escaped: \"abc x:\\\\{}\"\n-                        // we have to consume one backward slash\n-                        sbuf.append(messagePattern, i, j - 1);\n-                        deeplyAppendParameter(sbuf, argArray[l], new HashMap<Object[], Void>());\n-                        i = j + 2;\n-                    }\n-                } else {\n-                    // normal case\n-                    sbuf.append(messagePattern, i, j);\n-                    deeplyAppendParameter(sbuf, argArray[l], new HashMap<Object[], Void>());\n-                    i = j + 2;\n-                }\n-            }\n-        }\n-        // append the characters following the last {} pair.\n-        sbuf.append(messagePattern.substring(i));\n-        if (l < argArray.length - 1) {\n-            return new FormattingTuple(sbuf.toString(), argArray, throwableCandidate);\n-        } else {\n-            return new FormattingTuple(sbuf.toString(), argArray, null);\n-        }\n-    }\n-\n-    static boolean isEscapedDelimiter(String messagePattern,\n-                                      int delimiterStartIndex) {\n-\n-        if (delimiterStartIndex == 0) {\n-            return false;\n-        }\n-        return messagePattern.charAt(delimiterStartIndex - 1) == ESCAPE_CHAR;\n-    }\n-\n-    static boolean isDoubleEscaped(String messagePattern,\n-                                   int delimiterStartIndex) {\n-        return delimiterStartIndex >= 2 && messagePattern.charAt(delimiterStartIndex - 2) == ESCAPE_CHAR;\n-    }\n-\n-    // special treatment of array values was suggested by 'lizongbo'\n-    private static void deeplyAppendParameter(StringBuffer sbuf, Object o,\n-                                              Map<Object[], Void> seenMap) {\n-        if (o == null) {\n-            sbuf.append(\"null\");\n-            return;\n-        }\n-        if (!o.getClass().isArray()) {\n-            safeObjectAppend(sbuf, o);\n-        } else {\n-            // check for primitive array types because they\n-            // unfortunately cannot be cast to Object[]\n-            if (o instanceof boolean[]) {\n-                booleanArrayAppend(sbuf, (boolean[]) o);\n-            } else if (o instanceof byte[]) {\n-                byteArrayAppend(sbuf, (byte[]) o);\n-            } else if (o instanceof char[]) {\n-                charArrayAppend(sbuf, (char[]) o);\n-            } else if (o instanceof short[]) {\n-                shortArrayAppend(sbuf, (short[]) o);\n-            } else if (o instanceof int[]) {\n-                intArrayAppend(sbuf, (int[]) o);\n-            } else if (o instanceof long[]) {\n-                longArrayAppend(sbuf, (long[]) o);\n-            } else if (o instanceof float[]) {\n-                floatArrayAppend(sbuf, (float[]) o);\n-            } else if (o instanceof double[]) {\n-                doubleArrayAppend(sbuf, (double[]) o);\n-            } else {\n-                objectArrayAppend(sbuf, (Object[]) o, seenMap);\n-            }\n-        }\n-    }\n-\n-    private static void safeObjectAppend(StringBuffer sbuf, Object o) {\n-        try {\n-            String oAsString = o.toString();\n-            sbuf.append(oAsString);\n-        } catch (Throwable t) {\n-            System.err\n-                    .println(\"SLF4J: Failed toString() invocation on an object of type [\"\n-                            + o.getClass().getName() + ']');\n-            logger.error(t.getMessage(), t);\n-            sbuf.append(\"[FAILED toString()]\");\n-        }\n-    }\n-\n-    private static void objectArrayAppend(StringBuffer sbuf, Object[] a,\n-                                          Map<Object[], Void> seenMap) {\n-        sbuf.append('[');\n-        if (!seenMap.containsKey(a)) {\n-            seenMap.put(a, null);\n-            final int len = a.length;\n-            for (int i = 0; i < len; i++) {\n-                deeplyAppendParameter(sbuf, a[i], seenMap);\n-                if (i != len - 1) {\n-                    sbuf.append(\", \");\n-                }\n-            }\n-            // allow repeats in siblings\n-            seenMap.remove(a);\n-        } else {\n-            sbuf.append(\"...\");\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void booleanArrayAppend(StringBuffer sbuf, boolean[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void byteArrayAppend(StringBuffer sbuf, byte[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void charArrayAppend(StringBuffer sbuf, char[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void shortArrayAppend(StringBuffer sbuf, short[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void intArrayAppend(StringBuffer sbuf, int[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void longArrayAppend(StringBuffer sbuf, long[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void floatArrayAppend(StringBuffer sbuf, float[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private static void doubleArrayAppend(StringBuffer sbuf, double[] a) {\n-        sbuf.append('[');\n-        final int len = a.length;\n-        for (int i = 0; i < len; i++) {\n-            sbuf.append(a[i]);\n-            if (i != len - 1) {\n-                sbuf.append(\", \");\n-            }\n-        }\n-        sbuf.append(']');\n-    }\n-\n-    private MessageFormatter() {\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.transport.netty4.logging;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+\r\n+import java.text.MessageFormat;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+// contributors: lizongbo: proposed special treatment of array parameter values\r\n+// Joern Huxhorn: pointed out double[] omission, suggested deep array copy\r\n+\r\n+/**\r\n+ * Formats messages according to very simple substitution rules. Substitutions\r\n+ * can be made 1, 2 or more arguments.\r\n+ * <p/>\r\n+ * <p/>\r\n+ * For example,\r\n+ * <p/>\r\n+ * <pre>\r\n+ * MessageFormatter.format(&quot;Hi {}.&quot;, &quot;there&quot;)\r\n+ * </pre>\r\n+ * <p/>\r\n+ * will return the string \"Hi there.\".\r\n+ * <p/>\r\n+ * The {} pair is called the <em>formatting anchor</em>. It serves to designate\r\n+ * the location where arguments need to be substituted within the message\r\n+ * pattern.\r\n+ * <p/>\r\n+ * In case your message contains the '{' or the '}' character, you do not have\r\n+ * to do anything special unless the '}' character immediately follows '{'. For\r\n+ * example,\r\n+ * <p/>\r\n+ * <pre>\r\n+ * MessageFormatter.format(&quot;Set {1,2,3} is not equal to {}.&quot;, &quot;1,2&quot;);\r\n+ * </pre>\r\n+ * <p/>\r\n+ * will return the string \"Set {1,2,3} is not equal to 1,2.\".\r\n+ * <p/>\r\n+ * <p/>\r\n+ * If for whatever reason you need to place the string \"{}\" in the message\r\n+ * without its <em>formatting anchor</em> meaning, then you need to escape the\r\n+ * '{' character with '\\', that is the backslash character. Only the '{'\r\n+ * character should be escaped. There is no need to escape the '}' character.\r\n+ * For example,\r\n+ * <p/>\r\n+ * <pre>\r\n+ * MessageFormatter.format(&quot;Set \\\\{} is not equal to {}.&quot;, &quot;1,2&quot;);\r\n+ * </pre>\r\n+ * <p/>\r\n+ * will return the string \"Set {} is not equal to 1,2.\".\r\n+ * <p/>\r\n+ * <p/>\r\n+ * The escaping behavior just described can be overridden by escaping the escape\r\n+ * character '\\'. Calling\r\n+ * <p/>\r\n+ * <pre>\r\n+ * MessageFormatter.format(&quot;File name is C:\\\\\\\\{}.&quot;, &quot;file.zip&quot;);\r\n+ * </pre>\r\n+ * <p/>\r\n+ * will return the string \"File name is C:\\file.zip\".\r\n+ * <p/>\r\n+ * <p/>\r\n+ * The formatting conventions are different than those of {@link MessageFormat}\r\n+ * which ships with the Java platform. This is justified by the fact that\r\n+ * SLF4J's implementation is 10 times faster than that of {@link MessageFormat}.\r\n+ * This local performance difference is both measurable and significant in the\r\n+ * larger context of the complete logging processing chain.\r\n+ * <p/>\r\n+ * <p/>\r\n+ * See also {@link #format(String, Object)},\r\n+ * {@link #format(String, Object, Object)} and\r\n+ * {@link #arrayFormat(String, Object[])} methods for more details.\r\n+ */\r\n+final class MessageFormatter {\r\n+    private static final Logger logger = LoggerFactory.getLogger(MessageFormatter.class);\r\n+    static final char DELIM_START = '{';\r\n+    static final char DELIM_STOP = '}';\r\n+    static final String DELIM_STR = \"{}\";\r\n+    private static final char ESCAPE_CHAR = '\\\\';\r\n+\r\n+    /**\r\n+     * Performs single argument substitution for the 'messagePattern' passed as\r\n+     * parameter.\r\n+     * <p/>\r\n+     * For example,\r\n+     * <p/>\r\n+     * <pre>\r\n+     * MessageFormatter.format(&quot;Hi {}.&quot;, &quot;there&quot;);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * will return the string \"Hi there.\".\r\n+     * <p/>\r\n+     *\r\n+     * @param messagePattern The message pattern which will be parsed and formatted\r\n+     * @param arg            The argument to be substituted in place of the formatting anchor\r\n+     * @return The formatted message\r\n+     */\r\n+    static FormattingTuple format(String messagePattern, Object arg) {\r\n+        return arrayFormat(messagePattern, new Object[]{arg});\r\n+    }\r\n+\r\n+    /**\r\n+     * Performs a two argument substitution for the 'messagePattern' passed as\r\n+     * parameter.\r\n+     * <p/>\r\n+     * For example,\r\n+     * <p/>\r\n+     * <pre>\r\n+     * MessageFormatter.format(&quot;Hi {}. My name is {}.&quot;, &quot;Alice&quot;, &quot;Bob&quot;);\r\n+     * </pre>\r\n+     * <p/>\r\n+     * will return the string \"Hi Alice. My name is Bob.\".\r\n+     *\r\n+     * @param messagePattern The message pattern which will be parsed and formatted\r\n+     * @param argA           The argument to be substituted in place of the first formatting\r\n+     *                       anchor\r\n+     * @param argB           The argument to be substituted in place of the second formatting\r\n+     *                       anchor\r\n+     * @return The formatted message\r\n+     */\r\n+    static FormattingTuple format(final String messagePattern,\r\n+                                  Object argA, Object argB) {\r\n+        return arrayFormat(messagePattern, new Object[]{argA, argB});\r\n+    }\r\n+\r\n+    static Throwable getThrowableCandidate(Object[] argArray) {\r\n+        if (ArrayUtils.isEmpty(argArray)) {\r\n+            return null;\r\n+        }\r\n+\r\n+        final Object lastEntry = argArray[argArray.length - 1];\r\n+        if (lastEntry instanceof Throwable) {\r\n+            return (Throwable) lastEntry;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Same principle as the {@link #format(String, Object)} and\r\n+     * {@link #format(String, Object, Object)} methods except that any number of\r\n+     * arguments can be passed in an array.\r\n+     *\r\n+     * @param messagePattern The message pattern which will be parsed and formatted\r\n+     * @param argArray       An array of arguments to be substituted in place of formatting\r\n+     *                       anchors\r\n+     * @return The formatted message\r\n+     */\r\n+    static FormattingTuple arrayFormat(final String messagePattern,\r\n+                                       final Object[] argArray) {\r\n+\r\n+        Throwable throwableCandidate = getThrowableCandidate(argArray);\r\n+\r\n+        if (messagePattern == null) {\r\n+            return new FormattingTuple(null, argArray, throwableCandidate);\r\n+        }\r\n+\r\n+        if (argArray == null) {\r\n+            return new FormattingTuple(messagePattern);\r\n+        }\r\n+\r\n+        int i = 0;\r\n+        int j;\r\n+        StringBuffer sbuf = new StringBuffer(messagePattern.length() + 50);\r\n+\r\n+        int l;\r\n+        for (l = 0; l < argArray.length; l++) {\r\n+\r\n+            j = messagePattern.indexOf(DELIM_STR, i);\r\n+\r\n+            if (j == -1) {\r\n+                // no more variables\r\n+                if (i == 0) { // this is a simple string\r\n+                    return new FormattingTuple(messagePattern, argArray,\r\n+                            throwableCandidate);\r\n+                } else { // add the tail string which contains no variables and return\r\n+                    // the result.\r\n+                    sbuf.append(messagePattern.substring(i));\r\n+                    return new FormattingTuple(sbuf.toString(), argArray,\r\n+                            throwableCandidate);\r\n+                }\r\n+            } else {\r\n+                if (isEscapedDelimiter(messagePattern, j)) {\r\n+                    if (!isDoubleEscaped(messagePattern, j)) {\r\n+                        l--; // DELIM_START was escaped, thus should not be incremented\r\n+                        sbuf.append(messagePattern, i, j - 1);\r\n+                        sbuf.append(DELIM_START);\r\n+                        i = j + 1;\r\n+                    } else {\r\n+                        // The escape character preceding the delimiter start is\r\n+                        // itself escaped: \"abc x:\\\\{}\"\r\n+                        // we have to consume one backward slash\r\n+                        sbuf.append(messagePattern, i, j - 1);\r\n+                        deeplyAppendParameter(sbuf, argArray[l], new HashMap<Object[], Void>());\r\n+                        i = j + 2;\r\n+                    }\r\n+                } else {\r\n+                    // normal case\r\n+                    sbuf.append(messagePattern, i, j);\r\n+                    deeplyAppendParameter(sbuf, argArray[l], new HashMap<Object[], Void>());\r\n+                    i = j + 2;\r\n+                }\r\n+            }\r\n+        }\r\n+        // append the characters following the last {} pair.\r\n+        sbuf.append(messagePattern.substring(i));\r\n+        if (l < argArray.length - 1) {\r\n+            return new FormattingTuple(sbuf.toString(), argArray, throwableCandidate);\r\n+        } else {\r\n+            return new FormattingTuple(sbuf.toString(), argArray, null);\r\n+        }\r\n+    }\r\n+\r\n+    static boolean isEscapedDelimiter(String messagePattern,\r\n+                                      int delimiterStartIndex) {\r\n+\r\n+        if (delimiterStartIndex == 0) {\r\n+            return false;\r\n+        }\r\n+        return messagePattern.charAt(delimiterStartIndex - 1) == ESCAPE_CHAR;\r\n+    }\r\n+\r\n+    static boolean isDoubleEscaped(String messagePattern,\r\n+                                   int delimiterStartIndex) {\r\n+        return delimiterStartIndex >= 2 && messagePattern.charAt(delimiterStartIndex - 2) == ESCAPE_CHAR;\r\n+    }\r\n+\r\n+    // special treatment of array values was suggested by 'lizongbo'\r\n+    private static void deeplyAppendParameter(StringBuffer sbuf, Object o,\r\n+                                              Map<Object[], Void> seenMap) {\r\n+        if (o == null) {\r\n+            sbuf.append(\"null\");\r\n+            return;\r\n+        }\r\n+        if (!o.getClass().isArray()) {\r\n+            safeObjectAppend(sbuf, o);\r\n+        } else {\r\n+            // check for primitive array types because they\r\n+            // unfortunately cannot be cast to Object[]\r\n+            if (o instanceof boolean[]) {\r\n+                booleanArrayAppend(sbuf, (boolean[]) o);\r\n+            } else if (o instanceof byte[]) {\r\n+                byteArrayAppend(sbuf, (byte[]) o);\r\n+            } else if (o instanceof char[]) {\r\n+                charArrayAppend(sbuf, (char[]) o);\r\n+            } else if (o instanceof short[]) {\r\n+                shortArrayAppend(sbuf, (short[]) o);\r\n+            } else if (o instanceof int[]) {\r\n+                intArrayAppend(sbuf, (int[]) o);\r\n+            } else if (o instanceof long[]) {\r\n+                longArrayAppend(sbuf, (long[]) o);\r\n+            } else if (o instanceof float[]) {\r\n+                floatArrayAppend(sbuf, (float[]) o);\r\n+            } else if (o instanceof double[]) {\r\n+                doubleArrayAppend(sbuf, (double[]) o);\r\n+            } else {\r\n+                objectArrayAppend(sbuf, (Object[]) o, seenMap);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private static void safeObjectAppend(StringBuffer sbuf, Object o) {\r\n+        try {\r\n+            String oAsString = o.toString();\r\n+            sbuf.append(oAsString);\r\n+        } catch (Throwable t) {\r\n+            System.err\r\n+                    .println(\"SLF4J: Failed toString() invocation on an object of type [\"\r\n+                            + o.getClass().getName() + ']');\r\n+            logger.error(t.getMessage(), t);\r\n+            sbuf.append(\"[FAILED toString()]\");\r\n+        }\r\n+    }\r\n+\r\n+    private static void objectArrayAppend(StringBuffer sbuf, Object[] a,\r\n+                                          Map<Object[], Void> seenMap) {\r\n+        sbuf.append('[');\r\n+        if (!seenMap.containsKey(a)) {\r\n+            seenMap.put(a, null);\r\n+            final int len = a.length;\r\n+            for (int i = 0; i < len; i++) {\r\n+                deeplyAppendParameter(sbuf, a[i], seenMap);\r\n+                if (i != len - 1) {\r\n+                    sbuf.append(\", \");\r\n+                }\r\n+            }\r\n+            // allow repeats in siblings\r\n+            seenMap.remove(a);\r\n+        } else {\r\n+            sbuf.append(\"...\");\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void booleanArrayAppend(StringBuffer sbuf, boolean[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void byteArrayAppend(StringBuffer sbuf, byte[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void charArrayAppend(StringBuffer sbuf, char[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void shortArrayAppend(StringBuffer sbuf, short[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void intArrayAppend(StringBuffer sbuf, int[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void longArrayAppend(StringBuffer sbuf, long[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void floatArrayAppend(StringBuffer sbuf, float[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private static void doubleArrayAppend(StringBuffer sbuf, double[] a) {\r\n+        sbuf.append('[');\r\n+        final int len = a.length;\r\n+        for (int i = 0; i < len; i++) {\r\n+            sbuf.append(a[i]);\r\n+            if (i != len - 1) {\r\n+                sbuf.append(\", \");\r\n+            }\r\n+        }\r\n+        sbuf.append(']');\r\n+    }\r\n+\r\n+    private MessageFormatter() {\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/utils/PayloadDropper.java", "source2": "org/apache/dubbo/remoting/utils/PayloadDropper.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.utils;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-\n-public class PayloadDropper {\n-    private static Logger logger = LoggerFactory.getLogger(PayloadDropper.class);\n-\n-    /**\n-     * only log body in debugger mode for size & security consideration.\n-     *\n-     * @param message\n-     * @return\n-     */\n-    public static Object getRequestWithoutData(Object message) {\n-        if (logger.isDebugEnabled()) {\n-            return message;\n-        }\n-        if (message instanceof Request) {\n-            Request request = (Request) message;\n-            request.setData(null);\n-            return request;\n-        } else if (message instanceof Response) {\n-            Response response = (Response) message;\n-            response.setResult(null);\n-            return response;\n-        }\n-        return message;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.utils;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+\r\n+public class PayloadDropper {\r\n+    private static Logger logger = LoggerFactory.getLogger(PayloadDropper.class);\r\n+\r\n+    /**\r\n+     * only log body in debugger mode for size & security consideration.\r\n+     *\r\n+     * @param message\r\n+     * @return\r\n+     */\r\n+    public static Object getRequestWithoutData(Object message) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            return message;\r\n+        }\r\n+        if (message instanceof Request) {\r\n+            Request request = (Request) message;\r\n+            request.setData(null);\r\n+            return request;\r\n+        } else if (message instanceof Response) {\r\n+            Response response = (Response) message;\r\n+            response.setResult(null);\r\n+            return response;\r\n+        }\r\n+        return message;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/utils/UrlUtils.java", "source2": "org/apache/dubbo/remoting/utils/UrlUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.remoting.utils;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Constants;\n-\n-public class UrlUtils {\n-    public static int getIdleTimeout(URL url) {\n-        int heartBeat = getHeartbeat(url);\n-        // idleTimeout should be at least more than twice heartBeat because possible retries of client.\n-        int idleTimeout = url.getParameter(Constants.HEARTBEAT_TIMEOUT_KEY, heartBeat * 3);\n-        if (idleTimeout < heartBeat * 2) {\n-            throw new IllegalStateException(\"idleTimeout < heartbeatInterval * 2\");\n-        }\n-        return idleTimeout;\n-    }\n-\n-    public static int getHeartbeat(URL url) {\n-        return url.getParameter(Constants.HEARTBEAT_KEY, Constants.DEFAULT_HEARTBEAT);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.remoting.utils;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+\r\n+public class UrlUtils {\r\n+    public static int getIdleTimeout(URL url) {\r\n+        int heartBeat = getHeartbeat(url);\r\n+        // idleTimeout should be at least more than twice heartBeat because possible retries of client.\r\n+        int idleTimeout = url.getParameter(Constants.HEARTBEAT_TIMEOUT_KEY, heartBeat * 3);\r\n+        if (idleTimeout < heartBeat * 2) {\r\n+            throw new IllegalStateException(\"idleTimeout < heartbeatInterval * 2\");\r\n+        }\r\n+        return idleTimeout;\r\n+    }\r\n+\r\n+    public static int getHeartbeat(URL url) {\r\n+        return url.getParameter(Constants.HEARTBEAT_KEY, Constants.DEFAULT_HEARTBEAT);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/DataListener.java", "source2": "org/apache/dubbo/remoting/zookeeper/DataListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,25 +1,25 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper;\n-\n-/**\n- * 2019-02-26\n- */\n-public interface DataListener {\n-\n-    void dataChanged(String path, Object value, EventType eventType);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper;\r\n+\r\n+/**\r\n+ * 2019-02-26\r\n+ */\r\n+public interface DataListener {\r\n+\r\n+    void dataChanged(String path, Object value, EventType eventType);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/EventType.java", "source2": "org/apache/dubbo/remoting/zookeeper/EventType.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper;\n-\n-import org.apache.zookeeper.Watcher;\n-\n-/**\n- * 2019-02-26\n- */\n-public enum EventType {\n-    None(-1),\n-    NodeCreated(1),\n-    NodeDeleted(2),\n-    NodeDataChanged(3),\n-    NodeChildrenChanged(4),\n-    CONNECTION_SUSPENDED(11),\n-    CONNECTION_RECONNECTED(12),\n-    CONNECTION_LOST(12),\n-    INITIALIZED(10);\n-\n-\n-\n-    private final int intValue;     // Integer representation of value\n-    // for sending over wire\n-\n-    EventType(int intValue) {\n-        this.intValue = intValue;\n-    }\n-\n-    public int getIntValue() {\n-        return intValue;\n-    }\n-\n-    public static Watcher.Event.EventType fromInt(int intValue) {\n-        switch (intValue) {\n-            case -1:\n-                return Watcher.Event.EventType.None;\n-            case 1:\n-                return Watcher.Event.EventType.NodeCreated;\n-            case 2:\n-                return Watcher.Event.EventType.NodeDeleted;\n-            case 3:\n-                return Watcher.Event.EventType.NodeDataChanged;\n-            case 4:\n-                return Watcher.Event.EventType.NodeChildrenChanged;\n-\n-            default:\n-                throw new RuntimeException(\"Invalid integer value for conversion to EventType\");\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper;\r\n+\r\n+import org.apache.zookeeper.Watcher;\r\n+\r\n+/**\r\n+ * 2019-02-26\r\n+ */\r\n+public enum EventType {\r\n+    None(-1),\r\n+    NodeCreated(1),\r\n+    NodeDeleted(2),\r\n+    NodeDataChanged(3),\r\n+    NodeChildrenChanged(4),\r\n+    CONNECTION_SUSPENDED(11),\r\n+    CONNECTION_RECONNECTED(12),\r\n+    CONNECTION_LOST(12),\r\n+    INITIALIZED(10);\r\n+\r\n+\r\n+\r\n+    private final int intValue;     // Integer representation of value\r\n+    // for sending over wire\r\n+\r\n+    EventType(int intValue) {\r\n+        this.intValue = intValue;\r\n+    }\r\n+\r\n+    public int getIntValue() {\r\n+        return intValue;\r\n+    }\r\n+\r\n+    public static Watcher.Event.EventType fromInt(int intValue) {\r\n+        switch (intValue) {\r\n+            case -1:\r\n+                return Watcher.Event.EventType.None;\r\n+            case 1:\r\n+                return Watcher.Event.EventType.NodeCreated;\r\n+            case 2:\r\n+                return Watcher.Event.EventType.NodeDeleted;\r\n+            case 3:\r\n+                return Watcher.Event.EventType.NodeDataChanged;\r\n+            case 4:\r\n+                return Watcher.Event.EventType.NodeChildrenChanged;\r\n+\r\n+            default:\r\n+                throw new RuntimeException(\"Invalid integer value for conversion to EventType\");\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/StateListener.java", "source2": "org/apache/dubbo/remoting/zookeeper/StateListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper;\n-\n-public interface StateListener {\n-\n-    int SESSION_LOST = 0;\n-\n-    int CONNECTED = 1;\n-\n-    int RECONNECTED = 2;\n-\n-    int SUSPENDED = 3;\n-\n-    int NEW_SESSION_CREATED = 4;\n-\n-    void stateChanged(int connected);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper;\r\n+\r\n+public interface StateListener {\r\n+\r\n+    int SESSION_LOST = 0;\r\n+\r\n+    int CONNECTED = 1;\r\n+\r\n+    int RECONNECTED = 2;\r\n+\r\n+    int SUSPENDED = 3;\r\n+\r\n+    int NEW_SESSION_CREATED = 4;\r\n+\r\n+    void stateChanged(int connected);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/ZookeeperClient.java", "source2": "org/apache/dubbo/remoting/zookeeper/ZookeeperClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.List;\n-import java.util.concurrent.Executor;\n-\n-public interface ZookeeperClient {\n-\n-    void create(String path, boolean ephemeral);\n-\n-    void delete(String path);\n-\n-    List<String> getChildren(String path);\n-\n-    List<String> addChildListener(String path, ChildListener listener);\n-\n-    /**\n-     * @param path:    directory. All of child of path will be listened.\n-     * @param listener\n-     */\n-    void addDataListener(String path, DataListener listener);\n-\n-    /**\n-     * @param path:    directory. All of child of path will be listened.\n-     * @param listener\n-     * @param executor another thread\n-     */\n-    void addDataListener(String path, DataListener listener, Executor executor);\n-\n-    void removeDataListener(String path, DataListener listener);\n-\n-    void removeChildListener(String path, ChildListener listener);\n-\n-    void addStateListener(StateListener listener);\n-\n-    void removeStateListener(StateListener listener);\n-\n-    boolean isConnected();\n-\n-    void close();\n-\n-    URL getUrl();\n-\n-    void create(String path, String content, boolean ephemeral);\n-\n-    String getContent(String path);\n-\n-    boolean checkExists(String path);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.Executor;\r\n+\r\n+public interface ZookeeperClient {\r\n+\r\n+    void create(String path, boolean ephemeral);\r\n+\r\n+    void delete(String path);\r\n+\r\n+    List<String> getChildren(String path);\r\n+\r\n+    List<String> addChildListener(String path, ChildListener listener);\r\n+\r\n+    /**\r\n+     * @param path:    directory. All of child of path will be listened.\r\n+     * @param listener\r\n+     */\r\n+    void addDataListener(String path, DataListener listener);\r\n+\r\n+    /**\r\n+     * @param path:    directory. All of child of path will be listened.\r\n+     * @param listener\r\n+     * @param executor another thread\r\n+     */\r\n+    void addDataListener(String path, DataListener listener, Executor executor);\r\n+\r\n+    void removeDataListener(String path, DataListener listener);\r\n+\r\n+    void removeChildListener(String path, ChildListener listener);\r\n+\r\n+    void addStateListener(StateListener listener);\r\n+\r\n+    void removeStateListener(StateListener listener);\r\n+\r\n+    boolean isConnected();\r\n+\r\n+    void close();\r\n+\r\n+    URL getUrl();\r\n+\r\n+    void create(String path, String content, boolean ephemeral);\r\n+\r\n+    String getContent(String path);\r\n+\r\n+    boolean checkExists(String path);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/ZookeeperTransporter.java", "source2": "org/apache/dubbo/remoting/zookeeper/ZookeeperTransporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,30 +1,30 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.remoting.Constants;\n-\n-@SPI(\"curator\")\n-public interface ZookeeperTransporter {\n-\n-    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\n-    ZookeeperClient connect(URL url);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+\r\n+@SPI(\"curator\")\r\n+public interface ZookeeperTransporter {\r\n+\r\n+    @Adaptive({Constants.CLIENT_KEY, Constants.TRANSPORTER_KEY})\r\n+    ZookeeperClient connect(URL url);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java", "source2": "org/apache/dubbo/remoting/zookeeper/support/AbstractZookeeperTransporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,182 +1,182 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.remoting.zookeeper.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.RemotingConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\n-import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * AbstractZookeeperTransporter is abstract implements of ZookeeperTransporter.\n- * <p>\n- * If you want to extends this, implements createZookeeperClient.\n- */\n-public abstract class AbstractZookeeperTransporter implements ZookeeperTransporter {\n-    private static final Logger logger = LoggerFactory.getLogger(ZookeeperTransporter.class);\n-    private final Map<String, ZookeeperClient> zookeeperClientMap = new ConcurrentHashMap<>();\n-\n-    /**\n-     * share connect for registry, metadata, etc..\n-     * <p>\n-     * Make sure the connection is connected.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    @Override\n-    public ZookeeperClient connect(URL url) {\n-        ZookeeperClient zookeeperClient;\n-        // address format: {[username:password@]address}\n-        List<String> addressList = getURLBackupAddress(url);\n-        // The field define the zookeeper server , including protocol, host, port, username, password\n-        if ((zookeeperClient = fetchAndUpdateZookeeperClientCache(addressList)) != null && zookeeperClient.isConnected()) {\n-            logger.info(\"find valid zookeeper client from the cache for address: \" + url);\n-            return zookeeperClient;\n-        }\n-        // avoid creating too many connections\uff0c so add lock\n-        synchronized (zookeeperClientMap) {\n-            if ((zookeeperClient = fetchAndUpdateZookeeperClientCache(addressList)) != null && zookeeperClient.isConnected()) {\n-                logger.info(\"find valid zookeeper client from the cache for address: \" + url);\n-                return zookeeperClient;\n-            }\n-\n-            zookeeperClient = createZookeeperClient(url);\n-            logger.info(\"No valid zookeeper client found from cache, therefore create a new client for url. \" + url);\n-            writeToClientMap(addressList, zookeeperClient);\n-        }\n-        return zookeeperClient;\n-    }\n-\n-    /**\n-     * @param url the url that will create zookeeper connection .\n-     *            The url in AbstractZookeeperTransporter#connect parameter is rewritten by this one.\n-     *            such as: zookeeper://127.0.0.1:2181/org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter\n-     * @return\n-     */\n-    protected abstract ZookeeperClient createZookeeperClient(URL url);\n-\n-    /**\n-     * get the ZookeeperClient from cache, the ZookeeperClient must be connected.\n-     * <p>\n-     * It is not private method for unit test.\n-     *\n-     * @param addressList\n-     * @return\n-     */\n-    ZookeeperClient fetchAndUpdateZookeeperClientCache(List<String> addressList) {\n-\n-        ZookeeperClient zookeeperClient = null;\n-        for (String address : addressList) {\n-            if ((zookeeperClient = zookeeperClientMap.get(address)) != null && zookeeperClient.isConnected()) {\n-                break;\n-            }\n-        }\n-        if (zookeeperClient != null && zookeeperClient.isConnected()) {\n-            writeToClientMap(addressList, zookeeperClient);\n-        }\n-        return zookeeperClient;\n-    }\n-\n-    /**\n-     * get all zookeeper urls (such as :zookeeper://127.0.0.1:2181?127.0.0.1:8989,127.0.0.1:9999)\n-     *\n-     * @param url such as:zookeeper://127.0.0.1:2181?127.0.0.1:8989,127.0.0.1:9999\n-     * @return such as 127.0.0.1:2181,127.0.0.1:8989,127.0.0.1:9999\n-     */\n-    List<String> getURLBackupAddress(URL url) {\n-        List<String> addressList = new ArrayList<String>();\n-        addressList.add(url.getAddress());\n-        addressList.addAll(url.getParameter(RemotingConstants.BACKUP_KEY, Collections.EMPTY_LIST));\n-\n-        String authPrefix = null;\n-        if (StringUtils.isNotEmpty(url.getUsername())) {\n-            StringBuilder buf = new StringBuilder();\n-            buf.append(url.getUsername());\n-            if (StringUtils.isNotEmpty(url.getPassword())) {\n-                buf.append(\":\");\n-                buf.append(url.getPassword());\n-            }\n-            buf.append(\"@\");\n-            authPrefix = buf.toString();\n-        }\n-\n-        if (StringUtils.isNotEmpty(authPrefix)) {\n-            List<String> authedAddressList = new ArrayList<>(addressList.size());\n-            for (String addr : addressList) {\n-                authedAddressList.add(authPrefix + addr);\n-            }\n-            return authedAddressList;\n-        }\n-\n-\n-        return addressList;\n-    }\n-\n-    /**\n-     * write address-ZookeeperClient relationship to Map\n-     *\n-     * @param addressList\n-     * @param zookeeperClient\n-     */\n-    void writeToClientMap(List<String> addressList, ZookeeperClient zookeeperClient) {\n-        for (String address : addressList) {\n-            zookeeperClientMap.put(address, zookeeperClient);\n-        }\n-    }\n-\n-    /**\n-     * redefine the url for zookeeper. just keep protocol, username, password, host, port, and individual parameter.\n-     *\n-     * @param url\n-     * @return\n-     */\n-    URL toClientURL(URL url) {\n-        Map<String, String> parameterMap = new HashMap<>();\n-        // for CuratorZookeeperClient\n-        if (url.getParameter(TIMEOUT_KEY) != null) {\n-            parameterMap.put(TIMEOUT_KEY, url.getParameter(TIMEOUT_KEY));\n-        }\n-        if (url.getParameter(RemotingConstants.BACKUP_KEY) != null) {\n-            parameterMap.put(RemotingConstants.BACKUP_KEY, url.getParameter(RemotingConstants.BACKUP_KEY));\n-        }\n-\n-        return new URL(url.getProtocol(), url.getUsername(), url.getPassword(), url.getHost(), url.getPort(),\n-                ZookeeperTransporter.class.getName(), parameterMap);\n-    }\n-\n-    /**\n-     * for unit test\n-     *\n-     * @return\n-     */\n-    Map<String, ZookeeperClient> getZookeeperClientMap() {\n-        return zookeeperClientMap;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.remoting.zookeeper.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.RemotingConstants;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperClient;\r\n+import org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * AbstractZookeeperTransporter is abstract implements of ZookeeperTransporter.\r\n+ * <p>\r\n+ * If you want to extends this, implements createZookeeperClient.\r\n+ */\r\n+public abstract class AbstractZookeeperTransporter implements ZookeeperTransporter {\r\n+    private static final Logger logger = LoggerFactory.getLogger(ZookeeperTransporter.class);\r\n+    private final Map<String, ZookeeperClient> zookeeperClientMap = new ConcurrentHashMap<>();\r\n+\r\n+    /**\r\n+     * share connect for registry, metadata, etc..\r\n+     * <p>\r\n+     * Make sure the connection is connected.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public ZookeeperClient connect(URL url) {\r\n+        ZookeeperClient zookeeperClient;\r\n+        // address format: {[username:password@]address}\r\n+        List<String> addressList = getURLBackupAddress(url);\r\n+        // The field define the zookeeper server , including protocol, host, port, username, password\r\n+        if ((zookeeperClient = fetchAndUpdateZookeeperClientCache(addressList)) != null && zookeeperClient.isConnected()) {\r\n+            logger.info(\"find valid zookeeper client from the cache for address: \" + url);\r\n+            return zookeeperClient;\r\n+        }\r\n+        // avoid creating too many connections\uff0c so add lock\r\n+        synchronized (zookeeperClientMap) {\r\n+            if ((zookeeperClient = fetchAndUpdateZookeeperClientCache(addressList)) != null && zookeeperClient.isConnected()) {\r\n+                logger.info(\"find valid zookeeper client from the cache for address: \" + url);\r\n+                return zookeeperClient;\r\n+            }\r\n+\r\n+            zookeeperClient = createZookeeperClient(url);\r\n+            logger.info(\"No valid zookeeper client found from cache, therefore create a new client for url. \" + url);\r\n+            writeToClientMap(addressList, zookeeperClient);\r\n+        }\r\n+        return zookeeperClient;\r\n+    }\r\n+\r\n+    /**\r\n+     * @param url the url that will create zookeeper connection .\r\n+     *            The url in AbstractZookeeperTransporter#connect parameter is rewritten by this one.\r\n+     *            such as: zookeeper://127.0.0.1:2181/org.apache.dubbo.remoting.zookeeper.ZookeeperTransporter\r\n+     * @return\r\n+     */\r\n+    protected abstract ZookeeperClient createZookeeperClient(URL url);\r\n+\r\n+    /**\r\n+     * get the ZookeeperClient from cache, the ZookeeperClient must be connected.\r\n+     * <p>\r\n+     * It is not private method for unit test.\r\n+     *\r\n+     * @param addressList\r\n+     * @return\r\n+     */\r\n+    ZookeeperClient fetchAndUpdateZookeeperClientCache(List<String> addressList) {\r\n+\r\n+        ZookeeperClient zookeeperClient = null;\r\n+        for (String address : addressList) {\r\n+            if ((zookeeperClient = zookeeperClientMap.get(address)) != null && zookeeperClient.isConnected()) {\r\n+                break;\r\n+            }\r\n+        }\r\n+        if (zookeeperClient != null && zookeeperClient.isConnected()) {\r\n+            writeToClientMap(addressList, zookeeperClient);\r\n+        }\r\n+        return zookeeperClient;\r\n+    }\r\n+\r\n+    /**\r\n+     * get all zookeeper urls (such as :zookeeper://127.0.0.1:2181?127.0.0.1:8989,127.0.0.1:9999)\r\n+     *\r\n+     * @param url such as:zookeeper://127.0.0.1:2181?127.0.0.1:8989,127.0.0.1:9999\r\n+     * @return such as 127.0.0.1:2181,127.0.0.1:8989,127.0.0.1:9999\r\n+     */\r\n+    List<String> getURLBackupAddress(URL url) {\r\n+        List<String> addressList = new ArrayList<String>();\r\n+        addressList.add(url.getAddress());\r\n+        addressList.addAll(url.getParameter(RemotingConstants.BACKUP_KEY, Collections.EMPTY_LIST));\r\n+\r\n+        String authPrefix = null;\r\n+        if (StringUtils.isNotEmpty(url.getUsername())) {\r\n+            StringBuilder buf = new StringBuilder();\r\n+            buf.append(url.getUsername());\r\n+            if (StringUtils.isNotEmpty(url.getPassword())) {\r\n+                buf.append(\":\");\r\n+                buf.append(url.getPassword());\r\n+            }\r\n+            buf.append(\"@\");\r\n+            authPrefix = buf.toString();\r\n+        }\r\n+\r\n+        if (StringUtils.isNotEmpty(authPrefix)) {\r\n+            List<String> authedAddressList = new ArrayList<>(addressList.size());\r\n+            for (String addr : addressList) {\r\n+                authedAddressList.add(authPrefix + addr);\r\n+            }\r\n+            return authedAddressList;\r\n+        }\r\n+\r\n+\r\n+        return addressList;\r\n+    }\r\n+\r\n+    /**\r\n+     * write address-ZookeeperClient relationship to Map\r\n+     *\r\n+     * @param addressList\r\n+     * @param zookeeperClient\r\n+     */\r\n+    void writeToClientMap(List<String> addressList, ZookeeperClient zookeeperClient) {\r\n+        for (String address : addressList) {\r\n+            zookeeperClientMap.put(address, zookeeperClient);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * redefine the url for zookeeper. just keep protocol, username, password, host, port, and individual parameter.\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    URL toClientURL(URL url) {\r\n+        Map<String, String> parameterMap = new HashMap<>();\r\n+        // for CuratorZookeeperClient\r\n+        if (url.getParameter(TIMEOUT_KEY) != null) {\r\n+            parameterMap.put(TIMEOUT_KEY, url.getParameter(TIMEOUT_KEY));\r\n+        }\r\n+        if (url.getParameter(RemotingConstants.BACKUP_KEY) != null) {\r\n+            parameterMap.put(RemotingConstants.BACKUP_KEY, url.getParameter(RemotingConstants.BACKUP_KEY));\r\n+        }\r\n+\r\n+        return new URL(url.getProtocol(), url.getUsername(), url.getPassword(), url.getHost(), url.getPort(),\r\n+                ZookeeperTransporter.class.getName(), parameterMap);\r\n+    }\r\n+\r\n+    /**\r\n+     * for unit test\r\n+     *\r\n+     * @return\r\n+     */\r\n+    Map<String, ZookeeperClient> getZookeeperClientMap() {\r\n+        return zookeeperClientMap;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/AppResponse.java", "source2": "org/apache/dubbo/rpc/AppResponse.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,255 +1,255 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-\n-import org.apache.dubbo.rpc.proxy.InvokerInvocationHandler;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.function.BiConsumer;\n-import java.util.function.Function;\n-\n-import static org.apache.dubbo.rpc.Constants.INVOCATION_KEY;\n-\n-/**\n- * {@link AsyncRpcResult} is introduced in 3.0.0 to replace RpcResult, and RpcResult is replaced with {@link AppResponse}:\n- * <ul>\n- *     <li>AsyncRpcResult is the object that is actually passed in the call chain</li>\n- *     <li>AppResponse only simply represents the business result</li>\n- * </ul>\n- * <p>\n- *  The relationship between them can be described as follow, an abstraction of the definition of AsyncRpcResult:\n- *  <pre>\n- *  {@code\n- *   Public class AsyncRpcResult implements CompletionStage<AppResponse> {\n- *       ......\n- *  }\n- * </pre>\n- * AsyncRpcResult is a future representing an unfinished RPC call, while AppResponse is the actual return type of this call.\n- * In theory, AppResponse doesn't have to implement the {@link Result} interface, this is done mainly for compatibility purpose.\n- *\n- * @serial Do not change the class name and properties.\n- */\n-public class AppResponse implements Result {\n-\n-    private static final long serialVersionUID = -6925924956850004727L;\n-\n-    private Object result;\n-\n-    private Throwable exception;\n-\n-    private Map<String, Object> attachments = new HashMap<>();\n-\n-    private Map<String, Object> attributes = new HashMap<>();\n-\n-    public AppResponse() {\n-    }\n-\n-    public AppResponse(Invocation invocation) {\n-        this.setAttribute(INVOCATION_KEY, invocation);\n-    }\n-\n-    public AppResponse(Object result) {\n-        this.result = result;\n-    }\n-\n-    public AppResponse(Throwable exception) {\n-        this.exception = exception;\n-    }\n-\n-    @Override\n-    public Object recreate() throws Throwable {\n-        if (exception != null) {\n-            // fix issue#619\n-            try {\n-                Object stackTrace = InvokerInvocationHandler.stackTraceField.get(exception);\n-                if (stackTrace == null) {\n-                    exception.setStackTrace(new StackTraceElement[0]);\n-                }\n-            } catch (Exception e) {\n-                // ignore\n-            }\n-            throw exception;\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public Object getValue() {\n-        return result;\n-    }\n-\n-    @Override\n-    public void setValue(Object value) {\n-        this.result = value;\n-    }\n-\n-    @Override\n-    public Throwable getException() {\n-        return exception;\n-    }\n-\n-    @Override\n-    public void setException(Throwable e) {\n-        this.exception = e;\n-    }\n-\n-    @Override\n-    public boolean hasException() {\n-        return exception != null;\n-    }\n-\n-    @Override\n-    @Deprecated\n-    public Map<String, String> getAttachments() {\n-        return new AttachmentsAdapter.ObjectToStringMap(attachments);\n-    }\n-\n-    @Override\n-    public Map<String, Object> getObjectAttachments() {\n-        return attachments;\n-    }\n-\n-    /**\n-     * Append all items from the map into the attachment, if map is empty then nothing happens\n-     *\n-     * @param map contains all key-value pairs to append\n-     */\n-    public void setAttachments(Map<String, String> map) {\n-        this.attachments = map == null ? new HashMap<>() : new HashMap<>(map);\n-    }\n-\n-    @Override\n-    public void setObjectAttachments(Map<String, Object> map) {\n-        this.attachments = map == null ? new HashMap<>() : map;\n-    }\n-\n-    public void addAttachments(Map<String, String> map) {\n-        if (map == null) {\n-            return;\n-        }\n-        if (this.attachments == null) {\n-            this.attachments = new HashMap<>();\n-        }\n-        this.attachments.putAll(map);\n-    }\n-\n-    @Override\n-    public void addObjectAttachments(Map<String, Object> map) {\n-        if (map == null) {\n-            return;\n-        }\n-        if (this.attachments == null) {\n-            this.attachments = new HashMap<>();\n-        }\n-        this.attachments.putAll(map);\n-    }\n-\n-    @Override\n-    public String getAttachment(String key) {\n-        Object value = attachments.get(key);\n-        if (value instanceof String) {\n-            return (String) value;\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public Object getObjectAttachment(String key) {\n-        return attachments.get(key);\n-    }\n-\n-    @Override\n-    public String getAttachment(String key, String defaultValue) {\n-        Object result = attachments.get(key);\n-        if (result == null) {\n-            return defaultValue;\n-        }\n-        if (result instanceof String) {\n-            return (String) result;\n-        }\n-        return defaultValue;\n-    }\n-\n-    @Override\n-    public Object getObjectAttachment(String key, Object defaultValue) {\n-        Object result = attachments.get(key);\n-        if (result == null) {\n-            result = defaultValue;\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public void setAttachment(String key, String value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    public void setAttachment(String key, Object value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    public void setObjectAttachment(String key, Object value) {\n-        attachments.put(key, value);\n-    }\n-\n-    public Object getAttribute(String key) {\n-        return attributes.get(key);\n-    }\n-\n-    public void setAttribute(String key, Object value) {\n-        attributes.put(key, value);\n-    }\n-\n-    @Override\n-    public Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn) {\n-        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\n-    }\n-\n-    @Override\n-    public <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn) {\n-        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\n-    }\n-\n-    @Override\n-    public Result get() throws InterruptedException, ExecutionException {\n-        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\n-    }\n-\n-    @Override\n-    public Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\n-        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\n-    }\n-\n-    public void clear() {\n-        this.result = null;\n-        this.exception = null;\n-        this.attachments.clear();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"AppResponse [value=\" + result + \", exception=\" + exception + \"]\";\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+\r\n+import org.apache.dubbo.rpc.proxy.InvokerInvocationHandler;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.function.BiConsumer;\r\n+import java.util.function.Function;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.INVOCATION_KEY;\r\n+\r\n+/**\r\n+ * {@link AsyncRpcResult} is introduced in 3.0.0 to replace RpcResult, and RpcResult is replaced with {@link AppResponse}:\r\n+ * <ul>\r\n+ *     <li>AsyncRpcResult is the object that is actually passed in the call chain</li>\r\n+ *     <li>AppResponse only simply represents the business result</li>\r\n+ * </ul>\r\n+ * <p>\r\n+ *  The relationship between them can be described as follow, an abstraction of the definition of AsyncRpcResult:\r\n+ *  <pre>\r\n+ *  {@code\r\n+ *   Public class AsyncRpcResult implements CompletionStage<AppResponse> {\r\n+ *       ......\r\n+ *  }\r\n+ * </pre>\r\n+ * AsyncRpcResult is a future representing an unfinished RPC call, while AppResponse is the actual return type of this call.\r\n+ * In theory, AppResponse doesn't have to implement the {@link Result} interface, this is done mainly for compatibility purpose.\r\n+ *\r\n+ * @serial Do not change the class name and properties.\r\n+ */\r\n+public class AppResponse implements Result {\r\n+\r\n+    private static final long serialVersionUID = -6925924956850004727L;\r\n+\r\n+    private Object result;\r\n+\r\n+    private Throwable exception;\r\n+\r\n+    private Map<String, Object> attachments = new HashMap<>();\r\n+\r\n+    private Map<String, Object> attributes = new HashMap<>();\r\n+\r\n+    public AppResponse() {\r\n+    }\r\n+\r\n+    public AppResponse(Invocation invocation) {\r\n+        this.setAttribute(INVOCATION_KEY, invocation);\r\n+    }\r\n+\r\n+    public AppResponse(Object result) {\r\n+        this.result = result;\r\n+    }\r\n+\r\n+    public AppResponse(Throwable exception) {\r\n+        this.exception = exception;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object recreate() throws Throwable {\r\n+        if (exception != null) {\r\n+            // fix issue#619\r\n+            try {\r\n+                Object stackTrace = InvokerInvocationHandler.stackTraceField.get(exception);\r\n+                if (stackTrace == null) {\r\n+                    exception.setStackTrace(new StackTraceElement[0]);\r\n+                }\r\n+            } catch (Exception e) {\r\n+                // ignore\r\n+            }\r\n+            throw exception;\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getValue() {\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setValue(Object value) {\r\n+        this.result = value;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable getException() {\r\n+        return exception;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setException(Throwable e) {\r\n+        this.exception = e;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasException() {\r\n+        return exception != null;\r\n+    }\r\n+\r\n+    @Override\r\n+    @Deprecated\r\n+    public Map<String, String> getAttachments() {\r\n+        return new AttachmentsAdapter.ObjectToStringMap(attachments);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Object> getObjectAttachments() {\r\n+        return attachments;\r\n+    }\r\n+\r\n+    /**\r\n+     * Append all items from the map into the attachment, if map is empty then nothing happens\r\n+     *\r\n+     * @param map contains all key-value pairs to append\r\n+     */\r\n+    public void setAttachments(Map<String, String> map) {\r\n+        this.attachments = map == null ? new HashMap<>() : new HashMap<>(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachments(Map<String, Object> map) {\r\n+        this.attachments = map == null ? new HashMap<>() : map;\r\n+    }\r\n+\r\n+    public void addAttachments(Map<String, String> map) {\r\n+        if (map == null) {\r\n+            return;\r\n+        }\r\n+        if (this.attachments == null) {\r\n+            this.attachments = new HashMap<>();\r\n+        }\r\n+        this.attachments.putAll(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addObjectAttachments(Map<String, Object> map) {\r\n+        if (map == null) {\r\n+            return;\r\n+        }\r\n+        if (this.attachments == null) {\r\n+            this.attachments = new HashMap<>();\r\n+        }\r\n+        this.attachments.putAll(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttachment(String key) {\r\n+        Object value = attachments.get(key);\r\n+        if (value instanceof String) {\r\n+            return (String) value;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObjectAttachment(String key) {\r\n+        return attachments.get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttachment(String key, String defaultValue) {\r\n+        Object result = attachments.get(key);\r\n+        if (result == null) {\r\n+            return defaultValue;\r\n+        }\r\n+        if (result instanceof String) {\r\n+            return (String) result;\r\n+        }\r\n+        return defaultValue;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObjectAttachment(String key, Object defaultValue) {\r\n+        Object result = attachments.get(key);\r\n+        if (result == null) {\r\n+            result = defaultValue;\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachment(String key, String value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachment(String key, Object value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachment(String key, Object value) {\r\n+        attachments.put(key, value);\r\n+    }\r\n+\r\n+    public Object getAttribute(String key) {\r\n+        return attributes.get(key);\r\n+    }\r\n+\r\n+    public void setAttribute(String key, Object value) {\r\n+        attributes.put(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn) {\r\n+        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn) {\r\n+        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result get() throws InterruptedException, ExecutionException {\r\n+        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\r\n+        throw new UnsupportedOperationException(\"AppResponse represents an concrete business response, there will be no status changes, you should get internal values directly.\");\r\n+    }\r\n+\r\n+    public void clear() {\r\n+        this.result = null;\r\n+        this.exception = null;\r\n+        this.attachments.clear();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"AppResponse [value=\" + result + \", exception=\" + exception + \"]\";\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/AsyncContextImpl.java", "source2": "org/apache/dubbo/rpc/AsyncContextImpl.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,78 +1,78 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-public class AsyncContextImpl implements AsyncContext {\n-\n-    private final AtomicBoolean started = new AtomicBoolean(false);\n-    private final AtomicBoolean stopped = new AtomicBoolean(false);\n-\n-    private CompletableFuture<Object> future;\n-\n-    private RpcContext storedContext;\n-    private RpcContext storedServerContext;\n-\n-    public AsyncContextImpl() {\n-        this.storedContext = RpcContext.getContext();\n-        this.storedServerContext = RpcContext.getServerContext();\n-    }\n-\n-    @Override\n-    public void write(Object value) {\n-        if (isAsyncStarted() && stop()) {\n-            if (value instanceof Throwable) {\n-                Throwable bizExe = (Throwable) value;\n-                future.completeExceptionally(bizExe);\n-            } else {\n-                future.complete(value);\n-            }\n-        } else {\n-            throw new IllegalStateException(\"The async response has probably been wrote back by another thread, or the asyncContext has been closed.\");\n-        }\n-    }\n-\n-    @Override\n-    public boolean isAsyncStarted() {\n-        return started.get();\n-    }\n-\n-    @Override\n-    public boolean stop() {\n-        return stopped.compareAndSet(false, true);\n-    }\n-\n-    @Override\n-    public void start() {\n-        if (this.started.compareAndSet(false, true)) {\n-            this.future = new CompletableFuture<>();\n-        }\n-    }\n-\n-    @Override\n-    public void signalContextSwitch() {\n-        RpcContext.restoreContext(storedContext);\n-        RpcContext.restoreServerContext(storedServerContext);\n-        // Restore any other contexts in here if necessary.\n-    }\n-\n-    public CompletableFuture<Object> getInternalFuture() {\n-        return future;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+public class AsyncContextImpl implements AsyncContext {\r\n+\r\n+    private final AtomicBoolean started = new AtomicBoolean(false);\r\n+    private final AtomicBoolean stopped = new AtomicBoolean(false);\r\n+\r\n+    private CompletableFuture<Object> future;\r\n+\r\n+    private RpcContext storedContext;\r\n+    private RpcContext storedServerContext;\r\n+\r\n+    public AsyncContextImpl() {\r\n+        this.storedContext = RpcContext.getContext();\r\n+        this.storedServerContext = RpcContext.getServerContext();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(Object value) {\r\n+        if (isAsyncStarted() && stop()) {\r\n+            if (value instanceof Throwable) {\r\n+                Throwable bizExe = (Throwable) value;\r\n+                future.completeExceptionally(bizExe);\r\n+            } else {\r\n+                future.complete(value);\r\n+            }\r\n+        } else {\r\n+            throw new IllegalStateException(\"The async response has probably been wrote back by another thread, or the asyncContext has been closed.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAsyncStarted() {\r\n+        return started.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean stop() {\r\n+        return stopped.compareAndSet(false, true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void start() {\r\n+        if (this.started.compareAndSet(false, true)) {\r\n+            this.future = new CompletableFuture<>();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void signalContextSwitch() {\r\n+        RpcContext.restoreContext(storedContext);\r\n+        RpcContext.restoreServerContext(storedServerContext);\r\n+        // Restore any other contexts in here if necessary.\r\n+    }\r\n+\r\n+    public CompletableFuture<Object> getInternalFuture() {\r\n+        return future;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/AsyncRpcResult.java", "source2": "org/apache/dubbo/rpc/AsyncRpcResult.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,337 +1,337 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.rpc.model.ConsumerMethodModel;\n-\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.Executor;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.function.BiConsumer;\n-import java.util.function.Function;\n-\n-import static org.apache.dubbo.common.utils.ReflectUtils.defaultReturn;\n-\n-/**\n- * This class represents an unfinished RPC call, it will hold some context information for this call, for example RpcContext and Invocation,\n- * so that when the call finishes and the result returns, it can guarantee all the contexts being recovered as the same as when the call was made\n- * before any callback is invoked.\n- * <p>\n- * TODO if it's reasonable or even right to keep a reference to Invocation?\n- * <p>\n- * As {@link Result} implements CompletionStage, {@link AsyncRpcResult} allows you to easily build a async filter chain whose status will be\n- * driven entirely by the state of the underlying RPC call.\n- * <p>\n- * AsyncRpcResult does not contain any concrete value (except the underlying value bring by CompletableFuture), consider it as a status transfer node.\n- * {@link #getValue()} and {@link #getException()} are all inherited from {@link Result} interface, implementing them are mainly\n- * for compatibility consideration. Because many legacy {@link Filter} implementation are most possibly to call getValue directly.\n- */\n-public class AsyncRpcResult implements Result {\n-    private static final Logger logger = LoggerFactory.getLogger(AsyncRpcResult.class);\n-\n-    /**\n-     * RpcContext may already have been changed when callback happens, it happens when the same thread is used to execute another RPC call.\n-     * So we should keep the reference of current RpcContext instance and restore it before callback being executed.\n-     */\n-    private RpcContext storedContext;\n-    private RpcContext storedServerContext;\n-    private Executor executor;\n-\n-    private Invocation invocation;\n-\n-    private CompletableFuture<AppResponse> responseFuture;\n-\n-    public AsyncRpcResult(CompletableFuture<AppResponse> future, Invocation invocation) {\n-        this.responseFuture = future;\n-        this.invocation = invocation;\n-        this.storedContext = RpcContext.getContext();\n-        this.storedServerContext = RpcContext.getServerContext();\n-    }\n-\n-    /**\n-     * Notice the return type of {@link #getValue} is the actual type of the RPC method, not {@link AppResponse}\n-     *\n-     * @return\n-     */\n-    @Override\n-    public Object getValue() {\n-        return getAppResponse().getValue();\n-    }\n-\n-    /**\n-     * CompletableFuture can only be completed once, so try to update the result of one completed CompletableFuture will\n-     * has no effect. To avoid this problem, we check the complete status of this future before update it's value.\n-     *\n-     * But notice that trying to give an uncompleted CompletableFuture a new specified value may face a race condition,\n-     * because the background thread watching the real result will also change the status of this CompletableFuture.\n-     * The result is you may lose the value you expected to set.\n-     *\n-     * @param value\n-     */\n-    @Override\n-    public void setValue(Object value) {\n-        try {\n-            if (responseFuture.isDone()) {\n-                responseFuture.get().setValue(value);\n-            } else {\n-                AppResponse appResponse = new AppResponse(invocation);\n-                appResponse.setValue(value);\n-                responseFuture.complete(appResponse);\n-            }\n-        } catch (Exception e) {\n-            // This should not happen in normal request process;\n-            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    public Throwable getException() {\n-        return getAppResponse().getException();\n-    }\n-\n-    @Override\n-    public void setException(Throwable t) {\n-        try {\n-            if (responseFuture.isDone()) {\n-                responseFuture.get().setException(t);\n-            } else {\n-                AppResponse appResponse = new AppResponse(invocation);\n-                appResponse.setException(t);\n-                responseFuture.complete(appResponse);\n-            }\n-        } catch (Exception e) {\n-            // This should not happen in normal request process;\n-            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean hasException() {\n-        return getAppResponse().hasException();\n-    }\n-\n-    public CompletableFuture<AppResponse> getResponseFuture() {\n-        return responseFuture;\n-    }\n-\n-    public void setResponseFuture(CompletableFuture<AppResponse> responseFuture) {\n-        this.responseFuture = responseFuture;\n-    }\n-\n-    public Result getAppResponse() {\n-        try {\n-            if (responseFuture.isDone()) {\n-                return responseFuture.get();\n-            }\n-        } catch (Exception e) {\n-            // This should not happen in normal request process;\n-            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\n-            throw new RpcException(e);\n-        }\n-\n-        return createDefaultValue(invocation);\n-    }\n-\n-    /**\n-     * This method will always return after a maximum 'timeout' waiting:\n-     * 1. if value returns before timeout, return normally.\n-     * 2. if no value returns after timeout, throw TimeoutException.\n-     *\n-     * @return\n-     * @throws InterruptedException\n-     * @throws ExecutionException\n-     */\n-    @Override\n-    public Result get() throws InterruptedException, ExecutionException {\n-        if (executor != null && executor instanceof ThreadlessExecutor) {\n-            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\n-            threadlessExecutor.waitAndDrain();\n-        }\n-        return responseFuture.get();\n-    }\n-\n-    @Override\n-    public Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\n-        if (executor != null && executor instanceof ThreadlessExecutor) {\n-            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\n-            threadlessExecutor.waitAndDrain();\n-        }\n-        return responseFuture.get(timeout, unit);\n-    }\n-\n-    @Override\n-    public Object recreate() throws Throwable {\n-        RpcInvocation rpcInvocation = (RpcInvocation) invocation;\n-        if (InvokeMode.FUTURE == rpcInvocation.getInvokeMode()) {\n-            return RpcContext.getContext().getFuture();\n-        }\n-\n-        return getAppResponse().recreate();\n-    }\n-\n-    public Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn) {\n-        this.responseFuture = this.responseFuture.whenComplete((v, t) -> {\n-            beforeContext.accept(v, t);\n-            fn.accept(v, t);\n-            afterContext.accept(v, t);\n-        });\n-        return this;\n-    }\n-\n-    @Override\n-    public <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn) {\n-        return this.responseFuture.thenApply(fn);\n-    }\n-\n-    @Override\n-    @Deprecated\n-    public Map<String, String> getAttachments() {\n-        return getAppResponse().getAttachments();\n-    }\n-\n-    @Override\n-    public Map<String, Object> getObjectAttachments() {\n-        return getAppResponse().getObjectAttachments();\n-    }\n-\n-    @Override\n-    public void setAttachments(Map<String, String> map) {\n-        getAppResponse().setAttachments(map);\n-    }\n-\n-    @Override\n-    public void setObjectAttachments(Map<String, Object> map) {\n-        getAppResponse().setObjectAttachments(map);\n-    }\n-\n-    @Deprecated\n-    @Override\n-    public void addAttachments(Map<String, String> map) {\n-        getAppResponse().addAttachments(map);\n-    }\n-\n-    @Override\n-    public void addObjectAttachments(Map<String, Object> map) {\n-        getAppResponse().addObjectAttachments(map);\n-    }\n-\n-    @Override\n-    public String getAttachment(String key) {\n-        return getAppResponse().getAttachment(key);\n-    }\n-\n-    @Override\n-    public Object getObjectAttachment(String key) {\n-        return getAppResponse().getObjectAttachment(key);\n-    }\n-\n-    @Override\n-    public String getAttachment(String key, String defaultValue) {\n-        return getAppResponse().getAttachment(key, defaultValue);\n-    }\n-\n-    @Override\n-    public Object getObjectAttachment(String key, Object defaultValue) {\n-        return getAppResponse().getObjectAttachment(key, defaultValue);\n-    }\n-\n-    @Override\n-    public void setAttachment(String key, String value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    public void setAttachment(String key, Object value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    public void setObjectAttachment(String key, Object value) {\n-        getAppResponse().setAttachment(key, value);\n-    }\n-\n-    public Executor getExecutor() {\n-        return executor;\n-    }\n-\n-    public void setExecutor(Executor executor) {\n-        this.executor = executor;\n-    }\n-\n-    /**\n-     * tmp context to use when the thread switch to Dubbo thread.\n-     */\n-    private RpcContext tmpContext;\n-\n-    private RpcContext tmpServerContext;\n-    private BiConsumer<Result, Throwable> beforeContext = (appResponse, t) -> {\n-        tmpContext = RpcContext.getContext();\n-        tmpServerContext = RpcContext.getServerContext();\n-        RpcContext.restoreContext(storedContext);\n-        RpcContext.restoreServerContext(storedServerContext);\n-    };\n-\n-    private BiConsumer<Result, Throwable> afterContext = (appResponse, t) -> {\n-        RpcContext.restoreContext(tmpContext);\n-        RpcContext.restoreServerContext(tmpServerContext);\n-    };\n-\n-    /**\n-     * Some utility methods used to quickly generate default AsyncRpcResult instance.\n-     */\n-    public static AsyncRpcResult newDefaultAsyncResult(AppResponse appResponse, Invocation invocation) {\n-        return new AsyncRpcResult(CompletableFuture.completedFuture(appResponse), invocation);\n-    }\n-\n-    public static AsyncRpcResult newDefaultAsyncResult(Invocation invocation) {\n-        return newDefaultAsyncResult(null, null, invocation);\n-    }\n-\n-    public static AsyncRpcResult newDefaultAsyncResult(Object value, Invocation invocation) {\n-        return newDefaultAsyncResult(value, null, invocation);\n-    }\n-\n-    public static AsyncRpcResult newDefaultAsyncResult(Throwable t, Invocation invocation) {\n-        return newDefaultAsyncResult(null, t, invocation);\n-    }\n-\n-    public static AsyncRpcResult newDefaultAsyncResult(Object value, Throwable t, Invocation invocation) {\n-        CompletableFuture<AppResponse> future = new CompletableFuture<>();\n-        AppResponse result = new AppResponse(invocation);\n-        if (t != null) {\n-            result.setException(t);\n-        } else {\n-            result.setValue(value);\n-        }\n-        future.complete(result);\n-        return new AsyncRpcResult(future, invocation);\n-    }\n-\n-    private static Result createDefaultValue(Invocation invocation) {\n-        ConsumerMethodModel method = (ConsumerMethodModel) invocation.get(Constants.METHOD_MODEL);\n-        return method != null ? new AppResponse(defaultReturn(method.getReturnClass())) : new AppResponse();\n-    }\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.rpc.model.ConsumerMethodModel;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.Executor;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.function.BiConsumer;\r\n+import java.util.function.Function;\r\n+\r\n+import static org.apache.dubbo.common.utils.ReflectUtils.defaultReturn;\r\n+\r\n+/**\r\n+ * This class represents an unfinished RPC call, it will hold some context information for this call, for example RpcContext and Invocation,\r\n+ * so that when the call finishes and the result returns, it can guarantee all the contexts being recovered as the same as when the call was made\r\n+ * before any callback is invoked.\r\n+ * <p>\r\n+ * TODO if it's reasonable or even right to keep a reference to Invocation?\r\n+ * <p>\r\n+ * As {@link Result} implements CompletionStage, {@link AsyncRpcResult} allows you to easily build a async filter chain whose status will be\r\n+ * driven entirely by the state of the underlying RPC call.\r\n+ * <p>\r\n+ * AsyncRpcResult does not contain any concrete value (except the underlying value bring by CompletableFuture), consider it as a status transfer node.\r\n+ * {@link #getValue()} and {@link #getException()} are all inherited from {@link Result} interface, implementing them are mainly\r\n+ * for compatibility consideration. Because many legacy {@link Filter} implementation are most possibly to call getValue directly.\r\n+ */\r\n+public class AsyncRpcResult implements Result {\r\n+    private static final Logger logger = LoggerFactory.getLogger(AsyncRpcResult.class);\r\n+\r\n+    /**\r\n+     * RpcContext may already have been changed when callback happens, it happens when the same thread is used to execute another RPC call.\r\n+     * So we should keep the reference of current RpcContext instance and restore it before callback being executed.\r\n+     */\r\n+    private RpcContext storedContext;\r\n+    private RpcContext storedServerContext;\r\n+    private Executor executor;\r\n+\r\n+    private Invocation invocation;\r\n+\r\n+    private CompletableFuture<AppResponse> responseFuture;\r\n+\r\n+    public AsyncRpcResult(CompletableFuture<AppResponse> future, Invocation invocation) {\r\n+        this.responseFuture = future;\r\n+        this.invocation = invocation;\r\n+        this.storedContext = RpcContext.getContext();\r\n+        this.storedServerContext = RpcContext.getServerContext();\r\n+    }\r\n+\r\n+    /**\r\n+     * Notice the return type of {@link #getValue} is the actual type of the RPC method, not {@link AppResponse}\r\n+     *\r\n+     * @return\r\n+     */\r\n+    @Override\r\n+    public Object getValue() {\r\n+        return getAppResponse().getValue();\r\n+    }\r\n+\r\n+    /**\r\n+     * CompletableFuture can only be completed once, so try to update the result of one completed CompletableFuture will\r\n+     * has no effect. To avoid this problem, we check the complete status of this future before update it's value.\r\n+     *\r\n+     * But notice that trying to give an uncompleted CompletableFuture a new specified value may face a race condition,\r\n+     * because the background thread watching the real result will also change the status of this CompletableFuture.\r\n+     * The result is you may lose the value you expected to set.\r\n+     *\r\n+     * @param value\r\n+     */\r\n+    @Override\r\n+    public void setValue(Object value) {\r\n+        try {\r\n+            if (responseFuture.isDone()) {\r\n+                responseFuture.get().setValue(value);\r\n+            } else {\r\n+                AppResponse appResponse = new AppResponse(invocation);\r\n+                appResponse.setValue(value);\r\n+                responseFuture.complete(appResponse);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            // This should not happen in normal request process;\r\n+            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Throwable getException() {\r\n+        return getAppResponse().getException();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setException(Throwable t) {\r\n+        try {\r\n+            if (responseFuture.isDone()) {\r\n+                responseFuture.get().setException(t);\r\n+            } else {\r\n+                AppResponse appResponse = new AppResponse(invocation);\r\n+                appResponse.setException(t);\r\n+                responseFuture.complete(appResponse);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            // This should not happen in normal request process;\r\n+            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasException() {\r\n+        return getAppResponse().hasException();\r\n+    }\r\n+\r\n+    public CompletableFuture<AppResponse> getResponseFuture() {\r\n+        return responseFuture;\r\n+    }\r\n+\r\n+    public void setResponseFuture(CompletableFuture<AppResponse> responseFuture) {\r\n+        this.responseFuture = responseFuture;\r\n+    }\r\n+\r\n+    public Result getAppResponse() {\r\n+        try {\r\n+            if (responseFuture.isDone()) {\r\n+                return responseFuture.get();\r\n+            }\r\n+        } catch (Exception e) {\r\n+            // This should not happen in normal request process;\r\n+            logger.error(\"Got exception when trying to fetch the underlying result from AsyncRpcResult.\");\r\n+            throw new RpcException(e);\r\n+        }\r\n+\r\n+        return createDefaultValue(invocation);\r\n+    }\r\n+\r\n+    /**\r\n+     * This method will always return after a maximum 'timeout' waiting:\r\n+     * 1. if value returns before timeout, return normally.\r\n+     * 2. if no value returns after timeout, throw TimeoutException.\r\n+     *\r\n+     * @return\r\n+     * @throws InterruptedException\r\n+     * @throws ExecutionException\r\n+     */\r\n+    @Override\r\n+    public Result get() throws InterruptedException, ExecutionException {\r\n+        if (executor != null && executor instanceof ThreadlessExecutor) {\r\n+            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\r\n+            threadlessExecutor.waitAndDrain();\r\n+        }\r\n+        return responseFuture.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\r\n+        if (executor != null && executor instanceof ThreadlessExecutor) {\r\n+            ThreadlessExecutor threadlessExecutor = (ThreadlessExecutor) executor;\r\n+            threadlessExecutor.waitAndDrain();\r\n+        }\r\n+        return responseFuture.get(timeout, unit);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object recreate() throws Throwable {\r\n+        RpcInvocation rpcInvocation = (RpcInvocation) invocation;\r\n+        if (InvokeMode.FUTURE == rpcInvocation.getInvokeMode()) {\r\n+            return RpcContext.getContext().getFuture();\r\n+        }\r\n+\r\n+        return getAppResponse().recreate();\r\n+    }\r\n+\r\n+    public Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn) {\r\n+        this.responseFuture = this.responseFuture.whenComplete((v, t) -> {\r\n+            beforeContext.accept(v, t);\r\n+            fn.accept(v, t);\r\n+            afterContext.accept(v, t);\r\n+        });\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn) {\r\n+        return this.responseFuture.thenApply(fn);\r\n+    }\r\n+\r\n+    @Override\r\n+    @Deprecated\r\n+    public Map<String, String> getAttachments() {\r\n+        return getAppResponse().getAttachments();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Object> getObjectAttachments() {\r\n+        return getAppResponse().getObjectAttachments();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachments(Map<String, String> map) {\r\n+        getAppResponse().setAttachments(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachments(Map<String, Object> map) {\r\n+        getAppResponse().setObjectAttachments(map);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @Override\r\n+    public void addAttachments(Map<String, String> map) {\r\n+        getAppResponse().addAttachments(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void addObjectAttachments(Map<String, Object> map) {\r\n+        getAppResponse().addObjectAttachments(map);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttachment(String key) {\r\n+        return getAppResponse().getAttachment(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObjectAttachment(String key) {\r\n+        return getAppResponse().getObjectAttachment(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAttachment(String key, String defaultValue) {\r\n+        return getAppResponse().getAttachment(key, defaultValue);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObjectAttachment(String key, Object defaultValue) {\r\n+        return getAppResponse().getObjectAttachment(key, defaultValue);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachment(String key, String value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachment(String key, Object value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachment(String key, Object value) {\r\n+        getAppResponse().setAttachment(key, value);\r\n+    }\r\n+\r\n+    public Executor getExecutor() {\r\n+        return executor;\r\n+    }\r\n+\r\n+    public void setExecutor(Executor executor) {\r\n+        this.executor = executor;\r\n+    }\r\n+\r\n+    /**\r\n+     * tmp context to use when the thread switch to Dubbo thread.\r\n+     */\r\n+    private RpcContext tmpContext;\r\n+\r\n+    private RpcContext tmpServerContext;\r\n+    private BiConsumer<Result, Throwable> beforeContext = (appResponse, t) -> {\r\n+        tmpContext = RpcContext.getContext();\r\n+        tmpServerContext = RpcContext.getServerContext();\r\n+        RpcContext.restoreContext(storedContext);\r\n+        RpcContext.restoreServerContext(storedServerContext);\r\n+    };\r\n+\r\n+    private BiConsumer<Result, Throwable> afterContext = (appResponse, t) -> {\r\n+        RpcContext.restoreContext(tmpContext);\r\n+        RpcContext.restoreServerContext(tmpServerContext);\r\n+    };\r\n+\r\n+    /**\r\n+     * Some utility methods used to quickly generate default AsyncRpcResult instance.\r\n+     */\r\n+    public static AsyncRpcResult newDefaultAsyncResult(AppResponse appResponse, Invocation invocation) {\r\n+        return new AsyncRpcResult(CompletableFuture.completedFuture(appResponse), invocation);\r\n+    }\r\n+\r\n+    public static AsyncRpcResult newDefaultAsyncResult(Invocation invocation) {\r\n+        return newDefaultAsyncResult(null, null, invocation);\r\n+    }\r\n+\r\n+    public static AsyncRpcResult newDefaultAsyncResult(Object value, Invocation invocation) {\r\n+        return newDefaultAsyncResult(value, null, invocation);\r\n+    }\r\n+\r\n+    public static AsyncRpcResult newDefaultAsyncResult(Throwable t, Invocation invocation) {\r\n+        return newDefaultAsyncResult(null, t, invocation);\r\n+    }\r\n+\r\n+    public static AsyncRpcResult newDefaultAsyncResult(Object value, Throwable t, Invocation invocation) {\r\n+        CompletableFuture<AppResponse> future = new CompletableFuture<>();\r\n+        AppResponse result = new AppResponse(invocation);\r\n+        if (t != null) {\r\n+            result.setException(t);\r\n+        } else {\r\n+            result.setValue(value);\r\n+        }\r\n+        future.complete(result);\r\n+        return new AsyncRpcResult(future, invocation);\r\n+    }\r\n+\r\n+    private static Result createDefaultValue(Invocation invocation) {\r\n+        ConsumerMethodModel method = (ConsumerMethodModel) invocation.get(Constants.METHOD_MODEL);\r\n+        return method != null ? new AppResponse(defaultReturn(method.getReturnClass())) : new AppResponse();\r\n+    }\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/rpc/AttachmentsAdapter.java", "source2": "org/apache/dubbo/rpc/AttachmentsAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * This class provides map adapters to support attachments in RpcContext, Invocation and Result switch from\n- * <String, String> to <String, Object>\n- */\n-public class AttachmentsAdapter {\n-\n-    public static class ObjectToStringMap extends HashMap<String, String> {\n-        private Map<String, Object> attachments;\n-\n-        public ObjectToStringMap(Map<String, Object> attachments) {\n-            for (Entry<String, Object> entry : attachments.entrySet()) {\n-                String convertResult = convert(entry.getValue());\n-                if (convertResult != null) {\n-                    super.put(entry.getKey(), convertResult);\n-                }\n-            }\n-            this.attachments = attachments;\n-        }\n-\n-        @Override\n-        public String put(String key, String value) {\n-            attachments.put(key, value);\n-            return super.put(key, value);\n-        }\n-\n-        @Override\n-        public String remove(Object key) {\n-            attachments.remove(key);\n-            return super.remove(key);\n-        }\n-\n-        private String convert(Object obj) {\n-            if (obj instanceof String) {\n-                return (String) obj;\n-            }\n-            return null; // or JSON.toString(obj);\n-        }\n-\n-        @Override\n-        public void clear() {\n-            attachments.clear();\n-            super.clear();\n-        }\n-\n-        @Override\n-        public void putAll(Map<? extends String, ? extends String> map) {\n-            attachments.putAll(map);\n-            super.putAll(map);\n-        }\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This class provides map adapters to support attachments in RpcContext, Invocation and Result switch from\r\n+ * <String, String> to <String, Object>\r\n+ */\r\n+public class AttachmentsAdapter {\r\n+\r\n+    public static class ObjectToStringMap extends HashMap<String, String> {\r\n+        private Map<String, Object> attachments;\r\n+\r\n+        public ObjectToStringMap(Map<String, Object> attachments) {\r\n+            for (Entry<String, Object> entry : attachments.entrySet()) {\r\n+                String convertResult = convert(entry.getValue());\r\n+                if (convertResult != null) {\r\n+                    super.put(entry.getKey(), convertResult);\r\n+                }\r\n+            }\r\n+            this.attachments = attachments;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String put(String key, String value) {\r\n+            attachments.put(key, value);\r\n+            return super.put(key, value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public String remove(Object key) {\r\n+            attachments.remove(key);\r\n+            return super.remove(key);\r\n+        }\r\n+\r\n+        private String convert(Object obj) {\r\n+            if (obj instanceof String) {\r\n+                return (String) obj;\r\n+            }\r\n+            return null; // or JSON.toString(obj);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void clear() {\r\n+            attachments.clear();\r\n+            super.clear();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void putAll(Map<? extends String, ? extends String> map) {\r\n+            attachments.putAll(map);\r\n+            super.putAll(map);\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/Constants.java", "source2": "org/apache/dubbo/rpc/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,97 +1,97 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc;\n-\n-public interface Constants {\n-    String LOCAL_KEY = \"local\";\n-\n-    String STUB_KEY = \"stub\";\n-\n-    String MOCK_KEY = \"mock\";\n-\n-    String DEPRECATED_KEY = \"deprecated\";\n-\n-    String $ECHO = \"$echo\";\n-    String $ECHO_PARAMETER_DESC = \"Ljava/lang/Object;\";\n-\n-    String RETURN_PREFIX = \"return \";\n-\n-    String THROW_PREFIX = \"throw\";\n-\n-    String FAIL_PREFIX = \"fail:\";\n-\n-    String FORCE_PREFIX = \"force:\";\n-\n-    String MERGER_KEY = \"merger\";\n-\n-    String IS_SERVER_KEY = \"isserver\";\n-\n-    String FORCE_USE_TAG = \"dubbo.force.tag\";\n-\n-    String TPS_LIMIT_RATE_KEY = \"tps\";\n-\n-    String TPS_LIMIT_INTERVAL_KEY = \"tps.interval\";\n-\n-    long DEFAULT_TPS_LIMIT_INTERVAL = 60 * 1000;\n-\n-    String AUTO_ATTACH_INVOCATIONID_KEY = \"invocationid.autoattach\";\n-\n-    boolean DEFAULT_STUB_EVENT = false;\n-\n-    String STUB_EVENT_METHODS_KEY = \"dubbo.stub.event.methods\";\n-\n-    String PROXY_KEY = \"proxy\";\n-\n-    String EXECUTES_KEY = \"executes\";\n-\n-    String ACCESS_LOG_KEY = \"accesslog\";\n-\n-    String ACTIVES_KEY = \"actives\";\n-\n-    String ID_KEY = \"id\";\n-\n-    String ASYNC_KEY = \"async\";\n-\n-    String RETURN_KEY = \"return\";\n-\n-    String TOKEN_KEY = \"token\";\n-\n-    String INTERFACE = \"interface\";\n-\n-    String INTERFACES = \"interfaces\";\n-\n-    String GENERIC_KEY = \"generic\";\n-\n-    String LOCAL_PROTOCOL = \"injvm\";\n-\n-    String DEFAULT_REMOTING_SERVER = \"netty\";\n-\n-    String SCOPE_KEY = \"scope\";\n-    String SCOPE_LOCAL = \"local\";\n-    String SCOPE_REMOTE = \"remote\";\n-\n-    String INPUT_KEY = \"input\";\n-    String OUTPUT_KEY = \"output\";\n-\n-    String CONSUMER_MODEL = \"consumerModel\";\n-    String METHOD_MODEL = \"methodModel\";\n-\n-    String SERIALIZATION_SECURITY_CHECK_KEY = \"serialization.security.check\";\n-    String INVOCATION_KEY = \"invocation\";\n-    String SERIALIZATION_ID_KEY = \"serialization_id\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+public interface Constants {\r\n+    String LOCAL_KEY = \"local\";\r\n+\r\n+    String STUB_KEY = \"stub\";\r\n+\r\n+    String MOCK_KEY = \"mock\";\r\n+\r\n+    String DEPRECATED_KEY = \"deprecated\";\r\n+\r\n+    String $ECHO = \"$echo\";\r\n+    String $ECHO_PARAMETER_DESC = \"Ljava/lang/Object;\";\r\n+\r\n+    String RETURN_PREFIX = \"return \";\r\n+\r\n+    String THROW_PREFIX = \"throw\";\r\n+\r\n+    String FAIL_PREFIX = \"fail:\";\r\n+\r\n+    String FORCE_PREFIX = \"force:\";\r\n+\r\n+    String MERGER_KEY = \"merger\";\r\n+\r\n+    String IS_SERVER_KEY = \"isserver\";\r\n+\r\n+    String FORCE_USE_TAG = \"dubbo.force.tag\";\r\n+\r\n+    String TPS_LIMIT_RATE_KEY = \"tps\";\r\n+\r\n+    String TPS_LIMIT_INTERVAL_KEY = \"tps.interval\";\r\n+\r\n+    long DEFAULT_TPS_LIMIT_INTERVAL = 60 * 1000;\r\n+\r\n+    String AUTO_ATTACH_INVOCATIONID_KEY = \"invocationid.autoattach\";\r\n+\r\n+    boolean DEFAULT_STUB_EVENT = false;\r\n+\r\n+    String STUB_EVENT_METHODS_KEY = \"dubbo.stub.event.methods\";\r\n+\r\n+    String PROXY_KEY = \"proxy\";\r\n+\r\n+    String EXECUTES_KEY = \"executes\";\r\n+\r\n+    String ACCESS_LOG_KEY = \"accesslog\";\r\n+\r\n+    String ACTIVES_KEY = \"actives\";\r\n+\r\n+    String ID_KEY = \"id\";\r\n+\r\n+    String ASYNC_KEY = \"async\";\r\n+\r\n+    String RETURN_KEY = \"return\";\r\n+\r\n+    String TOKEN_KEY = \"token\";\r\n+\r\n+    String INTERFACE = \"interface\";\r\n+\r\n+    String INTERFACES = \"interfaces\";\r\n+\r\n+    String GENERIC_KEY = \"generic\";\r\n+\r\n+    String LOCAL_PROTOCOL = \"injvm\";\r\n+\r\n+    String DEFAULT_REMOTING_SERVER = \"netty\";\r\n+\r\n+    String SCOPE_KEY = \"scope\";\r\n+    String SCOPE_LOCAL = \"local\";\r\n+    String SCOPE_REMOTE = \"remote\";\r\n+\r\n+    String INPUT_KEY = \"input\";\r\n+    String OUTPUT_KEY = \"output\";\r\n+\r\n+    String CONSUMER_MODEL = \"consumerModel\";\r\n+    String METHOD_MODEL = \"methodModel\";\r\n+\r\n+    String SERIALIZATION_SECURITY_CHECK_KEY = \"serialization.security.check\";\r\n+    String INVOCATION_KEY = \"invocation\";\r\n+    String SERIALIZATION_ID_KEY = \"serialization_id\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/FutureContext.java", "source2": "org/apache/dubbo/rpc/FutureContext.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,108 +1,108 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.threadlocal.InternalThreadLocal;\n-import org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter;\n-\n-import java.util.concurrent.CompletableFuture;\n-\n-/**\n- * Used for async call scenario. But if the method you are calling has a {@link CompletableFuture<?>} signature\n- * you do not need to use this class since you will get a Future response directly.\n- * <p>\n- * Remember to save the Future reference before making another call using the same thread, otherwise,\n- * the current Future will be override by the new one, which means you will lose the chance get the return value.\n- */\n-public class FutureContext {\n-\n-    private static InternalThreadLocal<FutureContext> futureTL = new InternalThreadLocal<FutureContext>() {\n-        @Override\n-        protected FutureContext initialValue() {\n-            return new FutureContext();\n-        }\n-    };\n-\n-    public static FutureContext getContext() {\n-        return futureTL.get();\n-    }\n-\n-    private CompletableFuture<?> future;\n-    private CompletableFuture<?> compatibleFuture;\n-\n-    /**\n-     * get future.\n-     *\n-     * @param <T>\n-     * @return future\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> CompletableFuture<T> getCompletableFuture() {\n-        return (CompletableFuture<T>) future;\n-    }\n-\n-    /**\n-     * set future.\n-     *\n-     * @param future\n-     */\n-    public void setFuture(CompletableFuture<?> future) {\n-        this.future = future;\n-    }\n-\n-    @Deprecated\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> CompletableFuture<T> getCompatibleCompletableFuture() {\n-        return (CompletableFuture<T>) compatibleFuture;\n-    }\n-\n-    /**\n-     * Guarantee 'using org.apache.dubbo.rpc.RpcContext.getFuture() before proxy returns' can work, a typical scenario is:\n-     * <pre>{@code\n-     *      public final class TracingFilter implements Filter {\n-     *          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-     *              Result result = invoker.invoke(invocation);\n-     *              Future<Object> future = rpcContext.getFuture();\n-     *              if (future instanceof FutureAdapter) {\n-     *                  ((FutureAdapter) future).getFuture().setCallback(new FinishSpanCallback(span));\n-     *               }\n-     *              ......\n-     *          }\n-     *      }\n-     * }</pre>\n-     *\n-     * Start from 2.7.3, you don't have to get Future from RpcContext, we recommend using Result directly:\n-     * <pre>{@code\n-     *      public final class TracingFilter implements Filter {\n-     *          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-     *              Result result = invoker.invoke(invocation);\n-     *              result.getResponseFuture().whenComplete(new FinishSpanCallback(span));\n-     *              ......\n-     *          }\n-     *      }\n-     * }</pre>\n-     *\n-     */\n-    @Deprecated\n-    public void setCompatibleFuture(CompletableFuture<?> compatibleFuture) {\n-        this.compatibleFuture = compatibleFuture;\n-        if (compatibleFuture != null) {\n-            this.setFuture(new FutureAdapter(compatibleFuture));\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.threadlocal.InternalThreadLocal;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter;\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+\r\n+/**\r\n+ * Used for async call scenario. But if the method you are calling has a {@link CompletableFuture<?>} signature\r\n+ * you do not need to use this class since you will get a Future response directly.\r\n+ * <p>\r\n+ * Remember to save the Future reference before making another call using the same thread, otherwise,\r\n+ * the current Future will be override by the new one, which means you will lose the chance get the return value.\r\n+ */\r\n+public class FutureContext {\r\n+\r\n+    private static InternalThreadLocal<FutureContext> futureTL = new InternalThreadLocal<FutureContext>() {\r\n+        @Override\r\n+        protected FutureContext initialValue() {\r\n+            return new FutureContext();\r\n+        }\r\n+    };\r\n+\r\n+    public static FutureContext getContext() {\r\n+        return futureTL.get();\r\n+    }\r\n+\r\n+    private CompletableFuture<?> future;\r\n+    private CompletableFuture<?> compatibleFuture;\r\n+\r\n+    /**\r\n+     * get future.\r\n+     *\r\n+     * @param <T>\r\n+     * @return future\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> CompletableFuture<T> getCompletableFuture() {\r\n+        return (CompletableFuture<T>) future;\r\n+    }\r\n+\r\n+    /**\r\n+     * set future.\r\n+     *\r\n+     * @param future\r\n+     */\r\n+    public void setFuture(CompletableFuture<?> future) {\r\n+        this.future = future;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> CompletableFuture<T> getCompatibleCompletableFuture() {\r\n+        return (CompletableFuture<T>) compatibleFuture;\r\n+    }\r\n+\r\n+    /**\r\n+     * Guarantee 'using org.apache.dubbo.rpc.RpcContext.getFuture() before proxy returns' can work, a typical scenario is:\r\n+     * <pre>{@code\r\n+     *      public final class TracingFilter implements Filter {\r\n+     *          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+     *              Result result = invoker.invoke(invocation);\r\n+     *              Future<Object> future = rpcContext.getFuture();\r\n+     *              if (future instanceof FutureAdapter) {\r\n+     *                  ((FutureAdapter) future).getFuture().setCallback(new FinishSpanCallback(span));\r\n+     *               }\r\n+     *              ......\r\n+     *          }\r\n+     *      }\r\n+     * }</pre>\r\n+     *\r\n+     * Start from 2.7.3, you don't have to get Future from RpcContext, we recommend using Result directly:\r\n+     * <pre>{@code\r\n+     *      public final class TracingFilter implements Filter {\r\n+     *          public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+     *              Result result = invoker.invoke(invocation);\r\n+     *              result.getResponseFuture().whenComplete(new FinishSpanCallback(span));\r\n+     *              ......\r\n+     *          }\r\n+     *      }\r\n+     * }</pre>\r\n+     *\r\n+     */\r\n+    @Deprecated\r\n+    public void setCompatibleFuture(CompletableFuture<?> compatibleFuture) {\r\n+        this.compatibleFuture = compatibleFuture;\r\n+        if (compatibleFuture != null) {\r\n+            this.setFuture(new FutureAdapter(compatibleFuture));\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/Invocation.java", "source2": "org/apache/dubbo/rpc/Invocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,141 +1,141 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.Experimental;\n-\n-import java.util.Map;\n-import java.util.stream.Stream;\n-\n-/**\n- * Invocation. (API, Prototype, NonThreadSafe)\n- *\n- * @serial Don't change the class name and package name.\n- * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\n- * @see org.apache.dubbo.rpc.RpcInvocation\n- */\n-public interface Invocation {\n-\n-    String getTargetServiceUniqueName();\n-\n-    String getProtocolServiceKey();\n-\n-    /**\n-     * get method name.\n-     *\n-     * @return method name.\n-     * @serial\n-     */\n-    String getMethodName();\n-\n-\n-    /**\n-     * get the interface name\n-     * @return\n-     */\n-    String getServiceName();\n-\n-    /**\n-     * get parameter types.\n-     *\n-     * @return parameter types.\n-     * @serial\n-     */\n-    Class<?>[] getParameterTypes();\n-\n-    /**\n-     * get parameter's signature, string representation of parameter types.\n-     *\n-     * @return parameter's signature\n-     */\n-    default String[] getCompatibleParamSignatures() {\n-        return Stream.of(getParameterTypes())\n-                .map(Class::getName)\n-                .toArray(String[]::new);\n-    }\n-\n-    /**\n-     * get arguments.\n-     *\n-     * @return arguments.\n-     * @serial\n-     */\n-    Object[] getArguments();\n-\n-    /**\n-     * get attachments.\n-     *\n-     * @return attachments.\n-     * @serial\n-     */\n-    Map<String, String> getAttachments();\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Map<String, Object> getObjectAttachments();\n-\n-    void setAttachment(String key, String value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setAttachment(String key, Object value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setObjectAttachment(String key, Object value);\n-\n-    void setAttachmentIfAbsent(String key, String value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setAttachmentIfAbsent(String key, Object value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setObjectAttachmentIfAbsent(String key, Object value);\n-\n-    /**\n-     * get attachment by key.\n-     *\n-     * @return attachment value.\n-     * @serial\n-     */\n-    String getAttachment(String key);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Object getObjectAttachment(String key);\n-\n-    /**\n-     * get attachment by key with default value.\n-     *\n-     * @return attachment value.\n-     * @serial\n-     */\n-    String getAttachment(String key, String defaultValue);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Object getObjectAttachment(String key, Object defaultValue);\n-\n-    /**\n-     * get the invoker in current context.\n-     *\n-     * @return invoker.\n-     * @transient\n-     */\n-    Invoker<?> getInvoker();\n-\n-    Object put(Object key, Object value);\n-\n-    Object get(Object key);\n-\n-    Map<Object, Object> getAttributes();\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.Experimental;\r\n+\r\n+import java.util.Map;\r\n+import java.util.stream.Stream;\r\n+\r\n+/**\r\n+ * Invocation. (API, Prototype, NonThreadSafe)\r\n+ *\r\n+ * @serial Don't change the class name and package name.\r\n+ * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\r\n+ * @see org.apache.dubbo.rpc.RpcInvocation\r\n+ */\r\n+public interface Invocation {\r\n+\r\n+    String getTargetServiceUniqueName();\r\n+\r\n+    String getProtocolServiceKey();\r\n+\r\n+    /**\r\n+     * get method name.\r\n+     *\r\n+     * @return method name.\r\n+     * @serial\r\n+     */\r\n+    String getMethodName();\r\n+\r\n+\r\n+    /**\r\n+     * get the interface name\r\n+     * @return\r\n+     */\r\n+    String getServiceName();\r\n+\r\n+    /**\r\n+     * get parameter types.\r\n+     *\r\n+     * @return parameter types.\r\n+     * @serial\r\n+     */\r\n+    Class<?>[] getParameterTypes();\r\n+\r\n+    /**\r\n+     * get parameter's signature, string representation of parameter types.\r\n+     *\r\n+     * @return parameter's signature\r\n+     */\r\n+    default String[] getCompatibleParamSignatures() {\r\n+        return Stream.of(getParameterTypes())\r\n+                .map(Class::getName)\r\n+                .toArray(String[]::new);\r\n+    }\r\n+\r\n+    /**\r\n+     * get arguments.\r\n+     *\r\n+     * @return arguments.\r\n+     * @serial\r\n+     */\r\n+    Object[] getArguments();\r\n+\r\n+    /**\r\n+     * get attachments.\r\n+     *\r\n+     * @return attachments.\r\n+     * @serial\r\n+     */\r\n+    Map<String, String> getAttachments();\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Map<String, Object> getObjectAttachments();\r\n+\r\n+    void setAttachment(String key, String value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setAttachment(String key, Object value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setObjectAttachment(String key, Object value);\r\n+\r\n+    void setAttachmentIfAbsent(String key, String value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setAttachmentIfAbsent(String key, Object value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setObjectAttachmentIfAbsent(String key, Object value);\r\n+\r\n+    /**\r\n+     * get attachment by key.\r\n+     *\r\n+     * @return attachment value.\r\n+     * @serial\r\n+     */\r\n+    String getAttachment(String key);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Object getObjectAttachment(String key);\r\n+\r\n+    /**\r\n+     * get attachment by key with default value.\r\n+     *\r\n+     * @return attachment value.\r\n+     * @serial\r\n+     */\r\n+    String getAttachment(String key, String defaultValue);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Object getObjectAttachment(String key, Object defaultValue);\r\n+\r\n+    /**\r\n+     * get the invoker in current context.\r\n+     *\r\n+     * @return invoker.\r\n+     * @transient\r\n+     */\r\n+    Invoker<?> getInvoker();\r\n+\r\n+    Object put(Object key, Object value);\r\n+\r\n+    Object get(Object key);\r\n+\r\n+    Map<Object, Object> getAttributes();\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/InvokeMode.java", "source2": "org/apache/dubbo/rpc/InvokeMode.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,23 +1,23 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-public enum InvokeMode {\n-\n-    SYNC, ASYNC, FUTURE;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+public enum InvokeMode {\r\n+\r\n+    SYNC, ASYNC, FUTURE;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/ListenableFilter.java", "source2": "org/apache/dubbo/rpc/ListenableFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * It's recommended to implement Filter.Listener directly for callback registration, check the default implementation,\n- * see {@link org.apache.dubbo.rpc.filter.ExceptionFilter}, for example.\n- * <p>\n- * If you do not want to share Listener instance between RPC calls. You can use ListenableFilter\n- * to keep a 'one Listener each RPC call' model.\n- */\n-public abstract class ListenableFilter implements Filter {\n-\n-    protected Listener listener = null;\n-    protected final ConcurrentMap<Invocation, Listener> listeners = new ConcurrentHashMap<>();\n-\n-    public Listener listener() {\n-        return listener;\n-    }\n-\n-    public Listener listener(Invocation invocation) {\n-        Listener invListener = listeners.get(invocation);\n-        if (invListener == null) {\n-            invListener = listener;\n-        }\n-        return invListener;\n-    }\n-\n-    public void addListener(Invocation invocation, Listener listener) {\n-        listeners.putIfAbsent(invocation, listener);\n-    }\n-\n-    public void removeListener(Invocation invocation) {\n-        listeners.remove(invocation);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * It's recommended to implement Filter.Listener directly for callback registration, check the default implementation,\r\n+ * see {@link org.apache.dubbo.rpc.filter.ExceptionFilter}, for example.\r\n+ * <p>\r\n+ * If you do not want to share Listener instance between RPC calls. You can use ListenableFilter\r\n+ * to keep a 'one Listener each RPC call' model.\r\n+ */\r\n+public abstract class ListenableFilter implements Filter {\r\n+\r\n+    protected Listener listener = null;\r\n+    protected final ConcurrentMap<Invocation, Listener> listeners = new ConcurrentHashMap<>();\r\n+\r\n+    public Listener listener() {\r\n+        return listener;\r\n+    }\r\n+\r\n+    public Listener listener(Invocation invocation) {\r\n+        Listener invListener = listeners.get(invocation);\r\n+        if (invListener == null) {\r\n+            invListener = listener;\r\n+        }\r\n+        return invListener;\r\n+    }\r\n+\r\n+    public void addListener(Invocation invocation, Listener listener) {\r\n+        listeners.putIfAbsent(invocation, listener);\r\n+    }\r\n+\r\n+    public void removeListener(Invocation invocation) {\r\n+        listeners.remove(invocation);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/ProtocolServer.java", "source2": "org/apache/dubbo/rpc/ProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,47 +1,47 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.RemotingServer;\n-\n-/**\n- * Distinct from {@link RemotingServer}, each protocol holds one or more ProtocolServers(the number usually decides by port numbers),\n- * while each ProtocolServer holds zero or one RemotingServer.\n- */\n-public interface ProtocolServer {\n-\n-    default RemotingServer getRemotingServer() {\n-        return null;\n-    }\n-\n-    default void setRemotingServers(RemotingServer server) {\n-    }\n-\n-    String getAddress();\n-\n-    void setAddress(String address);\n-\n-    default URL getUrl() {\n-        return null;\n-    }\n-\n-    default void reset(URL url) {\n-    }\n-\n-    void close();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+\r\n+/**\r\n+ * Distinct from {@link RemotingServer}, each protocol holds one or more ProtocolServers(the number usually decides by port numbers),\r\n+ * while each ProtocolServer holds zero or one RemotingServer.\r\n+ */\r\n+public interface ProtocolServer {\r\n+\r\n+    default RemotingServer getRemotingServer() {\r\n+        return null;\r\n+    }\r\n+\r\n+    default void setRemotingServers(RemotingServer server) {\r\n+    }\r\n+\r\n+    String getAddress();\r\n+\r\n+    void setAddress(String address);\r\n+\r\n+    default URL getUrl() {\r\n+        return null;\r\n+    }\r\n+\r\n+    default void reset(URL url) {\r\n+    }\r\n+\r\n+    void close();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/ProxyFactory.java", "source2": "org/apache/dubbo/rpc/ProxyFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Adaptive;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\n-\n-/**\n- * ProxyFactory. (API/SPI, Singleton, ThreadSafe)\n- */\n-@SPI(\"javassist\")\n-public interface ProxyFactory {\n-\n-    /**\n-     * create proxy.\n-     *\n-     * @param invoker\n-     * @return proxy\n-     */\n-    @Adaptive({PROXY_KEY})\n-    <T> T getProxy(Invoker<T> invoker) throws RpcException;\n-\n-    /**\n-     * create proxy.\n-     *\n-     * @param invoker\n-     * @return proxy\n-     */\n-    @Adaptive({PROXY_KEY})\n-    <T> T getProxy(Invoker<T> invoker, boolean generic) throws RpcException;\n-\n-    /**\n-     * create invoker.\n-     *\n-     * @param <T>\n-     * @param proxy\n-     * @param type\n-     * @param url\n-     * @return invoker\n-     */\n-    @Adaptive({PROXY_KEY})\n-    <T> Invoker<T> getInvoker(T proxy, Class<T> type, URL url) throws RpcException;\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Adaptive;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.PROXY_KEY;\r\n+\r\n+/**\r\n+ * ProxyFactory. (API/SPI, Singleton, ThreadSafe)\r\n+ */\r\n+@SPI(\"javassist\")\r\n+public interface ProxyFactory {\r\n+\r\n+    /**\r\n+     * create proxy.\r\n+     *\r\n+     * @param invoker\r\n+     * @return proxy\r\n+     */\r\n+    @Adaptive({PROXY_KEY})\r\n+    <T> T getProxy(Invoker<T> invoker) throws RpcException;\r\n+\r\n+    /**\r\n+     * create proxy.\r\n+     *\r\n+     * @param invoker\r\n+     * @return proxy\r\n+     */\r\n+    @Adaptive({PROXY_KEY})\r\n+    <T> T getProxy(Invoker<T> invoker, boolean generic) throws RpcException;\r\n+\r\n+    /**\r\n+     * create invoker.\r\n+     *\r\n+     * @param <T>\r\n+     * @param proxy\r\n+     * @param type\r\n+     * @param url\r\n+     * @return invoker\r\n+     */\r\n+    @Adaptive({PROXY_KEY})\r\n+    <T> Invoker<T> getInvoker(T proxy, Class<T> type, URL url) throws RpcException;\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/Result.java", "source2": "org/apache/dubbo/rpc/Result.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,189 +1,189 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.Experimental;\n-\n-import java.io.Serializable;\n-import java.util.Map;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.CompletionStage;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.Future;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-import java.util.function.BiConsumer;\n-import java.util.function.Function;\n-\n-\n-/**\n- * (API, Prototype, NonThreadSafe)\n- *\n- * An RPC {@link Result}.\n- *\n- * Known implementations are:\n- * 1. {@link AsyncRpcResult}, it's a {@link CompletionStage} whose underlying value signifies the return value of an RPC call.\n- * 2. {@link AppResponse}, it inevitably inherits {@link CompletionStage} and {@link Future}, but you should never treat AppResponse as a type of Future,\n- *    instead, it is a normal concrete type.\n- *\n- * @serial Don't change the class name and package name.\n- * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\n- * @see AppResponse\n- */\n-public interface Result extends Serializable {\n-\n-    /**\n-     * Get invoke result.\n-     *\n-     * @return result. if no result return null.\n-     */\n-    Object getValue();\n-\n-    void setValue(Object value);\n-\n-    /**\n-     * Get exception.\n-     *\n-     * @return exception. if no exception return null.\n-     */\n-    Throwable getException();\n-\n-    void setException(Throwable t);\n-\n-    /**\n-     * Has exception.\n-     *\n-     * @return has exception.\n-     */\n-    boolean hasException();\n-\n-    /**\n-     * Recreate.\n-     * <p>\n-     * <code>\n-     * if (hasException()) {\n-     * throw getException();\n-     * } else {\n-     * return getValue();\n-     * }\n-     * </code>\n-     *\n-     * @return result.\n-     * @throws if has exception throw it.\n-     */\n-    Object recreate() throws Throwable;\n-\n-    /**\n-     * get attachments.\n-     *\n-     * @return attachments.\n-     */\n-    Map<String, String> getAttachments();\n-\n-    /**\n-     * get attachments.\n-     *\n-     * @return attachments.\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Map<String, Object> getObjectAttachments();\n-\n-    /**\n-     * Add the specified map to existing attachments in this instance.\n-     *\n-     * @param map\n-     */\n-    void addAttachments(Map<String, String> map);\n-\n-    /**\n-     * Add the specified map to existing attachments in this instance.\n-     *\n-     * @param map\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void addObjectAttachments(Map<String, Object> map);\n-\n-    /**\n-     * Replace the existing attachments with the specified param.\n-     *\n-     * @param map\n-     */\n-    void setAttachments(Map<String, String> map);\n-\n-    /**\n-     * Replace the existing attachments with the specified param.\n-     *\n-     * @param map\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setObjectAttachments(Map<String, Object> map);\n-\n-    /**\n-     * get attachment by key.\n-     *\n-     * @return attachment value.\n-     */\n-    String getAttachment(String key);\n-\n-    /**\n-     * get attachment by key.\n-     *\n-     * @return attachment value.\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Object getObjectAttachment(String key);\n-\n-    /**\n-     * get attachment by key with default value.\n-     *\n-     * @return attachment value.\n-     */\n-    String getAttachment(String key, String defaultValue);\n-\n-    /**\n-     * get attachment by key with default value.\n-     *\n-     * @return attachment value.\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    Object getObjectAttachment(String key, Object defaultValue);\n-\n-    void setAttachment(String key, String value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setAttachment(String key, Object value);\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    void setObjectAttachment(String key, Object value);\n-\n-    /**\n-     * Add a callback which can be triggered when the RPC call finishes.\n-     * <p>\n-     * Just as the method name implies, this method will guarantee the callback being triggered under the same context as when the call was started,\n-     * see implementation in {@link Result#whenCompleteWithContext(BiConsumer)}\n-     *\n-     * @param fn\n-     * @return\n-     */\n-    Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn);\n-\n-    <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn);\n-\n-    Result get() throws InterruptedException, ExecutionException;\n-\n-    Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.Experimental;\r\n+\r\n+import java.io.Serializable;\r\n+import java.util.Map;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.CompletionStage;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.Future;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+import java.util.function.BiConsumer;\r\n+import java.util.function.Function;\r\n+\r\n+\r\n+/**\r\n+ * (API, Prototype, NonThreadSafe)\r\n+ *\r\n+ * An RPC {@link Result}.\r\n+ *\r\n+ * Known implementations are:\r\n+ * 1. {@link AsyncRpcResult}, it's a {@link CompletionStage} whose underlying value signifies the return value of an RPC call.\r\n+ * 2. {@link AppResponse}, it inevitably inherits {@link CompletionStage} and {@link Future}, but you should never treat AppResponse as a type of Future,\r\n+ *    instead, it is a normal concrete type.\r\n+ *\r\n+ * @serial Don't change the class name and package name.\r\n+ * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\r\n+ * @see AppResponse\r\n+ */\r\n+public interface Result extends Serializable {\r\n+\r\n+    /**\r\n+     * Get invoke result.\r\n+     *\r\n+     * @return result. if no result return null.\r\n+     */\r\n+    Object getValue();\r\n+\r\n+    void setValue(Object value);\r\n+\r\n+    /**\r\n+     * Get exception.\r\n+     *\r\n+     * @return exception. if no exception return null.\r\n+     */\r\n+    Throwable getException();\r\n+\r\n+    void setException(Throwable t);\r\n+\r\n+    /**\r\n+     * Has exception.\r\n+     *\r\n+     * @return has exception.\r\n+     */\r\n+    boolean hasException();\r\n+\r\n+    /**\r\n+     * Recreate.\r\n+     * <p>\r\n+     * <code>\r\n+     * if (hasException()) {\r\n+     * throw getException();\r\n+     * } else {\r\n+     * return getValue();\r\n+     * }\r\n+     * </code>\r\n+     *\r\n+     * @return result.\r\n+     * @throws if has exception throw it.\r\n+     */\r\n+    Object recreate() throws Throwable;\r\n+\r\n+    /**\r\n+     * get attachments.\r\n+     *\r\n+     * @return attachments.\r\n+     */\r\n+    Map<String, String> getAttachments();\r\n+\r\n+    /**\r\n+     * get attachments.\r\n+     *\r\n+     * @return attachments.\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Map<String, Object> getObjectAttachments();\r\n+\r\n+    /**\r\n+     * Add the specified map to existing attachments in this instance.\r\n+     *\r\n+     * @param map\r\n+     */\r\n+    void addAttachments(Map<String, String> map);\r\n+\r\n+    /**\r\n+     * Add the specified map to existing attachments in this instance.\r\n+     *\r\n+     * @param map\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void addObjectAttachments(Map<String, Object> map);\r\n+\r\n+    /**\r\n+     * Replace the existing attachments with the specified param.\r\n+     *\r\n+     * @param map\r\n+     */\r\n+    void setAttachments(Map<String, String> map);\r\n+\r\n+    /**\r\n+     * Replace the existing attachments with the specified param.\r\n+     *\r\n+     * @param map\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setObjectAttachments(Map<String, Object> map);\r\n+\r\n+    /**\r\n+     * get attachment by key.\r\n+     *\r\n+     * @return attachment value.\r\n+     */\r\n+    String getAttachment(String key);\r\n+\r\n+    /**\r\n+     * get attachment by key.\r\n+     *\r\n+     * @return attachment value.\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Object getObjectAttachment(String key);\r\n+\r\n+    /**\r\n+     * get attachment by key with default value.\r\n+     *\r\n+     * @return attachment value.\r\n+     */\r\n+    String getAttachment(String key, String defaultValue);\r\n+\r\n+    /**\r\n+     * get attachment by key with default value.\r\n+     *\r\n+     * @return attachment value.\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    Object getObjectAttachment(String key, Object defaultValue);\r\n+\r\n+    void setAttachment(String key, String value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setAttachment(String key, Object value);\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    void setObjectAttachment(String key, Object value);\r\n+\r\n+    /**\r\n+     * Add a callback which can be triggered when the RPC call finishes.\r\n+     * <p>\r\n+     * Just as the method name implies, this method will guarantee the callback being triggered under the same context as when the call was started,\r\n+     * see implementation in {@link Result#whenCompleteWithContext(BiConsumer)}\r\n+     *\r\n+     * @param fn\r\n+     * @return\r\n+     */\r\n+    Result whenCompleteWithContext(BiConsumer<Result, Throwable> fn);\r\n+\r\n+    <U> CompletableFuture<U> thenApply(Function<Result, ? extends U> fn);\r\n+\r\n+    Result get() throws InterruptedException, ExecutionException;\r\n+\r\n+    Result get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException;\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/RpcContext.java", "source2": "org/apache/dubbo/rpc/RpcContext.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,859 +1,859 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.Experimental;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.threadlocal.InternalThreadLocal;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.net.InetSocketAddress;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.Callable;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.Future;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\n-import static org.apache.dubbo.rpc.Constants.RETURN_KEY;\n-\n-\n-/**\n- * Thread local context. (API, ThreadLocal, ThreadSafe)\n- * <p>\n- * Note: RpcContext is a temporary state holder. States in RpcContext changes every time when request is sent or received.\n- * For example: A invokes B, then B invokes C. On service B, RpcContext saves invocation info from A to B before B\n- * starts invoking C, and saves invocation info from B to C after B invokes C.\n- *\n- * @export\n- * @see org.apache.dubbo.rpc.filter.ContextFilter\n- */\n-public class RpcContext {\n-\n-    /**\n-     * use internal thread local to improve performance\n-     */\n-    // FIXME REQUEST_CONTEXT\n-    private static final InternalThreadLocal<RpcContext> LOCAL = new InternalThreadLocal<RpcContext>() {\n-        @Override\n-        protected RpcContext initialValue() {\n-            return new RpcContext();\n-        }\n-    };\n-\n-    // FIXME RESPONSE_CONTEXT\n-    private static final InternalThreadLocal<RpcContext> SERVER_LOCAL = new InternalThreadLocal<RpcContext>() {\n-        @Override\n-        protected RpcContext initialValue() {\n-            return new RpcContext();\n-        }\n-    };\n-\n-    protected final Map<String, Object> attachments = new HashMap<>();\n-    private final Map<String, Object> values = new HashMap<String, Object>();\n-\n-    private List<URL> urls;\n-\n-    private URL url;\n-\n-    private String methodName;\n-\n-    private Class<?>[] parameterTypes;\n-\n-    private Object[] arguments;\n-\n-    private InetSocketAddress localAddress;\n-\n-    private InetSocketAddress remoteAddress;\n-\n-    private String remoteApplicationName;\n-\n-    @Deprecated\n-    private List<Invoker<?>> invokers;\n-    @Deprecated\n-    private Invoker<?> invoker;\n-    @Deprecated\n-    private Invocation invocation;\n-\n-    // now we don't use the 'values' map to hold these objects\n-    // we want these objects to be as generic as possible\n-    private Object request;\n-    private Object response;\n-    private AsyncContext asyncContext;\n-\n-    private boolean remove = true;\n-\n-\n-    protected RpcContext() {\n-    }\n-\n-    /**\n-     * get server side context.\n-     *\n-     * @return server context\n-     */\n-    public static RpcContext getServerContext() {\n-        return SERVER_LOCAL.get();\n-    }\n-\n-    public static void restoreServerContext(RpcContext oldServerContext) {\n-        SERVER_LOCAL.set(oldServerContext);\n-    }\n-\n-    /**\n-     * remove server side context.\n-     *\n-     * @see org.apache.dubbo.rpc.filter.ContextFilter\n-     */\n-    public static void removeServerContext() {\n-        SERVER_LOCAL.remove();\n-    }\n-\n-    /**\n-     * get context.\n-     *\n-     * @return context\n-     */\n-    public static RpcContext getContext() {\n-        return LOCAL.get();\n-    }\n-\n-    public boolean canRemove() {\n-        return remove;\n-    }\n-\n-    public void clearAfterEachInvoke(boolean remove) {\n-        this.remove = remove;\n-    }\n-\n-    public static void restoreContext(RpcContext oldContext) {\n-        LOCAL.set(oldContext);\n-    }\n-\n-    /**\n-     * remove context.\n-     *\n-     * @see org.apache.dubbo.rpc.filter.ContextFilter\n-     */\n-    public static void removeContext() {\n-        removeContext(false);\n-    }\n-\n-    /**\n-     * customized for internal use.\n-     *\n-     * @param checkCanRemove if need check before remove\n-     */\n-    public static void removeContext(boolean checkCanRemove) {\n-        if (LOCAL.get().canRemove()) {\n-            LOCAL.remove();\n-        }\n-    }\n-\n-    /**\n-     * Get the request object of the underlying RPC protocol, e.g. HttpServletRequest\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting request\n-     */\n-    public Object getRequest() {\n-        return request;\n-    }\n-\n-    public void setRequest(Object request) {\n-        this.request = request;\n-    }\n-\n-    /**\n-     * Get the request object of the underlying RPC protocol, e.g. HttpServletRequest\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting request or the request is not of the specified type\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T getRequest(Class<T> clazz) {\n-        return (request != null && clazz.isAssignableFrom(request.getClass())) ? (T) request : null;\n-    }\n-\n-    /**\n-     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting response\n-     */\n-    public Object getResponse() {\n-        return response;\n-    }\n-\n-    public void setResponse(Object response) {\n-        this.response = response;\n-    }\n-\n-    /**\n-     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\n-     *\n-     * @return null if the underlying protocol doesn't provide support for getting response or the response is not of the specified type\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T getResponse(Class<T> clazz) {\n-        return (response != null && clazz.isAssignableFrom(response.getClass())) ? (T) response : null;\n-    }\n-\n-    /**\n-     * is provider side.\n-     *\n-     * @return provider side.\n-     */\n-    public boolean isProviderSide() {\n-        return !isConsumerSide();\n-    }\n-\n-    /**\n-     * is consumer side.\n-     *\n-     * @return consumer side.\n-     */\n-    public boolean isConsumerSide() {\n-        return getUrl().getParameter(SIDE_KEY, PROVIDER_SIDE).equals(CONSUMER_SIDE);\n-    }\n-\n-    /**\n-     * get CompletableFuture.\n-     *\n-     * @param <T>\n-     * @return future\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> CompletableFuture<T> getCompletableFuture() {\n-        return FutureContext.getContext().getCompletableFuture();\n-    }\n-\n-    /**\n-     * get future.\n-     *\n-     * @param <T>\n-     * @return future\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> Future<T> getFuture() {\n-        return FutureContext.getContext().getCompletableFuture();\n-    }\n-\n-    /**\n-     * set future.\n-     *\n-     * @param future\n-     */\n-    public void setFuture(CompletableFuture<?> future) {\n-        FutureContext.getContext().setFuture(future);\n-    }\n-\n-    public List<URL> getUrls() {\n-        return urls == null && url != null ? (List<URL>) Arrays.asList(url) : urls;\n-    }\n-\n-    public void setUrls(List<URL> urls) {\n-        this.urls = urls;\n-    }\n-\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public void setUrl(URL url) {\n-        this.url = url;\n-    }\n-\n-    /**\n-     * get method name.\n-     *\n-     * @return method name.\n-     */\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    public void setMethodName(String methodName) {\n-        this.methodName = methodName;\n-    }\n-\n-    /**\n-     * get parameter types.\n-     *\n-     * @serial\n-     */\n-    public Class<?>[] getParameterTypes() {\n-        return parameterTypes;\n-    }\n-\n-    public void setParameterTypes(Class<?>[] parameterTypes) {\n-        this.parameterTypes = parameterTypes;\n-    }\n-\n-    /**\n-     * get arguments.\n-     *\n-     * @return arguments.\n-     */\n-    public Object[] getArguments() {\n-        return arguments;\n-    }\n-\n-    public void setArguments(Object[] arguments) {\n-        this.arguments = arguments;\n-    }\n-\n-    /**\n-     * set local address.\n-     *\n-     * @param host\n-     * @param port\n-     * @return context\n-     */\n-    public RpcContext setLocalAddress(String host, int port) {\n-        if (port < 0) {\n-            port = 0;\n-        }\n-        this.localAddress = InetSocketAddress.createUnresolved(host, port);\n-        return this;\n-    }\n-\n-    /**\n-     * get local address.\n-     *\n-     * @return local address\n-     */\n-    public InetSocketAddress getLocalAddress() {\n-        return localAddress;\n-    }\n-\n-    /**\n-     * set local address.\n-     *\n-     * @param address\n-     * @return context\n-     */\n-    public RpcContext setLocalAddress(InetSocketAddress address) {\n-        this.localAddress = address;\n-        return this;\n-    }\n-\n-    public String getLocalAddressString() {\n-        return getLocalHost() + \":\" + getLocalPort();\n-    }\n-\n-    /**\n-     * get local host name.\n-     *\n-     * @return local host name\n-     */\n-    public String getLocalHostName() {\n-        String host = localAddress == null ? null : localAddress.getHostName();\n-        if (StringUtils.isEmpty(host)) {\n-            return getLocalHost();\n-        }\n-        return host;\n-    }\n-\n-    /**\n-     * set remote address.\n-     *\n-     * @param host\n-     * @param port\n-     * @return context\n-     */\n-    public RpcContext setRemoteAddress(String host, int port) {\n-        if (port < 0) {\n-            port = 0;\n-        }\n-        this.remoteAddress = InetSocketAddress.createUnresolved(host, port);\n-        return this;\n-    }\n-\n-    /**\n-     * get remote address.\n-     *\n-     * @return remote address\n-     */\n-    public InetSocketAddress getRemoteAddress() {\n-        return remoteAddress;\n-    }\n-\n-    /**\n-     * set remote address.\n-     *\n-     * @param address\n-     * @return context\n-     */\n-    public RpcContext setRemoteAddress(InetSocketAddress address) {\n-        this.remoteAddress = address;\n-        return this;\n-    }\n-\n-    public String getRemoteApplicationName() {\n-        return remoteApplicationName;\n-    }\n-\n-    public RpcContext setRemoteApplicationName(String remoteApplicationName) {\n-        this.remoteApplicationName = remoteApplicationName;\n-        return this;\n-    }\n-\n-    /**\n-     * get remote address string.\n-     *\n-     * @return remote address string.\n-     */\n-    public String getRemoteAddressString() {\n-        return getRemoteHost() + \":\" + getRemotePort();\n-    }\n-\n-    /**\n-     * get remote host name.\n-     *\n-     * @return remote host name\n-     */\n-    public String getRemoteHostName() {\n-        return remoteAddress == null ? null : remoteAddress.getHostName();\n-    }\n-\n-    /**\n-     * get local host.\n-     *\n-     * @return local host\n-     */\n-    public String getLocalHost() {\n-        String host = localAddress == null ? null :\n-                localAddress.getAddress() == null ? localAddress.getHostName()\n-                        : NetUtils.filterLocalHost(localAddress.getAddress().getHostAddress());\n-        if (host == null || host.length() == 0) {\n-            return NetUtils.getLocalHost();\n-        }\n-        return host;\n-    }\n-\n-    /**\n-     * get local port.\n-     *\n-     * @return port\n-     */\n-    public int getLocalPort() {\n-        return localAddress == null ? 0 : localAddress.getPort();\n-    }\n-\n-    /**\n-     * get remote host.\n-     *\n-     * @return remote host\n-     */\n-    public String getRemoteHost() {\n-        return remoteAddress == null ? null :\n-                remoteAddress.getAddress() == null ? remoteAddress.getHostName()\n-                        : NetUtils.filterLocalHost(remoteAddress.getAddress().getHostAddress());\n-    }\n-\n-    /**\n-     * get remote port.\n-     *\n-     * @return remote port\n-     */\n-    public int getRemotePort() {\n-        return remoteAddress == null ? 0 : remoteAddress.getPort();\n-    }\n-\n-    /**\n-     * also see {@link #getObjectAttachment(String)}.\n-     *\n-     * @param key\n-     * @return attachment\n-     */\n-    public String getAttachment(String key) {\n-        Object value = attachments.get(key);\n-        if (value instanceof String) {\n-            return (String) value;\n-        }\n-        return null; // or JSON.toString(value);\n-    }\n-\n-    /**\n-     * get attachment.\n-     *\n-     * @param key\n-     * @return attachment\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    public Object getObjectAttachment(String key) {\n-        return attachments.get(key);\n-    }\n-\n-    /**\n-     * set attachment.\n-     *\n-     * @param key\n-     * @param value\n-     * @return context\n-     */\n-    public RpcContext setAttachment(String key, String value) {\n-        return setObjectAttachment(key, (Object) value);\n-    }\n-\n-    public RpcContext setAttachment(String key, Object value) {\n-        return setObjectAttachment(key, value);\n-    }\n-\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    public RpcContext setObjectAttachment(String key, Object value) {\n-        if (value == null) {\n-            attachments.remove(key);\n-        } else {\n-            attachments.put(key, value);\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * remove attachment.\n-     *\n-     * @param key\n-     * @return context\n-     */\n-    public RpcContext removeAttachment(String key) {\n-        attachments.remove(key);\n-        return this;\n-    }\n-\n-    /**\n-     * get attachments.\n-     *\n-     * @return attachments\n-     */\n-    @Deprecated\n-    public Map<String, String> getAttachments() {\n-        return new AttachmentsAdapter.ObjectToStringMap(this.getObjectAttachments());\n-    }\n-\n-    /**\n-     * get attachments.\n-     *\n-     * @return attachments\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    public Map<String, Object> getObjectAttachments() {\n-        return attachments;\n-    }\n-\n-    /**\n-     * set attachments\n-     *\n-     * @param attachment\n-     * @return context\n-     */\n-    public RpcContext setAttachments(Map<String, String> attachment) {\n-        this.attachments.clear();\n-        if (attachment != null && attachment.size() > 0) {\n-            this.attachments.putAll(attachment);\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * set attachments\n-     *\n-     * @param attachment\n-     * @return context\n-     */\n-    @Experimental(\"Experiment api for supporting Object transmission\")\n-    public RpcContext setObjectAttachments(Map<String, Object> attachment) {\n-        this.attachments.clear();\n-        if (attachment != null && attachment.size() > 0) {\n-            this.attachments.putAll(attachment);\n-        }\n-        return this;\n-    }\n-\n-    public void clearAttachments() {\n-        this.attachments.clear();\n-    }\n-\n-    /**\n-     * get values.\n-     *\n-     * @return values\n-     */\n-    public Map<String, Object> get() {\n-        return values;\n-    }\n-\n-    /**\n-     * set value.\n-     *\n-     * @param key\n-     * @param value\n-     * @return context\n-     */\n-    public RpcContext set(String key, Object value) {\n-        if (value == null) {\n-            values.remove(key);\n-        } else {\n-            values.put(key, value);\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * remove value.\n-     *\n-     * @param key\n-     * @return value\n-     */\n-    public RpcContext remove(String key) {\n-        values.remove(key);\n-        return this;\n-    }\n-\n-    /**\n-     * get value.\n-     *\n-     * @param key\n-     * @return value\n-     */\n-    public Object get(String key) {\n-        return values.get(key);\n-    }\n-\n-    /**\n-     * @deprecated Replace to isProviderSide()\n-     */\n-    @Deprecated\n-    public boolean isServerSide() {\n-        return isProviderSide();\n-    }\n-\n-    /**\n-     * @deprecated Replace to isConsumerSide()\n-     */\n-    @Deprecated\n-    public boolean isClientSide() {\n-        return isConsumerSide();\n-    }\n-\n-    /**\n-     * @deprecated Replace to getUrls()\n-     */\n-    @Deprecated\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public List<Invoker<?>> getInvokers() {\n-        return invokers == null && invoker != null ? (List) Arrays.asList(invoker) : invokers;\n-    }\n-\n-    public RpcContext setInvokers(List<Invoker<?>> invokers) {\n-        this.invokers = invokers;\n-        if (CollectionUtils.isNotEmpty(invokers)) {\n-            List<URL> urls = new ArrayList<URL>(invokers.size());\n-            for (Invoker<?> invoker : invokers) {\n-                urls.add(invoker.getUrl());\n-            }\n-            setUrls(urls);\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * @deprecated Replace to getUrl()\n-     */\n-    @Deprecated\n-    public Invoker<?> getInvoker() {\n-        return invoker;\n-    }\n-\n-    public RpcContext setInvoker(Invoker<?> invoker) {\n-        this.invoker = invoker;\n-        if (invoker != null) {\n-            setUrl(invoker.getUrl());\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * @deprecated Replace to getMethodName(), getParameterTypes(), getArguments()\n-     */\n-    @Deprecated\n-    public Invocation getInvocation() {\n-        return invocation;\n-    }\n-\n-    public RpcContext setInvocation(Invocation invocation) {\n-        this.invocation = invocation;\n-        if (invocation != null) {\n-            setMethodName(invocation.getMethodName());\n-            setParameterTypes(invocation.getParameterTypes());\n-            setArguments(invocation.getArguments());\n-        }\n-        return this;\n-    }\n-\n-    /**\n-     * Async invocation. Timeout will be handled even if <code>Future.get()</code> is not called.\n-     *\n-     * @param callable\n-     * @return get the return result from <code>future.get()</code>\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> CompletableFuture<T> asyncCall(Callable<T> callable) {\n-        try {\n-            try {\n-                setAttachment(ASYNC_KEY, Boolean.TRUE.toString());\n-                final T o = callable.call();\n-                //local invoke will return directly\n-                if (o != null) {\n-                    if (o instanceof CompletableFuture) {\n-                        return (CompletableFuture<T>) o;\n-                    }\n-                    return CompletableFuture.completedFuture(o);\n-                } else {\n-                    // The service has a normal sync method signature, should get future from RpcContext.\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(e);\n-            } finally {\n-                removeAttachment(ASYNC_KEY);\n-            }\n-        } catch (final RpcException e) {\n-            CompletableFuture<T> exceptionFuture = new CompletableFuture<>();\n-            exceptionFuture.completeExceptionally(e);\n-            return exceptionFuture;\n-        }\n-        return ((CompletableFuture<T>) getContext().getFuture());\n-    }\n-\n-    /**\n-     * one way async call, send request only, and result is not required\n-     *\n-     * @param runnable\n-     */\n-    public void asyncCall(Runnable runnable) {\n-        try {\n-            setAttachment(RETURN_KEY, Boolean.FALSE.toString());\n-            runnable.run();\n-        } catch (Throwable e) {\n-            // FIXME should put exception in future?\n-            throw new RpcException(\"oneway call error .\" + e.getMessage(), e);\n-        } finally {\n-            removeAttachment(RETURN_KEY);\n-        }\n-    }\n-\n-    /**\n-     * @return\n-     * @throws IllegalStateException\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    public static AsyncContext startAsync() throws IllegalStateException {\n-        RpcContext currentContext = getContext();\n-        if (currentContext.asyncContext == null) {\n-            currentContext.asyncContext = new AsyncContextImpl();\n-        }\n-        currentContext.asyncContext.start();\n-        return currentContext.asyncContext;\n-    }\n-\n-    protected void setAsyncContext(AsyncContext asyncContext) {\n-        this.asyncContext = asyncContext;\n-    }\n-\n-    public boolean isAsyncStarted() {\n-        if (this.asyncContext == null) {\n-            return false;\n-        }\n-        return asyncContext.isAsyncStarted();\n-    }\n-\n-    public boolean stopAsync() {\n-        return asyncContext.stop();\n-    }\n-\n-    public AsyncContext getAsyncContext() {\n-        return asyncContext;\n-    }\n-\n-    // RPC service context updated before each service call.\n-    private URL consumerUrl;\n-\n-    public String getGroup() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getParameter(GROUP_KEY);\n-    }\n-\n-    public String getVersion() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getParameter(VERSION_KEY);\n-    }\n-\n-    public String getInterfaceName() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getServiceInterface();\n-    }\n-\n-    public String getProtocol() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getParameter(PROTOCOL_KEY, DUBBO);\n-    }\n-\n-    public String getServiceKey() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getServiceKey();\n-    }\n-\n-    public String getProtocolServiceKey() {\n-        if (consumerUrl == null) {\n-            return null;\n-        }\n-        return consumerUrl.getProtocolServiceKey();\n-    }\n-\n-    public URL getConsumerUrl() {\n-        return consumerUrl;\n-    }\n-\n-    public void setConsumerUrl(URL consumerUrl) {\n-        this.consumerUrl = consumerUrl;\n-    }\n-\n-    public static void setRpcContext(URL url) {\n-        RpcContext rpcContext = RpcContext.getContext();\n-        rpcContext.setConsumerUrl(url);\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.Experimental;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.threadlocal.InternalThreadLocal;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.Callable;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.Future;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SIDE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.RETURN_KEY;\r\n+\r\n+\r\n+/**\r\n+ * Thread local context. (API, ThreadLocal, ThreadSafe)\r\n+ * <p>\r\n+ * Note: RpcContext is a temporary state holder. States in RpcContext changes every time when request is sent or received.\r\n+ * For example: A invokes B, then B invokes C. On service B, RpcContext saves invocation info from A to B before B\r\n+ * starts invoking C, and saves invocation info from B to C after B invokes C.\r\n+ *\r\n+ * @export\r\n+ * @see org.apache.dubbo.rpc.filter.ContextFilter\r\n+ */\r\n+public class RpcContext {\r\n+\r\n+    /**\r\n+     * use internal thread local to improve performance\r\n+     */\r\n+    // FIXME REQUEST_CONTEXT\r\n+    private static final InternalThreadLocal<RpcContext> LOCAL = new InternalThreadLocal<RpcContext>() {\r\n+        @Override\r\n+        protected RpcContext initialValue() {\r\n+            return new RpcContext();\r\n+        }\r\n+    };\r\n+\r\n+    // FIXME RESPONSE_CONTEXT\r\n+    private static final InternalThreadLocal<RpcContext> SERVER_LOCAL = new InternalThreadLocal<RpcContext>() {\r\n+        @Override\r\n+        protected RpcContext initialValue() {\r\n+            return new RpcContext();\r\n+        }\r\n+    };\r\n+\r\n+    protected final Map<String, Object> attachments = new HashMap<>();\r\n+    private final Map<String, Object> values = new HashMap<String, Object>();\r\n+\r\n+    private List<URL> urls;\r\n+\r\n+    private URL url;\r\n+\r\n+    private String methodName;\r\n+\r\n+    private Class<?>[] parameterTypes;\r\n+\r\n+    private Object[] arguments;\r\n+\r\n+    private InetSocketAddress localAddress;\r\n+\r\n+    private InetSocketAddress remoteAddress;\r\n+\r\n+    private String remoteApplicationName;\r\n+\r\n+    @Deprecated\r\n+    private List<Invoker<?>> invokers;\r\n+    @Deprecated\r\n+    private Invoker<?> invoker;\r\n+    @Deprecated\r\n+    private Invocation invocation;\r\n+\r\n+    // now we don't use the 'values' map to hold these objects\r\n+    // we want these objects to be as generic as possible\r\n+    private Object request;\r\n+    private Object response;\r\n+    private AsyncContext asyncContext;\r\n+\r\n+    private boolean remove = true;\r\n+\r\n+\r\n+    protected RpcContext() {\r\n+    }\r\n+\r\n+    /**\r\n+     * get server side context.\r\n+     *\r\n+     * @return server context\r\n+     */\r\n+    public static RpcContext getServerContext() {\r\n+        return SERVER_LOCAL.get();\r\n+    }\r\n+\r\n+    public static void restoreServerContext(RpcContext oldServerContext) {\r\n+        SERVER_LOCAL.set(oldServerContext);\r\n+    }\r\n+\r\n+    /**\r\n+     * remove server side context.\r\n+     *\r\n+     * @see org.apache.dubbo.rpc.filter.ContextFilter\r\n+     */\r\n+    public static void removeServerContext() {\r\n+        SERVER_LOCAL.remove();\r\n+    }\r\n+\r\n+    /**\r\n+     * get context.\r\n+     *\r\n+     * @return context\r\n+     */\r\n+    public static RpcContext getContext() {\r\n+        return LOCAL.get();\r\n+    }\r\n+\r\n+    public boolean canRemove() {\r\n+        return remove;\r\n+    }\r\n+\r\n+    public void clearAfterEachInvoke(boolean remove) {\r\n+        this.remove = remove;\r\n+    }\r\n+\r\n+    public static void restoreContext(RpcContext oldContext) {\r\n+        LOCAL.set(oldContext);\r\n+    }\r\n+\r\n+    /**\r\n+     * remove context.\r\n+     *\r\n+     * @see org.apache.dubbo.rpc.filter.ContextFilter\r\n+     */\r\n+    public static void removeContext() {\r\n+        removeContext(false);\r\n+    }\r\n+\r\n+    /**\r\n+     * customized for internal use.\r\n+     *\r\n+     * @param checkCanRemove if need check before remove\r\n+     */\r\n+    public static void removeContext(boolean checkCanRemove) {\r\n+        if (LOCAL.get().canRemove()) {\r\n+            LOCAL.remove();\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the request object of the underlying RPC protocol, e.g. HttpServletRequest\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting request\r\n+     */\r\n+    public Object getRequest() {\r\n+        return request;\r\n+    }\r\n+\r\n+    public void setRequest(Object request) {\r\n+        this.request = request;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the request object of the underlying RPC protocol, e.g. HttpServletRequest\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting request or the request is not of the specified type\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T getRequest(Class<T> clazz) {\r\n+        return (request != null && clazz.isAssignableFrom(request.getClass())) ? (T) request : null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting response\r\n+     */\r\n+    public Object getResponse() {\r\n+        return response;\r\n+    }\r\n+\r\n+    public void setResponse(Object response) {\r\n+        this.response = response;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the response object of the underlying RPC protocol, e.g. HttpServletResponse\r\n+     *\r\n+     * @return null if the underlying protocol doesn't provide support for getting response or the response is not of the specified type\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T getResponse(Class<T> clazz) {\r\n+        return (response != null && clazz.isAssignableFrom(response.getClass())) ? (T) response : null;\r\n+    }\r\n+\r\n+    /**\r\n+     * is provider side.\r\n+     *\r\n+     * @return provider side.\r\n+     */\r\n+    public boolean isProviderSide() {\r\n+        return !isConsumerSide();\r\n+    }\r\n+\r\n+    /**\r\n+     * is consumer side.\r\n+     *\r\n+     * @return consumer side.\r\n+     */\r\n+    public boolean isConsumerSide() {\r\n+        return getUrl().getParameter(SIDE_KEY, PROVIDER_SIDE).equals(CONSUMER_SIDE);\r\n+    }\r\n+\r\n+    /**\r\n+     * get CompletableFuture.\r\n+     *\r\n+     * @param <T>\r\n+     * @return future\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> CompletableFuture<T> getCompletableFuture() {\r\n+        return FutureContext.getContext().getCompletableFuture();\r\n+    }\r\n+\r\n+    /**\r\n+     * get future.\r\n+     *\r\n+     * @param <T>\r\n+     * @return future\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> Future<T> getFuture() {\r\n+        return FutureContext.getContext().getCompletableFuture();\r\n+    }\r\n+\r\n+    /**\r\n+     * set future.\r\n+     *\r\n+     * @param future\r\n+     */\r\n+    public void setFuture(CompletableFuture<?> future) {\r\n+        FutureContext.getContext().setFuture(future);\r\n+    }\r\n+\r\n+    public List<URL> getUrls() {\r\n+        return urls == null && url != null ? (List<URL>) Arrays.asList(url) : urls;\r\n+    }\r\n+\r\n+    public void setUrls(List<URL> urls) {\r\n+        this.urls = urls;\r\n+    }\r\n+\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public void setUrl(URL url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    /**\r\n+     * get method name.\r\n+     *\r\n+     * @return method name.\r\n+     */\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    public void setMethodName(String methodName) {\r\n+        this.methodName = methodName;\r\n+    }\r\n+\r\n+    /**\r\n+     * get parameter types.\r\n+     *\r\n+     * @serial\r\n+     */\r\n+    public Class<?>[] getParameterTypes() {\r\n+        return parameterTypes;\r\n+    }\r\n+\r\n+    public void setParameterTypes(Class<?>[] parameterTypes) {\r\n+        this.parameterTypes = parameterTypes;\r\n+    }\r\n+\r\n+    /**\r\n+     * get arguments.\r\n+     *\r\n+     * @return arguments.\r\n+     */\r\n+    public Object[] getArguments() {\r\n+        return arguments;\r\n+    }\r\n+\r\n+    public void setArguments(Object[] arguments) {\r\n+        this.arguments = arguments;\r\n+    }\r\n+\r\n+    /**\r\n+     * set local address.\r\n+     *\r\n+     * @param host\r\n+     * @param port\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setLocalAddress(String host, int port) {\r\n+        if (port < 0) {\r\n+            port = 0;\r\n+        }\r\n+        this.localAddress = InetSocketAddress.createUnresolved(host, port);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get local address.\r\n+     *\r\n+     * @return local address\r\n+     */\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return localAddress;\r\n+    }\r\n+\r\n+    /**\r\n+     * set local address.\r\n+     *\r\n+     * @param address\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setLocalAddress(InetSocketAddress address) {\r\n+        this.localAddress = address;\r\n+        return this;\r\n+    }\r\n+\r\n+    public String getLocalAddressString() {\r\n+        return getLocalHost() + \":\" + getLocalPort();\r\n+    }\r\n+\r\n+    /**\r\n+     * get local host name.\r\n+     *\r\n+     * @return local host name\r\n+     */\r\n+    public String getLocalHostName() {\r\n+        String host = localAddress == null ? null : localAddress.getHostName();\r\n+        if (StringUtils.isEmpty(host)) {\r\n+            return getLocalHost();\r\n+        }\r\n+        return host;\r\n+    }\r\n+\r\n+    /**\r\n+     * set remote address.\r\n+     *\r\n+     * @param host\r\n+     * @param port\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setRemoteAddress(String host, int port) {\r\n+        if (port < 0) {\r\n+            port = 0;\r\n+        }\r\n+        this.remoteAddress = InetSocketAddress.createUnresolved(host, port);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get remote address.\r\n+     *\r\n+     * @return remote address\r\n+     */\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return remoteAddress;\r\n+    }\r\n+\r\n+    /**\r\n+     * set remote address.\r\n+     *\r\n+     * @param address\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setRemoteAddress(InetSocketAddress address) {\r\n+        this.remoteAddress = address;\r\n+        return this;\r\n+    }\r\n+\r\n+    public String getRemoteApplicationName() {\r\n+        return remoteApplicationName;\r\n+    }\r\n+\r\n+    public RpcContext setRemoteApplicationName(String remoteApplicationName) {\r\n+        this.remoteApplicationName = remoteApplicationName;\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get remote address string.\r\n+     *\r\n+     * @return remote address string.\r\n+     */\r\n+    public String getRemoteAddressString() {\r\n+        return getRemoteHost() + \":\" + getRemotePort();\r\n+    }\r\n+\r\n+    /**\r\n+     * get remote host name.\r\n+     *\r\n+     * @return remote host name\r\n+     */\r\n+    public String getRemoteHostName() {\r\n+        return remoteAddress == null ? null : remoteAddress.getHostName();\r\n+    }\r\n+\r\n+    /**\r\n+     * get local host.\r\n+     *\r\n+     * @return local host\r\n+     */\r\n+    public String getLocalHost() {\r\n+        String host = localAddress == null ? null :\r\n+                localAddress.getAddress() == null ? localAddress.getHostName()\r\n+                        : NetUtils.filterLocalHost(localAddress.getAddress().getHostAddress());\r\n+        if (host == null || host.length() == 0) {\r\n+            return NetUtils.getLocalHost();\r\n+        }\r\n+        return host;\r\n+    }\r\n+\r\n+    /**\r\n+     * get local port.\r\n+     *\r\n+     * @return port\r\n+     */\r\n+    public int getLocalPort() {\r\n+        return localAddress == null ? 0 : localAddress.getPort();\r\n+    }\r\n+\r\n+    /**\r\n+     * get remote host.\r\n+     *\r\n+     * @return remote host\r\n+     */\r\n+    public String getRemoteHost() {\r\n+        return remoteAddress == null ? null :\r\n+                remoteAddress.getAddress() == null ? remoteAddress.getHostName()\r\n+                        : NetUtils.filterLocalHost(remoteAddress.getAddress().getHostAddress());\r\n+    }\r\n+\r\n+    /**\r\n+     * get remote port.\r\n+     *\r\n+     * @return remote port\r\n+     */\r\n+    public int getRemotePort() {\r\n+        return remoteAddress == null ? 0 : remoteAddress.getPort();\r\n+    }\r\n+\r\n+    /**\r\n+     * also see {@link #getObjectAttachment(String)}.\r\n+     *\r\n+     * @param key\r\n+     * @return attachment\r\n+     */\r\n+    public String getAttachment(String key) {\r\n+        Object value = attachments.get(key);\r\n+        if (value instanceof String) {\r\n+            return (String) value;\r\n+        }\r\n+        return null; // or JSON.toString(value);\r\n+    }\r\n+\r\n+    /**\r\n+     * get attachment.\r\n+     *\r\n+     * @param key\r\n+     * @return attachment\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    public Object getObjectAttachment(String key) {\r\n+        return attachments.get(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * set attachment.\r\n+     *\r\n+     * @param key\r\n+     * @param value\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setAttachment(String key, String value) {\r\n+        return setObjectAttachment(key, (Object) value);\r\n+    }\r\n+\r\n+    public RpcContext setAttachment(String key, Object value) {\r\n+        return setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    public RpcContext setObjectAttachment(String key, Object value) {\r\n+        if (value == null) {\r\n+            attachments.remove(key);\r\n+        } else {\r\n+            attachments.put(key, value);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * remove attachment.\r\n+     *\r\n+     * @param key\r\n+     * @return context\r\n+     */\r\n+    public RpcContext removeAttachment(String key) {\r\n+        attachments.remove(key);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get attachments.\r\n+     *\r\n+     * @return attachments\r\n+     */\r\n+    @Deprecated\r\n+    public Map<String, String> getAttachments() {\r\n+        return new AttachmentsAdapter.ObjectToStringMap(this.getObjectAttachments());\r\n+    }\r\n+\r\n+    /**\r\n+     * get attachments.\r\n+     *\r\n+     * @return attachments\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    public Map<String, Object> getObjectAttachments() {\r\n+        return attachments;\r\n+    }\r\n+\r\n+    /**\r\n+     * set attachments\r\n+     *\r\n+     * @param attachment\r\n+     * @return context\r\n+     */\r\n+    public RpcContext setAttachments(Map<String, String> attachment) {\r\n+        this.attachments.clear();\r\n+        if (attachment != null && attachment.size() > 0) {\r\n+            this.attachments.putAll(attachment);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * set attachments\r\n+     *\r\n+     * @param attachment\r\n+     * @return context\r\n+     */\r\n+    @Experimental(\"Experiment api for supporting Object transmission\")\r\n+    public RpcContext setObjectAttachments(Map<String, Object> attachment) {\r\n+        this.attachments.clear();\r\n+        if (attachment != null && attachment.size() > 0) {\r\n+            this.attachments.putAll(attachment);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    public void clearAttachments() {\r\n+        this.attachments.clear();\r\n+    }\r\n+\r\n+    /**\r\n+     * get values.\r\n+     *\r\n+     * @return values\r\n+     */\r\n+    public Map<String, Object> get() {\r\n+        return values;\r\n+    }\r\n+\r\n+    /**\r\n+     * set value.\r\n+     *\r\n+     * @param key\r\n+     * @param value\r\n+     * @return context\r\n+     */\r\n+    public RpcContext set(String key, Object value) {\r\n+        if (value == null) {\r\n+            values.remove(key);\r\n+        } else {\r\n+            values.put(key, value);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * remove value.\r\n+     *\r\n+     * @param key\r\n+     * @return value\r\n+     */\r\n+    public RpcContext remove(String key) {\r\n+        values.remove(key);\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * get value.\r\n+     *\r\n+     * @param key\r\n+     * @return value\r\n+     */\r\n+    public Object get(String key) {\r\n+        return values.get(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to isProviderSide()\r\n+     */\r\n+    @Deprecated\r\n+    public boolean isServerSide() {\r\n+        return isProviderSide();\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to isConsumerSide()\r\n+     */\r\n+    @Deprecated\r\n+    public boolean isClientSide() {\r\n+        return isConsumerSide();\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to getUrls()\r\n+     */\r\n+    @Deprecated\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public List<Invoker<?>> getInvokers() {\r\n+        return invokers == null && invoker != null ? (List) Arrays.asList(invoker) : invokers;\r\n+    }\r\n+\r\n+    public RpcContext setInvokers(List<Invoker<?>> invokers) {\r\n+        this.invokers = invokers;\r\n+        if (CollectionUtils.isNotEmpty(invokers)) {\r\n+            List<URL> urls = new ArrayList<URL>(invokers.size());\r\n+            for (Invoker<?> invoker : invokers) {\r\n+                urls.add(invoker.getUrl());\r\n+            }\r\n+            setUrls(urls);\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to getUrl()\r\n+     */\r\n+    @Deprecated\r\n+    public Invoker<?> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+\r\n+    public RpcContext setInvoker(Invoker<?> invoker) {\r\n+        this.invoker = invoker;\r\n+        if (invoker != null) {\r\n+            setUrl(invoker.getUrl());\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * @deprecated Replace to getMethodName(), getParameterTypes(), getArguments()\r\n+     */\r\n+    @Deprecated\r\n+    public Invocation getInvocation() {\r\n+        return invocation;\r\n+    }\r\n+\r\n+    public RpcContext setInvocation(Invocation invocation) {\r\n+        this.invocation = invocation;\r\n+        if (invocation != null) {\r\n+            setMethodName(invocation.getMethodName());\r\n+            setParameterTypes(invocation.getParameterTypes());\r\n+            setArguments(invocation.getArguments());\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    /**\r\n+     * Async invocation. Timeout will be handled even if <code>Future.get()</code> is not called.\r\n+     *\r\n+     * @param callable\r\n+     * @return get the return result from <code>future.get()</code>\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> CompletableFuture<T> asyncCall(Callable<T> callable) {\r\n+        try {\r\n+            try {\r\n+                setAttachment(ASYNC_KEY, Boolean.TRUE.toString());\r\n+                final T o = callable.call();\r\n+                //local invoke will return directly\r\n+                if (o != null) {\r\n+                    if (o instanceof CompletableFuture) {\r\n+                        return (CompletableFuture<T>) o;\r\n+                    }\r\n+                    return CompletableFuture.completedFuture(o);\r\n+                } else {\r\n+                    // The service has a normal sync method signature, should get future from RpcContext.\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(e);\r\n+            } finally {\r\n+                removeAttachment(ASYNC_KEY);\r\n+            }\r\n+        } catch (final RpcException e) {\r\n+            CompletableFuture<T> exceptionFuture = new CompletableFuture<>();\r\n+            exceptionFuture.completeExceptionally(e);\r\n+            return exceptionFuture;\r\n+        }\r\n+        return ((CompletableFuture<T>) getContext().getFuture());\r\n+    }\r\n+\r\n+    /**\r\n+     * one way async call, send request only, and result is not required\r\n+     *\r\n+     * @param runnable\r\n+     */\r\n+    public void asyncCall(Runnable runnable) {\r\n+        try {\r\n+            setAttachment(RETURN_KEY, Boolean.FALSE.toString());\r\n+            runnable.run();\r\n+        } catch (Throwable e) {\r\n+            // FIXME should put exception in future?\r\n+            throw new RpcException(\"oneway call error .\" + e.getMessage(), e);\r\n+        } finally {\r\n+            removeAttachment(RETURN_KEY);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @return\r\n+     * @throws IllegalStateException\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public static AsyncContext startAsync() throws IllegalStateException {\r\n+        RpcContext currentContext = getContext();\r\n+        if (currentContext.asyncContext == null) {\r\n+            currentContext.asyncContext = new AsyncContextImpl();\r\n+        }\r\n+        currentContext.asyncContext.start();\r\n+        return currentContext.asyncContext;\r\n+    }\r\n+\r\n+    protected void setAsyncContext(AsyncContext asyncContext) {\r\n+        this.asyncContext = asyncContext;\r\n+    }\r\n+\r\n+    public boolean isAsyncStarted() {\r\n+        if (this.asyncContext == null) {\r\n+            return false;\r\n+        }\r\n+        return asyncContext.isAsyncStarted();\r\n+    }\r\n+\r\n+    public boolean stopAsync() {\r\n+        return asyncContext.stop();\r\n+    }\r\n+\r\n+    public AsyncContext getAsyncContext() {\r\n+        return asyncContext;\r\n+    }\r\n+\r\n+    // RPC service context updated before each service call.\r\n+    private URL consumerUrl;\r\n+\r\n+    public String getGroup() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getParameter(GROUP_KEY);\r\n+    }\r\n+\r\n+    public String getVersion() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getParameter(VERSION_KEY);\r\n+    }\r\n+\r\n+    public String getInterfaceName() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getServiceInterface();\r\n+    }\r\n+\r\n+    public String getProtocol() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getParameter(PROTOCOL_KEY, DUBBO);\r\n+    }\r\n+\r\n+    public String getServiceKey() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getServiceKey();\r\n+    }\r\n+\r\n+    public String getProtocolServiceKey() {\r\n+        if (consumerUrl == null) {\r\n+            return null;\r\n+        }\r\n+        return consumerUrl.getProtocolServiceKey();\r\n+    }\r\n+\r\n+    public URL getConsumerUrl() {\r\n+        return consumerUrl;\r\n+    }\r\n+\r\n+    public void setConsumerUrl(URL consumerUrl) {\r\n+        this.consumerUrl = consumerUrl;\r\n+    }\r\n+\r\n+    public static void setRpcContext(URL url) {\r\n+        RpcContext rpcContext = RpcContext.getContext();\r\n+        rpcContext.setConsumerUrl(url);\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/RpcException.java", "source2": "org/apache/dubbo/rpc/RpcException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import javax.naming.LimitExceededException;\n-\n-/**\n- * RPC Exception. (API, Prototype, ThreadSafe)\n- *\n- * @serial Don't change the class name and properties.\n- * @export\n- * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\n- * @since 1.0\n- */\n-public /**final**/ class RpcException extends RuntimeException {\n-\n-    public static final int UNKNOWN_EXCEPTION = 0;\n-    public static final int NETWORK_EXCEPTION = 1;\n-    public static final int TIMEOUT_EXCEPTION = 2;\n-    public static final int BIZ_EXCEPTION = 3;\n-    public static final int FORBIDDEN_EXCEPTION = 4;\n-    public static final int SERIALIZATION_EXCEPTION = 5;\n-    public static final int NO_INVOKER_AVAILABLE_AFTER_FILTER = 6;\n-    public static final int LIMIT_EXCEEDED_EXCEPTION = 7;\n-    public static final int TIMEOUT_TERMINATE = 8;\n-    private static final long serialVersionUID = 7815426752583648734L;\n-    /**\n-     * RpcException cannot be extended, use error code for exception type to keep compatibility\n-     */\n-    private int code;\n-\n-    public RpcException() {\n-        super();\n-    }\n-\n-    public RpcException(String message, Throwable cause) {\n-        super(message, cause);\n-    }\n-\n-    public RpcException(String message) {\n-        super(message);\n-    }\n-\n-    public RpcException(Throwable cause) {\n-        super(cause);\n-    }\n-\n-    public RpcException(int code) {\n-        super();\n-        this.code = code;\n-    }\n-\n-    public RpcException(int code, String message, Throwable cause) {\n-        super(message, cause);\n-        this.code = code;\n-    }\n-\n-    public RpcException(int code, String message) {\n-        super(message);\n-        this.code = code;\n-    }\n-\n-    public RpcException(int code, Throwable cause) {\n-        super(cause);\n-        this.code = code;\n-    }\n-\n-    public int getCode() {\n-        return code;\n-    }\n-\n-    public void setCode(int code) {\n-        this.code = code;\n-    }\n-\n-    public boolean isBiz() {\n-        return code == BIZ_EXCEPTION;\n-    }\n-\n-    public boolean isForbidden() {\n-        return code == FORBIDDEN_EXCEPTION;\n-    }\n-\n-    public boolean isTimeout() {\n-        return code == TIMEOUT_EXCEPTION;\n-    }\n-\n-    public boolean isNetwork() {\n-        return code == NETWORK_EXCEPTION;\n-    }\n-\n-    public boolean isSerialization() {\n-        return code == SERIALIZATION_EXCEPTION;\n-    }\n-\n-    public boolean isNoInvokerAvailableAfterFilter() {\n-        return code == NO_INVOKER_AVAILABLE_AFTER_FILTER;\n-    }\n-\n-    public boolean isLimitExceed() {\n-        return code == LIMIT_EXCEEDED_EXCEPTION || getCause() instanceof LimitExceededException;\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import javax.naming.LimitExceededException;\r\n+\r\n+/**\r\n+ * RPC Exception. (API, Prototype, ThreadSafe)\r\n+ *\r\n+ * @serial Don't change the class name and properties.\r\n+ * @export\r\n+ * @see org.apache.dubbo.rpc.Invoker#invoke(Invocation)\r\n+ * @since 1.0\r\n+ */\r\n+public /**final**/ class RpcException extends RuntimeException {\r\n+\r\n+    public static final int UNKNOWN_EXCEPTION = 0;\r\n+    public static final int NETWORK_EXCEPTION = 1;\r\n+    public static final int TIMEOUT_EXCEPTION = 2;\r\n+    public static final int BIZ_EXCEPTION = 3;\r\n+    public static final int FORBIDDEN_EXCEPTION = 4;\r\n+    public static final int SERIALIZATION_EXCEPTION = 5;\r\n+    public static final int NO_INVOKER_AVAILABLE_AFTER_FILTER = 6;\r\n+    public static final int LIMIT_EXCEEDED_EXCEPTION = 7;\r\n+    public static final int TIMEOUT_TERMINATE = 8;\r\n+    private static final long serialVersionUID = 7815426752583648734L;\r\n+    /**\r\n+     * RpcException cannot be extended, use error code for exception type to keep compatibility\r\n+     */\r\n+    private int code;\r\n+\r\n+    public RpcException() {\r\n+        super();\r\n+    }\r\n+\r\n+    public RpcException(String message, Throwable cause) {\r\n+        super(message, cause);\r\n+    }\r\n+\r\n+    public RpcException(String message) {\r\n+        super(message);\r\n+    }\r\n+\r\n+    public RpcException(Throwable cause) {\r\n+        super(cause);\r\n+    }\r\n+\r\n+    public RpcException(int code) {\r\n+        super();\r\n+        this.code = code;\r\n+    }\r\n+\r\n+    public RpcException(int code, String message, Throwable cause) {\r\n+        super(message, cause);\r\n+        this.code = code;\r\n+    }\r\n+\r\n+    public RpcException(int code, String message) {\r\n+        super(message);\r\n+        this.code = code;\r\n+    }\r\n+\r\n+    public RpcException(int code, Throwable cause) {\r\n+        super(cause);\r\n+        this.code = code;\r\n+    }\r\n+\r\n+    public int getCode() {\r\n+        return code;\r\n+    }\r\n+\r\n+    public void setCode(int code) {\r\n+        this.code = code;\r\n+    }\r\n+\r\n+    public boolean isBiz() {\r\n+        return code == BIZ_EXCEPTION;\r\n+    }\r\n+\r\n+    public boolean isForbidden() {\r\n+        return code == FORBIDDEN_EXCEPTION;\r\n+    }\r\n+\r\n+    public boolean isTimeout() {\r\n+        return code == TIMEOUT_EXCEPTION;\r\n+    }\r\n+\r\n+    public boolean isNetwork() {\r\n+        return code == NETWORK_EXCEPTION;\r\n+    }\r\n+\r\n+    public boolean isSerialization() {\r\n+        return code == SERIALIZATION_EXCEPTION;\r\n+    }\r\n+\r\n+    public boolean isNoInvokerAvailableAfterFilter() {\r\n+        return code == NO_INVOKER_AVAILABLE_AFTER_FILTER;\r\n+    }\r\n+\r\n+    public boolean isLimitExceed() {\r\n+        return code == LIMIT_EXCEEDED_EXCEPTION || getCause() instanceof LimitExceededException;\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/RpcInvocation.java", "source2": "org/apache/dubbo/rpc/RpcInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,441 +1,441 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.io.Serializable;\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.stream.Stream;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-\n-/**\n- * RPC Invocation.\n- *\n- * @serial Don't change the class name and properties.\n- */\n-public class RpcInvocation implements Invocation, Serializable {\n-\n-    private static final long serialVersionUID = -4355285085441097045L;\n-\n-    private String targetServiceUniqueName;\n-    private String protocolServiceKey;\n-\n-    private String methodName;\n-    private String serviceName;\n-\n-    private transient Class<?>[] parameterTypes;\n-    private String parameterTypesDesc;\n-    private String[] compatibleParamSignatures;\n-\n-    private Object[] arguments;\n-\n-    /**\n-     * Passed to the remote server during RPC call\n-     */\n-    private Map<String, Object> attachments;\n-\n-    /**\n-     * Only used on the caller side, will not appear on the wire.\n-     */\n-    private Map<Object, Object> attributes = new HashMap<>();\n-\n-    private transient Invoker<?> invoker;\n-\n-    private transient Class<?> returnType;\n-\n-    private transient Type[] returnTypes;\n-\n-    private transient InvokeMode invokeMode;\n-\n-    public RpcInvocation() {\n-    }\n-\n-    public RpcInvocation(Invocation invocation, Invoker<?> invoker) {\n-        this(invocation.getMethodName(), invocation.getServiceName(), invocation.getProtocolServiceKey(),\n-                invocation.getParameterTypes(), invocation.getArguments(), new HashMap<>(invocation.getObjectAttachments()),\n-                invocation.getInvoker(), invocation.getAttributes());\n-        if (invoker != null) {\n-            URL url = invoker.getUrl();\n-            setAttachment(PATH_KEY, url.getPath());\n-            if (url.hasParameter(INTERFACE_KEY)) {\n-                setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));\n-            }\n-            if (url.hasParameter(GROUP_KEY)) {\n-                setAttachment(GROUP_KEY, url.getParameter(GROUP_KEY));\n-            }\n-            if (url.hasParameter(VERSION_KEY)) {\n-                setAttachment(VERSION_KEY, url.getParameter(VERSION_KEY, \"0.0.0\"));\n-            }\n-            if (url.hasParameter(TIMEOUT_KEY)) {\n-                setAttachment(TIMEOUT_KEY, url.getParameter(TIMEOUT_KEY));\n-            }\n-            if (url.hasParameter(TOKEN_KEY)) {\n-                setAttachment(TOKEN_KEY, url.getParameter(TOKEN_KEY));\n-            }\n-            if (url.hasParameter(APPLICATION_KEY)) {\n-                setAttachment(APPLICATION_KEY, url.getParameter(APPLICATION_KEY));\n-            }\n-        }\n-        this.targetServiceUniqueName = invocation.getTargetServiceUniqueName();\n-        this.protocolServiceKey = invocation.getProtocolServiceKey();\n-    }\n-\n-    public RpcInvocation(Invocation invocation) {\n-        this(invocation.getMethodName(), invocation.getServiceName(), invocation.getProtocolServiceKey(), invocation.getParameterTypes(),\n-                invocation.getArguments(), invocation.getObjectAttachments(), invocation.getInvoker(), invocation.getAttributes());\n-        this.targetServiceUniqueName = invocation.getTargetServiceUniqueName();\n-    }\n-\n-    public RpcInvocation(Method method, String serviceName, String protocolServiceKey, Object[] arguments) {\n-        this(method, serviceName, protocolServiceKey, arguments, null, null);\n-    }\n-\n-    public RpcInvocation(Method method, String serviceName, String protocolServiceKey, Object[] arguments, Map<String, Object> attachment, Map<Object, Object> attributes) {\n-        this(method.getName(), serviceName, protocolServiceKey, method.getParameterTypes(), arguments, attachment, null, attributes);\n-        this.returnType = method.getReturnType();\n-    }\n-\n-    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments) {\n-        this(methodName, serviceName, protocolServiceKey, parameterTypes, arguments, null, null, null);\n-    }\n-\n-    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments, Map<String, Object> attachments) {\n-        this(methodName, serviceName, protocolServiceKey, parameterTypes, arguments, attachments, null, null);\n-    }\n-\n-    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments,\n-                         Map<String, Object> attachments, Invoker<?> invoker, Map<Object, Object> attributes) {\n-        this.methodName = methodName;\n-        this.serviceName = serviceName;\n-        this.protocolServiceKey = protocolServiceKey;\n-        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\n-        this.arguments = arguments == null ? new Object[0] : arguments;\n-        this.attachments = attachments == null ? new HashMap<>() : attachments;\n-        this.attributes = attributes == null ? new HashMap<>() : attributes;\n-        this.invoker = invoker;\n-        initParameterDesc();\n-    }\n-\n-    private void initParameterDesc() {\n-        ServiceRepository repository = ApplicationModel.getServiceRepository();\n-        if (StringUtils.isNotEmpty(serviceName)) {\n-            ServiceDescriptor serviceDescriptor = repository.lookupService(serviceName);\n-            if (serviceDescriptor != null) {\n-                MethodDescriptor methodDescriptor = serviceDescriptor.getMethod(methodName, parameterTypes);\n-                if (methodDescriptor != null) {\n-                    this.parameterTypesDesc = methodDescriptor.getParamDesc();\n-                    this.compatibleParamSignatures = methodDescriptor.getCompatibleParamSignatures();\n-                    this.returnTypes = methodDescriptor.getReturnTypes();\n-                }\n-            }\n-        }\n-\n-        if (parameterTypesDesc == null) {\n-            this.parameterTypesDesc = ReflectUtils.getDesc(this.getParameterTypes());\n-            this.compatibleParamSignatures = Stream.of(this.parameterTypes).map(Class::getName).toArray(String[]::new);\n-            this.returnTypes = RpcUtils.getReturnTypes(this);\n-        }\n-    }\n-\n-    @Override\n-    public Invoker<?> getInvoker() {\n-        return invoker;\n-    }\n-\n-    public void setInvoker(Invoker<?> invoker) {\n-        this.invoker = invoker;\n-    }\n-\n-    public Object put(Object key, Object value) {\n-        return attributes.put(key, value);\n-    }\n-\n-    public Object get(Object key) {\n-        return attributes.get(key);\n-    }\n-\n-    @Override\n-    public Map<Object, Object> getAttributes() {\n-        return attributes;\n-    }\n-\n-    @Override\n-    public String getTargetServiceUniqueName() {\n-        return targetServiceUniqueName;\n-    }\n-\n-    @Override\n-    public String getProtocolServiceKey() {\n-        return protocolServiceKey;\n-    }\n-\n-    public void setTargetServiceUniqueName(String targetServiceUniqueName) {\n-        this.targetServiceUniqueName = targetServiceUniqueName;\n-    }\n-\n-    @Override\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    @Override\n-    public String getServiceName() {\n-        return serviceName;\n-    }\n-\n-    public void setServiceName(String serviceName) {\n-        this.serviceName = serviceName;\n-    }\n-\n-    public void setMethodName(String methodName) {\n-        this.methodName = methodName;\n-    }\n-\n-    @Override\n-    public Class<?>[] getParameterTypes() {\n-        return parameterTypes;\n-    }\n-\n-    public void setParameterTypes(Class<?>[] parameterTypes) {\n-        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\n-    }\n-\n-    public String getParameterTypesDesc() {\n-        return parameterTypesDesc;\n-    }\n-\n-    public void setParameterTypesDesc(String parameterTypesDesc) {\n-        this.parameterTypesDesc = parameterTypesDesc;\n-    }\n-\n-    public String[] getCompatibleParamSignatures() {\n-        return compatibleParamSignatures;\n-    }\n-\n-    // parameter signatures can be set independently, it is useful when the service type is not found on caller side and\n-    // the invocation is not generic invocation either.\n-    public void setCompatibleParamSignatures(String[] compatibleParamSignatures) {\n-        this.compatibleParamSignatures = compatibleParamSignatures;\n-    }\n-\n-    @Override\n-    public Object[] getArguments() {\n-        return arguments;\n-    }\n-\n-    public void setArguments(Object[] arguments) {\n-        this.arguments = arguments == null ? new Object[0] : arguments;\n-    }\n-\n-    @Override\n-    public Map<String, Object> getObjectAttachments() {\n-        return attachments;\n-    }\n-\n-    @Override\n-    public void setAttachment(String key, String value) {\n-        setObjectAttachment(key, value);\n-    }\n-\n-    @Deprecated\n-    @Override\n-    public Map<String, String> getAttachments() {\n-        return new AttachmentsAdapter.ObjectToStringMap(attachments);\n-    }\n-\n-    @Deprecated\n-    public void setAttachments(Map<String, String> attachments) {\n-        this.attachments = attachments == null ? new HashMap<>() : new HashMap<>(attachments);\n-    }\n-\n-    public void setObjectAttachments(Map<String, Object> attachments) {\n-        this.attachments = attachments == null ? new HashMap<>() : attachments;\n-    }\n-\n-    public void setAttachment(String key, Object value) {\n-       setObjectAttachment(key, value);\n-    }\n-\n-    @Override\n-    public void setObjectAttachment(String key, Object value) {\n-        if (attachments == null) {\n-            attachments = new HashMap<>();\n-        }\n-        attachments.put(key, value);\n-    }\n-\n-    @Override\n-    public void setAttachmentIfAbsent(String key, String value) {\n-        setObjectAttachmentIfAbsent(key, value);\n-    }\n-\n-    public void setAttachmentIfAbsent(String key, Object value) {\n-        setObjectAttachmentIfAbsent(key, value);\n-    }\n-\n-    @Override\n-    public void setObjectAttachmentIfAbsent(String key, Object value) {\n-        if (attachments == null) {\n-            attachments = new HashMap<>();\n-        }\n-        if (!attachments.containsKey(key)) {\n-            attachments.put(key, value);\n-        }\n-    }\n-\n-    @Deprecated\n-    public void addAttachments(Map<String, String> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        if (this.attachments == null) {\n-            this.attachments = new HashMap<>();\n-        }\n-        this.attachments.putAll(attachments);\n-    }\n-\n-    public void addObjectAttachments(Map<String, Object> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        if (this.attachments == null) {\n-            this.attachments = new HashMap<>();\n-        }\n-        this.attachments.putAll(attachments);\n-    }\n-\n-    @Deprecated\n-    public void addAttachmentsIfAbsent(Map<String, String> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        for (Map.Entry<String, String> entry : attachments.entrySet()) {\n-            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\n-        }\n-    }\n-\n-    public void addObjectAttachmentsIfAbsent(Map<String, Object> attachments) {\n-        if (attachments == null) {\n-            return;\n-        }\n-        for (Map.Entry<String, Object> entry : attachments.entrySet()) {\n-            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\n-        }\n-    }\n-\n-    @Override\n-    @Deprecated\n-    public String getAttachment(String key) {\n-        if (attachments == null) {\n-            return null;\n-        }\n-        Object value = attachments.get(key);\n-        if (value instanceof String) {\n-            return (String) value;\n-        }\n-        return null;\n-    }\n-\n-    @Override\n-    public Object getObjectAttachment(String key) {\n-        if (attachments == null) {\n-            return null;\n-        }\n-        return attachments.get(key);\n-    }\n-\n-    @Override\n-    @Deprecated\n-    public String getAttachment(String key, String defaultValue) {\n-        if (attachments == null) {\n-            return defaultValue;\n-        }\n-        Object value = attachments.get(key);\n-        if (value instanceof String) {\n-            String strValue = (String) value;\n-            if (StringUtils.isEmpty(strValue)) {\n-                return defaultValue;\n-            } else {\n-                return strValue;\n-            }\n-        }\n-        return null;\n-    }\n-\n-    @Deprecated\n-    public Object getObjectAttachment(String key, Object defaultValue) {\n-        if (attachments == null) {\n-            return defaultValue;\n-        }\n-        Object value = attachments.get(key);\n-        if (value == null) {\n-            return defaultValue;\n-        }\n-        return value;\n-    }\n-\n-    public Class<?> getReturnType() {\n-        return returnType;\n-    }\n-\n-    public void setReturnType(Class<?> returnType) {\n-        this.returnType = returnType;\n-    }\n-\n-    public Type[] getReturnTypes() {\n-        return returnTypes;\n-    }\n-\n-    public void setReturnTypes(Type[] returnTypes) {\n-        this.returnTypes = returnTypes;\n-    }\n-\n-    public InvokeMode getInvokeMode() {\n-        return invokeMode;\n-    }\n-\n-    public void setInvokeMode(InvokeMode invokeMode) {\n-        this.invokeMode = invokeMode;\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return \"RpcInvocation [methodName=\" + methodName + \", parameterTypes=\"\n-                + Arrays.toString(parameterTypes) + \", arguments=\" + Arrays.toString(arguments)\n-                + \", attachments=\" + attachments + \"]\";\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.io.Serializable;\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+\r\n+/**\r\n+ * RPC Invocation.\r\n+ *\r\n+ * @serial Don't change the class name and properties.\r\n+ */\r\n+public class RpcInvocation implements Invocation, Serializable {\r\n+\r\n+    private static final long serialVersionUID = -4355285085441097045L;\r\n+\r\n+    private String targetServiceUniqueName;\r\n+    private String protocolServiceKey;\r\n+\r\n+    private String methodName;\r\n+    private String serviceName;\r\n+\r\n+    private transient Class<?>[] parameterTypes;\r\n+    private String parameterTypesDesc;\r\n+    private String[] compatibleParamSignatures;\r\n+\r\n+    private Object[] arguments;\r\n+\r\n+    /**\r\n+     * Passed to the remote server during RPC call\r\n+     */\r\n+    private Map<String, Object> attachments;\r\n+\r\n+    /**\r\n+     * Only used on the caller side, will not appear on the wire.\r\n+     */\r\n+    private Map<Object, Object> attributes = new HashMap<>();\r\n+\r\n+    private transient Invoker<?> invoker;\r\n+\r\n+    private transient Class<?> returnType;\r\n+\r\n+    private transient Type[] returnTypes;\r\n+\r\n+    private transient InvokeMode invokeMode;\r\n+\r\n+    public RpcInvocation() {\r\n+    }\r\n+\r\n+    public RpcInvocation(Invocation invocation, Invoker<?> invoker) {\r\n+        this(invocation.getMethodName(), invocation.getServiceName(), invocation.getProtocolServiceKey(),\r\n+                invocation.getParameterTypes(), invocation.getArguments(), new HashMap<>(invocation.getObjectAttachments()),\r\n+                invocation.getInvoker(), invocation.getAttributes());\r\n+        if (invoker != null) {\r\n+            URL url = invoker.getUrl();\r\n+            setAttachment(PATH_KEY, url.getPath());\r\n+            if (url.hasParameter(INTERFACE_KEY)) {\r\n+                setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));\r\n+            }\r\n+            if (url.hasParameter(GROUP_KEY)) {\r\n+                setAttachment(GROUP_KEY, url.getParameter(GROUP_KEY));\r\n+            }\r\n+            if (url.hasParameter(VERSION_KEY)) {\r\n+                setAttachment(VERSION_KEY, url.getParameter(VERSION_KEY, \"0.0.0\"));\r\n+            }\r\n+            if (url.hasParameter(TIMEOUT_KEY)) {\r\n+                setAttachment(TIMEOUT_KEY, url.getParameter(TIMEOUT_KEY));\r\n+            }\r\n+            if (url.hasParameter(TOKEN_KEY)) {\r\n+                setAttachment(TOKEN_KEY, url.getParameter(TOKEN_KEY));\r\n+            }\r\n+            if (url.hasParameter(APPLICATION_KEY)) {\r\n+                setAttachment(APPLICATION_KEY, url.getParameter(APPLICATION_KEY));\r\n+            }\r\n+        }\r\n+        this.targetServiceUniqueName = invocation.getTargetServiceUniqueName();\r\n+        this.protocolServiceKey = invocation.getProtocolServiceKey();\r\n+    }\r\n+\r\n+    public RpcInvocation(Invocation invocation) {\r\n+        this(invocation.getMethodName(), invocation.getServiceName(), invocation.getProtocolServiceKey(), invocation.getParameterTypes(),\r\n+                invocation.getArguments(), invocation.getObjectAttachments(), invocation.getInvoker(), invocation.getAttributes());\r\n+        this.targetServiceUniqueName = invocation.getTargetServiceUniqueName();\r\n+    }\r\n+\r\n+    public RpcInvocation(Method method, String serviceName, String protocolServiceKey, Object[] arguments) {\r\n+        this(method, serviceName, protocolServiceKey, arguments, null, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(Method method, String serviceName, String protocolServiceKey, Object[] arguments, Map<String, Object> attachment, Map<Object, Object> attributes) {\r\n+        this(method.getName(), serviceName, protocolServiceKey, method.getParameterTypes(), arguments, attachment, null, attributes);\r\n+        this.returnType = method.getReturnType();\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments) {\r\n+        this(methodName, serviceName, protocolServiceKey, parameterTypes, arguments, null, null, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments, Map<String, Object> attachments) {\r\n+        this(methodName, serviceName, protocolServiceKey, parameterTypes, arguments, attachments, null, null);\r\n+    }\r\n+\r\n+    public RpcInvocation(String methodName, String serviceName, String protocolServiceKey, Class<?>[] parameterTypes, Object[] arguments,\r\n+                         Map<String, Object> attachments, Invoker<?> invoker, Map<Object, Object> attributes) {\r\n+        this.methodName = methodName;\r\n+        this.serviceName = serviceName;\r\n+        this.protocolServiceKey = protocolServiceKey;\r\n+        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\r\n+        this.arguments = arguments == null ? new Object[0] : arguments;\r\n+        this.attachments = attachments == null ? new HashMap<>() : attachments;\r\n+        this.attributes = attributes == null ? new HashMap<>() : attributes;\r\n+        this.invoker = invoker;\r\n+        initParameterDesc();\r\n+    }\r\n+\r\n+    private void initParameterDesc() {\r\n+        ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+        if (StringUtils.isNotEmpty(serviceName)) {\r\n+            ServiceDescriptor serviceDescriptor = repository.lookupService(serviceName);\r\n+            if (serviceDescriptor != null) {\r\n+                MethodDescriptor methodDescriptor = serviceDescriptor.getMethod(methodName, parameterTypes);\r\n+                if (methodDescriptor != null) {\r\n+                    this.parameterTypesDesc = methodDescriptor.getParamDesc();\r\n+                    this.compatibleParamSignatures = methodDescriptor.getCompatibleParamSignatures();\r\n+                    this.returnTypes = methodDescriptor.getReturnTypes();\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (parameterTypesDesc == null) {\r\n+            this.parameterTypesDesc = ReflectUtils.getDesc(this.getParameterTypes());\r\n+            this.compatibleParamSignatures = Stream.of(this.parameterTypes).map(Class::getName).toArray(String[]::new);\r\n+            this.returnTypes = RpcUtils.getReturnTypes(this);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Invoker<?> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+\r\n+    public void setInvoker(Invoker<?> invoker) {\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    public Object put(Object key, Object value) {\r\n+        return attributes.put(key, value);\r\n+    }\r\n+\r\n+    public Object get(Object key) {\r\n+        return attributes.get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<Object, Object> getAttributes() {\r\n+        return attributes;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getTargetServiceUniqueName() {\r\n+        return targetServiceUniqueName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getProtocolServiceKey() {\r\n+        return protocolServiceKey;\r\n+    }\r\n+\r\n+    public void setTargetServiceUniqueName(String targetServiceUniqueName) {\r\n+        this.targetServiceUniqueName = targetServiceUniqueName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getServiceName() {\r\n+        return serviceName;\r\n+    }\r\n+\r\n+    public void setServiceName(String serviceName) {\r\n+        this.serviceName = serviceName;\r\n+    }\r\n+\r\n+    public void setMethodName(String methodName) {\r\n+        this.methodName = methodName;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?>[] getParameterTypes() {\r\n+        return parameterTypes;\r\n+    }\r\n+\r\n+    public void setParameterTypes(Class<?>[] parameterTypes) {\r\n+        this.parameterTypes = parameterTypes == null ? new Class<?>[0] : parameterTypes;\r\n+    }\r\n+\r\n+    public String getParameterTypesDesc() {\r\n+        return parameterTypesDesc;\r\n+    }\r\n+\r\n+    public void setParameterTypesDesc(String parameterTypesDesc) {\r\n+        this.parameterTypesDesc = parameterTypesDesc;\r\n+    }\r\n+\r\n+    public String[] getCompatibleParamSignatures() {\r\n+        return compatibleParamSignatures;\r\n+    }\r\n+\r\n+    // parameter signatures can be set independently, it is useful when the service type is not found on caller side and\r\n+    // the invocation is not generic invocation either.\r\n+    public void setCompatibleParamSignatures(String[] compatibleParamSignatures) {\r\n+        this.compatibleParamSignatures = compatibleParamSignatures;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object[] getArguments() {\r\n+        return arguments;\r\n+    }\r\n+\r\n+    public void setArguments(Object[] arguments) {\r\n+        this.arguments = arguments == null ? new Object[0] : arguments;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Map<String, Object> getObjectAttachments() {\r\n+        return attachments;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachment(String key, String value) {\r\n+        setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    @Override\r\n+    public Map<String, String> getAttachments() {\r\n+        return new AttachmentsAdapter.ObjectToStringMap(attachments);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void setAttachments(Map<String, String> attachments) {\r\n+        this.attachments = attachments == null ? new HashMap<>() : new HashMap<>(attachments);\r\n+    }\r\n+\r\n+    public void setObjectAttachments(Map<String, Object> attachments) {\r\n+        this.attachments = attachments == null ? new HashMap<>() : attachments;\r\n+    }\r\n+\r\n+    public void setAttachment(String key, Object value) {\r\n+       setObjectAttachment(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachment(String key, Object value) {\r\n+        if (attachments == null) {\r\n+            attachments = new HashMap<>();\r\n+        }\r\n+        attachments.put(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttachmentIfAbsent(String key, String value) {\r\n+        setObjectAttachmentIfAbsent(key, value);\r\n+    }\r\n+\r\n+    public void setAttachmentIfAbsent(String key, Object value) {\r\n+        setObjectAttachmentIfAbsent(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setObjectAttachmentIfAbsent(String key, Object value) {\r\n+        if (attachments == null) {\r\n+            attachments = new HashMap<>();\r\n+        }\r\n+        if (!attachments.containsKey(key)) {\r\n+            attachments.put(key, value);\r\n+        }\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void addAttachments(Map<String, String> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        if (this.attachments == null) {\r\n+            this.attachments = new HashMap<>();\r\n+        }\r\n+        this.attachments.putAll(attachments);\r\n+    }\r\n+\r\n+    public void addObjectAttachments(Map<String, Object> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        if (this.attachments == null) {\r\n+            this.attachments = new HashMap<>();\r\n+        }\r\n+        this.attachments.putAll(attachments);\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public void addAttachmentsIfAbsent(Map<String, String> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        for (Map.Entry<String, String> entry : attachments.entrySet()) {\r\n+            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    public void addObjectAttachmentsIfAbsent(Map<String, Object> attachments) {\r\n+        if (attachments == null) {\r\n+            return;\r\n+        }\r\n+        for (Map.Entry<String, Object> entry : attachments.entrySet()) {\r\n+            setAttachmentIfAbsent(entry.getKey(), entry.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @Deprecated\r\n+    public String getAttachment(String key) {\r\n+        if (attachments == null) {\r\n+            return null;\r\n+        }\r\n+        Object value = attachments.get(key);\r\n+        if (value instanceof String) {\r\n+            return (String) value;\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObjectAttachment(String key) {\r\n+        if (attachments == null) {\r\n+            return null;\r\n+        }\r\n+        return attachments.get(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    @Deprecated\r\n+    public String getAttachment(String key, String defaultValue) {\r\n+        if (attachments == null) {\r\n+            return defaultValue;\r\n+        }\r\n+        Object value = attachments.get(key);\r\n+        if (value instanceof String) {\r\n+            String strValue = (String) value;\r\n+            if (StringUtils.isEmpty(strValue)) {\r\n+                return defaultValue;\r\n+            } else {\r\n+                return strValue;\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    public Object getObjectAttachment(String key, Object defaultValue) {\r\n+        if (attachments == null) {\r\n+            return defaultValue;\r\n+        }\r\n+        Object value = attachments.get(key);\r\n+        if (value == null) {\r\n+            return defaultValue;\r\n+        }\r\n+        return value;\r\n+    }\r\n+\r\n+    public Class<?> getReturnType() {\r\n+        return returnType;\r\n+    }\r\n+\r\n+    public void setReturnType(Class<?> returnType) {\r\n+        this.returnType = returnType;\r\n+    }\r\n+\r\n+    public Type[] getReturnTypes() {\r\n+        return returnTypes;\r\n+    }\r\n+\r\n+    public void setReturnTypes(Type[] returnTypes) {\r\n+        this.returnTypes = returnTypes;\r\n+    }\r\n+\r\n+    public InvokeMode getInvokeMode() {\r\n+        return invokeMode;\r\n+    }\r\n+\r\n+    public void setInvokeMode(InvokeMode invokeMode) {\r\n+        this.invokeMode = invokeMode;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return \"RpcInvocation [methodName=\" + methodName + \", parameterTypes=\"\r\n+                + Arrays.toString(parameterTypes) + \", arguments=\" + Arrays.toString(arguments)\r\n+                + \", attachments=\" + attachments + \"]\";\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/TimeoutCountDown.java", "source2": "org/apache/dubbo/rpc/TimeoutCountDown.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,90 +1,90 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import java.util.concurrent.TimeUnit;\n-\n-public final class TimeoutCountDown implements Comparable<TimeoutCountDown> {\n-\n-  public static TimeoutCountDown newCountDown(long timeout, TimeUnit unit) {\n-    return new TimeoutCountDown(timeout, unit);\n-  }\n-\n-  private final long timeoutInMillis;\n-  private final long deadlineInNanos;\n-  private volatile boolean expired;\n-\n-  private TimeoutCountDown(long timeout, TimeUnit unit) {\n-    timeoutInMillis = TimeUnit.MILLISECONDS.convert(timeout, unit);\n-    deadlineInNanos = System.nanoTime() + TimeUnit.NANOSECONDS.convert(timeout, unit);\n-  }\n-\n-  public long getTimeoutInMilli() {\n-    return timeoutInMillis;\n-  }\n-\n-  public boolean isExpired() {\n-    if (!expired) {\n-      if (deadlineInNanos - System.nanoTime() <= 0) {\n-        expired = true;\n-      } else {\n-        return false;\n-      }\n-    }\n-    return true;\n-  }\n-\n-  public long timeRemaining(TimeUnit unit) {\n-    final long currentNanos = System.nanoTime();\n-    if (!expired && deadlineInNanos - currentNanos <= 0) {\n-      expired = true;\n-    }\n-    return unit.convert(deadlineInNanos - currentNanos, TimeUnit.NANOSECONDS);\n-  }\n-\n-  public long elapsedMillis() {\n-    if (isExpired()) {\n-      return timeoutInMillis + TimeUnit.MILLISECONDS.convert(System.nanoTime() - deadlineInNanos, TimeUnit.NANOSECONDS);\n-    } else {\n-      return TimeUnit.MILLISECONDS.convert(deadlineInNanos - System.nanoTime(), TimeUnit.NANOSECONDS);\n-    }\n-  }\n-\n-  @Override\n-  public String toString() {\n-    long timeoutMillis = TimeUnit.MILLISECONDS.convert(deadlineInNanos, TimeUnit.NANOSECONDS);\n-    long remainingMillis = timeRemaining(TimeUnit.MILLISECONDS);\n-\n-    StringBuilder buf = new StringBuilder();\n-    buf.append(\"Total timeout value - \");\n-    buf.append(timeoutMillis);\n-    buf.append(\", times remaining - \");\n-    buf.append(remainingMillis);\n-    return buf.toString();\n-  }\n-\n-  @Override\n-  public int compareTo(TimeoutCountDown another) {\n-    long delta = this.deadlineInNanos - another.deadlineInNanos;\n-    if (delta < 0) {\n-      return -1;\n-    } else if (delta > 0) {\n-      return 1;\n-    }\n-    return 0;\n-  }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+public final class TimeoutCountDown implements Comparable<TimeoutCountDown> {\r\n+\r\n+  public static TimeoutCountDown newCountDown(long timeout, TimeUnit unit) {\r\n+    return new TimeoutCountDown(timeout, unit);\r\n+  }\r\n+\r\n+  private final long timeoutInMillis;\r\n+  private final long deadlineInNanos;\r\n+  private volatile boolean expired;\r\n+\r\n+  private TimeoutCountDown(long timeout, TimeUnit unit) {\r\n+    timeoutInMillis = TimeUnit.MILLISECONDS.convert(timeout, unit);\r\n+    deadlineInNanos = System.nanoTime() + TimeUnit.NANOSECONDS.convert(timeout, unit);\r\n+  }\r\n+\r\n+  public long getTimeoutInMilli() {\r\n+    return timeoutInMillis;\r\n+  }\r\n+\r\n+  public boolean isExpired() {\r\n+    if (!expired) {\r\n+      if (deadlineInNanos - System.nanoTime() <= 0) {\r\n+        expired = true;\r\n+      } else {\r\n+        return false;\r\n+      }\r\n+    }\r\n+    return true;\r\n+  }\r\n+\r\n+  public long timeRemaining(TimeUnit unit) {\r\n+    final long currentNanos = System.nanoTime();\r\n+    if (!expired && deadlineInNanos - currentNanos <= 0) {\r\n+      expired = true;\r\n+    }\r\n+    return unit.convert(deadlineInNanos - currentNanos, TimeUnit.NANOSECONDS);\r\n+  }\r\n+\r\n+  public long elapsedMillis() {\r\n+    if (isExpired()) {\r\n+      return timeoutInMillis + TimeUnit.MILLISECONDS.convert(System.nanoTime() - deadlineInNanos, TimeUnit.NANOSECONDS);\r\n+    } else {\r\n+      return TimeUnit.MILLISECONDS.convert(deadlineInNanos - System.nanoTime(), TimeUnit.NANOSECONDS);\r\n+    }\r\n+  }\r\n+\r\n+  @Override\r\n+  public String toString() {\r\n+    long timeoutMillis = TimeUnit.MILLISECONDS.convert(deadlineInNanos, TimeUnit.NANOSECONDS);\r\n+    long remainingMillis = timeRemaining(TimeUnit.MILLISECONDS);\r\n+\r\n+    StringBuilder buf = new StringBuilder();\r\n+    buf.append(\"Total timeout value - \");\r\n+    buf.append(timeoutMillis);\r\n+    buf.append(\", times remaining - \");\r\n+    buf.append(remainingMillis);\r\n+    return buf.toString();\r\n+  }\r\n+\r\n+  @Override\r\n+  public int compareTo(TimeoutCountDown another) {\r\n+    long delta = this.deadlineInNanos - another.deadlineInNanos;\r\n+    if (delta < 0) {\r\n+      return -1;\r\n+    } else if (delta > 0) {\r\n+      return 1;\r\n+    }\r\n+    return 0;\r\n+  }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/ZoneDetector.java", "source2": "org/apache/dubbo/rpc/ZoneDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Extend and provide your own implementation if you want to distribute traffic around registries.\n- * Please, name it as 'default'\n- */\n-@SPI\n-public interface ZoneDetector {\n-\n-    String getZoneOfCurrentRequest(Invocation invocation);\n-\n-    String isZoneForcingEnabled(Invocation invocation, String zone);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Extend and provide your own implementation if you want to distribute traffic around registries.\r\n+ * Please, name it as 'default'\r\n+ */\r\n+@SPI\r\n+public interface ZoneDetector {\r\n+\r\n+    String getZoneOfCurrentRequest(Invocation invocation);\r\n+\r\n+    String isZoneForcingEnabled(Invocation invocation, String zone);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/CacheableRouterFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * If you want to provide a router implementation based on design of v2.7.0, please extend from this abstract class.\n- * For 2.6.x style router, please implement and use RouterFactory directly.\n- */\n-public abstract class CacheableRouterFactory implements RouterFactory {\n-    private ConcurrentMap<String, Router> routerMap = new ConcurrentHashMap<>();\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        return routerMap.computeIfAbsent(url.getServiceKey(), k -> createRouter(url));\n-    }\n-\n-    protected abstract Router createRouter(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * If you want to provide a router implementation based on design of v2.7.0, please extend from this abstract class.\r\n+ * For 2.6.x style router, please implement and use RouterFactory directly.\r\n+ */\r\n+public abstract class CacheableRouterFactory implements RouterFactory {\r\n+    private ConcurrentMap<String, Router> routerMap = new ConcurrentHashMap<>();\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        return routerMap.computeIfAbsent(url.getServiceKey(), k -> createRouter(url));\r\n+    }\r\n+\r\n+    protected abstract Router createRouter(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/ClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/ClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-/**\n- * This is the final Invoker type referenced by the RPC proxy on Consumer side.\n- * <p>\n- * A ClusterInvoker holds a group of normal invokers, stored in a Directory, mapping to one Registry.\n- * The ClusterInvoker implementation usually provides LB or HA policies, like FailoverClusterInvoker.\n- * <p>\n- * In multi-registry subscription scenario, the final ClusterInvoker will refer to several sub ClusterInvokers, with each\n- * sub ClusterInvoker representing one Registry. Take ZoneAwareClusterInvoker as an example, it is specially customized for\n- * multi-registry use cases: first, pick up one ClusterInvoker, then do LB inside the chose ClusterInvoker.\n- *\n- * @param <T>\n- */\n-public interface ClusterInvoker<T> extends Invoker<T> {\n-    URL getRegistryUrl();\n-\n-    Directory<T> getDirectory();\n-\n-    boolean isDestroyed();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+/**\r\n+ * This is the final Invoker type referenced by the RPC proxy on Consumer side.\r\n+ * <p>\r\n+ * A ClusterInvoker holds a group of normal invokers, stored in a Directory, mapping to one Registry.\r\n+ * The ClusterInvoker implementation usually provides LB or HA policies, like FailoverClusterInvoker.\r\n+ * <p>\r\n+ * In multi-registry subscription scenario, the final ClusterInvoker will refer to several sub ClusterInvokers, with each\r\n+ * sub ClusterInvoker representing one Registry. Take ZoneAwareClusterInvoker as an example, it is specially customized for\r\n+ * multi-registry use cases: first, pick up one ClusterInvoker, then do LB inside the chose ClusterInvoker.\r\n+ *\r\n+ * @param <T>\r\n+ */\r\n+public interface ClusterInvoker<T> extends Invoker<T> {\r\n+    URL getRegistryUrl();\r\n+\r\n+    Directory<T> getDirectory();\r\n+\r\n+    boolean isDestroyed();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/Constants.java", "source2": "org/apache/dubbo/rpc/cluster/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster;\n-\n-public interface Constants {\n-\n-    String FAIL_BACK_TASKS_KEY = \"failbacktasks\";\n-\n-    int DEFAULT_FAILBACK_TASKS = 100;\n-\n-    int DEFAULT_FORKS = 2;\n-\n-    String WEIGHT_KEY = \"weight\";\n-\n-    int DEFAULT_WEIGHT = 100;\n-\n-    String MOCK_PROTOCOL = \"mock\";\n-\n-    String FORCE_KEY = \"force\";\n-\n-    /**\n-     * To decide whether to exclude unavailable invoker from the cluster\n-     */\n-    String CLUSTER_AVAILABLE_CHECK_KEY = \"cluster.availablecheck\";\n-\n-    /**\n-     * The default value of cluster.availablecheck\n-     *\n-     * @see #CLUSTER_AVAILABLE_CHECK_KEY\n-     */\n-    boolean DEFAULT_CLUSTER_AVAILABLE_CHECK = true;\n-\n-    /**\n-     * To decide whether to enable sticky strategy for cluster\n-     */\n-    String CLUSTER_STICKY_KEY = \"sticky\";\n-\n-    /**\n-     * The default value of sticky\n-     *\n-     * @see #CLUSTER_STICKY_KEY\n-     */\n-    boolean DEFAULT_CLUSTER_STICKY = false;\n-\n-    String ADDRESS_KEY = \"address\";\n-\n-    /**\n-     * When this attribute appears in invocation's attachment, mock invoker will be used\n-     */\n-    String INVOCATION_NEED_MOCK = \"invocation.need.mock\";\n-\n-    /**\n-     * when ROUTER_KEY's value is set to ROUTER_TYPE_CLEAR, RegistryDirectory will clean all current routers\n-     */\n-    String ROUTER_TYPE_CLEAR = \"clean\";\n-\n-    String DEFAULT_SCRIPT_TYPE_KEY = \"javascript\";\n-\n-    String PRIORITY_KEY = \"priority\";\n-\n-    String RULE_KEY = \"rule\";\n-\n-    String TYPE_KEY = \"type\";\n-\n-    String RUNTIME_KEY = \"runtime\";\n-\n-    String WARMUP_KEY = \"warmup\";\n-\n-    int DEFAULT_WARMUP = 10 * 60 * 1000;\n-\n-    String CONFIG_VERSION_KEY = \"configVersion\";\n-\n-    String OVERRIDE_PROVIDERS_KEY = \"providerAddresses\";\n-\n-\n-    /**\n-     * key for router type, for e.g., \"script\"/\"file\",  corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME\n-     */\n-    String ROUTER_KEY = \"router\";\n-    /**\n-     * The key name for reference URL in register center\n-     */\n-    String REFER_KEY = \"refer\";\n-    /**\n-     * The key name for export URL in register center\n-     */\n-    String EXPORT_KEY = \"export\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster;\r\n+\r\n+public interface Constants {\r\n+\r\n+    String FAIL_BACK_TASKS_KEY = \"failbacktasks\";\r\n+\r\n+    int DEFAULT_FAILBACK_TASKS = 100;\r\n+\r\n+    int DEFAULT_FORKS = 2;\r\n+\r\n+    String WEIGHT_KEY = \"weight\";\r\n+\r\n+    int DEFAULT_WEIGHT = 100;\r\n+\r\n+    String MOCK_PROTOCOL = \"mock\";\r\n+\r\n+    String FORCE_KEY = \"force\";\r\n+\r\n+    /**\r\n+     * To decide whether to exclude unavailable invoker from the cluster\r\n+     */\r\n+    String CLUSTER_AVAILABLE_CHECK_KEY = \"cluster.availablecheck\";\r\n+\r\n+    /**\r\n+     * The default value of cluster.availablecheck\r\n+     *\r\n+     * @see #CLUSTER_AVAILABLE_CHECK_KEY\r\n+     */\r\n+    boolean DEFAULT_CLUSTER_AVAILABLE_CHECK = true;\r\n+\r\n+    /**\r\n+     * To decide whether to enable sticky strategy for cluster\r\n+     */\r\n+    String CLUSTER_STICKY_KEY = \"sticky\";\r\n+\r\n+    /**\r\n+     * The default value of sticky\r\n+     *\r\n+     * @see #CLUSTER_STICKY_KEY\r\n+     */\r\n+    boolean DEFAULT_CLUSTER_STICKY = false;\r\n+\r\n+    String ADDRESS_KEY = \"address\";\r\n+\r\n+    /**\r\n+     * When this attribute appears in invocation's attachment, mock invoker will be used\r\n+     */\r\n+    String INVOCATION_NEED_MOCK = \"invocation.need.mock\";\r\n+\r\n+    /**\r\n+     * when ROUTER_KEY's value is set to ROUTER_TYPE_CLEAR, RegistryDirectory will clean all current routers\r\n+     */\r\n+    String ROUTER_TYPE_CLEAR = \"clean\";\r\n+\r\n+    String DEFAULT_SCRIPT_TYPE_KEY = \"javascript\";\r\n+\r\n+    String PRIORITY_KEY = \"priority\";\r\n+\r\n+    String RULE_KEY = \"rule\";\r\n+\r\n+    String TYPE_KEY = \"type\";\r\n+\r\n+    String RUNTIME_KEY = \"runtime\";\r\n+\r\n+    String WARMUP_KEY = \"warmup\";\r\n+\r\n+    int DEFAULT_WARMUP = 10 * 60 * 1000;\r\n+\r\n+    String CONFIG_VERSION_KEY = \"configVersion\";\r\n+\r\n+    String OVERRIDE_PROVIDERS_KEY = \"providerAddresses\";\r\n+\r\n+\r\n+    /**\r\n+     * key for router type, for e.g., \"script\"/\"file\",  corresponding to ScriptRouterFactory.NAME, FileRouterFactory.NAME\r\n+     */\r\n+    String ROUTER_KEY = \"router\";\r\n+    /**\r\n+     * The key name for reference URL in register center\r\n+     */\r\n+    String REFER_KEY = \"refer\";\r\n+    /**\r\n+     * The key name for export URL in register center\r\n+     */\r\n+    String EXPORT_KEY = \"export\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/RouterChain.java", "source2": "org/apache/dubbo/rpc/cluster/RouterChain.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,112 +1,112 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-/**\n- * Router chain\n- */\n-public class RouterChain<T> {\n-\n-    // full list of addresses from registry, classified by method name.\n-    private List<Invoker<T>> invokers = Collections.emptyList();\n-\n-    // containing all routers, reconstruct every time 'route://' urls change.\n-    private volatile List<Router> routers = Collections.emptyList();\n-\n-    // Fixed router instances: ConfigConditionRouter, TagRouter, e.g., the rule for each instance may change but the\n-    // instance will never delete or recreate.\n-    private List<Router> builtinRouters = Collections.emptyList();\n-\n-    public static <T> RouterChain<T> buildChain(URL url) {\n-        return new RouterChain<>(url);\n-    }\n-\n-    private RouterChain(URL url) {\n-        List<RouterFactory> extensionFactories = ExtensionLoader.getExtensionLoader(RouterFactory.class)\n-                .getActivateExtension(url, \"router\");\n-\n-        List<Router> routers = extensionFactories.stream()\n-                .map(factory -> factory.getRouter(url))\n-                .collect(Collectors.toList());\n-\n-        initWithRouters(routers);\n-    }\n-\n-    /**\n-     * the resident routers must being initialized before address notification.\n-     * FIXME: this method should not be public\n-     */\n-    public void initWithRouters(List<Router> builtinRouters) {\n-        this.builtinRouters = builtinRouters;\n-        this.routers = new ArrayList<>(builtinRouters);\n-        this.sort();\n-    }\n-\n-    /**\n-     * If we use route:// protocol in version before 2.7.0, each URL will generate a Router instance, so we should\n-     * keep the routers up to date, that is, each time router URLs changes, we should update the routers list, only\n-     * keep the builtinRouters which are available all the time and the latest notified routers which are generated\n-     * from URLs.\n-     *\n-     * @param routers routers from 'router://' rules in 2.6.x or before.\n-     */\n-    public void addRouters(List<Router> routers) {\n-        List<Router> newRouters = new ArrayList<>();\n-        newRouters.addAll(builtinRouters);\n-        newRouters.addAll(routers);\n-        CollectionUtils.sort(newRouters);\n-        this.routers = newRouters;\n-    }\n-\n-    private void sort() {\n-        Collections.sort(routers);\n-    }\n-\n-    /**\n-     *\n-     * @param url\n-     * @param invocation\n-     * @return\n-     */\n-    public List<Invoker<T>> route(URL url, Invocation invocation) {\n-        List<Invoker<T>> finalInvokers = invokers;\n-        for (Router router : routers) {\n-            finalInvokers = router.route(finalInvokers, url, invocation);\n-        }\n-        return finalInvokers;\n-    }\n-\n-    /**\n-     * Notify router chain of the initial addresses from registry at the first time.\n-     * Notify whenever addresses in registry change.\n-     */\n-    public void setInvokers(List<Invoker<T>> invokers) {\n-        this.invokers = (invokers == null ? Collections.emptyList() : invokers);\n-        routers.forEach(router -> router.notify(this.invokers));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * Router chain\r\n+ */\r\n+public class RouterChain<T> {\r\n+\r\n+    // full list of addresses from registry, classified by method name.\r\n+    private List<Invoker<T>> invokers = Collections.emptyList();\r\n+\r\n+    // containing all routers, reconstruct every time 'route://' urls change.\r\n+    private volatile List<Router> routers = Collections.emptyList();\r\n+\r\n+    // Fixed router instances: ConfigConditionRouter, TagRouter, e.g., the rule for each instance may change but the\r\n+    // instance will never delete or recreate.\r\n+    private List<Router> builtinRouters = Collections.emptyList();\r\n+\r\n+    public static <T> RouterChain<T> buildChain(URL url) {\r\n+        return new RouterChain<>(url);\r\n+    }\r\n+\r\n+    private RouterChain(URL url) {\r\n+        List<RouterFactory> extensionFactories = ExtensionLoader.getExtensionLoader(RouterFactory.class)\r\n+                .getActivateExtension(url, \"router\");\r\n+\r\n+        List<Router> routers = extensionFactories.stream()\r\n+                .map(factory -> factory.getRouter(url))\r\n+                .collect(Collectors.toList());\r\n+\r\n+        initWithRouters(routers);\r\n+    }\r\n+\r\n+    /**\r\n+     * the resident routers must being initialized before address notification.\r\n+     * FIXME: this method should not be public\r\n+     */\r\n+    public void initWithRouters(List<Router> builtinRouters) {\r\n+        this.builtinRouters = builtinRouters;\r\n+        this.routers = new ArrayList<>(builtinRouters);\r\n+        this.sort();\r\n+    }\r\n+\r\n+    /**\r\n+     * If we use route:// protocol in version before 2.7.0, each URL will generate a Router instance, so we should\r\n+     * keep the routers up to date, that is, each time router URLs changes, we should update the routers list, only\r\n+     * keep the builtinRouters which are available all the time and the latest notified routers which are generated\r\n+     * from URLs.\r\n+     *\r\n+     * @param routers routers from 'router://' rules in 2.6.x or before.\r\n+     */\r\n+    public void addRouters(List<Router> routers) {\r\n+        List<Router> newRouters = new ArrayList<>();\r\n+        newRouters.addAll(builtinRouters);\r\n+        newRouters.addAll(routers);\r\n+        CollectionUtils.sort(newRouters);\r\n+        this.routers = newRouters;\r\n+    }\r\n+\r\n+    private void sort() {\r\n+        Collections.sort(routers);\r\n+    }\r\n+\r\n+    /**\r\n+     *\r\n+     * @param url\r\n+     * @param invocation\r\n+     * @return\r\n+     */\r\n+    public List<Invoker<T>> route(URL url, Invocation invocation) {\r\n+        List<Invoker<T>> finalInvokers = invokers;\r\n+        for (Router router : routers) {\r\n+            finalInvokers = router.route(finalInvokers, url, invocation);\r\n+        }\r\n+        return finalInvokers;\r\n+    }\r\n+\r\n+    /**\r\n+     * Notify router chain of the initial addresses from registry at the first time.\r\n+     * Notify whenever addresses in registry change.\r\n+     */\r\n+    public void setInvokers(List<Invoker<T>> invokers) {\r\n+        this.invokers = (invokers == null ? Collections.emptyList() : invokers);\r\n+        routers.forEach(router -> router.notify(this.invokers));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java", "source2": "org/apache/dubbo/rpc/cluster/configurator/parser/ConfigParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,225 +1,225 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.configurator.parser;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem;\n-import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig;\n-\n-import com.alibaba.fastjson.JSON;\n-import com.alibaba.fastjson.JSONValidator;\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_CONFIGURATORS_CATEGORY;\n-import static org.apache.dubbo.rpc.cluster.Constants.OVERRIDE_PROVIDERS_KEY;\n-\n-/**\n- * Config parser\n- */\n-public class ConfigParser {\n-\n-    public static List<URL> parseConfigurators(String rawConfig) throws Exception {\n-        // compatible url JsonArray, such as [ \"override://xxx\", \"override://xxx\" ]\n-        if (isJsonArray(rawConfig)) {\n-            return parseJsonArray(rawConfig);\n-        }\n-\n-        List<URL> urls = new ArrayList<>();\n-        ConfiguratorConfig configuratorConfig = parseObject(rawConfig);\n-\n-        String scope = configuratorConfig.getScope();\n-        List<ConfigItem> items = configuratorConfig.getConfigs();\n-\n-        if (ConfiguratorConfig.SCOPE_APPLICATION.equals(scope)) {\n-            items.forEach(item -> urls.addAll(appItemToUrls(item, configuratorConfig)));\n-        } else {\n-            // service scope by default.\n-            items.forEach(item -> urls.addAll(serviceItemToUrls(item, configuratorConfig)));\n-        }\n-        return urls;\n-    }\n-\n-    private static List<URL> parseJsonArray(String rawConfig) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> list = JSON.parseArray(rawConfig, String.class);\n-        if (!CollectionUtils.isEmpty(list)) {\n-            list.forEach(u -> urls.add(URL.valueOf(u)));\n-        }\n-        return urls;\n-    }\n-\n-    private static <T> T parseObject(String rawConfig) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawConfig);\n-        return (T) PojoUtils.mapToPojo(map, ConfiguratorConfig.class);\n-    }\n-\n-    private static List<URL> serviceItemToUrls(ConfigItem item, ConfiguratorConfig config) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> addresses = parseAddresses(item);\n-\n-        addresses.forEach(addr -> {\n-            StringBuilder urlBuilder = new StringBuilder();\n-            urlBuilder.append(\"override://\").append(addr).append(\"/\");\n-\n-            urlBuilder.append(appendService(config.getKey()));\n-            urlBuilder.append(toParameterString(item));\n-\n-            parseEnabled(item, config, urlBuilder);\n-\n-            urlBuilder.append(\"&category=\").append(DYNAMIC_CONFIGURATORS_CATEGORY);\n-            urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\n-\n-            List<String> apps = item.getApplications();\n-            if (CollectionUtils.isNotEmpty(apps)) {\n-                apps.forEach(app -> urls.add(URL.valueOf(urlBuilder.append(\"&application=\").append(app).toString())));\n-            } else {\n-                urls.add(URL.valueOf(urlBuilder.toString()));\n-            }\n-        });\n-\n-        return urls;\n-    }\n-\n-    private static List<URL> appItemToUrls(ConfigItem item, ConfiguratorConfig config) {\n-        List<URL> urls = new ArrayList<>();\n-        List<String> addresses = parseAddresses(item);\n-        for (String addr : addresses) {\n-            StringBuilder urlBuilder = new StringBuilder();\n-            urlBuilder.append(\"override://\").append(addr).append(\"/\");\n-            List<String> services = item.getServices();\n-            if (services == null) {\n-                services = new ArrayList<>();\n-            }\n-            if (services.isEmpty()) {\n-                services.add(\"*\");\n-            }\n-            for (String s : services) {\n-                urlBuilder.append(appendService(s));\n-                urlBuilder.append(toParameterString(item));\n-\n-                urlBuilder.append(\"&application=\").append(config.getKey());\n-\n-                parseEnabled(item, config, urlBuilder);\n-\n-                urlBuilder.append(\"&category=\").append(APP_DYNAMIC_CONFIGURATORS_CATEGORY);\n-                urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\n-\n-                urls.add(URL.valueOf(urlBuilder.toString()));\n-            }\n-        }\n-        return urls;\n-    }\n-\n-    private static String toParameterString(ConfigItem item) {\n-        StringBuilder sb = new StringBuilder();\n-        sb.append(\"category=\");\n-        sb.append(DYNAMIC_CONFIGURATORS_CATEGORY);\n-        if (item.getSide() != null) {\n-            sb.append(\"&side=\");\n-            sb.append(item.getSide());\n-        }\n-        Map<String, String> parameters = item.getParameters();\n-        if (CollectionUtils.isEmptyMap(parameters)) {\n-            throw new IllegalStateException(\"Invalid configurator rule, please specify at least one parameter \" +\n-                    \"you want to change in the rule.\");\n-        }\n-\n-        parameters.forEach((k, v) -> {\n-            sb.append(\"&\");\n-            sb.append(k);\n-            sb.append(\"=\");\n-            sb.append(v);\n-        });\n-\n-        if (CollectionUtils.isNotEmpty(item.getProviderAddresses())) {\n-            sb.append(\"&\");\n-            sb.append(OVERRIDE_PROVIDERS_KEY);\n-            sb.append(\"=\");\n-            sb.append(CollectionUtils.join(item.getProviderAddresses(), \",\"));\n-        }\n-\n-        return sb.toString();\n-    }\n-\n-    private static String appendService(String serviceKey) {\n-        StringBuilder sb = new StringBuilder();\n-        if (StringUtils.isEmpty(serviceKey)) {\n-            throw new IllegalStateException(\"service field in configuration is null.\");\n-        }\n-\n-        String interfaceName = serviceKey;\n-        int i = interfaceName.indexOf('/');\n-        if (i > 0) {\n-            sb.append(\"group=\");\n-            sb.append(interfaceName, 0, i);\n-            sb.append(\"&\");\n-\n-            interfaceName = interfaceName.substring(i + 1);\n-        }\n-        int j = interfaceName.indexOf(':');\n-        if (j > 0) {\n-            sb.append(\"version=\");\n-            sb.append(interfaceName.substring(j + 1));\n-            sb.append(\"&\");\n-            interfaceName = interfaceName.substring(0, j);\n-        }\n-        sb.insert(0, interfaceName + \"?\");\n-\n-        return sb.toString();\n-    }\n-\n-    private static void parseEnabled(ConfigItem item, ConfiguratorConfig config, StringBuilder urlBuilder) {\n-        urlBuilder.append(\"&enabled=\");\n-        if (item.getType() == null || ConfigItem.GENERAL_TYPE.equals(item.getType())) {\n-            urlBuilder.append(config.getEnabled());\n-        } else {\n-            urlBuilder.append(item.getEnabled());\n-        }\n-    }\n-\n-    private static List<String> parseAddresses(ConfigItem item) {\n-        List<String> addresses = item.getAddresses();\n-        if (addresses == null) {\n-            addresses = new ArrayList<>();\n-        }\n-        if (addresses.isEmpty()) {\n-            addresses.add(ANYHOST_VALUE);\n-        }\n-        return addresses;\n-    }\n-\n-    private static boolean isJsonArray(String rawConfig) {\n-        try {\n-            JSONValidator validator = JSONValidator.from(rawConfig);\n-            return validator.validate() && validator.getType() == JSONValidator.Type.Array;\n-        } catch (Exception e) {\n-            // ignore exception and return false\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.configurator.parser;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfigItem;\r\n+import org.apache.dubbo.rpc.cluster.configurator.parser.model.ConfiguratorConfig;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+import com.alibaba.fastjson.JSONValidator;\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.APP_DYNAMIC_CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.DYNAMIC_CONFIGURATORS_CATEGORY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.OVERRIDE_PROVIDERS_KEY;\r\n+\r\n+/**\r\n+ * Config parser\r\n+ */\r\n+public class ConfigParser {\r\n+\r\n+    public static List<URL> parseConfigurators(String rawConfig) throws Exception {\r\n+        // compatible url JsonArray, such as [ \"override://xxx\", \"override://xxx\" ]\r\n+        if (isJsonArray(rawConfig)) {\r\n+            return parseJsonArray(rawConfig);\r\n+        }\r\n+\r\n+        List<URL> urls = new ArrayList<>();\r\n+        ConfiguratorConfig configuratorConfig = parseObject(rawConfig);\r\n+\r\n+        String scope = configuratorConfig.getScope();\r\n+        List<ConfigItem> items = configuratorConfig.getConfigs();\r\n+\r\n+        if (ConfiguratorConfig.SCOPE_APPLICATION.equals(scope)) {\r\n+            items.forEach(item -> urls.addAll(appItemToUrls(item, configuratorConfig)));\r\n+        } else {\r\n+            // service scope by default.\r\n+            items.forEach(item -> urls.addAll(serviceItemToUrls(item, configuratorConfig)));\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static List<URL> parseJsonArray(String rawConfig) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> list = JSON.parseArray(rawConfig, String.class);\r\n+        if (!CollectionUtils.isEmpty(list)) {\r\n+            list.forEach(u -> urls.add(URL.valueOf(u)));\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static <T> T parseObject(String rawConfig) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawConfig);\r\n+        return (T) PojoUtils.mapToPojo(map, ConfiguratorConfig.class);\r\n+    }\r\n+\r\n+    private static List<URL> serviceItemToUrls(ConfigItem item, ConfiguratorConfig config) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> addresses = parseAddresses(item);\r\n+\r\n+        addresses.forEach(addr -> {\r\n+            StringBuilder urlBuilder = new StringBuilder();\r\n+            urlBuilder.append(\"override://\").append(addr).append(\"/\");\r\n+\r\n+            urlBuilder.append(appendService(config.getKey()));\r\n+            urlBuilder.append(toParameterString(item));\r\n+\r\n+            parseEnabled(item, config, urlBuilder);\r\n+\r\n+            urlBuilder.append(\"&category=\").append(DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+            urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\r\n+\r\n+            List<String> apps = item.getApplications();\r\n+            if (CollectionUtils.isNotEmpty(apps)) {\r\n+                apps.forEach(app -> urls.add(URL.valueOf(urlBuilder.append(\"&application=\").append(app).toString())));\r\n+            } else {\r\n+                urls.add(URL.valueOf(urlBuilder.toString()));\r\n+            }\r\n+        });\r\n+\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static List<URL> appItemToUrls(ConfigItem item, ConfiguratorConfig config) {\r\n+        List<URL> urls = new ArrayList<>();\r\n+        List<String> addresses = parseAddresses(item);\r\n+        for (String addr : addresses) {\r\n+            StringBuilder urlBuilder = new StringBuilder();\r\n+            urlBuilder.append(\"override://\").append(addr).append(\"/\");\r\n+            List<String> services = item.getServices();\r\n+            if (services == null) {\r\n+                services = new ArrayList<>();\r\n+            }\r\n+            if (services.isEmpty()) {\r\n+                services.add(\"*\");\r\n+            }\r\n+            for (String s : services) {\r\n+                urlBuilder.append(appendService(s));\r\n+                urlBuilder.append(toParameterString(item));\r\n+\r\n+                urlBuilder.append(\"&application=\").append(config.getKey());\r\n+\r\n+                parseEnabled(item, config, urlBuilder);\r\n+\r\n+                urlBuilder.append(\"&category=\").append(APP_DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+                urlBuilder.append(\"&configVersion=\").append(config.getConfigVersion());\r\n+\r\n+                urls.add(URL.valueOf(urlBuilder.toString()));\r\n+            }\r\n+        }\r\n+        return urls;\r\n+    }\r\n+\r\n+    private static String toParameterString(ConfigItem item) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        sb.append(\"category=\");\r\n+        sb.append(DYNAMIC_CONFIGURATORS_CATEGORY);\r\n+        if (item.getSide() != null) {\r\n+            sb.append(\"&side=\");\r\n+            sb.append(item.getSide());\r\n+        }\r\n+        Map<String, String> parameters = item.getParameters();\r\n+        if (CollectionUtils.isEmptyMap(parameters)) {\r\n+            throw new IllegalStateException(\"Invalid configurator rule, please specify at least one parameter \" +\r\n+                    \"you want to change in the rule.\");\r\n+        }\r\n+\r\n+        parameters.forEach((k, v) -> {\r\n+            sb.append(\"&\");\r\n+            sb.append(k);\r\n+            sb.append(\"=\");\r\n+            sb.append(v);\r\n+        });\r\n+\r\n+        if (CollectionUtils.isNotEmpty(item.getProviderAddresses())) {\r\n+            sb.append(\"&\");\r\n+            sb.append(OVERRIDE_PROVIDERS_KEY);\r\n+            sb.append(\"=\");\r\n+            sb.append(CollectionUtils.join(item.getProviderAddresses(), \",\"));\r\n+        }\r\n+\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private static String appendService(String serviceKey) {\r\n+        StringBuilder sb = new StringBuilder();\r\n+        if (StringUtils.isEmpty(serviceKey)) {\r\n+            throw new IllegalStateException(\"service field in configuration is null.\");\r\n+        }\r\n+\r\n+        String interfaceName = serviceKey;\r\n+        int i = interfaceName.indexOf('/');\r\n+        if (i > 0) {\r\n+            sb.append(\"group=\");\r\n+            sb.append(interfaceName, 0, i);\r\n+            sb.append(\"&\");\r\n+\r\n+            interfaceName = interfaceName.substring(i + 1);\r\n+        }\r\n+        int j = interfaceName.indexOf(':');\r\n+        if (j > 0) {\r\n+            sb.append(\"version=\");\r\n+            sb.append(interfaceName.substring(j + 1));\r\n+            sb.append(\"&\");\r\n+            interfaceName = interfaceName.substring(0, j);\r\n+        }\r\n+        sb.insert(0, interfaceName + \"?\");\r\n+\r\n+        return sb.toString();\r\n+    }\r\n+\r\n+    private static void parseEnabled(ConfigItem item, ConfiguratorConfig config, StringBuilder urlBuilder) {\r\n+        urlBuilder.append(\"&enabled=\");\r\n+        if (item.getType() == null || ConfigItem.GENERAL_TYPE.equals(item.getType())) {\r\n+            urlBuilder.append(config.getEnabled());\r\n+        } else {\r\n+            urlBuilder.append(item.getEnabled());\r\n+        }\r\n+    }\r\n+\r\n+    private static List<String> parseAddresses(ConfigItem item) {\r\n+        List<String> addresses = item.getAddresses();\r\n+        if (addresses == null) {\r\n+            addresses = new ArrayList<>();\r\n+        }\r\n+        if (addresses.isEmpty()) {\r\n+            addresses.add(ANYHOST_VALUE);\r\n+        }\r\n+        return addresses;\r\n+    }\r\n+\r\n+    private static boolean isJsonArray(String rawConfig) {\r\n+        try {\r\n+            JSONValidator validator = JSONValidator.from(rawConfig);\r\n+            return validator.validate() && validator.getType() == JSONValidator.Type.Array;\r\n+        } catch (Exception e) {\r\n+            // ignore exception and return false\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java", "source2": "org/apache/dubbo/rpc/cluster/directory/AbstractDirectory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,141 +1,141 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.directory;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterChain;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\n-\n-/**\n- * Abstract implementation of Directory: Invoker list returned from this Directory's list method have been filtered by Routers\n- */\n-public abstract class AbstractDirectory<T> implements Directory<T> {\n-\n-    // logger\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractDirectory.class);\n-\n-    private final URL url;\n-\n-    private volatile boolean destroyed = false;\n-\n-    protected volatile URL consumerUrl;\n-\n-    protected final Map<String, String> queryMap; // Initialization at construction time, assertion not null\n-    protected final String consumedProtocol;\n-\n-    protected RouterChain<T> routerChain;\n-\n-    public AbstractDirectory(URL url) {\n-        this(url, null, false);\n-    }\n-\n-    public AbstractDirectory(URL url, boolean isUrlFromRegistry) {\n-        this(url, null, isUrlFromRegistry);\n-    }\n-\n-    public AbstractDirectory(URL url, RouterChain<T> routerChain, boolean isUrlFromRegistry) {\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"url == null\");\n-        }\n-\n-        queryMap = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\n-        String path = queryMap.get(PATH_KEY);\n-        this.consumedProtocol = this.queryMap.get(PROTOCOL_KEY) == null ? DUBBO : this.queryMap.get(PROTOCOL_KEY);\n-        this.url = url.removeParameter(REFER_KEY).removeParameter(MONITOR_KEY);\n-\n-        URL consumerUrlFrom = this.url.setProtocol(consumedProtocol)\n-                .setPath(path == null ? queryMap.get(INTERFACE_KEY) : path);\n-        if (isUrlFromRegistry) {\n-            // reserve parameters if url is already a consumer url\n-            consumerUrlFrom = consumerUrlFrom.clearParameters();\n-        }\n-        this.consumerUrl = consumerUrlFrom.addParameters(queryMap).removeParameter(MONITOR_KEY);\n-\n-        setRouterChain(routerChain);\n-    }\n-\n-    @Override\n-    public List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        if (destroyed) {\n-            throw new RpcException(\"Directory already destroyed .url: \" + getUrl());\n-        }\n-\n-        return doList(invocation);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public RouterChain<T> getRouterChain() {\n-        return routerChain;\n-    }\n-\n-    public void setRouterChain(RouterChain<T> routerChain) {\n-        this.routerChain = routerChain;\n-    }\n-\n-    protected void addRouters(List<Router> routers) {\n-        routers = routers == null ? Collections.emptyList() : routers;\n-        routerChain.addRouters(routers);\n-    }\n-\n-    public URL getConsumerUrl() {\n-        return consumerUrl;\n-    }\n-\n-    public void setConsumerUrl(URL consumerUrl) {\n-        this.consumerUrl = consumerUrl;\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return destroyed;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        destroyed = true;\n-    }\n-\n-    @Override\n-    public void discordAddresses() {\n-        // do nothing by default\n-    }\n-\n-    protected abstract List<Invoker<T>> doList(Invocation invocation) throws RpcException;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.directory;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterChain;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.MONITOR_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.REFER_KEY;\r\n+\r\n+/**\r\n+ * Abstract implementation of Directory: Invoker list returned from this Directory's list method have been filtered by Routers\r\n+ */\r\n+public abstract class AbstractDirectory<T> implements Directory<T> {\r\n+\r\n+    // logger\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractDirectory.class);\r\n+\r\n+    private final URL url;\r\n+\r\n+    private volatile boolean destroyed = false;\r\n+\r\n+    protected volatile URL consumerUrl;\r\n+\r\n+    protected final Map<String, String> queryMap; // Initialization at construction time, assertion not null\r\n+    protected final String consumedProtocol;\r\n+\r\n+    protected RouterChain<T> routerChain;\r\n+\r\n+    public AbstractDirectory(URL url) {\r\n+        this(url, null, false);\r\n+    }\r\n+\r\n+    public AbstractDirectory(URL url, boolean isUrlFromRegistry) {\r\n+        this(url, null, isUrlFromRegistry);\r\n+    }\r\n+\r\n+    public AbstractDirectory(URL url, RouterChain<T> routerChain, boolean isUrlFromRegistry) {\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"url == null\");\r\n+        }\r\n+\r\n+        queryMap = StringUtils.parseQueryString(url.getParameterAndDecoded(REFER_KEY));\r\n+        String path = queryMap.get(PATH_KEY);\r\n+        this.consumedProtocol = this.queryMap.get(PROTOCOL_KEY) == null ? DUBBO : this.queryMap.get(PROTOCOL_KEY);\r\n+        this.url = url.removeParameter(REFER_KEY).removeParameter(MONITOR_KEY);\r\n+\r\n+        URL consumerUrlFrom = this.url.setProtocol(consumedProtocol)\r\n+                .setPath(path == null ? queryMap.get(INTERFACE_KEY) : path);\r\n+        if (isUrlFromRegistry) {\r\n+            // reserve parameters if url is already a consumer url\r\n+            consumerUrlFrom = consumerUrlFrom.clearParameters();\r\n+        }\r\n+        this.consumerUrl = consumerUrlFrom.addParameters(queryMap).removeParameter(MONITOR_KEY);\r\n+\r\n+        setRouterChain(routerChain);\r\n+    }\r\n+\r\n+    @Override\r\n+    public List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        if (destroyed) {\r\n+            throw new RpcException(\"Directory already destroyed .url: \" + getUrl());\r\n+        }\r\n+\r\n+        return doList(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public RouterChain<T> getRouterChain() {\r\n+        return routerChain;\r\n+    }\r\n+\r\n+    public void setRouterChain(RouterChain<T> routerChain) {\r\n+        this.routerChain = routerChain;\r\n+    }\r\n+\r\n+    protected void addRouters(List<Router> routers) {\r\n+        routers = routers == null ? Collections.emptyList() : routers;\r\n+        routerChain.addRouters(routers);\r\n+    }\r\n+\r\n+    public URL getConsumerUrl() {\r\n+        return consumerUrl;\r\n+    }\r\n+\r\n+    public void setConsumerUrl(URL consumerUrl) {\r\n+        this.consumerUrl = consumerUrl;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return destroyed;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        destroyed = true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void discordAddresses() {\r\n+        // do nothing by default\r\n+    }\r\n+\r\n+    protected abstract List<Invoker<T>> doList(Invocation invocation) throws RpcException;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java", "source2": "org/apache/dubbo/rpc/cluster/governance/DefaultGovernanceRuleRepositoryImpl.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.governance;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-public class DefaultGovernanceRuleRepositoryImpl implements GovernanceRuleRepository {\n-\n-    private DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\n-\n-    @Override\n-    public void addListener(String key, String group, ConfigurationListener listener) {\n-        dynamicConfiguration.addListener(key, group, listener);\n-    }\n-\n-    @Override\n-    public void removeListener(String key, String group, ConfigurationListener listener) {\n-        dynamicConfiguration.removeListener(key, group, listener);\n-    }\n-\n-    @Override\n-    public String getRule(String key, String group, long timeout) throws IllegalStateException {\n-        return dynamicConfiguration.getConfig(key, group, timeout);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.governance;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+public class DefaultGovernanceRuleRepositoryImpl implements GovernanceRuleRepository {\r\n+\r\n+    private DynamicConfiguration dynamicConfiguration = DynamicConfiguration.getDynamicConfiguration();\r\n+\r\n+    @Override\r\n+    public void addListener(String key, String group, ConfigurationListener listener) {\r\n+        dynamicConfiguration.addListener(key, group, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeListener(String key, String group, ConfigurationListener listener) {\r\n+        dynamicConfiguration.removeListener(key, group, listener);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getRule(String key, String group, long timeout) throws IllegalStateException {\r\n+        return dynamicConfiguration.getConfig(key, group, timeout);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java", "source2": "org/apache/dubbo/rpc/cluster/governance/GovernanceRuleRepository.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,91 +1,91 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.governance;\n-\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI(\"default\")\n-public interface GovernanceRuleRepository {\n-\n-    String DEFAULT_GROUP = \"dubbo\";\n-\n-    /**\n-     * {@link #addListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void addListener(String key, ConfigurationListener listener) {\n-        addListener(key, DEFAULT_GROUP, listener);\n-    }\n-\n-\n-    /**\n-     * {@link #removeListener(String, String, ConfigurationListener)}\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param listener configuration listener\n-     */\n-    default void removeListener(String key, ConfigurationListener listener) {\n-        removeListener(key, DEFAULT_GROUP, listener);\n-    }\n-\n-    /**\n-     * Register a configuration listener for a specified key\n-     * The listener only works for service governance purpose, so the target group would always be the value user\n-     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\n-     * trigger a notification that contains the current value.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void addListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Stops one listener from listening to value changes in the specified key.\n-     *\n-     * @param key      the key to represent a configuration\n-     * @param group    the group where the key belongs to\n-     * @param listener configuration listener\n-     */\n-    void removeListener(String key, String group, ConfigurationListener listener);\n-\n-    /**\n-     * Get the governance rule mapped to the given key and the given group\n-     *\n-     * @param key   the key to represent a configuration\n-     * @param group the group where the key belongs to\n-     * @return target configuration mapped to the given key and the given group\n-     */\n-    default String getRule(String key, String group) {\n-        return getRule(key, group, -1L);\n-    }\n-\n-    /**\n-     * Get the governance rule mapped to the given key and the given group. If the\n-     * rule fails to return after timeout exceeds, IllegalStateException will be thrown.\n-     *\n-     * @param key     the key to represent a configuration\n-     * @param group   the group where the key belongs to\n-     * @param timeout timeout value for fetching the target config\n-     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\n-     * if timeout exceeds.\n-     */\n-    String getRule(String key, String group, long timeout) throws IllegalStateException;\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.governance;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI(\"default\")\r\n+public interface GovernanceRuleRepository {\r\n+\r\n+    String DEFAULT_GROUP = \"dubbo\";\r\n+\r\n+    /**\r\n+     * {@link #addListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void addListener(String key, ConfigurationListener listener) {\r\n+        addListener(key, DEFAULT_GROUP, listener);\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * {@link #removeListener(String, String, ConfigurationListener)}\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param listener configuration listener\r\n+     */\r\n+    default void removeListener(String key, ConfigurationListener listener) {\r\n+        removeListener(key, DEFAULT_GROUP, listener);\r\n+    }\r\n+\r\n+    /**\r\n+     * Register a configuration listener for a specified key\r\n+     * The listener only works for service governance purpose, so the target group would always be the value user\r\n+     * specifies at startup or 'dubbo' by default. This method will only register listener, which means it will not\r\n+     * trigger a notification that contains the current value.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void addListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Stops one listener from listening to value changes in the specified key.\r\n+     *\r\n+     * @param key      the key to represent a configuration\r\n+     * @param group    the group where the key belongs to\r\n+     * @param listener configuration listener\r\n+     */\r\n+    void removeListener(String key, String group, ConfigurationListener listener);\r\n+\r\n+    /**\r\n+     * Get the governance rule mapped to the given key and the given group\r\n+     *\r\n+     * @param key   the key to represent a configuration\r\n+     * @param group the group where the key belongs to\r\n+     * @return target configuration mapped to the given key and the given group\r\n+     */\r\n+    default String getRule(String key, String group) {\r\n+        return getRule(key, group, -1L);\r\n+    }\r\n+\r\n+    /**\r\n+     * Get the governance rule mapped to the given key and the given group. If the\r\n+     * rule fails to return after timeout exceeds, IllegalStateException will be thrown.\r\n+     *\r\n+     * @param key     the key to represent a configuration\r\n+     * @param group   the group where the key belongs to\r\n+     * @param timeout timeout value for fetching the target config\r\n+     * @return target configuration mapped to the given key and the given group, IllegalStateException will be thrown\r\n+     * if timeout exceeds.\r\n+     */\r\n+    String getRule(String key, String group, long timeout) throws IllegalStateException;\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ClusterInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,56 +1,56 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-/**\n- * Different from {@link Filter}, ClusterInterceptor works at the outmost layer, before one specific address/invoker is picked.\n- */\n-@SPI\n-public interface ClusterInterceptor {\n-\n-    void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-    void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-    /**\n-     * Does not need to override this method, override {@link #before(AbstractClusterInvoker, Invocation)}\n-     * and {@link #after(AbstractClusterInvoker, Invocation)}, methods to add your own logic expected to be\n-     * executed before and after invoke.\n-     *\n-     * @param clusterInvoker\n-     * @param invocation\n-     * @return\n-     * @throws RpcException\n-     */\n-    default Result intercept(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) throws RpcException {\n-        return clusterInvoker.invoke(invocation);\n-    }\n-\n-    interface Listener {\n-\n-        void onMessage(Result appResponse, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-\n-        void onError(Throwable t, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+/**\r\n+ * Different from {@link Filter}, ClusterInterceptor works at the outmost layer, before one specific address/invoker is picked.\r\n+ */\r\n+@SPI\r\n+public interface ClusterInterceptor {\r\n+\r\n+    void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+    void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+    /**\r\n+     * Does not need to override this method, override {@link #before(AbstractClusterInvoker, Invocation)}\r\n+     * and {@link #after(AbstractClusterInvoker, Invocation)}, methods to add your own logic expected to be\r\n+     * executed before and after invoke.\r\n+     *\r\n+     * @param clusterInvoker\r\n+     * @param invocation\r\n+     * @return\r\n+     * @throws RpcException\r\n+     */\r\n+    default Result intercept(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) throws RpcException {\r\n+        return clusterInvoker.invoke(invocation);\r\n+    }\r\n+\r\n+    interface Listener {\r\n+\r\n+        void onMessage(Result appResponse, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+\r\n+        void onError(Throwable t, AbstractClusterInvoker<?> clusterInvoker, Invocation invocation);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ConsumerContextClusterInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-@Activate\n-public class ConsumerContextClusterInterceptor implements ClusterInterceptor, ClusterInterceptor.Listener {\n-\n-    @Override\n-    public void before(AbstractClusterInvoker<?> invoker, Invocation invocation) {\n-        RpcContext context = RpcContext.getContext();\n-        context.setInvocation(invocation).setLocalAddress(NetUtils.getLocalHost(), 0);\n-        if (invocation instanceof RpcInvocation) {\n-            ((RpcInvocation) invocation).setInvoker(invoker);\n-        }\n-        RpcContext.removeServerContext();\n-    }\n-\n-    @Override\n-    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\n-        RpcContext.removeContext(true);\n-    }\n-\n-    @Override\n-    public void onMessage(Result appResponse, AbstractClusterInvoker<?> invoker, Invocation invocation) {\n-        RpcContext.getServerContext().setObjectAttachments(appResponse.getObjectAttachments());\n-    }\n-\n-    @Override\n-    public void onError(Throwable t, AbstractClusterInvoker<?> invoker, Invocation invocation) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+@Activate\r\n+public class ConsumerContextClusterInterceptor implements ClusterInterceptor, ClusterInterceptor.Listener {\r\n+\r\n+    @Override\r\n+    public void before(AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setInvocation(invocation).setLocalAddress(NetUtils.getLocalHost(), 0);\r\n+        if (invocation instanceof RpcInvocation) {\r\n+            ((RpcInvocation) invocation).setInvoker(invoker);\r\n+        }\r\n+        RpcContext.removeServerContext();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+        RpcContext.removeContext(true);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onMessage(Result appResponse, AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+        RpcContext.getServerContext().setObjectAttachments(appResponse.getObjectAttachments());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onError(Throwable t, AbstractClusterInvoker<?> invoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java", "source2": "org/apache/dubbo/rpc/cluster/interceptor/ZoneAwareClusterInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.interceptor;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.ZoneDetector;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\n-\n-/**\n- * Determines the zone information of current request.\n- *\n- * active only when url has key 'cluster=zone-aware'\n- */\n-@Activate(value = \"cluster:zone-aware\")\n-public class ZoneAwareClusterInterceptor implements ClusterInterceptor {\n-\n-    @Override\n-    public void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\n-        RpcContext rpcContext = RpcContext.getContext();\n-        String zone = (String) rpcContext.getAttachment(REGISTRY_ZONE);\n-        String force = (String) rpcContext.getAttachment(REGISTRY_ZONE_FORCE);\n-        ExtensionLoader<ZoneDetector> loader = ExtensionLoader.getExtensionLoader(ZoneDetector.class);\n-        if (StringUtils.isEmpty(zone) && loader.hasExtension(\"default\")) {\n-            ZoneDetector detector = loader.getExtension(\"default\");\n-            zone = detector.getZoneOfCurrentRequest(invocation);\n-            force = detector.isZoneForcingEnabled(invocation, zone);\n-        }\n-\n-        if (StringUtils.isNotEmpty(zone)) {\n-            invocation.setAttachment(REGISTRY_ZONE, zone);\n-        }\n-        if (StringUtils.isNotEmpty(force)) {\n-            invocation.setAttachment(REGISTRY_ZONE_FORCE, force);\n-        }\n-    }\n-\n-    @Override\n-    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.interceptor;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.ZoneDetector;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\r\n+\r\n+/**\r\n+ * Determines the zone information of current request.\r\n+ *\r\n+ * active only when url has key 'cluster=zone-aware'\r\n+ */\r\n+@Activate(value = \"cluster:zone-aware\")\r\n+public class ZoneAwareClusterInterceptor implements ClusterInterceptor {\r\n+\r\n+    @Override\r\n+    public void before(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+        RpcContext rpcContext = RpcContext.getContext();\r\n+        String zone = (String) rpcContext.getAttachment(REGISTRY_ZONE);\r\n+        String force = (String) rpcContext.getAttachment(REGISTRY_ZONE_FORCE);\r\n+        ExtensionLoader<ZoneDetector> loader = ExtensionLoader.getExtensionLoader(ZoneDetector.class);\r\n+        if (StringUtils.isEmpty(zone) && loader.hasExtension(\"default\")) {\r\n+            ZoneDetector detector = loader.getExtension(\"default\");\r\n+            zone = detector.getZoneOfCurrentRequest(invocation);\r\n+            force = detector.isZoneForcingEnabled(invocation, zone);\r\n+        }\r\n+\r\n+        if (StringUtils.isNotEmpty(zone)) {\r\n+            invocation.setAttachment(REGISTRY_ZONE, zone);\r\n+        }\r\n+        if (StringUtils.isNotEmpty(force)) {\r\n+            invocation.setAttachment(REGISTRY_ZONE_FORCE, force);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void after(AbstractClusterInvoker<?> clusterInvoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java", "source2": "org/apache/dubbo/rpc/cluster/loadbalance/RandomLoadBalance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.loadbalance;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.List;\n-import java.util.concurrent.ThreadLocalRandom;\n-\n-/**\n- * This class select one provider from multiple providers randomly.\n- * You can define weights for each provider:\n- * If the weights are all the same then it will use random.nextInt(number of invokers).\n- * If the weights are different then it will use random.nextInt(w1 + w2 + ... + wn)\n- * Note that if the performance of the machine is better than others, you can set a larger weight.\n- * If the performance is not so good, you can set a smaller weight.\n- */\n-public class RandomLoadBalance extends AbstractLoadBalance {\n-\n-    public static final String NAME = \"random\";\n-\n-    /**\n-     * Select one invoker between a list using a random criteria\n-     * @param invokers List of possible invokers\n-     * @param url URL\n-     * @param invocation Invocation\n-     * @param <T>\n-     * @return The selected invoker\n-     */\n-    @Override\n-    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        // Number of invokers\n-        int length = invokers.size();\n-        // Every invoker has the same weight?\n-        boolean sameWeight = true;\n-        // the maxWeight of every invokers, the minWeight = 0 or the maxWeight of the last invoker\n-        int[] weights = new int[length];\n-        // The sum of weights\n-        int totalWeight = 0;\n-        for (int i = 0; i < length; i++) {\n-            int weight = getWeight(invokers.get(i), invocation);\n-            // Sum\n-            totalWeight += weight;\n-            // save for later use\n-            weights[i] = totalWeight;\n-            if (sameWeight && totalWeight != weight * (i + 1)) {\n-                sameWeight = false;\n-            }\n-        }\n-        if (totalWeight > 0 && !sameWeight) {\n-            // If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on totalWeight.\n-            int offset = ThreadLocalRandom.current().nextInt(totalWeight);\n-            // Return a invoker based on the random value.\n-            for (int i = 0; i < length; i++) {\n-                if (offset < weights[i]) {\n-                    return invokers.get(i);\n-                }\n-            }\n-        }\n-        // If all invokers have the same weight value or totalWeight=0, return evenly.\n-        return invokers.get(ThreadLocalRandom.current().nextInt(length));\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.loadbalance;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+\r\n+/**\r\n+ * This class select one provider from multiple providers randomly.\r\n+ * You can define weights for each provider:\r\n+ * If the weights are all the same then it will use random.nextInt(number of invokers).\r\n+ * If the weights are different then it will use random.nextInt(w1 + w2 + ... + wn)\r\n+ * Note that if the performance of the machine is better than others, you can set a larger weight.\r\n+ * If the performance is not so good, you can set a smaller weight.\r\n+ */\r\n+public class RandomLoadBalance extends AbstractLoadBalance {\r\n+\r\n+    public static final String NAME = \"random\";\r\n+\r\n+    /**\r\n+     * Select one invoker between a list using a random criteria\r\n+     * @param invokers List of possible invokers\r\n+     * @param url URL\r\n+     * @param invocation Invocation\r\n+     * @param <T>\r\n+     * @return The selected invoker\r\n+     */\r\n+    @Override\r\n+    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        // Number of invokers\r\n+        int length = invokers.size();\r\n+        // Every invoker has the same weight?\r\n+        boolean sameWeight = true;\r\n+        // the maxWeight of every invokers, the minWeight = 0 or the maxWeight of the last invoker\r\n+        int[] weights = new int[length];\r\n+        // The sum of weights\r\n+        int totalWeight = 0;\r\n+        for (int i = 0; i < length; i++) {\r\n+            int weight = getWeight(invokers.get(i), invocation);\r\n+            // Sum\r\n+            totalWeight += weight;\r\n+            // save for later use\r\n+            weights[i] = totalWeight;\r\n+            if (sameWeight && totalWeight != weight * (i + 1)) {\r\n+                sameWeight = false;\r\n+            }\r\n+        }\r\n+        if (totalWeight > 0 && !sameWeight) {\r\n+            // If (not every invoker has the same weight & at least one invoker's weight>0), select randomly based on totalWeight.\r\n+            int offset = ThreadLocalRandom.current().nextInt(totalWeight);\r\n+            // Return a invoker based on the random value.\r\n+            for (int i = 0; i < length; i++) {\r\n+                if (offset < weights[i]) {\r\n+                    return invokers.get(i);\r\n+                }\r\n+            }\r\n+        }\r\n+        // If all invokers have the same weight value or totalWeight=0, return evenly.\r\n+        return invokers.get(ThreadLocalRandom.current().nextInt(length));\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java", "source2": "org/apache/dubbo/rpc/cluster/loadbalance/ShortestResponseLoadBalance.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.loadbalance;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcStatus;\n-\n-import java.util.List;\n-import java.util.concurrent.ThreadLocalRandom;\n-\n-/**\n- * ShortestResponseLoadBalance\n- * </p>\n- * Filter the number of invokers with the shortest response time of success calls and count the weights and quantities of these invokers.\n- * If there is only one invoker, use the invoker directly;\n- * if there are multiple invokers and the weights are not the same, then random according to the total weight;\n- * if there are multiple invokers and the same weight, then randomly called.\n- */\n-public class ShortestResponseLoadBalance extends AbstractLoadBalance {\n-\n-    public static final String NAME = \"shortestresponse\";\n-\n-    @Override\n-    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        // Number of invokers\n-        int length = invokers.size();\n-        // Estimated shortest response time of all invokers\n-        long shortestResponse = Long.MAX_VALUE;\n-        // The number of invokers having the same estimated shortest response time\n-        int shortestCount = 0;\n-        // The index of invokers having the same estimated shortest response time\n-        int[] shortestIndexes = new int[length];\n-        // the weight of every invokers\n-        int[] weights = new int[length];\n-        // The sum of the warmup weights of all the shortest response  invokers\n-        int totalWeight = 0;\n-        // The weight of the first shortest response invokers\n-        int firstWeight = 0;\n-        // Every shortest response invoker has the same weight value?\n-        boolean sameWeight = true;\n-\n-        // Filter out all the shortest response invokers\n-        for (int i = 0; i < length; i++) {\n-            Invoker<T> invoker = invokers.get(i);\n-            RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), invocation.getMethodName());\n-            // Calculate the estimated response time from the product of active connections and succeeded average elapsed time.\n-            long succeededAverageElapsed = rpcStatus.getSucceededAverageElapsed();\n-            int active = rpcStatus.getActive();\n-            long estimateResponse = succeededAverageElapsed * active;\n-            int afterWarmup = getWeight(invoker, invocation);\n-            weights[i] = afterWarmup;\n-            // Same as LeastActiveLoadBalance\n-            if (estimateResponse < shortestResponse) {\n-                shortestResponse = estimateResponse;\n-                shortestCount = 1;\n-                shortestIndexes[0] = i;\n-                totalWeight = afterWarmup;\n-                firstWeight = afterWarmup;\n-                sameWeight = true;\n-            } else if (estimateResponse == shortestResponse) {\n-                shortestIndexes[shortestCount++] = i;\n-                totalWeight += afterWarmup;\n-                if (sameWeight && i > 0\n-                        && afterWarmup != firstWeight) {\n-                    sameWeight = false;\n-                }\n-            }\n-        }\n-        if (shortestCount == 1) {\n-            return invokers.get(shortestIndexes[0]);\n-        }\n-        if (!sameWeight && totalWeight > 0) {\n-            int offsetWeight = ThreadLocalRandom.current().nextInt(totalWeight);\n-            for (int i = 0; i < shortestCount; i++) {\n-                int shortestIndex = shortestIndexes[i];\n-                offsetWeight -= weights[shortestIndex];\n-                if (offsetWeight < 0) {\n-                    return invokers.get(shortestIndex);\n-                }\n-            }\n-        }\n-        return invokers.get(shortestIndexes[ThreadLocalRandom.current().nextInt(shortestCount)]);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.loadbalance;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcStatus;\r\n+\r\n+import java.util.List;\r\n+import java.util.concurrent.ThreadLocalRandom;\r\n+\r\n+/**\r\n+ * ShortestResponseLoadBalance\r\n+ * </p>\r\n+ * Filter the number of invokers with the shortest response time of success calls and count the weights and quantities of these invokers.\r\n+ * If there is only one invoker, use the invoker directly;\r\n+ * if there are multiple invokers and the weights are not the same, then random according to the total weight;\r\n+ * if there are multiple invokers and the same weight, then randomly called.\r\n+ */\r\n+public class ShortestResponseLoadBalance extends AbstractLoadBalance {\r\n+\r\n+    public static final String NAME = \"shortestresponse\";\r\n+\r\n+    @Override\r\n+    protected <T> Invoker<T> doSelect(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        // Number of invokers\r\n+        int length = invokers.size();\r\n+        // Estimated shortest response time of all invokers\r\n+        long shortestResponse = Long.MAX_VALUE;\r\n+        // The number of invokers having the same estimated shortest response time\r\n+        int shortestCount = 0;\r\n+        // The index of invokers having the same estimated shortest response time\r\n+        int[] shortestIndexes = new int[length];\r\n+        // the weight of every invokers\r\n+        int[] weights = new int[length];\r\n+        // The sum of the warmup weights of all the shortest response  invokers\r\n+        int totalWeight = 0;\r\n+        // The weight of the first shortest response invokers\r\n+        int firstWeight = 0;\r\n+        // Every shortest response invoker has the same weight value?\r\n+        boolean sameWeight = true;\r\n+\r\n+        // Filter out all the shortest response invokers\r\n+        for (int i = 0; i < length; i++) {\r\n+            Invoker<T> invoker = invokers.get(i);\r\n+            RpcStatus rpcStatus = RpcStatus.getStatus(invoker.getUrl(), invocation.getMethodName());\r\n+            // Calculate the estimated response time from the product of active connections and succeeded average elapsed time.\r\n+            long succeededAverageElapsed = rpcStatus.getSucceededAverageElapsed();\r\n+            int active = rpcStatus.getActive();\r\n+            long estimateResponse = succeededAverageElapsed * active;\r\n+            int afterWarmup = getWeight(invoker, invocation);\r\n+            weights[i] = afterWarmup;\r\n+            // Same as LeastActiveLoadBalance\r\n+            if (estimateResponse < shortestResponse) {\r\n+                shortestResponse = estimateResponse;\r\n+                shortestCount = 1;\r\n+                shortestIndexes[0] = i;\r\n+                totalWeight = afterWarmup;\r\n+                firstWeight = afterWarmup;\r\n+                sameWeight = true;\r\n+            } else if (estimateResponse == shortestResponse) {\r\n+                shortestIndexes[shortestCount++] = i;\r\n+                totalWeight += afterWarmup;\r\n+                if (sameWeight && i > 0\r\n+                        && afterWarmup != firstWeight) {\r\n+                    sameWeight = false;\r\n+                }\r\n+            }\r\n+        }\r\n+        if (shortestCount == 1) {\r\n+            return invokers.get(shortestIndexes[0]);\r\n+        }\r\n+        if (!sameWeight && totalWeight > 0) {\r\n+            int offsetWeight = ThreadLocalRandom.current().nextInt(totalWeight);\r\n+            for (int i = 0; i < shortestCount; i++) {\r\n+                int shortestIndex = shortestIndexes[i];\r\n+                offsetWeight -= weights[shortestIndex];\r\n+                if (offsetWeight < 0) {\r\n+                    return invokers.get(shortestIndex);\r\n+                }\r\n+            }\r\n+        }\r\n+        return invokers.get(shortestIndexes[ThreadLocalRandom.current().nextInt(shortestCount)]);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/DoubleArrayMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class DoubleArrayMerger implements Merger<double[]> {\n-\n-    @Override\n-    public double[] merge(double[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new double[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToDouble(Arrays::stream)\n-                .toArray();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class DoubleArrayMerger implements Merger<double[]> {\r\n+\r\n+    @Override\r\n+    public double[] merge(double[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new double[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToDouble(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/IntArrayMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,38 +1,38 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class IntArrayMerger implements Merger<int[]> {\n-\n-    @Override\n-    public int[] merge(int[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new int[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToInt(Arrays::stream)\n-                .toArray();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class IntArrayMerger implements Merger<int[]> {\r\n+\r\n+    @Override\r\n+    public int[] merge(int[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new int[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToInt(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/ListMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/ListMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Objects;\n-import java.util.stream.Collectors;\n-import java.util.stream.Stream;\n-\n-public class ListMerger implements Merger<List<?>> {\n-\n-    @Override\n-    public List<Object> merge(List<?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptyList();\n-        }\n-        return Stream.of(items).filter(Objects::nonNull)\n-                .flatMap(Collection::stream)\n-                .collect(Collectors.toList());\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Objects;\r\n+import java.util.stream.Collectors;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class ListMerger implements Merger<List<?>> {\r\n+\r\n+    @Override\r\n+    public List<Object> merge(List<?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptyList();\r\n+        }\r\n+        return Stream.of(items).filter(Objects::nonNull)\r\n+                .flatMap(Collection::stream)\r\n+                .collect(Collectors.toList());\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/LongArrayMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Arrays;\n-import java.util.Objects;\n-\n-public class LongArrayMerger implements Merger<long[]> {\n-\n-    @Override\n-    public long[] merge(long[]... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return new long[0];\n-        }\n-        return Arrays.stream(items).filter(Objects::nonNull)\n-                .flatMapToLong(Arrays::stream)\n-                .toArray();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Arrays;\r\n+import java.util.Objects;\r\n+\r\n+public class LongArrayMerger implements Merger<long[]> {\r\n+\r\n+    @Override\r\n+    public long[] merge(long[]... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return new long[0];\r\n+        }\r\n+        return Arrays.stream(items).filter(Objects::nonNull)\r\n+                .flatMapToLong(Arrays::stream)\r\n+                .toArray();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/MapMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/MapMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,40 +1,40 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Objects;\n-import java.util.stream.Stream;\n-\n-public class MapMerger implements Merger<Map<?, ?>> {\n-\n-    @Override\n-    public Map<?, ?> merge(Map<?, ?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptyMap();\n-        }\n-        Map<Object, Object> result = new HashMap<Object, Object>();\n-        Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);\n-        return result;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Objects;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class MapMerger implements Merger<Map<?, ?>> {\r\n+\r\n+    @Override\r\n+    public Map<?, ?> merge(Map<?, ?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptyMap();\r\n+        }\r\n+        Map<Object, Object> result = new HashMap<Object, Object>();\r\n+        Stream.of(items).filter(Objects::nonNull).forEach(result::putAll);\r\n+        return result;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/MergerFactory.java", "source2": "org/apache/dubbo/rpc/cluster/merger/MergerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,76 +1,76 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class MergerFactory {\n-\n-    private static final ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE =\n-            new ConcurrentHashMap<Class<?>, Merger<?>>();\n-\n-    /**\n-     * Find the merger according to the returnType class, the merger will\n-     * merge an array of returnType into one\n-     *\n-     * @param returnType the merger will return this type\n-     * @return the merger which merges an array of returnType into one, return null if not exist\n-     * @throws IllegalArgumentException if returnType is null\n-     */\n-    public static <T> Merger<T> getMerger(Class<T> returnType) {\n-        if (returnType == null) {\n-            throw new IllegalArgumentException(\"returnType is null\");\n-        }\n-\n-        Merger result;\n-        if (returnType.isArray()) {\n-            Class type = returnType.getComponentType();\n-            result = MERGER_CACHE.get(type);\n-            if (result == null) {\n-                loadMergers();\n-                result = MERGER_CACHE.get(type);\n-            }\n-            if (result == null && !type.isPrimitive()) {\n-                result = ArrayMerger.INSTANCE;\n-            }\n-        } else {\n-            result = MERGER_CACHE.get(returnType);\n-            if (result == null) {\n-                loadMergers();\n-                result = MERGER_CACHE.get(returnType);\n-            }\n-        }\n-        return result;\n-    }\n-\n-    static void loadMergers() {\n-        Set<String> names = ExtensionLoader.getExtensionLoader(Merger.class)\n-                .getSupportedExtensions();\n-        for (String name : names) {\n-            Merger m = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(name);\n-            MERGER_CACHE.putIfAbsent(ReflectUtils.getGenericClass(m.getClass()), m);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class MergerFactory {\r\n+\r\n+    private static final ConcurrentMap<Class<?>, Merger<?>> MERGER_CACHE =\r\n+            new ConcurrentHashMap<Class<?>, Merger<?>>();\r\n+\r\n+    /**\r\n+     * Find the merger according to the returnType class, the merger will\r\n+     * merge an array of returnType into one\r\n+     *\r\n+     * @param returnType the merger will return this type\r\n+     * @return the merger which merges an array of returnType into one, return null if not exist\r\n+     * @throws IllegalArgumentException if returnType is null\r\n+     */\r\n+    public static <T> Merger<T> getMerger(Class<T> returnType) {\r\n+        if (returnType == null) {\r\n+            throw new IllegalArgumentException(\"returnType is null\");\r\n+        }\r\n+\r\n+        Merger result;\r\n+        if (returnType.isArray()) {\r\n+            Class type = returnType.getComponentType();\r\n+            result = MERGER_CACHE.get(type);\r\n+            if (result == null) {\r\n+                loadMergers();\r\n+                result = MERGER_CACHE.get(type);\r\n+            }\r\n+            if (result == null && !type.isPrimitive()) {\r\n+                result = ArrayMerger.INSTANCE;\r\n+            }\r\n+        } else {\r\n+            result = MERGER_CACHE.get(returnType);\r\n+            if (result == null) {\r\n+                loadMergers();\r\n+                result = MERGER_CACHE.get(returnType);\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    static void loadMergers() {\r\n+        Set<String> names = ExtensionLoader.getExtensionLoader(Merger.class)\r\n+                .getSupportedExtensions();\r\n+        for (String name : names) {\r\n+            Merger m = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(name);\r\n+            MERGER_CACHE.putIfAbsent(ReflectUtils.getGenericClass(m.getClass()), m);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/merger/SetMerger.java", "source2": "org/apache/dubbo/rpc/cluster/merger/SetMerger.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,39 +1,39 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.merger;\n-\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-\n-import java.util.Collections;\n-import java.util.HashSet;\n-import java.util.Objects;\n-import java.util.Set;\n-import java.util.stream.Stream;\n-\n-public class SetMerger implements Merger<Set<?>> {\n-\n-    @Override\n-    public Set<Object> merge(Set<?>... items) {\n-        if (ArrayUtils.isEmpty(items)) {\n-            return Collections.emptySet();\n-        }\n-        Set<Object> result = new HashSet<Object>();\n-        Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);\n-        return result;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.merger;\r\n+\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.HashSet;\r\n+import java.util.Objects;\r\n+import java.util.Set;\r\n+import java.util.stream.Stream;\r\n+\r\n+public class SetMerger implements Merger<Set<?>> {\r\n+\r\n+    @Override\r\n+    public Set<Object> merge(Set<?>... items) {\r\n+        if (ArrayUtils.isEmpty(items)) {\r\n+            return Collections.emptySet();\r\n+        }\r\n+        Set<Object> result = new HashSet<Object>();\r\n+        Stream.of(items).filter(Objects::nonNull).forEach(result::addAll);\r\n+        return result;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/AbstractRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/AbstractRouter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\n-\n-public abstract class AbstractRouter implements Router {\n-    protected int priority = DEFAULT_PRIORITY;\n-    protected boolean force = false;\n-    protected URL url;\n-\n-    protected GovernanceRuleRepository ruleRepository;\n-\n-    public AbstractRouter(URL url) {\n-        this.ruleRepository = ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension();\n-        this.url = url;\n-    }\n-\n-    public AbstractRouter() {\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    public void setUrl(URL url) {\n-        this.url = url;\n-    }\n-\n-    @Override\n-    public boolean isRuntime() {\n-        return true;\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        return force;\n-    }\n-\n-    public void setForce(boolean force) {\n-        this.force = force;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return priority;\n-    }\n-\n-    public void setPriority(int priority) {\n-        this.priority = priority;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.governance.GovernanceRuleRepository;\r\n+\r\n+public abstract class AbstractRouter implements Router {\r\n+    protected int priority = DEFAULT_PRIORITY;\r\n+    protected boolean force = false;\r\n+    protected URL url;\r\n+\r\n+    protected GovernanceRuleRepository ruleRepository;\r\n+\r\n+    public AbstractRouter(URL url) {\r\n+        this.ruleRepository = ExtensionLoader.getExtensionLoader(GovernanceRuleRepository.class).getDefaultExtension();\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    public AbstractRouter() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    public void setUrl(URL url) {\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isRuntime() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        return force;\r\n+    }\r\n+\r\n+    public void setForce(boolean force) {\r\n+        this.force = force;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return priority;\r\n+    }\r\n+\r\n+    public void setPriority(int priority) {\r\n+        this.priority = priority;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-\n-/**\n- * Application level router, \"application.condition-router\"\n- */\n-public class AppRouter extends ListenableRouter {\n-    public static final String NAME = \"APP_ROUTER\";\n-    /**\n-     * AppRouter should after ServiceRouter\n-     */\n-    private static final int APP_ROUTER_DEFAULT_PRIORITY = 150;\n-\n-    public AppRouter(URL url) {\n-        super(url, url.getParameter(CommonConstants.APPLICATION_KEY));\n-        this.priority = APP_ROUTER_DEFAULT_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+\r\n+/**\r\n+ * Application level router, \"application.condition-router\"\r\n+ */\r\n+public class AppRouter extends ListenableRouter {\r\n+    public static final String NAME = \"APP_ROUTER\";\r\n+    /**\r\n+     * AppRouter should after ServiceRouter\r\n+     */\r\n+    private static final int APP_ROUTER_DEFAULT_PRIORITY = 150;\r\n+\r\n+    public AppRouter(URL url) {\r\n+        super(url, url.getParameter(CommonConstants.APPLICATION_KEY));\r\n+        this.priority = APP_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/AppRouterFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,49 +1,49 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterFactory;\n-\n-/**\n- * Application level router factory\n- */\n-@Activate(order = 200)\n-public class AppRouterFactory implements RouterFactory {\n-    public static final String NAME = \"app\";\n-\n-    private volatile Router router;\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        if (router != null) {\n-            return router;\n-        }\n-        synchronized (this) {\n-            if (router == null) {\n-                router = createRouter(url);\n-            }\n-        }\n-        return router;\n-    }\n-\n-    private Router createRouter(URL url) {\n-        return new AppRouter(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterFactory;\r\n+\r\n+/**\r\n+ * Application level router factory\r\n+ */\r\n+@Activate(order = 200)\r\n+public class AppRouterFactory implements RouterFactory {\r\n+    public static final String NAME = \"app\";\r\n+\r\n+    private volatile Router router;\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        if (router != null) {\r\n+            return router;\r\n+        }\r\n+        synchronized (this) {\r\n+            if (router == null) {\r\n+                router = createRouter(url);\r\n+            }\r\n+        }\r\n+        return router;\r\n+    }\r\n+\r\n+    private Router createRouter(URL url) {\r\n+        return new AppRouter(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ListenableRouter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,127 +1,127 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-import org.apache.dubbo.rpc.cluster.router.condition.ConditionRouter;\n-import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRouterRule;\n-import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRuleParser;\n-\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.stream.Collectors;\n-\n-/**\n- * Abstract router which listens to dynamic configuration\n- */\n-public abstract class ListenableRouter extends AbstractRouter implements ConfigurationListener {\n-    public static final String NAME = \"LISTENABLE_ROUTER\";\n-    private static final String RULE_SUFFIX = \".condition-router\";\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ListenableRouter.class);\n-    private ConditionRouterRule routerRule;\n-    private List<ConditionRouter> conditionRouters = Collections.emptyList();\n-\n-    public ListenableRouter(URL url, String ruleKey) {\n-        super(url);\n-        this.force = false;\n-        this.init(ruleKey);\n-    }\n-\n-    @Override\n-    public synchronized void process(ConfigChangedEvent event) {\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Notification of condition rule, change type is: \" + event.getChangeType() +\n-                    \", raw rule is:\\n \" + event.getContent());\n-        }\n-\n-        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\n-            routerRule = null;\n-            conditionRouters = Collections.emptyList();\n-        } else {\n-            try {\n-                routerRule = ConditionRuleParser.parse(event.getContent());\n-                generateConditions(routerRule);\n-            } catch (Exception e) {\n-                logger.error(\"Failed to parse the raw condition rule and it will not take effect, please check \" +\n-                        \"if the condition rule matches with the template, the raw rule is:\\n \" + event.getContent(), e);\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) {\n-            return invokers;\n-        }\n-\n-        // We will check enabled status inside each router.\n-        for (Router router : conditionRouters) {\n-            invokers = router.route(invokers, url, invocation);\n-        }\n-\n-        return invokers;\n-    }\n-\n-    @Override\n-    public int getPriority() {\n-        return priority;\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        return (routerRule != null && routerRule.isForce());\n-    }\n-\n-    private boolean isRuleRuntime() {\n-        return routerRule != null && routerRule.isValid() && routerRule.isRuntime();\n-    }\n-\n-    private void generateConditions(ConditionRouterRule rule) {\n-        if (rule != null && rule.isValid()) {\n-            this.conditionRouters = rule.getConditions()\n-                    .stream()\n-                    .map(condition -> new ConditionRouter(condition, rule.isForce(), rule.isEnabled()))\n-                    .collect(Collectors.toList());\n-        }\n-    }\n-\n-    private synchronized void init(String ruleKey) {\n-        if (StringUtils.isEmpty(ruleKey)) {\n-            return;\n-        }\n-        String routerKey = ruleKey + RULE_SUFFIX;\n-        ruleRepository.addListener(routerKey, this);\n-        String rule = ruleRepository.getRule(routerKey, DynamicConfiguration.DEFAULT_GROUP);\n-        if (StringUtils.isNotEmpty(rule)) {\n-            this.process(new ConfigChangedEvent(routerKey, DynamicConfiguration.DEFAULT_GROUP, rule));\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.ConditionRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRouterRule;\r\n+import org.apache.dubbo.rpc.cluster.router.condition.config.model.ConditionRuleParser;\r\n+\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * Abstract router which listens to dynamic configuration\r\n+ */\r\n+public abstract class ListenableRouter extends AbstractRouter implements ConfigurationListener {\r\n+    public static final String NAME = \"LISTENABLE_ROUTER\";\r\n+    private static final String RULE_SUFFIX = \".condition-router\";\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ListenableRouter.class);\r\n+    private ConditionRouterRule routerRule;\r\n+    private List<ConditionRouter> conditionRouters = Collections.emptyList();\r\n+\r\n+    public ListenableRouter(URL url, String ruleKey) {\r\n+        super(url);\r\n+        this.force = false;\r\n+        this.init(ruleKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void process(ConfigChangedEvent event) {\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Notification of condition rule, change type is: \" + event.getChangeType() +\r\n+                    \", raw rule is:\\n \" + event.getContent());\r\n+        }\r\n+\r\n+        if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\r\n+            routerRule = null;\r\n+            conditionRouters = Collections.emptyList();\r\n+        } else {\r\n+            try {\r\n+                routerRule = ConditionRuleParser.parse(event.getContent());\r\n+                generateConditions(routerRule);\r\n+            } catch (Exception e) {\r\n+                logger.error(\"Failed to parse the raw condition rule and it will not take effect, please check \" +\r\n+                        \"if the condition rule matches with the template, the raw rule is:\\n \" + event.getContent(), e);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers) || conditionRouters.size() == 0) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        // We will check enabled status inside each router.\r\n+        for (Router router : conditionRouters) {\r\n+            invokers = router.route(invokers, url, invocation);\r\n+        }\r\n+\r\n+        return invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getPriority() {\r\n+        return priority;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        return (routerRule != null && routerRule.isForce());\r\n+    }\r\n+\r\n+    private boolean isRuleRuntime() {\r\n+        return routerRule != null && routerRule.isValid() && routerRule.isRuntime();\r\n+    }\r\n+\r\n+    private void generateConditions(ConditionRouterRule rule) {\r\n+        if (rule != null && rule.isValid()) {\r\n+            this.conditionRouters = rule.getConditions()\r\n+                    .stream()\r\n+                    .map(condition -> new ConditionRouter(condition, rule.isForce(), rule.isEnabled()))\r\n+                    .collect(Collectors.toList());\r\n+        }\r\n+    }\r\n+\r\n+    private synchronized void init(String ruleKey) {\r\n+        if (StringUtils.isEmpty(ruleKey)) {\r\n+            return;\r\n+        }\r\n+        String routerKey = ruleKey + RULE_SUFFIX;\r\n+        ruleRepository.addListener(routerKey, this);\r\n+        String rule = ruleRepository.getRule(routerKey, DynamicConfiguration.DEFAULT_GROUP);\r\n+        if (StringUtils.isNotEmpty(rule)) {\r\n+            this.process(new ConfigChangedEvent(routerKey, DynamicConfiguration.DEFAULT_GROUP, rule));\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-\n-/**\n- * Service level router, \"server-unique-name.condition-router\"\n- */\n-public class ServiceRouter extends ListenableRouter {\n-    public static final String NAME = \"SERVICE_ROUTER\";\n-    /**\n-     * ServiceRouter should before AppRouter\n-     */\n-    private static final int SERVICE_ROUTER_DEFAULT_PRIORITY = 140;\n-\n-    public ServiceRouter(URL url) {\n-        super(url, DynamicConfiguration.getRuleKey(url));\n-        this.priority = SERVICE_ROUTER_DEFAULT_PRIORITY;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+\r\n+/**\r\n+ * Service level router, \"server-unique-name.condition-router\"\r\n+ */\r\n+public class ServiceRouter extends ListenableRouter {\r\n+    public static final String NAME = \"SERVICE_ROUTER\";\r\n+    /**\r\n+     * ServiceRouter should before AppRouter\r\n+     */\r\n+    private static final int SERVICE_ROUTER_DEFAULT_PRIORITY = 140;\r\n+\r\n+    public ServiceRouter(URL url) {\r\n+        super(url, DynamicConfiguration.getRuleKey(url));\r\n+        this.priority = SERVICE_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/ServiceRouterFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,37 +1,37 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-\n-/**\n- * Service level router factory\n- */\n-@Activate(order = 300)\n-public class ServiceRouterFactory extends CacheableRouterFactory {\n-\n-    public static final String NAME = \"service\";\n-\n-    @Override\n-    protected Router createRouter(URL url) {\n-        return new ServiceRouter(url);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+\r\n+/**\r\n+ * Service level router factory\r\n+ */\r\n+@Activate(order = 300)\r\n+public class ServiceRouterFactory extends CacheableRouterFactory {\r\n+\r\n+    public static final String NAME = \"service\";\r\n+\r\n+    @Override\r\n+    protected Router createRouter(URL url) {\r\n+        return new ServiceRouter(url);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java", "source2": "org/apache/dubbo/rpc/cluster/router/condition/config/model/ConditionRuleParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.condition.config.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.Map;\n-\n-/**\n- * %YAML1.2\n- *\n- * scope: application\n- * runtime: true\n- * force: false\n- * conditions:\n- *   - >\n- *     method!=sayHello =>\n- *   - >\n- *     ip=127.0.0.1\n- *     =>\n- *     1.1.1.1\n- */\n-public class ConditionRuleParser {\n-\n-    public static ConditionRouterRule parse(String rawRule) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawRule);\n-        ConditionRouterRule rule = PojoUtils.mapToPojo(map, ConditionRouterRule.class);\n-        rule.setRawRule(rawRule);\n-        if (CollectionUtils.isEmpty(rule.getConditions())) {\n-            rule.setValid(false);\n-        }\n-\n-        return rule;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.condition.config.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * %YAML1.2\r\n+ *\r\n+ * scope: application\r\n+ * runtime: true\r\n+ * force: false\r\n+ * conditions:\r\n+ *   - >\r\n+ *     method!=sayHello =>\r\n+ *   - >\r\n+ *     ip=127.0.0.1\r\n+ *     =>\r\n+ *     1.1.1.1\r\n+ */\r\n+public class ConditionRuleParser {\r\n+\r\n+    public static ConditionRouterRule parse(String rawRule) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawRule);\r\n+        ConditionRouterRule rule = PojoUtils.mapToPojo(map, ConditionRouterRule.class);\r\n+        rule.setRawRule(rawRule);\r\n+        if (CollectionUtils.isEmpty(rule.getConditions())) {\r\n+            rule.setValid(false);\r\n+        }\r\n+\r\n+        return rule;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/file/FileRouterFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,76 +1,76 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.file;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.utils.IOUtils;\n-import org.apache.dubbo.rpc.cluster.Router;\n-import org.apache.dubbo.rpc.cluster.RouterFactory;\n-import org.apache.dubbo.rpc.cluster.router.script.ScriptRouterFactory;\n-\n-import java.io.File;\n-import java.io.FileReader;\n-import java.io.IOException;\n-\n-import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.RUNTIME_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.TYPE_KEY;\n-\n-public class FileRouterFactory implements RouterFactory {\n-\n-    public static final String NAME = \"file\";\n-\n-    private RouterFactory routerFactory;\n-\n-    public void setRouterFactory(RouterFactory routerFactory) {\n-        this.routerFactory = routerFactory;\n-    }\n-\n-    @Override\n-    public Router getRouter(URL url) {\n-        try {\n-            // Transform File URL into Script Route URL, and Load\n-            // file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content>\n-            String protocol = url.getParameter(ROUTER_KEY, ScriptRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script'\n-            String type = null; // Use file suffix to config script type, e.g., js, groovy ...\n-            String path = url.getPath();\n-            if (path != null) {\n-                int i = path.lastIndexOf('.');\n-                if (i > 0) {\n-                    type = path.substring(i + 1);\n-                }\n-            }\n-            String rule = IOUtils.read(new FileReader(new File(url.getAbsolutePath())));\n-\n-            // FIXME: this code looks useless\n-            boolean runtime = url.getParameter(RUNTIME_KEY, false);\n-            URL script = URLBuilder.from(url)\n-                    .setProtocol(protocol)\n-                    .addParameter(TYPE_KEY, type)\n-                    .addParameter(RUNTIME_KEY, runtime)\n-                    .addParameterAndEncoded(RULE_KEY, rule)\n-                    .build();\n-\n-            return routerFactory.getRouter(script);\n-        } catch (IOException e) {\n-            throw new IllegalStateException(e.getMessage(), e);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.file;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.utils.IOUtils;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+import org.apache.dubbo.rpc.cluster.RouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.router.script.ScriptRouterFactory;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileReader;\r\n+import java.io.IOException;\r\n+\r\n+import static org.apache.dubbo.rpc.cluster.Constants.ROUTER_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.RULE_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.RUNTIME_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.TYPE_KEY;\r\n+\r\n+public class FileRouterFactory implements RouterFactory {\r\n+\r\n+    public static final String NAME = \"file\";\r\n+\r\n+    private RouterFactory routerFactory;\r\n+\r\n+    public void setRouterFactory(RouterFactory routerFactory) {\r\n+        this.routerFactory = routerFactory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Router getRouter(URL url) {\r\n+        try {\r\n+            // Transform File URL into Script Route URL, and Load\r\n+            // file:///d:/path/to/route.js?router=script ==> script:///d:/path/to/route.js?type=js&rule=<file-content>\r\n+            String protocol = url.getParameter(ROUTER_KEY, ScriptRouterFactory.NAME); // Replace original protocol (maybe 'file') with 'script'\r\n+            String type = null; // Use file suffix to config script type, e.g., js, groovy ...\r\n+            String path = url.getPath();\r\n+            if (path != null) {\r\n+                int i = path.lastIndexOf('.');\r\n+                if (i > 0) {\r\n+                    type = path.substring(i + 1);\r\n+                }\r\n+            }\r\n+            String rule = IOUtils.read(new FileReader(new File(url.getAbsolutePath())));\r\n+\r\n+            // FIXME: this code looks useless\r\n+            boolean runtime = url.getParameter(RUNTIME_KEY, false);\r\n+            URL script = URLBuilder.from(url)\r\n+                    .setProtocol(protocol)\r\n+                    .addParameter(TYPE_KEY, type)\r\n+                    .addParameter(RUNTIME_KEY, runtime)\r\n+                    .addParameterAndEncoded(RULE_KEY, rule)\r\n+                    .build();\r\n+\r\n+            return routerFactory.getRouter(script);\r\n+        } catch (IOException e) {\r\n+            throw new IllegalStateException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java", "source2": "org/apache/dubbo/rpc/cluster/router/mock/MockInvokersSelector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,103 +1,103 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.mock;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-\n-import static org.apache.dubbo.rpc.cluster.Constants.INVOCATION_NEED_MOCK;\n-import static org.apache.dubbo.rpc.cluster.Constants.MOCK_PROTOCOL;\n-\n-/**\n- * A specific Router designed to realize mock feature.\n- * If a request is configured to use mock, then this router guarantees that only the invokers with protocol MOCK appear in final the invoker list, all other invokers will be excluded.\n- */\n-public class MockInvokersSelector extends AbstractRouter {\n-\n-    public static final String NAME = \"MOCK_ROUTER\";\n-    private static final int MOCK_INVOKERS_DEFAULT_PRIORITY = -100;\n-\n-    public MockInvokersSelector() {\n-        this.priority = MOCK_INVOKERS_DEFAULT_PRIORITY;\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,\n-                                      URL url, final Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return invokers;\n-        }\n-\n-        if (invocation.getObjectAttachments() == null) {\n-            return getNormalInvokers(invokers);\n-        } else {\n-            String value = (String) invocation.getObjectAttachments().get(INVOCATION_NEED_MOCK);\n-            if (value == null) {\n-                return getNormalInvokers(invokers);\n-            } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\n-                return getMockedInvokers(invokers);\n-            }\n-        }\n-        return invokers;\n-    }\n-\n-    private <T> List<Invoker<T>> getMockedInvokers(final List<Invoker<T>> invokers) {\n-        if (!hasMockProviders(invokers)) {\n-            return null;\n-        }\n-        List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(1);\n-        for (Invoker<T> invoker : invokers) {\n-            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                sInvokers.add(invoker);\n-            }\n-        }\n-        return sInvokers;\n-    }\n-\n-    private <T> List<Invoker<T>> getNormalInvokers(final List<Invoker<T>> invokers) {\n-        if (!hasMockProviders(invokers)) {\n-            return invokers;\n-        } else {\n-            List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(invokers.size());\n-            for (Invoker<T> invoker : invokers) {\n-                if (!invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                    sInvokers.add(invoker);\n-                }\n-            }\n-            return sInvokers;\n-        }\n-    }\n-\n-    private <T> boolean hasMockProviders(final List<Invoker<T>> invokers) {\n-        boolean hasMockProvider = false;\n-        for (Invoker<T> invoker : invokers) {\n-            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\n-                hasMockProvider = true;\n-                break;\n-            }\n-        }\n-        return hasMockProvider;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.mock;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.rpc.cluster.Constants.INVOCATION_NEED_MOCK;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.MOCK_PROTOCOL;\r\n+\r\n+/**\r\n+ * A specific Router designed to realize mock feature.\r\n+ * If a request is configured to use mock, then this router guarantees that only the invokers with protocol MOCK appear in final the invoker list, all other invokers will be excluded.\r\n+ */\r\n+public class MockInvokersSelector extends AbstractRouter {\r\n+\r\n+    public static final String NAME = \"MOCK_ROUTER\";\r\n+    private static final int MOCK_INVOKERS_DEFAULT_PRIORITY = -100;\r\n+\r\n+    public MockInvokersSelector() {\r\n+        this.priority = MOCK_INVOKERS_DEFAULT_PRIORITY;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(final List<Invoker<T>> invokers,\r\n+                                      URL url, final Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        if (invocation.getObjectAttachments() == null) {\r\n+            return getNormalInvokers(invokers);\r\n+        } else {\r\n+            String value = (String) invocation.getObjectAttachments().get(INVOCATION_NEED_MOCK);\r\n+            if (value == null) {\r\n+                return getNormalInvokers(invokers);\r\n+            } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\r\n+                return getMockedInvokers(invokers);\r\n+            }\r\n+        }\r\n+        return invokers;\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> getMockedInvokers(final List<Invoker<T>> invokers) {\r\n+        if (!hasMockProviders(invokers)) {\r\n+            return null;\r\n+        }\r\n+        List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(1);\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                sInvokers.add(invoker);\r\n+            }\r\n+        }\r\n+        return sInvokers;\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> getNormalInvokers(final List<Invoker<T>> invokers) {\r\n+        if (!hasMockProviders(invokers)) {\r\n+            return invokers;\r\n+        } else {\r\n+            List<Invoker<T>> sInvokers = new ArrayList<Invoker<T>>(invokers.size());\r\n+            for (Invoker<T> invoker : invokers) {\r\n+                if (!invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                    sInvokers.add(invoker);\r\n+                }\r\n+            }\r\n+            return sInvokers;\r\n+        }\r\n+    }\r\n+\r\n+    private <T> boolean hasMockProviders(final List<Invoker<T>> invokers) {\r\n+        boolean hasMockProvider = false;\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (invoker.getUrl().getProtocol().equals(MOCK_PROTOCOL)) {\r\n+                hasMockProvider = true;\r\n+                break;\r\n+            }\r\n+        }\r\n+        return hasMockProvider;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/TagRouter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,264 +1,264 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.tag;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\n-import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\n-import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\n-import org.apache.dubbo.rpc.cluster.router.tag.model.TagRouterRule;\n-import org.apache.dubbo.rpc.cluster.router.tag.model.TagRuleParser;\n-\n-import java.util.List;\n-import java.util.function.Predicate;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\n-import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\n-\n-/**\n- * TagRouter, \"application.tag-router\"\n- */\n-public class TagRouter extends AbstractRouter implements ConfigurationListener {\n-    public static final String NAME = \"TAG_ROUTER\";\n-    private static final int TAG_ROUTER_DEFAULT_PRIORITY = 100;\n-    private static final Logger logger = LoggerFactory.getLogger(TagRouter.class);\n-    private static final String RULE_SUFFIX = \".tag-router\";\n-\n-    private TagRouterRule tagRouterRule;\n-    private String application;\n-\n-    public TagRouter(URL url) {\n-        super(url);\n-        this.priority = TAG_ROUTER_DEFAULT_PRIORITY;\n-    }\n-\n-    @Override\n-    public synchronized void process(ConfigChangedEvent event) {\n-        if (logger.isDebugEnabled()) {\n-            logger.debug(\"Notification of tag rule, change type is: \" + event.getChangeType() + \", raw rule is:\\n \" +\n-                    event.getContent());\n-        }\n-\n-        try {\n-            if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\n-                this.tagRouterRule = null;\n-            } else {\n-                this.tagRouterRule = TagRuleParser.parse(event.getContent());\n-            }\n-        } catch (Exception e) {\n-            logger.error(\"Failed to parse the raw tag router rule and it will not take effect, please check if the \" +\n-                    \"rule matches with the template, the raw rule is:\\n \", e);\n-        }\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return invokers;\n-        }\n-\n-        // since the rule can be changed by config center, we should copy one to use.\n-        final TagRouterRule tagRouterRuleCopy = tagRouterRule;\n-        if (tagRouterRuleCopy == null || !tagRouterRuleCopy.isValid() || !tagRouterRuleCopy.isEnabled()) {\n-            return filterUsingStaticTag(invokers, url, invocation);\n-        }\n-\n-        List<Invoker<T>> result = invokers;\n-        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\n-                invocation.getAttachment(TAG_KEY);\n-\n-        // if we are requesting for a Provider with a specific tag\n-        if (StringUtils.isNotEmpty(tag)) {\n-            List<String> addresses = tagRouterRuleCopy.getTagnameToAddresses().get(tag);\n-            // filter by dynamic tag group first\n-            if (CollectionUtils.isNotEmpty(addresses)) {\n-                result = filterInvoker(invokers, invoker -> addressMatches(invoker.getUrl(), addresses));\n-                // if result is not null OR it's null but force=true, return result directly\n-                if (CollectionUtils.isNotEmpty(result) || tagRouterRuleCopy.isForce()) {\n-                    return result;\n-                }\n-            } else {\n-                // dynamic tag group doesn't have any item about the requested app OR it's null after filtered by\n-                // dynamic tag group but force=false. check static tag\n-                result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-            // If there's no tagged providers that can match the current tagged request. force.tag is set by default\n-            // to false, which means it will invoke any providers without a tag unless it's explicitly disallowed.\n-            if (CollectionUtils.isNotEmpty(result) || isForceUseTag(invocation)) {\n-                return result;\n-            }\n-            // FAILOVER: return all Providers without any tags.\n-            else {\n-                List<Invoker<T>> tmp = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(),\n-                        tagRouterRuleCopy.getAddresses()));\n-                return filterInvoker(tmp, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-        } else {\n-            // List<String> addresses = tagRouterRule.filter(providerApp);\n-            // return all addresses in dynamic tag group.\n-            List<String> addresses = tagRouterRuleCopy.getAddresses();\n-            if (CollectionUtils.isNotEmpty(addresses)) {\n-                result = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(), addresses));\n-                // 1. all addresses are in dynamic tag group, return empty list.\n-                if (CollectionUtils.isEmpty(result)) {\n-                    return result;\n-                }\n-                // 2. if there are some addresses that are not in any dynamic tag group, continue to filter using the\n-                // static tag group.\n-            }\n-            return filterInvoker(result, invoker -> {\n-                String localTag = invoker.getUrl().getParameter(TAG_KEY);\n-                return StringUtils.isEmpty(localTag) || !tagRouterRuleCopy.getTagNames().contains(localTag);\n-            });\n-        }\n-    }\n-\n-    /**\n-     * If there's no dynamic tag rule being set, use static tag in URL.\n-     * <p>\n-     * A typical scenario is a Consumer using version 2.7.x calls Providers using version 2.6.x or lower,\n-     * the Consumer should always respect the tag in provider URL regardless of whether a dynamic tag rule has been set to it or not.\n-     * <p>\n-     * TODO, to guarantee consistent behavior of interoperability between 2.6- and 2.7+, this method should has the same logic with the TagRouter in 2.6.x.\n-     *\n-     * @param invokers\n-     * @param url\n-     * @param invocation\n-     * @param <T>\n-     * @return\n-     */\n-    private <T> List<Invoker<T>> filterUsingStaticTag(List<Invoker<T>> invokers, URL url, Invocation invocation) {\n-        List<Invoker<T>> result;\n-        // Dynamic param\n-        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\n-                invocation.getAttachment(TAG_KEY);\n-        // Tag request\n-        if (!StringUtils.isEmpty(tag)) {\n-            result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\n-            if (CollectionUtils.isEmpty(result) && !isForceUseTag(invocation)) {\n-                result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-            }\n-        } else {\n-            result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\n-        }\n-        return result;\n-    }\n-\n-    @Override\n-    public boolean isRuntime() {\n-        return tagRouterRule != null && tagRouterRule.isRuntime();\n-    }\n-\n-    @Override\n-    public boolean isForce() {\n-        // FIXME\n-        return tagRouterRule != null && tagRouterRule.isForce();\n-    }\n-\n-    private boolean isForceUseTag(Invocation invocation) {\n-        return Boolean.parseBoolean(invocation.getAttachment(FORCE_USE_TAG, url.getParameter(FORCE_USE_TAG, \"false\")));\n-    }\n-\n-    private <T> List<Invoker<T>> filterInvoker(List<Invoker<T>> invokers, Predicate<Invoker<T>> predicate) {\n-        if (invokers.stream().allMatch(predicate)) {\n-            return invokers;\n-        }\n-\n-        return invokers.stream()\n-                .filter(predicate)\n-                .collect(Collectors.toList());\n-    }\n-\n-    private boolean addressMatches(URL url, List<String> addresses) {\n-        return addresses != null && checkAddressMatch(addresses, url.getHost(), url.getPort());\n-    }\n-\n-    private boolean addressNotMatches(URL url, List<String> addresses) {\n-        return addresses == null || !checkAddressMatch(addresses, url.getHost(), url.getPort());\n-    }\n-\n-    private boolean checkAddressMatch(List<String> addresses, String host, int port) {\n-        for (String address : addresses) {\n-            try {\n-                if (NetUtils.matchIpExpression(address, host, port)) {\n-                    return true;\n-                }\n-                if ((ANYHOST_VALUE + \":\" + port).equals(address)) {\n-                    return true;\n-                }\n-            } catch (Exception e) {\n-                logger.error(\"The format of ip address is invalid in tag route. Address :\" + address, e);\n-            }\n-        }\n-        return false;\n-    }\n-\n-    public void setApplication(String app) {\n-        this.application = app;\n-    }\n-\n-    @Override\n-    public <T> void notify(List<Invoker<T>> invokers) {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return;\n-        }\n-\n-        Invoker<T> invoker = invokers.get(0);\n-        URL url = invoker.getUrl();\n-        String providerApplication = url.getParameter(CommonConstants.REMOTE_APPLICATION_KEY);\n-\n-        if (StringUtils.isEmpty(providerApplication)) {\n-            logger.error(\"TagRouter must getConfig from or subscribe to a specific application, but the application \" +\n-                    \"in this TagRouter is not specified.\");\n-            return;\n-        }\n-\n-        synchronized (this) {\n-            if (!providerApplication.equals(application)) {\n-                if (!StringUtils.isEmpty(application)) {\n-                    ruleRepository.removeListener(application + RULE_SUFFIX, this);\n-                }\n-                String key = providerApplication + RULE_SUFFIX;\n-                ruleRepository.addListener(key, this);\n-                application = providerApplication;\n-                String rawRule = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\n-                if (StringUtils.isNotEmpty(rawRule)) {\n-                    this.process(new ConfigChangedEvent(key, DynamicConfiguration.DEFAULT_GROUP, rawRule));\n-                }\n-            }\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.tag;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangeType;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigChangedEvent;\r\n+import org.apache.dubbo.common.config.configcenter.ConfigurationListener;\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouter;\r\n+import org.apache.dubbo.rpc.cluster.router.tag.model.TagRouterRule;\r\n+import org.apache.dubbo.rpc.cluster.router.tag.model.TagRuleParser;\r\n+\r\n+import java.util.List;\r\n+import java.util.function.Predicate;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TAG_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\r\n+\r\n+/**\r\n+ * TagRouter, \"application.tag-router\"\r\n+ */\r\n+public class TagRouter extends AbstractRouter implements ConfigurationListener {\r\n+    public static final String NAME = \"TAG_ROUTER\";\r\n+    private static final int TAG_ROUTER_DEFAULT_PRIORITY = 100;\r\n+    private static final Logger logger = LoggerFactory.getLogger(TagRouter.class);\r\n+    private static final String RULE_SUFFIX = \".tag-router\";\r\n+\r\n+    private TagRouterRule tagRouterRule;\r\n+    private String application;\r\n+\r\n+    public TagRouter(URL url) {\r\n+        super(url);\r\n+        this.priority = TAG_ROUTER_DEFAULT_PRIORITY;\r\n+    }\r\n+\r\n+    @Override\r\n+    public synchronized void process(ConfigChangedEvent event) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            logger.debug(\"Notification of tag rule, change type is: \" + event.getChangeType() + \", raw rule is:\\n \" +\r\n+                    event.getContent());\r\n+        }\r\n+\r\n+        try {\r\n+            if (event.getChangeType().equals(ConfigChangeType.DELETED)) {\r\n+                this.tagRouterRule = null;\r\n+            } else {\r\n+                this.tagRouterRule = TagRuleParser.parse(event.getContent());\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(\"Failed to parse the raw tag router rule and it will not take effect, please check if the \" +\r\n+                    \"rule matches with the template, the raw rule is:\\n \", e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> List<Invoker<T>> route(List<Invoker<T>> invokers, URL url, Invocation invocation) throws RpcException {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        // since the rule can be changed by config center, we should copy one to use.\r\n+        final TagRouterRule tagRouterRuleCopy = tagRouterRule;\r\n+        if (tagRouterRuleCopy == null || !tagRouterRuleCopy.isValid() || !tagRouterRuleCopy.isEnabled()) {\r\n+            return filterUsingStaticTag(invokers, url, invocation);\r\n+        }\r\n+\r\n+        List<Invoker<T>> result = invokers;\r\n+        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\r\n+                invocation.getAttachment(TAG_KEY);\r\n+\r\n+        // if we are requesting for a Provider with a specific tag\r\n+        if (StringUtils.isNotEmpty(tag)) {\r\n+            List<String> addresses = tagRouterRuleCopy.getTagnameToAddresses().get(tag);\r\n+            // filter by dynamic tag group first\r\n+            if (CollectionUtils.isNotEmpty(addresses)) {\r\n+                result = filterInvoker(invokers, invoker -> addressMatches(invoker.getUrl(), addresses));\r\n+                // if result is not null OR it's null but force=true, return result directly\r\n+                if (CollectionUtils.isNotEmpty(result) || tagRouterRuleCopy.isForce()) {\r\n+                    return result;\r\n+                }\r\n+            } else {\r\n+                // dynamic tag group doesn't have any item about the requested app OR it's null after filtered by\r\n+                // dynamic tag group but force=false. check static tag\r\n+                result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+            // If there's no tagged providers that can match the current tagged request. force.tag is set by default\r\n+            // to false, which means it will invoke any providers without a tag unless it's explicitly disallowed.\r\n+            if (CollectionUtils.isNotEmpty(result) || isForceUseTag(invocation)) {\r\n+                return result;\r\n+            }\r\n+            // FAILOVER: return all Providers without any tags.\r\n+            else {\r\n+                List<Invoker<T>> tmp = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(),\r\n+                        tagRouterRuleCopy.getAddresses()));\r\n+                return filterInvoker(tmp, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+        } else {\r\n+            // List<String> addresses = tagRouterRule.filter(providerApp);\r\n+            // return all addresses in dynamic tag group.\r\n+            List<String> addresses = tagRouterRuleCopy.getAddresses();\r\n+            if (CollectionUtils.isNotEmpty(addresses)) {\r\n+                result = filterInvoker(invokers, invoker -> addressNotMatches(invoker.getUrl(), addresses));\r\n+                // 1. all addresses are in dynamic tag group, return empty list.\r\n+                if (CollectionUtils.isEmpty(result)) {\r\n+                    return result;\r\n+                }\r\n+                // 2. if there are some addresses that are not in any dynamic tag group, continue to filter using the\r\n+                // static tag group.\r\n+            }\r\n+            return filterInvoker(result, invoker -> {\r\n+                String localTag = invoker.getUrl().getParameter(TAG_KEY);\r\n+                return StringUtils.isEmpty(localTag) || !tagRouterRuleCopy.getTagNames().contains(localTag);\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * If there's no dynamic tag rule being set, use static tag in URL.\r\n+     * <p>\r\n+     * A typical scenario is a Consumer using version 2.7.x calls Providers using version 2.6.x or lower,\r\n+     * the Consumer should always respect the tag in provider URL regardless of whether a dynamic tag rule has been set to it or not.\r\n+     * <p>\r\n+     * TODO, to guarantee consistent behavior of interoperability between 2.6- and 2.7+, this method should has the same logic with the TagRouter in 2.6.x.\r\n+     *\r\n+     * @param invokers\r\n+     * @param url\r\n+     * @param invocation\r\n+     * @param <T>\r\n+     * @return\r\n+     */\r\n+    private <T> List<Invoker<T>> filterUsingStaticTag(List<Invoker<T>> invokers, URL url, Invocation invocation) {\r\n+        List<Invoker<T>> result;\r\n+        // Dynamic param\r\n+        String tag = StringUtils.isEmpty(invocation.getAttachment(TAG_KEY)) ? url.getParameter(TAG_KEY) :\r\n+                invocation.getAttachment(TAG_KEY);\r\n+        // Tag request\r\n+        if (!StringUtils.isEmpty(tag)) {\r\n+            result = filterInvoker(invokers, invoker -> tag.equals(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            if (CollectionUtils.isEmpty(result) && !isForceUseTag(invocation)) {\r\n+                result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+            }\r\n+        } else {\r\n+            result = filterInvoker(invokers, invoker -> StringUtils.isEmpty(invoker.getUrl().getParameter(TAG_KEY)));\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isRuntime() {\r\n+        return tagRouterRule != null && tagRouterRule.isRuntime();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isForce() {\r\n+        // FIXME\r\n+        return tagRouterRule != null && tagRouterRule.isForce();\r\n+    }\r\n+\r\n+    private boolean isForceUseTag(Invocation invocation) {\r\n+        return Boolean.parseBoolean(invocation.getAttachment(FORCE_USE_TAG, url.getParameter(FORCE_USE_TAG, \"false\")));\r\n+    }\r\n+\r\n+    private <T> List<Invoker<T>> filterInvoker(List<Invoker<T>> invokers, Predicate<Invoker<T>> predicate) {\r\n+        if (invokers.stream().allMatch(predicate)) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        return invokers.stream()\r\n+                .filter(predicate)\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    private boolean addressMatches(URL url, List<String> addresses) {\r\n+        return addresses != null && checkAddressMatch(addresses, url.getHost(), url.getPort());\r\n+    }\r\n+\r\n+    private boolean addressNotMatches(URL url, List<String> addresses) {\r\n+        return addresses == null || !checkAddressMatch(addresses, url.getHost(), url.getPort());\r\n+    }\r\n+\r\n+    private boolean checkAddressMatch(List<String> addresses, String host, int port) {\r\n+        for (String address : addresses) {\r\n+            try {\r\n+                if (NetUtils.matchIpExpression(address, host, port)) {\r\n+                    return true;\r\n+                }\r\n+                if ((ANYHOST_VALUE + \":\" + port).equals(address)) {\r\n+                    return true;\r\n+                }\r\n+            } catch (Exception e) {\r\n+                logger.error(\"The format of ip address is invalid in tag route. Address :\" + address, e);\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    public void setApplication(String app) {\r\n+        this.application = app;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> void notify(List<Invoker<T>> invokers) {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return;\r\n+        }\r\n+\r\n+        Invoker<T> invoker = invokers.get(0);\r\n+        URL url = invoker.getUrl();\r\n+        String providerApplication = url.getParameter(CommonConstants.REMOTE_APPLICATION_KEY);\r\n+\r\n+        if (StringUtils.isEmpty(providerApplication)) {\r\n+            logger.error(\"TagRouter must getConfig from or subscribe to a specific application, but the application \" +\r\n+                    \"in this TagRouter is not specified.\");\r\n+            return;\r\n+        }\r\n+\r\n+        synchronized (this) {\r\n+            if (!providerApplication.equals(application)) {\r\n+                if (!StringUtils.isEmpty(application)) {\r\n+                    ruleRepository.removeListener(application + RULE_SUFFIX, this);\r\n+                }\r\n+                String key = providerApplication + RULE_SUFFIX;\r\n+                ruleRepository.addListener(key, this);\r\n+                application = providerApplication;\r\n+                String rawRule = ruleRepository.getRule(key, DynamicConfiguration.DEFAULT_GROUP);\r\n+                if (StringUtils.isNotEmpty(rawRule)) {\r\n+                    this.process(new ConfigChangedEvent(key, DynamicConfiguration.DEFAULT_GROUP, rawRule));\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/TagRouterFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.tag;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\n-import org.apache.dubbo.rpc.cluster.Router;\n-\n-/**\n- * Tag router factory\n- */\n-@Activate(order = 100)\n-public class TagRouterFactory extends CacheableRouterFactory {\n-\n-    public static final String NAME = \"tag\";\n-\n-    @Override\n-    protected Router createRouter(URL url) {\n-        return new TagRouter(url);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.tag;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.cluster.CacheableRouterFactory;\r\n+import org.apache.dubbo.rpc.cluster.Router;\r\n+\r\n+/**\r\n+ * Tag router factory\r\n+ */\r\n+@Activate(order = 100)\r\n+public class TagRouterFactory extends CacheableRouterFactory {\r\n+\r\n+    public static final String NAME = \"tag\";\r\n+\r\n+    @Override\r\n+    protected Router createRouter(URL url) {\r\n+        return new TagRouter(url);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRouterRule.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,90 +1,90 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.tag.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.rpc.cluster.router.AbstractRouterRule;\n-\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.stream.Collectors;\n-\n-/**\n- * %YAML1.2\n- * ---\n- * force: true\n- * runtime: false\n- * enabled: true\n- * priority: 1\n- * key: demo-provider\n- * tags:\n- * - name: tag1\n- * addresses: [ip1, ip2]\n- * - name: tag2\n- * addresses: [ip3, ip4]\n- * ...\n- */\n-public class TagRouterRule extends AbstractRouterRule {\n-    private List<Tag> tags;\n-\n-    private Map<String, List<String>> addressToTagnames = new HashMap<>();\n-    private Map<String, List<String>> tagnameToAddresses = new HashMap<>();\n-\n-    public void init() {\n-        if (!isValid()) {\n-            return;\n-        }\n-\n-        tags.stream().filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses())).forEach(tag -> {\n-            tagnameToAddresses.put(tag.getName(), tag.getAddresses());\n-            tag.getAddresses().forEach(addr -> {\n-                List<String> tagNames = addressToTagnames.computeIfAbsent(addr, k -> new ArrayList<>());\n-                tagNames.add(tag.getName());\n-            });\n-        });\n-    }\n-\n-    public List<String> getAddresses() {\n-        return tags.stream()\n-                .filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses()))\n-                .flatMap(tag -> tag.getAddresses().stream())\n-                .collect(Collectors.toList());\n-    }\n-\n-    public List<String> getTagNames() {\n-        return tags.stream().map(Tag::getName).collect(Collectors.toList());\n-    }\n-\n-    public Map<String, List<String>> getAddressToTagnames() {\n-        return addressToTagnames;\n-    }\n-\n-\n-    public Map<String, List<String>> getTagnameToAddresses() {\n-        return tagnameToAddresses;\n-    }\n-\n-    public List<Tag> getTags() {\n-        return tags;\n-    }\n-\n-    public void setTags(List<Tag> tags) {\n-        this.tags = tags;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.tag.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.rpc.cluster.router.AbstractRouterRule;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.stream.Collectors;\r\n+\r\n+/**\r\n+ * %YAML1.2\r\n+ * ---\r\n+ * force: true\r\n+ * runtime: false\r\n+ * enabled: true\r\n+ * priority: 1\r\n+ * key: demo-provider\r\n+ * tags:\r\n+ * - name: tag1\r\n+ * addresses: [ip1, ip2]\r\n+ * - name: tag2\r\n+ * addresses: [ip3, ip4]\r\n+ * ...\r\n+ */\r\n+public class TagRouterRule extends AbstractRouterRule {\r\n+    private List<Tag> tags;\r\n+\r\n+    private Map<String, List<String>> addressToTagnames = new HashMap<>();\r\n+    private Map<String, List<String>> tagnameToAddresses = new HashMap<>();\r\n+\r\n+    public void init() {\r\n+        if (!isValid()) {\r\n+            return;\r\n+        }\r\n+\r\n+        tags.stream().filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses())).forEach(tag -> {\r\n+            tagnameToAddresses.put(tag.getName(), tag.getAddresses());\r\n+            tag.getAddresses().forEach(addr -> {\r\n+                List<String> tagNames = addressToTagnames.computeIfAbsent(addr, k -> new ArrayList<>());\r\n+                tagNames.add(tag.getName());\r\n+            });\r\n+        });\r\n+    }\r\n+\r\n+    public List<String> getAddresses() {\r\n+        return tags.stream()\r\n+                .filter(tag -> CollectionUtils.isNotEmpty(tag.getAddresses()))\r\n+                .flatMap(tag -> tag.getAddresses().stream())\r\n+                .collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public List<String> getTagNames() {\r\n+        return tags.stream().map(Tag::getName).collect(Collectors.toList());\r\n+    }\r\n+\r\n+    public Map<String, List<String>> getAddressToTagnames() {\r\n+        return addressToTagnames;\r\n+    }\r\n+\r\n+\r\n+    public Map<String, List<String>> getTagnameToAddresses() {\r\n+        return tagnameToAddresses;\r\n+    }\r\n+\r\n+    public List<Tag> getTags() {\r\n+        return tags;\r\n+    }\r\n+\r\n+    public void setTags(List<Tag> tags) {\r\n+        this.tags = tags;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java", "source2": "org/apache/dubbo/rpc/cluster/router/tag/model/TagRuleParser.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.router.tag.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.SafeConstructor;\n-\n-import java.util.Map;\n-\n-/**\n- *\n- */\n-public class TagRuleParser {\n-\n-    public static TagRouterRule parse(String rawRule) throws Exception {\n-        Yaml yaml = new Yaml(new SafeConstructor());\n-        Map<String, Object> map = yaml.load(rawRule);\n-        TagRouterRule rule = PojoUtils.mapToPojo(map, TagRouterRule.class);\n-        rule.setRawRule(rawRule);\n-        if (CollectionUtils.isEmpty(rule.getTags())) {\n-            rule.setValid(false);\n-        }\n-\n-        rule.init();\n-        return rule;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.router.tag.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.SafeConstructor;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class TagRuleParser {\r\n+\r\n+    public static TagRouterRule parse(String rawRule) throws Exception {\r\n+        Yaml yaml = new Yaml(new SafeConstructor());\r\n+        Map<String, Object> map = yaml.load(rawRule);\r\n+        TagRouterRule rule = PojoUtils.mapToPojo(map, TagRouterRule.class);\r\n+        rule.setRawRule(rawRule);\r\n+        if (CollectionUtils.isEmpty(rule.getTags())) {\r\n+            rule.setValid(false);\r\n+        }\r\n+\r\n+        rule.init();\r\n+        return rule;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/AbstractClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,319 +1,319 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\n-import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_AVAILABLE_CHECK_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_STICKY;\n-\n-/**\n- * AbstractClusterInvoker\n- */\n-public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AbstractClusterInvoker.class);\n-\n-    protected Directory<T> directory;\n-\n-    protected boolean availablecheck;\n-\n-    private AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    private volatile Invoker<T> stickyInvoker = null;\n-\n-    public AbstractClusterInvoker() {\n-    }\n-\n-    public AbstractClusterInvoker(Directory<T> directory) {\n-        this(directory, directory.getUrl());\n-    }\n-\n-    public AbstractClusterInvoker(Directory<T> directory, URL url) {\n-        if (directory == null) {\n-            throw new IllegalArgumentException(\"service directory == null\");\n-        }\n-\n-        this.directory = directory;\n-        //sticky: invoker.isAvailable() should always be checked before using when availablecheck is true.\n-        this.availablecheck = url.getParameter(CLUSTER_AVAILABLE_CHECK_KEY, DEFAULT_CLUSTER_AVAILABLE_CHECK);\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return directory.getInterface();\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return directory.getConsumerUrl();\n-    }\n-\n-    public URL getRegistryUrl() {\n-        return directory.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        Invoker<T> invoker = stickyInvoker;\n-        if (invoker != null) {\n-            return invoker.isAvailable();\n-        }\n-        return directory.isAvailable();\n-    }\n-\n-    public Directory<T> getDirectory() {\n-        return directory;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (destroyed.compareAndSet(false, true)) {\n-            directory.destroy();\n-        }\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return destroyed.get();\n-    }\n-\n-    /**\n-     * Select a invoker using loadbalance policy.</br>\n-     * a) Firstly, select an invoker using loadbalance. If this invoker is in previously selected list, or,\n-     * if this invoker is unavailable, then continue step b (reselect), otherwise return the first selected invoker</br>\n-     * <p>\n-     * b) Reselection, the validation rule for reselection: selected > available. This rule guarantees that\n-     * the selected invoker has the minimum chance to be one in the previously selected list, and also\n-     * guarantees this invoker is available.\n-     *\n-     * @param loadbalance load balance policy\n-     * @param invocation  invocation\n-     * @param invokers    invoker candidates\n-     * @param selected    exclude selected invokers or not\n-     * @return the invoker which will final to do invoke.\n-     * @throws RpcException exception\n-     */\n-    protected Invoker<T> select(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\n-\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return null;\n-        }\n-        String methodName = invocation == null ? StringUtils.EMPTY_STRING : invocation.getMethodName();\n-\n-        boolean sticky = invokers.get(0).getUrl()\n-                .getMethodParameter(methodName, CLUSTER_STICKY_KEY, DEFAULT_CLUSTER_STICKY);\n-\n-        //ignore overloaded method\n-        if (stickyInvoker != null && !invokers.contains(stickyInvoker)) {\n-            stickyInvoker = null;\n-        }\n-        //ignore concurrency problem\n-        if (sticky && stickyInvoker != null && (selected == null || !selected.contains(stickyInvoker))) {\n-            if (availablecheck && stickyInvoker.isAvailable()) {\n-                return stickyInvoker;\n-            }\n-        }\n-\n-        Invoker<T> invoker = doSelect(loadbalance, invocation, invokers, selected);\n-\n-        if (sticky) {\n-            stickyInvoker = invoker;\n-        }\n-        return invoker;\n-    }\n-\n-    private Invoker<T> doSelect(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\n-\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            return null;\n-        }\n-        if (invokers.size() == 1) {\n-            return invokers.get(0);\n-        }\n-        Invoker<T> invoker = loadbalance.select(invokers, getUrl(), invocation);\n-\n-        //If the `invoker` is in the  `selected` or invoker is unavailable && availablecheck is true, reselect.\n-        if ((selected != null && selected.contains(invoker))\n-                || (!invoker.isAvailable() && getUrl() != null && availablecheck)) {\n-            try {\n-                Invoker<T> rInvoker = reselect(loadbalance, invocation, invokers, selected, availablecheck);\n-                if (rInvoker != null) {\n-                    invoker = rInvoker;\n-                } else {\n-                    //Check the index of current selected invoker, if it's not the last one, choose the one at index+1.\n-                    int index = invokers.indexOf(invoker);\n-                    try {\n-                        //Avoid collision\n-                        invoker = invokers.get((index + 1) % invokers.size());\n-                    } catch (Exception e) {\n-                        logger.warn(e.getMessage() + \" may because invokers list dynamic change, ignore.\", e);\n-                    }\n-                }\n-            } catch (Throwable t) {\n-                logger.error(\"cluster reselect fail reason is :\" + t.getMessage() + \" if can not solve, you can set cluster.availablecheck=false in url\", t);\n-            }\n-        }\n-        return invoker;\n-    }\n-\n-    /**\n-     * Reselect, use invokers not in `selected` first, if all invokers are in `selected`,\n-     * just pick an available one using loadbalance policy.\n-     *\n-     * @param loadbalance    load balance policy\n-     * @param invocation     invocation\n-     * @param invokers       invoker candidates\n-     * @param selected       exclude selected invokers or not\n-     * @param availablecheck check invoker available if true\n-     * @return the reselect result to do invoke\n-     * @throws RpcException exception\n-     */\n-    private Invoker<T> reselect(LoadBalance loadbalance, Invocation invocation,\n-                                List<Invoker<T>> invokers, List<Invoker<T>> selected, boolean availablecheck) throws RpcException {\n-\n-        //Allocating one in advance, this list is certain to be used.\n-        List<Invoker<T>> reselectInvokers = new ArrayList<>(\n-                invokers.size() > 1 ? (invokers.size() - 1) : invokers.size());\n-\n-        // First, try picking a invoker not in `selected`.\n-        for (Invoker<T> invoker : invokers) {\n-            if (availablecheck && !invoker.isAvailable()) {\n-                continue;\n-            }\n-\n-            if (selected == null || !selected.contains(invoker)) {\n-                reselectInvokers.add(invoker);\n-            }\n-        }\n-\n-        if (!reselectInvokers.isEmpty()) {\n-            return loadbalance.select(reselectInvokers, getUrl(), invocation);\n-        }\n-\n-        // Just pick an available invoker using loadbalance policy\n-        if (selected != null) {\n-            for (Invoker<T> invoker : selected) {\n-                if ((invoker.isAvailable()) // available first\n-                        && !reselectInvokers.contains(invoker)) {\n-                    reselectInvokers.add(invoker);\n-                }\n-            }\n-        }\n-        if (!reselectInvokers.isEmpty()) {\n-            return loadbalance.select(reselectInvokers, getUrl(), invocation);\n-        }\n-\n-        return null;\n-    }\n-\n-    @Override\n-    public Result invoke(final Invocation invocation) throws RpcException {\n-        checkWhetherDestroyed();\n-\n-        // binding attachments into invocation.\n-        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\n-        if (contextAttachments != null && contextAttachments.size() != 0) {\n-            ((RpcInvocation) invocation).addObjectAttachments(contextAttachments);\n-        }\n-\n-        List<Invoker<T>> invokers = list(invocation);\n-        LoadBalance loadbalance = initLoadBalance(invokers, invocation);\n-        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\n-        return doInvoke(invocation, invokers, loadbalance);\n-    }\n-\n-    protected void checkWhetherDestroyed() {\n-        if (destroyed.get()) {\n-            throw new RpcException(\"Rpc cluster invoker for \" + getInterface() + \" on consumer \" + NetUtils.getLocalHost()\n-                    + \" use dubbo version \" + Version.getVersion()\n-                    + \" is now destroyed! Can not invoke any more.\");\n-        }\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getInterface() + \" -> \" + getUrl().toString();\n-    }\n-\n-    protected void checkInvokers(List<Invoker<T>> invokers, Invocation invocation) {\n-        if (CollectionUtils.isEmpty(invokers)) {\n-            throw new RpcException(RpcException.NO_INVOKER_AVAILABLE_AFTER_FILTER, \"Failed to invoke the method \"\n-                    + invocation.getMethodName() + \" in the service \" + getInterface().getName()\n-                    + \". No provider available for the service \" + directory.getConsumerUrl().getServiceKey()\n-                    + \" from registry \" + directory.getUrl().getAddress()\n-                    + \" on the consumer \" + NetUtils.getLocalHost()\n-                    + \" using the dubbo version \" + Version.getVersion()\n-                    + \". Please check if the providers have been started and registered.\");\n-        }\n-    }\n-\n-    protected abstract Result doInvoke(Invocation invocation, List<Invoker<T>> invokers,\n-                                       LoadBalance loadbalance) throws RpcException;\n-\n-    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        return directory.list(invocation);\n-    }\n-\n-    /**\n-     * Init LoadBalance.\n-     * <p>\n-     * if invokers is not empty, init from the first invoke's url and invocation\n-     * if invokes is empty, init a default LoadBalance(RandomLoadBalance)\n-     * </p>\n-     *\n-     * @param invokers   invokers\n-     * @param invocation invocation\n-     * @return LoadBalance instance. if not need init, return null.\n-     */\n-    protected LoadBalance initLoadBalance(List<Invoker<T>> invokers, Invocation invocation) {\n-        if (CollectionUtils.isNotEmpty(invokers)) {\n-            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()\n-                    .getMethodParameter(RpcUtils.getMethodName(invocation), LOADBALANCE_KEY, DEFAULT_LOADBALANCE));\n-        } else {\n-            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(DEFAULT_LOADBALANCE);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_LOADBALANCE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LOADBALANCE_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_AVAILABLE_CHECK_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.CLUSTER_STICKY_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_AVAILABLE_CHECK;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_CLUSTER_STICKY;\r\n+\r\n+/**\r\n+ * AbstractClusterInvoker\r\n+ */\r\n+public abstract class AbstractClusterInvoker<T> implements ClusterInvoker<T> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AbstractClusterInvoker.class);\r\n+\r\n+    protected Directory<T> directory;\r\n+\r\n+    protected boolean availablecheck;\r\n+\r\n+    private AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    private volatile Invoker<T> stickyInvoker = null;\r\n+\r\n+    public AbstractClusterInvoker() {\r\n+    }\r\n+\r\n+    public AbstractClusterInvoker(Directory<T> directory) {\r\n+        this(directory, directory.getUrl());\r\n+    }\r\n+\r\n+    public AbstractClusterInvoker(Directory<T> directory, URL url) {\r\n+        if (directory == null) {\r\n+            throw new IllegalArgumentException(\"service directory == null\");\r\n+        }\r\n+\r\n+        this.directory = directory;\r\n+        //sticky: invoker.isAvailable() should always be checked before using when availablecheck is true.\r\n+        this.availablecheck = url.getParameter(CLUSTER_AVAILABLE_CHECK_KEY, DEFAULT_CLUSTER_AVAILABLE_CHECK);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return directory.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return directory.getConsumerUrl();\r\n+    }\r\n+\r\n+    public URL getRegistryUrl() {\r\n+        return directory.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        Invoker<T> invoker = stickyInvoker;\r\n+        if (invoker != null) {\r\n+            return invoker.isAvailable();\r\n+        }\r\n+        return directory.isAvailable();\r\n+    }\r\n+\r\n+    public Directory<T> getDirectory() {\r\n+        return directory;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (destroyed.compareAndSet(false, true)) {\r\n+            directory.destroy();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return destroyed.get();\r\n+    }\r\n+\r\n+    /**\r\n+     * Select a invoker using loadbalance policy.</br>\r\n+     * a) Firstly, select an invoker using loadbalance. If this invoker is in previously selected list, or,\r\n+     * if this invoker is unavailable, then continue step b (reselect), otherwise return the first selected invoker</br>\r\n+     * <p>\r\n+     * b) Reselection, the validation rule for reselection: selected > available. This rule guarantees that\r\n+     * the selected invoker has the minimum chance to be one in the previously selected list, and also\r\n+     * guarantees this invoker is available.\r\n+     *\r\n+     * @param loadbalance load balance policy\r\n+     * @param invocation  invocation\r\n+     * @param invokers    invoker candidates\r\n+     * @param selected    exclude selected invokers or not\r\n+     * @return the invoker which will final to do invoke.\r\n+     * @throws RpcException exception\r\n+     */\r\n+    protected Invoker<T> select(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\r\n+\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return null;\r\n+        }\r\n+        String methodName = invocation == null ? StringUtils.EMPTY_STRING : invocation.getMethodName();\r\n+\r\n+        boolean sticky = invokers.get(0).getUrl()\r\n+                .getMethodParameter(methodName, CLUSTER_STICKY_KEY, DEFAULT_CLUSTER_STICKY);\r\n+\r\n+        //ignore overloaded method\r\n+        if (stickyInvoker != null && !invokers.contains(stickyInvoker)) {\r\n+            stickyInvoker = null;\r\n+        }\r\n+        //ignore concurrency problem\r\n+        if (sticky && stickyInvoker != null && (selected == null || !selected.contains(stickyInvoker))) {\r\n+            if (availablecheck && stickyInvoker.isAvailable()) {\r\n+                return stickyInvoker;\r\n+            }\r\n+        }\r\n+\r\n+        Invoker<T> invoker = doSelect(loadbalance, invocation, invokers, selected);\r\n+\r\n+        if (sticky) {\r\n+            stickyInvoker = invoker;\r\n+        }\r\n+        return invoker;\r\n+    }\r\n+\r\n+    private Invoker<T> doSelect(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected) throws RpcException {\r\n+\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            return null;\r\n+        }\r\n+        if (invokers.size() == 1) {\r\n+            return invokers.get(0);\r\n+        }\r\n+        Invoker<T> invoker = loadbalance.select(invokers, getUrl(), invocation);\r\n+\r\n+        //If the `invoker` is in the  `selected` or invoker is unavailable && availablecheck is true, reselect.\r\n+        if ((selected != null && selected.contains(invoker))\r\n+                || (!invoker.isAvailable() && getUrl() != null && availablecheck)) {\r\n+            try {\r\n+                Invoker<T> rInvoker = reselect(loadbalance, invocation, invokers, selected, availablecheck);\r\n+                if (rInvoker != null) {\r\n+                    invoker = rInvoker;\r\n+                } else {\r\n+                    //Check the index of current selected invoker, if it's not the last one, choose the one at index+1.\r\n+                    int index = invokers.indexOf(invoker);\r\n+                    try {\r\n+                        //Avoid collision\r\n+                        invoker = invokers.get((index + 1) % invokers.size());\r\n+                    } catch (Exception e) {\r\n+                        logger.warn(e.getMessage() + \" may because invokers list dynamic change, ignore.\", e);\r\n+                    }\r\n+                }\r\n+            } catch (Throwable t) {\r\n+                logger.error(\"cluster reselect fail reason is :\" + t.getMessage() + \" if can not solve, you can set cluster.availablecheck=false in url\", t);\r\n+            }\r\n+        }\r\n+        return invoker;\r\n+    }\r\n+\r\n+    /**\r\n+     * Reselect, use invokers not in `selected` first, if all invokers are in `selected`,\r\n+     * just pick an available one using loadbalance policy.\r\n+     *\r\n+     * @param loadbalance    load balance policy\r\n+     * @param invocation     invocation\r\n+     * @param invokers       invoker candidates\r\n+     * @param selected       exclude selected invokers or not\r\n+     * @param availablecheck check invoker available if true\r\n+     * @return the reselect result to do invoke\r\n+     * @throws RpcException exception\r\n+     */\r\n+    private Invoker<T> reselect(LoadBalance loadbalance, Invocation invocation,\r\n+                                List<Invoker<T>> invokers, List<Invoker<T>> selected, boolean availablecheck) throws RpcException {\r\n+\r\n+        //Allocating one in advance, this list is certain to be used.\r\n+        List<Invoker<T>> reselectInvokers = new ArrayList<>(\r\n+                invokers.size() > 1 ? (invokers.size() - 1) : invokers.size());\r\n+\r\n+        // First, try picking a invoker not in `selected`.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            if (availablecheck && !invoker.isAvailable()) {\r\n+                continue;\r\n+            }\r\n+\r\n+            if (selected == null || !selected.contains(invoker)) {\r\n+                reselectInvokers.add(invoker);\r\n+            }\r\n+        }\r\n+\r\n+        if (!reselectInvokers.isEmpty()) {\r\n+            return loadbalance.select(reselectInvokers, getUrl(), invocation);\r\n+        }\r\n+\r\n+        // Just pick an available invoker using loadbalance policy\r\n+        if (selected != null) {\r\n+            for (Invoker<T> invoker : selected) {\r\n+                if ((invoker.isAvailable()) // available first\r\n+                        && !reselectInvokers.contains(invoker)) {\r\n+                    reselectInvokers.add(invoker);\r\n+                }\r\n+            }\r\n+        }\r\n+        if (!reselectInvokers.isEmpty()) {\r\n+            return loadbalance.select(reselectInvokers, getUrl(), invocation);\r\n+        }\r\n+\r\n+        return null;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(final Invocation invocation) throws RpcException {\r\n+        checkWhetherDestroyed();\r\n+\r\n+        // binding attachments into invocation.\r\n+        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\r\n+        if (contextAttachments != null && contextAttachments.size() != 0) {\r\n+            ((RpcInvocation) invocation).addObjectAttachments(contextAttachments);\r\n+        }\r\n+\r\n+        List<Invoker<T>> invokers = list(invocation);\r\n+        LoadBalance loadbalance = initLoadBalance(invokers, invocation);\r\n+        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\r\n+        return doInvoke(invocation, invokers, loadbalance);\r\n+    }\r\n+\r\n+    protected void checkWhetherDestroyed() {\r\n+        if (destroyed.get()) {\r\n+            throw new RpcException(\"Rpc cluster invoker for \" + getInterface() + \" on consumer \" + NetUtils.getLocalHost()\r\n+                    + \" use dubbo version \" + Version.getVersion()\r\n+                    + \" is now destroyed! Can not invoke any more.\");\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getInterface() + \" -> \" + getUrl().toString();\r\n+    }\r\n+\r\n+    protected void checkInvokers(List<Invoker<T>> invokers, Invocation invocation) {\r\n+        if (CollectionUtils.isEmpty(invokers)) {\r\n+            throw new RpcException(RpcException.NO_INVOKER_AVAILABLE_AFTER_FILTER, \"Failed to invoke the method \"\r\n+                    + invocation.getMethodName() + \" in the service \" + getInterface().getName()\r\n+                    + \". No provider available for the service \" + directory.getConsumerUrl().getServiceKey()\r\n+                    + \" from registry \" + directory.getUrl().getAddress()\r\n+                    + \" on the consumer \" + NetUtils.getLocalHost()\r\n+                    + \" using the dubbo version \" + Version.getVersion()\r\n+                    + \". Please check if the providers have been started and registered.\");\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract Result doInvoke(Invocation invocation, List<Invoker<T>> invokers,\r\n+                                       LoadBalance loadbalance) throws RpcException;\r\n+\r\n+    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        return directory.list(invocation);\r\n+    }\r\n+\r\n+    /**\r\n+     * Init LoadBalance.\r\n+     * <p>\r\n+     * if invokers is not empty, init from the first invoke's url and invocation\r\n+     * if invokes is empty, init a default LoadBalance(RandomLoadBalance)\r\n+     * </p>\r\n+     *\r\n+     * @param invokers   invokers\r\n+     * @param invocation invocation\r\n+     * @return LoadBalance instance. if not need init, return null.\r\n+     */\r\n+    protected LoadBalance initLoadBalance(List<Invoker<T>> invokers, Invocation invocation) {\r\n+        if (CollectionUtils.isNotEmpty(invokers)) {\r\n+            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(invokers.get(0).getUrl()\r\n+                    .getMethodParameter(RpcUtils.getMethodName(invocation), LOADBALANCE_KEY, DEFAULT_LOADBALANCE));\r\n+        } else {\r\n+            return ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(DEFAULT_LOADBALANCE);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/ForkingClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,113 +1,113 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.concurrent.BlockingQueue;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.LinkedBlockingQueue;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.FORKS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_FORKS;\n-\n-/**\n- * NOTICE! This implementation does not work well with async call.\n- *\n- * Invoke a specific number of invokers concurrently, usually used for demanding real-time operations, but need to waste more service resources.\n- *\n- * <a href=\"http://en.wikipedia.org/wiki/Fork_(topology)\">Fork</a>\n- */\n-public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    /**\n-     * Use {@link NamedInternalThreadFactory} to produce {@link org.apache.dubbo.common.threadlocal.InternalThread}\n-     * which with the use of {@link org.apache.dubbo.common.threadlocal.InternalThreadLocal} in {@link RpcContext}.\n-     */\n-    private final ExecutorService executor = Executors.newCachedThreadPool(\n-            new NamedInternalThreadFactory(\"forking-cluster-timer\", true));\n-\n-    public ForkingClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        try {\n-            checkInvokers(invokers, invocation);\n-            final List<Invoker<T>> selected;\n-            final int forks = getUrl().getParameter(FORKS_KEY, DEFAULT_FORKS);\n-            final int timeout = getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-            if (forks <= 0 || forks >= invokers.size()) {\n-                selected = invokers;\n-            } else {\n-                selected = new ArrayList<>(forks);\n-                while (selected.size() < forks) {\n-                    Invoker<T> invoker = select(loadbalance, invocation, invokers, selected);\n-                    if (!selected.contains(invoker)) {\n-                        //Avoid add the same invoker several times.\n-                        selected.add(invoker);\n-                    }\n-                }\n-            }\n-            RpcContext.getContext().setInvokers((List) selected);\n-            final AtomicInteger count = new AtomicInteger();\n-            final BlockingQueue<Object> ref = new LinkedBlockingQueue<>();\n-            for (final Invoker<T> invoker : selected) {\n-                executor.execute(() -> {\n-                    try {\n-                        Result result = invoker.invoke(invocation);\n-                        ref.offer(result);\n-                    } catch (Throwable e) {\n-                        int value = count.incrementAndGet();\n-                        if (value >= selected.size()) {\n-                            ref.offer(e);\n-                        }\n-                    }\n-                });\n-            }\n-            try {\n-                Object ret = ref.poll(timeout, TimeUnit.MILLISECONDS);\n-                if (ret instanceof Throwable) {\n-                    Throwable e = (Throwable) ret;\n-                    throw new RpcException(e instanceof RpcException ? ((RpcException) e).getCode() : 0, \"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e.getCause() != null ? e.getCause() : e);\n-                }\n-                return (Result) ret;\n-            } catch (InterruptedException e) {\n-                throw new RpcException(\"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e);\n-            }\n-        } finally {\n-            // clear attachments which is binding to current thread.\n-            RpcContext.getContext().clearAttachments();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.threadlocal.NamedInternalThreadFactory;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.concurrent.BlockingQueue;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.LinkedBlockingQueue;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.FORKS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.rpc.cluster.Constants.DEFAULT_FORKS;\r\n+\r\n+/**\r\n+ * NOTICE! This implementation does not work well with async call.\r\n+ *\r\n+ * Invoke a specific number of invokers concurrently, usually used for demanding real-time operations, but need to waste more service resources.\r\n+ *\r\n+ * <a href=\"http://en.wikipedia.org/wiki/Fork_(topology)\">Fork</a>\r\n+ */\r\n+public class ForkingClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    /**\r\n+     * Use {@link NamedInternalThreadFactory} to produce {@link org.apache.dubbo.common.threadlocal.InternalThread}\r\n+     * which with the use of {@link org.apache.dubbo.common.threadlocal.InternalThreadLocal} in {@link RpcContext}.\r\n+     */\r\n+    private final ExecutorService executor = Executors.newCachedThreadPool(\r\n+            new NamedInternalThreadFactory(\"forking-cluster-timer\", true));\r\n+\r\n+    public ForkingClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public Result doInvoke(final Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        try {\r\n+            checkInvokers(invokers, invocation);\r\n+            final List<Invoker<T>> selected;\r\n+            final int forks = getUrl().getParameter(FORKS_KEY, DEFAULT_FORKS);\r\n+            final int timeout = getUrl().getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+            if (forks <= 0 || forks >= invokers.size()) {\r\n+                selected = invokers;\r\n+            } else {\r\n+                selected = new ArrayList<>(forks);\r\n+                while (selected.size() < forks) {\r\n+                    Invoker<T> invoker = select(loadbalance, invocation, invokers, selected);\r\n+                    if (!selected.contains(invoker)) {\r\n+                        //Avoid add the same invoker several times.\r\n+                        selected.add(invoker);\r\n+                    }\r\n+                }\r\n+            }\r\n+            RpcContext.getContext().setInvokers((List) selected);\r\n+            final AtomicInteger count = new AtomicInteger();\r\n+            final BlockingQueue<Object> ref = new LinkedBlockingQueue<>();\r\n+            for (final Invoker<T> invoker : selected) {\r\n+                executor.execute(() -> {\r\n+                    try {\r\n+                        Result result = invoker.invoke(invocation);\r\n+                        ref.offer(result);\r\n+                    } catch (Throwable e) {\r\n+                        int value = count.incrementAndGet();\r\n+                        if (value >= selected.size()) {\r\n+                            ref.offer(e);\r\n+                        }\r\n+                    }\r\n+                });\r\n+            }\r\n+            try {\r\n+                Object ret = ref.poll(timeout, TimeUnit.MILLISECONDS);\r\n+                if (ret instanceof Throwable) {\r\n+                    Throwable e = (Throwable) ret;\r\n+                    throw new RpcException(e instanceof RpcException ? ((RpcException) e).getCode() : 0, \"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e.getCause() != null ? e.getCause() : e);\r\n+                }\r\n+                return (Result) ret;\r\n+            } catch (InterruptedException e) {\r\n+                throw new RpcException(\"Failed to forking invoke provider \" + selected + \", but no luck to perform the invocation. Last error is: \" + e.getMessage(), e);\r\n+            }\r\n+        } finally {\r\n+            // clear attachments which is binding to current thread.\r\n+            RpcContext.getContext().clearAttachments();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/MergeableCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/MergeableCluster.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support;\n-\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\n-\n-public class MergeableCluster extends AbstractCluster {\n-\n-    public static final String NAME = \"mergeable\";\n-\n-    @Override\n-    public <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\n-        return new MergeableClusterInvoker<T>(directory);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\r\n+\r\n+public class MergeableCluster extends AbstractCluster {\r\n+\r\n+    public static final String NAME = \"mergeable\";\r\n+\r\n+    @Override\r\n+    public <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\r\n+        return new MergeableClusterInvoker<T>(directory);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/MergeableClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,193 +1,193 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.Merger;\n-import org.apache.dubbo.rpc.cluster.merger.MergerFactory;\n-\n-import java.lang.reflect.Array;\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\n-import static org.apache.dubbo.rpc.Constants.MERGER_KEY;\n-\n-/**\n- * @param <T>\n- */\n-@SuppressWarnings(\"unchecked\")\n-public class MergeableClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    private static final Logger log = LoggerFactory.getLogger(MergeableClusterInvoker.class);\n-\n-    public MergeableClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        checkInvokers(invokers, invocation);\n-        String merger = getUrl().getMethodParameter(invocation.getMethodName(), MERGER_KEY);\n-        if (ConfigUtils.isEmpty(merger)) { // If a method doesn't have a merger, only invoke one Group\n-            for (final Invoker<T> invoker : invokers) {\n-                if (invoker.isAvailable()) {\n-                    try {\n-                        return invoker.invoke(invocation);\n-                    } catch (RpcException e) {\n-                        if (e.isNoInvokerAvailableAfterFilter()) {\n-                            log.debug(\"No available provider for service\" + getUrl().getServiceKey() + \" on group \" + invoker.getUrl().getParameter(GROUP_KEY) + \", will continue to try another group.\");\n-                        } else {\n-                            throw e;\n-                        }\n-                    }\n-                }\n-            }\n-            return invokers.iterator().next().invoke(invocation);\n-        }\n-\n-        Class<?> returnType;\n-        try {\n-            returnType = getInterface().getMethod(\n-                    invocation.getMethodName(), invocation.getParameterTypes()).getReturnType();\n-        } catch (NoSuchMethodException e) {\n-            returnType = null;\n-        }\n-\n-        Map<String, Result> results = new HashMap<>();\n-        for (final Invoker<T> invoker : invokers) {\n-            RpcInvocation subInvocation = new RpcInvocation(invocation, invoker);\n-            subInvocation.setAttachment(ASYNC_KEY, \"true\");\n-            results.put(invoker.getUrl().getServiceKey(), invoker.invoke(subInvocation));\n-        }\n-\n-        Object result = null;\n-\n-        List<Result> resultList = new ArrayList<Result>(results.size());\n-\n-        for (Map.Entry<String, Result> entry : results.entrySet()) {\n-            Result asyncResult = entry.getValue();\n-            try {\n-                Result r = asyncResult.get();\n-                if (r.hasException()) {\n-                    log.error(\"Invoke \" + getGroupDescFromServiceKey(entry.getKey()) +\n-                                    \" failed: \" + r.getException().getMessage(),\n-                            r.getException());\n-                } else {\n-                    resultList.add(r);\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(\"Failed to invoke service \" + entry.getKey() + \": \" + e.getMessage(), e);\n-            }\n-        }\n-\n-        if (resultList.isEmpty()) {\n-            return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-        } else if (resultList.size() == 1) {\n-            return AsyncRpcResult.newDefaultAsyncResult(resultList.get(0).getValue(), invocation);\n-        }\n-\n-        if (returnType == void.class) {\n-            return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-        }\n-\n-        if (merger.startsWith(\".\")) {\n-            merger = merger.substring(1);\n-            Method method;\n-            try {\n-                method = returnType.getMethod(merger, returnType);\n-            } catch (NoSuchMethodException e) {\n-                throw new RpcException(\"Can not merge result because missing method [ \" + merger + \" ] in class [ \" +\n-                        returnType.getName() + \" ]\");\n-            }\n-            ReflectUtils.makeAccessible(method);\n-            result = resultList.remove(0).getValue();\n-            try {\n-                if (method.getReturnType() != void.class\n-                        && method.getReturnType().isAssignableFrom(result.getClass())) {\n-                    for (Result r : resultList) {\n-                        result = method.invoke(result, r.getValue());\n-                    }\n-                } else {\n-                    for (Result r : resultList) {\n-                        method.invoke(result, r.getValue());\n-                    }\n-                }\n-            } catch (Exception e) {\n-                throw new RpcException(\"Can not merge result: \" + e.getMessage(), e);\n-            }\n-        } else {\n-            Merger resultMerger;\n-            if (ConfigUtils.isDefault(merger)) {\n-                resultMerger = MergerFactory.getMerger(returnType);\n-            } else {\n-                resultMerger = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(merger);\n-            }\n-            if (resultMerger != null) {\n-                List<Object> rets = new ArrayList<Object>(resultList.size());\n-                for (Result r : resultList) {\n-                    rets.add(r.getValue());\n-                }\n-                result = resultMerger.merge(\n-                        rets.toArray((Object[]) Array.newInstance(returnType, 0)));\n-            } else {\n-                throw new RpcException(\"There is no merger to merge result.\");\n-            }\n-        }\n-        return AsyncRpcResult.newDefaultAsyncResult(result, invocation);\n-    }\n-\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return directory.getInterface();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return directory.isAvailable();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        directory.destroy();\n-    }\n-\n-    private String getGroupDescFromServiceKey(String key) {\n-        int index = key.indexOf(\"/\");\n-        if (index > 0) {\n-            return \"group [ \" + key.substring(0, index) + \" ]\";\n-        }\n-        return key;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.Merger;\r\n+import org.apache.dubbo.rpc.cluster.merger.MergerFactory;\r\n+\r\n+import java.lang.reflect.Array;\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.MERGER_KEY;\r\n+\r\n+/**\r\n+ * @param <T>\r\n+ */\r\n+@SuppressWarnings(\"unchecked\")\r\n+public class MergeableClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(MergeableClusterInvoker.class);\r\n+\r\n+    public MergeableClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        checkInvokers(invokers, invocation);\r\n+        String merger = getUrl().getMethodParameter(invocation.getMethodName(), MERGER_KEY);\r\n+        if (ConfigUtils.isEmpty(merger)) { // If a method doesn't have a merger, only invoke one Group\r\n+            for (final Invoker<T> invoker : invokers) {\r\n+                if (invoker.isAvailable()) {\r\n+                    try {\r\n+                        return invoker.invoke(invocation);\r\n+                    } catch (RpcException e) {\r\n+                        if (e.isNoInvokerAvailableAfterFilter()) {\r\n+                            log.debug(\"No available provider for service\" + getUrl().getServiceKey() + \" on group \" + invoker.getUrl().getParameter(GROUP_KEY) + \", will continue to try another group.\");\r\n+                        } else {\r\n+                            throw e;\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            return invokers.iterator().next().invoke(invocation);\r\n+        }\r\n+\r\n+        Class<?> returnType;\r\n+        try {\r\n+            returnType = getInterface().getMethod(\r\n+                    invocation.getMethodName(), invocation.getParameterTypes()).getReturnType();\r\n+        } catch (NoSuchMethodException e) {\r\n+            returnType = null;\r\n+        }\r\n+\r\n+        Map<String, Result> results = new HashMap<>();\r\n+        for (final Invoker<T> invoker : invokers) {\r\n+            RpcInvocation subInvocation = new RpcInvocation(invocation, invoker);\r\n+            subInvocation.setAttachment(ASYNC_KEY, \"true\");\r\n+            results.put(invoker.getUrl().getServiceKey(), invoker.invoke(subInvocation));\r\n+        }\r\n+\r\n+        Object result = null;\r\n+\r\n+        List<Result> resultList = new ArrayList<Result>(results.size());\r\n+\r\n+        for (Map.Entry<String, Result> entry : results.entrySet()) {\r\n+            Result asyncResult = entry.getValue();\r\n+            try {\r\n+                Result r = asyncResult.get();\r\n+                if (r.hasException()) {\r\n+                    log.error(\"Invoke \" + getGroupDescFromServiceKey(entry.getKey()) +\r\n+                                    \" failed: \" + r.getException().getMessage(),\r\n+                            r.getException());\r\n+                } else {\r\n+                    resultList.add(r);\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(\"Failed to invoke service \" + entry.getKey() + \": \" + e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        if (resultList.isEmpty()) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+        } else if (resultList.size() == 1) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(resultList.get(0).getValue(), invocation);\r\n+        }\r\n+\r\n+        if (returnType == void.class) {\r\n+            return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+        }\r\n+\r\n+        if (merger.startsWith(\".\")) {\r\n+            merger = merger.substring(1);\r\n+            Method method;\r\n+            try {\r\n+                method = returnType.getMethod(merger, returnType);\r\n+            } catch (NoSuchMethodException e) {\r\n+                throw new RpcException(\"Can not merge result because missing method [ \" + merger + \" ] in class [ \" +\r\n+                        returnType.getName() + \" ]\");\r\n+            }\r\n+            ReflectUtils.makeAccessible(method);\r\n+            result = resultList.remove(0).getValue();\r\n+            try {\r\n+                if (method.getReturnType() != void.class\r\n+                        && method.getReturnType().isAssignableFrom(result.getClass())) {\r\n+                    for (Result r : resultList) {\r\n+                        result = method.invoke(result, r.getValue());\r\n+                    }\r\n+                } else {\r\n+                    for (Result r : resultList) {\r\n+                        method.invoke(result, r.getValue());\r\n+                    }\r\n+                }\r\n+            } catch (Exception e) {\r\n+                throw new RpcException(\"Can not merge result: \" + e.getMessage(), e);\r\n+            }\r\n+        } else {\r\n+            Merger resultMerger;\r\n+            if (ConfigUtils.isDefault(merger)) {\r\n+                resultMerger = MergerFactory.getMerger(returnType);\r\n+            } else {\r\n+                resultMerger = ExtensionLoader.getExtensionLoader(Merger.class).getExtension(merger);\r\n+            }\r\n+            if (resultMerger != null) {\r\n+                List<Object> rets = new ArrayList<Object>(resultList.size());\r\n+                for (Result r : resultList) {\r\n+                    rets.add(r.getValue());\r\n+                }\r\n+                result = resultMerger.merge(\r\n+                        rets.toArray((Object[]) Array.newInstance(returnType, 0)));\r\n+            } else {\r\n+                throw new RpcException(\"There is no merger to merge result.\");\r\n+            }\r\n+        }\r\n+        return AsyncRpcResult.newDefaultAsyncResult(result, invocation);\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return directory.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return directory.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        directory.destroy();\r\n+    }\r\n+\r\n+    private String getGroupDescFromServiceKey(String key) {\r\n+        int index = key.indexOf(\"/\");\r\n+        if (index > 0) {\r\n+            return \"group [ \" + key.substring(0, index) + \" ]\";\r\n+        }\r\n+        return key;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java", "source2": "org/apache/dubbo/rpc/cluster/support/ProviderURLMergeProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import java.util.Map;\n-\n-@SPI\n-public interface ProviderURLMergeProcessor {\n-    URL mergeProviderUrl(URL providerUrl, Map<String, String> localParametersMap);\n-\n-    boolean accept(URL providerUrl, Map<String, String> localParametersMap);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import java.util.Map;\r\n+\r\n+@SPI\r\n+public interface ProviderURLMergeProcessor {\r\n+    URL mergeProviderUrl(URL providerUrl, Map<String, String> localParametersMap);\r\n+\r\n+    boolean accept(URL providerUrl, Map<String, String> localParametersMap);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterComparator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-import org.apache.dubbo.rpc.Invoker;\n-\n-import java.util.List;\n-\n-@SPI\n-public interface MigrationClusterComparator {\n-\n-    <T> boolean shouldMigrate(List<Invoker<T>>  interfaceInvokers, List<Invoker<T>>  serviceInvokers);\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+\r\n+import java.util.List;\r\n+\r\n+@SPI\r\n+public interface MigrationClusterComparator {\r\n+\r\n+    <T> boolean shouldMigrate(List<Invoker<T>>  interfaceInvokers, List<Invoker<T>>  serviceInvokers);\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-public interface MigrationClusterInvoker<T> extends ClusterInvoker<T> {\n-\n-    boolean isServiceInvoker();\n-\n-    MigrationRule getMigrationRule();\n-\n-    void setMigrationRule(MigrationRule rule);\n-\n-    void destroyServiceDiscoveryInvoker(ClusterInvoker<?> invoker);\n-\n-    void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> invoker);\n-\n-    void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker);\n-\n-    void refreshServiceDiscoveryInvoker();\n-\n-    void refreshInterfaceInvoker();\n-\n-    void destroyInterfaceInvoker(ClusterInvoker<T> invoker);\n-\n-    boolean isMigrationMultiRegistry();\n-\n-    void migrateToServiceDiscoveryInvoker(boolean forceMigrate);\n-\n-    void reRefer(URL newSubscribeUrl);\n-\n-    void fallbackToInterfaceInvoker();\n-\n-    AtomicBoolean invokersChanged();\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+public interface MigrationClusterInvoker<T> extends ClusterInvoker<T> {\r\n+\r\n+    boolean isServiceInvoker();\r\n+\r\n+    MigrationRule getMigrationRule();\r\n+\r\n+    void setMigrationRule(MigrationRule rule);\r\n+\r\n+    void destroyServiceDiscoveryInvoker(ClusterInvoker<?> invoker);\r\n+\r\n+    void discardServiceDiscoveryInvokerAddress(ClusterInvoker<?> invoker);\r\n+\r\n+    void discardInterfaceInvokerAddress(ClusterInvoker<T> invoker);\r\n+\r\n+    void refreshServiceDiscoveryInvoker();\r\n+\r\n+    void refreshInterfaceInvoker();\r\n+\r\n+    void destroyInterfaceInvoker(ClusterInvoker<T> invoker);\r\n+\r\n+    boolean isMigrationMultiRegistry();\r\n+\r\n+    void migrateToServiceDiscoveryInvoker(boolean forceMigrate);\r\n+\r\n+    void reRefer(URL newSubscribeUrl);\r\n+\r\n+    void fallbackToInterfaceInvoker();\r\n+\r\n+    AtomicBoolean invokersChanged();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationRule.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,90 +1,90 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.migration;\n-\n-import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.yaml.snakeyaml.Yaml;\n-import org.yaml.snakeyaml.constructor.Constructor;\n-\n-import java.util.Optional;\n-\n-import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\n-\n-public class MigrationRule {\n-    private static final String DUBBO_SERVICEDISCOVERY_MIGRATION_KEY = \"dubbo.application.service-discovery.migration\";\n-    public static final String DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP = \"MIGRATION\";\n-    public static final String RULE_KEY = ApplicationModel.getName() + \".migration\";\n-\n-    private static DynamicConfiguration configuration = null;\n-\n-    static {\n-        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\n-        optional.ifPresent(dynamicConfiguration -> configuration = dynamicConfiguration);\n-    }\n-\n-    private String key;\n-    private MigrationStep step = MigrationStep.FORCE_INTERFACE;\n-\n-    public String getKey() {\n-        return key;\n-    }\n-\n-    public void setKey(String key) {\n-        this.key = key;\n-    }\n-\n-    public MigrationStep getStep() {\n-        return step;\n-    }\n-\n-    public void setStep(MigrationStep step) {\n-        this.step = step;\n-    }\n-\n-    public static MigrationRule parse(String rawRule) {\n-        if (null == configuration) {\n-            return getMigrationRule(null);\n-        }\n-\n-        if (StringUtils.isBlank(rawRule) || INIT.equals(rawRule)) {\n-            String step = (String)configuration.getInternalProperty(DUBBO_SERVICEDISCOVERY_MIGRATION_KEY);\n-            return getMigrationRule(step);\n-\n-        }\n-\n-        Constructor constructor = new Constructor(MigrationRule.class);\n-        Yaml yaml = new Yaml(constructor);\n-        return yaml.load(rawRule);\n-    }\n-\n-    public static MigrationRule queryRule() {\n-        if (null == configuration) {\n-            return getMigrationRule(null);\n-        }\n-\n-        String rawRule = configuration.getConfig(MigrationRule.RULE_KEY, DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\n-        return parse(rawRule);\n-    }\n-\n-    private  static MigrationRule getMigrationRule(String step) {\n-        MigrationRule rule = new MigrationRule();\n-        rule.setStep(Enum.valueOf(MigrationStep.class, StringUtils.isBlank(step) ? MigrationStep.APPLICATION_FIRST.name() : step));\n-        return rule;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.migration;\r\n+\r\n+import org.apache.dubbo.common.config.configcenter.DynamicConfiguration;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.yaml.snakeyaml.Yaml;\r\n+import org.yaml.snakeyaml.constructor.Constructor;\r\n+\r\n+import java.util.Optional;\r\n+\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.INIT;\r\n+\r\n+public class MigrationRule {\r\n+    private static final String DUBBO_SERVICEDISCOVERY_MIGRATION_KEY = \"dubbo.application.service-discovery.migration\";\r\n+    public static final String DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP = \"MIGRATION\";\r\n+    public static final String RULE_KEY = ApplicationModel.getName() + \".migration\";\r\n+\r\n+    private static DynamicConfiguration configuration = null;\r\n+\r\n+    static {\r\n+        Optional<DynamicConfiguration> optional = ApplicationModel.getEnvironment().getDynamicConfiguration();\r\n+        optional.ifPresent(dynamicConfiguration -> configuration = dynamicConfiguration);\r\n+    }\r\n+\r\n+    private String key;\r\n+    private MigrationStep step = MigrationStep.FORCE_INTERFACE;\r\n+\r\n+    public String getKey() {\r\n+        return key;\r\n+    }\r\n+\r\n+    public void setKey(String key) {\r\n+        this.key = key;\r\n+    }\r\n+\r\n+    public MigrationStep getStep() {\r\n+        return step;\r\n+    }\r\n+\r\n+    public void setStep(MigrationStep step) {\r\n+        this.step = step;\r\n+    }\r\n+\r\n+    public static MigrationRule parse(String rawRule) {\r\n+        if (null == configuration) {\r\n+            return getMigrationRule(null);\r\n+        }\r\n+\r\n+        if (StringUtils.isBlank(rawRule) || INIT.equals(rawRule)) {\r\n+            String step = (String)configuration.getInternalProperty(DUBBO_SERVICEDISCOVERY_MIGRATION_KEY);\r\n+            return getMigrationRule(step);\r\n+\r\n+        }\r\n+\r\n+        Constructor constructor = new Constructor(MigrationRule.class);\r\n+        Yaml yaml = new Yaml(constructor);\r\n+        return yaml.load(rawRule);\r\n+    }\r\n+\r\n+    public static MigrationRule queryRule() {\r\n+        if (null == configuration) {\r\n+            return getMigrationRule(null);\r\n+        }\r\n+\r\n+        String rawRule = configuration.getConfig(MigrationRule.RULE_KEY, DUBBO_SERVICEDISCOVERY_MIGRATION_GROUP);\r\n+        return parse(rawRule);\r\n+    }\r\n+\r\n+    private  static MigrationRule getMigrationRule(String step) {\r\n+        MigrationRule rule = new MigrationRule();\r\n+        rule.setStep(Enum.valueOf(MigrationStep.class, StringUtils.isBlank(step) ? MigrationStep.APPLICATION_FIRST.name() : step));\r\n+        return rule;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java", "source2": "org/apache/dubbo/rpc/cluster/support/migration/MigrationStep.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,23 +1,23 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.migration;\n-\n-public enum MigrationStep {\n-    FORCE_INTERFACE,\n-    APPLICATION_FIRST,\n-    FORCE_APPLICATION\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.migration;\r\n+\r\n+public enum MigrationStep {\r\n+    FORCE_INTERFACE,\r\n+    APPLICATION_FIRST,\r\n+    FORCE_APPLICATION\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareCluster.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.registry;\n-\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\n-\n-/**\n- * See {@link ZoneAwareClusterInvoker}\n- */\n-public class ZoneAwareCluster extends AbstractCluster {\n-\n-    public final static String NAME = \"zone-aware\";\n-\n-    @Override\n-    protected <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\n-        return new ZoneAwareClusterInvoker<T>(directory);\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.registry;\r\n+\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.AbstractCluster;\r\n+\r\n+/**\r\n+ * See {@link ZoneAwareClusterInvoker}\r\n+ */\r\n+public class ZoneAwareCluster extends AbstractCluster {\r\n+\r\n+    public final static String NAME = \"zone-aware\";\r\n+\r\n+    @Override\r\n+    protected <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException {\r\n+        return new ZoneAwareClusterInvoker<T>(directory);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java", "source2": "org/apache/dubbo/rpc/cluster/support/registry/ZoneAwareClusterInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,253 +1,253 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.registry;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.ClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterComparator;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\n-import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\n-import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker;\n-\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.stream.Collectors;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PREFERRED_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.LOADBALANCE_AMONG_REGISTRIES;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\n-import static org.apache.dubbo.common.constants.RegistryConstants.ZONE_KEY;\n-\n-/**\n- * When there're more than one registry for subscription.\n- * <p>\n- * This extension provides a strategy to decide how to distribute traffics among them:\n- * 1. registry marked as 'preferred=true' has the highest priority.\n- * 2. check the zone the current request belongs, pick the registry that has the same zone first.\n- * 3. Evenly balance traffic between all registries based on each registry's weight.\n- * 4. Pick anyone that's available.\n- */\n-public class ZoneAwareClusterInvoker<T> extends AbstractClusterInvoker<T> {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(ZoneAwareClusterInvoker.class);\n-\n-    private static final String PREFER_REGISTRY_KEY = REGISTRY_KEY + \".\" + PREFERRED_KEY;\n-\n-    private static final String PREFER_REGISTRY_WITH_ZONE_KEY = REGISTRY_KEY + \".\" + ZONE_KEY;\n-\n-    private final LoadBalance loadBalanceAmongRegistries = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(LOADBALANCE_AMONG_REGISTRIES);\n-\n-    public ZoneAwareClusterInvoker(Directory<T> directory) {\n-        super(directory);\n-    }\n-\n-    @Override\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-        // First, pick the invoker (XXXClusterInvoker) that comes from the local registry, distinguish by a 'preferred' key.\n-        for (Invoker<T> invoker : invokers) {\n-            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-            if (clusterInvoker.isAvailable() && clusterInvoker.getRegistryUrl()\n-                    .getParameter(PREFER_REGISTRY_KEY, false)) {\n-                return clusterInvoker.invoke(invocation);\n-            }\n-        }\n-\n-        // providers in the registry with the same zone\n-        String zone = invocation.getAttachment(REGISTRY_ZONE);\n-        if (StringUtils.isNotEmpty(zone)) {\n-            for (Invoker<T> invoker : invokers) {\n-                ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-                if (clusterInvoker.isAvailable() && zone.equals(clusterInvoker.getRegistryUrl().getParameter(PREFER_REGISTRY_WITH_ZONE_KEY))) {\n-                    return clusterInvoker.invoke(invocation);\n-                }\n-            }\n-            String force = invocation.getAttachment(REGISTRY_ZONE_FORCE);\n-            if (StringUtils.isNotEmpty(force) && \"true\".equalsIgnoreCase(force)) {\n-                throw new IllegalStateException(\"No registry instance in zone or no available providers in the registry, zone: \"\n-                        + zone\n-                        + \", registries: \" + invokers.stream().map(invoker -> ((MockClusterInvoker<T>) invoker).getRegistryUrl().toString()).collect(Collectors.joining(\",\")));\n-            }\n-        }\n-\n-\n-        // load balance among all registries, with registry weight count in.\n-        Invoker<T> balancedInvoker = select(loadBalanceAmongRegistries, invocation, invokers, null);\n-        if (balancedInvoker.isAvailable()) {\n-            return balancedInvoker.invoke(invocation);\n-        }\n-\n-        // If none of the invokers has a preferred signal or is picked by the loadbalancer, pick the first one available.\n-        for (Invoker<T> invoker : invokers) {\n-            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\n-            if (clusterInvoker.isAvailable()) {\n-                return clusterInvoker.invoke(invocation);\n-            }\n-        }\n-\n-        //if none available,just pick one\n-        return invokers.get(0).invoke(invocation);\n-    }\n-\n-    @Override\n-    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\n-        List<Invoker<T>> invokers = super.list(invocation);\n-\n-        if (null == invokers || invokers.size() < 2) {\n-            return invokers;\n-        }\n-\n-        List<Invoker<T>> interfaceInvokers = new ArrayList<>();\n-        List<Invoker<T>> serviceInvokers = new ArrayList<>();\n-        boolean addressChanged = false;\n-        for (Invoker<T> invoker : invokers) {\n-            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\n-            if (migrationClusterInvoker.isServiceInvoker()) {\n-                serviceInvokers.add(invoker);\n-            } else {\n-                interfaceInvokers.add(invoker);\n-            }\n-\n-            if (migrationClusterInvoker.invokersChanged().compareAndSet(true, false)) {\n-                addressChanged = true;\n-            }\n-        }\n-\n-        if (serviceInvokers.isEmpty() || interfaceInvokers.isEmpty()) {\n-            return invokers;\n-        }\n-\n-        MigrationRule rule = null;\n-        for (Invoker<T> invoker : serviceInvokers) {\n-            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\n-\n-            if (rule == null) {\n-                rule = migrationClusterInvoker.getMigrationRule();\n-                continue;\n-            }\n-\n-            // inconsistency rule\n-            if (!rule.equals(migrationClusterInvoker.getMigrationRule())) {\n-                rule = MigrationRule.queryRule();\n-                break;\n-            }\n-        }\n-\n-        MigrationStep step = rule.getStep();\n-\n-        switch (step) {\n-            case FORCE_INTERFACE:\n-                clusterRefresh(addressChanged, interfaceInvokers);\n-                clusterDestroy(addressChanged, serviceInvokers, true);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is FORCE_INTERFACE\");\n-                }\n-                return interfaceInvokers;\n-\n-            case APPLICATION_FIRST:\n-                clusterRefresh(addressChanged, serviceInvokers);\n-                clusterRefresh(addressChanged, interfaceInvokers);\n-\n-                boolean serviceAvailable = !serviceInvokers.isEmpty();\n-                if (serviceAvailable) {\n-                    if (shouldMigrate(addressChanged, serviceInvokers, interfaceInvokers)) {\n-                        if (logger.isDebugEnabled()) {\n-                            logger.debug(\"step is APPLICATION_FIRST shouldMigrate true get serviceInvokers\");\n-                        }\n-                        return serviceInvokers;\n-                    }\n-                }\n-\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is APPLICATION_FIRST \" + (serviceInvokers.isEmpty() ? \"serviceInvokers is empty\" : \"shouldMigrate false\") + \" get interfaceInvokers\");\n-                }\n-\n-                return interfaceInvokers;\n-\n-            case FORCE_APPLICATION:\n-                clusterRefresh(addressChanged, serviceInvokers);\n-                clusterDestroy(addressChanged, interfaceInvokers, true);\n-\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"step is FORCE_APPLICATION\");\n-                }\n-\n-                return serviceInvokers;\n-        }\n-\n-        throw new UnsupportedOperationException(rule.getStep().name());\n-    }\n-\n-\n-    private boolean shouldMigrate(boolean addressChanged, List<Invoker<T>> serviceInvokers, List<Invoker<T>> interfaceInvokers) {\n-        Set<MigrationClusterComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationClusterComparator.class).getSupportedExtensionInstances();\n-        if (detectors != null && !detectors.isEmpty()) {\n-            return detectors.stream().allMatch(s -> s.shouldMigrate(interfaceInvokers, serviceInvokers));\n-        }\n-\n-        // check application level provider available.\n-        List<Invoker<T>> availableServiceInvokers = serviceInvokers.stream().filter(s -> s.isAvailable()).collect(Collectors.toList());\n-        return !availableServiceInvokers.isEmpty();\n-    }\n-\n-    private void clusterDestroy(boolean addressChanged, List<Invoker<T>> invokers, boolean destroySub) {\n-        if (addressChanged) {\n-            invokers.forEach(s -> {\n-                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\n-                if (invoker.isServiceInvoker()) {\n-                    invoker.discardServiceDiscoveryInvokerAddress(invoker);\n-                    if (destroySub) {\n-                        invoker.destroyServiceDiscoveryInvoker(invoker);\n-                    }\n-                } else {\n-                    invoker.discardInterfaceInvokerAddress(invoker);\n-                    if (destroySub) {\n-                        invoker.destroyInterfaceInvoker(invoker);\n-                    }\n-                }\n-            });\n-        }\n-    }\n-\n-    private void clusterRefresh(boolean addressChanged, List<Invoker<T>> invokers) {\n-        if (addressChanged) {\n-            invokers.forEach(s -> {\n-                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\n-                if (invoker.isServiceInvoker()) {\n-                    invoker.refreshServiceDiscoveryInvoker();\n-                } else {\n-                    invoker.refreshInterfaceInvoker();\n-                }\n-            });\n-        }\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.registry;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.ClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterComparator;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationClusterInvoker;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationRule;\r\n+import org.apache.dubbo.rpc.cluster.support.migration.MigrationStep;\r\n+import org.apache.dubbo.rpc.cluster.support.wrapper.MockClusterInvoker;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.stream.Collectors;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PREFERRED_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.LOADBALANCE_AMONG_REGISTRIES;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_KEY;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.REGISTRY_ZONE_FORCE;\r\n+import static org.apache.dubbo.common.constants.RegistryConstants.ZONE_KEY;\r\n+\r\n+/**\r\n+ * When there're more than one registry for subscription.\r\n+ * <p>\r\n+ * This extension provides a strategy to decide how to distribute traffics among them:\r\n+ * 1. registry marked as 'preferred=true' has the highest priority.\r\n+ * 2. check the zone the current request belongs, pick the registry that has the same zone first.\r\n+ * 3. Evenly balance traffic between all registries based on each registry's weight.\r\n+ * 4. Pick anyone that's available.\r\n+ */\r\n+public class ZoneAwareClusterInvoker<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(ZoneAwareClusterInvoker.class);\r\n+\r\n+    private static final String PREFER_REGISTRY_KEY = REGISTRY_KEY + \".\" + PREFERRED_KEY;\r\n+\r\n+    private static final String PREFER_REGISTRY_WITH_ZONE_KEY = REGISTRY_KEY + \".\" + ZONE_KEY;\r\n+\r\n+    private final LoadBalance loadBalanceAmongRegistries = ExtensionLoader.getExtensionLoader(LoadBalance.class).getExtension(LOADBALANCE_AMONG_REGISTRIES);\r\n+\r\n+    public ZoneAwareClusterInvoker(Directory<T> directory) {\r\n+        super(directory);\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    public Result doInvoke(Invocation invocation, final List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+        // First, pick the invoker (XXXClusterInvoker) that comes from the local registry, distinguish by a 'preferred' key.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+            if (clusterInvoker.isAvailable() && clusterInvoker.getRegistryUrl()\r\n+                    .getParameter(PREFER_REGISTRY_KEY, false)) {\r\n+                return clusterInvoker.invoke(invocation);\r\n+            }\r\n+        }\r\n+\r\n+        // providers in the registry with the same zone\r\n+        String zone = invocation.getAttachment(REGISTRY_ZONE);\r\n+        if (StringUtils.isNotEmpty(zone)) {\r\n+            for (Invoker<T> invoker : invokers) {\r\n+                ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+                if (clusterInvoker.isAvailable() && zone.equals(clusterInvoker.getRegistryUrl().getParameter(PREFER_REGISTRY_WITH_ZONE_KEY))) {\r\n+                    return clusterInvoker.invoke(invocation);\r\n+                }\r\n+            }\r\n+            String force = invocation.getAttachment(REGISTRY_ZONE_FORCE);\r\n+            if (StringUtils.isNotEmpty(force) && \"true\".equalsIgnoreCase(force)) {\r\n+                throw new IllegalStateException(\"No registry instance in zone or no available providers in the registry, zone: \"\r\n+                        + zone\r\n+                        + \", registries: \" + invokers.stream().map(invoker -> ((MockClusterInvoker<T>) invoker).getRegistryUrl().toString()).collect(Collectors.joining(\",\")));\r\n+            }\r\n+        }\r\n+\r\n+\r\n+        // load balance among all registries, with registry weight count in.\r\n+        Invoker<T> balancedInvoker = select(loadBalanceAmongRegistries, invocation, invokers, null);\r\n+        if (balancedInvoker.isAvailable()) {\r\n+            return balancedInvoker.invoke(invocation);\r\n+        }\r\n+\r\n+        // If none of the invokers has a preferred signal or is picked by the loadbalancer, pick the first one available.\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            ClusterInvoker<T> clusterInvoker = (ClusterInvoker<T>) invoker;\r\n+            if (clusterInvoker.isAvailable()) {\r\n+                return clusterInvoker.invoke(invocation);\r\n+            }\r\n+        }\r\n+\r\n+        //if none available,just pick one\r\n+        return invokers.get(0).invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected List<Invoker<T>> list(Invocation invocation) throws RpcException {\r\n+        List<Invoker<T>> invokers = super.list(invocation);\r\n+\r\n+        if (null == invokers || invokers.size() < 2) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        List<Invoker<T>> interfaceInvokers = new ArrayList<>();\r\n+        List<Invoker<T>> serviceInvokers = new ArrayList<>();\r\n+        boolean addressChanged = false;\r\n+        for (Invoker<T> invoker : invokers) {\r\n+            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\r\n+            if (migrationClusterInvoker.isServiceInvoker()) {\r\n+                serviceInvokers.add(invoker);\r\n+            } else {\r\n+                interfaceInvokers.add(invoker);\r\n+            }\r\n+\r\n+            if (migrationClusterInvoker.invokersChanged().compareAndSet(true, false)) {\r\n+                addressChanged = true;\r\n+            }\r\n+        }\r\n+\r\n+        if (serviceInvokers.isEmpty() || interfaceInvokers.isEmpty()) {\r\n+            return invokers;\r\n+        }\r\n+\r\n+        MigrationRule rule = null;\r\n+        for (Invoker<T> invoker : serviceInvokers) {\r\n+            MigrationClusterInvoker migrationClusterInvoker = (MigrationClusterInvoker) invoker;\r\n+\r\n+            if (rule == null) {\r\n+                rule = migrationClusterInvoker.getMigrationRule();\r\n+                continue;\r\n+            }\r\n+\r\n+            // inconsistency rule\r\n+            if (!rule.equals(migrationClusterInvoker.getMigrationRule())) {\r\n+                rule = MigrationRule.queryRule();\r\n+                break;\r\n+            }\r\n+        }\r\n+\r\n+        MigrationStep step = rule.getStep();\r\n+\r\n+        switch (step) {\r\n+            case FORCE_INTERFACE:\r\n+                clusterRefresh(addressChanged, interfaceInvokers);\r\n+                clusterDestroy(addressChanged, serviceInvokers, true);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is FORCE_INTERFACE\");\r\n+                }\r\n+                return interfaceInvokers;\r\n+\r\n+            case APPLICATION_FIRST:\r\n+                clusterRefresh(addressChanged, serviceInvokers);\r\n+                clusterRefresh(addressChanged, interfaceInvokers);\r\n+\r\n+                boolean serviceAvailable = !serviceInvokers.isEmpty();\r\n+                if (serviceAvailable) {\r\n+                    if (shouldMigrate(addressChanged, serviceInvokers, interfaceInvokers)) {\r\n+                        if (logger.isDebugEnabled()) {\r\n+                            logger.debug(\"step is APPLICATION_FIRST shouldMigrate true get serviceInvokers\");\r\n+                        }\r\n+                        return serviceInvokers;\r\n+                    }\r\n+                }\r\n+\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is APPLICATION_FIRST \" + (serviceInvokers.isEmpty() ? \"serviceInvokers is empty\" : \"shouldMigrate false\") + \" get interfaceInvokers\");\r\n+                }\r\n+\r\n+                return interfaceInvokers;\r\n+\r\n+            case FORCE_APPLICATION:\r\n+                clusterRefresh(addressChanged, serviceInvokers);\r\n+                clusterDestroy(addressChanged, interfaceInvokers, true);\r\n+\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"step is FORCE_APPLICATION\");\r\n+                }\r\n+\r\n+                return serviceInvokers;\r\n+        }\r\n+\r\n+        throw new UnsupportedOperationException(rule.getStep().name());\r\n+    }\r\n+\r\n+\r\n+    private boolean shouldMigrate(boolean addressChanged, List<Invoker<T>> serviceInvokers, List<Invoker<T>> interfaceInvokers) {\r\n+        Set<MigrationClusterComparator> detectors = ExtensionLoader.getExtensionLoader(MigrationClusterComparator.class).getSupportedExtensionInstances();\r\n+        if (detectors != null && !detectors.isEmpty()) {\r\n+            return detectors.stream().allMatch(s -> s.shouldMigrate(interfaceInvokers, serviceInvokers));\r\n+        }\r\n+\r\n+        // check application level provider available.\r\n+        List<Invoker<T>> availableServiceInvokers = serviceInvokers.stream().filter(s -> s.isAvailable()).collect(Collectors.toList());\r\n+        return !availableServiceInvokers.isEmpty();\r\n+    }\r\n+\r\n+    private void clusterDestroy(boolean addressChanged, List<Invoker<T>> invokers, boolean destroySub) {\r\n+        if (addressChanged) {\r\n+            invokers.forEach(s -> {\r\n+                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\r\n+                if (invoker.isServiceInvoker()) {\r\n+                    invoker.discardServiceDiscoveryInvokerAddress(invoker);\r\n+                    if (destroySub) {\r\n+                        invoker.destroyServiceDiscoveryInvoker(invoker);\r\n+                    }\r\n+                } else {\r\n+                    invoker.discardInterfaceInvokerAddress(invoker);\r\n+                    if (destroySub) {\r\n+                        invoker.destroyInterfaceInvoker(invoker);\r\n+                    }\r\n+                }\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n+    private void clusterRefresh(boolean addressChanged, List<Invoker<T>> invokers) {\r\n+        if (addressChanged) {\r\n+            invokers.forEach(s -> {\r\n+                MigrationClusterInvoker invoker = (MigrationClusterInvoker) s;\r\n+                if (invoker.isServiceInvoker()) {\r\n+                    invoker.refreshServiceDiscoveryInvoker();\r\n+                } else {\r\n+                    invoker.refreshInterfaceInvoker();\r\n+                }\r\n+            });\r\n+        }\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java", "source2": "org/apache/dubbo/rpc/cluster/support/wrapper/AbstractCluster.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,132 +1,132 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.cluster.support.wrapper;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.cluster.Cluster;\n-import org.apache.dubbo.rpc.cluster.Directory;\n-import org.apache.dubbo.rpc.cluster.LoadBalance;\n-import org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor;\n-import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\n-\n-import java.util.List;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_INTERCEPTOR_KEY;\n-\n-public abstract class AbstractCluster implements Cluster {\n-\n-    private <T> Invoker<T> buildClusterInterceptors(AbstractClusterInvoker<T> clusterInvoker, String key) {\n-        AbstractClusterInvoker<T> last = clusterInvoker;\n-        List<ClusterInterceptor> interceptors = ExtensionLoader.getExtensionLoader(ClusterInterceptor.class).getActivateExtension(clusterInvoker.getUrl(), key);\n-\n-        if (!interceptors.isEmpty()) {\n-            for (int i = interceptors.size() - 1; i >= 0; i--) {\n-                final ClusterInterceptor interceptor = interceptors.get(i);\n-                final AbstractClusterInvoker<T> next = last;\n-                last = new InterceptorInvokerNode<>(clusterInvoker, interceptor, next);\n-            }\n-        }\n-        return last;\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> join(Directory<T> directory) throws RpcException {\n-        return buildClusterInterceptors(doJoin(directory), directory.getUrl().getParameter(REFERENCE_INTERCEPTOR_KEY));\n-    }\n-\n-    protected abstract <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException;\n-\n-    protected class InterceptorInvokerNode<T> extends AbstractClusterInvoker<T> {\n-\n-        private AbstractClusterInvoker<T> clusterInvoker;\n-        private ClusterInterceptor interceptor;\n-        private AbstractClusterInvoker<T> next;\n-\n-        public InterceptorInvokerNode(AbstractClusterInvoker<T> clusterInvoker,\n-                                      ClusterInterceptor interceptor,\n-                                      AbstractClusterInvoker<T> next) {\n-            this.clusterInvoker = clusterInvoker;\n-            this.interceptor = interceptor;\n-            this.next = next;\n-        }\n-\n-        @Override\n-        public Class<T> getInterface() {\n-            return clusterInvoker.getInterface();\n-        }\n-\n-        @Override\n-        public URL getUrl() {\n-            return clusterInvoker.getUrl();\n-        }\n-\n-        @Override\n-        public boolean isAvailable() {\n-            return clusterInvoker.isAvailable();\n-        }\n-\n-        @Override\n-        public Result invoke(Invocation invocation) throws RpcException {\n-            Result asyncResult;\n-            try {\n-                interceptor.before(next, invocation);\n-                asyncResult = interceptor.intercept(next, invocation);\n-            } catch (Exception e) {\n-                // onError callback\n-                if (interceptor instanceof ClusterInterceptor.Listener) {\n-                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\n-                    listener.onError(e, clusterInvoker, invocation);\n-                }\n-                throw e;\n-            } finally {\n-                interceptor.after(next, invocation);\n-            }\n-            return asyncResult.whenCompleteWithContext((r, t) -> {\n-                // onResponse callback\n-                if (interceptor instanceof ClusterInterceptor.Listener) {\n-                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\n-                    if (t == null) {\n-                        listener.onMessage(r, clusterInvoker, invocation);\n-                    } else {\n-                        listener.onError(t, clusterInvoker, invocation);\n-                    }\n-                }\n-            });\n-        }\n-\n-        @Override\n-        public void destroy() {\n-            clusterInvoker.destroy();\n-        }\n-\n-        @Override\n-        public String toString() {\n-            return clusterInvoker.toString();\n-        }\n-\n-        @Override\n-        protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\n-            // The only purpose is to build an interceptor chain, so the cluster related logic doesn't matter.\n-            return null;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.cluster.support.wrapper;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.cluster.Cluster;\r\n+import org.apache.dubbo.rpc.cluster.Directory;\r\n+import org.apache.dubbo.rpc.cluster.LoadBalance;\r\n+import org.apache.dubbo.rpc.cluster.interceptor.ClusterInterceptor;\r\n+import org.apache.dubbo.rpc.cluster.support.AbstractClusterInvoker;\r\n+\r\n+import java.util.List;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REFERENCE_INTERCEPTOR_KEY;\r\n+\r\n+public abstract class AbstractCluster implements Cluster {\r\n+\r\n+    private <T> Invoker<T> buildClusterInterceptors(AbstractClusterInvoker<T> clusterInvoker, String key) {\r\n+        AbstractClusterInvoker<T> last = clusterInvoker;\r\n+        List<ClusterInterceptor> interceptors = ExtensionLoader.getExtensionLoader(ClusterInterceptor.class).getActivateExtension(clusterInvoker.getUrl(), key);\r\n+\r\n+        if (!interceptors.isEmpty()) {\r\n+            for (int i = interceptors.size() - 1; i >= 0; i--) {\r\n+                final ClusterInterceptor interceptor = interceptors.get(i);\r\n+                final AbstractClusterInvoker<T> next = last;\r\n+                last = new InterceptorInvokerNode<>(clusterInvoker, interceptor, next);\r\n+            }\r\n+        }\r\n+        return last;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> join(Directory<T> directory) throws RpcException {\r\n+        return buildClusterInterceptors(doJoin(directory), directory.getUrl().getParameter(REFERENCE_INTERCEPTOR_KEY));\r\n+    }\r\n+\r\n+    protected abstract <T> AbstractClusterInvoker<T> doJoin(Directory<T> directory) throws RpcException;\r\n+\r\n+    protected class InterceptorInvokerNode<T> extends AbstractClusterInvoker<T> {\r\n+\r\n+        private AbstractClusterInvoker<T> clusterInvoker;\r\n+        private ClusterInterceptor interceptor;\r\n+        private AbstractClusterInvoker<T> next;\r\n+\r\n+        public InterceptorInvokerNode(AbstractClusterInvoker<T> clusterInvoker,\r\n+                                      ClusterInterceptor interceptor,\r\n+                                      AbstractClusterInvoker<T> next) {\r\n+            this.clusterInvoker = clusterInvoker;\r\n+            this.interceptor = interceptor;\r\n+            this.next = next;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Class<T> getInterface() {\r\n+            return clusterInvoker.getInterface();\r\n+        }\r\n+\r\n+        @Override\r\n+        public URL getUrl() {\r\n+            return clusterInvoker.getUrl();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isAvailable() {\r\n+            return clusterInvoker.isAvailable();\r\n+        }\r\n+\r\n+        @Override\r\n+        public Result invoke(Invocation invocation) throws RpcException {\r\n+            Result asyncResult;\r\n+            try {\r\n+                interceptor.before(next, invocation);\r\n+                asyncResult = interceptor.intercept(next, invocation);\r\n+            } catch (Exception e) {\r\n+                // onError callback\r\n+                if (interceptor instanceof ClusterInterceptor.Listener) {\r\n+                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\r\n+                    listener.onError(e, clusterInvoker, invocation);\r\n+                }\r\n+                throw e;\r\n+            } finally {\r\n+                interceptor.after(next, invocation);\r\n+            }\r\n+            return asyncResult.whenCompleteWithContext((r, t) -> {\r\n+                // onResponse callback\r\n+                if (interceptor instanceof ClusterInterceptor.Listener) {\r\n+                    ClusterInterceptor.Listener listener = (ClusterInterceptor.Listener) interceptor;\r\n+                    if (t == null) {\r\n+                        listener.onMessage(r, clusterInvoker, invocation);\r\n+                    } else {\r\n+                        listener.onError(t, clusterInvoker, invocation);\r\n+                    }\r\n+                }\r\n+            });\r\n+        }\r\n+\r\n+        @Override\r\n+        public void destroy() {\r\n+            clusterInvoker.destroy();\r\n+        }\r\n+\r\n+        @Override\r\n+        public String toString() {\r\n+            return clusterInvoker.toString();\r\n+        }\r\n+\r\n+        @Override\r\n+        protected Result doInvoke(Invocation invocation, List<Invoker<T>> invokers, LoadBalance loadbalance) throws RpcException {\r\n+            // The only purpose is to build an interceptor chain, so the cluster related logic doesn't matter.\r\n+            return null;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/AccessLogFilter.java", "source2": "org/apache/dubbo/rpc/filter/AccessLogFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,194 +1,194 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NamedThreadFactory;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.support.AccessLogData;\n-\n-import java.io.File;\n-import java.io.FileWriter;\n-import java.io.IOException;\n-import java.text.DateFormat;\n-import java.text.SimpleDateFormat;\n-import java.util.Date;\n-import java.util.Iterator;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.Executors;\n-import java.util.concurrent.ScheduledExecutorService;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\n-import static org.apache.dubbo.rpc.Constants.ACCESS_LOG_KEY;\n-\n-/**\n- * Record access log for the service.\n- * <p>\n- * Logger key is <code><b>dubbo.accesslog</b></code>.\n- * In order to configure access log appear in the specified appender only, additivity need to be configured in log4j's\n- * config file, for example:\n- * <code>\n- * <pre>\n- * &lt;logger name=\"<b>dubbo.accesslog</b>\" <font color=\"red\">additivity=\"false\"</font>&gt;\n- *    &lt;level value=\"info\" /&gt;\n- *    &lt;appender-ref ref=\"foo\" /&gt;\n- * &lt;/logger&gt;\n- * </pre></code>\n- */\n-@Activate(group = PROVIDER, value = ACCESS_LOG_KEY)\n-public class AccessLogFilter implements Filter {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(AccessLogFilter.class);\n-\n-    private static final String LOG_KEY = \"dubbo.accesslog\";\n-\n-    private static final int LOG_MAX_BUFFER = 5000;\n-\n-    private static final long LOG_OUTPUT_INTERVAL = 5000;\n-\n-    private static final String FILE_DATE_FORMAT = \"yyyyMMdd\";\n-\n-    // It's safe to declare it as singleton since it runs on single thread only\n-    private static final DateFormat FILE_NAME_FORMATTER = new SimpleDateFormat(FILE_DATE_FORMAT);\n-\n-    private static final Map<String, Set<AccessLogData>> LOG_ENTRIES = new ConcurrentHashMap<>();\n-\n-    private static final ScheduledExecutorService LOG_SCHEDULED = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-Access-Log\", true));\n-\n-    /**\n-     * Default constructor initialize demon thread for writing into access log file with names with access log key\n-     * defined in url <b>accesslog</b>\n-     */\n-    public AccessLogFilter() {\n-        LOG_SCHEDULED.scheduleWithFixedDelay(this::writeLogToFile, LOG_OUTPUT_INTERVAL, LOG_OUTPUT_INTERVAL, TimeUnit.MILLISECONDS);\n-    }\n-\n-    /**\n-     * This method logs the access log for service method invocation call.\n-     *\n-     * @param invoker service\n-     * @param inv     Invocation service method.\n-     * @return Result from service method.\n-     * @throws RpcException\n-     */\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException {\n-        try {\n-            String accessLogKey = invoker.getUrl().getParameter(ACCESS_LOG_KEY);\n-            if (ConfigUtils.isNotEmpty(accessLogKey)) {\n-                AccessLogData logData = AccessLogData.newLogData(); \n-                logData.buildAccessLogData(invoker, inv);\n-                log(accessLogKey, logData);\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(\"Exception in AccessLogFilter of service(\" + invoker + \" -> \" + inv + \")\", t);\n-        }\n-        return invoker.invoke(inv);\n-    }\n-\n-    private void log(String accessLog, AccessLogData accessLogData) {\n-        Set<AccessLogData> logSet = LOG_ENTRIES.computeIfAbsent(accessLog, k -> new ConcurrentHashSet<>());\n-\n-        if (logSet.size() < LOG_MAX_BUFFER) {\n-            logSet.add(accessLogData);\n-        } else {\n-            logger.warn(\"AccessLog buffer is full. Do a force writing to file to clear buffer.\");\n-            //just write current logSet to file.\n-            writeLogSetToFile(accessLog, logSet);\n-            //after force writing, add accessLogData to current logSet\n-            logSet.add(accessLogData);\n-        }\n-    }\n-\n-    private void writeLogSetToFile(String accessLog, Set<AccessLogData> logSet) {\n-        try {\n-            if (ConfigUtils.isDefault(accessLog)) {\n-                processWithServiceLogger(logSet);\n-            } else {\n-                File file = new File(accessLog);\n-                createIfLogDirAbsent(file);\n-                if (logger.isDebugEnabled()) {\n-                    logger.debug(\"Append log to \" + accessLog);\n-                }\n-                renameFile(file);\n-                processWithAccessKeyLogger(logSet, file);\n-            }\n-        } catch (Exception e) {\n-            logger.error(e.getMessage(), e);\n-        }\n-    }\n-\n-    private void writeLogToFile() {\n-        if (!LOG_ENTRIES.isEmpty()) {\n-            for (Map.Entry<String, Set<AccessLogData>> entry : LOG_ENTRIES.entrySet()) {\n-                String accessLog = entry.getKey();\n-                Set<AccessLogData> logSet = entry.getValue();\n-                writeLogSetToFile(accessLog, logSet);\n-            }\n-        }\n-    }\n-\n-    private void processWithAccessKeyLogger(Set<AccessLogData> logSet, File file) throws IOException {\n-        try (FileWriter writer = new FileWriter(file, true)) {\n-            for (Iterator<AccessLogData> iterator = logSet.iterator();\n-                 iterator.hasNext();\n-                 iterator.remove()) {\n-                writer.write(iterator.next().getLogMessage());\n-                writer.write(System.getProperty(\"line.separator\"));\n-            }\n-            writer.flush();\n-        }\n-    }\n-\n-    private void processWithServiceLogger(Set<AccessLogData> logSet) {\n-        for (Iterator<AccessLogData> iterator = logSet.iterator();\n-             iterator.hasNext();\n-             iterator.remove()) {\n-            AccessLogData logData = iterator.next();\n-            LoggerFactory.getLogger(LOG_KEY + \".\" + logData.getServiceName()).info(logData.getLogMessage());\n-        }\n-    }\n-\n-    private void createIfLogDirAbsent(File file) {\n-        File dir = file.getParentFile();\n-        if (null != dir && !dir.exists()) {\n-            dir.mkdirs();\n-        }\n-    }\n-\n-    private void renameFile(File file) {\n-        if (file.exists()) {\n-            String now = FILE_NAME_FORMATTER.format(new Date());\n-            String last = FILE_NAME_FORMATTER.format(new Date(file.lastModified()));\n-            if (!now.equals(last)) {\n-                File archive = new File(file.getAbsolutePath() + \".\" + last);\n-                file.renameTo(archive);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NamedThreadFactory;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.support.AccessLogData;\r\n+\r\n+import java.io.File;\r\n+import java.io.FileWriter;\r\n+import java.io.IOException;\r\n+import java.text.DateFormat;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Date;\r\n+import java.util.Iterator;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.Executors;\r\n+import java.util.concurrent.ScheduledExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\r\n+import static org.apache.dubbo.rpc.Constants.ACCESS_LOG_KEY;\r\n+\r\n+/**\r\n+ * Record access log for the service.\r\n+ * <p>\r\n+ * Logger key is <code><b>dubbo.accesslog</b></code>.\r\n+ * In order to configure access log appear in the specified appender only, additivity need to be configured in log4j's\r\n+ * config file, for example:\r\n+ * <code>\r\n+ * <pre>\r\n+ * &lt;logger name=\"<b>dubbo.accesslog</b>\" <font color=\"red\">additivity=\"false\"</font>&gt;\r\n+ *    &lt;level value=\"info\" /&gt;\r\n+ *    &lt;appender-ref ref=\"foo\" /&gt;\r\n+ * &lt;/logger&gt;\r\n+ * </pre></code>\r\n+ */\r\n+@Activate(group = PROVIDER, value = ACCESS_LOG_KEY)\r\n+public class AccessLogFilter implements Filter {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(AccessLogFilter.class);\r\n+\r\n+    private static final String LOG_KEY = \"dubbo.accesslog\";\r\n+\r\n+    private static final int LOG_MAX_BUFFER = 5000;\r\n+\r\n+    private static final long LOG_OUTPUT_INTERVAL = 5000;\r\n+\r\n+    private static final String FILE_DATE_FORMAT = \"yyyyMMdd\";\r\n+\r\n+    // It's safe to declare it as singleton since it runs on single thread only\r\n+    private static final DateFormat FILE_NAME_FORMATTER = new SimpleDateFormat(FILE_DATE_FORMAT);\r\n+\r\n+    private static final Map<String, Set<AccessLogData>> LOG_ENTRIES = new ConcurrentHashMap<>();\r\n+\r\n+    private static final ScheduledExecutorService LOG_SCHEDULED = Executors.newSingleThreadScheduledExecutor(new NamedThreadFactory(\"Dubbo-Access-Log\", true));\r\n+\r\n+    /**\r\n+     * Default constructor initialize demon thread for writing into access log file with names with access log key\r\n+     * defined in url <b>accesslog</b>\r\n+     */\r\n+    public AccessLogFilter() {\r\n+        LOG_SCHEDULED.scheduleWithFixedDelay(this::writeLogToFile, LOG_OUTPUT_INTERVAL, LOG_OUTPUT_INTERVAL, TimeUnit.MILLISECONDS);\r\n+    }\r\n+\r\n+    /**\r\n+     * This method logs the access log for service method invocation call.\r\n+     *\r\n+     * @param invoker service\r\n+     * @param inv     Invocation service method.\r\n+     * @return Result from service method.\r\n+     * @throws RpcException\r\n+     */\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException {\r\n+        try {\r\n+            String accessLogKey = invoker.getUrl().getParameter(ACCESS_LOG_KEY);\r\n+            if (ConfigUtils.isNotEmpty(accessLogKey)) {\r\n+                AccessLogData logData = AccessLogData.newLogData(); \r\n+                logData.buildAccessLogData(invoker, inv);\r\n+                log(accessLogKey, logData);\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(\"Exception in AccessLogFilter of service(\" + invoker + \" -> \" + inv + \")\", t);\r\n+        }\r\n+        return invoker.invoke(inv);\r\n+    }\r\n+\r\n+    private void log(String accessLog, AccessLogData accessLogData) {\r\n+        Set<AccessLogData> logSet = LOG_ENTRIES.computeIfAbsent(accessLog, k -> new ConcurrentHashSet<>());\r\n+\r\n+        if (logSet.size() < LOG_MAX_BUFFER) {\r\n+            logSet.add(accessLogData);\r\n+        } else {\r\n+            logger.warn(\"AccessLog buffer is full. Do a force writing to file to clear buffer.\");\r\n+            //just write current logSet to file.\r\n+            writeLogSetToFile(accessLog, logSet);\r\n+            //after force writing, add accessLogData to current logSet\r\n+            logSet.add(accessLogData);\r\n+        }\r\n+    }\r\n+\r\n+    private void writeLogSetToFile(String accessLog, Set<AccessLogData> logSet) {\r\n+        try {\r\n+            if (ConfigUtils.isDefault(accessLog)) {\r\n+                processWithServiceLogger(logSet);\r\n+            } else {\r\n+                File file = new File(accessLog);\r\n+                createIfLogDirAbsent(file);\r\n+                if (logger.isDebugEnabled()) {\r\n+                    logger.debug(\"Append log to \" + accessLog);\r\n+                }\r\n+                renameFile(file);\r\n+                processWithAccessKeyLogger(logSet, file);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            logger.error(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private void writeLogToFile() {\r\n+        if (!LOG_ENTRIES.isEmpty()) {\r\n+            for (Map.Entry<String, Set<AccessLogData>> entry : LOG_ENTRIES.entrySet()) {\r\n+                String accessLog = entry.getKey();\r\n+                Set<AccessLogData> logSet = entry.getValue();\r\n+                writeLogSetToFile(accessLog, logSet);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void processWithAccessKeyLogger(Set<AccessLogData> logSet, File file) throws IOException {\r\n+        try (FileWriter writer = new FileWriter(file, true)) {\r\n+            for (Iterator<AccessLogData> iterator = logSet.iterator();\r\n+                 iterator.hasNext();\r\n+                 iterator.remove()) {\r\n+                writer.write(iterator.next().getLogMessage());\r\n+                writer.write(System.getProperty(\"line.separator\"));\r\n+            }\r\n+            writer.flush();\r\n+        }\r\n+    }\r\n+\r\n+    private void processWithServiceLogger(Set<AccessLogData> logSet) {\r\n+        for (Iterator<AccessLogData> iterator = logSet.iterator();\r\n+             iterator.hasNext();\r\n+             iterator.remove()) {\r\n+            AccessLogData logData = iterator.next();\r\n+            LoggerFactory.getLogger(LOG_KEY + \".\" + logData.getServiceName()).info(logData.getLogMessage());\r\n+        }\r\n+    }\r\n+\r\n+    private void createIfLogDirAbsent(File file) {\r\n+        File dir = file.getParentFile();\r\n+        if (null != dir && !dir.exists()) {\r\n+            dir.mkdirs();\r\n+        }\r\n+    }\r\n+\r\n+    private void renameFile(File file) {\r\n+        if (file.exists()) {\r\n+            String now = FILE_NAME_FORMATTER.format(new Date());\r\n+            String last = FILE_NAME_FORMATTER.format(new Date(file.lastModified()));\r\n+            if (!now.equals(last)) {\r\n+                File archive = new File(file.getAbsolutePath() + \".\" + last);\r\n+                file.renameTo(archive);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/ConsumerContextFilter.java", "source2": "org/apache/dubbo/rpc/filter/ConsumerContextFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,72 +1,72 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.TimeoutCountDown;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\n-\n-/**\n- * ConsumerContextFilter set current RpcContext with invoker,invocation, local host, remote host and port\n- * for consumer invoker.It does it to make the requires info available to execution thread's RpcContext.\n- *\n- * @see org.apache.dubbo.rpc.Filter\n- * @see RpcContext\n- */\n-@Activate(group = CONSUMER, order = -10000)\n-public class ConsumerContextFilter implements Filter {\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-        RpcContext context = RpcContext.getContext();\n-        context.setInvoker(invoker)\n-                .setInvocation(invocation)\n-                .setLocalAddress(NetUtils.getLocalHost(), 0)\n-                .setRemoteAddress(invoker.getUrl().getHost(), invoker.getUrl().getPort())\n-                .setRemoteApplicationName(invoker.getUrl().getParameter(REMOTE_APPLICATION_KEY))\n-                .setAttachment(REMOTE_APPLICATION_KEY, invoker.getUrl().getParameter(APPLICATION_KEY));\n-        if (invocation instanceof RpcInvocation) {\n-            ((RpcInvocation) invocation).setInvoker(invoker);\n-        }\n-\n-        // pass default timeout set by end user (ReferenceConfig)\n-        Object countDown = context.get(TIME_COUNTDOWN_KEY);\n-        if (countDown != null) {\n-            TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countDown;\n-            if (timeoutCountDown.isExpired()) {\n-                return AsyncRpcResult.newDefaultAsyncResult(new RpcException(RpcException.TIMEOUT_TERMINATE,\n-                        \"No time left for making the following call: \" + invocation.getServiceName() + \".\"\n-                                + invocation.getMethodName() + \", terminate directly.\"), invocation);\n-            }\n-        }\n-        return invoker.invoke(invocation);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.TimeoutCountDown;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\r\n+\r\n+/**\r\n+ * ConsumerContextFilter set current RpcContext with invoker,invocation, local host, remote host and port\r\n+ * for consumer invoker.It does it to make the requires info available to execution thread's RpcContext.\r\n+ *\r\n+ * @see org.apache.dubbo.rpc.Filter\r\n+ * @see RpcContext\r\n+ */\r\n+@Activate(group = CONSUMER, order = -10000)\r\n+public class ConsumerContextFilter implements Filter {\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setInvoker(invoker)\r\n+                .setInvocation(invocation)\r\n+                .setLocalAddress(NetUtils.getLocalHost(), 0)\r\n+                .setRemoteAddress(invoker.getUrl().getHost(), invoker.getUrl().getPort())\r\n+                .setRemoteApplicationName(invoker.getUrl().getParameter(REMOTE_APPLICATION_KEY))\r\n+                .setAttachment(REMOTE_APPLICATION_KEY, invoker.getUrl().getParameter(APPLICATION_KEY));\r\n+        if (invocation instanceof RpcInvocation) {\r\n+            ((RpcInvocation) invocation).setInvoker(invoker);\r\n+        }\r\n+\r\n+        // pass default timeout set by end user (ReferenceConfig)\r\n+        Object countDown = context.get(TIME_COUNTDOWN_KEY);\r\n+        if (countDown != null) {\r\n+            TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countDown;\r\n+            if (timeoutCountDown.isExpired()) {\r\n+                return AsyncRpcResult.newDefaultAsyncResult(new RpcException(RpcException.TIMEOUT_TERMINATE,\r\n+                        \"No time left for making the following call: \" + invocation.getServiceName() + \".\"\r\n+                                + invocation.getMethodName() + \", terminate directly.\"), invocation);\r\n+            }\r\n+        }\r\n+        return invoker.invoke(invocation);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/ContextFilter.java", "source2": "org/apache/dubbo/rpc/filter/ContextFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,148 +1,148 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.TimeoutCountDown;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\n-import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\n-import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-\n-\n-/**\n- * ContextFilter set the provider RpcContext with invoker, invocation, local port it is using and host for\n- * current execution thread.\n- *\n- * @see RpcContext\n- */\n-@Activate(group = PROVIDER, order = -10000)\n-public class ContextFilter implements Filter, Filter.Listener {\n-\n-    private static final String TAG_KEY = \"dubbo.tag\";\n-\n-    private static final Set<String> UNLOADING_KEYS;\n-\n-    static {\n-        UNLOADING_KEYS = new HashSet<>(128);\n-        UNLOADING_KEYS.add(PATH_KEY);\n-        UNLOADING_KEYS.add(INTERFACE_KEY);\n-        UNLOADING_KEYS.add(GROUP_KEY);\n-        UNLOADING_KEYS.add(VERSION_KEY);\n-        UNLOADING_KEYS.add(DUBBO_VERSION_KEY);\n-        UNLOADING_KEYS.add(TOKEN_KEY);\n-        UNLOADING_KEYS.add(TIMEOUT_KEY);\n-        UNLOADING_KEYS.add(TIMEOUT_ATTACHMENT_KEY);\n-\n-        // Remove async property to avoid being passed to the following invoke chain.\n-        UNLOADING_KEYS.add(ASYNC_KEY);\n-        UNLOADING_KEYS.add(TAG_KEY);\n-        UNLOADING_KEYS.add(FORCE_USE_TAG);\n-    }\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-        Map<String, Object> attachments = invocation.getObjectAttachments();\n-        if (attachments != null) {\n-            Map<String, Object> newAttach = new HashMap<>(attachments.size());\n-            for (Map.Entry<String, Object> entry : attachments.entrySet()) {\n-                String key = entry.getKey();\n-                if (!UNLOADING_KEYS.contains(key)) {\n-                    newAttach.put(key, entry.getValue());\n-                }\n-            }\n-            attachments = newAttach;\n-        }\n-\n-        RpcContext context = RpcContext.getContext();\n-        context.setInvoker(invoker)\n-                .setInvocation(invocation)\n-//                .setAttachments(attachments)  // merged from dubbox\n-                .setLocalAddress(invoker.getUrl().getHost(), invoker.getUrl().getPort());\n-        String remoteApplication = (String) invocation.getAttachment(REMOTE_APPLICATION_KEY);\n-        if (StringUtils.isNotEmpty(remoteApplication)) {\n-            context.setRemoteApplicationName(remoteApplication);\n-        } else {\n-            context.setRemoteApplicationName((String) context.getAttachment(REMOTE_APPLICATION_KEY));\n-        }\n-\n-        long timeout = RpcUtils.getTimeout(invocation, -1);\n-        if (timeout != -1) {\n-            context.set(TIME_COUNTDOWN_KEY, TimeoutCountDown.newCountDown(timeout, TimeUnit.MILLISECONDS));\n-        }\n-\n-        // merged from dubbox\n-        // we may already added some attachments into RpcContext before this filter (e.g. in rest protocol)\n-        if (attachments != null) {\n-            if (context.getObjectAttachments() != null) {\n-                context.getObjectAttachments().putAll(attachments);\n-            } else {\n-                context.setObjectAttachments(attachments);\n-            }\n-        }\n-\n-        if (invocation instanceof RpcInvocation) {\n-            ((RpcInvocation) invocation).setInvoker(invoker);\n-        }\n-\n-        try {\n-            context.clearAfterEachInvoke(false);\n-            return invoker.invoke(invocation);\n-        } finally {\n-            context.clearAfterEachInvoke(true);\n-            // IMPORTANT! For async scenario, we must remove context from current thread, so we always create a new RpcContext for the next invoke for the same thread.\n-            RpcContext.removeContext(true);\n-            RpcContext.removeServerContext();\n-        }\n-    }\n-\n-    @Override\n-    public void onResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) {\n-        // pass attachments to result\n-        appResponse.addObjectAttachments(RpcContext.getServerContext().getObjectAttachments());\n-    }\n-\n-    @Override\n-    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.TimeoutCountDown;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.REMOTE_APPLICATION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.FORCE_USE_TAG;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+\r\n+\r\n+/**\r\n+ * ContextFilter set the provider RpcContext with invoker, invocation, local port it is using and host for\r\n+ * current execution thread.\r\n+ *\r\n+ * @see RpcContext\r\n+ */\r\n+@Activate(group = PROVIDER, order = -10000)\r\n+public class ContextFilter implements Filter, Filter.Listener {\r\n+\r\n+    private static final String TAG_KEY = \"dubbo.tag\";\r\n+\r\n+    private static final Set<String> UNLOADING_KEYS;\r\n+\r\n+    static {\r\n+        UNLOADING_KEYS = new HashSet<>(128);\r\n+        UNLOADING_KEYS.add(PATH_KEY);\r\n+        UNLOADING_KEYS.add(INTERFACE_KEY);\r\n+        UNLOADING_KEYS.add(GROUP_KEY);\r\n+        UNLOADING_KEYS.add(VERSION_KEY);\r\n+        UNLOADING_KEYS.add(DUBBO_VERSION_KEY);\r\n+        UNLOADING_KEYS.add(TOKEN_KEY);\r\n+        UNLOADING_KEYS.add(TIMEOUT_KEY);\r\n+        UNLOADING_KEYS.add(TIMEOUT_ATTACHMENT_KEY);\r\n+\r\n+        // Remove async property to avoid being passed to the following invoke chain.\r\n+        UNLOADING_KEYS.add(ASYNC_KEY);\r\n+        UNLOADING_KEYS.add(TAG_KEY);\r\n+        UNLOADING_KEYS.add(FORCE_USE_TAG);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+        Map<String, Object> attachments = invocation.getObjectAttachments();\r\n+        if (attachments != null) {\r\n+            Map<String, Object> newAttach = new HashMap<>(attachments.size());\r\n+            for (Map.Entry<String, Object> entry : attachments.entrySet()) {\r\n+                String key = entry.getKey();\r\n+                if (!UNLOADING_KEYS.contains(key)) {\r\n+                    newAttach.put(key, entry.getValue());\r\n+                }\r\n+            }\r\n+            attachments = newAttach;\r\n+        }\r\n+\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setInvoker(invoker)\r\n+                .setInvocation(invocation)\r\n+//                .setAttachments(attachments)  // merged from dubbox\r\n+                .setLocalAddress(invoker.getUrl().getHost(), invoker.getUrl().getPort());\r\n+        String remoteApplication = (String) invocation.getAttachment(REMOTE_APPLICATION_KEY);\r\n+        if (StringUtils.isNotEmpty(remoteApplication)) {\r\n+            context.setRemoteApplicationName(remoteApplication);\r\n+        } else {\r\n+            context.setRemoteApplicationName((String) context.getAttachment(REMOTE_APPLICATION_KEY));\r\n+        }\r\n+\r\n+        long timeout = RpcUtils.getTimeout(invocation, -1);\r\n+        if (timeout != -1) {\r\n+            context.set(TIME_COUNTDOWN_KEY, TimeoutCountDown.newCountDown(timeout, TimeUnit.MILLISECONDS));\r\n+        }\r\n+\r\n+        // merged from dubbox\r\n+        // we may already added some attachments into RpcContext before this filter (e.g. in rest protocol)\r\n+        if (attachments != null) {\r\n+            if (context.getObjectAttachments() != null) {\r\n+                context.getObjectAttachments().putAll(attachments);\r\n+            } else {\r\n+                context.setObjectAttachments(attachments);\r\n+            }\r\n+        }\r\n+\r\n+        if (invocation instanceof RpcInvocation) {\r\n+            ((RpcInvocation) invocation).setInvoker(invoker);\r\n+        }\r\n+\r\n+        try {\r\n+            context.clearAfterEachInvoke(false);\r\n+            return invoker.invoke(invocation);\r\n+        } finally {\r\n+            context.clearAfterEachInvoke(true);\r\n+            // IMPORTANT! For async scenario, we must remove context from current thread, so we always create a new RpcContext for the next invoke for the same thread.\r\n+            RpcContext.removeContext(true);\r\n+            RpcContext.removeServerContext();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onResponse(Result appResponse, Invoker<?> invoker, Invocation invocation) {\r\n+        // pass attachments to result\r\n+        appResponse.addObjectAttachments(RpcContext.getServerContext().getObjectAttachments());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/GenericFilter.java", "source2": "org/apache/dubbo/rpc/filter/GenericFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,237 +1,237 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter;\n-\n-import org.apache.dubbo.common.beanutil.JavaBeanAccessor;\n-import org.apache.dubbo.common.beanutil.JavaBeanDescriptor;\n-import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;\n-import org.apache.dubbo.common.config.Configuration;\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.io.UnsafeByteArrayInputStream;\n-import org.apache.dubbo.common.io.UnsafeByteArrayOutputStream;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.utils.PojoUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.service.GenericException;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Method;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_NATIVE_JAVA;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_PROTOBUF;\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-/**\n- * GenericInvokerFilter.\n- */\n-@Activate(group = CommonConstants.PROVIDER, order = -20000)\n-public class GenericFilter implements Filter, Filter.Listener {\n-    private static final Logger logger = LoggerFactory.getLogger(GenericFilter.class);\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException {\n-        if ((inv.getMethodName().equals($INVOKE) || inv.getMethodName().equals($INVOKE_ASYNC))\n-                && inv.getArguments() != null\n-                && inv.getArguments().length == 3\n-                && !GenericService.class.isAssignableFrom(invoker.getInterface())) {\n-            String name = ((String) inv.getArguments()[0]).trim();\n-            String[] types = (String[]) inv.getArguments()[1];\n-            Object[] args = (Object[]) inv.getArguments()[2];\n-            try {\n-                Method method = ReflectUtils.findMethodByMethodSignature(invoker.getInterface(), name, types);\n-                Class<?>[] params = method.getParameterTypes();\n-                if (args == null) {\n-                    args = new Object[params.length];\n-                }\n-\n-                if (types == null) {\n-                    types = new String[params.length];\n-                }\n-\n-                if (args.length != types.length) {\n-                    throw new RpcException(\"GenericFilter#invoke args.length != types.length, please check your \"\n-                            + \"params\");\n-                }\n-                String generic = inv.getAttachment(GENERIC_KEY);\n-\n-                if (StringUtils.isBlank(generic)) {\n-                    generic = RpcContext.getContext().getAttachment(GENERIC_KEY);\n-                }\n-\n-                if (StringUtils.isEmpty(generic)\n-                        || ProtocolUtils.isDefaultGenericSerialization(generic)\n-                        || ProtocolUtils.isGenericReturnRawResult(generic)) {\n-                    args = PojoUtils.realize(args, params, method.getGenericParameterTypes());\n-                } else if (ProtocolUtils.isJavaGenericSerialization(generic)) {\n-                    Configuration configuration = ApplicationModel.getEnvironment().getConfiguration();\n-                    if (!configuration.getBoolean(CommonConstants.ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE, false)) {\n-                        String notice = \"Trigger the safety barrier! \" +\n-                                \"Native Java Serializer is not allowed by default.\" +\n-                                \"This means currently maybe being attacking by others. \" +\n-                                \"If you are sure this is a mistake, \" +\n-                                \"please set `\" + CommonConstants.ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE + \"` enable in configuration! \" +\n-                                \"Before doing so, please make sure you have configure JEP290 to prevent serialization attack.\";\n-                        logger.error(notice);\n-                        throw new RpcException(new IllegalStateException(notice));\n-                    }\n-\n-                    for (int i = 0; i < args.length; i++) {\n-                        if (byte[].class == args[i].getClass()) {\n-                            try (UnsafeByteArrayInputStream is = new UnsafeByteArrayInputStream((byte[]) args[i])) {\n-                                args[i] = ExtensionLoader.getExtensionLoader(Serialization.class)\n-                                        .getExtension(GENERIC_SERIALIZATION_NATIVE_JAVA)\n-                                        .deserialize(null, is).readObject();\n-                            } catch (Exception e) {\n-                                throw new RpcException(\"Deserialize argument [\" + (i + 1) + \"] failed.\", e);\n-                            }\n-                        } else {\n-                            throw new RpcException(\n-                                    \"Generic serialization [\" +\n-                                            GENERIC_SERIALIZATION_NATIVE_JAVA +\n-                                            \"] only support message type \" +\n-                                            byte[].class +\n-                                            \" and your message type is \" +\n-                                            args[i].getClass());\n-                        }\n-                    }\n-                } else if (ProtocolUtils.isBeanGenericSerialization(generic)) {\n-                    for (int i = 0; i < args.length; i++) {\n-                        if (args[i] instanceof JavaBeanDescriptor) {\n-                            args[i] = JavaBeanSerializeUtil.deserialize((JavaBeanDescriptor) args[i]);\n-                        } else {\n-                            throw new RpcException(\n-                                    \"Generic serialization [\" +\n-                                            GENERIC_SERIALIZATION_BEAN +\n-                                            \"] only support message type \" +\n-                                            JavaBeanDescriptor.class.getName() +\n-                                            \" and your message type is \" +\n-                                            args[i].getClass().getName());\n-                        }\n-                    }\n-                } else if (ProtocolUtils.isProtobufGenericSerialization(generic)) {\n-                    // as proto3 only accept one protobuf parameter\n-                    if (args.length == 1 && args[0] instanceof String) {\n-                        try (UnsafeByteArrayInputStream is =\n-                                     new UnsafeByteArrayInputStream(((String) args[0]).getBytes())) {\n-                            args[0] = ExtensionLoader.getExtensionLoader(Serialization.class)\n-                                    .getExtension(GENERIC_SERIALIZATION_PROTOBUF)\n-                                    .deserialize(null, is).readObject(method.getParameterTypes()[0]);\n-                        } catch (Exception e) {\n-                            throw new RpcException(\"Deserialize argument failed.\", e);\n-                        }\n-                    } else {\n-                        throw new RpcException(\n-                                \"Generic serialization [\" +\n-                                        GENERIC_SERIALIZATION_PROTOBUF +\n-                                        \"] only support one \" + String.class.getName() +\n-                                        \" argument and your message size is \" +\n-                                        args.length + \" and type is\" +\n-                                        args[0].getClass().getName());\n-                    }\n-                }\n-\n-                RpcInvocation rpcInvocation = new RpcInvocation(method, invoker.getInterface().getName(), invoker.getUrl().getProtocolServiceKey(), args, inv.getObjectAttachments(), inv.getAttributes());\n-                rpcInvocation.setInvoker(inv.getInvoker());\n-                rpcInvocation.setTargetServiceUniqueName(inv.getTargetServiceUniqueName());\n-\n-                return invoker.invoke(rpcInvocation);\n-            } catch (NoSuchMethodException | ClassNotFoundException e) {\n-                throw new RpcException(e.getMessage(), e);\n-            }\n-        }\n-        return invoker.invoke(inv);\n-    }\n-\n-    @Override\n-    public void onResponse(Result appResponse, Invoker<?> invoker, Invocation inv) {\n-        if ((inv.getMethodName().equals($INVOKE) || inv.getMethodName().equals($INVOKE_ASYNC))\n-                && inv.getArguments() != null\n-                && inv.getArguments().length == 3\n-                && !GenericService.class.isAssignableFrom(invoker.getInterface())) {\n-\n-            String generic = inv.getAttachment(GENERIC_KEY);\n-            if (StringUtils.isBlank(generic)) {\n-                generic = RpcContext.getContext().getAttachment(GENERIC_KEY);\n-            }\n-\n-            if (appResponse.hasException()) {\n-                Throwable appException = appResponse.getException();\n-                if (appException instanceof GenericException) {\n-                    GenericException tmp = (GenericException) appException;\n-                    appException = new com.alibaba.dubbo.rpc.service.GenericException(tmp.getExceptionClass(), tmp.getExceptionMessage());\n-                }\n-                if (!(appException instanceof com.alibaba.dubbo.rpc.service.GenericException)) {\n-                    appException = new com.alibaba.dubbo.rpc.service.GenericException(appException);\n-                }\n-                appResponse.setException(appException);\n-            }\n-            if (ProtocolUtils.isJavaGenericSerialization(generic)) {\n-                try {\n-                    UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(512);\n-                    ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(GENERIC_SERIALIZATION_NATIVE_JAVA).serialize(null, os).writeObject(appResponse.getValue());\n-                    appResponse.setValue(os.toByteArray());\n-                } catch (IOException e) {\n-                    throw new RpcException(\n-                            \"Generic serialization [\" +\n-                                    GENERIC_SERIALIZATION_NATIVE_JAVA +\n-                                    \"] serialize result failed.\", e);\n-                }\n-            } else if (ProtocolUtils.isBeanGenericSerialization(generic)) {\n-                appResponse.setValue(JavaBeanSerializeUtil.serialize(appResponse.getValue(), JavaBeanAccessor.METHOD));\n-            } else if (ProtocolUtils.isProtobufGenericSerialization(generic)) {\n-                try {\n-                    UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(512);\n-                    ExtensionLoader.getExtensionLoader(Serialization.class)\n-                            .getExtension(GENERIC_SERIALIZATION_PROTOBUF)\n-                            .serialize(null, os).writeObject(appResponse.getValue());\n-                    appResponse.setValue(os.toString());\n-                } catch (IOException e) {\n-                    throw new RpcException(\"Generic serialization [\" +\n-                            GENERIC_SERIALIZATION_PROTOBUF +\n-                            \"] serialize result failed.\", e);\n-                }\n-            } else if (ProtocolUtils.isGenericReturnRawResult(generic)) {\n-                return;\n-            } else {\n-                appResponse.setValue(PojoUtils.generalize(appResponse.getValue()));\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\n-\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter;\r\n+\r\n+import org.apache.dubbo.common.beanutil.JavaBeanAccessor;\r\n+import org.apache.dubbo.common.beanutil.JavaBeanDescriptor;\r\n+import org.apache.dubbo.common.beanutil.JavaBeanSerializeUtil;\r\n+import org.apache.dubbo.common.config.Configuration;\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.io.UnsafeByteArrayInputStream;\r\n+import org.apache.dubbo.common.io.UnsafeByteArrayOutputStream;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.PojoUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.service.GenericException;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Method;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_NATIVE_JAVA;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_PROTOBUF;\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+/**\r\n+ * GenericInvokerFilter.\r\n+ */\r\n+@Activate(group = CommonConstants.PROVIDER, order = -20000)\r\n+public class GenericFilter implements Filter, Filter.Listener {\r\n+    private static final Logger logger = LoggerFactory.getLogger(GenericFilter.class);\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation inv) throws RpcException {\r\n+        if ((inv.getMethodName().equals($INVOKE) || inv.getMethodName().equals($INVOKE_ASYNC))\r\n+                && inv.getArguments() != null\r\n+                && inv.getArguments().length == 3\r\n+                && !GenericService.class.isAssignableFrom(invoker.getInterface())) {\r\n+            String name = ((String) inv.getArguments()[0]).trim();\r\n+            String[] types = (String[]) inv.getArguments()[1];\r\n+            Object[] args = (Object[]) inv.getArguments()[2];\r\n+            try {\r\n+                Method method = ReflectUtils.findMethodByMethodSignature(invoker.getInterface(), name, types);\r\n+                Class<?>[] params = method.getParameterTypes();\r\n+                if (args == null) {\r\n+                    args = new Object[params.length];\r\n+                }\r\n+\r\n+                if (types == null) {\r\n+                    types = new String[params.length];\r\n+                }\r\n+\r\n+                if (args.length != types.length) {\r\n+                    throw new RpcException(\"GenericFilter#invoke args.length != types.length, please check your \"\r\n+                            + \"params\");\r\n+                }\r\n+                String generic = inv.getAttachment(GENERIC_KEY);\r\n+\r\n+                if (StringUtils.isBlank(generic)) {\r\n+                    generic = RpcContext.getContext().getAttachment(GENERIC_KEY);\r\n+                }\r\n+\r\n+                if (StringUtils.isEmpty(generic)\r\n+                        || ProtocolUtils.isDefaultGenericSerialization(generic)\r\n+                        || ProtocolUtils.isGenericReturnRawResult(generic)) {\r\n+                    args = PojoUtils.realize(args, params, method.getGenericParameterTypes());\r\n+                } else if (ProtocolUtils.isJavaGenericSerialization(generic)) {\r\n+                    Configuration configuration = ApplicationModel.getEnvironment().getConfiguration();\r\n+                    if (!configuration.getBoolean(CommonConstants.ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE, false)) {\r\n+                        String notice = \"Trigger the safety barrier! \" +\r\n+                                \"Native Java Serializer is not allowed by default.\" +\r\n+                                \"This means currently maybe being attacking by others. \" +\r\n+                                \"If you are sure this is a mistake, \" +\r\n+                                \"please set `\" + CommonConstants.ENABLE_NATIVE_JAVA_GENERIC_SERIALIZE + \"` enable in configuration! \" +\r\n+                                \"Before doing so, please make sure you have configure JEP290 to prevent serialization attack.\";\r\n+                        logger.error(notice);\r\n+                        throw new RpcException(new IllegalStateException(notice));\r\n+                    }\r\n+\r\n+                    for (int i = 0; i < args.length; i++) {\r\n+                        if (byte[].class == args[i].getClass()) {\r\n+                            try (UnsafeByteArrayInputStream is = new UnsafeByteArrayInputStream((byte[]) args[i])) {\r\n+                                args[i] = ExtensionLoader.getExtensionLoader(Serialization.class)\r\n+                                        .getExtension(GENERIC_SERIALIZATION_NATIVE_JAVA)\r\n+                                        .deserialize(null, is).readObject();\r\n+                            } catch (Exception e) {\r\n+                                throw new RpcException(\"Deserialize argument [\" + (i + 1) + \"] failed.\", e);\r\n+                            }\r\n+                        } else {\r\n+                            throw new RpcException(\r\n+                                    \"Generic serialization [\" +\r\n+                                            GENERIC_SERIALIZATION_NATIVE_JAVA +\r\n+                                            \"] only support message type \" +\r\n+                                            byte[].class +\r\n+                                            \" and your message type is \" +\r\n+                                            args[i].getClass());\r\n+                        }\r\n+                    }\r\n+                } else if (ProtocolUtils.isBeanGenericSerialization(generic)) {\r\n+                    for (int i = 0; i < args.length; i++) {\r\n+                        if (args[i] instanceof JavaBeanDescriptor) {\r\n+                            args[i] = JavaBeanSerializeUtil.deserialize((JavaBeanDescriptor) args[i]);\r\n+                        } else {\r\n+                            throw new RpcException(\r\n+                                    \"Generic serialization [\" +\r\n+                                            GENERIC_SERIALIZATION_BEAN +\r\n+                                            \"] only support message type \" +\r\n+                                            JavaBeanDescriptor.class.getName() +\r\n+                                            \" and your message type is \" +\r\n+                                            args[i].getClass().getName());\r\n+                        }\r\n+                    }\r\n+                } else if (ProtocolUtils.isProtobufGenericSerialization(generic)) {\r\n+                    // as proto3 only accept one protobuf parameter\r\n+                    if (args.length == 1 && args[0] instanceof String) {\r\n+                        try (UnsafeByteArrayInputStream is =\r\n+                                     new UnsafeByteArrayInputStream(((String) args[0]).getBytes())) {\r\n+                            args[0] = ExtensionLoader.getExtensionLoader(Serialization.class)\r\n+                                    .getExtension(GENERIC_SERIALIZATION_PROTOBUF)\r\n+                                    .deserialize(null, is).readObject(method.getParameterTypes()[0]);\r\n+                        } catch (Exception e) {\r\n+                            throw new RpcException(\"Deserialize argument failed.\", e);\r\n+                        }\r\n+                    } else {\r\n+                        throw new RpcException(\r\n+                                \"Generic serialization [\" +\r\n+                                        GENERIC_SERIALIZATION_PROTOBUF +\r\n+                                        \"] only support one \" + String.class.getName() +\r\n+                                        \" argument and your message size is \" +\r\n+                                        args.length + \" and type is\" +\r\n+                                        args[0].getClass().getName());\r\n+                    }\r\n+                }\r\n+\r\n+                RpcInvocation rpcInvocation = new RpcInvocation(method, invoker.getInterface().getName(), invoker.getUrl().getProtocolServiceKey(), args, inv.getObjectAttachments(), inv.getAttributes());\r\n+                rpcInvocation.setInvoker(inv.getInvoker());\r\n+                rpcInvocation.setTargetServiceUniqueName(inv.getTargetServiceUniqueName());\r\n+\r\n+                return invoker.invoke(rpcInvocation);\r\n+            } catch (NoSuchMethodException | ClassNotFoundException e) {\r\n+                throw new RpcException(e.getMessage(), e);\r\n+            }\r\n+        }\r\n+        return invoker.invoke(inv);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onResponse(Result appResponse, Invoker<?> invoker, Invocation inv) {\r\n+        if ((inv.getMethodName().equals($INVOKE) || inv.getMethodName().equals($INVOKE_ASYNC))\r\n+                && inv.getArguments() != null\r\n+                && inv.getArguments().length == 3\r\n+                && !GenericService.class.isAssignableFrom(invoker.getInterface())) {\r\n+\r\n+            String generic = inv.getAttachment(GENERIC_KEY);\r\n+            if (StringUtils.isBlank(generic)) {\r\n+                generic = RpcContext.getContext().getAttachment(GENERIC_KEY);\r\n+            }\r\n+\r\n+            if (appResponse.hasException()) {\r\n+                Throwable appException = appResponse.getException();\r\n+                if (appException instanceof GenericException) {\r\n+                    GenericException tmp = (GenericException) appException;\r\n+                    appException = new com.alibaba.dubbo.rpc.service.GenericException(tmp.getExceptionClass(), tmp.getExceptionMessage());\r\n+                }\r\n+                if (!(appException instanceof com.alibaba.dubbo.rpc.service.GenericException)) {\r\n+                    appException = new com.alibaba.dubbo.rpc.service.GenericException(appException);\r\n+                }\r\n+                appResponse.setException(appException);\r\n+            }\r\n+            if (ProtocolUtils.isJavaGenericSerialization(generic)) {\r\n+                try {\r\n+                    UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(512);\r\n+                    ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(GENERIC_SERIALIZATION_NATIVE_JAVA).serialize(null, os).writeObject(appResponse.getValue());\r\n+                    appResponse.setValue(os.toByteArray());\r\n+                } catch (IOException e) {\r\n+                    throw new RpcException(\r\n+                            \"Generic serialization [\" +\r\n+                                    GENERIC_SERIALIZATION_NATIVE_JAVA +\r\n+                                    \"] serialize result failed.\", e);\r\n+                }\r\n+            } else if (ProtocolUtils.isBeanGenericSerialization(generic)) {\r\n+                appResponse.setValue(JavaBeanSerializeUtil.serialize(appResponse.getValue(), JavaBeanAccessor.METHOD));\r\n+            } else if (ProtocolUtils.isProtobufGenericSerialization(generic)) {\r\n+                try {\r\n+                    UnsafeByteArrayOutputStream os = new UnsafeByteArrayOutputStream(512);\r\n+                    ExtensionLoader.getExtensionLoader(Serialization.class)\r\n+                            .getExtension(GENERIC_SERIALIZATION_PROTOBUF)\r\n+                            .serialize(null, os).writeObject(appResponse.getValue());\r\n+                    appResponse.setValue(os.toString());\r\n+                } catch (IOException e) {\r\n+                    throw new RpcException(\"Generic serialization [\" +\r\n+                            GENERIC_SERIALIZATION_PROTOBUF +\r\n+                            \"] serialize result failed.\", e);\r\n+                }\r\n+            } else if (ProtocolUtils.isGenericReturnRawResult(generic)) {\r\n+                return;\r\n+            } else {\r\n+                appResponse.setValue(PojoUtils.generalize(appResponse.getValue()));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\r\n+\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/TpsLimitFilter.java", "source2": "org/apache/dubbo/rpc/filter/TpsLimitFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,59 +1,59 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.filter;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.filter.tps.DefaultTPSLimiter;\n-import org.apache.dubbo.rpc.filter.tps.TPSLimiter;\n-\n-import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_RATE_KEY;\n-\n-/**\n- * TpsLimitFilter limit the TPS (transaction per second) for all method of a service or a particular method.\n- * Service or method url can define <b>tps</b> or <b>tps.interval</b> to control this control.It use {@link DefaultTPSLimiter}\n- * as it limit checker. If a provider service method is configured with <b>tps</b>(optionally with <b>tps.interval</b>),then\n- * if invocation count exceed the configured <b>tps</b> value (default is -1 which means unlimited) then invocation will get\n- * RpcException.\n- * */\n-@Activate(group = CommonConstants.PROVIDER, value = TPS_LIMIT_RATE_KEY)\n-public class TpsLimitFilter implements Filter {\n-\n-    private final TPSLimiter tpsLimiter = new DefaultTPSLimiter();\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-\n-        if (!tpsLimiter.isAllowable(invoker.getUrl(), invocation)) {\n-            throw new RpcException(\n-                    \"Failed to invoke service \" +\n-                            invoker.getInterface().getName() +\n-                            \".\" +\n-                            invocation.getMethodName() +\n-                            \" because exceed max service tps.\");\n-        }\n-\n-        return invoker.invoke(invocation);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.filter;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.filter.tps.DefaultTPSLimiter;\r\n+import org.apache.dubbo.rpc.filter.tps.TPSLimiter;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_RATE_KEY;\r\n+\r\n+/**\r\n+ * TpsLimitFilter limit the TPS (transaction per second) for all method of a service or a particular method.\r\n+ * Service or method url can define <b>tps</b> or <b>tps.interval</b> to control this control.It use {@link DefaultTPSLimiter}\r\n+ * as it limit checker. If a provider service method is configured with <b>tps</b>(optionally with <b>tps.interval</b>),then\r\n+ * if invocation count exceed the configured <b>tps</b> value (default is -1 which means unlimited) then invocation will get\r\n+ * RpcException.\r\n+ * */\r\n+@Activate(group = CommonConstants.PROVIDER, value = TPS_LIMIT_RATE_KEY)\r\n+public class TpsLimitFilter implements Filter {\r\n+\r\n+    private final TPSLimiter tpsLimiter = new DefaultTPSLimiter();\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+\r\n+        if (!tpsLimiter.isAllowable(invoker.getUrl(), invocation)) {\r\n+            throw new RpcException(\r\n+                    \"Failed to invoke service \" +\r\n+                            invoker.getInterface().getName() +\r\n+                            \".\" +\r\n+                            invocation.getMethodName() +\r\n+                            \" because exceed max service tps.\");\r\n+        }\r\n+\r\n+        return invoker.invoke(invocation);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/tps/DefaultTPSLimiter.java", "source2": "org/apache/dubbo/rpc/filter/tps/DefaultTPSLimiter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter.tps;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_RATE_KEY;\n-import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_INTERVAL_KEY;\n-import static org.apache.dubbo.rpc.Constants.DEFAULT_TPS_LIMIT_INTERVAL;\n-\n-/**\n- * DefaultTPSLimiter is a default implementation for tps filter. It is an in memory based implementation for storing\n- * tps information. It internally use\n- *\n- * @see org.apache.dubbo.rpc.filter.TpsLimitFilter\n- */\n-public class DefaultTPSLimiter implements TPSLimiter {\n-\n-    private final ConcurrentMap<String, StatItem> stats = new ConcurrentHashMap<String, StatItem>();\n-\n-    @Override\n-    public boolean isAllowable(URL url, Invocation invocation) {\n-        int rate = url.getParameter(TPS_LIMIT_RATE_KEY, -1);\n-        long interval = url.getParameter(TPS_LIMIT_INTERVAL_KEY, DEFAULT_TPS_LIMIT_INTERVAL);\n-        String serviceKey = url.getServiceKey();\n-        if (rate > 0) {\n-            StatItem statItem = stats.get(serviceKey);\n-            if (statItem == null) {\n-                stats.putIfAbsent(serviceKey, new StatItem(serviceKey, rate, interval));\n-                statItem = stats.get(serviceKey);\n-            } else {\n-                //rate or interval has changed, rebuild\n-                if (statItem.getRate() != rate || statItem.getInterval() != interval) {\n-                    stats.put(serviceKey, new StatItem(serviceKey, rate, interval));\n-                    statItem = stats.get(serviceKey);\n-                }\n-            }\n-            return statItem.isAllowable();\n-        } else {\n-            StatItem statItem = stats.get(serviceKey);\n-            if (statItem != null) {\n-                stats.remove(serviceKey);\n-            }\n-        }\n-\n-        return true;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter.tps;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_RATE_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TPS_LIMIT_INTERVAL_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.DEFAULT_TPS_LIMIT_INTERVAL;\r\n+\r\n+/**\r\n+ * DefaultTPSLimiter is a default implementation for tps filter. It is an in memory based implementation for storing\r\n+ * tps information. It internally use\r\n+ *\r\n+ * @see org.apache.dubbo.rpc.filter.TpsLimitFilter\r\n+ */\r\n+public class DefaultTPSLimiter implements TPSLimiter {\r\n+\r\n+    private final ConcurrentMap<String, StatItem> stats = new ConcurrentHashMap<String, StatItem>();\r\n+\r\n+    @Override\r\n+    public boolean isAllowable(URL url, Invocation invocation) {\r\n+        int rate = url.getParameter(TPS_LIMIT_RATE_KEY, -1);\r\n+        long interval = url.getParameter(TPS_LIMIT_INTERVAL_KEY, DEFAULT_TPS_LIMIT_INTERVAL);\r\n+        String serviceKey = url.getServiceKey();\r\n+        if (rate > 0) {\r\n+            StatItem statItem = stats.get(serviceKey);\r\n+            if (statItem == null) {\r\n+                stats.putIfAbsent(serviceKey, new StatItem(serviceKey, rate, interval));\r\n+                statItem = stats.get(serviceKey);\r\n+            } else {\r\n+                //rate or interval has changed, rebuild\r\n+                if (statItem.getRate() != rate || statItem.getInterval() != interval) {\r\n+                    stats.put(serviceKey, new StatItem(serviceKey, rate, interval));\r\n+                    statItem = stats.get(serviceKey);\r\n+                }\r\n+            }\r\n+            return statItem.isAllowable();\r\n+        } else {\r\n+            StatItem statItem = stats.get(serviceKey);\r\n+            if (statItem != null) {\r\n+                stats.remove(serviceKey);\r\n+            }\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/filter/tps/StatItem.java", "source2": "org/apache/dubbo/rpc/filter/tps/StatItem.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,92 +1,92 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.filter.tps;\n-\n-import java.util.concurrent.atomic.LongAdder;\n-\n-/**\n- * Judge whether a particular invocation of service provider method should be allowed within a configured time interval.\n- * As a state it contain name of key ( e.g. method), last invocation time, interval and rate count.\n- */\n-class StatItem {\n-\n-    private String name;\n-\n-    private long lastResetTime;\n-\n-    private long interval;\n-\n-    private LongAdder token;\n-\n-    private int rate;\n-\n-    StatItem(String name, int rate, long interval) {\n-        this.name = name;\n-        this.rate = rate;\n-        this.interval = interval;\n-        this.lastResetTime = System.currentTimeMillis();\n-        this.token = buildLongAdder(rate);\n-    }\n-\n-    public boolean isAllowable() {\n-        long now = System.currentTimeMillis();\n-        if (now > lastResetTime + interval) {\n-            token = buildLongAdder(rate);\n-            lastResetTime = now;\n-        }\n-\n-        if (token.sum() < 0) {\n-            return false;\n-        }\n-        token.decrement();\n-        return true;\n-    }\n-\n-    public long getInterval() {\n-        return interval;\n-    }\n-\n-\n-    public int getRate() {\n-        return rate;\n-    }\n-\n-\n-    long getLastResetTime() {\n-        return lastResetTime;\n-    }\n-\n-    long getToken() {\n-        return token.sum();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return new StringBuilder(32).append(\"StatItem \")\n-                .append(\"[name=\").append(name).append(\", \")\n-                .append(\"rate = \").append(rate).append(\", \")\n-                .append(\"interval = \").append(interval).append(\"]\")\n-                .toString();\n-    }\n-\n-    private LongAdder buildLongAdder(int rate) {\n-        LongAdder adder = new LongAdder();\n-        adder.add(rate);\n-        return adder;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.filter.tps;\r\n+\r\n+import java.util.concurrent.atomic.LongAdder;\r\n+\r\n+/**\r\n+ * Judge whether a particular invocation of service provider method should be allowed within a configured time interval.\r\n+ * As a state it contain name of key ( e.g. method), last invocation time, interval and rate count.\r\n+ */\r\n+class StatItem {\r\n+\r\n+    private String name;\r\n+\r\n+    private long lastResetTime;\r\n+\r\n+    private long interval;\r\n+\r\n+    private LongAdder token;\r\n+\r\n+    private int rate;\r\n+\r\n+    StatItem(String name, int rate, long interval) {\r\n+        this.name = name;\r\n+        this.rate = rate;\r\n+        this.interval = interval;\r\n+        this.lastResetTime = System.currentTimeMillis();\r\n+        this.token = buildLongAdder(rate);\r\n+    }\r\n+\r\n+    public boolean isAllowable() {\r\n+        long now = System.currentTimeMillis();\r\n+        if (now > lastResetTime + interval) {\r\n+            token = buildLongAdder(rate);\r\n+            lastResetTime = now;\r\n+        }\r\n+\r\n+        if (token.sum() < 0) {\r\n+            return false;\r\n+        }\r\n+        token.decrement();\r\n+        return true;\r\n+    }\r\n+\r\n+    public long getInterval() {\r\n+        return interval;\r\n+    }\r\n+\r\n+\r\n+    public int getRate() {\r\n+        return rate;\r\n+    }\r\n+\r\n+\r\n+    long getLastResetTime() {\r\n+        return lastResetTime;\r\n+    }\r\n+\r\n+    long getToken() {\r\n+        return token.sum();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return new StringBuilder(32).append(\"StatItem \")\r\n+                .append(\"[name=\").append(name).append(\", \")\r\n+                .append(\"rate = \").append(rate).append(\", \")\r\n+                .append(\"interval = \").append(interval).append(\"]\")\r\n+                .toString();\r\n+    }\r\n+\r\n+    private LongAdder buildLongAdder(int rate) {\r\n+        LongAdder adder = new LongAdder();\r\n+        adder.add(rate);\r\n+        return adder;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ApplicationInitListener.java", "source2": "org/apache/dubbo/rpc/model/ApplicationInitListener.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,27 +1,27 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI\n-public interface ApplicationInitListener {\n-    /**\n-     * init the application\n-     */\n-    void init();\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI\r\n+public interface ApplicationInitListener {\r\n+    /**\r\n+     * init the application\r\n+     */\r\n+    void init();\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/model/ApplicationModel.java", "source2": "org/apache/dubbo/rpc/model/ApplicationModel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,128 +1,128 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.config.Environment;\n-import org.apache.dubbo.common.context.FrameworkExt;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.config.ApplicationConfig;\n-import org.apache.dubbo.config.context.ConfigManager;\n-\n-import java.util.Collection;\n-import java.util.Set;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-/**\n- * {@link ExtensionLoader}, {@code DubboBootstrap} and this class are at present designed to be\n- * singleton or static (by itself totally static or uses some static fields). So the instances\n- * returned from them are of process scope. If you want to support multiple dubbo servers in one\n- * single process, you may need to refactor those three classes.\n- *\n- * Represent a application which is using Dubbo and store basic metadata info for using\n- * during the processing of RPC invoking.\n- * <p>\n- * ApplicationModel includes many ProviderModel which is about published services\n- * and many Consumer Model which is about subscribed services.\n- * <p>\n- *\n- */\n-\n-public class ApplicationModel {\n-    protected static final Logger LOGGER = LoggerFactory.getLogger(ApplicationModel.class);\n-    public static final String NAME = \"application\";\n-\n-    private static AtomicBoolean INIT_FLAG = new AtomicBoolean(false);\n-\n-    public static void init() {\n-        if (INIT_FLAG.compareAndSet(false, true)) {\n-            ExtensionLoader<ApplicationInitListener> extensionLoader = ExtensionLoader.getExtensionLoader(ApplicationInitListener.class);\n-            Set<String> listenerNames = extensionLoader.getSupportedExtensions();\n-            for (String listenerName : listenerNames) {\n-                extensionLoader.getExtension(listenerName).init();\n-            }\n-        }\n-    }\n-\n-    public static Collection<ConsumerModel> allConsumerModels() {\n-        return getServiceRepository().getReferredServices();\n-    }\n-\n-    public static Collection<ProviderModel> allProviderModels() {\n-        return getServiceRepository().getExportedServices();\n-    }\n-\n-    public static ProviderModel getProviderModel(String serviceKey) {\n-        return getServiceRepository().lookupExportedService(serviceKey);\n-    }\n-\n-    public static ConsumerModel getConsumerModel(String serviceKey) {\n-        return getServiceRepository().lookupReferredService(serviceKey);\n-    }\n-\n-    private static final ExtensionLoader<FrameworkExt> LOADER = ExtensionLoader.getExtensionLoader(FrameworkExt.class);\n-\n-    public static void initFrameworkExts() {\n-        Set<FrameworkExt> exts = ExtensionLoader.getExtensionLoader(FrameworkExt.class).getSupportedExtensionInstances();\n-        for (FrameworkExt ext : exts) {\n-            ext.initialize();\n-        }\n-    }\n-\n-    public static Environment getEnvironment() {\n-        return (Environment) LOADER.getExtension(Environment.NAME);\n-    }\n-\n-    public static ConfigManager getConfigManager() {\n-        return (ConfigManager) LOADER.getExtension(ConfigManager.NAME);\n-    }\n-\n-    public static ServiceRepository getServiceRepository() {\n-        return (ServiceRepository) LOADER.getExtension(ServiceRepository.NAME);\n-    }\n-\n-    public static ApplicationConfig getApplicationConfig() {\n-        return getConfigManager().getApplicationOrElseThrow();\n-    }\n-\n-    public static String getName() {\n-        return getApplicationConfig().getName();\n-    }\n-\n-    @Deprecated\n-    private static String application;\n-\n-    @Deprecated\n-    public static String getApplication() {\n-        return application == null ? getName() : application;\n-    }\n-\n-    // Currently used by UT.\n-    @Deprecated\n-    public static void setApplication(String application) {\n-        ApplicationModel.application = application;\n-    }\n-\n-    // only for unit test\n-    public static void reset() {\n-        getServiceRepository().destroy();\n-        getConfigManager().destroy();\n-        getEnvironment().destroy();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.config.Environment;\r\n+import org.apache.dubbo.common.context.FrameworkExt;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.config.ApplicationConfig;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+\r\n+import java.util.Collection;\r\n+import java.util.Set;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+/**\r\n+ * {@link ExtensionLoader}, {@code DubboBootstrap} and this class are at present designed to be\r\n+ * singleton or static (by itself totally static or uses some static fields). So the instances\r\n+ * returned from them are of process scope. If you want to support multiple dubbo servers in one\r\n+ * single process, you may need to refactor those three classes.\r\n+ *\r\n+ * Represent a application which is using Dubbo and store basic metadata info for using\r\n+ * during the processing of RPC invoking.\r\n+ * <p>\r\n+ * ApplicationModel includes many ProviderModel which is about published services\r\n+ * and many Consumer Model which is about subscribed services.\r\n+ * <p>\r\n+ *\r\n+ */\r\n+\r\n+public class ApplicationModel {\r\n+    protected static final Logger LOGGER = LoggerFactory.getLogger(ApplicationModel.class);\r\n+    public static final String NAME = \"application\";\r\n+\r\n+    private static AtomicBoolean INIT_FLAG = new AtomicBoolean(false);\r\n+\r\n+    public static void init() {\r\n+        if (INIT_FLAG.compareAndSet(false, true)) {\r\n+            ExtensionLoader<ApplicationInitListener> extensionLoader = ExtensionLoader.getExtensionLoader(ApplicationInitListener.class);\r\n+            Set<String> listenerNames = extensionLoader.getSupportedExtensions();\r\n+            for (String listenerName : listenerNames) {\r\n+                extensionLoader.getExtension(listenerName).init();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public static Collection<ConsumerModel> allConsumerModels() {\r\n+        return getServiceRepository().getReferredServices();\r\n+    }\r\n+\r\n+    public static Collection<ProviderModel> allProviderModels() {\r\n+        return getServiceRepository().getExportedServices();\r\n+    }\r\n+\r\n+    public static ProviderModel getProviderModel(String serviceKey) {\r\n+        return getServiceRepository().lookupExportedService(serviceKey);\r\n+    }\r\n+\r\n+    public static ConsumerModel getConsumerModel(String serviceKey) {\r\n+        return getServiceRepository().lookupReferredService(serviceKey);\r\n+    }\r\n+\r\n+    private static final ExtensionLoader<FrameworkExt> LOADER = ExtensionLoader.getExtensionLoader(FrameworkExt.class);\r\n+\r\n+    public static void initFrameworkExts() {\r\n+        Set<FrameworkExt> exts = ExtensionLoader.getExtensionLoader(FrameworkExt.class).getSupportedExtensionInstances();\r\n+        for (FrameworkExt ext : exts) {\r\n+            ext.initialize();\r\n+        }\r\n+    }\r\n+\r\n+    public static Environment getEnvironment() {\r\n+        return (Environment) LOADER.getExtension(Environment.NAME);\r\n+    }\r\n+\r\n+    public static ConfigManager getConfigManager() {\r\n+        return (ConfigManager) LOADER.getExtension(ConfigManager.NAME);\r\n+    }\r\n+\r\n+    public static ServiceRepository getServiceRepository() {\r\n+        return (ServiceRepository) LOADER.getExtension(ServiceRepository.NAME);\r\n+    }\r\n+\r\n+    public static ApplicationConfig getApplicationConfig() {\r\n+        return getConfigManager().getApplicationOrElseThrow();\r\n+    }\r\n+\r\n+    public static String getName() {\r\n+        return getApplicationConfig().getName();\r\n+    }\r\n+\r\n+    @Deprecated\r\n+    private static String application;\r\n+\r\n+    @Deprecated\r\n+    public static String getApplication() {\r\n+        return application == null ? getName() : application;\r\n+    }\r\n+\r\n+    // Currently used by UT.\r\n+    @Deprecated\r\n+    public static void setApplication(String application) {\r\n+        ApplicationModel.application = application;\r\n+    }\r\n+\r\n+    // only for unit test\r\n+    public static void reset() {\r\n+        getServiceRepository().destroy();\r\n+        getConfigManager().destroy();\r\n+        getEnvironment().destroy();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/AsyncMethodInfo.java", "source2": "org/apache/dubbo/rpc/model/AsyncMethodInfo.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,87 +1,87 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import java.lang.reflect.Method;\n-\n-public class AsyncMethodInfo {\n-    // callback instance when async-call is invoked\n-    private Object oninvokeInstance;\n-\n-    // callback method when async-call is invoked\n-    private Method oninvokeMethod;\n-\n-    // callback instance when async-call is returned\n-    private Object onreturnInstance;\n-\n-    // callback method when async-call is returned\n-    private Method onreturnMethod;\n-\n-    // callback instance when async-call has exception thrown\n-    private Object onthrowInstance;\n-\n-    // callback method when async-call has exception thrown\n-    private Method onthrowMethod;\n-\n-    public Object getOninvokeInstance() {\n-        return oninvokeInstance;\n-    }\n-\n-    public void setOninvokeInstance(Object oninvokeInstance) {\n-        this.oninvokeInstance = oninvokeInstance;\n-    }\n-\n-    public Method getOninvokeMethod() {\n-        return oninvokeMethod;\n-    }\n-\n-    public void setOninvokeMethod(Method oninvokeMethod) {\n-        this.oninvokeMethod = oninvokeMethod;\n-    }\n-\n-    public Object getOnreturnInstance() {\n-        return onreturnInstance;\n-    }\n-\n-    public void setOnreturnInstance(Object onreturnInstance) {\n-        this.onreturnInstance = onreturnInstance;\n-    }\n-\n-    public Method getOnreturnMethod() {\n-        return onreturnMethod;\n-    }\n-\n-    public void setOnreturnMethod(Method onreturnMethod) {\n-        this.onreturnMethod = onreturnMethod;\n-    }\n-\n-    public Object getOnthrowInstance() {\n-        return onthrowInstance;\n-    }\n-\n-    public void setOnthrowInstance(Object onthrowInstance) {\n-        this.onthrowInstance = onthrowInstance;\n-    }\n-\n-    public Method getOnthrowMethod() {\n-        return onthrowMethod;\n-    }\n-\n-    public void setOnthrowMethod(Method onthrowMethod) {\n-        this.onthrowMethod = onthrowMethod;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import java.lang.reflect.Method;\r\n+\r\n+public class AsyncMethodInfo {\r\n+    // callback instance when async-call is invoked\r\n+    private Object oninvokeInstance;\r\n+\r\n+    // callback method when async-call is invoked\r\n+    private Method oninvokeMethod;\r\n+\r\n+    // callback instance when async-call is returned\r\n+    private Object onreturnInstance;\r\n+\r\n+    // callback method when async-call is returned\r\n+    private Method onreturnMethod;\r\n+\r\n+    // callback instance when async-call has exception thrown\r\n+    private Object onthrowInstance;\r\n+\r\n+    // callback method when async-call has exception thrown\r\n+    private Method onthrowMethod;\r\n+\r\n+    public Object getOninvokeInstance() {\r\n+        return oninvokeInstance;\r\n+    }\r\n+\r\n+    public void setOninvokeInstance(Object oninvokeInstance) {\r\n+        this.oninvokeInstance = oninvokeInstance;\r\n+    }\r\n+\r\n+    public Method getOninvokeMethod() {\r\n+        return oninvokeMethod;\r\n+    }\r\n+\r\n+    public void setOninvokeMethod(Method oninvokeMethod) {\r\n+        this.oninvokeMethod = oninvokeMethod;\r\n+    }\r\n+\r\n+    public Object getOnreturnInstance() {\r\n+        return onreturnInstance;\r\n+    }\r\n+\r\n+    public void setOnreturnInstance(Object onreturnInstance) {\r\n+        this.onreturnInstance = onreturnInstance;\r\n+    }\r\n+\r\n+    public Method getOnreturnMethod() {\r\n+        return onreturnMethod;\r\n+    }\r\n+\r\n+    public void setOnreturnMethod(Method onreturnMethod) {\r\n+        this.onreturnMethod = onreturnMethod;\r\n+    }\r\n+\r\n+    public Object getOnthrowInstance() {\r\n+        return onthrowInstance;\r\n+    }\r\n+\r\n+    public void setOnthrowInstance(Object onthrowInstance) {\r\n+        this.onthrowInstance = onthrowInstance;\r\n+    }\r\n+\r\n+    public Method getOnthrowMethod() {\r\n+        return onthrowMethod;\r\n+    }\r\n+\r\n+    public void setOnthrowMethod(Method onthrowMethod) {\r\n+        this.onthrowMethod = onthrowMethod;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/BuiltinServiceDetector.java", "source2": "org/apache/dubbo/rpc/model/BuiltinServiceDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,26 +1,26 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-@SPI\n-public interface BuiltinServiceDetector {\n-\n-    Class<?> getService();\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+@SPI\r\n+public interface BuiltinServiceDetector {\r\n+\r\n+    Class<?> getService();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ConsumerMethodModel.java", "source2": "org/apache/dubbo/rpc/model/ConsumerMethodModel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,101 +1,101 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import java.lang.reflect.Method;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\n-\n-/**\n- * Replaced with {@link MethodDescriptor}\n- */\n-@Deprecated\n-public class ConsumerMethodModel {\n-    private final Method method;\n-    //    private final boolean isCallBack;\n-//    private final boolean isFuture;\n-    private final String[] parameterTypes;\n-    private final Class<?>[] parameterClasses;\n-    private final Class<?> returnClass;\n-    private final String methodName;\n-    private final boolean generic;\n-\n-    private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();\n-\n-\n-    public ConsumerMethodModel(Method method) {\n-        this.method = method;\n-        this.parameterClasses = method.getParameterTypes();\n-        this.returnClass = method.getReturnType();\n-        this.parameterTypes = this.createParamSignature(parameterClasses);\n-        this.methodName = method.getName();\n-        this.generic = methodName.equals($INVOKE) && parameterTypes != null && parameterTypes.length == 3;\n-    }\n-\n-    public Method getMethod() {\n-        return method;\n-    }\n-\n-//    public ConcurrentMap<String, Object> getAttributeMap() {\n-//        return attributeMap;\n-//    }\n-\n-    public void addAttribute(String key, Object value) {\n-        this.attributeMap.put(key, value);\n-    }\n-\n-    public Object getAttribute(String key) {\n-        return this.attributeMap.get(key);\n-    }\n-\n-\n-    public Class<?> getReturnClass() {\n-        return returnClass;\n-    }\n-\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    public String[] getParameterTypes() {\n-        return parameterTypes;\n-    }\n-\n-    private String[] createParamSignature(Class<?>[] args) {\n-        if (args == null || args.length == 0) {\n-            return new String[]{};\n-        }\n-        String[] paramSig = new String[args.length];\n-        for (int x = 0; x < args.length; x++) {\n-            paramSig[x] = args[x].getName();\n-        }\n-        return paramSig;\n-    }\n-\n-\n-    public boolean isGeneric() {\n-        return generic;\n-    }\n-\n-    public Class<?>[] getParameterClasses() {\n-        return parameterClasses;\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\r\n+\r\n+/**\r\n+ * Replaced with {@link MethodDescriptor}\r\n+ */\r\n+@Deprecated\r\n+public class ConsumerMethodModel {\r\n+    private final Method method;\r\n+    //    private final boolean isCallBack;\r\n+//    private final boolean isFuture;\r\n+    private final String[] parameterTypes;\r\n+    private final Class<?>[] parameterClasses;\r\n+    private final Class<?> returnClass;\r\n+    private final String methodName;\r\n+    private final boolean generic;\r\n+\r\n+    private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();\r\n+\r\n+\r\n+    public ConsumerMethodModel(Method method) {\r\n+        this.method = method;\r\n+        this.parameterClasses = method.getParameterTypes();\r\n+        this.returnClass = method.getReturnType();\r\n+        this.parameterTypes = this.createParamSignature(parameterClasses);\r\n+        this.methodName = method.getName();\r\n+        this.generic = methodName.equals($INVOKE) && parameterTypes != null && parameterTypes.length == 3;\r\n+    }\r\n+\r\n+    public Method getMethod() {\r\n+        return method;\r\n+    }\r\n+\r\n+//    public ConcurrentMap<String, Object> getAttributeMap() {\r\n+//        return attributeMap;\r\n+//    }\r\n+\r\n+    public void addAttribute(String key, Object value) {\r\n+        this.attributeMap.put(key, value);\r\n+    }\r\n+\r\n+    public Object getAttribute(String key) {\r\n+        return this.attributeMap.get(key);\r\n+    }\r\n+\r\n+\r\n+    public Class<?> getReturnClass() {\r\n+        return returnClass;\r\n+    }\r\n+\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    public String[] getParameterTypes() {\r\n+        return parameterTypes;\r\n+    }\r\n+\r\n+    private String[] createParamSignature(Class<?>[] args) {\r\n+        if (args == null || args.length == 0) {\r\n+            return new String[]{};\r\n+        }\r\n+        String[] paramSig = new String[args.length];\r\n+        for (int x = 0; x < args.length; x++) {\r\n+            paramSig[x] = args[x].getName();\r\n+        }\r\n+        return paramSig;\r\n+    }\r\n+\r\n+\r\n+    public boolean isGeneric() {\r\n+        return generic;\r\n+    }\r\n+\r\n+    public Class<?>[] getParameterClasses() {\r\n+        return parameterClasses;\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ConsumerModel.java", "source2": "org/apache/dubbo/rpc/model/ConsumerModel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,219 +1,219 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.BaseServiceMetadata;\n-import org.apache.dubbo.common.utils.Assert;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Optional;\n-import java.util.Set;\n-import java.util.TreeSet;\n-\n-/**\n- * This model is bound to your reference's configuration, for example, group, version or method level configuration.\n- */\n-public class ConsumerModel {\n-    private String serviceKey;\n-    private final ServiceDescriptor serviceModel;\n-    private final ReferenceConfigBase<?> referenceConfig;\n-    private final Set<String> apps = new TreeSet<>();\n-\n-    private Object proxyObject;\n-\n-    private Map<String, AsyncMethodInfo> methodConfigs = new HashMap<>();\n-\n-    /**\n-     *  This constructor create an instance of ConsumerModel and passed objects should not be null.\n-     *  If service name, service instance, proxy object,methods should not be null. If these are null\n-     *  then this constructor will throw {@link IllegalArgumentException}\n-     * @param serviceKey Name of the service.\n-     * @param proxyObject  Proxy object.\n-     */\n-    public ConsumerModel(String serviceKey\n-            , Object proxyObject\n-            , ServiceDescriptor serviceModel\n-            , ReferenceConfigBase<?> referenceConfig) {\n-\n-        Assert.notEmptyString(serviceKey, \"Service name can't be null or blank\");\n-\n-        this.serviceKey = serviceKey;\n-        this.proxyObject = proxyObject;\n-        this.serviceModel = serviceModel;\n-        this.referenceConfig = referenceConfig;\n-    }\n-\n-    public void init(Map<String, AsyncMethodInfo> attributes) {\n-        if (attributes != null) {\n-            this.methodConfigs = attributes;\n-        }\n-\n-        initMethodModels();\n-    }\n-\n-    /**\n-     * Return the proxy object used by called while creating instance of ConsumerModel\n-     * @return\n-     */\n-    public Object getProxyObject() {\n-        return proxyObject;\n-    }\n-\n-    public void setProxyObject(Object proxyObject) {\n-        this.proxyObject = proxyObject;\n-    }\n-\n-    /**\n-     * Return all method models for the current service\n-     *\n-     * @return method model list\n-     */\n-    public Set<MethodDescriptor> getAllMethods() {\n-        return serviceModel.getAllMethods();\n-    }\n-\n-    public Class<?> getServiceInterfaceClass() {\n-        return serviceModel.getServiceInterfaceClass();\n-    }\n-\n-    public String getServiceKey() {\n-        return serviceKey;\n-    }\n-\n-    public AsyncMethodInfo getMethodConfig(String methodName) {\n-        return methodConfigs.get(methodName);\n-    }\n-\n-    public ServiceDescriptor getServiceModel() {\n-        return serviceModel;\n-    }\n-\n-    public ReferenceConfigBase getReferenceConfig() {\n-        return referenceConfig;\n-    }\n-\n-    public Set<String> getApps() {\n-        return apps;\n-    }\n-\n-    public AsyncMethodInfo getAsyncInfo(String methodName) {\n-        return methodConfigs.get(methodName);\n-    }\n-\n-    /* *************** Start, metadata compatible **************** */\n-\n-    private ServiceMetadata serviceMetadata;\n-    private Map<Method, ConsumerMethodModel> methodModels = new HashMap<>();\n-\n-    public ConsumerModel(String serviceKey\n-            , Object proxyObject\n-            , ServiceDescriptor serviceModel\n-            , ReferenceConfigBase<?> referenceConfig\n-            , ServiceMetadata metadata) {\n-\n-        this(serviceKey, proxyObject, serviceModel, referenceConfig);\n-        this.serviceMetadata = metadata;\n-    }\n-\n-    public void setServiceKey(String serviceKey) {\n-        this.serviceKey = serviceKey;\n-        if (serviceMetadata != null) {\n-            serviceMetadata.setServiceKey(serviceKey);\n-            serviceMetadata.setGroup(BaseServiceMetadata.groupFromServiceKey(serviceKey));\n-        }\n-    }\n-\n-    public void initMethodModels() {\n-        Class[] interfaceList = null;\n-        if (proxyObject == null) {\n-            interfaceList = new Class[]{referenceConfig.getActualInterface()};\n-        } else {\n-            interfaceList = proxyObject.getClass().getInterfaces();\n-        }\n-        for (Class interfaceClass : interfaceList) {\n-            for (Method method : interfaceClass.getMethods()) {\n-                methodModels.put(method, new ConsumerMethodModel(method));\n-            }\n-        }\n-    }\n-\n-    public ClassLoader getClassLoader() {\n-        return serviceMetadata.getServiceType().getClassLoader();\n-    }\n-\n-    /**\n-     * @return serviceMetadata\n-     */\n-    public ServiceMetadata getServiceMetadata() {\n-        return serviceMetadata;\n-    }\n-\n-    /**\n-     * Return method model for the given method on consumer side\n-     *\n-     * @param method method object\n-     * @return method model\n-     */\n-    public ConsumerMethodModel getMethodModel(Method method) {\n-        return methodModels.get(method);\n-    }\n-\n-    /**\n-     * Return method model for the given method on consumer side\n-     *\n-     * @param method method object\n-     * @return method model\n-     */\n-    public ConsumerMethodModel getMethodModel(String method) {\n-        Optional<Map.Entry<Method, ConsumerMethodModel>> consumerMethodModelEntry = methodModels.entrySet().stream().filter(entry -> entry.getKey().getName().equals(method)).findFirst();\n-        return consumerMethodModelEntry.map(Map.Entry::getValue).orElse(null);\n-    }\n-\n-    /**\n-     * @param method   methodName\n-     * @param argsType method arguments type\n-     * @return\n-     */\n-    public ConsumerMethodModel getMethodModel(String method, String[] argsType) {\n-        Optional<ConsumerMethodModel> consumerMethodModel = methodModels.entrySet().stream()\n-                .filter(entry -> entry.getKey().getName().equals(method))\n-                .map(Map.Entry::getValue).filter(methodModel -> Arrays.equals(argsType, methodModel.getParameterTypes()))\n-                .findFirst();\n-        return consumerMethodModel.orElse(null);\n-    }\n-\n-    /**\n-     * Return all method models for the current service\n-     *\n-     * @return method model list\n-     */\n-    public List<ConsumerMethodModel> getAllMethodModels() {\n-        return new ArrayList<>(methodModels.values());\n-    }\n-\n-    public String getServiceName() {\n-        return this.serviceMetadata.getServiceKey();\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.BaseServiceMetadata;\r\n+import org.apache.dubbo.common.utils.Assert;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+import java.util.TreeSet;\r\n+\r\n+/**\r\n+ * This model is bound to your reference's configuration, for example, group, version or method level configuration.\r\n+ */\r\n+public class ConsumerModel {\r\n+    private String serviceKey;\r\n+    private final ServiceDescriptor serviceModel;\r\n+    private final ReferenceConfigBase<?> referenceConfig;\r\n+    private final Set<String> apps = new TreeSet<>();\r\n+\r\n+    private Object proxyObject;\r\n+\r\n+    private Map<String, AsyncMethodInfo> methodConfigs = new HashMap<>();\r\n+\r\n+    /**\r\n+     *  This constructor create an instance of ConsumerModel and passed objects should not be null.\r\n+     *  If service name, service instance, proxy object,methods should not be null. If these are null\r\n+     *  then this constructor will throw {@link IllegalArgumentException}\r\n+     * @param serviceKey Name of the service.\r\n+     * @param proxyObject  Proxy object.\r\n+     */\r\n+    public ConsumerModel(String serviceKey\r\n+            , Object proxyObject\r\n+            , ServiceDescriptor serviceModel\r\n+            , ReferenceConfigBase<?> referenceConfig) {\r\n+\r\n+        Assert.notEmptyString(serviceKey, \"Service name can't be null or blank\");\r\n+\r\n+        this.serviceKey = serviceKey;\r\n+        this.proxyObject = proxyObject;\r\n+        this.serviceModel = serviceModel;\r\n+        this.referenceConfig = referenceConfig;\r\n+    }\r\n+\r\n+    public void init(Map<String, AsyncMethodInfo> attributes) {\r\n+        if (attributes != null) {\r\n+            this.methodConfigs = attributes;\r\n+        }\r\n+\r\n+        initMethodModels();\r\n+    }\r\n+\r\n+    /**\r\n+     * Return the proxy object used by called while creating instance of ConsumerModel\r\n+     * @return\r\n+     */\r\n+    public Object getProxyObject() {\r\n+        return proxyObject;\r\n+    }\r\n+\r\n+    public void setProxyObject(Object proxyObject) {\r\n+        this.proxyObject = proxyObject;\r\n+    }\r\n+\r\n+    /**\r\n+     * Return all method models for the current service\r\n+     *\r\n+     * @return method model list\r\n+     */\r\n+    public Set<MethodDescriptor> getAllMethods() {\r\n+        return serviceModel.getAllMethods();\r\n+    }\r\n+\r\n+    public Class<?> getServiceInterfaceClass() {\r\n+        return serviceModel.getServiceInterfaceClass();\r\n+    }\r\n+\r\n+    public String getServiceKey() {\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+    public AsyncMethodInfo getMethodConfig(String methodName) {\r\n+        return methodConfigs.get(methodName);\r\n+    }\r\n+\r\n+    public ServiceDescriptor getServiceModel() {\r\n+        return serviceModel;\r\n+    }\r\n+\r\n+    public ReferenceConfigBase getReferenceConfig() {\r\n+        return referenceConfig;\r\n+    }\r\n+\r\n+    public Set<String> getApps() {\r\n+        return apps;\r\n+    }\r\n+\r\n+    public AsyncMethodInfo getAsyncInfo(String methodName) {\r\n+        return methodConfigs.get(methodName);\r\n+    }\r\n+\r\n+    /* *************** Start, metadata compatible **************** */\r\n+\r\n+    private ServiceMetadata serviceMetadata;\r\n+    private Map<Method, ConsumerMethodModel> methodModels = new HashMap<>();\r\n+\r\n+    public ConsumerModel(String serviceKey\r\n+            , Object proxyObject\r\n+            , ServiceDescriptor serviceModel\r\n+            , ReferenceConfigBase<?> referenceConfig\r\n+            , ServiceMetadata metadata) {\r\n+\r\n+        this(serviceKey, proxyObject, serviceModel, referenceConfig);\r\n+        this.serviceMetadata = metadata;\r\n+    }\r\n+\r\n+    public void setServiceKey(String serviceKey) {\r\n+        this.serviceKey = serviceKey;\r\n+        if (serviceMetadata != null) {\r\n+            serviceMetadata.setServiceKey(serviceKey);\r\n+            serviceMetadata.setGroup(BaseServiceMetadata.groupFromServiceKey(serviceKey));\r\n+        }\r\n+    }\r\n+\r\n+    public void initMethodModels() {\r\n+        Class[] interfaceList = null;\r\n+        if (proxyObject == null) {\r\n+            interfaceList = new Class[]{referenceConfig.getActualInterface()};\r\n+        } else {\r\n+            interfaceList = proxyObject.getClass().getInterfaces();\r\n+        }\r\n+        for (Class interfaceClass : interfaceList) {\r\n+            for (Method method : interfaceClass.getMethods()) {\r\n+                methodModels.put(method, new ConsumerMethodModel(method));\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public ClassLoader getClassLoader() {\r\n+        return serviceMetadata.getServiceType().getClassLoader();\r\n+    }\r\n+\r\n+    /**\r\n+     * @return serviceMetadata\r\n+     */\r\n+    public ServiceMetadata getServiceMetadata() {\r\n+        return serviceMetadata;\r\n+    }\r\n+\r\n+    /**\r\n+     * Return method model for the given method on consumer side\r\n+     *\r\n+     * @param method method object\r\n+     * @return method model\r\n+     */\r\n+    public ConsumerMethodModel getMethodModel(Method method) {\r\n+        return methodModels.get(method);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return method model for the given method on consumer side\r\n+     *\r\n+     * @param method method object\r\n+     * @return method model\r\n+     */\r\n+    public ConsumerMethodModel getMethodModel(String method) {\r\n+        Optional<Map.Entry<Method, ConsumerMethodModel>> consumerMethodModelEntry = methodModels.entrySet().stream().filter(entry -> entry.getKey().getName().equals(method)).findFirst();\r\n+        return consumerMethodModelEntry.map(Map.Entry::getValue).orElse(null);\r\n+    }\r\n+\r\n+    /**\r\n+     * @param method   methodName\r\n+     * @param argsType method arguments type\r\n+     * @return\r\n+     */\r\n+    public ConsumerMethodModel getMethodModel(String method, String[] argsType) {\r\n+        Optional<ConsumerMethodModel> consumerMethodModel = methodModels.entrySet().stream()\r\n+                .filter(entry -> entry.getKey().getName().equals(method))\r\n+                .map(Map.Entry::getValue).filter(methodModel -> Arrays.equals(argsType, methodModel.getParameterTypes()))\r\n+                .findFirst();\r\n+        return consumerMethodModel.orElse(null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return all method models for the current service\r\n+     *\r\n+     * @return method model list\r\n+     */\r\n+    public List<ConsumerMethodModel> getAllMethodModels() {\r\n+        return new ArrayList<>(methodModels.values());\r\n+    }\r\n+\r\n+    public String getServiceName() {\r\n+        return this.serviceMetadata.getServiceKey();\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/MethodDescriptor.java", "source2": "org/apache/dubbo/rpc/model/MethodDescriptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,93 +1,93 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.stream.Stream;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\n-\n-/**\n- *\n- */\n-public class MethodDescriptor {\n-    private final Method method;\n-    //    private final boolean isCallBack;\n-//    private final boolean isFuture;\n-    private final String paramDesc;\n-    // duplicate filed as paramDesc, but with different format.\n-    private final String[] compatibleParamSignatures;\n-    private final Class<?>[] parameterClasses;\n-    private final Class<?> returnClass;\n-    private final Type[] returnTypes;\n-    private final String methodName;\n-    private final boolean generic;\n-\n-    public MethodDescriptor(Method method) {\n-        this.method = method;\n-        this.parameterClasses = method.getParameterTypes();\n-        this.returnClass = method.getReturnType();\n-        this.returnTypes = ReflectUtils.getReturnTypes(method);\n-        this.paramDesc = ReflectUtils.getDesc(parameterClasses);\n-        this.compatibleParamSignatures = Stream.of(parameterClasses)\n-                .map(Class::getName)\n-                .toArray(String[]::new);\n-        this.methodName = method.getName();\n-        this.generic = (methodName.equals($INVOKE) || methodName.equals($INVOKE_ASYNC)) && parameterClasses.length == 3;\n-    }\n-\n-    public boolean matchParams (String params) {\n-        return paramDesc.equalsIgnoreCase(params);\n-    }\n-\n-    public Method getMethod() {\n-        return method;\n-    }\n-\n-    public String getParamDesc() {\n-        return paramDesc;\n-    }\n-\n-    public String[] getCompatibleParamSignatures() {\n-        return compatibleParamSignatures;\n-    }\n-\n-    public Class<?>[] getParameterClasses() {\n-        return parameterClasses;\n-    }\n-\n-    public Class<?> getReturnClass() {\n-        return returnClass;\n-    }\n-\n-    public Type[] getReturnTypes() {\n-        return returnTypes;\n-    }\n-\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    public boolean isGeneric() {\n-        return generic;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.stream.Stream;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class MethodDescriptor {\r\n+    private final Method method;\r\n+    //    private final boolean isCallBack;\r\n+//    private final boolean isFuture;\r\n+    private final String paramDesc;\r\n+    // duplicate filed as paramDesc, but with different format.\r\n+    private final String[] compatibleParamSignatures;\r\n+    private final Class<?>[] parameterClasses;\r\n+    private final Class<?> returnClass;\r\n+    private final Type[] returnTypes;\r\n+    private final String methodName;\r\n+    private final boolean generic;\r\n+\r\n+    public MethodDescriptor(Method method) {\r\n+        this.method = method;\r\n+        this.parameterClasses = method.getParameterTypes();\r\n+        this.returnClass = method.getReturnType();\r\n+        this.returnTypes = ReflectUtils.getReturnTypes(method);\r\n+        this.paramDesc = ReflectUtils.getDesc(parameterClasses);\r\n+        this.compatibleParamSignatures = Stream.of(parameterClasses)\r\n+                .map(Class::getName)\r\n+                .toArray(String[]::new);\r\n+        this.methodName = method.getName();\r\n+        this.generic = (methodName.equals($INVOKE) || methodName.equals($INVOKE_ASYNC)) && parameterClasses.length == 3;\r\n+    }\r\n+\r\n+    public boolean matchParams (String params) {\r\n+        return paramDesc.equalsIgnoreCase(params);\r\n+    }\r\n+\r\n+    public Method getMethod() {\r\n+        return method;\r\n+    }\r\n+\r\n+    public String getParamDesc() {\r\n+        return paramDesc;\r\n+    }\r\n+\r\n+    public String[] getCompatibleParamSignatures() {\r\n+        return compatibleParamSignatures;\r\n+    }\r\n+\r\n+    public Class<?>[] getParameterClasses() {\r\n+        return parameterClasses;\r\n+    }\r\n+\r\n+    public Class<?> getReturnClass() {\r\n+        return returnClass;\r\n+    }\r\n+\r\n+    public Type[] getReturnTypes() {\r\n+        return returnTypes;\r\n+    }\r\n+\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    public boolean isGeneric() {\r\n+        return generic;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ProviderMethodModel.java", "source2": "org/apache/dubbo/rpc/model/ProviderMethodModel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * Replaced with {@link MethodDescriptor}\n- */\n-@Deprecated\n-public class ProviderMethodModel {\n-    private final Method method;\n-    private final String methodName;\n-    private final Class<?>[] parameterClasses;\n-    private final String[] methodArgTypes;\n-    private final Type[] genericParameterTypes;\n-    private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();\n-\n-    public ProviderMethodModel(Method method) {\n-        this.method = method;\n-        this.methodName = method.getName();\n-        this.parameterClasses = method.getParameterTypes();\n-        this.methodArgTypes = getArgTypes(method);\n-        this.genericParameterTypes = method.getGenericParameterTypes();\n-    }\n-\n-    public Method getMethod() {\n-        return method;\n-    }\n-\n-    public String getMethodName() {\n-        return methodName;\n-    }\n-\n-    public String[] getMethodArgTypes() {\n-        return methodArgTypes;\n-    }\n-\n-    public ConcurrentMap<String, Object> getAttributeMap() {\n-        return attributeMap;\n-    }\n-\n-    private static String[] getArgTypes(Method method) {\n-        String[] methodArgTypes = new String[0];\n-        Class<?>[] parameterTypes = method.getParameterTypes();\n-        if (parameterTypes.length > 0) {\n-            methodArgTypes = new String[parameterTypes.length];\n-            int index = 0;\n-            for (Class<?> paramType : parameterTypes) {\n-                methodArgTypes[index++] = paramType.getName();\n-            }\n-        }\n-        return methodArgTypes;\n-    }\n-\n-    public Class<?>[] getParameterClasses() {\n-        return parameterClasses;\n-    }\n-\n-    public Type[] getGenericParameterTypes() {\n-        return genericParameterTypes;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * Replaced with {@link MethodDescriptor}\r\n+ */\r\n+@Deprecated\r\n+public class ProviderMethodModel {\r\n+    private final Method method;\r\n+    private final String methodName;\r\n+    private final Class<?>[] parameterClasses;\r\n+    private final String[] methodArgTypes;\r\n+    private final Type[] genericParameterTypes;\r\n+    private final ConcurrentMap<String, Object> attributeMap = new ConcurrentHashMap<>();\r\n+\r\n+    public ProviderMethodModel(Method method) {\r\n+        this.method = method;\r\n+        this.methodName = method.getName();\r\n+        this.parameterClasses = method.getParameterTypes();\r\n+        this.methodArgTypes = getArgTypes(method);\r\n+        this.genericParameterTypes = method.getGenericParameterTypes();\r\n+    }\r\n+\r\n+    public Method getMethod() {\r\n+        return method;\r\n+    }\r\n+\r\n+    public String getMethodName() {\r\n+        return methodName;\r\n+    }\r\n+\r\n+    public String[] getMethodArgTypes() {\r\n+        return methodArgTypes;\r\n+    }\r\n+\r\n+    public ConcurrentMap<String, Object> getAttributeMap() {\r\n+        return attributeMap;\r\n+    }\r\n+\r\n+    private static String[] getArgTypes(Method method) {\r\n+        String[] methodArgTypes = new String[0];\r\n+        Class<?>[] parameterTypes = method.getParameterTypes();\r\n+        if (parameterTypes.length > 0) {\r\n+            methodArgTypes = new String[parameterTypes.length];\r\n+            int index = 0;\r\n+            for (Class<?> paramType : parameterTypes) {\r\n+                methodArgTypes[index++] = paramType.getName();\r\n+            }\r\n+        }\r\n+        return methodArgTypes;\r\n+    }\r\n+\r\n+    public Class<?>[] getParameterClasses() {\r\n+        return parameterClasses;\r\n+    }\r\n+\r\n+    public Type[] getGenericParameterTypes() {\r\n+        return genericParameterTypes;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ProviderModel.java", "source2": "org/apache/dubbo/rpc/model/ProviderModel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,205 +1,205 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.BaseServiceMetadata;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.config.ServiceConfigBase;\n-\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.Arrays;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-/**\n- * ProviderModel is about published services\n- */\n-public class ProviderModel {\n-    private String serviceKey;\n-    private final Object serviceInstance;\n-    private final ServiceDescriptor serviceModel;\n-    private final ServiceConfigBase<?> serviceConfig;\n-    private final List<RegisterStatedURL> urls;\n-\n-    public ProviderModel(String serviceKey,\n-                         Object serviceInstance,\n-                         ServiceDescriptor serviceModel,\n-                         ServiceConfigBase<?> serviceConfig) {\n-        if (null == serviceInstance) {\n-            throw new IllegalArgumentException(\"Service[\" + serviceKey + \"]Target is NULL.\");\n-        }\n-\n-        this.serviceKey = serviceKey;\n-        this.serviceInstance = serviceInstance;\n-        this.serviceModel = serviceModel;\n-        this.serviceConfig = serviceConfig;\n-        this.urls = new ArrayList<>(1);\n-    }\n-\n-    public String getServiceKey() {\n-        return serviceKey;\n-    }\n-\n-\n-    public Class<?> getServiceInterfaceClass() {\n-        return serviceModel.getServiceInterfaceClass();\n-    }\n-\n-    public Object getServiceInstance() {\n-        return serviceInstance;\n-    }\n-\n-    public Set<MethodDescriptor> getAllMethods() {\n-        return serviceModel.getAllMethods();\n-    }\n-\n-    public ServiceDescriptor getServiceModel() {\n-        return serviceModel;\n-    }\n-\n-    public ServiceConfigBase getServiceConfig() {\n-        return serviceConfig;\n-    }\n-\n-    public List<RegisterStatedURL> getStatedUrl() {\n-        return urls;\n-    }\n-\n-    public void addStatedUrl(RegisterStatedURL url) {\n-        this.urls.add(url);\n-    }\n-\n-    public static class RegisterStatedURL {\n-        private volatile URL registryUrl;\n-        private volatile URL providerUrl;\n-        private volatile boolean registered;\n-\n-        public RegisterStatedURL(URL providerUrl,\n-                                 URL registryUrl,\n-                                 boolean registered) {\n-            this.providerUrl = providerUrl;\n-            this.registered = registered;\n-            this.registryUrl = registryUrl;\n-        }\n-\n-        public URL getProviderUrl() {\n-            return providerUrl;\n-        }\n-\n-        public void setProviderUrl(URL providerUrl) {\n-            this.providerUrl = providerUrl;\n-        }\n-\n-        public boolean isRegistered() {\n-            return registered;\n-        }\n-\n-        public void setRegistered(boolean registered) {\n-            this.registered = registered;\n-        }\n-\n-        public URL getRegistryUrl() {\n-            return registryUrl;\n-        }\n-\n-        public void setRegistryUrl(URL registryUrl) {\n-            this.registryUrl = registryUrl;\n-        }\n-    }\n-\n-    /* *************** Start, metadata compatible **************** */\n-\n-    private ServiceMetadata serviceMetadata;\n-    private final Map<String, List<ProviderMethodModel>> methods = new HashMap<String, List<ProviderMethodModel>>();\n-\n-    public ProviderModel(String serviceKey,\n-                         Object serviceInstance,\n-                         ServiceDescriptor serviceModel,\n-                         ServiceConfigBase<?> serviceConfig,\n-                         ServiceMetadata serviceMetadata) {\n-        this(serviceKey, serviceInstance, serviceModel, serviceConfig);\n-\n-        this.serviceMetadata = serviceMetadata;\n-        initMethod(serviceModel.getServiceInterfaceClass());\n-    }\n-\n-\n-    public void setServiceKey(String serviceKey) {\n-        this.serviceKey = serviceKey;\n-        if (serviceMetadata != null) {\n-            serviceMetadata.setServiceKey(serviceKey);\n-            serviceMetadata.setGroup(BaseServiceMetadata.groupFromServiceKey(serviceKey));\n-        }\n-    }\n-\n-    public String getServiceName() {\n-        return this.serviceMetadata.getServiceKey();\n-    }\n-\n-    public List<ProviderMethodModel> getAllMethodModels() {\n-        List<ProviderMethodModel> result = new ArrayList<ProviderMethodModel>();\n-        for (List<ProviderMethodModel> models : methods.values()) {\n-            result.addAll(models);\n-        }\n-        return result;\n-    }\n-\n-    public ProviderMethodModel getMethodModel(String methodName, String[] argTypes) {\n-        List<ProviderMethodModel> methodModels = methods.get(methodName);\n-        if (methodModels != null) {\n-            for (ProviderMethodModel methodModel : methodModels) {\n-                if (Arrays.equals(argTypes, methodModel.getMethodArgTypes())) {\n-                    return methodModel;\n-                }\n-            }\n-        }\n-        return null;\n-    }\n-\n-    public List<ProviderMethodModel> getMethodModelList(String methodName) {\n-        List<ProviderMethodModel> resultList = methods.get(methodName);\n-        return resultList == null ? Collections.emptyList() : resultList;\n-    }\n-\n-    private void initMethod(Class<?> serviceInterfaceClass) {\n-        Method[] methodsToExport;\n-        methodsToExport = serviceInterfaceClass.getMethods();\n-\n-        for (Method method : methodsToExport) {\n-            ReflectUtils.makeAccessible(method);\n-\n-            List<ProviderMethodModel> methodModels = methods.get(method.getName());\n-            if (methodModels == null) {\n-                methodModels = new ArrayList<ProviderMethodModel>();\n-                methods.put(method.getName(), methodModels);\n-            }\n-            methodModels.add(new ProviderMethodModel(method));\n-        }\n-    }\n-\n-    /**\n-     * @return serviceMetadata\n-     */\n-    public ServiceMetadata getServiceMetadata() {\n-        return serviceMetadata;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.BaseServiceMetadata;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.config.ServiceConfigBase;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.Arrays;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * ProviderModel is about published services\r\n+ */\r\n+public class ProviderModel {\r\n+    private String serviceKey;\r\n+    private final Object serviceInstance;\r\n+    private final ServiceDescriptor serviceModel;\r\n+    private final ServiceConfigBase<?> serviceConfig;\r\n+    private final List<RegisterStatedURL> urls;\r\n+\r\n+    public ProviderModel(String serviceKey,\r\n+                         Object serviceInstance,\r\n+                         ServiceDescriptor serviceModel,\r\n+                         ServiceConfigBase<?> serviceConfig) {\r\n+        if (null == serviceInstance) {\r\n+            throw new IllegalArgumentException(\"Service[\" + serviceKey + \"]Target is NULL.\");\r\n+        }\r\n+\r\n+        this.serviceKey = serviceKey;\r\n+        this.serviceInstance = serviceInstance;\r\n+        this.serviceModel = serviceModel;\r\n+        this.serviceConfig = serviceConfig;\r\n+        this.urls = new ArrayList<>(1);\r\n+    }\r\n+\r\n+    public String getServiceKey() {\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+\r\n+    public Class<?> getServiceInterfaceClass() {\r\n+        return serviceModel.getServiceInterfaceClass();\r\n+    }\r\n+\r\n+    public Object getServiceInstance() {\r\n+        return serviceInstance;\r\n+    }\r\n+\r\n+    public Set<MethodDescriptor> getAllMethods() {\r\n+        return serviceModel.getAllMethods();\r\n+    }\r\n+\r\n+    public ServiceDescriptor getServiceModel() {\r\n+        return serviceModel;\r\n+    }\r\n+\r\n+    public ServiceConfigBase getServiceConfig() {\r\n+        return serviceConfig;\r\n+    }\r\n+\r\n+    public List<RegisterStatedURL> getStatedUrl() {\r\n+        return urls;\r\n+    }\r\n+\r\n+    public void addStatedUrl(RegisterStatedURL url) {\r\n+        this.urls.add(url);\r\n+    }\r\n+\r\n+    public static class RegisterStatedURL {\r\n+        private volatile URL registryUrl;\r\n+        private volatile URL providerUrl;\r\n+        private volatile boolean registered;\r\n+\r\n+        public RegisterStatedURL(URL providerUrl,\r\n+                                 URL registryUrl,\r\n+                                 boolean registered) {\r\n+            this.providerUrl = providerUrl;\r\n+            this.registered = registered;\r\n+            this.registryUrl = registryUrl;\r\n+        }\r\n+\r\n+        public URL getProviderUrl() {\r\n+            return providerUrl;\r\n+        }\r\n+\r\n+        public void setProviderUrl(URL providerUrl) {\r\n+            this.providerUrl = providerUrl;\r\n+        }\r\n+\r\n+        public boolean isRegistered() {\r\n+            return registered;\r\n+        }\r\n+\r\n+        public void setRegistered(boolean registered) {\r\n+            this.registered = registered;\r\n+        }\r\n+\r\n+        public URL getRegistryUrl() {\r\n+            return registryUrl;\r\n+        }\r\n+\r\n+        public void setRegistryUrl(URL registryUrl) {\r\n+            this.registryUrl = registryUrl;\r\n+        }\r\n+    }\r\n+\r\n+    /* *************** Start, metadata compatible **************** */\r\n+\r\n+    private ServiceMetadata serviceMetadata;\r\n+    private final Map<String, List<ProviderMethodModel>> methods = new HashMap<String, List<ProviderMethodModel>>();\r\n+\r\n+    public ProviderModel(String serviceKey,\r\n+                         Object serviceInstance,\r\n+                         ServiceDescriptor serviceModel,\r\n+                         ServiceConfigBase<?> serviceConfig,\r\n+                         ServiceMetadata serviceMetadata) {\r\n+        this(serviceKey, serviceInstance, serviceModel, serviceConfig);\r\n+\r\n+        this.serviceMetadata = serviceMetadata;\r\n+        initMethod(serviceModel.getServiceInterfaceClass());\r\n+    }\r\n+\r\n+\r\n+    public void setServiceKey(String serviceKey) {\r\n+        this.serviceKey = serviceKey;\r\n+        if (serviceMetadata != null) {\r\n+            serviceMetadata.setServiceKey(serviceKey);\r\n+            serviceMetadata.setGroup(BaseServiceMetadata.groupFromServiceKey(serviceKey));\r\n+        }\r\n+    }\r\n+\r\n+    public String getServiceName() {\r\n+        return this.serviceMetadata.getServiceKey();\r\n+    }\r\n+\r\n+    public List<ProviderMethodModel> getAllMethodModels() {\r\n+        List<ProviderMethodModel> result = new ArrayList<ProviderMethodModel>();\r\n+        for (List<ProviderMethodModel> models : methods.values()) {\r\n+            result.addAll(models);\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    public ProviderMethodModel getMethodModel(String methodName, String[] argTypes) {\r\n+        List<ProviderMethodModel> methodModels = methods.get(methodName);\r\n+        if (methodModels != null) {\r\n+            for (ProviderMethodModel methodModel : methodModels) {\r\n+                if (Arrays.equals(argTypes, methodModel.getMethodArgTypes())) {\r\n+                    return methodModel;\r\n+                }\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public List<ProviderMethodModel> getMethodModelList(String methodName) {\r\n+        List<ProviderMethodModel> resultList = methods.get(methodName);\r\n+        return resultList == null ? Collections.emptyList() : resultList;\r\n+    }\r\n+\r\n+    private void initMethod(Class<?> serviceInterfaceClass) {\r\n+        Method[] methodsToExport;\r\n+        methodsToExport = serviceInterfaceClass.getMethods();\r\n+\r\n+        for (Method method : methodsToExport) {\r\n+            ReflectUtils.makeAccessible(method);\r\n+\r\n+            List<ProviderMethodModel> methodModels = methods.get(method.getName());\r\n+            if (methodModels == null) {\r\n+                methodModels = new ArrayList<ProviderMethodModel>();\r\n+                methods.put(method.getName(), methodModels);\r\n+            }\r\n+            methodModels.add(new ProviderMethodModel(method));\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * @return serviceMetadata\r\n+     */\r\n+    public ServiceMetadata getServiceMetadata() {\r\n+        return serviceMetadata;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ServiceDescriptor.java", "source2": "org/apache/dubbo/rpc/model/ServiceDescriptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,119 +1,119 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-\n-import java.lang.reflect.Method;\n-import java.util.Arrays;\n-import java.util.ArrayList;\n-import java.util.HashMap;\n-import java.util.HashSet;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-\n-/**\n- * ServiceModel and ServiceMetadata are to some extend duplicated with each other.\n- * We should merge them in the future.\n- */\n-public class ServiceDescriptor {\n-    private final String serviceName;\n-    private final Class<?> serviceInterfaceClass;\n-    // to accelerate search\n-    private final Map<String, List<MethodDescriptor>> methods = new HashMap<>();\n-    private final Map<String, Map<String, MethodDescriptor>> descToMethods = new HashMap<>();\n-\n-    public ServiceDescriptor(Class<?> interfaceClass) {\n-        this.serviceInterfaceClass = interfaceClass;\n-        this.serviceName = interfaceClass.getName();\n-        initMethods();\n-    }\n-\n-    private void initMethods() {\n-        Method[] methodsToExport = this.serviceInterfaceClass.getMethods();\n-        for (Method method : methodsToExport) {\n-            ReflectUtils.makeAccessible(method);\n-\n-            List<MethodDescriptor> methodModels = methods.computeIfAbsent(method.getName(), (k) -> new ArrayList<>(1));\n-            methodModels.add(new MethodDescriptor(method));\n-        }\n-\n-        methods.forEach((methodName, methodList) -> {\n-            Map<String, MethodDescriptor> descMap = descToMethods.computeIfAbsent(methodName, k -> new HashMap<>());\n-            methodList.forEach(methodModel -> descMap.put(methodModel.getParamDesc(), methodModel));\n-\n-//            Map<Class<?>[], MethodModel> typesMap = typeToMethods.computeIfAbsent(methodName, k -> new HashMap<>());\n-//            methodList.forEach(methodModel -> typesMap.put(methodModel.getParameterClasses(), methodModel));\n-        });\n-    }\n-\n-    public String getServiceName() {\n-        return serviceName;\n-    }\n-\n-    public Class<?> getServiceInterfaceClass() {\n-        return serviceInterfaceClass;\n-    }\n-\n-    public Set<MethodDescriptor> getAllMethods() {\n-        Set<MethodDescriptor> methodModels = new HashSet<>();\n-        methods.forEach((k, v) -> methodModels.addAll(v));\n-        return methodModels;\n-    }\n-\n-    /**\n-     * Does not use Optional as return type to avoid potential performance decrease.\n-     *\n-     * @param methodName\n-     * @param params\n-     * @return\n-     */\n-    public MethodDescriptor getMethod(String methodName, String params) {\n-        Map<String, MethodDescriptor> methods = descToMethods.get(methodName);\n-        if (CollectionUtils.isNotEmptyMap(methods)) {\n-            return methods.get(params);\n-        }\n-        return null;\n-    }\n-\n-    /**\n-     * Does not use Optional as return type to avoid potential performance decrease.\n-     *\n-     * @param methodName\n-     * @param paramTypes\n-     * @return\n-     */\n-    public MethodDescriptor getMethod(String methodName, Class<?>[] paramTypes) {\n-        List<MethodDescriptor> methodModels = methods.get(methodName);\n-        if (CollectionUtils.isNotEmpty(methodModels)) {\n-            for (int i = 0; i < methodModels.size(); i++) {\n-                MethodDescriptor descriptor = methodModels.get(i);\n-                if (Arrays.equals(paramTypes, descriptor.getParameterClasses())) {\n-                    return descriptor;\n-                }\n-            }\n-        }\n-        return null;\n-    }\n-\n-    public List<MethodDescriptor> getMethods(String methodName) {\n-        return methods.get(methodName);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.util.Arrays;\r\n+import java.util.ArrayList;\r\n+import java.util.HashMap;\r\n+import java.util.HashSet;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+/**\r\n+ * ServiceModel and ServiceMetadata are to some extend duplicated with each other.\r\n+ * We should merge them in the future.\r\n+ */\r\n+public class ServiceDescriptor {\r\n+    private final String serviceName;\r\n+    private final Class<?> serviceInterfaceClass;\r\n+    // to accelerate search\r\n+    private final Map<String, List<MethodDescriptor>> methods = new HashMap<>();\r\n+    private final Map<String, Map<String, MethodDescriptor>> descToMethods = new HashMap<>();\r\n+\r\n+    public ServiceDescriptor(Class<?> interfaceClass) {\r\n+        this.serviceInterfaceClass = interfaceClass;\r\n+        this.serviceName = interfaceClass.getName();\r\n+        initMethods();\r\n+    }\r\n+\r\n+    private void initMethods() {\r\n+        Method[] methodsToExport = this.serviceInterfaceClass.getMethods();\r\n+        for (Method method : methodsToExport) {\r\n+            ReflectUtils.makeAccessible(method);\r\n+\r\n+            List<MethodDescriptor> methodModels = methods.computeIfAbsent(method.getName(), (k) -> new ArrayList<>(1));\r\n+            methodModels.add(new MethodDescriptor(method));\r\n+        }\r\n+\r\n+        methods.forEach((methodName, methodList) -> {\r\n+            Map<String, MethodDescriptor> descMap = descToMethods.computeIfAbsent(methodName, k -> new HashMap<>());\r\n+            methodList.forEach(methodModel -> descMap.put(methodModel.getParamDesc(), methodModel));\r\n+\r\n+//            Map<Class<?>[], MethodModel> typesMap = typeToMethods.computeIfAbsent(methodName, k -> new HashMap<>());\r\n+//            methodList.forEach(methodModel -> typesMap.put(methodModel.getParameterClasses(), methodModel));\r\n+        });\r\n+    }\r\n+\r\n+    public String getServiceName() {\r\n+        return serviceName;\r\n+    }\r\n+\r\n+    public Class<?> getServiceInterfaceClass() {\r\n+        return serviceInterfaceClass;\r\n+    }\r\n+\r\n+    public Set<MethodDescriptor> getAllMethods() {\r\n+        Set<MethodDescriptor> methodModels = new HashSet<>();\r\n+        methods.forEach((k, v) -> methodModels.addAll(v));\r\n+        return methodModels;\r\n+    }\r\n+\r\n+    /**\r\n+     * Does not use Optional as return type to avoid potential performance decrease.\r\n+     *\r\n+     * @param methodName\r\n+     * @param params\r\n+     * @return\r\n+     */\r\n+    public MethodDescriptor getMethod(String methodName, String params) {\r\n+        Map<String, MethodDescriptor> methods = descToMethods.get(methodName);\r\n+        if (CollectionUtils.isNotEmptyMap(methods)) {\r\n+            return methods.get(params);\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    /**\r\n+     * Does not use Optional as return type to avoid potential performance decrease.\r\n+     *\r\n+     * @param methodName\r\n+     * @param paramTypes\r\n+     * @return\r\n+     */\r\n+    public MethodDescriptor getMethod(String methodName, Class<?>[] paramTypes) {\r\n+        List<MethodDescriptor> methodModels = methods.get(methodName);\r\n+        if (CollectionUtils.isNotEmpty(methodModels)) {\r\n+            for (int i = 0; i < methodModels.size(); i++) {\r\n+                MethodDescriptor descriptor = methodModels.get(i);\r\n+                if (Arrays.equals(paramTypes, descriptor.getParameterClasses())) {\r\n+                    return descriptor;\r\n+                }\r\n+            }\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public List<MethodDescriptor> getMethods(String methodName) {\r\n+        return methods.get(methodName);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ServiceMetadata.java", "source2": "org/apache/dubbo/rpc/model/ServiceMetadata.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.BaseServiceMetadata;\n-import org.apache.dubbo.common.URL;\n-\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- * Notice, this class currently has no usage inside Dubbo.\n- *\n- * data related to service level such as name, version, classloader of business service,\n- * security info, etc. Also with a AttributeMap for extension.\n- */\n-public class ServiceMetadata extends BaseServiceMetadata {\n-\n-    private String defaultGroup;\n-    private Class<?> serviceType;\n-\n-    private Object target;\n-\n-    /* will be transferred to remote side */\n-    private final Map<String, Object> attachments = new ConcurrentHashMap<String, Object>();\n-    /* used locally*/\n-    private final Map<String, Object> attributeMap = new ConcurrentHashMap<String, Object>();\n-\n-    public ServiceMetadata(String serviceInterfaceName, String group, String version, Class<?> serviceType) {\n-        this.serviceInterfaceName = serviceInterfaceName;\n-        this.defaultGroup = group;\n-        this.group = group;\n-        this.version = version;\n-        this.serviceKey = URL.buildKey(serviceInterfaceName, group, version);\n-        this.serviceType = serviceType;\n-    }\n-\n-    public ServiceMetadata() {\n-    }\n-\n-    public String getServiceKey() {\n-        return serviceKey;\n-    }\n-\n-    public Map<String, Object> getAttachments() {\n-        return attachments;\n-    }\n-\n-    public Map<String, Object> getAttributeMap() {\n-        return attributeMap;\n-    }\n-\n-    public Object getAttribute(String key) {\n-        return attributeMap.get(key);\n-    }\n-\n-    public void addAttribute(String key, Object value) {\n-        this.attributeMap.put(key, value);\n-    }\n-\n-    public void addAttachment(String key, Object value) {\n-        this.attachments.put(key, value);\n-    }\n-\n-    public Class<?> getServiceType() {\n-        return serviceType;\n-    }\n-\n-    public String getDefaultGroup() {\n-        return defaultGroup;\n-    }\n-\n-    public void setDefaultGroup(String defaultGroup) {\n-        this.defaultGroup = defaultGroup;\n-    }\n-\n-    public void setServiceType(Class<?> serviceType) {\n-        this.serviceType = serviceType;\n-    }\n-\n-    public Object getTarget() {\n-        return target;\n-    }\n-\n-    public void setTarget(Object target) {\n-        this.target = target;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.BaseServiceMetadata;\r\n+import org.apache.dubbo.common.URL;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ * Notice, this class currently has no usage inside Dubbo.\r\n+ *\r\n+ * data related to service level such as name, version, classloader of business service,\r\n+ * security info, etc. Also with a AttributeMap for extension.\r\n+ */\r\n+public class ServiceMetadata extends BaseServiceMetadata {\r\n+\r\n+    private String defaultGroup;\r\n+    private Class<?> serviceType;\r\n+\r\n+    private Object target;\r\n+\r\n+    /* will be transferred to remote side */\r\n+    private final Map<String, Object> attachments = new ConcurrentHashMap<String, Object>();\r\n+    /* used locally*/\r\n+    private final Map<String, Object> attributeMap = new ConcurrentHashMap<String, Object>();\r\n+\r\n+    public ServiceMetadata(String serviceInterfaceName, String group, String version, Class<?> serviceType) {\r\n+        this.serviceInterfaceName = serviceInterfaceName;\r\n+        this.defaultGroup = group;\r\n+        this.group = group;\r\n+        this.version = version;\r\n+        this.serviceKey = URL.buildKey(serviceInterfaceName, group, version);\r\n+        this.serviceType = serviceType;\r\n+    }\r\n+\r\n+    public ServiceMetadata() {\r\n+    }\r\n+\r\n+    public String getServiceKey() {\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+    public Map<String, Object> getAttachments() {\r\n+        return attachments;\r\n+    }\r\n+\r\n+    public Map<String, Object> getAttributeMap() {\r\n+        return attributeMap;\r\n+    }\r\n+\r\n+    public Object getAttribute(String key) {\r\n+        return attributeMap.get(key);\r\n+    }\r\n+\r\n+    public void addAttribute(String key, Object value) {\r\n+        this.attributeMap.put(key, value);\r\n+    }\r\n+\r\n+    public void addAttachment(String key, Object value) {\r\n+        this.attachments.put(key, value);\r\n+    }\r\n+\r\n+    public Class<?> getServiceType() {\r\n+        return serviceType;\r\n+    }\r\n+\r\n+    public String getDefaultGroup() {\r\n+        return defaultGroup;\r\n+    }\r\n+\r\n+    public void setDefaultGroup(String defaultGroup) {\r\n+        this.defaultGroup = defaultGroup;\r\n+    }\r\n+\r\n+    public void setServiceType(Class<?> serviceType) {\r\n+        this.serviceType = serviceType;\r\n+    }\r\n+\r\n+    public Object getTarget() {\r\n+        return target;\r\n+    }\r\n+\r\n+    public void setTarget(Object target) {\r\n+        this.target = target;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/model/ServiceRepository.java", "source2": "org/apache/dubbo/rpc/model/ServiceRepository.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,185 +1,185 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.model;\n-\n-import org.apache.dubbo.common.context.FrameworkExt;\n-import org.apache.dubbo.common.context.LifecycleAdapter;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-import org.apache.dubbo.config.ServiceConfigBase;\n-\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.BaseServiceMetadata.interfaceFromServiceKey;\n-import static org.apache.dubbo.common.BaseServiceMetadata.versionFromServiceKey;\n-\n-public class ServiceRepository extends LifecycleAdapter implements FrameworkExt {\n-\n-    public static final String NAME = \"repository\";\n-\n-    // services\n-    private ConcurrentMap<String, ServiceDescriptor> services = new ConcurrentHashMap<>();\n-\n-    // consumers\n-    private ConcurrentMap<String, ConsumerModel> consumers = new ConcurrentHashMap<>();\n-\n-    // providers\n-    private ConcurrentMap<String, ProviderModel> providers = new ConcurrentHashMap<>();\n-\n-    // useful to find a provider model quickly with serviceInterfaceName:version\n-    private ConcurrentMap<String, ProviderModel> providersWithoutGroup = new ConcurrentHashMap<>();\n-\n-    public ServiceRepository() {\n-        Set<BuiltinServiceDetector> builtinServices\n-                = ExtensionLoader.getExtensionLoader(BuiltinServiceDetector.class).getSupportedExtensionInstances();\n-        if (CollectionUtils.isNotEmpty(builtinServices)) {\n-            for (BuiltinServiceDetector service : builtinServices) {\n-                registerService(service.getService());\n-            }\n-        }\n-    }\n-\n-    public ServiceDescriptor registerService(Class<?> interfaceClazz) {\n-        return services.computeIfAbsent(interfaceClazz.getName(),\n-                _k -> new ServiceDescriptor(interfaceClazz));\n-    }\n-\n-    /**\n-     * See {@link #registerService(Class)}\n-     * <p>\n-     * we assume:\n-     * 1. services with different interfaces are not allowed to have the same path.\n-     * 2. services share the same interface but has different group/version can share the same path.\n-     * 3. path's default value is the name of the interface.\n-     *\n-     * @param path\n-     * @param interfaceClass\n-     * @return\n-     */\n-    public ServiceDescriptor registerService(String path, Class<?> interfaceClass) {\n-        ServiceDescriptor serviceDescriptor = registerService(interfaceClass);\n-        // if path is different with interface name, add extra path mapping\n-        if (!interfaceClass.getName().equals(path)) {\n-            services.putIfAbsent(path, serviceDescriptor);\n-        }\n-        return serviceDescriptor;\n-    }\n-\n-    public void unregisterService(Class<?> interfaceClazz) {\n-        unregisterService(interfaceClazz.getName());\n-    }\n-\n-    public void unregisterService(String path) {\n-        services.remove(path);\n-    }\n-\n-    public void registerConsumer(String serviceKey,\n-                                 ServiceDescriptor serviceDescriptor,\n-                                 ReferenceConfigBase<?> rc,\n-                                 Object proxy,\n-                                 ServiceMetadata serviceMetadata) {\n-        ConsumerModel consumerModel = new ConsumerModel(serviceMetadata.getServiceKey(), proxy, serviceDescriptor, rc,\n-                serviceMetadata);\n-        consumers.putIfAbsent(serviceKey, consumerModel);\n-    }\n-\n-    public void reRegisterConsumer(String newServiceKey, String serviceKey) {\n-        ConsumerModel consumerModel = consumers.get(serviceKey);\n-        consumerModel.setServiceKey(newServiceKey);\n-        consumers.putIfAbsent(newServiceKey, consumerModel);\n-        consumers.remove(serviceKey);\n-\n-    }\n-\n-    public void registerProvider(String serviceKey,\n-                                 Object serviceInstance,\n-                                 ServiceDescriptor serviceModel,\n-                                 ServiceConfigBase<?> serviceConfig,\n-                                 ServiceMetadata serviceMetadata) {\n-        ProviderModel providerModel = new ProviderModel(serviceKey, serviceInstance, serviceModel, serviceConfig,\n-                serviceMetadata);\n-        providers.putIfAbsent(serviceKey, providerModel);\n-        providersWithoutGroup.putIfAbsent(keyWithoutGroup(serviceKey), providerModel);\n-    }\n-\n-    private static String keyWithoutGroup(String serviceKey) {\n-        return interfaceFromServiceKey(serviceKey) + \":\" + versionFromServiceKey(serviceKey);\n-    }\n-\n-    public void reRegisterProvider(String newServiceKey, String serviceKey) {\n-        ProviderModel providerModel = providers.get(serviceKey);\n-        providerModel.setServiceKey(newServiceKey);\n-        providers.putIfAbsent(newServiceKey, providerModel);\n-        providers.remove(serviceKey);\n-    }\n-\n-    public List<ServiceDescriptor> getAllServices() {\n-        return Collections.unmodifiableList(new ArrayList<>(services.values()));\n-    }\n-\n-    public ServiceDescriptor lookupService(String interfaceName) {\n-        return services.get(interfaceName);\n-    }\n-\n-    public MethodDescriptor lookupMethod(String interfaceName, String methodName) {\n-        ServiceDescriptor serviceDescriptor = lookupService(interfaceName);\n-        if (serviceDescriptor == null) {\n-            return null;\n-        }\n-\n-        List<MethodDescriptor> methods = serviceDescriptor.getMethods(methodName);\n-        if (CollectionUtils.isEmpty(methods)) {\n-            return null;\n-        }\n-        return methods.iterator().next();\n-    }\n-\n-    public List<ProviderModel> getExportedServices() {\n-        return Collections.unmodifiableList(new ArrayList<>(providers.values()));\n-    }\n-\n-    public ProviderModel lookupExportedService(String serviceKey) {\n-        return providers.get(serviceKey);\n-    }\n-\n-    public ProviderModel lookupExportedServiceWithoutGroup(String key) {\n-        return providersWithoutGroup.get(key);\n-    }\n-\n-    public List<ConsumerModel> getReferredServices() {\n-        return Collections.unmodifiableList(new ArrayList<>(consumers.values()));\n-    }\n-\n-    public ConsumerModel lookupReferredService(String serviceKey) {\n-        return consumers.get(serviceKey);\n-    }\n-\n-    @Override\n-    public void destroy() throws IllegalStateException {\n-        // currently works for unit test\n-        services.clear();\n-        consumers.clear();\n-        providers.clear();\n-        providersWithoutGroup.clear();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.model;\r\n+\r\n+import org.apache.dubbo.common.context.FrameworkExt;\r\n+import org.apache.dubbo.common.context.LifecycleAdapter;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+import org.apache.dubbo.config.ServiceConfigBase;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.BaseServiceMetadata.interfaceFromServiceKey;\r\n+import static org.apache.dubbo.common.BaseServiceMetadata.versionFromServiceKey;\r\n+\r\n+public class ServiceRepository extends LifecycleAdapter implements FrameworkExt {\r\n+\r\n+    public static final String NAME = \"repository\";\r\n+\r\n+    // services\r\n+    private ConcurrentMap<String, ServiceDescriptor> services = new ConcurrentHashMap<>();\r\n+\r\n+    // consumers\r\n+    private ConcurrentMap<String, ConsumerModel> consumers = new ConcurrentHashMap<>();\r\n+\r\n+    // providers\r\n+    private ConcurrentMap<String, ProviderModel> providers = new ConcurrentHashMap<>();\r\n+\r\n+    // useful to find a provider model quickly with serviceInterfaceName:version\r\n+    private ConcurrentMap<String, ProviderModel> providersWithoutGroup = new ConcurrentHashMap<>();\r\n+\r\n+    public ServiceRepository() {\r\n+        Set<BuiltinServiceDetector> builtinServices\r\n+                = ExtensionLoader.getExtensionLoader(BuiltinServiceDetector.class).getSupportedExtensionInstances();\r\n+        if (CollectionUtils.isNotEmpty(builtinServices)) {\r\n+            for (BuiltinServiceDetector service : builtinServices) {\r\n+                registerService(service.getService());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    public ServiceDescriptor registerService(Class<?> interfaceClazz) {\r\n+        return services.computeIfAbsent(interfaceClazz.getName(),\r\n+                _k -> new ServiceDescriptor(interfaceClazz));\r\n+    }\r\n+\r\n+    /**\r\n+     * See {@link #registerService(Class)}\r\n+     * <p>\r\n+     * we assume:\r\n+     * 1. services with different interfaces are not allowed to have the same path.\r\n+     * 2. services share the same interface but has different group/version can share the same path.\r\n+     * 3. path's default value is the name of the interface.\r\n+     *\r\n+     * @param path\r\n+     * @param interfaceClass\r\n+     * @return\r\n+     */\r\n+    public ServiceDescriptor registerService(String path, Class<?> interfaceClass) {\r\n+        ServiceDescriptor serviceDescriptor = registerService(interfaceClass);\r\n+        // if path is different with interface name, add extra path mapping\r\n+        if (!interfaceClass.getName().equals(path)) {\r\n+            services.putIfAbsent(path, serviceDescriptor);\r\n+        }\r\n+        return serviceDescriptor;\r\n+    }\r\n+\r\n+    public void unregisterService(Class<?> interfaceClazz) {\r\n+        unregisterService(interfaceClazz.getName());\r\n+    }\r\n+\r\n+    public void unregisterService(String path) {\r\n+        services.remove(path);\r\n+    }\r\n+\r\n+    public void registerConsumer(String serviceKey,\r\n+                                 ServiceDescriptor serviceDescriptor,\r\n+                                 ReferenceConfigBase<?> rc,\r\n+                                 Object proxy,\r\n+                                 ServiceMetadata serviceMetadata) {\r\n+        ConsumerModel consumerModel = new ConsumerModel(serviceMetadata.getServiceKey(), proxy, serviceDescriptor, rc,\r\n+                serviceMetadata);\r\n+        consumers.putIfAbsent(serviceKey, consumerModel);\r\n+    }\r\n+\r\n+    public void reRegisterConsumer(String newServiceKey, String serviceKey) {\r\n+        ConsumerModel consumerModel = consumers.get(serviceKey);\r\n+        consumerModel.setServiceKey(newServiceKey);\r\n+        consumers.putIfAbsent(newServiceKey, consumerModel);\r\n+        consumers.remove(serviceKey);\r\n+\r\n+    }\r\n+\r\n+    public void registerProvider(String serviceKey,\r\n+                                 Object serviceInstance,\r\n+                                 ServiceDescriptor serviceModel,\r\n+                                 ServiceConfigBase<?> serviceConfig,\r\n+                                 ServiceMetadata serviceMetadata) {\r\n+        ProviderModel providerModel = new ProviderModel(serviceKey, serviceInstance, serviceModel, serviceConfig,\r\n+                serviceMetadata);\r\n+        providers.putIfAbsent(serviceKey, providerModel);\r\n+        providersWithoutGroup.putIfAbsent(keyWithoutGroup(serviceKey), providerModel);\r\n+    }\r\n+\r\n+    private static String keyWithoutGroup(String serviceKey) {\r\n+        return interfaceFromServiceKey(serviceKey) + \":\" + versionFromServiceKey(serviceKey);\r\n+    }\r\n+\r\n+    public void reRegisterProvider(String newServiceKey, String serviceKey) {\r\n+        ProviderModel providerModel = providers.get(serviceKey);\r\n+        providerModel.setServiceKey(newServiceKey);\r\n+        providers.putIfAbsent(newServiceKey, providerModel);\r\n+        providers.remove(serviceKey);\r\n+    }\r\n+\r\n+    public List<ServiceDescriptor> getAllServices() {\r\n+        return Collections.unmodifiableList(new ArrayList<>(services.values()));\r\n+    }\r\n+\r\n+    public ServiceDescriptor lookupService(String interfaceName) {\r\n+        return services.get(interfaceName);\r\n+    }\r\n+\r\n+    public MethodDescriptor lookupMethod(String interfaceName, String methodName) {\r\n+        ServiceDescriptor serviceDescriptor = lookupService(interfaceName);\r\n+        if (serviceDescriptor == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        List<MethodDescriptor> methods = serviceDescriptor.getMethods(methodName);\r\n+        if (CollectionUtils.isEmpty(methods)) {\r\n+            return null;\r\n+        }\r\n+        return methods.iterator().next();\r\n+    }\r\n+\r\n+    public List<ProviderModel> getExportedServices() {\r\n+        return Collections.unmodifiableList(new ArrayList<>(providers.values()));\r\n+    }\r\n+\r\n+    public ProviderModel lookupExportedService(String serviceKey) {\r\n+        return providers.get(serviceKey);\r\n+    }\r\n+\r\n+    public ProviderModel lookupExportedServiceWithoutGroup(String key) {\r\n+        return providersWithoutGroup.get(key);\r\n+    }\r\n+\r\n+    public List<ConsumerModel> getReferredServices() {\r\n+        return Collections.unmodifiableList(new ArrayList<>(consumers.values()));\r\n+    }\r\n+\r\n+    public ConsumerModel lookupReferredService(String serviceKey) {\r\n+        return consumers.get(serviceKey);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() throws IllegalStateException {\r\n+        // currently works for unit test\r\n+        services.clear();\r\n+        consumers.clear();\r\n+        providers.clear();\r\n+        providersWithoutGroup.clear();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/AbstractInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/AbstractInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,208 +1,208 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\n-import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.transport.CodecSupport;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.InvokeMode;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.Collections;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.atomic.AtomicBoolean;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_REMOTING_SERIALIZATION;\n-import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\n-\n-/**\n- * This Invoker works on Consumer side.\n- */\n-public abstract class AbstractInvoker<T> implements Invoker<T> {\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    private final Class<T> type;\n-\n-    private final URL url;\n-\n-    private final Map<String, Object> attachment;\n-\n-    private volatile boolean available = true;\n-\n-    private AtomicBoolean destroyed = new AtomicBoolean(false);\n-\n-    public AbstractInvoker(Class<T> type, URL url) {\n-        this(type, url, (Map<String, Object>) null);\n-    }\n-\n-    public AbstractInvoker(Class<T> type, URL url, String[] keys) {\n-        this(type, url, convertAttachment(url, keys));\n-    }\n-\n-    public AbstractInvoker(Class<T> type, URL url, Map<String, Object> attachment) {\n-        if (type == null) {\n-            throw new IllegalArgumentException(\"service type == null\");\n-        }\n-        if (url == null) {\n-            throw new IllegalArgumentException(\"service url == null\");\n-        }\n-        this.type = type;\n-        this.url = url;\n-        this.attachment = attachment == null ? null : Collections.unmodifiableMap(attachment);\n-    }\n-\n-    private static Map<String, Object> convertAttachment(URL url, String[] keys) {\n-        if (ArrayUtils.isEmpty(keys)) {\n-            return null;\n-        }\n-        Map<String, Object> attachment = new HashMap<>();\n-        for (String key : keys) {\n-            String value = url.getParameter(key);\n-            if (value != null && value.length() > 0) {\n-                attachment.put(key, value);\n-            }\n-        }\n-        return attachment;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return type;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return available;\n-    }\n-\n-    protected void setAvailable(boolean available) {\n-        this.available = available;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (!destroyed.compareAndSet(false, true)) {\n-            return;\n-        }\n-        setAvailable(false);\n-    }\n-\n-    public boolean isDestroyed() {\n-        return destroyed.get();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return getInterface() + \" -> \" + (getUrl() == null ? \"\" : getUrl().toString());\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation inv) throws RpcException {\n-        // if invoker is destroyed due to address refresh from registry, let's allow the current invoke to proceed\n-        if (destroyed.get()) {\n-            logger.warn(\"Invoker for service \" + this + \" on consumer \" + NetUtils.getLocalHost() + \" is destroyed, \"\n-                    + \", dubbo version is \" + Version.getVersion() + \", this invoker should not be used any longer\");\n-        }\n-        RpcInvocation invocation = (RpcInvocation) inv;\n-        invocation.setInvoker(this);\n-        if (CollectionUtils.isNotEmptyMap(attachment)) {\n-            invocation.addObjectAttachmentsIfAbsent(attachment);\n-        }\n-\n-        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\n-        if (CollectionUtils.isNotEmptyMap(contextAttachments)) {\n-            /**\n-             * invocation.addAttachmentsIfAbsent(context){@link RpcInvocation#addAttachmentsIfAbsent(Map)}should not be used here,\n-             * because the {@link RpcContext#setAttachment(String, String)} is passed in the Filter when the call is triggered\n-             * by the built-in retry mechanism of the Dubbo. The attachment to update RpcContext will no longer work, which is\n-             * a mistake in most cases (for example, through Filter to RpcContext output traceId and spanId and other information).\n-             */\n-            invocation.addObjectAttachments(contextAttachments);\n-        }\n-\n-        invocation.setInvokeMode(RpcUtils.getInvokeMode(url, invocation));\n-        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\n-\n-        Byte serializationId = CodecSupport.getIDByName(getUrl().getParameter(SERIALIZATION_KEY, DEFAULT_REMOTING_SERIALIZATION));\n-        if (serializationId != null) {\n-            invocation.put(SERIALIZATION_ID_KEY, serializationId);\n-        }\n-\n-        AsyncRpcResult asyncResult;\n-        try {\n-            asyncResult = (AsyncRpcResult) doInvoke(invocation);\n-        } catch (InvocationTargetException e) { // biz exception\n-            Throwable te = e.getTargetException();\n-            if (te == null) {\n-                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\n-            } else {\n-                if (te instanceof RpcException) {\n-                    ((RpcException) te).setCode(RpcException.BIZ_EXCEPTION);\n-                }\n-                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, te, invocation);\n-            }\n-        } catch (RpcException e) {\n-            if (e.isBiz()) {\n-                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\n-            } else {\n-                throw e;\n-            }\n-        } catch (Throwable e) {\n-            asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\n-        }\n-        RpcContext.getContext().setFuture(new FutureAdapter(asyncResult.getResponseFuture()));\n-        return asyncResult;\n-    }\n-\n-    protected ExecutorService getCallbackExecutor(URL url, Invocation inv) {\n-        ExecutorService sharedExecutor = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension().getExecutor(url);\n-        if (InvokeMode.SYNC == RpcUtils.getInvokeMode(getUrl(), inv)) {\n-            return new ThreadlessExecutor(sharedExecutor);\n-        } else {\n-            return sharedExecutor;\n-        }\n-    }\n-\n-    protected abstract Result doInvoke(Invocation invocation) throws Throwable;\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.threadpool.ThreadlessExecutor;\r\n+import org.apache.dubbo.common.threadpool.manager.ExecutorRepository;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.transport.CodecSupport;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.InvokeMode;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.util.Collections;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.atomic.AtomicBoolean;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_REMOTING_SERIALIZATION;\r\n+import static org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\r\n+\r\n+/**\r\n+ * This Invoker works on Consumer side.\r\n+ */\r\n+public abstract class AbstractInvoker<T> implements Invoker<T> {\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    private final Class<T> type;\r\n+\r\n+    private final URL url;\r\n+\r\n+    private final Map<String, Object> attachment;\r\n+\r\n+    private volatile boolean available = true;\r\n+\r\n+    private AtomicBoolean destroyed = new AtomicBoolean(false);\r\n+\r\n+    public AbstractInvoker(Class<T> type, URL url) {\r\n+        this(type, url, (Map<String, Object>) null);\r\n+    }\r\n+\r\n+    public AbstractInvoker(Class<T> type, URL url, String[] keys) {\r\n+        this(type, url, convertAttachment(url, keys));\r\n+    }\r\n+\r\n+    public AbstractInvoker(Class<T> type, URL url, Map<String, Object> attachment) {\r\n+        if (type == null) {\r\n+            throw new IllegalArgumentException(\"service type == null\");\r\n+        }\r\n+        if (url == null) {\r\n+            throw new IllegalArgumentException(\"service url == null\");\r\n+        }\r\n+        this.type = type;\r\n+        this.url = url;\r\n+        this.attachment = attachment == null ? null : Collections.unmodifiableMap(attachment);\r\n+    }\r\n+\r\n+    private static Map<String, Object> convertAttachment(URL url, String[] keys) {\r\n+        if (ArrayUtils.isEmpty(keys)) {\r\n+            return null;\r\n+        }\r\n+        Map<String, Object> attachment = new HashMap<>();\r\n+        for (String key : keys) {\r\n+            String value = url.getParameter(key);\r\n+            if (value != null && value.length() > 0) {\r\n+                attachment.put(key, value);\r\n+            }\r\n+        }\r\n+        return attachment;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return type;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return available;\r\n+    }\r\n+\r\n+    protected void setAvailable(boolean available) {\r\n+        this.available = available;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (!destroyed.compareAndSet(false, true)) {\r\n+            return;\r\n+        }\r\n+        setAvailable(false);\r\n+    }\r\n+\r\n+    public boolean isDestroyed() {\r\n+        return destroyed.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getInterface() + \" -> \" + (getUrl() == null ? \"\" : getUrl().toString());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation inv) throws RpcException {\r\n+        // if invoker is destroyed due to address refresh from registry, let's allow the current invoke to proceed\r\n+        if (destroyed.get()) {\r\n+            logger.warn(\"Invoker for service \" + this + \" on consumer \" + NetUtils.getLocalHost() + \" is destroyed, \"\r\n+                    + \", dubbo version is \" + Version.getVersion() + \", this invoker should not be used any longer\");\r\n+        }\r\n+        RpcInvocation invocation = (RpcInvocation) inv;\r\n+        invocation.setInvoker(this);\r\n+        if (CollectionUtils.isNotEmptyMap(attachment)) {\r\n+            invocation.addObjectAttachmentsIfAbsent(attachment);\r\n+        }\r\n+\r\n+        Map<String, Object> contextAttachments = RpcContext.getContext().getObjectAttachments();\r\n+        if (CollectionUtils.isNotEmptyMap(contextAttachments)) {\r\n+            /**\r\n+             * invocation.addAttachmentsIfAbsent(context){@link RpcInvocation#addAttachmentsIfAbsent(Map)}should not be used here,\r\n+             * because the {@link RpcContext#setAttachment(String, String)} is passed in the Filter when the call is triggered\r\n+             * by the built-in retry mechanism of the Dubbo. The attachment to update RpcContext will no longer work, which is\r\n+             * a mistake in most cases (for example, through Filter to RpcContext output traceId and spanId and other information).\r\n+             */\r\n+            invocation.addObjectAttachments(contextAttachments);\r\n+        }\r\n+\r\n+        invocation.setInvokeMode(RpcUtils.getInvokeMode(url, invocation));\r\n+        RpcUtils.attachInvocationIdIfAsync(getUrl(), invocation);\r\n+\r\n+        Byte serializationId = CodecSupport.getIDByName(getUrl().getParameter(SERIALIZATION_KEY, DEFAULT_REMOTING_SERIALIZATION));\r\n+        if (serializationId != null) {\r\n+            invocation.put(SERIALIZATION_ID_KEY, serializationId);\r\n+        }\r\n+\r\n+        AsyncRpcResult asyncResult;\r\n+        try {\r\n+            asyncResult = (AsyncRpcResult) doInvoke(invocation);\r\n+        } catch (InvocationTargetException e) { // biz exception\r\n+            Throwable te = e.getTargetException();\r\n+            if (te == null) {\r\n+                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\r\n+            } else {\r\n+                if (te instanceof RpcException) {\r\n+                    ((RpcException) te).setCode(RpcException.BIZ_EXCEPTION);\r\n+                }\r\n+                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, te, invocation);\r\n+            }\r\n+        } catch (RpcException e) {\r\n+            if (e.isBiz()) {\r\n+                asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\r\n+            } else {\r\n+                throw e;\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            asyncResult = AsyncRpcResult.newDefaultAsyncResult(null, e, invocation);\r\n+        }\r\n+        RpcContext.getContext().setFuture(new FutureAdapter(asyncResult.getResponseFuture()));\r\n+        return asyncResult;\r\n+    }\r\n+\r\n+    protected ExecutorService getCallbackExecutor(URL url, Invocation inv) {\r\n+        ExecutorService sharedExecutor = ExtensionLoader.getExtensionLoader(ExecutorRepository.class).getDefaultExtension().getExecutor(url);\r\n+        if (InvokeMode.SYNC == RpcUtils.getInvokeMode(getUrl(), inv)) {\r\n+            return new ThreadlessExecutor(sharedExecutor);\r\n+        } else {\r\n+            return sharedExecutor;\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract Result doInvoke(Invocation invocation) throws Throwable;\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/AbstractProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/AbstractProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,116 +1,116 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-/**\n- * abstract ProtocolSupport.\n- */\n-public abstract class AbstractProtocol implements Protocol {\n-\n-    protected final Logger logger = LoggerFactory.getLogger(getClass());\n-\n-    protected final Map<String, Exporter<?>> exporterMap = new ConcurrentHashMap<String, Exporter<?>>();\n-\n-    /**\n-     * <host:port, ProtocolServer>\n-     */\n-    protected final Map<String, ProtocolServer> serverMap = new ConcurrentHashMap<>();\n-\n-    //TODO SoftReference\n-    protected final Set<Invoker<?>> invokers = new ConcurrentHashSet<Invoker<?>>();\n-\n-    protected static String serviceKey(URL url) {\n-        int port = url.getParameter(Constants.BIND_PORT_KEY, url.getPort());\n-        return serviceKey(port, url.getPath(), url.getParameter(VERSION_KEY), url.getParameter(GROUP_KEY));\n-    }\n-\n-    protected static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) {\n-        return ProtocolUtils.serviceKey(port, serviceName, serviceVersion, serviceGroup);\n-    }\n-\n-    public List<ProtocolServer> getServers() {\n-        return Collections.unmodifiableList(new ArrayList<>(serverMap.values()));\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        for (Invoker<?> invoker : invokers) {\n-            if (invoker != null) {\n-                invokers.remove(invoker);\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Destroy reference: \" + invoker.getUrl());\n-                    }\n-                    invoker.destroy();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            }\n-        }\n-        for (String key : new ArrayList<String>(exporterMap.keySet())) {\n-            Exporter<?> exporter = exporterMap.remove(key);\n-            if (exporter != null) {\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Unexport service: \" + exporter.getInvoker().getUrl());\n-                    }\n-                    exporter.unexport();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\n-        return new AsyncToSyncInvoker<>(protocolBindingRefer(type, url));\n-    }\n-\n-    protected abstract <T> Invoker<T> protocolBindingRefer(Class<T> type, URL url) throws RpcException;\n-\n-    public Map<String, Exporter<?>> getExporterMap() {\n-        return exporterMap;\n-    }\n-\n-    public Collection<Exporter<?>> getExporters() {\n-        return Collections.unmodifiableCollection(exporterMap.values());\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+/**\r\n+ * abstract ProtocolSupport.\r\n+ */\r\n+public abstract class AbstractProtocol implements Protocol {\r\n+\r\n+    protected final Logger logger = LoggerFactory.getLogger(getClass());\r\n+\r\n+    protected final Map<String, Exporter<?>> exporterMap = new ConcurrentHashMap<String, Exporter<?>>();\r\n+\r\n+    /**\r\n+     * <host:port, ProtocolServer>\r\n+     */\r\n+    protected final Map<String, ProtocolServer> serverMap = new ConcurrentHashMap<>();\r\n+\r\n+    //TODO SoftReference\r\n+    protected final Set<Invoker<?>> invokers = new ConcurrentHashSet<Invoker<?>>();\r\n+\r\n+    protected static String serviceKey(URL url) {\r\n+        int port = url.getParameter(Constants.BIND_PORT_KEY, url.getPort());\r\n+        return serviceKey(port, url.getPath(), url.getParameter(VERSION_KEY), url.getParameter(GROUP_KEY));\r\n+    }\r\n+\r\n+    protected static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) {\r\n+        return ProtocolUtils.serviceKey(port, serviceName, serviceVersion, serviceGroup);\r\n+    }\r\n+\r\n+    public List<ProtocolServer> getServers() {\r\n+        return Collections.unmodifiableList(new ArrayList<>(serverMap.values()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        for (Invoker<?> invoker : invokers) {\r\n+            if (invoker != null) {\r\n+                invokers.remove(invoker);\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Destroy reference: \" + invoker.getUrl());\r\n+                    }\r\n+                    invoker.destroy();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+        for (String key : new ArrayList<String>(exporterMap.keySet())) {\r\n+            Exporter<?> exporter = exporterMap.remove(key);\r\n+            if (exporter != null) {\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Unexport service: \" + exporter.getInvoker().getUrl());\r\n+                    }\r\n+                    exporter.unexport();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> refer(Class<T> type, URL url) throws RpcException {\r\n+        return new AsyncToSyncInvoker<>(protocolBindingRefer(type, url));\r\n+    }\r\n+\r\n+    protected abstract <T> Invoker<T> protocolBindingRefer(Class<T> type, URL url) throws RpcException;\r\n+\r\n+    public Map<String, Exporter<?>> getExporterMap() {\r\n+        return exporterMap;\r\n+    }\r\n+\r\n+    public Collection<Exporter<?>> getExporters() {\r\n+        return Collections.unmodifiableCollection(exporterMap.values());\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/AsyncToSyncInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,102 +1,102 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.InvokeMode;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.TimeUnit;\n-\n-/**\n- * This class will work as a wrapper wrapping outside of each protocol invoker.\n- *\n- * @param <T>\n- */\n-public class AsyncToSyncInvoker<T> implements Invoker<T> {\n-\n-    private Invoker<T> invoker;\n-\n-    public AsyncToSyncInvoker(Invoker<T> invoker) {\n-        this.invoker = invoker;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return invoker.getInterface();\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        Result asyncResult = invoker.invoke(invocation);\n-\n-        try {\n-            if (InvokeMode.SYNC == ((RpcInvocation) invocation).getInvokeMode()) {\n-                /**\n-                 * NOTICE!\n-                 * must call {@link java.util.concurrent.CompletableFuture#get(long, TimeUnit)} because\n-                 * {@link java.util.concurrent.CompletableFuture#get()} was proved to have serious performance drop.\n-                 */\n-                asyncResult.get(Integer.MAX_VALUE, TimeUnit.MILLISECONDS);\n-            }\n-        } catch (InterruptedException e) {\n-            throw new RpcException(\"Interrupted unexpectedly while waiting for remote result to return!  method: \" +\n-                    invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        } catch (ExecutionException e) {\n-            Throwable t = e.getCause();\n-            if (t instanceof TimeoutException) {\n-                throw new RpcException(RpcException.TIMEOUT_EXCEPTION, \"Invoke remote method timeout. method: \" +\n-                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-            } else if (t instanceof RemotingException) {\n-                throw new RpcException(RpcException.NETWORK_EXCEPTION, \"Failed to invoke remote method: \" +\n-                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-            } else {\n-                throw new RpcException(RpcException.UNKNOWN_EXCEPTION, \"Fail to invoke remote method: \" +\n-                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-            }\n-        } catch (Throwable e) {\n-            throw new RpcException(e.getMessage(), e);\n-        }\n-        return asyncResult;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return invoker.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return invoker.isAvailable();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        invoker.destroy();\n-    }\n-\n-    public Invoker<T> getInvoker() {\n-        return invoker;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.InvokeMode;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+/**\r\n+ * This class will work as a wrapper wrapping outside of each protocol invoker.\r\n+ *\r\n+ * @param <T>\r\n+ */\r\n+public class AsyncToSyncInvoker<T> implements Invoker<T> {\r\n+\r\n+    private Invoker<T> invoker;\r\n+\r\n+    public AsyncToSyncInvoker(Invoker<T> invoker) {\r\n+        this.invoker = invoker;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return invoker.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        Result asyncResult = invoker.invoke(invocation);\r\n+\r\n+        try {\r\n+            if (InvokeMode.SYNC == ((RpcInvocation) invocation).getInvokeMode()) {\r\n+                /**\r\n+                 * NOTICE!\r\n+                 * must call {@link java.util.concurrent.CompletableFuture#get(long, TimeUnit)} because\r\n+                 * {@link java.util.concurrent.CompletableFuture#get()} was proved to have serious performance drop.\r\n+                 */\r\n+                asyncResult.get(Integer.MAX_VALUE, TimeUnit.MILLISECONDS);\r\n+            }\r\n+        } catch (InterruptedException e) {\r\n+            throw new RpcException(\"Interrupted unexpectedly while waiting for remote result to return!  method: \" +\r\n+                    invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        } catch (ExecutionException e) {\r\n+            Throwable t = e.getCause();\r\n+            if (t instanceof TimeoutException) {\r\n+                throw new RpcException(RpcException.TIMEOUT_EXCEPTION, \"Invoke remote method timeout. method: \" +\r\n+                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+            } else if (t instanceof RemotingException) {\r\n+                throw new RpcException(RpcException.NETWORK_EXCEPTION, \"Failed to invoke remote method: \" +\r\n+                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+            } else {\r\n+                throw new RpcException(RpcException.UNKNOWN_EXCEPTION, \"Fail to invoke remote method: \" +\r\n+                        invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+            }\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(e.getMessage(), e);\r\n+        }\r\n+        return asyncResult;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return invoker.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return invoker.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        invoker.destroy();\r\n+    }\r\n+\r\n+    public Invoker<T> getInvoker() {\r\n+        return invoker;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/FilterNode.java", "source2": "org/apache/dubbo/rpc/protocol/FilterNode.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.ListenableFilter;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-/**\n- * @see org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper\n- *\n- */\n-class FilterNode<T> implements Invoker<T>{\n-    private final Invoker<T> invoker;\n-    private final Invoker<T> next;\n-    private final Filter filter;\n-    \n-    public FilterNode(final Invoker<T> invoker, final Invoker<T> next, final Filter filter) {\n-        this.invoker = invoker;\n-        this.next = next;\n-        this.filter = filter;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return invoker.getInterface();\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return invoker.getUrl();\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return invoker.isAvailable();\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        Result asyncResult;\n-        try {\n-            asyncResult = filter.invoke(next, invocation);\n-        } catch (Exception e) {\n-            if (filter instanceof ListenableFilter) {\n-                ListenableFilter listenableFilter = ((ListenableFilter) filter);\n-                try {\n-                    Filter.Listener listener = listenableFilter.listener(invocation);\n-                    if (listener != null) {\n-                        listener.onError(e, invoker, invocation);\n-                    }\n-                } finally {\n-                    listenableFilter.removeListener(invocation);\n-                }\n-            } else if (filter instanceof Filter.Listener) {\n-                Filter.Listener listener = (Filter.Listener) filter;\n-                listener.onError(e, invoker, invocation);\n-            }\n-            throw e;\n-        } finally {\n-\n-        }\n-        return asyncResult.whenCompleteWithContext((r, t) -> {\n-            if (filter instanceof ListenableFilter) {\n-                ListenableFilter listenableFilter = ((ListenableFilter) filter);\n-                Filter.Listener listener = listenableFilter.listener(invocation);\n-                try {\n-                    if (listener != null) {\n-                        if (t == null) {\n-                            listener.onResponse(r, invoker, invocation);\n-                        } else {\n-                            listener.onError(t, invoker, invocation);\n-                        }\n-                    }\n-                } finally {\n-                    listenableFilter.removeListener(invocation);\n-                }\n-            } else if (filter instanceof Filter.Listener) {\n-                Filter.Listener listener = (Filter.Listener) filter;\n-                if (t == null) {\n-                    listener.onResponse(r, invoker, invocation);\n-                } else {\n-                    listener.onError(t, invoker, invocation);\n-                }\n-            }\n-        });\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        invoker.destroy();\n-    }\n-\n-    @Override\n-    public String toString() {\n-        return invoker.toString();\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.ListenableFilter;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+/**\r\n+ * @see org.apache.dubbo.rpc.protocol.ProtocolFilterWrapper\r\n+ *\r\n+ */\r\n+class FilterNode<T> implements Invoker<T>{\r\n+    private final Invoker<T> invoker;\r\n+    private final Invoker<T> next;\r\n+    private final Filter filter;\r\n+    \r\n+    public FilterNode(final Invoker<T> invoker, final Invoker<T> next, final Filter filter) {\r\n+        this.invoker = invoker;\r\n+        this.next = next;\r\n+        this.filter = filter;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return invoker.getInterface();\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return invoker.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return invoker.isAvailable();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        Result asyncResult;\r\n+        try {\r\n+            asyncResult = filter.invoke(next, invocation);\r\n+        } catch (Exception e) {\r\n+            if (filter instanceof ListenableFilter) {\r\n+                ListenableFilter listenableFilter = ((ListenableFilter) filter);\r\n+                try {\r\n+                    Filter.Listener listener = listenableFilter.listener(invocation);\r\n+                    if (listener != null) {\r\n+                        listener.onError(e, invoker, invocation);\r\n+                    }\r\n+                } finally {\r\n+                    listenableFilter.removeListener(invocation);\r\n+                }\r\n+            } else if (filter instanceof Filter.Listener) {\r\n+                Filter.Listener listener = (Filter.Listener) filter;\r\n+                listener.onError(e, invoker, invocation);\r\n+            }\r\n+            throw e;\r\n+        } finally {\r\n+\r\n+        }\r\n+        return asyncResult.whenCompleteWithContext((r, t) -> {\r\n+            if (filter instanceof ListenableFilter) {\r\n+                ListenableFilter listenableFilter = ((ListenableFilter) filter);\r\n+                Filter.Listener listener = listenableFilter.listener(invocation);\r\n+                try {\r\n+                    if (listener != null) {\r\n+                        if (t == null) {\r\n+                            listener.onResponse(r, invoker, invocation);\r\n+                        } else {\r\n+                            listener.onError(t, invoker, invocation);\r\n+                        }\r\n+                    }\r\n+                } finally {\r\n+                    listenableFilter.removeListener(invocation);\r\n+                }\r\n+            } else if (filter instanceof Filter.Listener) {\r\n+                Filter.Listener listener = (Filter.Listener) filter;\r\n+                if (t == null) {\r\n+                    listener.onResponse(r, invoker, invocation);\r\n+                } else {\r\n+                    listener.onError(t, invoker, invocation);\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        invoker.destroy();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return invoker.toString();\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/CallbackServiceCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,318 +1,318 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.bytecode.Wrapper;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.ProxyFactory;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker;\n-\n-import java.io.IOException;\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CALLBACK_INSTANCES_LIMIT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_PROXY_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CHANNEL_CALLBACK_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.IS_CALLBACK_SERVICE;\n-\n-/**\n- * callback service helper\n- */\n-class CallbackServiceCodec {\n-    private static final Logger logger = LoggerFactory.getLogger(CallbackServiceCodec.class);\n-\n-    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\n-    private static final DubboProtocol PROTOCOL = DubboProtocol.getDubboProtocol();\n-    private static final byte CALLBACK_NONE = 0x0;\n-    private static final byte CALLBACK_CREATE = 0x1;\n-    private static final byte CALLBACK_DESTROY = 0x2;\n-    private static final String INV_ATT_CALLBACK_KEY = \"sys_callback_arg-\";\n-\n-    private static byte isCallBack(URL url, String protocolServiceKey, String methodName, int argIndex) {\n-        // parameter callback rule: method-name.parameter-index(starting from 0).callback\n-        byte isCallback = CALLBACK_NONE;\n-        if (url != null && url.hasServiceMethodParameter(protocolServiceKey, methodName)) {\n-            String callback = url.getServiceParameter(protocolServiceKey, methodName + \".\" + argIndex + \".callback\");\n-            if (callback != null) {\n-                if (\"true\".equalsIgnoreCase(callback)) {\n-                    isCallback = CALLBACK_CREATE;\n-                } else if (\"false\".equalsIgnoreCase(callback)) {\n-                    isCallback = CALLBACK_DESTROY;\n-                }\n-            }\n-        }\n-        return isCallback;\n-    }\n-\n-    /**\n-     * export or unexport callback service on client side\n-     *\n-     * @param channel\n-     * @param url\n-     * @param clazz\n-     * @param inst\n-     * @param export\n-     * @throws IOException\n-     */\n-    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\n-    private static String exportOrUnexportCallbackService(Channel channel, URL url, Class clazz, Object inst, Boolean export) throws IOException {\n-        int instid = System.identityHashCode(inst);\n-\n-        Map<String, String> params = new HashMap<>(3);\n-        // no need to new client again\n-        params.put(IS_SERVER_KEY, Boolean.FALSE.toString());\n-        // mark it's a callback, for troubleshooting\n-        params.put(IS_CALLBACK_SERVICE, Boolean.TRUE.toString());\n-        String group = (url == null ? null : url.getParameter(GROUP_KEY));\n-        if (group != null && group.length() > 0) {\n-            params.put(GROUP_KEY, group);\n-        }\n-        // add method, for verifying against method, automatic fallback (see dubbo protocol)\n-        params.put(METHODS_KEY, StringUtils.join(Wrapper.getWrapper(clazz).getDeclaredMethodNames(), \",\"));\n-\n-        Map<String, String> tmpMap = new HashMap<>();\n-        if (url != null) {\n-            Map<String, String> parameters = url.getParameters();\n-            if (parameters != null && !parameters.isEmpty()) {\n-                tmpMap.putAll(parameters);\n-            }\n-        }\n-        tmpMap.putAll(params);\n-        \n-        tmpMap.remove(VERSION_KEY);// doesn't need to distinguish version for callback\n-        tmpMap.remove(Constants.BIND_PORT_KEY); //callback doesn't needs bind.port\n-        tmpMap.put(INTERFACE_KEY, clazz.getName());\n-        URL exportUrl = new URL(DubboProtocol.NAME, channel.getLocalAddress().getAddress().getHostAddress(), channel.getLocalAddress().getPort(), clazz.getName() + \".\" + instid, tmpMap);\n-\n-        // no need to generate multiple exporters for different channel in the same JVM, cache key cannot collide.\n-        String cacheKey = getClientSideCallbackServiceCacheKey(instid);\n-        String countKey = getClientSideCountKey(clazz.getName());\n-        if (export) {\n-            // one channel can have multiple callback instances, no need to re-export for different instance.\n-            if (!channel.hasAttribute(cacheKey)) {\n-                if (!isInstancesOverLimit(channel, url, clazz.getName(), instid, false)) {\n-                    ApplicationModel.getServiceRepository().registerService(clazz);\n-                    Invoker<?> invoker = PROXY_FACTORY.getInvoker(inst, clazz, exportUrl);\n-                    // should destroy resource?\n-                    Exporter<?> exporter = PROTOCOL.export(invoker);\n-                    // this is used for tracing if instid has published service or not.\n-                    channel.setAttribute(cacheKey, exporter);\n-                    logger.info(\"Export a callback service :\" + exportUrl + \", on \" + channel + \", url is: \" + url);\n-                    increaseInstanceCount(channel, countKey);\n-                }\n-            }\n-        } else {\n-            if (channel.hasAttribute(cacheKey)) {\n-                Exporter<?> exporter = (Exporter<?>) channel.getAttribute(cacheKey);\n-                exporter.unexport();\n-                channel.removeAttribute(cacheKey);\n-                decreaseInstanceCount(channel, countKey);\n-            }\n-        }\n-        return String.valueOf(instid);\n-    }\n-\n-    /**\n-     * refer or destroy callback service on server side\n-     *\n-     * @param url\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    private static Object referOrDestroyCallbackService(Channel channel, URL url, Class<?> clazz, Invocation inv, int instid, boolean isRefer) {\n-        Object proxy;\n-        String invokerCacheKey = getServerSideCallbackInvokerCacheKey(channel, clazz.getName(), instid);\n-        String proxyCacheKey = getServerSideCallbackServiceCacheKey(channel, clazz.getName(), instid);\n-        proxy = channel.getAttribute(proxyCacheKey);\n-        String countkey = getServerSideCountKey(channel, clazz.getName());\n-        if (isRefer) {\n-            if (proxy == null) {\n-                URL referurl = URL.valueOf(\"callback://\" + url.getAddress() + \"/\" + clazz.getName() + \"?\" + INTERFACE_KEY + \"=\" + clazz.getName());\n-                referurl = referurl.addParametersIfAbsent(url.getParameters()).removeParameter(METHODS_KEY);\n-                if (!isInstancesOverLimit(channel, referurl, clazz.getName(), instid, true)) {\n-                    ApplicationModel.getServiceRepository().registerService(clazz);\n-                    @SuppressWarnings(\"rawtypes\")\n-                    Invoker<?> invoker = new ChannelWrappedInvoker(clazz, channel, referurl, String.valueOf(instid));\n-                    proxy = PROXY_FACTORY.getProxy(new AsyncToSyncInvoker<>(invoker));\n-                    channel.setAttribute(proxyCacheKey, proxy);\n-                    channel.setAttribute(invokerCacheKey, invoker);\n-                    increaseInstanceCount(channel, countkey);\n-\n-                    //convert error fail fast .\n-                    //ignore concurrent problem.\n-                    Set<Invoker<?>> callbackInvokers = (Set<Invoker<?>>) channel.getAttribute(CHANNEL_CALLBACK_KEY);\n-                    if (callbackInvokers == null) {\n-                        callbackInvokers = new ConcurrentHashSet<>(1);\n-                        channel.setAttribute(CHANNEL_CALLBACK_KEY, callbackInvokers);\n-                    }\n-                    callbackInvokers.add(invoker);\n-                    logger.info(\"method \" + inv.getMethodName() + \" include a callback service :\" + invoker.getUrl() + \", a proxy :\" + invoker + \" has been created.\");\n-                }\n-            }\n-        } else {\n-            if (proxy != null) {\n-                Invoker<?> invoker = (Invoker<?>) channel.getAttribute(invokerCacheKey);\n-                try {\n-                    Set<Invoker<?>> callbackInvokers = (Set<Invoker<?>>) channel.getAttribute(CHANNEL_CALLBACK_KEY);\n-                    if (callbackInvokers != null) {\n-                        callbackInvokers.remove(invoker);\n-                    }\n-                    invoker.destroy();\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                }\n-                // cancel refer, directly remove from the map\n-                channel.removeAttribute(proxyCacheKey);\n-                channel.removeAttribute(invokerCacheKey);\n-                decreaseInstanceCount(channel, countkey);\n-            }\n-        }\n-        return proxy;\n-    }\n-\n-    private static String getClientSideCallbackServiceCacheKey(int instid) {\n-        return CALLBACK_SERVICE_KEY + \".\" + instid;\n-    }\n-\n-    private static String getServerSideCallbackServiceCacheKey(Channel channel, String interfaceClass, int instid) {\n-        return CALLBACK_SERVICE_PROXY_KEY + \".\" + System.identityHashCode(channel) + \".\" + interfaceClass + \".\" + instid;\n-    }\n-\n-    private static String getServerSideCallbackInvokerCacheKey(Channel channel, String interfaceClass, int instid) {\n-        return getServerSideCallbackServiceCacheKey(channel, interfaceClass, instid) + \".\" + \"invoker\";\n-    }\n-\n-    private static String getClientSideCountKey(String interfaceClass) {\n-        return CALLBACK_SERVICE_KEY + \".\" + interfaceClass + \".COUNT\";\n-    }\n-\n-    private static String getServerSideCountKey(Channel channel, String interfaceClass) {\n-        return CALLBACK_SERVICE_PROXY_KEY + \".\" + System.identityHashCode(channel) + \".\" + interfaceClass + \".COUNT\";\n-    }\n-\n-    private static boolean isInstancesOverLimit(Channel channel, URL url, String interfaceClass, int instid, boolean isServer) {\n-        Integer count = (Integer) channel.getAttribute(isServer ? getServerSideCountKey(channel, interfaceClass) : getClientSideCountKey(interfaceClass));\n-        int limit = url.getParameter(CALLBACK_INSTANCES_LIMIT_KEY, DEFAULT_CALLBACK_INSTANCES);\n-        if (count != null && count >= limit) {\n-            //client side error\n-            throw new IllegalStateException(\"interface \" + interfaceClass + \" `s callback instances num exceed providers limit :\" + limit\n-                    + \" ,current num: \" + (count + 1) + \". The new callback service will not work !!! you can cancle the callback service which exported before. channel :\" + channel);\n-        } else {\n-            return false;\n-        }\n-    }\n-\n-    private static void increaseInstanceCount(Channel channel, String countkey) {\n-        try {\n-            //ignore concurrent problem?\n-            Integer count = (Integer) channel.getAttribute(countkey);\n-            if (count == null) {\n-                count = 1;\n-            } else {\n-                count++;\n-            }\n-            channel.setAttribute(countkey, count);\n-        } catch (Exception e) {\n-            logger.error(e.getMessage(), e);\n-        }\n-    }\n-\n-    private static void decreaseInstanceCount(Channel channel, String countkey) {\n-        try {\n-            Integer count = (Integer) channel.getAttribute(countkey);\n-            if (count == null || count <= 0) {\n-                return;\n-            } else {\n-                count--;\n-            }\n-            channel.setAttribute(countkey, count);\n-        } catch (Exception e) {\n-            logger.error(e.getMessage(), e);\n-        }\n-    }\n-\n-    public static Object encodeInvocationArgument(Channel channel, RpcInvocation inv, int paraIndex) throws IOException {\n-        // get URL directly\n-        URL url = inv.getInvoker() == null ? null : inv.getInvoker().getUrl();\n-        byte callbackStatus = isCallBack(url, inv.getProtocolServiceKey(), inv.getMethodName(), paraIndex);\n-        Object[] args = inv.getArguments();\n-        Class<?>[] pts = inv.getParameterTypes();\n-        switch (callbackStatus) {\n-            case CallbackServiceCodec.CALLBACK_CREATE:\n-                inv.setAttachment(INV_ATT_CALLBACK_KEY + paraIndex, exportOrUnexportCallbackService(channel, url, pts[paraIndex], args[paraIndex], true));\n-                return null;\n-            case CallbackServiceCodec.CALLBACK_DESTROY:\n-                inv.setAttachment(INV_ATT_CALLBACK_KEY + paraIndex, exportOrUnexportCallbackService(channel, url, pts[paraIndex], args[paraIndex], false));\n-                return null;\n-            default:\n-                return args[paraIndex];\n-        }\n-    }\n-\n-    public static Object decodeInvocationArgument(Channel channel, RpcInvocation inv, Class<?>[] pts, int paraIndex, Object inObject) throws IOException {\n-        // if it's a callback, create proxy on client side, callback interface on client side can be invoked through channel\n-        // need get URL from channel and env when decode\n-        URL url = null;\n-        try {\n-            url = DubboProtocol.getDubboProtocol().getInvoker(channel, inv).getUrl();\n-        } catch (RemotingException e) {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(e.getMessage(), e);\n-            }\n-            return inObject;\n-        }\n-        byte callbackstatus = isCallBack(url, inv.getProtocolServiceKey(), inv.getMethodName(), paraIndex);\n-        switch (callbackstatus) {\n-            case CallbackServiceCodec.CALLBACK_CREATE:\n-                try {\n-                    return referOrDestroyCallbackService(channel, url, pts[paraIndex], inv, Integer.parseInt(inv.getAttachment(INV_ATT_CALLBACK_KEY + paraIndex)), true);\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                    throw new IOException(StringUtils.toString(e));\n-                }\n-            case CallbackServiceCodec.CALLBACK_DESTROY:\n-                try {\n-                    return referOrDestroyCallbackService(channel, url, pts[paraIndex], inv, Integer.parseInt(inv.getAttachment(INV_ATT_CALLBACK_KEY + paraIndex)), false);\n-                } catch (Exception e) {\n-                    throw new IOException(StringUtils.toString(e));\n-                }\n-            default:\n-                return inObject;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.bytecode.Wrapper;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.ProxyFactory;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.protocol.AsyncToSyncInvoker;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CALLBACK_INSTANCES_LIMIT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_CALLBACK_INSTANCES;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.METHODS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_PROXY_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CHANNEL_CALLBACK_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.IS_CALLBACK_SERVICE;\r\n+\r\n+/**\r\n+ * callback service helper\r\n+ */\r\n+class CallbackServiceCodec {\r\n+    private static final Logger logger = LoggerFactory.getLogger(CallbackServiceCodec.class);\r\n+\r\n+    private static final ProxyFactory PROXY_FACTORY = ExtensionLoader.getExtensionLoader(ProxyFactory.class).getAdaptiveExtension();\r\n+    private static final DubboProtocol PROTOCOL = DubboProtocol.getDubboProtocol();\r\n+    private static final byte CALLBACK_NONE = 0x0;\r\n+    private static final byte CALLBACK_CREATE = 0x1;\r\n+    private static final byte CALLBACK_DESTROY = 0x2;\r\n+    private static final String INV_ATT_CALLBACK_KEY = \"sys_callback_arg-\";\r\n+\r\n+    private static byte isCallBack(URL url, String protocolServiceKey, String methodName, int argIndex) {\r\n+        // parameter callback rule: method-name.parameter-index(starting from 0).callback\r\n+        byte isCallback = CALLBACK_NONE;\r\n+        if (url != null && url.hasServiceMethodParameter(protocolServiceKey, methodName)) {\r\n+            String callback = url.getServiceParameter(protocolServiceKey, methodName + \".\" + argIndex + \".callback\");\r\n+            if (callback != null) {\r\n+                if (\"true\".equalsIgnoreCase(callback)) {\r\n+                    isCallback = CALLBACK_CREATE;\r\n+                } else if (\"false\".equalsIgnoreCase(callback)) {\r\n+                    isCallback = CALLBACK_DESTROY;\r\n+                }\r\n+            }\r\n+        }\r\n+        return isCallback;\r\n+    }\r\n+\r\n+    /**\r\n+     * export or unexport callback service on client side\r\n+     *\r\n+     * @param channel\r\n+     * @param url\r\n+     * @param clazz\r\n+     * @param inst\r\n+     * @param export\r\n+     * @throws IOException\r\n+     */\r\n+    @SuppressWarnings({\"unchecked\", \"rawtypes\"})\r\n+    private static String exportOrUnexportCallbackService(Channel channel, URL url, Class clazz, Object inst, Boolean export) throws IOException {\r\n+        int instid = System.identityHashCode(inst);\r\n+\r\n+        Map<String, String> params = new HashMap<>(3);\r\n+        // no need to new client again\r\n+        params.put(IS_SERVER_KEY, Boolean.FALSE.toString());\r\n+        // mark it's a callback, for troubleshooting\r\n+        params.put(IS_CALLBACK_SERVICE, Boolean.TRUE.toString());\r\n+        String group = (url == null ? null : url.getParameter(GROUP_KEY));\r\n+        if (group != null && group.length() > 0) {\r\n+            params.put(GROUP_KEY, group);\r\n+        }\r\n+        // add method, for verifying against method, automatic fallback (see dubbo protocol)\r\n+        params.put(METHODS_KEY, StringUtils.join(Wrapper.getWrapper(clazz).getDeclaredMethodNames(), \",\"));\r\n+\r\n+        Map<String, String> tmpMap = new HashMap<>();\r\n+        if (url != null) {\r\n+            Map<String, String> parameters = url.getParameters();\r\n+            if (parameters != null && !parameters.isEmpty()) {\r\n+                tmpMap.putAll(parameters);\r\n+            }\r\n+        }\r\n+        tmpMap.putAll(params);\r\n+        \r\n+        tmpMap.remove(VERSION_KEY);// doesn't need to distinguish version for callback\r\n+        tmpMap.remove(Constants.BIND_PORT_KEY); //callback doesn't needs bind.port\r\n+        tmpMap.put(INTERFACE_KEY, clazz.getName());\r\n+        URL exportUrl = new URL(DubboProtocol.NAME, channel.getLocalAddress().getAddress().getHostAddress(), channel.getLocalAddress().getPort(), clazz.getName() + \".\" + instid, tmpMap);\r\n+\r\n+        // no need to generate multiple exporters for different channel in the same JVM, cache key cannot collide.\r\n+        String cacheKey = getClientSideCallbackServiceCacheKey(instid);\r\n+        String countKey = getClientSideCountKey(clazz.getName());\r\n+        if (export) {\r\n+            // one channel can have multiple callback instances, no need to re-export for different instance.\r\n+            if (!channel.hasAttribute(cacheKey)) {\r\n+                if (!isInstancesOverLimit(channel, url, clazz.getName(), instid, false)) {\r\n+                    ApplicationModel.getServiceRepository().registerService(clazz);\r\n+                    Invoker<?> invoker = PROXY_FACTORY.getInvoker(inst, clazz, exportUrl);\r\n+                    // should destroy resource?\r\n+                    Exporter<?> exporter = PROTOCOL.export(invoker);\r\n+                    // this is used for tracing if instid has published service or not.\r\n+                    channel.setAttribute(cacheKey, exporter);\r\n+                    logger.info(\"Export a callback service :\" + exportUrl + \", on \" + channel + \", url is: \" + url);\r\n+                    increaseInstanceCount(channel, countKey);\r\n+                }\r\n+            }\r\n+        } else {\r\n+            if (channel.hasAttribute(cacheKey)) {\r\n+                Exporter<?> exporter = (Exporter<?>) channel.getAttribute(cacheKey);\r\n+                exporter.unexport();\r\n+                channel.removeAttribute(cacheKey);\r\n+                decreaseInstanceCount(channel, countKey);\r\n+            }\r\n+        }\r\n+        return String.valueOf(instid);\r\n+    }\r\n+\r\n+    /**\r\n+     * refer or destroy callback service on server side\r\n+     *\r\n+     * @param url\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    private static Object referOrDestroyCallbackService(Channel channel, URL url, Class<?> clazz, Invocation inv, int instid, boolean isRefer) {\r\n+        Object proxy;\r\n+        String invokerCacheKey = getServerSideCallbackInvokerCacheKey(channel, clazz.getName(), instid);\r\n+        String proxyCacheKey = getServerSideCallbackServiceCacheKey(channel, clazz.getName(), instid);\r\n+        proxy = channel.getAttribute(proxyCacheKey);\r\n+        String countkey = getServerSideCountKey(channel, clazz.getName());\r\n+        if (isRefer) {\r\n+            if (proxy == null) {\r\n+                URL referurl = URL.valueOf(\"callback://\" + url.getAddress() + \"/\" + clazz.getName() + \"?\" + INTERFACE_KEY + \"=\" + clazz.getName());\r\n+                referurl = referurl.addParametersIfAbsent(url.getParameters()).removeParameter(METHODS_KEY);\r\n+                if (!isInstancesOverLimit(channel, referurl, clazz.getName(), instid, true)) {\r\n+                    ApplicationModel.getServiceRepository().registerService(clazz);\r\n+                    @SuppressWarnings(\"rawtypes\")\r\n+                    Invoker<?> invoker = new ChannelWrappedInvoker(clazz, channel, referurl, String.valueOf(instid));\r\n+                    proxy = PROXY_FACTORY.getProxy(new AsyncToSyncInvoker<>(invoker));\r\n+                    channel.setAttribute(proxyCacheKey, proxy);\r\n+                    channel.setAttribute(invokerCacheKey, invoker);\r\n+                    increaseInstanceCount(channel, countkey);\r\n+\r\n+                    //convert error fail fast .\r\n+                    //ignore concurrent problem.\r\n+                    Set<Invoker<?>> callbackInvokers = (Set<Invoker<?>>) channel.getAttribute(CHANNEL_CALLBACK_KEY);\r\n+                    if (callbackInvokers == null) {\r\n+                        callbackInvokers = new ConcurrentHashSet<>(1);\r\n+                        channel.setAttribute(CHANNEL_CALLBACK_KEY, callbackInvokers);\r\n+                    }\r\n+                    callbackInvokers.add(invoker);\r\n+                    logger.info(\"method \" + inv.getMethodName() + \" include a callback service :\" + invoker.getUrl() + \", a proxy :\" + invoker + \" has been created.\");\r\n+                }\r\n+            }\r\n+        } else {\r\n+            if (proxy != null) {\r\n+                Invoker<?> invoker = (Invoker<?>) channel.getAttribute(invokerCacheKey);\r\n+                try {\r\n+                    Set<Invoker<?>> callbackInvokers = (Set<Invoker<?>>) channel.getAttribute(CHANNEL_CALLBACK_KEY);\r\n+                    if (callbackInvokers != null) {\r\n+                        callbackInvokers.remove(invoker);\r\n+                    }\r\n+                    invoker.destroy();\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                }\r\n+                // cancel refer, directly remove from the map\r\n+                channel.removeAttribute(proxyCacheKey);\r\n+                channel.removeAttribute(invokerCacheKey);\r\n+                decreaseInstanceCount(channel, countkey);\r\n+            }\r\n+        }\r\n+        return proxy;\r\n+    }\r\n+\r\n+    private static String getClientSideCallbackServiceCacheKey(int instid) {\r\n+        return CALLBACK_SERVICE_KEY + \".\" + instid;\r\n+    }\r\n+\r\n+    private static String getServerSideCallbackServiceCacheKey(Channel channel, String interfaceClass, int instid) {\r\n+        return CALLBACK_SERVICE_PROXY_KEY + \".\" + System.identityHashCode(channel) + \".\" + interfaceClass + \".\" + instid;\r\n+    }\r\n+\r\n+    private static String getServerSideCallbackInvokerCacheKey(Channel channel, String interfaceClass, int instid) {\r\n+        return getServerSideCallbackServiceCacheKey(channel, interfaceClass, instid) + \".\" + \"invoker\";\r\n+    }\r\n+\r\n+    private static String getClientSideCountKey(String interfaceClass) {\r\n+        return CALLBACK_SERVICE_KEY + \".\" + interfaceClass + \".COUNT\";\r\n+    }\r\n+\r\n+    private static String getServerSideCountKey(Channel channel, String interfaceClass) {\r\n+        return CALLBACK_SERVICE_PROXY_KEY + \".\" + System.identityHashCode(channel) + \".\" + interfaceClass + \".COUNT\";\r\n+    }\r\n+\r\n+    private static boolean isInstancesOverLimit(Channel channel, URL url, String interfaceClass, int instid, boolean isServer) {\r\n+        Integer count = (Integer) channel.getAttribute(isServer ? getServerSideCountKey(channel, interfaceClass) : getClientSideCountKey(interfaceClass));\r\n+        int limit = url.getParameter(CALLBACK_INSTANCES_LIMIT_KEY, DEFAULT_CALLBACK_INSTANCES);\r\n+        if (count != null && count >= limit) {\r\n+            //client side error\r\n+            throw new IllegalStateException(\"interface \" + interfaceClass + \" `s callback instances num exceed providers limit :\" + limit\r\n+                    + \" ,current num: \" + (count + 1) + \". The new callback service will not work !!! you can cancle the callback service which exported before. channel :\" + channel);\r\n+        } else {\r\n+            return false;\r\n+        }\r\n+    }\r\n+\r\n+    private static void increaseInstanceCount(Channel channel, String countkey) {\r\n+        try {\r\n+            //ignore concurrent problem?\r\n+            Integer count = (Integer) channel.getAttribute(countkey);\r\n+            if (count == null) {\r\n+                count = 1;\r\n+            } else {\r\n+                count++;\r\n+            }\r\n+            channel.setAttribute(countkey, count);\r\n+        } catch (Exception e) {\r\n+            logger.error(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    private static void decreaseInstanceCount(Channel channel, String countkey) {\r\n+        try {\r\n+            Integer count = (Integer) channel.getAttribute(countkey);\r\n+            if (count == null || count <= 0) {\r\n+                return;\r\n+            } else {\r\n+                count--;\r\n+            }\r\n+            channel.setAttribute(countkey, count);\r\n+        } catch (Exception e) {\r\n+            logger.error(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    public static Object encodeInvocationArgument(Channel channel, RpcInvocation inv, int paraIndex) throws IOException {\r\n+        // get URL directly\r\n+        URL url = inv.getInvoker() == null ? null : inv.getInvoker().getUrl();\r\n+        byte callbackStatus = isCallBack(url, inv.getProtocolServiceKey(), inv.getMethodName(), paraIndex);\r\n+        Object[] args = inv.getArguments();\r\n+        Class<?>[] pts = inv.getParameterTypes();\r\n+        switch (callbackStatus) {\r\n+            case CallbackServiceCodec.CALLBACK_CREATE:\r\n+                inv.setAttachment(INV_ATT_CALLBACK_KEY + paraIndex, exportOrUnexportCallbackService(channel, url, pts[paraIndex], args[paraIndex], true));\r\n+                return null;\r\n+            case CallbackServiceCodec.CALLBACK_DESTROY:\r\n+                inv.setAttachment(INV_ATT_CALLBACK_KEY + paraIndex, exportOrUnexportCallbackService(channel, url, pts[paraIndex], args[paraIndex], false));\r\n+                return null;\r\n+            default:\r\n+                return args[paraIndex];\r\n+        }\r\n+    }\r\n+\r\n+    public static Object decodeInvocationArgument(Channel channel, RpcInvocation inv, Class<?>[] pts, int paraIndex, Object inObject) throws IOException {\r\n+        // if it's a callback, create proxy on client side, callback interface on client side can be invoked through channel\r\n+        // need get URL from channel and env when decode\r\n+        URL url = null;\r\n+        try {\r\n+            url = DubboProtocol.getDubboProtocol().getInvoker(channel, inv).getUrl();\r\n+        } catch (RemotingException e) {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(e.getMessage(), e);\r\n+            }\r\n+            return inObject;\r\n+        }\r\n+        byte callbackstatus = isCallBack(url, inv.getProtocolServiceKey(), inv.getMethodName(), paraIndex);\r\n+        switch (callbackstatus) {\r\n+            case CallbackServiceCodec.CALLBACK_CREATE:\r\n+                try {\r\n+                    return referOrDestroyCallbackService(channel, url, pts[paraIndex], inv, Integer.parseInt(inv.getAttachment(INV_ATT_CALLBACK_KEY + paraIndex)), true);\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                    throw new IOException(StringUtils.toString(e));\r\n+                }\r\n+            case CallbackServiceCodec.CALLBACK_DESTROY:\r\n+                try {\r\n+                    return referOrDestroyCallbackService(channel, url, pts[paraIndex], inv, Integer.parseInt(inv.getAttachment(INV_ATT_CALLBACK_KEY + paraIndex)), false);\r\n+                } catch (Exception e) {\r\n+                    throw new IOException(StringUtils.toString(e));\r\n+                }\r\n+            default:\r\n+                return inObject;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/ChannelWrappedInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/ChannelWrappedInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,183 +1,183 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient;\n-import org.apache.dubbo.remoting.transport.ClientDelegate;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.protocol.AbstractInvoker;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.net.InetSocketAddress;\n-import java.util.concurrent.CompletableFuture;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.remoting.Constants.SENT_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\n-\n-/**\n- * Server push uses this Invoker to continuously push data to client.\n- * Wrap the existing invoker on the channel.\n- */\n-class ChannelWrappedInvoker<T> extends AbstractInvoker<T> {\n-\n-    private final Channel channel;\n-    private final String serviceKey;\n-    private final ExchangeClient currentClient;\n-\n-    ChannelWrappedInvoker(Class<T> serviceType, Channel channel, URL url, String serviceKey) {\n-        super(serviceType, url, new String[]{GROUP_KEY, TOKEN_KEY});\n-        this.channel = channel;\n-        this.serviceKey = serviceKey;\n-        this.currentClient = new HeaderExchangeClient(new ChannelWrapper(this.channel), false);\n-    }\n-\n-    @Override\n-    protected Result doInvoke(Invocation invocation) throws Throwable {\n-        RpcInvocation inv = (RpcInvocation) invocation;\n-        // use interface's name as service path to export if it's not found on client side\n-        inv.setAttachment(PATH_KEY, getInterface().getName());\n-        inv.setAttachment(CALLBACK_SERVICE_KEY, serviceKey);\n-\n-        try {\n-            if (RpcUtils.isOneway(getUrl(), inv)) { // may have concurrency issue\n-                currentClient.send(inv, getUrl().getMethodParameter(invocation.getMethodName(), SENT_KEY, false));\n-                return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-            } else {\n-                CompletableFuture<AppResponse> appResponseFuture = currentClient.request(inv).thenApply(obj -> (AppResponse) obj);\n-                return new AsyncRpcResult(appResponseFuture, inv);\n-            }\n-        } catch (RpcException e) {\n-            throw e;\n-        } catch (TimeoutException e) {\n-            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, e.getMessage(), e);\n-        } catch (RemotingException e) {\n-            throw new RpcException(RpcException.NETWORK_EXCEPTION, e.getMessage(), e);\n-        } catch (Throwable e) { // here is non-biz exception, wrap it.\n-            throw new RpcException(e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public void destroy() {\n-//        super.destroy();\n-//        try {\n-//            channel.close();\n-//        } catch (Throwable t) {\n-//            logger.warn(t.getMessage(), t);\n-//        }\n-    }\n-\n-    public static class ChannelWrapper extends ClientDelegate {\n-\n-        private final Channel channel;\n-        private final URL url;\n-\n-        ChannelWrapper(Channel channel) {\n-            this.channel = channel;\n-            this.url = channel.getUrl().addParameter(\"codec\", DubboCodec.NAME);\n-        }\n-\n-        @Override\n-        public URL getUrl() {\n-            return url;\n-        }\n-\n-        @Override\n-        public ChannelHandler getChannelHandler() {\n-            return channel.getChannelHandler();\n-        }\n-\n-        @Override\n-        public InetSocketAddress getLocalAddress() {\n-            return channel.getLocalAddress();\n-        }\n-\n-        @Override\n-        public void close() {\n-            channel.close();\n-        }\n-\n-        @Override\n-        public boolean isClosed() {\n-            return channel == null || channel.isClosed();\n-        }\n-\n-        @Override\n-        public void reset(URL url) {\n-            throw new RpcException(\"ChannelInvoker can not reset.\");\n-        }\n-\n-        @Override\n-        public InetSocketAddress getRemoteAddress() {\n-            return channel.getLocalAddress();\n-        }\n-\n-        @Override\n-        public boolean isConnected() {\n-            return channel != null && channel.isConnected();\n-        }\n-\n-        @Override\n-        public boolean hasAttribute(String key) {\n-            return channel.hasAttribute(key);\n-        }\n-\n-        @Override\n-        public Object getAttribute(String key) {\n-            return channel.getAttribute(key);\n-        }\n-\n-        @Override\n-        public void setAttribute(String key, Object value) {\n-            channel.setAttribute(key, value);\n-        }\n-\n-        @Override\n-        public void removeAttribute(String key) {\n-            channel.removeAttribute(key);\n-        }\n-\n-        @Override\n-        public void reconnect() throws RemotingException {\n-\n-        }\n-\n-        @Override\n-        public void send(Object message) throws RemotingException {\n-            channel.send(message);\n-        }\n-\n-        @Override\n-        public void send(Object message, boolean sent) throws RemotingException {\n-            channel.send(message, sent);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.remoting.exchange.support.header.HeaderExchangeClient;\r\n+import org.apache.dubbo.remoting.transport.ClientDelegate;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.protocol.AbstractInvoker;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.concurrent.CompletableFuture;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SENT_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\r\n+\r\n+/**\r\n+ * Server push uses this Invoker to continuously push data to client.\r\n+ * Wrap the existing invoker on the channel.\r\n+ */\r\n+class ChannelWrappedInvoker<T> extends AbstractInvoker<T> {\r\n+\r\n+    private final Channel channel;\r\n+    private final String serviceKey;\r\n+    private final ExchangeClient currentClient;\r\n+\r\n+    ChannelWrappedInvoker(Class<T> serviceType, Channel channel, URL url, String serviceKey) {\r\n+        super(serviceType, url, new String[]{GROUP_KEY, TOKEN_KEY});\r\n+        this.channel = channel;\r\n+        this.serviceKey = serviceKey;\r\n+        this.currentClient = new HeaderExchangeClient(new ChannelWrapper(this.channel), false);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(Invocation invocation) throws Throwable {\r\n+        RpcInvocation inv = (RpcInvocation) invocation;\r\n+        // use interface's name as service path to export if it's not found on client side\r\n+        inv.setAttachment(PATH_KEY, getInterface().getName());\r\n+        inv.setAttachment(CALLBACK_SERVICE_KEY, serviceKey);\r\n+\r\n+        try {\r\n+            if (RpcUtils.isOneway(getUrl(), inv)) { // may have concurrency issue\r\n+                currentClient.send(inv, getUrl().getMethodParameter(invocation.getMethodName(), SENT_KEY, false));\r\n+                return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+            } else {\r\n+                CompletableFuture<AppResponse> appResponseFuture = currentClient.request(inv).thenApply(obj -> (AppResponse) obj);\r\n+                return new AsyncRpcResult(appResponseFuture, inv);\r\n+            }\r\n+        } catch (RpcException e) {\r\n+            throw e;\r\n+        } catch (TimeoutException e) {\r\n+            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, e.getMessage(), e);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(RpcException.NETWORK_EXCEPTION, e.getMessage(), e);\r\n+        } catch (Throwable e) { // here is non-biz exception, wrap it.\r\n+            throw new RpcException(e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+//        super.destroy();\r\n+//        try {\r\n+//            channel.close();\r\n+//        } catch (Throwable t) {\r\n+//            logger.warn(t.getMessage(), t);\r\n+//        }\r\n+    }\r\n+\r\n+    public static class ChannelWrapper extends ClientDelegate {\r\n+\r\n+        private final Channel channel;\r\n+        private final URL url;\r\n+\r\n+        ChannelWrapper(Channel channel) {\r\n+            this.channel = channel;\r\n+            this.url = channel.getUrl().addParameter(\"codec\", DubboCodec.NAME);\r\n+        }\r\n+\r\n+        @Override\r\n+        public URL getUrl() {\r\n+            return url;\r\n+        }\r\n+\r\n+        @Override\r\n+        public ChannelHandler getChannelHandler() {\r\n+            return channel.getChannelHandler();\r\n+        }\r\n+\r\n+        @Override\r\n+        public InetSocketAddress getLocalAddress() {\r\n+            return channel.getLocalAddress();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void close() {\r\n+            channel.close();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isClosed() {\r\n+            return channel == null || channel.isClosed();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void reset(URL url) {\r\n+            throw new RpcException(\"ChannelInvoker can not reset.\");\r\n+        }\r\n+\r\n+        @Override\r\n+        public InetSocketAddress getRemoteAddress() {\r\n+            return channel.getLocalAddress();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean isConnected() {\r\n+            return channel != null && channel.isConnected();\r\n+        }\r\n+\r\n+        @Override\r\n+        public boolean hasAttribute(String key) {\r\n+            return channel.hasAttribute(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object getAttribute(String key) {\r\n+            return channel.getAttribute(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setAttribute(String key, Object value) {\r\n+            channel.setAttribute(key, value);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void removeAttribute(String key) {\r\n+            channel.removeAttribute(key);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void reconnect() throws RemotingException {\r\n+\r\n+        }\r\n+\r\n+        @Override\r\n+        public void send(Object message) throws RemotingException {\r\n+            channel.send(message);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void send(Object message, boolean sent) throws RemotingException {\r\n+            channel.send(message, sent);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/Constants.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-/**\n- *\n- */\n-public interface Constants {\n-\n-    String SHARE_CONNECTIONS_KEY = \"shareconnections\";\n-\n-    /**\n-     * By default, a consumer JVM instance and a provider JVM instance share a long TCP connection (except when connections are set),\n-     * which can set the number of long TCP connections shared to avoid the bottleneck of sharing a single long TCP connection.\n-     */\n-    String DEFAULT_SHARE_CONNECTIONS = \"1\";\n-\n-    String DECODE_IN_IO_THREAD_KEY = \"decode.in.io\";\n-\n-    boolean DEFAULT_DECODE_IN_IO_THREAD = false;\n-\n-    /**\n-     * callback inst id\n-     */\n-    String CALLBACK_SERVICE_KEY = \"callback.service.instid\";\n-\n-    String CALLBACK_SERVICE_PROXY_KEY = \"callback.service.proxy\";\n-\n-    String IS_CALLBACK_SERVICE = \"is_callback_service\";\n-\n-    /**\n-     * Invokers in channel's callback\n-     */\n-    String CHANNEL_CALLBACK_KEY = \"channel.callback.invokers.key\";\n-\n-    /**\n-     * The initial state for lazy connection\n-     */\n-    String LAZY_CONNECT_INITIAL_STATE_KEY = \"connect.lazy.initial.state\";\n-\n-    /**\n-     * The default value of lazy connection's initial state: true\n-     *\n-     * @see #LAZY_CONNECT_INITIAL_STATE_KEY\n-     */\n-    boolean DEFAULT_LAZY_CONNECT_INITIAL_STATE = true;\n-\n-    String OPTIMIZER_KEY = \"optimizer\";\n-\n-    String ON_CONNECT_KEY = \"onconnect\";\n-\n-    String ON_DISCONNECT_KEY = \"ondisconnect\";\n-\n-    String ASYNC_METHOD_INFO = \"async-method-info\";\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public interface Constants {\r\n+\r\n+    String SHARE_CONNECTIONS_KEY = \"shareconnections\";\r\n+\r\n+    /**\r\n+     * By default, a consumer JVM instance and a provider JVM instance share a long TCP connection (except when connections are set),\r\n+     * which can set the number of long TCP connections shared to avoid the bottleneck of sharing a single long TCP connection.\r\n+     */\r\n+    String DEFAULT_SHARE_CONNECTIONS = \"1\";\r\n+\r\n+    String DECODE_IN_IO_THREAD_KEY = \"decode.in.io\";\r\n+\r\n+    boolean DEFAULT_DECODE_IN_IO_THREAD = false;\r\n+\r\n+    /**\r\n+     * callback inst id\r\n+     */\r\n+    String CALLBACK_SERVICE_KEY = \"callback.service.instid\";\r\n+\r\n+    String CALLBACK_SERVICE_PROXY_KEY = \"callback.service.proxy\";\r\n+\r\n+    String IS_CALLBACK_SERVICE = \"is_callback_service\";\r\n+\r\n+    /**\r\n+     * Invokers in channel's callback\r\n+     */\r\n+    String CHANNEL_CALLBACK_KEY = \"channel.callback.invokers.key\";\r\n+\r\n+    /**\r\n+     * The initial state for lazy connection\r\n+     */\r\n+    String LAZY_CONNECT_INITIAL_STATE_KEY = \"connect.lazy.initial.state\";\r\n+\r\n+    /**\r\n+     * The default value of lazy connection's initial state: true\r\n+     *\r\n+     * @see #LAZY_CONNECT_INITIAL_STATE_KEY\r\n+     */\r\n+    boolean DEFAULT_LAZY_CONNECT_INITIAL_STATE = true;\r\n+\r\n+    String OPTIMIZER_KEY = \"optimizer\";\r\n+\r\n+    String ON_CONNECT_KEY = \"onconnect\";\r\n+\r\n+    String ON_DISCONNECT_KEY = \"ondisconnect\";\r\n+\r\n+    String ASYNC_METHOD_INFO = \"async-method-info\";\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,195 +1,195 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.utils.Assert;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec;\n-import org.apache.dubbo.remoting.Decodeable;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.transport.CodecSupport;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.MethodDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceDescriptor;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.URL.buildKey;\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_SECURITY_CHECK_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.CallbackServiceCodec.decodeInvocationArgument;\n-\n-public class DecodeableRpcInvocation extends RpcInvocation implements Codec, Decodeable {\n-\n-    private static final Logger log = LoggerFactory.getLogger(DecodeableRpcInvocation.class);\n-\n-    private Channel channel;\n-\n-    private byte serializationType;\n-\n-    private InputStream inputStream;\n-\n-    private Request request;\n-\n-    private volatile boolean hasDecoded;\n-\n-    public DecodeableRpcInvocation(Channel channel, Request request, InputStream is, byte id) {\n-        Assert.notNull(channel, \"channel == null\");\n-        Assert.notNull(request, \"request == null\");\n-        Assert.notNull(is, \"inputStream == null\");\n-        this.channel = channel;\n-        this.request = request;\n-        this.inputStream = is;\n-        this.serializationType = id;\n-    }\n-\n-    @Override\n-    public void decode() throws Exception {\n-        if (!hasDecoded && channel != null && inputStream != null) {\n-            try {\n-                decode(channel, inputStream);\n-            } catch (Throwable e) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Decode rpc invocation failed: \" + e.getMessage(), e);\n-                }\n-                request.setBroken(true);\n-                request.setData(e);\n-            } finally {\n-                hasDecoded = true;\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void encode(Channel channel, OutputStream output, Object message) throws IOException {\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    private void checkSerializationTypeFromRemote() {\n-\n-    }\n-\n-    @Override\n-    public Object decode(Channel channel, InputStream input) throws IOException {\n-        ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), serializationType)\n-                .deserialize(channel.getUrl(), input);\n-        this.put(SERIALIZATION_ID_KEY, serializationType);\n-\n-        String dubboVersion = in.readUTF();\n-        request.setVersion(dubboVersion);\n-        setAttachment(DUBBO_VERSION_KEY, dubboVersion);\n-\n-        String path = in.readUTF();\n-        setAttachment(PATH_KEY, path);\n-        String version = in.readUTF();\n-        setAttachment(VERSION_KEY, version);\n-\n-        setMethodName(in.readUTF());\n-\n-        String desc = in.readUTF();\n-        setParameterTypesDesc(desc);\n-\n-        try {\n-            if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) {\n-                CodecSupport.checkSerialization(path, version, serializationType);\n-            }\n-            Object[] args = DubboCodec.EMPTY_OBJECT_ARRAY;\n-            Class<?>[] pts = DubboCodec.EMPTY_CLASS_ARRAY;\n-            if (desc.length() > 0) {\n-//                if (RpcUtils.isGenericCall(path, getMethodName()) || RpcUtils.isEcho(path, getMethodName())) {\n-//                    pts = ReflectUtils.desc2classArray(desc);\n-//                } else {\n-                ServiceRepository repository = ApplicationModel.getServiceRepository();\n-                ServiceDescriptor serviceDescriptor = repository.lookupService(path);\n-                if (serviceDescriptor != null) {\n-                    MethodDescriptor methodDescriptor = serviceDescriptor.getMethod(getMethodName(), desc);\n-                    if (methodDescriptor != null) {\n-                        pts = methodDescriptor.getParameterClasses();\n-                        this.setReturnTypes(methodDescriptor.getReturnTypes());\n-                    }\n-                }\n-                if (pts == DubboCodec.EMPTY_CLASS_ARRAY) {\n-                    if (!RpcUtils.isGenericCall(desc, getMethodName()) && !RpcUtils.isEcho(desc, getMethodName())) {\n-                        throw new IllegalArgumentException(\"Service not found:\" + path + \", \" + getMethodName());\n-                    }\n-                    pts = ReflectUtils.desc2classArray(desc);\n-                }\n-//                }\n-\n-                args = new Object[pts.length];\n-                for (int i = 0; i < args.length; i++) {\n-                    try {\n-                        args[i] = in.readObject(pts[i]);\n-                    } catch (Exception e) {\n-                        if (log.isWarnEnabled()) {\n-                            log.warn(\"Decode argument failed: \" + e.getMessage(), e);\n-                        }\n-                    }\n-                }\n-            }\n-            setParameterTypes(pts);\n-\n-            Map<String, Object> map = in.readAttachments();\n-            if (map != null && map.size() > 0) {\n-                Map<String, Object> attachment = getObjectAttachments();\n-                if (attachment == null) {\n-                    attachment = new HashMap<>();\n-                }\n-                attachment.putAll(map);\n-                setObjectAttachments(attachment);\n-            }\n-\n-            //decode argument ,may be callback\n-            for (int i = 0; i < args.length; i++) {\n-                args[i] = decodeInvocationArgument(channel, this, pts, i, args[i]);\n-            }\n-\n-            setArguments(args);\n-            String targetServiceName = buildKey((String) getAttachment(PATH_KEY),\n-                    getAttachment(GROUP_KEY),\n-                    getAttachment(VERSION_KEY));\n-            setTargetServiceUniqueName(targetServiceName);\n-        } catch (ClassNotFoundException e) {\n-            throw new IOException(StringUtils.toString(\"Read invocation data failed.\", e));\n-        } finally {\n-            if (in instanceof Cleanable) {\n-                ((Cleanable) in).cleanup();\n-            }\n-        }\n-        return this;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.utils.Assert;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec;\r\n+import org.apache.dubbo.remoting.Decodeable;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.transport.CodecSupport;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.MethodDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceDescriptor;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.URL.buildKey;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_SECURITY_CHECK_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.CallbackServiceCodec.decodeInvocationArgument;\r\n+\r\n+public class DecodeableRpcInvocation extends RpcInvocation implements Codec, Decodeable {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(DecodeableRpcInvocation.class);\r\n+\r\n+    private Channel channel;\r\n+\r\n+    private byte serializationType;\r\n+\r\n+    private InputStream inputStream;\r\n+\r\n+    private Request request;\r\n+\r\n+    private volatile boolean hasDecoded;\r\n+\r\n+    public DecodeableRpcInvocation(Channel channel, Request request, InputStream is, byte id) {\r\n+        Assert.notNull(channel, \"channel == null\");\r\n+        Assert.notNull(request, \"request == null\");\r\n+        Assert.notNull(is, \"inputStream == null\");\r\n+        this.channel = channel;\r\n+        this.request = request;\r\n+        this.inputStream = is;\r\n+        this.serializationType = id;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void decode() throws Exception {\r\n+        if (!hasDecoded && channel != null && inputStream != null) {\r\n+            try {\r\n+                decode(channel, inputStream);\r\n+            } catch (Throwable e) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Decode rpc invocation failed: \" + e.getMessage(), e);\r\n+                }\r\n+                request.setBroken(true);\r\n+                request.setData(e);\r\n+            } finally {\r\n+                hasDecoded = true;\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void encode(Channel channel, OutputStream output, Object message) throws IOException {\r\n+        throw new UnsupportedOperationException();\r\n+    }\r\n+\r\n+    private void checkSerializationTypeFromRemote() {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object decode(Channel channel, InputStream input) throws IOException {\r\n+        ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), serializationType)\r\n+                .deserialize(channel.getUrl(), input);\r\n+        this.put(SERIALIZATION_ID_KEY, serializationType);\r\n+\r\n+        String dubboVersion = in.readUTF();\r\n+        request.setVersion(dubboVersion);\r\n+        setAttachment(DUBBO_VERSION_KEY, dubboVersion);\r\n+\r\n+        String path = in.readUTF();\r\n+        setAttachment(PATH_KEY, path);\r\n+        String version = in.readUTF();\r\n+        setAttachment(VERSION_KEY, version);\r\n+\r\n+        setMethodName(in.readUTF());\r\n+\r\n+        String desc = in.readUTF();\r\n+        setParameterTypesDesc(desc);\r\n+\r\n+        try {\r\n+            if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) {\r\n+                CodecSupport.checkSerialization(path, version, serializationType);\r\n+            }\r\n+            Object[] args = DubboCodec.EMPTY_OBJECT_ARRAY;\r\n+            Class<?>[] pts = DubboCodec.EMPTY_CLASS_ARRAY;\r\n+            if (desc.length() > 0) {\r\n+//                if (RpcUtils.isGenericCall(path, getMethodName()) || RpcUtils.isEcho(path, getMethodName())) {\r\n+//                    pts = ReflectUtils.desc2classArray(desc);\r\n+//                } else {\r\n+                ServiceRepository repository = ApplicationModel.getServiceRepository();\r\n+                ServiceDescriptor serviceDescriptor = repository.lookupService(path);\r\n+                if (serviceDescriptor != null) {\r\n+                    MethodDescriptor methodDescriptor = serviceDescriptor.getMethod(getMethodName(), desc);\r\n+                    if (methodDescriptor != null) {\r\n+                        pts = methodDescriptor.getParameterClasses();\r\n+                        this.setReturnTypes(methodDescriptor.getReturnTypes());\r\n+                    }\r\n+                }\r\n+                if (pts == DubboCodec.EMPTY_CLASS_ARRAY) {\r\n+                    if (!RpcUtils.isGenericCall(desc, getMethodName()) && !RpcUtils.isEcho(desc, getMethodName())) {\r\n+                        throw new IllegalArgumentException(\"Service not found:\" + path + \", \" + getMethodName());\r\n+                    }\r\n+                    pts = ReflectUtils.desc2classArray(desc);\r\n+                }\r\n+//                }\r\n+\r\n+                args = new Object[pts.length];\r\n+                for (int i = 0; i < args.length; i++) {\r\n+                    try {\r\n+                        args[i] = in.readObject(pts[i]);\r\n+                    } catch (Exception e) {\r\n+                        if (log.isWarnEnabled()) {\r\n+                            log.warn(\"Decode argument failed: \" + e.getMessage(), e);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            }\r\n+            setParameterTypes(pts);\r\n+\r\n+            Map<String, Object> map = in.readAttachments();\r\n+            if (map != null && map.size() > 0) {\r\n+                Map<String, Object> attachment = getObjectAttachments();\r\n+                if (attachment == null) {\r\n+                    attachment = new HashMap<>();\r\n+                }\r\n+                attachment.putAll(map);\r\n+                setObjectAttachments(attachment);\r\n+            }\r\n+\r\n+            //decode argument ,may be callback\r\n+            for (int i = 0; i < args.length; i++) {\r\n+                args[i] = decodeInvocationArgument(channel, this, pts, i, args[i]);\r\n+            }\r\n+\r\n+            setArguments(args);\r\n+            String targetServiceName = buildKey((String) getAttachment(PATH_KEY),\r\n+                    getAttachment(GROUP_KEY),\r\n+                    getAttachment(VERSION_KEY));\r\n+            setTargetServiceUniqueName(targetServiceName);\r\n+        } catch (ClassNotFoundException e) {\r\n+            throw new IOException(StringUtils.toString(\"Read invocation data failed.\", e));\r\n+        } finally {\r\n+            if (in instanceof Cleanable) {\r\n+                ((Cleanable) in).cleanup();\r\n+            }\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DecodeableRpcResult.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,184 +1,184 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.Cleanable;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.utils.ArrayUtils;\n-import org.apache.dubbo.common.utils.Assert;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec;\n-import org.apache.dubbo.remoting.Decodeable;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.transport.CodecSupport;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-import java.lang.reflect.Type;\n-\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_SECURITY_CHECK_KEY;\n-\n-public class DecodeableRpcResult extends AppResponse implements Codec, Decodeable {\n-\n-    private static final Logger log = LoggerFactory.getLogger(DecodeableRpcResult.class);\n-\n-    private Channel channel;\n-\n-    private byte serializationType;\n-\n-    private InputStream inputStream;\n-\n-    private Response response;\n-\n-    private Invocation invocation;\n-\n-    private volatile boolean hasDecoded;\n-\n-    public DecodeableRpcResult(Channel channel, Response response, InputStream is, Invocation invocation, byte id) {\n-        Assert.notNull(channel, \"channel == null\");\n-        Assert.notNull(response, \"response == null\");\n-        Assert.notNull(is, \"inputStream == null\");\n-        this.channel = channel;\n-        this.response = response;\n-        this.inputStream = is;\n-        this.invocation = invocation;\n-        this.serializationType = id;\n-    }\n-\n-    @Override\n-    public void encode(Channel channel, OutputStream output, Object message) throws IOException {\n-        throw new UnsupportedOperationException();\n-    }\n-\n-    @Override\n-    public Object decode(Channel channel, InputStream input) throws IOException {\n-        if (log.isDebugEnabled()) {\n-            Thread thread = Thread.currentThread();\n-            log.debug(\"Decoding in thread -- [\" + thread.getName() + \"#\" + thread.getId() + \"]\");\n-        }\n-\n-        ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), serializationType)\n-                .deserialize(channel.getUrl(), input);\n-\n-        byte flag = in.readByte();\n-        switch (flag) {\n-            case DubboCodec.RESPONSE_NULL_VALUE:\n-                break;\n-            case DubboCodec.RESPONSE_VALUE:\n-                handleValue(in);\n-                break;\n-            case DubboCodec.RESPONSE_WITH_EXCEPTION:\n-                handleException(in);\n-                break;\n-            case DubboCodec.RESPONSE_NULL_VALUE_WITH_ATTACHMENTS:\n-                handleAttachment(in);\n-                break;\n-            case DubboCodec.RESPONSE_VALUE_WITH_ATTACHMENTS:\n-                handleValue(in);\n-                handleAttachment(in);\n-                break;\n-            case DubboCodec.RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS:\n-                handleException(in);\n-                handleAttachment(in);\n-                break;\n-            default:\n-                throw new IOException(\"Unknown result flag, expect '0' '1' '2' '3' '4' '5', but received: \" + flag);\n-        }\n-        if (in instanceof Cleanable) {\n-            ((Cleanable) in).cleanup();\n-        }\n-        return this;\n-    }\n-\n-    @Override\n-    public void decode() throws Exception {\n-        if (!hasDecoded && channel != null && inputStream != null) {\n-            try {\n-                if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) {\n-                    Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\n-                    if (serializationType_obj != null) {\n-                        if ((byte) serializationType_obj != serializationType) {\n-                            throw new IOException(\"Unexpected serialization id:\" + serializationType + \" received from network, please check if the peer send the right id.\");\n-                        }\n-                    }\n-                }\n-                decode(channel, inputStream);\n-            } catch (Throwable e) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Decode rpc result failed: \" + e.getMessage(), e);\n-                }\n-                response.setStatus(Response.CLIENT_ERROR);\n-                response.setErrorMessage(StringUtils.toString(e));\n-            } finally {\n-                hasDecoded = true;\n-            }\n-        }\n-    }\n-\n-    private void handleValue(ObjectInput in) throws IOException {\n-        try {\n-            Type[] returnTypes;\n-            if (invocation instanceof RpcInvocation) {\n-                returnTypes = ((RpcInvocation) invocation).getReturnTypes();\n-            } else {\n-                returnTypes = RpcUtils.getReturnTypes(invocation);\n-            }\n-            Object value = null;\n-            if (ArrayUtils.isEmpty(returnTypes)) {\n-                // This almost never happens?\n-                value = in.readObject();\n-            } else if (returnTypes.length == 1) {\n-                value = in.readObject((Class<?>) returnTypes[0]);\n-            } else {\n-                value = in.readObject((Class<?>) returnTypes[0], returnTypes[1]);\n-            }\n-            setValue(value);\n-        } catch (ClassNotFoundException e) {\n-            rethrow(e);\n-        }\n-    }\n-\n-    private void handleException(ObjectInput in) throws IOException {\n-        try {\n-            setException(in.readThrowable());\n-        } catch (ClassNotFoundException e) {\n-            rethrow(e);\n-        }\n-    }\n-\n-    private void handleAttachment(ObjectInput in) throws IOException {\n-        try {\n-            addObjectAttachments(in.readAttachments());\n-        } catch (ClassNotFoundException e) {\n-            rethrow(e);\n-        }\n-    }\n-\n-    private void rethrow(Exception e) throws IOException {\n-        throw new IOException(StringUtils.toString(\"Read response data failed.\", e));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.Cleanable;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.utils.ArrayUtils;\r\n+import org.apache.dubbo.common.utils.Assert;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec;\r\n+import org.apache.dubbo.remoting.Decodeable;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.transport.CodecSupport;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+import java.lang.reflect.Type;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_SECURITY_CHECK_KEY;\r\n+\r\n+public class DecodeableRpcResult extends AppResponse implements Codec, Decodeable {\r\n+\r\n+    private static final Logger log = LoggerFactory.getLogger(DecodeableRpcResult.class);\r\n+\r\n+    private Channel channel;\r\n+\r\n+    private byte serializationType;\r\n+\r\n+    private InputStream inputStream;\r\n+\r\n+    private Response response;\r\n+\r\n+    private Invocation invocation;\r\n+\r\n+    private volatile boolean hasDecoded;\r\n+\r\n+    public DecodeableRpcResult(Channel channel, Response response, InputStream is, Invocation invocation, byte id) {\r\n+        Assert.notNull(channel, \"channel == null\");\r\n+        Assert.notNull(response, \"response == null\");\r\n+        Assert.notNull(is, \"inputStream == null\");\r\n+        this.channel = channel;\r\n+        this.response = response;\r\n+        this.inputStream = is;\r\n+        this.invocation = invocation;\r\n+        this.serializationType = id;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void encode(Channel channel, OutputStream output, Object message) throws IOException {\r\n+        throw new UnsupportedOperationException();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object decode(Channel channel, InputStream input) throws IOException {\r\n+        if (log.isDebugEnabled()) {\r\n+            Thread thread = Thread.currentThread();\r\n+            log.debug(\"Decoding in thread -- [\" + thread.getName() + \"#\" + thread.getId() + \"]\");\r\n+        }\r\n+\r\n+        ObjectInput in = CodecSupport.getSerialization(channel.getUrl(), serializationType)\r\n+                .deserialize(channel.getUrl(), input);\r\n+\r\n+        byte flag = in.readByte();\r\n+        switch (flag) {\r\n+            case DubboCodec.RESPONSE_NULL_VALUE:\r\n+                break;\r\n+            case DubboCodec.RESPONSE_VALUE:\r\n+                handleValue(in);\r\n+                break;\r\n+            case DubboCodec.RESPONSE_WITH_EXCEPTION:\r\n+                handleException(in);\r\n+                break;\r\n+            case DubboCodec.RESPONSE_NULL_VALUE_WITH_ATTACHMENTS:\r\n+                handleAttachment(in);\r\n+                break;\r\n+            case DubboCodec.RESPONSE_VALUE_WITH_ATTACHMENTS:\r\n+                handleValue(in);\r\n+                handleAttachment(in);\r\n+                break;\r\n+            case DubboCodec.RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS:\r\n+                handleException(in);\r\n+                handleAttachment(in);\r\n+                break;\r\n+            default:\r\n+                throw new IOException(\"Unknown result flag, expect '0' '1' '2' '3' '4' '5', but received: \" + flag);\r\n+        }\r\n+        if (in instanceof Cleanable) {\r\n+            ((Cleanable) in).cleanup();\r\n+        }\r\n+        return this;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void decode() throws Exception {\r\n+        if (!hasDecoded && channel != null && inputStream != null) {\r\n+            try {\r\n+                if (ConfigurationUtils.getSystemConfiguration().getBoolean(SERIALIZATION_SECURITY_CHECK_KEY, false)) {\r\n+                    Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\r\n+                    if (serializationType_obj != null) {\r\n+                        if ((byte) serializationType_obj != serializationType) {\r\n+                            throw new IOException(\"Unexpected serialization id:\" + serializationType + \" received from network, please check if the peer send the right id.\");\r\n+                        }\r\n+                    }\r\n+                }\r\n+                decode(channel, inputStream);\r\n+            } catch (Throwable e) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Decode rpc result failed: \" + e.getMessage(), e);\r\n+                }\r\n+                response.setStatus(Response.CLIENT_ERROR);\r\n+                response.setErrorMessage(StringUtils.toString(e));\r\n+            } finally {\r\n+                hasDecoded = true;\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private void handleValue(ObjectInput in) throws IOException {\r\n+        try {\r\n+            Type[] returnTypes;\r\n+            if (invocation instanceof RpcInvocation) {\r\n+                returnTypes = ((RpcInvocation) invocation).getReturnTypes();\r\n+            } else {\r\n+                returnTypes = RpcUtils.getReturnTypes(invocation);\r\n+            }\r\n+            Object value = null;\r\n+            if (ArrayUtils.isEmpty(returnTypes)) {\r\n+                // This almost never happens?\r\n+                value = in.readObject();\r\n+            } else if (returnTypes.length == 1) {\r\n+                value = in.readObject((Class<?>) returnTypes[0]);\r\n+            } else {\r\n+                value = in.readObject((Class<?>) returnTypes[0], returnTypes[1]);\r\n+            }\r\n+            setValue(value);\r\n+        } catch (ClassNotFoundException e) {\r\n+            rethrow(e);\r\n+        }\r\n+    }\r\n+\r\n+    private void handleException(ObjectInput in) throws IOException {\r\n+        try {\r\n+            setException(in.readThrowable());\r\n+        } catch (ClassNotFoundException e) {\r\n+            rethrow(e);\r\n+        }\r\n+    }\r\n+\r\n+    private void handleAttachment(ObjectInput in) throws IOException {\r\n+        try {\r\n+            addObjectAttachments(in.readAttachments());\r\n+        } catch (ClassNotFoundException e) {\r\n+            rethrow(e);\r\n+        }\r\n+    }\r\n+\r\n+    private void rethrow(Exception e) throws IOException {\r\n+        throw new IOException(StringUtils.toString(\"Read response data failed.\", e));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,248 +1,248 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.Version;\n-import org.apache.dubbo.common.io.Bytes;\n-import org.apache.dubbo.common.io.UnsafeByteArrayInputStream;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.exchange.codec.ExchangeCodec;\n-import org.apache.dubbo.remoting.transport.CodecSupport;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-\n-import java.io.ByteArrayInputStream;\n-import java.io.IOException;\n-import java.io.InputStream;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.CallbackServiceCodec.encodeInvocationArgument;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DECODE_IN_IO_THREAD_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_DECODE_IN_IO_THREAD;\n-\n-/**\n- * Dubbo codec.\n- */\n-public class DubboCodec extends ExchangeCodec {\n-\n-    public static final String NAME = \"dubbo\";\n-    public static final String DUBBO_VERSION = Version.getProtocolVersion();\n-    public static final byte RESPONSE_WITH_EXCEPTION = 0;\n-    public static final byte RESPONSE_VALUE = 1;\n-    public static final byte RESPONSE_NULL_VALUE = 2;\n-    public static final byte RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS = 3;\n-    public static final byte RESPONSE_VALUE_WITH_ATTACHMENTS = 4;\n-    public static final byte RESPONSE_NULL_VALUE_WITH_ATTACHMENTS = 5;\n-    public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];\n-    public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];\n-    private static final Logger log = LoggerFactory.getLogger(DubboCodec.class);\n-\n-    @Override\n-    protected Object decodeBody(Channel channel, InputStream is, byte[] header) throws IOException {\n-        byte flag = header[2], proto = (byte) (flag & SERIALIZATION_MASK);\n-        // get request id.\n-        long id = Bytes.bytes2long(header, 4);\n-        if ((flag & FLAG_REQUEST) == 0) {\n-            // decode response.\n-            Response res = new Response(id);\n-            if ((flag & FLAG_EVENT) != 0) {\n-                res.setEvent(true);\n-            }\n-            // get status.\n-            byte status = header[3];\n-            res.setStatus(status);\n-            try {\n-                if (status == Response.OK) {\n-                    Object data;\n-                    if (res.isEvent()) {\n-                        byte[] eventPayload = CodecSupport.getPayload(is);\n-                        if (CodecSupport.isHeartBeat(eventPayload, proto)) {\n-                            // heart beat response data is always null;\n-                            data = null;\n-                        } else {\n-                            ObjectInput in = CodecSupport.deserialize(channel.getUrl(), new ByteArrayInputStream(eventPayload), proto);\n-                            data = decodeEventData(channel, in, eventPayload);\n-                        }\n-                    } else {\n-                        DecodeableRpcResult result;\n-                        if (channel.getUrl().getParameter(DECODE_IN_IO_THREAD_KEY, DEFAULT_DECODE_IN_IO_THREAD)) {\n-                            result = new DecodeableRpcResult(channel, res, is,\n-                                    (Invocation) getRequestData(id), proto);\n-                            result.decode();\n-                        } else {\n-                            result = new DecodeableRpcResult(channel, res,\n-                                    new UnsafeByteArrayInputStream(readMessageData(is)),\n-                                    (Invocation) getRequestData(id), proto);\n-                        }\n-                        data = result;\n-                    }\n-                    res.setResult(data);\n-                } else {\n-                    ObjectInput in = CodecSupport.deserialize(channel.getUrl(), is, proto);\n-                    res.setErrorMessage(in.readUTF());\n-                }\n-            } catch (Throwable t) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Decode response failed: \" + t.getMessage(), t);\n-                }\n-                res.setStatus(Response.CLIENT_ERROR);\n-                res.setErrorMessage(StringUtils.toString(t));\n-            }\n-            return res;\n-        } else {\n-            // decode request.\n-            Request req = new Request(id);\n-            req.setVersion(Version.getProtocolVersion());\n-            req.setTwoWay((flag & FLAG_TWOWAY) != 0);\n-            if ((flag & FLAG_EVENT) != 0) {\n-                req.setEvent(true);\n-            }\n-            try {\n-                Object data;\n-                if (req.isEvent()) {\n-                    byte[] eventPayload = CodecSupport.getPayload(is);\n-                    if (CodecSupport.isHeartBeat(eventPayload, proto)) {\n-                        // heart beat response data is always null;\n-                        data = null;\n-                    } else {\n-                        ObjectInput in = CodecSupport.deserialize(channel.getUrl(), new ByteArrayInputStream(eventPayload), proto);\n-                        data = decodeEventData(channel, in, eventPayload);\n-                    }\n-                } else {\n-                    DecodeableRpcInvocation inv;\n-                    if (channel.getUrl().getParameter(DECODE_IN_IO_THREAD_KEY, DEFAULT_DECODE_IN_IO_THREAD)) {\n-                        inv = new DecodeableRpcInvocation(channel, req, is, proto);\n-                        inv.decode();\n-                    } else {\n-                        inv = new DecodeableRpcInvocation(channel, req,\n-                                new UnsafeByteArrayInputStream(readMessageData(is)), proto);\n-                    }\n-                    data = inv;\n-                }\n-                req.setData(data);\n-            } catch (Throwable t) {\n-                if (log.isWarnEnabled()) {\n-                    log.warn(\"Decode request failed: \" + t.getMessage(), t);\n-                }\n-                // bad request\n-                req.setBroken(true);\n-                req.setData(t);\n-            }\n-\n-            return req;\n-        }\n-    }\n-\n-    private byte[] readMessageData(InputStream is) throws IOException {\n-        if (is.available() > 0) {\n-            byte[] result = new byte[is.available()];\n-            is.read(result);\n-            return result;\n-        }\n-        return new byte[]{};\n-    }\n-\n-    @Override\n-    protected void encodeRequestData(Channel channel, ObjectOutput out, Object data) throws IOException {\n-        encodeRequestData(channel, out, data, DUBBO_VERSION);\n-    }\n-\n-    @Override\n-    protected void encodeResponseData(Channel channel, ObjectOutput out, Object data) throws IOException {\n-        encodeResponseData(channel, out, data, DUBBO_VERSION);\n-    }\n-\n-    @Override\n-    protected void encodeRequestData(Channel channel, ObjectOutput out, Object data, String version) throws IOException {\n-        RpcInvocation inv = (RpcInvocation) data;\n-\n-        out.writeUTF(version);\n-        // https://github.com/apache/dubbo/issues/6138\n-        String serviceName = inv.getAttachment(INTERFACE_KEY);\n-        if (serviceName == null) {\n-            serviceName = inv.getAttachment(PATH_KEY);\n-        }\n-        out.writeUTF(serviceName);\n-        out.writeUTF(inv.getAttachment(VERSION_KEY));\n-\n-        out.writeUTF(inv.getMethodName());\n-        out.writeUTF(inv.getParameterTypesDesc());\n-        Object[] args = inv.getArguments();\n-        if (args != null) {\n-            for (int i = 0; i < args.length; i++) {\n-                out.writeObject(encodeInvocationArgument(channel, inv, i));\n-            }\n-        }\n-        out.writeAttachments(inv.getObjectAttachments());\n-    }\n-\n-    @Override\n-    protected void encodeResponseData(Channel channel, ObjectOutput out, Object data, String version) throws IOException {\n-        Result result = (Result) data;\n-        // currently, the version value in Response records the version of Request\n-        boolean attach = Version.isSupportResponseAttachment(version);\n-        Throwable th = result.getException();\n-        if (th == null) {\n-            Object ret = result.getValue();\n-            if (ret == null) {\n-                out.writeByte(attach ? RESPONSE_NULL_VALUE_WITH_ATTACHMENTS : RESPONSE_NULL_VALUE);\n-            } else {\n-                out.writeByte(attach ? RESPONSE_VALUE_WITH_ATTACHMENTS : RESPONSE_VALUE);\n-                out.writeObject(ret);\n-            }\n-        } else {\n-            out.writeByte(attach ? RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS : RESPONSE_WITH_EXCEPTION);\n-            out.writeThrowable(th);\n-        }\n-\n-        if (attach) {\n-            // returns current version of Response to consumer side.\n-            result.getObjectAttachments().put(DUBBO_VERSION_KEY, Version.getProtocolVersion());\n-            out.writeAttachments(result.getObjectAttachments());\n-        }\n-    }\n-\n-    @Override\n-    protected Serialization getSerialization(Channel channel, Request req) {\n-        if (!(req.getData() instanceof Invocation)) {\n-            return super.getSerialization(channel, req);\n-        }\n-        return DubboCodecSupport.getRequestSerialization(channel.getUrl(), (Invocation) req.getData());\n-    }\n-\n-    @Override\n-    protected Serialization getSerialization(Channel channel, Response res) {\n-        if (!(res.getResult() instanceof AppResponse)) {\n-            return super.getSerialization(channel, res);\n-        }\n-        return DubboCodecSupport.getResponseSerialization(channel.getUrl(), (AppResponse) res.getResult());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.Version;\r\n+import org.apache.dubbo.common.io.Bytes;\r\n+import org.apache.dubbo.common.io.UnsafeByteArrayInputStream;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.exchange.codec.ExchangeCodec;\r\n+import org.apache.dubbo.remoting.transport.CodecSupport;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+\r\n+import java.io.ByteArrayInputStream;\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DUBBO_VERSION_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.CallbackServiceCodec.encodeInvocationArgument;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DECODE_IN_IO_THREAD_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_DECODE_IN_IO_THREAD;\r\n+\r\n+/**\r\n+ * Dubbo codec.\r\n+ */\r\n+public class DubboCodec extends ExchangeCodec {\r\n+\r\n+    public static final String NAME = \"dubbo\";\r\n+    public static final String DUBBO_VERSION = Version.getProtocolVersion();\r\n+    public static final byte RESPONSE_WITH_EXCEPTION = 0;\r\n+    public static final byte RESPONSE_VALUE = 1;\r\n+    public static final byte RESPONSE_NULL_VALUE = 2;\r\n+    public static final byte RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS = 3;\r\n+    public static final byte RESPONSE_VALUE_WITH_ATTACHMENTS = 4;\r\n+    public static final byte RESPONSE_NULL_VALUE_WITH_ATTACHMENTS = 5;\r\n+    public static final Object[] EMPTY_OBJECT_ARRAY = new Object[0];\r\n+    public static final Class<?>[] EMPTY_CLASS_ARRAY = new Class<?>[0];\r\n+    private static final Logger log = LoggerFactory.getLogger(DubboCodec.class);\r\n+\r\n+    @Override\r\n+    protected Object decodeBody(Channel channel, InputStream is, byte[] header) throws IOException {\r\n+        byte flag = header[2], proto = (byte) (flag & SERIALIZATION_MASK);\r\n+        // get request id.\r\n+        long id = Bytes.bytes2long(header, 4);\r\n+        if ((flag & FLAG_REQUEST) == 0) {\r\n+            // decode response.\r\n+            Response res = new Response(id);\r\n+            if ((flag & FLAG_EVENT) != 0) {\r\n+                res.setEvent(true);\r\n+            }\r\n+            // get status.\r\n+            byte status = header[3];\r\n+            res.setStatus(status);\r\n+            try {\r\n+                if (status == Response.OK) {\r\n+                    Object data;\r\n+                    if (res.isEvent()) {\r\n+                        byte[] eventPayload = CodecSupport.getPayload(is);\r\n+                        if (CodecSupport.isHeartBeat(eventPayload, proto)) {\r\n+                            // heart beat response data is always null;\r\n+                            data = null;\r\n+                        } else {\r\n+                            ObjectInput in = CodecSupport.deserialize(channel.getUrl(), new ByteArrayInputStream(eventPayload), proto);\r\n+                            data = decodeEventData(channel, in, eventPayload);\r\n+                        }\r\n+                    } else {\r\n+                        DecodeableRpcResult result;\r\n+                        if (channel.getUrl().getParameter(DECODE_IN_IO_THREAD_KEY, DEFAULT_DECODE_IN_IO_THREAD)) {\r\n+                            result = new DecodeableRpcResult(channel, res, is,\r\n+                                    (Invocation) getRequestData(id), proto);\r\n+                            result.decode();\r\n+                        } else {\r\n+                            result = new DecodeableRpcResult(channel, res,\r\n+                                    new UnsafeByteArrayInputStream(readMessageData(is)),\r\n+                                    (Invocation) getRequestData(id), proto);\r\n+                        }\r\n+                        data = result;\r\n+                    }\r\n+                    res.setResult(data);\r\n+                } else {\r\n+                    ObjectInput in = CodecSupport.deserialize(channel.getUrl(), is, proto);\r\n+                    res.setErrorMessage(in.readUTF());\r\n+                }\r\n+            } catch (Throwable t) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Decode response failed: \" + t.getMessage(), t);\r\n+                }\r\n+                res.setStatus(Response.CLIENT_ERROR);\r\n+                res.setErrorMessage(StringUtils.toString(t));\r\n+            }\r\n+            return res;\r\n+        } else {\r\n+            // decode request.\r\n+            Request req = new Request(id);\r\n+            req.setVersion(Version.getProtocolVersion());\r\n+            req.setTwoWay((flag & FLAG_TWOWAY) != 0);\r\n+            if ((flag & FLAG_EVENT) != 0) {\r\n+                req.setEvent(true);\r\n+            }\r\n+            try {\r\n+                Object data;\r\n+                if (req.isEvent()) {\r\n+                    byte[] eventPayload = CodecSupport.getPayload(is);\r\n+                    if (CodecSupport.isHeartBeat(eventPayload, proto)) {\r\n+                        // heart beat response data is always null;\r\n+                        data = null;\r\n+                    } else {\r\n+                        ObjectInput in = CodecSupport.deserialize(channel.getUrl(), new ByteArrayInputStream(eventPayload), proto);\r\n+                        data = decodeEventData(channel, in, eventPayload);\r\n+                    }\r\n+                } else {\r\n+                    DecodeableRpcInvocation inv;\r\n+                    if (channel.getUrl().getParameter(DECODE_IN_IO_THREAD_KEY, DEFAULT_DECODE_IN_IO_THREAD)) {\r\n+                        inv = new DecodeableRpcInvocation(channel, req, is, proto);\r\n+                        inv.decode();\r\n+                    } else {\r\n+                        inv = new DecodeableRpcInvocation(channel, req,\r\n+                                new UnsafeByteArrayInputStream(readMessageData(is)), proto);\r\n+                    }\r\n+                    data = inv;\r\n+                }\r\n+                req.setData(data);\r\n+            } catch (Throwable t) {\r\n+                if (log.isWarnEnabled()) {\r\n+                    log.warn(\"Decode request failed: \" + t.getMessage(), t);\r\n+                }\r\n+                // bad request\r\n+                req.setBroken(true);\r\n+                req.setData(t);\r\n+            }\r\n+\r\n+            return req;\r\n+        }\r\n+    }\r\n+\r\n+    private byte[] readMessageData(InputStream is) throws IOException {\r\n+        if (is.available() > 0) {\r\n+            byte[] result = new byte[is.available()];\r\n+            is.read(result);\r\n+            return result;\r\n+        }\r\n+        return new byte[]{};\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void encodeRequestData(Channel channel, ObjectOutput out, Object data) throws IOException {\r\n+        encodeRequestData(channel, out, data, DUBBO_VERSION);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void encodeResponseData(Channel channel, ObjectOutput out, Object data) throws IOException {\r\n+        encodeResponseData(channel, out, data, DUBBO_VERSION);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void encodeRequestData(Channel channel, ObjectOutput out, Object data, String version) throws IOException {\r\n+        RpcInvocation inv = (RpcInvocation) data;\r\n+\r\n+        out.writeUTF(version);\r\n+        // https://github.com/apache/dubbo/issues/6138\r\n+        String serviceName = inv.getAttachment(INTERFACE_KEY);\r\n+        if (serviceName == null) {\r\n+            serviceName = inv.getAttachment(PATH_KEY);\r\n+        }\r\n+        out.writeUTF(serviceName);\r\n+        out.writeUTF(inv.getAttachment(VERSION_KEY));\r\n+\r\n+        out.writeUTF(inv.getMethodName());\r\n+        out.writeUTF(inv.getParameterTypesDesc());\r\n+        Object[] args = inv.getArguments();\r\n+        if (args != null) {\r\n+            for (int i = 0; i < args.length; i++) {\r\n+                out.writeObject(encodeInvocationArgument(channel, inv, i));\r\n+            }\r\n+        }\r\n+        out.writeAttachments(inv.getObjectAttachments());\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void encodeResponseData(Channel channel, ObjectOutput out, Object data, String version) throws IOException {\r\n+        Result result = (Result) data;\r\n+        // currently, the version value in Response records the version of Request\r\n+        boolean attach = Version.isSupportResponseAttachment(version);\r\n+        Throwable th = result.getException();\r\n+        if (th == null) {\r\n+            Object ret = result.getValue();\r\n+            if (ret == null) {\r\n+                out.writeByte(attach ? RESPONSE_NULL_VALUE_WITH_ATTACHMENTS : RESPONSE_NULL_VALUE);\r\n+            } else {\r\n+                out.writeByte(attach ? RESPONSE_VALUE_WITH_ATTACHMENTS : RESPONSE_VALUE);\r\n+                out.writeObject(ret);\r\n+            }\r\n+        } else {\r\n+            out.writeByte(attach ? RESPONSE_WITH_EXCEPTION_WITH_ATTACHMENTS : RESPONSE_WITH_EXCEPTION);\r\n+            out.writeThrowable(th);\r\n+        }\r\n+\r\n+        if (attach) {\r\n+            // returns current version of Response to consumer side.\r\n+            result.getObjectAttachments().put(DUBBO_VERSION_KEY, Version.getProtocolVersion());\r\n+            out.writeAttachments(result.getObjectAttachments());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Serialization getSerialization(Channel channel, Request req) {\r\n+        if (!(req.getData() instanceof Invocation)) {\r\n+            return super.getSerialization(channel, req);\r\n+        }\r\n+        return DubboCodecSupport.getRequestSerialization(channel.getUrl(), (Invocation) req.getData());\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Serialization getSerialization(Channel channel, Response res) {\r\n+        if (!(res.getResult() instanceof AppResponse)) {\r\n+            return super.getSerialization(channel, res);\r\n+        }\r\n+        return DubboCodecSupport.getResponseSerialization(channel.getUrl(), (AppResponse) res.getResult());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboCodecSupport.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.serialize.Serialization;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.transport.CodecSupport;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.Invocation;\n-\n-import static org.apache.dubbo.rpc.Constants.INVOCATION_KEY;\n-import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\n-\n-public class DubboCodecSupport {\n-\n-    public static Serialization getRequestSerialization(URL url, Invocation invocation) {\n-        Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\n-        if (serializationType_obj != null) {\n-            return CodecSupport.getSerializationById((byte) serializationType_obj);\n-        }\n-        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\n-                url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\n-    }\n-\n-    public static Serialization getResponseSerialization(URL url, AppResponse appResponse) {\n-        Object invocation_obj = appResponse.getAttribute(INVOCATION_KEY);\n-        if (invocation_obj != null) {\n-            Invocation invocation = (Invocation) invocation_obj;\n-            Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\n-            if (serializationType_obj != null) {\n-                return CodecSupport.getSerializationById((byte) serializationType_obj);\n-            }\n-        }\n-        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\n-                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.transport.CodecSupport;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.INVOCATION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SERIALIZATION_ID_KEY;\r\n+\r\n+public class DubboCodecSupport {\r\n+\r\n+    public static Serialization getRequestSerialization(URL url, Invocation invocation) {\r\n+        Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\r\n+        if (serializationType_obj != null) {\r\n+            return CodecSupport.getSerializationById((byte) serializationType_obj);\r\n+        }\r\n+        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\r\n+                url.getParameter(org.apache.dubbo.remoting.Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\r\n+    }\r\n+\r\n+    public static Serialization getResponseSerialization(URL url, AppResponse appResponse) {\r\n+        Object invocation_obj = appResponse.getAttribute(INVOCATION_KEY);\r\n+        if (invocation_obj != null) {\r\n+            Invocation invocation = (Invocation) invocation_obj;\r\n+            Object serializationType_obj = invocation.get(SERIALIZATION_ID_KEY);\r\n+            if (serializationType_obj != null) {\r\n+                return CodecSupport.getSerializationById((byte) serializationType_obj);\r\n+            }\r\n+        }\r\n+        return ExtensionLoader.getExtensionLoader(Serialization.class).getExtension(\r\n+                url.getParameter(Constants.SERIALIZATION_KEY, Constants.DEFAULT_REMOTING_SERIALIZATION));\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboCountCodec.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboCountCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,86 +1,86 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.remoting.exchange.support.MultiMessage;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-\n-import java.io.IOException;\n-\n-import static org.apache.dubbo.rpc.Constants.INPUT_KEY;\n-import static org.apache.dubbo.rpc.Constants.OUTPUT_KEY;\n-\n-public final class DubboCountCodec implements Codec2 {\n-\n-    private DubboCodec codec = new DubboCodec();\n-\n-    @Override\n-    public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException {\n-        codec.encode(channel, buffer, msg);\n-    }\n-\n-    @Override\n-    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\n-        int save = buffer.readerIndex();\n-        MultiMessage result = MultiMessage.create();\n-        do {\n-            Object obj = codec.decode(channel, buffer);\n-            if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {\n-                buffer.readerIndex(save);\n-                break;\n-            } else {\n-                result.addMessage(obj);\n-                logMessageLength(obj, buffer.readerIndex() - save);\n-                save = buffer.readerIndex();\n-            }\n-        } while (true);\n-        if (result.isEmpty()) {\n-            return Codec2.DecodeResult.NEED_MORE_INPUT;\n-        }\n-        if (result.size() == 1) {\n-            return result.get(0);\n-        }\n-        return result;\n-    }\n-\n-    private void logMessageLength(Object result, int bytes) {\n-        if (bytes <= 0) {\n-            return;\n-        }\n-        if (result instanceof Request) {\n-            try {\n-                ((RpcInvocation) ((Request) result).getData()).setAttachment(INPUT_KEY, String.valueOf(bytes));\n-            } catch (Throwable e) {\n-                /* ignore */\n-            }\n-        } else if (result instanceof Response) {\n-            try {\n-                ((AppResponse) ((Response) result).getResult()).setAttachment(OUTPUT_KEY, String.valueOf(bytes));\n-            } catch (Throwable e) {\n-                /* ignore */\n-            }\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.remoting.exchange.support.MultiMessage;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.INPUT_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.OUTPUT_KEY;\r\n+\r\n+public final class DubboCountCodec implements Codec2 {\r\n+\r\n+    private DubboCodec codec = new DubboCodec();\r\n+\r\n+    @Override\r\n+    public void encode(Channel channel, ChannelBuffer buffer, Object msg) throws IOException {\r\n+        codec.encode(channel, buffer, msg);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\r\n+        int save = buffer.readerIndex();\r\n+        MultiMessage result = MultiMessage.create();\r\n+        do {\r\n+            Object obj = codec.decode(channel, buffer);\r\n+            if (Codec2.DecodeResult.NEED_MORE_INPUT == obj) {\r\n+                buffer.readerIndex(save);\r\n+                break;\r\n+            } else {\r\n+                result.addMessage(obj);\r\n+                logMessageLength(obj, buffer.readerIndex() - save);\r\n+                save = buffer.readerIndex();\r\n+            }\r\n+        } while (true);\r\n+        if (result.isEmpty()) {\r\n+            return Codec2.DecodeResult.NEED_MORE_INPUT;\r\n+        }\r\n+        if (result.size() == 1) {\r\n+            return result.get(0);\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+    private void logMessageLength(Object result, int bytes) {\r\n+        if (bytes <= 0) {\r\n+            return;\r\n+        }\r\n+        if (result instanceof Request) {\r\n+            try {\r\n+                ((RpcInvocation) ((Request) result).getData()).setAttachment(INPUT_KEY, String.valueOf(bytes));\r\n+            } catch (Throwable e) {\r\n+                /* ignore */\r\n+            }\r\n+        } else if (result instanceof Response) {\r\n+            try {\r\n+                ((AppResponse) ((Response) result).getResult()).setAttachment(OUTPUT_KEY, String.valueOf(bytes));\r\n+            } catch (Throwable e) {\r\n+                /* ignore */\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboExporter.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboExporter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,45 +1,45 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.protocol.AbstractExporter;\n-\n-import java.util.Map;\n-\n-/**\n- * DubboExporter\n- */\n-public class DubboExporter<T> extends AbstractExporter<T> {\n-\n-    private final String key;\n-\n-    private final Map<String, Exporter<?>> exporterMap;\n-\n-    public DubboExporter(Invoker<T> invoker, String key, Map<String, Exporter<?>> exporterMap) {\n-        super(invoker);\n-        this.key = key;\n-        this.exporterMap = exporterMap;\n-    }\n-\n-    @Override\n-    public void afterUnExport() {\n-        exporterMap.remove(key);\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.protocol.AbstractExporter;\r\n+\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * DubboExporter\r\n+ */\r\n+public class DubboExporter<T> extends AbstractExporter<T> {\r\n+\r\n+    private final String key;\r\n+\r\n+    private final Map<String, Exporter<?>> exporterMap;\r\n+\r\n+    public DubboExporter(Invoker<T> invoker, String key, Map<String, Exporter<?>> exporterMap) {\r\n+        super(invoker);\r\n+        this.key = key;\r\n+        this.exporterMap = exporterMap;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void afterUnExport() {\r\n+        exporterMap.remove(key);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,183 +1,183 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.utils.AtomicPositiveInteger;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.FutureContext;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.TimeoutCountDown;\n-import org.apache.dubbo.rpc.protocol.AbstractInvoker;\n-import org.apache.dubbo.rpc.support.RpcUtils;\n-\n-import java.util.Set;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_VERSION;\n-import static org.apache.dubbo.common.constants.CommonConstants.ENABLE_TIMEOUT_COUNTDOWN_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-\n-/**\n- * DubboInvoker\n- */\n-public class DubboInvoker<T> extends AbstractInvoker<T> {\n-\n-    private final ExchangeClient[] clients;\n-\n-    private final AtomicPositiveInteger index = new AtomicPositiveInteger();\n-\n-    private final String version;\n-\n-    private final ReentrantLock destroyLock = new ReentrantLock();\n-\n-    private final Set<Invoker<?>> invokers;\n-\n-    public DubboInvoker(Class<T> serviceType, URL url, ExchangeClient[] clients) {\n-        this(serviceType, url, clients, null);\n-    }\n-\n-    public DubboInvoker(Class<T> serviceType, URL url, ExchangeClient[] clients, Set<Invoker<?>> invokers) {\n-        super(serviceType, url, new String[]{INTERFACE_KEY, GROUP_KEY, TOKEN_KEY});\n-        this.clients = clients;\n-        // get version.\n-        this.version = url.getParameter(VERSION_KEY, DEFAULT_VERSION);\n-        this.invokers = invokers;\n-    }\n-\n-    @Override\n-    protected Result doInvoke(final Invocation invocation) throws Throwable {\n-        RpcInvocation inv = (RpcInvocation) invocation;\n-        final String methodName = RpcUtils.getMethodName(invocation);\n-        inv.setAttachment(PATH_KEY, getUrl().getPath());\n-        inv.setAttachment(VERSION_KEY, version);\n-\n-        ExchangeClient currentClient;\n-        if (clients.length == 1) {\n-            currentClient = clients[0];\n-        } else {\n-            currentClient = clients[index.getAndIncrement() % clients.length];\n-        }\n-        try {\n-            boolean isOneway = RpcUtils.isOneway(getUrl(), invocation);\n-            int timeout = calculateTimeout(invocation, methodName);\n-            invocation.put(TIMEOUT_KEY, timeout);\n-            if (isOneway) {\n-                boolean isSent = getUrl().getMethodParameter(methodName, Constants.SENT_KEY, false);\n-                currentClient.send(inv, isSent);\n-                return AsyncRpcResult.newDefaultAsyncResult(invocation);\n-            } else {\n-                ExecutorService executor = getCallbackExecutor(getUrl(), inv);\n-                CompletableFuture<AppResponse> appResponseFuture =\n-                        currentClient.request(inv, timeout, executor).thenApply(obj -> (AppResponse) obj);\n-                // save for 2.6.x compatibility, for example, TraceFilter in Zipkin uses com.alibaba.xxx.FutureAdapter\n-                FutureContext.getContext().setCompatibleFuture(appResponseFuture);\n-                AsyncRpcResult result = new AsyncRpcResult(appResponseFuture, inv);\n-                result.setExecutor(executor);\n-                return result;\n-            }\n-        } catch (TimeoutException e) {\n-            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, \"Invoke remote method timeout. method: \" + invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        } catch (RemotingException e) {\n-            throw new RpcException(RpcException.NETWORK_EXCEPTION, \"Failed to invoke remote method: \" + invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        if (!super.isAvailable()) {\n-            return false;\n-        }\n-        for (ExchangeClient client : clients) {\n-            if (client.isConnected() && !client.hasAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY)) {\n-                //cannot write == not Available ?\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        // in order to avoid closing a client multiple times, a counter is used in case of connection per jvm, every\n-        // time when client.close() is called, counter counts down once, and when counter reaches zero, client will be\n-        // closed.\n-        if (super.isDestroyed()) {\n-            return;\n-        } else {\n-            // double check to avoid dup close\n-            destroyLock.lock();\n-            try {\n-                if (super.isDestroyed()) {\n-                    return;\n-                }\n-                super.destroy();\n-                if (invokers != null) {\n-                    invokers.remove(this);\n-                }\n-                for (ExchangeClient client : clients) {\n-                    try {\n-                        client.close(ConfigurationUtils.getServerShutdownTimeout());\n-                    } catch (Throwable t) {\n-                        logger.warn(t.getMessage(), t);\n-                    }\n-                }\n-\n-            } finally {\n-                destroyLock.unlock();\n-            }\n-        }\n-    }\n-\n-    private int calculateTimeout(Invocation invocation, String methodName) {\n-        Object countdown = RpcContext.getContext().get(TIME_COUNTDOWN_KEY);\n-        int timeout = DEFAULT_TIMEOUT;\n-        if (countdown == null) {\n-            timeout = (int) RpcUtils.getTimeout(getUrl(), methodName, RpcContext.getContext(), DEFAULT_TIMEOUT);\n-            if (getUrl().getParameter(ENABLE_TIMEOUT_COUNTDOWN_KEY, false)) {\n-                invocation.setObjectAttachment(TIMEOUT_ATTACHMENT_KEY, timeout); // pass timeout to remote server\n-            }\n-        } else {\n-            TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countdown;\n-            timeout = (int) timeoutCountDown.timeRemaining(TimeUnit.MILLISECONDS);\n-            invocation.setObjectAttachment(TIMEOUT_ATTACHMENT_KEY, timeout);// pass timeout to remote server\n-        }\n-        return timeout;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.utils.AtomicPositiveInteger;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.FutureContext;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.TimeoutCountDown;\r\n+import org.apache.dubbo.rpc.protocol.AbstractInvoker;\r\n+import org.apache.dubbo.rpc.support.RpcUtils;\r\n+\r\n+import java.util.Set;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_VERSION;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ENABLE_TIMEOUT_COUNTDOWN_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIME_COUNTDOWN_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+\r\n+/**\r\n+ * DubboInvoker\r\n+ */\r\n+public class DubboInvoker<T> extends AbstractInvoker<T> {\r\n+\r\n+    private final ExchangeClient[] clients;\r\n+\r\n+    private final AtomicPositiveInteger index = new AtomicPositiveInteger();\r\n+\r\n+    private final String version;\r\n+\r\n+    private final ReentrantLock destroyLock = new ReentrantLock();\r\n+\r\n+    private final Set<Invoker<?>> invokers;\r\n+\r\n+    public DubboInvoker(Class<T> serviceType, URL url, ExchangeClient[] clients) {\r\n+        this(serviceType, url, clients, null);\r\n+    }\r\n+\r\n+    public DubboInvoker(Class<T> serviceType, URL url, ExchangeClient[] clients, Set<Invoker<?>> invokers) {\r\n+        super(serviceType, url, new String[]{INTERFACE_KEY, GROUP_KEY, TOKEN_KEY});\r\n+        this.clients = clients;\r\n+        // get version.\r\n+        this.version = url.getParameter(VERSION_KEY, DEFAULT_VERSION);\r\n+        this.invokers = invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(final Invocation invocation) throws Throwable {\r\n+        RpcInvocation inv = (RpcInvocation) invocation;\r\n+        final String methodName = RpcUtils.getMethodName(invocation);\r\n+        inv.setAttachment(PATH_KEY, getUrl().getPath());\r\n+        inv.setAttachment(VERSION_KEY, version);\r\n+\r\n+        ExchangeClient currentClient;\r\n+        if (clients.length == 1) {\r\n+            currentClient = clients[0];\r\n+        } else {\r\n+            currentClient = clients[index.getAndIncrement() % clients.length];\r\n+        }\r\n+        try {\r\n+            boolean isOneway = RpcUtils.isOneway(getUrl(), invocation);\r\n+            int timeout = calculateTimeout(invocation, methodName);\r\n+            invocation.put(TIMEOUT_KEY, timeout);\r\n+            if (isOneway) {\r\n+                boolean isSent = getUrl().getMethodParameter(methodName, Constants.SENT_KEY, false);\r\n+                currentClient.send(inv, isSent);\r\n+                return AsyncRpcResult.newDefaultAsyncResult(invocation);\r\n+            } else {\r\n+                ExecutorService executor = getCallbackExecutor(getUrl(), inv);\r\n+                CompletableFuture<AppResponse> appResponseFuture =\r\n+                        currentClient.request(inv, timeout, executor).thenApply(obj -> (AppResponse) obj);\r\n+                // save for 2.6.x compatibility, for example, TraceFilter in Zipkin uses com.alibaba.xxx.FutureAdapter\r\n+                FutureContext.getContext().setCompatibleFuture(appResponseFuture);\r\n+                AsyncRpcResult result = new AsyncRpcResult(appResponseFuture, inv);\r\n+                result.setExecutor(executor);\r\n+                return result;\r\n+            }\r\n+        } catch (TimeoutException e) {\r\n+            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, \"Invoke remote method timeout. method: \" + invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(RpcException.NETWORK_EXCEPTION, \"Failed to invoke remote method: \" + invocation.getMethodName() + \", provider: \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        if (!super.isAvailable()) {\r\n+            return false;\r\n+        }\r\n+        for (ExchangeClient client : clients) {\r\n+            if (client.isConnected() && !client.hasAttribute(Constants.CHANNEL_ATTRIBUTE_READONLY_KEY)) {\r\n+                //cannot write == not Available ?\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        // in order to avoid closing a client multiple times, a counter is used in case of connection per jvm, every\r\n+        // time when client.close() is called, counter counts down once, and when counter reaches zero, client will be\r\n+        // closed.\r\n+        if (super.isDestroyed()) {\r\n+            return;\r\n+        } else {\r\n+            // double check to avoid dup close\r\n+            destroyLock.lock();\r\n+            try {\r\n+                if (super.isDestroyed()) {\r\n+                    return;\r\n+                }\r\n+                super.destroy();\r\n+                if (invokers != null) {\r\n+                    invokers.remove(this);\r\n+                }\r\n+                for (ExchangeClient client : clients) {\r\n+                    try {\r\n+                        client.close(ConfigurationUtils.getServerShutdownTimeout());\r\n+                    } catch (Throwable t) {\r\n+                        logger.warn(t.getMessage(), t);\r\n+                    }\r\n+                }\r\n+\r\n+            } finally {\r\n+                destroyLock.unlock();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private int calculateTimeout(Invocation invocation, String methodName) {\r\n+        Object countdown = RpcContext.getContext().get(TIME_COUNTDOWN_KEY);\r\n+        int timeout = DEFAULT_TIMEOUT;\r\n+        if (countdown == null) {\r\n+            timeout = (int) RpcUtils.getTimeout(getUrl(), methodName, RpcContext.getContext(), DEFAULT_TIMEOUT);\r\n+            if (getUrl().getParameter(ENABLE_TIMEOUT_COUNTDOWN_KEY, false)) {\r\n+                invocation.setObjectAttachment(TIMEOUT_ATTACHMENT_KEY, timeout); // pass timeout to remote server\r\n+            }\r\n+        } else {\r\n+            TimeoutCountDown timeoutCountDown = (TimeoutCountDown) countdown;\r\n+            timeout = (int) timeoutCountDown.timeRemaining(TimeUnit.MILLISECONDS);\r\n+            invocation.setObjectAttachment(TIMEOUT_ATTACHMENT_KEY, timeout);// pass timeout to remote server\r\n+        }\r\n+        return timeout;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,686 +1,686 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.URLBuilder;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\n-import org.apache.dubbo.common.serialize.support.SerializationOptimizer;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.common.utils.ConfigUtils;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.Transporter;\n-import org.apache.dubbo.remoting.exchange.ExchangeChannel;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.remoting.exchange.ExchangeHandler;\n-import org.apache.dubbo.remoting.exchange.ExchangeServer;\n-import org.apache.dubbo.remoting.exchange.Exchangers;\n-import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.protocol.AbstractProtocol;\n-\n-import java.net.InetSocketAddress;\n-import java.util.ArrayList;\n-import java.util.Collection;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.Set;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.function.Function;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.LAZY_CONNECT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.STUB_EVENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-import static org.apache.dubbo.remoting.Constants.CHANNEL_READONLYEVENT_SENT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_HEARTBEAT;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_REMOTING_CLIENT;\n-import static org.apache.dubbo.remoting.Constants.HEARTBEAT_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\n-import static org.apache.dubbo.rpc.Constants.DEFAULT_REMOTING_SERVER;\n-import static org.apache.dubbo.rpc.Constants.DEFAULT_STUB_EVENT;\n-import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\n-import static org.apache.dubbo.rpc.Constants.STUB_EVENT_METHODS_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_SHARE_CONNECTIONS;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.IS_CALLBACK_SERVICE;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ON_CONNECT_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ON_DISCONNECT_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.OPTIMIZER_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.SHARE_CONNECTIONS_KEY;\n-\n-\n-/**\n- * dubbo protocol support.\n- */\n-public class DubboProtocol extends AbstractProtocol {\n-\n-    public static final String NAME = \"dubbo\";\n-\n-    public static final int DEFAULT_PORT = 20880;\n-    private static final String IS_CALLBACK_SERVICE_INVOKE = \"_isCallBackServiceInvoke\";\n-    private static DubboProtocol INSTANCE;\n-\n-    /**\n-     * <host:port,Exchanger>\n-     */\n-    private final Map<String, List<ReferenceCountExchangeClient>> referenceClientMap = new ConcurrentHashMap<>();\n-    private final ConcurrentMap<String, Object> locks = new ConcurrentHashMap<>();\n-    private final Set<String> optimizers = new ConcurrentHashSet<>();\n-\n-    private ExchangeHandler requestHandler = new ExchangeHandlerAdapter() {\n-\n-        @Override\n-        public CompletableFuture<Object> reply(ExchangeChannel channel, Object message) throws RemotingException {\n-\n-            if (!(message instanceof Invocation)) {\n-                throw new RemotingException(channel, \"Unsupported request: \"\n-                        + (message == null ? null : (message.getClass().getName() + \": \" + message))\n-                        + \", channel: consumer: \" + channel.getRemoteAddress() + \" --> provider: \" + channel.getLocalAddress());\n-            }\n-\n-            Invocation inv = (Invocation) message;\n-            Invoker<?> invoker = getInvoker(channel, inv);\n-            // need to consider backward-compatibility if it's a callback\n-            if (Boolean.TRUE.toString().equals(inv.getObjectAttachments().get(IS_CALLBACK_SERVICE_INVOKE))) {\n-                String methodsStr = invoker.getUrl().getParameters().get(\"methods\");\n-                boolean hasMethod = false;\n-                if (methodsStr == null || !methodsStr.contains(\",\")) {\n-                    hasMethod = inv.getMethodName().equals(methodsStr);\n-                } else {\n-                    String[] methods = methodsStr.split(\",\");\n-                    for (String method : methods) {\n-                        if (inv.getMethodName().equals(method)) {\n-                            hasMethod = true;\n-                            break;\n-                        }\n-                    }\n-                }\n-                if (!hasMethod) {\n-                    logger.warn(new IllegalStateException(\"The methodName \" + inv.getMethodName()\n-                            + \" not found in callback service interface ,invoke will be ignored.\"\n-                            + \" please update the api interface. url is:\"\n-                            + invoker.getUrl()) + \" ,invocation is :\" + inv);\n-                    return null;\n-                }\n-            }\n-            RpcContext.getContext().setRemoteAddress(channel.getRemoteAddress());\n-            Result result = invoker.invoke(inv);\n-            return result.thenApply(Function.identity());\n-        }\n-\n-        @Override\n-        public void received(Channel channel, Object message) throws RemotingException {\n-            if (message instanceof Invocation) {\n-                reply((ExchangeChannel) channel, message);\n-\n-            } else {\n-                super.received(channel, message);\n-            }\n-        }\n-\n-        @Override\n-        public void connected(Channel channel) throws RemotingException {\n-            invoke(channel, ON_CONNECT_KEY);\n-        }\n-\n-        @Override\n-        public void disconnected(Channel channel) throws RemotingException {\n-            if (logger.isDebugEnabled()) {\n-                logger.debug(\"disconnected from \" + channel.getRemoteAddress() + \",url:\" + channel.getUrl());\n-            }\n-            invoke(channel, ON_DISCONNECT_KEY);\n-        }\n-\n-        private void invoke(Channel channel, String methodKey) {\n-            Invocation invocation = createInvocation(channel, channel.getUrl(), methodKey);\n-            if (invocation != null) {\n-                try {\n-                    received(channel, invocation);\n-                } catch (Throwable t) {\n-                    logger.warn(\"Failed to invoke event method \" + invocation.getMethodName() + \"(), cause: \" + t.getMessage(), t);\n-                }\n-            }\n-        }\n-\n-        /**\n-         * FIXME channel.getUrl() always binds to a fixed service, and this service is random.\n-         * we can choose to use a common service to carry onConnect event if there's no easy way to get the specific\n-         * service this connection is binding to.\n-         * @param channel\n-         * @param url\n-         * @param methodKey\n-         * @return\n-         */\n-        private Invocation createInvocation(Channel channel, URL url, String methodKey) {\n-            String method = url.getParameter(methodKey);\n-            if (method == null || method.length() == 0) {\n-                return null;\n-            }\n-\n-            RpcInvocation invocation = new RpcInvocation(method, url.getParameter(INTERFACE_KEY), \"\", new Class<?>[0], new Object[0]);\n-            invocation.setAttachment(PATH_KEY, url.getPath());\n-            invocation.setAttachment(GROUP_KEY, url.getParameter(GROUP_KEY));\n-            invocation.setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));\n-            invocation.setAttachment(VERSION_KEY, url.getParameter(VERSION_KEY));\n-            if (url.getParameter(STUB_EVENT_KEY, false)) {\n-                invocation.setAttachment(STUB_EVENT_KEY, Boolean.TRUE.toString());\n-            }\n-\n-            return invocation;\n-        }\n-    };\n-\n-    public DubboProtocol() {\n-        INSTANCE = this;\n-    }\n-\n-    public static DubboProtocol getDubboProtocol() {\n-        if (INSTANCE == null) {\n-            // load\n-            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(DubboProtocol.NAME);\n-        }\n-\n-        return INSTANCE;\n-    }\n-\n-    @Override\n-    public Collection<Exporter<?>> getExporters() {\n-        return Collections.unmodifiableCollection(exporterMap.values());\n-    }\n-\n-    private boolean isClientSide(Channel channel) {\n-        InetSocketAddress address = channel.getRemoteAddress();\n-        URL url = channel.getUrl();\n-        return url.getPort() == address.getPort() &&\n-                NetUtils.filterLocalHost(channel.getUrl().getIp())\n-                        .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));\n-    }\n-\n-    Invoker<?> getInvoker(Channel channel, Invocation inv) throws RemotingException {\n-        boolean isCallBackServiceInvoke = false;\n-        boolean isStubServiceInvoke = false;\n-        int port = channel.getLocalAddress().getPort();\n-        String path = (String) inv.getObjectAttachments().get(PATH_KEY);\n-\n-        // if it's callback service on client side\n-        isStubServiceInvoke = Boolean.TRUE.toString().equals(inv.getObjectAttachments().get(STUB_EVENT_KEY));\n-        if (isStubServiceInvoke) {\n-            port = channel.getRemoteAddress().getPort();\n-        }\n-\n-        //callback\n-        isCallBackServiceInvoke = isClientSide(channel) && !isStubServiceInvoke;\n-        if (isCallBackServiceInvoke) {\n-            path += \".\" + inv.getObjectAttachments().get(CALLBACK_SERVICE_KEY);\n-            inv.getObjectAttachments().put(IS_CALLBACK_SERVICE_INVOKE, Boolean.TRUE.toString());\n-        }\n-\n-        String serviceKey = serviceKey(\n-                port,\n-                path,\n-                (String) inv.getObjectAttachments().get(VERSION_KEY),\n-                (String) inv.getObjectAttachments().get(GROUP_KEY)\n-        );\n-        DubboExporter<?> exporter = (DubboExporter<?>) exporterMap.get(serviceKey);\n-\n-        if (exporter == null) {\n-            throw new RemotingException(channel, \"Not found exported service: \" + serviceKey + \" in \" + exporterMap.keySet() + \", may be version or group mismatch \" +\n-                    \", channel: consumer: \" + channel.getRemoteAddress() + \" --> provider: \" + channel.getLocalAddress() + \", message:\" + getInvocationWithoutData(inv));\n-        }\n-\n-        return exporter.getInvoker();\n-    }\n-\n-    public Collection<Invoker<?>> getInvokers() {\n-        return Collections.unmodifiableCollection(invokers);\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\n-        URL url = invoker.getUrl();\n-\n-        // export service.\n-        String key = serviceKey(url);\n-        DubboExporter<T> exporter = new DubboExporter<T>(invoker, key, exporterMap);\n-        exporterMap.put(key, exporter);\n-\n-        //export an stub service for dispatching event\n-        Boolean isStubSupportEvent = url.getParameter(STUB_EVENT_KEY, DEFAULT_STUB_EVENT);\n-        Boolean isCallbackservice = url.getParameter(IS_CALLBACK_SERVICE, false);\n-        if (isStubSupportEvent && !isCallbackservice) {\n-            String stubServiceMethods = url.getParameter(STUB_EVENT_METHODS_KEY);\n-            if (stubServiceMethods == null || stubServiceMethods.length() == 0) {\n-                if (logger.isWarnEnabled()) {\n-                    logger.warn(new IllegalStateException(\"consumer [\" + url.getParameter(INTERFACE_KEY) +\n-                            \"], has set stubproxy support event ,but no stub methods founded.\"));\n-                }\n-\n-            }\n-        }\n-\n-        openServer(url);\n-        optimizeSerialization(url);\n-\n-        return exporter;\n-    }\n-\n-    private void openServer(URL url) {\n-        // find server.\n-        String key = url.getAddress();\n-        //client can export a service which's only for server to invoke\n-        boolean isServer = url.getParameter(IS_SERVER_KEY, true);\n-        if (isServer) {\n-            ProtocolServer server = serverMap.get(key);\n-            if (server == null) {\n-                synchronized (this) {\n-                    server = serverMap.get(key);\n-                    if (server == null) {\n-                        serverMap.put(key, createServer(url));\n-                    }\n-                }\n-            } else {\n-                // server supports reset, use together with override\n-                server.reset(url);\n-            }\n-        }\n-    }\n-\n-    private ProtocolServer createServer(URL url) {\n-        url = URLBuilder.from(url)\n-                // send readonly event when server closes, it's enabled by default\n-                .addParameterIfAbsent(CHANNEL_READONLYEVENT_SENT_KEY, Boolean.TRUE.toString())\n-                // enable heartbeat by default\n-                .addParameterIfAbsent(HEARTBEAT_KEY, String.valueOf(DEFAULT_HEARTBEAT))\n-                .addParameter(CODEC_KEY, DubboCodec.NAME)\n-                .build();\n-        String str = url.getParameter(SERVER_KEY, DEFAULT_REMOTING_SERVER);\n-\n-        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\n-            throw new RpcException(\"Unsupported server type: \" + str + \", url: \" + url);\n-        }\n-\n-        ExchangeServer server;\n-        try {\n-            server = Exchangers.bind(url, requestHandler);\n-        } catch (RemotingException e) {\n-            throw new RpcException(\"Fail to start server(url: \" + url + \") \" + e.getMessage(), e);\n-        }\n-\n-        str = url.getParameter(CLIENT_KEY);\n-        if (str != null && str.length() > 0) {\n-            Set<String> supportedTypes = ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions();\n-            if (!supportedTypes.contains(str)) {\n-                throw new RpcException(\"Unsupported client type: \" + str);\n-            }\n-        }\n-\n-        return new DubboProtocolServer(server);\n-    }\n-\n-    private void optimizeSerialization(URL url) throws RpcException {\n-        String className = url.getParameter(OPTIMIZER_KEY, \"\");\n-        if (StringUtils.isEmpty(className) || optimizers.contains(className)) {\n-            return;\n-        }\n-\n-        logger.info(\"Optimizing the serialization process for Kryo, FST, etc...\");\n-\n-        try {\n-            Class clazz = Thread.currentThread().getContextClassLoader().loadClass(className);\n-            if (!SerializationOptimizer.class.isAssignableFrom(clazz)) {\n-                throw new RpcException(\"The serialization optimizer \" + className + \" isn't an instance of \" + SerializationOptimizer.class.getName());\n-            }\n-\n-            SerializationOptimizer optimizer = (SerializationOptimizer) clazz.newInstance();\n-\n-            if (optimizer.getSerializableClasses() == null) {\n-                return;\n-            }\n-\n-            for (Class c : optimizer.getSerializableClasses()) {\n-                SerializableClassRegistry.registerClass(c);\n-            }\n-\n-            optimizers.add(className);\n-\n-        } catch (ClassNotFoundException e) {\n-            throw new RpcException(\"Cannot find the serialization optimizer class: \" + className, e);\n-\n-        } catch (InstantiationException | IllegalAccessException e) {\n-            throw new RpcException(\"Cannot instantiate the serialization optimizer class: \" + className, e);\n-\n-        }\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url) throws RpcException {\n-        optimizeSerialization(url);\n-\n-        // create rpc invoker.\n-        DubboInvoker<T> invoker = new DubboInvoker<T>(serviceType, url, getClients(url), invokers);\n-        invokers.add(invoker);\n-\n-        return invoker;\n-    }\n-\n-    private ExchangeClient[] getClients(URL url) {\n-        // whether to share connection\n-\n-        boolean useShareConnect = false;\n-\n-        int connections = url.getParameter(CONNECTIONS_KEY, 0);\n-        List<ReferenceCountExchangeClient> shareClients = null;\n-        // if not configured, connection is shared, otherwise, one connection for one service\n-        if (connections == 0) {\n-            useShareConnect = true;\n-\n-            /*\n-             * The xml configuration should have a higher priority than properties.\n-             */\n-            String shareConnectionsStr = url.getParameter(SHARE_CONNECTIONS_KEY, (String) null);\n-            connections = Integer.parseInt(StringUtils.isBlank(shareConnectionsStr) ? ConfigUtils.getProperty(SHARE_CONNECTIONS_KEY,\n-                    DEFAULT_SHARE_CONNECTIONS) : shareConnectionsStr);\n-            shareClients = getSharedClient(url, connections);\n-        }\n-\n-        ExchangeClient[] clients = new ExchangeClient[connections];\n-        for (int i = 0; i < clients.length; i++) {\n-            if (useShareConnect) {\n-                clients[i] = shareClients.get(i);\n-\n-            } else {\n-                clients[i] = initClient(url);\n-            }\n-        }\n-\n-        return clients;\n-    }\n-\n-    /**\n-     * Get shared connection\n-     *\n-     * @param url\n-     * @param connectNum connectNum must be greater than or equal to 1\n-     */\n-    private List<ReferenceCountExchangeClient> getSharedClient(URL url, int connectNum) {\n-        String key = url.getAddress();\n-        List<ReferenceCountExchangeClient> clients = referenceClientMap.get(key);\n-\n-        if (checkClientCanUse(clients)) {\n-            batchClientRefIncr(clients);\n-            return clients;\n-        }\n-\n-        locks.putIfAbsent(key, new Object());\n-        synchronized (locks.get(key)) {\n-            clients = referenceClientMap.get(key);\n-            // double check\n-            if (checkClientCanUse(clients)) {\n-                batchClientRefIncr(clients);\n-                return clients;\n-            }\n-\n-            // connectNum must be greater than or equal to 1\n-            connectNum = Math.max(connectNum, 1);\n-\n-            // If the clients is empty, then the first initialization is\n-            if (CollectionUtils.isEmpty(clients)) {\n-                clients = buildReferenceCountExchangeClientList(url, connectNum);\n-                referenceClientMap.put(key, clients);\n-\n-            } else {\n-                for (int i = 0; i < clients.size(); i++) {\n-                    ReferenceCountExchangeClient referenceCountExchangeClient = clients.get(i);\n-                    // If there is a client in the list that is no longer available, create a new one to replace him.\n-                    if (referenceCountExchangeClient == null || referenceCountExchangeClient.isClosed()) {\n-                        clients.set(i, buildReferenceCountExchangeClient(url));\n-                        continue;\n-                    }\n-\n-                    referenceCountExchangeClient.incrementAndGetCount();\n-                }\n-            }\n-\n-            /*\n-             * I understand that the purpose of the remove operation here is to avoid the expired url key\n-             * always occupying this memory space.\n-             * But \"locks.remove(key);\" can lead to \"synchronized (locks.get(key)) {\" NPE, considering that the key of locks is \"IP + port\",\n-             * it will not lead to the expansion of \"locks\" in theory, so I will annotate it here.\n-             */\n-//            locks.remove(key);\n-\n-            return clients;\n-        }\n-    }\n-\n-    /**\n-     * Check if the client list is all available\n-     *\n-     * @param referenceCountExchangeClients\n-     * @return true-available\uff0cfalse-unavailable\n-     */\n-    private boolean checkClientCanUse(List<ReferenceCountExchangeClient> referenceCountExchangeClients) {\n-        if (CollectionUtils.isEmpty(referenceCountExchangeClients)) {\n-            return false;\n-        }\n-\n-        for (ReferenceCountExchangeClient referenceCountExchangeClient : referenceCountExchangeClients) {\n-            // As long as one client is not available, you need to replace the unavailable client with the available one.\n-            if (referenceCountExchangeClient == null || referenceCountExchangeClient.getCount() <= 0 || referenceCountExchangeClient.isClosed()) {\n-                return false;\n-            }\n-        }\n-\n-        return true;\n-    }\n-\n-    /**\n-     * Increase the reference Count if we create new invoker shares same connection, the connection will be closed without any reference.\n-     *\n-     * @param referenceCountExchangeClients\n-     */\n-    private void batchClientRefIncr(List<ReferenceCountExchangeClient> referenceCountExchangeClients) {\n-        if (CollectionUtils.isEmpty(referenceCountExchangeClients)) {\n-            return;\n-        }\n-\n-        for (ReferenceCountExchangeClient referenceCountExchangeClient : referenceCountExchangeClients) {\n-            if (referenceCountExchangeClient != null) {\n-                referenceCountExchangeClient.incrementAndGetCount();\n-            }\n-        }\n-    }\n-\n-    /**\n-     * Bulk build client\n-     *\n-     * @param url\n-     * @param connectNum\n-     * @return\n-     */\n-    private List<ReferenceCountExchangeClient> buildReferenceCountExchangeClientList(URL url, int connectNum) {\n-        List<ReferenceCountExchangeClient> clients = new ArrayList<>();\n-\n-        for (int i = 0; i < connectNum; i++) {\n-            clients.add(buildReferenceCountExchangeClient(url));\n-        }\n-\n-        return clients;\n-    }\n-\n-    /**\n-     * Build a single client\n-     *\n-     * @param url\n-     * @return\n-     */\n-    private ReferenceCountExchangeClient buildReferenceCountExchangeClient(URL url) {\n-        ExchangeClient exchangeClient = initClient(url);\n-\n-        return new ReferenceCountExchangeClient(exchangeClient);\n-    }\n-\n-    /**\n-     * Create new connection\n-     *\n-     * @param url\n-     */\n-    private ExchangeClient initClient(URL url) {\n-\n-        // client type setting.\n-        String str = url.getParameter(CLIENT_KEY, url.getParameter(SERVER_KEY, DEFAULT_REMOTING_CLIENT));\n-\n-        url = url.addParameter(CODEC_KEY, DubboCodec.NAME);\n-        // enable heartbeat by default\n-        url = url.addParameterIfAbsent(HEARTBEAT_KEY, String.valueOf(DEFAULT_HEARTBEAT));\n-\n-        // BIO is not allowed since it has severe performance issue.\n-        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\n-            throw new RpcException(\"Unsupported client type: \" + str + \",\" +\n-                    \" supported client type is \" + StringUtils.join(ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions(), \" \"));\n-        }\n-\n-        ExchangeClient client;\n-        try {\n-            // connection should be lazy\n-            if (url.getParameter(LAZY_CONNECT_KEY, false)) {\n-                client = new LazyConnectExchangeClient(url, requestHandler);\n-\n-            } else {\n-                client = Exchangers.connect(url, requestHandler);\n-            }\n-\n-        } catch (RemotingException e) {\n-            throw new RpcException(\"Fail to create remoting client for service(\" + url + \"): \" + e.getMessage(), e);\n-        }\n-\n-        return client;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        for (String key : new ArrayList<>(serverMap.keySet())) {\n-            ProtocolServer protocolServer = serverMap.remove(key);\n-\n-            if (protocolServer == null) {\n-                continue;\n-            }\n-\n-            RemotingServer server = protocolServer.getRemotingServer();\n-\n-            try {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Close dubbo server: \" + server.getLocalAddress());\n-                }\n-\n-                server.close(ConfigurationUtils.getServerShutdownTimeout());\n-\n-            } catch (Throwable t) {\n-                logger.warn(t.getMessage(), t);\n-            }\n-        }\n-\n-        for (String key : new ArrayList<>(referenceClientMap.keySet())) {\n-            List<ReferenceCountExchangeClient> clients = referenceClientMap.remove(key);\n-\n-            if (CollectionUtils.isEmpty(clients)) {\n-                continue;\n-            }\n-\n-            for (ReferenceCountExchangeClient client : clients) {\n-                closeReferenceCountExchangeClient(client);\n-            }\n-        }\n-\n-        super.destroy();\n-    }\n-\n-    /**\n-     * close ReferenceCountExchangeClient\n-     *\n-     * @param client\n-     */\n-    private void closeReferenceCountExchangeClient(ReferenceCountExchangeClient client) {\n-        if (client == null) {\n-            return;\n-        }\n-\n-        try {\n-            if (logger.isInfoEnabled()) {\n-                logger.info(\"Close dubbo connect: \" + client.getLocalAddress() + \"-->\" + client.getRemoteAddress());\n-            }\n-\n-            client.close(ConfigurationUtils.getServerShutdownTimeout());\n-\n-            // TODO\n-            /*\n-             * At this time, ReferenceCountExchangeClient#client has been replaced with LazyConnectExchangeClient.\n-             * Do you need to call client.close again to ensure that LazyConnectExchangeClient is also closed?\n-             */\n-\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-    }\n-\n-    /**\n-     * only log body in debugger mode for size & security consideration.\n-     *\n-     * @param invocation\n-     * @return\n-     */\n-    private Invocation getInvocationWithoutData(Invocation invocation) {\n-        if (logger.isDebugEnabled()) {\n-            return invocation;\n-        }\n-        if (invocation instanceof RpcInvocation) {\n-            RpcInvocation rpcInvocation = (RpcInvocation) invocation;\n-            rpcInvocation.setArguments(null);\n-            return rpcInvocation;\n-        }\n-        return invocation;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.URLBuilder;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.serialize.support.SerializableClassRegistry;\r\n+import org.apache.dubbo.common.serialize.support.SerializationOptimizer;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.common.utils.ConfigUtils;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.Transporter;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeChannel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeHandler;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeServer;\r\n+import org.apache.dubbo.remoting.exchange.Exchangers;\r\n+import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProtocol;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.ArrayList;\r\n+import java.util.Collection;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.function.Function;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.LAZY_CONNECT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.STUB_EVENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CHANNEL_READONLYEVENT_SENT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_HEARTBEAT;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_REMOTING_CLIENT;\r\n+import static org.apache.dubbo.remoting.Constants.HEARTBEAT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.DEFAULT_REMOTING_SERVER;\r\n+import static org.apache.dubbo.rpc.Constants.DEFAULT_STUB_EVENT;\r\n+import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.STUB_EVENT_METHODS_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.CALLBACK_SERVICE_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_SHARE_CONNECTIONS;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.IS_CALLBACK_SERVICE;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ON_CONNECT_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ON_DISCONNECT_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.OPTIMIZER_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.SHARE_CONNECTIONS_KEY;\r\n+\r\n+\r\n+/**\r\n+ * dubbo protocol support.\r\n+ */\r\n+public class DubboProtocol extends AbstractProtocol {\r\n+\r\n+    public static final String NAME = \"dubbo\";\r\n+\r\n+    public static final int DEFAULT_PORT = 20880;\r\n+    private static final String IS_CALLBACK_SERVICE_INVOKE = \"_isCallBackServiceInvoke\";\r\n+    private static DubboProtocol INSTANCE;\r\n+\r\n+    /**\r\n+     * <host:port,Exchanger>\r\n+     */\r\n+    private final Map<String, List<ReferenceCountExchangeClient>> referenceClientMap = new ConcurrentHashMap<>();\r\n+    private final ConcurrentMap<String, Object> locks = new ConcurrentHashMap<>();\r\n+    private final Set<String> optimizers = new ConcurrentHashSet<>();\r\n+\r\n+    private ExchangeHandler requestHandler = new ExchangeHandlerAdapter() {\r\n+\r\n+        @Override\r\n+        public CompletableFuture<Object> reply(ExchangeChannel channel, Object message) throws RemotingException {\r\n+\r\n+            if (!(message instanceof Invocation)) {\r\n+                throw new RemotingException(channel, \"Unsupported request: \"\r\n+                        + (message == null ? null : (message.getClass().getName() + \": \" + message))\r\n+                        + \", channel: consumer: \" + channel.getRemoteAddress() + \" --> provider: \" + channel.getLocalAddress());\r\n+            }\r\n+\r\n+            Invocation inv = (Invocation) message;\r\n+            Invoker<?> invoker = getInvoker(channel, inv);\r\n+            // need to consider backward-compatibility if it's a callback\r\n+            if (Boolean.TRUE.toString().equals(inv.getObjectAttachments().get(IS_CALLBACK_SERVICE_INVOKE))) {\r\n+                String methodsStr = invoker.getUrl().getParameters().get(\"methods\");\r\n+                boolean hasMethod = false;\r\n+                if (methodsStr == null || !methodsStr.contains(\",\")) {\r\n+                    hasMethod = inv.getMethodName().equals(methodsStr);\r\n+                } else {\r\n+                    String[] methods = methodsStr.split(\",\");\r\n+                    for (String method : methods) {\r\n+                        if (inv.getMethodName().equals(method)) {\r\n+                            hasMethod = true;\r\n+                            break;\r\n+                        }\r\n+                    }\r\n+                }\r\n+                if (!hasMethod) {\r\n+                    logger.warn(new IllegalStateException(\"The methodName \" + inv.getMethodName()\r\n+                            + \" not found in callback service interface ,invoke will be ignored.\"\r\n+                            + \" please update the api interface. url is:\"\r\n+                            + invoker.getUrl()) + \" ,invocation is :\" + inv);\r\n+                    return null;\r\n+                }\r\n+            }\r\n+            RpcContext.getContext().setRemoteAddress(channel.getRemoteAddress());\r\n+            Result result = invoker.invoke(inv);\r\n+            return result.thenApply(Function.identity());\r\n+        }\r\n+\r\n+        @Override\r\n+        public void received(Channel channel, Object message) throws RemotingException {\r\n+            if (message instanceof Invocation) {\r\n+                reply((ExchangeChannel) channel, message);\r\n+\r\n+            } else {\r\n+                super.received(channel, message);\r\n+            }\r\n+        }\r\n+\r\n+        @Override\r\n+        public void connected(Channel channel) throws RemotingException {\r\n+            invoke(channel, ON_CONNECT_KEY);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void disconnected(Channel channel) throws RemotingException {\r\n+            if (logger.isDebugEnabled()) {\r\n+                logger.debug(\"disconnected from \" + channel.getRemoteAddress() + \",url:\" + channel.getUrl());\r\n+            }\r\n+            invoke(channel, ON_DISCONNECT_KEY);\r\n+        }\r\n+\r\n+        private void invoke(Channel channel, String methodKey) {\r\n+            Invocation invocation = createInvocation(channel, channel.getUrl(), methodKey);\r\n+            if (invocation != null) {\r\n+                try {\r\n+                    received(channel, invocation);\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(\"Failed to invoke event method \" + invocation.getMethodName() + \"(), cause: \" + t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        /**\r\n+         * FIXME channel.getUrl() always binds to a fixed service, and this service is random.\r\n+         * we can choose to use a common service to carry onConnect event if there's no easy way to get the specific\r\n+         * service this connection is binding to.\r\n+         * @param channel\r\n+         * @param url\r\n+         * @param methodKey\r\n+         * @return\r\n+         */\r\n+        private Invocation createInvocation(Channel channel, URL url, String methodKey) {\r\n+            String method = url.getParameter(methodKey);\r\n+            if (method == null || method.length() == 0) {\r\n+                return null;\r\n+            }\r\n+\r\n+            RpcInvocation invocation = new RpcInvocation(method, url.getParameter(INTERFACE_KEY), \"\", new Class<?>[0], new Object[0]);\r\n+            invocation.setAttachment(PATH_KEY, url.getPath());\r\n+            invocation.setAttachment(GROUP_KEY, url.getParameter(GROUP_KEY));\r\n+            invocation.setAttachment(INTERFACE_KEY, url.getParameter(INTERFACE_KEY));\r\n+            invocation.setAttachment(VERSION_KEY, url.getParameter(VERSION_KEY));\r\n+            if (url.getParameter(STUB_EVENT_KEY, false)) {\r\n+                invocation.setAttachment(STUB_EVENT_KEY, Boolean.TRUE.toString());\r\n+            }\r\n+\r\n+            return invocation;\r\n+        }\r\n+    };\r\n+\r\n+    public DubboProtocol() {\r\n+        INSTANCE = this;\r\n+    }\r\n+\r\n+    public static DubboProtocol getDubboProtocol() {\r\n+        if (INSTANCE == null) {\r\n+            // load\r\n+            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(DubboProtocol.NAME);\r\n+        }\r\n+\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Collection<Exporter<?>> getExporters() {\r\n+        return Collections.unmodifiableCollection(exporterMap.values());\r\n+    }\r\n+\r\n+    private boolean isClientSide(Channel channel) {\r\n+        InetSocketAddress address = channel.getRemoteAddress();\r\n+        URL url = channel.getUrl();\r\n+        return url.getPort() == address.getPort() &&\r\n+                NetUtils.filterLocalHost(channel.getUrl().getIp())\r\n+                        .equals(NetUtils.filterLocalHost(address.getAddress().getHostAddress()));\r\n+    }\r\n+\r\n+    Invoker<?> getInvoker(Channel channel, Invocation inv) throws RemotingException {\r\n+        boolean isCallBackServiceInvoke = false;\r\n+        boolean isStubServiceInvoke = false;\r\n+        int port = channel.getLocalAddress().getPort();\r\n+        String path = (String) inv.getObjectAttachments().get(PATH_KEY);\r\n+\r\n+        // if it's callback service on client side\r\n+        isStubServiceInvoke = Boolean.TRUE.toString().equals(inv.getObjectAttachments().get(STUB_EVENT_KEY));\r\n+        if (isStubServiceInvoke) {\r\n+            port = channel.getRemoteAddress().getPort();\r\n+        }\r\n+\r\n+        //callback\r\n+        isCallBackServiceInvoke = isClientSide(channel) && !isStubServiceInvoke;\r\n+        if (isCallBackServiceInvoke) {\r\n+            path += \".\" + inv.getObjectAttachments().get(CALLBACK_SERVICE_KEY);\r\n+            inv.getObjectAttachments().put(IS_CALLBACK_SERVICE_INVOKE, Boolean.TRUE.toString());\r\n+        }\r\n+\r\n+        String serviceKey = serviceKey(\r\n+                port,\r\n+                path,\r\n+                (String) inv.getObjectAttachments().get(VERSION_KEY),\r\n+                (String) inv.getObjectAttachments().get(GROUP_KEY)\r\n+        );\r\n+        DubboExporter<?> exporter = (DubboExporter<?>) exporterMap.get(serviceKey);\r\n+\r\n+        if (exporter == null) {\r\n+            throw new RemotingException(channel, \"Not found exported service: \" + serviceKey + \" in \" + exporterMap.keySet() + \", may be version or group mismatch \" +\r\n+                    \", channel: consumer: \" + channel.getRemoteAddress() + \" --> provider: \" + channel.getLocalAddress() + \", message:\" + getInvocationWithoutData(inv));\r\n+        }\r\n+\r\n+        return exporter.getInvoker();\r\n+    }\r\n+\r\n+    public Collection<Invoker<?>> getInvokers() {\r\n+        return Collections.unmodifiableCollection(invokers);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\r\n+        URL url = invoker.getUrl();\r\n+\r\n+        // export service.\r\n+        String key = serviceKey(url);\r\n+        DubboExporter<T> exporter = new DubboExporter<T>(invoker, key, exporterMap);\r\n+        exporterMap.put(key, exporter);\r\n+\r\n+        //export an stub service for dispatching event\r\n+        Boolean isStubSupportEvent = url.getParameter(STUB_EVENT_KEY, DEFAULT_STUB_EVENT);\r\n+        Boolean isCallbackservice = url.getParameter(IS_CALLBACK_SERVICE, false);\r\n+        if (isStubSupportEvent && !isCallbackservice) {\r\n+            String stubServiceMethods = url.getParameter(STUB_EVENT_METHODS_KEY);\r\n+            if (stubServiceMethods == null || stubServiceMethods.length() == 0) {\r\n+                if (logger.isWarnEnabled()) {\r\n+                    logger.warn(new IllegalStateException(\"consumer [\" + url.getParameter(INTERFACE_KEY) +\r\n+                            \"], has set stubproxy support event ,but no stub methods founded.\"));\r\n+                }\r\n+\r\n+            }\r\n+        }\r\n+\r\n+        openServer(url);\r\n+        optimizeSerialization(url);\r\n+\r\n+        return exporter;\r\n+    }\r\n+\r\n+    private void openServer(URL url) {\r\n+        // find server.\r\n+        String key = url.getAddress();\r\n+        //client can export a service which's only for server to invoke\r\n+        boolean isServer = url.getParameter(IS_SERVER_KEY, true);\r\n+        if (isServer) {\r\n+            ProtocolServer server = serverMap.get(key);\r\n+            if (server == null) {\r\n+                synchronized (this) {\r\n+                    server = serverMap.get(key);\r\n+                    if (server == null) {\r\n+                        serverMap.put(key, createServer(url));\r\n+                    }\r\n+                }\r\n+            } else {\r\n+                // server supports reset, use together with override\r\n+                server.reset(url);\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private ProtocolServer createServer(URL url) {\r\n+        url = URLBuilder.from(url)\r\n+                // send readonly event when server closes, it's enabled by default\r\n+                .addParameterIfAbsent(CHANNEL_READONLYEVENT_SENT_KEY, Boolean.TRUE.toString())\r\n+                // enable heartbeat by default\r\n+                .addParameterIfAbsent(HEARTBEAT_KEY, String.valueOf(DEFAULT_HEARTBEAT))\r\n+                .addParameter(CODEC_KEY, DubboCodec.NAME)\r\n+                .build();\r\n+        String str = url.getParameter(SERVER_KEY, DEFAULT_REMOTING_SERVER);\r\n+\r\n+        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\r\n+            throw new RpcException(\"Unsupported server type: \" + str + \", url: \" + url);\r\n+        }\r\n+\r\n+        ExchangeServer server;\r\n+        try {\r\n+            server = Exchangers.bind(url, requestHandler);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(\"Fail to start server(url: \" + url + \") \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        str = url.getParameter(CLIENT_KEY);\r\n+        if (str != null && str.length() > 0) {\r\n+            Set<String> supportedTypes = ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions();\r\n+            if (!supportedTypes.contains(str)) {\r\n+                throw new RpcException(\"Unsupported client type: \" + str);\r\n+            }\r\n+        }\r\n+\r\n+        return new DubboProtocolServer(server);\r\n+    }\r\n+\r\n+    private void optimizeSerialization(URL url) throws RpcException {\r\n+        String className = url.getParameter(OPTIMIZER_KEY, \"\");\r\n+        if (StringUtils.isEmpty(className) || optimizers.contains(className)) {\r\n+            return;\r\n+        }\r\n+\r\n+        logger.info(\"Optimizing the serialization process for Kryo, FST, etc...\");\r\n+\r\n+        try {\r\n+            Class clazz = Thread.currentThread().getContextClassLoader().loadClass(className);\r\n+            if (!SerializationOptimizer.class.isAssignableFrom(clazz)) {\r\n+                throw new RpcException(\"The serialization optimizer \" + className + \" isn't an instance of \" + SerializationOptimizer.class.getName());\r\n+            }\r\n+\r\n+            SerializationOptimizer optimizer = (SerializationOptimizer) clazz.newInstance();\r\n+\r\n+            if (optimizer.getSerializableClasses() == null) {\r\n+                return;\r\n+            }\r\n+\r\n+            for (Class c : optimizer.getSerializableClasses()) {\r\n+                SerializableClassRegistry.registerClass(c);\r\n+            }\r\n+\r\n+            optimizers.add(className);\r\n+\r\n+        } catch (ClassNotFoundException e) {\r\n+            throw new RpcException(\"Cannot find the serialization optimizer class: \" + className, e);\r\n+\r\n+        } catch (InstantiationException | IllegalAccessException e) {\r\n+            throw new RpcException(\"Cannot instantiate the serialization optimizer class: \" + className, e);\r\n+\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url) throws RpcException {\r\n+        optimizeSerialization(url);\r\n+\r\n+        // create rpc invoker.\r\n+        DubboInvoker<T> invoker = new DubboInvoker<T>(serviceType, url, getClients(url), invokers);\r\n+        invokers.add(invoker);\r\n+\r\n+        return invoker;\r\n+    }\r\n+\r\n+    private ExchangeClient[] getClients(URL url) {\r\n+        // whether to share connection\r\n+\r\n+        boolean useShareConnect = false;\r\n+\r\n+        int connections = url.getParameter(CONNECTIONS_KEY, 0);\r\n+        List<ReferenceCountExchangeClient> shareClients = null;\r\n+        // if not configured, connection is shared, otherwise, one connection for one service\r\n+        if (connections == 0) {\r\n+            useShareConnect = true;\r\n+\r\n+            /*\r\n+             * The xml configuration should have a higher priority than properties.\r\n+             */\r\n+            String shareConnectionsStr = url.getParameter(SHARE_CONNECTIONS_KEY, (String) null);\r\n+            connections = Integer.parseInt(StringUtils.isBlank(shareConnectionsStr) ? ConfigUtils.getProperty(SHARE_CONNECTIONS_KEY,\r\n+                    DEFAULT_SHARE_CONNECTIONS) : shareConnectionsStr);\r\n+            shareClients = getSharedClient(url, connections);\r\n+        }\r\n+\r\n+        ExchangeClient[] clients = new ExchangeClient[connections];\r\n+        for (int i = 0; i < clients.length; i++) {\r\n+            if (useShareConnect) {\r\n+                clients[i] = shareClients.get(i);\r\n+\r\n+            } else {\r\n+                clients[i] = initClient(url);\r\n+            }\r\n+        }\r\n+\r\n+        return clients;\r\n+    }\r\n+\r\n+    /**\r\n+     * Get shared connection\r\n+     *\r\n+     * @param url\r\n+     * @param connectNum connectNum must be greater than or equal to 1\r\n+     */\r\n+    private List<ReferenceCountExchangeClient> getSharedClient(URL url, int connectNum) {\r\n+        String key = url.getAddress();\r\n+        List<ReferenceCountExchangeClient> clients = referenceClientMap.get(key);\r\n+\r\n+        if (checkClientCanUse(clients)) {\r\n+            batchClientRefIncr(clients);\r\n+            return clients;\r\n+        }\r\n+\r\n+        locks.putIfAbsent(key, new Object());\r\n+        synchronized (locks.get(key)) {\r\n+            clients = referenceClientMap.get(key);\r\n+            // double check\r\n+            if (checkClientCanUse(clients)) {\r\n+                batchClientRefIncr(clients);\r\n+                return clients;\r\n+            }\r\n+\r\n+            // connectNum must be greater than or equal to 1\r\n+            connectNum = Math.max(connectNum, 1);\r\n+\r\n+            // If the clients is empty, then the first initialization is\r\n+            if (CollectionUtils.isEmpty(clients)) {\r\n+                clients = buildReferenceCountExchangeClientList(url, connectNum);\r\n+                referenceClientMap.put(key, clients);\r\n+\r\n+            } else {\r\n+                for (int i = 0; i < clients.size(); i++) {\r\n+                    ReferenceCountExchangeClient referenceCountExchangeClient = clients.get(i);\r\n+                    // If there is a client in the list that is no longer available, create a new one to replace him.\r\n+                    if (referenceCountExchangeClient == null || referenceCountExchangeClient.isClosed()) {\r\n+                        clients.set(i, buildReferenceCountExchangeClient(url));\r\n+                        continue;\r\n+                    }\r\n+\r\n+                    referenceCountExchangeClient.incrementAndGetCount();\r\n+                }\r\n+            }\r\n+\r\n+            /*\r\n+             * I understand that the purpose of the remove operation here is to avoid the expired url key\r\n+             * always occupying this memory space.\r\n+             * But \"locks.remove(key);\" can lead to \"synchronized (locks.get(key)) {\" NPE, considering that the key of locks is \"IP + port\",\r\n+             * it will not lead to the expansion of \"locks\" in theory, so I will annotate it here.\r\n+             */\r\n+//            locks.remove(key);\r\n+\r\n+            return clients;\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Check if the client list is all available\r\n+     *\r\n+     * @param referenceCountExchangeClients\r\n+     * @return true-available\uff0cfalse-unavailable\r\n+     */\r\n+    private boolean checkClientCanUse(List<ReferenceCountExchangeClient> referenceCountExchangeClients) {\r\n+        if (CollectionUtils.isEmpty(referenceCountExchangeClients)) {\r\n+            return false;\r\n+        }\r\n+\r\n+        for (ReferenceCountExchangeClient referenceCountExchangeClient : referenceCountExchangeClients) {\r\n+            // As long as one client is not available, you need to replace the unavailable client with the available one.\r\n+            if (referenceCountExchangeClient == null || referenceCountExchangeClient.getCount() <= 0 || referenceCountExchangeClient.isClosed()) {\r\n+                return false;\r\n+            }\r\n+        }\r\n+\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * Increase the reference Count if we create new invoker shares same connection, the connection will be closed without any reference.\r\n+     *\r\n+     * @param referenceCountExchangeClients\r\n+     */\r\n+    private void batchClientRefIncr(List<ReferenceCountExchangeClient> referenceCountExchangeClients) {\r\n+        if (CollectionUtils.isEmpty(referenceCountExchangeClients)) {\r\n+            return;\r\n+        }\r\n+\r\n+        for (ReferenceCountExchangeClient referenceCountExchangeClient : referenceCountExchangeClients) {\r\n+            if (referenceCountExchangeClient != null) {\r\n+                referenceCountExchangeClient.incrementAndGetCount();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * Bulk build client\r\n+     *\r\n+     * @param url\r\n+     * @param connectNum\r\n+     * @return\r\n+     */\r\n+    private List<ReferenceCountExchangeClient> buildReferenceCountExchangeClientList(URL url, int connectNum) {\r\n+        List<ReferenceCountExchangeClient> clients = new ArrayList<>();\r\n+\r\n+        for (int i = 0; i < connectNum; i++) {\r\n+            clients.add(buildReferenceCountExchangeClient(url));\r\n+        }\r\n+\r\n+        return clients;\r\n+    }\r\n+\r\n+    /**\r\n+     * Build a single client\r\n+     *\r\n+     * @param url\r\n+     * @return\r\n+     */\r\n+    private ReferenceCountExchangeClient buildReferenceCountExchangeClient(URL url) {\r\n+        ExchangeClient exchangeClient = initClient(url);\r\n+\r\n+        return new ReferenceCountExchangeClient(exchangeClient);\r\n+    }\r\n+\r\n+    /**\r\n+     * Create new connection\r\n+     *\r\n+     * @param url\r\n+     */\r\n+    private ExchangeClient initClient(URL url) {\r\n+\r\n+        // client type setting.\r\n+        String str = url.getParameter(CLIENT_KEY, url.getParameter(SERVER_KEY, DEFAULT_REMOTING_CLIENT));\r\n+\r\n+        url = url.addParameter(CODEC_KEY, DubboCodec.NAME);\r\n+        // enable heartbeat by default\r\n+        url = url.addParameterIfAbsent(HEARTBEAT_KEY, String.valueOf(DEFAULT_HEARTBEAT));\r\n+\r\n+        // BIO is not allowed since it has severe performance issue.\r\n+        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\r\n+            throw new RpcException(\"Unsupported client type: \" + str + \",\" +\r\n+                    \" supported client type is \" + StringUtils.join(ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions(), \" \"));\r\n+        }\r\n+\r\n+        ExchangeClient client;\r\n+        try {\r\n+            // connection should be lazy\r\n+            if (url.getParameter(LAZY_CONNECT_KEY, false)) {\r\n+                client = new LazyConnectExchangeClient(url, requestHandler);\r\n+\r\n+            } else {\r\n+                client = Exchangers.connect(url, requestHandler);\r\n+            }\r\n+\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(\"Fail to create remoting client for service(\" + url + \"): \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        return client;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        for (String key : new ArrayList<>(serverMap.keySet())) {\r\n+            ProtocolServer protocolServer = serverMap.remove(key);\r\n+\r\n+            if (protocolServer == null) {\r\n+                continue;\r\n+            }\r\n+\r\n+            RemotingServer server = protocolServer.getRemotingServer();\r\n+\r\n+            try {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Close dubbo server: \" + server.getLocalAddress());\r\n+                }\r\n+\r\n+                server.close(ConfigurationUtils.getServerShutdownTimeout());\r\n+\r\n+            } catch (Throwable t) {\r\n+                logger.warn(t.getMessage(), t);\r\n+            }\r\n+        }\r\n+\r\n+        for (String key : new ArrayList<>(referenceClientMap.keySet())) {\r\n+            List<ReferenceCountExchangeClient> clients = referenceClientMap.remove(key);\r\n+\r\n+            if (CollectionUtils.isEmpty(clients)) {\r\n+                continue;\r\n+            }\r\n+\r\n+            for (ReferenceCountExchangeClient client : clients) {\r\n+                closeReferenceCountExchangeClient(client);\r\n+            }\r\n+        }\r\n+\r\n+        super.destroy();\r\n+    }\r\n+\r\n+    /**\r\n+     * close ReferenceCountExchangeClient\r\n+     *\r\n+     * @param client\r\n+     */\r\n+    private void closeReferenceCountExchangeClient(ReferenceCountExchangeClient client) {\r\n+        if (client == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        try {\r\n+            if (logger.isInfoEnabled()) {\r\n+                logger.info(\"Close dubbo connect: \" + client.getLocalAddress() + \"-->\" + client.getRemoteAddress());\r\n+            }\r\n+\r\n+            client.close(ConfigurationUtils.getServerShutdownTimeout());\r\n+\r\n+            // TODO\r\n+            /*\r\n+             * At this time, ReferenceCountExchangeClient#client has been replaced with LazyConnectExchangeClient.\r\n+             * Do you need to call client.close again to ensure that LazyConnectExchangeClient is also closed?\r\n+             */\r\n+\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * only log body in debugger mode for size & security consideration.\r\n+     *\r\n+     * @param invocation\r\n+     * @return\r\n+     */\r\n+    private Invocation getInvocationWithoutData(Invocation invocation) {\r\n+        if (logger.isDebugEnabled()) {\r\n+            return invocation;\r\n+        }\r\n+        if (invocation instanceof RpcInvocation) {\r\n+            RpcInvocation rpcInvocation = (RpcInvocation) invocation;\r\n+            rpcInvocation.setArguments(null);\r\n+            return rpcInvocation;\r\n+        }\r\n+        return invocation;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/DubboProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-\n-public class DubboProtocolServer implements ProtocolServer {\n-\n-    private RemotingServer server;\n-    private String address;\n-\n-    public DubboProtocolServer(RemotingServer server) {\n-        this.server = server;\n-    }\n-\n-    @Override\n-    public RemotingServer getRemotingServer() {\n-        return server;\n-    }\n-\n-    @Override\n-    public String getAddress() {\n-        return StringUtils.isNotEmpty(address) ? address : server.getUrl().getAddress();\n-    }\n-\n-    @Override\n-    public void setAddress(String address) {\n-        this.address = address;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return server.getUrl();\n-    }\n-\n-    @Override\n-    public void reset(URL url) {\n-        server.reset(url);\n-    }\n-\n-    @Override\n-    public void close() {\n-        server.close();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+\r\n+public class DubboProtocolServer implements ProtocolServer {\r\n+\r\n+    private RemotingServer server;\r\n+    private String address;\r\n+\r\n+    public DubboProtocolServer(RemotingServer server) {\r\n+        this.server = server;\r\n+    }\r\n+\r\n+    @Override\r\n+    public RemotingServer getRemotingServer() {\r\n+        return server;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAddress() {\r\n+        return StringUtils.isNotEmpty(address) ? address : server.getUrl().getAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return server.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        server.reset(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        server.close();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/FutureAdapter.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/FutureAdapter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,99 +1,99 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.CompletionException;\n-import java.util.concurrent.ExecutionException;\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.TimeoutException;\n-\n-/**\n- * This is the type of the Future instance users get in an async call:\n- * 1. unwrap AppResponse in appResponseFuture and convert to plain biz result represented by FutureAdapter.\n- * 2. customized behaviors meaningful for RPC, for example, {@link #cancel(boolean)}\n- */\n-public class FutureAdapter<V> extends CompletableFuture<V> {\n-\n-    private CompletableFuture<AppResponse> appResponseFuture;\n-\n-    public FutureAdapter(CompletableFuture<AppResponse> future) {\n-        this.appResponseFuture = future;\n-        future.whenComplete((appResponse, t) -> {\n-            if (t != null) {\n-                if (t instanceof CompletionException) {\n-                    t = t.getCause();\n-                }\n-                this.completeExceptionally(t);\n-            } else {\n-                if (appResponse.hasException()) {\n-                    this.completeExceptionally(appResponse.getException());\n-                } else {\n-                    this.complete((V) appResponse.getValue());\n-                }\n-            }\n-        });\n-    }\n-\n-    // TODO figure out the meaning of cancel in DefaultFuture.\n-    @Override\n-    public boolean cancel(boolean mayInterruptIfRunning) {\n-//        Invocation invocation = invocationSoftReference.get();\n-//        if (invocation != null) {\n-//            invocation.getInvoker().invoke(cancel);\n-//        }\n-        return appResponseFuture.cancel(mayInterruptIfRunning);\n-    }\n-\n-    @Override\n-    public boolean isCancelled() {\n-        return appResponseFuture.isCancelled();\n-    }\n-\n-    @Override\n-    public boolean isDone() {\n-        return super.isDone();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public V get() throws InterruptedException, ExecutionException {\n-        try {\n-            return super.get();\n-        } catch (ExecutionException | InterruptedException e) {\n-            throw e;\n-        } catch (Throwable e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\n-        try {\n-            return super.get(timeout, unit);\n-        } catch (TimeoutException | ExecutionException | InterruptedException e) {\n-            throw e;\n-        } catch (Throwable e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.CompletionException;\r\n+import java.util.concurrent.ExecutionException;\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.TimeoutException;\r\n+\r\n+/**\r\n+ * This is the type of the Future instance users get in an async call:\r\n+ * 1. unwrap AppResponse in appResponseFuture and convert to plain biz result represented by FutureAdapter.\r\n+ * 2. customized behaviors meaningful for RPC, for example, {@link #cancel(boolean)}\r\n+ */\r\n+public class FutureAdapter<V> extends CompletableFuture<V> {\r\n+\r\n+    private CompletableFuture<AppResponse> appResponseFuture;\r\n+\r\n+    public FutureAdapter(CompletableFuture<AppResponse> future) {\r\n+        this.appResponseFuture = future;\r\n+        future.whenComplete((appResponse, t) -> {\r\n+            if (t != null) {\r\n+                if (t instanceof CompletionException) {\r\n+                    t = t.getCause();\r\n+                }\r\n+                this.completeExceptionally(t);\r\n+            } else {\r\n+                if (appResponse.hasException()) {\r\n+                    this.completeExceptionally(appResponse.getException());\r\n+                } else {\r\n+                    this.complete((V) appResponse.getValue());\r\n+                }\r\n+            }\r\n+        });\r\n+    }\r\n+\r\n+    // TODO figure out the meaning of cancel in DefaultFuture.\r\n+    @Override\r\n+    public boolean cancel(boolean mayInterruptIfRunning) {\r\n+//        Invocation invocation = invocationSoftReference.get();\r\n+//        if (invocation != null) {\r\n+//            invocation.getInvoker().invoke(cancel);\r\n+//        }\r\n+        return appResponseFuture.cancel(mayInterruptIfRunning);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isCancelled() {\r\n+        return appResponseFuture.isCancelled();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDone() {\r\n+        return super.isDone();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public V get() throws InterruptedException, ExecutionException {\r\n+        try {\r\n+            return super.get();\r\n+        } catch (ExecutionException | InterruptedException e) {\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public V get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException {\r\n+        try {\r\n+            return super.get(timeout, unit);\r\n+        } catch (TimeoutException | ExecutionException | InterruptedException e) {\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/LazyConnectExchangeClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,269 +1,269 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-import org.apache.dubbo.common.Parameters;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.NetUtils;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.remoting.exchange.ExchangeHandler;\n-import org.apache.dubbo.remoting.exchange.Exchangers;\n-\n-import java.net.InetSocketAddress;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.atomic.AtomicLong;\n-import java.util.concurrent.locks.Lock;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static org.apache.dubbo.remoting.Constants.SEND_RECONNECT_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_LAZY_CONNECT_INITIAL_STATE;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.LAZY_CONNECT_INITIAL_STATE_KEY;\n-\n-/**\n- * dubbo protocol support class.\n- */\n-@SuppressWarnings(\"deprecation\")\n-final class LazyConnectExchangeClient implements ExchangeClient {\n-\n-    /**\n-     * when this warning rises from invocation, program probably have bug.\n-     */\n-    protected static final String REQUEST_WITH_WARNING_KEY = \"lazyclient_request_with_warning\";\n-    private final static Logger logger = LoggerFactory.getLogger(LazyConnectExchangeClient.class);\n-    protected final boolean requestWithWarning;\n-    private final URL url;\n-    private final ExchangeHandler requestHandler;\n-    private final Lock connectLock = new ReentrantLock();\n-    private final int warning_period = 5000;\n-    /**\n-     * lazy connect, initial state for connection\n-     */\n-    private final boolean initialState;\n-    private volatile ExchangeClient client;\n-    private AtomicLong warningcount = new AtomicLong(0);\n-\n-    public LazyConnectExchangeClient(URL url, ExchangeHandler requestHandler) {\n-        // lazy connect, need set send.reconnect = true, to avoid channel bad status.\n-        this.url = url.addParameter(SEND_RECONNECT_KEY, Boolean.TRUE.toString());\n-        this.requestHandler = requestHandler;\n-        this.initialState = url.getParameter(LAZY_CONNECT_INITIAL_STATE_KEY, DEFAULT_LAZY_CONNECT_INITIAL_STATE);\n-        this.requestWithWarning = url.getParameter(REQUEST_WITH_WARNING_KEY, false);\n-    }\n-\n-    private void initClient() throws RemotingException {\n-        if (client != null) {\n-            return;\n-        }\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Lazy connect to \" + url);\n-        }\n-        connectLock.lock();\n-        try {\n-            if (client != null) {\n-                return;\n-            }\n-            this.client = Exchangers.connect(url, requestHandler);\n-        } finally {\n-            connectLock.unlock();\n-        }\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request) throws RemotingException {\n-        warning();\n-        initClient();\n-        return client.request(request);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        if (client == null) {\n-            return InetSocketAddress.createUnresolved(url.getHost(), url.getPort());\n-        } else {\n-            return client.getRemoteAddress();\n-        }\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, int timeout) throws RemotingException {\n-        warning();\n-        initClient();\n-        return client.request(request, timeout);\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, ExecutorService executor) throws RemotingException {\n-        warning();\n-        initClient();\n-        return client.request(request, executor);\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, int timeout, ExecutorService executor) throws RemotingException {\n-        warning();\n-        initClient();\n-        return client.request(request, timeout, executor);\n-    }\n-\n-    /**\n-     * If {@link #REQUEST_WITH_WARNING_KEY} is configured, then warn once every 5000 invocations.\n-     */\n-    private void warning() {\n-        if (requestWithWarning) {\n-            if (warningcount.get() % warning_period == 0) {\n-                logger.warn(url.getAddress() + \" \" + url.getServiceKey() + \" safe guard client , should not be called ,must have a bug.\");\n-            }\n-            warningcount.incrementAndGet();\n-        }\n-    }\n-\n-    @Override\n-    public ChannelHandler getChannelHandler() {\n-        checkClient();\n-        return client.getChannelHandler();\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        if (client == null) {\n-            return initialState;\n-        } else {\n-            return client.isConnected();\n-        }\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        if (client == null) {\n-            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\n-        } else {\n-            return client.getLocalAddress();\n-        }\n-    }\n-\n-    @Override\n-    public ExchangeHandler getExchangeHandler() {\n-        return requestHandler;\n-    }\n-\n-    @Override\n-    public void send(Object message) throws RemotingException {\n-        initClient();\n-        client.send(message);\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        initClient();\n-        client.send(message, sent);\n-    }\n-\n-    @Override\n-    public boolean isClosed() {\n-        if (client != null) {\n-            return client.isClosed();\n-        } else {\n-            return false;\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        if (client != null) {\n-            client.close();\n-        }\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        if (client != null) {\n-            client.close(timeout);\n-        }\n-    }\n-\n-    @Override\n-    public void startClose() {\n-        if (client != null) {\n-            client.startClose();\n-        }\n-    }\n-\n-    @Override\n-    public void reset(URL url) {\n-        checkClient();\n-        client.reset(url);\n-    }\n-\n-    @Override\n-    @Deprecated\n-    public void reset(Parameters parameters) {\n-        reset(getUrl().addParameters(parameters.getParameters()));\n-    }\n-\n-    @Override\n-    public void reconnect() throws RemotingException {\n-        checkClient();\n-        client.reconnect();\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        if (client == null) {\n-            return null;\n-        } else {\n-            return client.getAttribute(key);\n-        }\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        checkClient();\n-        client.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        checkClient();\n-        client.removeAttribute(key);\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        if (client == null) {\n-            return false;\n-        } else {\n-            return client.hasAttribute(key);\n-        }\n-    }\n-\n-    private void checkClient() {\n-        if (client == null) {\n-            throw new IllegalStateException(\n-                    \"LazyConnectExchangeClient state error. the client has not be init .url:\" + url);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+import org.apache.dubbo.common.Parameters;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeHandler;\r\n+import org.apache.dubbo.remoting.exchange.Exchangers;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+import java.util.concurrent.locks.Lock;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.SEND_RECONNECT_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.DEFAULT_LAZY_CONNECT_INITIAL_STATE;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.LAZY_CONNECT_INITIAL_STATE_KEY;\r\n+\r\n+/**\r\n+ * dubbo protocol support class.\r\n+ */\r\n+@SuppressWarnings(\"deprecation\")\r\n+final class LazyConnectExchangeClient implements ExchangeClient {\r\n+\r\n+    /**\r\n+     * when this warning rises from invocation, program probably have bug.\r\n+     */\r\n+    protected static final String REQUEST_WITH_WARNING_KEY = \"lazyclient_request_with_warning\";\r\n+    private final static Logger logger = LoggerFactory.getLogger(LazyConnectExchangeClient.class);\r\n+    protected final boolean requestWithWarning;\r\n+    private final URL url;\r\n+    private final ExchangeHandler requestHandler;\r\n+    private final Lock connectLock = new ReentrantLock();\r\n+    private final int warning_period = 5000;\r\n+    /**\r\n+     * lazy connect, initial state for connection\r\n+     */\r\n+    private final boolean initialState;\r\n+    private volatile ExchangeClient client;\r\n+    private AtomicLong warningcount = new AtomicLong(0);\r\n+\r\n+    public LazyConnectExchangeClient(URL url, ExchangeHandler requestHandler) {\r\n+        // lazy connect, need set send.reconnect = true, to avoid channel bad status.\r\n+        this.url = url.addParameter(SEND_RECONNECT_KEY, Boolean.TRUE.toString());\r\n+        this.requestHandler = requestHandler;\r\n+        this.initialState = url.getParameter(LAZY_CONNECT_INITIAL_STATE_KEY, DEFAULT_LAZY_CONNECT_INITIAL_STATE);\r\n+        this.requestWithWarning = url.getParameter(REQUEST_WITH_WARNING_KEY, false);\r\n+    }\r\n+\r\n+    private void initClient() throws RemotingException {\r\n+        if (client != null) {\r\n+            return;\r\n+        }\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Lazy connect to \" + url);\r\n+        }\r\n+        connectLock.lock();\r\n+        try {\r\n+            if (client != null) {\r\n+                return;\r\n+            }\r\n+            this.client = Exchangers.connect(url, requestHandler);\r\n+        } finally {\r\n+            connectLock.unlock();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request) throws RemotingException {\r\n+        warning();\r\n+        initClient();\r\n+        return client.request(request);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        if (client == null) {\r\n+            return InetSocketAddress.createUnresolved(url.getHost(), url.getPort());\r\n+        } else {\r\n+            return client.getRemoteAddress();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, int timeout) throws RemotingException {\r\n+        warning();\r\n+        initClient();\r\n+        return client.request(request, timeout);\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, ExecutorService executor) throws RemotingException {\r\n+        warning();\r\n+        initClient();\r\n+        return client.request(request, executor);\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, int timeout, ExecutorService executor) throws RemotingException {\r\n+        warning();\r\n+        initClient();\r\n+        return client.request(request, timeout, executor);\r\n+    }\r\n+\r\n+    /**\r\n+     * If {@link #REQUEST_WITH_WARNING_KEY} is configured, then warn once every 5000 invocations.\r\n+     */\r\n+    private void warning() {\r\n+        if (requestWithWarning) {\r\n+            if (warningcount.get() % warning_period == 0) {\r\n+                logger.warn(url.getAddress() + \" \" + url.getServiceKey() + \" safe guard client , should not be called ,must have a bug.\");\r\n+            }\r\n+            warningcount.incrementAndGet();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelHandler getChannelHandler() {\r\n+        checkClient();\r\n+        return client.getChannelHandler();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        if (client == null) {\r\n+            return initialState;\r\n+        } else {\r\n+            return client.isConnected();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        if (client == null) {\r\n+            return InetSocketAddress.createUnresolved(NetUtils.getLocalHost(), 0);\r\n+        } else {\r\n+            return client.getLocalAddress();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public ExchangeHandler getExchangeHandler() {\r\n+        return requestHandler;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message) throws RemotingException {\r\n+        initClient();\r\n+        client.send(message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        initClient();\r\n+        client.send(message, sent);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isClosed() {\r\n+        if (client != null) {\r\n+            return client.isClosed();\r\n+        } else {\r\n+            return false;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        if (client != null) {\r\n+            client.close();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        if (client != null) {\r\n+            client.close(timeout);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void startClose() {\r\n+        if (client != null) {\r\n+            client.startClose();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        checkClient();\r\n+        client.reset(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    @Deprecated\r\n+    public void reset(Parameters parameters) {\r\n+        reset(getUrl().addParameters(parameters.getParameters()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reconnect() throws RemotingException {\r\n+        checkClient();\r\n+        client.reconnect();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        if (client == null) {\r\n+            return null;\r\n+        } else {\r\n+            return client.getAttribute(key);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        checkClient();\r\n+        client.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        checkClient();\r\n+        client.removeAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        if (client == null) {\r\n+            return false;\r\n+        } else {\r\n+            return client.hasAttribute(key);\r\n+        }\r\n+    }\r\n+\r\n+    private void checkClient() {\r\n+        if (client == null) {\r\n+            throw new IllegalStateException(\r\n+                    \"LazyConnectExchangeClient state error. the client has not be init .url:\" + url);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClient.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/ReferenceCountExchangeClient.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,211 +1,211 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo;\n-\n-\n-import org.apache.dubbo.common.Parameters;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.ChannelHandler;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.remoting.exchange.ExchangeHandler;\n-\n-import java.net.InetSocketAddress;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-import static org.apache.dubbo.remoting.Constants.SEND_RECONNECT_KEY;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.LAZY_CONNECT_INITIAL_STATE_KEY;\n-\n-/**\n- * dubbo protocol support class.\n- */\n-@SuppressWarnings(\"deprecation\")\n-final class ReferenceCountExchangeClient implements ExchangeClient {\n-\n-    private final URL url;\n-    private final AtomicInteger referenceCount = new AtomicInteger(0);\n-\n-    private ExchangeClient client;\n-\n-    public ReferenceCountExchangeClient(ExchangeClient client) {\n-        this.client = client;\n-        referenceCount.incrementAndGet();\n-        this.url = client.getUrl();\n-    }\n-\n-    @Override\n-    public void reset(URL url) {\n-        client.reset(url);\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request) throws RemotingException {\n-        return client.request(request);\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return client.getUrl();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getRemoteAddress() {\n-        return client.getRemoteAddress();\n-    }\n-\n-    @Override\n-    public ChannelHandler getChannelHandler() {\n-        return client.getChannelHandler();\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, int timeout) throws RemotingException {\n-        return client.request(request, timeout);\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, ExecutorService executor) throws RemotingException {\n-        return client.request(request, executor);\n-    }\n-\n-    @Override\n-    public CompletableFuture<Object> request(Object request, int timeout, ExecutorService executor) throws RemotingException {\n-        return client.request(request, timeout, executor);\n-    }\n-\n-    @Override\n-    public boolean isConnected() {\n-        return client.isConnected();\n-    }\n-\n-    @Override\n-    public void reconnect() throws RemotingException {\n-        client.reconnect();\n-    }\n-\n-    @Override\n-    public InetSocketAddress getLocalAddress() {\n-        return client.getLocalAddress();\n-    }\n-\n-    @Override\n-    public boolean hasAttribute(String key) {\n-        return client.hasAttribute(key);\n-    }\n-\n-    @Override\n-    public void reset(Parameters parameters) {\n-        client.reset(parameters);\n-    }\n-\n-    @Override\n-    public void send(Object message) throws RemotingException {\n-        client.send(message);\n-    }\n-\n-    @Override\n-    public ExchangeHandler getExchangeHandler() {\n-        return client.getExchangeHandler();\n-    }\n-\n-    @Override\n-    public Object getAttribute(String key) {\n-        return client.getAttribute(key);\n-    }\n-\n-    @Override\n-    public void send(Object message, boolean sent) throws RemotingException {\n-        client.send(message, sent);\n-    }\n-\n-    @Override\n-    public void setAttribute(String key, Object value) {\n-        client.setAttribute(key, value);\n-    }\n-\n-    @Override\n-    public void removeAttribute(String key) {\n-        client.removeAttribute(key);\n-    }\n-\n-    /**\n-     * close() is not idempotent any longer\n-     */\n-    @Override\n-    public void close() {\n-        close(0);\n-    }\n-\n-    @Override\n-    public void close(int timeout) {\n-        if (referenceCount.decrementAndGet() <= 0) {\n-            if (timeout == 0) {\n-                client.close();\n-\n-            } else {\n-                client.close(timeout);\n-            }\n-\n-            replaceWithLazyClient();\n-        }\n-    }\n-\n-    @Override\n-    public void startClose() {\n-        client.startClose();\n-    }\n-\n-    /**\n-     * when closing the client, the client needs to be set to LazyConnectExchangeClient, and if a new call is made,\n-     * the client will \"resurrect\".\n-     *\n-     * @return\n-     */\n-    private void replaceWithLazyClient() {\n-        // this is a defensive operation to avoid client is closed by accident, the initial state of the client is false\n-        URL lazyUrl = url.addParameter(LAZY_CONNECT_INITIAL_STATE_KEY, Boolean.TRUE)\n-                //.addParameter(RECONNECT_KEY, Boolean.FALSE)\n-                .addParameter(SEND_RECONNECT_KEY, Boolean.TRUE.toString())\n-                .addParameter(LazyConnectExchangeClient.REQUEST_WITH_WARNING_KEY, true);\n-\n-        /**\n-         * the order of judgment in the if statement cannot be changed.\n-         */\n-        if (!(client instanceof LazyConnectExchangeClient) || client.isClosed()) {\n-            client = new LazyConnectExchangeClient(lazyUrl, client.getExchangeHandler());\n-        }\n-    }\n-\n-    @Override\n-    public boolean isClosed() {\n-        return client.isClosed();\n-    }\n-\n-    /**\n-     * The reference count of current ExchangeClient, connection will be closed if all invokers destroyed.\n-     */\n-    public void incrementAndGetCount() {\n-        referenceCount.incrementAndGet();\n-    }\n-\n-    public int getCount() {\n-        return referenceCount.get();\n-    }\n-}\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo;\r\n+\r\n+\r\n+import org.apache.dubbo.common.Parameters;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.ChannelHandler;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeHandler;\r\n+\r\n+import java.net.InetSocketAddress;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.SEND_RECONNECT_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.LAZY_CONNECT_INITIAL_STATE_KEY;\r\n+\r\n+/**\r\n+ * dubbo protocol support class.\r\n+ */\r\n+@SuppressWarnings(\"deprecation\")\r\n+final class ReferenceCountExchangeClient implements ExchangeClient {\r\n+\r\n+    private final URL url;\r\n+    private final AtomicInteger referenceCount = new AtomicInteger(0);\r\n+\r\n+    private ExchangeClient client;\r\n+\r\n+    public ReferenceCountExchangeClient(ExchangeClient client) {\r\n+        this.client = client;\r\n+        referenceCount.incrementAndGet();\r\n+        this.url = client.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(URL url) {\r\n+        client.reset(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request) throws RemotingException {\r\n+        return client.request(request);\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return client.getUrl();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getRemoteAddress() {\r\n+        return client.getRemoteAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public ChannelHandler getChannelHandler() {\r\n+        return client.getChannelHandler();\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, int timeout) throws RemotingException {\r\n+        return client.request(request, timeout);\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, ExecutorService executor) throws RemotingException {\r\n+        return client.request(request, executor);\r\n+    }\r\n+\r\n+    @Override\r\n+    public CompletableFuture<Object> request(Object request, int timeout, ExecutorService executor) throws RemotingException {\r\n+        return client.request(request, timeout, executor);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isConnected() {\r\n+        return client.isConnected();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reconnect() throws RemotingException {\r\n+        client.reconnect();\r\n+    }\r\n+\r\n+    @Override\r\n+    public InetSocketAddress getLocalAddress() {\r\n+        return client.getLocalAddress();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean hasAttribute(String key) {\r\n+        return client.hasAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void reset(Parameters parameters) {\r\n+        client.reset(parameters);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message) throws RemotingException {\r\n+        client.send(message);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ExchangeHandler getExchangeHandler() {\r\n+        return client.getExchangeHandler();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getAttribute(String key) {\r\n+        return client.getAttribute(key);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void send(Object message, boolean sent) throws RemotingException {\r\n+        client.send(message, sent);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAttribute(String key, Object value) {\r\n+        client.setAttribute(key, value);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void removeAttribute(String key) {\r\n+        client.removeAttribute(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * close() is not idempotent any longer\r\n+     */\r\n+    @Override\r\n+    public void close() {\r\n+        close(0);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close(int timeout) {\r\n+        if (referenceCount.decrementAndGet() <= 0) {\r\n+            if (timeout == 0) {\r\n+                client.close();\r\n+\r\n+            } else {\r\n+                client.close(timeout);\r\n+            }\r\n+\r\n+            replaceWithLazyClient();\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void startClose() {\r\n+        client.startClose();\r\n+    }\r\n+\r\n+    /**\r\n+     * when closing the client, the client needs to be set to LazyConnectExchangeClient, and if a new call is made,\r\n+     * the client will \"resurrect\".\r\n+     *\r\n+     * @return\r\n+     */\r\n+    private void replaceWithLazyClient() {\r\n+        // this is a defensive operation to avoid client is closed by accident, the initial state of the client is false\r\n+        URL lazyUrl = url.addParameter(LAZY_CONNECT_INITIAL_STATE_KEY, Boolean.TRUE)\r\n+                //.addParameter(RECONNECT_KEY, Boolean.FALSE)\r\n+                .addParameter(SEND_RECONNECT_KEY, Boolean.TRUE.toString())\r\n+                .addParameter(LazyConnectExchangeClient.REQUEST_WITH_WARNING_KEY, true);\r\n+\r\n+        /**\r\n+         * the order of judgment in the if statement cannot be changed.\r\n+         */\r\n+        if (!(client instanceof LazyConnectExchangeClient) || client.isClosed()) {\r\n+            client = new LazyConnectExchangeClient(lazyUrl, client.getExchangeHandler());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isClosed() {\r\n+        return client.isClosed();\r\n+    }\r\n+\r\n+    /**\r\n+     * The reference count of current ExchangeClient, connection will be closed if all invokers destroyed.\r\n+     */\r\n+    public void incrementAndGetCount() {\r\n+        referenceCount.incrementAndGet();\r\n+    }\r\n+\r\n+    public int getCount() {\r\n+        return referenceCount.get();\r\n+    }\r\n+}\r\n+\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/filter/FutureFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,203 +1,203 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo.filter;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.AsyncMethodInfo;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.lang.reflect.Method;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\n-import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ASYNC_METHOD_INFO;\n-\n-/**\n- * EventFilter\n- */\n-@Activate(group = CommonConstants.CONSUMER)\n-public class FutureFilter implements Filter, Filter.Listener {\n-\n-    protected static final Logger logger = LoggerFactory.getLogger(FutureFilter.class);\n-\n-    @Override\n-    public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {\n-        fireInvokeCallback(invoker, invocation);\n-        // need to configure if there's return value before the invocation in order to help invoker to judge if it's\n-        // necessary to return future.\n-        return invoker.invoke(invocation);\n-    }\n-\n-    @Override\n-    public void onResponse(Result result, Invoker<?> invoker, Invocation invocation) {\n-        if (result.hasException()) {\n-            fireThrowCallback(invoker, invocation, result.getException());\n-        } else {\n-            fireReturnCallback(invoker, invocation, result.getValue());\n-        }\n-    }\n-\n-    @Override\n-    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\n-        fireThrowCallback(invoker, invocation, t);\n-    }\n-\n-    private void fireInvokeCallback(final Invoker<?> invoker, final Invocation invocation) {\n-        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\n-        if (asyncMethodInfo == null) {\n-            return;\n-        }\n-        final Method onInvokeMethod = asyncMethodInfo.getOninvokeMethod();\n-        final Object onInvokeInst = asyncMethodInfo.getOninvokeInstance();\n-\n-        if (onInvokeMethod == null && onInvokeInst == null) {\n-            return;\n-        }\n-        if (onInvokeMethod == null || onInvokeInst == null) {\n-            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a oninvoke callback config , but no such \" + (onInvokeMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\n-        }\n-\n-        ReflectUtils.makeAccessible(onInvokeMethod);\n-        Object[] params = invocation.getArguments();\n-        try {\n-            onInvokeMethod.invoke(onInvokeInst, params);\n-        } catch (InvocationTargetException e) {\n-            fireThrowCallback(invoker, invocation, e.getTargetException());\n-        } catch (Throwable e) {\n-            fireThrowCallback(invoker, invocation, e);\n-        }\n-    }\n-\n-    private void fireReturnCallback(final Invoker<?> invoker, final Invocation invocation, final Object result) {\n-        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\n-        if (asyncMethodInfo == null) {\n-            return;\n-        }\n-\n-        final Method onReturnMethod = asyncMethodInfo.getOnreturnMethod();\n-        final Object onReturnInst = asyncMethodInfo.getOnreturnInstance();\n-\n-        //not set onreturn callback\n-        if (onReturnMethod == null && onReturnInst == null) {\n-            return;\n-        }\n-\n-        if (onReturnMethod == null || onReturnInst == null) {\n-            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a onreturn callback config , but no such \" + (onReturnMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\n-        }\n-        ReflectUtils.makeAccessible(onReturnMethod);\n-\n-        Object[] args = invocation.getArguments();\n-        Object[] params;\n-        Class<?>[] rParaTypes = onReturnMethod.getParameterTypes();\n-        if (rParaTypes.length > 1) {\n-            if (rParaTypes.length == 2 && rParaTypes[1].isAssignableFrom(Object[].class)) {\n-                params = new Object[2];\n-                params[0] = result;\n-                params[1] = args;\n-            } else {\n-                params = new Object[args.length + 1];\n-                params[0] = result;\n-                System.arraycopy(args, 0, params, 1, args.length);\n-            }\n-        } else {\n-            params = new Object[]{result};\n-        }\n-        try {\n-            onReturnMethod.invoke(onReturnInst, params);\n-        } catch (InvocationTargetException e) {\n-            fireThrowCallback(invoker, invocation, e.getTargetException());\n-        } catch (Throwable e) {\n-            fireThrowCallback(invoker, invocation, e);\n-        }\n-    }\n-\n-    private void fireThrowCallback(final Invoker<?> invoker, final Invocation invocation, final Throwable exception) {\n-        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\n-        if (asyncMethodInfo == null) {\n-            return;\n-        }\n-\n-        final Method onthrowMethod = asyncMethodInfo.getOnthrowMethod();\n-        final Object onthrowInst = asyncMethodInfo.getOnthrowInstance();\n-\n-        //onthrow callback not configured\n-        if (onthrowMethod == null && onthrowInst == null) {\n-            return;\n-        }\n-        if (onthrowMethod == null || onthrowInst == null) {\n-            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a onthrow callback config , but no such \" + (onthrowMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\n-        }\n-        ReflectUtils.makeAccessible(onthrowMethod);\n-        Class<?>[] rParaTypes = onthrowMethod.getParameterTypes();\n-        if (rParaTypes[0].isAssignableFrom(exception.getClass())) {\n-            try {\n-                Object[] args = invocation.getArguments();\n-                Object[] params;\n-\n-                if (rParaTypes.length > 1) {\n-                    if (rParaTypes.length == 2 && rParaTypes[1].isAssignableFrom(Object[].class)) {\n-                        params = new Object[2];\n-                        params[0] = exception;\n-                        params[1] = args;\n-                    } else {\n-                        params = new Object[args.length + 1];\n-                        params[0] = exception;\n-                        System.arraycopy(args, 0, params, 1, args.length);\n-                    }\n-                } else {\n-                    params = new Object[]{exception};\n-                }\n-                onthrowMethod.invoke(onthrowInst, params);\n-            } catch (Throwable e) {\n-                logger.error(invocation.getMethodName() + \".call back method invoke error . callback method :\" + onthrowMethod + \", url:\" + invoker.getUrl(), e);\n-            }\n-        } else {\n-            logger.error(invocation.getMethodName() + \".call back method invoke error . callback method :\" + onthrowMethod + \", url:\" + invoker.getUrl(), exception);\n-        }\n-    }\n-\n-    private AsyncMethodInfo getAsyncMethodInfo(Invoker<?> invoker, Invocation invocation) {\n-        AsyncMethodInfo asyncMethodInfo = (AsyncMethodInfo) invocation.get(ASYNC_METHOD_INFO);\n-        if (asyncMethodInfo != null) {\n-            return asyncMethodInfo;\n-        }\n-\n-        ConsumerModel consumerModel = ApplicationModel.getConsumerModel(invoker.getUrl().getServiceKey());\n-        if (consumerModel == null) {\n-            return null;\n-        }\n-\n-        String methodName = invocation.getMethodName();\n-        if (methodName.equals($INVOKE)) {\n-            methodName = (String) invocation.getArguments()[0];\n-        }\n-\n-        return consumerModel.getAsyncInfo(methodName);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo.filter;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.AsyncMethodInfo;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.lang.reflect.Method;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\r\n+import static org.apache.dubbo.rpc.protocol.dubbo.Constants.ASYNC_METHOD_INFO;\r\n+\r\n+/**\r\n+ * EventFilter\r\n+ */\r\n+@Activate(group = CommonConstants.CONSUMER)\r\n+public class FutureFilter implements Filter, Filter.Listener {\r\n+\r\n+    protected static final Logger logger = LoggerFactory.getLogger(FutureFilter.class);\r\n+\r\n+    @Override\r\n+    public Result invoke(final Invoker<?> invoker, final Invocation invocation) throws RpcException {\r\n+        fireInvokeCallback(invoker, invocation);\r\n+        // need to configure if there's return value before the invocation in order to help invoker to judge if it's\r\n+        // necessary to return future.\r\n+        return invoker.invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onResponse(Result result, Invoker<?> invoker, Invocation invocation) {\r\n+        if (result.hasException()) {\r\n+            fireThrowCallback(invoker, invocation, result.getException());\r\n+        } else {\r\n+            fireReturnCallback(invoker, invocation, result.getValue());\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void onError(Throwable t, Invoker<?> invoker, Invocation invocation) {\r\n+        fireThrowCallback(invoker, invocation, t);\r\n+    }\r\n+\r\n+    private void fireInvokeCallback(final Invoker<?> invoker, final Invocation invocation) {\r\n+        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\r\n+        if (asyncMethodInfo == null) {\r\n+            return;\r\n+        }\r\n+        final Method onInvokeMethod = asyncMethodInfo.getOninvokeMethod();\r\n+        final Object onInvokeInst = asyncMethodInfo.getOninvokeInstance();\r\n+\r\n+        if (onInvokeMethod == null && onInvokeInst == null) {\r\n+            return;\r\n+        }\r\n+        if (onInvokeMethod == null || onInvokeInst == null) {\r\n+            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a oninvoke callback config , but no such \" + (onInvokeMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\r\n+        }\r\n+\r\n+        ReflectUtils.makeAccessible(onInvokeMethod);\r\n+        Object[] params = invocation.getArguments();\r\n+        try {\r\n+            onInvokeMethod.invoke(onInvokeInst, params);\r\n+        } catch (InvocationTargetException e) {\r\n+            fireThrowCallback(invoker, invocation, e.getTargetException());\r\n+        } catch (Throwable e) {\r\n+            fireThrowCallback(invoker, invocation, e);\r\n+        }\r\n+    }\r\n+\r\n+    private void fireReturnCallback(final Invoker<?> invoker, final Invocation invocation, final Object result) {\r\n+        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\r\n+        if (asyncMethodInfo == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        final Method onReturnMethod = asyncMethodInfo.getOnreturnMethod();\r\n+        final Object onReturnInst = asyncMethodInfo.getOnreturnInstance();\r\n+\r\n+        //not set onreturn callback\r\n+        if (onReturnMethod == null && onReturnInst == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        if (onReturnMethod == null || onReturnInst == null) {\r\n+            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a onreturn callback config , but no such \" + (onReturnMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\r\n+        }\r\n+        ReflectUtils.makeAccessible(onReturnMethod);\r\n+\r\n+        Object[] args = invocation.getArguments();\r\n+        Object[] params;\r\n+        Class<?>[] rParaTypes = onReturnMethod.getParameterTypes();\r\n+        if (rParaTypes.length > 1) {\r\n+            if (rParaTypes.length == 2 && rParaTypes[1].isAssignableFrom(Object[].class)) {\r\n+                params = new Object[2];\r\n+                params[0] = result;\r\n+                params[1] = args;\r\n+            } else {\r\n+                params = new Object[args.length + 1];\r\n+                params[0] = result;\r\n+                System.arraycopy(args, 0, params, 1, args.length);\r\n+            }\r\n+        } else {\r\n+            params = new Object[]{result};\r\n+        }\r\n+        try {\r\n+            onReturnMethod.invoke(onReturnInst, params);\r\n+        } catch (InvocationTargetException e) {\r\n+            fireThrowCallback(invoker, invocation, e.getTargetException());\r\n+        } catch (Throwable e) {\r\n+            fireThrowCallback(invoker, invocation, e);\r\n+        }\r\n+    }\r\n+\r\n+    private void fireThrowCallback(final Invoker<?> invoker, final Invocation invocation, final Throwable exception) {\r\n+        final AsyncMethodInfo asyncMethodInfo = getAsyncMethodInfo(invoker, invocation);\r\n+        if (asyncMethodInfo == null) {\r\n+            return;\r\n+        }\r\n+\r\n+        final Method onthrowMethod = asyncMethodInfo.getOnthrowMethod();\r\n+        final Object onthrowInst = asyncMethodInfo.getOnthrowInstance();\r\n+\r\n+        //onthrow callback not configured\r\n+        if (onthrowMethod == null && onthrowInst == null) {\r\n+            return;\r\n+        }\r\n+        if (onthrowMethod == null || onthrowInst == null) {\r\n+            throw new IllegalStateException(\"service:\" + invoker.getUrl().getServiceKey() + \" has a onthrow callback config , but no such \" + (onthrowMethod == null ? \"method\" : \"instance\") + \" found. url:\" + invoker.getUrl());\r\n+        }\r\n+        ReflectUtils.makeAccessible(onthrowMethod);\r\n+        Class<?>[] rParaTypes = onthrowMethod.getParameterTypes();\r\n+        if (rParaTypes[0].isAssignableFrom(exception.getClass())) {\r\n+            try {\r\n+                Object[] args = invocation.getArguments();\r\n+                Object[] params;\r\n+\r\n+                if (rParaTypes.length > 1) {\r\n+                    if (rParaTypes.length == 2 && rParaTypes[1].isAssignableFrom(Object[].class)) {\r\n+                        params = new Object[2];\r\n+                        params[0] = exception;\r\n+                        params[1] = args;\r\n+                    } else {\r\n+                        params = new Object[args.length + 1];\r\n+                        params[0] = exception;\r\n+                        System.arraycopy(args, 0, params, 1, args.length);\r\n+                    }\r\n+                } else {\r\n+                    params = new Object[]{exception};\r\n+                }\r\n+                onthrowMethod.invoke(onthrowInst, params);\r\n+            } catch (Throwable e) {\r\n+                logger.error(invocation.getMethodName() + \".call back method invoke error . callback method :\" + onthrowMethod + \", url:\" + invoker.getUrl(), e);\r\n+            }\r\n+        } else {\r\n+            logger.error(invocation.getMethodName() + \".call back method invoke error . callback method :\" + onthrowMethod + \", url:\" + invoker.getUrl(), exception);\r\n+        }\r\n+    }\r\n+\r\n+    private AsyncMethodInfo getAsyncMethodInfo(Invoker<?> invoker, Invocation invocation) {\r\n+        AsyncMethodInfo asyncMethodInfo = (AsyncMethodInfo) invocation.get(ASYNC_METHOD_INFO);\r\n+        if (asyncMethodInfo != null) {\r\n+            return asyncMethodInfo;\r\n+        }\r\n+\r\n+        ConsumerModel consumerModel = ApplicationModel.getConsumerModel(invoker.getUrl().getServiceKey());\r\n+        if (consumerModel == null) {\r\n+            return null;\r\n+        }\r\n+\r\n+        String methodName = invocation.getMethodName();\r\n+        if (methodName.equals($INVOKE)) {\r\n+            methodName = (String) invocation.getArguments()[0];\r\n+        }\r\n+\r\n+        return consumerModel.getAsyncInfo(methodName);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/filter/TraceFilter.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/filter/TraceFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,127 +1,127 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo.filter;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.ConcurrentHashSet;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.Filter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import java.util.ArrayList;\n-import java.util.Set;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-/**\n- * TraceFilter\n- */\n-@Activate(group = CommonConstants.PROVIDER)\n-public class TraceFilter implements Filter {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(TraceFilter.class);\n-\n-    private static final String TRACE_MAX = \"trace.max\";\n-\n-    private static final String TRACE_COUNT = \"trace.count\";\n-\n-    private static final ConcurrentMap<String, Set<Channel>> TRACERS = new ConcurrentHashMap<>();\n-\n-    public static void addTracer(Class<?> type, String method, Channel channel, int max) {\n-        channel.setAttribute(TRACE_MAX, max);\n-        channel.setAttribute(TRACE_COUNT, new AtomicInteger());\n-        String key = method != null && method.length() > 0 ? type.getName() + \".\" + method : type.getName();\n-        Set<Channel> channels = TRACERS.computeIfAbsent(key, k -> new ConcurrentHashSet<>());\n-        channels.add(channel);\n-    }\n-\n-    public static void removeTracer(Class<?> type, String method, Channel channel) {\n-        channel.removeAttribute(TRACE_MAX);\n-        channel.removeAttribute(TRACE_COUNT);\n-        String key = method != null && method.length() > 0 ? type.getName() + \".\" + method : type.getName();\n-        Set<Channel> channels = TRACERS.get(key);\n-        if (channels != null) {\n-            channels.remove(channel);\n-        }\n-    }\n-\n-    @Override\n-    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\n-        long start = System.currentTimeMillis();\n-        Result result = invoker.invoke(invocation);\n-        long end = System.currentTimeMillis();\n-        if (TRACERS.size() > 0) {\n-            String key = invoker.getInterface().getName() + \".\" + invocation.getMethodName();\n-            Set<Channel> channels = TRACERS.get(key);\n-            if (channels == null || channels.isEmpty()) {\n-                key = invoker.getInterface().getName();\n-                channels = TRACERS.get(key);\n-            }\n-            if (CollectionUtils.isNotEmpty(channels)) {\n-                for (Channel channel : new ArrayList<>(channels)) {\n-                    if (channel.isConnected()) {\n-                        try {\n-                            int max = 1;\n-                            Integer m = (Integer) channel.getAttribute(TRACE_MAX);\n-                            if (m != null) {\n-                                max = m;\n-                            }\n-                            int count = 0;\n-                            AtomicInteger c = (AtomicInteger) channel.getAttribute(TRACE_COUNT);\n-                            if (c == null) {\n-                                c = new AtomicInteger();\n-                                channel.setAttribute(TRACE_COUNT, c);\n-                            }\n-                            count = c.getAndIncrement();\n-                            if (count < max) {\n-                                String prompt = channel.getUrl().getParameter(Constants.PROMPT_KEY, Constants.DEFAULT_PROMPT);\n-                                channel.send(\"\\r\\n\" + RpcContext.getContext().getRemoteAddress() + \" -> \"\n-                                        + invoker.getInterface().getName()\n-                                        + \".\" + invocation.getMethodName()\n-                                        + \"(\" + JSON.toJSONString(invocation.getArguments()) + \")\" + \" -> \" + JSON.toJSONString(result.getValue())\n-                                        + \"\\r\\nelapsed: \" + (end - start) + \" ms.\"\n-                                        + \"\\r\\n\\r\\n\" + prompt);\n-                            }\n-                            if (count >= max - 1) {\n-                                channels.remove(channel);\n-                            }\n-                        } catch (Throwable e) {\n-                            channels.remove(channel);\n-                            logger.warn(e.getMessage(), e);\n-                        }\n-                    } else {\n-                        channels.remove(channel);\n-                    }\n-                }\n-            }\n-        }\n-        return result;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo.filter;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.ConcurrentHashSet;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.Filter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Set;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+/**\r\n+ * TraceFilter\r\n+ */\r\n+@Activate(group = CommonConstants.PROVIDER)\r\n+public class TraceFilter implements Filter {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(TraceFilter.class);\r\n+\r\n+    private static final String TRACE_MAX = \"trace.max\";\r\n+\r\n+    private static final String TRACE_COUNT = \"trace.count\";\r\n+\r\n+    private static final ConcurrentMap<String, Set<Channel>> TRACERS = new ConcurrentHashMap<>();\r\n+\r\n+    public static void addTracer(Class<?> type, String method, Channel channel, int max) {\r\n+        channel.setAttribute(TRACE_MAX, max);\r\n+        channel.setAttribute(TRACE_COUNT, new AtomicInteger());\r\n+        String key = method != null && method.length() > 0 ? type.getName() + \".\" + method : type.getName();\r\n+        Set<Channel> channels = TRACERS.computeIfAbsent(key, k -> new ConcurrentHashSet<>());\r\n+        channels.add(channel);\r\n+    }\r\n+\r\n+    public static void removeTracer(Class<?> type, String method, Channel channel) {\r\n+        channel.removeAttribute(TRACE_MAX);\r\n+        channel.removeAttribute(TRACE_COUNT);\r\n+        String key = method != null && method.length() > 0 ? type.getName() + \".\" + method : type.getName();\r\n+        Set<Channel> channels = TRACERS.get(key);\r\n+        if (channels != null) {\r\n+            channels.remove(channel);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invoker<?> invoker, Invocation invocation) throws RpcException {\r\n+        long start = System.currentTimeMillis();\r\n+        Result result = invoker.invoke(invocation);\r\n+        long end = System.currentTimeMillis();\r\n+        if (TRACERS.size() > 0) {\r\n+            String key = invoker.getInterface().getName() + \".\" + invocation.getMethodName();\r\n+            Set<Channel> channels = TRACERS.get(key);\r\n+            if (channels == null || channels.isEmpty()) {\r\n+                key = invoker.getInterface().getName();\r\n+                channels = TRACERS.get(key);\r\n+            }\r\n+            if (CollectionUtils.isNotEmpty(channels)) {\r\n+                for (Channel channel : new ArrayList<>(channels)) {\r\n+                    if (channel.isConnected()) {\r\n+                        try {\r\n+                            int max = 1;\r\n+                            Integer m = (Integer) channel.getAttribute(TRACE_MAX);\r\n+                            if (m != null) {\r\n+                                max = m;\r\n+                            }\r\n+                            int count = 0;\r\n+                            AtomicInteger c = (AtomicInteger) channel.getAttribute(TRACE_COUNT);\r\n+                            if (c == null) {\r\n+                                c = new AtomicInteger();\r\n+                                channel.setAttribute(TRACE_COUNT, c);\r\n+                            }\r\n+                            count = c.getAndIncrement();\r\n+                            if (count < max) {\r\n+                                String prompt = channel.getUrl().getParameter(Constants.PROMPT_KEY, Constants.DEFAULT_PROMPT);\r\n+                                channel.send(\"\\r\\n\" + RpcContext.getContext().getRemoteAddress() + \" -> \"\r\n+                                        + invoker.getInterface().getName()\r\n+                                        + \".\" + invocation.getMethodName()\r\n+                                        + \"(\" + JSON.toJSONString(invocation.getArguments()) + \")\" + \" -> \" + JSON.toJSONString(result.getValue())\r\n+                                        + \"\\r\\nelapsed: \" + (end - start) + \" ms.\"\r\n+                                        + \"\\r\\n\\r\\n\" + prompt);\r\n+                            }\r\n+                            if (count >= max - 1) {\r\n+                                channels.remove(channel);\r\n+                            }\r\n+                        } catch (Throwable e) {\r\n+                            channels.remove(channel);\r\n+                            logger.warn(e.getMessage(), e);\r\n+                        }\r\n+                    } else {\r\n+                        channels.remove(channel);\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+        return result;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/package-info.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/package-info.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,22 +1,22 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-/**\n- * {@link org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter} was in dubbo-rpc-dubbo module,\n- * considering some users will use this class directly, keep the package not changed.\n- */\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+/**\r\n+ * {@link org.apache.dubbo.rpc.protocol.dubbo.FutureAdapter} was in dubbo-rpc-dubbo module,\r\n+ * considering some users will use this class directly, keep the package not changed.\r\n+ */\r\n package org.apache.dubbo.rpc.protocol.dubbo;\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/status/ServerStatusChecker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo.status;\n-\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.status.Status;\n-import org.apache.dubbo.common.status.StatusChecker;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\n-\n-import java.util.List;\n-\n-/**\n- * ServerStatusChecker\n- */\n-@Activate\n-public class ServerStatusChecker implements StatusChecker {\n-\n-    @Override\n-    public Status check() {\n-        List<ProtocolServer> servers = DubboProtocol.getDubboProtocol().getServers();\n-        if (servers == null || servers.isEmpty()) {\n-            return new Status(Status.Level.UNKNOWN);\n-        }\n-        Status.Level level = Status.Level.OK;\n-        StringBuilder buf = new StringBuilder();\n-        for (ProtocolServer protocolServer : servers) {\n-            RemotingServer server = protocolServer.getRemotingServer();\n-            if (!server.isBound()) {\n-                level = Status.Level.ERROR;\n-                buf.setLength(0);\n-                buf.append(server.getLocalAddress());\n-                break;\n-            }\n-            if (buf.length() > 0) {\n-                buf.append(\",\");\n-            }\n-            buf.append(server.getLocalAddress());\n-            buf.append(\"(clients:\");\n-            buf.append(server.getChannels().size());\n-            buf.append(\")\");\n-        }\n-        return new Status(level, buf.toString());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo.status;\r\n+\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.status.Status;\r\n+import org.apache.dubbo.common.status.StatusChecker;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboProtocol;\r\n+\r\n+import java.util.List;\r\n+\r\n+/**\r\n+ * ServerStatusChecker\r\n+ */\r\n+@Activate\r\n+public class ServerStatusChecker implements StatusChecker {\r\n+\r\n+    @Override\r\n+    public Status check() {\r\n+        List<ProtocolServer> servers = DubboProtocol.getDubboProtocol().getServers();\r\n+        if (servers == null || servers.isEmpty()) {\r\n+            return new Status(Status.Level.UNKNOWN);\r\n+        }\r\n+        Status.Level level = Status.Level.OK;\r\n+        StringBuilder buf = new StringBuilder();\r\n+        for (ProtocolServer protocolServer : servers) {\r\n+            RemotingServer server = protocolServer.getRemotingServer();\r\n+            if (!server.isBound()) {\r\n+                level = Status.Level.ERROR;\r\n+                buf.setLength(0);\r\n+                buf.append(server.getLocalAddress());\r\n+                break;\r\n+            }\r\n+            if (buf.length() > 0) {\r\n+                buf.append(\",\");\r\n+            }\r\n+            buf.append(server.getLocalAddress());\r\n+            buf.append(\"(clients:\");\r\n+            buf.append(server.getChannels().size());\r\n+            buf.append(\")\");\r\n+        }\r\n+        return new Status(level, buf.toString());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java", "source2": "org/apache/dubbo/rpc/protocol/dubbo/status/ThreadPoolStatusChecker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,67 +1,67 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.dubbo.status;\n-\n-import org.apache.dubbo.common.constants.CommonConstants;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.status.Status;\n-import org.apache.dubbo.common.status.StatusChecker;\n-import org.apache.dubbo.common.store.DataStore;\n-\n-import java.util.Map;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.ThreadPoolExecutor;\n-\n-/**\n- * ThreadPoolStatusChecker\n- */\n-@Activate\n-public class ThreadPoolStatusChecker implements StatusChecker {\n-\n-    @Override\n-    public Status check() {\n-        DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();\n-        Map<String, Object> executors = dataStore.get(CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY);\n-\n-        StringBuilder msg = new StringBuilder();\n-        Status.Level level = Status.Level.OK;\n-        for (Map.Entry<String, Object> entry : executors.entrySet()) {\n-            String port = entry.getKey();\n-            ExecutorService executor = (ExecutorService) entry.getValue();\n-\n-            if (executor instanceof ThreadPoolExecutor) {\n-                ThreadPoolExecutor tp = (ThreadPoolExecutor) executor;\n-                boolean ok = tp.getActiveCount() < tp.getMaximumPoolSize() - 1;\n-                Status.Level lvl = Status.Level.OK;\n-                if (!ok) {\n-                    level = Status.Level.WARN;\n-                    lvl = Status.Level.WARN;\n-                }\n-\n-                if (msg.length() > 0) {\n-                    msg.append(\";\");\n-                }\n-                msg.append(\"Pool status:\").append(lvl).append(\", max:\").append(tp.getMaximumPoolSize()).append(\", core:\")\n-                        .append(tp.getCorePoolSize()).append(\", largest:\").append(tp.getLargestPoolSize()).append(\", active:\")\n-                        .append(tp.getActiveCount()).append(\", task:\").append(tp.getTaskCount()).append(\", service port: \").append(port);\n-            }\n-        }\n-        return msg.length() == 0 ? new Status(Status.Level.UNKNOWN) : new Status(level, msg.toString());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.dubbo.status;\r\n+\r\n+import org.apache.dubbo.common.constants.CommonConstants;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.status.Status;\r\n+import org.apache.dubbo.common.status.StatusChecker;\r\n+import org.apache.dubbo.common.store.DataStore;\r\n+\r\n+import java.util.Map;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.ThreadPoolExecutor;\r\n+\r\n+/**\r\n+ * ThreadPoolStatusChecker\r\n+ */\r\n+@Activate\r\n+public class ThreadPoolStatusChecker implements StatusChecker {\r\n+\r\n+    @Override\r\n+    public Status check() {\r\n+        DataStore dataStore = ExtensionLoader.getExtensionLoader(DataStore.class).getDefaultExtension();\r\n+        Map<String, Object> executors = dataStore.get(CommonConstants.EXECUTOR_SERVICE_COMPONENT_KEY);\r\n+\r\n+        StringBuilder msg = new StringBuilder();\r\n+        Status.Level level = Status.Level.OK;\r\n+        for (Map.Entry<String, Object> entry : executors.entrySet()) {\r\n+            String port = entry.getKey();\r\n+            ExecutorService executor = (ExecutorService) entry.getValue();\r\n+\r\n+            if (executor instanceof ThreadPoolExecutor) {\r\n+                ThreadPoolExecutor tp = (ThreadPoolExecutor) executor;\r\n+                boolean ok = tp.getActiveCount() < tp.getMaximumPoolSize() - 1;\r\n+                Status.Level lvl = Status.Level.OK;\r\n+                if (!ok) {\r\n+                    level = Status.Level.WARN;\r\n+                    lvl = Status.Level.WARN;\r\n+                }\r\n+\r\n+                if (msg.length() > 0) {\r\n+                    msg.append(\";\");\r\n+                }\r\n+                msg.append(\"Pool status:\").append(lvl).append(\", max:\").append(tp.getMaximumPoolSize()).append(\", core:\")\r\n+                        .append(tp.getCorePoolSize()).append(\", largest:\").append(tp.getLargestPoolSize()).append(\", active:\")\r\n+                        .append(tp.getActiveCount()).append(\", task:\").append(tp.getTaskCount()).append(\", service port: \").append(port);\r\n+            }\r\n+        }\r\n+        return msg.length() == 0 ? new Status(Status.Level.UNKNOWN) : new Status(level, msg.toString());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/DubboHandlerRegistry.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/DubboHandlerRegistry.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,73 +1,73 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-import io.grpc.BindableService;\n-import io.grpc.HandlerRegistry;\n-import io.grpc.ServerMethodDefinition;\n-import io.grpc.ServerServiceDefinition;\n-\n-import javax.annotation.Nullable;\n-import java.util.ArrayList;\n-import java.util.Collections;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-/**\n- *\n- */\n-public class DubboHandlerRegistry extends HandlerRegistry {\n-\n-    private final Map<String, ServerServiceDefinition> services = new ConcurrentHashMap<>();\n-    private final Map<String, ServerMethodDefinition<?, ?>> methods = new ConcurrentHashMap<>();\n-\n-    public DubboHandlerRegistry() {\n-    }\n-\n-    /**\n-     * Returns the service definitions in this registry.\n-     */\n-    @Override\n-    public List<ServerServiceDefinition> getServices() {\n-        return Collections.unmodifiableList(new ArrayList<>(services.values()));\n-    }\n-\n-    @Nullable\n-    @Override\n-    public ServerMethodDefinition<?, ?> lookupMethod(String methodName, @Nullable String authority) {\n-        // TODO (carl-mastrangelo): honor authority header.\n-        return methods.get(methodName);\n-    }\n-\n-    void addService(BindableService bindableService, String key) {\n-        ServerServiceDefinition service = bindableService.bindService();\n-        services.put(key, service);\n-        for (ServerMethodDefinition<?, ?> method : service.getMethods()) {\n-            methods.put(method.getMethodDescriptor().getFullMethodName(), method);\n-        }\n-    }\n-\n-    void removeService(String serviceKey) {\n-        ServerServiceDefinition service = services.remove(serviceKey);\n-        if (null != service) {\n-            for (ServerMethodDefinition<?, ?> method : service.getMethods()) {\n-                methods.remove(method.getMethodDescriptor().getFullMethodName(), method);\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+import io.grpc.BindableService;\r\n+import io.grpc.HandlerRegistry;\r\n+import io.grpc.ServerMethodDefinition;\r\n+import io.grpc.ServerServiceDefinition;\r\n+\r\n+import javax.annotation.Nullable;\r\n+import java.util.ArrayList;\r\n+import java.util.Collections;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class DubboHandlerRegistry extends HandlerRegistry {\r\n+\r\n+    private final Map<String, ServerServiceDefinition> services = new ConcurrentHashMap<>();\r\n+    private final Map<String, ServerMethodDefinition<?, ?>> methods = new ConcurrentHashMap<>();\r\n+\r\n+    public DubboHandlerRegistry() {\r\n+    }\r\n+\r\n+    /**\r\n+     * Returns the service definitions in this registry.\r\n+     */\r\n+    @Override\r\n+    public List<ServerServiceDefinition> getServices() {\r\n+        return Collections.unmodifiableList(new ArrayList<>(services.values()));\r\n+    }\r\n+\r\n+    @Nullable\r\n+    @Override\r\n+    public ServerMethodDefinition<?, ?> lookupMethod(String methodName, @Nullable String authority) {\r\n+        // TODO (carl-mastrangelo): honor authority header.\r\n+        return methods.get(methodName);\r\n+    }\r\n+\r\n+    void addService(BindableService bindableService, String key) {\r\n+        ServerServiceDefinition service = bindableService.bindService();\r\n+        services.put(key, service);\r\n+        for (ServerMethodDefinition<?, ?> method : service.getMethods()) {\r\n+            methods.put(method.getMethodDescriptor().getFullMethodName(), method);\r\n+        }\r\n+    }\r\n+\r\n+    void removeService(String serviceKey) {\r\n+        ServerServiceDefinition service = services.remove(serviceKey);\r\n+        if (null != service) {\r\n+            for (ServerMethodDefinition<?, ?> method : service.getMethods()) {\r\n+                methods.remove(method.getMethodDescriptor().getFullMethodName(), method);\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/GrpcConfig.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/GrpcConfig.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,21 +1,21 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-public class GrpcConfig {\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+public class GrpcConfig {\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/GrpcConstants.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/GrpcConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-\n-public class GrpcConstants {\n-\n-    public static final String DIERCTOR_KEY = \"grpc.director\";\n-    public static final String HANDSHAKE_TIMEOUT = \"grpc.handshakeTimeout\";\n-    public static final String MAX_INBOUND_MESSAGE_SIZE = \"grpc.maxInboundMessageSize\";\n-    public static final String MAX_INBOUND_METADATA_SIZE = \"grpc.maxOutboundMessageSize\";\n-    public static final String FLOWCONTROL_WINDOW = \"grpc.flowControlWindow\";\n-    public static final String MAX_CONCURRENT_CALLS_PER_CONNECTION = \"grpc.maxConcurrentCallsPerConnection\";\n-\n-    public static final String WORKER_THREAD_NUM = \"grpc.io.num\";\n-    public static final String BOSS_THREAD_NUM = \"grpc.boss.num\";\n-    public static final String CHANNEL_TYPE = \"grpc.channel.type\";\n-\n-    public static final String SERVER_INTERCEPTORS = \"grpc.serverInterceptors\";\n-    public static final String CLIENT_INTERCEPTORS = \"grpc.clientInterceptors\";\n-    public static final String TRANSPORT_FILTERS = \"grpc.transportFilters\";\n-\n-    public static final String EXECUTOR = \"grpc.executor\";\n-\n-    public static final String CONFIGURATOR = \"grpc.configurator\";\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+\r\n+public class GrpcConstants {\r\n+\r\n+    public static final String DIERCTOR_KEY = \"grpc.director\";\r\n+    public static final String HANDSHAKE_TIMEOUT = \"grpc.handshakeTimeout\";\r\n+    public static final String MAX_INBOUND_MESSAGE_SIZE = \"grpc.maxInboundMessageSize\";\r\n+    public static final String MAX_INBOUND_METADATA_SIZE = \"grpc.maxOutboundMessageSize\";\r\n+    public static final String FLOWCONTROL_WINDOW = \"grpc.flowControlWindow\";\r\n+    public static final String MAX_CONCURRENT_CALLS_PER_CONNECTION = \"grpc.maxConcurrentCallsPerConnection\";\r\n+\r\n+    public static final String WORKER_THREAD_NUM = \"grpc.io.num\";\r\n+    public static final String BOSS_THREAD_NUM = \"grpc.boss.num\";\r\n+    public static final String CHANNEL_TYPE = \"grpc.channel.type\";\r\n+\r\n+    public static final String SERVER_INTERCEPTORS = \"grpc.serverInterceptors\";\r\n+    public static final String CLIENT_INTERCEPTORS = \"grpc.clientInterceptors\";\r\n+    public static final String TRANSPORT_FILTERS = \"grpc.transportFilters\";\r\n+\r\n+    public static final String EXECUTOR = \"grpc.executor\";\r\n+\r\n+    public static final String CONFIGURATOR = \"grpc.configurator\";\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/GrpcInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/GrpcInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,118 +1,118 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractInvoker;\n-\n-import io.grpc.Status;\n-import io.grpc.StatusException;\n-\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-public class GrpcInvoker<T> extends AbstractInvoker<T> {\n-    private final ReentrantLock destroyLock = new ReentrantLock();\n-\n-    private final Invoker<T> target;\n-    private ReferenceCountManagedChannel channel;\n-\n-//    private static List<Exception> grpcExceptions = new ArrayList<>();\n-//    static {\n-//        grpcExceptions.add();\n-//    }\n-\n-    public GrpcInvoker(Class<T> type, URL url, Invoker<T> target, ReferenceCountManagedChannel channel) {\n-        super(type, url);\n-        this.target = target;\n-        this.channel = channel;\n-    }\n-\n-    @Override\n-    protected Result doInvoke(Invocation invocation) throws Throwable {\n-        try {\n-            Result result = target.invoke(invocation);\n-            // FIXME result is an AsyncRpcResult instance.\n-            Throwable e = result.getException();\n-            if (e != null) {\n-                throw getRpcException(getInterface(), getUrl(), invocation, e);\n-            }\n-            return result;\n-        } catch (RpcException e) {\n-            if (e.getCode() == RpcException.UNKNOWN_EXCEPTION) {\n-                e.setCode(getErrorCode(e.getCause()));\n-            }\n-            throw e;\n-        } catch (Throwable e) {\n-            throw getRpcException(getInterface(), getUrl(), invocation, e);\n-        }\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return super.isAvailable() && !channel.isShutdown() && !channel.isTerminated();\n-    }\n-\n-    @Override\n-    public boolean isDestroyed() {\n-        return super.isDestroyed() || channel.isShutdown() || channel.isTerminated();\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        if (!super.isDestroyed()) {\n-            // double check to avoid dup close\n-            destroyLock.lock();\n-            try {\n-                if (super.isDestroyed()) {\n-                    return;\n-                }\n-                super.destroy();\n-                channel.shutdown();\n-            } finally {\n-                destroyLock.unlock();\n-            }\n-        }\n-    }\n-\n-    private RpcException getRpcException(Class<?> type, URL url, Invocation invocation, Throwable e) {\n-        RpcException re = new RpcException(\"Failed to invoke remote service: \" + type + \", method: \"\n-                + invocation.getMethodName() + \", cause: \" + e.getMessage(), e);\n-        re.setCode(getErrorCode(e));\n-        return re;\n-    }\n-\n-    /**\n-     * FIXME, convert gRPC exceptions to equivalent Dubbo exceptions.\n-     *\n-     * @param e\n-     * @return\n-     */\n-    private int getErrorCode(Throwable e) {\n-        if (e instanceof StatusException) {\n-            StatusException statusException = (StatusException) e;\n-            Status status = statusException.getStatus();\n-            if (status.getCode() == Status.Code.DEADLINE_EXCEEDED) {\n-                return RpcException.TIMEOUT_EXCEPTION;\n-            }\n-        }\n-        return RpcException.UNKNOWN_EXCEPTION;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractInvoker;\r\n+\r\n+import io.grpc.Status;\r\n+import io.grpc.StatusException;\r\n+\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+public class GrpcInvoker<T> extends AbstractInvoker<T> {\r\n+    private final ReentrantLock destroyLock = new ReentrantLock();\r\n+\r\n+    private final Invoker<T> target;\r\n+    private ReferenceCountManagedChannel channel;\r\n+\r\n+//    private static List<Exception> grpcExceptions = new ArrayList<>();\r\n+//    static {\r\n+//        grpcExceptions.add();\r\n+//    }\r\n+\r\n+    public GrpcInvoker(Class<T> type, URL url, Invoker<T> target, ReferenceCountManagedChannel channel) {\r\n+        super(type, url);\r\n+        this.target = target;\r\n+        this.channel = channel;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(Invocation invocation) throws Throwable {\r\n+        try {\r\n+            Result result = target.invoke(invocation);\r\n+            // FIXME result is an AsyncRpcResult instance.\r\n+            Throwable e = result.getException();\r\n+            if (e != null) {\r\n+                throw getRpcException(getInterface(), getUrl(), invocation, e);\r\n+            }\r\n+            return result;\r\n+        } catch (RpcException e) {\r\n+            if (e.getCode() == RpcException.UNKNOWN_EXCEPTION) {\r\n+                e.setCode(getErrorCode(e.getCause()));\r\n+            }\r\n+            throw e;\r\n+        } catch (Throwable e) {\r\n+            throw getRpcException(getInterface(), getUrl(), invocation, e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return super.isAvailable() && !channel.isShutdown() && !channel.isTerminated();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isDestroyed() {\r\n+        return super.isDestroyed() || channel.isShutdown() || channel.isTerminated();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        if (!super.isDestroyed()) {\r\n+            // double check to avoid dup close\r\n+            destroyLock.lock();\r\n+            try {\r\n+                if (super.isDestroyed()) {\r\n+                    return;\r\n+                }\r\n+                super.destroy();\r\n+                channel.shutdown();\r\n+            } finally {\r\n+                destroyLock.unlock();\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    private RpcException getRpcException(Class<?> type, URL url, Invocation invocation, Throwable e) {\r\n+        RpcException re = new RpcException(\"Failed to invoke remote service: \" + type + \", method: \"\r\n+                + invocation.getMethodName() + \", cause: \" + e.getMessage(), e);\r\n+        re.setCode(getErrorCode(e));\r\n+        return re;\r\n+    }\r\n+\r\n+    /**\r\n+     * FIXME, convert gRPC exceptions to equivalent Dubbo exceptions.\r\n+     *\r\n+     * @param e\r\n+     * @return\r\n+     */\r\n+    private int getErrorCode(Throwable e) {\r\n+        if (e instanceof StatusException) {\r\n+            StatusException statusException = (StatusException) e;\r\n+            Status status = statusException.getStatus();\r\n+            if (status.getCode() == Status.Code.DEADLINE_EXCEEDED) {\r\n+                return RpcException.TIMEOUT_EXCEPTION;\r\n+            }\r\n+        }\r\n+        return RpcException.UNKNOWN_EXCEPTION;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/GrpcOptionsUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,225 +1,225 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.threadpool.ThreadPool;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.config.SslConfig;\n-import org.apache.dubbo.config.context.ConfigManager;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.protocol.grpc.interceptors.ClientInterceptor;\n-import org.apache.dubbo.rpc.protocol.grpc.interceptors.GrpcConfigurator;\n-import org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerInterceptor;\n-import org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerTransportFilter;\n-\n-import io.grpc.CallOptions;\n-import io.grpc.ManagedChannel;\n-import io.grpc.ServerBuilder;\n-import io.grpc.netty.GrpcSslContexts;\n-import io.grpc.netty.NettyChannelBuilder;\n-import io.grpc.netty.NettyServerBuilder;\n-import io.netty.handler.ssl.ClientAuth;\n-import io.netty.handler.ssl.SslContext;\n-import io.netty.handler.ssl.SslContextBuilder;\n-\n-import javax.net.ssl.SSLException;\n-import java.io.InputStream;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.Optional;\n-import java.util.Set;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\n-import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\n-import static org.apache.dubbo.remoting.Constants.DISPATCHER_KEY;\n-import static org.apache.dubbo.rpc.Constants.EXECUTES_KEY;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.CLIENT_INTERCEPTORS;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.EXECUTOR;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_CONCURRENT_CALLS_PER_CONNECTION;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_INBOUND_MESSAGE_SIZE;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_INBOUND_METADATA_SIZE;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.SERVER_INTERCEPTORS;\n-import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.TRANSPORT_FILTERS;\n-\n-/**\n- * Support gRPC configs in a Dubbo specific way.\n- */\n-public class GrpcOptionsUtils {\n-\n-    static ServerBuilder buildServerBuilder(URL url, NettyServerBuilder builder) {\n-\n-        int maxInboundMessageSize = url.getParameter(MAX_INBOUND_MESSAGE_SIZE, 0);\n-        if (maxInboundMessageSize > 0) {\n-            builder.maxInboundMessageSize(maxInboundMessageSize);\n-        }\n-\n-        int maxInboundMetadataSize = url.getParameter(MAX_INBOUND_METADATA_SIZE, 0);\n-        if (maxInboundMetadataSize > 0) {\n-            builder.maxInboundMetadataSize(maxInboundMetadataSize);\n-        }\n-\n-        if (url.getParameter(SSL_ENABLED_KEY, false)) {\n-            builder.sslContext(buildServerSslContext(url));\n-        }\n-\n-        int flowControlWindow = url.getParameter(MAX_INBOUND_MESSAGE_SIZE, 0);\n-        if (flowControlWindow > 0) {\n-            builder.flowControlWindow(flowControlWindow);\n-        }\n-\n-        int maxCalls = url.getParameter(MAX_CONCURRENT_CALLS_PER_CONNECTION, url.getParameter(EXECUTES_KEY, 0));\n-        if (maxCalls > 0) {\n-            builder.maxConcurrentCallsPerConnection(maxCalls);\n-        }\n-\n-        // server interceptors\n-        List<ServerInterceptor> serverInterceptors = ExtensionLoader.getExtensionLoader(ServerInterceptor.class)\n-                .getActivateExtension(url, SERVER_INTERCEPTORS, PROVIDER_SIDE);\n-        for (ServerInterceptor serverInterceptor : serverInterceptors) {\n-            builder.intercept(serverInterceptor);\n-        }\n-\n-        // server filters\n-        List<ServerTransportFilter> transportFilters = ExtensionLoader.getExtensionLoader(ServerTransportFilter.class)\n-                .getActivateExtension(url, TRANSPORT_FILTERS, PROVIDER_SIDE);\n-        for (ServerTransportFilter transportFilter : transportFilters) {\n-            builder.addTransportFilter(transportFilter.grpcTransportFilter());\n-        }\n-\n-        String thread = url.getParameter(EXECUTOR, url.getParameter(DISPATCHER_KEY));\n-        if (\"direct\".equals(thread)) {\n-            builder.directExecutor();\n-        } else {\n-            builder.executor(ExtensionLoader.getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url));\n-        }\n-\n-        // Give users the chance to customize ServerBuilder\n-        return getConfigurator()\n-                .map(configurator -> configurator.configureServerBuilder(builder, url))\n-                .orElse(builder);\n-    }\n-\n-    static ManagedChannel buildManagedChannel(URL url) {\n-\n-        NettyChannelBuilder builder = NettyChannelBuilder.forAddress(url.getHost(), url.getPort());\n-        if (url.getParameter(SSL_ENABLED_KEY, false)) {\n-            builder.sslContext(buildClientSslContext(url));\n-        } else {\n-            builder.usePlaintext();\n-        }\n-\n-        builder.disableRetry();\n-//        builder.directExecutor();\n-\n-        // client interceptors\n-        List<io.grpc.ClientInterceptor> interceptors = new ArrayList<>(\n-                ExtensionLoader.getExtensionLoader(ClientInterceptor.class)\n-                        .getActivateExtension(url, CLIENT_INTERCEPTORS, CONSUMER_SIDE)\n-        );\n-\n-        builder.intercept(interceptors);\n-\n-        return getConfigurator()\n-                .map(configurator -> configurator.configureChannelBuilder(builder, url))\n-                .orElse(builder)\n-                .build();\n-    }\n-\n-    static CallOptions buildCallOptions(URL url) {\n-        // gRPC Deadline starts counting when it's created, so we need to create and add a new Deadline for each RPC call.\n-//        CallOptions callOptions = CallOptions.DEFAULT\n-//                .withDeadline(Deadline.after(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), TimeUnit.MILLISECONDS));\n-        CallOptions callOptions = CallOptions.DEFAULT;\n-        return getConfigurator()\n-                .map(configurator -> configurator.configureCallOptions(callOptions, url))\n-                .orElse(callOptions);\n-    }\n-\n-    private static SslContext buildServerSslContext(URL url) {\n-        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\n-        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\n-\n-        SslContextBuilder sslClientContextBuilder = null;\n-        try {\n-            String password = sslConfig.getServerKeyPassword();\n-            if (password != null) {\n-                sslClientContextBuilder = GrpcSslContexts.forServer(sslConfig.getServerKeyCertChainPathStream(),\n-                        sslConfig.getServerPrivateKeyPathStream(), password);\n-            } else {\n-                sslClientContextBuilder = GrpcSslContexts.forServer(sslConfig.getServerKeyCertChainPathStream(),\n-                        sslConfig.getServerPrivateKeyPathStream());\n-            }\n-\n-            InputStream trustCertCollectionFilePath = sslConfig.getServerTrustCertCollectionPathStream();\n-            if (trustCertCollectionFilePath != null) {\n-                sslClientContextBuilder.trustManager(trustCertCollectionFilePath);\n-                sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE);\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Could not find certificate file or the certificate is invalid.\", e);\n-        }\n-        try {\n-            return sslClientContextBuilder.build();\n-        } catch (SSLException e) {\n-            throw new IllegalStateException(\"Build SslSession failed.\", e);\n-        }\n-    }\n-\n-    private static SslContext buildClientSslContext(URL url) {\n-        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\n-        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\n-\n-\n-        SslContextBuilder builder = GrpcSslContexts.forClient();\n-        try {\n-            InputStream trustCertCollectionFilePath = sslConfig.getClientTrustCertCollectionPathStream();\n-            if (trustCertCollectionFilePath != null) {\n-                builder.trustManager(trustCertCollectionFilePath);\n-            }\n-            InputStream clientCertChainFilePath = sslConfig.getClientKeyCertChainPathStream();\n-            InputStream clientPrivateKeyFilePath = sslConfig.getClientPrivateKeyPathStream();\n-            if (clientCertChainFilePath != null && clientPrivateKeyFilePath != null) {\n-                String password = sslConfig.getClientKeyPassword();\n-                if (password != null) {\n-                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath, password);\n-                } else {\n-                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath);\n-                }\n-            }\n-        } catch (Exception e) {\n-            throw new IllegalArgumentException(\"Could not find certificate file or find invalid certificate.\", e);\n-        }\n-        try {\n-            return builder.build();\n-        } catch (SSLException e) {\n-            throw new IllegalStateException(\"Build SslSession failed.\", e);\n-        }\n-    }\n-\n-    private static Optional<GrpcConfigurator> getConfigurator() {\n-        // Give users the chance to customize ServerBuilder\n-        Set<GrpcConfigurator> configurators = ExtensionLoader.getExtensionLoader(GrpcConfigurator.class)\n-                .getSupportedExtensionInstances();\n-        if (CollectionUtils.isNotEmpty(configurators)) {\n-            return Optional.of(configurators.iterator().next());\n-        }\n-        return Optional.empty();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.threadpool.ThreadPool;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.config.SslConfig;\r\n+import org.apache.dubbo.config.context.ConfigManager;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.protocol.grpc.interceptors.ClientInterceptor;\r\n+import org.apache.dubbo.rpc.protocol.grpc.interceptors.GrpcConfigurator;\r\n+import org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerInterceptor;\r\n+import org.apache.dubbo.rpc.protocol.grpc.interceptors.ServerTransportFilter;\r\n+\r\n+import io.grpc.CallOptions;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.ServerBuilder;\r\n+import io.grpc.netty.GrpcSslContexts;\r\n+import io.grpc.netty.NettyChannelBuilder;\r\n+import io.grpc.netty.NettyServerBuilder;\r\n+import io.netty.handler.ssl.ClientAuth;\r\n+import io.netty.handler.ssl.SslContext;\r\n+import io.netty.handler.ssl.SslContextBuilder;\r\n+\r\n+import javax.net.ssl.SSLException;\r\n+import java.io.InputStream;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.Optional;\r\n+import java.util.Set;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER_SIDE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SSL_ENABLED_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DISPATCHER_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.EXECUTES_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.CLIENT_INTERCEPTORS;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.EXECUTOR;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_CONCURRENT_CALLS_PER_CONNECTION;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_INBOUND_MESSAGE_SIZE;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.MAX_INBOUND_METADATA_SIZE;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.SERVER_INTERCEPTORS;\r\n+import static org.apache.dubbo.rpc.protocol.grpc.GrpcConstants.TRANSPORT_FILTERS;\r\n+\r\n+/**\r\n+ * Support gRPC configs in a Dubbo specific way.\r\n+ */\r\n+public class GrpcOptionsUtils {\r\n+\r\n+    static ServerBuilder buildServerBuilder(URL url, NettyServerBuilder builder) {\r\n+\r\n+        int maxInboundMessageSize = url.getParameter(MAX_INBOUND_MESSAGE_SIZE, 0);\r\n+        if (maxInboundMessageSize > 0) {\r\n+            builder.maxInboundMessageSize(maxInboundMessageSize);\r\n+        }\r\n+\r\n+        int maxInboundMetadataSize = url.getParameter(MAX_INBOUND_METADATA_SIZE, 0);\r\n+        if (maxInboundMetadataSize > 0) {\r\n+            builder.maxInboundMetadataSize(maxInboundMetadataSize);\r\n+        }\r\n+\r\n+        if (url.getParameter(SSL_ENABLED_KEY, false)) {\r\n+            builder.sslContext(buildServerSslContext(url));\r\n+        }\r\n+\r\n+        int flowControlWindow = url.getParameter(MAX_INBOUND_MESSAGE_SIZE, 0);\r\n+        if (flowControlWindow > 0) {\r\n+            builder.flowControlWindow(flowControlWindow);\r\n+        }\r\n+\r\n+        int maxCalls = url.getParameter(MAX_CONCURRENT_CALLS_PER_CONNECTION, url.getParameter(EXECUTES_KEY, 0));\r\n+        if (maxCalls > 0) {\r\n+            builder.maxConcurrentCallsPerConnection(maxCalls);\r\n+        }\r\n+\r\n+        // server interceptors\r\n+        List<ServerInterceptor> serverInterceptors = ExtensionLoader.getExtensionLoader(ServerInterceptor.class)\r\n+                .getActivateExtension(url, SERVER_INTERCEPTORS, PROVIDER_SIDE);\r\n+        for (ServerInterceptor serverInterceptor : serverInterceptors) {\r\n+            builder.intercept(serverInterceptor);\r\n+        }\r\n+\r\n+        // server filters\r\n+        List<ServerTransportFilter> transportFilters = ExtensionLoader.getExtensionLoader(ServerTransportFilter.class)\r\n+                .getActivateExtension(url, TRANSPORT_FILTERS, PROVIDER_SIDE);\r\n+        for (ServerTransportFilter transportFilter : transportFilters) {\r\n+            builder.addTransportFilter(transportFilter.grpcTransportFilter());\r\n+        }\r\n+\r\n+        String thread = url.getParameter(EXECUTOR, url.getParameter(DISPATCHER_KEY));\r\n+        if (\"direct\".equals(thread)) {\r\n+            builder.directExecutor();\r\n+        } else {\r\n+            builder.executor(ExtensionLoader.getExtensionLoader(ThreadPool.class).getAdaptiveExtension().getExecutor(url));\r\n+        }\r\n+\r\n+        // Give users the chance to customize ServerBuilder\r\n+        return getConfigurator()\r\n+                .map(configurator -> configurator.configureServerBuilder(builder, url))\r\n+                .orElse(builder);\r\n+    }\r\n+\r\n+    static ManagedChannel buildManagedChannel(URL url) {\r\n+\r\n+        NettyChannelBuilder builder = NettyChannelBuilder.forAddress(url.getHost(), url.getPort());\r\n+        if (url.getParameter(SSL_ENABLED_KEY, false)) {\r\n+            builder.sslContext(buildClientSslContext(url));\r\n+        } else {\r\n+            builder.usePlaintext();\r\n+        }\r\n+\r\n+        builder.disableRetry();\r\n+//        builder.directExecutor();\r\n+\r\n+        // client interceptors\r\n+        List<io.grpc.ClientInterceptor> interceptors = new ArrayList<>(\r\n+                ExtensionLoader.getExtensionLoader(ClientInterceptor.class)\r\n+                        .getActivateExtension(url, CLIENT_INTERCEPTORS, CONSUMER_SIDE)\r\n+        );\r\n+\r\n+        builder.intercept(interceptors);\r\n+\r\n+        return getConfigurator()\r\n+                .map(configurator -> configurator.configureChannelBuilder(builder, url))\r\n+                .orElse(builder)\r\n+                .build();\r\n+    }\r\n+\r\n+    static CallOptions buildCallOptions(URL url) {\r\n+        // gRPC Deadline starts counting when it's created, so we need to create and add a new Deadline for each RPC call.\r\n+//        CallOptions callOptions = CallOptions.DEFAULT\r\n+//                .withDeadline(Deadline.after(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT), TimeUnit.MILLISECONDS));\r\n+        CallOptions callOptions = CallOptions.DEFAULT;\r\n+        return getConfigurator()\r\n+                .map(configurator -> configurator.configureCallOptions(callOptions, url))\r\n+                .orElse(callOptions);\r\n+    }\r\n+\r\n+    private static SslContext buildServerSslContext(URL url) {\r\n+        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\r\n+        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\r\n+\r\n+        SslContextBuilder sslClientContextBuilder = null;\r\n+        try {\r\n+            String password = sslConfig.getServerKeyPassword();\r\n+            if (password != null) {\r\n+                sslClientContextBuilder = GrpcSslContexts.forServer(sslConfig.getServerKeyCertChainPathStream(),\r\n+                        sslConfig.getServerPrivateKeyPathStream(), password);\r\n+            } else {\r\n+                sslClientContextBuilder = GrpcSslContexts.forServer(sslConfig.getServerKeyCertChainPathStream(),\r\n+                        sslConfig.getServerPrivateKeyPathStream());\r\n+            }\r\n+\r\n+            InputStream trustCertCollectionFilePath = sslConfig.getServerTrustCertCollectionPathStream();\r\n+            if (trustCertCollectionFilePath != null) {\r\n+                sslClientContextBuilder.trustManager(trustCertCollectionFilePath);\r\n+                sslClientContextBuilder.clientAuth(ClientAuth.REQUIRE);\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Could not find certificate file or the certificate is invalid.\", e);\r\n+        }\r\n+        try {\r\n+            return sslClientContextBuilder.build();\r\n+        } catch (SSLException e) {\r\n+            throw new IllegalStateException(\"Build SslSession failed.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    private static SslContext buildClientSslContext(URL url) {\r\n+        ConfigManager globalConfigManager = ApplicationModel.getConfigManager();\r\n+        SslConfig sslConfig = globalConfigManager.getSsl().orElseThrow(() -> new IllegalStateException(\"Ssl enabled, but no ssl cert information provided!\"));\r\n+\r\n+\r\n+        SslContextBuilder builder = GrpcSslContexts.forClient();\r\n+        try {\r\n+            InputStream trustCertCollectionFilePath = sslConfig.getClientTrustCertCollectionPathStream();\r\n+            if (trustCertCollectionFilePath != null) {\r\n+                builder.trustManager(trustCertCollectionFilePath);\r\n+            }\r\n+            InputStream clientCertChainFilePath = sslConfig.getClientKeyCertChainPathStream();\r\n+            InputStream clientPrivateKeyFilePath = sslConfig.getClientPrivateKeyPathStream();\r\n+            if (clientCertChainFilePath != null && clientPrivateKeyFilePath != null) {\r\n+                String password = sslConfig.getClientKeyPassword();\r\n+                if (password != null) {\r\n+                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath, password);\r\n+                } else {\r\n+                    builder.keyManager(clientCertChainFilePath, clientPrivateKeyFilePath);\r\n+                }\r\n+            }\r\n+        } catch (Exception e) {\r\n+            throw new IllegalArgumentException(\"Could not find certificate file or find invalid certificate.\", e);\r\n+        }\r\n+        try {\r\n+            return builder.build();\r\n+        } catch (SSLException e) {\r\n+            throw new IllegalStateException(\"Build SslSession failed.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    private static Optional<GrpcConfigurator> getConfigurator() {\r\n+        // Give users the chance to customize ServerBuilder\r\n+        Set<GrpcConfigurator> configurators = ExtensionLoader.getExtensionLoader(GrpcConfigurator.class)\r\n+                .getSupportedExtensionInstances();\r\n+        if (CollectionUtils.isNotEmpty(configurators)) {\r\n+            return Optional.of(configurators.iterator().next());\r\n+        }\r\n+        return Optional.empty();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/GrpcProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,235 +1,235 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.config.ReferenceConfigBase;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ProviderModel;\n-import org.apache.dubbo.rpc.model.ServiceRepository;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import io.grpc.BindableService;\n-import io.grpc.CallOptions;\n-import io.grpc.Channel;\n-import io.grpc.ManagedChannel;\n-import io.grpc.Server;\n-import io.grpc.netty.NettyServerBuilder;\n-\n-import java.io.IOException;\n-import java.lang.reflect.InvocationTargetException;\n-import java.lang.reflect.Method;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- *\n- */\n-public class GrpcProtocol extends AbstractProxyProtocol {\n-\n-    public final static int DEFAULT_PORT = 50051;\n-\n-    /* <address, gRPC channels> */\n-    private final ConcurrentMap<String, ReferenceCountManagedChannel> channelMap = new ConcurrentHashMap<>();\n-    private final Object lock = new Object();\n-\n-    @Override\n-    protected <T> Runnable doExport(T proxiedImpl, Class<T> type, URL url) throws RpcException {\n-        String key = url.getAddress();\n-        ProtocolServer protocolServer = serverMap.computeIfAbsent(key, k -> {\n-            DubboHandlerRegistry registry = new DubboHandlerRegistry();\n-\n-            NettyServerBuilder builder =\n-                    NettyServerBuilder\n-                    .forPort(url.getPort())\n-                            .fallbackHandlerRegistry(registry);\n-\n-            Server originalServer = GrpcOptionsUtils.buildServerBuilder(url, builder).build();\n-            GrpcRemotingServer remotingServer = new GrpcRemotingServer(originalServer, registry);\n-            return new ProxyProtocolServer(remotingServer);\n-        });\n-\n-        GrpcRemotingServer grpcServer = (GrpcRemotingServer) protocolServer.getRemotingServer();\n-\n-        ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\n-        ProviderModel providerModel = serviceRepository.lookupExportedService(url.getServiceKey());\n-        if (providerModel == null) {\n-            throw new IllegalStateException(\"Service \" + url.getServiceKey() + \"should have already been stored in service repository, \" +\n-                    \"but failed to find it.\");\n-        }\n-        Object originalImpl = providerModel.getServiceInstance();\n-\n-        Class<?> implClass = originalImpl.getClass();\n-        try {\n-            Method method = implClass.getMethod(\"setProxiedImpl\", type);\n-            method.invoke(originalImpl, proxiedImpl);\n-        } catch (Exception e) {\n-            throw new IllegalStateException(\"Failed to set dubbo proxied service impl to stub, please make sure your stub \" +\n-                    \"was generated by the dubbo-protoc-compiler.\", e);\n-        }\n-        grpcServer.getRegistry().addService((BindableService) originalImpl, url.getServiceKey());\n-\n-        if (!grpcServer.isStarted()) {\n-            grpcServer.start();\n-        }\n-\n-        return () -> grpcServer.getRegistry().removeService(url.getServiceKey());\n-    }\n-\n-    @Override\n-    protected <T> Invoker<T> protocolBindingRefer(final Class<T> type, final URL url) throws RpcException {\n-        Class<?> enclosingClass = type.getEnclosingClass();\n-\n-        if (enclosingClass == null) {\n-            throw new IllegalArgumentException(type.getName() + \" must be declared inside protobuf generated classes, \" +\n-                    \"should be something like ServiceNameGrpc.IServiceName.\");\n-        }\n-\n-        final Method dubboStubMethod;\n-        try {\n-            dubboStubMethod = enclosingClass.getDeclaredMethod(\"getDubboStub\", Channel.class, CallOptions.class,\n-                    URL.class, ReferenceConfigBase.class);\n-        } catch (NoSuchMethodException e) {\n-            throw new IllegalArgumentException(\"Does not find getDubboStub in \" + enclosingClass.getName() + \", please use the customized protoc-gen-dubbo-java to update the generated classes.\");\n-        }\n-\n-        // Channel\n-        ReferenceCountManagedChannel channel = getSharedChannel(url);\n-\n-        // CallOptions\n-        try {\n-            @SuppressWarnings(\"unchecked\") final T stub = (T) dubboStubMethod.invoke(null,\n-                    channel,\n-                    GrpcOptionsUtils.buildCallOptions(url),\n-                    url,\n-                    ApplicationModel.getConsumerModel(url.getServiceKey()).getReferenceConfig()\n-            );\n-            final Invoker<T> target = proxyFactory.getInvoker(stub, type, url);\n-            GrpcInvoker<T> grpcInvoker = new GrpcInvoker<>(type, url, target, channel);\n-            invokers.add(grpcInvoker);\n-            return grpcInvoker;\n-        } catch (IllegalAccessException | InvocationTargetException e) {\n-            throw new IllegalStateException(\"Could not create stub through reflection.\", e);\n-        }\n-    }\n-\n-    /**\n-     * not used\n-     *\n-     * @param type\n-     * @param url\n-     * @param <T>\n-     * @return\n-     * @throws RpcException\n-     */\n-    @Override\n-    protected <T> T doRefer(Class<T> type, URL url) throws RpcException {\n-        throw new UnsupportedOperationException(\"not used\");\n-    }\n-\n-    /**\n-     * Get shared channel connection\n-     */\n-    private ReferenceCountManagedChannel getSharedChannel(URL url) {\n-        String key = url.getAddress();\n-        ReferenceCountManagedChannel channel = channelMap.get(key);\n-\n-        if (channel != null && !channel.isTerminated()) {\n-            channel.incrementAndGetCount();\n-            return channel;\n-        }\n-\n-        synchronized (lock) {\n-            channel = channelMap.get(key);\n-            // dubbo check\n-            if (channel != null && !channel.isTerminated()) {\n-                channel.incrementAndGetCount();\n-            } else {\n-                channel = new ReferenceCountManagedChannel(initChannel(url));\n-                channelMap.put(key, channel);\n-            }\n-        }\n-\n-        return channel;\n-    }\n-\n-    /**\n-     * Create new connection\n-     *\n-     * @param url\n-     */\n-    private ManagedChannel initChannel(URL url) {\n-        return GrpcOptionsUtils.buildManagedChannel(url);\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        serverMap.values().forEach(ProtocolServer::close);\n-        channelMap.values().forEach(ReferenceCountManagedChannel::shutdown);\n-        serverMap.clear();\n-        channelMap.clear();\n-        super.destroy();\n-    }\n-\n-    public class GrpcRemotingServer extends RemotingServerAdapter {\n-\n-        private Server originalServer;\n-        private DubboHandlerRegistry handlerRegistry;\n-        private volatile boolean started;\n-\n-        public GrpcRemotingServer(Server server, DubboHandlerRegistry handlerRegistry) {\n-            this.originalServer = server;\n-            this.handlerRegistry = handlerRegistry;\n-        }\n-\n-        public void start() throws RpcException {\n-            try {\n-                originalServer.start();\n-                started = true;\n-            } catch (IOException e) {\n-                throw new RpcException(\"Starting gRPC server failed. \", e);\n-            }\n-        }\n-\n-        public DubboHandlerRegistry getRegistry() {\n-            return handlerRegistry;\n-        }\n-\n-        @Override\n-        public Object getDelegateServer() {\n-            return originalServer;\n-        }\n-\n-        public boolean isStarted() {\n-            return started;\n-        }\n-\n-        @Override\n-        public void close() {\n-            originalServer.shutdown();\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.config.ReferenceConfigBase;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ProviderModel;\r\n+import org.apache.dubbo.rpc.model.ServiceRepository;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import io.grpc.BindableService;\r\n+import io.grpc.CallOptions;\r\n+import io.grpc.Channel;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.Server;\r\n+import io.grpc.netty.NettyServerBuilder;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.lang.reflect.Method;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public class GrpcProtocol extends AbstractProxyProtocol {\r\n+\r\n+    public final static int DEFAULT_PORT = 50051;\r\n+\r\n+    /* <address, gRPC channels> */\r\n+    private final ConcurrentMap<String, ReferenceCountManagedChannel> channelMap = new ConcurrentHashMap<>();\r\n+    private final Object lock = new Object();\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T proxiedImpl, Class<T> type, URL url) throws RpcException {\r\n+        String key = url.getAddress();\r\n+        ProtocolServer protocolServer = serverMap.computeIfAbsent(key, k -> {\r\n+            DubboHandlerRegistry registry = new DubboHandlerRegistry();\r\n+\r\n+            NettyServerBuilder builder =\r\n+                    NettyServerBuilder\r\n+                    .forPort(url.getPort())\r\n+                            .fallbackHandlerRegistry(registry);\r\n+\r\n+            Server originalServer = GrpcOptionsUtils.buildServerBuilder(url, builder).build();\r\n+            GrpcRemotingServer remotingServer = new GrpcRemotingServer(originalServer, registry);\r\n+            return new ProxyProtocolServer(remotingServer);\r\n+        });\r\n+\r\n+        GrpcRemotingServer grpcServer = (GrpcRemotingServer) protocolServer.getRemotingServer();\r\n+\r\n+        ServiceRepository serviceRepository = ApplicationModel.getServiceRepository();\r\n+        ProviderModel providerModel = serviceRepository.lookupExportedService(url.getServiceKey());\r\n+        if (providerModel == null) {\r\n+            throw new IllegalStateException(\"Service \" + url.getServiceKey() + \"should have already been stored in service repository, \" +\r\n+                    \"but failed to find it.\");\r\n+        }\r\n+        Object originalImpl = providerModel.getServiceInstance();\r\n+\r\n+        Class<?> implClass = originalImpl.getClass();\r\n+        try {\r\n+            Method method = implClass.getMethod(\"setProxiedImpl\", type);\r\n+            method.invoke(originalImpl, proxiedImpl);\r\n+        } catch (Exception e) {\r\n+            throw new IllegalStateException(\"Failed to set dubbo proxied service impl to stub, please make sure your stub \" +\r\n+                    \"was generated by the dubbo-protoc-compiler.\", e);\r\n+        }\r\n+        grpcServer.getRegistry().addService((BindableService) originalImpl, url.getServiceKey());\r\n+\r\n+        if (!grpcServer.isStarted()) {\r\n+            grpcServer.start();\r\n+        }\r\n+\r\n+        return () -> grpcServer.getRegistry().removeService(url.getServiceKey());\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Invoker<T> protocolBindingRefer(final Class<T> type, final URL url) throws RpcException {\r\n+        Class<?> enclosingClass = type.getEnclosingClass();\r\n+\r\n+        if (enclosingClass == null) {\r\n+            throw new IllegalArgumentException(type.getName() + \" must be declared inside protobuf generated classes, \" +\r\n+                    \"should be something like ServiceNameGrpc.IServiceName.\");\r\n+        }\r\n+\r\n+        final Method dubboStubMethod;\r\n+        try {\r\n+            dubboStubMethod = enclosingClass.getDeclaredMethod(\"getDubboStub\", Channel.class, CallOptions.class,\r\n+                    URL.class, ReferenceConfigBase.class);\r\n+        } catch (NoSuchMethodException e) {\r\n+            throw new IllegalArgumentException(\"Does not find getDubboStub in \" + enclosingClass.getName() + \", please use the customized protoc-gen-dubbo-java to update the generated classes.\");\r\n+        }\r\n+\r\n+        // Channel\r\n+        ReferenceCountManagedChannel channel = getSharedChannel(url);\r\n+\r\n+        // CallOptions\r\n+        try {\r\n+            @SuppressWarnings(\"unchecked\") final T stub = (T) dubboStubMethod.invoke(null,\r\n+                    channel,\r\n+                    GrpcOptionsUtils.buildCallOptions(url),\r\n+                    url,\r\n+                    ApplicationModel.getConsumerModel(url.getServiceKey()).getReferenceConfig()\r\n+            );\r\n+            final Invoker<T> target = proxyFactory.getInvoker(stub, type, url);\r\n+            GrpcInvoker<T> grpcInvoker = new GrpcInvoker<>(type, url, target, channel);\r\n+            invokers.add(grpcInvoker);\r\n+            return grpcInvoker;\r\n+        } catch (IllegalAccessException | InvocationTargetException e) {\r\n+            throw new IllegalStateException(\"Could not create stub through reflection.\", e);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * not used\r\n+     *\r\n+     * @param type\r\n+     * @param url\r\n+     * @param <T>\r\n+     * @return\r\n+     * @throws RpcException\r\n+     */\r\n+    @Override\r\n+    protected <T> T doRefer(Class<T> type, URL url) throws RpcException {\r\n+        throw new UnsupportedOperationException(\"not used\");\r\n+    }\r\n+\r\n+    /**\r\n+     * Get shared channel connection\r\n+     */\r\n+    private ReferenceCountManagedChannel getSharedChannel(URL url) {\r\n+        String key = url.getAddress();\r\n+        ReferenceCountManagedChannel channel = channelMap.get(key);\r\n+\r\n+        if (channel != null && !channel.isTerminated()) {\r\n+            channel.incrementAndGetCount();\r\n+            return channel;\r\n+        }\r\n+\r\n+        synchronized (lock) {\r\n+            channel = channelMap.get(key);\r\n+            // dubbo check\r\n+            if (channel != null && !channel.isTerminated()) {\r\n+                channel.incrementAndGetCount();\r\n+            } else {\r\n+                channel = new ReferenceCountManagedChannel(initChannel(url));\r\n+                channelMap.put(key, channel);\r\n+            }\r\n+        }\r\n+\r\n+        return channel;\r\n+    }\r\n+\r\n+    /**\r\n+     * Create new connection\r\n+     *\r\n+     * @param url\r\n+     */\r\n+    private ManagedChannel initChannel(URL url) {\r\n+        return GrpcOptionsUtils.buildManagedChannel(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        serverMap.values().forEach(ProtocolServer::close);\r\n+        channelMap.values().forEach(ReferenceCountManagedChannel::shutdown);\r\n+        serverMap.clear();\r\n+        channelMap.clear();\r\n+        super.destroy();\r\n+    }\r\n+\r\n+    public class GrpcRemotingServer extends RemotingServerAdapter {\r\n+\r\n+        private Server originalServer;\r\n+        private DubboHandlerRegistry handlerRegistry;\r\n+        private volatile boolean started;\r\n+\r\n+        public GrpcRemotingServer(Server server, DubboHandlerRegistry handlerRegistry) {\r\n+            this.originalServer = server;\r\n+            this.handlerRegistry = handlerRegistry;\r\n+        }\r\n+\r\n+        public void start() throws RpcException {\r\n+            try {\r\n+                originalServer.start();\r\n+                started = true;\r\n+            } catch (IOException e) {\r\n+                throw new RpcException(\"Starting gRPC server failed. \", e);\r\n+            }\r\n+        }\r\n+\r\n+        public DubboHandlerRegistry getRegistry() {\r\n+            return handlerRegistry;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Object getDelegateServer() {\r\n+            return originalServer;\r\n+        }\r\n+\r\n+        public boolean isStarted() {\r\n+            return started;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void close() {\r\n+            originalServer.shutdown();\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/ReferenceCountManagedChannel.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/ReferenceCountManagedChannel.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,85 +1,85 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc;\n-\n-import io.grpc.CallOptions;\n-import io.grpc.ClientCall;\n-import io.grpc.ManagedChannel;\n-import io.grpc.MethodDescriptor;\n-\n-import java.util.concurrent.TimeUnit;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-/**\n- * Also see ReferenceCountExchangeClient\n- */\n-public class ReferenceCountManagedChannel extends ManagedChannel {\n-\n-    private final AtomicInteger referenceCount = new AtomicInteger(0);\n-\n-    private ManagedChannel grpcChannel;\n-\n-    public ReferenceCountManagedChannel(ManagedChannel delegated) {\n-        this.grpcChannel = delegated;\n-    }\n-\n-    /**\n-     * The reference count of current ExchangeClient, connection will be closed if all invokers destroyed.\n-     */\n-    public void incrementAndGetCount() {\n-        referenceCount.incrementAndGet();\n-    }\n-\n-    @Override\n-    public ManagedChannel shutdown() {\n-        if (referenceCount.decrementAndGet() <= 0) {\n-            return grpcChannel.shutdown();\n-        }\n-        return grpcChannel;\n-    }\n-\n-    @Override\n-    public boolean isShutdown() {\n-        return grpcChannel.isShutdown();\n-    }\n-\n-    @Override\n-    public boolean isTerminated() {\n-        return grpcChannel.isTerminated();\n-    }\n-\n-    @Override\n-    public ManagedChannel shutdownNow() {\n-        // TODO\n-        return shutdown();\n-    }\n-\n-    @Override\n-    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {\n-        return grpcChannel.awaitTermination(timeout, unit);\n-    }\n-\n-    @Override\n-    public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(MethodDescriptor<RequestT, ResponseT> methodDescriptor, CallOptions callOptions) {\n-        return grpcChannel.newCall(methodDescriptor, callOptions);\n-    }\n-\n-    @Override\n-    public String authority() {\n-        return grpcChannel.authority();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc;\r\n+\r\n+import io.grpc.CallOptions;\r\n+import io.grpc.ClientCall;\r\n+import io.grpc.ManagedChannel;\r\n+import io.grpc.MethodDescriptor;\r\n+\r\n+import java.util.concurrent.TimeUnit;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+/**\r\n+ * Also see ReferenceCountExchangeClient\r\n+ */\r\n+public class ReferenceCountManagedChannel extends ManagedChannel {\r\n+\r\n+    private final AtomicInteger referenceCount = new AtomicInteger(0);\r\n+\r\n+    private ManagedChannel grpcChannel;\r\n+\r\n+    public ReferenceCountManagedChannel(ManagedChannel delegated) {\r\n+        this.grpcChannel = delegated;\r\n+    }\r\n+\r\n+    /**\r\n+     * The reference count of current ExchangeClient, connection will be closed if all invokers destroyed.\r\n+     */\r\n+    public void incrementAndGetCount() {\r\n+        referenceCount.incrementAndGet();\r\n+    }\r\n+\r\n+    @Override\r\n+    public ManagedChannel shutdown() {\r\n+        if (referenceCount.decrementAndGet() <= 0) {\r\n+            return grpcChannel.shutdown();\r\n+        }\r\n+        return grpcChannel;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isShutdown() {\r\n+        return grpcChannel.isShutdown();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isTerminated() {\r\n+        return grpcChannel.isTerminated();\r\n+    }\r\n+\r\n+    @Override\r\n+    public ManagedChannel shutdownNow() {\r\n+        // TODO\r\n+        return shutdown();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean awaitTermination(long timeout, TimeUnit unit) throws InterruptedException {\r\n+        return grpcChannel.awaitTermination(timeout, unit);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <RequestT, ResponseT> ClientCall<RequestT, ResponseT> newCall(MethodDescriptor<RequestT, ResponseT> methodDescriptor, CallOptions callOptions) {\r\n+        return grpcChannel.newCall(methodDescriptor, callOptions);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String authority() {\r\n+        return grpcChannel.authority();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ClientInterceptor.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ClientInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,26 +1,26 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc.interceptors;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\n- */\n-@SPI\n-public interface ClientInterceptor extends io.grpc.ClientInterceptor {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc.interceptors;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\r\n+ */\r\n+@SPI\r\n+public interface ClientInterceptor extends io.grpc.ClientInterceptor {\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/interceptors/GrpcConfigurator.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/interceptors/GrpcConfigurator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc.interceptors;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.SPI;\n-\n-import io.grpc.CallOptions;\n-import io.grpc.netty.NettyChannelBuilder;\n-import io.grpc.netty.NettyServerBuilder;\n-\n-@SPI\n-public interface GrpcConfigurator {\n-\n-    default NettyServerBuilder configureServerBuilder(NettyServerBuilder builder, URL url) {\n-        return builder;\n-    }\n-\n-    default NettyChannelBuilder configureChannelBuilder(NettyChannelBuilder builder, URL url) {\n-        return builder;\n-    }\n-\n-    default CallOptions configureCallOptions(CallOptions options, URL url) {\n-        return options;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc.interceptors;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+import io.grpc.CallOptions;\r\n+import io.grpc.netty.NettyChannelBuilder;\r\n+import io.grpc.netty.NettyServerBuilder;\r\n+\r\n+@SPI\r\n+public interface GrpcConfigurator {\r\n+\r\n+    default NettyServerBuilder configureServerBuilder(NettyServerBuilder builder, URL url) {\r\n+        return builder;\r\n+    }\r\n+\r\n+    default NettyChannelBuilder configureChannelBuilder(NettyChannelBuilder builder, URL url) {\r\n+        return builder;\r\n+    }\r\n+\r\n+    default CallOptions configureCallOptions(CallOptions options, URL url) {\r\n+        return options;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/interceptors/RpcContextInterceptor.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/interceptors/RpcContextInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,100 +1,100 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc.interceptors;\n-\n-import io.grpc.CallOptions;\n-import io.grpc.Channel;\n-import io.grpc.ClientCall;\n-import io.grpc.ForwardingClientCall;\n-import io.grpc.ForwardingServerCallListener;\n-import io.grpc.Metadata;\n-import io.grpc.MethodDescriptor;\n-import io.grpc.ServerCall;\n-import io.grpc.ServerCallHandler;\n-import org.apache.dubbo.common.extension.Activate;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-import java.util.Set;\n-\n-import static io.grpc.Metadata.ASCII_STRING_MARSHALLER;\n-import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\n-\n-/**\n- * Hand over context information from Dubbo to gRPC.\n- */\n-@Activate(group = {PROVIDER, CONSUMER})\n-public class RpcContextInterceptor implements ClientInterceptor, ServerInterceptor {\n-\n-    private static final String DUBBO = \"D-\";\n-\n-    @Override\n-    public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {\n-        RpcContext rpcContext = RpcContext.getContext();\n-        Map<String, Object> attachments = new HashMap<>(rpcContext.getObjectAttachments());\n-\n-        return new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(next.newCall(method, callOptions)) {\n-            @Override\n-            public void start(Listener<RespT> responseListener, Metadata headers) {\n-                if (!attachments.isEmpty()) {\n-                    for (Map.Entry<String, Object> entry : attachments.entrySet()) {\n-                        // only used for string\n-                        if (entry.getValue() instanceof String) {\n-                            headers.put(Metadata.Key.of(DUBBO + entry.getKey(), ASCII_STRING_MARSHALLER), ((String) entry.getValue()));\n-                        }\n-                    }\n-                }\n-                super.start(responseListener, headers);\n-            }\n-        };\n-    }\n-\n-    @Override\n-    public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {\n-        Set<String> keys = headers.keys();\n-        Map<String, Object> attachments = new HashMap<>();\n-        // filter out all dubbo attachments and save in map\n-        if (keys != null) {\n-            keys.stream().filter(k -> k.toUpperCase().startsWith(DUBBO)).forEach(k ->\n-                    attachments.put(k.substring(DUBBO.length()), headers.get(Metadata.Key.of(k, Metadata.ASCII_STRING_MARSHALLER)))\n-            );\n-        }\n-\n-        return new ForwardingServerCallListener.SimpleForwardingServerCallListener<ReqT>(next.startCall(call, headers)) {\n-            @Override\n-            public void onHalfClose() {\n-                // the client completed all message sending and server will call the biz method if client is not the streaming\n-                if (call.getMethodDescriptor().getType().clientSendsOneMessage()) {\n-                    RpcContext.getContext().setObjectAttachments(attachments);\n-                }\n-                super.onHalfClose();\n-            }\n-\n-            @Override\n-            public void onMessage(ReqT message) {\n-                //server receive the request from client and call the biz method if client is streaming\n-                if (!call.getMethodDescriptor().getType().clientSendsOneMessage()) {\n-                    RpcContext.getContext().setObjectAttachments(attachments);\n-                }\n-                super.onMessage(message);\n-            }\n-        };\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc.interceptors;\r\n+\r\n+import io.grpc.CallOptions;\r\n+import io.grpc.Channel;\r\n+import io.grpc.ClientCall;\r\n+import io.grpc.ForwardingClientCall;\r\n+import io.grpc.ForwardingServerCallListener;\r\n+import io.grpc.Metadata;\r\n+import io.grpc.MethodDescriptor;\r\n+import io.grpc.ServerCall;\r\n+import io.grpc.ServerCallHandler;\r\n+import org.apache.dubbo.common.extension.Activate;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+import java.util.Set;\r\n+\r\n+import static io.grpc.Metadata.ASCII_STRING_MARSHALLER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.CONSUMER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROVIDER;\r\n+\r\n+/**\r\n+ * Hand over context information from Dubbo to gRPC.\r\n+ */\r\n+@Activate(group = {PROVIDER, CONSUMER})\r\n+public class RpcContextInterceptor implements ClientInterceptor, ServerInterceptor {\r\n+\r\n+    private static final String DUBBO = \"D-\";\r\n+\r\n+    @Override\r\n+    public <ReqT, RespT> ClientCall<ReqT, RespT> interceptCall(MethodDescriptor<ReqT, RespT> method, CallOptions callOptions, Channel next) {\r\n+        RpcContext rpcContext = RpcContext.getContext();\r\n+        Map<String, Object> attachments = new HashMap<>(rpcContext.getObjectAttachments());\r\n+\r\n+        return new ForwardingClientCall.SimpleForwardingClientCall<ReqT, RespT>(next.newCall(method, callOptions)) {\r\n+            @Override\r\n+            public void start(Listener<RespT> responseListener, Metadata headers) {\r\n+                if (!attachments.isEmpty()) {\r\n+                    for (Map.Entry<String, Object> entry : attachments.entrySet()) {\r\n+                        // only used for string\r\n+                        if (entry.getValue() instanceof String) {\r\n+                            headers.put(Metadata.Key.of(DUBBO + entry.getKey(), ASCII_STRING_MARSHALLER), ((String) entry.getValue()));\r\n+                        }\r\n+                    }\r\n+                }\r\n+                super.start(responseListener, headers);\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    @Override\r\n+    public <ReqT, RespT> ServerCall.Listener<ReqT> interceptCall(ServerCall<ReqT, RespT> call, Metadata headers, ServerCallHandler<ReqT, RespT> next) {\r\n+        Set<String> keys = headers.keys();\r\n+        Map<String, Object> attachments = new HashMap<>();\r\n+        // filter out all dubbo attachments and save in map\r\n+        if (keys != null) {\r\n+            keys.stream().filter(k -> k.toUpperCase().startsWith(DUBBO)).forEach(k ->\r\n+                    attachments.put(k.substring(DUBBO.length()), headers.get(Metadata.Key.of(k, Metadata.ASCII_STRING_MARSHALLER)))\r\n+            );\r\n+        }\r\n+\r\n+        return new ForwardingServerCallListener.SimpleForwardingServerCallListener<ReqT>(next.startCall(call, headers)) {\r\n+            @Override\r\n+            public void onHalfClose() {\r\n+                // the client completed all message sending and server will call the biz method if client is not the streaming\r\n+                if (call.getMethodDescriptor().getType().clientSendsOneMessage()) {\r\n+                    RpcContext.getContext().setObjectAttachments(attachments);\r\n+                }\r\n+                super.onHalfClose();\r\n+            }\r\n+\r\n+            @Override\r\n+            public void onMessage(ReqT message) {\r\n+                //server receive the request from client and call the biz method if client is streaming\r\n+                if (!call.getMethodDescriptor().getType().clientSendsOneMessage()) {\r\n+                    RpcContext.getContext().setObjectAttachments(attachments);\r\n+                }\r\n+                super.onMessage(message);\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerInterceptor.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerInterceptor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,26 +1,26 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc.interceptors;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\n- */\n-@SPI\n-public interface ServerInterceptor extends io.grpc.ServerInterceptor {\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc.interceptors;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\r\n+ */\r\n+@SPI\r\n+public interface ServerInterceptor extends io.grpc.ServerInterceptor {\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerTransportFilter.java", "source2": "org/apache/dubbo/rpc/protocol/grpc/interceptors/ServerTransportFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,27 +1,27 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.grpc.interceptors;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-\n-/**\n- * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\n- */\n-@SPI\n-public interface ServerTransportFilter {\n-    io.grpc.ServerTransportFilter grpcTransportFilter();\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.grpc.interceptors;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+\r\n+/**\r\n+ * Adapt to the standard Dubbo SPI, so that we can leverage the advantages of Dubbo ExtensionLoader.\r\n+ */\r\n+@SPI\r\n+public interface ServerTransportFilter {\r\n+    io.grpc.ServerTransportFilter grpcTransportFilter();\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/hessian/Constants.java", "source2": "org/apache/dubbo/rpc/protocol/hessian/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,35 +1,35 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.hessian;\n-\n-/**\n- *\n- */\n-public interface Constants {\n-\n-    String HESSIAN2_REQUEST_KEY = \"hessian2.request\";\n-\n-    boolean DEFAULT_HESSIAN2_REQUEST = false;\n-\n-    String HESSIAN_OVERLOAD_METHOD_KEY = \"hessian.overload.method\";\n-\n-    boolean DEFAULT_HESSIAN_OVERLOAD_METHOD = false;\n-\n-    String DEFAULT_HTTP_CLIENT = \"jdk\";\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.hessian;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public interface Constants {\r\n+\r\n+    String HESSIAN2_REQUEST_KEY = \"hessian2.request\";\r\n+\r\n+    boolean DEFAULT_HESSIAN2_REQUEST = false;\r\n+\r\n+    String HESSIAN_OVERLOAD_METHOD_KEY = \"hessian.overload.method\";\r\n+\r\n+    boolean DEFAULT_HESSIAN_OVERLOAD_METHOD = false;\r\n+\r\n+    String DEFAULT_HTTP_CLIENT = \"jdk\";\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/hessian/DubboHessianURLConnectionFactory.java", "source2": "org/apache/dubbo/rpc/protocol/hessian/DubboHessianURLConnectionFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,41 +1,41 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.hessian;\n-\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import com.caucho.hessian.client.HessianConnection;\n-import com.caucho.hessian.client.HessianURLConnectionFactory;\n-\n-import java.io.IOException;\n-import java.net.URL;\n-\n-public class DubboHessianURLConnectionFactory extends HessianURLConnectionFactory {\n-\n-    @Override\n-    public HessianConnection open(URL url) throws IOException {\n-        HessianConnection connection = super.open(url);\n-        RpcContext context = RpcContext.getContext();\n-        for (String key : context.getObjectAttachments().keySet()) {\n-            connection.addHeader(Constants.DEFAULT_EXCHANGER + key, context.getAttachment(key));\n-        }\n-\n-        return connection;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.hessian;\r\n+\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import com.caucho.hessian.client.HessianConnection;\r\n+import com.caucho.hessian.client.HessianURLConnectionFactory;\r\n+\r\n+import java.io.IOException;\r\n+import java.net.URL;\r\n+\r\n+public class DubboHessianURLConnectionFactory extends HessianURLConnectionFactory {\r\n+\r\n+    @Override\r\n+    public HessianConnection open(URL url) throws IOException {\r\n+        HessianConnection connection = super.open(url);\r\n+        RpcContext context = RpcContext.getContext();\r\n+        for (String key : context.getObjectAttachments().keySet()) {\r\n+            connection.addHeader(Constants.DEFAULT_EXCHANGER + key, context.getAttachment(key));\r\n+        }\r\n+\r\n+        return connection;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java", "source2": "org/apache/dubbo/rpc/protocol/hessian/HttpClientConnectionFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,58 +1,58 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.hessian;\n-\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import com.caucho.hessian.client.HessianConnection;\n-import com.caucho.hessian.client.HessianConnectionFactory;\n-import com.caucho.hessian.client.HessianProxyFactory;\n-import org.apache.http.client.HttpClient;\n-import org.apache.http.client.config.RequestConfig;\n-import org.apache.http.impl.client.HttpClientBuilder;\n-\n-import java.net.URL;\n-\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_EXCHANGER;\n-\n-/**\n- * HttpClientConnectionFactory\n- * TODO, Consider using connection pool\n- */\n-public class HttpClientConnectionFactory implements HessianConnectionFactory {\n-\n-    private HttpClient httpClient;\n-\n-    @Override\n-    public void setHessianProxyFactory(HessianProxyFactory factory) {\n-        RequestConfig requestConfig = RequestConfig.custom()\n-                .setConnectionRequestTimeout((int) factory.getConnectTimeout())\n-                .setSocketTimeout((int) factory.getReadTimeout())\n-                .build();\n-        httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();\n-    }\n-\n-    @Override\n-    public HessianConnection open(URL url) {\n-        HttpClientConnection httpClientConnection = new HttpClientConnection(httpClient, url);\n-        RpcContext context = RpcContext.getContext();\n-        for (String key : context.getObjectAttachments().keySet()) {\n-            httpClientConnection.addHeader(DEFAULT_EXCHANGER + key, context.getAttachment(key));\n-        }\n-        return httpClientConnection;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.hessian;\r\n+\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import com.caucho.hessian.client.HessianConnection;\r\n+import com.caucho.hessian.client.HessianConnectionFactory;\r\n+import com.caucho.hessian.client.HessianProxyFactory;\r\n+import org.apache.http.client.HttpClient;\r\n+import org.apache.http.client.config.RequestConfig;\r\n+import org.apache.http.impl.client.HttpClientBuilder;\r\n+\r\n+import java.net.URL;\r\n+\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_EXCHANGER;\r\n+\r\n+/**\r\n+ * HttpClientConnectionFactory\r\n+ * TODO, Consider using connection pool\r\n+ */\r\n+public class HttpClientConnectionFactory implements HessianConnectionFactory {\r\n+\r\n+    private HttpClient httpClient;\r\n+\r\n+    @Override\r\n+    public void setHessianProxyFactory(HessianProxyFactory factory) {\r\n+        RequestConfig requestConfig = RequestConfig.custom()\r\n+                .setConnectionRequestTimeout((int) factory.getConnectTimeout())\r\n+                .setSocketTimeout((int) factory.getReadTimeout())\r\n+                .build();\r\n+        httpClient = HttpClientBuilder.create().setDefaultRequestConfig(requestConfig).build();\r\n+    }\r\n+\r\n+    @Override\r\n+    public HessianConnection open(URL url) {\r\n+        HttpClientConnection httpClientConnection = new HttpClientConnection(httpClient, url);\r\n+        RpcContext context = RpcContext.getContext();\r\n+        for (String key : context.getObjectAttachments().keySet()) {\r\n+            httpClientConnection.addHeader(DEFAULT_EXCHANGER + key, context.getAttachment(key));\r\n+        }\r\n+        return httpClientConnection;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/HttpProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/http/HttpProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,191 +1,191 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.http;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import com.googlecode.jsonrpc4j.HttpException;\n-import com.googlecode.jsonrpc4j.JsonRpcClientException;\n-import com.googlecode.jsonrpc4j.JsonRpcServer;\n-import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\n-import org.apache.dubbo.rpc.service.GenericService;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-import org.springframework.remoting.RemoteAccessException;\n-import org.springframework.remoting.support.RemoteInvocation;\n-\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.net.SocketTimeoutException;\n-import java.util.ArrayList;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-public class HttpProtocol extends AbstractProxyProtocol {\n-    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\n-    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\n-    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\n-\n-    private final Map<String, JsonRpcServer> skeletonMap = new ConcurrentHashMap<>();\n-\n-    private HttpBinder httpBinder;\n-\n-    public HttpProtocol() {\n-        super(HttpException.class, JsonRpcClientException.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return 80;\n-    }\n-\n-    private class InternalHandler implements HttpHandler {\n-\n-        private boolean cors;\n-\n-        public InternalHandler(boolean cors) {\n-            this.cors = cors;\n-        }\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response)\n-                throws ServletException {\n-            String uri = request.getRequestURI();\n-            JsonRpcServer skeleton = skeletonMap.get(uri);\n-            if (cors) {\n-                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\n-            }\n-            if (request.getMethod().equalsIgnoreCase(\"OPTIONS\")) {\n-                response.setStatus(200);\n-            } else if (request.getMethod().equalsIgnoreCase(\"POST\")) {\n-\n-                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-                try {\n-                    skeleton.handle(request.getInputStream(), response.getOutputStream());\n-                } catch (Throwable e) {\n-                    throw new ServletException(e);\n-                }\n-            } else {\n-                response.setStatus(500);\n-            }\n-        }\n-\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(final T impl, Class<T> type, URL url) throws RpcException {\n-        String addr = getAddr(url);\n-        ProtocolServer protocolServer = serverMap.get(addr);\n-        if (protocolServer == null) {\n-            RemotingServer remotingServer = httpBinder.bind(url, new InternalHandler(url.getParameter(\"cors\", false)));\n-            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\n-        }\n-        final String path = url.getAbsolutePath();\n-        final String genericPath = path + \"/\" + GENERIC_KEY;\n-        JsonRpcServer skeleton = new JsonRpcServer(impl, type);\n-        JsonRpcServer genericServer = new JsonRpcServer(impl, GenericService.class);\n-        skeletonMap.put(path, skeleton);\n-        skeletonMap.put(genericPath, genericServer);\n-        return () -> {\n-            skeletonMap.remove(path);\n-            skeletonMap.remove(genericPath);\n-        };\n-    }\n-\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\n-        final String generic = url.getParameter(GENERIC_KEY);\n-        final boolean isGeneric = ProtocolUtils.isGeneric(generic) || serviceType.equals(GenericService.class);\n-        JsonProxyFactoryBean jsonProxyFactoryBean = new JsonProxyFactoryBean();\n-        JsonRpcProxyFactoryBean jsonRpcProxyFactoryBean = new JsonRpcProxyFactoryBean(jsonProxyFactoryBean);\n-        jsonRpcProxyFactoryBean.setRemoteInvocationFactory((methodInvocation) -> {\n-            RemoteInvocation invocation = new JsonRemoteInvocation(methodInvocation);\n-            if (isGeneric) {\n-                invocation.addAttribute(GENERIC_KEY, generic);\n-            }\n-            return invocation;\n-        });\n-        String key = url.setProtocol(\"http\").toIdentityString();\n-        if (isGeneric) {\n-            key = key + \"/\" + GENERIC_KEY;\n-        }\n-\n-        jsonRpcProxyFactoryBean.setServiceUrl(key);\n-        jsonRpcProxyFactoryBean.setServiceInterface(serviceType);\n-\n-        jsonProxyFactoryBean.afterPropertiesSet();\n-        return (T) jsonProxyFactoryBean.getObject();\n-    }\n-\n-    protected int getErrorCode(Throwable e) {\n-        if (e instanceof RemoteAccessException) {\n-            e = e.getCause();\n-        }\n-        if (e != null) {\n-            Class<?> cls = e.getClass();\n-            if (SocketTimeoutException.class.equals(cls)) {\n-                return RpcException.TIMEOUT_EXCEPTION;\n-            } else if (IOException.class.isAssignableFrom(cls)) {\n-                return RpcException.NETWORK_EXCEPTION;\n-            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\n-                return RpcException.SERIALIZATION_EXCEPTION;\n-            }\n-\n-            if (e instanceof HttpProtocolErrorCode) {\n-                return ((HttpProtocolErrorCode) e).getErrorCode();\n-            }\n-        }\n-        return super.getErrorCode(e);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-        for (String key : new ArrayList<>(serverMap.keySet())) {\n-            ProtocolServer server = serverMap.remove(key);\n-            if (server != null) {\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Close jsonrpc server \" + server.getUrl());\n-                    }\n-                    server.close();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            }\n-        }\n-    }\n-\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.http;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import com.googlecode.jsonrpc4j.HttpException;\r\n+import com.googlecode.jsonrpc4j.JsonRpcClientException;\r\n+import com.googlecode.jsonrpc4j.JsonRpcServer;\r\n+import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+import org.springframework.remoting.RemoteAccessException;\r\n+import org.springframework.remoting.support.RemoteInvocation;\r\n+\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.net.SocketTimeoutException;\r\n+import java.util.ArrayList;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+public class HttpProtocol extends AbstractProxyProtocol {\r\n+    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\r\n+\r\n+    private final Map<String, JsonRpcServer> skeletonMap = new ConcurrentHashMap<>();\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    public HttpProtocol() {\r\n+        super(HttpException.class, JsonRpcClientException.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return 80;\r\n+    }\r\n+\r\n+    private class InternalHandler implements HttpHandler {\r\n+\r\n+        private boolean cors;\r\n+\r\n+        public InternalHandler(boolean cors) {\r\n+            this.cors = cors;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response)\r\n+                throws ServletException {\r\n+            String uri = request.getRequestURI();\r\n+            JsonRpcServer skeleton = skeletonMap.get(uri);\r\n+            if (cors) {\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\r\n+            }\r\n+            if (request.getMethod().equalsIgnoreCase(\"OPTIONS\")) {\r\n+                response.setStatus(200);\r\n+            } else if (request.getMethod().equalsIgnoreCase(\"POST\")) {\r\n+\r\n+                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+                try {\r\n+                    skeleton.handle(request.getInputStream(), response.getOutputStream());\r\n+                } catch (Throwable e) {\r\n+                    throw new ServletException(e);\r\n+                }\r\n+            } else {\r\n+                response.setStatus(500);\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(final T impl, Class<T> type, URL url) throws RpcException {\r\n+        String addr = getAddr(url);\r\n+        ProtocolServer protocolServer = serverMap.get(addr);\r\n+        if (protocolServer == null) {\r\n+            RemotingServer remotingServer = httpBinder.bind(url, new InternalHandler(url.getParameter(\"cors\", false)));\r\n+            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\r\n+        }\r\n+        final String path = url.getAbsolutePath();\r\n+        final String genericPath = path + \"/\" + GENERIC_KEY;\r\n+        JsonRpcServer skeleton = new JsonRpcServer(impl, type);\r\n+        JsonRpcServer genericServer = new JsonRpcServer(impl, GenericService.class);\r\n+        skeletonMap.put(path, skeleton);\r\n+        skeletonMap.put(genericPath, genericServer);\r\n+        return () -> {\r\n+            skeletonMap.remove(path);\r\n+            skeletonMap.remove(genericPath);\r\n+        };\r\n+    }\r\n+\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\r\n+        final String generic = url.getParameter(GENERIC_KEY);\r\n+        final boolean isGeneric = ProtocolUtils.isGeneric(generic) || serviceType.equals(GenericService.class);\r\n+        JsonProxyFactoryBean jsonProxyFactoryBean = new JsonProxyFactoryBean();\r\n+        JsonRpcProxyFactoryBean jsonRpcProxyFactoryBean = new JsonRpcProxyFactoryBean(jsonProxyFactoryBean);\r\n+        jsonRpcProxyFactoryBean.setRemoteInvocationFactory((methodInvocation) -> {\r\n+            RemoteInvocation invocation = new JsonRemoteInvocation(methodInvocation);\r\n+            if (isGeneric) {\r\n+                invocation.addAttribute(GENERIC_KEY, generic);\r\n+            }\r\n+            return invocation;\r\n+        });\r\n+        String key = url.setProtocol(\"http\").toIdentityString();\r\n+        if (isGeneric) {\r\n+            key = key + \"/\" + GENERIC_KEY;\r\n+        }\r\n+\r\n+        jsonRpcProxyFactoryBean.setServiceUrl(key);\r\n+        jsonRpcProxyFactoryBean.setServiceInterface(serviceType);\r\n+\r\n+        jsonProxyFactoryBean.afterPropertiesSet();\r\n+        return (T) jsonProxyFactoryBean.getObject();\r\n+    }\r\n+\r\n+    protected int getErrorCode(Throwable e) {\r\n+        if (e instanceof RemoteAccessException) {\r\n+            e = e.getCause();\r\n+        }\r\n+        if (e != null) {\r\n+            Class<?> cls = e.getClass();\r\n+            if (SocketTimeoutException.class.equals(cls)) {\r\n+                return RpcException.TIMEOUT_EXCEPTION;\r\n+            } else if (IOException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.NETWORK_EXCEPTION;\r\n+            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.SERIALIZATION_EXCEPTION;\r\n+            }\r\n+\r\n+            if (e instanceof HttpProtocolErrorCode) {\r\n+                return ((HttpProtocolErrorCode) e).getErrorCode();\r\n+            }\r\n+        }\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+        for (String key : new ArrayList<>(serverMap.keySet())) {\r\n+            ProtocolServer server = serverMap.remove(key);\r\n+            if (server != null) {\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Close jsonrpc server \" + server.getUrl());\r\n+                    }\r\n+                    server.close();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java", "source2": "org/apache/dubbo/rpc/protocol/http/JsonRemoteInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,61 +1,61 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.http;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.springframework.remoting.support.RemoteInvocation;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-/**\n- * JsonRemoteInvocation\n- */\n-public class JsonRemoteInvocation extends RemoteInvocation {\n-    private static final long serialVersionUID = 1L;\n-    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\n-\n-    public JsonRemoteInvocation(MethodInvocation methodInvocation) {\n-        super(methodInvocation);\n-        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getAttachments()));\n-    }\n-\n-    @Override\n-    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\n-            InvocationTargetException {\n-        RpcContext context = RpcContext.getContext();\n-        context.setAttachments((Map<String, String>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\n-\n-        String generic = (String) getAttribute(GENERIC_KEY);\n-        if (StringUtils.isNotEmpty(generic)) {\n-            context.setAttachment(GENERIC_KEY, generic);\n-        }\n-        try {\n-            return super.invoke(targetObject);\n-        } finally {\n-            context.setAttachments(null);\n-\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.http;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.springframework.remoting.support.RemoteInvocation;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+/**\r\n+ * JsonRemoteInvocation\r\n+ */\r\n+public class JsonRemoteInvocation extends RemoteInvocation {\r\n+    private static final long serialVersionUID = 1L;\r\n+    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\r\n+\r\n+    public JsonRemoteInvocation(MethodInvocation methodInvocation) {\r\n+        super(methodInvocation);\r\n+        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getAttachments()));\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\r\n+            InvocationTargetException {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setAttachments((Map<String, String>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\r\n+\r\n+        String generic = (String) getAttribute(GENERIC_KEY);\r\n+        if (StringUtils.isNotEmpty(generic)) {\r\n+            context.setAttachment(GENERIC_KEY, generic);\r\n+        }\r\n+        try {\r\n+            return super.invoke(targetObject);\r\n+        } finally {\r\n+            context.setAttachments(null);\r\n+\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java", "source2": "org/apache/dubbo/rpc/protocol/http/JsonRpcProxyFactoryBean.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,86 +1,86 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.http;\n-\n-import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\n-import org.aopalliance.intercept.MethodInterceptor;\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.springframework.beans.factory.FactoryBean;\n-import org.springframework.beans.factory.InitializingBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.remoting.support.RemoteInvocationBasedAccessor;\n-\n-/**\n- * JsonRpcProxyFactoryBean\n- */\n-public class JsonRpcProxyFactoryBean extends RemoteInvocationBasedAccessor\n-        implements MethodInterceptor,\n-        InitializingBean,\n-        FactoryBean<Object>,\n-        ApplicationContextAware {\n-    private final JsonProxyFactoryBean jsonProxyFactoryBean;\n-\n-    public JsonRpcProxyFactoryBean(JsonProxyFactoryBean factoryBean) {\n-        this.jsonProxyFactoryBean = factoryBean;\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public void afterPropertiesSet() {\n-        jsonProxyFactoryBean.afterPropertiesSet();\n-    }\n-\n-    @Override\n-    public Object invoke(MethodInvocation invocation)\n-            throws Throwable {\n-\n-        return jsonProxyFactoryBean.invoke(invocation);\n-    }\n-\n-    @Override\n-    public Object getObject() {\n-        return jsonProxyFactoryBean.getObject();\n-    }\n-\n-    @Override\n-    public Class<?> getObjectType() {\n-        return jsonProxyFactoryBean.getObjectType();\n-    }\n-\n-    @Override\n-    public boolean isSingleton() {\n-        return jsonProxyFactoryBean.isSingleton();\n-    }\n-\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        jsonProxyFactoryBean.setApplicationContext(applicationContext);\n-    }\n-\n-    @Override\n-    public void setServiceUrl(String serviceUrl) {\n-        jsonProxyFactoryBean.setServiceUrl(serviceUrl);\n-    }\n-\n-    @Override\n-    public void setServiceInterface(Class<?> serviceInterface) {\n-        jsonProxyFactoryBean.setServiceInterface(serviceInterface);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.http;\r\n+\r\n+import com.googlecode.jsonrpc4j.spring.JsonProxyFactoryBean;\r\n+import org.aopalliance.intercept.MethodInterceptor;\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.springframework.beans.factory.FactoryBean;\r\n+import org.springframework.beans.factory.InitializingBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.remoting.support.RemoteInvocationBasedAccessor;\r\n+\r\n+/**\r\n+ * JsonRpcProxyFactoryBean\r\n+ */\r\n+public class JsonRpcProxyFactoryBean extends RemoteInvocationBasedAccessor\r\n+        implements MethodInterceptor,\r\n+        InitializingBean,\r\n+        FactoryBean<Object>,\r\n+        ApplicationContextAware {\r\n+    private final JsonProxyFactoryBean jsonProxyFactoryBean;\r\n+\r\n+    public JsonRpcProxyFactoryBean(JsonProxyFactoryBean factoryBean) {\r\n+        this.jsonProxyFactoryBean = factoryBean;\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void afterPropertiesSet() {\r\n+        jsonProxyFactoryBean.afterPropertiesSet();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object invoke(MethodInvocation invocation)\r\n+            throws Throwable {\r\n+\r\n+        return jsonProxyFactoryBean.invoke(invocation);\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object getObject() {\r\n+        return jsonProxyFactoryBean.getObject();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<?> getObjectType() {\r\n+        return jsonProxyFactoryBean.getObjectType();\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isSingleton() {\r\n+        return jsonProxyFactoryBean.isSingleton();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        jsonProxyFactoryBean.setApplicationContext(applicationContext);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setServiceUrl(String serviceUrl) {\r\n+        jsonProxyFactoryBean.setServiceUrl(serviceUrl);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setServiceInterface(Class<?> serviceInterface) {\r\n+        jsonProxyFactoryBean.setServiceInterface(serviceInterface);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/injvm/InjvmProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,120 +1,120 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.injvm;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.CollectionUtils;\n-import org.apache.dubbo.common.utils.UrlUtils;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Protocol;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProtocol;\n-import org.apache.dubbo.rpc.support.ProtocolUtils;\n-\n-import java.util.Map;\n-\n-import static org.apache.dubbo.rpc.Constants.SCOPE_KEY;\n-import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL;\n-import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE;\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\n-\n-/**\n- * InjvmProtocol\n- */\n-public class InjvmProtocol extends AbstractProtocol implements Protocol {\n-\n-    public static final String NAME = LOCAL_PROTOCOL;\n-\n-    public static final int DEFAULT_PORT = 0;\n-    private static InjvmProtocol INSTANCE;\n-\n-    public InjvmProtocol() {\n-        INSTANCE = this;\n-    }\n-\n-    public static InjvmProtocol getInjvmProtocol() {\n-        if (INSTANCE == null) {\n-            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(InjvmProtocol.NAME); // load\n-        }\n-        return INSTANCE;\n-    }\n-\n-    static Exporter<?> getExporter(Map<String, Exporter<?>> map, URL key) {\n-        Exporter<?> result = null;\n-\n-        if (!key.getServiceKey().contains(\"*\")) {\n-            result = map.get(key.getServiceKey());\n-        } else {\n-            if (CollectionUtils.isNotEmptyMap(map)) {\n-                for (Exporter<?> exporter : map.values()) {\n-                    if (UrlUtils.isServiceKeyMatch(key, exporter.getInvoker().getUrl())) {\n-                        result = exporter;\n-                        break;\n-                    }\n-                }\n-            }\n-        }\n-\n-        if (result == null) {\n-            return null;\n-        } else if (ProtocolUtils.isGeneric(\n-                result.getInvoker().getUrl().getParameter(GENERIC_KEY))) {\n-            return null;\n-        } else {\n-            return result;\n-        }\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\n-        return new InjvmExporter<T>(invoker, invoker.getUrl().getServiceKey(), exporterMap);\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url) throws RpcException {\n-        return new InjvmInvoker<T>(serviceType, url, url.getServiceKey(), exporterMap);\n-    }\n-\n-    public boolean isInjvmRefer(URL url) {\n-        String scope = url.getParameter(SCOPE_KEY);\n-        // Since injvm protocol is configured explicitly, we don't need to set any extra flag, use normal refer process.\n-        if (SCOPE_LOCAL.equals(scope) || (url.getParameter(LOCAL_PROTOCOL, false))) {\n-            // if it's declared as local reference\n-            // 'scope=local' is equivalent to 'injvm=true', injvm will be deprecated in the future release\n-            return true;\n-        } else if (SCOPE_REMOTE.equals(scope)) {\n-            // it's declared as remote reference\n-            return false;\n-        } else if (url.getParameter(GENERIC_KEY, false)) {\n-            // generic invocation is not local reference\n-            return false;\n-        } else if (getExporter(exporterMap, url) != null) {\n-            // by default, go through local reference if there's the service exposed locally\n-            return true;\n-        } else {\n-            return false;\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.injvm;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.CollectionUtils;\r\n+import org.apache.dubbo.common.utils.UrlUtils;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Protocol;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProtocol;\r\n+import org.apache.dubbo.rpc.support.ProtocolUtils;\r\n+\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_LOCAL;\r\n+import static org.apache.dubbo.rpc.Constants.SCOPE_REMOTE;\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.LOCAL_PROTOCOL;\r\n+\r\n+/**\r\n+ * InjvmProtocol\r\n+ */\r\n+public class InjvmProtocol extends AbstractProtocol implements Protocol {\r\n+\r\n+    public static final String NAME = LOCAL_PROTOCOL;\r\n+\r\n+    public static final int DEFAULT_PORT = 0;\r\n+    private static InjvmProtocol INSTANCE;\r\n+\r\n+    public InjvmProtocol() {\r\n+        INSTANCE = this;\r\n+    }\r\n+\r\n+    public static InjvmProtocol getInjvmProtocol() {\r\n+        if (INSTANCE == null) {\r\n+            ExtensionLoader.getExtensionLoader(Protocol.class).getExtension(InjvmProtocol.NAME); // load\r\n+        }\r\n+        return INSTANCE;\r\n+    }\r\n+\r\n+    static Exporter<?> getExporter(Map<String, Exporter<?>> map, URL key) {\r\n+        Exporter<?> result = null;\r\n+\r\n+        if (!key.getServiceKey().contains(\"*\")) {\r\n+            result = map.get(key.getServiceKey());\r\n+        } else {\r\n+            if (CollectionUtils.isNotEmptyMap(map)) {\r\n+                for (Exporter<?> exporter : map.values()) {\r\n+                    if (UrlUtils.isServiceKeyMatch(key, exporter.getInvoker().getUrl())) {\r\n+                        result = exporter;\r\n+                        break;\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        if (result == null) {\r\n+            return null;\r\n+        } else if (ProtocolUtils.isGeneric(\r\n+                result.getInvoker().getUrl().getParameter(GENERIC_KEY))) {\r\n+            return null;\r\n+        } else {\r\n+            return result;\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\r\n+        return new InjvmExporter<T>(invoker, invoker.getUrl().getServiceKey(), exporterMap);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> protocolBindingRefer(Class<T> serviceType, URL url) throws RpcException {\r\n+        return new InjvmInvoker<T>(serviceType, url, url.getServiceKey(), exporterMap);\r\n+    }\r\n+\r\n+    public boolean isInjvmRefer(URL url) {\r\n+        String scope = url.getParameter(SCOPE_KEY);\r\n+        // Since injvm protocol is configured explicitly, we don't need to set any extra flag, use normal refer process.\r\n+        if (SCOPE_LOCAL.equals(scope) || (url.getParameter(LOCAL_PROTOCOL, false))) {\r\n+            // if it's declared as local reference\r\n+            // 'scope=local' is equivalent to 'injvm=true', injvm will be deprecated in the future release\r\n+            return true;\r\n+        } else if (SCOPE_REMOTE.equals(scope)) {\r\n+            // it's declared as remote reference\r\n+            return false;\r\n+        } else if (url.getParameter(GENERIC_KEY, false)) {\r\n+            // generic invocation is not local reference\r\n+            return false;\r\n+        } else if (getExporter(exporterMap, url) != null) {\r\n+            // by default, go through local reference if there's the service exposed locally\r\n+            return true;\r\n+        } else {\r\n+            return false;\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/nativethrift/ThriftProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/nativethrift/ThriftProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,189 +1,189 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.nativethrift;\n-\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import org.apache.thrift.TException;\n-import org.apache.thrift.TMultiplexedProcessor;\n-import org.apache.thrift.TProcessor;\n-import org.apache.thrift.protocol.TCompactProtocol;\n-import org.apache.thrift.protocol.TMultiplexedProtocol;\n-import org.apache.thrift.protocol.TProtocol;\n-import org.apache.thrift.server.TServer;\n-import org.apache.thrift.server.TThreadedSelectorServer;\n-import org.apache.thrift.transport.TFramedTransport;\n-import org.apache.thrift.transport.TNonblockingServerSocket;\n-import org.apache.thrift.transport.TSocket;\n-import org.apache.thrift.transport.TTransport;\n-\n-import java.lang.reflect.Constructor;\n-import java.net.InetSocketAddress;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\n-\n-/**\n- * native thrift protocol\n- */\n-public class ThriftProtocol extends AbstractProxyProtocol {\n-\n-    public static final int DEFAULT_PORT = 40880;\n-\n-    public static final String NAME = \"native-thrift\";\n-    public static final String THRIFT_IFACE = \"$Iface\";\n-    public static final String THRIFT_PROCESSOR = \"$Processor\";\n-    public static final String THRIFT_CLIENT = \"$Client\";\n-\n-    private static final Map<String, TServer> SERVER_MAP = new HashMap<>();\n-    private TMultiplexedProcessor processor = new TMultiplexedProcessor();\n-\n-    public ThriftProtocol() {\n-        super(TException.class, RpcException.class);\n-    }\n-\n-    public ThriftProtocol(Class<?>... exceptions) {\n-        super(exceptions);\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\n-        return exportThreadedSelectorServer(impl, type, url);\n-    }\n-\n-    @Override\n-    protected <T> T doRefer(Class<T> type, URL url) throws RpcException {\n-        return doReferFrameAndCompact(type, url);\n-    }\n-\n-    private <T> Runnable exportThreadedSelectorServer(T impl, Class<T> type, URL url) throws RpcException {\n-\n-        TThreadedSelectorServer.Args tArgs = null;\n-        String typeName = type.getName();\n-\n-        if (typeName.endsWith(THRIFT_IFACE)) {\n-            String processorClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_PROCESSOR;\n-            try {\n-                Class<?> clazz = Class.forName(processorClsName);\n-                Constructor constructor = clazz.getConstructor(type);\n-                try {\n-                    TProcessor tprocessor = (TProcessor) constructor.newInstance(impl);\n-                    processor.registerProcessor(typeName, tprocessor);\n-\n-                    if (SERVER_MAP.get(url.getAddress()) == null) {\n-\n-                        /**Solve the problem of only 50 of the default number of concurrent connections*/\n-                        TNonblockingServerSocket.NonblockingAbstractServerSocketArgs args = new TNonblockingServerSocket.NonblockingAbstractServerSocketArgs();\n-                        /**1000 connections*/\n-                        args.backlog(1000);\n-\n-                        String bindIp = url.getParameter(Constants.BIND_IP_KEY, url.getHost());\n-                        if (url.getParameter(ANYHOST_KEY, false)) {\n-                            bindIp = ANYHOST_VALUE;\n-                        }\n-                        int bindPort = url.getParameter(Constants.BIND_PORT_KEY, url.getPort());\n-                        args.bindAddr(new InetSocketAddress(bindIp, bindPort));\n-\n-                        /**timeout: 10s */\n-                        args.clientTimeout(10000);\n-\n-                        TNonblockingServerSocket transport = new TNonblockingServerSocket(args);\n-\n-                        tArgs = new TThreadedSelectorServer.Args(transport);\n-                        tArgs.workerThreads(200);\n-                        tArgs.selectorThreads(4);\n-                        tArgs.acceptQueueSizePerThread(256);\n-                        tArgs.processor(processor);\n-                        tArgs.transportFactory(new TFramedTransport.Factory());\n-                        tArgs.protocolFactory(new TCompactProtocol.Factory());\n-                    } else {\n-                        return null; // if server is starting, return and do nothing here\n-                    }\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                    throw new RpcException(\"Fail to create nativethrift server(\" + url + \") : \" + e.getMessage(), e);\n-                }\n-            } catch (Exception e) {\n-                logger.error(e.getMessage(), e);\n-                throw new RpcException(\"Fail to create nativethrift server(\" + url + \") : \" + e.getMessage(), e);\n-            }\n-        }\n-\n-        if (tArgs == null) {\n-            logger.error(\"Fail to create nativethrift server(\" + url + \") due to null args\");\n-            throw new RpcException(\"Fail to create nativethrift server(\" + url + \") due to null args\");\n-        }\n-        final TServer thriftServer = new TThreadedSelectorServer(tArgs);\n-        SERVER_MAP.put(url.getAddress(), thriftServer);\n-\n-        new Thread(() -> {\n-            logger.info(\"Start Thrift ThreadedSelectorServer\");\n-            thriftServer.serve();\n-            logger.info(\"Thrift ThreadedSelectorServer started.\");\n-        }).start();\n-\n-        return () -> {\n-            try {\n-                logger.info(\"Close Thrift NonblockingServer\");\n-                thriftServer.stop();\n-            } catch (Throwable e) {\n-                logger.warn(e.getMessage(), e);\n-            }\n-        };\n-    }\n-\n-    private <T> T doReferFrameAndCompact(Class<T> type, URL url) throws RpcException {\n-\n-        try {\n-            T thriftClient = null;\n-            String typeName = type.getName();\n-            if (typeName.endsWith(THRIFT_IFACE)) {\n-                String clientClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_CLIENT;\n-                Class<?> clazz = Class.forName(clientClsName);\n-                Constructor constructor = clazz.getConstructor(TProtocol.class);\n-                try {\n-                    TSocket tSocket = new TSocket(url.getHost(), url.getPort());\n-                    TTransport transport = new TFramedTransport(tSocket);\n-                    TProtocol tprotocol = new TCompactProtocol(transport);\n-                    TMultiplexedProtocol protocol = new TMultiplexedProtocol(tprotocol, typeName);\n-                    thriftClient = (T) constructor.newInstance(protocol);\n-                    transport.open();\n-                    logger.info(\"nativethrift client opened for service(\" + url + \")\");\n-                } catch (Exception e) {\n-                    logger.error(e.getMessage(), e);\n-                    throw new RpcException(\"Fail to create remote client:\" + e.getMessage(), e);\n-                }\n-            }\n-            return thriftClient;\n-        } catch (Exception e) {\n-            logger.error(e.getMessage(), e);\n-            throw new RpcException(\"Fail to create remote client for service(\" + url + \"): \" + e.getMessage(), e);\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.nativethrift;\r\n+\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import org.apache.thrift.TException;\r\n+import org.apache.thrift.TMultiplexedProcessor;\r\n+import org.apache.thrift.TProcessor;\r\n+import org.apache.thrift.protocol.TCompactProtocol;\r\n+import org.apache.thrift.protocol.TMultiplexedProtocol;\r\n+import org.apache.thrift.protocol.TProtocol;\r\n+import org.apache.thrift.server.TServer;\r\n+import org.apache.thrift.server.TThreadedSelectorServer;\r\n+import org.apache.thrift.transport.TFramedTransport;\r\n+import org.apache.thrift.transport.TNonblockingServerSocket;\r\n+import org.apache.thrift.transport.TSocket;\r\n+import org.apache.thrift.transport.TTransport;\r\n+\r\n+import java.lang.reflect.Constructor;\r\n+import java.net.InetSocketAddress;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.ANYHOST_VALUE;\r\n+\r\n+/**\r\n+ * native thrift protocol\r\n+ */\r\n+public class ThriftProtocol extends AbstractProxyProtocol {\r\n+\r\n+    public static final int DEFAULT_PORT = 40880;\r\n+\r\n+    public static final String NAME = \"native-thrift\";\r\n+    public static final String THRIFT_IFACE = \"$Iface\";\r\n+    public static final String THRIFT_PROCESSOR = \"$Processor\";\r\n+    public static final String THRIFT_CLIENT = \"$Client\";\r\n+\r\n+    private static final Map<String, TServer> SERVER_MAP = new HashMap<>();\r\n+    private TMultiplexedProcessor processor = new TMultiplexedProcessor();\r\n+\r\n+    public ThriftProtocol() {\r\n+        super(TException.class, RpcException.class);\r\n+    }\r\n+\r\n+    public ThriftProtocol(Class<?>... exceptions) {\r\n+        super(exceptions);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\r\n+        return exportThreadedSelectorServer(impl, type, url);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> T doRefer(Class<T> type, URL url) throws RpcException {\r\n+        return doReferFrameAndCompact(type, url);\r\n+    }\r\n+\r\n+    private <T> Runnable exportThreadedSelectorServer(T impl, Class<T> type, URL url) throws RpcException {\r\n+\r\n+        TThreadedSelectorServer.Args tArgs = null;\r\n+        String typeName = type.getName();\r\n+\r\n+        if (typeName.endsWith(THRIFT_IFACE)) {\r\n+            String processorClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_PROCESSOR;\r\n+            try {\r\n+                Class<?> clazz = Class.forName(processorClsName);\r\n+                Constructor constructor = clazz.getConstructor(type);\r\n+                try {\r\n+                    TProcessor tprocessor = (TProcessor) constructor.newInstance(impl);\r\n+                    processor.registerProcessor(typeName, tprocessor);\r\n+\r\n+                    if (SERVER_MAP.get(url.getAddress()) == null) {\r\n+\r\n+                        /**Solve the problem of only 50 of the default number of concurrent connections*/\r\n+                        TNonblockingServerSocket.NonblockingAbstractServerSocketArgs args = new TNonblockingServerSocket.NonblockingAbstractServerSocketArgs();\r\n+                        /**1000 connections*/\r\n+                        args.backlog(1000);\r\n+\r\n+                        String bindIp = url.getParameter(Constants.BIND_IP_KEY, url.getHost());\r\n+                        if (url.getParameter(ANYHOST_KEY, false)) {\r\n+                            bindIp = ANYHOST_VALUE;\r\n+                        }\r\n+                        int bindPort = url.getParameter(Constants.BIND_PORT_KEY, url.getPort());\r\n+                        args.bindAddr(new InetSocketAddress(bindIp, bindPort));\r\n+\r\n+                        /**timeout: 10s */\r\n+                        args.clientTimeout(10000);\r\n+\r\n+                        TNonblockingServerSocket transport = new TNonblockingServerSocket(args);\r\n+\r\n+                        tArgs = new TThreadedSelectorServer.Args(transport);\r\n+                        tArgs.workerThreads(200);\r\n+                        tArgs.selectorThreads(4);\r\n+                        tArgs.acceptQueueSizePerThread(256);\r\n+                        tArgs.processor(processor);\r\n+                        tArgs.transportFactory(new TFramedTransport.Factory());\r\n+                        tArgs.protocolFactory(new TCompactProtocol.Factory());\r\n+                    } else {\r\n+                        return null; // if server is starting, return and do nothing here\r\n+                    }\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                    throw new RpcException(\"Fail to create nativethrift server(\" + url + \") : \" + e.getMessage(), e);\r\n+                }\r\n+            } catch (Exception e) {\r\n+                logger.error(e.getMessage(), e);\r\n+                throw new RpcException(\"Fail to create nativethrift server(\" + url + \") : \" + e.getMessage(), e);\r\n+            }\r\n+        }\r\n+\r\n+        if (tArgs == null) {\r\n+            logger.error(\"Fail to create nativethrift server(\" + url + \") due to null args\");\r\n+            throw new RpcException(\"Fail to create nativethrift server(\" + url + \") due to null args\");\r\n+        }\r\n+        final TServer thriftServer = new TThreadedSelectorServer(tArgs);\r\n+        SERVER_MAP.put(url.getAddress(), thriftServer);\r\n+\r\n+        new Thread(() -> {\r\n+            logger.info(\"Start Thrift ThreadedSelectorServer\");\r\n+            thriftServer.serve();\r\n+            logger.info(\"Thrift ThreadedSelectorServer started.\");\r\n+        }).start();\r\n+\r\n+        return () -> {\r\n+            try {\r\n+                logger.info(\"Close Thrift NonblockingServer\");\r\n+                thriftServer.stop();\r\n+            } catch (Throwable e) {\r\n+                logger.warn(e.getMessage(), e);\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    private <T> T doReferFrameAndCompact(Class<T> type, URL url) throws RpcException {\r\n+\r\n+        try {\r\n+            T thriftClient = null;\r\n+            String typeName = type.getName();\r\n+            if (typeName.endsWith(THRIFT_IFACE)) {\r\n+                String clientClsName = typeName.substring(0, typeName.indexOf(THRIFT_IFACE)) + THRIFT_CLIENT;\r\n+                Class<?> clazz = Class.forName(clientClsName);\r\n+                Constructor constructor = clazz.getConstructor(TProtocol.class);\r\n+                try {\r\n+                    TSocket tSocket = new TSocket(url.getHost(), url.getPort());\r\n+                    TTransport transport = new TFramedTransport(tSocket);\r\n+                    TProtocol tprotocol = new TCompactProtocol(transport);\r\n+                    TMultiplexedProtocol protocol = new TMultiplexedProtocol(tprotocol, typeName);\r\n+                    thriftClient = (T) constructor.newInstance(protocol);\r\n+                    transport.open();\r\n+                    logger.info(\"nativethrift client opened for service(\" + url + \")\");\r\n+                } catch (Exception e) {\r\n+                    logger.error(e.getMessage(), e);\r\n+                    throw new RpcException(\"Fail to create remote client:\" + e.getMessage(), e);\r\n+                }\r\n+            }\r\n+            return thriftClient;\r\n+        } catch (Exception e) {\r\n+            logger.error(e.getMessage(), e);\r\n+            throw new RpcException(\"Fail to create remote client for service(\" + url + \"): \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/BaseRestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,80 +1,80 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\n-\n-public abstract class BaseRestProtocolServer implements RestProtocolServer {\n-\n-    private String address;\n-\n-    @Override\n-    public void start(URL url) {\n-        getDeployment().getMediaTypeMappings().put(\"json\", \"application/json\");\n-        getDeployment().getMediaTypeMappings().put(\"xml\", \"text/xml\");\n-//        server.getDeployment().getMediaTypeMappings().put(\"xml\", \"application/xml\");\n-        getDeployment().getProviderClasses().add(RpcContextFilter.class.getName());\n-        // TODO users can override this mapper, but we just rely on the current priority strategy of resteasy\n-        getDeployment().getProviderClasses().add(RpcExceptionMapper.class.getName());\n-\n-        loadProviders(url.getParameter(EXTENSION_KEY, \"\"));\n-\n-        doStart(url);\n-    }\n-\n-    @Override\n-    public void deploy(Class resourceDef, Object resourceInstance, String contextPath) {\n-        if (StringUtils.isEmpty(contextPath)) {\n-            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef));\n-        } else {\n-            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef), contextPath);\n-        }\n-    }\n-\n-    @Override\n-    public void undeploy(Class resourceDef) {\n-        getDeployment().getRegistry().removeRegistrations(resourceDef);\n-    }\n-\n-    @Override\n-    public String getAddress() {\n-        return address;\n-    }\n-\n-    @Override\n-    public void setAddress(String address) {\n-        this.address = address;\n-    }\n-\n-    protected void loadProviders(String value) {\n-        for (String clazz : COMMA_SPLIT_PATTERN.split(value)) {\n-            if (!StringUtils.isEmpty(clazz)) {\n-                getDeployment().getProviderClasses().add(clazz.trim());\n-            }\n-        }\n-    }\n-\n-    protected abstract ResteasyDeployment getDeployment();\n-\n-    protected abstract void doStart(URL url);\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\r\n+\r\n+public abstract class BaseRestProtocolServer implements RestProtocolServer {\r\n+\r\n+    private String address;\r\n+\r\n+    @Override\r\n+    public void start(URL url) {\r\n+        getDeployment().getMediaTypeMappings().put(\"json\", \"application/json\");\r\n+        getDeployment().getMediaTypeMappings().put(\"xml\", \"text/xml\");\r\n+//        server.getDeployment().getMediaTypeMappings().put(\"xml\", \"application/xml\");\r\n+        getDeployment().getProviderClasses().add(RpcContextFilter.class.getName());\r\n+        // TODO users can override this mapper, but we just rely on the current priority strategy of resteasy\r\n+        getDeployment().getProviderClasses().add(RpcExceptionMapper.class.getName());\r\n+\r\n+        loadProviders(url.getParameter(EXTENSION_KEY, \"\"));\r\n+\r\n+        doStart(url);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void deploy(Class resourceDef, Object resourceInstance, String contextPath) {\r\n+        if (StringUtils.isEmpty(contextPath)) {\r\n+            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef));\r\n+        } else {\r\n+            getDeployment().getRegistry().addResourceFactory(new DubboResourceFactory(resourceInstance, resourceDef), contextPath);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void undeploy(Class resourceDef) {\r\n+        getDeployment().getRegistry().removeRegistrations(resourceDef);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getAddress() {\r\n+        return address;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void setAddress(String address) {\r\n+        this.address = address;\r\n+    }\r\n+\r\n+    protected void loadProviders(String value) {\r\n+        for (String clazz : COMMA_SPLIT_PATTERN.split(value)) {\r\n+            if (!StringUtils.isEmpty(clazz)) {\r\n+                getDeployment().getProviderClasses().add(clazz.trim());\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    protected abstract ResteasyDeployment getDeployment();\r\n+\r\n+    protected abstract void doStart(URL url);\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/Constants.java", "source2": "org/apache/dubbo/rpc/protocol/rest/Constants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,29 +1,29 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-/**\n- *\n- */\n-public interface Constants {\n-    String KEEP_ALIVE_KEY = \"keepalive\";\n-\n-    boolean DEFAULT_KEEP_ALIVE = true;\n-\n-    String EXTENSION_KEY = \"extension\";\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+/**\r\n+ *\r\n+ */\r\n+public interface Constants {\r\n+    String KEEP_ALIVE_KEY = \"keepalive\";\r\n+\r\n+    boolean DEFAULT_KEEP_ALIVE = true;\r\n+\r\n+    String EXTENSION_KEY = \"extension\";\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/DubboHttpProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,131 +1,131 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.remoting.http.HttpServer;\n-import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\n-import org.apache.dubbo.remoting.http.servlet.ServletManager;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import javax.servlet.ServletConfig;\n-import javax.servlet.ServletContext;\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.util.Enumeration;\n-\n-public class DubboHttpProtocolServer extends BaseRestProtocolServer {\n-\n-    private final HttpServletDispatcher dispatcher = new HttpServletDispatcher();\n-    private final ResteasyDeployment deployment = new ResteasyDeployment();\n-    private HttpBinder httpBinder;\n-    private HttpServer httpServer;\n-//    private boolean isExternalServer;\n-\n-    public DubboHttpProtocolServer(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    protected void doStart(URL url) {\n-        // TODO jetty will by default enable keepAlive so the xml config has no effect now\n-        httpServer = httpBinder.bind(url, new RestHandler());\n-\n-        ServletContext servletContext = ServletManager.getInstance().getServletContext(url.getPort());\n-        if (servletContext == null) {\n-            servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\n-        }\n-        if (servletContext == null) {\n-            throw new RpcException(\"No servlet context found. If you are using server='servlet', \" +\n-                    \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\n-        }\n-\n-        servletContext.setAttribute(ResteasyDeployment.class.getName(), deployment);\n-\n-        try {\n-            dispatcher.init(new SimpleServletConfig(servletContext));\n-        } catch (ServletException e) {\n-            throw new RpcException(e);\n-        }\n-    }\n-\n-    @Override\n-    public void close() {\n-        httpServer.close();\n-    }\n-\n-    @Override\n-    protected ResteasyDeployment getDeployment() {\n-        return deployment;\n-    }\n-\n-    private class RestHandler implements HttpHandler {\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\n-            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-            dispatcher.service(request, response);\n-        }\n-    }\n-\n-    private static class SimpleServletConfig implements ServletConfig {\n-\n-        private final ServletContext servletContext;\n-\n-        public SimpleServletConfig(ServletContext servletContext) {\n-            this.servletContext = servletContext;\n-        }\n-\n-        @Override\n-        public String getServletName() {\n-            return \"DispatcherServlet\";\n-        }\n-\n-        @Override\n-        public ServletContext getServletContext() {\n-            return servletContext;\n-        }\n-\n-        @Override\n-        public String getInitParameter(String s) {\n-            return null;\n-        }\n-\n-        @Override\n-        public Enumeration getInitParameterNames() {\n-            return new Enumeration() {\n-                @Override\n-                public boolean hasMoreElements() {\n-                    return false;\n-                }\n-\n-                @Override\n-                public Object nextElement() {\n-                    return null;\n-                }\n-            };\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.remoting.http.HttpServer;\r\n+import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\r\n+import org.apache.dubbo.remoting.http.servlet.ServletManager;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import org.jboss.resteasy.plugins.server.servlet.HttpServletDispatcher;\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import javax.servlet.ServletConfig;\r\n+import javax.servlet.ServletContext;\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.util.Enumeration;\r\n+\r\n+public class DubboHttpProtocolServer extends BaseRestProtocolServer {\r\n+\r\n+    private final HttpServletDispatcher dispatcher = new HttpServletDispatcher();\r\n+    private final ResteasyDeployment deployment = new ResteasyDeployment();\r\n+    private HttpBinder httpBinder;\r\n+    private HttpServer httpServer;\r\n+//    private boolean isExternalServer;\r\n+\r\n+    public DubboHttpProtocolServer(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected void doStart(URL url) {\r\n+        // TODO jetty will by default enable keepAlive so the xml config has no effect now\r\n+        httpServer = httpBinder.bind(url, new RestHandler());\r\n+\r\n+        ServletContext servletContext = ServletManager.getInstance().getServletContext(url.getPort());\r\n+        if (servletContext == null) {\r\n+            servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\r\n+        }\r\n+        if (servletContext == null) {\r\n+            throw new RpcException(\"No servlet context found. If you are using server='servlet', \" +\r\n+                    \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\r\n+        }\r\n+\r\n+        servletContext.setAttribute(ResteasyDeployment.class.getName(), deployment);\r\n+\r\n+        try {\r\n+            dispatcher.init(new SimpleServletConfig(servletContext));\r\n+        } catch (ServletException e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        httpServer.close();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ResteasyDeployment getDeployment() {\r\n+        return deployment;\r\n+    }\r\n+\r\n+    private class RestHandler implements HttpHandler {\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\r\n+            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+            dispatcher.service(request, response);\r\n+        }\r\n+    }\r\n+\r\n+    private static class SimpleServletConfig implements ServletConfig {\r\n+\r\n+        private final ServletContext servletContext;\r\n+\r\n+        public SimpleServletConfig(ServletContext servletContext) {\r\n+            this.servletContext = servletContext;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getServletName() {\r\n+            return \"DispatcherServlet\";\r\n+        }\r\n+\r\n+        @Override\r\n+        public ServletContext getServletContext() {\r\n+            return servletContext;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getInitParameter(String s) {\r\n+            return null;\r\n+        }\r\n+\r\n+        @Override\r\n+        public Enumeration getInitParameterNames() {\r\n+            return new Enumeration() {\r\n+                @Override\r\n+                public boolean hasMoreElements() {\r\n+                    return false;\r\n+                }\r\n+\r\n+                @Override\r\n+                public Object nextElement() {\r\n+                    return null;\r\n+                }\r\n+            };\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/NettyRestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,73 +1,73 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.NetUtils;\n-\n-import io.netty.channel.ChannelOption;\n-import org.jboss.resteasy.plugins.server.netty.NettyJaxrsServer;\n-import org.jboss.resteasy.spi.ResteasyDeployment;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\n-import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\n-import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_PAYLOAD;\n-import static org.apache.dubbo.remoting.Constants.PAYLOAD_KEY;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.DEFAULT_KEEP_ALIVE;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.KEEP_ALIVE_KEY;\n-\n-/**\n- * Netty server can't support @Context injection of servlet objects since it's not a servlet container\n- *\n- */\n-public class NettyRestProtocolServer extends BaseRestProtocolServer {\n-\n-    private final NettyJaxrsServer server = new NettyJaxrsServer();\n-\n-    @Override\n-    protected void doStart(URL url) {\n-        String bindIp = url.getParameter(BIND_IP_KEY, url.getHost());\n-        if (!url.isAnyHost() && NetUtils.isValidLocalHost(bindIp)) {\n-            server.setHostname(bindIp);\n-        }\n-        server.setPort(url.getParameter(BIND_PORT_KEY, url.getPort()));\n-        Map<ChannelOption, Object> channelOption = new HashMap<ChannelOption, Object>();\n-        channelOption.put(ChannelOption.SO_KEEPALIVE, url.getParameter(KEEP_ALIVE_KEY, DEFAULT_KEEP_ALIVE));\n-        server.setChildChannelOptions(channelOption);\n-        server.setExecutorThreadCount(url.getParameter(THREADS_KEY, DEFAULT_THREADS));\n-        server.setIoWorkerCount(url.getParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS));\n-        server.setMaxRequestSize(url.getParameter(PAYLOAD_KEY, DEFAULT_PAYLOAD));\n-        server.start();\n-    }\n-\n-    @Override\n-    public void close() {\n-        server.stop();\n-    }\n-\n-    @Override\n-    protected ResteasyDeployment getDeployment() {\n-        return server.getDeployment();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.NetUtils;\r\n+\r\n+import io.netty.channel.ChannelOption;\r\n+import org.jboss.resteasy.plugins.server.netty.NettyJaxrsServer;\r\n+import org.jboss.resteasy.spi.ResteasyDeployment;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_THREADS;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.IO_THREADS_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.THREADS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_IP_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.BIND_PORT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_IO_THREADS;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_PAYLOAD;\r\n+import static org.apache.dubbo.remoting.Constants.PAYLOAD_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.DEFAULT_KEEP_ALIVE;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.KEEP_ALIVE_KEY;\r\n+\r\n+/**\r\n+ * Netty server can't support @Context injection of servlet objects since it's not a servlet container\r\n+ *\r\n+ */\r\n+public class NettyRestProtocolServer extends BaseRestProtocolServer {\r\n+\r\n+    private final NettyJaxrsServer server = new NettyJaxrsServer();\r\n+\r\n+    @Override\r\n+    protected void doStart(URL url) {\r\n+        String bindIp = url.getParameter(BIND_IP_KEY, url.getHost());\r\n+        if (!url.isAnyHost() && NetUtils.isValidLocalHost(bindIp)) {\r\n+            server.setHostname(bindIp);\r\n+        }\r\n+        server.setPort(url.getParameter(BIND_PORT_KEY, url.getPort()));\r\n+        Map<ChannelOption, Object> channelOption = new HashMap<ChannelOption, Object>();\r\n+        channelOption.put(ChannelOption.SO_KEEPALIVE, url.getParameter(KEEP_ALIVE_KEY, DEFAULT_KEEP_ALIVE));\r\n+        server.setChildChannelOptions(channelOption);\r\n+        server.setExecutorThreadCount(url.getParameter(THREADS_KEY, DEFAULT_THREADS));\r\n+        server.setIoWorkerCount(url.getParameter(IO_THREADS_KEY, DEFAULT_IO_THREADS));\r\n+        server.setMaxRequestSize(url.getParameter(PAYLOAD_KEY, DEFAULT_PAYLOAD));\r\n+        server.start();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() {\r\n+        server.stop();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected ResteasyDeployment getDeployment() {\r\n+        return server.getDeployment();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,295 +1,295 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\n-import org.apache.dubbo.remoting.http.servlet.ServletManager;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import org.apache.http.HeaderElement;\n-import org.apache.http.HeaderElementIterator;\n-import org.apache.http.client.config.RequestConfig;\n-import org.apache.http.config.SocketConfig;\n-import org.apache.http.impl.client.CloseableHttpClient;\n-import org.apache.http.impl.client.HttpClientBuilder;\n-import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;\n-import org.apache.http.message.BasicHeaderElementIterator;\n-import org.apache.http.protocol.HTTP;\n-import org.jboss.resteasy.client.jaxrs.ResteasyClient;\n-import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\n-import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\n-import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine;\n-import org.jboss.resteasy.util.GetRestful;\n-\n-import javax.servlet.ServletContext;\n-import javax.ws.rs.ProcessingException;\n-import javax.ws.rs.WebApplicationException;\n-import java.util.Collections;\n-import java.util.LinkedList;\n-import java.util.List;\n-import java.util.Map;\n-import java.util.concurrent.TimeUnit;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECT_TIMEOUT_KEY;\n-import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_TIMEOUT;\n-import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\n-import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\n-\n-public class RestProtocol extends AbstractProxyProtocol {\n-\n-    private static final int DEFAULT_PORT = 80;\n-    private static final String DEFAULT_SERVER = \"jetty\";\n-\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE = 20;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL = 20;\n-    private static final int HTTPCLIENT_KEEPALIVEDURATION = 30 * 1000;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS = 1000;\n-    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S = 30;\n-\n-    private final RestServerFactory serverFactory = new RestServerFactory();\n-\n-    // TODO in the future maybe we can just use a single rest client and connection manager\n-    private final List<ResteasyClient> clients = Collections.synchronizedList(new LinkedList<>());\n-\n-    private volatile ConnectionMonitor connectionMonitor;\n-\n-    public RestProtocol() {\n-        super(WebApplicationException.class, ProcessingException.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        serverFactory.setHttpBinder(httpBinder);\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\n-        String addr = getAddr(url);\n-        Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInstance().getClass();\n-        RestProtocolServer server = (RestProtocolServer) serverMap.computeIfAbsent(addr, restServer -> {\n-            RestProtocolServer s = serverFactory.createServer(url.getParameter(SERVER_KEY, DEFAULT_SERVER));\n-            s.setAddress(url.getAddress());\n-            s.start(url);\n-            return s;\n-        });\n-\n-        String contextPath = getContextPath(url);\n-        if (\"servlet\".equalsIgnoreCase(url.getParameter(SERVER_KEY, DEFAULT_SERVER))) {\n-            ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\n-            if (servletContext == null) {\n-                throw new RpcException(\"No servlet context found. Since you are using server='servlet', \" +\n-                        \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\n-            }\n-            String webappPath = servletContext.getContextPath();\n-            if (StringUtils.isNotEmpty(webappPath)) {\n-                webappPath = webappPath.substring(1);\n-                if (!contextPath.startsWith(webappPath)) {\n-                    throw new RpcException(\"Since you are using server='servlet', \" +\n-                            \"make sure that the 'contextpath' property starts with the path of external webapp\");\n-                }\n-                contextPath = contextPath.substring(webappPath.length());\n-                if (contextPath.startsWith(\"/\")) {\n-                    contextPath = contextPath.substring(1);\n-                }\n-            }\n-        }\n-\n-        final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;\n-\n-        server.deploy(resourceDef, impl, contextPath);\n-\n-        final RestProtocolServer s = server;\n-        return () -> {\n-            // TODO due to dubbo's current architecture,\n-            // it will be called from registry protocol in the shutdown process and won't appear in logs\n-            s.undeploy(resourceDef);\n-        };\n-    }\n-\n-    @Override\n-    protected <T> T doRefer(Class<T> serviceType, URL url) throws RpcException {\n-\n-        // TODO more configs to add\n-        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();\n-        // 20 is the default maxTotal of current PoolingClientConnectionManager\n-        connectionManager.setMaxTotal(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL));\n-        connectionManager.setDefaultMaxPerRoute(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE));\n-\n-        if (connectionMonitor == null) {\n-            connectionMonitor = new ConnectionMonitor();\n-            connectionMonitor.start();\n-        }\n-        connectionMonitor.addConnectionManager(connectionManager);\n-        RequestConfig requestConfig = RequestConfig.custom()\n-                .setConnectTimeout(url.getParameter(CONNECT_TIMEOUT_KEY, DEFAULT_CONNECT_TIMEOUT))\n-                .setSocketTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT))\n-                .build();\n-\n-        SocketConfig socketConfig = SocketConfig.custom()\n-                .setSoKeepAlive(true)\n-                .setTcpNoDelay(true)\n-                .build();\n-\n-        CloseableHttpClient httpClient = HttpClientBuilder.create()\n-                .setConnectionManager(connectionManager)\n-                .setKeepAliveStrategy((response, context) -> {\n-                    HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator(HTTP.CONN_KEEP_ALIVE));\n-                    while (it.hasNext()) {\n-                        HeaderElement he = it.nextElement();\n-                        String param = he.getName();\n-                        String value = he.getValue();\n-                        if (value != null && param.equalsIgnoreCase(TIMEOUT_KEY)) {\n-                            return Long.parseLong(value) * 1000;\n-                        }\n-                    }\n-                    return HTTPCLIENT_KEEPALIVEDURATION;\n-                })\n-                .setDefaultRequestConfig(requestConfig)\n-                .setDefaultSocketConfig(socketConfig)\n-                .build();\n-\n-        ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient/*, localContext*/);\n-\n-        ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();\n-        clients.add(client);\n-\n-        client.register(RpcContextFilter.class);\n-        for (String clazz : COMMA_SPLIT_PATTERN.split(url.getParameter(EXTENSION_KEY, \"\"))) {\n-            if (!StringUtils.isEmpty(clazz)) {\n-                try {\n-                    client.register(Thread.currentThread().getContextClassLoader().loadClass(clazz.trim()));\n-                } catch (ClassNotFoundException e) {\n-                    throw new RpcException(\"Error loading JAX-RS extension class: \" + clazz.trim(), e);\n-                }\n-            }\n-        }\n-\n-        // TODO protocol\n-        ResteasyWebTarget target = client.target(\"http://\" + url.getHost() + \":\" + url.getPort() + \"/\" + getContextPath(url));\n-        return target.proxy(serviceType);\n-    }\n-\n-    @Override\n-    protected int getErrorCode(Throwable e) {\n-        // TODO\n-        return super.getErrorCode(e);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-\n-        if (connectionMonitor != null) {\n-            connectionMonitor.shutdown();\n-        }\n-\n-        for (Map.Entry<String, ProtocolServer> entry : serverMap.entrySet()) {\n-            try {\n-                if (logger.isInfoEnabled()) {\n-                    logger.info(\"Closing the rest server at \" + entry.getKey());\n-                }\n-                entry.getValue().close();\n-            } catch (Throwable t) {\n-                logger.warn(\"Error closing rest server\", t);\n-            }\n-        }\n-        serverMap.clear();\n-\n-        if (logger.isInfoEnabled()) {\n-            logger.info(\"Closing rest clients\");\n-        }\n-        for (ResteasyClient client : clients) {\n-            try {\n-                client.close();\n-            } catch (Throwable t) {\n-                logger.warn(\"Error closing rest client\", t);\n-            }\n-        }\n-        clients.clear();\n-    }\n-\n-    /**\n-     *  getPath() will return: [contextpath + \"/\" +] path\n-     *  1. contextpath is empty if user does not set through ProtocolConfig or ProviderConfig\n-     *  2. path will never be empty, it's default value is the interface name.\n-     *\n-     * @return return path only if user has explicitly gave then a value.\n-     */\n-    protected String getContextPath(URL url) {\n-        String contextPath = url.getPath();\n-        if (contextPath != null) {\n-            if (contextPath.equalsIgnoreCase(url.getParameter(INTERFACE_KEY))) {\n-                return \"\";\n-            }\n-            if (contextPath.endsWith(url.getParameter(INTERFACE_KEY))) {\n-                contextPath = contextPath.substring(0, contextPath.lastIndexOf(url.getParameter(INTERFACE_KEY)));\n-            }\n-            return contextPath.endsWith(\"/\") ? contextPath.substring(0, contextPath.length() - 1) : contextPath;\n-        } else {\n-            return \"\";\n-        }\n-    }\n-\n-    protected class ConnectionMonitor extends Thread {\n-        private volatile boolean shutdown;\n-        private final List<PoolingHttpClientConnectionManager> connectionManagers = Collections.synchronizedList(new LinkedList<>());\n-\n-        public void addConnectionManager(PoolingHttpClientConnectionManager connectionManager) {\n-            connectionManagers.add(connectionManager);\n-        }\n-\n-        @Override\n-        public void run() {\n-            try {\n-                while (!shutdown) {\n-                    synchronized (this) {\n-                        wait(HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS);\n-                        for (PoolingHttpClientConnectionManager connectionManager : connectionManagers) {\n-                            connectionManager.closeExpiredConnections();\n-                            connectionManager.closeIdleConnections(HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S, TimeUnit.SECONDS);\n-                        }\n-                    }\n-                }\n-            } catch (InterruptedException ex) {\n-                shutdown();\n-            }\n-        }\n-\n-        public void shutdown() {\n-            shutdown = true;\n-            connectionManagers.clear();\n-            synchronized (this) {\n-                notifyAll();\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.servlet.BootstrapListener;\r\n+import org.apache.dubbo.remoting.http.servlet.ServletManager;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import org.apache.http.HeaderElement;\r\n+import org.apache.http.HeaderElementIterator;\r\n+import org.apache.http.client.config.RequestConfig;\r\n+import org.apache.http.config.SocketConfig;\r\n+import org.apache.http.impl.client.CloseableHttpClient;\r\n+import org.apache.http.impl.client.HttpClientBuilder;\r\n+import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;\r\n+import org.apache.http.message.BasicHeaderElementIterator;\r\n+import org.apache.http.protocol.HTTP;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyClient;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyClientBuilder;\r\n+import org.jboss.resteasy.client.jaxrs.ResteasyWebTarget;\r\n+import org.jboss.resteasy.client.jaxrs.engines.ApacheHttpClient4Engine;\r\n+import org.jboss.resteasy.util.GetRestful;\r\n+\r\n+import javax.servlet.ServletContext;\r\n+import javax.ws.rs.ProcessingException;\r\n+import javax.ws.rs.WebApplicationException;\r\n+import java.util.Collections;\r\n+import java.util.LinkedList;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+import java.util.concurrent.TimeUnit;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.COMMA_SPLIT_PATTERN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECT_TIMEOUT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.DEFAULT_CONNECT_TIMEOUT;\r\n+import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.protocol.rest.Constants.EXTENSION_KEY;\r\n+\r\n+public class RestProtocol extends AbstractProxyProtocol {\r\n+\r\n+    private static final int DEFAULT_PORT = 80;\r\n+    private static final String DEFAULT_SERVER = \"jetty\";\r\n+\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE = 20;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL = 20;\r\n+    private static final int HTTPCLIENT_KEEPALIVEDURATION = 30 * 1000;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS = 1000;\r\n+    private static final int HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S = 30;\r\n+\r\n+    private final RestServerFactory serverFactory = new RestServerFactory();\r\n+\r\n+    // TODO in the future maybe we can just use a single rest client and connection manager\r\n+    private final List<ResteasyClient> clients = Collections.synchronizedList(new LinkedList<>());\r\n+\r\n+    private volatile ConnectionMonitor connectionMonitor;\r\n+\r\n+    public RestProtocol() {\r\n+        super(WebApplicationException.class, ProcessingException.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        serverFactory.setHttpBinder(httpBinder);\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\r\n+        String addr = getAddr(url);\r\n+        Class implClass = ApplicationModel.getProviderModel(url.getServiceKey()).getServiceInstance().getClass();\r\n+        RestProtocolServer server = (RestProtocolServer) serverMap.computeIfAbsent(addr, restServer -> {\r\n+            RestProtocolServer s = serverFactory.createServer(url.getParameter(SERVER_KEY, DEFAULT_SERVER));\r\n+            s.setAddress(url.getAddress());\r\n+            s.start(url);\r\n+            return s;\r\n+        });\r\n+\r\n+        String contextPath = getContextPath(url);\r\n+        if (\"servlet\".equalsIgnoreCase(url.getParameter(SERVER_KEY, DEFAULT_SERVER))) {\r\n+            ServletContext servletContext = ServletManager.getInstance().getServletContext(ServletManager.EXTERNAL_SERVER_PORT);\r\n+            if (servletContext == null) {\r\n+                throw new RpcException(\"No servlet context found. Since you are using server='servlet', \" +\r\n+                        \"make sure that you've configured \" + BootstrapListener.class.getName() + \" in web.xml\");\r\n+            }\r\n+            String webappPath = servletContext.getContextPath();\r\n+            if (StringUtils.isNotEmpty(webappPath)) {\r\n+                webappPath = webappPath.substring(1);\r\n+                if (!contextPath.startsWith(webappPath)) {\r\n+                    throw new RpcException(\"Since you are using server='servlet', \" +\r\n+                            \"make sure that the 'contextpath' property starts with the path of external webapp\");\r\n+                }\r\n+                contextPath = contextPath.substring(webappPath.length());\r\n+                if (contextPath.startsWith(\"/\")) {\r\n+                    contextPath = contextPath.substring(1);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        final Class resourceDef = GetRestful.getRootResourceClass(implClass) != null ? implClass : type;\r\n+\r\n+        server.deploy(resourceDef, impl, contextPath);\r\n+\r\n+        final RestProtocolServer s = server;\r\n+        return () -> {\r\n+            // TODO due to dubbo's current architecture,\r\n+            // it will be called from registry protocol in the shutdown process and won't appear in logs\r\n+            s.undeploy(resourceDef);\r\n+        };\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> T doRefer(Class<T> serviceType, URL url) throws RpcException {\r\n+\r\n+        // TODO more configs to add\r\n+        PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager();\r\n+        // 20 is the default maxTotal of current PoolingClientConnectionManager\r\n+        connectionManager.setMaxTotal(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXTOTAL));\r\n+        connectionManager.setDefaultMaxPerRoute(url.getParameter(CONNECTIONS_KEY, HTTPCLIENTCONNECTIONMANAGER_MAXPERROUTE));\r\n+\r\n+        if (connectionMonitor == null) {\r\n+            connectionMonitor = new ConnectionMonitor();\r\n+            connectionMonitor.start();\r\n+        }\r\n+        connectionMonitor.addConnectionManager(connectionManager);\r\n+        RequestConfig requestConfig = RequestConfig.custom()\r\n+                .setConnectTimeout(url.getParameter(CONNECT_TIMEOUT_KEY, DEFAULT_CONNECT_TIMEOUT))\r\n+                .setSocketTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT))\r\n+                .build();\r\n+\r\n+        SocketConfig socketConfig = SocketConfig.custom()\r\n+                .setSoKeepAlive(true)\r\n+                .setTcpNoDelay(true)\r\n+                .build();\r\n+\r\n+        CloseableHttpClient httpClient = HttpClientBuilder.create()\r\n+                .setConnectionManager(connectionManager)\r\n+                .setKeepAliveStrategy((response, context) -> {\r\n+                    HeaderElementIterator it = new BasicHeaderElementIterator(response.headerIterator(HTTP.CONN_KEEP_ALIVE));\r\n+                    while (it.hasNext()) {\r\n+                        HeaderElement he = it.nextElement();\r\n+                        String param = he.getName();\r\n+                        String value = he.getValue();\r\n+                        if (value != null && param.equalsIgnoreCase(TIMEOUT_KEY)) {\r\n+                            return Long.parseLong(value) * 1000;\r\n+                        }\r\n+                    }\r\n+                    return HTTPCLIENT_KEEPALIVEDURATION;\r\n+                })\r\n+                .setDefaultRequestConfig(requestConfig)\r\n+                .setDefaultSocketConfig(socketConfig)\r\n+                .build();\r\n+\r\n+        ApacheHttpClient4Engine engine = new ApacheHttpClient4Engine(httpClient/*, localContext*/);\r\n+\r\n+        ResteasyClient client = new ResteasyClientBuilder().httpEngine(engine).build();\r\n+        clients.add(client);\r\n+\r\n+        client.register(RpcContextFilter.class);\r\n+        for (String clazz : COMMA_SPLIT_PATTERN.split(url.getParameter(EXTENSION_KEY, \"\"))) {\r\n+            if (!StringUtils.isEmpty(clazz)) {\r\n+                try {\r\n+                    client.register(Thread.currentThread().getContextClassLoader().loadClass(clazz.trim()));\r\n+                } catch (ClassNotFoundException e) {\r\n+                    throw new RpcException(\"Error loading JAX-RS extension class: \" + clazz.trim(), e);\r\n+                }\r\n+            }\r\n+        }\r\n+\r\n+        // TODO protocol\r\n+        ResteasyWebTarget target = client.target(\"http://\" + url.getHost() + \":\" + url.getPort() + \"/\" + getContextPath(url));\r\n+        return target.proxy(serviceType);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected int getErrorCode(Throwable e) {\r\n+        // TODO\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+\r\n+        if (connectionMonitor != null) {\r\n+            connectionMonitor.shutdown();\r\n+        }\r\n+\r\n+        for (Map.Entry<String, ProtocolServer> entry : serverMap.entrySet()) {\r\n+            try {\r\n+                if (logger.isInfoEnabled()) {\r\n+                    logger.info(\"Closing the rest server at \" + entry.getKey());\r\n+                }\r\n+                entry.getValue().close();\r\n+            } catch (Throwable t) {\r\n+                logger.warn(\"Error closing rest server\", t);\r\n+            }\r\n+        }\r\n+        serverMap.clear();\r\n+\r\n+        if (logger.isInfoEnabled()) {\r\n+            logger.info(\"Closing rest clients\");\r\n+        }\r\n+        for (ResteasyClient client : clients) {\r\n+            try {\r\n+                client.close();\r\n+            } catch (Throwable t) {\r\n+                logger.warn(\"Error closing rest client\", t);\r\n+            }\r\n+        }\r\n+        clients.clear();\r\n+    }\r\n+\r\n+    /**\r\n+     *  getPath() will return: [contextpath + \"/\" +] path\r\n+     *  1. contextpath is empty if user does not set through ProtocolConfig or ProviderConfig\r\n+     *  2. path will never be empty, it's default value is the interface name.\r\n+     *\r\n+     * @return return path only if user has explicitly gave then a value.\r\n+     */\r\n+    protected String getContextPath(URL url) {\r\n+        String contextPath = url.getPath();\r\n+        if (contextPath != null) {\r\n+            if (contextPath.equalsIgnoreCase(url.getParameter(INTERFACE_KEY))) {\r\n+                return \"\";\r\n+            }\r\n+            if (contextPath.endsWith(url.getParameter(INTERFACE_KEY))) {\r\n+                contextPath = contextPath.substring(0, contextPath.lastIndexOf(url.getParameter(INTERFACE_KEY)));\r\n+            }\r\n+            return contextPath.endsWith(\"/\") ? contextPath.substring(0, contextPath.length() - 1) : contextPath;\r\n+        } else {\r\n+            return \"\";\r\n+        }\r\n+    }\r\n+\r\n+    protected class ConnectionMonitor extends Thread {\r\n+        private volatile boolean shutdown;\r\n+        private final List<PoolingHttpClientConnectionManager> connectionManagers = Collections.synchronizedList(new LinkedList<>());\r\n+\r\n+        public void addConnectionManager(PoolingHttpClientConnectionManager connectionManager) {\r\n+            connectionManagers.add(connectionManager);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void run() {\r\n+            try {\r\n+                while (!shutdown) {\r\n+                    synchronized (this) {\r\n+                        wait(HTTPCLIENTCONNECTIONMANAGER_CLOSEWAITTIME_MS);\r\n+                        for (PoolingHttpClientConnectionManager connectionManager : connectionManagers) {\r\n+                            connectionManager.closeExpiredConnections();\r\n+                            connectionManager.closeIdleConnections(HTTPCLIENTCONNECTIONMANAGER_CLOSEIDLETIME_S, TimeUnit.SECONDS);\r\n+                        }\r\n+                    }\r\n+                }\r\n+            } catch (InterruptedException ex) {\r\n+                shutdown();\r\n+            }\r\n+        }\r\n+\r\n+        public void shutdown() {\r\n+            shutdown = true;\r\n+            connectionManagers.clear();\r\n+            synchronized (this) {\r\n+                notifyAll();\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestProtocolServer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-\n-public interface RestProtocolServer extends ProtocolServer {\n-\n-    void start(URL url);\n-\n-    /**\n-     * @param resourceDef it could be either resource interface or resource impl\n-     */\n-    void deploy(Class resourceDef, Object resourceInstance, String contextPath);\n-\n-    void undeploy(Class resourceDef);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+\r\n+public interface RestProtocolServer extends ProtocolServer {\r\n+\r\n+    void start(URL url);\r\n+\r\n+    /**\r\n+     * @param resourceDef it could be either resource interface or resource impl\r\n+     */\r\n+    void deploy(Class resourceDef, Object resourceInstance, String contextPath);\r\n+\r\n+    void undeploy(Class resourceDef);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RestServerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,44 +1,44 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-\n-/**\n- * Only the server that implements servlet container\n- * could support something like @Context injection of servlet objects.\n- *\n- */\n-public class RestServerFactory {\n-\n-    private HttpBinder httpBinder;\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    public RestProtocolServer createServer(String name) {\n-        // TODO move names to Constants\n-        if (\"servlet\".equalsIgnoreCase(name) || \"jetty\".equalsIgnoreCase(name) || \"tomcat\".equalsIgnoreCase(name)) {\n-            return new DubboHttpProtocolServer(httpBinder);\n-        } else if (\"netty\".equalsIgnoreCase(name)) {\n-            return new NettyRestProtocolServer();\n-        } else {\n-            throw new IllegalArgumentException(\"Unrecognized server name: \" + name);\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+\r\n+/**\r\n+ * Only the server that implements servlet container\r\n+ * could support something like @Context injection of servlet objects.\r\n+ *\r\n+ */\r\n+public class RestServerFactory {\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    public RestProtocolServer createServer(String name) {\r\n+        // TODO move names to Constants\r\n+        if (\"servlet\".equalsIgnoreCase(name) || \"jetty\".equalsIgnoreCase(name) || \"tomcat\".equalsIgnoreCase(name)) {\r\n+            return new DubboHttpProtocolServer(httpBinder);\r\n+        } else if (\"netty\".equalsIgnoreCase(name)) {\r\n+            return new NettyRestProtocolServer();\r\n+        } else {\r\n+            throw new IllegalArgumentException(\"Unrecognized server name: \" + name);\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java", "source2": "org/apache/dubbo/rpc/protocol/rest/RpcContextFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,106 +1,106 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import org.jboss.resteasy.spi.ResteasyProviderFactory;\n-\n-import javax.annotation.Priority;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import javax.ws.rs.client.ClientRequestContext;\n-import javax.ws.rs.client.ClientRequestFilter;\n-import javax.ws.rs.container.ContainerRequestContext;\n-import javax.ws.rs.container.ContainerRequestFilter;\n-import java.io.IOException;\n-import java.nio.charset.StandardCharsets;\n-import java.util.Map;\n-\n-@Priority(Integer.MIN_VALUE + 1)\n-public class RpcContextFilter implements ContainerRequestFilter, ClientRequestFilter {\n-\n-    private static final String DUBBO_ATTACHMENT_HEADER = \"Dubbo-Attachments\";\n-\n-    // currently we use a single header to hold the attachments so that the total attachment size limit is about 8k\n-    private static final int MAX_HEADER_SIZE = 8 * 1024;\n-\n-    @Override\n-    public void filter(ContainerRequestContext requestContext) throws IOException {\n-        HttpServletRequest request = ResteasyProviderFactory.getContextData(HttpServletRequest.class);\n-        RpcContext.getContext().setRequest(request);\n-\n-        // this only works for servlet containers\n-        if (request != null && RpcContext.getContext().getRemoteAddress() == null) {\n-            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-        }\n-\n-        RpcContext.getContext().setResponse(ResteasyProviderFactory.getContextData(HttpServletResponse.class));\n-\n-        String headers = requestContext.getHeaderString(DUBBO_ATTACHMENT_HEADER);\n-        if (headers != null) {\n-            for (String header : headers.split(\",\")) {\n-                int index = header.indexOf(\"=\");\n-                if (index > 0) {\n-                    String key = header.substring(0, index);\n-                    String value = header.substring(index + 1);\n-                    if (!StringUtils.isEmpty(key)) {\n-                        RpcContext.getContext().setAttachment(key.trim(), value.trim());\n-                    }\n-                }\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public void filter(ClientRequestContext requestContext) throws IOException {\n-        int size = 0;\n-        for (Map.Entry<String, Object> entry : RpcContext.getContext().getObjectAttachments().entrySet()) {\n-            String key = entry.getKey();\n-            String value = (String) entry.getValue();\n-            if (illegalHttpHeaderKey(key) || illegalHttpHeaderValue(value)) {\n-                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" must not contain ',' or '=' when using rest protocol\");\n-            }\n-\n-            // TODO for now we don't consider the differences of encoding and server limit\n-            if (value != null) {\n-                size += value.getBytes(StandardCharsets.UTF_8).length;\n-            }\n-            if (size > MAX_HEADER_SIZE) {\n-                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" is too big\");\n-            }\n-\n-            String attachments = key + \"=\" + value;\n-            requestContext.getHeaders().add(DUBBO_ATTACHMENT_HEADER, attachments);\n-        }\n-    }\n-\n-    private boolean illegalHttpHeaderKey(String key) {\n-        if (StringUtils.isNotEmpty(key)) {\n-            return key.contains(\",\") || key.contains(\"=\");\n-        }\n-        return false;\n-    }\n-\n-    private boolean illegalHttpHeaderValue(String value) {\n-        if (StringUtils.isNotEmpty(value)) {\n-            return value.contains(\",\");\n-        }\n-        return false;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import org.jboss.resteasy.spi.ResteasyProviderFactory;\r\n+\r\n+import javax.annotation.Priority;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import javax.ws.rs.client.ClientRequestContext;\r\n+import javax.ws.rs.client.ClientRequestFilter;\r\n+import javax.ws.rs.container.ContainerRequestContext;\r\n+import javax.ws.rs.container.ContainerRequestFilter;\r\n+import java.io.IOException;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.Map;\r\n+\r\n+@Priority(Integer.MIN_VALUE + 1)\r\n+public class RpcContextFilter implements ContainerRequestFilter, ClientRequestFilter {\r\n+\r\n+    private static final String DUBBO_ATTACHMENT_HEADER = \"Dubbo-Attachments\";\r\n+\r\n+    // currently we use a single header to hold the attachments so that the total attachment size limit is about 8k\r\n+    private static final int MAX_HEADER_SIZE = 8 * 1024;\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext requestContext) throws IOException {\r\n+        HttpServletRequest request = ResteasyProviderFactory.getContextData(HttpServletRequest.class);\r\n+        RpcContext.getContext().setRequest(request);\r\n+\r\n+        // this only works for servlet containers\r\n+        if (request != null && RpcContext.getContext().getRemoteAddress() == null) {\r\n+            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+        }\r\n+\r\n+        RpcContext.getContext().setResponse(ResteasyProviderFactory.getContextData(HttpServletResponse.class));\r\n+\r\n+        String headers = requestContext.getHeaderString(DUBBO_ATTACHMENT_HEADER);\r\n+        if (headers != null) {\r\n+            for (String header : headers.split(\",\")) {\r\n+                int index = header.indexOf(\"=\");\r\n+                if (index > 0) {\r\n+                    String key = header.substring(0, index);\r\n+                    String value = header.substring(index + 1);\r\n+                    if (!StringUtils.isEmpty(key)) {\r\n+                        RpcContext.getContext().setAttachment(key.trim(), value.trim());\r\n+                    }\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext requestContext) throws IOException {\r\n+        int size = 0;\r\n+        for (Map.Entry<String, Object> entry : RpcContext.getContext().getObjectAttachments().entrySet()) {\r\n+            String key = entry.getKey();\r\n+            String value = (String) entry.getValue();\r\n+            if (illegalHttpHeaderKey(key) || illegalHttpHeaderValue(value)) {\r\n+                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" must not contain ',' or '=' when using rest protocol\");\r\n+            }\r\n+\r\n+            // TODO for now we don't consider the differences of encoding and server limit\r\n+            if (value != null) {\r\n+                size += value.getBytes(StandardCharsets.UTF_8).length;\r\n+            }\r\n+            if (size > MAX_HEADER_SIZE) {\r\n+                throw new IllegalArgumentException(\"The attachments of \" + RpcContext.class.getSimpleName() + \" is too big\");\r\n+            }\r\n+\r\n+            String attachments = key + \"=\" + value;\r\n+            requestContext.getHeaders().add(DUBBO_ATTACHMENT_HEADER, attachments);\r\n+        }\r\n+    }\r\n+\r\n+    private boolean illegalHttpHeaderKey(String key) {\r\n+        if (StringUtils.isNotEmpty(key)) {\r\n+            return key.contains(\",\") || key.contains(\"=\");\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private boolean illegalHttpHeaderValue(String value) {\r\n+        if (StringUtils.isNotEmpty(value)) {\r\n+            return value.contains(\",\");\r\n+        }\r\n+        return false;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java", "source2": "org/apache/dubbo/rpc/protocol/rest/integration/swagger/DubboSwaggerService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest.integration.swagger;\n-\n-import com.fasterxml.jackson.core.JsonProcessingException;\n-\n-import javax.servlet.ServletConfig;\n-import javax.ws.rs.Consumes;\n-import javax.ws.rs.GET;\n-import javax.ws.rs.Path;\n-import javax.ws.rs.Produces;\n-import javax.ws.rs.core.Application;\n-import javax.ws.rs.core.Context;\n-import javax.ws.rs.core.HttpHeaders;\n-import javax.ws.rs.core.MediaType;\n-import javax.ws.rs.core.Response;\n-import javax.ws.rs.core.UriInfo;\n-\n-\n-@Path(\"dubbo\")\n-@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})\n-@Produces({MediaType.APPLICATION_JSON + \"; \" + \"charset=UTF-8\", MediaType.TEXT_XML + \"; \" + \"charset=UTF-8\"})\n-public interface DubboSwaggerService {\n-\n-    @GET\n-    @Path(\"swagger\")\n-    Response getListingJson(@Context Application app, @Context ServletConfig sc,\n-                            @Context HttpHeaders headers, @Context UriInfo uriInfo) throws JsonProcessingException;\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest.integration.swagger;\r\n+\r\n+import com.fasterxml.jackson.core.JsonProcessingException;\r\n+\r\n+import javax.servlet.ServletConfig;\r\n+import javax.ws.rs.Consumes;\r\n+import javax.ws.rs.GET;\r\n+import javax.ws.rs.Path;\r\n+import javax.ws.rs.Produces;\r\n+import javax.ws.rs.core.Application;\r\n+import javax.ws.rs.core.Context;\r\n+import javax.ws.rs.core.HttpHeaders;\r\n+import javax.ws.rs.core.MediaType;\r\n+import javax.ws.rs.core.Response;\r\n+import javax.ws.rs.core.UriInfo;\r\n+\r\n+\r\n+@Path(\"dubbo\")\r\n+@Consumes({MediaType.APPLICATION_JSON, MediaType.TEXT_XML})\r\n+@Produces({MediaType.APPLICATION_JSON + \"; \" + \"charset=UTF-8\", MediaType.TEXT_XML + \"; \" + \"charset=UTF-8\"})\r\n+public interface DubboSwaggerService {\r\n+\r\n+    @GET\r\n+    @Path(\"swagger\")\r\n+    Response getListingJson(@Context Application app, @Context ServletConfig sc,\r\n+                            @Context HttpHeaders headers, @Context UriInfo uriInfo) throws JsonProcessingException;\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java", "source2": "org/apache/dubbo/rpc/protocol/rest/support/LoggingFilter.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,148 +1,148 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rest.support;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-\n-import org.apache.commons.io.IOUtils;\n-\n-import javax.annotation.Priority;\n-import javax.ws.rs.WebApplicationException;\n-import javax.ws.rs.client.ClientRequestContext;\n-import javax.ws.rs.client.ClientRequestFilter;\n-import javax.ws.rs.client.ClientResponseContext;\n-import javax.ws.rs.client.ClientResponseFilter;\n-import javax.ws.rs.container.ContainerRequestContext;\n-import javax.ws.rs.container.ContainerRequestFilter;\n-import javax.ws.rs.container.ContainerResponseContext;\n-import javax.ws.rs.container.ContainerResponseFilter;\n-import javax.ws.rs.core.MultivaluedMap;\n-import javax.ws.rs.ext.ReaderInterceptor;\n-import javax.ws.rs.ext.ReaderInterceptorContext;\n-import javax.ws.rs.ext.WriterInterceptor;\n-import javax.ws.rs.ext.WriterInterceptorContext;\n-import java.io.ByteArrayInputStream;\n-import java.io.ByteArrayOutputStream;\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.nio.charset.StandardCharsets;\n-import java.util.List;\n-import java.util.Map;\n-\n-/**\n- * This logging filter is not highly optimized for now\n- *\n- */\n-@Priority(Integer.MIN_VALUE)\n-public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter, ClientResponseFilter, WriterInterceptor, ReaderInterceptor {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);\n-\n-    @Override\n-    public void filter(ClientRequestContext context) throws IOException {\n-        logHttpHeaders(context.getStringHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {\n-        logHttpHeaders(responseContext.getHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ContainerRequestContext context) throws IOException {\n-        logHttpHeaders(context.getHeaders());\n-    }\n-\n-    @Override\n-    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {\n-        logHttpHeaders(responseContext.getStringHeaders());\n-    }\n-\n-    @Override\n-    public Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException {\n-        byte[] buffer = IOUtils.toByteArray(context.getInputStream());\n-        logger.info(\"The contents of request body is: \\n\" + new String(buffer, StandardCharsets.UTF_8) + \"\\n\");\n-        context.setInputStream(new ByteArrayInputStream(buffer));\n-        return context.proceed();\n-    }\n-\n-    @Override\n-    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {\n-        OutputStreamWrapper wrapper = new OutputStreamWrapper(context.getOutputStream());\n-        context.setOutputStream(wrapper);\n-        context.proceed();\n-        logger.info(\"The contents of response body is: \\n\" + new String(wrapper.getBytes(), StandardCharsets.UTF_8) + \"\\n\");\n-    }\n-\n-    protected void logHttpHeaders(MultivaluedMap<String, String> headers) {\n-        StringBuilder msg = new StringBuilder(\"The HTTP headers are: \\n\");\n-        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {\n-            msg.append(entry.getKey()).append(\": \");\n-            for (int i = 0; i < entry.getValue().size(); i++) {\n-                msg.append(entry.getValue().get(i));\n-                if (i < entry.getValue().size() - 1) {\n-                    msg.append(\", \");\n-                }\n-            }\n-            msg.append(\"\\n\");\n-        }\n-        logger.info(msg.toString());\n-    }\n-\n-    protected static class OutputStreamWrapper extends OutputStream {\n-\n-        private final ByteArrayOutputStream buffer = new ByteArrayOutputStream();\n-        private final OutputStream output;\n-\n-        private OutputStreamWrapper(OutputStream output) {\n-            this.output = output;\n-        }\n-\n-        @Override\n-        public void write(int i) throws IOException {\n-            buffer.write(i);\n-            output.write(i);\n-        }\n-\n-        @Override\n-        public void write(byte[] b) throws IOException {\n-            buffer.write(b);\n-            output.write(b);\n-        }\n-\n-        @Override\n-        public void write(byte[] b, int off, int len) throws IOException {\n-            buffer.write(b, off, len);\n-            output.write(b, off, len);\n-        }\n-\n-        @Override\n-        public void flush() throws IOException {\n-            output.flush();\n-        }\n-\n-        @Override\n-        public void close() throws IOException {\n-            output.close();\n-        }\n-\n-        public byte[] getBytes() {\n-            return buffer.toByteArray();\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rest.support;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+\r\n+import org.apache.commons.io.IOUtils;\r\n+\r\n+import javax.annotation.Priority;\r\n+import javax.ws.rs.WebApplicationException;\r\n+import javax.ws.rs.client.ClientRequestContext;\r\n+import javax.ws.rs.client.ClientRequestFilter;\r\n+import javax.ws.rs.client.ClientResponseContext;\r\n+import javax.ws.rs.client.ClientResponseFilter;\r\n+import javax.ws.rs.container.ContainerRequestContext;\r\n+import javax.ws.rs.container.ContainerRequestFilter;\r\n+import javax.ws.rs.container.ContainerResponseContext;\r\n+import javax.ws.rs.container.ContainerResponseFilter;\r\n+import javax.ws.rs.core.MultivaluedMap;\r\n+import javax.ws.rs.ext.ReaderInterceptor;\r\n+import javax.ws.rs.ext.ReaderInterceptorContext;\r\n+import javax.ws.rs.ext.WriterInterceptor;\r\n+import javax.ws.rs.ext.WriterInterceptorContext;\r\n+import java.io.ByteArrayInputStream;\r\n+import java.io.ByteArrayOutputStream;\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.nio.charset.StandardCharsets;\r\n+import java.util.List;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * This logging filter is not highly optimized for now\r\n+ *\r\n+ */\r\n+@Priority(Integer.MIN_VALUE)\r\n+public class LoggingFilter implements ContainerRequestFilter, ClientRequestFilter, ContainerResponseFilter, ClientResponseFilter, WriterInterceptor, ReaderInterceptor {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(LoggingFilter.class);\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext context) throws IOException {\r\n+        logHttpHeaders(context.getStringHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ClientRequestContext requestContext, ClientResponseContext responseContext) throws IOException {\r\n+        logHttpHeaders(responseContext.getHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext context) throws IOException {\r\n+        logHttpHeaders(context.getHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public void filter(ContainerRequestContext requestContext, ContainerResponseContext responseContext) throws IOException {\r\n+        logHttpHeaders(responseContext.getStringHeaders());\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object aroundReadFrom(ReaderInterceptorContext context) throws IOException, WebApplicationException {\r\n+        byte[] buffer = IOUtils.toByteArray(context.getInputStream());\r\n+        logger.info(\"The contents of request body is: \\n\" + new String(buffer, StandardCharsets.UTF_8) + \"\\n\");\r\n+        context.setInputStream(new ByteArrayInputStream(buffer));\r\n+        return context.proceed();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void aroundWriteTo(WriterInterceptorContext context) throws IOException, WebApplicationException {\r\n+        OutputStreamWrapper wrapper = new OutputStreamWrapper(context.getOutputStream());\r\n+        context.setOutputStream(wrapper);\r\n+        context.proceed();\r\n+        logger.info(\"The contents of response body is: \\n\" + new String(wrapper.getBytes(), StandardCharsets.UTF_8) + \"\\n\");\r\n+    }\r\n+\r\n+    protected void logHttpHeaders(MultivaluedMap<String, String> headers) {\r\n+        StringBuilder msg = new StringBuilder(\"The HTTP headers are: \\n\");\r\n+        for (Map.Entry<String, List<String>> entry : headers.entrySet()) {\r\n+            msg.append(entry.getKey()).append(\": \");\r\n+            for (int i = 0; i < entry.getValue().size(); i++) {\r\n+                msg.append(entry.getValue().get(i));\r\n+                if (i < entry.getValue().size() - 1) {\r\n+                    msg.append(\", \");\r\n+                }\r\n+            }\r\n+            msg.append(\"\\n\");\r\n+        }\r\n+        logger.info(msg.toString());\r\n+    }\r\n+\r\n+    protected static class OutputStreamWrapper extends OutputStream {\r\n+\r\n+        private final ByteArrayOutputStream buffer = new ByteArrayOutputStream();\r\n+        private final OutputStream output;\r\n+\r\n+        private OutputStreamWrapper(OutputStream output) {\r\n+            this.output = output;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(int i) throws IOException {\r\n+            buffer.write(i);\r\n+            output.write(i);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(byte[] b) throws IOException {\r\n+            buffer.write(b);\r\n+            output.write(b);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void write(byte[] b, int off, int len) throws IOException {\r\n+            buffer.write(b, off, len);\r\n+            output.write(b, off, len);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void flush() throws IOException {\r\n+            output.flush();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void close() throws IOException {\r\n+            output.close();\r\n+        }\r\n+\r\n+        public byte[] getBytes() {\r\n+            return buffer.toByteArray();\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java", "source2": "org/apache/dubbo/rpc/protocol/rmi/RmiRemoteInvocation.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,64 +1,64 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.rmi;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.springframework.remoting.support.RemoteInvocation;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\n-\n-public class RmiRemoteInvocation extends RemoteInvocation {\n-    private static final long serialVersionUID = 1L;\n-    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\n-\n-    /**\n-     * executed on consumer side\n-     */\n-    public RmiRemoteInvocation(MethodInvocation methodInvocation) {\n-        super(methodInvocation);\n-        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getObjectAttachments()));\n-    }\n-\n-    /**\n-     * Need to restore context on provider side (Though context will be overridden by Invocation's attachment\n-     * when ContextFilter gets executed, we will restore the attachment when Invocation is constructed, check more\n-     * from {@link org.apache.dubbo.rpc.proxy.InvokerInvocationHandler}\n-     */\n-    @SuppressWarnings(\"unchecked\")\n-    @Override\n-    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\n-            InvocationTargetException {\n-        RpcContext context = RpcContext.getContext();\n-        context.setObjectAttachments((Map<String, Object>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\n-        String generic = (String) getAttribute(GENERIC_KEY);\n-        if (StringUtils.isNotEmpty(generic)) {\n-            context.setAttachment(GENERIC_KEY, generic);\n-        }\n-        try {\n-            return super.invoke(targetObject);\n-        } finally {\n-            context.setObjectAttachments(null);\n-        }\n-    }\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.rmi;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.springframework.remoting.support.RemoteInvocation;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+import static org.apache.dubbo.rpc.Constants.GENERIC_KEY;\r\n+\r\n+public class RmiRemoteInvocation extends RemoteInvocation {\r\n+    private static final long serialVersionUID = 1L;\r\n+    private static final String DUBBO_ATTACHMENTS_ATTR_NAME = \"dubbo.attachments\";\r\n+\r\n+    /**\r\n+     * executed on consumer side\r\n+     */\r\n+    public RmiRemoteInvocation(MethodInvocation methodInvocation) {\r\n+        super(methodInvocation);\r\n+        addAttribute(DUBBO_ATTACHMENTS_ATTR_NAME, new HashMap<>(RpcContext.getContext().getObjectAttachments()));\r\n+    }\r\n+\r\n+    /**\r\n+     * Need to restore context on provider side (Though context will be overridden by Invocation's attachment\r\n+     * when ContextFilter gets executed, we will restore the attachment when Invocation is constructed, check more\r\n+     * from {@link org.apache.dubbo.rpc.proxy.InvokerInvocationHandler}\r\n+     */\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    @Override\r\n+    public Object invoke(Object targetObject) throws NoSuchMethodException, IllegalAccessException,\r\n+            InvocationTargetException {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        context.setObjectAttachments((Map<String, Object>) getAttribute(DUBBO_ATTACHMENTS_ATTR_NAME));\r\n+        String generic = (String) getAttribute(GENERIC_KEY);\r\n+        if (StringUtils.isNotEmpty(generic)) {\r\n+            context.setAttachment(GENERIC_KEY, generic);\r\n+        }\r\n+        try {\r\n+            return super.invoke(targetObject);\r\n+        } finally {\r\n+            context.setObjectAttachments(null);\r\n+        }\r\n+    }\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ClassNameGenerator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,31 +1,31 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import org.apache.dubbo.common.extension.SPI;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-@SPI(DubboClassNameGenerator.NAME)\n-public interface ClassNameGenerator {\n-\n-    String generateArgsClassName(String serviceName, String methodName);\n-\n-    String generateResultClassName(String serviceName, String methodName);\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import org.apache.dubbo.common.extension.SPI;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+@SPI(DubboClassNameGenerator.NAME)\r\n+public interface ClassNameGenerator {\r\n+\r\n+    String generateArgsClassName(String serviceName, String methodName);\r\n+\r\n+    String generateResultClassName(String serviceName, String methodName);\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/DubboClassNameGenerator.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/DubboClassNameGenerator.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,36 +1,36 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class DubboClassNameGenerator implements ClassNameGenerator {\n-\n-    public static final String NAME = \"dubbo\";\n-\n-    @Override\n-    public String generateArgsClassName(String serviceName, String methodName) {\n-        return ThriftUtils.generateMethodArgsClassName(serviceName, methodName);\n-    }\n-\n-    @Override\n-    public String generateResultClassName(String serviceName, String methodName) {\n-        return ThriftUtils.generateMethodResultClassName(serviceName, methodName);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class DubboClassNameGenerator implements ClassNameGenerator {\r\n+\r\n+    public static final String NAME = \"dubbo\";\r\n+\r\n+    @Override\r\n+    public String generateArgsClassName(String serviceName, String methodName) {\r\n+        return ThriftUtils.generateMethodArgsClassName(serviceName, methodName);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String generateResultClassName(String serviceName, String methodName) {\r\n+        return ThriftUtils.generateMethodResultClassName(serviceName, methodName);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftCodec.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,698 +1,698 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.ClassUtils;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBufferInputStream;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream;\n-\n-import org.apache.thrift.TApplicationException;\n-import org.apache.thrift.TBase;\n-import org.apache.thrift.TException;\n-import org.apache.thrift.TFieldIdEnum;\n-import org.apache.thrift.protocol.TBinaryProtocol;\n-import org.apache.thrift.protocol.TMessage;\n-import org.apache.thrift.protocol.TMessageType;\n-import org.apache.thrift.protocol.TProtocol;\n-import org.apache.thrift.transport.TFramedTransport;\n-import org.apache.thrift.transport.TIOStreamTransport;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Field;\n-import java.lang.reflect.InvocationTargetException;\n-import java.lang.reflect.Method;\n-import java.util.ArrayList;\n-import java.util.List;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-import java.util.concurrent.atomic.AtomicInteger;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-\n-/**\n- * Thrift framed protocol codec.\n- *\n- * <pre>\n- * |<-                                  message header                                  ->|<- message body ->|\n- * +----------------+----------------------+------------------+---------------------------+------------------+\n- * | magic (2 bytes)|message size (4 bytes)|head size(2 bytes)| version (1 byte) | header |   message body   |\n- * +----------------+----------------------+------------------+---------------------------+------------------+\n- * |<-                                               message size                                          ->|\n- * </pre>\n- *\n- * <p>\n- * <b>header fields in version 1</b>\n- * <ol>\n- * <li>string - service name</li>\n- * <li>long   - dubbo request id</li>\n- * </ol>\n- * </p>\n- */\n-\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class ThriftCodec implements Codec2 {\n-\n-    public static final int MESSAGE_LENGTH_INDEX = 2;\n-    public static final int MESSAGE_HEADER_LENGTH_INDEX = 6;\n-    public static final int MESSAGE_SHORTEST_LENGTH = 10;\n-    public static final String NAME = \"thrift\";\n-    public static final String PARAMETER_CLASS_NAME_GENERATOR = \"class.name.generator\";\n-    public static final byte VERSION = (byte) 1;\n-    public static final short MAGIC = (short) 0xdabc;\n-    static final ConcurrentMap<Long, RequestData> CACHED_REQUEST =\n-            new ConcurrentHashMap<>();\n-    private static final AtomicInteger THRIFT_SEQ_ID = new AtomicInteger(0);\n-    private static final ConcurrentMap<String, Class<?>> CACHED_CLASS =\n-            new ConcurrentHashMap<>();\n-\n-    private static int nextSeqId() {\n-        return THRIFT_SEQ_ID.incrementAndGet();\n-    }\n-\n-    // just for test\n-    static int getSeqId() {\n-        return THRIFT_SEQ_ID.get();\n-    }\n-\n-    @Override\n-    public void encode(Channel channel, ChannelBuffer buffer, Object message)\n-            throws IOException {\n-\n-        if (message instanceof Request) {\n-            encodeRequest(channel, buffer, (Request) message);\n-        } else if (message instanceof Response) {\n-            encodeResponse(channel, buffer, (Response) message);\n-        } else {\n-            throw new UnsupportedOperationException(\"Thrift codec only support encode \"\n-                    + Request.class.getName() + \" and \" + Response.class.getName());\n-        }\n-\n-    }\n-\n-    @Override\n-    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\n-\n-        int available = buffer.readableBytes();\n-\n-        if (available < MESSAGE_SHORTEST_LENGTH) {\n-\n-            return DecodeResult.NEED_MORE_INPUT;\n-\n-        } else {\n-\n-            TIOStreamTransport transport = new TIOStreamTransport(new ChannelBufferInputStream(buffer));\n-\n-            TBinaryProtocol protocol = new TBinaryProtocol(transport);\n-\n-            short magic;\n-            int messageLength;\n-\n-            try {\n-//                protocol.readI32(); // skip the first message length\n-                byte[] bytes = new byte[4];\n-                transport.read(bytes, 0, 4);\n-                magic = protocol.readI16();\n-                messageLength = protocol.readI32();\n-\n-            } catch (TException e) {\n-                throw new IOException(e.getMessage(), e);\n-            }\n-\n-            if (MAGIC != magic) {\n-                throw new IOException(\"Unknown magic code \" + magic);\n-            }\n-\n-            if (available < messageLength) {\n-                return DecodeResult.NEED_MORE_INPUT;\n-            }\n-\n-            return decode(protocol);\n-\n-        }\n-\n-    }\n-\n-    private Object decode(TProtocol protocol)\n-            throws IOException {\n-\n-        // version\n-        String serviceName;\n-        String path;\n-        long id;\n-\n-        TMessage message;\n-\n-        try {\n-            protocol.readI16();\n-            protocol.readByte();\n-            serviceName = protocol.readString();\n-            path = protocol.readString();\n-            id = protocol.readI64();\n-            message = protocol.readMessageBegin();\n-        } catch (TException e) {\n-            throw new IOException(e.getMessage(), e);\n-        }\n-\n-        if (message.type == TMessageType.CALL) {\n-\n-            RpcInvocation result = new RpcInvocation();\n-            result.setAttachment(INTERFACE_KEY, serviceName);\n-            result.setAttachment(PATH_KEY, path);\n-            result.setMethodName(message.name);\n-\n-            String argsClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\n-                    .getExtension(ThriftClassNameGenerator.NAME).generateArgsClassName(serviceName, message.name);\n-\n-            if (StringUtils.isEmpty(argsClassName)) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\n-                        \"The specified interface name incorrect.\");\n-            }\n-\n-            Class clazz = CACHED_CLASS.get(argsClassName);\n-\n-            if (clazz == null) {\n-                try {\n-\n-                    clazz = ClassUtils.forNameWithThreadContextClassLoader(argsClassName);\n-\n-                    CACHED_CLASS.putIfAbsent(argsClassName, clazz);\n-\n-                } catch (ClassNotFoundException e) {\n-                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-            }\n-\n-            TBase args;\n-\n-            try {\n-                args = (TBase) clazz.newInstance();\n-            } catch (InstantiationException | IllegalAccessException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-            try {\n-                args.read(protocol);\n-                protocol.readMessageEnd();\n-            } catch (TException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-            List<Object> parameters = new ArrayList<>();\n-            List<Class<?>> parameterTypes = new ArrayList<>();\n-            int index = 1;\n-\n-            while (true) {\n-\n-                TFieldIdEnum fieldIdEnum = args.fieldForId(index++);\n-\n-                if (fieldIdEnum == null) {\n-                    break;\n-                }\n-\n-                String fieldName = fieldIdEnum.getFieldName();\n-\n-                String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\n-\n-                Method getMethod;\n-\n-                try {\n-                    getMethod = clazz.getMethod(getMethodName);\n-                } catch (NoSuchMethodException e) {\n-                    throw new RpcException(\n-                            RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-\n-                parameterTypes.add(getMethod.getReturnType());\n-                try {\n-                    parameters.add(getMethod.invoke(args));\n-                } catch (IllegalAccessException | InvocationTargetException e) {\n-                    throw new RpcException(\n-                            RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-\n-            }\n-\n-            result.setArguments(parameters.toArray());\n-            result.setParameterTypes(parameterTypes.toArray(new Class[0]));\n-\n-            Request request = new Request(id);\n-            request.setData(result);\n-\n-            CACHED_REQUEST.putIfAbsent(id,\n-                    RequestData.create(message.seqid, serviceName, message.name));\n-\n-            return request;\n-\n-        } else if (message.type == TMessageType.EXCEPTION) {\n-\n-            TApplicationException exception;\n-\n-            try {\n-                exception = TApplicationException.readFrom(protocol);\n-                protocol.readMessageEnd();\n-            } catch (TException e) {\n-                throw new IOException(e.getMessage(), e);\n-            }\n-\n-            AppResponse result = new AppResponse();\n-\n-            result.setException(new RpcException(exception.getMessage()));\n-\n-            Response response = new Response();\n-\n-            response.setResult(result);\n-\n-            response.setId(id);\n-\n-            return response;\n-\n-        } else if (message.type == TMessageType.REPLY) {\n-\n-            String resultClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\n-                    .getExtension(ThriftClassNameGenerator.NAME).generateResultClassName(serviceName, message.name);\n-\n-            if (StringUtils.isEmpty(resultClassName)) {\n-                throw new IllegalArgumentException(\"Could not infer service result class name from service name \"\n-                        + serviceName + \", the service name you specified may not generated by thrift idl compiler\");\n-            }\n-\n-            Class<?> clazz = CACHED_CLASS.get(resultClassName);\n-\n-            if (clazz == null) {\n-\n-                try {\n-\n-                    clazz = ClassUtils.forNameWithThreadContextClassLoader(resultClassName);\n-\n-                    CACHED_CLASS.putIfAbsent(resultClassName, clazz);\n-\n-                } catch (ClassNotFoundException e) {\n-                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-\n-            }\n-\n-            TBase<?, ? extends TFieldIdEnum> result;\n-            try {\n-                result = (TBase<?, ?>) clazz.newInstance();\n-            } catch (InstantiationException | IllegalAccessException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-            try {\n-                result.read(protocol);\n-                protocol.readMessageEnd();\n-            } catch (TException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-            Object realResult = null;\n-\n-            int index = 0;\n-\n-            while (true) {\n-\n-                TFieldIdEnum fieldIdEnum = result.fieldForId(index++);\n-\n-                if (fieldIdEnum == null) {\n-                    break;\n-                }\n-\n-                Field field;\n-\n-                try {\n-                    field = clazz.getDeclaredField(fieldIdEnum.getFieldName());\n-                    ReflectUtils.makeAccessible(field);\n-                } catch (NoSuchFieldException e) {\n-                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-\n-                try {\n-                    realResult = field.get(result);\n-                } catch (IllegalAccessException e) {\n-                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-\n-                if (realResult != null) {\n-                    break;\n-                }\n-\n-            }\n-\n-            Response response = new Response();\n-\n-            response.setId(id);\n-\n-            AppResponse appResponse = new AppResponse();\n-\n-            if (realResult instanceof Throwable) {\n-                appResponse.setException((Throwable) realResult);\n-            } else {\n-                appResponse.setValue(realResult);\n-            }\n-\n-            response.setResult(appResponse);\n-\n-            return response;\n-\n-        } else {\n-            // Impossible\n-            throw new IOException();\n-        }\n-\n-    }\n-\n-    private void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)\n-            throws IOException {\n-\n-        RpcInvocation inv = (RpcInvocation) request.getData();\n-\n-        int seqId = nextSeqId();\n-\n-        String serviceName = inv.getAttachment(INTERFACE_KEY);\n-\n-        if (StringUtils.isEmpty(serviceName)) {\n-            throw new IllegalArgumentException(\"Could not find service name in attachment with key \"\n-                    + INTERFACE_KEY);\n-        }\n-\n-        TMessage message = new TMessage(\n-                inv.getMethodName(),\n-                TMessageType.CALL,\n-                seqId);\n-\n-        String methodArgs = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\n-                .getExtension(channel.getUrl().getParameter(ThriftConstants.CLASS_NAME_GENERATOR_KEY, ThriftClassNameGenerator.NAME))\n-                .generateArgsClassName(serviceName, inv.getMethodName());\n-\n-        if (StringUtils.isEmpty(methodArgs)) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\n-                    \"Could not encode request, the specified interface may be incorrect.\");\n-        }\n-\n-        Class<?> clazz = CACHED_CLASS.get(methodArgs);\n-\n-        if (clazz == null) {\n-\n-            try {\n-\n-                clazz = ClassUtils.forNameWithThreadContextClassLoader(methodArgs);\n-\n-                CACHED_CLASS.putIfAbsent(methodArgs, clazz);\n-\n-            } catch (ClassNotFoundException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-        }\n-\n-        TBase args;\n-\n-        try {\n-            args = (TBase) clazz.newInstance();\n-        } catch (InstantiationException | IllegalAccessException e) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-        }\n-\n-        for (int i = 0; i < inv.getArguments().length; i++) {\n-\n-            Object obj = inv.getArguments()[i];\n-\n-            if (obj == null) {\n-                continue;\n-            }\n-\n-            TFieldIdEnum field = args.fieldForId(i + 1);\n-\n-            String setMethodName = ThriftUtils.generateSetMethodName(field.getFieldName());\n-\n-            Method method;\n-\n-            try {\n-                method = clazz.getMethod(setMethodName, inv.getParameterTypes()[i]);\n-            } catch (NoSuchMethodException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-            try {\n-                method.invoke(args, obj);\n-            } catch (IllegalAccessException | InvocationTargetException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-        }\n-\n-        RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(1024);\n-\n-        TIOStreamTransport transport = new TIOStreamTransport(bos);\n-\n-        TBinaryProtocol protocol = new TBinaryProtocol(transport);\n-\n-        int headerLength, messageLength;\n-\n-        byte[] bytes = new byte[4];\n-        try {\n-            // magic\n-            protocol.writeI16(MAGIC);\n-            // message length placeholder\n-            protocol.writeI32(Integer.MAX_VALUE);\n-            // message header length placeholder\n-            protocol.writeI16(Short.MAX_VALUE);\n-            // version\n-            protocol.writeByte(VERSION);\n-            // service name\n-            protocol.writeString(serviceName);\n-            // path\n-            protocol.writeString(inv.getAttachment(PATH_KEY));\n-            // dubbo request id\n-            protocol.writeI64(request.getId());\n-            protocol.getTransport().flush();\n-            // header size\n-            headerLength = bos.size();\n-\n-            // message body\n-            protocol.writeMessageBegin(message);\n-            args.write(protocol);\n-            protocol.writeMessageEnd();\n-            protocol.getTransport().flush();\n-            int oldIndex = messageLength = bos.size();\n-\n-            // fill in message length and header length\n-            try {\n-                TFramedTransport.encodeFrameSize(messageLength, bytes);\n-                bos.setWriteIndex(MESSAGE_LENGTH_INDEX);\n-                protocol.writeI32(messageLength);\n-                bos.setWriteIndex(MESSAGE_HEADER_LENGTH_INDEX);\n-                protocol.writeI16((short) (0xffff & headerLength));\n-            } finally {\n-                bos.setWriteIndex(oldIndex);\n-            }\n-\n-        } catch (TException e) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-        }\n-\n-        buffer.writeBytes(bytes);\n-        buffer.writeBytes(bos.toByteArray());\n-\n-    }\n-\n-    private void encodeResponse(Channel channel, ChannelBuffer buffer, Response response)\n-            throws IOException {\n-\n-        AppResponse result = (AppResponse) response.getResult();\n-\n-        RequestData rd = CACHED_REQUEST.get(response.getId());\n-\n-        String resultClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class).getExtension(\n-                channel.getUrl().getParameter(ThriftConstants.CLASS_NAME_GENERATOR_KEY, ThriftClassNameGenerator.NAME))\n-                .generateResultClassName(rd.serviceName, rd.methodName);\n-\n-        if (StringUtils.isEmpty(resultClassName)) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\n-                    \"Could not encode response, the specified interface may be incorrect.\");\n-        }\n-\n-        Class clazz = CACHED_CLASS.get(resultClassName);\n-\n-        if (clazz == null) {\n-\n-            try {\n-                clazz = ClassUtils.forNameWithThreadContextClassLoader(resultClassName);\n-                CACHED_CLASS.putIfAbsent(resultClassName, clazz);\n-            } catch (ClassNotFoundException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-        }\n-\n-        TBase resultObj;\n-\n-        try {\n-            resultObj = (TBase) clazz.newInstance();\n-        } catch (InstantiationException | IllegalAccessException e) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-        }\n-\n-        TApplicationException applicationException = null;\n-        TMessage message;\n-\n-        if (result.hasException()) {\n-            Throwable throwable = result.getException();\n-            int index = 1;\n-            boolean found = false;\n-            while (true) {\n-                TFieldIdEnum fieldIdEnum = resultObj.fieldForId(index++);\n-                if (fieldIdEnum == null) {\n-                    break;\n-                }\n-                String fieldName = fieldIdEnum.getFieldName();\n-                String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\n-                String setMethodName = ThriftUtils.generateSetMethodName(fieldName);\n-                Method getMethod;\n-                Method setMethod;\n-                try {\n-                    getMethod = clazz.getMethod(getMethodName);\n-                    if (getMethod.getReturnType().equals(throwable.getClass())) {\n-                        found = true;\n-                        setMethod = clazz.getMethod(setMethodName, throwable.getClass());\n-                        setMethod.invoke(resultObj, throwable);\n-                    }\n-                } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {\n-                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-                }\n-            }\n-\n-            if (!found) {\n-                applicationException = new TApplicationException(throwable.getMessage());\n-            }\n-\n-        } else {\n-            Object realResult = result.getValue();\n-            // result field id is 0\n-            String fieldName = resultObj.fieldForId(0).getFieldName();\n-            String setMethodName = ThriftUtils.generateSetMethodName(fieldName);\n-            String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\n-            Method getMethod;\n-            Method setMethod;\n-            try {\n-                getMethod = clazz.getMethod(getMethodName);\n-                setMethod = clazz.getMethod(setMethodName, getMethod.getReturnType());\n-                setMethod.invoke(resultObj, realResult);\n-            } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {\n-                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-            }\n-\n-        }\n-\n-        if (applicationException != null) {\n-            message = new TMessage(rd.methodName, TMessageType.EXCEPTION, rd.id);\n-        } else {\n-            message = new TMessage(rd.methodName, TMessageType.REPLY, rd.id);\n-        }\n-\n-        RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(1024);\n-\n-        TIOStreamTransport transport = new TIOStreamTransport(bos);\n-\n-        TBinaryProtocol protocol = new TBinaryProtocol(transport);\n-\n-        int messageLength;\n-        int headerLength;\n-\n-        byte[] bytes = new byte[4];\n-        try {\n-            // magic\n-            protocol.writeI16(MAGIC);\n-            // message length\n-            protocol.writeI32(Integer.MAX_VALUE);\n-            // message header length\n-            protocol.writeI16(Short.MAX_VALUE);\n-            // version\n-            protocol.writeByte(VERSION);\n-            // service name\n-            protocol.writeString(rd.serviceName);\n-            // id\n-            protocol.writeI64(response.getId());\n-            protocol.getTransport().flush();\n-            headerLength = bos.size();\n-\n-            // message\n-            protocol.writeMessageBegin(message);\n-            switch (message.type) {\n-                case TMessageType.EXCEPTION:\n-                    applicationException.write(protocol);\n-                    break;\n-                case TMessageType.REPLY:\n-                    resultObj.write(protocol);\n-                    break;\n-                default:\n-            }\n-            protocol.writeMessageEnd();\n-            protocol.getTransport().flush();\n-            int oldIndex = messageLength = bos.size();\n-\n-            try {\n-                TFramedTransport.encodeFrameSize(messageLength, bytes);\n-                bos.setWriteIndex(MESSAGE_LENGTH_INDEX);\n-                protocol.writeI32(messageLength);\n-                bos.setWriteIndex(MESSAGE_HEADER_LENGTH_INDEX);\n-                protocol.writeI16((short) (0xffff & headerLength));\n-            } finally {\n-                bos.setWriteIndex(oldIndex);\n-            }\n-\n-        } catch (TException e) {\n-            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\n-        }\n-\n-        buffer.writeBytes(bytes);\n-        buffer.writeBytes(bos.toByteArray());\n-\n-    }\n-\n-    static class RequestData {\n-        int id;\n-        String serviceName;\n-        String methodName;\n-\n-        static RequestData create(int id, String sn, String mn) {\n-            RequestData result = new RequestData();\n-            result.id = id;\n-            result.serviceName = sn;\n-            result.methodName = mn;\n-            return result;\n-        }\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.ClassUtils;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBufferInputStream;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.protocol.thrift.io.RandomAccessByteArrayOutputStream;\r\n+\r\n+import org.apache.thrift.TApplicationException;\r\n+import org.apache.thrift.TBase;\r\n+import org.apache.thrift.TException;\r\n+import org.apache.thrift.TFieldIdEnum;\r\n+import org.apache.thrift.protocol.TBinaryProtocol;\r\n+import org.apache.thrift.protocol.TMessage;\r\n+import org.apache.thrift.protocol.TMessageType;\r\n+import org.apache.thrift.protocol.TProtocol;\r\n+import org.apache.thrift.transport.TFramedTransport;\r\n+import org.apache.thrift.transport.TIOStreamTransport;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.lang.reflect.Method;\r\n+import java.util.ArrayList;\r\n+import java.util.List;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+\r\n+/**\r\n+ * Thrift framed protocol codec.\r\n+ *\r\n+ * <pre>\r\n+ * |<-                                  message header                                  ->|<- message body ->|\r\n+ * +----------------+----------------------+------------------+---------------------------+------------------+\r\n+ * | magic (2 bytes)|message size (4 bytes)|head size(2 bytes)| version (1 byte) | header |   message body   |\r\n+ * +----------------+----------------------+------------------+---------------------------+------------------+\r\n+ * |<-                                               message size                                          ->|\r\n+ * </pre>\r\n+ *\r\n+ * <p>\r\n+ * <b>header fields in version 1</b>\r\n+ * <ol>\r\n+ * <li>string - service name</li>\r\n+ * <li>long   - dubbo request id</li>\r\n+ * </ol>\r\n+ * </p>\r\n+ */\r\n+\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class ThriftCodec implements Codec2 {\r\n+\r\n+    public static final int MESSAGE_LENGTH_INDEX = 2;\r\n+    public static final int MESSAGE_HEADER_LENGTH_INDEX = 6;\r\n+    public static final int MESSAGE_SHORTEST_LENGTH = 10;\r\n+    public static final String NAME = \"thrift\";\r\n+    public static final String PARAMETER_CLASS_NAME_GENERATOR = \"class.name.generator\";\r\n+    public static final byte VERSION = (byte) 1;\r\n+    public static final short MAGIC = (short) 0xdabc;\r\n+    static final ConcurrentMap<Long, RequestData> CACHED_REQUEST =\r\n+            new ConcurrentHashMap<>();\r\n+    private static final AtomicInteger THRIFT_SEQ_ID = new AtomicInteger(0);\r\n+    private static final ConcurrentMap<String, Class<?>> CACHED_CLASS =\r\n+            new ConcurrentHashMap<>();\r\n+\r\n+    private static int nextSeqId() {\r\n+        return THRIFT_SEQ_ID.incrementAndGet();\r\n+    }\r\n+\r\n+    // just for test\r\n+    static int getSeqId() {\r\n+        return THRIFT_SEQ_ID.get();\r\n+    }\r\n+\r\n+    @Override\r\n+    public void encode(Channel channel, ChannelBuffer buffer, Object message)\r\n+            throws IOException {\r\n+\r\n+        if (message instanceof Request) {\r\n+            encodeRequest(channel, buffer, (Request) message);\r\n+        } else if (message instanceof Response) {\r\n+            encodeResponse(channel, buffer, (Response) message);\r\n+        } else {\r\n+            throw new UnsupportedOperationException(\"Thrift codec only support encode \"\r\n+                    + Request.class.getName() + \" and \" + Response.class.getName());\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\r\n+\r\n+        int available = buffer.readableBytes();\r\n+\r\n+        if (available < MESSAGE_SHORTEST_LENGTH) {\r\n+\r\n+            return DecodeResult.NEED_MORE_INPUT;\r\n+\r\n+        } else {\r\n+\r\n+            TIOStreamTransport transport = new TIOStreamTransport(new ChannelBufferInputStream(buffer));\r\n+\r\n+            TBinaryProtocol protocol = new TBinaryProtocol(transport);\r\n+\r\n+            short magic;\r\n+            int messageLength;\r\n+\r\n+            try {\r\n+//                protocol.readI32(); // skip the first message length\r\n+                byte[] bytes = new byte[4];\r\n+                transport.read(bytes, 0, 4);\r\n+                magic = protocol.readI16();\r\n+                messageLength = protocol.readI32();\r\n+\r\n+            } catch (TException e) {\r\n+                throw new IOException(e.getMessage(), e);\r\n+            }\r\n+\r\n+            if (MAGIC != magic) {\r\n+                throw new IOException(\"Unknown magic code \" + magic);\r\n+            }\r\n+\r\n+            if (available < messageLength) {\r\n+                return DecodeResult.NEED_MORE_INPUT;\r\n+            }\r\n+\r\n+            return decode(protocol);\r\n+\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private Object decode(TProtocol protocol)\r\n+            throws IOException {\r\n+\r\n+        // version\r\n+        String serviceName;\r\n+        String path;\r\n+        long id;\r\n+\r\n+        TMessage message;\r\n+\r\n+        try {\r\n+            protocol.readI16();\r\n+            protocol.readByte();\r\n+            serviceName = protocol.readString();\r\n+            path = protocol.readString();\r\n+            id = protocol.readI64();\r\n+            message = protocol.readMessageBegin();\r\n+        } catch (TException e) {\r\n+            throw new IOException(e.getMessage(), e);\r\n+        }\r\n+\r\n+        if (message.type == TMessageType.CALL) {\r\n+\r\n+            RpcInvocation result = new RpcInvocation();\r\n+            result.setAttachment(INTERFACE_KEY, serviceName);\r\n+            result.setAttachment(PATH_KEY, path);\r\n+            result.setMethodName(message.name);\r\n+\r\n+            String argsClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\r\n+                    .getExtension(ThriftClassNameGenerator.NAME).generateArgsClassName(serviceName, message.name);\r\n+\r\n+            if (StringUtils.isEmpty(argsClassName)) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\r\n+                        \"The specified interface name incorrect.\");\r\n+            }\r\n+\r\n+            Class clazz = CACHED_CLASS.get(argsClassName);\r\n+\r\n+            if (clazz == null) {\r\n+                try {\r\n+\r\n+                    clazz = ClassUtils.forNameWithThreadContextClassLoader(argsClassName);\r\n+\r\n+                    CACHED_CLASS.putIfAbsent(argsClassName, clazz);\r\n+\r\n+                } catch (ClassNotFoundException e) {\r\n+                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+            }\r\n+\r\n+            TBase args;\r\n+\r\n+            try {\r\n+                args = (TBase) clazz.newInstance();\r\n+            } catch (InstantiationException | IllegalAccessException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                args.read(protocol);\r\n+                protocol.readMessageEnd();\r\n+            } catch (TException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+            List<Object> parameters = new ArrayList<>();\r\n+            List<Class<?>> parameterTypes = new ArrayList<>();\r\n+            int index = 1;\r\n+\r\n+            while (true) {\r\n+\r\n+                TFieldIdEnum fieldIdEnum = args.fieldForId(index++);\r\n+\r\n+                if (fieldIdEnum == null) {\r\n+                    break;\r\n+                }\r\n+\r\n+                String fieldName = fieldIdEnum.getFieldName();\r\n+\r\n+                String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\r\n+\r\n+                Method getMethod;\r\n+\r\n+                try {\r\n+                    getMethod = clazz.getMethod(getMethodName);\r\n+                } catch (NoSuchMethodException e) {\r\n+                    throw new RpcException(\r\n+                            RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+\r\n+                parameterTypes.add(getMethod.getReturnType());\r\n+                try {\r\n+                    parameters.add(getMethod.invoke(args));\r\n+                } catch (IllegalAccessException | InvocationTargetException e) {\r\n+                    throw new RpcException(\r\n+                            RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+\r\n+            }\r\n+\r\n+            result.setArguments(parameters.toArray());\r\n+            result.setParameterTypes(parameterTypes.toArray(new Class[0]));\r\n+\r\n+            Request request = new Request(id);\r\n+            request.setData(result);\r\n+\r\n+            CACHED_REQUEST.putIfAbsent(id,\r\n+                    RequestData.create(message.seqid, serviceName, message.name));\r\n+\r\n+            return request;\r\n+\r\n+        } else if (message.type == TMessageType.EXCEPTION) {\r\n+\r\n+            TApplicationException exception;\r\n+\r\n+            try {\r\n+                exception = TApplicationException.readFrom(protocol);\r\n+                protocol.readMessageEnd();\r\n+            } catch (TException e) {\r\n+                throw new IOException(e.getMessage(), e);\r\n+            }\r\n+\r\n+            AppResponse result = new AppResponse();\r\n+\r\n+            result.setException(new RpcException(exception.getMessage()));\r\n+\r\n+            Response response = new Response();\r\n+\r\n+            response.setResult(result);\r\n+\r\n+            response.setId(id);\r\n+\r\n+            return response;\r\n+\r\n+        } else if (message.type == TMessageType.REPLY) {\r\n+\r\n+            String resultClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\r\n+                    .getExtension(ThriftClassNameGenerator.NAME).generateResultClassName(serviceName, message.name);\r\n+\r\n+            if (StringUtils.isEmpty(resultClassName)) {\r\n+                throw new IllegalArgumentException(\"Could not infer service result class name from service name \"\r\n+                        + serviceName + \", the service name you specified may not generated by thrift idl compiler\");\r\n+            }\r\n+\r\n+            Class<?> clazz = CACHED_CLASS.get(resultClassName);\r\n+\r\n+            if (clazz == null) {\r\n+\r\n+                try {\r\n+\r\n+                    clazz = ClassUtils.forNameWithThreadContextClassLoader(resultClassName);\r\n+\r\n+                    CACHED_CLASS.putIfAbsent(resultClassName, clazz);\r\n+\r\n+                } catch (ClassNotFoundException e) {\r\n+                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+\r\n+            }\r\n+\r\n+            TBase<?, ? extends TFieldIdEnum> result;\r\n+            try {\r\n+                result = (TBase<?, ?>) clazz.newInstance();\r\n+            } catch (InstantiationException | IllegalAccessException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                result.read(protocol);\r\n+                protocol.readMessageEnd();\r\n+            } catch (TException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+            Object realResult = null;\r\n+\r\n+            int index = 0;\r\n+\r\n+            while (true) {\r\n+\r\n+                TFieldIdEnum fieldIdEnum = result.fieldForId(index++);\r\n+\r\n+                if (fieldIdEnum == null) {\r\n+                    break;\r\n+                }\r\n+\r\n+                Field field;\r\n+\r\n+                try {\r\n+                    field = clazz.getDeclaredField(fieldIdEnum.getFieldName());\r\n+                    ReflectUtils.makeAccessible(field);\r\n+                } catch (NoSuchFieldException e) {\r\n+                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+\r\n+                try {\r\n+                    realResult = field.get(result);\r\n+                } catch (IllegalAccessException e) {\r\n+                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+\r\n+                if (realResult != null) {\r\n+                    break;\r\n+                }\r\n+\r\n+            }\r\n+\r\n+            Response response = new Response();\r\n+\r\n+            response.setId(id);\r\n+\r\n+            AppResponse appResponse = new AppResponse();\r\n+\r\n+            if (realResult instanceof Throwable) {\r\n+                appResponse.setException((Throwable) realResult);\r\n+            } else {\r\n+                appResponse.setValue(realResult);\r\n+            }\r\n+\r\n+            response.setResult(appResponse);\r\n+\r\n+            return response;\r\n+\r\n+        } else {\r\n+            // Impossible\r\n+            throw new IOException();\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)\r\n+            throws IOException {\r\n+\r\n+        RpcInvocation inv = (RpcInvocation) request.getData();\r\n+\r\n+        int seqId = nextSeqId();\r\n+\r\n+        String serviceName = inv.getAttachment(INTERFACE_KEY);\r\n+\r\n+        if (StringUtils.isEmpty(serviceName)) {\r\n+            throw new IllegalArgumentException(\"Could not find service name in attachment with key \"\r\n+                    + INTERFACE_KEY);\r\n+        }\r\n+\r\n+        TMessage message = new TMessage(\r\n+                inv.getMethodName(),\r\n+                TMessageType.CALL,\r\n+                seqId);\r\n+\r\n+        String methodArgs = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class)\r\n+                .getExtension(channel.getUrl().getParameter(ThriftConstants.CLASS_NAME_GENERATOR_KEY, ThriftClassNameGenerator.NAME))\r\n+                .generateArgsClassName(serviceName, inv.getMethodName());\r\n+\r\n+        if (StringUtils.isEmpty(methodArgs)) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\r\n+                    \"Could not encode request, the specified interface may be incorrect.\");\r\n+        }\r\n+\r\n+        Class<?> clazz = CACHED_CLASS.get(methodArgs);\r\n+\r\n+        if (clazz == null) {\r\n+\r\n+            try {\r\n+\r\n+                clazz = ClassUtils.forNameWithThreadContextClassLoader(methodArgs);\r\n+\r\n+                CACHED_CLASS.putIfAbsent(methodArgs, clazz);\r\n+\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        TBase args;\r\n+\r\n+        try {\r\n+            args = (TBase) clazz.newInstance();\r\n+        } catch (InstantiationException | IllegalAccessException e) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+        }\r\n+\r\n+        for (int i = 0; i < inv.getArguments().length; i++) {\r\n+\r\n+            Object obj = inv.getArguments()[i];\r\n+\r\n+            if (obj == null) {\r\n+                continue;\r\n+            }\r\n+\r\n+            TFieldIdEnum field = args.fieldForId(i + 1);\r\n+\r\n+            String setMethodName = ThriftUtils.generateSetMethodName(field.getFieldName());\r\n+\r\n+            Method method;\r\n+\r\n+            try {\r\n+                method = clazz.getMethod(setMethodName, inv.getParameterTypes()[i]);\r\n+            } catch (NoSuchMethodException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+            try {\r\n+                method.invoke(args, obj);\r\n+            } catch (IllegalAccessException | InvocationTargetException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(1024);\r\n+\r\n+        TIOStreamTransport transport = new TIOStreamTransport(bos);\r\n+\r\n+        TBinaryProtocol protocol = new TBinaryProtocol(transport);\r\n+\r\n+        int headerLength, messageLength;\r\n+\r\n+        byte[] bytes = new byte[4];\r\n+        try {\r\n+            // magic\r\n+            protocol.writeI16(MAGIC);\r\n+            // message length placeholder\r\n+            protocol.writeI32(Integer.MAX_VALUE);\r\n+            // message header length placeholder\r\n+            protocol.writeI16(Short.MAX_VALUE);\r\n+            // version\r\n+            protocol.writeByte(VERSION);\r\n+            // service name\r\n+            protocol.writeString(serviceName);\r\n+            // path\r\n+            protocol.writeString(inv.getAttachment(PATH_KEY));\r\n+            // dubbo request id\r\n+            protocol.writeI64(request.getId());\r\n+            protocol.getTransport().flush();\r\n+            // header size\r\n+            headerLength = bos.size();\r\n+\r\n+            // message body\r\n+            protocol.writeMessageBegin(message);\r\n+            args.write(protocol);\r\n+            protocol.writeMessageEnd();\r\n+            protocol.getTransport().flush();\r\n+            int oldIndex = messageLength = bos.size();\r\n+\r\n+            // fill in message length and header length\r\n+            try {\r\n+                TFramedTransport.encodeFrameSize(messageLength, bytes);\r\n+                bos.setWriteIndex(MESSAGE_LENGTH_INDEX);\r\n+                protocol.writeI32(messageLength);\r\n+                bos.setWriteIndex(MESSAGE_HEADER_LENGTH_INDEX);\r\n+                protocol.writeI16((short) (0xffff & headerLength));\r\n+            } finally {\r\n+                bos.setWriteIndex(oldIndex);\r\n+            }\r\n+\r\n+        } catch (TException e) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+        }\r\n+\r\n+        buffer.writeBytes(bytes);\r\n+        buffer.writeBytes(bos.toByteArray());\r\n+\r\n+    }\r\n+\r\n+    private void encodeResponse(Channel channel, ChannelBuffer buffer, Response response)\r\n+            throws IOException {\r\n+\r\n+        AppResponse result = (AppResponse) response.getResult();\r\n+\r\n+        RequestData rd = CACHED_REQUEST.get(response.getId());\r\n+\r\n+        String resultClassName = ExtensionLoader.getExtensionLoader(ClassNameGenerator.class).getExtension(\r\n+                channel.getUrl().getParameter(ThriftConstants.CLASS_NAME_GENERATOR_KEY, ThriftClassNameGenerator.NAME))\r\n+                .generateResultClassName(rd.serviceName, rd.methodName);\r\n+\r\n+        if (StringUtils.isEmpty(resultClassName)) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION,\r\n+                    \"Could not encode response, the specified interface may be incorrect.\");\r\n+        }\r\n+\r\n+        Class clazz = CACHED_CLASS.get(resultClassName);\r\n+\r\n+        if (clazz == null) {\r\n+\r\n+            try {\r\n+                clazz = ClassUtils.forNameWithThreadContextClassLoader(resultClassName);\r\n+                CACHED_CLASS.putIfAbsent(resultClassName, clazz);\r\n+            } catch (ClassNotFoundException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        TBase resultObj;\r\n+\r\n+        try {\r\n+            resultObj = (TBase) clazz.newInstance();\r\n+        } catch (InstantiationException | IllegalAccessException e) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+        }\r\n+\r\n+        TApplicationException applicationException = null;\r\n+        TMessage message;\r\n+\r\n+        if (result.hasException()) {\r\n+            Throwable throwable = result.getException();\r\n+            int index = 1;\r\n+            boolean found = false;\r\n+            while (true) {\r\n+                TFieldIdEnum fieldIdEnum = resultObj.fieldForId(index++);\r\n+                if (fieldIdEnum == null) {\r\n+                    break;\r\n+                }\r\n+                String fieldName = fieldIdEnum.getFieldName();\r\n+                String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\r\n+                String setMethodName = ThriftUtils.generateSetMethodName(fieldName);\r\n+                Method getMethod;\r\n+                Method setMethod;\r\n+                try {\r\n+                    getMethod = clazz.getMethod(getMethodName);\r\n+                    if (getMethod.getReturnType().equals(throwable.getClass())) {\r\n+                        found = true;\r\n+                        setMethod = clazz.getMethod(setMethodName, throwable.getClass());\r\n+                        setMethod.invoke(resultObj, throwable);\r\n+                    }\r\n+                } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {\r\n+                    throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+                }\r\n+            }\r\n+\r\n+            if (!found) {\r\n+                applicationException = new TApplicationException(throwable.getMessage());\r\n+            }\r\n+\r\n+        } else {\r\n+            Object realResult = result.getValue();\r\n+            // result field id is 0\r\n+            String fieldName = resultObj.fieldForId(0).getFieldName();\r\n+            String setMethodName = ThriftUtils.generateSetMethodName(fieldName);\r\n+            String getMethodName = ThriftUtils.generateGetMethodName(fieldName);\r\n+            Method getMethod;\r\n+            Method setMethod;\r\n+            try {\r\n+                getMethod = clazz.getMethod(getMethodName);\r\n+                setMethod = clazz.getMethod(setMethodName, getMethod.getReturnType());\r\n+                setMethod.invoke(resultObj, realResult);\r\n+            } catch (NoSuchMethodException | InvocationTargetException | IllegalAccessException e) {\r\n+                throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+            }\r\n+\r\n+        }\r\n+\r\n+        if (applicationException != null) {\r\n+            message = new TMessage(rd.methodName, TMessageType.EXCEPTION, rd.id);\r\n+        } else {\r\n+            message = new TMessage(rd.methodName, TMessageType.REPLY, rd.id);\r\n+        }\r\n+\r\n+        RandomAccessByteArrayOutputStream bos = new RandomAccessByteArrayOutputStream(1024);\r\n+\r\n+        TIOStreamTransport transport = new TIOStreamTransport(bos);\r\n+\r\n+        TBinaryProtocol protocol = new TBinaryProtocol(transport);\r\n+\r\n+        int messageLength;\r\n+        int headerLength;\r\n+\r\n+        byte[] bytes = new byte[4];\r\n+        try {\r\n+            // magic\r\n+            protocol.writeI16(MAGIC);\r\n+            // message length\r\n+            protocol.writeI32(Integer.MAX_VALUE);\r\n+            // message header length\r\n+            protocol.writeI16(Short.MAX_VALUE);\r\n+            // version\r\n+            protocol.writeByte(VERSION);\r\n+            // service name\r\n+            protocol.writeString(rd.serviceName);\r\n+            // id\r\n+            protocol.writeI64(response.getId());\r\n+            protocol.getTransport().flush();\r\n+            headerLength = bos.size();\r\n+\r\n+            // message\r\n+            protocol.writeMessageBegin(message);\r\n+            switch (message.type) {\r\n+                case TMessageType.EXCEPTION:\r\n+                    applicationException.write(protocol);\r\n+                    break;\r\n+                case TMessageType.REPLY:\r\n+                    resultObj.write(protocol);\r\n+                    break;\r\n+                default:\r\n+            }\r\n+            protocol.writeMessageEnd();\r\n+            protocol.getTransport().flush();\r\n+            int oldIndex = messageLength = bos.size();\r\n+\r\n+            try {\r\n+                TFramedTransport.encodeFrameSize(messageLength, bytes);\r\n+                bos.setWriteIndex(MESSAGE_LENGTH_INDEX);\r\n+                protocol.writeI32(messageLength);\r\n+                bos.setWriteIndex(MESSAGE_HEADER_LENGTH_INDEX);\r\n+                protocol.writeI16((short) (0xffff & headerLength));\r\n+            } finally {\r\n+                bos.setWriteIndex(oldIndex);\r\n+            }\r\n+\r\n+        } catch (TException e) {\r\n+            throw new RpcException(RpcException.SERIALIZATION_EXCEPTION, e.getMessage(), e);\r\n+        }\r\n+\r\n+        buffer.writeBytes(bytes);\r\n+        buffer.writeBytes(bos.toByteArray());\r\n+\r\n+    }\r\n+\r\n+    static class RequestData {\r\n+        int id;\r\n+        String serviceName;\r\n+        String methodName;\r\n+\r\n+        static RequestData create(int id, String sn, String mn) {\r\n+            RequestData result = new RequestData();\r\n+            result.id = id;\r\n+            result.serviceName = sn;\r\n+            result.methodName = mn;\r\n+            return result;\r\n+        }\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftConstants.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftConstants.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,32 +1,32 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public final class ThriftConstants {\n-\n-    public static final String THRIFT_PROTOCOL_KEY = \"thrift.protocol\";\n-    public static final String BINARY_THRIFT_PROTOCOL = \"binary\";\n-    public static final String CLASS_NAME_GENERATOR_KEY = \"class.name.generator\";\n-    public static final String DEFAULT_PROTOCOL = BINARY_THRIFT_PROTOCOL;\n-\n-    private ThriftConstants() {\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public final class ThriftConstants {\r\n+\r\n+    public static final String THRIFT_PROTOCOL_KEY = \"thrift.protocol\";\r\n+    public static final String BINARY_THRIFT_PROTOCOL = \"binary\";\r\n+    public static final String CLASS_NAME_GENERATOR_KEY = \"class.name.generator\";\r\n+    public static final String DEFAULT_PROTOCOL = BINARY_THRIFT_PROTOCOL;\r\n+\r\n+    private ThriftConstants() {\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftInvoker.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,171 +1,171 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.AtomicPositiveInteger;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.TimeoutException;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.FutureContext;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.protocol.AbstractInvoker;\n-\n-import java.util.Set;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.ExecutorService;\n-import java.util.concurrent.locks.ReentrantLock;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CHANNEL_ATTRIBUTE_READONLY_KEY;\n-import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\n-\n-\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class ThriftInvoker<T> extends AbstractInvoker<T> {\n-\n-    private final ExchangeClient[] clients;\n-\n-    private final AtomicPositiveInteger index = new AtomicPositiveInteger();\n-\n-    private final ReentrantLock destroyLock = new ReentrantLock();\n-\n-    private final Set<Invoker<?>> invokers;\n-\n-    public ThriftInvoker(Class<T> service, URL url, ExchangeClient[] clients) {\n-        this(service, url, clients, null);\n-    }\n-\n-    public ThriftInvoker(Class<T> type, URL url, ExchangeClient[] clients, Set<Invoker<?>> invokers) {\n-        super(type, url, new String[]{INTERFACE_KEY, GROUP_KEY, TOKEN_KEY});\n-        this.clients = clients;\n-        this.invokers = invokers;\n-    }\n-\n-    @Override\n-    protected Result doInvoke(Invocation invocation) throws Throwable {\n-\n-        RpcInvocation inv = (RpcInvocation) invocation;\n-\n-        final String methodName;\n-\n-        methodName = invocation.getMethodName();\n-\n-        inv.setAttachment(PATH_KEY, getUrl().getPath());\n-\n-        // for thrift codec\n-        inv.setAttachment(ThriftCodec.PARAMETER_CLASS_NAME_GENERATOR, getUrl().getParameter(\n-                ThriftCodec.PARAMETER_CLASS_NAME_GENERATOR, DubboClassNameGenerator.NAME));\n-\n-        ExchangeClient currentClient;\n-\n-        if (clients.length == 1) {\n-            currentClient = clients[0];\n-        } else {\n-            currentClient = clients[index.getAndIncrement() % clients.length];\n-        }\n-\n-        try {\n-            int timeout = getUrl().getMethodParameter(methodName, TIMEOUT_KEY, DEFAULT_TIMEOUT);\n-\n-            ExecutorService executor = getCallbackExecutor(getUrl(), inv);\n-            CompletableFuture<AppResponse> appResponseFuture = currentClient.request(inv, timeout, executor).thenApply(obj -> (AppResponse) obj);\n-            // save for 2.6.x compatibility, for example, TraceFilter in Zipkin uses com.alibaba.xxx.FutureAdapter\n-            FutureContext.getContext().setCompatibleFuture(appResponseFuture);\n-            AsyncRpcResult result = new AsyncRpcResult(appResponseFuture, invocation);\n-            result.setExecutor(executor);\n-            return result;\n-        } catch (TimeoutException e) {\n-            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, e.getMessage(), e);\n-        } catch (RemotingException e) {\n-            throw new RpcException(RpcException.NETWORK_EXCEPTION, e.getMessage(), e);\n-        }\n-\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-\n-        if (!super.isAvailable()) {\n-            return false;\n-        }\n-\n-        for (ExchangeClient client : clients) {\n-            if (client.isConnected()\n-                    && !client.hasAttribute(CHANNEL_ATTRIBUTE_READONLY_KEY)) {\n-                //cannot write == not Available ?\n-                return true;\n-            }\n-        }\n-        return false;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        // in order to avoid closing a client multiple times, a counter is used in case of connection per jvm, every\n-        // time when client.close() is called, counter counts down once, and when counter reaches zero, client will be\n-        // closed.\n-        if (super.isDestroyed()) {\n-            return;\n-        } else {\n-            // double check to avoid dup close\n-            destroyLock.lock();\n-\n-            try {\n-\n-                if (super.isDestroyed()) {\n-                    return;\n-                }\n-\n-                super.destroy();\n-\n-                if (invokers != null) {\n-                    invokers.remove(this);\n-                }\n-\n-                for (ExchangeClient client : clients) {\n-\n-                    try {\n-                        client.close();\n-                    } catch (Throwable t) {\n-                        logger.warn(t.getMessage(), t);\n-                    }\n-\n-                }\n-\n-            } finally {\n-                destroyLock.unlock();\n-            }\n-\n-        }\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.AtomicPositiveInteger;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.TimeoutException;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.FutureContext;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.protocol.AbstractInvoker;\r\n+\r\n+import java.util.Set;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.ExecutorService;\r\n+import java.util.concurrent.locks.ReentrantLock;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.INTERFACE_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CHANNEL_ATTRIBUTE_READONLY_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.TOKEN_KEY;\r\n+\r\n+\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class ThriftInvoker<T> extends AbstractInvoker<T> {\r\n+\r\n+    private final ExchangeClient[] clients;\r\n+\r\n+    private final AtomicPositiveInteger index = new AtomicPositiveInteger();\r\n+\r\n+    private final ReentrantLock destroyLock = new ReentrantLock();\r\n+\r\n+    private final Set<Invoker<?>> invokers;\r\n+\r\n+    public ThriftInvoker(Class<T> service, URL url, ExchangeClient[] clients) {\r\n+        this(service, url, clients, null);\r\n+    }\r\n+\r\n+    public ThriftInvoker(Class<T> type, URL url, ExchangeClient[] clients, Set<Invoker<?>> invokers) {\r\n+        super(type, url, new String[]{INTERFACE_KEY, GROUP_KEY, TOKEN_KEY});\r\n+        this.clients = clients;\r\n+        this.invokers = invokers;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Result doInvoke(Invocation invocation) throws Throwable {\r\n+\r\n+        RpcInvocation inv = (RpcInvocation) invocation;\r\n+\r\n+        final String methodName;\r\n+\r\n+        methodName = invocation.getMethodName();\r\n+\r\n+        inv.setAttachment(PATH_KEY, getUrl().getPath());\r\n+\r\n+        // for thrift codec\r\n+        inv.setAttachment(ThriftCodec.PARAMETER_CLASS_NAME_GENERATOR, getUrl().getParameter(\r\n+                ThriftCodec.PARAMETER_CLASS_NAME_GENERATOR, DubboClassNameGenerator.NAME));\r\n+\r\n+        ExchangeClient currentClient;\r\n+\r\n+        if (clients.length == 1) {\r\n+            currentClient = clients[0];\r\n+        } else {\r\n+            currentClient = clients[index.getAndIncrement() % clients.length];\r\n+        }\r\n+\r\n+        try {\r\n+            int timeout = getUrl().getMethodParameter(methodName, TIMEOUT_KEY, DEFAULT_TIMEOUT);\r\n+\r\n+            ExecutorService executor = getCallbackExecutor(getUrl(), inv);\r\n+            CompletableFuture<AppResponse> appResponseFuture = currentClient.request(inv, timeout, executor).thenApply(obj -> (AppResponse) obj);\r\n+            // save for 2.6.x compatibility, for example, TraceFilter in Zipkin uses com.alibaba.xxx.FutureAdapter\r\n+            FutureContext.getContext().setCompatibleFuture(appResponseFuture);\r\n+            AsyncRpcResult result = new AsyncRpcResult(appResponseFuture, invocation);\r\n+            result.setExecutor(executor);\r\n+            return result;\r\n+        } catch (TimeoutException e) {\r\n+            throw new RpcException(RpcException.TIMEOUT_EXCEPTION, e.getMessage(), e);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(RpcException.NETWORK_EXCEPTION, e.getMessage(), e);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+\r\n+        if (!super.isAvailable()) {\r\n+            return false;\r\n+        }\r\n+\r\n+        for (ExchangeClient client : clients) {\r\n+            if (client.isConnected()\r\n+                    && !client.hasAttribute(CHANNEL_ATTRIBUTE_READONLY_KEY)) {\r\n+                //cannot write == not Available ?\r\n+                return true;\r\n+            }\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        // in order to avoid closing a client multiple times, a counter is used in case of connection per jvm, every\r\n+        // time when client.close() is called, counter counts down once, and when counter reaches zero, client will be\r\n+        // closed.\r\n+        if (super.isDestroyed()) {\r\n+            return;\r\n+        } else {\r\n+            // double check to avoid dup close\r\n+            destroyLock.lock();\r\n+\r\n+            try {\r\n+\r\n+                if (super.isDestroyed()) {\r\n+                    return;\r\n+                }\r\n+\r\n+                super.destroy();\r\n+\r\n+                if (invokers != null) {\r\n+                    invokers.remove(this);\r\n+                }\r\n+\r\n+                for (ExchangeClient client : clients) {\r\n+\r\n+                    try {\r\n+                        client.close();\r\n+                    } catch (Throwable t) {\r\n+                        logger.warn(t.getMessage(), t);\r\n+                    }\r\n+\r\n+                }\r\n+\r\n+            } finally {\r\n+                destroyLock.unlock();\r\n+            }\r\n+\r\n+        }\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftNativeCodec.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftNativeCodec.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,96 +1,96 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.Codec2;\n-import org.apache.dubbo.remoting.buffer.ChannelBuffer;\n-import org.apache.dubbo.remoting.buffer.ChannelBufferOutputStream;\n-import org.apache.dubbo.remoting.exchange.Request;\n-import org.apache.dubbo.remoting.exchange.Response;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.thrift.TException;\n-import org.apache.thrift.protocol.TBinaryProtocol;\n-import org.apache.thrift.protocol.TMessage;\n-import org.apache.thrift.protocol.TMessageType;\n-import org.apache.thrift.protocol.TProtocol;\n-import org.apache.thrift.protocol.TStruct;\n-import org.apache.thrift.transport.TIOStreamTransport;\n-\n-import java.io.IOException;\n-import java.util.concurrent.atomic.AtomicInteger;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class ThriftNativeCodec implements Codec2 {\n-\n-    private final AtomicInteger thriftSeq = new AtomicInteger(0);\n-\n-    protected static TProtocol newProtocol(URL url, ChannelBuffer buffer) throws IOException {\n-        String protocol = url.getParameter(ThriftConstants.THRIFT_PROTOCOL_KEY,\n-                ThriftConstants.DEFAULT_PROTOCOL);\n-        if (ThriftConstants.BINARY_THRIFT_PROTOCOL.equals(protocol)) {\n-            return new TBinaryProtocol(new TIOStreamTransport(new ChannelBufferOutputStream(buffer)));\n-        }\n-        throw new IOException(\"Unsupported protocol type \" + protocol);\n-    }\n-\n-    @Override\n-    public void encode(Channel channel, ChannelBuffer buffer, Object message)\n-            throws IOException {\n-        if (message instanceof Request) {\n-            encodeRequest(channel, buffer, (Request) message);\n-        } else if (message instanceof Response) {\n-            encodeResponse(channel, buffer, (Response) message);\n-        } else {\n-            throw new IOException(\"Unsupported message type \"\n-                    + message.getClass().getName());\n-        }\n-    }\n-\n-    protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)\n-            throws IOException {\n-        Invocation invocation = (Invocation) request.getData();\n-        TProtocol protocol = newProtocol(channel.getUrl(), buffer);\n-        try {\n-            protocol.writeMessageBegin(new TMessage(\n-                    invocation.getMethodName(), TMessageType.CALL,\n-                    thriftSeq.getAndIncrement()));\n-            protocol.writeStructBegin(new TStruct(invocation.getMethodName() + \"_args\"));\n-            for (int i = 0; i < invocation.getParameterTypes().length; i++) {\n-                Class<?> type = invocation.getParameterTypes()[i];\n-\n-            }\n-        } catch (TException e) {\n-            throw new IOException(e.getMessage(), e);\n-        }\n-\n-    }\n-\n-    protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response response)\n-            throws IOException {\n-\n-    }\n-\n-    @Override\n-    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\n-        return null;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.Codec2;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBuffer;\r\n+import org.apache.dubbo.remoting.buffer.ChannelBufferOutputStream;\r\n+import org.apache.dubbo.remoting.exchange.Request;\r\n+import org.apache.dubbo.remoting.exchange.Response;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.thrift.TException;\r\n+import org.apache.thrift.protocol.TBinaryProtocol;\r\n+import org.apache.thrift.protocol.TMessage;\r\n+import org.apache.thrift.protocol.TMessageType;\r\n+import org.apache.thrift.protocol.TProtocol;\r\n+import org.apache.thrift.protocol.TStruct;\r\n+import org.apache.thrift.transport.TIOStreamTransport;\r\n+\r\n+import java.io.IOException;\r\n+import java.util.concurrent.atomic.AtomicInteger;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class ThriftNativeCodec implements Codec2 {\r\n+\r\n+    private final AtomicInteger thriftSeq = new AtomicInteger(0);\r\n+\r\n+    protected static TProtocol newProtocol(URL url, ChannelBuffer buffer) throws IOException {\r\n+        String protocol = url.getParameter(ThriftConstants.THRIFT_PROTOCOL_KEY,\r\n+                ThriftConstants.DEFAULT_PROTOCOL);\r\n+        if (ThriftConstants.BINARY_THRIFT_PROTOCOL.equals(protocol)) {\r\n+            return new TBinaryProtocol(new TIOStreamTransport(new ChannelBufferOutputStream(buffer)));\r\n+        }\r\n+        throw new IOException(\"Unsupported protocol type \" + protocol);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void encode(Channel channel, ChannelBuffer buffer, Object message)\r\n+            throws IOException {\r\n+        if (message instanceof Request) {\r\n+            encodeRequest(channel, buffer, (Request) message);\r\n+        } else if (message instanceof Response) {\r\n+            encodeResponse(channel, buffer, (Response) message);\r\n+        } else {\r\n+            throw new IOException(\"Unsupported message type \"\r\n+                    + message.getClass().getName());\r\n+        }\r\n+    }\r\n+\r\n+    protected void encodeRequest(Channel channel, ChannelBuffer buffer, Request request)\r\n+            throws IOException {\r\n+        Invocation invocation = (Invocation) request.getData();\r\n+        TProtocol protocol = newProtocol(channel.getUrl(), buffer);\r\n+        try {\r\n+            protocol.writeMessageBegin(new TMessage(\r\n+                    invocation.getMethodName(), TMessageType.CALL,\r\n+                    thriftSeq.getAndIncrement()));\r\n+            protocol.writeStructBegin(new TStruct(invocation.getMethodName() + \"_args\"));\r\n+            for (int i = 0; i < invocation.getParameterTypes().length; i++) {\r\n+                Class<?> type = invocation.getParameterTypes()[i];\r\n+\r\n+            }\r\n+        } catch (TException e) {\r\n+            throw new IOException(e.getMessage(), e);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    protected void encodeResponse(Channel channel, ChannelBuffer buffer, Response response)\r\n+            throws IOException {\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object decode(Channel channel, ChannelBuffer buffer) throws IOException {\r\n+        return null;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,272 +1,272 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.config.ConfigurationUtils;\n-import org.apache.dubbo.common.extension.ExtensionLoader;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.remoting.Channel;\n-import org.apache.dubbo.remoting.RemotingException;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.Transporter;\n-import org.apache.dubbo.remoting.exchange.ExchangeChannel;\n-import org.apache.dubbo.remoting.exchange.ExchangeClient;\n-import org.apache.dubbo.remoting.exchange.ExchangeHandler;\n-import org.apache.dubbo.remoting.exchange.ExchangeServer;\n-import org.apache.dubbo.remoting.exchange.Exchangers;\n-import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;\n-import org.apache.dubbo.rpc.Exporter;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProtocol;\n-import org.apache.dubbo.rpc.protocol.dubbo.DubboExporter;\n-\n-import java.util.ArrayList;\n-import java.util.Set;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.function.Function;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\n-import static org.apache.dubbo.remoting.Constants.CHANNEL_READONLYEVENT_SENT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\n-import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\n-import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\n-import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\n-import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\n-\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class ThriftProtocol extends AbstractProtocol {\n-\n-    public static final int DEFAULT_PORT = 40880;\n-\n-    public static final String NAME = \"thrift\";\n-\n-    private ExchangeHandler handler = new ExchangeHandlerAdapter() {\n-\n-        @Override\n-        public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) throws RemotingException {\n-\n-            if (msg instanceof Invocation) {\n-                Invocation inv = (Invocation) msg;\n-                String path = (String) inv.getObjectAttachments().get(PATH_KEY);\n-                String serviceKey = serviceKey(channel.getLocalAddress().getPort(),\n-                        path, null, null);\n-                DubboExporter<?> exporter = (DubboExporter<?>) exporterMap.get(serviceKey);\n-                if (exporter == null) {\n-                    throw new RemotingException(channel,\n-                            \"Not found exported service: \"\n-                                    + serviceKey\n-                                    + \" in \"\n-                                    + exporterMap.keySet()\n-                                    + \", may be version or group mismatch \"\n-                                    + \", channel: consumer: \"\n-                                    + channel.getRemoteAddress()\n-                                    + \" --> provider: \"\n-                                    + channel.getLocalAddress()\n-                                    + \", message:\" + msg);\n-                }\n-\n-                RpcContext.getContext().setRemoteAddress(channel.getRemoteAddress());\n-\n-                Result result = exporter.getInvoker().invoke(inv);\n-                return result.thenApply(Function.identity());\n-            }\n-\n-            throw new RemotingException(channel,\n-                    \"Unsupported request: \"\n-                            + (msg.getClass().getName() + \": \" + msg)\n-                            + \", channel: consumer: \"\n-                            + channel.getRemoteAddress()\n-                            + \" --> provider: \"\n-                            + channel.getLocalAddress());\n-        }\n-\n-        @Override\n-        public void received(Channel channel, Object message) throws RemotingException {\n-            if (message instanceof Invocation) {\n-                reply((ExchangeChannel) channel, message);\n-            } else {\n-                super.received(channel, message);\n-            }\n-        }\n-\n-    };\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-    @Override\n-    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\n-\n-        // can use thrift codec only\n-        URL url = invoker.getUrl().addParameter(CODEC_KEY, ThriftCodec.NAME);\n-        // find server.\n-        String key = url.getAddress();\n-        // client can expose a service for server to invoke only.\n-        boolean isServer = url.getParameter(IS_SERVER_KEY, true);\n-        if (isServer && !serverMap.containsKey(key)) {\n-            serverMap.put(key, getServer(url));\n-        }\n-        // export service.\n-        key = serviceKey(url);\n-        DubboExporter<T> exporter = new DubboExporter<T>(invoker, key, exporterMap);\n-        exporterMap.put(key, exporter);\n-\n-        return exporter;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-\n-        super.destroy();\n-\n-        for (String key : new ArrayList<String>(serverMap.keySet())) {\n-\n-            ProtocolServer protocolServer = serverMap.remove(key);\n-\n-            if (protocolServer != null) {\n-                RemotingServer server = protocolServer.getRemotingServer();\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Close dubbo server: \" + server.getLocalAddress());\n-                    }\n-                    server.close(ConfigurationUtils.getServerShutdownTimeout());\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            } // ~ end of if ( server != null )\n-\n-        } // ~ end of loop serverMap\n-\n-    } // ~ end of method destroy\n-\n-    @Override\n-    protected <T> Invoker<T> protocolBindingRefer(Class<T> type, URL url) throws RpcException {\n-\n-        ThriftInvoker<T> invoker = new ThriftInvoker<T>(type, url, getClients(url), invokers);\n-\n-        invokers.add(invoker);\n-\n-        return invoker;\n-\n-    }\n-\n-    private ExchangeClient[] getClients(URL url) {\n-\n-        int connections = url.getParameter(CONNECTIONS_KEY, 1);\n-\n-        ExchangeClient[] clients = new ExchangeClient[connections];\n-\n-        for (int i = 0; i < clients.length; i++) {\n-            clients[i] = initClient(url);\n-        }\n-        return clients;\n-    }\n-\n-    private ExchangeClient initClient(URL url) {\n-\n-        ExchangeClient client;\n-\n-//        url = url.addParameter(CODEC_KEY, ThriftCodec.NAME);\n-\n-        try {\n-            client = Exchangers.connect(url);\n-        } catch (RemotingException e) {\n-            throw new RpcException(\"Fail to create remoting client for service(\" + url\n-                    + \"): \" + e.getMessage(), e);\n-        }\n-\n-        return client;\n-\n-    }\n-\n-    private ProtocolServer getServer(URL url) {\n-        // enable sending readonly event when server closes by default\n-        url = url.addParameterIfAbsent(CHANNEL_READONLYEVENT_SENT_KEY, Boolean.TRUE.toString());\n-        String str = url.getParameter(SERVER_KEY, org.apache.dubbo.rpc.Constants.DEFAULT_REMOTING_SERVER);\n-\n-        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\n-            throw new RpcException(\"Unsupported server type: \" + str + \", url: \" + url);\n-        }\n-\n-        ExchangeServer server;\n-        try {\n-            server = Exchangers.bind(url, handler);\n-        } catch (RemotingException e) {\n-            throw new RpcException(\"Fail to start server(url: \" + url + \") \" + e.getMessage(), e);\n-        }\n-        str = url.getParameter(CLIENT_KEY);\n-        if (str != null && str.length() > 0) {\n-            Set<String> supportedTypes = ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions();\n-            if (!supportedTypes.contains(str)) {\n-                throw new RpcException(\"Unsupported client type: \" + str);\n-            }\n-        }\n-        return new ThriftProtocolServer(server);\n-    }\n-\n-    private class ThriftProtocolServer implements ProtocolServer {\n-\n-        private ExchangeServer server;\n-        private String address;\n-\n-        public ThriftProtocolServer(ExchangeServer server) {\n-            this.server = server;\n-        }\n-\n-        @Override\n-        public RemotingServer getRemotingServer() {\n-            return server;\n-        }\n-\n-        @Override\n-        public String getAddress() {\n-            return StringUtils.isNotEmpty(address) ? address : server.getUrl().getAddress();\n-        }\n-\n-        @Override\n-        public void setAddress(String address) {\n-            this.address = address;\n-        }\n-\n-        @Override\n-        public URL getUrl() {\n-            return server.getUrl();\n-        }\n-\n-        @Override\n-        public void reset(URL url) {\n-            server.reset(url);\n-        }\n-\n-        @Override\n-        public void close() {\n-            server.close();\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.config.ConfigurationUtils;\r\n+import org.apache.dubbo.common.extension.ExtensionLoader;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.remoting.Channel;\r\n+import org.apache.dubbo.remoting.RemotingException;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.Transporter;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeChannel;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeClient;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeHandler;\r\n+import org.apache.dubbo.remoting.exchange.ExchangeServer;\r\n+import org.apache.dubbo.remoting.exchange.Exchangers;\r\n+import org.apache.dubbo.remoting.exchange.support.ExchangeHandlerAdapter;\r\n+import org.apache.dubbo.rpc.Exporter;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProtocol;\r\n+import org.apache.dubbo.rpc.protocol.dubbo.DubboExporter;\r\n+\r\n+import java.util.ArrayList;\r\n+import java.util.Set;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.function.Function;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PATH_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CHANNEL_READONLYEVENT_SENT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CLIENT_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CODEC_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.CONNECTIONS_KEY;\r\n+import static org.apache.dubbo.remoting.Constants.SERVER_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.IS_SERVER_KEY;\r\n+\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class ThriftProtocol extends AbstractProtocol {\r\n+\r\n+    public static final int DEFAULT_PORT = 40880;\r\n+\r\n+    public static final String NAME = \"thrift\";\r\n+\r\n+    private ExchangeHandler handler = new ExchangeHandlerAdapter() {\r\n+\r\n+        @Override\r\n+        public CompletableFuture<Object> reply(ExchangeChannel channel, Object msg) throws RemotingException {\r\n+\r\n+            if (msg instanceof Invocation) {\r\n+                Invocation inv = (Invocation) msg;\r\n+                String path = (String) inv.getObjectAttachments().get(PATH_KEY);\r\n+                String serviceKey = serviceKey(channel.getLocalAddress().getPort(),\r\n+                        path, null, null);\r\n+                DubboExporter<?> exporter = (DubboExporter<?>) exporterMap.get(serviceKey);\r\n+                if (exporter == null) {\r\n+                    throw new RemotingException(channel,\r\n+                            \"Not found exported service: \"\r\n+                                    + serviceKey\r\n+                                    + \" in \"\r\n+                                    + exporterMap.keySet()\r\n+                                    + \", may be version or group mismatch \"\r\n+                                    + \", channel: consumer: \"\r\n+                                    + channel.getRemoteAddress()\r\n+                                    + \" --> provider: \"\r\n+                                    + channel.getLocalAddress()\r\n+                                    + \", message:\" + msg);\r\n+                }\r\n+\r\n+                RpcContext.getContext().setRemoteAddress(channel.getRemoteAddress());\r\n+\r\n+                Result result = exporter.getInvoker().invoke(inv);\r\n+                return result.thenApply(Function.identity());\r\n+            }\r\n+\r\n+            throw new RemotingException(channel,\r\n+                    \"Unsupported request: \"\r\n+                            + (msg.getClass().getName() + \": \" + msg)\r\n+                            + \", channel: consumer: \"\r\n+                            + channel.getRemoteAddress()\r\n+                            + \" --> provider: \"\r\n+                            + channel.getLocalAddress());\r\n+        }\r\n+\r\n+        @Override\r\n+        public void received(Channel channel, Object message) throws RemotingException {\r\n+            if (message instanceof Invocation) {\r\n+                reply((ExchangeChannel) channel, message);\r\n+            } else {\r\n+                super.received(channel, message);\r\n+            }\r\n+        }\r\n+\r\n+    };\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Exporter<T> export(Invoker<T> invoker) throws RpcException {\r\n+\r\n+        // can use thrift codec only\r\n+        URL url = invoker.getUrl().addParameter(CODEC_KEY, ThriftCodec.NAME);\r\n+        // find server.\r\n+        String key = url.getAddress();\r\n+        // client can expose a service for server to invoke only.\r\n+        boolean isServer = url.getParameter(IS_SERVER_KEY, true);\r\n+        if (isServer && !serverMap.containsKey(key)) {\r\n+            serverMap.put(key, getServer(url));\r\n+        }\r\n+        // export service.\r\n+        key = serviceKey(url);\r\n+        DubboExporter<T> exporter = new DubboExporter<T>(invoker, key, exporterMap);\r\n+        exporterMap.put(key, exporter);\r\n+\r\n+        return exporter;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+\r\n+        super.destroy();\r\n+\r\n+        for (String key : new ArrayList<String>(serverMap.keySet())) {\r\n+\r\n+            ProtocolServer protocolServer = serverMap.remove(key);\r\n+\r\n+            if (protocolServer != null) {\r\n+                RemotingServer server = protocolServer.getRemotingServer();\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Close dubbo server: \" + server.getLocalAddress());\r\n+                    }\r\n+                    server.close(ConfigurationUtils.getServerShutdownTimeout());\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            } // ~ end of if ( server != null )\r\n+\r\n+        } // ~ end of loop serverMap\r\n+\r\n+    } // ~ end of method destroy\r\n+\r\n+    @Override\r\n+    protected <T> Invoker<T> protocolBindingRefer(Class<T> type, URL url) throws RpcException {\r\n+\r\n+        ThriftInvoker<T> invoker = new ThriftInvoker<T>(type, url, getClients(url), invokers);\r\n+\r\n+        invokers.add(invoker);\r\n+\r\n+        return invoker;\r\n+\r\n+    }\r\n+\r\n+    private ExchangeClient[] getClients(URL url) {\r\n+\r\n+        int connections = url.getParameter(CONNECTIONS_KEY, 1);\r\n+\r\n+        ExchangeClient[] clients = new ExchangeClient[connections];\r\n+\r\n+        for (int i = 0; i < clients.length; i++) {\r\n+            clients[i] = initClient(url);\r\n+        }\r\n+        return clients;\r\n+    }\r\n+\r\n+    private ExchangeClient initClient(URL url) {\r\n+\r\n+        ExchangeClient client;\r\n+\r\n+//        url = url.addParameter(CODEC_KEY, ThriftCodec.NAME);\r\n+\r\n+        try {\r\n+            client = Exchangers.connect(url);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(\"Fail to create remoting client for service(\" + url\r\n+                    + \"): \" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        return client;\r\n+\r\n+    }\r\n+\r\n+    private ProtocolServer getServer(URL url) {\r\n+        // enable sending readonly event when server closes by default\r\n+        url = url.addParameterIfAbsent(CHANNEL_READONLYEVENT_SENT_KEY, Boolean.TRUE.toString());\r\n+        String str = url.getParameter(SERVER_KEY, org.apache.dubbo.rpc.Constants.DEFAULT_REMOTING_SERVER);\r\n+\r\n+        if (str != null && str.length() > 0 && !ExtensionLoader.getExtensionLoader(Transporter.class).hasExtension(str)) {\r\n+            throw new RpcException(\"Unsupported server type: \" + str + \", url: \" + url);\r\n+        }\r\n+\r\n+        ExchangeServer server;\r\n+        try {\r\n+            server = Exchangers.bind(url, handler);\r\n+        } catch (RemotingException e) {\r\n+            throw new RpcException(\"Fail to start server(url: \" + url + \") \" + e.getMessage(), e);\r\n+        }\r\n+        str = url.getParameter(CLIENT_KEY);\r\n+        if (str != null && str.length() > 0) {\r\n+            Set<String> supportedTypes = ExtensionLoader.getExtensionLoader(Transporter.class).getSupportedExtensions();\r\n+            if (!supportedTypes.contains(str)) {\r\n+                throw new RpcException(\"Unsupported client type: \" + str);\r\n+            }\r\n+        }\r\n+        return new ThriftProtocolServer(server);\r\n+    }\r\n+\r\n+    private class ThriftProtocolServer implements ProtocolServer {\r\n+\r\n+        private ExchangeServer server;\r\n+        private String address;\r\n+\r\n+        public ThriftProtocolServer(ExchangeServer server) {\r\n+            this.server = server;\r\n+        }\r\n+\r\n+        @Override\r\n+        public RemotingServer getRemotingServer() {\r\n+            return server;\r\n+        }\r\n+\r\n+        @Override\r\n+        public String getAddress() {\r\n+            return StringUtils.isNotEmpty(address) ? address : server.getUrl().getAddress();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void setAddress(String address) {\r\n+            this.address = address;\r\n+        }\r\n+\r\n+        @Override\r\n+        public URL getUrl() {\r\n+            return server.getUrl();\r\n+        }\r\n+\r\n+        @Override\r\n+        public void reset(URL url) {\r\n+            server.reset(url);\r\n+        }\r\n+\r\n+        @Override\r\n+        public void close() {\r\n+            server.close();\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftType.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftType.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-\n-import java.util.HashMap;\n-import java.util.Map;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public enum ThriftType {\n-\n-    BOOL, BYTE, I16, I32, I64, DOUBLE, STRING;\n-\n-    private static final Map<Class<?>, ThriftType> TYPES =\n-            new HashMap<Class<?>, ThriftType>();\n-\n-    static {\n-        put(boolean.class, BOOL);\n-        put(Boolean.class, BOOL);\n-        put(byte.class, BYTE);\n-        put(Byte.class, BYTE);\n-        put(short.class, I16);\n-    }\n-\n-    public static ThriftType get(Class<?> key) {\n-        if (key != null) {\n-            return TYPES.get(key);\n-        }\n-        throw new NullPointerException(\"key == null\");\n-    }\n-\n-    private static void put(Class<?> key, ThriftType value) {\n-        TYPES.put(key, value);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public enum ThriftType {\r\n+\r\n+    BOOL, BYTE, I16, I32, I64, DOUBLE, STRING;\r\n+\r\n+    private static final Map<Class<?>, ThriftType> TYPES =\r\n+            new HashMap<Class<?>, ThriftType>();\r\n+\r\n+    static {\r\n+        put(boolean.class, BOOL);\r\n+        put(Boolean.class, BOOL);\r\n+        put(byte.class, BYTE);\r\n+        put(Byte.class, BYTE);\r\n+        put(short.class, I16);\r\n+    }\r\n+\r\n+    public static ThriftType get(Class<?> key) {\r\n+        if (key != null) {\r\n+            return TYPES.get(key);\r\n+        }\r\n+        throw new NullPointerException(\"key == null\");\r\n+    }\r\n+\r\n+    private static void put(Class<?> key, ThriftType value) {\r\n+        TYPES.put(key, value);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ThriftUtils.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ThriftUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,135 +1,135 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift;\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\n- */\n-@Deprecated\n-public class ThriftUtils {\n-\n-    /**\n-     * Generate class name which represents service arguments.\n-     *\n-     * @param serviceName service name\n-     * @param methodName method name\n-     * @return method args class name or null\n-     */\n-    public static String generateMethodArgsClassName(String serviceName, String methodName) {\n-\n-        int index = serviceName.lastIndexOf(\".\");\n-\n-        if (index > 0) {\n-\n-            return new StringBuilder(32)\n-                    .append(serviceName, 0, index + 1)\n-                    .append(\"$__\")\n-                    .append(serviceName.substring(index + 1))\n-                    .append(\"Stub$\")\n-                    .append(methodName)\n-                    .append(\"_args\")\n-                    .toString();\n-\n-        } else {\n-            return new StringBuffer(32)\n-                    .append(\"$__\")\n-                    .append(serviceName)\n-                    .append(\"Stub$\")\n-                    .append(methodName)\n-                    .append(\"_args\")\n-                    .toString();\n-        }\n-\n-    }\n-\n-    public static String generateMethodResultClassName(String serviceName, String method) {\n-\n-        int index = serviceName.lastIndexOf(\".\");\n-\n-        if (index > 0) {\n-\n-            return new StringBuilder(32)\n-                    .append(serviceName, 0, index + 1)\n-                    .append(\"$__\")\n-                    .append(serviceName.substring(index + 1))\n-                    .append(\"Stub$\")\n-                    .append(method)\n-                    .append(\"_result\")\n-                    .toString();\n-\n-        } else {\n-            return new StringBuilder(32)\n-                    .append(\"$__\")\n-                    .append(serviceName)\n-                    .append(\"Stub$\")\n-                    .append(method)\n-                    .append(\"_result\")\n-                    .toString();\n-        }\n-\n-    }\n-\n-    public static String generateSetMethodName(String fieldName) {\n-\n-        return new StringBuilder(16)\n-                .append(\"set\")\n-                .append(Character.toUpperCase(fieldName.charAt(0)))\n-                .append(fieldName.substring(1))\n-                .toString();\n-\n-    }\n-\n-    public static String generateGetMethodName(String fieldName) {\n-        return new StringBuffer(16)\n-                .append(\"get\")\n-                .append(Character.toUpperCase(fieldName.charAt(0)))\n-                .append(fieldName.substring(1))\n-                .toString();\n-    }\n-\n-    public static String generateMethodArgsClassNameThrift(String serviceName, String methodName) {\n-\n-        int index = serviceName.indexOf(\"$\");\n-\n-        if (index > 0) {\n-            return new StringBuilder(32)\n-                    .append(serviceName, 0, index + 1)\n-                    .append(methodName)\n-                    .append(\"_args\")\n-                    .toString();\n-        }\n-\n-        return null;\n-\n-    }\n-\n-    public static String generateMethodResultClassNameThrift(String serviceName, String methodName) {\n-\n-        int index = serviceName.indexOf(\"$\");\n-\n-        if (index > 0) {\n-            return new StringBuilder(32)\n-                    .append(serviceName, 0, index + 1)\n-                    .append(methodName)\n-                    .append(\"_result\")\n-                    .toString();\n-        }\n-\n-        return null;\n-\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift;\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift instead\r\n+ */\r\n+@Deprecated\r\n+public class ThriftUtils {\r\n+\r\n+    /**\r\n+     * Generate class name which represents service arguments.\r\n+     *\r\n+     * @param serviceName service name\r\n+     * @param methodName method name\r\n+     * @return method args class name or null\r\n+     */\r\n+    public static String generateMethodArgsClassName(String serviceName, String methodName) {\r\n+\r\n+        int index = serviceName.lastIndexOf(\".\");\r\n+\r\n+        if (index > 0) {\r\n+\r\n+            return new StringBuilder(32)\r\n+                    .append(serviceName, 0, index + 1)\r\n+                    .append(\"$__\")\r\n+                    .append(serviceName.substring(index + 1))\r\n+                    .append(\"Stub$\")\r\n+                    .append(methodName)\r\n+                    .append(\"_args\")\r\n+                    .toString();\r\n+\r\n+        } else {\r\n+            return new StringBuffer(32)\r\n+                    .append(\"$__\")\r\n+                    .append(serviceName)\r\n+                    .append(\"Stub$\")\r\n+                    .append(methodName)\r\n+                    .append(\"_args\")\r\n+                    .toString();\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    public static String generateMethodResultClassName(String serviceName, String method) {\r\n+\r\n+        int index = serviceName.lastIndexOf(\".\");\r\n+\r\n+        if (index > 0) {\r\n+\r\n+            return new StringBuilder(32)\r\n+                    .append(serviceName, 0, index + 1)\r\n+                    .append(\"$__\")\r\n+                    .append(serviceName.substring(index + 1))\r\n+                    .append(\"Stub$\")\r\n+                    .append(method)\r\n+                    .append(\"_result\")\r\n+                    .toString();\r\n+\r\n+        } else {\r\n+            return new StringBuilder(32)\r\n+                    .append(\"$__\")\r\n+                    .append(serviceName)\r\n+                    .append(\"Stub$\")\r\n+                    .append(method)\r\n+                    .append(\"_result\")\r\n+                    .toString();\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    public static String generateSetMethodName(String fieldName) {\r\n+\r\n+        return new StringBuilder(16)\r\n+                .append(\"set\")\r\n+                .append(Character.toUpperCase(fieldName.charAt(0)))\r\n+                .append(fieldName.substring(1))\r\n+                .toString();\r\n+\r\n+    }\r\n+\r\n+    public static String generateGetMethodName(String fieldName) {\r\n+        return new StringBuffer(16)\r\n+                .append(\"get\")\r\n+                .append(Character.toUpperCase(fieldName.charAt(0)))\r\n+                .append(fieldName.substring(1))\r\n+                .toString();\r\n+    }\r\n+\r\n+    public static String generateMethodArgsClassNameThrift(String serviceName, String methodName) {\r\n+\r\n+        int index = serviceName.indexOf(\"$\");\r\n+\r\n+        if (index > 0) {\r\n+            return new StringBuilder(32)\r\n+                    .append(serviceName, 0, index + 1)\r\n+                    .append(methodName)\r\n+                    .append(\"_args\")\r\n+                    .toString();\r\n+        }\r\n+\r\n+        return null;\r\n+\r\n+    }\r\n+\r\n+    public static String generateMethodResultClassNameThrift(String serviceName, String methodName) {\r\n+\r\n+        int index = serviceName.indexOf(\"$\");\r\n+\r\n+        if (index > 0) {\r\n+            return new StringBuilder(32)\r\n+                    .append(serviceName, 0, index + 1)\r\n+                    .append(methodName)\r\n+                    .append(\"_result\")\r\n+                    .toString();\r\n+        }\r\n+\r\n+        return null;\r\n+\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/ext/MultiServiceProcessor.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/ext/MultiServiceProcessor.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,121 +1,121 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift.ext;\n-\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;\n-import org.apache.thrift.TException;\n-import org.apache.thrift.TProcessor;\n-import org.apache.thrift.protocol.TBinaryProtocol;\n-import org.apache.thrift.protocol.TProtocol;\n-import org.apache.thrift.protocol.TProtocolFactory;\n-import org.apache.thrift.transport.TIOStreamTransport;\n-\n-import java.io.ByteArrayOutputStream;\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-/**\n- * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift to instead of this module\n- */\n-@Deprecated\n-public class MultiServiceProcessor implements TProcessor {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(MultiServiceProcessor.class);\n-\n-    private ConcurrentMap<String, TProcessor> processorMap = new ConcurrentHashMap<String, TProcessor>();\n-\n-    private TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();\n-\n-    public MultiServiceProcessor() {\n-    }\n-\n-    @Override\n-    public boolean process(TProtocol in, TProtocol out) throws TException {\n-\n-        short magic = in.readI16();\n-\n-        if (magic != ThriftCodec.MAGIC) {\n-            logger.error(\"Unsupported magic \" + magic);\n-            return false;\n-        }\n-\n-        in.readI32();\n-        in.readI16();\n-        byte version = in.readByte();\n-        String serviceName = in.readString();\n-        long id = in.readI64();\n-\n-        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);\n-\n-        TIOStreamTransport transport = new TIOStreamTransport(bos);\n-\n-        TProtocol protocol = protocolFactory.getProtocol(transport);\n-\n-        TProcessor processor = processorMap.get(serviceName);\n-\n-        if (processor == null) {\n-            logger.error(\"Could not find processor for service \" + serviceName);\n-            return false;\n-        }\n-\n-        // todo if exception\n-        boolean result = processor.process(in, protocol);\n-\n-        ByteArrayOutputStream header = new ByteArrayOutputStream(512);\n-\n-        TIOStreamTransport headerTransport = new TIOStreamTransport(header);\n-\n-        TProtocol headerProtocol = protocolFactory.getProtocol(headerTransport);\n-\n-        headerProtocol.writeI16(magic);\n-        headerProtocol.writeI32(Integer.MAX_VALUE);\n-        headerProtocol.writeI16(Short.MAX_VALUE);\n-        headerProtocol.writeByte(version);\n-        headerProtocol.writeString(serviceName);\n-        headerProtocol.writeI64(id);\n-        headerProtocol.getTransport().flush();\n-\n-        out.writeI16(magic);\n-        out.writeI32(bos.size() + header.size());\n-        out.writeI16((short) (0xffff & header.size()));\n-        out.writeByte(version);\n-        out.writeString(serviceName);\n-        out.writeI64(id);\n-\n-        out.getTransport().write(bos.toByteArray());\n-        out.getTransport().flush();\n-\n-        return result;\n-\n-    }\n-\n-    public TProcessor addProcessor(Class service, TProcessor processor) {\n-        if (service != null && processor != null) {\n-            return processorMap.putIfAbsent(service.getName(), processor);\n-        }\n-        return processor;\n-    }\n-\n-    public void setProtocolFactory(TProtocolFactory factory) {\n-        if (factory != null) {\n-            this.protocolFactory = factory;\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift.ext;\r\n+\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.rpc.protocol.thrift.ThriftCodec;\r\n+import org.apache.thrift.TException;\r\n+import org.apache.thrift.TProcessor;\r\n+import org.apache.thrift.protocol.TBinaryProtocol;\r\n+import org.apache.thrift.protocol.TProtocol;\r\n+import org.apache.thrift.protocol.TProtocolFactory;\r\n+import org.apache.thrift.transport.TIOStreamTransport;\r\n+\r\n+import java.io.ByteArrayOutputStream;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+/**\r\n+ * @since 2.7.0, use https://github.com/dubbo/dubbo-rpc-native-thrift to instead of this module\r\n+ */\r\n+@Deprecated\r\n+public class MultiServiceProcessor implements TProcessor {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(MultiServiceProcessor.class);\r\n+\r\n+    private ConcurrentMap<String, TProcessor> processorMap = new ConcurrentHashMap<String, TProcessor>();\r\n+\r\n+    private TProtocolFactory protocolFactory = new TBinaryProtocol.Factory();\r\n+\r\n+    public MultiServiceProcessor() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean process(TProtocol in, TProtocol out) throws TException {\r\n+\r\n+        short magic = in.readI16();\r\n+\r\n+        if (magic != ThriftCodec.MAGIC) {\r\n+            logger.error(\"Unsupported magic \" + magic);\r\n+            return false;\r\n+        }\r\n+\r\n+        in.readI32();\r\n+        in.readI16();\r\n+        byte version = in.readByte();\r\n+        String serviceName = in.readString();\r\n+        long id = in.readI64();\r\n+\r\n+        ByteArrayOutputStream bos = new ByteArrayOutputStream(1024);\r\n+\r\n+        TIOStreamTransport transport = new TIOStreamTransport(bos);\r\n+\r\n+        TProtocol protocol = protocolFactory.getProtocol(transport);\r\n+\r\n+        TProcessor processor = processorMap.get(serviceName);\r\n+\r\n+        if (processor == null) {\r\n+            logger.error(\"Could not find processor for service \" + serviceName);\r\n+            return false;\r\n+        }\r\n+\r\n+        // todo if exception\r\n+        boolean result = processor.process(in, protocol);\r\n+\r\n+        ByteArrayOutputStream header = new ByteArrayOutputStream(512);\r\n+\r\n+        TIOStreamTransport headerTransport = new TIOStreamTransport(header);\r\n+\r\n+        TProtocol headerProtocol = protocolFactory.getProtocol(headerTransport);\r\n+\r\n+        headerProtocol.writeI16(magic);\r\n+        headerProtocol.writeI32(Integer.MAX_VALUE);\r\n+        headerProtocol.writeI16(Short.MAX_VALUE);\r\n+        headerProtocol.writeByte(version);\r\n+        headerProtocol.writeString(serviceName);\r\n+        headerProtocol.writeI64(id);\r\n+        headerProtocol.getTransport().flush();\r\n+\r\n+        out.writeI16(magic);\r\n+        out.writeI32(bos.size() + header.size());\r\n+        out.writeI16((short) (0xffff & header.size()));\r\n+        out.writeByte(version);\r\n+        out.writeString(serviceName);\r\n+        out.writeI64(id);\r\n+\r\n+        out.getTransport().write(bos.toByteArray());\r\n+        out.getTransport().flush();\r\n+\r\n+        return result;\r\n+\r\n+    }\r\n+\r\n+    public TProcessor addProcessor(Class service, TProcessor processor) {\r\n+        if (service != null && processor != null) {\r\n+            return processorMap.putIfAbsent(service.getName(), processor);\r\n+        }\r\n+        return processor;\r\n+    }\r\n+\r\n+    public void setProtocolFactory(TProtocolFactory factory) {\r\n+        if (factory != null) {\r\n+            this.protocolFactory = factory;\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/thrift/io/RandomAccessByteArrayOutputStream.java", "source2": "org/apache/dubbo/rpc/protocol/thrift/io/RandomAccessByteArrayOutputStream.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,117 +1,117 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.thrift.io;\n-\n-import org.apache.dubbo.common.io.Bytes;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-import java.io.UnsupportedEncodingException;\n-import java.nio.ByteBuffer;\n-@Deprecated\n-public class RandomAccessByteArrayOutputStream extends OutputStream {\n-\n-    protected byte[] buffer;\n-\n-    protected int count;\n-\n-    public RandomAccessByteArrayOutputStream() {\n-\n-        this(32);\n-    }\n-\n-    public RandomAccessByteArrayOutputStream(int size) {\n-\n-        if (size < 0) {\n-            throw new IllegalArgumentException(\"Negative initial size: \" + size);\n-        }\n-        buffer = new byte[size];\n-    }\n-\n-    @Override\n-    public void write(int b) {\n-\n-        int newcount = count + 1;\n-        if (newcount > buffer.length) {\n-            buffer = Bytes.copyOf(buffer, Math.max(buffer.length << 1, newcount));\n-        }\n-        buffer[count] = (byte) b;\n-        count = newcount;\n-    }\n-\n-    @Override\n-    public void write(byte[] b, int off, int len) {\n-\n-        if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {\n-            throw new IndexOutOfBoundsException();\n-        }\n-        if (len == 0) {\n-            return;\n-        }\n-        int newcount = count + len;\n-        if (newcount > buffer.length) {\n-            buffer = Bytes.copyOf(buffer, Math.max(buffer.length << 1, newcount));\n-        }\n-        System.arraycopy(b, off, buffer, count, len);\n-        count = newcount;\n-    }\n-\n-    public int size() {\n-\n-        return count;\n-    }\n-\n-    public void setWriteIndex(int index) {\n-        count = index;\n-    }\n-\n-    public void reset() {\n-\n-        count = 0;\n-    }\n-\n-    public byte[] toByteArray() {\n-\n-        return Bytes.copyOf(buffer, count);\n-    }\n-\n-    public ByteBuffer toByteBuffer() {\n-\n-        return ByteBuffer.wrap(buffer, 0, count);\n-    }\n-\n-    public void writeTo(OutputStream out) throws IOException {\n-\n-        out.write(buffer, 0, count);\n-    }\n-\n-    @Override\n-    public String toString() {\n-\n-        return new String(buffer, 0, count);\n-    }\n-\n-    public String toString(String charset) throws UnsupportedEncodingException {\n-\n-        return new String(buffer, 0, count, charset);\n-    }\n-\n-    @Override\n-    public void close() throws IOException {\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.thrift.io;\r\n+\r\n+import org.apache.dubbo.common.io.Bytes;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+import java.io.UnsupportedEncodingException;\r\n+import java.nio.ByteBuffer;\r\n+@Deprecated\r\n+public class RandomAccessByteArrayOutputStream extends OutputStream {\r\n+\r\n+    protected byte[] buffer;\r\n+\r\n+    protected int count;\r\n+\r\n+    public RandomAccessByteArrayOutputStream() {\r\n+\r\n+        this(32);\r\n+    }\r\n+\r\n+    public RandomAccessByteArrayOutputStream(int size) {\r\n+\r\n+        if (size < 0) {\r\n+            throw new IllegalArgumentException(\"Negative initial size: \" + size);\r\n+        }\r\n+        buffer = new byte[size];\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(int b) {\r\n+\r\n+        int newcount = count + 1;\r\n+        if (newcount > buffer.length) {\r\n+            buffer = Bytes.copyOf(buffer, Math.max(buffer.length << 1, newcount));\r\n+        }\r\n+        buffer[count] = (byte) b;\r\n+        count = newcount;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void write(byte[] b, int off, int len) {\r\n+\r\n+        if ((off < 0) || (off > b.length) || (len < 0) || ((off + len) > b.length) || ((off + len) < 0)) {\r\n+            throw new IndexOutOfBoundsException();\r\n+        }\r\n+        if (len == 0) {\r\n+            return;\r\n+        }\r\n+        int newcount = count + len;\r\n+        if (newcount > buffer.length) {\r\n+            buffer = Bytes.copyOf(buffer, Math.max(buffer.length << 1, newcount));\r\n+        }\r\n+        System.arraycopy(b, off, buffer, count, len);\r\n+        count = newcount;\r\n+    }\r\n+\r\n+    public int size() {\r\n+\r\n+        return count;\r\n+    }\r\n+\r\n+    public void setWriteIndex(int index) {\r\n+        count = index;\r\n+    }\r\n+\r\n+    public void reset() {\r\n+\r\n+        count = 0;\r\n+    }\r\n+\r\n+    public byte[] toByteArray() {\r\n+\r\n+        return Bytes.copyOf(buffer, count);\r\n+    }\r\n+\r\n+    public ByteBuffer toByteBuffer() {\r\n+\r\n+        return ByteBuffer.wrap(buffer, 0, count);\r\n+    }\r\n+\r\n+    public void writeTo(OutputStream out) throws IOException {\r\n+\r\n+        out.write(buffer, 0, count);\r\n+    }\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+\r\n+        return new String(buffer, 0, count);\r\n+    }\r\n+\r\n+    public String toString(String charset) throws UnsupportedEncodingException {\r\n+\r\n+        return new String(buffer, 0, count, charset);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void close() throws IOException {\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/protocol/webservice/WebServiceProtocol.java", "source2": "org/apache/dubbo/rpc/protocol/webservice/WebServiceProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,211 +1,211 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.protocol.webservice;\n-\n-import org.apache.cxf.binding.soap.SoapTransportFactory;\n-import org.apache.cxf.common.util.StringUtils;\n-import org.apache.cxf.endpoint.Server;\n-import org.apache.cxf.service.model.OperationInfo;\n-import org.apache.cxf.transport.Destination;\n-\n-import org.apache.cxf.transport.http.HTTPConduit;\n-import org.apache.cxf.transport.http.AbstractHTTPDestination;\n-import org.apache.cxf.transport.http.DestinationRegistry;\n-import org.apache.cxf.transport.http.DestinationRegistryImpl;\n-import org.apache.cxf.transport.http.HttpDestinationFactory;\n-import org.apache.cxf.wsdl.service.factory.AbstractServiceConfiguration;\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.Constants;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.remoting.http.servlet.DispatcherServlet;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import org.apache.cxf.bus.extension.ExtensionManagerBus;\n-import org.apache.cxf.endpoint.Client;\n-import org.apache.cxf.frontend.ClientProxy;\n-import org.apache.cxf.frontend.ClientProxyFactoryBean;\n-import org.apache.cxf.frontend.ServerFactoryBean;\n-import org.apache.cxf.interceptor.Fault;\n-import org.apache.cxf.transport.servlet.ServletController;\n-import org.apache.cxf.transport.servlet.ServletDestinationFactory;\n-import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;\n-\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServlet;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.lang.reflect.Method;\n-import java.net.SocketTimeoutException;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.SERVICE_PATH_PREFIX;\n-import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_SERVER;\n-import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_SERVER_SERVLET;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-\n-/**\n- * WebServiceProtocol.\n- */\n-public class WebServiceProtocol extends AbstractProxyProtocol {\n-\n-    public static final int DEFAULT_PORT = 80;\n-\n-    private final ExtensionManagerBus bus = new ExtensionManagerBus();\n-\n-    private SoapTransportFactory transportFactory = null;\n-\n-    private ServerFactoryBean serverFactoryBean = null;\n-\n-    private DestinationRegistry destinationRegistry=null;\n-\n-    private HttpBinder httpBinder;\n-\n-    private Server server = null;\n-\n-    public WebServiceProtocol() {\n-        super(Fault.class);\n-        bus.setExtension(new ServletDestinationFactory(), HttpDestinationFactory.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return DEFAULT_PORT;\n-    }\n-\n-\n-    @Override\n-    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\n-        transportFactory = new SoapTransportFactory();\n-        destinationRegistry  = new DestinationRegistryImpl();\n-        String addr = getAddr(url);\n-        ProtocolServer protocolServer = serverMap.get(addr);\n-        if (protocolServer == null) {\n-            RemotingServer remotingServer = httpBinder.bind(url, new WebServiceHandler());\n-            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\n-        }\n-        serverFactoryBean = new ServerFactoryBean();\n-        serverFactoryBean.setAddress(url.getAbsolutePath());\n-        serverFactoryBean.setServiceClass(type);\n-        serverFactoryBean.setServiceBean(impl);\n-        serverFactoryBean.setBus(bus);\n-        serverFactoryBean.setDestinationFactory(transportFactory);\n-        serverFactoryBean.getServiceFactory().getConfigurations().add(new URLHashMethodNameSoapActionServiceConfiguration());\n-        server = serverFactoryBean.create();\n-        return new Runnable() {\n-            @Override\n-            public void run() {\n-                if(serverFactoryBean.getServer()!= null) {\n-                    serverFactoryBean.getServer().destroy();\n-                }\n-                if(serverFactoryBean.getBus()!=null) {\n-                    serverFactoryBean.getBus().shutdown(true);\n-                }\n-                ProtocolServer httpServer = serverMap.get(addr);\n-                if(httpServer != null){\n-                    httpServer.close();\n-                    serverMap.remove(addr);\n-                }\n-            }\n-        };\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\n-        ClientProxyFactoryBean proxyFactoryBean = new ClientProxyFactoryBean();\n-        String servicePathPrefix = url.getParameter(SERVICE_PATH_PREFIX);\n-        if (!StringUtils.isEmpty(servicePathPrefix) && PROTOCOL_SERVER_SERVLET.equals(url.getParameter(PROTOCOL_SERVER))) {\n-            url = url.setPath(servicePathPrefix + \"/\" + url.getPath());\n-        }\n-        proxyFactoryBean.setAddress(url.setProtocol(\"http\").toIdentityString());\n-        proxyFactoryBean.setServiceClass(serviceType);\n-        proxyFactoryBean.setBus(bus);\n-        T ref = (T) proxyFactoryBean.create();\n-        Client proxy = ClientProxy.getClient(ref);\n-        HTTPConduit conduit = (HTTPConduit) proxy.getConduit();\n-        HTTPClientPolicy policy = new HTTPClientPolicy();\n-        policy.setConnectionTimeout(url.getParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT));\n-        policy.setReceiveTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT));\n-        conduit.setClient(policy);\n-        return ref;\n-    }\n-\n-    @Override\n-    protected int getErrorCode(Throwable e) {\n-        if (e instanceof Fault) {\n-            e = e.getCause();\n-        }\n-        if (e instanceof SocketTimeoutException) {\n-            return RpcException.TIMEOUT_EXCEPTION;\n-        } else if (e instanceof IOException) {\n-            return RpcException.NETWORK_EXCEPTION;\n-        }\n-        return super.getErrorCode(e);\n-    }\n-\n-    private class WebServiceHandler implements HttpHandler {\n-\n-        private volatile ServletController servletController;\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\n-            if (servletController == null) {\n-                HttpServlet httpServlet = DispatcherServlet.getInstance();\n-                if (httpServlet == null) {\n-                    response.sendError(500, \"No such DispatcherServlet instance.\");\n-                    return;\n-                }\n-                synchronized (this) {\n-                    if (servletController == null) {\n-\n-                        if(server == null){\n-                            server = WebServiceProtocol.this.serverFactoryBean.getServer();\n-                        }\n-                        Destination d = WebServiceProtocol.this.transportFactory.getDestination(server.getEndpoint().getEndpointInfo(),bus);\n-                        destinationRegistry.addDestination((AbstractHTTPDestination) d);\n-                        this.servletController = new ServletController(destinationRegistry, httpServlet.getServletConfig(), httpServlet);\n-                    }\n-                }\n-            }\n-            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-            servletController.invoke(request, response);\n-        }\n-\n-    }\n-\n-    private class URLHashMethodNameSoapActionServiceConfiguration extends AbstractServiceConfiguration {\n-        public String getAction(OperationInfo op, Method method) {\n-            String uri = op.getName().getNamespaceURI();\n-            String action = op.getName().getLocalPart();\n-            if (StringUtils.isEmpty(action)) {\n-                action = method.getName();\n-            }\n-            return uri+\"#\"+action;\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.protocol.webservice;\r\n+\r\n+import org.apache.cxf.binding.soap.SoapTransportFactory;\r\n+import org.apache.cxf.common.util.StringUtils;\r\n+import org.apache.cxf.endpoint.Server;\r\n+import org.apache.cxf.service.model.OperationInfo;\r\n+import org.apache.cxf.transport.Destination;\r\n+\r\n+import org.apache.cxf.transport.http.HTTPConduit;\r\n+import org.apache.cxf.transport.http.AbstractHTTPDestination;\r\n+import org.apache.cxf.transport.http.DestinationRegistry;\r\n+import org.apache.cxf.transport.http.DestinationRegistryImpl;\r\n+import org.apache.cxf.transport.http.HttpDestinationFactory;\r\n+import org.apache.cxf.wsdl.service.factory.AbstractServiceConfiguration;\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.Constants;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.remoting.http.servlet.DispatcherServlet;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import org.apache.cxf.bus.extension.ExtensionManagerBus;\r\n+import org.apache.cxf.endpoint.Client;\r\n+import org.apache.cxf.frontend.ClientProxy;\r\n+import org.apache.cxf.frontend.ClientProxyFactoryBean;\r\n+import org.apache.cxf.frontend.ServerFactoryBean;\r\n+import org.apache.cxf.interceptor.Fault;\r\n+import org.apache.cxf.transport.servlet.ServletController;\r\n+import org.apache.cxf.transport.servlet.ServletDestinationFactory;\r\n+import org.apache.cxf.transports.http.configuration.HTTPClientPolicy;\r\n+\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServlet;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Method;\r\n+import java.net.SocketTimeoutException;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.SERVICE_PATH_PREFIX;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.DEFAULT_TIMEOUT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_SERVER;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.PROTOCOL_SERVER_SERVLET;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+\r\n+/**\r\n+ * WebServiceProtocol.\r\n+ */\r\n+public class WebServiceProtocol extends AbstractProxyProtocol {\r\n+\r\n+    public static final int DEFAULT_PORT = 80;\r\n+\r\n+    private final ExtensionManagerBus bus = new ExtensionManagerBus();\r\n+\r\n+    private SoapTransportFactory transportFactory = null;\r\n+\r\n+    private ServerFactoryBean serverFactoryBean = null;\r\n+\r\n+    private DestinationRegistry destinationRegistry=null;\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    private Server server = null;\r\n+\r\n+    public WebServiceProtocol() {\r\n+        super(Fault.class);\r\n+        bus.setExtension(new ServletDestinationFactory(), HttpDestinationFactory.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return DEFAULT_PORT;\r\n+    }\r\n+\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\r\n+        transportFactory = new SoapTransportFactory();\r\n+        destinationRegistry  = new DestinationRegistryImpl();\r\n+        String addr = getAddr(url);\r\n+        ProtocolServer protocolServer = serverMap.get(addr);\r\n+        if (protocolServer == null) {\r\n+            RemotingServer remotingServer = httpBinder.bind(url, new WebServiceHandler());\r\n+            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\r\n+        }\r\n+        serverFactoryBean = new ServerFactoryBean();\r\n+        serverFactoryBean.setAddress(url.getAbsolutePath());\r\n+        serverFactoryBean.setServiceClass(type);\r\n+        serverFactoryBean.setServiceBean(impl);\r\n+        serverFactoryBean.setBus(bus);\r\n+        serverFactoryBean.setDestinationFactory(transportFactory);\r\n+        serverFactoryBean.getServiceFactory().getConfigurations().add(new URLHashMethodNameSoapActionServiceConfiguration());\r\n+        server = serverFactoryBean.create();\r\n+        return new Runnable() {\r\n+            @Override\r\n+            public void run() {\r\n+                if(serverFactoryBean.getServer()!= null) {\r\n+                    serverFactoryBean.getServer().destroy();\r\n+                }\r\n+                if(serverFactoryBean.getBus()!=null) {\r\n+                    serverFactoryBean.getBus().shutdown(true);\r\n+                }\r\n+                ProtocolServer httpServer = serverMap.get(addr);\r\n+                if(httpServer != null){\r\n+                    httpServer.close();\r\n+                    serverMap.remove(addr);\r\n+                }\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\r\n+        ClientProxyFactoryBean proxyFactoryBean = new ClientProxyFactoryBean();\r\n+        String servicePathPrefix = url.getParameter(SERVICE_PATH_PREFIX);\r\n+        if (!StringUtils.isEmpty(servicePathPrefix) && PROTOCOL_SERVER_SERVLET.equals(url.getParameter(PROTOCOL_SERVER))) {\r\n+            url = url.setPath(servicePathPrefix + \"/\" + url.getPath());\r\n+        }\r\n+        proxyFactoryBean.setAddress(url.setProtocol(\"http\").toIdentityString());\r\n+        proxyFactoryBean.setServiceClass(serviceType);\r\n+        proxyFactoryBean.setBus(bus);\r\n+        T ref = (T) proxyFactoryBean.create();\r\n+        Client proxy = ClientProxy.getClient(ref);\r\n+        HTTPConduit conduit = (HTTPConduit) proxy.getConduit();\r\n+        HTTPClientPolicy policy = new HTTPClientPolicy();\r\n+        policy.setConnectionTimeout(url.getParameter(Constants.CONNECT_TIMEOUT_KEY, Constants.DEFAULT_CONNECT_TIMEOUT));\r\n+        policy.setReceiveTimeout(url.getParameter(TIMEOUT_KEY, DEFAULT_TIMEOUT));\r\n+        conduit.setClient(policy);\r\n+        return ref;\r\n+    }\r\n+\r\n+    @Override\r\n+    protected int getErrorCode(Throwable e) {\r\n+        if (e instanceof Fault) {\r\n+            e = e.getCause();\r\n+        }\r\n+        if (e instanceof SocketTimeoutException) {\r\n+            return RpcException.TIMEOUT_EXCEPTION;\r\n+        } else if (e instanceof IOException) {\r\n+            return RpcException.NETWORK_EXCEPTION;\r\n+        }\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    private class WebServiceHandler implements HttpHandler {\r\n+\r\n+        private volatile ServletController servletController;\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response) throws IOException, ServletException {\r\n+            if (servletController == null) {\r\n+                HttpServlet httpServlet = DispatcherServlet.getInstance();\r\n+                if (httpServlet == null) {\r\n+                    response.sendError(500, \"No such DispatcherServlet instance.\");\r\n+                    return;\r\n+                }\r\n+                synchronized (this) {\r\n+                    if (servletController == null) {\r\n+\r\n+                        if(server == null){\r\n+                            server = WebServiceProtocol.this.serverFactoryBean.getServer();\r\n+                        }\r\n+                        Destination d = WebServiceProtocol.this.transportFactory.getDestination(server.getEndpoint().getEndpointInfo(),bus);\r\n+                        destinationRegistry.addDestination((AbstractHTTPDestination) d);\r\n+                        this.servletController = new ServletController(destinationRegistry, httpServlet.getServletConfig(), httpServlet);\r\n+                    }\r\n+                }\r\n+            }\r\n+            RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+            servletController.invoke(request, response);\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private class URLHashMethodNameSoapActionServiceConfiguration extends AbstractServiceConfiguration {\r\n+        public String getAction(OperationInfo op, Method method) {\r\n+            String uri = op.getName().getNamespaceURI();\r\n+            String action = op.getName().getLocalPart();\r\n+            if (StringUtils.isEmpty(action)) {\r\n+                action = method.getName();\r\n+            }\r\n+            return uri+\"#\"+action;\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/proxy/AbstractProxyInvoker.java", "source2": "org/apache/dubbo/rpc/proxy/AbstractProxyInvoker.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,127 +1,127 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.proxy;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.rpc.AppResponse;\n-import org.apache.dubbo.rpc.AsyncContextImpl;\n-import org.apache.dubbo.rpc.AsyncRpcResult;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.Result;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import java.lang.reflect.InvocationTargetException;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.CompletionException;\n-\n-/**\n- * This Invoker works on provider side, delegates RPC to interface implementation.\n- */\n-public abstract class AbstractProxyInvoker<T> implements Invoker<T> {\n-    Logger logger = LoggerFactory.getLogger(AbstractProxyInvoker.class);\n-\n-    private final T proxy;\n-\n-    private final Class<T> type;\n-\n-    private final URL url;\n-\n-    public AbstractProxyInvoker(T proxy, Class<T> type, URL url) {\n-        if (proxy == null) {\n-            throw new IllegalArgumentException(\"proxy == null\");\n-        }\n-        if (type == null) {\n-            throw new IllegalArgumentException(\"interface == null\");\n-        }\n-        if (!type.isInstance(proxy)) {\n-            throw new IllegalArgumentException(proxy.getClass().getName() + \" not implement interface \" + type);\n-        }\n-        this.proxy = proxy;\n-        this.type = type;\n-        this.url = url;\n-    }\n-\n-    @Override\n-    public Class<T> getInterface() {\n-        return type;\n-    }\n-\n-    @Override\n-    public URL getUrl() {\n-        return url;\n-    }\n-\n-    @Override\n-    public boolean isAvailable() {\n-        return true;\n-    }\n-\n-    @Override\n-    public void destroy() {\n-    }\n-\n-    @Override\n-    public Result invoke(Invocation invocation) throws RpcException {\n-        try {\n-            Object value = doInvoke(proxy, invocation.getMethodName(), invocation.getParameterTypes(), invocation.getArguments());\n-            CompletableFuture<Object> future = wrapWithFuture(value);\n-            CompletableFuture<AppResponse> appResponseFuture = future.handle((obj, t) -> {\n-                AppResponse result = new AppResponse(invocation);\n-                if (t != null) {\n-                    if (t instanceof CompletionException) {\n-                        result.setException(t.getCause());\n-                    } else {\n-                        result.setException(t);\n-                    }\n-                } else {\n-                    result.setValue(obj);\n-                }\n-                return result;\n-            });\n-            return new AsyncRpcResult(appResponseFuture, invocation);\n-        } catch (InvocationTargetException e) {\n-            if (RpcContext.getContext().isAsyncStarted() && !RpcContext.getContext().stopAsync()) {\n-                logger.error(\"Provider async started, but got an exception from the original method, cannot write the exception back to consumer because an async result may have returned the new thread.\", e);\n-            }\n-            return AsyncRpcResult.newDefaultAsyncResult(null, e.getTargetException(), invocation);\n-        } catch (Throwable e) {\n-            throw new RpcException(\"Failed to invoke remote proxy method \" + invocation.getMethodName() + \" to \" + getUrl() + \", cause: \" + e.getMessage(), e);\n-        }\n-    }\n-\n-\tprivate CompletableFuture<Object> wrapWithFuture(Object value) {\n-        if (RpcContext.getContext().isAsyncStarted()) {\n-            return ((AsyncContextImpl)(RpcContext.getContext().getAsyncContext())).getInternalFuture();\n-        } else if (value instanceof CompletableFuture) {\n-            return (CompletableFuture<Object>) value;\n-        }\n-        return CompletableFuture.completedFuture(value);\n-    }\n-\n-    protected abstract Object doInvoke(T proxy, String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Throwable;\n-\n-    @Override\n-    public String toString() {\n-        return getInterface() + \" -> \" + (getUrl() == null ? \" \" : getUrl().toString());\n-    }\n-\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.proxy;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.rpc.AppResponse;\r\n+import org.apache.dubbo.rpc.AsyncContextImpl;\r\n+import org.apache.dubbo.rpc.AsyncRpcResult;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.Result;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import java.lang.reflect.InvocationTargetException;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.CompletionException;\r\n+\r\n+/**\r\n+ * This Invoker works on provider side, delegates RPC to interface implementation.\r\n+ */\r\n+public abstract class AbstractProxyInvoker<T> implements Invoker<T> {\r\n+    Logger logger = LoggerFactory.getLogger(AbstractProxyInvoker.class);\r\n+\r\n+    private final T proxy;\r\n+\r\n+    private final Class<T> type;\r\n+\r\n+    private final URL url;\r\n+\r\n+    public AbstractProxyInvoker(T proxy, Class<T> type, URL url) {\r\n+        if (proxy == null) {\r\n+            throw new IllegalArgumentException(\"proxy == null\");\r\n+        }\r\n+        if (type == null) {\r\n+            throw new IllegalArgumentException(\"interface == null\");\r\n+        }\r\n+        if (!type.isInstance(proxy)) {\r\n+            throw new IllegalArgumentException(proxy.getClass().getName() + \" not implement interface \" + type);\r\n+        }\r\n+        this.proxy = proxy;\r\n+        this.type = type;\r\n+        this.url = url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public Class<T> getInterface() {\r\n+        return type;\r\n+    }\r\n+\r\n+    @Override\r\n+    public URL getUrl() {\r\n+        return url;\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean isAvailable() {\r\n+        return true;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+    }\r\n+\r\n+    @Override\r\n+    public Result invoke(Invocation invocation) throws RpcException {\r\n+        try {\r\n+            Object value = doInvoke(proxy, invocation.getMethodName(), invocation.getParameterTypes(), invocation.getArguments());\r\n+            CompletableFuture<Object> future = wrapWithFuture(value);\r\n+            CompletableFuture<AppResponse> appResponseFuture = future.handle((obj, t) -> {\r\n+                AppResponse result = new AppResponse(invocation);\r\n+                if (t != null) {\r\n+                    if (t instanceof CompletionException) {\r\n+                        result.setException(t.getCause());\r\n+                    } else {\r\n+                        result.setException(t);\r\n+                    }\r\n+                } else {\r\n+                    result.setValue(obj);\r\n+                }\r\n+                return result;\r\n+            });\r\n+            return new AsyncRpcResult(appResponseFuture, invocation);\r\n+        } catch (InvocationTargetException e) {\r\n+            if (RpcContext.getContext().isAsyncStarted() && !RpcContext.getContext().stopAsync()) {\r\n+                logger.error(\"Provider async started, but got an exception from the original method, cannot write the exception back to consumer because an async result may have returned the new thread.\", e);\r\n+            }\r\n+            return AsyncRpcResult.newDefaultAsyncResult(null, e.getTargetException(), invocation);\r\n+        } catch (Throwable e) {\r\n+            throw new RpcException(\"Failed to invoke remote proxy method \" + invocation.getMethodName() + \" to \" + getUrl() + \", cause: \" + e.getMessage(), e);\r\n+        }\r\n+    }\r\n+\r\n+\tprivate CompletableFuture<Object> wrapWithFuture(Object value) {\r\n+        if (RpcContext.getContext().isAsyncStarted()) {\r\n+            return ((AsyncContextImpl)(RpcContext.getContext().getAsyncContext())).getInternalFuture();\r\n+        } else if (value instanceof CompletableFuture) {\r\n+            return (CompletableFuture<Object>) value;\r\n+        }\r\n+        return CompletableFuture.completedFuture(value);\r\n+    }\r\n+\r\n+    protected abstract Object doInvoke(T proxy, String methodName, Class<?>[] parameterTypes, Object[] arguments) throws Throwable;\r\n+\r\n+    @Override\r\n+    public String toString() {\r\n+        return getInterface() + \" -> \" + (getUrl() == null ? \" \" : getUrl().toString());\r\n+    }\r\n+\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/proxy/InvokerInvocationHandler.java", "source2": "org/apache/dubbo/rpc/proxy/InvokerInvocationHandler.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,98 +1,98 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.proxy;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.rpc.Constants;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.model.ApplicationModel;\n-import org.apache.dubbo.rpc.model.ConsumerModel;\n-\n-import java.lang.reflect.Field;\n-import java.lang.reflect.InvocationHandler;\n-import java.lang.reflect.Method;\n-\n-/**\n- * InvokerHandler\n- */\n-public class InvokerInvocationHandler implements InvocationHandler {\n-    private static final Logger logger = LoggerFactory.getLogger(InvokerInvocationHandler.class);\n-    private final Invoker<?> invoker;\n-    private ConsumerModel consumerModel;\n-    private URL url;\n-    private String protocolServiceKey;\n-\n-    public static Field stackTraceField;\n-\n-    static {\n-        try {\n-            stackTraceField = Throwable.class.getDeclaredField(\"stackTrace\");\n-            ReflectUtils.makeAccessible(stackTraceField);\n-        } catch (NoSuchFieldException e) {\n-            // ignore\n-        }\n-    }\n-\n-    public InvokerInvocationHandler(Invoker<?> handler) {\n-        this.invoker = handler;\n-        this.url = invoker.getUrl();\n-        String serviceKey = this.url.getServiceKey();\n-        this.protocolServiceKey = this.url.getProtocolServiceKey();\n-        if (serviceKey != null) {\n-            this.consumerModel = ApplicationModel.getConsumerModel(serviceKey);\n-        }\n-    }\n-\n-    @Override\n-    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {\n-        if (method.getDeclaringClass() == Object.class) {\n-            return method.invoke(invoker, args);\n-        }\n-        String methodName = method.getName();\n-        Class<?>[] parameterTypes = method.getParameterTypes();\n-        if (parameterTypes.length == 0) {\n-            if (\"toString\".equals(methodName)) {\n-                return invoker.toString();\n-            } else if (\"$destroy\".equals(methodName)) {\n-                invoker.destroy();\n-                return null;\n-            } else if (\"hashCode\".equals(methodName)) {\n-                return invoker.hashCode();\n-            }\n-        } else if (parameterTypes.length == 1 && \"equals\".equals(methodName)) {\n-            return invoker.equals(args[0]);\n-        }\n-        RpcInvocation rpcInvocation = new RpcInvocation(method, invoker.getInterface().getName(), protocolServiceKey, args);\n-        String serviceKey = invoker.getUrl().getServiceKey();\n-        rpcInvocation.setTargetServiceUniqueName(serviceKey);\n-\n-        // invoker.getUrl() returns consumer url.\n-        RpcContext.setRpcContext(invoker.getUrl());\n-\n-        if (consumerModel != null) {\n-            rpcInvocation.put(Constants.CONSUMER_MODEL, consumerModel);\n-            rpcInvocation.put(Constants.METHOD_MODEL, consumerModel.getMethodModel(method));\n-        }\n-\n-        return invoker.invoke(rpcInvocation).recreate();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.proxy;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.rpc.Constants;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.model.ApplicationModel;\r\n+import org.apache.dubbo.rpc.model.ConsumerModel;\r\n+\r\n+import java.lang.reflect.Field;\r\n+import java.lang.reflect.InvocationHandler;\r\n+import java.lang.reflect.Method;\r\n+\r\n+/**\r\n+ * InvokerHandler\r\n+ */\r\n+public class InvokerInvocationHandler implements InvocationHandler {\r\n+    private static final Logger logger = LoggerFactory.getLogger(InvokerInvocationHandler.class);\r\n+    private final Invoker<?> invoker;\r\n+    private ConsumerModel consumerModel;\r\n+    private URL url;\r\n+    private String protocolServiceKey;\r\n+\r\n+    public static Field stackTraceField;\r\n+\r\n+    static {\r\n+        try {\r\n+            stackTraceField = Throwable.class.getDeclaredField(\"stackTrace\");\r\n+            ReflectUtils.makeAccessible(stackTraceField);\r\n+        } catch (NoSuchFieldException e) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    public InvokerInvocationHandler(Invoker<?> handler) {\r\n+        this.invoker = handler;\r\n+        this.url = invoker.getUrl();\r\n+        String serviceKey = this.url.getServiceKey();\r\n+        this.protocolServiceKey = this.url.getProtocolServiceKey();\r\n+        if (serviceKey != null) {\r\n+            this.consumerModel = ApplicationModel.getConsumerModel(serviceKey);\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {\r\n+        if (method.getDeclaringClass() == Object.class) {\r\n+            return method.invoke(invoker, args);\r\n+        }\r\n+        String methodName = method.getName();\r\n+        Class<?>[] parameterTypes = method.getParameterTypes();\r\n+        if (parameterTypes.length == 0) {\r\n+            if (\"toString\".equals(methodName)) {\r\n+                return invoker.toString();\r\n+            } else if (\"$destroy\".equals(methodName)) {\r\n+                invoker.destroy();\r\n+                return null;\r\n+            } else if (\"hashCode\".equals(methodName)) {\r\n+                return invoker.hashCode();\r\n+            }\r\n+        } else if (parameterTypes.length == 1 && \"equals\".equals(methodName)) {\r\n+            return invoker.equals(args[0]);\r\n+        }\r\n+        RpcInvocation rpcInvocation = new RpcInvocation(method, invoker.getInterface().getName(), protocolServiceKey, args);\r\n+        String serviceKey = invoker.getUrl().getServiceKey();\r\n+        rpcInvocation.setTargetServiceUniqueName(serviceKey);\r\n+\r\n+        // invoker.getUrl() returns consumer url.\r\n+        RpcContext.setRpcContext(invoker.getUrl());\r\n+\r\n+        if (consumerModel != null) {\r\n+            rpcInvocation.put(Constants.CONSUMER_MODEL, consumerModel);\r\n+            rpcInvocation.put(Constants.METHOD_MODEL, consumerModel.getMethodModel(method));\r\n+        }\r\n+\r\n+        return invoker.invoke(rpcInvocation).recreate();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/proxy/javassist/JavassistProxyFactory.java", "source2": "org/apache/dubbo/rpc/proxy/javassist/JavassistProxyFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,52 +1,52 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.proxy.javassist;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.bytecode.Proxy;\n-import org.apache.dubbo.common.bytecode.Wrapper;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.proxy.AbstractProxyFactory;\n-import org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;\n-import org.apache.dubbo.rpc.proxy.InvokerInvocationHandler;\n-\n-/**\n- * JavassistRpcProxyFactory\n- */\n-public class JavassistProxyFactory extends AbstractProxyFactory {\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T getProxy(Invoker<T> invoker, Class<?>[] interfaces) {\n-        return (T) Proxy.getProxy(interfaces).newInstance(new InvokerInvocationHandler(invoker));\n-    }\n-\n-    @Override\n-    public <T> Invoker<T> getInvoker(T proxy, Class<T> type, URL url) {\n-        // TODO Wrapper cannot handle this scenario correctly: the classname contains '$'\n-        final Wrapper wrapper = Wrapper.getWrapper(proxy.getClass().getName().indexOf('$') < 0 ? proxy.getClass() : type);\n-        return new AbstractProxyInvoker<T>(proxy, type, url) {\n-            @Override\n-            protected Object doInvoke(T proxy, String methodName,\n-                                      Class<?>[] parameterTypes,\n-                                      Object[] arguments) throws Throwable {\n-                return wrapper.invokeMethod(proxy, methodName, parameterTypes, arguments);\n-            }\n-        };\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.proxy.javassist;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.bytecode.Proxy;\r\n+import org.apache.dubbo.common.bytecode.Wrapper;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.proxy.AbstractProxyFactory;\r\n+import org.apache.dubbo.rpc.proxy.AbstractProxyInvoker;\r\n+import org.apache.dubbo.rpc.proxy.InvokerInvocationHandler;\r\n+\r\n+/**\r\n+ * JavassistRpcProxyFactory\r\n+ */\r\n+public class JavassistProxyFactory extends AbstractProxyFactory {\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T getProxy(Invoker<T> invoker, Class<?>[] interfaces) {\r\n+        return (T) Proxy.getProxy(interfaces).newInstance(new InvokerInvocationHandler(invoker));\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> Invoker<T> getInvoker(T proxy, Class<T> type, URL url) {\r\n+        // TODO Wrapper cannot handle this scenario correctly: the classname contains '$'\r\n+        final Wrapper wrapper = Wrapper.getWrapper(proxy.getClass().getName().indexOf('$') < 0 ? proxy.getClass() : type);\r\n+        return new AbstractProxyInvoker<T>(proxy, type, url) {\r\n+            @Override\r\n+            protected Object doInvoke(T proxy, String methodName,\r\n+                                      Class<?>[] parameterTypes,\r\n+                                      Object[] arguments) throws Throwable {\r\n+                return wrapper.invokeMethod(proxy, methodName, parameterTypes, arguments);\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/service/Destroyable.java", "source2": "org/apache/dubbo/rpc/service/Destroyable.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,23 +1,23 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-public interface Destroyable {\n-\n-    void $destroy();\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+public interface Destroyable {\r\n+\r\n+    void $destroy();\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/service/EchoService.java", "source2": "org/apache/dubbo/rpc/service/EchoService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,33 +1,33 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-/**\n- * Echo service.\n- * @export\n- */\n-public interface EchoService {\n-\n-    /**\n-     * echo test.\n-     *\n-     * @param message message.\n-     * @return message.\n-     */\n-    Object $echo(Object message);\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+/**\r\n+ * Echo service.\r\n+ * @export\r\n+ */\r\n+public interface EchoService {\r\n+\r\n+    /**\r\n+     * echo test.\r\n+     *\r\n+     * @param message message.\r\n+     * @return message.\r\n+     */\r\n+    Object $echo(Object message);\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/service/EchoServiceDetector.java", "source2": "org/apache/dubbo/rpc/service/EchoServiceDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\n-\n-public class EchoServiceDetector implements BuiltinServiceDetector {\n-\n-    @Override\n-    public Class<?> getService() {\n-        return EchoService.class;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\r\n+\r\n+public class EchoServiceDetector implements BuiltinServiceDetector {\r\n+\r\n+    @Override\r\n+    public Class<?> getService() {\r\n+        return EchoService.class;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/service/GenericException.java", "source2": "org/apache/dubbo/rpc/service/GenericException.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,65 +1,65 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-/**\n- * GenericException\n- *\n- * @export\n- */\n-public class GenericException extends RuntimeException {\n-\n-    private static final long serialVersionUID = -1182299763306599962L;\n-\n-    private String exceptionClass;\n-\n-    private String exceptionMessage;\n-\n-    public GenericException() {\n-    }\n-\n-    public GenericException(String exceptionClass, String exceptionMessage) {\n-        super(exceptionMessage);\n-        this.exceptionClass = exceptionClass;\n-        this.exceptionMessage = exceptionMessage;\n-    }\n-\n-    public GenericException(Throwable cause) {\n-        super(StringUtils.toString(cause));\n-        this.exceptionClass = cause.getClass().getName();\n-        this.exceptionMessage = cause.getMessage();\n-    }\n-\n-    public String getExceptionClass() {\n-        return exceptionClass;\n-    }\n-\n-    public void setExceptionClass(String exceptionClass) {\n-        this.exceptionClass = exceptionClass;\n-    }\n-\n-    public String getExceptionMessage() {\n-        return exceptionMessage;\n-    }\n-\n-    public void setExceptionMessage(String exceptionMessage) {\n-        this.exceptionMessage = exceptionMessage;\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+/**\r\n+ * GenericException\r\n+ *\r\n+ * @export\r\n+ */\r\n+public class GenericException extends RuntimeException {\r\n+\r\n+    private static final long serialVersionUID = -1182299763306599962L;\r\n+\r\n+    private String exceptionClass;\r\n+\r\n+    private String exceptionMessage;\r\n+\r\n+    public GenericException() {\r\n+    }\r\n+\r\n+    public GenericException(String exceptionClass, String exceptionMessage) {\r\n+        super(exceptionMessage);\r\n+        this.exceptionClass = exceptionClass;\r\n+        this.exceptionMessage = exceptionMessage;\r\n+    }\r\n+\r\n+    public GenericException(Throwable cause) {\r\n+        super(StringUtils.toString(cause));\r\n+        this.exceptionClass = cause.getClass().getName();\r\n+        this.exceptionMessage = cause.getMessage();\r\n+    }\r\n+\r\n+    public String getExceptionClass() {\r\n+        return exceptionClass;\r\n+    }\r\n+\r\n+    public void setExceptionClass(String exceptionClass) {\r\n+        this.exceptionClass = exceptionClass;\r\n+    }\r\n+\r\n+    public String getExceptionMessage() {\r\n+        return exceptionMessage;\r\n+    }\r\n+\r\n+    public void setExceptionMessage(String exceptionMessage) {\r\n+        this.exceptionMessage = exceptionMessage;\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/service/GenericService.java", "source2": "org/apache/dubbo/rpc/service/GenericService.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,48 +1,48 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-import java.util.concurrent.CompletableFuture;\n-\n-/**\n- * Generic service interface\n- *\n- * @export\n- */\n-public interface GenericService {\n-\n-    /**\n-     * Generic invocation\n-     *\n-     * @param method         Method name, e.g. findPerson. If there are overridden methods, parameter info is\n-     *                       required, e.g. findPerson(java.lang.String)\n-     * @param parameterTypes Parameter types\n-     * @param args           Arguments\n-     * @return invocation return value\n-     * @throws GenericException potential exception thrown from the invocation\n-     */\n-    Object $invoke(String method, String[] parameterTypes, Object[] args) throws GenericException;\n-\n-    default CompletableFuture<Object> $invokeAsync(String method, String[] parameterTypes, Object[] args) throws GenericException {\n-        Object object = $invoke(method, parameterTypes, args);\n-        if (object instanceof CompletableFuture) {\n-            return (CompletableFuture<Object>) object;\n-        }\n-        return CompletableFuture.completedFuture(object);\n-    }\n-\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+import java.util.concurrent.CompletableFuture;\r\n+\r\n+/**\r\n+ * Generic service interface\r\n+ *\r\n+ * @export\r\n+ */\r\n+public interface GenericService {\r\n+\r\n+    /**\r\n+     * Generic invocation\r\n+     *\r\n+     * @param method         Method name, e.g. findPerson. If there are overridden methods, parameter info is\r\n+     *                       required, e.g. findPerson(java.lang.String)\r\n+     * @param parameterTypes Parameter types\r\n+     * @param args           Arguments\r\n+     * @return invocation return value\r\n+     * @throws GenericException potential exception thrown from the invocation\r\n+     */\r\n+    Object $invoke(String method, String[] parameterTypes, Object[] args) throws GenericException;\r\n+\r\n+    default CompletableFuture<Object> $invokeAsync(String method, String[] parameterTypes, Object[] args) throws GenericException {\r\n+        Object object = $invoke(method, parameterTypes, args);\r\n+        if (object instanceof CompletableFuture) {\r\n+            return (CompletableFuture<Object>) object;\r\n+        }\r\n+        return CompletableFuture.completedFuture(object);\r\n+    }\r\n+\r\n }\n"}, {"source1": "org/apache/dubbo/rpc/service/GenericServiceDetector.java", "source2": "org/apache/dubbo/rpc/service/GenericServiceDetector.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,28 +1,28 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.service;\n-\n-import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\n-\n-public class GenericServiceDetector implements BuiltinServiceDetector {\n-\n-    @Override\n-    public Class<?> getService() {\n-        return GenericService.class;\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.service;\r\n+\r\n+import org.apache.dubbo.rpc.model.BuiltinServiceDetector;\r\n+\r\n+public class GenericServiceDetector implements BuiltinServiceDetector {\r\n+\r\n+    @Override\r\n+    public Class<?> getService() {\r\n+        return GenericService.class;\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/support/AccessLogData.java", "source2": "org/apache/dubbo/rpc/support/AccessLogData.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,281 +1,281 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.support;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.Invoker;\n-import org.apache.dubbo.rpc.RpcContext;\n-\n-import com.alibaba.fastjson.JSON;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-import java.text.DateFormat;\n-import java.text.SimpleDateFormat;\n-import java.util.Arrays;\n-import java.util.Date;\n-import java.util.HashMap;\n-import java.util.Map;\n-\n-/**\n- * AccessLogData is a container for log event data. In internally uses map and store each filed of log as value. It\n- * does not generate any dynamic value e.g. time stamp, local jmv machine host address etc. It does not allow any null\n- * or empty key.\n- *\n- * Note: since its date formatter is a singleton, make sure to run it in single thread only.\n- */\n-public final class AccessLogData {\n-\n-    private static final String MESSAGE_DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\n-    private static final DateFormat MESSAGE_DATE_FORMATTER = new SimpleDateFormat(MESSAGE_DATE_FORMAT);\n-\n-    private static final String VERSION = \"version\";\n-    private static final String GROUP = \"group\";\n-    private static final String SERVICE = \"service\";\n-    private static final String METHOD_NAME = \"method-name\";\n-    private static final String INVOCATION_TIME = \"invocation-time\";\n-    private static final String TYPES = \"types\";\n-    private static final String ARGUMENTS = \"arguments\";\n-    private static final String REMOTE_HOST = \"remote-host\";\n-    private static final String REMOTE_PORT = \"remote-port\";\n-    private static final String LOCAL_HOST = \"localhost\";\n-    private static final String LOCAL_PORT = \"local-port\";\n-\n-    /**\n-     * This is used to store log data in key val format.\n-     */\n-    private Map<String, Object> data;\n-\n-    /**\n-     * Default constructor.\n-     */\n-    private AccessLogData() {\n-        RpcContext context = RpcContext.getContext();\n-        data = new HashMap<>();\n-        setLocalHost(context.getLocalHost());\n-        setLocalPort(context.getLocalPort());\n-        setRemoteHost(context.getRemoteHost());\n-        setRemotePort(context.getRemotePort());\n-    }\n-\n-    /**\n-     * Get new instance of log data.\n-     *\n-     * @return instance of AccessLogData\n-     */\n-    public static AccessLogData newLogData() {\n-        return new AccessLogData();\n-    }\n-\n-\n-    /**\n-     * Add version information.\n-     *\n-     * @param version\n-     */\n-    public void setVersion(String version) {\n-        set(VERSION, version);\n-    }\n-\n-    /**\n-     * Add service name.\n-     *\n-     * @param serviceName\n-     */\n-    public void setServiceName(String serviceName) {\n-        set(SERVICE, serviceName);\n-    }\n-\n-    /**\n-     * Add group name\n-     *\n-     * @param group\n-     */\n-    public void setGroup(String group) {\n-        set(GROUP, group);\n-    }\n-\n-    /**\n-     * Set the invocation date. As an argument it accept date string.\n-     *\n-     * @param invocationTime\n-     */\n-    public void setInvocationTime(Date invocationTime) {\n-        set(INVOCATION_TIME, invocationTime);\n-    }\n-\n-    /**\n-     * Set caller remote host\n-     *\n-     * @param remoteHost\n-     */\n-    private void setRemoteHost(String remoteHost) {\n-        set(REMOTE_HOST, remoteHost);\n-    }\n-\n-    /**\n-     * Set caller remote port.\n-     *\n-     * @param remotePort\n-     */\n-    private void setRemotePort(Integer remotePort) {\n-        set(REMOTE_PORT, remotePort);\n-    }\n-\n-    /**\n-     * Set local host\n-     *\n-     * @param localHost\n-     */\n-    private void setLocalHost(String localHost) {\n-        set(LOCAL_HOST, localHost);\n-    }\n-\n-    /**\n-     * Set local port of exported service\n-     *\n-     * @param localPort\n-     */\n-    private void setLocalPort(Integer localPort) {\n-        set(LOCAL_PORT, localPort);\n-    }\n-\n-    /**\n-     * Set target method name.\n-     *\n-     * @param methodName\n-     */\n-    public void setMethodName(String methodName) {\n-        set(METHOD_NAME, methodName);\n-    }\n-\n-    /**\n-     * Set invocation's method's input parameter's types\n-     *\n-     * @param types\n-     */\n-    public void setTypes(Class[] types) {\n-        set(TYPES, types != null ? Arrays.copyOf(types, types.length) : null);\n-    }\n-\n-    /**\n-     * Sets invocation arguments\n-     *\n-     * @param arguments\n-     */\n-    public void setArguments(Object[] arguments) {\n-        set(ARGUMENTS, arguments != null ? Arrays.copyOf(arguments, arguments.length) : null);\n-    }\n-\n-    /**\n-     * Return gthe service of access log entry\n-     *\n-     * @return\n-     */\n-    public String getServiceName() {\n-        return get(SERVICE).toString();\n-    }\n-\n-\n-    public String getLogMessage() {\n-        StringBuilder sn = new StringBuilder();\n-\n-        sn.append(\"[\")\n-                .append(MESSAGE_DATE_FORMATTER.format(getInvocationTime()))\n-                .append(\"] \")\n-                .append(get(REMOTE_HOST))\n-                .append(\":\")\n-                .append(get(REMOTE_PORT))\n-                .append(\" -> \")\n-                .append(get(LOCAL_HOST))\n-                .append(\":\")\n-                .append(get(LOCAL_PORT))\n-                .append(\" - \");\n-\n-        String group = get(GROUP) != null ? get(GROUP).toString() : \"\";\n-        if (StringUtils.isNotEmpty(group)) {\n-            sn.append(group).append(\"/\");\n-        }\n-\n-        sn.append(get(SERVICE));\n-\n-        String version = get(VERSION) != null ? get(VERSION).toString() : \"\";\n-        if (StringUtils.isNotEmpty(version)) {\n-            sn.append(\":\").append(version);\n-        }\n-\n-        sn.append(\" \");\n-        sn.append(get(METHOD_NAME));\n-\n-        sn.append(\"(\");\n-        Class<?>[] types = get(TYPES) != null ? (Class<?>[]) get(TYPES) : new Class[0];\n-        boolean first = true;\n-        for (Class<?> type : types) {\n-            if (first) {\n-                first = false;\n-            } else {\n-                sn.append(\",\");\n-            }\n-            sn.append(type.getName());\n-        }\n-        sn.append(\") \");\n-\n-\n-        Object[] args = get(ARGUMENTS) != null ? (Object[]) get(ARGUMENTS) : null;\n-        if (args != null && args.length > 0) {\n-            sn.append(JSON.toJSONString(args));\n-        }\n-\n-        return sn.toString();\n-    }\n-\n-    private Date getInvocationTime() {\n-        return (Date)get(INVOCATION_TIME);\n-    }\n-    /**\n-     * Return value of key\n-     *\n-     * @param key\n-     * @return\n-     */\n-    private Object get(String key) {\n-        return data.get(key);\n-    }\n-\n-    /**\n-     * Add log key along with his value.\n-     *\n-     * @param key   Any not null or non empty string\n-     * @param value Any object including null.\n-     */\n-    private void set(String key, Object value) {\n-        data.put(key, value);\n-    }\n-    \n-    public void buildAccessLogData(Invoker<?> invoker, Invocation inv) {\n-        setServiceName(invoker.getInterface().getName());\n-        setMethodName(inv.getMethodName());\n-        setVersion(invoker.getUrl().getParameter(VERSION_KEY));\n-        setGroup(invoker.getUrl().getParameter(GROUP_KEY));\n-        setInvocationTime(new Date());\n-        setTypes(inv.getParameterTypes());\n-        setArguments(inv.getArguments());\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.support;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.Invoker;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+\r\n+import com.alibaba.fastjson.JSON;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+import java.text.DateFormat;\r\n+import java.text.SimpleDateFormat;\r\n+import java.util.Arrays;\r\n+import java.util.Date;\r\n+import java.util.HashMap;\r\n+import java.util.Map;\r\n+\r\n+/**\r\n+ * AccessLogData is a container for log event data. In internally uses map and store each filed of log as value. It\r\n+ * does not generate any dynamic value e.g. time stamp, local jmv machine host address etc. It does not allow any null\r\n+ * or empty key.\r\n+ *\r\n+ * Note: since its date formatter is a singleton, make sure to run it in single thread only.\r\n+ */\r\n+public final class AccessLogData {\r\n+\r\n+    private static final String MESSAGE_DATE_FORMAT = \"yyyy-MM-dd HH:mm:ss\";\r\n+    private static final DateFormat MESSAGE_DATE_FORMATTER = new SimpleDateFormat(MESSAGE_DATE_FORMAT);\r\n+\r\n+    private static final String VERSION = \"version\";\r\n+    private static final String GROUP = \"group\";\r\n+    private static final String SERVICE = \"service\";\r\n+    private static final String METHOD_NAME = \"method-name\";\r\n+    private static final String INVOCATION_TIME = \"invocation-time\";\r\n+    private static final String TYPES = \"types\";\r\n+    private static final String ARGUMENTS = \"arguments\";\r\n+    private static final String REMOTE_HOST = \"remote-host\";\r\n+    private static final String REMOTE_PORT = \"remote-port\";\r\n+    private static final String LOCAL_HOST = \"localhost\";\r\n+    private static final String LOCAL_PORT = \"local-port\";\r\n+\r\n+    /**\r\n+     * This is used to store log data in key val format.\r\n+     */\r\n+    private Map<String, Object> data;\r\n+\r\n+    /**\r\n+     * Default constructor.\r\n+     */\r\n+    private AccessLogData() {\r\n+        RpcContext context = RpcContext.getContext();\r\n+        data = new HashMap<>();\r\n+        setLocalHost(context.getLocalHost());\r\n+        setLocalPort(context.getLocalPort());\r\n+        setRemoteHost(context.getRemoteHost());\r\n+        setRemotePort(context.getRemotePort());\r\n+    }\r\n+\r\n+    /**\r\n+     * Get new instance of log data.\r\n+     *\r\n+     * @return instance of AccessLogData\r\n+     */\r\n+    public static AccessLogData newLogData() {\r\n+        return new AccessLogData();\r\n+    }\r\n+\r\n+\r\n+    /**\r\n+     * Add version information.\r\n+     *\r\n+     * @param version\r\n+     */\r\n+    public void setVersion(String version) {\r\n+        set(VERSION, version);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add service name.\r\n+     *\r\n+     * @param serviceName\r\n+     */\r\n+    public void setServiceName(String serviceName) {\r\n+        set(SERVICE, serviceName);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add group name\r\n+     *\r\n+     * @param group\r\n+     */\r\n+    public void setGroup(String group) {\r\n+        set(GROUP, group);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set the invocation date. As an argument it accept date string.\r\n+     *\r\n+     * @param invocationTime\r\n+     */\r\n+    public void setInvocationTime(Date invocationTime) {\r\n+        set(INVOCATION_TIME, invocationTime);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set caller remote host\r\n+     *\r\n+     * @param remoteHost\r\n+     */\r\n+    private void setRemoteHost(String remoteHost) {\r\n+        set(REMOTE_HOST, remoteHost);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set caller remote port.\r\n+     *\r\n+     * @param remotePort\r\n+     */\r\n+    private void setRemotePort(Integer remotePort) {\r\n+        set(REMOTE_PORT, remotePort);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set local host\r\n+     *\r\n+     * @param localHost\r\n+     */\r\n+    private void setLocalHost(String localHost) {\r\n+        set(LOCAL_HOST, localHost);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set local port of exported service\r\n+     *\r\n+     * @param localPort\r\n+     */\r\n+    private void setLocalPort(Integer localPort) {\r\n+        set(LOCAL_PORT, localPort);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set target method name.\r\n+     *\r\n+     * @param methodName\r\n+     */\r\n+    public void setMethodName(String methodName) {\r\n+        set(METHOD_NAME, methodName);\r\n+    }\r\n+\r\n+    /**\r\n+     * Set invocation's method's input parameter's types\r\n+     *\r\n+     * @param types\r\n+     */\r\n+    public void setTypes(Class[] types) {\r\n+        set(TYPES, types != null ? Arrays.copyOf(types, types.length) : null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Sets invocation arguments\r\n+     *\r\n+     * @param arguments\r\n+     */\r\n+    public void setArguments(Object[] arguments) {\r\n+        set(ARGUMENTS, arguments != null ? Arrays.copyOf(arguments, arguments.length) : null);\r\n+    }\r\n+\r\n+    /**\r\n+     * Return gthe service of access log entry\r\n+     *\r\n+     * @return\r\n+     */\r\n+    public String getServiceName() {\r\n+        return get(SERVICE).toString();\r\n+    }\r\n+\r\n+\r\n+    public String getLogMessage() {\r\n+        StringBuilder sn = new StringBuilder();\r\n+\r\n+        sn.append(\"[\")\r\n+                .append(MESSAGE_DATE_FORMATTER.format(getInvocationTime()))\r\n+                .append(\"] \")\r\n+                .append(get(REMOTE_HOST))\r\n+                .append(\":\")\r\n+                .append(get(REMOTE_PORT))\r\n+                .append(\" -> \")\r\n+                .append(get(LOCAL_HOST))\r\n+                .append(\":\")\r\n+                .append(get(LOCAL_PORT))\r\n+                .append(\" - \");\r\n+\r\n+        String group = get(GROUP) != null ? get(GROUP).toString() : \"\";\r\n+        if (StringUtils.isNotEmpty(group)) {\r\n+            sn.append(group).append(\"/\");\r\n+        }\r\n+\r\n+        sn.append(get(SERVICE));\r\n+\r\n+        String version = get(VERSION) != null ? get(VERSION).toString() : \"\";\r\n+        if (StringUtils.isNotEmpty(version)) {\r\n+            sn.append(\":\").append(version);\r\n+        }\r\n+\r\n+        sn.append(\" \");\r\n+        sn.append(get(METHOD_NAME));\r\n+\r\n+        sn.append(\"(\");\r\n+        Class<?>[] types = get(TYPES) != null ? (Class<?>[]) get(TYPES) : new Class[0];\r\n+        boolean first = true;\r\n+        for (Class<?> type : types) {\r\n+            if (first) {\r\n+                first = false;\r\n+            } else {\r\n+                sn.append(\",\");\r\n+            }\r\n+            sn.append(type.getName());\r\n+        }\r\n+        sn.append(\") \");\r\n+\r\n+\r\n+        Object[] args = get(ARGUMENTS) != null ? (Object[]) get(ARGUMENTS) : null;\r\n+        if (args != null && args.length > 0) {\r\n+            sn.append(JSON.toJSONString(args));\r\n+        }\r\n+\r\n+        return sn.toString();\r\n+    }\r\n+\r\n+    private Date getInvocationTime() {\r\n+        return (Date)get(INVOCATION_TIME);\r\n+    }\r\n+    /**\r\n+     * Return value of key\r\n+     *\r\n+     * @param key\r\n+     * @return\r\n+     */\r\n+    private Object get(String key) {\r\n+        return data.get(key);\r\n+    }\r\n+\r\n+    /**\r\n+     * Add log key along with his value.\r\n+     *\r\n+     * @param key   Any not null or non empty string\r\n+     * @param value Any object including null.\r\n+     */\r\n+    private void set(String key, Object value) {\r\n+        data.put(key, value);\r\n+    }\r\n+    \r\n+    public void buildAccessLogData(Invoker<?> invoker, Invocation inv) {\r\n+        setServiceName(invoker.getInterface().getName());\r\n+        setMethodName(inv.getMethodName());\r\n+        setVersion(invoker.getUrl().getParameter(VERSION_KEY));\r\n+        setGroup(invoker.getUrl().getParameter(GROUP_KEY));\r\n+        setInvocationTime(new Date());\r\n+        setTypes(inv.getParameterTypes());\r\n+        setArguments(inv.getArguments());\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/support/GroupServiceKeyCache.java", "source2": "org/apache/dubbo/rpc/support/GroupServiceKeyCache.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,71 +1,71 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.support;\n-\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-public class GroupServiceKeyCache {\n-\n-    private final String serviceGroup;\n-\n-    //ConcurrentMap<serviceName, ConcurrentMap<serviceVersion, ConcurrentMap<port, String>>>\n-    private final ConcurrentMap<String, ConcurrentMap<String, ConcurrentMap<Integer, String>>> serviceKeyMap;\n-\n-    public GroupServiceKeyCache(String serviceGroup) {\n-        this.serviceGroup = serviceGroup;\n-        this.serviceKeyMap = new ConcurrentHashMap<>(512);\n-    }\n-\n-    public String getServiceKey(String serviceName, String serviceVersion, int port) {\n-        ConcurrentMap<String, ConcurrentMap<Integer, String>> versionMap = serviceKeyMap.get(serviceName);\n-        if (versionMap == null) {\n-            serviceKeyMap.putIfAbsent(serviceName, new ConcurrentHashMap<>());\n-            versionMap = serviceKeyMap.get(serviceName);\n-        }\n-\n-        serviceVersion = serviceVersion == null ? \"\" : serviceVersion;\n-        ConcurrentMap<Integer, String> portMap = versionMap.get(serviceVersion);\n-        if (portMap == null) {\n-            versionMap.putIfAbsent(serviceVersion, new ConcurrentHashMap<>());\n-            portMap = versionMap.get(serviceVersion);\n-        }\n-\n-        String serviceKey = portMap.get(port);\n-        if (serviceKey == null) {\n-            serviceKey = createServiceKey(serviceName, serviceVersion, port);\n-            portMap.put(port, serviceKey);\n-        }\n-        return serviceKey;\n-    }\n-\n-    private String createServiceKey(String serviceName, String serviceVersion, int port) {\n-        StringBuilder buf = new StringBuilder();\n-        if (StringUtils.isNotEmpty(serviceGroup)) {\n-            buf.append(serviceGroup).append('/');\n-        }\n-\n-        buf.append(serviceName);\n-        if (StringUtils.isNotEmpty(serviceVersion) && !\"0.0.0\".equals(serviceVersion)) {\n-            buf.append(':').append(serviceVersion);\n-        }\n-        buf.append(':').append(port);\n-        return buf.toString();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.support;\r\n+\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+public class GroupServiceKeyCache {\r\n+\r\n+    private final String serviceGroup;\r\n+\r\n+    //ConcurrentMap<serviceName, ConcurrentMap<serviceVersion, ConcurrentMap<port, String>>>\r\n+    private final ConcurrentMap<String, ConcurrentMap<String, ConcurrentMap<Integer, String>>> serviceKeyMap;\r\n+\r\n+    public GroupServiceKeyCache(String serviceGroup) {\r\n+        this.serviceGroup = serviceGroup;\r\n+        this.serviceKeyMap = new ConcurrentHashMap<>(512);\r\n+    }\r\n+\r\n+    public String getServiceKey(String serviceName, String serviceVersion, int port) {\r\n+        ConcurrentMap<String, ConcurrentMap<Integer, String>> versionMap = serviceKeyMap.get(serviceName);\r\n+        if (versionMap == null) {\r\n+            serviceKeyMap.putIfAbsent(serviceName, new ConcurrentHashMap<>());\r\n+            versionMap = serviceKeyMap.get(serviceName);\r\n+        }\r\n+\r\n+        serviceVersion = serviceVersion == null ? \"\" : serviceVersion;\r\n+        ConcurrentMap<Integer, String> portMap = versionMap.get(serviceVersion);\r\n+        if (portMap == null) {\r\n+            versionMap.putIfAbsent(serviceVersion, new ConcurrentHashMap<>());\r\n+            portMap = versionMap.get(serviceVersion);\r\n+        }\r\n+\r\n+        String serviceKey = portMap.get(port);\r\n+        if (serviceKey == null) {\r\n+            serviceKey = createServiceKey(serviceName, serviceVersion, port);\r\n+            portMap.put(port, serviceKey);\r\n+        }\r\n+        return serviceKey;\r\n+    }\r\n+\r\n+    private String createServiceKey(String serviceName, String serviceVersion, int port) {\r\n+        StringBuilder buf = new StringBuilder();\r\n+        if (StringUtils.isNotEmpty(serviceGroup)) {\r\n+            buf.append(serviceGroup).append('/');\r\n+        }\r\n+\r\n+        buf.append(serviceName);\r\n+        if (StringUtils.isNotEmpty(serviceVersion) && !\"0.0.0\".equals(serviceVersion)) {\r\n+            buf.append(':').append(serviceVersion);\r\n+        }\r\n+        buf.append(':').append(port);\r\n+        return buf.toString();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/support/ProtocolUtils.java", "source2": "org/apache/dubbo/rpc/support/ProtocolUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,91 +1,91 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.utils.StringUtils;\n-\n-import java.util.concurrent.ConcurrentHashMap;\n-import java.util.concurrent.ConcurrentMap;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_RAW_RETURN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_DEFAULT;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_NATIVE_JAVA;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_PROTOBUF;\n-import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\n-\n-public class ProtocolUtils {\n-\n-    private static final ConcurrentMap<String, GroupServiceKeyCache> groupServiceKeyCacheMap = new ConcurrentHashMap<>();\n-\n-    private ProtocolUtils() {\n-    }\n-\n-    public static String serviceKey(URL url) {\n-        return serviceKey(url.getPort(), url.getPath(), url.getParameter(VERSION_KEY),\n-                url.getParameter(GROUP_KEY));\n-    }\n-\n-    public static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) {\n-        serviceGroup = serviceGroup == null ? \"\" : serviceGroup;\n-        GroupServiceKeyCache groupServiceKeyCache = groupServiceKeyCacheMap.get(serviceGroup);\n-        if (groupServiceKeyCache == null) {\n-            groupServiceKeyCacheMap.putIfAbsent(serviceGroup, new GroupServiceKeyCache(serviceGroup));\n-            groupServiceKeyCache = groupServiceKeyCacheMap.get(serviceGroup);\n-        }\n-        return groupServiceKeyCache.getServiceKey(serviceName, serviceVersion, port);\n-    }\n-\n-    public static boolean isGeneric(String generic) {\n-        return StringUtils.isNotEmpty(generic)\n-                && (GENERIC_SERIALIZATION_DEFAULT.equalsIgnoreCase(generic)  /* Normal generalization cal */\n-                || GENERIC_SERIALIZATION_NATIVE_JAVA.equalsIgnoreCase(generic) /* Streaming generalization call supporting jdk serialization */\n-                || GENERIC_SERIALIZATION_BEAN.equalsIgnoreCase(generic)\n-                || GENERIC_SERIALIZATION_PROTOBUF.equalsIgnoreCase(generic)\n-                || GENERIC_RAW_RETURN.equalsIgnoreCase(generic));\n-\n-    }\n-\n-    public static boolean isValidGenericValue(String generic) {\n-        return isGeneric(generic) || Boolean.FALSE.toString().equalsIgnoreCase(generic);\n-\n-    }\n-\n-    public static boolean isDefaultGenericSerialization(String generic) {\n-        return isGeneric(generic)\n-                && GENERIC_SERIALIZATION_DEFAULT.equalsIgnoreCase(generic);\n-    }\n-\n-    public static boolean isJavaGenericSerialization(String generic) {\n-        return isGeneric(generic)\n-                && GENERIC_SERIALIZATION_NATIVE_JAVA.equalsIgnoreCase(generic);\n-    }\n-\n-    public static boolean isBeanGenericSerialization(String generic) {\n-        return isGeneric(generic) && GENERIC_SERIALIZATION_BEAN.equals(generic);\n-    }\n-\n-    public static boolean isProtobufGenericSerialization(String generic) {\n-        return isGeneric(generic) && GENERIC_SERIALIZATION_PROTOBUF.equals(generic);\n-    }\n-\n-    public static boolean isGenericReturnRawResult(String generic) {\n-        return GENERIC_RAW_RETURN.equals(generic);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+import java.util.concurrent.ConcurrentMap;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_RAW_RETURN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_BEAN;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_DEFAULT;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_NATIVE_JAVA;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_SERIALIZATION_PROTOBUF;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GROUP_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.VERSION_KEY;\r\n+\r\n+public class ProtocolUtils {\r\n+\r\n+    private static final ConcurrentMap<String, GroupServiceKeyCache> groupServiceKeyCacheMap = new ConcurrentHashMap<>();\r\n+\r\n+    private ProtocolUtils() {\r\n+    }\r\n+\r\n+    public static String serviceKey(URL url) {\r\n+        return serviceKey(url.getPort(), url.getPath(), url.getParameter(VERSION_KEY),\r\n+                url.getParameter(GROUP_KEY));\r\n+    }\r\n+\r\n+    public static String serviceKey(int port, String serviceName, String serviceVersion, String serviceGroup) {\r\n+        serviceGroup = serviceGroup == null ? \"\" : serviceGroup;\r\n+        GroupServiceKeyCache groupServiceKeyCache = groupServiceKeyCacheMap.get(serviceGroup);\r\n+        if (groupServiceKeyCache == null) {\r\n+            groupServiceKeyCacheMap.putIfAbsent(serviceGroup, new GroupServiceKeyCache(serviceGroup));\r\n+            groupServiceKeyCache = groupServiceKeyCacheMap.get(serviceGroup);\r\n+        }\r\n+        return groupServiceKeyCache.getServiceKey(serviceName, serviceVersion, port);\r\n+    }\r\n+\r\n+    public static boolean isGeneric(String generic) {\r\n+        return StringUtils.isNotEmpty(generic)\r\n+                && (GENERIC_SERIALIZATION_DEFAULT.equalsIgnoreCase(generic)  /* Normal generalization cal */\r\n+                || GENERIC_SERIALIZATION_NATIVE_JAVA.equalsIgnoreCase(generic) /* Streaming generalization call supporting jdk serialization */\r\n+                || GENERIC_SERIALIZATION_BEAN.equalsIgnoreCase(generic)\r\n+                || GENERIC_SERIALIZATION_PROTOBUF.equalsIgnoreCase(generic)\r\n+                || GENERIC_RAW_RETURN.equalsIgnoreCase(generic));\r\n+\r\n+    }\r\n+\r\n+    public static boolean isValidGenericValue(String generic) {\r\n+        return isGeneric(generic) || Boolean.FALSE.toString().equalsIgnoreCase(generic);\r\n+\r\n+    }\r\n+\r\n+    public static boolean isDefaultGenericSerialization(String generic) {\r\n+        return isGeneric(generic)\r\n+                && GENERIC_SERIALIZATION_DEFAULT.equalsIgnoreCase(generic);\r\n+    }\r\n+\r\n+    public static boolean isJavaGenericSerialization(String generic) {\r\n+        return isGeneric(generic)\r\n+                && GENERIC_SERIALIZATION_NATIVE_JAVA.equalsIgnoreCase(generic);\r\n+    }\r\n+\r\n+    public static boolean isBeanGenericSerialization(String generic) {\r\n+        return isGeneric(generic) && GENERIC_SERIALIZATION_BEAN.equals(generic);\r\n+    }\r\n+\r\n+    public static boolean isProtobufGenericSerialization(String generic) {\r\n+        return isGeneric(generic) && GENERIC_SERIALIZATION_PROTOBUF.equals(generic);\r\n+    }\r\n+\r\n+    public static boolean isGenericReturnRawResult(String generic) {\r\n+        return GENERIC_RAW_RETURN.equals(generic);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/rpc/support/RpcUtils.java", "source2": "org/apache/dubbo/rpc/support/RpcUtils.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,273 +1,273 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.rpc.support;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.logger.Logger;\n-import org.apache.dubbo.common.logger.LoggerFactory;\n-import org.apache.dubbo.common.utils.ReflectUtils;\n-import org.apache.dubbo.common.utils.StringUtils;\n-import org.apache.dubbo.rpc.Invocation;\n-import org.apache.dubbo.rpc.InvokeMode;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcInvocation;\n-import org.apache.dubbo.rpc.service.GenericService;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.util.concurrent.CompletableFuture;\n-import java.util.concurrent.atomic.AtomicLong;\n-\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\n-import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\n-import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_PARAMETER_DESC;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\n-import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\n-import static org.apache.dubbo.rpc.Constants.$ECHO;\n-import static org.apache.dubbo.rpc.Constants.$ECHO_PARAMETER_DESC;\n-import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\n-import static org.apache.dubbo.rpc.Constants.AUTO_ATTACH_INVOCATIONID_KEY;\n-import static org.apache.dubbo.rpc.Constants.ID_KEY;\n-import static org.apache.dubbo.rpc.Constants.RETURN_KEY;\n-\n-/**\n- * RpcUtils\n- */\n-public class RpcUtils {\n-\n-    private static final Logger logger = LoggerFactory.getLogger(RpcUtils.class);\n-    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\n-\n-    public static Class<?> getReturnType(Invocation invocation) {\n-        try {\n-            if (invocation != null && invocation.getInvoker() != null\n-                    && invocation.getInvoker().getUrl() != null\n-                    && invocation.getInvoker().getInterface() != GenericService.class\n-                    && !invocation.getMethodName().startsWith(\"$\")) {\n-                String service = invocation.getInvoker().getUrl().getServiceInterface();\n-                if (StringUtils.isNotEmpty(service)) {\n-                    Method method = getMethodByService(invocation, service);\n-                    return method.getReturnType();\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-        return null;\n-    }\n-\n-    public static Type[] getReturnTypes(Invocation invocation) {\n-        try {\n-            if (invocation != null && invocation.getInvoker() != null\n-                    && invocation.getInvoker().getUrl() != null\n-                    && invocation.getInvoker().getInterface() != GenericService.class\n-                    && !invocation.getMethodName().startsWith(\"$\")) {\n-                String service = invocation.getInvoker().getUrl().getServiceInterface();\n-                if (StringUtils.isNotEmpty(service)) {\n-                    Method method = getMethodByService(invocation, service);\n-                    return ReflectUtils.getReturnTypes(method);\n-                }\n-            }\n-        } catch (Throwable t) {\n-            logger.warn(t.getMessage(), t);\n-        }\n-        return null;\n-    }\n-\n-    public static Long getInvocationId(Invocation inv) {\n-        String id = inv.getAttachment(ID_KEY);\n-        return id == null ? null : new Long(id);\n-    }\n-\n-    /**\n-     * Idempotent operation: invocation id will be added in async operation by default\n-     *\n-     * @param url\n-     * @param inv\n-     */\n-    public static void attachInvocationIdIfAsync(URL url, Invocation inv) {\n-        if (isAttachInvocationId(url, inv) && getInvocationId(inv) == null && inv instanceof RpcInvocation) {\n-            inv.setAttachment(ID_KEY, String.valueOf(INVOKE_ID.getAndIncrement()));\n-        }\n-    }\n-\n-    private static boolean isAttachInvocationId(URL url, Invocation invocation) {\n-        String value = url.getMethodParameter(invocation.getMethodName(), AUTO_ATTACH_INVOCATIONID_KEY);\n-        if (value == null) {\n-            // add invocationid in async operation by default\n-            return isAsync(url, invocation);\n-        } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\n-            return true;\n-        } else {\n-            return false;\n-        }\n-    }\n-\n-    public static String getMethodName(Invocation invocation) {\n-        if ($INVOKE.equals(invocation.getMethodName())\n-                && invocation.getArguments() != null\n-                && invocation.getArguments().length > 0\n-                && invocation.getArguments()[0] instanceof String) {\n-            return (String) invocation.getArguments()[0];\n-        }\n-        return invocation.getMethodName();\n-    }\n-\n-    public static Object[] getArguments(Invocation invocation) {\n-        if ($INVOKE.equals(invocation.getMethodName())\n-                && invocation.getArguments() != null\n-                && invocation.getArguments().length > 2\n-                && invocation.getArguments()[2] instanceof Object[]) {\n-            return (Object[]) invocation.getArguments()[2];\n-        }\n-        return invocation.getArguments();\n-    }\n-\n-    public static Class<?>[] getParameterTypes(Invocation invocation) {\n-        if ($INVOKE.equals(invocation.getMethodName())\n-                && invocation.getArguments() != null\n-                && invocation.getArguments().length > 1\n-                && invocation.getArguments()[1] instanceof String[]) {\n-            String[] types = (String[]) invocation.getArguments()[1];\n-            if (types == null) {\n-                return new Class<?>[0];\n-            }\n-            Class<?>[] parameterTypes = new Class<?>[types.length];\n-            for (int i = 0; i < types.length; i++) {\n-                parameterTypes[i] = ReflectUtils.forName(types[0]);\n-            }\n-            return parameterTypes;\n-        }\n-        return invocation.getParameterTypes();\n-    }\n-\n-    public static boolean isAsync(URL url, Invocation inv) {\n-        boolean isAsync;\n-\n-        if (inv instanceof RpcInvocation) {\n-            RpcInvocation rpcInvocation = (RpcInvocation) inv;\n-            if (rpcInvocation.getInvokeMode() != null) {\n-                return rpcInvocation.getInvokeMode() == InvokeMode.ASYNC;\n-            }\n-        }\n-\n-        if (Boolean.TRUE.toString().equals(inv.getAttachment(ASYNC_KEY))) {\n-            isAsync = true;\n-        } else {\n-            isAsync = url.getMethodParameter(getMethodName(inv), ASYNC_KEY, false);\n-        }\n-        return isAsync;\n-    }\n-\n-    public static boolean isReturnTypeFuture(Invocation inv) {\n-        Class<?> clazz;\n-        if (inv instanceof RpcInvocation) {\n-            clazz = ((RpcInvocation) inv).getReturnType();\n-        } else {\n-            clazz = getReturnType(inv);\n-        }\n-        return (clazz != null && CompletableFuture.class.isAssignableFrom(clazz)) || isGenericAsync(inv);\n-    }\n-\n-    public static boolean isGenericAsync(Invocation inv) {\n-        return $INVOKE_ASYNC.equals(inv.getMethodName());\n-    }\n-\n-    // check parameterTypesDesc to fix CVE-2020-1948\n-    public static boolean isGenericCall(String parameterTypesDesc, String method) {\n-        return ($INVOKE.equals(method) || $INVOKE_ASYNC.equals(method)) && GENERIC_PARAMETER_DESC.equals(parameterTypesDesc);\n-    }\n-\n-    // check parameterTypesDesc to fix CVE-2020-1948\n-    public static boolean isEcho(String parameterTypesDesc, String method) {\n-        return $ECHO.equals(method) && $ECHO_PARAMETER_DESC.equals(parameterTypesDesc);\n-    }\n-\n-    public static InvokeMode getInvokeMode(URL url, Invocation inv) {\n-        if (inv instanceof RpcInvocation) {\n-            RpcInvocation rpcInvocation = (RpcInvocation) inv;\n-            if (rpcInvocation.getInvokeMode() != null) {\n-                return rpcInvocation.getInvokeMode();\n-            }\n-        }\n-\n-        if (isReturnTypeFuture(inv)) {\n-            return InvokeMode.FUTURE;\n-        } else if (isAsync(url, inv)) {\n-            return InvokeMode.ASYNC;\n-        } else {\n-            return InvokeMode.SYNC;\n-        }\n-    }\n-\n-    public static boolean isOneway(URL url, Invocation inv) {\n-        boolean isOneway;\n-        if (Boolean.FALSE.toString().equals(inv.getAttachment(RETURN_KEY))) {\n-            isOneway = true;\n-        } else {\n-            isOneway = !url.getMethodParameter(getMethodName(inv), RETURN_KEY, true);\n-        }\n-        return isOneway;\n-    }\n-\n-    private static Method getMethodByService(Invocation invocation, String service) throws NoSuchMethodException {\n-        Class<?> invokerInterface = invocation.getInvoker().getInterface();\n-        Class<?> cls = invokerInterface != null ? ReflectUtils.forName(invokerInterface.getClassLoader(), service)\n-                : ReflectUtils.forName(service);\n-        Method method = cls.getMethod(invocation.getMethodName(), invocation.getParameterTypes());\n-        if (method.getReturnType() == void.class) {\n-            return null;\n-        }\n-        return method;\n-    }\n-\n-    public static long getTimeout(Invocation invocation, long defaultTimeout) {\n-        long timeout = defaultTimeout;\n-        Object genericTimeout = invocation.getObjectAttachment(TIMEOUT_ATTACHMENT_KEY);\n-        if (genericTimeout != null) {\n-            timeout = convertToNumber(genericTimeout, defaultTimeout);\n-        }\n-        return timeout;\n-    }\n-\n-    public static long getTimeout(URL url, String methodName, RpcContext context, long defaultTimeout) {\n-        long timeout = defaultTimeout;\n-        Object genericTimeout = context.getObjectAttachment(TIMEOUT_KEY);\n-        if (genericTimeout != null) {\n-            timeout = convertToNumber(genericTimeout, defaultTimeout);\n-        } else if (url != null) {\n-            timeout = url.getMethodPositiveParameter(methodName, TIMEOUT_KEY, defaultTimeout);\n-        }\n-        return timeout;\n-    }\n-\n-    private static long convertToNumber(Object obj, long defaultTimeout) {\n-        long timeout = 0;\n-        try {\n-            if (obj instanceof String) {\n-                timeout = Long.parseLong((String) obj);\n-            } else if (obj instanceof Number) {\n-                timeout = ((Number) obj).longValue();\n-            } else {\n-                timeout = Long.parseLong(obj.toString());\n-            }\n-        } catch (Exception e) {\n-            // ignore\n-        }\n-        return timeout;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.rpc.support;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.logger.Logger;\r\n+import org.apache.dubbo.common.logger.LoggerFactory;\r\n+import org.apache.dubbo.common.utils.ReflectUtils;\r\n+import org.apache.dubbo.common.utils.StringUtils;\r\n+import org.apache.dubbo.rpc.Invocation;\r\n+import org.apache.dubbo.rpc.InvokeMode;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcInvocation;\r\n+import org.apache.dubbo.rpc.service.GenericService;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.util.concurrent.CompletableFuture;\r\n+import java.util.concurrent.atomic.AtomicLong;\r\n+\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.$INVOKE_ASYNC;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.GENERIC_PARAMETER_DESC;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_ATTACHMENT_KEY;\r\n+import static org.apache.dubbo.common.constants.CommonConstants.TIMEOUT_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.$ECHO;\r\n+import static org.apache.dubbo.rpc.Constants.$ECHO_PARAMETER_DESC;\r\n+import static org.apache.dubbo.rpc.Constants.ASYNC_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.AUTO_ATTACH_INVOCATIONID_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.ID_KEY;\r\n+import static org.apache.dubbo.rpc.Constants.RETURN_KEY;\r\n+\r\n+/**\r\n+ * RpcUtils\r\n+ */\r\n+public class RpcUtils {\r\n+\r\n+    private static final Logger logger = LoggerFactory.getLogger(RpcUtils.class);\r\n+    private static final AtomicLong INVOKE_ID = new AtomicLong(0);\r\n+\r\n+    public static Class<?> getReturnType(Invocation invocation) {\r\n+        try {\r\n+            if (invocation != null && invocation.getInvoker() != null\r\n+                    && invocation.getInvoker().getUrl() != null\r\n+                    && invocation.getInvoker().getInterface() != GenericService.class\r\n+                    && !invocation.getMethodName().startsWith(\"$\")) {\r\n+                String service = invocation.getInvoker().getUrl().getServiceInterface();\r\n+                if (StringUtils.isNotEmpty(service)) {\r\n+                    Method method = getMethodByService(invocation, service);\r\n+                    return method.getReturnType();\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public static Type[] getReturnTypes(Invocation invocation) {\r\n+        try {\r\n+            if (invocation != null && invocation.getInvoker() != null\r\n+                    && invocation.getInvoker().getUrl() != null\r\n+                    && invocation.getInvoker().getInterface() != GenericService.class\r\n+                    && !invocation.getMethodName().startsWith(\"$\")) {\r\n+                String service = invocation.getInvoker().getUrl().getServiceInterface();\r\n+                if (StringUtils.isNotEmpty(service)) {\r\n+                    Method method = getMethodByService(invocation, service);\r\n+                    return ReflectUtils.getReturnTypes(method);\r\n+                }\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            logger.warn(t.getMessage(), t);\r\n+        }\r\n+        return null;\r\n+    }\r\n+\r\n+    public static Long getInvocationId(Invocation inv) {\r\n+        String id = inv.getAttachment(ID_KEY);\r\n+        return id == null ? null : new Long(id);\r\n+    }\r\n+\r\n+    /**\r\n+     * Idempotent operation: invocation id will be added in async operation by default\r\n+     *\r\n+     * @param url\r\n+     * @param inv\r\n+     */\r\n+    public static void attachInvocationIdIfAsync(URL url, Invocation inv) {\r\n+        if (isAttachInvocationId(url, inv) && getInvocationId(inv) == null && inv instanceof RpcInvocation) {\r\n+            inv.setAttachment(ID_KEY, String.valueOf(INVOKE_ID.getAndIncrement()));\r\n+        }\r\n+    }\r\n+\r\n+    private static boolean isAttachInvocationId(URL url, Invocation invocation) {\r\n+        String value = url.getMethodParameter(invocation.getMethodName(), AUTO_ATTACH_INVOCATIONID_KEY);\r\n+        if (value == null) {\r\n+            // add invocationid in async operation by default\r\n+            return isAsync(url, invocation);\r\n+        } else if (Boolean.TRUE.toString().equalsIgnoreCase(value)) {\r\n+            return true;\r\n+        } else {\r\n+            return false;\r\n+        }\r\n+    }\r\n+\r\n+    public static String getMethodName(Invocation invocation) {\r\n+        if ($INVOKE.equals(invocation.getMethodName())\r\n+                && invocation.getArguments() != null\r\n+                && invocation.getArguments().length > 0\r\n+                && invocation.getArguments()[0] instanceof String) {\r\n+            return (String) invocation.getArguments()[0];\r\n+        }\r\n+        return invocation.getMethodName();\r\n+    }\r\n+\r\n+    public static Object[] getArguments(Invocation invocation) {\r\n+        if ($INVOKE.equals(invocation.getMethodName())\r\n+                && invocation.getArguments() != null\r\n+                && invocation.getArguments().length > 2\r\n+                && invocation.getArguments()[2] instanceof Object[]) {\r\n+            return (Object[]) invocation.getArguments()[2];\r\n+        }\r\n+        return invocation.getArguments();\r\n+    }\r\n+\r\n+    public static Class<?>[] getParameterTypes(Invocation invocation) {\r\n+        if ($INVOKE.equals(invocation.getMethodName())\r\n+                && invocation.getArguments() != null\r\n+                && invocation.getArguments().length > 1\r\n+                && invocation.getArguments()[1] instanceof String[]) {\r\n+            String[] types = (String[]) invocation.getArguments()[1];\r\n+            if (types == null) {\r\n+                return new Class<?>[0];\r\n+            }\r\n+            Class<?>[] parameterTypes = new Class<?>[types.length];\r\n+            for (int i = 0; i < types.length; i++) {\r\n+                parameterTypes[i] = ReflectUtils.forName(types[0]);\r\n+            }\r\n+            return parameterTypes;\r\n+        }\r\n+        return invocation.getParameterTypes();\r\n+    }\r\n+\r\n+    public static boolean isAsync(URL url, Invocation inv) {\r\n+        boolean isAsync;\r\n+\r\n+        if (inv instanceof RpcInvocation) {\r\n+            RpcInvocation rpcInvocation = (RpcInvocation) inv;\r\n+            if (rpcInvocation.getInvokeMode() != null) {\r\n+                return rpcInvocation.getInvokeMode() == InvokeMode.ASYNC;\r\n+            }\r\n+        }\r\n+\r\n+        if (Boolean.TRUE.toString().equals(inv.getAttachment(ASYNC_KEY))) {\r\n+            isAsync = true;\r\n+        } else {\r\n+            isAsync = url.getMethodParameter(getMethodName(inv), ASYNC_KEY, false);\r\n+        }\r\n+        return isAsync;\r\n+    }\r\n+\r\n+    public static boolean isReturnTypeFuture(Invocation inv) {\r\n+        Class<?> clazz;\r\n+        if (inv instanceof RpcInvocation) {\r\n+            clazz = ((RpcInvocation) inv).getReturnType();\r\n+        } else {\r\n+            clazz = getReturnType(inv);\r\n+        }\r\n+        return (clazz != null && CompletableFuture.class.isAssignableFrom(clazz)) || isGenericAsync(inv);\r\n+    }\r\n+\r\n+    public static boolean isGenericAsync(Invocation inv) {\r\n+        return $INVOKE_ASYNC.equals(inv.getMethodName());\r\n+    }\r\n+\r\n+    // check parameterTypesDesc to fix CVE-2020-1948\r\n+    public static boolean isGenericCall(String parameterTypesDesc, String method) {\r\n+        return ($INVOKE.equals(method) || $INVOKE_ASYNC.equals(method)) && GENERIC_PARAMETER_DESC.equals(parameterTypesDesc);\r\n+    }\r\n+\r\n+    // check parameterTypesDesc to fix CVE-2020-1948\r\n+    public static boolean isEcho(String parameterTypesDesc, String method) {\r\n+        return $ECHO.equals(method) && $ECHO_PARAMETER_DESC.equals(parameterTypesDesc);\r\n+    }\r\n+\r\n+    public static InvokeMode getInvokeMode(URL url, Invocation inv) {\r\n+        if (inv instanceof RpcInvocation) {\r\n+            RpcInvocation rpcInvocation = (RpcInvocation) inv;\r\n+            if (rpcInvocation.getInvokeMode() != null) {\r\n+                return rpcInvocation.getInvokeMode();\r\n+            }\r\n+        }\r\n+\r\n+        if (isReturnTypeFuture(inv)) {\r\n+            return InvokeMode.FUTURE;\r\n+        } else if (isAsync(url, inv)) {\r\n+            return InvokeMode.ASYNC;\r\n+        } else {\r\n+            return InvokeMode.SYNC;\r\n+        }\r\n+    }\r\n+\r\n+    public static boolean isOneway(URL url, Invocation inv) {\r\n+        boolean isOneway;\r\n+        if (Boolean.FALSE.toString().equals(inv.getAttachment(RETURN_KEY))) {\r\n+            isOneway = true;\r\n+        } else {\r\n+            isOneway = !url.getMethodParameter(getMethodName(inv), RETURN_KEY, true);\r\n+        }\r\n+        return isOneway;\r\n+    }\r\n+\r\n+    private static Method getMethodByService(Invocation invocation, String service) throws NoSuchMethodException {\r\n+        Class<?> invokerInterface = invocation.getInvoker().getInterface();\r\n+        Class<?> cls = invokerInterface != null ? ReflectUtils.forName(invokerInterface.getClassLoader(), service)\r\n+                : ReflectUtils.forName(service);\r\n+        Method method = cls.getMethod(invocation.getMethodName(), invocation.getParameterTypes());\r\n+        if (method.getReturnType() == void.class) {\r\n+            return null;\r\n+        }\r\n+        return method;\r\n+    }\r\n+\r\n+    public static long getTimeout(Invocation invocation, long defaultTimeout) {\r\n+        long timeout = defaultTimeout;\r\n+        Object genericTimeout = invocation.getObjectAttachment(TIMEOUT_ATTACHMENT_KEY);\r\n+        if (genericTimeout != null) {\r\n+            timeout = convertToNumber(genericTimeout, defaultTimeout);\r\n+        }\r\n+        return timeout;\r\n+    }\r\n+\r\n+    public static long getTimeout(URL url, String methodName, RpcContext context, long defaultTimeout) {\r\n+        long timeout = defaultTimeout;\r\n+        Object genericTimeout = context.getObjectAttachment(TIMEOUT_KEY);\r\n+        if (genericTimeout != null) {\r\n+            timeout = convertToNumber(genericTimeout, defaultTimeout);\r\n+        } else if (url != null) {\r\n+            timeout = url.getMethodPositiveParameter(methodName, TIMEOUT_KEY, defaultTimeout);\r\n+        }\r\n+        return timeout;\r\n+    }\r\n+\r\n+    private static long convertToNumber(Object obj, long defaultTimeout) {\r\n+        long timeout = 0;\r\n+        try {\r\n+            if (obj instanceof String) {\r\n+                timeout = Long.parseLong((String) obj);\r\n+            } else if (obj instanceof Number) {\r\n+                timeout = ((Number) obj).longValue();\r\n+            } else {\r\n+                timeout = Long.parseLong(obj.toString());\r\n+            }\r\n+        } catch (Exception e) {\r\n+            // ignore\r\n+        }\r\n+        return timeout;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/Hessian2ObjectInput.java", "source2": "org/apache/dubbo/serialize/hessian/Hessian2ObjectInput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,98 +1,98 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.serialize.hessian;\n-\n-import com.caucho.hessian.io.Hessian2Input;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.lang.reflect.Type;\n-\n-/**\n- * Hessian2 Object input.\n- */\n-public class Hessian2ObjectInput implements ObjectInput {\n-    private final Hessian2Input input;\n-\n-    public Hessian2ObjectInput(InputStream is) {\n-        input = new Hessian2Input(is);\n-        input.setSerializerFactory(Hessian2SerializerFactory.INSTANCE);\n-    }\n-\n-    @Override\n-    public boolean readBool() throws IOException {\n-        return input.readBoolean();\n-    }\n-\n-    @Override\n-    public byte readByte() throws IOException {\n-        return (byte) input.readInt();\n-    }\n-\n-    @Override\n-    public short readShort() throws IOException {\n-        return (short) input.readInt();\n-    }\n-\n-    @Override\n-    public int readInt() throws IOException {\n-        return input.readInt();\n-    }\n-\n-    @Override\n-    public long readLong() throws IOException {\n-        return input.readLong();\n-    }\n-\n-    @Override\n-    public float readFloat() throws IOException {\n-        return (float) input.readDouble();\n-    }\n-\n-    @Override\n-    public double readDouble() throws IOException {\n-        return input.readDouble();\n-    }\n-\n-    @Override\n-    public byte[] readBytes() throws IOException {\n-        return input.readBytes();\n-    }\n-\n-    @Override\n-    public String readUTF() throws IOException {\n-        return input.readString();\n-    }\n-\n-    @Override\n-    public Object readObject() throws IOException {\n-        return input.readObject();\n-    }\n-\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public <T> T readObject(Class<T> cls) throws IOException {\n-        return (T) input.readObject(cls);\n-    }\n-\n-    @Override\n-    public <T> T readObject(Class<T> cls, Type type) throws IOException {\n-        return readObject(cls);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.serialize.hessian;\r\n+\r\n+import com.caucho.hessian.io.Hessian2Input;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.lang.reflect.Type;\r\n+\r\n+/**\r\n+ * Hessian2 Object input.\r\n+ */\r\n+public class Hessian2ObjectInput implements ObjectInput {\r\n+    private final Hessian2Input input;\r\n+\r\n+    public Hessian2ObjectInput(InputStream is) {\r\n+        input = new Hessian2Input(is);\r\n+        input.setSerializerFactory(Hessian2SerializerFactory.INSTANCE);\r\n+    }\r\n+\r\n+    @Override\r\n+    public boolean readBool() throws IOException {\r\n+        return input.readBoolean();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte readByte() throws IOException {\r\n+        return (byte) input.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public short readShort() throws IOException {\r\n+        return (short) input.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public int readInt() throws IOException {\r\n+        return input.readInt();\r\n+    }\r\n+\r\n+    @Override\r\n+    public long readLong() throws IOException {\r\n+        return input.readLong();\r\n+    }\r\n+\r\n+    @Override\r\n+    public float readFloat() throws IOException {\r\n+        return (float) input.readDouble();\r\n+    }\r\n+\r\n+    @Override\r\n+    public double readDouble() throws IOException {\r\n+        return input.readDouble();\r\n+    }\r\n+\r\n+    @Override\r\n+    public byte[] readBytes() throws IOException {\r\n+        return input.readBytes();\r\n+    }\r\n+\r\n+    @Override\r\n+    public String readUTF() throws IOException {\r\n+        return input.readString();\r\n+    }\r\n+\r\n+    @Override\r\n+    public Object readObject() throws IOException {\r\n+        return input.readObject();\r\n+    }\r\n+\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public <T> T readObject(Class<T> cls) throws IOException {\r\n+        return (T) input.readObject(cls);\r\n+    }\r\n+\r\n+    @Override\r\n+    public <T> T readObject(Class<T> cls, Type type) throws IOException {\r\n+        return readObject(cls);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/Hessian2ObjectOutput.java", "source2": "org/apache/dubbo/serialize/hessian/Hessian2ObjectOutput.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,95 +1,95 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.serialize.hessian;\n-\n-import com.caucho.hessian.io.Hessian2Output;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-\n-import java.io.IOException;\n-import java.io.OutputStream;\n-\n-/**\n- * Hessian2 Object output.\n- */\n-public class Hessian2ObjectOutput implements ObjectOutput {\n-    private final Hessian2Output output;\n-\n-    public Hessian2ObjectOutput(OutputStream os) {\n-        output = new Hessian2Output(os);\n-        output.setSerializerFactory(Hessian2SerializerFactory.INSTANCE);\n-    }\n-\n-    @Override\n-    public void writeBool(boolean v) throws IOException {\n-        output.writeBoolean(v);\n-    }\n-\n-    @Override\n-    public void writeByte(byte v) throws IOException {\n-        output.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeShort(short v) throws IOException {\n-        output.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeInt(int v) throws IOException {\n-        output.writeInt(v);\n-    }\n-\n-    @Override\n-    public void writeLong(long v) throws IOException {\n-        output.writeLong(v);\n-    }\n-\n-    @Override\n-    public void writeFloat(float v) throws IOException {\n-        output.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeDouble(double v) throws IOException {\n-        output.writeDouble(v);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b) throws IOException {\n-        output.writeBytes(b);\n-    }\n-\n-    @Override\n-    public void writeBytes(byte[] b, int off, int len) throws IOException {\n-        output.writeBytes(b, off, len);\n-    }\n-\n-    @Override\n-    public void writeUTF(String v) throws IOException {\n-        output.writeString(v);\n-    }\n-\n-    @Override\n-    public void writeObject(Object obj) throws IOException {\n-        output.writeObject(obj);\n-    }\n-\n-    @Override\n-    public void flushBuffer() throws IOException {\n-        output.flushBuffer();\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.serialize.hessian;\r\n+\r\n+import com.caucho.hessian.io.Hessian2Output;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.OutputStream;\r\n+\r\n+/**\r\n+ * Hessian2 Object output.\r\n+ */\r\n+public class Hessian2ObjectOutput implements ObjectOutput {\r\n+    private final Hessian2Output output;\r\n+\r\n+    public Hessian2ObjectOutput(OutputStream os) {\r\n+        output = new Hessian2Output(os);\r\n+        output.setSerializerFactory(Hessian2SerializerFactory.INSTANCE);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBool(boolean v) throws IOException {\r\n+        output.writeBoolean(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeByte(byte v) throws IOException {\r\n+        output.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeShort(short v) throws IOException {\r\n+        output.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeInt(int v) throws IOException {\r\n+        output.writeInt(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeLong(long v) throws IOException {\r\n+        output.writeLong(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeFloat(float v) throws IOException {\r\n+        output.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeDouble(double v) throws IOException {\r\n+        output.writeDouble(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b) throws IOException {\r\n+        output.writeBytes(b);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeBytes(byte[] b, int off, int len) throws IOException {\r\n+        output.writeBytes(b, off, len);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeUTF(String v) throws IOException {\r\n+        output.writeString(v);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj) throws IOException {\r\n+        output.writeObject(obj);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void flushBuffer() throws IOException {\r\n+        output.flushBuffer();\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/Hessian2Serialization.java", "source2": "org/apache/dubbo/serialize/hessian/Hessian2Serialization.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.serialize.hessian;\n-\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.common.serialize.ObjectInput;\n-import org.apache.dubbo.common.serialize.ObjectOutput;\n-import org.apache.dubbo.common.serialize.Serialization;\n-\n-import java.io.IOException;\n-import java.io.InputStream;\n-import java.io.OutputStream;\n-\n-import static org.apache.dubbo.common.serialize.Constants.NATIVE_HESSIAN_SERIALIZATION_ID;\n-\n-public class Hessian2Serialization implements Serialization {\n-\n-    @Override\n-    public byte getContentTypeId() {\n-        return NATIVE_HESSIAN_SERIALIZATION_ID;\n-    }\n-\n-    @Override\n-    public String getContentType() {\n-        return \"x-application/native-hessian\";\n-    }\n-\n-    @Override\n-    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\n-        return new Hessian2ObjectOutput(out);\n-    }\n-\n-    @Override\n-    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\n-        return new Hessian2ObjectInput(is);\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.serialize.hessian;\r\n+\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.common.serialize.ObjectInput;\r\n+import org.apache.dubbo.common.serialize.ObjectOutput;\r\n+import org.apache.dubbo.common.serialize.Serialization;\r\n+\r\n+import java.io.IOException;\r\n+import java.io.InputStream;\r\n+import java.io.OutputStream;\r\n+\r\n+import static org.apache.dubbo.common.serialize.Constants.NATIVE_HESSIAN_SERIALIZATION_ID;\r\n+\r\n+public class Hessian2Serialization implements Serialization {\r\n+\r\n+    @Override\r\n+    public byte getContentTypeId() {\r\n+        return NATIVE_HESSIAN_SERIALIZATION_ID;\r\n+    }\r\n+\r\n+    @Override\r\n+    public String getContentType() {\r\n+        return \"x-application/native-hessian\";\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectOutput serialize(URL url, OutputStream out) throws IOException {\r\n+        return new Hessian2ObjectOutput(out);\r\n+    }\r\n+\r\n+    @Override\r\n+    public ObjectInput deserialize(URL url, InputStream is) throws IOException {\r\n+        return new Hessian2ObjectInput(is);\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/Hessian2SerializerFactory.java", "source2": "org/apache/dubbo/serialize/hessian/Hessian2SerializerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,42 +1,42 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.serialize.hessian;\n-\n-import com.caucho.hessian.io.Deserializer;\n-import com.caucho.hessian.io.HessianProtocolException;\n-import com.caucho.hessian.io.Serializer;\n-import com.caucho.hessian.io.SerializerFactory;\n-\n-public class Hessian2SerializerFactory extends SerializerFactory {\n-    public static final SerializerFactory INSTANCE = new Hessian2SerializerFactory();\n-\n-    private Hessian2SerializerFactory() {\n-        super();\n-    }\n-\n-    @Override\n-    protected Serializer loadSerializer(Class<?> cl) throws HessianProtocolException {\n-        Serializer serializer = Java8SerializerFactory.INSTANCE.getSerializer(cl);\n-        return serializer != null ? serializer : super.loadSerializer(cl);\n-    }\n-\n-    @Override\n-    protected Deserializer loadDeserializer(Class cl) throws HessianProtocolException {\n-        Deserializer deserializer = Java8SerializerFactory.INSTANCE.getDeserializer(cl);\n-        return deserializer != null ? deserializer : super.loadDeserializer(cl);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.serialize.hessian;\r\n+\r\n+import com.caucho.hessian.io.Deserializer;\r\n+import com.caucho.hessian.io.HessianProtocolException;\r\n+import com.caucho.hessian.io.Serializer;\r\n+import com.caucho.hessian.io.SerializerFactory;\r\n+\r\n+public class Hessian2SerializerFactory extends SerializerFactory {\r\n+    public static final SerializerFactory INSTANCE = new Hessian2SerializerFactory();\r\n+\r\n+    private Hessian2SerializerFactory() {\r\n+        super();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Serializer loadSerializer(Class<?> cl) throws HessianProtocolException {\r\n+        Serializer serializer = Java8SerializerFactory.INSTANCE.getSerializer(cl);\r\n+        return serializer != null ? serializer : super.loadSerializer(cl);\r\n+    }\r\n+\r\n+    @Override\r\n+    protected Deserializer loadDeserializer(Class cl) throws HessianProtocolException {\r\n+        Deserializer deserializer = Java8SerializerFactory.INSTANCE.getDeserializer(cl);\r\n+        return deserializer != null ? deserializer : super.loadDeserializer(cl);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/Java8SerializerFactory.java", "source2": "org/apache/dubbo/serialize/hessian/Java8SerializerFactory.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,88 +1,88 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.serialize.hessian;\n-\n-\n-import com.caucho.hessian.io.AbstractSerializerFactory;\n-import com.caucho.hessian.io.ExtSerializerFactory;\n-import com.caucho.hessian.io.HessianProtocolException;\n-import com.caucho.hessian.io.Serializer;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.DurationHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.InstantHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.LocalDateHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.LocalDateTimeHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.LocalTimeHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.MonthDayHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.OffsetDateTimeHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.OffsetTimeHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.PeriodHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.YearHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.YearMonthHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.ZoneIdSerializer;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.ZoneOffsetHandle;\n-import org.apache.dubbo.serialize.hessian.serializer.java8.ZonedDateTimeHandle;\n-\n-import static org.apache.dubbo.serialize.hessian.serializer.java8.Java8TimeSerializer.create;\n-\n-\n-public class Java8SerializerFactory extends ExtSerializerFactory {\n-    public static final AbstractSerializerFactory INSTANCE = new Java8SerializerFactory();\n-\n-    private Java8SerializerFactory() {\n-        if (isJava8()) {\n-            try {\n-                this.addSerializer(Class.forName(\"java.time.LocalTime\"), create(LocalTimeHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.LocalDate\"), create(LocalDateHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.LocalDateTime\"), create(LocalDateTimeHandle.class));\n-\n-                this.addSerializer(Class.forName(\"java.time.Instant\"), create(InstantHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.Duration\"), create(DurationHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.Period\"), create(PeriodHandle.class));\n-\n-                this.addSerializer(Class.forName(\"java.time.Year\"), create(YearHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.YearMonth\"), create(YearMonthHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.MonthDay\"), create(MonthDayHandle.class));\n-\n-                this.addSerializer(Class.forName(\"java.time.OffsetDateTime\"), create(OffsetDateTimeHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.ZoneOffset\"), create(ZoneOffsetHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.OffsetTime\"), create(OffsetTimeHandle.class));\n-                this.addSerializer(Class.forName(\"java.time.ZonedDateTime\"), create(ZonedDateTimeHandle.class));\n-            } catch (ClassNotFoundException e) {\n-                // ignore\n-            }\n-        }\n-    }\n-\n-    @Override\n-    public Serializer getSerializer(Class cl) throws HessianProtocolException {\n-        return isZoneId(cl) ? ZoneIdSerializer.getInstance() : super.getSerializer(cl);\n-    }\n-\n-    private static boolean isZoneId(Class cl) {\n-        try {\n-            return isJava8() && Class.forName(\"java.time.ZoneId\").isAssignableFrom(cl);\n-        } catch (ClassNotFoundException e) {\n-            // ignore\n-        }\n-        return false;\n-    }\n-\n-    private static boolean isJava8() {\n-        String javaVersion = System.getProperty(\"java.specification.version\");\n-        return Double.valueOf(javaVersion) >= 1.8;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.serialize.hessian;\r\n+\r\n+\r\n+import com.caucho.hessian.io.AbstractSerializerFactory;\r\n+import com.caucho.hessian.io.ExtSerializerFactory;\r\n+import com.caucho.hessian.io.HessianProtocolException;\r\n+import com.caucho.hessian.io.Serializer;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.DurationHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.InstantHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.LocalDateHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.LocalDateTimeHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.LocalTimeHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.MonthDayHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.OffsetDateTimeHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.OffsetTimeHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.PeriodHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.YearHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.YearMonthHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.ZoneIdSerializer;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.ZoneOffsetHandle;\r\n+import org.apache.dubbo.serialize.hessian.serializer.java8.ZonedDateTimeHandle;\r\n+\r\n+import static org.apache.dubbo.serialize.hessian.serializer.java8.Java8TimeSerializer.create;\r\n+\r\n+\r\n+public class Java8SerializerFactory extends ExtSerializerFactory {\r\n+    public static final AbstractSerializerFactory INSTANCE = new Java8SerializerFactory();\r\n+\r\n+    private Java8SerializerFactory() {\r\n+        if (isJava8()) {\r\n+            try {\r\n+                this.addSerializer(Class.forName(\"java.time.LocalTime\"), create(LocalTimeHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.LocalDate\"), create(LocalDateHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.LocalDateTime\"), create(LocalDateTimeHandle.class));\r\n+\r\n+                this.addSerializer(Class.forName(\"java.time.Instant\"), create(InstantHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.Duration\"), create(DurationHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.Period\"), create(PeriodHandle.class));\r\n+\r\n+                this.addSerializer(Class.forName(\"java.time.Year\"), create(YearHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.YearMonth\"), create(YearMonthHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.MonthDay\"), create(MonthDayHandle.class));\r\n+\r\n+                this.addSerializer(Class.forName(\"java.time.OffsetDateTime\"), create(OffsetDateTimeHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.ZoneOffset\"), create(ZoneOffsetHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.OffsetTime\"), create(OffsetTimeHandle.class));\r\n+                this.addSerializer(Class.forName(\"java.time.ZonedDateTime\"), create(ZonedDateTimeHandle.class));\r\n+            } catch (ClassNotFoundException e) {\r\n+                // ignore\r\n+            }\r\n+        }\r\n+    }\r\n+\r\n+    @Override\r\n+    public Serializer getSerializer(Class cl) throws HessianProtocolException {\r\n+        return isZoneId(cl) ? ZoneIdSerializer.getInstance() : super.getSerializer(cl);\r\n+    }\r\n+\r\n+    private static boolean isZoneId(Class cl) {\r\n+        try {\r\n+            return isJava8() && Class.forName(\"java.time.ZoneId\").isAssignableFrom(cl);\r\n+        } catch (ClassNotFoundException e) {\r\n+            // ignore\r\n+        }\r\n+        return false;\r\n+    }\r\n+\r\n+    private static boolean isJava8() {\r\n+        String javaVersion = System.getProperty(\"java.specification.version\");\r\n+        return Double.valueOf(javaVersion) >= 1.8;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/DurationHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/DurationHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.Duration;\n-\n-public class DurationHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -4367309317780077156L;\n-\n-    private long seconds;\n-    private int nanos;\n-\n-    public DurationHandle() {\n-    }\n-\n-    public DurationHandle(Object o) {\n-        try {\n-            Duration duration = (Duration) o;\n-            this.seconds = duration.getSeconds();\n-            this.nanos = duration.getNano();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return Duration.ofSeconds(seconds, nanos);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.Duration;\r\n+\r\n+public class DurationHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -4367309317780077156L;\r\n+\r\n+    private long seconds;\r\n+    private int nanos;\r\n+\r\n+    public DurationHandle() {\r\n+    }\r\n+\r\n+    public DurationHandle(Object o) {\r\n+        try {\r\n+            Duration duration = (Duration) o;\r\n+            this.seconds = duration.getSeconds();\r\n+            this.nanos = duration.getNano();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return Duration.ofSeconds(seconds, nanos);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/InstantHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/InstantHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,54 +1,54 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.Instant;\n-\n-public class InstantHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -4367309317780077156L;\n-\n-    private long seconds;\n-    private int nanos;\n-\n-    public InstantHandle() {\n-    }\n-\n-    public InstantHandle(Object o) {\n-        try {\n-            Instant instant = (Instant) o;\n-            this.seconds = instant.getEpochSecond();\n-            this.nanos = instant.getNano();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-\n-    private Object readResolve() {\n-        try {\n-            return Instant.ofEpochSecond(seconds, nanos);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.Instant;\r\n+\r\n+public class InstantHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -4367309317780077156L;\r\n+\r\n+    private long seconds;\r\n+    private int nanos;\r\n+\r\n+    public InstantHandle() {\r\n+    }\r\n+\r\n+    public InstantHandle(Object o) {\r\n+        try {\r\n+            Instant instant = (Instant) o;\r\n+            this.seconds = instant.getEpochSecond();\r\n+            this.nanos = instant.getNano();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return Instant.ofEpochSecond(seconds, nanos);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/Java8TimeSerializer.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/Java8TimeSerializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.AbstractHessianOutput;\n-import com.caucho.hessian.io.AbstractSerializer;\n-\n-import java.io.IOException;\n-import java.lang.reflect.Constructor;\n-\n-public class Java8TimeSerializer<T> extends AbstractSerializer {\n-\n-    // Type of handle\n-    private Class<T> handleType;\n-\n-    private Java8TimeSerializer(Class<T> handleType) {\n-        this.handleType = handleType;\n-    }\n-\n-    public static <T> Java8TimeSerializer<T> create(Class<T> handleType) {\n-        return new Java8TimeSerializer<T>(handleType);\n-    }\n-\n-    @Override\n-    public void writeObject(Object obj, AbstractHessianOutput out) throws IOException {\n-        if (obj == null) {\n-            out.writeNull();\n-            return;\n-        }\n-\n-        T handle = null;\n-        try {\n-            Constructor<T> constructor = handleType.getConstructor(Object.class);\n-            handle = constructor.newInstance(obj);\n-        } catch (Exception e) {\n-            throw new RuntimeException(\"the class :\" + handleType.getName() + \" construct failed:\" + e.getMessage(), e);\n-        }\n-\n-        out.writeObject(handle);\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.AbstractHessianOutput;\r\n+import com.caucho.hessian.io.AbstractSerializer;\r\n+\r\n+import java.io.IOException;\r\n+import java.lang.reflect.Constructor;\r\n+\r\n+public class Java8TimeSerializer<T> extends AbstractSerializer {\r\n+\r\n+    // Type of handle\r\n+    private Class<T> handleType;\r\n+\r\n+    private Java8TimeSerializer(Class<T> handleType) {\r\n+        this.handleType = handleType;\r\n+    }\r\n+\r\n+    public static <T> Java8TimeSerializer<T> create(Class<T> handleType) {\r\n+        return new Java8TimeSerializer<T>(handleType);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj, AbstractHessianOutput out) throws IOException {\r\n+        if (obj == null) {\r\n+            out.writeNull();\r\n+            return;\r\n+        }\r\n+\r\n+        T handle = null;\r\n+        try {\r\n+            Constructor<T> constructor = handleType.getConstructor(Object.class);\r\n+            handle = constructor.newInstance(obj);\r\n+        } catch (Exception e) {\r\n+            throw new RuntimeException(\"the class :\" + handleType.getName() + \" construct failed:\" + e.getMessage(), e);\r\n+        }\r\n+\r\n+        out.writeObject(handle);\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalDate;\n-\n-public class LocalDateHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = 166018689500019951L;\n-\n-    private int year;\n-    private int month;\n-    private int day;\n-\n-    public LocalDateHandle() {\n-    }\n-\n-    public LocalDateHandle(Object o) {\n-        try {\n-            LocalDate localDate = (LocalDate) o;\n-            this.year = localDate.getYear();\n-            this.month = localDate.getMonthValue();\n-            this.day = localDate.getDayOfMonth();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    public Object readResolve() {\n-        try {\n-            return LocalDate.of(year, month, day);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalDate;\r\n+\r\n+public class LocalDateHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = 166018689500019951L;\r\n+\r\n+    private int year;\r\n+    private int month;\r\n+    private int day;\r\n+\r\n+    public LocalDateHandle() {\r\n+    }\r\n+\r\n+    public LocalDateHandle(Object o) {\r\n+        try {\r\n+            LocalDate localDate = (LocalDate) o;\r\n+            this.year = localDate.getYear();\r\n+            this.month = localDate.getMonthValue();\r\n+            this.day = localDate.getDayOfMonth();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    public Object readResolve() {\r\n+        try {\r\n+            return LocalDate.of(year, month, day);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateTimeHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalDateTimeHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalDate;\n-import java.time.LocalDateTime;\n-import java.time.LocalTime;\n-\n-public class LocalDateTimeHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = 7563825215275989361L;\n-\n-    private LocalDate date;\n-    private LocalTime time;\n-\n-    public LocalDateTimeHandle() {\n-    }\n-\n-    public LocalDateTimeHandle(Object o) {\n-        try {\n-            LocalDateTime localDateTime = (LocalDateTime) o;\n-            date = localDateTime.toLocalDate();\n-            time = localDateTime.toLocalTime();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return LocalDateTime.of(date, time);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalDate;\r\n+import java.time.LocalDateTime;\r\n+import java.time.LocalTime;\r\n+\r\n+public class LocalDateTimeHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = 7563825215275989361L;\r\n+\r\n+    private LocalDate date;\r\n+    private LocalTime time;\r\n+\r\n+    public LocalDateTimeHandle() {\r\n+    }\r\n+\r\n+    public LocalDateTimeHandle(Object o) {\r\n+        try {\r\n+            LocalDateTime localDateTime = (LocalDateTime) o;\r\n+            date = localDateTime.toLocalDate();\r\n+            time = localDateTime.toLocalTime();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return LocalDateTime.of(date, time);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalTimeHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/LocalTimeHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,57 +1,57 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalTime;\n-\n-public class LocalTimeHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -5892919085390462315L;\n-\n-    private int hour;\n-    private int minute;\n-    private int second;\n-    private int nano;\n-\n-    public LocalTimeHandle() {\n-    }\n-\n-    public LocalTimeHandle(Object o) {\n-        try {\n-            LocalTime localTime = (LocalTime) o;\n-            this.hour = localTime.getHour();\n-            this.minute = localTime.getMinute();\n-            this.second = localTime.getSecond();\n-            this.nano = localTime.getNano();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return LocalTime.of(hour, minute, second, nano);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalTime;\r\n+\r\n+public class LocalTimeHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -5892919085390462315L;\r\n+\r\n+    private int hour;\r\n+    private int minute;\r\n+    private int second;\r\n+    private int nano;\r\n+\r\n+    public LocalTimeHandle() {\r\n+    }\r\n+\r\n+    public LocalTimeHandle(Object o) {\r\n+        try {\r\n+            LocalTime localTime = (LocalTime) o;\r\n+            this.hour = localTime.getHour();\r\n+            this.minute = localTime.getMinute();\r\n+            this.second = localTime.getSecond();\r\n+            this.nano = localTime.getNano();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return LocalTime.of(hour, minute, second, nano);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/MonthDayHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/MonthDayHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.MonthDay;\n-\n-public class MonthDayHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = 5288238558666577745L;\n-\n-    private int month;\n-    private int day;\n-\n-    public MonthDayHandle() {\n-    }\n-\n-    public MonthDayHandle(Object o) {\n-        try {\n-            MonthDay monthDay = (MonthDay) o;\n-            this.month = monthDay.getMonthValue();\n-            this.day = monthDay.getDayOfMonth();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return MonthDay.of(month, day);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.MonthDay;\r\n+\r\n+public class MonthDayHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = 5288238558666577745L;\r\n+\r\n+    private int month;\r\n+    private int day;\r\n+\r\n+    public MonthDayHandle() {\r\n+    }\r\n+\r\n+    public MonthDayHandle(Object o) {\r\n+        try {\r\n+            MonthDay monthDay = (MonthDay) o;\r\n+            this.month = monthDay.getMonthValue();\r\n+            this.day = monthDay.getDayOfMonth();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return MonthDay.of(month, day);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/OffsetDateTimeHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/OffsetDateTimeHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalDateTime;\n-import java.time.OffsetDateTime;\n-import java.time.ZoneOffset;\n-\n-public class OffsetDateTimeHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -7823900532640515312L;\n-\n-    private LocalDateTime dateTime;\n-    private ZoneOffset offset;\n-\n-    public OffsetDateTimeHandle() {\n-    }\n-\n-    public OffsetDateTimeHandle(Object o) {\n-        try {\n-            OffsetDateTime offsetDateTime = (OffsetDateTime) o;\n-            this.dateTime = offsetDateTime.toLocalDateTime();\n-            this.offset = offsetDateTime.getOffset();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return OffsetDateTime.of(dateTime, offset);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalDateTime;\r\n+import java.time.OffsetDateTime;\r\n+import java.time.ZoneOffset;\r\n+\r\n+public class OffsetDateTimeHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -7823900532640515312L;\r\n+\r\n+    private LocalDateTime dateTime;\r\n+    private ZoneOffset offset;\r\n+\r\n+    public OffsetDateTimeHandle() {\r\n+    }\r\n+\r\n+    public OffsetDateTimeHandle(Object o) {\r\n+        try {\r\n+            OffsetDateTime offsetDateTime = (OffsetDateTime) o;\r\n+            this.dateTime = offsetDateTime.toLocalDateTime();\r\n+            this.offset = offsetDateTime.getOffset();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return OffsetDateTime.of(dateTime, offset);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/OffsetTimeHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/OffsetTimeHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,55 +1,55 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalTime;\n-import java.time.OffsetTime;\n-import java.time.ZoneOffset;\n-\n-public class OffsetTimeHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -3269846941421652860L;\n-\n-    private LocalTime localTime;\n-    private ZoneOffset zoneOffset;\n-\n-    public OffsetTimeHandle() {\n-    }\n-\n-    public OffsetTimeHandle(Object o) {\n-        try {\n-            OffsetTime offsetTime = (OffsetTime) o;\n-            this.zoneOffset = offsetTime.getOffset();\n-            this.localTime = offsetTime.toLocalTime();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return OffsetTime.of(localTime, zoneOffset);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalTime;\r\n+import java.time.OffsetTime;\r\n+import java.time.ZoneOffset;\r\n+\r\n+public class OffsetTimeHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -3269846941421652860L;\r\n+\r\n+    private LocalTime localTime;\r\n+    private ZoneOffset zoneOffset;\r\n+\r\n+    public OffsetTimeHandle() {\r\n+    }\r\n+\r\n+    public OffsetTimeHandle(Object o) {\r\n+        try {\r\n+            OffsetTime offsetTime = (OffsetTime) o;\r\n+            this.zoneOffset = offsetTime.getOffset();\r\n+            this.localTime = offsetTime.toLocalTime();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return OffsetTime.of(localTime, zoneOffset);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/PeriodHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/PeriodHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,56 +1,56 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.Period;\n-\n-\n-public class PeriodHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = 4399720381283781186L;\n-\n-    private int years;\n-    private int months;\n-    private int days;\n-\n-    public PeriodHandle() {\n-    }\n-\n-    public PeriodHandle(Object o) {\n-        try {\n-            Period period = (Period) o;\n-            this.years = period.getYears();\n-            this.months = period.getMonths();\n-            this.days = period.getDays();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return Period.of(years, months, days);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.Period;\r\n+\r\n+\r\n+public class PeriodHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = 4399720381283781186L;\r\n+\r\n+    private int years;\r\n+    private int months;\r\n+    private int days;\r\n+\r\n+    public PeriodHandle() {\r\n+    }\r\n+\r\n+    public PeriodHandle(Object o) {\r\n+        try {\r\n+            Period period = (Period) o;\r\n+            this.years = period.getYears();\r\n+            this.months = period.getMonths();\r\n+            this.days = period.getDays();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return Period.of(years, months, days);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/YearHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/YearHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,52 +1,52 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.Year;\n-\n-public class YearHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -6299552890287487926L;\n-\n-    private int year;\n-\n-    public YearHandle() {\n-    }\n-\n-    public YearHandle(Object o) {\n-        try {\n-            Year y = (Year) o;\n-            this.year = y.getValue();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return Year.of(year);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.Year;\r\n+\r\n+public class YearHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -6299552890287487926L;\r\n+\r\n+    private int year;\r\n+\r\n+    public YearHandle() {\r\n+    }\r\n+\r\n+    public YearHandle(Object o) {\r\n+        try {\r\n+            Year y = (Year) o;\r\n+            this.year = y.getValue();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return Year.of(year);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/YearMonthHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/YearMonthHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,53 +1,53 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.YearMonth;\n-\n-public class YearMonthHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -4150786187896925314L;\n-\n-    private int year;\n-    private int month;\n-\n-    public YearMonthHandle() {\n-    }\n-\n-    public YearMonthHandle(Object o) {\n-        try {\n-            YearMonth yearMonth = (YearMonth) o;\n-            this.year = yearMonth.getYear();\n-            this.month = yearMonth.getMonthValue();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return YearMonth.of(year, month);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.YearMonth;\r\n+\r\n+public class YearMonthHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -4150786187896925314L;\r\n+\r\n+    private int year;\r\n+    private int month;\r\n+\r\n+    public YearMonthHandle() {\r\n+    }\r\n+\r\n+    public YearMonthHandle(Object o) {\r\n+        try {\r\n+            YearMonth yearMonth = (YearMonth) o;\r\n+            this.year = yearMonth.getYear();\r\n+            this.month = yearMonth.getMonthValue();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return YearMonth.of(year, month);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,52 +1,52 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.ZoneId;\n-\n-public class ZoneIdHandle implements HessianHandle, Serializable {\n-\n-    private static final long serialVersionUID = 8789182864066905552L;\n-\n-    private String zoneId;\n-\n-    public ZoneIdHandle() {\n-    }\n-\n-    public ZoneIdHandle(Object o) {\n-        try {\n-            ZoneId zoneId = (ZoneId) o;\n-            this.zoneId = zoneId.getId();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return ZoneId.of(this.zoneId);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.ZoneId;\r\n+\r\n+public class ZoneIdHandle implements HessianHandle, Serializable {\r\n+\r\n+    private static final long serialVersionUID = 8789182864066905552L;\r\n+\r\n+    private String zoneId;\r\n+\r\n+    public ZoneIdHandle() {\r\n+    }\r\n+\r\n+    public ZoneIdHandle(Object o) {\r\n+        try {\r\n+            ZoneId zoneId = (ZoneId) o;\r\n+            this.zoneId = zoneId.getId();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return ZoneId.of(this.zoneId);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdSerializer.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneIdSerializer.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,43 +1,43 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.AbstractHessianOutput;\n-import com.caucho.hessian.io.AbstractSerializer;\n-\n-import java.io.IOException;\n-\n-public class ZoneIdSerializer extends AbstractSerializer {\n-\n-    private static final ZoneIdSerializer SERIALIZER = new ZoneIdSerializer();\n-\n-    public static ZoneIdSerializer getInstance() {\n-        return SERIALIZER;\n-    }\n-\n-    @Override\n-    public void writeObject(Object obj, AbstractHessianOutput out) throws IOException {\n-        if (obj == null) {\n-            out.writeNull();\n-        } else {\n-            out.writeObject(new ZoneIdHandle(obj));\n-        }\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.AbstractHessianOutput;\r\n+import com.caucho.hessian.io.AbstractSerializer;\r\n+\r\n+import java.io.IOException;\r\n+\r\n+public class ZoneIdSerializer extends AbstractSerializer {\r\n+\r\n+    private static final ZoneIdSerializer SERIALIZER = new ZoneIdSerializer();\r\n+\r\n+    public static ZoneIdSerializer getInstance() {\r\n+        return SERIALIZER;\r\n+    }\r\n+\r\n+    @Override\r\n+    public void writeObject(Object obj, AbstractHessianOutput out) throws IOException {\r\n+        if (obj == null) {\r\n+            out.writeNull();\r\n+        } else {\r\n+            out.writeObject(new ZoneIdHandle(obj));\r\n+        }\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneOffsetHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/ZoneOffsetHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,51 +1,51 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.ZoneOffset;\n-\n-public class ZoneOffsetHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = 8841589723587858789L;\n-\n-    private int seconds;\n-\n-    public ZoneOffsetHandle() {\n-    }\n-\n-    public ZoneOffsetHandle(Object o) {\n-        try {\n-            ZoneOffset zoneOffset = (ZoneOffset) o;\n-            this.seconds = zoneOffset.getTotalSeconds();\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return ZoneOffset.ofTotalSeconds(seconds);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.ZoneOffset;\r\n+\r\n+public class ZoneOffsetHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = 8841589723587858789L;\r\n+\r\n+    private int seconds;\r\n+\r\n+    public ZoneOffsetHandle() {\r\n+    }\r\n+\r\n+    public ZoneOffsetHandle(Object o) {\r\n+        try {\r\n+            ZoneOffset zoneOffset = (ZoneOffset) o;\r\n+            this.seconds = zoneOffset.getTotalSeconds();\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return ZoneOffset.ofTotalSeconds(seconds);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/serialize/hessian/serializer/java8/ZonedDateTimeHandle.java", "source2": "org/apache/dubbo/serialize/hessian/serializer/java8/ZonedDateTimeHandle.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,62 +1,62 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-\n-package org.apache.dubbo.serialize.hessian.serializer.java8;\n-\n-\n-import com.caucho.hessian.io.HessianHandle;\n-\n-import java.io.Serializable;\n-import java.time.LocalDateTime;\n-import java.time.ZoneId;\n-import java.time.ZoneOffset;\n-import java.time.ZonedDateTime;\n-\n-public class ZonedDateTimeHandle implements HessianHandle, Serializable {\n-    private static final long serialVersionUID = -6933460123278647569L;\n-\n-    private LocalDateTime dateTime;\n-    private ZoneOffset offset;\n-    private String zoneId;\n-\n-\n-    public ZonedDateTimeHandle() {\n-    }\n-\n-    public ZonedDateTimeHandle(Object o) {\n-        try {\n-            ZonedDateTime zonedDateTime = (ZonedDateTime) o;\n-            this.dateTime = zonedDateTime.toLocalDateTime();\n-            this.offset = zonedDateTime.getOffset();\n-            ZoneId zone = zonedDateTime.getZone();\n-            if (zone != null) {\n-                this.zoneId = zone.getId();\n-            }\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-    }\n-\n-    private Object readResolve() {\n-        try {\n-            return ZonedDateTime.ofLocal(dateTime, ZoneId.of(zoneId), offset);\n-        } catch (Throwable t) {\n-            // ignore\n-        }\n-        return null;\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+\r\n+package org.apache.dubbo.serialize.hessian.serializer.java8;\r\n+\r\n+\r\n+import com.caucho.hessian.io.HessianHandle;\r\n+\r\n+import java.io.Serializable;\r\n+import java.time.LocalDateTime;\r\n+import java.time.ZoneId;\r\n+import java.time.ZoneOffset;\r\n+import java.time.ZonedDateTime;\r\n+\r\n+public class ZonedDateTimeHandle implements HessianHandle, Serializable {\r\n+    private static final long serialVersionUID = -6933460123278647569L;\r\n+\r\n+    private LocalDateTime dateTime;\r\n+    private ZoneOffset offset;\r\n+    private String zoneId;\r\n+\r\n+\r\n+    public ZonedDateTimeHandle() {\r\n+    }\r\n+\r\n+    public ZonedDateTimeHandle(Object o) {\r\n+        try {\r\n+            ZonedDateTime zonedDateTime = (ZonedDateTime) o;\r\n+            this.dateTime = zonedDateTime.toLocalDateTime();\r\n+            this.offset = zonedDateTime.getOffset();\r\n+            ZoneId zone = zonedDateTime.getZone();\r\n+            if (zone != null) {\r\n+                this.zoneId = zone.getId();\r\n+            }\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+    }\r\n+\r\n+    private Object readResolve() {\r\n+        try {\r\n+            return ZonedDateTime.ofLocal(dateTime, ZoneId.of(zoneId), offset);\r\n+        } catch (Throwable t) {\r\n+            // ignore\r\n+        }\r\n+        return null;\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProtocol.java", "source2": "org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProtocol.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,196 +1,196 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.xml.rpc.protocol.xmlrpc;\n-\n-import org.apache.dubbo.common.URL;\n-import org.apache.dubbo.remoting.RemotingServer;\n-import org.apache.dubbo.remoting.http.HttpBinder;\n-import org.apache.dubbo.remoting.http.HttpHandler;\n-import org.apache.dubbo.rpc.ProtocolServer;\n-import org.apache.dubbo.rpc.RpcContext;\n-import org.apache.dubbo.rpc.RpcException;\n-import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\n-\n-import org.apache.xmlrpc.XmlRpcException;\n-import org.apache.xmlrpc.XmlRpcRequest;\n-import org.apache.xmlrpc.server.PropertyHandlerMapping;\n-import org.apache.xmlrpc.server.RequestProcessorFactoryFactory;\n-import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;\n-import org.apache.xmlrpc.webserver.XmlRpcServletServer;\n-import org.springframework.remoting.RemoteAccessException;\n-\n-import javax.servlet.ServletException;\n-import javax.servlet.http.HttpServletRequest;\n-import javax.servlet.http.HttpServletResponse;\n-import java.io.IOException;\n-import java.net.SocketTimeoutException;\n-import java.util.ArrayList;\n-import java.util.Map;\n-import java.util.concurrent.ConcurrentHashMap;\n-\n-public class XmlRpcProtocol extends AbstractProxyProtocol {\n-\n-    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\n-    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\n-    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\n-\n-    private final Map<String, XmlRpcServletServer> skeletonMap = new ConcurrentHashMap<>();\n-\n-    private HttpBinder httpBinder;\n-\n-    public XmlRpcProtocol() {\n-        super(XmlRpcException.class);\n-    }\n-\n-    public void setHttpBinder(HttpBinder httpBinder) {\n-        this.httpBinder = httpBinder;\n-    }\n-\n-    @Override\n-    public int getDefaultPort() {\n-        return 80;\n-    }\n-\n-    private class InternalHandler implements HttpHandler {\n-\n-        private boolean cors;\n-\n-        public InternalHandler(boolean cors) {\n-            this.cors = cors;\n-        }\n-\n-        @Override\n-        public void handle(HttpServletRequest request, HttpServletResponse response)\n-                throws IOException, ServletException {\n-            String uri = request.getRequestURI();\n-            XmlRpcServletServer xmlrpc = skeletonMap.get(uri);\n-            if (cors) {\n-                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\n-                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\n-            }\n-            if (\"OPTIONS\".equalsIgnoreCase(request.getMethod())) {\n-                response.setStatus(200);\n-            } else if (\"POST\".equalsIgnoreCase(request.getMethod())) {\n-\n-                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\n-                try {\n-                    xmlrpc.execute(request, response);\n-                } catch (Throwable e) {\n-                    throw new ServletException(e);\n-                }\n-            } else {\n-                response.setStatus(500);\n-            }\n-        }\n-\n-    }\n-\n-    @Override\n-    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\n-        final URL httpUrl = url.setProtocol(\"http\");\n-        String addr = httpUrl.getIp() + \":\" + httpUrl.getPort();\n-        ProtocolServer protocolServer = serverMap.get(addr);\n-        if (protocolServer == null) {\n-            RemotingServer remotingServer = httpBinder.bind(httpUrl, new InternalHandler(httpUrl.getParameter(\"cors\", false)));\n-            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\n-        }\n-        final String path = httpUrl.getAbsolutePath();\n-\n-        XmlRpcServletServer xmlRpcServer = new XmlRpcServletServer();\n-\n-        PropertyHandlerMapping propertyHandlerMapping = new PropertyHandlerMapping();\n-        try {\n-\n-            propertyHandlerMapping.setRequestProcessorFactoryFactory(new RequestProcessorFactoryFactory() {\n-                @Override\n-                public RequestProcessorFactory getRequestProcessorFactory(Class pClass) throws XmlRpcException {\n-                    return new RequestProcessorFactory() {\n-                        @Override\n-                        public Object getRequestProcessor(XmlRpcRequest pRequest) throws XmlRpcException {\n-                            return impl;\n-                        }\n-                    };\n-                }\n-            });\n-\n-            propertyHandlerMapping.addHandler(XmlRpcProxyFactoryBean.replace(type.getName()), type);\n-\n-        } catch (Exception e) {\n-            throw new RpcException(e);\n-        }\n-        xmlRpcServer.setHandlerMapping(propertyHandlerMapping);\n-\n-        XmlRpcServerConfigImpl xmlRpcServerConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();\n-        xmlRpcServerConfig.setEnabledForExceptions(true);\n-        xmlRpcServerConfig.setContentLengthOptional(false);\n-\n-        skeletonMap.put(path, xmlRpcServer);\n-        return new Runnable() {\n-            @Override\n-            public void run() {\n-                skeletonMap.remove(path);\n-            }\n-        };\n-    }\n-\n-    @Override\n-    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\n-    @SuppressWarnings(\"unchecked\")\n-        XmlRpcProxyFactoryBean xmlRpcProxyFactoryBean = new XmlRpcProxyFactoryBean();\n-        xmlRpcProxyFactoryBean.setServiceUrl(url.setProtocol(\"http\").toIdentityString());\n-        xmlRpcProxyFactoryBean.setServiceInterface(serviceType);\n-        xmlRpcProxyFactoryBean.afterPropertiesSet();\n-        return (T) xmlRpcProxyFactoryBean.getObject();\n-    }\n-\n-    @Override\n-    protected int getErrorCode(Throwable e) {\n-        if (e instanceof RemoteAccessException) {\n-            e = e.getCause();\n-        }\n-        if (e != null) {\n-            Class<?> cls = e.getClass();\n-            if (SocketTimeoutException.class.equals(cls)) {\n-                return RpcException.TIMEOUT_EXCEPTION;\n-            } else if (IOException.class.isAssignableFrom(cls)) {\n-                return RpcException.NETWORK_EXCEPTION;\n-            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\n-                return RpcException.SERIALIZATION_EXCEPTION;\n-            }\n-        }\n-        return super.getErrorCode(e);\n-    }\n-\n-    @Override\n-    public void destroy() {\n-        super.destroy();\n-        for (String key : new ArrayList<>(serverMap.keySet())) {\n-            ProtocolServer server = serverMap.remove(key);\n-            if (server != null) {\n-                try {\n-                    if (logger.isInfoEnabled()) {\n-                        logger.info(\"Close xml server \" + server.getUrl());\n-                    }\n-                    server.close();\n-                } catch (Throwable t) {\n-                    logger.warn(t.getMessage(), t);\n-                }\n-            }\n-        }\n-    }\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.xml.rpc.protocol.xmlrpc;\r\n+\r\n+import org.apache.dubbo.common.URL;\r\n+import org.apache.dubbo.remoting.RemotingServer;\r\n+import org.apache.dubbo.remoting.http.HttpBinder;\r\n+import org.apache.dubbo.remoting.http.HttpHandler;\r\n+import org.apache.dubbo.rpc.ProtocolServer;\r\n+import org.apache.dubbo.rpc.RpcContext;\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+import org.apache.dubbo.rpc.protocol.AbstractProxyProtocol;\r\n+\r\n+import org.apache.xmlrpc.XmlRpcException;\r\n+import org.apache.xmlrpc.XmlRpcRequest;\r\n+import org.apache.xmlrpc.server.PropertyHandlerMapping;\r\n+import org.apache.xmlrpc.server.RequestProcessorFactoryFactory;\r\n+import org.apache.xmlrpc.server.XmlRpcServerConfigImpl;\r\n+import org.apache.xmlrpc.webserver.XmlRpcServletServer;\r\n+import org.springframework.remoting.RemoteAccessException;\r\n+\r\n+import javax.servlet.ServletException;\r\n+import javax.servlet.http.HttpServletRequest;\r\n+import javax.servlet.http.HttpServletResponse;\r\n+import java.io.IOException;\r\n+import java.net.SocketTimeoutException;\r\n+import java.util.ArrayList;\r\n+import java.util.Map;\r\n+import java.util.concurrent.ConcurrentHashMap;\r\n+\r\n+public class XmlRpcProtocol extends AbstractProxyProtocol {\r\n+\r\n+    public static final String ACCESS_CONTROL_ALLOW_ORIGIN_HEADER = \"Access-Control-Allow-Origin\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_METHODS_HEADER = \"Access-Control-Allow-Methods\";\r\n+    public static final String ACCESS_CONTROL_ALLOW_HEADERS_HEADER = \"Access-Control-Allow-Headers\";\r\n+\r\n+    private final Map<String, XmlRpcServletServer> skeletonMap = new ConcurrentHashMap<>();\r\n+\r\n+    private HttpBinder httpBinder;\r\n+\r\n+    public XmlRpcProtocol() {\r\n+        super(XmlRpcException.class);\r\n+    }\r\n+\r\n+    public void setHttpBinder(HttpBinder httpBinder) {\r\n+        this.httpBinder = httpBinder;\r\n+    }\r\n+\r\n+    @Override\r\n+    public int getDefaultPort() {\r\n+        return 80;\r\n+    }\r\n+\r\n+    private class InternalHandler implements HttpHandler {\r\n+\r\n+        private boolean cors;\r\n+\r\n+        public InternalHandler(boolean cors) {\r\n+            this.cors = cors;\r\n+        }\r\n+\r\n+        @Override\r\n+        public void handle(HttpServletRequest request, HttpServletResponse response)\r\n+                throws IOException, ServletException {\r\n+            String uri = request.getRequestURI();\r\n+            XmlRpcServletServer xmlrpc = skeletonMap.get(uri);\r\n+            if (cors) {\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_ORIGIN_HEADER, \"*\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_METHODS_HEADER, \"POST\");\r\n+                response.setHeader(ACCESS_CONTROL_ALLOW_HEADERS_HEADER, \"*\");\r\n+            }\r\n+            if (\"OPTIONS\".equalsIgnoreCase(request.getMethod())) {\r\n+                response.setStatus(200);\r\n+            } else if (\"POST\".equalsIgnoreCase(request.getMethod())) {\r\n+\r\n+                RpcContext.getContext().setRemoteAddress(request.getRemoteAddr(), request.getRemotePort());\r\n+                try {\r\n+                    xmlrpc.execute(request, response);\r\n+                } catch (Throwable e) {\r\n+                    throw new ServletException(e);\r\n+                }\r\n+            } else {\r\n+                response.setStatus(500);\r\n+            }\r\n+        }\r\n+\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> Runnable doExport(T impl, Class<T> type, URL url) throws RpcException {\r\n+        final URL httpUrl = url.setProtocol(\"http\");\r\n+        String addr = httpUrl.getIp() + \":\" + httpUrl.getPort();\r\n+        ProtocolServer protocolServer = serverMap.get(addr);\r\n+        if (protocolServer == null) {\r\n+            RemotingServer remotingServer = httpBinder.bind(httpUrl, new InternalHandler(httpUrl.getParameter(\"cors\", false)));\r\n+            serverMap.put(addr, new ProxyProtocolServer(remotingServer));\r\n+        }\r\n+        final String path = httpUrl.getAbsolutePath();\r\n+\r\n+        XmlRpcServletServer xmlRpcServer = new XmlRpcServletServer();\r\n+\r\n+        PropertyHandlerMapping propertyHandlerMapping = new PropertyHandlerMapping();\r\n+        try {\r\n+\r\n+            propertyHandlerMapping.setRequestProcessorFactoryFactory(new RequestProcessorFactoryFactory() {\r\n+                @Override\r\n+                public RequestProcessorFactory getRequestProcessorFactory(Class pClass) throws XmlRpcException {\r\n+                    return new RequestProcessorFactory() {\r\n+                        @Override\r\n+                        public Object getRequestProcessor(XmlRpcRequest pRequest) throws XmlRpcException {\r\n+                            return impl;\r\n+                        }\r\n+                    };\r\n+                }\r\n+            });\r\n+\r\n+            propertyHandlerMapping.addHandler(XmlRpcProxyFactoryBean.replace(type.getName()), type);\r\n+\r\n+        } catch (Exception e) {\r\n+            throw new RpcException(e);\r\n+        }\r\n+        xmlRpcServer.setHandlerMapping(propertyHandlerMapping);\r\n+\r\n+        XmlRpcServerConfigImpl xmlRpcServerConfig = (XmlRpcServerConfigImpl) xmlRpcServer.getConfig();\r\n+        xmlRpcServerConfig.setEnabledForExceptions(true);\r\n+        xmlRpcServerConfig.setContentLengthOptional(false);\r\n+\r\n+        skeletonMap.put(path, xmlRpcServer);\r\n+        return new Runnable() {\r\n+            @Override\r\n+            public void run() {\r\n+                skeletonMap.remove(path);\r\n+            }\r\n+        };\r\n+    }\r\n+\r\n+    @Override\r\n+    protected <T> T doRefer(final Class<T> serviceType, URL url) throws RpcException {\r\n+    @SuppressWarnings(\"unchecked\")\r\n+        XmlRpcProxyFactoryBean xmlRpcProxyFactoryBean = new XmlRpcProxyFactoryBean();\r\n+        xmlRpcProxyFactoryBean.setServiceUrl(url.setProtocol(\"http\").toIdentityString());\r\n+        xmlRpcProxyFactoryBean.setServiceInterface(serviceType);\r\n+        xmlRpcProxyFactoryBean.afterPropertiesSet();\r\n+        return (T) xmlRpcProxyFactoryBean.getObject();\r\n+    }\r\n+\r\n+    @Override\r\n+    protected int getErrorCode(Throwable e) {\r\n+        if (e instanceof RemoteAccessException) {\r\n+            e = e.getCause();\r\n+        }\r\n+        if (e != null) {\r\n+            Class<?> cls = e.getClass();\r\n+            if (SocketTimeoutException.class.equals(cls)) {\r\n+                return RpcException.TIMEOUT_EXCEPTION;\r\n+            } else if (IOException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.NETWORK_EXCEPTION;\r\n+            } else if (ClassNotFoundException.class.isAssignableFrom(cls)) {\r\n+                return RpcException.SERIALIZATION_EXCEPTION;\r\n+            }\r\n+        }\r\n+        return super.getErrorCode(e);\r\n+    }\r\n+\r\n+    @Override\r\n+    public void destroy() {\r\n+        super.destroy();\r\n+        for (String key : new ArrayList<>(serverMap.keySet())) {\r\n+            ProtocolServer server = serverMap.remove(key);\r\n+            if (server != null) {\r\n+                try {\r\n+                    if (logger.isInfoEnabled()) {\r\n+                        logger.info(\"Close xml server \" + server.getUrl());\r\n+                    }\r\n+                    server.close();\r\n+                } catch (Throwable t) {\r\n+                    logger.warn(t.getMessage(), t);\r\n+                }\r\n+            }\r\n+        }\r\n+    }\r\n+}\r\n"}, {"source1": "org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProxyFactoryBean.java", "source2": "org/apache/dubbo/xml/rpc/protocol/xmlrpc/XmlRpcProxyFactoryBean.java", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,142 +1,142 @@\n-/*\n- * Licensed to the Apache Software Foundation (ASF) under one or more\n- * contributor license agreements.  See the NOTICE file distributed with\n- * this work for additional information regarding copyright ownership.\n- * The ASF licenses this file to You under the Apache License, Version 2.0\n- * (the \"License\"); you may not use this file except in compliance with\n- * the License.  You may obtain a copy of the License at\n- *\n- *     http://www.apache.org/licenses/LICENSE-2.0\n- *\n- * Unless required by applicable law or agreed to in writing, software\n- * distributed under the License is distributed on an \"AS IS\" BASIS,\n- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n- * See the License for the specific language governing permissions and\n- * limitations under the License.\n- */\n-package org.apache.dubbo.xml.rpc.protocol.xmlrpc;\n-\n-import org.apache.dubbo.rpc.RpcException;\n-\n-import org.aopalliance.intercept.MethodInterceptor;\n-import org.aopalliance.intercept.MethodInvocation;\n-import org.apache.xmlrpc.client.XmlRpcClient;\n-import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;\n-import org.springframework.aop.framework.ProxyFactory;\n-import org.springframework.beans.factory.FactoryBean;\n-import org.springframework.beans.factory.InitializingBean;\n-import org.springframework.context.ApplicationContext;\n-import org.springframework.context.ApplicationContextAware;\n-import org.springframework.remoting.support.UrlBasedRemoteAccessor;\n-\n-import java.lang.reflect.Method;\n-import java.lang.reflect.Type;\n-import java.net.MalformedURLException;\n-import java.net.URL;\n-\n-public class XmlRpcProxyFactoryBean extends UrlBasedRemoteAccessor\n-        implements MethodInterceptor,\n-        InitializingBean,\n-        FactoryBean<Object>,\n-        ApplicationContextAware {\n-\n-    private Object\t\t\t\tproxyObject\t\t\t= null;\n-    private XmlRpcClient xmlRpcClient\t= null;\n-//    private Map<String, String> extraHttpHeaders\t= new HashMap<String, String>();\n-\n-\n-    private ApplicationContext applicationContext;\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    @SuppressWarnings(\"unchecked\")\n-    public void afterPropertiesSet() {\n-        super.afterPropertiesSet();\n-\n-        // create proxy\n-        proxyObject = ProxyFactory.getProxy(getServiceInterface(), this);\n-\n-        // create XmlRpcHttpClient\n-        try {\n-            xmlRpcClient = new XmlRpcClient();\n-\n-            XmlRpcClientConfigImpl xmlRpcClientConfig = new XmlRpcClientConfigImpl();\n-            xmlRpcClientConfig.setServerURL(new URL(getServiceUrl()));\n-            xmlRpcClient.setConfig(xmlRpcClientConfig);\n-\n-        } catch (MalformedURLException mue) {\n-            throw new RpcException(mue);\n-        }\n-    }\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    public Object invoke(MethodInvocation invocation)\n-            throws Throwable {\n-\n-        // handle toString()\n-        Method method = invocation.getMethod();\n-        if (method.getDeclaringClass() == Object.class && \"toString\".equals(method.getName())) {\n-            return proxyObject.getClass().getName() + \"@\" + System.identityHashCode(proxyObject);\n-        }\n-\n-        // get return type\n-        Type retType = (invocation.getMethod().getGenericReturnType() != null)\n-                ? invocation.getMethod().getGenericReturnType()\n-                : invocation.getMethod().getReturnType();\n-\n-        return xmlRpcClient.execute(replace(method.getDeclaringClass().getName())+\".\"\n-                +invocation.getMethod().getName(),invocation.getArguments());\n-\n-//        // get arguments\n-//        Object arguments = ReflectionUtil.parseArguments(\n-//                invocation.getMethod(), invocation.getArguments(), useNamedParams);\n-//\n-//        // invoke it\n-//        return jsonRpcHttpClient.invoke(\n-//                invocation.getMethod().getName(),\n-//                arguments,\n-//                retType, extraHttpHeaders);\n-    }\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    public Object getObject() {\n-        return proxyObject;\n-    }\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    public Class<?> getObjectType() {\n-        return getServiceInterface();\n-    }\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    public boolean isSingleton() {\n-        return true;\n-    }\n-\n-    /**\n-     * {@inheritDoc}\n-     */\n-    @Override\n-    public void setApplicationContext(ApplicationContext applicationContext) {\n-        this.applicationContext = applicationContext;\n-    }\n-\n-    public static final String replace(String name) {\n-        return name.replaceAll(\"\\\\.\",\"_\");\n-    }\n-\n-}\n+/*\r\n+ * Licensed to the Apache Software Foundation (ASF) under one or more\r\n+ * contributor license agreements.  See the NOTICE file distributed with\r\n+ * this work for additional information regarding copyright ownership.\r\n+ * The ASF licenses this file to You under the Apache License, Version 2.0\r\n+ * (the \"License\"); you may not use this file except in compliance with\r\n+ * the License.  You may obtain a copy of the License at\r\n+ *\r\n+ *     http://www.apache.org/licenses/LICENSE-2.0\r\n+ *\r\n+ * Unless required by applicable law or agreed to in writing, software\r\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+ * See the License for the specific language governing permissions and\r\n+ * limitations under the License.\r\n+ */\r\n+package org.apache.dubbo.xml.rpc.protocol.xmlrpc;\r\n+\r\n+import org.apache.dubbo.rpc.RpcException;\r\n+\r\n+import org.aopalliance.intercept.MethodInterceptor;\r\n+import org.aopalliance.intercept.MethodInvocation;\r\n+import org.apache.xmlrpc.client.XmlRpcClient;\r\n+import org.apache.xmlrpc.client.XmlRpcClientConfigImpl;\r\n+import org.springframework.aop.framework.ProxyFactory;\r\n+import org.springframework.beans.factory.FactoryBean;\r\n+import org.springframework.beans.factory.InitializingBean;\r\n+import org.springframework.context.ApplicationContext;\r\n+import org.springframework.context.ApplicationContextAware;\r\n+import org.springframework.remoting.support.UrlBasedRemoteAccessor;\r\n+\r\n+import java.lang.reflect.Method;\r\n+import java.lang.reflect.Type;\r\n+import java.net.MalformedURLException;\r\n+import java.net.URL;\r\n+\r\n+public class XmlRpcProxyFactoryBean extends UrlBasedRemoteAccessor\r\n+        implements MethodInterceptor,\r\n+        InitializingBean,\r\n+        FactoryBean<Object>,\r\n+        ApplicationContextAware {\r\n+\r\n+    private Object\t\t\t\tproxyObject\t\t\t= null;\r\n+    private XmlRpcClient xmlRpcClient\t= null;\r\n+//    private Map<String, String> extraHttpHeaders\t= new HashMap<String, String>();\r\n+\r\n+\r\n+    private ApplicationContext applicationContext;\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    @SuppressWarnings(\"unchecked\")\r\n+    public void afterPropertiesSet() {\r\n+        super.afterPropertiesSet();\r\n+\r\n+        // create proxy\r\n+        proxyObject = ProxyFactory.getProxy(getServiceInterface(), this);\r\n+\r\n+        // create XmlRpcHttpClient\r\n+        try {\r\n+            xmlRpcClient = new XmlRpcClient();\r\n+\r\n+            XmlRpcClientConfigImpl xmlRpcClientConfig = new XmlRpcClientConfigImpl();\r\n+            xmlRpcClientConfig.setServerURL(new URL(getServiceUrl()));\r\n+            xmlRpcClient.setConfig(xmlRpcClientConfig);\r\n+\r\n+        } catch (MalformedURLException mue) {\r\n+            throw new RpcException(mue);\r\n+        }\r\n+    }\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    public Object invoke(MethodInvocation invocation)\r\n+            throws Throwable {\r\n+\r\n+        // handle toString()\r\n+        Method method = invocation.getMethod();\r\n+        if (method.getDeclaringClass() == Object.class && \"toString\".equals(method.getName())) {\r\n+            return proxyObject.getClass().getName() + \"@\" + System.identityHashCode(proxyObject);\r\n+        }\r\n+\r\n+        // get return type\r\n+        Type retType = (invocation.getMethod().getGenericReturnType() != null)\r\n+                ? invocation.getMethod().getGenericReturnType()\r\n+                : invocation.getMethod().getReturnType();\r\n+\r\n+        return xmlRpcClient.execute(replace(method.getDeclaringClass().getName())+\".\"\r\n+                +invocation.getMethod().getName(),invocation.getArguments());\r\n+\r\n+//        // get arguments\r\n+//        Object arguments = ReflectionUtil.parseArguments(\r\n+//                invocation.getMethod(), invocation.getArguments(), useNamedParams);\r\n+//\r\n+//        // invoke it\r\n+//        return jsonRpcHttpClient.invoke(\r\n+//                invocation.getMethod().getName(),\r\n+//                arguments,\r\n+//                retType, extraHttpHeaders);\r\n+    }\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    public Object getObject() {\r\n+        return proxyObject;\r\n+    }\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    public Class<?> getObjectType() {\r\n+        return getServiceInterface();\r\n+    }\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    public boolean isSingleton() {\r\n+        return true;\r\n+    }\r\n+\r\n+    /**\r\n+     * {@inheritDoc}\r\n+     */\r\n+    @Override\r\n+    public void setApplicationContext(ApplicationContext applicationContext) {\r\n+        this.applicationContext = applicationContext;\r\n+    }\r\n+\r\n+    public static final String replace(String name) {\r\n+        return name.replaceAll(\"\\\\.\",\"_\");\r\n+    }\r\n+\r\n+}\r\n"}, {"source1": "security/serialize.blockedlist", "source2": "security/serialize.blockedlist", "comments": ["Line-ending differences only"], "unified_diff": "@@ -1,167 +1,167 @@\n-#\n-#\n-#   Licensed to the Apache Software Foundation (ASF) under one or more\n-#   contributor license agreements.  See the NOTICE file distributed with\n-#   this work for additional information regarding copyright ownership.\n-#   The ASF licenses this file to You under the Apache License, Version 2.0\n-#   (the \"License\"); you may not use this file except in compliance with\n-#   the License.  You may obtain a copy of the License at\n-#\n-#       http://www.apache.org/licenses/LICENSE-2.0\n-#\n-#   Unless required by applicable law or agreed to in writing, software\n-#   distributed under the License is distributed on an \"AS IS\" BASIS,\n-#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n-#   See the License for the specific language governing permissions and\n-#   limitations under the License.\n-#\n-#\n-aj.org.objectweb.asm.\n-br.com.anteros.\n-ch.qos.logback.\n-clojure.core$constantly\n-clojure.main$eval_opt\n-com.alibaba.citrus.springext.support.parser.abstractnamedproxybeandefinitionparser$proxytargetfactory\n-com.alibaba.citrus.springext.util.springextutil.abstractproxy\n-com.alibaba.druid.pool.druiddatasource\n-com.alibaba.druid.stat.jdbcdatasourcestat\n-com.alibaba.fastjson.annotation\n-com.alipay.custrelation.service.model.redress.pair\n-com.caucho.\n-com.ibatis.\n-com.mchange\n-com.mysql.cj.jdbc.admin.\n-com.mysql.cj.jdbc.mysqlconnectionpooldatasource\n-com.mysql.cj.jdbc.mysqldatasource\n-com.mysql.cj.jdbc.mysqlxadatasource\n-com.mysql.cj.log.\n-com.p6spy.engine.\n-com.rometools.rome.feed.impl.equalsbean\n-com.rometools.rome.feed.impl.tostringbean\n-com.sun.\n-com.taobao.eagleeye.wrapper\n-com.zaxxer.hikari.\n-flex.messaging.util.concurrent.\n-java.awt.i\n-java.awt.p\n-java.beans.expression\n-java.io.closeable\n-java.io.serializable\n-java.lang.autocloseable\n-java.lang.class\n-java.lang.cloneable\n-java.lang.iterable\n-java.lang.object\n-java.lang.readable\n-java.lang.runnable\n-java.lang.thread\n-java.lang.unixprocess\n-java.net.inetaddress\n-java.net.socket\n-java.net.url\n-java.rmi\n-java.security.signedobject\n-java.util.collection\n-java.util.eventlistener\n-java.util.jar.\n-java.util.logging.\n-java.util.prefs.\n-java.util.serviceloader$lazyiterator\n-javassist.\n-javax.activation.\n-javax.imageio.imageio$containsfilter\n-javax.imageio.spi.serviceregistry\n-javax.management.\n-javax.naming.\n-javax.net.\n-javax.print.\n-javax.script.\n-javax.sound.\n-javax.swing.j\n-javax.tools.\n-javax.xml\n-jdk.internal.\n-jodd.db.connection.\n-junit.\n-net.bytebuddy.dynamic.loading.bytearrayclassloader\n-net.sf.cglib.\n-net.sf.ehcache.hibernate.\n-net.sf.ehcache.transaction.manager.\n-oracle.jdbc.\n-oracle.jms.aq\n-oracle.net\n-org.aoju.bus.proxy.provider.\n-org.apache.activemq.activemqconnectionfactory\n-org.apache.activemq.activemqxaconnectionfactory\n-org.apache.activemq.jms.pool.\n-org.apache.activemq.pool.\n-org.apache.activemq.spring.\n-org.apache.aries.transaction.\n-org.apache.axis2.jaxws.spi.handler.\n-org.apache.axis2.transport.jms.\n-org.apache.bcel\n-org.apache.carbondata.core.scan.expression.expressionresult\n-org.apache.catalina.\n-org.apache.cocoon.\n-org.apache.commons.beanutils\n-org.apache.commons.collections.comparators.\n-org.apache.commons.collections.functors\n-org.apache.commons.collections.functors.\n-org.apache.commons.collections.transformer\n-org.apache.commons.collections4.comparators\n-org.apache.commons.collections4.functors\n-org.apache.commons.collections4.transformer\n-org.apache.commons.configuration\n-org.apache.commons.dbcp\n-org.apache.commons.fileupload\n-org.apache.commons.jelly.\n-org.apache.commons.logging.\n-org.apache.commons.proxy.\n-org.apache.cxf.jaxrs.provider.\n-org.apache.hadoop.shaded.com.zaxxer.hikari.\n-org.apache.http.auth.\n-org.apache.http.conn.\n-org.apache.http.cookie.\n-org.apache.http.impl.\n-org.apache.ibatis.datasource\n-org.apache.ibatis.executor.\n-org.apache.ibatis.javassist.\n-org.apache.ibatis.ognl.\n-org.apache.ibatis.parsing.\n-org.apache.ibatis.reflection.\n-org.apache.ibatis.scripting.\n-org.apache.ignite.cache.jta.\n-org.apache.log4j.\n-org.apache.logging.\n-org.apache.myfaces.context.servlet\n-org.apache.openjpa.ee.\n-org.apache.shiro.jndi.\n-org.apache.shiro.realm.\n-org.apache.tomcat\n-org.apache.wicket.util\n-org.apache.xalan\n-org.apache.xbean.\n-org.apache.xpath.xpathcontext\n-org.codehaus.groovy.runtime\n-org.codehaus.jackson.\n-org.eclipse.jetty.\n-org.geotools.filter.constantexpression\n-org.h2.jdbcx.\n-org.h2.server.\n-org.hibernate\n-org.javasimon.\n-org.jaxen.\n-org.jboss\n-org.jdom.\n-org.jdom2.transform.\n-org.logicalcobwebs.\n-org.mortbay.jetty.\n-org.mozilla.javascript\n-org.objectweb.asm.\n-org.osjava.sj.\n-org.python.core\n-org.quartz.\n-org.slf4j.\n-org.springframework.\n-org.yaml.snakeyaml.tokens.directivetoken\n+#\r\n+#\r\n+#   Licensed to the Apache Software Foundation (ASF) under one or more\r\n+#   contributor license agreements.  See the NOTICE file distributed with\r\n+#   this work for additional information regarding copyright ownership.\r\n+#   The ASF licenses this file to You under the Apache License, Version 2.0\r\n+#   (the \"License\"); you may not use this file except in compliance with\r\n+#   the License.  You may obtain a copy of the License at\r\n+#\r\n+#       http://www.apache.org/licenses/LICENSE-2.0\r\n+#\r\n+#   Unless required by applicable law or agreed to in writing, software\r\n+#   distributed under the License is distributed on an \"AS IS\" BASIS,\r\n+#   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n+#   See the License for the specific language governing permissions and\r\n+#   limitations under the License.\r\n+#\r\n+#\r\n+aj.org.objectweb.asm.\r\n+br.com.anteros.\r\n+ch.qos.logback.\r\n+clojure.core$constantly\r\n+clojure.main$eval_opt\r\n+com.alibaba.citrus.springext.support.parser.abstractnamedproxybeandefinitionparser$proxytargetfactory\r\n+com.alibaba.citrus.springext.util.springextutil.abstractproxy\r\n+com.alibaba.druid.pool.druiddatasource\r\n+com.alibaba.druid.stat.jdbcdatasourcestat\r\n+com.alibaba.fastjson.annotation\r\n+com.alipay.custrelation.service.model.redress.pair\r\n+com.caucho.\r\n+com.ibatis.\r\n+com.mchange\r\n+com.mysql.cj.jdbc.admin.\r\n+com.mysql.cj.jdbc.mysqlconnectionpooldatasource\r\n+com.mysql.cj.jdbc.mysqldatasource\r\n+com.mysql.cj.jdbc.mysqlxadatasource\r\n+com.mysql.cj.log.\r\n+com.p6spy.engine.\r\n+com.rometools.rome.feed.impl.equalsbean\r\n+com.rometools.rome.feed.impl.tostringbean\r\n+com.sun.\r\n+com.taobao.eagleeye.wrapper\r\n+com.zaxxer.hikari.\r\n+flex.messaging.util.concurrent.\r\n+java.awt.i\r\n+java.awt.p\r\n+java.beans.expression\r\n+java.io.closeable\r\n+java.io.serializable\r\n+java.lang.autocloseable\r\n+java.lang.class\r\n+java.lang.cloneable\r\n+java.lang.iterable\r\n+java.lang.object\r\n+java.lang.readable\r\n+java.lang.runnable\r\n+java.lang.thread\r\n+java.lang.unixprocess\r\n+java.net.inetaddress\r\n+java.net.socket\r\n+java.net.url\r\n+java.rmi\r\n+java.security.signedobject\r\n+java.util.collection\r\n+java.util.eventlistener\r\n+java.util.jar.\r\n+java.util.logging.\r\n+java.util.prefs.\r\n+java.util.serviceloader$lazyiterator\r\n+javassist.\r\n+javax.activation.\r\n+javax.imageio.imageio$containsfilter\r\n+javax.imageio.spi.serviceregistry\r\n+javax.management.\r\n+javax.naming.\r\n+javax.net.\r\n+javax.print.\r\n+javax.script.\r\n+javax.sound.\r\n+javax.swing.j\r\n+javax.tools.\r\n+javax.xml\r\n+jdk.internal.\r\n+jodd.db.connection.\r\n+junit.\r\n+net.bytebuddy.dynamic.loading.bytearrayclassloader\r\n+net.sf.cglib.\r\n+net.sf.ehcache.hibernate.\r\n+net.sf.ehcache.transaction.manager.\r\n+oracle.jdbc.\r\n+oracle.jms.aq\r\n+oracle.net\r\n+org.aoju.bus.proxy.provider.\r\n+org.apache.activemq.activemqconnectionfactory\r\n+org.apache.activemq.activemqxaconnectionfactory\r\n+org.apache.activemq.jms.pool.\r\n+org.apache.activemq.pool.\r\n+org.apache.activemq.spring.\r\n+org.apache.aries.transaction.\r\n+org.apache.axis2.jaxws.spi.handler.\r\n+org.apache.axis2.transport.jms.\r\n+org.apache.bcel\r\n+org.apache.carbondata.core.scan.expression.expressionresult\r\n+org.apache.catalina.\r\n+org.apache.cocoon.\r\n+org.apache.commons.beanutils\r\n+org.apache.commons.collections.comparators.\r\n+org.apache.commons.collections.functors\r\n+org.apache.commons.collections.functors.\r\n+org.apache.commons.collections.transformer\r\n+org.apache.commons.collections4.comparators\r\n+org.apache.commons.collections4.functors\r\n+org.apache.commons.collections4.transformer\r\n+org.apache.commons.configuration\r\n+org.apache.commons.dbcp\r\n+org.apache.commons.fileupload\r\n+org.apache.commons.jelly.\r\n+org.apache.commons.logging.\r\n+org.apache.commons.proxy.\r\n+org.apache.cxf.jaxrs.provider.\r\n+org.apache.hadoop.shaded.com.zaxxer.hikari.\r\n+org.apache.http.auth.\r\n+org.apache.http.conn.\r\n+org.apache.http.cookie.\r\n+org.apache.http.impl.\r\n+org.apache.ibatis.datasource\r\n+org.apache.ibatis.executor.\r\n+org.apache.ibatis.javassist.\r\n+org.apache.ibatis.ognl.\r\n+org.apache.ibatis.parsing.\r\n+org.apache.ibatis.reflection.\r\n+org.apache.ibatis.scripting.\r\n+org.apache.ignite.cache.jta.\r\n+org.apache.log4j.\r\n+org.apache.logging.\r\n+org.apache.myfaces.context.servlet\r\n+org.apache.openjpa.ee.\r\n+org.apache.shiro.jndi.\r\n+org.apache.shiro.realm.\r\n+org.apache.tomcat\r\n+org.apache.wicket.util\r\n+org.apache.xalan\r\n+org.apache.xbean.\r\n+org.apache.xpath.xpathcontext\r\n+org.codehaus.groovy.runtime\r\n+org.codehaus.jackson.\r\n+org.eclipse.jetty.\r\n+org.geotools.filter.constantexpression\r\n+org.h2.jdbcx.\r\n+org.h2.server.\r\n+org.hibernate\r\n+org.javasimon.\r\n+org.jaxen.\r\n+org.jboss\r\n+org.jdom.\r\n+org.jdom2.transform.\r\n+org.logicalcobwebs.\r\n+org.mortbay.jetty.\r\n+org.mozilla.javascript\r\n+org.objectweb.asm.\r\n+org.osjava.sj.\r\n+org.python.core\r\n+org.quartz.\r\n+org.slf4j.\r\n+org.springframework.\r\n+org.yaml.snakeyaml.tokens.directivetoken\r\n sun.rmi.server.unicastref\n"}]}
